{"report_id":"acbdf719-ff50-40e5-8b2b-f80d5b495e61","version":0,"status":"done","tags":[],"date":"2026-07-27T09:43:57Z","url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":0,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"final":{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"title":"TopTier Proprietary Trading. Get Funded with TopTier Trader","dom":{"size":252446,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (23600), with CRLF, LF line terminators","md5":"9294a5debd54559b266d42cecb3ce73a","sha1":"1f92b94987ead71b31f6af22f2d907912bc656a7","sha256":"e84d652c6a0e1138743ac91b0e41d3f35f9d3e8437906f752bacdaaa07efe6b8","sha512":"d2e07e368f59484f83f8c2db4bee5963279f25812cae63ed3ac5d4baf3b8584c88f780e64a6b6c852a2f1f3ee402cf93880cb42b3bdac949fa8baa04152b50e0","ssdeep":"3072:MhnCfmiImxK/SWjkr9fPO8/wGsIpS/FZU6J5IiT0Zd79g/egUpt:IIxngU3","tlshash":"cf3481b26115113b09e346e4f335af2f75a0ca2eef838495a3f487ac93d5dd1ee15288","dom_hash":"domhash285a575fc6ccd8a2b7b43eed17ecece6","first_seen":"2026-07-27T09:44:08.297685Z","last_seen":"2026-07-27T09:44:08.297685Z","times_seen":1,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":0,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T09:43:57Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":0}},"detection":{"ids":null,"analyzer":null,"urlquery":null},"summary":[{"fqdn":"t.tx3markets.com","ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2025-11-14T13:30:47.99028Z","last_seen":"2026-07-27T07:14:00.949976Z","alert_count":0,"request_count":7,"received_data":88837,"sent_data":4965,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"bootstrap.smartsuppchat.com","ip":{"addr":"18.195.8.146","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2014-02-02","domain_rank":425291,"first_seen":"2018-01-29T06:10:36Z","last_seen":"2026-07-24T07:15:25.204838Z","alert_count":0,"request_count":1,"received_data":1579,"sent_data":543,"comment":"","tags":null,"fingerprints":null},{"fqdn":"autolitefinances.pro","ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-27T07:13:58.931501Z","last_seen":"2026-07-27T07:13:58.931501Z","alert_count":0,"request_count":79,"received_data":3567655,"sent_data":42855,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"Elementor:3.17.3","description":"Elementor is a website builder platform for professionals on WordPress.","website":"https://elementor.com","common_platform_enumeration":"","icon":"Elementor.svg","categories":["Page builders","WordPress plugins"]},{"name":"jQuery Migrate:3.4.1","description":"Query Migrate is a javascript library that allows you to preserve the compatibility of your jQuery code developed for versions of jQuery older than 1.9.","website":"https://github.com/jquery/jquery-migrate","common_platform_enumeration":"","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Gravity Forms","description":"","website":"https://gravityforms.com","common_platform_enumeration":"","icon":"gravityforms.svg","categories":["WordPress plugins","Form builders"]},{"name":"WordPress:6.4.1","description":"WordPress is a free and open-source content management system written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system.","website":"https://wordpress.org","common_platform_enumeration":"cpe:2.3:a:wordpress:wordpress:*:*:*:*:*:*:*:*","icon":"WordPress.svg","categories":["CMS","Blogs"]},{"name":"MySQL","description":"MySQL is an open-source relational database management system.","website":"https://mysql.com","common_platform_enumeration":"cpe:2.3:a:mysql:mysql:*:*:*:*:*:*:*:*","icon":"MySQL.svg","categories":["Databases"]},{"name":"Bootstrap:5","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"Google Tag Manager","description":"Google Tag Manager is a tag management system (TMS) that allows you to quickly and easily update measurement codes and related code fragments collectively known as tags on your website or mobile app.","website":"https://www.google.com/tagmanager","common_platform_enumeration":"","icon":"Google Tag Manager.svg","categories":["Tag managers"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]},{"name":"PHP","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"ZURB Foundation","description":"Zurb Foundation is used to prototype in the browser. Allows rapid creation of websites or applications while leveraging mobile and responsive technology. The front end framework is the collection of HTML, CSS, and Javascript containing design patterns.","website":"https://foundation.zurb.com","common_platform_enumeration":"","icon":"ZURB Foundation.png","categories":["UI frameworks"]}]},{"fqdn":"www.googletagmanager.com","ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2011-11-11","domain_rank":283,"first_seen":"2012-10-04T01:07:32Z","last_seen":"2026-07-26T22:31:28.839046Z","alert_count":0,"request_count":6,"received_data":3029071,"sent_data":2966,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"www.google.com","ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":8,"received_data":7696,"sent_data":9520,"comment":"","tags":null,"fingerprints":null},{"fqdn":"translations.smartsuppcdn.com","ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":560346,"first_seen":"2022-11-04T22:28:35Z","last_seen":"2026-07-24T15:28:31.911258Z","alert_count":0,"request_count":1,"received_data":7731,"sent_data":525,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"widget-v3.smartsuppcdn.com","ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":532262,"first_seen":"2022-10-03T13:48:45Z","last_seen":"2026-07-24T15:28:31.507831Z","alert_count":0,"request_count":4,"received_data":329034,"sent_data":1895,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"websocket-visitors.smartsupp.com","ip":{"addr":"3.73.30.134","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2012-08-25","domain_rank":411464,"first_seen":"2021-07-12T07:42:32Z","last_seen":"2026-07-24T09:04:26.067381Z","alert_count":0,"request_count":1,"received_data":224,"sent_data":635,"comment":"","tags":null,"fingerprints":null},{"fqdn":"lg.hyr.so","ip":{"addr":"44.196.240.170","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"domain_registered":"2021-04-12","domain_rank":214656,"first_seen":"2024-08-12T13:18:00Z","last_seen":"2026-07-22T08:04:53.031132Z","alert_count":0,"request_count":2,"received_data":1105,"sent_data":1256,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"www.smartsuppchat.com","ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2014-02-02","domain_rank":491650,"first_seen":"2017-01-30T05:24:57Z","last_seen":"2026-07-24T07:15:25.153212Z","alert_count":0,"request_count":1,"received_data":18547,"sent_data":467,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"www.google.no","ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2001-02-26","domain_rank":92680,"first_seen":"2012-06-26T23:22:08Z","last_seen":"2026-07-26T23:31:59.116255Z","alert_count":0,"request_count":3,"received_data":1769,"sent_data":3547,"comment":"","tags":null,"fingerprints":null}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/aos/aos.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"70b4897108480dbe11c443c2ab7679c9","sha1":"70dbfd38a0f1fc3b1a7d9fadab58786484c34f17","sha256":"f268612ba59ead1b24353bb77d66783bcc435aff1c22be5f93c40bac3869968e","sha512":"466084fa711d299e394e96c2260bd8bdf103cf75da8869934c997a19fc884d6ddfa2e92ce253533a4a0c5d627d580e9a40efb7155f1c8c0e9fbd3a2c3a06c2ae","ssdeep":"384:3I2fNaC8QiHbcggNFUWTgMe91sa6XCZy54:42fNaC8QiHbfgNFUWg17slXCZy54","tlshash":"a752e6dc3681f0a617a794f7827f600ff2f14835245e90a0d269c4e27db58ae8673e5e","size":14239,"data":"","first_seen":"2023-03-07T01:14:45Z","last_seen":"2026-08-12T04:17:37.508353Z","times_seen":23493,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"ba8f3f237e7289599b94e317bf264ec4","sha1":"e502dc0c21a717791b0cd40a06723d940be9d003","sha256":"dd45232cd4d47ce120725b041e6319792e16dc9af8e362456a18cc6e177257f6","sha512":"72294026a374eca173e38cc5f01c41b76065198bde762a18abb0faf71f4ce749219e43cfd828df5014c6aa2a727928930802b50b4f3911b83b0e467ac84886f5","ssdeep":"768:XcHgp3hoNS7TVN156ui+QneYGgjUvz6TLRfy1/ph1bdEOrZTFZzrXrlYnuLXTJAj:XcSiNS7r10+Q+wfyLh1bdEOrZTFZHXrs","tlshash":"1623f98472e074e643bb15b2a4ff221673325a24ff0650c4e225e0e67a7de854267f6e","size":46560,"data":"","first_seen":"2023-03-14T00:45:17Z","last_seen":"2026-08-11T19:51:03.097754Z","times_seen":505,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"eventHandler","is_inline":false,"md5":"43e28c5553d54ed2964bd5147521769b","sha1":"0a2b8c3db330a47aa7b9195e6dfdf944adb9240d","sha256":"d63026c985dc46aeb316574b7bf1828080c906238e35d5e34cb80414c0e70d23","sha512":"6dda085e4196167cf64287cb675c05b09bdaa291decebd1bea2b52ccdbd380de5875dc233fa3d439559413693f1e7974f485d60a2c1541bf62a8887bf5ff9811","ssdeep":"","tlshash":"1b80000c0a20c0882a00af00e000c202a0c2200f0220238ce823bce2a83c888808fea0","size":38,"data":"","first_seen":"2023-04-10T16:02:06Z","last_seen":"2026-08-12T03:58:35.105132Z","times_seen":191425,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtm.js?id=GTM-TR979K9","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"568412c5d5160c0137a414cdf9d4564e","sha1":"e352c9efc563aa6c1c712513e07ffcbda457bdca","sha256":"dae2f2dabe7b120039852e81c29f38aa10cc54609f4dc4eaa30614864a6b0ab5","sha512":"5cd7ba58c223043c11a2eb9c6f7bd039e031b97757b96baf8a27128f2556a177a26d5ba385dfd65af74cb9a90d4d797d78f2003713c1f04ba60928ce2b65a39c","ssdeep":"6144:U9w27sRU0jUecP69FMxmRkqn0hdBzcPmfxNf3Ejh8GaCoXaW6GOHJDI+N:Ww27sC3XP69V3K2MCOavGOHJk+N","tlshash":"2dc419ceb3c674769392f468903f018b667a28e2b44cd895f089ccd42e7469a5273f7d","size":564249,"data":"","first_seen":"2026-07-27T09:44:08.321369Z","last_seen":"2026-07-27T14:04:41.07346Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"46a2ecef0f301d82744763fc408707f8","sha1":"059c1d251d40b4f3d002707f423cebbb464a1c3a","sha256":"28ad447ccc7521c0472141eb4a30fcb897651fdd2155539db1cc7f003515e3b6","sha512":"3687055b394d4509b1f1393928ae5a52d0ce1f03b982caa7388c656af6202d35f319f669c39f29e1bc6d8595eab7afac30427dbec246d4184c08a3034fe6dfe8","ssdeep":"","tlshash":"6ae07d195c73c93988040816b175e584fa811713e075e88548c9c94c7060fda4e00c05","size":309,"data":"","first_seen":"2025-11-14T13:31:04.837718Z","last_seen":"2026-07-27T14:04:41.120543Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"01573e2eba283e3d1747ec12a4cef579","sha1":"51cedf1fc28462aa002e1a0f5b93c05b1e90abf7","sha256":"bcb84f09fada1601e53496e6af448f36436dd7e010bdf0728743e19085a3f925","sha512":"59eca80b14d9de1868de6735dabb0e680beab2a0d03df021d24fc82fb47ebb056544230d1257953716555c59e1d63eabdbda4cb436267bf4b31676783fa4e5e8","ssdeep":"","tlshash":"65c09bb82d475c7151ff4f930b5f655524923310459005250c0561552635d775195d75","size":132,"data":"","first_seen":"2025-09-05T07:23:20.299299Z","last_seen":"2026-07-27T14:04:41.121728Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","size":272133,"data":"","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-29T06:17:50.104199Z","times_seen":1066,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"07a7aa06f23b3015c4ab85031706b304","sha1":"111d633f289bbcc8bfd273b1fec82cc38c168456","sha256":"730fadca01772a90c954866c7ffb44f5927869409715047f1039c29fd7718f18","sha512":"3d9abb49f20992d9836df68c60fa64841e201eb09e257bc461b580c62cbd581ad067fe40470b42bfda6e69b4fd54a02bca3136af69b5d1f32136a0643a46008c","ssdeep":"","tlshash":"05319db83dd2b9b203f3af3662fff04065b11217680586c05759c55d5db729ad43361e","size":1552,"data":"","first_seen":"2024-08-21T10:16:40.245038Z","last_seen":"2026-08-08T15:16:14.845066Z","times_seen":108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"ccd06a1cd8597c98e67874f2e28c2cb4","sha1":"0b230303c664322a487e788e12a0c79f00fa486d","sha256":"ecf2b1d0ffede5bcb12c43467bbe387581eeb723f87f9264490896a319f89fa4","sha512":"27c6fef308ad3447e98ff8153113b5b56816a5760509477768b950705cd87080857224a6835599dae749b2d54396a49a59942f1cbba92a6abe7697e24d364ea1","ssdeep":"","tlshash":"28f05cf961123e831e3a24b56417692e1c73a42346c1b7503a2127400ab46b6d5bbd7c","size":457,"data":"","first_seen":"2023-03-07T12:26:14Z","last_seen":"2026-08-11T02:18:22.998447Z","times_seen":5683,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"9f66bf90cd314a56a83f5e2a89cb19ed","sha1":"1fd176a24be83db629bd3842c179669fa5f5dc5e","sha256":"67bb72ca8c86a93fb2148e50a4f3f246cf31e18e3c1efc428bb17a1890715784","sha512":"f137ef7bac97dc3108ed34c6f0c1aa7abfd293c11f5ecf099dc3f8687628f58ce08793647e6bda1b02593007080179e6803bd370edeabac86d958f7147d94ee1","ssdeep":"192:DLQF4iqKyPMWqP48M24YDArQQvP+ksk1uK6R8t9DndFYEgVcaJd5/FgqIHX/h1OM:AwKyPMWqP48M24ekBOks6uDR8tNdFYE1","tlshash":"8d32faf8710d3bf7597b12aa58df128ea835b23b88439531190de0c99478e5a13f2e79","size":11079,"data":"","first_seen":"2023-03-07T12:26:14Z","last_seen":"2026-08-09T21:00:45.590535Z","times_seen":923,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"ad45268588b7d72f0fb235d496750911","sha1":"9ae8d084d35cc19c2189b29efb0a6c0afd044a14","sha256":"2e6177cce91ead4d679fdc15bd5992d23b615087626e30b168c234054e44e0ad","sha512":"a22feefe521f1f3e68f911faba1c0747cfb5b045eaaec1c813a20dd306889975711891b62bc0bcb4634d8d0da5f7b78b0fa69d32c99a69a74715c7fcf4462250","ssdeep":"","tlshash":"9f216bdc662cd8ead6502e6c15bc8e7358c98d3fd6736c444964c88c477d0769b9cc82","size":1361,"data":"","first_seen":"2026-07-27T07:14:06.850444Z","last_seen":"2026-07-27T14:04:41.109204Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"de1b9c0805725045227b2ba13ff67c15","sha1":"68816693e661051d4a2de49f4da07f781b4e3736","sha256":"548b381c676fc88ce86366a567884793d8d95c4a26e2df6d3965c18a840cbc6c","sha512":"8eb0a1b22030b17aa60ee010de04cd505e28d9717a347e9ac3d63a5d70b2cdb7684803fde0230934766f7a6da9251ad611a9cf9f14d134328f66ce3be19c7cdc","ssdeep":"","tlshash":"f7f02b0d29cd8b0150d99acd5c2fd8684de4598e2c13e855f06efcbc4db03adf42a450","size":565,"data":"","first_seen":"2026-07-01T02:48:47.808224Z","last_seen":"2026-07-27T14:04:41.109723Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"4731b8d3d6130ef1d2560596fcfc7f90","sha1":"917a4ac1866556584d7e1a6fc5dcb3914c67ef01","sha256":"56a57e9f9dc7bfda5f54aa8534cb616a4ded08f1ff967c02b1ee9e7e9479cae1","sha512":"e27f7b0421901459a92c2d16a733873452576505f4d6d254903be293411e91b6a51f0394c99bd1ce810c9f7aeebc7b81f432aae16256cf8dd8b1198d6b6b6a2c","ssdeep":"192:lIsHw90jCuehnsV1w4BVpsosTAnZOICuehnsqy4G+K8i:9gnsvwEn0nsDDDH","tlshash":"c0e109ff2703175cbc265ee1ba3c0695257d14a3ba23585f86f85e48acc09fdb210a9c","size":7172,"data":"","first_seen":"2026-07-01T02:48:47.80908Z","last_seen":"2026-07-27T14:04:41.110322Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"65dae6db81075d5553a933a4d6ace666","sha1":"6bf44a1950b2d236f953d2f681fd29c94590b62d","sha256":"7efd364129466c4a9e17ee1848036d8591ec2909053364d5285e14efecb14d63","sha512":"6d24b87dd528a7500440164b3897158f6deaa3442928d84d3dc44ef0c38e7926048a9bcd82f03f0a09ec7dcdba5df3b42d838d3f0347be8b6e2b020ca0f1c3d7","ssdeep":"","tlshash":"78e0c0db70121c71619f86fa23b5a1247153350d78091c22fdfd88242f58687482229c","size":373,"data":"","first_seen":"2026-07-27T07:14:06.863321Z","last_seen":"2026-07-27T14:04:41.110855Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"c0f4d89727db28a56002bf58de55618d","sha1":"639ab7c4bdb51d5a4379f725e781b9af159e4e54","sha256":"6d4e528acdcd1f78d0ff22258bdbca86d2a96d9332c754f3feefe69ec306bbe5","sha512":"9c2fbdf7b4c43c6f2fafd880688ce2018c32d8aa1b1b4f1a84132eff76d3dd211608d219b68ca030db1ce3b8a6a37a8bfecc6c6c88cc8c0c267f24547fb6be57","ssdeep":"","tlshash":"5cc04c3005203a97127d0cd1785b6d4a2d13993112c4fb6161648a5582744a681bb9f9","size":140,"data":"","first_seen":"2023-03-07T12:26:14Z","last_seen":"2026-08-10T20:05:06.87635Z","times_seen":3463,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"bd5f648f4fa75f28b17faffe66049687","sha1":"c9c2791b295684a919a2bfd7b7e2ef5aab3c178a","sha256":"1a4ba4a340b3f30596d32c1b272ddcfdbf3ccb8e89c2fa917ea60469017aeee4","sha512":"b5fb5df2a220f64f8fa7daae2a42e5682c5d17b9bae13cef72067688f1d85759fd46d8ca267458a27c6009707e5bbe131a1bea5f7ed5aa4704f694c87e019da9","ssdeep":"","tlshash":"00b012b7309574334c4630eb3a340244344091202c430724140cb9040608dc14a771c0","size":87,"data":"","first_seen":"2023-03-07T01:06:26Z","last_seen":"2026-08-12T02:24:14.63751Z","times_seen":30557,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"608c1fe088875512933a33ce9be78a0d","sha1":"802b262809d369d835fe8c91447d5029e87f819e","sha256":"427657b55ab84e09ad993daf6cca45aa1338431d79306c0218504f8a5af684bf","sha512":"d440f708937c4a6cabb231c20e5ff55e8d1feb63690febfd1ee6b60bfd65d573670164b2f64de81dcdcf3caed5a934e87794778d30fb179aebab2099823b50e5","ssdeep":"","tlshash":"2c410265e19510bb47bb9ab6f3ffb33536a78062f90151d6d10804ac2bf4794d3c2b4a","size":2286,"data":"","first_seen":"2026-07-27T07:14:06.867501Z","last_seen":"2026-07-27T14:04:41.112495Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d63e8893807bfc63c74fe922585937d1","sha1":"a6fe016a7fa9cae9499e25aad6ff53fd846b4e29","sha256":"0bea509cf133c93789f27bd326d419cff0eb31e37bd040c0ccbe601f5a08067f","sha512":"f5f4a3485a50646ad8241a0c925d71604c25553735bbc8134364b9ce947cdbee9f5137642e7b0b11d6437f8694515f20c0e6bd016230697e16097a11a7d3256d","ssdeep":"","tlshash":"d3b0120000b36947e29085e93e4951014fc745a80b04880cc084fa460f3018192c1289","size":101,"data":"","first_seen":"2024-03-28T23:40:36Z","last_seen":"2026-08-11T07:02:07.536104Z","times_seen":47,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e4ba6c1727603241a41b245d89c64c79","sha1":"1df3e9e771c7401733d7ac752c2ae48a219dd344","sha256":"8888fa3a0a76b3eb40e59a4f518ca1a611eb70aba25b2f6aacf7f1e6aaa820f8","sha512":"e31ce1e150eb0df0bad83cfd4f1827c26fcfc24bb9d40927266d230797150909a1e7131d75a9495d3ef6362b0318d0d8b493e5256d54dd51d87862498595f42b","ssdeep":"","tlshash":"cfc08c4069408ecb12a02ae8311022e78de22212b960ccc21aa9e0908e92885c888107","size":142,"data":"","first_seen":"2026-07-27T07:14:06.870608Z","last_seen":"2026-07-27T14:04:41.113692Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"89854acedd6a6e1de76a0393ea2049c5","sha1":"feb08aaadd8c763566f0118d691158ddd5de4d7b","sha256":"288506d611e0ebd35d920c6f5886928a0ca1e245098121f1da3dbb887751e239","sha512":"0b3a62a5a2e23d30081d09960ea1bea5fe5ff425f6a74087fea6316a7799ff704e30a81367baa7039ed39b6db5dd973698fa89e867a5b7e8a3082b0d4f93e1a7","ssdeep":"","tlshash":"b0111f2886a4247d62cb031cba9adf90062d9032714c9f04b76d443dfbd708a8b42745","size":1045,"data":"","first_seen":"2026-07-27T07:14:06.872469Z","last_seen":"2026-07-27T14:04:41.114315Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"eb447829a480c8907067bf4ed6e66616","sha1":"313d4412282504ffdbbdd780e4ca7613db274df2","sha256":"e1d592ac1f7f482ba0effc6edfbc6f188b4ce11bb0148cfc9455357478027166","sha512":"9e7953a30c30b74dfe451e92d681e4363d3ceaff33591905f59a4643c6896f7d0e3155fd47bbe017baac50b55d42fb1f1861e6d3dece97ac9939630cc7a8757c","ssdeep":"","tlshash":"a2b01285308728818099e260ab52fc01499215cf064ecd4429d4df64afa1480f4c231f","size":92,"data":"","first_seen":"2024-04-09T14:23:34Z","last_seen":"2026-08-12T04:10:43.091792Z","times_seen":4251,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"bfd1b938d131211ef645076541593de0","sha1":"c3c7df7e2cce0da77f5ffddea83acdffeb77218c","sha256":"3f2e0ee83dd5f0e5700188e03ebb5210bc9696ec3a1ac65957bdf0c1fa9a97ef","sha512":"6c15224c6c6783330ad24f9a0681418d9944f25206806faee96873d4ba98144f3a20222204e5d9be4019bd0d33d261ebf678ecab915cf2da3e20aaa45108eb18","ssdeep":"","tlshash":"753174161f5b4ab703b92789acca1f43c8d8557e9714c6c8a6e85ca402d4ca4f0f7a85","size":1748,"data":"","first_seen":"2026-07-27T07:14:06.875102Z","last_seen":"2026-07-27T14:04:41.115404Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"be21d3d582ea71980fb3782ce1003712","sha1":"c77234e93de97ac7dc46ab623196f49b8bb52679","sha256":"24b7f56436c069f9e8bdbb3e4aace564239e604e0c5ceb168b11d728ab6ffc99","sha512":"681f2265ed508a973a4ab9025eb3326372470b8f5e0f059ac9c89fd87b019a9bb527b903f9f80b1d798a8707e32e3ea371a7c36f112e5d8061e441001f87eadd","ssdeep":"","tlshash":"04d09535339415d142fc1290e286315b9fc77597c504c6d5d20854848bf247c826cb55","size":251,"data":"","first_seen":"2026-07-27T07:14:06.877099Z","last_seen":"2026-07-27T14:04:41.116009Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"2c7f34fe08e7769b13105e957a85efd3","sha1":"9f749fe8f1b5ea87a9da194b12030d46da07571d","sha256":"57dc37fc51b8a87734308a78515c515c4cf9cfe793d5113f8c134b80d84ea4d4","sha512":"12a0c197cb1ff559bc7bc7b78c928435fa199ccededd1db50de19f6b5740edeca92ef7488454991752fe2918d6a7b53fc9fd2216eeb9b635daa1055e0020d34d","ssdeep":"","tlshash":"51e0261d34ed29c1a5bfb620b7ffc0142633358732042191763c4eea2f66a988681b19","size":376,"data":"","first_seen":"2025-10-17T12:23:20.615672Z","last_seen":"2026-08-08T04:49:43.532832Z","times_seen":95,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"4b4aa6f38467163a4b1609c341ba8705","sha1":"6d3803df572a5de16abc8fa35dfa910d8a05e213","sha256":"989587c7f27937045efcb582363cdbea827b14c8c5c0b039d18be24b26f12b18","sha512":"8625d8a58e1af48d0174db6fdee5e144eaa7bffe41bccd9ba3baeaa45ebbe5c57d31ecc475e97e65df35cb5eaf431bb08024e7f686dd45ca78c29bdeeedf8da5","ssdeep":"","tlshash":"4ad0a708e34b38639aaca6b0f2f786180e675605720910f190988ec61e1965480c475d","size":227,"data":"","first_seen":"2026-06-14T20:37:44.920903Z","last_seen":"2026-07-27T14:04:41.117092Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"cca5482eff0286d7249afbcf33cbd3e2","sha1":"42b3048857639f5566d5cd8cf48c26c128a7d4a6","sha256":"580465ffe6fa8a9cfbd7a612d3dfb7d8882a8fa9549c8ba347e1bab4a7d78290","sha512":"e029c4c0d14caa30e0704b1c79d8ede65fa09b7ec2c668e7f45d8f75b423b306b7fd5eb242eab1d87ae4cb2238eccc7d626fb4bee678fb0ac3f215f7a89b4c05","ssdeep":"","tlshash":"c1e0ab3d3c3180454ba200b4c0a7f1283a2a30a80040e95788aa98286cf0bca6d45884","size":416,"data":"","first_seen":"2026-07-27T07:14:06.882689Z","last_seen":"2026-07-27T14:04:41.117655Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"c2c4e2a562e06e1cb22293a5b920aca6","sha1":"a7b5a369ac4883f1ee7fa701b238d20238b675ca","sha256":"698e93fe491cc7bbf07a470579a33dbd0db53c19142b7be41ebfd39a23aef11f","sha512":"7117e879a8a4d8c8e1acd1a34247a7cf420128da970ed42975d6a04665ec571dc388c62fc3b50deda0b9e896f599d56ffbc28b25a45119cd79f5f45e3e58c178","ssdeep":"192:zofOLSBW36LJ2iBYDe7qBoegqC4Wxaftm9Norr7dWSjSWfYN:zofOLSk36FJBYDeubjCWtm9Norr7EgPW","tlshash":"b712b4ec71dab056238721e054afb005f13aaaa431d99cd0db90d9e17e708c961b3fe9","size":9445,"data":"","first_seen":"2023-08-08T23:25:56Z","last_seen":"2026-08-11T20:39:17.481881Z","times_seen":21533,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/swiper/swiper-bundle.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"62c6f89aad925efbdb3aa034c0a7ae69","sha1":"55cd3831254bcd17bad5b9c933d2bf36b05bec9c","sha256":"e43a5802d5ed9337da2e507c39c43080de4305db7e520e22fe3ec9fd83c1b72f","sha512":"bfea48cea1157f4f8ee742ecf6c730e830d94f93a7e86e709d72cb3128d895f249acd7be64258af38f4f0546100da81929cdb5db958a6096375ee80b370c0f7c","ssdeep":"3072:BJkI9s9zLjkTbkC75OrynIm1/T5W9D/EL74ami0lLHb:BJv9YzLjkTbkC9OrynImRT5W9D/iP0lP","tlshash":"ddd30a997320b5a552e726cb93a8c511a2b50800b40ad5e870bd4c6b6d7ec9c13feffd","size":135676,"data":"","first_seen":"2023-03-07T22:59:15Z","last_seen":"2026-08-07T20:31:30.055922Z","times_seen":234,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/gsap.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"068f978b15a6125528fb14dd3d36cd5f","sha1":"e54d17d709baa69810dcee71d1cb2fce86348e15","sha256":"386a292b805ec5376c149711c08d9013658fd08879a7ac9a62a99e14310c397a","sha512":"826c019a24d5111e7b3778d84b72e29c0f5e6fc687ac9b9ae62403ef2a9808a6b9c7a26373b54355a100d237b42eed1b3fd8fbb448d5dfed6a526ea5a0ef7d2b","ssdeep":"1536:uNBwKyDBpQvvtM9eqZ08XJjhBhWDs06RPewGanrY:uwNsCC85jhBhLLRPepEs","tlshash":"ae63f9dd3292b42343965161447f0a0bf33ba998640f0918f269e5ce7d3c99d42bbf7a","size":71017,"data":"","first_seen":"2023-03-08T14:21:43Z","last_seen":"2026-08-10T14:54:10.753294Z","times_seen":1033,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/lazyload/lazyload.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"806627ba781d7a849351f719773bda6d","sha1":"820f1b7d31e1ce73d83b77e5ea370440ac72fbcf","sha256":"a8c41ff83876c02fa1984586295a99e68f98e302a41ed6c9cbb6ee791690ad54","sha512":"dea0769f542dd82540b031ffad8646c39dbd3fdb9f11918210d93b5bba74d5907d3fe219d9b1bbcbe0df543481a1aeb1a0805f67c6ca7c053a7f84b788ed0f12","ssdeep":"192:pDDu5/25c7ZTV8fJYeFt827TSWmAT/iCIicgGBoTkjeGlZ1eaQEBOK:pXw/s0ViPRTQQIiDGBoTIlV","tlshash":"2c0243487d46746b3973f0f6219f02ca353b28426ced6950a5a1f8f82d7854d1863fbd","size":8772,"data":"","first_seen":"2023-03-08T09:12:26Z","last_seen":"2026-07-27T14:04:41.080813Z","times_seen":209,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"55bf675ab55dd3ae7753244014fc360d","sha1":"714cfa2ee37cbe011853f4612fab1f1990d58b40","sha256":"c6d6355fe4207361323a0df1fcb3959968f9f7402f50df844e9fa343eb2b1c23","sha512":"0ff1e58155bafa144e38e98648bfed4d845bb9b51d8f7cf5a178d4f3f4ad8fb872a7317f6de3b55f088e3054aa4e76e6aa5852a1585b50c9140e83db71302887","ssdeep":"","tlshash":"2d11106829e76808920edbfa316f878d20b6b4065d80cd90c149d4a8a559e88009177c","size":887,"data":"","first_seen":"2025-09-05T07:23:20.292194Z","last_seen":"2026-07-27T14:04:41.119939Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"9a98016751e498c06d434cc022ca1a44","sha1":"6aa9af5fe436eab9c313de9f0bea072c04637624","sha256":"da9ed5720b674f0d297fe621ac2d8d518c4e622bef1e9b0d4ae489dee9aa43f8","sha512":"de3bf5e595ed42258fcde6d93ad40c0d9dc8e523f8e01fcc93ca6588588fad07a26d7115c6583486be286a6cd7fa35720091876afb0aaa2de4de58c370151e3d","ssdeep":"1536:ruFT4Dz18VoHGwkbrhhE87DbkI0c9cEpgqXjaDMf:i4DzjHGwkbfRDbn0czpyE","tlshash":"afb3648cfa81b4da47e775b0105f500ba1b65b45f84e8980f365e9c86c7e88ea037f6d","size":115127,"data":"","first_seen":"2023-11-03T09:26:42Z","last_seen":"2026-08-11T19:15:39.184203Z","times_seen":17060,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"bd4a0f15980886a95cc5cbd16b77eae7","sha1":"bfb0474f16e017c1ce9b33441b9b3f5d713a66f5","sha256":"998a575c7b376128a98e6d67e29c42e1726aac3489cf2c0b2aaebf6f6ad0b546","sha512":"8dee1b601b4f2d5c1ce3e7a589c4dba23d1ff4646d9a11a1b4a0bad5c314e075b4893da7632cb83bde954148e02e7397b18a71f999d9808774ee60cf4ee4b3ca","ssdeep":"","tlshash":"ef31535b3466304255a674705bc7cc1b706c4f24a2bc0a9cc7a3cef17df8a9d9429f19","size":1836,"data":"","first_seen":"2023-03-08T14:28:40Z","last_seen":"2026-08-11T19:51:03.048135Z","times_seen":7557,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=4ef53fe41c14a48b294541d9fc37387e","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"4ef53fe41c14a48b294541d9fc37387e","sha1":"b40c361471225c030e272f10b8d32307b5878223","sha256":"cc039b37e34853a9bef9d693ebc4366b38d9cec1aa91e0109196cd62f870ae52","sha512":"52522b58d673c142bfa0b2454500f1aa944ffe41b4ab7aa93ed5baf35b97757e6923de033b2f509de27081a4c9e706d2b7c8aedfeba0fa6c9c560aa082e6b997","ssdeep":"384:CCppZUiNztDnuU1klMOdICwyFfJn22hxZDlTROvgqjTq:C2oWJlnWN5J2aROQ","tlshash":"d572314dfec1b4910363e526926f940ef3bb1a56b41fa9d0826ec1e09c7858f4137e5d","size":17164,"data":"","first_seen":"2023-05-07T19:54:55Z","last_seen":"2026-08-09T17:33:17.735533Z","times_seen":2082,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10854757526\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"95bc8ac262143be8430535f5831f7caa","sha1":"870f365a97b2d40220fad1848c1241777e28202f","sha256":"b79a7c28774208207f6c6083fa6d8af0f7b80ace8edb8b4282cc131cde10859b","sha512":"c7437617d0e39862efc10eb5aee6924894d335bf69397528f56038679e3cf910f1d81e1949e2ed4c14f0e307359fa48faf7609c32f4f578a6f9cdf62c7b89beb","ssdeep":"6144:9iGcU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+TGa1oXxH:9iGpYqP69V3KqX1OxH","tlshash":"9ba409cdb3d670629392f478503f018ba57a29e2f448c899f189dce42e7465a8277f7c","size":450200,"data":"","first_seen":"2026-07-27T09:44:08.326795Z","last_seen":"2026-07-27T14:04:41.079693Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-VLMFGK450H\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"c7181d226a149996c1e2734df1e605a7","sha1":"f9214e6296e939b48129163a718286f2050094b9","sha256":"3be658553e4a7b7772974cc90a435463ac5b5ab6762920b47cde929e167eec75","sha512":"03eb150b8d097a56ff4d043748ce20e844594f86f767b702dd3d9712cc9e69535665cc9c7b7c0e196fb0a9eaa39e6a46abcfa4b3859a35d6bd7e8e521bbbb1e0","ssdeep":"6144:7YIwQMU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjKUGxVGaHoXuARRrG:7YnQ51WLP69V3KGUGxVHOfG","tlshash":"8fc40aceb3d674265396f478503f01cba97b25e2b45cc89ab0c9cce02d7465a8267f78","size":548045,"data":"","first_seen":"2026-07-27T09:44:08.353171Z","last_seen":"2026-07-27T14:04:41.103415Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/js/jquery.sticky-sidebar.js?ver=2.6.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"6422e87b67d4c17b7f2fe5b64d0fee5a","sha1":"57f5d7a1c02282ef509f288489aac1e5f6eb579f","sha256":"d1ceaa1c95b6a254d50c99eb7a2212a972e0cf0b791910f458c7f3536c1643f8","sha512":"bfe972ad99cb523795b1d4a1692c78bb0e9c948cd17f27393e7b4312e81f0183365d9a3f74f9e10f1c0901b26e03bbbcba09e4760a45ef7cb5d9d1d90e51dc22","ssdeep":"192:cUytjBjGmaqHmByUFDi/OgqYVNUjyCDBk1D9TgsNb8mbYJuSEahR8R6:H4jGmaq+s20VeBS1D9TMmtohR8R6","tlshash":"e272e60a37602a3101da903ad0df82dc6575dd7b8294e89cbd3cebc59e6474a82d5bfc","size":16952,"data":"","first_seen":"2023-03-12T06:13:14Z","last_seen":"2026-08-09T08:18:56.765999Z","times_seen":116,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"dda652db133fddb9b80a05c6d1b5c540","sha1":"60c8514c57a5db2980c4b046b0dd479bd427357b","sha256":"c1a9a3e223bad631dff12d33b5499eb145cb08d8621c20d9d73870e78d97afe4","sha512":"05cb3673448a79aa81887c60a82aba51f9a843dc13ab4fc39b3e6d8ae7d632732d9afefaf72fc3d197c2795a3364fdfd4f83c9b628644d98f1c9017bfd435e62","ssdeep":"192:wRNh5qCAj4ZKBOZi9pFdInflm7ukrLjS9f89dmpb:wRrfViT685kfX","tlshash":"8cf102b8730569736dcba1a96077034326232027548a54287738dcff8dfce552577bb9","size":8171,"data":"","first_seen":"2023-03-13T14:32:06Z","last_seen":"2026-08-11T20:39:17.421506Z","times_seen":50865,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10784971490\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"5080d06e7ec50f41156162eb72bec03e","sha1":"8644606357680248176523d983d955a8826c94fe","sha256":"c82d11bcee93fb3083ed8a24945f7c29e688adc4e87b28dee336b986e5b3c251","sha512":"5d62b98718378fa86dcee9fb3ff8ae4dd128a6fbf4fe6fe09d7ebfdecfb9eb03ab529a4192d47caf4f35ade249760c87862f1409a863c21db9cfd7e705abae96","ssdeep":"6144:AUiWU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+xTGawoXtS:AUivYqP69V3KqxXwOtS","tlshash":"55a419cdb3d670629396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","size":454923,"data":"","first_seen":"2026-07-27T09:44:08.322291Z","last_seen":"2026-07-27T14:04:41.076592Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/hooks.min.js?ver=c6aec9a8d4e5a5d543a1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"7bd48eb3bd568033e96caf0fb62e6690","sha1":"b38066999294b99d92d95db5f38bc15707eb1f22","sha256":"7868467c94a5aa0b3f11ef542f45287967f9627b3b5acdc86e47f8f77a126596","sha512":"7fec30cc4223c39d9ee3ccbba8cc66c90467a9987279334be43aae4c251f6c618f6b3ccf223147c79ce6c463c89f0ceb0d0e4e471ad9ab6574ab32af728a535f","ssdeep":"96:+5gEBc27Du/3+ZrURT19KrAgQNSt5s8G07AajURg/o0K:Ulc2Hq3RRB94Qkt2WAeg0K","tlshash":"dca113c474c3b420e3737063a07f5456b27e9ae5782c8481d25c94d57d73a8ed077aad","size":4627,"data":"","first_seen":"2023-08-08T23:25:56Z","last_seen":"2026-08-11T20:39:17.474134Z","times_seen":22959,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/floatbox/floatbox.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"7b29b4799fab9900d5c5058d83a85f07","sha1":"4af4d14e4768c8bd921460aa8a5c5f187681f65d","sha256":"b507d035bb7c0e0d06f4245d4b48321216f291abc57739a5013ea1c67b9a1c7f","sha512":"54728b7b07e071c4056f1d45231dfd5ebea173c32b022b17e8525140bc121ac1a54adfd4bd214dcee063fd82b26ef243e4a7c67a7d623b8415433364c0109509","ssdeep":"192:Sq3z9uRZFsifNi3fkojH/LqnPjRpciJni8:WRZF3FdqfLqnPjRpcuni8","tlshash":"b0020ce53784b429e36718fa90df440f7239aa456c4e4901b569f15c3438abb42bfeac","size":8519,"data":"","first_seen":"2026-05-20T00:20:36.573463Z","last_seen":"2026-07-27T14:04:41.077156Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/dom-ready.min.js?ver=392bdd43726760d1f3ca","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"b0b80b0256874e70acdc820b52bbf1aa","sha1":"9aace9a7989736bf535d65f229d0c10e9acea41b","sha256":"166c7c3bb5f76f977a9f2a5490589b3466374eb2b3f064802e56f08bad71fbf0","sha512":"bc0f09e99b8dd01249e4d43216c9aaa46edf2b748d54b8f21091cce04e5fc5a4b0d0f011f580c9ff4349b4d39a09847bf9908042869dca4d6b587731eb19118e","ssdeep":"","tlshash":"e3f0c060b585e9f062b990e5003f5381f232b476262170d18f4cd8b4acb0a9a037ec9f","size":498,"data":"","first_seen":"2023-03-07T01:06:59Z","last_seen":"2026-08-11T19:55:22.859738Z","times_seen":8394,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=f4d12a887a23a8c5755fd2b956bc8fcf","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"443293948084ca0fe29518ebcd01dc6b","sha1":"50a0e0c80b86e35426c6ce8b83bf625ec1120e6d","sha256":"1f751d3740ea83b3d42100e1bf23b0b17d5b4c4ff3bdf9badd42ba03a814896f","sha512":"7b71d7586e94b5f30dc0553ae57e9a4f25c33c8ef2362e452e70e617da15825f6f24e4a44448d07f99c4fcfd7b0f61262dac9a658a0e0fa5bde01a782c763b0f","ssdeep":"","tlshash":"888186a83690a4f062b26b6012bfb389f7326c70359eb475d50d9455bd28d8b8067fec","size":3860,"data":"","first_seen":"2023-05-07T19:54:55Z","last_seen":"2026-08-04T23:26:38.556259Z","times_seen":347,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"a3a9e81362ff667c99f8c887addeb767","sha1":"c2bddebe286a3cd29d101168931bc314c268866a","sha256":"cddaa2b68afbf282041cc76140bc1496777f93d1bec597a5b68cb33abb3506dd","sha512":"3e060a29c535312dea787647c99c6aa078703dbb4ac2494b3399b48c5a8240df24b193b77b869584a3eac237af5be662406818b3ea739cfa65d7ba34334b5b2f","ssdeep":"","tlshash":"7711407c38e76808d20eebfe32afc78d64b6b4025e81cd90c149c4a8e519ec900d2b7c","size":887,"data":"","first_seen":"2025-09-05T07:23:20.291111Z","last_seen":"2026-07-27T14:04:41.106435Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10784971490","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"c559cc31fbfe47dfb2fce0e89498388f","sha1":"675d9de2190e7dde56333286a2e089dee48df726","sha256":"f0291c57a5ec5b7284e67a9a6313ec560383e3b2933408fee688d00ffa8f0b4d","sha512":"e87a3845724fafc51b84698e9282b7839a66d11728e70d650bf50e46c6b9939d1a7818343abd6b2b118ebddafa8a55e3e55cce98032bedeb467052662e02b0e3","ssdeep":"6144:AU3WU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+xTGawoXtS:AU3vYqP69V3KqxXwOtS","tlshash":"a9a419cdb3d670629396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","size":454912,"data":"","first_seen":"2026-07-27T07:14:06.808354Z","last_seen":"2026-07-27T14:04:41.058225Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/jquery/jquery.min.js?ver=3.7.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"826eb77e86b02ab7724fe3d0141ff87c","sha1":"79cd3587d565afe290076a8d36c31c305a573d18","sha256":"cb6f2d32c49d1c2b25e9ffc9aaafa3f83075346c01bcd4ae6eb187392a4292cf","sha512":"fc79fdb76763025dc39fac045a215ff155ef2f492a0e9640079d6f089fa6218af2b3ab7c6eaf636827dee9294e6939a95ab24554e870c976679c25567ad6374c","ssdeep":"1536:0RUX9uDgwxcy2KVBNwchN6SLaHEk2BSrBESp+a/IEk4aAocVi8SMBQ47GKO:sHNwcv9VBQpLl88SMBQ47GKO","tlshash":"7483f8df77ca702247ab30b9006f550bf276199d684d4400f159d8e9bcb8a4a827bf7e","size":87553,"data":"","first_seen":"2023-11-03T09:26:43Z","last_seen":"2026-08-12T03:58:34.9467Z","times_seen":1014924,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/ewww-image-optimizer/includes/lazysizes.min.js?ver=721","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"0ce7aaa5fa8ac9d7a1b5703cce48f633","sha1":"62846540e8509f8d0a2ffcc7e28564137a3b97c3","sha256":"8875034ea813fa8a38f1e262928f4f2f74712e947efff24d07e49b0ec328ea4a","sha512":"b63bb89fe30f85ac882befb1a20ec8d36d60074086658a72a21aab50d76527952cd26bc9eba5c66487b6f925c8fd0c1e7bd1b8d667f82b1ecf8b3dc3c99f2b3e","ssdeep":"384:3QPSgBtTi+SgadWyD9DPSjkSweSJ6CqbYxFLGvQHonmzVqGebOO7go3A1qn3NTEI:3Q9BtTi+SgagyDZSkSwBJ6CqbYx5GvQI","tlshash":"ef62e8ee361979b3795b10f1554f630b613235379d0b9820aa39d8e28d3ccda6737a2c","size":15774,"data":"","first_seen":"2023-07-21T15:58:52Z","last_seen":"2026-08-08T16:13:07.64173Z","times_seen":1095,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","size":18024,"data":"","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-08-12T03:05:51.919266Z","times_seen":8374,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/cssrelpreload.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"950a604ebec13af476f3a5e304112f14","sha1":"490efa06efbd0cd63393704bb3dbc70a018f75e2","sha256":"664f6d2b747d802a76801d4948aa59ce5c7dcb25c5e245c813c42a2346efb867","sha512":"75064249c921dc823ed4174d3185f63cbc8f28491729ec83f3bcc6ae2ac47138661890ce90066e0a430d1a0e988ed28bf75efa1da69b5f48911a9e68e63d23ea","ssdeep":"","tlshash":"b921017a712a757242a295f0e6ff5709d4703a731bc28810c60148f5c67bf89942ef7d","size":1363,"data":"","first_seen":"2026-05-20T00:20:36.583758Z","last_seen":"2026-07-27T14:04:41.09892Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"a39e45502bab7e9e26723e6ab243e8f8","sha1":"ac62aacd5ee3e7b64ce6a92b5d8e3fb523e34d16","sha256":"d62a7b7ec5313469ebff5c006b9068dc44d6d1c122cf787ffa29a10113b34060","sha512":"79cde67b82bcdd7ef5fd09298a967e7f6ec1a5a82f7211b822c2926513290f2fe564d9f70d814ad3918998b2a637ccf0a03670114d3ea8e3b4a0108cf9ecae7f","ssdeep":"96:J0nkQGgI/0l+Z6t8wRQs90sS29rKklRR7wW05W0Y/G:G3ZsDwkHAlRVwZ4u","tlshash":"b1a1513e3640bb725e9744e9f4aeed65a93037b6600b8c309124ecd2b47ccd04676a9a","size":4639,"data":"","first_seen":"2023-03-07T01:02:38Z","last_seen":"2026-08-12T00:44:07.29533Z","times_seen":35725,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google-analytics.com/analytics.js","fqdn":"www.google-analytics.com","domain":"google-analytics.com","tld":"com"},"ip":{"addr":"0.0.0.0","port":0,"asn":0,"as":"","country":"","country_code":"ZZ"},"introduction_type":"scriptElement","is_inline":false,"md5":"d39a8679ed70005ee063ea62886141a2","sha1":"52b556cb7bdbe59b9b1ab9415ff905b561b8399e","sha256":"b33ed8fd08f8cf0138f219167d4bb5817f1b09c1d9ac7431e833899ecfff40f1","sha512":"c65e2fe579412ea8ef38d29185f47dec1f4fb871ec28767c104821f1c3368793c4ff577ed58971d27a9bbac97fee734093766954f7e9d2fc0ff1cb687a0ab977","ssdeep":"96:A1VdZYqhPnjpsx4/eTe8qSMbqaQd6VL2Jyt9LdJoyayCVPVD5wdBf2PfCHiUr3:AXdZYqNjpm4yPqSMbqaQGL2QfdDayCZa","tlshash":"3ca1ca9929fb50210233b1bd1bafa918b63895236208dd61bd8c9264af94437d7f1bc9","size":4693,"data":"","first_seen":"2026-05-25T14:46:35.360433Z","last_seen":"2026-08-12T04:02:04.167152Z","times_seen":69291,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cabc67ec79b8c099721ffebfc601278e","sha1":"e24368f764ae5ade8ff962263ff462877faf2699","sha256":"3bf4358b1af171df647be8b1a5041a0e7d342245d2000f5c9035b4caad07129a","sha512":"72cec1b34319279456da2b4f76723b97fe2fb5ebae0cb4c2cf6afea07189db4b48c0cdf5b08a0ca4859d33697182bc8be1e817396b4fcc34c0e692e42daaf7fa","ssdeep":"","tlshash":"72e020feff452e3581f1215d1729798e46317cd6d2910c70242f8448417dc467093369","size":348,"data":"","first_seen":"2025-11-14T13:31:04.852983Z","last_seen":"2026-07-27T14:04:41.1194Z","times_seen":6,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.14.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"fd7ef2e4737acd74fd0dcdc3b515e304","sha1":"0d792b33f12a48ee8aaaf2560a63a5682470645b","sha256":"1d52e1ac7d3bc25a8b0ffc257153f9dd50249f96fe9a4df5e0d771241a69062c","sha512":"3c4358f9605f1cce097f36689099b8364c43cc360c3d4f5ca77be5cee43bb818c6562496f26ad57ce44c34c474fe4ccb6deed01a14ed259d498f5bc17f9532c7","ssdeep":"192:cvtxGU52v1wAsFYM3qypqEdSmNql44UakS:cvwQ3sFWqxUaP","tlshash":"e1d163c9b1c6f41503977724951f100ae33a695ef9094458eb18e9e2fcf444ea22bf79","size":6625,"data":"","first_seen":"2023-11-03T09:26:42Z","last_seen":"2026-08-11T20:39:17.433811Z","times_seen":32240,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/a11y.min.js?ver=7032343a947cfccf5608","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"8435e0a6bc86815f46db228163d21b25","sha1":"06047d8a8d8c45ac02bc116544284b8027479960","sha256":"d35faa1c0b45cc142295ae07a0c6e6e7824e0e64b58b81a83e7850251586e0df","sha512":"9fb550e519cc2a955df89c0fc6b16c6b27872de62c1b8afa49b24ce8a29df927b75985bcc861201c36a0de3092347089af064c127503cb5fe2034de809ba972c","ssdeep":"","tlshash":"575163763490767284bf7af25c3f828abb3199303a47e0448a1c9e967639d4d6032bd4","size":2448,"data":"","first_seen":"2023-08-09T03:39:54Z","last_seen":"2026-08-11T19:51:03.099454Z","times_seen":5061,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/js/app.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"28c64d6e93d7cc568258caaa8e46d1eb","sha1":"072e1b803eb5fc21ccb74709f74acef43f8049e7","sha256":"b6cb28f6faf1035dc455541531224e1c34ad84ee7166c45c5ed926aac3055153","sha512":"465c250d33ad1332fcd24302139348c395f08aa754605e0ff7007bd2cc8e2a2a774e671b764990f0342055e3586790c9471dd46687dd0f2b746de3b5f66a9b37","ssdeep":"6144:iktcHLNoFjGzFZMKsi1K2C+QJhNNwiKKO:iyCZWKKO","tlshash":"81342a8db31071b255e722aa415f8206b3722955b40ac8a07076cce65dbddcd13bbfbe","size":233931,"data":"","first_seen":"2026-07-27T07:14:06.714152Z","last_seen":"2026-07-27T14:04:41.081339Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-B4RQS3TZG8\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"45e4b68413538cd9ed3094caa88230a0","sha1":"ea93f14a8bc9b380e6ae252f93d550878f909d17","sha256":"95d2efff7d22fee66f47164d795fee7ab06d43574aec88aa25c36a31e2ed22a4","sha512":"e95510a0762ac38b82d58e510ec85434493e296c9bcecb7ec47a3a93782b731277889e4a4f6384ef93b5120dc6702a57d04fdf40c5e48f730d7e6457839afaca","ssdeep":"6144:ryc9aU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjEUGxVGa4oXuARR3S:r79D1WLP69V3KIUGxV4OLS","tlshash":"5bc40aceb3d674265396f478503f01cba97b25e2b49cc89ab1c9cce02d7464a8167f78","size":553034,"data":"","first_seen":"2026-07-27T09:44:08.344297Z","last_seen":"2026-07-27T14:04:41.078655Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"9ffeb32e2d9efbf8f70caabded242267","sha1":"3ad0c10e501ac2a9bfa18f9cd7e700219b378738","sha256":"5274f11e6fb32ae0cf2dfb9f8043272865c397a7c4223b4cfa7d50ea52fbde89","sha512":"8d6be545508a1c38278b8ad780c3758ae48a25e4e12eee443375aa56031d9b356f8c90f22d4f251140fa3f65603af40523165e33cae2e2d62fc78ec106e3d731","ssdeep":"192:5rprDN+sag6ifKIUpQI99P1tLm9kdgyq1+J3aCJQ+h4MPLORq:5rprxaefKI0LP19m4q1WW+h4Mjp","tlshash":"9952c8adb56679724eb721b8f03bd24f71b205de560d8940d19cc4f6282dc6e812bf78","size":13577,"data":"","first_seen":"2023-05-09T19:21:05Z","last_seen":"2026-08-12T03:58:48.191704Z","times_seen":929737,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/modernizr-custom.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"26120e08be7f8fe41e7e9f9ddce48e39","sha1":"c2dee2ddd76917ccbbf4ce9d99ae095659a18436","sha256":"5c25fb28f6f44215a4ccb741d6e9647bfc47392a942ae3a8c32e4b3868ee157a","sha512":"25712873ee57e98ac0cfaa40c9dfc3eab664d5fd77ca4c0be1b4d5214c5743ec03a888db886be3e46abbd4d3220ef1df24c2a1c9779d6f1865d974c197749cfd","ssdeep":"","tlshash":"716166b56a52f636467a74b0113f181d1c3b7d1b9d06c0a4f42ca3ad493c7d517abf24","size":3399,"data":"","first_seen":"2023-03-13T17:43:27Z","last_seen":"2026-07-27T14:04:41.076037Z","times_seen":10,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/js/exad-scripts.min.js?ver=2.6.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"107b04be5f05081af13b2200c2af1e99","sha1":"ed37746f762e2d6f141c1b862b4246247ee6349e","sha256":"2000f887c3ddc745754335ea333873d6c91a3b31ad082f46767d3ef2a57188ed","sha512":"b71dcd94d713ef861a67fedd3bfb073916a5cb2fd13e7f5ba4a43bef1c7b83d92fbd0e23a51753b35796ca216c384bd250c5f3d7902960e8f7e5f7092b18c7c3","ssdeep":"384:LMEsgB5JkdQ03+3vnbE/d2U5IXMf4mVM2kZpAEgRyEpAULE:4db3+3g/d2U5d22kZpAEEyarI","tlshash":"5af284297725683b858b69bf51cf0549387e2407e38835a4f2b14b7c1bede81352af78","size":34971,"data":"","first_seen":"2023-10-20T03:10:58Z","last_seen":"2026-07-27T14:04:41.104889Z","times_seen":57,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/ScrollTrigger.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cb4218b968091a06cf9447053f145af3","sha1":"c6447e0cc69d7f0aed49b54e6dc9f89cbd3cdfc6","sha256":"be08df326777a8b33cbcd047765e7dc6b8ddf620dcf64a85402ffc8fa006caab","sha512":"b47bd47144188b7e73029bc06b94cd4777cd84142456d92658a7da727a719a2c78fd54c6cf59468c85722cca7b80b800be0f9a2898e754aa245c9352e4667efe","ssdeep":"384:aKWjysakTk1ofF1rcaFf7kJUukoBxPN3uHt15P9Bvnjlk/ugeX/CdVmgjMPdACPr:JW1kGjr1t2nBT3y10Pk/CdIg3moT1i","tlshash":"4c0318ca3209b07366af6276912f0206733a14d9290f4124f625e8ec7c7e57d876bf6d","size":40115,"data":"","first_seen":"2023-03-08T14:21:43Z","last_seen":"2026-08-10T14:09:24.72502Z","times_seen":780,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=59d951b75d934ae23e0ea7f9776264aa","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"1329f9a0886f2ff3fb51c6f17277eb75","sha1":"dd530e798768376bfb8f72f7a188e0643a7b2631","sha256":"d03515268b17a0cbf88cd38aa108e0770a23e1338d22d2dc9e9a38ca6a89311b","sha512":"6c63128c53607c4e18336cf78b96e882238c2073d0f81289a510d8af1f4234752af2ec8c84c339c89a0ced5c84c206c651c101094b9c3492427e270047df7ed3","ssdeep":"768:doRA3CnJLHrkXO5FIXCZnmOkG3SWCi/n1:f8LkUFvmOkG3SWCiN","tlshash":"d1038598b2d2b0e246a75064453fd30bf23a6d55381ad480d212f9e17838eef9167f6e","size":40924,"data":"","first_seen":"2023-05-26T02:57:09Z","last_seen":"2026-08-03T00:31:35.423636Z","times_seen":281,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/trustpilot-reviews/review/assets/js/headerScript.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"52fe33c670b44657e774b78fa436d23f","sha1":"1e062e19a32cde0e6b51e902ffab985f31473d41","sha256":"0f00ba3e27c018779130e2601a80ea98375b85b395fc2d13861b94bdf101cf35","sha512":"4bad60c17933aeae6ea7847337b4c78747ffa3cf64302123fbb41db95727da66dfb75b5e1212ea568ef5da733dd5afee2bf7102f53474506a47502eff03154b0","ssdeep":"","tlshash":"7e311e493c66ca3400d6192aa1bfc71439275a117c57e864b0eecc783eb0f8eb855e8f","size":1549,"data":"","first_seen":"2023-03-07T12:03:30Z","last_seen":"2026-08-03T19:19:38.603459Z","times_seen":630,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"ede6e324cc50ed47fa289e1cb5efc6a8","sha1":"68e6a5a9612ce035c14cc6928e873cca2088e50f","sha256":"d5ef8ee29a79f5beb24bb741f357b12e4ea0572e92500bc32a4ac4914fd017a3","sha512":"62f194c9c6c8440deb36a094f5a115dbf29758bff5e5ad5d60a736267b5bb9ffedfe9f298bb5881c0a167f294e08c32ba2a2dc6fdfe6ddf49bb928aab044e18b","ssdeep":"","tlshash":"a221ced63514a02435d605e6fbbef388b87706ed5823a0e5c04ecd507164f9e51336cc","size":1127,"data":"","first_seen":"2025-09-05T07:23:20.280905Z","last_seen":"2026-07-27T14:04:41.121115Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","size":16281,"data":"","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-29T06:17:50.042235Z","times_seen":1081,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gtranslate/js/dwf.js?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"d5876bb3a13727dd5c3d1f376d438288","sha1":"9bc87e08a918f17b9184b07a2e0c256d063ae194","sha256":"cca48ecd2650cbc28b0008f22ddce42d8551866e942e2f2ca8534fed001c45c2","sha512":"241da2829901b277bdf3fd51db10327b54f022edd189ba2b5a2bc102650df48bd8cfa0f9c7768de84dd4766d7054f145552fe071833f618ed4a85a80f1744b5a","ssdeep":"384:3zCKMPZATN09S0mtJ+jqJ7+puDMwjUQvoW/i22fq:3VMhAh0M0sJ+jq5+pudN2C","tlshash":"67821a5612b6003f558703a6fcbe5f6c70bb13af8005a924ff6ecc47a999a84d737588","size":18516,"data":"","first_seen":"2023-05-16T22:18:58Z","last_seen":"2026-07-27T14:04:41.083464Z","times_seen":62,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"323590c539b9694acb7dc1d8a2460c6c","sha1":"8b7d9e910e986f9186093c8c542e39eec54e44ee","sha256":"adfb0b23502e8f63c6ada4aa50e16ec1cc3bd1230a404e25690ab0e6c90def7d","sha512":"f7573fd897cd2314b28962a935fe919eb9fb73a67e355e5612db2228840b519e898d964f2449120ab341294654aa395ef1b8ccf7be0b2e0dd0d7b1167232b11e","ssdeep":"1536:xaaeK5NK7Iu1HicX7A5+T5aG+2PYg43EIjEa6aL8oIX5G68cFbsB8eqk1sgrk:r8icrZFaAPYg4REa65DFbWU8k","tlshash":"5c833b82717ae53742f800e4245c1002b7595f5ebec88198f1a99ea9766ccc353bbff6","size":84384,"data":"","first_seen":"2026-07-27T07:14:06.804388Z","last_seen":"2026-07-27T14:04:41.064748Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/trustpilot-reviews/review/assets/js/trustBoxScript.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"f55b4acc208912f1bdddb6c5c421f3db","sha1":"4e521c3de58da916caea37955018117321f8bc12","sha256":"5ba289dfbf51172e3319f61ad19e0fa4380b8eac16f38ff29c0370b964c286e4","sha512":"0713b983b4cd752ece54fff94989b96e12ac5f375d86cdf651760288eb8fa33cf44045f806ce9455700d59256c5e2c71ff3644b10111926864e6675de91eab70","ssdeep":"","tlshash":"ab1197e95c55fb949ac10274e45a07882b1ea8053033f4bc6c7a8ab074e468d31e2f5f","size":1038,"data":"","first_seen":"2023-03-07T12:03:30Z","last_seen":"2026-08-07T21:20:45.678079Z","times_seen":1237,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/bootstrap/v5/tp.widget.bootstrap.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"d827e4237edcfe58a530cf8021154f67","sha1":"b139e7ded09584e6b17dc8dce930350223865ace","sha256":"02e5bf47b2473c1da7a39a25b14f0f5d9857142842d33def047e492f9f610cb9","sha512":"e7778f10cb8745a720290df0b4b50aa35dc3c5f63b714a9dce9d8925304d794a5be732d0aaff20b0c2e71f2a8536b7b44836cb93849ef3778eb2cadf78f42aea","ssdeep":"384:BzP7G3iA2VmwqU3o+Vxfz3y2uyeVdPkmsuyqAGB+WVYJv5Uep/FR69f:BzP75A/wqU3o+bz3y2uyKAqAxJvCoTYf","tlshash":"c9a2d5e931a1f476428a6169543f7209b2b2346979c5d488b53dc8f26fa0c9e7133fbc","size":21977,"data":"","first_seen":"2023-10-26T16:44:23Z","last_seen":"2026-08-10T18:53:32.489113Z","times_seen":7803,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"log","text":"JQMIGRATE: Migrate is installed, version 3.4.1","filename":"https://autolitefinances.pro/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1","line_number":2,"column_number":981},{"level":"warn","text":"Google Analytics and Tag Manager is being shimmed by Firefox. See https://bugzilla.mozilla.org/show_bug.cgi?id=1713687 for details.","filename":"sandbox eval code","line_number":1,"column_number":9},{"level":"log","text":" [UTS] [gusid]: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434","filename":"https://t.tx3markets.com/v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/","line_number":1,"column_number":7717},{"level":"log","text":" [UTS] [pc]","filename":"https://t.tx3markets.com/v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/","line_number":1,"column_number":7717},{"level":"log","text":" [UTS] No NF on page","filename":"https://t.tx3markets.com/v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/","line_number":1,"column_number":7717}]},"http":[{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/floatbox/fbOptions.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.116Z","timestamp":1785145405116,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/floatbox/fbOptions.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 404 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: text/html\r\nlast-modified: Wed, 17 Jul 2024 10:50:54 GMT\r\netag: W/\"328-61d6f3c88c6a0\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":808,"size_decoded":579,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a943672a32297727bab01c3e76977550","sha1":"3a667c4b7a457ef6c586cc581d533c128737bf53","sha256":"b9347f234dc3c8d56e015e86d88a1400415db8f7a5ad91f02b6a2323c10a4187","sha512":"0965d415f3a0cef31953702fdae345d46fefd72ce3c4c7a0255aede74a76e10b856892700529a444453a622793e0257248c5c99fae17d5b0b9fd4118e208068c","ssdeep":"","tlshash":"2e01bd0a08e0501bc0d3915169a0f22dc9c2f997aa5b180079ed91c6cfd5f89c9d35ac","first_seen":"2023-03-08T11:42:06Z","last_seen":"2026-08-11T16:28:03.144886Z","times_seen":38799,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29tcGF0aWJsZSIgY29udGVudD0iaWU9ZWRnZSI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vIj4KICA8dGl0bGU+NDA0IE5vdCBGb3VuZDwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXJyb3JfZG9jcy9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0icGFnZSI+CiAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICA8aDE+U2VydmVyIEVycm9yPC9oMT4KICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvZGUiPjQwNDwvZGl2PgogICAgPGgyPlBhZ2UgTm90IEZvdW5kPC9oMj4KICAgIDxwIGNsYXNzPSJsZWFkIj5UaGlzIHBhZ2UgZWl0aGVyIGRvZXNuJ3QgZXhpc3QsIG9yIGl0IG1vdmVkIHNvbWV3aGVyZSBlbHNlLjwvcD4KICAgIDxoci8+CiAgICA8cD5UaGF0J3Mgd2hhdCB5b3UgY2FuIGRvPC9wPgogICAgPGRpdiBjbGFzcz0iaGVscC1hY3Rpb25zIj4KICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKTsiPlJlbG9hZCBQYWdlPC9hPgogICAgICA8YSBocmVmPSJqYXZhc2NyaXB0Omhpc3RvcnkuYmFjaygpOyI+QmFjayB0byBQcmV2aW91cyBQYWdlPC9hPgogICAgICA8YSBocmVmPSIvIj5Ib21lIFBhZ2U8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPg=="}},"time_used":99,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":99,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/slick-theme.min.css?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.796Z","timestamp":1785145403796,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/slick-theme.min.css?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-c24\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":3108,"size_decoded":950,"mime_type":"text/css","magic":"Unicode text, UTF-8 text","md5":"562cda9e76bbff44cc4055b48fa69717","sha1":"44d5d207909067685767d48a297f7f2cc1d6a15c","sha256":"399f78a20a0066b73034de49ed0b8ff38b4d8cd5ccc6bd4f1178a732334db821","sha512":"560e74d61c7ca279ff5c1c737786943dc4f43a6a2508b00c577363c29cb911852e4517557f7bfa8d0c1a9c08334cfccf583fb39b08c4d8ab2d201d396a280dba","ssdeep":"","tlshash":"2851eea85ab7b742101680943be707743bcb70131625d9b8ff95639c8fce1e8aac934d","first_seen":"2026-07-27T07:14:06.820499Z","last_seen":"2026-07-27T14:04:41.066473Z","times_seen":5,"resource_available":false,"data":"CkBmb250LWZhY2UKewogICAgZm9udC1mYW1pbHk6ICdzbGljayc7CiAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwoKICAgIHNyYzogdXJsKCcuLi9mb250cy9zbGljay5lb3QnKTsKICAgIHNyYzogdXJsKCcuLi9mb250cy9zbGljay0xLmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgCiAgICB1cmwoJy4uL2ZvbnRzL3NsaWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgCiAgICB1cmwoJy4uL2ZvbnRzL3NsaWNrLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgCiAgICB1cmwoJy4uL2ZvbnRzL3NsaWNrLnN2ZycpIGZvcm1hdCgnc3ZnJyk7Cn0KLyogQXJyb3dzICovCi5zbGljay1wcmV2LAouc2xpY2stbmV4dAp7CiAgICBmb250LXNpemU6IDA7CiAgICBsaW5lLWhlaWdodDogMDsKCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKCiAgICBkaXNwbGF5OiBibG9jazsKCiAgICB3aWR0aDogMjBweDsKICAgIGhlaWdodDogMjBweDsKICAgIHBhZGRpbmc6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7CgogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlcjogbm9uZTsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQouc2xpY2stcHJldjpob3ZlciwKLnNsaWNrLXByZXY6Zm9jdXMsCi5zbGljay1uZXh0OmhvdmVyLAouc2xpY2stbmV4dDpmb2N1cwp7CiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBvdXRsaW5lOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLAouc2xpY2stcHJldjpmb2N1czpiZWZvcmUsCi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSwKLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlCnsKICAgIG9wYWNpdHk6IDE7Cn0KLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlLAouc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZDpiZWZvcmUKewogICAgb3BhY2l0eTogLjI1Owp9Cgouc2xpY2stcHJldjpiZWZvcmUsCi5zbGljay1uZXh0OmJlZm9yZQp7CiAgICBmb250LWZhbWlseTogJ3NsaWNrJzsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwoKICAgIG9wYWNpdHk6IC43NTsKICAgIGNvbG9yOiB3aGl0ZTsKCiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCi5zbGljay1wcmV2CnsKICAgIGxlZnQ6IC0yNXB4Owp9CltkaXI9J3J0bCddIC5zbGljay1wcmV2CnsKICAgIHJpZ2h0OiAtMjVweCAhaW1wb3J0YW50OwogICAgbGVmdDogYXV0byAhaW1wb3J0YW50Owp9Ci5zbGljay1wcmV2OmJlZm9yZQp7CiAgICBjb250ZW50OiAn4oaQJzsKfQpbZGlyPSdydGwnXSAuc2xpY2stcHJldjpiZWZvcmUKewogICAgY29udGVudDogJ+KGkic7Cn0KCi5zbGljay1uZXh0CnsKICAgIHJpZ2h0OiAtMjVweDsKfQpbZGlyPSdydGwnXSAuc2xpY2stbmV4dCwgCmh0bWxbZGlyPSdydGwnXSAuc2xpY2stbmV4dCwgCmJvZHkucnRsIC5zbGljay1uZXh0CnsKICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBsZWZ0OiAtMjVweCAhaW1wb3J0YW50Owp9Ci5zbGljay1uZXh0OmJlZm9yZQp7CiAgICBjb250ZW50OiAn4oaSJzsKfQpbZGlyPSdydGwnXSAuc2xpY2stbmV4dDpiZWZvcmUKewogICAgY29udGVudDogJ+KGkCc7Cn0KCi8qIERvdHMgKi8KLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIKewogICAgbWFyZ2luLWJvdHRvbTogMzBweDsKfQoKLnNsaWNrLWRvdHMKewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAtMjVweDsKCiAgICBkaXNwbGF5OiBibG9jazsKCiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDA7CiAgICBtYXJnaW46IDA7CgogICAgbGlzdC1zdHlsZTogbm9uZTsKCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLnNsaWNrLWRvdHMgbGkKewogICAgcG9zaXRpb246IHJlbGF0aXZlOwoKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKCiAgICB3aWR0aDogMjBweDsKICAgIGhlaWdodDogMjBweDsKICAgIG1hcmdpbjogMCA1cHg7CiAgICBwYWRkaW5nOiAwOwoKICAgIGN1cnNvcjogcG9pbnRlcjsKfQouc2xpY2stZG90cyBsaSBidXR0b24KewogICAgZm9udC1zaXplOiAwOwogICAgbGluZS1oZWlnaHQ6IDA7CgogICAgZGlzcGxheTogYmxvY2s7CgogICAgd2lkdGg6IDIwcHg7CiAgICBoZWlnaHQ6IDIwcHg7CiAgICBwYWRkaW5nOiA1cHg7CgogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlcjogMDsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQouc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsCi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1cwp7CiAgICBvdXRsaW5lOiBub25lOwp9Ci5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlcjpiZWZvcmUsCi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmUKewogICAgb3BhY2l0eTogMTsKfQouc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlCnsKICAgIGZvbnQtZmFtaWx5OiAnc2xpY2snOwogICAgZm9udC1zaXplOiA2cHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwoKICAgIHdpZHRoOiAyMHB4OwogICAgaGVpZ2h0OiAyMHB4OwoKICAgIGNvbnRlbnQ6ICfigKInOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwoKICAgIG9wYWNpdHk6IC4yNTsKICAgIGNvbG9yOiBibGFjazsKCiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUKewogICAgb3BhY2l0eTogLjc1OwogICAgY29sb3I6IGJsYWNrOwp9"}},"time_used":123,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":123,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-orbital-theme.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.843Z","timestamp":1785145403843,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-orbital-theme.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\ncontent-length: 0\r\nx-accel-version: 0.01\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"0-60f1ec8f1f6c0\"\r\naccept-ranges: bytes\r\nx-powered-by: PleskLin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":0,"size_decoded":270,"mime_type":"text/css","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":486,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":486,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/js/exad-scripts.min.js?ver=2.6.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.852Z","timestamp":1785145403852,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/js/exad-scripts.min.js?ver=2.6.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-889b\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":34971,"size_decoded":7188,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (34971), with no line terminators","md5":"107b04be5f05081af13b2200c2af1e99","sha1":"ed37746f762e2d6f141c1b862b4246247ee6349e","sha256":"2000f887c3ddc745754335ea333873d6c91a3b31ad082f46767d3ef2a57188ed","sha512":"b71dcd94d713ef861a67fedd3bfb073916a5cb2fd13e7f5ba4a43bef1c7b83d92fbd0e23a51753b35796ca216c384bd250c5f3d7902960e8f7e5f7092b18c7c3","ssdeep":"384:LMEsgB5JkdQ03+3vnbE/d2U5IXMf4mVM2kZpAEgRyEpAULE:4db3+3g/d2U5d22kZpAEEyarI","tlshash":"5af284297725683b858b69bf51cf0549387e2407e38835a4f2b14b7c1bede81352af78","first_seen":"2023-10-20T03:10:58Z","last_seen":"2026-07-27T14:04:41.104889Z","times_seen":57,"resource_available":true,"data":"KGZ1bmN0aW9uKCQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZWRpdE1vZGU9ZmFsc2U7dmFyIGV4Y2x1c2l2ZUFjY29yZGlvbj1mdW5jdGlvbigkc2NvcGUsJCl7dmFyIGFjY29yZGlvblRpdGxlPSRzY29wZS5maW5kKCcuZXhhZC1hY2NvcmRpb24tdGl0bGUnKTthY2NvcmRpb25UaXRsZS5lYWNoKGZ1bmN0aW9uKCl7aWYoJCh0aGlzKS5oYXNDbGFzcygnYWN0aXZlLWRlZmF1bHQnKSl7JCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7JCh0aGlzKS5uZXh0KCcuZXhhZC1hY2NvcmRpb24tY29udGVudCcpLnNsaWRlRG93bigpfX0pO2FjY29yZGlvblRpdGxlLnVuYmluZCgnY2xpY2snKTthY2NvcmRpb25UaXRsZS5jbGljayhmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7aWYoJCh0aGlzKS5oYXNDbGFzcygnYWN0aXZlJykpeyQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOyQodGhpcykubmV4dCgpLnNsaWRlVXAoNDAwKX1lbHNleyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgnLmV4YWQtYWNjb3JkaW9uLXRpdGxlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgnLmV4YWQtYWNjb3JkaW9uLWNvbnRlbnQnKS5zbGlkZVVwKDQwMCk7JCh0aGlzKS50b2dnbGVDbGFzcygnYWN0aXZlJyk7JCh0aGlzKS5uZXh0KCkuc2xpZGVUb2dnbGUoNDAwKX19KX07dmFyIGV4Y2x1c2l2ZUFsZXJ0PWZ1bmN0aW9uKCRzY29wZSwkKXt2YXIgYWxlcnRDbG9zZT0kc2NvcGUuZmluZCgnW2RhdGEtYWxlcnRdJykuZXEoMCk7YWxlcnRDbG9zZS5lYWNoKGZ1bmN0aW9uKGluZGV4KXt2YXIgYWxlcnQ9JCh0aGlzKTthbGVydC5maW5kKCcuZXhhZC1hbGVydC1lbGVtZW50LWRpc21pc3MtaWNvbicpLmNsaWNrKGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTthbGVydC5mYWRlT3V0KDUwMCl9KTthbGVydC5maW5kKCcuZXhhZC1hbGVydC1lbGVtZW50LWRpc21pc3MtYnV0dG9uJykuY2xpY2soZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2FsZXJ0LmZhZGVPdXQoNTAwKX0pfSl9O3ZhciBleGNsdXNpdmVBbmltYXRlZFRleHQ9ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBhbmltYXRlZFdyYXBwZXI9JHNjb3BlLmZpbmQoJy5leGFkLXR5cGVkLXN0cmluZ3MnKS5lcSgwKSxhbmltYXRlU2VsZWN0b3I9YW5pbWF0ZWRXcmFwcGVyLmZpbmQoJy5leGFkLWFuaW1hdGVkLXRleHQtYW5pbWF0ZWQtaGVhZGluZycpLGFuaW1hdGlvblR5cGU9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ2hlYWRpbmdfYW5pbWF0aW9uJyksYW5pbWF0aW9uU3R5bGU9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ2FuaW1hdGlvbl9zdHlsZScpLGFuaW1hdGlvblNwZWVkPWFuaW1hdGVkV3JhcHBlci5kYXRhKCdhbmltYXRpb25fc3BlZWQnKSx0eXBlU3BlZWQ9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ3R5cGVfc3BlZWQnKSxzdGFydERlbGF5PWFuaW1hdGVkV3JhcHBlci5kYXRhKCdzdGFydF9kZWxheScpLGJhY2tUeXBlU3BlZWQ9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ2JhY2tfdHlwZV9zcGVlZCcpLGJhY2tEZWxheT1hbmltYXRlZFdyYXBwZXIuZGF0YSgnYmFja19kZWxheScpLGxvb3A9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ2xvb3AnKT90cnVlOmZhbHNlLHNob3dDdXJzb3I9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ3Nob3dfY3Vyc29yJyk/dHJ1ZTpmYWxzZSxmYWRlT3V0PWFuaW1hdGVkV3JhcHBlci5kYXRhKCdmYWRlX291dCcpP3RydWU6ZmFsc2Usc21hcnRCYWNrc3BhY2U9YW5pbWF0ZWRXcmFwcGVyLmRhdGEoJ3NtYXJ0X2JhY2tzcGFjZScpP3RydWU6ZmFsc2UsaWQ9YW5pbWF0ZVNlbGVjdG9yLmF0dHIoJ2lkJyk7aWYoJ2Z1bmN0aW9uJz09PXR5cGVvZiBUeXBlZCl7aWYoJ2V4YWQtdHlwZWQtYW5pbWF0aW9uJz09PWFuaW1hdGlvblR5cGUpe3ZhciB0eXBlZD1uZXcgVHlwZWQoJyMnK2lkLHtzdHJpbmdzOmFuaW1hdGVkV3JhcHBlci5kYXRhKCd0eXBlX3N0cmluZycpLGxvb3A6bG9vcCx0eXBlU3BlZWQ6dHlwZVNwZWVkLGJhY2tTcGVlZDpiYWNrVHlwZVNwZWVkLHNob3dDdXJzb3I6c2hvd0N1cnNvcixmYWRlT3V0OmZhZGVPdXQsc21hcnRCYWNrc3BhY2U6c21hcnRCYWNrc3BhY2Usc3RhcnREZWxheTpzdGFydERlbGF5LGJhY2tEZWxheTpiYWNrRGVsYXl9KX19aWYoJC5pc0Z1bmN0aW9uKCQuZm4uTW9ycGhleHQpKXtpZignZXhhZC1tb3JwaGVkLWFuaW1hdGlvbic9PT1hbmltYXRpb25UeXBlKXskKGFuaW1hdGVTZWxlY3RvcikuTW9ycGhleHQoe2FuaW1hdGlvbjphbmltYXRpb25TdHlsZSxzcGVlZDphbmltYXRpb25TcGVlZH0pfX19O3ZhciBleGNsdXNpdmVCdXR0b249ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBtb3VzZUhvdmVyRWZmZWN0OD0kc2NvcGUuZmluZCgnLmVmZmVjdC04Lm1vdXNlLWhvdmVyLWVmZmVjdCcpLmVxKDApO21vdXNlSG92ZXJFZmZlY3Q4Lm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbihlKXt2YXIgcGFyZW50T2Zmc2V0PSQodGhpcykub2Zmc2V0KCkscmVsWD1lLnBhZ2VYLXBhcmVudE9mZnNldC5sZWZ0LHJlbFk9ZS5wYWdlWS1wYXJlbnRPZmZzZXQudG9wOyQodGhpcykuZmluZCgnLmVmZmVjdC04LXBvc2l0aW9uJykuY3NzKHt0b3A6cmVsWSxsZWZ0OnJlbFh9KX0pO21vdXNlSG92ZXJFZmZlY3Q4Lm9uKCdtb3VzZW91dCcsZnVuY3Rpb24oZSl7dmFyIHBhcmVudE9mZnNldD0kKHRoaXMpLm9mZnNldCgpLHJlbFg9ZS5wYWdlWC1wYXJlbnRPZmZzZXQubGVmdCxyZWxZPWUucGFnZVktcGFyZW50T2Zmc2V0LnRvcDskKHRoaXMpLmZpbmQoJy5lZmZlY3QtOC1wb3NpdGlvbicpLmNzcyh7dG9wOnJlbFksbGVmdDpyZWxYfSl9KTt9O3ZhciBleGNsdXNpdmVDb3JvbmE9ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBleGFkQ29yb25hV3JhcHBlcj0kc2NvcGUuZmluZCgnLmV4YWQtY29yb25hJykuZXEoMCk7dmFyIHNlYXJjaERhdGE9ZXhhZENvcm9uYVdyYXBwZXIuZmluZCgnI2V4YWRfc2VhcmNoX2RhdGEnKTt2YXIgZGF0YVR0YWJsZVJvdz1leGFkQ29yb25hV3JhcHBlci5maW5kKCcjZGF0YV90YWJsZSAuZGF0YV90YWJsZV9yb3cnKTt2YXIgY29udGluZW50QnRuPWV4YWRDb3JvbmFXcmFwcGVyLmZpbmQoJyNleGFkLWNvdmlkLWZpbHRlcnMgLmV4YWQtY292aWQtY29udGluZW50LWJ0bicpO3ZhciBwYXJlbnRDbGFzcz1leGFkQ29yb25hV3JhcHBlci5maW5kKCcuZXhhZC1jb3JvbmEtdGFibGUtaGVhZGluZy55ZXMgdGgnKTtzZWFyY2hEYXRhLm9uKCJrZXl1cCIsZnVuY3Rpb24oKXt2YXIgdmFsdWU9JCh0aGlzKS52YWwoKS50b0xvd2VyQ2FzZSgpO2RhdGFUdGFibGVSb3cuZmlsdGVyKGZ1bmN0aW9uKCl7JCh0aGlzKS50b2dnbGUoJCh0aGlzKS50ZXh0KCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbHVlKT4tMSl9KX0pO2NvbnRpbmVudEJ0bi5jbGljayhmdW5jdGlvbigpe2lmKHRoaXMuaWQ9PSdhbGwnKXtkYXRhVHRhYmxlUm93LmZhZGVJbig0NTApfWVsc2V7dmFyIGVsPSQoJy4nK3RoaXMuaWQpLmZhZGVJbig0NTApO2RhdGFUdGFibGVSb3cubm90KGVsKS5oaWRlKCl9Y29udGluZW50QnRuLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTskKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKX0pO2lmKHBhcmVudENsYXNzLmxlbmd0aD4wKXt2YXIgcGFyZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5leGFkLWNvcm9uYS10YWJsZS1oZWFkaW5nLnllcyB0aCcpLnBhcmVudEVsZW1lbnQ7d2hpbGUocGFyZW50KXt2YXIgaGFzT3ZlcmZsb3c9Z2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpLm92ZXJmbG93O2lmKGhhc092ZXJmbG93IT09J3Zpc2libGUnKXtwYXJlbnQuc3R5bGUub3ZlcmZsb3c9InZpc2libGUifXBhcmVudD1wYXJlbnQucGFyZW50RWxlbWVudH19fTt2YXIgZXhjbHVzaXZlQ291bnRkb3duVGltZXI9ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBjb3VudGRvd25UaW1lcldyYXBwZXI9JHNjb3BlLmZpbmQoJ1tkYXRhLWNvdW50ZG93bl0nKS5lcSgwKTtpZigndW5kZWZpbmVkJyE9PXR5cGVvZiBjb3VudGRvd25UaW1lcldyYXBwZXImJm51bGwhPT1jb3VudGRvd25UaW1lcldyYXBwZXIpe3ZhciAkdGhpcz1jb3VudGRvd25UaW1lcldyYXBwZXIsZmluYWxEYXRlPSR0aGlzLmRhdGEoJ2NvdW50ZG93bicpLGRheT0kdGhpcy5kYXRhKCdkYXknKSxob3Vycz0kdGhpcy5kYXRhKCdob3VycycpLG1pbnV0ZXM9JHRoaXMuZGF0YSgnbWludXRlcycpLHNlY29uZHM9JHRoaXMuZGF0YSgnc2Vjb25kcycpLGV4cGlyZWRUZXh0PSR0aGlzLmRhdGEoJ2V4cGlyZWQtdGV4dCcpO2lmKCQuaXNGdW5jdGlvbigkLmZuLmNvdW50ZG93bikpeyR0aGlzLmNvdW50ZG93bihmaW5hbERhdGUsZnVuY3Rpb24oZXZlbnQpeyQodGhpcykuaHRtbChldmVudC5zdHJmdGltZSgnIDxkaXYgY2xhc3M9ImV4YWQtY291bnRkb3duLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0iZXhhZC1jb3VudGRvd24tdGltZXItd3JhcHBlciI+PHNwYW4gY2xhc3M9ImV4YWQtY291bnRkb3duLWNvdW50Ij4lLUQgPC9zcGFuPjxzcGFuIGNsYXNzPSJleGFkLWNvdW50ZG93bi10aXRsZSI+JytkYXkrJzwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJleGFkLWNvdW50ZG93bi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImV4YWQtY291bnRkb3duLXRpbWVyLXdyYXBwZXIiPjxzcGFuIGNsYXNzPSJleGFkLWNvdW50ZG93bi1jb3VudCI+JUggPC9zcGFuPjxzcGFuIGNsYXNzPSJleGFkLWNvdW50ZG93bi10aXRsZSI+Jytob3VycysnPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImV4YWQtY291bnRkb3duLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0iZXhhZC1jb3VudGRvd24tdGltZXItd3JhcHBlciI+PHNwYW4gY2xhc3M9ImV4YWQtY291bnRkb3duLWNvdW50Ij4lTSA8L3NwYW4+PHNwYW4gY2xhc3M9ImV4YWQtY291bnRkb3duLXRpdGxlIj4nK21pbnV0ZXMrJzwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJleGFkLWNvdW50ZG93bi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImV4YWQtY291bnRkb3duLXRpbWVyLXdyYXBwZXIiPjxzcGFuIGNsYXNzPSJleGFkLWNvdW50ZG93bi1jb3VudCI+JVMgPC9zcGFuPjxzcGFuIGNsYXNzPSJleGFkLWNvdW50ZG93bi10aXRsZSI+JytzZWNvbmRzKyc8L3NwYW4+PC9kaXY+PC9kaXY+JykpfSkub24oJ2ZpbmlzaC5jb3VudGRvd24nLGZ1bmN0aW9uKGV2ZW50KXskKHRoaXMpLmh0bWwoJzxwIGNsYXNzPSJtZXNzYWdlIj4nK2V4cGlyZWRUZXh0Kyc8L3A+Jyl9KX19fTt2YXIgZXhhZEZhY2Vib29rRmVlZD1mdW5jdGlvbigkc2NvcGUpe3ZhciBidXR0b249JHNjb3BlLmZpbmQoJy5leGFkLWZhY2Vib29rLWxvYWQtbW9yZScpO3ZhciBmYWNlYm9va193cmFwPSRzY29wZS5maW5kKCcuZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXInKTtidXR0b24ub24oImNsaWNrIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyICRzZWxmPSQodGhpcykscXVlcnlfc2V0dGluZ3M9JHNlbGYuZGF0YSgic2V0dGluZ3MiKSx0b3RhbD0kc2VsZi5kYXRhKCJ0b3RhbCIpLGl0ZW1zPSRzY29wZS5maW5kKCcuZXhhZC1mYWNlYm9vay1mZWVkLWl0ZW0nKS5sZW5ndGg7JC5hamF4KHt1cmw6ZXhhZF9hamF4X29iamVjdC5hamF4X3VybCx0eXBlOidQT1NUJyxkYXRhOnthY3Rpb246ImV4YWRfZmFjZWJvb2tfZmVlZF9hY3Rpb24iLHNlY3VyaXR5OmV4YWRfYWpheF9vYmplY3Qubm9uY2UscXVlcnlfc2V0dGluZ3M6cXVlcnlfc2V0dGluZ3MsbG9hZGVkX2l0ZW06aXRlbXN9LHN1Y2Nlc3M6ZnVuY3Rpb24ocmVzcG9uc2Upe2lmKHRvdGFsPml0ZW1zKXskKHJlc3BvbnNlKS5hcHBlbmRUbyhmYWNlYm9va193cmFwKX1lbHNleyRzZWxmLnRleHQoJ0FsbCBMb2FkZWQnKS5hZGRDbGFzcygnbG9hZGVkJyk7c2V0VGltZW91dChmdW5jdGlvbigpeyRzZWxmLmNzcyh7ImRpc3BsYXkiOiJub25lIn0pfSwzMDAwKX19LGVycm9yOmZ1bmN0aW9uKGVycm9yKXt9fSl9KX07dmFyIGV4Y2x1c2l2ZUZpbHRlcmFibGVQb3N0PWZ1bmN0aW9uKCRzY29wZSwkKXtpZigkLmlzRnVuY3Rpb24oJC5mbi5pc290b3BlKSl7dmFyIGV4YWRHZXRHYWxsZXJ5PSRzY29wZS5maW5kKCcuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lcicpLmVxKDApLGN1cnJlbnRGaWx0ZXJlZElkPScjJytleGFkR2V0R2FsbGVyeS5hdHRyKCdpZCcpLCRjb250YWluZXI9JHNjb3BlLmZpbmQoY3VycmVudEZpbHRlcmVkSWQpLmVxKDApO3ZhciBmaWx0ZXJhYmxlTWFpbldyYXBwZXI9JHNjb3BlLmZpbmQoJy5leGFkLWZpbHRlcmFibGUtaXRlbXMnKS5lcSgwKSxmaWx0ZXJhYmxlSXRlbT0nIycrZmlsdGVyYWJsZU1haW5XcmFwcGVyLmF0dHIoJ2lkJyk7JGNvbnRhaW5lci5pc290b3BlKHtmaWx0ZXI6JyonLGFuaW1hdGlvbk9wdGlvbnM6e3F1ZXVlOnRydWV9fSk7JChmaWx0ZXJhYmxlSXRlbSsnIC5leGFkLWZpbHRlcmFibGUtbWVudSBsaScpLmNsaWNrKGZ1bmN0aW9uKCl7JChmaWx0ZXJhYmxlSXRlbSsnIC5leGFkLWZpbHRlcmFibGUtbWVudSBsaS5jdXJyZW50JykucmVtb3ZlQ2xhc3MoJ2N1cnJlbnQnKTskKHRoaXMpLmFkZENsYXNzKCdjdXJyZW50Jyk7dmFyIHNlbGVjdG9yPSQodGhpcykuYXR0cignZGF0YS1maWx0ZXInKTskY29udGFpbmVyLmlzb3RvcGUoe2ZpbHRlcjpzZWxlY3RvcixsYXlvdXRNb2RlOidtYXNvbnJ5JyxnZXRTb3J0RGF0YTp7bmFtZTonLm5hbWUnLHN5bWJvbDonLnN5bWJvbCcsbnVtYmVyOicubnVtYmVyIHBhcnNlSW50JyxjYXRlZ29yeTonW2RhdGEtY2F0ZWdvcnldJyx3ZWlnaHQ6ZnVuY3Rpb24oaXRlbUVsZW0pe3ZhciB3ZWlnaHQ9JChpdGVtRWxlbSkuZmluZCgnLndlaWdodCcpLnRleHQoKTtyZXR1cm4gcGFyc2VGbG9hdCh3ZWlnaHQucmVwbGFjZSgvW1woXCldL2csJycpKX19LGFuaW1hdGlvbk9wdGlvbnM6e3F1ZXVlOnRydWV9LG1hc29ucnk6e2NvbHVtbldpZHRoOjF9fSk7cmV0dXJuIGZhbHNlfSk7JGNvbnRhaW5lci5pbWFnZXNMb2FkZWQoKS5wcm9ncmVzcyhmdW5jdGlvbigpeyRjb250YWluZXIuaXNvdG9wZSgnbGF5b3V0Jyl9KX19O3ZhciBleGNsdXNpdmVGaWx0ZXJhYmxlR2FsbGVyeT1mdW5jdGlvbigkc2NvcGUsJCl7aWYoJC5pc0Z1bmN0aW9uKCQuZm4uaXNvdG9wZSkpe3ZhciBleGFkR2V0R2FsbGVyeT0kc2NvcGUuZmluZCgnLmV4YWQtZ2FsbGVyeS1lbGVtZW50JykuZXEoMCksY3VycmVudEdhbGxlcnlJZD0nIycrZXhhZEdldEdhbGxlcnkuYXR0cignaWQnKSwkY29udGFpbmVyPSRzY29wZS5maW5kKGN1cnJlbnRHYWxsZXJ5SWQpLmVxKDApO3ZhciBnYWxsZXJ5TWFpbldyYXBwZXI9JHNjb3BlLmZpbmQoJy5leGFkLWdhbGxlcnktaXRlbXMnKS5lcSgwKSxnYWxsZXJ5SXRlbT0nIycrZ2FsbGVyeU1haW5XcmFwcGVyLmF0dHIoJ2lkJyk7JGNvbnRhaW5lci5pc290b3BlKHtmaWx0ZXI6JyonLGFuaW1hdGlvbk9wdGlvbnM6e3F1ZXVlOnRydWV9fSk7JChnYWxsZXJ5SXRlbSsnIC5leGFkLWdhbGxlcnktbWVudSBidXR0b24nKS5jbGljayhmdW5jdGlvbigpeyQoZ2FsbGVyeUl0ZW0rJyAuZXhhZC1nYWxsZXJ5LW1lbnUgYnV0dG9uLmN1cnJlbnQnKS5yZW1vdmVDbGFzcygnY3VycmVudCcpOyQodGhpcykuYWRkQ2xhc3MoJ2N1cnJlbnQnKTt2YXIgc2VsZWN0b3I9JCh0aGlzKS5hdHRyKCdkYXRhLWZpbHRlcicpOyRjb250YWluZXIuaXNvdG9wZSh7ZmlsdGVyOnNlbGVjdG9yLGxheW91dE1vZGU6J2ZpdFJvd3MnLGdldFNvcnREYXRhOntuYW1lOicubmFtZScsc3ltYm9sOicuc3ltYm9sJyxudW1iZXI6Jy5udW1iZXIgcGFyc2VJbnQnLGNhdGVnb3J5OidbZGF0YS1jYXRlZ29yeV0nLHdlaWdodDpmdW5jdGlvbihpdGVtRWxlbSl7dmFyIHdlaWdodD0kKGl0ZW1FbGVtKS5maW5kKCcud2VpZ2h0JykudGV4dCgpO3JldHVybiBwYXJzZUZsb2F0KHdlaWdodC5yZXBsYWNlKC9bXChcKV0vZywnJykpfX0sYW5pbWF0aW9uT3B0aW9uczp7cXVldWU6dHJ1ZX19KTtyZXR1cm4gZmFsc2V9KX19O3ZhciBleGNsdXNpdmVHb29nbGVNYXBzPWZ1bmN0aW9uKCRzY29wZSwkKXtpZigkLmlzRnVuY3Rpb24oJC5mbi5nbWFwMykpe3ZhciBnb29nbGVNYXBzPSRzY29wZS5maW5kKCcuZXhhZC1nb29nbGUtbWFwcycpLmVxKDApLGxhdGl0dWRlPWdvb2dsZU1hcHMuZGF0YSgnZXhhZC1sYXQnKSxsb25naXR1ZGU9Z29vZ2xlTWFwcy5kYXRhKCdleGFkLWxuZycpLG1hcFRoZW1lPWdvb2dsZU1hcHMuZGF0YSgnZXhhZC10aGVtZScpLG1hcFpvb209Z29vZ2xlTWFwcy5kYXRhKCdleGFkLXpvb20nKSxtYXBBZGRyZXNzPWdvb2dsZU1hcHMuZGF0YSgnZXhhZC1hZGRyZXNzJyksbWFwX3N0cmVldmlld19jb250cm9sPWdvb2dsZU1hcHMuZGF0YSgnZXhhZC1zdHJlZXZpZXctY29udHJvbCcpLG1hcF90eXBlX2NvbnRyb2w9Z29vZ2xlTWFwcy5kYXRhKCdleGFkLXR5cGUtY29udHJvbCcpLG1hcF96b29tX2NvbnRyb2w9Z29vZ2xlTWFwcy5kYXRhKCdleGFkLXpvb20tY29udHJvbCcpLG1hcF9mdWxsc2NyZWVuX2NvbnRyb2w9Z29vZ2xlTWFwcy5kYXRhKCdleGFkLWZ1bGxzY3JlZW4tY29udHJvbCcpLG1hcF9zY3JvbGxfem9vbT1nb29nbGVNYXBzLmRhdGEoJ2V4YWQtc2Nyb2xsLXpvb20nKSxjZW50ZXI9W2xhdGl0dWRlLGxvbmdpdHVkZV0sYWRkcmVzcz1mYWxzZTtnb29nbGVNYXBzLmdtYXAzKHtjZW50ZXI6Y2VudGVyLGFkZHJlc3M6YWRkcmVzcyx6b29tOm1hcFpvb20sc3RyZWV0Vmlld0NvbnRyb2w6bWFwX3N0cmVldmlld19jb250cm9sLG1hcFR5cGVDb250cm9sOm1hcF90eXBlX2NvbnRyb2wsem9vbUNvbnRyb2w6bWFwX3pvb21fY29udHJvbCxmdWxsc2NyZWVuQ29udHJvbDptYXBfZnVsbHNjcmVlbl9jb250cm9sLHNjcm9sbHdoZWVsOm1hcF9zY3JvbGxfem9vbSxtYXBUeXBlSWQ6bWFwVGhlbWV9KS5zdHlsZWRtYXB0eXBlKCJzdGFuZGFyZCIsW10se25hbWU6InN0YW5kYXJkIn0pLnN0eWxlZG1hcHR5cGUoInJldHJvIixbeyJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZWJlM2NkIn1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzUyMzczNSJ9XX0seyJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2Y1ZjFlNiJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeS5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNjOWIyYTYifV19LHsiZmVhdHVyZVR5cGUiOiJhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjZGNkMmJlIn1dfSx7ImZlYXR1cmVUeXBlIjoiYWRtaW5pc3RyYXRpdmUubGFuZF9wYXJjZWwiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNhZTllOTAifV19LHsiZmVhdHVyZVR5cGUiOiJsYW5kc2NhcGUubmF0dXJhbCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNkZmQyYWUifV19LHsiZmVhdHVyZVR5cGUiOiJwb2kiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZGZkMmFlIn1dfSx7ImZlYXR1cmVUeXBlIjoicG9pIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjOTM4MTdjIn1dfSx7ImZlYXR1cmVUeXBlIjoicG9pLnBhcmsiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNhNWIwNzYifV19LHsiZmVhdHVyZVR5cGUiOiJwb2kucGFyayIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzQ0NzUzMCJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZjVmMWU2In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5hcnRlcmlhbCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNmZGZjZjgifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmhpZ2h3YXkiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZjhjOTY3In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5IiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeS5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNlOWJjNjIifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmhpZ2h3YXkuY29udHJvbGxlZF9hY2Nlc3MiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZTk4ZDU4In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5LmNvbnRyb2xsZWRfYWNjZXNzIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeS5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNkYjg1NTUifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmxvY2FsIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjODA2YjYzIn1dfSx7ImZlYXR1cmVUeXBlIjoidHJhbnNpdC5saW5lIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2RmZDJhZSJ9XX0seyJmZWF0dXJlVHlwZSI6InRyYW5zaXQubGluZSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzhmN2Q3NyJ9XX0seyJmZWF0dXJlVHlwZSI6InRyYW5zaXQubGluZSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjZWJlM2NkIn1dfSx7ImZlYXR1cmVUeXBlIjoidHJhbnNpdC5zdGF0aW9uIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2RmZDJhZSJ9XX0seyJmZWF0dXJlVHlwZSI6IndhdGVyIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeS5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjYjlkM2MyIn1dfSx7ImZlYXR1cmVUeXBlIjoid2F0ZXIiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiM5Mjk5OGQifV19XSx7bmFtZToicmV0cm8ifSkuc3R5bGVkbWFwdHlwZSgic2lsdmVyIixbeyJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZjVmNWY1In1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLmljb24iLCJzdHlsZXJzIjpbeyJ2aXNpYmlsaXR5Ijoib2ZmIn1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzYxNjE2MSJ9XX0seyJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2Y1ZjVmNSJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlLmxhbmRfcGFyY2VsIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjYmRiZGJkIn1dfSx7ImZlYXR1cmVUeXBlIjoicG9pIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2VlZWVlZSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzc1NzU3NSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2U1ZTVlNSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjOWU5ZTllIn1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNmZmZmZmYifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmFydGVyaWFsIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjNzU3NTc1In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5IiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2RhZGFkYSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQuaGlnaHdheSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzYxNjE2MSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQubG9jYWwiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiM5ZTllOWUifV19LHsiZmVhdHVyZVR5cGUiOiJ0cmFuc2l0LmxpbmUiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjZTVlNWU1In1dfSx7ImZlYXR1cmVUeXBlIjoidHJhbnNpdC5zdGF0aW9uIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2VlZWVlZSJ9XX0seyJmZWF0dXJlVHlwZSI6IndhdGVyIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2M5YzljOSJ9XX0seyJmZWF0dXJlVHlwZSI6IndhdGVyIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjOWU5ZTllIn1dfV0se25hbWU6InNpbHZlciJ9KS5zdHlsZWRtYXB0eXBlKCJkYXJrIixbeyJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjMjEyMTIxIn1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLmljb24iLCJzdHlsZXJzIjpbeyJ2aXNpYmlsaXR5Ijoib2ZmIn1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzc1NzU3NSJ9XX0seyJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzIxMjEyMSJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzc1NzU3NSJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlLmNvdW50cnkiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiM5ZTllOWUifV19LHsiZmVhdHVyZVR5cGUiOiJhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCIsInN0eWxlcnMiOlt7InZpc2liaWxpdHkiOiJvZmYifV19LHsiZmVhdHVyZVR5cGUiOiJhZG1pbmlzdHJhdGl2ZS5sb2NhbGl0eSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2JkYmRiZCJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzc1NzU3NSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzE4MTgxOCJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjNjE2MTYxIn1dfSx7ImZlYXR1cmVUeXBlIjoicG9pLnBhcmsiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzFiMWIxYiJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMyYzJjMmMifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjOGE4YThhIn1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5hcnRlcmlhbCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMzNzM3MzcifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmhpZ2h3YXkiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjM2MzYzNjIn1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5LmNvbnRyb2xsZWRfYWNjZXNzIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzRlNGU0ZSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQubG9jYWwiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiM2MTYxNjEifV19LHsiZmVhdHVyZVR5cGUiOiJ0cmFuc2l0IiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjNzU3NTc1In1dfSx7ImZlYXR1cmVUeXBlIjoid2F0ZXIiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjMDAwMDAwIn1dfSx7ImZlYXR1cmVUeXBlIjoid2F0ZXIiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMzZDNkM2QifV19XSx7bmFtZToiZGFyayJ9KS5zdHlsZWRtYXB0eXBlKCJuaWdodCIsW3siZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzI0MmYzZSJ9XX0seyJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiM3NDY4NTUifV19LHsiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMyNDJmM2UifV19LHsiZmVhdHVyZVR5cGUiOiJhZG1pbmlzdHJhdGl2ZS5sb2NhbGl0eSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2Q1OTU2MyJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2Q1OTU2MyJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzI2M2MzZiJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaS5wYXJrIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjNmI5YTc2In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMzODQxNGUifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeS5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMyMTJhMzcifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjOWNhNWIzIn1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5IiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzc0Njg1NSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQuaGlnaHdheSIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjMWYyODM1In1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZC5oaWdod2F5IiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjZjNkMTljIn1dfSx7ImZlYXR1cmVUeXBlIjoidHJhbnNpdCIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMyZjM5NDgifV19LHsiZmVhdHVyZVR5cGUiOiJ0cmFuc2l0LnN0YXRpb24iLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiNkNTk1NjMifV19LHsiZmVhdHVyZVR5cGUiOiJ3YXRlciIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMxNzI2M2MifV19LHsiZmVhdHVyZVR5cGUiOiJ3YXRlciIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzUxNWM2ZCJ9XX0seyJmZWF0dXJlVHlwZSI6IndhdGVyIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5zdHJva2UiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMxNzI2M2MifV19XSx7bmFtZToibmlnaHQifSkuc3R5bGVkbWFwdHlwZSgiYXViZXJnaW5lIixbeyJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjMWQyYzRkIn1dfSx7ImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzhlYzNiOSJ9XX0seyJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzFhMzY0NiJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlLmNvdW50cnkiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzRiNjg3OCJ9XX0seyJmZWF0dXJlVHlwZSI6ImFkbWluaXN0cmF0aXZlLmxhbmRfcGFyY2VsIiwiZWxlbWVudFR5cGUiOiJsYWJlbHMudGV4dC5maWxsIiwic3R5bGVycyI6W3siY29sb3IiOiIjNjQ3NzllIn1dfSx7ImZlYXR1cmVUeXBlIjoiYWRtaW5pc3RyYXRpdmUucHJvdmluY2UiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzRiNjg3OCJ9XX0seyJmZWF0dXJlVHlwZSI6ImxhbmRzY2FwZS5tYW5fbWFkZSIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjMzM0ZTg3In1dfSx7ImZlYXR1cmVUeXBlIjoibGFuZHNjYXBlLm5hdHVyYWwiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjMDIzZTU4In1dfSx7ImZlYXR1cmVUeXBlIjoicG9pIiwiZWxlbWVudFR5cGUiOiJnZW9tZXRyeSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzI4M2Q2YSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzZmOWJhNSJ9XX0seyJmZWF0dXJlVHlwZSI6InBvaSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjMWQyYzRkIn1dfSx7ImZlYXR1cmVUeXBlIjoicG9pLnBhcmsiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LmZpbGwiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMwMjNlNTgifV19LHsiZmVhdHVyZVR5cGUiOiJwb2kucGFyayIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzNDNzY4MCJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5Iiwic3R5bGVycyI6W3siY29sb3IiOiIjMzA0YTdkIn1dfSx7ImZlYXR1cmVUeXBlIjoicm9hZCIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzk4YTViZSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzFkMmM0ZCJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQuaGlnaHdheSIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMyYzY2NzUifV19LHsiZmVhdHVyZVR5cGUiOiJyb2FkLmhpZ2h3YXkiLCJlbGVtZW50VHlwZSI6Imdlb21ldHJ5LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzI1NTc2MyJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQuaGlnaHdheSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiI2IwZDVjZSJ9XX0seyJmZWF0dXJlVHlwZSI6InJvYWQuaGlnaHdheSIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuc3Ryb2tlIiwic3R5bGVycyI6W3siY29sb3IiOiIjMDIzZTU4In1dfSx7ImZlYXR1cmVUeXBlIjoidHJhbnNpdCIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzk4YTViZSJ9XX0seyJmZWF0dXJlVHlwZSI6InRyYW5zaXQiLCJlbGVtZW50VHlwZSI6ImxhYmVscy50ZXh0LnN0cm9rZSIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzFkMmM0ZCJ9XX0seyJmZWF0dXJlVHlwZSI6InRyYW5zaXQubGluZSIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzI4M2Q2YSJ9XX0seyJmZWF0dXJlVHlwZSI6InRyYW5zaXQuc3RhdGlvbiIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMzYTQ3NjIifV19LHsiZmVhdHVyZVR5cGUiOiJ3YXRlciIsImVsZW1lbnRUeXBlIjoiZ2VvbWV0cnkiLCJzdHlsZXJzIjpbeyJjb2xvciI6IiMwZTE2MjYifV19LHsiZmVhdHVyZVR5cGUiOiJ3YXRlciIsImVsZW1lbnRUeXBlIjoibGFiZWxzLnRleHQuZmlsbCIsInN0eWxlcnMiOlt7ImNvbG9yIjoiIzRlNmQ3MCJ9XX1dLHtuYW1lOiJhdWJlcmdpbmUifSl9fTt2YXIgZXhjbHVzaXZlR29vZ2xlUmV2aWV3cz1mdW5jdGlvbigkc2NvcGUsJCl7dmFyICRzbGlkZXI9JHNjb3BlLmZpbmQoJy5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXdyYXBwZXInKTtpZighJHNsaWRlci5sZW5ndGgpe3JldHVybn12YXIgJHNsaWRlckNvbnRhaW5lcj0kc2xpZGVyLmZpbmQoJy5zd2lwZXItY29udGFpbmVyJyksJHNldHRpbmdzPSRzbGlkZXIuZGF0YSgnc2V0dGluZ3MnKTt2YXIgc3dpcGVyPW5ldyBTd2lwZXIoJHNsaWRlckNvbnRhaW5lciwkc2V0dGluZ3MpO2lmKCRzZXR0aW5ncy5wYXVzZU9uSG92ZXIpeyQoJHNsaWRlckNvbnRhaW5lcikuaG92ZXIoZnVuY3Rpb24oKXsodGhpcykuc3dpcGVyLmF1dG9wbGF5LnN0b3AoKX0sZnVuY3Rpb24oKXsodGhpcykuc3dpcGVyLmF1dG9wbGF5LnN0YXJ0KCl9KX19O3ZhciBleGNsdXNpdmVJbWFnZUNvbXBhcmlzb249ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBpbWFnZUNvbXBhcmlzb249JHNjb3BlLmZpbmQoJy5leGFkLWltYWdlLWNvbXBhcmlzaW9uLWVsZW1lbnQnKS5lcSgwKSxleGFkT3JpZW50YXRpb249aW1hZ2VDb21wYXJpc29uLmRhdGEoJ2V4YWQtb3JpYW50YXRpb24nKSxleGFkQmVmb3JlTGFiZWw9aW1hZ2VDb21wYXJpc29uLmRhdGEoJ2V4YWQtYmVmb3JlX2xhYmVsJyksZXhhZEFmdGVyTGFiZWw9aW1hZ2VDb21wYXJpc29uLmRhdGEoJ2V4YWQtYWZ0ZXJfbGFiZWwnKSxleGFkRGVmYXVsdE9mZnNldFBjdD1pbWFnZUNvbXBhcmlzb24uZGF0YSgnZXhhZC1kZWZhdWx0X29mZnNldF9wY3QnKSxleGFkTm9PdmVybGF5PWltYWdlQ29tcGFyaXNvbi5kYXRhKCdleGFkLW5vX292ZXJsYXknKSxleGFkTW92ZVNsaWRlck9uSG92ZXI9aW1hZ2VDb21wYXJpc29uLmRhdGEoJ2V4YWQtbW92ZV9zbGlkZXJfb25faG92ZXInKSxleGFkTW92ZVdpdGhIYW5kbGVPbmx5PWltYWdlQ29tcGFyaXNvbi5kYXRhKCdleGFkLW1vdmVfd2l0aF9oYW5kbGVfb25seScpLGV4YWRDbGlja1RvTW92ZT1pbWFnZUNvbXBhcmlzb24uZGF0YSgnZXhhZC1jbGlja190b19tb3ZlJyk7aWYoJC5pc0Z1bmN0aW9uKCQuZm4udHdlbnR5dHdlbnR5KSl7aW1hZ2VDb21wYXJpc29uLnR3ZW50eXR3ZW50eSh7b3JpZW50YXRpb246ZXhhZE9yaWVudGF0aW9uLGJlZm9yZV9sYWJlbDpleGFkQmVmb3JlTGFiZWwsYWZ0ZXJfbGFiZWw6ZXhhZEFmdGVyTGFiZWwsZGVmYXVsdF9vZmZzZXRfcGN0OmV4YWREZWZhdWx0T2Zmc2V0UGN0LG5vX292ZXJsYXk6ZXhhZE5vT3ZlcmxheSxtb3ZlX3NsaWRlcl9vbl9ob3ZlcjpleGFkTW92ZVNsaWRlck9uSG92ZXIsbW92ZV93aXRoX2hhbmRsZV9vbmx5OmV4YWRNb3ZlV2l0aEhhbmRsZU9ubHksY2xpY2tfdG9fbW92ZTpleGFkQ2xpY2tUb01vdmV9KX19O3ZhciBleGNsdXNpdmVJbWFnZU1hZ25pZmllcj1mdW5jdGlvbigkc2NvcGUsJCl7dmFyICRtYWduaWZ5PSRzY29wZS5maW5kKCcuZXhhZC1pbWFnZS1tYWduaWZ5JykuZXEoMCksJGxhcmdlPSRtYWduaWZ5LmZpbmQoJy5leGFkLW1hZ25pZnktbGFyZ2UnKSwkc21hbGw9JG1hZ25pZnkuZmluZCgnLmV4YWQtbWFnbmlmeS1zbWFsbCA+IGltZycpO3ZhciBuYXRpdmVfd2lkdGg9MDt2YXIgbmF0aXZlX2hlaWdodD0wOyRsYXJnZS5jc3MoImJhY2tncm91bmQiLCJ1cmwoJyIrJHNtYWxsLmF0dHIoInNyYyIpKyInKSBuby1yZXBlYXQiKTskbWFnbmlmeS5tb3VzZW1vdmUoZnVuY3Rpb24oZSl7aWYoIW5hdGl2ZV93aWR0aCYmIW5hdGl2ZV9oZWlnaHQpe3ZhciBpbWFnZV9vYmplY3Q9bmV3IEltYWdlKCk7aW1hZ2Vfb2JqZWN0LnNyYz0kc21hbGwuYXR0cigic3JjIik7bmF0aXZlX3dpZHRoPWltYWdlX29iamVjdC53aWR0aDtuYXRpdmVfaGVpZ2h0PWltYWdlX29iamVjdC5oZWlnaHR9ZWxzZXt2YXIgbWFnbmlmeV9vZmZzZXQ9JCh0aGlzKS5vZmZzZXQoKTt2YXIgbXg9ZS5wYWdlWC1tYWduaWZ5X29mZnNldC5sZWZ0O3ZhciBteT1lLnBhZ2VZLW1hZ25pZnlfb2Zmc2V0LnRvcDtpZihteDwkKHRoaXMpLndpZHRoKCkmJm15PCQodGhpcykuaGVpZ2h0KCkmJm14PjAmJm15PjApeyRsYXJnZS5mYWRlSW4oMTAwKX1lbHNleyRsYXJnZS5mYWRlT3V0KDEwMCl9aWYoJGxhcmdlLmlzKCI6dmlzaWJsZSIpKXt2YXIgcng9TWF0aC5yb3VuZChteC8kc21hbGwud2lkdGgoKSpuYXRpdmVfd2lkdGgtJGxhcmdlLndpZHRoKCkvMikqLTE7dmFyIHJ5PU1hdGgucm91bmQobXkvJHNtYWxsLmhlaWdodCgpKm5hdGl2ZV9oZWlnaHQtJGxhcmdlLmhlaWdodCgpLzIpKi0xO3ZhciBiZ3A9cngrInB4ICIrcnkrInB4Ijt2YXIgcHg9bXgtJGxhcmdlLndpZHRoKCkvMjt2YXIgcHk9bXktJGxhcmdlLmhlaWdodCgpLzI7JGxhcmdlLmNzcyh7bGVmdDpweCx0b3A6cHksYmFja2dyb3VuZFBvc2l0aW9uOmJncH0pfX19KX07JCgnYm9keScpLm9uKCdjbGljay5vbldyYXBwZXJMaW5rJywnW2RhdGEtZXhhZC1lbGVtZW50LWxpbmtdJyxmdW5jdGlvbigpe3ZhciAkd3JhcHBlcj0kKHRoaXMpLGRhdGE9JHdyYXBwZXIuZGF0YSgnZXhhZC1lbGVtZW50LWxpbmsnKSxpZD0kd3JhcHBlci5kYXRhKCdpZCcpLGFuY2hvcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyksYW5jaG9yUmVhbCx0aW1lb3V0O2FuY2hvci5pZD0nZXhhZC1saW5rLWFueXRoaW5nLScraWQ7YW5jaG9yLmhyZWY9ZGF0YS51cmw7YW5jaG9yLnRhcmdldD1kYXRhLmlzX2V4dGVybmFsPydfYmxhbmsnOidfc2VsZic7YW5jaG9yLnJlbD1kYXRhLm5vZm9sbG93Pydub2ZvbGxvdyBub3JlZmVyZXInOicnO2FuY2hvci5zdHlsZS5kaXNwbGF5PSdub25lJztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFuY2hvcik7YW5jaG9yUmVhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhbmNob3IuaWQpO2FuY2hvclJlYWwuY2xpY2soKTt0aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvclJlYWwpO2NsZWFyVGltZW91dCh0aW1lb3V0KX0pfSk7dmFyIGV4Y2x1c2l2ZUxvZ29DYXJvdXNlbD1mdW5jdGlvbigkc2NvcGUsJCl7dmFyIGxvZ29DYXJvdXNlbFdyYXBwZXI9JHNjb3BlLmZpbmQoJy5leGFkLWxvZ28tY2Fyb3VzZWwtZWxlbWVudCcpLmVxKDApLHNsaWRlc1RvU2hvdz1sb2dvQ2Fyb3VzZWxXcmFwcGVyLmRhdGEoJ3NsaWRlc3Rvc2hvdycpLGNhcm91c2VsQ29sdW1uVGFibGV0PWxvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnc2xpZGVzdG9zaG93LXRhYmxldCcpLGNhcm91c2VsQ29sdW1uTW9iaWxlPWxvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnc2xpZGVzdG9zaG93LW1vYmlsZScpLHNsaWRlc1RvU2Nyb2xsPWxvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnc2xpZGVzdG9zY3JvbGwnKSxjYXJvdXNlbE5hdj1sb2dvQ2Fyb3VzZWxXcmFwcGVyLmRhdGEoJ2Nhcm91c2VsLW5hdicpLGRpcmVjdGlvbj1sb2dvQ2Fyb3VzZWxXcmFwcGVyLmRhdGEoJ2RpcmVjdGlvbicpLGxvb3A9dW5kZWZpbmVkIT09bG9nb0Nhcm91c2VsV3JhcHBlci5kYXRhKCdsb29wJyk/bG9nb0Nhcm91c2VsV3JhcHBlci5kYXRhKCdsb29wJyk6ZmFsc2UsYXV0b1BsYXk9dW5kZWZpbmVkIT09bG9nb0Nhcm91c2VsV3JhcHBlci5kYXRhKCdhdXRvcGxheScpP2xvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnYXV0b3BsYXknKTpmYWxzZSxhdXRvcGxheVNwZWVkPXVuZGVmaW5lZCE9PWxvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnYXV0b3BsYXlzcGVlZCcpP2xvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnYXV0b3BsYXlzcGVlZCcpOmZhbHNlLFNtb290aD11bmRlZmluZWQhPT1sb2dvQ2Fyb3VzZWxXcmFwcGVyLmRhdGEoJ3Ntb290aCcpP2xvZ29DYXJvdXNlbFdyYXBwZXIuZGF0YSgnc21vb3RoJyk6ZmFsc2UsU21vb3RoU3BlZWQ9dW5kZWZpbmVkIT09bG9nb0Nhcm91c2VsV3JhcHBlci5kYXRhKCdzbW9vdGgtc3BlZWQnKT9sb2dvQ2Fyb3VzZWxXcmFwcGVyLmRhdGEoJ3Ntb290aC1zcGVlZCcpOjMwMDt2YXIgYXJyb3dzLGRvdHMsY3NzRWFzZTtpZihTbW9vdGgpe2Nzc0Vhc2U9J2xpbmVhcic7YXV0b3BsYXlTcGVlZD0wfWVsc2V7Y3NzRWFzZT0nZWFzZSd9aWYoJ2JvdGgnPT09Y2Fyb3VzZWxOYXYpe2Fycm93cz10cnVlO2RvdHM9dHJ1ZX1lbHNlIGlmKCdhcnJvd3MnPT09Y2Fyb3VzZWxOYXYpe2Fycm93cz10cnVlO2RvdHM9ZmFsc2V9ZWxzZSBpZignZG90cyc9PT1jYXJvdXNlbE5hdil7YXJyb3dzPWZhbHNlO2RvdHM9dHJ1ZX1lbHNle2Fycm93cz1mYWxzZTtkb3RzPWZhbHNlfWlmKCQuaXNGdW5jdGlvbigkLmZuLnNsaWNrKSl7bG9nb0Nhcm91c2VsV3JhcHBlci5zbGljayh7aW5maW5pdGU6bG9vcCxzbGlkZXNUb1Nob3c6c2xpZGVzVG9TaG93LHNsaWRlc1RvU2Nyb2xsOnNsaWRlc1RvU2Nyb2xsLGF1dG9wbGF5OmF1dG9QbGF5LGF1dG9wbGF5U3BlZWQ6YXV0b3BsYXlTcGVlZCxkb3RzOmRvdHMscnRsOmRpcmVjdGlvbixhcnJvd3M6YXJyb3dzLHNwZWVkOlNtb290aFNwZWVkLGNzc0Vhc2U6Y3NzRWFzZSxwcmV2QXJyb3c6JzxkaXYgY2xhc3M9ImV4YWQtbG9nby1jYXJvdXNlbC1wcmV2Ij48aSBjbGFzcz0iZWljb24tY2hldnJvbi1sZWZ0Ij48L2k+PC9kaXY+JyxuZXh0QXJyb3c6JzxkaXYgY2xhc3M9ImV4YWQtbG9nby1jYXJvdXNlbC1uZXh0Ij48aSBjbGFzcz0iZWljb24tY2hldnJvbi1yaWdodCI+PC9pPjwvZGl2PicscmVzcG9uc2l2ZTpbe2JyZWFrcG9pbnQ6MTAyNCxzZXR0aW5nczp7c2xpZGVzVG9TaG93OmNhcm91c2VsQ29sdW1uVGFibGV0fX0se2JyZWFrcG9pbnQ6NzY4LHNldHRpbmdzOntzbGlkZXNUb1Nob3c6Y2Fyb3VzZWxDb2x1bW5UYWJsZXR9fSx7YnJlYWtwb2ludDo0NTAsc2V0dGluZ3M6e3NsaWRlc1RvU2hvdzpjYXJvdXNlbENvbHVtbk1vYmlsZX19XX0pfX07dmFyIGV4Y2x1c2l2ZU1vZGFsUG9wdXA9ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBtb2RhbFdyYXBwZXI9JHNjb3BlLmZpbmQoJy5leGFkLW1vZGFsJykuZXEoMCksbW9kYWxPdmVybGF5V3JhcHBlcj0kc2NvcGUuZmluZCgnLmV4YWQtbW9kYWwtb3ZlcmxheScpLG1vZGFsSXRlbT0kc2NvcGUuZmluZCgnLmV4YWQtbW9kYWwtaXRlbScpLG1vZGFsQWN0aW9uPW1vZGFsV3JhcHBlci5maW5kKCcuZXhhZC1tb2RhbC1pbWFnZS1hY3Rpb24nKSxjbG9zZUJ1dHRvbj1tb2RhbFdyYXBwZXIuZmluZCgnLmV4YWQtY2xvc2UtYnRuJyk7bW9kYWxBY3Rpb24ub24oJ2NsaWNrJyxmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG1vZGFsT3ZlcmxheT0kKHRoaXMpLnBhcmVudHMoKS5lcSgxKS5uZXh0KCk7dmFyIG1vZGFsPSQodGhpcykuZGF0YSgnZXhhZC1tb2RhbCcpO3ZhciBvdmVybGF5PSQodGhpcykuZGF0YSgnZXhhZC1vdmVybGF5Jyk7bW9kYWxJdGVtLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7c2V0VGltZW91dChmdW5jdGlvbigpeyQobW9kYWwpLmFkZENsYXNzKCdhY3RpdmUnKX0sMTAwKTtpZigneWVzJz09PW92ZXJsYXkpe21vZGFsT3ZlcmxheS5hZGRDbGFzcygnYWN0aXZlJyl9fSk7Y2xvc2VCdXR0b24uY2xpY2soZnVuY3Rpb24oKXt2YXIgbW9kYWxPdmVybGF5PSQodGhpcykucGFyZW50cygpLmVxKDMpLm5leHQoKTt2YXIgbW9kYWxJdGVtPSQodGhpcykucGFyZW50cygpLmVxKDIpO21vZGFsT3ZlcmxheS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7bW9kYWxJdGVtLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTt2YXIgbW9kYWxfaWZyYW1lPW1vZGFsV3JhcHBlci5maW5kKCdpZnJhbWUnKSwkbW9kYWxfdmlkZW9fdGFnPW1vZGFsV3JhcHBlci5maW5kKCd2aWRlbycpO2lmKG1vZGFsX2lmcmFtZS5sZW5ndGgpe3ZhciBtb2RhbF9zcmM9bW9kYWxfaWZyYW1lLmF0dHIoJ3NyYycpLnJlcGxhY2UoJyZhdXRvcGxheT0xJywnJyk7bW9kYWxfaWZyYW1lLmF0dHIoJ3NyYycsJycpO21vZGFsX2lmcmFtZS5hdHRyKCdzcmMnLG1vZGFsX3NyYyl9aWYoJG1vZGFsX3ZpZGVvX3RhZy5sZW5ndGgpeyRtb2RhbF92aWRlb190YWdbMF0ucGF1c2UoKTskbW9kYWxfdmlkZW9fdGFnWzBdLmN1cnJlbnRUaW1lPTB9fSk7bW9kYWxPdmVybGF5V3JhcHBlci5jbGljayhmdW5jdGlvbigpe3ZhciBvdmVybGF5X2NsaWNrX2Nsb3NlPSQodGhpcykuZGF0YSgnZXhhZF9vdmVybGF5X2NsaWNrX2Nsb3NlJyk7aWYoJ3llcyc9PT1vdmVybGF5X2NsaWNrX2Nsb3NlKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTskKCcuZXhhZC1tb2RhbC1pdGVtJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO3ZhciBtb2RhbF9pZnJhbWU9bW9kYWxXcmFwcGVyLmZpbmQoJ2lmcmFtZScpLCRtb2RhbF92aWRlb190YWc9bW9kYWxXcmFwcGVyLmZpbmQoJ3ZpZGVvJyk7aWYobW9kYWxfaWZyYW1lLmxlbmd0aCl7dmFyIG1vZGFsX3NyYz1tb2RhbF9pZnJhbWUuYXR0cignc3JjJykucmVwbGFjZSgnJmF1dG9wbGF5PTEnLCcnKTttb2RhbF9pZnJhbWUuYXR0cignc3JjJywnJyk7bW9kYWxfaWZyYW1lLmF0dHIoJ3NyYycsbW9kYWxfc3JjKX1pZigkbW9kYWxfdmlkZW9fdGFnLmxlbmd0aCl7JG1vZGFsX3ZpZGVvX3RhZ1swXS5wYXVzZSgpOyRtb2RhbF92aWRlb190YWdbMF0uY3VycmVudFRpbWU9MH19fSl9O3ZhciBleGNsdXNpdmVOZXdzVGlja2VyPWZ1bmN0aW9uKCRzY29wZSwkKXt2YXIgZXhhZF9uZXdzX3RpY2tlcj0kc2NvcGUuZmluZCgnLmV4YWQtbmV3cy10aWNrZXInKTtpZigkLmlzRnVuY3Rpb24oJC5mbi5icmVha2luZ05ld3MpKXtleGFkX25ld3NfdGlja2VyLmVhY2goZnVuY3Rpb24oKXt2YXIgdD0kKHRoaXMpLGF1dG89dC5kYXRhKCdhdXRvcGxheScpPyEwOiExLGFuaW1hdGlvbkVmZmVjdD10LmRhdGEoJ2FuaW1hdGlvbicpP3QuZGF0YSgnYW5pbWF0aW9uJyk6JycsZml4ZWRQb3NpdGlvbj10LmRhdGEoJ2ZpeGVkX3Bvc2l0aW9uJyk/dC5kYXRhKCdmaXhlZF9wb3NpdGlvbicpOicnLHBhdXNlT25Ib3Zlcj10LmRhdGEoJ3BhdXNlX29uX2hvdmVyJyk/dC5kYXRhKCdwYXVzZV9vbl9ob3ZlcicpOicnLGFuaW1hdGlvblNwZWVkPXQuZGF0YSgnYW5pbWF0aW9uX3NwZWVkJyk/dC5kYXRhKCdhbmltYXRpb25fc3BlZWQnKTonJyxhdXRvcGxheUludGVydmFsPXQuZGF0YSgnYXV0b3BsYXlfaW50ZXJ2YWwnKT90LmRhdGEoJ2F1dG9wbGF5X2ludGVydmFsJyk6JycsaGVpZ2h0PXQuZGF0YSgndGlja2VyX2hlaWdodCcpP3QuZGF0YSgndGlja2VyX2hlaWdodCcpOicnLGRpcmVjdGlvbj10LmRhdGEoJ2RpcmVjdGlvbicpP3QuZGF0YSgnZGlyZWN0aW9uJyk6Jyc7JCh0aGlzKS5icmVha2luZ05ld3Moe3Bvc2l0aW9uOmZpeGVkUG9zaXRpb24scGxheTphdXRvLGRpcmVjdGlvbjpkaXJlY3Rpb24sc2Nyb2xsU3BlZWQ6YW5pbWF0aW9uU3BlZWQsc3RvcE9uSG92ZXI6cGF1c2VPbkhvdmVyLGVmZmVjdDphbmltYXRpb25FZmZlY3QsZGVsYXlUaW1lcjphdXRvcGxheUludGVydmFsLGhlaWdodDpoZWlnaHQsZm9udFNpemU6J2RlZmF1bHQnLHRoZW1lQ29sb3I6J2RlZmF1bHQnLGJhY2tncm91bmQ6J2RlZmF1bHQnfSl9KX19O3ZhciBleGNsdXNpdmVQb3N0R3JpZD1mdW5jdGlvbigkc2NvcGUsJCl7dmFyIGV4YWRQb3N0Z3JpZFdyYXBwZWQ9JHNjb3BlLmZpbmQoJy5leGFkLXBvc3QtZ3JpZCcpO3ZhciBleGFkUG9zdEFydGljbGU9ZXhhZFBvc3RncmlkV3JhcHBlZC5maW5kKCcuZXhhZC1wb3N0LWdyaWQtdGhyZWUgLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5leGFkLXBvc3QtZ3JpZC1lcXVhbC1oZWlnaHQteWVzJyk7dmFyIGV4YWRQb3N0V3JhcHBlcj1leGFkUG9zdGdyaWRXcmFwcGVkLmZpbmQoJy5leGFkLXJvdy13cmFwcGVyJyk7ZXhhZFBvc3RBcnRpY2xlLm1hdGNoSGVpZ2h0KHtieVJvdzowfSk7dmFyIGJ0bj1leGFkUG9zdGdyaWRXcmFwcGVkLmZpbmQoJy5leGFkLXBvc3QtZ3JpZC1wYWdpbmF0ZS1idG4nKTt2YXIgYnRuVGV4dD1idG4udGV4dCgpO3ZhciBwYWdlPTI7JChidG4pLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpOyQuYWpheCh7dXJsOmV4YWRfYWpheF9vYmplY3QuYWpheF91cmwsdHlwZTonUE9TVCcsZGF0YTp7YWN0aW9uOidhamF4X3BhZ2luYXRpb24nLHBhZ2VkOnBhZ2UscG9zdF90eXBlOiQodGhpcykuZGF0YSgncG9zdC10eXBlJykscG9zdHNfcGVyX3BhZ2U6JCh0aGlzKS5kYXRhKCdwb3N0c19wZXJfcGFnZScpLHBvc3Rfb2Zmc2V0OiQodGhpcykuZGF0YSgncG9zdC1vZmZzZXQnKSxwb3N0X3RodW1ibmFpbDokKHRoaXMpLmRhdGEoJ3Bvc3QtdGh1bWJuYWlsJykscG9zdF90aHVtYl9zaXplOiQodGhpcykuZGF0YSgncG9zdC10aHVtYi1zaXplJyksZXF1YWxfaGVpZ2h0OiQodGhpcykuZGF0YSgnZXF1YWxfaGVpZ2h0JyksZW5hYmxlX2RldGFpbHNfYnRuOiQodGhpcykuZGF0YSgnZW5hYmxlX2RldGFpbHNfYnRuJyksZGV0YWlsc19idG5fdGV4dDokKHRoaXMpLmRhdGEoJ2RldGFpbHNfYnRuX3RleHQnKSxkZXRhaWxzX2J0bl90ZXh0X3RhYjokKHRoaXMpLmRhdGEoJ2RldGFpbHNfYnRuX3RleHRfdGFiJyksc2hvd191c2VyX2F2YXRhcjokKHRoaXMpLmRhdGEoJ3Nob3ctdXNlci1hdmF0YXInKSxzaG93X3VzZXJfbmFtZTokKHRoaXMpLmRhdGEoJ3Nob3dfdXNlcl9uYW1lJykscG9zdF9kYXRhX3Bvc2l0aW9uOiQodGhpcykuZGF0YSgncG9zdF9kYXRhX3Bvc2l0aW9uJyksc2hvd190aXRsZTokKHRoaXMpLmRhdGEoJ3Nob3dfdGl0bGUnKSxzaG93X3RpdGxlX3Bhcm1hbGluazokKHRoaXMpLmRhdGEoJ3Nob3dfdGl0bGVfcGFybWFsaW5rJyksdGl0bGVfZnVsbDokKHRoaXMpLmRhdGEoJ3RpdGxlX2Z1bGwnKSx0aXRsZV90YWc6JCh0aGlzKS5kYXRhKCd0aXRsZV90YWcnKSxzaG93X3JlYWRfdGltZTokKHRoaXMpLmRhdGEoJ3Nob3dfcmVhZF90aW1lJyksc2hvd19jb21tZW50OiQodGhpcykuZGF0YSgnc2hvd19jb21tZW50Jyksc2hvd19leGNlcnB0OiQodGhpcykuZGF0YSgnc2hvd19leGNlcnB0JyksZXhjZXJwdF9sZW5ndGg6JCh0aGlzKS5kYXRhKCdleGNlcnB0X2xlbmd0aCcpLHNob3dfdXNlcl9uYW1lX3RhZzokKHRoaXMpLmRhdGEoJ3Nob3dfdXNlcl9uYW1lX3RhZycpLHVzZXJfbmFtZV90YWc6JCh0aGlzKS5kYXRhKCd1c2VyX25hbWVfdGFnJyksc2hvd19kYXRlOiQodGhpcykuZGF0YSgnc2hvd19kYXRlJyksc2hvd19kYXRlX3RhZzokKHRoaXMpLmRhdGEoJ3Nob3dfZGF0ZV90YWcnKSxkYXRlX3RhZzokKHRoaXMpLmRhdGEoJ2RhdGVfdGFnJyksdGl0bGVfbGVuZ3RoOiQodGhpcykuZGF0YSgndGl0bGVfbGVuZ3RoJyksaW1hZ2VfYWxpZ246JCh0aGlzKS5kYXRhKCdpbWFnZV9hbGlnbicpLGNhdGVnb3J5X2RlZmF1bHRfcG9zaXRpb246JCh0aGlzKS5kYXRhKCdjYXRlZ29yeV9kZWZhdWx0X3Bvc2l0aW9uJyksY2F0ZWdvcnlfcG9zaXRpb25fb3Zlcl9pbWFnZTokKHRoaXMpLmRhdGEoJ2NhdGVnb3J5X3Bvc2l0aW9uX292ZXJfaW1hZ2UnKSxzaG93X2NhdGVnb3J5OiQodGhpcykuZGF0YSgnc2hvd19jYXRlZ29yeScpLGNhdGVnb3J5OiQodGhpcykuZGF0YSgnY2F0ZWdvcnknKSx0YWdzOiQodGhpcykuZGF0YSgndGFncycpLG9mZnNldDokKHRoaXMpLmRhdGEoJ29mZnNldCcpLGV4Y2x1ZGVfcG9zdDokKHRoaXMpLmRhdGEoJ2V4Y2x1ZGVfcG9zdCcpfSxiZWZvcmVTZW5kOmZ1bmN0aW9uKHhocil7YnRuLnRleHQoJ0xvYWRpbmcuLi4nKX0sc3VjY2VzczpmdW5jdGlvbihodG1sKXtpZihodG1sLmxlbmd0aD4wKXtidG4udGV4dChidG5UZXh0KTtleGFkUG9zdFdyYXBwZXIuYXBwZW5kKGh0bWwpO3BhZ2UrPTE7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBuZXdFeGFkUG9zdEFydGljbGU9ZXhhZFBvc3RncmlkV3JhcHBlZC5maW5kKCcuZXhhZC1wb3N0LWdyaWQtdGhyZWUgLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5leGFkLXBvc3QtZ3JpZC1lcXVhbC1oZWlnaHQteWVzJyk7bmV3RXhhZFBvc3RBcnRpY2xlLm1hdGNoSGVpZ2h0KHtieVJvdzowfSl9LDEwKX1lbHNle2J0bi5yZW1vdmUoKX19fSl9KX07ZnVuY3Rpb24gYW5pbWF0ZWRQcm9ncmVzc2JhcihpZCx0eXBlLHZhbHVlLHN0cm9rZUNvbG9yLHRyYWlsQ29sb3Isc3Ryb2tlV2lkdGgsc3Ryb2tlVHJhaWxXaWR0aCl7dmFyIHRyaWdnZXJDbGFzcz0nLmV4YWQtcHJvZ3Jlc3MtYmFyLScraWQ7aWYoJ2Z1bmN0aW9uJz09PXR5cGVvZiBsZEJhcil7aWYoJ2xpbmUnPT09dHlwZSl7bmV3IGxkQmFyKHRyaWdnZXJDbGFzcyx7J3R5cGUnOidzdHJva2UnLCdwYXRoJzonTTAgMTBMMTAwIDEwJywnYXNwZWN0LXJhdGlvJzonbm9uZScsJ3N0cm9rZSc6c3Ryb2tlQ29sb3IsJ3N0cm9rZS10cmFpbCc6dHJhaWxDb2xvciwnc3Ryb2tlLXdpZHRoJzpzdHJva2VXaWR0aCwnc3Ryb2tlLXRyYWlsLXdpZHRoJzpzdHJva2VUcmFpbFdpZHRofSkuc2V0KHZhbHVlKX1pZignbGluZS1idWJibGUnPT09dHlwZSl7bmV3IGxkQmFyKHRyaWdnZXJDbGFzcyx7J3R5cGUnOidzdHJva2UnLCdwYXRoJzonTTAgMTBMMTAwIDEwJywnYXNwZWN0LXJhdGlvJzonbm9uZScsJ3N0cm9rZSc6c3Ryb2tlQ29sb3IsJ3N0cm9rZS10cmFpbCc6dHJhaWxDb2xvciwnc3Ryb2tlLXdpZHRoJzpzdHJva2VXaWR0aCwnc3Ryb2tlLXRyYWlsLXdpZHRoJzpzdHJva2VUcmFpbFdpZHRofSkuc2V0KHZhbHVlKTskKCQoJy5leGFkLXByb2dyZXNzLWJhci0nK2lkKS5maW5kKCcubGRCYXItbGFiZWwnKSkuYW5pbWF0ZSh7bGVmdDp2YWx1ZSsnJSd9LDEwMDAsJ3N3aW5nJyl9aWYoJ2NpcmNsZSc9PT10eXBlKXtuZXcgbGRCYXIodHJpZ2dlckNsYXNzLHsndHlwZSc6J3N0cm9rZScsJ3BhdGgnOidNNTAgMTBBNDAgNDAgMCAwIDEgNTAgOTBBNDAgNDAgMCAwIDEgNTAgMTAnLCdzdHJva2UtZGlyJzonbm9ybWFsJywnc3Ryb2tlJzpzdHJva2VDb2xvciwnc3Ryb2tlLXRyYWlsJzp0cmFpbENvbG9yLCdzdHJva2Utd2lkdGgnOnN0cm9rZVdpZHRoLCdzdHJva2UtdHJhaWwtd2lkdGgnOnN0cm9rZVRyYWlsV2lkdGh9KS5zZXQodmFsdWUpfWlmKCdmYW4nPT09dHlwZSl7bmV3IGxkQmFyKHRyaWdnZXJDbGFzcyx7J3R5cGUnOidzdHJva2UnLCdwYXRoJzonTTEwIDkwQTQwIDQwIDAgMCAxIDkwIDkwJywnc3Ryb2tlJzpzdHJva2VDb2xvciwnc3Ryb2tlLXRyYWlsJzp0cmFpbENvbG9yLCdzdHJva2Utd2lkdGgnOnN0cm9rZVdpZHRoLCdzdHJva2UtdHJhaWwtd2lkdGgnOnN0cm9rZVRyYWlsV2lkdGh9KS5zZXQodmFsdWUpfX19dmFyIGV4Y2x1c2l2ZVByb2dyZXNzQmFyPWZ1bmN0aW9uKCRzY29wZSwkKXt2YXIgcHJvZ3Jlc3NCYXJXcmFwcGVyPSRzY29wZS5maW5kKCdbZGF0YS1wcm9ncmVzcy1iYXJdJykuZXEoMCk7aWYoJC5pc0Z1bmN0aW9uKCQuZm4ud2F5cG9pbnQpKXtwcm9ncmVzc0JhcldyYXBwZXIud2F5cG9pbnQoZnVuY3Rpb24oKXt2YXIgZWxlbWVudD0kKHRoaXMuZWxlbWVudCksaWQ9ZWxlbWVudC5kYXRhKCdpZCcpLHR5cGU9ZWxlbWVudC5kYXRhKCd0eXBlJyksdmFsdWU9ZWxlbWVudC5kYXRhKCdwcm9ncmVzcy1iYXItdmFsdWUnKSxzdHJva2VXaWR0aD1lbGVtZW50LmRhdGEoJ3Byb2dyZXNzLWJhci1zdHJva2Utd2lkdGgnKSxzdHJva2VUcmFpbFdpZHRoPWVsZW1lbnQuZGF0YSgncHJvZ3Jlc3MtYmFyLXN0cm9rZS10cmFpbC13aWR0aCcpLGNvbG9yPWVsZW1lbnQuZGF0YSgnc3Ryb2tlLWNvbG9yJyksdHJhaWxDb2xvcj1lbGVtZW50LmRhdGEoJ3N0cm9rZS10cmFpbC1jb2xvcicpO2FuaW1hdGVkUHJvZ3Jlc3NiYXIoaWQsdHlwZSx2YWx1ZSxjb2xvcix0cmFpbENvbG9yLHN0cm9rZVdpZHRoLHN0cm9rZVRyYWlsV2lkdGgpO3RoaXMuZGVzdHJveSgpfSx7b2Zmc2V0Oidib3R0b20taW4tdmlldyd9KX19O3ZhciBleGNsdXNpdmVTdGlja3k9ZnVuY3Rpb24oJHNjb3BlLCQpe3ZhciBleGFkU3RpY2t5U2VjdGlvbj0kc2NvcGUuZmluZCgnLmV4YWQtc3RpY2t5LXNlY3Rpb24teWVzJykuZXEoMCk7ZXhhZFN0aWNreVNlY3Rpb24uZWFjaChmdW5jdGlvbihpKXt2YXIgZGF0YVNldHRpbmdzPSQodGhpcykuZGF0YSgnc2V0dGluZ3MnKTskLmVhY2goZGF0YVNldHRpbmdzLGZ1bmN0aW9uKGluZGV4LHZhbHVlKXtpZihpbmRleD09PSdleGFkX3N0aWNreV90b3Bfc3BhY2luZycpeyRzY29wZS5maW5kKCcuZXhhZC1zdGlja3ktc2VjdGlvbi15ZXMnKS5jc3MoInRvcCIsdmFsdWUrInB4Iil9fSl9KTskc2NvcGUuZWFjaChmdW5jdGlvbihpKXt2YXIgc2VjdGlvblNldHRpbmdzPSRzY29wZS5kYXRhKCJzZXR0aW5ncyIpOyQuZWFjaChzZWN0aW9uU2V0dGluZ3MsZnVuY3Rpb24oaW5kZXgsdmFsdWUpe2lmKGluZGV4PT09J2V4YWRfc3RpY2t5X3RvcF9zcGFjaW5nJyl7JHNjb3BlLmNzcygidG9wIix2YWx1ZSsicHgiKX19KX0pO2lmKGV4YWRTdGlja3lTZWN0aW9uLmxlbmd0aD4wKXt2YXIgcGFyZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5leGFkLXN0aWNreS1zZWN0aW9uLXllcycpLnBhcmVudEVsZW1lbnQ7d2hpbGUocGFyZW50KXt2YXIgaGFzT3ZlcmZsb3c9Z2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQpLm92ZXJmbG93O2lmKGhhc092ZXJmbG93IT09J3Zpc2libGUnKXtwYXJlbnQuc3R5bGUub3ZlcmZsb3c9InZpc2libGUifXBhcmVudD1wYXJlbnQucGFyZW50RWxlbWVudH19dmFyIGNvbHVtbkNsYXNzPSRzY29wZS5maW5kKCcuZXhhZC1jb2x1bW4tc3RpY2t5Jyk7dmFyIGRhdGFJZD1jb2x1bW5DbGFzcy5kYXRhKCdpZCcpO3ZhciBkYXRhVHlwZT1jb2x1bW5DbGFzcy5kYXRhKCd0eXBlJyk7dmFyIHRvcFNwYWNpbmc9Y29sdW1uQ2xhc3MuZGF0YSgndG9wX3NwYWNpbmcnKTtpZihkYXRhVHlwZT09PSdjb2x1bW4nKXt2YXIgJHRhcmdldD0kc2NvcGUsd3JhcENsYXNzPWNvbHVtbkNsYXNzLmZpbmQoJy5lbGVtZW50b3Itd2lkZ2V0LXdyYXAnKSxjb250YWluZXJTZWxlY3Rvcj0nLmVsZW1lbnRvci1yb3cnLGNvbnRhaW5lcnM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChjb250YWluZXJTZWxlY3Rvcik7aWYoY29udGFpbmVycy5sZW5ndGg9PT0wKXtjb250YWluZXJTZWxlY3Rvcj0nYm9keSAjY29udGVudCAuY29udGFpbmVyOmZpcnN0LWNoaWxkJztjb250YWluZXJzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoY29udGFpbmVyU2VsZWN0b3IpfWlmKGNvbnRhaW5lcnMubGVuZ3RoPT09MCl7Y29udGFpbmVyU2VsZWN0b3I9Jy5jb250ZW50LXdyYXBwZXIuY29udGFpbmVyIC5yb3cnO2NvbnRhaW5lcnM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChjb250YWluZXJTZWxlY3Rvcil9aWYoY29udGFpbmVycy5sZW5ndGg9PT0wKXtjb250YWluZXJTZWxlY3Rvcj1mYWxzZX13cmFwQ2xhc3Muc3RpY2t5U2lkZWJhcih7dG9wU3BhY2luZzp0b3BTcGFjaW5nLGJvdHRvbVNwYWNpbmc6NjAsY29udGFpbmVyU2VsZWN0b3I6Y29udGFpbmVyU2VsZWN0b3IsaW5uZXJXcmFwcGVyU2VsZWN0b3I6Jy5lbGVtZW50b3ItY29sdW1uLXdyYXAnfSl9fTt2YXIgZXhjbHVzaXZlVGFicz1mdW5jdGlvbigkc2NvcGUsJCl7dmFyIHRhYnNXcmFwcGVyPSRzY29wZS5maW5kKCcuZXhhZC10YWJzLScrJHNjb3BlLmRhdGEoImlkIikpLmVxKDApO3RhYnNXcmFwcGVyLmVhY2goZnVuY3Rpb24oKXt2YXIgdGFiPSRzY29wZS5maW5kKCcuZXhhZC10YWJzLScrJHNjb3BlLmRhdGEoImlkIikpLGlzVGFiQWN0aXZlPWZhbHNlLGlzQ29udGVudEFjdGl2ZT1mYWxzZTt0YWIuY2hpbGRyZW4oKS5maW5kKCcgPiBbZGF0YS10YWJdJykuZWFjaChmdW5jdGlvbigpe2lmKCQodGhpcykuaGFzQ2xhc3MoJ2FjdGl2ZScpKXtpc1RhYkFjdGl2ZT10cnVlfX0pO3RhYi5maW5kKCcgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50JykuZWFjaChmdW5jdGlvbigpe2lmKCQodGhpcykuaGFzQ2xhc3MoJ2FjdGl2ZScpKXtpc0NvbnRlbnRBY3RpdmU9dHJ1ZX19KTtpZighaXNDb250ZW50QWN0aXZlKXt0YWIuZmluZCgnID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudCcpLmVxKDApLmFkZENsYXNzKCdhY3RpdmUnKX1pZighaXNUYWJBY3RpdmUpe3RhYi5maW5kKCdbZGF0YS10YWJdJykuZXEoMCkuYWRkQ2xhc3MoJ2FjdGl2ZScpfXRhYi5jaGlsZHJlbigpLmZpbmQoJyA+IFtkYXRhLXRhYl0nKS5jbGljayhmdW5jdGlvbigpe3RhYi5maW5kKCdbZGF0YS10YWJdJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO3RhYi5maW5kKCcgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50JykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOyQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO3RhYi5maW5kKCcgPiBbZGF0YS10YWJdJykuZXEoJCh0aGlzKS5pbmRleCgpKS5hZGRDbGFzcygnYWN0aXZlJyk7dGFiLmZpbmQoJyA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQnKS5lcSgkKHRoaXMpLmluZGV4KCkpLmFkZENsYXNzKCdhY3RpdmUnKX0pfSl9OyQod2luZG93KS5vbignZWxlbWVudG9yL2Zyb250ZW5kL2luaXQnLGZ1bmN0aW9uKCl7aWYoZWxlbWVudG9yRnJvbnRlbmQuaXNFZGl0TW9kZSgpKXtlZGl0TW9kZT10cnVlfWVsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWV4Y2x1c2l2ZS1hY2NvcmRpb24uZGVmYXVsdCcsZXhjbHVzaXZlQWNjb3JkaW9uKTtlbGVtZW50b3JGcm9udGVuZC5ob29rcy5hZGRBY3Rpb24oJ2Zyb250ZW5kL2VsZW1lbnRfcmVhZHkvZXhhZC1wb3N0LWdyaWQuZGVmYXVsdCcsZXhjbHVzaXZlUG9zdEdyaWQpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWV4Y2x1c2l2ZS1hbGVydC5kZWZhdWx0JyxleGNsdXNpdmVBbGVydCk7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtYW5pbWF0ZWQtdGV4dC5kZWZhdWx0JyxleGNsdXNpdmVBbmltYXRlZFRleHQpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWV4Y2x1c2l2ZS1idXR0b24uZGVmYXVsdCcsZXhjbHVzaXZlQnV0dG9uKTtlbGVtZW50b3JGcm9udGVuZC5ob29rcy5hZGRBY3Rpb24oJ2Zyb250ZW5kL2VsZW1lbnRfcmVhZHkvZXhhZC1jb3VudGRvd24tdGltZXIuZGVmYXVsdCcsZXhjbHVzaXZlQ291bnRkb3duVGltZXIpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWZpbHRlcmFibGUtZ2FsbGVyeS5kZWZhdWx0JyxleGNsdXNpdmVGaWx0ZXJhYmxlR2FsbGVyeSk7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtZ29vZ2xlLW1hcHMuZGVmYXVsdCcsZXhjbHVzaXZlR29vZ2xlTWFwcyk7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtaW1hZ2UtY29tcGFyaXNvbi5kZWZhdWx0JyxleGNsdXNpdmVJbWFnZUNvbXBhcmlzb24pO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWltYWdlLW1hZ25pZmllci5kZWZhdWx0JyxleGNsdXNpdmVJbWFnZU1hZ25pZmllcik7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtbG9nby1jYXJvdXNlbC5kZWZhdWx0JyxleGNsdXNpdmVMb2dvQ2Fyb3VzZWwpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLW1vZGFsLXBvcHVwLmRlZmF1bHQnLGV4Y2x1c2l2ZU1vZGFsUG9wdXApO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLW5ld3MtdGlja2VyLmRlZmF1bHQnLGV4Y2x1c2l2ZU5ld3NUaWNrZXIpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLXByb2dyZXNzLWJhci5kZWZhdWx0JyxleGNsdXNpdmVQcm9ncmVzc0Jhcik7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtZXhjbHVzaXZlLXRhYnMuZGVmYXVsdCcsZXhjbHVzaXZlVGFicyk7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L2V4YWQtY292aWQtMTkuZGVmYXVsdCcsZXhjbHVzaXZlQ29yb25hKTtlbGVtZW50b3JGcm9udGVuZC5ob29rcy5hZGRBY3Rpb24oJ2Zyb250ZW5kL2VsZW1lbnRfcmVhZHkvZXhhZC1mYWNlYm9vay1mZWVkLmRlZmF1bHQnLGV4YWRGYWNlYm9va0ZlZWQpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWdvb2dsZS1yZXZpZXdzLmRlZmF1bHQnLGV4Y2x1c2l2ZUdvb2dsZVJldmlld3MpO2VsZW1lbnRvckZyb250ZW5kLmhvb2tzLmFkZEFjdGlvbignZnJvbnRlbmQvZWxlbWVudF9yZWFkeS9leGFkLWZpbHRlcmFibGUtcG9zdC5kZWZhdWx0JyxleGNsdXNpdmVGaWx0ZXJhYmxlUG9zdCk7ZWxlbWVudG9yRnJvbnRlbmQuaG9va3MuYWRkQWN0aW9uKCdmcm9udGVuZC9lbGVtZW50X3JlYWR5L3NlY3Rpb24nLGV4Y2x1c2l2ZVN0aWNreSl9KX0oalF1ZXJ5KSk7"}},"time_used":481,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":481,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10784971490","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.480Z","timestamp":1785145405480,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=AW-10784971490 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:25 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 09:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 156703\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":454912,"size_decoded":157333,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (5422)","md5":"c559cc31fbfe47dfb2fce0e89498388f","sha1":"675d9de2190e7dde56333286a2e089dee48df726","sha256":"f0291c57a5ec5b7284e67a9a6313ec560383e3b2933408fee688d00ffa8f0b4d","sha512":"e87a3845724fafc51b84698e9282b7839a66d11728e70d650bf50e46c6b9939d1a7818343abd6b2b118ebddafa8a55e3e55cce98032bedeb467052662e02b0e3","ssdeep":"6144:AU3WU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+xTGawoXtS:AU3vYqP69V3KqxXwOtS","tlshash":"a9a419cdb3d670629396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","first_seen":"2026-07-27T07:14:06.808354Z","last_seen":"2026-07-27T14:04:41.058225Z","times_seen":5,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMiIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifV0sCiAgInRhZ3MiOlt7ImZ1bmN0aW9uIjoiX19vZ3RfYWRzX2RhdGF0b3MiLCJwcmlvcml0eSI6MTksInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTZ9LHsiZnVuY3Rpb24iOiJfX29ndF8xcF9kYXRhX3YyIiwicHJpb3JpdHkiOjksInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfaXNNYW51YWxFbmFibGVkIjpmYWxzZSwidnRwX2F1dG9QaG9uZUVuYWJsZWQiOmZhbHNlLCJ2dHBfYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiOlsibGlzdCIsWyJtYXAiLCJleGNsdXNpb25TZWxlY3RvciIsIiJdXSwidnRwX2lzRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9BZGRyZXNzRW5hYmxlZCI6ZmFsc2UsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjd9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZHNfZmlyc3QiLCJwcmlvcml0eSI6OCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTEwNzg0OTcxNDkwIiwidGFnX2lkIjoxN30seyJmdW5jdGlvbiI6Il9fY2NkX3ByZV9hdXRvX3BpaSIsInByaW9yaXR5Ijo2LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjE1fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5Ijo1LCJ2dHBfaW5jbHVkZVBhcmFtcyI6ZmFsc2UsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTR9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9wYWdlX3ZpZXciLCJwcmlvcml0eSI6NCwidnRwX2hpc3RvcnlFdmVudHMiOnRydWUsInZ0cF9kZWZlclBhZ2VWaWV3Ijp0cnVlLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTEwNzg0OTcxNDkwIiwidGFnX2lkIjoxM30seyJmdW5jdGlvbiI6Il9fY2NkX2Fkc19jb252X21hcmtpbmciLCJwcmlvcml0eSI6MywidnRwX2NvbnZlcnNpb25SdWxlcyI6WyJsaXN0IixbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6MixcImFyZ3NcIjpbe1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHA6XC9cL2Z1bmRpbmcudHgzbWFya2V0cy5jb21cIn1dfX0se1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjo2LFwiYXJnc1wiOlt7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiaGl0RGF0YVwiLFwicGFnZV9sb2NhdGlvblwiXX19LHtcInN0cmluZ1ZhbHVlXCI6XCJodHRwczpcL1wvZnVuZGluZy50eDNtYXJrZXRzLmNvbVwifV19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjIsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInBhZ2Vfdmlld1wifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfX0se1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHA6XC9cL2Z1bmRpbmcudHgzbWFya2V0cy5jb21cL2VuXC9meFwifV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHBzOlwvXC9mdW5kaW5nLnR4M21hcmtldHMuY29tXC9lblwvZnhcIn1dfX1dfX1dfX1dfSIsImNvbnZlcnNpb25MYWJlbCIsInlENEVDTFhGazk4YkVPSzExcFlvIl1dLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjEyfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW5hYmxlX2NtIiwicHJpb3JpdHkiOjIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5IjoxLCJ2dHBfYWNjZXB0QXV0b21hdGljIjp0cnVlLCJ2dHBfYWNjZXB0Q29kZSI6dHJ1ZSwidnRwX2FjY2VwdE1hbnVhbFNlbGVjdG9yIjp0cnVlLCJ2dHBfYWNjZXB0VXNlckRhdGEiOnRydWUsInZ0cF9tYXRjaGluZ1J1bGVzIjoie1widHlwZVwiOjEsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNvbnZlcnNpb25cIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19LHtcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInVzZXJfZGF0YV93ZWJcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19XX0iLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19yZXAiLCJ2dHBfY29udGFpbmVySWQiOiJBVy0xMDc4NDk3MTQ5MCIsInZ0cF9yZW1vdGVDb25maWciOlsibWFwIl0sInRhZ19pZCI6NX0seyJmdW5jdGlvbiI6Il9fY2NkX2Fkc19sYXN0IiwicHJpb3JpdHkiOjAsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6OX1dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiw5XV0sW1siaWYiLDFdLFsiYWRkIiwxLDEwLDgsNyw2LDUsNCwzLDAsMl1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fY2NkX2FkZF8xcF9kYXRhIixbNDYsImEiXSxbNTAsInciLFs0NiwiYUIiXSxbMjIsWzMwLFsyMCxbMTUsImFCIl0sWzQ0XV0sWzIwLFsxNSwiYUIiXSxbNDVdXV0sWzQ2LFszNixbN11dXV0sWzIyLFsyMCxbImciLFsxNSwiYUIiXV0sImFycmF5Il0sWzQ2LFszNixbMTUsImFCIl1dXV0sWzM2LFs3LFsxNSwiYUIiXV1dXSxbNTAsIngiLFs0NiwiYUIiLCJhQyJdLFsyMixbMSxbMTUsImFCIl0sWzE2LFsxNSwiYUIiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzM4LFsxNixbMTUsImFCIl0sWzE1LCJtIl1dLFs0NixbMTUsIm8iXSxbMTUsInAiXV0sWzQ2LFs1LFs0NixbMzYsWzE1LCJsIl1dXV0sWzUsWzQ2LFszNixbMTUsImsiXV1dXSxbOSxbNDYsWzM2LFsxNSwiaiJdXV1dXV1dXV0sWzM2LFsxNSwiYUMiXV1dLFs1MCwieSIsWzQ2LCJhQiIsImFDIiwiYUQiXSxbMjIsWzE1LCJhQiJdLFs0NixbMzYsWyJ4IixbMTUsImFCIl0sWzE1LCJqIl1dXV1dLFsyMixbMTUsImFDIl0sWzQ2LFszNixbMTUsImsiXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbMzYsWzE1LCJsIl1dXV0sWzM2LFs0NF1dXSxbNTAsInoiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsyOCxbMTUsImFDIl1dLFs0NixbMzYsZmFsc2VdXV0sWzQxLCJhRSJdLFszLCJhRSIsZmFsc2VdLFs1MiwiYUYiLFsieCIsWzE1LCJhQyJdLFsxNSwiYUQiXV1dLFs2NSwiYUciLFsyLFsxNSwiZiJdLCJrZXlzIixbNyxbMTUsImFDIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRyJdLFsxNSwibiJdXSxbNDYsWzZdXV0sWzUyLCJhSCIsWyJ3IixbMTYsWzE1LCJhQyJdLFsxNSwiYUciXV1dXSxbNTIsImFJIixbMSxbMTYsWzE1LCJhQyJdLFsxNSwibiJdXSxbMTYsWzE2LFsxNSwiYUMiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXV1dLFs1MiwiYUoiLFsidyIsWzE1LCJhSSJdXV0sWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFIIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbMTYsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzZdXV0sWzQzLFsxNSwiYUIiXSxbMTUsImFHIl0sWzMwLFsxNixbMTUsImFCIl0sWzE1LCJhRyJdXSxbN11dXSxbNDMsWzE1LCJhQiJdLFsxNSwibiJdLFszMCxbMTYsWzE1LCJhQiJdLFsxNSwibiJdXSxbOF1dXSxbNDMsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdLFszMCxbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSxbN11dXSxbNTIsImFNIixbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sImluZGV4T2YiLFs3LFsxNSwiYUwiXV1dXSxbMjIsWzIxLFsxNSwiYU0iXSxbMjcsMV1dLFs0NixbNl1dXSxbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sInB1c2giLFs3LFsxNSwiYUwiXV1dLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzgsIm1vZGUiLFsxNSwiYUYiXV1dXSxbMixbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSwicHVzaCIsWzcsWzE1LCJhTiJdXV0sWzMsImFFIix0cnVlXV1dXV1dXV0sWzM2LFsxNSwiYUUiXV1dLFs1MCwiYUEiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsxLFsxLFsyOCxbMTUsImFCIl1dLFsyOCxbMTUsImFDIl1dXSxbMjgsWzE1LCJhRCJdXV0sWzQ2LFs1MyxbMzYsWzgsInVzZXJEYXRhIixbNDRdLCJkaWRCbGVuZCIsZmFsc2VdXV1dXSxbNTIsImFFIixbOF1dLFs1MiwiYUYiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUIiXSxbMTUsImoiXV1dLFs1MiwiYUciLFsieiIsWzE1LCJhRSJdLFsxNSwiYUMiXSxbMTUsImsiXV1dLFs1MiwiYUgiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUQiXSxbMTUsImwiXV1dLFsyMixbMSxbMSxbMjgsWzE1LCJhRiJdXSxbMjgsWzE1LCJhRyJdXV0sWzI4LFsxNSwiYUgiXV1dLFs0NixbNTMsWzM2LFs4LCJ1c2VyRGF0YSIsWzQ0XSwiZGlkQmxlbmQiLGZhbHNlXV1dXV0sWzUyLCJhSSIsWzE5LFswLFswLFszOSxbMTUsImFGIl0sMSwwXSxbMzksWzE1LCJhRyJdLDEsMF1dLFszOSxbMTUsImFIIl0sMSwwXV0sMl1dLFszNixbOCwidXNlckRhdGEiLFsxNSwiYUUiXSwiZGlkQmxlbmQiLFsxNSwiYUkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50cmFja1VzYWdlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyJdXSxbNTIsImoiLCJjIl0sWzUyLCJrIiwibSJdLFs1MiwibCIsImEiXSxbNTIsIm0iLCJfdGFnX21vZGUiXSxbNTIsIm4iLCJfdGFnX21ldGFkYXRhIl0sWzUyLCJvIiwiQVVUTyJdLFs1MiwicCIsIk1BTlVBTCJdLFs1MiwicSIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsInIiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbInEiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFsicyIsWzE1LCJyIl0sImNjZF9hZGRfMXBfZGF0YSIsdHJ1ZV0sWzIyLFszMCxbMzAsWzI4LFsxNyxbMTUsImEiXSwibWF0Y2hpbmdSdWxlcyJdXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRVc2VyRGF0YSJdXV0sWzEsWzEsWzI4LFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl1dLFsyOCxbMTcsWzE1LCJhIl0sImFjY2VwdE1hbnVhbFNlbGVjdG9yIl1dXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRDb2RlIl1dXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwidSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsInYiLFs1MSwiIixbNywiYUIiXSxbMjIsWzI4LFsidSIsWzE3LFsxNSwiYSJdLCJtYXRjaGluZ1J1bGVzIl0sWzgsInByZUhpdCIsWzE1LCJhQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJCTyJdXV0sWzQ2LFs1MyxbMixbMTUsImFCIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNOIl0sdHJ1ZV1dLFszNl1dXV0sWzQxLCJhQyJdLFs0MSwiYUQiXSxbNTIsImFFIixbImQiLFsxNyxbMTUsImUiXSwiQ0siXV1dLFs1MiwiYUYiLFsxLFsxNSwiciJdLFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dLFs1MiwiYUciLFsxLFsxNSwiYUUiXSxbMTUsImFGIl1dXSxbMjIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhSCIsWzM5LFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1oiXV1dLFs0NF1dXSxbNTIsImFJIixbMzksWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiREEiXV1dLFs0NF1dXSxbNDEsImFKIl0sWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl0sWzQ2LFs1MyxbNTIsImFMIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNZIl1dXV0sWzIyLFsxNSwiYUwiXSxbNDYsWzUzLFszLCJhSiIsWyJhTCIsWzE1LCJhQiJdXV1dXV1dXV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyMCxbMTUsImFIIl0sWzQ1XV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFLIixbImFBIixbMTUsImFIIl0sWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFszLCJhRCIsWzE3LFsxNSwiYUsiXSwidXNlckRhdGEiXV0sWzIyLFsxNyxbMTUsImFLIl0sImRpZEJsZW5kIl0sWzQ2LFs1MyxbImgiLCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsWzE3LFsxNSwiaSJdLCJBRSJdXV1dXSxbMywiYUMiLFsieSIsWzE1LCJhSCJdLFsxNSwiYUkiXSxbMTUsImFKIl1dXV1dLFs0NixbNTMsWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFs0NixbNTMsWzMsImFEIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNaIl1dXV0sWzIyLFsyMCxbMTUsImFEIl0sWzQ1XV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJhQyIsWyJ4IixbMTUsImFEIl0sWzE1LCJqIl1dXV1dXSxbMjIsWzEsWzI4LFsxNSwiYUQiXV0sWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdXSxbNDYsWzUzLFszLCJhRCIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJEQSJdXV1dLFszLCJhQyIsWzE1LCJrIl1dXV1dLFsyMixbMSxbMjgsWzE1LCJhRCJdXSxbMTcsWzE1LCJhIl0sImFjY2VwdEF1dG9tYXRpYyJdXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1kiXV1dXSxbMjIsWzE1LCJhSCJdLFs0NixbNTMsWzMsImFEIixbImFIIixbMTUsImFCIl1dXSxbMywiYUMiLFsxNSwibCJdXV1dXV1dXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbNTMsWzIsWzE1LCJhQiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDVyJdLFsxNSwiYUQiXV1dLFsyLFsxNSwiYUIiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKUCJdLFsxNSwiYUMiXV1dXV1dLFsyLFsxNSwiYUIiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ04iXSx0cnVlXV1dXSxbInQiLFsxNSwiciJdLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2NvbnZfbWFya2luZyIsWzQ2LCJhIl0sWzIyLFszMCxbMjgsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXV0sWzIwLFsxNyxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnByb2Nlc3NBc05ld0V2ZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImoiLCJjb252ZXJzaW9uIl0sWyJlIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJBUSJdXV0sWzE1LCJqIl1dLFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJDVCJdXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImwiLFs4LCJwcmVIaXQiLFsxNSwiayJdXV0sWzUyLCJtIixbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbMjIsWzIwLFsxNSwibSJdLFsxNyxbMTUsImciXSwiQUgiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0RXZlbnROYW1lIixbNyxbMTcsWzE1LCJnIl0sIkFLIl1dXV1dXSxbNjUsIm4iLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJuIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImwiXV0sWzQ2LFs1MyxbNTIsIm8iLFsiYiIsWzE1LCJrIl1dXSxbMixbMTUsIm8iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImYiXSwiQVIiXSxbMTUsImoiXV1dLFsyLFsxNSwibyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJnIl0sIktHIl0sWzE3LFsxNSwibiJdLCJjb252ZXJzaW9uTGFiZWwiXV1dLFsyMixbImgiLFsxNyxbMTUsImkiXSwiQUQiXV0sWzQ2LFs1MyxbMixbMTUsIm8iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImYiXSwiQ1EiXSxmYWxzZV1dXV1dLFsiZCIsWzE1LCJvIl1dXV1dXV1dLFsyMixbMjAsWzE1LCJtIl0sWzE3LFsxNSwiZyJdLCJBSCJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwibSJdXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2ZpcnN0IixbNDYsImEiXSxbNTAsImYiLFs0NiwiZyJdLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZCJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImciXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiZyJdLFsiZiIsWzE1LCJnIl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2Fkc19sYXN0IixbNDYsImEiXSxbNTAsImciLFs0NiwiaCJdLFsyLFsxNSwiZiJdLCJBIixbNyxbMTUsImgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfdGFza0VuYWJsZUVuY3J5cHRpb24iXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaCJdLFsiZyIsWzE1LCJoIl1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIkFRIl1dXV0sWzIyLFsyMSxbMTUsImkiXSxbMTcsWzE1LCJlIl0sIkQiXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJLSSJdLFs0NF1dXV1dXSxbMjIsWzEsWzIwLFsxNSwiaSJdLFsxNyxbMTUsImUiXSwiRCJdXSxbMjgsWzIsWzE1LCJoIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiS0ciXV1dXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwiYWJvcnQiLFs3XV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fZm9ybSIsWzQ2LCJhIl0sWzUwLCJ4IixbNDYsImFMIl0sWzUyLCJhTSIsWzMwLFsxNixbMTUsImFMIl0sWzE1LCJyIl1dLFs4XV1dLFs0MyxbMTUsImFNIl0sImV2ZW50X3VzYWdlIixbNyxbMTcsWzE1LCJnIl0sIkgiXV1dLFs0MyxbMTUsImFMIl0sWzE1LCJyIl0sWzE1LCJhTSJdXV0sWzUwLCJ5IixbNDYsImFMIiwiYU0iXSxbNTIsImFOIixbMzAsWzE2LFsxNSwiYUwiXSxbMTUsInIiXV0sWzhdXV0sWzIyLFsxNixbMTUsImFNIl0sImd0bS5mb3JtQ2FuY2VsZWQiXSxbNDYsWzUzLFs0MyxbMTUsImFOIl0sWzE3LFsxNSwiaSJdLCJBSiJdLHRydWVdXV1dLFsyLFsxNSwidSJdLCJCIixbNyxbMTUsImFMIl0sWzE1LCJhTiJdXV1dLFs1MCwieiIsWzQ2LCJhTCIsImFNIiwiYU4iXSxbNTIsImFPIixbMixbMTUsInciXSwiZmlsdGVyIixbNyxbNTEsIiIsWzcsImFRIl0sWzM2LFsyMCxbMixbMTUsImFRIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFPIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWyJ2IixbMTUsImFPIl0sWzE1LCJhTCJdLFsxNSwiYU0iXSxbMTUsImFOIl1dXV1dLFs1MiwiYVAiLFsyLFsxNSwidyJdLCJmaWx0ZXIiLFs3LFs1MSwiIixbNywiYVEiXSxbMzYsWzIxLFsyLFsxNSwiYVEiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJhTiJdLCJkZWZlcnJhYmxlIix0cnVlXSxbInYiLFsxNSwiYVAiXSxbMTUsImFMIl0sWzE1LCJhTSJdLFsxNSwiYU4iXV1dXV1dLFs1MCwiYUsiLFs0Nl0sWzUyLCJhTCIsWyJtIixbImwiLDAsMi4xNDc0ODM2NDdFOV1dXSxbNDEsImFNIl0sWzMsImFNIiwwXSxbMzYsWzUxLCIiLFs3LCJhTiJdLFsyMixbMjAsWzE1LCJhTiJdLFsxNSwicyJdXSxbNDYsWzUzLFszLCJhTSIsWyJrIl1dLFszNixbMCxbIm0iLFsxNSwiYU0iXV0sWzE1LCJhTCJdXV1dXSxbNDYsWzIyLFsyMCxbMTUsImFOIl0sWzE1LCJvIl1dLFs0NixbNTMsWzIyLFsyMCxbMTUsImFNIl0sMF0sWzQ2LFs1MyxbMzYsWzAsWyJtIixbImsiXV0sWzE1LCJhTCJdXV1dXV0sWzUyLCJhTyIsWyJrIl1dLFsyMixbMjMsWzM3LFsxNSwiYU8iXSxbMTUsImFNIl1dLDIwMF0sWzQ2LFs1MyxbNTIsImFQIixbMTUsImFNIl1dLFszLCJhTSIsMF0sWzM2LFswLFsibSIsWzE1LCJhUCJdXSxbMTUsImFMIl1dXV1dXSxbMywiYU0iLDBdLFszNixbMCxbIm0iLFsxNSwiYU8iXV0sWzE1LCJhTCJdXV1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2NjZEVtRm9ybUFjdGl2aXR5Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImwiLFsicmVxdWlyZSIsImdlbmVyYXRlUmFuZG9tIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm4iLFsxNyxbMTUsImgiXSwiQiJdXSxbNTIsIm8iLCJmb3JtX3N1Ym1pdCJdLFs1MiwicCIsImZvcm1fc3RhcnQiXSxbNTIsInEiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsInIiLCJldmVudE1ldGFkYXRhIl0sWzUyLCJzIiwiY2xpY2siXSxbNTIsInQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImQiLFsxNSwidCJdLFsxNSwibiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWzE1LCJhIl0sInNraXBWYWxpZGF0aW9uIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwicSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LFsxNSwicSJdLHRydWVdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsInYiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJ3IixbMixbMTUsInUiXSwiQSIsWzcsImZvcm0iXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzIyLFsxNSwiYU0iXSxbNDYsWyJhTSJdXV0sWzUyLCJhTiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRJZCJdXSxbMjIsWzE2LFsxNSwiYUEiXSxbMTUsImFOIl1dLFs0NixbMzZdXV0sWzQzLFsxNSwiYUEiXSxbMTUsImFOIl0sdHJ1ZV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNSwiYU4iXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZmlyc3RfZmllbGRfaWQiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkSWQiXSwiZmlyc3RfZmllbGRfbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl0sImZpcnN0X2ZpZWxkX3R5cGUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdLCJmaXJzdF9maWVsZF9wb3NpdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRQb3NpdGlvbiJdXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N0YXJ0Il0sWyJ6IixbMTUsInAiXSxbMTUsImFPIl0sWzE1LCJhUCJdXV1dLFs1MiwiYUMiLFsiYUsiXV0sWzUyLCJhRCIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzUyLCJhTiIsWyJhQyIsWzE1LCJvIl1dXSxbImFCIixbMTUsImFMIl0sWzQ0XV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50SWQiXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZm9ybV9zdWJtaXRfdGV4dCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmZvcm1TdWJtaXRFbGVtZW50VGV4dCJdXV0sWzQzLFsxNSwiYU8iXSwiZXZlbnRfY2FsbGJhY2siLFsxNSwiYU0iXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N1Ym1pdCJdLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIlMiXSxbMTUsImFOIl1dLFsieiIsWzE1LCJvIl0sWzE1LCJhTyJdLFsxNSwiYVAiXV1dXSxbNTIsImFFIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiYUYiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCJdXSxbNTIsImFHIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiJdXSxbNTIsImFIIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIl1dLFs1MiwiYUkiLFsiYUciXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsiYUUiLCJndG0uZm9ybUludGVyYWN0IixbMTUsImFCIl0sWzE1LCJhSSJdXSxbNTIsImFKIixbImFGIixbOCwiY2hlY2tWYWxpZGF0aW9uIixmYWxzZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJhSiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbImFFIiwiZ3RtLmZvcm1TdWJtaXQiLFsxNSwiYUQiXSxbMTUsImFKIl1dLFsyMixbImUiLFsxNyxbMTUsImIiXSwiQ1AiXV0sWzQ2LFs1MyxbNTIsImFMIixbImFIIixbOCwidXNlVjJFdmVudE5hbWUiLHRydWUsImNzc1NlbGVjdG9yIixbMCxbMCxbMCxbMCxbMCxbMCxbMCwiZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSwgIiwiZm9ybSBidXR0b246bm90KFt0eXBlXSksIl0sImZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgIl0sImZvcm0gaW5wdXRbdHlwZT1cImltYWdlXCJdLCAiXSwiYnV0dG9uW2Zvcm1dW3R5cGU9XCJzdWJtaXRcIl0sICJdLCJidXR0b25bZm9ybV06bm90KFt0eXBlXSksICJdLCJpbnB1dFt0eXBlPVwic3VibWl0XCJdW2Zvcm1dLCAiXSwiaW5wdXRbdHlwZT1cImltYWdlXCJdW2Zvcm1dIl1dXV0sWzUwLCJhTSIsWzQ2LCJhTiIsImFPIl0sWzUyLCJhUCIsWzgsImV2ZW50X2NhbGxiYWNrIixbMTUsImFPIl1dXSxbNTIsImFRIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYU4iXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUSJdXSxbInkiLFsxNSwiYVEiXSxbMTUsImFOIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFSIl0sWzE3LFsxNSwiaiJdLCJLIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImNsaWNrIl0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiUyJdLFsiYUMiLFsxNSwicyJdXV0sWyJ6IixbMTUsIm8iXSxbMTUsImFQIl0sWzE1LCJhUSJdXV0sWyJhRSIsImd0bS5jbGljay12MiIsWzE1LCJhTSJdLFsxNSwiYUwiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3BhZ2VfdmlldyIsWzQ2LCJhIl0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImhpc3RvcnlFdmVudHMiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJnIixbMTcsWzE1LCJmIl0sIkMiXV0sWzUyLCJoIiwicGFnZV92aWV3Il0sWzUyLCJpIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImoiXSxbMTUsImciXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaiJdXV0sWzIyLFsyLFsxNSwiZCJdLCJnZXRJdGVtIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsIm0iXSwiQSIsWzcsInBhZ2VfdmlldyJdXV0sWzUyLCJwIixbOCwiaW50ZXJ2YWwiLDEwMDAsInVzZVYyRXZlbnROYW1lIix0cnVlXV0sWzUyLCJxIixbImwiLFsxNSwicCJdXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJkIl0sInNldEl0ZW0iLFs3LFsxNSwiaSJdLHRydWVdXSxbImsiLCJndG0uaGlzdG9yeUNoYW5nZS12MiIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0ub2xkVXJsIl1dLFsyMixbMjAsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl0sWzE1LCJ0Il1dLFs0NixbMzZdXV0sWzUyLCJ1IixbMTYsWzE1LCJyIl0sImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIl1dLFsyMixbMSxbMSxbMjEsWzE1LCJ1Il0sInB1c2hTdGF0ZSJdLFsyMSxbMTUsInUiXSwicG9wc3RhdGUiXV0sWzIxLFsxNSwidSJdLCJyZXBsYWNlU3RhdGUiXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInBhZ2VfbG9jYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdXSxbNDMsWzE1LCJ2Il0sInBhZ2VfcmVmZXJyZXIiLFsxNSwidCJdXV1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbMjIsWzIxLFsxNyxbMTUsImEiXSwiZGVmZXJQYWdlVmlldyJdLGZhbHNlXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dXV0sWzIsWzE1LCJtIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImgiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW5hYmxlX2NtIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsiYiIsWzE1LCJjIl0sImNjZF9lbmFibGVfY20iLHRydWVdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9wcmVfYXV0b19waWkiLFs0NiwiYSJdLFs1MCwibCIsWzQ2LCJuIl0sWzUyLCJvIixbMTYsWzE1LCJuIl0sInVzZXJEYXRhIl1dLFs1MiwicCIsWzMwLFsxOCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkBnbWFpbC4iXV0sWzI3LDFdXSxbMTgsWzIsWzE1LCJvIl0sImluZGV4T2YiLFs3LCJAZ29vZ2xlbWFpbC4iXV0sWzI3LDFdXV1dLFszNixbMCxbMCxbMCxbMCxbMCxbMCxbMTYsWzE1LCJuIl0sInRhZ05hbWUiXSwiOiJdLFsxNixbMTUsIm4iXSwiaXNWaXNpYmxlIl1dLCI6Il0sWzE3LFsxNSwibyJdLCJsZW5ndGgiXV0sIjoiXSxbMTUsInAiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWyJjIixbMTUsImQiXSwiaGFzUHJlQXV0b1BpaUNjZFJ1bGUiLHRydWVdLFsyMixbMjgsWyJiIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImciLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbOCwiZW1haWwiLCIxIiwicGhvbmVfbnVtYmVyIiwiMiIsImZpcnN0X25hbWUiLCIzIiwibGFzdF9uYW1lIiwiNCIsImNvdW50cnkiLCI1IiwicG9zdGFsX2NvZGUiLCI2Iiwic3RyZWV0IiwiNyIsImNpdHkiLCI4IiwicmVnaW9uIiwiOSJdXSxbImUiLFsxNSwiZCJdLFs1MSwiIixbNywibiJdLFsyMixbMjEsWzIsWzE1LCJuIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFRIl1dXSxbMTcsWzE1LCJpIl0sIkQiXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbMjgsWyJnIixbMTcsWzE1LCJrIl0sIkIiXV1dLFs0NixbMzZdXV0sWzUyLCJvIixbImYiXV0sWzUyLCJwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIl1dLFs0MSwicSJdLFs2OCwiIixbNTMsWzMsInEiLFsicCIsWzgsImluY2x1ZGVTZWxlY3RvciIsdHJ1ZSwiaW5jbHVkZVZpc2liaWxpdHkiLHRydWUsInNlbGVjdE11bHRpcGxlRWxlbWVudHMiLHRydWUsInJlYWRGcm9tRGF0YUxheWVyIixmYWxzZV1dXV0sWzQ2XV0sWzIyLFszMCxbMzAsWzI4LFsxNSwicSJdXSxbMjgsWzE2LFsxNSwicSJdLCJlbGVtZW50cyJdXV0sWzIwLFsxNyxbMTYsWzE1LCJxIl0sImVsZW1lbnRzIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJyIixbMTYsWzE1LCJxIl0sImVsZW1lbnRzIl1dLFs1MiwicyIsWzddXSxbNjUsInYiLFsxNSwiciJdLFs0NixbNTMsWzUyLCJ3IixbImwiLFsxNSwidiJdXV0sWzUyLCJ4IixbMzAsWzE2LFsxNSwibSJdLFsxNixbMTUsInYiXSwidHlwZSJdXSwiIl1dLFsyLFsxNSwicyJdLCJwdXNoIixbNyxbMCxbMCxbMCxbMCxbMTYsWzE1LCJ2Il0sInF1ZXJ5U2VsZWN0b3IiXSwiKiJdLFsxNSwidyJdXSwiKiJdLFsxNSwieCJdXV1dXV1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpNIl0sWzIsWzE1LCJzIl0sImpvaW4iLFs3LCJ+Il1dXV0sWzUyLCJ0IixbMTYsWzE1LCJxIl0sInByZWZlcnJlZEVtYWlsRWxlbWVudCJdXSxbMjIsWzE1LCJ0Il0sWzQ2LFs1MyxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKTiJdLFsxNixbMTUsInQiXSwicXVlcnlTZWxlY3RvciJdXV0sWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSkwiXSxbImwiLFsxNSwidCJdXV1dXV1dLFs1MiwidSIsWyJmIl1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpLIl0sWyJoIixbMzcsWzE1LCJ1Il0sWzE1LCJvIl1dXV1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpPIl0sWzE2LFsxNSwicSJdLCJzdGF0dXMiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fZSIsWzQ2LCJhIl0sWzM2LFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFdmVudERhdGEiXV0sWyIkMCIsImV2ZW50Il1dXV0KICxbNTAsIl9fb2d0XzFwX2RhdGFfdjIiLFs0NiwiYSJdLFs1MCwicCIsWzQ2LCJyIiwicyIsInQiLCJ1Il0sWzIyLFsyMCxbMTYsWzE1LCJzIl0sInR5cGUiXSxbMTUsInQiXV0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiciJdXSxbNDYsWzUzLFszLCJyIixbOF1dXV1dLFsyMixbMjgsWzE2LFsxNSwiciJdLFsxNSwidCJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sWzE1LCJ0Il0sWzE2LFsxNSwicyJdLCJ1c2VyRGF0YSJdXSxbNTIsInYiLFs4LCJtb2RlIiwiYSJdXSxbMjIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sImxvY2F0aW9uIixbMTYsWzE1LCJzIl0sInRhZ05hbWUiXV1dXV0sWzIyLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJzZWxlY3RvciIsWzE2LFsxNSwicyJdLCJxdWVyeVNlbGVjdG9yIl1dXV1dLFs0MyxbMTUsInUiXSxbMTUsInQiXSxbMTUsInYiXV1dXV1dXV0sWzM2LFsxNSwiciJdXV0sWzUwLCJxIixbNDYsInIiLCJzIiwidCJdLFsyMixbMjgsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV0sWzQ2LFszNl1dXSxbNDMsWzE1LCJyIl0sWzE1LCJzIl0sWzgsInZhbHVlIixbMTYsWzE1LCJhIl0sWzE1LCJ0Il1dXV1dLFsyMixbMjgsWzE3LFsxNSwiYSJdLCJpc0VuYWJsZWQiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbImMiLFsxNyxbMTUsImUiXSwiQVQiXV1dLFs1MiwibiIsWzMwLFsiZiJdLFs3XV1dLFs1MiwibyIsWzgsImVuYWJsZV9jb2RlIix0cnVlXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNBdXRvRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJyIixbN11dLFsyMixbMSxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFs0NixbNTMsWzUzLFs0MSwidSJdLFszLCJ1IiwwXSxbNjMsWzcsInUiXSxbMjMsWzE1LCJ1Il0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFszMyxbMTUsInUiXSxbMywidSIsWzAsWzE1LCJ1Il0sMV1dXSxbNDYsWzUzLFs1MiwidiIsWzE3LFsxNixbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE1LCJ1Il1dLCJleGNsdXNpb25TZWxlY3RvciJdXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMixbMTUsInIiXSwicHVzaCIsWzcsWzE1LCJ2Il1dXV1dXV1dXV1dXV0sWzUyLCJzIixbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdXSxbNTIsInQiLFszOSxbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdLFsxNyxbMTUsImEiXSwiYXV0b0VtYWlsRW5hYmxlZCJdLHRydWVdXSxbNDMsWzE1LCJvIl0sImF1dG9fZGV0ZWN0IixbOCwiZW1haWwiLFsxNSwidCJdLCJwaG9uZSIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvUGhvbmVFbmFibGVkIl1dLCJhZGRyZXNzIixbMSxbMTUsInMiXSxbMTcsWzE1LCJhIl0sImF1dG9BZGRyZXNzRW5hYmxlZCJdXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyIsWzE1LCJyIl1dXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJpc01hbnVhbEVuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxFbWFpbEVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sImVtYWlsIiwiZW1haWxWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbFBob25lRW5hYmxlZCJdLFs0NixbNTMsWyJxIixbMTUsInIiXSwicGhvbmUiLCJwaG9uZVZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsQWRkcmVzc0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwicyIsWzhdXSxbInEiLFsxNSwicyJdLCJmaXJzdF9uYW1lIiwiZmlyc3ROYW1lVmFsdWUiXSxbInEiLFsxNSwicyJdLCJsYXN0X25hbWUiLCJsYXN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwic3RyZWV0Iiwic3RyZWV0VmFsdWUiXSxbInEiLFsxNSwicyJdLCJjaXR5IiwiY2l0eVZhbHVlIl0sWyJxIixbMTUsInMiXSwicmVnaW9uIiwicmVnaW9uVmFsdWUiXSxbInEiLFsxNSwicyJdLCJjb3VudHJ5IiwiY291bnRyeVZhbHVlIl0sWyJxIixbMTUsInMiXSwicG9zdGFsX2NvZGUiLCJwb3N0YWxDb2RlVmFsdWUiXSxbNDMsWzE1LCJyIl0sIm5hbWVfYW5kX2FkZHJlc3MiLFs3LFsxNSwicyJdXV1dXV0sWzQzLFsxNSwibyJdLCJzZWxlY3RvcnMiLFsxNSwiciJdXV1dXSxbNjUsInIiLFsxNSwibiJdLFs0NixbNTMsWyJpIixbMTUsInIiXSwidXNlcl9kYXRhX3NldHRpbmdzIixbMTUsIm8iXV0sWzUyLCJzIixbMTYsWzE1LCJvIl0sImF1dG9fZGV0ZWN0Il1dLFsyMixbMjgsWzE1LCJzIl1dLFs0NixbNTMsWzZdXV1dLFs1MiwidCIsWzUxLCIiLFs3LCJ1Il0sWzUyLCJ2IixbMixbMTUsInUiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXV1dXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMzYsWzE1LCJ2Il1dXV1dLFs1MiwidyIsWyJjIixbMTcsWzE1LCJlIl0sIkJWIl1dXSxbNTIsIngiLFsiYyIsWzE3LFsxNSwiZSJdLCJDSSJdXV0sWzQxLCJ5Il0sWzIyLFsiaCIsImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiLCJhdXRvIl0sWzQ2LFs1MyxbMywieSIsWyJnIixbOCwiZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMiLFsxNixbMTUsInMiXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyJdLCJmaWVsZEZpbHRlcnMiLFs4LCJlbWFpbCIsWzE2LFsxNSwicyJdLCJlbWFpbCJdLCJwaG9uZSIsWzE2LFsxNSwicyJdLCJwaG9uZSJdLCJhZGRyZXNzIixbMTYsWzE1LCJzIl0sImFkZHJlc3MiXV0sImluY2x1ZGVTZWxlY3RvciIsWzE1LCJ3Il0sInJlYWRGcm9tRGF0YUxheWVyIixbMTUsIngiXV1dXV1dXSxbNTIsInoiLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwiZWxlbWVudHMiXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzhdXSxbMjIsWzEsWzE1LCJ6Il0sWzE4LFsxNyxbMTUsInoiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzQxLCJhQyJdLFs0MSwiYUQiXSxbMywiYUQiLFs4XV0sWzUzLFs0MSwiYUUiXSxbMywiYUUiLDBdLFs2MyxbNywiYUUiXSxbMjMsWzE1LCJhRSJdLFsxNyxbMTUsInoiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFFIl0sWzMsImFFIixbMCxbMTUsImFFIl0sMV1dXSxbNDYsWzUzLFs1MiwiYUYiLFsxNixbMTUsInoiXSxbMTUsImFFIl1dXSxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sImVtYWlsIixbMTUsImFCIl1dLFsyMixbImMiLFsxNyxbMTUsImUiXSwiQk8iXV0sWzQ2LFs1MyxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sInBob25lX251bWJlciIsWzE1LCJhQiJdXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwiZmlyc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImxhc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImNvdW50cnkiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJwb3N0YWxfY29kZSIsWzE1LCJhRCJdXV1dXV1dXV1dLFsyMixbMSxbMTUsImFDIl0sWzI4LFsxNixbMTUsImFBIl0sImFkZHJlc3MiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiYWRkcmVzcyIsWzE1LCJhQyJdXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbNDMsWzE2LFsxNSwiYUEiXSwiYWRkcmVzcyJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFEIl1dXV1dXV1dXV1dLFsyMixbMSxbMTUsInkiXSxbMTUsIngiXV0sWzQ2LFs1MyxbNTIsImFDIixbMTYsWzE1LCJ5Il0sImRhdGFMYXllclNlYXJjaFRpbWUiXV0sWzUyLCJhRCIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hDb3VudCJdXSxbMixbMTUsInUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJsIl0sIkZUIl0sWzgsImRsc3QiLFsxNSwiYUMiXSwiZGxzYyIsWzE1LCJhRCJdXV1dXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyMixbMzAsWzE2LFsxNSwiYUEiXSwiZW1haWwiXSxbMTYsWzE1LCJhQSJdLCJwaG9uZV9udW1iZXIiXV0sWzQ2LFs1MyxbNDMsWzE1LCJhQSJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFCIl1dXV1dXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWCJdLFsxNSwiYUEiXV1dLFszNixbMTUsImFBIl1dXV0sWyJqIixbMTUsInIiXSxbNTEsIiIsWzcsInUiXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1kiXSxbMTUsInQiXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fb2d0X2Fkc19kYXRhdG9zIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsiYiIsWzE1LCJjIl0sImFkc19jdXN0b21lcl9kYXRhX3Rlcm1zIix0cnVlXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19yZXAiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiJdXSxbMjIsWzI4LFsiYiIsWzE3LFsxNSwiYSJdLCJjb250YWluZXJJZCJdLFsxNyxbMTUsImEiXSwicmVtb3RlQ29uZmlnIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb252ZXJzaW9uIl0sWzUyLCJjIiwiZmxvb2RsaWdodCJdLFs1MiwiZCIsImdhX2NvbnZlcnNpb24iXSxbNTIsImUiLCJwYWdlX3ZpZXciXSxbNTIsImYiLCJyZW1hcmtldGluZyJdLFs1MiwiZyIsInVzZXJfZGF0YV9sZWFkIl0sWzUyLCJoIiwidXNlcl9kYXRhX3dlYiJdLFszNixbOCwiRCIsWzE1LCJiIl0sIkUiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiSCIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJjIiwiYWRfc3RvcmFnZSJdLFs1MiwiZCIsImFkX3VzZXJfZGF0YSJdLFs1MiwiZSIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZiIsImFwcF9yZW1vdmUiXSxbNTIsImciLCJhcHBfc3RvcmVfcmVmdW5kIl0sWzUyLCJoIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiXSxbNTIsImkiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiXSxbNTIsImoiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Il0sWzUyLCJrIiwiY29udmVyc2lvbiJdLFs1MiwibCIsInB1cmNoYXNlIl0sWzUyLCJtIiwiZmlyc3Rfb3BlbiJdLFs1MiwibiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJvIiwiZ3RhZy5jb25maWciXSxbNTIsInAiLCJpbl9hcHBfcHVyY2hhc2UiXSxbNTIsInEiLCJwYWdlX3ZpZXciXSxbNTIsInIiLCJzZXNzaW9uX3N0YXJ0Il0sWzUyLCJzIiwidXNlcl9lbmdhZ2VtZW50Il0sWzUyLCJ0IiwiYWRzX2RhdGFfcmVkYWN0aW9uIl0sWzUyLCJ1IiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiXSxbNTIsInYiLCJhbGxvd19jdXN0b21fc2NyaXB0cyJdLFs1MiwidyIsImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIl0sWzUyLCJ4IiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiXSxbNTIsInkiLCJhdWlkIl0sWzUyLCJ6IiwiYXdfcmVtYXJrZXRpbmdfb25seSJdLFs1MiwiYUEiLCJkaXNjb3VudCJdLFs1MiwiYUIiLCJhd19mZWVkX2NvdW50cnkiXSxbNTIsImFDIiwiYXdfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYUQiLCJpdGVtcyJdLFs1MiwiYUUiLCJhd19tZXJjaGFudF9pZCJdLFs1MiwiYUYiLCJhd19iYXNrZXRfdHlwZSJdLFs1MiwiYUciLCJjbGllbnRfaWQiXSxbNTIsImFIIiwiY29udmVyc2lvbl9jb29raWVfcHJlZml4Il0sWzUyLCJhSSIsImNvbnZlcnNpb25faWQiXSxbNTIsImFKIiwiY29udmVyc2lvbl9saW5rZXIiXSxbNTIsImFLIiwiY29udmVyc2lvbl9hcGkiXSxbNTIsImFMIiwiY29va2llX2RlcHJlY2F0aW9uIl0sWzUyLCJhTSIsImNvb2tpZV9leHBpcmVzIl0sWzUyLCJhTiIsImNvb2tpZV9wcmVmaXgiXSxbNTIsImFPIiwiY29va2llX3VwZGF0ZSJdLFs1MiwiYVAiLCJjb3VudHJ5Il0sWzUyLCJhUSIsImN1cnJlbmN5Il0sWzUyLCJhUiIsImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIl0sWzUyLCJhUyIsImN1c3RvbWVyX3R5cGUiXSxbNTIsImFUIiwiZGVidWdfbW9kZSJdLFs1MiwiYVUiLCJzaGlwcGluZyJdLFs1MiwiYVYiLCJlbmdhZ2VtZW50X3RpbWVfbXNlYyJdLFs1MiwiYVciLCJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSJdLFs1MiwiYVgiLCJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJhWSIsImV2ZW50X2lkIl0sWzUyLCJhWiIsImV2ZW50Il0sWzUyLCJiQSIsIl8mYWUiXSxbNTIsImJCIiwiZXZlbnRfdGltZW91dCJdLFs1MiwiYkMiLCJleHRfY2xpZW50X2lkIl0sWzUyLCJiRCIsImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iXSxbNTIsImJFIiwibWF0Y2hfaWQiXSxbNTIsImJGIiwiZ2Rwcl9hcHBsaWVzIl0sWzUyLCJiRyIsIl9ndF9tZXRhZGF0YSJdLFs1MiwiYkgiLCJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIl0sWzUyLCJiSSIsIl9nb29nbGVfbmciXSxbNTIsImJKIiwiX29ubyJdLFs1MiwiYksiLCJncHBfc2lkIl0sWzUyLCJiTCIsImdwcF9zdHJpbmciXSxbNTIsImJNIiwiZ3NhX2V4cGVyaW1lbnRfaWQiXSxbNTIsImJOIiwiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIl0sWzUyLCJiTyIsImlmcmFtZV9zdGF0ZSJdLFs1MiwiYlAiLCJpZ25vcmVfcmVmZXJyZXIiXSxbNTIsImJRIiwiaXNfcGFzc3Rocm91Z2giXSxbNTIsImJSIiwibGFuZ3VhZ2UiXSxbNTIsImJTIiwibWVyY2hhbnRfZmVlZF9sYWJlbCJdLFs1MiwiYlQiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIl0sWzUyLCJiVSIsIm1lcmNoYW50X2lkIl0sWzUyLCJiViIsIm5ld19jdXN0b21lciJdLFs1MiwiYlciLCJwYWdlX2hvc3RuYW1lIl0sWzUyLCJiWCIsInBhZ2VfcGF0aCJdLFs1MiwiYlkiLCJwYWdlX3JlZmVycmVyIl0sWzUyLCJiWiIsInBhZ2VfdGl0bGUiXSxbNTIsImNBIiwiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIl0sWzUyLCJjQiIsInF1YW50aXR5Il0sWzUyLCJjQyIsInJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIl0sWzUyLCJjRCIsInNjcmVlbl9yZXNvbHV0aW9uIl0sWzUyLCJjRSIsInNlbmRfcGFnZV92aWV3Il0sWzUyLCJjRiIsInNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCJdLFs1MiwiY0ciLCJzZXJ2ZXJfY29udGFpbmVyX3VybCJdLFs1MiwiY0giLCJzZXNzaW9uX2R1cmF0aW9uIl0sWzUyLCJjSSIsInNlc3Npb25fZW5nYWdlZF90aW1lIl0sWzUyLCJjSiIsInNlc3Npb25faWQiXSxbNTIsImNLIiwiX3NoYXJlZF91c2VyX2lkIl0sWzUyLCJjTCIsImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIl0sWzUyLCJjTSIsInRlc3Rvbmx5Il0sWzUyLCJjTiIsInRvcG1vc3RfdXJsIl0sWzUyLCJjTyIsInRyYW5zYWN0aW9uX2lkIl0sWzUyLCJjUCIsInRyYW5zYWN0aW9uX2lkX3NvdXJjZSJdLFs1MiwiY1EiLCJ0cmFuc3BvcnRfdXJsIl0sWzUyLCJjUiIsInVwZGF0ZSJdLFs1MiwiY1MiLCJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiXSxbNTIsImNUIiwiX3VzZXJfYWdlbnRfYml0bmVzcyJdLFs1MiwiY1UiLCJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCJdLFs1MiwiY1YiLCJfdXNlcl9hZ2VudF9tb2JpbGUiXSxbNTIsImNXIiwiX3VzZXJfYWdlbnRfbW9kZWwiXSxbNTIsImNYIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm0iXSxbNTIsImNZIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiJdLFs1MiwiY1oiLCJfdXNlcl9hZ2VudF93b3c2NCJdLFs1MiwiZEEiLCJ1c2VyX2RhdGEiXSxbNTIsImRCIiwidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSJdLFs1MiwiZEMiLCJ1c2VyX2RhdGFfYXV0b19tZXRhIl0sWzUyLCJkRCIsInVzZXJfZGF0YV9hdXRvX211bHRpIl0sWzUyLCJkRSIsInVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyJdLFs1MiwiZEYiLCJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiXSxbNTIsImRHIiwidXNlcl9kYXRhX21vZGUiXSxbNTIsImRIIiwidXNlcl9pZCJdLFs1MiwiZEkiLCJ1c2VyX3Byb3BlcnRpZXMiXSxbNTIsImRKIiwidXNfcHJpdmFjeV9zdHJpbmciXSxbNTIsImRLIiwidmFsdWUiXSxbNTIsImRMIiwiX2ZwbV9wYXJhbWV0ZXJzIl0sWzUyLCJkTSIsIl9ob3N0X25hbWUiXSxbNTIsImROIiwiX2luX3BhZ2VfY29tbWFuZCJdLFs1MiwiZE8iLCJfbWVhc3VyZW1lbnRfdHlwZSJdLFs1MiwiZFAiLCJub25fcGVyc29uYWxpemVkX2FkcyJdLFs1MiwiZFEiLCJjb252ZXJzaW9uX2xhYmVsIl0sWzUyLCJkUiIsInBhZ2VfbG9jYXRpb24iXSxbNTIsImRTIiwiX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJkVCIsImdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJkVSIsInRjX3ByaXZhY3lfc3RyaW5nIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXSwiTCIsWzE1LCJpIl0sIk0iLFsxNSwiaiJdLCJPIixbMTUsImsiXSwiQUEiLFsxNSwibCJdLCJBRiIsWzE1LCJtIl0sIkFHIixbMTUsIm4iXSwiQUgiLFsxNSwibyJdLCJBSiIsWzE1LCJwIl0sIkFLIixbMTUsInEiXSwiQU0iLFsxNSwiciJdLCJBUSIsWzE1LCJzIl0sIkJDIixbMTUsInQiXSwiQkoiLFsxNSwidSJdLCJCSyIsWzE1LCJ2Il0sIkJNIixbMTUsInciXSwiQk4iLFsxNSwieCJdLCJCVCIsWzE1LCJ5Il0sIkJYIixbMTUsInoiXSwiQlkiLFsxNSwiYUEiXSwiQloiLFsxNSwiYUIiXSwiQ0EiLFsxNSwiYUMiXSwiQ0IiLFsxNSwiYUQiXSwiQ0MiLFsxNSwiYUUiXSwiQ0QiLFsxNSwiYUYiXSwiQ0wiLFsxNSwiYUciXSwiQ1EiLFsxNSwiYUgiXSwiQ1IiLFsxNSwiYUkiXSwiS0ciLFsxNSwiZFEiXSwiQ1MiLFsxNSwiYUoiXSwiQ1UiLFsxNSwiYUsiXSwiQ1ciLFsxNSwiYUwiXSwiQ1kiLFsxNSwiYU0iXSwiREMiLFsxNSwiYU4iXSwiREQiLFsxNSwiYU8iXSwiREUiLFsxNSwiYVAiXSwiREYiLFsxNSwiYVEiXSwiREciLFsxNSwiYVIiXSwiREgiLFsxNSwiYVMiXSwiRE4iLFsxNSwiYVQiXSwiRUEiLFsxNSwiYVUiXSwiRUMiLFsxNSwiYVYiXSwiRUciLFsxNSwiYVciXSwiRUoiLFsxNSwiYVgiXSwiRUsiLFsxNSwiYVkiXSwiRU4iLFsxNSwiYVoiXSwiRU8iLFsxNSwiYkEiXSwiRVEiLFsxNSwiYkIiXSwiS0kiLFsxNSwiZFMiXSwiRVUiLFsxNSwiYkMiXSwiRVciLFsxNSwiYkQiXSwiRkUiLFsxNSwiYkUiXSwiRk8iLFsxNSwiYkYiXSwiRlAiLFsxNSwiYkciXSwiS0oiLFsxNSwiZFQiXSwiRlQiLFsxNSwiYkgiXSwiRlUiLFsxNSwiYkkiXSwiRlYiLFsxNSwiYkoiXSwiRlkiLFsxNSwiYksiXSwiRloiLFsxNSwiYkwiXSwiR0IiLFsxNSwiYk0iXSwiR0MiLFsxNSwiYk4iXSwiR0UiLFsxNSwiYk8iXSwiR0YiLFsxNSwiYlAiXSwiR0siLFsxNSwiYlEiXSwiR00iLFsxNSwiYlIiXSwiR1QiLFsxNSwiYlMiXSwiR1UiLFsxNSwiYlQiXSwiR1YiLFsxNSwiYlUiXSwiR1oiLFsxNSwiYlYiXSwiSEMiLFsxNSwiYlciXSwiS0giLFsxNSwiZFIiXSwiSEQiLFsxNSwiYlgiXSwiSEUiLFsxNSwiYlkiXSwiSEYiLFsxNSwiYloiXSwiSE4iLFsxNSwiY0EiXSwiSFAiLFsxNSwiY0IiXSwiSFQiLFsxNSwiY0MiXSwiSFgiLFsxNSwiY0QiXSwiSUEiLFsxNSwiY0UiXSwiSUMiLFsxNSwiY0YiXSwiSUQiLFsxNSwiY0ciXSwiSUYiLFsxNSwiY0giXSwiSUgiLFsxNSwiY0kiXSwiSUkiLFsxNSwiY0oiXSwiSUsiLFsxNSwiY0siXSwiSUwiLFsxNSwiY0wiXSwiS0siLFsxNSwiZFUiXSwiSVAiLFsxNSwiY00iXSwiSVIiLFsxNSwiY04iXSwiSVUiLFsxNSwiY08iXSwiSVYiLFsxNSwiY1AiXSwiSVciLFsxNSwiY1EiXSwiSVkiLFsxNSwiY1IiXSwiSkIiLFsxNSwiY1MiXSwiSkMiLFsxNSwiY1QiXSwiSkQiLFsxNSwiY1UiXSwiSkUiLFsxNSwiY1YiXSwiSkYiLFsxNSwiY1ciXSwiSkciLFsxNSwiY1giXSwiSkgiLFsxNSwiY1kiXSwiSkkiLFsxNSwiY1oiXSwiSkoiLFsxNSwiZEEiXSwiSksiLFsxNSwiZEIiXSwiSkwiLFsxNSwiZEMiXSwiSk0iLFsxNSwiZEQiXSwiSk4iLFsxNSwiZEUiXSwiSk8iLFsxNSwiZEYiXSwiSlAiLFsxNSwiZEciXSwiSlIiLFsxNSwiZEgiXSwiSlMiLFsxNSwiZEkiXSwiSlUiLFsxNSwiZEoiXSwiSlYiLFsxNSwiZEsiXSwiSlgiLFsxNSwiZEwiXSwiSlkiLFsxNSwiZE0iXSwiSloiLFsxNSwiZE4iXSwiS0MiLFsxNSwiZE8iXSwiS0QiLFsxNSwiZFAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWJvcnRfd2l0aG91dF9mYWlsIl0sWzUyLCJjIiwiYWNjZXB0X2J5X2RlZmF1bHQiXSxbNTIsImQiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImUiLCJjb25zZW50X3N0YXRlIl0sWzUyLCJmIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJnIiwiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCJdLFs1MiwiaCIsImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiXSxbNTIsImkiLCJjb29raWVfb3B0aW9ucyJdLFs1MiwiaiIsImRlZHVwZV9pZCJdLFs1MiwiayIsImVtX2V2ZW50Il0sWzUyLCJsIiwiZXZlbnRfcHJvdmVuYW5jZSJdLFs1MiwibSIsImV2ZW50X3NvdXJjZSJdLFs1MiwibiIsImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyJdLFs1MiwibyIsImV2ZW50X3VzYWdlIl0sWzUyLCJwIiwiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIl0sWzUyLCJxIiwiZm9ybV9ldmVudF9jYW5jZWxlZCJdLFs1MiwiciIsImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiJdLFs1MiwicyIsImd0bV9leHRyYWN0ZWRfZGF0YSJdLFs1MiwidCIsImhhbmRsZV9pbnRlcm5hbGx5Il0sWzUyLCJ1IiwiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiXSxbNTIsInYiLCJoaXRfdHlwZSJdLFs1MiwidyIsImhpdF90eXBlX292ZXJyaWRlIl0sWzUyLCJ4IiwiaWdub3JlX2R1cGVfY29uZmlnIl0sWzUyLCJ5IiwiaXNfY29udmVyc2lvbiJdLFs1MiwieiIsImlzX2V4dGVybmFsX2V2ZW50Il0sWzUyLCJhQSIsImlzX2ZpcnN0X3Zpc2l0Il0sWzUyLCJhQiIsImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iXSxbNTIsImFDIiwiaXNfZnBtX2VuY3J5cHRpb24iXSxbNTIsImFEIiwiaXNfZnBtX3NwbGl0Il0sWzUyLCJhRSIsImlzX2djcF9icm93c2VyIl0sWzUyLCJhRiIsImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIl0sWzUyLCJhRyIsImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIl0sWzUyLCJhSCIsImlzX3Nlc3Npb25fc3RhcnQiXSxbNTIsImFJIiwiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIl0sWzUyLCJhSiIsImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCJdLFs1MiwiYUsiLCJpc19zZ3RtX3ByZWhpdCJdLFs1MiwiYUwiLCJpc19zcGxpdF9jb252ZXJzaW9uIl0sWzUyLCJhTSIsImlzX3N5biJdLFs1MiwiYU4iLCJpc190ZXN0X2V2ZW50Il0sWzUyLCJhTyIsInByZWhpdF9mb3JfcmV0cnkiXSxbNTIsImFQIiwicmVkYWN0X2Fkc19kYXRhIl0sWzUyLCJhUSIsInJlZGFjdF9jbGlja19pZHMiXSxbNTIsImFSIiwic2VuZF9jY21fcGFyYWxsZWxfcGluZyJdLFs1MiwiYVMiLCJzZW5kX3VzZXJfZGF0YV9oaXQiXSxbNTIsImFUIiwic3BlY3VsYXRpdmUiXSxbNTIsImFVIiwic3luX29yX21vZCJdLFs1MiwiYVYiLCJ0cmFuc2llbnRfZWNzaWQiXSxbNTIsImFXIiwidXNlcl9kYXRhIl0sWzUyLCJhWCIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyJdLFs1MiwiYVkiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIl0sWzUyLCJhWiIsInVzZXJfZGF0YV9mcm9tX2NvZGUiXSxbNTIsImJBIiwidXNlcl9kYXRhX2Zyb21fbWFudWFsIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJNIixbMTUsImUiXSwiTiIsWzE1LCJmIl0sIk8iLFsxNSwiZyJdLCJQIixbMTUsImgiXSwiUSIsWzE1LCJpIl0sIlMiLFsxNSwiaiJdLCJUIixbMTUsImsiXSwiWiIsWzE1LCJsIl0sIkFBIixbMTUsIm0iXSwiQUIiLFsxNSwibiJdLCJBQyIsWzE1LCJvIl0sIkFEIixbMTUsInAiXSwiQUoiLFsxNSwicSJdLCJBSyIsWzE1LCJyIl0sIkFOIixbMTUsInMiXSwiQU8iLFsxNSwidCJdLCJBUCIsWzE1LCJ1Il0sIkFRIixbMTUsInYiXSwiQVIiLFsxNSwidyJdLCJBUyIsWzE1LCJ4Il0sIkFWIixbMTUsInkiXSwiQVkiLFsxNSwieiJdLCJBWiIsWzE1LCJhQSJdLCJCQSIsWzE1LCJhQiJdLCJCQyIsWzE1LCJhQyJdLCJCRCIsWzE1LCJhRCJdLCJCRSIsWzE1LCJhRSJdLCJCRiIsWzE1LCJhRiJdLCJCSyIsWzE1LCJhRyJdLCJCTCIsWzE1LCJhSCJdLCJCTSIsWzE1LCJhSSJdLCJCTiIsWzE1LCJhSiJdLCJCTyIsWzE1LCJhSyJdLCJCUSIsWzE1LCJhTCJdLCJCUiIsWzE1LCJhTSJdLCJCUyIsWzE1LCJhTiJdLCJCWSIsWzE1LCJhTyJdLCJDQiIsWzE1LCJhUCJdLCJDQyIsWzE1LCJhUSJdLCJDRSIsWzE1LCJhUiJdLCJDTiIsWzE1LCJhUyJdLCJDUSIsWzE1LCJhVCJdLCJDVCIsWzE1LCJhVSJdLCJDVSIsWzE1LCJhViJdLCJDVyIsWzE1LCJhVyJdLCJDWCIsWzE1LCJhWCJdLCJDWSIsWzE1LCJhWSJdLCJDWiIsWzE1LCJhWiJdLCJEQSIsWzE1LCJiQSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0NV0sWzUyLCJjIiw0Nl0sWzUyLCJkIiw0N10sWzUyLCJlIiwxNzRdLFs1MiwiZiIsMjc2XSxbMzYsWzgsIkYiLFsxNSwiYiJdLCJHIixbMTUsImMiXSwiSCIsWzE1LCJkIl0sIlYiLFsxNSwiZSJdLCJBRCIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lY1R5cGVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiZnNyYyJdLFs1MiwiYyIsImZlaWQiXSxbNTIsImQiLCIwIl0sWzUyLCJlIiwiMSJdLFs1MiwiZiIsIjIiXSxbNTIsImciLCIzIl0sWzUyLCJoIiwiNCJdLFszNixbOCwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZyJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkMiLFsxNSwiZCJdLCJHIixbMTUsImgiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDI1XSxbNTIsImMiLDQzNV0sWzUyLCJkIiw0ODhdLFs1MiwiZSIsNDg5XSxbNTIsImYiLDQ5OF0sWzUyLCJnIiw1MDNdLFs1MiwiaCIsNTA0XSxbNTIsImkiLDUwNl0sWzUyLCJqIiw1MjNdLFs1MiwiayIsNTMyXSxbNTIsImwiLDU1M10sWzUyLCJtIiw1NjhdLFs1MiwibiIsNTc3XSxbNTIsIm8iLDU4MV0sWzUyLCJwIiw1ODNdLFs1MiwicSIsNTkyXSxbNTIsInIiLDU5NF0sWzUyLCJzIiw1OTldLFszNixbOCwiQVYiLFsxNSwiayJdLCJBRCIsWzE1LCJkIl0sIkNJIixbMTUsInEiXSwiQlYiLFsxNSwibiJdLCJCTyIsWzE1LCJtIl0sIkNLIixbMTUsInIiXSwiQ1AiLFsxNSwicyJdLCJBTSIsWzE1LCJnIl0sIkJaIixbMTUsIm8iXSwiQVQiLFsxNSwiaiJdLCJBRSIsWzE1LCJlIl0sIkFOIixbMTUsImgiXSwiTCIsWzE1LCJjIl0sIkJDIixbMTUsImwiXSwiQU8iLFsxNSwiaSJdLCJDQiIsWzE1LCJwIl0sIkFJIixbMTUsImYiXSwiSSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCJdLFs1MiwiYyIsInBsZCJdLFs1MiwiZCIsInNoYXJlZF91c2VyX2lkIl0sWzUyLCJlIiwic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIl0sWzUyLCJmIiwic2hhcmVkX3VzZXJfaWRfc291cmNlIl0sWzM2LFs4LCJCIixbMTUsImIiXSwiTiIsWzE1LCJjIl0sIlMiLFsxNSwiZCJdLCJUIixbMTUsImUiXSwiVSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDNdLFs1MiwiZSIsNF0sWzUyLCJmIiw1XSxbNTIsImciLDZdLFszNixbOCwiQSIsWzE1LCJiIl0sIkYiLFsxNSwiZyJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiw1XSxbNTIsImUiLDZdLFs1MiwiZiIsN10sWzUyLCJnIiw4XSxbNTIsImgiLDldLFs1MiwiaSIsMTFdLFs1MiwiaiIsMTVdLFs1MiwiayIsMTZdLFs1MiwibCIsMjBdLFs1MiwibSIsMjFdLFs1MiwibiIsMjNdLFs1MiwibyIsMjRdLFs1MiwicCIsMjddLFs1MiwicSIsNDBdLFs1MiwiciIsNDFdLFszNixbOCwiTyIsWzE1LCJqIl0sIlciLFsxNSwibiJdLCJQIixbMTUsImsiXSwiWCIsWzE1LCJvIl0sIksiLFsxNSwiaSJdLCJBIixbMTUsImIiXSwiVCIsWzE1LCJsIl0sIkUiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiQiIsWzE1LCJjIl0sIkgiLFsxNSwiZyJdLCJBTiIsWzE1LCJxIl0sIkkiLFsxNSwiaCJdLCJHIixbMTUsImYiXSwiVSIsWzE1LCJtIl0sIkFPIixbMTUsInIiXSwiQUEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZV9ibG9ja19kb3dubG9hZHMiXSxbNTIsImMiLCJhZV9ibG9ja19mb3JtIl0sWzUyLCJkIiwiYWVfYmxvY2tfaGlzdG9yeSJdLFs1MiwiZSIsImFlX2Jsb2NrX291dGJvdW5kX2NsaWNrIl0sWzUyLCJmIiwiYWVfYmxvY2tfc2Nyb2xsIl0sWzUyLCJnIiwiYWVfYmxvY2tfdmlkZW8iXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXSwiRiIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMzJdLFszNixbOCwiQUUiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0Nl0sWzY4LCJ3IixbNTMsWzIyLFsxLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiQUkiXV1dLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV1dLFs0NixbNTMsWzM2LFs3XV1dXV0sWzUyLCJ3IixbImIiLFsxNyxbMTUsImciXSwiTiJdXV0sWzIyLFsibiIsWzE1LCJ3Il1dLFs0NixbNTMsWzM2LFsxNSwidyJdXV1dXSxbNTIsIngiLFs3XV0sWzIyLFsicCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJBIl1dXV1dLFsyMixbInEiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQiJdXV1dXSxbMjIsWyJyIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkYiXV1dXV0sWzIyLFsidSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJEIl1dXV1dLFsyMixbInMiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRSJdXV1dXSxbMjIsWyJ0Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkMiXV1dXV0sWzIyLFsibCJdLFs0NixbNTMsWyJmIixbMTcsWzE1LCJnIl0sIk4iXSxbMTUsIngiXSx0cnVlXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNDZdXSxbMzYsWzddXV0sWzUwLCJwIixbNDZdLFs2OCwidyIsWzUzLFszNixbMjgsWzI4LFsiYyIsInNjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePVwibWFnZS9cIl0iXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJxIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjXj1cIi8vIixbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJyIixbNDZdLFsyMixbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsImMyaHZjR2xtZVM1amIyMD0iXV0sWzUyLCJ4IixbIm0iLCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSJdXSxbMjIsWzMwLFsyOCxbMTUsInciXV0sWzI4LFsxNSwieCJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLCJzY3JpcHRbc3JjKj1cImNkbi4iLFsxNSwidyJdXSwiXCJdLCJdLCJtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl1bY29udGVudCo9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiZm9udHMuIl0sWzE1LCJ4Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cIml0ZXJhYmxlLXNob3BpZnlcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cInYuIl0sWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicyIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsiZCIsInByb3RvY29sIl1dLFs1MiwieCIsWyJkIiwiaG9zdCJdXSxbNTIsInkiLFszOSxbMSxbMTUsInciXSxbMTUsIngiXV0sWzAsWzAsWzAsWzAsIltzcmNePVwiIixbMTUsInciXV0sIjovLyJdLFsxNSwieCJdXSwiL3dwLWNvbnRlbnRcIl0sIl0sIiJdXSxbNTIsInoiLFsibSIsIkxuZHZjbVJ3Y21WemN5NWpiMjA9Il1dLFs1MiwiYUEiLFsibSIsIkx5OXpMbmN1YjNKbiJdXSxbMjIsWzMwLFsyOCxbMTUsInoiXV0sWzI4LFsxNSwiYUEiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFszMCxbInYiLFsxNSwieCJdLFsxNSwieiJdXSxbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzE1LCJ5Il0sIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvcmRQcmVzcyBcIl0sIl0sImxpbmtbcmVsPVwiZG5zLXByZWZldGNoXCJdW2hyZWY9XCIiXSxbMTUsImFBIl1dLCJcIl0iXV1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInQiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsIltjbGFzcyo9XCJ3b29jb21tZXJjZVwiXSwiLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb29Db21tZXJjZSBcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ1IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjKj1cIndvb2NvbW1lcmNlXCJdLCIsImxpbmtbaHJlZio9XCJ3b29jb21tZXJjZVwiXSwiXSwiW2NsYXNzfD1cIndvb2NvbW1lcmNlXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMSxbMTksWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMjAsWzIsWzE1LCJ3Il0sInN1YnN0cmluZyIsWzcsWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV1dLFsxNSwieCJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmlzRG9tUmVhZHkiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJmcm9tQmFzZTY0Il1dLFs1MiwibiIsWzUxLCIiLFs3LCJ3Il0sWzM2LFsyMCxbImsiLFsxNSwidyJdXSwiYXJyYXkiXV1dXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzUyLCJoIixbImIiXV0sWzUyLCJpIixbN11dLFs1MyxbNDEsImoiXSxbMywiaiIsMF0sWzYzLFs3LCJqIl0sWzIzLFsxNSwiaiJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImoiXSxbMywiaiIsWzAsWzE1LCJqIl0sMV1dXSxbNDYsWzUzLFs1MiwiayIsWzE2LFsxNSwiaCJdLFsxNSwiaiJdXV0sWzIyLFsiZCIsWzE1LCJnIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJpIl0sInB1c2giLFs3LFsxNSwiayJdXV1dXV1dXV1dLFszNixbMTUsImkiXV1dLFs1MCwiZiIsWzQ2LCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsxNSwiaCJdLFs4XV1dLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJDUSJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIloiXSwiYSJdLFs0MyxbMTUsImciXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJpIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNsYWltRGVzdGluYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXSwiQiIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbUZvcm1BY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibiIsWzQ2LCJvIiwicCIsInEiXSxbNTIsInIiLFsyMCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV0sWzIyLFsyMCxbMTUsInAiXSxbNDRdXSxbNDYsWzUzLFszLCJwIixbMTUsInIiXV1dXV0sWyJjIixbMTUsIm8iXSxbNTEsIiIsWzcsInMiXSxbNTIsInQiLFsyLFsxNSwicyJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwidSIsWzMwLFsyMCxbMTUsInQiXSxbMTUsImwiXV0sWzIwLFsxNSwidCJdLFsxNSwiayJdXV1dLFsyMixbMzAsWzI4LFsxNSwidSJdXSxbMjgsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwibyJdLFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMSxbMjgsWzE1LCJwIl1dLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJBSiJdXV1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXV0sWzUyLCJ2IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQUEiXV1dXSxbMjIsWzEsWzI4LFsxNSwiciJdXSxbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWyJoIixbMTcsWzE1LCJpIl0sIkJaIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdLFs0NF1dXV1dXV1dXV1dLFsyLFsxNSwicyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsxLFsxNSwidiJdLFsxNSwiciJdXSxbNDYsWzUzLFs0MSwidyJdLFszLCJ3IixbMTcsWzE1LCJnIl0sIkMiXV0sWzQxLCJ4Il0sWzIyLFsyMCxbMTUsInYiXSxbMTUsImwiXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJEIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJrIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRSJdXSxbMywieCIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXV1dXV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwibSJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkYiXV0sWzMsIngiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl1dXV1dXV1dXV1dLFs1MiwieSIsWzhdXSxbNDMsWzE1LCJ5Il0sWzE3LFsxNSwiZyJdLCJBIl0sWzE1LCJ3Il1dLFsyMixbMTUsIngiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSxbMTcsWzE1LCJnIl0sIkIiXSxbMTUsIngiXV1dXV0sWzIsWzE1LCJzIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiZiJdLCJGVCJdLFsxNSwieSJdXV1dXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1faWQiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9kZXN0aW5hdGlvbiIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9sZW5ndGgiLFs0NF1dXSxbMjIsWzIwLFsxNSwidCJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9zdWJtaXRfdGV4dCIsWzQ0XV1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ0Il0sWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF9pZCIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfdHlwZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfcG9zaXRpb24iLFs0NF1dXV1dXV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9lY1R5cGVzIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJqIixbMTcsWzE1LCJlIl0sIkIiXV0sWzUyLCJrIiwiZm9ybV9zdWJtaXQiXSxbNTIsImwiLCJmb3JtX3N0YXJ0Il0sWzUyLCJtIiwiY2xpY2siXSxbMzYsWzgsIkEiLFsxNSwibiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1QYWdlVmlld0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiXSxbImMiLFsxNSwiayJdLFs1MSwiIixbNywibCJdLFsyMixbMzAsWzIxLFsyLFsxNSwibCJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJpIl1dLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJsIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIyLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQk8iXV1dXSxbNDYsWzUzLFsiZCIsWzE1LCJrIl0sWzE3LFsxNSwiZiJdLCJIRSJdLFsyLFsxNSwibCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJmIl0sIkhFIl1dXV1dXV0sWzIsWzE1LCJsIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkNRIl0sZmFsc2VdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQyJdXSxbNTIsImkiLFsxNyxbMTUsImYiXSwiQUsiXV0sWzM2LFs4LCJBIixbMTUsImoiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWiJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkZaIl0sWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV1dXV1dXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRlkiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWSJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJmIixbNDYsImciXSxbMjIsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJTIl1dXSxbNDYsWzUzLFsyLFsxNSwiZyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIklQIl0sIjEiXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrRW5hYmxlRW5jcnlwdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJqIl0sWzUyLCJrIixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQVEiXV1dXSxbMjIsWzEsWzMwLFsyMCxbMTUsImsiXSxbMTcsWzE1LCJiIl0sIksiXV0sWzIwLFsxNSwiayJdLFsxNyxbMTUsImIiXSwiSiJdXV0sWyJpIixbMTUsImoiXV1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkJDIl0sdHJ1ZV1dXV1dXSxbNTAsImkiLFs0NiwiaiJdLFsyMixbMjgsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkNXIl1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNixbImMiXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRnBmZSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzIsWzE1LCJjIl0sIkEiLFs3XV1dLFsyMixbMSxbMTUsImYiXSxbMTgsWzE3LFsxNSwiZiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzgsInBsZiIsWzIsWzE1LCJmIl0sImpvaW4iLFs3LCIuIl1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fY2NkX2FkZF8xcF9kYXRhIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2Fkc19jb252X21hcmtpbmciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYWRzX2ZpcnN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2Fkc19sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Zvcm0iOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VuYWJsZV9jbSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9wcmVfYXV0b19waWkiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19lIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19vZ3RfYWRzX2RhdGF0b3MiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19yZXAiOnsiNSI6dHJ1ZSwiNiI6dHJ1ZX0KCgp9CiwiYmxvYiI6eyIxIjoiMiIsIjEwIjoiQVctMTA3ODQ5NzE0OTAiLCIxNCI6IjY3bTAiLCIxNSI6IjAiLCIxNiI6IkNoRUk4SU9jMHdZUWdPbXNrdnVseEtxUkFSSWZBTDJQWVpabUhOSjAxckI5QzFYZWlQck9jVGduN3pNcTB4UjZJZEdpdEJvQ2tkOD0iLCIxNyI6IiIsIjE5IjoiZGF0YUxheWVyIiwiMjAiOiIiLCIyMSI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjIyIjoiZXlJd0lqb2lUazhpTENJeElqb2lUazh0TURNaUxDSXlJanBtWVd4elpTd2lNeUk2SW1kdmIyZHNaUzV1YnlJc0lqUWlPaUp5WldkcGIyNHhJaXdpTlNJNlptRnNjMlVzSWpZaU9uUnlkV1VzSWpjaU9pSmhaRjl6ZEc5eVlXZGxmR0Z1WVd4NWRHbGpjMTl6ZEc5eVlXZGxmR0ZrWDNWelpYSmZaR0YwWVh4aFpGOXdaWEp6YjI1aGJHbDZZWFJwYjI0aUxDSTVJanAwY25WbGZRIiwiMjMiOiJnb29nbGUudGFnbWFuYWdlci5kZWJ1Z3VpMi5xdWV1ZSIsIjI0IjoidGFnYXNzaXN0YW50Lmdvb2dsZS5jb20iLCIyNyI6MC4wMDUsIjMiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIzMCI6Ik5PIiwiMzEiOiJOTy0wMyIsIjMyIjpmYWxzZSwiMzMiOiJyZWdpb24xIiwiMzQiOiJBVy0xMDc4NDk3MTQ5MCIsIjM1IjoiQVciLCIzNiI6Imh0dHBzOi8vYWRzZXJ2aWNlLmdvb2dsZS5jb20vcGFnZWFkL3JlZ2NsayIsIjM3IjoiX19UQUdHWV9JTlNUQUxMRUQiLCIzOCI6ImNjdC5nb29nbGUiLCIzOSI6Imdvb2dUYWdneVJlZmVycmVyIiwiNDAiOiJodHRwczovL2NjdC5nb29nbGUvdGFnZ3kvYWdlbnQuanMiLCI0MSI6Imdvb2dsZS50YWdtYW5hZ2VyLnRhLnByb2RxdWV1ZSIsIjQyIjowLjAxLCI0MyI6IntcImtleXNcIjpbe1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJLbHlUWDJqeW9icFFDbWZVeUJiaEJ5UUhrOVoySGRONWxIeHBCQXRJS0dNY216dzBnRStlYmxZQ21tMUdhN2JZZVRkeWRvSm1lNklwYVNvQ1UwSVVVbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJkZWU0YjM1MS1iMGY1LTRjMjctYThjOC1lZDY2MDQ3N2E0NGNcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJEdFlCUm5QQlMxZzZtZVhPMXJRNWE1MkI1RmJuaDdEQzVqcXYwMml4SnNzbjBrMUo5cmNIQ2FWYy96elJzbnNIQnpTb0ZLczZKOHBIN0NjblFQM0Vqdz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJhZDE5M2IyYS00YTkwLTRjMWEtYjc5ZS1kZTM3YWMzOTFiZDJcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJNWjBVTXVkQWU0UG9hZlNUcFV4UHRJa2ZCZUNNYkZCWHZ0eVJZdkhMQ1NRL0VVdkVKc21zVjR0Nk5CL0JFVnBxTDNIdjhnTlNRaDdLK1NVb29mMjVhbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0OGM0ZWZlMS1mZGQwLTQzNmEtYWM4Zi05MjNmMTE5MTg3ODdcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJGZmx2VWwreHBIYUZWQ0lZTzFLUEx4a3YrQWpkbDRkOHJ2clhoSTZ6ZnBuYkJEcUk1MUREa3RISGIzWldJUzU3b0RoMEtpcjlBdUNPb24yTU94TlY5WT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0MzJiYzI3MC05OWVhLTQyMjAtYjU2Mi1lMmM1YWU3N2Q0ZDlcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJBUThUa3k0RExXT0piSE9IYlZZRGJRWkVmRWVsYjRGVEI4RVlNUWVSUWlMMW0xTHRBZDByM3pleUxqZ1ozL1cyNFI4VmZiMjJ6WTJpeDZXL1RmQ2pqQT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCIwNTBhNmUxMS0zOGFiLTRmODAtODljYi03YjMxOWI5NzA0YzBcIn1dfSIsIjQ0IjoiMTE4ODk3OTIwfjExODg5NzkzMCIsIjQ1Ijp0cnVlLCI0NiI6eyIxIjoiMTAwMCIsIjEwIjoiNjZ1MCIsIjExIjoiNjZnMCIsIjE0IjoiMTAwMCIsIjE2IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIxNyI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMiI6IjkiLCIyMCI6IjUwMDAiLCIyMSI6IjUwMDAiLCIyMiI6IjQuNC4wIiwiMjMiOiIwLjAuMCIsIjI1IjoiMSIsIjI2IjoiNDAwMCIsIjI3IjoiMTAwIiwiMyI6IjUiLCI0IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIiwiNDQiOiIxNTAwMCIsIjQ4IjoiMzAwMDAiLCI1IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGEiLCI2IjoiMSIsIjYxIjoiMTAwMCIsIjYyIjoiQTZPTkhSWTcvYnZCcm8rSU1aZC9hNkxOam43U1N2OTk5U2tOL2hGQUU5TDZ2TXIzNGROZ2ZkU1ZkWW12NFUrTkhaZzFzeGQzOFJ0Y2lScFJVdElSUGdRQUFBQ0NleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1YwWVdkdFlXNWhaMlZ5TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVUyaGhjbVZrVjI5eWEyVnlSWGgwWlc1a1pXUk1hV1psZEdsdFpTSXNJbVY0Y0dseWVTSTZNVGMzTmpjeU9UWXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIsIjYzIjoiMTAwMCIsIjY2IjoiMTAwIiwiNyI6IjEwIn0sIjQ4Ijp0cnVlLCI1IjoiQVctMTA3ODQ5NzE0OTAiLCI1NSI6WyJBVy0xMDc4NDk3MTQ5MCJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiQVctMTA3ODQ5NzE0OTAiXSwiNiI6IjE2NjI5NTczNSIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fY2NkX2FkZF8xcF9kYXRhIjp7InJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2NjZF9hZHNfY29udl9tYXJraW5nIjp7fQosCiJfX2NjZF9hZHNfZmlyc3QiOnsicmVhZF9kb21fZWxlbWVudHMiOnsiYWxsb3dlZENzc1NlbGVjdG9ycyI6ImFueSJ9LCJnZXRfdXJsIjp7InVybFBhcnRzIjoic3BlY2lmaWMiLCJwcm90b2NvbCI6dHJ1ZSwiaG9zdCI6dHJ1ZX19CiwKIl9fY2NkX2Fkc19sYXN0Ijp7fQosCiJfX2NjZF9lbV9mb3JtIjp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uZm9ybUludGVyYWN0IiwiZ3RtLmZvcm1TdWJtaXQiLCJndG0uY2xpY2stdjIiXX0sImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9LCJkZXRlY3RfY2xpY2tfZXZlbnRzIjp7fSwiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI6e319CiwKIl9fY2NkX2VuYWJsZV9jbSI6e30KLAoiX19jY2RfcHJlX2F1dG9fcGlpIjp7ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiOnsibGltaXREYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dBdXRvRGF0YVNvdXJjZXMiOnRydWUsImFsbG93TWFudWFsRGF0YVNvdXJjZXMiOmZhbHNlLCJhbGxvd0NvZGVEYXRhU291cmNlcyI6ZmFsc2V9LCJhY2Nlc3NfY29uc2VudCI6eyJjb25zZW50VHlwZXMiOlt7ImNvbnNlbnRUeXBlIjoiYWRfc3RvcmFnZSIsInJlYWQiOnRydWUsIndyaXRlIjpmYWxzZX0seyJjb25zZW50VHlwZSI6ImFuYWx5dGljc19zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19fQosCiJfX2UiOnsicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6InNwZWNpZmljIiwia2V5UGF0dGVybnMiOlsiZXZlbnQiXX19CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fb2d0X2Fkc19kYXRhdG9zIjp7fQosCiJfX3JlcCI6e30KCgp9CgoKCiwic2VjdXJpdHlfZ3JvdXBzIjp7CiJnb29nbGUiOlsKIl9fY2NkX2FkZF8xcF9kYXRhIgosCiJfX2NjZF9hZHNfY29udl9tYXJraW5nIgosCiJfX2NjZF9hZHNfZmlyc3QiCiwKIl9fY2NkX2Fkc19sYXN0IgosCiJfX2NjZF9lbV9mb3JtIgosCiJfX2NjZF9lbV9wYWdlX3ZpZXciCiwKIl9fY2NkX2VuYWJsZV9jbSIKLAoiX19jY2RfcHJlX2F1dG9fcGlpIgosCiJfX2UiCiwKIl9fb2d0XzFwX2RhdGFfdjIiCiwKIl9fb2d0X2Fkc19kYXRhdG9zIgosCiJfX3JlcCIKCl0KCgp9CgoKCgoKfTsKCgoKCnZhciBrLGFhPXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O2IucHJvdG90eXBlPWE7cmV0dXJuIG5ldyBifSxiYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfSxjYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTsKfSxoYT1jYSh0aGlzKSxpYT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgieCIpPT09InN5bWJvbCIsa2E9e30sbGE9e30sbmE9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjfHxhIT1udWxsKXt2YXIgZD1sYVtiXTtpZihkPT1udWxsKXJldHVybiBhW2JdO3ZhciBlPWFbZF07cmV0dXJuIGUhPT12b2lkIDA/ZTphW2JdfX0sb2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpYTp7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9ZC5sZW5ndGg9PT0xLGY9ZFswXSxnOyFlJiZmIGluIGthP2c9a2E6Zz1oYTtmb3IodmFyIGg9MDtoPGQubGVuZ3RoLTE7aCsrKXt2YXIgbD1kW2hdO2lmKCEobCBpbiBnKSlicmVhayBhO2c9Z1tsXX12YXIgbj1kW2QubGVuZ3RoLTFdLHA9aWEmJmM9PT0iZXM2Ij9nW25dOm51bGwscT1iKHApO2lmKHEhPW51bGwpaWYoZSliYShrYSxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pO2Vsc2UgaWYocSE9PXApe2lmKGxhW25dPT09dm9pZCAwKXt2YXIgcj0KTWF0aC5yYW5kb20oKSoxRTk+Pj4wO2xhW25dPWlhP2hhLlN5bWJvbChuKToiJGpzY3AkIityKyIkIitufWJhKGcsbGFbbl0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9fX0scGE7aWYoaWEmJnR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpcGE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIHJhO2E6e3ZhciB0YT17YTohMH0sdWE9e307dHJ5e3VhLl9fcHJvdG9fXz10YTtyYT11YS5hO2JyZWFrIGF9Y2F0Y2goYSl7fXJhPSExfXBhPXJhP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbH0KdmFyIHZhPXBhLHdhPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9YWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYodmEpdmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLkZ0PWIucHJvdG90eXBlfSx4YT1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX0sbT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6eGEoYSl9Owp0aHJvdyBFcnJvcihTdHJpbmcoYSkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIik7fSx5YT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTtyZXR1cm4gY30sdz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5P2E6eWEobShhKSl9LEFhPWZ1bmN0aW9uKGEpe3JldHVybiB6YShhLGEpfSx6YT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9LEJhPWlhJiZ0eXBlb2YgbmEoT2JqZWN0LCJhc3NpZ24iKT09ImZ1bmN0aW9uIj9uYShPYmplY3QsImFzc2lnbiIpOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyBudWxsaXNoIGFyZyIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTsKaWYoZClmb3IodmFyIGUgaW4gZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9O29hKCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8QmF9LCJlczYiKTt2YXIgQ2E9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO30sRGE9ZnVuY3Rpb24oKXt0aGlzLmZhPSExO3RoaXMuUj1udWxsO3RoaXMuamE9dm9pZCAwO3RoaXMuSD0xO3RoaXMuTj10aGlzLlo9MDt0aGlzLkxhPXRoaXMuSz1udWxsfSxFYT1mdW5jdGlvbihhKXtpZihhLmZhKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTthLmZhPSEwfTtEYS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSl7dGhpcy5qYT1hfTsKdmFyIEdhPWZ1bmN0aW9uKGEsYil7YS5LPXthbzpiLGlzRXhjZXB0aW9uOiEwfTthLkg9YS5afHxhLk59O0RhLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O0RhLnByb3RvdHlwZS5nZXRZaWVsZFJlc3VsdEpzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmphfTtEYS5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuSz17cmV0dXJuOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZVsicmV0dXJuIl09RGEucHJvdG90eXBlLnJldHVybjtEYS5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oYSl7dGhpcy5LPXtuZDphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5BajtEYS5wcm90b3R5cGUuYWM9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YjtyZXR1cm57dmFsdWU6YX19O0RhLnByb3RvdHlwZS55aWVsZD1EYS5wcm90b3R5cGUuYWM7CkRhLnByb3RvdHlwZS54cz1mdW5jdGlvbihhLGIpe3ZhciBjPW0oYSksZD1jLm5leHQoKTtDYShkKTtpZihkLmRvbmUpdGhpcy5qYT1kLnZhbHVlLHRoaXMuSD1iO2Vsc2UgcmV0dXJuIHRoaXMuUj1jLHRoaXMuYWMoZC52YWx1ZSxiKX07RGEucHJvdG90eXBlLnlpZWxkQWxsPURhLnByb3RvdHlwZS54cztEYS5wcm90b3R5cGUubmQ9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5qdW1wVG89RGEucHJvdG90eXBlLm5kO0RhLnByb3RvdHlwZS5Eaj1mdW5jdGlvbigpe3RoaXMuSD0wfTtEYS5wcm90b3R5cGUuanVtcFRvRW5kPURhLnByb3RvdHlwZS5EajtEYS5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTtiIT12b2lkIDAmJih0aGlzLk49Yil9O0RhLnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLk5qO0RhLnByb3RvdHlwZS52Zz1mdW5jdGlvbihhKXt0aGlzLlo9MDt0aGlzLk49YXx8MH07CkRhLnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLnZnO0RhLnByb3RvdHlwZS5Jaj1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuWj1ifHwwfTtEYS5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1EYS5wcm90b3R5cGUuSWo7RGEucHJvdG90eXBlLlBoPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfHwwO3ZhciBiPXRoaXMuSy5hbzt0aGlzLks9bnVsbDtyZXR1cm4gYn07RGEucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1EYS5wcm90b3R5cGUuUGg7RGEucHJvdG90eXBlLmtkPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuTGFbY109dGhpcy5LOnRoaXMuTGE9W3RoaXMuS107dGhpcy5aPWF8fDA7dGhpcy5OPWJ8fDB9O0RhLnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUua2Q7CkRhLnByb3RvdHlwZS5oZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTGEuc3BsaWNlKGJ8fDApWzBdLGQ9dGhpcy5LPXRoaXMuS3x8YztkP2QuaXNFeGNlcHRpb24/dGhpcy5IPXRoaXMuWnx8dGhpcy5OOmQubmQhPXZvaWQgMCYmdGhpcy5OPGQubmQ/KHRoaXMuSD1kLm5kLHRoaXMuSz1udWxsKTp0aGlzLkg9dGhpcy5OOnRoaXMuSD1hfTtEYS5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmhlO0RhLnByb3RvdHlwZS5mZT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEhhKGEpfTtEYS5wcm90b3R5cGUuZm9ySW49RGEucHJvdG90eXBlLmZlO3ZhciBIYT1mdW5jdGlvbihhKXt0aGlzLks9YTt0aGlzLkg9W107Zm9yKHZhciBiIGluIGEpdGhpcy5ILnB1c2goYik7dGhpcy5ILnJldmVyc2UoKX07SGEucHJvdG90eXBlLmhvPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLkgubGVuZ3RoPjA7KXt2YXIgYT10aGlzLkgucG9wKCk7aWYoYSBpbiB0aGlzLkspcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpIYS5wcm90b3R5cGUuZ2V0TmV4dD1IYS5wcm90b3R5cGUuaG87CnZhciBJYT1mdW5jdGlvbihhKXt0aGlzLkg9bmV3IERhO3RoaXMuSz1hfSxMYT1mdW5jdGlvbihhLGIpe0VhKGEuSCk7dmFyIGM9YS5ILlI7aWYoYylyZXR1cm4gSmEoYSwicmV0dXJuImluIGM/Y1sicmV0dXJuIl06ZnVuY3Rpb24oZCl7cmV0dXJue3ZhbHVlOmQsZG9uZTohMH19LGIsYS5ILnJldHVybik7YS5ILnJldHVybihiKTtyZXR1cm4gS2EoYSl9LEphPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXt2YXIgZT1iLmNhbGwoYS5ILlIsYyk7Q2EoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5ILmZhPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5ILlI9bnVsbCxHYShhLkgsZyksS2EoYSl9YS5ILlI9bnVsbDtkLmNhbGwoYS5ILGYpO3JldHVybiBLYShhKX0sS2E9ZnVuY3Rpb24oYSl7Zm9yKDthLkguSDspdHJ5e3ZhciBiPWEuSyhhLkgpO2lmKGIpcmV0dXJuIGEuSC5mYT0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChkKXthLkguamE9dm9pZCAwLEdhKGEuSCwKZCl9YS5ILmZhPSExO2lmKGEuSC5LKXt2YXIgYz1hLkguSzthLkguSz1udWxsO2lmKGMuaXNFeGNlcHRpb24pdGhyb3cgYy5hbztyZXR1cm57dmFsdWU6Yy5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX0sTWE9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SLm5leHQsYixhLkgueWEpOihhLkgueWEoYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlJbInRocm93Il0sYixhLkgueWEpOihHYShhLkgsYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBMYShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319LE5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1hKG5ldyBJYShiKSk7dmEmJmEucHJvdG90eXBlJiZ2YShjLAphLnByb3RvdHlwZSk7cmV0dXJuIGN9LE9hPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9LFFhPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgUmE9dGhpc3x8c2VsZixTYT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5GdD1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EubnY9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTt2YXIgVGE9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YTt0aGlzLmRhdGE9Yn07dmFyIFVhPWZ1bmN0aW9uKCl7dGhpcy5tYXA9e307dGhpcy5IPXt9fTtVYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcFsiZHVzdC4iK2FdfTtVYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShjKXx8KHRoaXMubWFwW2NdPWIpfTtVYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eSgiZHVzdC4iK2EpfTtVYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe3ZhciBiPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYil8fGRlbGV0ZSB0aGlzLm1hcFtiXX07CnZhciBWYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5tYXApaWYoYS5tYXAuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO3N3aXRjaChiKXtjYXNlIDE6Yy5wdXNoKGUpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5tYXBbZF0pO2JyZWFrO2Nhc2UgMzpjLnB1c2goW2UsYS5tYXBbZF1dKX19cmV0dXJuIGN9O1VhLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDEpfTtVYS5wcm90b3R5cGUuaGM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywyKX07VWEucHJvdG90eXBlLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMyl9O3ZhciBXYT1mdW5jdGlvbigpe307V2EucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7fTt2YXIgWGE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9O3RoaXMucHJlZml4PSJndG0uIn07az1YYS5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV09Yn07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkodGhpcy5wcmVmaXgrU3RyaW5nKGEpKX07ay5kZWxldGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5wcmVmaXgrU3RyaW5nKGEpO3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KGIpPyhkZWxldGUgdGhpcy52YWx1ZVtiXSwhMCk6ITF9O2suY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9fTsKay52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBmdW5jdGlvbiBjKCl7dmFyIGQsZSxmO3JldHVybiBOYShjLGZ1bmN0aW9uKGcpe3N3aXRjaChnLkgpe2Nhc2UgMTpnLnZnKDIpLGU9Zy5mZShhLnZhbHVlKTtjYXNlIDQ6aWYoKGQ9ZS5obygpKT09bnVsbCl7Zy5uZCgyKTticmVha31pZighYS52YWx1ZS5oYXNPd25Qcm9wZXJ0eShkKSl7Zy5uZCg0KTticmVha31mPVFhO3JldHVybiBnLmFjKGEudmFsdWVbZF0sOCk7Y2FzZSA4OmYoZy5qYSk7Zy5uZCg0KTticmVhaztjYXNlIDI6Zy5rZCgpLGcuaGUoMCl9fSl9KCl9O2hhLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFhhLnByb3RvdHlwZSx7c2l6ZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudmFsdWUpLmxlbmd0aH19fSk7CmZ1bmN0aW9uIFlhKCl7dHJ5e2lmKE1hcClyZXR1cm4gbmV3IE1hcH1jYXRjaChhKXt9cmV0dXJuIG5ldyBYYX07dmFyIFphPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZXM9W119O1phLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZXMuaW5kZXhPZihhKT09PS0xJiZ0aGlzLnZhbHVlcy5wdXNoKGEpfTtaYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5pbmRleE9mKGEpPi0xfTt2YXIgJGE9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLlI9dGhpcy5LPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuTj1mdW5jdGlvbihkLGUsZil7cmV0dXJuIGQuYXBwbHkoZSxmKX07dGhpcy5IPVlhKCk7dmFyIGM7YTp7dHJ5e2lmKFNldCl7Yz1uZXcgU2V0O2JyZWFrIGF9fWNhdGNoKGQpe31jPW5ldyBaYX10aGlzLlo9Y307JGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCExKX07JGEucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITApfTt2YXIgYWI9ZnVuY3Rpb24oYSxiLGMsZCl7YS5IYnx8YS5aLmhhcyhiKXx8KGQmJmEuWi5hZGQoYiksYS5ILnNldChiLGMpKX07az0kYS5wcm90b3R5cGU7Cmsuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLkguaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMuWi5oYXMoYSl8fHRoaXMuSC5zZXQoYSxiKSl9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkguaGFzKGEpP3RoaXMuSC5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLkguaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgJGEodGhpcy5mYSx0aGlzKTt0aGlzLksmJmEuUWIodGhpcy5LKTthLnNkKHRoaXMuTik7YS51ZSh0aGlzLlIpO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmF9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTsKay5zZD1mdW5jdGlvbihhKXt0aGlzLk49YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07dmFyIGJiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxhLm1lc3NhZ2UpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMudm89YTt0aGlzLlNuPWM9PT12b2lkIDA/ITE6Yzt0aGlzLks9W107dGhpcy5IPWJ9O3dhKGJiLEVycm9yKTt2YXIgY2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBiYj9hOm5ldyBiYihhLHZvaWQgMCwhMCl9O3ZhciBkYj1ZYSgpO2Z1bmN0aW9uIGViKGEsYil7Zm9yKHZhciBjLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmUmJiEoYz1mYihhLGUudmFsdWUpLGMgaW5zdGFuY2VvZiBUYSk7ZT1kLm5leHQoKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZmIoYSxiKXt0cnl7dmFyIGM9YlswXSxkPWIuc2xpY2UoMSksZT1TdHJpbmcoYyksZj1kYi5oYXMoZSk/ZGIuZ2V0KGUpOmEuZ2V0KGUpO2lmKCFmfHx0eXBlb2YgZi5pbnZva2UhPT0iZnVuY3Rpb24iKXRocm93IGNiKEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4ZWN1dGUgbm9uLWZ1bmN0aW9uICIrYlswXSsiLiIpKTtyZXR1cm4gZi5hcHBseShhLGQpfWNhdGNoKGgpe3ZhciBnPWEuZm8oKTtnJiZnKGgsYi5jb250ZXh0P3tpZDpiWzBdLGxpbmU6Yi5jb250ZXh0LmxpbmV9Om51bGwpO3Rocm93IGg7fX07dmFyIGdiPWZ1bmN0aW9uKCl7dGhpcy5LPW5ldyBXYTt0aGlzLkg9bmV3ICRhKHRoaXMuSyl9O2s9Z2IucHJvdG90eXBlO2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07ay5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9O2suZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yayhbYV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLnJrPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9bShPYS5hcHBseSgwLGFyZ3VtZW50cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWE9ZmIodGhpcy5ILGMudmFsdWUpO3JldHVybiBhfTtrLkpxPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPXRoaXMuSC53YigpO2MudWUoYSk7Zm9yKHZhciBkLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkPWZiKGMsZi52YWx1ZSk7cmV0dXJuIGR9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07dmFyIGhiPWZ1bmN0aW9uKGEsYil7dGhpcy5SPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLk49dGhpcy5IPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuSz1mdW5jdGlvbihjLGQsZSl7cmV0dXJuIGMuYXBwbHkoZCxlKX07dGhpcy52YWx1ZXM9bmV3IFVhfTtoYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITEpfTtoYi5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMCl9O3ZhciBqYj1mdW5jdGlvbihhLGIsYyxkKXtpZighYS5IYilpZihkKXt2YXIgZT1hLnZhbHVlcztlLnNldChiLGMpO2UuSFsiZHVzdC4iK2JdPSEwfWVsc2UgYS52YWx1ZXMuc2V0KGIsYyl9O2s9aGIucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLnZhbHVlcy5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy52YWx1ZXMuc2V0KGEsYikpfTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmhhcyhhKT90aGlzLnZhbHVlcy5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLnZhbHVlcy5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyBoYih0aGlzLlIsdGhpcyk7dGhpcy5IJiZhLlFiKHRoaXMuSCk7YS5zZCh0aGlzLkspO2EudWUodGhpcy5OKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTt2YXIga2I9ZnVuY3Rpb24oKXt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhfTtrPWtiLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gbGIoKXtmb3IodmFyIGE9bWIsYj17fSxjPTA7YzxhLmxlbmd0aDsrK2MpYlthW2NdXT1jO3JldHVybiBifWZ1bmN0aW9uIG5iKCl7dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjthKz1hLnRvTG93ZXJDYXNlKCkrIjAxMjM0NTY3ODktXyI7cmV0dXJuIGErIi4ifXZhciBtYixvYjtmdW5jdGlvbiBwYihhKXttYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7Yys9Myl7dmFyIGQ9YysxPGEubGVuZ3RoLGU9YysyPGEubGVuZ3RoLGY9YS5jaGFyQ29kZUF0KGMpLGc9ZD9hLmNoYXJDb2RlQXQoYysxKTowLGg9ZT9hLmNoYXJDb2RlQXQoYysyKTowLGw9Zj4+MixuPShmJjMpPDw0fGc+PjQscD0oZyYxNSk8PDJ8aD4+NixxPWgmNjM7ZXx8KHE9NjQsZHx8KHA9NjQpKTtiLnB1c2gobWJbbF0sbWJbbl0sbWJbcF0sbWJbcV0pfXJldHVybiBiLmpvaW4oIiIpfQpmdW5jdGlvbiBxYihhKXtmdW5jdGlvbiBiKGwpe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBuPWEuY2hhckF0KGQrKykscD1vYltuXTtpZihwIT1udWxsKXJldHVybiBwO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobikpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrbik7fXJldHVybiBsfW1iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYz0iIixkPTA7Oyl7dmFyIGU9YigtMSksZj1iKDApLGc9Yig2NCksaD1iKDY0KTtpZihoPT09NjQmJmU9PT0tMSlyZXR1cm4gYztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU8PDJ8Zj4+NCk7ZyE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShmPDw0JjI0MHxnPj4yKSxoIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGc8PDYmMTkyfGgpKSl9fTt2YXIgcmI9e307ZnVuY3Rpb24gc2IoYSxiKXt2YXIgYz1yYlthXTtjfHwoYz1yYlthXT1bXSk7Y1tiXT0hMH1mdW5jdGlvbiB0Yigpe2RlbGV0ZSByYi5HQTRfRVZFTlR9ZnVuY3Rpb24gdWIoKXt2YXIgYT12Yi5ILnNsaWNlKCk7cmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUw9YX1mdW5jdGlvbiB3YihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKylkJTg9PT0wJiZkPjAmJihiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSksYz0wKSxhW2RdJiYoY3w9MTw8ZCU4KTtjPjAmJmIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtyZXR1cm4gcGIoYi5qb2luKCIiKSkucmVwbGFjZSgvXC4rJC8sIiIpfTtmdW5jdGlvbiB4Yigpe31mdW5jdGlvbiB5YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIHpiKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIEFiKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiYhaXNOYU4oYSl9ZnVuY3Rpb24gQmIoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpbYV19ZnVuY3Rpb24gQ2IoYSxiKXtpZihhJiZBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmIoYVtjXSkpcmV0dXJuIGFbY119ZnVuY3Rpb24gRGIoYSxiKXtpZighQWIoYSl8fCFBYihiKXx8YT5iKWE9MCxiPTIxNDc0ODM2NDc7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooYi1hKzEpK2EpfQpmdW5jdGlvbiBFYihhLGIpe2Zvcih2YXIgYz1uZXcgRmIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWMuc2V0KGFbZF0sITApO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7ZSsrKWlmKGMuZ2V0KGJbZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEdiKGEsYil7Zm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYyxhW2NdKX1mdW5jdGlvbiBIYihhKXtyZXR1cm4hIWEmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBBcmd1bWVudHNdInx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImNhbGxlZSIpKX1mdW5jdGlvbiBJYihhKXtyZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIoYSkpfHwwfWZ1bmN0aW9uIEpiKGEpe3JldHVybiJmYWxzZSI9PT1TdHJpbmcoYSkudG9Mb3dlckNhc2UoKT8hMTohIWF9CmZ1bmN0aW9uIEtiKGEpe3ZhciBiPVtdO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKFN0cmluZyhhW2NdKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gTGIoYSl7cmV0dXJuIGE/YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik6IiJ9ZnVuY3Rpb24gTWIoKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSl9ZnVuY3Rpb24gTmIoKXtyZXR1cm4gTWIoKS5nZXRUaW1lKCl9dmFyIEZiPWZ1bmN0aW9uKCl7dGhpcy5wcmVmaXg9Imd0bS4iO3RoaXMudmFsdWVzPXt9fTtGYi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV09Yn07RmIucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV19O0ZiLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nZXQoYSkhPT12b2lkIDB9OwpmdW5jdGlvbiBPYihhLGIsYyl7cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkoYik/YVtiXTpjfWZ1bmN0aW9uIFBiKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPXZvaWQgMDt0cnl7YygpfWNhdGNoKGQpe319fX1mdW5jdGlvbiBRYihhLGIpe2Zvcih2YXIgYyBpbiBiKWIuaGFzT3duUHJvcGVydHkoYykmJihhW2NdPWJbY10pfWZ1bmN0aW9uIFJiKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnB1c2goYVtkXSksYy5wdXNoLmFwcGx5KGMsYlthW2RdXXx8W10pO3JldHVybiBjfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoMCxiLmxlbmd0aCk9PT1ifWZ1bmN0aW9uIFRiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoYS5sZW5ndGgtYi5sZW5ndGgsYS5sZW5ndGgpPT09Yn0KZnVuY3Rpb24gVWIoYSxiLGMpe2M9Y3x8W107Zm9yKHZhciBkPWEsZT0wO2U8Yi5sZW5ndGgtMTtlKyspe2lmKCFkLmhhc093blByb3BlcnR5KGJbZV0pKXJldHVybjtkPWRbYltlXV07aWYoYy5pbmRleE9mKGQpPj0wKXJldHVybn1yZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYz17fSxkPWMsZT1hLnNwbGl0KCIuIiksZj0wO2Y8ZS5sZW5ndGgtMTtmKyspZD1kW2VbZl1dPXt9O2RbZVtlLmxlbmd0aC0xXV09YjtyZXR1cm4gY312YXIgV2I9L15cd3sxLDl9JC87ZnVuY3Rpb24gWWIoYSxiKXthPWF8fHt9O2I9Ynx8IiwiO3ZhciBjPVtdO0diKGEsZnVuY3Rpb24oZCxlKXtXYi50ZXN0KGQpJiZlJiZjLnB1c2goZCl9KTtyZXR1cm4gYy5qb2luKGIpfQpmdW5jdGlvbiBaYihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hLmNoYXJDb2RlQXQoYyk7ZDwxMjg/Yi5wdXNoKGQpOmQ8MjA0OD9iLnB1c2goMTkyfGQ+PjYsMTI4fGQmNjMpOmQ8NTUyOTZ8fGQ+PTU3MzQ0P2IucHVzaCgyMjR8ZD4+MTIsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpOihkPTY1NTM2KygoZCYxMDIzKTw8MTB8YS5jaGFyQ29kZUF0KCsrYykmMTAyMyksYi5wdXNoKDI0MHxkPj4xOCwxMjh8ZD4+MTImNjMsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYil9ZnVuY3Rpb24gJGIoYSl7aWYoIWEpcmV0dXJuIGE7dmFyIGI9YTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goZCl7fXZhciBjPWIuc3BsaXQoIiwiKTtyZXR1cm4gYy5sZW5ndGg9PT0yJiZjWzBdPT09Y1sxXT9jWzBdOmF9CmZ1bmN0aW9uIGFjKGEsYixjKXtmdW5jdGlvbiBkKG4pe3ZhciBwPW4uc3BsaXQoIj0iKVswXTtpZihhLmluZGV4T2YocCk8MClyZXR1cm4gbjtpZihjIT09dm9pZCAwKXJldHVybiBwKyI9IitjfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4uc3BsaXQoIiYiKS5tYXAoZCkuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwIT09dm9pZCAwfSkuam9pbigiJiIpfXZhciBmPWIuaHJlZi5zcGxpdCgvWz8jXS8pWzBdLGc9Yi5zZWFyY2gsaD1iLmhhc2g7Z1swXT09PSI/IiYmKGc9Zy5zdWJzdHJpbmcoMSkpO2hbMF09PT0iIyImJihoPWguc3Vic3RyaW5nKDEpKTtnPWUoZyk7aD1lKGgpO2chPT0iIiYmKGc9Ij8iK2cpO2ghPT0iIiYmKGg9IiMiK2gpO3ZhciBsPSIiK2YrZytoO2xbbC5sZW5ndGgtMV09PT0iLyImJihsPWwuc3Vic3RyaW5nKDAsbC5sZW5ndGgtMSkpO3JldHVybiBsfQpmdW5jdGlvbiBiYyhhKXtmb3IodmFyIGI9MDtiPDM7KytiKXRyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvXCsvZywiICIpO2lmKGM9PT1hKWJyZWFrO2E9Y31jYXRjaChkKXtyZXR1cm4iIn1yZXR1cm4gYX1mdW5jdGlvbiBjYygpe3ZhciBhPUEsYjthOnt2YXIgYz1hLmNyeXB0b3x8YS5tc0NyeXB0bztpZihjJiZjLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoMjUpO2MuZ2V0UmFuZG9tVmFsdWVzKGQpO2I9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGQpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKTticmVhayBhfWNhdGNoKGUpe31iPXZvaWQgMH1yZXR1cm4gYn07LyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIGRjPWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLGVjO2Z1bmN0aW9uIGZjKCl7dmFyIGE9bnVsbDtpZighZGMpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPWRjLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYyl7fXJldHVybiBhfWZ1bmN0aW9uIGhjKCl7ZWM9PT12b2lkIDAmJihlYz1mYygpKTtyZXR1cm4gZWN9O3ZhciBpYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07aWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07ZnVuY3Rpb24gamMoYSl7dmFyIGI9YSxjPWhjKCksZD1jP2MuY3JlYXRlU2NyaXB0VVJMKGIpOmI7cmV0dXJuIG5ldyBpYyhkKX1mdW5jdGlvbiBrYyhhKXtpZihhIGluc3RhbmNlb2YgaWMpcmV0dXJuIGEuSDt0aHJvdyBFcnJvcigiIik7fTt2YXIgbGM9QWEoWyIiXSksbWM9emEoWyJceDAwIl0sWyJcXDAiXSksbmM9emEoWyJcbiJdLFsiXFxuIl0pLG9jPXphKFsiXHgwMCJdLFsiXFx1MDAwMCJdKTtmdW5jdGlvbiBwYyhhKXtyZXR1cm4gYS50b1N0cmluZygpLmluZGV4T2YoImAiKT09PS0xfXBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKGxjKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShtYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobmMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG9jKX0pO3ZhciBxYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07cWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07dmFyIHJjPWZ1bmN0aW9uKGEpe3RoaXMuSnM9YX07ZnVuY3Rpb24gc2MoYSl7cmV0dXJuIG5ldyByYyhmdW5jdGlvbihiKXtyZXR1cm4gYi5zdWJzdHIoMCxhLmxlbmd0aCsxKS50b0xvd2VyQ2FzZSgpPT09YSsiOiJ9KX12YXIgdGM9W3NjKCJkYXRhIiksc2MoImh0dHAiKSxzYygiaHR0cHMiKSxzYygibWFpbHRvIiksc2MoImZ0cCIpLG5ldyByYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO2Z1bmN0aW9uIHVjKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD90YzpiO2lmKGEgaW5zdGFuY2VvZiBxYylyZXR1cm4gYTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkIGluc3RhbmNlb2YgcmMmJmQuSnMoYSkpcmV0dXJuIG5ldyBxYyhhKX19dmFyIHZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7CmZ1bmN0aW9uIHdjKGEpe3ZhciBiO2lmKGEgaW5zdGFuY2VvZiBxYylpZihhIGluc3RhbmNlb2YgcWMpYj1hLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7ZWxzZSBiPXZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGJ9O2Z1bmN0aW9uIHhjKGEsYil7dmFyIGM9d2MoYik7YyE9PXZvaWQgMCYmKGEuYWN0aW9uPWMpfTtmdW5jdGlvbiB5YyhhLGIpe3Rocm93IEVycm9yKGI9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIithKyIhIjpiKTt9O3ZhciB6Yz1mdW5jdGlvbihhKXt0aGlzLkg9YX07emMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07dmFyIEJjPWZ1bmN0aW9uKCl7dGhpcy5IPUFjWzBdLnRvTG93ZXJDYXNlKCl9O0JjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2Z1bmN0aW9uIENjKGEsYil7dmFyIGM9W25ldyBCY107aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCIiKTt2YXIgZD1jLm1hcChmdW5jdGlvbihmKXt2YXIgZztpZihmIGluc3RhbmNlb2YgQmMpZz1mLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGd9KSxlPWIudG9Mb3dlckNhc2UoKTtpZihkLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBlLmluZGV4T2YoZikhPT0wfSkpdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiJytiKyciIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYWxsb3dlZCBwcmVmaXhlcy4nKTthLnNldEF0dHJpYnV0ZShiLCJ0cnVlIil9O3ZhciBEYz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHR5cGVvZiBiIT09InN0cmluZyJ8fGIubGVuZ3RoIT0xPy0xOmEuaW5kZXhPZihiLDApO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGMgaW4gYSYmYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9OyJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIikuY29uY2F0KFsiQlVUVE9OIiwKIklOUFVUIl0pO2Z1bmN0aW9uIEVjKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphfTt2YXIgQT13aW5kb3csRmM9W10sR2M9d2luZG93Lmhpc3RvcnksQj1kb2N1bWVudCxIYz1uYXZpZ2F0b3I7ZnVuY3Rpb24gSWMoKXt2YXIgYTt0cnl7YT1IYy5zZXJ2aWNlV29ya2VyfWNhdGNoKGIpe3JldHVybn1yZXR1cm4gYX12YXIgSmM9Qi5jdXJyZW50U2NyaXB0LEtjPUpjJiZKYy5zcmM7ZnVuY3Rpb24gTWMoYSxiKXt2YXIgYz1BLGQ9Y1thXTtjW2FdPWQ9PT12b2lkIDA/YjpkO3JldHVybiBjW2FdfWZ1bmN0aW9uIE5jKGEpe3JldHVybihIYy51c2VyQWdlbnR8fCIiKS5pbmRleE9mKGEpIT09LTF9ZnVuY3Rpb24gT2MoKXtyZXR1cm4gTmMoIkZpcmVmb3giKXx8TmMoIkZ4aU9TIil9ZnVuY3Rpb24gUGMoKXtyZXR1cm4oTmMoIkdTQSIpfHxOYygiR29vZ2xlQXBwIikpJiYoTmMoImlQaG9uZSIpfHxOYygiaVBhZCIpKX1mdW5jdGlvbiBRYygpe3JldHVybiBOYygiRWRnLyIpfHxOYygiRWRnQS8iKXx8TmMoIkVkZ2lPUy8iKX0KdmFyIFJjPXthc3luYzoxLG5vbmNlOjEsb25lcnJvcjoxLG9ubG9hZDoxLHNyYzoxLHR5cGU6MX0sU2M9e2hlaWdodDoxLG9ubG9hZDoxLHNyYzoxLHN0eWxlOjEsd2lkdGg6MX07ZnVuY3Rpb24gVGMoYSxiLGMpe2ImJkdiKGIsZnVuY3Rpb24oZCxlKXtkPWQudG9Mb3dlckNhc2UoKTtjLmhhc093blByb3BlcnR5KGQpfHxhLnNldEF0dHJpYnV0ZShkLGUpfSl9CmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7dmFyIGY9Qi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtUYyhmLGQsUmMpO2YudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtmLmFzeW5jPWQmJmQuYXN5bmM9PT0hMT8hMTohMDt2YXIgZztnPWpjKEVjKGEpKTtmLnNyYz1rYyhnKTt2YXIgaCxsPWYub3duZXJEb2N1bWVudDtsPWw9PT12b2lkIDA/ZG9jdW1lbnQ6bDt2YXIgbixwLHE9KHA9KG49bCkucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOnAuY2FsbChuLCJzY3JpcHRbbm9uY2VdIik7KGg9cT09bnVsbD8iIjpxLm5vbmNlfHxxLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiIpJiZmLnNldEF0dHJpYnV0ZSgibm9uY2UiLGgpO2ImJihmLm9ubG9hZD1iKTtjJiYoZi5vbmVycm9yPWMpO2U/ZS5hcHBlbmRDaGlsZChmKTpWYy5CcyhmKTtyZXR1cm4gZn0KZnVuY3Rpb24gV2MoKXtpZihLYyl7dmFyIGE9S2MudG9Mb3dlckNhc2UoKTtpZihhLmluZGV4T2YoImh0dHBzOi8vIik9PT0wKXJldHVybiAyO2lmKGEuaW5kZXhPZigiaHR0cDovLyIpPT09MClyZXR1cm4gM31yZXR1cm4gMX1mdW5jdGlvbiBYYyhhLGIsYyxkLGUsZil7Zj1mPT09dm9pZCAwPyEwOmY7dmFyIGc9ZSxoPSExO2d8fChnPUIuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksaD0hMCk7VGMoZyxjLFNjKTtkJiZHYihkLGZ1bmN0aW9uKG4scCl7Zy5kYXRhc2V0W25dPXB9KTtmJiYoZy5oZWlnaHQ9IjAiLGcud2lkdGg9IjAiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTthIT09dm9pZCAwJiYoZy5zcmM9YSk7aWYoaCl7dmFyIGw9Qi5ib2R5JiZCLmJvZHkubGFzdENoaWxkfHxCLmJvZHl8fEIuaGVhZDtsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsbCl9YiYmKGcub25sb2FkPWIpO3JldHVybiBnfQpmdW5jdGlvbiBaYygpe3JldHVybiBWYy5Fci5hcHBseShWYyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfWZ1bmN0aW9uICRjKGEsYixjLGQpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhIWQpfWZ1bmN0aW9uIGFkKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfWZ1bmN0aW9uIGJkKGEpe0Euc2V0VGltZW91dChhLDApfWZ1bmN0aW9uIGNkKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQsZT0oZD1BKS5zZXRJbnRlcnZhbC5hcHBseShkLFthLGJdLmNvbmNhdCh3KGMpKSk7RmMucHVzaChlKTtyZXR1cm4gZX0KZnVuY3Rpb24gZGQoYSl7dmFyIGI9QTt5YihiLnF1ZXVlTWljcm90YXNrKT9iLnF1ZXVlTWljcm90YXNrKGEpOnliKGIuUHJvbWlzZSkmJmIuUHJvbWlzZS5yZXNvbHZlP2IuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe2EoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk6YmQoYSl9ZnVuY3Rpb24gZWQoYSxiKXtyZXR1cm4gYSYmYiYmYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXNbYl0/YS5hdHRyaWJ1dGVzW2JdLnZhbHVlOm51bGx9ZnVuY3Rpb24gZmQoYSl7dmFyIGI9YS5pbm5lclRleHR8fGEudGV4dENvbnRlbnR8fCIiO2ImJmIhPT0iICImJihiPWIucmVwbGFjZSgvXltcc1x4YTBdKy9nLCIiKSxiPWIucmVwbGFjZSgvW1xzXHhhMF0rJC9nLCIiKSk7YiYmKGI9Yi5yZXBsYWNlKC8oXHhhMCt8XHN7Mix9fFxufFxyXHQpL2csIiAiKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGdkKGEpe3ZhciBiPUIuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLGQsZT1FYygiQTxkaXY+IithKyI8L2Rpdj4iKSxmPWhjKCksZz1mP2YuY3JlYXRlSFRNTChlKTplO2Q9bmV3IHpjKGcpO2lmKGMubm9kZVR5cGU9PT0xJiYvXihzY3JpcHR8c3R5bGUpJC9pLnRlc3QoYy50YWdOYW1lKSl0aHJvdyBFcnJvcigiIik7dmFyIGg7aWYoZCBpbnN0YW5jZW9mIHpjKWg9ZC5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2MuaW5uZXJIVE1MPWg7Yj1iLmxhc3RDaGlsZDtmb3IodmFyIGw9W107YiYmYi5maXJzdENoaWxkOylsLnB1c2goYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpKTtyZXR1cm4gbH0KZnVuY3Rpb24gaGQoYSxiLGMpe2M9Y3x8MTAwO2Zvcih2YXIgZD17fSxlPTA7ZTxiLmxlbmd0aDtlKyspZFtiW2VdXT0hMDtmb3IodmFyIGY9YSxnPTA7ZiYmZzw9YztnKyspe2lmKGRbU3RyaW5nKGYudGFnTmFtZSkudG9Mb3dlckNhc2UoKV0pcmV0dXJuIGY7Zj1mLnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWQoYSxiLGMpe3ZhciBkO3RyeXtkPUhjLnNlbmRCZWFjb24mJkhjLnNlbmRCZWFjb24oYSl9Y2F0Y2goZSl7c2IoIlRBR0dJTkciLDE1KX1kP2I9PW51bGx8fGIoKTpaYyhhLGIsYyl9ZnVuY3Rpb24gamQoYSxiKXt0cnl7aWYoSGMuc2VuZEJlYWNvbiE9PXZvaWQgMClyZXR1cm4gSGMuc2VuZEJlYWNvbihhLGIpfWNhdGNoKGMpe3NiKCJUQUdHSU5HIiwxNSl9cmV0dXJuITF9ZnVuY3Rpb24ga2QoKXtyZXR1cm4gSGMuc2VuZEJlYWNvbiE9PXZvaWQgMH0KdmFyIGxkPXtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixrZWVwYWxpdmU6ITAsbWV0aG9kOiJQT1NUIixtb2RlOiJuby1jb3JzIixyZWRpcmVjdDoiZm9sbG93In07CmZ1bmN0aW9uIG1kKGEsYixjLGQsZSl7aWYobmQoKSl7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7YiYmKGYuYm9keT1iKTtjJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZyYmKGYuYXR0cmlidXRpb25SZXBvcnRpbmc9Yy5hdHRyaWJ1dGlvblJlcG9ydGluZyksYy5icm93c2luZ1RvcGljcyE9PXZvaWQgMCYmKGYuYnJvd3NpbmdUb3BpY3M9Yy5icm93c2luZ1RvcGljcyksYy5jcmVkZW50aWFscyYmKGYuY3JlZGVudGlhbHM9Yy5jcmVkZW50aWFscyksYy5rZWVwYWxpdmUhPT12b2lkIDAmJihmLmtlZXBhbGl2ZT1jLmtlZXBhbGl2ZSksYy5tZXRob2QmJihmLm1ldGhvZD1jLm1ldGhvZCksYy5tb2RlJiYoZi5tb2RlPWMubW9kZSkpO3RyeXt2YXIgZz1BLmZldGNoKGEsZik7aWYoZylyZXR1cm4gZy50aGVuKGZ1bmN0aW9uKGwpe2wmJihsLm9rfHxsLnN0YXR1cz09PTApP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PQpudWxsfHxlKCl9KSwhMH1jYXRjaChsKXt9fWlmKChjPT1udWxsPzA6Yy5RZyl8fChjPT1udWxsPzA6Yy5jcmVkZW50aWFscykmJmMuY3JlZGVudGlhbHMhPT0iaW5jbHVkZSIpcmV0dXJuIGU9PW51bGx8fGUoKSwhMTtpZihiKXt2YXIgaD1qZChhLGIpO2g/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKTtyZXR1cm4gaH1WYy53dChhLGQsZSk7cmV0dXJuITB9ZnVuY3Rpb24gbmQoKXtyZXR1cm4geWIoQS5mZXRjaCl9ZnVuY3Rpb24gb2QoYSxiKXt2YXIgYz1hW2JdO2MmJnR5cGVvZiBjLmFuaW1WYWw9PT0ic3RyaW5nIiYmKGM9Yy5hbmltVmFsKTtyZXR1cm4gY31mdW5jdGlvbiBwZCgpe3ZhciBhPUEucGVyZm9ybWFuY2U7aWYoYSYmeWIoYS5ub3cpKXJldHVybiBhLm5vdygpfQpmdW5jdGlvbiBxZCgpe3ZhciBhLGI9QS5wZXJmb3JtYW5jZTtpZihiJiZiLmdldEVudHJpZXNCeVR5cGUpdHJ5e3ZhciBjPWIuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpO2MmJmMubGVuZ3RoPjAmJihhPWNbMF0udHlwZSl9Y2F0Y2goZCl7cmV0dXJuImUifWlmKCFhKXJldHVybiJ1Ijtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJuIjtjYXNlICJiYWNrX2ZvcndhcmQiOnJldHVybiJoIjtjYXNlICJyZWxvYWQiOnJldHVybiJyIjtjYXNlICJwcmVyZW5kZXIiOnJldHVybiJwIjtkZWZhdWx0OnJldHVybiJ4In19ZnVuY3Rpb24gcmQoKXtyZXR1cm4gQS5wZXJmb3JtYW5jZXx8dm9pZCAwfWZ1bmN0aW9uIHNkKCl7dmFyIGE9QS53ZWJQaXhlbHNNYW5hZ2VyO3JldHVybiBhP2EuY3JlYXRlU2hvcGlmeUV4dGVuZCE9PXZvaWQgMDohMX0KdmFyIFZjPXtFcjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgSW1hZ2UoMSwxKTtUYyhlLGQse30pO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZS5vbmxvYWQ9bnVsbDtiJiZiKCl9O2Uub25lcnJvcj1mdW5jdGlvbigpe2Uub25lcnJvcj1udWxsO2MmJmMoKX07ZS5zcmM9YTtyZXR1cm4gZX0sQnM6ZnVuY3Rpb24oYSl7dmFyIGI9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF18fEIuYm9keXx8Qi5oZWFkO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX0sd3Q6aWR9O2Z1bmN0aW9uIHRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdWQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT09PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB3ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3JldHVybiBTdHJpbmcoYykuaW5kZXhPZihTdHJpbmcoZCkpPi0xfWZ1bmN0aW9uIHhkKGEsYil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYSkpLGQ9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYikpO3JldHVybiBjLnN1YnN0cmluZygwLGQubGVuZ3RoKT09PWR9CmZ1bmN0aW9uIHlkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7c3dpdGNoKGMpe2Nhc2UgInBhZ2VMb2NhdGlvbiI6dmFyIGU9QS5sb2NhdGlvbi5ocmVmO2QgaW5zdGFuY2VvZiBrYiYmZC5nZXQoInN0cmlwUHJvdG9jb2wiKSYmKGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSk7cmV0dXJuIGV9fTsvKgogalF1ZXJ5IChjKSAyMDA1LCAyMDEyIGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIGpxdWVyeS5vcmcvbGljZW5zZS4KKi8KdmFyIHpkPS9cW29iamVjdCAoQm9vbGVhbnxOdW1iZXJ8U3RyaW5nfEZ1bmN0aW9ufEFycmF5fERhdGV8UmVnRXhwKVxdLyxBZD1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBTdHJpbmcoYSk7dmFyIGI9emQuZXhlYyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KGEpKSk7cmV0dXJuIGI/YlsxXS50b0xvd2VyQ2FzZSgpOiJvYmplY3QifSxCZD1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoT2JqZWN0KGEpLGIpfSxDZD1mdW5jdGlvbihhKXtpZighYXx8QWQoYSkhPSJvYmplY3QifHxhLm5vZGVUeXBlfHxhPT1hLndpbmRvdylyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIUJkKGEsImNvbnN0cnVjdG9yIikmJiFCZChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWZvcih2YXIgYiBpbiBhKTtyZXR1cm4gYj09PXZvaWQgMHx8CkJkKGEsYil9LEVkPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8KEFkKGEpPT0iYXJyYXkiP1tdOnt9KSxkO2ZvcihkIGluIGEpaWYoQmQoYSxkKSl7dmFyIGU9YVtkXTtBZChlKT09ImFycmF5Ij8oQWQoY1tkXSkhPSJhcnJheSImJihjW2RdPVtdKSxjW2RdPUVkKGUsY1tkXSkpOkNkKGUpPyhDZChjW2RdKXx8KGNbZF09e30pLGNbZF09RWQoZSxjW2RdKSk6Y1tkXT1lfXJldHVybiBjfTtmdW5jdGlvbiBGZChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmYT49MCYmaXNGaW5pdGUoYSkmJmElMT09PTB8fHR5cGVvZiBhPT09InN0cmluZyImJmFbMF0hPT0iLSImJmE9PT0iIitwYXJzZUludChhKX07dmFyIEdkPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO3RoaXMubGE9bmV3IFVhO3RoaXMudmFsdWVzPVtdO3RoaXMuTmE9ITE7Zm9yKHZhciBiIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShiKSYmKEZkKGIpP3RoaXMudmFsdWVzW051bWJlcihiKV09YVtOdW1iZXIoYildOnRoaXMubGEuc2V0KGIsYVtiXSkpfTtrPUdkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe2lmKGEmJmEuaW5kZXhPZih0aGlzKT49MClyZXR1cm4iIjtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy52YWx1ZXMubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy52YWx1ZXNbY107ZD09PW51bGx8fGQ9PT12b2lkIDA/Yi5wdXNoKCIiKTpkIGluc3RhbmNlb2YgR2Q/KGE9YXx8W10sYS5wdXNoKHRoaXMpLGIucHVzaChkLnRvU3RyaW5nKGEpKSxhLnBvcCgpKTpiLnB1c2goU3RyaW5nKGQpKX1yZXR1cm4gYi5qb2luKCIsIil9OwprLnNldD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLk5hKWlmKGE9PT0ibGVuZ3RoIil7aWYoIUZkKGIpKXRocm93IGNiKEVycm9yKCJSYW5nZUVycm9yOiBMZW5ndGggcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGludGVnZXIuIikpO3RoaXMudmFsdWVzLmxlbmd0aD1OdW1iZXIoYil9ZWxzZSBGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldPWI6dGhpcy5sYS5zZXQoYSxiKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0ibGVuZ3RoIj90aGlzLmxlbmd0aCgpOkZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5sYS5nZXQoYSl9O2subGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aH07ay5GYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLkZhKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFN0cmluZyhiKSk7cmV0dXJuIGF9OwprLmhjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuaGMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2godGhpcy52YWx1ZXNbYl0pO3JldHVybiBhfTtrLmZjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuZmMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goW1N0cmluZyhiKSx0aGlzLnZhbHVlc1tiXV0pO3JldHVybiBhfTtrLnJlbW92ZT1mdW5jdGlvbihhKXtGZChhKT9kZWxldGUgdGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucG9wKCl9O2sucHVzaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wdXNoLmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMuc2hpZnQoKX07Cmsuc3BsaWNlPWZ1bmN0aW9uKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpO3JldHVybiBiPT09dm9pZCAwJiZjLmxlbmd0aD09PTA/bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZShhKSk6bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZS5hcHBseSh0aGlzLnZhbHVlcyxbYSxifHwwXS5jb25jYXQodyhjKSkpKX07ay51bnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnVuc2hpZnQuYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIEZkKGEpJiZ0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShhKXx8dGhpcy5sYS5oYXMoYSl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwO09iamVjdC5mcmVlemUodGhpcy52YWx1ZXMpfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9OwpmdW5jdGlvbiBIZChhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGgoKTtjKyspYS5oYXMoYykmJihiW2NdPWEuZ2V0KGMpKTtyZXR1cm4gYn07dmFyIElkPWZ1bmN0aW9uKGEsYil7dGhpcy5mdW5jdGlvbk5hbWU9YTt0aGlzLmllPWI7dGhpcy5sYT1uZXcgVWE7dGhpcy5OYT0hMX07az1JZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldEtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdkKHRoaXMuRmEoKSl9O2suaW52b2tlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmllLmNhbGwuYXBwbHkodGhpcy5pZSxbbmV3IEpkKHRoaXMsYSldLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5hcHBseT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmllLmFwcGx5KG5ldyBKZCh0aGlzLGEpLGIpfTtrLk5jPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTt0cnl7cmV0dXJuIHRoaXMuaW52b2tlLmFwcGx5KHRoaXMsW2FdLmNvbmNhdCh3KGIpKSl9Y2F0Y2goYyl7fX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTt2YXIgS2Q9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoS2QsSWQpO3ZhciBMZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShMZCxJZCk7dmFyIEpkPWZ1bmN0aW9uKGEsYil7dGhpcy5pZT1hO3RoaXMuVD1ifTsKSmQucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuVDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9mYihiLGEpOmF9O0pkLnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWUuZ2V0TmFtZSgpfTtKZC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ULmplKCl9O3ZhciBNZD1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBNYXB9O01kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm1hcC5zZXQoYSxiKX07TWQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuZ2V0KGEpfTt2YXIgTmQ9ZnVuY3Rpb24oKXt0aGlzLmtleXM9W107dGhpcy52YWx1ZXM9W119O05kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmtleXMucHVzaChhKTt0aGlzLnZhbHVlcy5wdXNoKGIpfTtOZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMua2V5cy5pbmRleE9mKGEpO2lmKGI+LTEpcmV0dXJuIHRoaXMudmFsdWVzW2JdfTtmdW5jdGlvbiBPZCgpe3RyeXtyZXR1cm4gTWFwP25ldyBNZDpuZXcgTmR9Y2F0Y2goYSl7cmV0dXJuIG5ldyBOZH19O3ZhciBQZD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUGQpcmV0dXJuIGE7dmFyIGI7YTppZihhPT12b2lkIDB8fEFycmF5LmlzQXJyYXkoYSl8fENkKGEpKWI9ITA7ZWxzZXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJmdW5jdGlvbiI6Yj0hMDticmVhayBhfWI9ITF9aWYoYil0aHJvdyBFcnJvcigiVHlwZSBvZiBnaXZlbiB2YWx1ZSBoYXMgYW4gZXF1aXZhbGVudCBQaXhpZSB0eXBlLiIpO3RoaXMudmFsdWU9YX07UGQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O1BkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy52YWx1ZSl9O3ZhciBTZD1mdW5jdGlvbihhKXt0aGlzLnByb21pc2U9YTt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhO3RoaXMubGEuc2V0KCJ0aGVuIixSZCh0aGlzKSk7dGhpcy5sYS5zZXQoImNhdGNoIixSZCh0aGlzLCEwKSk7dGhpcy5sYS5zZXQoImZpbmFsbHkiLFJkKHRoaXMsITEsITApKX07az1TZC5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9Owp2YXIgUmQ9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oZCxlKXtiJiYoZT1kLGQ9dm9pZCAwKTtjJiYoZT1kKTtkIGluc3RhbmNlb2YgS2R8fChkPXZvaWQgMCk7ZSBpbnN0YW5jZW9mIEtkfHwoZT12b2lkIDApO3ZhciBmPXRoaXMuVC53YigpLGc9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gYz8obC5pbnZva2UoZiksYS5wcm9taXNlKTpsLmludm9rZShmLG4pfWNhdGNoKHApe3JldHVybiBQcm9taXNlLnJlamVjdChwIGluc3RhbmNlb2YgRXJyb3I/bmV3IFBkKHApOlN0cmluZyhwKSl9fX0saD1hLnByb21pc2UudGhlbihkJiZnKGQpLGUmJmcoZSkpO3JldHVybiBuZXcgU2QoaCl9KX07U2QucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07U2QucHJvdG90eXBlLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIFRkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGw9Zy5GYSgpLG49MDtuPGwubGVuZ3RoO24rKyloW2xbbl1dPWYoZy5nZXQobFtuXSkpfSxmPWZ1bmN0aW9uKGcpe2lmKGc9PT1udWxsfHxnPT09dm9pZCAwKXJldHVybiBnO3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoZyBpbnN0YW5jZW9mIEdkKXt2YXIgbD1bXTtkLnNldChnLGwpO2Zvcih2YXIgbj1nLkZhKCkscD0wO3A8bi5sZW5ndGg7cCsrKWxbbltwXV09ZihnLmdldChuW3BdKSk7cmV0dXJuIGx9aWYoZyBpbnN0YW5jZW9mIFNkKXJldHVybiBnLnByb21pc2UudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gVGQodSxiLDEpfSxmdW5jdGlvbih1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoVGQodSxiLDEpKX0pO2lmKGcgaW5zdGFuY2VvZiBrYil7dmFyIHE9e307ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9aWYoZyBpbnN0YW5jZW9mIEtkKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgdT0KW10sdj0wO3Y8YXJndW1lbnRzLmxlbmd0aDt2KyspdVt2XT1VZChhcmd1bWVudHNbdl0sYixjKTt2YXIgeD1uZXcgaGIoYj9iLmplKCk6bmV3IFdhKTtiJiZ4LnVlKGIueGIoKSk7cmV0dXJuIGYoZy5hcHBseSh4LHUpKX07ZC5zZXQoZyxyKTtlKGcscik7cmV0dXJuIHJ9dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2Nhc2UgMzp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGcgaW5zdGFuY2VvZiBQZCYmdClyZXR1cm4gZy5nZXRWYWx1ZSgpO3N3aXRjaCh0eXBlb2YgZyl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgInVuZGVmaW5lZCI6cmV0dXJuIGc7Y2FzZSAib2JqZWN0IjppZihnPT09Cm51bGwpcmV0dXJuIG51bGx9fTtyZXR1cm4gZihhKX0KZnVuY3Rpb24gVWQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbCBpbiBnKWcuaGFzT3duUHJvcGVydHkobCkmJmguc2V0KGwsZihnW2xdKSl9LGY9ZnVuY3Rpb24oZyl7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihBcnJheS5pc0FycmF5KGcpfHxIYihnKSl7dmFyIGw9bmV3IEdkO2Quc2V0KGcsbCk7Zm9yKHZhciBuIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShuKSYmbC5zZXQobixmKGdbbl0pKTtyZXR1cm4gbH1pZihDZChnKSl7dmFyIHA9bmV3IGtiO2Quc2V0KGcscCk7ZShnLHApO3JldHVybiBwfWlmKHR5cGVvZiBnPT09ImZ1bmN0aW9uIil7dmFyIHE9bmV3IEtkKCIiLGZ1bmN0aW9uKCl7Zm9yKHZhciB1PU9hLmFwcGx5KDAsYXJndW1lbnRzKSx2PVtdLHg9MDt4PHUubGVuZ3RoO3grKyl2W3hdPVRkKHRoaXMuZXZhbHVhdGUodVt4XSksYixjKTtyZXR1cm4gZih0aGlzLlQuUGooKShnLGcsdikpfSk7ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9dmFyIHI9dHlwZW9mIGc7aWYoZz09PW51bGx8fHI9PT0ic3RyaW5nInx8cj09PSJudW1iZXIifHxyPT09ImJvb2xlYW4iKXJldHVybiBnO3ZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztkZWZhdWx0On1pZihnIT09dm9pZCAwJiZ0KXJldHVybiBuZXcgUGQoZyl9O3JldHVybiBmKGEpfTt2YXIgVmQ9e3N1cHBvcnRlZE1ldGhvZHM6ImNvbmNhdCBldmVyeSBmaWx0ZXIgZm9yRWFjaCBoYXNPd25Qcm9wZXJ0eSBpbmRleE9mIGpvaW4gbGFzdEluZGV4T2YgbWFwIHBvcCBwdXNoIHJlZHVjZSByZWR1Y2VSaWdodCByZXZlcnNlIHNoaWZ0IHNsaWNlIHNvbWUgc29ydCBzcGxpY2UgdW5zaGlmdCB0b1N0cmluZyIuc3BsaXQoIiAiKSxjb25jYXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMubGVuZ3RoKCk7YysrKWIucHVzaCh0aGlzLmdldChjKSk7Zm9yKHZhciBkPTE7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKylpZihhcmd1bWVudHNbZF1pbnN0YW5jZW9mIEdkKWZvcih2YXIgZT1hcmd1bWVudHNbZF0sZj0wO2Y8ZS5sZW5ndGgoKTtmKyspYi5wdXNoKGUuZ2V0KGYpKTtlbHNlIGIucHVzaChhcmd1bWVudHNbZF0pO3JldHVybiBuZXcgR2QoYil9LGV2ZXJ5OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmCmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJiFiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITE7cmV0dXJuITB9LGZpbHRlcjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmYi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpJiZkLnB1c2godGhpcy5nZXQoZSkpO3JldHVybiBuZXcgR2QoZCl9LGZvckVhY2g6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKXRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcyl9LGhhc093blByb3BlcnR5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaGFzKGIpfSxpbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9Yz09PXZvaWQgMD8wOk51bWJlcihjKTtlPDAmJihlPU1hdGgubWF4KGQrZSwwKSk7Zm9yKHZhciBmPQplO2Y8ZDtmKyspaWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sam9pbjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDx0aGlzLmxlbmd0aCgpO2QrKyljLnB1c2godGhpcy5nZXQoZCkpO3JldHVybiBjLmpvaW4oYil9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9ZC0xO2MhPT12b2lkIDAmJihlPWM8MD9kK2M6TWF0aC5taW4oYyxlKSk7Zm9yKHZhciBmPWU7Zj49MDtmLS0paWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sbWFwOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiYoZFtlXT1iLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykpO3JldHVybiBuZXcgR2QoZCl9LHBvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvcCgpfSxwdXNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2guYXBwbHkodGhpcywKdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX0scmVkdWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj0wO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7Zm9yKHZhciBnPTA7ZzxkO2crKylpZih0aGlzLmhhcyhnKSl7ZT10aGlzLmdldChnKTtmPWcrMTticmVha31pZihnPT09ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aDxkO2grKyl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZWR1Y2VSaWdodDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9ZC0xO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTsKZm9yKHZhciBnPTE7Zzw9ZDtnKyspaWYodGhpcy5oYXMoZC1nKSl7ZT10aGlzLmdldChkLWcpO2Y9ZC0oZysxKTticmVha31pZihnPmQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aD49MDtoLS0pdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmV2ZXJzZTpmdW5jdGlvbigpe2Zvcih2YXIgYT1IZCh0aGlzKSxiPWEubGVuZ3RoLTEsYz0wO2I+PTA7Yi0tLGMrKylhLmhhc093blByb3BlcnR5KGIpP3RoaXMuc2V0KGMsYVtiXSk6dGhpcy5yZW1vdmUoYyk7cmV0dXJuIHRoaXN9LHNoaWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hpZnQoKX0sc2xpY2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCk7Yj09PXZvaWQgMCYmKGI9MCk7Yj1iPDA/TWF0aC5tYXgoZCtiLDApOk1hdGgubWluKGIsZCk7Yz1jPT09CnZvaWQgMD9kOmM8MD9NYXRoLm1heChkK2MsMCk6TWF0aC5taW4oYyxkKTtjPU1hdGgubWF4KGIsYyk7Zm9yKHZhciBlPVtdLGY9YjtmPGM7ZisrKWUucHVzaCh0aGlzLmdldChmKSk7cmV0dXJuIG5ldyBHZChlKX0sc29tZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMDtyZXR1cm4hMX0sc29ydDpmdW5jdGlvbihhLGIpe3ZhciBjPUhkKHRoaXMpO2I9PT12b2lkIDA/Yy5zb3J0KCk6Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIE51bWJlcihiLmludm9rZShhLGUsZikpfSk7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspYy5oYXNPd25Qcm9wZXJ0eShkKT90aGlzLnNldChkLGNbZF0pOnRoaXMucmVtb3ZlKGQpO3JldHVybiB0aGlzfSxzcGxpY2U6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLnNwbGljZS5hcHBseSh0aGlzLApbYixjXS5jb25jYXQodyhPYS5hcHBseSgzLGFyZ3VtZW50cykpKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdW5zaGlmdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy51bnNoaWZ0LmFwcGx5KHRoaXMsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX19O3ZhciBXZD17Y2hhckF0OjEsY29uY2F0OjEsaW5kZXhPZjoxLGxhc3RJbmRleE9mOjEsbWF0Y2g6MSxyZXBsYWNlOjEsc2VhcmNoOjEsc2xpY2U6MSxzcGxpdDoxLHN1YnN0cmluZzoxLHRvTG93ZXJDYXNlOjEsdG9Mb2NhbGVMb3dlckNhc2U6MSx0b1N0cmluZzoxLHRvVXBwZXJDYXNlOjEsdG9Mb2NhbGVVcHBlckNhc2U6MSx0cmltOjF9LFhkPW5ldyBUYSgiYnJlYWsiKSxZZD1uZXcgVGEoImNvbnRpbnVlIik7ZnVuY3Rpb24gWmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSt0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gQXBwbHkgaW5zdHJ1Y3Rpb24uIik7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3QgcmVhZCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7dmFyIGc9dHlwZW9mIGQ9PT0ibnVtYmVyIjtpZih0eXBlb2YgZD09PSJib29sZWFuInx8Zyl7aWYoZT09PSJ0b1N0cmluZyIpe2lmKGcmJmYubGVuZ3RoKCkpe3ZhciBoPVRkKGYuZ2V0KDApKTt0cnl7cmV0dXJuIGQudG9TdHJpbmcoaCl9Y2F0Y2godSl7fX1yZXR1cm4gZC50b1N0cmluZygpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZCsiLiIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uLiIpKTt9aWYodHlwZW9mIGQ9PT0KInN0cmluZyIpe2lmKFdkLmhhc093blByb3BlcnR5KGUpKXt2YXIgbD1UZChmLHZvaWQgMCwxKTtyZXR1cm4gVWQoZFtlXS5hcHBseShkLGwpLHRoaXMuVCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGQgaW5zdGFuY2VvZiBHZCl7aWYoZC5oYXMoZSkpe3ZhciBuPWQuZ2V0KFN0cmluZyhlKSk7aWYobiBpbnN0YW5jZW9mIEtkKXt2YXIgcD1IZChmKTtyZXR1cm4gbi5hcHBseSh0aGlzLlQscCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKFZkLnN1cHBvcnRlZE1ldGhvZHMuaW5kZXhPZihlKT49MCl7dmFyIHE9SGQoZik7cmV0dXJuIFZkW2VdLmNhbGwuYXBwbHkoVmRbZV0sW2QsdGhpcy5UXS5jb25jYXQodyhxKSkpfX1pZihkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkKXtpZihkLmhhcyhlKSl7dmFyIHI9ZC5nZXQoZSk7CmlmKHIgaW5zdGFuY2VvZiBLZCl7dmFyIHQ9SGQoZik7cmV0dXJuIHIuYXBwbHkodGhpcy5ULHQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihlPT09InRvU3RyaW5nIilyZXR1cm4gZCBpbnN0YW5jZW9mIEtkP2QuZ2V0TmFtZSgpOmQudG9TdHJpbmcoKTtpZihlPT09Imhhc093blByb3BlcnR5IilyZXR1cm4gZC5oYXMoZi5nZXQoMCkpfWlmKGQgaW5zdGFuY2VvZiBQZCYmZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQudG9TdHJpbmcoKTt0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBPYmplY3QgaGFzIG5vICciK2UrIicgcHJvcGVydHkuIikpO30KZnVuY3Rpb24gYmUoYSxiKXthPXRoaXMuZXZhbHVhdGUoYSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgbmFtZSBnaXZlbiBmb3IgYXNzaWdubWVudC4iKTt2YXIgYz10aGlzLlQ7aWYoIWMuaGFzKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFzc2lnbiB0byB1bmRlZmluZWQgdmFsdWUgIitiKTt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2Muc2V0KGEsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoKXt2YXIgYT1PYS5hcHBseSgwLGFyZ3VtZW50cyksYj10aGlzLlQud2IoKSxjPWViKGIsYSk7aWYoYyBpbnN0YW5jZW9mIFRhKXJldHVybiBjfWZ1bmN0aW9uIGRlKCl7cmV0dXJuIFhkfWZ1bmN0aW9uIGVlKGEpe2Zvcih2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiW2NdKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9fQpmdW5jdGlvbiBmZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPWFyZ3VtZW50c1tiXTtpZih0eXBlb2YgYz09PSJzdHJpbmciKXt2YXIgZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLlFoKGMsZCl9fX1mdW5jdGlvbiBnZSgpe3JldHVybiBZZH1mdW5jdGlvbiBoZShhLGIpe3JldHVybiBuZXcgVGEoYSx0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBpZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2Q9bmV3IEdkO2Zvcih2YXIgZT10aGlzLmV2YWx1YXRlKGIpLGY9MDtmPGUubGVuZ3RoO2YrKylkLnB1c2goZVtmXSk7dmFyIGc9WzUxLGEsZF0uY29uY2F0KHcoYykpO3RoaXMuVC5hZGQoYSx0aGlzLmV2YWx1YXRlKGcpKX1mdW5jdGlvbiBqZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpL3RoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGtlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYiksZT1jIGluc3RhbmNlb2YgUGQsZj1kIGluc3RhbmNlb2YgUGQ7cmV0dXJuIGV8fGY/ZSYmZj9jLmdldFZhbHVlKCk9PT1kLmdldFZhbHVlKCk6ITE6Yz09ZH1mdW5jdGlvbiBsZSgpe2Zvcih2YXIgYSxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylhPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTtyZXR1cm4gYX1mdW5jdGlvbiBtZShhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGIoKTtlKyspe3ZhciBmPWEoYyhlKSksZz1lYihmLGQpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ319fQpmdW5jdGlvbiBuZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZil7cmV0dXJuIGZ9LGMpO2lmKGIgaW5zdGFuY2VvZiBrYnx8YiBpbnN0YW5jZW9mIFNkfHxiIGluc3RhbmNlb2YgR2R8fGIgaW5zdGFuY2VvZiBLZCl7dmFyIGQ9Yi5GYSgpLGU9ZC5sZW5ndGg7cmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gZX0sZnVuY3Rpb24oZil7cmV0dXJuIGRbZl19LGMpfX1mdW5jdGlvbiBvZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiBwZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHJlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHRlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gdWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9CmZ1bmN0aW9uIHNlKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihkKXtyZXR1cm4gYltkXX0sYyk7aWYoYiBpbnN0YW5jZW9mIEdkKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RoKCl9LGZ1bmN0aW9uKGQpe3JldHVybiBiLmdldChkKX0sYyk7dGhyb3cgY2IoRXJyb3IoIlRoZSB2YWx1ZSBpcyBub3QgaXRlcmFibGUuIikpO30KZnVuY3Rpb24gdmUoYSxiLGMsZCl7ZnVuY3Rpb24gZShxLHIpe2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGgoKTt0Kyspe3ZhciB1PWYuZ2V0KHQpO3IuYWRkKHUscS5nZXQodSkpfX12YXIgZj10aGlzLmV2YWx1YXRlKGEpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiVHlwZUVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBGb3JMZXQgaW5zdHJ1Y3Rpb24uIik7dmFyIGc9dGhpcy5ULGg9dGhpcy5ldmFsdWF0ZShkKSxsPWcud2IoKTtmb3IoZShnLGwpO2ZiKGwsYik7KXt2YXIgbj1lYihsLGgpO2lmKG4gaW5zdGFuY2VvZiBUYSl7aWYobi50eXBlPT09ImJyZWFrIilicmVhaztpZihuLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gbn12YXIgcD1nLndiKCk7ZShsLHApO2ZiKHAsYyk7bD1wfX0KZnVuY3Rpb24gd2UoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD10aGlzLlQsZT10aGlzLmV2YWx1YXRlKGIpO2lmKCEoZSBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IG5vbi1MaXN0IHZhbHVlIGdpdmVuIGZvciBGbiBhcmd1bWVudCBuYW1lcy4iKTtyZXR1cm4gbmV3IEtkKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz1kLndiKCk7Zy54YigpPT09dm9pZCAwJiZnLnVlKHRoaXMuVC54YigpKTtmb3IodmFyIGg9W10sbD0wO2w8Zi5sZW5ndGg7bCsrKXt2YXIgbj10aGlzLmV2YWx1YXRlKGZbbF0pO2hbbF09bn1mb3IodmFyIHA9ZS5nZXQoImxlbmd0aCIpLHE9MDtxPHA7cSsrKXE8aC5sZW5ndGg/Zy5hZGQoZS5nZXQocSksaFtxXSk6Zy5hZGQoZS5nZXQocSksdm9pZCAwKTtnLmFkZCgiYXJndW1lbnRzIixuZXcgR2QoaCkpO3ZhciByPWViKGcsYyk7aWYociBpbnN0YW5jZW9mIFRhKXJldHVybiByLnR5cGU9PT0KInJldHVybiI/ci5kYXRhOnJ9fSgpKX1mdW5jdGlvbiB4ZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9dGhpcy5UO2lmKHllJiYhYy5oYXMoYikpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGIrIiBpcyBub3QgZGVmaW5lZC4iKTtyZXR1cm4gYy5nZXQoYil9CmZ1bmN0aW9uIHplKGEsYil7dmFyIGMsZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKTtpZihkPT09dm9pZCAwfHxkPT09bnVsbCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mICIrZCsiIChyZWFkaW5nICciK2UrIicpIikpO2lmKGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBLZCljPWQuZ2V0KGUpO2Vsc2UgaWYodHlwZW9mIGQ9PT0ic3RyaW5nIillPT09Imxlbmd0aCI/Yz1kLmxlbmd0aDpGZChlKSYmKGM9ZFtlXSk7ZWxzZSBpZihkIGluc3RhbmNlb2YgUGQpcmV0dXJuO3JldHVybiBjfWZ1bmN0aW9uIEFlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBCZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPj10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBDZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO2MgaW5zdGFuY2VvZiBQZCYmKGM9Yy5nZXRWYWx1ZSgpKTtkIGluc3RhbmNlb2YgUGQmJihkPWQuZ2V0VmFsdWUoKSk7cmV0dXJuIGM9PT1kfWZ1bmN0aW9uIERlKGEsYil7cmV0dXJuIUNlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIEVlKGEsYixjKXt2YXIgZD1bXTt0aGlzLmV2YWx1YXRlKGEpP2Q9dGhpcy5ldmFsdWF0ZShiKTpjJiYoZD10aGlzLmV2YWx1YXRlKGMpKTt2YXIgZT1lYih0aGlzLlQsZCk7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlfXZhciB5ZT0hMTsKZnVuY3Rpb24gRmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gSGUoKXtmb3IodmFyIGE9bmV3IEdkLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7YS5wdXNoKGMpfXJldHVybiBhfWZ1bmN0aW9uIEllKCl7Zm9yKHZhciBhPW5ldyBrYixiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKSksZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLnNldChjLGQpfXJldHVybiBhfWZ1bmN0aW9uIEplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkldGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSp0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIExlKGEpe3JldHVybi10aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE1lKGEpe3JldHVybiF0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE5lKGEsYil7cmV0dXJuIWtlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIE9lKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gUGUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBRZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSk7dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gY31mdW5jdGlvbiBSZShhKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBTZSgpe3JldHVybiBPYS5hcHBseSgwLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVGUoYSl7cmV0dXJuIG5ldyBUYSgicmV0dXJuIix0aGlzLmV2YWx1YXRlKGEpKX0KZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCBzZXQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpOyhkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIGtiKSYmZC5zZXQoU3RyaW5nKGUpLGYpO3JldHVybiBmfWZ1bmN0aW9uIFZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSktdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighQXJyYXkuaXNBcnJheShlKXx8IUFycmF5LmlzQXJyYXkoZikpdGhyb3cgRXJyb3IoIkVycm9yOiBNYWxmb3JtZWQgc3dpdGNoIGluc3RydWN0aW9uLiIpO2Zvcih2YXIgZyxoPSExLGw9MDtsPGUubGVuZ3RoO2wrKylpZihofHxkPT09dGhpcy5ldmFsdWF0ZShlW2xdKSlpZihnPXRoaXMuZXZhbHVhdGUoZltsXSksZyBpbnN0YW5jZW9mIFRhKXt2YXIgbj1nLnR5cGU7aWYobj09PSJicmVhayIpcmV0dXJuO2lmKG49PT0icmV0dXJuInx8bj09PSJjb250aW51ZSIpcmV0dXJuIGd9ZWxzZSBoPSEwO2lmKGYubGVuZ3RoPT09ZS5sZW5ndGgrMSYmKGc9dGhpcy5ldmFsdWF0ZShmW2YubGVuZ3RoLTFdKSxnIGluc3RhbmNlb2YgVGEmJihnLnR5cGU9PT0icmV0dXJuInx8Zy50eXBlPT09ImNvbnRpbnVlIikpKXJldHVybiBnfQpmdW5jdGlvbiBYZShhLGIsYyl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk/dGhpcy5ldmFsdWF0ZShiKTp0aGlzLmV2YWx1YXRlKGMpfWZ1bmN0aW9uIFllKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSk7cmV0dXJuIGIgaW5zdGFuY2VvZiBLZD8iZnVuY3Rpb24iOnR5cGVvZiBifWZ1bmN0aW9uIFplKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9YXJndW1lbnRzW2JdO3R5cGVvZiBjIT09InN0cmluZyJ8fGEuYWRkKGMsdm9pZCAwKX19CmZ1bmN0aW9uICRlKGEsYixjLGQpe3ZhciBlPXRoaXMuZXZhbHVhdGUoZCk7aWYodGhpcy5ldmFsdWF0ZShjKSl7dmFyIGY9ZWIodGhpcy5ULGUpO2lmKGYgaW5zdGFuY2VvZiBUYSl7aWYoZi50eXBlPT09ImJyZWFrIilyZXR1cm47aWYoZi50eXBlPT09InJldHVybiIpcmV0dXJuIGZ9fWZvcig7dGhpcy5ldmFsdWF0ZShhKTspe3ZhciBnPWViKHRoaXMuVCxlKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9dGhpcy5ldmFsdWF0ZShiKX19ZnVuY3Rpb24gYWYoYSl7cmV0dXJufk51bWJlcih0aGlzLmV2YWx1YXRlKGEpKX1mdW5jdGlvbiBiZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk8PE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBjZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX0KZnVuY3Rpb24gZGYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGVmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKSZOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpXk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBnZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGhmKCl7fQpmdW5jdGlvbiBrZihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfWNhdGNoKGgpe2lmKCEoaCBpbnN0YW5jZW9mIGJiJiZoLlNuKSl0aHJvdyBoO3ZhciBlPXRoaXMuVC53YigpO2EhPT0iIiYmKGggaW5zdGFuY2VvZiBiYiYmKGg9aC52byksZS5hZGQoYSxuZXcgUGQoaCkpKTt2YXIgZj10aGlzLmV2YWx1YXRlKGMpLGc9ZWIoZSxmKTtpZihnIGluc3RhbmNlb2YgVGEpcmV0dXJuIGd9fWZ1bmN0aW9uIGxmKGEsYil7dmFyIGMsZDt0cnl7ZD10aGlzLmV2YWx1YXRlKGEpfWNhdGNoKGYpe2lmKCEoZiBpbnN0YW5jZW9mIGJiJiZmLlNuKSl0aHJvdyBmO2M9Zn12YXIgZT10aGlzLmV2YWx1YXRlKGIpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZTtpZihjKXRocm93IGM7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfTt2YXIgbmY9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGdiO21mKHRoaXMpfTtuZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILnJrKGEpfTt2YXIgbWY9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1uZXcgTGQoU3RyaW5nKGMpLGQpO2UuWmEoKTt2YXIgZj1TdHJpbmcoYyk7YS5ILkguc2V0KGYsZSk7ZGIuc2V0KGYsZSl9O2IoIm1hcCIsSWUpO2IoImFuZCIsdGQpO2IoImNvbnRhaW5zIix3ZCk7YigiZXF1YWxzIix1ZCk7Yigib3IiLHZkKTtiKCJzdGFydHNXaXRoIix4ZCk7YigidmFyaWFibGUiLHlkKX07bmYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07dmFyIHBmPWZ1bmN0aW9uKCl7dGhpcy5LPSExO3RoaXMuSD1uZXcgZ2I7b2YodGhpcyk7dGhpcy5LPSEwfTtwZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gcWYodGhpcy5ILnJrKGEpKX07dmFyIHJmPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gcWYoYS5ILkpxKGIsYykpfTtwZi5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07CnZhciBvZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPVN0cmluZyhjKSxmPW5ldyBMZChlLGQpO2YuWmEoKTthLkguSC5zZXQoZSxmKTtkYi5zZXQoZSxmKX07YigwLFpkKTtiKDEsJGQpO2IoMixhZSk7YigzLGJlKTtiKDU2LGVmKTtiKDU3LGJmKTtiKDU4LGFmKTtiKDU5LGdmKTtiKDYwLGNmKTtiKDYxLGRmKTtiKDYyLGZmKTtiKDUzLGNlKTtiKDQsZGUpO2IoNSxlZSk7Yig2OCxrZik7Yig1MixmZSk7Yig2LGdlKTtiKDQ5LGhlKTtiKDcsSGUpO2IoOCxJZSk7Yig5LGVlKTtiKDUwLGllKTtiKDEwLGplKTtiKDEyLGtlKTtiKDEzLGxlKTtiKDY3LGxmKTtiKDUxLHdlKTtiKDQ3LG9lKTtiKDU0LHBlKTtiKDU1LHFlKTtiKDYzLHZlKTtiKDY0LHJlKTtiKDY1LHRlKTtiKDY2LHVlKTtiKDE1LHhlKTtiKDE2LHplKTtiKDE3LHplKTtiKDE4LEFlKTtiKDE5LEJlKTtiKDIwLENlKTtiKDIxLERlKTtiKDIyLEVlKTtiKDIzLEZlKTtiKDI0LEdlKTtiKDI1LEplKTtiKDI2LApLZSk7YigyNyxMZSk7YigyOCxNZSk7YigyOSxOZSk7Yig0NSxPZSk7YigzMCxQZSk7YigzMixRZSk7YigzMyxRZSk7YigzNCxSZSk7YigzNSxSZSk7Yig0NixTZSk7YigzNixUZSk7Yig0MyxVZSk7YigzNyxWZSk7YigzOCxXZSk7YigzOSxYZSk7Yig0MCxZZSk7Yig0NCxoZik7Yig0MSxaZSk7Yig0MiwkZSl9O3BmLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguamUoKX07cGYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07cGYucHJvdG90eXBlLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07CmZ1bmN0aW9uIHFmKGEpe2lmKGEgaW5zdGFuY2VvZiBUYXx8YSBpbnN0YW5jZW9mIEtkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgUGR8fGE9PT1udWxsfHxhPT09dm9pZCAwfHx0eXBlb2YgYT09PSJzdHJpbmcifHx0eXBlb2YgYT09PSJudW1iZXIifHx0eXBlb2YgYT09PSJib29sZWFuIilyZXR1cm4gYX07dmFyIHNmPWZ1bmN0aW9uKGEpe3RoaXMubWVzc2FnZT1hfTtmdW5jdGlvbiB0ZihhKXthLnF2PSEwO3JldHVybiBhfTt2YXIgdWY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSx2Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLHdmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO2Z1bmN0aW9uIHhmKGEpe3ZhciBiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlthXTtyZXR1cm4gYj09PXZvaWQgMD9uZXcgc2YoIlZhbHVlICIrYSsiIGNhbiBub3QgYmUgZW5jb2RlZCBpbiB3ZWItc2FmZSBiYXNlNjQgZGljdGlvbmFyeS4iKTpifTtmdW5jdGlvbiB5ZihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiIxIjtjYXNlIDI6Y2FzZSA0OnJldHVybiIwIjtkZWZhdWx0OnJldHVybiItIn19O3ZhciB6Zj0vXlsxLTlhLXpBLVpfLV1bMS05YS1jXVsxLTlhLXZdXGQkLztmdW5jdGlvbiBBZihhLGIpe2Zvcih2YXIgYz0iIixkPSEwO2E+Nzspe3ZhciBlPWEmMzE7YT4+PTU7ZD9kPSExOmV8PTMyO2M9IiIreGYoZSkrY31hPDw9MjtkfHwoYXw9MzIpO3JldHVybiBjPSIiK3hmKGF8YikrY31mdW5jdGlvbiBCZihhLGIpe3JldHVybiBiPT09dm9pZCAwfHxiPT09MD8iIjoiIitBZihhLDEpK3hmKGIpfQpmdW5jdGlvbiBDZihhLGIpe3ZhciBjO3ZhciBkPWEuaGksZT1hLmJrO2Q9PT12b2lkIDA/Yz0iIjooZXx8KGU9MCksYz0iIitBZigxLDEpK3hmKGQ8PDJ8ZSkpO3ZhciBmPSI0IitjK0JmKDIsYS5xciksZyxoPWEuSW87Zz1oJiZ6Zi50ZXN0KGgpPyIiK0FmKDMsMikraDoiIjt2YXIgbDt2YXIgbj1hLmN0aWQ7aWYobiYmYil7dmFyIHA9QWYoNSwzKSxxPW4uc3BsaXQoIi0iKSxyPXFbMF0udG9VcHBlckNhc2UoKTtpZihyIT09IkdUTSImJnIhPT0iT1BUIilsPSIiO2Vsc2V7dmFyIHQ9cVsxXTtsPSIiK3AreGYoMSt0Lmxlbmd0aCkrKGEuTHN8fDApK3R9fWVsc2UgbD0iIjt2YXIgdT1hLmNhbm9uaWNhbElkLHY9YS5tYyx4PWEuenYseT1mK2crQmYoNCxhLkRvKStsK0JmKDYsYS5EdCkrKHU/IiIrQWYoNywzKSt4Zih1Lmxlbmd0aCkrdToiIikrKHY/IiIrQWYoOCwzKSt4Zih2Lmxlbmd0aCkrdjoiIikrKHg/IiIrQWYoOSwzKSt4Zih4Lmxlbmd0aCkreDoiIiksejt2YXIgQz1hLnpyO0M9CkM9PT12b2lkIDA/e306Qztmb3IodmFyIEQ9W10sST1tKE9iamVjdC5rZXlzKEMpKSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7dmFyIE49Ry52YWx1ZTtEW051bWJlcihOKV09Q1tOXX1pZihELmxlbmd0aCl7dmFyIFM9QWYoMTAsMyksVztpZihELmxlbmd0aD09PTApVz14ZigwKTtlbHNle2Zvcih2YXIgZWE9W10samE9MCxmYT0hMSxzYT0wO3NhPEQubGVuZ3RoO3NhKyspe2ZhPSEwO3ZhciBkYT1zYSU2O0Rbc2FdJiYoamF8PTE8PGRhKTtkYT09PTUmJihlYS5wdXNoKHhmKGphKSksamE9MCxmYT0hMSl9ZmEmJmVhLnB1c2goeGYoamEpKTtXPWVhLmpvaW4oIiIpfXZhciBtYT1XO3o9IiIrUyt4ZihtYS5sZW5ndGgpK21hfWVsc2Ugej0iIjt2YXIgUGE9YS5VcyxGYT1hLm50O3JldHVybiB5K3orKFBhPyIiK0FmKDExLDMpK3hmKFBhLmxlbmd0aCkrUGE6IiIpKyhGYT8iIitBZigxMywzKSt4ZihGYS5sZW5ndGgpK0ZhOiIiKStCZigxNCxhLkV0KStCZigxNSxhLnJ2KStCZigxNiwKYS5Bdil9O2Z1bmN0aW9uIERmKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09NTUyOTYmJmQrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChkKzEpJjY0NTEyKT09NTYzMjA/KGU9NjU1MzYrKChlJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2QpJjEwMjMpLGJbYysrXT1lPj4xOHwyNDAsYltjKytdPWU+PjEyJjYzfDEyOCk6YltjKytdPWU+PjEyfDIyNCxiW2MrK109ZT4+NiY2M3wxMjgpLGJbYysrXT1lJjYzfDEyOCl9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVmKGEsYil7Zm9yKHZhciBjPXFiKGIpLGQ9bmV3IFVpbnQ4QXJyYXkoYy5sZW5ndGgpLGU9MDtlPGMubGVuZ3RoO2UrKylkW2VdPWMuY2hhckNvZGVBdChlKTtpZihkLmxlbmd0aCE9PTMyKXRocm93IEVycm9yKCJLZXkgaXMgbm90IDMyIGJ5dGVzLiIpO3JldHVybiBGZihhLGQpfWZ1bmN0aW9uIEZmKGEsYil7aWYoYT09PSIiKXJldHVybiIiO3ZhciBjPVpiKGEpLGQ9Yi5zbGljZSgtMiksZT1bXS5jb25jYXQodyhkKSx3KGMpKS5tYXAoZnVuY3Rpb24oZyxoKXtyZXR1cm4gZ15iW2glYi5sZW5ndGhdfSksZj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhlKSx3KGQpKSk7cmV0dXJuIHBiKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZikpKS5yZXBsYWNlKC9cLiskLywiIil9O3ZhciBHZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7cmV0dXJue3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fX1yZXR1cm57Y3A6YSgiY29uc2VudCIpLFprOmEoImNvbnZlcnRfY2FzZV90byIpLGFsOmEoImNvbnZlcnRfZmFsc2VfdG8iKSxibDphKCJjb252ZXJ0X251bGxfdG8iKSxlcDphKCJjb252ZXJ0X3RvX2Jvb2xlYW4iKSxhaDphKCJjb252ZXJ0X3RvX251bWJlciIpLGZsOmEoImNvbnZlcnRfdHJ1ZV90byIpLGlsOmEoImNvbnZlcnRfdW5kZWZpbmVkX3RvIiksWXQ6YSgiZGVidWdfbW9kZV9tZXRhZGF0YSIpLFliOmEoImZ1bmN0aW9uIiksUm06YSgiaW5zdGFuY2VfbmFtZSIpLE5xOmEoImxpdmVfb25seSIpLE9xOmEoIm1hbHdhcmVfZGlzYWJsZWQiKSxNRVRBREFUQTphKCJtZXRhZGF0YSIpLFJxOmEoIm9yaWdpbmFsX2FjdGl2aXR5X2lkIiksVHU6YSgib3JpZ2luYWxfdmVuZG9yX3RlbXBsYXRlX2lkIiksU3U6YSgib25jZV9vbl9sb2FkIiksUXE6YSgib25jZV9wZXJfZXZlbnQiKSwKa246YSgib25jZV9wZXJfbG9hZCIpLFZ1OmEoInByaW9yaXR5X292ZXJyaWRlIiksWXU6YSgicmVzcGVjdGVkX2NvbnNlbnRfdHlwZXMiKSx0bjphKCJzZXR1cF90YWdzIikseWo6YSgidGFnX2lkIiksRG46YSgidGVhcmRvd25fdGFncyIpLHBsOmEoImRpc2FibGVkX2luX2dvb2dsZV9tb2RlIiksRnE6YSgiZ2VuZXJhdGVkX3RhZ2dpbmdfbWV0YWRhdGEiKX19KCk7ZnVuY3Rpb24gSGYoYSxiKXt2YXIgYz17fTtjW0dmLlliXT0iX18iK2E7Zm9yKHZhciBkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbInZ0cF8iK2RdPWJbZF0pO3JldHVybiBjfTtmdW5jdGlvbiBJZihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpPyEhZGF0YS5ibG9iW2FdOmJ9ZnVuY3Rpb24gRShhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoZGF0YS5ibG9iW2FdKTpifWZ1bmN0aW9uIEpmKGEpe3ZhciBiLGM7cmV0dXJuKChiPWRhdGEpPT1udWxsPzA6KGM9Yi5ibG9iKT09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihkYXRhLmJsb2JbYV0pOjB9ZnVuY3Rpb24gS2YoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP1tdOmI7dmFyIGMsZCxlPShjPWRhdGEpPT1udWxsP3ZvaWQgMDooZD1jLmJsb2IpPT1udWxsP3ZvaWQgMDpkW2FdO3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6Yn0KZnVuY3Rpb24gTGYoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhjW2FdKTpifWZ1bmN0aW9uIE5mKGEsYil7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihjW2FdKTpifWZ1bmN0aW9uIE1mKGEpe3ZhciBiLGM7cmV0dXJuKGI9ZGF0YSk9PW51bGw/dm9pZCAwOihjPWIuYmxvYik9PW51bGw/dm9pZCAwOmNbYV19O3ZhciBPZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYyk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy5wZXJtaXNzaW9uSWQ9YTt0aGlzLnBhcmFtZXRlcnM9Yjt0aGlzLm5hbWU9IlBlcm1pc3Npb25FcnJvciJ9O3dhKE9mLEVycm9yKTtPZi5wcm90b3R5cGUuZ2V0TWVzc2FnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2V9O2Z1bmN0aW9uIFBmKGEsYil7aWYoQXJyYXkuaXNBcnJheShhKSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImNvbnRleHQiLHt2YWx1ZTp7bGluZTpiWzBdfX0pO2Zvcih2YXIgYz0xO2M8YS5sZW5ndGg7YysrKVBmKGFbY10sYltjXSl9fTtmdW5jdGlvbiBRZigpe3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjO3ZhciBkPVJmO2EgaW5zdGFuY2VvZiBiYj8oYS5IPWQsYz1hKTpjPW5ldyBiYihhLGQpO3ZhciBlPWM7YiYmZS5LLnB1c2goYik7dGhyb3cgZTt9fWZ1bmN0aW9uIFJmKGEpe2lmKCFhLmxlbmd0aClyZXR1cm4gYTthLnB1c2goe2lkOiJtYWluIixsaW5lOjB9KTtmb3IodmFyIGI9YS5sZW5ndGgtMTtiPjA7Yi0tKUFiKGFbYl0uaWQpJiZhLnNwbGljZShiKyssMSk7Zm9yKHZhciBjPWEubGVuZ3RoLTE7Yz4wO2MtLSlhW2NdLmxpbmU9YVtjLTFdLmxpbmU7YS5zcGxpY2UoMCwxKTtyZXR1cm4gYX07dmFyIFNmPVJlZ0V4cCgiW14wLTlcXC4rLV0iLCJnIiksVGY9UmVnRXhwKCJbXjAtOVxcLCstXSIsImciKSxVZj1SZWdFeHAoIlteMC05Ky1dIiwiZyIpOwpmdW5jdGlvbiBWZihhLGIpe2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuIGE7dmFyIGM9U3RyaW5nKGEpLGQ7aWYoYj09PSJBVVRPTUFUSUMiKXt2YXIgZT0oYy5tYXRjaCgvXC4vZyl8fFtdKS5sZW5ndGgsZj0oYy5tYXRjaCgvLC9nKXx8W10pLmxlbmd0aCxnPSJOT05FIjtpZihlPjAmJmY+MCl7dmFyIGg9Yy5sYXN0SW5kZXhPZigiLiIpPmMubGFzdEluZGV4T2YoIiwiKTtoJiZlPT09MT9nPSJQRVJJT0QiOmh8fGYhPT0xfHwoZz0iQ09NTUEiKX1lbHNlIGU9PT0xP2c9KGMuc3BsaXQoIi4iKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJQRVJJT0QiOiJOT05FIjpmPT09MSYmKGc9KGMuc3BsaXQoIiwiKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJDT01NQSI6Ik5PTkUiKTtkPWd9ZWxzZSBkPWI9PT0iQ09NTUEiPyJDT01NQSI6IlBFUklPRCI7dmFyIGwsbjtkPT09IlBFUklPRCI/KGw9Ii4iLG49U2YpOmQ9PT0iQ09NTUEiPyhsPSIsIiwKbj1UZik6KGw9IiIsbj1VZik7dmFyIHA9Yy5yZXBsYWNlKG4sIiIpO2lmKGwhPT0iIiYmcC5zcGxpdChsKS5sZW5ndGg+MilyZXR1cm4gYTt2YXIgcT1wLnJlcGxhY2UoLywvZywiLiIpO2lmKHE9PT0iIilyZXR1cm4gYTt2YXIgcj1OdW1iZXIocSk7cmV0dXJuIGlzTmFOKHIpP2E6cn07dmFyIFdmPVtdLFhmPXt9O2Z1bmN0aW9uIFlmKGEpe3JldHVybiBXZlthXT09PXZvaWQgMD8hMTpXZlthXX07dmFyIFpmPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSwkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO2EuSFtiXS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkobnVsbCx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfSl9O2Z1bmN0aW9uIGFnKGEsYixjLGQpe2lmKGEpZm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPXZvaWQgMCxnPSJBIHBvbGljeSBmdW5jdGlvbiBkZW5pZWQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCI7dHJ5e2Y9YVtlXShiLGMsZCksZys9Ii4ifWNhdGNoKGgpe2c9dHlwZW9mIGg9PT0ic3RyaW5nIj9nKygiOiAiK2gpOmggaW5zdGFuY2VvZiBFcnJvcj9nKygiOiAiK2gubWVzc2FnZSk6ZysiLiJ9aWYoIWYpdGhyb3cgbmV3IE9mKGMsZCxnKTt9fQpmdW5jdGlvbiBiZyhhLGIpe3ZhciBjPWNnKGRnLkgsYixmdW5jdGlvbigpe3JldHVybnt9fSk7dHJ5e3JldHVybiBjKGEpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBjZyhhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe2lmKGQpe3ZhciBlPWEuSFtkXSxmPWEuSC5hbGw7aWYoZXx8Zil7dmFyIGc9Yy5hcHBseSh2b2lkIDAsW2RdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTthZyhlLGIsZCxnKTthZyhmLGIsZCxnKX19fX07dmFyIGdnPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSz17fTt0aGlzLkg9bmV3IFpmO3ZhciBlPXt9LGY9e30sZz1jZyh0aGlzLkgsYSxmdW5jdGlvbihoKXtyZXR1cm4gaCYmZVtoXT9lW2hdLmFwcGx5KHZvaWQgMCxbaF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpOnt9fSk7R2IoYixmdW5jdGlvbihoLGwpe2Z1bmN0aW9uIG4ocSl7dmFyIHI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKCFwW3FdKXRocm93IGVnKHEse30sIlRoZSByZXF1ZXN0ZWQgYWRkaXRpb25hbCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO2cuYXBwbHkobnVsbCxbcV0uY29uY2F0KHcocikpKX12YXIgcD17fTtHYihsLGZ1bmN0aW9uKHEscil7dmFyIHQ9ZmcocSxyLGMpO3BbcV09dC5hc3NlcnQ7ZVtxXXx8KGVbcV09dC5hYSk7dC5PbiYmIWZbcV0mJihmW3FdPXQuT24pfSk7ZC5LW2hdPWZ1bmN0aW9uKHEscil7dmFyIHQ9cFtxXTtpZighdCl0aHJvdyBlZyhxLAp7fSwiVGhlIHJlcXVlc3RlZCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTt0LmFwcGx5KHZvaWQgMCx1KTtnLmFwcGx5KHZvaWQgMCx1KTt2YXIgdj1mW3FdO3YmJnYuYXBwbHkobnVsbCxbbl0uY29uY2F0KHcodS5zbGljZSgxKSkpKX19KX0saGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGRnLktbYV18fGZ1bmN0aW9uKCl7fX07CmZ1bmN0aW9uIGZnKGEsYixjKXt0cnl7dmFyIGQ9Y1siX18iK2FdO2lmKCFkKXRocm93IEVycm9yKCJObyBmdW5jdGlvbiBmb3VuZCBmb3IgcGVybWlzc2lvbjogIithKyIuIik7dmFyIGU9SGYoYSxiKTtlLnZ0cF9wZXJtaXNzaW9uTmFtZT1hO2UudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcj1lZztkZWxldGUgZVtHZi5ZYl07cmV0dXJuIGQoZSl9Y2F0Y2goZil7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihnKXt0aHJvdyBuZXcgT2YoZyx7fSwiUGVybWlzc2lvbiAiK2crIiBpcyB1bmtub3duLiIpO30sYWE6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgT2YoYSx7fSwiUGVybWlzc2lvbiAiK2ErIiBpcyB1bmtub3duLiIpO319fX1mdW5jdGlvbiBlZyhhLGIsYyl7cmV0dXJuIG5ldyBPZihhLGIsYyl9O3ZhciBpZz1FKDUpLGpnPUUoMjApLGtnPUUoMSksbGc9ITE7dmFyIG1nPXt9O21nLlBvPUlmKDI5KTttZy5Lcj1JZigyOCk7ZnVuY3Rpb24gbmcoYSl7dmFyIGI9MSxjLGQsZTtpZihhKWZvcihiPTAsZD1hLmxlbmd0aC0xO2Q+PTA7ZC0tKWU9YS5jaGFyQ29kZUF0KGQpLGI9KGI8PDYmMjY4NDM1NDU1KStlKyhlPDwxNCksYz1iJjI2NjMzODMwNCxiPWMhPT0wP2JeYz4+MjE6YjtyZXR1cm4gYn07dmFyIG9nPWZ1bmN0aW9uKGEpe3RoaXMuY2FjaGU9YX07b2cucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj1uZyhhKSxjPXRoaXMuY2FjaGUuZ2V0KGIpO2lmKCFjKXJldHVybntwcm9taXNlOnZvaWQgMCxLajowfTtpZihEYXRlLm5vdygpPj1jLnRpbWVzdGFtcCs5RTUpcmV0dXJuIHRoaXMuY2FjaGUuZGVsZXRlKGIpLHtwcm9taXNlOnZvaWQgMCxLajozfTt2YXIgZD1jLnJlc29sdmVkVmFsdWU/MjoxO3JldHVybntwcm9taXNlOmMucmVzb2x2ZWRWYWx1ZT9Qcm9taXNlLnJlc29sdmUoYy5yZXNvbHZlZFZhbHVlKTpjLnByb21pc2UsS2o6ZH19O29nLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz17cHJvbWlzZTpiLHJlc29sdmVkVmFsdWU6dm9pZCAwLHRpbWVzdGFtcDpEYXRlLm5vdygpfTt0aGlzLmNhY2hlLnNldChuZyhhKSxjKTtiLnRoZW4oZnVuY3Rpb24oZCl7Yy5yZXNvbHZlZFZhbHVlPWR9KX07ZnVuY3Rpb24gcGcoYSl7c3dpdGNoKGEpe2Nhc2UgMDpicmVhaztjYXNlIDk6cmV0dXJuImU0IjtjYXNlIDY6cmV0dXJuImU1IjtjYXNlIDE0OnJldHVybiJlNiI7ZGVmYXVsdDpyZXR1cm4iZTcifX07dmFyIEY9e0Q6e1hhOiJhZF9wZXJzb25hbGl6YXRpb24iLGthOiJhZF9zdG9yYWdlIixtYToiYWRfdXNlcl9kYXRhIixyYToiYW5hbHl0aWNzX3N0b3JhZ2UiLG5jOiJyZWdpb24iLHNhOiJjb25zZW50X3VwZGF0ZWQiLFlnOiJ3YWl0X2Zvcl91cGRhdGUiLGVoOiJlbmRwb2ludF90eXBlIixxcDoiYXBwX3JlbW92ZSIscnA6ImFwcF9zdG9yZV9yZWZ1bmQiLHRwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCIsdXA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCIsdnA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciLHdwOiJjb25zZW50X3VwZGF0ZSIseHA6ImNvbnZlcnNpb24iLHZsOiJhZGRfcGF5bWVudF9pbmZvIix3bDoiYWRkX3NoaXBwaW5nX2luZm8iLHhlOiJhZGRfdG9fY2FydCIseWU6InJlbW92ZV9mcm9tX2NhcnQiLHhsOiJ2aWV3X2NhcnQiLEFkOiJiZWdpbl9jaGVja291dCIsZXU6ImdlbmVyYXRlX2xlYWQiLHplOiJzZWxlY3RfaXRlbSIsb2M6InZpZXdfaXRlbV9saXN0IiwKUWM6InNlbGVjdF9wcm9tb3Rpb24iLHFjOiJ2aWV3X3Byb21vdGlvbiIsSWI6InB1cmNoYXNlIixBZToicmVmdW5kIixyYzoidmlld19pdGVtIix5bDoiYWRkX3RvX3dpc2hsaXN0Iix5cDoiZXhjZXB0aW9uIix6cDoiZmlyc3Rfb3BlbiIsQXA6ImZpcnN0X3Zpc2l0Iix3YToiZ3RhZy5jb25maWciLEpiOiJndGFnLmdldCIsQnA6ImluX2FwcF9wdXJjaGFzZSIsc2M6InBhZ2VfdmlldyIsQ3A6InNjcmVlbl92aWV3IixEcDoic2Vzc2lvbl9zdGFydCIsRXA6InNvdXJjZV91cGRhdGUiLEZwOiJ0aW1pbmdfY29tcGxldGUiLEdwOiJ0cmFja19zb2NpYWwiLHlmOiJ1c2VyX2VuZ2FnZW1lbnQiLEhwOiJ1c2VyX2lkX3VwZGF0ZSIsZmg6ImJyYWlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLGdoOiJicmFpZF9zdG9yYWdlX3NvdXJjZSIsQmQ6ImdjbGlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLENkOiJnY2xpZF9zdG9yYWdlX3NvdXJjZSIsU2I6ImdjbGdiIixsYjoiZ2NsaWQiLHpsOiJnY2xpZF9sZW4iLApCZToiZ2NsZ3MiLENlOiJnY2xscCIsRGU6ImdjbHN0IixtYjoiYWRzX2RhdGFfcmVkYWN0aW9uIix6ZjoiZ2FkX3NvdXJjZSIsQWY6ImdhZF9zb3VyY2Vfc3JjIixEZDoiZ2NsaWRfdXJsIixBbDoiZ2Nsc3JjIixCZjoiZ2JyYWlkIixFZToid2JyYWlkIixSYzoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiLHJpOiJhbGxvd19jdXN0b21fc2NyaXB0cyIsaGg6ImFsbG93X2Rpc3BsYXlfZmVhdHVyZXMiLHNpOiJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyIsU2M6ImFsbG93X2dvb2dsZV9zaWduYWxzIix1aToiYWxsb3dfaW50ZXJlc3RfZ3JvdXBzIixJcDoiYXBwX2lkIixKcDoiYXBwX2luc3RhbGxlcl9pZCIsS3A6ImFwcF9uYW1lIixMcDoiYXBwX3ZlcnNpb24iLEVkOiJhdWlkIixmdToiYXV0b19kZXRlY3Rpb25fZW5hYmxlZCIsQmw6ImF1dG9fZXZlbnQiLENsOiJhd19yZW1hcmtldGluZyIsaWg6ImF3X3JlbWFya2V0aW5nX29ubHkiLENmOiJkaXNjb3VudCIsRGY6ImF3X2ZlZWRfY291bnRyeSIsCkVmOiJhd19mZWVkX2xhbmd1YWdlIixIYToiaXRlbXMiLEZmOiJhd19tZXJjaGFudF9pZCIsd2k6ImF3X2Jhc2tldF90eXBlIixHZjoiY2FtcGFpZ25fY29udGVudCIsSGY6ImNhbXBhaWduX2lkIixJZjoiY2FtcGFpZ25fbWVkaXVtIixKZjoiY2FtcGFpZ25fbmFtZSIsS2Y6ImNhbXBhaWduIixMZjoiY2FtcGFpZ25fc291cmNlIixNZjoiY2FtcGFpZ25fdGVybSIsS2I6ImNsaWVudF9pZCIsRGw6InJuZCIseGk6ImNvbnNlbnRfdXBkYXRlX3R5cGUiLE1wOiJjb250ZW50X2dyb3VwIixOcDoiY29udGVudF90eXBlIixGZDoiY29udmVyc2lvbl9jb29raWVfcHJlZml4Iix5aToiY29udmVyc2lvbl9pZCIsdWM6ImNvbnZlcnNpb25fbGlua2VyIixIZDoiY29udmVyc2lvbl9saW5rZXJfZGlzYWJsZWQiLEZlOiJjb252ZXJzaW9uX2FwaSIsemk6Il8mcmNiIixqaDoiY29va2llX2RlcHJlY2F0aW9uIixMYjoiY29va2llX2RvbWFpbiIsQ2I6ImNvb2tpZV9leHBpcmVzIixUYjoiY29va2llX2ZsYWdzIiwKSWQ6ImNvb2tpZV9uYW1lIix2YzoiY29va2llX3BhdGgiLG5iOiJjb29raWVfcHJlZml4IixKZDoiY29va2llX3VwZGF0ZSIsVGM6ImNvdW50cnkiLGViOiJjdXJyZW5jeSIsR2U6ImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIixraDoiY3VzdG9tZXJfdHlwZSIsSGU6ImN1c3RvbV9tYXAiLEFpOiJnY2xkY19saW5rX2RlY29yYXRpb25fc291cmNlIixCaToiZ2NsZGNfc3RvcmFnZV9zb3VyY2UiLE5mOiJnY2xkYyIsS2Q6ImRjbGlkIixFbDoiZGVidWdfbW9kZSIsT2E6ImRldmVsb3Blcl9pZCIsT3A6ImRpc2FibGVfbWVyY2hhbnRfcmVwb3J0ZWRfcHVyY2hhc2VzIixVYzoiZGNfY3VzdG9tX3BhcmFtcyIsUHA6ImRjX25hdHVyYWxfc2VhcmNoIixRcDoiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsRmw6ImFmZmlsaWF0aW9uIixtaDoiY2hlY2tvdXRfb3B0aW9uIixDaToiY2hlY2tvdXRfc3RlcCIsR2w6ImNvdXBvbiIsT2Y6Iml0ZW1fbGlzdF9uYW1lIixEaToibGlzdF9uYW1lIixScDoicHJvbW90aW9ucyIsCkxkOiJzaGlwcGluZyIsSGw6InRheCIsbmg6ImVuZ2FnZW1lbnRfdGltZV9tc2VjIixvaDoiZW5oYW5jZWRfY2xpZW50X2lkIixTcDoiZW5oYW5jZWRfY29udmVyc2lvbnMiLGd1OiJlbmhhbmNlZF9jb252ZXJzaW9uc19hdXRvbWF0aWNfc2V0dGluZ3MiLEllOiJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSIsUGY6ImV2ZW50X2NhbGxiYWNrIixUcDoiZXZlbnRfY2F0ZWdvcnkiLFZjOiJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIixNZDoiZXZlbnRfaWQiLEVpOiJfZXZlbnRfam9pbl9pZCIsVXA6ImV2ZW50X2xhYmVsIixVYjoiZXZlbnQiLElsOiJfJmFlIixGaToiZXZlbnRfc2V0dGluZ3MiLHBoOiJldmVudF90aW1lb3V0IixWcDoiZGVzY3JpcHRpb24iLFdwOiJmYXRhbCIsWHA6ImV4cGVyaW1lbnRzIixOZDoiZXh0X2NsaWVudF9pZCIsR2k6ImZpcmViYXNlX2lkIixRZjoiZmlyc3RfcGFydHlfY29sbGVjdGlvbiIsUmY6Il94XzIwIixWYjoiX3hfMTkiLFlwOiJmbGlnaHRfZXJyb3JfY29kZSIsClpwOiJmbGlnaHRfZXJyb3JfbWVzc2FnZSIsSGk6ImZsX2FjdGl2aXR5X2NhdGVnb3J5IixJaToiZmxfYWN0aXZpdHlfZ3JvdXAiLHFoOiJmbF9hZHZlcnRpc2VyX2lkIixKaToibWF0Y2hfaWQiLEpsOiJmbF9yYW5kb21fbnVtYmVyIixLbDoidHJhbiIsTGw6InUiLHJoOiJnYWNfZ2NsaWQiLEplOiJnYWNfd2JyYWlkIixNbDoiZ2FjX3dicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsYXE6ImdhX3Jlc3RyaWN0X2RvbWFpbiIsTmw6ImdhX3RlbXBfY2xpZW50X2lkIixicToiZ2FfdGVtcF9lY2lkIixLZToiZ2Rwcl9hcHBsaWVzIixzaDoiX2d0X21ldGFkYXRhIixPbDoiZ2VvX2dyYW51bGFyaXR5IixTZjoidmFsdWVfY2FsbGJhY2siLFRmOiJ2YWx1ZV9rZXkiLFRhOiJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIixMZToiX2dvb2dsZV9uZyIsY3E6Il9vbm8iLFVmOiJnb29nbGVfc2lnbmFscyIsZnE6Imdvb2dsZV90bGQiLHRoOiJncHBfc2lkIix1aDoiZ3BwX3N0cmluZyIsT2Q6Imdyb3VwcyIsClBsOiJnc2FfZXhwZXJpbWVudF9pZCIsVmY6Imd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSIsUWw6Imd0bV91cCIsTWU6ImlmcmFtZV9zdGF0ZSIsV2Y6Imlnbm9yZV9yZWZlcnJlciIsUmw6ImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsU2w6Il9pc19mcG0iLFljOiJpc19sZWdhY3lfY29udmVydGVkIixaYzoiaXNfbGVnYWN5X2xvYWRlZCIsS2k6ImlzX3Bhc3N0aHJvdWdoIixQZDoiX2xwcyIsdGI6Imxhbmd1YWdlIixMaToibGVnYWN5X2RldmVsb3Blcl9pZF9zdHJpbmciLERiOiJsaW5rZXIiLFhmOiJhY2NlcHRfaW5jb21pbmciLHdjOiJkZWNvcmF0ZV9mb3JtcyIsQWE6ImRvbWFpbnMiLGFkOiJ1cmxfcG9zaXRpb24iLFFkOiJtZXJjaGFudF9mZWVkX2xhYmVsIixSZDoibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSIsU2Q6Im1lcmNoYW50X2lkIixUbDoibWV0aG9kIixncToibmFtZSIsVWw6Im5hdmlnYXRpb25fdHlwZSIsTmU6Im5ld19jdXN0b21lciIsTWk6Im5vbl9pbnRlcmFjdGlvbiIsCmhxOiJvcHRpbWl6ZV9pZCIsVmw6InBhZ2VfaG9zdG5hbWUiLFlmOiJwYWdlX3BhdGgiLFVhOiJwYWdlX3JlZmVycmVyIixNYjoicGFnZV90aXRsZSIsaXE6InBhc3NlbmdlcnMiLFdsOiJwaG9uZV9jb252ZXJzaW9uX2NhbGxiYWNrIixqcToicGhvbmVfY29udmVyc2lvbl9jb3VudHJ5X2NvZGUiLFhsOiJwaG9uZV9jb252ZXJzaW9uX2Nzc19jbGFzcyIsa3E6InBob25lX2NvbnZlcnNpb25faWRzIixZbDoicGhvbmVfY29udmVyc2lvbl9udW1iZXIiLFpsOiJwaG9uZV9jb252ZXJzaW9uX29wdGlvbnMiLGxxOiJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiLG1xOiJfcHJvdGVjdGVkX2F1ZGllbmNlX2VuYWJsZWQiLHdoOiJxdWFudGl0eSIseGg6InJlZGFjdF9kZXZpY2VfaW5mbyIsYW06InJlZmVycmFsX2V4Y2x1c2lvbl9kZWZpbml0aW9uIixodToiX3JlcXVlc3Rfc3RhcnRfdGltZSIsV2I6InJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIixucToicmV0b2tlbiIsb3E6InNhbXBsZV9yYXRlIiwKTmk6InNjcmVlbl9uYW1lIixiZDoic2NyZWVuX3Jlc29sdXRpb24iLGJtOiJfc2NyaXB0X3NvdXJjZSIscHE6InNlYXJjaF90ZXJtIixUZDoic2VuZF9wYWdlX3ZpZXciLFhiOiJzZW5kX3RvIixPaToic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50IixkZDoic2VydmVyX2NvbnRhaW5lcl91cmwiLHFxOiJzZXNzaW9uX2F0dHJpYnV0ZXNfZW5jb2RlZCIseWg6InNlc3Npb25fZHVyYXRpb24iLHpoOiJzZXNzaW9uX2VuZ2FnZWQiLFBpOiJzZXNzaW9uX2VuZ2FnZWRfdGltZSIseGM6InNlc3Npb25faWQiLEFoOiJzZXNzaW9uX251bWJlciIsWmY6Il9zaGFyZWRfdXNlcl9pZCIsVWQ6ImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIixpdToiX3RhZ19maXJpbmdfZGVsYXkiLGp1OiJfdGFnX2ZpcmluZ190aW1lIixrdToidGVtcG9yYXJ5X2NsaWVudF9pZCIsUWk6InRlc3Rvbmx5IixycToiX3RpbWV6b25lIixQZToidG9wbW9zdF91cmwiLFFlOiJ0cmFja2luZ19pZCIsUmk6InRyYWZmaWNfdHlwZSIsClBhOiJ0cmFuc2FjdGlvbl9pZCIsZG06InRyYW5zYWN0aW9uX2lkX3NvdXJjZSIseWM6InRyYW5zcG9ydF91cmwiLHNxOiJ0cmlwX3R5cGUiLFZkOiJ1cGRhdGUiLHpjOiJ1cmxfcGFzc3Rocm91Z2giLGZtOiJ1cHRncyIsY2c6Il91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSIsZGc6Il91c2VyX2FnZW50X2JpdG5lc3MiLGVnOiJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCIsZmc6Il91c2VyX2FnZW50X21vYmlsZSIsZ2c6Il91c2VyX2FnZW50X21vZGVsIixoZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm0iLGlnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIixqZzoiX3VzZXJfYWdlbnRfd293NjQiLEFjOiJ1c2VyX2RhdGEiLGdtOiJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5IixobToidXNlcl9kYXRhX2F1dG9fbWV0YSIsaW06InVzZXJfZGF0YV9hdXRvX211bHRpIixqbToidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIixrbToidXNlcl9kYXRhX2F1dG9fc3RhdHVzIixCYzoidXNlcl9kYXRhX21vZGUiLApsbToidXNlcl9kYXRhX3NldHRpbmdzIixmYjoidXNlcl9pZCIsV2Q6InVzZXJfcHJvcGVydGllcyIsb206Il91c2VyX3JlZ2lvbiIsa2c6InVzX3ByaXZhY3lfc3RyaW5nIixRYToidmFsdWUiLHFtOiJ3YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGVkOiJfZnBtX3BhcmFtZXRlcnMiLFdpOiJfaG9zdF9uYW1lIixWbToiX2luX3BhZ2VfY29tbWFuZCIsWWk6Il9pcF9vdmVycmlkZSIsWm06Il9pc19wYXNzdGhyb3VnaF9jaWQiLEpoOiJfbWVhc3VyZW1lbnRfdHlwZSIsZGU6Im5vbl9wZXJzb25hbGl6ZWRfYWRzIixvajoiX3NzdF9wYXJhbWV0ZXJzIixZcToic2d0bV9nZW9fdXNlcl9jb3VudHJ5IixHZDoiY29udmVyc2lvbl9sYWJlbCIsemE6InBhZ2VfbG9jYXRpb24iLFdjOiJfZXh0cmFjdGVkX2RhdGEiLFhjOiJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyIsT2U6InRjX3ByaXZhY3lfc3RyaW5nIn19O3ZhciBIPXtKOntTbzoiYWJvcnRfd2l0aG91dF9mYWlsIixraToiYWNjZXB0X2J5X2RlZmF1bHQiLEJrOiJhZGRfdGFnX3RpbWluZyIsRGs6ImFkc19jb25zZW50X2dyYW50ZWQiLHZkOiJhZHNfZXZlbnRfcGFnZV92aWV3Iix3ZDoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIixRdDoiYXV0b19ldmVudCIsS2s6ImJhdGNoX29uX25hdmlnYXRpb24iLFhnOiJiaXNjb3R0aV9qb2luX2lkIixQazoiY2xpZW50X2lkX3NvdXJjZSIsdWY6ImNvbnNlbnRfZXZlbnRfaWQiLHZmOiJjb25zZW50X3ByaW9yaXR5X2lkIixTdDoiY29uc2VudF9zdGF0ZSIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsd2Y6ImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiLFR0OiJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIixHYToiY29va2llX29wdGlvbnMiLG9sOiJkY19yYW5kb20iLFp0OiJkZWR1cGVfaWQiLFBjOiJlbV9ldmVudCIsYnU6ImVuZHBvaW50X2Zvcl9kZWJ1ZyIsdGw6ImVuaGFuY2VkX2NsaWVudF9pZF9zb3VyY2UiLApwcDoiZW5oYW5jZWRfbWF0Y2hfcmVzdWx0IixybToiZXVpZF9sb2dnZWRfaW5fc3RhdGUiLGxnOiJldWlkX21vZGVfZW5hYmxlZCIsdHE6ImV2ZW50X3Byb3ZlbmFuY2UiLG11OiJldmVudF9zb3VyY2UiLEViOiJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiLHdtOiJldmVudF91c2FnZSIsQ2g6ImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyIscHU6ImFkZF9wYXJhbWV0ZXIiLFVpOiJjb3VudGluZ19tZXRob2QiLERoOiJzZW5kX2FzX2lmcmFtZSIscXU6InBhcmFtZXRlcl9vcmRlciIsRWg6InBhcnNlZF90YXJnZXQiLHN1OiJmb3JtX2V2ZW50X2NhbmNlbGVkIixBcToiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIixWaToiZ2E0X3JlcXVlc3RfZmxhZ3MiLE5tOiJnYnJhaWRfY29va2llX21hcmtlZCIsUW06Imd0bV9leHRyYWN0ZWRfZGF0YSIsQ2M6ImhhbmRsZV9pbnRlcm5hbGx5Iix1dToiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiLGRhOiJoaXRfdHlwZSIsRGM6ImhpdF90eXBlX292ZXJyaWRlIiwKSHE6Imlnbm9yZV9kdXBlX2NvbmZpZyIsT3U6ImlzX2NvbmZpZ19jb21tYW5kIixHaDoiaXNfY29uc2VudF91cGRhdGUiLG1nOiJpc19jb252ZXJzaW9uIixXbToiaXNfZWNvbW1lcmNlIixYbToiaXNfZWNfY21fc3BsaXQiLGFlOiJpc19leHRlcm5hbF9ldmVudCIsbmc6ImlzX2ZpcnN0X3Zpc2l0IixZbToiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiIsWmk6ImlzX2ZsX2ZhbGxiYWNrX2NvbnZlcnNpb25fZmxvd19hbGxvd2VkIixmZDoiaXNfZnBtX2VuY3J5cHRpb24iLGFqOiJpc19mcG1fc3BsaXQiLG9iOiJpc19nY3BfYnJvd3NlciIsYmo6ImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIixjajoiaXNfZ29vZ2xlX3NpZ25hbHNfZW5hYmxlZCIsYmU6ImlzX21lcmNoYW50X2NlbnRlciIsSGg6ImlzX25ld190b19zaXRlIixFYzoiaXNfcGVyc29uYWxpemF0aW9uIixkajoiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iLFRlOiJpc19zZXNzaW9uX3N0YXJ0IixibjoiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIiwKUHU6ImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCIsUXU6ImlzX3NndG1fcHJlaGl0IixkbjoiaXNfc2d0bV9zZXJ2aWNlX3dvcmtlciIsSWg6ImlzX3NwbGl0X2NvbnZlcnNpb24iLElxOiJpc19zeW4iLEZjOiJpc190ZXN0X2V2ZW50IixvZzoiam9pbl9pZCIsZWo6ImpvaW5fZWxhcHNlZCIscGc6ImpvaW5fdGltZXJfc2VjIixnbjoibG9jYWxfc3RvcmFnZV9hd19jb252ZXJzaW9uX2NvdW50ZXJzIixXZToidHVubmVsX3VwZGF0ZWQiLFV1OiJwcmVoaXRfZm9yX3JldHJ5IixXdToicHJvbWlzZXMiLFh1OiJyZWNvcmRfYXdfbGF0ZW5jeSIsWGU6InJlZGFjdF9hZHNfZGF0YSIsWWU6InJlZGFjdF9jbGlja19pZHMiLHBuOiJyZW1hcmtldGluZ19vbmx5Iixsajoic2VuZF9jY21fcGFyYWxsZWxfcGluZyIsaGQ6InNlbmRfZG91YmxlY2xpY2tfam9pbiIsTWg6InNlbmRfZnBtX2dlb19qb2luIixOaDoic2VuZF9mcG1fZ29vZ2xlX2pvaW4iLFp1OiJzZW5kX2NjbV9wYXJhbGxlbF90ZXN0X3BpbmciLApybjoic2VuZF9nb29nbGVfbWVhc3VyZW1lbnQiLHJnOiJzZW5kX3RsZF9qb2luIixzZzoic2VuZF90b19kZXN0aW5hdGlvbnMiLG1qOiJzZW5kX3RvX3RhcmdldHMiLHNuOiJzZW5kX3VzZXJfZGF0YV9oaXQiLHBqOiJzZXJ2aWNlX3dvcmtlcl9jb250ZXh0IixOYjoic291cmNlX2Nhbm9uaWNhbF9pZCIsSmE6InNwZWN1bGF0aXZlIix5bjoic3BlY3VsYXRpdmVfaW5fbWVzc2FnZSIsQW46InN1cHByZXNzX3NjcmlwdF9sb2FkIixCbjoic3luX29yX21vZCIsemo6InRyYW5zaWVudF9lY3NpZCIsdGc6InRyYW5zbWlzc2lvbl90eXBlIixZYToidXNlcl9kYXRhIixndjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIixodjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciIsR246InVzZXJfZGF0YV9mcm9tX2NvZGUiLGlyOiJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiLGp2OiJ1c2VyX2RhdGFfbW9kZSIsdWc6InVzZXJfaWRfdXBkYXRlZCJ9fTt2YXIgSj17VTp7a3A6MSxtcDoyLEVuOjMsbm46NCxxbDo1LHJsOjYsRXE6NyxucDo4LERxOjksanA6MTAsaHA6MTEseG46MTIsdm46MTMsTms6MTQsVW86MTUsV286MTYsaG46MTcsc2w6MTgsZm46MTksbHA6MjAsUHE6MjEsYXA6MjIsVm86MjMsWG86MjQsbmw6MjUsTGs6MjYsZXI6MjcsSm06MjgsVW06MjksVG06MzAsU206MzEsTW06MzIsS206MzMsTG06MzQsR206MzUsRm06MzYsSG06MzcsSW06MzgsQnE6MzksQ3E6NDAsVXE6NDF9fTtKLlVbSi5VLmtwXT0iQ1JFQVRFX0VWRU5UX1NPVVJDRSI7Si5VW0ouVS5tcF09IkVESVRfRVZFTlQiO0ouVVtKLlUuRW5dPSJUUkFGRklDX1RZUEUiO0ouVVtKLlUubm5dPSJSRUZFUlJBTF9FWENMVVNJT04iO0ouVVtKLlUucWxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVEFHIjtKLlVbSi5VLnJsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1VBX1NDSEVNQSI7Si5VW0ouVS5FcV09IkdBX1NFTkQiO0ouVVtKLlUubnBdPSJFTV9GT1JNIjsKSi5VW0ouVS5EcV09IkdBX0dBTV9MSU5LIjtKLlVbSi5VLmpwXT0iQ1JFQVRFX0VWRU5UX0FVVE9fUEFHRV9QQVRIIjtKLlVbSi5VLmhwXT0iQ1JFQVRFRF9FVkVOVCI7Si5VW0ouVS54bl09IlNJREVMT0FERUQiO0ouVVtKLlUudm5dPSJTR1RNX0xFR0FDWV9DT05GSUdVUkFUSU9OIjtKLlVbSi5VLk5rXT0iQ0NEX0VNX0VWRU5UIjtKLlVbSi5VLlVvXT0iQVVUT19SRURBQ1RfRU1BSUwiO0ouVVtKLlUuV29dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTSI7Si5VW0ouVS5obl09Ik1VTFRJUExFX1BBR0VWSUVXX0ZST01fQ09ORklHIjtKLlVbSi5VLnNsXT0iRU1fRVZFTlRfU0VOVF9CRUZPUkVfQ09ORklHIjtKLlVbSi5VLmZuXT0iTE9BREVEX1ZJQV9DU1RfT1JfU0lERUxPQURJTkciO0ouVVtKLlUubHBdPSJERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLlBxXT0iTk9OX0RFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuYXBdPSJDQ0RfRVZFTlRfU0dUTSI7CkouVVtKLlUuVm9dPSJBVVRPX1JFREFDVF9FTUFJTF9TR1RNIjtKLlVbSi5VLlhvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU1fU0dUTSI7Si5VW0ouVS5ubF09IkRBSUxZX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuTGtdPSJCVVJTVF9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLmVyXT0iU0hBUkVEX1VTRVJfSURfU0VUX0FGVEVSX1JFUVVFU1QiO0ouVVtKLlUuSm1dPSJHQTRfTVVMVElQTEVfU0VTU0lPTl9DT09LSUVTIjtKLlVbSi5VLlVtXT0iSU5WQUxJRF9HQTRfU0VTU0lPTl9DT1VOVCI7Si5VW0ouVS5UbV09IklOVkFMSURfR0E0X0xBU1RfRVZFTlRfVElNRVNUQU1QIjtKLlVbSi5VLlNtXT0iSU5WQUxJRF9HQTRfSk9JTl9USU1FUiI7Si5VW0ouVS5NbV09IkdBNF9TVEFMRV9TRVNTSU9OX0NPT0tJRV9TRUxFQ1RFRCI7Si5VW0ouVS5LbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzFfUkVBRCI7Si5VW0ouVS5MbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzJfUkVBRCI7CkouVVtKLlUuR21dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVZBSUxBQkxFIjtKLlVbSi5VLkZtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FQUExJRUQiO0ouVVtKLlUuSG1dPSJHQTRfR09PR0xFX01FQVNVUkVNRU5UX0FMTE9XRUQiO0ouVVtKLlUuSW1dPSJHQTRfR09PR0xFX1NJR05BTFNfRU5BQkxFRCI7Si5VW0ouVS5CcV09IkdBNF9GQUxMQkFDS19SRVFVRVNUIjtKLlVbSi5VLkNxXT0iR0FfQURTX0xJTktfQkVGT1JFX0NPTlZFUlNJT05fTUFSS0lORyI7Si5VW0ouVS5VcV09IlBMQVRJTlVNX0VMSUdJQkxFIjt2YXIgeGc9e30seWc9KHhnLnVhYT0hMCx4Zy51YWI9ITAseGcudWFmdmw9ITAseGcudWFtYj0hMCx4Zy51YW09ITAseGcudWFwPSEwLHhnLnVhcHY9ITAseGcudWF3PSEwLHhnKTsKdmFyIEVnPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWEsZT1iW2NdO2lmKCFDZy5leGVjKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSB3aWxkY2FyZCIpO3ZhciBmPWUuaW5kZXhPZigiLioiKSxnPWYhPT0tMSYmZj09PWUubGVuZ3RoLTIsaD1nP2Uuc2xpY2UoMCxlLmxlbmd0aC0yKTplLGw7YTppZihkLmxlbmd0aD09PTApbD0hMTtlbHNle2Zvcih2YXIgbj1kLnNwbGl0KCIuIikscD0wO3A8bi5sZW5ndGg7cCsrKWlmKCFEZy5leGVjKG5bcF0pKXtsPSExO2JyZWFrIGF9bD0hMH1pZighbHx8aC5sZW5ndGg+ZC5sZW5ndGh8fCFnJiZkLmxlbmd0aCE9PWUubGVuZ3RoPzA6Zz9TYihkLGgpJiYoZD09PWh8fGQuY2hhckF0KGgubGVuZ3RoKT09PSIuIik6ZD09PWgpcmV0dXJuITB9cmV0dXJuITF9LERnPS9eW2EteiRfXVtcdy0kXSokL2ksQ2c9L14oPzpbYS16XyRdW2Etei1fJDAtOV0qXC4pKlthLXpfJF1bYS16LV8kMC05XSooPzpcLlwqKT8kL2k7CnZhciBGZz1bIm1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJtb3pNYXRjaGVzU2VsZWN0b3IiLCJtc01hdGNoZXNTZWxlY3RvciIsIm9NYXRjaGVzU2VsZWN0b3IiXTtmdW5jdGlvbiBHZyhhLGIpe2lmKCFhKXJldHVybiExO3RyeXtmb3IodmFyIGM9MDtjPEZnLmxlbmd0aDtjKyspe3ZhciBkPUZnW2NdO2lmKGFbZF0hPW51bGwpcmV0dXJuIGFbZF0oYil9fWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBIZyhhLGIpe3ZhciBjPVN0cmluZyhhKSxkPVN0cmluZyhiKSxlPWMubGVuZ3RoLWQubGVuZ3RoO3JldHVybiBlPj0wJiZjLmluZGV4T2YoZCxlKT09PWV9ZnVuY3Rpb24gSWcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpLnNwbGl0KCIsIikuaW5kZXhPZihTdHJpbmcoYikpPj0wfQpmdW5jdGlvbiBKZyhhLGIsYyxkKXt2YXIgZT1jPyJpIjp2b2lkIDA7dHJ5e3ZhciBmPVN0cmluZyhiKStTdHJpbmcoZSksZz1kPT1udWxsP3ZvaWQgMDpkLmdldChmKTtnfHwoZz1uZXcgUmVnRXhwKGIsZSksZD09bnVsbHx8ZC5zZXQoZixnKSk7cmV0dXJuIGcudGVzdChhKX1jYXRjaChoKXtyZXR1cm4hMX19ZnVuY3Rpb24gS2coYSxiKXtyZXR1cm4gU3RyaW5nKGEpLmluZGV4T2YoU3RyaW5nKGIpKT49MH1mdW5jdGlvbiBMZyhhLGIpe3JldHVybiBTdHJpbmcoYSk9PT1TdHJpbmcoYil9ZnVuY3Rpb24gTWcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPj1OdW1iZXIoYil9ZnVuY3Rpb24gTmcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPD1OdW1iZXIoYil9ZnVuY3Rpb24gT2coYSxiKXtyZXR1cm4gTnVtYmVyKGEpPk51bWJlcihiKX1mdW5jdGlvbiBQZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8TnVtYmVyKGIpfQpmdW5jdGlvbiBRZyhhLGIpe3JldHVybiBTYihTdHJpbmcoYSksU3RyaW5nKGIpKX07ZnVuY3Rpb24gWGcoYSl7dmFyIGI9YS5zZWFyY2g7cmV0dXJuIGEucHJvdG9jb2wrIi8vIithLmhvc3RuYW1lK2EucGF0aG5hbWUrKGI/YisiJnJpY2hzc3Rzc2UiOiI/cmljaHNzdHNzZSIpfTt2YXIgWWc9ZnVuY3Rpb24oKXt0aGlzLlI9IiJ9LCRnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9Yi5mYWxsYmFja191cmwsZD1iLmZhbGxiYWNrX3VybF9tZXRob2Q7aWYoYyYmZCl7dmFyIGU9e307WmcoYSwoZVtkXT1bY10sZS5vcHRpb25zPXt9LGUpKX19fSxhaD1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTt0eXBlb2YgZj09PSJzdHJpbmciJiZjKGYsYil9fSxaZz1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPUNkKGIub3B0aW9ucyk/Yi5vcHRpb25zOnt9LGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1iW2ZdO3N3aXRjaChmKXtjYXNlICJzZW5kX3BpeGVsIjphaChnLGMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLksoaCxsKX0pO2JyZWFrO2Nhc2UgImZldGNoIjphaChnLApjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5IKGgsbCl9KX19fTt2YXIgYmg9L14oW2Etel1bYS16MC05XSopOighfFw/KShcKnxzdHJpbmd8Ym9vbGVhbnxudW1iZXJ8Rm58UGl4aWVNYXB8TGlzdHxPcGFxdWVWYWx1ZSkkL2ksY2g9e0ZuOiJmdW5jdGlvbiIsUGl4aWVNYXA6Ik9iamVjdCIsTGlzdDoiQXJyYXkifTsKZnVuY3Rpb24gZGgoYSxiKXtmb3IodmFyIGM9WyJpbnB1dDohKiJdLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9YmguZXhlYyhjW2RdKTtpZighZSl0aHJvdyBFcnJvcigiSW50ZXJuYWwgRXJyb3IgaW4gIithKTt2YXIgZj1lWzFdLGc9ZVsyXT09PSIhIixoPWVbM10sbD1iW2RdO2lmKGw9PW51bGwpe2lmKGcpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBSZXF1aXJlZCBhcmd1bWVudCAiK2YrIiBub3Qgc3VwcGxpZWQuIik7fWVsc2UgaWYoaCE9PSIqIil7dmFyIG49dHlwZW9mIGw7bCBpbnN0YW5jZW9mIEtkP249IkZuIjpsIGluc3RhbmNlb2YgR2Q/bj0iTGlzdCI6bCBpbnN0YW5jZW9mIGtiP249IlBpeGllTWFwIjpsIGluc3RhbmNlb2YgU2Q/bj0iUGl4aWVQcm9taXNlIjpsIGluc3RhbmNlb2YgUGQmJihuPSJPcGFxdWVWYWx1ZSIpO2lmKG4hPT1oKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gQXJndW1lbnQgIitmKyIgaGFzIHR5cGUgIisoKGNoW25dfHxuKSsiLCB3aGljaCBkb2VzIG5vdCBtYXRjaCByZXF1aXJlZCB0eXBlICIpKwooKGNoW2hdfHxoKSsiLiIpKTt9fX1mdW5jdGlvbiBLKGEsYixjKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2cgaW5zdGFuY2VvZiBLZD9kLnB1c2goImZ1bmN0aW9uIik6ZyBpbnN0YW5jZW9mIEdkP2QucHVzaCgiQXJyYXkiKTpnIGluc3RhbmNlb2Yga2I/ZC5wdXNoKCJPYmplY3QiKTpnIGluc3RhbmNlb2YgU2Q/ZC5wdXNoKCJQcm9taXNlIik6ZyBpbnN0YW5jZW9mIFBkP2QucHVzaCgiT3BhcXVlVmFsdWUiKTpkLnB1c2godHlwZW9mIGcpfXJldHVybiBFcnJvcigiQXJndW1lbnQgZXJyb3IgaW4gIithKyIuIEV4cGVjdGVkIGFyZ3VtZW50IHR5cGVzIFsiKyhiLmpvaW4oIiwiKSsiXSwgYnV0IHJlY2VpdmVkIFsiKSsoZC5qb2luKCIsIikrIl0uIikpfWZ1bmN0aW9uIGVoKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2J9ZnVuY3Rpb24gZmgoYSl7cmV0dXJuIGVoKGEpfHxhPT09bnVsbHx8Z2goYSl9CmZ1bmN0aW9uIGhoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgS2R9ZnVuY3Rpb24gaWgoYSl7cmV0dXJuIGhoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gamgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBHZH1mdW5jdGlvbiBraChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFBkfWZ1bmN0aW9uIGxoKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIG1oKGEpe3JldHVybiBsaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIG5oKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn1mdW5jdGlvbiBvaChhKXtyZXR1cm4gbmgoYSl8fGdoKGEpfWZ1bmN0aW9uIHBoKGEpe3JldHVybiBuaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIHFoKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifWZ1bmN0aW9uIGdoKGEpe3JldHVybiBhPT09dm9pZCAwfTtmdW5jdGlvbiByaChhKXtyZXR1cm4iIithfQpmdW5jdGlvbiBzaChhLGIpe3ZhciBjPVtdO3JldHVybiBjfTtmdW5jdGlvbiB0aChhLGIpe3ZhciBjPW5ldyBLZChhLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXT10aGlzLmV2YWx1YXRlKGRbZV0pO3RyeXtyZXR1cm4gYi5hcHBseSh0aGlzLGQpfWNhdGNoKGcpe3Rocm93IGNiKGcpO319KTtjLlphKCk7cmV0dXJuIGN9CmZ1bmN0aW9uIHVoKGEsYil7dmFyIGM9bmV3IGtiLGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO3liKGUpP2Muc2V0KGQsdGgoYSsiXyIrZCxlKSk6Q2QoZSk/Yy5zZXQoZCx1aChhKyJfIitkLGUpKTooQWIoZSl8fHpiKGUpfHx0eXBlb2YgZT09PSJib29sZWFuIikmJmMuc2V0KGQsZSl9Yy5aYSgpO3JldHVybiBjfTtmdW5jdGlvbiB3aChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydEFwaVN1YmplY3QiLApjKX07ZnVuY3Rpb24geGgoYSxiKXtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIFNkKXRocm93IEVycm9yKCJBcmd1bWVudCBhY3R1YWwgY2Fubm90IGhhdmUgdHlwZSBQcm9taXNlLiBBc3NlcnRpb25zIG9uIGFzeW5jaHJvbm91cyBjb2RlIGFyZW4ndCBzdXBwb3J0ZWQuIik7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydFRoYXRTdWJqZWN0IixjKX07ZnVuY3Rpb24geWgoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBiPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxjPVtdLGQ9dGhpcy5ULGU9MDtlPGIubGVuZ3RoOysrZSljLnB1c2goVGQoYltlXSxkKSk7cmV0dXJuIFVkKGEuYXBwbHkobnVsbCxjKSl9fWZ1bmN0aW9uIHpoKCl7Zm9yKHZhciBhPU1hdGgsYj1BaCxjPXt9LGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTthLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT15aChhW2VdLmJpbmQoYSkpKX1yZXR1cm4gY307ZnVuY3Rpb24gQmgoYSl7cmV0dXJuIGEhPW51bGwmJlNiKGEsIl9fY3Z0XyIpfTtmdW5jdGlvbiBDaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRGgoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEVoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJKGEpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEZoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gR2goYSxiKXt2YXIgYz0hMTt2YXIgZD1KU09OLnBhcnNlKGEpO2lmKCFkKXRocm93IEVycm9yKCJJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBzdHJpbmcgd2FzIGdpdmVuLiIpO2M9SGgoZCxiKTtyZXR1cm4gY30KdmFyIEloPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe2lmKGE9PT12b2lkIDApcmV0dXJuO2E9YVtiW2NdXX1yZXR1cm4gYX0sSmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnByZUhpdDtpZihjKXt2YXIgZD1hWzBdO3N3aXRjaChkKXtjYXNlICJoaXREYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRIaXREYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgIm1ldGFkYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRNZXRhZGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJldmVudE5hbWUiOnJldHVybiBjLmdldEV2ZW50TmFtZSgpO2Nhc2UgImRlc3RpbmF0aW9uSWQiOnJldHVybiBjLmdldERlc3RpbmF0aW9uSWQoKTtkZWZhdWx0OnRocm93IEVycm9yKGQrIiBpcyBub3QgYSB2YWxpZCBmaWVsZCB0aGF0IGNhbiBiZSBhY2Nlc3NlZFxuICAgICAgICAgICAgICAgICAgICAgIGZyb20gUHJlSGl0IGRhdGEuIik7fX19LApLaD1mdW5jdGlvbihhLGIpe2lmKGEpe2lmKGEuY29udGV4dFZhbHVlIT09dm9pZCAwKXt2YXIgYzthOnt2YXIgZD1hLmNvbnRleHRWYWx1ZSxlPWQua2V5UGFydHM7aWYoZSYmZS5sZW5ndGghPT0wKXt2YXIgZj1kLm5hbWVzcGFjZVR5cGU7c3dpdGNoKGYpe2Nhc2UgMTpjPUpoKGUsYik7YnJlYWsgYTtjYXNlIDI6dmFyIGc9Yi5tYWNybztjPWc/Z1tlWzBdXTp2b2lkIDA7YnJlYWsgYTtkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZSBUeXBlIHVzZWQ6ICIrZik7fX1jPXZvaWQgMH1yZXR1cm4gY31pZihhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUhPT12b2lkIDApcmV0dXJuIEhoKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSxiKTtpZihhLmJvb2xlYW5WYWx1ZSE9PXZvaWQgMClyZXR1cm4hIWEuYm9vbGVhblZhbHVlO2lmKGEuc3RyaW5nVmFsdWUhPT12b2lkIDApcmV0dXJuIFN0cmluZyhhLnN0cmluZ1ZhbHVlKTtpZihhLmludGVnZXJWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuaW50ZWdlclZhbHVlKTsKaWYoYS5kb3VibGVWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuZG91YmxlVmFsdWUpO3Rocm93IEVycm9yKCJVbmtub3duIGZpZWxkIHVzZWQgZm9yIHZhcmlhYmxlIG9mIHR5cGUgRXhwcmVzc2lvblZhbHVlOiIrYSk7fX0sSGg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmFyZ3M7aWYoIUFycmF5LmlzQXJyYXkoYyl8fGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAiYXJncyI6JytjKyIgcHJvcGVydHkgdG9cbiAgICAgICAgIGJlIG5vbi1lbXB0eSBhcnJheS4iKTt2YXIgZD1mdW5jdGlvbihnKXtyZXR1cm4gS2goZyxiKX07c3dpdGNoKGEudHlwZSl7Y2FzZSAxOmZvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWlmKGQoY1tlXSkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSAyOmZvcih2YXIgZj0wO2Y8Yy5sZW5ndGg7ZisrKWlmKCFkKGNbZl0pKXJldHVybiExO3JldHVybiBjLmxlbmd0aD4wO2Nhc2UgMzpyZXR1cm4hZChjWzBdKTsKY2FzZSA0OnJldHVybiBKZyhkKGNbMF0pLGQoY1sxXSksITEsYi5yZWdleENhY2hlKTtjYXNlIDU6cmV0dXJuIExnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA2OnJldHVybiBRZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNzpyZXR1cm4gSGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDg6cmV0dXJuIEtnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA5OnJldHVybiBQZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTA6cmV0dXJuIE5nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMTpyZXR1cm4gT2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEyOnJldHVybiBNZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTM6cmV0dXJuIElnKGQoY1swXSksU3RyaW5nKGQoY1sxXSkpKTtkZWZhdWx0OnRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJ0eXBlIiBwcm9wZXJ0eSB0b2JlIGEgcG9zaXRpdmUgaW50ZWdlciB3aGljaCBpcyBsZXNzIHRoYW4gMTQuJyk7fX07CmZ1bmN0aW9uIExoKGEpe2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7fTtmdW5jdGlvbiBNaChhKXt2YXIgYj1UZChhKTtyZXR1cm4gbmcoYj8iIitiOiIiKX07ZnVuY3Rpb24gTmgoYSxiKXtpZighcWgoYSl8fCFxaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIiwibnVtYmVyIl0sYXJndW1lbnRzKTtyZXR1cm4gRGIoYSxiKX07ZnVuY3Rpb24gT2goKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07ZnVuY3Rpb24gUGgoYSl7aWYoYT09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEgaW5zdGFuY2VvZiBHZClyZXR1cm4iYXJyYXkiO2lmKGEgaW5zdGFuY2VvZiBLZClyZXR1cm4iZnVuY3Rpb24iO2lmKGEgaW5zdGFuY2VvZiBQZCl7dmFyIGI9YS5nZXRWYWx1ZSgpO2lmKChiPT1udWxsP3ZvaWQgMDpiLmNvbnN0cnVjdG9yKT09PXZvaWQgMHx8Yi5jb25zdHJ1Y3Rvci5uYW1lPT09dm9pZCAwKXt2YXIgYz1TdHJpbmcoYik7cmV0dXJuIGMuc3Vic3RyaW5nKDgsYy5sZW5ndGgtMSl9cmV0dXJuIFN0cmluZyhiLmNvbnN0cnVjdG9yLm5hbWUpfXJldHVybiB0eXBlb2YgYX07ZnVuY3Rpb24gUWgoYSl7ZnVuY3Rpb24gYihjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dHJ5e3JldHVybiBjKGQpfWNhdGNoKGUpeyhsZ3x8bWcuUG8pJiZhLmNhbGwodGhpcyxlLm1lc3NhZ2UpfX19cmV0dXJue3BhcnNlOmIoZnVuY3Rpb24oYyl7cmV0dXJuIFVkKEpTT04ucGFyc2UoYykpfSksc3RyaW5naWZ5OmIoZnVuY3Rpb24oYyl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFRkKGMpKX0pLHB1YmxpY05hbWU6IkpTT04ifX07ZnVuY3Rpb24gUmgoYSl7cmV0dXJuIEliKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFNoKGEpe3JldHVybiBOdW1iZXIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gVGgoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gVWgoYSxiLGMpe3ZhciBkPW51bGwsZT0hMTtyZXR1cm4gZT9kOm51bGx9O3ZhciBBaD0iZmxvb3IgY2VpbCByb3VuZCBtYXggbWluIGFicyBwb3cgc3FydCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBWaCgpe3ZhciBhPXt9O3JldHVybntXcjpmdW5jdGlvbihiKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOnZvaWQgMH0sS286ZnVuY3Rpb24oYixjKXthW2JdPWN9LHJlc2V0OmZ1bmN0aW9uKCl7YT17fX19fWZ1bmN0aW9uIFdoKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEtkLnByb3RvdHlwZS5pbnZva2UuYXBwbHkoYSxbYl0uY29uY2F0KHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSkpfX0KZnVuY3Rpb24gWGgoYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7fQpmdW5jdGlvbiBZaChhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJQaXhpZU1hcCJdLGFyZ3VtZW50cyk7fTt2YXIgWmg9e307dmFyICRoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtpZihhIGluc3RhbmNlb2YgR2QpZm9yKHZhciBjPWEuRmEoKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07YS5oYXMoZSkmJmIuc2V0KGUsYS5nZXQoZSkpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIEtkKWZvcih2YXIgZj1hLkZhKCksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO2Iuc2V0KGgsYS5nZXQoaCkpfWVsc2UgZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYi5zZXQobCxhW2xdKTtyZXR1cm4gYn07ClpoLmtleXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5GYSgpKTtyZXR1cm4gbmV3IEdkfTsKWmgudmFsdWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuaGMoKSk7cmV0dXJuIG5ldyBHZH07ClpoLmVudHJpZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5mYygpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gbmV3IEdkKGIpfSkpO3JldHVybiBuZXcgR2R9OwpaaC5mcmVlemU9ZnVuY3Rpb24oYSl7KGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZCkmJmEuWmEoKTtyZXR1cm4gYX07WmguZGVsZXRlPWZ1bmN0aW9uKGEsYil7aWYoYSBpbnN0YW5jZW9mIGtiJiYhYS5IYigpKXJldHVybiBhLnJlbW92ZShiKSwhMDtyZXR1cm4hMX07ZnVuY3Rpb24gTChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPWEuVC54YigpO2lmKCFkKXRocm93IEVycm9yKCJNaXNzaW5nIHByb2dyYW0gc3RhdGUuIik7aWYoZC5pdCl7dHJ5e2QuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX1jYXRjaChlKXt0aHJvdyBzYigiVEFHR0lORyIsMjEpLGU7fXJldHVybn1kLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9O3ZhciBhaT1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPSEwO307YWkucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGFpbnMoYSk/dGhpcy5LW2FdOnZvaWQgMDtyZXR1cm4gY307YWkucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLksuaGFzT3duUHJvcGVydHkoYSl9OwphaS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZih0aGlzLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGFuIEFQSSB3aXRoIGFuIGV4aXN0aW5nIHByaXZhdGUgQVBJIG5hbWU6ICIrYSsiLiIpO3RoaXMuS1thXT1jP3ZvaWQgMDp5YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIGJpKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfTtmdW5jdGlvbiBjaSgpe3ZhciBhPXt9OwpyZXR1cm4gYX07dmFyIGRpPXt9LGVpPShkaVtGLkQuc2FdPSJnY3UiLGRpW0YuRC5laF09ImVwdCIsZGlbRi5ELlNiXT0iZ2NsZ2IiLGRpW0YuRC5sYl09ImdjbGF3IixkaVtGLkQuemxdPSJnY2xpZF9sZW4iLGRpW0YuRC5CZV09ImdjbGdzIixkaVtGLkQuQ2VdPSJnY2xscCIsZGlbRi5ELkRlXT0iZ2Nsc3QiLGRpW0YuRC5FZF09ImF1aWQiLGRpW0YuRC5CbF09ImFlIixkaVtGLkQuQ2ZdPSJkc2NudCIsZGlbRi5ELkRmXT0iZmNudHIiLGRpW0YuRC5FZl09ImZsbmciLGRpW0YuRC5GZl09Im1pZCIsZGlbRi5ELndpXT0iYnR0eXBlIixkaVtGLkQuS2JdPSJnYWNpZCIsZGlbRi5ELkdkXT0ibGFiZWwiLGRpW0YuRC5GZV09ImNhcGkiLGRpW0YuRC5qaF09InBzY2RsIixkaVtGLkQuZWJdPSJjdXJyZW5jeV9jb2RlIixkaVtGLkQuR2VdPSJ2ZGx0diIsZGlbRi5ELmtoXT0iY2xvY3QiLGRpW0YuRC5FbF09Il9kYmciLGRpW0YuRC5JZV09Im9lZGVsZCIsZGlbRi5ELlZjXT0iZWRpZCIsZGlbRi5ELk1kXT0iZXZuaWQiLApkaVtGLkQuRWldPSJldmppZCIsZGlbRi5ELk5kXT0iZXhjaWQiLGRpW0YuRC5yaF09ImdhYyIsZGlbRi5ELkplXT0iZ2FjZ2IiLGRpW0YuRC5NbF09ImdhY21jb3YiLGRpW0YuRC5LZV09ImdkcHIiLGRpW0YuRC5YY109ImdkaWQiLGRpW0YuRC5MZV09Il9uZyIsZGlbRi5ELmNxXT0iX29ubyIsZGlbRi5ELnRoXT0iZ3BwX3NpZCIsZGlbRi5ELnVoXT0iZ3BwIixkaVtGLkQuUGxdPSJnc2FleHAiLGRpW0YuRC5WZl09Il90dSIsZGlbRi5ELk1lXT0iZnJtIixkaVtGLkQuS2ldPSJndG1fdXAiLGRpW0YuRC5QZF09ImxwcyIsZGlbRi5ELkxpXT0iZGlkIixkaVtGLkQuUWRdPSJmY250ciIsZGlbRi5ELlJkXT0iZmxuZyIsZGlbRi5ELlNkXT0ibWlkIixkaVtGLkQuTmVdPXZvaWQgMCxkaVtGLkQuTWJdPSJ0aWJhIixkaVtGLkQuV2JdPSJyZHAiLGRpW0YuRC54Y109ImVjc2lkIixkaVtGLkQuWmZdPSJnYV91aWQiLGRpW0YuRC5VZF09ImRlbG9wYyIsZGlbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IiwKZGlbRi5ELlBhXT0ib2lkIixkaVtGLkQuZG1dPSJvaWRzcmMiLGRpW0YuRC5mbV09InVwdGdzIixkaVtGLkQuY2ddPSJ1YWEiLGRpW0YuRC5kZ109InVhYiIsZGlbRi5ELmVnXT0idWFmdmwiLGRpW0YuRC5mZ109InVhbWIiLGRpW0YuRC5nZ109InVhbSIsZGlbRi5ELmhnXT0idWFwIixkaVtGLkQuaWddPSJ1YXB2IixkaVtGLkQuamddPSJ1YXciLGRpW0YuRC5nbV09ImVjX2xhdCIsZGlbRi5ELmhtXT0iZWNfbWV0YSIsZGlbRi5ELmltXT0iZWNfbSIsZGlbRi5ELmptXT0iZWNfc2VsIixkaVtGLkQua21dPSJlY19zIixkaVtGLkQuQmNdPSJlY19tb2RlIixkaVtGLkQuZmJdPSJ1c2VySWQiLGRpW0YuRC5rZ109InVzX3ByaXZhY3kiLGRpW0YuRC5RYV09InZhbHVlIixkaVtGLkQucW1dPSJtY292IixkaVtGLkQuV2ldPSJobiIsZGlbRi5ELlZtXT0iZ3RtX2VlIixkaVtGLkQuWWldPSJ1aXAiLGRpW0YuRC5KaF09Im10IixkaVtGLkQuZGVdPSJucGEiLGRpW0YuRC5ZcV09InNnX3VjIixkaVtGLkQueWldPQpudWxsLGRpW0YuRC5iZF09bnVsbCxkaVtGLkQudGJdPW51bGwsZGlbRi5ELkhhXT1udWxsLGRpW0YuRC56YV09bnVsbCxkaVtGLkQuVWFdPW51bGwsZGlbRi5ELlBlXT1udWxsLGRpW0YuRC5lZF09bnVsbCxkaVtGLkQuc2hdPW51bGwsZGlbRi5ELkJkXT1udWxsLGRpW0YuRC5DZF09bnVsbCxkaVtGLkQuZmhdPW51bGwsZGlbRi5ELmdoXT1udWxsLGRpW0YuRC5UYV09bnVsbCxkaVtGLkQuV2NdPW51bGwsZGkpO2Z1bmN0aW9uIGZpKGEsYil7aWYoYSl7dmFyIGM9YS5zcGxpdCgieCIpO2MubGVuZ3RoPT09MiYmKGdpKGIsInVfdyIsY1swXSksZ2koYiwidV9oIixjWzFdKSl9fWZ1bmN0aW9uIGhpKGEpe3ZhciBiPWlpO2I9Yj09PXZvaWQgMD9qaTpiO3JldHVybiBraShsaShhLGIpKX1mdW5jdGlvbiBraShhKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIigiK1ttaShiLnZhbHVlKSxtaShiLnF1YW50aXR5KSxtaShiLml0ZW1faWQpLG1pKGIuc3RhcnRfZGF0ZSksbWkoYi5lbmRfZGF0ZSldLmpvaW4oIioiKSsiKSJ9KS5qb2luKCIiKX0KZnVuY3Rpb24gbGkoYSxiKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJue2l0ZW1faWQ6YihjKSxxdWFudGl0eTpjLnF1YW50aXR5LHZhbHVlOmMucHJpY2Usc3RhcnRfZGF0ZTpjLnN0YXJ0X2RhdGUsZW5kX2RhdGU6Yy5lbmRfZGF0ZX19KX1mdW5jdGlvbiBqaShhKXtyZXR1cm5bYS5pdGVtX2lkLGEuaWQsYS5pdGVtX25hbWVdLmZpbmQoZnVuY3Rpb24oYil7cmV0dXJuIGIhPW51bGx9KX1mdW5jdGlvbiBuaShhKXtpZihhJiZhLmxlbmd0aClyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGImJmIuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU/Yi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZToiIn0pLmpvaW4oIiwiKX1mdW5jdGlvbiBnaShhLGIsYyl7Yz09PXZvaWQgMHx8Yz09PW51bGx8fGM9PT0iIiYmIXlnW2JdfHwoYVtiXT1jKX0KZnVuY3Rpb24gbWkoYSl7cmV0dXJuIHR5cGVvZiBhIT09Im51bWJlciImJnR5cGVvZiBhIT09InN0cmluZyI/IiI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBvaSgpe3RoaXMuYmxvY2tTaXplPS0xfTtmdW5jdGlvbiBwaShhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuTj1SYS5VaW50OEFycmF5P25ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTpBcnJheSh0aGlzLmJsb2NrU2l6ZSk7dGhpcy5SPXRoaXMuSz0wO3RoaXMuSD1bXTt0aGlzLmZhPWE7dGhpcy5aPWI7dGhpcy5qYT1SYS5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7cWk9PT12b2lkIDAmJihSYS5JbnQzMkFycmF5P3FpPW5ldyBJbnQzMkFycmF5KHJpKTpxaT1yaSk7dGhpcy5yZXNldCgpfVNhKHBpLG9pKTtmb3IodmFyIHNpPVtdLHRpPTA7dGk8NjM7dGkrKylzaVt0aV09MDt2YXIgdWk9W10uY29uY2F0KDEyOCxzaSk7CnBpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuUj10aGlzLks9MDt2YXIgYTtpZihSYS5JbnQzMkFycmF5KWE9bmV3IEludDMyQXJyYXkodGhpcy5aKTtlbHNle3ZhciBiPXRoaXMuWixjPWIubGVuZ3RoO2lmKGM+MCl7Zm9yKHZhciBkPUFycmF5KGMpLGU9MDtlPGM7ZSsrKWRbZV09YltlXTthPWR9ZWxzZSBhPVtdfXRoaXMuSD1hfTsKdmFyIHZpPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLk4sYz1hLmphLGQ9MCxlPTA7ZTxiLmxlbmd0aDspY1tkKytdPWJbZV08PDI0fGJbZSsxXTw8MTZ8YltlKzJdPDw4fGJbZSszXSxlPWQqNDtmb3IodmFyIGY9MTY7Zjw2NDtmKyspe3ZhciBnPWNbZi0xNV18MCxoPWNbZi0yXXwwO2NbZl09KChjW2YtMTZdfDApKygoZz4+Pjd8Zzw8MjUpXihnPj4+MTh8Zzw8MTQpXmc+Pj4zKXwwKSsoKGNbZi03XXwwKSsoKGg+Pj4xN3xoPDwxNSleKGg+Pj4xOXxoPDwxMyleaD4+PjEwKXwwKXwwfWZvcih2YXIgbD1hLkhbMF18MCxuPWEuSFsxXXwwLHA9YS5IWzJdfDAscT1hLkhbM118MCxyPWEuSFs0XXwwLHQ9YS5IWzVdfDAsdT1hLkhbNl18MCx2PWEuSFs3XXwwLHg9MDt4PDY0O3grKyl7dmFyIHk9KChsPj4+MnxsPDwzMCleKGw+Pj4xM3xsPDwxOSleKGw+Pj4yMnxsPDwxMCkpKyhsJm5ebCZwXm4mcCl8MCx6PSh2Kygocj4+PjZ8cjw8MjYpXihyPj4+MTF8cjw8MjEpXihyPj4+MjV8cjw8NykpfAowKSsoKChyJnRefnImdSkrKHFpW3hdfDApfDApKyhjW3hdfDApfDApfDA7dj11O3U9dDt0PXI7cj1xK3p8MDtxPXA7cD1uO249bDtsPXoreXwwfWEuSFswXT1hLkhbMF0rbHwwO2EuSFsxXT1hLkhbMV0rbnwwO2EuSFsyXT1hLkhbMl0rcHwwO2EuSFszXT1hLkhbM10rcXwwO2EuSFs0XT1hLkhbNF0rcnwwO2EuSFs1XT1hLkhbNV0rdHwwO2EuSFs2XT1hLkhbNl0rdXwwO2EuSFs3XT1hLkhbN10rdnwwfTsKcGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPWEubGVuZ3RoKTt2YXIgYz0wLGQ9dGhpcy5LO2lmKHR5cGVvZiBhPT09InN0cmluZyIpZm9yKDtjPGI7KXRoaXMuTltkKytdPWEuY2hhckNvZGVBdChjKyspLGQ9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKTtlbHNle3ZhciBlLGY9dHlwZW9mIGE7ZT1mIT0ib2JqZWN0Ij9mOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmY6Im51bGwiO2lmKGU9PSJhcnJheSJ8fGU9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKWZvcig7YzxiOyl7dmFyIGc9YVtjKytdO2lmKCEoIm51bWJlciI9PXR5cGVvZiBnJiYwPD1nJiYyNTU+PWcmJmc9PShnfDApKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuTltkKytdPWc7ZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsKfXRoaXMuSz1kO3RoaXMuUis9Yn07cGkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5SKjg7dGhpcy5LPDU2P3RoaXMudXBkYXRlKHVpLDU2LXRoaXMuSyk6dGhpcy51cGRhdGUodWksdGhpcy5ibG9ja1NpemUtKHRoaXMuSy01NikpO2Zvcih2YXIgYz02MztjPj01NjtjLS0pdGhpcy5OW2NdPWImMjU1LGIvPTI1Njt2aSh0aGlzKTtmb3IodmFyIGQ9MCxlPTA7ZTx0aGlzLmZhO2UrKylmb3IodmFyIGY9MjQ7Zj49MDtmLT04KWFbZCsrXT10aGlzLkhbZV0+PmYmMjU1O3JldHVybiBhfTsKdmFyIHJpPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsCjQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxxaTtmdW5jdGlvbiB3aSgpe3BpLmNhbGwodGhpcyw4LHhpKX1TYSh3aSxwaSk7dmFyIHhpPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07dmFyIHlpPS9eWzAtOUEtRmEtZl17NjR9JC87ZnVuY3Rpb24gemkoYSl7dHJ5e3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKX1jYXRjaChiKXtyZXR1cm4gWmIoYSl9fWZ1bmN0aW9uIEFpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3ZhciBjO2lmKChjPWIuY3J5cHRvKT09bnVsbD8wOmMuc3VidGxlKXtpZih5aS50ZXN0KGEpKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dHJ5e3ZhciBkPXppKGEpO3JldHVybiBiLmNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBCaShlLGIpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4iZTIifSl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTIiKX19ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMSIpfQpmdW5jdGlvbiBDaShhKXt0cnl7dmFyIGI9bmV3IHdpO2IudXBkYXRlKHppKGEpKTtyZXR1cm4gYi5kaWdlc3QoKX1jYXRjaChjKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBEaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCJ8fHlpLnRlc3QoYSkpcmV0dXJuIGE7dmFyIGM9Q2koYSk7aWYoYz09PSJlMiIpcmV0dXJuImUyIjt0cnl7cmV0dXJuIEJpKGMsYil9Y2F0Y2goZCl7cmV0dXJuImUyIn19ZnVuY3Rpb24gQmkoYSxiKXt2YXIgYz1BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZCl9KS5qb2luKCIiKTtyZXR1cm4gYi5idG9hKGMpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9O2Z1bmN0aW9uIEVpKCl7Zm9yKHZhciBhPSExLGI9ITEsYz0wO2E9PT1iOylpZihhPURiKDAsMSk9PT0wLGI9RGIoMCwxKT09PTAsYysrLGM+MzApcmV0dXJuO3JldHVybiBhfXZhciBHaT17c2s6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBGaS5zayhhLGIsYyl9fSxIaT1mdW5jdGlvbigpe3RoaXMuc3R1ZGllcz17fTt0aGlzLkg9RWl9OwpIaS5wcm90b3R5cGUuc2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuc3R1ZGllc1tiXTtpZighKChjPT09dm9pZCAwP0RiKDAsOTk5OSk6YyUxRTQpPGQucHJvYmFiaWxpdHkqKGQuY29udHJvbElkMj80OjIpKjFFNCkpcmV0dXJuIGE7YTp7dmFyIGU9ZC5zdHVkeUlkLGY9ZC5leHBlcmltZW50SWQsZz1kLmNvbnRyb2xJZCxoPWQuY29udHJvbElkMjtpZighKChhLmV4cHx8e30pW2ZdfHwoYS5leHB8fHt9KVtnXXx8aCYmKGEuZXhwfHx7fSlbaF0pKXt2YXIgbD1jIT09dm9pZCAwP2MlMj09PTA6dGhpcy5IKCk7aWYobCE9PXZvaWQgMCl7dmFyIG49bD8wOjE7aWYoaCl7dmFyIHA9YyE9PXZvaWQgMD8oYz4+MSklMj09PTA6dGhpcy5IKCk7aWYocD09PXZvaWQgMClicmVhayBhO258PShwPzA6MSk8PDF9bj09PTA/SWkoYSxmLGUpOm49PT0xP0lpKGEsZyxlKTpuPT09MiYmSWkoYSxoLGUpfX19cmV0dXJuIGF9Owp2YXIgS2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdP0ppKGMsYil8fCEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmV4cGVyaW1lbnRJZF06ITF9LExpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZCYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkXTohMX0sTWk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkMiYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkMl06ITF9LE5pPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEuZXhwfHx7fSxkPW0oT2JqZWN0LmtleXMoYykubWFwKE51bWJlcikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2lmKGNbZl09PT1iKXJldHVybiBmfX0sSmk9ZnVuY3Rpb24oYSwKYil7cmV0dXJuISFhLnN0dWRpZXNbYl0uYWN0aXZlfHxhLnN0dWRpZXNbYl0ucHJvYmFiaWxpdHk+LjV9LElpPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmV4cHx8e307ZFtiXT1jO2EuZXhwPWR9LEZpPW5ldyBIaTt2YXIgaWo9ZnVuY3Rpb24oKXt0aGlzLkg9QS5nb29nbGVfdGFnX21hbmFnZXI9QS5nb29nbGVfdGFnX21hbmFnZXJ8fHt9fSxqajtmdW5jdGlvbiBraihhLGIpe2xqKCk7dmFyIGM9amo7cmV0dXJuIGMuSFthXT1jLkhbYV18fGIoKX1mdW5jdGlvbiBtaihhKXtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIG5qKGEsYil7bGooKTtqai5IW2FdPWJ9ZnVuY3Rpb24gb2ooYSl7dmFyIGI9RSg1KTtsaigpO3ZhciBjPWpqO2MuSFtiXT1jLkhbYl18fGF9ZnVuY3Rpb24gcGooKXt2YXIgYT1FKDE5KTtsaigpO3ZhciBiPWpqO3JldHVybiBiLkhbYV09Yi5IW2FdfHx7fX1mdW5jdGlvbiBxaigpe3ZhciBhPUUoMTkpO2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gcmooKXtsaigpO3ZhciBhPWpqLGI9YS5ILnNlcXVlbmNlfHwxO2EuSC5zZXF1ZW5jZT1iKzE7cmV0dXJuIGJ9ZnVuY3Rpb24gbGooKXtqanx8KGpqPW5ldyBpail9O3ZhciBzaj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiAwO2Nhc2UgNDkxOnJldHVybiAxMjtjYXNlIDQ4MDpyZXR1cm4gMTE7Y2FzZSA0OTk6cmV0dXJuIDEwO2Nhc2UgNTAwOnJldHVybiA2O2Nhc2UgNDIxOnJldHVybiA5O2Nhc2UgNTYxOnJldHVybiAxNztjYXNlIDQ4MjpyZXR1cm4gMTU7Y2FzZSA1NzA6cmV0dXJuIDE5O2Nhc2UgNDk1OnJldHVybiAxMztjYXNlIDUxNDpyZXR1cm4gMTY7Y2FzZSA1NzM6cmV0dXJuIDE4O2Nhc2UgMjM1OnJldHVybiA4O2Nhc2UgNTM6cmV0dXJuIDE7Y2FzZSA1NDpyZXR1cm4gMjtjYXNlIDUyOnJldHVybiA0O2Nhc2UgNzU6cmV0dXJuIDN9fSx0aj1mdW5jdGlvbihhLGIpe2EuTltiXT0hMDt2YXIgYz1zaihiKTtjIT09dm9pZCAwJiYoV2ZbY109ITApfSxNPWZ1bmN0aW9uKGEpe3JldHVybiEhdWouTlthXX0sdWo9bmV3IGZ1bmN0aW9uKCl7dGhpcy5OPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107CnRqKHRoaXMsMTMyKTt2YXIgYT1OZig2LDZFNCk7WGZbMV09YTt2YXIgYj1OZig3LDEpO1hmWzNdPWI7dmFyIGM9TmYoMzUsNTApO1hmWzJdPWM7dmFyIGQ9TmYoNjksMTc3NjQ0ODkyMCk7WGZbNF09ZDsKdGoodGhpcyw0MzUpO3RqKHRoaXMsMTQxKTsKfTt2YXIgdmo9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFNldDt0aGlzLks9bmV3IFNldH0seGo9ZnVuY3Rpb24oYSl7dmFyIGI9d2ouSDthPWE9PT12b2lkIDA/W106YTt2YXIgYz1bXS5jb25jYXQodyhiLkgpKS5jb25jYXQoW10uY29uY2F0KHcoYi5LKSkpLmNvbmNhdChhKTtjLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGN9LHlqPWZ1bmN0aW9uKCl7dmFyIGE9W10uY29uY2F0KHcod2ouSC5IKSk7YS5zb3J0KGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGItY30pO3JldHVybiBhfSx6aj1mdW5jdGlvbigpe3ZhciBhPXdqLkgsYj1FKDQ0KTthLkg9bmV3IFNldDtpZihiIT09IiIpZm9yKHZhciBjPW0oYi5zcGxpdCgifiIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9TnVtYmVyKGQudmFsdWUpO2lzTmFOKGUpfHxhLkguYWRkKGUpfX07dmFyIEFqPXt9LEJqPXtfX2NsOjEsX19lY2w6MSxfX2VobDoxLF9fZXZsOjEsX19mYWw6MSxfX2ZpbDoxLF9fZnNsOjEsX19obDoxLF9famVsOjEsX19sY2w6MSxfX3NkbDoxLF9fdGw6MSxfX3l0bDoxfSxDaj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHtfX3BhdXNlZDoxLF9fdGc6MX0sQmopLERqLEVqPSExO0RqPUVqO3ZhciBGaj0iIjtBai5xaj1Gajt2YXIgd2o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPW5ldyB2an07dmFyIEdqPS86WzAtOV0rJC8sSGo9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvO2Z1bmN0aW9uIElqKGEsYixjLGQpe3ZhciBlPUpqKGEsISFkLGIpLGYsZztyZXR1cm4gYz8oZz1lW2JdKSE9bnVsbD9nOltdOihmPWVbYl0pPT1udWxsP3ZvaWQgMDpmWzBdfWZ1bmN0aW9uIEpqKGEsYixjKXtmb3IodmFyIGQ9e30sZT1tKGEuc3BsaXQoIiYiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPW0oZi52YWx1ZS5zcGxpdCgiPSIpKSxoPWcubmV4dCgpLnZhbHVlLGw9eWEoZyksbj1kZWNvZGVVUklDb21wb25lbnQoaC5yZXBsYWNlKC9cKy9nLCIgIikpO2lmKGM9PT12b2lkIDB8fG49PT1jKXt2YXIgcD1sLmpvaW4oIj0iKTtkW25dfHwoZFtuXT1bXSk7ZFtuXS5wdXNoKGI/cDpkZWNvZGVVUklDb21wb25lbnQocC5yZXBsYWNlKC9cKy9nLCIgIikpKX19cmV0dXJuIGR9CmZ1bmN0aW9uIEtqKGEpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGIpe319ZnVuY3Rpb24gTGooYSxiLGMsZCxlKXtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7aWYoYj09PSJwcm90b2NvbCJ8fGI9PT0icG9ydCIpYS5wcm90b2NvbD1NaihhLnByb3RvY29sKXx8TWooQS5sb2NhdGlvbi5wcm90b2NvbCk7Yj09PSJwb3J0Ij9hLnBvcnQ9U3RyaW5nKE51bWJlcihhLmhvc3RuYW1lP2EucG9ydDpBLmxvY2F0aW9uLnBvcnQpfHwoYS5wcm90b2NvbD09PSJodHRwIj84MDphLnByb3RvY29sPT09Imh0dHBzIj80NDM6IiIpKTpiPT09Imhvc3QiJiYoYS5ob3N0bmFtZT0oYS5ob3N0bmFtZXx8QS5sb2NhdGlvbi5ob3N0bmFtZSkucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKSk7cmV0dXJuIE5qKGEsYixjLGQsZSl9CmZ1bmN0aW9uIE5qKGEsYixjLGQsZSl7dmFyIGYsZz1NaihhLnByb3RvY29sKTtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7c3dpdGNoKGIpe2Nhc2UgInVybF9ub19mcmFnbWVudCI6Zj1PaihhKTticmVhaztjYXNlICJwcm90b2NvbCI6Zj1nO2JyZWFrO2Nhc2UgImhvc3QiOmY9YS5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpO2lmKGMpe3ZhciBoPS9ed3d3XGQqXC4vLmV4ZWMoZik7aCYmaFswXSYmKGY9Zi5zdWJzdHJpbmcoaFswXS5sZW5ndGgpKX1icmVhaztjYXNlICJwb3J0IjpmPVN0cmluZyhOdW1iZXIoYS5wb3J0KXx8KGc9PT0iaHR0cCI/ODA6Zz09PSJodHRwcyI/NDQzOiIiKSk7YnJlYWs7Y2FzZSAicGF0aCI6YS5wYXRobmFtZXx8YS5ob3N0bmFtZXx8c2IoIlRBR0dJTkciLDEpO2Y9YS5wYXRobmFtZS5zdWJzdHJpbmcoMCwxKT09PSIvIj9hLnBhdGhuYW1lOiIvIithLnBhdGhuYW1lO3ZhciBsPWYuc3BsaXQoIi8iKTsoZHx8W10pLmluZGV4T2YobFtsLmxlbmd0aC0KMV0pPj0wJiYobFtsLmxlbmd0aC0xXT0iIik7Zj1sLmpvaW4oIi8iKTticmVhaztjYXNlICJxdWVyeSI6Zj1hLnNlYXJjaC5yZXBsYWNlKCI/IiwiIik7ZSYmKGY9SWooZixlLCExKSk7YnJlYWs7Y2FzZSAiZXh0ZW5zaW9uIjp2YXIgbj1hLnBhdGhuYW1lLnNwbGl0KCIuIik7Zj1uLmxlbmd0aD4xP25bbi5sZW5ndGgtMV06IiI7Zj1mLnNwbGl0KCIvIilbMF07YnJlYWs7Y2FzZSAiZnJhZ21lbnQiOmY9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKTticmVhaztkZWZhdWx0OmY9YSYmYS5ocmVmfXJldHVybiBmfWZ1bmN0aW9uIE1qKGEpe3JldHVybiBhP2EucmVwbGFjZSgiOiIsIiIpLnRvTG93ZXJDYXNlKCk6IiJ9ZnVuY3Rpb24gT2ooYSl7dmFyIGI9IiI7aWYoYSYmYS5ocmVmKXt2YXIgYz1hLmhyZWYuaW5kZXhPZigiIyIpO2I9YzwwP2EuaHJlZjphLmhyZWYuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIGJ9dmFyIFBqPXt9LFFqPTA7CmZ1bmN0aW9uIFJqKGEpe3ZhciBiPVBqW2FdO2lmKCFiKXt2YXIgYz1CLmNyZWF0ZUVsZW1lbnQoImEiKTthJiYoYy5ocmVmPWEpO3ZhciBkPWMucGF0aG5hbWU7ZFswXSE9PSIvIiYmKGF8fHNiKCJUQUdHSU5HIiwxKSxkPSIvIitkKTt2YXIgZT1jLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpO2I9e2hyZWY6Yy5ocmVmLHByb3RvY29sOmMucHJvdG9jb2wsaG9zdDpjLmhvc3QsaG9zdG5hbWU6ZSxwYXRobmFtZTpkLHNlYXJjaDpjLnNlYXJjaCxoYXNoOmMuaGFzaCxwb3J0OmMucG9ydH07UWo8NSYmKFBqW2FdPWIsUWorKyl9cmV0dXJuIGJ9ZnVuY3Rpb24gU2ooYSxiLGMpe3ZhciBkPVJqKGEpO3JldHVybiBhYyhiLGQsYyl9CmZ1bmN0aW9uIFRqKGEpe3ZhciBiPVJqKEEubG9jYXRpb24uaHJlZiksYz1MaihiLCJob3N0IiwhMSk7aWYoYyYmYy5tYXRjaChIaikpe3ZhciBkPUxqKGIsInBhdGgiKTtpZihkKXt2YXIgZT1kLnNwbGl0KGErIj0iKTtpZihlLmxlbmd0aD4xKXJldHVybiBlWzFdLnNwbGl0KCI7IilbMF0uc3BsaXQoIj8iKVswXX19fTt2YXIgVWo9eyJodHRwczovL3d3dy5nb29nbGUuY29tIjoiL2ciLCJodHRwczovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSI6Ii9hcyIsImh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iOiIvZ3MifSxWaj1bIi9hcy9kL2NjbS9jb252ZXJzaW9uIiwiL2cvZC9jY20vY29udmVyc2lvbiIsIi9ncy9jY20vY29udmVyc2lvbiIsIi9kL2NjbS9mb3JtLWRhdGEiXTtmdW5jdGlvbiBXaigpe3JldHVybiBJZig0Nyk/SmYoNTQpIT09MTohMX1mdW5jdGlvbiBYaigpe3ZhciBhPUUoMTgpLGI9YS5sZW5ndGg7cmV0dXJuIGFbYi0xXT09PSIvIj9hLnN1YnN0cmluZygwLGItMSk6YX0KZnVuY3Rpb24gWWooYSxiKXtpZihhKXt2YXIgYz0iIithO2MuaW5kZXhPZigiaHR0cDovLyIpIT09MCYmYy5pbmRleE9mKCJodHRwczovLyIpIT09MCYmKGM9Imh0dHBzOi8vIitjKTtjW2MubGVuZ3RoLTFdPT09Ii8iJiYoYz1jLnN1YnN0cmluZygwLGMubGVuZ3RoLTEpKTtyZXR1cm4gUmooIiIrYytiKS5ocmVmfX1mdW5jdGlvbiBaaihhKXtpZihhaygpKXJldHVybiBZaihhLCIvYW5hbHl0aWNzLmpzIil9ZnVuY3Rpb24gYmsoYSl7cmV0dXJuIGE9PT0yfHxhPT09M31mdW5jdGlvbiBjayhhKXtyZXR1cm4gTSg1ODgpJiZhPT09M31mdW5jdGlvbiBhaygpe3JldHVybiBXaigpfHxJZig1MCl9ZnVuY3Rpb24gZGsoKXtyZXR1cm4hIUFqLnFqJiZBai5xai5zcGxpdCgiQEAiKS5qb2luKCIiKSE9PSJTR1RNX1RPS0VOIn0KZnVuY3Rpb24gZWsoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9TyhhLGMudmFsdWUpO2lmKGQpcmV0dXJuIGR9fWZ1bmN0aW9uIGZrKGEsYixjKXtjPWM9PT12b2lkIDA/IiI6YztpZighV2ooKSlyZXR1cm4gYTt2YXIgZD1iP1VqW2FdfHwiIjoiIjtkPT09Ii9ncyImJihjPSIiKTtyZXR1cm4iIitYaigpK2QrY31mdW5jdGlvbiBnayhhKXtpZihXaigpKWZvcih2YXIgYj1tKFZqKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihTYihhLCIiK1hqKCkrZCkpcmV0dXJuIjo6In19CmZ1bmN0aW9uIGhrKCl7dmFyIGE9QTtpZighYSlyZXR1cm4hMTt0cnl7aWYoYT09PWEudG9wKXJldHVybiExO3ZhciBiPWEubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIGIuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIvIikhPT0tMSYmVGIoYiwiL3N3X2lmcmFtZS5odG1sIil9Y2F0Y2goYyl7cmV0dXJuITF9fTt2YXIgaWs9L2d0YWdbLlwvXWpzLyxqaz0vZ3RtWy5cL11qcy8sbGs9ZnVuY3Rpb24oYSl7dmFyIGI9a2s7aWYoKGEuc2NyaXB0Q29udGFpbmVySWR8fCIiKS5pbmRleE9mKCJHVE0tIik+PTApe3ZhciBjO2E6e3ZhciBkLGU9KGQ9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZC5zcmM7aWYoZSl7Zm9yKHZhciBmPUlmKDQ3KSxnPVJqKGUpLGg9Zj9nLnBhdGhuYW1lOiIiK2cuaG9zdG5hbWUrZy5wYXRobmFtZSxsPUIuc2NyaXB0cyxuPSIiLHA9MDtwPGwubGVuZ3RoOysrcCl7dmFyIHE9bFtwXTtpZighKHEuaW5uZXJIVE1MLmxlbmd0aD09PTB8fCFmJiZxLmlubmVySFRNTC5pbmRleE9mKGEuc2NyaXB0Q29udGFpbmVySWR8fCJTSE9VTERfTk9UX0JFX1NFVCIpPDB8fHEuaW5uZXJIVE1MLmluZGV4T2YoaCk8MCkpe2lmKHEuaW5uZXJIVE1MLmluZGV4T2YoIihmdW5jdGlvbih3LGQscyxsLGkpIik+PTApe2M9U3RyaW5nKHApO2JyZWFrIGF9bj1TdHJpbmcocCl9fWlmKG4pe2M9Cm47YnJlYWsgYX19Yz12b2lkIDB9dmFyIHI9YztpZihyKXJldHVybiBiLkg9ITAscn12YXIgdD1bXS5zbGljZS5jYWxsKEIuc2NyaXB0cyk7cmV0dXJuIGEuc2NyaXB0RWxlbWVudD9TdHJpbmcodC5pbmRleE9mKGEuc2NyaXB0RWxlbWVudCkpOiItMSJ9LG1rPWZ1bmN0aW9uKGEpe2lmKGtrLkgpcmV0dXJuIjEiO3ZhciBiLGM9KGI9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6Yi5zcmM7aWYoYyl7aWYoaWsudGVzdChjKSlyZXR1cm4iMyI7aWYoamsudGVzdChjKSlyZXR1cm4iMiJ9cmV0dXJuIjAifSxraz1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O2Z1bmN0aW9uIFAoYSl7c2IoIkdUTSIsYSl9O2Z1bmN0aW9uIG5rKGEpe3ZhciBiPW9rKCkuZGVzdGluYXRpb25BcnJheVthXSxjPW9rKCkuZGVzdGluYXRpb25bYV07cmV0dXJuIGImJmIubGVuZ3RoPjA/YlswXTpjfWZ1bmN0aW9uIHBrKGEsYil7dmFyIGM9b2soKTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO0NiKGMucGVuZGluZyxmdW5jdGlvbihkKXtyZXR1cm4gZC50YXJnZXQuY3RpZD09PWEuY3RpZCYmZC50YXJnZXQuaXNEZXN0aW5hdGlvbj09PWEuaXNEZXN0aW5hdGlvbn0pfHxjLnBlbmRpbmcucHVzaCh7dGFyZ2V0OmEsb25Mb2FkOmJ9KX1mdW5jdGlvbiBxaygpe3ZhciBhPUEuZ29vZ2xlX3RhZ3NfZmlyc3RfcGFydHk7QXJyYXkuaXNBcnJheShhKXx8KGE9W10pO2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpYltkLnZhbHVlXT0hMDtyZXR1cm4gT2JqZWN0LmZyZWV6ZShiKX0KdmFyIHJrPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5kZXN0aW5hdGlvbj17fTt0aGlzLmRlc3RpbmF0aW9uQXJyYXk9e307dGhpcy5jYW5vbmljYWw9e307dGhpcy5wZW5kaW5nPVtdO3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz17fTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKX07CmZ1bmN0aW9uIG9rKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS50aWRyO2ImJnR5cGVvZiBiPT09Im9iamVjdCJ8fChiPW5ldyByayxhLnRpZHI9Yik7dmFyIGM9YjtjLmNvbnRhaW5lcnx8KGMuY29udGFpbmVyPXt9KTtjLmRlc3RpbmF0aW9ufHwoYy5kZXN0aW5hdGlvbj17fSk7Yy5kZXN0aW5hdGlvbkFycmF5fHwoYy5kZXN0aW5hdGlvbkFycmF5PXt9KTtjLmNhbm9uaWNhbHx8KGMuY2Fub25pY2FsPXt9KTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO2MuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc3x8KGMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpKTtyZXR1cm4gY307ZnVuY3Rpb24gc2soKXtyZXR1cm4gSWYoNykmJnRrKCkuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYT09PUUoNSl9KX1mdW5jdGlvbiB1aygpe3ZhciBhO3JldHVybihhPUtmKDU1KSkhPW51bGw/YTpbXX1mdW5jdGlvbiB2aygpe3JldHVybiBFKDYpfHwiXyIrRSg1KX1mdW5jdGlvbiB3aygpe3ZhciBhPUUoMTApO3JldHVybiBhP2Euc3BsaXQoInwiKTpbRSg1KV19ZnVuY3Rpb24gdGsoKXt2YXIgYT1LZig1OSk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyJ9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuaW5kZXhPZigiR1RNLSIpIT09MH0pOltdfWZ1bmN0aW9uIHhrKCl7dmFyIGE9eWsoemsoKSksYj1hJiZhLnBhcmVudDtpZihiKXJldHVybiB5ayhiKX0KZnVuY3Rpb24gQWsoKXt2YXIgYT15ayh6aygpKTtpZihhKXtmb3IoO2EucGFyZW50Oyl7dmFyIGI9eWsoYS5wYXJlbnQpO2lmKCFiKWJyZWFrO2E9Yn1yZXR1cm4gYX19ZnVuY3Rpb24geWsoYSl7dmFyIGI9b2soKTtyZXR1cm4gYS5pc0Rlc3RpbmF0aW9uP25rKGEuY3RpZCk6Yi5jb250YWluZXJbYS5jdGlkXX1mdW5jdGlvbiBCaygpe3ZhciBhPW9rKCk7aWYoYS5wZW5kaW5nKXtmb3IodmFyIGIsYz1bXSxkPSExLGU9d2soKSxmPXRrKCksZz17fSxoPTA7aDxhLnBlbmRpbmcubGVuZ3RoO2c9e1JnOnZvaWQgMH0saCsrKWcuUmc9YS5wZW5kaW5nW2hdLENiKGcuUmcudGFyZ2V0LmlzRGVzdGluYXRpb24/ZjplLGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbj09PWwuUmcudGFyZ2V0LmN0aWR9fShnKSk/ZHx8KGI9Zy5SZy5vbkxvYWQsZD0hMCk6Yy5wdXNoKGcuUmcpO2EucGVuZGluZz1jO2lmKGIpdHJ5e2IodmsoKSl9Y2F0Y2gobCl7fX19CmZ1bmN0aW9uIENrKCl7Zm9yKHZhciBhPUUoNSksYj13aygpLGM9dGsoKSxkPXVrKCksZT1mdW5jdGlvbihxLHIpe3ZhciB0PXtjYW5vbmljYWxDb250YWluZXJJZDpFKDYpLHNjcmlwdENvbnRhaW5lcklkOmEsc3RhdGU6Mixjb250YWluZXJzOmIuc2xpY2UoKSxkZXN0aW5hdGlvbnM6Yy5zbGljZSgpfTtKYyYmKHQuc2NyaXB0RWxlbWVudD1KYyk7S2MmJih0LnNjcmlwdFNvdXJjZT1LYyk7eGsoKT09PXZvaWQgMCYmKHQuaHRtbExvYWRPcmRlcj1sayh0KSx0LmxvYWRTY3JpcHRUeXBlPW1rKHQpKTt2YXIgdSx2O3N3aXRjaChyKXtjYXNlIDA6dT1mdW5jdGlvbih6KXtmLmNvbnRhaW5lcltxXT16fTt2PWYuY29udGFpbmVyW3FdO2JyZWFrO2Nhc2UgMTp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS51bnNoaWZ0KHopfTt2YXIgeCx5PSgoeD1mLmRlc3RpbmF0aW9uQXJyYXlbcV0pPT0KbnVsbD92b2lkIDA6eFswXSl8fGYuZGVzdGluYXRpb25bcV07IXl8fHkuc3RhdGUhPT0wJiZ5LnN0YXRlIT09MXx8KHY9eSk7YnJlYWs7Y2FzZSAyOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnB1c2goeil9LHY9dm9pZCAwfXUmJih2Pyh2LnN0YXRlPT09MCYmUCg5MyksbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx2LHQpKTp1KHQpKX0sZj1vaygpLGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSllKGgudmFsdWUsMCk7Zm9yKHZhciBsPW0oYyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7ZC5pbmNsdWRlcyhwKT9lKHAsMSk6ZShwLDIpfWYuY2Fub25pY2FsW3ZrKCldPXt9O0JrKCl9ZnVuY3Rpb24gRGsoKXt2YXIgYT12aygpO3JldHVybiEhb2soKS5jYW5vbmljYWxbYV19CmZ1bmN0aW9uIEVrKGEpe3JldHVybiEhb2soKS5jb250YWluZXJbYV19ZnVuY3Rpb24gRmsoKXt2YXIgYT16aygpLGI9eWsoYSk7cmV0dXJuIGImJmIuY29udGV4dH1mdW5jdGlvbiBHayhhKXt2YXIgYj1uayhhKTtyZXR1cm4gYj9iLnN0YXRlIT09MDohMX1mdW5jdGlvbiB6aygpe3JldHVybntjdGlkOkUoNSksaXNEZXN0aW5hdGlvbjpJZig3KX19ZnVuY3Rpb24gSGsoYSxiLGMpe3ZhciBkPXprKCksZT1vaygpLmNvbnRhaW5lclthXTtlJiZlLnN0YXRlIT09M3x8KG9rKCkuY29udGFpbmVyW2FdPXtzdGF0ZToxLGNvbnRleHQ6YixwYXJlbnQ6ZH0scGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiExfSxjKSl9ZnVuY3Rpb24gSWsoYSxiLGMpe3ZhciBkPW9rKCksZT1uayhhKTtlP2Uuc3RhdGU9MTooZT17Y29udGV4dDpiLHN0YXRlOjEscGFyZW50OnprKCl9LGQuZGVzdGluYXRpb25BcnJheVthXT1bZV0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sYyl9CmZ1bmN0aW9uIEprKGEsYixjLGQpe3ZhciBlPW9rKCksZj1uayhhKTtmP2Yuc3RhdGU9MDooZj17c3RhdGU6MCx0cmFuc3BvcnRVcmw6Yixjb250ZXh0OmMscGFyZW50OnprKCl9LGUuZGVzdGluYXRpb25BcnJheVthXT1bZl0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sZCk7UCg5MSl9ZnVuY3Rpb24gS2soKXt2YXIgYT1vaygpLmNvbnRhaW5lcixiO2ZvcihiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5zdGF0ZT09PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gTGsoKXt2YXIgYT17fTtHYihvaygpLmRlc3RpbmF0aW9uLGZ1bmN0aW9uKGIsYyl7KGM9PW51bGw/dm9pZCAwOmMuc3RhdGUpPT09MCYmKGFbYl09Yyl9KTtHYihvaygpLmRlc3RpbmF0aW9uQXJyYXksZnVuY3Rpb24oYixjKXt2YXIgZD1jWzBdOyhkPT1udWxsP3ZvaWQgMDpkLnN0YXRlKT09PTAmJihhW2JdPWQpfSk7cmV0dXJuIGF9CmZ1bmN0aW9uIE1rKGEpe3JldHVybiEhKGEmJmEucGFyZW50JiZhLmNvbnRleHQmJmEuY29udGV4dC5zb3VyY2U9PT0xJiZhLnBhcmVudC5jdGlkLmluZGV4T2YoIkdUTS0iKSE9PTApfWZ1bmN0aW9uIE5rKCl7Zm9yKHZhciBhPW9rKCksYj1tKHdrKCkpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKGEuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc1tjLnZhbHVlXSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIE9rPWZ1bmN0aW9uKCl7fTtPay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIn07dmFyIFBrPW5ldyBPazt2YXIgWGs9ZnVuY3Rpb24oKXt0aGlzLnN0b3JhZ2U9WWEoKX07WGsucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIpfTtYay5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O3ZhciBZaztmdW5jdGlvbiBaayhhLGIpe1lrfHwoWWs9bmV3IFhrKTtZay5zZXQoYSxiKX1mdW5jdGlvbiAkayhhKXtZa3x8KFlrPW5ldyBYayk7cmV0dXJuIFlrLmdldChhKX1mdW5jdGlvbiBhbChhLGIpe1lrfHwoWWs9bmV3IFhrKTt2YXIgYz1ZaztjLnN0b3JhZ2UuaGFzKFN0cmluZyhhKSl8fGMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIoKSk7cmV0dXJuIGMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07ZnVuY3Rpb24gYmwoYSxiKXtmdW5jdGlvbiBjKGcpe3ZhciBoPVJqKGcpLGw9TGooaCwicHJvdG9jb2wiKSxuPUxqKGgsImhvc3QiLCEwKSxwPUxqKGgsInBvcnQiKSxxPUxqKGgsInBhdGgiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1wvJC8sIiIpO2lmKGw9PT12b2lkIDB8fGw9PT0iaHR0cCImJnA9PT0iODAifHxsPT09Imh0dHBzIiYmcD09PSI0NDMiKWw9IndlYiIscD0iZGVmYXVsdCI7cmV0dXJuW2wsbixwLHFdfWZvcih2YXIgZD1jKFN0cmluZyhhKSksZT1jKFN0cmluZyhiKSksZj0wO2Y8ZC5sZW5ndGg7ZisrKWlmKGRbZl0hPT1lW2ZdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGNsKGEpe3JldHVybiBkbChhKT8xOjB9CmZ1bmN0aW9uIGRsKGEpe3ZhciBiPWEuYXJnMCxjPWEuYXJnMTtpZihhLmFueV9vZiYmQXJyYXkuaXNBcnJheShjKSl7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPUVkKGEse30pO0VkKHthcmcxOmNbZF0sYW55X29mOnZvaWQgMH0sZSk7aWYoY2woZSkpcmV0dXJuITB9cmV0dXJuITF9c3dpdGNoKGFbImZ1bmN0aW9uIl0pe2Nhc2UgIl9jbiI6cmV0dXJuIEtnKGIsYyk7Y2FzZSAiX2NzcyI6cmV0dXJuIEdnKGIsYyk7Y2FzZSAiX2V3IjpyZXR1cm4gSGcoYixjKTtjYXNlICJfZXEiOnJldHVybiBMZyhiLGMpO2Nhc2UgIl9nZSI6cmV0dXJuIE1nKGIsYyk7Y2FzZSAiX2d0IjpyZXR1cm4gT2coYixjKTtjYXNlICJfbGMiOnJldHVybiBJZyhiLGMpO2Nhc2UgIl9sZSI6cmV0dXJuIE5nKGIsYyk7Y2FzZSAiX2x0IjpyZXR1cm4gUGcoYixjKTtjYXNlICJfcmUiOnJldHVybiBKZyhiLGMsYS5pZ25vcmVfY2FzZSxhbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSk7Y2FzZSAiX3N3IjpyZXR1cm4gUWcoYiwKYyk7Y2FzZSAiX3VtIjpyZXR1cm4gYmwoYixjKX1yZXR1cm4hMX07ZnVuY3Rpb24gZWwoYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgZjtzd2l0Y2goYVswXSl7Y2FzZSAiZnVuY3Rpb25faWQiOnJldHVybiBhWzFdO2Nhc2UgImxpc3QiOmY9W107Zm9yKHZhciBnPTE7ZzxhLmxlbmd0aDtnKyspZi5wdXNoKGVsKGFbZ10sYixjLGQsZSkpO3JldHVybiBmO2Nhc2UgIm1hY3JvIjp2YXIgaD1kW2FbMV1dO3JldHVybiBoP2guZXZhbHVhdGUoYixlKTp2b2lkIDA7Y2FzZSAibWFwIjpmPXt9O2Zvcih2YXIgbD0xO2w8YS5sZW5ndGg7bCs9MilmW2VsKGFbbF0sYixjLGQsZSldPWVsKGFbbCsxXSxiLGMsZCxlKTtyZXR1cm4gZjtjYXNlICJ0ZW1wbGF0ZSI6Zj1bXTtmb3IodmFyIG49ITEscD0xO3A8YS5sZW5ndGg7cCsrKXt2YXIgcT1lbChhW3BdLGIsYyxkLGUpO2YucHVzaChxKX1yZXR1cm4gZi5qb2luKCIiKTtjYXNlICJlc2NhcGUiOmY9ZWwoYVsxXSxiLGMsZCxlKTtmPVN0cmluZyhmKTtmb3IodmFyIHk9Mjt5PGEubGVuZ3RoO3krKylVaVthW3ldXSYmKGY9VWlbYVt5XV0oZikpO3JldHVybiBmO2Nhc2UgInRhZyI6dmFyIHo9YVsxXTtpZighY1t6XSl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHJlc29sdmUgdGFnIHJlZmVyZW5jZSAiKwp6KyIuIik7cmV0dXJue2JvOmFbMl0saW5kZXg6en07Y2FzZSAiemIiOnZhciBDPXt9LEQ9KENbR2YuWWJdPWFbMV0sQy5hcmcwPWVsKGFbMl0sYixjLGQsZSksQy5hcmcxPWVsKGFbM10sYixjLGQsZSksQy5pZ25vcmVfY2FzZT1lbChhWzVdLGIsYyxkLGUpLEMpLEk9Y2woRCksRz0hIWFbNF07cmV0dXJuIEd8fEkhPT0yP0chPT0oST09PTEpOm51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBleHBhbmQgdW5rbm93biBWYWx1ZSB0eXBlOiAiK2FbMF0rIi4iKTt9fXJldHVybiBhfTtmdW5jdGlvbiBmbChhKXtyZXR1cm4gYSYmYS5pbmRleE9mKCJwZW5kaW5nOiIpPT09MD9nbChhLnN1YnN0cig4KSk6ITF9ZnVuY3Rpb24gZ2woYSl7aWYoYT09bnVsbHx8YS5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBiPU51bWJlcihhKSxjPU5iKCk7cmV0dXJuIGI8YyszRTUmJmI+Yy05RTV9O3ZhciBobD0hMSxpbD0hMSxqbD0hMSxrbD0wLGxsPSExLG1sPXZvaWQgMCxubD1bXTtmdW5jdGlvbiBvbChhKXtpZihrbD09PTApbGwmJm5sJiYobmwubGVuZ3RoPj0xMDAmJm5sLnNoaWZ0KCksbmwucHVzaChhKSk7ZWxzZSBpZihwbCgpKXt2YXIgYj1FKDQxKSxjPU1jKGIsW10pO2MubGVuZ3RoPj01MCYmYy5zaGlmdCgpO2MucHVzaChhKX19ZnVuY3Rpb24gcWwoKXtpbHx8KHJsKCksc2woa2wpKX1mdW5jdGlvbiBzbChhKXtpZighaWx8fGtsPT09MiYmYT09PTEpaWYoaWw9ITAsamwmJihhZChCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwpLGpsPSExKSxtbCE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KG1sKSxtbD12b2lkIDApLGtsPWEsYT09PTEpe3ZhciBiPW5sO25sPXZvaWQgMDtiPT1udWxsfHxiLmZvckVhY2goZnVuY3Rpb24oYyl7b2woYyl9KX19CmZ1bmN0aW9uIHJsKCl7dmFyIGE9Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJvZC1wcmVzZW50Iik7Z2woYSk/a2w9MTohZmwoYSl8fGhsfHxqbD9rbD0yOihqbD0hMCwkYyhCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwsITEpLG1sPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2lsfHwocmwoKSxzbChrbCkpO2hsPSEwfSwyMDApKX1mdW5jdGlvbiBwbCgpe2lmKCFsbClyZXR1cm4hMTtzd2l0Y2goa2wpe2Nhc2UgMTpjYXNlIDA6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiB0bCgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtyZXR1cm4gYS5pY3M9YS5pY3N8fG5ldyB1bH12YXIgdWw9ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9e307dGhpcy53YWl0UGVyaW9kVGltZWRPdXQ9dGhpcy53YXNTZXRMYXRlPXRoaXMuYWNjZXNzZWRBbnk9dGhpcy5hY2Nlc3NlZERlZmF1bHQ9dGhpcy51c2VkSW1wbGljaXQ9dGhpcy51c2VkVXBkYXRlPXRoaXMudXNlZERlZmF1bHQ9dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMTt0aGlzLkg9W119Owp1bC5wcm90b3R5cGUuZGVmYXVsdD1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHwhdGhpcy5hY2Nlc3NlZERlZmF1bHQmJiF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWREZWZhdWx0PXRoaXMuYWN0aXZlPSEwO3NiKCJUQUdHSU5HIiwxOSk7Yj09bnVsbD9zYigiVEFHR0lORyIsMTgpOnZsKHRoaXMsYSxiPT09ImdyYW50ZWQiLGMsZCxlLGYsZyl9O3VsLnByb3RvdHlwZS53YWl0Rm9yVXBkYXRlPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl2bCh0aGlzLGFbZF0sdm9pZCAwLHZvaWQgMCwiIiwiIixiLGMpfTsKdmFyIHZsPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9YS5lbnRyaWVzLG49bFtiXXx8e30scD1uLnJlZ2lvbixxPWQmJnpiKGQpP2QudG9VcHBlckNhc2UoKTp2b2lkIDA7ZT1lLnRvVXBwZXJDYXNlKCk7Zj1mLnRvVXBwZXJDYXNlKCk7aWYoZT09PSIifHxxPT09Znx8KHE9PT1lP3AhPT1mOiFxJiYhcCkpe3ZhciByPSEhKGcmJmc+MCYmbi51cGRhdGU9PT12b2lkIDApLHQ9e3JlZ2lvbjpxLGRlY2xhcmVfcmVnaW9uOm4uZGVjbGFyZV9yZWdpb24saW1wbGljaXQ6bi5pbXBsaWNpdCxkZWZhdWx0OmMhPT12b2lkIDA/YzpuLmRlZmF1bHQsZGVjbGFyZTpuLmRlY2xhcmUsdXBkYXRlOm4udXBkYXRlLHF1aWV0OnJ9O2lmKGUhPT0iInx8bi5kZWZhdWx0IT09ITEpbFtiXT10O3ImJkEuc2V0VGltZW91dChmdW5jdGlvbigpe2xbYl09PT10JiZ0LnF1aWV0JiYoc2IoIlRBR0dJTkciLDIpLGEud2FpdFBlcmlvZFRpbWVkT3V0PSEwLGEuY2xlYXJUaW1lb3V0KGIsdm9pZCAwLGgpLAphLm5vdGlmeUxpc3RlbmVycygpKX0sZyl9fTtrPXVsLnByb3RvdHlwZTtrLmNsZWFyVGltZW91dD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W2FdLGU9Yy5kZWxlZ2F0ZWRDb25zZW50VHlwZXMsZjtmb3IoZiBpbiBlKWUuaGFzT3duUHJvcGVydHkoZikmJmVbZl09PT1hJiZkLnB1c2goZik7dmFyIGc9dGhpcy5lbnRyaWVzW2FdfHx7fSxoPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyk7aWYoZy5xdWlldCl7Zy5xdWlldD0hMTtmb3IodmFyIGw9bShkKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl3bCh0aGlzLG4udmFsdWUpfWVsc2UgaWYoYiE9PXZvaWQgMCYmaCE9PWIpZm9yKHZhciBwPW0oZCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpd2wodGhpcyxxLnZhbHVlKX07CmsudXBkYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHx0aGlzLnVzZWRVcGRhdGV8fCF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWRVcGRhdGU9dGhpcy5hY3RpdmU9ITA7aWYoYiE9bnVsbCl7dmFyIGQ9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKSxlPXRoaXMuZW50cmllczsoZVthXT1lW2FdfHx7fSkudXBkYXRlPWI9PT0iZ3JhbnRlZCI7dGhpcy5jbGVhclRpbWVvdXQoYSxkLGMpfX07CmsuZGVjbGFyZT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITA7dmFyIGY9dGhpcy5lbnRyaWVzLGc9ZlthXXx8e30saD1nLmRlY2xhcmVfcmVnaW9uLGw9YyYmemIoYyk/Yy50b1VwcGVyQ2FzZSgpOnZvaWQgMDtkPWQudG9VcHBlckNhc2UoKTtlPWUudG9VcHBlckNhc2UoKTtpZihkPT09IiJ8fGw9PT1lfHwobD09PWQ/aCE9PWU6IWwmJiFoKSl7dmFyIG49e3JlZ2lvbjpnLnJlZ2lvbixkZWNsYXJlX3JlZ2lvbjpsLGRlY2xhcmU6Yj09PSJncmFudGVkIixpbXBsaWNpdDpnLmltcGxpY2l0LGRlZmF1bHQ6Zy5kZWZhdWx0LHVwZGF0ZTpnLnVwZGF0ZSxxdWlldDpnLnF1aWV0fTtpZihkIT09IiJ8fGcuZGVjbGFyZSE9PSExKWZbYV09bn19OwprLmltcGxpY2l0PWZ1bmN0aW9uKGEsYil7dGhpcy51c2VkSW1wbGljaXQ9ITA7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXT1jW2FdfHx7fTtkLmltcGxpY2l0IT09ITEmJihkLmltcGxpY2l0PWI9PT0iZ3JhbnRlZCIpfTsKay5nZXRDb25zZW50U3RhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdfHx7fSxlPWQudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgZj1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2FdO2lmKGY9PT0zKXJldHVybiAxO2lmKGY9PT0yKXJldHVybiAyfWVsc2UgaWYoZT1kLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYj09bnVsbD8wOmIuZGVsZWdhdGVkQ29uc2VudFR5cGVzLmhhc093blByb3BlcnR5KGEpKXt2YXIgZz1iLmRlbGVnYXRlZENvbnNlbnRUeXBlc1thXSxoPWNbZ118fHt9O2U9aC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBsPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbZ107aWYobD09PTMpcmV0dXJuIDE7aWYobD09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPQpoLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjJ9ZT1kLmRlY2xhcmU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7ZT1kLmltcGxpY2l0O3JldHVybiBlIT09dm9pZCAwP2U/Mzo0OjB9O2suYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt0aGlzLkgucHVzaCh7Y29uc2VudFR5cGVzOmEsaWU6Yn0pfTt2YXIgd2w9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGEuSC5sZW5ndGg7KytjKXt2YXIgZD1hLkhbY107QXJyYXkuaXNBcnJheShkLmNvbnNlbnRUeXBlcykmJmQuY29uc2VudFR5cGVzLmluZGV4T2YoYikhPT0tMSYmKGQueG89ITApfX07dWwucHJvdG90eXBlLm5vdGlmeUxpc3RlbmVycz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8dGhpcy5ILmxlbmd0aDsrK2Mpe3ZhciBkPXRoaXMuSFtjXTtpZihkLnhvKXtkLnhvPSExO3RyeXtkLmllKHtjb25zZW50RXZlbnRJZDphLGNvbnNlbnRQcmlvcml0eUlkOmJ9KX1jYXRjaChlKXt9fX19O3ZhciB4bD0hMSx5bD0hMSx6bD17fSxBbD17ZGVsZWdhdGVkQ29uc2VudFR5cGVzOnt9LGNvcmVQbGF0Zm9ybVNlcnZpY2VzOnt9LHVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxzZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLGNvbnRhaW5lclNjb3BlZERlZmF1bHRzOih6bC5hZF9zdG9yYWdlPTEsemwuYW5hbHl0aWNzX3N0b3JhZ2U9MSx6bC5hZF91c2VyX2RhdGE9MSx6bC5hZF9wZXJzb25hbGl6YXRpb249MSx6bCksdXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzOiExfTtmdW5jdGlvbiBCbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuKHpiKGEpP1thXTphKS5ldmVyeShmdW5jdGlvbihjKXtzd2l0Y2goYi5nZXRDb25zZW50U3RhdGUoYyxBbCkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOmNhc2UgNDpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0pfQpmdW5jdGlvbiBDbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIGIuZ2V0Q29uc2VudFN0YXRlKGEsQWwpfWZ1bmN0aW9uIERsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4hKGIuZW50cmllc1thXXx8e30pLnF1aWV0fWZ1bmN0aW9uIEVsKCl7aWYoIVlmKDUpKXJldHVybiExO3ZhciBhPXRsKCk7YS5hY2Nlc3NlZEFueT0hMDtpZihhLmFjdGl2ZSlyZXR1cm4hMDtpZighQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXJldHVybiExO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYy52YWx1ZV0hPT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZsKGEsYil7dGwoKS5hZGRMaXN0ZW5lcihhLGIpfQpmdW5jdGlvbiBHbChhLGIpe3RsKCkubm90aWZ5TGlzdGVuZXJzKGEsYil9ZnVuY3Rpb24gSGwoYSxiKXtpZihiLmV2ZXJ5KERsKSlhKHt9KTtlbHNle3ZhciBjPSExO0ZsKGIsZnVuY3Rpb24oZCl7IWMmJmIuZXZlcnkoRGwpJiYoYz0hMCxhKGQpKX0pfX0KZnVuY3Rpb24gSWwoYSxiKXt2YXIgYz16YihiKT9bYl06YixkPXt9LGU9ZnVuY3Rpb24oKXtyZXR1cm4gYy5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIEJsKGgpJiYhZFtoXX0pfSxmPWUoKTtpZihmLmxlbmd0aCE9PWMubGVuZ3RoKXt2YXIgZz1mdW5jdGlvbihoKXtmb3IodmFyIGw9bShoKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSlkW24udmFsdWVdPSEwfTtnKGYpO0ZsKGMsZnVuY3Rpb24oaCl7ZnVuY3Rpb24gbChxKXtxLmxlbmd0aCE9PTAmJihnKHEpLGguY29uc2VudFR5cGVzPXEsYShoKSl9dmFyIG49ZSgpO2lmKG4ubGVuZ3RoIT09MCl7dmFyIHA9T2JqZWN0LmtleXMoZCkubGVuZ3RoO24ubGVuZ3RoK3A+PWMubGVuZ3RoP2wobik6QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bChlKCkpfSw1MDApfX0pfX07dmFyIEpsPSExO2Z1bmN0aW9uIEtsKGEsYil7dmFyIGM9d2soKSxkPXRrKCk7RSgyNik7dmFyIGU9SWYoNDcpPzA6SWYoNTApPzE6MyxmPVhqKCk7aWYocGwoKSl7dmFyIGc9TGwoIklOSVQiKTtnLmNvbnRhaW5lckxvYWRTb3VyY2U9YSE9bnVsbD9hOjA7YiYmKGcucGFyZW50VGFyZ2V0UmVmZXJlbmNlPWIpO2cuYWxpYXNlcz1jO2cuZGVzdGluYXRpb25zPWQ7ZSE9PXZvaWQgMCYmKGcuZ3RnPXtzb3VyY2U6ZSxtUGF0aDpmIT1udWxsP2Y6IiJ9KTtvbChnKX19CmZ1bmN0aW9uIE1sKGEpe3ZhciBiLGMsZCxlO2I9YS50YXJnZXRJZDtjPWEucmVxdWVzdDtkPWEucWI7ZT1hLmlzQmF0Y2hlZDt2YXIgZjtpZihmPXBsKCkpe3ZhciBnO2E6c3dpdGNoKGMuZW5kcG9pbnQpe2Nhc2UgNjg6Y2FzZSA2OTpjYXNlIDE5OmNhc2UgNjI6Y2FzZSA0NzpnPSEwO2JyZWFrIGE7ZGVmYXVsdDpnPSExfWY9IWd9aWYoZil7dmFyIGg9TGwoIkdUQUdfSElUIix7ZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTtoLnRhcmdldD1iO2gudXJsPWMudXJsO2MucG9zdEJvZHkmJihoLnBvc3RCb2R5PWMucG9zdEJvZHkpO2gucGFyYW1ldGVyRW5jb2Rpbmc9Yy5wYXJhbWV0ZXJFbmNvZGluZztoLmVuZHBvaW50PWMuZW5kcG9pbnQ7ZSE9PXZvaWQgMCYmKGguaXNCYXRjaGVkPWUpO29sKGgpfX1mdW5jdGlvbiBObChhKXtwbCgpJiZNbChhKCkpfQpmdW5jdGlvbiBMbChhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2IuZ3JvdXBJZD1PbDt2YXIgYyxkPWIsZT1QbCxmPXtwdWJsaWNJZDpRbH07ZC5ldmVudElkIT1udWxsJiYoZi5ldmVudElkPWQuZXZlbnRJZCk7ZC5wcmlvcml0eUlkIT1udWxsJiYoZi5wcmlvcml0eUlkPWQucHJpb3JpdHlJZCk7ZC5ldmVudE5hbWUmJihmLmV2ZW50TmFtZT1kLmV2ZW50TmFtZSk7ZC5ncm91cElkJiYoZi5ncm91cElkPWQuZ3JvdXBJZCk7ZC50YWdOYW1lJiYoZi50YWdOYW1lPWQudGFnTmFtZSk7Yz17Y29udGFpbmVyUHJvZHVjdDoiR1RNIixrZXk6Zix2ZXJzaW9uOmUsbWVzc2FnZVR5cGU6YX07Yy5jb250YWluZXJQcm9kdWN0PUpsPyJPR1QiOiJHVE0iO2Mua2V5LnRhcmdldFJlZj1SbDtyZXR1cm4gY312YXIgUWw9IiIsUGw9IiIsUmw9e2N0aWQ6IiIsaXNEZXN0aW5hdGlvbjohMX0sT2w7CmZ1bmN0aW9uIFNsKGEpe3ZhciBiPUUoNSksYz1JZig0NSksZD1zaygpLGU9RSg2KSxmPUUoMSk7RSgyMyk7a2w9MDtsbD0hMDtybCgpO09sPWE7UWw9YjtQbD1mO0psPWM7Umw9e2N0aWQ6Yixpc0Rlc3RpbmF0aW9uOmQsY2Fub25pY2FsSWQ6ZX19O2Z1bmN0aW9uIFRsKGEsYixjLGQpe2lmKHBsKCkpe3ZhciBlPWIuTTtNbCh7dGFyZ2V0SWQ6ZHx8W2IudGFyZ2V0LmRlc3RpbmF0aW9uSWRdLHJlcXVlc3Q6e3VybDphLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6Y30scWI6e2V2ZW50SWQ6ZS5ldmVudElkLHByaW9yaXR5SWQ6ZS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX07ZnVuY3Rpb24gVWwoYSxiLGMpe3ZhciBkPSJodHRwczovLyIrYStiO3JldHVybiBjP2Z1bmN0aW9uKCl7cmV0dXJuIFdqKCk/WGooKStjK2I6ZH06ZnVuY3Rpb24oKXtyZXR1cm4gZH19O3ZhciBWbD17fSxXbD0oVmxbMjJdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvYXMvZCIpLFZsWzYwXT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZ3MiKSxWbFsyM109VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2cvZCIpLFZsKTt2YXIgWGw9e30sWWw9KFhsWzVdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs2Nl09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC91Y29udmVyc2lvbiIpLFhsWzYzXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNjRdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzY1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs3NF09ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2FzL3AvYyJ9LFhsKTt2YXIgWmw9e30sJGw9KFpsWzQ1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbGxlY3QiKSxabFs0Nl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb2xsZWN0IiwiL2dzIiksWmxbNjldPVVsKCJhZC5kb3VibGVjbGljay5uZXQiLCIvY2NtL3MvY29sbGVjdCIpLFpsWzU4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabFs1N109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsKTt2YXIgYW09e30sYm09KGFtWzldPVVsKCJnb29nbGVhZHMuZy5kb3VibGVjbGljay5uZXQiLCIvcGFnZWFkL3ZpZXd0aHJvdWdoY29udmVyc2lvbiIpLGFtWzY4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcm1rdC9jb2xsZWN0IiksYW0pO3ZhciBjbT17fSxkbT0oY21bMTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVsyMV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtWzcyXT1VbCgiZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVs3M109VWwoImdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY20pO3ZhciBlbT17fSxmbT0oZW1bNTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi90cmF2ZWwvZmxpZ2h0cy9jbGljay9jb252ZXJzaW9uIiksZW0pO3ZhciBnbT17fSxobT0oZ21bMV09ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9hZC5kb3VibGVjbGljay5uZXQvYWN0aXZpdHk7In0sZ21bMl09ZnVuY3Rpb24oKXtyZXR1cm4oV2ooKT9YaigpOiJodHRwczovL2FkZS5nb29nbGVzeW5kaWNhdGlvbi5jb20iKSsiL2RkbS9hY3Rpdml0eSIrKE0oNDY3KT8iOyI6Ii8iKX0sZ21bM109ZnVuY3Rpb24oYSl7cmV0dXJuImh0dHBzOi8vIithLmxyKyIuZmxzLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eWk7In0sZ20pO2Z1bmN0aW9uIGltKGEpe3NiKCJIRUFMVEgiLGEpfTt2YXIgam09e2JhOntQdDoiYXdfdXNlcl9kYXRhX2NhY2hlIixvaToiY29va2llX2RlcHJlY2F0aW9uX2xhYmVsIixiaDoiZGlhZ25vc3RpY3NfcGFnZV9pZCIsb3A6ImVtZW1vIixkdToiZW1fcmVnaXN0cnkiLFNpOiJlYWIiLHJ1OiJmbF91c2VyX2RhdGFfY2FjaGUiLHR1OiJnYTRfdXNlcl9kYXRhX2NhY2hlIixMdToiaWRjX3B2X2NsYWltIixTZToiaXBfZ2VvX2RhdGFfY2FjaGUiLFhpOiJpcF9nZW9fZmV0Y2hfaW5fcHJvZ3Jlc3MiLGpuOiJuYl9kYXRhIixUcToicGFnZV9leHBlcmltZW50X2lkcyIsbG46InBsZCIsVmU6InB0X2RhdGEiLG1uOiJwdF9saXN0ZW5lcl9zZXQiLGtqOiJyZXRyeV9jb250YWluZXJzIixPaDoic2VydmljZV93b3JrZXJfZW5kcG9pbnQiLFpxOiJzaGFyZWRfdXNlcl9pZCIsYXI6InNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCIsc2o6InNoYXJlZF91c2VyX2lkX3NvdXJjZSIsYnY6ImF3aCIsaHI6InVuaXZlcnNhbF9jbGFpbV9yZWdpc3RyeSJ9fTt2YXIga209ZnVuY3Rpb24oYSl7cmV0dXJuIHRmKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYyBpbiBhKWlmKGI9PT1hW2NdJiYhL15bMC05XSskLy50ZXN0KGMpKXJldHVybiEwO3JldHVybiExfSl9KGptLmJhKTsKZnVuY3Rpb24gbG0oYSxiKXtiPWI9PT12b2lkIDA/ITE6YjtpZihrbShhKSl7dmFyIGMsZCxlPShkPShjPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSkueGNkKSE9bnVsbD9kOmMueGNkPXt9O2lmKGVbYV0pcmV0dXJuIGVbYV07aWYoYil7dmFyIGY9dm9pZCAwLGc9MSxoPXt9LGw9e3NldDpmdW5jdGlvbihuKXtmPW47bC5ub3RpZnkoKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHN1YnNjcmliZTpmdW5jdGlvbihuKXtoW1N0cmluZyhnKV09bjtyZXR1cm4gZysrfSx1bnN1YnNjcmliZTpmdW5jdGlvbihuKXt2YXIgcD1TdHJpbmcobik7cmV0dXJuIGguaGFzT3duUHJvcGVydHkocCk/KGRlbGV0ZSBoW3BdLCEwKTohMX0sbm90aWZ5OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXMoaCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3RyeXtoW3FdKGEsZil9Y2F0Y2gocil7fX19fTtyZXR1cm4gZVthXT1sfX19CmZ1bmN0aW9uIG1tKGEsYil7dmFyIGM9bG0oYSwhMCk7YyYmYy5zZXQoYil9ZnVuY3Rpb24gbm0oYSl7dmFyIGI7cmV0dXJuKGI9bG0oYSkpPT1udWxsP3ZvaWQgMDpiLmdldCgpfWZ1bmN0aW9uIG9tKGEsYil7dmFyIGM9bG0oYSk7aWYoIWMpe2M9bG0oYSwhMCk7aWYoIWMpcmV0dXJuO2Muc2V0KGIpfXJldHVybiBjLmdldCgpfWZ1bmN0aW9uIHBtKGEsYil7aWYodHlwZW9mIGI9PT0iZnVuY3Rpb24iKXt2YXIgYztyZXR1cm4oYz1sbShhLCEwKSk9PW51bGw/dm9pZCAwOmMuc3Vic2NyaWJlKGIpfX1mdW5jdGlvbiBxbShhLGIpe3ZhciBjPWxtKGEpO3JldHVybiBjP2MudW5zdWJzY3JpYmUoYik6ITF9O3ZhciBzbT1mdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9ITF9O3NtLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5LfHwodGhpcy5IPXRtKCksdGhpcy5IWyIwIl0mJm9tKGptLmJhLlNlLEpTT04uc3RyaW5naWZ5KHRoaXMuSCkpKX07CnZhciB4bT1mdW5jdGlvbigpe3ZhciBhPXVtLGI9dm0sYz12b2lkIDAsZD1mdW5jdGlvbigpe2MhPT12b2lkIDAmJnFtKGptLmJhLlNlLGMpO3RyeXt2YXIgZj1ubShqbS5iYS5TZSk7Yi5IPUpTT04ucGFyc2UoZil9Y2F0Y2goZyl7UCgxMjMpLGltKDIpLGIuSD17fX1iLks9ITA7YSgpfSxlPW5tKGptLmJhLlNlKTtlP2QoZSk6KGM9cG0oam0uYmEuU2UsZCksd20oKSl9LHdtPWZ1bmN0aW9uKCl7aWYoIW5tKGptLmJhLlhpKSl7bW0oam0uYmEuWGksITApO3ZhciBhPWZ1bmN0aW9uKGIpe21tKGptLmJhLlNlLGJ8fCJ7fSIpO21tKGptLmJhLlhpLCExKX07dHJ5e0EuZmV0Y2goImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vY2NtL2dlbyIse21ldGhvZDoiR0VUIixjYWNoZToibm8tc3RvcmUiLG1vZGU6ImNvcnMiLGNyZWRlbnRpYWxzOiJvbWl0In0pLnRoZW4oZnVuY3Rpb24oYil7Yi5vaz9iLnRleHQoKS50aGVuKGZ1bmN0aW9uKGMpe2EoYyl9LGZ1bmN0aW9uKCl7YSgpfSk6YSgpfSxmdW5jdGlvbigpe2EoKX0pfWNhdGNoKGIpe2EoKX19fSwKdG09ZnVuY3Rpb24oKXt2YXIgYT1FKDIyKTt0cnl7cmV0dXJuIEpTT04ucGFyc2UocWIoYSkpfWNhdGNoKGIpe3JldHVybiBQKDEyMyksaW0oMikse319fSx5bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIwIl18fCIifSx6bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIxIl18fCIifSxBbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9ITE7cmV0dXJuIGJ9LEJtPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjYiXSE9PSExfSxDbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9ITE7cmV0dXJuIGJ9LERtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjsKcmV0dXJuIGJ9LEVtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtyZXR1cm4gYn0sdm09bmV3IHNtO2Z1bmN0aW9uIEZtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiJodHRwczovLyIrKERtKCl8fCJ3d3ciKSsiLmdvb2dsZS1hbmFseXRpY3MuY29tLyIrYX1mdW5jdGlvbiBHbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTt2YXIgYj1EbSgpO3JldHVybiJodHRwczovLyIrKGI/YisiLiI6IiIpKyJhbmFseXRpY3MuZ29vZ2xlLmNvbS8iK2F9dmFyIEhtPXt9LEltPShIbVsxN109ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2FnL2cvYyI6R20oKX0sSG1bMTZdPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9nYS9nL2MiOkZtKCl9LEhtWzY3XT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiBEbSgpPyIiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyIrYX0sSG0pO2Z1bmN0aW9uIEptKGEsYixjKXt2YXIgZD1VbChiLCIvbWVhc3VyZW1lbnQvY29udmVyc2lvbiIsYyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIERtKCk/YSgibWVhc3VyZW1lbnQvY29udmVyc2lvbiIpOmQoKX19dmFyIEttPXt9LExtPShLbVs1NV09Sm0oRm0sInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2dzIiksS21bNTRdPUptKEdtLCJ3d3cuZ29vZ2xlLmNvbSIsIi9nIiksS20pO3ZhciBNbT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LFdsLFlsLCRsLGJtLGRtLGZtLGhtLExtLEltKTtmdW5jdGlvbiBObShhLGIpe3ZhciBjPU9iamVjdC5rZXlzKGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYltkXSE9bnVsbH0pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsiPSIrYltkXX0pLmpvaW4oIiYiKTtyZXR1cm4gTW1bYV0odm9pZCAwKSsiPyIrY307dmFyIE9tPXt9LFBtPShPbS50ZHA9MSxPbS5leHA9MSxPbS5ndG09MSxPbS5waWQ9MSxPbS5kbD0xLE9tLnNlcT0xLE9tLnQ9MSxPbS52PTEsT20pLFJtPWZ1bmN0aW9uKCl7dmFyIGE9UW07cmV0dXJuIE9iamVjdC5rZXlzKGEuSCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBhLkhbYl19KX0sU209ZnVuY3Rpb24oYSxiLGMpe2lmKGEuSFtiXT09PXZvaWQgMHx8KGM9PT12b2lkIDA/MDpjKSlhLkhbYl09ITB9LFRtPWZ1bmN0aW9uKGEpe2EuZm9yRWFjaChmdW5jdGlvbihiKXtQbVtiXXx8KFFtLkhbYl09ITEpfSl9LFFtPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9e319O2Z1bmN0aW9uIFVtKGEsYixjKXt2YXIgZD1jPT09dm9pZCAwPyEwOmMsZT1RbTtlLktbYV09YjsoZD09PXZvaWQgMHx8ZCkmJlNtKGUsYSl9ZnVuY3Rpb24gVm0oYSxiKXtTbShRbSxhLGI9PT12b2lkIDA/ITE6Yil9O2Z1bmN0aW9uIFdtKGEpe3ZhciBiPTA7YS5HYy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2J8PTE8PGN9KTtyZXR1cm4gYn1mdW5jdGlvbiBYbSgpe3JldHVybnt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxsZjp7fX19ZnVuY3Rpb24gWW0oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmtleXMoYS5uZikuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBOdW1iZXIoZiktTnVtYmVyKGcpfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybltmLGIoYS5uZltmXSldfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmWzFdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oYyl9KS5qb2luKGQpO3JldHVybiBlP2U6dm9pZCAwfQpmdW5jdGlvbiBabShhLGIpe3ZhciBjLGQsZTtjPWM9PT12b2lkIDA/Il8iOmM7ZD1kPT09dm9pZCAwPyI7IjpkO2U9ZT09PXZvaWQgMD8ifiI6ZTtmb3IodmFyIGY9W10sZz1tKE9iamVjdC5rZXlzKGEubGYpLnNvcnQoKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1ZbShhLmxmW2xdLGIsYyxkKTtpZihuKXt2YXIgcD12b2lkIDA7Zi5wdXNoKCIiKygocD1sKSE9bnVsbD9wOiIiKStkK24pfX1yZXR1cm4gZi5sZW5ndGg/Zi5qb2luKGUpOnZvaWQgMH0KZnVuY3Rpb24gJG0oYSl7YS5qYj0wO2EuR2MuY2xlYXIoKTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhLmxmKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWEubGZbYy52YWx1ZV07ZC5qYj0wO2QuR2MuY2xlYXIoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkLm5mKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWQubmZbZi52YWx1ZV07Zy5qYj0wO2cuR2MuY2xlYXIoKX19fQpmdW5jdGlvbiBhbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8xOmQ7YS50b3RhbCs9ZDthLmpiKz1kO3ZhciBmLGc9Yj09PXZvaWQgMD8iIjpiO2Y9YS5sZltnXXx8KGEubGZbZ109e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LG5mOnt9fSk7Zi50b3RhbCs9ZDtmLmpiKz1kO3ZhciBoLGw9U3RyaW5nKGMpO2g9Zi5uZltsXXx8KGYubmZbbF09e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0fSk7aC50b3RhbCs9ZDtoLmpiKz1kO2UhPT12b2lkIDAmJihhLkdjLmFkZChlKSxmLkdjLmFkZChlKSxoLkdjLmFkZChlKSl9O3ZhciBibj1mdW5jdGlvbigpe3RoaXMuSD1YbSgpfTtibi5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGEsYil7YW4odGhpcy5ILGEsYil9O3ZhciBjbj1uZXcgYm47ZnVuY3Rpb24gZG4oYSl7dmFyIGI9U3RyaW5nKGFbR2YuWWJdfHwiIikucmVwbGFjZSgvXy9nLCIiKTtyZXR1cm4gU2IoYiwiY3Z0Iik/ImN2dCI6Yn12YXIgZW49QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiP2d0bV9sYXRlbmN5PSIpPj0wfHxBLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCImZ3RtX2xhdGVuY3k9Iik+PTA7dmFyIGduPWZ1bmN0aW9uKCl7dmFyIGE9Zm47cmV0dXJuIE0oNjAzKSYmSWYoNjUsITEpJiYhYS5afSxmbj1uZXcgZnVuY3Rpb24oYSl7dGhpcy5SPWEoKTt2YXIgYj1KZigyNyk7dGhpcy5OPWVufHx0aGlzLlI8Yjt2YXIgYz1KZig0Mik7dGhpcy5aPWVufHx0aGlzLlI+PTEtYzt2YXIgZD1NKDYwMykmJklmKDY1LCExKTt0aGlzLks9dGhpcy5afHxkO3ZhciBlPUpmKDI3KSxmPUpmKDYzKTt0aGlzLkg9ZW58fGY9PT0xfHx0aGlzLlI+PWUmJnRoaXMuUjxlK2Z9KGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9KTt2YXIgaG49ZnVuY3Rpb24oKXt0aGlzLkg9e319O2huLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyl7aWYoZm4uSyl7dmFyIGQ9am4oYixjKTtpZihkKXt2YXIgZSxmPWI7Zj09PTQmJihmPTUpO3ZhciBnPXRoaXMuSFtmXTtnfHwoZz10aGlzLkhbZl09e30pO2U9Zzt2YXIgaD1lW2RdO2h8fChoPWVbZF09W10pO2gucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpKTtjbi5pbmNyZW1lbnQoYS5kZXN0aW5hdGlvbklkLGEuZW5kcG9pbnQpO2EuZW5kcG9pbnQhPT01NiYmYS5lbmRwb2ludCE9PTYxJiZWbSgibWRlIiwhMCl9fX07CnZhciBtbj1mdW5jdGlvbihhLGIpe3ZhciBjPWtuLGQ9am4oYSxiKTtpZihkKXt2YXIgZT1sbihjLGEpO2lmKGUpe3ZhciBmPWVbZF07ZiYmKGVbZF09Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWcuRW99KSl9fX0sbG49ZnVuY3Rpb24oYSxiKXtiPT09NCYmKGI9NSk7cmV0dXJuIGEuSFtiXX0sam49ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2lmKGJbMF09PT0iLyIpe3ZhciBkO2M9KChkPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpkLm9yaWdpbikrYn10cnl7dmFyIGU9bmV3IFVSTChjKTtyZXR1cm4gYT09PTI/ZS5vcmlnaW46ZS5vcmlnaW4rZS5wYXRobmFtZX1jYXRjaChmKXt9fSxrbj1uZXcgaG47CmZ1bmN0aW9uIG5uKGEpe3N3aXRjaChhKXtjYXNlICJzY3JpcHQtc3JjIjpyZXR1cm4gNDtjYXNlICJzY3JpcHQtc3JjLWVsZW0iOnJldHVybiA1O2Nhc2UgImZyYW1lLXNyYyI6cmV0dXJuIDI7Y2FzZSAiY29ubmVjdC1zcmMiOnJldHVybiAxO2Nhc2UgImltZy1zcmMiOnJldHVybiAzfX07ZnVuY3Rpb24gb24oYSxiLGMpe3ZhciBkLGU9YS5Hb29nbGViUWhDc087ZXx8KGU9e30sYS5Hb29nbGViUWhDc089ZSk7ZD1lO2lmKGRbYl0pcmV0dXJuITE7ZFtiXT1bXTtkW2JdWzBdPWM7cmV0dXJuITB9O3ZhciBwbixxbjthOntmb3IodmFyIHJuPVsiQ0xPU1VSRV9GTEFHUyJdLHNuPVJhLHRuPTA7dG48cm4ubGVuZ3RoO3RuKyspaWYoc249c25bcm5bdG5dXSxzbj09bnVsbCl7cW49bnVsbDticmVhayBhfXFuPXNufXZhciB1bj1xbiYmcW5bNjEwNDAxMzAxXTtwbj11biE9bnVsbD91bjohMTtmdW5jdGlvbiB2bigpe3ZhciBhPVJhLm5hdmlnYXRvcjtpZihhKXt2YXIgYj1hLnVzZXJBZ2VudDtpZihiKXJldHVybiBifXJldHVybiIifXZhciB3bix4bj1SYS5uYXZpZ2F0b3I7d249eG4/eG4udXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIHluKGEpe2lmKCFwbnx8IXduKXJldHVybiExO2Zvcih2YXIgYj0wO2I8d24uYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPXduLmJyYW5kc1tiXS5icmFuZDtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHpuKGEpe3JldHVybiB2bigpLmluZGV4T2YoYSkhPS0xfTtmdW5jdGlvbiBBbigpe3JldHVybiBwbj8hIXduJiZ3bi5icmFuZHMubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gQm4oKXtyZXR1cm4gQW4oKT8hMTp6bigiT3BlcmEiKX1mdW5jdGlvbiBDbigpe3JldHVybiB6bigiRmlyZWZveCIpfHx6bigiRnhpT1MiKX1mdW5jdGlvbiBEbigpe3JldHVybiBBbigpP3luKCJDaHJvbWl1bSIpOih6bigiQ2hyb21lIil8fHpuKCJDcmlPUyIpKSYmIShBbigpPzA6em4oIkVkZ2UiKSl8fHpuKCJTaWxrIil9O2Z1bmN0aW9uIEVuKCl7cmV0dXJuIHBuPyEhd24mJiEhd24ucGxhdGZvcm06ITF9ZnVuY3Rpb24gRm4oKXtyZXR1cm4gem4oImlQaG9uZSIpJiYhem4oImlQb2QiKSYmIXpuKCJpUGFkIil9ZnVuY3Rpb24gR24oKXtGbigpfHx6bigiaVBhZCIpfHx6bigiaVBvZCIpfTt2YXIgSG49ZnVuY3Rpb24oYSl7SG5bIiAiXShhKTtyZXR1cm4gYX07SG5bIiAiXT1mdW5jdGlvbigpe307Qm4oKTtBbigpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpO3puKCJFZGdlIik7IXpuKCJHZWNrbyIpfHx2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKXx8em4oIkVkZ2UiKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKSYmem4oIk1vYmlsZSIpO0VuKCl8fHpuKCJNYWNpbnRvc2giKTtFbigpfHx6bigiV2luZG93cyIpOyhFbigpP3duLnBsYXRmb3JtPT09IkxpbnV4Ijp6bigiTGludXgiKSl8fEVuKCl8fHpuKCJDck9TIik7RW4oKXx8em4oIkFuZHJvaWQiKTtGbigpO3puKCJpUGFkIik7em4oImlQb2QiKTtHbigpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJrYWlvcyIpO0NuKCk7Rm4oKXx8em4oImlQb2QiKTt6bigiaVBhZCIpOyF6bigiQW5kcm9pZCIpfHxEbigpfHxDbigpfHxCbigpfHx6bigiU2lsayIpO0RuKCk7IXpuKCJTYWZhcmkiKXx8RG4oKXx8KEFuKCk/MDp6bigiQ29hc3QiKSl8fEJuKCl8fChBbigpPzA6em4oIkVkZ2UiKSl8fChBbigpP3luKCJNaWNyb3NvZnQgRWRnZSIpOnpuKCJFZGcvIikpfHwoQW4oKT95bigiT3BlcmEiKTp6bigiT1BSIikpfHxDbigpfHx6bigiU2lsayIpfHx6bigiQW5kcm9pZCIpfHxHbigpO3ZhciBJbj17fSxKbj1udWxsOwpmdW5jdGlvbiBLbihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U+MjU1JiYoYltjKytdPWUmMjU1LGU+Pj04KTtiW2MrK109ZX12YXIgZj00O2Y9PT12b2lkIDAmJihmPTApO2lmKCFKbil7Sm49e307Zm9yKHZhciBnPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGg9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbD0wO2w8NTtsKyspe3ZhciBuPWcuY29uY2F0KGhbbF0uc3BsaXQoIiIpKTtJbltsXT1uO2Zvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO0puW3FdPT09dm9pZCAwJiYoSm5bcV09cCl9fX1mb3IodmFyIHI9SW5bZl0sdD1BcnJheShNYXRoLmZsb29yKGIubGVuZ3RoLzMpKSx1PXJbNjRdfHwiIix2PTAseD0wO3Y8Yi5sZW5ndGgtMjt2Kz0zKXt2YXIgeT1iW3ZdLHo9Ylt2KzFdLEM9Ylt2KzJdLApEPXJbeT4+Ml0sST1yWyh5JjMpPDw0fHo+PjRdLEc9clsoeiYxNSk8PDJ8Qz4+Nl0sTj1yW0MmNjNdO3RbeCsrXT0iIitEK0krRytOfXZhciBTPTAsVz11O3N3aXRjaChiLmxlbmd0aC12KXtjYXNlIDI6Uz1iW3YrMV0sVz1yWyhTJjE1KTw8Ml18fHU7Y2FzZSAxOnZhciBlYT1iW3ZdO3RbeF09IiIrcltlYT4+Ml0rclsoZWEmMyk8PDR8Uz4+NF0rVyt1fXJldHVybiB0LmpvaW4oIiIpfTt2YXIgTG49ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O3ZhciBNbj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO2Z1bmN0aW9uIE5uKGEsYixjLGQpe2Zvcih2YXIgZT1iLGY9Yy5sZW5ndGg7KGU9YS5pbmRleE9mKGMsZSkpPj0wJiZlPGQ7KXt2YXIgZz1hLmNoYXJDb2RlQXQoZS0xKTtpZihnPT0zOHx8Zz09NjMpe3ZhciBoPWEuY2hhckNvZGVBdChlK2YpO2lmKCFofHxoPT02MXx8aD09Mzh8fGg9PTM1KXJldHVybiBlfWUrPWYrMX1yZXR1cm4tMX12YXIgT249LyN8JC87CmZ1bmN0aW9uIFBuKGEsYil7dmFyIGM9YS5zZWFyY2goT24pLGQ9Tm4oYSwwLGIsYyk7aWYoZDwwKXJldHVybiBudWxsO3ZhciBlPWEuaW5kZXhPZigiJiIsZCk7aWYoZTwwfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIExuKGEuc2xpY2UoZCxlIT09LTE/ZTowKSl9dmFyIFFuPS9bPyZdKCR8IykvOwpmdW5jdGlvbiBSbihhLGIsYyl7Zm9yKHZhciBkLGU9YS5zZWFyY2goT24pLGY9MCxnLGg9W107KGc9Tm4oYSxmLGIsZSkpPj0wOyloLnB1c2goYS5zdWJzdHJpbmcoZixnKSksZj1NYXRoLm1pbihhLmluZGV4T2YoIiYiLGcpKzF8fGUsZSk7aC5wdXNoKGEuc2xpY2UoZikpO2Q9aC5qb2luKCIiKS5yZXBsYWNlKFFuLCIkMSIpO3ZhciBsLG49YyE9bnVsbD8iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSk6IiI7dmFyIHA9YituO2lmKHApe3ZhciBxLHI9ZC5pbmRleE9mKCIjIik7cjwwJiYocj1kLmxlbmd0aCk7dmFyIHQ9ZC5pbmRleE9mKCI/IiksdTt0PDB8fHQ+cj8odD1yLHU9IiIpOnU9ZC5zdWJzdHJpbmcodCsxLHIpO3E9W2Quc2xpY2UoMCx0KSx1LGQuc2xpY2UocildO3ZhciB2PXFbMV07cVsxXT1wP3Y/disiJiIrcDpwOnY7bD1xWzBdKyhxWzFdPyI/IitxWzFdOiIiKStxWzJdfWVsc2UgbD1kO3JldHVybiBsfTtmdW5jdGlvbiBTbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPVBuKGMsImZtdCIpO2lmKGQpe3ZhciBuPVBuKGMsInJhbmRvbSIpLHA9UG4oYywibGFiZWwiKXx8IiI7aWYoIW4pcmV0dXJuO3ZhciBxPUtuKExuKHApKyI6IitMbihuKSk7aWYoIW9uKGEscSxkKSlyZXR1cm59bCYmTnVtYmVyKGwpIT09ND8oYz1SbihjLCJyZm10IixsKSxjPVJuKGMsImZtdCIsNCkpOmx8fChjPVJuKGMsImZtdCIsNCkpO1VjKGMsZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2EuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cyYmZCYmKGEuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cz1udWxsLGQoKSl9LGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTtlPT1udWxsfHxlKCl9LGYsYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0ucGFyZW50RWxlbWVudHx8dm9pZCAwKTtyZXR1cm4gY307ZnVuY3Rpb24gVm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtpZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFduKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIGpkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMyxiWzBdKTtaYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFluKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIG1kLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsNSxiWzBdKTtVYy5hcHBseShudWxsLHcoYikpfQpmdW5jdGlvbiAkbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7YlswXSYma24ucmVnaXN0ZXIoYSwyLGJbMF0pO1hjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gYW8oYSl7dmFyIGI9U24uYXBwbHkobnVsbCx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpO2ImJmtuLnJlZ2lzdGVyKGEsNCxiKTtyZXR1cm4gYn07dmFyIGJvPXtNYTp7UmU6MCxVZToxLExoOjJ9fTtiby5NYVtiby5NYS5SZV09IkZVTExfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5VZV09IkxJTUlURURfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5MaF09Ik5PX1RSQU5TTUlTU0lPTiI7dmFyIGNvPXtpYTp7Z2Q6MCxjYjoxLHhkOjIsWmI6M319O2NvLmlhW2NvLmlhLmdkXT0iTk9fUVVFVUUiO2NvLmlhW2NvLmlhLmNiXT0iQURTIjtjby5pYVtjby5pYS54ZF09IkFOQUxZVElDUyI7Y28uaWFbY28uaWEuWmJdPSJNT05JVE9SSU5HIjt2YXIgZW89ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLmNvbnNlbnRUeXBlcz1ifTtlby5wcm90b3R5cGUuaXNDb25zZW50R3JhbnRlZD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLkgpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7Y2FzZSAxOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2RlZmF1bHQ6eWModGhpcy5ILCJjb25zZW50c1JlcXVpcmVkIGhhZCBhbiB1bmtub3duIHR5cGUiKX19Owp2YXIgZm89bmV3IGZ1bmN0aW9uKCl7dmFyIGE9e307dGhpcy5IPShhW2NvLmlhLmdkXT1iby5NYS5SZSxhW2NvLmlhLmNiXT1iby5NYS5SZSxhW2NvLmlhLnhkXT1iby5NYS5SZSxhW2NvLmlhLlpiXT1iby5NYS5SZSxhKTt2YXIgYj17fTt0aGlzLks9KGJbY28uaWEuZ2RdPW5ldyBlbygwLFtdKSxiW2NvLmlhLmNiXT1uZXcgZW8oMCxbImFkX3N0b3JhZ2UiXSksYltjby5pYS54ZF09bmV3IGVvKDAsWyJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiW2NvLmlhLlpiXT1uZXcgZW8oMSxbImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiKX07dmFyIGhvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy50eXBlPWE7dGhpcy5IPVtdO0ZsKGZvLktbYV0uY29uc2VudFR5cGVzLGZ1bmN0aW9uKCl7Z28oYil8fGIuZmx1c2goKX0pfTtoby5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9bSh0aGlzLkgpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKXt2YXIgYz1iLnZhbHVlO2MoKX10aGlzLkg9W119O3ZhciBnbz1mdW5jdGlvbihhKXtyZXR1cm4gZm8uSFthLnR5cGVdPT09Ym8uTWEuTGgmJiFmby5LW2EudHlwZV0uaXNDb25zZW50R3JhbnRlZCgpfSxpbz1mdW5jdGlvbihhLGIpe2dvKGEpP2EuSC5wdXNoKGIpOmIoKX0sam89ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IE1hcH0sbG89ZnVuY3Rpb24oYSl7dmFyIGI9a287Yi5ILmhhcyhhKXx8Yi5ILnNldChhLG5ldyBobyhhKSk7cmV0dXJuIGIuSC5nZXQoYSl9O2pvLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSC5jbGVhcigpfTsKdmFyIGtvPW5ldyBqbzt2YXIgbW89WyJmaW4iLCJmcyIsIm1jYyIsIm5jYyJdLG5vPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD8hMTphO3ZhciBiPVJtKCksYz1RbS5LLGQ9Yi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV0hPT12b2lkIDAmJihhfHwhbW8uaW5jbHVkZXMoZSkpfSk7VG0oZCk7cmV0dXJuIGQubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWNbZV07dHlwZW9mIGY9PT0iZnVuY3Rpb24iJiYoZj1mKCkpO3JldHVybiBmPyImIitlKyI9IitmOiIifSkuam9pbigiIikrIiZ6PTAifSxvbz1mdW5jdGlvbihhKXt2YXIgYj0iaHR0cHM6Ly8iK0UoMjEpLGM9Ii90ZD9pZD0iK0UoNSk7cmV0dXJuIiIrZmsoYikrYythfSxwbz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7aWYoJGsoMjYpJiZmbi5LJiZFKDUpJiYoY3x8IWduKCkpKXt2YXIgZD1sbyhjby5pYS5aYik7aWYoZ28oZCkpYS5IfHwoYS5IPSEwLGlvKGQsZnVuY3Rpb24oKXtyZXR1cm4gcG8oYSl9KSk7CmVsc2V7YiYmVW0oImZpbiIsIjEiKTt2YXIgZT1ubyhiKSxmPW9vKGUpLGc9e2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo2MX07Yj9ZbihnLGYsdm9pZCAwLHtRZzohMH0sdm9pZCAwLGZ1bmN0aW9uKCl7WmMoZisiJmltZz0xIil9KTpYbihnLGYpO2EuSD0hMTtxbyhlKX19fSxxbz1mdW5jdGlvbihhKXtpZihLYyYmKFNiKEtjLCJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS8iKXx8SWYoNDcpKSYmIShhLmluZGV4T2YoIiZjc3A9Iik8MCYmYS5pbmRleE9mKCImbWRlPSIpPDApKXt2YXIgYjthOnt0cnl7aWYoS2Mpe2I9bmV3IFVSTChLYyk7YnJlYWsgYX19Y2F0Y2goYyl7fWI9dm9pZCAwfWImJlVjKCIiK0tjKyhLYy5pbmRleE9mKCI/Iik+PTA/IiYiOiI/IikrImlzX3RkPTEiK2EpfX0scm89ZnVuY3Rpb24oYSl7Um0oKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiFQbVtiXX0pJiZwbyhhLCEwKX0sc289bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9ITE7CiRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3JvKGEpfSl9O2Z1bmN0aW9uIHRvKGEsYil7cG8oc28sYT09PXZvaWQgMD8hMTphLGI9PT12b2lkIDA/ITE6Yil9O3ZhciB1bz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSIsImFkX3BlcnNvbmFsaXphdGlvbiJdLHZvPVtGLkQuZGQsRi5ELnljLEYuRC5RZixGLkQuS2IsRi5ELnhjLEYuRC5mYixGLkQuRGIsRi5ELm5iLEYuRC5MYixGLkQudmNdLHlvPWZ1bmN0aW9uKCl7dmFyIGE9d287IWEuUiYmYS5IJiYodW8uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYl0hPT0xfSl8fHhvKCJtYmMiKSk7YS5SPSEwfSx4bz1mdW5jdGlvbihhKXtmbi5LJiYoVW0oYSwiMSIpLHRvKCkpfSx6bz1mdW5jdGlvbihhLGIpe3ZhciBjPXdvO2lmKCFjLk5bYl0mJihjLk5bYl09ITAsYy5LW2JdKSlmb3IodmFyIGQ9bSh2byksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpaWYoTyhhLGUudmFsdWUpKXt4bygiZXJjIik7YnJlYWt9fSx3bz1uZXcgZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5IPSExO3RoaXMuTj17fTt0aGlzLks9e319O3ZhciBBbz17fSxCbz1PYmplY3QuZnJlZXplKChBb1tGLkQuUmNdPTEsQW9bRi5ELmhoXT0xLEFvW0YuRC5zaV09MSxBb1tGLkQuU2NdPTEsQW9bRi5ELkhhXT0xLEFvW0YuRC5MYl09MSxBb1tGLkQuQ2JdPTEsQW9bRi5ELlRiXT0xLEFvW0YuRC5JZF09MSxBb1tGLkQudmNdPTEsQW9bRi5ELm5iXT0xLEFvW0YuRC5KZF09MSxBb1tGLkQuSGVdPTEsQW9bRi5ELk9hXT0xLEFvW0YuRC5RcF09MSxBb1tGLkQuUGZdPTEsQW9bRi5ELkZpXT0xLEFvW0YuRC5waF09MSxBb1tGLkQuV2NdPTEsQW9bRi5ELlFmXT0xLEFvW0YuRC5hcV09MSxBb1tGLkQuVGFdPTEsQW9bRi5ELlVmXT0xLEFvW0YuRC5mcV09MSxBb1tGLkQuT2RdPTEsQW9bRi5ELlJsXT0xLEFvW0YuRC5ZY109MSxBb1tGLkQuWmNdPTEsQW9bRi5ELkRiXT0xLEFvW0YuRC5hbV09MSxBb1tGLkQuV2JdPTEsQW9bRi5ELlRkXT0xLEFvW0YuRC5YYl09MSxBb1tGLkQuT2ldPTEsQW9bRi5ELmRkXT0xLEFvW0YuRC55aF09MSxBb1tGLkQuUGldPQoxLEFvW0YuRC5VZF09MSxBb1tGLkQueWNdPTEsQW9bRi5ELlZkXT0xLEFvW0YuRC5sbV09MSxBb1tGLkQuV2RdPTEsQW9bRi5ELmVkXT0xLEFvW0YuRC5val09MSxBbykpO09iamVjdC5mcmVlemUoW0YuRC56YSxGLkQuVWEsRi5ELk1iLEYuRC50YixGLkQuTmksRi5ELmZiLEYuRC5HaSxGLkQuTXBdKTsKdmFyIENvPXt9LERvPU9iamVjdC5mcmVlemUoKENvW0YuRC5xcF09MSxDb1tGLkQucnBdPTEsQ29bRi5ELnRwXT0xLENvW0YuRC51cF09MSxDb1tGLkQudnBdPTEsQ29bRi5ELnpwXT0xLENvW0YuRC5BcF09MSxDb1tGLkQuQnBdPTEsQ29bRi5ELkRwXT0xLENvW0YuRC55Zl09MSxDbykpLEVvPXt9LEZvPU9iamVjdC5mcmVlemUoKEVvW0YuRC52bF09MSxFb1tGLkQud2xdPTEsRW9bRi5ELnhlXT0xLEVvW0YuRC55ZV09MSxFb1tGLkQueGxdPTEsRW9bRi5ELkFkXT0xLEVvW0YuRC56ZV09MSxFb1tGLkQub2NdPTEsRW9bRi5ELlFjXT0xLEVvW0YuRC5xY109MSxFb1tGLkQuSWJdPTEsRW9bRi5ELkFlXT0xLEVvW0YuRC5yY109MSxFb1tGLkQueWxdPTEsRW8pKSxHbz1PYmplY3QuZnJlZXplKFtGLkQuUmMsRi5ELlNjLEYuRC5KZCxGLkQuUWYsRi5ELldmLEYuRC5UZCxGLkQuT2ksRi5ELlZkXSksSG89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhHbykpKSxJbz1PYmplY3QuZnJlZXplKFtGLkQuQ2IsCkYuRC5waCxGLkQueWgsRi5ELlBpLEYuRC5uaF0pLEpvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoSW8pKSksS289e30sTG89KEtvW0YuRC5rYV09IjEiLEtvW0YuRC5yYV09IjIiLEtvW0YuRC5tYV09IjMiLEtvW0YuRC5YYV09IjQiLEtvKSxNbz17fSxObz1PYmplY3QuZnJlZXplKChNby5zZWFyY2g9InMiLE1vLnlvdXR1YmU9InkiLE1vLnBsYXlzdG9yZT0icCIsTW8uc2hvcHBpbmc9ImgiLE1vLmFkcz0iYSIsTW8ubWFwcz0ibSIsTW8pKTtmdW5jdGlvbiBPbyhhKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/e306YX1mdW5jdGlvbiBQbyhhKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PW51bGw/IiI6dHlwZW9mIGE9PT0ib2JqZWN0Ij9hLnRvU3RyaW5nKCk6U3RyaW5nKGEpfWZ1bmN0aW9uIFFvKGEpe2lmKGEhPT12b2lkIDAmJmEhPT1udWxsKXJldHVybiBQbyhhKX07dmFyIFJvPVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdO2Z1bmN0aW9uIFNvKGEpe2Zvcih2YXIgYj1tKGFbRi5ELm5jXXx8WyIiXSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17cmVnaW9uOnZvaWQgMH0sYz1iLm5leHQoKSlkLnJlZ2lvbj1jLnZhbHVlLEdiKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyl7aWYoZiE9PUYuRC5uYyl7dmFyIGg9UG8oZyksbD1lLnJlZ2lvbixuPXltKCkscD16bSgpO3lsPSEwO3hsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVjbGFyZShmLGgsbCxuLHApfX19KGQpKX0KZnVuY3Rpb24gVG8oYSl7eW8oKTt2YXIgYj1hbCgxNyxmdW5jdGlvbigpe3JldHVybiExfSksYz1hbCgxNixmdW5jdGlvbigpe3JldHVybiExfSk7IWImJmMmJnhvKCJjcmMiKTtaaygxNywhMCk7dmFyIGQ9YVtGLkQuWWddO2QmJlAoNDEpO3ZhciBlPWFbRi5ELm5jXTtlP1AoNDApOmU9WyIiXTtmb3IodmFyIGY9bShlKSxnPWYubmV4dCgpLGg9e307IWcuZG9uZTtoPXtCbzp2b2lkIDB9LGc9Zi5uZXh0KCkpaC5Cbz1nLnZhbHVlLEdiKGEsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4scCl7aWYobiE9PUYuRC5uYyYmbiE9PUYuRC5ZZyl7dmFyIHE9UW8ocCkscj1sLkJvLHQ9TnVtYmVyKGQpLHU9eW0oKSx2PXptKCk7dD10PT09dm9pZCAwPzA6dDt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlZmF1bHQobixxLHIsdSx2LHQsQWwpfX19KGgpKX0KZnVuY3Rpb24gVW8oYSl7QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO3ZhciBiPWFbRi5ELm5jXTtpZihiKXt2YXIgYz1BcnJheS5pc0FycmF5KGIpP2I6W2JdO2lmKCFjLmluY2x1ZGVzKHptKCkpJiYhYy5pbmNsdWRlcyh5bSgpKSlyZXR1cm59R2IoYSxmdW5jdGlvbihkLGUpe3N3aXRjaChkKXtjYXNlICJhZF9zdG9yYWdlIjpjYXNlICJhbmFseXRpY3Nfc3RvcmFnZSI6Y2FzZSAiYWRfdXNlcl9kYXRhIjpjYXNlICJhZF9wZXJzb25hbGl6YXRpb24iOmJyZWFrO2RlZmF1bHQ6cmV0dXJufUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDtBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tkXT1lPT09ImdyYW50ZWQiPzM6Mn0pfQpmdW5jdGlvbiBWbyhhLGIpe3lvKCk7WmsoMTYsITApO0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1QbyhkKTt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLnVwZGF0ZShjLGUsQWwpfSk7R2woYi5ldmVudElkLGIucHJpb3JpdHlJZCl9ZnVuY3Rpb24gV28oYSl7YS5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihBbC5zZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwLEdiKE5vLGZ1bmN0aW9uKGIpe0FsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWEuYWxsPT09ImdyYW50ZWQiO0FsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMH0pKTtHYihhLGZ1bmN0aW9uKGIsYyl7YiE9PSJhbGwiJiYoQWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09Yz09PSJncmFudGVkIixBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITApfSl9CmZ1bmN0aW9uIFhvKGEpe0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gWW8oKXt2YXIgYT1abztBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gJG8oYSxiKXtGbChhLGIpfWZ1bmN0aW9uIGFwKGEsYil7SWwoYSxiKX1mdW5jdGlvbiBicChhLGIpe0hsKGEsYil9ZnVuY3Rpb24gY3AoKXt2YXIgYT1bRi5ELmthLEYuRC5YYSxGLkQubWFdO3RsKCkud2FpdEZvclVwZGF0ZShhLDUwMCxBbCl9ZnVuY3Rpb24gZHAoYSl7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7dGwoKS5jbGVhclRpbWVvdXQoZCx2b2lkIDAsQWwpfUdsKCl9CmZ1bmN0aW9uIGVwKGEpe2Zvcih2YXIgYj17fSxjPW0oYS5zcGxpdCgifCIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBifTt2YXIgZnA9T2JqZWN0LmZyZWV6ZShbRi5ELmthLEYuRC5tYV0pOwp2YXIgaHA9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltncFtlXXx8ZV09YVtlXX1yZXR1cm4gYn0saXA9ZnVuY3Rpb24oYSl7cmV0dXJuISFRKGEsSC5KLnZkKSYmUihhLEYuRC5QZCk9PT0iMSImJlIoYSxGLkQuSGQpIT09IjEiJiZYbyhmcCl9LGpwPWZ1bmN0aW9uKGEsYil7aWYoIWlwKGEpKXJldHVybiExO3ZhciBjPVFjKCl8fE9jKCk/NTg6NTcsZD1ObShjLGhwKGIpKTtUbChkLGEsYyk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCsiJmZtdD04Iix2b2lkIDAse1FnOiEwLG1ldGhvZDoiR0VUIn0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoZCsiJmZtdD0zIil9KTtyZXR1cm4hMH0sa3A9e30sZ3A9KGtwLmRsPSJ1cmwiLGtwLmRyPQoicmVmIixrcC51aWQ9InVzZXJJZCIsa3ApO3ZhciBscD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9ZnVuY3Rpb24oZSl7YltlXSE9bnVsbCYmYltlXSE9PSIiJiYoY1tlXT1iW2VdKX07TSg0NzQpJiZkKCJfZ3NpZCIpO1IoYSxGLkQuSGQpIT09IjEiJiYoZCgiZ2NsaWQiKSxkKCJnY2xzcmMiKSxkKCJhdWlkIiksZCgiZGNsaWQiKSk7aWYoT2JqZWN0LmtleXMoYykubGVuZ3RoKXJldHVybiBkKCJndG0iKSxjfTsKdmFyIG1wPXt9LG5wPShtcFtGLkQuc2FdPSJnY3UiLG1wW0YuRC5TYl09ImdjbGdiIixtcFtGLkQubGJdPSJnY2xhdyIsbXBbRi5ELnpmXT0iZ2FkX3NvdXJjZSIsbXBbRi5ELkFmXT0iZ2FkX3NvdXJjZV9zcmMiLG1wW0YuRC5EZF09ImdjbGlkIixtcFtGLkQuQWxdPSJnY2xzcmMiLG1wW0YuRC5CZl09ImdicmFpZCIsbXBbRi5ELkVlXT0id2JyYWlkIixtcFtGLkQuRWRdPSJhdWlkIixtcFtGLkQuQmxdPSJhZSIsbXBbRi5ELkhhXT1udWxsLG1wW0YuRC5EbF09InJuZCIsbXBbRi5ELkhkXT0ibmNsIixtcFtGLkQuTmZdPSJnY2xkYyIsbXBbRi5ELktkXT0iZGNsaWQiLG1wW0YuRC5WY109ImVkaWQiLG1wW0YuRC5VYl09ImVuIixtcFtGLkQuS2VdPSJnZHByIixtcFtGLkQuWGNdPSJnZGlkIixtcFtGLkQuVGFdPW51bGwsbXBbRi5ELkxlXT0iX25nIixtcFtGLkQudGhdPSJncHBfc2lkIixtcFtGLkQudWhdPSJncHAiLG1wW0YuRC5WZl09Il90dSIsbXBbRi5ELlFsXT0iZ3RtX3VwIixtcFtGLkQuTWVdPQoiZnJtIixtcFtGLkQuUGRdPSJscHMiLG1wW0YuRC5MaV09ImRpZCIsbXBbRi5ELlVsXT0ibmF2dCIsbXBbRi5ELnphXT0iZGwiLG1wW0YuRC5VYV09ImRyIixtcFtGLkQuTWJdPSJkdCIsbXBbRi5ELmJtXT0ic2Nyc3JjIixtcFtGLkQuWmZdPSJnYV91aWQiLG1wW0YuRC5PZV09ImdkcHJfY29uc2VudCIsbXBbRi5ELlFpXT0idGVzdG9ubHkiLG1wW0YuRC5ycV09InVfdHoiLG1wW0YuRC5QZV09InRvcCIsbXBbRi5ELlFlXT0idGlkIixtcFtGLkQuZmJdPSJ1aWQiLG1wW0YuRC5rZ109InVzX3ByaXZhY3kiLG1wW0YuRC5lZF09bnVsbCxtcFtGLkQuZGVdPSJucGEiLG1wKTtmdW5jdGlvbiBvcChhLGIpe2lmKGIhPW51bGwmJmIhPT0iIil7dmFyIGM9Yj09PSEwPyIxIjpiPT09ITE/IjAiOmVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYikpO2lmKFNiKGEsIl8mIikpcmV0dXJue2tleTphLnN1YnN0cmluZygyKSx2YWx1ZTpjfTt2YXIgZD1ucFthXTtpZihkIT09bnVsbClyZXR1cm4gZD97a2V5OmQsdmFsdWU6Y306e2tleTpBYihiKT8iZXBuLiIrYToiZXAuIithLHZhbHVlOmN9fX07ZnVuY3Rpb24gcHAoYSl7YT1hPT09dm9pZCAwP1tdOmE7cmV0dXJuIHhqKGEpLmpvaW4oIn4iKX07ZnVuY3Rpb24gcXAoKXt2YXIgYT1bXSxiPU51bWJlcignJyl8fDAsYz1OdW1iZXIoJycpfHwwO2N8fChjPWIvMTAwKTt2YXIgZD1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjI4LHN0dWR5SWQ6MjI4LGV4cGVyaW1lbnRJZDoxMDUxNzcxNTQsY29udHJvbElkOjEwNTE3NzE1NSxjb250cm9sSWQyOjEwNTI1NTI0NSxwcm9iYWJpbGl0eTpjLGFjdGl2ZTpkLFplOjB9KTt2YXIgZT1OdW1iZXIoJycpfHwKMCxmPU51bWJlcignJyl8fDA7Znx8KGY9ZS8xMDApO3ZhciBnPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMzUsc3R1ZHlJZDoyMzUsZXhwZXJpbWVudElkOjEwNTM1NzE1MCxjb250cm9sSWQ6MTA1MzU3MTUxLGNvbnRyb2xJZDI6MCxwcm9iYWJpbGl0eTpmLGFjdGl2ZTpnLFplOjF9KTt2YXIgaD1OdW1iZXIoJycpfHwwLGw9TnVtYmVyKCcnKXx8CjA7bHx8KGw9aC8xMDApO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjYsc3R1ZHlJZDoyNjYsZXhwZXJpbWVudElkOjExNTcxODUyOSxjb250cm9sSWQ6MTE1NzE4NTMwLGNvbnRyb2xJZDI6MTE1NzE4NTMxLHByb2JhYmlsaXR5OmwsYWN0aXZlOm4sWmU6MH0pO3ZhciBwPU51bWJlcignJyl8fDAscT1OdW1iZXIoJycpfHwKMDtxfHwocT1wLzEwMCk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NyxzdHVkeUlkOjI2NyxleHBlcmltZW50SWQ6MTE1NzE4NTI2LGNvbnRyb2xJZDoxMTU3MTg1MjcsY29udHJvbElkMjoxMTU3MTg1MjgscHJvYmFiaWxpdHk6cSxhY3RpdmU6cixaZTowfSk7cmV0dXJuIGF9O3ZhciBycD1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj1uZXcgU2V0fSx4cD1mdW5jdGlvbihhLGIpe3ZhciBjPWIsZD1iPWEuTltjLnN0dWR5SWRdP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7YWN0aXZlOiEwfSk6YyxlPUZpO2QuY29udHJvbElkMiYmZC5wcm9iYWJpbGl0eTw9LjI1fHwoZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQse2NvbnRyb2xJZDI6MH0pKTtlLnN0dWRpZXNbZC5zdHVkeUlkXT1kO2IuZm9jdXNlZCYmKGEuS1tiLnN0dWR5SWRdPSEwKTtpZihiLlplPT09MSl7dmFyIGY9Yi5zdHVkeUlkO3NwKGEsdHAoKSxmKTt1cChhLGYpP3RqKHVqLGYpOnZwKGEsZik/dWouS1tmXT0hMDp3cChhLGYpJiYodWouSFtmXT0hMCl9ZWxzZSBpZihiLlplPT09MCl7dmFyIGc9Yi5zdHVkeUlkO3NwKGEsYS5ILGcpO3VwKGEsZyk/dGoodWosZyk6dnAoYSxnKT91ai5LW2ddPSEwOndwKGEsZykmJgoodWouSFtnXT0hMCl9fSxzcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1GaTtpZihlLnN0dWRpZXNbY10pe3ZhciBmPWUuc3R1ZGllc1tjXSxnPWYuZXhwZXJpbWVudElkLGg9Zi5wcm9iYWJpbGl0eTtpZighKGIuc3R1ZGllc3x8e30pW2NdKXt2YXIgbD1iLnN0dWRpZXN8fHt9O2xbY109ITA7Yi5zdHVkaWVzPWw7aWYoIWUuc3R1ZGllc1tjXS5hY3RpdmUpaWYoZS5zdHVkaWVzW2NdLnByb2JhYmlsaXR5Pi41KUlpKGIsZyxjKTtlbHNlIGlmKCEoaDw9MHx8aD4xKSl7dmFyIG49dm9pZCAwO2lmKGQpe3ZhciBwPUNpKGQrIn4iK2MpO2lmKHA9PT0iZTIiKW49LTE7ZWxzZXtmb3IodmFyIHE9bmV3IFVpbnQ4QXJyYXkocCkscj1CaWdJbnQoMCksdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXI9cjw8QmlnSW50KDgpfEJpZ0ludCh1LnZhbHVlKTtuPU51bWJlcihyJUJpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpfX1HaS5zayhiLGMsbil9fX1pZighYS5LW2NdKXt2YXIgdj0KTmkoYixjKTt2JiZ3ai5ILksuYWRkKHYpfX0sdHA9ZnVuY3Rpb24oKXtyZXR1cm4gb20oam0uYmEuVHEse30pfSx1cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIEtpKGMsYil8fEtpKGEuSCxiKX0sdnA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBMaShjLGIpfHxMaShhLkgsYil9LHdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTWkoYyxiKXx8TWkoYS5ILGIpfSx5cDsKZnVuY3Rpb24genAoKXtpZigheXApe3ZhciBhPXlwPW5ldyBycCxiLGMsZD0oKGI9QSk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhhc2gpfHwiIjtpZihkWzBdPT09IiMiJiZkWzFdPT09Il8iJiZkWzJdPT09InQiJiZkWzNdPT09ImUiJiZkWzRdPT09Ij0iKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtpZihlKWZvcih2YXIgZj1tKGUuc3BsaXQoIn4iKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPU51bWJlcihnLnZhbHVlKTtoJiYoYS5OW2hdPSEwLHRqKHVqLGgpKX19Zm9yKHZhciBsPW0ocXAoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpeHAoYSxuLnZhbHVlKTtmb3IodmFyIHA9W10scT1tKE1mKDU2KXx8W10pLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9e3N0dWR5SWQ6dFsxXSxhY3RpdmU6ISF0WzJdLHByb2JhYmlsaXR5OnRbM118fDAsZXhwZXJpbWVudElkOnRbNF18fAowLGNvbnRyb2xJZDp0WzVdfHwwLGNvbnRyb2xJZDI6dFs2XXx8MH0sdj0wO3N3aXRjaCh0WzddKXtjYXNlIDI6dj0xO2JyZWFrO2Nhc2UgMzp2PTI7YnJlYWs7Y2FzZSAxOmNhc2UgNDpjYXNlIDU6Y2FzZSAwOnY9MH12YXIgeDthOnN3aXRjaCh1LnN0dWR5SWQpe2Nhc2UgNTY3OmNhc2UgNDYyOng9ITA7YnJlYWsgYTtkZWZhdWx0Ong9ITF9dmFyIHk9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx1LHtaZTp2LGZvY3VzZWQ6eH0pOyh5LmFjdGl2ZXx8eS5wcm9iYWJpbGl0eT4uNSYmeS5leHBlcmltZW50SWR8fHkuZXhwZXJpbWVudElkJiZ5LmNvbnRyb2xJZCkmJnAucHVzaCh5KX1mb3IodmFyIHo9bShwKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl4cChhLEMudmFsdWUpfX0KZnVuY3Rpb24gQXAoYSxiKXt6cCgpO3ZhciBjPXlwO3NwKGMsdHAoKSxhLGIpO3VwKGMsYSk/dGoodWosYSk6dnAoYyxhKT91ai5LW2FdPSEwOndwKGMsYSkmJih1ai5IW2FdPSEwKX1mdW5jdGlvbiBCcCgpe3pwKCk7dmFyIGE9eXAsYj11cChhLDU2Nyk7aWYoYS5LWzU2N10pe3ZhciBjLGQ9dHAoKTsoYz1OaShkLDU2Nyl8fE5pKGEuSCw1NjcpKSYmYS5SLmFkZChjKX1yZXR1cm4gYn1mdW5jdGlvbiBDcChhKXt6cCgpO3ZhciBiPW5ldyBTZXQoeXAuUik7aWYoYSlmb3IodmFyIGM9UShhLEguSi5DaCl8fFtdLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSliLmFkZChlLnZhbHVlKTtyZXR1cm4gcHAoW10uY29uY2F0KHcoYikpKX07ZnVuY3Rpb24gRHAoYSl7dmFyIGI9YS5sb2NhdGlvbi5ocmVmO2lmKGE9PT1hLnRvcClyZXR1cm57dXJsOmIsSXM6ITB9O3ZhciBjPSExLGQ9YS5kb2N1bWVudDtkJiZkLnJlZmVycmVyJiYoYj1kLnJlZmVycmVyLGEucGFyZW50PT09YS50b3AmJihjPSEwKSk7dmFyIGU9YS5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoZSl7dmFyIGY9ZVtlLmxlbmd0aC0xXSxnO2YmJigoZz1iKT09bnVsbD92b2lkIDA6Zy5pbmRleE9mKGYpKT09PS0xJiYoYz0hMSxiPWYpfXJldHVybnt1cmw6YixJczpjfX1mdW5jdGlvbiBFcChhKXt0cnl7dmFyIGI7aWYoYj0hIWEmJmEubG9jYXRpb24uaHJlZiE9bnVsbClhOnt0cnl7SG4oYS5mb28pO2I9ITA7YnJlYWsgYX1jYXRjaChjKXt9Yj0hMX1yZXR1cm4gYn1jYXRjaChjKXtyZXR1cm4hMX19ZnVuY3Rpb24gRnAoKXtmb3IodmFyIGE9QSxiPWE7YSYmYSE9PWEucGFyZW50OylhPWEucGFyZW50LEVwKGEpJiYoYj1hKTtyZXR1cm4gYn07dmFyIEdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlPWEucHJvdG90eXBlO3ZhciBkPW5ldyBjO2EuYXBwbHkoZCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3JldHVybiBkfSxIcD1mdW5jdGlvbihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj1udWxsO2MoKX19fTtmdW5jdGlvbiBJcChhLGIpe2lmKGEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYVtjXSxjLGEpfTtmdW5jdGlvbiBKcChhKXt2YXIgYj1hLnNwbGl0KC9bPyNdLyksYz0vWz9dLy50ZXN0KGEpPyI/IitiWzFdOiIiO3JldHVybnt6azpiWzBdLHBhcmFtczpjLGZyYWdtZW50Oi9bI10vLnRlc3QoYSk/IiMiKyhjP2JbMl06YlsxXSk6IiJ9fWZ1bmN0aW9uIEtwKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGpjKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBqYyhjKX0KZnVuY3Rpb24gTHAoYSxiLGMsZCl7ZnVuY3Rpb24gZShnLGgpe2chPW51bGwmJihBcnJheS5pc0FycmF5KGcpP2cuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gZShsLGgpfSk6KGIrPWYrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZyksZj0iJiIpKX12YXIgZj1iLmxlbmd0aD8iJiI6Ij8iO2QuY29uc3RydWN0b3I9PT1PYmplY3QmJihkPU9iamVjdC5lbnRyaWVzKGQpKTtBcnJheS5pc0FycmF5KGQpP2QuZm9yRWFjaChmdW5jdGlvbihnKXtyZXR1cm4gZShnWzFdLGdbMF0pfSk6ZC5mb3JFYWNoKGUpO3JldHVybiBqYyhhK2IrYyl9ZnVuY3Rpb24gTXAoYSxiKXt2YXIgYz1KcChrYyhhKS50b1N0cmluZygpKSxkPWMuemsuc2xpY2UoLTEpPT09Ii8iPyIiOiIvIixlPWMuemsrZCtlbmNvZGVVUklDb21wb25lbnQoYik7cmV0dXJuIGpjKGUrYy5wYXJhbXMrYy5mcmFnbWVudCl9O3ZhciBOcD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLGQ9MDtkPDUwOysrZCl7dmFyIGU7dHJ5e2U9ISghYy5mcmFtZXN8fCFjLmZyYW1lc1tiXSl9Y2F0Y2goaCl7ZT0hMX1pZihlKXJldHVybiBjO3ZhciBmO2E6e3RyeXt2YXIgZz1jLnBhcmVudDtpZihnJiZnIT09Yyl7Zj1nO2JyZWFrIGF9fWNhdGNoKGgpe31mPW51bGx9aWYoIShjPWYpKWJyZWFrfXJldHVybiBudWxsfSxPcD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIudG9wPT1iKXJldHVybiAwO2lmKGE9PT12b2lkIDA/MDphKXt2YXIgYz1iLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihjKXJldHVybiBjW2MubGVuZ3RoLTFdPT1iLmxvY2F0aW9uLm9yaWdpbj8xOjJ9cmV0dXJuIEVwKGIudG9wKT8xOjJ9LFBwPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImltZyIpfTtmdW5jdGlvbiBRcChhKXtmb3IodmFyIGI9W10sYz1CLmNvb2tpZS5zcGxpdCgiOyIpLGQ9bmV3IFJlZ0V4cCgiXlxccyoiKyhhfHwiX2dhYyIpKyJfKFVBLVxcZCstXFxkKyk9XFxzKiguKz8pXFxzKiQiKSxlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0ubWF0Y2goZCk7ZiYmYi5wdXNoKHt1ZDpmWzFdLHZhbHVlOmZbMl0sdGltZXN0YW1wOk51bWJlcihmWzJdLnNwbGl0KCIuIilbMV0pfHwwfSl9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFJwKGEsYil7dmFyIGM9UXAoYSksZD17fTtpZighY3x8IWMubGVuZ3RoKXJldHVybiBkO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLnZhbHVlLnNwbGl0KCIuIik7aWYoIShmWzBdIT09IjEifHxiJiZmLmxlbmd0aDwzfHwhYiYmZi5sZW5ndGghPT0zKSYmTnVtYmVyKGZbMV0pKXtkW2NbZV0udWRdfHwoZFtjW2VdLnVkXT1bXSk7dmFyIGc9e3ZlcnNpb246ZlswXSx0aW1lc3RhbXA6TnVtYmVyKGZbMV0pKjFFMyxnY2xpZDpmWzJdfTtiJiZmLmxlbmd0aD4zJiYoZy5sYWJlbHM9Zi5zbGljZSgzKSk7ZFtjW2VdLnVkXS5wdXNoKGcpfX1yZXR1cm4gZH07ZnVuY3Rpb24gU3AoYSl7cmV0dXJuIGEub3JpZ2luIT09Im51bGwifTt2YXIgVHA9e30sVXA9KFRwLms9e25hOi9eW1x3LV0rJC99LFRwLmI9e25hOi9eW1x3LV0rJC8sbms6ITB9LFRwLmk9e25hOi9eWzEtOV1cZCokL30sVHAuaD17bmE6L15cZCskL30sVHAudD17bmE6L15bMS05XVxkKiQvfSxUcC5kPXtuYTovXltBLVphLXowLTlfLV0rJC99LFRwLmo9e25hOi9eXGQrJC99LFRwLnU9e25hOi9eWzEtOV1cZCokL30sVHAubD17bmE6L15bMDFdJC99LFRwLm89e25hOi9eWzEtOV1cZCokL30sVHAuZz17bmE6L15bMDFdJC99LFRwLnM9e25hOi9eLiskL30sVHAubT17bmE6L15bMDFdJC99LFRwKTt2YXIgVnA9e30sWnA9KFZwWzVdPXtqaTp7MjpXcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwidSJdfSxWcFs0XT17amk6ezI6V3AsR0NMOlhwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJtIl19LFZwWzJdPXtqaTp7R1MyOldwLEdTMTpZcH0sWmo6IkdTMiIsUmg6InNvZ3RqbGhkIi5zcGxpdCgiIil9LFZwKTtmdW5jdGlvbiAkcChhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZCl7dmFyIGU9YS5zcGxpdCgiLiIpWzBdO2M9PW51bGx8fGMoZSk7aWYoZSl7dmFyIGY9ZC5qaVtlXTtpZihmKXJldHVybiBmKGEsYil9fX0KZnVuY3Rpb24gV3AoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKXt2YXIgZD1jWzJdO2lmKGQuaW5kZXhPZigiJCIpPT09LTEmJmQuaW5kZXhPZigiJTI0IikhPT0tMSl0cnl7ZD1kZWNvZGVVUklDb21wb25lbnQoZCl9Y2F0Y2godCl7fXZhciBlPXt9LGY9WnBbYl07aWYoZil7Zm9yKHZhciBnPWYuUmgsaD1tKGQuc3BsaXQoIiQiKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD1uWzBdO2lmKGcuaW5kZXhPZihwKSE9PS0xKXRyeXt2YXIgcT1kZWNvZGVVUklDb21wb25lbnQobi5zdWJzdHJpbmcoMSkpLHI9VXBbcF07ciYmKHIubms/KGVbcF09ZVtwXXx8W10sZVtwXS5wdXNoKHEpKTplW3BdPXEpfWNhdGNoKHQpe319cmV0dXJuIGV9fX1mdW5jdGlvbiBhcShhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZClyZXR1cm5bZC5aaixjfHwiMSIsYnEoYSxiKV0uam9pbigiLiIpfQpmdW5jdGlvbiBicShhLGIpe3ZhciBjPVpwW2JdO2lmKGMpe2Zvcih2YXIgZD1bXSxlPW0oYy5SaCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1VcFtnXTtpZihoKXt2YXIgbD1hW2ddO2lmKGwhPT12b2lkIDApaWYoaC5uayYmQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSlkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crcC52YWx1ZSkpO2Vsc2UgZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK2wpKX19cmV0dXJuIGQuam9pbigiJCIpfX1mdW5jdGlvbiBYcChhKXt2YXIgYj1hLnNwbGl0KCIuIik7Yi5zaGlmdCgpO3ZhciBjPWIuc2hpZnQoKSxkPWIuc2hpZnQoKSxlPXt9O3JldHVybiBlLms9ZCxlLmk9YyxlLmI9YixlfQpmdW5jdGlvbiBZcChhKXt2YXIgYj1hLnNwbGl0KCIuIikuc2xpY2UoMik7aWYoIShiLmxlbmd0aDw1fHxiLmxlbmd0aD43KSl7dmFyIGM9e307cmV0dXJuIGMucz1iWzBdLGMubz1iWzFdLGMuZz1iWzJdLGMudD1iWzNdLGMuaj1iWzRdLGMubD1iWzVdLGMuaD1iWzZdLGN9fTtmdW5jdGlvbiBjcShhLGIsYyxkKXt2YXIgZTtyZXR1cm4oZT1kcShmdW5jdGlvbihmKXtyZXR1cm4gZj09PWF9LGIsYyxkKVthXSkhPW51bGw/ZTpbXX1mdW5jdGlvbiBkcShhLGIsYyxkKXt2YXIgZTtpZihlcShkKSl7Zm9yKHZhciBmPXt9LGc9U3RyaW5nKGJ8fGZxKCkpLnNwbGl0KCI7IiksaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgbD1nW2hdLnNwbGl0KCI9Iiksbj1sWzBdLnRyaW0oKTtpZihuJiZhKG4pKXt2YXIgcD1sLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7cCYmYyYmKHA9ZGVjb2RlVVJJQ29tcG9uZW50KHApKTt2YXIgcT12b2lkIDAscj12b2lkIDA7KChxPWYpW3I9bl18fChxW3JdPVtdKSkucHVzaChwKX19ZT1mfWVsc2UgZT17fTtyZXR1cm4gZX0KZnVuY3Rpb24gZ3EoYSxiLGMsZCxlKXtpZihlcShlKSl7dmFyIGY9aHEoYSxkLGUpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtpZihmLmxlbmd0aCE9PTApe2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Kcn0sYik7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Xc30sYyk7cmV0dXJuIGZbMF19fX1mdW5jdGlvbiBqcShhLGIsYyxkKXt2YXIgZT1mcSgpLGY9QTtTcChmKSYmKGYuZG9jdW1lbnQuY29va2llPWEpO3ZhciBnPWZxKCk7cmV0dXJuIGUhPT1nfHxjIT09dm9pZCAwJiZjcShiLGcsITEsZCkuaW5kZXhPZihjKT49MH0KZnVuY3Rpb24ga3EoYSxiLGMsZCl7ZnVuY3Rpb24gZSh4LHkseil7aWYoej09bnVsbClyZXR1cm4gZGVsZXRlIGhbeV0seDtoW3ldPXo7cmV0dXJuIHgrIjsgIit5KyI9Iit6fWZ1bmN0aW9uIGYoeCx5KXtpZih5PT1udWxsKXJldHVybiB4O2hbeV09ITA7cmV0dXJuIHgrIjsgIit5fWlmKCFlcShjLk1jKSlyZXR1cm4gMjt2YXIgZztiPT1udWxsP2c9YSsiPWRlbGV0ZWQ7IGV4cGlyZXM9IisobmV3IERhdGUoMCkpLnRvVVRDU3RyaW5nKCk6KGMuZW5jb2RlJiYoYj1lbmNvZGVVUklDb21wb25lbnQoYikpLGI9bHEoYiksZz1hKyI9IitiKTt2YXIgaD17fTtnPWUoZywicGF0aCIsYy5wYXRoKTt2YXIgbDtjLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP2w9Yy5leHBpcmVzLnRvVVRDU3RyaW5nKCk6Yy5leHBpcmVzIT1udWxsJiYobD0iIitjLmV4cGlyZXMpO2c9ZShnLCJleHBpcmVzIixsKTtnPWUoZywibWF4LWFnZSIsYy5Pcyk7Zz1lKGcsInNhbWVzaXRlIixjLnJ0KTtjLnNlY3VyZSYmCihnPWYoZywic2VjdXJlIikpO3ZhciBuPWMuZG9tYWluO2lmKG4mJm4udG9Mb3dlckNhc2UoKT09PSJhdXRvIil7Zm9yKHZhciBwPW1xKCkscT12b2lkIDAscj0hMSx0PTA7dDxwLmxlbmd0aDsrK3Qpe3ZhciB1PXBbdF0hPT0ibm9uZSI/cFt0XTp2b2lkIDAsdj1lKGcsImRvbWFpbiIsdSk7dj1mKHYsYy5mbGFncyk7dHJ5e2QmJmQoYSxoKX1jYXRjaCh4KXtxPXg7Y29udGludWV9cj0hMDtpZighbnEodSxjLnBhdGgpJiZqcSh2LGEsYixjLk1jKSlyZXR1cm4gMH1pZihxJiYhcil0aHJvdyBxO3JldHVybiAxfW4mJm4udG9Mb3dlckNhc2UoKSE9PSJub25lIiYmKGc9ZShnLCJkb21haW4iLG4pKTtnPWYoZyxjLmZsYWdzKTtkJiZkKGEsaCk7cmV0dXJuIG5xKG4sYy5wYXRoKT8xOmpxKGcsYSxiLGMuTWMpPzA6MX1mdW5jdGlvbiBvcShhLGIsYyl7Yy5wYXRoPT1udWxsJiYoYy5wYXRoPSIvIik7Yy5kb21haW58fChjLmRvbWFpbj0iYXV0byIpO3JldHVybiBrcShhLGIsYyl9CmZ1bmN0aW9uIGlxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmLGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGg9YVtnXSxsPWIoaCk7bD09PWM/ZC5wdXNoKGgpOmY9PT12b2lkIDB8fGw8Zj8oZT1baF0sZj1sKTpsPT09ZiYmZS5wdXNoKGgpfXJldHVybiBkLmxlbmd0aD4wP2Q6ZX1mdW5jdGlvbiBocShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLGMpLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXS5zcGxpdCgiLiIpLGg9Zy5zaGlmdCgpO2lmKCFifHwhaHx8Yi5pbmRleE9mKGgpIT09LTEpe3ZhciBsPWcuc2hpZnQoKTtpZihsKXt2YXIgbj1sLnNwbGl0KCItIik7ZC5wdXNoKHtCcjplW2ZdLENyOmcuam9pbigiLiIpLEpyOk51bWJlcihuWzBdKXx8MSxXczpOdW1iZXIoblsxXSl8fDF9KX19fXJldHVybiBkfWZ1bmN0aW9uIGxxKGEpe2EmJmEubGVuZ3RoPjEyMDAmJihhPWEuc3Vic3RyaW5nKDAsMTIwMCkpO3JldHVybiBhfQp2YXIgcHE9L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9KT8kLyxxcT0vKF58XC4pZG91YmxlY2xpY2tcLm5ldCQvaTtmdW5jdGlvbiBucShhLGIpe3JldHVybiBhIT09dm9pZCAwJiYocXEudGVzdChBLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKXx8Yj09PSIvIiYmcHEudGVzdChhKSl9ZnVuY3Rpb24gcnEoYSl7aWYoIWEpcmV0dXJuIDE7dmFyIGI9YTtZZig0KSYmYT09PSJub25lIiYmKGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7Yj1iLmluZGV4T2YoIi4iKT09PTA/Yi5zdWJzdHJpbmcoMSk6YjtyZXR1cm4gYi5zcGxpdCgiLiIpLmxlbmd0aH1mdW5jdGlvbiBzcShhKXtpZighYXx8YT09PSIvIilyZXR1cm4gMTthWzBdIT09Ii8iJiYoYT0iLyIrYSk7YVthLmxlbmd0aC0xXSE9PSIvIiYmKGErPSIvIik7cmV0dXJuIGEuc3BsaXQoIi8iKS5sZW5ndGgtMX0KZnVuY3Rpb24gdHEoYSxiKXt2YXIgYz0iIitycShhKSxkPXNxKGIpO2Q+MSYmKGMrPSItIitkKTtyZXR1cm4gY30KdmFyIGZxPWZ1bmN0aW9uKCl7dmFyIGE9QTtyZXR1cm4gU3AoYSk/YS5kb2N1bWVudC5jb29raWU6IiJ9LGVxPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZZZig1KT8oQXJyYXkuaXNBcnJheShhKT9hOlthXSkuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIERsKGIpJiZCbChiKX0pOiEwfSxtcT1mdW5jdGlvbigpe3ZhciBhPVtdLGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpO2lmKGIubGVuZ3RoPT09NCl7dmFyIGM9YltiLmxlbmd0aC0xXTtpZihOdW1iZXIoYykudG9TdHJpbmcoKT09PWMpcmV0dXJuWyJub25lIl19Zm9yKHZhciBkPWIubGVuZ3RoLTI7ZD49MDtkLS0pYS5wdXNoKGIuc2xpY2UoZCkuam9pbigiLiIpKTt2YXIgZT1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lO3FxLnRlc3QoZSl8fHBxLnRlc3QoZSl8fGEucHVzaCgibm9uZSIpO3JldHVybiBhfTtmdW5jdGlvbiB1cShhLGIsYyxkKXt2YXIgZSxmPU51bWJlcihhLnBkIT1udWxsP2EucGQ6dm9pZCAwKTtmIT09MCYmKGU9bmV3IERhdGUoKGJ8fE5iKCkpKzFFMyooZnx8Nzc3NkUzKSkpO3JldHVybntwYXRoOmEucGF0aCxkb21haW46YS5kb21haW4sZmxhZ3M6YS5mbGFncyxlbmNvZGU6ISFjLGV4cGlyZXM6ZSxNYzpkfX07dmFyIHZxPW5ldyBNYXAoW1s1LCJhZF9zdG9yYWdlIl0sWzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dLFsyLCJhbmFseXRpY3Nfc3RvcmFnZSJdXSk7ZnVuY3Rpb24gd3EoYSxiLGMpe2lmKFpwW2JdKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KGIpKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPSRwKGcudmFsdWUsYixjKTtoJiZkLnB1c2goeHEoaCkpfXJldHVybiBkfX0KZnVuY3Rpb24geXEoYSl7dmFyIGI9enE7aWYoWnBbMl0pe2Zvcih2YXIgYz17fSxkPWRxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPW0oZFtoXSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPSRwKG4udmFsdWUsMixiKTtwJiYoY1toXXx8KGNbaF09W10pLGNbaF0ucHVzaCh4cShwKSkpfXJldHVybiBjfX1mdW5jdGlvbiBBcShhLGIsYyxkLGUpe2Q9ZHx8e307dmFyIGY9dHEoZC5kb21haW4sZC5wYXRoKSxnPWFxKGIsYyxmKTtpZighZylyZXR1cm4gMTt2YXIgaD11cShkLGUsdm9pZCAwLHZxLmdldChjKSk7cmV0dXJuIG9xKGEsZyxoKX1mdW5jdGlvbiBCcShhLGIpe3ZhciBjPWIubmE7cmV0dXJuIHR5cGVvZiBjPT09ImZ1bmN0aW9uIj9jKGEpOmMudGVzdChhKX0KZnVuY3Rpb24geHEoYSl7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYSkpLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e0FnOnZvaWQgMH0sYz1iLm5leHQoKSl7dmFyIGU9Yy52YWx1ZSxmPWFbZV07ZC5BZz1VcFtlXTtkLkFnP2QuQWcubms/YVtlXT1BcnJheS5pc0FycmF5KGYpP2YuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gQnEoaCxnLkFnKX19KGQpKTp2b2lkIDA6dHlwZW9mIGY9PT0ic3RyaW5nIiYmQnEoZixkLkFnKXx8KGFbZV09dm9pZCAwKTphW2VdPXZvaWQgMH1yZXR1cm4gYX07dmFyIENxO2Z1bmN0aW9uIERxKCl7ZnVuY3Rpb24gYShnKXtjKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX1mdW5jdGlvbiBiKGcpe2QoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfXZhciBjPUVxLGQ9RnEsZT1HcSgpO2lmKCFlLmluaXQpeyRjKEIsIm1vdXNlZG93biIsYSk7JGMoQiwia2V5dXAiLGEpOyRjKEIsInN1Ym1pdCIsYik7dmFyIGY9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXtkKHRoaXMpO2YuY2FsbCh0aGlzKX07ZS5pbml0PSEwfX1mdW5jdGlvbiBIcShhLGIsYyxkLGUpe3ZhciBmPXtjYWxsYmFjazphLGRvbWFpbnM6YixmcmFnbWVudDpjPT09MixwbGFjZW1lbnQ6Yyxmb3JtczpkLHNhbWVIb3N0OmV9O0dxKCkuZGVjb3JhdG9ycy5wdXNoKGYpfQpmdW5jdGlvbiBJcShhLGIsYyl7Zm9yKHZhciBkPUdxKCkuZGVjb3JhdG9ycyxlPXt9LGY9MDtmPGQubGVuZ3RoOysrZil7dmFyIGc9ZFtmXSxoO2lmKGg9IWN8fGcuZm9ybXMpYTp7dmFyIGw9Zy5kb21haW5zLG49YSxwPSEhZy5zYW1lSG9zdDtpZihsJiYocHx8biE9PUIubG9jYXRpb24uaG9zdG5hbWUpKWZvcih2YXIgcT0wO3E8bC5sZW5ndGg7cSsrKWlmKGxbcV1pbnN0YW5jZW9mIFJlZ0V4cCl7aWYobFtxXS50ZXN0KG4pKXtoPSEwO2JyZWFrIGF9fWVsc2UgaWYobi5pbmRleE9mKGxbcV0pPj0wfHxwJiZsW3FdLmluZGV4T2Yobik+PTApe2g9ITA7YnJlYWsgYX1oPSExfWlmKGgpe3ZhciByPWcucGxhY2VtZW50O3I9PT12b2lkIDAmJihyPWcuZnJhZ21lbnQ/MjoxKTtyPT09YiYmUWIoZSxnLmNhbGxiYWNrKCkpfX1yZXR1cm4gZX0KZnVuY3Rpb24gR3EoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLmdsO2ImJmIuZGVjb3JhdG9yc3x8KGI9e2RlY29yYXRvcnM6W119LGEuZ2w9Yik7cmV0dXJuIGJ9O3ZhciBKcT0vKC4qPylcKiguKj8pXCooLiopLyxLcT0vXmh0dHBzPzpcL1wvKFteXC9dKj8pXC4/Y2RuXC5hbXBwcm9qZWN0XC5vcmdcLz8oLiopLyxMcT0vXig/Ond3d1wufG1cLnxhbXBcLikrLyxNcT0vKFtePyNdKykoXD9bXiNdKik/KCMuKik/LztmdW5jdGlvbiBOcShhKXt2YXIgYj1NcS5leGVjKGEpO2lmKGIpcmV0dXJue2hrOmJbMV0scXVlcnk6YlsyXSxmcmFnbWVudDpiWzNdfX1mdW5jdGlvbiBPcShhKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKC4qPykoXnwmKSIrYSsiPShbXiZdKikmPyguKikiKX0KZnVuY3Rpb24gUHEoYSxiKXt2YXIgYz1bSGMudXNlckFnZW50LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSxIYy51c2VyTGFuZ3VhZ2V8fEhjLmxhbmd1YWdlLE1hdGguZmxvb3IoTmIoKS82MC8xRTMpLShiPT09dm9pZCAwPzA6YiksYV0uam9pbigiKiIpLGQ7aWYoIShkPUNxKSl7Zm9yKHZhciBlPUFycmF5KDI1NiksZj0wO2Y8MjU2O2YrKyl7Zm9yKHZhciBnPWYsaD0wO2g8ODtoKyspZz1nJjE/Zz4+PjFeMzk4ODI5MjM4NDpnPj4+MTtlW2ZdPWd9ZD1lfUNxPWQ7Zm9yKHZhciBsPTQyOTQ5NjcyOTUsbj0wO248Yy5sZW5ndGg7bisrKWw9bD4+PjheQ3FbKGxeYy5jaGFyQ29kZUF0KG4pKSYyNTVdO3JldHVybigobF4tMSk+Pj4wKS50b1N0cmluZygzNil9CmZ1bmN0aW9uIFFxKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1SaihBLmxvY2F0aW9uLmhyZWYpLGQ9Yy5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGU9SWooZCwiX2dsIiwhMSwhMCl8fCIiO2IucXVlcnk9UnEoZSl8fHt9O3ZhciBmPUxqKGMsImZyYWdtZW50IiksZzt2YXIgaD0tMTtpZihTYihmLCJfZ2w9IikpaD00O2Vsc2V7dmFyIGw9Zi5pbmRleE9mKCImX2dsPSIpO2w+MCYmKGg9bCszKzIpfWlmKGg8MClnPXZvaWQgMDtlbHNle3ZhciBuPWYuaW5kZXhPZigiJiIsaCk7Zz1uPDA/Zi5zdWJzdHJpbmcoaCk6Zi5zdWJzdHJpbmcoaCxuKX1iLmZyYWdtZW50PVJxKGd8fCIiKXx8e307YSYmU3EoYyxkLGYpfX1mdW5jdGlvbiBUcShhLGIpe3ZhciBjPU9xKGEpLmV4ZWMoYiksZD1iO2lmKGMpe3ZhciBlPWNbMl0sZj1jWzRdO2Q9Y1sxXTtmJiYoZD1kK2UrZil9cmV0dXJuIGR9CmZ1bmN0aW9uIFNxKGEsYixjKXtmdW5jdGlvbiBkKGcsaCl7dmFyIGw9VHEoIl9nbCIsZyk7bC5sZW5ndGgmJihsPWgrbCk7cmV0dXJuIGx9aWYoR2MmJkdjLnJlcGxhY2VTdGF0ZSl7dmFyIGU9T3EoIl9nbCIpO2lmKGUudGVzdChiKXx8ZS50ZXN0KGMpKXt2YXIgZj1MaihhLCJwYXRoIik7Yj1kKGIsIj8iKTtjPWQoYywiIyIpO0djLnJlcGxhY2VTdGF0ZSh7fSwiIiwiIitmK2IrYyl9fX1mdW5jdGlvbiBVcShhLGIpe3ZhciBjPVFxKCEhYiksZD1HcSgpO2QuZGF0YXx8KGQuZGF0YT17cXVlcnk6e30sZnJhZ21lbnQ6e319LGMoZC5kYXRhKSk7dmFyIGU9e30sZj1kLmRhdGE7ZiYmKFFiKGUsZi5xdWVyeSksYSYmUWIoZSxmLmZyYWdtZW50KSk7cmV0dXJuIGV9CnZhciBScT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9VnEoYSwzKTtpZihiIT09dm9pZCAwKXtmb3IodmFyIGM9e30sZD1iP2Iuc3BsaXQoIioiKTpbXSxlPTA7ZSsxPGQubGVuZ3RoO2UrPTIpe3ZhciBmPWRbZV0sZz1xYihkW2UrMV0pO2NbZl09Z31zYigiVEFHR0lORyIsNik7cmV0dXJuIGN9fWNhdGNoKGgpe3NiKCJUQUdHSU5HIiw4KX19O2Z1bmN0aW9uIFZxKGEsYil7aWYoYSl7dmFyIGM7YTp7Zm9yKHZhciBkPWEsZT0wO2U8MzsrK2Upe3ZhciBmPUpxLmV4ZWMoZCk7aWYoZil7Yz1mO2JyZWFrIGF9ZD1LaihkKXx8IiJ9Yz12b2lkIDB9dmFyIGc9YztpZihnJiZnWzFdPT09IjEiKXt2YXIgaD1nWzNdLGw7YTp7Zm9yKHZhciBuPWdbMl0scD0wO3A8YjsrK3ApaWYobj09PVBxKGgscCkpe2w9ITA7YnJlYWsgYX1sPSExfWlmKGwpcmV0dXJuIGg7c2IoIlRBR0dJTkciLDcpfX19CmZ1bmN0aW9uIFdxKGEsYixjLGQsZSl7ZnVuY3Rpb24gZihwKXtwPVRxKGEscCk7dmFyIHE9cC5jaGFyQXQocC5sZW5ndGgtMSk7cCYmcSE9PSImIiYmKHArPSImIik7cmV0dXJuIHArbn1kPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZz1OcShjKTtpZighZylyZXR1cm4iIjt2YXIgaD1nLnF1ZXJ5fHwiIixsPWcuZnJhZ21lbnR8fCIiLG49YSsiPSIrYjtkP2wuc3Vic3RyaW5nKDEpLmxlbmd0aCE9PTAmJmV8fChsPSIjIitmKGwuc3Vic3RyaW5nKDEpKSk6aD0iPyIrZihoLnN1YnN0cmluZygxKSk7cmV0dXJuIiIrZy5oaytoK2x9CmZ1bmN0aW9uIFhxKGEsYil7ZnVuY3Rpb24gYyhuLHAscSl7dmFyIHI7YTp7Zm9yKHZhciB0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSl7cj0hMDticmVhayBhfXI9ITF9aWYocil7dmFyIHUsdj1bXSx4O2Zvcih4IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh4KSl7dmFyIHk9blt4XTt5IT09dm9pZCAwJiZ5PT09eSYmeSE9PW51bGwmJnkudG9TdHJpbmcoKSE9PSJbb2JqZWN0IE9iamVjdF0iJiYodi5wdXNoKHgpLHYucHVzaChwYihTdHJpbmcoeSkpKSl9dmFyIHo9di5qb2luKCIqIik7dT1bIjEiLFBxKHopLHpdLmpvaW4oIioiKTtkPyhZZigzKXx8WWYoMSl8fCFwKSYmWXEoIl9nbCIsdSxhLHAscSk6WnEoIl9nbCIsdSxhLHAscSl9fXZhciBkPShhLnRhZ05hbWV8fCIiKS50b1VwcGVyQ2FzZSgpPT09IkZPUk0iLGU9SXEoYiwxLGQpLGY9SXEoYiwyLGQpLGc9SXEoYiw0LGQpLGg9SXEoYiwzLGQpO2MoZSwhMSwhMSk7YyhmLCEwLCExKTtZZigxKSYmYyhnLCEwLCEwKTtmb3IodmFyIGwgaW4gaCloLmhhc093blByb3BlcnR5KGwpJiYKJHEobCxoW2xdLGEpfWZ1bmN0aW9uICRxKGEsYixjKXtjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJhIj9acShhLGIsYyk6Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iZm9ybSImJllxKGEsYixjKX1mdW5jdGlvbiBacShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmO2lmKGY9Yy5ocmVmKXt2YXIgZztpZighKGc9ZCkpe3ZhciBoPUEubG9jYXRpb24uaHJlZixsPU5xKGMuaHJlZiksbj1OcShoKTtnPSEobCYmbiYmbC5oaz09PW4uaGsmJmwucXVlcnk9PT1uLnF1ZXJ5JiZsLmZyYWdtZW50KX1mPWd9aWYoZil7dmFyIHA9V3EoYSxiLGMuaHJlZixkLGUpO3ZjLnRlc3QocCkmJihjLmhyZWY9cCl9fQpmdW5jdGlvbiBZcShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO2lmKGMpe3ZhciBmPWMuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKXx8IiI7aWYoZil7dmFyIGc9KGMubWV0aG9kfHwiIikudG9Mb3dlckNhc2UoKTtpZihnIT09ImdldCJ8fGQpe2lmKGc9PT0iZ2V0Inx8Zz09PSJwb3N0Iil7dmFyIGg9V3EoYSxiLGYsZCxlKTt2Yy50ZXN0KGgpJiYoYy5hY3Rpb249aCl9fWVsc2V7Zm9yKHZhciBsPWMuY2hpbGROb2Rlc3x8W10sbj0hMSxwPTA7cDxsLmxlbmd0aDtwKyspe3ZhciBxPWxbcF07aWYocS5uYW1lPT09YSl7cS5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtuPSEwO2JyZWFrfX1pZighbil7dmFyIHI9Qi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIik7ci5zZXRBdHRyaWJ1dGUoIm5hbWUiLGEpO3Iuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7Yy5hcHBlbmRDaGlsZChyKX19fX19CmZ1bmN0aW9uIEVxKGEpe3RyeXt2YXIgYjthOntmb3IodmFyIGM9YSxkPTEwMDtjJiZkPjA7KXtpZihjLmhyZWYmJmMubm9kZU5hbWUubWF0Y2goL15hKD86cmVhKT8kL2kpKXtiPWM7YnJlYWsgYX1jPWMucGFyZW50Tm9kZTtkLS19Yj1udWxsfXZhciBlPWI7aWYoZSl7dmFyIGY9ZS5wcm90b2NvbDtmIT09Imh0dHA6IiYmZiE9PSJodHRwczoifHxYcShlLGUuaG9zdG5hbWUpfX1jYXRjaChnKXt9fWZ1bmN0aW9uIEZxKGEpe3RyeXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik7aWYoYil7dmFyIGM9TGooUmooYiksImhvc3QiKTtYcShhLGMpfX1jYXRjaChkKXt9fWZ1bmN0aW9uIGFyKGEsYixjLGQpe0RxKCk7dmFyIGU9Yz09PSJmcmFnbWVudCI/MjoxO2Q9ISFkO0hxKGEsYixlLGQsITEpO2U9PT0yJiZzYigiVEFHR0lORyIsMjMpO2QmJnNiKCJUQUdHSU5HIiwyNCl9CmZ1bmN0aW9uIGJyKGEsYil7RHEoKTtIcShhLFtOaihBLmxvY2F0aW9uLCJob3N0IiwhMCldLGIsITAsITApfWZ1bmN0aW9uIGNyKCl7dmFyIGE9Qi5sb2NhdGlvbi5ob3N0bmFtZSxiPUtxLmV4ZWMoQi5yZWZlcnJlcik7aWYoIWIpcmV0dXJuITE7dmFyIGM9YlsyXSxkPWJbMV0sZT0iIjtpZihjKXt2YXIgZj1jLnNwbGl0KCIvIiksZz1mWzFdO2U9Zz09PSJzIj9LaihmWzJdKXx8IiI6S2ooZyl8fCIifWVsc2UgaWYoZCl7aWYoZC5pbmRleE9mKCJ4bi0tIik9PT0wKXJldHVybiExO2U9ZC5yZXBsYWNlKC8tL2csIi4iKS5yZXBsYWNlKC9cLlwuL2csIi0iKX12YXIgaD1hLnJlcGxhY2UoTHEsIiIpLGw9ZS5yZXBsYWNlKExxLCIiKTtyZXR1cm4gaD09PWx8fFRiKGgsIi4iK2wpfWZ1bmN0aW9uIGRyKGEsYil7cmV0dXJuIGE9PT0hMT8hMTphfHxifHxjcigpfTt2YXIgZXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT0wO3RoaXMudmFsdWU9YT09PXZvaWQgMD8wOmF9O2VyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWV8PTE8PGF9O3ZhciBmcj1mdW5jdGlvbihhLGIpe2I8PTB8fChhLnZhbHVlfD0xPDxiLTEpfTtlci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O2VyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlJj1+KDE8PGEpfTtlci5wcm90b3R5cGUuY2xlYXJBbGw9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPTB9O2VyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PT1hLnZhbHVlfTtmdW5jdGlvbiBncihhKXtpZihhKXRyeXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXRvYihhLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmNoYXJDb2RlQXQoMCl9KSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBocihhLGIpe3ZhciBjPTAsZD0wLGUsZj1iO2Rve2lmKGY+PWEubGVuZ3RoKXJldHVybjtlPWFbZisrXTtjfD0oZSYxMjcpPDxkO2QrPTd9d2hpbGUoZSYxMjgpO3JldHVybltjLGZdfTtmdW5jdGlvbiBpcigpe3ZhciBhPVN0cmluZyxiPUEubG9jYXRpb24uaG9zdG5hbWUsYz1BLmxvY2F0aW9uLnBhdGhuYW1lLGQ9Yj1iYyhiKTtkLnNwbGl0KCIuIikubGVuZ3RoPjImJihkPWQucmVwbGFjZSgvXih3d3dbMC05XSp8d2VifGZ0cHx3YXB8aG9tZXxtfHd8YW1wfG1vYmlsZSlcLi8sIiIpKTtiPWQ7Yz1iYyhjKTt2YXIgZT1jLnNwbGl0KCI7IilbMF07ZT1lLnJlcGxhY2UoL1wvKGFyfHNscHx3ZWJ8aW5kZXgpP1wvPyQvLCIiKTtyZXR1cm4gYShuZygoIiIrYitlKS50b0xvd2VyQ2FzZSgpKSl9O3ZhciBqcj1bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTtmdW5jdGlvbiBrcihhLGIpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMzIpLDEwO2lmKGI9PT1udWxsfHxiPT09dm9pZCAwfHxiPT09IiIpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMyksMTE7dmFyIGM9bHIoITEpO2lmKGMuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMzQpLGMuZXJyb3I7aWYoIWMudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzNSksMjtjLnZhbHVlW2FdPWI7dmFyIGQ9bXIoYyk7ZCE9PTAmJnNiKCJUQUdHSU5HIiwzNik7cmV0dXJuIGR9CmZ1bmN0aW9uIG5yKGEpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMjcpLHtlcnJvcjoxMH07dmFyIGI9bHIoKTtpZihiLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDI5KSxiO2lmKCFiLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzApLHtlcnJvcjoyfTtpZighKGEgaW4gYi52YWx1ZSkpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMSkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxNX07dmFyIGM9Yi52YWx1ZVthXTtyZXR1cm4gYz09PW51bGx8fGM9PT12b2lkIDB8fGM9PT0iIj8oc2IoIlRBR0dJTkciLDI4KSx7dmFsdWU6dm9pZCAwLGVycm9yOjExfSk6e3ZhbHVlOmMsZXJyb3I6MH19CmZ1bmN0aW9uIG9yKGEpe2lmKGEpe3ZhciBiPWxyKCExKTtiLmVycm9yIT09MD9zYigiVEFHR0lORyIsMzgpOmIudmFsdWU/YSBpbiBiLnZhbHVlPyhkZWxldGUgYi52YWx1ZVthXSxtcihiKSE9PTAmJnNiKCJUQUdHSU5HIiw0MSkpOnNiKCJUQUdHSU5HIiw0MCk6c2IoIlRBR0dJTkciLDM5KX1lbHNlIHNiKCJUQUdHSU5HIiwzNyl9CmZ1bmN0aW9uIGxyKGEpe2E9YT09PXZvaWQgMD8hMDphO2lmKCFCbChqcikpcmV0dXJuIHNiKCJUQUdHSU5HIiw0Mykse2Vycm9yOjN9O3RyeXtpZighQS5sb2NhbFN0b3JhZ2UpcmV0dXJuIHNiKCJUQUdHSU5HIiw0NCkse2Vycm9yOjF9fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDUpLHtlcnJvcjoxNH19dmFyIGI9e3NjaGVtYToiZ2NsIix2ZXJzaW9uOjF9LGM9dm9pZCAwO3RyeXtjPUEubG9jYWxTdG9yYWdlLmdldEl0ZW0oIl9nY2xfbHMiKX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ2KSx7ZXJyb3I6MTN9fXRyeXtpZihjKXt2YXIgZD1KU09OLnBhcnNlKGMpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpYj1kO2Vsc2UgcmV0dXJuIHNiKCJUQUdHSU5HIiw0Nykse2Vycm9yOjEyfX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fWlmKGIuc2NoZW1hIT09ImdjbCIpcmV0dXJuIHNiKCJUQUdHSU5HIiw0OSkse2Vycm9yOjR9OwppZihiLnZlcnNpb24hPT0xKXJldHVybiBzYigiVEFHR0lORyIsNTApLHtlcnJvcjo1fTt0cnl7dmFyIGU9cHIoYik7YSYmZSYmbXIoe3ZhbHVlOmIsZXJyb3I6MH0pfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1yZXR1cm57dmFsdWU6YixlcnJvcjowfX0KZnVuY3Rpb24gcHIoYSl7aWYoIWF8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoImV4cGlyZXMiaW4gYSYmInZhbHVlImluIGEpe3ZhciBiO3R5cGVvZiBhLmV4cGlyZXM9PT0ibnVtYmVyIj9iPWEuZXhwaXJlczpiPXR5cGVvZiBhLmV4cGlyZXM9PT0ic3RyaW5nIj9OdW1iZXIoYS5leHBpcmVzKTpOYU47aWYoaXNOYU4oYil8fCEoRGF0ZS5ub3coKTw9YikpcmV0dXJuIGEudmFsdWU9bnVsbCxhLmVycm9yPTksc2IoIlRBR0dJTkciLDU0KSwhMH1lbHNle2Zvcih2YXIgYz0hMSxkPW0oT2JqZWN0LmtleXMoYSkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWM9cHIoYVtlLnZhbHVlXSl8fGM7cmV0dXJuIGN9cmV0dXJuITF9CmZ1bmN0aW9uIG1yKGEpe2lmKGEuZXJyb3IpcmV0dXJuIGEuZXJyb3I7aWYoIWEudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiw0MiksMjt2YXIgYj1hLnZhbHVlLGM7dHJ5e2M9SlNPTi5zdHJpbmdpZnkoYil9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MiksNn10cnl7QS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiX2djbF9scyIsYyl9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MyksN31yZXR1cm4gMH07dmFyIHFyPXt9LHJyPShxci5nY2xpZD0hMCxxci5kY2xpZD0hMCxxci5nYnJhaWQ9ITAscXIud2JyYWlkPSEwLHFyKSxzcj0vXlx3KyQvLHRyPS9eW1x3LV0rJC8sdXI9e30sdnI9KHVyLmF3PSJGUEdDTEFXIix1ciksd3I9e30seHI9KHdyLmFnPSJfYWciLHdyLmdiPSJfZ2IiLHdyLmF3PSJfYXciLHdyLmRjPSJfZGMiLHdyLmdmPSJfZ2YiLHdyLmhhPSJfaGEiLHdyLmdwPSJfZ3AiLHdyLmdzPSJfZ3MiLHdyKSx5cj0vXig/Ond3d1wuKT9nb29nbGUoPzpcLmNvbT8pPyg/OlwuW2Etel17Mn10Pyk/JC8senI9L153d3dcLmdvb2dsZWFkc2VydmljZXNcLmNvbSQvO2Z1bmN0aW9uIEFyKCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19ZnVuY3Rpb24gQnIoYSl7cmV0dXJuIVlmKDUpfHxCbChhKX1mdW5jdGlvbiBDcihhLGIpe2Z1bmN0aW9uIGMoKXt2YXIgZD1CcihiKTtkJiZhKCk7cmV0dXJuIGR9SGwoZnVuY3Rpb24oKXtjKCl8fElsKGMsYil9LGIpfQpmdW5jdGlvbiBEcihhKXtyZXR1cm4gRXIoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gRnIoYSl7cmV0dXJuIEdyKGEpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEdyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9SHIoYS5wcmVmaXgpLGQ9SXIoImdiIixjKSxlPUlyKCJhZyIsYyk7aWYoIWV8fCFkKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtuLnpnPWw7cmV0dXJuIG59fSxnPUVyKGQsYikubWFwKGYoImdiIikpLGg9SnIoZSkubWFwKGYoImFnIikpO3JldHVybiBnLmNvbmNhdChoKS5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEtyKGEsYixjLGQsZSl7dmFyIGY9Q2IoYSxmdW5jdGlvbihnKXtyZXR1cm4gZy5nY2xpZD09PWJ9KTtmPyhmLnRpbWVzdGFtcDxjJiYoZi50aW1lc3RhbXA9YyxmLm9kPWUpLGYubGFiZWxzPUxyKGYubGFiZWxzfHxbXSxkfHxbXSkpOmEucHVzaCh7dmVyc2lvbjoiMiIsZ2NsaWQ6Yix0aW1lc3RhbXA6YyxsYWJlbHM6ZCxvZDplfSl9ZnVuY3Rpb24gTXIoYSl7Zm9yKHZhciBiPXdxKGEsNSl8fFtdLGM9W10sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9ZixoPU5yKGYpO2gmJktyKGMsZy5rLGgsZy5ifHxbXSxmLnUpfXJldHVybiBjLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gRXIoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtPcihjLGEsMSk7aWYoYilpZihUYihhLCJfYXciKSl7dmFyIGQ9UHIoKTtkJiYoZC5vZD12b2lkIDAsZC5vYT1kLm9hfHxbMl0sUXIoYyxkKSk7T3IoYywiZ2NsX2F3IiwyKX1lbHNlIFRiKGEsIl9nYiIpJiZZZig2KSYmT3IoYywiZ2NsX2diIiwyKTtjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gZi50aW1lc3RhbXAtZS50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYyl9ZnVuY3Rpb24gU3IoYSxiKXtmb3IodmFyIGM9W10sZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2MuaW5jbHVkZXMoZil8fGMucHVzaChmKX1mb3IodmFyIGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtjLmluY2x1ZGVzKGwpfHxjLnB1c2gobCl9cmV0dXJuIGN9CmZ1bmN0aW9uIFFyKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGQsZSxmPW0oYSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoaC5nY2xpZD09PWIuZ2NsaWQpe2Q9aDticmVha31oLnFhJiZiLnFhJiZoLnFhLmVxdWFscyhiLnFhKSYmKGU9aCl9aWYoZCl7dmFyIGwsbixwPShsPWQucWEpIT1udWxsP2w6bmV3IGVyLHE9KG49Yi5xYSkhPW51bGw/bjpuZXcgZXI7cC52YWx1ZXw9cS52YWx1ZTtkLnFhPXA7ZC50aW1lc3RhbXA8Yi50aW1lc3RhbXAmJihkLnRpbWVzdGFtcD1iLnRpbWVzdGFtcCxkLm9kPWIub2QpO2QubGFiZWxzPVNyKGQubGFiZWxzfHxbXSxiLmxhYmVsc3x8W10pO2Qub2E9U3IoZC5vYXx8W10sYi5vYXx8W10pfWVsc2UgYyYmZT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsYik6YS5wdXNoKGIpfQpmdW5jdGlvbiBUcihhKXtpZighYSlyZXR1cm4gbmV3IGVyO3ZhciBiPW5ldyBlcjtpZihhPT09MSlyZXR1cm4gZnIoYiwyKSxmcihiLDMpLGI7ZnIoYixhKTtyZXR1cm4gYn0KZnVuY3Rpb24gUHIoKXt2YXIgYT1ucigiZ2NsaWQiKTtpZighYXx8YS5lcnJvcnx8IWEudmFsdWV8fHR5cGVvZiBhLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGI9YS52YWx1ZTt0cnl7aWYoISgidmFsdWUiaW4gYiYmYi52YWx1ZSl8fHR5cGVvZiBiLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGM9Yi52YWx1ZSxkPWMudmFsdWU7aWYoIWR8fCFkLm1hdGNoKHRyKSlyZXR1cm4gbnVsbDt2YXIgZT1jLmxpbmtEZWNvcmF0aW9uU291cmNlLGY9Yy5saW5rRGVjb3JhdGlvblNvdXJjZXMsZz1uZXcgZXI7dHlwZW9mIGU9PT0ibnVtYmVyIj9nPVRyKGUpOnR5cGVvZiBmPT09Im51bWJlciImJihnLnZhbHVlPWYpO3JldHVybnt2ZXJzaW9uOiIiLGdjbGlkOmQsdGltZXN0YW1wOk51bWJlcihjLmNyZWF0aW9uVGltZU1zKXx8MCxsYWJlbHM6W10scWE6ZyxvYTpbMl19fWNhdGNoKGgpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gVXIoYSl7dmFyIGI9bnIoYSk7aWYoYi5lcnJvciE9PTApcmV0dXJuIG51bGw7dHJ5e3JldHVybiBiLnZhbHVlLnJlZHVjZShmdW5jdGlvbihjLGQpe2lmKCFkLnZhbHVlfHx0eXBlb2YgZC52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBjO3ZhciBlPWQudmFsdWUsZj1lLnZhbHVlO2lmKCFmfHwhZi5tYXRjaCh0cikpcmV0dXJuIGM7dmFyIGc9bmV3IGVyLGg9ZS5saW5rRGVjb3JhdGlvblNvdXJjZXM7dHlwZW9mIGg9PT0ibnVtYmVyIiYmKGcudmFsdWU9aCk7dmFyIGw7Yy5wdXNoKHt2ZXJzaW9uOiIiLGdjbGlkOmYsdGltZXN0YW1wOk51bWJlcihlLmNyZWF0aW9uVGltZU1zKXx8MCxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfHwwLGxhYmVsczoobD1lLmxhYmVscykhPW51bGw/bDpbXSxxYTpnLG9hOlsyXX0pO3JldHVybiBjfSxbXSl9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBPcihhLGIsYyl7aWYoYz09PTEpZm9yKHZhciBkPWNxKGIsQi5jb29raWUsdm9pZCAwLEFyKCkpLGU9bShkKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9VnIoZi52YWx1ZS5zcGxpdCgiLiIpKSxoPWcubGVuZ3RoPT09MD9udWxsOnt2ZXJzaW9uOmdbMF0sZ2NsaWQ6Z1syXSx0aW1lc3RhbXA6KE51bWJlcihnWzFdKXx8MCkqMUUzLGxhYmVsczpnLnNsaWNlKDMpfTtoIT1udWxsJiYoaC5vZD12b2lkIDAsaC5xYT1uZXcgZXIsaC5vYT1bY10sUXIoYSxoKSl9ZWxzZSBpZihjPT09Mil7dmFyIGw9VXIoYik7aWYobClmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLm9kPXZvaWQgMDtxLm9hPXEub2E7UXIoYSxxKX19fQpmdW5jdGlvbiBacihhKXt2YXIgYj1FcihhKSxjPVVyKCJnY2xfZGMiKTtpZihjKWZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2Yub2Q9dm9pZCAwO2Yub2E9Zi5vYXx8WzJdO1FyKGIsZil9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7dmFyIGw9Zy5vYSYmZy5vYS5pbmNsdWRlcygxKSxuPWgub2EmJmgub2EuaW5jbHVkZXMoMSk7cmV0dXJuIGwmJiFuPy0xOiFsJiZuPzE6aC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYil9ZnVuY3Rpb24gSnIoYSl7cmV0dXJuIE1yKGEpLm1hcChmdW5jdGlvbihiKXtiLnFhPW5ldyBlcjtiLm9hPVsxXTtyZXR1cm4gYn0pfQpmdW5jdGlvbiBMcihhLGIpe2lmKCFhLmxlbmd0aClyZXR1cm4gYjtpZighYi5sZW5ndGgpcmV0dXJuIGE7dmFyIGM9e307cmV0dXJuIGEuY29uY2F0KGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShkKT8hMTpjW2RdPSEwfSl9ZnVuY3Rpb24gSHIoYSl7cmV0dXJuIGEmJnR5cGVvZiBhPT09InN0cmluZyImJmEubWF0Y2goc3IpP2E6Il9nY2wifWZ1bmN0aW9uICRyKGEsYil7aWYoYSl7dmFyIGM9e3ZhbHVlOmEscWE6bmV3IGVyfTtmcihjLnFhLGIpO3JldHVybiBjfX0KZnVuY3Rpb24gYXMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKTtpZihiJiYoIWZ8fCFlKSl7dmFyIGc9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihnLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihnLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJihlPT09dm9pZCAwfHxlPT09ImF3Inx8ZT09PSJhdy5kcyJ8fFlmKDgpJiZlPT09ImF3LmR2Iik/W2ZdOltdfQpmdW5jdGlvbiBicyhhLGIpe3ZhciBjPVJqKGEpLGQ9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxlPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9TGooYywicXVlcnkiLCExLHZvaWQgMCwid2JyYWlkIik7Zj0kYihmKTt2YXIgZz1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYnJhaWQiKSxoPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxsPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIik7aWYoYiYmIShkJiZlJiZmJiZnKSl7dmFyIG49Yy5oYXNoLnJlcGxhY2UoIiMiLCIiKTtkPWR8fElqKG4sImdjbGlkIiwhMSk7ZT1lfHxJaihuLCJnY2xzcmMiLCExKTtmPWZ8fElqKG4sIndicmFpZCIsITEpO2c9Z3x8SWoobiwiZ2JyYWlkIiwhMSk7aD1ofHxJaihuLCJnYWRfc291cmNlIiwhMSl9cmV0dXJuIGNzKGQsZSxsLGYsZyxoKX0KZnVuY3Rpb24gZHMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKSxnPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIiksYz80OjIpO2lmKGImJighZXx8IWYpKXt2YXIgaD1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGgsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGgsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmZSYmKGU9PT0iYXcuZHMifHxlPT09ImF3LmR2Inx8ZT09PSIzcC5kcyJ8fGU9PT0iZHMiKT9bZl06Zz9bZ106W119ZnVuY3Rpb24gZXMoKXtyZXR1cm4gYnMoQS5sb2NhdGlvbi5ocmVmLCEwKX0KZnVuY3Rpb24gY3MoYSxiLGMsZCxlLGYpe3ZhciBnPXt9LGg9ZnVuY3Rpb24obCxuKXtnW25dfHwoZ1tuXT1bXSk7Z1tuXS5wdXNoKGwpfTtnLmdjbGlkPWE7Zy5nY2xzcmM9YjtnLmRjbGlkPWM7aWYoYSE9PXZvaWQgMCYmYS5tYXRjaCh0cikpc3dpdGNoKGIpe2Nhc2Ugdm9pZCAwOmgoYSwiYXciKTticmVhaztjYXNlICJhdy5kcyI6aChhLCJhdyIpO2goYSwiZGMiKTticmVhaztjYXNlICJhdy5kdiI6WWYoOCkmJihoKGEsImF3IiksaChhLCJkYyIpKTticmVhaztjYXNlICJkcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgIjNwLmRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiZ2YiOmgoYSwiZ2YiKTticmVhaztjYXNlICJoYSI6aChhLCJoYSIpfWMmJmgoYywiZGMiKTtkIT09dm9pZCAwJiZ0ci50ZXN0KGQpJiYoZy53YnJhaWQ9ZCxoKGQsImdiIikpO2UhPT12b2lkIDAmJnRyLnRlc3QoZSkmJihnLmdicmFpZD1lLGgoZSwiYWciKSk7ZiE9PXZvaWQgMCYmdHIudGVzdChmKSYmKGcuZ2FkX3NvdXJjZT0KZixoKGYsImdzIikpO3JldHVybiBnfWZ1bmN0aW9uIGZzKCl7Zm9yKHZhciBhPWVzKCksYj0hMCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWlmKGFbZC52YWx1ZV0hPT12b2lkIDApe2I9ITE7YnJlYWt9YiYmKGE9YnMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSksYS5nYWRfc291cmNlPXZvaWQgMCk7cmV0dXJuIGF9ZnVuY3Rpb24gZ3MoYSl7dmFyIGI9ZnMoKTtocyhiLCExLGEpfQpmdW5jdGlvbiBpcyhhKXt2YXIgYj1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpO2IubGVuZ3RofHwoYj1hcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7YT1hfHx7fTtqcyhhKTtpZihiLmxlbmd0aCl7dmFyIGM9YlswXSxkPU5iKCksZT11cShhLGQsITApLGY9QXIoKSxnPWZ1bmN0aW9uKCl7QnIoZikmJmUuZXhwaXJlcyE9PXZvaWQgMCYma3IoImdjbGlkIix7dmFsdWU6e3ZhbHVlOmMudmFsdWUsY3JlYXRpb25UaW1lTXM6ZCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Yy5xYS5nZXQoKX0sZXhwaXJlczpOdW1iZXIoZS5leHBpcmVzKX0pfTtIbChmdW5jdGlvbigpe2coKTtCcihmKXx8SWwoZyxmKX0sZil9fQpmdW5jdGlvbiBqcyhhKXt2YXIgYj1CLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiI7aWYoeXIudGVzdChiKXx8enIudGVzdChiKXx8a3MoKSl7dmFyIGM7YTp7Zm9yKHZhciBkPVJqKEEubG9jYXRpb24uaHJlZiksZT1KaihMaihkLCJxdWVyeSIpKSxmPW0oT2JqZWN0LmtleXMoZSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKCFycltoXSl7dmFyIGw9ZVtoXVswXXx8IiIsbjtpZighbHx8bC5sZW5ndGg8NTB8fGwubGVuZ3RoPjIwMCluPSExO2Vsc2V7dmFyIHA9Z3IobCkscTtpZihwKWM6e3ZhciByPXA7aWYociYmci5sZW5ndGghPT0wKXt2YXIgdD0wO3RyeXtmb3IodmFyIHU9MTA7dDxyLmxlbmd0aCYmISh1LS08PTApOyl7dmFyIHY9aHIocix0KTtpZih2PT09dm9pZCAwKWJyZWFrO3ZhciB4PW0odikseT14Lm5leHQoKS52YWx1ZSx6PXgubmV4dCgpLnZhbHVlLEM9eSxEPXosST1DJjc7aWYoQz4+Mz09PTE2MzgyKXtpZihJIT09CjApYnJlYWs7dmFyIEc9aHIocixEKTtpZihHPT09dm9pZCAwKWJyZWFrO3E9bShHKS5uZXh0KCkudmFsdWU9PT0xO2JyZWFrIGN9dmFyIE47ZDp7dmFyIFM9dm9pZCAwLFc9cixlYT1EO3N3aXRjaChJKXtjYXNlIDA6Tj0oUz1ocihXLGVhKSk9PW51bGw/dm9pZCAwOlNbMV07YnJlYWsgZDtjYXNlIDE6Tj1lYSs4O2JyZWFrIGQ7Y2FzZSAyOnZhciBqYT1ocihXLGVhKTtpZihqYT09PXZvaWQgMClicmVhazt2YXIgZmE9bShqYSksc2E9ZmEubmV4dCgpLnZhbHVlO049ZmEubmV4dCgpLnZhbHVlK3NhO2JyZWFrIGQ7Y2FzZSA1Ok49ZWErNDticmVhayBkfU49dm9pZCAwfWlmKE49PT12b2lkIDB8fE4+ci5sZW5ndGh8fE48PXQpYnJlYWs7dD1OfX1jYXRjaChtYSl7fX1xPSExfWVsc2UgcT0hMTtuPXF9aWYobil7Yz1sO2JyZWFrIGF9fX1jPXZvaWQgMH12YXIgZGE9YztkYSYmbHMoImdjbF9hdyIsZGEsNyxhKX19CmZ1bmN0aW9uIGxzKGEsYixjLGQpe21zKGEsW3t2ZXJzaW9uOiIiLGdjbGlkOmIsdGltZXN0YW1wOk5iKCkscWE6VHIoYyl9XSxkKX0KZnVuY3Rpb24gbXMoYSxiLGMpe2M9Y3x8e307dmFyIGQ9QXIoKSxlPWZ1bmN0aW9uKCl7aWYoQnIoZCkmJmIubGVuZ3RoPjApe3ZhciBmPVVyKGEpfHxbXTtiLmZvckVhY2goZnVuY3Rpb24oZyl7dmFyIGg9dXEoYyxnLnRpbWVzdGFtcCwhMCk7aC5leHBpcmVzIT09dm9pZCAwJiZRcihmLHt2ZXJzaW9uOiIiLGdjbGlkOmcuZ2NsaWQsdGltZXN0YW1wOmcudGltZXN0YW1wLGV4cGlyZXM6TnVtYmVyKGguZXhwaXJlcykscWE6Zy5xYSxsYWJlbHM6Zy5sYWJlbHN9LCEwKX0pO2YubGVuZ3RoJiZrcihhLGYubWFwKGZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTpnLmdjbGlkLGNyZWF0aW9uVGltZU1zOmcudGltZXN0YW1wLGxpbmtEZWNvcmF0aW9uU291cmNlczpnLnFhP2cucWEuZ2V0KCk6MH0sbDtpZigobD1nLmxhYmVscyk9PW51bGw/MDpsLmxlbmd0aCloLmxhYmVscz1nLmxhYmVscztyZXR1cm57dmFsdWU6aCxleHBpcmVzOk51bWJlcihnLmV4cGlyZXMpfX0pKX19O0hsKGZ1bmN0aW9uKCl7QnIoZCk/CmUoKTpJbChlLGQpfSxkKX0KZnVuY3Rpb24gaHMoYSxiLGMsZCxlKXtjPWN8fHt9O2U9ZXx8W107dmFyIGY9SHIoYy5wcmVmaXgpLGc9ZHx8TmIoKSxoPU1hdGgucm91bmQoZy8xRTMpLGw9QXIoKSxuPSExLHA9ITEscT1ZZig5KSxyPWZ1bmN0aW9uKCl7aWYoQnIobCkpe3ZhciB0PXVxKGMsZywhMCk7dC5NYz1sO2Zvcih2YXIgdT1mdW5jdGlvbihXLGVhKXt2YXIgamE9SXIoVyxmKTtqYSYmKG9xKGphLGVhLHQpLFchPT0iZ2IiJiYobj0hMCkpfSx2PWZ1bmN0aW9uKFcpe3ZhciBlYT1bIkdDTCIsaCxXXTtlLmxlbmd0aD4wJiZlYS5wdXNoKGUuam9pbigiLiIpKTtyZXR1cm4gZWEuam9pbigiLiIpfSx4PW0oWyJhdyIsImRjIiwiZ2YiLCJoYSIsImdwIl0pLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt2YXIgej15LnZhbHVlO2Fbel0mJnUoeix2KGFbel1bMF0pKX1pZigoIW58fHEpJiZhLmdiKXt2YXIgQz1hLmdiWzBdLEQ9SXIoImdiIixmKTshYiYmRXIoRCkuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUMmJgpXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KXx8dSgiZ2IiLHYoQykpfX1pZighcCYmYS5nYnJhaWQmJkJyKCJhZF9zdG9yYWdlIikmJihwPSEwLCFufHxxKSl7dmFyIEk9YS5nYnJhaWQsRz1JcigiYWciLGYpO2lmKGJ8fCFKcihHKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09SSYmVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSkpe3ZhciBOPXt9LFM9KE4uaz1JLE4uaT0iIitoLE4uYj1lLE4pO0FxKEcsUyw1LGMsZyl9fW5zKGEsZixnLGMpfTtIbChmdW5jdGlvbigpe3IoKTtCcihsKXx8SWwocixsKX0sbCl9CmZ1bmN0aW9uIG5zKGEsYixjLGQpe2lmKGEuZ2FkX3NvdXJjZSE9PXZvaWQgMCYmQnIoImFkX3N0b3JhZ2UiKSl7dmFyIGU9cWQoKTtpZihlIT09InIiJiZlIT09ImgiKXt2YXIgZj1hLmdhZF9zb3VyY2UsZz1JcigiZ3MiLGIpO2lmKGcpe3ZhciBoPU1hdGguZmxvb3IoKE5iKCktKHBkKCl8fDApKS8xRTMpLGwsbj1pcigpLHA9e307bD0ocC5rPWYscC5pPSIiK2gscC51PW4scCk7QXEoZyxsLDUsZCxjKX19fX1mdW5jdGlvbiBvcyhhLGIsYyl7Zm9yKHZhciBkPXdxKGIsYyksZT0wO2U8ZC5sZW5ndGg7KytlKWlmKE5yKGRbZV0pPmEpcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIHBzKGEpe3ZhciBiPXFzLGM9cnMoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1jW2ddO2lmKGgpe3ZhciBsPU1hdGgubWluKHNzKGgpLE5iKCkpLG49dXEoYSxsLCEwKTtuLk1jPUFyKCk7dmFyIHA9SXIoZyxkKTtwJiZvcShwLGgsbil9fXZhciBxPVVxKCEwKTtocyhjcyhxLmdjbGlkLHEuZ2Nsc3JjKSwhMSxhKX0sQXIoKSl9CmZ1bmN0aW9uIHJzKGEpe3ZhciBiPVVxKCEwKSxjPUhyKGEpLGQ9e30sZTtmb3IoZSBpbiB4cilpZih4ci5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9ZSxnPUlyKGYsYyk7aWYoZyE9PXZvaWQgMCl7dmFyIGg9YltnXTtpZihoKXt2YXIgbD1zcyhoKSxuO2E6e2Zvcih2YXIgcD1NYXRoLm1pbihsLE5iKCkpfHxOYigpLHE9Y3EoZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSkscj0wO3I8cS5sZW5ndGg7KytyKWlmKHNzKHFbcl0pPnApe249ITA7YnJlYWsgYX1uPSExfW58fChkW2ZdPWgpfX19cmV0dXJuIGR9CmZ1bmN0aW9uIHRzKGEpe3ZhciBiPVsiYWciXSxjPVVxKCEwKSxkPUhyKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKGYpe3ZhciBnPWNbZl07aWYoZyl7dmFyIGg9JHAoZyw1KTtpZihoKXt2YXIgbD1OcihoKTtsfHwobD1OYigpKTtpZihvcyhsLGYsNSkpYnJlYWs7aC5pPSIiK01hdGgucm91bmQobC8xRTMpO0FxKGYsaCw1LGEsbCl9fX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24gSXIoYSxiKXt2YXIgYz14clthXTtpZihjIT09dm9pZCAwKXJldHVybiBiK2N9ZnVuY3Rpb24gc3MoYSl7cmV0dXJuIFZyKGEuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD8oTnVtYmVyKGEuc3BsaXQoIi4iKVsxXSl8fDApKjFFMzowfWZ1bmN0aW9uIE5yKGEpe3JldHVybiBhPyhOdW1iZXIoYS5pKXx8MCkqMUUzOjB9CmZ1bmN0aW9uIFZyKGEpe3JldHVybiBhLmxlbmd0aDwzfHxhWzBdIT09IkdDTCImJmFbMF0hPT0iMSJ8fCEvXlxkKyQvLnRlc3QoYVsxXSl8fCF0ci50ZXN0KGFbMl0pP1tdOmF9ZnVuY3Rpb24gdXMoYSxiLGMsZCl7dmFyIGU9cXM7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKG4pe3ZhciBwPWNxKG4sQi5jb29raWUsdm9pZCAwLEFyKCkpO3AubGVuZ3RoJiYoaFtuXT1wLnNvcnQoKVtwLmxlbmd0aC0xXSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHZzKGEsYixjKXt2YXIgZD1xcztpZihZZigxMykmJkFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZj17fSxnPTA7ZzxkLmxlbmd0aDsrK2cpe3ZhciBoPXZyW2RbZ11dO2lmKGgpe3ZhciBsPWNxKGgsQi5jb29raWUsdm9pZCAwLEFyKCkpO2lmKGwubGVuZ3RoKXtmb3IodmFyIG49dm9pZCAwLHA9MCxxPW0obCkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT0kcCh0LDQpO2lmKHUmJih1Lm09PT0iMSJ8fFlmKDE2KSkpe3ZhciB2PU5yKHUpO3Y+PXAmJihwPXYsbj10KX19biYmKGZbaF09bil9fX1yZXR1cm4gZn07Q3IoZnVuY3Rpb24oKXthcihlLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB3cyhhLGIsYyxkKXtpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9WyJhZyJdLGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYoIW4pcmV0dXJue307dmFyIHA9d3Eobiw1KTtpZihwLmxlbmd0aCl7dmFyIHE9cC5zb3J0KGZ1bmN0aW9uKHIsdCl7cmV0dXJuIE5yKHQpLU5yKHIpfSlbMF07aFtuXT1hcShxLDUpfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sWyJhZF9zdG9yYWdlIl0pfX1mdW5jdGlvbiBScihhKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHRyLnRlc3QoYi5nY2xpZCl9KX0KZnVuY3Rpb24geHMoYSxiKXtpZihTcChBKSl7Zm9yKHZhciBjPUhyKGIucHJlZml4KSxkPXt9LGU9MDtlPGEubGVuZ3RoO2UrKyl4clthW2VdXSYmKGRbYVtlXV09eHJbYVtlXV0pO0NyKGZ1bmN0aW9uKCl7R2IoZCxmdW5jdGlvbihmLGcpe3ZhciBoPWNxKGMrZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aC5zb3J0KGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHNzKHUpLXNzKHQpfSk7aWYoaC5sZW5ndGgpe3ZhciBsPWhbMF0sbj1zcyhsKSxwPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIikuc2xpY2UoMyk6W10scT17fSxyO3I9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKVsyXTp2b2lkIDA7cVtmXT1bcl07aHMocSwhMCxiLG4scCl9fSl9LEFyKCkpfX0KZnVuY3Rpb24geXMoYSl7dmFyIGI9WyJhZyJdLGM9WyJnYnJhaWQiXTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKCFmKWJyZWFrO3ZhciBnPXdxKGYsNSk7aWYoZy5sZW5ndGgpe3ZhciBoPWcuc29ydChmdW5jdGlvbihxLHIpe3JldHVybiBOcihyKS1OcihxKX0pWzBdLGw9TnIoaCksbj1oLmIscD17fTtwW2NbZV1dPWguaztocyhwLCEwLGEsbCxuKX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24genMoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihhW2JbY11dKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBBcyhhKXtmdW5jdGlvbiBiKGgsbCxuKXtuJiYoaFtsXT1uKX1pZihFbCgpKXt2YXIgYz1lcygpLGQ7YS5pbmNsdWRlcygiZ2FkX3NvdXJjZSIpJiYoZD1jLmdhZF9zb3VyY2UhPT12b2lkIDA/Yy5nYWRfc291cmNlOlVxKCExKS5fZ3MpO2lmKHpzKGMsYSl8fGQpe3ZhciBlPXt9O2IoZSwiZ2NsaWQiLGMuZ2NsaWQpO2IoZSwiZGNsaWQiLGMuZGNsaWQpO2IoZSwiZ2Nsc3JjIixjLmdjbHNyYyk7YihlLCJ3YnJhaWQiLGMud2JyYWlkKTtiKGUsImdicmFpZCIsYy5nYnJhaWQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGV9LDMpO3ZhciBmPXt9LGc9KGYuX3VwPSIxIixmKTtiKGcsIl9ncyIsZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZ30sMSl9fX1mdW5jdGlvbiBrcygpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZik7cmV0dXJuIExqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKX0KZnVuY3Rpb24gQnMoYSl7aWYoIVlmKDEpKXJldHVybiBudWxsO3ZhciBiPVVxKCEwKS5nYWRfc291cmNlO2lmKGIhPW51bGwpcmV0dXJuIEEubG9jYXRpb24uaGFzaD0iIixiO2lmKFlmKDIpKXtiPWtzKCk7aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1lcygpO2lmKHpzKGMsYSkpcmV0dXJuIjAifXJldHVybiBudWxsfWZ1bmN0aW9uIENzKGEpe3ZhciBiPUJzKGEpO2IhPW51bGwmJmJyKGZ1bmN0aW9uKCl7dmFyIGM9e307cmV0dXJuIGMuZ2FkX3NvdXJjZT1iLGN9LDQpfQpmdW5jdGlvbiBEcyhhLGIsYyl7dmFyIGQ9W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgZT17fSxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl0saD1nLnpnP2cuemc6ImdjbCI7aWYoKGcubGFiZWxzfHxbXSkuaW5kZXhPZihjKT09PS0xKXthLnB1c2goMCk7dmFyIGw9ITEsbj12b2lkIDA7aWYoKG49Zy5vYSk9PW51bGw/MDpuLmluY2x1ZGVzKDIpKWw9ITA7dmFyIHA9dm9pZCAwOygocD1nLm9hKT09bnVsbD8wOnAuaW5jbHVkZXMoMSkpJiYhZVtoXSYmKGw9ITAsZVtoXT0hMCk7bCYmZC5wdXNoKGcpfWVsc2V7YS5wdXNoKDEpO3ZhciBxPXZvaWQgMDtpZigocT1nLm9hKT09bnVsbD8wOnEuaW5jbHVkZXMoMSkpZVtoXT0hMH19cmV0dXJuIGR9CmZ1bmN0aW9uIEVzKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY9W107Yz1jfHx7fTtpZighQnIoQXIoKSkpcmV0dXJuIGY7dmFyIGc9RXIoYSxlKSxoPURzKGYsZyxiKTtpZihoLmxlbmd0aCYmIWQpe2Zvcih2YXIgbD1bXSxuPSExLHA9bShoKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZSx0PXIsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9KHQubGFiZWxzfHxbXSkuY29uY2F0KFtiXSksQz12b2lkIDA7aWYoKChDPXkpPT1udWxsPzA6Qy5pbmNsdWRlcygxKSkmJiFuKXt2YXIgRD1bdSxNYXRoLnJvdW5kKHgvMUUzKSx2XS5jb25jYXQoeikuam9pbigiLiIpLEk9dXEoYyx4LCEwKTtJLk1jPUFyKCk7b3EoYSxELEkpO249ITB9dmFyIEc9dm9pZCAwO2UmJigoRz15KT09bnVsbD8wOkcuaW5jbHVkZXMoMikpJiZsLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxyLHtsYWJlbHM6en0pKX1sLmxlbmd0aCYmCm1zKCJnY2xfZ2IiLGwsYyl9cmV0dXJuIGZ9CmZ1bmN0aW9uIEZzKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD1bXTtiPWJ8fHt9O3ZhciBlPUdyKGIsYyksZj1EcyhkLGUsYSk7aWYoZi5sZW5ndGgpe2Zvcih2YXIgZz1bXSxoPXt9LGw9bShmKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZSxxPUhyKGIucHJlZml4KSxyPUlyKHAuemcscSk7aWYoIXIpcmV0dXJuIGQ7dmFyIHQ9cCx1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej1NYXRoLnJvdW5kKHgvMUUzKSxDPUxyKHQubGFiZWxzfHxbXSxbYV0pLEQ9dm9pZCAwO2lmKChEPXkpPT1udWxsPzA6RC5pbmNsdWRlcygxKSlpZihwLnpnPT09ImFnIiYmIWguYWcpe3ZhciBJPXt9LEc9KEkuaz12LEkuaT0iIit6LEkuYj1DLEkpO0FxKHIsRyw1LGIseCk7aC5hZz0hMH1lbHNlIGlmKHAuemc9PT0iZ2IiJiYhaC5nYil7dmFyIE49W3Useix2XS5jb25jYXQoQykuam9pbigiLiIpLFM9dXEoYix4LCEwKTtTLk1jPQpBcigpO29xKHIsTixTKTtoLmdiPSEwfXZhciBXPXZvaWQgMDtjJiYoKFc9eSk9PW51bGw/MDpXLmluY2x1ZGVzKDIpKSYmZy5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scCx7bGFiZWxzOkN9KSl9Zy5sZW5ndGgmJm1zKCJnY2xfZ2IiLGcsYil9cmV0dXJuIGR9ZnVuY3Rpb24gR3MoYSxiKXt2YXIgYz1IcihiKSxkPUlyKGEsYyk7aWYoIWQpcmV0dXJuIDA7dmFyIGU7ZT1hPT09ImFnIj9KcihkKTpFcihkKTtmb3IodmFyIGY9MCxnPTA7ZzxlLmxlbmd0aDtnKyspZj1NYXRoLm1heChmLGVbZ10udGltZXN0YW1wKTtyZXR1cm4gZn1mdW5jdGlvbiBIcyhhKXtmb3IodmFyIGI9MCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWZvcih2YXIgZT1hW2QudmFsdWVdLGY9MDtmPGUubGVuZ3RoO2YrKyliPU1hdGgubWF4KGIsTnVtYmVyKGVbZl0udGltZXN0YW1wKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIElzKGEpe3ZhciBiPU1hdGgubWF4KEdzKCJhdyIsYSksSHMoQnIoQXIoKSk/UnAoKTp7fSkpLGM9TWF0aC5tYXgoR3MoImdiIixhKSxIcyhCcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9KSk7Yz1NYXRoLm1heChjLEdzKCJhZyIsYSkpO3JldHVybiBjPmJ9O3ZhciBKcz1SZWdFeHAoIl5VQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKD86JTNCVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKikqJCIpLEtzPS9efj9bXHctXSsoPzpcLn4/W1x3LV0rKSokLyxMcz0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC8sTXM9LztnYWM9KFteOz9dKykvLE5zPS87Z2FjZ2I9KFteOz9dKykvOwpmdW5jdGlvbiBPcyhhLGIpe2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGM9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKGIpO3JldHVybiBjJiZjLmxlbmd0aD09PTImJmNbMV0ubWF0Y2goSnMpP0tqKGNbMV0pfHwiIjoiIn1mb3IodmFyIGQ9W10sZT1tKE9iamVjdC5rZXlzKGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUsaD1bXSxsPWFbZ10sbj0wO248bC5sZW5ndGg7bisrKWgucHVzaChsW25dLmdjbGlkKTtkLnB1c2goZysiOiIraC5qb2luKCIsIikpfXJldHVybiBkLmxlbmd0aD4wP2Quam9pbigiOyIpOiIifQpmdW5jdGlvbiBQcyhhLGIsYyl7Zm9yKHZhciBkPUJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30sZT1bXSxmPSExLGc9bShPYmplY3Qua2V5cyhkKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1FcygiX2dhY19nYl8iK2wsYSxiLGMpO2Y9Znx8bi5sZW5ndGghPT0wJiZuLnNvbWUoZnVuY3Rpb24ocCl7cmV0dXJuIHA9PT0xfSk7ZS5wdXNoKGwrIjoiK24uam9pbigiLCIpKX1yZXR1cm57UnI6Zj9lLmpvaW4oIjsiKToiIixRcjpPcyhkLE5zKX19ZnVuY3Rpb24gUXMoYSl7dmFyIGI9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKG5ldyBSZWdFeHAoIjsiK2ErIj0oW147P10rKSIpKTtyZXR1cm4gYiYmYi5sZW5ndGg9PT0yJiZiWzFdLm1hdGNoKEtzKT9iWzFdOnZvaWQgMH0KZnVuY3Rpb24gUnMoYSl7dmFyIGI9e30sYyxkLGU7THMudGVzdChCLmxvY2F0aW9uLmhvc3QpJiYoYz1RcygiZ2NsZ3MiKSxkPVFzKCJnY2xzdCIpLGU9UXMoImdjbGxwIikpO2lmKGMmJmQmJmUpYi5FZz1jLGIuV2g9ZCxiLlVoPWU7ZWxzZXt2YXIgZj1OYigpLGc9TXIoKGF8fCJfZ2NsIikrIl9ncyIpLGg9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuZ2NsaWR9KSxsPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBmLXAudGltZXN0YW1wfSksbj1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5vZH0pO2gubGVuZ3RoPjAmJmwubGVuZ3RoPjAmJm4ubGVuZ3RoPjAmJihiLkVnPWguam9pbigiLiIpLGIuV2g9bC5qb2luKCIuIiksYi5VaD1uLmpvaW4oIi4iKSl9cmV0dXJuIGJ9CmZ1bmN0aW9uIFNzKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpLGQ9Yj9iLnNwbGl0KCIuIik6W10sZT1kLmxlbmd0aD09PWMubGVuZ3RoP2Q6dm9pZCAwO3JldHVybiBjLm1hcChmdW5jdGlvbihmLGcpe3ZhciBoPXtnY2xpZDpmfTtpZihlKXt2YXIgbD1lW2ddLnNwbGl0KCJfIik7aWYobC5sZW5ndGg9PT0yKXtoLnFhPW5ldyBlcihOdW1iZXIobFswXSkpO3ZhciBuO3ZhciBwPU51bWJlcihsWzFdKTtpZihwPT09MCluPVswXTtlbHNle3ZhciBxPVtdO3AmMSYmcS5wdXNoKDEpO3AmMiYmcS5wdXNoKDIpO3AmNCYmcS5wdXNoKDMpO3AmOCYmcS5wdXNoKDQpO3AmMTYmJnEucHVzaCg1KTtuPXF9aC5vYT1ufX1yZXR1cm4gaH0pfQpmdW5jdGlvbiBUcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBlPVFzKGMpO2lmKGUpe2lmKFlmKDE3KSl7dmFyIGY9UXMoYysiX3NyYyIpO3JldHVybiBTcyhlLGYpfWlmKGQpe3ZhciBnPW5ldyBlcjtmcihnLDIpO2ZyKGcsMyk7cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6ZyxvYTpbMV19fSl9cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6bmV3IGVyLG9hOlsxXX19KX19ZWxzZXtpZihiPT09ImdjbGlkIil7Zm9yKHZhciBoPUVyKChhfHwiX2djbCIpKyJfYXciLGQpLGw9TnVtYmVyKFhmWzRdPT09dm9pZCAwPzA6WGZbNF0pLG49bShVcygpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLnRpbWVzdGFtcD5sJiZRcihoLHEpfXJldHVybiBofWlmKGI9PT0id2JyYWlkIilyZXR1cm4gRXIoKGF8fAoiX2djbCIpKyJfZ2IiLGQpO2lmKGI9PT0iYnJhaWRzIilyZXR1cm4gR3Ioe3ByZWZpeDphfSxkKX1yZXR1cm5bXX1mdW5jdGlvbiBVcygpe3JldHVybih3cSh2ci5hdyw0KXx8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5tPT09IjEifSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybntnY2xpZDphLmssdGltZXN0YW1wOk51bWJlcihhLmkpLHZlcnNpb246IiIsb2E6WzVdfX0pfWZ1bmN0aW9uIFZzKGEpe2Zvcih2YXIgYj0wLGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlPjAmJihifD0xPDxlLTEpfXJldHVybiBiLnRvU3RyaW5nKCl9ZnVuY3Rpb24gV3MoYSl7cmV0dXJuIExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KT8hKFFzKCJnY2xhdyIpfHxRcygiZ2FjIikpOklzKGEpfQpmdW5jdGlvbiBYcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZTtlPWM/RnMoYSxiLGQpOkVzKChiJiZiLnByZWZpeHx8Il9nY2wiKSsiX2diIixhLGIsdm9pZCAwLGQpO3JldHVybiBlLmxlbmd0aD09PTB8fGUuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0wfSk/IiI6ZS5qb2luKCIuIil9Owp2YXIgWXM9ZnVuY3Rpb24oYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9a2ooImFkc19wYWdldmlldyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKGNbYV0pcmV0dXJuITE7Ynx8KGNbYV09ITApO3JldHVybiEwfSxacz1mdW5jdGlvbihhKXtyZXR1cm4gU2ooYSwiZ2NsaWQgZGNsaWQgZ2JyYWlkIHdicmFpZCBnY2xhdyBnY2xkYyBnY2xoYSBnY2xnZiBnY2xnYiBfZ2wiLnNwbGl0KCIgIiksIjAiKX0sYXQ9ZnVuY3Rpb24oKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpLGI9dm9pZCAwLGM9dm9pZCAwLGQ9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGU9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX2NhbXBhaWduaWQiKSxmLGc9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKS5tYXRjaCgkcyk7Zj1nP2dbMV06dm9pZCAwO2QmJmY/KGI9ZCxjPTEpOmQ/KGI9ZCxjPTIpOmYmJihiPWYsYz0zKTtyZXR1cm57RGc6YixTcjpjLFRoOmV9fSxidD1mdW5jdGlvbihhKXt2YXIgYj0KT3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZjtyZXR1cm4gYShiKX0sY3Q9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2Q9UnIoZCk7Zm9yKHZhciBlPVtdLGY9MDtmPGQubGVuZ3RoO2YrKyllLnB1c2goZFtmXS5nY2xpZCk7ZS5sZW5ndGgmJmIucHVzaChjKyI6IitlLmpvaW4oIiwiKSl9KTtyZXR1cm4gYi5qb2luKCI7Iil9LGV0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1kdChhKTtpZihkKXJldHVybiBkO3ZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZz1bXTthPT09ImF3Ij9nPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk6YT09PSJkYyImJihnPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSkpO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/W3t2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOiIwIn1dOmcubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLApnY2xpZDpsLnZhbHVlLHFhOmwucWEsb2E6WzFdfX0pfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/YT09PSJhdyI/RXIoaCxNKDU2MikpOlpyKGgpOltdfSxkdD1mdW5jdGlvbihhKXt2YXIgYj1UaigiZ2NsIithKSxjPWE9PT0iZGMifHxhPT09ImF3Ij9UaigiZ2NsIithKyJfc3JjIik6dm9pZCAwO2lmKGIpcmV0dXJuIFNzKGIsYyl9LGZ0PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09ImF3Inx8YT09PSJkYyJ8fGE9PT0iZ2IiKXt2YXIgZD1UaigiZ2NsIithKTtpZihkKXJldHVybiBkLnNwbGl0KCIuIil9dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnO2c9ZXMoKVthXXx8W107aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9bIjAiXTpnfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/RHIoaCk6W119LGd0PWZ1bmN0aW9uKGEsYixjKXtpZighUihhLGIpfHwhUihhLGMpKXJldHVybiIiO3ZhciBkPVIoYSxiKS5zcGxpdCgiLiIpLGU9UihhLGMpLnNwbGl0KCIuIik7cmV0dXJuIGQubGVuZ3RoJiYKZS5sZW5ndGgmJmQubGVuZ3RoPT09ZS5sZW5ndGgmJmRbMF0mJmVbMF0/ZC5tYXAoZnVuY3Rpb24oZixnKXtyZXR1cm4gZisiXyIrZVtnXX0pLmpvaW4oIi4iKToiIn0sJHM9L15nYWRfc291cmNlW189XShcZCspJC87ZnVuY3Rpb24gaHQoYSxiLGMpe3ZhciBkPVIoYSxGLkQuVGEpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpZm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9ZFtnXTtpZihoIT09dm9pZCAwKXtoPT09bnVsbCYmKGg9IiIpO3ZhciBsPSJnYXAuIitnLG49U3RyaW5nKGgpO2M/YyhsLG4pOmJbbF09bn19fTt2YXIgaXQ9ITEsanQ9W107ZnVuY3Rpb24ga3QoKXtpZighaXQpe2l0PSEwO2Zvcih2YXIgYT1qdC5sZW5ndGgtMTthPj0wO2EtLSlqdFthXSgpO2p0PVtdfX07ZnVuY3Rpb24gbHQoYSl7dmFyIGI9W10sYz0wLGQ7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07ZnVuY3Rpb24gbXQoYSxiLGMpe3JldHVybiB0eXBlb2YgYS5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8oYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSksITApOiExfWZ1bmN0aW9uIG50KGEsYixjKXt0eXBlb2YgYS5yZW1vdmVFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIiYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIG90KGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1hZ2VfcmVxdWVzdHM9W10pO3ZhciBlPVBwKGEuZG9jdW1lbnQpO2lmKGMpe3ZhciBmPWZ1bmN0aW9uKCl7aWYoYyl7dmFyIGc9YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMsaD1EYyhnLGUpO2g+PTAmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChnLGgsMSl9bnQoZSwibG9hZCIsZik7bnQoZSwiZXJyb3IiLGYpfTttdChlLCJsb2FkIixmKTttdChlLCJlcnJvciIsZil9ZCYmKGUuYXR0cmlidXRpb25TcmM9IiIpO2Uuc3JjPWI7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMucHVzaChlKX0KZnVuY3Rpb24gcHQoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2dlbl8yMDQ/aWQ9dGNmZSI7SXAoYSxmdW5jdGlvbihkLGUpe2lmKGR8fGQ9PT0wKWMrPSImIitlKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKX0pO3F0KGMsYil9CmZ1bmN0aW9uIHF0KGEsYil7dmFyIGM9d2luZG93LGQ7Yj1iPT09dm9pZCAwPyExOmI7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYy5mZXRjaCl7dmFyIGU9e2tlZXBhbGl2ZTohMCxjcmVkZW50aWFsczoiaW5jbHVkZSIscmVkaXJlY3Q6ImZvbGxvdyIsbWV0aG9kOiJnZXQiLG1vZGU6Im5vLWNvcnMifTtkJiYoZS5tb2RlPSJjb3JzIiwic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2UuYXR0cmlidXRpb25SZXBvcnRpbmc9e2V2ZW50U291cmNlRWxpZ2libGU6InRydWUiLHRyaWdnZXJFbGlnaWJsZToiZmFsc2UifTplLmhlYWRlcnM9eyJBdHRyaWJ1dGlvbi1SZXBvcnRpbmctRWxpZ2libGUiOiJldmVudC1zb3VyY2UifSk7Yy5mZXRjaChhLGUpfWVsc2Ugb3QoYyxhLGI9PT12b2lkIDA/ITE6YixkPT09dm9pZCAwPyExOmQpfTtmdW5jdGlvbiBydCgpe3RoaXMuZmE9dGhpcy5mYTt0aGlzLlI9dGhpcy5SfXJ0LnByb3RvdHlwZS5mYT0hMTtydC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZmF8fCh0aGlzLmZhPSEwLHRoaXMuTigpKX07cnQucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtydC5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhP2IhPT12b2lkIDA/YS5jYWxsKGIpOmEoKToodGhpcy5SfHwodGhpcy5SPVtdKSxiJiYoYT1hLmJpbmQoYikpLHRoaXMuUi5wdXNoKGEpKX07cnQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtpZih0aGlzLlIpZm9yKDt0aGlzLlIubGVuZ3RoOyl0aGlzLlIuc2hpZnQoKSgpfTtmdW5jdGlvbiBzdChhKXthLmFkZHRsQ29uc2VudD09PXZvaWQgMHx8dmYoYS5hZGR0bENvbnNlbnQpfHwoYS5hZGR0bENvbnNlbnQ9dm9pZCAwKTthLmdkcHJBcHBsaWVzPT09dm9pZCAwfHx3ZihhLmdkcHJBcHBsaWVzKXx8KGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gYS50Y1N0cmluZyE9PXZvaWQgMCYmIXZmKGEudGNTdHJpbmcpfHxhLmxpc3RlbmVySWQhPT12b2lkIDAmJiF1ZihhLmxpc3RlbmVySWQpPzI6YS5jbXBTdGF0dXMmJmEuY21wU3RhdHVzIT09ImVycm9yIj8wOjN9dmFyIHR0PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7cnQuY2FsbCh0aGlzKTt0aGlzLkg9bnVsbDt0aGlzLmphPXt9O3RoaXMueWE9MDt0aGlzLlo9bnVsbDt0aGlzLks9YTt2YXIgYzt0aGlzLnRpbWVvdXRNcz0oYz1iLnRpbWVvdXRNcykhPW51bGw/Yzo1MDA7dmFyIGQ7dGhpcy5Faj0oZD1iLkVqKSE9bnVsbD9kOiExfTt3YSh0dCxydCk7CnR0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5qYT17fTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuamE7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5IO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9O3ZhciB2dD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuSy5fX3RjZmFwaT09PSJmdW5jdGlvbiJ8fHV0KGEpIT1udWxsfTsKdHQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXtpbnRlcm5hbEJsb2NrT25FcnJvcnM6dGhpcy5Fan0sZD1IcChmdW5jdGlvbigpe2EoYyl9KSxlPTA7dGhpcy50aW1lb3V0TXMhPT0tMSYmKGU9c2V0VGltZW91dChmdW5jdGlvbigpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiO2MuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZCgpfSx0aGlzLnRpbWVvdXRNcykpO3ZhciBmPWZ1bmN0aW9uKGcsaCl7Y2xlYXJUaW1lb3V0KGUpO2c/KGM9ZyxjLmludGVybmFsRXJyb3JTdGF0ZT1zdChjKSxjLmludGVybmFsQmxvY2tPbkVycm9ycz1iLkVqLGgmJmMuaW50ZXJuYWxFcnJvclN0YXRlPT09MHx8KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGh8fChjLmludGVybmFsRXJyb3JTdGF0ZT0zKSkpOihjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGMpfTt0cnl7d3QodGhpcywiYWRkRXZlbnRMaXN0ZW5lciIsCmYpfWNhdGNoKGcpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMsZSYmKGNsZWFyVGltZW91dChlKSxlPTApLGQoKX19O3R0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmd3QodGhpcywicmVtb3ZlRXZlbnRMaXN0ZW5lciIsbnVsbCxhLmxpc3RlbmVySWQpfTsKdmFyIHp0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPWQ9PT12b2lkIDA/Ijc1NSI6ZDt2YXIgZTthOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgZj1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbYl07aWYoZiE9PXZvaWQgMCl7ZT1mW2Q9PT12b2lkIDA/Ijc1NSI6ZF07YnJlYWsgYX19ZT12b2lkIDB9dmFyIGc9ZTtpZihnPT09MClyZXR1cm4hMTt2YXIgaD1jO2M9PT0yPyhoPTAsZz09PTImJihoPTEpKTpjPT09MyYmKGg9MSxnPT09MSYmKGg9MCkpO3ZhciBsO2lmKGg9PT0wKWlmKGEucHVycG9zZSYmYS52ZW5kb3Ipe3ZhciBuPXh0KGEudmVuZG9yLmNvbnNlbnRzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk7bD1uJiZiPT09IjEiJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJmEucHVibGlzaGVyQ0M9PT0iQ0giPyEwOm4mJnh0KGEucHVycG9zZS5jb25zZW50cyxiKX1lbHNlIGw9ITA7ZWxzZSBsPWg9PT0xP2EucHVycG9zZSYmYS52ZW5kb3I/eHQoYS5wdXJwb3NlLmxlZ2l0aW1hdGVJbnRlcmVzdHMsCmIpJiZ4dChhLnZlbmRvci5sZWdpdGltYXRlSW50ZXJlc3RzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk6ITA6ITA7cmV0dXJuIGx9LHh0PWZ1bmN0aW9uKGEsYil7cmV0dXJuISghYXx8IWFbYl0pfSx3dD1mdW5jdGlvbihhLGIsYyxkKXtjfHwoYz1mdW5jdGlvbigpe30pO3ZhciBlPWEuSztpZih0eXBlb2YgZS5fX3RjZmFwaT09PSJmdW5jdGlvbiIpe3ZhciBmPWUuX190Y2ZhcGk7ZihiLDIsYyxkKX1lbHNlIGlmKHV0KGEpKXtBdChhKTt2YXIgZz0rK2EueWE7YS5qYVtnXT1jO2lmKGEuSCl7dmFyIGg9e307YS5ILnBvc3RNZXNzYWdlKChoLl9fdGNmYXBpQ2FsbD17Y29tbWFuZDpiLHZlcnNpb246MixjYWxsSWQ6ZyxwYXJhbWV0ZXI6ZH0saCksIioiKX19ZWxzZSBjKHt9LCExKX0sdXQ9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5IPU5wKGEuSywiX190Y2ZhcGlMb2NhdG9yIik7cmV0dXJuIGEuSH0sQXQ9ZnVuY3Rpb24oYSl7aWYoIWEuWil7dmFyIGI9ZnVuY3Rpb24oYyl7aWYoYy5zb3VyY2U9PT0KYS5IKXRyeXt2YXIgZDtkPSh2ZihjLmRhdGEpP0pTT04ucGFyc2UoYy5kYXRhKTpjLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuamFbZC5jYWxsSWRdKGQucmV0dXJuVmFsdWUsZC5zdWNjZXNzKX1jYXRjaChlKXt9fTthLlo9YjttdChhLkssIm1lc3NhZ2UiLGIpfX0sQnQ9ZnVuY3Rpb24oYSl7aWYoYS5nZHByQXBwbGllcz09PSExKXJldHVybiEwO2EuaW50ZXJuYWxFcnJvclN0YXRlPT09dm9pZCAwJiYoYS5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYSkpO3JldHVybiBhLmNtcFN0YXR1cz09PSJlcnJvciJ8fGEuaW50ZXJuYWxFcnJvclN0YXRlIT09MD9hLmludGVybmFsQmxvY2tPbkVycm9ycz8ocHQoe2U6U3RyaW5nKGEuaW50ZXJuYWxFcnJvclN0YXRlKX0pLCExKTohMDphLmNtcFN0YXR1cyE9PSJsb2FkZWQifHxhLmV2ZW50U3RhdHVzIT09InRjbG9hZGVkIiYmYS5ldmVudFN0YXR1cyE9PSJ1c2VyYWN0aW9uY29tcGxldGUiPyExOiEwfTt2YXIgQ3Q9ezE6MCwzOjAsNDowLDc6Myw5OjMsMTA6M307ZnVuY3Rpb24gRHQoKXtyZXR1cm4ga2ooInRjZiIsZnVuY3Rpb24oKXtyZXR1cm57fX0pfXZhciBFdD1mdW5jdGlvbigpe3JldHVybiBuZXcgdHQoQSx7dGltZW91dE1zOi0xfSl9OwpmdW5jdGlvbiBGdCgpe3ZhciBhPUR0KCksYj1FdCgpO3Z0KGIpJiYhR3QoKSYmIUh0KCkmJlAoMTI0KTtpZighYS5hY3RpdmUmJnZ0KGIpKXtHdCgpJiYoYS5hY3RpdmU9ITAsYS5wdXJwb3Nlcz17fSxhLmNtcElkPTAsYS50Y2ZQb2xpY3lWZXJzaW9uPTAsdGwoKS5hY3RpdmU9ITAsYS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIpO2NwKCk7dHJ5e2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihjKXtpZihjLmludGVybmFsRXJyb3JTdGF0ZSE9PTApSXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITA7ZWxzZSBpZihhLmdkcHJBcHBsaWVzPWMuZ2RwckFwcGxpZXMsYS5jbXBJZD1jLmNtcElkLGEuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPWMuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlLEh0KCkmJihhLmFjdGl2ZT0hMCksIUp0KGMpfHxHdCgpfHxIdCgpKXthLnRjZlBvbGljeVZlcnNpb249Yy50Y2ZQb2xpY3lWZXJzaW9uO3ZhciBkO2lmKGMuZ2RwckFwcGxpZXM9PT0KITEpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gQ3QpQ3QuaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPSEwKTtkPWU7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMpfWVsc2UgaWYoSnQoYykpe3ZhciBnPXt9LGg7Zm9yKGggaW4gQ3QpaWYoQ3QuaGFzT3duUHJvcGVydHkoaCkpaWYoaD09PSIxIil7dmFyIGwsbj1jLHA9e1VyOiEwfTtwPXA9PT12b2lkIDA/e306cDtsPUJ0KG4pP24uZ2RwckFwcGxpZXM9PT0hMT8hMDpuLnRjU3RyaW5nPT09InRjdW5hdmFpbGFibGUiPyFwLmlkcGNBcHBsaWVzOihwLmlkcGNBcHBsaWVzfHxuLmdkcHJBcHBsaWVzIT09dm9pZCAwfHxwLlVyKSYmKHAuaWRwY0FwcGxpZXN8fHZmKG4udGNTdHJpbmcpJiZuLnRjU3RyaW5nLmxlbmd0aCk/enQobiwiMSIsMCk6ITA6ITE7Z1siMSJdPWx9ZWxzZSBnW2hdPXp0KGMsaCxDdFtoXSk7ZD1nfWlmKGQpe2EudGNTdHJpbmc9Yy50Y1N0cmluZ3x8InRjZW1wdHkiO2EucHVycG9zZXM9ZDt2YXIgcT17fSxyPShxW0YuRC5rYV09CmEucHVycG9zZXNbIjEiXT8iZ3JhbnRlZCI6ImRlbmllZCIscSk7YS5nZHByQXBwbGllcyE9PSEwPyhkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMCk6KHJbRi5ELlhhXT1hLnB1cnBvc2VzWyIzIl0mJmEucHVycG9zZXNbIjQiXT8iZ3JhbnRlZCI6ImRlbmllZCIsdHlwZW9mIGEudGNmUG9saWN5VmVyc2lvbj09PSJudW1iZXIiJiZhLnRjZlBvbGljeVZlcnNpb24+PTQ/cltGLkQubWFdPWEucHVycG9zZXNbIjEiXSYmYS5wdXJwb3Nlc1siNyJdPyJncmFudGVkIjoiZGVuaWVkIjpkcChbRi5ELm1hXSksVm8ocix7ZXZlbnRJZDowfSx7Z2RwckFwcGxpZXM6YT9hLmdkcHJBcHBsaWVzOnZvaWQgMCx0Y1N0cmluZzpLdCgpfHwiIn0pKX19ZWxzZSBkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKX0pfWNhdGNoKGMpe0l0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwfX19CmZ1bmN0aW9uIEl0KGEpe2EudHlwZT0iZSI7YS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSJ9ZnVuY3Rpb24gSnQoYSl7cmV0dXJuIGEuZXZlbnRTdGF0dXM9PT0idGNsb2FkZWQifHxhLmV2ZW50U3RhdHVzPT09InVzZXJhY3Rpb25jb21wbGV0ZSJ8fGEuZXZlbnRTdGF0dXM9PT0iY21wdWlzaG93biJ9ZnVuY3Rpb24gR3QoKXtyZXR1cm4gQS5ndGFnX2VuYWJsZV90Y2Zfc3VwcG9ydD09PSEwfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIER0KCkuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPT09ITB9ZnVuY3Rpb24gS3QoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlKXJldHVybiBhLnRjU3RyaW5nfWZ1bmN0aW9uIEx0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSYmYS5nZHByQXBwbGllcyE9PXZvaWQgMClyZXR1cm4gYS5nZHByQXBwbGllcz8iMSI6IjAifQpmdW5jdGlvbiBNdChhKXtpZighQ3QuaGFzT3duUHJvcGVydHkoU3RyaW5nKGEpKSlyZXR1cm4hMDt2YXIgYj1EdCgpO3JldHVybiBiLmFjdGl2ZSYmYi5wdXJwb3Nlcz8hIWIucHVycG9zZXNbU3RyaW5nKGEpXTohMH07dmFyIE50PVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdLE90PXt9LFB0PShPdFtGLkQua2FdPTEsT3RbRi5ELnJhXT0yLE90KTtmdW5jdGlvbiBRdChhKXtpZihhPT09dm9pZCAwKXJldHVybiAwO3N3aXRjaChPKGEsRi5ELlJjKSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMTpyZXR1cm4gMztkZWZhdWx0OnJldHVybiAyfX1mdW5jdGlvbiBSdCgpe3JldHVybihNKDE4Myk/TGYoMTYpLnNwbGl0KCJ+Iik6TGYoMTcpLnNwbGl0KCJ+IikpLmluZGV4T2Yoem0oKSkhPT0tMSYmSGMuZ2xvYmFsUHJpdmFjeUNvbnRyb2w9PT0hMH1mdW5jdGlvbiBTdChhKXtpZihSdCgpKXJldHVybiExO3ZhciBiPVF0KGEpO2lmKGI9PT0zKXJldHVybiExO3N3aXRjaChDbChGLkQuWGEpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtjYXNlIDQ6cmV0dXJuIGI9PT0yO2Nhc2UgMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0KZnVuY3Rpb24gVHQoKXtyZXR1cm4gRWwoKXx8IUJsKEYuRC5rYSl8fCFCbChGLkQucmEpfWZ1bmN0aW9uIFV0KCl7dmFyIGE9e30sYjtmb3IoYiBpbiBQdClQdC5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbUHRbYl1dPUNsKGIpKTtyZXR1cm4iRzEiK3lmKGFbMV18fDApK3lmKGFbMl18fDApfXZhciBWdD17fSxXdD0oVnRbRi5ELmthXT0wLFZ0W0YuRC5yYV09MSxWdFtGLkQubWFdPTIsVnRbRi5ELlhhXT0zLFZ0KTtmdW5jdGlvbiBYdChhKXtzd2l0Y2goYSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMDpyZXR1cm4gMztjYXNlICExOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fQpmdW5jdGlvbiBZdChhKXtmb3IodmFyIGI9IjEiLGM9MDtjPE50Lmxlbmd0aDtjKyspe3ZhciBkPWIsZSxmPU50W2NdLGc9QWwuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2ZdO2U9Zz09PXZvaWQgMD8wOld0Lmhhc093blByb3BlcnR5KGcpPzEyfFd0W2ddOjg7dmFyIGg9dGwoKTtoLmFjY2Vzc2VkQW55PSEwO3ZhciBsPWguZW50cmllc1tmXXx8e307ZT1lPDwyfFh0KGwuaW1wbGljaXQpO2I9ZCsoIiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2VdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltYdChsLmRlY2xhcmUpPDw0fFh0KGwuZGVmYXVsdCk8PDJ8WHQobC51cGRhdGUpXSl9dmFyIG49YixwPShSdCgpPzE6MCk8PDMscT0oRWwoKT8xOjApPDwyLHI9UXQoYSk7Yj1uKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltwfApxfHJdO3JldHVybiBiKz0iIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfc3RvcmFnZTw8NHxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hbmFseXRpY3Nfc3RvcmFnZTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF91c2VyX2RhdGFdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlsoQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPzE6MCk8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfcGVyc29uYWxpemF0aW9uXX1mdW5jdGlvbiBadCgpe3JldHVybiBCbChGLkQubWEpPyJhIjoiLSJ9ZnVuY3Rpb24gJHQoKXtyZXR1cm4gQm0oKXx8KEd0KCl8fEh0KCkpJiZMdCgpPT09IjEiPyIxIjoiMCJ9CmZ1bmN0aW9uIGF1KCl7cmV0dXJuKEJtKCk/ITA6ISghR3QoKSYmIUh0KCkpJiZMdCgpPT09IjEiKXx8IUJsKEYuRC5tYSl9CmZ1bmN0aW9uIGJ1KCl7dmFyIGE9IjAiLGI9IjAiLGM7dmFyIGQ9RHQoKTtjPWQuYWN0aXZlP2QuY21wSWQ6dm9pZCAwO3R5cGVvZiBjPT09Im51bWJlciImJmM+PTAmJmM8PTQwOTUmJihhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjPj42JjYzXSxiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjJjYzXSk7dmFyIGU9IjAiLGY7dmFyIGc9RHQoKTtmPWcuYWN0aXZlP2cudGNmUG9saWN5VmVyc2lvbjp2b2lkIDA7dHlwZW9mIGY9PT0ibnVtYmVyIiYmZj49MCYmZjw9NjMmJihlPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltmXSk7dmFyIGg9MDtCbSgpJiYoaHw9MSk7THQoKT09PSIxIiYmKGh8PTIpO0d0KCkmJihofD00KTt2YXIgbDt2YXIgbj1EdCgpO2w9bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUhPT0Kdm9pZCAwP24uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPyIxIjoiMCI6dm9pZCAwO2w9PT0iMSImJihofD04KTt0bCgpLndhaXRQZXJpb2RUaW1lZE91dCYmKGh8PTE2KTtyZXR1cm4iMSIrYStiK2UrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2hdfTt2YXIgY3U9e1VBOjEsQVc6MixEQzozLEc6NCxHRjo1LEdUOjEyLEdUTToxNCxIQTo2LE1DOjd9OwpmdW5jdGlvbiBkdShhKXthPWE9PT12b2lkIDA/e306YTt2YXIgYj1FKDUpLnNwbGl0KCItIilbMF0udG9VcHBlckNhc2UoKSxjLGQ9e2N0aWQ6RSg1KSxEbzpKZigxNSksSW86RSgxNCksTHM6SWYoNyk/MjoxLER0OmEucGYsY2Fub25pY2FsSWQ6RSg2KSxudDooYz1BaygpKT09bnVsbD92b2lkIDA6Yy5jYW5vbmljYWxDb250YWluZXJJZCxFdDphLlRnPT09dm9pZCAwP3ZvaWQgMDphLlRnPzEwOjEyfTtkLmNhbm9uaWNhbElkIT09YS5tYyYmKGQubWM9YS5tYyk7dmFyIGU9eGsoKTtkLlVzPWU/ZS5jYW5vbmljYWxDb250YWluZXJJZDp2b2lkIDA7SWYoNDUpPyhkLmhpPWN1W2JdLGQuaGl8fChkLmhpPTApKTpkLmhpPURqPzEzOjEwO0lmKDQ3KT8oZC5iaz0wLGQucXI9Mik6SWYoNTApP2QuYms9MTpkLmJrPTM7dmFyIGY9YSxnPXs2OiExfTtKZig1NCk9PT0yP2dbN109ITA6SmYoNTQpPT09MSYmKGdbMl09ITApO2lmKEtjKXt2YXIgaD1MaihSaihLYyksImhvc3QiKTtoJiYoZ1s4XT0KaC5tYXRjaCgvXih3d3dcLik/Z29vZ2xldGFnbWFuYWdlclwuY29tJC8pPT09bnVsbCl9dmFyIGw7Z1s5XT0obD1mLmVmKSE9bnVsbD9sOiExO3ZhciBuPUZrKCkscDtnWzEwXT0ocD1uPT1udWxsP3ZvaWQgMDpuLmZyb21Db250YWluZXJFeGVjdXRpb24pIT1udWxsP3A6ITE7ZC56cj1nO3JldHVybiBDZihkLGEuUG4pfTsKdmFyIGZ1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9UihhLGUpLGc9UShhLEguSi5ZZSk7TSg1ODkpJiZnJiYoZT09PUYuRC56YXx8ZT09PUYuRC5VYXx8ZT09PUYuRC5QZSkmJnR5cGVvZiBmPT09InN0cmluZyImJihmPVpzKGYpKTt2YXIgaD1vcChlLGYpO2gmJighZ3x8ZSE9PUYuRC5EZCYmZSE9PUYuRC5LZCYmZSE9PUYuRC5FZSYmZSE9PUYuRC5CZnx8KGgudmFsdWU9IjAiKSxNKDUwNCkmJihlPT09Ri5ELk1kP2gua2V5PSJldm5pZCI6ZT09PUYuRC5OZCYmKGgua2V5PSJleGNpZCIpKSxiW2gua2V5XT1oLnZhbHVlKX1iLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtUdCgpJiYoYi5nY3M9Yi5nY3N8fFV0KCkpO2IuZ2NkPWIuZ2NkfHxZdChhLk0pO2F1KCkmJihiLmRtYV9jcHM9WnQoKSk7Yi5kbWE9JHQoKTt2dChFdCgpKSYmCihiLnRjZmQ9YnUoKSk7dmFyIGw9Q3AoYSk7bCYmKGIudGFnX2V4cD1sKTtpZihRKGEsSC5KLkJrKSl7Yi50ZnQ9U3RyaW5nKE5iKCkpO3ZhciBuPXBkKCk7biE9PXZvaWQgMCYmKGIudGZkPVN0cmluZyhNYXRoLnJvdW5kKG4pKSl9Yi5hcHZlPSIxIjtiLmFwdmY9bmQoKT8iZiI6Im5mIjtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChiLmxpbWl0ZWRfYWRzPSIxIik7dmFyIHA9UShhLEguSi5YZyk7TSg0NzQpJiZwIT1udWxsJiZwIT09IiImJihiLl9nc2lkPXApO2h0KGEsYixmdW5jdGlvbihxLHIpe2JbcV09ZW5jb2RlVVJJQ29tcG9uZW50KHIpfSk7cmV0dXJuIGJ9O3ZhciBndT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZW5kcG9pbnQ9YTt0aGlzLmZhPWM7dGhpcy5qYT1kO3RoaXMucGFyYW1ldGVyRW5jb2Rpbmc9ZTt0aGlzLlo9Yi5zbGljZSgpfTtndS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBYbyh0aGlzLlopfTtndS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Z3UucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXt2YXIgYT1NbVt0aGlzLmVuZHBvaW50XSh2b2lkIDApO3JldHVybiBTYihhLCJodHRwczovLyIpP2Euc3Vic3RyaW5nKDgpOlNiKGEsImh0dHA6Ly8iKT9hLnN1YnN0cmluZyg3KTphfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLm1ldGhvZE5hbWU9YTt0aGlzLlI9Yn07aHUucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmlzU3VwcG9ydGVkKCkpaWYoKGM9PW51bGw/dm9pZCAwOmMuYm9keSk9PT12b2lkIDB8fHRoaXMuSCgpKXRyeXt0aGlzLksoYSxiLGMpfWNhdGNoKGQpe2EucmQoZCl9ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGRvZXMgbm90IHN1cHBvcnQgYSByZXF1ZXN0IGJvZHkuIik7ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGlzIG5vdCBzdXBwb3J0ZWQuIil9O3ZhciBpdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW1hZ2VQaXhlbCIsMyl9O3dhKGl1LGh1KTtpdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07aXUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Cml1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtaYyhiLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbigpe2Eub25GYWlsdXJlKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIganU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIlNlbmRCZWFjb24iLDEpfTt3YShqdSxodSk7anUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGtkKCl9O2p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtqZChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSk/YS5qZigpOmEucmQodm9pZCAwKX07dmFyIGt1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJGZXRjaCIsMSl9O3dhKGt1LGh1KTtrdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O2t1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwprdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7QS5mZXRjaChiLGM9PW51bGw/dm9pZCAwOmMuR2IpLnRoZW4oZnVuY3Rpb24oZCl7aWYoZC5vaylhLnBlKGQpO2Vsc2UgaWYoZC5zdGF0dXM9PT0wKWEuamYoKTtlbHNlIGEub25GYWlsdXJlKCJGZXRjaCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Quc3RhdHVzKyIuIil9KS5jYXRjaChmdW5jdGlvbihkKXthLnJkKGQpfSl9O3ZhciBsdT1uZXcgaXUsbXU9bmV3IGp1LG51PW5ldyBrdTt2YXIgb3U9ZnVuY3Rpb24oKXt9O291LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuW119Owp2YXIgcHU9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl06YjtndS5jYWxsKHRoaXMsYSxiLDEsITAsMil9O3dhKHB1LGd1KTtwdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtpZih0aGlzLloubGVuZ3RoKXt2YXIgYj1RKGEsSC5KLkRrKTtpZihiIT09dm9pZCAwKXJldHVybiBifXJldHVybiBndS5wcm90b3R5cGUuSy5jYWxsKHRoaXMsYSl9O3B1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSk7YS50YXJnZXQuZGVzdGluYXRpb25JZCYmKGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO2IubWV0aG9kIGluc3RhbmNlb2Yga3U/Yy5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/Yy5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihjLmZtdD0iMyIpO3JldHVybiBjfTtwdS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLk4oYSxiKTtyZXR1cm4iPyIrT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKwoiPSIrY1tkXX0pLmpvaW4oIiYiKX07cHUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMueWEoYSxiKSxlPXt9O2lmKGIubWV0aG9kIGluc3RhbmNlb2Yga3Upe2UuR2I9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7aWYodGhpcy5lbmRwb2ludD09PTU4fHx0aGlzLmVuZHBvaW50PT09NTcpZS5HYi5tZXRob2Q9IkdFVCI7dGhpcy5lbmRwb2ludCE9PTQ1fHxxdS5LKGEpfHwoZS5HYi5jcmVkZW50aWFscz0ib21pdCIsZCs9IiZnYXAudWNmYj0xIil9YyhkLGUpfTt2YXIgcXU9bmV3IHB1KDQ1KSxydT1uZXcgcHUoNDUsW10pLHN1PW5ldyBwdSg0NixbXSksdHU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNjkpfTt3YSh0dSxwdSk7dHUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3ZhciBiPU0oNDc0KSYmKCEhUihhLCJfZ3NpZCIpfHwhIVEoYSxILkouWGcpKSxjPVIoYSxGLkQuSGQpIT09IjEiJiYoISFSKGEsImdjbGlkIil8fAohIVIoYSwiZGNsaWQiKXx8ISFSKGEsImdjbHNyYyIpfHwhIVIoYSwiYXVpZCIpKTtyZXR1cm4gYnx8Y307dHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKSxkPWxwKGEsYyl8fHt9O09iamVjdC5rZXlzKGQpLmxlbmd0aD4wJiYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdT9kLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9kLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGQuZm10PSIzIikpO3JldHVybiBkfTt2YXIgdXU9bmV3IHR1LHZ1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDQ1KX07d2EodnUscHUpO3Z1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3QifTt2dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO2NbImdhcC4xcGZiIl09IjEiO3JldHVybiBjfTt2YXIgd3U9ZnVuY3Rpb24oYSl7cHUuY2FsbCh0aGlzLGEsWyJhZF9zdG9yYWdlIiwKImFkX3VzZXJfZGF0YSJdKX07d2Eod3UscHUpO3d1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7cmV0dXJuIGhwKGMpfTt2YXIgeHU9bmV3IHd1KDU4KSx5dT1uZXcgd3UoNTcpLHp1PWZ1bmN0aW9uKCl7fTt3YSh6dSxvdSk7enUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9cXUuSyhhKSxjPWI/cXU6c3UsZD1be2VuZHBvaW50OmMsbWV0aG9kOm5kKCk/bnU6bXV9LHtlbmRwb2ludDpjLG1ldGhvZDpsdX1dO2I/TSg1MTcpJiZJZig0NykmJmQucHVzaCh7ZW5kcG9pbnQ6bmV3IHZ1LG1ldGhvZDpudX0pOk0oNjAwKSYmZC5wdXNoKHtlbmRwb2ludDpydSxtZXRob2Q6bnV9KTtyZXR1cm4gZH07enUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYz0hIVEoYSxILkoudmQpLGQ9UihhLEYuRC5QZCk9PT0iMSIsZT1SKGEsRi5ELkhkKT09PSIxIixmPXF1LksoYSksZz1jJiZkJiYhZSYmZjtpZihnKXt2YXIgaD0KUWMoKXx8T2MoKT94dTp5dTtiLnB1c2goW3tlbmRwb2ludDpoLG1ldGhvZDpudX0se2VuZHBvaW50OmgsbWV0aG9kOmx1fV0pfWYmJihnfHxRKGEsSC5KLmhkKSkmJmIucHVzaChbe2VuZHBvaW50OnV1LG1ldGhvZDpuZCgpP251Omx1fV0pO3JldHVybiBifTt2YXIgQXU9bmV3IHp1O3ZhciBUPXtXOntKazoxLG5qOjIsRms6MyxtbDo0LEdrOjUseWQ6NixrbDo3LE1xOjgscW46OSxIazoxMCxJazoxMSxGaDoxMixEbToxMyxBbToxNCxDbToxNSx6bToxNixCbToxNyx5bToxOCxUbzoxOSx4cToyMCx5cToyMSxmajoyMix1bjoyNCxPbToyNSxTazoyNixUazoyNyxSazoyOCxVazoyOSxyajozMCxPazozMSxabzozMn19O1QuV1tULlcuSmtdPSJBTExPV19JTlRFUkVTVF9HUk9VUFMiO1QuV1tULlcubmpdPSJTRVJWRVJfQ09OVEFJTkVSX1VSTCI7VC5XW1QuVy5Ga109IkFEU19EQVRBX1JFREFDVElPTiI7VC5XW1QuVy5tbF09IkNVU1RPTUVSX0xJRkVUSU1FX1ZBTFVFIjtULldbVC5XLkdrXT0iQUxMT1dfQ1VTVE9NX1NDUklQVFMiO1QuV1tULlcueWRdPSJBTllfQ09PS0lFX1BBUkFNUyI7VC5XW1QuVy5rbF09IkNPT0tJRV9FWFBJUkVTIjtULldbVC5XLk1xXT0iTEVHQUNZX0VOSEFOQ0VEX0NPTlZFUlNJT05fSlNfVkFSSUFCTEUiO1QuV1tULlcucW5dPSJSRVNUUklDVEVEX0RBVEFfUFJPQ0VTU0lORyI7ClQuV1tULlcuSGtdPSJBTExPV19ESVNQTEFZX0ZFQVRVUkVTIjtULldbVC5XLklrXT0iQUxMT1dfR09PR0xFX1NJR05BTFMiO1QuV1tULlcuRmhdPSJHRU5FUkFURURfVFJBTlNBQ1RJT05fSUQiO1QuV1tULlcuRG1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTktOT1dOIjtULldbVC5XLkFtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfU1RBTkRBUkQiO1QuV1tULlcuQ21dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTklRVUUiO1QuV1tULlcuem1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9QRVJfU0VTU0lPTiI7VC5XW1QuVy5CbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1RSQU5TQUNUSU9OUyI7VC5XW1QuVy55bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX0lURU1TX1NPTEQiO1QuV1tULlcuVG9dPSJBRFNfT0dUX1YxX1VTQUdFIjtULldbVC5XLnhxXT0iRk9STV9JTlRFUkFDVElPTl9QRVJNSVNTSU9OX0RFTklFRCI7ClQuV1tULlcueXFdPSJGT1JNX1NVQk1JVF9QRVJNSVNTSU9OX0RFTklFRCI7VC5XW1QuVy5mal09Ik1JQ1JPVEFTS19OT1RfU1VQUE9SVEVEIjtULldbVC5XLnVuXT0iU0VUX0VOQ1JZUFRFRF9EQVRBX1RPX0NBQ0hFIjtULldbVC5XLk9tXT0iR0VUX0VOQ1JZUFRFRF9EQVRBX0ZST01fQ0FDSEUiO1QuV1tULlcuU2tdPSJDT05GSUdfREVURUNURURfV0lUSF9OT19QQVJBTSI7VC5XW1QuVy5Ua109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX1BBUkFNIjtULldbVC5XLlJrXT0iQ09ORklHX0NPTlNFTlRfU0VUX0JFRk9SRSI7VC5XW1QuVy5Va109IkNPTkZJR19TRVRfVVNFRF9CRUZPUkUiO1QuV1tULlcucmpdPSJTSEFET1dfRE9NX0FVVE9fUElJIjtULldbVC5XLk9rXT0iQ0NEX1VTRVJfREFUQV9XRUJfT05fQ09ORklHIjtULldbVC5XLlpvXT0iQkxFTkRFRF9VU0VSX0RBVEEiO3ZhciBCdT17fSxDdT0oQnVbRi5ELnVpXT1ULlcuSmssQnVbRi5ELmRkXT1ULlcubmosQnVbRi5ELnljXT1ULlcubmosQnVbRi5ELm1iXT1ULlcuRmssQnVbRi5ELkdlXT1ULlcubWwsQnVbRi5ELnJpXT1ULlcuR2ssQnVbRi5ELkpkXT1ULlcueWQsQnVbRi5ELm5iXT1ULlcueWQsQnVbRi5ELkxiXT1ULlcueWQsQnVbRi5ELklkXT1ULlcueWQsQnVbRi5ELnZjXT1ULlcueWQsQnVbRi5ELlRiXT1ULlcueWQsQnVbRi5ELkNiXT1ULlcua2wsQnVbRi5ELldiXT1ULlcucW4sQnVbRi5ELmhoXT1ULlcuSGssQnVbRi5ELlNjXT1ULlcuSWssQnUpLER1PXt9LEV1PShEdS51bmtub3duPVQuVy5EbSxEdS5zdGFuZGFyZD1ULlcuQW0sRHUudW5pcXVlPVQuVy5DbSxEdS5wZXJfc2Vzc2lvbj1ULlcuem0sRHUudHJhbnNhY3Rpb25zPVQuVy5CbSxEdS5pdGVtc19zb2xkPVQuVy55bSxEdSk7dmFyIEZ1PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLGIpO2MmJihhLkhbYl09ITApfSx2Yj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9W119O2Z1bmN0aW9uIEd1KGEpe0Z1KHZiLGEsITEpfWZ1bmN0aW9uIEh1KGEsYil7dmFyIGM9Yj09PXZvaWQgMD8hMTpiLGQ9dmI7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGEpLGY9bShPYmplY3Qua2V5cyhDdSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2UuaW5jbHVkZXMoaCkmJkZ1KGQsQ3VbaF0sYyl9fTtmdW5jdGlvbiBJdShhLGIpe2E/YS50aGVuKGIpOmIodm9pZCAwKX1mdW5jdGlvbiBKdShhKXtyZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGEpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnN0YXR1cz09PSJmdWxmaWxsZWQifSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnZhbHVlfSl9KX1mdW5jdGlvbiBLdSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07ZnVuY3Rpb24gTHUoYSxiLGMsZCxlLGYpe3ZhciBnPWMuc2xpY2UoKSxoO2Q9PW51bGx8fChoPWQudXYpPT1udWxsfHxoLmNhbGwoZCxhLGIsYyxlKTt2YXIgbD1LdSgpLG49bC5wcm9taXNlLHA9bC5yZXNvbHZlLHE9W10scj1mdW5jdGlvbigpe3AocSk7dmFyIHU7ZD09bnVsbHx8KHU9ZC5Scyk9PW51bGx8fHUuY2FsbChkLGEsYixjLGUscSl9LHQ9ZnVuY3Rpb24oKXt2YXIgdT1nLnNoaWZ0KCk7dT91Lm1ldGhvZC5pc1N1cHBvcnRlZCgpP011KGEsYix1LmVuZHBvaW50LGQscSx1Lm1ldGhvZCxlLGYsdCxyKTp0KCk6cigpfTt0KCk7cmV0dXJuIG59CmZ1bmN0aW9uIE11KGEsYixjLGQsZSxmLGcsaCxsLG4pe3ZhciBwPWMuUihhKSxxPXt0azpiLGVuZHBvaW50OmMsaXNQcmltYXJ5Omcsc2I6dm9pZCAwLHBrOmYsanQ6e319LHI9ITEsdD1mdW5jdGlvbih6LEMpe2lmKHIpUCgxODcpO2Vsc2UgaWYocj0hMCwhdSl7dmFyIEQ9Q3x8e30sST1ELmJvZHksRz1ELkdiLE49RC5hZjtDPU9iamVjdC5mcmVlemUobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxJP3tib2R5Okl9Ont9LEc/e0diOkd9Ont9LE4/e2FmOk59Ont9KSk7aWYoSSYmIWYuSCgpKXgoKSxsKCk7ZWxzZXt2YXIgUz1OdSh6KSxXPXBbMF09PT0iLyI/IiIrcCtTOiJodHRwczovLyIrcCtTO3Euc2I9VztxLmp0PUM7dmFyIGVhO2Q9PW51bGx8fChlYT1kLlNzKT09bnVsbHx8ZWEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSk7dmFyIGphPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6Yy5lbmRwb2ludCwKZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfTtmLlI9PT12b2lkIDB8fGMuZmEhPT0yJiYoYy5mYSE9PTF8fGUubGVuZ3RoKXx8a24ucmVnaXN0ZXIoamEsZi5SLFcpO3ZhciBmYT1mdW5jdGlvbihkYSxtYSl7eCgpO2lmKHEuc3RhdHVzIT09dm9pZCAwKXJldHVybiBQKDE5MiksITE7cS5zdGF0dXM9ZGE7ZS5wdXNoKHEpO3ZhciBQYTtkPT1udWxsfHwoUGE9ZC51byk9PW51bGx8fFBhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksbWEpO3JldHVybiEwfSxzYT17Rm86amEscmQ6ZnVuY3Rpb24oKXtmYSgyKSYmbCgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtmYSgzKSYmbCgpfSxwZTpmdW5jdGlvbihkYSl7ZmEoZGEuc3RhdHVzPT09MD8xOmRhLm9rPzA6MyxkYSkmJm4oKX0samY6ZnVuY3Rpb24oKXtmYSgxKSYmbigpfX07T3UoYyxhLFcsUyxJKTtmLnNlbmRSZXF1ZXN0KHNhLFcsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCwKe30sSSYme2JvZHk6SX0sRyYme0diOkd9LE4mJnthZjpOfSkpfX19LHU9ITEsdix4PWZ1bmN0aW9uKCl7diE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KHYpLHY9dm9pZCAwKX07TSg1NzQpJiYodj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PXZvaWQgMDt1PSEwO2lmKHEuc3RhdHVzPT09dm9pZCAwKXtxLnN0YXR1cz00O3Euc2I9PT12b2lkIDAmJihxLnNiPSJbZmFpbGVkIHRvIGJ1aWxkXSAiK3ApO2UucHVzaChxKTt2YXIgejtkPT1udWxsfHwoej1kLnVvKT09bnVsbHx8ei5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLHZvaWQgMCk7bCgpfX0sNUUzKSk7dmFyIHk9e0ljOnAsbWV0aG9kOmYseXY6ZSxpc1ByaW1hcnk6ZyxDdDpofTt0cnl7Yy5IKGEseSx0KX1jYXRjaCh6KXt4KCksUCgxODgpLGwoKX19CmZ1bmN0aW9uIE91KGEsYixjLGQsZSl7aWYoYS5qYSl7dmFyIGY9Yi50YXJnZXQuZGVzdGluYXRpb25JZCxnPWEuZW5kcG9pbnQ7aWYoZz09PTQ1fHxnPT09NDZ8fGc9PT02OXx8Zz09PTU4fHxnPT09NTcpe3ZhciBoPS9bPyZddGlkcz0oW14mXSspLy5leGVjKGQpO2Y9aD9kZWNvZGVVUklDb21wb25lbnQoaFsxXSkuc3BsaXQoIn4iKTpbZl19TWwoe3RhcmdldElkOmYscmVxdWVzdDpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHt1cmw6YyxwYXJhbWV0ZXJFbmNvZGluZzphLnBhcmFtZXRlckVuY29kaW5nLGVuZHBvaW50OmEuZW5kcG9pbnR9LGU/e3Bvc3RCb2R5OmV9Ont9KSxxYjp7ZXZlbnRJZDpiLk0uZXZlbnRJZCxwcmlvcml0eUlkOmIuTS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX0KZnVuY3Rpb24gTnUoYSl7cmV0dXJuIGEmJmEhPT0iPyI/YVswXSE9PSI/Ij8iPyIuY29uY2F0KGEpOmE6IiJ9O2Z1bmN0aW9uIFB1KGEsYixjLGQsZSl7dmFyIGY7ZT09bnVsbHx8KGY9ZS52dik9PW51bGx8fGYuY2FsbChlLGEsYik7aWYoIWMubGVuZ3RoKXt2YXIgZztlPT1udWxsfHwoZz1lLlRzKT09bnVsbHx8Zy5jYWxsKGUsYSxiLFtdKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgaD1bXSxsPXt0azpiLG1rOmMsams6ZH07aC5wdXNoKEx1KGEsYixjLGUsITAsbCkpO2Zvcih2YXIgbj1tKGQpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWgucHVzaChMdShhLGIscC52YWx1ZSxlLCExLGwpKTtyZXR1cm4gSnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2U9PW51bGx8fCh2PWUuVHMpPT1udWxsfHx2LmNhbGwoZSxhLGIscik7cmV0dXJuIHJ9KX07ZnVuY3Rpb24gUXUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtiPT1udWxsfHwoZD1iLnd2KT09bnVsbHx8ZC5jYWxsKGIsYSxjKTtmb3IodmFyIGU9W10sZj1tKGMpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWUucHVzaChSdShhLGcudmFsdWUpKTtmb3IodmFyIGg9W10sbD1tKGUpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2gucHVzaChQdShhLHAudGsscC5tayxwLmprLGIpKX1KdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7Yj09bnVsbHx8KHY9Yi5Rcyk9PW51bGx8fHYuY2FsbChiLGEsYyxyKX0pfQpmdW5jdGlvbiBSdShhLGIpe3ZhciBjPWZ1bmN0aW9uKGYpe3JldHVybiBmLm1ldGhvZC5pc1N1cHBvcnRlZCgpJiZmLmVuZHBvaW50LmlzU3VwcG9ydGVkKGEpJiZmLmVuZHBvaW50LksoYSl9LGQ9KGIuSChhKXx8W10pLmZpbHRlcihjKSxlPVtdO2QubGVuZ3RoJiYoZT0oYi5LKGEpfHxbXSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmZpbHRlcihjKX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5sZW5ndGg+MH0pKTtyZXR1cm57dGs6YixtazpkLGprOmV9fTsKdmFyIFN1PWZ1bmN0aW9uKGEsYil7aWYoTSg1MTcpJiZJZig0NykmJmE9PT00NSlyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdD8iK2Iuc3BsaXQoIj8iKVsxXSsiJmdhcC4xcGZiPTEifSxXdT1mdW5jdGlvbigpe3ZhciBhPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihhLmxlbmd0aCl7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVR1KGUua2UsImFwdmMiKSxnPVR1KGUua2UsInRmdCIpLGg9VHUoZS5rZSwidGZkIiksbD1UdShlLmtlLCJ0aWQiKSxuPU5tKGUuZW5kcG9pbnQsZS5rZSkscD1iW25dPWJbbl18fHt4azpbXSxaaDpbXX07cC5aaC5wdXNoKGUpO2w/KHAueGsucHVzaChsKSxwLnVkfHwocC51ZD1sKSk6cC54ay5wdXNoKCIiKTtmPT09IjEiJiYocC5Rbj0hMCk7aWYoZ3x8aClwLk5uPSEwfWEubGVuZ3RoPTA7Zm9yKHZhciBxPW0oT2JqZWN0LmtleXMoYikpLHI9cS5uZXh0KCksdD17fTshci5kb25lO3Q9Cnt5azp2b2lkIDB9LHI9cS5uZXh0KCkpe3ZhciB1PXIudmFsdWUsdj1iW3VdO3QueWs9di54azt2YXIgeD10LnlrLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gZnVuY3Rpb24oSSxHKXtyZXR1cm4gRC55ay5pbmRleE9mKEkpPT09R319KHQpKS5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuISFEfSk7aWYoTSg0MjcpKXt2YXIgeT1VdSh2LHgpO1F1KHksdm9pZCAwLEF1KX1lbHNle3ZhciB6PXUrIiZhcHZjPSIrKHYuUW4/IjEiOiIwIik7eC5sZW5ndGgmJih6Kz0iJnRpZHM9Iit4LmpvaW4oIn4iKSk7di51ZCYmKHorPSImdGlkPSIrdi51ZCk7aWYodi5Obil7eis9IiZ0ZnQ9IitTdHJpbmcoTmIoKSk7dmFyIEM9cGQoKTtDIT09dm9pZCAwJiYoeis9IiZ0ZmQ9IitTdHJpbmcoTWF0aC5yb3VuZChDKSkpfVZ1KHYuWmhbMF0uZXZlbnQseix2LlpoWzBdLmVuZHBvaW50LHgubGVuZ3RoP3g6WyIiXSl9fX19LFR1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjIT09dm9pZCAwKXJldHVybiBkZWxldGUgYVtiXSwKY30sVnU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZj1mdW5jdGlvbihsLG4pe3ZhciBwPWIrWHUobCk7VGwocCxhLGMsZCk7cmV0dXJuIG4ocCl9O2lmKG5kKCkpe3ZhciBnPWZ1bmN0aW9uKCl7fSxoPVN1KGMsYik7aCE9PXZvaWQgMCYmKGc9ZnVuY3Rpb24oKXtZbihlLGgrWHUoOCksdm9pZCAwLHtRZzohMH0pfSk7Zig4LGZ1bmN0aW9uKGwpe1luKGUsbCx2b2lkIDAse1FnOiEwfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhiK1h1KDMpLGZ1bmN0aW9uKCl7fSxnKX0pfSl9ZWxzZSBmKDUsZnVuY3Rpb24obCl7cmV0dXJuIFduKGUsbCl9KXx8WmMoYitYdSgzKSl9LFV1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5aaFswXSxkPXsiXyZhcHZjIjphLlFuPyIxIjoiMCJ9O2IubGVuZ3RoPjAmJihkWyJfJnRpZHMiXT0KYi5qb2luKCJ+IikpO2lmKGEuTm4pe2RbIl8mdGZ0Il09U3RyaW5nKE5iKCkpO3ZhciBlPXBkKCk7ZSE9PXZvaWQgMCYmKGRbIl8mdGZkIl09U3RyaW5nKE1hdGgucm91bmQoZSkpKX1yZXR1cm4gWXUoYy5ldmVudCxhLnVkfHwiIixkKX0sWXU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS50YXJnZXQse2Rlc3RpbmF0aW9uSWQ6Yn0pLGU9WnUoYSx7dGFyZ2V0OmR9KTtifHxVKGUsRi5ELlFlKTtmb3IodmFyIGY9bShPYmplY3Qua2V5cyhjKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7VShlLGgsY1toXSl9cmV0dXJuIGV9LFh1PWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDg6Y2FzZSAzOmNhc2UgNTpyZXR1cm4iJmZtdD0iK2E7ZGVmYXVsdDpyZXR1cm4iIn19LCR1PWZ1bmN0aW9uKGEsYil7YT1adShhKTtWKGEsSC5KLkRrLFhvKGZwKSk7VHQoKSYmVShhLCJfJmdjcyIsVXQoKSk7ClUoYSwiXyZnY2QiLFl0KGEuTSkpO3ZhciBjPVhvKGZwKT80NTo0NixkPWZ1bmN0aW9uKCl7dmFyIGY9Yi50aWQ7aWYoTSg0MjcpKXt2YXIgZz1ZdShhLGYsYik7UXUoZyx2b2lkIDAsQXUpfWVsc2V7dmFyIGg9Tm0oYyxiKTtWdShhLGgsYyxbZl0pfX07aWYoeWIoQS5xdWV1ZU1pY3JvdGFzaykpe3ZhciBlPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihlLmxlbmd0aD09PTApdHJ5e0EucXVldWVNaWNyb3Rhc2soV3UpfWNhdGNoKGYpe0d1KFQuVy5maik7ZCgpO3JldHVybn1iPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYik7ZS5wdXNoKHtldmVudDphLGtlOmIsZW5kcG9pbnQ6Y30pfWVsc2UgR3UoVC5XLmZqKSxkKCl9O3ZhciBhdj1mdW5jdGlvbihhLGIsYyxkKXtndS5jYWxsKHRoaXMsYSxiLGM9PT12b2lkIDA/MTpjLGQ9PT12b2lkIDA/ITE6ZCwzLHZvaWQgMCl9O3dhKGF2LGd1KTthdi5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELnlpKTtyZXR1cm4gYisiLyIrYysiLyJ9O2F2LnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnlhKGEsZ3UucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpKX07dmFyIFg9e1Y6e01rOiJjYWxsX2NvbnZlcnNpb24iLHpkOiJjY21fY29udmVyc2lvbiIsUWs6ImNvbW1vbl9hdyIseGE6ImNvbnZlcnNpb24iLHdxOiJmbG9vZGxpZ2h0IixZZDoiZ2FfY29udmVyc2lvbiIsWmQ6ImdjcF9yZW1hcmtldGluZyIsS2E6InBhZ2VfdmlldyIsdWI6InJlbWFya2V0aW5nIixPYjoidXNlcl9kYXRhX2xlYWQiLEZiOiJ1c2VyX2RhdGFfd2ViIn19O2Z1bmN0aW9uIGJ2KGEsYil7YiYmR2IoYixmdW5jdGlvbihjLGQpe3R5cGVvZiBkIT09Im9iamVjdCImJmQhPT12b2lkIDAmJihhWyIxcC4iK2NdPVN0cmluZyhkKSl9KX07CnZhciBjdj1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuc2gpO2lmKGMpZm9yKHZhciBkPW0oT2JqZWN0LmtleXMoYykpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9Y1tmXTtnIT1udWxsJiYoYlsiZ3RtZC4iK2ZdPVN0cmluZyhnKSl9fSxndj1mdW5jdGlvbihhKXt2YXIgYj1kdihhKTtpZihiLmxlbmd0aCl7dmFyIGM9ZXYoYSkuVm4sZD1mdihjKXx8IiI7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWZ2KGUpO3JldHVybiIiK2QrKGQmJmY/IjsiOiIiKStmfSl9fSxkdj1mdW5jdGlvbihhKXtmb3IodmFyIGI9aHYoYSksYz17fSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz12b2lkIDA7aWYoZi5oYXNPd25Qcm9wZXJ0eSgiZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIikpe2c9Zi5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw7dmFyIGg9e307Y1tnXT1jW2ddfHwoaC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9CmcsaCl9ZWxzZSBnPSIiLGMuaGFzT3duUHJvcGVydHkoZyl8fChjW2ddPXt9KTt2YXIgbD1jW2ddLG47Zm9yKG4gaW4gZiluIT09Imdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCImJihuIGluIGx8fChsW25dPVtdKSxsW25dLnB1c2goZltuXSkpfXJldHVybiBPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGNbcF19KX0saHY9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5IYSk7cmV0dXJuIGImJmIubGVuZ3RoP2IuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXt2YXIgZD17fTtyZXR1cm4gZC5pZD1paShjKSxkLm9yaWdpbj1jLm9yaWdpbixkLmRlc3RpbmF0aW9uPWMuZGVzdGluYXRpb24sZC5zdGFydF9kYXRlPWMuc3RhcnRfZGF0ZSxkLmVuZF9kYXRlPWMuZW5kX2RhdGUsZC5sb2NhdGlvbl9pZD1jLmxvY2F0aW9uX2lkLGQuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsPWMuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsLGR9KTpbXX0sCmlpPWZ1bmN0aW9uKGEpe2EuaXRlbV9pZCE9bnVsbCYmKGEuaWQhPW51bGw/KFAoMTM4KSxhLmlkIT09YS5pdGVtX2lkJiZQKDE0OCkpOlAoMTUzKSk7cmV0dXJuIGppKGEpfSxmdj1mdW5jdGlvbihhKXtpZihhJiZ0eXBlb2YgYT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPWl2KGIpO2lmKGMpe3ZhciBkPWFbYl0sZT1BcnJheS5pc0FycmF5KGQpP2p2KGQpOml2KGQpO2lmKGUhPT12b2lkIDApcmV0dXJuIGMrIj0iK2V9fSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiIT09dm9pZCAwfSkuam9pbigiOyIpfSxqdj1mdW5jdGlvbihhKXt2YXIgYj1hLm1hcChpdikuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjIT09dm9pZCAwfSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiLCIpOnZvaWQgMH0saXY9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbCl7dmFyIGI9dHlwZW9mIGE7aWYoYiE9PSJvYmplY3QiJiYKYiE9PSJmdW5jdGlvbiIpcmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC8sL2csIlxcLCIpLnJlcGxhY2UoLzsvZywiXFw7IikucmVwbGFjZSgvPS9nLCJcXD0iKX19LGt2PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9YVtiXTtpZihjIT1udWxsJiYoYyE9PSIifHx5Z1tiXSkpcmV0dXJuIGM9PT0hMHx8Yz09PSExP2IrIj0iKyhjPzE6MCk6YisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLmpvaW4oIiYiKX0sbHY9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz17fSxkPVEoYSxILkouRWIpO2lmKGI9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuWWR8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQpYy5yYW5kb209IiIrZDtiPT09WC5WLnhhfHxiPT09WC5WLnVifHxiPT09WC5WLnpkfHxiPT09WC5WLlpkPyhjLmN2PSIxMSIsYy5mc3Q9IiIrZCxjLmZtdD0iMyIsCmMuYmc9ImZmZmZmZiIsYy5ndWlkPSJPTiIsYy5hc3luYz0iMSIsYy5lbj1hLmV2ZW50TmFtZSk6Yj09PVguVi5ZZCYmKGMuY3Y9IjExIixjLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkLGMuZnN0PSIiK2QsYy5mbXQ9IjgiLGMuZW49YS5ldmVudE5hbWUpO3ZhciBlPUJzKFsiYXciLCJkYyJdKTtlIT1udWxsJiYoYy5nYWRfc291cmNlPWUpO2MuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO2IhPT1YLlYudWImJlR0KCkmJihjLmdjcz1VdCgpKTtjLmdjZD1ZdChhLk0pO2F1KCkmJihjLmRtYV9jcHM9WnQoKSk7Yy5kbWE9JHQoKTt2dChFdCgpKSYmKGMudGNmZD1idSgpKTt2YXIgZj1DcChhKTtmJiYoYy50YWdfZXhwPWYpO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGMubGltaXRlZF9hZHM9IjEiKTtSKGEsRi5ELmJkKSYmZmkoUihhLEYuRC5iZCksYyk7aWYoUihhLApGLkQudGIpKXt2YXIgZz1SKGEsRi5ELnRiKTtnJiYoZy5sZW5ndGg9PT0yP2dpKGMsImhsIixnKTpnLmxlbmd0aD09PTUmJihnaShjLCJobCIsZy5zdWJzdHJpbmcoMCwyKSksZ2koYywiZ2wiLGcuc3Vic3RyaW5nKDMsNSkpKSl9dmFyIGg9UShhLEguSi5ZZSksbD1mdW5jdGlvbihJLEcpe3ZhciBOPVIoYSxHKTtOJiYoY1tJXT1oP1pzKE4pOk4pfTtsKCJ1cmwiLEYuRC56YSk7bCgicmVmIixGLkQuVWEpO2woInRvcCIsRi5ELlBlKTt2YXIgbj1ndChhLEYuRC5CZCxGLkQuQ2QpO24mJihjLmdjbGF3X3NyYz1uKTt2YXIgcD1ndChhLEYuRC5maCxGLkQuZ2gpO3AmJihjLmdjbGdiX3NyYz1wKTt2YXIgcT1mdW5jdGlvbihJLEcpe2Zvcih2YXIgTj1tKE9iamVjdC5rZXlzKEkpKSxTPU4ubmV4dCgpOyFTLmRvbmU7Uz1OLm5leHQoKSl7dmFyIFc9Uy52YWx1ZTtlaVtXXSYmdHlwZW9mIElbV109PT0ic3RyaW5nIiYmKEdbImV4dC4iK2VpW1ddXT1JW1ddKX19LHI9UihhLEYuRC5XYyk7ciYmCnEocixjKTt2YXIgdD1ldihhKSx1PXQuVm47bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLHQua2UpO2J2KGMsUihhLEYuRC5lZCkpO3ZhciB2PVIoYSxGLkQuTmUpO3YhPT12b2lkIDAmJnYhPT0iIiYmKGMudmRuYz1TdHJpbmcodikpO3ZhciB4PVIoYSxGLkQuTGQpO3ghPT12b2lkIDAmJihjLnNoZj14KTt2YXIgeT1SKGEsRi5ELlRjKTt5IT09dm9pZCAwJiYoYy5kZWxjPXkpO2lmKGIhPT1YLlYuWWQpe3ZhciB6PWZ2KHUpO3omJihjLmRhdGE9eil9dmFyIEM9UihhLEYuRC5IYSk7aWYoQyYmKGI9PT1YLlYueGF8fGI9PT1YLlYuWWR8fGI9PT1YLlYuWmR8fGI9PT1YLlYuemQpKXt2YXIgRD1uaShDKTtEIT09dm9pZCAwJiYoYy5pZWRlbGQ9RCk7Yy5pdGVtPWhpKEMpfWh0KGEsYyk7Y3YoYSxjKTtRKGEsSC5KLkloKSYmKGMuYWVjcz0iMSIpO2IhPT1YLlYueGF8fFEoYSxILkouRWMpfHxRKGEsSC5KLm9iKXx8KGMuY2F0ZWdvcnk9ImFjcmNwX3YxXzUxMiIpO3JldHVybiBjfSwKZXY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9e30sZD1RKGEsSC5KLmRhKSxlPW0oZXUoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9UihhLGcpO2lmKGghPT12b2lkIDApaWYoU2IoZywiXyYiKSliW2cuc3Vic3RyaW5nKDIpXT1oO2Vsc2UgaWYoZWkuaGFzT3duUHJvcGVydHkoZykpe2lmKGchPT1GLkQuRWl8fGQ9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSl7dmFyIGw9ZWlbZ107bCYmKGchPT1GLkQuTmQmJmchPT1GLkQuTWR8fE0oNTA0KT9iW2xdPWg6Y1tnXT1oKX19ZWxzZSBjW2ddPWh9cmV0dXJue2tlOmIsVm46Y319O3ZhciBtdj17Tmc6InZhbHVlIixwYjoiY29udmVyc2lvbkNvdW50IixPZzoxfSxudj17Tmc6InRpbWVvdXRzIixwYjoidGltZW91dHMiLE9nOjB9LG92PXtOZzoiZW9wQ291bnQiLHBiOiJlbmRPZlBhZ2VDb3VudCIsT2c6MH0scHY9e05nOiJlcnJvcnMiLHBiOiJlcnJvcnMiLE9nOjB9LHF2PVttdixudixwdixvdl07ZnVuY3Rpb24gcnYoYSxiKXtiPWI9PT12b2lkIDA/MTpiO2lmKCFzdihhKSlyZXR1cm57fTt2YXIgYz10dihxdiksZD1jW2EucGJdO2lmKGQ9PT12b2lkIDB8fGQ9PT0tMSlyZXR1cm4gYzt2YXIgZT17fSxmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYywoZVthLnBiXT1kK2IsZSkpO3JldHVybiB1dihmKT9mOmN9CmZ1bmN0aW9uIHR2KGEpe3ZhciBiO2E6e3ZhciBjPW5yKCJnY2xfY3RyIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7dHJ5e2I9InZhbHVlImluIGQmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCI/ZC52YWx1ZTp2b2lkIDA7YnJlYWsgYX1jYXRjaChwKXt9fWI9dm9pZCAwfWZvcih2YXIgZT1iLGY9e30sZz1tKGEpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2lmKGUmJnN2KGwpKXt2YXIgbj1lW2wuTmddO249PT12b2lkIDB8fE51bWJlci5pc05hTihuKT9mW2wucGJdPS0xOmZbbC5wYl09TnVtYmVyKG4pfWVsc2UgZltsLnBiXT0tMX1yZXR1cm4gZn0KZnVuY3Rpb24gdXYoYSxiKXtiPWJ8fHt9O2Zvcih2YXIgYz1OYigpLGQ9dXEoYixjLCEwKSxlPXt9LGY9bShxdiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWUsbD1hW2gucGJdO2whPT12b2lkIDAmJmwhPT0tMSYmKGVbaC5OZ109bCl9ZS5jcmVhdGlvblRpbWVNcz1jO3JldHVybiBrcigiZ2NsX2N0ciIse3ZhbHVlOmUsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKX0pPT09MD8hMDohMX1mdW5jdGlvbiBzdihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLmZ0fHxZZihhLmZ0KTohMX1mdW5jdGlvbiB2dihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLkFzfHxZZihhLkFzKTohMX07ZnVuY3Rpb24gd3YoKXtpZih4digpKXt2YXIgYT1ucigibGFzdF9jb252cyIpO2lmKGEuZXJyb3I9PT0wJiZhLnZhbHVlJiZ0eXBlb2YgYS52YWx1ZT09PSJvYmplY3QiKXt2YXIgYj1hLnZhbHVlO2lmKGIudmFsdWUmJkFycmF5LmlzQXJyYXkoYi52YWx1ZSkpe3ZhciBjPWIudmFsdWU7aWYoIShjLmxlbmd0aD4xKSl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZih0eXBlb2YgZyE9PSJvYmplY3QifHxnPT09bnVsbHx8dHlwZW9mIGcucmFuZG9tIT09Im51bWJlciJ8fHR5cGVvZiBnLmxhYmVsIT09InN0cmluZyJ8fGcubGFiZWwubGVuZ3RoPjIwMClyZXR1cm47ZC5wdXNoKHtyYW5kb206Zy5yYW5kb20sbGFiZWw6Zy5sYWJlbH0pfXJldHVybiBkfX19fX0KZnVuY3Rpb24geXYoYSxiKXsheHYoKXx8YS5sZW5ndGg+MXx8YS5sZW5ndGg9PT0xJiZhWzBdLmxhYmVsLmxlbmd0aD4yMDB8fChiPWJ8fHt9LGtyKCJsYXN0X2NvbnZzIix7dmFsdWU6YSxleHBpcmVzOk51bWJlcih1cShiKS5leHBpcmVzKX0pKX1mdW5jdGlvbiB4digpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkmJllmKDExKX07ZnVuY3Rpb24genYoYSl7dmFyIGI9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2NDcpO3JldHVybiBhP1N0cmluZyhiXm5nKGEpJjIxNDc0ODM2NDcpOlN0cmluZyhiKX1mdW5jdGlvbiBBdihhKXtyZXR1cm5benYoYSksTWF0aC5yb3VuZChOYigpLzFFMyldLmpvaW4oIi4iKX1mdW5jdGlvbiBCdihhLGIsYyxkLGUpe3ZhciBmPXJxKGIpLGc7cmV0dXJuKGc9Z3EoYSxmLHNxKGMpLGQsZSkpPT1udWxsP3ZvaWQgMDpnLkNyfTt2YXIgQ3Y9WyIxIl0sRHY9e30sRXY9e307ZnVuY3Rpb24gRnYoYSl7cmV0dXJuIEV2W0d2KGEpXX1mdW5jdGlvbiBIdihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPUd2KGEucHJlZml4KTtpZihEdltjXSlJdihhKSxKdihhKTtlbHNlIGlmKEt2KGMsYS5wYXRoLGEuZG9tYWluKSl7dmFyIGQ9RnYoYS5wcmVmaXgpfHx7aWQ6dm9pZCAwLGtjOnZvaWQgMH07YiYmTHYoYSxkKTtJdihhKTtKdihhKX1lbHNle3ZhciBlPVRqKCJhdWlkZGMiKTtpZihlKXNiKCJUQUdHSU5HIiwxNyksRHZbY109ZTtlbHNlIGlmKGIpe3ZhciBmPUd2KGEucHJlZml4KSxnPUF2KCk7TXYoZixnLGEpO0t2KGMsYS5wYXRoLGEuZG9tYWluKTtJdihhLCEwKTtKdihhLCEwKX19fQpmdW5jdGlvbiBJdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnN2KG12KSYmb3IoImdjbF9jdHIiKTtpZih2dihtdikmJnR2KFttdl0pW212LnBiXT09PS0xKXtmb3IodmFyIGM9e30sZD0oY1ttdi5wYl09MCxjKSxlPW0ocXYpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2chPT1tdiYmdnYoZykmJihkW2cucGJdPTApfXV2KGQsYSl9fWZ1bmN0aW9uIEp2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmeHYoKSYmb3IoImxhc3RfY29udnMiKTshQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pfHwhWWYoMTIpfHx3digpfHx5dihbXSxhKX0KZnVuY3Rpb24gTHYoYSxiKXt2YXIgYz1HdihhLnByZWZpeCksZD1EdltjXTtpZihkKXt2YXIgZT1kLnNwbGl0KCIuIik7aWYoZS5sZW5ndGg9PT0yKXt2YXIgZj1OdW1iZXIoZVsxXSl8fDA7aWYoZil7dmFyIGc9ZDtZZigxOSkmJmIuZmk/Zz1kKyIuIisoYi5zZXNzaW9uSWR8fCItLi0iKSsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkrIi4iK2IuZmkrIi4iKyhiLkxjP2IuTGM6TWF0aC5mbG9vcihOYigpLzFFMykpOmIuc2Vzc2lvbklkJiYoZz1kKyIuIitiLnNlc3Npb25JZCsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkpO012KGMsZyxhLGYqMUUzKX19fX1mdW5jdGlvbiBNdihhLGIsYyxkKXt2YXIgZTtlPVsiMSIsdHEoYy5kb21haW4sYy5wYXRoKSxiXS5qb2luKCIuIik7dmFyIGY9dXEoYyxkKTtmLk1jPU52KCk7b3EoYSxlLGYpfQpmdW5jdGlvbiBLdihhLGIsYyl7dmFyIGQ9QnYoYSxiLGMsQ3YsTnYoKSk7aWYoIWQpcmV0dXJuITE7T3YoYSxkKTtyZXR1cm4hMH1mdW5jdGlvbiBPdihhLGIpe3ZhciBjPWIuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpRXZbYV09e3Nlc3Npb25JZDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtlbHNlIGlmKGMubGVuZ3RoPj0yJiYoRHZbYV09Y1swXSsiLiIrY1sxXSxjLnNoaWZ0KCksYy5zaGlmdCgpLGMubGVuZ3RoPj0zKSl7dmFyIGQ9e3Nlc3Npb25JZDpjWzBdPT09Ii0iP3ZvaWQgMDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtpZihZZigxOSkmJmMubGVuZ3RoPj02KXt2YXIgZT1jWzNdKyIuIitjWzRdLGY9TnVtYmVyKGNbNV0pfHwwO2UmJmYhPT0wJiYoZC5maT1lLGQuTGM9Zil9RXZbYV09ZH19ZnVuY3Rpb24gR3YoYSl7cmV0dXJuKGF8fCJfZ2NsIikrIl9hdSJ9CmZ1bmN0aW9uIFB2KGEpe2Z1bmN0aW9uIGIoKXtCbChjKSYmYSgpfXZhciBjPU52KCk7SGwoZnVuY3Rpb24oKXtiKCk7QmwoYyl8fElsKGIsYyl9LGMpfWZ1bmN0aW9uIFF2KGEpe3ZhciBiPVVxKCEwKSxjPUd2KGEucHJlZml4KTtQdihmdW5jdGlvbigpe3ZhciBkPWJbY107aWYoZCl7T3YoYyxkKTt2YXIgZT1OdW1iZXIoRHZbY10uc3BsaXQoIi4iKVsxXSkqMUUzO2lmKGUpe3NiKCJUQUdHSU5HIiwxNik7dmFyIGY9dXEoYSxlKTtmLk1jPU52KCk7dmFyIGc9WyIxIix0cShhLmRvbWFpbixhLnBhdGgpLGRdLmpvaW4oIi4iKTtvcShjLGcsZil9fX0pfWZ1bmN0aW9uIFJ2KGEsYixjLGQsZSl7ZT1lfHx7fTt2YXIgZj1mdW5jdGlvbigpe3ZhciBnPXt9LGg9QnYoYSxlLnBhdGgsZS5kb21haW4sQ3YsTnYoKSk7aCYmKGdbYV09aCk7cmV0dXJuIGd9O1B2KGZ1bmN0aW9uKCl7YXIoZixiLGMsZCl9KX0KZnVuY3Rpb24gTnYoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX07CnZhciBUdj1mdW5jdGlvbihhKXtyZXR1cm4gU3YoYSx7T2o6ITB9KS5TaH0sU3Y9ZnVuY3Rpb24oYSxiKXthPWF8fHt9O2lmKCFYbyhGLkQua2EpKXJldHVybnt9O3ZhciBjPVV2KGEpLGQ9Yy5TaCxlPWMuaWs7Yi5PaiYmIWQmJihkPUF2KCkpO2IuWGgmJiFlJiYoZT1BdigpKTt2YXIgZj17fTtkJiYoZi5zZXNzaW9uSWQ9ZCk7ZSYmKGYuZmk9ZSk7dmFyIGc9RnYoSHIoYS5wcmVmaXgpKTtnJiYoYi5PaiYmIWIuWGg/Zy5MYyYmKGYuTGM9Zy5MYyk6Yi5YaCYmIWIuT2omJmcua2MmJihmLmtjPWcua2MpKTtpZihkfHxlKXt2YXIgaD1hLGw9R3YoaC5wcmVmaXgpO0x2KGgsZik7ZGVsZXRlIER2W2xdO2RlbGV0ZSBFdltsXTtLdihsLGgucGF0aCxoLmRvbWFpbil9cmV0dXJuIFV2KGEpfSxVdj1mdW5jdGlvbihhKXtpZighWG8oRi5ELmthKSlyZXR1cm57fTthPWF8fHt9O0h2KGEsITEpO3ZhciBiPUZ2KEhyKGEucHJlZml4KSk7aWYoIWIpcmV0dXJue307dmFyIGM9TmIoKSxkPXt9O2lmKGMtCmIua2MqMUUzPD0oTSg0NTApfHxNKDQ0Myk/ODY0RTU6MThFNSkpe3ZhciBlPWIuc2Vzc2lvbklkO2lmKGUpe3ZhciBmPWUuc3BsaXQoIi4iKTtmLmxlbmd0aD09PTImJmMtKE51bWJlcihmWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuU2g9ZSl9fWlmKGIuTGMmJmMtYi5MYyoxRTM8PTg2NEU1KXt2YXIgZz1iLmZpO2lmKGcpe3ZhciBoPWcuc3BsaXQoIi4iKTtoLmxlbmd0aD09PTImJmMtKE51bWJlcihoWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuaWs9Zyl9fXJldHVybiBkfTt2YXIgVnY9ImVtYWlsIGVtYWlsX2FkZHJlc3Mgc2hhMjU2X2VtYWlsX2FkZHJlc3MgcGhvbmVfbnVtYmVyIHNoYTI1Nl9waG9uZV9udW1iZXIgZmlyc3RfbmFtZSBsYXN0X25hbWUiLnNwbGl0KCIgIiksV3Y9ImZpcnN0X25hbWUgc2hhMjU2X2ZpcnN0X25hbWUgbGFzdF9uYW1lIHNoYTI1Nl9sYXN0X25hbWUgc3RyZWV0IHNoYTI1Nl9zdHJlZXQgY2l0eSByZWdpb24gY291bnRyeSBwb3N0YWxfY29kZSIuc3BsaXQoIiAiKTtmdW5jdGlvbiBYdihhLGIpe2lmKCFiLl90YWdfbWV0YWRhdGEpe2Zvcih2YXIgYz17fSxkPTAsZT0wO2U8YS5sZW5ndGg7ZSsrKWQrPVl2KGFbZV0sYixjKT8xOjA7ZD4wJiYoYi5fdGFnX21ldGFkYXRhPWMpfX0KZnVuY3Rpb24gWXYoYSxiLGMpe3ZhciBkPWJbYV07aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpcmV0dXJuITE7Y1thXT1BcnJheS5pc0FycmF5KGQpP2QubWFwKGZ1bmN0aW9uKCl7cmV0dXJue21vZGU6ImMifX0pOnttb2RlOiJjIn07cmV0dXJuITB9ZnVuY3Rpb24gWnYoYSl7aWYoTSg1MjMpJiZhKXtYdihWdixhKTtmb3IodmFyIGI9QmIoYS5hZGRyZXNzKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZCYmWHYoV3YsZCl9dmFyIGU9YS5ob21lX2FkZHJlc3M7ZSYmWHYoV3YsZSl9fQpmdW5jdGlvbiAkdihhLGIsYyl7ZnVuY3Rpb24gZChmLGcpe2c9U3RyaW5nKGcpLnN1YnN0cmluZygwLDEwMCk7ZS5wdXNoKCIiK2YrZW5jb2RlVVJJQ29tcG9uZW50KGcpKX1pZighYylyZXR1cm4iIjt2YXIgZT1bXTtkKCJpIixTdHJpbmcoYSkpO2QoImYiLGIpO2MubW9kZSYmZCgibSIsYy5tb2RlKTtjLmlzUHJlSGFzaGVkJiZkKCJwIiwiMSIpO2MucmF3TGVuZ3RoJiZkKCJyIixTdHJpbmcoYy5yYXdMZW5ndGgpKTtjLm5vcm1hbGl6ZWRMZW5ndGgmJmQoIm4iLFN0cmluZyhjLm5vcm1hbGl6ZWRMZW5ndGgpKTtjLmxvY2F0aW9uJiZkKCJsIixjLmxvY2F0aW9uKTtjLnNlbGVjdG9yJiZkKCJzIixjLnNlbGVjdG9yKTtyZXR1cm4gZS5qb2luKCIuIil9O3ZhciBhdz12b2lkIDA7ZnVuY3Rpb24gYncoKXtpZighYXcpe3ZhciBhPW9tKGptLmJhLm9wLG5ldyBNYXApO2F3PW5ldyBvZyhhKX1yZXR1cm4gYXd9Owp2YXIgY3c9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGE7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZSE9PSJhZGRyZXNzIiYmZSE9PSJwaG9uZV9udW1iZXIiJiZlIT09InNoYTI1Nl9waG9uZV9udW1iZXIiJiYoYltlXT1hW2VdKX1yZXR1cm4gYn0sZnc9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9WyJ0di4xIl0sZD1bInR2ZC4xIl0sZT1kdyhhKTtpZihlKXJldHVybiBjLnB1c2goZSkse2hhc1VwZDohMSxPbzpjLmpvaW4oIn4iKSxZbjpjLmpvaW4oIn4iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOnZvaWQgMCxpaTp7fSxtZXRhZGF0YVBhcmFtOmI/ZC5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZj17fSxnPTA7dmFyIGg9MCxsPWV3KGEsZnVuY3Rpb24ocSxyLHQpe2grKzt2YXIgdT1xLnZhbHVlLHY7CmlmKHQpe3ZhciB4PXIrIl9fIitnKys7dj0iJHt1c2VyRGF0YS4iK3grInxzaGEyNTZ9IjtmW3hdPXV9ZWxzZSB2PWVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodSkpO3EuaW5kZXghPT12b2lkIDAmJihyKz1xLmluZGV4KTtjLnB1c2gocisiLiIrdik7aWYoYil7dmFyIHk9JHYoaCxyLHEubWV0YWRhdGEpO3kmJmQucHVzaCh5KX19KS5oYXNVcGQsbj1kLmpvaW4oIn4iKTt2YXIgcD1jLmpvaW4oIn4iKTtyZXR1cm57aGFzVXBkOmwsT286cCxpaTp7dXNlckRhdGE6Zn0sWW46InR2LjF+JHsiKyhwKyJ8IisoTSg1NTUpPyJlbmNyeXB0X3dpdGhfbWVtbyI6ImVuY3J5cHQiKSsifSIpLGVuY3J5cHRpb25LZXlTdHJpbmc6RSg0MyksbWV0YWRhdGFQYXJhbTpiP246dm9pZCAwfX0saHc9ZnVuY3Rpb24oYSl7aWYoIShhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkpcmV0dXJuITE7CnZhciBiPWd3KGEpO3JldHVybiBldyhiLGZ1bmN0aW9uKCl7fSkuaGFzVXBkfSxldz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9mdW5jdGlvbigpe306Yjtmb3IodmFyIGM9ITEsZD0hMSxlPW0oYSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZy52YWx1ZSl7dmFyIGg9aXdbZy5uYW1lXTtpZihoKXt2YXIgbD1qdyhnKTtsJiYoYz0hMCk7ZD0hMDtiKGcsaCxsKX19fXJldHVybntoYXNVcGQ6ZCxoYXNVcGRUb0hhc2g6Y319LGp3PWZ1bmN0aW9uKGEpe3ZhciBiPWt3KGEubmFtZSksYz0vXmVcZCskLy50ZXN0KGEudmFsdWUpLGQ7aWYoZD1iJiYhYyl7dmFyIGU9YS52YWx1ZTtkPSEobHcudGVzdChlKXx8eWkudGVzdChlKSl9cmV0dXJuIGR9LGt3PWZ1bmN0aW9uKGEpe3JldHVybiBtdy5pbmRleE9mKGEpIT09LTF9LHN3PWZ1bmN0aW9uKGEsYixjKXtpZih5YihBLlByb21pc2UpKXRyeXt2YXIgZD0hMTt2YXIgZT1ndyhhLGQpLGY9bncoZSkudGhlbihmdW5jdGlvbihoKXt2YXIgbD1oLnliLG49bC5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIVNiKHEubmFtZSwicmF3Iil9KSxwPW93KHt5YjpufSk7cmV0dXJue3Jlc3VsdDp7cGFyYW06cC5wYXJhbSxoYXNVcGRUb0hhc2g6cC5oYXNVcGRUb0hhc2gsaGFzVXBkOnAuaGFzVXBkLGhhZEVycm9yOnAuaGFkRXJyb3IsbWV0YWRhdGFQYXJhbTpwLm1ldGFkYXRhUGFyYW19LHliOmx9fSk7cmV0dXJuIGYudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gaC5yZXN1bHR9KX1jYXRjaChoKXt9fSxxdz1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9LG93PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPWEueWIsZD1bInR2LjEiXSxlPVsidHZkLjEiXSxmPWR3KGMpO2lmKGYpcmV0dXJuIGQucHVzaChmKSx7cGFyYW06ZC5qb2luKCJ+IiksaGFzVXBkVG9IYXNoOiExLGhhc1VwZDohMSxoYWRFcnJvcjohMCxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZz1jLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hancocSl9KSxoPTAsbD1ldyhnLGZ1bmN0aW9uKHEscil7aCsrO3ZhciB0PXEudmFsdWUsdT1xLmluZGV4O3UhPT12b2lkIDAmJihyKz11KTtkLnB1c2gocisiLiIrdCk7aWYoYil7dmFyIHY9JHYoaCxyLHEubWV0YWRhdGEpO3YmJmUucHVzaCh2KX19KSxuPWwuaGFzVXBkVG9IYXNoLHA9bC5oYXNVcGQ7cmV0dXJue3BhcmFtOmVuY29kZVVSSUNvbXBvbmVudChkLmpvaW4oIn4iKSksCmhhc1VwZFRvSGFzaDpuLGhhc1VwZDpwLGhhZEVycm9yOiExLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9fSxkdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4gaXcuZXJyb3JfY29kZSsiLiIrYVswXS52YWx1ZX0scHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuITE7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoaXdbZC5uYW1lXSYmZC52YWx1ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZ3c9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtpZihBLmxvY2F0aW9uLnByb3RvY29sIT09Imh0dHBzOiIpcmV0dXJuIGMucHVzaCh7bmFtZToiZXJyb3JfY29kZSIsdmFsdWU6ImUzIixpbmRleDp2b2lkIDB9KSxjO3ZhciBkPWMucHVzaCxlPWQuYXBwbHksZj1bXSwKZz1mLmNvbmNhdCxoLGw9YS5fdGFnX21ldGFkYXRhfHx7fTtoPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJlbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzcyxhYjpsLmVtYWlsLG1kOmwuc2hhMjU2X2VtYWlsX2FkZHJlc3N9LHV3KSksdyh0dyh7bmFtZToicGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyLGFiOmwucGhvbmVfbnVtYmVyLG1kOmwuc2hhMjU2X3Bob25lX251bWJlcn0sdncpKSk7dmFyIG49dyhoKSxwLHE9YS5fdGFnX21ldGFkYXRhfHx7fSxyPWEuaG9tZV9hZGRyZXNzfHx7fSx0PXIuX3RhZ19tZXRhZGF0YXx8e307cD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lLGFiOnEuZmlyc3RfbmFtZSxtZDpxLnNoYTI1Nl9maXJzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSwKU2E6YS5zaGEyNTZfbGFzdF9uYW1lLGFiOnEubGFzdF9uYW1lLG1kOnEuc2hhMjU2X2xhc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ci5zdHJlZXQsU2E6ci5zaGEyNTZfc3RyZWV0LGFiOnQuc3RyZWV0LG1kOnQuc2hhMjU2X3N0cmVldH0sd3coeXcpKSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnIuY2l0eSxhYjp0LmNpdHl9LHd3KHl3KSkpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ci5wb3N0YWxfY29kZSxhYjp0LnBvc3RhbF9jb2RlfSx3dyh6dykpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzpyLnJlZ2lvbixhYjp0LnJlZ2lvbn0sd3coeXcpKSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnIuY291bnRyeSxhYjp0LmNvdW50cnl9LHd3KHp3KSkpKTtmb3IodmFyIHU9dyhwKSx2PVtdLHg9QmIoYS5hZGRyZXNzfHx7fSkseT0wO3k8eC5sZW5ndGg7eSsrKXtmb3IodmFyIHo9eFt5XSxDPXouX3RhZ19tZXRhZGF0YXx8e30sRD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIsCnJhdzp6LmZpcnN0X25hbWUsU2E6ei5zaGEyNTZfZmlyc3RfbmFtZSxhYjpDLmZpcnN0X25hbWUsbWQ6Qy5zaGEyNTZfZmlyc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzp6Lmxhc3RfbmFtZSxTYTp6LnNoYTI1Nl9sYXN0X25hbWUsYWI6Qy5sYXN0X25hbWUsbWQ6Qy5zaGEyNTZfbGFzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6InN0cmVldCIscmF3Onouc3RyZWV0LFNhOnouc2hhMjU2X3N0cmVldCxhYjpDLnN0cmVldCxtZDpDLnNoYTI1Nl9zdHJlZXR9LHl3KSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnouY2l0eSxhYjpDLmNpdHl9LHl3KSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzp6LnBvc3RhbF9jb2RlLGFiOkMucG9zdGFsX2NvZGV9LHp3KSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ei5yZWdpb24sYWI6Qy5yZWdpb259LHl3KSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnouY291bnRyeSxhYjpDLmNvdW50cnl9LHp3KSkpLEk9MDtJPApELmxlbmd0aDtJKyspRFtJXS5pbmRleD15O3YucHVzaC5hcHBseSh2LHcoRCkpfWUuY2FsbChkLGMsZy5jYWxsKGYsbix1LHcodikpKTtpZihiJiZCcCgpKXt2YXIgRz1jLnB1c2gsTj1HLmFwcGx5LFM9W107Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19lbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzc30pKSx3KEF3KHtuYW1lOiJyYXdfcGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyfSkpKSk7Zm9yKHZhciBXPUJiKGEuYWRkcmVzc3x8e30pLGVhPTA7ZWE8Vy5sZW5ndGg7ZWErKyl7dmFyIGphPVdbZWFdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmphLmZpcnN0X25hbWUsU2E6amEuc2hhMjU2X2ZpcnN0X25hbWV9LGVhKSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmphLmxhc3RfbmFtZSxTYTpqYS5zaGEyNTZfbGFzdF9uYW1lfSwKZWEpKSx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6amEuc3RyZWV0LFNhOmphLnNoYTI1Nl9zdHJlZXR9LGVhKSkpKX1pZihhLmZpcnN0X25hbWV8fGEuaG9tZV9hZGRyZXNzKXtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZX0pKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsU2E6YS5zaGEyNTZfbGFzdF9uYW1lfSkpKSk7dmFyIGZhPWEuaG9tZV9hZGRyZXNzfHx7fTtTLnB1c2guYXBwbHkoUyx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6ZmEuc3RyZWV0LFNhOmZhLnNoYTI1Nl9zdHJlZXR9KSkpfU4uY2FsbChHLGMsdyhTKSl9cmV0dXJuIGN9LHd3PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtQKDY0KTtyZXR1cm4gYShiKX19LEF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W107aWYoYS5TYSlyZXR1cm4gYztmb3IodmFyIGQ9CkJiKGEucmF3KSxlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPUJ3KGRbZV0pO2lmKGYmJiF5aS50ZXN0KGYpKWlmKC9eZVxkKyQvLnRlc3QoZikpYy5wdXNoKHtuYW1lOmEubmFtZSx2YWx1ZTpmLGluZGV4OmJ9KTtlbHNle3ZhciBnPWMsaD1nLnB1c2gsbD1hLm5hbWUsbjt2YXIgcD1BO3RyeXtuPUJpKEFycmF5LmZyb20oWmIoZikpLHApfWNhdGNoKHEpe249ImUwIn1oLmNhbGwoZyx7bmFtZTpsLHZhbHVlOm4saW5kZXg6Yn0pfX1yZXR1cm4gY30sdHc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPU0oNTIzKSxlPWEucmF3LGY9ZD9hLmFiOnZvaWQgMDtDdyhlLCExKTthLlNhJiYoZSYmUCg5MCksZT1hLlNhLGY9ZD9hLm1kOnZvaWQgMCxDdyhlLCEwKSk7Zm9yKHZhciBnPUJiKGUpLGg9QmIoZiksbD0wO2w8Zy5sZW5ndGg7KytsKXt2YXIgbjt2YXIgcD1hLm5hbWUscT1iLHI9aFtsXSx0PUJ3KGdbbF0pO2lmKHQhPT0iIilpZih5aS50ZXN0KHQpKXtyJiYoci5pc1ByZUhhc2hlZD0hMCk7CnZhciB1PXtuYW1lOnAsdmFsdWU6dCxpbmRleDp2b2lkIDB9O3ImJih1Lm1ldGFkYXRhPXIpO249dX1lbHNle3ZhciB2PXEodCkseD17bmFtZTpwLHZhbHVlOnYsaW5kZXg6dm9pZCAwfTtyJiYoeC5tZXRhZGF0YT1yLHYmJihyLnJhd0xlbmd0aD1TdHJpbmcodCkubGVuZ3RoLHIubm9ybWFsaXplZExlbmd0aD12Lmxlbmd0aCkpO249eH1lbHNlIG49dm9pZCAwO3ZhciB5PW47eSYmYy5wdXNoKHkpfXJldHVybiBjfSxDdz1mdW5jdGlvbihhLGIpe2lmKHpiKGEpfHxBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz1CYihhKSxkPTA7ZDxjLmxlbmd0aDsrK2Qpe3ZhciBlPUJ3KGNbZF0pLGY9eWkudGVzdChlKTtiJiYhZiYmUCg4OSk7IWImJmYmJlAoODgpfX0sRHc9ZnVuY3Rpb24oYSl7dmFyIGI9YT9ndyhhKTpbXTtyZXR1cm4gb3coe3liOmJ9KX0sRXc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wJiZ5YihBLlByb21pc2UpP2d3KGEpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJgprdyhiLm5hbWUpJiYheWkudGVzdChiLnZhbHVlKX0pOiExfSxCdz1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjp6YihhKT9MYihTdHJpbmcoYSkpOiJlMCJ9LHp3PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoRncsIiIpfSx4dz1mdW5jdGlvbihhKXtyZXR1cm4geXcoYS5yZXBsYWNlKC9ccy9nLCIiKSl9LHl3PWZ1bmN0aW9uKGEpe3JldHVybiBMYihhLnJlcGxhY2UoR3csIiIpLnRvTG93ZXJDYXNlKCkpfSx2dz1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgvW1xzLSgpLy5dL2csIiIpO2EuY2hhckF0KDApIT09IisiJiYoYT0iKyIrYSk7cmV0dXJuKE0oNTk3KT9IdzpJdykudGVzdChhKT9hOiJlMCJ9LHV3PWZ1bmN0aW9uKGEpe3ZhciBiPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiQCIpO2lmKGIubGVuZ3RoPT09Mil7dmFyIGM9YlswXTsvXihnbWFpbHxnb29nbGVtYWlsKVwuLy50ZXN0KGJbMV0pJiYoYz1jLnJlcGxhY2UoL1wuL2csIiIpKTtjPWMrIkAiK2JbMV07aWYoSncudGVzdChjKSlyZXR1cm4gY31yZXR1cm4iZTAifSwKS3c9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYil7Yi52YWx1ZSYma3coYi5uYW1lKSYmKGIudmFsdWU9RGkoYi52YWx1ZSkpfSkse3liOmF9fWNhdGNoKGIpe3JldHVybnt5YjpbXX19fSxudz1mdW5jdGlvbihhKXtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpfSk/eWIoQS5Qcm9taXNlKT9Qcm9taXNlLmFsbChhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKT9BaShiLnZhbHVlKS50aGVuKGZ1bmN0aW9uKGMpe2IudmFsdWU9Y30pOlByb21pc2UucmVzb2x2ZSgpfSkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57eWI6YX19KS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt5YjpbXX19KTp7dGhlbjpmdW5jdGlvbihiKXtiKHt5YjpbXX0pfX06UHJvbWlzZS5yZXNvbHZlKHt5YjphfSl9LEd3PS9bMC05YH4hQCMkJV4mKigpX1wtKz06Ozw+LC4/fC9cXFtcXV0vZyxKdz0vXlxTK0BcUytcLlxTKyQvLApJdz0vXlwrXGR7MTAsMTV9JC8sSHc9L15cK1xkezcsMTV9JC8sRnc9L1sufl0vZyxsdz0vXlswLTlBLVphLXpfLV17NDN9JC8sTHc9WyJyZW0iLCJycG4iLCJyZm4iLCJybG4iLCJyc2EiXSxNdz17fSxpdz0oTXcuZW1haWw9ImVtIixNdy5waG9uZV9udW1iZXI9InBuIixNdy5maXJzdF9uYW1lPSJmbiIsTXcubGFzdF9uYW1lPSJsbiIsTXcuc3RyZWV0PSJzYSIsTXcuY2l0eT0iY3QiLE13LnJlZ2lvbj0icmciLE13LmNvdW50cnk9ImNvIixNdy5wb3N0YWxfY29kZT0icGMiLE13LmVycm9yX2NvZGU9ImVjIixNdy5yYXdfZW1haWw9InJlbSIsTXcucmF3X3Bob25lX251bWJlcj0icnBuIixNdy5yYXdfZmlyc3RfbmFtZT0icmZuIixNdy5yYXdfbGFzdF9uYW1lPSJybG4iLE13LnJhd19zdHJlZXQ9InJzYSIsTXcpO3ZhciBtdz1PYmplY3QuZnJlZXplKFsiZW1haWwiLAoicGhvbmVfbnVtYmVyIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInN0cmVldCJdKTsKdmFyIFF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9bHYoYSksZD1mdW5jdGlvbihwKXt2YXIgcT1DcChhKTtxJiYoYy50YWdfZXhwPXEpO2IocCl9LGU9UShhLEguSi5kYSksZj1RKGEsSC5KLllhKSxnPVhvKFtGLkQubWEsRi5ELmthXSksaDthOnN3aXRjaChlKXtjYXNlIFguVi54YTpjYXNlIFguVi56ZDpjYXNlIFguVi5aZDpjYXNlIFguVi5PYjpjYXNlIFguVi5GYjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWlmKGgmJmYmJmcpaWYoUShhLEguSi5mZCkpaWYoTncoYSkpZChjKTtlbHNle3ZhciBsPXN3KGYsITApO093KGwsYSxjLGQpfWVsc2V7dmFyIG47YTp7dHJ5e249b3coS3coZ3coZikpKTticmVhayBhfWNhdGNoKHApe31uPXZvaWQgMH1pZihuKXRyeXtQdyhjLGEpKG4pfWNhdGNoKHApe31kKGMpfWVsc2UgZGVsZXRlIGMuZWNfbW9kZSxkKGMpfSxOdz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtyZXR1cm4gYj09PVguVi5GYnx8Yj09PVguVi5PYn0sUnc9ZnVuY3Rpb24oYSwKYil7cmV0dXJuIGEhPT0xfHxRKGIsSC5KLmRhKT09PVguVi5PYiYmIU0oNDQ1KT8hMTohIVEoYixILkouZmQpfSxQdz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtSdyhjLmVuY3J5cHRpb25SZXN1bHQ/MTowLGIpfHwoYS5lbT1jLnBhcmFtKTtpZihjLmhhc1VwZCl7dmFyIGQ9U3coYik7ZCYmKGEuZWNzaWQ9ZCl9TSg1MjMpJiZjLm1ldGFkYXRhUGFyYW0mJihhLmVtZD1jLm1ldGFkYXRhUGFyYW0pO319LFN3PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkZiJiYKIU0oNDQzKSl7dmFyIGI9UShhLEguSi5HYSk7cmV0dXJuIFEoYSxILkouemopfHxUdihiKX19LE93PWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEpdHJ5e2EudGhlbihQdyhjLGIpKS50aGVuKGZ1bmN0aW9uKCl7ZChjKX0pO3JldHVybn1jYXRjaChlKXt9ZChjKX07dmFyIFR3PU9iamVjdC5mcmVlemUoe2djcDoiMSIsc3NjdGU6IjEiLGN0X2Nvb2tpZV9wcmVzZW50OiIxIn0pOwp2YXIgVXc9ZnVuY3Rpb24oYSxiKXthdi5jYWxsKHRoaXMsYSxiLDEsITEpfTt3YShVdyxhdik7VXcucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe1F3KGEsZnVuY3Rpb24oZCl7UShhLEguSi5haikmJmRlbGV0ZSBkLml0ZW07UShhLEguSi5vYikmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxUdyk7dmFyIGU9Z2soYi5JYyk7ZSYmKGQuX3VpcD1lKTt2YXIgZj0iPyIra3YoZCk7YyhmKX0pfTt2YXIgVnc9bmV3IFV3KDIyLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxXdz1uZXcgVXcoMjMsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFh3PW5ldyBVdyg2MCxbXSksWXc9ZnVuY3Rpb24oKXt9O3dhKFl3LG91KTtZdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuemQmJlEoYSxILkoubGopP1t7ZW5kcG9pbnQ6WG8oZnApP1EoYSxILkoub2IpP1d3OlZ3Olh3LG1ldGhvZDpsdX1dOltdfTt2YXIgWnc9bmV3IFl3OwoKdmFyICR3PWZ1bmN0aW9uKGEpe2lmKE9wKCk9PT0yKXJldHVybiExO3ZhciBiPVEoYSxILkouZGEpLGM9W1guVi54YSxYLlYudWJdO00oNTkzKSYmYy5wdXNoKFguVi5ZZCk7cmV0dXJuIGMuaW5jbHVkZXMoYik/ITA6ITF9LGF4PWZ1bmN0aW9uKGEpe3JldHVybiBNKDUwMCkmJk9wKCkhPT0yJiZRKGEsSC5KLmRhKT09PVguVi54YX0sYng9ZnVuY3Rpb24oYSl7dmFyIGI9SHIoYS5wcmVmaXgpO2I9PT0iX2djbCImJihiPSIiKTtyZXR1cm4gYn0sY3g9ZnVuY3Rpb24oYSl7aWYoUihhLEYuRC5TYil8fFIoYSxGLkQuSmUpKXt2YXIgYj1SKGEsRi5ELkdkKSxjPUVkKFEoYSxILkouR2EpLG51bGwpLGQ9SHIoYy5wcmVmaXgpO2MucHJlZml4PWQ9PT0iX2djbCI/IiI6ZDtpZihSKGEsRi5ELlNiKSl7dmFyIGU9WHMoYixjLCFRKGEsSC5KLk5tKSxheChhKSk7VihhLEguSi5ObSwhMCk7ZSYmVShhLEYuRC5xbSxlKX1pZihSKGEsRi5ELkplKSl7dmFyIGY9UHMoYixjKS5ScjtmJiZVKGEsRi5ELk1sLApmKX19fSxpeD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgZHg7c3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi54YTpVKGEsRi5ELmZtLFVxKCExKS5fZ3MpO2V4KGEpO2Z4KGEsYik7Z3goYSxiKTtpZighYi5qbygpfHxNKDQyMSkpe3ZhciBjPW5tKGptLmJhLlZlKSxkPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoYyYmYy5nY2xpZCYmIWQmJiFRKGEsSC5KLlhlKSl7dmFyIGU9U3RyaW5nKGMuZ2NsaWQpLGY9bmV3IGVyO2ZyKGYsNik7Yi5Daih7dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDplLHFhOmYsb2E6WzRdfSl9fWJyZWFrO2Nhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmV4KGEpO2Z4KGEsYik7YnJlYWs7Y2FzZSBYLlYudWI6aWYoTSg0NTgpJiZYbyhGLkQua2EpJiZRKGEsSC5KLndmKSl7dmFyIGc9UShhLEguSi5HYSk7aHgoYSxiLGJ4KGcpKX1icmVhaztjYXNlIFguVi5ZZDpleChhKSxmeChhLGIpLGd4KGEsYil9Yi5PdChhKX0sZng9ZnVuY3Rpb24oYSxiKXtpZihYbyhGLkQua2EpJiYKUShhLEguSi53Zikpe3ZhciBjPVEoYSxILkouR2EpLGQ9YngoYyksZT1ScyhkKTtVKGEsRi5ELkJlLGUuRWcpO1UoYSxGLkQuRGUsZS5XaCk7VShhLEYuRC5DZSxlLlVoKTtNKDQyMSk/KGp4KGEsYixjLGQpLGh4KGEsYixkKSk6V3MoZCk/angoYSxiLGMsZCk6aHgoYSxiLGQpfX0saHg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSR3KGEpO1RzKGMsImdjbGlkIiwiZ2NsYXciLGQpLmZvckVhY2goZnVuY3Rpb24oZil7Yi5DaihmKX0pO2IuTG8oKTtpZighYyl7dmFyIGU9T3MoQnIoQXIoKSk/UnAoKTp7fSxNcyk7ZSYmVShhLEYuRC5yaCxlKX19LGp4PWZ1bmN0aW9uKGEsYixjLGQpe1RzKGQsImJyYWlkcyIsImdjbGdiIixheChhKSkuZm9yRWFjaChmdW5jdGlvbihnKXtiLmpyKGcpfSk7aWYoIWQpe3ZhciBlPVIoYSxGLkQuR2QpO2M9RWQoYyxudWxsKTtjLnByZWZpeD1kO3ZhciBmPVBzKGUsYywhMCkuUXI7ZiYmVShhLEYuRC5KZSxmKX19LGV4PWZ1bmN0aW9uKGEpe2lmKE0oMTYpKXt2YXIgYj0KTyhhLk0sRi5ELnphKTtifHwoYj1PcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmKTt2YXIgYyxkPVJqKGIpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKTtpZighZSl7dmFyIGY9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtlPWV8fElqKGYsImdjbGlkIiwhMSl9KGM9ZT9lLmxlbmd0aDp2b2lkIDApJiZVKGEsRi5ELnpsLGMpfX0sZ3g9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YbyhGLkQua2EpJiZYbyhGLkQubWEpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGQ7dmFyIGU7Yjp7dmFyIGYsZz1BLGg9W107dHJ5e2cubmF2aWdhdGlvbiYmZy5uYXZpZ2F0aW9uLmVudHJpZXMmJihoPWcubmF2aWdhdGlvbi5lbnRyaWVzKCkpfWNhdGNoKEMpe31mPWg7dmFyIGw9e307dHJ5e2Zvcih2YXIgbj1mLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgcD1mW25dJiZmW25dLnVybDtpZihwKXt2YXIgcT0obmV3IFVSTChwKSkuc2VhcmNoUGFyYW1zLHI9cS5nZXQoImdjbGlkIil8fAp2b2lkIDAsdD1xLmdldCgiZ2Nsc3JjIil8fHZvaWQgMDtpZihyKXtsLmdjbGlkPXI7dCYmKGwuVmg9dCk7ZT1sO2JyZWFrIGJ9fX19Y2F0Y2goQyl7fWU9bH12YXIgdT1lLHY9dS5nY2xpZCx4PXUuVmgseTtpZih2JiYoeD09PXZvaWQgMHx8eD09PSJhdyJ8fHg9PT0iYXcuZHMifHxZZig4KSYmeD09PSJhdy5kdiIpKWlmKHYhPT12b2lkIDApe3ZhciB6PW5ldyBlcjtmcih6LDIpO2ZyKHosMyk7eT17dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDp2LHFhOnosb2E6WzNdfX1lbHNlIHk9dm9pZCAwO2Vsc2UgeT12b2lkIDA7ZD15O2QmJighYyYmUShhLEguSi5YZSkmJihkLmdjbGlkPSIwIiksYi5DaihkKSxiLkxvKCkpfX0sZHg9ZnVuY3Rpb24oKXt0aGlzLkg9W107dGhpcy5LPVtdO3RoaXMuTj12b2lkIDB9O2s9ZHgucHJvdG90eXBlO2suQ2o9ZnVuY3Rpb24oYSl7UXIodGhpcy5ILGEpfTtrLmpyPWZ1bmN0aW9uKGEpe1FyKHRoaXMuSyxhKX07ay5qbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLksubGVuZ3RoPgowfTtrLkxvPWZ1bmN0aW9uKCl7dGhpcy5OIT09ITEmJih0aGlzLk49ITEpfTtrLnlvPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKGEubGVuZ3RoKXt2YXIgZT1bXSxmPVtdLGc9W107YS5mb3JFYWNoKGZ1bmN0aW9uKGgpe2UucHVzaChoLmdjbGlkKTt2YXIgbCxuO2YucHVzaCgobj0obD1oLnFhKT09bnVsbD92b2lkIDA6bC5nZXQoKSkhPW51bGw/bjowKTtnLnB1c2goVnMoaC5vYXx8WzBdKSl9KTtlLmxlbmd0aCYmVShiLGMuaWQsZS5qb2luKCIuIikpO2R8fChmLmxlbmd0aCYmVShiLGMucWEsZi5qb2luKCIuIikpLGcubGVuZ3RoJiZVKGIsYy5vYSxnLmpvaW4oIi4iKSkpfX07ay5PdD1mdW5jdGlvbihhKXt0aGlzLkgubGVuZ3RoPjAmJnRoaXMueW8odGhpcy5ILGEse2lkOkYuRC5sYixxYTpGLkQuQmQsb2E6Ri5ELkNkfSx0aGlzLk4pOyh0aGlzLkgubGVuZ3RoPT09MHx8TSg0MjEpKSYmdGhpcy55byh0aGlzLkssYSx7aWQ6Ri5ELlNiLHFhOkYuRC5maCwKb2E6Ri5ELmdofSl9O3ZhciBreD1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW5qZWN0QWRzU2NyaXB0Iil9O3dhKGt4LGh1KTtreC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07a3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07a3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2FvKGEuRm8sQSxCLGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKXx8WG4oYS5GbyxiLnJlcGxhY2UoIiZmbXQ9NCYiLCImZm10PTMmIiksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKX07dmFyIGx4PW5ldyBreDt2YXIgbXg9T2JqZWN0LmZyZWV6ZSh7YXR0cmlidXRpb25zcmM6IiJ9KSxueD1PYmplY3QuZnJlZXplKHtldmVudFNvdXJjZUVsaWdpYmxlOiExLHRyaWdnZXJFbGlnaWJsZTohMH0pO2Z1bmN0aW9uIG94KCl7dmFyIGE9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO3JldHVybiBhJiZ5YihhLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKX07dmFyIHB4PU9iamVjdC5mcmVlemUoe2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLG1ldGhvZDoiR0VUIixrZWVwYWxpdmU6ITAscmVkaXJlY3Q6ImZvbGxvdyJ9KTsKZnVuY3Rpb24gcXgoYSxiLGMsZCxlLGYpe2lmKCF5YihBLmZldGNoKSlyZXR1cm4gZj09bnVsbHx8Zih2b2lkIDAsdm9pZCAwKSwhMTt2YXIgZz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHB4KTtiJiYoZy5ib2R5PWIsZy5tZXRob2Q9IlBPU1QiKTtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGcsZCk7QS5mZXRjaChhLGcpLnRoZW4oZnVuY3Rpb24oaCl7aWYoaC5vayl7aWYoaC5ib2R5KXt2YXIgbD1oLmJvZHkuZ2V0UmVhZGVyKCksbj1uZXcgVGV4dERlY29kZXI7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe2Z1bmN0aW9uIHEoKXtsLnJlYWQoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciB0O3Q9ci5kb25lO3ZhciB1PW4uZGVjb2RlKHIudmFsdWUse3N0cmVhbTohdH0pO3U9Yy5SK3U7Zm9yKHZhciB2PXUuaW5kZXhPZigiXG5cbiIpO3YhPT0tMTspe3ZhciB4PVpnLHk7YTp7dmFyIHo9bSh1LnN1YnN0cmluZygwLHYpLnNwbGl0KCJcbiIpKSxDPQp6Lm5leHQoKS52YWx1ZSxEPXoubmV4dCgpLnZhbHVlO2lmKFNiKEMsImV2ZW50OiBtZXNzYWdlIikmJlNiKEQsImRhdGE6ICIpKXt2YXIgST1ELnN1YnN0cmluZyg2KTt0cnl7eT1KU09OLnBhcnNlKEkpO2JyZWFrIGF9Y2F0Y2goRyl7fX15PXZvaWQgMH14KGMseSk7dT11LnN1YnN0cmluZyh2KzIpO3Y9dS5pbmRleE9mKCJcblxuIil9Yy5SPXU7dD8oZT09bnVsbHx8ZShoKSxwKCkpOnEoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09bnVsbHx8ZShoKTtwKCl9KX1xKCl9KX1lPT1udWxsfHxlKGgpfWVsc2UgZj09bnVsbHx8ZihoLHZvaWQgMCl9KS5jYXRjaChmdW5jdGlvbihoKXtmPT1udWxsfHxmKHZvaWQgMCxoKX0pO3JldHVybiEwfTt2YXIgcng9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJGZXRjaFJpY2hSZXNwb25zZSIsMSk7dGhpcy5OPWF9O3dhKHJ4LGh1KTtyeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O3J4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3J4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtxeChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSx0aGlzLk4sYz09bnVsbD92b2lkIDA6Yy5HYixhLnBlLGZ1bmN0aW9uKGQsZSl7YS5vbkZhaWx1cmUoZSl9KX07CnZhciBzeD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDthIGluc3RhbmNlb2Yga3U/Yz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTphIGluc3RhbmNlb2YgcngmJihjPXt9LG94KCkmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nPW54KSk7IWImJmMmJihjLmNyZWRlbnRpYWxzPSJvbWl0IixjLm1vZGU9ImNvcnMiKTtyZXR1cm4gY30sdHg9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yi5tZXRob2Q7UXcoYSxmdW5jdGlvbihmKXt2YXIgZz1RKGEsSC5KLm9iKSxoPVhvKGZwKSxsPWUgaW5zdGFuY2VvZiBpdT8zOmUgaW5zdGFuY2VvZiBreD9jPT09NXx8Yz09PTg/Mzo0OmUgaW5zdGFuY2VvZiBrdT8hZyYmaD8zOjg6ZSBpbnN0YW5jZW9mIHJ4Pzc6LTE7ZSBpbnN0YW5jZW9mIGt4JiZsPT09Mz8oZi5mbXQ9NCxmLnJmbXQ9Myk6Zi5mbXQ9bDtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGYsYz09PTY2P3tnY3A6IjQifTpnfHxjPT09OHx8Yz09PTY1PwpUdzp7fSk7dmFyIG49ZWlbRi5ELmVoXTtuJiYoZltuXT1jKTtpZihNKDU2OSkpe3ZhciBwPWIuQ3QscT1wLmprLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdlswXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdlswXS5lbmRwb2ludC5lbmRwb2ludH0pO3EubGVuZ3RoPjAmJihxLnB1c2gocC5ta1swXS5lbmRwb2ludC5lbmRwb2ludCksZi5lcHA9cS5zb3J0KGZ1bmN0aW9uKHYseCl7cmV0dXJuIHYteH0pLmpvaW4oIn4iKSl9dmFyIHI9Ij8iK2t2KGYpLHQ9c3goZSxoKSx1O3U9KGUgaW5zdGFuY2VvZiBpdXx8ZSBpbnN0YW5jZW9mIGt4KSYmWG8oImFkX3VzZXJfZGF0YSIpP214OnZvaWQgMDtkKHIse0diOnQsYWY6dX0pfSl9O3ZhciB1eD1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMil9O3dhKHV4LGF2KTt1eC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dHgoYSxiLHRoaXMuZW5kcG9pbnQsYyl9O3ZhciB2eD1uZXcgdXgoNSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksd3g9bmV3IHV4KDYsW10pLHh4PW5ldyB1eCg2MyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkseXg9bmV3IHV4KDY1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx6eD1uZXcgdXgoOCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksQXg9bmV3IHV4KDY2LFtdKSxCeD1uZXcgdXgoNzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pO3ZhciBDeD1mdW5jdGlvbigpe1lnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoQ3gsWWcpO0N4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7WmMoYSx2b2lkIDAsJGcodGhpcyxiKSxiLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT9teDp7fSl9O0N4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/e2F0dHJpYnV0aW9uUmVwb3J0aW5nOm54fTp7fSxkPSRnKHRoaXMsYik7Yi5wcm9jZXNzX3Jlc3BvbnNlP3F4KGEsdm9pZCAwLHRoaXMsYyx2b2lkIDAsZCk6bWQoYSx2b2lkIDAsYyx2b2lkIDAsZCl9O3ZhciBEeD1mdW5jdGlvbigpe0N4LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoRHgsQ3gpO0R4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiLHtwcm9jZXNzX3Jlc3BvbnNlOiExfSkpfTt2YXIgRXg9ZnVuY3Rpb24oKXt9O3dhKEV4LG91KTtFeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKSE9PVguVi54YSlyZXR1cm5bXTt2YXIgYj1YbyhmcCksYz0hIVEoYSxILkoub2IpLGQ9ISFRKGEsSC5KLkVjKSxlPVt7ZW5kcG9pbnQ6Yj9kP2M/eXg6eHg6Yz96eDp2eDp3eCxtZXRob2Q6bmQoKT9iP00oNDkwKT9jP251Om5ldyByeChuZXcgRHgpOmx4Om51Omx1fV0sZj1iP2M/dm9pZCAwOnp4OkF4O2YmJmUucHVzaCh7ZW5kcG9pbnQ6ZixtZXRob2Q6bnV9KTtyZXR1cm4gZX07RXgucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLnhhJiZXaigpJiYhUShhLEguSi5FYykmJk0oNTY5KSYmWG8oZnApP1tbe2VuZHBvaW50OkJ4LG1ldGhvZDpudX1dXTpbXX07dmFyIEZ4PW5ldyBFeDt2YXIgR3g9ZnVuY3Rpb24oYSxiKXtndS5jYWxsKHRoaXMsYSxiLDEsITEsMyl9O3dhKEd4LGd1KTtHeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSksZT0iPyIra3YoZCk7YyhlLHtHYjpsZH0pfTt2YXIgSHg9bmV3IEd4KDU0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxJeD1uZXcgR3goNTUsW10pLEp4PWZ1bmN0aW9uKCl7fTt3YShKeCxvdSk7SngucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7cmV0dXJuW3tlbmRwb2ludDpIeC5LKGEpP0h4Okl4LG1ldGhvZDpudX1dfTt2YXIgS3g9bmV3IEp4Owp2YXIgTHg9ZnVuY3Rpb24oKXthdi5jYWxsKHRoaXMsOSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwxKX07d2EoTHgsYXYpO0x4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuWmR9O0x4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9ZWlbRi5ELmVoXTtmJiYoZVtmXT1kLmVuZHBvaW50KTtlLmdjcD0xO2UuY3RfY29va2llX3ByZXNlbnQ9MTtlLmZtdD1iLm1ldGhvZCBpbnN0YW5jZW9mIGt1Pzg6Mzt2YXIgZz0iPyIra3YoZSk7YyhnLHtHYjpsZH0pfSl9O3ZhciBNeD1uZXcgTHgsTng9ZnVuY3Rpb24oKXt9O3dhKE54LG91KTtOeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVyblt7ZW5kcG9pbnQ6TXgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6TXgsbWV0aG9kOmx1fV19O3ZhciBPeD1uZXcgTng7dmFyIFB4PVs2OF07dmFyIFF4PWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy50aW1lb3V0TXM9Yjt0aGlzLlJiPXZvaWQgMH0sUng9ZnVuY3Rpb24oYSl7YS5SYnx8KGEuUmI9c2V0VGltZW91dChmdW5jdGlvbigpe2EuSCgpO2EuUmI9dm9pZCAwfSxhLnRpbWVvdXRNcykpfSxUbj1mdW5jdGlvbihhKXthLlJiJiYoY2xlYXJUaW1lb3V0KGEuUmIpLGEuUmI9dm9pZCAwKX07dmFyIFN4PWZ1bmN0aW9uKCl7dmFyIGE9TmYoNjYsMCk7dGhpcy5LPVtdO3RoaXMuUj1hO3RoaXMuSD1ZYSgpfSxVeD1mdW5jdGlvbihhKXt2YXIgYj1UeDtiLksucHVzaChhKTtiLk58fChiLk49ZnVuY3Rpb24oKXtmb3IodmFyIGM9bShiLkspLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO3RyeXtlKCl9Y2F0Y2gobCl7fX1mb3IodmFyIGY9bShiLkgudmFsdWVzKCkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD12b2lkIDA7KGg9Zy52YWx1ZS53ZSk9PW51bGx8fFRuKGgpfWIuSC5jbGVhcigpfSwkYyhBLCJwYWdlaGlkZSIsYi5OKSl9LFZ4PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goTW4pWzNdfHxudWxsLGM9KGI/ZGVjb2RlVVJJKGIpOmIpfHwiIixkPVBuKGEsImxhYmVsIil8fCIiLGU9UG4oYSwicmFuZG9tIil8fCIiO3JldHVybiBjKyI6IitMbihkKSsiOiIrTG4oZSl9LFd4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UeCwKZT1WeChhKTtpZighKGQuSC5oYXMoZSl8fGQuSC5zaXplPj1kLlIpKXt2YXIgZj17fTtiJiZiPjAmJmMmJihmLndlPW5ldyBReChjLGIpKTtkLkguc2V0KGUsZik7dmFyIGc7KGc9Zi53ZSk9PW51bGx8fFJ4KGcpfX0sVW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1WeChiKSxkLGU7KGQ9YS5ILmdldChjKSk9PW51bGx8fChlPWQud2UpPT1udWxsfHxUbihlKTthLkguZGVsZXRlKGMpfTtTeC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguc2l6ZX07CnZhciBYeD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9UShhLEguSi5nbikpPT1udWxsP3ZvaWQgMDpjW2IucGJdO3JldHVybiBkIT09dm9pZCAwJiZkPj1iLk9nfSxZeD1mdW5jdGlvbihhLGIpe2lmKFEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykmJlh4KGEsbnYpJiYhKGI8PTApKXJldHVybiBuZXcgUXgoZnVuY3Rpb24oKXtydihudil9LGIpfSxaeD1mdW5jdGlvbihhLGIsYyl7UShiLEguSi5kYSkhPT1YLlYueGF8fFEoYixILkouRWMpfHwoVHh8fChUeD1uZXcgU3gsWHgoYixvdikmJlV4KGZ1bmN0aW9uKCl7dmFyIGQ7cnYob3YsKGQ9VHgpPT1udWxsP3ZvaWQgMDpkLmdldFNpemUoKSl9KSksWHgoYixudik/V3goYSxjLGZ1bmN0aW9uKCl7cnYobnYpO3ZhciBkOyhkPVR4KT09bnVsbHx8VW4oZCxhKX0pOld4KGEpKX0sVHg7CnZhciAkeD1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8wOmU7aWYoZCl7dmFyIGY9UShhLEguSi5FYik7Yj1iLkxhKHtyYW5kb206ZitlLGRhdGE6ZH0pfXJldHVyblt7ZW5kcG9pbnQ6YixtZXRob2Q6Y30se2VuZHBvaW50OmIsbWV0aG9kOmx1fV19LGF5PWZ1bmN0aW9uKGEsYixjLGQpe2F2LmNhbGwodGhpcyxhLGIsMSxjKTt0aGlzLk49ZH07d2EoYXksYXYpO2F5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lbmRwb2ludD09PTY4JiZRKGEsSC5KLm9iKT8hMTohMH07YXkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWx2KGEpO3RoaXMuTiYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLHRoaXMuTik7dmFyIGU9ZWlbRi5ELmVoXTtlJiYoZFtlXT10aGlzLmVuZHBvaW50KTt0aGlzLmVuZHBvaW50IT09NjgmJihkZWxldGUgZC5nY2xhdyxkZWxldGUgZC5nY2xhd19zcmMpO3ZhciBmPXZvaWQgMDtRKGEsCkguSi5vYik/KGQuZ2NwPTEsZC5jdF9jb29raWVfcHJlc2VudD0xKTp0aGlzLmVuZHBvaW50PT09NjgmJihkLmdjcD01LGIubWV0aG9kIGluc3RhbmNlb2Yga3UmJihkLmZtdD04LGY9bGQpKTt2YXIgZz0iPyIra3YoZCk7YyhnLGY/e0diOmZ9Ont9KX07YXkucHJvdG90eXBlLkxhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgYXkodGhpcy5lbmRwb2ludCx0aGlzLlosdGhpcy5qYSxhKX07dmFyIGJ5PW5ldyBheSg5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLCEwKSxjeT1uZXcgYXkoNjgsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITEpLGR5PWZ1bmN0aW9uKCl7fTt3YShkeSxvdSk7ZHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSk7cmV0dXJuICR4KGEsYnksUShhLEguSi5vYik/bnU6bHgsYj09bnVsbD92b2lkIDA6YlswXSl9O2R5LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPWd2KGEpLGM9W107TSg0NTgpJiYhUShhLEguSi5vYikmJgpjLnB1c2goJHgoYSxjeSxudSxiPT1udWxsP3ZvaWQgMDpiWzBdKSk7aWYoYiYmYi5sZW5ndGg+MSlmb3IodmFyIGQ9UShhLEguSi5vYik/bnU6bHgsZT0xO2U8Yi5sZW5ndGg7KytlKWMucHVzaCgkeChhLGJ5LGQsYltlXSxlKSk7cmV0dXJuIGN9O3ZhciBleT1uZXcgZHk7CnZhciBneT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKHYpe3JldHVybiB2LnNwbGl0KCJ+IikuZmlsdGVyKGZ1bmN0aW9uKHgpe3ZhciB5PXguc3BsaXQoIi4iKVswXTtyZXR1cm4hTHcuc29tZShmdW5jdGlvbih6KXtyZXR1cm4gU2IoeSx6KX0pfSkuam9pbigifiIpfWlmKE53KGEpJiZRKGEsSC5KLmZkKSl7dmFyIGM9UShhLEguSi5ZYSksZD1CcCgpLGU9Z3coYyxkKSxmPWUuc29tZShmdW5jdGlvbih2KXtyZXR1cm4gU2Iodi5uYW1lLCJyYXciKX0pLGc9ZncoZSksaD1nLk9vLGw9Zy5paSxuPWcuaGFzVXBkLHA9Zy5ZbixxPWcuZW5jcnlwdGlvbktleVN0cmluZyxyPWcubWV0YWRhdGFQYXJhbSx0PVtdO1J3KDEsYSl8fHQucHVzaCgiJmVtPSIrYihoKSk7dC5wdXNoKCImZW1lPSIrcCk7dmFyIHU7cmV0dXJuIHU9e2lpOmwsSXQ6dCxzdjplLFhuOnIsZW5jcnlwdGlvbktleVN0cmluZzpxLFZyOmZ1bmN0aW9uKHYpe3ZhciB4PWZ5KGEsdSkseT1zdyhRKGEsSC5KLllhKSwhMCwhMCk7SXUoeSwKZnVuY3Rpb24oeil7aWYoIVJ3KDEsYSkpe3ZhciBDPSh6PT1udWxsP3ZvaWQgMDp6LnBhcmFtKXx8b3coe3liOltdfSkucGFyYW07eC5lbT1DfXYoeCl9KX0saGFzVXBkOm4scGY6dm9pZCAwLHJhd1BpaUFkZGVkOmZ9fX0sZnk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPShjPWIucGYpIT1udWxsP2M6MyxlPXtndG06ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpLHBmOmR9KX07Yi5YbiYmKGUuZW1kPWIuWG4pO2lmKGIuaGFzVXBkKXt2YXIgZj0KU3coYSk7ZiYmKGUuZWNzaWQ9Zil9Yi5yYXdQaWlBZGRlZCYmKGVbImdhcC5ycCJdPSIxIik7cmV0dXJuIGV9O3ZhciBkZztmdW5jdGlvbiBoeShhLGIpe3ZhciBjOyhjPWRnKT09bnVsbHx8JGYoYy5ILGEsYil9O3ZhciBpeT1BYShbIi8iXSksank9ZnVuY3Rpb24oYSl7dGhpcy5IPWE7dGhpcy5mYWlsdXJlVHlwZT12b2lkIDB9O2p5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuSC5hY3RpdmU7ZD8oZC5wb3N0TWVzc2FnZSh7dHlwZToxLGNvbW1hbmQ6YX0pLGIoe2RhdGE6IiJ9KSk6Yyh7ZmFpbHVyZVR5cGU6MTMsZGF0YToiIn0pfWNhdGNoKGUpe2Moe2ZhaWx1cmVUeXBlOjExLGRhdGE6ZS5tZXNzYWdlfSl9fTt2YXIga3k9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhaWx1cmVUeXBlPWE7dGhpcy5IPWJ9O2t5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7Yyh7ZmFpbHVyZVR5cGU6dGhpcy5mYWlsdXJlVHlwZSxkYXRhOiJmIit0aGlzLmZhaWx1cmVUeXBlKygidCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuSCkpfSl9Owp2YXIgbnk9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmluaXRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuSD1uZXcga3koMTUsdGhpcy5pbml0VGltZSk7dmFyIGM9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSgpfSwyMCl9KSxkPWx5KGEpLnRoZW4oZnVuY3Rpb24oZSl7Yi5IPW5ldyBqeShlKTtteShiLGUpfSkuY2F0Y2goZnVuY3Rpb24oKXtiLkg9bmV3IGt5KDQsYi5pbml0VGltZSl9KTt0aGlzLks9UHJvbWlzZS5yYWNlKFtjLGRdKX0sbXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihkKXtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2lmKGQuc3RhdGU9PT0icmVkdW5kYW50Iil7dmFyIGU9Yi5hY3RpdmU7ZSYmZS5zdGF0ZSE9PSJyZWR1bmRhbnQifHwoYS5IPW5ldyBreSgxMCxhLmluaXRUaW1lKSl9fSl9O2MoYi5hY3RpdmUpO2MoYi53YWl0aW5nKTtjKGIuaW5zdGFsbGluZyk7CmIuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLGZ1bmN0aW9uKCl7YyhiLmluc3RhbGxpbmcpfSl9O255LnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLksudGhlbihmdW5jdGlvbigpe2QuSC5pbyhhLGIsYyl9KX07bnkucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9Owp2YXIgbHk9ZnVuY3Rpb24oYSl7dmFyIGIsYz1MZigxMSk7Yz1MZigxMCk7Yj1jO3ZhciBkPXtzY29wZTooVGIoYS5ocmVmLCIvIik/YS5ocmVmLnNsaWNlKDAsLTEpOmEuaHJlZikrIi9fL3NlcnZpY2Vfd29ya2VyIn07YiYmKGQudXBkYXRlVmlhQ2FjaGU9ImFsbCIpO3ZhciBlLGY9b3koYSxiKSxnPW5ldyBNYXAoW1sicGF0aCIsYS5wYXRobmFtZV1dKSxoPUpwKGtjKGYpLnRvU3RyaW5nKCkpO2U9THAoaC56ayxoLnBhcmFtcyxoLmZyYWdtZW50LGcpO3ZhciBsPUljKCksbj1rYyhlKTt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobixkKX1jYXRjaChwKXt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobi50b1N0cmluZygpLGQpfWNhdGNoKHEpe3JldHVybiBQcm9taXNlLnJlamVjdChxKX19fTsKZnVuY3Rpb24gb3koYSxiKXtmb3IodmFyIGM9S3AoaXkpLGQ9YS5wYXRobmFtZS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC5sZW5ndGg+MH0pLGU9W10uY29uY2F0KHcoZCksWyJfIiwic2VydmljZV93b3JrZXIiLGIsInN3LmpzIl0pLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSljPU1wKGMsZy52YWx1ZSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHB5KGEpe3ZhciBiPW5tKGptLmJhLk9oKSxjPWI9PW51bGw/dm9pZCAwOmJbYV07Y3x8YSE9PSJsaXRlInx8KGM9Yj09bnVsbD92b2lkIDA6Yi5mdWxsKTtyZXR1cm4gY312YXIgcXk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXB5KCJmdWxsIik7ZD9kLmRlbGVnYXRlKGEsYixjKTpjKHtmYWlsdXJlVHlwZToxNn0pfTtmdW5jdGlvbiByeShhLGIsYyxkLGUpe3F5KHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOjEsdGVtcGxhdGVzOmIsYm9keToiIixwcm9jZXNzUmVzcG9uc2U6ITEsZW5jcnlwdGlvbktleVN0cmluZzplLHNvUmVmZXJyZXI6QS5sb2NhdGlvbi5ocmVmfX0sYyxmdW5jdGlvbihmKXtkKGYuZmFpbHVyZVR5cGUsZi5kYXRhKX0pfTt2YXIgc3k9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJTZXJ2aWNlV29ya2VyRnJhbWVsZXNzIik7dGhpcy5OPWF9O3dhKHN5LGh1KTtzeS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07c3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07c3kucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO3J5KGIsdGhpcy5OLmlpLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbihkKXtjLk4ucGY9ZDthLnJkKHZvaWQgMCl9LHRoaXMuTi5lbmNyeXB0aW9uS2V5U3RyaW5nKX07CnZhciB0eT1mdW5jdGlvbihhKXthdi5jYWxsKHRoaXMsYSxbImFkX3VzZXJfZGF0YSIsImFkX3N0b3JhZ2UiXSwxLCExKX07d2EodHksYXYpO3R5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9UShhLEguSi5waiksZz1mdW5jdGlvbigpe3ZhciBuPWt2KGUpO2YmJmIubWV0aG9kIGluc3RhbmNlb2Ygc3kmJihuKz1mLkl0LmpvaW4oIiIpKTtjKG4se0diOmxkfSl9O2lmKGQuZW5kcG9pbnQ9PT0yMXx8ZC5lbmRwb2ludD09PTczKXt2YXIgaD1nayhiLkljKTtoJiYoZS5fdWlwPWgpfWlmKGYmJihuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsZnkoYSxmKSksIShiLm1ldGhvZCBpbnN0YW5jZW9mIHN5KSkpe3ZhciBsO2YucGY9KGw9Zi5wZikhPW51bGw/bDoxNztmLlZyKGZ1bmN0aW9uKG4pe25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxuKTtnKCl9KTtyZXR1cm59ZygpfSl9O3R5LnByb3RvdHlwZS5SPQpmdW5jdGlvbihhKXtyZXR1cm4gYXYucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpLnNsaWNlKDAsLTEpfTt2YXIgdXk9bmV3IHR5KDExKSx2eT1uZXcgdHkoNzIpLHd5PWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7dGhpcy5SPWJ9O3dhKHd5LG91KTt3eS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXtyZXR1cm4gTSg1NjMpP1t0aGlzLlosdGhpcy5SXTpNKDE0MSk/W3RoaXMuWl06W3RoaXMuUl19O3d5LnByb3RvdHlwZS5qYT1mdW5jdGlvbigpe3JldHVybiBudS5pc1N1cHBvcnRlZCgpP1tudV06W211LGx1XX07d3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuZmEoKSxkPWMuZmxhdE1hcChmdW5jdGlvbihmKXtyZXR1cm4gYi5qYSgpLm1hcChmdW5jdGlvbihnKXtyZXR1cm57ZW5kcG9pbnQ6ZixtZXRob2Q6Z319KX0pO2lmKHRoaXMuTigpKXt2YXIgZT1RKGEsSC5KLnBqKTtlJiZlLmhhc1VwZCYmZC51bnNoaWZ0KHtlbmRwb2ludDpjWzBdLG1ldGhvZDpuZXcgc3koZSl9KX1yZXR1cm4gZH07CnZhciB4eT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx1eSx2eSl9O3dhKHh5LHd5KTt4eS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiEwfTt2YXIgeXk9bmV3IHh5LHp5PW5ldyB0eSgyMSksQXk9bmV3IHR5KDczKSxCeT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx6eSxBeSl9O3dhKEJ5LHd5KTtCeS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiBNKDU4Nyl9O3ZhciBDeT1uZXcgQnk7dmFyIER5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDt0aGlzLks9ITE7TSg0NjIpJiZVbSgiZnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuSD4wJiZhLkg8NT9TdHJpbmcoYS5IKTp2b2lkIDB9LCExKX0sRXk7ZnVuY3Rpb24gRnkoYSxiKXtFeXx8KEV5PW5ldyBEeSk7dmFyIGM9RXk7TSg0NjIpJiZmbi5LJiYoYj09PSJndG0uZm9ybVN1Ym1pdCJ8fGI9PT0iZm9ybV9zdWJtaXQiJiZJZig0NSkpJiYoYT09PTF8fGMuSykmJihjLks9ITAsYy5IPWEsYSE9PTU/Vm0oImZzIik6UW0uSC5mcz0hMSl9O3ZhciBHeT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKT09PVguVi5LYSl7dmFyIGI9ZnUoYSk7aWYoIU0oNDI3KSYmKGpwKGEsYil8fFEoYSxILkouaGQpKSYmWG8oZnApKXt2YXIgYz1scChhLGIpO2lmKGMpe3ZhciBkPU5tKDY5LGMpO1RsKGQsYSw2OSk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDo2OSxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGQpfX12YXIgZT15YihhLk0ub25TdWNjZXNzKT9hLk0ub25TdWNjZXNzOnhiOyR1KGEsYik7ZSgpfX07dmFyIEh5PXtYOntXcTowLEVrOjEsWmc6MixYazozLG1pOjQsVms6NSxXazo2LFlrOjcsbmk6OCx0bTo5LHNtOjEwLFRpOjExLHZtOjEyLEJoOjEzLEVtOjE0LGlqOjE1LFNxOjE2LGpkOjE3LHVqOjE4LHZqOjE5LHdqOjIwLENuOjIxLHhqOjIyfX07SHkuWFtIeS5YLldxXT0iUkVTRVJWRURfWkVSTyI7SHkuWFtIeS5YLkVrXT0iQURTX0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguWmddPSJDT05UQUlORVJfRVhFQ1VURV9TVEFSVCI7SHkuWFtIeS5YLlhrXT0iQ09OVEFJTkVSX1NFVFVQX0VORCI7SHkuWFtIeS5YLm1pXT0iQ09OVEFJTkVSX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguVmtdPSJDT05UQUlORVJfQkxPQ0tJTkdfRU5EIjtIeS5YW0h5LlguV2tdPSJDT05UQUlORVJfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC5Za109IkNPTlRBSU5FUl9ZSUVMRF9FTkQiO0h5LlhbSHkuWC5uaV09IkNPTlRBSU5FUl9ZSUVMRF9TVEFSVCI7SHkuWFtIeS5YLnRtXT0iRVZFTlRfRVhFQ1VURV9FTkQiOwpIeS5YW0h5Llguc21dPSJFVkVOVF9FVkFMVUFUSU9OX0VORCI7SHkuWFtIeS5YLlRpXT0iRVZFTlRfRVZBTFVBVElPTl9TVEFSVCI7SHkuWFtIeS5YLnZtXT0iRVZFTlRfU0VUVVBfRU5EIjtIeS5YW0h5LlguQmhdPSJFVkVOVF9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLkVtXT0iR0E0X0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguaWpdPSJQQUdFX0xPQUQiO0h5LlhbSHkuWC5TcV09IlBBR0VWSUVXIjtIeS5YW0h5LlguamRdPSJTTklQUEVUX0xPQUQiO0h5LlhbSHkuWC51al09IlRBR19DQUxMQkFDS19FUlJPUiI7SHkuWFtIeS5YLnZqXT0iVEFHX0NBTExCQUNLX0ZBSUxVUkUiO0h5LlhbSHkuWC53al09IlRBR19DQUxMQkFDS19TVUNDRVNTIjtIeS5YW0h5LlguQ25dPSJUQUdfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC54al09IlRBR19FWEVDVVRFX1NUQVJUIjt2YXIgSXk9e307SXkuWD1IeS5YO3ZhciBKeT17UnU6IkwiLFhxOiJTIixrdjoiWSIsUnQ6IkIiLG51OiJFIixOdToiSSIsZnY6IlRDIix2dToiSFRDIixvdToiRiIsTXU6IkMifSxLeT17WHE6IlMiLGx1OiJWIixhdToiRSIsZHY6InRhZyJ9LEx5PXt9LE15PShMeVtJeS5YLnZqXT0iNiIsTHlbSXkuWC53al09IjUiLEx5W0l5LlgudWpdPSI3IixMeSk7ZnVuY3Rpb24gTnkoYSl7dmFyIGI9RSg1KSxjPU51bWJlcihhLmV2ZW50SWQpLGQ9TnVtYmVyKGEudGFnSWQpO3JldHVybihTYihiLCJHVE0tIik/YjoiR1RNLSIrYikrIjoiKyhBYihjKT9jKyI6IjoiIikrKEFiKGQpP2QrIjoiOiIiKSthLnN0YWdlfTtmdW5jdGlvbiBPeSgpe3ZhciBhPXJkKCk7cmV0dXJuISEoYSYmYS5tYXJrIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEubWVhc3VyZSBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWVhc3VyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1hcmtzIGluc3RhbmNlb2YgRnVuY3Rpb24pfTt2YXIgUHk9ZnVuY3Rpb24oKXt0aGlzLkg9e319LFF5O2Z1bmN0aW9uIFJ5KCl7UXl8fChReT1uZXcgUHkpO3JldHVybiBReX1mdW5jdGlvbiBTeShhKXt2YXIgYj1SeSgpLGM9TnkoYSk7cmV0dXJuIGIuSFtjXX1mdW5jdGlvbiBUeShhLGIpe3ZhciBjO2E6e3ZhciBkPVJ5KCk7aWYoT3koKSl7dmFyIGU9TnkoYSksZixnO2lmKGY9KGc9cmQoKSk9PW51bGw/dm9pZCAwOmcubWFyayhlLGIpKXtjPWQuSFtlXT1mO2JyZWFrIGF9fWM9dm9pZCAwfXJldHVybiBjfTtmdW5jdGlvbiBVeShhLGIpe2lmKE95KCkpe2EuZW50cnk9TnkoYSk7dmFyIGM9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKTtjLnN0YWdlPWI7ZGVsZXRlIGMuc2VudDt2YXIgZD1TeShiPT09SXkuWC5qZD97c3RhZ2U6SXkuWC5qZH06YyksZT1TeShhKTtpZihkJiZlJiYhKGQuc3RhcnRUaW1lPmUuc3RhcnRUaW1lKSl7Yy5zdGFnZT1iKyI6IithLnN0YWdlO3ZhciBmPU55KGMpLGc9e3N0YXJ0OmQubmFtZSxlbmQ6ZS5uYW1lfSxoLGw7cmV0dXJuKGw9KGg9cmQoKSk9PW51bGw/dm9pZCAwOmgubWVhc3VyZShmLGcpKT09bnVsbD92b2lkIDA6bC5kdXJhdGlvbn19fTt2YXIgV3k9ZnVuY3Rpb24oKXt2YXIgYT01O1Z5LlJvPjAmJihhPVZ5LlJvKTt0aGlzLks9YTt0aGlzLkg9MDt0aGlzLk49W119LFh5PWZ1bmN0aW9uKGEpe3JldHVybiBhLkg8YS5LPyExOk5iKCktYS5OW2EuSCVhLktdPDFFM30sWXk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5IKyslYS5LO2EuTltiXT1OYigpfTt2YXIgVnk9e1JvOk5mKDMsMCl9LCR5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnlhPVtdO3RoaXMuSD12b2lkIDA7dGhpcy5aPXt9O3RoaXMuSz12b2lkIDA7dGhpcy5qYT1uZXcgV3k7dGhpcy5MYT0xRTM7dGhpcy5SPXRoaXMuTj0hMTt0aGlzLmZhPURiKCk7WnkodGhpcyxmdW5jdGlvbigpe3ZhciBiPVtbInYiLCIzIl0sWyJ0IiwidCJdLFsicGlkIixTdHJpbmcoYS5mYSldXSxjPWR1KCk7YyYmYi5wdXNoKFsiZ3RtIixjXSk7cmV0dXJuIGJ9KTtjZChmdW5jdGlvbigpe2EuZmE9RGIoKX0sODY0RTUpfSxaeT1mdW5jdGlvbihhLGIpe2EueWEucHVzaChiKX0sYXo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSDtpZihkPT09dm9pZCAwKWlmKGMpZD1yaigpO2Vsc2UgcmV0dXJuIiI7Zm9yKHZhciBlPVtmaygiaHR0cHM6Ly8iK0UoMjEpKSwiL2EiLCI/aWQ9IitFKDUpXSxmPW0oYS55YSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD0KaCh7ZXZlbnRJZDpkLHRmOiEhYn0pLG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9bShwLnZhbHVlKSxyPXEubmV4dCgpLnZhbHVlLHQ9cS5uZXh0KCkudmFsdWU7ZS5wdXNoKCImIityKyI9Iit0KX1lLnB1c2goIiZ6PTAiKTtyZXR1cm4gZS5qb2luKCIiKX0sYno9ZnVuY3Rpb24oYSl7aWYoJGsoMjYpJiYoYS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKSxhLkghPT12b2lkIDAmJmEuUikpe3ZhciBiPWxvKGNvLmlhLlpiKTtpZihnbyhiKSlhLk58fChhLk49ITAsaW8oYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSkpO2Vsc2UgaWYoYS5aW2EuSF18fFh5KGEuamEpfHxhLkxhLS08PTApUCgxKSxhLlpbYS5IXT0hMDtlbHNle1l5KGEuamEpO3ZhciBjPWF6KGEsITApO1huKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDphLkh9LGMpO2EuUj0hMTthLk49ITF9fX0sY3o9ZnVuY3Rpb24oYSl7YS5LfHwoYS5LPQpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0sNTAwKSl9LGV6PWZ1bmN0aW9uKGEpe3ZhciBiPWR6O2IuWlthXXx8KGEhPT1iLkgmJihieihiKSxiLkg9YSksYi5SPSEwLGN6KGIpLGF6KGIpLmxlbmd0aD49MjAyMiYmYnooYikpfSxkejtmdW5jdGlvbiBmeihhKXtneigpO1p5KGR6LGEpfWZ1bmN0aW9uIGh6KCl7dmFyIGE7YT1hPT09dm9pZCAwPyExOmE7Z3ooKTt2YXIgYj1hLGM9ZHo7Yj1iPT09dm9pZCAwPyExOmI7aWYoZm4uTiYmJGsoMjYpKXt2YXIgZD1heihjLCEwLCEwKTtiP1ZuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpOlhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpfX1mdW5jdGlvbiBneigpe2R6fHwoZHo9bmV3ICR5KX07ZnVuY3Rpb24gaXooKXtmdW5jdGlvbiBhKGMsZCl7dmFyIGU9d2IocmJbZF18fFtdKTtlJiZiLnB1c2goW2MsZV0pfXZhciBiPVtdO2EoInUiLCJHVE0iKTthKCJ1dCIsIlRBR0dJTkciKTthKCJoIiwiSEVBTFRIIik7cmV0dXJuIGJ9O3ZhciBqej0iaHR0cHM6Ly8iK0UoMjEpLGt6PWZ1bmN0aW9uKCl7dGhpcy5OPSExO3RoaXMuUj1bXTt0aGlzLlo9W107dGhpcy5IPXtUQzowLEhUQzowfTt0aGlzLks9e319LGx6PWZ1bmN0aW9uKGEsYixjLGQpe2EuS1tiXXx8KGEuS1tiXT17fSk7YS5LW2JdW2NdPWR9LG96PWZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9IiIsZD1teigpO0FiKGQpJiYoYS5ILkk9TWF0aC5mbG9vcihkKSk7Yz1ueihhLkgsSnkpLnRvU3RyaW5nKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoYS5LKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1hLktbZ10ubmFtZSxsPSIiLG49bnooYS5LW2ddLEt5KTtuJiYobD1oKyIuIituLnRvU3RyaW5nKCksYis9In4iK2wpfXZhciBwPSJ+QVdDVCIrYS5SLmpvaW4oIi4iKSxxPSJ+R0EiK2EuWi5qb2luKCIuIikscj0iJmNjaWQ9Iit2aygpLnRvU3RyaW5nKCkrIiZjaWQ9IitFKDUpLnRvU3RyaW5nKCkrIiZsPSIrYytiKyhhLlIubGVuZ3RoPwpwOiIiKSsoYS5aLmxlbmd0aD9xOiIiKTtpZihNKDIxNCkpe3ZhciB0LHU9KHQ9cmQoKSk9PW51bGw/dm9pZCAwOnQuZ2V0RW50cmllc0J5TmFtZShLYykubWFwKGZ1bmN0aW9uKHYpe3JldHVybiBTdHJpbmcodi5kdXJhdGlvbil9KS5qb2luKCIuIik7dSYmKHIrPSJ+U1MiK3UpfXJldHVybiByfSxwej1mdW5jdGlvbihhLGIpe2lmKCFiLnN0YWdlfHxhLk58fCFPeSgpfHxTeShiKSlyZXR1cm4hMTt2YXIgYyxkPShjPXJkKCkpPT1udWxsP3ZvaWQgMDpjLnRpbWVPcmlnaW47aWYoIUFiKGQpKWEuTj0hMDtlbHNlIGlmKEFiKCRrKDI1KSkmJiFTeSh7c3RhZ2U6SXkuWC5qZH0pJiYhYS5OJiZPeSgpKXRyeXt2YXIgZT1OdW1iZXIoJGsoMjUpKTtUeSh7c3RhZ2U6SXkuWC5qZH0se3N0YXJ0VGltZTpNYXRoLm1heChlLWQsMCl9KTtUeSh7c3RhZ2U6SXkuWC5pan0se3N0YXJ0VGltZTowfSk7dmFyIGY9VXkoe3N0YWdlOkl5LlguamR9LEl5LlguaWopO2YmJihhLkguTD1NYXRoLmZsb29yKGYpKX1jYXRjaChnKXthLk49CiEwfWlmKGEuTilyZXR1cm4hMTt0cnl7aWYoIVR5KGIpKXJldHVybiExfWNhdGNoKGcpe3JldHVybiBhLk49ITAsITF9cmV0dXJuITB9LHF6PWZ1bmN0aW9uKGEsYixjKXtpZihweihhLGIpKXRyeXt2YXIgZD1VeShiLGMpO2lmKGQpcmV0dXJuIE1hdGguZmxvb3IoZCl9Y2F0Y2goZSl7YS5OPSEwfX0sc3o9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5LlgubWl9KX0sdHo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpLGI9cXooYSx7c3RhZ2U6SXkuWC5Ya30sSXkuWC5taSk7YiE9PXZvaWQgMCYmKGEuSC5TPWIpfSx1ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5uaX0pfSx2ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5CaCxldmVudElkOmF9KTtjLktbYV0mJmMuS1thXS5uYW1lfHxseihjLGEsIm5hbWUiLFNiKGIsImd0bS4iKT9iOiIqIil9LHd6PWZ1bmN0aW9uKGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnZtLApldmVudElkOmF9LEl5LlguQmgpO2MhPT12b2lkIDAmJmx6KGIsYSwiUyIsYyl9LHl6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKSxkPXF6KGMse3N0YWdlOkl5LlgudG0sZXZlbnRJZDphfSxJeS5YLkJoKTtkIT09dm9pZCAwJiZseihjLGEsIkUiLGQpO2lmKGI9PT0iZ3RtLmxvYWQiKXt2YXIgZT1xeihjLHtzdGFnZTpJeS5YLldrfSxJeS5YLlpnKTtlIT09dm9pZCAwJiYoYy5ILkU9ZSk7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7aWYoIWMuTiYmT3koKSYmRSg1KSl7dmFyIGY9eHooKTtmIT09dm9pZCAwJiYoYy5ILkY9TWF0aC5mbG9vcihmKSk7dHJ5e2Zvcih2YXIgZz1peih7ZXZlbnRJZDowLHRmOiExfSksaD1bXSxsPW0oZyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW0obi52YWx1ZSkscT1wLm5leHQoKS52YWx1ZSxyPXAubmV4dCgpLnZhbHVlO2gucHVzaCgiJiIrcSsiPSIrcil9dmFyIHQ9Q3AoKSx1PVtbZmsoanopLCIvYT92PTMmdD1sIiwiJnBpZD0iKwpEYigpLnRvU3RyaW5nKCksIiZydj0iK0UoMTQpLHQ/IiZ0YWdfZXhwPSIrdDoiIixoLmpvaW4oIiIpXS5qb2luKCIiKSwiJmd0bT0iLGR1KCksb3ooYyldLmpvaW4oIiIpO2lmKHUubGVuZ3RoPjIwMjIpe3ZhciB2PU1hdGgubWF4KHUubGFzdEluZGV4T2YoIi5UUyIsMjAyMiksdS5sYXN0SW5kZXhPZigifiIsMjAyMikpO3U9dS5zbGljZSgwLHYpfVhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTZ9LHUpfWNhdGNoKHgpe319fSl9fSx6ejtmdW5jdGlvbiByeigpe3p6fHwoeno9bmV3IGt6KTtyZXR1cm4genp9ZnVuY3Rpb24gbXooKXt0cnl7dmFyIGE7cmV0dXJuKChhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKVswXSkuZG9tSW50ZXJhY3RpdmV9Y2F0Y2goYil7fX0KZnVuY3Rpb24gbnooYSxiKXtyZXR1cm4gT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBiW2NdfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybigiIisoYz09PSJ0YWciPyIiOmMpKS5jb25jYXQoYVtjXS50b1N0cmluZygpKX0pLmpvaW4oIi4iKX1mdW5jdGlvbiBBeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FbSxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuWi5wdXNoKGMpfWZ1bmN0aW9uIEJ6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVrLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5SLnB1c2goYyl9ZnVuY3Rpb24gQ3ooYSl7dmFyIGI9cnooKTtweihiLHtzdGFnZTpJeS5YLlRpLGV2ZW50SWQ6YX0pfQpmdW5jdGlvbiBEeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5zbSxldmVudElkOmF9LEl5LlguVGkpO2MhPT12b2lkIDAmJmx6KGIsYSwiViIsYyl9ZnVuY3Rpb24geHooKXt0cnl7dmFyIGEsYjtyZXR1cm4oYj0oYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMubmFtZT09PSJmaXJzdC1jb250ZW50ZnVsLXBhaW50In0pKT09bnVsbD92b2lkIDA6Yi5zdGFydFRpbWV9Y2F0Y2goYyl7fX1mdW5jdGlvbiBFeihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC54aixldmVudElkOmEuaWQsdGFnSWQ6TnVtYmVyKGJbR2YueWpdKX0pfQpmdW5jdGlvbiBGeihhLGIsYyl7dmFyIGQ9cnooKSxlPWRuKGIpLGY9TnVtYmVyKGJbR2YueWpdKSxnPXF6KGQse3N0YWdlOmMsZXZlbnRJZDphLmlkLHRhZ0lkOmZ9LEl5LlgueGopO2lmKGchPT12b2lkIDAmJmQuS1thLmlkXSl7dmFyIGg9ZC5LW2EuaWRdLnRhZ3x8IiIsbCxuPShsPU15W2NdKSE9bnVsbD9sOiIxIixwPW5ldyBSZWdFeHAoIlRTXFxkIitlKyIuVEkiK2YpLHE9IlRTIituK2UrIi5USSIrZisiLlRFIitnO2guc2VhcmNoKHApPj0wP24hPT0iMSImJmx6KGQsYS5pZCwidGFnIixoLnJlcGxhY2UocCxxLnJlcGxhY2UoIi5URSIrZywiIikpKToobHooZCxhLmlkLCJ0YWciLChoP2grIi4iOiIiKStxKSxlPT09Imh0bWwiJiYoZC5ILkhUQys9MSksZC5ILlRDKz0xKX19Owp2YXIgR3o9ZnVuY3Rpb24oYSl7UShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxwdikmJnJ2KHB2KX0sSXo9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk7aWYoYj09PVguVi5LYSlHeShhKTtlbHNle3ZhciBjPUh6W2JdO2lmKGMpZm4uSCYmYj09PVguVi54YSYmQnooYS5NLmV2ZW50SWQpLFF3KGEsZnVuY3Rpb24oZCl7dmFyIGU9Z3koYSk7VihhLEguSi5waixlKTtlJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsZnkoYSxlKSk7RnkoMyxhLmV2ZW50TmFtZSk7dmFyIGY9e30sZz17fTtRdShhLHtRczpmdW5jdGlvbihoLGwsbil7aWYobi5maW5kKGZ1bmN0aW9uKHApe3JldHVybiBwLmlzUHJpbWFyeSYmKHAuc3RhdHVzPT09MHx8cC5zdGF0dXM9PT0xKX0pKWguTS5vblN1Y2Nlc3MoKTtlbHNlIEd6KGgpLGguTS5vbkZhaWx1cmUoKX0sU3M6ZnVuY3Rpb24oaCxsKXt2YXIgbjt2YXIgcD1sLnNiLHE9bC5lbmRwb2ludC5lbmRwb2ludCwKcjtzd2l0Y2gobC5wayBpbnN0YW5jZW9mIGt4PzI6bC5wayBpbnN0YW5jZW9mIHJ4PzQ6bC5wayBpbnN0YW5jZW9mIGt1PzM6MSl7Y2FzZSAyOnI9MjE7YnJlYWs7Y2FzZSAzOlEoaCxILkouZGEpPT09WC5WLnhhJiZRKGgsSC5KLm9iKSYmcSE9PTkmJihyPTIwKTticmVhaztjYXNlIDQ6cj0yMH1pZihyKXt2YXIgdDt2YXIgdT1OZihyLC0xKTtYeChoLG92KT8oWngocCxoLHUpLHQ9e010OlR4fSk6dD17d2U6WXgoaCx1KX07dmFyIHY9dCx4PXYud2UseT12Lk10O3g9PW51bGx8fFJ4KHgpO249e3dlOngsa3Q6eX19ZWxzZSBuPXt9O3ZhciB6PW4sQz16LndlLEQ9ei5rdDtDJiYoZltsLnNiXT1DKTtEJiYoZ1tsLnNiXT1EKX0sdW86ZnVuY3Rpb24oaCxsKXtmW2wuc2JdJiYoVG4oZltsLnNiXSksZGVsZXRlIGZbbC5zYl0pO2dbbC5zYl0mJihVbihnW2wuc2JdLGwuc2IpLGRlbGV0ZSBnW2wuc2JdKX0sUnM6ZnVuY3Rpb24oaCxsLG4scCxxKXtpZihxLmxlbmd0aCYmYiE9PVguVi51Yil7dmFyIHI9CnFbcS5sZW5ndGgtMV0sdD1yLnNiLHU9ci5lbmRwb2ludC5lbmRwb2ludDtpZighUHguaW5jbHVkZXModSkpe3ZhciB2PWguTTtNbCh7dGFyZ2V0SWQ6aC50YXJnZXQuZGVzdGluYXRpb25JZCxyZXF1ZXN0Ont1cmw6dCxwYXJhbWV0ZXJFbmNvZGluZzozLGVuZHBvaW50OnV9LHFiOntldmVudElkOnYuZXZlbnRJZCxwcmlvcml0eUlkOnYucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShoLEguSi51ZikscHJpb3JpdHlJZDpRKGgsSC5KLnZmKX19KTtRKGgsSC5KLmRhKX19fX0sYyl9KTtlbHNlIGEuTS5vbkZhaWx1cmUoKX19LEp6PXt9LEh6PShKeltYLlYuemRdPVp3LEp6W1guVi54YV09RngsSnpbWC5WLllkXT1LeCxKeltYLlYuWmRdPU94LEp6W1guVi51Yl09ZXksSnpbWC5WLk9iXT15eSxKeltYLlYuRmJdPUN5LEp6KTt2YXIgS3o9e2dqOnticDoiMSIsdXE6IjIiLFZxOiIzIn19Owp2YXIgTHo9e30sTXo9T2JqZWN0LmZyZWV6ZSgoTHpbRi5ELmZoXT0xLEx6W0YuRC5naF09MSxMeltGLkQuQmRdPTEsTHpbRi5ELkNkXT0xLEx6W0YuRC5SY109MSxMeltGLkQuc2ldPTEsTHpbRi5ELnVpXT0xLEx6W0YuRC5DbF09MSxMeltGLkQuaWhdPTEsTHpbRi5ELkNmXT0xLEx6W0YuRC5EZl09MSxMeltGLkQuRWZdPTEsTHpbRi5ELkhhXT0xLEx6W0YuRC5GZl09MSxMeltGLkQuRmRdPTEsTHpbRi5ELnVjXT0xLEx6W0YuRC5IZF09MSxMeltGLkQuTGJdPTEsTHpbRi5ELkNiXT0xLEx6W0YuRC5UYl09MSxMeltGLkQubmJdPTEsTHpbRi5ELmViXT0xLEx6W0YuRC5HZV09MSxMeltGLkQua2hdPTEsTHpbRi5ELk9hXT0xLEx6W0YuRC5PcF09MSxMeltGLkQuU3BdPTEsTHpbRi5ELkllXT0xLEx6W0YuRC5HaV09MSxMeltGLkQuUWZdPTEsTHpbRi5ELlRhXT0xLEx6W0YuRC5ZY109MSxMeltGLkQuWmNdPTEsTHpbRi5ELnRiXT0xLEx6W0YuRC5RZF09MSxMeltGLkQuUmRdPTEsTHpbRi5ELlNkXT0KMSxMeltGLkQuTmVdPTEsTHpbRi5ELnphXT0xLEx6W0YuRC5VYV09MSxMeltGLkQuV2xdPTEsTHpbRi5ELlhsXT0xLEx6W0YuRC5ZbF09MSxMeltGLkQuWmxdPTEsTHpbRi5ELldiXT0xLEx6W0YuRC5UZF09MSxMeltGLkQuWGJdPTEsTHpbRi5ELmRkXT0xLEx6W0YuRC5VZF09MSxMeltGLkQuUWVdPTEsTHpbRi5ELlBhXT0xLEx6W0YuRC55Y109MSxMeltGLkQuVmRdPTEsTHpbRi5ELnpjXT0xLEx6W0YuRC5BY109MSxMeltGLkQuZmJdPTEsTHpbRi5ELlFhXT0xLEx6KSksTno9e30sT3o9KE56W0YuRC5VY109MSxOeltGLkQuUHBdPTEsTnpbRi5ELkhlXT0xLE56W0YuRC5yaV09MSxOei5vcmVmPTEsTnopO3ZhciBQeixRejsKZnVuY3Rpb24gUnooYSxiKXt2YXIgYz1hW0dmLlliXSxkPWImJmIuZXZlbnQ7aWYoIWMpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBlPVF6W2NdLGY9e30sZztmb3IoZyBpbiBhKWEuaGFzT3duUHJvcGVydHkoZykmJihTYihnLCJ2dHBfIik/ZltlIT09dm9pZCAwP2c6Zy5zdWJzdHJpbmcoNCldPWFbZ106Zz09PUdmLkZxLnRvU3RyaW5nKCkmJihmW2UhPT12b2lkIDA/InZ0cF9ndG1HZW5lcmF0ZWRUYWdnaW5nTWV0YWRhdGEiOmddPWFbZ10pKTtJZig2MSkmJmUmJihmLnZ0cF9leHRyYUV4cGVyaW1lbnRJZHM9ITApO2UmJmQmJmQuY2FjaGVkTW9kZWxWYWx1ZXMmJihmLnZ0cF9ndG1DYWNoZWRWYWx1ZXM9ZC5jYWNoZWRNb2RlbFZhbHVlcyk7YiYmZSYmKGYudnRwX2d0bUVudGl0eUluZGV4PWIuaW5kZXgsZi52dHBfZ3RtRW50aXR5TmFtZT1iLm5hbWUpO3JldHVybiBlIT09dm9pZCAwP2UoZik6UHooYyxmLApiKX12YXIgVHo9ZnVuY3Rpb24oKXt2YXIgYT1TejtpZihNKDU4NSkmJmZuLkspe3ZhciBiPUUoNSkuaW5kZXhPZigiR1RNLSIpPT09MCYmSWYoNjIpLGMsZD0oKGM9RmsoKSk9PW51bGw/dm9pZCAwOmMuc291cmNlKT09PTE7YiYmIWR8fGEuSHx8KGEuSD0hMCxVbSgiYWJsIiwiMSIpLHRvKCkpfX0sU3o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgVXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5uYW1lPVN0cmluZyh0aGlzLkhbR2YuUm1dfHwiIil9OwpVei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXtpZighYlt0aGlzLmluZGV4XSYmIWEuaXNCbG9ja2VkKHRoaXMuSCkpe2JbdGhpcy5pbmRleF09ITA7dGhpcy5IW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO3ZhciBjPXRoaXMubmFtZSxkO3RyeXt2YXIgZT17fSxmO2ZvcihmIGluIHRoaXMuSCl0aGlzLkguaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPWVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKSk7ZS52dHBfZ3RtRXZlbnRJZD1hLmlkO2EucHJpb3JpdHlJZCYmKGUudnRwX2d0bVByaW9yaXR5SWQ9YS5wcmlvcml0eUlkKTt2YXIgZz1kPVJ6KGUse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjIsbmFtZTpjfSk7ZVtHZi5aa10mJnR5cGVvZiBnPT09InN0cmluZyImJihnPWVbR2YuWmtdPT09MT9nLnRvTG93ZXJDYXNlKCk6Zy50b1VwcGVyQ2FzZSgpKTtlLmhhc093blByb3BlcnR5KEdmLmFoKSYmKGc9WWYoMTgpP2VbR2YuYWhdPT09MT8KVmYoZywiUEVSSU9EIik6ZVtHZi5haF09PT0yP1ZmKGcsIkNPTU1BIik6VmYoZywiQVVUT01BVElDIik6ZVtHZi5haF09PT0xP1ZmKGcsIlBFUklPRCIpOlZmKGcsIkNPTU1BIikpO2UuaGFzT3duUHJvcGVydHkoR2YuYmwpJiZnPT09bnVsbCYmKGc9ZVtHZi5ibF0pO2UuaGFzT3duUHJvcGVydHkoR2YuaWwpJiZnPT09dm9pZCAwJiYoZz1lW0dmLmlsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5lcCkmJihnPUpiKGcpKTtlLmhhc093blByb3BlcnR5KEdmLmZsKSYmZz09PSEwJiYoZz1lW0dmLmZsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5hbCkmJmc9PT0hMSYmKGc9ZVtHZi5hbF0pO2Q9Z31jYXRjaChoKXthLmxvZ01hY3JvRXJyb3ImJmEubG9nTWFjcm9FcnJvcihoLE51bWJlcih0aGlzLmluZGV4KSxjKSxkPSExfWJbdGhpcy5pbmRleF09ITE7cmV0dXJuIGR9fTtVei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgVno9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSD1hO3RoaXMudGFncz1iO3RoaXMubWFjcm9zPWN9O1Z6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3RyeXtmb3IodmFyIGM9e30sZD1tKE9iamVjdC5rZXlzKHRoaXMuSCkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2NbZl09Zj09PSJmdW5jdGlvbiI/dGhpcy5IW2ZdOmVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKX1yZXR1cm4gY2woYyl9Y2F0Y2goZyl7SlNPTi5zdHJpbmdpZnkodGhpcy5IKX1yZXR1cm4gMn07VnoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFd6PWZ1bmN0aW9uKGEsYil7dGhpcy5pbmRleD1iO3RoaXMuTj1bXTt0aGlzLlI9W107dGhpcy5LPVtdO3RoaXMuSD1bXTt0aGlzLm5hbWU9IiI7Zm9yKHZhciBjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPW0oZC52YWx1ZSksZj1lLm5leHQoKS52YWx1ZSxnPXlhKGUpLGg9ZixsPWc7aD09PSJpZiI/dGhpcy5OPWw6aD09PSJ1bmxlc3MiP3RoaXMuUj1sOmg9PT0iYWRkIj90aGlzLks9bDpoPT09ImJsb2NrIj90aGlzLkg9bDpoPT09InJ1bGVOYW1lIiYmKHRoaXMubmFtZT1sWzBdKX19OwpXei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1Yeih0aGlzLGIpLGQ9W10sZT1bXTtjPyhkLnB1c2guYXBwbHkoZCx3KHRoaXMuSykpLGUucHVzaC5hcHBseShlLHcodGhpcy5IKSkpOmM9PT1udWxsJiZlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpO3JldHVybntmaXJpbmdUYWdzOmQsYmxvY2tpbmdUYWdzOmV9fTsKdmFyIFh6PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW0oYS5OKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9YihkLnZhbHVlKTtpZihlPT09MClyZXR1cm4hMTtpZihlPT09MilyZXR1cm4gbnVsbH1mb3IodmFyIGY9bShhLlIpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1iKGcudmFsdWUpO2lmKGg9PT0yKXJldHVybiBudWxsO2lmKGg9PT0xKXJldHVybiExfXJldHVybiEwfTtXei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBZej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLklhPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5PPVN0cmluZyh0aGlzLklhW0dmLlliXSk7dGhpcy5uYW1lPVN0cmluZyh0aGlzLklhW0dmLlJtXXx8IiIpO3RoaXMudGFnSWQ9TnVtYmVyKHRoaXMuSWFbR2YueWpdKX07Cll6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwP3t9OmM7dmFyIGQsZT1jO2U9ZT09PXZvaWQgMD97fTplO3ZhciBmPXt9LGc7Zm9yKGcgaW4gdGhpcy5JYSl0aGlzLklhLmhhc093blByb3BlcnR5KGcpJiYoZltnXT1lbCh0aGlzLklhW2ddLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKSk7ZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsZSk7ZC52dHBfZ3RtVGFnSWQ9dGhpcy50YWdJZDt0aGlzLklhW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO1J6KGQse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjEsbmFtZTp0aGlzLm5hbWV9KX07WXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5JYSl9Owp2YXIgWno9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLnRuXSlyZXR1cm4gZWwoYS5JYVtHZi50bl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSwkej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YuRG5dKXJldHVybiBlbChhLklhW0dmLkRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LGFBPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5JYVtHZi5jcF07aWYoYylyZXR1cm4gZWwoYyxiLGEudGFncyxhLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbihhKXtyZXR1cm4gZWwodGhpcy5JYVtHZi5NRVRBREFUQV0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBiQT1mdW5jdGlvbigpe3RoaXMubWFjcm9zPVtdO3RoaXMucnVsZXM9W107dGhpcy5wcmVkaWNhdGVzPVtdO3RoaXMudGFncz1bXTt0aGlzLnZrPVtdfTtiQS5wcm90b3R5cGUuZ2V0UnVsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ydWxlc307dmFyIGNBPW5ldyBiQTtmdW5jdGlvbiBkQShhLGIsYyxkKXt2YXIgZT1XYygpLGY7aWYoZT09PTEpYTp7dmFyIGc9RSgzKTtnPWcudG9Mb3dlckNhc2UoKTtmb3IodmFyIGg9Imh0dHBzOi8vIitnLGw9Imh0dHA6Ly8iK2csbj0xLHA9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikscT0wO3E8cC5sZW5ndGgmJnE8MTAwO3ErKyl7dmFyIHI9cFtxXS5zcmM7aWYocil7cj1yLnRvTG93ZXJDYXNlKCk7aWYoci5pbmRleE9mKGwpPT09MCl7Zj0zO2JyZWFrIGF9bj09PTEmJnIuaW5kZXhPZihoKT09PTAmJihuPTIpfX1mPW59ZWxzZSBmPWU7cmV0dXJuKGY9PT0yfHxkfHwiaHR0cDoiIT09QS5sb2NhdGlvbi5wcm90b2NvbD9hOmIpK2N9O3ZhciBlQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEuSylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5LLGQpJiZjLnB1c2goZCsifiIrYS5LW2RdKTt2YXIgZT1bXSxmO2ZvcihmIGluIGEuSClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5ILGYpJiZlLnB1c2goZisifiIrYS5IW2ZdKTtiLnRmJiYoYS5LPXt9LGEuSD17fSk7dmFyIGc9W107Yy5sZW5ndGg+MCYmZy5wdXNoKFsiYmNzIixjLmpvaW4oIi4iKV0pO2UubGVuZ3RoPjAmJmcucHVzaChbImJldCIsZS5qb2luKCIuIildKTtyZXR1cm4gZ30pfSxmQTtmdW5jdGlvbiBnQSgpe2ZBfHwoZkE9bmV3IGVBKX07ZnVuY3Rpb24gaEEoYSxiLGMsZCxlKXtpZighRWsoYSkpe2QubG9hZEV4cGVyaW1lbnRzPXlqKCk7SGsoYSxkLGUpO3ZhciBmPWlBKGEpLGc9ZnVuY3Rpb24oKXtvaygpLmNvbnRhaW5lclthXSYmKG9rKCkuY29udGFpbmVyW2FdLnN0YXRlPTMpO2pBKCl9LGg9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgbD1YaigpLG49bCsiLyIra0EoZixhKTtabihoLG4sdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxuLGwrIi8iK2YsaCxnKX0pfWVsc2V7dmFyIHA9U2IoYSwiR1RNLSIpLHE9ZGsoKSxyPWM/Ii9ndGFnL2pzIjoiL2d0bS5qcyIsdD1tQShiLHIrZixhKTtpZighdCl7dmFyIHU9RSgzKStyO3EmJktjJiZwJiYodT1LYy5yZXBsYWNlKC9eKD86aHR0cHM/OlwvXC8pPy9pLCIiKS5zcGxpdCgvWz8jXS8pWzBdKTt0PWRBKCJodHRwczovLyIsImh0dHA6Ly8iLHUrZil9Wm4oaCx0LHZvaWQgMCxnKX19fQpmdW5jdGlvbiBqQSgpe0trKCl8fEdiKExrKCksZnVuY3Rpb24oYSxiKXtuQShhLGIudHJhbnNwb3J0VXJsLGIuY29udGV4dCk7UCg5Mil9KX1mdW5jdGlvbiBuQShhLGIsYyxkKXtpZighR2soYSkpaWYoYy5sb2FkRXhwZXJpbWVudHN8fChjLmxvYWRFeHBlcmltZW50cz15aigpKSxLaygpKUprKGEsYixjLGQpO2Vsc2V7SWsoYSxjLGQpO3ZhciBlPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGY9WGooKSxnPSJndGQiK2lBKGEsITApLGg9ZisiLyIra0EoZyxhKTtabihlLGgsdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxoLGYrIi8iK2csZSl9KX1lbHNle3ZhciBsPSIvZ3RhZy9kZXN0aW5hdGlvbiIraUEoYSwhMCksbj1tQShiLGwsYSk7bnx8KG49ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsRSgzKStsKSk7Wm4oZSxuKX19fQpmdW5jdGlvbiBsQShhLGIsYyxkLGUpe2lmKE0oNDEzKSl7Z0EoKTt2YXIgZj1mQTtpZihmbi5OKXt2YXIgZz1BLnBlcmZvcm1hbmNlLGg9LTE7aWYoZyYmZy5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbD1SaihiKS5ocmVmLG49Zy5nZXRFbnRyaWVzQnlOYW1lKGwpLnBvcCgpO2lmKCFuKWZvcih2YXIgcD1nLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj1wW3FdO2lmKHIubmFtZSYmci5uYW1lLmluZGV4T2YoYikhPT0tMSl7bj1yO2JyZWFrfX1uJiZuLnJlc3BvbnNlU3RhdHVzIT09dm9pZCAwJiYoaD1uLnJlc3BvbnNlU3RhdHVzKX1mLktbYV09aH1QKDE5MCk7dmFyIHQ9bm0oam0uYmEua2opfHx7fTt0W2FdPSEwO21tKGptLmJhLmtqLHQpO3ZhciB1PWMrKGMuaW5kZXhPZigiPyIpPT09LTE/Ij9mPTEiOiImZj0xIik7ZT9abihkLHUsdm9pZCAwLGUpOlpuKGQsdSl9ZWxzZSBlJiZlKCl9CmZ1bmN0aW9uIGlBKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Ij9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChhKSxkPUUoMTkpO2QhPT0iZGF0YUxheWVyIiYmKGMrPSImbD0iK2QpO3ZhciBlPVNiKGEsIkdUTS0iKTtpZighZXx8YiljKz0iJmN4PWMiO2UmJklmKDYyKSYmKGMrPSImZ29vZ2xlX29ubHk9dHJ1ZSIpO3ZhciBmPWMsZyxoPXtEbzpKZigxNSksSW86RSgxNCl9O2c9Q2YoaCk7Yz1mKygiJmd0bT0iK2cpO2RrKCkmJihjKz0iJnNpZ249IitBai5xaik7dmFyIGw9YyxuPUpmKDU0KTtpZihuPT09MSl7bCs9IiZmcHM9ZmMiO3ZhciBwPUUoNjApO3AmJihsKz0iJmdkZXY9IitwKX1lbHNlIG49PT0yJiYobCs9IiZmcHM9ZmUiKTtyZXR1cm4gbH0KZnVuY3Rpb24ga0EoYSxiKXtpZighTSg0MTMpfHwhWGooKSlyZXR1cm4gYTt2YXIgYz1FKDU4KTtpZighYylyZXR1cm4gUCgxODIpLGE7dHJ5e3ZhciBkPU5iKCksZT1FZihhLGMpLGY9TmIoKS1kO2dBKCk7dmFyIGc9ZkE7Zm4uTiYmKGcuSFtiXT1mKTtyZXR1cm4gZX1jYXRjaChoKXtyZXR1cm4gUCgxODMpLGF9fWZ1bmN0aW9uIG1BKGEsYixjKXtpZihhaygpJiZhKXt2YXIgZD1FKDU4KSxlPVhqKCk7aWYoZCYmZSl0cnl7dmFyIGY9TmIoKTtiPWUrIi8iK0VmKGIsZCk7dmFyIGc9TmIoKS1mO2dBKCk7dmFyIGg9ZkE7Zm4uTiYmKGguSFtjXT1nKX1jYXRjaChsKXtQKDE4Myl9cmV0dXJuIFlqKGEsYil9fTt2YXIgcEE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz1uZXcgRmI7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9e25hbWU6RSgxOSksc2V0OmZ1bmN0aW9uKGIsYyl7RWQoVmIoYixjKSxhLkgpO29BKGEpfSxnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuZ2V0KGIsMil9LHJlc2V0OmZ1bmN0aW9uKCl7YS5LPW5ldyBGYjthLkg9e307b0EoYSl9fX07cEEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3JldHVybiBiIT0yP3RoaXMuSy5nZXQoYSk6cUEodGhpcyxhKX07dmFyIHFBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLnNwbGl0KCIuIik7Yz1jfHxbXTtmb3IodmFyIGU9YS5ILGY9MDtmPGQubGVuZ3RoO2YrKyl7aWYoZT09PW51bGwpcmV0dXJuITE7aWYoZT09PXZvaWQgMClicmVhaztlPWVbZFtmXV07aWYoYy5pbmRleE9mKGUpIT09LTEpcmV0dXJufXJldHVybiBlfTsKcEEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTi5oYXNPd25Qcm9wZXJ0eShhKXx8KHRoaXMuSy5zZXQoYSxiKSxFZChWYihhLGIpLHRoaXMuSCksb0EodGhpcykpfTt2YXIgc0E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9WyJndG0uYWxsb3dsaXN0IiwiZ3RtLmJsb2NrbGlzdCIsImd0bS53aGl0ZWxpc3QiLCJndG0uYmxhY2tsaXN0IiwidGFnVHlwZUJsYWNrbGlzdCJdLGI9ckEsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9Yi5nZXQoZCwxKTtpZihBcnJheS5pc0FycmF5KGUpfHxDZChlKSllPUVkKGUsbnVsbCk7Yi5OW2RdPWV9fSxvQT1mdW5jdGlvbihhLGIpe0diKGEuTixmdW5jdGlvbihjLGQpe2EuSy5zZXQoYyxkKTtFZChWYihjKSxhLkgpO0VkKFZiKGMsZCksYS5IKTtiJiZkZWxldGUgYS5OW2NdfSl9LHJBPW5ldyBwQSx0QT1yQS5SO2Z1bmN0aW9uIHVBKGEsYil7cmV0dXJuIHJBLmdldChhLGIpfQpmdW5jdGlvbiB2QShhLGIpe3ZhciBjPWI9PT12b2lkIDA/MjpiLGQ9ckEsZSxmPShjPT09dm9pZCAwPzI6YykhPT0xP3FBKGQsYSk6ZC5LLmdldChhKTtBZChmKT09PSJhcnJheSJ8fEFkKGYpPT09Im9iamVjdCI/ZT1FZChmLG51bGwpOmU9ZjtyZXR1cm4gZX07dmFyIHdBPW5ldyBSZWdFeHAoL14oLipcLik/KGdvb2dsZXx5b3V0dWJlfGJsb2dnZXJ8d2l0aGdvb2dsZSkoXC5jb20/KT8oXC5bYS16XXsyfSk/XC4/JC8pLHhBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbIm5vbkdvb2dsZVBpeGVscyJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlUGl4ZWxzOltdLG5vbkdvb2dsZVNjcmlwdHM6WyJub25Hb29nbGVQaXhlbHMiXSxub25Hb29nbGVJZnJhbWVzOlsibm9uR29vZ2xlUGl4ZWxzIl19LHlBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbImN1c3RvbVNjcmlwdHMiLAoiaHRtbCJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiXSxub25Hb29nbGVQaXhlbHM6WyJjdXN0b21QaXhlbHMiLCJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlU2NyaXB0czpbImN1c3RvbVNjcmlwdHMiLCJodG1sIl0sbm9uR29vZ2xlSWZyYW1lczpbImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyJdfSx6QT0iZ29vZ2xlIGN1c3RvbVBpeGVscyBjdXN0b21TY3JpcHRzIGh0bWwgbm9uR29vZ2xlUGl4ZWxzIG5vbkdvb2dsZVNjcmlwdHMgbm9uR29vZ2xlSWZyYW1lcyIuc3BsaXQoIiAiKTsKZnVuY3Rpb24gQUEoKXt2YXIgYT11QSgiZ3RtLmFsbG93bGlzdCIpfHx1QSgiZ3RtLndoaXRlbGlzdCIpO2EmJlAoOSk7SWYoNjIpJiYoYT12b2lkIDApO0JBKCkmJihJZig2Mik/UCgxMTYpOihQKDExNyksSWYoNDgpJiYoYT1bXSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdUTSBibG9ja2VkLiBTZWUgZ28vMTM2ODc3MjguIikpKSk7dmFyIGI9YSYmUmIoS2IoYSkseEEpLGM9dUEoImd0bS5ibG9ja2xpc3QiKXx8dUEoImd0bS5ibGFja2xpc3QiKTtjfHwoYz11QSgidGFnVHlwZUJsYWNrbGlzdCIpKSYmUCgzKTtjP1AoOCk6Yz1bXTtCQSgpJiYoYz1LYihjKSxjLnB1c2goIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJzYW5kYm94ZWRTY3JpcHRzIikpO0tiKGMpLmluZGV4T2YoImdvb2dsZSIpPj0wJiZQKDIpO3ZhciBkPWMmJlJiKEtiKGMpLHlBKSxlPXt9O3JldHVybiBmdW5jdGlvbihmKXt2YXIgZz1mJiYKZltHZi5ZYl07aWYoIWd8fHR5cGVvZiBnIT09InN0cmluZyIpcmV0dXJuITA7Zz1nLnJlcGxhY2UoL15fKi8sIiIpO2lmKGVbZ10hPT12b2lkIDApcmV0dXJuIGVbZ107dmFyIGg9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ddfHxbXSxsPSEwO2EmJihsPWwmJkNBKGcsaCxiKSk7dmFyIG49ITE7YyYmKG49REEoZyxoLGQpKTt2YXIgcD0hbHx8bjshcCYmKGguaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpPT09LTF8fGImJmIuaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpIT09LTE/MDpFYihkLHpBKSkmJihwPSEwKTtyZXR1cm4gZVtnXT1wfX1mdW5jdGlvbiBDQShhLGIsYyl7aWYoYy5pbmRleE9mKGEpPDApaWYoYiYmYi5sZW5ndGg+MClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7aWYoYy5pbmRleE9mKGJbZF0pPDApcmV0dXJuIFAoMTEpLCExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9CmZ1bmN0aW9uIERBKGEsYixjKXt2YXIgZD1jLmluZGV4T2YoYSk+PTA7aWYoZClyZXR1cm4gZDt2YXIgZT1FYihjLGJ8fFtdKTtlJiZQKDEwKTtyZXR1cm4gZX1mdW5jdGlvbiBCQSgpe3JldHVybiB3QS50ZXN0KEEubG9jYXRpb24mJkEubG9jYXRpb24uaG9zdG5hbWUpfTtmdW5jdGlvbiBFQShhKXtmb3IodmFyIGI9W10sYz1bXSxkPUZBKGEpLGU9bShjQS5nZXRSdWxlcygpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUuZXZhbHVhdGUoYSxkKSxoPWcuZmlyaW5nVGFncyxsPWcuYmxvY2tpbmdUYWdzLG49MDtuPGgubGVuZ3RoO24rKyliW2hbbl1dPSEwO2Zvcih2YXIgcD0wO3A8bC5sZW5ndGg7cCsrKWNbbFtwXV09ITB9Zm9yKHZhciBxPVtdLHI9MDtyPGNBLnRhZ3MubGVuZ3RoO3IrKyliW3JdJiYhY1tyXSYmKHFbcl09ITApO3JldHVybiBxfWZ1bmN0aW9uIEZBKGEpe3ZhciBiPVtdO3JldHVybiBmdW5jdGlvbihjKXtiW2NdPT09dm9pZCAwJiYoYltjXT1jQS5wcmVkaWNhdGVzW2NdLmV2YWx1YXRlKGEsW10pKTtyZXR1cm4gYltjXX19O3ZhciBHQT1mdW5jdGlvbigpe3RoaXMuSz0wO3RoaXMuSD17fX07R0EucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0rK3RoaXMuSzt0aGlzLkhbYV09dGhpcy5IW2FdfHx7fTt0aGlzLkhbYV1bU3RyaW5nKGQpXT17bGlzdGVuZXI6YixyZjpjfTtyZXR1cm4gZH07R0EucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdLGQ9U3RyaW5nKGIpO2lmKCFjfHwhY1tkXSlyZXR1cm4hMTtkZWxldGUgY1tkXTtyZXR1cm4hMH07dmFyIElBPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107R2IoSEEuSFthXSxmdW5jdGlvbihkLGUpe2MuaW5kZXhPZihlLmxpc3RlbmVyKTwwJiYoZS5yZj09PXZvaWQgMHx8Yi5pbmRleE9mKGUucmYpPj0wKSYmYy5wdXNoKGUubGlzdGVuZXIpfSk7cmV0dXJuIGN9O2Z1bmN0aW9uIEpBKGEsYixjKXtyZXR1cm57ZW50aXR5VHlwZTphLGluZGV4SW5PcmlnaW5Db250YWluZXI6YixuYW1lSW5PcmlnaW5Db250YWluZXI6YyxvcmlnaW5Db250YWluZXJJZDpFKDUpLG9yaWdpbkNJZDp2aygpfX07ZnVuY3Rpb24gS0EoYSxiKXtpZihkYXRhLmVudGl0aWVzKXt2YXIgYz1kYXRhLmVudGl0aWVzW2FdO2lmKGMpcmV0dXJuIGNbYl19fTt2YXIgTUE9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9ITE7dGhpcy5SPVtdO3RoaXMuZXZlbnREYXRhPXt0YWdzOltdfTt0aGlzLlo9ITE7dGhpcy5LPXRoaXMuTj0wO0xBKHRoaXMsYSxiKX0sTkE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoQ2ouaGFzT3duUHJvcGVydHkoYil8fGI9PT0iX196b25lIilyZXR1cm4tMTt2YXIgZT17fTtDZChkKSYmKGU9RWQoZCxlKSk7ZS5pZD1jO2Uuc3RhdHVzPSJ0aW1lb3V0IjtyZXR1cm4gYS5ldmVudERhdGEudGFncy5wdXNoKGUpLTF9LE9BPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuZXZlbnREYXRhLnRhZ3NbYl07ZSYmKGUuc3RhdHVzPWMsZS5leGVjdXRpb25UaW1lPWQpfSxQQT1mdW5jdGlvbihhKXtpZighYS5IKXtmb3IodmFyIGI9YS5SLGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdKCk7YS5IPSEwO2EuUi5sZW5ndGg9MH19LExBPWZ1bmN0aW9uKGEsYixjKXtiIT09dm9pZCAwJiZhLndnKGIpO2MmJkEuc2V0VGltZW91dChmdW5jdGlvbigpe1BBKGEpfSwKTnVtYmVyKGMpKX07TUEucHJvdG90eXBlLndnPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1QYihmdW5jdGlvbigpe2JkKGZ1bmN0aW9uKCl7YShFKDUpLGIuZXZlbnREYXRhKX0pfSk7dGhpcy5IP2MoKTp0aGlzLlIucHVzaChjKX07dmFyIFFBPWZ1bmN0aW9uKGEpe2EuTisrO3JldHVybiBQYihmdW5jdGlvbigpe2EuSysrO2EuWiYmYS5LPj1hLk4mJlBBKGEpfSl9LFJBPWZ1bmN0aW9uKGEpe2EuWj0hMDthLks+PWEuTiYmUEEoYSl9O2Z1bmN0aW9uIFNBKCl7cmV0dXJuIEFbVEEoKV19CmZ1bmN0aW9uIFRBKCl7cmV0dXJuIEEuR29vZ2xlQW5hbHl0aWNzT2JqZWN0fHwiZ2EifXZhciBXQT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e319O2Z1bmN0aW9uIFhBKCl7YTp7dmFyIGE9RSg1KTt9fQpmdW5jdGlvbiBZQShhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVNBKCksZD1jJiZjLmdldEJ5TmFtZSYmYy5nZXRCeU5hbWUoYSk7aWYoZCl7dmFyIGU9ZC5nZXQoInNlbmRIaXRUYXNrIik7ZC5zZXQoInNlbmRIaXRUYXNrIixmdW5jdGlvbihmKXt2YXIgZz1mLmdldCgiaGl0UGF5bG9hZCIpLGg9Zi5nZXQoImhpdENhbGxiYWNrIiksbD1nLmluZGV4T2YoIiZ0aWQ9IitiKTwwO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZy5yZXBsYWNlKC8mdGlkPVVBLVswLTldKy1bMC05XSsvLCImdGlkPSIrYiksITApLGYuc2V0KCJoaXRDYWxsYmFjayIsdm9pZCAwLCEwKSk7ZShmKTtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcsITApLGYuc2V0KCJoaXRDYWxsYmFjayIsaCwhMCksZi5zZXQoIl94XzE5Iix2b2lkIDAsITApLGUoZikpfSl9fX07dmFyIGFCPVsiZXMiLCIxIl0sYkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZXZlbnREYXRhPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYzt2YXIgZD1iLmV2ZW50SWQsZT1iLnRmO2lmKGEuZXZlbnREYXRhW2RdKXt2YXIgZj1bXTthLkhbZF18fGYucHVzaChhQik7Zi5wdXNoLmFwcGx5KGYsdyhhLmV2ZW50RGF0YVtkXSkpO2UmJihhLkhbZF09ITApO2M9Zn1lbHNlIGM9W107cmV0dXJuIGN9KX0sY0I7ZnVuY3Rpb24gZEIoYSxiKXt2YXIgYztpZigoYz1jQikhPW51bGwmJmZuLk4pe3ZhciBkPWMuZXZlbnREYXRhLGU7ZT1iLm1hdGNoKC9eKGd0bXxndGFnKVwuLyk/ZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIqIjtkW2FdPVtbImUiLGVdLFsiZWlkIixTdHJpbmcoYSldXTtneigpO2V6KGEpfX07dmFyIGVCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbInRyIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbInRpIixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LGZCOwpmdW5jdGlvbiBnQihhLGIsYyl7ZkJ8fChmQj1uZXcgZUIpO3ZhciBkPWZCO2lmKGZuLk4mJmIpe3ZhciBlPWRuKGIpO2QuSFthXT1kLkhbYV18fFtdO2QuSFthXS5wdXNoKGMrZSk7dmFyIGY9YltHZi5ZYl07aWYoIWYpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBnPShReltmXT8iMSI6IjIiKStlO2QuS1thXT1kLktbYV18fFtdO2QuS1thXS5wdXNoKGcpO2d6KCk7ZXooYSl9fTtmdW5jdGlvbiBoQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigwLGEsYixjKX1mdW5jdGlvbiBqQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDAsYSl9ZnVuY3Rpb24ga0IoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMSxhLGIsYyl9ZnVuY3Rpb24gbEIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygxLGEpfXZhciBtQj1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuSD17fX0sbkI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRhaW5lcltiXTtjfHwoYz17X2VudGl0eTp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119LF9ldmVudDp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119fSxhLmNvbnRhaW5lcltiXT1jKTtyZXR1cm4gY307Cm1CLnByb3RvdHlwZS5hZGRSZXN0cmljdGlvbj1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZighZHx8IXRoaXMuSFtiXSl7dmFyIGU9bkIodGhpcyxiKTthPT09MD9kP2UuX2VudGl0eS5leHRlcm5hbC5wdXNoKGMpOmUuX2VudGl0eS5pbnRlcm5hbC5wdXNoKGMpOmE9PT0xJiYoZD9lLl9ldmVudC5leHRlcm5hbC5wdXNoKGMpOmUuX2V2ZW50LmludGVybmFsLnB1c2goYykpfX07Cm1CLnByb3RvdHlwZS5nZXRSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpO2lmKGE9PT0wKXt2YXIgZCxlO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihlPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXSkpfWlmKGE9PT0xKXt2YXIgZixnO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZj1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmYuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGc9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpnLmV4dGVybmFsKXx8W10pKX1yZXR1cm5bXX07Cm1CLnByb3RvdHlwZS5nZXRFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYiksZCxlO3JldHVybiBhPT09MD8oYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5leHRlcm5hbCl8fFtdOihjPT1udWxsP3ZvaWQgMDooZT1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXX07bUIucHJvdG90eXBlLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEpe3ZhciBiPW5CKHRoaXMsYSk7Yi5fZXZlbnQmJihiLl9ldmVudC5leHRlcm5hbD1bXSk7Yi5fZW50aXR5JiYoYi5fZW50aXR5LmV4dGVybmFsPVtdKTt0aGlzLkhbYV09ITB9O2Z1bmN0aW9uIGlCKCl7cmV0dXJuIGtqKCJyIixmdW5jdGlvbigpe3JldHVybiBuZXcgbUJ9KX07ZnVuY3Rpb24gb0IoYSxiLGMsZCl7dmFyIGU9Y0EudGFnc1thXSxmPXBCKGEsYixjLGQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBnPVp6KGUsYyk7aWYoZyYmZy5sZW5ndGgpe3ZhciBoPWdbMF07Zj1vQihoLmluZGV4LHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6aC5ibz09PTE/Yi50ZXJtaW5hdGU6Zix0ZXJtaW5hdGU6Yi50ZXJtaW5hdGV9LGMsZCl9cmV0dXJuIGZ9CmZ1bmN0aW9uIHBCKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXtmdW5jdGlvbiB5KCl7aW0oMyk7dmFyIFM9TmIoKS1OO0pBKDEsYSxmLmdldE5hbWUoKSk7Z0IoYy5pZCxnLCI3Iik7T0EoYy5sZCxELCJleGNlcHRpb24iLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnVqKTtJfHwoST0hMCxsKCkpfWlmKGYuSWFbR2YuT3FdKWwoKTtlbHNle3ZhciB6PWFBKGYsYyk7aWYoeiE9bnVsbClmb3IodmFyIEM9MDtDPHoubGVuZ3RoO0MrKylpZighWG8oeltDXSkpe2woKTtyZXR1cm59dmFyIEQ9TkEoYy5sZCxmLk8sZi50YWdJZCxmLmdldE1ldGFkYXRhKGMpKSxJPSExLEc9e3Z0cF9ndG1PblN1Y2Nlc3M6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI1Iik7T0EoYy5sZCxELCJzdWNjZXNzIixTKTtmbi5IJiZGeihjLGcsSXkuWC53aik7aCgpfX0sdnRwX2d0bU9uRmFpbHVyZTpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjYiKTsKT0EoYy5sZCxELCJmYWlsdXJlIixTKTtmbi5IJiZGeihjLGcsSXkuWC52aik7bCgpfX19O0cudnRwX2d0bUV2ZW50SWQ9Yy5pZDtjLnByaW9yaXR5SWQmJihHLnZ0cF9ndG1Qcmlvcml0eUlkPWMucHJpb3JpdHlJZCk7Z0IoYy5pZCxnLCIxIik7Zm4uSCYmRXooYyxnKTt2YXIgTj1OYigpO3RyeXtmLmV2YWx1YXRlKGMsZCxHKX1jYXRjaChTKXt5KFMpfWZuLkgmJkZ6KGMsZyxJeS5YLkNuKX19dmFyIGY9Y0EudGFnc1thXSxnPWYuRmcoKSxoPWIub25TdWNjZXNzLGw9Yi5vbkZhaWx1cmUsbj1iLnRlcm1pbmF0ZTtpZihjLmlzQmxvY2tlZChnKSlyZXR1cm4gbnVsbDt2YXIgcD0keihmLGMpO2lmKHAmJnAubGVuZ3RoKXt2YXIgcT1wWzBdLHI9b0IocS5pbmRleCx7b25TdWNjZXNzOmgsb25GYWlsdXJlOmwsdGVybWluYXRlOm59LGMsZCk7aWYoIXIpcmV0dXJuIG51bGw7aD1yO2w9cS5ibz09PTI/bjpyfWlmKGYuSWFbR2Yua25dfHxmLklhW0dmLlFxXSl7dmFyIHQ9Zi5JYVtHZi5rbl0/CmNBLnZrOmMudmssdT1oLHY9bDtpZighdFthXSl7dmFyIHg9cUIoYSx0LFBiKGUpKTtoPXgub25TdWNjZXNzO2w9eC5vbkZhaWx1cmV9cmV0dXJuIGZ1bmN0aW9uKCl7dFthXSh1LHYpfX1yZXR1cm4gZX1mdW5jdGlvbiBxQihhLGIsYyl7dmFyIGQ9W10sZT1bXTtiW2FdPXJCKGQsZSxjKTtyZXR1cm57b25TdWNjZXNzOmZ1bmN0aW9uKCl7YlthXT1zQjtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKylkW2ZdKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2JbYV09dEI7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSgpfX19ZnVuY3Rpb24gckIoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkLGUpe2EucHVzaChkKTtiLnB1c2goZSk7YygpfX1mdW5jdGlvbiBzQihhKXthKCl9ZnVuY3Rpb24gdEIoYSxiKXtiKCl9O3ZhciB3Qj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxjQS50YWdzLmxlbmd0aDtkKyspaWYoYVtkXSl7dmFyIGU9Y0EudGFnc1tkXTt2YXIgZj1RQShiLmxkKTt0cnl7dmFyIGc9b0IoZCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmYsdGVybWluYXRlOmZ9LGIsZCk7aWYoZyl7dmFyIGg9UXpbZS5PXTtjLnB1c2goe05vOmQscHJpb3JpdHlPdmVycmlkZTooaD9oLnByaW9yaXR5T3ZlcnJpZGV8fDA6MCl8fEtBKGUuTywxKXx8MCxleGVjdXRlOmd9KX1lbHNlIHVCKGQsYiksZigpfWNhdGNoKG4pe2YoKX19Yy5zb3J0KHZCKTtmb3IodmFyIGw9MDtsPGMubGVuZ3RoO2wrKyljW2xdLmV4ZWN1dGUoKTtyZXR1cm4gYy5sZW5ndGg+MH07CmZ1bmN0aW9uIHhCKGEsYil7aWYoIUhBKXJldHVybiExO3ZhciBjPWFbImd0bS50cmlnZ2VycyJdJiZTdHJpbmcoYVsiZ3RtLnRyaWdnZXJzIl0pLGQ9SUEoYS5ldmVudCxjP1N0cmluZyhjKS5zcGxpdCgiLCIpOltdKTtpZighZC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPVFBKGIpO3RyeXtkW2VdKGEsZil9Y2F0Y2goZyl7ZigpfX1yZXR1cm4hMH1mdW5jdGlvbiB2QihhLGIpe3ZhciBjLGQ9Yi5wcmlvcml0eU92ZXJyaWRlLGU9YS5wcmlvcml0eU92ZXJyaWRlO2M9ZD5lPzE6ZDxlPy0xOjA7dmFyIGY7aWYoYyE9PTApZj1jO2Vsc2V7dmFyIGc9YS5ObyxoPWIuTm87Zj1nPmg/MTpnPGg/LTE6MH1yZXR1cm4gZn0KZnVuY3Rpb24gdUIoYSxiKXtpZihmbi5OKXt2YXIgYz1mdW5jdGlvbihkKXt2YXIgZT1iLmlzQmxvY2tlZChjQS50YWdzW2RdLkZnKCkpPyIzIjoiNCIsZj1aeihjQS50YWdzW2RdLGIpO2YmJmYubGVuZ3RoJiZjKGZbMF0uaW5kZXgpO2dCKGIuaWQsY0EudGFnc1tkXS5GZygpLGUpO3ZhciBnPSR6KGNBLnRhZ3NbZF0sYik7ZyYmZy5sZW5ndGgmJmMoZ1swXS5pbmRleCl9O2MoYSl9fXZhciBIQTtmdW5jdGlvbiB5Qigpe0hBfHwoSEE9bmV3IEdBKTtyZXR1cm4gSEF9CmZ1bmN0aW9uIHpCKGEpe3ZhciBiPWFbImd0bS51bmlxdWVFdmVudElkIl0sYz1hWyJndG0ucHJpb3JpdHlJZCJdLGQ9YVsiZ3RtLnByaW9yaXR5UXVldWUiXSxlPWEuZXZlbnQ7Zm4uSCYmdnooYixlKTtpZihlPT09Imd0bS5qcyIpe2lmKCRrKDEzKSlyZXR1cm4hMTtaaygxMywhMCl9dmFyIGY9ITEsZz1sQigpLGg9RWQoYSxudWxsKTtpZighZy5ldmVyeShmdW5jdGlvbih1KXtyZXR1cm4gdSh7b3JpZ2luYWxFdmVudERhdGE6aH0pfSkpe2lmKGUhPT0iZ3RtLmpzIiYmZSE9PSJndG0uaW5pdCImJmUhPT0iZ3RtLmluaXRfY29uc2VudCIpcmV0dXJuITE7Zj0hMH1kQihiLGUpO3ZhciBsPWEuZXZlbnRDYWxsYmFjayxuPWEuZXZlbnRUaW1lb3V0LHA9e2lkOmIscHJpb3JpdHlJZDpjLHByaW9yaXR5UXVldWU6ZCxuYW1lOmUsaXNCbG9ja2VkOkFCKGgsZiksdms6W10sbG9nTWFjcm9FcnJvcjpmdW5jdGlvbih1LHYseCl7UCg2KTtpbSg0KTtKQSgyLHYseCl9LGNhY2hlZE1vZGVsVmFsdWVzOkJCKCksCmxkOm5ldyBNQShmdW5jdGlvbigpe2ZuLkgmJnl6KGIsZSk7RnkoNSxlKTtsJiZsLmFwcGx5KGwsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sbiksb3JpZ2luYWxFdmVudERhdGE6aH07Zm4uSCYmQ3oocC5pZCk7dmFyIHE9RUEocCk7Zm4uSCYmRHoocC5pZCk7RnkoMixlKTtjQS5nZXRSdWxlcygpO2YmJihxPUNCKHEpKTtmbi5IJiZ3eihiKTt2YXIgcj13QihxLHApO3ImJkZ5KDQsZSk7dmFyIHQ9eEIoYSxwLmxkKTtSQShwLmxkKTtlIT09Imd0bS5qcyImJmUhPT0iZ3RtLnN5bmMifHxYQSgpO3JldHVybiBEQihxLHIpfHx0fQpmdW5jdGlvbiBCQigpe3ZhciBhPXt9O2EuZXZlbnQ9dkEoImV2ZW50IiwxKTthLmVjb21tZXJjZT12QSgiZWNvbW1lcmNlIiwxKTthLmd0bT12QSgiZ3RtIik7YS5ldmVudE1vZGVsPXZBKCJldmVudE1vZGVsIik7cmV0dXJuIGF9CmZ1bmN0aW9uIEFCKGEsYil7dmFyIGM9QUEoKTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9YyhkKTtpZihlKXJldHVybiEwO3ZhciBmPWQmJmRbR2YuWWJdO2lmKCFmfHx0eXBlb2YgZiE9PSJzdHJpbmciKXJldHVybiEwO2Y9Zi5yZXBsYWNlKC9eXyovLCIiKTt2YXIgZz1qQigpLGg9YTtiJiYoaD1FZChhLG51bGwpLGhbImd0bS51bmlxdWVFdmVudElkIl09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2Zvcih2YXIgbD0hMSxuPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtmXXx8W10scD1tKGcpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlO3RyeXtyKHtlbnRpdHlJZDpmLHNlY3VyaXR5R3JvdXBzOm4sb3JpZ2luYWxFdmVudERhdGE6aH0pfHwobD0hMCl9Y2F0Y2godCl7bD0hMH19cmV0dXJuIGx8fGV9fQpmdW5jdGlvbiBDQihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10pe3ZhciBkPWNBLnRhZ3NbY10uTztpZihCaltkXXx8Y0EudGFnc1tjXS5JYVtHZi5ScV0hPT12b2lkIDB8fEtBKGQsMikpYltjXT0hMH1yZXR1cm4gYn1mdW5jdGlvbiBEQihhLGIpe2lmKCFiKXJldHVybiBiO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmNBLnRhZ3NbY10mJiFDaltjQS50YWdzW2NdLk9dKXJldHVybiEwO3JldHVybiExfTt2YXIgRUI9TmYoNjEsMUUzKSxGQj1OZig2OCwyRTMpLFpvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl07ZnVuY3Rpb24gR0IoYSxiKXtpZihhKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSksZDthIT09Mnx8KChkPUhCKCkpPT1udWxsP3ZvaWQgMDpkLnN0YXR1cykhPT0zfHxiIT09dm9pZCAwJiZiPD1GQnx8KGE9MyxjLmRsPWI/TWF0aC5mbG9vcihiLzFFMyk6dm9pZCAwKTtjLnM9YTtJQihjKX19ZnVuY3Rpb24gSUIoYSl7aWYoYS5zKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBjPXtzdGF0dXM6YS5zLGV4cGlyZXM6RGF0ZS5ub3coKSs4NjRFNX07YS5kbCE9PXZvaWQgMCYmKGMuZGVsYXk9YS5kbCk7a3IoImd0Z19sb2FkX3N0YXR1cyIsYyl9O2JwKGZ1bmN0aW9uKCl7aWYoWW8oKSliKCk7ZWxzZSBmb3IodmFyIGM9UGIoYiksZD1tKFpvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlJbChjLGUudmFsdWUpfSxabyl9fQpmdW5jdGlvbiBKQigpe3ZhciBhPUtCKCEwKTtyZXR1cm4gYT8oTEIoYS5zdGF0dXMsYS5kZWxheSksITEpOiEwfWZ1bmN0aW9uIEtCKGEpe2E9YT09PXZvaWQgMD8hMTphO2lmKGFrKCkpe3ZhciBiPW5yKCJndGdfbG9hZF9zdGF0dXMiKSxjPWIudmFsdWUsZD1hJiZBYihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpJiYoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKTxEYXRlLm5vdygpKzM2RTU7aWYoYi5lcnJvcj09PTAmJkFiKGM9PW51bGw/dm9pZCAwOmMuc3RhdHVzKSYmIWQpe3ZhciBlPXtzdGF0dXM6Yy5zdGF0dXN9OyhjPT1udWxsP3ZvaWQgMDpjLmRlbGF5KSE9PXZvaWQgMCYmKGUuZGVsYXk9Yy5kZWxheSk7cmV0dXJuIGV9cmV0dXJuIEhCKCl9fWZ1bmN0aW9uIExCKGEsYil7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2Mucz1hO2IhPT12b2lkIDAmJihjLmRsPWIpfQpmdW5jdGlvbiBIQigpe3ZhciBhPW1qKCJndGgiKTtpZihhIT1udWxsJiZhLnMpe3ZhciBiPXtzdGF0dXM6YS5zfTthLmRsIT09dm9pZCAwJiYoYi5kZWxheT1hLmRsKTtyZXR1cm4gYn19ZnVuY3Rpb24gTUIoKXt2YXIgYTsoKGE9SEIoKSk9PW51bGw/dm9pZCAwOmEuc3RhdHVzKT09PTEmJkdCKDMpfWZ1bmN0aW9uIE5CKCl7aWYoSkIoKSl7dmFyIGE9RGF0ZS5ub3coKTtuaigiZ3RoIix7bDpmdW5jdGlvbigpe0dCKDIsRGF0ZS5ub3coKS1hKX0sczoxfSk7dmFyIGI9RSg1KSxjPVNiKGIsIkdUTS0iKT8iL2d0bS5qcyI6Ii9ndGFnL2pzIixkPSJodHRwczovLyIrRSgzKStjKyI/aWQ9IitiKyImZ3RnX2hlYWx0aD0xIjtVYyhkLE1CLE1CKTtBLnNldFRpbWVvdXQoTUIsRUIpfX07ZnVuY3Rpb24gT0IoKXt5QigpLmFkZExpc3RlbmVyKCJndG0uaW5pdCIsZnVuY3Rpb24oYSxiKXtaaygyNiwhMCk7TSg1NTYpJiZhaygpJiYhSWYoNDUpJiYoZm8uSFtjby5pYS5aYl09Ym8uTWEuTGgpO2lmKGFrKCkpe3ZhciBjO2M9bG8oY28uaWEuWmIpO2dvKGMpP2lvKGMsTkIpOk5CKCl9dG8oITEsITApO2IoKX0pfTtmdW5jdGlvbiBQQigpe2lmKG1qKCJwc2NkbCIpIT09dm9pZCAwKW5tKGptLmJhLm9pKT09PXZvaWQgMCYmbW0oam0uYmEub2ksbWooInBzY2RsIikpO2Vsc2V7dmFyIGE9ZnVuY3Rpb24oYyl7bmooInBzY2RsIixjKTttbShqbS5iYS5vaSxjKX0sYj1mdW5jdGlvbigpe2EoImVycm9yIil9O3RyeXtIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsPyhhKCJwZW5kaW5nIiksSGMuY29va2llRGVwcmVjYXRpb25MYWJlbC5nZXRWYWx1ZSgpLnRoZW4oYSkuY2F0Y2goYikpOmEoIm5vYXBpIil9Y2F0Y2goYyl7YihjKX19fTt2YXIgUkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMucmVhZHk9ITE7dGhpcy5LPTA7dGhpcy5IPVtdO3ZhciBiPUE7aWYoQi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIiYmIUIuY3JlYXRlRXZlbnRPYmplY3R8fEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vblJlYWR5KCk7ZWxzZXskYyhCLCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTskYyhCLCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTtpZihCLmNyZWF0ZUV2ZW50T2JqZWN0JiZCLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCl7dmFyIGM9ITA7dHJ5e2M9IWIuZnJhbWVFbGVtZW50fWNhdGNoKGQpe31jJiZRQih0aGlzKX0kYyhiLCJsb2FkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KX19O1JCLnByb3RvdHlwZS5pc1JlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZHl9OwpSQi5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbihhKXtpZighdGhpcy5yZWFkeSl7dmFyIGI9Qi5jcmVhdGVFdmVudE9iamVjdCxjPUIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIsZD1CLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiO2lmKCFhfHxhLnR5cGUhPT0icmVhZHlzdGF0ZWNoYW5nZSJ8fGN8fCFiJiZkKXt0aGlzLnJlYWR5PSEwO2Zvcih2YXIgZT0wO2U8dGhpcy5ILmxlbmd0aDtlKyspYmQodGhpcy5IW2VdKX10aGlzLkgucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz0wO2c8Zi5sZW5ndGg7ZysrKWJkKGZbZ10pO3JldHVybiAwfX19Owp2YXIgUUI9ZnVuY3Rpb24oYSl7aWYoIWEucmVhZHkmJmEuSzwxNDApe2EuSysrO3RyeXt2YXIgYixjOyhjPShiPUIuZG9jdW1lbnRFbGVtZW50KS5kb1Njcm9sbCk9PW51bGx8fGMuY2FsbChiLCJsZWZ0Iik7YS5vblJlYWR5KCl9Y2F0Y2goZCl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgUUIoYSl9LDUwKX19fSxTQjtmdW5jdGlvbiBUQigpe1NCfHwoU0I9bmV3IFJCKX1mdW5jdGlvbiBVQigpe1RCKCk7dmFyIGE7cmV0dXJuKGE9U0IpPT1udWxsP3ZvaWQgMDphLmlzUmVhZHkoKX1mdW5jdGlvbiBWQihhKXtUQigpO3ZhciBiOyhiPVNCKSE9bnVsbCYmKGIucmVhZHk/YmQoYSk6Yi5ILnB1c2goYSkpfTt2YXIgWEI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVdCLGU7aWYoKGU9ZC5IKT09bnVsbHx8IWUuT3Ipe3ZhciBmPU9iamVjdC5rZXlzKGIpLmxlbmd0aD4wPzI6MSxnLGgsbD0oYz09bnVsbD92b2lkIDA6KGg9Yy5vcmlnaW5hdGluZ0VudGl0eSk9PW51bGw/dm9pZCAwOmgub3JpZ2luQ29udGFpbmVySWQpfHwiIjtnPWw/U2IobCwiR1RNLSIpPzM6MjoxO2lmKCFhKWQuSD17dHlwZTpmLHNvdXJjZTpnLHBhcmFtczpifTtlbHNlIGlmKGQuSCl7UCgxODQpO3ZhciBuPSExO2QuSC5zb3VyY2U9PT1nfHxkLkguc291cmNlIT09MyYmZyE9PTN8fChVbSgiaWRjcyIsIjEiKSxuPSEwKTtkLkgudHlwZSE9PTImJmYhPT0yfHxQKDE4Nik7dmFyIHA7aWYocD1kLkgudHlwZT09PTImJmY9PT0yKWE6e3ZhciBxPWQuSC5wYXJhbXMscj1PYmplY3Qua2V5cyhxKSx0PU9iamVjdC5rZXlzKGIpO2lmKHIubGVuZ3RoIT09dC5sZW5ndGgpcD0hMDtlbHNle2Zvcih2YXIgdT1tKHIpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtpZighYi5oYXNPd25Qcm9wZXJ0eSh4KXx8cVt4XSE9PWJbeF0pe3A9ITA7YnJlYWsgYX19cD0hMX19cCYmKFVtKCJpZGNjIiwiMSIpLG49ITApO24mJih0bygpLGQuSC5Pcj0hMCl9fX0sV0I9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMH07dmFyIFpCPWZ1bmN0aW9uKGEpe3ZhciBiPVlCOyghZm4uS3x8U2IoRSg1KSwiR1RNLSIpPzA6YT09PXZvaWQgMCkmJmIuSD09PTAmJihVbSgibWNjIiwiMSIpLGIuSD0xKX0sWUI9bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDtVbSgibmNjIixmdW5jdGlvbigpe2lmKElmKDQ1KSYmYS5IIT09MilyZXR1cm4iMSJ9KX07dmFyICRCPS9eKD86QVd8REN8R3xHRnxHVHxIQXxNQ3xVQSkkLyxhQz0vXHMvOwpmdW5jdGlvbiBiQyhhLGIpe2lmKHpiKGEpKXthPUxiKGEpO3ZhciBjPWEuaW5kZXhPZigiLSIpO2lmKCEoYzwwKSl7dmFyIGQ9YS5zdWJzdHJpbmcoMCxjKTtpZigkQi50ZXN0KGQpKXt2YXIgZT1hLnN1YnN0cmluZyhjKzEpLGY7aWYoYil7dmFyIGc9ZnVuY3Rpb24obil7dmFyIHA9bi5pbmRleE9mKCIvIik7cmV0dXJuIHA8MD9bbl06W24uc3Vic3RyaW5nKDAscCksbi5zdWJzdHJpbmcocCsxKV19O2Y9ZyhlKTtpZihkPT09IkRDIiYmZi5sZW5ndGg9PT0yKXt2YXIgaD1nKGZbMV0pO2gubGVuZ3RoPT09MiYmKGZbMV09aFswXSxmLnB1c2goaFsxXSkpfX1lbHNle2Y9ZS5zcGxpdCgiLyIpO2Zvcih2YXIgbD0wO2w8Zi5sZW5ndGg7bCsrKWlmKCFmW2xdfHxhQy50ZXN0KGZbbF0pJiYoZCE9PSJBVyJ8fGwhPT0xKSlyZXR1cm59cmV0dXJue2lkOmEscHJlZml4OmQsZGVzdGluYXRpb25JZDpkKyItIitmWzBdLGlkczpmLEpjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWQhPT10aGlzLmRlc3RpbmF0aW9uSWR9fX19fX0KZnVuY3Rpb24gY0MoYSxiKXtmb3IodmFyIGM9e30sZD0wO2Q8YS5sZW5ndGg7KytkKXt2YXIgZT1iQyhhW2RdLGIpO2UmJihjW2UuaWRdPWUpfXZhciBmPVtdLGc7Zm9yKGcgaW4gYylpZihjLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1jW2ddO2gucHJlZml4PT09IkFXIiYmaC5pZHNbZENbMV1dJiZmLnB1c2goaC5kZXN0aW5hdGlvbklkKX1mb3IodmFyIGw9MDtsPGYubGVuZ3RoOysrbClkZWxldGUgY1tmW2xdXTtmb3IodmFyIG49W10scD1tKE9iamVjdC5rZXlzKGMpKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSluLnB1c2goY1txLnZhbHVlXSk7cmV0dXJuIG59dmFyIGVDPXt9LGRDPShlQ1swXT0wLGVDWzFdPTEsZUNbMl09MixlQ1szXT0wLGVDWzRdPTEsZUNbNV09MCxlQ1s2XT0wLGVDWzddPTAsZUMpO3ZhciBmQz17aW5pdGlhbGl6ZWQ6MTEsY29tcGxldGU6MTIsaW50ZXJhY3RpdmU6MTN9LGdDPXt9LGhDPU9iamVjdC5mcmVlemUoKGdDW0YuRC5UZF09ITAsZ0MpKSxpQz1mdW5jdGlvbigpe3RoaXMuUj1OZigzNCw1MDApO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXZvaWQgMH0sakM9ZnVuY3Rpb24oYSxiLGMpe2lmKGMubGVuZ3RoJiZmbi5LKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7dmFyIGU7KGU9YS5OKVtiXSE9bnVsbHx8KGVbYl09W10pO3ZhciBmPWMuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFhLk5bYl0uaW5jbHVkZXMoZyl9KTthLkhbYl0ucHVzaC5hcHBseShhLkhbYl0sdyhmKSk7YS5OW2JdLnB1c2guYXBwbHkoYS5OW2JdLHcoZikpOyFhLksmJmYubGVuZ3RoPjAmJihWbSgidGRjIiwhMCksYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe3RvKCk7YS5IPXt9O2EuSz12b2lkIDB9LGEuUikpfX07CmlDLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztVbSgidGRjIixmdW5jdGlvbigpe2EuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCk7dmFyIGI9W10sYztmb3IoYyBpbiBhLkgpYS5ILmhhc093blByb3BlcnR5KGMpJiZiLnB1c2goYysiKiIrYS5IW2NdLmpvaW4oIi4iKSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiISIpOnZvaWQgMH0sITEpfTsKdmFyIGtDPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPSEwKTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT0hMCk7cmV0dXJuIGN9LGxDPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwP3t9OmQ7ZT1lPT09dm9pZCAwPyIiOmU7aWYoYj09PWMpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24odCx1KXt2YXIgdjtBZCh1KT09PSJvYmplY3QiP3Y9dVt0XTpBZCh1KT09PSJhcnJheSImJih2PXVbdF0pO3JldHVybiB2PT09dm9pZCAwP2hDW3RdOnZ9LGc9a0MoYixjKSxoO2ZvcihoIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShoKSYmaCE9PUYuRC5YYil7dmFyIGw9KGU/ZSsiLiI6IiIpK2gsbj1mKGgsYikscD1mKGgsYykscT1BZChuKT09PSJvYmplY3QifHxBZChuKT09PSJhcnJheSIscj1BZChwKT09PSJvYmplY3QifHxBZChwKT09PSJhcnJheSI7aWYocSYmcilsQyhhLG4scCxkLGwpOwplbHNlIGlmKHF8fHJ8fG4hPT1wKWRbbF09ITB9cmV0dXJuIE9iamVjdC5rZXlzKGQpfSxtQz1uZXcgaUM7dmFyIG5DPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSz1OYigpO3RoaXMuSD1iO3RoaXMuYXJncz1jO3RoaXMubWVzc2FnZUNvbnRleHQ9ZDt0aGlzLnR5cGU9YX0sb0M9ZnVuY3Rpb24oKXt0aGlzLldhPXt9O3RoaXMuaWI9e307dGhpcy5LPXt9O3RoaXMuTj1udWxsO3RoaXMuaGI9e307dGhpcy5IPSExO3RoaXMuc3RhdHVzPTF9O2Z1bmN0aW9uIHBDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJzZXQiLGEpOnFDKCJzZXQiLGEsYil9ZnVuY3Rpb24gckMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoImNvbmZpZyIsYSk6cUMoImNvbmZpZyIsYSxiKX1mdW5jdGlvbiBzQyhhLGIsYyl7Yz1jfHx7fTtjW0YuRC5YYl09YTtyZXR1cm4gcUMoImV2ZW50IixiLGMpfWZ1bmN0aW9uIHFDKCl7cmV0dXJuIGFyZ3VtZW50c307dmFyIHRDPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxsLG4scCxxLHIpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9ZDt0aGlzLldhPWU7dGhpcy5oYj1mO3RoaXMuSGM9Zzt0aGlzLkJnPWg7dGhpcy5pYj1sO3RoaXMuZXZlbnRNZXRhZGF0YT1uO3RoaXMub25TdWNjZXNzPXA7dGhpcy5vbkZhaWx1cmU9cTt0aGlzLmlzR3RtRXZlbnQ9cn0sdUM9ZnVuY3Rpb24oYSl7dmFyIGI9e29uU3VjY2Vzczp4YixvbkZhaWx1cmU6eGJ9O2I9Yj09PXZvaWQgMD97fTpiO3ZhciBjLGQsZSxmLGcsaCxsLG4scCxxLHIsdCx1LHYseCx5LHosQyxELEksRyxOLFMsVyxlYSxqYTtyZXR1cm4gbmV3IHRDKCh2PShjPWIpPT1udWxsP3ZvaWQgMDpjLmV2ZW50SWQpIT1udWxsP3Y6YS5ldmVudElkLCh4PShkPWIpPT1udWxsP3ZvaWQgMDpkLnByaW9yaXR5SWQpIT1udWxsP3g6YS5wcmlvcml0eUlkLCh5PShlPWIpPT1udWxsP3ZvaWQgMDplLnByaW9yaXR5UXVldWUpIT0KbnVsbD95OmEucHJpb3JpdHlRdWV1ZSwoej0oZj1iKT09bnVsbD92b2lkIDA6Zi5FYSkhPW51bGw/ejphLkVhLChDPShnPWIpPT1udWxsP3ZvaWQgMDpnLldhKSE9bnVsbD9DOmEuV2EsKEQ9KGg9Yik9PW51bGw/dm9pZCAwOmguaGIpIT1udWxsP0Q6YS5oYiwoST0obD1iKT09bnVsbD92b2lkIDA6bC5IYykhPW51bGw/STphLkhjLChHPShuPWIpPT1udWxsP3ZvaWQgMDpuLkJnKSE9bnVsbD9HOmEuQmcsKE49KHA9Yik9PW51bGw/dm9pZCAwOnAuaWIpIT1udWxsP046YS5pYiwoUz0ocT1iKT09bnVsbD92b2lkIDA6cS5ldmVudE1ldGFkYXRhKSE9bnVsbD9TOmEuZXZlbnRNZXRhZGF0YSwoVz0ocj1iKT09bnVsbD92b2lkIDA6ci5vblN1Y2Nlc3MpIT1udWxsP1c6YS5vblN1Y2Nlc3MsKGVhPSh0PWIpPT1udWxsP3ZvaWQgMDp0Lm9uRmFpbHVyZSkhPW51bGw/ZWE6YS5vbkZhaWx1cmUsKGphPSh1PWIpPT1udWxsP3ZvaWQgMDp1LmlzR3RtRXZlbnQpIT1udWxsP2phOmEuaXNHdG1FdmVudCl9LAp2Qz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO3N3aXRjaChiKXtjYXNlIDM6Yy5wdXNoKGEuRWEpO2MucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDI6Yy5wdXNoKGEuRWEpO2JyZWFrO2Nhc2UgMTpjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSA0OmMucHVzaChhLkVhKSxjLnB1c2goYS5XYSksYy5wdXNoKGEuaGIpLGMucHVzaChhLkhjKX1yZXR1cm4gY30sTz1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9bSh2QyhhLGQ9PT12b2lkIDA/MzpkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZ1tiXSE9PXZvaWQgMClyZXR1cm4gZ1tiXX1yZXR1cm4gY30sd0M9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9dkMoYSw0KSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZm9yKHZhciBmPU9iamVjdC5rZXlzKGUudmFsdWUpLApnPW0oZiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpYltoLnZhbHVlXT0xO3JldHVybiBPYmplY3Qua2V5cyhiKX07dEMucHJvdG90eXBlLmdldE1lcmdlZFZhbHVlcz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPzM6Yjt2YXIgZD17fSxlPSExLGY9ZnVuY3Rpb24obil7Q2QobikmJkdiKG4sZnVuY3Rpb24ocCxxKXtlPSEwO2RbcF09cX0pfTtjJiZmKGMpO3ZhciBnPXZDKHRoaXMsYik7Zy5yZXZlcnNlKCk7Zm9yKHZhciBoPW0oZyksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpZihsLnZhbHVlW2FdKTtyZXR1cm4gZT9kOnZvaWQgMH07CnZhciB4Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9W0YuRC5LZixGLkQuR2YsRi5ELkhmLEYuRC5JZixGLkQuSmYsRi5ELkxmLEYuRC5NZl0sYz12QyhhLDMpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7Zm9yKHZhciBmPWUudmFsdWUsZz17fSxoPSExLGw9bShiKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtmW3BdIT09dm9pZCAwJiYoZ1twXT1mW3BdLGg9ITApfXZhciBxPWg/Zzp2b2lkIDA7aWYocSlyZXR1cm4gcX1yZXR1cm57fX0seUM9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9e307dGhpcy5XYT17fTt0aGlzLmhiPXt9O3RoaXMuSGM9e307dGhpcy5CZz17fTt0aGlzLmliPXt9O3RoaXMuZXZlbnRNZXRhZGF0YT17fTt0aGlzLmlzR3RtRXZlbnQ9ITE7dGhpcy5vblN1Y2Nlc3M9ZnVuY3Rpb24oKXt9O3RoaXMub25GYWlsdXJlPQpmdW5jdGlvbigpe319LHpDPWZ1bmN0aW9uKGEsYil7YS5FYT1iO3JldHVybiBhfSxBQz1mdW5jdGlvbihhLGIpe2EuV2E9YjtyZXR1cm4gYX0sQkM9ZnVuY3Rpb24oYSxiKXthLmhiPWI7cmV0dXJuIGF9LENDPWZ1bmN0aW9uKGEsYil7YS5IYz1iO3JldHVybiBhfSxEQz1mdW5jdGlvbihhLGIpe2EuQmc9YjtyZXR1cm4gYX0sRUM9ZnVuY3Rpb24oYSxiKXthLmliPWI7cmV0dXJuIGF9LEZDPWZ1bmN0aW9uKGEsYil7YS5ldmVudE1ldGFkYXRhPWJ8fHt9O3JldHVybiBhfSxHQz1mdW5jdGlvbihhLGIpe2Eub25TdWNjZXNzPWI7cmV0dXJuIGF9LEhDPWZ1bmN0aW9uKGEsYil7YS5vbkZhaWx1cmU9YjtyZXR1cm4gYX0sSUM9ZnVuY3Rpb24oYSxiKXthLmlzR3RtRXZlbnQ9YjtyZXR1cm4gYX0sSkM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyB0QyhhLmV2ZW50SWQsYS5wcmlvcml0eUlkLGEucHJpb3JpdHlRdWV1ZSxhLkVhLGEuV2EsYS5oYixhLkhjLGEuQmcsYS5pYixhLmV2ZW50TWV0YWRhdGEsCmEub25TdWNjZXNzLGEub25GYWlsdXJlLGEuaXNHdG1FdmVudCl9O2Z1bmN0aW9uIEtDKGEsYil7R2IoYSxmdW5jdGlvbihjKXt2YXIgZDtpZihkPWMuY2hhckF0KDApPT09Il8iKXt2YXIgZTthOnN3aXRjaChjKXtjYXNlIEYuRC5WYjpjYXNlIEYuRC5SZjpjYXNlIEYuRC5zaDplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWQ9IWV9ZCYmKGImJmIoYyksZGVsZXRlIGFbY10pfSl9O3ZhciBMQz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImVwciIsZi5qb2luKCIuIildKTtkJiZkZWxldGUgYS5IW2NdO3JldHVybiBlfSl9LE5DPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1NQztmbi5OJiZhIT09dm9pZCAwJiYoZC5IW2FdPWQuSFthXXx8W10sZC5IW2FdLnB1c2goYytiKSxneigpLGV6KGEpKX0sTUM7ZnVuY3Rpb24gT0MoKXtNQ3x8KE1DPW5ldyBMQyl9O3ZhciBQQz1mdW5jdGlvbigpe3RoaXMuZGVzdGluYXRpb25zPXt9O3RoaXMuSD17fTt0aGlzLmNvbW1hbmRzPVtdfSxRQz1mdW5jdGlvbihhLGIpe3JldHVybiBhLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdPWEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF18fG5ldyBvQ30sUkM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZC5IKXt2YXIgZT1RQyhhLGQuSCksZj1lLk47aWYoZil7dmFyIGc9RWQoYyxudWxsKSxoPUVkKGUuV2FbZC5ILmRlc3RpbmF0aW9uSWRdLG51bGwpLGw9RWQoZS5oYixudWxsKSxuPUVkKGUuaWIsbnVsbCkscD1FZChhLkgsbnVsbCkscT17fTtpZihmbi5OKXRyeXtxPUVkKHJBLkgsbnVsbCl9Y2F0Y2goeCl7UCg3Mil9dmFyIHI9ZC5ILnByZWZpeCx0PWZ1bmN0aW9uKHgpe3ZhciB5PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHkscix4KX0sdT1KQyhJQyhIQyhHQyhGQyhEQyhDQyhFQyhCQyhBQyh6QyhuZXcgeUMoZC5tZXNzYWdlQ29udGV4dC5ldmVudElkLApkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5SWQsZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eVF1ZXVlKSxnKSxoKSxsKSxuKSxwKSxxKSxkLm1lc3NhZ2VDb250ZXh0LmV2ZW50TWV0YWRhdGEpLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIyIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MpZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MoKX19KSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMyIpO2lmKGQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKWQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKCl9fSksISFkLm1lc3NhZ2VDb250ZXh0LmlzR3RtRXZlbnQpKSx2PWZ1bmN0aW9uKCl7dHJ5e3ZhciB4PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHgsciwiMSIpO3ZhciB5PWQuSC5pZCx6PW1DO2lmKGZuLksmJmI9PT1GLkQud2Epe3ZhciBDLEQ9KEM9YkMoeSkpPT1udWxsP3ZvaWQgMDpDLmlkcztpZighKEQmJkQubGVuZ3RoPgoxKSl7dmFyIEk9dS5FYVtGLkQuWGJdO2lmKCFJfHxJPT09eSl7dmFyIEcsTj1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7Ti50ZHx8KE4udGQ9e30pO0c9Ti50ZDt2YXIgUz1FZCh1LkhjLG51bGwpO0VkKHUuRWEsUyk7dmFyIFc9W10sZWE7Zm9yKGVhIGluIEcpRy5oYXNPd25Qcm9wZXJ0eShlYSkmJmxDKHosR1tlYV0sUykubGVuZ3RoJiZXLnB1c2goZWEpO1cubGVuZ3RoJiYoakMoeix5LFcpLHNiKCJUQUdHSU5HIixmQ1tCLnJlYWR5U3RhdGVdfHwxNCkpO0dbeV09U319fWYoZC5ILmlkLGIsZC5LLHUpfWNhdGNoKGZhKXt2YXIgamE9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoamEsciwiNCIpfX07Yj09PSJndGFnLmdldCI/digpOmlvKGUuUix2KX19fSxTQz1mdW5jdGlvbihhLGIpe2lmKGIudHlwZSE9PSJyZXF1aXJlIil7dmFyIGM9dm9pZCAwO2IudHlwZT09PSJldmVudCImJihjPWIuYXJnc1sxXSk7aWYoYi5IKWZvcih2YXIgZD1RQyhhLGIuSCkuS1tiLnR5cGVdfHwKW10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV0oYyk7ZWxzZSBmb3IodmFyIGYgaW4gYS5kZXN0aW5hdGlvbnMpaWYoYS5kZXN0aW5hdGlvbnMuaGFzT3duUHJvcGVydHkoZikpe3ZhciBnPWEuZGVzdGluYXRpb25zW2ZdO2lmKGcmJmcuSylmb3IodmFyIGg9Zy5LW2IudHlwZV18fFtdLGw9MDtsPGgubGVuZ3RoO2wrKyloW2xdKGMpfX19O1BDLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1RQyh0aGlzLGEpO2Uuc3RhdHVzIT09MyYmKGUuTj1iLGUuc3RhdHVzPTMsZS5SPWxvKGMpLFRDKHRoaXMsYSxkfHx7fSksdGhpcy5mbHVzaCgpKX07ClBDLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT12b2lkIDAmJihRQyh0aGlzLGMpLnN0YXR1cz09PTEmJihRQyh0aGlzLGMpLnN0YXR1cz0yLHRoaXMucHVzaCgicmVxdWlyZSIsW3t9XSxjLHt9KSksUUModGhpcyxjKS5IJiYoZC5kZWZlcnJhYmxlPSExKSxkLmV2ZW50TWV0YWRhdGF8fChkLmV2ZW50TWV0YWRhdGE9e30pLGQuZXZlbnRNZXRhZGF0YVtILkouc2ddfHwoZC5ldmVudE1ldGFkYXRhW0guSi5zZ109W2MuZGVzdGluYXRpb25JZF0pLGQuZXZlbnRNZXRhZGF0YVtILkoubWpdfHwoZC5ldmVudE1ldGFkYXRhW0guSi5tal09W2MuaWRdKSk7dGhpcy5jb21tYW5kcy5wdXNoKG5ldyBuQyhhLGMsYixkKSk7ZC5kZWZlcnJhYmxlfHx0aGlzLmZsdXNoKCl9OwpQQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMsYz1bXSxkPSExLGU9e307dGhpcy5jb21tYW5kcy5sZW5ndGg7ZT17Wm46dm9pZCAwfSl7dmFyIGY9dGhpcy5jb21tYW5kc1swXSxnPWYuSDtpZihmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGUpIWd8fFFDKHRoaXMsZykuSD8oZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlPSExLHRoaXMuY29tbWFuZHMucHVzaChmKSk6Yy5wdXNoKGYpLHRoaXMuY29tbWFuZHMuc2hpZnQoKTtlbHNle3N3aXRjaChmLnR5cGUpe2Nhc2UgInJlcXVpcmUiOmlmKFFDKHRoaXMsZykuc3RhdHVzIT09MyYmIWEpe3RoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO3JldHVybn1icmVhaztjYXNlICJzZXQiOnZhciBoPWYuYXJnc1swXTtLQyhoKTtVQyhoKTtHYihoLGZ1bmN0aW9uKHgseSl7RWQoVmIoeCx5KSxiLkgpfSk7SHUoaCwhMCk7YnJlYWs7Y2FzZSAiZXZlbnQiOmUuWm49Zi5hcmdzWzFdO3ZhciBsPQpWQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fShlKSksbj1sW0YuRC5YYl07biYmbiE9PWcuaWR8fEh1KGwpO1JDKHRoaXMsZS5abixsLGYpO2JyZWFrO2Nhc2UgImdldCI6dmFyIHA9e30scT0ocFtGLkQuVGZdPWYuYXJnc1swXSxwW0YuRC5TZl09Zi5hcmdzWzFdLHApO1JDKHRoaXMsRi5ELkpiLHEsZik7YnJlYWs7Y2FzZSAiY29udGFpbmVyX2NvbmZpZyI6dmFyIHI9UUModGhpcyxnKSx0PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHQsITApO3IuSD0hMDtFZCh0LHIuaGIpO2Q9ITA7YnJlYWs7Y2FzZSAiZGVzdGluYXRpb25fY29uZmlnIjp2YXIgdT1RQyh0aGlzLGcpLHY9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodiwhMCk7dS5XYVtnLmlkXXx8KHUuV2FbZy5pZF09e30pO3UuSD0hMDtFZCh2LHUuV2FbZy5pZF0pO2Q9ITA7YnJlYWs7Y2FzZSAicmVzZXRfY29udGFpbmVyX2NvbmZpZyI6UUModGhpcyxnKS5oYj17fTticmVhazsKY2FzZSAicmVzZXRfdGFyZ2V0X2NvbmZpZyI6UUModGhpcyxnKS5XYVtnLmlkXT17fX10aGlzLmNvbW1hbmRzLnNoaWZ0KCk7U0ModGhpcyxmKX19dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7ZCYmdGhpcy5mbHVzaCgpfTt2YXIgVEM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUVkKGMsbnVsbCk7RWQoUUMoYSxiKS5pYixkKTtRQyhhLGIpLmliPWR9O2Z1bmN0aW9uIFZDKGEsYil7dmFyIGM9e307R2IoYSxmdW5jdGlvbihkLGUpe0VkKFZiKGQsZSksYyl9KTtLQyhjLGIpO1VDKGMpO3JldHVybiBjfQpmdW5jdGlvbiBVQyhhKXtpZihNKDYwMSkmJkJBKCkpe2Zvcih2YXIgYj0hMSxjPW0obmV3IFNldChbRi5ELnljLEYuRC5kZF0pKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTthW2VdIT09dm9pZCAwJiYoYj0hMCxkZWxldGUgYVtlXSl9YiYmIWFsKDM1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSYmKFprKDM1LCEwKSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdvb2dsZSBUYWcgTWFuYWdlcjogU2VydmVyLXNpZGUgR1RNIHBhcmFtZXRlcnMgKHRyYW5zcG9ydF91cmwvc2VydmVyX2NvbnRhaW5lcl91cmwpIGFyZSBub3QgcGVybWl0dGVkIG9uIHRoaXMgZG9tYWluIGFuZCBoYXZlIGJlZW4gaWdub3JlZC4iKSxQKDE5NykpfX07dmFyIFdDPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBQQzt0aGlzLks9ITF9O1dDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuSC5mbHVzaCgpfTt2YXIgWEM7ZnVuY3Rpb24gWUMoKXtYQ3x8KFhDPW5ldyBXQyk7cmV0dXJuIFhDfWZ1bmN0aW9uIFpDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmKGUuSyYmKGQuZGVmZXJyYWJsZT0hMCksZS5ILnB1c2goImV2ZW50IixbYixhXSxmLGQpKX1mdW5jdGlvbiAkQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJmUuSC5wdXNoKCJnZXQiLFthLGJdLGYsZCl9ZnVuY3Rpb24gYUQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImNvbnRhaW5lcl9jb25maWciLFtiXSxlLGMpfQpmdW5jdGlvbiBiRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiZGVzdGluYXRpb25fY29uZmlnIixbYl0sZSxjKX1mdW5jdGlvbiBjRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X2NvbnRhaW5lcl9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGREKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfdGFyZ2V0X2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZUQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5pYjp7fX1mdW5jdGlvbiBmRChhKXtyZXR1cm4gWUMoKS5ILkhbYV19ZnVuY3Rpb24gZ0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5IOiExfTtmdW5jdGlvbiBoRChhLGIpe2EuaGFzT3duUHJvcGVydHkoImd0bS51bmlxdWVFdmVudElkIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJndG0udW5pcXVlRXZlbnRJZCIse3ZhbHVlOnJqKCl9KTtiLmV2ZW50SWQ9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtiLnByaW9yaXR5SWQ9YVsiZ3RtLnByaW9yaXR5SWQiXTtyZXR1cm57ZXZlbnRJZDpiLmV2ZW50SWQscHJpb3JpdHlJZDpiLnByaW9yaXR5SWR9fWZ1bmN0aW9uIGlEKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWUsZT1hJiZhW2RdfHxmRChkKTtpZihlKXJldHVybiBlfX1mdW5jdGlvbiBqRChhKXtyZXR1cm4hYS5pc0d0bUV2ZW50fHxhLmV2ZW50TWV0YWRhdGEmJmEuZXZlbnRNZXRhZGF0YVtILkouQ2NdJiZhLmV2ZW50TWV0YWRhdGFbSC5KLk5iXSE9PXZrKCk/ITE6ITB9O3ZhciBrRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBsRD1mdW5jdGlvbigpe3RoaXMubWVzc2FnZXM9W107dGhpcy5IPVtdfTtsRC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5tZXNzYWdlcy5sZW5ndGgrMTthWyJndG0udW5pcXVlRXZlbnRJZCJdPWI7YVsiZ3RtLnByaW9yaXR5SWQiXT1kO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7aWYoTSg1OTUpKXt2YXIgZj1jLnByaW9yaXR5UXVldWU/W10uY29uY2F0KHcoYy5wcmlvcml0eVF1ZXVlKSxbZF0pOltkXTthWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWY7ZS5wcmlvcml0eVF1ZXVlPWZ9dmFyIGc9e21lc3NhZ2U6YSxub3RCZWZvcmVFdmVudElkOmIscHJpb3JpdHlJZDpkLG1lc3NhZ2VDb250ZXh0OmV9O3RoaXMubWVzc2FnZXMucHVzaChnKTtmb3IodmFyIGg9MDtoPHRoaXMuSC5sZW5ndGg7aCsrKXRyeXt0aGlzLkhbaF0oZyl9Y2F0Y2gobCl7fX07CmxELnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24oYSl7dGhpcy5ILnB1c2goYSl9O2xELnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE9e30sYj0wO2I8dGhpcy5tZXNzYWdlcy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLm1lc3NhZ2VzW2JdLGQ9YVtjLm5vdEJlZm9yZUV2ZW50SWRdO2R8fChkPVtdLGFbYy5ub3RCZWZvcmVFdmVudElkXT1kKTtkLnB1c2goYyl9cmV0dXJuIGF9O2xELnByb3RvdHlwZS5wcnVuZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz1bXSxkPTA7ZDx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtkKyspe3ZhciBlPXRoaXMubWVzc2FnZXNbZF07ZS5ub3RCZWZvcmVFdmVudElkPT09YT9iLnB1c2goZSk6Yy5wdXNoKGUpfXRoaXMubWVzc2FnZXM9YztyZXR1cm4gYn07CmZ1bmN0aW9uIG1EKGEsYixjKXtjLmV2ZW50TWV0YWRhdGE9Yy5ldmVudE1ldGFkYXRhfHx7fTtjLmV2ZW50TWV0YWRhdGFbSC5KLk5iXT1NKDU1MCk/dmsoKTpFKDYpO25EKCkuZW5xdWV1ZShhLGIsYyl9ZnVuY3Rpb24gbkQoKXtyZXR1cm4ga2ooIm1iIixmdW5jdGlvbigpe3JldHVybiBuZXcgbER9KX07dmFyIHBEPWZ1bmN0aW9uKGEsYil7dmFyIGM9b0Q7Yj1TdHJpbmcoYikuc3BsaXQoIiwiKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9Yy5OW2JbZF1dfHxbXTtjLk5bYltkXV09ZTtlLmluZGV4T2YoYSk8MCYmZS5wdXNoKGEpfX0scUQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9b0QsZD1bXSxlPVtdLGY9e30sZz0wO2c8YS5sZW5ndGg7Zj17bGs6dm9pZCAwLFFqOnZvaWQgMCxSajp2b2lkIDB9LGcrKyl7dmFyIGg9YVtnXTtpZihoLmluZGV4T2YoIi0iKT49MCl7aWYoZi5saz1iQyhoLGIpLGYubGspe3ZhciBsPXRrKCk7Q2IobCxmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHgubGsuZGVzdGluYXRpb25JZD09PXl9fShmKSk/ZC5wdXNoKGgpOmUucHVzaChoKX19ZWxzZXtpZihNKDU1MCkpe3ZhciBuPWMuS1toXXx8W107Zi5Saj17fTtuLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUmpbeV09ITB9fShmKSk7Zm9yKHZhciBwPQp0aygpLHE9MDtxPHAubGVuZ3RoO3ErKylmLlJqW3BbcV1dJiZkLnB1c2gocFtxXSl9ZWxzZXt2YXIgcj1jLkhbaF18fFtdO2YuUWo9e307ci5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlFqW3ldPSEwfX0oZikpO2Zvcih2YXIgdD13aygpLHU9MDt1PHQubGVuZ3RoO3UrKylpZihmLlFqW3RbdV1dKXtkPWQuY29uY2F0KHRrKCkpO2JyZWFrfX12YXIgdj1jLk5baF18fFtdO3YubGVuZ3RoJiYoZD1kLmNvbmNhdCh2KSl9fXJldHVybntlazpkLFBzOmV9fSxyRD1mdW5jdGlvbihhKXtHYihvRC5ILGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sc0Q9ZnVuY3Rpb24oYSl7R2Iob0QuSyxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHREPWZ1bmN0aW9uKGEpe0diKG9ELk4sZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwKMSl9KX0sb0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9e319O2Z1bmN0aW9uIHVEKGEsYixjKXt2YXIgZD1FZChhLG51bGwpO2QuZXZlbnRJZD12b2lkIDA7ZC5pbmhlcml0UGFyZW50Q29uZmlnPXZvaWQgMDtPYmplY3Qua2V5cyhiKS5zb21lKGZ1bmN0aW9uKGYpe3JldHVybiBiW2ZdIT09dm9pZCAwfSkmJlAoMTM2KTt2YXIgZT1FZChiLG51bGwpO0VkKGMsZSk7bUQockMod2soKVswXSxlKSxhLmV2ZW50SWQsZCl9CmZ1bmN0aW9uIHZEKGEsYixjLGQpe3ZhciBlPXt9LGY9KGVbRi5ELlViXT1GLkQud2EsZVsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09YS5pZCxlWyJndG0uY29uZmlnUGFyYW1ldGVycyJdPWIsZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1kLmV2ZW50SWQsZSk7Yy5wcmlvcml0eVF1ZXVlJiYoZlsiZ3RtLnByaW9yaXR5UXVldWUiXT1jLnByaW9yaXR5UXVldWUpO2MuZXZlbnRNZXRhZGF0YSYmKGZbImd0bS5ldmVudE1ldGFkYXRhIl09Yy5ldmVudE1ldGFkYXRhKTthLkpjKCkmJihmWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT13aygpWzBdLGZbImd0bS5vcmlnaW5hbENvbmZpZ1RhcmdldElkIl09YS5pZCk7cmV0dXJuIGZ9ZnVuY3Rpb24gd0QoYSxiLGMpe2lmKElmKDExKSYmIWMmJiFhW0YuRC5WZF0pe3ZhciBkPWFsKDEwLGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtaaygxMCwhMCk7WEIoZCxhLGIpO2lmKGQpcmV0dXJuITB9cmV0dXJuITF9O2Z1bmN0aW9uIHhEKGEsYil7dmFyIGM9e30sZD0oYy5ldmVudD1hLGMpO2ImJihkLmV2ZW50TW9kZWw9RWQoYixudWxsKSxiW0YuRC5QZl0mJihkLmV2ZW50Q2FsbGJhY2s9YltGLkQuUGZdKSxiW0YuRC5waF0mJihkLmV2ZW50VGltZW91dD1iW0YuRC5waF0pKTtyZXR1cm4gZH0KZnVuY3Rpb24geUQoYSxiKXt2YXIgYz1hJiZhW0YuRC5YYl07Yz09PXZvaWQgMCYmKGM9dUEoRi5ELlhiLDIpLGM9PT12b2lkIDAmJihjPSJkZWZhdWx0IikpO2lmKHpiKGMpfHxBcnJheS5pc0FycmF5KGMpKXt2YXIgZDtkPWIuaXNHdG1FdmVudD96YihjKT9bY106YzpjLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIik7dmFyIGU9cUQoZCxiLmlzR3RtRXZlbnQpLGY9ZS5layxnPWUuUHM7aWYoZy5sZW5ndGgpZm9yKHZhciBoPWlEKGEpLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49YkMoZ1tsXSxiLmlzR3RtRXZlbnQpO2lmKG4pe3ZhciBwPW4uZGVzdGluYXRpb25JZCxxPXZvaWQgMDsoKHE9bmsobi5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOnEuc3RhdGUpPT09MHx8bkEocCxoLHtzb3VyY2U6Myxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX12YXIgcj1mLmNvbmNhdChnKTtyZXR1cm57ZWs6Y0MoZixiLmlzR3RtRXZlbnQpLAptcjpjQyhyLGIuaXNHdG1FdmVudCl9fX07dmFyIHpEPXt9LEFEPSh6RC5jb25maWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1oRChhLGIpLGQ7YTp7aWYoIShhLmxlbmd0aDwyKSYmemIoYVsxXSkpe3ZhciBlPXt9O2lmKGEubGVuZ3RoPjIpe2lmKGFbMl0hPT12b2lkIDAmJiFDZChhWzJdKXx8YS5sZW5ndGg+Myl7ZD12b2lkIDA7YnJlYWsgYX1lPWFbMl19dmFyIGY9YkMoYVsxXSxiLmlzR3RtRXZlbnQpO2lmKGYpe2Q9e3RhcmdldDpmLHBhcmFtczplfTticmVhayBhfX1kPXZvaWQgMH12YXIgZz1kO2lmKGcpe3ZhciBoPWcudGFyZ2V0LGw9Zy5wYXJhbXMsbjthOntpZighSWYoNykpe3ZhciBwPXlrKHprKCkpO2lmKE1rKHApKXt2YXIgcT1wLnBhcmVudCxyPXEuaXNEZXN0aW5hdGlvbjtuPXtWczp5ayhxKSxNczpyfTticmVhayBhfX1uPXZvaWQgMH12YXIgdD1uLHU9dD09bnVsbD92b2lkIDA6dC5Wcyx2PXQ9PW51bGw/dm9pZCAwOnQuTXM7ZEIoYy5ldmVudElkLCJndGFnLmNvbmZpZyIpO3ZhciB4LHk9aC5kZXN0aW5hdGlvbklkOwppZihoLkpjKCk/dGsoKS5pbmRleE9mKHkpIT09LTE6d2soKS5pbmRleE9mKHkpIT09LTEpYTp7aWYodSYmKFAoMTI4KSx2JiZQKDEzMCksYi5pbmhlcml0UGFyZW50Q29uZmlnKSl7dmFyIHo7dmFyIEM9JGsoMTIpO2lmKEMpdUQoYixDLGwpLHo9ITE7ZWxzZXt2YXIgRD0kaygxMSk7IWxbRi5ELlZkXSYmKE0oNTUwKXx8SWYoMTEpKSYmRHx8WmsoMTEsRWQobCxudWxsKSk7ej0hMH16JiZ1LmNvbnRhaW5lcnMmJnUuY29udGFpbmVycy5qb2luKCIsIik7eD12b2lkIDA7YnJlYWsgYX12YXIgST0hSWYoNDUpLEc9IVNiKGguaWQsIkdUTS0iKTtJJiZHJiYoT2JqZWN0LmtleXMobCkubGVuZ3RoPT09MD9HdShULlcuU2spOkd1KFQuVy5UayksRWwoKSYmR3UoVC5XLlJrKSwkaygzMSkmJkd1KFQuVy5VaykpO3ZhciBOPVlCO2ZuLksmJihOLkg9PT0xJiYoUW0uSC5tY2M9ITEpLE4uSD0yKTtpZihNKDU1MCl8fCF3RChsLGIsaC5KYygpKSl7a0QuSHx8UCg0Myk7aWYoIU0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIFM9CmguaWQ7aWYoaC5KYygpKXREKFMpLHBEKFMsbFtGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7ckQoUyk7dmFyIFc9bFtGLkQuT2RdfHwiZGVmYXVsdCIsZWE9b0Q7Vz1XLnRvU3RyaW5nKCkuc3BsaXQoIiwiKTtmb3IodmFyIGphPTA7amE8Vy5sZW5ndGg7amErKyl7dmFyIGZhPWVhLkhbV1tqYV1dfHxbXTtlYS5IW1dbamFdXT1mYTtmYS5pbmRleE9mKFMpPDAmJmZhLnB1c2goUyl9fX1kZWxldGUgbFtGLkQuT2RdfXZhciBzYT1iLmV2ZW50TWV0YWRhdGF8fHt9O3NhLmhhc093blByb3BlcnR5KEguSi5hZSl8fChzYVtILkouYWVdPSFiLmZyb21Db250YWluZXJFeGVjdXRpb24pO2IuZXZlbnRNZXRhZGF0YT1zYTtkZWxldGUgbFtGLkQuUGZdO2lmKE0oNTUwKSl7eD12RChoLGwsYixjKTticmVhayBhfXZhciBkYT0hIWxbRi5ELlZkXTtkZWxldGUgbFtGLkQuVmRdO3ZhciBtYT10aygpLFBhPWNELEZhPWFEO2guSmMoKSYmKG1hPVtoLmlkXSxQYT1kRCxGYT1iRCk7Zm9yKHZhciBxYT0wO3FhPAptYS5sZW5ndGg7cWErKyl7ZGF8fFBhKG1hW3FhXSk7dmFyIGliPWdEKG1hW3FhXSk7RmEobWFbcWFdLEVkKGwsbnVsbCksRWQoYixudWxsKSk7aWImJmRhfHxaQyhGLkQud2EsRWQobCxudWxsKSxtYVtxYV0sRWQoYixudWxsKSl9fXg9dm9pZCAwfWVsc2UgYTp7aWYoIWIuaW5oZXJpdFBhcmVudENvbmZpZyYmIWxbRi5ELlpjXSl7dmFyIFhiPWlEKGwpLExjPWguZGVzdGluYXRpb25JZDtpZihoLkpjKCkpbkEoTGMsWGIse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSk7ZWxzZSBpZih1IT09dm9pZCAwJiZ1LmNvbnRhaW5lcnMuaW5kZXhPZihMYykhPT0tMSl7dmFyIFFkPSRrKDExKSxZYz0kaygxMik7UWQ/dUQoYixsLFFkKTpZY3x8WmsoMTIsRWQobCxudWxsKSl9ZWxzZSBpZihoQShMYyxYYiwhMCx7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KSxNKDU1MCkpe3g9dkQoaCwKbCxiLGMpO2JyZWFrIGF9fXg9dm9pZCAwfXJldHVybiB4fX0sekQuY29uc2VudD1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09Myl7UCgzOSk7dmFyIGM9aEQoYSxiKSxkPWFbMV0sZT17fSxmPU9vKGFbMl0pLGc7Zm9yKGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO2VbZ109Zz09PUYuRC5ZZz9BcnJheS5pc0FycmF5KGgpP05hTjpOdW1iZXIoaCk6Zz09PUYuRC5uYz8oQXJyYXkuaXNBcnJheShoKT9oOltoXSkubWFwKFBvKTpRbyhoKX1iLmZyb21Db250YWluZXJFeGVjdXRpb258fChlW0YuRC5tYV0mJlAoMTM5KSxlW0YuRC5YYV0mJlAoMTQwKSk7ZD09PSJkZWZhdWx0Ij9UbyhlKTpkPT09InVwZGF0ZSI/Vm8oZSxjKTpkPT09ImRlY2xhcmUiJiZiLmZyb21Db250YWluZXJFeGVjdXRpb24mJlNvKGUpfX0sekQuY29udGFpbmVyX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9CmFbMl0sZD1iQyhhWzFdLCEwKTtkJiZhRChkLmRlc3RpbmF0aW9uSWQsYyxFZChiLG51bGwpKX19LHpELmRlc3RpbmF0aW9uX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9YVsyXSxkPWJDKGFbMV0sITApO2lmKGQpe2lmKE0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIGU9ZC5pZDtpZihkLkpjKCkpdEQoZSkscEQoZSxjW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtzRChlKTt2YXIgZj1jW0YuRC5PZF18fCJkZWZhdWx0IixnPW9EO2Y9U3RyaW5nKGYpLnNwbGl0KCIsIik7Zm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBsPWcuS1tmW2hdXXx8W107Zy5LW2ZbaF1dPWw7bC5pbmRleE9mKGUpPDAmJmwucHVzaChlKX19fWRlbGV0ZSBjW0YuRC5PZF19YkQoZC5pZCxjLEVkKGIsbnVsbCkpfX19LHpELmV2ZW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVsxXTtpZighKGEubGVuZ3RoPDIpJiYKemIoYykpe3ZhciBkPXZvaWQgMDtpZihhLmxlbmd0aD4yKXtpZighQ2QoYVsyXSkmJmFbMl0hPT12b2lkIDB8fGEubGVuZ3RoPjMpcmV0dXJuO2Q9YVsyXX12YXIgZT14RChjLGQpLGY9aEQoYSxiKSxnPWYuZXZlbnRJZCxoPWYucHJpb3JpdHlJZDtlWyJndG0udW5pcXVlRXZlbnRJZCJdPWc7aCYmKGVbImd0bS5wcmlvcml0eUlkIl09aCk7Yi5wcmlvcml0eVF1ZXVlJiYoZVsiZ3RtLnByaW9yaXR5UXVldWUiXT1iLnByaW9yaXR5UXVldWUpO2lmKGM9PT0ib3B0aW1pemUuY2FsbGJhY2siKXJldHVybiBlLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fSxlO3ZhciBsPXlEKGQsYik7aWYobCl7Zm9yKHZhciBuPWwuZWsscD1sLm1yLHE9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSxyPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmRlc3RpbmF0aW9uSWR9KSx0PW4ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSksdT1tKHRrKCkpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtyLmluZGV4T2YoeCk8MCYmdC5wdXNoKHgpfWRCKGcsYyk7Zm9yKHZhciB5PW0odCksej15Lm5leHQoKTshei5kb25lO3o9eS5uZXh0KCkpe3ZhciBDPXoudmFsdWUsRD1FZChiLG51bGwpLEk9RWQoZCxudWxsKTtkZWxldGUgSVtGLkQuUGZdO3ZhciBHPUQuZXZlbnRNZXRhZGF0YXx8e307Ry5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoR1tILkouYWVdPSFELmZyb21Db250YWluZXJFeGVjdXRpb24pO0dbSC5KLm1qXT1xLnNsaWNlKCk7R1tILkouc2ddPXIuc2xpY2UoKTtELmV2ZW50TWV0YWRhdGE9RztaQyhjLEksQyxEKX1lLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fTtxLmxlbmd0aD4wP2UuZXZlbnRNb2RlbFtGLkQuWGJdPXEuam9pbigiLCIpOmRlbGV0ZSBlLmV2ZW50TW9kZWxbRi5ELlhiXTtrRC5IfHxQKDQzKTtiLm5vR3RtRXZlbnQ9PT12b2lkIDAmJmIuZXZlbnRNZXRhZGF0YSYmYi5ldmVudE1ldGFkYXRhW0guSi5Cbl0mJihiLm5vR3RtRXZlbnQ9CiEwKTtlLmV2ZW50TW9kZWxbRi5ELlljXSYmKGIubm9HdG1FdmVudD0hMCk7cmV0dXJuIGIubm9HdG1FdmVudD92b2lkIDA6ZX19fSx6RC5nZXQ9ZnVuY3Rpb24oYSxiKXtQKDUzKTtpZihhLmxlbmd0aD09PTQmJnpiKGFbMV0pJiZ6YihhWzJdKSYmeWIoYVszXSkpe3ZhciBjPWJDKGFbMV0sYi5pc0d0bUV2ZW50KSxkPVN0cmluZyhhWzJdKSxlPWFbM107aWYoYyl7a0QuSHx8UCg0Myk7dmFyIGY9aUQoKTtpZihDYih0aygpLGZ1bmN0aW9uKGgpe3JldHVybiBjLmRlc3RpbmF0aW9uSWQ9PT1ofSkpe2hEKGEsYik7dmFyIGc9e307RWQoKGdbRi5ELlRmXT1kLGdbRi5ELlNmXT1lLGcpLG51bGwpOyRDKGQsZnVuY3Rpb24oaCl7YmQoZnVuY3Rpb24oKXtlKGgpfSl9LGMuaWQsYil9ZWxzZSBuQShjLmRlc3RpbmF0aW9uSWQsZix7c291cmNlOjQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19fSx6RC5qcz1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKGEubGVuZ3RoPT09CjImJmFbMV0uZ2V0VGltZSl7a0QuSD0hMDt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkLGc9e307Yz0oZy5ldmVudD0iZ3RtLmpzIixnWyJndG0uc3RhcnQiXT1hWzFdLmdldFRpbWUoKSxnWyJndG0udW5pcXVlRXZlbnRJZCJdPWUsZ1siZ3RtLnByaW9yaXR5SWQiXT1mLGcpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9LHpELnBvbGljeT1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZ5YihhWzJdKSl7aWYoaHkoYVsxXSxhWzJdKSxQKDc0KSxhWzFdPT09ImFsbCIpe1AoNzUpO3ZhciBiPSExO3RyeXtiPWFbMl0oRSg1KSwidW5rbm93biIse30pfWNhdGNoKGMpe31ifHxQKDc2KX19ZWxzZSBQKDczKX0sekQucmVzZXRfdGFyZ2V0X2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTImJnpiKGFbMV0pKXt2YXIgYz1iQyhhWzFdLCEwKTtjJiZkRChjLmlkKX19LHpELnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDsKYS5sZW5ndGg9PT0yJiZDZChhWzFdKT9jPUVkKGFbMV0sbnVsbCk6YS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmKGM9e30sQ2QoYVsyXSl8fEFycmF5LmlzQXJyYXkoYVsyXSk/Y1thWzFdXT1FZChhWzJdLG51bGwpOmNbYVsxXV09YVsyXSk7aWYoYyl7WmsoMzEsITApO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQ7RWQoYyxudWxsKTtFKDUpO3ZhciBnPUVkKGMsbnVsbCk7WUMoKS5ILnB1c2goInNldCIsW2ddLHZvaWQgMCxiKTtjWyJndG0udW5pcXVlRXZlbnRJZCJdPWU7ZiYmKGNbImd0bS5wcmlvcml0eUlkIl09Zik7ZGVsZXRlIGMuZXZlbnQ7Yi5vdmVyd3JpdGVNb2RlbEZpZWxkcz0hMDtyZXR1cm4gY319LHpEKSxCRD17fSxDRD0oQkQucG9saWN5PSEwLEJEKTt2YXIgRUQ9ZnVuY3Rpb24oYSl7aWYoREQoYSkpcmV0dXJuIGE7dGhpcy52YWx1ZT1hfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBERD1mdW5jdGlvbihhKXtyZXR1cm4hYXx8QWQoYSkhPT0ib2JqZWN0Inx8Q2QoYSk/ITE6ImdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSJpbiBhfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPUVELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU7dmFyIEZEPXtCYjoiMSIsZWU6IjIiLFhkOiIzIixjZToiNCIseGY6IjUiLHFnOiI2IixLaDoiNyIsdGo6IjgiLGxpOiI5IixqajoiMTAifTsKdmFyIEdEPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS50cmltKCkucmVwbGFjZUFsbCgvXHMrL2csIiIpLnJlcGxhY2VBbGwoLyhcZHsyLH0pXC4vZywiJDEiKS5yZXBsYWNlQWxsKC8tL2csIiIpLnJlcGxhY2VBbGwoL1woKFxkKylcKS9nLCIkMSIpO2lmKGImJmMubWF0Y2goL15cKz9cZHszLDR9JC8pKXJldHVybiBjO2MuY2hhckF0KDApIT09IisiJiYoYz0iKyIrYyk7aWYoYy5tYXRjaChuZXcgUmVnRXhwKCJeXFwrXFxkeyIrKE0oNTk3KT83OjEwKSsiLDE1fSQiKSkpcmV0dXJuIGN9fSxJRD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRyaW0oKTtpZihIRC50ZXN0KGIpKXJldHVybiBiLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgvWy0gXSsvZywiIil9fSxNRD1mdW5jdGlvbihhKXt2YXIgYj1KRChLRCkoYSk7aWYoYiYmIUxEKGIpKXJldHVybiBifSxMRD1mdW5jdGlvbihhKXtpZighQS5sb2NhdGlvbilyZXR1cm4hMTt2YXIgYj1OaihBLmxvY2F0aW9uLCJob3N0IiwhMCksCmM7aWYoTSg2MDIpKWE6e2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1hLnRvTG93ZXJDYXNlKCksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe3ZhciBnPWQuc2xpY2UoZikuam9pbigiLiIpO2lmKGUubWF0Y2goIkAiK2crIiQiKSl7Yz0hMDticmVhayBhfX1jPSExfWVsc2UgYz1hLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihiKT49MDtyZXR1cm4gY30sSkQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubWF0Y2goYSk7cmV0dXJuIGM/Y1swXS50cmltKCkudG9Mb3dlckNhc2UoKTp2b2lkIDB9fSxLRD0vW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcLltBLVpdezIsfS9pLE5EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzKSskLyksSEQ9UmVnRXhwKCJeKD86W0EtWl17MSwyfVxcZFtBLVpcXGRdP1sgLV0/XFxkW0EtWl17Mn18W0EtWl1cXGRbQS1aXVsgLV0/XFxkW0EtWl1cXGR8XFxkezR9ID9bQS1aXXsyfXxbQS1aXVxcZHs0fVtBLVpdezN9fFxcZHs1fSg/Oi1cXGR7NH0pP3xcXGR7NX0tXFxkezN9fFxcZHs0fS1cXGR7M318XFxkezN9LVxcZHs0fXxcXGR7Mn0tXFxkezN9fFxcZHszfSA/XFxkezJ9fFxcZHs0LDd9KSQiLAoiaSIpLE9EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzfFxkKSskLyk7CnZhciBQRD1mdW5jdGlvbigpe3ZhciBhPVN0cmluZyhhbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSkpO2EuaW5kZXhPZigiLiIpIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIuIikrMykpO3ZhciBiPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtyZXR1cm57dnQ6TnVtYmVyKGEpLHN0OmJ9fSxRRD1mdW5jdGlvbigpe3JldHVybiBhbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSl9LFNEPWZ1bmN0aW9uKGEpe3ZhciBiPXBkKCl8fDAsYz1bRkQuQmJdO00oNTY4KSYmYy5wdXNoKEZELmVlLEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELnRqLEZELmxpLEZELmpqKTtmb3IodmFyIGQ9UkQoYSxuZXcgU2V0KGMpKSxlPWFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSxmPW0oZCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5zZXQoaC5EYSxoKX12YXIgbD0ocGQoKXx8MCktYixuPWFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTsKWmsoMzMsbitsKTt2YXIgcD1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7WmsoMzQscCsxKX0sUkQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TmYoMzYsMiksZD1bXSxlPVt7b286YSxkZXB0aDowfV07ZS5sZW5ndGg+MDspZm9yKHZhciBmPWUuc2hpZnQoKSxnPWYub28saD1mLmRlcHRoLGw9bShPYmplY3Qua2V5cyhnKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aWYoIVRELmhhcyhwKSl7dmFyIHE9Z1twXTtpZihxKWlmKENkKHEpKWgrMTw9YyYmZS5wdXNoKHtvbzpxLGRlcHRoOmgrMX0pO2Vsc2V7Zm9yKHZhciByPW0oYiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWUsdj1VRFt1XTtpZih2JiZ2LktjLnRlc3QocCkpe3ZhciB4PXYubmEoU3RyaW5nKHEpKTtpZih4KXtkLnB1c2goe0NhOngsRGE6dX0pO2IuZGVsZXRlKHUpO2JyZWFrfX19aWYoYi5zaXplPT09MClyZXR1cm4gZH19fXJldHVybiBkfSxURD0KbmV3IFNldChbIml0ZW1zIiwiZWNvbW1lcmNlIl0pLFZEPVJlZ0V4cCgicGhvbmUiLCJpIiksV0Q9UmVnRXhwKCJmaXJzdF8/bmFtZSIsImkiKSxYRD1SZWdFeHAoImxhc3RfP25hbWUiLCJpIiksWUQ9UmVnRXhwKCJjb3VudHJ5IiwiaSIpLFpEPVJlZ0V4cCgicG9zdHx6aXAiLCJpIiksJEQ9UmVnRXhwKCJhZGRyZXNzfHN0cmVldCIsImkiKSxhRT1SZWdFeHAoImNpdHkiLCJpIiksYkU9UmVnRXhwKCJyZWdpb258c3RhdGV8cHJvdmluY2UiLCJpIiksY0U9e30sVUQ9KGNFW0ZELkJiXT17S2M6UmVnRXhwKCJlbWFpbCIsImkiKSxuYTpNRH0sY0VbRkQuZWVdPXtLYzpWRCxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMSl9fSxjRVtGRC5YZF09e0tjOldELG5hOk5EfSxjRVtGRC5jZV09e0tjOlhELG5hOk5EfSxjRVtGRC50al09e0tjOiRELG5hOk9EfSxjRVtGRC5saV09e0tjOmFFLG5hOk5EfSxjRVtGRC5qal09e0tjOmJFLG5hOk5EfSxjRVtGRC5xZ109e0tjOlpELG5hOklEfSxjRVtGRC54Zl09CntLYzpZRCxuYTpORH0sY0UpO3ZhciBkRT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5sb2FkZWQ9ITE7dGhpcy5IPVtdO2lmKEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vbkxvYWQoKTtlbHNlICRjKEEsImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5vbkxvYWQoKX0pfTtkRS5wcm90b3R5cGUub25Mb2FkPWZ1bmN0aW9uKCl7aWYoIXRoaXMubG9hZGVkKXt0aGlzLmxvYWRlZD0hMDtmb3IodmFyIGE9MDthPHRoaXMuSC5sZW5ndGg7YSsrKWJkKHRoaXMuSFthXSl9fTt2YXIgZkU9ZnVuY3Rpb24oYSl7dmFyIGI9ZUU7Yi5sb2FkZWQ/YmQoYSk6Yi5ILnB1c2goYSl9LGVFPW5ldyBkRTt2YXIgZ0U9ZnVuY3Rpb24oKXt0aGlzLlo9MDt0aGlzLks9e307dGhpcy5IPVtdO3RoaXMuTj1bXTt0aGlzLmZhPXRoaXMuUj10aGlzLmphPSExfSxpRT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aEU7YS5ldmVudENhbGxiYWNrPWI7YyYmKGEuZXZlbnRUaW1lb3V0PWMpO3JldHVybiBkLnB1c2goYSl9LGpFPWZ1bmN0aW9uKGEsYil7aWYoIUFiKGIpfHxiPDApYj0wO3ZhciBjPXFqKCksZD0wLGU9ITEsZj12b2lkIDA7Zj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlfHwoZT0hMCxhKCkpO2Y9dm9pZCAwfSxiKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZz1jP2Muc3Vic2NyaWJlcnM6MTsrK2Q9PT1nJiYoZiYmKEEuY2xlYXJUaW1lb3V0KGYpLGY9dm9pZCAwKSxlfHwoYSgpLGU9ITApKX19LGxFPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEuTi5sZW5ndGgpYj1hLk4uc2hpZnQoKTtlbHNlIGlmKGEuSC5sZW5ndGgpYj1hLkguc2hpZnQoKTtlbHNlIHJldHVybjt2YXIgYzt2YXIgZD1iO2lmKGEuamF8fAoha0UoZC5tZXNzYWdlKSljPWQ7ZWxzZXthLmphPSEwO3ZhciBlPWQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxmLGc7dHlwZW9mIGU9PT0ibnVtYmVyIj8oZj1lLTIsZz1lLTEpOihmPXJqKCksZz1yaigpLGQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1yaigpKTt2YXIgaD17fSxsPXttZXNzYWdlOihoLmV2ZW50PSJndG0uaW5pdF9jb25zZW50IixoWyJndG0udW5pcXVlRXZlbnRJZCJdPWYsaCksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Zn19LG49e30scD17bWVzc2FnZToobi5ldmVudD0iZ3RtLmluaXQiLG5bImd0bS51bmlxdWVFdmVudElkIl09ZyxuKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpnfX07YS5ILnVuc2hpZnQocCxkKTtjPWx9cmV0dXJuIGN9LG9FPWZ1bmN0aW9uKGEpe2EuZmF8fFAoMTk2KTtmb3IodmFyIGI9ITEsYzshYS5SJiYoYz1sRShhKSk7KXthLlI9ITA7dmFyIGQ9ckE7ZGVsZXRlIGQuSC5ldmVudE1vZGVsO29BKGQpO3ZhciBlPWMsZj0KZS5tZXNzYWdlLGc9ZS5tZXNzYWdlQ29udGV4dDtpZihmPT1udWxsKWEuUj0hMTtlbHNle2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmc0EoKTt0cnl7aWYoeWIoZikpdHJ5e2YuY2FsbCh0QSl9Y2F0Y2goUyl7fWVsc2UgaWYoQXJyYXkuaXNBcnJheShmKSl7aWYoemIoZlswXSkpe3ZhciBoPWZbMF0uc3BsaXQoIi4iKSxsPWgucG9wKCksbj1mLnNsaWNlKDEpLHA9dUEoaC5qb2luKCIuIiksMik7aWYocCE9bnVsbCl0cnl7cFtsXS5hcHBseShwLG4pfWNhdGNoKFMpe319fWVsc2V7dmFyIHE9dm9pZCAwO2lmKEhiKGYpKWE6e2lmKGYubGVuZ3RoJiZ6YihmWzBdKSl7dmFyIHI9QURbZlswXV07aWYociYmKCFnLmZyb21Db250YWluZXJFeGVjdXRpb258fCFDRFtmWzBdXSkpe3E9cihmLGcpO2JyZWFrIGF9fXE9dm9pZCAwfWVsc2UgcT1mO2lmKHEpe3ZhciB0O2Zvcih2YXIgdT1xLHY9dS5fY2xlYXJ8fGcub3ZlcndyaXRlTW9kZWxGaWVsZHMseD1tKE9iamVjdC5rZXlzKHUpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT0KeC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7eiE9PSJfY2xlYXIiJiYodiYmckEuc2V0KHosdm9pZCAwKSxyQS5zZXQoeix1W3pdKSl9TSg1OTIpJiZTRCh1KTskaygyNSl8fFprKDI1LHVbImd0bS5zdGFydCJdKTt2YXIgQz11WyJndG0udW5pcXVlRXZlbnRJZCJdO3UuZXZlbnQ/KHR5cGVvZiBDIT09Im51bWJlciImJihDPXJqKCksdVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1DLHJBLnNldCgiZ3RtLnVuaXF1ZUV2ZW50SWQiLEMpKSx0PXpCKHUpKTp0PSExO2I9dHx8Yn19fWZpbmFsbHl7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZvQShyQSwhMCk7dmFyIEQ9ZlsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtpZih0eXBlb2YgRD09PSJudW1iZXIiKXtmb3IodmFyIEk9YSxHPUkuS1tTdHJpbmcoRCldfHxbXSxOPTA7TjxHLmxlbmd0aDtOKyspSS5OLnB1c2gobUUoR1tOXSkpO0cubGVuZ3RoJiZJLk4uc29ydChuRSk7ZGVsZXRlIEkuS1tTdHJpbmcoRCldO0Q+YS5aJiYoYS5aPUQpfWEuUj0hMX19fXJldHVybiFifSwKcEU9ZnVuY3Rpb24oKXt2YXIgYT1oRTthLmZhJiZQKDE5NSk7YS5mYT0hMDtpZihmbi5IKXt2YXIgYj0hSWYoNTEpLGM9cnooKTtweihjLHtzdGFnZTpJeS5YLlpnfSk7aWYoYil7dmFyIGQ9cXooYyx7c3RhZ2U6SXkuWC5Za30sSXkuWC5uaSk7ZCE9PXZvaWQgMCYmKGMuSC5ZPWQpfXZhciBlPWEuSC5sZW5ndGg7cnooKS5ILkM9ZX1vRShhKTtpZihmbi5IKXt2YXIgZj1yeigpLGc9cXooZix7c3RhZ2U6SXkuWC5Wa30sSXkuWC5aZyk7ZyE9PXZvaWQgMCYmKGYuSC5CPWcpfXRyeXt2YXIgaD1BW0UoMTkpXSxsPUUoNSksbj1oLmhpZGU7aWYobiYmbltsXSE9PXZvaWQgMCYmbi5lbmQpe25bbF09ITE7dmFyIHA9ITAscTtmb3IocSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocSkmJm5bcV09PT0hMCl7cD0hMTticmVha31wJiYobi5lbmQoKSxuLmVuZD1udWxsKX19Y2F0Y2gocil7RSg1KX19LHFFPWZ1bmN0aW9uKGEsYil7aWYoYS5aPGIubm90QmVmb3JlRXZlbnRJZCl7dmFyIGM9U3RyaW5nKGIubm90QmVmb3JlRXZlbnRJZCk7CmEuS1tjXT1hLktbY118fFtdO2EuS1tjXS5wdXNoKGIpfWVsc2V7YS5OLnB1c2gobUUoYikpO2EuTi5zb3J0KG5FKTt2YXIgZD1mdW5jdGlvbigpe2EuUnx8b0UoYSl9O00oNTgwKT9kZChkKTpiZChkKX19OwpnRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoaCl7dmFyIGw9e307aWYoREQoaCkpe3ZhciBuPWg7aD1ERChuKT9uLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSgpOnZvaWQgMDtsLmZyb21Db250YWluZXJFeGVjdXRpb249ITB9cmV0dXJue21lc3NhZ2U6aCxtZXNzYWdlQ29udGV4dDpsfX12YXIgYj10aGlzLGM9TWMoRSgxOSksW10pLGQ9cGooKTtkLnBydW5lZD09PSEwJiZQKDgzKTt0aGlzLks9bkQoKS5nZXQoKTtuRCgpLmxpc3RlbihmdW5jdGlvbihoKXtxRShiLGgpfSk7ZC5zdWJzY3JpYmVycz0oZC5zdWJzY3JpYmVyc3x8MCkrMTt2YXIgZT1jLnB1c2gsZj10aGlzO2MucHVzaD1mdW5jdGlvbigpe3ZhciBoO2xqKCk7aWYoamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPjApe2g9W107Zm9yKHZhciBsPTA7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyloW2xdPW5ldyBFRChhcmd1bWVudHNbbF0pfWVsc2UgaD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTsKdmFyIG49aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KTtmLkgucHVzaC5hcHBseShmLkgsbik7dmFyIHA9ZS5hcHBseShjLGgpLHE9TWF0aC5tYXgoMTAwLE5mKDEsMzAwKSk7aWYodGhpcy5sZW5ndGg+cSlmb3IoUCg0KSxkLnBydW5lZD0hMDt0aGlzLmxlbmd0aD5xOyl0aGlzLnNoaWZ0KCk7dmFyIHI9dHlwZW9mIHAhPT0iYm9vbGVhbiJ8fHA7cmV0dXJuIG9FKGYpJiZyfTt2YXIgZz1jLnNsaWNlKDApLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gYShoKX0pO3RoaXMuSC5wdXNoLmFwcGx5KHRoaXMuSCxnKTtJZig1MSl8fChmbi5IJiZ1eigpLGJkKHJFKSk7VkIoZnVuY3Rpb24oKXtpZighZC5ndG1Eb20pe2QuZ3RtRG9tPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmRvbSIsaCkpfX0pO2ZFKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtTG9hZCl7ZC5ndG1Mb2FkPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmxvYWQiLGgpKX19KX07CmdFLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEpe3JldHVybiBBW0UoMTkpXS5wdXNoKGEpfTt2YXIgaEU9bmV3IGdFO2Z1bmN0aW9uIG5FKGEsYil7dmFyIGM9YS5tZXNzYWdlQ29udGV4dCxkPWIubWVzc2FnZUNvbnRleHQ7aWYoYy5ldmVudElkIT09ZC5ldmVudElkKXJldHVybiBjLmV2ZW50SWQtZC5ldmVudElkO2lmKCFNKDU5NSkpcmV0dXJuIGMucHJpb3JpdHlJZC1kLnByaW9yaXR5SWQ7dmFyIGUsZixnO2E6e2Zvcih2YXIgaD0oZT1jLnByaW9yaXR5UXVldWUpIT1udWxsP2U6W2MucHJpb3JpdHlJZF0sbD0oZj1kLnByaW9yaXR5UXVldWUpIT1udWxsP2Y6W2QucHJpb3JpdHlJZF0sbj1NYXRoLm1pbihoLmxlbmd0aCxsLmxlbmd0aCkscD0wO3A8bjtwKyspaWYoaFtwXSE9PWxbcF0pe2c9aFtwXS1sW3BdO2JyZWFrIGF9Zz1oLmxlbmd0aC1sLmxlbmd0aH1yZXR1cm4gZ30KZnVuY3Rpb24ga0UoYSl7aWYoYT09bnVsbHx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZihhLmV2ZW50KXJldHVybiEwO2lmKEhiKGEpKXt2YXIgYj1hWzBdO2lmKGI9PT0iY29uZmlnInx8Yj09PSJldmVudCJ8fGI9PT0ianMifHxiPT09ImdldCIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbUUoYSl7cmV0dXJue21lc3NhZ2U6YS5tZXNzYWdlLG1lc3NhZ2VDb250ZXh0OmEubWVzc2FnZUNvbnRleHR9fWZ1bmN0aW9uIHNFKGEsYixjKXtyZXR1cm4gaUUoYSxiLGMpfWZ1bmN0aW9uIHRFKGEsYil7cmV0dXJuIGpFKGEsYil9ZnVuY3Rpb24gckUoKXtwRSgpfWZ1bmN0aW9uIHVFKGEpe3JldHVybiBoRS5wdXNoKGEpfTt2YXIgdkU9ZnVuY3Rpb24oKXt9O3ZFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGEsYj1SaihBLmxvY2F0aW9uLmhyZWYpOyhhPWIuaG9zdG5hbWUrYi5wYXRobmFtZSkmJlVtKCJkbCIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTt2YXIgYzt2YXIgZD1FKDUpO2lmKGQpe3ZhciBlPUlmKDcpPzE6MCxmPUZrKCksZz1mJiZmLmZyb21Db250YWluZXJFeGVjdXRpb24/MTowLGg9ZiYmZi5zb3VyY2V8fDAsbD1FKDYpO2M9ZCsiOyIrbCsiOyIrZysiOyIraCsiOyIrZX1lbHNlIGM9dm9pZCAwO3ZhciBuPWM7biYmVW0oInRkcCIsbik7dmFyIHA9T3AoITApO3AhPT12b2lkIDAmJlVtKCJmcm0iLFN0cmluZyhwKSl9O3ZhciB3RT1uZXcgdkU7dmFyIHhFPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCk7dGhpcy5LPXZvaWQgMH0seUU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWm0oYSxmdW5jdGlvbihjKXtyZXR1cm4gYy5qYj4wP2I/Yy5qYisiXyIrV20oYyk6U3RyaW5nKGMuamIpOnZvaWQgMH0pfTsKeEUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKHBsKCl8fGZuLkspVW0oImNzcCIsZnVuY3Rpb24oKXt2YXIgYj15RShhLkgsITApOyRtKGEuSCk7cmV0dXJuIGJ9LCExKSxVbSgibWRlIixmdW5jdGlvbigpe3ZhciBiPWNuLkgsYz15RShiLCExKTskbShiKTtyZXR1cm4gY30sITEpLEEuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLGZ1bmN0aW9uKGIpe2lmKGIuZGlzcG9zaXRpb249PT0iZW5mb3JjZSIpe1AoMTc5KTt2YXIgYz1ubihiLmVmZmVjdGl2ZURpcmVjdGl2ZSk7aWYoYyl7dmFyIGQ7YTp7dmFyIGU9Yi5ibG9ja2VkVVJJLGY9a247aWYoZm4uSyYmZSl7dmFyIGc9am4oYyxlKTtpZihnKXt2YXIgaDtkPShoPWxuKGYsYykpPT1udWxsP3ZvaWQgMDpoW2ddO2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBsPWQ7aWYobCl7dmFyIG47YTp7dHJ5e3ZhciBwPW5ldyBVUkwoYi5ibG9ja2VkVVJJKSxxPXAucGF0aG5hbWUuaW5kZXhPZigiOyIpOwpuPXE+PTA/cC5vcmlnaW4rcC5wYXRobmFtZS5zdWJzdHJpbmcoMCxxKTpwLm9yaWdpbitwLnBhdGhuYW1lO2JyZWFrIGF9Y2F0Y2goRCl7fW49dm9pZCAwfXZhciByPW47aWYocil7Zm9yKHZhciB0PW0obCksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpe3ZhciB2PXUudmFsdWU7aWYoIXYuRW8pe3YuRW89ITA7dmFyIHg9e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfTtpZihwbCgpKXt2YXIgeT14LHo9e3R5cGU6MSxibG9ja2VkVXJsOnIsZW5kcG9pbnQ6di5lbmRwb2ludCx2aW9sYXRpb246Yi5lZmZlY3RpdmVEaXJlY3RpdmV9O2lmKHBsKCkpe3ZhciBDPUxsKCJUQUdfRElBR05PU1RJQ1MiLHtldmVudElkOnk9PW51bGw/dm9pZCAwOnkuZXZlbnRJZCxwcmlvcml0eUlkOnk9PW51bGw/dm9pZCAwOnkucHJpb3JpdHlJZH0pO0MudGFnRGlhZ25vc3RpY3M9ejtvbChDKX19ekUoYSx2LmRlc3RpbmF0aW9uSWQsdi5lbmRwb2ludCxjKX19bW4oYywKYi5ibG9ja2VkVVJJKX19fX19KX07dmFyIHpFPWZ1bmN0aW9uKGEsYixjLGQpe2FuKGEuSCxiLGMsMSxkKTtWbSgiY3NwIiwhMCk7Vm0oIm1kZSIsITApO2MhPT02MSYmYyE9PTU2JiZhLks9PT12b2lkIDAmJihhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5ILmpiPjAmJnRvKCExKTthLks9dm9pZCAwfSw1MDApKX0sQUU9bmV3IHhFO3ZhciBCRT1mdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MH07QkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO0NFKHRoaXMpO0lmKDY1KSYmVW0oIm10YmwiLCIxIik7VW0oInYiLCIzIik7VW0oInQiLCJ0Iik7VW0oInBpZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKG5tKGptLmJhLmJoKSl9KTtVbSgiZ3RtIixmdW5jdGlvbigpe3JldHVybiBkdSgpfSk7VW0oInNlcSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKCsrYS5zZXF1ZW5jZU51bWJlcil9KTtVbSgiZXhwIixmdW5jdGlvbigpe3JldHVybiBDcCgpfSl9O3ZhciBDRT1mdW5jdGlvbihhKXtpZihubShqbS5iYS5iaCk9PT12b2lkIDApe3ZhciBiPWZ1bmN0aW9uKCl7bW0oam0uYmEuYmgsRGIoKSk7YS5zZXF1ZW5jZU51bWJlcj0wfTtiKCk7Y2QoYiw4NjRFNSl9ZWxzZSBwbShqbS5iYS5iaCxmdW5jdGlvbigpe2Euc2VxdWVuY2VOdW1iZXI9MH0pO2Euc2VxdWVuY2VOdW1iZXI9MH0sREU9bmV3IEJFO2Z1bmN0aW9uIEVFKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBW2FdfX0KdmFyIEZFPXt9LEdFPShGRVsxNF09ZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOmEuZ2V0UmFuZG9tVmFsdWVzfSxGRVsxNV09ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6KGI9YS5zdWJ0bGUpPT1udWxsP3ZvaWQgMDpiLmRpZ2VzdH0sRkVbMV09RUUoImZldGNoIiksRkVbNl09RUUoIk1hcCIpLEZFWzJdPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tfSxGRVs4XT1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpfSxGRVs5XT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZW50cmllc30sRkVbMTBdPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllc30sRkVbNV09RUUoIlByb21pc2UiKSxGRVsxM109RUUoIlJlZ0V4cCIpLEZFWzNdPWZ1bmN0aW9uKCl7cmV0dXJuIEhjLnNlbmRCZWFjb259LEZFWzddPUVFKCJTZXQiKSxGRVsxMl09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aH0sCkZFWzExXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh9LEZFWzRdPUVFKCJYTUxIdHRwUmVxdWVzdCIpLEZFKSxIRT17fSxJRT0oSEVbMTVdPSEwLEhFKTt2YXIgTkU9L14oaHR0cHM/Oik/XC9cLy87CmZ1bmN0aW9uIGhGKCl7fTtmdW5jdGlvbiBpRigpe0lmKDYyKSYmKGh5KCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQud2FpdEZvclRhZ3MpIT09ITB9KSxoeSgiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQuZml4TWlzc2luZ0FwaSkhPT0hMH0pKX07dmFyIGpGPWZ1bmN0aW9uKCl7dGhpcy5IPXRoaXMuZ3BwU3RyaW5nPXZvaWQgMH07akYucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5IPXRoaXMuZ3BwU3RyaW5nPXZvaWQgMH07dmFyIGtGPW5ldyBqRjtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO2x0KHtHdTowLEZ1OjEsQ3U6Mix4dTozLER1OjQseXU6NSxFdTo2LEF1OjcsQnU6OCx3dTo5LHp1OjEwLEh1OjExfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBOdW1iZXIoYSl9KTtsdCh7SnU6MCxLdToxLEl1OjJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO3ZhciBsRj1mdW5jdGlvbihhLGIsYyxkKXtydC5jYWxsKHRoaXMpO3RoaXMuZmU9Yjt0aGlzLmtkPWM7dGhpcy5hYz1kO3RoaXMuTGE9bmV3IE1hcDt0aGlzLmhlPTA7dGhpcy5qYT1uZXcgTWFwO3RoaXMueWE9bmV3IE1hcDt0aGlzLlo9dm9pZCAwO3RoaXMuSz1hfTt3YShsRixydCk7bEYucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5IO3RoaXMuTGEuY2xlYXIoKTt0aGlzLmphLmNsZWFyKCk7dGhpcy55YS5jbGVhcigpO3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLmFjO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9Owp2YXIgbUY9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5rZCYmYS5rZChhLkspP2EuSD1hLks6YS5IPU5wKGEuSyxhLmZlKTt2YXIgYjtyZXR1cm4oYj1hLkgpIT1udWxsP2I6bnVsbH0sb0Y9ZnVuY3Rpb24oYSxiLGMpe2lmKG1GKGEpKWlmKGEuSD09PWEuSyl7dmFyIGQ9YS5MYS5nZXQoYik7ZCYmZChhLkgsYyl9ZWxzZXt2YXIgZT1hLmphLmdldChiKTtpZihlJiZlLmRrKXtuRihhKTt2YXIgZj0rK2EuaGU7YS55YS5zZXQoZix7cGU6ZS5wZSxJcjplLm5vKGMpLHBlcnNpc3RlbnQ6Yj09PSJhZGRFdmVudExpc3RlbmVyIn0pO2EuSC5wb3N0TWVzc2FnZShlLmRrKGMsZiksIioiKX19fSxuRj1mdW5jdGlvbihhKXthLlp8fChhLlo9ZnVuY3Rpb24oYil7aWYoYi5zb3VyY2U9PT1hLkgpdHJ5e3ZhciBjO2M9YS5hYz9hLmFjKGIpOnZvaWQgMDtpZihjKXt2YXIgZD1jLllzLGU9YS55YS5nZXQoZCk7aWYoZSl7ZS5wZXJzaXN0ZW50fHxhLnlhLmRlbGV0ZShkKTt2YXIgZjsoZj0KZS5wZSk9PW51bGx8fGYuY2FsbChlLGUuSXIsYy5wYXlsb2FkKX19fWNhdGNoKGcpe319LG10KGEuSywibWVzc2FnZSIsYS5aKSl9O3ZhciBwRj1mdW5jdGlvbihhLGIpe3ZhciBjPWIubGlzdGVuZXIsZD0oMCxhLl9fZ3BwKSgiYWRkRXZlbnRMaXN0ZW5lciIsYyk7ZCYmYyhkLCEwKX0scUY9ZnVuY3Rpb24oYSxiKXsoMCxhLl9fZ3BwKSgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsYi5saXN0ZW5lcixiLmxpc3RlbmVySWQpfSxyRj17bm86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdGVuZXJ9LGRrOmZ1bmN0aW9uKGEsYil7dmFyIGM9e307cmV0dXJuIGMuX19ncHBDYWxsPXtjYWxsSWQ6Yixjb21tYW5kOiJhZGRFdmVudExpc3RlbmVyIix2ZXJzaW9uOiIxLjEifSxjfSxwZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIuX19ncHBSZXR1cm47YShjLnJldHVyblZhbHVlLGMuc3VjY2Vzcyl9fSxzRj17bm86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdGVuZXJ9LGRrOmZ1bmN0aW9uKGEsYil7dmFyIGM9e307cmV0dXJuIGMuX19ncHBDYWxsPXtjYWxsSWQ6Yixjb21tYW5kOiJyZW1vdmVFdmVudExpc3RlbmVyIix2ZXJzaW9uOiIxLjEiLApwYXJhbWV0ZXI6YS5saXN0ZW5lcklkfSxjfSxwZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIuX19ncHBSZXR1cm4sZD1jLnJldHVyblZhbHVlLmRhdGE7YT09bnVsbHx8YShkLGMuc3VjY2Vzcyl9fTtmdW5jdGlvbiB0RihhKXt2YXIgYj17fTt2ZihhLmRhdGEpP2I9SlNPTi5wYXJzZShhLmRhdGEpOmI9YS5kYXRhO3JldHVybntwYXlsb2FkOmIsWXM6Yi5fX2dwcFJldHVybi5jYWxsSWR9fQp2YXIgdUY9ZnVuY3Rpb24oYSxiKXt2YXIgYztjPShiPT09dm9pZCAwP3t9OmIpLnRpbWVvdXRNcztydC5jYWxsKHRoaXMpO3RoaXMuY2FsbGVyPW5ldyBsRihhLCJfX2dwcExvY2F0b3IiLGZ1bmN0aW9uKGQpe3JldHVybiB0eXBlb2YgZC5fX2dwcD09PSJmdW5jdGlvbiJ9LHRGKTt0aGlzLmNhbGxlci5MYS5zZXQoImFkZEV2ZW50TGlzdGVuZXIiLHBGKTt0aGlzLmNhbGxlci5qYS5zZXQoImFkZEV2ZW50TGlzdGVuZXIiLHJGKTt0aGlzLmNhbGxlci5MYS5zZXQoInJlbW92ZUV2ZW50TGlzdGVuZXIiLHFGKTt0aGlzLmNhbGxlci5qYS5zZXQoInJlbW92ZUV2ZW50TGlzdGVuZXIiLHNGKTt0aGlzLnRpbWVvdXRNcz1jIT1udWxsP2M6NTAwfTt3YSh1RixydCk7dUYucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmNhbGxlci5kaXNwb3NlKCk7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnVGLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1IcChmdW5jdGlvbigpe2EodkYsITApfSksZD10aGlzLnRpbWVvdXRNcz09PS0xP3ZvaWQgMDpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YygpfSx0aGlzLnRpbWVvdXRNcyk7b0YodGhpcy5jYWxsZXIsImFkZEV2ZW50TGlzdGVuZXIiLHtsaXN0ZW5lcjpmdW5jdGlvbihlLGYpe2NsZWFyVGltZW91dChkKTt0cnl7dmFyIGc7dmFyIGg7KChoPWUucGluZ0RhdGEpPT1udWxsP3ZvaWQgMDpoLmdwcFZlcnNpb24pPT09dm9pZCAwfHxlLnBpbmdEYXRhLmdwcFZlcnNpb249PT0iMSJ8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxLjAiPyhiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKSxnPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MSxncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfSVNfREVQUkVDQVRFRF9TUEVDIiwKYXBwbGljYWJsZVNlY3Rpb25zOlstMV19fSk6QXJyYXkuaXNBcnJheShlLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucyk/Zz1lOihiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKSxnPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfRVhQRUNURURfQVBQTElDQVRJT05fU0VDVElPTl9BUlJBWSIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19fSk7YShnLGYpfWNhdGNoKGwpe2lmKGU9PW51bGw/MDplLmxpc3RlbmVySWQpdHJ5e2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpfWNhdGNoKG4pe2Eod0YsITApO3JldHVybn1hKHhGLCEwKX19fSl9Owp1Ri5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXtvRih0aGlzLmNhbGxlciwicmVtb3ZlRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKCl7fSxsaXN0ZW5lcklkOmF9KX07CnZhciB4Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjIsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX1VOQVZBSUxBQkxFIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sdkY9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19MSVNURU5FUl9SRUdJU1RSQVRJT05fVElNRU9VVCIsaW50ZXJuYWxFcnJvclN0YXRlOjIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9LHdGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX0VSUk9SIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX07ZnVuY3Rpb24geUYoYSl7dmFyIGI7aWYoIShiPWEucGluZ0RhdGEuc2lnbmFsU3RhdHVzPT09InJlYWR5Iikpe3ZhciBjPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zO2I9IWN8fGMubGVuZ3RoPT09MSYmY1swXT09PS0xfWlmKGIpe2tGLmdwcFN0cmluZz1hLnBpbmdEYXRhLmdwcFN0cmluZzt2YXIgZD1hLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucy5qb2luKCIsIik7a0YuSD1kfX1mdW5jdGlvbiB6Rigpe3RyeXt2YXIgYT1uZXcgdUYoQSx7dGltZW91dE1zOi0xfSk7bUYoYS5jYWxsZXIpJiZhLmFkZEV2ZW50TGlzdGVuZXIoeUYpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEFGKCl7dmFyIGE9W1siY3YiLEUoMSldLFsicnYiLEUoMTQpXSxbInRjIixjQS50YWdzLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZH0pLmxlbmd0aF1dLGI9SmYoMTUpO2ImJmEucHVzaChbIngiLGJdKTt2YXIgYz1DcCgpO2MmJmEucHVzaChbInRhZ19leHAiLGNdKTtyZXR1cm4gYX07dmFyIEJGPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImhmIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbImh0IixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LENGPWZ1bmN0aW9uKCl7dmFyIGE9MDtyZXR1cm4gZnVuY3Rpb24oYil7c3dpdGNoKGIpe2Nhc2UgMTphfD0xO2JyZWFrO2Nhc2UgMjphfD0yO2JyZWFrO2Nhc2UgMzphfD00fXJldHVybiBhfX0sREY7dmFyIEVGPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9IiI7Zm4uTiYmTSg1MTYpJiZmeihmdW5jdGlvbigpe3ZhciBiPVtdO2EuSCYmYi5wdXNoKFsicHNkIixhLkhdKTtyZXR1cm4gYn0pfSxGRjtmdW5jdGlvbiBHRigpe3JldHVybiExfQpmdW5jdGlvbiBIRigpe3ZhciBhPXt9O3JldHVybiBmdW5jdGlvbihiLGMsZCl7fX07ZnVuY3Rpb24gSUYoKXt2YXIgYT1KRjtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe3ZhciBlPWQmJmQuZXZlbnQ7S0YoYyk7dmFyIGY9QmgoYik/dm9pZCAwOjEsZz1uZXcga2I7R2IoYyxmdW5jdGlvbihyLHQpe3ZhciB1PVVkKHQsdm9pZCAwLGYpO3U9PT12b2lkIDAmJnQhPT12b2lkIDAmJlAoNDQpO2cuc2V0KHIsdSl9KTthLlFiKFFmKCkpO3ZhciBoPXtSbjpoZyhiKSxldmVudElkOmU9PW51bGw/dm9pZCAwOmUuaWQscHJpb3JpdHlJZDplIT09dm9pZCAwP2UucHJpb3JpdHlJZDp2b2lkIDAscHJpb3JpdHlRdWV1ZTplIT09dm9pZCAwP2UucHJpb3JpdHlRdWV1ZTp2b2lkIDAsd2c6ZSE9PXZvaWQgMD9mdW5jdGlvbihyKXtlLmxkLndnKHIpfTp2b2lkIDAsUGI6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbG9nOmZ1bmN0aW9uKCl7fSxOcjp7aW5kZXg6ZD09bnVsbD92b2lkIDA6ZC5pbmRleCx0eXBlOmQ9PW51bGw/dm9pZCAwOmQudHlwZSxuYW1lOmQ9PW51bGw/dm9pZCAwOmQubmFtZX0sCml0OiEhS0EoYiwzKSxvcmlnaW5hbEV2ZW50RGF0YTplPT1udWxsP3ZvaWQgMDplLm9yaWdpbmFsRXZlbnREYXRhfTtlJiZlLmNhY2hlZE1vZGVsVmFsdWVzJiYoaC5jYWNoZWRNb2RlbFZhbHVlcz17Z3RtOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZ3RtLGVjb21tZXJjZTplLmNhY2hlZE1vZGVsVmFsdWVzLmVjb21tZXJjZX0pO2lmKEdGKCkpe3ZhciBsPUhGKCksbixwO2guQWI9e3drOltdLHlnOnt9LGpjOmZ1bmN0aW9uKHIsdCx1KXt0PT09MSYmKG49cik7dD09PTcmJihwPXUpO2wocix0LHUpfSxlaTpWaCgpfTtoLmxvZz1mdW5jdGlvbihyKXt2YXIgdD1PYS5hcHBseSgxLGFyZ3VtZW50cyk7biYmbChuLDQse2xldmVsOnIsc291cmNlOnAsbWVzc2FnZTp0fSl9fQp2YXIgcT1yZihhLGgsW2IsZ10pO2EuUWIoKTtxIGluc3RhbmNlb2YgVGEmJihxLnR5cGU9PT0icmV0dXJuIj9xPXEuZGF0YTpxPXZvaWQgMCk7cmV0dXJuIFRkKHEsdm9pZCAwLGYpfX1mdW5jdGlvbiBLRihhKXt2YXIgYj1hLmd0bU9uU3VjY2VzcyxjPWEuZ3RtT25GYWlsdXJlO3liKGIpJiYoYS5ndG1PblN1Y2Nlc3M9ZnVuY3Rpb24oKXtiZChiKX0pO3liKGMpJiYoYS5ndG1PbkZhaWx1cmU9ZnVuY3Rpb24oKXtiZChjKX0pfTt2YXIgTEY9ZnVuY3Rpb24oYSl7aXgoYSl9O3ZhciBNRj1mdW5jdGlvbihhKXtWKGEsSC5KLnRnLGNvLmlhLmNiKX07ZnVuY3Rpb24gTkYoKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwKX07dmFyIE9GPVtGLkQuemldLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5zbGljZSgyKX0pO3ZhciBQRj1mdW5jdGlvbihhKXtVKGEsRi5ELnppLGFsKDgsTkYpKX07ZnVuY3Rpb24gUUYoYSl7fVFGLlA9ImludGVybmFsLmFkZEFkc0NsaWNrSWRzIjtmdW5jdGlvbiBSRihhLGIpe3ZhciBjPXRoaXM7fVJGLnB1YmxpY05hbWU9ImFkZENvbnNlbnRMaXN0ZW5lciI7dmFyIFNGPSExO2Z1bmN0aW9uIFRGKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKFNGKXRyeXthW2JdKCl9Y2F0Y2goYyl7UCg3Nyl9ZWxzZSBhW2JdKCl9ZnVuY3Rpb24gVUYoYSxiLGMpe3ZhciBkPXRoaXMsZTtpZighbGgoYSl8fCFoaChiKXx8IW1oKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiIsInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woZCwibGlzdGVuX2RhdGFfbGF5ZXIiLGEpfV0pO2U9eUIoKS5hZGRMaXN0ZW5lcihhLFRkKGIsdm9pZCAwLDEpLGM9PT1udWxsP3ZvaWQgMDpjKTtyZXR1cm4gZX1VRi5QPSJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBWRihhLGIsYyl7fVZGLnB1YmxpY05hbWU9ImFkZERvY3VtZW50RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gV0YoYSxiLGMsZCl7fVdGLnB1YmxpY05hbWU9ImFkZEVsZW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBYRihhKXtyZXR1cm4gYS5ULnhiKCl9O2Z1bmN0aW9uIFlGKGEpe31ZRi5wdWJsaWNOYW1lPSJhZGRFdmVudENhbGxiYWNrIjsKdmFyIFpGPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciP2E6U3RyaW5nKHJqKCkpfSxiRz1mdW5jdGlvbihhLGIpeyRGKGEsImluaXQiLCExKXx8KGFHKGEsImluaXQiLCEwKSxiKCkpfSwkRj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Y0coYSk7cmV0dXJuIE9iKGQsYixjKX0sZEc9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Y0coYSksZj1PYihlLGIsZCksZz1jKGYpO3JldHVybiBlW2JdPWd9LGFHPWZ1bmN0aW9uKGEsYixjKXtjRyhhKVtiXT1jfSxjRz1mdW5jdGlvbihhKXt2YXIgYj1raigiYXV0b0V2ZW50c1NldHRpbmdzIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yi5oYXNPd25Qcm9wZXJ0eShhKXx8KGJbYV09e30pO3JldHVybiBiW2FdfSxlRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e2V2ZW50OmIsImd0bS5lbGVtZW50IjphLCJndG0uZWxlbWVudENsYXNzZXMiOm9kKGEsImNsYXNzTmFtZSIpLCJndG0uZWxlbWVudElkIjphLmZvcnx8ZWQoYSwiaWQiKXx8CiIiLCJndG0uZWxlbWVudFRhcmdldCI6YS5mb3JtVGFyZ2V0fHxvZChhLCJ0YXJnZXQiKXx8IiJ9O2MmJihkWyJndG0udHJpZ2dlcnMiXT1jLmpvaW4oIiwiKSk7ZFsiZ3RtLmVsZW1lbnRVcmwiXT0oYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9hLmZvcm1BY3Rpb246IiIpfHxhLmFjdGlvbnx8b2QoYSwiaHJlZiIpfHxhLnNyY3x8YS5jb2RlfHxhLmNvZGViYXNlfHwiIjtyZXR1cm4gZH07dmFyIGhHPWZ1bmN0aW9uKGEsYixjKXtpZighYS5lbGVtZW50cylyZXR1cm4gMDtmb3IodmFyIGQ9Yi5kYXRhc2V0W2NdLGU9MCxmPTE7ZTxhLmVsZW1lbnRzLmxlbmd0aDtlKyspe3ZhciBnPWEuZWxlbWVudHNbZV0saD1nLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZighKGZHLmluZGV4T2YoaCk8MHx8aD09PSJpbnB1dCImJmdHLmluZGV4T2YoZy50eXBlLnRvTG93ZXJDYXNlKCkpPj0wKSl7aWYoZy5kYXRhc2V0W2NdPT09ZClyZXR1cm4gZjtmKyt9fXJldHVybiAwfSxmRz1bImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiXSxnRz1bImJ1dHRvbiIsImhpZGRlbiIsImltYWdlIiwicmVzZXQiLCJzdWJtaXQiXTsKZnVuY3Rpb24gaUcoYSl7aWYoYS5mb3JtKXt2YXIgYjtyZXR1cm4oKGI9YS5mb3JtKT09bnVsbD8wOmIudGFnTmFtZSk/YS5mb3JtOkIuZ2V0RWxlbWVudEJ5SWQoYS5mb3JtKX1yZXR1cm4gaGQoYSxbImZvcm0iXSwxMDApfTsKZnVuY3Rpb24gbUcoYSl7fW1HLlA9ImludGVybmFsLmFkZEZvcm1BYmFuZG9ubWVudExpc3RlbmVyIjtmdW5jdGlvbiBuRyhhLGIsYyxkKXt9Cm5HLlA9ImludGVybmFsLmFkZEZvcm1EYXRhIjsKZnVuY3Rpb24gc0coYSl7fXNHLlA9ImludGVybmFsLmFkZEdhU2VuZExpc3RlbmVyIjtmdW5jdGlvbiB0RyhhKXtpZighYSlyZXR1cm57fTt2YXIgYj1hLk5yO3JldHVybiBKQShiLnR5cGUsYi5pbmRleCxiLm5hbWUpfWZ1bmN0aW9uIHVHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPXtvcmlnaW5hdGluZ0VudGl0eTp0RyhhKX07YS5wcmlvcml0eVF1ZXVlJiYoYi5wcmlvcml0eVF1ZXVlPWEucHJpb3JpdHlRdWV1ZSk7cmV0dXJuIGJ9O2Z1bmN0aW9uIENHKGEpe3ZhciBiPW1qKCJ6b25lcyIpO3JldHVybiBiP2IuZ2V0SXNBbGxvd2VkRm4od2soKSxhKTpmdW5jdGlvbigpe3JldHVybiEwfX1mdW5jdGlvbiBERygpe3ZhciBhPW1qKCJ6b25lcyIpO2EmJmEudW5yZWdpc3RlckNoaWxkKHdrKCkpfQpmdW5jdGlvbiBFRygpe2tCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGI9YS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPW1qKCJ6b25lcyIpO3JldHVybiBjP2MuaXNBY3RpdmUod2soKSxiKTohMH0pO2hCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGIsYztiPWEuZW50aXR5SWQ7Yz1hLnNlY3VyaXR5R3JvdXBzO3JldHVybiBDRyhOdW1iZXIoYS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSkpKGIsYyl9KX07dmFyIEZHPWZ1bmN0aW9uKGEsYil7dGhpcy50YWdJZD1hO3RoaXMuY2Fub25pY2FsSWQ9Yn07CmZ1bmN0aW9uIEdHKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gYX1HRy5QPSJpbnRlcm5hbC5sb2FkR29vZ2xlVGFnIjtmdW5jdGlvbiBIRyhhKXtyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYik7aWYoYyBpbnN0YW5jZW9mIEtkKXJldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oKXt2YXIgZD1PYS5hcHBseSgwLGFyZ3VtZW50cyksZT10aGlzLGY9RWQoWEYodGhpcyksbnVsbCk7Zi5ldmVudElkPWEuZXZlbnRJZDtmLnByaW9yaXR5SWQ9YS5wcmlvcml0eUlkO2Yub3JpZ2luYWxFdmVudERhdGE9YS5vcmlnaW5hbEV2ZW50RGF0YTt2YXIgZz1kLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gZS5ldmFsdWF0ZShsKX0pLGg9dGhpcy5ULndiKCk7aC51ZShmKTtyZXR1cm4gYy5OYy5hcHBseShjLFtoXS5jb25jYXQodyhnKSkpfSl9KX07ZnVuY3Rpb24gSUcoYSxiLGMpe3ZhciBkPXRoaXM7fUlHLlA9ImludGVybmFsLmFkZEdvb2dsZVRhZ1Jlc3RyaWN0aW9uIjsKZnVuY3Rpb24gUEcoYSxiKXt9UEcuUD0iaW50ZXJuYWwuYWRkSGlzdG9yeUNoYW5nZUxpc3RlbmVyIjtmdW5jdGlvbiBRRyhhLGIsYyl7fVFHLnB1YmxpY05hbWU9ImFkZFdpbmRvd0V2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFJHKGEsYil7cmV0dXJuITB9UkcucHVibGljTmFtZT0iYWxpYXNJbldpbmRvdyI7ZnVuY3Rpb24gU0coYSxiLGMpe31TRy5QPSJpbnRlcm5hbC5hcHBlbmRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIFRHKGEpe3ZhciBiO3JldHVybiBifQpURy5wdWJsaWNOYW1lPSJjYWxsSW5XaW5kb3ciO2Z1bmN0aW9uIFVHKGEpe31VRy5wdWJsaWNOYW1lPSJjYWxsTGF0ZXIiO2Z1bmN0aW9uIFZHKGEpe31WRy5QPSJjYWxsT25Eb21SZWFkeSI7ZnVuY3Rpb24gV0coYSl7fVdHLlA9ImNhbGxPbldpbmRvd0xvYWQiO3ZhciBZRz1mdW5jdGlvbihhLGIpe3ZhciBjPW5tKFhHKXx8e30sZD1jW2FdfHx7fTtpZihkW2JdKXJldHVybiExO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCk7ZVtiXT0hMDt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2ZbYV09ZTttbShYRyxmKTtyZXR1cm4hMH0sWEc9am0uYmEuaHI7ZnVuY3Rpb24gWkcoYSxiKXtpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgYz1ZRyhhLGIpO3JldHVybiBjfVpHLlA9ImludGVybmFsLmNsYWltRGVzdGluYXRpb24iO2Z1bmN0aW9uICRHKGEsYil7dmFyIGM7cmV0dXJuIGN9JEcuUD0iaW50ZXJuYWwuY29tcHV0ZUd0bVBhcmFtZXRlciI7ZnVuY3Rpb24gYUgoYSxiKXt2YXIgYz10aGlzO31hSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSI7ZnVuY3Rpb24gYkgoYSxiKXt2YXIgYz10aGlzO31iSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVSZXRyeSI7ZnVuY3Rpb24gY0goYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPWE7aWYoIWttKGMpKXRocm93IEVycm9yKCJjb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSByZXF1aXJlcyB2YWxpZCBDcm9zc0NvbnRhaW5lclNjaGVtYSBrZXkuIik7dmFyIGQ9bm0oYyk7Yj1VZChkLHRoaXMuVCwxKTtyZXR1cm4gYn1jSC5QPSJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gZEgoYSxiKXt2YXIgYzt2YXIgZT1VZChjLHRoaXMuVCxCaChYRih0aGlzKS5QYigpKT8yOjEpO2U9PT12b2lkIDAmJmMhPT12b2lkIDAmJlAoNDUpO3JldHVybiBlfWRILnB1YmxpY05hbWU9ImNvcHlGcm9tRGF0YUxheWVyIjsKZnVuY3Rpb24gZUgoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWVILlA9ImludGVybmFsLmNvcHlGcm9tRGF0YUxheWVyQ2FjaGUiO2Z1bmN0aW9uIGZIKGEpe3ZhciBiO3JldHVybiBifWZILnB1YmxpY05hbWU9ImNvcHlGcm9tV2luZG93IjtmdW5jdGlvbiBnSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfWdILlA9ImludGVybmFsLmNvcHlLZXlGcm9tV2luZG93Ijt2YXIgaEg9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1jby5pYS5jYiYmZm8uSFthXT09PWJvLk1hLlVlJiYhWG8oRi5ELmthKX07dmFyIGlIPWZ1bmN0aW9uKCl7cmV0dXJuIjAifSxqSD1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybiIiO3ZhciBiPVsiZ2NsaWQiLCJkY2xpZCIsIndicmFpZCIsIl9nbCJdO00oMTAyKSYmYi5wdXNoKCJnYnJhaWQiKTtyZXR1cm4gU2ooYSxiLCIwIil9O3ZhciBrSD17fSxsSD17fSxtSD17fSxuSD17fSxvSD17fSxwSD17fSxxSD17fSxySD17fSxzSD17fSx0SD17fSx1SD17fSx2SD17fSx3SD17fSx4SD17fSx5SD17fSx6SD17fSxBSD17fSxCSD17fSxDSD17fSxESD17fSxFSD17fSxGSD17fSxHSD17fSxISD17fSxJSD17fSxKSD17fSxLSD0oSkhbRi5ELmZiXT0oa0hbMl09W2hIXSxrSCksSkhbRi5ELlpmXT0obEhbMl09W2hIXSxsSCksSkhbRi5ELkppXT0obUhbMl09W2hIXSxtSCksSkhbRi5ELmdtXT0obkhbMl09W2hIXSxuSCksSkhbRi5ELmhtXT0ob0hbMl09W2hIXSxvSCksSkhbRi5ELmltXT0ocEhbMl09W2hIXSxwSCksSkhbRi5ELmptXT0ocUhbMl09W2hIXSxxSCksSkhbRi5ELmttXT0ockhbMl09W2hIXSxySCksSkhbRi5ELkJjXT0oc0hbMl09W2hIXSxzSCksSkhbRi5ELmNnXT0odEhbMl09W2hIXSx0SCksSkhbRi5ELmRnXT0odUhbMl09W2hIXSx1SCksSkhbRi5ELmVnXT0odkhbMl09W2hIXSx2SCksSkhbRi5ELmZnXT0od0hbMl09CltoSF0sd0gpLEpIW0YuRC5nZ109KHhIWzJdPVtoSF0seEgpLEpIW0YuRC5oZ109KHlIWzJdPVtoSF0seUgpLEpIW0YuRC5pZ109KHpIWzJdPVtoSF0sekgpLEpIW0YuRC5qZ109KEFIWzJdPVtoSF0sQUgpLEpIW0YuRC5sYl09KEJIWzFdPVtoSF0sQkgpLEpIW0YuRC5EZF09KENIWzFdPVtoSF0sQ0gpLEpIW0YuRC5LZF09KERIWzFdPVtoSF0sREgpLEpIW0YuRC5FZV09KEVIWzFdPVtoSF0sRUgpLEpIW0YuRC5CZl09KEZIWzFdPVtmdW5jdGlvbihhKXtyZXR1cm4gTSgxMDIpJiZoSChhKX1dLEZIKSxKSFtGLkQuVWNdPShHSFsxXT1baEhdLEdIKSxKSFtGLkQuemFdPShISFsxXT1baEhdLEhIKSxKSFtGLkQuVWFdPShJSFsxXT1baEhdLElIKSxKSCksTEg9e30sTUg9KExIW0YuRC5sYl09aUgsTEhbRi5ELkRkXT1pSCxMSFtGLkQuS2RdPWlILExIW0YuRC5FZV09aUgsTEhbRi5ELkJmXT1pSCxMSFtGLkQuVWNdPWZ1bmN0aW9uKGEpe2lmKCFDZChhKSlyZXR1cm57fTt2YXIgYj1FZChhLApudWxsKTtkZWxldGUgYi5tYXRjaF9pZDtyZXR1cm4gYn0sTEhbRi5ELnphXT1qSCxMSFtGLkQuVWFdPWpILExIKSxOSD17fSxPSD17fSxQSD0oT0hbSC5KLllhXT0oTkhbMl09W2hIXSxOSCksT0gpLFFIPXt9O3ZhciBSSD1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLk49Yjt0aGlzLlI9Yzt0aGlzLlo9ZH07UkgucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9jby5pYS5nZDphO2lmKCF0aGlzLk4uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pKXJldHVybiB0aGlzLlIuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pP3RoaXMuWih0aGlzLkgpOnRoaXMuSH07UkgucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gQWQodGhpcy5IKT09PSJhcnJheSJ8fENkKHRoaXMuSCk/RWQodGhpcy5ILG51bGwpOnRoaXMuSH07CnZhciBTSD1mdW5jdGlvbigpe30sVEg9ZnVuY3Rpb24oYSxiKXt0aGlzLmNvbmRpdGlvbnM9YTt0aGlzLkg9Yn0sVUg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9KChkPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmRbMl0pfHxbXSxmLGc9KChmPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmZbMV0pfHxbXTtyZXR1cm4gbmV3IFJIKGMsZSxnLGEuSFtiXXx8U0gpfSxWSCxXSDt2YXIgWUg9ZnVuY3Rpb24oYSl7YS5LPSEwO2EuSD0hMTtpZihJZig1Mikpe2lmKE0oNTE2KSYmWEgoKSl7dmFyIGI7YS5zZXR0aW5ncz0oYj1kYXRhLnByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yjp7fTthLkg9ITB9ZWxzZXt2YXIgYzthLnNldHRpbmdzPShjPXByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yzp7fX1wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO2RhdGEucHJvZHVjdFNldHRpbmdzPXZvaWQgMDt2YXIgZDsoZD1GRikhPW51bGwmJmZuLk4mJk0oNTE2KSYmKGQuSD1hLkg/IjEiOiIwIil9fSwkSD1mdW5jdGlvbihhKXt2YXIgYj1aSDtiLkt8fFlIKGIpO3JldHVybiBiLnNldHRpbmdzW2FdfSxaSD1uZXcgZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzPXt9O3RoaXMuSz10aGlzLkg9ITF9OwpmdW5jdGlvbiBYSCgpe2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncyYmIXByb2R1Y3RTZXR0aW5ncylyZXR1cm4hMDtpZighZGF0YS5wcm9kdWN0U2V0dGluZ3N8fCFwcm9kdWN0U2V0dGluZ3N8fE9iamVjdC5rZXlzKGRhdGEucHJvZHVjdFNldHRpbmdzKS5sZW5ndGghPT1PYmplY3Qua2V5cyhwcm9kdWN0U2V0dGluZ3MpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGEgaW4gcHJvZHVjdFNldHRpbmdzKWlmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhKXx8ZGF0YS5wcm9kdWN0U2V0dGluZ3NbYV0ucHJlQXV0b1BpaSE9PXByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpKXJldHVybiExO3JldHVybiEwfTt2YXIgYUk9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnROYW1lPWI7dGhpcy5NPWM7dGhpcy5IPXt9O3RoaXMuaXNBYm9ydGVkPSExO3RoaXMudGFyZ2V0PWE7dGhpcy5tZXRhZGF0YT17fTtmb3IodmFyIGQ9Yy5ldmVudE1ldGFkYXRhfHx7fSxlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO1YodGhpcyxnLGRbZ10pfX0sUj1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7cmV0dXJuKGM9YS5IW2JdKT09bnVsbD92b2lkIDA6KGQ9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmQuY2FsbChjLFEoYSxILkoudGcpKX0sZXU9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEuSCl9LFU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSCxlO2M9PT12b2lkIDA/ZT12b2lkIDA6KFZIIT1udWxsfHwoVkg9bmV3IFRIKEtILE1IKSksZT1VSChWSCxiLGMpKTtkW2JdPWV9OwphSS5wcm90b3R5cGUubWVyZ2VIaXREYXRhRm9yS2V5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO2M9KGQ9dGhpcy5IW2FdKT09bnVsbD92b2lkIDA6KGU9ZC5LKT09bnVsbD92b2lkIDA6ZS5jYWxsKGQpO2lmKCFjKXJldHVybiBVKHRoaXMsYSxiKSwhMDtpZighQ2QoYykpcmV0dXJuITE7VSh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLGIpKTtyZXR1cm4hMH07dmFyIGJJPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Zm9yKHZhciBjPW0oT2JqZWN0LmtleXMoYS5IKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLkhbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6aC5jYWxsKGcpfXJldHVybiBifTsKYUkucHJvdG90eXBlLmNvcHlUb0hpdERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU8odGhpcy5NLGEpO2Q9PT12b2lkIDAmJihkPWIpO2lmKHpiKGQpJiZjIT09dm9pZCAwKXRyeXtkPWMoZCl9Y2F0Y2goZSl7fWQhPT12b2lkIDAmJlUodGhpcyxhLGQpfTsKdmFyIFE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1ldGFkYXRhW2JdO2lmKGI9PT1ILkoudGcpe3ZhciBkO3JldHVybiBjPT1udWxsP3ZvaWQgMDooZD1jLkspPT1udWxsP3ZvaWQgMDpkLmNhbGwoYyl9dmFyIGU7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihlPWMuZ2V0VmFsdWUpPT1udWxsP3ZvaWQgMDplLmNhbGwoYyxRKGEsSC5KLnRnKSl9LFY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubWV0YWRhdGEsZTtjPT09dm9pZCAwP2U9YzooV0ghPW51bGx8fChXSD1uZXcgVEgoUEgsUUgpKSxlPVVIKFdILGIsYykpO2RbYl09ZX0sY0k9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLm1ldGFkYXRhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLm1ldGFkYXRhW2VdKT09bnVsbD92b2lkIDA6KGg9KGc9ZikuSyk9PW51bGw/dm9pZCAwOgpoLmNhbGwoZyl9cmV0dXJuIGJ9LGRJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kSChhLnRhcmdldC5kZXN0aW5hdGlvbklkKTtyZXR1cm4gZCYmZFtiXSE9PXZvaWQgMD9kW2JdOmN9LFp1PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBhSSgoYj09bnVsbD92b2lkIDA6Yi50YXJnZXQpfHxhLnRhcmdldCwoYj09bnVsbD92b2lkIDA6Yi5ldmVudE5hbWUpfHxhLmV2ZW50TmFtZSwoYj09bnVsbD92b2lkIDA6Yi5NKXx8YS5NKSxkPWJJKGEpLGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7VShjLGcsZFtnXSl9Zm9yKHZhciBoPWNJKGEpLGw9bShPYmplY3Qua2V5cyhoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7VihjLHAsaFtwXSl9Yy5pc0Fib3J0ZWQ9YS5pc0Fib3J0ZWQ7cmV0dXJuIGN9LGVJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuTSxjPWIuZXZlbnRJZCxkPWIucHJpb3JpdHlJZDsKcmV0dXJuIGQ/YysiXyIrZDpTdHJpbmcoYyl9O2FJLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24oKXt2YXIgYT1vbShqbS5iYS5TaSx7fSksYj1lSSh0aGlzKSxjPXRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWQ7YVtiXXx8KGFbYl09e30pO2FbYl1bY109dmsoKTt2YXIgZD1qbS5iYS5TaTtpZihrbShkKSl7dmFyIGU7KGU9bG0oZCkpPT1udWxsfHxlLm5vdGlmeSgpfX07YUkucHJvdG90eXBlLmNhbkJlQWNjZXB0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuU2kpO2lmKCFiKXJldHVybiEwO3ZhciBjPWJbZUkodGhpcyldO2lmKCFjKXJldHVybiEwO3ZhciBkPWNbYSE9bnVsbD9hOnRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO3JldHVybiBkPT09dm9pZCAwfHxkPT09dmsoKX07ZnVuY3Rpb24gZkkoYSl7cmV0dXJue2dldERlc3RpbmF0aW9uSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS50YXJnZXQuZGVzdGluYXRpb25JZH0sZ2V0RXZlbnROYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZXZlbnROYW1lfSxzZXRFdmVudE5hbWU6ZnVuY3Rpb24oYil7YS5ldmVudE5hbWU9Yn0sZ2V0SGl0RGF0YTpmdW5jdGlvbihiKXtyZXR1cm4gUihhLGIpfSxzZXRIaXREYXRhOmZ1bmN0aW9uKGIsYyl7VShhLGIsYyl9LHNldEhpdERhdGFJZk5vdERlZmluZWQ6ZnVuY3Rpb24oYixjKXtSKGEsYik9PT12b2lkIDAmJlUoYSxiLGMpfSxjb3B5VG9IaXREYXRhOmZ1bmN0aW9uKGIsYyl7YS5jb3B5VG9IaXREYXRhKGIsYyl9LGdldE1ldGFkYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBRKGEsYil9LHNldE1ldGFkYXRhOmZ1bmN0aW9uKGIsYyl7VihhLGIsYyl9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBhLmlzQWJvcnRlZH0sYWJvcnQ6ZnVuY3Rpb24oKXthLmlzQWJvcnRlZD0hMH0sCmdldEZyb21FdmVudENvbnRleHQ6ZnVuY3Rpb24oYil7cmV0dXJuIE8oYS5NLGIpfSxyYjpmdW5jdGlvbigpe3JldHVybiBhfSxnZXRIaXRLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGV1KGEpfSxnZXRNZXJnZWRWYWx1ZXM6ZnVuY3Rpb24oYil7cmV0dXJuIGEuTS5nZXRNZXJnZWRWYWx1ZXMoYiwzKX0sbWVyZ2VIaXREYXRhRm9yS2V5OmZ1bmN0aW9uKGIsYyl7cmV0dXJuIENkKGMpP2EubWVyZ2VIaXREYXRhRm9yS2V5KGIsYyk6ITF9LGFjY2VwdDpmdW5jdGlvbigpe2EuYWNjZXB0KCl9LGNhbkJlQWNjZXB0ZWQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuY2FuQmVBY2NlcHRlZChiKX19fTtmdW5jdGlvbiBnSShhLGIpe3ZhciBjO2lmKCFlaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZD1UZChiKXx8e30sZT1UZChhLHRoaXMuVCwxKS5yYigpLGY9ZS5NO2Qub21pdEV2ZW50Q29udGV4dCYmKGY9SkMobmV3IHlDKGUuTS5ldmVudElkLGUuTS5wcmlvcml0eUlkKSkpO3ZhciBnPW5ldyBhSShlLnRhcmdldCxlLmV2ZW50TmFtZSxmKTtpZighZC5vbWl0SGl0RGF0YSlmb3IodmFyIGg9YkkoZSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtVKGcscCxoW3BdKX1pZihkLm9taXRNZXRhZGF0YSlnLm1ldGFkYXRhPXt9O2Vsc2UgZm9yKHZhciBxPWNJKGUpLHI9bShPYmplY3Qua2V5cyhxKSksdD1yLm5leHQoKTshdC5kb25lO3Q9CnIubmV4dCgpKXt2YXIgdT10LnZhbHVlO1YoZyx1LHFbdV0pfWcuaXNBYm9ydGVkPWUuaXNBYm9ydGVkO2M9VWQoZkkoZyksdGhpcy5ULDEpO3JldHVybiBjfWdJLlA9ImludGVybmFsLmNvcHlQcmVIaXQiO2Z1bmN0aW9uIGhJKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gVWQoYyx0aGlzLlQsMil9aEkucHVibGljTmFtZT0iY3JlYXRlQXJndW1lbnRzUXVldWUiO2Z1bmN0aW9uIGlJKGEpe3JldHVybiBVZChmdW5jdGlvbihjKXt2YXIgZD1TQSgpO2lmKHR5cGVvZiBjPT09ImZ1bmN0aW9uIilkKGZ1bmN0aW9uKCl7YyhmdW5jdGlvbihmLGcsaCl7dmFyIGw9ClNBKCksbj1sJiZsLmdldEJ5TmFtZSYmbC5nZXRCeU5hbWUoZik7cmV0dXJuKG5ldyBBLmdhcGx1Z2lucy5MaW5rZXIobikpLmRlY29yYXRlKGcsaCl9KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShjKSl7dmFyIGU9U3RyaW5nKGNbMF0pLnNwbGl0KCIuIik7YltlLmxlbmd0aD09PTE/ZVswXTplWzFdXSYmZC5hcHBseShudWxsLGMpfWVsc2UgaWYoYz09PSJpc0xvYWRlZCIpcmV0dXJuISFkLmxvYWRlZH0sdGhpcy5ULDEpfWlJLlA9ImludGVybmFsLmNyZWF0ZUdhQ29tbWFuZFF1ZXVlIjtmdW5jdGlvbiBqSShhKXtyZXR1cm4gVWQoZnVuY3Rpb24oKXtpZigheWIoZS5wdXNoKSl0aHJvdyBFcnJvcigiT2JqZWN0IGF0ICIrYSsiIGluIHdpbmRvdyBpcyBub3QgYW4gYXJyYXkuIik7ZS5wdXNoLmFwcGx5KGUsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sdGhpcy5ULApCaChYRih0aGlzKS5QYigpKT8yOjEpfWpJLnB1YmxpY05hbWU9ImNyZWF0ZVF1ZXVlIjtmdW5jdGlvbiBrSShhLGIpe3ZhciBjPW51bGw7cmV0dXJuIGN9a0kuUD0iaW50ZXJuYWwuY3JlYXRlUmVnZXgiO2Z1bmN0aW9uIGxJKGEpe31sSS5QPSJpbnRlcm5hbC5kZWNsYXJlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBtSShhKXt2YXIgYj0iIjtyZXR1cm4gYn1tSS5QPSJpbnRlcm5hbC5kZWNvZGVVcmxIdG1sRW50aXRpZXMiO2Z1bmN0aW9uIG5JKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1uSS5QPSJpbnRlcm5hbC5kZWNvcmF0ZVVybFdpdGhHYUNvb2tpZXMiO2Z1bmN0aW9uIG9JKCl7fW9JLlA9ImludGVybmFsLmRlZmVyQ3VzdG9tRXZlbnRzIjtmdW5jdGlvbiBwSShhLGIpe3RyeXtyZXR1cm4gYS5jbG9zZXN0KGIpfWNhdGNoKGMpe3JldHVybiBudWxsfX07ZnVuY3Rpb24gcUkoKXt2YXIgYT1BLnNjcmVlbjtyZXR1cm57d2lkdGg6YT9hLndpZHRoOjAsaGVpZ2h0OmE/YS5oZWlnaHQ6MH19CmZ1bmN0aW9uIHJJKGEpe2lmKEIuaGlkZGVuKXJldHVybiEwO3ZhciBiPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYi50b3A9PT1iLmJvdHRvbXx8Yi5sZWZ0PT09Yi5yaWdodHx8IUEuZ2V0Q29tcHV0ZWRTdHlsZSlyZXR1cm4hMDt2YXIgYz1BLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKTtpZihjLnZpc2liaWxpdHk9PT0iaGlkZGVuIilyZXR1cm4hMDtmb3IodmFyIGQ9YSxlPWM7ZDspe2lmKGUuZGlzcGxheT09PSJub25lIilyZXR1cm4hMDt2YXIgZj1lLm9wYWNpdHksZz1lLmZpbHRlcjtpZihnKXt2YXIgaD1nLmluZGV4T2YoIm9wYWNpdHkoIik7aD49MCYmKGc9Zy5zdWJzdHJpbmcoaCs4LGcuaW5kZXhPZigiKSIsaCkpLGcuY2hhckF0KGcubGVuZ3RoLTEpPT09IiUiJiYoZz1nLnN1YnN0cmluZygwLGcubGVuZ3RoLTEpKSxmPVN0cmluZyhNYXRoLm1pbihOdW1iZXIoZyksTnVtYmVyKGYpKSkpfWlmKGYhPT12b2lkIDAmJk51bWJlcihmKTw9MClyZXR1cm4hMDsoZD1kLnBhcmVudEVsZW1lbnQpJiYKKGU9QS5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpfXJldHVybiExfQp2YXIgSkk9ZnVuY3Rpb24oYSl7dmFyIGIsYz0oYj1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVTZWxlY3RvcikhPW51bGw/YjohMCxkLGU9KGQ9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlVmlzaWJpbGl0eSkhPW51bGw/ZDohMCxmLGc9KGY9YT09bnVsbD92b2lkIDA6YS5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKSE9bnVsbD9mOiExLGg9KGE9PW51bGw/dm9pZCAwOmEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMpfHxbXSxsPShhPT1udWxsP3ZvaWQgMDphLmZpZWxkRmlsdGVycyl8fHtlbWFpbDohMCxwaG9uZTohMSxhZGRyZXNzOiExfSxuPWFsKDYsZnVuY3Rpb24oKXtyZXR1cm57fX0pLHA9ekkoe2luY2x1ZGVTZWxlY3RvcjpjLGluY2x1ZGVWaXNpYmlsaXR5OmUsZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6aCxmaWVsZEZpbHRlcnM6bH0pLHE9bltwXTtpZihxJiZOYigpLXEudGltZXN0YW1wPDIwMCl7dmFyIHI9cS5yZXN1bHQsdDsoci5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8CigodD1yLmdpKT09bnVsbD8wOnQuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gcn12YXIgdT1BSSgpLHY9dS5zdGF0dXMseD1bXSx5LHosQz1bXTtpZihNKDU2OCkpe3ZhciBEPUJJKGwpLEk9Q0kodS5lbGVtZW50cyxEKSxHPURJKEkpLE49RUkoRyxoKSxTPUZJKE4pO3k9Uy5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5EYT09PUZELkJifSlbMF07Zm9yKHZhciBXPVtdLGVhPXtJZzowfTtlYS5JZzxELmxlbmd0aDtlYT17SWc6ZWEuSWd9LGVhLklnKyspe3ZhciBqYT1OLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIGZ1bmN0aW9uKGliKXtyZXR1cm4gaWIuRGE9PT1EW3FhLklnXX19KGVhKSk7amEubGVuZ3RoPjEwJiYodj0iMyIsamE9amEuc2xpY2UoMCwxMCkpO1c9Vy5jb25jYXQoamEpfU49VzshZyYmUyYmKE49Uyk7Zm9yKHZhciBmYT0wO2ZhPE4ubGVuZ3RoO2ZhKyspe3ZhciBzYT1OW2ZhXTtzYS5EYSE9PUZELktoJiZDLnB1c2goR0koc2EsYyxlKSl9fWVsc2V7aWYobC5lbWFpbCl7dmFyIGRhPQpISSh1LmVsZW1lbnRzKTt4PUVJKGRhLGgpO3k9SUkoeCk7ZGEubGVuZ3RoPjEwJiYodj0iMyIpfSFnJiZ5JiYoeD1beV0pO2Zvcih2YXIgbWE9MDttYTx4Lmxlbmd0aDttYSsrKUMucHVzaChHSSh4W21hXSxjLGUpKTtDPUMuc2xpY2UoMCwxMCl9eSYmKHo9R0koeSxjLGUpKTt2YXIgUGE9e2VsZW1lbnRzOkMsZ2k6eixzdGF0dXM6dn07bltwXT17dGltZXN0YW1wOk5iKCkscmVzdWx0OlBhfTt2YXIgRmE7KFBhLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwoKEZhPVBhLmdpKT09bnVsbD8wOkZhLmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIFBhfSxEST1mdW5jdGlvbihhKXt2YXIgYj1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELktofSksYz1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELlhkfSk7aWYoYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5jZX0pLmxlbmd0aD09PTAmJmMubGVuZ3RoPT09CjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0sZj1lLkNhLnNwbGl0KCIgIik7Zi5sZW5ndGg+MSYmYS5wdXNoKHtDYTpmWzBdLERhOkZELlhkLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9LHtDYTpmLnNsaWNlKDEpLmpvaW4oIiAiKSxEYTpGRC5jZSxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSl9Zm9yKHZhciBnLGg9MCxsLG49ZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5lZSYmdS5DYS5sZW5ndGg+PTMmJnUuQ2EubGVuZ3RoPD00fSxwPTA7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWFbcF07aWYobihxKSYmZyYmcS5lbGVtZW50LnBhcmVudEVsZW1lbnQ9PT1nJiZoPDMpe2lmKGgrPTEsbCs9cS5DYSxoPT09Myl7dmFyIHI9cC1oKzE7aWYobD1LSVtGRC5lZV0ubmEobCkpYVtyXS5DYT1sfX1lbHNlIGlmKGg9MCxsPSIiLGc9dm9pZCAwLG4ocSkpe2grKztsPXEuQ2E7dmFyIHQ9dm9pZCAwO2c9KHQ9cS5lbGVtZW50LnBhcmVudEVsZW1lbnQpIT1udWxsPwp0OnZvaWQgMH19cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiFuKHUpfSl9LE9JPWZ1bmN0aW9uKGEsYil7aWYoYS52YWx1ZSYmTEkuaW5kZXhPZigoYS50eXBlfHwidGV4dCIpLnRvTG93ZXJDYXNlKCkpIT09LTEpe3ZhciBjPWEuYXV0b2NvbXBsZXRlO2lmKGMpZm9yKHZhciBkPWMuc3BsaXQoIiAiKSxlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPU1JKGEudmFsdWUsYixkW2VdKTtpZihmKXJldHVybiBmfXZhciBnLGg9W2EubmFtZSxhLmlkLChnPWEuYXJpYUxhYmVsKSE9bnVsbD9nOnZvaWQgMCxhLnBsYWNlaG9sZGVyXSxsPWEucGFyZW50RWxlbWVudDtsJiZsLnRhZ05hbWU9PT0iTEFCRUwiJiZoLnB1c2gobC5pbm5lclRleHQpO3ZhciBuPWEucHJldmlvdXNFbGVtZW50U2libGluZztuJiZuLnRhZ05hbWU9PT0iTEFCRUwiJiYhbi5odG1sRm9yJiZoLnB1c2gobi5pbm5lclRleHQpO2lmKGEuaWQpe3ZhciBwPVtdO3RyeXtwPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnbGFiZWxbZm9yPSInKwphLmlkKyciXScpfWNhdGNoKEQpe31mb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKyloLnB1c2gocFtxXS5pbm5lclRleHQpfWg9aC5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIEQmJkQudHJpbSgpfSk7Zm9yKHZhciByLHQ9MCx1PTA7dTxoLmxlbmd0aDt1Kyspe3ZhciB2PU5JKGEsYixoW3VdKTtpZih2KXt2YXIgeD12LHk9eC5DYSx6PXguRGEsQz14LlhzO0M+dCYmKHQ9QyxyPXtDYTp5LERhOnp9KX19cmV0dXJuIHJ9fSxOST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0ubmUpe3ZhciBmPUtJW2VdLm5lLmV4ZWMoYy50cmltKCkpO2lmKGYpe3ZhciBnPWEsaD1bXSxsPWcudmFsdWUudHJpbSgpO2wmJmgucHVzaChsKTtpZihnLnRhZ05hbWU9PT0iU0VMRUNUIil0cnl7dmFyIG49Zy5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrZy52YWx1ZSsnIl0nKSxwPW4mJm4uaW5uZXJUZXh0LnRyaW0oKTtwJiZoLnB1c2gocCl9Y2F0Y2godSl7fWZvcih2YXIgcT0KaCxyPXZvaWQgMCx0PTA7dDxxLmxlbmd0aCYmIXI7dCsrKXI9S0lbZV0ubmEocVt0XSk7aWYocilyZXR1cm57RGE6ZSxDYTpyLFhzOmZbMF0ubGVuZ3RoL2MudHJpbSgpLmxlbmd0aH19fX19LE1JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5hdXRvY29tcGxldGUmJktJW2VdLmF1dG9jb21wbGV0ZS5pbmRleE9mKGMpPj0wKXt2YXIgZj1LSVtlXS5uYShhLnRyaW0oKSk7aWYoZilyZXR1cm57RGE6ZSxDYTpmfX19fSxCST1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmVtYWlsJiZiLnB1c2goRkQuQmIpO2EucGhvbmUmJmIucHVzaChGRC5lZSk7YS5hZGRyZXNzJiZiLnB1c2goRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQuS2gpO3JldHVybiBifSxDST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0sZj1lLmVsZW1lbnQsZz1lLk9jLGg7YTp7dmFyIGw9ZixuPWIsCnA9bC5pbm5lckhUTUw7UEkuaW5kZXhPZihsLnRhZ05hbWUpPj0wJiYocD1sLnZhbHVlfHxwKTtpZihwKXt2YXIgcTtiOntmb3IodmFyIHI9cCx0PW4sdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgdj10W3VdO2lmKCFLSVt2XS5tZSl7dmFyIHg9S0lbdl0ubmEoci50cmltKCkpO2lmKHgpe3E9e0RhOnYsQ2E6eH07YnJlYWsgYn19fXE9dm9pZCAwfWlmKHEpe2g9cTticmVhayBhfWlmKFBJLmluZGV4T2YobC50YWdOYW1lKSE9PS0xKXtoPU9JKGwsbik7YnJlYWsgYX19aD12b2lkIDB9dmFyIHk9aDtpZih5KXt2YXIgej15O2MucHVzaCh7Q2E6ei5DYSxEYTp6LkRhLGVsZW1lbnQ6ZixPYzpnfSl9fXJldHVybiBjfSxGST1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIGI7dmFyIGM9e30sZDtmb3IoZCBpbiBGRClpZihjPXtWZzpjLlZnfSxjLlZnPWQsRkQuaGFzT3duUHJvcGVydHkoYy5WZykpe3ZhciBlPWEuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gZy5EYT09PQpGRFtmLlZnXX19KGMpKTtlLmxlbmd0aCE9PTAmJihGRFtjLlZnXT09PUZELkJiJiYoZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFSSS50ZXN0KGYuQ2EpfSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiBmLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hckkoZi5lbGVtZW50KX0pKSxiLnB1c2goZVswXSkpfXJldHVybiBifSxHST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5lbGVtZW50LGU9YS5PYyxmPXtDYTphLkNhLHR5cGU6YS5EYSx0YWdOYW1lOmQudGFnTmFtZX07aWYoYil7dmFyIGcsaD1TSShkKTtpZihnPShlP2UrInwiK2g6aCkuc2xpY2UoMCxUSSkpZi5xdWVyeVNlbGVjdG9yPWd9YyYmKGYuaXNWaXNpYmxlPSFySShkKSk7ZSYmKGYuZGk9ITApO3JldHVybiBmfSx6ST1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtiPWEuaW5jbHVkZVNlbGVjdG9yO2M9YS5pbmNsdWRlVmlzaWJpbGl0eTtkPWEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM7CmU9YS5maWVsZEZpbHRlcnM7dmFyIGY9ISFiKyIuIishIWM7ZC5sZW5ndGgmJihmKz0iLiIrZC5qb2luKCIuIikpO3JldHVybiBmKz0iLiIrZS5lbWFpbCsiLiIrZS5waG9uZSsiLiIrZS5hZGRyZXNzfSxJST1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiO2I9UUkoYSxmdW5jdGlvbihjKXtyZXR1cm4hUkkudGVzdChjLkNhKX0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4gYy5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIXJJKGMuZWxlbWVudCl9KTtyZXR1cm4gYlswXX19LEVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtpZihnJiZwSShhW2RdLmVsZW1lbnQsZykpe2U9ITE7YnJlYWt9fWFbZF0uRGE9PT1GRC5CYiYmTSg2MDIpJiYoUkkudGVzdChhW2RdLkNhKXx8YVtkXS5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PQoiQSImJmFbZF0uZWxlbWVudC5oYXNBdHRyaWJ1dGUoImhyZWYiKSYmYVtkXS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluZGV4T2YoIm1haWx0bzoiKSE9PS0xP2U9ITE6YVtkXS5lbGVtZW50LmNsb3Nlc3QoImZvb3RlciIpIT09bnVsbCYmKGU9ITEpKTtlJiZjLnB1c2goYVtkXSl9cmV0dXJuIGN9LFFJPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg8PTEpcmV0dXJuIGE7dmFyIGM9YS5maWx0ZXIoYik7cmV0dXJuIGMubGVuZ3RoPT09MD9hOmN9LFNJPWZ1bmN0aW9uKGEpe2lmKGE9PT1CLmJvZHkpcmV0dXJuImJvZHkiO2lmKGEuaWQpcmV0dXJuIiMiK2EuaWQ7dmFyIGI9YS5wYXJlbnRFbGVtZW50O2lmKGIpe3ZhciBjPVNJKGIpLGQ9VUkoYSxiKSxlPVZJKGEpKyI6bnRoLWNoaWxkKCIrZCsiKSI7cmV0dXJuIGM/YysiPiIrZTplfXZhciBmPWEucGFyZW50Tm9kZTtpZihmIGluc3RhbmNlb2YgU2hhZG93Um9vdCl7dmFyIGc9VUkoYSxmKTtyZXR1cm4gVkkoYSkrIjpudGgtY2hpbGQoIisKZysiKSJ9cmV0dXJuIGEudGFnTmFtZT9hLnRhZ05hbWUudG9Mb3dlckNhc2UoKToiIn0sVkk9ZnVuY3Rpb24oYSl7aWYoYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0Lmxlbmd0aD4wKXt2YXIgYj1BcnJheS5mcm9tKGEuY2xhc3NMaXN0LGZ1bmN0aW9uKGMpe3JldHVybiBDU1MuZXNjYXBlKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmxlbmd0aD4wfSk7aWYoYi5sZW5ndGg+MClyZXR1cm4iLiIrYi5qb2luKCIuIil9cmV0dXJuIiJ9LFVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGRyZW4sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKGNbZF09PT1hKXJldHVybiBkKzE7cmV0dXJuIDF9LEhJPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmVsZW1lbnQsZj1kLk9jLGc9ZS50ZXh0Q29udGVudDtlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCImJmUudmFsdWUmJihnPWUudmFsdWUpO2lmKGcpe3ZhciBoPQpnLm1hdGNoKEtEKTtpZihoKXt2YXIgbD1oWzBdO0xEKGwpfHxiLnB1c2goe2VsZW1lbnQ6ZSxDYTpsLERhOkZELkJiLE9jOmZ9KX19fXJldHVybiBifSxBST1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Qi5ib2R5O2lmKCFiKXJldHVybntlbGVtZW50czphLHN0YXR1czoiNCJ9O3ZhciBjPVdJKGIsMCwiIixhKTtyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6Y319LFdJPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSxmPWUubGVuZ3RoPjFFND8iMiI6IjEiLGc9MDtnPE1hdGgubWluKGUubGVuZ3RoLDFFNCk7ZysrKXt2YXIgaD1lW2ddO2lmKCEoWEkuaW5kZXhPZihoLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApJiZoLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pe3ZhciBsPSExO2lmKE0oNTgyKSYmaC5zaGFkb3dSb290JiZiPDEpe3ZhciBuPVNJKGgpO1dJKGguc2hhZG93Um9vdCxiKzEsYz9jKyJ8IituOm4sZCk9PT0iMiImJgooZj0iMiIpO2w9ITB9dmFyIHA9ITE7aWYoIWwpZm9yKHZhciBxPTA7cTxNYXRoLm1pbihoLmNoaWxkRWxlbWVudENvdW50LDFFNCk7cSsrKWlmKCEoWUkuaW5kZXhPZihoLmNoaWxkcmVuW3FdLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApKXtwPSEwO2JyZWFrfSghcCYmIWx8fE0oNTY4KSYmUEkuaW5kZXhPZihoLnRhZ05hbWUpIT09LTEpJiZkLnB1c2goe2VsZW1lbnQ6aCxPYzpiPjA/Yzp2b2lkIDB9KX19cmV0dXJuIGZ9LFJJPS9zdXBwb3J0fG5vcmVwbHkvaSxYST0iU0NSSVBUIFNUWUxFIElNRyBTVkcgUEFUSCBCUiBOT1NDUklQVCBURVhUQVJFQSIuc3BsaXQoIiAiKSxZST1bIkJSIl0sVEk9TmYoNzAsNTApLFBJPVsiSU5QVVQiLCJTRUxFQ1QiXSxMST0idGV4dCB0ZWwgc2VhcmNoIG51bWJlciBoaWRkZW4gZW1haWwgc2VsZWN0LW9uZSIuc3BsaXQoIiAiKSxaST1SZWdFeHAoInBob25lfG1vYmlsZXxjb250YWN0Lj9udW1iZXJ8dGVsZWZvbm51bW1lcnx0ZWxlZm9ub3x0ZWxcdTAwZTlmb25vfHRlbGZpeGV8XHU5NmZiXHU4YTcxfHRlbGVmb25lfHRlbGVtb3ZlbHxcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzVcdTA0NDRcdTA0M2VcdTA0M2R8XHUwOTJlXHUwOTRiXHUwOTJjXHUwOTNlXHUwOTA3XHUwOTMyfFx1NzUzNVx1OGJkZHxcdTYyNGJcdTY3M2FcdTUzZjd8XHUwZDJlXHUwZDRhXHUwZDJjXHUwZDQ4XHUwZDMyXHUwZDRkXHUyMDBkfChefFstX10pdGVsWy1fXT8oXFxkKykqKFxcWy4qXFxdKSokfCg/Olx1YzgwNFx1ZDY1NHxcdWQ1NzhcdWI0ZGNcdWQzZjB8XHVkNzM0XHViMzAwXHVkM2YwfFx1ZDczNFx1YjMwMFx1YzgwNFx1ZDY1NCkoPzouP1x1YmM4OFx1ZDYzOCk/fChcXGJ8X3xcXCopdGVsZWZvbihcXGJ8X3xcXCopfHRlbGVwb258cG9uc2VsfChub21vcnxub1xcLj8pLj8oaHB8aGFuZHBob25lKSIsCiJpIiksJEk9UmVnRXhwKCJebmFtZXxmdWxsLj9uYW1lfHlvdXIuP25hbWV8Y3VzdG9tZXIuP25hbWV8YmlsbC4/bmFtZXxzaGlwLj9uYW1lfG5hbWUuKmZpcnN0LipsYXN0fGZpcnN0YW5kbGFzdG5hbWV8Y29udGFjdC4/KG5hbWV8cGVyc29uKXxub21icmUuKnkuKmFwZWxsaWRvc3xebm9tKD8hW2EtekEtWl0pfFx1MzA0YVx1NTQwZFx1NTI0ZHxcdTZjMGZcdTU0MGR8Xm5vbWV8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTU5ZDNcXHMqXHU1NDBkfFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzZFx1MDQzZVx1MDQzNS4/XHUwNDNiXHUwNDM4XHUwNDQ2XHUwNDNlfChcXGJ8X3xcXCopYWRbXHUwMTMxXT8gc295YWRbXHUwMTMxXT8oXFxifF98XFwqKXxcdWMxMzFcdWJhODV8bmFtYS4/KGxlbmdrYXB8cGVuZXJpbWF8a2FtdSkiLAoiaSIpLGFKPVJlZ0V4cCgiZmlyc3QuKm5hbWV8aW5pdGlhbHN8Zm5hbWV8Zmlyc3QkfGdpdmVuLipuYW1lfHZvcm5hbWV8bm9tYnJlfGZvcmVuYW1lfHByXHUwMGU5bm9tfHByZW5vbXxcdTU0MGR8bm9tZXxcdTA0MThcdTA0M2NcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1fFx1Yzc3NFx1Yjk4NHxcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoaXNpbXxhZHxhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XHUwOTI4XHUwOTNlXHUwOTJlfG5hbWEgZGVwYW4iLCJpIiksYko9UmVnRXhwKCJsYXN0LipuYW1lfGxuYW1lfHN1cm5hbWUoPyFcXGQpfGxhc3QkfHNlY29uZG5hbWV8ZmFtaWx5LipuYW1lfG5hY2huYW1lfGFwZWxsaWRvcz98ZmFtaWxsZXxebm9tKD8hW2EtekEtWl0pfGNvZ25vbWV8XHU1OWQzfGFwZWxpZG9zfHN1cmVuYW1lfHNvYnJlbm9tZXxcdTA0MjRcdTA0MzBcdTA0M2NcdTA0MzhcdTA0M2JcdTA0MzhcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHUwOTA5XHUwOTJhXHUwOTI4XHUwOTNlXHUwOTJlfFx1MGQyZVx1MGQzMVx1MGQ0MVx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShzb3lpc2ltfHNveWFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcXGJcdWMxMzEoPzpbXlx1YmE4NV18XFxiKXxuYW1hIGJlbGFrYW5nIiwKImkiKSxjSj1SZWdFeHAoImNvdW50cnl8Y291bnRyaWVzfHBhXHUwMGVkc3xwYWlzfChcXGJ8XylsYW5kKFxcYnxfKSg/IS4qKG1hcmsuKikpfChefFteKFx1NTE2NXxcdTUxZmEpXSlcdTU2ZmR8XHU1NmZkXHU1YmI2fFx1YWQ2ZFx1YWMwMHxcdWIwOThcdWI3N2N8KFxcYnxfKShcdTAwZmNsa2V8dWxjZXx1bGtlKShcXGJ8Xyl8XHUwNmE5XHUwNjM0XHUwNjQ4XHUwNjMxfG5lZ2FyYSIsImkiKSxkSj1SZWdFeHAoIihefFteLl0pemlwfHBvc3RhbHxwb3N0Lipjb2RlfHBjb2RlfHBpbi4/Y29kZXxwb3N0bGVpdHphaGx8XFxiY3BcXGJ8XFxiY2RwXFxifFxcYmNhcFxcYnxcdTkwZjVcdTRmYmZcdTc1NmFcdTUzZjd8Y29kaWdvfGNvZHBvc3xcXGJjZXBcXGJ8XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5Lj9cdTA0MThcdTA0M2RcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NDF8XHUwOTJhXHUwOTNmXHUwOTI4Lj9cdTA5MTVcdTA5NGJcdTA5MjF8XHUwZDJhXHUwZDNmXHUwZDI4XHUwZDRkXHUyMDBkXHUwZDE1XHUwZDRiXHUwZDIxXHUwZDRkfFx1OTBhZVx1NjUzZlx1N2YxNlx1NzgwMXxcdTkwYWVcdTdmMTZ8XHU5MGY1XHU5MDVlXHU1MzQwXHU4NjVmfChcXGJ8Xylwb3N0YSBrb2R1KFxcYnxfKXxcdWM2YjBcdWQzYjguP1x1YmM4OFx1ZDYzOHxrb2RlLj9wb3MiLAoiaSIpLGVKPXt9LEtJPShlSltGRC5CYl09e21lOiExLG5hOk1EfSxlSltGRC5lZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbInRlbCIsInRlbC1uYXRpb25hbCIsInRlbC1sb2NhbCJdLG5lOlpJLG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCEwKX19LGVKW0ZELktoXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsibmFtZSIsImNjLW5hbWUiXSxuZTokSSxuYTpORH0sZUpbRkQuWGRdPXttZTohMCxhdXRvY29tcGxldGU6WyJnaXZlbi1uYW1lIiwiY2MtZ2l2ZW4tbmFtZSJdLG5lOmFKLG5hOk5EfSxlSltGRC5jZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbImZhbWlseS1uYW1lIiwiY2MtZmFtaWx5LW5hbWUiXSxuZTpiSixuYTpORH0sZUpbRkQueGZdPXttZTohMCxhdXRvY29tcGxldGU6WyJjb3VudHJ5IiwiY291bnRyeS1uYW1lIl0sbmU6Y0osbmE6TkR9LGVKW0ZELnFnXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsicG9zdGFsLWNvZGUiXSxuZTpkSixuYTpJRH0sZUopO2Z1bmN0aW9uIGZKKGEpe3ZhciBiO0wodGhpcywiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iKTt2YXIgYz1UZChhKXx8e30sZD1KSSh7aW5jbHVkZVNlbGVjdG9yOiEhYy5pbmNsdWRlU2VsZWN0b3IsaW5jbHVkZVZpc2liaWxpdHk6ISFjLmluY2x1ZGVWaXNpYmlsaXR5LGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmMuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMsZmllbGRGaWx0ZXJzOmMuZmllbGRGaWx0ZXJzLHNlbGVjdE11bHRpcGxlRWxlbWVudHM6ISFjLnNlbGVjdE11bHRpcGxlRWxlbWVudHN9KTtiPW5ldyBrYjt2YXIgZT1uZXcgR2Q7Yi5zZXQoImVsZW1lbnRzIixlKTtmb3IodmFyIGY9ZC5lbGVtZW50cyxnPTA7ZzxmLmxlbmd0aDtnKyspZS5wdXNoKGdKKGZbZ10pKTtkLmdpIT09dm9pZCAwJiZiLnNldCgicHJlZmVycmVkRW1haWxFbGVtZW50IiwKZ0ooZC5naSkpO2Iuc2V0KCJzdGF0dXMiLGQuc3RhdHVzKTtpZihjLnJlYWRGcm9tRGF0YUxheWVyKXtoSihlLGMpO3ZhciBoPVBEKCksbD1oLnN0O2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hUaW1lIixoLnZ0KTtiLnNldCgiZGF0YUxheWVyU2VhcmNoQ291bnQiLGwpfXJldHVybiBifQp2YXIgaUo9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgRkQuQmI6cmV0dXJuImVtYWlsIjtjYXNlIEZELmVlOnJldHVybiJwaG9uZV9udW1iZXIiO2Nhc2UgRkQuWGQ6cmV0dXJuImZpcnN0X25hbWUiO2Nhc2UgRkQuY2U6cmV0dXJuImxhc3RfbmFtZSI7Y2FzZSBGRC50ajpyZXR1cm4ic3RyZWV0IjtjYXNlIEZELmxpOnJldHVybiJjaXR5IjtjYXNlIEZELmpqOnJldHVybiJyZWdpb24iO2Nhc2UgRkQucWc6cmV0dXJuInBvc3RhbF9jb2RlIjtjYXNlIEZELnhmOnJldHVybiJjb3VudHJ5In19LGpKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYixjPWlKKGEuRGEpO2MhPT12b2lkIDAmJmIuc2V0KCJ0eXBlIixjKTtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIiwiRExZUiIpO3JldHVybiBifSxoSj1mdW5jdGlvbihhLGIpe3ZhciBjPVFEKCk7aWYoTSg1NjgpKWZvcih2YXIgZD1uZXcgU2V0KGEuaGMoKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuZ2V0KCJ0eXBlIil9KSksCmU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlKSxoPWcubmV4dCgpLnZhbHVlLGw9Zy5uZXh0KCkudmFsdWUsbj1oLHA9bDtpZihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpYS5wdXNoKGpKKHApKTtlbHNle3ZhciBxPWlKKG4pO3EmJiFkLmhhcyhxKSYmYS5wdXNoKGpKKHApKX19ZWxzZSBjLmhhcyhGRC5CYikmJihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHN8fGEubGVuZ3RoKCk9PT0wKSYmYS5wdXNoKGpKKGMuZ2V0KEZELkJiKSkpfSxnSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsYS50YWdOYW1lKTthLnF1ZXJ5U2VsZWN0b3IhPT12b2lkIDAmJmIuc2V0KCJxdWVyeVNlbGVjdG9yIixhLnF1ZXJ5U2VsZWN0b3IpO2EuaXNWaXNpYmxlIT09dm9pZCAwJiZiLnNldCgiaXNWaXNpYmxlIixhLmlzVmlzaWJsZSk7aWYoTSg1NjgpKXt2YXIgYz1pSihhLnR5cGUpO2MhPT0Kdm9pZCAwJiZiLnNldCgidHlwZSIsYyl9ZWxzZSBzd2l0Y2goYS50eXBlKXtjYXNlIEZELkJiOmIuc2V0KCJ0eXBlIiwiZW1haWwiKX1yZXR1cm4gYn07ZkouUD0iaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSI7CnZhciBrSj1mdW5jdGlvbihhKXt2YXIgYj1oZChhLFsiYnV0dG9uIiwiaW5wdXQiXSw1MCk7aWYoIWIpcmV0dXJuIG51bGw7dmFyIGM9U3RyaW5nKGIudGFnTmFtZSkudG9Mb3dlckNhc2UoKTtpZihjPT09ImJ1dHRvbiIpcmV0dXJuIGI7aWYoYz09PSJpbnB1dCIpe3ZhciBkPWVkKGIsInR5cGUiKTtpZihkPT09ImJ1dHRvbiJ8fGQ9PT0ic3VibWl0Inx8ZD09PSJpbWFnZSJ8fGQ9PT0iZmlsZSJ8fGQ9PT0icmVzZXQiKXJldHVybiBifXJldHVybiBudWxsfSxsSj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy50YXJnZXQ7aWYoZCl7dmFyIGU9JEYoYSwiaW5kaXZpZHVhbEVsZW1lbnRJZHMiLFtdKTtpZihlLmxlbmd0aD4wKXt2YXIgZj1lRyhkLGIsZSk7dUUoZil9dmFyIGc9ITEsaD0kRihhLCJjb21tb25CdXR0b25JZHMiLFtdKTtpZihoLmxlbmd0aD4wKXt2YXIgbD1rSihkKTtpZihsKXt2YXIgbj1lRyhsLGIsaCk7dUUobik7Zz0hMH19dmFyIHA9JEYoYSwic2VsZWN0b3JUb1RyaWdnZXJJZHMiLAp7fSkscTtmb3IocSBpbiBwKWlmKHAuaGFzT3duUHJvcGVydHkocSkpe3ZhciByPWc/cFtxXS5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIGguaW5kZXhPZih2KT09PS0xfSk6cFtxXTtpZihyLmxlbmd0aCE9PTApe3ZhciB0PXBJKGQscSk7aWYodCl7dmFyIHU9ZUcodCxiLHIpO3VFKHUpfX19fX07CmZ1bmN0aW9uIG1KKGEsYil7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgYz1hP1RkKGEpOnt9LGQ9SmIoYy5tYXRjaENvbW1vbkJ1dHRvbnMpLGU9ISFjLmNzc1NlbGVjdG9yLGY9WkYoYik7TCh0aGlzLCJkZXRlY3RfY2xpY2tfZXZlbnRzIixjLm1hdGNoQ29tbW9uQnV0dG9ucyxjLmNzc1NlbGVjdG9yKTt2YXIgZz1jLnVzZVYyRXZlbnROYW1lPyJndG0uY2xpY2stdjIiOiJndG0uY2xpY2siLGg9Yy51c2VWMkV2ZW50TmFtZT8iZWNsIjoiY2wiLGw9ZnVuY3Rpb24ocCl7cC5wdXNoKGYpO3JldHVybiBwfTtpZihlfHxkKXtpZihkJiZkRyhoLCJjb21tb25CdXR0b25JZHMiLGwsW10pLGUpe3ZhciBuPUxiKFN0cmluZyhjLmNzc1NlbGVjdG9yKSk7ZEcoaCwic2VsZWN0b3JUb1RyaWdnZXJJZHMiLApmdW5jdGlvbihwKXtwLmhhc093blByb3BlcnR5KG4pfHwocFtuXT1bXSk7bChwW25dKTtyZXR1cm4gcH0se30pfX1lbHNlIGRHKGgsImluZGl2aWR1YWxFbGVtZW50SWRzIixsLFtdKTtiRyhoLGZ1bmN0aW9uKCl7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKHApe2xKKGgsZyxwKX0sITApfSk7cmV0dXJuIGZ9bUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayI7CmZ1bmN0aW9uIHRKKGEsYil7cmV0dXJuIHB9dEouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FbGVtZW50VmlzaWJpbGl0eSI7ZnVuY3Rpb24gdUooKXt9dUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FcnJvciI7CnZhciB3Sj1mdW5jdGlvbihhLGIpe0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1iW2NdO2UmJkdiKGQsZnVuY3Rpb24oZixnKXt2SihnLGUpfSl9KX0seko9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9IiIrYjtpZihjW2hdKWNbaF0ucHVzaChhKTtlbHNle3ZhciBsPVthXTtjW2hdPWw7dmFyIG49ZFtoXTtufHwobj17fSxkW2hdPW4pO2UucHVzaChmdW5jdGlvbihwKXt2YXIgcT1wLnRhcmdldDtpZihxKXt2YXIgcj1pRyhxKTtpZihyKXt2YXIgdD14SihyLCJndG1Gb3JtSW50ZXJhY3RJZCIsZiksdT14SihxLCJndG1Gb3JtSW50ZXJhY3RGaWVsZElkIixnKTtpZih0IT09bnVsbCYmdSE9PW51bGwpe3ZhciB2PW5bdF07dj8odi5SYiYmKEEuY2xlYXJUaW1lb3V0KHYuUmIpLHYuZGYuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bS1mb3JtLWludGVyYWN0LWZpZWxkLWlkIikhPT11JiZ2Sih2LGwpKSx2LmRmPXEseUoodixsLGIpKTooblt0XT17Zm9ybTpyLGRmOnEsc2VxdWVuY2VOdW1iZXI6MCwKUmI6bnVsbH0seUooblt0XSxsLGIpKX19fX0pfX0sdko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmZvcm0sZD1hLmRmLGU9ZUcoYywiZ3RtLmZvcm1JbnRlcmFjdCIsYiksZj1jLmFjdGlvbjtmJiZmLnRhZ05hbWUmJihmPWMuY2xvbmVOb2RlKCExKS5hY3Rpb24pO2VbImd0bS5lbGVtZW50VXJsIl09ZjtlWyJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl09Yy5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbD9jLmdldEF0dHJpYnV0ZSgibmFtZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXT1jLmxlbmd0aDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZCJdPWQ7ZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRJZCJdPWQuaWQ7ZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl09ZC5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgibmFtZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZFBvc2l0aW9uIl09aEcoYyxkLCJndG1Gb3JtSW50ZXJhY3RGaWVsZElkIik7CmVbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdPWQuZ2V0QXR0cmlidXRlKCJ0eXBlIikhPW51bGw/ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKTp2b2lkIDA7ZVsiZ3RtLmludGVyYWN0U2VxdWVuY2VOdW1iZXIiXT1hLnNlcXVlbmNlTnVtYmVyO3VFKGUpO2Euc2VxdWVuY2VOdW1iZXIrKzthLlJiPW51bGx9LHlKPWZ1bmN0aW9uKGEsYixjKXtjP2EuUmI9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dkooYSxiKX0sYyk6dkooYSxiKX0seEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3RyeXtpZihkPWEuZGF0YXNldFtiXSlyZXR1cm4gZDtkPVN0cmluZyhjKCkpO2EuZGF0YXNldFtiXT1kfWNhdGNoKGUpe2Q9bnVsbH1yZXR1cm4gZH07CmZ1bmN0aW9uIEFKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIil9XSk7dmFyIGQ9WkYoYiksZT1hJiZOdW1iZXIoYS5nZXQoImludGVydmFsIikpO2U+MCYmaXNGaW5pdGUoZSl8fChlPTApO2lmKCRGKCJmaWwiLCJpbml0IiwhMSkpe3ZhciBmPSRGKCJmaWwiLCJyZWciKTtpZihmKWYoZCxlKTtlbHNlIHRocm93IEVycm9yKCJGYWlsZWQgdG8gcmVnaXN0ZXIgdHJpZ2dlcjogIitkKTt9ZWxzZXt2YXIgZz17fSxoPVtdLGw9e30sbj0wLHA9ZnVuY3Rpb24oKXtyZXR1cm4gbisrfSxxPTAscj1mdW5jdGlvbigpe3JldHVybiBxKyt9OyRjKEIsImNoYW5nZSIsCmZ1bmN0aW9uKHQpe2Zvcih2YXIgdT0wO3U8aC5sZW5ndGg7dSsrKWhbdV0odCl9KTskYyhBLCJwYWdlaGlkZSIsZnVuY3Rpb24oKXt3SihsLGcpfSk7ekooZCxlLGcsbCxoLHAscik7YUcoImZpbCIsInJlZyIsZnVuY3Rpb24odCx1KXt6Sih0LHUsZyxsLGgscCxyKX0pO2FHKCJmaWwiLCJpbml0IiwhMCl9cmV0dXJuIGR9QUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iOwp2YXIgQko9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0kRigiZnNsIixjPyJudi5td3QiOiJtd3QiLDApLGc7Zz1jPyRGKCJmc2wiLCJudi5pZHMiLFtdKTokRigiZnNsIiwiaWRzIixbXSk7aWYoIWcubGVuZ3RoKXJldHVybiEwO3ZhciBoPWVHKGEsImd0bS5mb3JtU3VibWl0IixnKSxsPWEuYWN0aW9uO2wmJmwudGFnTmFtZSYmKGw9YS5jbG9uZU5vZGUoITEpLmFjdGlvbik7UCgxMjEpO2lmKGw9PT0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3RyLyIpcmV0dXJuIFAoMTIyKSwhMDtoWyJndG0uZWxlbWVudFVybCJdPWw7aFsiZ3RtLmZvcm1DYW5jZWxlZCJdPWM7YS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbCYmKGhbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1hLmdldEF0dHJpYnV0ZSgibmFtZSIpKTtlJiYoaFsiZ3RtLmZvcm1TdWJtaXRFbGVtZW50Il09ZSxoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnRUZXh0Il09ZS52YWx1ZSk7aWYoZCYmZil7aWYoIXNFKGgsakUoYiwKZiksZikpcmV0dXJuITF9ZWxzZSBGeSgxLCJndG0uZm9ybVN1Ym1pdCIpLHNFKGgsZnVuY3Rpb24oKXt9LGZ8fDJFMyk7cmV0dXJuITB9LENKPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1mdW5jdGlvbihjKXtyZXR1cm4gQ2IoYSxmdW5jdGlvbihkKXtyZXR1cm4gZC5mb3JtPT09Y30pfTtyZXR1cm57c3RvcmU6ZnVuY3Rpb24oYyxkKXt2YXIgZT1iKGMpO2U/ZS5idXR0b249ZDphLnB1c2goe2Zvcm06YyxidXR0b246ZH0pfSxnZXQ6ZnVuY3Rpb24oYyl7dmFyIGQ9YihjKTtpZihkKXJldHVybiBkLmJ1dHRvbn19fSxESj1mdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtyZXR1cm4gYiYmYiE9PSJfc2VsZiImJmIhPT0iX3BhcmVudCImJmIhPT0iX3RvcCI/ITE6ITB9LEVKPWZ1bmN0aW9uKCl7dmFyIGE9Q0ooKSxiPUhUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0OyRjKEIsImNsaWNrIixmdW5jdGlvbihjKXt2YXIgZD1jLnRhcmdldDtpZihkKXt2YXIgZT1oZChkLFsiYnV0dG9uIiwKImlucHV0Il0sMTAwKTtpZihlJiYoZS50eXBlPT09InN1Ym1pdCJ8fGUudHlwZT09PSJpbWFnZSIpJiZlLm5hbWUmJmVkKGUsInZhbHVlIikpe3ZhciBmPWlHKGUpO2YmJmEuc3RvcmUoZixlKX19fSwhMSk7JGMoQiwic3VibWl0IixmdW5jdGlvbihjKXt2YXIgZD1jLnRhcmdldDtpZighZClyZXR1cm4gYy5yZXR1cm5WYWx1ZTt2YXIgZT1jLmRlZmF1bHRQcmV2ZW50ZWR8fGMucmV0dXJuVmFsdWU9PT0hMSxmPURKKGQpJiYhZSxnPWEuZ2V0KGQpLGg9ITA7aWYoQkooZCxmdW5jdGlvbigpe2lmKGgpe3ZhciBsPW51bGwsbj17fTtnJiYobD1CLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksbC50eXBlPSJoaWRkZW4iLGwubmFtZT1nLm5hbWUsbC52YWx1ZT1nLnZhbHVlLGQuYXBwZW5kQ2hpbGQobCksZy5oYXNBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSYmKG4uYWN0aW9uPWQuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSx4YyhkLGcuZ2V0QXR0cmlidXRlKCJmb3JtYWN0aW9uIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSYmCihuLmVuY3R5cGU9ZC5nZXRBdHRyaWJ1dGUoImVuY3R5cGUiKSxkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsZy5nZXRBdHRyaWJ1dGUoImZvcm1lbmN0eXBlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybW1ldGhvZCIpJiYobi5tZXRob2Q9ZC5nZXRBdHRyaWJ1dGUoIm1ldGhvZCIpLGQuc2V0QXR0cmlidXRlKCJtZXRob2QiLGcuZ2V0QXR0cmlidXRlKCJmb3JtbWV0aG9kIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikmJihuLnZhbGlkYXRlPWQuZ2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIpLGQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsZy5nZXRBdHRyaWJ1dGUoImZvcm12YWxpZGF0ZSIpKSksZy5oYXNBdHRyaWJ1dGUoImZvcm10YXJnZXQiKSYmKG4udGFyZ2V0PWQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKSxkLnNldEF0dHJpYnV0ZSgidGFyZ2V0IixnLmdldEF0dHJpYnV0ZSgiZm9ybXRhcmdldCIpKSkpO2IuY2FsbChkKTtsJiYoZC5yZW1vdmVDaGlsZChsKSxuLmhhc093blByb3BlcnR5KCJhY3Rpb24iKSYmCnhjKGQsbi5hY3Rpb24pLG4uaGFzT3duUHJvcGVydHkoImVuY3R5cGUiKSYmZC5zZXRBdHRyaWJ1dGUoImVuY3R5cGUiLG4uZW5jdHlwZSksbi5oYXNPd25Qcm9wZXJ0eSgibWV0aG9kIikmJmQuc2V0QXR0cmlidXRlKCJtZXRob2QiLG4ubWV0aG9kKSxuLmhhc093blByb3BlcnR5KCJ2YWxpZGF0ZSIpJiZkLnNldEF0dHJpYnV0ZSgidmFsaWRhdGUiLG4udmFsaWRhdGUpLG4uaGFzT3duUHJvcGVydHkoInRhcmdldCIpJiZkLnNldEF0dHJpYnV0ZSgidGFyZ2V0IixuLnRhcmdldCkpfX0sZSxmLGcpKWg9ITE7ZWxzZSByZXR1cm4gZXx8KGMucHJldmVudERlZmF1bHQmJmMucHJldmVudERlZmF1bHQoKSxjLnJldHVyblZhbHVlPSExKSwhMTtyZXR1cm4gYy5yZXR1cm5WYWx1ZX0sITEpO0hUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0PWZ1bmN0aW9uKCl7dmFyIGM9dGhpcyxkPSEwO0JKKGMsZnVuY3Rpb24oKXtkJiZiLmNhbGwoYyl9LCExLERKKGMpKSYmKGIuY2FsbChjKSxkPQohMSl9fTsKZnVuY3Rpb24gRkooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9YSYmYS5nZXQoIndhaXRGb3JUYWdzIik7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIix7d2FpdEZvclRhZ3M6ISFkfSl9XSk7dmFyIGU9YSYmYS5nZXQoImNoZWNrVmFsaWRhdGlvbiIpLGY9WkYoYik7aWYoZCl7dmFyIGc9TnVtYmVyKGEuZ2V0KCJ3YWl0Rm9yVGFnc1RpbWVvdXQiKSk7Zz4wJiZpc0Zpbml0ZShnKXx8KGc9MkUzKTt2YXIgaD1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5tYXgoZyxuKX07ZEcoImZzbCIsIm13dCIsaCwwKTtlfHxkRygiZnNsIiwibnYubXd0IixoLDApfXZhciBsPWZ1bmN0aW9uKG4pe24ucHVzaChmKTsKcmV0dXJuIG59O2RHKCJmc2wiLCJpZHMiLGwsW10pO2V8fGRHKCJmc2wiLCJudi5pZHMiLGwsW10pOyRGKCJmc2wiLCJpbml0IiwhMSl8fChFSigpLGFHKCJmc2wiLCJpbml0IiwhMCkpO3JldHVybiBmfUZKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCI7CmZ1bmN0aW9uIEtKKCl7dmFyIGE9dGhpczt9S0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25HYVNlbmQiOwp2YXIgTUo9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwP3t9OmM7ZD1kPT09dm9pZCAwP1tdOmQ7dmFyIGU9IiIrYjtpZihjW2VdKWNbZV0ucHVzaChhKTtlbHNle3ZhciBmPVthXTtjW2VdPWY7dmFyIGc9TEooImd0bS5oaXN0b3J5Q2hhbmdlLXYyIiksaD0tMTtkLnB1c2goZnVuY3Rpb24obCl7aD49MCYmQS5jbGVhclRpbWVvdXQoaCk7Yj9oPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2cobCxmKTtoPS0xfSxiKTpnKGwsZil9KX19LExKPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24uaHJlZixjPXtzb3VyY2U6bnVsbCxzdGF0ZTpBLmhpc3Rvcnkuc3RhdGV8fG51bGwsdXJsOk9qKFJqKGIpKSxrYjpMaihSaihiKSwiZnJhZ21lbnQiKX07cmV0dXJuIGZ1bmN0aW9uKGQsZSl7dmFyIGY9YyxnPXt9O2dbZi5zb3VyY2VdPSEwO2dbZC5zb3VyY2VdPSEwO2lmKCFnLnBvcHN0YXRlfHwhZy5oYXNoY2hhbmdlfHxmLmtiIT09ZC5rYil7dmFyIGg9e2V2ZW50OmEsImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIjpkLnNvdXJjZSwKImd0bS5vbGRVcmxGcmFnbWVudCI6Yy5rYiwiZ3RtLm5ld1VybEZyYWdtZW50IjpkLmtiLCJndG0ub2xkSGlzdG9yeVN0YXRlIjpjLnN0YXRlLCJndG0ubmV3SGlzdG9yeVN0YXRlIjpkLnN0YXRlLCJndG0ub2xkVXJsIjpjLnVybCwiZ3RtLm5ld1VybCI6ZC51cmx9O2UmJihoWyJndG0udHJpZ2dlcnMiXT1lLmpvaW4oIiwiKSk7Yz1kO3VFKGgpfX19LE5KPWZ1bmN0aW9uKGEsYil7dmFyIGM9QS5oaXN0b3J5LGQ9Y1thXTtpZih5YihkKSl0cnl7Y1thXT1mdW5jdGlvbihlLGYsZyl7ZC5hcHBseShjLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKTt2YXIgaD1BLmxvY2F0aW9uLmhyZWY7Yih7c291cmNlOmEsc3RhdGU6ZSx1cmw6T2ooUmooaCkpLGtiOkxqKFJqKGgpLCJmcmFnbWVudCIpfSl9fWNhdGNoKGUpe319LFBKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToicG9wc3RhdGUiLHN0YXRlOmIuc3RhdGUsCnVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxRSj1mdW5jdGlvbihhKXtBLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToiaGFzaGNoYW5nZSIsc3RhdGU6bnVsbCx1cmw6T2ooUmooYykpLGtiOkxqKFJqKGMpLCJmcmFnbWVudCIpfSl9KX0sT0o9ZnVuY3Rpb24oYSl7dmFyIGIsYztyZXR1cm4oKGI9YS50YXJnZXQpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5ocmVmKXx8QS5sb2NhdGlvbi5ocmVmfTsKZnVuY3Rpb24gUkooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIil9XSk7dmFyIGQ9YSYmYS5nZXQoInVzZVYyRXZlbnROYW1lIik/ImVobCI6ImhsIixlPU51bWJlcihhJiZhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7dmFyIGY7aWYoISRGKGQsImluaXQiLCExKSl7dmFyIGc9e30saD1bXSxsO2Q9PT0iZWhsIj8obD1mdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGgubGVuZ3RoO3ErKyloW3FdKHApfSxmPVpGKGIpLE1KKGYsZSxnLGgpLGFHKGQsInJlZyIsZnVuY3Rpb24ocCxxKXtNSihwLHEsZyxoKX0pKTpsPUxKKCJndG0uaGlzdG9yeUNoYW5nZSIpOwpRSihsKTtQSihsKTtOSigicHVzaFN0YXRlIixsKTtOSigicmVwbGFjZVN0YXRlIixsKTthRyhkLCJpbml0IiwhMCl9ZWxzZSBpZihkPT09ImVobCIpe3ZhciBuPSRGKGQsInJlZyIpO24mJihmPVpGKGIpLG4oZixlKSl9ZD09PSJobCImJihmPXZvaWQgMCk7cmV0dXJuIGZ9UkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIjt2YXIgU0o9WyJodHRwOi8vIiwiaHR0cHM6Ly8iLCJqYXZhc2NyaXB0OiIsImZpbGU6Ly8iXTsKZnVuY3Rpb24gV0ooYSxiKXt2YXIgYz10aGlzO3JldHVybiBofVdKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIjsKZnVuY3Rpb24gZ0soYSxiKXt2YXIgYz10aGlzO3JldHVybiBnfWdLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIjtmdW5jdGlvbiBoSyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihhLmxpbWl0JiZhLmdrPj1hLmxpbWl0KWEuYWkmJkEuY2xlYXJJbnRlcnZhbChhLmFpKTtlbHNle2EuZ2srKzt2YXIgYj1OYigpO3VFKHtldmVudDphLmV2ZW50TmFtZSwiZ3RtLnRpbWVySWQiOmEuYWksImd0bS50aW1lckV2ZW50TnVtYmVyIjphLmdrLCJndG0udGltZXJJbnRlcnZhbCI6YS5pbnRlcnZhbCwiZ3RtLnRpbWVyTGltaXQiOmEubGltaXQsImd0bS50aW1lclN0YXJ0VGltZSI6YS5NbywiZ3RtLnRpbWVyQ3VycmVudFRpbWUiOmIsImd0bS50aW1lckVsYXBzZWRUaW1lIjpiLWEuTW8sImd0bS50cmlnZ2VycyI6YS5MdH0pfX19CmZ1bmN0aW9uIGlLKGEsYil7CnJldHVybiBmfWlLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uVGltZXIiO3ZhciBBYz1BYShbImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iXSksa0s9WyJ3d3cueW91dHViZS5jb20iLCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iXSxsSzsKZnVuY3Rpb24gdksoYSxiKXt2YXIgYz10aGlzO3JldHVybiBlfXZLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5IjtmdW5jdGlvbiB3SyhhLGIpe2lmKCFsaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz1iP1RkKGIpOnt9O2MucmVnZXhDYWNoZT1hbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KTtyZXR1cm4gR2goYSxjKX13Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIjtmdW5jdGlvbiB4SyhhKXt2YXIgYj0hMTtyZXR1cm4gYn14Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZU1hdGNoaW5nUnVsZXMiO3ZhciB5Sz1uZXcgTWFwKFtbImF3Iiw0XV0pO2Z1bmN0aW9uIHpLKGEpe3ZhciBiPXZyW2FdLGM9eUsuZ2V0KGEpO3JldHVybiBjPyh3cShiLGMpfHxbXSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gZC5tPT09IjAifHxkLm09PT12b2lkIDB9KTohMX0KZnVuY3Rpb24gQUsoYSxiKXtpZihNKDQ5NSkpe2Zvcih2YXIgYz1uZXcgTWFwLGQ9bSh5SyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPW0oZS52YWx1ZSksZz1mLm5leHQoKS52YWx1ZSxoPWYubmV4dCgpLnZhbHVlLGw9ZyxuPWFbbF0scD1BcnJheS5pc0FycmF5KG4pP25bMF06bjtpZihwIT09dm9pZCAwKXt2YXIgcT17fSxyPShxLms9cCxxLmk9U3RyaW5nKE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpKSxxLmI9W10scS5tPSIxIixxKSx0PWFxKHIsaCk7dCYmKHpLKGwpfHxjLnNldChsLHQpKX19aWYoYy5zaXplKXt2YXIgdSx2PVtdLHg9Yi5wYXRofHwiLyI7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgicCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeCkpO2IuQXImJnYucHVzaChlbmNvZGVVUklDb21wb25lbnQoImNlIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYi5BcikpKTt2YXIgeT1iLmRvbWFpbiYmYi5kb21haW4hPT0iYXV0byI/CmIuZG9tYWluOiJhdXRvOiIrQS5sb2NhdGlvbi5ob3N0bmFtZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJkIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh5KSk7Zm9yKHZhciB6PW0oYyksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpe3ZhciBEPW0oQy52YWx1ZSksST1ELm5leHQoKS52YWx1ZSxHPUQubmV4dCgpLnZhbHVlO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChHKSl9dT0iXy9zZXRfY29va2llPyIrdi5qb2luKCImIik7dmFyIE4sUz1FKDU4KTtOPUVmKHUsUyk7dmFyIFc9WGooKSsiLyIrTjttZChXKX19fTtmdW5jdGlvbiBCSyhhKXtyZXR1cm4iQ1dWV2ViVmlld01lc3NhZ2UiaW4gYX1mdW5jdGlvbiBDSyhhKXt2YXIgYj1BLGM9Yi53ZWJraXQ7ZGVsZXRlIGIud2Via2l0O2EoYi53ZWJraXQpO2Iud2Via2l0PWN9ZnVuY3Rpb24gREsoYSxiKXt2YXIgYz17YWN0aW9uOiJnY2xfc2V0dXAifTtpZihCSyhhLm1lc3NhZ2VIYW5kbGVycykpcmV0dXJuIGEubWVzc2FnZUhhbmRsZXJzLkNXVldlYlZpZXdNZXNzYWdlLnBvc3RNZXNzYWdlKHtjb21tYW5kOmIscGF5bG9hZDpjfSksITA7dmFyIGQ9YS5tZXNzYWdlSGFuZGxlcnNbYl07cmV0dXJuIGQ/KGQucG9zdE1lc3NhZ2UoYyksITApOiExfTt2YXIgRUs9e30sRks9KEVLLmF3Yj17bm90Rm91bmQ6MTc4fSxFSy55dGI9e25vdEZvdW5kOjE5NH0sRUspO2Z1bmN0aW9uIEdLKGEpe3ZhciBiLGM9KGI9RktbYV0pPT1udWxsP3ZvaWQgMDpiLm5vdEZvdW5kO2MmJlAoYyl9CmZ1bmN0aW9uIEhLKGEpe2lmKCFubShqbS5iYS5qbikmJiJ3ZWJraXQiaW4gQSYmQS53ZWJraXQubWVzc2FnZUhhbmRsZXJzKXt2YXIgYj1mdW5jdGlvbigpe3RyeXtDSyhmdW5jdGlvbihjKXtpZihjKXt2YXIgZDtkPUJLKGMubWVzc2FnZUhhbmRsZXJzKXx8ImF3YiJpbiBjLm1lc3NhZ2VIYW5kbGVycz97Y29tbWFuZDoiYXdiIixzb3VyY2U6NX06KEJLKGMubWVzc2FnZUhhbmRsZXJzKXx8Inl0YiJpbiBjLm1lc3NhZ2VIYW5kbGVycykmJk0oNDk5KT97Y29tbWFuZDoieXRiIixzb3VyY2U6OH06dm9pZCAwO2QmJihtbShqbS5iYS5qbixmdW5jdGlvbihlKXt2YXIgZj1kLnNvdXJjZTtlLmdjbGlkJiZscygiZ2NsX2F3IixlLmdjbGlkLGYsYSk7ZS53YnJhaWQmJmxzKCJnY2xfZ2IiLGUud2JyYWlkLGYsYSl9KSxESyhjLGQuY29tbWFuZCl8fEdLKGQuY29tbWFuZCkpfX0pfWNhdGNoKGMpe1AoMTkzKX19O0hsKGZ1bmN0aW9uKCl7QnIoZnApP2IoKTpJbChiLGZwKX0sZnApfX07dmFyIElLPVsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSIsImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly9tLnlvdXR1YmUuY29tIl07ZnVuY3Rpb24gSksoYSl7cmV0dXJuIGEuZGF0YS5hY3Rpb24hPT0iZ2NsX3RyYW5zZmVyIj8oUCgxNzMpLCEwKTphLmRhdGEuZ2FkU291cmNlP2EuZGF0YS5nY2xpZD8hMTooUCgxODEpLCEwKTooUCgxODApLCEwKX0KZnVuY3Rpb24gS0soYSxiKXtpZighYXx8TShhKSl7aWYobm0oam0uYmEuVmUpKXJldHVybiBQKDE3Niksam0uYmEuVmU7aWYobm0oam0uYmEubW4pKXJldHVybiBQKDE3MCksam0uYmEuVmU7dmFyIGM9RnAoKTtpZighYylQKDE3MSk7ZWxzZSBpZihjLm9wZW5lcil7dmFyIGQ9ZnVuY3Rpb24oZyl7aWYoIUlLLmluY2x1ZGVzKGcub3JpZ2luKSlQKDE3Mik7ZWxzZSBpZighSksoZykpe3ZhciBoPXtnYWRTb3VyY2U6Zy5kYXRhLmdhZFNvdXJjZX07aC5nY2xpZD1nLmRhdGEuZ2NsaWQ7bW0oam0uYmEuVmUsaCk7YiYmZy5kYXRhLmdjbGlkJiZscygiZ2NsX2F3IixTdHJpbmcoZy5kYXRhLmdjbGlkKSw2LGIpO3ZhciBsOyhsPWcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKT09bnVsbHx8bC5jYWxsKGcpO250KGMsIm1lc3NhZ2UiLGQpfX07aWYobXQoYywibWVzc2FnZSIsZCkpe21tKGptLmJhLm1uLCEwKTtmb3IodmFyIGU9bShJSyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpYy5vcGVuZXIucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiZ2NsX3NldHVwIn0sCmYudmFsdWUpO1AoMTc0KTtyZXR1cm4gam0uYmEuVmV9UCgxNzUpfX19Owp2YXIgTEs9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpPKGEuTSxGLkQuRmQpfHxPKGEuTSxGLkQubmIpLGRvbWFpbjpPKGEuTSxGLkQuTGIpLHBkOk8oYS5NLEYuRC5DYiksZmxhZ3M6TyhhLk0sRi5ELlRiKX07YS5NLmlzR3RtRXZlbnQmJihiLnBhdGg9TyhhLk0sRi5ELnZjKSk7cmV0dXJuIGJ9LE1LPWZ1bmN0aW9uKGEsYil7aWYoIVEoYSxILkouV2UpKXt2YXIgYz1LSygxMTkpO2lmKGMpe3ZhciBkPW5tKGMpLGU9ZnVuY3Rpb24oZyl7VihhLEguSi5XZSwhMCk7dmFyIGg9UihhLEYuRC56ZiksbD1SKGEsRi5ELkFmKTtVKGEsRi5ELnpmLFN0cmluZyhnLmdhZFNvdXJjZSkpO1UoYSxGLkQuQWYsNik7VihhLEguSi5zYSk7VihhLEguSi51Zyk7VShhLEYuRC5zYSk7YigpO1UoYSxGLkQuemYsaCk7VShhLEYuRC5BZixsKTtWKGEsSC5KLldlLCExKX07aWYoZCllKGQpO2Vsc2V7dmFyIGY9dm9pZCAwO2Y9cG0oYyxmdW5jdGlvbihnLGgpe2UoaCk7cW0oYyxmKX0pfX19fSxQSz1mdW5jdGlvbihhKXt2YXIgYiwKYyxkLGU7Yj1hLlRuO2M9YS5tbztkPWEuUW87ZT1hLlVuO2lmKGIpe2lmKGRyKGNbRi5ELlhmXSwhIWNbRi5ELkFhXSkpe2lmKFdqKCkmJkJyKEFyKCkpKXtmb3IodmFyIGY9VXEoITApLGc9e30saD1tKE9iamVjdC5rZXlzKHZyKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD12cltuXSxxPWZbcF07aWYocSl7dmFyIHI9JHAocSw0KTtyJiYob3MoTWF0aC5taW4oTnIociksTmIoKSl8fE5iKCkscCw0KXx8KGdbbl09cSkpfX1mb3IodmFyIHQ9e30sdT1tKE9iamVjdC5rZXlzKGcpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj11Lm5leHQoKSl7dmFyIHg9di52YWx1ZSx5PWdbeF07aWYoeSE9PXZvaWQgMCl7dmFyIHo9JHAoeSw0KTt6JiZ6Lm09PT0iMSImJih0W3hdPXouayl9fUFLKHQsZSl9cHMoZSk7dHMoZSk7UXYoZSl9aWYoT3AoKSE9PTIpe2dzKGUpO2lzKGUpO2lmKFlmKDE1KSl7dmFyIEM9ZSxEPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7CkQubGVuZ3RofHwoRD1kcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7aWYoRC5sZW5ndGgpe0M9Q3x8e307dmFyIEk9RFswXTtJLnZhbHVlJiZtcygiZ2NsX2RjIixbe3ZlcnNpb246IiIsZ2NsaWQ6SS52YWx1ZSx0aW1lc3RhbXA6TmIoKSxxYTpJLnFhfV0sQyl9fUhLKGUpO0tLKHZvaWQgMCxlKX1lbHNlIGdzKGUpO2lmKFdqKCkmJkJyKEFyKCkpKXt2YXIgRz1mcygpO0FLKEcsZSl9eHMocXMsZSk7eXMoZSl9Y1tGLkQuQWFdJiYodnMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSksdXMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksd3MoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksUnYoR3YoZS5wcmVmaXgpLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSksUnYoIkZQQVUiLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSkpO2QmJkFzKE5LKTtDcyhPSyl9LHFzPVsiYXciLCJkYyIsCiJnYiJdLE9LPVsiYXciLCJkYyIsImdiIiwiYWciXSxOSz1bImF3IiwiZGMiLCJnYiIsImFnIiwiZ2FkX3NvdXJjZSJdOwp2YXIgUUs9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLnNuKSxkPU0oNDQzKSYmYz9UdihiKTpVdihiKS5TaCxlPXZvaWQgMDtNKDU3MCkmJmMmJihlPVN2KGIse1hoOiEwfSkuaWspO3ZhciBmO2E6e2lmKElmKDQ3KSYmWG8oZnApKXt2YXIgZz1kSShhLCJjY2RfZW5hYmxlX2NtIiwhMSksaD1RKGEsSC5KLllhKTtWKGEsSC5KLmFqLCEwKTtWKGEsSC5KLmZkLCEwKTtpZihodyhoKSl7VihhLEguSi5JaCwhMCk7dmFyIGw9ZHx8QXYoKSxuPXt9LHA9e2V2ZW50TWV0YWRhdGE6KG5bSC5KLkRjXT1YLlYuRmIsbltILkouWWFdPWgsbltILkouempdPWwsbltILkouZmRdPSEwLG5bSC5KLmFqXT0hMCxuW0guSi5JaF09ITAsbltILkouWG1dPWcmJklmKDQ3KSxuKSxub0d0bUV2ZW50OiEwfSxxPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYS5ldmVudE5hbWUsYS5NLkVhKTttRChxLGEuTS5ldmVudElkLHApO2cmJlEoYSxILkoud2QpfHxWKGEsSC5KLllhKTtmPWw7CmJyZWFrIGF9fWY9dm9pZCAwfXZhciByPWR8fGY7aWYocnx8ZSl7dmFyIHQsdTt0PVIoYSxGLkQuUGEpO3U9S3ouZ2ouYnA7dmFyIHY9UihhLEYuRC5XYyk7IXQmJnYmJih0PXZbRi5ELlBhXSx1PUt6LmdqLnVxKTt0fHwodD1BdihSKGEsRi5ELkdkKSksc2IoIkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMIixULlcuRmgpLHU9S3ouZ2ouVnEpO1UoYSxGLkQuUGEsdCk7VShhLEYuRC5kbSx1KTtyJiZVKGEsRi5ELnhjLHIpO2UmJlUoYSwiXyZlY3NpZDIiLGUpO1YoYSxILkoubGosITApfX07CnZhciBSSz1mdW5jdGlvbihhKXtRKGEsSC5KLnluKXx8VihhLEguSi5KYSwhMSl9LFNLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpLGM9WG8oZnApLGQ9UShhLEguSi5zYSksZT1SKGEsRi5ELkdkKSxmPVEoYSxILkoucG4pO3N3aXRjaChiKXtjYXNlIFguVi54YTohZiYmZSYmUksoYSk7YS5ldmVudE5hbWU9PT1GLkQud2EmJlYoYSxILkouSmEsITApO2JyZWFrO2Nhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmlmKCFjfHxkfHwhZiYmZSlhLmlzQWJvcnRlZD0hMDticmVhaztjYXNlIFguVi51YjpjfHwoYS5pc0Fib3J0ZWQ9ITApOyFmJiZlfHxSSyhhKTtRKGEsSC5KLndkKXx8KGEuaXNBYm9ydGVkPSEwKTthLmV2ZW50TmFtZSE9PUYuRC53YXx8TyhhLk0sRi5ELkNsKSE9PSExJiZPKGEuTSxGLkQuVGQpIT09ITF8fFYoYSxILkouSmEsITApO2JyZWFrO2Nhc2UgWC5WLkthOmEuZXZlbnROYW1lIT09Ri5ELnNjJiZRKGEsSC5KLlBjKSYmKGEuaXNBYm9ydGVkPSEwKSxhLnRhcmdldC5pZHNbZENbMV1dJiYKTyhhLk0sRi5ELmloKSE9PSEwJiYoYS5pc0Fib3J0ZWQ9ITApfX07dmFyIFRLPWZ1bmN0aW9uKGEpe3ZhciBiLGM9TSg1NzYpO2lmKFEoYSxILkouc24pKXN3aXRjaChRKGEsSC5KLmRhKSl7Y2FzZSBYLlYuRmI6aWYoIShhLmV2ZW50TmFtZSE9PUYuRC53YXx8YyYmaHcoUShhLEguSi5ZYSkpKSlicmVhaztiPTk3O2EuZXZlbnROYW1lPT09Ri5ELndhJiZHdShULlcuT2spO00oNDg4KT9WKGEsSC5KLkphLCExKTpSSyhhKTticmVhaztjYXNlIFguVi5PYjppZihhLmV2ZW50TmFtZT09PUYuRC53YSlicmVhaztiPTk4O00oNDg4KT9WKGEsSC5KLkphLCExKTpSSyhhKTticmVhaztjYXNlIFguVi54YTpiPTk5fSFRKGEsSC5KLkphKSYmYiYmUChiKTtRKGEsSC5KLkphKT09PSEwJiYoYS5pc0Fib3J0ZWQ9ITApfTsKdmFyIFVLPWZ1bmN0aW9uKGEpe2lmKE0oNTY5KSYmV2ooKSYmUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSl7dmFyIGI9TWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMyksYz1uZXcgVWludDhBcnJheShbYiYyNTUsYj4+OCYyNTVdKSxkLGU9eW0oKXx8IlhYIixmPXptKCl8fCIwMCI7ZD1uZXcgVWludDhBcnJheShbZS5jaGFyQ29kZUF0KDApLGUuY2hhckNvZGVBdCgxKSxmLmNoYXJDb2RlQXQoMCksZi5jaGFyQ29kZUF0KDEpXSk7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoNyksaDtpZigoaD1BLmNyeXB0byk9PW51bGx8fCFoLmdldFJhbmRvbVZhbHVlcyhnKSlmb3IodmFyIGw9MDtsPDc7bCsrKWdbbF09TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1Nik7dmFyIG49bmV3IFVpbnQ4QXJyYXkoW10uY29uY2F0KHcoYyksdyhkKSx3KGcpKSkscDt0cnl7cD1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcobikpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywKIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1jYXRjaChxKXtwPSIifVUoYSxGLkQuRWkscCl9fTtmdW5jdGlvbiBWSygpe3JldHVybiBNdCg3KSYmTXQoOSkmJk10KDEwKX07CnZhciBhTD1mdW5jdGlvbihhLGIpe2EmJigkSygic2lkIixhLnRhcmdldElkLGIpLCRLKCJjYyIsYS5jbGllbnRDb3VudCxiKSwkSygidGwiLGEudG90YWxMaWZlTXMsYiksJEsoImhjIixhLmhlYXJ0YmVhdENvdW50LGIpLCRLKCJjbCIsYS5jbGllbnRMaWZlTXMsYikpfSwkSz1mdW5jdGlvbihhLGIsYyl7YiE9bnVsbCYmYy5wdXNoKGErIj0iK2IpfSxiTD1mdW5jdGlvbigpe3ZhciBhPUIucmVmZXJyZXI7aWYoYSl7dmFyIGI7cmV0dXJuIExqKFJqKGEpLCJob3N0Iik9PT0oKGI9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmIuaG9zdCk/MToyfXJldHVybiAwfSxkTD1mdW5jdGlvbigpe3RoaXMuamE9Y0w7dGhpcy5OPTA7dGhpcy55YT1OZig1Nyw1KTt0aGlzLlI9TmYoNTgsNTApO3RoaXMuZmE9RGIoKTt0aGlzLkxhPSJodHRwczovLyIrRSgyMSkrIi9hPyJ9O2RMLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjLGQpewp2YXIgZT1iTCgpLGYsZz1bXTtmPUE9PT1BLnRvcCYmZSE9PTAmJmI/KGI9PW51bGw/dm9pZCAwOmIuY2xpZW50Q291bnQpPjE/ZT09PTI/MToyOmU9PT0yPzA6Mzo0O2EmJiRLKCJzaSIsYS5KZyxnKTskSygibSIsMCxnKTskSygiaXNzIixmLGcpOyRLKCJpZiIsYyxnKTthTChiLGcpO2QmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGQuc3Vic3RyaW5nKDAsdGhpcy5SKSksZyk7dGhpcy5aKGcpO307ZEwucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1bXTskSygibSIsMSxmKTskSygicyIsYSxmKTskSygicG8iLGJMKCksZik7YiYmKCRLKCJzdCIsYi5zdGF0ZSxmKSwkSygic2kiLGIuSmcsZiksJEsoInNtIixiLlVnLGYpKTthTChjLGYpOyRLKCJjIixkLGYpO2UmJiRLKCJmbSIsZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKDAsCnRoaXMuUikpLGYpO3RoaXMuWihmKTt9O2RMLnByb3RvdHlwZS5aPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphOyFmbi5OfHx0aGlzLk4+PXRoaXMueWF8fCgkSygicGlkIix0aGlzLmZhLGEpLCRLKCJiYyIsKyt0aGlzLk4sYSksYS51bnNoaWZ0KCJjdGlkPSIrRSg1KSsiJnQ9cyIpLHRoaXMuamEoIiIrdGhpcy5MYSthLmpvaW4oIiYiKSkpfTtmdW5jdGlvbiBlTChhKXtyZXR1cm4gYS5wZXJmb3JtYW5jZSYmYS5wZXJmb3JtYW5jZS5ub3coKXx8RGF0ZS5ub3coKX0KdmFyIGZMPWZ1bmN0aW9uKGEsYil7dmFyIGM9QSxkPU5mKDUzLDUwMCksZT1OZig1NCw1RTMpLGY9TmYoOCwyMCksZz1OZig1NSw1RTMpLGg7dmFyIGw9ZnVuY3Rpb24obixwLHEpe3E9cT09PXZvaWQgMD97cW86ZnVuY3Rpb24oKXt9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbigpe30sb25GYWlsdXJlOmZ1bmN0aW9uKCl7fX06cTt0aGlzLklqPW47dGhpcy5IPXA7dGhpcy5OPXE7dGhpcy5mYT10aGlzLmphPXRoaXMuaGVhcnRiZWF0Q291bnQ9dGhpcy5Eaj0wO3RoaXMuZmU9ITE7dGhpcy5LPXt9O3RoaXMuaWQ9U3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIqTWF0aC5yYW5kb20oKSkpO3RoaXMuc3RhdGU9MDt0aGlzLkpnPWVMKHRoaXMuSCk7dGhpcy5VZz1lTCh0aGlzLkgpO3RoaXMuWj0xMH07bC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3RoaXMuUigxKTsKdGhpcy5MYSgpfTtsLnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybntzdGF0ZTp0aGlzLnN0YXRlLEpnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLkpnKSxVZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5VZyl9fTtsLnByb3RvdHlwZS5SPWZ1bmN0aW9uKG4pe3RoaXMuc3RhdGUhPT1uJiYodGhpcy5zdGF0ZT1uLHRoaXMuVWc9ZUwodGhpcy5IKSl9O2wucHJvdG90eXBlLnZnPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLkRqKyspfTtsLnByb3RvdHlwZS5MYT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5oZWFydGJlYXRDb3VudCsrO3RoaXMueWEoe3R5cGU6MCxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksbWF4RGVsYXk6dGhpcy5oZSgpfSxmdW5jdGlvbihwKXtpZihwLnR5cGU9PT0wKXt2YXIgcTtpZigoKHE9cC5mYWlsdXJlKT09bnVsbD92b2lkIDA6cS5mYWlsdXJlVHlwZSkhPW51bGwpaWYocC5zdGF0cyYmKG4uc3RhdHM9CnAuc3RhdHMpLG4uZmErKyxwLmlzRGVhZHx8bi5mYT5mKXt2YXIgcj1wLmlzRGVhZCYmcC5mYWlsdXJlLmZhaWx1cmVUeXBlO24uWj1yfHwxMDtuLlIoNCk7bi5BaigpO3ZhciB0LHU7KHU9KHQ9bi5OKS5wbyk9PW51bGx8fHUuY2FsbCh0LHtmYWlsdXJlVHlwZTpyfHwxMCxkYXRhOnAuZmFpbHVyZS5kYXRhfSl9ZWxzZSBuLlIoMyksbi5QaCgpO2Vsc2V7aWYobi5oZWFydGJlYXRDb3VudD5wLnN0YXRzLmhlYXJ0YmVhdENvdW50K2Ype24uaGVhcnRiZWF0Q291bnQ9cC5zdGF0cy5oZWFydGJlYXRDb3VudDt2YXIgdix4Oyh4PSh2PW4uTikub25GYWlsdXJlKT09bnVsbHx8eC5jYWxsKHYse2ZhaWx1cmVUeXBlOjEzfSl9bi5zdGF0cz1wLnN0YXRzO3ZhciB5PW4uc3RhdGU7bi5SKDIpO2lmKHkhPT0yKWlmKG4uZmUpe3ZhciB6LEM7KEM9KHo9bi5OKS5zbyk9PW51bGx8fEMuY2FsbCh6KX1lbHNle24uZmU9ITA7dmFyIEQsSTsoST0oRD1uLk4pLnFvKT09bnVsbHx8SS5jYWxsKEQpfW4uZmE9CjA7bi5OaigpO24uUGgoKX19fSl9O2wucHJvdG90eXBlLmhlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT0yP2U6ZH07bC5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5MYSgpfSxNYXRoLm1heCgwLHRoaXMuaGUoKS0oZUwodGhpcy5IKS10aGlzLmphKSkpfTtsLnByb3RvdHlwZS5rcj1mdW5jdGlvbihuLHAscSl7dmFyIHI9dGhpczt0aGlzLnlhKHt0eXBlOjEsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLGNvbW1hbmQ6bn0sZnVuY3Rpb24odCl7aWYodC50eXBlPT09MSlpZih0LnJlc3VsdClwKHQucmVzdWx0KTtlbHNle3ZhciB1LHYseCx5PXtmYWlsdXJlVHlwZTooeD0odT10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp1LmZhaWx1cmVUeXBlKSE9bnVsbD94OjEyLGRhdGE6KHY9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6di5kYXRhfSx6LEM7KEM9KHo9ci5OKS5vbkZhaWx1cmUpPT0KbnVsbHx8Qy5jYWxsKHoseSk7cSh5KX19KX07bC5wcm90b3R5cGUueWE9ZnVuY3Rpb24obixwKXt2YXIgcT10aGlzO2lmKHRoaXMuc3RhdGU9PT00KW4uZmFpbHVyZT17ZmFpbHVyZVR5cGU6dGhpcy5afSxwKG4pO2Vsc2V7dmFyIHI9dGhpcy5zdGF0ZSE9PTImJm4udHlwZSE9PTAsdD1uLnJlcXVlc3RJZCx1LHY9dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1xLktbdF07eSYmKGltKDYpLHEua2QoeSw3KSl9LCh1PW4ubWF4RGVsYXkpIT1udWxsP3U6ZykseD17cmVxdWVzdDpuLEhvOnAsem86cixOczp2fTt0aGlzLktbdF09eDtyfHx0aGlzLnNlbmRSZXF1ZXN0KHgpfX07bC5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO24uem89ITE7dGhpcy5JaihuLnJlcXVlc3QpfTtsLnByb3RvdHlwZS5Oaj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT0KdGhpcy5LW3AudmFsdWVdO3Euem8mJnRoaXMuc2VuZFJlcXVlc3QocSl9fTtsLnByb3RvdHlwZS5Baj1mdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKHRoaXMuSykpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXRoaXMua2QodGhpcy5LW3AudmFsdWVdLHRoaXMuWil9O2wucHJvdG90eXBlLmtkPWZ1bmN0aW9uKG4scCl7dGhpcy5hYyhuKTt2YXIgcT1uLnJlcXVlc3Q7cS5mYWlsdXJlPXtmYWlsdXJlVHlwZTpwfTtuLkhvKHEpfTtsLnByb3RvdHlwZS5hYz1mdW5jdGlvbihuKXtkZWxldGUgdGhpcy5LW24ucmVxdWVzdC5yZXF1ZXN0SWRdO3RoaXMuSC5jbGVhclRpbWVvdXQobi5Ocyl9O2wucHJvdG90eXBlLmtzPWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTt2YXIgcD10aGlzLktbbi5yZXF1ZXN0SWRdO2lmKHApdGhpcy5hYyhwKSxwLkhvKG4pO2Vsc2V7dmFyIHEscjsocj0ocT10aGlzLk4pLm9uRmFpbHVyZSk9PW51bGx8fHIuY2FsbChxLHtmYWlsdXJlVHlwZToxNH0pfX07Cmg9bmV3IGwoYSxjLGIpO3JldHVybiBofTsKdmFyIGdMPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDE4LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkTH0pfSxjTD1mdW5jdGlvbihhKXtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtaYyhhKX0pfSxoTD1mdW5jdGlvbihhKXt2YXIgYj1hLnN1YnN0cmluZygwLGEuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIiKSk7cmV0dXJuIiYxcD0xIisoYj8iJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQoYik6IiIpfSxpTD1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbjtpZighYilyZXR1cm4gbnVsbDsoTSg0MzIpP1dqKCk6V2ooKSYmIWEpJiYoYT0iIitiK1hqKCkrIi9fL3NlcnZpY2Vfd29ya2VyIik7dmFyIGM9YSxkLGU9TGYoMTEpO2U9TGYoMTApO2Q9ZTtjPyhjLmNoYXJBdChjLmxlbmd0aC0xKSE9PSIvIiYmCihjKz0iLyIpLGE9YytkKTphPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9zdGF0aWMvc2VydmljZV93b3JrZXIvIitkKyIvIjt2YXIgZjt0cnl7Zj1uZXcgVVJMKGEpfWNhdGNoKGcpe3JldHVybiBudWxsfXJldHVybiBmLnByb3RvY29sIT09Imh0dHBzOiI/bnVsbDpmfSxqTD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5PaCk7cmV0dXJuIGImJmJbYV19LGtMPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5LPWdMKCk7dGhpcy5aPXRoaXMuUj0hMTt0aGlzLmZhPW51bGw7dGhpcy5pbml0VGltZT1NYXRoLnJvdW5kKE5iKCkpO3RoaXMuSD0xNTt0aGlzLk49dGhpcy5GcihhKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmluaXRpYWxpemUoKX0sMUUzKTtiZChmdW5jdGlvbigpe2IuenMoYSl9KX07az1rTC5wcm90b3R5cGU7ay5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy5nZXRTdGF0ZSgpIT09Mj8odGhpcy5LLkgodGhpcy5ILHtzdGF0ZTp0aGlzLmdldFN0YXRlKCksCkpnOnRoaXMuaW5pdFRpbWUsVWc6TWF0aC5yb3VuZChOYigpKS10aGlzLmluaXRUaW1lfSx2b2lkIDAsYS5jb21tYW5kVHlwZSksYyh7ZmFpbHVyZVR5cGU6dGhpcy5IfSkpOnRoaXMuTi5rcihhLGIsYyl9O2suZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OLmdldFN0YXRlKCkuc3RhdGV9O2suenM9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW4sYz10aGlzLGQ9WGMoKTt0cnl7dmFyIGU9ZC5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksZj1hLnBhdGhuYW1lLGc9ZltmLmxlbmd0aC0xXT09PSIvIj9hLnRvU3RyaW5nKCk6YS50b1N0cmluZygpKyIvIixoPWEub3JpZ2luIT09Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIj9oTChmKToiIixsO00oMTMzKSYmKGw9e3NhbmRib3g6ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMifSk7WGMoZysic3dfaWZyYW1lLmh0bWw/b3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKwpoLHZvaWQgMCxsLHZvaWQgMCxlKTt2YXIgbj1mdW5jdGlvbigpe2QuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe2MuZmE9ZS5jb250ZW50V2luZG93O2QuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihwKXtwLm9yaWdpbj09PWEub3JpZ2luJiZjLk4ua3MocC5kYXRhKX0pO2MuaW5pdGlhbGl6ZSgpfSl9O2QuY29udGVudERvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP24oKTpkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtuKCl9KX1jYXRjaChwKXtkLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZCksdGhpcy5IPTExLHRoaXMuSy5LKHZvaWQgMCx2b2lkIDAsdGhpcy5ILHAudG9TdHJpbmcoKSl9fTtrLkZyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1mTChmdW5jdGlvbihkKXt2YXIgZTsoZT1iLmZhKT09Cm51bGx8fGUucG9zdE1lc3NhZ2UoZCxhLm9yaWdpbil9LHtxbzpmdW5jdGlvbigpe2IuUj0hMDtiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyl9LHNvOmZ1bmN0aW9uKCl7fSxwbzpmdW5jdGlvbihkKXtiLlI/KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDEwLGIuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyx2b2lkIDAsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSk6KGIuSD0oZD09bnVsbD92b2lkIDA6ZC5mYWlsdXJlVHlwZSl8fDQsYi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMsYi5ILGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oZCl7Yi5IPWQuZmFpbHVyZVR5cGU7Yi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGQuY29tbWFuZCxkLmRhdGEpfX0pO3JldHVybiBjfTtrLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt0aGlzLlp8fHRoaXMuTi5pbml0KCk7dGhpcy5aPSEwfTsKdmFyIGxMPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlO2lmKChlPWpMKGEpKT09bnVsbHx8IWUuZGVsZWdhdGUpe3ZhciBmPUljKCk/MTY6NjtnTCgpLkgoZix2b2lkIDAsdm9pZCAwLGIuY29tbWFuZFR5cGUpO2Qoe2ZhaWx1cmVUeXBlOmZ9KTtyZXR1cm59akwoYSkuZGVsZWdhdGUoYixjLGQpO307CmZ1bmN0aW9uIG1MKGEsYixjLGQpe3ZhciBlPWlMKGEpO2lmKGU9PT1udWxsKXtkKCJfaXNfc3c9ZiIrKEljKCk/MTY6NikrInRlIik7cmV0dXJufXZhciBmPWI/MTowLGc9TWF0aC5yb3VuZChOYigpKSxoLGw9KGg9akwoZS5vcmlnaW4pKT09bnVsbD92b2lkIDA6aC5pbml0VGltZSxuPWw/Zy1sOnZvaWQgMCxwO00oNDMyKT9wPVdqKCk/dm9pZCAwOkEubG9jYXRpb24uaHJlZjpwPUEubG9jYXRpb24uaHJlZjtsTChlLm9yaWdpbix7Y29tbWFuZFR5cGU6MCxwYXJhbXM6e3VybDphLG1ldGhvZDpmLHRlbXBsYXRlczpjLGJvZHk6Ynx8IiIscHJvY2Vzc1Jlc3BvbnNlOiEwLHNpbmNlSW5pdDpuLGF0dHJpYnV0aW9uUmVwb3J0aW5nOiEwLHJlZmVyZXI6cCxzdHJpY3Q6TSg1ODQpfX0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKHEpe3ZhciByPSJfaXNfc3c9ZiIrcS5mYWlsdXJlVHlwZSx0LHU9KHQ9akwoZS5vcmlnaW4pKT09Cm51bGw/dm9pZCAwOnQuZ2V0U3RhdGUoKTt1IT09dm9pZCAwJiYocis9InMiK3UpO2Qobj9yKygidCIrbik6cisidGUiKX0pO307ZnVuY3Rpb24gbkwoYSl7aWYoSWYoNDcpJiZkSShhLCJjY2RfYWRkXzFwX2RhdGEiLCExKSYmV2ooKSl7dmFyIGI9YS5NO2lmKEljKCkmJmJnKCJpbnRlcm5hbF9zd19hbGxvd2VkIiwiIikpe3ZhciBjPWVrKGIpLGQ9V2ooKT9YaigpOnZvaWQgMCxlO2U9ZD97cGF0aDpkLGVvOiJmdWxsIn06Yz97cGF0aDpjLGVvOiJsaXRlIn06dm9pZCAwO2lmKGUpe3ZhciBmPWUuZW8sZz1uZXcgVVJMKGUucGF0aCxBLmxvY2F0aW9uLm9yaWdpbik7aWYoZy5vcmlnaW49PT1BLmxvY2F0aW9uLm9yaWdpbiYmcHkoZik9PT12b2lkIDApe3ZhciBoPW9tKGptLmJhLk9oLHt9KTtoW2ZdfHwoaFtmXT1uZXcgbnkoZykpfX19fX07dmFyIG9MPWZ1bmN0aW9uKGEpe25MKGEpfTsKdmFyIHBMPWZ1bmN0aW9uKGEpe2lmKCFRKGEsSC5KLkphKSYmIWEuaXNBYm9ydGVkKWlmKFEoYSxILkouZGEpIT09WC5WLnhhKVEoYSxILkouWG0pJiZVKGEsRi5ELkpoLCIxIiksSXooYSk7ZWxzZXt2YXIgYj1RKGEsSC5KLllhKSxjPVIoYSxGLkQuQmMpLGQ9UShhLEguSi5mZCksZT1JZig0NykmJmRJKGEsImNjZF9lbmFibGVfY20iLCExKSxmPVhvKGZwKSYmUShhLEguSi53ZCkmJmU7ZiYmKFUoYSxGLkQuSmgsIjEiKSxRKGEsSC5KLkloKSYmKFYoYSxILkouWWEpLFUoYSxGLkQuQmMpLFYoYSxILkouZmQsITEpKSk7dmFyIGc9cnYobXYpO1YoYSxILkouZ24sZyk7Zm9yKHZhciBoLGw9W10sbj1tKHF2KSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZSxyPWdbcS5wYl07aWYocj09PXZvaWQgMHx8cjxxLk9nKWJyZWFrO2wucHVzaChyLnRvU3RyaW5nKCkpfShoPWwuam9pbigifiIpKSYmVShhLCJfJmdjbF9jdHIiLGgpO3ZhciB0O3ZhciB1PXtyYW5kb206UShhLApILkouRWIpLGxhYmVsOlIoYSxGLkQuR2QpfSx2PVEoYSxILkouR2EpLHg9d3YoKTt4Pyh5dihbdV0sdiksdD14Lmxlbmd0aD09PTA/e3JhbmRvbTowLGxhYmVsOiIwIn06eFswXSk6dD12b2lkIDA7dmFyIHk9dDt5JiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEse2xhc3RfcmFuZG9tOnkucmFuZG9tLGxhc3RfbGFiZWw6eS5sYWJlbH0pO0l6KGEpO2lmKFEoYSxILkoub2IpJiZYbyhmcCkpe3ZhciB6PVp1KGEse006dUMoYS5NKX0pO1YoeixILkouZGEsWC5WLlpkKTtJeih6KX1pZihRKGEsSC5KLmxqKSl7dmFyIEM9WnUoYSx7TTp1QyhhLk0pfSk7VihDLEguSi5kYSxYLlYuemQpO0l6KEMpfWlmKGYpe3ZhciBEPVp1KGEse006dUMoYS5NKX0pO1UoRCxGLkQuSmgsIjIiKTtWKEQsSC5KLkVjLCEwKTtWKEQsSC5KLmZkLGQpO1YoRCxILkouWWEsYik7VShELEYuRC5CYyxjKTtJeihEKX19fTt2YXIgcUw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk9PT1YLlYueGE7aWYoIWJ8fGEuZXZlbnROYW1lPT09Ri5ELklifHxhLk0uaXNHdG1FdmVudClhLmNvcHlUb0hpdERhdGEoRi5ELkhhKSxiJiYoYS5jb3B5VG9IaXREYXRhKEYuRC5GZiksYS5jb3B5VG9IaXREYXRhKEYuRC5EZiksYS5jb3B5VG9IaXREYXRhKEYuRC5FZiksYS5jb3B5VG9IaXREYXRhKEYuRC5DZiksVShhLEYuRC53aSxGLkQuSWIpLGEuY29weVRvSGl0RGF0YShGLkQuU2QpLGEuY29weVRvSGl0RGF0YShGLkQuUWQpLGEuY29weVRvSGl0RGF0YShGLkQuUmQpKX07dmFyIHJMPWZ1bmN0aW9uKCl7dmFyIGE9SGMmJkhjLnVzZXJBZ2VudHx8IiI7aWYoYS5pbmRleE9mKCJTYWZhcmkiKTwwfHwvQ2hyb21lfENvYXN0fE9wZXJhfEVkZ3xTaWxrfEFuZHJvaWQvLnRlc3QoYSkpcmV0dXJuITE7dmFyIGI9KC9WZXJzaW9uXC8oW1xkXC5dKykvLmV4ZWMoYSl8fFtdKVsxXXx8IiI7aWYoYj09PSIiKXJldHVybiExO2Zvcih2YXIgYz1bIjE0IiwiMSIsIjEiXSxkPWIuc3BsaXQoIi4iKSxlPTA7ZTxkLmxlbmd0aDtlKyspe2lmKGNbZV09PT12b2lkIDApcmV0dXJuITA7aWYoZFtlXSE9PWNbZV0pcmV0dXJuIE51bWJlcihkW2VdKT5OdW1iZXIoY1tlXSl9cmV0dXJuIGQubGVuZ3RoPj1jLmxlbmd0aH07ZnVuY3Rpb24gc0woKXt2YXIgYTthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTt2YXIgYjtyZXR1cm4hKChiPWEuZmVhdHVyZVBvbGljeSk9PW51bGx8fCFiLmFsbG93ZWRGZWF0dXJlcygpLmluY2x1ZGVzKCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmciKSl9O3ZhciB0TD1mdW5jdGlvbihhKXtYbyhGLkQubWEpJiYoQS5fZ3RtcGNtPT09ITB8fHJMKCk/VShhLEYuRC5GZSwiMiIpOnNMKCkmJlUoYSxGLkQuRmUsIjEiKSk7KE9jKCl8fFFjKCkpJiZWKGEsSC5KLm9iLCEwKTtWKGEsSC5KLlllLFEoYSxILkouWGUpJiYhWG8oZnApKTtRKGEsSC5KLnNhKSYmVShhLEYuRC5zYSwhMCk7YS5NLmV2ZW50TWV0YWRhdGFbSC5KLmFlXSYmVShhLEYuRC5WbSwhMCl9O3ZhciB1TD1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELlBhKTthLmNvcHlUb0hpdERhdGEoRi5ELlFhKTthLmNvcHlUb0hpdERhdGEoRi5ELmViKTtRKGEsSC5KLm9iKT9VKGEsRi5ELldpLCJ3d3cuZ29vZ2xlLmNvbSIpOlUoYSxGLkQuV2ksInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIpO3ZhciBiPU8oYS5NLEYuRC5XYik7YiE9PSEwJiZiIT09ITF8fFUoYSxGLkQuV2IsYil9O3ZhciB2TD1mdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldC5pZHNbZENbMF1dO2lmKGIpe1UoYSxGLkQueWksYik7dmFyIGM9YS50YXJnZXQuaWRzW2RDWzFdXTtjJiZVKGEsRi5ELkdkLGMpO08oYS5NLEYuRC5paCk9PT0hMCYmVihhLEguSi5wbiwhMCl9ZWxzZSBhLmlzQWJvcnRlZD0hMH07ZnVuY3Rpb24gd0woYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7dmFyIGU9RnAoKSxmPURwKGUpO2lmKGYudXJsKWlmKGQpe3ZhciBnPWMoZi51cmwpO2IhPT1nJiZVKGEsRi5ELlBlLGcpfWVsc2V7dmFyIGg9Zi51cmw7YiE9PWgmJlUoYSxGLkQuUGUsYyhoKSl9fTt2YXIgekw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouc2EpKXt2YXIgYj1SKGEsRi5ELk1lKSxjPU8oYS5NLEYuRC56YSksZD1jO2R8fChkPWI9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmKTtVKGEsRi5ELnphLHhMKGQpKTthLmNvcHlUb0hpdERhdGEoRi5ELlVhLEIucmVmZXJyZXIpO1UoYSxGLkQuTWIseUwoKSk7YS5jb3B5VG9IaXREYXRhKEYuRC50Yik7dmFyIGU9cUkoKTtVKGEsRi5ELmJkLGUud2lkdGgrIngiK2UuaGVpZ2h0KTt2YXIgZj1NKDU4MykmJiEhYzt3TChhLGQsZnVuY3Rpb24oZyl7dmFyIGg9eEwoZyk7ZiYmKGg9aC5zcGxpdCgiPyIpWzBdKTtyZXR1cm4gaH0pfX07CnZhciB4TD1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj1TdHJpbmcoYSkuc3Vic3RyaW5nKDAsNTEyKSxjPWIuaW5kZXhPZigiIyIpO3JldHVybiBjPT09LTE/YjpiLnN1YnN0cmluZygwLGMpfXJldHVybiIifSx5TD1mdW5jdGlvbigpe3ZhciBhPUIudGl0bGU7aWYoYT09PXZvaWQgMHx8YT09PSIiKXJldHVybiIiO2E9ZW5jb2RlVVJJQ29tcG9uZW50KGEpO2Zvcih2YXIgYj0yNTY7Yj4wJiZLaihhLnN1YnN0cmluZygwLGIpKT09PXZvaWQgMDspYi0tO3JldHVybiBLaihhLnN1YnN0cmluZygwLGIpKXx8IiJ9O2Z1bmN0aW9uIEFMKGEpe1YoYSxILkouSmEsITApO1YoYSxILkouRWIsTmIoKSk7VihhLEguSi55bixhLk0uZXZlbnRNZXRhZGF0YVtILkouSmFdKX07dmFyIEJMPWZ1bmN0aW9uKGEpe00oNDcpJiZhLmNvcHlUb0hpdERhdGEoRi5ELmtoKX07dmFyIENMPWZ1bmN0aW9uKGEpe3ZhciBiPU0oNDQzKSxjPU0oNTcwKTtpZigoYnx8YykmJlhvKGZwKSl7dmFyIGQ9UShhLEguSi5ZYSk7aWYoaHcoZCkpe3ZhciBlPVEoYSxILkouR2EpO2lmKGIpe3ZhciBmPVEoYSxILkouemopfHxUdihlKTtVKGEsRi5ELnhjLGYpfWlmKGMpe3ZhciBnPVN2KGUse1hoOiEwfSkuaWs7ZyYmVShhLCJfJmVjc2lkMiIsZyl9fX19O3ZhciBETD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLlFtKTtiJiZVKGEsRi5ELldjLGIpfTt2YXIgRUw9ZnVuY3Rpb24oYSl7dmFyIGI9QTtpZihiLl9fZ3NhRXhwJiZiLl9fZ3NhRXhwLmlkKXt2YXIgYz1iLl9fZ3NhRXhwLmlkO2lmKHliKGMpKXRyeXt2YXIgZD1OdW1iZXIoYygpKTtpc05hTihkKXx8VShhLEYuRC5QbCxkKX1jYXRjaChlKXt9fX07dmFyIEZMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuTmUpO2EuY29weVRvSGl0RGF0YShGLkQuR2UpO2EuY29weVRvSGl0RGF0YShGLkQuVWQpO2EuY29weVRvSGl0RGF0YShGLkQuSWUpO2EuY29weVRvSGl0RGF0YShGLkQuVGMpO2EuY29weVRvSGl0RGF0YShGLkQuTGQpfTt2YXIgR0w9ZnVuY3Rpb24oYSl7aWYoWG8oRi5ELm1hKSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9bm0oam0uYmEuWnEpO2lmKGI9PT12b2lkIDApbW0oam0uYmEuYXIsITApO2Vsc2V7dmFyIGM9bm0oam0uYmEuc2opO1UoYSxGLkQuWmYsYysiLiIrYil9fX07CnZhciBNTD1mdW5jdGlvbihhLGIpe2lmKGEmJih6YihhKSYmKGE9YkMoYSkpLGEpKXt2YXIgYz12b2lkIDAsZD0hMSxlPU8oYixGLkQua3EpO2lmKGUmJkFycmF5LmlzQXJyYXkoZSkpe2M9W107Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWJDKGVbZl0pO2cmJihjLnB1c2goZyksKGEuaWQ9PT1nLmlkfHxhLmlkPT09YS5kZXN0aW5hdGlvbklkJiZhLmRlc3RpbmF0aW9uSWQ9PT1nLmRlc3RpbmF0aW9uSWQpJiYoZD0hMCkpfX1pZighY3x8ZCl7dmFyIGg9TyhiLEYuRC5ZbCksbDtpZihoKXtsPUFycmF5LmlzQXJyYXkoaCk/aDpbaF07dmFyIG49TyhiLEYuRC5XbCkscD1PKGIsRi5ELlhsKSxxPU8oYixGLkQuWmwpLHI9UW8oTyhiLEYuRC5qcSkpLHQ9bnx8cCx1PTE7YS5wcmVmaXghPT0iVUEifHxjfHwodT01KTtmb3IodmFyIHY9MDt2PGwubGVuZ3RoO3YrKylpZih2PHUpaWYoYylITChjLGxbdl0scixiLHtvZTp0LG9wdGlvbnM6cX0pO2Vsc2UgaWYoYS5wcmVmaXg9PT0KIkFXIiYmYS5pZHNbZENbMV1dKXt2YXIgeD1hLmlkc1tkQ1swXV0seT1hLmlkc1tkQ1sxXV0sej1sW3ZdLEM9YixEPXtvZTp0LG9wdGlvbnM6cX07UCgyMik7aWYoeil7RD1EfHx7fTt2YXIgST1JTChKTCxELHgsQyksRz17YWs6eCxjbDp5fTtELm9lPT09dm9pZCAwJiYoRy5hdXRvcmVwbGFjZT16KTtLTChHLEMpO0koMixELm9lLEcseiwwLE1iKCksRC5vcHRpb25zKX19ZWxzZSBpZihhLnByZWZpeD09PSJVQSIpe3ZhciBOPWEuZGVzdGluYXRpb25JZCxTPWxbdl0sVz17b2U6dH07UCgyMyk7aWYoUyl7Vz1XfHx7fTt2YXIgZWE9SUwoTEwsVyxOKSxqYT17fTtXLm9lIT09dm9pZCAwP2phLnJlY2VpdmVyPVcub2U6amEucmVwbGFjZT1TO2phLmdhX3dwaWQ9TjtqYS5kZXN0aW5hdGlvbj1TO2VhKDIsTWIoKSxqYSl9fX19fX0sSEw9ZnVuY3Rpb24oYSxiLGMsZCxlKXtQKDIxKTtpZihiJiZjKXtlPWV8fHt9O2Zvcih2YXIgZj17Y291bnRyeU5hbWVDb2RlOmMsZGVzdGluYXRpb25OdW1iZXI6YiwKcmV0cmlldmFsVGltZTpNYigpfSxnPWFsKDQsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGw9YVtoXTtnW2wuaWRdfHwobCYmbC5wcmVmaXg9PT0iQVciJiYhZi5hZERhdGEmJmwuaWRzLmxlbmd0aD49Mj8oZi5hZERhdGE9e2FrOmwuaWRzW2RDWzBdXSxjbDpsLmlkc1tkQ1sxXV19LEtMKGYuYWREYXRhLGQpLGdbbC5pZF09ITApOmwmJmwucHJlZml4PT09IlVBIiYmIWYuZ2FEYXRhJiYoZi5nYURhdGE9e2dhV3BpZDpsLmRlc3RpbmF0aW9uSWR9LGdbbC5pZF09ITApKX0oZi5nYURhdGF8fGYuYWREYXRhKSYmSUwoTkwsZSx2b2lkIDAsZCkoZS5vZSxmLGUub3B0aW9ucyl9fSxLTD1mdW5jdGlvbihhLGIpe2EuZG1hPSR0KCk7YXUoKSYmKGEuZG1hQ3BzPVp0KCkpO1N0KGIpP2EubnBhPSIwIjphLm5wYT0iMSJ9LElMPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUE7aWYoZVthLmZ1bmN0aW9uTmFtZV0pcmV0dXJuIGIucm8mJmJkKGIucm8pLGVbYS5mdW5jdGlvbk5hbWVdOwp2YXIgZj1PTCgpO2VbYS5mdW5jdGlvbk5hbWVdPWY7aWYoYS5hZGRpdGlvbmFsUXVldWVzKWZvcih2YXIgZz0wO2c8YS5hZGRpdGlvbmFsUXVldWVzLmxlbmd0aDtnKyspZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dPWVbYS5hZGRpdGlvbmFsUXVldWVzW2ddXXx8T0woKTthLmlkS2V5JiZlW2EuaWRLZXldPT09dm9pZCAwJiYoZVthLmlkS2V5XT1jKTtabih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjAsZXZlbnRJZDpkPT1udWxsP3ZvaWQgMDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkPT1udWxsP3ZvaWQgMDpkLnByaW9yaXR5SWR9LGRBKCJodHRwczovLyIsImh0dHA6Ly8iLGEuc2NyaXB0VXJsKSxiLnJvLGIudHYpO3JldHVybiBmfSxPTD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXthLnE9YS5xfHxbXTthLnEucHVzaChhcmd1bWVudHMpfXJldHVybiBhfSxKTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ1djbUltcGwiLGlkS2V5OiJfZ29vZ1djbUFrIixzY3JpcHRVcmw6Ind3dy5nc3RhdGljLmNvbS93Y20vbG9hZGVyLmpzIn0sCkxMPXtmdW5jdGlvbk5hbWU6Il9nYVBob25lSW1wbCIsaWRLZXk6ImdhX3dwaWQiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2dhcGhvbmUvbG9hZGVyLmpzIn0sUEw9e1lvOkxmKDIpLGdyOiI1In0sTkw9e2Z1bmN0aW9uTmFtZToiX2dvb2dDYWxsVHJhY2tpbmdJbXBsIixhZGRpdGlvbmFsUXVldWVzOltMTC5mdW5jdGlvbk5hbWUsSkwuZnVuY3Rpb25OYW1lXSxzY3JpcHRVcmw6Ind3dy5nc3RhdGljLmNvbS9jYWxsLXRyYWNraW5nL2NhbGwtdHJhY2tpbmdfIisoUEwuWW98fFBMLmdyKSsiLmpzIn07dmFyIFFMPWZ1bmN0aW9uKGEpe1EoYSxILkouc2EpfHxNTChhLnRhcmdldCxhLk0pO2EuaXNBYm9ydGVkPSEwfTt2YXIgUkw9ZnVuY3Rpb24oYSl7WG8oRi5ELmthKSYmY3goYSl9O3ZhciBTTD1mdW5jdGlvbihhKXt2YXIgYj1YbyhGLkQua2EpP21qKCJwc2NkbCIpOiJkZW5pZWQiO2IhPW51bGwmJlUoYSxGLkQuamgsYil9O3ZhciBUTD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e319O3ZhciBVTD1mdW5jdGlvbihhLGIpe3ZhciBjPWEuTTtpZihiPT09dm9pZCAwPzA6Yil7dmFyIGQ9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hKTtZYihkKSYmVShhLEYuRC5MaSxZYihkKSl9dmFyIGU9T28oZkQoRi5ELk9hKSksZj1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EsMSxlKSxnPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwyKSxoPVliKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LFRMLkgpKSwiLiIpLGw9WWIoZywiLiIpO2gmJlUoYSxGLkQuWGMsaCk7bCYmVShhLEYuRC5WYyxsKX07dmFyIFZMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkoudHEpO2ImJlUoYSxGLkQuSWwsYil9O2Z1bmN0aW9uIFdMKGEpe3ZhciBiPUtCKCExKTtpZihiIT1udWxsJiZiLnN0YXR1cyl7dmFyIGM9e2d0YjpiLnN0YXR1c307Yi5kZWxheSYmKGMuZ3RiZD1iLmRlbGF5KTthLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEsYyl9fTt2YXIgWEw9ZnVuY3Rpb24oYSl7em0oKT09PSJVUy1DTyImJlUoYSxGLkQuTGUsMSl9O3ZhciBZTD17UmE6e0NrOjEsem46MixIbjozLEluOjQsSm46NSx3bjo2fX07WUwuUmFbWUwuUmEuQ2tdPSJBRE9CRV9DT01NRVJDRSI7WUwuUmFbWUwuUmEuem5dPSJTUVVBUkVTUEFDRSI7WUwuUmFbWUwuUmEuSG5dPSJXT09fQ09NTUVSQ0UiO1lMLlJhW1lMLlJhLkluXT0iV09PX0NPTU1FUkNFX0xFR0FDWSI7WUwuUmFbWUwuUmEuSm5dPSJXT1JEX1BSRVNTIjtZTC5SYVtZTC5SYS53bl09IlNIT1BJRlkiO2Z1bmN0aW9uIFpMKGEpe3ZhciBiPUE7cmV0dXJuIEtqKGIuZXNjYXBlKGIuYXRvYihhKSkpfQpmdW5jdGlvbiAkTCgpe3RyeXtpZighTSg0OTgpJiYhTSg0MjUpKXJldHVybltdO3ZhciBhPW5tKGptLmJhLmxuKTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBhO3ZhciBiPVtdLGM7YTp7dHJ5e2M9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePSJtYWdlLyJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9Yz0hMX1jJiZiLnB1c2goWUwuUmEuQ2spO3ZhciBkO2E6e3RyeXt2YXIgZT1aTCgiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iKTtkPWU/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmNePSIvLycrZSsnIl0nKTohMTticmVhayBhfWNhdGNoKHkpe31kPSExfWQmJmIucHVzaChZTC5SYS56bik7dmFyIGY7YTp7aWYoTSg0MjUpKXRyeXt2YXIgZz1aTCgiYzJodmNHbG1lUzVqYjIwPSIpLGg9WkwoImMyaHZjR2xtZVdOa2JpNWpiMjA9Iik7Zj1nJiZoPyEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0iY2RuLicrZysnIl0sbWV0YVtwcm9wZXJ0eT0ib2c6aW1hZ2UiXVtjb250ZW50Kj0iY2RuLicrCihnKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJjZG4uJykrKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImZvbnRzLicpKyhoKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJpdGVyYWJsZS1zaG9waWZ5Il0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0idi4nKSsoZysnIl0nKSk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9Zj0hMX1mJiZiLnB1c2goWUwuUmEud24pO3ZhciBsO2E6e3RyeXtsPSEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0id29vY29tbWVyY2UiXSxsaW5rW2hyZWYqPSJ3b29jb21tZXJjZSJdLFtjbGFzc3w9Indvb2NvbW1lcmNlIl0nKTticmVhayBhfWNhdGNoKHkpe31sPSExfWwmJmIucHVzaChZTC5SYS5Jbik7dmFyIG47YTp7dHJ5e3ZhciBwLHE9KChwPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpwLmhvc3RuYW1lKXx8IiIscix0PSgocj1CLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6ci5vcmlnaW4pfHwKIiIsdT1aTCgiTG5kdmNtUndjbVZ6Y3k1amIyMD0iKSx2PVpMKCJMeTl6TG5jdWIzSm4iKTtuPXUmJnY/VGIocSx1KXx8ISFCLnF1ZXJ5U2VsZWN0b3IoJ1tzcmNePSInK3QrJy93cC1jb250ZW50Il0sbWV0YVtuYW1lPSJnZW5lcmF0b3IiXVtjb250ZW50Xj0iV29yZFByZXNzICJdLGxpbmtbcmVsPSJkbnMtcHJlZmV0Y2giXVtocmVmPSInKyh2KyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31uPSExfW4mJmIucHVzaChZTC5SYS5Kbik7dmFyIHg7YTp7dHJ5e3g9ISFCLnF1ZXJ5U2VsZWN0b3IoJ1tjbGFzcyo9Indvb2NvbW1lcmNlIl0sbWV0YVtuYW1lPSJnZW5lcmF0b3IiXVtjb250ZW50Xj0iV29vQ29tbWVyY2UgIl0nKTticmVhayBhfWNhdGNoKHkpe314PSExfXgmJmIucHVzaChZTC5SYS5Ibik7VUIoKSYmbW0oam0uYmEubG4sYik7cmV0dXJuIGJ9Y2F0Y2goeSl7fXJldHVybltdfTtmdW5jdGlvbiB3TShhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXt2YXIgYj1OZig2NywxNTAwKSxjPWEubWVyZ2VIaXREYXRhRm9yS2V5LGQ9Ri5ELlRhLGU9e307Yy5jYWxsKGEsZCxlKX19O3ZhciB4TT0icGxhdGZvcm0gcGxhdGZvcm1WZXJzaW9uIGFyY2hpdGVjdHVyZSBtb2RlbCB1YUZ1bGxWZXJzaW9uIGJpdG5lc3MgZnVsbFZlcnNpb25MaXN0IHdvdzY0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIHlNKGEpe3ZhciBiO3JldHVybihiPWEuZ29vZ2xlX3RhZ19kYXRhKSE9bnVsbD9iOmEuZ29vZ2xlX3RhZ19kYXRhPXt9fWZ1bmN0aW9uIHpNKGEpe3ZhciBiLGM7cmV0dXJuKGM9KGI9YS5nb29nbGVfdGFnX2RhdGEpPT1udWxsP3ZvaWQgMDpiLnVhY2hfcHJvbWlzZSkhPW51bGw/YzpudWxsfWZ1bmN0aW9uIEFNKGEpe3ZhciBiLGM7cmV0dXJuIHR5cGVvZigoYj1hLm5hdmlnYXRvcik9PW51bGw/dm9pZCAwOihjPWIudXNlckFnZW50RGF0YSk9PW51bGw/dm9pZCAwOmMuZ2V0SGlnaEVudHJvcHlWYWx1ZXMpPT09ImZ1bmN0aW9uIn0KZnVuY3Rpb24gQk0oYSl7aWYoIUFNKGEpKXJldHVybiBudWxsO3ZhciBiPXlNKGEpO2lmKGIudWFjaF9wcm9taXNlKXJldHVybiBiLnVhY2hfcHJvbWlzZTt2YXIgYz1hLm5hdmlnYXRvci51c2VyQWdlbnREYXRhLmdldEhpZ2hFbnRyb3B5VmFsdWVzKHhNKS50aGVuKGZ1bmN0aW9uKGQpe2IudWFjaCE9bnVsbHx8KGIudWFjaD1kKTtyZXR1cm4gZH0pO3JldHVybiBiLnVhY2hfcHJvbWlzZT1jfTsKdmFyIENNPWZ1bmN0aW9uKCl7dGhpcy53aW5kb3c9QTt0aGlzLk49TmJ9O0NNLnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7aWYoQU0odGhpcy53aW5kb3cpJiYodGhpcy5aPXRoaXMuTigpLCF6TSh0aGlzLndpbmRvdykpKXt2YXIgYT1CTSh0aGlzLndpbmRvdyk7YSYmYS50aGVuKGZ1bmN0aW9uKCl7UCg5NSl9KS5jYXRjaChmdW5jdGlvbigpe1AoOTYpfSl9fTtDTS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3ZhciBhPXRoaXMud2luZG93Lmdvb2dsZV90YWdfZGF0YSxiO2lmKGEhPW51bGwmJmEudWFjaCl7dmFyIGM9YS51YWNoLGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjKTtjLmZ1bGxWZXJzaW9uTGlzdCYmKGQuZnVsbFZlcnNpb25MaXN0PWMuZnVsbFZlcnNpb25MaXN0LnNsaWNlKDApKTtiPWR9ZWxzZSBiPW51bGw7cmV0dXJuIGJ9O0NNLnByb3RvdHlwZS5mYT1mdW5jdGlvbihhKXt2YXIgYj0wLGM9dGhpcyxkPWZ1bmN0aW9uKGgsbCl7dHJ5e2EoaCxsKX1jYXRjaChuKXt9fSwKZT10aGlzLkgoKTtpZihlKWQoZSk7ZWxzZXt2YXIgZj16TSh0aGlzLndpbmRvdyk7aWYoZil7Yj1NYXRoLm1pbihNYXRoLm1heChpc0Zpbml0ZShiKT9iOjAsMCksMUUzKTt2YXIgZz10aGlzLndpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDYpLGQobnVsbCxFcnJvcigiVGltZW91dCIpKSl9LGIpO2YudGhlbihmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNCksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQoaCkpfSkuY2F0Y2goZnVuY3Rpb24oaCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDUpLGMud2luZG93LmNsZWFyVGltZW91dChnKSxkKG51bGwsaCkpfSl9ZWxzZSBkKG51bGwpfX07Q00ucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5aIT09dm9pZCAwfTt2YXIgRE09ZnVuY3Rpb24oKXt2YXIgYTthPWE9PT12b2lkIDA/QTphO3JldHVybiBBTShhKX0sRU09ZnVuY3Rpb24oYSl7dmFyIGI9e307YltGLkQuY2ddPWEuYXJjaGl0ZWN0dXJlOwpiW0YuRC5kZ109YS5iaXRuZXNzO2EuZnVsbFZlcnNpb25MaXN0JiYoYltGLkQuZWddPWEuZnVsbFZlcnNpb25MaXN0Lm1hcChmdW5jdGlvbihjKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGMuYnJhbmR8fCIiKSsiOyIrZW5jb2RlVVJJQ29tcG9uZW50KGMudmVyc2lvbnx8IiIpfSkuam9pbigifCIpKTtiW0YuRC5mZ109YS5tb2JpbGU/IjEiOiIwIjtiW0YuRC5nZ109YS5tb2RlbDtiW0YuRC5oZ109YS5wbGF0Zm9ybTtiW0YuRC5pZ109YS5wbGF0Zm9ybVZlcnNpb247YltGLkQuamddPWEud293NjQ/IjEiOiIwIjtyZXR1cm4gYn0sRk09bmV3IENNO3ZhciBHTT1mdW5jdGlvbihhKXtpZighRE0oKSlQKDg3KTtlbHNlIGlmKEZNLksoKSl7UCg4NSk7dmFyIGI9Rk0uSCgpO2lmKGIpe2lmKGIpZm9yKHZhciBjPUVNKGIpLGQ9bShPYmplY3Qua2V5cyhjKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7VShhLGYsY1tmXSl9fWVsc2UgUCg4Nil9fTtmdW5jdGlvbiBITShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVEoYSxILkouc2cpLGQ9ZEkoYSwiY3VzdG9tX2V2ZW50X2FjY2VwdF9ydWxlcyIsITEpJiYhYjtpZihjKXt2YXIgZT1jLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsZj0hMDtRKGEsSC5KLkNjKSYmKGY9UShhLEguSi5OYik9PT12aygpKTtlJiZmP1YoYSxILkoua2ksITApOihWKGEsSC5KLmtpLCExKSxkfHwoYS5pc0Fib3J0ZWQ9ITApKTtpZihhLmNhbkJlQWNjZXB0ZWQoKSl7dmFyIGc9dWsoKS5pbmRleE9mKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpPj0wLGg9ITE7aWYoIWcpe3ZhciBsLG49KGw9bmsoYS50YXJnZXQuZGVzdGluYXRpb25JZCkpPT1udWxsP3ZvaWQgMDpsLmNhbm9uaWNhbENvbnRhaW5lcklkO24mJihoPXZrKCk9PT1uKX1nfHxoP1EoYSxILkoua2kpJiZhLmFjY2VwdCgpOmEuaXNBYm9ydGVkPSEwfWVsc2UgYS5pc0Fib3J0ZWQ9ITB9fTt2YXIgSU09ZnVuY3Rpb24oYSl7dmFyIGI9TyhhLk0sRi5ELlpjKSxjPU8oYS5NLEYuRC5ZYyk7YiYmIWM/KGEuZXZlbnROYW1lIT09Ri5ELndhJiZhLmV2ZW50TmFtZSE9PUYuRC55ZiYmUCgxMzEpLGEuaXNBYm9ydGVkPSEwKTohYiYmYyYmKFAoMTMyKSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBKTT1mdW5jdGlvbihhKXtpZihhLmV2ZW50TmFtZT09PUYuRC53YSl7dmFyIGI9SWYoMTEpLGM9UShhLEguSi5IcSk7ISghTSg1NTApJiZifHxjKXx8YS50YXJnZXQuSmMoKXx8WUcoImlkY19jb25maWdfcHYiLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpfHwoYS5pc0Fib3J0ZWQ9ITApfX07dmFyIExNPWZ1bmN0aW9uKGEsYil7S00uTihhLGIpfSxNTT1mdW5jdGlvbigpe3RoaXMuSD17fX07TU0ucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV07Y3x8KGM9dGhpcy5IW2FdPVtdKTtjLnB1c2goYil9O01NLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuSFthLnRhcmdldC5kZXN0aW5hdGlvbklkXTtpZighYS5pc0Fib3J0ZWQmJmIpZm9yKHZhciBjPWZJKGEpLGQ9MDtkPGIubGVuZ3RoOysrZCl7dHJ5e2JbZF0oYyl9Y2F0Y2goZSl7YS5pc0Fib3J0ZWQ9ITB9aWYoYS5pc0Fib3J0ZWQpYnJlYWt9fTt2YXIgS009bmV3IE1NO3ZhciBOTT1mdW5jdGlvbihhKXtLTS5LKGEpO307dmFyIE9NPWZ1bmN0aW9uKGEpe2EmJihBcCg0OTUsYSksQXAoNTY3LGEpLEFwKDQ1MCxhKSxBcCg0NDMsYSksQXAoNTg3LGEpLEFwKDU3NixhKSxBcCg1NzAsYSksQXAoNTgxLGEpLEFwKDYwMixhKSl9LFBNPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkoud2YpJiZYbyhmcCkpe3ZhciBiPVEoYSxILkouR2EpLGM9UShhLEguSi5kYSkhPT1YLlYudWImJlEoYSxILkouZGEpIT09WC5WLk9iJiZRKGEsSC5KLmRhKSE9PVguVi5GYiYmYS5ldmVudE5hbWUhPT1GLkQuSmI7SHYoYixjKTt2YXIgZD1EdltHdihiLnByZWZpeCldO09NKGQpO1UoYSxGLkQuRWQsZCl9fTtmdW5jdGlvbiBRTSgpe3JldHVybiBraigiZGVkdXBlX2djbGlkIixmdW5jdGlvbigpe3JldHVybiBBdigpfSl9O3ZhciBSTT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn10Pyk/JC8sU009L153d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20kLztmdW5jdGlvbiBUTShhKXthfHwoYT1VTSgpKTtyZXR1cm4gYS5OdD8hMTphLm5zfHxhLnFzfHxhLnZzfHxhLnJzfHxhLkRnfHxhLlRofHxhLlRyfHxhLlZoPT09ImF3LmRzInx8TSgyMzUpJiZhLlZoPT09ImF3LmR2Inx8YS5Zcj8hMDohMX0KZnVuY3Rpb24gVU0oKXt2YXIgYT17fSxiPVVxKCEwKTthLk50PSEhYi5fdXA7dmFyIGM9ZXMoKSxkPWF0KCk7YS5ucz1jLmF3IT09dm9pZCAwO2EucXM9Yy5kYyE9PXZvaWQgMDthLnZzPWMud2JyYWlkIT09dm9pZCAwO2EucnM9Yy5nYnJhaWQhPT12b2lkIDA7YS5WaD10eXBlb2YgYy5nY2xzcmM9PT0ic3RyaW5nIj9jLmdjbHNyYzp2b2lkIDA7YS5EZz1kLkRnO2EuVGg9ZC5UaDt2YXIgZT1CLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiI7YS5Zcj1STS50ZXN0KGUpO2EuVHI9U00udGVzdChlKTtyZXR1cm4gYX07ZnVuY3Rpb24gVk0oKXt2YXIgYT1BLl9fdXNwYXBpO2lmKHliKGEpKXt2YXIgYj0iIjt0cnl7YSgiZ2V0VVNQRGF0YSIsMSxmdW5jdGlvbihjLGQpe2lmKGQmJmMpe3ZhciBlPWMudXNwU3RyaW5nO2UmJlJlZ0V4cCgiXltcXGRhLXpBLVotXXsxLDIwfSQiKS50ZXN0KGUpJiYoYj1lKX19KX1jYXRjaChjKXt9cmV0dXJuIGJ9fTsKdmFyIFdNPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKGZwKTtWKGEsSC5KLlllLE8oYS5NLEYuRC5tYikhPW51bGwmJk8oYS5NLEYuRC5tYikhPT0hMSYmIWIpO3ZhciBjPVEoYSxILkouZGopLGQ9TyhhLk0sRi5ELnVjKSE9PSExLGU9TEsoYSk7ZHx8VShhLEYuRC5IZCwiMSIpO3ZhciBmPUhyKGUucHJlZml4KSxnPVEoYSxILkouc2EpfHxRKGEsSC5KLnVnKXx8UShhLEguSi5XZSk7Y3x8Z3x8VShhLCJfJmFwdmMiLCIwIik7YS5NLmlzR3RtRXZlbnQmJlUoYSxGLkQuSWwsImciKTtVKGEsRi5ELkVkKTtVKGEsRi5ELk1iKTtpZihiJiYoVShhLEYuRC5NYix5TCgpKSxkKSl7SHYoZSk7dmFyIGg9RHZbR3YoZS5wcmVmaXgpXTtVKGEsRi5ELkVkLGgpO09NKGgpfWlmKGEuZXZlbnROYW1lPT09Ri5ELndhJiYhZyl7dmFyIGw9TyhhLk0sRi5ELnpjKSxuPU8oYS5NLEYuRC5EYil8fHt9O1BLKHtUbjpkLG1vOm4sUW86bCxVbjplfSk7IWMmJllzKGYpJiYoVihhLEguSi52ZCwhMCksVShhLCJfJmFwdmMiLAoiMSIpKX1pZihjKWEuaXNBYm9ydGVkPSEwO2Vsc2V7YS50YXJnZXQuZGVzdGluYXRpb25JZCYmVShhLEYuRC5RZSxhLnRhcmdldC5kZXN0aW5hdGlvbklkKTtVKGEsRi5ELlViLGEuZXZlbnROYW1lKTthLmV2ZW50TmFtZT09PUYuRC53YSYmVShhLEYuRC5VYixGLkQuc2MpO2lmKFEoYSxILkouc2EpKVUoYSxGLkQuVWIsRi5ELndwKSxVKGEsRi5ELnNhLCIxIik7ZWxzZSBpZihRKGEsSC5KLnVnKSlVKGEsRi5ELlViLEYuRC5IcCk7ZWxzZSBpZihRKGEsSC5KLldlKSlVKGEsRi5ELlViLEYuRC5FcCk7ZWxzZXt2YXIgcD1lcygpO1UoYSxGLkQuRGQscC5nY2xpZCk7VShhLEYuRC5LZCxwLmRjbGlkKTtVKGEsRi5ELkFsLHAuZ2Nsc3JjKTtpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKXx8TSg0MjEpKVUoYSxGLkQuRWUscC53YnJhaWQpLFUoYSxGLkQuQmYscC5nYnJhaWQpO3ZhciBxPU0oNTg5KSxyPWZ1bmN0aW9uKGZhKXtyZXR1cm4gZmEucmVwbGFjZSgvW1w/I10uKiQvLCIiKX0sCnQ9ISFPKGEuTSxGLkQuemEpLHU9cT90P2Z1bmN0aW9uKGZhKXtyZXR1cm4geEwocihmYSkpfTpmdW5jdGlvbihmYSl7cmV0dXJuIHhMKGZhLnJlcGxhY2UoLyMuKiQvLCIiKSl9OnIsdj1idCh1KTtVKGEsRi5ELnphLHYpO3ZhciB4PSEhTyhhLk0sRi5ELlVhKSx5PUIucmVmZXJyZXI7VShhLEYuRC5VYSxxP3g/cih5KTp5LnJlcGxhY2UoLyMuKiQvLCIiKTpCLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiIpO3dMKGEsdix1LCEwKTtpZihLYyl7dmFyIHo9TGooUmooS2MpLCJob3N0Iik7eiYmVShhLEYuRC5ibSx6KX1pZighUShhLEguSi5XZSkpe3ZhciBDPWF0KCk7VShhLEYuRC56ZixDLkRnKTtVKGEsRi5ELkFmLEMuU3IpfXZhciBEPVVNKCk7VE0oRCkmJlUoYSxGLkQuUGQsIjEiKTtVKGEsRi5ELkRsLFFNKCkpO1VxKCExKS5fdXA9PT0iMSImJlUoYSxGLkQuUWwsIjEiKX13by5IPSEwO1UoYSxGLkQuU2IpO1UoYSxGLkQubGIpO2lmKE0oNDIxKSl7dmFyIEk9RnIoZSk7CkkubGVuZ3RoPjAmJlUoYSxGLkQuU2IsSS5qb2luKCIuIikpO3ZhciBHPURyKGYrIl9hdyIpO0cubGVuZ3RoPjAmJlUoYSxGLkQubGIsRy5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRGQpJiYhUihhLEYuRC5LZCkmJldzKGYpKXt2YXIgTj1GcihlKTtOLmxlbmd0aD4wJiZVKGEsRi5ELlNiLE4uam9pbigiLiIpKX1lbHNlIGlmKCFSKGEsRi5ELkVlKSYmYil7dmFyIFM9RHIoZisiX2F3Iik7Uy5sZW5ndGg+MCYmVShhLEYuRC5sYixTLmpvaW4oIi4iKSl9VShhLEYuRC5VbCxxZCgpKTthLk0uaXNHdG1FdmVudCYmKGEuTS5FYVtGLkQuUmNdPWZEKEYuRC5SYykpO1N0KGEuTSk/VShhLEYuRC5kZSwhMSk6VShhLEYuRC5kZSwhMCk7VihhLEguSi5CaywhMCk7dmFyIFc9Vk0oKTtXIT09dm9pZCAwJiZVKGEsRi5ELmtnLFd8fCJlcnJvciIpO3ZhciBlYT1MdCgpO2VhJiZVKGEsRi5ELktlLGVhKTt2YXIgamE9S3QoKTtqYSYmVShhLEYuRC5PZSxqYSk7UShhLEguSi5QYyl8fFYoYSxILkouSmEsCiExKX19Owp2YXIgWE09ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMDpiO2M9Yz09PXZvaWQgMD97fTpjO2lmKGEuZXZlbnROYW1lPT09Ri5ELkpiJiYhYS5NLmlzR3RtRXZlbnQpe3ZhciBkPU8oYS5NLEYuRC5TZik7aWYodHlwZW9mIGQ9PT0iZnVuY3Rpb24iJiYhUShhLEguSi5zYSkpe3ZhciBlPVN0cmluZyhPKGEuTSxGLkQuVGYpKSxmPWU7Y1tlXSYmKGY9Y1tlXSk7dmFyIGc9UihhLGYpfHxPKGEuTSxlKTtpZihiKXtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiIpaWYoZT09PUYuRC5sYiYmZyE9PXZvaWQgMCl7dmFyIGg9Zy5zcGxpdCgiLiIpO2gubGVuZ3RoPT09MD9kKHZvaWQgMCk6aC5sZW5ndGg9PT0xP2QoaFswXSk6ZChoKX1lbHNlIGlmKGU9PT1GLkQucXEmJk0oMjU4KSl7dmFyIGwsbj17fTtYbyhmcCkmJihuLmF1aWQ9UihhLEYuRC5FZCkpO3ZhciBwPVVNKCk7aWYoVE0ocCkpbi5nYWRfc291cmNlPXAuRGcsbi5nYWRfY2FtcGFpZ25pZD1wLlRoLG4uc2Vzc2lvbl9zdGFydF90aW1lX3VzZWM9CihEYXRlLm5vdygpKjFFMykudG9TdHJpbmcoKSxuLmxhbmRpbmdfcGFnZV91cmw9QS5sb2NhdGlvbi5ocmVmLG4ubGFuZGluZ19wYWdlX3JlZmVycmVyPUIucmVmZXJyZXIsbi5sYW5kaW5nX3BhZ2VfdXNlcl9hZ2VudD1IYy51c2VyQWdlbnQ7ZWxzZXt2YXIgcT1RKGEsSC5KLkdhKTtuLmdhZF9zb3VyY2U9UnMocS5wcmVmaXgpLkVnfWw9YnRvYShKU09OLnN0cmluZ2lmeShuKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKTtkKGwpfWVsc2UgZChnKX1lbHNlIGQoZyl9YS5pc0Fib3J0ZWQ9ITB9fTt2YXIgWU09ZnVuY3Rpb24oYSl7aWYoTSg0MjUpJiZRKGEsSC5KLkZjKSl7Zm9yKHZhciBiPVsiXyZhcHZjIiwidGlkcyIsRi5ELlRhLEYuRC5RaSxGLkQuVWIsRi5ELlFlLEYuRC5WYyxGLkQuWGNdLGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7aWYoZT09PUYuRC56YSl7dmFyIGY9UihhLGUpO2YmJihmPWYucmVwbGFjZSgvW1w/I10uKiQvLCIiKSk7VShhLGUsZil9ZWxzZSBiLmluY2x1ZGVzKGUpfHxVKGEsZSl9VihhLEguSi5YZyk7VihhLEguSi5oZCl9fTtmdW5jdGlvbiBaTShhKXtpZihmbi5LKWlmKHdvLkg9ITAsYS5ldmVudE5hbWU9PT1GLkQud2Epem8oYS5NLGEudGFyZ2V0LmlkKTtlbHNle1EoYSxILkouUGMpfHwod28uS1thLnRhcmdldC5pZF09ITApO3ZhciBiPVEoYSxILkouTmIpO1pCKGIpfX07dmFyICRNPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yj09PXZvaWQgMD97fTpiO2M9Zi5Taj09PXZvaWQgMD8hMTpmLlNqO2Q9Zi5Naj09PXZvaWQgMD8hMTpmLk1qO2U9Zi5rbz09PXZvaWQgMD8hMTpmLmtvO2R8fChhLk0uaXNHdG1FdmVudD9RKGEsSC5KLmRhKSE9PVguVi54YSYmYS5ldmVudE5hbWUmJlUoYSxGLkQuVWIsYS5ldmVudE5hbWUpOlUoYSxGLkQuVWIsYS5ldmVudE5hbWUpKTtHYihhLk0uRWEsZnVuY3Rpb24oZyxoKXtNeltnXXx8YyYmQm9bZ118fGUmJk96W2ddfHxVKGEsZyxoKX0pfTt2YXIgYU49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPW0oW0YuRC5QYSxGLkQuUWEsRi5ELmViLEYuRC5OZSxGLkQuR2UsRi5ELlVkLEYuRC5JZSxGLkQuVGMsRi5ELkxkLEYuRC5raCxGLkQuRmYsRi5ELkRmLEYuRC5FZixGLkQuQ2YsRi5ELndpLEYuRC5TZCxGLkQuUWQsRi5ELlJkLEYuRC50Yl0pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWEuY29weVRvSGl0RGF0YShjLnZhbHVlKX07ZnVuY3Rpb24gYk4oYSxiKXtyZXR1cm4ga3IoImdzaWRfZGMiLHt2YWx1ZTp7am9pbklkOmEsbGFzdEpvaW5lZFRpbWVNczpifSxleHBpcmVzOmIrM0U1fSk9PT0wPyEwOiExfTsKdmFyIGNOPWZ1bmN0aW9uKGEpe2lmKFhvKGZwKSl7dmFyIGI7YTp7dmFyIGM9bnIoImdzaWRfZGMiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTtpZihkLnZhbHVlJiZ0eXBlb2YgZC52YWx1ZT09PSJvYmplY3QiKXt2YXIgZT1kLnZhbHVlO2lmKGUuam9pbklkJiZlLmxhc3RKb2luZWRUaW1lTXMmJnR5cGVvZiBlLmpvaW5JZD09PSJzdHJpbmciJiZ0eXBlb2YgZS5sYXN0Sm9pbmVkVGltZU1zPT09Im51bWJlciIpe2I9ZTticmVhayBhfX19Yj12b2lkIDB9dmFyIGY9YixnPWY9PW51bGw/dm9pZCAwOmYuam9pbklkLGg9TmIoKTtpZighZnx8IWd8fGYubGFzdEpvaW5lZFRpbWVNczxoLTNFNSl7dmFyIGw9Y2MoKTtnPWwmJmJOKGwsTmIoKSk/bDp2b2lkIDA7ZyYmVihhLEguSi5oZCwhMCl9ZWxzZSBnJiZmLmxhc3RKb2luZWRUaW1lTXM8aC02RTQmJmJOKGYuam9pbklkLGgpJiZWKGEsSC5KLmhkLCEwKTtnJiZNKDQ3NCkmJgpWKGEsSC5KLlhnLGcpfX07dmFyIGROPWZ1bmN0aW9uKGEpe1YoYSxILkoud2YsTyhhLk0sRi5ELnVjKSE9PSExKTtWKGEsSC5KLkdhLExLKGEpKTtWKGEsSC5KLlhlLE8oYS5NLEYuRC5tYikhPW51bGwmJk8oYS5NLEYuRC5tYikhPT0hMSk7VihhLEguSi53ZCxTdChhLk0pKX07dmFyIGVOPXt6cTp7VXQ6ImNkIixmcDoiY2UiLFZ0OiJjZiIsV3Q6ImNwZiIsWHQ6ImN1In19O3ZhciBmTj1mdW5jdGlvbihhKXt2YXIgYj1lTi56cS5mcCxjPU8oYS5NLEYuRC5DYik7UihhLEYuRC5lZCl8fFUoYSxGLkQuZWQse30pO1IoYSxGLkQuZWQpW2JdPWN9O2Z1bmN0aW9uIGdOKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9d2IocmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUx8fFtdKTtjJiYoVShhLEYuRC5WZixjKSxiJiZ1YigpKX07dmFyIGhOPWZ1bmN0aW9uKGEpe3ZhciBiPWEuTS5nZXRNZXJnZWRWYWx1ZXMoRi5ELlRhKTtiJiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEsYil9O3ZhciBpTj1mdW5jdGlvbihhKXt2YXIgYj1PcCghMSk7VShhLEYuRC5NZSxiKX07dmFyIGpOPWZ1bmN0aW9uKGEpe1EoYSxILkoud2QpP1UoYSxGLkQuZGUsIjAiKTpVKGEsRi5ELmRlLCIxIil9O3ZhciBrTj1mdW5jdGlvbihhLGIpe2lmKGI9PT12b2lkIDB8fGIpe3ZhciBjPVZNKCk7YyE9PXZvaWQgMCYmVShhLEYuRC5rZyxjfHwiZXJyb3IiKX12YXIgZD1MdCgpO2QmJlUoYSxGLkQuS2UsZCk7dmFyIGU9S3QoKTtlJiZVKGEsRi5ELk9lLGUpfTt2YXIgbE49ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEua2opLGM9RSg1KTtiJiZiW2NdJiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEse3JldHJ5OiIxIn0pfTt2YXIgbU49ZnVuY3Rpb24oYSl7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5LaSwiMSIpfTsKdmFyIG5OPWZ1bmN0aW9uKGEsYixjKXtpZihhIT09dm9pZCAwKXJldHVybiBBcnJheS5pc0FycmF5KGEpP2EubWFwKGZ1bmN0aW9uKCl7cmV0dXJue21vZGU6Im0iLGxvY2F0aW9uOmIsc2VsZWN0b3I6Y319KTp7bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0sb049ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIWMpcmV0dXJuITE7Zm9yKHZhciBlPVN0cmluZyhjLnZhbHVlKSxmLGc9dm9pZCAwLGg9ZS5yZXBsYWNlKC9cWyI/Jz8vZywiLiIpLnJlcGxhY2UoLyI/Jz9cXS9nLCIiKS5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbih1KXtyZXR1cm4gdS50cmltKCl9KS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUmJiFTYih1LCIjIikmJiFTYih1LCIuIil9KSxsPTA7bDxoLmxlbmd0aDtsKyspe3ZhciBuPWhbbF07aWYoU2IobiwiZGF0YUxheWVyLiIpKWY9dUEobi5zdWJzdHJpbmcoMTApKSxnPW5OKGYsImQiLG4pO2Vsc2V7dmFyIHA9bi5zcGxpdCgiLiIpO2Y9QVtwLnNoaWZ0KCldOwpmb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKylmPWYmJmZbcFtxXV07Zz1uTihmLCJqIixuKX1pZihmIT09dm9pZCAwKWJyZWFrfWlmKGY9PT12b2lkIDApdHJ5e3ZhciByPUIucXVlcnlTZWxlY3RvckFsbChlKTtpZihyJiZyLmxlbmd0aD4wKXtmPVtdO2Zvcih2YXIgdD0wO3Q8ci5sZW5ndGgmJnQ8KGI9PT0iZW1haWwifHxiPT09InBob25lX251bWJlciI/NToxKTt0KyspZi5wdXNoKGZkKHJbdF0pfHxMYihyW3RdLnZhbHVlKSk7Zj1mLmxlbmd0aD09PTE/ZlswXTpmO2c9bk4oZiwiYyIsZSl9fWNhdGNoKHUpe1AoMTQ5KX1yZXR1cm4gZj8oYVtiXT1mLGQmJmcmJihkW2JdPWcpLCEwKTohMX07CnZhciBwTj1mdW5jdGlvbihhKXtpZihkSShhLCJjY2RfYWRkXzFwX2RhdGEiLCExKSYmWG8oZnApKXt2YXIgYj1hLk0uaWJbRi5ELmxtXTtpZihDZChiKSYmYi5lbmFibGVfY29kZSl7dmFyIGM9TyhhLk0sRi5ELkFjKTtpZihjPT09bnVsbClWKGEsSC5KLkduLG51bGwpO2Vsc2UgaWYoYi5lbmFibGVfY29kZSYmQ2QoYykmJihadihjKSxWKGEsSC5KLkduLGMpKSxDZChiLnNlbGVjdG9ycykpe3ZhciBkPUguSi5pcixlO3ZhciBmPWIuc2VsZWN0b3JzLGc9TSg1MjMpO2c9Zz09PXZvaWQgMD8hMTpnO2lmKGYpe3ZhciBoPXt9LGw9ITEsbj17fTtsPW9OKGgsImVtYWlsIixmLmVtYWlsLG4pfHxsO2w9b04oaCwicGhvbmVfbnVtYmVyIixmLnBob25lLG4pfHxsO2guYWRkcmVzcz1bXTtmb3IodmFyIHA9Zi5uYW1lX2FuZF9hZGRyZXNzfHxbXSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXt9LHQ9e307bD1vTihyLCJmaXJzdF9uYW1lIixwW3FdLmZpcnN0X25hbWUsdCl8fGw7bD1vTihyLAoibGFzdF9uYW1lIixwW3FdLmxhc3RfbmFtZSx0KXx8bDtsPW9OKHIsInN0cmVldCIscFtxXS5zdHJlZXQsdCl8fGw7bD1vTihyLCJjaXR5IixwW3FdLmNpdHksdCl8fGw7bD1vTihyLCJyZWdpb24iLHBbcV0ucmVnaW9uLHQpfHxsO2w9b04ociwiY291bnRyeSIscFtxXS5jb3VudHJ5LHQpfHxsO2w9b04ociwicG9zdGFsX2NvZGUiLHBbcV0ucG9zdGFsX2NvZGUsdCl8fGw7aC5hZGRyZXNzLnB1c2gocik7ZyYmKHIuX3RhZ19tZXRhZGF0YT10KX1nJiYoaC5fdGFnX21ldGFkYXRhPW4pO2U9bD9oOnZvaWQgMH1lbHNlIGU9dm9pZCAwO1YoYSxkLGUpfX19fTsKdmFyIHFOPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGUpe1VMKGUsITApfSxjPWZ1bmN0aW9uKGUpe3BOKGUpfSxkPWZ1bmN0aW9uKGUpeyRNKGUse1NqOiEwLE1qOiEwfSl9O3N3aXRjaChhKXtjYXNlIFguVi5RazpyZXR1cm5bUEYsQUwsTUYsSE0sSk0sSU1dO2Nhc2UgWC5WLkthOnJldHVybltmTixYTCxaTSxpTixjTixXTSxkLFNLLGFOLEdMLGIsd00sbE4saE4sVkwsb0wsTk0sZnVuY3Rpb24oZSl7Z04oZSwhMSl9LFdMLFlNLHBMXTtjYXNlIFguVi5NazpyZXR1cm5bWk0sUUxdO2Nhc2UgWC5WLnhhOnJldHVybltVSyxYTCxaTSxkTix2TCx0TCwkTSxTSyxpTixWTCx6TCxHTCxiLHFMLEZMLEJMLEVMLHVMLGpOLG9MLGtOLG1OLExGLGMsZk4sU0wsbE4saE4sUE0sWE0sR00sTk0sVEssREwsUUssUkwsZ04sV0wscExdO2Nhc2UgWC5WLnViOnJldHVybltYTCxaTSxkTix2TCwkTSxTSyxpTix6TCxHTCxiLFZMLHFMLEVMLHVMLGpOLG9MLGtOLExGLFNMLGZOLGxOLGhOLFBNLEdNLApOTSxUSyxnTixXTCxwTF07Y2FzZSBYLlYuT2I6cmV0dXJuW1hMLFpNLGROLHZMLFNLLEdMLGIsak4sb0wsaU4sTEYsYyxTTCxmTixsTixoTixWTCxQTSxHTSxOTSxUSyxnTixXTCxwTF07Y2FzZSBYLlYuRmI6cmV0dXJuW1hMLFpNLGROLHZMLFNLLEdMLGIsak4sb0wsaU4sVkwsTEYsYyxTTCxmTixsTixoTixQTSxHTSxOTSxUSyxDTCxnTixXTCxwTF07ZGVmYXVsdDpyZXR1cm5bXX19LHJOPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1xTihRKGEsSC5KLmRhKSksYz0wO2M8Yi5sZW5ndGgmJihiW2NdKGEpLCFhLmlzQWJvcnRlZCk7YysrKTt9LHNOPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBhSShiLnRhcmdldCxiLmV2ZW50TmFtZSxiLk0pLGQ9bShldShiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7VShjLGYsUihiLGYpKX1mb3IodmFyIGc9bShPYmplY3Qua2V5cyhiLm1ldGFkYXRhKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPQpoLnZhbHVlO1YoYyxsLFEoYixsKSl9VihjLEguSi5kYSxhKTtyZXR1cm4gY30sdE49ZnVuY3Rpb24oYSxiLGMsZCl7ZnVuY3Rpb24gZSh1LHYpe2Zvcih2YXIgeD1tKGwpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt2YXIgej15LnZhbHVlO3ouaXNBYm9ydGVkPSExO1YoeixILkouSmEsITApO1YoeixILkouc2EsITApO1YoeixILkouRWIsTmIoKSk7Vih6LEguSi51Zix1KTtWKHosSC5KLnZmLHYpfX1mdW5jdGlvbiBmKHUpe2Zvcih2YXIgdj17fSx4PTA7eDxsLmxlbmd0aDt2PXtWYTp2b2lkIDB9LHgrKylpZih2LlZhPWxbeF0sIXV8fHUoUSh2LlZhLEguSi5kYSkpKWlmKCFRKHYuVmEsSC5KLnNhKXx8USh2LlZhLEguSi5kYSkhPT1YLlYuS2F8fFEodi5WYSxILkoudmQpKWlmKCFRKHYuVmEsSC5KLnNhKXx8USh2LlZhLEguSi5kYSk9PT1YLlYuS2F8fFhvKHIpKXJOKGxbeF0pLFEodi5WYSxILkouSmEpfHx2LlZhLmlzQWJvcnRlZHx8USh2LlZhLEguSi5kYSkhPT1YLlYuS2F8fAohUSh2LlZhLEguSi52ZCl8fChNSyh2LlZhLGZ1bmN0aW9uKCl7ZihmdW5jdGlvbih5KXtyZXR1cm4geT09PVguVi5LYX0pfSksUih2LlZhLEYuRC5aZik9PT12b2lkIDAmJnQ9PT12b2lkIDAmJih0PXBtKGptLmJhLnNqLGZ1bmN0aW9uKHkpe3JldHVybiBmdW5jdGlvbigpe3FtKGptLmJhLnNqLHQpO3Q9dm9pZCAwO1hvKEYuRC5tYSkmJihWKHkuVmEsSC5KLnVnLCEwKSxWKHkuVmEsSC5KLnNhLCExKSxVKHkuVmEsRi5ELnNhKSxmKGZ1bmN0aW9uKHope3JldHVybiB6PT09WC5WLkthfSksVih5LlZhLEguSi51ZywhMSkpfX0odikpKSl9dmFyIGc9ZC5pc0d0bUV2ZW50JiZhPT09IiI/e2lkOiIiLHByZWZpeDoiIixkZXN0aW5hdGlvbklkOiIiLGlkczpbXSxKYzpmdW5jdGlvbigpe3JldHVybiExfX06YkMoYSxkLmlzR3RtRXZlbnQpO2lmKGcpe3ZhciBoPW5ldyBhSShnLGIsZCk7VihoLEguSi5kYSxYLlYuUWspO3JOKGgpO2lmKCFoLmlzQWJvcnRlZCl7dmFyIGw9W107aWYoZC5ldmVudE1ldGFkYXRhW0guSi5EY10pe3ZhciBuPQpkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXTtBcnJheS5pc0FycmF5KG4pfHwobj1bbl0pO2Zvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1zTihuW3BdLGgpO00oNDg4KXx8VihxLEguSi5KYSwhMSk7bC5wdXNoKHEpfX1lbHNlIGI9PT1GLkQud2EmJmwucHVzaChzTihYLlYuTWssaCkpLGIhPT1GLkQuSmImJmwucHVzaChzTihYLlYuS2EsaCkpLGwucHVzaChzTihYLlYueGEsaCkpLGIhPT1GLkQuSmImJihsLnB1c2goc04oWC5WLk9iLGgpKSxsLnB1c2goc04oWC5WLkZiLGgpKSxsLnB1c2goc04oWC5WLnViLGgpKSk7dmFyIHI9W0YuRC5rYSxGLkQubWFdLHQ9dm9pZCAwO2JwKGZ1bmN0aW9uKCl7ZigpO3ZhciB1PSFYbyhbRi5ELlhhXSk7aWYoIVhvKHIpfHx1KXt2YXIgdj1yO3UmJih2PVtdLmNvbmNhdCh3KHYpLFtGLkQuWGFdKSk7YXAoZnVuY3Rpb24oeCl7dmFyIHkseixDO3k9eC5jb25zZW50RXZlbnRJZDt6PXguY29uc2VudFByaW9yaXR5SWQ7Qz14LmNvbnNlbnRUeXBlczsKZSh5LHopO0MmJkMubGVuZ3RoPT09MSYmQ1swXT09PUYuRC5YYT9mKGZ1bmN0aW9uKEQpe3JldHVybiBEPT09WC5WLnVifSk6ZigpfSx2KX19LHIpfX19O2Z1bmN0aW9uIEZPKGEsYixjLGQpe31GTy5QPSJpbnRlcm5hbC5leGVjdXRlRXZlbnRQcm9jZXNzb3IiO2Z1bmN0aW9uIEdPKGEpe3ZhciBiO3JldHVybiBVZChiLHRoaXMuVCwxKX1HTy5QPSJpbnRlcm5hbC5leGVjdXRlSmF2YXNjcmlwdFN0cmluZyI7ZnVuY3Rpb24gSE8oYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPUE7dHJ5e2I9S2ooYy5lc2NhcGUoYy5hdG9iKGEpKSl9Y2F0Y2goZCl7cmV0dXJufXJldHVybiBifTtmdW5jdGlvbiBJTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1JTy5QPSJpbnRlcm5hbC5nZW5lcmF0ZUNsaWVudElkIjtmdW5jdGlvbiBKTyhhKXt2YXIgYj17fTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9S08uUD0iaW50ZXJuYWwuZ2V0QWxsb3dBZFBlcnNvbmFsaXphdGlvbiI7ZnVuY3Rpb24gTE8oKXt2YXIgYTtyZXR1cm4gYX1MTy5QPSJpbnRlcm5hbC5nZXRBbmRSZXNldEV2ZW50VXNhZ2UiO2Z1bmN0aW9uIE1PKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9TU8uUD0iaW50ZXJuYWwuZ2V0QXVpZCI7ZnVuY3Rpb24gTk8oKXt2YXIgYT1bXTtyZXR1cm4gVWQoYSl9Tk8uUD0iaW50ZXJuYWwuZ2V0Q29udGFpbmVySWRzIjtmdW5jdGlvbiBPTygpe3ZhciBhPW5ldyBrYjtMKHRoaXMsInJlYWRfY29udGFpbmVyX2RhdGEiKSxhLnNldCgiY29udGFpbmVySWQiLGlnKSxhLnNldCgidmVyc2lvbiIsa2cpLGEuc2V0KCJlbnZpcm9ubWVudE5hbWUiLGpnKSxhLnNldCgiZGVidWdNb2RlIixsZyksYS5zZXQoInByZXZpZXdNb2RlIixtZy5QbyksYS5zZXQoImVudmlyb25tZW50TW9kZSIsbWcuS3IpLGEuc2V0KCJmaXJzdFBhcnR5U2VydmluZyIsYWsoKSksYS5zZXQoImNvbnRhaW5lclVybCIsS2MpLGEuc2V0KCJpc0dvb2dsZU9ubHlNb2RlIixJZig2MikpLGEuWmEoKTtyZXR1cm4gYX1PTy5wdWJsaWNOYW1lPSJnZXRDb250YWluZXJWZXJzaW9uIjtmdW5jdGlvbiBQTyhhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjO3JldHVybiBjfVBPLnB1YmxpY05hbWU9ImdldENvb2tpZVZhbHVlcyI7ZnVuY3Rpb24gUU8oKXt2YXIgYT0iIjtyZXR1cm4gYX1RTy5QPSJpbnRlcm5hbC5nZXRDb3JlUGxhdGZvcm1TZXJ2aWNlc1BhcmFtIjtmdW5jdGlvbiBSTygpe3JldHVybiB5bSgpfVJPLlA9ImludGVybmFsLmdldENvdW50cnlDb2RlIjtmdW5jdGlvbiBTTygpe3ZhciBhPVtdO2E9dGsoKTtyZXR1cm4gVWQoYSl9U08uUD0iaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiO2Z1bmN0aW9uIFRPKGEpe3ZhciBiPW5ldyBrYjtyZXR1cm4gYn1UTy5QPSJpbnRlcm5hbC5nZXREZXZlbG9wZXJJZHMiO2Z1bmN0aW9uIFVPKGEpe3ZhciBiO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtyZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307cmV0dXJuIFVkKGMpfWlQLlA9ImludGVybmFsLmdldExpbmtlclZhbHVlRnJvbUxvY2F0aW9uIjtmdW5jdGlvbiBqUCgpe3ZhciBhPW5ldyBrYjtpZihhcmd1bWVudHMubGVuZ3RoIT09MCl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFtdLGFyZ3VtZW50cyk7dmFyIGI9Vk0oKTtiIT09dm9pZCAwJiZhLnNldChGLkQua2csYnx8ImVycm9yIik7dmFyIGM9THQoKTtjJiZhLnNldChGLkQuS2UsYyk7dmFyIGQ9S3QoKTtkJiZhLnNldChGLkQuT2UsZCk7dmFyIGU9a0YuZ3BwU3RyaW5nO2UmJmEuc2V0KEYuRC51aCxlKTt2YXIgZj1rRi5IO2YmJmEuc2V0KEYuRC50aCxmKTtyZXR1cm4gYX1qUC5QPSJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyI7ZnVuY3Rpb24ga1AoYSxiKXt2YXIgYztpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307Yz1VZChkW2JdLHRoaXMuVCk7cmV0dXJuIGN9a1AuUD0iaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBsUChhLGIpe3ZhciBjO3JldHVybiBjfWxQLnB1YmxpY05hbWU9ImdldFF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gbVAoYSxiKXt2YXIgYztyZXR1cm4gY31tUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gblAoYSl7dmFyIGI9IiI7cmV0dXJuIGJ9blAucHVibGljTmFtZT0iZ2V0UmVmZXJyZXJVcmwiO2Z1bmN0aW9uIG9QKCl7cmV0dXJuIHptKCl9b1AuUD0iaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSI7ZnVuY3Rpb24gcFAoYSxiKXt2YXIgYztyZXR1cm4gY31wUC5QPSJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIHFQKGEsYil7dmFyIGM9bnVsbDsKcmV0dXJuIGN9cVAuUD0iaW50ZXJuYWwuZ2V0U2NvcGVkRWxlbWVudHNCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiByUCgpe3ZhciBhPW5ldyBrYjthLnNldCgid2lkdGgiLDApO2Euc2V0KCJoZWlnaHQiLDApO3JldHVybiBhfXJQLlA9ImludGVybmFsLmdldFNjcmVlbkRpbWVuc2lvbnMiO2Z1bmN0aW9uIHNQKCl7dmFyIGE9IiI7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtyZXR1cm4gYX10UC5QPSJpbnRlcm5hbC5nZXRUb3BXaW5kb3dVcmwiO2Z1bmN0aW9uIHVQKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIixhKTtiPUxqKFJqKEEubG9jYXRpb24uaHJlZiksYSk7cmV0dXJuIGJ9dVAucHVibGljTmFtZT0iZ2V0VXJsIjtmdW5jdGlvbiB2UCgpe0wodGhpcywiZ2V0X3VzZXJfYWdlbnQiKTtyZXR1cm4gSGMudXNlckFnZW50fXZQLnB1YmxpY05hbWU9ImdldFVzZXJBZ2VudCI7dlAuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50IjtmdW5jdGlvbiB3UCgpe3ZhciBhO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjtmdW5jdGlvbiB6UCgpe3ZhciBhPUE7cmV0dXJuIGEuZ2FHbG9iYWw9YS5nYUdsb2JhbHx8e319ZnVuY3Rpb24gQVAoYSxiKXt2YXIgYz16UCgpO2lmKGMudmlkPT09dm9pZCAwfHxiJiYhYy5mcm9tX2Nvb2tpZSljLnZpZD1hLGMuZnJvbV9jb29raWU9Yn07ZnVuY3Rpb24gYlEoYSl7KGJrKFpLKGEpKXx8V2ooKSkmJlUoYSxGLkQub20sem0oKXx8eW0oKSk7IWJrKFpLKGEpKSYmV2ooKSYmVShhLEYuRC5ZaSwiOjoiKX1mdW5jdGlvbiBjUShhKXtXaigpJiYoYmsoWksoYSkpfHxEbSgpfHxVKGEsRi5ELlNsLCEwKSl9O2Z1bmN0aW9uIGhRKGEsYixjLGQpe3ZhciBlO2lmKChuZCgpfHxrZCgpKSYmWGooKSYmWGooKSE9PSIvIil7dmFyIGY9UmooYSk7ZT1JZig1MCkmJmQmJlRiKGYucGF0aG5hbWUsIi9nL2NvbGxlY3QiKT8yOihkfHwhV2ooKXx8RG0oKT8wOlRiKGYucGF0aG5hbWUsIi9nYS9nL2MiKXx8VGIoZi5wYXRobmFtZSwiL2FnL2cvYyIpKT8xOjB9ZWxzZSBlPTA7c3dpdGNoKGUpe2Nhc2UgMjp2YXIgZztpZihNKDU0Nikpe3ZhciBoPVRiKGEsIi9nL2NvbGxlY3QiKT9hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEwKTphLGw9aVEoKSxuPWgrbCxwPWpRKCIvZy9jb2xsZWN0IixiLGMpO2c9e0ljOm4sa2Y6IiIsYm9keTpwfX1lbHNlIGc9e0ljOmEsa2Y6Yixib2R5OmN9O3JldHVybiBnO2Nhc2UgMTp2YXIgcTtpZihNKDU0Nykpe3ZhciByPWlRKCksdD1hLmluZGV4T2YociksdT1hLnN1YnN0cmluZygwLHQpK3Isdj1qUShhLnN1YnN0cmluZyh0K3IubGVuZ3RoLTEpLGIsYyk7cT17SWM6dSxrZjoiIiwKYm9keTp2fX1lbHNlIHE9e0ljOmEsa2Y6Yixib2R5OmN9O3JldHVybiBxO2RlZmF1bHQ6cmV0dXJue0ljOmEsa2Y6Yixib2R5OmN9fX1mdW5jdGlvbiBpUSgpe3ZhciBhPVhqKCk7aWYoIWEpcmV0dXJuIiI7U2IoYSwiLyIpfHwoYT0iLyIrYSk7VGIoYSwiLyIpfHwoYSs9Ii8iKTtyZXR1cm4gYX1mdW5jdGlvbiBqUShhLGIsYyl7dmFyIGQ9W2FdO2ImJmQucHVzaCgiPyIsYik7YyYmZC5wdXNoKCJcclxuIixjKTtyZXR1cm4gZC5qb2luKCIiKX07ZnVuY3Rpb24gc1IoYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9TyhhLk0sRi5ELldkKTtiJiYoS0MoYixmdW5jdGlvbigpe30pLFUoYSxGLkQuV2QsYikpfTtmdW5jdGlvbiB2UihhKXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4hIWMmJmMuY29udmVyc2lvbn07VihhLEguSi5tZyxiKFhLKGEpKSk7UShhLEguSi5uZykmJlYoYSxILkouWW0sYihYSyhhLCJmaXJzdF92aXNpdCIpKSk7UShhLEguSi5UZSkmJlYoYSxILkouYm4sYihYSyhhLCJzZXNzaW9uX3N0YXJ0IikpKX07dmFyIEFSPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPVN0cmluZyh6Ui5jb29raWUpLnNwbGl0KCI7IiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLnNwbGl0KCI9IiksZj1lWzBdLnRyaW0oKTtpZihmJiZhKGYpKXt2YXIgZz1lLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7ZyYmKGc9ZGVjb2RlVVJJQ29tcG9uZW50KGcpKTt2YXIgaD12b2lkIDAsbD12b2lkIDA7KChoPWIpW2w9Zl18fChoW2xdPVtdKSkucHVzaChnKX19cmV0dXJuIGJ9O3ZhciBCUj13aW5kb3cselI9ZG9jdW1lbnQsQ1I9ZnVuY3Rpb24oYSl7dmFyIGI9QlIuX2dhVXNlclByZWZzO2lmKGImJmIuaW9vJiZiLmlvbygpfHx6Ui5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXRhLWdvb2dsZS1hbmFseXRpY3Mtb3B0LW91dCIpfHxhJiZCUlsiZ2EtZGlzYWJsZS0iK2FdPT09ITApcmV0dXJuITA7dHJ5e3ZhciBjPUJSLmV4dGVybmFsO2lmKGMmJmMuX2dhVXNlclByZWZzJiZjLl9nYVVzZXJQcmVmcz09Im9vIilyZXR1cm4hMH1jYXRjaChmKXt9Zm9yKHZhciBkPUFSKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09IkFNUF9UT0tFTiJ9KS5BTVBfVE9LRU58fFtdLGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT0iJE9QVF9PVVQiKXJldHVybiEwO3JldHVybiB6Ui5nZXRFbGVtZW50QnlJZCgiX19nYU9wdE91dEV4dGVuc2lvbiIpPyEwOiExfTt2YXIgTVI9ImdjbGlkIGRjbGlkIGdjbHNyYyB3YnJhaWQgZ2JyYWlkIGdhZF9zb3VyY2UgZ2FkX2NhbXBhaWduaWQgdXRtX3NvdXJjZSB1dG1fbWVkaXVtIHV0bV9jYW1wYWlnbiB1dG1fdGVybSB1dG1fY29udGVudCB1dG1faWQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gTlIoKXt2YXIgYT1CLmxvY2F0aW9uLGIsYz1hPT1udWxsP3ZvaWQgMDooYj1hLnNlYXJjaCk9PW51bGw/dm9pZCAwOmIucmVwbGFjZSgiPyIsIiIpLGQ7aWYoYyl7Zm9yKHZhciBlPVtdLGY9SmooYywhMCksZz1tKE1SKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPWZbbF07aWYobilmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9bltwXTtxIT09dm9pZCAwJiZlLnB1c2goe25hbWU6bCx2YWx1ZTpxfSl9fWQ9ZX1lbHNlIGQ9W107cmV0dXJuIGR9O3ZhciBQUj1bRi5ELnJhLEYuRC5rYV0sUVI9W0YuRC5yYSxGLkQua2EsRi5ELm1hXTsKZnVuY3Rpb24gUlIoYSl7dmFyIGIsYz1NKDUwNikmJiFkSShhLCJjY2RfZ2FfYWRzX2lkc19vcHRfb3V0IiwhMSksZD0hIWRJKGEsImdvb2dsZV9uZyIsITEpLGU9WG8oYz9kP1FSOmZwOlBSKSxmO2Y9ZEkoYSxGLkQuVWYsTyhhLk0sRi5ELlVmKSl8fCEhZEkoYSwiZ29vZ2xlX25nIiwhMSk7Yj17aGY6YyxFczpkLEdvOmUsZmY6ZixMZzohIWRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSksYmk6QW0oKSxHajohVksoKSxGczpiayhaSyhhKSksRHM6ISFRKGEsSC5KLmJlKSxHczohIVEoYSxILkouVGUpLHVzOiEhTyhhLk0sRi5ELk5sKSxLczohIVEoYSxILkouZWopLHhnOk8oYS5NLEYuRC5TYyksbnI6TyhhLk0sRi5ELlNjLHZvaWQgMCw0KSxIczohIVEoYSxILkouRmMpfTtWKGEsSC5KLmNqLGIuZmYpO1YoYSxILkouYmosU1IoYikpO2IuaGYmJiFiLmZmJiZiLkxnJiZTUihiKSYmVShhLCJfJmlidCIsIjEiKTtTUihiKSYmYi5HbyYmKGIuaGY/Yi54ZyE9PSExfHxiLkxnOjEpJiZWKGEsCkguSi5ybiwhMCk7Yi5FcyYmIWIuYmkmJlUoYSxGLkQuTGUsMSk7KGIuaGY/Yi54ZzpiLm5yKT09PSExJiZVKGEsIl8mbmdzIiwiMSIpO1YoYSxILkouaGQsVFIoYikmJihiLkdzfHxiLnVzKSk7VihhLEguSi5yZyxUUihiKSYmYi5LcyYmIWIuYmkpfWZ1bmN0aW9uIFNSKGEpe3JldHVybiBhLmhmPyhhLkxnfHxhLmZmKSYmIWEuYmkmJiFhLkdqOmEuZmYmJmEueGchPT0hMSYmIWEuR2omJiFhLmJpfWZ1bmN0aW9uIFRSKGEpe2lmKGEuSHMpcmV0dXJuITE7aWYoYS5oZil7aWYoIWEuZmYmJiFhLkxnKXJldHVybiExfWVsc2UgaWYoIWEuZmYpcmV0dXJuITE7cmV0dXJuIGEuRnN8fGEuRHN8fGEuR2p8fChhLmhmP2EueGc9PT0hMSYmIWEuTGc6YS54Zz09PSExKXx8IWEuR28/ITE6ITB9O3ZhciBiUz1mdW5jdGlvbihhKXt2YXIgYj0hMDtiPWI9PT12b2lkIDA/ITE6YjtpZihNKDQyNSkmJiEocGwoKXx8YiYmUShhLEguSi5kail8fGEuZXZlbnROYW1lIT09Ri5ELndhfHxRKGEsSC5KLkZjKSkpe3ZhciBjPXt9LGQ9e30sZT17ZXZlbnRNZXRhZGF0YTpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEuTS5ldmVudE1ldGFkYXRhLChjW0guSi5GY109ITAsYyksYj97fTooZFtILkouRGNdPVguVi5LYSxkKSksbm9HdG1FdmVudDohMH0sZj1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLCJzdHJ1Y3R1cmVkX2RhdGEiLGEuTS5FYSk7bUQoZixhLk0uZXZlbnRJZCxlKX19O2Z1bmN0aW9uIGhTKGEpe31mdW5jdGlvbiBpUyhhKXt2YXIgYj1mdW5jdGlvbigpe307cmV0dXJuIGJ9CmZ1bmN0aW9uIGpTKGEsYil7fXZhciBrUz1KLlUucWwsbFM9Si5VLnJsO2Z1bmN0aW9uIG1TKGEsYil7dmFyIGM9dGsoKTtjJiZjLmluZGV4T2YoYik+LTEmJihhW0guSi5DY109ITApfWZ1bmN0aW9uIG9TKGEsYixjKXt2YXIgZD10aGlzO31vUy5QPSJpbnRlcm5hbC5ndGFnQ29uZmlnIjtmdW5jdGlvbiBwUyhhLGIsYyxkKXt2YXIgZT10aGlzO31wUy5QPSJpbnRlcm5hbC5ndGFnRGVzdGluYXRpb25Db25maWciOwpmdW5jdGlvbiByUyhhLGIpe30KclMucHVibGljTmFtZT0iZ3RhZ1NldCI7ZnVuY3Rpb24gc1MoKXt2YXIgYT17fTtyZXR1cm4gYX07ZnVuY3Rpb24gdFMoYSl7fXRTLlA9ImludGVybmFsLmluaXRpYWxpemVTZXJ2aWNlV29ya2VyIjtmdW5jdGlvbiB1UyhhLGIpe311Uy5wdWJsaWNOYW1lPSJpbmplY3RIaWRkZW5JZnJhbWUiO2Z1bmN0aW9uIHZTKGEsYixjLGQsZSl7fXZTLlA9ImludGVybmFsLmluamVjdEh0bWwiO3ZhciBBUz17ZGw6MSxpZDoxfTsKZnVuY3Rpb24gQlMoYSxiLGMsZCl7fUJTLnB1YmxpY05hbWU9ImluamVjdFNjcmlwdCI7ZnVuY3Rpb24gQ1MoKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjUiXTtyZXR1cm4gYn1DUy5QPSJpbnRlcm5hbC5pc0F1dG9QaWlFbGlnaWJsZSI7ZnVuY3Rpb24gRFMoYSl7dmFyIGI9ITA7aWYoIWxoKGEpJiYhamgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIkFycmF5Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhKTtpZih6YihjKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixjLCJyZWFkIik7ZWxzZSBmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixlLnZhbHVlLCJyZWFkIik7Yj1YbyhjKTtyZXR1cm4gYn1EUy5wdWJsaWNOYW1lPSJpc0NvbnNlbnRHcmFudGVkIjtmdW5jdGlvbiBFUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1FUy5QPSJpbnRlcm5hbC5pc0RlYnVnTW9kZSI7ZnVuY3Rpb24gRlMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9RlMuUD0iaW50ZXJuYWwuaXNEZXN0aW5hdGlvbkluaXRpYWxpemVkIjtmdW5jdGlvbiBHUygpe3JldHVybiBCbSgpfUdTLlA9ImludGVybmFsLmlzRG1hUmVnaW9uIjtmdW5jdGlvbiBIUygpe3JldHVybiBVQigpfUhTLlA9ImludGVybmFsLmlzRG9tUmVhZHkiO2Z1bmN0aW9uIElTKGEpe3ZhciBiPSExO3JldHVybiBifUlTLlA9ImludGVybmFsLmlzRW50aXR5SW5mcmFzdHJ1Y3R1cmUiO2Z1bmN0aW9uIEpTKGEpe3ZhciBiPSExO2lmKCFxaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIl0sW2FdKTtiPU0oYSk7cmV0dXJuIGJ9SlMuUD0iaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCI7ZnVuY3Rpb24gS1MoKXt2YXIgYT0hMTthPUlmKDQ3KTtyZXR1cm4gYX1LUy5QPSJpbnRlcm5hbC5pc0ZwZmUiO2Z1bmN0aW9uIExTKCl7dmFyIGE9ITE7cmV0dXJuIGF9TFMuUD0iaW50ZXJuYWwuaXNHY3BCcm93c2VyIjtmdW5jdGlvbiBNUygpe3ZhciBhPSExO3JldHVybiBhfU1TLlA9ImludGVybmFsLmlzTGFuZGluZ1BhZ2UiO2Z1bmN0aW9uIE5TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TlMuUD0iaW50ZXJuYWwuaXNPZ3QiO2Z1bmN0aW9uIE9TKCl7dmFyIGE7cmV0dXJuIGF9T1MuUD0iaW50ZXJuYWwuaXNTYWZhcmlQY21FbGlnaWJsZUJyb3dzZXIiO2Z1bmN0aW9uIFBTKCl7dmFyIGE9UWgoZnVuY3Rpb24oYil7WEYodGhpcykubG9nKCJlcnJvciIsYil9KTthLnB1YmxpY05hbWU9IkpTT04iO3JldHVybiBhfTtmdW5jdGlvbiBRUyhhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIpfVFTLlA9ImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIjtmdW5jdGlvbiBSUygpe3JldHVybiExfQp2YXIgU1M9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe3JldHVybiExfSxyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe319O2Z1bmN0aW9uIFRTKCl7fVRTLnB1YmxpY05hbWU9ImxvZ1RvQ29uc29sZSI7ZnVuY3Rpb24gVVMoYSxiKXt9VVMuUD0iaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciO2Z1bmN0aW9uIFZTKGEsYixjKXtjPWM9PT12b2lkIDA/ITA6Yzt2YXIgZD1bXTtyZXR1cm4gVWQoZCl9VlMuUD0iaW50ZXJuYWwucGFyc2VDb29raWVWYWx1ZXNGcm9tU3RyaW5nIjtmdW5jdGlvbiBXUyhhKXt2YXIgYj12b2lkIDA7CnJldHVybiBifVdTLnB1YmxpY05hbWU9InBhcnNlVXJsIjtmdW5jdGlvbiBYUyhhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKSxjPXt9O0VkKGIuTS5FYSxjKTtiSShiLGMpO3ZhciBkPXt9O2NJKGIsZCk7ZFtILkouQm5dPSEwO3ZhciBlPXtldmVudE1ldGFkYXRhOmR9LGY9Yi5NLmV2ZW50SWQsZz1zQyhiLnRhcmdldC5kZXN0aW5hdGlvbklkLGIuZXZlbnROYW1lLGMpO21EKGcsZixlKTt9WFMuUD0iaW50ZXJuYWwucHJvY2Vzc0FzTmV3RXZlbnQiO2Z1bmN0aW9uIFlTKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1ZUy5QPSJpbnRlcm5hbC5wdXNoVG9EYXRhTGF5ZXIiO2Z1bmN0aW9uIFpTKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPSExO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtmb3IodmFyIGQ9W3RoaXMsYV0sZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQucHVzaChUZChmLnZhbHVlLHRoaXMuVCwxKSk7dHJ5e0wuYXBwbHkobnVsbCxkKSxjPSEwfWNhdGNoKGcpe3JldHVybiExfXJldHVybiBjfVpTLnB1YmxpY05hbWU9InF1ZXJ5UGVybWlzc2lvbiI7ZnVuY3Rpb24gJFMoYSl7dmFyIGI9dGhpczt9JFMuUD0iaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iO2Z1bmN0aW9uIGFUKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn1hVC5wdWJsaWNOYW1lPSJyZWFkQW5hbHl0aWNzU3RvcmFnZSI7ZnVuY3Rpb24gYlQoKXt2YXIgYT0iIjtyZXR1cm4gYX1iVC5wdWJsaWNOYW1lPSJyZWFkQ2hhcmFjdGVyU2V0IjtmdW5jdGlvbiBjVCgpe3JldHVybiBFKDE5KX1jVC5QPSJpbnRlcm5hbC5yZWFkRGF0YUxheWVyTmFtZSI7ZnVuY3Rpb24gZFQoKXt2YXIgYT0iIjtyZXR1cm4gYX1kVC5wdWJsaWNOYW1lPSJyZWFkVGl0bGUiO2Z1bmN0aW9uIGVUKGEsYil7dmFyIGM9dGhpcztpZighbGgoYSl8fCFoaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iXSxhcmd1bWVudHMpO0xNKGEsZnVuY3Rpb24oZCl7Yi5pbnZva2UoYy5ULFVkKGQsYy5ULDEpKX0pO31lVC5QPSJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIjtmdW5jdGlvbiBmVChhLGIpe2lmKCFsaChhKXx8IWVoKGIpJiYhZ2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKEJoKFhGKHRoaXMpLlBiKCkpKXJldHVybiExO3ZhciBjLGQsZT1iQyhhLCEwKTtpZighZSlyZXR1cm4hMTtzd2l0Y2goZS5wcmVmaXgpe2Nhc2UgIkFXIjpjPXROO2Q9Y28uaWEuY2I7YnJlYWs7Y2FzZSAiREMiOmM9SU47ZD1jby5pYS5jYjticmVhaztjYXNlICJHRiI6Yz1OTjtkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIkhBIjpjPVBOO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiVUEiOmM9Zk87ZD1jby5pYS5nZDticmVhaztjYXNlICJNQyI6Yz1pUyhlKTtkPWNvLmlhLnhkO2JyZWFrO2Nhc2UgIkciOnJldHVybiBoUyhhKSwhMDtkZWZhdWx0OnJldHVybiExfXZhciBmPWEsCmc9YyxoPWQsbD1UZChiLHRoaXMuVCwxKSxuPVlDKCkscD1iQyhmLCEwKTtwJiZuLkgucmVnaXN0ZXIocCxnLGgsbCk7cmV0dXJuITB9ZlQuUD0iaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiI7dmFyIGdUPVsiZXZlbnQiXTtmdW5jdGlvbiBoVChhLGIsYyl7fWhULlA9ImludGVybmFsLnJlZ2lzdGVyR3RhZ0NvbW1hbmRMaXN0ZW5lciI7ZnVuY3Rpb24gaVQoYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31pVC5QPSJpbnRlcm5hbC5yZW1vdmVEYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBqVChhLGIpe30KalQuUD0iaW50ZXJuYWwucmVtb3ZlRm9ybURhdGEiO2Z1bmN0aW9uIGtUKCl7fWtULnB1YmxpY05hbWU9InJlc2V0RGF0YUxheWVyIjtmdW5jdGlvbiBsVChhLGIsYyl7dmFyIGQ9dm9pZCAwO3JldHVybiBkfWxULlA9ImludGVybmFsLnNjcnViVXJsUGFyYW1zIjtmdW5jdGlvbiBtVChhKXt9bVQuUD0iaW50ZXJuYWwuc2VuZEFkc0hpdCI7ZnVuY3Rpb24gblQoYSxiLGMsZCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyfHwhZmgoZCl8fCFmaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiYW55IiwiYW55IiwiT2JqZWN0fHVuZGVmaW5lZCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBlPWM/VGQoYyx0aGlzLlQsMSk6e30sZj1UZChhKSxnPUFycmF5LmlzQXJyYXkoZik/ZjpbZl07Yj1TdHJpbmcoYik7dmFyIGg9ZD9UZChkKTp7fSxsPVhGKHRoaXMpO2gub3JpZ2luYXRpbmdFbnRpdHk9dEcobCk7bC5wcmlvcml0eVF1ZXVlJiYoaC5wcmlvcml0eVF1ZXVlPWwucHJpb3JpdHlRdWV1ZSk7Zm9yKHZhciBuPTA7bjxnLmxlbmd0aDtuKyspe3ZhciBwPWdbbl07aWYodHlwZW9mIHA9PT0ic3RyaW5nIil7dmFyIHE9e307RWQoZSxxKTt2YXIgcj17fTtFZChoLHIpO3ZhciB0PXNDKHAsYixxKTttRCh0LApoLmV2ZW50SWR8fGwuZXZlbnRJZCxyKX19fW5ULlA9ImludGVybmFsLnNlbmRHdGFnRXZlbnQiO2Z1bmN0aW9uIG9UKGEsYixjKXt9b1QucHVibGljTmFtZT0ic2VuZFBpeGVsIjtmdW5jdGlvbiBwVChhLGIpe31wVC5QPSJpbnRlcm5hbC5zZXRBbmNob3JIcmVmIjtmdW5jdGlvbiBxVChhKXt9cVQuUD0iaW50ZXJuYWwuc2V0Q29udGFpbmVyQ29uc2VudERlZmF1bHRzIjtmdW5jdGlvbiByVChhLGIsYyxkKXt2YXIgZT10aGlzO2Q9ZD09PXZvaWQgMD8hMDpkO3ZhciBmPSExOwpyZXR1cm4gZn1yVC5wdWJsaWNOYW1lPSJzZXRDb29raWUiO2Z1bmN0aW9uIHNUKGEpe31zVC5QPSJpbnRlcm5hbC5zZXRDb3JlUGxhdGZvcm1TZXJ2aWNlcyI7ZnVuY3Rpb24gdFQoYSxiKXt9dFQuUD0iaW50ZXJuYWwuc2V0RGF0YUxheWVyVmFsdWUiO2Z1bmN0aW9uIHVUKGEpe311VC5wdWJsaWNOYW1lPSJzZXREZWZhdWx0Q29uc2VudFN0YXRlIjtmdW5jdGlvbiB2VChhLGIpe312VC5QPSJpbnRlcm5hbC5zZXREZWxlZ2F0ZWRDb25zZW50VHlwZSI7ZnVuY3Rpb24gd1QoYSxiKXt9d1QuUD0iaW50ZXJuYWwuc2V0Rm9ybUFjdGlvbiI7ZnVuY3Rpb24geFQoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lmKCFsaChhKXx8IW9oKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJhbnkiLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoIWttKGEpKXRocm93IEVycm9yKCJzZXRJbkNyb3NzQ29udGFpbmVyRGF0YSByZXF1aXJlcyB2YWxpZCBDcm9zc0NvbnRhaW5lclNjaGVtYSBrZXkuIik7KGN8fG5tKGEpPT09dm9pZCAwKSYmbW0oYSxUZChiLHRoaXMuVCwxKSk7fXhULlA9ImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiB5VChhLGIsYyl7cmV0dXJuITF9eVQucHVibGljTmFtZT0ic2V0SW5XaW5kb3ciO2Z1bmN0aW9uIHpUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9JEgoYSl8fHt9O2RbYl09VGQoYyx0aGlzLlQpO3ZhciBlPWEsZj1aSDtmLkt8fFlIKGYpO2Yuc2V0dGluZ3NbZV09ZDt9elQuUD0iaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBBVChhLGIsYyl7aWYoIWxoKGEpfHwhbGgoYil8fGFyZ3VtZW50cy5sZW5ndGghPT0zKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1lRChhKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7aWYoZVtkW2ZdXT09PXZvaWQgMCllW2RbZl1dPXt9O2Vsc2UgaWYoIUNkKGVbZFtmXV0pKXRocm93IEVycm9yKCJzZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIgZmFpbGVkLCBwYXRoIGNvbnRhaW5zIGEgbm9uLW9iamVjdCB0eXBlOiAiK2RbZl0pO2U9ZVtkW2ZdXX1lW2RbZl1dPVRkKGMsdGhpcy5ULDEpO31BVC5QPSJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIEJUKGEsYil7fQpCVC5QPSJpbnRlcm5hbC5zZXRUcmFuc21pc3Npb25Nb2RlIjtmdW5jdGlvbiBDVChhLGIsYyxkKXt2YXIgZT10aGlzO31DVC5wdWJsaWNOYW1lPSJzaGEyNTYiO2Z1bmN0aW9uIERUKGEsYixjKXt9CkRULlA9ImludGVybmFsLnNvcnRSZW1vdGVDb25maWdQYXJhbWV0ZXJzIjtmdW5jdGlvbiBFVChhKXt9RVQuUD0iaW50ZXJuYWwuc3RvcmVBZHNCcmFpZExhYmVscyI7ZnVuY3Rpb24gRlQoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9RlQuUD0iaW50ZXJuYWwuc3Vic2NyaWJlVG9Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIEdUKGEpe31HVC5QPSJpbnRlcm5hbC50YXNrU2VuZEFkc0hpdHMiO3ZhciBIVD17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXSYmKGI9ZFtjXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSk/ZFtjXVsiZ3RtLiIrYV06bnVsbCk7cmV0dXJuIGJ9LHNldEl0ZW06ZnVuY3Rpb24oYSxiKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY109ZFtjXXx8e307ZFtjXVsiZ3RtLiIrYV09Yjt9LApyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYj1YRih0aGlzKS5QYigpLGM9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoIWNbYl18fCFjW2JdLmhhc093blByb3BlcnR5KCJndG0uIithKSlyZXR1cm47ZGVsZXRlIGNbYl1bImd0bS4iK2FdO30sY2xlYXI6ZnVuY3Rpb24oKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGE9WEYodGhpcykuUGIoKTtkZWxldGUgYWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSlbYV07fSwKcHVibGljTmFtZToidGVtcGxhdGVTdG9yYWdlIn07ZnVuY3Rpb24gSVQoYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31JVC5QPSJpbnRlcm5hbC50ZXN0UmVnZXgiO2Z1bmN0aW9uIEpUKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBLVChhLGIpe2lmKCFsaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJudW1iZXIiXSxhcmd1bWVudHMpO3NiKGEsYik7fUtULlA9ImludGVybmFsLnRyYWNrVXNhZ2UiO2Z1bmN0aW9uIExUKGEsYil7dmFyIGM7cmV0dXJuIGN9TFQuUD0iaW50ZXJuYWwudW5zdWJzY3JpYmVGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBNVChhKXt9TVQucHVibGljTmFtZT0idXBkYXRlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBOVChhKXt2YXIgYj0hMTtyZXR1cm4gYn1OVC5QPSJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiI7dmFyIE9UPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBhaX0sUVQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGI7dmFyIGM9UFQuSDtpZihjLmNvbnRhaW5zKGEpKWI9Yy5nZXQoYSx0aGlzKTtlbHNle3ZhciBkO2lmKGQ9Yy5ILmhhc093blByb3BlcnR5KGEpKXt2YXIgZT10aGlzLlQueGIoKTtpZihlKXt2YXIgZj0hMSxnPWUuUGIoKTtpZihnKXtCaChnKXx8KGY9ITApO31kPWZ9ZWxzZSBkPSEwfWlmKGQpe3ZhciBoPWMuSC5oYXNPd25Qcm9wZXJ0eShhKT9jLkhbYV06dm9pZCAwO2I9aH1lbHNlIHRocm93IEVycm9yKGErIiBpcyBub3QgYSB2YWxpZCBBUEkgbmFtZS4iKTt9cmV0dXJuIGJ9fSxQVDtmdW5jdGlvbiBSVChhLGIsYyl7UFR8fChQVD1uZXcgT1QpO1BULkguYWRkKGEsYixjKX1mdW5jdGlvbiBTVChhLGIpe1BUfHwoUFQ9bmV3IE9UKTt2YXIgYz1QVC5IO2lmKGMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZihjLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2l0aCBhbiBleGlzdGluZyBBUEkgbmFtZTogIithKyIuIik7Yy5IW2FdPXliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gVFQoYSxiKXtmdW5jdGlvbiBjKGQpe2lmKCFlaChkKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgZT1UZChkLHRoaXMuVCwxKS5yYigpO2EoZSl9Yy5QPSJpbnRlcm5hbC4iK2I7cmV0dXJuIGN9O2Z1bmN0aW9uIFVUKCl7dmFyIGE9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgU1QoYy5QLGMpfSxiPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFJUKGMucHVibGljTmFtZSxjKX07YihSRik7YihZRik7YihSRyk7YihURyk7YihVRyk7YihkSCk7YihmSCk7YihoSSk7YihQUygpKTtiKGpJKTtiKE9PKTtiKFBPKTtiKGxQKTtiKG1QKTtiKG5QKTtiKHVQKTtiKHZQKTtiKHJTKTtiKHVTKTtiKEJTKTtiKERTKTtiKFRTKTtiKFdTKTtiKFpTKTtiKGFUKTtiKGJUKTtiKGRUKTtiKG9UKTtiKHJUKTtiKHVUKTtiKHlUKTtiKENUKTtiKEhUKTtiKE1UKTtSVCgiTWF0aCIsemgoKSk7UlQoIk9iamVjdCIsWmgpO1JUKCJUZXN0SGVscGVyIixjaSgpKTtSVCgiYXNzZXJ0QXBpIix3aCk7UlQoImFzc2VydFRoYXQiLHhoKTtSVCgiZGVjb2RlVXJpIixDaCk7UlQoImRlY29kZVVyaUNvbXBvbmVudCIsRGgpO1JUKCJlbmNvZGVVcmkiLEVoKTtSVCgiZW5jb2RlVXJpQ29tcG9uZW50IixGaCk7UlQoImZhaWwiLApMaCk7UlQoImdlbmVyYXRlUmFuZG9tIixOaCk7UlQoImdldFRpbWVzdGFtcCIsT2gpO1JUKCJnZXRUaW1lc3RhbXBNaWxsaXMiLE9oKTtSVCgiZ2V0VHlwZSIsUGgpO1JUKCJtYWtlSW50ZWdlciIsUmgpO1JUKCJtYWtlTnVtYmVyIixTaCk7UlQoIm1ha2VTdHJpbmciLFRoKTtSVCgibWFrZVRhYmxlTWFwIixVaCk7UlQoIm1vY2siLFhoKTtSVCgibW9ja09iamVjdCIsWWgpO1JUKCJmcm9tQmFzZTY0IixITywhKCJhdG9iImluIEEpKTtSVCgibG9jYWxTdG9yYWdlIixTUywhUlMoKSk7UlQoInRvQmFzZTY0IixKVCwhKCJidG9hImluIEEpKTthKFFGKTthKFVGKTthKG5HKTthKHNHKTthKElHKTthKFBHKTthKFNHKTthKFZHKTthKFdHKTthKFpHKTthKCRHKTthKGFIKTthKGJIKTthKGNIKTthKGVIKTthKGdIKTthKGdJKTthKGlJKTthKGtJKTthKGxJKTthKG1JKTthKG5JKTthKG9JKTthKGZKKTthKG1KKTthKHRKKTthKHVKKTthKEFKKTthKEZKKTthKEtKKTthKFJKKTthKFdKKTthKGdLKTsKYShpSyk7YSh2Syk7YSh3Syk7YSh4Syk7YShGTyk7YShHTyk7YShJTyk7YShKTyk7YShLTyk7YShMTyk7YShNTyk7YShOTyk7YShRTyk7YShSTyk7YShTTyk7YShUTyk7YShVTyk7YShWTyk7YShXTyk7YShYTyk7YShZTyk7YShaTyk7YSgkTyk7YShhUCk7YShiUCk7YShjUCk7YShkUCk7YShlUCk7YShmUCk7YShnUCk7YShoUCk7YShpUCk7YShqUCk7YShrUCk7YShvUCk7YShwUCk7YShxUCk7YShyUCk7YShzUCk7YSh0UCk7YSh3UCk7YShvUyk7YShwUyk7YSh0Uyk7YSh2Uyk7YShDUyk7YShFUyk7YShGUyk7YShHUyk7YShIUyk7YShJUyk7YShKUyk7YShLUyk7YShMUyk7YShNUyk7YShOUyk7YShPUyk7YShRUyk7YShHRyk7YShVUyk7YShWUyk7YShYUyk7YShZUyk7YSgkUyk7YShjVCk7YShlVCk7YShmVCk7YShoVCk7YShpVCk7YShqVCk7YShsVCk7YShtVCk7YShuVCk7YShwVCk7YShxVCk7YShzVCk7YSh0VCk7YSh2VCk7YSh3VCk7YSh4VCk7YSh6VCk7YShBVCk7YShCVCk7YShEVCk7CmEoRVQpO2EoRlQpO2EoR1QpO2EoSVQpO2EoS1QpO2EoTFQpO2EoTlQpO1NUKCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIixzUygpKTtTVCgiaW50ZXJuYWwucXVpY2tIYXNoIixNaCk7YShUVChNRiwidGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiKSksYShUVChQRiwidGFza1NldFVuaXZlcnNhbFBhcmFtcyIpKTthKFRUKExGLCJ0YXNrQWRkQWRzQ2xpY2tJZHMiKSk7UFR8fChQVD1uZXcgT1QpO3JldHVybiBRVCgpfTt2YXIgSkY7ZnVuY3Rpb24gVlQoKXtKRi5zZChmdW5jdGlvbihhLGIsYyl7bGooKTt2YXIgZD1qajtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT1kLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRXx8MDtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRSsrO3RyeXtyZXR1cm4gYS5hcHBseShiLGMpfWZpbmFsbHl7bGooKSxqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUtLX19KX1mdW5jdGlvbiBXVChhKXtpZihhJiZhLmxlbmd0aClmb3IodmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXS5yZXBsYWNlKC9eXyovLCIiKTtiW2RdPVsic2FuZGJveGVkU2NyaXB0cyJdfX0KZnVuY3Rpb24gWFQoYSl7aWYoYSl7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO0diKGEsZnVuY3Rpb24oYyxkKXtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9ZFtlXS5yZXBsYWNlKC9eXyovLCIiKTtiW2ZdPWJbZl18fFtdO2JbZl0ucHVzaChjKX19KX19O2Z1bmN0aW9uIFpUKGEpe21EKHBDKCJkZXZlbG9wZXJfaWQuIithLCEwKSwwLHt9KX07ZnVuY3Rpb24gJFQoYSxiKXtyZXR1cm4gRWQoYSxifHxudWxsKX1mdW5jdGlvbiBZKGEpe3JldHVybiB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGEpfWZ1bmN0aW9uIGFVKGEpe1pjKGEsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYlUoYSl7dmFyIGI9WyJ2ZWludGVyYWN0aXZlLmNvbSIsInZlLWludGVyYWN0aXZlLmNuIl07aWYoIWEpcmV0dXJuITE7dmFyIGM9TGooUmooYSksImhvc3QiKTtpZighYylyZXR1cm4hMTtmb3IodmFyIGQ9MDtiJiZkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSYmYltkXS50b0xvd2VyQ2FzZSgpO2lmKGUpe3ZhciBmPWMubGVuZ3RoLWUubGVuZ3RoO2Y+MCYmZS5jaGFyQXQoMCkhPT0iLiImJihmLS0sZT0iLiIrZSk7aWYoZj49MCYmYy5pbmRleE9mKGUsZik9PT1mKXJldHVybiEwfX1yZXR1cm4hMX0KZnVuY3Rpb24gY1UoYSxiLGMpe2Zvcih2YXIgZD17fSxlPSExLGY9MDthJiZmPGEubGVuZ3RoO2YrKylhW2ZdJiZhW2ZdLmhhc093blByb3BlcnR5KGIpJiZhW2ZdLmhhc093blByb3BlcnR5KGMpJiYoZFthW2ZdW2JdXT1hW2ZdW2NdLGU9ITApO3JldHVybiBlP2Q6bnVsbH1mdW5jdGlvbiBkVShhLGIpe3ZhciBjPXt9O2lmKGEpZm9yKHZhciBkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YVtkXSk7aWYoYil7dmFyIGU9Y1UoYiwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiKTtlJiYoYz0kVChlLGMpKX1yZXR1cm4gY31mdW5jdGlvbiBlVShhLGIsYyl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1jP2I6YX1mdW5jdGlvbiBmVShhLGIsYyl7cmV0dXJuIFVjKGEsYixjLHZvaWQgMCl9ZnVuY3Rpb24gZ1UoYSxiKXtBW2FdPWJ9ZnVuY3Rpb24gaFUoYSxiLGMpe3ZhciBkPUE7YiYmKGRbYV09PT12b2lkIDB8fGMmJiFkW2FdKSYmKGRbYV09Yik7cmV0dXJuIGRbYV19dmFyIGlVPXt9LGpVPVguVjt2YXIgWj17c2VjdXJpdHlHcm91cHM6e319OwoKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1bImdvb2dsZSJdLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLk89ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIixaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UucHJpb3JpdHlPdmVycmlkZT0wLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc0luZnJhc3RydWN0dXJlPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNSJdPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNiJdPSExOwoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZXZlbnRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntrZXk6Y319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2V2ZW50X2RhdGE9YjtaLl9fcmVhZF9ldmVudF9kYXRhLk89InJlYWRfZXZlbnRfZGF0YSI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2V2ZW50X2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI1Il09ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfZXZlbnREYXRhQWNjZXNzLGQ9Yi52dHBfa2V5UGF0dGVybnN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZihnIT1udWxsJiYhemIoZykpdGhyb3cgZShmLHtrZXk6Z30sIktleSBtdXN0IGJlIGEgc3RyaW5nLiIpOwppZihjIT09ImFueSIpe3RyeXtpZihjPT09InNwZWNpZmljIiYmZyE9bnVsbCYmRWcoZyxkKSlyZXR1cm59Y2F0Y2goaCl7dGhyb3cgZShmLHtrZXk6Z30sIkludmFsaWQga2V5IGZpbHRlci4iKTt9dGhyb3cgZShmLHtrZXk6Z30sIlByb2hpYml0ZWQgcmVhZCBmcm9tIGV2ZW50IGRhdGEuIik7fX0sYWE6YX19KX0oKTsKCgoKCgoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1iO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLk89ImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntvcHRpb25zOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cz1iO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLk89ImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dXYWl0Rm9yVGFncyxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjsKcmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLGYpe2lmKCFjJiZmJiZmLndhaXRGb3JUYWdzKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb24gd2FpdEZvclRhZ3MuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfY29udGFpbmVyX2RhdGE9WyJnb29nbGUiXSxaLl9fcmVhZF9jb250YWluZXJfZGF0YT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGEuTz0icmVhZF9jb250YWluZXJfZGF0YSIsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNSJdPSExLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhWyI2Il09ITE7Clouc2VjdXJpdHlHcm91cHMubGlzdGVuX2RhdGFfbGF5ZXI9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57ZXZlbnROYW1lOmN9fShmdW5jdGlvbihiKXtaLl9fbGlzdGVuX2RhdGFfbGF5ZXI9YjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuTz0ibGlzdGVuX2RhdGFfbGF5ZXIiO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19saXN0ZW5fZGF0YV9sYXllci5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyWyI1Il09ITE7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hY2Nlc3NUeXBlLGQ9Yi52dHBfYWxsb3dlZEV2ZW50c3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse2V2ZW50TmFtZTpnfSwKIkV2ZW50IG5hbWUgbXVzdCBiZSBhIHN0cmluZy4iKTtpZighKGM9PT0iYW55Inx8Yz09PSJzcGVjaWZpYyImJmQuaW5kZXhPZihnKT49MCkpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sIlByb2hpYml0ZWQgbGlzdGVuIG9uIGRhdGEgbGF5ZXIgZXZlbnQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGE9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57ZGF0YVNvdXJjZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGE9YjtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5PPSJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIjtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI1Il09ITE7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGFbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsCmUpe2lmKGUhPT0iYXV0byImJmUhPT0ibWFudWFsIiYmZSE9PSJjb2RlIil0aHJvdyBjKGQse30sIlVua25vd24gdXNlciBwcm92aWRlZCBkYXRhIHNvdXJjZS4iKTtpZihiLnZ0cF9saW1pdERhdGFTb3VyY2VzKWlmKGUhPT0iYXV0byJ8fGIudnRwX2FsbG93QXV0b0RhdGFTb3VyY2VzKXtpZihlPT09Im1hbnVhbCImJiFiLnZ0cF9hbGxvd01hbnVhbERhdGFTb3VyY2VzKXRocm93IGMoZCx7fSwiRGV0ZWN0aW9uIG9mIHVzZXIgcHJvdmlkZWQgZGF0YSB2aWEgbWFudWFsbHkgc3BlY2lmaWVkIENTUyBzZWxlY3RvcnMgaXMgbm90IGFsbG93ZWQuIik7aWYoZT09PSJjb2RlIiYmIWIudnRwX2FsbG93Q29kZURhdGFTb3VyY2VzKXRocm93IGMoZCx7fSwiRGV0ZWN0aW9uIG9mIHVzZXIgcHJvdmlkZWQgZGF0YSBmcm9tIGFuIGluLXBhZ2UgdmFyaWFibGUgaXMgbm90IGFsbG93ZWQuIik7fWVsc2UgdGhyb3cgYyhkLHt9LCJBdXRvbWF0aWMgZGV0ZWN0aW9uIG9mIHVzZXIgcHJvdmlkZWQgZGF0YSBpcyBub3QgYWxsb3dlZC4iKTsKfSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmdldF91cmw9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybntjb21wb25lbnQ6YyxxdWVyeUtleTpkfX0oZnVuY3Rpb24oYil7Wi5fX2dldF91cmw9YjtaLl9fZ2V0X3VybC5PPSJnZXRfdXJsIjtaLl9fZ2V0X3VybC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19nZXRfdXJsLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZ2V0X3VybC5pc0luZnJhc3RydWN0dXJlPSExO1ouX19nZXRfdXJsWyI1Il09ITE7Wi5fX2dldF91cmxbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX3VybFBhcnRzPT09ImFueSI/bnVsbDpbXTtjJiYoYi52dHBfcHJvdG9jb2wmJmMucHVzaCgicHJvdG9jb2wiKSxiLnZ0cF9ob3N0JiZjLnB1c2goImhvc3QiKSxiLnZ0cF9wb3J0JiZjLnB1c2goInBvcnQiKSxiLnZ0cF9wYXRoJiZjLnB1c2goInBhdGgiKSxiLnZ0cF9leHRlbnNpb24mJmMucHVzaCgiZXh0ZW5zaW9uIiksYi52dHBfcXVlcnkmJgpjLnB1c2goInF1ZXJ5IiksYi52dHBfZnJhZ21lbnQmJmMucHVzaCgiZnJhZ21lbnQiKSk7dmFyIGQ9YyYmYi52dHBfcXVlcmllc0FsbG93ZWQhPT0iYW55Ij9iLnZ0cF9xdWVyeUtleXN8fFtdOm51bGwsZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCl7aWYoZyl7aWYoIXpiKGcpKXRocm93IGUoZix7fSwiVVJMIGNvbXBvbmVudCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGMmJmMuaW5kZXhPZihnKTwwKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBVUkwgY29tcG9uZW50OiAiK2cpO2lmKGc9PT0icXVlcnkiJiZkKXtpZighaCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgcXVlcnkgd2hlbiBxdWVyeSBrZXlzIGFyZSBzcGVjaWZpZWQuIik7aWYoIXpiKGgpKXRocm93IGUoZix7fSwiUXVlcnkga2V5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoZC5pbmRleE9mKGgpPDApdGhyb3cgZShmLHt9LAoiUHJvaGliaXRlZCBxdWVyeSBrZXk6ICIraCk7fX1lbHNlIGlmKGMpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHdoZW4gY29tcG9uZW50cyBhcmUgc3BlY2lmaWVkLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfY29uc2VudD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7dmFyIGU9e2NvbnNlbnRUeXBlOmMscmVhZDohMSx3cml0ZTohMX07c3dpdGNoKGQpe2Nhc2UgInJlYWQiOmUucmVhZD0hMDticmVhaztjYXNlICJ3cml0ZSI6ZS53cml0ZT0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJJbnZhbGlkICIrYisiIHJlcXVlc3QgIitkKTt9cmV0dXJuIGV9KGZ1bmN0aW9uKGIpe1ouX19hY2Nlc3NfY29uc2VudD1iO1ouX19hY2Nlc3NfY29uc2VudC5PPSJhY2Nlc3NfY29uc2VudCI7Wi5fX2FjY2Vzc19jb25zZW50LmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2FjY2Vzc19jb25zZW50LnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fYWNjZXNzX2NvbnNlbnQuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fYWNjZXNzX2NvbnNlbnRbIjUiXT0hMTtaLl9fYWNjZXNzX2NvbnNlbnRbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz0KYi52dHBfY29uc2VudFR5cGVzfHxbXSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcixlPVtdLGY9W10sZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgaD1jW2ddLGw9aC5jb25zZW50VHlwZTtoLnJlYWQmJmUucHVzaChsKTtoLndyaXRlJiZmLnB1c2gobCl9cmV0dXJue2Fzc2VydDpmdW5jdGlvbihuLHAscSl7aWYoIXpiKHApKXRocm93IGQobix7fSwiQ29uc2VudCB0eXBlIG11c3QgYmUgYSBzdHJpbmcuIik7aWYocT09PSJyZWFkIil7aWYoZS5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIGlmKHE9PT0id3JpdGUiKXtpZihmLmluZGV4T2YocCk+LTEpcmV0dXJufWVsc2UgdGhyb3cgZChuLHt9LCJBY2Nlc3MgdHlwZSBtdXN0IGJlIGVpdGhlciAncmVhZCcsIG9yICd3cml0ZScsIHdhcyAiK3EpO3Rocm93IGQobix7fSwiUHJvaGliaXRlZCAiK3ErIiBvbiBjb25zZW50IHR5cGU6ICIrcCsiLiIpO30sYWE6YX19KX0oKTsKCgoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2RvbV9lbGVtZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue3R5cGU6Yyx2YWx1ZTpkfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzPWI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLk89InJlYWRfZG9tX2VsZW1lbnRzIjtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9kb21fZWxlbWVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19yZWFkX2RvbV9lbGVtZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2RvbV9lbGVtZW50c1siNSJdPSExO1ouX19yZWFkX2RvbV9lbGVtZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dlZEVsZW1lbnRJZHN8fCJub25lIixkPWIudnRwX2FsbG93ZWRDc3NTZWxlY3RvcnN8fCJub25lIixlPWIudnRwX2VsZW1lbnRJZHN8fFtdLGY9Yi52dHBfY3NzU2VsZWN0b3JzfHxbXSxnPQpiLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihoLGwsbil7c3dpdGNoKGwpe2Nhc2UgImlkIjppZihjPT09Im5vbmUiKWJyZWFrO2lmKGM9PT0iYW55Inx8ZS5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztjYXNlICJjc3MiOmlmKGQ9PT0ibm9uZSIpYnJlYWs7aWYoZD09PSJhbnkifHxmLmluZGV4T2Yobik+LTEpcmV0dXJuO2JyZWFrO2RlZmF1bHQ6dGhyb3cgZyhoLHt9LCJVbmtub3duIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fXRocm93IGcoaCx7fSwiUHJvaGliaXRlZCBzZWxlY3RvciB2YWx1ZSAiK24rIiBmb3Igc2VsZWN0b3IgdHlwZSAiK2wrIi4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2NsaWNrX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue21hdGNoQ29tbW9uQnV0dG9uczpjLGNzc1NlbGVjdG9yOmR9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cz1iO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLk89ImRldGVjdF9jbGlja19ldmVudHMiO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9jbGlja19ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9jbGlja19ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCxlLGYpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT09CiJib29sZWFuIil0aHJvdyBjKGQse30sIm1hdGNoQ29tbW9uQnV0dG9ucyBtdXN0IGJlIGEgYm9vbGVhbi4iKTtpZihmIT09dm9pZCAwJiZ0eXBlb2YgZiE9PSJzdHJpbmciKXRocm93IGMoZCx7fSwiY3NzU2VsZWN0b3IgbXVzdCBiZSBhIHN0cmluZy4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHM9YjtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLk89ImRldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cyI7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSwKYWE6YX19KX0oKTsKZnVuY3Rpb24ga1UoKXt2YXIgYT17fSxiPXtkYXRhTGF5ZXI6dEEsY2FsbGJhY2s6ZnVuY3Rpb24oYyl7YS5oYXNPd25Qcm9wZXJ0eShjKSYmeWIoYVtjXSkmJmFbY10oKTtkZWxldGUgYVtjXX0sYm9vdHN0cmFwOjB9O3JldHVybiBifQpmdW5jdGlvbiBsVSgpe3ZhciBhPWtVKCk7b2ooYSk7Q2soKTtqQSgpO3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtRYihiLFouc2VjdXJpdHlHcm91cHMpO3ZhciBjPXlrKHprKCkpLGQsZT1jPT1udWxsP3ZvaWQgMDooZD1jLmNvbnRleHQpPT1udWxsP3ZvaWQgMDpkLnNvdXJjZTtLbChlLGM9PW51bGw/dm9pZCAwOmMucGFyZW50KTtlIT09MiYmZSE9PTQmJmUhPT0zfHxQKDE0Mik7cmV0dXJuIGF9ZnVuY3Rpb24gbVUoKXt2YXIgYT1FKDYwKTtpZihhKWZvcih2YXIgYj1hLnNwbGl0KCIuIiksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdLGU9VEw7ZCYmKGUuSFtkXT0hMCl9fQpmdW5jdGlvbiBuVSgpe3pwKCk7bGooKTtmb3IodmFyIGE9ZGF0YS5yZXNvdXJjZXx8e30sYj1jQSxjPWEubWFjcm9zfHxbXSxkPTA7ZDxjLmxlbmd0aDtkKyspYi5tYWNyb3MucHVzaChuZXcgVXooY1tkXSxkLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgZT1hLnRhZ3N8fFtdLGY9MDtmPGUubGVuZ3RoO2YrKyliLnRhZ3MucHVzaChuZXcgWXooZVtmXSxmLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgZz1hLnByZWRpY2F0ZXN8fFtdLGg9MDtoPGcubGVuZ3RoO2grKyliLnByZWRpY2F0ZXMucHVzaChuZXcgVnooZ1toXSxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGw9YS5ydWxlc3x8W10sbj0wO248bC5sZW5ndGg7bisrKWIucnVsZXMucHVzaChuZXcgV3oobFtuXSxuKSk7UXo9Wjt2YXIgcD1kYXRhLnBlcm1pc3Npb25zfHx7fSxxPVo7ZGc9bmV3IGdnKEUoNSkscCxxKTt2YXIgcj1kYXRhLnNhbmRib3hlZF9zY3JpcHRzLHQ9ZGF0YS5zZWN1cml0eV9ncm91cHMsdT1kYXRhLnJ1bnRpbWV8fApbXSx2PWRhdGEucnVudGltZV9saW5lcztKRj1uZXcgcGY7VlQoKTtQej1JRigpO3ZhciB4PUpGLHk9VVQoKSx6PW5ldyBMZCgicmVxdWlyZSIseSk7ei5aYSgpO3guSC5ILnNldCgicmVxdWlyZSIseik7ZGIuc2V0KCJyZXF1aXJlIix6KTtmb3IodmFyIEM9MDtDPHUubGVuZ3RoO0MrKyl7dmFyIEQ9dVtDXTtpZighQXJyYXkuaXNBcnJheShEKXx8RC5sZW5ndGg8Myl7aWYoRC5sZW5ndGg9PT0wKWNvbnRpbnVlO2JyZWFrfXYmJnZbQ10mJnZbQ10ubGVuZ3RoJiZQZihELHZbQ10pO3RyeXtKRi5leGVjdXRlKEQpfWNhdGNoKG9VKXt9fVdUKHIpO1hUKHQpO3ZhciBJPWxVKCk7aUYoKTt2bS5iaW5kKCk7aWYoIURqKWZvcih2YXIgRz1CbSgpP2VwKExmKDUpKTplcChMZig0KSksTj1tKFJvKSxTPU4ubmV4dCgpOyFTLmRvbmU7Uz1OLm5leHQoKSl7dmFyIFc9Uy52YWx1ZSxlYT1XLGphPUdbV10/ImdyYW50ZWQiOiJkZW5pZWQiO3RsKCkuaW1wbGljaXQoZWEsamEpfWhFLmJpbmQoKTtUQigpOwpPQigpO2ZuLk4mJihneigpLGZ6KEFGKSxnQSgpLGNCPW5ldyBiQixmeihpeiksT0MoKSxERnx8KERGPW5ldyBCRiksZkJ8fChmQj1uZXcgZUIpLEZGPW5ldyBFRik7aWYoZm4uSyl7REUuYmluZCgpO21DLmJpbmQoKTt3RS5iaW5kKCk7dmFyIGZhPUFrKCk7aWYoZmEpe3ZhciBzYTthOnt2YXIgZGEsbWE9KGRhPWZhLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkYS5zcmM7aWYobWEpe3ZhciBQYTt0cnl7dmFyIEZhO1BhPShGYT1yZCgpKT09bnVsbD92b2lkIDA6RmEuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKX1jYXRjaChvVSl7fWlmKFBhKXtmb3IodmFyIHFhPS0xLGliPW0oUGEpLFhiPWliLm5leHQoKTshWGIuZG9uZTtYYj1pYi5uZXh0KCkpe3ZhciBMYz1YYi52YWx1ZTtpZihMYy5pbml0aWF0b3JUeXBlPT09CiJzY3JpcHQiJiYocWErPTEsTGMubmFtZS5yZXBsYWNlKE5FLCIiKT09PW1hLnJlcGxhY2UoTkUsIiIpKSl7c2E9cWE7YnJlYWsgYX19UCgxNDYpfWVsc2UgUCgxNDUpfXNhPXZvaWQgMH12YXIgUWQ9c2E7UWQhPT12b2lkIDAmJihmYS5jYW5vbmljYWxDb250YWluZXJJZCYmVW0oInJ0ZyIsU3RyaW5nKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkKSksVW0oInNsbyIsU3RyaW5nKFFkKSksVW0oImhsbyIsZmEuaHRtbExvYWRPcmRlcnx8Ii0xIiksVW0oImxzdCIsU3RyaW5nKGZhLmxvYWRTY3JpcHRUeXBlfHwiMCIpKSl9ZWxzZSBQKDE0NCk7dmFyIFljO3ZhciBEZD14aygpO2lmKERkKWlmKERkLmNhbm9uaWNhbENvbnRhaW5lcklkKVljPURkLmNhbm9uaWNhbENvbnRhaW5lcklkO2Vsc2V7dmFyIGpmLHZoPURkLnNjcmlwdENvbnRhaW5lcklkfHwoKGpmPURkLmRlc3RpbmF0aW9ucyk9PW51bGw/dm9pZCAwOmpmWzBdKTtZYz12aD8iXyIrdmg6dm9pZCAwfWVsc2UgWWM9dm9pZCAwO3ZhciBKRT0KWWM7SkUmJlVtKCJwY2lkIixKRSk7VW0oImJ0IixTdHJpbmcoSWYoNDcpPzI6SWYoNTApPzE6MCkpO1VtKCJjdCIsU3RyaW5nKElmKDQ3KT8wOklmKDUwKT8xOjMpKTtBRS5iaW5kKCk7Zm9yKHZhciBXcj1bXSxYcj1bXSxLRT1tKE9iamVjdC5rZXlzKEdFKSksWXI9S0UubmV4dCgpOyFZci5kb25lO1lyPUtFLm5leHQoKSl7dmFyIHJtPVlyLnZhbHVlO2lmKHdpbmRvdy5pc1NlY3VyZUNvbnRleHR8fCFJRVtybV0pe3ZhciBMRT1HRVtybV0oKTtpZih5YihMRSkpe3ZhciBNRT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChMRSk7VGIoTUUsInsgW25hdGl2ZSBjb2RlXSB9Iil8fFRiKE1FLCJ7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpfHxYci5wdXNoKHJtKX1lbHNlIFdyLnB1c2gocm0pfX1Xci5sZW5ndGg+MCYmVW0oImpzbSIsV3Iuam9pbigifiIpKTtYci5sZW5ndGg+MCYmVW0oImpzcCIsWHIuam9pbigifiIpKTtFeXx8KEV5PW5ldyBEeSl9aEYoKTtpbSgxKTtFRygpO3JldHVybiBJfQpmdW5jdGlvbiB1bSgpe3RyeXtpZighaGsoKSYmKElmKDQ3KXx8IU5rKCkpKXtJZig2NCkmJndqLkguSy5hZGQoMTE4NTE3OTE3KTt6aigpO2ZuLkgmJnN6KCk7V2ZbNV09ITA7dmFyIGE9a2ooImRlYnVnR3JvdXBJZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIqTWF0aC5yYW5kb20oKSkpfSk7U2woYSk7a3QoKTt6RigpO0Z0KCk7UEIoKTtpZihEaygpKXtFKDUpO0RHKCk7aUIoKS5yZW1vdmVFeHRlcm5hbFJlc3RyaWN0aW9ucyh2aygpKTt9ZWxzZXtGTS5SKCk7blUoKS5ib290c3RyYXA9TmIoKTtJZig1MSkmJnBFKCk7CmZuLkgmJnR6KCk7dHlwZW9mIEEubmFtZT09PSJzdHJpbmciJiZTYihBLm5hbWUsIndlYi1waXhlbC1zYW5kYm94LUNVU1RPTSIpJiZzZCgpP1pUKCJkTURnMFl6Iik6QS5TaG9waWZ5JiYoWlQoImROMlprTWoiKSxzZCgpJiZaVCgiZE5UVTBZeiIpKTttVSgpfX19Y2F0Y2goYil7aW0oNSksaHooKX19CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7bj1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcmVzZW50Iik7Z2wobikmJihsPWgueG0pfWZ1bmN0aW9uIGMoKXtsJiZLYz9nKGwpOmEoKX1pZighQVtFKDM3KV0pe3ZhciBkPSExO2lmKEIucmVmZXJyZXIpe3ZhciBlPVJqKEIucmVmZXJyZXIpO2Q9TmooZSwiaG9zdCIpPT09RSgzOCl9aWYoIWQpe3ZhciBmPWNxKEUoMzkpKTtkPSEoIWYubGVuZ3RofHwhZlswXS5sZW5ndGgpfWQmJihBW0UoMzcpXT0hMCxVYyhFKDQwKSkpfXZhciBnPWZ1bmN0aW9uKHUpe3ZhciB2PSJHVE0iLHg9IkdUTSI7SWYoNDUpJiYodj0iT0dUIix4PSJHVEFHIik7dmFyIHk9RSgyMyksej1BW3ldO3p8fCh6PVtdLEFbeV09eixVYygiaHR0cHM6Ly8iK0UoMykrIi9kZWJ1Zy9ib290c3RyYXA/aWQ9IitFKDUpKyImc3JjPSIreCsiJmNvbmQ9IitTdHJpbmcodSkrIiZndG09IitkdSgpKSk7dmFyIEM9e21lc3NhZ2VUeXBlOiJDT05UQUlORVJfU1RBUlRJTkciLApkYXRhOntzY3JpcHRTb3VyY2U6S2MsY29udGFpbmVyUHJvZHVjdDp2LGRlYnVnOiExLGlkOkUoNSksdGFyZ2V0UmVmOntjdGlkOkUoNSksaXNEZXN0aW5hdGlvbjpzaygpLGNhbm9uaWNhbElkOkUoNil9LGFsaWFzZXM6d2soKSxkZXN0aW5hdGlvbnM6dGsoKX19LEQ9Qy5kYXRhO0QucmVzdW1lPWZ1bmN0aW9uKCl7YSgpfTtELnJlc3VtZVdpdGhNZW1vcz1mdW5jdGlvbigpe3NsKDEpO2EoKX07SWYoMikmJihDLmRhdGEuaW5pdGlhbFB1Ymxpc2g9ITApO3oucHVzaChDKX0saD17R3E6MSxQbToyLG9uOjMsamw6NCx4bTo1fTtoW2guR3FdPSJHVE1fREVCVUdfTEVHQUNZX1BBUkFNIjtoW2guUG1dPSJHVE1fREVCVUdfUEFSQU0iO2hbaC5vbl09IlJFRkVSUkVSIjtoW2guamxdPSJDT09LSUUiO2hbaC54bV09IkVYVEVOU0lPTl9QQVJBTSI7dmFyIGw9dm9pZCAwLG49dm9pZCAwLHA9TGooQS5sb2NhdGlvbiwicXVlcnkiLCExLHZvaWQgMCwiZ3RtX2RlYnVnIik7Z2wocCkmJihsPWguUG0pOwppZighbCYmQi5yZWZlcnJlcil7dmFyIHE9UmooQi5yZWZlcnJlcik7TmoocSwiaG9zdCIpPT09RSgyNCkmJihsPWgub24pfWlmKCFsKXt2YXIgcj1jcSgiX19UQUdfQVNTSVNUQU5UIik7ci5sZW5ndGgmJnJbMF0ubGVuZ3RoJiYobD1oLmpsKX1sfHxiKCk7aWYoIWwmJmZsKG4pKXt2YXIgdD0hMTskYyhCLCJUQURlYnVnU2lnbmFsIixmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwhMSk7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LDIwMCl9ZWxzZSBjKCl9KShmdW5jdGlvbigpeyFJZig0Nyl8fHRtKClbIjAiXT91bSgpOnhtKCl9KTsKCn0pKCkKCg=="}},"time_used":99,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":47,"receive":52,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.871Z","timestamp":1785145403871,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-121f\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":4639,"size_decoded":1847,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4610)","md5":"a39e45502bab7e9e26723e6ab243e8f8","sha1":"ac62aacd5ee3e7b64ce6a92b5d8e3fb523e34d16","sha256":"d62a7b7ec5313469ebff5c006b9068dc44d6d1c122cf787ffa29a10113b34060","sha512":"79cde67b82bcdd7ef5fd09298a967e7f6ec1a5a82f7211b822c2926513290f2fe564d9f70d814ad3918998b2a637ccf0a03670114d3ea8e3b4a0108cf9ecae7f","ssdeep":"96:J0nkQGgI/0l+Z6t8wRQs90sS29rKklRR7wW05W0Y/G:G3ZsDwkHAlRVwZ4u","tlshash":"b1a1513e3640bb725e9744e9f4aeed65a93037b6600b8c309124ecd2b47ccd04676a9a","first_seen":"2023-03-07T01:02:38Z","last_seen":"2026-08-12T00:44:07.29533Z","times_seen":35725,"resource_available":true,"data":"LyogUGxhY2Vob2xkZXJzLmpzIHYzLjAuMiAqLwooZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlLHIpe3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXI/dC5hZGRFdmVudExpc3RlbmVyKGUsciwhMSk6dC5hdHRhY2hFdmVudD90LmF0dGFjaEV2ZW50KCJvbiIrZSxyKTp2b2lkIDB9ZnVuY3Rpb24gcih0LGUpe3ZhciByLG47Zm9yKHI9MCxuPXQubGVuZ3RoO24+cjtyKyspaWYodFtyXT09PWUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gbih0LGUpe3ZhciByO3QuY3JlYXRlVGV4dFJhbmdlPyhyPXQuY3JlYXRlVGV4dFJhbmdlKCksci5tb3ZlKCJjaGFyYWN0ZXIiLGUpLHIuc2VsZWN0KCkpOnQuc2VsZWN0aW9uU3RhcnQmJih0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZShlLGUpKX1mdW5jdGlvbiBhKHQsZSl7dHJ5e3JldHVybiB0LnR5cGU9ZSwhMH1jYXRjaChyKXtyZXR1cm4hMX19dC5QbGFjZWhvbGRlcnM9e1V0aWxzOnthZGRFdmVudExpc3RlbmVyOmUsaW5BcnJheTpyLG1vdmVDYXJldDpuLGNoYW5nZVR5cGU6YX19fSkodGhpcyksZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoKXt9ZnVuY3Rpb24gcigpe3RyeXtyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudH1jYXRjaCh0KXt9fWZ1bmN0aW9uIG4odCxlKXt2YXIgcixuLGE9ISFlJiZ0LnZhbHVlIT09ZSx1PXQudmFsdWU9PT10LmdldEF0dHJpYnV0ZShWKTtyZXR1cm4oYXx8dSkmJiJ0cnVlIj09PXQuZ2V0QXR0cmlidXRlKFApPyh0LnJlbW92ZUF0dHJpYnV0ZShQKSx0LnZhbHVlPXQudmFsdWUucmVwbGFjZSh0LmdldEF0dHJpYnV0ZShWKSwiIiksdC5jbGFzc05hbWU9dC5jbGFzc05hbWUucmVwbGFjZShSLCIiKSxuPXQuZ2V0QXR0cmlidXRlKHopLHBhcnNlSW50KG4sMTApPj0wJiYodC5zZXRBdHRyaWJ1dGUoIm1heExlbmd0aCIsbiksdC5yZW1vdmVBdHRyaWJ1dGUoeikpLHI9dC5nZXRBdHRyaWJ1dGUoRCksciYmKHQudHlwZT1yKSwhMCk6ITF9ZnVuY3Rpb24gYSh0KXt2YXIgZSxyLG49dC5nZXRBdHRyaWJ1dGUoVik7cmV0dXJuIiI9PT10LnZhbHVlJiZuPyh0LnNldEF0dHJpYnV0ZShQLCJ0cnVlIiksdC52YWx1ZT1uLHQuY2xhc3NOYW1lKz0iICIrSSxyPXQuZ2V0QXR0cmlidXRlKHopLHJ8fCh0LnNldEF0dHJpYnV0ZSh6LHQubWF4TGVuZ3RoKSx0LnJlbW92ZUF0dHJpYnV0ZSgibWF4TGVuZ3RoIikpLGU9dC5nZXRBdHRyaWJ1dGUoRCksZT90LnR5cGU9InRleHQiOiJwYXNzd29yZCI9PT10LnR5cGUmJksuY2hhbmdlVHlwZSh0LCJ0ZXh0IikmJnQuc2V0QXR0cmlidXRlKEQsInBhc3N3b3JkIiksITApOiExfWZ1bmN0aW9uIHUodCxlKXt2YXIgcixuLGEsdSxpLGwsbztpZih0JiZ0LmdldEF0dHJpYnV0ZShWKSllKHQpO2Vsc2UgZm9yKGE9dD90LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpOmYsdT10P3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHRhcmVhIik6aCxyPWE/YS5sZW5ndGg6MCxuPXU/dS5sZW5ndGg6MCxvPTAsbD1yK247bD5vO28rKylpPXI+bz9hW29dOnVbby1yXSxlKGkpfWZ1bmN0aW9uIGkodCl7dSh0LG4pfWZ1bmN0aW9uIGwodCl7dSh0LGEpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7YiYmdC52YWx1ZT09PXQuZ2V0QXR0cmlidXRlKFYpJiYidHJ1ZSI9PT10LmdldEF0dHJpYnV0ZShQKT9LLm1vdmVDYXJldCh0LDApOm4odCl9fWZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKCl7YSh0KX19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEE9dC52YWx1ZSwidHJ1ZSI9PT10LmdldEF0dHJpYnV0ZShQKSYmQT09PXQuZ2V0QXR0cmlidXRlKFYpJiZLLmluQXJyYXkoQyxlLmtleUNvZGUpPyhlLnByZXZlbnREZWZhdWx0JiZlLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMH19ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtuKHQsQSksIiI9PT10LnZhbHVlJiYodC5ibHVyKCksSy5tb3ZlQ2FyZXQodCwwKSl9fWZ1bmN0aW9uIHYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dD09PXIoKSYmdC52YWx1ZT09PXQuZ2V0QXR0cmlidXRlKFYpJiYidHJ1ZSI9PT10LmdldEF0dHJpYnV0ZShQKSYmSy5tb3ZlQ2FyZXQodCwwKX19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtpKHQpfX1mdW5jdGlvbiBwKHQpe3QuZm9ybSYmKFQ9dC5mb3JtLCJzdHJpbmciPT10eXBlb2YgVCYmKFQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoVCkpLFQuZ2V0QXR0cmlidXRlKFUpfHwoSy5hZGRFdmVudExpc3RlbmVyKFQsInN1Ym1pdCIsZyhUKSksVC5zZXRBdHRyaWJ1dGUoVSwidHJ1ZSIpKSksSy5hZGRFdmVudExpc3RlbmVyKHQsImZvY3VzIixvKHQpKSxLLmFkZEV2ZW50TGlzdGVuZXIodCwiYmx1ciIsYyh0KSksYiYmKEsuYWRkRXZlbnRMaXN0ZW5lcih0LCJrZXlkb3duIixzKHQpKSxLLmFkZEV2ZW50TGlzdGVuZXIodCwia2V5dXAiLGQodCkpLEsuYWRkRXZlbnRMaXN0ZW5lcih0LCJjbGljayIsdih0KSkpLHQuc2V0QXR0cmlidXRlKGosInRydWUiKSx0LnNldEF0dHJpYnV0ZShWLHgpLChifHx0IT09cigpKSYmYSh0KX12YXIgZixoLGIsbSxBLHksRSx4LEwsVCxTLE4sdyxCPVsidGV4dCIsInNlYXJjaCIsInVybCIsInRlbCIsImVtYWlsIiwicGFzc3dvcmQiLCJudW1iZXIiLCJ0ZXh0YXJlYSJdLEM9WzI3LDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDgsNDZdLGs9IiNjY2MiLEk9InBsYWNlaG9sZGVyc2pzIixSPVJlZ0V4cCgiKD86XnxcXHMpIitJKyIoPyFcXFMpIiksVj0iZGF0YS1wbGFjZWhvbGRlci12YWx1ZSIsUD0iZGF0YS1wbGFjZWhvbGRlci1hY3RpdmUiLEQ9ImRhdGEtcGxhY2Vob2xkZXItdHlwZSIsVT0iZGF0YS1wbGFjZWhvbGRlci1zdWJtaXQiLGo9ImRhdGEtcGxhY2Vob2xkZXItYm91bmQiLHE9ImRhdGEtcGxhY2Vob2xkZXItZm9jdXMiLFE9ImRhdGEtcGxhY2Vob2xkZXItbGl2ZSIsej0iZGF0YS1wbGFjZWhvbGRlci1tYXhsZW5ndGgiLEY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxHPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sSD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsSj10LlBsYWNlaG9sZGVycyxLPUouVXRpbHM7aWYoSi5uYXRpdmVTdXBwb3J0PXZvaWQgMCE9PUYucGxhY2Vob2xkZXIsIUoubmF0aXZlU3VwcG9ydCl7Zm9yKGY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IiksaD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGV4dGFyZWEiKSxiPSJmYWxzZSI9PT1ILmdldEF0dHJpYnV0ZShxKSxtPSJmYWxzZSIhPT1ILmdldEF0dHJpYnV0ZShRKSx5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikseS50eXBlPSJ0ZXh0L2NzcyIsRT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiLiIrSSsiIHsgY29sb3I6IitrKyI7IH0iKSx5LnN0eWxlU2hlZXQ/eS5zdHlsZVNoZWV0LmNzc1RleHQ9RS5ub2RlVmFsdWU6eS5hcHBlbmRDaGlsZChFKSxHLmluc2VydEJlZm9yZSh5LEcuZmlyc3RDaGlsZCksdz0wLE49Zi5sZW5ndGgraC5sZW5ndGg7Tj53O3crKylTPWYubGVuZ3RoPnc/Zlt3XTpoW3ctZi5sZW5ndGhdLHg9Uy5hdHRyaWJ1dGVzLnBsYWNlaG9sZGVyLHgmJih4PXgubm9kZVZhbHVlLHgmJksuaW5BcnJheShCLFMudHlwZSkmJnAoUykpO0w9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3Iodz0wLE49Zi5sZW5ndGgraC5sZW5ndGg7Tj53O3crKylTPWYubGVuZ3RoPnc/Zlt3XTpoW3ctZi5sZW5ndGhdLHg9Uy5hdHRyaWJ1dGVzLnBsYWNlaG9sZGVyLHg/KHg9eC5ub2RlVmFsdWUseCYmSy5pbkFycmF5KEIsUy50eXBlKSYmKFMuZ2V0QXR0cmlidXRlKGopfHxwKFMpLCh4IT09Uy5nZXRBdHRyaWJ1dGUoVil8fCJwYXNzd29yZCI9PT1TLnR5cGUmJiFTLmdldEF0dHJpYnV0ZShEKSkmJigicGFzc3dvcmQiPT09Uy50eXBlJiYhUy5nZXRBdHRyaWJ1dGUoRCkmJksuY2hhbmdlVHlwZShTLCJ0ZXh0IikmJlMuc2V0QXR0cmlidXRlKEQsInBhc3N3b3JkIiksUy52YWx1ZT09PVMuZ2V0QXR0cmlidXRlKFYpJiYoUy52YWx1ZT14KSxTLnNldEF0dHJpYnV0ZShWLHgpKSkpOlMuZ2V0QXR0cmlidXRlKFApJiYobihTKSxTLnJlbW92ZUF0dHJpYnV0ZShWKSk7bXx8Y2xlYXJJbnRlcnZhbChMKX0sMTAwKX1LLmFkZEV2ZW50TGlzdGVuZXIodCwiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe0ouZGlzYWJsZSgpfSksSi5kaXNhYmxlPUoubmF0aXZlU3VwcG9ydD9lOmksSi5lbmFibGU9Si5uYXRpdmVTdXBwb3J0P2U6bH0odGhpcyksZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPXQuZm4udmFsLHI9dC5mbi5wcm9wO1BsYWNlaG9sZGVycy5uYXRpdmVTdXBwb3J0fHwodC5mbi52YWw9ZnVuY3Rpb24odCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLmVxKDApLmRhdGEoInBsYWNlaG9sZGVyLXZhbHVlIik7cmV0dXJuIHZvaWQgMD09PXQmJnRoaXMuZXEoMCkuZGF0YSgicGxhY2Vob2xkZXItYWN0aXZlIikmJnI9PT1uPyIiOnJ9LHQuZm4ucHJvcD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiZ0aGlzLmVxKDApLmRhdGEoInBsYWNlaG9sZGVyLWFjdGl2ZSIpJiYidmFsdWUiPT09dD8iIjpyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfShqUXVlcnkpOw=="}},"time_used":462,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":462,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-600.woff2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.655Z","timestamp":1785145404655,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-600.woff2 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 11388\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-2c7c\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":11388,"size_decoded":11639,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 11388, version 1.0","md5":"5c9d04cf95bced33d084457a3136d2a5","sha1":"80b15a1a1bdead47fb19e41a3c11cede67958568","sha256":"a73bcf9b9a5ecb070cd67dbcce60e4e04da27ad04daaf7865db58ba39462dc1d","sha512":"86bed0e4b71a797ef2f8c48b7aa933a6ee6d60d5fd3acabc09a95a4a55fab32e6a6ad17f26e9591a14f7442ee7f142b7d03332efcb3206c6b5b0da81bb181624","ssdeep":"192:tZlcMejUz48evFzwPMPv6LWc3INT12t1grxc1MpxAVUn8tXYviuQQyIl/UvV:fluZwEH47k2t6rSMpCVUsXurLyOUN","tlshash":"a232b0a4b985f410e307faf91da6100ad463e707c1b6ca6574be0a1d00689edf649db9","first_seen":"2023-06-10T04:51:27Z","last_seen":"2026-07-31T06:23:14.556446Z","times_seen":72,"resource_available":false,"data":"d09GMgABAAAAACx8ABAAAAAAYAQAACwbAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEOG5RUHIY6BmA/U1RBVEQAhG4RCAr/ZOR5C4QYAAE2AiQDiCwEIAWFFgeIdwwHG2hPBdwY6j0OAEc3IFGUKVYVRQnlBGT/nw44GePoeHZLWHBRUrvVbVJ4hKJOjUIMWE7epjDbwbJyr8m8KYniz3aWPtduJjZsC+6ePFQyrfdLpfwsjnBgrgKGwsK/dIQmp2glivcv/qvn3t19Ej+kUED8ok+FYswgY8YI4Dng5/TvhRAkSBCNKDFCRBRIAiGCBggWkiAJEKBOxdd27bRbxWfW2V8y0dq8m3em7ZSK7YcK/l5w9n5KA2nWzSNaqkD3GMY4ILE8+H5upZbRHyy0hZvRnWAxGg5kfP3/3Kqvgmal7rCsiKeeujyhoc3GojWDtAiiNftikaViQfTP/L/93kuF/WYiayZp58EXphLKUlC3Vjbf3O9L+0AUsRB3N3u3+VvFJqal47FRCiVQAP9Tczt6JVVimyLiM39T/lEuZDlAHepA/mBJkye9BuDfq1q2//Hv34N4EeKdLa0T6R15uM680Ifccba72i7K9Pk+CPLhCxJI82YIAtyQIW2itEHBibpE8VLSOuRISucZ8qJTSGVsc+uicemiKFNoPW4L8/z3h8YnZTyADzACQf8TuynA4UwoWKxRRQh9DC8u24LZmgzVfCcFPCBLSfV+Sl1K6PD/h7o/N3QsbDfWHIxIKH0i0pfx58hJ/xyH0xozI0n/iYHXBM8+JwKFBMA0gECAMRCglELyTKwyiAoVZhWyScU1+WSmgsJUsZg2DrOJ22zVaXYLmn1GzTHj5qQZc9asOW8FfZ8A+WTAOAxiqEMOc/mh6NKzkpNQBA14GzX/kvOmJyEXkMPQUB8fKo/Ih7ICGuQQJ+XBAGiXlBL0h+nFxfjfxdbfbO6/ma2736vW68XWC7lYRJ54QQQmKpL3lY4jn5BCCRW1Glp2eFZ8Js/NrNeTydMrqsFkd7WkpTRQygmn6ShyCihfQO3WQxgZznMLrWbIKMUkE5E0K8tcZrZ5S2V5xkR7zkRLmWgnTLRTJtqZCO1d7z3NT3waoBSnwLM5ClAHC2URkcXDs/ZlsbDXNCZi5ghxRGMi4Wieu7vQEJG/CjbfvjBSj4TDtbdCw/ZB+ub+Gxf65m73VVvjFV5/lJv924V8b9ycyyf4/fs5nXQ0N52GEECUq0BCRlePTxg1ZVlY2XpNmjm5uLVEfT8ZMGjIsBFhoyKixhNoOUvif7DMYce85R0fKNALnA6cAVwIXAJceo6LA1cCVwFXA9cANwNjIaqgVMlSBa1KtioYVXJUyVUlTxUmPWIDDDiIQQ5q0AMZBovDE4gkMqXUm0aPUccEi83h8vgJ+qLEnoRyhVKlNvWW7vh5271jN3fsanlMPrD5bfxvWoG7MU/Ztbb58e17Sd2WyDoKehj3sA0wEIFEoSEMFocnEElkSqknjd6y1sBic7g8foK+KLEnoVyhVKmreWv1BmNvOhzDXoCBCCQKDWGwODyBSCJTGEwWm8Pl8UXVfLR6g7H3YB7ACjAQgUShIQwWhycQSWRKqUNb6vVEREREEwkSuTgJ5QqlSl3N0uoNxkyt/RvzufN9iz0AgggkCg1hsDg8gUgiU0r90ugxyGTFBofL4yfoixJ7EsoVSpXaNOdTigYQgUShIQwWhycQSWTKmfYHAADGzAIzM58uAUYQaELGjTFmOW+VAAAAAHDOAQA4XDNxCVOmzVh2jFKJPf/e5+79E/5U978JqJckSZIkSZK1VpIkyYqs20yuUKrUF18fs6z1fQFI5i9VmUseQJu5BhBEIFFoCIPF4QlEEpky/Zh5qRk0egwwY4HN4fL4CfqixJ6EcoVSpa4m82r1BmMm9k4Bm/lVReYbdPqg/1eEma/JM69QZE5TZX5+P4AfT570K7JVnOz4EuSYum0UuM9i8j/N2yzeoVVOU/dQrMVlLbf7TUNmv9ep6zD+R56xnJ9Qrjz5CmCLZ5VzVpizyj4r9FllrUYVPhKOYQryVReee3l8Avb+IzTz4LY38aFx2LbnG/lqvown+eSsyLvZiWkY/HCaC8FPc9OT0P4l1x5aXSp4GS/h+RzNs3guR3GEZwPI7toChYr2YZW3d90vFG+swcBF57zrBfrThnGwix4XQooMauai9cfiEUflW4fbZajEJjttE+iRHbMwdVYidQTfrqe4m7vci2YgiFI+2dzjKGTxsUD61yK8KODIcuXRapLv0pU2xuKjEGwfUTeME+UHzYgILdRJQhv4OLhjC2estj2XMuRoSythSHELRZOI/0GZTQTZkhq8IGiBAE2x62w0tkFXWXVWPtQuPxEc/apzOnE8q9PeCVYDl8C/zP8LAq8oXDYz69mDAd37vgbuBeTXpYElsiCsBGDGnq2Yd8MFkSSCAPRY4CCJBuXQTpOo5AMAAHd6EI/mpTt/dEFloqs72oECXX2tCwmorJJBhojiq7fqizq3pJxSSyFRaBQmRU2xUpKUR6g06i7q7bRSWkUmA0xEIaR20EN415ZRqimEs1L9QBwEjgU05FDB//sXr+rPJwD47Pe3O77d8+3At8pvVd+kvxn5Zvjrz74+CwiwDTjOJ4DcZfVIZVc7/Ki+6BmfSPvRJZ/71FtOSPnNk171hBc95bi//OFPz/kMIh9WoWLlKlSqQkBCRkFFV68Bn4CQ6DOj29c47SVnLHqzLNCyfj6f2aRFK4826gnQOxkSEYOEGZekufD3bJmTvnXKvx73rO/97Ae/+M6XoeCc5T70j9d8VS58428PeTg0XPSF/5UHD1rhrPvd5wHPw0BBy5UtR54CZXBKlMKrVqNWERoWhjocTOexyYhJSKnxTDDS0TMzMLGwc3+ut3IHH7+ARv2GP9+jcIQL3WYkTJm2RJTzuUa97wNvf3Ys+QeIQFpGMSDjAahZIA+CKa8BZl8A/W6gWwBQsqDbaiuMLN8aWvY2bwizoFo35jlzkaKD1tBsuyhvjXJUY4S1QihdeTWHE2gny1owACofBsdWETVFGsu2HW2bCghZGHThscqUtNd2QpbNJmjyuaK2uli/64PYrWw0C+VeSEWxmkAgDrItjABlGwGljnbcyitEoGtMcWwJF1NAiyXHs6Kz9fFsVlzEIZ8vmKZkm367U7H8VFlW/rdAUqEN4nsVFKArKDvNAcKlLvooQRXAL+lxSNYwVsp2EQbDefbskkoqOhs3hQQ3leIK0e+k6HJWFBkWFBWB3EHFmNuLTflo3sLXUJotzisdMMoumVlcsI7y6QPCgvsSa8n3LbhJuAk55R8kZGnIziUPauaCKmNRwZMKTrm9jLnYQWesmlW3wzXVL51WdsrOzUUXmefNJWjd+P/Z3PXlFFw5riivQ7A6sQk10hR07vN6Gm2bsbywmMKpSES5GMOAS4VAMCM7Gzclt6avfBR58lsJjAoxgxNzCopj46OT3uezmKiNzW1kRkEghtFUhFoWv98jmxhYVBKVpsBZrvQPFOobowqfVuumrje/H337Rxb7B2hV/GJ/8aB4l04q++XjdU9kd3nN0UjIzU5+aSyMi1BrWZjcxiZFE3LtKqbgwo/Uawi+iqypQhfy0CIZ+kNaIFHpdILvLqNBWoQdWgp67FNUZulFE4jxjbpQM9mb10ulrmCdAf9QiKBQ1yglY9zZ7YhHOqxWQ3906dxwcJdL/DMXGiCZzOj0nE+1OGkqH9a1wqra25W8VCjcvTJxH3dYRLv6dvTU5tzXpeVjeICpg1F4e2bYFl4AL4lmWu/JIM5YglcvGIsFSCnGROYpl0od0YXCt4gi+VeYWtQ0NMouNcQRZsCuDWdsMrxjGE7AREuIIIZ9ZzFxM5hO2mgsa6Hpcoh7YJxjkMbZCPXhWApNyLws22arjPmOTcw9eOux2NKcYt/bZU02JkjJV8SD+WwTgiIJZbpVVL1RPhI5V9n1g8nUOFskav3NrjSfCHsaVnW8rMCwRldA/Rij7it260tMtE2aRUgtiWR1ZTvZBdRvXtrwcKJgCUZqYcsv0/9Pr5HQO6knulU/3ev5qMopxc2z0Owa+yMoU46q4VGqPb+b3rGV5Kqw+jmkj3aFGkj5s934XwWO7HUCyJG2FbJd1ee0Lj/WL6tXP4pQKxR9wFkKgzXItB4hBAfSFGzXk9iGH10B82IqdhW6DXpZfsgYg54tDODrhUbgmrbN80UXYxH69VIfKWq9KeDwzx2MV++Qhgh4MPmp1QF8SITKf/So4rEPYxCw77Sf5cwN3wAtIc8t79/YqTRbK4pLnUHgNBzx7smdwxYUIVCFiY2M53sN0xBLiKAHD7CFfiD/zF3CWDjEkctQT3J36uYAerluVYKEaVxnD6z9WY1U+nXU+EE9pzKHFTgcWDVg+1EuL4PFzViK7ZnJCKdS2e6EDO07iuc7SDa8Mk3PVwyJyVyetHeRxsh+gW8uPjb+ObJduTqXrb1gnB/39cdyGWOcUkHfsHWhZLrbzmHP6UCTwi9AAZ01ror2As99eR3HDQspEn271asrmrRotNjru+axmRKk8ip7+4vQIE5BL/sJWjzKfJ2DWxOCXcXKiXMoihdvAFpjVPPj6YJVBOK0f5h8eQQe3M6aqL6sJXWhfD47sP6QF2bLyct1SNixUDs21/My5XZlecneTR5uQ5rZL9R141hxKS9nrmtz2Vdsv3srl6FqCnTM45e7t/OCVZh83qTVnp3uPqDS2R0mukCWvtlmPKIysqddwwUU7LxufjW/kdpzK4dbEeQevCp14EdGlRqLm1IwjlU62veN3MaF6Wcd7q8dNPs+Ye/Qm4EvmsfjJM81zUa262en+ro6Kv9SN/aHb6vnKEcngPPUzKvTTtjT/wyk0DrN/F8Uz2LCZvRFqYLyx9b0rflTjuTFNENKqGetu1wN9TYu+t8wLEFyGYGLsLiHZwLqM/2tLNfyZL18bZKLmUHZqXqwuTiPbmcbna73rXKNSfTKYdufjzNC+4OeGbfR6GlCHcjm8GM86LpH8HkzrU2MtasMV/hPCWE+fp/bdcouGA3z8EcWcVtFUxhTr/6I+Tn+fk5mvLn8vWh+GLBu1SeRcVl9cxp9oYv08WcHZGB/y/6QsS19x1n6nX/TxTCuBsPOIoKpNjmNob1r7ATBUgFy1HtVYglj40cmi+aV2nLJSi9ZANXjabHxvqO1VB1jp77ztBpCS/9uZxkCK3XYV67ORWuj4s05OONEfipXRc2poM/bZeDW3aIu6IVGBOliLAIMWhYGb3+lDuBI9abPmkbl1rowEost326U2aGn4fdA8BgSSbNhUy/NocUBng2CcvBw1qObqK6jcm0nGPAramRvV4n2WMiVOBRHM2NxxmqC4l7n3s6OFdO5EMF8pHreoKJnjqSBpczKkLS9sCnovClHUwO+7GijIeFcu8beO1S4qXypqgRVCyY11SEIko1pw+cLk6jsWp1mx89BWIxFP21Zo+JxkF7p1E9VDo6rvXfFxVdJqs1RLvkfBtuXdnv4JO4aHYnbfwWd2x/psHNzzKq/PL9XdmC78jarzDq6lY78s+6QNvaN7dnu+GGL6ZreJxhguIC3TmRh+h6cKr9bvGw7qt2n/u724oRUFx3eq+/WHXoPL9L1JnXJw5haFyFYHajvgWVb2MJjt7IS8ivb8vk335nKuOkiMGXap5HmNRcNB5LP6rHWnNsZajsIuK2gWbEzmwoNtX9iKHEQaifrCbCKyotWYyubjvesShiw1Cb+X9e0pdy9exxVfwsLOuCqdE2gvettPdQzE5yN//Y2Urp+5wQYn8tupGyxMK2u/n34Nv/nYscE1WbXZlDiUsmq1EOVqVlcKufh0SOjL71I2umFtasXIO/u1LIdKdnpz2pklPtwrD12PD2XrhZE+JEvqTEkBtsirysu8cV25d/Hg0uQ/lu4zi6HXtEx0mDPTk+nNcKRlHi9QGiU7Hy47wmkMcJTtZsU5vZlIh+swY7sDXYejsU6D+8JjljnhcHA5ii34rSbXG8Om9TTTqd6JmKy8Fy0d6qj3K093UtFIBgXBRgGE71DIqF3GEwBhmh8dH9n977RcPe+/V1Xx3eNn0sn0+xWQ/zrB3pRh62DIhoX+xlGE21YmnRZlojHIwKuwZecQ740UR1rjwVeGmtgvou5HzDumuEEjZvK6LG6D05DqZm3Y2NHg72Ho2Mm3YvpWp/tgPGhXg3vRXt1XeOkyTDtatbPJEzN6h6BNKCcLOz3bN3RLCf2VbV8A6x0Mt0YIhTFHgimdpWNv178xqKssmpLdU3aJampljy94FTlNTheVvJz/nkB347XZS/tY1ffyqE+VmdRvpH8Tc70WlRdBLj3VOWGjrE7ian0dJpTM9Rmb3+IuB89ForBg8fdv4l/r7hnF/WwzPfHlRNl91ynRA+c8bYM7y8PGt5b6jCll2QNdS6Z3+EWbORAT/eRWKz78L7gaGR/xU09srcnHLWOVpbRrKkabVYjLSVu7pip/B0XbJ1b2LB+Aej9qclQ6hp21NfsOrw/sS/YtZ59PSMbo0bN07FCFvTGxiyHj6dvZ4fnUGLKc2RHZ3DMNKhVTLV5lFPDOpMl0rxyuAFyb51/hKl/xvaIDRZ5HeaAZ1tsOzROqHVhq1k1GlZbs/9Z+sGra8buFestCkbOfubWaHfdSZVu1GJRv4gld3V6jqs36ZGs6w2tlrrHt/IA4f9Is+MmPOpeQtKpmY6YpBVY+3OVQsZup7mzqGKHQbU1th0cMKHUDZlMxqEpZeNfSDqZxh3Bd+ne7gIlVtFdY204uWOK9oZTkTA5ZTz2v72BioIWEc8pHVwYn7cMs032m3H6L00ShcooE7K4LwTKeytH41atqichgR/XJtc2t8VoMegt9K0wW5e2JUXsxia2UNTMZjWKkm3WpavMscJ0Mu3ADBCWpFbUphb03V5ekoK176Tmzqaq30/Nvp0afCM19nqK9sryVXwrBflFC+c0W3MnvnUPfOPOm7jlnKZwAaaoMep38xvGU56kJ0G9cc+G7+bh8c6NpYcvbShht44zx2mDP70wge49Iqmw/MCk95JG6NDlpaqaQjJBtAVVchnbPdja1BJp69vYPmjx04jfcusGf6Vywu1JmHwI0y4ps3/cUKfjD9LyRrWOkcjy6dFfnu0caG1yDbR0PuTarFTUURe5KqPH0p2TWLKG6kqazbNut2l22uxsjlrUC11xdU3XOiHvAsWjkNc1m5gcgblhMcSst6o7iOf/bIm1gD6d6M8OHsEauo2C2VaPIOkdDNZhozLpaVXOTv36R9ifMRwCAc3xKYf5HCVKm/YAsLDu2aeR+Kwmza7meTvBNMr628Ticq7S7Xw+w25kc7gm7sVRFsEy54T70cH+eLoAS5mcbfUok441VDLpaRXMbqONMB+QM+5nsT+lOYqK7Af2V8BjmxJ6Q7yxSTM5ZrCTD/ObNzUudeqnEybHMPsZqrG+nmr6iM16mmaqr6cZ3zz+BjTip43tY2pPSXl/oGiF3t8tnq5YD43YTMnnuxAgYJsSZuOl+bFutsSshjXdUyaSbzOn/mNyo0LEtJkZnIbdmVG9w6jpJP/2e1ekCxKc1ha/p/bgo2wv+wSW9Bav5s27g01BKP9I5i+5+zq365MfM+x6C63OoXw98UrAMDej7f3aOqxTTja1KKeGDVZdt0E03dIsmujWEvuYm8jWBj4e7i4m+y2ald/whf0UDPBGAt74AeJEUjzz4I15lNVap6O+lZ8IqDXdQ5MzYIPFOCzCb89bTUaP0Y1asUerLZWsnkc7/HgIo3hCmICfu/+OzuceYYvGecHqz/KVjfg41evvAN4nhffsgVssrqzaTU8uphPpdx9HNbrPe0Av00F/MYrp2f2Mqj/C5OM2Xstoa4151ITO6eC2NkRl9AxWfiDG+uQGievAtOcVx0+6faBjnUmzadbtNs7OmJ3OmTohQyk3hVuPIRBMucrlXqE7Ft2MbKg4vjj89OID2CFukj8Mmp1JD8dYk7Uw91cQfWwHl3OFMX/HM59IRzE9oX2phv2K1J1Yn1h/84536ER/djCWLkw173+0m/LadKODYvkY31NdxY9jLxYX4R8r9hGfvRjinj/GYP1eXaXMuWAvaW2ROENtPXxXbeJgkLN7GY0WrC2uvvIo9sOvKQ1iSwcD9Jcsqr5RodU8wld2GbhE+4ibKGL35Qp3b6fyL4sk/0kudUS4yotc4UU5t6eofbpe3WHVyf1DPBugsa3eluas+J/0LEr+/O9s/y5x0YFQUwi2Z/fsjl987YeUANDgTdU8yE/43434NHzz2mLyncWpdxdnXl+Ejfv2mQ8uvnh4cejgYlzZlPfnWJHLnwxYvU3c8fH618ru+ua72795s2z9rR+fJsK2s9WHHuV0s6/nV+ferd7ywLFlv7BbuY7LzLPfLC579Ci9BRI4p8l9W6PlrkM+a56/d/edfXd7bVj44lbUXfkb1teWrXrMWW0xMhtsTc3m+45gZAd4DY9J+2UmJbMoVE4oI/1sUDng2c0CB4tl5/NZdo8a7B0dtriCncVrIY3RaMvJiw5gwnoXgo2HYzF7llVBny/v5I2IXCbujNPJTbovFjvBXGzmf2dwBlY+OgIpzJ/R0CMHIo5mhlPnocJ9jISETDarLSuXdsSjq6qI7zmZtGZ8dK7igNEbFpmbx2XqPp3ePJiOe4+j3ku4uwKFK0ehDKvqpf73SStz5ZOfMVRmo5hhceHVFC9RF8F75Dy3yGDsiQrv7G2huFslAvxDNbTKfbrnhhm/mdQdJKFxWKD2K/g8m5s/WKmE5Ks+gfKU3bjwY9CS+4/7951L88xL00DH8vsIrWpXuO4OG6VO02TXqBxNatqjFyOVzKXrorOFwzOCVfbc45EZS0VC269QhAx2fXRCAxysY1Cq6cYvsflp223RiMouj1C2aXw/NVaQO/ruzNo3FRmy2iyjWlXEYtKOTKoaB+sO1TKZ+IN1zIN4JrP2EHTJBud5g0+3xb7vGseBCNs2I9S1q/W64IzUAx6YkeqDerW+fUboGdC36oSSVoOec95Ko5jOs683RvlKr0KpDEQFjY1RgSqgVKi8Ub7DLrMqeUKrRiazaIQ8ixLKTjQOSLU9tfM2P22HNRJROeSj5H0xxvpjSx4krFVHzOahobqD+WnYQ3WsQ9jPev5B2BHeG86GlfvCSCr7z2ho7+Odjc0Ml66VCnOv+gTyUzbjih+D5tw/R/68c2n+BW3HD4e8zCJvV/suOSoo4GiyAsF1ZeZOrNnFZB6S6HkGJ22R8waMpvpQq1widZdqyGSspf83TOxhCZ1ancjFYvJdOq3ACcurZne44MjDNR6PuWO2q4kHS5zt2NLI8l0PEMrLKm+Sam76uov61hnJHEdbo5rzQvfmz1PqTr3RVPhTCzyDU3ske70Vk3vwhP/XFP+mpxDUNYJW4hUWK2kk9L2tILCaqsvPVJf+O9dWvvDQMQr7goXGRLmqudB+yz/PFwovMBqzGlz3upMH+o7CCzjS2ZyHvZWHoJwoIRDqSCUvbWspqfn577YfCtydtAsnxxkxocRuV5j8HvgfTmmTkDsVgrIA22yu41ONpWu4Rt7DJfViN+Kr/WYjk/2xgK32uSzNeCuBYMMTbASiBQxVR7v68w4NbfG28Yw9OHgF5/YapMo2e4vba1dKvQZXI2myGh8ikT346j7Sc7XEqipSLb6oqqrwcbtLJxK7DHa70yAWuXSwD0f9d9fj9anierETArXfzLPYH9OMbLXXZVdapeQOhaDUzzEbmeQfCHY8wUogSAkEGzzxbSr4bQpmCombicQtROI9ROJuoExrvp/r+h62jcInEnZ/WqmN3qhSS2HryLy65jP1KOvcNfg55rvl97L8VxLYnPtOAO9VPsBk8mUiLN4WAj59cB8TcRuz1jRplWKrQcG68+EwUTfp9Fgjck3IqFV1h0XWUilpM/EeJxG7eD9A7Z1C9oL69E/WoHY16obk7Dv3xBviTDFk0Km76pZS2QQ9A9+HSDbzj4co/O8p5O8b7MPWfU+mfK8HzUT/7vKZWz6RWsUzW8u4j/Nq2+63rMQ+HdBOLu4DphoPNE2k/FPythfy3eLkuy9MpALJO44WtIj7QJGvxGKYKKEb4FZf/LLcBCiuDvAG4NoAc8RcvUtCAzsH4LOhc84d9QfaO+r3+7t7LvGNc1f9Xp+3fp9zZ4MRdg8l+MbmnZXn9TX2b971V+JC844Rr6N9VPp3Cyi8Mua6RWE7Lr5gr1EGQVjoc9vITj/hxLMKR80CLt4uXFzHlLX6CZRmu6vQTwFo8bYECBSnzV3gE0JQYa+5tdjh83Y7s/J8ECiFPred3NxOaJExb18UthfHb7XXgHdo/Uvhrue7wnBzaL7cS5BOa76b6/ouT70PIZ1qBzPcnI27Tq25Y836cBu/2HDbqbV3rG3YAALOnafEw50KbMO1oLXEuwn2j/Ivx/mXZ4sPI49ZVi23PTgStj3gsnx4kdABS3K5/oFwp0+8JTiySu4ObJePDiu3+nzKLXh3tysCdf7y9xosd08Qh78zhLSyMZtdFnUyME0etdvkY3++yH2s41Qjp57/Bpv9NJ/LoZvONqxgPnqFGcyqmS8j/1XjV3S2iOe7rC8sR08NTkJmIugVyHxyNsmsyJ5u0R34DU/9iUE5QcLXjK++9zJ3w5sX1h3YKS6q4Qsb2zgSZTtH1CRic2wuk9Qh5GUUBPYgj+8nmpV1bdKxYNete9vgyj90WK0eNVvV4bDKIjlNteE6cEL77tx6LGaIQXmXsoMaWegkPLp7p3ATjXh5qRm339mkcQ75eiRNZMxTbbWP/szk/Eonxq9acI4Sd0BqG+zouyhuYeSFzFUDrajqhnYK6dIWc8kOZ6P2lL5SF4n5aifh0REuL4dBSFyZhnHudlkP2JnvWicfHJCvdbvl60SK73KvrQ3ZOkO2lq2dcVjpEzZ0arX26fYKlcKAOHaqCX/8jd+r+QqjTKo08Wv++nXBVfvsZIdC6Gtb4bAveH2OheWONg+lez4vJDqC9JBqiNvczB1SqUxCSjuV/h25w9ArlYX0Rllfr8yg75NJ+4x6aahPynEwJgVHuYRzt5jjVtUwd2SfuGxDaemd5UIYWvKh5F7J4b8LnlrTueast62tTeI92nV0Rai+7dDfli2BO+de8MKjbBOTZWKzFswMFsu8BVb6CE1mJtNdw8LX0muqpTV4BXi//LfnX7B7n+95vlu1veNBRmRFUjUDn8X1ZhyRB0Qin1Qi8gaEMoVf6H9uJVKhLyD6kJIZCZt1ctZ3HHaGxcywOf803TIeNRgnxk40hwaM+lBo9EOzPjpsNAKp0jzCNpiOjZKfMAtwKjOfRdt+3lV6xsZnWQWd04Njui6GxvhpmPqqiS8U7+DQ32xyl/rLgyM6udQ7JJhfOROagU3Yzk1B5+FYzHl4Y7BDHea7/B3D3B9z3qNJ20wN004nf6bNKKe/+vvPw9xGd+eI8Cms6RXTy8v4nQFz97VYZH0DQqO+TyDvsU3l82frG1ZKTIe2oywVZ2umCjj1xia6tS52KXaxtm9DH7TTw+Q3Vq31vOZJepCnbTts2yemjv/B3/51r68CyncpX3j3AWs93Xu67JneM72w9Hrf6j54vd/nNRh9YYYh4/UZjTDV6LCr7+R9FZnKykwFcVrVV8DuFE+7VPwNZV/vzt5bTzw6wOb20cieECpyT9x8EH7/j6z/j9juSOQQ+A2dZzpPi9vOtJXtONR7CJT4/vH+3sl3+96Fw29QZW0/sP5fTvjE2INieSyCeqGDMf8Eo7z2J1NPKctjFsDm5CF7dK/90L32yD47YLGNgThM6T6wX3Het46TSicOrCb8e+Ij//cO1L9TycXU5mKBo57tFolZzsZ6QV51ikW19J78FurtbNYdVOpRFvtITMHvtLIcgCWFGgG0odtp1Ns/rNthT+x6jt1UTOOfGFg1cO5Lu/FavrQH9nhEwaNsVa8MrtJNukPYOkpuAUtP9RcIeTVVFaNWbIhr54HJiw/j8SObDycMP0nXbFqb3ATnpTMb167eCDnGTasxS5dtTEzeUsz6aYLjPGkbvcHEieJ3Uam78BEOz+Shw70UIv5rIulrLImE/ZpE9IhooTPq+I1mQFs9OdAjKy4sDrSKj9+gUmzLbUW4j6itbXIT5MpbqmfpByDn3ZnnH2dfPv+g9LHSynI6wWHJObNPAX7dMJw75wXxRKBfvg0/OtY51n7nUTeoVT9ovu8/D3lOy77pQPZV92RfN5n9f68nMtAL2GgYxK+4xWR8XBTzsCjmGl619GZ7L0tcb/s5IXVDt4c4NZWBBY+5dHJ+StD5a4LeuhuJDGxyRXRgVlAE/LAQ8b1CxKdclQ9HQLtv6MY78uNv7pvl6u7HX5+Q5f9nxTM3YrbBINdiTVlufHnczXMwokovqQhh29G8lWt7CxVb2CyE8r0Sbzgkrrftbpc7H+B98UwVD13rxuf5cTfPwjigxxbHX9/yABkySDT1PI9f68an2XE3T0Ya158pxNby+Wvd+EiUr564j6/8F194Gl/9LL72YXzd4/j6V9023AHUCPaA/7+KsBe+FPvc/SZxwD2ou4cgDosjsaNlTIoeVjtWDTCyr0sDCxsSB3pe7F81aAxVGmaMhp98H9/PDuQyf0LCOQeZEz1njcJU3OucKccfTDGuX2VCP4nwSXu0VX+TB+aSc+3zh5pk+cgXmQTWCv80/NQdjI6uaAnu3jYwWlEzegh6UMoB4zcgSGYALP6a8LOMWtb32h7qcvj7reJ3fJt19Y7pqXgQYN8/AMaCeu2aUWJBbBNJ8WC/JViHv2d3kg/UYNSC2NaYbGdBDm4xxPNXvYLctjhtF+bzhbh/cb/0LCW2ieRpl2g6/25JFxYLq7Yh1TCoy4s02d7nlc7ESfGxeFH8C6+m+MtBwcjFFaPS4qT4uNeLNMCb+4QAZMVI2nkNZJttMto/ni/R57x5OFkqTQ8qf42+Lo1S0AQNaEpZLmnXiQLYXuqyWJk4KT4+7YswjTdWpf2PkUEBiXSgNtD1hQAniUkWkKZOuUFtBgXo3nPCud6yPIIBvNtRpSBH5mHUFthSVSDXER2BN8dcwUc1hEOBSgOcrDjXclJMQrdfpRVsBGr1hnqdM1rhg4uiFF3S1LFQm43NqYo02/r088+/m7ZAUw6c7I5z1VUb2nB2xkHsWUrXMpxu1LPdWQlYDjSZUZzPM11pA1752IVCo+UibR9HW2/jL5hj+xjUTlfqRYjKTMsvU5bVye83Xsbq1XZlishqt/zG9zkMBCjw4ZPzd/QXa3/Lzcr6FfDRL1kEgE+/rdBmPIdxw9U9CAyhAAI6YXn9WR3jP+lIiNUvcMaj3jC8lLyt0S2eoob5dhaLniuv+QWGtfABmOafWAlftczY0M7GkItJpGrkIrmeb6UDV0Bg1l8MrFoZOowbA6V5x6NuHVcJYGX3QbxpFdarmvamnf7V5Al53XunqO3ya07uo2I5zgqAttzSNY6kh34UBWgFE7DOhNPQarXzI5DRf5whCTYmGGiv0SJBc+A/1bY3K0baskHvgnFtPnbS9dvQahYVGLi+CwIs8bDmdRqj70My+2u+BW5Skm0mSW4nkF9wDx7MZzw/qKtVdWOqtwGrI6TTqB2LYEnUmYmnxx4DYyMEEpE2iwzYATrwAR2cYAE3KD4SVXchVIPRhNIGUduqqjh6kVZjt5rWovJqqXBJc+54rsHSZTbahoXcVec/96dt9CW+S63Pdi17ZMwdwE/CF5ev/9R2FjYo0HTOin6i2pz8HFAMeVjmXMU7O9tDibQxQX9MRl5X2jTJWk6bKE0PX2RwHlUCbFYiVext2FRxdRKm5K0mTFe2hNYPn8PrG6xtJJha2UjsFw1rMbQrLC9zOCHgi254+Hp/zxzj4+0huLnwZ5BbsyiAACyDhJiGLbB2+UB/Ui1JORVX/c+5aHh7XzeGgXEAzoVvoQewiZ31PrUrwDOdxXcF+AOS9fz4iWY9yWtX/IAxdYWAjIceGDa7DmKlO702yWPHJ+jzADydMR9B8CofQSkKZiSL0VutaPtItlqPjGBwrR0pIucCnBBTSR6l4SAEgQKVojXbBHkin/JTP3CSuAkDJjVJeua4qCEdRvxRkSP5Ck1E3yzeCYbZjTLAtMRGCpcTbvsnJcxQExCYMWS6Q4ngz+DTjxp3ijdotPcSWtm5qJ581L4hKLWLnibw4yY5KcYnXD/ZMdJo0Wpkw2VECl5/1Gx+WgdMJ9ee4kUWf9GEpabtWhwNiYX8BxhZkIw8ux8XK3rIOTCZ5Q5ZoZm6PZvHYFTU6s8aTHqoxgKBkZDRmGFjJTVp0ggtbS4OB9vKgbJ6RG0vsW9xxgNY4VQoOGHQo4Y8Zqc6TMNYfsM24qTTzuDgqsfztne86z0NZXWgDcLE3UXvfNRZuzzuCRJ/kJJ1re3+kY9FfEJFTROmn6djFRUUi7c/4SAbuziH3zVKcDE+1U/R3X8qac58aJjlLhvBdMn91i7htdRyKyxzyEpP8vmTX0C7LTp0WmW1NRZ06dYj6IIX9Npnv7KOwVan2v+c8QjlILlIHpKPYJECpBApQooRXEpSmrKUpyKVqUp1alIbfAghhhRyKKGGFnoY0i665HLqwgwr7HBkhatEMSKSh6EdQXPY6zYphFHKUH14cDV4ynFmWAX6hOgZveFNT3vGs57zoIe85GXZ8tHl2WyjW2y1zTr9frXei3LCt8FdCRT5y9+eR0FFdrujBqBvQoSQi4gQMSJBpIgMkSMKRImoEDWiQbSwAyywHT6Dr+Bz+AK+RnQY0+D0yNwIdnYyKhRKTUKJUJQX5Y/Hh8b9XmeOIRRLFBYud3L+NL0pyTAmPjlyKCfnNZ3b31suOjlXgVPqcdE52+BMdIm62h3OVd91OB+cjE7qPCq8sgPlZusWJULnSyV1nlQzJZULSgUlrTslrVIoFSyJ14FAqFuEggUlFdRMQQGhZnkoqaCgoGaKp7rQrFJCHJMcKBYqpCiL935oElZe/84d6vdQMf08WEx+/EP4b+/kTytb0b+vVZ2vLhbJzi/9FAPT0/H52UQe9nmnjHWJUInrKvL+XaHFI/87j+wHQ7NJmYcQu3Lxakx5yej48GKVNBQrSv9h4vfC7DVZnDY/XyYTPo9kNlzR2wEA"}},"time_used":104,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":104,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/main.css?ver=1.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.804Z","timestamp":1785145403804,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/_dist/css/main.css?ver=1.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-2d59e\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":185758,"size_decoded":28607,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65532), with no line terminators","md5":"27e195a8f7cf8ec2b665cc26618d02e3","sha1":"d513570ebc51e92ac9bb528c3ccfe7a4dd221e97","sha256":"8ba050cda43fbd585fcf32c25e2ea9be1d9f3276cba5cb8e9a69c32472e3af75","sha512":"991dc1ca33dc587a86208ed644bac05156f9afd7ec3bbe44b937c473ed9e866bfece2697f9865211da0254d73c7b36612d1efef9130359de6cd4996e4af39272","ssdeep":"1536:/0yYcPkPsP5PfPKswQ9QxpvxdADfmS/RuKrihrwKRsWP/N5Z6H7yuMSvZheVmfME:Mm9aoDfmS/Ruj5Z6b1vZhe4N5U0","tlshash":"5004eb636121323d6037da2567d8559c923cd432da270bfae9929d28c7cb7f106b368f","first_seen":"2026-07-27T07:14:06.796775Z","last_seen":"2026-07-27T14:04:41.086803Z","times_seen":5,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04Ijs6aXMoYSxidXR0b24saW5wdXQsdGV4dGFyZWEsc3VtbWFyeSl7LS1vdXRsaW5lLXNpemU6bWF4KDJweCwgMC4wOGVtKTstLW91dGxpbmUtc3R5bGU6c29saWQ7LS1vdXRsaW5lLWNvbG9yOmN1cnJlbnRDb2xvcn06aXMoYSxidXR0b24saW5wdXQsdGV4dGFyZWEsc3VtbWFyeSk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOnZhcigtLW91dGxpbmUtc2l6ZSkgdmFyKC0tb3V0bGluZS1zdHlsZSkgdmFyKC0tb3V0bGluZS1jb2xvcik7b3V0bGluZS1vZmZzZXQ6dmFyKC0tb3V0bGluZS1vZmZzZXQsdmFyKC0tb3V0bGluZS1zaXplKSl9OmlzKGlucHV0KTpmb2N1cy12aXNpYmxle291dGxpbmU6MH1pbnB1dHstLW91dGxpbmUtc3R5bGU6ZGFzaGVkfXN1bW1hcnl7LS1vdXRsaW5lLWNvbG9yOmJsdWU7LS1vdXRsaW5lLW9mZnNldDowLjVlbTstLW91dGxpbmUtc3R5bGU6ZG90dGVkfS5za2lwLWxpbmt7Ym9yZGVyOjA7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoNTAlKTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O3dpZHRoOjFweDt3b3JkLXdyYXA6bm9ybWFsIWltcG9ydGFudH0uc2tpcC1saW5rOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2VlZTtjbGlwOmF1dG8haW1wb3J0YW50Oy13ZWJraXQtY2xpcC1wYXRoOm5vbmU7Y2xpcC1wYXRoOm5vbmU7Y29sb3I6IzQ0NDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxZW07aGVpZ2h0OmF1dG87bGVmdDo1cHg7bGluZS1oZWlnaHQ6bm9ybWFsO3BhZGRpbmc6MTVweCAyM3B4IDE0cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dG9wOjVweDt3aWR0aDphdXRvO3otaW5kZXg6MTAwMDAwfS5zY3JlZW4tcmVhZGVyLXRleHQsLnNyLW9ubHl7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAsMCwwLDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MXB4IWltcG9ydGFudH0uc3Itb25seS5mb2N1c2FibGU6YWN0aXZlLC5zci1vbmx5LmZvY3VzYWJsZTpmb2N1c3tjbGlwOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpzdGF0aWM7d2hpdGUtc3BhY2U6aW5oZXJpdDt3aWR0aDphdXRvfS5hbGlnbi1jZW50ZXIsLnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtdXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0udGV4dC1jYXBpdGFsaXple3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9Lm92ZXJmbG93LWhpZGRlbntvdmVyZmxvdzpoaWRkZW59LmltZy1pbnZlcnR7LXdlYmtpdC1maWx0ZXI6aW52ZXJ0KDEpO2ZpbHRlcjppbnZlcnQoMSk7b3BhY2l0eTouNX0ucGItMTB7cGFkZGluZy1ib3R0b206MTBweH1bZGF0YS1vYmplY3QtZml0PWNvdmVyXXstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9W2RhdGEtb2JqZWN0LWZpdD1jb250YWluXXstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS4tbm9iZ3tiYWNrZ3JvdW5kLWltYWdlOm5vbmUhaW1wb3J0YW50fS4tbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0uYmctYXV0b3tiYWNrZ3JvdW5kLXNpemU6YXV0b30uYmctY292ZXJ7YmFja2dyb3VuZC1zaXplOmNvdmVyfS5iZy1jb250YWlue2JhY2tncm91bmQtc2l6ZTpjb250YWlufS5iZy1maXhlZHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWR9LmJnLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJnLWJvdHRvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbX0uYmctY2VudGVye2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyfS5iZy1sZWZ0e2JhY2tncm91bmQtcG9zaXRpb246bGVmdH0uYmctbGVmdC1ib3R0b217YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGJvdHRvbX0uYmctbGVmdC10b3B7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IHRvcH0uYmctcmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodH0uYmctcmlnaHQtYm90dG9te2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tfS5iZy1yaWdodC10b3B7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3B9LmJnLXRvcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcH0uYmctcmVwZWF0e2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdH0uYmctbm8tcmVwZWF0e2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0uYmctcmVwZWF0LXh7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LmJnLXJlcGVhdC15e2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC15fS5iZy1yZXBlYXQtcm91bmR7YmFja2dyb3VuZC1yZXBlYXQ6cm91bmR9LmJnLXJlcGVhdC1zcGFjZXtiYWNrZ3JvdW5kLXJlcGVhdDpzcGFjZX0uZmxleC1yb3d7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd30uZmxleC1yb3ctcmV2ZXJzZXstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9LmZsZXgtY29sey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mbGV4LWNvbC1yZXZlcnNley13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LmZsZXgtd3JhcHstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXB9LmZsZXgtd3JhcC1yZXZlcnNley1tcy1mbGV4LXdyYXA6d3JhcC1yZXZlcnNlO2ZsZXgtd3JhcDp3cmFwLXJldmVyc2V9LmZsZXgtbm93cmFwey1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9Lml0ZW1zLXN0YXJ0ey13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lml0ZW1zLWVuZHstd2Via2l0LWJveC1hbGlnbjplbmQ7LW1zLWZsZXgtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lml0ZW1zLWJhc2VsaW5ley13ZWJraXQtYm94LWFsaWduOmJhc2VsaW5lOy1tcy1mbGV4LWFsaWduOmJhc2VsaW5lO2FsaWduLWl0ZW1zOmJhc2VsaW5lfS5pdGVtcy1zdHJldGNoey13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LW1zLWZsZXgtYWxpZ246c3RyZXRjaDthbGlnbi1pdGVtczpzdHJldGNofS5jb250ZW50LWNlbnRlcnstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfS5jb250ZW50LXN0YXJ0ey1tcy1mbGV4LWxpbmUtcGFjazpzdGFydDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmNvbnRlbnQtZW5key1tcy1mbGV4LWxpbmUtcGFjazplbmQ7YWxpZ24tY29udGVudDpmbGV4LWVuZH0uY29udGVudC1iZXR3ZWVuey1tcy1mbGV4LWxpbmUtcGFjazpqdXN0aWZ5O2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uY29udGVudC1hcm91bmR7LW1zLWZsZXgtbGluZS1wYWNrOmRpc3RyaWJ1dGU7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmR9LmNvbnRlbnQtZXZlbmx5ey1tcy1mbGV4LWxpbmUtcGFjazpzcGFjZS1ldmVubHk7YWxpZ24tY29udGVudDpzcGFjZS1ldmVubHl9LnNlbGYtYXV0b3stbXMtZmxleC1pdGVtLWFsaWduOmF1dG87YWxpZ24tc2VsZjphdXRvfS5zZWxmLXN0YXJ0ey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RhcnQ7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5zZWxmLWVuZHstbXMtZmxleC1pdGVtLWFsaWduOmVuZDthbGlnbi1zZWxmOmZsZXgtZW5kfS5zZWxmLWNlbnRlcnstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0uc2VsZi1zdHJldGNoey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RyZXRjaDthbGlnbi1zZWxmOnN0cmV0Y2h9Lmp1c3RpZnktaXRlbXMtYXV0b3tqdXN0aWZ5LWl0ZW1zOmF1dG99Lmp1c3RpZnktaXRlbXMtc3RhcnR7anVzdGlmeS1pdGVtczpzdGFydH0uanVzdGlmeS1pdGVtcy1lbmR7anVzdGlmeS1pdGVtczplbmR9Lmp1c3RpZnktaXRlbXMtY2VudGVye2p1c3RpZnktaXRlbXM6Y2VudGVyfS5qdXN0aWZ5LWl0ZW1zLXN0cmV0Y2h7anVzdGlmeS1pdGVtczpzdHJldGNofS5mbGV4LWxlZnQsLmp1c3RpZnktc3RhcnR7LXdlYmtpdC1ib3gtcGFjazpzdGFydDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5mbGV4LXJpZ2h0LC5qdXN0aWZ5LWVuZHstd2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmZsZXgtY2VudGVyLC5qdXN0aWZ5LWNlbnRlcnstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uanVzdGlmeS1hcm91bmR7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9Lmp1c3RpZnktZXZlbmx5ey13ZWJraXQtYm94LXBhY2s6c3BhY2UtZXZlbmx5Oy1tcy1mbGV4LXBhY2s6c3BhY2UtZXZlbmx5O2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHl9Lmp1c3RpZnktc2VsZi1hdXRve2p1c3RpZnktc2VsZjphdXRvfS5qdXN0aWZ5LXNlbGYtc3RhcnR7anVzdGlmeS1zZWxmOnN0YXJ0fS5qdXN0aWZ5LXNlbGYtZW5ke2p1c3RpZnktc2VsZjplbmR9Lmp1c3RpZnktc2VsZi1jZW50ZXJ7anVzdGlmeS1zZWxmOmNlbnRlcn0uanVzdGlmeS1zZWxmLXN0cmV0Y2h7anVzdGlmeS1zZWxmOnN0cmV0Y2h9LmZsZXgtMXstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXg6MSAxIDAlO2ZsZXg6MSAxIDAlfS5mbGV4LWF1dG97LXdlYmtpdC1ib3gtZmxleDoxOy1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG99LmZsZXgtaW5pdGlhbHstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAxIGF1dG87ZmxleDowIDEgYXV0b30uZmxleC1ub25ley13ZWJraXQtYm94LWZsZXg6MDstbXMtZmxleDpub25lO2ZsZXg6bm9uZX0uZmxleC1ncm93LTB7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4LXBvc2l0aXZlOjA7ZmxleC1ncm93OjB9LmZsZXgtZ3Jvd3std2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MX0uZmxleC1zaHJpbmstMHstbXMtZmxleC1uZWdhdGl2ZTowO2ZsZXgtc2hyaW5rOjB9LmZsZXgtc2hyaW5rey1tcy1mbGV4LW5lZ2F0aXZlOjE7ZmxleC1zaHJpbms6MX0ub3JkZXItMnstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjM7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyfS5vcmRlci0zey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6NDstbXMtZmxleC1vcmRlcjozO29yZGVyOjN9Lm9yZGVyLWZpcnN0ey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6LTk5OTg7LW1zLWZsZXgtb3JkZXI6LTk5OTk7b3JkZXI6LTk5OTl9Lm9yZGVyLWxhc3R7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoxMDAwMDstbXMtZmxleC1vcmRlcjo5OTk5O29yZGVyOjk5OTl9Lm9yZGVyLW5vbmV7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoxOy1tcy1mbGV4LW9yZGVyOjA7b3JkZXI6MH06cm9vdHstLWdyaWQtZ3V0dGVyLXdpZHRoOjA7LS1ncmlkLW91dGVyLW1hcmdpbjoyMHB4Oy0tZ3JpZC1ndXR0ZXItY29tcGVuc2F0aW9uOmNhbGMoKHZhcigtLWdyaWQtZ3V0dGVyLXdpZHRoKSAqIDAuNSkgKiAtMSk7LS1ncmlkLWhhbGYtZ3V0dGVyLXdpZHRoOmNhbGMoKHZhcigtLWdyaWQtZ3V0dGVyLXdpZHRoKSAqIDAuNSkpfS5yb3d7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMSBhdXRvO2ZsZXg6MCAxIGF1dG87LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0OnZhcigtLWdyaWQtZ3V0dGVyLWNvbXBlbnNhdGlvbiwtLjVlbSk7bWFyZ2luLWxlZnQ6dmFyKC0tZ3JpZC1ndXR0ZXItY29tcGVuc2F0aW9uLC0uNWVtKX0ucm93LnJldmVyc2V7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOnJldmVyc2U7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5jb2wucmV2ZXJzZXstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOnJldmVyc2U7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS5jb2x7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MDtmbGV4LWJhc2lzOjA7LXdlYmtpdC1ib3gtZmxleDoxOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctcmlnaHQ6dmFyKC0tZ3JpZC1oYWxmLWd1dHRlci13aWR0aCwuNXJlbSk7cGFkZGluZy1sZWZ0OnZhcigtLWdyaWQtaGFsZi1ndXR0ZXItd2lkdGgsLjVyZW0pfS5jb2wteHMsLmNvbC14cy0xLC5jb2wteHMtMTAsLmNvbC14cy0xMSwuY29sLXhzLTEyLC5jb2wteHMtMiwuY29sLXhzLTMsLmNvbC14cy00LC5jb2wteHMtNSwuY29sLXhzLTYsLmNvbC14cy03LC5jb2wteHMtOCwuY29sLXhzLTksLmNvbC14cy1vZmZzZXQtMCwuY29sLXhzLW9mZnNldC0xLC5jb2wteHMtb2Zmc2V0LTEwLC5jb2wteHMtb2Zmc2V0LTExLC5jb2wteHMtb2Zmc2V0LTEyLC5jb2wteHMtb2Zmc2V0LTIsLmNvbC14cy1vZmZzZXQtMywuY29sLXhzLW9mZnNldC00LC5jb2wteHMtb2Zmc2V0LTUsLmNvbC14cy1vZmZzZXQtNiwuY29sLXhzLW9mZnNldC03LC5jb2wteHMtb2Zmc2V0LTgsLmNvbC14cy1vZmZzZXQtOXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG87cGFkZGluZy1yaWdodDp2YXIoLS1ncmlkLWhhbGYtZ3V0dGVyLXdpZHRoLC41cmVtKTtwYWRkaW5nLWxlZnQ6dmFyKC0tZ3JpZC1oYWxmLWd1dHRlci13aWR0aCwuNXJlbSl9LmNvbC14c3std2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDttYXgtd2lkdGg6MTAwJX0uY29sLXhzLTF7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6OC4zMzMzMzMzMyU7ZmxleC1iYXNpczo4LjMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMyV9LmNvbC14cy0yey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjE2LjY2NjY2NjY3JTtmbGV4LWJhc2lzOjE2LjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjclfS5jb2wteHMtM3stbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToyNSU7ZmxleC1iYXNpczoyNSU7bWF4LXdpZHRoOjI1JX0uY29sLXhzLTR7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MzMuMzMzMzMzMzMlO2ZsZXgtYmFzaXM6MzMuMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMyV9LmNvbC14cy01ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjQxLjY2NjY2NjY3JTtmbGV4LWJhc2lzOjQxLjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjclfS5jb2wteHMtNnstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo1MCU7ZmxleC1iYXNpczo1MCU7bWF4LXdpZHRoOjUwJX0uY29sLXhzLTd7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NTguMzMzMzMzMzMlO2ZsZXgtYmFzaXM6NTguMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC14cy04ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjY2LjY2NjY2NjY3JTtmbGV4LWJhc2lzOjY2LjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjclfS5jb2wteHMtOXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo3NSU7ZmxleC1iYXNpczo3NSU7bWF4LXdpZHRoOjc1JX0uY29sLXhzLTEwey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjgzLjMzMzMzMzMzJTtmbGV4LWJhc2lzOjgzLjMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wteHMtMTF7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6OTEuNjY2NjY2NjclO2ZsZXgtYmFzaXM6OTEuNjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NyV9LmNvbC14cy0xMnstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxMDAlO2ZsZXgtYmFzaXM6MTAwJTttYXgtd2lkdGg6MTAwJX0uY29sLXhzLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9LmNvbC14cy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sLXhzLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sLXhzLW9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0uY29sLXhzLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sLXhzLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC14cy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5zdGFydC14c3std2Via2l0LWJveC1wYWNrOnN0YXJ0Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7dGV4dC1hbGlnbjpzdGFydH0uY2VudGVyLXhzey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LmVuZC14c3std2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7dGV4dC1hbGlnbjplbmR9LnRvcC14c3std2Via2l0LWJveC1hbGlnbjpzdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5taWRkbGUteHN7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmJvdHRvbS14c3std2Via2l0LWJveC1hbGlnbjplbmQ7LW1zLWZsZXgtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5hcm91bmQteHN7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmJldHdlZW4teHN7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uZmlyc3QteHN7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDowOy1tcy1mbGV4LW9yZGVyOi0xO29yZGVyOi0xfS5sYXN0LXhzey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MjstbXMtZmxleC1vcmRlcjoxO29yZGVyOjF9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNvbC1zbSwuY29sLXNtLTEsLmNvbC1zbS0xMCwuY29sLXNtLTExLC5jb2wtc20tMTIsLmNvbC1zbS0yLC5jb2wtc20tMywuY29sLXNtLTQsLmNvbC1zbS01LC5jb2wtc20tNiwuY29sLXNtLTcsLmNvbC1zbS04LC5jb2wtc20tOSwuY29sLXNtLW9mZnNldC0wLC5jb2wtc20tb2Zmc2V0LTEsLmNvbC1zbS1vZmZzZXQtMTAsLmNvbC1zbS1vZmZzZXQtMTEsLmNvbC1zbS1vZmZzZXQtMTIsLmNvbC1zbS1vZmZzZXQtMiwuY29sLXNtLW9mZnNldC0zLC5jb2wtc20tb2Zmc2V0LTQsLmNvbC1zbS1vZmZzZXQtNSwuY29sLXNtLW9mZnNldC02LC5jb2wtc20tb2Zmc2V0LTcsLmNvbC1zbS1vZmZzZXQtOCwuY29sLXNtLW9mZnNldC05ey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0OnZhcigtLWdyaWQtaGFsZi1ndXR0ZXItd2lkdGgsLjVyZW0pO3BhZGRpbmctbGVmdDp2YXIoLS1ncmlkLWhhbGYtZ3V0dGVyLXdpZHRoLC41cmVtKX0uY29sLXNtey13ZWJraXQtYm94LWZsZXg6MTstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowO21heC13aWR0aDoxMDAlfS5jb2wtc20tMXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo4LjMzMzMzMzMzJTtmbGV4LWJhc2lzOjguMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzJX0uY29sLXNtLTJ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTYuNjY2NjY2NjclO2ZsZXgtYmFzaXM6MTYuNjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NyV9LmNvbC1zbS0zey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjI1JTtmbGV4LWJhc2lzOjI1JTttYXgtd2lkdGg6MjUlfS5jb2wtc20tNHstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTozMy4zMzMzMzMzMyU7ZmxleC1iYXNpczozMy4zMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzJX0uY29sLXNtLTV7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NDEuNjY2NjY2NjclO2ZsZXgtYmFzaXM6NDEuNjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NyV9LmNvbC1zbS02ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjUwJTtmbGV4LWJhc2lzOjUwJTttYXgtd2lkdGg6NTAlfS5jb2wtc20tN3stbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo1OC4zMzMzMzMzMyU7ZmxleC1iYXNpczo1OC4zMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzJX0uY29sLXNtLTh7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NjYuNjY2NjY2NjclO2ZsZXgtYmFzaXM6NjYuNjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NyV9LmNvbC1zbS05ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjc1JTtmbGV4LWJhc2lzOjc1JTttYXgtd2lkdGg6NzUlfS5jb2wtc20tMTB7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ODMuMzMzMzMzMzMlO2ZsZXgtYmFzaXM6ODMuMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1zbS0xMXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo5MS42NjY2NjY2NyU7ZmxleC1iYXNpczo5MS42NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY3JX0uY29sLXNtLTEyey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjEwMCU7ZmxleC1iYXNpczoxMDAlO21heC13aWR0aDoxMDAlfS5jb2wtc20tb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH0uY29sLXNtLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5jb2wtc20tb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wtc20tb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5jb2wtc20tb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wtc20tb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5jb2wtc20tb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wtc20tb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXNtLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LnN0YXJ0LXNtey13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt0ZXh0LWFsaWduOnN0YXJ0fS5jZW50ZXItc217LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uZW5kLXNtey13ZWJraXQtYm94LXBhY2s6ZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt0ZXh0LWFsaWduOmVuZH0udG9wLXNtey13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1pZGRsZS1zbXstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYm90dG9tLXNtey13ZWJraXQtYm94LWFsaWduOmVuZDstbXMtZmxleC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9LmFyb3VuZC1zbXstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGU7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uYmV0d2Vlbi1zbXstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5maXJzdC1zbXstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjA7LW1zLWZsZXgtb3JkZXI6LTE7b3JkZXI6LTF9Lmxhc3Qtc217LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoyOy1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MX19QG1lZGlhKG1pbi13aWR0aDoxMTEycHgpezpyb290ey0tZ3JpZC1ndXR0ZXItd2lkdGg6MjRweDstLWdyaWQtb3V0ZXItbWFyZ2luOjI0cHh9LmNvbC1tZCwuY29sLW1kLTEsLmNvbC1tZC0xMCwuY29sLW1kLTExLC5jb2wtbWQtMTIsLmNvbC1tZC0yLC5jb2wtbWQtMywuY29sLW1kLTQsLmNvbC1tZC01LC5jb2wtbWQtNiwuY29sLW1kLTcsLmNvbC1tZC04LC5jb2wtbWQtOSwuY29sLW1kLW9mZnNldC0wLC5jb2wtbWQtb2Zmc2V0LTEsLmNvbC1tZC1vZmZzZXQtMTAsLmNvbC1tZC1vZmZzZXQtMTEsLmNvbC1tZC1vZmZzZXQtMTIsLmNvbC1tZC1vZmZzZXQtMiwuY29sLW1kLW9mZnNldC0zLC5jb2wtbWQtb2Zmc2V0LTQsLmNvbC1tZC1vZmZzZXQtNSwuY29sLW1kLW9mZnNldC02LC5jb2wtbWQtb2Zmc2V0LTcsLmNvbC1tZC1vZmZzZXQtOCwuY29sLW1kLW9mZnNldC05ey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0OnZhcigtLWdyaWQtaGFsZi1ndXR0ZXItd2lkdGgsLjVyZW0pO3BhZGRpbmctbGVmdDp2YXIoLS1ncmlkLWhhbGYtZ3V0dGVyLXdpZHRoLC41cmVtKX0uY29sLW1key13ZWJraXQtYm94LWZsZXg6MTstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowO21heC13aWR0aDoxMDAlfS5jb2wtbWQtMXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo4LjMzMzMzMzMzJTtmbGV4LWJhc2lzOjguMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzJX0uY29sLW1kLTJ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTYuNjY2NjY2NjclO2ZsZXgtYmFzaXM6MTYuNjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NyV9LmNvbC1tZC0zey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjI1JTtmbGV4LWJhc2lzOjI1JTttYXgtd2lkdGg6MjUlfS5jb2wtbWQtNHstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTozMy4zMzMzMzMzMyU7ZmxleC1iYXNpczozMy4zMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzJX0uY29sLW1kLTV7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NDEuNjY2NjY2NjclO2ZsZXgtYmFzaXM6NDEuNjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NyV9LmNvbC1tZC02ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjUwJTtmbGV4LWJhc2lzOjUwJTttYXgtd2lkdGg6NTAlfS5jb2wtbWQtN3stbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo1OC4zMzMzMzMzMyU7ZmxleC1iYXNpczo1OC4zMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzJX0uY29sLW1kLTh7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NjYuNjY2NjY2NjclO2ZsZXgtYmFzaXM6NjYuNjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NyV9LmNvbC1tZC05ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjc1JTtmbGV4LWJhc2lzOjc1JTttYXgtd2lkdGg6NzUlfS5jb2wtbWQtMTB7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ODMuMzMzMzMzMzMlO2ZsZXgtYmFzaXM6ODMuMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1tZC0xMXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo5MS42NjY2NjY2NyU7ZmxleC1iYXNpczo5MS42NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY3JX0uY29sLW1kLTEyey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjEwMCU7ZmxleC1iYXNpczoxMDAlO21heC13aWR0aDoxMDAlfS5jb2wtbWQtb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH0uY29sLW1kLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMlfS5jb2wtbWQtb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wtbWQtb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wtbWQtb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5jb2wtbWQtb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5jb2wtbWQtb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wtbWQtb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5jb2wtbWQtb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5jb2wtbWQtb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wtbWQtb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzJX0uY29sLW1kLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LnN0YXJ0LW1key13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt0ZXh0LWFsaWduOnN0YXJ0fS5jZW50ZXItbWR7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uZW5kLW1key13ZWJraXQtYm94LXBhY2s6ZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDt0ZXh0LWFsaWduOmVuZH0udG9wLW1key13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1pZGRsZS1tZHstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYm90dG9tLW1key13ZWJraXQtYm94LWFsaWduOmVuZDstbXMtZmxleC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9LmFyb3VuZC1tZHstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGU7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uYmV0d2Vlbi1tZHstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5maXJzdC1tZHstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjA7LW1zLWZsZXgtb3JkZXI6LTE7b3JkZXI6LTF9Lmxhc3QtbWR7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoyOy1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MX19QG1lZGlhKG1pbi13aWR0aDoxMjgwcHgpey5jb2wtbGcsLmNvbC1sZy0xLC5jb2wtbGctMTAsLmNvbC1sZy0xMSwuY29sLWxnLTEyLC5jb2wtbGctMiwuY29sLWxnLTMsLmNvbC1sZy00LC5jb2wtbGctNSwuY29sLWxnLTYsLmNvbC1sZy03LC5jb2wtbGctOCwuY29sLWxnLTksLmNvbC1sZy1vZmZzZXQtMCwuY29sLWxnLW9mZnNldC0xLC5jb2wtbGctb2Zmc2V0LTEwLC5jb2wtbGctb2Zmc2V0LTExLC5jb2wtbGctb2Zmc2V0LTEyLC5jb2wtbGctb2Zmc2V0LTIsLmNvbC1sZy1vZmZzZXQtMywuY29sLWxnLW9mZnNldC00LC5jb2wtbGctb2Zmc2V0LTUsLmNvbC1sZy1vZmZzZXQtNiwuY29sLWxnLW9mZnNldC03LC5jb2wtbGctb2Zmc2V0LTgsLmNvbC1sZy1vZmZzZXQtOXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG87cGFkZGluZy1yaWdodDp2YXIoLS1ncmlkLWhhbGYtZ3V0dGVyLXdpZHRoLC41cmVtKTtwYWRkaW5nLWxlZnQ6dmFyKC0tZ3JpZC1oYWxmLWd1dHRlci13aWR0aCwuNXJlbSl9LmNvbC1sZ3std2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDttYXgtd2lkdGg6MTAwJX0uY29sLWxnLTF7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6OC4zMzMzMzMzMyU7ZmxleC1iYXNpczo4LjMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMyV9LmNvbC1sZy0yey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjE2LjY2NjY2NjY3JTtmbGV4LWJhc2lzOjE2LjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbGctM3stbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToyNSU7ZmxleC1iYXNpczoyNSU7bWF4LXdpZHRoOjI1JX0uY29sLWxnLTR7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MzMuMzMzMzMzMzMlO2ZsZXgtYmFzaXM6MzMuMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1sZy01ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjQxLjY2NjY2NjY3JTtmbGV4LWJhc2lzOjQxLjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtbGctNnstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo1MCU7ZmxleC1iYXNpczo1MCU7bWF4LXdpZHRoOjUwJX0uY29sLWxnLTd7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NTguMzMzMzMzMzMlO2ZsZXgtYmFzaXM6NTguMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1sZy04ey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjY2LjY2NjY2NjY3JTtmbGV4LWJhc2lzOjY2LjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbGctOXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTo3NSU7ZmxleC1iYXNpczo3NSU7bWF4LXdpZHRoOjc1JX0uY29sLWxnLTEwey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjgzLjMzMzMzMzMzJTtmbGV4LWJhc2lzOjgzLjMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtbGctMTF7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6OTEuNjY2NjY2NjclO2ZsZXgtYmFzaXM6OTEuNjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1sZy0xMnstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxMDAlO2ZsZXgtYmFzaXM6MTAwJTttYXgtd2lkdGg6MTAwJX0uY29sLWxnLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9LmNvbC1sZy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sLWxnLW9mZnNldC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sLWxnLW9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzJX0uY29sLWxnLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sLWxnLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1sZy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjclfS5zdGFydC1sZ3std2Via2l0LWJveC1wYWNrOnN0YXJ0Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7dGV4dC1hbGlnbjpzdGFydH0uY2VudGVyLWxney13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LmVuZC1sZ3std2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7dGV4dC1hbGlnbjplbmR9LnRvcC1sZ3std2Via2l0LWJveC1hbGlnbjpzdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5taWRkbGUtbGd7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmJvdHRvbS1sZ3std2Via2l0LWJveC1hbGlnbjplbmQ7LW1zLWZsZXgtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5hcm91bmQtbGd7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmJldHdlZW4tbGd7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uZmlyc3QtbGd7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDowOy1tcy1mbGV4LW9yZGVyOi0xO29yZGVyOi0xfS5sYXN0LWxney13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MjstbXMtZmxleC1vcmRlcjoxO29yZGVyOjF9fS5ib3gtcm93e3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4taGVpZ2h0OjFlbTttYXJnaW4tYm90dG9tOjA7YmFja2dyb3VuZDojMDA3ZmZmO2JvcmRlcjoxcHggc29saWQgI2ZmZjtib3JkZXItcmFkaXVzOjJweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZn1hey13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246Y29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKX1pbnB1dFt0eXBlPXRleHRdey13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpib3JkZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9aDEsaDIsaDMsaDR7LXdlYmtpdC10cmFuc2l0aW9uOmZvbnQtc2l6ZSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246Zm9udC1zaXplIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9c3Zney13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksc3Ryb2tlIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpmaWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksc3Ryb2tlIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9aW1ney13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gLjVzO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIC41czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyxvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gLjVzfUAtd2Via2l0LWtleWZyYW1lcyBncmlkLWFwcGVhcnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjMpO3RyYW5zZm9ybTpzY2FsZSguMyl9MTAwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIGdyaWQtYXBwZWFyezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguMyk7dHJhbnNmb3JtOnNjYWxlKC4zKX0xMDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWFwcGVhcnswJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZS1hcHBlYXJ7MCV7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1sZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDBweCwwLDApfTEwMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX1Aa2V5ZnJhbWVzIGZhZGUtbGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwcHgsMCwwKX0xMDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWFwcGVhcnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDBweCl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIHNsaWRlLWFwcGVhcnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDBweCl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS10cmFuc2xhdGV7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMzBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMzBweCl9MTAwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBmYWRlLXRyYW5zbGF0ZXswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgzMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgzMHB4KX0xMDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS10cmFuc2xhdGUtcmV2ZXJzZXswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMzBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTMwcHgpfTEwMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgZmFkZS10cmFuc2xhdGUtcmV2ZXJzZXswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMzBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTMwcHgpfTEwMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLXRyYW5zbGF0ZS12ZXJ0aWNhbHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSg2MHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2MHB4KX0xMDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGZhZGUtdHJhbnNsYXRlLXZlcnRpY2FsezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDYwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDYwcHgpfTEwMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLXNjYWxlezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguMik7dHJhbnNmb3JtOnNjYWxlKC4yKX0xMDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgZmFkZS1zY2FsZXswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjIpO3RyYW5zZm9ybTpzY2FsZSguMil9MTAwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX0uc2l0ZS1mb290ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1mb290ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWZvb3Rlci1jb2xvcik7cGFkZGluZy1ib3R0b206Y2FsYyhlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgKyAwcHgpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LnNpdGUtZm9vdGVyIGF7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LnNpdGUtZm9vdGVyIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuc2l0ZS1mb290ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9fS5zaXRlLWZvb3RlciAuc29jaWFsLWxpc3R7LS1zb2NpYWwtaWNvbi1ncmlkOjUycHg7Z2FwOnZhcigtLWZvb3Rlci1saW5rLWdhcF9oLDF2dyk7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuc2l0ZS1mb290ZXIgLnNvY2lhbC1saXN0ey0tc29jaWFsLWljb24tZ3JpZDo3NXB4Oy13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MjstbXMtZmxleC1vcmRlcjoxO29yZGVyOjE7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9fS5zaXRlLWZvb3RlciAuc29jaWFsLWxpc3QgLnNvY2lhbC1saXN0X19saW5re3dpZHRoOnZhcigtLXNvY2lhbC1pY29uLWdyaWQpO2hlaWdodDp2YXIoLS1zb2NpYWwtaWNvbi1ncmlkKX0uc2l0ZS1mb290ZXIgLmxvZ28taW1ne2hlaWdodDp2YXIoLS1mb290ZXItbG9nby1oZWlnaHQpO3dpZHRoOnZhcigtLWZvb3Rlci1sb2dvLXdpZHRoKX1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtZm9vdGVyIC5sb2dvLWltZ3ttaW4taGVpZ2h0OjI1cHg7bWF4LWhlaWdodDo4MHB4fX0uZm9vdGVyLXRvcHtmb250LXNpemU6dmFyKC0tZm9vdGVyLXRvcC1mb250LXNpemUpfS5mb290ZXItdG9wX19pbm5lcntwYWRkaW5nLXRvcDoxMXZofS5mb290ZXItdG9wX19pbm5lciAuYmctaW1nIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5mb290ZXItdG9wIC5uZXdzbGV0dGVyLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5mb290ZXItdG9wIC5uZXdzbGV0dGVyLWNvbnRhaW5lciAubndzLWZvcm17bWF4LXdpZHRoOjQ2MHB4O3dpZHRoOjEwMCU7bWFyZ2luLWlubGluZTphdXRvfS5mb290ZXItdG9wIC5uZXdzbGV0dGVyLWNvbnRhaW5lcl9fYm9keXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjY1MHB4O21hcmdpbjowIGF1dG87Y29sb3I6IzBiMGIwYn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHl7cGFkZGluZy1pbmxpbmU6dmFyKC0tcGFnZS1ndXR0ZXIpfX0uZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLm53cy10aXRsZXtmb250LXNpemU6NTBweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zO21hcmdpbi1ib3R0b206NDBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLm53cy10aXRsZXtmb250LXNpemU6MzBweH19LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5ud3MtdGl0bGUgc3BhbntiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDkwZGVnLCMzNjUzYTcsIzY4Y2RlZCA4MCUpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnR9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5ud3Mtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyNnB4O21hcmdpbi1ib3R0b206MTBweH0uZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLm53cy10ZXh0e2ZvbnQtc2l6ZToxNnB4O21hcmdpbjowIGF1dG8gMjBweDtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWluLXdpZHRoOjc2N3B4KXsuZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLm53cy10ZXh0OmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6MzBweDtoZWlnaHQ6ODBweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3pNQ2NnYUdWcFoyaDBQU2M0TVNjZ1ptbHNiRDBuYm05dVpTYytQSEJoZEdnZ1ptbHNiRDBuZFhKc0tDTmhLU2NnWm1sc2JDMXlkV3hsUFNkbGRtVnViMlJrSnlCa1BTZE5NeTR5TnlBeUxqZzVPRUV4TGpVZ01TNDFJREFnTUNBeElEUXVOelV1TWpnNFl6RXhMamt4TVNBMkxqYzBPQ0F5TWk0eU5qSWdNakF1TmpJeElESTBMakU1SURNMUxqVTJMamsyT0NBM0xqVXdOUzB1TVRrZ01UVXVNamsxTFRRdU16WTJJREl5TGpVMU1pMHpMamM1T0NBMkxqWXdNaTB4TUM0d05EWWdNVEl1TmpndE1Ua3VNamc0SURFM0xqWTVObXd4TUM0NU55QXhMakF6TjJFeExqVWdNUzQxSURBZ01TQXhMUzR5T0RJZ01pNDVPRGRNTVM0ek9UUWdOemd1TnpSaE1TNDFJREV1TlNBd0lEQWdNUzB4TGpNMU1pMHhMall6TkV3eExqUXlJRFl5TGpVeU9XRXhMalVnTVM0MUlEQWdNQ0F4SURJdU9UZzNMakk0TWt3ekxqTTNOaUEzTXk0M01UWmpPUzR4TVRNdE5DNDROVElnTVRVdU1EWXRNVEF1TmpZMUlERTRMalU1TnkweE5pNDRNVElnTXk0NE1UUXROaTQyTWpnZ05DNDRPRFF0TVRNdU56UTJJRE11T1RrdE1qQXVOamN5UXpJMExqRTJOaUF5TWk0ek1EY2dNVFF1TkRNeElEa3VNakl5SURNdU1qY2dNaTQ0T1RoYUp5QmpiR2x3TFhKMWJHVTlKMlYyWlc1dlpHUW5MejQ4WkdWbWN6NDhiR2x1WldGeVIzSmhaR2xsYm5RZ2FXUTlKMkVuSUhneFBTY3lOeTQwT1RFbklIZ3lQU2N0TXk0Mk1qY25JSGt4UFNjeE1UQXVPRGcxSnlCNU1qMG5ORE11TURReEp5Qm5jbUZrYVdWdWRGVnVhWFJ6UFNkMWMyVnlVM0JoWTJWUGJsVnpaU2MrUEhOMGIzQWdjM1J2Y0MxamIyeHZjajBuSXpNMk5UTkJOeWN2UGp4emRHOXdJRzltWm5ObGREMG5NU2NnYzNSdmNDMWpiMnh2Y2owbkl6WTRRMFJGUkNjdlBqd3ZiR2x1WldGeVIzSmhaR2xsYm5RK1BDOWtaV1p6UGp3dmMzWm5QZz09KTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotNDVweH19LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3Jze3BhZGRpbmc6MTRweDtib3JkZXItcmFkaXVzOjI1cHg7Zm9udC1zaXplOjE2cHg7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtib3JkZXItd2lkdGg6MXB4fS5mb290ZXItdG9wIC5uZXdzbGV0dGVyLWNvbnRhaW5lcl9fYm9keSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycz5oMi5oaWRlX3N1bW1hcnl7Zm9udC1zaXplOjE2cHh9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnZhbGlkYXRpb25fbWVzc2FnZXtwYWRkaW5nOjE5cHg7Ym9yZGVyLXJhZGl1czoyNXB4O2ZvbnQtc2l6ZToxNnB4O2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IGZvcm17ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWFyZ2luOmF1dG99QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IGZvcm17bWFyZ2luLWJvdHRvbToyNXB4fX0uZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLmdmaWVsZF9sYWJlbHtkaXNwbGF5Om5vbmV9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV9mb290ZXIuYmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDtib3JkZXItcmFkaXVzOjI1cHg7dG9wOjRweDtwYWRkaW5nOjA7bWFyZ2luOjB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV9mb290ZXIuYmVmb3Jle2JvcmRlci1yYWRpdXM6MjBweDt0b3A6MnB4fX0uZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLmdmb3JtX2Zvb3Rlci5iZWZvcmUgLmdmb3JtX2J1dHRvbntmb250LXNpemU6MDt3aWR0aDo4MHB4O2hlaWdodDo1NXB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjNE1TY2dhR1ZwWjJoMFBTYzFOaWNnWm1sc2JEMG5ibTl1WlNjK1BISmxZM1FnZDJsa2RHZzlKemd3TGpNME15Y2dhR1ZwWjJoMFBTYzFOU2NnZVQwbkxqQXhOU2NnWm1sc2JEMG5Jek0yTlROQk55Y2djbmc5SnpFMUp5OCtQSEJoZEdnZ1ptbHNiRDBuSTJabVppY2dabWxzYkMxeWRXeGxQU2RsZG1WdWIyUmtKeUJrUFNkTk5EVXVPVGsxSURJNExqWTROVWd6TUhZdE1pNHpOR2d4TlM0NU9UWnNMVFV1T1RJdE5pNHlNVFlnTVM0Mk9UVXRNUzQyTVRRZ09DNDFOeklnT1MwNExqVTNNaUE1TFRFdU5qazFMVEV1TmpFMUlEVXVPVEl0Tmk0eU1UVmFKeUJqYkdsd0xYSjFiR1U5SjJWMlpXNXZaR1FuTHo0OEwzTjJaejQ9KTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXJ9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV9mb290ZXIuYmVmb3JlIC5nZm9ybV9idXR0b246aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2M0TVNjZ2FHVnBaMmgwUFNjMU5pY2dabWxzYkQwbmJtOXVaU2MrUEhKbFkzUWdkMmxrZEdnOUp6Z3dMak0wTXljZ2FHVnBaMmgwUFNjMU5TY2dlVDBuTGpBeE5TY2dabWxzYkQwbkkwWkdOakF3TUNjZ2NuZzlKekUxSnk4K1BIQmhkR2dnWm1sc2JEMG5JMlptWmljZ1ptbHNiQzF5ZFd4bFBTZGxkbVZ1YjJSa0p5QmtQU2ROTkRVdU9UazFJREk0TGpZNE5VZ3pNSFl0TWk0ek5HZ3hOUzQ1T1Rac0xUVXVPVEl0Tmk0eU1UWWdNUzQyT1RVdE1TNDJNVFFnT0M0MU56SWdPUzA0TGpVM01pQTVMVEV1TmprMUxURXVOakUxSURVdU9USXROaTR5TVRWYUp5QmpiR2x3TFhKMWJHVTlKMlYyWlc1dlpHUW5MejQ4TDNOMlp6ND0pO3BhZGRpbmctaW5saW5lOjB9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV9ib2R5e3dpZHRoOjEwMCV9LmZvb3Rlci10b3AgLm5ld3NsZXR0ZXItY29udGFpbmVyX19ib2R5IC5nZm9ybV9ib2R5IGlucHV0e3dpZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZDdkYWUyO2JvcmRlci1yYWRpdXM6MjVweDtwYWRkaW5nOjIwcHggOTBweCAyMHB4IDIwcHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxNnB4IWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZm9vdGVyLXRvcCAubmV3c2xldHRlci1jb250YWluZXJfX2JvZHkgLmdmb3JtX2JvZHkgaW5wdXR7cGFkZGluZzoxNXB4IDkwcHggMTVweCAyMHB4IWltcG9ydGFudH19LmZvb3Rlci1ib3R0b217LS1mb290ZXItY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Zm9udC1zaXplOnZhcigtLWZvb3Rlci1ib3R0b20tZm9udC1zaXplKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvb3Rlci1jb2xvcik7cGFkZGluZy1ib3R0b206MTAwcHg7cGFkZGluZy10b3A6NDBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZm9vdGVyLWJvdHRvbXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mb290ZXItYm90dG9tIC5mb290ZXItYm90dG9tX19pbm5lcjpmaXJzdC1jaGlsZHstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjI7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmZvb3Rlci1ib3R0b20gLmZvb3Rlci1ib3R0b21fX2lubmVyOm50aC1jaGlsZCgyKXstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjQ7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozO3BhZGRpbmctYm90dG9tOjEwcmVtfS5mb290ZXItYm90dG9tIC5mb290ZXItYm90dG9tX19pbm5lcjpsYXN0LWNoaWxkey13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6MzstbXMtZmxleC1vcmRlcjoyO29yZGVyOjJ9fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5mb290ZXItYm90dG9tX19pbm5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fX0uZm9vdGVyLWJvdHRvbSBsaXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvb3Rlci1ib3R0b20gbGkgYXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uZm9vdGVyLWJvdHRvbSAuZm9vdGVyLWRpc2NsYWltZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9LmZvb3Rlci1uYXZ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjp2YXIoLS1mb290ZXItdG9wLW5hdi1kaXJlY3Rpb24scm93KTtmbGV4LWRpcmVjdGlvbjp2YXIoLS1mb290ZXItdG9wLW5hdi1kaXJlY3Rpb24scm93KTtnYXA6dmFyKC0tZm9vdGVyLWxpbmstZ2FwX2gpfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuZm9vdGVyLW5hdnstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXB9fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5mb290ZXItbmF2IGxpe21hcmdpbi1ib3R0b206dmFyKC0tZm9vdGVyLWxpbmstZ2FwX3YpfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZm9vdGVyLW5hdiNtZW51LWZvb3Rlci1saW5rc3tib3JkZXItdG9wOi41cHggc29saWQgI2Q5ZDlkOTtib3JkZXItYm90dG9tOi41cHggc29saWQgI2Q5ZDlkOTtwYWRkaW5nOjE1cHggMDttYXJnaW46MjBweCAwOy1tcy1mbGV4LXBhY2s6ZGlzdHJpYnV0ZTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfX0uZm9vdGVyLW5hdiAuc3ViLW1lbnV7ZGlzcGxheTpub25lfS5mb290ZXItdGl0bGV7Zm9udC13ZWlnaHQ6dmFyKC0tZm9vdGVyLXRpdGxlLXdlaWdodCk7Zm9udC1zaXplOnZhcigtLWZvb3Rlci10aXRsZS1zaXplKTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1mb290ZXItdGl0bGUtdHJhbnNmb3JtKTttYXJnaW4tYm90dG9tOi41ZW19LmZvb3Rlci1tYXAgaWZyYW1lLC5mb290ZXItbWFwIGltYWdlLC5mb290ZXItbWFwIHBpY3R1cmV7bWF4LXdpZHRoOjEwMCV9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5mb290ZXItbWFwIGlmcmFtZSwuZm9vdGVyLW1hcCBpbWFnZSwuZm9vdGVyLW1hcCBwaWN0dXJle21heC1oZWlnaHQ6MjUwcHh9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuZm9vdGVyLWJ5e3RleHQtYWxpZ246cmlnaHR9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5mb290ZXItYnl7bWFyZ2luLWJvdHRvbToyMHB4fX0uZm9vdGVyLWJ5IGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY29weXJpZ2h0e3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jb3B5cmlnaHR7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDozOy1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn19LmZvb3Rlci1uYXYgLmN1cnJlbnQtbWVudS1pdGVtPmF7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5mb290ZXItbmF2LmgtZGlyZWN0aW9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLWZvb3Rlci1saW5rLWdhcF9oLDF2dyl9fS5mb290ZXItbmF2LnYtZGlyZWN0aW9uIGxpe21hcmdpbi1ib3R0b206dmFyKC0tZm9vdGVyLWxpbmstZ2FwX3YpfS5mb290ZXItbmF2IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uYy1uZXdzbGV0dGVyey0tYy1ubC1oZWlnaHQ6NDBweDstLWMtbmwtcmFkaXVzOjEwcHg7LS1jLW5sLXRpdGxlLXNpemU6My4ycmVtOy0tYy1ubC10aXRsZS13ZWlnaHQ6NzAwO3Bvc2l0aW9uOnJlbGF0aXZlfS5jLW5ld3NsZXR0ZXIgLndwY2Y3LWZvcm0sLmMtbmV3c2xldHRlcl9faW5uZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsuYy1uZXdzbGV0dGVyX19pbm5lcnt3aWR0aDoxMDAlOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jLW5ld3NsZXR0ZXJfX2lubmVyPmRpdnttYXJnaW4tYm90dG9tOjEwcHh9fS5jLW5ld3NsZXR0ZXJfX3RpdGxle2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKTtmb250LXdlaWdodDp2YXIoLS1jLW5sLXRpdGxlLXdlaWdodCk7Zm9udC1zaXplOnZhcigtLWMtbmwtdGl0bGUtc2l6ZSk7bWluLXdpZHRoOjMwJX1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsuYy1uZXdzbGV0dGVyX190aXRsZXttYXJnaW4tYm90dG9tOjE1cHh9fS5jLW5ld3NsZXR0ZXIgaW5wdXRbdHlwZT1lbWFpbF0sLmMtbmV3c2xldHRlciBpbnB1dFt0eXBlPXRleHRde21heC13aWR0aDozMDBweDtib3JkZXI6bm9uZTtwYWRkaW5nOjVweCAxMHB4O2hlaWdodDp2YXIoLS1jLW5sLWhlaWdodCl9LmMtbmV3c2xldHRlciBidXR0b24sLmMtbmV3c2xldHRlciBpbnB1dHtoZWlnaHQ6dmFyKC0tYy1ubC1oZWlnaHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tYy1ubC1yYWRpdXMpO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDtsaW5lLWhlaWdodDoxO21hcmdpbjowfS5jLW5ld3NsZXR0ZXIgbGFiZWwgLndwY2Y3LW5vdC12YWxpZC10aXB7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDoxMHB4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7LmMtbmV3c2xldHRlciBsYWJlbHttYXJnaW4tYm90dG9tOjE1cHh9fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5jLW5ld3NsZXR0ZXIgbGFiZWx7bWFyZ2luOjAgMTBweCAwIDB9fS5jLW5ld3NsZXR0ZXIgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9LmMtbmV3c2xldHRlciAud3BjZjctcmVzcG9uc2Utb3V0cHV0e3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO21hcmdpbjowO3BhZGRpbmc6MTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwNSUpfS5mb290ZXItYnVyZ2VyLW1lbnV7cG9zaXRpb246cmVsYXRpdmV9LmZvb3Rlci1idXJnZXItbWVudV9faG9sZGVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtwYWRkaW5nOjIwcHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwJSl9LmlzLWFjdGl2ZSAuZm9vdGVyLWJ1cmdlci1tZW51X19ob2xkZXJ7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKX0uZm9vdGVyLWJ1cmdlci1tZW51X19ob2xkZXIgLm1lbnUtaXRlbXt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbnRhY3QtaW5mb19faXRlbXttYXJnaW4tYm90dG9tOjEwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsuY29udGFjdC1pbmZvX19pdGVtey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9fS5jb250YWN0LWluZm9fX2ljb257aGVpZ2h0OjIycHg7d2lkdGg6MjJweDttaW4td2lkdGg6MjJweDtjb2xvcjojZmZmO2ZpbGw6I2ZmZjttYXJnaW4tcmlnaHQ6MTBweH0uY29udGFjdC1pbmZvX19saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmNvbnRlbnQtc2luZ2xle2ZvbnQtc2l6ZTp2YXIoLS1ibG9nLXRleHQtc2l6ZSwyLjJyZW0pO2ZvbnQtd2VpZ2h0OnZhcigtLWJsb2ctdGV4dC1mb250LXdlaWdodCw0MDApO21heC13aWR0aDp2YXIoLS1ibG9nLXdpZHRoLDY1MHB4KTtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3BhZGRpbmctdG9wOjE1cHg7cGFkZGluZy1ib3R0b206MTB2bWlufUBtZWRpYShtaW4td2lkdGg6MTExM3B4KSBhbmQgKG1heC13aWR0aDoxNDM5cHgpe2JvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5jb250ZW50LXNpbmdsZXstLWJsb2ctd2lkdGg6NjUwcHh9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXtib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuY29udGVudC1zaW5nbGV7bWluLWhlaWdodDo2MDBweH19Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgYXtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7Zm9udC1zdHlsZTpub3JtYWx9Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgYSBpe2ZvbnQtc3R5bGU6bm9ybWFsfWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY29sb3JzLWludmVydGVkIGJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGEsW2NvbG9yLW1vZGU9ZGFya10gYm9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgYXtjb2xvcjp2YXIoLS1wcmltYXJ5LWxpbmstY29sb3ItYWx0KX1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMSxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMixib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMyxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoNCxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoNXtjb2xvcjp2YXIoLS10aXRsZXMtY29sb3IpfS5jb2xvcnMtaW52ZXJ0ZWQgYm9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgaDEsLmNvbG9ycy1pbnZlcnRlZCBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMiwuY29sb3JzLWludmVydGVkIGJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGgzLC5jb2xvcnMtaW52ZXJ0ZWQgYm9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgaDQsLmNvbG9ycy1pbnZlcnRlZCBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoNSxbY29sb3ItbW9kZT1kYXJrXSBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMSxbY29sb3ItbW9kZT1kYXJrXSBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMixbY29sb3ItbW9kZT1kYXJrXSBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoMyxbY29sb3ItbW9kZT1kYXJrXSBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoNCxbY29sb3ItbW9kZT1kYXJrXSBib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBoNXtjb2xvcjp2YXIoLS10aXRsZXMtY29sb3ItYWx0KX1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyAud3AtYmxvY2stZ2FsbGVyeSxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBibG9ja3F1b3RlLGJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGlmcmFtZSxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBvbCxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBwLGJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIHRhYmxlLGJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIHVsOm5vdCguYmxvY2tzLWdhbGxlcnktZ3JpZCksYm9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgdmlkZW97bWFyZ2luLWJvdHRvbTp2YXIoLS13eXNpd3lnLW1hcmdpbil9Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgdWw6bm90KC5ibG9ja3MtZ2FsbGVyeS1ncmlkKXtsaXN0LXN0eWxlLXR5cGU6bm9uZX1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyB1bDpub3QoLmJsb2Nrcy1nYWxsZXJ5LWdyaWQpIGxpe3BhZGRpbmc6dmFyKC0td3lzaXd5Zy1saS1wYWRkaW5nKTtiYWNrZ3JvdW5kLWltYWdlOnZhcigtLWxpc3QtaXRlbS1zdHlsZSk7YmFja2dyb3VuZC1wb3NpdGlvbjp2YXIoLS13eXNpd3lnLWxpLWJncCk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIG9se2xpc3Qtc3R5bGU6ZGVjaW1hbDttYXJnaW4tbGVmdDoyNXB4fWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGxpe21hcmdpbi1ib3R0b206dmFyKC0td3lzaXd5Zy1saS1tYXJnaW4pfWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGlmcmFtZSxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBpbWcsYm9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgcGljdHVyZSxib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyB2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztkaXNwbGF5OmJsb2NrfWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGZpZ2NhcHRpb257d2lkdGg6MTAwJTtmb250LXN0eWxlOml0YWxpYzt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjpyZ2JhKHZhcigtLWJvZHktdGV4dC1jb2xvciksLjgpO2ZvbnQtc2l6ZTouOWVtfWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGJsb2NrcXVvdGV7cGFkZGluZzoxNXB4IDE1cHggMTVweCA0MHB4O2JvcmRlci1sZWZ0OjVweCBzb2xpZCAjNjhjZGVkO2ZvbnQtc2l6ZToxLjE1ZW07bWFyZ2luOjZyZW0gMH1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgYmxvY2txdW90ZXtwYWRkaW5nOjVweCAwIDVweCAxNXB4fX1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBibG9ja3F1b3RlIHVse2ZvbnQtc3R5bGU6aXRhbGljO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6LjllbX1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBibG9ja3F1b3RlIHB7Zm9udC1zaXplOjMycHg7bGluZS1oZWlnaHQ6MS4yfUBtZWRpYShtYXgtd2lkdGg6MTExMXB4KXtib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBibG9ja3F1b3RlIHB7Zm9udC1zaXplOjIycHh9fWJvZHk6bm90KFtjbGFzcyo9d29vY29tbWVyY2UtcGFnZV0pIC5pcy13eXNpd3lnIGJsb2NrcXVvdGUgcDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH1ib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuaXMtd3lzaXd5ZyBpZnJhbWV7d2lkdGg6MTAwJX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7Ym9keTpub3QoW2NsYXNzKj13b29jb21tZXJjZS1wYWdlXSkgLmlzLXd5c2l3eWcgaWZyYW1le21pbi1oZWlnaHQ6NDAwcHh9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXtib2R5Om5vdChbY2xhc3MqPXdvb2NvbW1lcmNlLXBhZ2VdKSAuc2ltcGxlLXBhZ2V7cGFkZGluZy10b3A6dmFyKC0taGVhZGVyLWhpZ2h0KX19LmVycm9yLWNvbnRlbnQsLm5vdC1mb3VuZHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjIwdmggMDt3aWR0aDoxMDAlfS5wLTQwNHstLXA0MDQ6MjVyZW07LS1wNDA0LXRleHQ6NXJlbTstLXA0MDQtY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpO3RleHQtYWxpZ246Y2VudGVyO21pbi1oZWlnaHQ6NDAwcHg7cGFkZGluZzoxMHZoIDA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXA0MDQtY29sb3IpO2JhY2tncm91bmQ6I2Y0ZmNmZTtwb3NpdGlvbjpyZWxhdGl2ZX0ucC00MDQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7dG9wOjUwJTtsZWZ0OjB9LnAtNDA0OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7dG9wOjUwJTtyaWdodDoyMCV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnAtNDA0ey0tcDQwNDoyMHJlbTstLXA0MDQtdGV4dDo0cmVtfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LnAtNDA0e3BhZGRpbmctdG9wOmNhbGModmFyKC0taGVhZGVyLWhpZ2h0KSAqIDIpfX0ucC00MDRfX3RpdGxley0taC1jbGFtcC1mb3JtdWxhOjMuNTR2dzstLXNtYWxsZXItdGV4dC1zaXplOjM2cHg7LS10ZXh0LXNpemU6NjhweDtmb250LXNpemU6Y2xhbXAodmFyKC0tc21hbGxlci10ZXh0LXNpemUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tdGV4dC1zaXplKSk7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LTIuMDRweDtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTttYXJnaW4tYm90dG9tOi40NWVtfS5wLTQwNF9fdGl0bGUgc3BhbntiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCMzNjUzYTcsIzY4Y2RlZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0ucC00MDRfX3RleHR7LS1oLWNsYW1wLWZvcm11bGE6MS4wNHZ3Oy0tc21hbGxlci10ZXh0LXNpemU6MTZweDstLXRleHQtc2l6ZToyMHB4O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKTtmb250LXdlaWdodDo0MDA7bWFyZ2luLWJvdHRvbToxLjVlbTtsaW5lLWhlaWdodDoxLjY7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMil9LnAtNDA0X193cmFwe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucC00MDRfX3dyYXB7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wLTQwNF9fY29udGVudHt3aWR0aDo0MSU7dGV4dC1hbGlnbjpsZWZ0fX0ucC00MDRfX2ltYWdle3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucC00MDRfX2ltYWdle21hcmdpbi10b3A6NXJlbX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnAtNDA0X19pbWFnZXt3aWR0aDo1MCV9fS5wLTQwNF9faW1hZ2UgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnAtNDA0X19pbm5lcntwb3NpdGlvbjpyZWxhdGl2ZX0ucC00MDRfX2lubmVyOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowO3RvcDo1MCU7bGVmdDoxMSV9LnAtNDA0X19pbm5lcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztvcGFjaXR5Oi4yO2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7dG9wOjI5JTtyaWdodDoyOCV9LmwtcmNibHstLWMtYmxvY2staW1nLXJhdGlvOjE2Lzl9QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7LmwtcmNibHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCh2YXIoLS1sLWJsb2NrLWNvbCw0KSxtaW5tYXgoMCwxZnIpKTtyb3ctZ2FwOnZhcigtLWwtYmxvY2stZ2FwLXZlcnRpY2FsKTstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tbC1ibG9jay1nYXAtaG9yaXpvbnRhbCk7LW1vei1jb2x1bW4tZ2FwOnZhcigtLWwtYmxvY2stZ2FwLWhvcml6b250YWwpO2NvbHVtbi1nYXA6dmFyKC0tbC1ibG9jay1nYXAtaG9yaXpvbnRhbCl9fUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLXJjYmxfX2NvbHttYXJnaW4tYm90dG9tOjIwcHh9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubC1yY2JsX19jb2x7LS1sLWJsb2NrLWdhcDoxNXB4fX0ubC1yY2JsIC5jLWJsb2Nre3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MTAwJX0ubC1yY2JsIC5jLWJsb2NrX19tZWRpYXt3aWR0aDoxMDAlfS5sLXJjYmwuaXMtaG9yaXpvbnRhbHstLWMtYmxvY2staW1nLXJhdGlvOjMvNH0ubC1yY2JsLmlzLWhvcml6b250YWwgLmMtYmxvY2t7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0ubC1yY2JsLmlzLWhvcml6b250YWwgLmMtYmxvY2tfX21lZGlhe21pbi13aWR0aDoyMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1yaWdodDoyMHB4fS5sLXJjYmwtdjEgLmMtaW1hZ2V7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt0b3A6MDtsZWZ0OjB9LmwtcmNibC12MS5hbGlnbi1sZWZ0ey0t0YEtYmxvY2stYWxpZ246bGVmdH0ubC1yY2JsLXYxLmFsaWduLWxlZnQgLmMtaW1hZ2V7LXdlYmtpdC1ib3gtcGFjazpzdGFydDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5sLXJjYmwtdjEuYWxpZ24tY2VudGVyey0t0YEtYmxvY2stYWxpZ246Y2VudGVyfS5sLXJjYmwtdjEuYWxpZ24tY2VudGVyIC5jLWltYWdley13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmwtcmNibC12MnstLWMtYmxvY2staW1nLXJhdGlvOjEvMTstLWMtYmxvY2stY29sb3I6I2ZmZjstLWMtYmxvY2stdGl0bGUtY29sb3I6I2ZmZjstLWJ0bi1saW5rLWNvbG9yOiNmZmZ9LmwtcmNibC12MiAuYy1ibG9ja3tib3JkZXItcmFkaXVzOnZhcigtLWMtYmxvY2stcmFkaXVzKTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59QG1lZGlhKGhvdmVyOmhvdmVyKXsubC1yY2JsLXYyIC5jLWJsb2NrOmhvdmVyIC5jLWltYWdlX19zcmN7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTt0cmFuc2Zvcm06c2NhbGUoMS4xKX19LmwtcmNibC12MiAuYy1ibG9ja19fbWVkaWF7b3ZlcmZsb3c6aGlkZGVuO21heC1oZWlnaHQ6MTAwJX0ubC1yY2JsLXYyIC5jLWJsb2NrX19tZWRpYTphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7b3BhY2l0eTouODt6LWluZGV4OjF9LmwtcmNibC12MiAuYy1pbWFnZXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjB9LmwtcmNibC12MiAuYy1pbWFnZV9fc3Jje3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS5sLXJjYmwtdjIgLmMtYmxvY2tfX2JvZHl7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LXNoYWRvdzoxcHggMXB4IHJnYmEoMCwwLDAsLjIpO3otaW5kZXg6Mn0ubC1yY2JsLXYyLmFsaWduLXRvcCAuYy1ibG9ja19fYm9keXstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmwtcmNibC12Mi5hbGlnbi1jZW50ZXIgLmMtYmxvY2tfX2JvZHl7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubC1yY2JsLXYyLmFsaWduLWJvdHRvbSAuYy1ibG9ja19fYm9keXstd2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmwtcmNibC12Mi5hbGlnbi1ib3R0b20gLmMtYmxvY2tfX21lZGlhOmFmdGVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3BhY2l0eToxO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSh0cmFuc3BhcmVudCksdG8odmFyKC0tcHJpbWFyeS1jb2xvcjEpKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDAsdmFyKC0tcHJpbWFyeS1jb2xvcjEpIDEwMCUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5sLWRjYmx7LS1jb2x1bW5zLXJhdGlvOjUwJTstLWMtYmxvY2stcGFkZGluZzozNXB4Oy0tYy1ibG9jay1pbWctcmF0aW86YXV0bzstLWMtYmxvY2stc2hhZG93OnRyYW5zcGFyZW50Oy0tYy1ibG9jay1iZzp0cmFuc3BhcmVudH0ubC1kY2JsIC5jLWJsb2Nre2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmwtZGNibCAuYy1ibG9ja19faW5uZXJ7d2lkdGg6MTAwJX0ubC1kY2JsIC5jLWJsb2NrX19jb250ZW50e3RleHQtYWxpZ246bGVmdH1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsubC1kY2JsIC5jLWJsb2Nrey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5sLWRjYmwuaW1hZ2UtcmlnaHQgLmMtYmxvY2ssLmwtZGNibC5vcmRlci1yZXZlcnNlIC5jLWJsb2Nrey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX19LmwtZGNibCAuYy1ibG9ja19fY29udGVudHstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0bztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9QG1lZGlhKG1pbi13aWR0aDoxMTEycHgpey5sLWRjYmwgLmMtYmxvY2tfX2NvbnRlbnR7cGFkZGluZzp2YXIoLS1jLWJsb2NrLXBhZGRpbmcsMzBweCl9fS5sLWRjYmwgLmMtYmxvY2tfX2NvbnRlbnQuYWxpZ24tdG9wey13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmwtZGNibCAuYy1ibG9ja19fY29udGVudC5hbGlnbi1ib3R0b217LXdlYmtpdC1ib3gtYWxpZ246ZW5kOy1tcy1mbGV4LWFsaWduOmVuZDthbGlnbi1pdGVtczpmbGV4LWVuZH0ubC1kY2JsIC5jLWJsb2NrX19tZWRpYXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubC1kY2JsIC5jLWJsb2NrX19tZWRpYXt3aWR0aDoxMDAlfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LmwtZGNibCAuYy1ibG9ja19fbWVkaWF7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMCB2YXIoLS1jb2x1bW5zLXJhdGlvKTtmbGV4OjAgMCB2YXIoLS1jb2x1bW5zLXJhdGlvKTttYXgtd2lkdGg6dmFyKC0tY29sdW1ucy1yYXRpbyl9fS5sLWRjYmwgLmMtYmxvY2tfX21lZGlhIC5jLWltYWdlX19zZWNvbmRhcnl7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ubC1kY2JsIC5jLWJsb2NrX19tZWRpYSBpbWd7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5sLWRjYmwtZnVsbHt3aWR0aDpjYWxjKDEwMHZ3IC0gOC4xcHgpO21heC13aWR0aDpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6NTAlO3JpZ2h0OjUwJTttYXJnaW4tbGVmdDotNTB2dzttYXJnaW4tcmlnaHQ6LTUwdnd9LmwtZGNibC1mdWxsIC5jLWltYWdlX19wcmltYXJ5IC5jLWltYWdlX19zcmMsLmwtZGNibC1mdWxsIC5jLWltYWdlX19wcmltYXJ5IGltZ3t3aWR0aDoxMDAlfS5sLWRjYmwtZnVsbCAuYy1ibG9ja19fY29udGVudHstd2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzowfS5sLWRjYmwtZnVsbC5pbWFnZS1sZWZ0IC5jLWJsb2NrX19jb250ZW50LC5sLWRjYmwtZnVsbC5vcmRlci1yZXZlcnNlIC5jLWJsb2NrX19jb250ZW50ey13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubC1kY2JsLWZ1bGwgLmMtYmxvY2tfX2lubmVye21heC13aWR0aDpjYWxjKHZhcigtLWNvbnRlbnQtd2lkdGgpLzIpO3BhZGRpbmc6dmFyKC0tYy1ibG9jay1wYWRkaW5nLDMwcHgpfX0ubC1jY2Jsey0tY2NibC1pY29uLXNpemU6MTAwcHh9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7LmwtY2NibHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcH19QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7LmwtY2NibHtkaXNwbGF5OmdyaWQ7Z2FwOnZhcigtLWwtYmxvY2stZ2FwKX19LmwtY2NibF9faW1ne2dyaWQtYXJlYTppdGVtLWltZzstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlzcGxheTpncmlkfUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLWNjYmxfX2ltZ3tkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLWNjYmxfX2l0ZW17d2lkdGg6MTAwJX19QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7LmwtY2NibF9faXRlbTpudGgtY2hpbGQoMil7Z3JpZC1hcmVhOml0ZW0xfS5sLWNjYmxfX2l0ZW06bnRoLWNoaWxkKDMpe2dyaWQtYXJlYTppdGVtMn0ubC1jY2JsX19pdGVtOm50aC1jaGlsZCg0KXtncmlkLWFyZWE6aXRlbTN9LmwtY2NibF9faXRlbTpudGgtY2hpbGQoNSl7Z3JpZC1hcmVhOml0ZW00fS5sLWNjYmxfX2l0ZW06bnRoLWNoaWxkKDYpe2dyaWQtYXJlYTppdGVtNX0ubC1jY2JsX19pdGVtOm50aC1jaGlsZCg3KXtncmlkLWFyZWE6aXRlbTZ9LmwtY2NibF9faXRlbTpudGgtY2hpbGQoOCl7Z3JpZC1hcmVhOml0ZW03fS5sLWNjYmxfX2l0ZW06bnRoLWNoaWxkKDkpe2dyaWQtYXJlYTppdGVtOH19LmwtY2NibF9faXRlbSAuaXMtdmVydGljYWwgLmMtYmxvY2tfX21lZGlhe21hcmdpbi1ib3R0b206MWVtfUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLWNjYmxfX2l0ZW0gLmlzLWhvcml6b250YWx7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5sLWNjYmxfX2l0ZW0gLmlzLWhvcml6b250YWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0ubC1jY2JsX19pdGVtIC5pcy1ob3Jpem9udGFsIC5jLWJsb2NrX19tZWRpYXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoxNXB4fS5sLWNjYmxfX2l0ZW0gLmlzLWhvcml6b250YWwgLmMtYmxvY2tfX21lZGlhIC5jLWltYWdle21hcmdpbjphdXRvfX0ubC1jY2JsIC5jLWJsb2Nre3dpZHRoOjEwMCU7cGFkZGluZzp2YXIoLS1jLWJsb2NrLWdhcC12ZXJ0aWNhbCwxNXB4KSB2YXIoLS1jLWJsb2NrLWdhcC1ob3Jpem9udGFsLDE1cHgpO3Bvc2l0aW9uOnJlbGF0aXZlfS5sLWNjYmwgLmMtYmxvY2suYWxpZ24tdG9wey13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmwtY2NibCAuYy1ibG9jay5hbGlnbi1jZW50ZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmwtY2NibCAuYy1ibG9jay5hbGlnbi1ib3R0b217LXdlYmtpdC1ib3gtYWxpZ246ZW5kOy1tcy1mbGV4LWFsaWduOmVuZDthbGlnbi1pdGVtczpmbGV4LWVuZH0ubC1jY2JsIC5jLWJsb2NrX19tZWRpYXstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIHZhcigtLWNjYmwtaWNvbi1zaXplKTtmbGV4OjAgMCB2YXIoLS1jY2JsLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLWNjYmwtaWNvbi1zaXplKTttaW4td2lkdGg6dmFyKC0tY2NibC1pY29uLXNpemUpO21hcmdpbi1yaWdodDoyMHB4fUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLWNjYmwgLmMtYmxvY2tfX21lZGlhe21hcmdpbjowIDAgMTVweH19LmwtY2NibCAuYy1ibG9ja19fYm9keXstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0b30ubC1jY2JsIC5jLWJsb2NrX19ib2R5IC4taDR7bWFyZ2luOjB9LmwtY2NibCAuYy1ibG9ja19fdGl0bGV7Y29sb3I6dmFyKC0tc2VjdGlvbi10aXRsZS1jb2xvcil9LmwtY2NibCAuYy1ibG9ja19fbGluay1mdWxse3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowO3otaW5kZXg6MTB9QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7LmwtY2NibC12MXtncmlkLXRlbXBsYXRlOmF1dG8vcmVwZWF0KDMsMWZyKTtncmlkLXRlbXBsYXRlLWFyZWFzOiJpdGVtMSBpdGVtLWltZyBpdGVtMiIgIml0ZW0zIGl0ZW0taW1nIGl0ZW00IiAiaXRlbTUgaXRlbS1pbWcgaXRlbTYiICJpdGVtNyBpdGVtLWltZyBpdGVtOCJ9fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5sLWNjYmwtdjJ7LS1jY2JsLWljb24tc2l6ZToxNTRweDtncmlkLXRlbXBsYXRlOmF1dG8vcmVwZWF0KDIsMWZyKTtncmlkLXRlbXBsYXRlLWFyZWFzOiJpdGVtLWltZyBpdGVtMSIgIml0ZW0taW1nIGl0ZW0yIiAiaXRlbS1pbWcgaXRlbTMiICJpdGVtLWltZyBpdGVtNCIgIml0ZW0taW1nIGl0ZW01Ijstd2Via2l0LWNvbHVtbi1nYXA6dmFyKC0tbC1ibG9jay1nYXApOy1tb3otY29sdW1uLWdhcDp2YXIoLS1sLWJsb2NrLWdhcCk7Y29sdW1uLWdhcDp2YXIoLS1sLWJsb2NrLWdhcCl9fS5sLWNjYmwtdjIgLmwtY2NibF9faXRlbSAuYy1pbWFnZXtwb3NpdGlvbjpyZWxhdGl2ZX0ubC1jY2JsLXYyIC5sLWNjYmxfX2l0ZW0gLmMtaW1hZ2U6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiICI7d2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxMDAlfS5sLWNjYmwtdjIgLmwtY2NibF9faXRlbSAuYy1pbWFnZT4uY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0ubC1jY2JsLXYyIC5sLWNjYmxfX2l0ZW0gLmMtaW1hZ2VfX21lZGlhe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH1AbWVkaWEobWluLXdpZHRoOjc2N3B4KXsubC1jY2JsLXYzey0tY2NibC1pY29uLXNpemU6MTU0cHg7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCgyLDFmcik7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiaXRlbTEgaXRlbS1pbWciICJpdGVtMiBpdGVtLWltZyIgIml0ZW0zIGl0ZW0taW1nIiAiaXRlbTQgaXRlbS1pbWciICJpdGVtNSBpdGVtLWltZyI7LXdlYmtpdC1jb2x1bW4tZ2FwOnZhcigtLWwtYmxvY2stZ2FwKTstbW96LWNvbHVtbi1nYXA6dmFyKC0tbC1ibG9jay1nYXApO2NvbHVtbi1nYXA6dmFyKC0tbC1ibG9jay1nYXApfX0ubC1jY2JsLXYzIC5sLWNjYmxfX2l0ZW0gLmMtaW1hZ2V7cG9zaXRpb246cmVsYXRpdmV9LmwtY2NibC12MyAubC1jY2JsX19pdGVtIC5jLWltYWdlOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiAiO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6MTAwJX0ubC1jY2JsLXYzIC5sLWNjYmxfX2l0ZW0gLmMtaW1hZ2U+LmNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9LmwtY2NibC12MyAubC1jY2JsX19pdGVtIC5jLWltYWdlX19tZWRpYXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm0tY291bnRlcnstLWNvdW50ZXItbnVtLXNpemU6M2VtOy0tY291bnRlci1udW0tbGg6MTstLWNvdW50ZXItbnVtLXdlaWdodDo3MDA7LS1jb3VudGVyLXN5bWJvbC1zaXplOjJlbTstLWNvdW50ZXItc3ltYm9sLXdlaWdodDo1MDA7LS1jb3VudGVyLXRpdGxlLXNpemU6Mi4ycmVtOy0tY291bnRlci10aXRsZS13ZWlnaHQ6NzAwfS5jLWNvdW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmMtY291bnRlcl9fbnVtYmVye2ZvbnQtc2l6ZTp2YXIoLS1jb3VudGVyLW51bS1zaXplKTtsaW5lLWhlaWdodDp2YXIoLS1jb3VudGVyLW51bS1saCk7Zm9udC13ZWlnaHQ6dmFyKC0tY291bnRlci1udW0td2VpZ2h0KX0uYy1jb3VudGVyX19zeW1ib2x7Zm9udC1zaXplOnZhcigtLWNvdW50ZXItc3ltYm9sLXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNvdW50ZXItc3ltYm9sLXdlaWdodCl9LmMtY291bnRlcl9fZGF0YXt3aGl0ZS1zcGFjZTpub3dyYXB9LmMtY291bnRlciAuYy1ibG9ja19fbWVkaWF7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jLWNvdW50ZXIuaXMtdmVydGljYWx7LS3RgS1ibG9jay1hbGlnbjpjZW50ZXJ9LmMtY291bnRlci5pcy12ZXJ0aWNhbCAuYy1ibG9ja19fbWVkaWF7bWFyZ2luLWJvdHRvbToyMHB4O21heC1oZWlnaHQ6MTUwcHh9LmMtY291bnRlci5pcy12ZXJ0aWNhbCAuYy1ibG9ja19fbWVkaWEgLmMtY291bnRlcl9faW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXgtaGVpZ2h0OjkwJX0uYy1jb3VudGVyLmlzLWhvcml6b250YWx7LS3RgS1ibG9jay1hbGlnbjpsZWZ0O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmMtY291bnRlci5pcy1ob3Jpem9udGFsIC5jLWJsb2NrX19tZWRpYXttYXJnaW4tcmlnaHQ6MTVweDttYXgtd2lkdGg6MTAwcHh9LmNvdW50ZXJzX3NlY3Rpb257YmFja2dyb3VuZDojZjNmYmZlfS5jb3VudGVyc19zZWN0aW9uIC5jb250YWluZXJ7LS1jb250ZW50LXdpZHRoOnZhcigtLWRlc2t0b3Atd2lkdGgtbSk7bWF4LXdpZHRoOmNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyB2YXIoLS1wYWdlLWd1dHRlciwyMHB4KSAqIDIpfS5jb3VudGVyc19zZWN0aW9uIC5jb3VudGVycy1pdGVtc3stLWdyaWQtaXRlbS1jb2w6NDstLWdyaWQtaXRlbS1nYXA6NzBweDtkaXNwbGF5OmdyaWQ7d2lkdGg6MTAwJTtnYXA6dmFyKC0tZ3JpZC1pdGVtLWdhcCk7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCh2YXIoLS1ncmlkLWl0ZW0tY29sLDQpLG1pbm1heCgwLDFmcikpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jb3VudGVyc19zZWN0aW9uIC5jb3VudGVycy1pdGVtc3stLWdyaWQtaXRlbS1jb2w6MjstLWdyaWQtaXRlbS1nYXA6MzBweH19LmNvdW50ZXJzX3NlY3Rpb24gLmNvdW50ZXItaXRlbV9fd3JhcHstLWZvbnQtc2l6ZS1tb2JpbGU6MzdweDstLWZvbnQtc2l6ZTo3NXB4Oy0taC1jbGFtcC1mb3JtdWxhOjMuOTB2dztmb250LXNpemU6Y2xhbXAodmFyKC0tZm9udC1zaXplLW1vYmlsZSwxOHB4KSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWZvbnQtc2l6ZSwyLjRyZW0pKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCMzNjUzYTcsIzY4Y2RlZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotMi4yNXB4O2xpbmUtaGVpZ2h0OjF9LmNvdW50ZXJzX3NlY3Rpb24gLmNvdW50ZXItdGV4dHstLWZvbnQtc2l6ZS1tb2JpbGU6MTZweDstLWZvbnQtc2l6ZToxOHB4Oy0taC1jbGFtcC1mb3JtdWxhOjAuOTN2dztmb250LXNpemU6Y2xhbXAodmFyKC0tZm9udC1zaXplLW1vYmlsZSwxOHB4KSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWZvbnQtc2l6ZSwyLjRyZW0pKTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTUwJX0ubS10YWJzey0tdGJuYXYtc2l6ZToxLjZyZW07LS10Ym5hdi13ZWlnaHQ6NzAwOy0tdGJuYXYtdXBwZXJjYXNlOm5vbmU7LS10Ym5hdi1iZzojZmZmOy0tdGJuYXYtYmctYWN0aXZlOnZhcigtLXByaW1hcnktY29sb3IyKTstLXRibmF2LWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLXRibmF2LWNvbG9yLWFjdGl2ZTp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLXRibmF2LWJvcmRlcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7LS10Ym5hdi1ib3JkZXItYWN0aXZlOnZhcigtLXByaW1hcnktY29sb3IyKTstLXRibmF2LXBhZGRpbmc6MTBweCAyMHB4Oy0tdGJuYXYtYWxpZ246Y2VudGVyOy0tdGJuYXYtZ2FwOjEwcHg7LS10YnBhbmVsLXBhZGRpbmc6MjBweCAwOy0tdGJwYW5lbC1iZzp0cmFuc3BhcmVudH0ubC10Ym5hdntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDp2YXIoLS10Ym5hdi1nYXApO3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmpzLXRhYnMtdG8tYWNjLXdyYXBwZXIgLmwtdGJuYXZ7ZGlzcGxheTpub25lfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LmwtdGJuYXYgLmpzLXRhYnMtZHJvcGRvd257ZGlzcGxheTpub25lfX0ubC10Ym5hdl9faXRlbXstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXg6MSAxIDA7ZmxleDoxIDEgMDtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmpzLXRhYnNUYWJEcm9wLXdyYXBwZXIgLmwtdGJuYXZfX2l0ZW17ZGlzcGxheTpub25lfX0uYy10Ym5hdntjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbjt0cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW47cGFkZGluZzp2YXIoLS10Ym5hdi1wYWRkaW5nKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246dmFyKC0tdGJuYXYtYWxpZ24pO2JhY2tncm91bmQtY29sb3I6dmFyKC0tdGJuYXYtYmcpO2NvbG9yOnZhcigtLXRibmF2LWNvbG9yKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRibmF2LWJvcmRlcil9LmMtdGJuYXYuaXMtYWN0aXZley13ZWJraXQtYm94LXNoYWRvdzp2YXIoLS1jLWJsb2NrLXNoYWRvdyk7Ym94LXNoYWRvdzp2YXIoLS1jLWJsb2NrLXNoYWRvdyk7Ym9yZGVyLWNvbG9yOnZhcigtLXRibmF2LWJvcmRlci1hY3RpdmUpfS5jLXRibmF2Om5vdCguaXMtYWN0aXZlKTpob3Zlcnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDI1cHggI2NkZWFlYztib3gtc2hhZG93OjAgMCAyNXB4ICNjZGVhZWM7Ym9yZGVyLWNvbG9yOiNjZGVhZWN9LmMtdGJuYXZfX21lZGlhe21hcmdpbi1ib3R0b206MWVtO3BhZGRpbmc6MTBweDt3aWR0aDoxMDAlfS5jLXRibmF2X19pbWd7bWF4LWhlaWdodDo4MHB4fUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5jLXRibmF2X19pbWd7bWF4LWhlaWdodDo0MHB4fX0uYy10Ym5hdl9fbGFiZWx7Zm9udC1zaXplOnZhcigtLXRibmF2LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLXRibmF2LXdlaWdodCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tdGJuYXYtdXBwZXJjYXNlKX0uYy10Ym5hdl9faW1ne21heC1oZWlnaHQ6MTAwcHh9LmwtdGJwYW5lbF9faXRlbXtkaXNwbGF5Om5vbmU7cGFkZGluZzp2YXIoLS10YnBhbmVsLXBhZGRpbmcpO2JhY2tncm91bmQ6dmFyKC0tdGJwYW5lbC1iZyl9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5qcy10YWJzLXRvLWFjYy13cmFwcGVyIC5sLXRicGFuZWxfX2l0ZW17ZGlzcGxheTpibG9ja319LmwtdGJwYW5lbF9faXRlbSAubC1hY2NvcmRpb257ZGlzcGxheTpub25lfS5sLXRicGFuZWxfX2l0ZW0uaXMtYWN0aXZle2Rpc3BsYXk6YmxvY2t9LmlzLWJsb2NrIC5sLXRicGFuZWxfX2l0ZW0uaXMtYWN0aXZlIC5sLWFjY29yZGlvbntkaXNwbGF5OmJsb2NrfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubC10YnBhbmVsX19sYWJlbHtkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubC10YnBhbmVsX19sYWJlbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtjb2xvcjojZmZmfX0ubC10YnBhbmVsX19pdGVtIC5jLWJsb2Nre29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTMwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTMwcHgpOy13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5LC13ZWJraXQtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSwtd2Via2l0LXRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5O3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLG9wYWNpdHksLXdlYmtpdC10cmFuc2Zvcm07d2lsbC1jaGFuZ2U6b3BhY2l0eSx0cmFuc2Zvcm19LndwLWFkbWluIC5sLXRicGFuZWxfX2l0ZW0gLmMtYmxvY2t7b3BhY2l0eToxfS5sLXRicGFuZWxfX2l0ZW0uaXMtYWN0aXZlIC5jLWJsb2Nrey13ZWJraXQtYW5pbWF0aW9uOmZhZGUtdHJhbnNsYXRlLXJldmVyc2UgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBsaW5lYXIgMSBmb3J3YXJkczthbmltYXRpb246ZmFkZS10cmFuc2xhdGUtcmV2ZXJzZSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGxpbmVhciAxIGZvcndhcmRzfS5jLWFjY29yZGlvbnstLWgtY2xhbXAtZm9ybXVsYToxLjM1dnc7LS1zbWFsbGVyLXRleHQtc2l6ZToyMnB4Oy0tdGV4dC1zaXplOjI2cHg7LS1hY2MtdGl0bGUtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLXRleHQtc2l6ZSkpOy0tYWNjLXRpdGxlLXdlaWdodDo2MDA7LS1hY2MtdGl0bGUtcGFkZGluZzoyMHB4IDMwcHg7LS1hY2MtdGl0bGUtY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7LS1hY2MtdGl0bGUtYmc6dHJhbnNwYXJlbnQ7LS1hY2MtdGl0bGUtY29sb3ItYWN0aXZlOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy0tYWNjLXRpdGxlLWJnLWFjdGl2ZTp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTstLWFjYy1jb250ZW50LXNpemU6aW5oZXJpdDstLWFjYy1jb250ZW50LXdlaWdodDo0MDA7LS1hY2MtY29udGVudC1wYWRkaW5nOjAgMzBweCAxMHB4IDMwcHg7LS1hY2MtY29udGVudC1jb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLWFjYy1jb250ZW50LWJnOnRyYW5zcGFyZW50Oy0tYWNjLWl0ZW0tc3BhY2U6LjdlbTstLWFjYy1pY29uLXdpZHRoOjYwcHh9Lm0tYWNjb3JkaW9uey0tY29sdW1ucy1yYXRpbzo1MCU7LS1jb2x1bW5zLWdhcDo1JTstLWMtYmxvY2stZ2w6MHB4Oy0tYy1ibG9jay1ncjowcHg7LS1jLWJsb2NrLWd0OjBweDstLWMtYmxvY2stZ2I6MHB4Oy0tYy1ibG9jay1ib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1jLWJsb2NrLXRpdGxlLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tYy1ibG9jay10ZXh0LWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tYy1ibG9jay10aXRsZS1jb2xvcjpjdXJyZW50Q29sb3I7LS1jLWJsb2NrLXRleHQtY29sb3I6Y3VycmVudENvbG9yfS5sLWFjY29yZGlvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7Z2FwOnZhcigtLWNvbHVtbnMtZ2FwKX1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsubC1hY2NvcmRpb257LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX19QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7LmwtYWNjb3JkaW9uLm9yZGVyLXJldmVyc2V7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOnJldmVyc2U7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfX0ubC1hY2NvcmRpb25fX2NvbnRlbnR7LXdlYmtpdC1ib3gtZmxleDoxOy1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG99LmwtYWNjb3JkaW9uX19jb250ZW50IC5jLWJ0bi1iYXJ7bWFyZ2luLXRvcDoxZW19LmwtYWNjb3JkaW9uX19tZWRpYXstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO2ZsZXg6MCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pfUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLWFjY29yZGlvbl9fbWVkaWF7bWFyZ2luOjFlbSAwfX0ubC1hY2NvcmRpb25fX2ltZ3N7ZGlzcGxheTpub25lfS5sLWFjY29yZGlvbl9faW1ncy5pcy1hY3RpdmV7ZGlzcGxheTpibG9ja30ubC1hY2NvcmRpb25fX2ltZ3MgLmMtaW1hZ2VfX3ByaW1hcnl7dG9wOjB9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7LmMtYWNjb3JkaW9uX19tZWRpYSAuYy1pbWFnZXtwb3NpdGlvbjpyZWxhdGl2ZX0uYy1hY2NvcmRpb25fX21lZGlhIC5jLWltYWdlOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiAiO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6NzUlfS5jLWFjY29yZGlvbl9fbWVkaWEgLmMtaW1hZ2U+LmNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9fS5jLWFjY29yZGlvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCV9LmMtYWNjb3JkaW9uX190aXRsZXtwYWRkaW5nOnZhcigtLWFjYy10aXRsZS1wYWRkaW5nKTtwYWRkaW5nLXJpZ2h0OjUwcHg7Zm9udC1zaXplOnZhcigtLWFjYy10aXRsZS1zaXplKTtmb250LXdlaWdodDp2YXIoLS1hY2MtdGl0bGUtd2VpZ2h0KTtjb2xvcjp2YXIoLS1hY2MtdGl0bGUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjLXRpdGxlLWJnKTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7Ym9yZGVyOm5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6MTVweH0uYy1hY2NvcmRpb25fX3RpdGxlOmZvY3Vze291dGxpbmU6MH0uYy1hY2NvcmRpb25fX3RpdGxlIC5pY29ue21heC1oZWlnaHQ6NTBweDttYXgtd2lkdGg6NTBweH1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsuYy1hY2NvcmRpb25fX3RpdGxle3BhZGRpbmc6MTRweH19Lmljb25zLWFycm93cyAuYy1hY2NvcmRpb25fX3RpdGxlLC5pY29ucy1wbHVzLW1pbnVzIC5jLWFjY29yZGlvbl9fdGl0bGV7cGFkZGluZy1yaWdodDo0MHB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5pY29ucy1hcnJvd3MgLmMtYWNjb3JkaW9uX190aXRsZSwuaWNvbnMtcGx1cy1taW51cyAuYy1hY2NvcmRpb25fX3RpdGxle3BhZGRpbmctcmlnaHQ6NTBweH19Lmljb25zLWFycm93cyAuYy1hY2NvcmRpb25fX3RpdGxlOmFmdGVyLC5pY29ucy1wbHVzLW1pbnVzIC5jLWFjY29yZGlvbl9fdGl0bGU6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjVweDt0b3A6MDt3aWR0aDo0MHB4O2hlaWdodDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjpjdXJyZW50Q29sb3I7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7Y29udGVudDoiIjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7Lmljb25zLWFycm93cyAuYy1hY2NvcmRpb25fX3RpdGxlOmFmdGVyLC5pY29ucy1wbHVzLW1pbnVzIC5jLWFjY29yZGlvbl9fdGl0bGU6YWZ0ZXJ7cmlnaHQ6MTJweH19Lmljb25zLXBsdXMtbWludXMgLmMtYWNjb3JkaW9uX190aXRsZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3lOeWNnYUdWcFoyaDBQU2N5TnljZ2RtbGxkMEp2ZUQwbk1DQXdJREkzSURJM0p5Qm1hV3hzUFNkdWIyNWxKejQ4WTJseVkyeGxJR040UFNjeE15NDFKeUJqZVQwbk1UTXVOU2NnY2owbk1UTXVOU2NnWm1sc2JEMG5kMmhwZEdVbkx6NDhjR0YwYUNCa1BTZE5PU0F4TVV3eE5DQXhOa3d4T1NBeE1TY2djM1J5YjJ0bFBTY2pNelkxTTBFM0p5QnpkSEp2YTJVdGQybGtkR2c5SnpJbkx6NDhMM04yWno0PSl9LmMtYWNjb3JkaW9uX19pY29ue3dpZHRoOnZhcigtLWFjYy1pY29uLXdpZHRoKTttYXJnaW4tcmlnaHQ6MjBweDstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9LmMtYWNjb3JkaW9uX19jb250ZW50e3BhZGRpbmc6dmFyKC0tYWNjLWNvbnRlbnQtcGFkZGluZyk7Zm9udC1zaXplOjEuNnJlbTtmb250LXdlaWdodDp2YXIoLS1hY2MtY29udGVudC13ZWlnaHQpO2NvbG9yOnZhcigtLWFjYy1jb250ZW50LWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjYy1jb250ZW50LWJnKTstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjphbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtsaW5lLWhlaWdodDoxLjV9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7LmMtYWNjb3JkaW9uX19jb250ZW50e3BhZGRpbmc6MTBweH19LmMtYWNjb3JkaW9uX19jb250ZW50IHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmMtYWNjb3JkaW9uX19pdGVte21hcmdpbi1ib3R0b206dmFyKC0tYWNjLWl0ZW0tc3BhY2UpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWMtYmxvY2stYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjE1cHh9LmMtYWNjb3JkaW9uX19pdGVtOm50aC1jaGlsZChldmVuKSAuYy1hY2NvcmRpb25fX3RpdGxley0tYWNjLXRpdGxlLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpOy0tYWNjLXRpdGxlLWJnOnZhcigtLXByaW1hcnktY29sb3IxKX0uYy1hY2NvcmRpb25fX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIC5jLWFjY29yZGlvbl9fY29udGVudHtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKX0uaWNvbnMtcGx1cy1taW51cyAuYy1hY2NvcmRpb25fX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIC5jLWFjY29yZGlvbl9fdGl0bGU6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2N5TnljZ2FHVnBaMmgwUFNjeU55Y2dkbWxsZDBKdmVEMG5NQ0F3SURJM0lESTNKeUJtYVd4c1BTZHViMjVsSno0OFkybHlZMnhsSUdONFBTY3hNeTQxSnlCamVUMG5NVE11TlNjZ2NqMG5NVE11TlNjZ1ptbHNiRDBuZDJocGRHVW5MejQ4Y0dGMGFDQmtQU2ROT1NBeE1Vd3hOQ0F4Tmt3eE9TQXhNU2NnYzNSeWIydGxQU2NqUmtaQk1UWkRKeUJ6ZEhKdmEyVXRkMmxrZEdnOUp6SW5MejQ4TDNOMlp6ND0pfS5pY29ucy1wbHVzLW1pbnVzIC5pcy1hY3RpdmUgLmMtYWNjb3JkaW9uX190aXRsZTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lmljb25zLWFycm93cyAuaXMtYWN0aXZlIC5jLWFjY29yZGlvbl9fdGl0bGU6YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5tLWFjY29yZGlvbnttYXJnaW4tdG9wOjVyZW19fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5hY2NvcmRpb25fc2VjdGlvbnt0ZXh0LWFsaWduOmNlbnRlcn19LmMtYWNjb3JkaW9uLXYyey0tYy1hY2MtcGFkZGluZzo0MHB4Oy0tYy1hY2MtYm9yZGVyLXNpemU6NHB4Oy0tYy1hY2MtYm9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uYy1hY2NvcmRpb24tdjIgLmMtYWNjb3JkaW9uX19pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDp2YXIoLS1jLWFjYy1wYWRkaW5nKX1AbWVkaWEobWF4LXdpZHRoOjc2NnB4KXsuYy1hY2NvcmRpb24tdjIgLmMtYWNjb3JkaW9uX19pdGVtey0tYy1hY2MtcGFkZGluZzoyMHB4fX0uYy1hY2NvcmRpb24tdjIgLmMtYWNjb3JkaW9uX19pdGVtOmFmdGVyLC5jLWFjY29yZGlvbi12MiAuYy1hY2NvcmRpb25fX2l0ZW06YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3R0b206MDtjb250ZW50OiIiO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCx2YXIoLS1jLWFjYy1ib3JkZXItc2l6ZSkpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCx2YXIoLS1jLWFjYy1ib3JkZXItc2l6ZSkpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLHRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9LmMtYWNjb3JkaW9uLXYyIC5jLWFjY29yZGlvbl9faXRlbTpiZWZvcmV7d2lkdGg6dmFyKC0tYy1hY2MtYm9yZGVyLXNpemUpO2JhY2tncm91bmQ6dmFyKC0tYy1hY2MtYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRweH0uYy1hY2NvcmRpb24tdjIgLmMtYWNjb3JkaW9uX19pdGVtOmFmdGVye3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luOjAgYXV0bztib3JkZXItYm90dG9tOjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDoxMXB4IHNvbGlkIHZhcigtLWMtYWNjLWJvcmRlci1jb2xvcik7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2xlZnQ6MXB4fS5jLWFjY29yZGlvbi12MiAuYy1hY2NvcmRpb25fX2l0ZW0uaXMtYWN0aXZlOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCk7b3BhY2l0eToxfS5jLWFjY29yZGlvbi12MiAuYy1hY2NvcmRpb25fX2l0ZW0uaXMtYWN0aXZlOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtNTAlKTtvcGFjaXR5OjF9LmwtYWNjb3JkaW9uW2RhdGEtYW5pbWF0aW9uPWNzc10gLmMtYWNjb3JkaW9uX19jb250ZW50e2Rpc3BsYXk6bm9uZTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXQsLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLWluLW91dCwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXQsb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXQsb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW4tb3V0LC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXR9LmwtYWNjb3JkaW9uW2RhdGEtYW5pbWF0aW9uPWNzc10gLmlzLWFjdGl2ZSAuYy1hY2NvcmRpb25fX2NvbnRlbnR7ZGlzcGxheTpibG9jazstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxOy13ZWJraXQtYW5pbWF0aW9uOmFjYy1hbmltIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXQ7YW5pbWF0aW9uOmFjYy1hbmltIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbi1vdXR9QC13ZWJraXQta2V5ZnJhbWVzIGFjYy1hbmltezAle2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjB9MSV7ZGlzcGxheTpibG9jaztvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpfTEwMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgYWNjLWFuaW17MCV7ZGlzcGxheTpub25lO29wYWNpdHk6MH0xJXtkaXNwbGF5OmJsb2NrO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9MTAwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19Lm0tc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5tLXNsaWRlciAuc3dpcGVyLXNsaWRle2hlaWdodDphdXRvfS5tLXNsaWRlcl9fY29udGFpbmVye3otaW5kZXg6MH1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7Lm0tc2xpZGVyX19zbGlkZXtoZWlnaHQ6YXV0b319Lm0tc2xpZGVyX19pbWd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bzstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9Lmhhcy10YWJzey0tc2xpZGVyLXRhYi1oZWlnaHQ6MTIwcHh9Lmhhcy10YWJzIC5tLWJhbm5lcntwYWRkaW5nLWJvdHRvbTo2MHB4fUBtZWRpYShtaW4td2lkdGg6MTExMnB4KXsuaGFzLXRhYnMgLm0tYmFubmVye3BhZGRpbmctYm90dG9tOnZhcigtLXNsaWRlci10YWItaGVpZ2h0KX19LnN3aXBlciAuc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXIgLnN3aXBlci1idXR0b24tcHJldnstLWgtY2xhbXAtZm9ybXVsYTozLjEydnc7LS1zbWFsbGVyLWljb24tc2l6ZTozMHB4Oy0taWNvbi1zaXplOjYwcHg7LS1pY29uLWdyaWQ6Y2xhbXAodmFyKC0tc21hbGxlci1pY29uLXNpemUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1pY29uLXNpemUpKTstLXN3aXBlci1uYXZpZ2F0aW9uLXNpemU6Y2FsYyh2YXIoLS1pY29uLXJpZCkgLyAyKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCA0cHggcmdiYSgzMywzMywzMywuMSk7Ym94LXNoYWRvdzowIDRweCA0cHggcmdiYSgzMywzMywzMywuMSk7d2lkdGg6dmFyKC0taWNvbi1ncmlkKTtoZWlnaHQ6dmFyKC0taWNvbi1ncmlkKX1AbWVkaWEoaG92ZXI6aG92ZXIpey5zd2lwZXIgLnN3aXBlci1idXR0b24tbmV4dDpob3Zlciwuc3dpcGVyIC5zd2lwZXItYnV0dG9uLXByZXY6aG92ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpfX0ub3VyLXRlYW0tU3dpcGVye3BhZGRpbmc6MCA0cmVtIWltcG9ydGFudH0ub3VyLXRlYW0tU3dpcGVyIC5zd2lwZXItYnV0dG9uLW5leHQsLm91ci10ZWFtLVN3aXBlciAuc3dpcGVyLWJ1dHRvbi1wcmV2e3RvcDo0NSV9QG1lZGlhKGhvdmVyOmhvdmVyKXsub3VyLXRlYW0tU3dpcGVyIC5zd2lwZXItYnV0dG9uLW5leHQ6aG92ZXIsLm91ci10ZWFtLVN3aXBlciAuc3dpcGVyLWJ1dHRvbi1wcmV2OmhvdmVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKX19Lm91ci10ZWFtLVN3aXBlciAuc3dpcGVyLWJ1dHRvbi1uZXh0e3JpZ2h0OjB9Lm91ci10ZWFtLVN3aXBlciAuc3dpcGVyLWJ1dHRvbi1wcmV2e2xlZnQ6MH0ucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb257b3ZlcmZsb3c6aGlkZGVufS5waG90b3NfZ2FsbGVyeV9zbGlkZXJfc2VjdGlvbiAuc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX2Fycm93cyAuaWNvbntjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7ZmlsbDp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LnBob3Rvc19nYWxsZXJ5X3NsaWRlcl9zZWN0aW9uIC5zbGlkZXItaW1hZ2VzIC5zd2lwZXItYnV0dG9uLW5leHQgLmljb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5waG90b3NfZ2FsbGVyeV9zbGlkZXJfc2VjdGlvbiAuc2xpZGVyLWltYWdlcyAuc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb24gLnNsaWRlci1pbWFnZXMgLnN3aXBlci1idXR0b24tcHJldiAuaWNvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5waG90b3NfZ2FsbGVyeV9zbGlkZXJfc2VjdGlvbiAuc2xpZGVyLWltYWdlcyAuc3dpcGVyLWJ1dHRvbi1wcmV2OmFmdGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb24gLnNsaWRlci1pbWFnZXMgLnN3aXBlci1idXR0b24tbmV4dCwucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb24gLnNsaWRlci1pbWFnZXMgLnN3aXBlci1idXR0b24tcHJldntib3JkZXI6bm9uZTtvdXRsaW5lOjA7dG9wOjI3JX0ucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb24gLnNsaWRlci1pbWFnZXMgLnN3aXBlci1idXR0b24tbmV4dCAuaWNvbiwucGhvdG9zX2dhbGxlcnlfc2xpZGVyX3NlY3Rpb24gLnNsaWRlci1pbWFnZXMgLnN3aXBlci1idXR0b24tcHJldiAuaWNvbnttYXgtd2lkdGg6NDclO21heC1oZWlnaHQ6NDclfS5waG90b3NfZ2FsbGVyeV9zbGlkZXJfc2VjdGlvbiAuc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX2Fycm93c3tiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5waG90b3NfZ2FsbGVyeV9zbGlkZXJfc2VjdGlvbiAuc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX2Fycm93cy5zd2lwZXItYnV0dG9uLWRpc2FibGVke29wYWNpdHk6Ljc1fS5zbGlkZXItaW1hZ2VzIC5tLXNsaWRlcl9fb3V0ZXJ7bWFyZ2luLXJpZ2h0Oi01MHZ3O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OmNhbGMoNTB2dyArIDEwOHB4KX0uc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX2NvbnRhaW5lcntvdmVyZmxvdzp2aXNpYmxlfS5zbGlkZXItaW1hZ2VzIC5zd2lwZXItc2xpZGV7bWF4LWhlaWdodDozMDBweDttYXgtd2lkdGg6MTAwJX0uc2xpZGVyLWltYWdlcyAuc3dpcGVyLXNsaWRlIGltZ3tkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXI7Ym9yZGVyLXJhZGl1czoxNXB4fS5sLXNsaWRlci1pbWFnZXMgLm0tc2xpZGVyX19zbGlkZXt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjZweCl7Lmwtc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX3NsaWRle3dpZHRoOjgwcHh9fS5sLXNsaWRlci1pbWFnZXMgLm0tc2xpZGVyX19zbGlkZS5pcy1ncmV5c2NhbGV7LXdlYmtpdC1maWx0ZXI6Z3JheXNjYWxlKDEpO2ZpbHRlcjpncmF5c2NhbGUoMSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjotd2Via2l0LWZpbHRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246ZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpmaWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LWZpbHRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5sLXNsaWRlci1pbWFnZXMgLm0tc2xpZGVyX19zbGlkZS5pcy1ncmV5c2NhbGU6aG92ZXJ7LXdlYmtpdC1maWx0ZXI6Z3JheXNjYWxlKDApO2ZpbHRlcjpncmF5c2NhbGUoMCl9Lmwtc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX21lZGlhe3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXJ9Lmwtc2xpZGVyLWltYWdlcyAubS1zbGlkZXJfX21lZGlhIGltZ3ttYXgtd2lkdGg6NzVweDttYXgtaGVpZ2h0OjE1MHB4fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5sLXNsaWRlci1pbWFnZXMgLm0tc2xpZGVyX19tZWRpYSBpbWd7bWF4LXdpZHRoOjkwJX19Lm0tc2xpZGVyIC5tLXNsaWRlcl9fYXJyb3dze2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLWFycm93cy1iZyk7LXdlYmtpdC1ib3gtc2hhZG93OnZhcigtLXN3aXBlci1hcnJvd3Mtc2hhZG93KTtib3gtc2hhZG93OnZhcigtLXN3aXBlci1hcnJvd3Mtc2hhZG93KTttaW4td2lkdGg6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSk7Y29sb3I6dmFyKC0tc3dpcGVyLWFycm93cy1jb2xvcik7cGFkZGluZzowO21hcmdpbjowOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjJzO3RyYW5zaXRpb246YWxsIC4yc30ubS1zbGlkZXJfX2Fycm93c3tib3JkZXItcmFkaXVzOjEwMCV9LmlzLXNxdWFyZSAubS1zbGlkZXJfX2Fycm93c3tib3JkZXItcmFkaXVzOjB9Lm0tc2xpZGVyX19hcnJvd3M6YWZ0ZXJ7ZGlzcGxheTpub25lO2NvbnRlbnQ6bm9uZX0ubS1zbGlkZXJfX2Fycm93cyAuaWNvbnttYXgtd2lkdGg6NjUlO21heC1oZWlnaHQ6NjUlO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKTtmaWxsOnZhcigtLXByaW1hcnktY29sb3IxKX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7Lm0tc2xpZGVyX19hcnJvd3MuLW5leHR7cmlnaHQ6MTBweH19QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5tLXNsaWRlcl9fYXJyb3dzLi1wcmV2e2xlZnQ6MTBweH19Lm0tc2xpZGVyX19hcnJvd3MuLXByZXYgLmljb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5tLXNsaWRlcl9fYXJyb3dzOmZvY3Vze291dGxpbmU6MH0ubS1zbGlkZXJfX2Fycm93czpob3Zlcnstd2Via2l0LWJveC1zaGFkb3c6MCA2cHggN3B4IHJnYmEoMzMsMzMsMzMsLjEpLDAgNHB4IDRweCByZ2JhKDMzLDMzLDMzLC4xKTtib3gtc2hhZG93OjAgNnB4IDdweCByZ2JhKDMzLDMzLDMzLC4xKSwwIDRweCA0cHggcmdiYSgzMywzMywzMywuMSk7YmFja2dyb3VuZDojZmZmfS5tLXNsaWRlcl9fYXJyb3dzOmhvdmVyIC5hcnJvdy1pY29ue2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ubS1zbGlkZXIgW2RhdGEtc2xpZGVyLW5hdmlnYXRpb249aW5uZXItYXJyb3dzXSsubS1zbGlkZXJfX25hdiAubS1zbGlkZXJfX2Fycm93cywubS1zbGlkZXIgW2RhdGEtc2xpZGVyLW5hdmlnYXRpb249b3V0ZXItYXJyb3dzXSsubS1zbGlkZXJfX25hdiAubS1zbGlkZXJfX2Fycm93c3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RvcDo1MCV9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7Lm0tc2xpZGVyIFtkYXRhLXNsaWRlci1uYXZpZ2F0aW9uPW91dGVyLWFycm93c117bWFyZ2luLWxlZnQ6dmFyKC0tc3dpcGVyLW91dGVyLWdhcCk7bWFyZ2luLXJpZ2h0OnZhcigtLXN3aXBlci1vdXRlci1nYXApfX0ubS1zbGlkZXIgW2RhdGEtc2xpZGVyLW5hdmlnYXRpb249Ym90dG9tLWFycm93c10rLm0tc2xpZGVyX19uYXZ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDp2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKX0ubS1zbGlkZXIgW2RhdGEtc2xpZGVyLW5hdmlnYXRpb249Ym90dG9tLWFycm93c10rLm0tc2xpZGVyX19uYXYgLm0tc2xpZGVyX19hcnJvd3N7bWFyZ2luOjAgMTBweDtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OnVuc2V0O3JpZ2h0OnVuc2V0O3RvcDowfS5tLXNsaWRlciAubS1zbGlkZXJfX3BhZ2luYXRpb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MzBweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubS1zbGlkZXIgLm0tc2xpZGVyX19wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYm9yZGVyKTstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246Ym9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO2JvcmRlci1yYWRpdXM6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tcmFkaXVzKX0ubS1zbGlkZXIgLm0tc2xpZGVyX19wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLC5tLXNsaWRlciAubS1zbGlkZXJfX3BhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWJvcmRlci1hY3RpdmUpfS5jLXNsaWRlci1uYXZ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LW1zLWZsZXgtYWxpZ246c3RyZXRjaDthbGlnbi1pdGVtczpzdHJldGNoOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJX0uYy1zbGlkZXItbmF2X190aHVtYnttYXgtd2lkdGg6Y2FsYyh2YXIoLS10aHVtYi1zaXplKSArIDEwcHgpfS5jLXNsaWRlci1uYXZfX2ltZ3tvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0tdGh1bWItc2l6ZSk7d2lkdGg6dmFyKC0tdGh1bWItc2l6ZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS10aHVtYi1yYWRpdXMpO2JvcmRlcjp2YXIoLS10aHVtYi1iZC1zaXplKSBzb2xpZCB2YXIoLS10aHVtYi1iZC1jb2xvcik7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9LnN3aXBlci1zbGlkZS10aHVtYi1hY3RpdmUgLmMtc2xpZGVyLW5hdl9faW1ney0tdGh1bWItYmQtY29sb3I6dmFyKC0tdGh1bWItYmQtY29sb3ItYWN0aXZlKX0uc3dpcGVyLWZhZGUgLmMtc2xpZGVyLW5hdl9faW1ne3BvaW50ZXItZXZlbnRzOmF1dG99LmMtc2xpZGVyLW5hdl9faW1nIGltZ3ttYXgtd2lkdGg6MTAwJTttYXJnaW46YXV0bzstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5tLXNsaWRlci12MiAubS1zbGlkZXJfX2NvbnRhaW5lcntkaXNwbGF5Om5vbmV9fS5tLXNsaWRlci12MiAubS1zbGlkZXJfX3NsaWRle2hlaWdodDphdXRvfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubS1zbGlkZXItdjIgLm0tc2xpZGVyX19hcnJvd3N7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm0tc2xpZGVyLXYyIC5tLXNsaWRlcl9fYXJyb3dze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubS1zbGlkZXItdjIgLm0tc2xpZGV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfX1AbWVkaWEobWluLXdpZHRoOjE0NDFweCl7Lm0tc2xpZGVyLXYyIC5tLXNsaWRle21heC1oZWlnaHQ6NzgwcHh9fUBtZWRpYShtaW4td2lkdGg6MTI4MXB4KSBhbmQgKG1heC13aWR0aDoxNDQwcHgpey5tLXNsaWRlci12MiAubS1zbGlkZXttYXgtaGVpZ2h0OjY4MHB4fX1AbWVkaWEobWluLXdpZHRoOjExMTNweCkgYW5kIChtYXgtd2lkdGg6MTI4MHB4KXsubS1zbGlkZXItdjIgLm0tc2xpZGV7bWF4LWhlaWdodDo1ODBweH19Lm0tc2xpZGVyLXYyIC5tLXNsaWRlX19tZWRpYSwubS1zbGlkZXItdjIgLm0tc2xpZGVfX21lZGlhIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcn0ubS1zbGlkZXItdjIgLm0tc2xpZGVfX2ltZ3stby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7Lm0tc2xpZGVyLXYyIC5sLXNsaWRlci1uYXZ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO3dpZHRoOjEwMCU7cmlnaHQ6MDt6LWluZGV4OjN9fS5tLXNsaWRlci12MiAubC1zbGlkZXItbmF2X19jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7Lm0tc2xpZGVyLXYyIC5sLXNsaWRlci1uYXZfX2NvbnRhaW5lci0tZmx1aWR7cGFkZGluZzowfX0ubS1zbGlkZXItdjIgLmwtc2xpZGVyLW5hdl9faW5uZXJ7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubS1zbGlkZXItdjIgLmwtc2xpZGVyLW5hdl9fcGFnaW5hdGlvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDozMHB4O21hcmdpbi1ib3R0b206MzBweH1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7Lm0tc2xpZGVyLXYyIC5sLXNsaWRlci1uYXZfX3BhZ2luYXRpb257ZGlzcGxheTpub25lfX0ubS1zbGlkZXItdjIgLmwtc2xpZGVyLW5hdl9fcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE4NywxODcsMTg3LC43KTtiYWNrZ3JvdW5kOjAgMDttYXJnaW4tcmlnaHQ6MjRweDtvcGFjaXR5OjF9Lm0tc2xpZGVyLXYyIC5sLXNsaWRlci1uYXZfX3BhZ2luYXRpb24gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5tLXNsaWRlci12MiAubC1zbGlkZXItbmF2X19wYWdpbmF0aW9uIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZle2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7YmFja2dyb3VuZDojMjY4Y2NjfS5tLXNsaWRlci12Mi5jb250YWluZXIgLmwtc2xpZGVyLW5hdiwubS1zbGlkZXItdjIuY29udGFpbmVyOmFmdGVye2xlZnQ6dmFyKC0tcGFnZS1ndXR0ZXIpO3JpZ2h0OnZhcigtLXBhZ2UtZ3V0dGVyKTt3aWR0aDphdXRvfS5sLXNsaWRlci1kb3VibGUtY2FyZHN7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowfS5jLWJsb2NrLWRzYmxze2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmV9LmMtYmxvY2stZHNibHMgLmMtYmxvY2tfX2JvZHl7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyfS5jLWJsb2NrLWRzYmxzOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjUwJTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20odHJhbnNwYXJlbnQpLHRvKHJnYmEoNywyMyw0OSwuOCkpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgMCxyZ2JhKDcsMjMsNDksLjgpIDEwMCUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O3otaW5kZXg6MDtwb2ludGVyLWV2ZW50czpub25lfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuYy1ibG9jay1kc2Jsc3std2Via2l0LWJveC1wYWNrOmVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjMwcHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zKTt3aWR0aDoxMDAlfX1AbWVkaWEobWluLXdpZHRoOjEyODFweCl7LmMtYmxvY2stZHNibHN7cGFkZGluZzo1MHB4fX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmMtYmxvY2stZHNibHN7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtcGFjazplbmQ7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MzUwcHg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNywyMyw0OSwuNCk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLWluO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW47LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9fUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5jLWJsb2NrLWRzYmxze21pbi13aWR0aDoxMDAlfX0uYy1ibG9jay1kc2JsczpsYXN0LWNoaWxke2JvcmRlci1yaWdodDpub25lfS5jLWJsb2NrLWRzYmxzOmhvdmVye2N1cnNvcjpwb2ludGVyfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuYy1ibG9jay1kc2Jsczpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNywyMyw0OSwuNCk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLWluO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW59fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuYy1ibG9jay1kc2Jscy5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDcsMjMsNDksLjQpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1vdXQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1vdXR9LmMtYmxvY2stZHNibHMuaXMtYWN0aXZlOmFmdGVye2hlaWdodDozMCU7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHRyYW5zcGFyZW50KSx0bygjMDcxNzMxKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDAsIzA3MTczMSAxMDAlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH19LmMtYmxvY2stZHNibHMuaXMtYWN0aXZlIC5jLWJsb2NrX190ZXh0e21heC1oZWlnaHQ6MTBlbTstd2Via2l0LXRyYW5zaXRpb246bWF4LWhlaWdodCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2UtaW47dHJhbnNpdGlvbjptYXgtaGVpZ2h0IHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZS1pbn0uYy1ibG9jay1kc2JscyAuYy1ibG9ja19fdGl0bGV7Y29sb3I6I2ZmZjtmb250LXNpemU6My4ycmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI7bWFyZ2luLWJvdHRvbTouNzVlbX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmMtYmxvY2stZHNibHMgLmMtYmxvY2tfX2JvZHl7cGFkZGluZzozMHB4IDIwcHh9fUBtZWRpYShtYXgtd2lkdGg6NTc1cHgpey5jLWJsb2NrLWRzYmxzIC5jLWJsb2NrX19ib2R5e3RleHQtYWxpZ246Y2VudGVyfX0uYy1ibG9jay1kc2JscyAuYy1ibG9ja19fdGV4dHtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6MS42MjU7bWFyZ2luLWJvdHRvbTouMzI1ZW19QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5jLWJsb2NrLWRzYmxzIC5jLWJsb2NrX190ZXh0e21heC1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOm1heC1oZWlnaHQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLW91dDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlLW91dH19QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5jLWJsb2NrLWRzYmxzIC5jLXBpY3R1cmV7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmMtYmxvY2stZHNibHMgLmMtcGljdHVyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXI7ei1pbmRleDotMTt0b3A6MDtib3R0b206MH19LmwtZm9ybXttYXgtd2lkdGg6dmFyKC0tZm9ybS1tYXgtd2lkdGgsNTUwcHgpfS5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBsYWJlbCwuYy1mb3JtIGxhYmVse2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtmb250LXNpemU6dmFyKC0tbGFiZWwtZm9udC1zaXplLDEuNnJlbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGFiZWwtbGluZS1oZWlnaHQsMS41KTtmb250LXdlaWdodDp2YXIoLS1sYWJlbC1mb250LXdlaWdodCw0MDApO2NvbG9yOnZhcigtLWxhYmVsLWNvbG9yKX0uYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1kYXRlXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1lbWFpbF0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9ZmlsZV0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9bnVtYmVyXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1waG9uZV0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9dGVsXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT10ZXh0XSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0LC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSB0ZXh0YXJlYSwuYy1mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sLmMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSwuYy1mb3JtIGlucHV0W3R5cGU9ZmlsZV0sLmMtZm9ybSBpbnB1dFt0eXBlPW51bWJlcl0sLmMtZm9ybSBpbnB1dFt0eXBlPXBob25lXSwuYy1mb3JtIGlucHV0W3R5cGU9dGVsXSwuYy1mb3JtIGlucHV0W3R5cGU9dGV4dF0sLmMtZm9ybSBzZWxlY3QsLmMtZm9ybSB0ZXh0YXJlYXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmctdG9wLWJvdHRvbSw0cHgpIHZhcigtLWlucHV0LXBhZGRpbmctbGVmdC1yaWdodCwxMHB4KTtiYWNrZ3JvdW5kOnZhcigtLWlucHV0LWJhY2tncm91bmQtY29sb3IsI2ZmZik7Y29sb3I6dmFyKC0taW5wdXQtY29sb3IpO2JvcmRlcjp2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgsMXB4KSBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IsIzY2Nik7Ym9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1ib3JkZXItcmFkaXVzLDVweCk7Zm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSwxNnB4KTtmb250LXdlaWdodDp2YXIoLS1pbnB1dC1mb250LXdlaWdodCw0MDApfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1kYXRlXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1lbWFpbF0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9ZmlsZV0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9bnVtYmVyXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1waG9uZV0sLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9dGVsXSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT10ZXh0XSwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0LC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSB0ZXh0YXJlYSwuYy1mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sLmMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSwuYy1mb3JtIGlucHV0W3R5cGU9ZmlsZV0sLmMtZm9ybSBpbnB1dFt0eXBlPW51bWJlcl0sLmMtZm9ybSBpbnB1dFt0eXBlPXBob25lXSwuYy1mb3JtIGlucHV0W3R5cGU9dGVsXSwuYy1mb3JtIGlucHV0W3R5cGU9dGV4dF0sLmMtZm9ybSBzZWxlY3QsLmMtZm9ybSB0ZXh0YXJlYXtmb250LXNpemU6MTZweH19LmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9ZGF0ZV06Zm9jdXMsLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPWZpbGVdOmZvY3VzLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMsLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9cGhvbmVdOmZvY3VzLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRlbF06Zm9jdXMsLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLmMtZm9ybSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIHNlbGVjdDpmb2N1cywuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdGV4dGFyZWE6Zm9jdXMsLmMtZm9ybSBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzLC5jLWZvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsLmMtZm9ybSBpbnB1dFt0eXBlPWZpbGVdOmZvY3VzLC5jLWZvcm0gaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzLC5jLWZvcm0gaW5wdXRbdHlwZT1waG9uZV06Zm9jdXMsLmMtZm9ybSBpbnB1dFt0eXBlPXRlbF06Zm9jdXMsLmMtZm9ybSBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLC5jLWZvcm0gc2VsZWN0OmZvY3VzLC5jLWZvcm0gdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTowO2JvcmRlci1jb2xvcjojNTU1fS5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPWRhdGVdLndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1lbWFpbF0ud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPWZpbGVdLndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1udW1iZXJdLndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1waG9uZV0ud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRlbF0ud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRleHRdLndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0LndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdGV4dGFyZWEud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gaW5wdXRbdHlwZT1kYXRlXS53cGNmNy1ub3QtdmFsaWQsLmMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXS53cGNmNy1ub3QtdmFsaWQsLmMtZm9ybSBpbnB1dFt0eXBlPWZpbGVdLndwY2Y3LW5vdC12YWxpZCwuYy1mb3JtIGlucHV0W3R5cGU9bnVtYmVyXS53cGNmNy1ub3QtdmFsaWQsLmMtZm9ybSBpbnB1dFt0eXBlPXBob25lXS53cGNmNy1ub3QtdmFsaWQsLmMtZm9ybSBpbnB1dFt0eXBlPXRlbF0ud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gaW5wdXRbdHlwZT10ZXh0XS53cGNmNy1ub3QtdmFsaWQsLmMtZm9ybSBzZWxlY3Qud3BjZjctbm90LXZhbGlkLC5jLWZvcm0gdGV4dGFyZWEud3BjZjctbm90LXZhbGlke2JvcmRlci1jb2xvcjp2YXIoLS12YWxpZGF0aW9uLWVycm9yLWNvbG9yKX0uYy1mb3JtIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdGV4dGFyZWEsLmMtZm9ybSB0ZXh0YXJlYXtoZWlnaHQ6MTIwcHg7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1pbnB1dC1wYWRkaW5nLXRvcC1ib3R0b20sNHB4KSAqIDIpfS5jLWZvcm1fX3Jvd3t3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206dmFyKC0tZm9ybS1yb3ctbWFyZ2luLXRvcC1ib3R0b20pfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jLWZvcm1fX3Jvd3tkaXNwbGF5OmdyaWQ7Z3JpZC1hdXRvLWZsb3c6Y29sdW1uO2dyaWQtZ2FwOnZhcigtLWZvcm0tcm93LW1hcmdpbi10b3AtYm90dG9tKX19LmMtZm9ybV9faXRlbXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uYy1mb3JtX19lbWJlZCBpZnJhbWV7bWF4LXdpZHRoOjEwMCV9LmMtbWFwLWlmcmFtZSBpZnJhbWV7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0ud3BjZjctbm90LXZhbGlkLXRpcHtjb2xvcjp2YXIoLS12YWxpZGF0aW9uLWVycm9yLWNvbG9yKTtmb250LXNpemU6dmFyKC0tbWVzc2FnZS1mb250LXNpemUpO3BhZGRpbmc6NXB4IDAgMH0ud3BjZjctbGlzdC1pdGVte21hcmdpbi1sZWZ0OjB9LndwY2Y3e3Bvc2l0aW9uOnJlbGF0aXZlfS53cGNmNyAuYWpheC1sb2FkZXIsLndwY2Y3IC53cGNmNy1zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7bGVmdDo1MCV9LndwY2Y3LWZvcm0uaW52YWxpZCAud3BjZjctcmVzcG9uc2Utb3V0cHV0e2Rpc3BsYXk6bm9uZX0ubC10ZWFte292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwfUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5sLXRlYW1fX2xpc3R7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGU6YXV0by9yZXBlYXQodmFyKC0tZ3JpZC1jb2wpLG1pbm1heCgwLDFmcikpO2dhcDp2YXIoLS1ncmlkLWNvbC1nYXApfX0ubC10ZWFtX19saXN0IC5sLXRlYW1fX2l0ZW17ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5sLXRlc3RpbW9uaWFsc3twYWRkaW5nOjYwcHggMCAyMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5sLXRlc3RpbW9uaWFsc3std2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufX0ubC10ZXN0aW1vbmlhbHNfX3RodW1ie21heC13aWR0aDoxMjBweDt0ZXh0LWFsaWduOmNlbnRlcn0uYy1xdW90ZXtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6NjAwcHg7bWFyZ2luOjAgYXV0bzt6LWluZGV4OjJ9LmMtcXVvdGVfX3RleHR7cG9zaXRpb246cmVsYXRpdmV9LmMtcXVvdGVfX3RleHQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tYmxvY2txdW90ZS1zdHlsZSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO2hlaWdodDo1MHB4O3dpZHRoOjYwcHg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTAwJSl9LmMtcXVvdGVfX2NvbnRlbnR7bWFyZ2luLWJvdHRvbToxZW07cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmMtcXVvdGVfX2NvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXJ9fS5jLXF1b3RlX19wcm9maWxle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LWFsaWduOmxlZnR9LmMtcXVvdGVfX25hbWV7bWFyZ2luLWJvdHRvbTouMjVlbTtmb250LXdlaWdodDo3MDB9LmMtcXVvdGVfX3Bob3Rve2hlaWdodDp2YXIoLS10dG0tcGhvdG8tc2l6ZSk7d2lkdGg6dmFyKC0tdHRtLXBob3RvLXNpemUpO2JvcmRlci1yYWRpdXM6dmFyKC0tdHRtLXBob3RvLXJhZGl1cyk7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjp2YXIoLS10dG0tcGhvdG8tYm9yZGVyX3NpemUpIHNvbGlkIHZhcigtLXR0bS1waG90by1ib3JkZXJfY29sb3IpfS5jLXF1b3RlX19waG90byBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9Lm0tdGVzdGltb25pYWxzey0tdHRtLWNvbG9yOiNmZmY7LS10dG0tc2l6ZTo0cmVtOy0tdHRtLXdlaWdodDo0MDA7LS10dG0tcGhvdG8tc2l6ZToxMDBweDstLXR0bS1waG90by1yYWRpdXM6MjBweDstLXR0bS1waG90by1ib3JkZXJfc2l6ZToycHg7LS10dG0tcGhvdG8tYm9yZGVyX2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKTstLXRodW1iLXNpemU6NjVweDstLXRodW1iLXNpemUtbGFyZ2U6ODVweDstLXRodW1iLXJhZGl1czo1MCU7LS10aHVtYi1iZC1zaXplOjRweDstLXRodW1iLWJkLWNvbG9yOiNmZmY7LS10aHVtYi1iZC1jb2xvci1hY3RpdmU6dmFyKC0tcHJpbWFyeS1jb2xvcjIpOy0tYmFubmVySGVpZ2h0OjUyMnB4Oy0tb3ZlcmxheS1vcGFjaXR5Oi44Oy0tb3ZlcmxheS1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSl9LmwtcG9zdHMgLmMtYmxvY2tfX21lZGlhe2JvcmRlci1yYWRpdXM6dmFyKC0tbC1wb3N0LWltZy1yYWRpdXMpO2FzcGVjdC1yYXRpbzp2YXIoLS1sLXBvc3QtaW1nLXJhdGlvKTtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJX0ubC1wb3N0cyAuYy1ibG9ja19fbWVkaWEgLmMtaW1hZ2V7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7b3ZlcmZsb3c6aGlkZGVufS5sLXBvc3RzIC5jLWJsb2NrX19tZWRpYSAuYy1pbWFnZV9fc3JjLC5sLXBvc3RzIC5jLWJsb2NrX19tZWRpYSBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9LmwtcG9zdHMgLmMtYmxvY2tfX21lZGlhLWxpbmt7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfUBtZWRpYShob3Zlcjpob3Zlcil7LmwtcG9zdHMgLmMtYmxvY2tfX21lZGlhOmhvdmVyIC5jLWltYWdlX19zcmMsLmwtcG9zdHMgLmMtYmxvY2tfX21lZGlhOmhvdmVyIGltZ3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpO3RyYW5zZm9ybTpzY2FsZSgxLjEpfX0ubC1wb3N0cyAuYy1ibG9ja19fZGF0ZXttYXJnaW4tYm90dG9tOi41ZW07Zm9udC1zaXplOnZhcigtLWwtcG9zdC1kYXRlLXNpemUpfS5sLXBvc3RzIC5jLWJsb2NrX19jYXRze21hcmdpbi1ib3R0b206LjVlbX0ubC1wb3N0cyAuYy1ibG9ja19fdGFne2ZvbnQtc2l6ZTp2YXIoLS1sLXBvc3QtdGFnLXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWwtcG9zdC10YWctd2VpZ2h0KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1sLXBvc3QtdGFnLXRyYW5zZm9ybSk7Y29sb3I6dmFyKC0tbC1wb3N0LXRhZy1jb2xvcil9LmwtcG9zdHMgLmMtYmxvY2tfX3RhZzpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctcmlnaHQ6MWVtfS5sLXBvc3RzIC5jLWJsb2NrX190YWc6aG92ZXJ7Y29sb3I6dmFyKC0tYnRuLWxpbmstY29sb3ItaG92ZXIpfUBtZWRpYShtYXgtd2lkdGg6NzY2cHgpey5sLXBvc3RzX19jb2x7bWFyZ2luLWJvdHRvbTp2YXIoLS1sLXBvc3QtZ2FwKX19LnNjcm9sbC1kb3due3Bvc2l0aW9uOmFic29sdXRlO2xldHRlci1zcGFjaW5nOi4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmctdG9wOjE1cHg7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZykgdHJhbnNsYXRlWCgtNTAlKTt6LWluZGV4OjN9LmNvbG9ycy1pbnZlcnRlZCAuc2Nyb2xsLWRvd24sLnN0eWxlLWRhcmsgLnNjcm9sbC1kb3due2NvbG9yOiNmZmZ9LnNjcm9sbC1kb3duLnNkLWxlZnR7bGVmdDowfUBtZWRpYShtaW4td2lkdGg6MTQ0MXB4KXsuc2Nyb2xsLWRvd24uc2QtbGVmdHtsZWZ0OjE1cHh9fS5zY3JvbGwtZG93bi5zZC1yaWdodHtyaWdodDowfUBtZWRpYShtaW4td2lkdGg6MTQ0MXB4KXsuc2Nyb2xsLWRvd24uc2QtcmlnaHR7cmlnaHQ6MTVweH19LnNjcm9sbC1kb3duLnNkLWxlZnQsLnNjcm9sbC1kb3duLnNkLXJpZ2h0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dG9wOjUwJX0uc2Nyb2xsLWRvd24uc2QtbGVmdCBpbWcsLnNjcm9sbC1kb3duLnNkLXJpZ2h0IGltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO21hcmdpbi1yaWdodDoyMHB4fS5zY3JvbGwtZG93bi5zZC1jZW50ZXJ7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3R0b206NTBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LnNjcm9sbC1kb3duLnNkLWNlbnRlciBpbWd7ZGlzcGxheTpibG9jazttYXJnaW46MTBweCBhdXRvfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2Nyb2xsLWRvd257ZGlzcGxheTpub25lfX0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb257YmFja2dyb3VuZDojZjNmYmZlfS5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbi5nYi1kZWZhdWx0e3BhZGRpbmctYm90dG9tOmNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAqIDEpfS5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbl9fY29udGVudHttYXJnaW4tYm90dG9tOjFlbX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb25fX2NvbnRlbnR7bWFyZ2luLWJvdHRvbToyZW19fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbl9fY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbl9fY29udGVudD5kaXZ7d2lkdGg6NDglfX0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLnRleHR7bGluZS1oZWlnaHQ6MS41fS5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiAuY2FyZHMtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206MTByZW19LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW17Ym9yZGVyLXJhZGl1czozMHB4O3BhZGRpbmc6NXJlbSA2cmVtO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbXtwYWRkaW5nOjNyZW19fS5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiAuY2FyZC1pdGVtOm50aC1vZi10eXBlKDEpe2JhY2tncm91bmQ6cmdiYSgyNTUsMTIwLDQ1LC43KSFpbXBvcnRhbnR9LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW06bm90KDpmaXJzdC1jaGlsZCl7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0yM3B4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoNjB2aCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNjB2aCk7ei1pbmRleDoxfS5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiAuY2FyZC1pdGVtOm50aC1vZi10eXBlKDIpe3otaW5kZXg6MX0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbTpudGgtb2YtdHlwZSgyKSAuYy1oZWFkaW5nX190aXRsZSwucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbTpudGgtb2YtdHlwZSgyKSAuY2FyZC1kYXlzLC5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiAuY2FyZC1pdGVtOm50aC1vZi10eXBlKDIpIC5jYXJkLXByb2ZpdCwucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbTpudGgtb2YtdHlwZSgyKSAudGllci1udW1iZXJ7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW06bnRoLW9mLXR5cGUoMikgLmNhcmQtcHJvZml0OmFmdGVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW06bnRoLW9mLXR5cGUoMikgLmNhcmQtcHJvZml0LXdyYXA6YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW0gLnRpZXItbnVtYmVye2ZvbnQtc2l6ZToxN3B4O2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjFyZW0gMnJlbTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7bWFyZ2luLWJvdHRvbToxZW07ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW0gLmMtaGVhZGluZy4taDN7bWF4LXdpZHRoOjUzJTttYXJnaW4tYm90dG9tOjMuNWVtfX0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbSAuY2FyZC1pbWFnZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiAuY2FyZC1pdGVtIC5jYXJkLWltYWdle3dpZHRoOjE1M3B4O2hlaWdodDoxODlweH0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbSAuY2FyZC1pbWFnZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluOy1vLW9iamVjdC1wb3NpdGlvbjpib3R0b20gcmlnaHQ7b2JqZWN0LXBvc2l0aW9uOmJvdHRvbSByaWdodH19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIC5jYXJkLWl0ZW0gLmNhcmQtaW1hZ2V7cmlnaHQ6MjglfX0ucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24gLmNhcmQtaXRlbSsuY2FyZC1pdGVte21hcmdpbi10b3A6NzBweH0uY2FyZC1hZHZhbnRhZ2Vzey0tZ3JpZC1pdGVtLWNvbDozO3dpZHRoOjU2JTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCh2YXIoLS1ncmlkLWl0ZW0tY29sLDMpLG1pbm1heCgwLDFmcikpO2dhcDoxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tYm90dG9tOmF1dG99QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNhcmQtYWR2YW50YWdlc3stLWdyaWQtaXRlbS1jb2w6MTt3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206M2VtfX0uY2FyZC1hZHZhbnRhZ2VzIC5jYXJkLWFkdmFudGFnZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDIycHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIycHgpO3BhZGRpbmc6Mi4ycmVtIDIuNXJlbX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuY2FyZC1hZHZhbnRhZ2VzIC5jYXJkLWFkdmFudGFnZXstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19LmNhcmQtYWR2YW50YWdlcyAuYWR2YW50YWdlLWljb257LS1oLWNsYW1wLWZvcm11bGE6Mi4wOHZ3Oy0taWNvbi1zbWFsbGVyLXNpemU6MzBweDstLWljb24tc2l6ZS1mdWxsOjQxcHg7LS1pY29uLXNpemU6Y2xhbXAodmFyKC0taWNvbi1zbWFsbGVyLXNpemUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1pY29uLXNpemUtZnVsbCkpO3dpZHRoOnZhcigtLWljb24tc2l6ZSk7aGVpZ2h0OnZhcigtLWljb24tc2l6ZSl9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNhcmQtYWR2YW50YWdlcyAuYWR2YW50YWdlLWljb257bWFyZ2luLWJvdHRvbToyLjdlbX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNhcmQtYWR2YW50YWdlcyAuYWR2YW50YWdlLWljb257bWFyZ2luLXJpZ2h0OjEuMmVtfX0uY2FyZC1hZHZhbnRhZ2VzIC5hZHZhbnRhZ2UtaWNvbiBpbWd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jYXJkLWFkdmFudGFnZXMgLmFkdmFudGFnZS10ZXh0ey0taC1jbGFtcC1mb3JtdWxhOjAuOTN2dzstLWljb24tc21hbGxlci1zaXplOjE1cHg7LS1pY29uLXNpemUtZnVsbDoxOHB4Oy0taWNvbi1zaXplOmNsYW1wKHZhcigtLWljb24tc21hbGxlci1zaXplKSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0taWNvbi1zaXplLWZ1bGwpKTtmb250LXNpemU6dmFyKC0taWNvbi1zaXplKTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4yfS5jYXJkLXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2FyZC13cmFwcGVyey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufX0uY2FyZC13cmFwcGVyIC5jYXJkLXByb2ZpdC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jYXJkLXdyYXBwZXIgLmNhcmQtcHJvZml0LXdyYXA6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7bGVmdDowO3RvcDotMjAwJTt3aWR0aDoxcHg7aGVpZ2h0OjEwMDBweDtiYWNrZ3JvdW5kOnJnYmEoMzcsNDAsNDksLjIpO3BvaW50ZXItZXZlbnRzOm5vbmV9fS5jYXJkLXdyYXBwZXIgLmNhcmQtZGF5cywuY2FyZC13cmFwcGVyIC5jYXJkLXByb2ZpdHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jYXJkLXdyYXBwZXIgLmNhcmQtZGF5cywuY2FyZC13cmFwcGVyIC5jYXJkLXByb2ZpdHt0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmctbGVmdDo0LjhyZW07Zm9udC1zaXplOjE2cHh9fS5jYXJkLXdyYXBwZXIgLmNhcmQtZGF5cyBzcGFuLC5jYXJkLXdyYXBwZXIgLmNhcmQtcHJvZml0IHNwYW57LS1oLWNsYW1wLWZvcm11bGE6My42NHZ3Oy0tc21hbGxlci10ZXh0LXNpemU6NDVweDstLXRleHQtc2l6ZTo3MHB4O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzotMi4xcHg7ZGlzcGxheTpibG9ja30uY2FyZC13cmFwcGVyIC5jYXJkLXByb2ZpdHtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuY2FyZC13cmFwcGVyIC5jYXJkLXByb2ZpdHtwYWRkaW5nLWJvdHRvbToycmVtO21hcmdpbi1ib3R0b206MnJlbX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNhcmQtd3JhcHBlciAuY2FyZC1wcm9maXQ6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6Y2FsYygxMDAlICsgNnJlbSk7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnJnYmEoMzcsNDAsNDksLjIpO3BvaW50ZXItZXZlbnRzOm5vbmV9fS5wYXNzaW9uYXRlLXRyYWRlcnN7YmFja2dyb3VuZDojZjNmYmZlO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctYm90dG9tOnZhcigtLWRlZmF1bHQtdG9wLWdhcCx2YXIoLS12ZXJ0aWNhbC1nYXApKX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LnBhc3Npb25hdGUtdHJhZGVyc3ttYXJnaW4tdG9wOi02LjVyZW19fS5saXN0X3dpdGhfaW1hZ2Vfc2VjdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojZjRmY2ZlfS5saXN0X3dpdGhfaW1hZ2Vfc2VjdGlvbjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MDtib3R0b206MDtsZWZ0OjUwJX0ubGlzdF93aXRoX2ltYWdlX3NlY3Rpb246YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MDtib3R0b206MDtyaWdodDozMCV9Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5saXN0X3dpdGhfaW1hZ2VfX3dyYXBwZXJ7LS1ncmlkLWl0ZW0tY29sOjM7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGU6YXV0by9yZXBlYXQodmFyKC0tZ3JpZC1pdGVtLWNvbCwzKSxtaW5tYXgoMCwxZnIpKTtnYXA6MTBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsubGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gLmxpc3Rfd2l0aF9pbWFnZV9fd3JhcHBlcnstLWdyaWQtaXRlbS1jb2w6MTt3aWR0aDoxMDAlfX0ubGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gLnRleHR7bWFyZ2luLWJvdHRvbToxZW19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5saXN0LWNvbnRhaW5lcnttYXJnaW4tdG9wOjJlbX19Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5saXN0LWl0ZW17ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsubGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gLmxpc3QtaXRlbXstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjJlbX19Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5saXN0LWl0ZW06bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206Mi40ZW19Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5saXN0LWl0ZW0gcHttYXJnaW4tYm90dG9tOjB9Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5pdGVtLW51bWJlcntmb250LXNpemU6NTBweDtsaW5lLWhlaWdodDoxO2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzotMS41cHg7bWFyZ2luLXJpZ2h0OjEuOHJlbTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IzKX0ubGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gLmltYWdle21hcmdpbi1pbmxpbmU6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5pbWFnZXt3aWR0aDoyOHJlbTtoZWlnaHQ6NDUuOXJlbX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmxpc3Rfd2l0aF9pbWFnZV9zZWN0aW9uIC5pbWFnZXstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjM7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyfX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsubGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gLmltYWdlIGltZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW59fS5jaGFsbGVuZ2VzX3NlY3Rpb24uZ3QtZGVmYXVsdHstLXRvcC1nYXAtbW9iaWxlOjEyMHB4Oy0tdG9wLWdhcDoyMDBweDstLWgtY2xhbXAtZm9ybXVsYToxMC40MXZ3O3BhZGRpbmctdG9wOmNsYW1wKHZhcigtLXRvcC1nYXAtbW9iaWxlKSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLXRvcC1nYXApKX0uY2hhbGxlbmdlc19zZWN0aW9uIC5jaHNfY29udGFpbmVye21hcmdpbjo1MHB4IDB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAuY2hzX2NvbnRhaW5lcnttYXJnaW46NTBweCAtMjBweCAwfX0uY2hhbGxlbmdlc19zZWN0aW9uIC50YWJzLWNvbnRlbnR7YmFja2dyb3VuZDojZjRmY2ZlO2JvcmRlci1yYWRpdXM6MzBweDtib3JkZXI6MXB4IHNvbGlkICNjYWQ2Zjc7cGFkZGluZzo1MHB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYnMtY29udGVudHtwYWRkaW5nOjE1cHggMCAwO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1yaWdodDpub25lfX0uY2hhbGxlbmdlc19zZWN0aW9uIC5wcmV0aXRsZXtjb2xvcjojMzY1M2E3O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MTVweDttYXJnaW4tYm90dG9tOjI1cHg7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjJweH0uY2hhbGxlbmdlc19zZWN0aW9uLWhlYWRpbmd7dGV4dC1hbGlnbjpjZW50ZXJ9LmNoYWxsZW5nZXNfc2VjdGlvbi1oZWFkaW5nIC50ZXh0IHB7Zm9udC1zaXplOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjgwMHB4O21hcmdpbjphdXRvfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYkZpcnN0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjplbmQ7LW1zLWZsZXgtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYkZpcnN0IGF7cGFkZGluZzoxNXB4IDUwcHg7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjMwcHggMzBweCAwIDA7Ym9yZGVyOjFweCBzb2xpZCAjZWFlYmVlO2JvcmRlci1ib3R0b206bm9uZTtmb250LXNpemU6MTZweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzAwMDstd2Via2l0LXRyYW5zaXRpb246YWxsIC41cyBlYXNlO3RyYW5zaXRpb246YWxsIC41cyBlYXNlO2ZvbnQtd2VpZ2h0OjYwMH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC50YWJGaXJzdCBhe2ZvbnQtc2l6ZToxNHB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MTVweDtib3JkZXItcmFkaXVzOjB9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYkZpcnN0IGEuYWN0aXZle2JhY2tncm91bmQ6I2Y0ZmNmZTtwYWRkaW5nOjI1cHggNTBweDtjb2xvcjojMzY1M2E3Oy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjVzIGVhc2U7dHJhbnNpdGlvbjphbGwgLjVzIGVhc2U7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21hcmdpbjowIC0zMHB4IC0xcHg7Ym9yZGVyLWNvbG9yOiNjYWQ2Zjd9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAudGFiRmlyc3QgYS5hY3RpdmV7cGFkZGluZzoxN3B4IDI1cHggMTVweDttYXJnaW46MCAwIC0ycHg7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXJpZ2h0OjB9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYlNlY29uZHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjEwcHg7YmFja2dyb3VuZDojZTFlYmY1O2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7d2lkdGg6NDEwcHg7bWFyZ2luOjAgYXV0byA1MHB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NXB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYlNlY29uZHt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7bWFyZ2luOjAgYXV0b319LmNoYWxsZW5nZXNfc2VjdGlvbiAudGFiU2Vjb25kX2xpbmt7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtjb2xvcjojMzY1M2E3O2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweDtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6MTBweCAxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjNzIGVhc2U7dHJhbnNpdGlvbjphbGwgLjNzIGVhc2V9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAudGFiU2Vjb25kX2xpbmt7Zm9udC1zaXplOjEzcHh9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYlNlY29uZF9saW5rIC5jLWJ0bl9faWNvIHN2Z3tmaWxsOiMzNjUzYTc7Y29sb3I6IzM2NTNhNzt3aWR0aDozMHB4fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYlNlY29uZF9saW5rLmFjdGl2ZSwuY2hhbGxlbmdlc19zZWN0aW9uIC50YWJTZWNvbmRfbGluazpob3ZlcntiYWNrZ3JvdW5kOiMzNjUzYTc7Y29sb3I6I2ZmZjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnRhYlNlY29uZF9saW5rLmFjdGl2ZSAuYy1idG5fX2ljbyBzdmcsLmNoYWxsZW5nZXNfc2VjdGlvbiAudGFiU2Vjb25kX2xpbms6aG92ZXIgLmMtYnRuX19pY28gc3Zne2ZpbGw6I2ZmZjtjb2xvcjojZmZmfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmV7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcH0uY2hhbGxlbmdlc19zZWN0aW9uIC5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIHVse2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgdWx7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtOCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC04JSl9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1jb250YWluZXJ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTAwJTtmbGV4LWJhc2lzOjEwMCV9LmNoYWxsZW5nZXNfc2VjdGlvbiAuc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLW5hdntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDttYXJnaW46YXV0bzstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTY1JSwxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC02NSUsMTAwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01OCUsMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTglLDEwMCUpO3otaW5kZXg6MjtiYWNrZ3JvdW5kOiNmNGZjZmU7bWF4LXdpZHRoOjM1MHB4fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1uYXYtdGl0bGV7ZGlzcGxheTpibG9jazstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMTJweCwtMjVweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMnB4LC0yNXB4KTtmb250LXNpemU6MTVweDtmb250LXN0eWxlOm5vcm1hbDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzM2NTNhNztmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6MnB4fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1uYXYtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDIwcHgsLTEycHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMjBweCwtMTJweCl9fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1uYXYtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDIwcHgsLTUwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMjBweCwtNTBweCl9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1uYXZ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDEwMCUpfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItbmF2e3Bvc2l0aW9uOnN0YXRpYzstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO21hcmdpbjoxMHB4IDA7d2lkdGg6MTAwJX19QG1lZGlhKG1pbi13aWR0aDo3NjdweCkgYW5kIChtYXgtd2lkdGg6MTExMXB4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItbmF2e21hcmdpbjo1MHB4IDAgMzBweDstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lO2xlZnQ6M3B4fX0uY2hhbGxlbmdlc19zZWN0aW9uIC5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItbmF2IC5zZWxlY3QtcG9pbnR7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3hOalVuSUdobGFXZG9kRDBuTnpRbklHWnBiR3c5SjI1dmJtVW5Qanh3WVhSb0lHWnBiR3c5SnlNek5qVXpRVGNuSUdROUowMHdJREV3UXpBZ05DNDBOemNnTkM0ME56Y2dNQ0F4TUNBd2FERXlNaTR5TXpSak15NHdNVFVnTUNBMUxqZzJPU0F4TGpNMklEY3VOelk0SURNdU56QXliREl4TGpnNU1TQXlOMkU1TGprNU9TQTVMams1T1NBd0lEQWdNU0F3SURFeUxqVTVObXd0TWpFdU9Ea3hJREkzUVRFd0xqQXdNU0F4TUM0d01ERWdNQ0F3SURFZ01UTXlMakl6TkNBM05FZ3hNRU0wTGpRM055QTNOQ0F3SURZNUxqVXlNeUF3SURZMFZqRXdXaWN2UGp3dmMzWm5QZz09KTtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtmb250LXNpemU6NDVweDtjb2xvcjojZmZmO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtsaW5lLWhlaWdodDoxO2ZvbnQtd2VpZ2h0OjYwMDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xMjAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEyMCUsLTUwJSk7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3dpZHRoOjE1NXB4O3BhZGRpbmc6NXB4IDE1cHggNXB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKX1AbWVkaWEobWluLXdpZHRoOjE0NDFweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAuc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLW5hdiAuc2VsZWN0LXBvaW50e2Rpc3BsYXk6YmxvY2t9fS50YWJGaXJzdHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS50YWJzLWNvbnRlbnQgLnRhYnMtY29udGVudF9faXRlbXtkaXNwbGF5Om5vbmV9LnRhYnMtY29udGVudCAudGFicy1jb250ZW50X19pdGVtLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS50YWJTZWNvbmR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0udGFiU2Vjb25kX19pdGVte2Rpc3BsYXk6bm9uZX0udGFiU2Vjb25kX19pdGVtLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5zd2lwZXItY29udGFpbmVyLXdyYXBwZXIgLnN3aXBlci1uYXYtdGl0bGV7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHh9fS5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhcntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkOWQ5ZDk7bWFyZ2luOjA7dG9wOi0ycHghaW1wb3J0YW50fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC04JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTglKX19LnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojMzY1M2E3IWltcG9ydGFudDtoZWlnaHQ6M3B4IWltcG9ydGFudDt0b3A6MnB4IWltcG9ydGFudH0uc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXI6OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjUwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZDojZjRmY2ZlO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt6LWluZGV4OjI7dG9wOi0xcHh9LnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MXJlbSAwO2JvdHRvbTowO3otaW5kZXg6MTE7d2lkdGg6MTAwJSFpbXBvcnRhbnR9LnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSAuc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7cGFkZGluZzowIWltcG9ydGFudH0uc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggLnN3aXRjaC10aXRsZXtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXdlaWdodDo2MDA7cmlnaHQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE7Y29sb3I6IzM2NTNhNztmb250LXNpemU6MTRweH0uc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggLnN3aXRjaC10aXRsZTphZnRlciwuc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggLnN3aXRjaC10aXRsZTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0xM3B4O3JpZ2h0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCg1MCUpIHRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtiYWNrZ3JvdW5kOiMzNjUzYTc7Ym9yZGVyLXJhZGl1czoycmVtO2NvbnRlbnQ6IiI7LXdlYmtpdC10cmFuc2l0aW9uOi4ycyBhbGwgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjouMnMgYWxsIGVhc2UtaW4tb3V0Oy13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTowczt0cmFuc2l0aW9uLWRlbGF5OjBzO3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggLnN3aXRjaC10aXRsZTphZnRlciwuc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggLnN3aXRjaC10aXRsZTpiZWZvcmV7dG9wOi0xMXB4fX0uc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSAuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIC5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2guYWN0aXZlIC5zd2l0Y2gtdGl0bGU6YWZ0ZXJ7YmFja2dyb3VuZDojMzY1M2E3O3dpZHRoOjI1cHg7aGVpZ2h0OjI1cHg7dG9wOi0xM3B4fS5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20gLnN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC5hY3RpdmUgLnN3aXRjaC10aXRsZTpiZWZvcmV7Y29udGVudDoiIjtiYWNrZ3JvdW5kOiM2OGNkZWQ7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDt6LWluZGV4OjI7dG9wOi0xM3B4fS5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20gLnN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC5hY3RpdmV+LnN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAuc3dpdGNoLXRpdGxlOmFmdGVyLC5zd2lwZXItY29udGFpbmVyLXdyYXBwZXItLXRpbWVsaW5lIC5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20gLnN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC5hY3RpdmV+LnN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1yZWd1bGFyIC5zd2l0Y2gtdGl0bGU6YWZ0ZXIsLnN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUgLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSAuc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLmFjdGl2ZX4uc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLXN3aW5nIC5zd2l0Y2gtdGl0bGU6YWZ0ZXJ7YmFja2dyb3VuZDojZDlkOWQ5fS5zd2lwZXItc2xpZGVyLXRyYWRpbmd7b3ZlcmZsb3c6aGlkZGVufS5zd2lwZXItc2xpZGVyLXRyYWRpbmcgLnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6M31AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuc3dpcGVyLXNsaWRlci10cmFkaW5nIC50aGVhZGVyIC50cm93e3BhZGRpbmc6MjBweCAwfX0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50Ym9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czoxNXB4O2JvcmRlcjoxcHggc29saWQgI2NhZDZmNjtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnN3aXBlci1zbGlkZXItdHJhZGluZyAudGJvZHl7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowfX0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50Ym9keSAudGFie2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2RkZWN9LnN3aXBlci1zbGlkZXItdHJhZGluZyAudGJvZHkgLnRhYjpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206MH0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50cm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEyLDFmcik7Z3JpZC10ZW1wbGF0ZS1yb3dzOjFmcjtncmlkLWNvbHVtbi1nYXA6MDtncmlkLXJvdy1nYXA6MDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50cm93IHB7Z3JpZC1hcmVhOjEvMS8yLzEyO3BhZGRpbmc6MTVweDttYXJnaW46MH1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnN3aXBlci1zbGlkZXItdHJhZGluZyAudHJvdyBwe2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctbGVmdDoxNXB4O2dyaWQtYXJlYToxLzEvMi8xM319LnN3aXBlci1zbGlkZXItdHJhZGluZyAudHJvdyAudmlkZW8tY29udGFpbmVye2dyaWQtYXJlYToyLzEvMi8xMDtwYWRkaW5nLWxlZnQ6MTVweH0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50ZGF0e3BhZGRpbmc6MTVweDt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuc3dpcGVyLXNsaWRlci10cmFkaW5nIC50ZGF0e2ZvbnQtc2l6ZToxM3B4fX0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50ZGF0Om50aC1jaGlsZCgxKXtncmlkLWFyZWE6MS8xLzIvNzt0ZXh0LWFsaWduOmxlZnR9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnN3aXBlci1zbGlkZXItdHJhZGluZyAudGRhdDpudGgtY2hpbGQoMSl7Z3JpZC1hcmVhOjEvMS8yLzR9fS5zd2lwZXItc2xpZGVyLXRyYWRpbmcgLnRkYXQ6bnRoLWNoaWxkKDIpe2dyaWQtYXJlYToxLzcvMi85fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5zd2lwZXItc2xpZGVyLXRyYWRpbmcgLnRkYXQ6bnRoLWNoaWxkKDIpe2dyaWQtYXJlYToxLzQvMi83fX0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50ZGF0Om50aC1jaGlsZCgzKXtncmlkLWFyZWE6MS85LzIvMTF9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnN3aXBlci1zbGlkZXItdHJhZGluZyAudGRhdDpudGgtY2hpbGQoMyl7Z3JpZC1hcmVhOjEvNy8yLzEwfX0uc3dpcGVyLXNsaWRlci10cmFkaW5nIC50ZGF0Om50aC1jaGlsZCg0KXtncmlkLWFyZWE6MS8xMS8yLzEzfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5zd2lwZXItc2xpZGVyLXRyYWRpbmcgLnRkYXQ6bnRoLWNoaWxkKDQpe2dyaWQtYXJlYToxLzEwLzIvMTN9fS5zd2lwZXItc2xpZGVyLXRyYWRpbmcgLnRib2R5IC50ZGF0Om50aC1jaGlsZCgzKXtiYWNrZ3JvdW5kOnJnYmEoNTQsODMsMTY3LC4wNSl9LmhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0udGRhdC1pbmZve3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpey50ZGF0LWluZm86OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7YmFja2dyb3VuZDojZjRmY2ZlO2JvcmRlci1yYWRpdXM6NTBweDtib3JkZXI6MXB4IHNvbGlkICNjYWQ2ZjZ9LnRkYXQtaW5mbzo6YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDoxMXB4O2hlaWdodDoxMXB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeE1pY2dhR1ZwWjJoMFBTY3hNaWNnWm1sc2JEMG5ibTl1WlNjK1BIQmhkR2dnWm1sc2JEMG5Jek0yTlROQk55Y2dabWxzYkMxeWRXeGxQU2RsZG1WdWIyUmtKeUJrUFNkTk1URXVNalVnTnk0eE1qVklNSFl0TVM0MWFERXhMakkxZGpFdU5Wb25JR05zYVhBdGNuVnNaVDBuWlhabGJtOWtaQ2N2UGp4d1lYUm9JR1pwYkd3OUp5TXpOalV6UVRjbklHWnBiR3d0Y25Wc1pUMG5aWFpsYm05a1pDY2daRDBuVFRRdU9EYzFJREV5Vmk0M05XZ3hMalZXTVRKb0xURXVOVm9uSUdOc2FYQXRjblZzWlQwblpYWmxibTlrWkNjdlBqd3ZjM1puUGc9PSk7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MjVweDttYXJnaW46YXV0b30udGRhdC1pbmZvLnNob3c6OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeE1pY2dhR1ZwWjJoMFBTY3pKeUJtYVd4c1BTZHViMjVsSno0OGNHRjBhQ0JtYVd4c1BTY2pNelkxTTBFM0p5Qm1hV3hzTFhKMWJHVTlKMlYyWlc1dlpHUW5JR1E5SjAweE1TNHlOU0F5TGpFeU5VZ3dkaTB4TGpWb01URXVNalYyTVM0MVdpY2dZMnhwY0MxeWRXeGxQU2RsZG1WdWIyUmtKeTgrUEM5emRtYyspO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH19LnRpZXItdGFie2NvbG9yOiMzNjUzYTc7Zm9udC1zaXplOjE1cHg7bGV0dGVyLXNwYWNpbmc6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo2MDA7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjEwcHh9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnRpZXItdGFie2ZvbnQtc2l6ZToxM3B4O21hcmdpbjowfX0udGRhdCBib2xke2NvbG9yOiMyNTI4MzE7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnRkYXQgYm9sZHtmb250LXNpemU6MTNweH19LmNoc19idG57LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNoc19idG57bWFyZ2luLXRvcDotNTBweDtib3JkZXItcmFkaXVzOjAgMCAzMHB4IDMwcHh9fS5jaHNfYnRuX2xua3std2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6IzM2NTNhNztwYWRkaW5nOjg1cHggMCAzMHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czozMHB4Oy0taWNvbi1zaXplOjI4cHg7LS1pY29uLWdhcDouNzVyZW07cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDEwcHgpO2ZvbnQtd2VpZ2h0OjYwMDtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hzX2J0bl9sbmt7Ym9yZGVyLXJhZGl1czowO21hcmdpbjowO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7cGFkZGluZzoyOXB4IDAhaW1wb3J0YW50fX0uY2hzX2J0bl9sbms+c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZX0uY2hzX2J0bl9sbmsgc3Bhbnstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgLjNzIGVhc2U7dHJhbnNpdGlvbjpjb2xvciAuM3MgZWFzZX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hzX2J0bl9sbmsgc3Bhbntjb2xvcjojZmZmfX0uY2hzX2J0biAuYy1idG4uLWxpbmt7LS1oLWNsYW1wLWZvcm11bGE6Mi42MHZ3Oy0tc21hbGxlci10ZXh0LXNpemU6MzBweDstLXRleHQtc2l6ZTo1MHB4O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uY2hzX2J0biAuYy1idG4uLWxpbmsgLmMtYnRuX19pY297LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0uY2hzX2J0biAuYy1idG4uLWxpbmsgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7d2lkdGg6MjhweDtoZWlnaHQ6MjhweH0uY2hzX2J0biAuYy1idG4uLWxpbmsgLmMtYnRuX190eHR7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCl9LmNoc19idG4gLmMtYnRuLi1saW5rIC5jLWJ0bl9fdHh0IHNwYW57Y29sb3I6I2ZmNzgyZH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hzX2J0biAuYy1idG4uLWxpbmsgLmMtYnRuX190eHQgc3Bhbntjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX19QG1lZGlhKGhvdmVyOmhvdmVyKXsuY2hzX2J0bjpob3ZlciAuYy1idG4uLWxpbmt7YmFja2dyb3VuZDojZmY1MzJkfS5jaHNfYnRuOmhvdmVyIC5jLWJ0bi4tbGluayAuYy1idG5fX3R4dHtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCk7cGFkZGluZy1sZWZ0OjB9LmNoc19idG46aG92ZXIgLmMtYnRuLi1saW5rIC5jLWJ0bl9fdHh0IHNwYW57Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmNoc19idG46aG92ZXIgLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKX19LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10YnBhbmVsX19pdGVtIC5jLWJsb2NrLC5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJwYW5lbF9faXRlbSAuaXMtd3lzaXd5Z3ttYXgtd2lkdGg6dmFyKC0tY29udGVudC13aWR0aCl9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC1kY2JsIC5jLWJsb2NrX19jb250ZW50e3BhZGRpbmc6MDttYXgtd2lkdGg6MTAwJX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRicGFuZWwubC10YnBhbmVsLXYye21heC13aWR0aDoxMDAlfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJwYW5lbC5sLXRicGFuZWwtdjIgLmwtdGJwYW5lbF9faXRlbSAuYy1ibG9ja3ttYXgtd2lkdGg6MTAwJX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRicGFuZWwubC10YnBhbmVsLXYyIC5sLXRicGFuZWxfX2l0ZW0gLmMtYmxvY2sgLmlzLXd5c2l3eWd7bWF4LXdpZHRoOjEwMCV9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXZfX2l0ZW17LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMSBhdXRvO2ZsZXg6MCAxIGF1dG99LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10YnBhbmVsLmwtdGJwYW5lbC12MXtiYWNrZ3JvdW5kOiNmNGZjZmV9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10YnBhbmVsLmwtdGJwYW5lbC12MXtib3JkZXItcmFkaXVzOjMwcHh9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJwYW5lbC5sLXRicGFuZWwtdjE+LmwtdGJwYW5lbF9faXRlbTpudGgtb2YtdHlwZSgyKXtwYWRkaW5nLXRvcDo0MHB4fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJwYW5lbC5sLXRicGFuZWwtdjE+LmwtdGJwYW5lbF9faXRlbTpudGgtb2YtdHlwZSgyKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjMwcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MzBweDtib3JkZXI6MXB4IHNvbGlkICNjYWQ2ZjY7Ym9yZGVyLWJvdHRvbTpub25lfX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRicGFuZWwubC10YnBhbmVsLXYxPi5sLXRicGFuZWxfX2l0ZW06bnRoLW9mLXR5cGUoMikgLnN3aXBlci1zbGlkZXItdHJhZGluZyAudGFibGU6YmVmb3Jle2xlZnQ6LTUxcHh9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAuc3dpcGVyLXNsaWRlci10cmFkaW5nIC50YWJsZXttYXJnaW46MCA1MHB4IDUwcHg7Ym9yZGVyLXJhZGl1czozMHB4fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLnN3aXBlci1zbGlkZXItdHJhZGluZyAudGFibGU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotNTBweDt3aWR0aDpjYWxjKDEwMCUgKyAxMDBweCk7aGVpZ2h0OmNhbGMoMTAwJSArIDUwcHgpO2JhY2tncm91bmQ6I2Y0ZmNmZTt6LWluZGV4Oi0xO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MzBweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozMHB4O2JvcmRlcjoxcHggc29saWQgI2NhZDZmNjtib3JkZXItdG9wOm5vbmV9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYubC10Ym5hdi12MntwYWRkaW5nLWJsb2NrOjIwcHh9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi5sLXRibmF2LXYye2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MzBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozMHB4O2JvcmRlcjoxcHggc29saWQgI2NhZDZmNjtib3JkZXItYm90dG9tOm5vbmU7cGFkZGluZy1ibG9jazo0MHB4fX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LmwtdGJuYXYtdjIgLmwtdGJuYXZfX2l0ZW17Ym9yZGVyLXJhZGl1czoxNXB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7cGFkZGluZy1sZWZ0OjM1cHg7cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi5sLXRibmF2LXYyIC5sLXRibmF2X19pdGVte2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctYmxvY2s6NXB4fX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LmwtdGJuYXYtdjIgLmwtdGJuYXZfX2l0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYubC10Ym5hdi12MiAubC10Ym5hdl9faXRlbTpudGgtb2YtdHlwZSgxKXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjclIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmF1dG87YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2N4TlNjZ2FHVnBaMmgwUFNjeU1TY2dkbWxsZDBKdmVEMG5NQ0F3SURFMUlESXhKeUJtYVd4c1BTZHViMjVsSno0OGNHRjBhQ0JrUFNkTk1DQXhNeTQyTWpBNFZqRTNMalV3TlRGRE1DQXhPUzR4TlRZMUlERXVNelF3TnpRZ01qQXVOU0F5TGprNE9ETTNJREl3TGpWSU1URXVNVGcxT1VNeE1pNDRNek0ySURJd0xqVWdNVFF1TVRjME15QXhPUzR4TlRZMUlERTBMakUzTkRNZ01UY3VOVEExTVZZeE15NDJNakE0UXpFMExqRTNORE1nTVRFdU9UY3pNaUF4TWk0NE16TTJJREV3TGpZek1qUWdNVEV1TVRnMU9TQXhNQzQyTXpJMFNESXVPVGc0TXpkRE1TNHpOREEzTkNBeE1DNDJNekkwSURBZ01URXVPVGN6TWlBd0lERXpMall5TURoYVRURXVOREk0TlRjZ01UTXVOakl3T0VNeExqUXlPRFUzSURFeUxqYzJNRGdnTWk0eE1qZ3lNU0F4TWk0d05qRWdNaTQ1T0Rnek55QXhNaTR3TmpGSU1URXVNVGcxT1VNeE1pNHdORFU1SURFeUxqQTJNU0F4TWk0M05EVTNJREV5TGpjMk1EY2dNVEl1TnpRMU55QXhNeTQyTWpBNFZqRTNMalV3TlRGRE1USXVOelExTmlBeE9DNHpOamcySURFeUxqQTBOVGtnTVRrdU1EY3hOQ0F4TVM0eE9EVTRJREU1TGpBM01UUklNaTQ1T0RneU1VTXlMakV5T0RJeElERTVMakEzTVRRZ01TNDBNamcwTVNBeE9DNHpOamcySURFdU5ESTROREVnTVRjdU5UQTFNVXd4TGpReU9EVTNJREV6TGpZeU1EaGFKeUJtYVd4c1BTY2pNelkxTTBFM0p5OCtQSEJoZEdnZ1pEMG5UVGN1TURnMk5qUWdPUzQwTWpNeU9FTTVMalUwTmpreklEa3VOREl6TWpnZ01URXVOVFE0TXlBM0xqUXlNVFk1SURFeExqVTBPRE1nTkM0NU5qRXlNME14TVM0MU5EZ3pJREl1TlRBeE1URWdPUzQxTkRjd01TQXdMalVnTnk0d09EWTJOQ0F3TGpWRE5DNDJNall5TnlBd0xqVWdNaTQyTWpVZ01pNDFNREV5TnlBeUxqWXlOU0EwTGprMk1UWTBRekl1TmpJMUlEY3VOREl4TnpjZ05DNDJNall5TnlBNUxqUXlNekk0SURjdU1EZzJOalFnT1M0ME1qTXlPRnBOTnk0d09EWTJOQ0F4TGpreU9EVTNRemd1TnpVNE5qa2dNUzQ1TWpnMU55QXhNQzR4TVRrM0lETXVNamc1TURjZ01UQXVNVEU1TnlBMExqazJNVFpETVRBdU1URTVOeUEyTGpZek5ESTJJRGd1TnpVNE5qa2dOeTQ1T1RRNU1TQTNMakE0TmpZMElEY3VPVGswT1RGRE5TNDBNVFEySURjdU9UazBPVEVnTkM0d05UTTJNaUEyTGpZek5EUXlJRFF1TURVek5qSWdOQzQ1TmpFMlF6UXVNRFV6TmpJZ015NHlPRGt3TnlBMUxqUXhORFlnTVM0NU1qZzFOeUEzTGpBNE5qWTBJREV1T1RJNE5UZGFKeUJtYVd4c1BTY2pNelkxTTBFM0p5OCtQQzl6ZG1jKyl9LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi5sLXRibmF2LXYyIC5sLXRibmF2X19pdGVtOm50aC1vZi10eXBlKDEpLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3hOU2NnYUdWcFoyaDBQU2N5TVNjZ2RtbGxkMEp2ZUQwbk1DQXdJREUxSURJeEp5Qm1hV3hzUFNkdWIyNWxKejQ4Y0dGMGFDQmtQU2ROTUNBeE15NDJNakE0VmpFM0xqVXdOVEZETUNBeE9TNHhOVFkxSURFdU16UXdOelFnTWpBdU5TQXlMams0T0RNM0lESXdMalZJTVRFdU1UZzFPVU14TWk0NE16TTJJREl3TGpVZ01UUXVNVGMwTXlBeE9TNHhOVFkxSURFMExqRTNORE1nTVRjdU5UQTFNVll4TXk0Mk1qQTRRekUwTGpFM05ETWdNVEV1T1Rjek1pQXhNaTQ0TXpNMklERXdMall6TWpRZ01URXVNVGcxT1NBeE1DNDJNekkwU0RJdU9UZzRNemRETVM0ek5EQTNOQ0F4TUM0Mk16STBJREFnTVRFdU9UY3pNaUF3SURFekxqWXlNRGhhVFRFdU5ESTROVGNnTVRNdU5qSXdPRU14TGpReU9EVTNJREV5TGpjMk1EZ2dNaTR4TWpneU1TQXhNaTR3TmpFZ01pNDVPRGd6TnlBeE1pNHdOakZJTVRFdU1UZzFPVU14TWk0d05EVTVJREV5TGpBMk1TQXhNaTQzTkRVM0lERXlMamMyTURjZ01USXVOelExTnlBeE15NDJNakE0VmpFM0xqVXdOVEZETVRJdU56UTFOaUF4T0M0ek5qZzJJREV5TGpBME5Ua2dNVGt1TURjeE5DQXhNUzR4T0RVNElERTVMakEzTVRSSU1pNDVPRGd5TVVNeUxqRXlPREl4SURFNUxqQTNNVFFnTVM0ME1qZzBNU0F4T0M0ek5qZzJJREV1TkRJNE5ERWdNVGN1TlRBMU1Vd3hMalF5T0RVM0lERXpMall5TURoYUp5Qm1hV3hzUFNkM2FHbDBaU2N2UGp4d1lYUm9JR1E5SjAwM0xqQTROalkwSURrdU5ESXpNamhET1M0MU5EWTVNeUE1TGpReU16STRJREV4TGpVME9ETWdOeTQwTWpFMk9TQXhNUzQxTkRneklEUXVPVFl4TWpORE1URXVOVFE0TXlBeUxqVXdNVEV4SURrdU5UUTNNREVnTUM0MUlEY3VNRGcyTmpRZ01DNDFRelF1TmpJMk1qY2dNQzQxSURJdU5qSTFJREl1TlRBeE1qY2dNaTQyTWpVZ05DNDVOakUyTkVNeUxqWXlOU0EzTGpReU1UYzNJRFF1TmpJMk1qY2dPUzQwTWpNeU9DQTNMakE0TmpZMElEa3VOREl6TWpoYVRUY3VNRGcyTmpRZ01TNDVNamcxTjBNNExqYzFPRFk1SURFdU9USTROVGNnTVRBdU1URTVOeUF6TGpJNE9UQTNJREV3TGpFeE9UY2dOQzQ1TmpFMlF6RXdMakV4T1RjZ05pNDJNelF5TmlBNExqYzFPRFk1SURjdU9UazBPVEVnTnk0d09EWTJOQ0EzTGprNU5Ea3hRelV1TkRFME5pQTNMams1TkRreElEUXVNRFV6TmpJZ05pNDJNelEwTWlBMExqQTFNell5SURRdU9UWXhOa00wTGpBMU16WXlJRE11TWpnNU1EY2dOUzQwTVRRMklERXVPVEk0TlRjZ055NHdPRFkyTkNBeExqa3lPRFUzV2ljZ1ptbHNiRDBuZDJocGRHVW5MejQ4TDNOMlp6ND0pfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYubC10Ym5hdi12MiAubC10Ym5hdl9faXRlbTpudGgtb2YtdHlwZSgxKXtiYWNrZ3JvdW5kLXNpemU6OCV9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYubC10Ym5hdi12MiAubC10Ym5hdl9faXRlbTpudGgtb2YtdHlwZSgyKXtwYWRkaW5nLWxlZnQ6NDVweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjclIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmF1dG87YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2N5T1NjZ2FHVnBaMmgwUFNjeU1TY2dkbWxsZDBKdmVEMG5NQ0F3SURJNUlESXhKeUJtYVd4c1BTZHViMjVsSno0OGNHRjBhQ0JwWkQwblZtVmpkRzl5SnlCa1BTZE5NalF1TnpjNU5TQXdMalZETWpJdU56RTVJREF1TlNBeU1TNHdOVEl6SURJdU1UWTJOekVnTWpFdU1EVXlNeUEwTGpJeU56SkRNakV1TURVeU15QTFMak14T0RFZ01qRXVOVEEyT0NBMkxqSTROelk1SURJeUxqSTJORE1nTmk0NU5UUXpOVXd4T1M0ek9EVTJJREV3TGpVNU1EWkRNVGt1TVRRek1pQXhNQzQxTXlBeE9DNDVNREEzSURFd0xqVXpJREU0TGpZeU9DQXhNQzQxTTBNeE9DNHlNelFnTVRBdU5UTWdNVGN1T0RRd01pQXhNQzQxT1RBMklERTNMalEzTmpVZ01UQXVOekV4T0V3eE15NDVNekV4SURndU16UTRNelZETVRRdU1UY3pOU0EzTGpnMk16UTJJREUwTGpNeU5URWdOeTR5T0RjMk5DQXhOQzR6TWpVeElEWXVOekV5TVRGRE1UUXVNekkxTVNBMExqWTFNVFl5SURFeUxqWTFPRE1nTWk0NU9EUTVNU0F4TUM0MU9UYzVJREl1T1RnME9URkRPQzQxTXpjek55QXlMams0TkRreElEWXVPRGN3TmpZZ05DNDJOVEUyTWlBMkxqZzNNRFkySURZdU56RXlNVEZETmk0NE56QTJOaUEzTGpjeE1qRWdOeTR5TmpRMk5pQTRMall5TVRJMElEY3VPVEF3T1NBNUxqSTROemsyVERVdU1EZ3lPRFFnTVRNdU1qSTNORU0wTGpjeE9USTNJREV6TGpFd05qTWdOQzR6TWpVeU55QXhNeTR3TkRVMklETXVPVEF4TURNZ01UTXVNRFExTmtNeExqZzBNRFUwSURFekxqQTBOVFlnTUM0eE56TTRNamdnTVRRdU56RXlNeUF3TGpFM016Z3lPQ0F4Tmk0M056STRRekF1TVRjek9ESTRJREU0TGpnek16TWdNUzQ0TkRBMU5DQXlNQzQxSURNdU9UQXhNRE1nTWpBdU5VTTFMamsyTVRVeElESXdMalVnTnk0Mk1qZ3lNeUF4T0M0NE16TXpJRGN1TmpJNE1qTWdNVFl1TnpjeU9FTTNMall5T0RJeklERTJMakF4TlRJZ055NHpPRFUzT0NBeE5TNHpNVGd6SURjdU1ESXlNaklnTVRRdU56RXlNMHd4TUM0eE1UTWdNVEF1TXpjNE4wTXhNQzR5TmpRMUlERXdMalF3T0RrZ01UQXVORFEyTXlBeE1DNDBNRGc1SURFd0xqVTVOemdnTVRBdU5EQTRPVU14TVM0eE5ETXlJREV3TGpRd09Ea2dNVEV1TmpnNE9DQXhNQzR5T0RjNElERXlMakUwTXpJZ01UQXVNRGMxTmt3eE5TNDFNRFk1SURFeUxqSTROemhETVRVdU1UY3pOU0F4TWk0NE16TXlJREUwTGprMk1UTWdNVE11TkRrNU9DQXhOQzQ1TmpFeklERTBMakl5TnpKRE1UUXVPVFl4TXlBeE5pNHlPRGMzSURFMkxqWXlPQ0F4Tnk0NU5UUTBJREU0TGpZNE9EVWdNVGN1T1RVME5FTXlNQzQzTkRrZ01UY3VPVFUwTkNBeU1pNDBNVFUzSURFMkxqSTROemNnTWpJdU5ERTFOeUF4TkM0eU1qY3lRekl5TGpReE5UY2dNVE11TXpFNE1TQXlNaTR3T0RJMElERXlMalE1T1RnZ01qRXVOVE0zSURFeExqZ3pNelJNTWpRdU5qSTRJRGN1T0Rrek9UZElNalF1T0RRd01rTXlOaTQ1TURBM0lEY3VPRGt6T1RjZ01qZ3VOVFkzTkNBMkxqSXlOekkySURJNExqVTJOelFnTkM0eE5qWTNOME15T0M0MU1EWTNJREl1TVRZMk5URWdNall1T0RRZ01DNDFJREkwTGpjM09UVWdNQzQxV2sweE1DNDFPVGM0SURVdU5EQTVNREZETVRFdU16STFNU0ExTGpRd09UQXhJREV4TGprd01EY2dOUzQ1T0RRNE1pQXhNUzQ1TURBM0lEWXVOekV4T1RORE1URXVPVEF3TnlBM0xqUXpPVEkxSURFeExqTXlORGtnT0M0d01UUTROQ0F4TUM0MU9UYzRJRGd1TURFME9EUkRPUzQ0TnpBME55QTRMakF4TkRnMElEa3VNamswT0RjZ055NDBNemt3TXlBNUxqSTVORGczSURZdU56RXhPVE5ET1M0eU9UUTROeUExTGprNE5EZ3lJRGt1T0Rjd05qZ2dOUzQwTURrd01TQXhNQzQxT1RjNElEVXVOREE1TURGYVRUTXVPVE14TVRZZ01UZ3VNREUxUXpNdU1qQXpPRE1nTVRndU1ERTFJREl1TmpJNE1qUWdNVGN1TkRNNU1pQXlMall5T0RJMElERTJMamN4TWpGRE1pNDJNamd5TkNBeE5TNDVPRFE0SURNdU1qQTBNRFVnTVRVdU5EQTVNaUF6TGprek1URTJJREUxTGpRd09USkROQzR4TnpNMk1TQXhOUzQwTURreUlEUXVNemcxTmpFZ01UVXVORFk1T0NBMExqVTJOell6SURFMUxqVTVNVU0wTGpZeU9ESTVJREUxTGpZMU1UWWdOQzQyT0RnM05TQXhOUzQyT0RFNUlEUXVOelE1TkRFZ01UVXVOelF5TlVNMExqYzNPVFkwSURFMUxqYzNNamNnTkM0NE1UQXdPQ0F4TlM0NE1ETXlJRFF1T0Rjd05UTWdNVFV1T0RBek1rTTFMakE0TWpjMUlERTJMakEwTlRZZ05TNHlNelF4SURFMkxqTTBPRFVnTlM0eU16UXhJREUyTGpjeE1qTkROUzR5TURNNE55QXhOeTQwTXpreklEUXVOakk0TURjZ01UZ3VNREUxSURNdU9UTXhNVFlnTVRndU1ERTFXazB4T0M0Mk5UZzBJREUxTGpVek1ERkRNVGN1T1RNeElERTFMalV6TURFZ01UY3VNelUxTkNBeE5DNDVOVFF6SURFM0xqTTFOVFFnTVRRdU1qSTNNVU14Tnk0ek5UVTBJREV6TGpRNU9UZ2dNVGN1T1RNeE1pQXhNaTQ1TWpReUlERTRMalkxT0RRZ01USXVPVEkwTWtNeE9TNHpPRFUzSURFeUxqa3lORElnTVRrdU9UWXhNeUF4TXk0MUlERTVMamsyTVRNZ01UUXVNakkzTVVNeE9TNDVOakUxSURFMExqazFORE1nTVRrdU16ZzFOeUF4TlM0MU16QXhJREU0TGpZMU9EUWdNVFV1TlRNd01WcE5NalF1TnpjNU5TQTFMalE1T1RneFF6STBMakExTWpJZ05TNDBPVGs0TVNBeU15NDBOelkySURRdU9USTBJREl6TGpRM05qWWdOQzR4T1RZNVF6SXpMalEzTmpZZ015NDBOamsxTnlBeU5DNHdOVEkwSURJdU9Ea3pPVGdnTWpRdU56YzVOU0F5TGpnNU16azRRekkxTGpVd05qa2dNaTQ0T1RNNU9DQXlOaTR3T0RJMUlETXVORFk1TnprZ01qWXVNRGd5TlNBMExqRTVOamxETWpZdU1EZ3lOU0EwTGpreU5DQXlOUzQxTURZMklEVXVORGs1T0RFZ01qUXVOemM1TlNBMUxqUTVPVGd4V2ljZ1ptbHNiRDBuSXpNMk5UTkJOeWN2UGp3dmMzWm5QZz09KX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LmwtdGJuYXYtdjIgLmwtdGJuYXZfX2l0ZW06bnRoLW9mLXR5cGUoMikuaXMtYWN0aXZle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeU9TY2dhR1ZwWjJoMFBTY3lNU2NnZG1sbGQwSnZlRDBuTUNBd0lESTVJREl4SnlCbWFXeHNQU2R1YjI1bEp6NDhjR0YwYUNCcFpEMG5WbVZqZEc5eUp5QmtQU2ROTWpRdU56YzVOU0F3TGpWRE1qSXVOekU1SURBdU5TQXlNUzR3TlRJeklESXVNVFkyTnpFZ01qRXVNRFV5TXlBMExqSXlOekpETWpFdU1EVXlNeUExTGpNeE9ERWdNakV1TlRBMk9DQTJMakk0TnpZNUlESXlMakkyTkRNZ05pNDVOVFF6TlV3eE9TNHpPRFUySURFd0xqVTVNRFpETVRrdU1UUXpNaUF4TUM0MU15QXhPQzQ1TURBM0lERXdMalV6SURFNExqWXlPQ0F4TUM0MU0wTXhPQzR5TXpRZ01UQXVOVE1nTVRjdU9EUXdNaUF4TUM0MU9UQTJJREUzTGpRM05qVWdNVEF1TnpFeE9Fd3hNeTQ1TXpFeElEZ3VNelE0TXpWRE1UUXVNVGN6TlNBM0xqZzJNelEySURFMExqTXlOVEVnTnk0eU9EYzJOQ0F4TkM0ek1qVXhJRFl1TnpFeU1URkRNVFF1TXpJMU1TQTBMalkxTVRZeUlERXlMalkxT0RNZ01pNDVPRFE1TVNBeE1DNDFPVGM1SURJdU9UZzBPVEZET0M0MU16Y3pOeUF5TGprNE5Ea3hJRFl1T0Rjd05qWWdOQzQyTlRFMk1pQTJMamczTURZMklEWXVOekV5TVRGRE5pNDROekEyTmlBM0xqY3hNakVnTnk0eU5qUTJOaUE0TGpZeU1USTBJRGN1T1RBd09TQTVMakk0TnprMlREVXVNRGd5T0RRZ01UTXVNakkzTkVNMExqY3hPVEkzSURFekxqRXdOak1nTkM0ek1qVXlOeUF4TXk0d05EVTJJRE11T1RBeE1ETWdNVE11TURRMU5rTXhMamcwTURVMElERXpMakEwTlRZZ01DNHhOek00TWpnZ01UUXVOekV5TXlBd0xqRTNNemd5T0NBeE5pNDNOekk0UXpBdU1UY3pPREk0SURFNExqZ3pNek1nTVM0NE5EQTFOQ0F5TUM0MUlETXVPVEF4TURNZ01qQXVOVU0xTGprMk1UVXhJREl3TGpVZ055NDJNamd5TXlBeE9DNDRNek16SURjdU5qSTRNak1nTVRZdU56Y3lPRU0zTGpZeU9ESXpJREUyTGpBeE5USWdOeTR6T0RVM09DQXhOUzR6TVRneklEY3VNREl5TWpJZ01UUXVOekV5TTB3eE1DNHhNVE1nTVRBdU16YzROME14TUM0eU5qUTFJREV3TGpRd09Ea2dNVEF1TkRRMk15QXhNQzQwTURnNUlERXdMalU1TnpnZ01UQXVOREE0T1VNeE1TNHhORE15SURFd0xqUXdPRGtnTVRFdU5qZzRPQ0F4TUM0eU9EYzRJREV5TGpFME16SWdNVEF1TURjMU5rd3hOUzQxTURZNUlERXlMakk0TnpoRE1UVXVNVGN6TlNBeE1pNDRNek15SURFMExqazJNVE1nTVRNdU5EazVPQ0F4TkM0NU5qRXpJREUwTGpJeU56SkRNVFF1T1RZeE15QXhOaTR5T0RjM0lERTJMall5T0NBeE55NDVOVFEwSURFNExqWTRPRFVnTVRjdU9UVTBORU15TUM0M05Ea2dNVGN1T1RVME5DQXlNaTQwTVRVM0lERTJMakk0TnpjZ01qSXVOREUxTnlBeE5DNHlNamN5UXpJeUxqUXhOVGNnTVRNdU16RTRNU0F5TWk0d09ESTBJREV5TGpRNU9UZ2dNakV1TlRNM0lERXhMamd6TXpSTU1qUXVOakk0SURjdU9Ea3pPVGRJTWpRdU9EUXdNa015Tmk0NU1EQTNJRGN1T0Rrek9UY2dNamd1TlRZM05DQTJMakl5TnpJMklESTRMalUyTnpRZ05DNHhOalkzTjBNeU9DNDFNRFkzSURJdU1UWTJOVEVnTWpZdU9EUWdNQzQxSURJMExqYzNPVFVnTUM0MVdrMHhNQzQxT1RjNElEVXVOREE1TURGRE1URXVNekkxTVNBMUxqUXdPVEF4SURFeExqa3dNRGNnTlM0NU9EUTRNaUF4TVM0NU1EQTNJRFl1TnpFeE9UTkRNVEV1T1RBd055QTNMalF6T1RJMUlERXhMak15TkRrZ09DNHdNVFE0TkNBeE1DNDFPVGM0SURndU1ERTBPRFJET1M0NE56QTBOeUE0TGpBeE5EZzBJRGt1TWprME9EY2dOeTQwTXprd015QTVMakk1TkRnM0lEWXVOekV4T1RORE9TNHlPVFE0TnlBMUxqazRORGd5SURrdU9EY3dOamdnTlM0ME1Ea3dNU0F4TUM0MU9UYzRJRFV1TkRBNU1ERmFUVE11T1RNeE1UWWdNVGd1TURFMVF6TXVNakF6T0RNZ01UZ3VNREUxSURJdU5qSTRNalFnTVRjdU5ETTVNaUF5TGpZeU9ESTBJREUyTGpjeE1qRkRNaTQyTWpneU5DQXhOUzQ1T0RRNElETXVNakEwTURVZ01UVXVOREE1TWlBekxqa3pNVEUySURFMUxqUXdPVEpETkM0eE56TTJNU0F4TlM0ME1Ea3lJRFF1TXpnMU5qRWdNVFV1TkRZNU9DQTBMalUyTnpZeklERTFMalU1TVVNMExqWXlPREk1SURFMUxqWTFNVFlnTkM0Mk9EZzNOU0F4TlM0Mk9ERTVJRFF1TnpRNU5ERWdNVFV1TnpReU5VTTBMamMzT1RZMElERTFMamMzTWpjZ05DNDRNVEF3T0NBeE5TNDRNRE15SURRdU9EY3dOVE1nTVRVdU9EQXpNa00xTGpBNE1qYzFJREUyTGpBME5UWWdOUzR5TXpReElERTJMak0wT0RVZ05TNHlNelF4SURFMkxqY3hNak5ETlM0eU1ETTROeUF4Tnk0ME16a3pJRFF1TmpJNE1EY2dNVGd1TURFMUlETXVPVE14TVRZZ01UZ3VNREUxV2sweE9DNDJOVGcwSURFMUxqVXpNREZETVRjdU9UTXhJREUxTGpVek1ERWdNVGN1TXpVMU5DQXhOQzQ1TlRReklERTNMak0xTlRRZ01UUXVNakkzTVVNeE55NHpOVFUwSURFekxqUTVPVGdnTVRjdU9UTXhNaUF4TWk0NU1qUXlJREU0TGpZMU9EUWdNVEl1T1RJME1rTXhPUzR6T0RVM0lERXlMamt5TkRJZ01Ua3VPVFl4TXlBeE15NDFJREU1TGprMk1UTWdNVFF1TWpJM01VTXhPUzQ1TmpFMUlERTBMamsxTkRNZ01Ua3VNemcxTnlBeE5TNDFNekF4SURFNExqWTFPRFFnTVRVdU5UTXdNVnBOTWpRdU56YzVOU0ExTGpRNU9UZ3hRekkwTGpBMU1qSWdOUzQwT1RrNE1TQXlNeTQwTnpZMklEUXVPVEkwSURJekxqUTNOallnTkM0eE9UWTVRekl6TGpRM05qWWdNeTQwTmprMU55QXlOQzR3TlRJMElESXVPRGt6T1RnZ01qUXVOemM1TlNBeUxqZzVNems0UXpJMUxqVXdOamtnTWk0NE9UTTVPQ0F5Tmk0d09ESTFJRE11TkRZNU56a2dNall1TURneU5TQTBMakU1TmpsRE1qWXVNRGd5TlNBMExqa3lOQ0F5TlM0MU1EWTJJRFV1TkRrNU9ERWdNalF1TnpjNU5TQTFMalE1T1RneFdpY2dabWxzYkQwbkkyWm1abVptWmljdlBqd3ZjM1puUGc9PSl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi5sLXRibmF2LXYyIC5sLXRibmF2X19pdGVtOm50aC1vZi10eXBlKDIpe2JhY2tncm91bmQtc2l6ZToxMiV9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjJfX3dyYXB7cGFkZGluZzo3cHg7Ym9yZGVyLXJhZGl1czoyMXB4O2JhY2tncm91bmQ6cmdiYSg1NCw4MywxNjcsLjEpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjdweH0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjdweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTQ4LDE1NywxNjksLjIpO2JvcmRlci1ib3R0b206MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjMwcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MzBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwe3dpZHRoOjEwMCV9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW17Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDowIDA7cGFkZGluZzoxMXB4IDEycHh9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi12MV9fd3JhcCAubC10Ym5hdl9faXRlbXt3aWR0aDo1MCV9fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW17cGFkZGluZzoyMHB4IDUwcHh9fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW06bnRoLW9mLXR5cGUoMSl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozMHB4fS5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW0uaXMtYWN0aXZley13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwIC5sLXRibmF2X19pdGVtLmlzLWFjdGl2ZTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZjRmY2ZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEyMCU7Y29udGVudDoiIjtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozMHB4O2JvcmRlcjoxcHggc29saWQgI2NhZDZmNjtib3JkZXItYm90dG9tOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjE7bGVmdDotMXB4fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW0uaXMtYWN0aXZlOmJlZm9yZXtsZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozMHB4fX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwIC5sLXRibmF2X19pdGVtLmlzLWFjdGl2ZTpiZWZvcmV7Ym9yZGVyLWxlZnQ6bm9uZX19LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi12MV9fd3JhcCAubC10Ym5hdl9faXRlbS5pcy1hY3RpdmU6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0ycHg7bGVmdDoxcHg7YmFja2dyb3VuZC1jb2xvcjojZjRmY2ZlO2hlaWdodDo0cHg7d2lkdGg6Y2FsYygxMDAlIC0gMnB4KTtjb250ZW50OiIiO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5jaGFsbGVuZ2VzX3NlY3Rpb24gLmwtdGJuYXYtdjFfX3dyYXAgLmwtdGJuYXZfX2l0ZW06bnRoLW9mLXR5cGUoMil7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MzBweH19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi12MV9fd3JhcCAubC10Ym5hdl9faXRlbTpudGgtb2YtdHlwZSgyKS5pcy1hY3RpdmU6YmVmb3Jle2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2FkNmY2O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozMHB4O2JvcmRlci1yaWdodDpub25lO3JpZ2h0Oi0xcHg7bGVmdDphdXRvfX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwIC5sLXRibmF2X19pdGVtOm5vdCguaXMtYWN0aXZlKSAuYy10Ym5hdl9fbGFiZWx7Y29sb3I6IzAwMH0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRibmF2LXYxX193cmFwIC5sLXRibmF2X19pdGVtIC5jLXRibmF2X19sYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmNoYWxsZW5nZXNfc2VjdGlvbiAubC10Ym5hdi12MV9fd3JhcCAubC10Ym5hdl9faXRlbSAuYy10Ym5hdl9fbGFiZWx7bGluZS1oZWlnaHQ6bm9ybWFsfX0uY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRicGFuZWxfX2l0ZW17cGFkZGluZzowfS5jaGFsbGVuZ2VzX3NlY3Rpb24gZiAuYy10Ym5hdjpub3QoLmlzLWFjdGl2ZSk6aG92ZXJ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuY2hhbGxlbmdlc19zZWN0aW9uIC5sLXRicGFuZWxfX2xhYmVse2Rpc3BsYXk6bm9uZX19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbnttaW4taGVpZ2h0Ojcwdmh9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbnttaW4taGVpZ2h0OjUwdmh9fS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmRzLWxpc3R7cG9zaXRpb246cmVsYXRpdmV9LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZHstLWNhcmQtaXRlbToyM3B4Oy0tZ2FwOjMwcHg7LS1oZWlnaHQ6MjIwcHg7LS1vZmZzZXQ6MjVweDtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLWJvdHRvbTozcmVtO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmR7LS1vZmZzZXQ6MTVweDstLWhlaWdodDoxNjVweH19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZDpudGgtY2hpbGQob2RkKXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm50aC1jaGlsZChvZGQpIC5jLWhlYWRpbmdfX3RpdGxle2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bm90KDpsYXN0LW9mLXR5cGUpe3BhZGRpbmc6NXJlbX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm5vdCg6bGFzdC1vZi10eXBlKXtwYWRkaW5nOjJyZW0gMS43cmVtO3BhZGRpbmc6MnJlbSAxLjVyZW19fS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQubGFzdC1jYXJke3BhZGRpbmc6NHJlbTtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkLmxhc3QtY2FyZHtwYWRkaW5nOjNyZW19fS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQubGFzdC1jYXJkIC5jLWhlYWRpbmdfX3RpdGxle2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQubGFzdC1jYXJkIC5jLWhlYWRpbmdfX3RpdGxle21hcmdpbi1ib3R0b206NS41cmVtfX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkLmxhc3QtY2FyZCAubGFzdC1jYXJkLWJnLWltZ3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjM1JTtoZWlnaHQ6MDt3aWR0aDozNzNweDtwYWRkaW5nLXRvcDozOCU7Ym90dG9tOjB9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQubGFzdC1jYXJkIC5sYXN0LWNhcmQtYmctaW1ne2Rpc3BsYXk6bm9uZX19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC5sYXN0LWNhcmQgLmxhc3QtY2FyZC1iZy1pbWcgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowOy1vLW9iamVjdC1maXQ6c2NhbGUtZG93bjtvYmplY3QtZml0OnNjYWxlLWRvd259LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC5sYXN0LWNhcmQgLmxhc3QtY2FyZC1pbWd7LS1oLWNsYW1wLWZvcm11bGE6MTEuNDB2dzstLXNtYWxsZXItaW1nLXNpemU6MTUwcHg7LS1pbWctc2l6ZToyMTlweDstLWltZy13aWR0aDpjbGFtcCh2YXIoLS1zbWFsbGVyLWltZy1zaXplKSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0taW1nLXNpemUpKTstLWgtY2xhbXAtZm9ybXVsYWw6MTguNjl2dzstLXNtYWxsZXItaW1nLWhlaWdodDoyNDVweDstLWltZy1oZWlnaHQtc2l6ZTozNTlweDstLWltZy1oZWlnaHQ6Y2xhbXAodmFyKC0tc21hbGxlci1pbWctaGVpZ2h0KSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhbCksIHZhcigtLWltZy1oZWlnaHQtc2l6ZSkpO3dpZHRoOnZhcigtLWltZy13aWR0aCk7aGVpZ2h0OnZhcigtLWltZy1oZWlnaHQpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjMwcHg7Ym90dG9tOjB9LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC5sYXN0LWNhcmQgLmxhc3QtY2FyZC1pbWcgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC5sYXN0LWNhcmQgLmxhc3QtY2FyZC1pbWcgaW1ney13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC45KSB0cmFuc2xhdGUoMjBweCwxNHB4KTt0cmFuc2Zvcm06c2NhbGUoLjkpIHRyYW5zbGF0ZSgyMHB4LDE0cHgpfX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkLmxhc3QtY2FyZCAubGFzdC1jYXJkLWNvbnRlbnR7bWF4LXdpZHRoOjQwJX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkLmxhc3QtY2FyZCAuYy1idG4uLXNlY29uZGFyeXtib3JkZXItY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7YmFja2dyb3VuZDowIDB9LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC5sYXN0LWNhcmQgLmMtYnRuLi1zZWNvbmRhcnkgLmMtYnRuX19pY28gc3Zne2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDoxO2xlZnQ6MDt3aWR0aDoxMDAlfS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoMil7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiAyKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkgLSB2YXIoLS1vZmZzZXQpICogMikpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkgLSB2YXIoLS1vZmZzZXQpICogMikpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoMil7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiAxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkgLSB2YXIoLS1vZmZzZXQpICogMSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkgLSB2YXIoLS1vZmZzZXQpICogMSkpfX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm50aC1vZi10eXBlKDMpe21hcmdpbi10b3A6Y2FsYyh2YXIoLS1vZmZzZXQpICogMyk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiAyIC0gdmFyKC0tb2Zmc2V0KSAqIDMpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiAyIC0gdmFyKC0tb2Zmc2V0KSAqIDMpKX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm50aC1vZi10eXBlKDMpe21hcmdpbi10b3A6Y2FsYyh2YXIoLS1vZmZzZXQpICogMik7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiAyIC0gdmFyKC0tb2Zmc2V0KSAqIDIpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiAyIC0gdmFyKC0tb2Zmc2V0KSAqIDIpKX19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZDpudGgtb2YtdHlwZSg0KXttYXJnaW4tdG9wOmNhbGModmFyKC0tb2Zmc2V0KSAqIDQpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogMyAtIHZhcigtLW9mZnNldCkgKiA0KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogMyAtIHZhcigtLW9mZnNldCkgKiA0KSl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZDpudGgtb2YtdHlwZSg0KXttYXJnaW4tdG9wOmNhbGModmFyKC0tb2Zmc2V0KSAqIDMpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogMyAtIHZhcigtLW9mZnNldCkgKiAzKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogMyAtIHZhcigtLW9mZnNldCkgKiAzKSl9fS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoNSl7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiA1KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDQgLSB2YXIoLS1vZmZzZXQpICogNSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDQgLSB2YXIoLS1vZmZzZXQpICogNSkpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoNSl7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiA0KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDQgLSB2YXIoLS1vZmZzZXQpICogNCkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDQgLSB2YXIoLS1vZmZzZXQpICogNCkpfX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm50aC1vZi10eXBlKDYpey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogNSAtIHZhcigtLW9mZnNldCkgKiA2KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogNSAtIHZhcigtLW9mZnNldCkgKiA2KSk7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiA2KX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkOm50aC1vZi10eXBlKDYpey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogNSAtIHZhcigtLW9mZnNldCkgKiA1KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0taGVpZ2h0KSArIHZhcigtLWdhcCkpICogNSAtIHZhcigtLW9mZnNldCkgKiA1KSk7bWFyZ2luLXRvcDpjYWxjKHZhcigtLW9mZnNldCkgKiA1KX19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZDpudGgtb2YtdHlwZSg3KXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDYgLSB2YXIoLS1vZmZzZXQpICogNykpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDYgLSB2YXIoLS1vZmZzZXQpICogNykpO21hcmdpbi10b3A6Y2FsYyh2YXIoLS1vZmZzZXQpICogNyl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZDpudGgtb2YtdHlwZSg3KXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDYgLSB2YXIoLS1vZmZzZXQpICogNikpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDYgLSB2YXIoLS1vZmZzZXQpICogNikpO21hcmdpbi10b3A6Y2FsYyh2YXIoLS1vZmZzZXQpICogNil9fS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoOCl7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiA3IC0gMjAwcHgpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS1oZWlnaHQpICsgdmFyKC0tZ2FwKSkgKiA3IC0gMjAwcHgpKTttYXJnaW4tdG9wOjIwMHB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmNhcmQ6bnRoLW9mLXR5cGUoOCl7bWFyZ2luLXRvcDoxMDVweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDcgLSAxMDVweCkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLWhlaWdodCkgKyB2YXIoLS1nYXApKSAqIDcgLSAxMDVweCkpfX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC5jYXJkLWljb257LS1oLWNsYW1wLWZvcm11bGFsOjUuMjB2dzstLXNtYWxsZXItaW1nLWhlaWdodDo1M3B4Oy0taW1nLWhlaWdodC1zaXplOjEwMHB4Oy0tY2NibC1pY29uLXNpemU6Y2xhbXAodmFyKC0tc21hbGxlci1pbWctaGVpZ2h0KSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhbCksIHZhcigtLWltZy1oZWlnaHQtc2l6ZSkpOy13ZWJraXQtYm94LWZsZXg6MDstbXMtZmxleDowIDAgdmFyKC0tY2NibC1pY29uLXNpemUpO2ZsZXg6MCAwIHZhcigtLWNjYmwtaWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0tY2NibC1pY29uLXNpemUpO21pbi13aWR0aDp2YXIoLS1jY2JsLWljb24tc2l6ZSk7bWFyZ2luLXJpZ2h0OjNyZW19LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAuY2FyZC1pY29uIGltZ3ttYXgtaGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIC50ZXh0e21hcmdpbi1ib3R0b206MS41cmVtfUBtZWRpYShob3Zlcjpob3Zlcil7LmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiAubGFzdC1jYXJkIC5jLWJ0bi4tc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Ym9yZGVyLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjMpfS5maW5hbmNpYWxfaW5kZXBlbmRlbmNlX3NlY3Rpb24gLmxhc3QtY2FyZCAuYy1idG4uLXNlY29uZGFyeTpob3ZlciAuYy1idG5fX2ljbyBzdmd7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IzKX19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb257cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2JhKDI0NCwyNTIsMjU0LDApKSx0bygjZjRmY2ZlKSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMjQ0LDI1MiwyNTQsMCksI2Y0ZmNmZSk7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1kZWZhdWx0LXRvcC1nYXApICogNCl9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb246YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O29wYWNpdHk6LjI1O2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7dG9wOjUwJTtsZWZ0OjB9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb246YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMjtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowO2JvdHRvbToyMCU7bGVmdDoyMCV9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24uZ3QtYmlne3BhZGRpbmctdG9wOmNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAqIDQpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uLmd0LWJpZ3twYWRkaW5nLXRvcDpjYWxjKHZhcigtLWRlZmF1bHQtdG9wLWdhcCkgKiAxMCl9fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIC5jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmV9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gLmNvbnRhaW5lcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4yO2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7Ym90dG9tOjIwJTtyaWdodDowfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIC5jb250YWluZXJ7cGFkZGluZzowfX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiAuYmctaW1hZ2V7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDt6LWluZGV4Oi0xfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIC5iZy1pbWFnZXtkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIC50cmFkZS11cy13cmFwcGVye292ZXJmbG93OmF1dG99fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIC5wcmV0aXRsZXttYXJnaW4tdG9wOjE0cmVtO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzozcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZXt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1zcGFjaW5nOjA7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO3otaW5kZXg6MX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSBpbWd7bWF4LXdpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0aGVhZHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Ym9yZGVyLXNwYWNpbmc6MDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGV9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGhlYWQgdHIgdGh7cGFkZGluZzoxLjhyZW19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGhlYWQgdHIgdGh7cGFkZGluZzoxcmVtO21pbi13aWR0aDoxMDBweH19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGhlYWQgdHIgdGg6bnRoLW9mLXR5cGUoMSl7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToyNHB4O3Bvc2l0aW9uOnN0aWNreTtsZWZ0OjA7ei1pbmRleDoyfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRoZWFkIHRyIHRoOm50aC1vZi10eXBlKDEpe2ZvbnQtc2l6ZTowfX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0aGVhZCB0ciB0aDpudGgtb2YtdHlwZSgyKXt3aWR0aDoxOSU7Ym9yZGVyOjNweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7Ym9yZGVyLWJvdHRvbTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRoZWFkIHRyIHRoOm50aC1vZi10eXBlKDIpe21heC13aWR0aDo4MXB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvcjEpO2JvcmRlci1ib3R0b206bm9uZX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0aGVhZCB0ciB0aDpudGgtb2YtdHlwZSgyKSBpbWd7bWF4LXdpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1jaGlsZCl7Zm9udC1zaXplOjE2cHg7Y29sb3I6IzM2NTNhNzt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1jaGlsZCl7Zm9udC1zaXplOjEwcHh9fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5ey0tYm9yZGVyOjFweCBzb2xpZCAjQ0FENkY2O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItc3BhY2luZzowO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0Ym9keSB0cntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2FkNmY2fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5IHRyOm50aC1vZi10eXBlKDEpIHRkOm50aC1vZi10eXBlKDEpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MTBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjY2FkNmY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2FkNmY2fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5IHRyOm50aC1vZi10eXBlKDEpIHRkOm50aC1vZi10eXBlKDMpLC53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5IHRyOm50aC1vZi10eXBlKDEpIHRkOm50aC1vZi10eXBlKDQpe2JvcmRlci10b3A6MXB4IHNvbGlkICNjYWQ2ZjZ9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHI6bnRoLW9mLXR5cGUoMSkgdGQ6bGFzdC1vZi10eXBle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NhZDZmNjtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjYWQ2ZjZ9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRkOm50aC1vZi10eXBlKDEpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2FkNmY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2FkNmY2fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5IHRyOmxhc3Qtb2YtdHlwZSB0ZDpudGgtb2YtdHlwZSgyKXtib3JkZXItYm90dG9tOjNweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yMSl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRkOm50aC1vZi10eXBlKDIpe2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKX19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRkOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjYWQ2ZjY7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2FkNmY2fS53aHlfdHJhZGVfd2l0aF91c19zZWN0aW9uIHRhYmxlIHRib2R5IHRyIHRke3BhZGRpbmc6MS41cmVtIDEuOHJlbTstLXRleHQtc2l6ZS1tb2JpbGU6MTNweDstLXRleHQtc2l6ZToxNnB4Oy0taC1jbGFtcC1mb3JtdWxhOjAuODR2dztmb250LXdlaWdodDo2MDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NhZDZmNjtmb250LXNpemU6Y2xhbXAodmFyKC0tdGV4dC1zaXplLW1vYmlsZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0Ym9keSB0ciB0ZHtwYWRkaW5nOjEuMnJlbSAxcmVtO21pbi13aWR0aDoxMDBweH19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bnRoLW9mLXR5cGUobiszKXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjYWQ2ZjZ9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bnRoLW9mLXR5cGUoMSl7LS10ZXh0LXNpemUtbW9iaWxlOjEzcHg7LS10ZXh0LXNpemU6MThweDstLWgtY2xhbXAtZm9ybXVsYTowLjkzdnc7Zm9udC1zaXplOmNsYW1wKHZhcigtLXRleHQtc2l6ZS1tb2JpbGUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tdGV4dC1zaXplKSk7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0OjYwMDt3aWR0aDozNiU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjYWQ2ZjY7bWluLXdpZHRoOjEyMHB4O3Bvc2l0aW9uOnN0aWNreTtsZWZ0OjA7ei1pbmRleDoyO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bnRoLW9mLXR5cGUoMil7d2lkdGg6MTklO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKTtib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKTtmb250LXdlaWdodDo3MDB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bnRoLW9mLXR5cGUoMil7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKTtib3JkZXItcmlnaHQ6MnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKX19LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bnRoLW9mLXR5cGUoNCl7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtb2YtdHlwZSgzKSwud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtb2YtdHlwZSg1KXtiYWNrZ3JvdW5kOnJnYmEoNTQsODMsMTY3LC4wNSl9LndoeV90cmFkZV93aXRoX3VzX3NlY3Rpb24gdGFibGUgdGJvZHkgdHIgdGQ6bGFzdC1vZi10eXBle2JvcmRlci1yaWdodDoxcHggc29saWQgI2NhZDZmNn0ud2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiB0YWJsZSB0Ym9keSB0cjpsYXN0LW9mLXR5cGUgdGQ6bnRoLW9mLXR5cGUoMik6YWZ0ZXJ7ZGlzcGxheTpub25lfUAtd2Via2l0LWtleWZyYW1lcyBzdHJlYW17MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDUlKX19QGtleWZyYW1lcyBzdHJlYW17MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDUlKX19LmJhY2t0aXRsZXstLWgtY2xhbXAtZm9ybXVsYTo3Ljc2dnc7LS1zbWFsbGVyLXRleHQtc2l6ZTo1MnB4Oy0tdGV4dC1zaXplOjE0OXB4Oy0tZHVyYXRpb246MjBzOy0tdGV4dC1mb250LXNpemU6Y2xhbXAodmFyKC0tc21hbGxlci10ZXh0LXNpemUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS10ZXh0LXNpemUpKTtmb250LXNpemU6dmFyKC0tdGV4dC1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotNS45NjdweDtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttYXJnaW4tbGVmdDotNTB2dzttYXJnaW4tcmlnaHQ6LTUwdnc7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NTAlO3RvcDpjYWxjKHZhcigtLXRleHQtZm9udC1zaXplKSAqIC0xLjgpO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDpjYWxjKDEwMHZ3IC0gOC4xcHgpOy13ZWJraXQtYW5pbWF0aW9uOnN0cmVhbSB2YXIoLS1kdXJhdGlvbikgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjpzdHJlYW0gdmFyKC0tZHVyYXRpb24pIGxpbmVhciBpbmZpbml0ZX0uYmFja3RpdGxlIHNwYW57dGV4dC1zaGFkb3c6LTFweCAtMXB4IDAgIzM2NTNhNywxcHggLTFweCAwICMzNjUzYTcsLTFweCAxcHggMCAjMzY1M2E3LDFweCAxcHggMCAjMzY1M2E3O2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO21hcmdpbi1yaWdodDouNWVtO21hcmdpbi1sZWZ0Oi41ZW19OnJvb3R7LS1ncmFkaWVudF9iZ19jb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTstLWdyYWRpZW50X3Nwb3QxX2NvbG9yOiMwMDFhMzk7LS1ncmFkaWVudF9zcG90MV93Ojc1JTstLWdyYWRpZW50X3Nwb3QxX2g6NzUlOy0tZ3JhZGllbnRfc3BvdDFfeDowJTstLWdyYWRpZW50X3Nwb3QxX3k6MCU7LS1ncmFkaWVudF9zcG90Ml9jb2xvcjpyZ2JhKDEwNCwgMjA1LCAyMzcsIC4zKTstLWdyYWRpZW50X3Nwb3QyX3c6NTAlOy0tZ3JhZGllbnRfc3BvdDJfaDo1MCU7LS1ncmFkaWVudF9zcG90Ml94OjEwMCU7LS1ncmFkaWVudF9zcG90Ml95Ojc1JTstLWdyYWRpZW50X3Nwb3QzX2NvbG9yOiMwMDFhMzk7LS1ncmFkaWVudF9zcG90M193OjUwJTstLWdyYWRpZW50X3Nwb3QzX2g6NTAlOy0tZ3JhZGllbnRfc3BvdDNfeDoxMDAlOy0tZ3JhZGllbnRfc3BvdDNfeTo1MCU7LS1ncmFkaWVudF9zcG90NF9jb2xvcjpyZ2JhKDEwNCwgMjA1LCAyMzcsIC42KTstLWdyYWRpZW50X3Nwb3Q0X3c6NTAlOy0tZ3JhZGllbnRfc3BvdDRfaDo1MCU7LS1ncmFkaWVudF9zcG90NF94Oi03JTstLWdyYWRpZW50X3Nwb3Q0X3k6MTclfS5qb2luX3VzX3NlY3Rpb257cGFkZGluZy10b3A6MTEuNXZoO3BhZGRpbmctYm90dG9tOjEzdmg7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmFkaWVudF9iZ19jb2xvcik7YmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdDFfdykgdmFyKC0tZ3JhZGllbnRfc3BvdDFfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90MV94KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdDFfeSksdmFyKC0tZ3JhZGllbnRfc3BvdDFfY29sb3IpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdDJfdykgdmFyKC0tZ3JhZGllbnRfc3BvdDJfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90Ml94KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdDJfeSksdmFyKC0tZ3JhZGllbnRfc3BvdDJfY29sb3IpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdDNfdykgdmFyKC0tZ3JhZGllbnRfc3BvdDNfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90M194KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdDNfeSksdmFyKC0tZ3JhZGllbnRfc3BvdDNfY29sb3IpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdDRfdykgdmFyKC0tZ3JhZGllbnRfc3BvdDRfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90NF94KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdDRfeSksdmFyKC0tZ3JhZGllbnRfc3BvdDRfY29sb3IpLHRyYW5zcGFyZW50KX0uam9pbl91c19zZWN0aW9uIC5jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmV9LmpvaW5fdXNfc2VjdGlvbiAuYy1oZWFkaW5nLi1oMnttYXJnaW4tYm90dG9tOjB9LmpvaW5fdXNfc2VjdGlvbiAuYy1oZWFkaW5nLi1oMisuYy1oZWFkaW5nLi1oMnttYXJnaW4tYm90dG9tOjEuMWVtfS5qb2luX3VzX3NlY3Rpb24gLmMtaGVhZGluZ19fcHJley0taC1jbGFtcC1mb3JtdWxhOjIuNjB2dztjb2xvcjojNjhjZGVkO2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1oMi1mb250LXNpemUtbW9iaWxlKSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWgyLWZvbnQtc2l6ZSkpfS5qb2luX3VzX3NlY3Rpb24gLmMtaGVhZGluZ19fdGl0bGV7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmpvaW5fdXNfc2VjdGlvbiAuc29jaWFsLWxpc3R7LS1zb2NpYWwtaWNvbi1zaXplLW1vYmlsZTo3NXB4Oy0tc29jaWFsLWljb24tc2l6ZToxMzBweDstLWgtY2xhbXAtZm9ybXVsYTo2Ljc3dnc7LS1zb2NpYWwtaWNvbi1ncmlkOmNsYW1wKHZhcigtLXNvY2lhbC1pY29uLXNpemUtbW9iaWxlKSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0tc29jaWFsLWljb24tc2l6ZSkpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjMwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXB9LmpvaW5fdXNfc2VjdGlvbiAuc29jaWFsLWxpc3RfX2xpbmt7LS1zb2NpYWwtaWNvbi1iZzp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTt3aWR0aDpjbGFtcCh2YXIoLS1zb2NpYWwtaWNvbi1zaXplLW1vYmlsZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1zb2NpYWwtaWNvbi1zaXplKSk7aGVpZ2h0OmNsYW1wKHZhcigtLXNvY2lhbC1pY29uLXNpemUtbW9iaWxlKSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLXNvY2lhbC1pY29uLXNpemUpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjIpfUBtZWRpYShob3Zlcjpob3Zlcil7LmpvaW5fdXNfc2VjdGlvbiAuc29jaWFsLWxpc3RfX2xpbms6aG92ZXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1zb2NpYWwtaWNvbi1yYWRpdXMpfX0uam9pbl91c19zZWN0aW9uIC5zb2NpYWwtbGlzdF9fbGluayAuYy1idG5fX2ljb3toZWlnaHQ6MTAwJX0uam9pbl91c19zZWN0aW9uIC5iZy1pbWd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmV9LmpvaW5fdXNfc2VjdGlvbiAuYmctaW1nIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcn0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb257cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5jb250YWluZXJ7cGFkZGluZzowfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb257cGFkZGluZy10b3A6MH19LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5iZy1pbWd7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTE2JTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RvcDo1MCV9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5iZy1pbWd7ZGlzcGxheTpub25lfX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLmJnLWltZyBpbWd7bWF4LXdpZHRoOjgwJX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb25fX3dyYXBwZXJ7YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5LWNvbG9yMik7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb25fX3dyYXBwZXJ7cGFkZGluZzo3cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7Z2FwOjNyZW19fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5wYXltZW50X29wdGlvbnNfc2VjdGlvbl9fd3JhcHBlcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uX19jb250ZW50e3dpZHRoOjU3JX19LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uX19jb250ZW50IC5jLWhlYWRpbmdfX3RpdGxle2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYXltZW50X29wdGlvbnNfc2VjdGlvbl9fY29udGVudCAuYy1oZWFkaW5nX190aXRsZXttYXgtd2lkdGg6NzAlfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb25fX2NvbnRlbnR7cGFkZGluZzo0cmVtIDJyZW07dGV4dC1hbGlnbjpjZW50ZXJ9fS5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAudGV4dHtmb250LXNpemU6MThweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO21hcmdpbi1ib3R0b206MWVtfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAudGV4dHttYXgtd2lkdGg6NzAlO21hcmdpbi1ib3R0b206NGVtfX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW1lbnQtb3B0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW1lbnQtb3B0aW9ucyB1bHstLWljb24tc2l6ZS1tb2JpbGU6NTBweDstLWljb24tc2l6ZToxMTVweDstLWgtY2xhbXAtZm9ybXVsYTo1Ljk4dnc7LS1pY29uLWdyaWQ6Y2xhbXAodmFyKC0taWNvbi1zaXplLW1vYmlsZSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWljb24tc2l6ZSkpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO2dhcDoxNXB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAucGF5bWVudC1vcHRpb25zIHVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMjJweDtoZWlnaHQ6MTE1cHg7Y29udGVudDoiIjt6LWluZGV4OjF9QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXltZW50LW9wdGlvbnMgdWw6YmVmb3Jle3JpZ2h0OjA7d2lkdGg6MTIycHg7aGVpZ2h0OjExNXB4O3RvcDotMTE1cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2N4TWpJbklHaGxhV2RvZEQwbk1URTFKeUIyYVdWM1FtOTRQU2N3SURBZ01USXlJREV4TlNjZ1ptbHNiRDBuYm05dVpTYytQSEJoZEdnZ2FXUTlKMVZ1YVc5dUp5Qm1hV3hzTFhKMWJHVTlKMlYyWlc1dlpHUW5JR05zYVhBdGNuVnNaVDBuWlhabGJtOWtaQ2NnWkQwblRUY3VNemN4TlRnZ01URXhMalF6TlVNM0xqWXlNalUxSURFeE1pNDVOemNnTmk0MU56VTROeUF4TVRRdU5ETXhJRFV1TURNek56Y2dNVEUwTGpZNE1rTXpMalE1TVRZMklERXhOQzQ1TXpNZ01pNHdNemd3T0NBeE1UTXVPRGcySURFdU56ZzNNVElnTVRFeUxqTTBORU10TWk0ek5qQXlJRGcyTGpnMklEVXVPREV5TVRRZ05UVXVNalUxT0NBeU5TNDBPVGs0SURNMExqYzNOalpETXpVdU16a3dOeUF5TkM0ME9EZ2dORGd1TWpFeU1TQXhOaTQ1T0RreUlEWXpMamd4TkRVZ01UUXVOVFUzTVVNM09DNHdNRGdnTVRJdU16UTBOaUE1TkM0ek1qRXhJREUwTGpNMU1qTWdNVEV5TGpZeElESXlMakF4TXpSTU1UQXhMakU0SURRdU5qWXlOamRETVRBd0xqTXlNU0F6TGpNMU56azBJREV3TUM0Mk9ESWdNUzQyTURNME55QXhNREV1T1RnMklEQXVOelF6T1RVMlF6RXdNeTR5T1RFZ0xUQXVNVEUxTlRZeElERXdOUzR3TkRZZ01DNHlORFV6TkRZZ01UQTFMamt3TlNBeExqVTFNREEzVERFeU1TNHdPVGdnTWpRdU5qRXlOVU14TWpFdU9UVTRJREkxTGpreE56TWdNVEl4TGpVNU55QXlOeTQyTnpFM0lERXlNQzR5T1RJZ01qZ3VOVE14TTB3NU55NHlNamswSURRekxqY3lOREpET1RVdU9USTBOeUEwTkM0MU9ETTNJRGswTGpFM01ESWdORFF1TWpJeU9DQTVNeTR6TVRBM0lEUXlMamt4T0RGRE9USXVORFV4TWlBME1TNDJNVE0wSURreUxqZ3hNakVnTXprdU9EVTRPU0E1TkM0eE1UWTRJRE00TGprNU9UUk1NVEV4TGpNM01TQXlOeTQyTXpJNVF6a3pMalEzTWpVZ01Ua3VPVFkxTkNBM055NDVNREEzSURFNExqQTROellnTmpRdU5qZzJJREl3TGpFME56VkROVEF1TkRNMU5TQXlNaTR6TmpnNUlETTRMamN3TmprZ01qa3VNakF5TkNBeU9TNDFOemcySURNNExqWTVOemRETVRFdU1qSTRJRFUzTGpjNE5qSWdNeTQwT0RVME5TQTROeTQxTlRZeElEY3VNemN4TlRnZ01URXhMalF6TlZvbklHWnBiR3c5SnlNMk9FTkVSVVFuTHo0OEwzTjJaejQ9KX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXltZW50LW9wdGlvbnMgdWw6YmVmb3Jle2JhY2tncm91bmQtc2l6ZTo4MyU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3JpZ2h0Oi03cHg7Ym90dG9tOi0xMDVweDt3aWR0aDo0MXB4O2hlaWdodDo5MnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjME1TY2dhR1ZwWjJoMFBTYzVNaWNnZG1sbGQwSnZlRDBuTUNBd0lEUXhJRGt5SnlCbWFXeHNQU2R1YjI1bEp6NDhjR0YwYUNCbWFXeHNMWEoxYkdVOUoyVjJaVzV2WkdRbklHTnNhWEF0Y25Wc1pUMG5aWFpsYm05a1pDY2daRDBuVFRFNExqazVOemdnTXk0M09EY3hNVU14T0M0eU9ERWdNeTR4T1RZek1TQXhPQzR4TnpnNUlESXVNVE0yTXpZZ01UZ3VOelk1TnlBeExqUXhPVFkwUXpFNUxqTTJNRFVnTUM0M01ESTVNVElnTWpBdU5ESXdOU0F3TGpZd01EZ3lOU0F5TVM0eE16Y3lJREV1TVRreE5qSkRNekl1T1RneE15QXhNQzQ1TlRRM0lEUXhMamN4T1RFZ01qZ3VNamd5T0NBME1DNDVORGt5SURRMUxqRTFNelJETkRBdU5UWXlOQ0ExTXk0Mk1qa3hJRE0zTGpjM01qSWdOakl1TURBMk9DQXpNUzQzTlRJNElEWTVMakl4TURWRE1qWXVNamMyTnlBM05TNDNOalF4SURFNExqRTVPRFVnT0RFdU1qWXlNeUEzTGpBeU1EUXpJRGcxTGpBd09EZE1NVGd1T1RNek55QTRPQzR5T0RJMlF6RTVMamd5T1RNZ09EZ3VOVEk0TnlBeU1DNHpOVFU0SURnNUxqUTFORE1nTWpBdU1UQTVOeUE1TUM0ek5EazVRekU1TGpnMk16WWdPVEV1TWpRMU5TQXhPQzQ1TXpnZ09URXVOemN5TVNBeE9DNHdOREkwSURreExqVXlOVGxNTWk0eU1URXhOQ0E0Tnk0eE56VTBRekV1TXpFMU5URWdPRFl1T1RJNU1pQXdMamM0T0RrNUlEZzJMakF3TXpjZ01TNHdNelV4TWlBNE5TNHhNRGhNTlM0ek9EVTNNU0EyT1M0eU56WTRRelV1TmpNeE9ETWdOamd1TXpneE1pQTJMalUxTnpReElEWTNMamcxTkRZZ055NDBOVE13TkNBMk9DNHhNREE0UXpndU16UTROamNnTmpndU16UTJPU0E0TGpnM05URTVJRFk1TGpJM01qVWdPQzQyTWprd05pQTNNQzR4TmpneFREVXVNemMwTnpJZ09ESXVNREV3TWtNeE5pNHpOemc0SURjNExqUXlNREVnTWpRdU1EY3pOeUEzTXk0eE5UUTNJREk1TGpFM01UY2dOamN1TURVek4wTXpOQzQyTmprMUlEWXdMalEzTkRNZ016Y3VNak15TVNBMU1pNDRNakl5SURNM0xqVTRPVEVnTkRVdU1EQXdNVU16T0M0ek1EWTNJREk1TGpJM05URWdNekF1TURrMklERXlMamt6TlRNZ01UZ3VPVGszT0NBekxqYzROekV4V2ljZ1ptbHNiRDBuZFhKc0tDTndZV2x1ZERCZmJHbHVaV0Z5WHpJM05UQmZNVEV5TVRFcEp5OCtQR1JsWm5NK1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTZHdZV2x1ZERCZmJHbHVaV0Z5WHpJM05UQmZNVEV5TVRFbklIZ3hQU2MwTmk0eU56STJKeUI1TVQwbk9EZ3VOVFEyT1NjZ2VESTlKeTB6TUM0NE1ETTFKeUI1TWowbk5EQXVNek13TWljZ1ozSmhaR2xsYm5SVmJtbDBjejBuZFhObGNsTndZV05sVDI1VmMyVW5Qanh6ZEc5d0lITjBiM0F0WTI5c2IzSTlKeU16TmpVelFUY25MejQ4YzNSdmNDQnZabVp6WlhROUp6RW5JSE4wYjNBdFkyOXNiM0k5SnlNMk9FTkVSVVFuTHo0OEwyeHBibVZoY2tkeVlXUnBaVzUwUGp3dlpHVm1jejQ4TDNOMlp6ND0pfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW1lbnQtb3B0aW9ucyB1bHstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW1lbnQtb3B0aW9ucyB1bCBsaXt3aWR0aDp2YXIoLS1pY29uLWdyaWQpO2hlaWdodDp2YXIoLS1pY29uLWdyaWQpO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTVweH0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW1lbnQtb3B0aW9ucyB1bCBsaSBpbWd7bWF4LXdpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW91dC1vcHRpb25ze3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAucGF5b3V0LW9wdGlvbnN7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzKTt3aWR0aDozOCV9fS5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAucGF5b3V0LW9wdGlvbnNfX2NvbnRlbnR7cGFkZGluZzozLjVyZW19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXlvdXQtb3B0aW9ucyAuYy1oZWFkaW5nLi1oM3tmb250LXNpemU6MzBweDttYXgtd2lkdGg6ODAlO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1pbmxpbmU6YXV0b319LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXlvdXQtb3B0aW9ucyAuYy1oZWFkaW5nX190aXRsZXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW91dC1vcHRpb25zIC5wYXlvdXQtdGV4dHt0ZXh0LWFsaWduOmNlbnRlcn19LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXlvdXQtb3B0aW9ucyAuc3R5bGl6ZWQtdGV4dHtiYWNrZ3JvdW5kOiMwYjBiMGI7Ym9yZGVyOjNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtwYWRkaW5nOjIuNHJlbSAzLjVyZW19LnBheW1lbnRfb3B0aW9uc19zZWN0aW9uIC5wYXlvdXQtb3B0aW9ucyAuc3R5bGl6ZWQtdGV4dF9fd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZX0ucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW91dC1vcHRpb25zIC5zdHlsaXplZC10ZXh0X193cmFwOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiAiO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6MzUuNDclfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW91dC1vcHRpb25zIC5zdHlsaXplZC10ZXh0X193cmFwOmJlZm9yZXtwYWRkaW5nLXRvcDoxNi40NyV9fS5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAucGF5b3V0LW9wdGlvbnMgLnN0eWxpemVkLXRleHRfX3dyYXAgaW1ney1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW47LW8tb2JqZWN0LXBvc2l0aW9uOmxlZnQgYm90dG9tO29iamVjdC1wb3NpdGlvbjpsZWZ0IGJvdHRvbTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsucGF5bWVudF9vcHRpb25zX3NlY3Rpb24gLnBheW91dC1vcHRpb25zIC5zdHlsaXplZC10ZXh0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MjBweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoyMHB4O3BhZGRpbmctbGVmdDozLjVyZW19fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5wYXltZW50X29wdGlvbnNfc2VjdGlvbiAucGF5b3V0LW9wdGlvbnMgLnN0eWxpemVkLXRleHR7dGV4dC1hbGlnbjpjZW50ZXJ9fS5zLWJsb2Nrey0tY29sdW1ucy1yYXRpbzo0OCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtnYXA6M3JlbX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucy1ibG9ja3std2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnMtYmxvY2tfX2NvbHstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO2ZsZXg6MCAwIHZhcigtLWNvbHVtbnMtcmF0aW8pO21heC13aWR0aDp2YXIoLS1jb2x1bW5zLXJhdGlvKX19LmxlYWRpbmdfY3VycmVuY3lfc2VjdGlvbntiYWNrZ3JvdW5kOiNmNGZjZmV9Lm1pc3Npb25fdmlzaW9uX3B1cnBvc2Vfc2VjdGlvbntiYWNrZ3JvdW5kOiNmNGZjZmV9Lm1pc3Npb25fdmlzaW9uX3B1cnBvc2Vfc2VjdGlvbiAuY2FyZHMtbGlzdHstLWdyaWQtaXRlbS1jb2w6MztkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCh2YXIoLS1ncmlkLWl0ZW0tY29sLDMpLG1pbm1heCgwLDFmcikpO2dhcDozMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tYm90dG9tOmF1dG87dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lm1pc3Npb25fdmlzaW9uX3B1cnBvc2Vfc2VjdGlvbiAuY2FyZHMtbGlzdHt3aWR0aDoxMDAlO21hcmdpbi1ib3R0b206M2VtO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLXNjcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLXNuYXAtdHlwZTp4IG1hbmRhdG9yeTstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwO292ZXJmbG93OmF1dG87Z2FwOjhweH19Lm1pc3Npb25fdmlzaW9uX3B1cnBvc2Vfc2VjdGlvbiAuY2FyZHMtbGlzdCAuY2FyZC1pdGVte2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7cGFkZGluZzo1cmVtIDMuNXJlbX0ubWlzc2lvbl92aXNpb25fcHVycG9zZV9zZWN0aW9uIC5jYXJkcy1saXN0IC5jYXJkLWl0ZW06bnRoLWNoaWxkKG9kZCl7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9Lm1pc3Npb25fdmlzaW9uX3B1cnBvc2Vfc2VjdGlvbiAuY2FyZHMtbGlzdCAuY2FyZC1pdGVtOm50aC1jaGlsZChvZGQpIC5jLWhlYWRpbmdfX3RpdGxle2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5taXNzaW9uX3Zpc2lvbl9wdXJwb3NlX3NlY3Rpb24gLmNhcmRzLWxpc3QgLmNhcmQtaXRlbXstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAwIGNhbGMoMTAwJSAtIDQ1cHgpO2ZsZXg6MCAwIGNhbGMoMTAwJSAtIDQ1cHgpO21heC13aWR0aDpjYWxjKDEwMCUgLSA0NXB4KTtzY3JvbGwtc25hcC1hbGlnbjpjZW50ZXJ9fS5taXNzaW9uX3Zpc2lvbl9wdXJwb3NlX3NlY3Rpb24gLmNhcmRzLWxpc3QgLmNhcmQtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MDt3aWR0aDoxMDAlO3BhZGRpbmctdG9wOjUwJTttYXJnaW4tYm90dG9tOjZyZW07bWFyZ2luLXRvcDozcmVtfS5taXNzaW9uX3Zpc2lvbl9wdXJwb3NlX3NlY3Rpb24gLmNhcmRzLWxpc3QgLmNhcmQtaWNvbiBpbWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0ubWlzc2lvbl92aXNpb25fcHVycG9zZV9zZWN0aW9uIC5jYXJkcy1saXN0Ky5jdGF7bWFyZ2luLXRvcDozLjZyZW07dGV4dC1hbGlnbjpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmluc2lnaHRzX3NlY3Rpb24gLmNvbnRhaW5lcntwYWRkaW5nLWlubGluZTowfX0uaW5zaWdodHNfc2VjdGlvbl9fY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJyZW07bWFyZ2luLWJvdHRvbToxZW19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmluc2lnaHRzX3NlY3Rpb25fX2NvbnRlbnR7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dGV4dC1hbGlnbjpjZW50ZXJ9fS5pbnNpZ2h0c19zZWN0aW9uIC5tb2JpbGUtY3Rhe3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5pbnNpZ2h0c19zZWN0aW9uIC5tb2JpbGUtY3Rhe2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmluc2lnaHRzX3NlY3Rpb24gLmRlc2t0b3AtY3Rhe2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnQtaW5zaWdodHN7LS1ncmlkLWl0ZW0tY29sOjM7bWFyZ2luLWJvdHRvbTozZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGU6YXV0by9yZXBlYXQodmFyKC0tZ3JpZC1pdGVtLWNvbCwzKSxtaW5tYXgoMCwxZnIpKTtnYXA6MjVweH0udC1pbnNpZ2h0cy5zd2lwZXItd3JhcHBlcntkaXNwbGF5OmdyaWR9fS50LWluc2lnaHRzIC5jLWJ0bl9faWNvOmJlZm9yZXt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JhY2tncm91bmQ6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3otaW5kZXg6LTF9LnQtaW5zaWdodHMgLmMtYnRuX19pY28gc3Zne2ZvbnQtc2l6ZToxMHB4fS50LWluc2lnaHRzX19wb3N0e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59QG1lZGlhKGhvdmVyOmhvdmVyKXsudC1pbnNpZ2h0c19fcG9zdDpob3ZlciBpbWd7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7dHJhbnNmb3JtOnNjYWxlKDEuMDUpfS50LWluc2lnaHRzX19wb3N0OmhvdmVyIC5wb3N0X3RpdGxlIGgze3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfS50LWluc2lnaHRzX19wb3N0OmhvdmVyIC5jLWJ0bi4tbGluayAuYy1idG5fX3R4dHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCl9LnQtaW5zaWdodHNfX3Bvc3Q6aG92ZXIgLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9LnQtaW5zaWdodHNfX3Bvc3Q6aG92ZXIgLmMtYnRuX19pY286YmVmb3Jle2JhY2tncm91bmQ6IzY4Y2RlZH0udC1pbnNpZ2h0c19fcG9zdDpob3ZlciAudC1pbnNpZ2h0c19fY3RhLi1saW5rIC5jLWJ0bl9faWNvIHN2Z3tjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7ZmlsbDp2YXIoLS1wcmltYXJ5LWNvbG9yMil9fS50LWluc2lnaHRzX19pbWd7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7d2lkdGg6MTAwJTtwYWRkaW5nLXRvcDo2MSU7bWFyZ2luLWJvdHRvbToxLjdyZW07b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyl9LnQtaW5zaWdodHNfX2ltZyBpbWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyl9LnQtaW5zaWdodHMgLmNhdGVnb3J5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTJweDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOjEuMnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojNjhjZGVkO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7cGFkZGluZzoxcmVtIDEuNXJlbTtib3JkZXItcmFkaXVzOjkwcHh9LnQtaW5zaWdodHMgLnBvc3RfdGl0bGUgaDN7Zm9udC1zaXplOjIycHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuM30udC1pbnNpZ2h0cyAucG9zdF9jdGF7bWFyZ2luLXRvcDphdXRvfS50LWluc2lnaHRzX19jdGEuLWxpbmt7LS1pY29uLXNpemU6MTdweDstLWljb24tZ2FwOjRweDstd2Via2l0LXRyYW5zaXRpb246YWxsIC41czt0cmFuc2l0aW9uOmFsbCAuNXM7bWFyZ2luLXRvcDphdXRvO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtwb3NpdGlvbjpyZWxhdGl2ZX0udC1pbnNpZ2h0c19fY3RhLi1saW5rIC5jLWJ0bl9faWNvIHN2Z3tjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0udC1pbnNpZ2h0c19fY3RhLi1saW5rIC5jLWJ0bl9fdGV4dHtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCl9Lmluc2lnaHRzX3NlY3Rpb24ubS1zbGlkZXIgW2RhdGEtc2xpZGVyLW5hdmlnYXRpb249b3V0ZXItYXJyb3dzXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5pbnNpZ2h0c19zZWN0aW9uLm0tc2xpZGVyIC5tLXNsaWRlcl9fbmF2e2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lmluc2lnaHRzLXN3aXBlcntwYWRkaW5nLWlubGluZTp2YXIoLS1wYWdlLWd1dHRlcikhaW1wb3J0YW50fX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7LS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYm9yZGVyOiMzNjUzQTc7LS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYm9yZGVyLWFjdGl2ZTojMzY1M0E3O3dpZHRoOjExcHg7aGVpZ2h0OjExcHg7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjFweCBzb2xpZCAjMzY1M2E3O29wYWNpdHk6MX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZXtiYWNrZ3JvdW5kOiMzNjUzYTc7Ym9yZGVyOjFweCBzb2xpZCAjMzY1M2E3fS5pbnNpZ2h0cy1zd2lwZXIgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpob3ZlcntiYWNrZ3JvdW5kOiMzNjUzYTc7Ym9yZGVyOjFweCBzb2xpZCAjMzY1M2E3fS5pbnNpZ2h0cy1zd2lwZXIgLm0tc2xpZGVyX19hcnJvd3M6aG92ZXJ7YmFja2dyb3VuZDojMzY1M2E3fS5pbnNpZ2h0cy1zd2lwZXIgLm0tc2xpZGVyX19hcnJvd3M6aG92ZXIgLmljb257ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLW5leHQsLmluc2lnaHRzLXN3aXBlciAuc3dpcGVyLWJ1dHRvbi1wcmV2e2JvcmRlcjpub25lO291dGxpbmU6MDt0b3A6MjclfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5pbnNpZ2h0cy1zd2lwZXIgLnN3aXBlci1idXR0b24tbmV4dCwuaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLXByZXZ7ZGlzcGxheTpub25lfX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLW5leHQgLmljb24sLmluc2lnaHRzLXN3aXBlciAuc3dpcGVyLWJ1dHRvbi1wcmV2IC5pY29ue2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7bWF4LXdpZHRoOjQ3JTttYXgtaGVpZ2h0OjQ3JX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLW5leHR7cmlnaHQ6NXB4fS5pbnNpZ2h0cy1zd2lwZXIgLnN3aXBlci1idXR0b24tbmV4dCAuaWNvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9Lmluc2lnaHRzLXN3aXBlciAuc3dpcGVyLWJ1dHRvbi1uZXh0OmFmdGVye2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5pbnNpZ2h0cy1zd2lwZXIgLnN3aXBlci1idXR0b24tcHJldntsZWZ0OjVweH0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLXByZXYgLmljb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uaW5zaWdodHMtc3dpcGVyIC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9Lmluc2lnaHRzLXN3aXBlciAubS1zbGlkZXJfX2Fycm93c3tiYWNrZ3JvdW5kOiNkN2RkZWR9Lmluc2lnaHRzLXN3aXBlciAubS1zbGlkZXJfX2Fycm93cyAuaWNvbntmaWxsOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpfS5sZWFkaW5nX2N1cnJlbmN5X2N0YV9zZWN0aW9ue292ZXJmbG93OmhpZGRlbn0ubGVhZGluZ19jdXJyZW5jeV9jdGFfc2VjdGlvbi5ndC1kZWZhdWx0e3BhZGRpbmctdG9wOmNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAqIDMpfS5sZWFkaW5nX2N1cnJlbmN5X2N0YV9zZWN0aW9uIC5iYWNrdGl0bGV7dG9wOmNhbGModmFyKC0tdGV4dC1mb250LXNpemUpICogLS4wNSl9LmxlYWRpbmdfY3VycmVuY3lfY3RhX3NlY3Rpb24gLmMtaGVhZGluZ3ttYXJnaW4tYm90dG9tOi44ZW19LmxlYWRpbmdfY3VycmVuY3lfY3RhX3NlY3Rpb24gLnRleHR7bWFyZ2luLWJvdHRvbToxLjhlbTttYXJnaW4taW5saW5lOmF1dG87bWF4LXdpZHRoOjg0NXB4fS5sZWFkaW5nX2N1cnJlbmN5X3NlY3Rpb24gLmxpc3QtaXRlbXttYXJnaW4tYm90dG9tOjJlbX0ubGVhZGluZ19jdXJyZW5jeV9zZWN0aW9uIC5jLWJ0bi4tbGluayAuYy1idG5fX2ljb3tkaXNwbGF5Om5vbmV9LmxlYWRpbmdfY3VycmVuY3lfc2VjdGlvbiAucmVhZC1tb3JlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9LmxlYWRpbmdfY3VycmVuY3lfc2VjdGlvbiAucmVhZC1tb3JlLXdyYXBwZXI6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMi40cmVtO2xlZnQ6MDtjb250ZW50OiIiO3dpZHRoOjEwMCU7aGVpZ2h0OjJyZW07YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKCNmNGZjZmUpLGNvbG9yLXN0b3AoNzcuMTElLHJnYmEoMjQ0LDI1MiwyNTQsLjUpKSx0byhyZ2JhKDI0NCwyNTIsMjU0LC45KSkpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsI2Y0ZmNmZSAwLHJnYmEoMjQ0LDI1MiwyNTQsLjUpIDc3LjExJSxyZ2JhKDI0NCwyNTIsMjU0LC45KSAxMDAlKTtwb2ludGVyLWV2ZW50czpub25lfS5sZWFkaW5nX2N1cnJlbmN5X3NlY3Rpb24gLnJlYWQtbW9yZS13cmFwcGVyLmlzLWFjdGl2ZTpiZWZvcmV7ZGlzcGxheTpub25lfS5sZWFkaW5nX2N1cnJlbmN5X3NlY3Rpb24gLnJlYWQtbW9yZS13cmFwcGVyIC5jLWJ0bl9fdHh0ey0taC1jbGFtcC1mb3JtdWxhOjEuMDR2dzstLXNtYWxsZXItdGV4dC1zaXplOjE2cHg7LS10ZXh0LXNpemU6MjBweDtmb250LXNpemU6Y2xhbXAodmFyKC0tc21hbGxlci10ZXh0LXNpemUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tdGV4dC1zaXplKSl9LmxlYWRpbmdfY3VycmVuY3lfc2VjdGlvbiAucy1ibG9jayAuaW5pdGlhbC10ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbn06cm9vdHstLWdyYWRpZW50dF9iZ19jb2xvcjojZjNmYmZlOy0tZ3JhZGllbnRfc3BvdHQxX2NvbG9yOnJnYmEoNTQsIDgzLCAxNjcsIC4yKTstLWdyYWRpZW50X3Nwb3R0MV93OjI4JTstLWdyYWRpZW50X3Nwb3R0MV9oOjI4JTstLWdyYWRpZW50X3Nwb3R0MV94OjAlOy0tZ3JhZGllbnRfc3BvdHQxX3k6MzYlOy0tZ3JhZGllbnRfc3BvdHQyX2NvbG9yOnJnYmEoNTQsIDgzLCAxNjcsIC4yKTstLWdyYWRpZW50X3Nwb3R0Ml93OjI4JTstLWdyYWRpZW50X3Nwb3R0Ml9oOjI4JTstLWdyYWRpZW50X3Nwb3R0Ml94OjEwMCU7LS1ncmFkaWVudF9zcG90dDJfeTo2NyU7LS1ncmFkaWVudF9zcG90dDNfY29sb3I6cmdiYSgxMDQsIDIwNSwgMjM3LCAuNCk7LS1ncmFkaWVudF9zcG90dDNfdzoyOCU7LS1ncmFkaWVudF9zcG90dDNfaDoyOCU7LS1ncmFkaWVudF9zcG90dDNfeDoxMDAlOy0tZ3JhZGllbnRfc3BvdHQzX3k6NDAlOy0tZ3JhZGllbnRfc3BvdHQ0X2NvbG9yOnJnYmEoMTA0LCAyMDUsIDIzNywgLjQpOy0tZ3JhZGllbnRfc3BvdHQ0X3c6MjglOy0tZ3JhZGllbnRfc3BvdHQ0X2g6MjglOy0tZ3JhZGllbnRfc3BvdHQ0X3g6MCU7LS1ncmFkaWVudF9zcG90dDRfeTo1NSV9LmRvd25sb2FkX2Fwa19zZWN0aW9uey0tYm9yZGVyLXJhZGl1czoyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JhZGllbnR0X2JnX2NvbG9yKTtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudCh2YXIoLS1ncmFkaWVudF9zcG90dDFfdykgdmFyKC0tZ3JhZGllbnRfc3BvdHQxX2gpIGF0IGxlZnQgdmFyKC0tZ3JhZGllbnRfc3BvdHQxX3gpIHRvcCB2YXIoLS1ncmFkaWVudF9zcG90dDFfeSksdmFyKC0tZ3JhZGllbnRfc3BvdHQxX2NvbG9yKSx0cmFuc3BhcmVudCkscmFkaWFsLWdyYWRpZW50KHZhcigtLWdyYWRpZW50X3Nwb3R0Ml93KSB2YXIoLS1ncmFkaWVudF9zcG90dDJfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90dDJfeCkgdG9wIHZhcigtLWdyYWRpZW50X3Nwb3R0Ml95KSx2YXIoLS1ncmFkaWVudF9zcG90dDJfY29sb3IpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdHQzX3cpIHZhcigtLWdyYWRpZW50X3Nwb3R0M19oKSBhdCBsZWZ0IHZhcigtLWdyYWRpZW50X3Nwb3R0M194KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdHQzX3kpLHZhcigtLWdyYWRpZW50X3Nwb3R0M19jb2xvciksdHJhbnNwYXJlbnQpLHJhZGlhbC1ncmFkaWVudCh2YXIoLS1ncmFkaWVudF9zcG90dDRfdykgdmFyKC0tZ3JhZGllbnRfc3BvdHQ0X2gpIGF0IGxlZnQgdmFyKC0tZ3JhZGllbnRfc3BvdHQ0X3gpIHRvcCB2YXIoLS1ncmFkaWVudF9zcG90dDRfeSksdmFyKC0tZ3JhZGllbnRfc3BvdHQ0X2NvbG9yKSx0cmFuc3BhcmVudCl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmRvd25sb2FkX2Fwa19zZWN0aW9uey0tYm9yZGVyLXJhZGl1czoxNXB4fX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LmRvd25sb2FkX2Fwa19zZWN0aW9ue3BhZGRpbmctdG9wOjEzLjh2bWlufX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLnRleHR7bWF4LXdpZHRoOjUwJTttYXJnaW4taW5saW5lOmF1dG99LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5sLWhlYWRpbmcgLmMtaGVhZGluZ19fcHJle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6MnB4fS5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC10Ym5hdl9faXRlbXstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAxIDA7ZmxleDowIDEgMDtib3JkZXItcmFkaXVzOjE1cHh9LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5sLXRibmF2X19pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnktY29sb3IyKTtjb2xvcjp2YXIoLS10Ym5hdi1jb2xvci1hY3RpdmUpfS5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC10YnBhbmVsX19pdGVtLmlzLWFjdGl2ZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246YmFzZWxpbmU7LW1zLWZsZXgtYWxpZ246YmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmU7Z2FwOjMwcHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1ib3R0b206MH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmwtdGJwYW5lbF9faXRlbS5pcy1hY3RpdmV7cGFkZGluZy1ib3R0b206M2VtOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2t7LS1zaXplLXBhdGg6MTcuNXZoO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3M7dHJhbnNpdGlvbjphbGwgLjNzO3Bvc2l0aW9uOnJlbGF0aXZlO2lzb2xhdGlvbjppc29sYXRlO292ZXJmbG93OmhpZGRlbn1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2t7d2lkdGg6MzIlfX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2suYy1ibG9jay1pbWd7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoMCAwIHZhcigtLXNpemUtcGF0aCkgMCByb3VuZCAyMHB4KTtjbGlwLXBhdGg6aW5zZXQoMCAwIHZhcigtLXNpemUtcGF0aCkgMCByb3VuZCAyMHB4KTt3aWR0aDozMiV9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1ibG9ja3tiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnktY29sb3IyKTstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O3BhZGRpbmc6My41cmVtO3dpZHRoOjEwMCV9LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5jLWJsb2NrIC5jLWhlYWRpbmcuLWgye21hcmdpbi1ib3R0b206MS41ZW19LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5jLWJsb2NrIC5jLWhlYWRpbmdfX3ByZXtjb2xvcjojNjhjZGVkO3RleHQtYWxpZ246bGVmdH0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2sgLmMtaGVhZGluZ19fdGl0bGV7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7dGV4dC1hbGlnbjpsZWZ0fS5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1ibG9jayAuYy1idG4uLXByaW1hcnl7YmFja2dyb3VuZDojNjhjZGVkO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpfS5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1ibG9jayAuYy1idG5fX2ljbyBzdmd7ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKX19LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5jLWJsb2NrOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDUwcHggNTBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDUwcHggNTBweCAjNjhjZGVkO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3M7dHJhbnNpdGlvbjphbGwgLjNzfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1ibG9jazpiZWZvcmV7cmlnaHQ6MDtib3R0b206MH19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5jLWJsb2NrOmJlZm9yZXtvcGFjaXR5OjA7d2lkdGg6MDtoZWlnaHQ6MDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEyMHB4IDEyMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMTIwcHggMTIwcHggIzY4Y2RlZDtib3R0b206MDtsZWZ0OjUwJX19QG1lZGlhKGhvdmVyOmhvdmVyKXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2s6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5LWNvbG9yMik7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCByb3VuZCAxNXB4KTtjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCByb3VuZCAxNXB4KX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2s6aG92ZXI6YmVmb3Jle2hlaWdodDoxcHg7d2lkdGg6MXB4O29wYWNpdHk6LjV9LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5jLWJsb2NrOmhvdmVyIC5jLWhlYWRpbmdfX3ByZXtjb2xvcjojNjhjZGVkfS5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1ibG9jazpob3ZlciAuYy1oZWFkaW5nX190aXRsZXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2s6aG92ZXIgLmMtYnRuLi1wcmltYXJ5e2JhY2tncm91bmQ6IzY4Y2RlZDtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmMtYmxvY2s6aG92ZXIgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMil9fS5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC1kY2JsIC5jLWJsb2NrX19jb250ZW50ey13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5sLWRjYmwgLmMtYmxvY2tfX21lZGlhey13ZWJraXQtYm94LWFsaWduOmVuZDstbXMtZmxleC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC1kY2JsIC5jLWJsb2NrX19tZWRpYXstd2Via2l0LWJveC1mbGV4OjA7LW1zLWZsZXg6MCAxIHZhcigtLWNvbHVtbnMtcmF0aW8pO2ZsZXg6MCAxIHZhcigtLWNvbHVtbnMtcmF0aW8pfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmwtZGNibCAuYy1ibG9ja19fbWVkaWF7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTtyaWdodDowO2JvdHRvbTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cGFkZGluZy1ib3R0b206NjAlO3dpZHRoOjUwJX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmRvd25sb2FkX2Fwa19zZWN0aW9uIC5sLWRjYmwgLmMtYmxvY2tfX21lZGlhIC5jLWltYWdle2hlaWdodDoxNy41dmh9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC1kY2JsIC5jLWJsb2NrX19tZWRpYSAuYy1pbWFnZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9fS5kb3dubG9hZF9hcGtfc2VjdGlvbiAubC1kY2JsIC5jLWJsb2NrX19tZWRpYSAuYy1pbWFnZV9fbWVkaWF7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uZG93bmxvYWRfYXBrX3NlY3Rpb24gLmwtZGNibCAuYy1ibG9ja19fbWVkaWEgaW1ney13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjNzO3RyYW5zaXRpb246YWxsIC4zczttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluOy1vLW9iamVjdC1wb3NpdGlvbjpib3R0b207b2JqZWN0LXBvc2l0aW9uOmJvdHRvbX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZG93bmxvYWRfYXBrX3NlY3Rpb24gLmwtZGNibCAuYy1ibG9ja19fbWVkaWEgaW1ney1vLW9iamVjdC1wb3NpdGlvbjpib3R0b20gcmlnaHQ7b2JqZWN0LXBvc2l0aW9uOmJvdHRvbSByaWdodDtwYWRkaW5nLXJpZ2h0OjFyZW19fS5kb3dubG9hZF9hcGtfc2VjdGlvbiAuYy1idG5fX2ljbyBzdmd7ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ubW9yZS1pbmZvcm1hdGlvbi1zZWN0aW9ue2JhY2tncm91bmQtY29sb3I6IzM2NTNhNztjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtwb3NpdGlvbjpyZWxhdGl2ZX0ubW9yZS1pbmZvcm1hdGlvbi1zZWN0aW9uOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDE1MHB4IDE1MHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMTUwcHggMTUwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowO3RvcDoxMCU7bGVmdDoxMCV9Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDE1MHB4IDE1MHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMTUwcHggMTUwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowO3RvcDoxMCU7cmlnaHQ6MTAlfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5tb3JlLWluZm9ybWF0aW9uLXNlY3Rpb257cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1kZWZhdWx0LXRvcC1nYXApICogMi41KX19QG1lZGlhKG1pbi13aWR0aDo3NjdweCl7Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbntwYWRkaW5nLWJsb2NrOjUuNnZofX0ubW9yZS1pbmZvcm1hdGlvbi1zZWN0aW9uIC5jLWhlYWRpbmd7bWFyZ2luLWJvdHRvbTouOWVtfS5tb3JlLWluZm9ybWF0aW9uLXNlY3Rpb24gLmMtaGVhZGluZ19fdGl0bGV7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAuYy1oZWFkaW5nX190aXRsZSBzcGFue2NvbG9yOiM2OGNkZWQ7YmFja2dyb3VuZDowIDA7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dW5zZXQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dW5zZXR9Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAuYy1oZWFkaW5nX19zdWJ7LS1oLWNsYW1wLWZvcm11bGE6MS4yNXZ3Oy0tc21hbGxlci10ZXh0LXNpemU6MThweDstLXRleHQtc2l6ZToyNHB4O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTttYXJnaW4tYm90dG9tOjFlbX0ubW9yZS1pbmZvcm1hdGlvbi1zZWN0aW9uIC50ZXh0e21hcmdpbi1ib3R0b206MS44ZW19Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAubW9yZS1pbmZvcm1hdGlvbl9fd3JhcHBlcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAubW9yZS1pbmZvcm1hdGlvbl9fd3JhcHBlcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAubW9yZS1pbmZvcm1hdGlvbl9fY29udGVudHt3aWR0aDo0NCV9fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5tb3JlLWluZm9ybWF0aW9uLXNlY3Rpb24gLm1vcmUtaW5mb3JtYXRpb25fX2ltZ3t3aWR0aDo0NCV9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5tb3JlLWluZm9ybWF0aW9uLXNlY3Rpb24gLm1vcmUtaW5mb3JtYXRpb25fX2ltZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo1MCU7Ym90dG9tOjA7cmlnaHQ6MH19Lm1vcmUtaW5mb3JtYXRpb24tc2VjdGlvbiAubW9yZS1pbmZvcm1hdGlvbl9faW1nIGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30ubC1ibG9ja3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmwtYmxvY2t7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5sLWJsb2NrX19jb2w6bnRoLW9mLXR5cGUoMSl7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbTo0cmVtfX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsubC1ibG9ja19fY29sOm50aC1vZi10eXBlKDEpe3dpZHRoOjQwJX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmwtYmxvY2tfX2NvbDpudGgtb2YtdHlwZSgyKXt3aWR0aDo1NyV9fS5hY2NvcmRpb25fc2VjdGlvbiAudGV4dHttYXJnaW4tYm90dG9tOjJlbX0ucmVhZC1tb3JlLXdyYXBwZXIgLmMtYnRuX19pY297LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuNnM7dHJhbnNpdGlvbjphbGwgLjZzfS5yZWFkLW1vcmUtd3JhcHBlci5pcy1hY3RpdmUgLnJlYWQtbW9yZS10ZXh0e29wYWNpdHk6MX0ucmVhZC1tb3JlLXdyYXBwZXIuaXMtYWN0aXZlIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0ucmVhZC1tb3JlLXdyYXBwZXIuaXMtYWN0aXZlIC5jLWJ0bjphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtOTBkZWcpfS5yZWFkLW1vcmUtd3JhcHBlciAucmVhZC1tb3JlLXRleHR7bWF4LWhlaWdodDowO29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM2cyBlYXNlLWluLW91dCxvcGFjaXR5IC41cyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM2cyBlYXNlLWluLW91dCxvcGFjaXR5IC41cyBlYXNlLWluLW91dH0ucmVhZC1tb3JlLXdyYXBwZXIgLnJlYWQtbW9yZS10b2dnbGV7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfS5yZWFkLW1vcmUtd3JhcHBlciAuYy1idG46YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtyaWdodDotMjVweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoOTBkZWcpO3dpZHRoOjE3cHg7aGVpZ2h0OjE4cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeE55Y2dhR1ZwWjJoMFBTY3hPQ2NnZG1sbGQwSnZlRDBuTUNBd0lERTNJREU0SnlCbWFXeHNQU2R1YjI1bEp6NDhZMmx5WTJ4bElHTjRQU2M0TGpVbklHTjVQU2M1SnlCeVBTYzRMalVuSUdacGJHdzlKeU16TmpVelFUY25MejQ4Y0dGMGFDQmtQU2ROTVRFdU1qRTVNU0E1TGpBd01EQTRURFl1TVRFNU1UUWdOQzQxT0RBd09FdzNMamd4T1RFMElEa3VNREF3TURoTU5pNHhNVGt4TkNBeE15NDBNakF4VERFeExqSXhPVEVnT1M0d01EQXdPRm9uSUdacGJHdzlKM2RvYVhSbEp5OCtQQzl6ZG1jKyk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyfS5vdXJfdGVhbV9zZWN0aW9ue2JhY2tncm91bmQ6I2Y0ZmNmZTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYWRpZW50dF9iZ19jb2xvcik7YmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdHQxX3cpIHZhcigtLWdyYWRpZW50X3Nwb3R0MV9oKSBhdCBsZWZ0IHZhcigtLWdyYWRpZW50X3Nwb3R0MV94KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdHQxX3kpLHZhcigtLWdyYWRpZW50X3Nwb3R0MV9jb2xvciksdHJhbnNwYXJlbnQpLHJhZGlhbC1ncmFkaWVudCh2YXIoLS1ncmFkaWVudF9zcG90dDJfdykgdmFyKC0tZ3JhZGllbnRfc3BvdHQyX2gpIGF0IGxlZnQgdmFyKC0tZ3JhZGllbnRfc3BvdHQyX3gpIHRvcCB2YXIoLS1ncmFkaWVudF9zcG90dDJfeSksdmFyKC0tZ3JhZGllbnRfc3BvdHQyX2NvbG9yKSx0cmFuc3BhcmVudCkscmFkaWFsLWdyYWRpZW50KHZhcigtLWdyYWRpZW50X3Nwb3R0M193KSB2YXIoLS1ncmFkaWVudF9zcG90dDNfaCkgYXQgbGVmdCB2YXIoLS1ncmFkaWVudF9zcG90dDNfeCkgdG9wIHZhcigtLWdyYWRpZW50X3Nwb3R0M195KSx2YXIoLS1ncmFkaWVudF9zcG90dDNfY29sb3IpLHRyYW5zcGFyZW50KSxyYWRpYWwtZ3JhZGllbnQodmFyKC0tZ3JhZGllbnRfc3BvdHQ0X3cpIHZhcigtLWdyYWRpZW50X3Nwb3R0NF9oKSBhdCBsZWZ0IHZhcigtLWdyYWRpZW50X3Nwb3R0NF94KSB0b3AgdmFyKC0tZ3JhZGllbnRfc3BvdHQ0X3kpLHZhcigtLWdyYWRpZW50X3Nwb3R0NF9jb2xvciksdHJhbnNwYXJlbnQpfS5vdXJfdGVhbV9zZWN0aW9uIC5jb250YWluZXJ7LS1jb250ZW50LXdpZHRoOnZhcigtLWRlc2t0b3Atd2lkdGgtbCl9Lm91cl90ZWFtX3NlY3Rpb24gLm1lbWJlci1waG90b3ttYXJnaW4tYm90dG9tOjEuNWVtO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsub3VyX3RlYW1fc2VjdGlvbiAubWVtYmVyLXBob3RvOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiAiO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6MTI5LjElfX0ub3VyX3RlYW1fc2VjdGlvbiAubWVtYmVyLXBob3RvIGltZ3stby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsub3VyX3RlYW1fc2VjdGlvbiAubWVtYmVyLXBob3RvIGltZ3stby1vYmplY3QtcG9zaXRpb246Y2VudGVyIGJvdHRvbTtvYmplY3QtcG9zaXRpb246Y2VudGVyIGJvdHRvbTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH19QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5vdXJfdGVhbV9zZWN0aW9uIC5tZW1iZXItcGhvdG8gaW1ne21heC13aWR0aDoxMDAlfX0ub3VyX3RlYW1fc2VjdGlvbiAubWVtYmVyLW5hbWV7LS10ZXh0LXNpemUtbW9iaWxlOjE2cHg7LS10ZXh0LXNpemU6MjBweDstLWgtY2xhbXAtZm9ybXVsYToxLjA0dnc7Zm9udC1zaXplOmNsYW1wKHZhcigtLXRleHQtc2l6ZS1tb2JpbGUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tdGV4dC1zaXplKSk7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO2ZvbnQtd2VpZ2h0OjYwMH0ub3VyX3RlYW1fc2VjdGlvbiAubWVtYmVyLXBvc2l0aW9uey0tdGV4dC1zaXplLW1vYmlsZToxNHB4Oy0tdGV4dC1zaXplOjE2cHg7LS1oLWNsYW1wLWZvcm11bGE6MC44M3Z3O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS10ZXh0LXNpemUtbW9iaWxlKSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLXRleHQtc2l6ZSkpfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsub3VyX3RlYW1fc2VjdGlvbiAubS1zbGlkZXJ7LS1zd2lwZXItb3V0ZXItZ2FwOjVweH0ub3VyX3RlYW1fc2VjdGlvbiAubS1zbGlkZXIgLnRlYW0tbWVtYmVye3BhZGRpbmctaW5saW5lOjEuNXJlbTtwYWRkaW5nLWlubGluZTo0cmVtfX0ub3VyX3RlYW1fc2VjdGlvbiAubS1zbGlkZXJfX2Fycm93czpob3ZlcntiYWNrZ3JvdW5kOiMzNjUzYTd9Lm91cl90ZWFtX3NlY3Rpb24gLm0tc2xpZGVyX19hcnJvd3M6aG92ZXIgLmljb257ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ub3VyX3RlYW1fc2VjdGlvbiAuc3dpcGVyLWJ1dHRvbi1uZXh0LC5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLXByZXZ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO3RvcDoyNyU7dG9wOjM2JX0ub3VyX3RlYW1fc2VjdGlvbiAuc3dpcGVyLWJ1dHRvbi1uZXh0IC5pY29uLC5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLXByZXYgLmljb257ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTttYXgtd2lkdGg6NDclO21heC1oZWlnaHQ6NDclfS5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLW5leHR7cmlnaHQ6NXB4fS5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLW5leHQgLmljb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLW5leHQ6YWZ0ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfS5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLXByZXZ7bGVmdDo1cHh9Lm91cl90ZWFtX3NlY3Rpb24gLnN3aXBlci1idXR0b24tcHJldiAuaWNvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5vdXJfdGVhbV9zZWN0aW9uIC5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfS5vdXJfdGVhbV9zZWN0aW9uIC5tLXNsaWRlcl9fYXJyb3dze2JhY2tncm91bmQ6I2ZmZn0ub3VyX3RlYW1fc2VjdGlvbiAubS1zbGlkZXJfX2Fycm93cyAuaWNvbntmaWxsOnZhcigtLXByaW1hcnktY29sb3IyKTtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnZpZGVvX3BsYXllcl9zZWN0aW9ue3otaW5kZXg6MTttYXJnaW4tdG9wOi0xMHB4fX0udHJ1c3RwaWxvdF9yZXZld3Nfc2VjdGlvbiAuYy1oZWFkaW5nX19wcmV7bWFyZ2luLWJvdHRvbToyZW19LmZhcS1jYXRlZ29yaWVzX19pdGVtc3stLWdyaWQtaXRlbS1jb2w6MztkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZTphdXRvL3JlcGVhdCh2YXIoLS1ncmlkLWl0ZW0tY29sLDMpLG1pbm1heCgwLDFmcikpO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtnYXA6MzBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuZmFxLWNhdGVnb3JpZXNfX2l0ZW1zey0tZ3JpZC1pdGVtLWNvbDoxO3BhZGRpbmctYm90dG9tOjNlbX19LmZhcS1jYXRlZ29yaWVzX19pdGVte2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7cGFkZGluZzo0cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tYm9yZGVyLXJhZGl1cyk7bWFyZ2luLWJvdHRvbTphdXRvfS5mYXEtY2F0ZWdvcmllc19fdGl0bGV7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOjIuNWVtO21hcmdpbi1ib3R0b206MS4yZW19LmZhcS1jYXRlZ29yaWVzX190aXRsZSBzcGFue2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uZmFxLWNhdGVnb3JpZXNfX2xpbmt7LS1pY29uLXNpemU6MTdweDtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE2cHg7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7cG9zaXRpb246cmVsYXRpdmV9LmZhcS1jYXRlZ29yaWVzX19saW5rIC5jLWJ0bl9fdHh0e3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLWljb24tc2l6ZSkgKyA1cHgpfS5mYXEtY2F0ZWdvcmllc19fbGluay5jLWJ0bi4tbGluayAuYy1idG5fX2ljb3ttYXJnaW4tcmlnaHQ6NXB4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9LmZhcS1jYXRlZ29yaWVzX19saW5rLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvIHN2Z3tmaWxsOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5mYXEtY2F0ZWdvcmllc19fbGluazpob3Zlci5jLWJ0bi4tbGluayAuYy1idG5fX2ljb3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDEwMCUgLSB2YXIoLS1pY29uLXNpemUpKSl9LmZhcS1jYXRlZ29yaWVzX19saW5rOmhvdmVyLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvOmJlZm9yZXtiYWNrZ3JvdW5kOiM2OGNkZWR9LmZhcS1jYXRlZ29yaWVzX19saW5rOmhvdmVyLmMtYnRuLi1saW5rIC5jLWJ0bl9fdHh0e3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1pY29uLXNpemUpICsgMTBweCk7cGFkZGluZy1sZWZ0OjB9LmZhcS1jYXRlZ29yaWVzIC5jYXRlZ29yaWVzLWl0ZW17cGFkZGluZzoycmVtIDB9LmZhcS1jYXRlZ29yaWVzIC5jYXRlZ29yaWVzLWl0ZW06bm90KDpsYXN0LW9mLXR5cGUpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMzcsNDAsNDksLjE1KX0uZmFxLWNhdGVnb3JpZXMgLmNhdGVnb3JpZXMtaXRlbSAuYy1idG5fX2ljbzpiZWZvcmV7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnktY29sb3IyKTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt6LWluZGV4Oi0xfS5mYXEtY2F0ZWdvcmllcyAuY2F0ZWdvcmllcy1pdGVtIC5jLWJ0bl9faWNvIHN2Z3stLWljb24tc2l6ZToxN3B4O2ZvbnQtc2l6ZToxMHB4O2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmZhcS1jb250ZW50e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5mYXEtY29udGVudHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn19LmZhcS1jb250ZW50X19sZWZ0e21hcmdpbi1yaWdodDozcmVtfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuZmFxLWNvbnRlbnRfX2xlZnR7bWluLXdpZHRoOjM1LjZyZW19fS5mYXEtY29udGVudF9fbGluay1iYWNrLmMtYnRuLi1saW5rey0taWNvbi1zaXplOjE3cHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS4xO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7bWFyZ2luLWJvdHRvbToxLjdyZW19LmZhcS1jb250ZW50X19saW5rLWJhY2suYy1idG4uLWxpbmsgLmMtYnRuX190ZXh0e3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLWljb24tc2l6ZSkgKyA1cHgpfS5mYXEtY29udGVudF9fbGluay1iYWNrLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNve21hcmdpbi1yaWdodDo1cHg7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9LmZhcS1jb250ZW50X19saW5rLWJhY2suYy1idG4uLWxpbmsgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Zm9udC1zaXplOjEwcHh9LmZhcS1jb250ZW50X19saW5rLWJhY2suYy1idG4uLWxpbmsgLmMtYnRuX19pY286YmVmb3Jle3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5LWNvbG9yMik7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7ei1pbmRleDotMX0uZmFxLWNvbnRlbnRfX2xpbmstYmFjay5jLWJ0bi4tbGluazpob3ZlciAuYy1idG5fX2ljb3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDEwMCUgLSB2YXIoLS1pY29uLXNpemUpKSl9LmZhcS1jb250ZW50X19saW5rLWJhY2suYy1idG4uLWxpbms6aG92ZXIgLmMtYnRuX19pY286YmVmb3Jle2JhY2tncm91bmQ6IzY4Y2RlZH0uZmFxLWNvbnRlbnRfX2xpbmstYmFjay5jLWJ0bi4tbGluazpob3ZlciAuYy1idG5fX3RleHR7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLWljb24tc2l6ZSkgKyAxMHB4KTtwYWRkaW5nLWxlZnQ6MH0uZmFxLWNvbnRlbnRfX2FzaWRle2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKX0uZmFxLWNvbnRlbnQgLnBhcmVudC1jYXRlZ29yaWVzLWl0ZW17cGFkZGluZzoycmVtIDIuNXJlbX0uZmFxLWNvbnRlbnQgLnBhcmVudC1jYXRlZ29yaWVzLWl0ZW0gc3Bhbi5udW1iZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO21hcmdpbi1yaWdodDo1cHh9LmZhcS1jb250ZW50IC5wYXJlbnQtY2F0ZWdvcmllcy1pdGVtOm5vdCg6bGFzdC1vZi10eXBlKXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDM3LDQwLDQ5LC4xNSl9LmZhcS1jb250ZW50IC5wYXJlbnQtY2F0ZWdvcmllcy1pdGVtX190aXRsZXtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MS41cmVtIDA7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246OTklIGNlbnRlcjtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3lPQ2NnYUdWcFoyaDBQU2N5TnljZ2RtbGxkMEp2ZUQwbk1DQXdJREk0SURJM0p5Qm1hV3hzUFNkdWIyNWxKejQ4WTJseVkyeGxJRzl3WVdOcGRIazlKekF1TWljZ1kzZzlKekUwSnlCamVUMG5NVE11TlNjZ2NqMG5NVE11TlNjZ1ptbHNiRDBuSXpZNFEwUkZSQ2N2UGp4d1lYUm9JR1E5SjAwNUxqVWdNVEZNTVRRdU5TQXhOa3d4T1M0MUlERXhKeUJ6ZEhKdmEyVTlKeU16TmpVelFUY25JSE4wY205clpTMTNhV1IwYUQwbk1pY3ZQand2YzNablBnPT0pfS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1pdGVte2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7bWFyZ2luLWJvdHRvbTozcmVtOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1pdGVtIC5jdXJyZW50LWNoaWxkLWZhcS1jYXRlZ29yeS1uYW1le3BhZGRpbmc6MnJlbSAwO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yMik7Zm9udC13ZWlnaHQ6NjAwO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZhcS1jb250ZW50IC5jaGlsZC1jYXRlZ29yaWVzLWl0ZW0gLmN1cnJlbnQtY2hpbGQtZmFxLWNhdGVnb3J5LW5hbWUgLmMtYnRuX19pY297bWFyZ2luLWxlZnQ6NXB4fS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1pdGVtIC5jdXJyZW50LWNoaWxkLWZhcS1jYXRlZ29yeS1uYW1lIC5jLWJ0bl9faWNvIHN2Z3tmaWxsOnZhcigtLXByaW1hcnktY29sb3IyKTtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LmZhcS1jb250ZW50IC5jaGlsZC1jYXRlZ29yaWVzLWl0ZW0gLmMtYnRuX19pY297d2lkdGg6MTdweDttYXJnaW4tcmlnaHQ6NXB4fS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1pdGVtIC5jLWJ0bl9faWNvIHN2Z3tmaWxsOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5mYXEtY29udGVudCAuY2F0ZWdvcmllcy1saXN0X19pdGVtOm5vdCg6bGFzdC1vZi10eXBlKXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDM3LDQwLDQ5LC4xNSl9LmZhcS1jb250ZW50IC5jYXRlZ29yaWVzLWxpc3RfX2xpbmt7LS1pY29uLXNpemU6MTdweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjE7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtwYWRkaW5nOjJyZW0gMH0uZmFxLWNvbnRlbnQgLmNhdGVnb3JpZXMtbGlzdF9fbGluayAuYy1idG5fX2ljb3ttYXJnaW4tcmlnaHQ6NXB4fS5mYXEtY29udGVudCAuY2F0ZWdvcmllcy1saXN0X19saW5rIC5jLWJ0bl9faWNvOmJlZm9yZXt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JhY2tncm91bmQ6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3otaW5kZXg6LTF9LmZhcS1jb250ZW50IC5jYXRlZ29yaWVzLWxpc3RfX2xpbmsgLmMtYnRuX190eHR7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCl9LmZhcS1jb250ZW50IC5jYXRlZ29yaWVzLWxpc3RfX2xpbmsuYy1idG4uLWxpbmsgLmMtYnRuX19pY297bWFyZ2luLXJpZ2h0OjVweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS5mYXEtY29udGVudCAuY2F0ZWdvcmllcy1saXN0X19saW5rLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvIHN2Z3tmaWxsOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2ZvbnQtc2l6ZToxMHB4fS5mYXEtY29udGVudCAuY2F0ZWdvcmllcy1saXN0X19saW5rOmhvdmVyLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKX0uZmFxLWNvbnRlbnQgLmNhdGVnb3JpZXMtbGlzdF9fbGluazpob3Zlci5jLWJ0bi4tbGluayAuYy1idG5fX2ljbzpiZWZvcmV7YmFja2dyb3VuZDojNjhjZGVkfS5mYXEtY29udGVudCAuY2F0ZWdvcmllcy1saXN0X19saW5rOmhvdmVyLmMtYnRuLi1saW5rIC5jLWJ0bl9fdHh0e3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1pY29uLXNpemUpICsgMTBweCk7cGFkZGluZy1sZWZ0OjB9LmZhcS1jb250ZW50IC5jaGlsZC1jYXRlZ29yaWVzLWxpc3QgbGk6bm90KDpsYXN0LW9mLXR5cGUpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMzcsNDAsNDksLjE1KX0uZmFxLWNvbnRlbnQgLmNoaWxkLWNhdGVnb3JpZXMtbGlzdCBsaSBhe2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuMTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpO3BhZGRpbmc6MnJlbSAwfS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1saXN0IGxpIGEgLmMtYnRuX19pY297d2lkdGg6MTdweDttYXJnaW4tcmlnaHQ6NXB4fS5mYXEtY29udGVudCAuY2hpbGQtY2F0ZWdvcmllcy1saXN0IGxpIGEgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmZhcS1jb250ZW50X19tYWluIC5ibG9nLWJyZWFkY3J1bWJ7bWFyZ2luLWJvdHRvbToxLjJyZW19LmZhcS1jb250ZW50X19tYWluIC5ibG9nLWJyZWFkY3J1bWJfX2lubmVye3BhZGRpbmctbGVmdDowfS5mYXEtY29udGVudF9fbWFpbiAuYmxvZy1icmVhZGNydW1iX19pbm5lciBzcGFue3BhZGRpbmctcmlnaHQ6NXB4fS5mYXEtY29udGVudF9fbWFpbiAuYmxvZy1icmVhZGNydW1iX19pbm5lciBzcGFuOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7cGFkZGluZy1sZWZ0OjEwcHh9LmZhcS1jb250ZW50X19tYWluIC5ibG9nLWJyZWFkY3J1bWIgLmFyY2hpdmUucG9zdC1mYXEtYXJjaGl2ZSwuZmFxLWNvbnRlbnRfX21haW4gLmJsb2ctYnJlYWRjcnVtYiAuaG9tZSwuZmFxLWNvbnRlbnRfX21haW4gLmJsb2ctYnJlYWRjcnVtYiAudGF4b25vbXkuZmFxX2NhdGVnb3J5e2ZvbnQtc2l6ZToxLjRyZW07Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMil9LmZhcS1jb250ZW50X19tYWluIC5ibG9nLWJyZWFkY3J1bWIgLmFyY2hpdmUuZmFxX2NhdGVnb3J5LmN1cnJlbnQtaXRlbXtmb250LXNpemU6MS40cmVtO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtmb250LXdlaWdodDo2MDB9LmZhcS1jb250ZW50IC5mYXEtYXJ0aWNsZXN7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzozLjVyZW19LmZhcS1jb250ZW50IC5mYXEtYXJ0aWNsZXMgYXtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9QG1lZGlhKGhvdmVyOmhvdmVyKXsuZmFxLWNvbnRlbnQgLmZhcS1hcnRpY2xlcyAuYy1idG4uLWludmVydGVkOmhvdmVye2JhY2tncm91bmQ6I2ZmNzgyZDtjb2xvcjojMjUyODMxfX0ucGFyZW50LWNhdGVnb3JpZXMtaXRlbSAuc3VibWVudXtkaXNwbGF5Om5vbmV9LmZhcS1hcnRpY2xlcyBhcnRpY2xle21hcmdpbi1ib3R0b206M2VtfS5mYXEtYXJ0aWNsZXMgYXJ0aWNsZSAuYy1idG4uLWludmVydGVke2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5jLXZpZGVve21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9LmMtdmlkZW9fX3dyYXB7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uYy12aWRlb19fd3JhcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czpub25lfS5jLXZpZGVvX193cmFwLmlzLXZpZGVvLXBsYXlpbmd7YmFja2dyb3VuZDojMDAwO3otaW5kZXg6MTB9LmMtdmlkZW9fX3dyYXAuaXMtdmlkZW8tcGxheWluZzpiZWZvcmV7ZGlzcGxheTpub25lfS5jLXZpZGVvX193cmFwLmlzLXZpZGVvLXBsYXlpbmcrLm0tc2xpZGVfX2NvbnRhaW5lcntvcGFjaXR5OjB9LmMtdmlkZW9fX2J0bntwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7ei1pbmRleDoxMH0uYy12aWRlb19fYnRuOmFjdGl2ZSwuYy12aWRlb19fYnRuOmZvY3Vze291dGxpbmU6MH0uYy12aWRlb19fY29udHJvbHN7LS1wbGF5LWJ0bi1zaXplOjEwNHB4fS5jLXZpZGVvX19jb250cm9scyAuYnRuLXBsYXl7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSw1MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLDUwJSk7cmlnaHQ6NTAlO2JvdHRvbTo1MCV9LmMtdmlkZW9fX2NvbnRyb2xzIC5idG4tcGxheS5pcy1wbGF5aW5ney0tcGxheS1idG4tc2l6ZTo1MHB4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTtyaWdodDoxMDBweDtib3R0b206MjBweDttaXgtYmxlbmQtbW9kZTpkaWZmZXJlbmNlfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jLXZpZGVvX19jb250cm9scyAuYnRuLXBsYXkuaXMtcGxheWluZ3tyaWdodDowO2JvdHRvbTowfX0uYy12aWRlb19fY29udHJvbHMgLmJ0bi1tdXRle3JpZ2h0OjIwcHg7Ym90dG9tOjIwcHg7bWl4LWJsZW5kLW1vZGU6ZGlmZmVyZW5jZX0uYy12aWRlb19fY29udHJvbHMgLmJ0bi1wbGF5LC5jLXZpZGVvX19jb250cm9scyAuYnRuLXJlcGxheXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDp2YXIoLS1wbGF5LWJ0bi1zaXplKTt3aWR0aDp2YXIoLS1wbGF5LWJ0bi1zaXplKTtib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1pbmRlbnQ6LTEwMHZ3O2N1cnNvcjpwb2ludGVyfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5jLXZpZGVvX19jb250cm9scyAuYnRuLXBsYXksLmMtdmlkZW9fX2NvbnRyb2xzIC5idG4tcmVwbGF5ey0tcGxheS1idG4tc2l6ZTo1MHB4fX0uYy12aWRlb19fY29udHJvbHMgLmJ0bi1tdXRle2hlaWdodDo1MHB4O3dpZHRoOjUwcHg7bWFyZ2luLWxlZnQ6NTBweH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuYy12aWRlb19fY29udHJvbHMgLmJ0bi1tdXRle21hcmdpbi1sZWZ0OjEwcHh9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuYy12aWRlb19fY29udHJvbHMgLmJ0bi1tdXRle2Rpc3BsYXk6bm9uZX19LnZpZGVvX3BsYXllcl9zZWN0aW9uIC5jLXZpZGVvX193cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206NTYuMjUlO2hlaWdodDowfS52aWRlb19wbGF5ZXJfc2VjdGlvbiAuYy12aWRlb19fd3JhcCBpZnJhbWUsLnZpZGVvX3BsYXllcl9zZWN0aW9uIC5jLXZpZGVvX193cmFwIHZpZGVve2JvcmRlci1yYWRpdXM6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmMtY29udHJvbHN7LS1idG4tdmlkZW8tc2l6ZTo4MHB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmMtY29udHJvbHN7LS1idG4tdmlkZW8tc2l6ZTo1MHB4fX0uYy1jb250cm9sc19fbGlua3stLWJ0bi12aWRlby1zaXplOjMwcHg7Z2FwOjEwcHh9LmMtY29udHJvbHNfX2xpbmsgLmMtY29udHJvbHNfX3BsYXl7bWFyZ2luOjB9LmMtY29udHJvbHNfX29wdGlvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5jLWNvbnRyb2xzX19sYWJlbHtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjEuNX0uYy1jb250cm9sc19fcGxheXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDp2YXIoLS1idG4tdmlkZW8tc2l6ZSk7d2lkdGg6dmFyKC0tYnRuLXZpZGVvLXNpemUpO2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LWluZGVudDotMTAwdnc7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTttYXJnaW4tYm90dG9tOjIwcHh9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmMtY29udHJvbHNfX3BsYXl7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweDttYXJnaW4tYm90dG9tOjEycHh9fS5jLWNvbnRyb2xzX19wbGF5LC5jLXZpZGVvX19jb250cm9scyAuYnRuLXBsYXksLmMtdmlkZW9fX2NvbnRyb2xzIC5idG4tcmVwbGF5LC5pY29uLXBsYXktZGF0YXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMG5NVEEwSnlCb1pXbG5hSFE5SnpFd05DY2dkbWxsZDBKdmVEMG5NQ0F3SURFd05DQXhNRFFuSUdacGJHdzlKMjV2Ym1VbklIaHRiRzV6UFNkb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnljK1BIQmhkR2dnWm1sc2JDMXlkV3hsUFNkbGRtVnViMlJrSnlCamJHbHdMWEoxYkdVOUoyVjJaVzV2WkdRbklHUTlKMDAwTVM0MklEYzFMalJNTnpJdU9DQTFNaUEwTVM0MklESTRMaloyTkRZdU9IcE5OVElnTUVNeU15NDBJREFnTUNBeU15NDBJREFnTlRKek1qTXVOQ0ExTWlBMU1pQTFNaUExTWkweU15NDBJRFV5TFRVeVV6Z3dMallnTUNBMU1pQXdlbTB3SURrekxqWmpMVEl5TGpnNElEQXROREV1TmkweE9DNDNNaTAwTVM0MkxUUXhMallnTUMweU1pNDRPQ0F4T0M0M01pMDBNUzQySURReExqWXROREV1TmlBeU1pNDRPQ0F3SURReExqWWdNVGd1TnpJZ05ERXVOaUEwTVM0MklEQWdNakl1T0RndE1UZ3VOeklnTkRFdU5pMDBNUzQySURReExqWjZKeUJtYVd4c1BTY2pabVptSnk4K1BDOXpkbWMrKX0uYy12aWRlb19fY29udHJvbHMgLmJ0bi1wbGF5LmlzLXBsYXlpbmcsLmljb24tcGF1c2UtZGF0YXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSFpwWlhkQ2IzZzlKekFnTUNBek5pQXpOaWMrUEhCaGRHZ2dabWxzYkQwbkkyWm1abVptWmljZ1pEMG5UVEV5SURJMmFEUXVNek5XTVRCSU1USjZiVGd1TmpZZ01FZ3lOVll4TUdndE5DNHpOSG9uTHo0OEwzTjJaejQ9KX0uYy12aWRlb19fY29udHJvbHMgLmJ0bi1tdXRlLC5pY29uLW11dGUtZGF0YXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU2N4TGpFbklIaHRiRzV6UFNkb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnljZ2VEMG5NQ2NnZVQwbk1DY2dkbWxsZDBKdmVEMG5NQ0F3SURNM0xqWWdOREV1T1NjZ2VHMXNPbk53WVdObFBTZHdjbVZ6WlhKMlpTYytQSE4wZVd4bFBpNXpkREI3Wm1sc2JEcHViMjVsTzNOMGNtOXJaVG9qWm1abU8zTjBjbTlyWlMxdGFYUmxjbXhwYldsME9qRXdmVHd2YzNSNWJHVStQSEJoZEdnZ1kyeGhjM005SjNOME1DY2daRDBuVFRJeExqUWdNekV1T0ZZME1VdzNMalVnTXpFdU5rZ3VOSFl0TWpGb05pNDRUREl4TGpRZ01YWXpNQzQ0VFRJM0xqWWdNVEF1T0dNeUxqVWdNaTQySURRdU1TQTJMaklnTkM0eElERXdMakVnTUNBMExURXVOaUEzTGpZdE5DNHlJREV3TGpNbkx6NDhjR0YwYUNCamJHRnpjejBuYzNRd0p5QmtQU2ROTXpFdU15QTNMakZqTXk0M0lETXVOU0ExTGprZ09DNDBJRFV1T1NBeE15NDVjeTB5TGpNZ01UQXVOUzAySURFMEp5OCtQQzl6ZG1jKyl9LmMtdmlkZW9fX2NvbnRyb2xzIC5idG4tbXV0ZS5pcy1tdXRlZCwuaWNvbi1tdXRlZC1kYXRhe2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0ExTUM0eE15QTBPUzQzTlNJK1BHUmxabk0rUEhOMGVXeGxQaTVqYkhNdE1YdG1hV3hzT201dmJtVTdjM1J5YjJ0bE9pTm1abVk3YzNSeWIydGxMVzFwZEdWeWJHbHRhWFE2TVRBN2MzUnliMnRsTFhkcFpIUm9PakV1TWpsd2VIMDhMM04wZVd4bFBqd3ZaR1ZtY3o0OGNHRjBhQ0JqYkdGemN6MGlZMnh6TFRFaUlHUTlJazAwT1M0d015QTBPVXd4TGpBeExqazVUVEV5TGpjeUlERXlMalE1VmpNM0xqVm9PQzQxTTJ3eE5pNDBOeUF4TVM0eE1WWXpOeTQyT1UweU1TNDBOU0F4TWk0eFRETTNMamN5TGprNWRqSTRMak0zSWk4K1BDOXpkbWMrKX0uc29jaWFsLWxpc3R7LS1zb2NpYWwtaWNvbi1zaXplLW1vYmlsZTo3NXB4Oy0tc29jaWFsLWljb24tc2l6ZToxMzBweDstLWgtY2xhbXAtZm9ybXVsYTo2Ljc3dnc7LS1zb2NpYWwtaWNvbi1ncmlkOmNsYW1wKHZhcigtLXNvY2lhbC1pY29uLXNpemUtbW9iaWxlKSwgdmFyKC0taC1jbGFtcC1mb3JtdWxhKSwgdmFyKC0tc29jaWFsLWljb24tc2l6ZSkpO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LHZhcigtLXNvY2lhbC1pY29uLXNpemUpKTtncmlkLWF1dG8tZmxvdzpjb2x1bW59QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5zb2NpYWwtbGlzdHstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MzBweH19LnNvY2lhbC1saXN0X19pdGVtey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5zb2NpYWwtbGlzdF9faXRlbSAuYy1idG5fX2ljb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uc29jaWFsLWxpc3RfX2l0ZW0gLmMtYnRuX19pY28gc3Zne21heC1oZWlnaHQ6NTAlO2NvbG9yOiM2OGNkZWR9LnNvY2lhbC1saXN0X19saW5re2JvcmRlci1yYWRpdXM6dmFyKC0tc29jaWFsLWljb24tcmFkaXVzKTtjb2xvcjp2YXIoLS1zb2NpYWwtaWNvbi1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zb2NpYWwtaWNvbi1iZyk7d2lkdGg6Y2xhbXAodmFyKC0tc29jaWFsLWljb24tc2l6ZS1tb2JpbGUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tc29jaWFsLWljb24tc2l6ZSkpO2hlaWdodDpjbGFtcCh2YXIoLS1zb2NpYWwtaWNvbi1zaXplLW1vYmlsZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1zb2NpYWwtaWNvbi1zaXplKSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zczt0cmFuc2l0aW9uOmFsbCAuM3M7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoMCByb3VuZCB2YXIoLS1zb2NpYWwtaWNvbi1yYWRpdXMpKTtjbGlwLXBhdGg6aW5zZXQoMCByb3VuZCB2YXIoLS1zb2NpYWwtaWNvbi1yYWRpdXMpKX1AbWVkaWEoaG92ZXI6aG92ZXIpey5zb2NpYWwtbGlzdF9fbGluazpob3Zlcntjb2xvcjp2YXIoLS1zb2NpYWwtaWNvbi1jb2xvci1ob3Zlcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zb2NpYWwtaWNvbi1iZy1ob3Zlcik7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoMXB4IHJvdW5kIHZhcigtLXNvY2lhbC1pY29uLXJhZGl1cykpO2NsaXAtcGF0aDppbnNldCgxcHggcm91bmQgdmFyKC0tc29jaWFsLWljb24tcmFkaXVzKSl9LnNvY2lhbC1saXN0X19saW5rOmhvdmVyIC5jLWJ0bl9faWNvIHN2Z3tjb2xvcjp2YXIoLS1zb2NpYWwtaWNvbi1jb2xvci1ob3Zlcil9LnNvY2lhbC1saXN0X19saW5rOmhvdmVyW2hyZWYqPWluc3RhZ3JhbV17YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGZhcnRoZXN0LWNvcm5lciBhdCAzNSUgOTAlLCNmZWM1NjQsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGZhcnRoZXN0LWNvcm5lciBhdCAwIDE0MCUsI2ZlYzU2NCx0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCAwIC0yNSUsIzUyNThjZix0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCAyMCUgLTUwJSwjNTI1OGNmLHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgZmFydGhlc3QtY29ybmVyIGF0IDEwMCUgMCwjODkzZGMyLHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgZmFydGhlc3QtY29ybmVyIGF0IDYwJSAtMjAlLCM4OTNkYzIsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMTAwJSAxMDAlLCNkOTMxN2EsdHJhbnNwYXJlbnQpLC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oIzY1NTljYSksY29sb3Itc3RvcCgzMCUsI2JjMzE4ZiksY29sb3Itc3RvcCg1MCUsI2UzM2Y1ZiksY29sb3Itc3RvcCg3MCUsI2Y3NzYzOCksdG8oI2ZlYzY2ZCkpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMzUlIDkwJSwjZmVjNTY0LHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGNpcmNsZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMCAxNDAlLCNmZWM1NjQsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMCAtMjUlLCM1MjU4Y2YsdHJhbnNwYXJlbnQgNTAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBmYXJ0aGVzdC1jb3JuZXIgYXQgMjAlIC01MCUsIzUyNThjZix0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCAxMDAlIDAsIzg5M2RjMix0cmFuc3BhcmVudCA1MCUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGZhcnRoZXN0LWNvcm5lciBhdCA2MCUgLTIwJSwjODkzZGMyLHRyYW5zcGFyZW50IDUwJSkscmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgZmFydGhlc3QtY29ybmVyIGF0IDEwMCUgMTAwJSwjZDkzMTdhLHRyYW5zcGFyZW50KSxsaW5lYXItZ3JhZGllbnQoIzY1NTljYSwjYmMzMThmIDMwJSwjZTMzZjVmIDUwJSwjZjc3NjM4IDcwJSwjZmVjNjZkIDEwMCUpfS5zb2NpYWwtbGlzdF9fbGluazpob3ZlcltocmVmKj15b3V0dWJlXXtiYWNrZ3JvdW5kOiNlZDFkMjR9LnNvY2lhbC1saXN0X19saW5rOmhvdmVyW2hyZWYqPXR3aXR0ZXJde2JhY2tncm91bmQ6IzFkOWJmMH0uc29jaWFsLWxpc3RfX2xpbms6aG92ZXJbaHJlZio9ZmFjZWJvb2tde2JhY2tncm91bmQ6IzE4NzdmMn0uc29jaWFsLWxpc3RfX2xpbms6aG92ZXJbaHJlZio9dGlrdG9rXXtiYWNrZ3JvdW5kOiNmZTJkNDI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCNmZTJkNDIsIzI1ZjRlZSl9LnNvY2lhbC1saXN0X19saW5rOmhvdmVyW2hyZWYqPSJ0Lm1lIl17YmFja2dyb3VuZDojMjhhN2U3fS5zb2NpYWwtbGlzdF9fbGluazpob3ZlcltocmVmKj1kaXNjb3JkXXtiYWNrZ3JvdW5kOiM1ODY1ZjJ9fS5zb2NpYWwtbGlzdF9faWNvbntwYWRkaW5nOjVweDttYXgtd2lkdGg6ODAlO21heC1oZWlnaHQ6ODAlO21hcmdpbjphdXRvfQ=="}},"time_used":131,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":131,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-foundation.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.841Z","timestamp":1785145403841,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-foundation.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-b039\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":45113,"size_decoded":6466,"mime_type":"text/css","magic":"ASCII text, with very long lines (45113), with no line terminators","md5":"f5089bf95f4d6a989bc96a7c8baee61c","sha1":"1e23964847411a072ba58eb1deff8498892e8343","sha256":"810d68887eaeb54e5280c807fcdab50274671978615ae1b521b3a6943d44966c","sha512":"2cc7f669d9970e6341c0bc72e3898dd177f168bb8f4c2c86a0e21c6e1d7ba87b7845fd0cd92c767ea5ac1213bba38da9f2139fd51e75bb4129afc99634fcae50","ssdeep":"768:YI/l/aEbaVnt0+2H1vc31d6f+WbdbTX/dIBCJ2A568M7JqLGUzi40KEVDjUWYh2P:1PwW8fCrfWYvKzjD","tlshash":"fa1313855670139d607f462205eee16127306272df09aff8d74afafb818d4712ba7b8c","first_seen":"2023-04-05T21:18:01Z","last_seen":"2026-08-11T19:51:03.070157Z","times_seen":441,"resource_available":false,"data":"Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uey0tZ2Zvcm0tdGhlbWUtZm9ybS1yb3ctZ2FwOjQwcHg7LS1nZm9ybS10aGVtZS1mb3JtLWNvbC1nYXA6MTZweDstLWdmb3JtLXRoZW1lLWZpZWxkLXJvdy1nYXA6MTJweDstLWdmb3JtLXRoZW1lLWZpZWxkLWNvbC1nYXA6MTJweDstLWdmb3JtLXRoZW1lLWxhYmVsLWhvcml6b250YWwtbGF5b3V0LXdpZHRoOjMwJTstLWdmb3JtLXRoZW1lLWxhYmVsLXJlcXVpcmVkLWdhcDo2cHg7LS1nZm9ybS10aGVtZS1mb3JtLWZvb3Rlci1tYXJnaW4tYmxvY2stc3RhcnQ6MjRweDstLWdmb3JtLXRoZW1lLWZvcm0tZm9vdGVyLWdhcDo4cHg7LS1nZm9ybS10aGVtZS1maWVsZC1kYXRlLWlubGluZS1zaXplOjE2OHB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtdGltZS1pbmxpbmUtc2l6ZToxMTBweDstLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9ucy1nYXA6OHB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtbGlzdC1idXR0b25zLWlubGluZS1zaXplOmNhbGMoMzJweCArIHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9ucy1nYXApICsgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY29sLWdhcCkpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1yb3ctZ2FwOjhweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtY29sLWdhcDoyNHB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAqLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiA6YWZ0ZXIsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIDpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiBmaWVsZHNldCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gbGVnZW5ke2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIGZpZWxkc2V0e2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIGxlZ2VuZHttYXJnaW4taW5saW5lOjB9Lmdmb3JtX2FuY2hvci5mb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uZ2Zvcm1fYW5jaG9yOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuaGlkZGVuX2xhYmVsIC5nZmllbGRfbGFiZWwsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5oaWRkZW5fc3ViX2xhYmVsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuc2NyZWVuLXJlYWRlci10ZXh0e2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO3dvcmQtd3JhcDpub3JtYWwhaW1wb3J0YW50O2JvcmRlcjowOy13ZWJraXQtY2xpcC1wYXRoOmluc2V0KDUwJSk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gYnV0dG9uLnNjcmVlbi1yZWFkZXItdGV4dDpmb2N1c3tjbGlwOmF1dG87Ym9yZGVyOjA7LXdlYmtpdC1jbGlwLXBhdGg6bm9uZTtjbGlwLXBhdGg6bm9uZTtoZWlnaHQ6YXV0bzttYXJnaW46MDtwb3NpdGlvbjpzdGF0aWMhaW1wb3J0YW50O3dpZHRoOmF1dG99Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybS11bC1yZXNldHtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybS10ZXh0LWlucHV0LXJlc2V0e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtjb2xvcjpjdXJyZW50Q29sb3I7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtvdXRsaW5lOm5vbmU7cGFkZGluZzppbmhlcml0O3dpZHRoOmF1dG99QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2ZpZWxkIC5nZmllbGRfY3JlZGl0Y2FyZF93YXJuaW5nX21lc3NhZ2UsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGQgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmxlZnRfbGFiZWwgLmdmaWVsZD4uZ2lucHV0X2NvbnRhaW5lciwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQgLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmdfbWVzc2FnZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQ+LmdpbnB1dF9jb250YWluZXJ7ZmxvYXQ6cmlnaHR9LnJ0bCAuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmxlZnRfbGFiZWwgLmdmaWVsZCAuZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlLC5ydGwgLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGQgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aCwucnRsIC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2ZpZWxkPi5naW5wdXRfY29udGFpbmVyLC5ydGwgLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5yaWdodF9sYWJlbCAuZ2ZpZWxkIC5nZmllbGRfY3JlZGl0Y2FyZF93YXJuaW5nX21lc3NhZ2UsLnJ0bCAuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aCwucnRsIC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAucmlnaHRfbGFiZWwgLmdmaWVsZD4uZ2lucHV0X2NvbnRhaW5lcntmbG9hdDpsZWZ0fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2ZpZWxkOndoZXJlKDpub3QoLmdmaWVsZC0tdHlwZS1odG1sKTpub3QoLmdmaWVsZC0tdHlwZS1zZWN0aW9uKSk+ZGl2OndoZXJlKDpub3QoLnVpLXJlc2l6YWJsZS1oYW5kbGUpOm5vdCguZ2ZpZWxkLWFkbWluLWljb25zKTpub3QoLmdmb3JtLWdyaWQtcm93KSksLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGQ+LmdpbnB1dF9jb250YWluZXI6d2hlcmUoOm5vdCgudWktcmVzaXphYmxlLWhhbmRsZSk6bm90KC5nZmllbGQtYWRtaW4taWNvbnMpOm5vdCguZ2Zvcm0tZ3JpZC1yb3cpKSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQ6d2hlcmUoOm5vdCguZ2ZpZWxkLS10eXBlLWh0bWwpOm5vdCguZ2ZpZWxkLS10eXBlLXNlY3Rpb24pKT5kaXY6d2hlcmUoOm5vdCgudWktcmVzaXphYmxlLWhhbmRsZSk6bm90KC5nZmllbGQtYWRtaW4taWNvbnMpOm5vdCguZ2Zvcm0tZ3JpZC1yb3cpKSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQ+LmdpbnB1dF9jb250YWluZXI6d2hlcmUoOm5vdCgudWktcmVzaXphYmxlLWhhbmRsZSk6bm90KC5nZmllbGQtYWRtaW4taWNvbnMpOm5vdCguZ2Zvcm0tZ3JpZC1yb3cpKXtpbmxpbmUtc2l6ZTpjYWxjKDEwMCUgLSB2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1ob3Jpem9udGFsLWxheW91dC13aWR0aCkpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2ZpZWxkOndoZXJlKDpub3QoLmdmaWVsZC0tdHlwZS1odG1sKTpub3QoLmdmaWVsZC0tdHlwZS1zZWN0aW9uKSk+ZGl2OndoZXJlKC5nZm9ybS1ncmlkLXJvdyksLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGQ+LmdpbnB1dF9jb250YWluZXI6d2hlcmUoLmdmb3JtLWdyaWQtcm93KSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQ6d2hlcmUoOm5vdCguZ2ZpZWxkLS10eXBlLWh0bWwpOm5vdCguZ2ZpZWxkLS10eXBlLXNlY3Rpb24pKT5kaXY6d2hlcmUoLmdmb3JtLWdyaWQtcm93KSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLnJpZ2h0X2xhYmVsIC5nZmllbGQ+LmdpbnB1dF9jb250YWluZXI6d2hlcmUoLmdmb3JtLWdyaWQtcm93KXtpbmxpbmUtc2l6ZTpjYWxjKDEwMCUgLSB2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1ob3Jpem9udGFsLWxheW91dC13aWR0aCkgKyB2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1jb2wtZ2FwKSl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGRfaHRtbF9mb3JtYXR0ZWQsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5yaWdodF9sYWJlbCAuZ2ZpZWxkX2h0bWxfZm9ybWF0dGVkey13ZWJraXQtbWFyZ2luLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLWhvcml6b250YWwtbGF5b3V0LXdpZHRoKTttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLWhvcml6b250YWwtbGF5b3V0LXdpZHRoKX19LmZpZWxkX3N1YmxhYmVsX2JlbG93IC5naW5wdXRfY29tcGxleHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5maWVsZF9zdWJsYWJlbF9hYm92ZSAuZ2lucHV0X2NvbXBsZXh7YWxpZ24taXRlbXM6ZmxleC1lbmR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY29tcGxleCBsYWJlbCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9jb21wbGV4IGxlZ2VuZHtkaXNwbGF5OmJsb2NrfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIHRleHRhcmVhLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NvbXBsZXggaW5wdXQsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY29tcGxleCBzZWxlY3R7aW5saW5lLXNpemU6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCB0ZXh0YXJlYS5zbWFsbHttaW4tYmxvY2stc2l6ZTo2cmVtfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIHRleHRhcmVhLm1lZGl1bXttaW4tYmxvY2stc2l6ZToxMnJlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCB0ZXh0YXJlYS5sYXJnZXttaW4tYmxvY2stc2l6ZToxOHJlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCAuZ2lucHV0X3Bhc3N3b3JkLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIGlucHV0LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIHNlbGVjdHttYXgtaW5saW5lLXNpemU6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCAuZ2lucHV0X3Bhc3N3b3JkLnNtYWxsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIGlucHV0LnNtYWxsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkIHNlbGVjdC5zbWFsbHtpbmxpbmUtc2l6ZTpjYWxjKDI1JSAtIHZhcigtLWdmb3JtLXRoZW1lLWZvcm0tY29sLWdhcCkqMy80KX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCAuZ2lucHV0X3Bhc3N3b3JkLm1lZGl1bSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCBpbnB1dC5tZWRpdW0sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQgc2VsZWN0Lm1lZGl1bXtpbmxpbmUtc2l6ZTpjYWxjKDUwJSAtIHZhcigtLWdmb3JtLXRoZW1lLWZvcm0tY29sLWdhcCkvMil9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQgLmdpbnB1dF9wYXNzd29yZC5sYXJnZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCBpbnB1dC5sYXJnZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZCBzZWxlY3QubGFyZ2V7aW5saW5lLXNpemU6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2ZpZWxkc3tncmlkLWNvbHVtbi1nYXA6MDtncmlkLXJvdy1nYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1yb3ctZ2FwKTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxMiwxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pO2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGR7Z3JpZC1jb2x1bW46MS8tMTttaW4taW5saW5lLXNpemU6MH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX3BhZ2VfZm9vdGVyey13ZWJraXQtbWFyZ2luLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLWZvb3Rlci1tYXJnaW4tYmxvY2stc3RhcnQpO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1mb290ZXItZ2FwKTttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1mb290ZXItbWFyZ2luLWJsb2NrLXN0YXJ0KX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gI2ZpZWxkX3N1Ym1pdCBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAjZmllbGRfc3VibWl0IGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1mdWxsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9mb290ZXIgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLWZ1bGx7aW5saW5lLXNpemU6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gI2ZpZWxkX3N1Ym1pdCBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtZWxldmVuLXR3ZWxmdGhzLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1lbGV2ZW4tdHdlbGZ0aHN7aW5saW5lLXNpemU6OTEuNjY2NiV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLWZpdmUtc2l4dGhzLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1maXZlLXNpeHRoc3tpbmxpbmUtc2l6ZTo4My4zMzMzJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gI2ZpZWxkX3N1Ym1pdCBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtdGhyZWUtcXVhcnRlciwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtdGhyZWUtcXVhcnRlcntpbmxpbmUtc2l6ZTo3NSV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXR3by10aGlyZHMsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9mb290ZXIgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXR3by10aGlyZHN7aW5saW5lLXNpemU6NjYuNjY2NiV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXNldmVuLXR3ZWxmdGhzLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1zZXZlbi10d2VsZnRoc3tpbmxpbmUtc2l6ZTo1OC4zMzMzJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gI2ZpZWxkX3N1Ym1pdCBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtaGFsZiwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtaGFsZntpbmxpbmUtc2l6ZTo1MCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLWZpdmUtdHdlbGZ0aHMsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9mb290ZXIgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLWZpdmUtdHdlbGZ0aHN7aW5saW5lLXNpemU6NDEuNjY2NiV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXRoaXJkLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyIGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC10aGlyZHtpbmxpbmUtc2l6ZTozMy4zMzMzJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gI2ZpZWxkX3N1Ym1pdCBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtcXVhcnRlciwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtcXVhcnRlcntpbmxpbmUtc2l6ZToyNSV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uICNmaWVsZF9zdWJtaXQgaW5wdXRbdHlwZT1zdWJtaXRdW2lkKj1nZm9ybV9zdWJtaXRfYnV0dG9uX10uYnV0dG9uLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLW9uZS1zaXh0aCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtb25lLXNpeHRoe2lubGluZS1zaXplOjE2LjY2NjYlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAjZmllbGRfc3VibWl0IGlucHV0W3R5cGU9c3VibWl0XVtpZCo9Z2Zvcm1fc3VibWl0X2J1dHRvbl9dLmJ1dHRvbi5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1vbmUtdHdlbGZ0aCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3RlciBpbnB1dFt0eXBlPXN1Ym1pdF1baWQqPWdmb3JtX3N1Ym1pdF9idXR0b25fXS5idXR0b24uZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtb25lLXR3ZWxmdGh7aW5saW5lLXNpemU6OC4zMzMzJX1AbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9maWVsZHN7Z3JpZC1jb2x1bW4tZ2FwOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tY29sLWdhcCl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLWZ1bGx7Z3JpZC1jb2x1bW46c3BhbiAxMn0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC0td2lkdGgtZWxldmVuLXR3ZWxmdGhze2dyaWQtY29sdW1uOnNwYW4gMTF9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLWZpdmUtc2l4dGhze2dyaWQtY29sdW1uOnNwYW4gMTB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLXRocmVlLXF1YXJ0ZXJ7Z3JpZC1jb2x1bW46c3BhbiA5fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLS13aWR0aC10d28tdGhpcmRze2dyaWQtY29sdW1uOnNwYW4gOH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC0td2lkdGgtc2V2ZW4tdHdlbGZ0aHN7Z3JpZC1jb2x1bW46c3BhbiA3fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLS13aWR0aC1oYWxme2dyaWQtY29sdW1uOnNwYW4gNn0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC0td2lkdGgtZml2ZS10d2VsZnRoc3tncmlkLWNvbHVtbjpzcGFuIDV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLXRoaXJke2dyaWQtY29sdW1uOnNwYW4gNH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC0td2lkdGgtcXVhcnRlcntncmlkLWNvbHVtbjpzcGFuIDN9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLW9uZS1zaXh0aHtncmlkLWNvbHVtbjpzcGFuIDJ9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQtLXdpZHRoLW9uZS10d2VsZnRoe2dyaWQtY29sdW1uOnNwYW4gMX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2Zvb3Rlci5sZWZ0X2xhYmVsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZm9vdGVyLnJpZ2h0X2xhYmVsey13ZWJraXQtcGFkZGluZy1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1ob3Jpem9udGFsLWxheW91dC13aWR0aCk7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbGFiZWwtaG9yaXpvbnRhbC1sYXlvdXQtd2lkdGgpfX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtLWdyaWQtcm93e2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7bWFyZ2luLWlubGluZTpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWNvbC1nYXApKi0xLzIpO3Jvdy1nYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcm93LWdhcCl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybS1ncmlkLWNvbHtmbGV4Om5vbmU7aW5saW5lLXNpemU6MTAwJTtwYWRkaW5nLWlubGluZTpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWNvbC1nYXApLzIpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm0tZ3JpZC1jb2wuZ2Zvcm0tZ3JpZC1yb3d7aW5saW5lLXNpemU6Y2FsYygxMDAlICsgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY29sLWdhcCkpfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtLWdyaWQtY29sLmdmb3JtLWdyaWQtY29sLS1zaXplLWF1dG97ZmxleDoxO2lubGluZS1zaXplOmF1dG99fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpe2FsaWduLWl0ZW1zOmJhc2VsaW5lO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtbGFiZWwtcmVxdWlyZWQtZ2FwKX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtLWZpZWxkLWxhYmVsOndoZXJlKFtjbGFzcyo9Z2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtXSl7ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAucmlnaHRfbGFiZWwgLmdmb3JtLWZpZWxkLWxhYmVsOndoZXJlKDpub3QoW2NsYXNzKj1nZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1dKTpub3QoLmdmaWVsZF9oZWFkZXJfaXRlbSk6bm90KC5naW5wdXRfcXVhbnRpdHlfbGFiZWwpKXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxvYXQ6bGVmdDtnYXA6Y2FsYyh2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1yZXF1aXJlZC1nYXApLzMpO2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLWhvcml6b250YWwtbGF5b3V0LXdpZHRoKX0ucnRsIC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAubGVmdF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpLC5ydGwgLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5yaWdodF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpe2Zsb2F0OnJpZ2h0fX1AbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5yaWdodF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpe2FsaWduLWl0ZW1zOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6bm9ybWFsO3RleHQtYWxpZ246ZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5sZWZ0X2xhYmVsIC5nZmllbGRfZGVzY3JpcHRpb24sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5yaWdodF9sYWJlbCAuZ2ZpZWxkX2Rlc2NyaXB0aW9ue2NsZWFyOnJpZ2h0O21hcmdpbi1sZWZ0OmF1dG99LnJ0bCAuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmxlZnRfbGFiZWwgLmdmaWVsZF9kZXNjcmlwdGlvbiwucnRsIC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAucmlnaHRfbGFiZWwgLmdmaWVsZF9kZXNjcmlwdGlvbntjbGVhcjpsZWZ0O21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OmF1dG99fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZHJvcF9hcmVhe2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IGRhc2hlZCAjNjg2ZTc3O3BhZGRpbmctYmxvY2s6MzJweDtwYWRkaW5nLWlubGluZTozMnB4O3RleHQtYWxpZ246Y2VudGVyfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fZHJvcF9pbnN0cnVjdGlvbnMsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9maWxldXBsb2FkX3J1bGVze2Rpc3BsYXk6YmxvY2t9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggNXB4IHJnYmEoMCwwLDAsLjEpO2Rpc3BsYXk6bm9uZTt6LWluZGV4Ojk5OTkhaW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIC51aS1pY29uey13ZWJraXQtbWFyZ2luLWJlZm9yZTotLjI1ZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2Rpc3BsYXk6YmxvY2s7aW5zZXQtYmxvY2stc3RhcnQ6LjNlbTtpbnNldC1pbmxpbmUtc3RhcnQ6LjVlbTttYXJnaW4tYmxvY2stc3RhcnQ6LS4yNWVtO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVye3BhZGRpbmctYmxvY2s6LjJlbTtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXZ7YmxvY2stc2l6ZToxLjhlbTtpbmxpbmUtc2l6ZToxLjhlbTtpbnNldC1ibG9jay1zdGFydDoycHg7cG9zaXRpb246YWJzb2x1dGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldjpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Rvd24tYXJyb3cuc3ZnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjI0cHggMjRweDtibG9jay1zaXplOjFlbTtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2lubGluZS1zaXplOjFlbTtpbnNldC1ibG9jay1zdGFydDo1MCU7aW5zZXQtaW5saW5lLXN0YXJ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgcm90YXRlKDkwZGVnKX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiBzcGFuey13ZWJraXQtbWFyZ2luLWJlZm9yZTotOHB4Oy13ZWJraXQtbWFyZ2luLXN0YXJ0Oi04cHg7ZGlzcGxheTpibG9jaztpbnNldC1ibG9jay1zdGFydDo1MCU7aW5zZXQtaW5saW5lLXN0YXJ0OjUwJTttYXJnaW4tYmxvY2stc3RhcnQ6LThweDttYXJnaW4taW5saW5lLXN0YXJ0Oi04cHg7cG9zaXRpb246YWJzb2x1dGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVye2luc2V0LWJsb2NrLXN0YXJ0OjFweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2e2luc2V0LWlubGluZS1zdGFydDoycHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dHtpbnNldC1pbmxpbmUtZW5kOjJweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZXt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgcm90YXRlKC05MGRlZyl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlcntpbnNldC1pbmxpbmUtc3RhcnQ6MXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXJ7aW5zZXQtaW5saW5lLWVuZDoxcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGV7bGluZS1oZWlnaHQ6MS44ZW07bWFyZ2luLWlubGluZToyLjNlbTt0ZXh0LWFsaWduOmNlbnRlcn0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZSBzZWxlY3R7Zm9udC1zaXplOjFlbTttYXJnaW4tYmxvY2s6MXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXJ7LXdlYmtpdC1wYWRkaW5nLWVuZDoyNHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Rvd24tYXJyb3cuc3ZnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgNTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjRweDtwYWRkaW5nLWlubGluZS1lbmQ6MjRweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlciB0YWJsZXstd2Via2l0LW1hcmdpbi1hZnRlcjouNGVtO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LXNpemU6LjllbTtpbmxpbmUtc2l6ZToxMDAlO21hcmdpbi1ibG9jay1lbmQ6LjRlbTt0YWJsZS1sYXlvdXQ6Zml4ZWR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgdGh7Ym9yZGVyOjA7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmctYmxvY2s6LjdlbTtwYWRkaW5nLWlubGluZTouM2VtO3RleHQtYWxpZ246Y2VudGVyfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIHRke2JvcmRlcjowO3BhZGRpbmc6MXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyIHRkIGEsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIgdGQgc3BhbntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjJlbTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24udWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLXJ0bHtkaXJlY3Rpb246cnRsfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jle3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLC01MCUpIHJvdGF0ZSgtOTBkZWcpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbi51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6YmVmb3Jle3RyYW5zZm9ybTp0cmFuc2xhdGUoNTAlLC01MCUpIHJvdGF0ZSg5MGRlZyl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1ydGwgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1ydGwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgNTAlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOnN0YXJ0Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyICp7Ym94LXNpemluZzpib3JkZXItYm94fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciBhe2N1cnNvcjpwb2ludGVyfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLWRyb3B7LXdlYmtpdC1ib3JkZXItYmVmb3JlOjA7Y2xpcDpyZWN0KDAsMCwwLDApO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNhYWE7Ym9yZGVyLWJsb2NrLXN0YXJ0OjA7Ym94LXNoYWRvdzowIDRweCA1cHggcmdiYSgwLDAsMCwuMTUpOy13ZWJraXQtY2xpcC1wYXRoOmluc2V0KDEwMCUgMTAwJSk7Y2xpcC1wYXRoOmluc2V0KDEwMCUgMTAwJSk7aW5saW5lLXNpemU6MTAwJTtpbnNldC1ibG9jay1zdGFydDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAxMH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLWRyb3B7Y2xpcDphdXRvOy13ZWJraXQtY2xpcC1wYXRoOm5vbmU7Y2xpcC1wYXRoOm5vbmV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuc2VhcmNoLWNob2ljZSAuZ3JvdXAtbmFtZXstd2Via2l0LW1hcmdpbi1lbmQ6NHB4O2NvbG9yOiM5OTk7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbi1pbmxpbmUtZW5kOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lOmFmdGVyLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuc2VhcmNoLWNob2ljZSAuZ3JvdXAtbmFtZTphZnRlcnstd2Via2l0LXBhZGRpbmctc3RhcnQ6MnB4O2NvbnRlbnQ6IjoiO3BhZGRpbmctaW5saW5lLXN0YXJ0OjJweDt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZXtiYWNrZ3JvdW5kOiNmZmYgbGluZWFyLWdyYWRpZW50KCNmZmYgMjAlLCNmNmY2ZjYgNTAlLCNlZWUgNTIlLCNmNGY0ZjQpO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtibG9jay1zaXplOjI1cHg7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6NXB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDNweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKTtjb2xvcjojNDQ0O2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MjRweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ibG9jazowO3BhZGRpbmctaW5saW5lOjhweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbjpub25lO3doaXRlLXNwYWNlOm5vd3JhcH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIHNwYW57LXdlYmtpdC1tYXJnaW4tZW5kOjI2cHg7ZGlzcGxheTpibG9jazttYXJnaW4taW5saW5lLWVuZDoyNnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnJ7YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Nob3Nlbi9jaG9zZW4tc3ByaXRlLnBuZykgLTQycHggMXB4IG5vLXJlcGVhdDtibG9jay1zaXplOjEycHg7ZGlzcGxheTpibG9jaztmb250LXNpemU6MXB4O2lubGluZS1zaXplOjEycHg7aW5zZXQtYmxvY2stc3RhcnQ6NnB4O2luc2V0LWlubGluZS1lbmQ6MjZweDtwb3NpdGlvbjphYnNvbHV0ZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDJweCAtMTBweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdntibG9jay1zaXplOjEwMCU7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZToxOHB4O2luc2V0LWJsb2NrLXN0YXJ0OjA7aW5zZXQtaW5saW5lLWVuZDowO3Bvc2l0aW9uOmFic29sdXRlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Nob3Nlbi9jaG9zZW4tc3ByaXRlLnBuZykgbm8tcmVwZWF0IDAgMnB4O2Jsb2NrLXNpemU6MTAwJTtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLWRlZmF1bHR7Y29sb3I6Izk5OX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlLXdpdGgtZGVzZWxlY3Qgc3Bhbnstd2Via2l0LW1hcmdpbi1lbmQ6MzhweDttYXJnaW4taW5saW5lLWVuZDozOHB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tc2luZ2xlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDJweCAtMTBweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoe21hcmdpbi1ibG9jazowO21hcmdpbi1pbmxpbmU6MDtwYWRkaW5nLWJsb2NrOjNweDtwYWRkaW5nLWlubGluZTo0cHg7cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm93cmFwO3otaW5kZXg6MTAxMH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Nob3Nlbi9jaG9zZW4tc3ByaXRlLnBuZykgbm8tcmVwZWF0IDEwMCUgLTIwcHg7YmxvY2stc2l6ZTphdXRvO2JvcmRlcjoxcHggc29saWQgI2FhYTtib3JkZXItcmFkaXVzOjA7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MWVtO2lubGluZS1zaXplOjEwMCU7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbi1ibG9jazoxcHg7bWFyZ2luLWlubGluZTowO291dGxpbmU6MDtwYWRkaW5nLWJsb2NrOjRweDtwYWRkaW5nLWlubGluZTo1cHggMjBweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi1jb250YWluZXItc2luZ2xlLW5vc2VhcmNoIC5jaG9zZW4tc2VhcmNoe2NsaXA6cmVjdCgwLDAsMCwwKTstd2Via2l0LWNsaXAtcGF0aDppbnNldCgxMDAlIDEwMCUpO2NsaXAtcGF0aDppbnNldCgxMDAlIDEwMCUpO3Bvc2l0aW9uOmFic29sdXRlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1kcm9wey13ZWJraXQtbWFyZ2luLWJlZm9yZTotMXB4O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXItZW5kLWVuZC1yYWRpdXM6NHB4O2JvcmRlci1lbmQtc3RhcnQtcmFkaXVzOjRweDtib3JkZXItc3RhcnQtZW5kLXJhZGl1czowO2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6MDttYXJnaW4tYmxvY2stc3RhcnQ6LTFweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzey13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2NvbG9yOiM0NDQ7bWFyZ2luLWJsb2NrOjAgNHB4O21hcmdpbi1pbmxpbmU6MCA0cHg7bWF4LWJsb2NrLXNpemU6MjQwcHg7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3BhZGRpbmctYmxvY2s6MDtwYWRkaW5nLWlubGluZTo0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpey13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lO3dvcmQtd3JhcDpicmVhay13b3JkO2Rpc3BsYXk6bm9uZTtsaW5lLWhlaWdodDoxNXB4O2xpc3Qtc3R5bGU6bm9uZTttYXJnaW4tYmxvY2s6MDttYXJnaW4taW5saW5lOjA7cGFkZGluZy1ibG9jazo1cHg7cGFkZGluZy1pbmxpbmU6NnB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuYWN0aXZlLXJlc3VsdHtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5Omxpc3QtaXRlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmRpc2FibGVkLXJlc3VsdHtjb2xvcjojY2NjO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6bGlzdC1pdGVtfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWR7YmFja2dyb3VuZC1jb2xvcjojMzg3NWQ3O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KCMzODc1ZDcgMjAlLCMyYTYyYmMgOTAlKTtjb2xvcjojZmZmfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkubm8tcmVzdWx0c3tiYWNrZ3JvdW5kOiNmNGY0ZjQ7Y29sb3I6Izc3NztkaXNwbGF5Omxpc3QtaXRlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmdyb3VwLXJlc3VsdHtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5Omxpc3QtaXRlbTtmb250LXdlaWdodDo3MDB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5ncm91cC1vcHRpb257LXdlYmtpdC1wYWRkaW5nLXN0YXJ0OjE1cHg7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MTVweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVte2ZvbnQtc3R5bGU6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlc3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoI2VlZSAxJSwjZmZmIDE1JSk7YmxvY2stc2l6ZTphdXRvO2JvcmRlcjoxcHggc29saWQgI2FhYTtjdXJzb3I6dGV4dDtpbmxpbmUtc2l6ZToxMDAlO21hcmdpbi1ibG9jazowO21hcmdpbi1pbmxpbmU6MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ibG9jazowO3BhZGRpbmctaW5saW5lOjVweDtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpe2Zsb2F0OmxlZnQ7bGlzdC1zdHlsZTpub25lfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxke21hcmdpbi1ibG9jazowO21hcmdpbi1pbmxpbmU6MDtwYWRkaW5nLWJsb2NrOjA7cGFkZGluZy1pbmxpbmU6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtibG9jay1zaXplOjI1cHg7Ym9yZGVyOjAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7Y29sb3I6Izk5OTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMDAlO2lubGluZS1zaXplOjI1cHg7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbi1ibG9jazoxcHg7bWFyZ2luLWlubGluZTowO291dGxpbmU6MDtwYWRkaW5nLWJsb2NrOjA7cGFkZGluZy1pbmxpbmU6MH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2V7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JhY2tncm91bmQtY29sb3I6I2VlZTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjZjRmNGY0IDIwJSwjZjBmMGYwIDUwJSwjZThlOGU4IDUyJSwjZWVlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxOXB4O2JvcmRlcjoxcHggc29saWQgI2FhYTtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93Omluc2V0IDAgMCAycHggI2ZmZiwwIDFweCAwIHJnYmEoMCwwLDAsLjA1KTtjb2xvcjojMzMzO2N1cnNvcjpkZWZhdWx0O2xpbmUtaGVpZ2h0OjEzcHg7bWFyZ2luLWJsb2NrOjNweDttYXJnaW4taW5saW5lOjAgNXB4O21heC1pbmxpbmUtc2l6ZToxMDAlO3BhZGRpbmctYmxvY2s6M3B4O3BhZGRpbmctaW5saW5lOjVweCAyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSBzcGFue3dvcmQtd3JhcDpicmVhay13b3JkfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kOnVybCguLi8uLi8uLi9pbWFnZXMvdGhlbWUvY2hvc2VuL2Nob3Nlbi1zcHJpdGUucG5nKSAtNDJweCAxcHggbm8tcmVwZWF0O2Jsb2NrLXNpemU6MTJweDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxcHg7aW5saW5lLXNpemU6MTJweDtpbnNldC1ibG9jay1zdGFydDo0cHg7aW5zZXQtaW5saW5lLWVuZDozcHg7cG9zaXRpb246YWJzb2x1dGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246LTQycHggLTEwcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLWRpc2FibGVkey13ZWJraXQtcGFkZGluZy1lbmQ6NXB4O2JhY2tncm91bmQtY29sb3I6I2U0ZTRlNDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjZjRmNGY0IDIwJSwjZjBmMGYwIDUwJSwjZThlOGU4IDUyJSwjZWVlKTtib3JkZXI6MXB4IHNvbGlkICNjY2M7Y29sb3I6IzY2NjtwYWRkaW5nLWlubGluZS1lbmQ6NXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOiNkNGQ0ZDR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLWZvY3VzIC5zZWFyY2gtY2hvaWNlLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTQycHggLTEwcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tcmVzdWx0c3ttYXJnaW4tYmxvY2s6MDttYXJnaW4taW5saW5lOjA7cGFkZGluZy1ibG9jazowO3BhZGRpbmctaW5saW5lOjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tZHJvcCAucmVzdWx0LXNlbGVjdGVke2NvbG9yOiNjY2M7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpsaXN0LWl0ZW19Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZSAuY2hvc2VuLXNpbmdsZXtib3JkZXI6MXB4IHNvbGlkICM1ODk3ZmI7Ym94LXNoYWRvdzowIDAgNXB4IHJnYmEoMCwwLDAsLjMpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjZWVlIDIwJSwjZmZmIDgwJSk7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCAjZmZmfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXZ7LXdlYmtpdC1ib3JkZXItc3RhcnQ6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1pbmxpbmUtc3RhcnQ6bm9uZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMThweCAycHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZSAuY2hvc2VuLWNob2ljZXN7Ym9yZGVyOjFweCBzb2xpZCAjNTg5N2ZiO2JveC1zaGFkb3c6MCAwIDVweCByZ2JhKDAsMCwwLC4zKX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XXtjb2xvcjojMjIyfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0O29wYWNpdHk6LjUhaW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tY2hvaWNlcyAuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1kaXNhYmxlZCAuY2hvc2VuLXNpbmdsZXtjdXJzb3I6ZGVmYXVsdH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1ydGx7ZGlyZWN0aW9uOnJ0bH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1ydGwgLmNob3Nlbi1jaG9pY2VzIGxpe2Zsb2F0OnJpZ2h0fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOjZweCAycHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tcnRsLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTJweCAycHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tcnRsIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17YmFja2dyb3VuZC1wb3NpdGlvbjotMzBweCAtMjBweH1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS41KSxvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjEuNWRwcHgpLG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246MTQ0ZHBpKXsuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzLXNjcm9sbC1kb3duIHNwYW4sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cy1zY3JvbGwtdXAgc3BhbiwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIC5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYiwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmNob3Nlbi1ydGwgLmNob3Nlbi1zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi8uLi8uLi9pbWFnZXMvdGhlbWUvY2hvc2VuL2Nob3Nlbi1zcHJpdGVAMngucG5nKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTJweCAzN3B4IWltcG9ydGFudH19Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9pbnZpc2libGUsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfdmlzaWJpbGl0eV9oaWRkZW57aW5zZXQtaW5saW5lLXN0YXJ0Oi05OTk5cHg7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW59Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9oaWRlX2NoYXJsZWZ0IC5jaGFybGVmdHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NvdW50ZXJ7Y29sb3I6Izc2NzY3Njtmb250LXNpemU6LjhlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9jb3VudGVyX3RpbnltY2V7LXdlYmtpdC1ib3JkZXItYmVmb3JlOjFweCBzb2xpZCAjZGNkY2RlO2JvcmRlci1ibG9jay1zdGFydDoxcHggc29saWQgI2RjZGNkZTtmb250LXNpemU6MTJweDtwYWRkaW5nLWJsb2NrOjJweDtwYWRkaW5nLWlubGluZToxMHB4fUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9hZGRyZXNzX2NpdHksLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfYWRkcmVzc19jb3VudHJ5LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2FkZHJlc3Nfc3RhdGUsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfYWRkcmVzc196aXB7aW5saW5lLXNpemU6NTAlfX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXJ7LXdlYmtpdC1tYXJnaW4tYWZ0ZXI6OHB4O2Jsb2NrLXNpemU6MzJweDtkaXNwbGF5OmZsZXg7bWFyZ2luLWJsb2NrLWVuZDo4cHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIC5nZm9ybV9jYXJkX2ljb257LXdlYmtpdC1tYXJnaW4tZW5kOi4zcmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uLy4uLy4uL2ltYWdlcy9nZi1jcmVkaXRjYXJkcy5zdmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtibG9jay1zaXplOjMycHg7aW5saW5lLXNpemU6NDBweDttYXJnaW4taW5saW5lLWVuZDouM3JlbTt0ZXh0LWluZGVudDotOTAwMHB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciAuZ2Zvcm1fY2FyZF9pY29uLmdmb3JtX2NhcmRfaWNvbl9hbWV4e2JhY2tncm91bmQtcG9zaXRpb246LTE2N3B4IDB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIC5nZm9ybV9jYXJkX2ljb24uZ2Zvcm1fY2FyZF9pY29uX2Rpc2NvdmVye2JhY2tncm91bmQtcG9zaXRpb246LTIyMXB4IDB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIC5nZm9ybV9jYXJkX2ljb24uZ2Zvcm1fY2FyZF9pY29uX21hc3RlcmNhcmR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjc1cHggMH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgLmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25fdmlzYXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01OXB4IDB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIC5nZm9ybV9jYXJkX2ljb24uZ2Zvcm1fY2FyZF9pY29uX2pjYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMjlweCAwfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciAuZ2Zvcm1fY2FyZF9pY29uLmdmb3JtX2NhcmRfaWNvbl9tYWVzdHJve2JhY2tncm91bmQtcG9zaXRpb246LTVweCAwfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciAuZ2Zvcm1fY2FyZF9pY29uLmdmb3JtX2NhcmRfaWNvbl9zZWxlY3RlZHtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgLmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25fc2VsZWN0ZWQ6YWZ0ZXJ7YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vaW1hZ2VzL2dmLWNyZWRpdGNhcmRzLWNoZWNrLnN2ZykgNTAlIG5vLXJlcGVhdDtibG9jay1zaXplOjEwcHg7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEzcHg7aW5zZXQtYmxvY2stZW5kOjRweDtpbnNldC1pbmxpbmUtZW5kOjA7cG9zaXRpb246YWJzb2x1dGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY2FyZGluZm9fbGVmdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRpbmZvX2xlZnQgbGVnZW5ke2Zsb2F0OmxlZnR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5maWVsZF9zdWJsYWJlbF9iZWxvdyAuZ2lucHV0X2NhcmRpbmZvX2xlZnR7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRpbmZvX3JpZ2h0e2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRpbmZvX3JpZ2h0IGxhYmVse2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY2FyZF9zZWN1cml0eV9jb2Rle2ZsZXg6MX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9jYXJkX3NlY3VyaXR5X2NvZGVfaWNvbnstd2Via2l0LW1hcmdpbi1zdGFydDouM2VtO2FsaWduLXNlbGY6Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uLy4uLy4uL2ltYWdlcy9nZi1jcmVkaXRjYXJkcy5zdmcpO2JhY2tncm91bmQtcG9zaXRpb246LTM4MnB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtibG9jay1zaXplOjMycHg7ZGlzcGxheTpibG9jaztmbGV4Om5vbmU7aW5saW5lLXNpemU6NDBweDttYXJnaW4taW5saW5lLXN0YXJ0Oi4zZW19QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRfZXhwaXJhdGlvbl9tb250aF9jb250YWluZXIsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY2FyZF9leHBpcmF0aW9uX3llYXJfY29udGFpbmVyLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRpbmZvX2xlZnQsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY2FyZGluZm9fcmlnaHR7aW5saW5lLXNpemU6NTAlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NhcmRpbmZvX3JpZ2h0IC5naW5wdXRfY2FyZF9zZWN1cml0eV9jb2Rle2ZsZXg6bm9uZTtpbmxpbmUtc2l6ZTo1MCV9fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9jb250YWluZXJfZGF0ZXtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1kYXRlLWlubGluZS1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9jb21wbGV4IC5naW5wdXRfY29udGFpbmVyX2RhdGUgbGFiZWx7ZGlzcGxheTpibG9ja30uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX2hpZGRlbiwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmb3JtX2hpZGRlbntkaXNwbGF5Om5vbmV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lcntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NvbnRhaW5lcl9saXN0LS1jb2x1bW5zIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1sYWJlbCl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9oZWFkZXJ7ZGlzcGxheTpub25lfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkX2hlYWRlcl9pdGVte3dvcmQtYnJlYWs6YnJlYWstd29yZH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZF9saXN0X2dyb3Vwey13ZWJraXQtbWFyZ2luLWFmdGVyOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXJvdy1nYXApO21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcm93LWdhcCl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9ncm91cDpsYXN0LWNoaWxkey13ZWJraXQtbWFyZ2luLWFmdGVyOjA7bWFyZ2luLWJsb2NrLWVuZDowfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbSsuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbXstd2Via2l0LW1hcmdpbi1iZWZvcmU6NHB4O21hcmdpbi1ibG9jay1zdGFydDo0cHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtIGlucHV0LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbSBzZWxlY3QsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtIHRleHRhcmVhe2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfaGVhZGVyX2l0ZW0tLWljb25zLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkX2xpc3RfaWNvbnN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtbGlzdC1idXR0b25zLWdhcCl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5hZGRfbGlzdF9pdGVtLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZGVsZXRlX2xpc3RfaXRlbXtmb250LXNpemU6MTJweDtwYWRkaW5nOjB9QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2lucHV0X2NvbnRhaW5lcl9saXN0LS1jb2x1bW5zIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtOmJlZm9yZXtjb250ZW50Om5vbmV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9ncm91cCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZF9saXN0X2hlYWRlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfaGVhZGVyX2l0ZW06d2hlcmUoOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtLS1pY29ucykpe2ZsZXg6MSAxIDB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfbGlzdF9ncm91cF9pdGVte2ZsZXg6MX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW0rLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW17LXdlYmtpdC1tYXJnaW4tYmVmb3JlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfaGVhZGVyX2l0ZW0tLWljb25zLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkX2xpc3RfaWNvbnN7ZmxleDpub25lO2ZsZXgtd3JhcDp3cmFwO2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9ucy1pbmxpbmUtc2l6ZSk7anVzdGlmeS1jb250ZW50OmNlbnRlcn19Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9wYWdlX3N0ZXBze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1yb3ctZ2FwKSB2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLWNvbC1nYXApfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc3RlcF9hY3RpdmV7Zm9udC13ZWlnaHQ6NTAwfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm1fc2hvd19wYXNzd29yZHtpbnNldC1ibG9jay1zdGFydDo1MCU7aW5zZXQtaW5saW5lLWVuZDoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAucGFzc3dvcmRfaW5wdXRfY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfcGFzc3dvcmR7ZGlzcGxheTpibG9ja30uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdpbnB1dF9wYXNzd29yZCBpbnB1dHtpbmxpbmUtc2l6ZToxMDAlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiA6Oi1tcy1yZXZlYWx7ZGlzcGxheTpub25lfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLS10eXBlLWNhcHRjaGEgaWZyYW1le2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGRfcG9zdF90YWdzX2hpbnR7bWFyZ2luOjB9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5naW5wdXRfY29tcGxleCAuZ2lucHV0X2NvbnRhaW5lcl90aW1le2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXRpbWUtaW5saW5lLXNpemUpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuaG91cl9taW51dGVfY29sb257ZGlzcGxheTpub25lfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0XzJjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0XzJjb2wgLmdmaWVsZF9yYWRpb3tncmlkLWNvbHVtbi1nYXA6MnJlbTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcik7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdChhdXRvLWZpbGwsYXV0byl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF8zY29sIC5nZmllbGRfY2hlY2tib3gsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF8zY29sIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfNGNvbCAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfNGNvbCAuZ2ZpZWxkX3JhZGlve2dyaWQtY29sdW1uLWdhcDoycmVtO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKTtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KGF1dG8tZmlsbCxhdXRvKX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0XzVjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0XzVjb2wgLmdmaWVsZF9yYWRpb3tncmlkLWNvbHVtbi1nYXA6MnJlbTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LDFmcik7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdChhdXRvLWZpbGwsYXV0byl9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9pbmxpbmUgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX3JhZGlve2Rpc3BsYXk6YmxvY2t9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9pbmxpbmUgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNley13ZWJraXQtcGFkZGluZy1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1jaG9pY2Utc3BhY2luZyk7LXdlYmtpdC1wYWRkaW5nLWVuZDoxcmVtO2Rpc3BsYXk6aW5saW5lLWdyaWQ7cGFkZGluZy1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY2hvaWNlLXNwYWNpbmcpO3BhZGRpbmctaW5saW5lLWVuZDoxcmVtfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfaW5saW5lIC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UgbGFiZWwsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9pbmxpbmUgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZSBsYWJlbHttYXgtaW5saW5lLXNpemU6bm9uZX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX2xpc3RfMmNvbF92ZXJ0aWNhbCAuZ2lucHV0X2NvbnRhaW5lciAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZfbGlzdF8yY29sX3ZlcnRpY2FsIC5naW5wdXRfY29udGFpbmVyIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07LW1vei1jb2x1bW4tY291bnQ6Mjtjb2x1bW4tY291bnQ6MjtkaXNwbGF5OmJsb2NrfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZfbGlzdF8yY29sX3ZlcnRpY2FsIC5naW5wdXRfY29udGFpbmVyIC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9saXN0XzJjb2xfdmVydGljYWwgLmdpbnB1dF9jb250YWluZXIgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXstd2Via2l0LW1hcmdpbi1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1jaG9pY2Utc3BhY2luZyk7ZGlzcGxheTpncmlkO21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY2hvaWNlLXNwYWNpbmcpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZfbGlzdF8zY29sX3ZlcnRpY2FsIC5nZmllbGRfY2hlY2tib3gsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9saXN0XzNjb2xfdmVydGljYWwgLmdmaWVsZF9yYWRpb3tncmlkLWNvbHVtbi1nYXA6MnJlbTstbW96LWNvbHVtbi1jb3VudDozO2NvbHVtbi1jb3VudDozO2Rpc3BsYXk6YmxvY2t9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9saXN0XzRjb2xfdmVydGljYWwgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX2xpc3RfNGNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX3JhZGlve2dyaWQtY29sdW1uLWdhcDoycmVtOy1tb3otY29sdW1uLWNvdW50OjQ7Y29sdW1uLWNvdW50OjQ7ZGlzcGxheTpibG9ja30uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX2xpc3RfNWNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZfbGlzdF81Y29sX3ZlcnRpY2FsIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07LW1vei1jb2x1bW4tY291bnQ6NTtjb2x1bW4tY291bnQ6NTtkaXNwbGF5OmJsb2NrfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzI1IC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMjUgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXtibG9jay1zaXplOjI1cHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfNTAgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2hlaWdodF81MCAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNle2Jsb2NrLXNpemU6NTBweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2hlaWdodF83NSAuZ2ZpZWxkX2NoZWNrYm94IC5nY2hvaWNlLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0Xzc1IC5nZmllbGRfcmFkaW8gLmdjaG9pY2V7YmxvY2stc2l6ZTo3NXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzEwMCAuZ2ZpZWxkX2NoZWNrYm94IC5nY2hvaWNlLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzEwMCAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNle2Jsb2NrLXNpemU6MTAwcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMTI1IC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMTI1IC5nZmllbGRfcmFkaW8gLmdjaG9pY2V7YmxvY2stc2l6ZToxMjVweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2hlaWdodF8xNTAgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZl9saXN0X2hlaWdodF8xNTAgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXtibG9jay1zaXplOjE1MHB4fX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX2hpZGVfYW1wbSAuZ2ZpZWxkX3RpbWVfYW1wbXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ3NlY3Rpb24uZ2Zfc2Nyb2xsX3RleHR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Jsb2NrLXNpemU6MTVyZW07Ym9yZGVyOjFweCBzb2xpZCAjY2NjO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsO3BhZGRpbmc6MnJlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdzZWN0aW9uLmdmX3Njcm9sbF90ZXh0IC5nc2VjdGlvbl90aXRsZXstd2Via2l0LW1hcmdpbi1iZWZvcmU6MDttYXJnaW4tYmxvY2stc3RhcnQ6MH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmaWVsZC5nZmllbGRfaHRtbC5nZl9hbGVydF9ibHVlLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2dyYXksLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfZ3JlZW4sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfcmVkLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X3llbGxvd3tib3JkZXItcmFkaXVzOjNweDttYXJnaW4tYmxvY2s6MS4yNXJlbSFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTowIWltcG9ydGFudDtwYWRkaW5nOjEuMjVyZW0haW1wb3J0YW50fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2dyZWVue2JhY2tncm91bmQtY29sb3I6I2NiZWNhMDtib3JkZXI6MXB4IHNvbGlkICM5N2I0OGE7Y29sb3I6IzAzMDt0ZXh0LXNoYWRvdzojZGZiIDFweCAxcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfcmVke2JhY2tncm91bmQtY29sb3I6I2ZhZjJmNTtib3JkZXI6MXB4IHNvbGlkICNjZmFkYjM7Y29sb3I6IzgzMjUyNTt0ZXh0LXNoYWRvdzojZmZmIDFweCAxcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfeWVsbG93e2JhY2tncm91bmQtY29sb3I6I2ZmZmJjYztib3JkZXI6MXB4IHNvbGlkICNlNmRiNTU7Y29sb3I6IzIyMjt0ZXh0LXNoYWRvdzojZmNmYWVhIDFweCAxcHh9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfZ3JheXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiM0MjQyNDI7dGV4dC1zaGFkb3c6I2ZmZiAxcHggMXB4fS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2JsdWV7YmFja2dyb3VuZC1jb2xvcjojZDFlNGYzO2JvcmRlcjoxcHggc29saWQgI2E3YzJlNztjb2xvcjojMzE0NDc1O3RleHQtc2hhZG93OiNlMGYxZmYgMXB4IDFweH0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFse2lubGluZS1zaXplOmNhbGMoMTAwJSAtIDE2cHgpO21hcmdpbi1ibG9jazowO21hcmdpbi1pbmxpbmU6YXV0b30uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5LC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2Zvb3Rlci50b3BfbGFiZWx7ZGlzcGxheTp0YWJsZS1jZWxsO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keXtpbmxpbmUtc2l6ZTphdXRvO21heC1pbmxpbmUtc2l6ZTo3NSV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVse2Rpc3BsYXk6dGFibGU7aW5saW5lLXNpemU6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5IC50b3BfbGFiZWwgLmdmaWVsZHstd2Via2l0LXBhZGRpbmctZW5kOjFlbTtibG9jay1zaXplOmF1dG87ZGlzcGxheTp0YWJsZS1jZWxsO3BhZGRpbmctaW5saW5lLWVuZDoxZW19Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLmxhcmdlLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHkgLnRvcF9sYWJlbCAuZ2ZpZWxkIC5tZWRpdW0sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLnNtYWxse2lubGluZS1zaXplOjEwMCV9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXJfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXJfcmFkaW8gLmdjaG9pY2V7LXdlYmtpdC1tYXJnaW4tZW5kOi41ZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWlubGluZS1lbmQ6LjVlbX0uZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5IC50b3BfbGFiZWwuZm9ybV9zdWJsYWJlbF9hYm92ZSAuZ2ZpZWxkLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHkgLnRvcF9sYWJlbC5mb3JtX3N1YmxhYmVsX2JlbG93IC5nZmllbGR7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmaWVsZCwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5naW5wdXRfY29udGFpbmVyey13ZWJraXQtbWFyZ2luLWJlZm9yZTowIWltcG9ydGFudDttYXJnaW4tYmxvY2stc3RhcnQ6MCFpbXBvcnRhbnR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbHtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbjowO21heC1pbmxpbmUtc2l6ZToyNSU7cGFkZGluZzowO3RleHQtYWxpZ246c3RhcnR9Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbCBpbnB1dFt0eXBlPWJ1dHRvbl0sLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbCBpbnB1dFt0eXBlPWltYWdlXSwuZ2Zvcm0tdGhlbWUtLWZvdW5kYXRpb24gLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9mb290ZXIudG9wX2xhYmVsIGlucHV0W3R5cGU9c3VibWl0XXtibG9jay1zaXplOmF1dG99Lmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOm5vdCguZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSksLmdmb3JtLXRoZW1lLS1mb3VuZGF0aW9uIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2ZpZWxkX2xhYmVsLC5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdpbnB1dF9jb21wbGV4IGxhYmVse2Jsb2NrLXNpemU6MXB4O2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MXB4O2luc2V0LWJsb2NrLXN0YXJ0OjA7aW5zZXQtaW5saW5lLXN0YXJ0Oi05MDAwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlfS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fc2ltcGxlX3llbGxvd3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmZiY2M7Ym9yZGVyLWJsb2NrOjFweCBzb2xpZCAjZTZkYjU1O2NvbG9yOiM0MjQyNDI7Zm9udC1zaXplOjI1cHg7bWFyZ2luLWJsb2NrOjMwcHg7bWFyZ2luLWlubGluZTowO21heC1pbmxpbmUtc2l6ZTo5OSU7cGFkZGluZzozMnB4fS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fc2ltcGxlX2dyYXl7YmFja2dyb3VuZC1jb2xvcjojZWFlYWVhO2JvcmRlci1ibG9jazoxcHggc29saWQgI2NjYztjb2xvcjojNDI0MjQyO2ZvbnQtc2l6ZToyNXB4O21hcmdpbi1ibG9jazozMHB4O21hcmdpbi1pbmxpbmU6MDttYXgtaW5saW5lLXNpemU6OTklO3BhZGRpbmc6MzJweH0uZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIuZ2ZfY29uZmlybWF0aW9uX3llbGxvd19ncmFkaWVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZiZDI7Ym9yZGVyOjFweCBzb2xpZCAjZTZkYjU1O2JveC1zaGFkb3c6MCAwIDVweCBoc2xhKDU2LDU3JSw2OSUsLjc1KTttYXJnaW4tYmxvY2s6MzBweDttYXJnaW4taW5saW5lOjA7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl95ZWxsb3dfZ3JhZGllbnQgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdley13ZWJraXQtYm9yZGVyLWFmdGVyOjFweCBzb2xpZCAjZTZkYjU1Oy13ZWJraXQtYm9yZGVyLWJlZm9yZToycHggc29saWQgI2ZmZjtiYWNrZ3JvdW5kOiNmZmZjZTU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZTUgMCwjZmZmOWJmKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZiY2M7Ym9yZGVyLWJsb2NrLWVuZDoxcHggc29saWQgI2U2ZGI1NTtib3JkZXItYmxvY2stc3RhcnQ6MnB4IHNvbGlkICNmZmY7Y29sb3I6IzQyNDI0Mjtmb250LXNpemU6MjhweDttYXJnaW46MDttYXgtaW5saW5lLXNpemU6OTklO3BhZGRpbmc6NDBweH0uZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIuZ2ZfY29uZmlybWF0aW9uX2dyZWVuX2dyYWRpZW50e2JhY2tncm91bmQtY29sb3I6I2YxZmNkZjtib3JkZXI6MXB4IHNvbGlkICNhN2MzN2M7Ym94LXNoYWRvdzowIDAgNXB4IHJnYmEoODYsMTIyLDg2LC40KTttYXJnaW4tYmxvY2s6MzBweDttYXJnaW4taW5saW5lOjA7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl9ncmVlbl9ncmFkaWVudCAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2V7LXdlYmtpdC1ib3JkZXItYWZ0ZXI6MXB4IHNvbGlkICNhN2MzN2M7LXdlYmtpdC1ib3JkZXItYmVmb3JlOjJweCBzb2xpZCAjZWZmYWRlO2JhY2tncm91bmQ6I2RiZjJiNztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2RiZjJiNyAwLCNiNGQwODgpO2JhY2tncm91bmQtY29sb3I6I2ZmZmJjYztib3JkZXItYmxvY2stZW5kOjFweCBzb2xpZCAjYTdjMzdjO2JvcmRlci1ibG9jay1zdGFydDoycHggc29saWQgI2VmZmFkZTtjb2xvcjojMDMwO2ZvbnQtc2l6ZToyOHB4O21hcmdpbjowO21heC1pbmxpbmUtc2l6ZTo5OSU7cGFkZGluZzo0MHB4O3RleHQtc2hhZG93OiNkZmIgMXB4IDFweH0uZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIuZ2ZfY29uZmlybWF0aW9uX2dyZWVuX2dyYWRpZW50OmFmdGVyLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fZ3JlZW5fZ3JhZGllbnQ6YmVmb3JlLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25feWVsbG93X2dyYWRpZW50OmFmdGVyLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25feWVsbG93X2dyYWRpZW50OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6MCAxNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7Y29udGVudDoiIjtpbmxpbmUtc2l6ZTo1MCU7aW5zZXQtYmxvY2s6ODAlIDE1cHg7aW5zZXQtaW5saW5lLXN0YXJ0OjEwcHg7bWF4LWlubGluZS1zaXplOjQwJTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06cm90YXRlKC0zZGVnKTt6LWluZGV4Oi0xfS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fZ3JlZW5fZ3JhZGllbnQ6YWZ0ZXIsLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl95ZWxsb3dfZ3JhZGllbnQ6YWZ0ZXJ7aW5zZXQtaW5saW5lOmF1dG8gMTBweDt0cmFuc2Zvcm06cm90YXRlKDNkZWcpfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAudmFsaWRhdGlvbl9tZXNzYWdlLS1oaWRkZW4tb24tZW1wdHk6ZW1wdHl7ZGlzcGxheTpub25lfS5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiAuZ2Zvcm0tbG9hZGVyey13ZWJraXQtYm9yZGVyLWFmdGVyOjEuMWVtIHNvbGlkICMwMDA7LXdlYmtpdC1ib3JkZXItYmVmb3JlOjEuMWVtIHNvbGlkICNmZmY7LXdlYmtpdC1ib3JkZXItZW5kOjEuMWVtIHNvbGlkICNmZmY7LXdlYmtpdC1ib3JkZXItc3RhcnQ6MS4xZW0gc29saWQgIzAwMDthbGlnbi1zZWxmOmNlbnRlcjthbmltYXRpb246Z2Zvcm1Mb2FkZXIgMS4xcyBsaW5lYXIgaW5maW5pdGU7YmxvY2stc2l6ZToxMGVtO2JvcmRlci1ibG9jay1lbmQ6MS4xZW0gc29saWQgIzAwMDtib3JkZXItYmxvY2stc3RhcnQ6MS4xZW0gc29saWQgI2ZmZjtib3JkZXItaW5saW5lLWVuZDoxLjFlbSBzb2xpZCAjZmZmO2JvcmRlci1pbmxpbmUtc3RhcnQ6MS4xZW0gc29saWQgIzAwMDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MnB4O2lubGluZS1zaXplOjEwZW07cG9zaXRpb246cmVsYXRpdmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9QGtleWZyYW1lcyBnZm9ybUxvYWRlcnswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0="}},"time_used":320,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":320,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/js/jquery.sticky-sidebar.js?ver=2.6.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.851Z","timestamp":1785145403851,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/js/jquery.sticky-sidebar.js?ver=2.6.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-4238\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":16952,"size_decoded":4323,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (2336)","md5":"6422e87b67d4c17b7f2fe5b64d0fee5a","sha1":"57f5d7a1c02282ef509f288489aac1e5f6eb579f","sha256":"d1ceaa1c95b6a254d50c99eb7a2212a972e0cf0b791910f458c7f3536c1643f8","sha512":"bfe972ad99cb523795b1d4a1692c78bb0e9c948cd17f27393e7b4312e81f0183365d9a3f74f9e10f1c0901b26e03bbbcba09e4760a45ef7cb5d9d1d90e51dc22","ssdeep":"192:cUytjBjGmaqHmByUFDi/OgqYVNUjyCDBk1D9TgsNb8mbYJuSEahR8R6:H4jGmaq+s20VeBS1D9TMmtohR8R6","tlshash":"e272e60a37602a3101da903ad0df82dc6575dd7b8294e89cbd3cebc59e6474a82d5bfc","first_seen":"2023-03-12T06:13:14Z","last_seen":"2026-08-09T08:18:56.765999Z","times_seen":116,"resource_available":true,"data":"KGZ1bmN0aW9uKGdsb2JhbCxmYWN0b3J5KXt0eXBlb2YgZXhwb3J0cz09PSdvYmplY3QnJiZ0eXBlb2YgbW9kdWxlIT09J3VuZGVmaW5lZCc/bW9kdWxlLmV4cG9ydHM9ZmFjdG9yeSgpOnR5cGVvZiBkZWZpbmU9PT0nZnVuY3Rpb24nJiZkZWZpbmUuYW1kP2RlZmluZShmYWN0b3J5KTooZ2xvYmFsLlN0aWNreVNpZGViYXI9ZmFjdG9yeSgpKTt9KHRoaXMsKGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO3ZhciBjb21tb25qc0dsb2JhbD10eXBlb2Ygd2luZG93IT09J3VuZGVmaW5lZCc/d2luZG93OnR5cGVvZiBnbG9iYWwhPT0ndW5kZWZpbmVkJz9nbG9iYWw6dHlwZW9mIHNlbGYhPT0ndW5kZWZpbmVkJz9zZWxmOnt9O2Z1bmN0aW9uIHVud3JhcEV4cG9ydHMoeCl7cmV0dXJuIHgmJnguX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsJ2RlZmF1bHQnKT94WydkZWZhdWx0J106eDt9CmZ1bmN0aW9uIGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZuLG1vZHVsZSl7cmV0dXJuIG1vZHVsZT17ZXhwb3J0czp7fX0sZm4obW9kdWxlLG1vZHVsZS5leHBvcnRzKSxtb2R1bGUuZXhwb3J0czt9CnZhciBzdGlja3lTaWRlYmFyPWNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzKXsoZnVuY3Rpb24oZ2xvYmFsLGZhY3Rvcnkpe2lmKHR5cGVvZiB1bmRlZmluZWQ9PT0iZnVuY3Rpb24iJiZ1bmRlZmluZWQuYW1kKXt1bmRlZmluZWQoWydleHBvcnRzJ10sZmFjdG9yeSk7fWVsc2V7ZmFjdG9yeShleHBvcnRzKTt9fSkoY29tbW9uanNHbG9iYWwsZnVuY3Rpb24oZXhwb3J0cyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTp0cnVlfSk7ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLENvbnN0cnVjdG9yKXtpZighKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKTt9fQp2YXIgX2NyZWF0ZUNsYXNzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQscHJvcHMpe2Zvcih2YXIgaT0wO2k8cHJvcHMubGVuZ3RoO2krKyl7dmFyIGRlc2NyaXB0b3I9cHJvcHNbaV07ZGVzY3JpcHRvci5lbnVtZXJhYmxlPWRlc2NyaXB0b3IuZW51bWVyYWJsZXx8ZmFsc2U7ZGVzY3JpcHRvci5jb25maWd1cmFibGU9dHJ1ZTtpZigidmFsdWUiaW4gZGVzY3JpcHRvcilkZXNjcmlwdG9yLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxkZXNjcmlwdG9yLmtleSxkZXNjcmlwdG9yKTt9fQpyZXR1cm4gZnVuY3Rpb24oQ29uc3RydWN0b3IscHJvdG9Qcm9wcyxzdGF0aWNQcm9wcyl7aWYocHJvdG9Qcm9wcylkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSxwcm90b1Byb3BzKTtpZihzdGF0aWNQcm9wcylkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLHN0YXRpY1Byb3BzKTtyZXR1cm4gQ29uc3RydWN0b3I7fTt9KCk7dmFyIFN0aWNreVNpZGViYXI9ZnVuY3Rpb24oKXt2YXIgRVZFTlRfS0VZPScuc3RpY2t5U2lkZWJhcic7dmFyIERFRkFVTFRTPXt0b3BTcGFjaW5nOjAsYm90dG9tU3BhY2luZzowLGNvbnRhaW5lclNlbGVjdG9yOmZhbHNlLGlubmVyV3JhcHBlclNlbGVjdG9yOicuaW5uZXItd3JhcHBlci1zdGlja3knLHN0aWNreUNsYXNzOidpcy1hZmZpeGVkJyxyZXNpemVTZW5zb3I6dHJ1ZSxtaW5XaWR0aDpmYWxzZX07dmFyIFN0aWNreVNpZGViYXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBTdGlja3lTaWRlYmFyKHNpZGViYXIpe3ZhciBfdGhpcz10aGlzO3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTp7fTtfY2xhc3NDYWxsQ2hlY2sodGhpcyxTdGlja3lTaWRlYmFyKTt0aGlzLm9wdGlvbnM9U3RpY2t5U2lkZWJhci5leHRlbmQoREVGQVVMVFMsb3B0aW9ucyk7dGhpcy5zaWRlYmFyPSdzdHJpbmcnPT09dHlwZW9mIHNpZGViYXI/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzaWRlYmFyKTpzaWRlYmFyO2lmKCd1bmRlZmluZWQnPT09dHlwZW9mIHRoaXMuc2lkZWJhcil0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNwZWNpZmljIHNpZGViYXIgZWxlbWVudC4iKTt0aGlzLnNpZGViYXJJbm5lcj1mYWxzZTt0aGlzLmNvbnRhaW5lcj10aGlzLnNpZGViYXIucGFyZW50RWxlbWVudDt0aGlzLmFmZml4ZWRUeXBlPSdTVEFUSUMnO3RoaXMuZGlyZWN0aW9uPSdkb3duJzt0aGlzLnN1cHBvcnQ9e3RyYW5zZm9ybTpmYWxzZSx0cmFuc2Zvcm0zZDpmYWxzZX07dGhpcy5faW5pdGlhbGl6ZWQ9ZmFsc2U7dGhpcy5fcmVTdHlsZT1mYWxzZTt0aGlzLl9icmVha3BvaW50PWZhbHNlO3RoaXMuZGltZW5zaW9ucz17dHJhbnNsYXRlWTowLG1heFRyYW5zbGF0ZVk6MCx0b3BTcGFjaW5nOjAsbGFzdFRvcFNwYWNpbmc6MCxib3R0b21TcGFjaW5nOjAsbGFzdEJvdHRvbVNwYWNpbmc6MCxzaWRlYmFySGVpZ2h0OjAsc2lkZWJhcldpZHRoOjAsY29udGFpbmVyVG9wOjAsY29udGFpbmVySGVpZ2h0OjAsdmlld3BvcnRIZWlnaHQ6MCx2aWV3cG9ydFRvcDowLGxhc3RWaWV3cG9ydFRvcDowfTtbJ2hhbmRsZUV2ZW50J10uZm9yRWFjaChmdW5jdGlvbihtZXRob2Qpe190aGlzW21ldGhvZF09X3RoaXNbbWV0aG9kXS5iaW5kKF90aGlzKTt9KTt0aGlzLmluaXRpYWxpemUoKTt9Cl9jcmVhdGVDbGFzcyhTdGlja3lTaWRlYmFyLFt7a2V5Oidpbml0aWFsaXplJyx2YWx1ZTpmdW5jdGlvbiBpbml0aWFsaXplKCl7dmFyIF90aGlzMj10aGlzO3RoaXMuX3NldFN1cHBvcnRGZWF0dXJlcygpO2lmKHRoaXMub3B0aW9ucy5pbm5lcldyYXBwZXJTZWxlY3Rvcil7dGhpcy5zaWRlYmFySW5uZXI9dGhpcy5zaWRlYmFyLnF1ZXJ5U2VsZWN0b3IodGhpcy5vcHRpb25zLmlubmVyV3JhcHBlclNlbGVjdG9yKTtpZihudWxsPT09dGhpcy5zaWRlYmFySW5uZXIpdGhpcy5zaWRlYmFySW5uZXI9ZmFsc2U7fQppZighdGhpcy5zaWRlYmFySW5uZXIpe3ZhciB3cmFwcGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3dyYXBwZXIuc2V0QXR0cmlidXRlKCdjbGFzcycsJ2lubmVyLXdyYXBwZXItc3RpY2t5Jyk7dGhpcy5zaWRlYmFyLmFwcGVuZENoaWxkKHdyYXBwZXIpO3doaWxlKHRoaXMuc2lkZWJhci5maXJzdENoaWxkIT13cmFwcGVyKXt3cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuc2lkZWJhci5maXJzdENoaWxkKTt9dGhpcy5zaWRlYmFySW5uZXI9dGhpcy5zaWRlYmFyLnF1ZXJ5U2VsZWN0b3IoJy5pbm5lci13cmFwcGVyLXN0aWNreScpO30KaWYodGhpcy5vcHRpb25zLmNvbnRhaW5lclNlbGVjdG9yKXt2YXIgY29udGFpbmVycz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMub3B0aW9ucy5jb250YWluZXJTZWxlY3Rvcik7Y29udGFpbmVycz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250YWluZXJzKTtjb250YWluZXJzLmZvckVhY2goZnVuY3Rpb24oY29udGFpbmVyLGl0ZW0pe2lmKCFjb250YWluZXIuY29udGFpbnMoX3RoaXMyLnNpZGViYXIpKXJldHVybjtfdGhpczIuY29udGFpbmVyPWNvbnRhaW5lcjt9KTtpZighY29udGFpbmVycy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUaGUgY29udGFpbmVyIGRvZXMgbm90IGNvbnRhaW5zIG9uIHRoZSBzaWRlYmFyLiIpO30KaWYoJ2Z1bmN0aW9uJyE9PXR5cGVvZiB0aGlzLm9wdGlvbnMudG9wU3BhY2luZyl0aGlzLm9wdGlvbnMudG9wU3BhY2luZz1wYXJzZUludCh0aGlzLm9wdGlvbnMudG9wU3BhY2luZyl8fDA7aWYoJ2Z1bmN0aW9uJyE9PXR5cGVvZiB0aGlzLm9wdGlvbnMuYm90dG9tU3BhY2luZyl0aGlzLm9wdGlvbnMuYm90dG9tU3BhY2luZz1wYXJzZUludCh0aGlzLm9wdGlvbnMuYm90dG9tU3BhY2luZyl8fDA7dGhpcy5fd2lkdGhCcmVha3BvaW50KCk7dGhpcy5jYWxjRGltZW5zaW9ucygpO3RoaXMuc3RpY2t5UG9zaXRpb24oKTt0aGlzLmJpbmRFdmVudHMoKTt0aGlzLl9pbml0aWFsaXplZD10cnVlO319LHtrZXk6J2JpbmRFdmVudHMnLHZhbHVlOmZ1bmN0aW9uIGJpbmRFdmVudHMoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0aGlzLHtwYXNzaXZlOnRydWUsY2FwdHVyZTpmYWxzZX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLHRoaXMse3Bhc3NpdmU6dHJ1ZSxjYXB0dXJlOmZhbHNlfSk7dGhpcy5zaWRlYmFyLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZScrRVZFTlRfS0VZLHRoaXMpO2lmKHRoaXMub3B0aW9ucy5yZXNpemVTZW5zb3ImJid1bmRlZmluZWQnIT09dHlwZW9mIFJlc2l6ZVNlbnNvcil7bmV3IFJlc2l6ZVNlbnNvcih0aGlzLnNpZGViYXJJbm5lcix0aGlzLmhhbmRsZUV2ZW50KTtuZXcgUmVzaXplU2Vuc29yKHRoaXMuY29udGFpbmVyLHRoaXMuaGFuZGxlRXZlbnQpO319fSx7a2V5OidoYW5kbGVFdmVudCcsdmFsdWU6ZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQpe3RoaXMudXBkYXRlU3RpY2t5KGV2ZW50KTt9fSx7a2V5OidjYWxjRGltZW5zaW9ucycsdmFsdWU6ZnVuY3Rpb24gY2FsY0RpbWVuc2lvbnMoKXtpZih0aGlzLl9icmVha3BvaW50KXJldHVybjt2YXIgZGltcz10aGlzLmRpbWVuc2lvbnM7ZGltcy5jb250YWluZXJUb3A9U3RpY2t5U2lkZWJhci5vZmZzZXRSZWxhdGl2ZSh0aGlzLmNvbnRhaW5lcikudG9wO2RpbXMuY29udGFpbmVySGVpZ2h0PXRoaXMuY29udGFpbmVyLmNsaWVudEhlaWdodDtkaW1zLmNvbnRhaW5lckJvdHRvbT1kaW1zLmNvbnRhaW5lclRvcCtkaW1zLmNvbnRhaW5lckhlaWdodDtkaW1zLnNpZGViYXJIZWlnaHQ9dGhpcy5zaWRlYmFySW5uZXIub2Zmc2V0SGVpZ2h0O2RpbXMuc2lkZWJhcldpZHRoPXRoaXMuc2lkZWJhcklubmVyLm9mZnNldFdpZHRoO2RpbXMudmlld3BvcnRIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0O2RpbXMubWF4VHJhbnNsYXRlWT1kaW1zLmNvbnRhaW5lckhlaWdodC1kaW1zLnNpZGViYXJIZWlnaHQ7dGhpcy5fY2FsY0RpbWVuc2lvbnNXaXRoU2Nyb2xsKCk7fX0se2tleTonX2NhbGNEaW1lbnNpb25zV2l0aFNjcm9sbCcsdmFsdWU6ZnVuY3Rpb24gX2NhbGNEaW1lbnNpb25zV2l0aFNjcm9sbCgpe3ZhciBkaW1zPXRoaXMuZGltZW5zaW9ucztkaW1zLnNpZGViYXJMZWZ0PVN0aWNreVNpZGViYXIub2Zmc2V0UmVsYXRpdmUodGhpcy5zaWRlYmFyKS5sZWZ0O2RpbXMudmlld3BvcnRUb3A9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7ZGltcy52aWV3cG9ydEJvdHRvbT1kaW1zLnZpZXdwb3J0VG9wK2RpbXMudmlld3BvcnRIZWlnaHQ7ZGltcy52aWV3cG9ydExlZnQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDtkaW1zLnRvcFNwYWNpbmc9dGhpcy5vcHRpb25zLnRvcFNwYWNpbmc7ZGltcy5ib3R0b21TcGFjaW5nPXRoaXMub3B0aW9ucy5ib3R0b21TcGFjaW5nO2lmKCdmdW5jdGlvbic9PT10eXBlb2YgZGltcy50b3BTcGFjaW5nKWRpbXMudG9wU3BhY2luZz1wYXJzZUludChkaW1zLnRvcFNwYWNpbmcodGhpcy5zaWRlYmFyKSl8fDA7aWYoJ2Z1bmN0aW9uJz09PXR5cGVvZiBkaW1zLmJvdHRvbVNwYWNpbmcpZGltcy5ib3R0b21TcGFjaW5nPXBhcnNlSW50KGRpbXMuYm90dG9tU3BhY2luZyh0aGlzLnNpZGViYXIpKXx8MDtpZignVklFV1BPUlQtVE9QJz09PXRoaXMuYWZmaXhlZFR5cGUpe2lmKGRpbXMudG9wU3BhY2luZzxkaW1zLmxhc3RUb3BTcGFjaW5nKXtkaW1zLnRyYW5zbGF0ZVkrPWRpbXMubGFzdFRvcFNwYWNpbmctZGltcy50b3BTcGFjaW5nO3RoaXMuX3JlU3R5bGU9dHJ1ZTt9fWVsc2UgaWYoJ1ZJRVdQT1JULUJPVFRPTSc9PT10aGlzLmFmZml4ZWRUeXBlKXtpZihkaW1zLmJvdHRvbVNwYWNpbmc8ZGltcy5sYXN0Qm90dG9tU3BhY2luZyl7ZGltcy50cmFuc2xhdGVZKz1kaW1zLmxhc3RCb3R0b21TcGFjaW5nLWRpbXMuYm90dG9tU3BhY2luZzt0aGlzLl9yZVN0eWxlPXRydWU7fX0KZGltcy5sYXN0VG9wU3BhY2luZz1kaW1zLnRvcFNwYWNpbmc7ZGltcy5sYXN0Qm90dG9tU3BhY2luZz1kaW1zLmJvdHRvbVNwYWNpbmc7fX0se2tleTonaXNTaWRlYmFyRml0c1ZpZXdwb3J0Jyx2YWx1ZTpmdW5jdGlvbiBpc1NpZGViYXJGaXRzVmlld3BvcnQoKXt2YXIgZGltcz10aGlzLmRpbWVuc2lvbnM7dmFyIG9mZnNldD10aGlzLnNjcm9sbERpcmVjdGlvbj09PSdkb3duJz9kaW1zLmxhc3RCb3R0b21TcGFjaW5nOmRpbXMubGFzdFRvcFNwYWNpbmc7cmV0dXJuIHRoaXMuZGltZW5zaW9ucy5zaWRlYmFySGVpZ2h0K29mZnNldDx0aGlzLmRpbWVuc2lvbnMudmlld3BvcnRIZWlnaHQ7fX0se2tleTonb2JzZXJ2ZVNjcm9sbERpcicsdmFsdWU6ZnVuY3Rpb24gb2JzZXJ2ZVNjcm9sbERpcigpe3ZhciBkaW1zPXRoaXMuZGltZW5zaW9ucztpZihkaW1zLmxhc3RWaWV3cG9ydFRvcD09PWRpbXMudmlld3BvcnRUb3ApcmV0dXJuO3ZhciBmdXJ0aGVzdD0nZG93bic9PT10aGlzLmRpcmVjdGlvbj9NYXRoLm1pbjpNYXRoLm1heDtpZihkaW1zLnZpZXdwb3J0VG9wPT09ZnVydGhlc3QoZGltcy52aWV3cG9ydFRvcCxkaW1zLmxhc3RWaWV3cG9ydFRvcCkpdGhpcy5kaXJlY3Rpb249J2Rvd24nPT09dGhpcy5kaXJlY3Rpb24/J3VwJzonZG93bic7fX0se2tleTonZ2V0QWZmaXhUeXBlJyx2YWx1ZTpmdW5jdGlvbiBnZXRBZmZpeFR5cGUoKXt0aGlzLl9jYWxjRGltZW5zaW9uc1dpdGhTY3JvbGwoKTt2YXIgZGltcz10aGlzLmRpbWVuc2lvbnM7dmFyIGNvbGxpZGVyVG9wPWRpbXMudmlld3BvcnRUb3ArZGltcy50b3BTcGFjaW5nO3ZhciBhZmZpeFR5cGU9dGhpcy5hZmZpeGVkVHlwZTtpZihjb2xsaWRlclRvcDw9ZGltcy5jb250YWluZXJUb3B8fGRpbXMuY29udGFpbmVySGVpZ2h0PD1kaW1zLnNpZGViYXJIZWlnaHQpe2RpbXMudHJhbnNsYXRlWT0wO2FmZml4VHlwZT0nU1RBVElDJzt9ZWxzZXthZmZpeFR5cGU9J3VwJz09PXRoaXMuZGlyZWN0aW9uP3RoaXMuX2dldEFmZml4VHlwZVNjcm9sbGluZ1VwKCk6dGhpcy5fZ2V0QWZmaXhUeXBlU2Nyb2xsaW5nRG93bigpO30KZGltcy50cmFuc2xhdGVZPU1hdGgubWF4KDAsZGltcy50cmFuc2xhdGVZKTtkaW1zLnRyYW5zbGF0ZVk9TWF0aC5taW4oZGltcy5jb250YWluZXJIZWlnaHQsZGltcy50cmFuc2xhdGVZKTtkaW1zLnRyYW5zbGF0ZVk9TWF0aC5yb3VuZChkaW1zLnRyYW5zbGF0ZVkpO2RpbXMubGFzdFZpZXdwb3J0VG9wPWRpbXMudmlld3BvcnRUb3A7cmV0dXJuIGFmZml4VHlwZTt9fSx7a2V5OidfZ2V0QWZmaXhUeXBlU2Nyb2xsaW5nRG93bicsdmFsdWU6ZnVuY3Rpb24gX2dldEFmZml4VHlwZVNjcm9sbGluZ0Rvd24oKXt2YXIgZGltcz10aGlzLmRpbWVuc2lvbnM7dmFyIHNpZGViYXJCb3R0b209ZGltcy5zaWRlYmFySGVpZ2h0K2RpbXMuY29udGFpbmVyVG9wO3ZhciBjb2xsaWRlclRvcD1kaW1zLnZpZXdwb3J0VG9wK2RpbXMudG9wU3BhY2luZzt2YXIgY29sbGlkZXJCb3R0b209ZGltcy52aWV3cG9ydEJvdHRvbS1kaW1zLmJvdHRvbVNwYWNpbmc7dmFyIGFmZml4VHlwZT10aGlzLmFmZml4ZWRUeXBlO2lmKHRoaXMuaXNTaWRlYmFyRml0c1ZpZXdwb3J0KCkpe2lmKGRpbXMuc2lkZWJhckhlaWdodCtjb2xsaWRlclRvcD49ZGltcy5jb250YWluZXJCb3R0b20pe2RpbXMudHJhbnNsYXRlWT1kaW1zLmNvbnRhaW5lckJvdHRvbS1zaWRlYmFyQm90dG9tO2FmZml4VHlwZT0nQ09OVEFJTkVSLUJPVFRPTSc7fWVsc2UgaWYoY29sbGlkZXJUb3A+PWRpbXMuY29udGFpbmVyVG9wKXtkaW1zLnRyYW5zbGF0ZVk9Y29sbGlkZXJUb3AtZGltcy5jb250YWluZXJUb3A7YWZmaXhUeXBlPSdWSUVXUE9SVC1UT1AnO319ZWxzZXtpZihkaW1zLmNvbnRhaW5lckJvdHRvbTw9Y29sbGlkZXJCb3R0b20pe2RpbXMudHJhbnNsYXRlWT1kaW1zLmNvbnRhaW5lckJvdHRvbS1zaWRlYmFyQm90dG9tO2FmZml4VHlwZT0nQ09OVEFJTkVSLUJPVFRPTSc7fWVsc2UgaWYoc2lkZWJhckJvdHRvbStkaW1zLnRyYW5zbGF0ZVk8PWNvbGxpZGVyQm90dG9tKXtkaW1zLnRyYW5zbGF0ZVk9Y29sbGlkZXJCb3R0b20tc2lkZWJhckJvdHRvbTthZmZpeFR5cGU9J1ZJRVdQT1JULUJPVFRPTSc7fWVsc2UgaWYoZGltcy5jb250YWluZXJUb3ArZGltcy50cmFuc2xhdGVZPD1jb2xsaWRlclRvcCYmMCE9PWRpbXMudHJhbnNsYXRlWSYmZGltcy5tYXhUcmFuc2xhdGVZIT09ZGltcy50cmFuc2xhdGVZKXthZmZpeFR5cGU9J1ZJRVdQT1JULVVOQk9UVE9NJzt9fQpyZXR1cm4gYWZmaXhUeXBlO319LHtrZXk6J19nZXRBZmZpeFR5cGVTY3JvbGxpbmdVcCcsdmFsdWU6ZnVuY3Rpb24gX2dldEFmZml4VHlwZVNjcm9sbGluZ1VwKCl7dmFyIGRpbXM9dGhpcy5kaW1lbnNpb25zO3ZhciBzaWRlYmFyQm90dG9tPWRpbXMuc2lkZWJhckhlaWdodCtkaW1zLmNvbnRhaW5lclRvcDt2YXIgY29sbGlkZXJUb3A9ZGltcy52aWV3cG9ydFRvcCtkaW1zLnRvcFNwYWNpbmc7dmFyIGNvbGxpZGVyQm90dG9tPWRpbXMudmlld3BvcnRCb3R0b20tZGltcy5ib3R0b21TcGFjaW5nO3ZhciBhZmZpeFR5cGU9dGhpcy5hZmZpeGVkVHlwZTtpZihjb2xsaWRlclRvcDw9ZGltcy50cmFuc2xhdGVZK2RpbXMuY29udGFpbmVyVG9wKXtkaW1zLnRyYW5zbGF0ZVk9Y29sbGlkZXJUb3AtZGltcy5jb250YWluZXJUb3A7YWZmaXhUeXBlPSdWSUVXUE9SVC1UT1AnO31lbHNlIGlmKGRpbXMuY29udGFpbmVyQm90dG9tPD1jb2xsaWRlckJvdHRvbSl7ZGltcy50cmFuc2xhdGVZPWRpbXMuY29udGFpbmVyQm90dG9tLXNpZGViYXJCb3R0b207YWZmaXhUeXBlPSdDT05UQUlORVItQk9UVE9NJzt9ZWxzZSBpZighdGhpcy5pc1NpZGViYXJGaXRzVmlld3BvcnQoKSl7aWYoZGltcy5jb250YWluZXJUb3A8PWNvbGxpZGVyVG9wJiYwIT09ZGltcy50cmFuc2xhdGVZJiZkaW1zLm1heFRyYW5zbGF0ZVkhPT1kaW1zLnRyYW5zbGF0ZVkpe2FmZml4VHlwZT0nVklFV1BPUlQtVU5CT1RUT00nO319CnJldHVybiBhZmZpeFR5cGU7fX0se2tleTonX2dldFN0eWxlJyx2YWx1ZTpmdW5jdGlvbiBfZ2V0U3R5bGUoYWZmaXhUeXBlKXtpZigndW5kZWZpbmVkJz09PXR5cGVvZiBhZmZpeFR5cGUpcmV0dXJuO3ZhciBzdHlsZT17aW5uZXI6e30sb3V0ZXI6e319O3ZhciBkaW1zPXRoaXMuZGltZW5zaW9ucztzd2l0Y2goYWZmaXhUeXBlKXtjYXNlICdWSUVXUE9SVC1UT1AnOnN0eWxlLmlubmVyPXtwb3NpdGlvbjonZml4ZWQnLHRvcDpkaW1zLnRvcFNwYWNpbmcsbGVmdDpkaW1zLnNpZGViYXJMZWZ0LWRpbXMudmlld3BvcnRMZWZ0LHdpZHRoOmRpbXMuc2lkZWJhcldpZHRofTticmVhaztjYXNlICdWSUVXUE9SVC1CT1RUT00nOnN0eWxlLmlubmVyPXtwb3NpdGlvbjonZml4ZWQnLHRvcDonYXV0bycsbGVmdDpkaW1zLnNpZGViYXJMZWZ0LGJvdHRvbTpkaW1zLmJvdHRvbVNwYWNpbmcsd2lkdGg6ZGltcy5zaWRlYmFyV2lkdGh9O2JyZWFrO2Nhc2UgJ0NPTlRBSU5FUi1CT1RUT00nOmNhc2UgJ1ZJRVdQT1JULVVOQk9UVE9NJzp2YXIgdHJhbnNsYXRlPXRoaXMuX2dldFRyYW5zbGF0ZSgwLGRpbXMudHJhbnNsYXRlWSsncHgnKTtpZih0cmFuc2xhdGUpc3R5bGUuaW5uZXI9e3RyYW5zZm9ybTp0cmFuc2xhdGV9O2Vsc2Ugc3R5bGUuaW5uZXI9e3Bvc2l0aW9uOidhYnNvbHV0ZScsdG9wOmRpbXMudHJhbnNsYXRlWSx3aWR0aDpkaW1zLnNpZGViYXJXaWR0aH07YnJlYWs7fQpzd2l0Y2goYWZmaXhUeXBlKXtjYXNlICdWSUVXUE9SVC1UT1AnOmNhc2UgJ1ZJRVdQT1JULUJPVFRPTSc6Y2FzZSAnVklFV1BPUlQtVU5CT1RUT00nOmNhc2UgJ0NPTlRBSU5FUi1CT1RUT00nOnN0eWxlLm91dGVyPXtoZWlnaHQ6ZGltcy5zaWRlYmFySGVpZ2h0LHBvc2l0aW9uOidyZWxhdGl2ZSd9O2JyZWFrO30Kc3R5bGUub3V0ZXI9U3RpY2t5U2lkZWJhci5leHRlbmQoe2hlaWdodDonJyxwb3NpdGlvbjonJ30sc3R5bGUub3V0ZXIpO3N0eWxlLmlubmVyPVN0aWNreVNpZGViYXIuZXh0ZW5kKHtwb3NpdGlvbjoncmVsYXRpdmUnLHRvcDonJyxsZWZ0OicnLGJvdHRvbTonJyx3aWR0aDonJyx0cmFuc2Zvcm06Jyd9LHN0eWxlLmlubmVyKTtyZXR1cm4gc3R5bGU7fX0se2tleTonc3RpY2t5UG9zaXRpb24nLHZhbHVlOmZ1bmN0aW9uIHN0aWNreVBvc2l0aW9uKGZvcmNlKXtpZih0aGlzLl9icmVha3BvaW50KXJldHVybjtmb3JjZT10aGlzLl9yZVN0eWxlfHxmb3JjZXx8ZmFsc2U7dmFyIG9mZnNldFRvcD10aGlzLm9wdGlvbnMudG9wU3BhY2luZzt2YXIgb2Zmc2V0Qm90dG9tPXRoaXMub3B0aW9ucy5ib3R0b21TcGFjaW5nO3ZhciBhZmZpeFR5cGU9dGhpcy5nZXRBZmZpeFR5cGUoKTt2YXIgc3R5bGU9dGhpcy5fZ2V0U3R5bGUoYWZmaXhUeXBlKTtpZigodGhpcy5hZmZpeGVkVHlwZSE9YWZmaXhUeXBlfHxmb3JjZSkmJmFmZml4VHlwZSl7dmFyIGFmZml4RXZlbnQ9J2FmZml4LicrYWZmaXhUeXBlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgndmlld3BvcnQtJywnJykrRVZFTlRfS0VZO1N0aWNreVNpZGViYXIuZXZlbnRUcmlnZ2VyKHRoaXMuc2lkZWJhcixhZmZpeEV2ZW50KTtpZignU1RBVElDJz09PWFmZml4VHlwZSlTdGlja3lTaWRlYmFyLnJlbW92ZUNsYXNzKHRoaXMuc2lkZWJhcix0aGlzLm9wdGlvbnMuc3RpY2t5Q2xhc3MpO2Vsc2UgU3RpY2t5U2lkZWJhci5hZGRDbGFzcyh0aGlzLnNpZGViYXIsdGhpcy5vcHRpb25zLnN0aWNreUNsYXNzKTtmb3IodmFyIGtleSBpbiBzdHlsZS5vdXRlcil7dmFyIHVuaXQ9J251bWJlcic9PT10eXBlb2Ygc3R5bGUub3V0ZXJba2V5XT8ncHgnOicnO3RoaXMuc2lkZWJhci5zdHlsZVtrZXldPXN0eWxlLm91dGVyW2tleV0rdW5pdDt9CmZvcih2YXIgX2tleSBpbiBzdHlsZS5pbm5lcil7dmFyIF91bml0PSdudW1iZXInPT09dHlwZW9mIHN0eWxlLmlubmVyW19rZXldPydweCc6Jyc7dGhpcy5zaWRlYmFySW5uZXIuc3R5bGVbX2tleV09c3R5bGUuaW5uZXJbX2tleV0rX3VuaXQ7fQp2YXIgYWZmaXhlZEV2ZW50PSdhZmZpeGVkLicrYWZmaXhUeXBlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgndmlld3BvcnQtJywnJykrRVZFTlRfS0VZO1N0aWNreVNpZGViYXIuZXZlbnRUcmlnZ2VyKHRoaXMuc2lkZWJhcixhZmZpeGVkRXZlbnQpO31lbHNle2lmKHRoaXMuX2luaXRpYWxpemVkKXRoaXMuc2lkZWJhcklubmVyLnN0eWxlLmxlZnQ9c3R5bGUuaW5uZXIubGVmdDt9CnRoaXMuYWZmaXhlZFR5cGU9YWZmaXhUeXBlO319LHtrZXk6J193aWR0aEJyZWFrcG9pbnQnLHZhbHVlOmZ1bmN0aW9uIF93aWR0aEJyZWFrcG9pbnQoKXtpZih3aW5kb3cuaW5uZXJXaWR0aDw9dGhpcy5vcHRpb25zLm1pbldpZHRoKXt0aGlzLl9icmVha3BvaW50PXRydWU7dGhpcy5hZmZpeGVkVHlwZT0nU1RBVElDJzt0aGlzLnNpZGViYXIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1N0aWNreVNpZGViYXIucmVtb3ZlQ2xhc3ModGhpcy5zaWRlYmFyLHRoaXMub3B0aW9ucy5zdGlja3lDbGFzcyk7dGhpcy5zaWRlYmFySW5uZXIucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO31lbHNle3RoaXMuX2JyZWFrcG9pbnQ9ZmFsc2U7fX19LHtrZXk6J3VwZGF0ZVN0aWNreScsdmFsdWU6ZnVuY3Rpb24gdXBkYXRlU3RpY2t5KCl7dmFyIF90aGlzMz10aGlzO3ZhciBldmVudD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e307aWYodGhpcy5fcnVubmluZylyZXR1cm47dGhpcy5fcnVubmluZz10cnVlOyhmdW5jdGlvbihldmVudFR5cGUpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3N3aXRjaChldmVudFR5cGUpe2Nhc2UgJ3Njcm9sbCc6X3RoaXMzLl9jYWxjRGltZW5zaW9uc1dpdGhTY3JvbGwoKTtfdGhpczMub2JzZXJ2ZVNjcm9sbERpcigpO190aGlzMy5zdGlja3lQb3NpdGlvbigpO2JyZWFrO2Nhc2UgJ3Jlc2l6ZSc6ZGVmYXVsdDpfdGhpczMuX3dpZHRoQnJlYWtwb2ludCgpO190aGlzMy5jYWxjRGltZW5zaW9ucygpO190aGlzMy5zdGlja3lQb3NpdGlvbih0cnVlKTticmVhazt9Cl90aGlzMy5fcnVubmluZz1mYWxzZTt9KTt9KShldmVudC50eXBlKTt9fSx7a2V5Oidfc2V0U3VwcG9ydEZlYXR1cmVzJyx2YWx1ZTpmdW5jdGlvbiBfc2V0U3VwcG9ydEZlYXR1cmVzKCl7dmFyIHN1cHBvcnQ9dGhpcy5zdXBwb3J0O3N1cHBvcnQudHJhbnNmb3JtPVN0aWNreVNpZGViYXIuc3VwcG9ydFRyYW5zZm9ybSgpO3N1cHBvcnQudHJhbnNmb3JtM2Q9U3RpY2t5U2lkZWJhci5zdXBwb3J0VHJhbnNmb3JtKHRydWUpO319LHtrZXk6J19nZXRUcmFuc2xhdGUnLHZhbHVlOmZ1bmN0aW9uIF9nZXRUcmFuc2xhdGUoKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06MDt2YXIgeD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMV06MDt2YXIgej1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMl06MDtpZih0aGlzLnN1cHBvcnQudHJhbnNmb3JtM2QpcmV0dXJuICd0cmFuc2xhdGUzZCgnK3krJywgJyt4KycsICcreisnKSc7ZWxzZSBpZih0aGlzLnN1cHBvcnQudHJhbnNsYXRlKXJldHVybiAndHJhbnNsYXRlKCcreSsnLCAnK3grJyknO2Vsc2UgcmV0dXJuIGZhbHNlO319LHtrZXk6J2Rlc3Ryb3knLHZhbHVlOmZ1bmN0aW9uIGRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0aGlzLHtjYXB0dXJlOmZhbHNlfSk7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdGhpcyx7Y2FwdHVyZTpmYWxzZX0pO3RoaXMuc2lkZWJhci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5zdGlja3lDbGFzcyk7dGhpcy5zaWRlYmFyLnN0eWxlLm1pbkhlaWdodD0nJzt0aGlzLnNpZGViYXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigndXBkYXRlJytFVkVOVF9LRVksdGhpcyk7dmFyIHN0eWxlUmVzZXQ9e2lubmVyOnt9LG91dGVyOnt9fTtzdHlsZVJlc2V0LmlubmVyPXtwb3NpdGlvbjonJyx0b3A6JycsbGVmdDonJyxib3R0b206Jycsd2lkdGg6JycsdHJhbnNmb3JtOicnfTtzdHlsZVJlc2V0Lm91dGVyPXtoZWlnaHQ6JycscG9zaXRpb246Jyd9O2Zvcih2YXIga2V5IGluIHN0eWxlUmVzZXQub3V0ZXIpe3RoaXMuc2lkZWJhci5zdHlsZVtrZXldPXN0eWxlUmVzZXQub3V0ZXJba2V5XTt9Zm9yKHZhciBfa2V5MiBpbiBzdHlsZVJlc2V0LmlubmVyKXt0aGlzLnNpZGViYXJJbm5lci5zdHlsZVtfa2V5Ml09c3R5bGVSZXNldC5pbm5lcltfa2V5Ml07fWlmKHRoaXMub3B0aW9ucy5yZXNpemVTZW5zb3ImJid1bmRlZmluZWQnIT09dHlwZW9mIFJlc2l6ZVNlbnNvcil7UmVzaXplU2Vuc29yLmRldGFjaCh0aGlzLnNpZGViYXJJbm5lcix0aGlzLmhhbmRsZUV2ZW50KTtSZXNpemVTZW5zb3IuZGV0YWNoKHRoaXMuY29udGFpbmVyLHRoaXMuaGFuZGxlRXZlbnQpO319fV0sW3trZXk6J3N1cHBvcnRUcmFuc2Zvcm0nLHZhbHVlOmZ1bmN0aW9uIHN1cHBvcnRUcmFuc2Zvcm0odHJhbnNmb3JtM2Qpe3ZhciByZXN1bHQ9ZmFsc2UscHJvcGVydHk9dHJhbnNmb3JtM2Q/J3BlcnNwZWN0aXZlJzondHJhbnNmb3JtJyx1cHBlcj1wcm9wZXJ0eS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStwcm9wZXJ0eS5zbGljZSgxKSxwcmVmaXhlcz1bJ1dlYmtpdCcsJ01veicsJ08nLCdtcyddLHN1cHBvcnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3VwcG9ydCcpLHN0eWxlPXN1cHBvcnQuc3R5bGU7KHByb3BlcnR5KycgJytwcmVmaXhlcy5qb2luKHVwcGVyKycgJykrdXBwZXIpLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSxpKXtpZihzdHlsZVtwcm9wZXJ0eV0hPT11bmRlZmluZWQpe3Jlc3VsdD1wcm9wZXJ0eTtyZXR1cm4gZmFsc2U7fX0pO3JldHVybiByZXN1bHQ7fX0se2tleTonZXZlbnRUcmlnZ2VyJyx2YWx1ZTpmdW5jdGlvbiBldmVudFRyaWdnZXIoZWxlbWVudCxldmVudE5hbWUsZGF0YSl7dHJ5e3ZhciBldmVudD1uZXcgQ3VzdG9tRXZlbnQoZXZlbnROYW1lLHtkZXRhaWw6ZGF0YX0pO31jYXRjaChlKXt2YXIgZXZlbnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7ZXZlbnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50TmFtZSx0cnVlLHRydWUsZGF0YSk7fQplbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO319LHtrZXk6J2V4dGVuZCcsdmFsdWU6ZnVuY3Rpb24gZXh0ZW5kKGRlZmF1bHRzLG9wdGlvbnMpe3ZhciByZXN1bHRzPXt9O2Zvcih2YXIga2V5IGluIGRlZmF1bHRzKXtpZigndW5kZWZpbmVkJyE9PXR5cGVvZiBvcHRpb25zW2tleV0pcmVzdWx0c1trZXldPW9wdGlvbnNba2V5XTtlbHNlIHJlc3VsdHNba2V5XT1kZWZhdWx0c1trZXldO30KcmV0dXJuIHJlc3VsdHM7fX0se2tleTonb2Zmc2V0UmVsYXRpdmUnLHZhbHVlOmZ1bmN0aW9uIG9mZnNldFJlbGF0aXZlKGVsZW1lbnQpe3ZhciByZXN1bHQ9e2xlZnQ6MCx0b3A6MH07ZG97dmFyIG9mZnNldFRvcD1lbGVtZW50Lm9mZnNldFRvcDt2YXIgb2Zmc2V0TGVmdD1lbGVtZW50Lm9mZnNldExlZnQ7aWYoIWlzTmFOKG9mZnNldFRvcCkpcmVzdWx0LnRvcCs9b2Zmc2V0VG9wO2lmKCFpc05hTihvZmZzZXRMZWZ0KSlyZXN1bHQubGVmdCs9b2Zmc2V0TGVmdDtlbGVtZW50PSdCT0RZJz09PWVsZW1lbnQudGFnTmFtZT9lbGVtZW50LnBhcmVudEVsZW1lbnQ6ZWxlbWVudC5vZmZzZXRQYXJlbnQ7fXdoaWxlKGVsZW1lbnQpO3JldHVybiByZXN1bHQ7fX0se2tleTonYWRkQ2xhc3MnLHZhbHVlOmZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsY2xhc3NOYW1lKXtpZighU3RpY2t5U2lkZWJhci5oYXNDbGFzcyhlbGVtZW50LGNsYXNzTmFtZSkpe2lmKGVsZW1lbnQuY2xhc3NMaXN0KWVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO2Vsc2UgZWxlbWVudC5jbGFzc05hbWUrPScgJytjbGFzc05hbWU7fX19LHtrZXk6J3JlbW92ZUNsYXNzJyx2YWx1ZTpmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LGNsYXNzTmFtZSl7aWYoU3RpY2t5U2lkZWJhci5oYXNDbGFzcyhlbGVtZW50LGNsYXNzTmFtZSkpe2lmKGVsZW1lbnQuY2xhc3NMaXN0KWVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO2Vsc2UgZWxlbWVudC5jbGFzc05hbWU9ZWxlbWVudC5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCcoXnxcXGIpJytjbGFzc05hbWUuc3BsaXQoJyAnKS5qb2luKCd8JykrJyhcXGJ8JCknLCdnaScpLCcgJyk7fX19LHtrZXk6J2hhc0NsYXNzJyx2YWx1ZTpmdW5jdGlvbiBoYXNDbGFzcyhlbGVtZW50LGNsYXNzTmFtZSl7aWYoZWxlbWVudC5jbGFzc0xpc3QpcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSk7ZWxzZSByZXR1cm4gbmV3IFJlZ0V4cCgnKF58ICknK2NsYXNzTmFtZSsnKCB8JCknLCdnaScpLnRlc3QoZWxlbWVudC5jbGFzc05hbWUpO319LHtrZXk6J2RlZmF1bHRzJyxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gREVGQVVMVFM7fX1dKTtyZXR1cm4gU3RpY2t5U2lkZWJhcjt9KCk7cmV0dXJuIFN0aWNreVNpZGViYXI7fSgpO2V4cG9ydHMuZGVmYXVsdD1TdGlja3lTaWRlYmFyO3dpbmRvdy5TdGlja3lTaWRlYmFyPVN0aWNreVNpZGViYXI7fSk7fSk7dW53cmFwRXhwb3J0cyhzdGlja3lTaWRlYmFyKTt2YXIganF1ZXJ5X3N0aWNreVNpZGViYXI9Y3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMpeyhmdW5jdGlvbihnbG9iYWwsZmFjdG9yeSl7aWYodHlwZW9mIHVuZGVmaW5lZD09PSJmdW5jdGlvbiImJnVuZGVmaW5lZC5hbWQpe3VuZGVmaW5lZChbJy4vc3RpY2t5LXNpZGViYXInXSxmYWN0b3J5KTt9ZWxzZXtmYWN0b3J5KHN0aWNreVNpZGViYXIpO319KShjb21tb25qc0dsb2JhbCxmdW5jdGlvbihfc3RpY2t5U2lkZWJhcil7dmFyIF9zdGlja3lTaWRlYmFyMj1faW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdGlja3lTaWRlYmFyKTtmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iail7cmV0dXJuIG9iaiYmb2JqLl9fZXNNb2R1bGU/b2JqOntkZWZhdWx0Om9ian07fQooZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09PXR5cGVvZiB3aW5kb3cpcmV0dXJuO3ZhciBwbHVnaW49d2luZG93LiR8fHdpbmRvdy5qUXVlcnl8fHdpbmRvdy5aZXB0bzt2YXIgREFUQV9OQU1FU1BBQ0U9J3N0aWNreVNpZGViYXInO2lmKHBsdWdpbil7dmFyIF9qUXVlcnlQbHVnaW49ZnVuY3Rpb24oY29uZmlnKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyICR0aGlzPXBsdWdpbih0aGlzKSxkYXRhPXBsdWdpbih0aGlzKS5kYXRhKERBVEFfTkFNRVNQQUNFKTtpZighZGF0YSl7ZGF0YT1uZXcgX3N0aWNreVNpZGViYXIyLmRlZmF1bHQodGhpcyx0eXBlb2YgY29uZmlnPT0nb2JqZWN0JyYmY29uZmlnKTskdGhpcy5kYXRhKERBVEFfTkFNRVNQQUNFLGRhdGEpO30KaWYoJ3N0cmluZyc9PT10eXBlb2YgY29uZmlnKXtpZihkYXRhW2NvbmZpZ109PT11bmRlZmluZWQmJlsnZGVzdHJveScsJ3VwZGF0ZVN0aWNreSddLmluZGV4T2YoY29uZmlnKT09PS0xKXRocm93IG5ldyBFcnJvcignTm8gbWV0aG9kIG5hbWVkICInK2NvbmZpZysnIicpO2RhdGFbY29uZmlnXSgpO319KTt9O3BsdWdpbi5mbi5zdGlja3lTaWRlYmFyPV9qUXVlcnlQbHVnaW47cGx1Z2luLmZuLnN0aWNreVNpZGViYXIuQ29uc3RydWN0b3I9X3N0aWNreVNpZGViYXIyLmRlZmF1bHQ7dmFyIG9sZD1wbHVnaW4uZm4uc3RpY2t5U2lkZWJhcjtwbHVnaW4uZm4uc3RpY2t5U2lkZWJhci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cGx1Z2luLmZuLnN0aWNreVNpZGViYXI9b2xkO3JldHVybiB0aGlzO307fX0pKCk7fSk7fSk7dmFyIGpxdWVyeV9zdGlja3lTaWRlYmFyJDE9dW53cmFwRXhwb3J0cyhqcXVlcnlfc3RpY2t5U2lkZWJhcik7cmV0dXJuIGpxdWVyeV9zdGlja3lTaWRlYmFyJDE7fSkpKTs="}},"time_used":482,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":482,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/pagead/1p-conversion/10784971490/?random=1785145405698\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026bttype=purchase\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oid=2129522358.1785145406\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=1\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.709Z","timestamp":1785145405709,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /pagead/1p-conversion/10784971490/?random=1785145405698\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026bttype=purchase\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oid=2129522358.1785145406\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=1\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 302 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, must-revalidate\r\nlocation: https://www.google.com/pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA\r\ncontent-type: text/html; charset=UTF-8\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"302","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"text/html; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":null}},"time_used":26,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=13\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2842\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.724Z","timestamp":1785145405724,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=13\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2842\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\ncontent-type: text/plain\r\ncache-control: no-cache, no-store, must-revalidate\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":549,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":23,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/jquery/jquery.min.js?ver=3.7.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.810Z","timestamp":1785145403810,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/jquery/jquery.min.js?ver=3.7.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-15601\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":87553,"size_decoded":29840,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65447)","md5":"826eb77e86b02ab7724fe3d0141ff87c","sha1":"79cd3587d565afe290076a8d36c31c305a573d18","sha256":"cb6f2d32c49d1c2b25e9ffc9aaafa3f83075346c01bcd4ae6eb187392a4292cf","sha512":"fc79fdb76763025dc39fac045a215ff155ef2f492a0e9640079d6f089fa6218af2b3ab7c6eaf636827dee9294e6939a95ab24554e870c976679c25567ad6374c","ssdeep":"1536:0RUX9uDgwxcy2KVBNwchN6SLaHEk2BSrBESp+a/IEk4aAocVi8SMBQ47GKO:sHNwcv9VBQpLl88SMBQ47GKO","tlshash":"7483f8df77ca702247ab30b9006f550bf276199d684d4400f159d8e9bcb8a4a827bf7e","first_seen":"2023-11-03T09:26:43Z","last_seen":"2026-08-12T03:58:34.9467Z","times_seen":1014924,"resource_available":true,"data":"LyohIGpRdWVyeSB2My43LjEgfCAoYykgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihpZSxlKXsidXNlIHN0cmljdCI7dmFyIG9lPVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLGFlPW9lLnNsaWNlLGc9b2UuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gb2UuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gb2UuY29uY2F0LmFwcGx5KFtdLGUpfSxzPW9lLnB1c2gsc2U9b2UuaW5kZXhPZixuPXt9LGk9bi50b1N0cmluZyx1ZT1uLmhhc093blByb3BlcnR5LG89dWUudG9TdHJpbmcsYT1vLmNhbGwoT2JqZWN0KSxsZT17fSx2PWZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYibnVtYmVyIiE9dHlwZW9mIGUubm9kZVR5cGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLml0ZW19LHk9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJmU9PT1lLndpbmRvd30sQz1pZS5kb2N1bWVudCx1PXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gbShlLHQsbil7dmFyIHIsaSxvPShuPW58fEMpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gdSkoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25baS5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIHQ9IjMuNy4xIixsPS9IVE1MJC9pLGNlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBjZS5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIGMoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49eChlKTtyZXR1cm4hdihlKSYmIXkoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9ZnVuY3Rpb24gZmUoZSx0KXtyZXR1cm4gZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dC50b0xvd2VyQ2FzZSgpfWNlLmZuPWNlLnByb3RvdHlwZT17anF1ZXJ5OnQsY29uc3RydWN0b3I6Y2UsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBhZS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/YWUuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Y2UubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGUpO3JldHVybiB0LnByZXZPYmplY3Q9dGhpcyx0fSxlYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBjZS5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soY2UubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhjZS5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soY2UuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6cyxzb3J0Om9lLnNvcnQsc3BsaWNlOm9lLnNwbGljZX0sY2UuZXh0ZW5kPWNlLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBlLHQsbixyLGksbyxhPWFyZ3VtZW50c1swXXx8e30scz0xLHU9YXJndW1lbnRzLmxlbmd0aCxsPSExO2ZvcigiYm9vbGVhbiI9PXR5cGVvZiBhJiYobD1hLGE9YXJndW1lbnRzW3NdfHx7fSxzKyspLCJvYmplY3QiPT10eXBlb2YgYXx8dihhKXx8KGE9e30pLHM9PT11JiYoYT10aGlzLHMtLSk7czx1O3MrKylpZihudWxsIT0oZT1hcmd1bWVudHNbc10pKWZvcih0IGluIGUpcj1lW3RdLCJfX3Byb3RvX18iIT09dCYmYSE9PXImJihsJiZyJiYoY2UuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxjZS5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPWNlLmV4dGVuZChsLG8scikpOnZvaWQgMCE9PXImJihhW3RdPXIpKTtyZXR1cm4gYX0sY2UuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyh0K01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1pLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj11ZS5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZvLmNhbGwobik9PT1hKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXttKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKGMoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQsbj0iIixyPTAsaT1lLm5vZGVUeXBlO2lmKCFpKXdoaWxlKHQ9ZVtyKytdKW4rPWNlLnRleHQodCk7cmV0dXJuIDE9PT1pfHwxMT09PWk/ZS50ZXh0Q29udGVudDo5PT09aT9lLmRvY3VtZW50RWxlbWVudC50ZXh0Q29udGVudDozPT09aXx8ND09PWk/ZS5ub2RlVmFsdWU6bn0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihjKE9iamVjdChlKSk/Y2UubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnMuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTpzZS5jYWxsKHQsZSxuKX0saXNYTUxEb2M6ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5uYW1lc3BhY2VVUkksbj1lJiYoZS5vd25lckRvY3VtZW50fHxlKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIWwudGVzdCh0fHxuJiZuLm5vZGVOYW1lfHwiSFRNTCIpfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihjKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDpsZX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihjZS5mbltTeW1ib2wuaXRlcmF0b3JdPW9lW1N5bWJvbC5pdGVyYXRvcl0pLGNlLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7blsiW29iamVjdCAiK3QrIl0iXT10LnRvTG93ZXJDYXNlKCl9KTt2YXIgcGU9b2UucG9wLGRlPW9lLnNvcnQsaGU9b2Uuc3BsaWNlLGdlPSJbXFx4MjBcXHRcXHJcXG5cXGZdIix2ZT1uZXcgUmVnRXhwKCJeIitnZSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitnZSsiKyQiLCJnIik7Y2UuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10JiZ0LnBhcmVudE5vZGU7cmV0dXJuIGU9PT1ufHwhKCFufHwxIT09bi5ub2RlVHlwZXx8IShlLmNvbnRhaW5zP2UuY29udGFpbnMobik6ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuKSkpfTt2YXIgZj0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlx4ODAtXHVGRkZGXHctXS9nO2Z1bmN0aW9uIHAoZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfWNlLmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGUpe3JldHVybihlKyIiKS5yZXBsYWNlKGYscCl9O3ZhciB5ZT1DLG1lPXM7IWZ1bmN0aW9uKCl7dmFyIGUsYix3LG8sYSxULHIsQyxkLGksaz1tZSxTPWNlLmV4cGFuZG8sRT0wLG49MCxzPVcoKSxjPVcoKSx1PVcoKSxoPVcoKSxsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYoYT0hMCksMH0sZj0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLHQ9Iig/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9IitnZSsiP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlwwLVxceDdmXSkrIixwPSJcXFsiK2dlKyIqKCIrdCsiKSg/OiIrZ2UrIiooWypeJHwhfl0/PSkiK2dlKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrdCsiKSl8KSIrZ2UrIipcXF0iLGc9IjooIit0KyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitwKyIpKil8LiopXFwpfCkiLHY9bmV3IFJlZ0V4cChnZSsiKyIsImciKSx5PW5ldyBSZWdFeHAoIl4iK2dlKyIqLCIrZ2UrIioiKSxtPW5ldyBSZWdFeHAoIl4iK2dlKyIqKFs+K35dfCIrZ2UrIikiK2dlKyIqIikseD1uZXcgUmVnRXhwKGdlKyJ8PiIpLGo9bmV3IFJlZ0V4cChnKSxBPW5ldyBSZWdFeHAoIl4iK3QrIiQiKSxEPXtJRDpuZXcgUmVnRXhwKCJeIygiK3QrIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrdCsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrdCsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK3ApLFBTRVVETzpuZXcgUmVnRXhwKCJeIitnKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK2dlKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitnZSsiKig/OihbKy1dfCkiK2dlKyIqKFxcZCspfCkpIitnZSsiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJlZ0V4cCgiXig/OiIrZisiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK2dlKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK2dlKyIqKCg/Oi1cXGQpP1xcZCopIitnZSsiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sTj0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHE9L15oXGQkL2ksTD0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLEg9L1srfl0vLE89bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK2dlKyI/fFxcXFwoW15cXHJcXG5cXGZdKSIsImciKSxQPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0sTT1mdW5jdGlvbigpe1YoKX0sUj1KKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5kaXNhYmxlZCYmZmUoZSwiZmllbGRzZXQiKX0se2RpcjoicGFyZW50Tm9kZSIsbmV4dDoibGVnZW5kIn0pO3RyeXtrLmFwcGx5KG9lPWFlLmNhbGwoeWUuY2hpbGROb2RlcykseWUuY2hpbGROb2Rlcyksb2VbeWUuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGUpe2s9e2FwcGx5OmZ1bmN0aW9uKGUsdCl7bWUuYXBwbHkoZSxhZS5jYWxsKHQpKX0sY2FsbDpmdW5jdGlvbihlKXttZS5hcHBseShlLGFlLmNhbGwoYXJndW1lbnRzLDEpKX19fWZ1bmN0aW9uIEkodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVihlKSxlPWV8fFQsQykpe2lmKDExIT09cCYmKHU9TC5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIGsuY2FsbChuLGEpLG59ZWxzZSBpZihmJiYoYT1mLmdldEVsZW1lbnRCeUlkKGkpKSYmSS5jb250YWlucyhlLGEpJiZhLmlkPT09aSlyZXR1cm4gay5jYWxsKG4sYSksbn1lbHNle2lmKHVbMl0pcmV0dXJuIGsuYXBwbHkobixlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpKSxuO2lmKChpPXVbM10pJiZlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIGsuYXBwbHkobixlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaSkpLG59aWYoIShoW3QrIiAiXXx8ZCYmZC50ZXN0KHQpKSl7aWYoYz10LGY9ZSwxPT09cCYmKHgudGVzdCh0KXx8bS50ZXN0KHQpKSl7KGY9SC50ZXN0KHQpJiZVKGUucGFyZW50Tm9kZSl8fGUpPT1lJiZsZS5zY29wZXx8KChzPWUuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPWNlLmVzY2FwZVNlbGVjdG9yKHMpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1ZKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIitRKGxbb10pO2M9bC5qb2luKCIsIil9dHJ5e3JldHVybiBrLmFwcGx5KG4sZi5xdWVyeVNlbGVjdG9yQWxsKGMpKSxufWNhdGNoKGUpe2godCwhMCl9ZmluYWxseXtzPT09UyYmZS5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gcmUodC5yZXBsYWNlKHZlLCIkMSIpLGUsbixyKX1mdW5jdGlvbiBXKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIEYoZSl7cmV0dXJuIGVbU109ITAsZX1mdW5jdGlvbiAkKGUpe3ZhciB0PVQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTt0cnl7cmV0dXJuISFlKHQpfWNhdGNoKGUpe3JldHVybiExfWZpbmFsbHl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksdD1udWxsfX1mdW5jdGlvbiBCKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZmUoZSwiaW5wdXQiKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuKGZlKGUsImlucHV0Iil8fGZlKGUsImJ1dHRvbiIpKSYmZS50eXBlPT09dH19ZnVuY3Rpb24geih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImZvcm0iaW4gZT9lLnBhcmVudE5vZGUmJiExPT09ZS5kaXNhYmxlZD8ibGFiZWwiaW4gZT8ibGFiZWwiaW4gZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5kaXNhYmxlZD09PXQ6ZS5kaXNhYmxlZD09PXQ6ZS5pc0Rpc2FibGVkPT09dHx8ZS5pc0Rpc2FibGVkIT09IXQmJlIoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gWChhKXtyZXR1cm4gRihmdW5jdGlvbihvKXtyZXR1cm4gbz0rbyxGKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24gVShlKXtyZXR1cm4gZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlfWZ1bmN0aW9uIFYoZSl7dmFyIHQsbj1lP2Uub3duZXJEb2N1bWVudHx8ZTp5ZTtyZXR1cm4gbiE9VCYmOT09PW4ubm9kZVR5cGUmJm4uZG9jdW1lbnRFbGVtZW50JiYocj0oVD1uKS5kb2N1bWVudEVsZW1lbnQsQz0hY2UuaXNYTUxEb2MoVCksaT1yLm1hdGNoZXN8fHIud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyLm1zTWF0Y2hlc1NlbGVjdG9yLHIubXNNYXRjaGVzU2VsZWN0b3ImJnllIT1UJiYodD1ULmRlZmF1bHRWaWV3KSYmdC50b3AhPT10JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsTSksbGUuZ2V0QnlJZD0kKGZ1bmN0aW9uKGUpe3JldHVybiByLmFwcGVuZENoaWxkKGUpLmlkPWNlLmV4cGFuZG8sIVQuZ2V0RWxlbWVudHNCeU5hbWV8fCFULmdldEVsZW1lbnRzQnlOYW1lKGNlLmV4cGFuZG8pLmxlbmd0aH0pLGxlLmRpc2Nvbm5lY3RlZE1hdGNoPSQoZnVuY3Rpb24oZSl7cmV0dXJuIGkuY2FsbChlLCIqIil9KSxsZS5zY29wZT0kKGZ1bmN0aW9uKCl7cmV0dXJuIFQucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIil9KSxsZS5jc3NIYXM9JChmdW5jdGlvbigpe3RyeXtyZXR1cm4gVC5xdWVyeVNlbGVjdG9yKCI6aGFzKCosOmpxZmFrZSkiKSwhMX1jYXRjaChlKXtyZXR1cm4hMH19KSxsZS5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoTyxQKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKCJpZCIpPT09dH19LGIuZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmQyl7dmFyIG49dC5nZXRFbGVtZW50QnlJZChlKTtyZXR1cm4gbj9bbl06W119fSk6KGIuZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciBuPWUucmVwbGFjZShPLFApO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlTm9kZSYmZS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiB0JiZ0LnZhbHVlPT09bn19LGIuZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmQyl7dmFyIG4scixpLG89dC5nZXRFbGVtZW50QnlJZChlKTtpZihvKXtpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb107aT10LmdldEVsZW1lbnRzQnlOYW1lKGUpLHI9MDt3aGlsZShvPWlbcisrXSlpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb119cmV0dXJuW119fSksYi5maW5kLlRBRz1mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOnQucXVlcnlTZWxlY3RvckFsbChlKX0sYi5maW5kLkNMQVNTPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkMpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0sZD1bXSwkKGZ1bmN0aW9uKGUpe3ZhciB0O3IuYXBwZW5kQ2hpbGQoZSkuaW5uZXJIVE1MPSI8YSBpZD0nIitTKyInIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsZS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxkLnB1c2goIlxcWyIrZ2UrIiooPzp2YWx1ZXwiK2YrIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitTKyItXSIpLmxlbmd0aHx8ZC5wdXNoKCJ+PSIpLGUucXVlcnlTZWxlY3RvckFsbCgiYSMiK1MrIisqIikubGVuZ3RofHxkLnB1c2goIi4jLitbK35dIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8ZC5wdXNoKCI6Y2hlY2tlZCIpLCh0PVQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksci5hcHBlbmRDaGlsZChlKS5kaXNhYmxlZD0hMCwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJmQucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSwodD1ULmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fGQucHVzaCgiXFxbIitnZSsiKm5hbWUiK2dlKyIqPSIrZ2UrIiooPzonJ3xcIlwiKSIpfSksbGUuY3NzSGFzfHxkLnB1c2goIjpoYXMiKSxkPWQubGVuZ3RoJiZuZXcgUmVnRXhwKGQuam9pbigifCIpKSxsPWZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGE9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFsZS5zb3J0RGV0YWNoZWQmJnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk9PT1uP2U9PT1UfHxlLm93bmVyRG9jdW1lbnQ9PXllJiZJLmNvbnRhaW5zKHllLGUpPy0xOnQ9PT1UfHx0Lm93bmVyRG9jdW1lbnQ9PXllJiZJLmNvbnRhaW5zKHllLHQpPzE6bz9zZS5jYWxsKG8sZSktc2UuY2FsbChvLHQpOjA6NCZuPy0xOjEpfSksVH1mb3IoZSBpbiBJLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSShlLG51bGwsbnVsbCx0KX0sSS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oZSx0KXtpZihWKGUpLEMmJiFoW3QrIiAiXSYmKCFkfHwhZC50ZXN0KHQpKSl0cnl7dmFyIG49aS5jYWxsKGUsdCk7aWYobnx8bGUuZGlzY29ubmVjdGVkTWF0Y2h8fGUuZG9jdW1lbnQmJjExIT09ZS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gbn1jYXRjaChlKXtoKHQsITApfXJldHVybiAwPEkodCxULG51bGwsW2VdKS5sZW5ndGh9LEkuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS5vd25lckRvY3VtZW50fHxlKSE9VCYmVihlKSxjZS5jb250YWlucyhlLHQpfSxJLmF0dHI9ZnVuY3Rpb24oZSx0KXsoZS5vd25lckRvY3VtZW50fHxlKSE9VCYmVihlKTt2YXIgbj1iLmF0dHJIYW5kbGVbdC50b0xvd2VyQ2FzZSgpXSxyPW4mJnVlLmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUMpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmUuZ2V0QXR0cmlidXRlKHQpfSxJLmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitlKX0sY2UudW5pcXVlU29ydD1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9MCxpPTA7aWYoYT0hbGUuc29ydFN0YWJsZSxvPSFsZS5zb3J0U3RhYmxlJiZhZS5jYWxsKGUsMCksZGUuY2FsbChlLGwpLGEpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSloZS5jYWxsKGUsbltyXSwxKX1yZXR1cm4gbz1udWxsLGV9LGNlLmZuLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soY2UudW5pcXVlU29ydChhZS5hcHBseSh0aGlzKSkpfSwoYj1jZS5leHByPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86RixtYXRjaDpELGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnJlcGxhY2UoTyxQKSxlWzNdPShlWzNdfHxlWzRdfHxlWzVdfHwiIikucmVwbGFjZShPLFApLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxJLmVycm9yKGVbMF0pLGVbNF09KyhlWzRdP2VbNV0rKGVbNl18fDEpOjIqKCJldmVuIj09PWVbM118fCJvZGQiPT09ZVszXSkpLGVbNV09KyhlWzddK2VbOF18fCJvZGQiPT09ZVszXSkpOmVbM10mJkkuZXJyb3IoZVswXSksZX0sUFNFVURPOmZ1bmN0aW9uKGUpe3ZhciB0LG49IWVbNl0mJmVbMl07cmV0dXJuIEQuQ0hJTEQudGVzdChlWzBdKT9udWxsOihlWzNdP2VbMl09ZVs0XXx8ZVs1XXx8IiI6biYmai50ZXN0KG4pJiYodD1ZKG4sITApKSYmKHQ9bi5pbmRleE9mKCIpIixuLmxlbmd0aC10KS1uLmxlbmd0aCkmJihlWzBdPWVbMF0uc2xpY2UoMCx0KSxlWzJdPW4uc2xpY2UoMCx0KSksZS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShPLFApLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09ZT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihlKXtyZXR1cm4gZmUoZSx0KX19LENMQVNTOmZ1bmN0aW9uKGUpe3ZhciB0PXNbZSsiICJdO3JldHVybiB0fHwodD1uZXcgUmVnRXhwKCIoXnwiK2dlKyIpIitlKyIoIitnZSsifCQpIikpJiZzKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHQudGVzdCgic3RyaW5nIj09dHlwZW9mIGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZSYmZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKG4scixpKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9SS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UodiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oZCxlLHQsaCxnKXt2YXIgdj0ibnRoIiE9PWQuc2xpY2UoMCwzKSx5PSJsYXN0IiE9PWQuc2xpY2UoLTQpLG09Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWgmJjA9PT1nP2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1PXYhPT15PyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIsbD1lLnBhcmVudE5vZGUsYz1tJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksZj0hbiYmIW0scD0hMTtpZihsKXtpZih2KXt3aGlsZSh1KXtvPWU7d2hpbGUobz1vW3VdKWlmKG0/ZmUobyxjKToxPT09by5ub2RlVHlwZSlyZXR1cm4hMTtzPXU9Im9ubHkiPT09ZCYmIXMmJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYocz1beT9sLmZpcnN0Q2hpbGQ6bC5sYXN0Q2hpbGRdLHkmJmYpe3A9KGE9KHI9KGk9bFtTXXx8KGxbU109e30pKVtkXXx8W10pWzBdPT09RSYmclsxXSkmJnJbMl0sbz1hJiZsLmNoaWxkTm9kZXNbYV07d2hpbGUobz0rK2EmJm8mJm9bdV18fChwPWE9MCl8fHMucG9wKCkpaWYoMT09PW8ubm9kZVR5cGUmJisrcCYmbz09PWUpe2lbZF09W0UsYSxwXTticmVha319ZWxzZSBpZihmJiYocD1hPShyPShpPWVbU118fChlW1NdPXt9KSlbZF18fFtdKVswXT09PUUmJnJbMV0pLCExPT09cCl3aGlsZShvPSsrYSYmbyYmb1t1XXx8KHA9YT0wKXx8cy5wb3AoKSlpZigobT9mZShvLGMpOjE9PT1vLm5vZGVUeXBlKSYmKytwJiYoZiYmKChpPW9bU118fChvW1NdPXt9KSlbZF09W0UscF0pLG89PT1lKSlicmVhaztyZXR1cm4ocC09Zyk9PT1ofHxwJWg9PTAmJjA8PXAvaH19fSxQU0VVRE86ZnVuY3Rpb24oZSxvKXt2YXIgdCxhPWIucHNldWRvc1tlXXx8Yi5zZXRGaWx0ZXJzW2UudG9Mb3dlckNhc2UoKV18fEkuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIitlKTtyZXR1cm4gYVtTXT9hKG8pOjE8YS5sZW5ndGg/KHQ9W2UsZSwiIixvXSxiLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoZS50b0xvd2VyQ2FzZSgpKT9GKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPXNlLmNhbGwoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpGKGZ1bmN0aW9uKGUpe3ZhciByPVtdLGk9W10scz1uZShlLnJlcGxhY2UodmUsIiQxIikpO3JldHVybiBzW1NdP0YoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpGKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gMDxJKHQsZSkubGVuZ3RofX0pLGNvbnRhaW5zOkYoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKE8sUCksZnVuY3Rpb24oZSl7cmV0dXJuLTE8KGUudGV4dENvbnRlbnR8fGNlLnRleHQoZSkpLmluZGV4T2YodCl9fSksbGFuZzpGKGZ1bmN0aW9uKG4pe3JldHVybiBBLnRlc3Qobnx8IiIpfHxJLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK24pLG49bi5yZXBsYWNlKE8sUCkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUM/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWllLmxvY2F0aW9uJiZpZS5sb2NhdGlvbi5oYXNoO3JldHVybiB0JiZ0LnNsaWNlKDEpPT09ZS5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXJ9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFQuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpJiZULmhhc0ZvY3VzKCkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6eighMSksZGlzYWJsZWQ6eighMCksY2hlY2tlZDpmdW5jdGlvbihlKXtyZXR1cm4gZmUoZSwiaW5wdXQiKSYmISFlLmNoZWNrZWR8fGZlKGUsIm9wdGlvbiIpJiYhIWUuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LCEwPT09ZS5zZWxlY3RlZH0sZW1wdHk6ZnVuY3Rpb24oZSl7Zm9yKGU9ZS5maXJzdENoaWxkO2U7ZT1lLm5leHRTaWJsaW5nKWlmKGUubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGUpe3JldHVybiFiLnBzZXVkb3MuZW1wdHkoZSl9LGhlYWRlcjpmdW5jdGlvbihlKXtyZXR1cm4gcS50ZXN0KGUubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gTi50ZXN0KGUubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oZSl7cmV0dXJuIGZlKGUsImlucHV0IikmJiJidXR0b24iPT09ZS50eXBlfHxmZShlLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gZmUoZSwiaW5wdXQiKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OlgoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OlgoZnVuY3Rpb24oZSx0KXtyZXR1cm5bdC0xXX0pLGVxOlgoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjpYKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOlgoZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MTtuPHQ7bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxsdDpYKGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtmb3Iocj1uPDA/bit0OnQ8bj90Om47MDw9LS1yOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDpYKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDpuOysrcjx0OyllLnB1c2gocik7cmV0dXJuIGV9KX19KS5wc2V1ZG9zLm50aD1iLnBzZXVkb3MuZXEse3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWIucHNldWRvc1tlXT1CKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPV8oZSk7ZnVuY3Rpb24gRygpe31mdW5jdGlvbiBZKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD1jW2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj15LmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj1tLmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKHZlLCIgIil9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKSxiLmZpbHRlcikhKHI9RFtvXS5leGVjKGEpKXx8dVtvXSYmIShyPXVbb10ocikpfHwobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6byxtYXRjaGVzOnJ9KSxhPWEuc2xpY2Uobi5sZW5ndGgpKTtpZighbilicmVha31yZXR1cm4gdD9hLmxlbmd0aDphP0kuZXJyb3IoZSk6YyhlLHMpLnNsaWNlKDApfWZ1bmN0aW9uIFEoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aCxyPSIiO3Q8bjt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBKKGEsZSx0KXt2YXIgcz1lLmRpcix1PWUubmV4dCxsPXV8fHMsYz10JiYicGFyZW50Tm9kZSI9PT1sLGY9bisrO3JldHVybiBlLmZpcnN0P2Z1bmN0aW9uKGUsdCxuKXt3aGlsZShlPWVbc10paWYoMT09PWUubm9kZVR5cGV8fGMpcmV0dXJuIGEoZSx0LG4pO3JldHVybiExfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPVtFLGZdO2lmKG4pe3doaWxlKGU9ZVtzXSlpZigoMT09PWUubm9kZVR5cGV8fGMpJiZhKGUsdCxuKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGU9ZVtzXSlpZigxPT09ZS5ub2RlVHlwZXx8YylpZihpPWVbU118fChlW1NdPXt9KSx1JiZmZShlLHUpKWU9ZVtzXXx8ZTtlbHNle2lmKChyPWlbbF0pJiZyWzBdPT09RSYmclsxXT09PWYpcmV0dXJuIG9bMl09clsyXTtpZigoaVtsXT1vKVsyXT1hKGUsdCxuKSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gSyhpKXtyZXR1cm4gMTxpLmxlbmd0aD9mdW5jdGlvbihlLHQsbil7dmFyIHI9aS5sZW5ndGg7d2hpbGUoci0tKWlmKCFpW3JdKGUsdCxuKSlyZXR1cm4hMTtyZXR1cm4hMH06aVswXX1mdW5jdGlvbiBaKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gZWUoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9ZWUodikpLHkmJiF5W1NdJiYoeT1lZSh5LGUpKSxGKGZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHU9W10sbD1bXSxjPXQubGVuZ3RoLGY9ZXx8ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpO3IrKylJKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLHA9IWR8fCFlJiZoP2Y6WihmLHUsZCxuLHIpO2lmKGc/ZyhwLHM9eXx8KGU/ZDpjfHx2KT9bXTp0LG4scik6cz1wLHYpe2k9WihzLGwpLHYoaSxbXSxuLHIpLG89aS5sZW5ndGg7d2hpbGUoby0tKShhPWlbb10pJiYoc1tsW29dXT0hKHBbbFtvXV09YSkpfWlmKGUpe2lmKHl8fGQpe2lmKHkpe2k9W10sbz1zLmxlbmd0aDt3aGlsZShvLS0pKGE9c1tvXSkmJmkucHVzaChwW29dPWEpO3kobnVsbCxzPVtdLGkscil9bz1zLmxlbmd0aDt3aGlsZShvLS0pKGE9c1tvXSkmJi0xPChpPXk/c2UuY2FsbChlLGEpOnVbb10pJiYoZVtpXT0hKHRbaV09YSkpfX1lbHNlIHM9WihzPT09dD9zLnNwbGljZShjLHMubGVuZ3RoKTpzKSx5P3kobnVsbCx0LHMscik6ay5hcHBseSh0LHMpfSl9ZnVuY3Rpb24gdGUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1KKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09aX0sYSwhMCksbD1KKGZ1bmN0aW9uKGUpe3JldHVybi0xPHNlLmNhbGwoaSxlKX0sYSwhMCksYz1bZnVuY3Rpb24oZSx0LG4pe3ZhciByPSFvJiYobnx8dCE9dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtKKEsoYyksdCldO2Vsc2V7aWYoKHQ9Yi5maWx0ZXJbZVtzXS50eXBlXS5hcHBseShudWxsLGVbc10ubWF0Y2hlcykpW1NdKXtmb3Iobj0rK3M7bjxyO24rKylpZihiLnJlbGF0aXZlW2Vbbl0udHlwZV0pYnJlYWs7cmV0dXJuIGVlKDE8cyYmSyhjKSwxPHMmJlEoZS5zbGljZSgwLHMtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1lW3MtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSh2ZSwiJDEiKSx0LHM8biYmdGUoZS5zbGljZShzLG4pKSxuPHImJnRlKGU9ZS5zbGljZShuKSksbjxyJiZRKGUpKX1jLnB1c2godCl9cmV0dXJuIEsoYyl9ZnVuY3Rpb24gbmUoZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9dVtlKyIgIl07aWYoIWEpe3R8fCh0PVkoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPXRlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPXUoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPUUrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1UfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1UfHwoVihvKSxuPSFDKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8VCxuKSl7ay5jYWxsKHIsbyk7YnJlYWt9aSYmKEU9aCl9bSYmKChvPSFzJiZvKSYmdS0tLGUmJmMucHVzaChvKSl9aWYodSs9bCxtJiZsIT09dSl7YT0wO3doaWxlKHM9eVthKytdKXMoYyxmLHQsbik7aWYoZSl7aWYoMDx1KXdoaWxlKGwtLSljW2xdfHxmW2xdfHwoZltsXT1wZS5jYWxsKHIpKTtmPVooZil9ay5hcHBseShyLGYpLGkmJiFlJiYwPGYubGVuZ3RoJiYxPHUreS5sZW5ndGgmJmNlLnVuaXF1ZVNvcnQocil9cmV0dXJuIGkmJihFPWgsdz1wKSxjfSxtP0Yocik6cikpKS5zZWxlY3Rvcj1lfXJldHVybiBhfWZ1bmN0aW9uIHJlKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZZKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmQyYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZShPLFApLHQpfHxbXSlbMF0pKXJldHVybiBuO2wmJih0PXQucGFyZW50Tm9kZSksZT1lLnNsaWNlKG8uc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWk9RC5uZWVkc0NvbnRleHQudGVzdChlKT8wOm8ubGVuZ3RoO3doaWxlKGktLSl7aWYoYT1vW2ldLGIucmVsYXRpdmVbcz1hLnR5cGVdKWJyZWFrO2lmKCh1PWIuZmluZFtzXSkmJihyPXUoYS5tYXRjaGVzWzBdLnJlcGxhY2UoTyxQKSxILnRlc3Qob1swXS50eXBlKSYmVSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZRKG8pKSlyZXR1cm4gay5hcHBseShuLHIpLG47YnJlYWt9fX1yZXR1cm4obHx8bmUoZSxjKSkocix0LCFDLG4sIXR8fEgudGVzdChlKSYmVSh0LnBhcmVudE5vZGUpfHx0KSxufUcucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBHLGxlLnNvcnRTdGFibGU9Uy5zcGxpdCgiIikuc29ydChsKS5qb2luKCIiKT09PVMsVigpLGxlLnNvcnREZXRhY2hlZD0kKGZ1bmN0aW9uKGUpe3JldHVybiAxJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVC5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLGNlLmZpbmQ9SSxjZS5leHByWyI6Il09Y2UuZXhwci5wc2V1ZG9zLGNlLnVuaXF1ZT1jZS51bmlxdWVTb3J0LEkuY29tcGlsZT1uZSxJLnNlbGVjdD1yZSxJLnNldERvY3VtZW50PVYsSS50b2tlbml6ZT1ZLEkuZXNjYXBlPWNlLmVzY2FwZVNlbGVjdG9yLEkuZ2V0VGV4dD1jZS50ZXh0LEkuaXNYTUw9Y2UuaXNYTUxEb2MsSS5zZWxlY3RvcnM9Y2UuZXhwcixJLnN1cHBvcnQ9Y2Uuc3VwcG9ydCxJLnVuaXF1ZVNvcnQ9Y2UudW5pcXVlU29ydH0oKTt2YXIgZD1mdW5jdGlvbihlLHQsbil7dmFyIHI9W10saT12b2lkIDAhPT1uO3doaWxlKChlPWVbdF0pJiY5IT09ZS5ub2RlVHlwZSlpZigxPT09ZS5ub2RlVHlwZSl7aWYoaSYmY2UoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxoPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxiPWNlLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHc9L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gVChlLG4scil7cmV0dXJuIHYobik/Y2UuZ3JlcChlLGZ1bmN0aW9uKGUsdCl7cmV0dXJuISFuLmNhbGwoZSx0LGUpIT09cn0pOm4ubm9kZVR5cGU/Y2UuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09biE9PXJ9KToic3RyaW5nIiE9dHlwZW9mIG4/Y2UuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPHNlLmNhbGwobixlKSE9PXJ9KTpjZS5maWx0ZXIobixlLHIpfWNlLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9jZS5maW5kLm1hdGNoZXNTZWxlY3RvcihyLGUpP1tyXTpbXTpjZS5maW5kLm1hdGNoZXMoZSxjZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxjZS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPXRoaXMubGVuZ3RoLGk9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIHRoaXMucHVzaFN0YWNrKGNlKGUpLmZpbHRlcihmdW5jdGlvbigpe2Zvcih0PTA7dDxyO3QrKylpZihjZS5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKyljZS5maW5kKGUsaVt0XSxuKTtyZXR1cm4gMTxyP2NlLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhUKHRoaXMsZXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhUKHRoaXMsZXx8W10sITApKX0saXM6ZnVuY3Rpb24oZSl7cmV0dXJuISFUKHRoaXMsInN0cmluZyI9PXR5cGVvZiBlJiZiLnRlc3QoZSk/Y2UoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgayxTPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KGNlLmZuLmluaXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoIWUpcmV0dXJuIHRoaXM7aWYobj1ufHxrLCJzdHJpbmciPT10eXBlb2YgZSl7aWYoIShyPSI8Ij09PWVbMF0mJiI+Ij09PWVbZS5sZW5ndGgtMV0mJjM8PWUubGVuZ3RoP1tudWxsLGUsbnVsbF06Uy5leGVjKGUpKXx8IXJbMV0mJnQpcmV0dXJuIXR8fHQuanF1ZXJ5Pyh0fHxuKS5maW5kKGUpOnRoaXMuY29uc3RydWN0b3IodCkuZmluZChlKTtpZihyWzFdKXtpZih0PXQgaW5zdGFuY2VvZiBjZT90WzBdOnQsY2UubWVyZ2UodGhpcyxjZS5wYXJzZUhUTUwoclsxXSx0JiZ0Lm5vZGVUeXBlP3Qub3duZXJEb2N1bWVudHx8dDpDLCEwKSksdy50ZXN0KHJbMV0pJiZjZS5pc1BsYWluT2JqZWN0KHQpKWZvcihyIGluIHQpdih0aGlzW3JdKT90aGlzW3JdKHRbcl0pOnRoaXMuYXR0cihyLHRbcl0pO3JldHVybiB0aGlzfXJldHVybihpPUMuZ2V0RWxlbWVudEJ5SWQoclsyXSkpJiYodGhpc1swXT1pLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGUubm9kZVR5cGU/KHRoaXNbMF09ZSx0aGlzLmxlbmd0aD0xLHRoaXMpOnYoZSk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KGUpOmUoY2UpOmNlLm1ha2VBcnJheShlLHRoaXMpfSkucHJvdG90eXBlPWNlLmZuLGs9Y2UoQyk7dmFyIEU9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8saj17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBBKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1jZS5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihlKXt2YXIgdD1jZShlLHRoaXMpLG49dC5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxuO2UrKylpZihjZS5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZjZShlKTtpZighYi50ZXN0KGUpKWZvcig7cjxpO3IrKylmb3Iobj10aGlzW3JdO24mJm4hPT10O249bi5wYXJlbnROb2RlKWlmKG4ubm9kZVR5cGU8MTEmJihhPy0xPGEuaW5kZXgobik6MT09PW4ubm9kZVR5cGUmJmNlLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKDE8by5sZW5ndGg/Y2UudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP3NlLmNhbGwoY2UoZSksdGhpc1swXSk6c2UuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soY2UudW5pcXVlU29ydChjZS5tZXJnZSh0aGlzLmdldCgpLGNlKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLGNlLmVhY2goe3BhcmVudDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJjExIT09dC5ub2RlVHlwZT90Om51bGx9LHBhcmVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGQoZSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBkKGUsInBhcmVudE5vZGUiLG4pfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiBBKGUsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oZSl7cmV0dXJuIEEoZSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGQoZSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihlKXtyZXR1cm4gZChlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZChlLCJuZXh0U2libGluZyIsbil9LHByZXZVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGQoZSwicHJldmlvdXNTaWJsaW5nIixuKX0sc2libGluZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGgoKGUucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lLmNvbnRlbnREb2N1bWVudCYmcihlLmNvbnRlbnREb2N1bWVudCk/ZS5jb250ZW50RG9jdW1lbnQ6KGZlKGUsInRlbXBsYXRlIikmJihlPWUuY29udGVudHx8ZSksY2UubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe2NlLmZuW3JdPWZ1bmN0aW9uKGUsdCl7dmFyIG49Y2UubWFwKHRoaXMsaSxlKTtyZXR1cm4iVW50aWwiIT09ci5zbGljZSgtNSkmJih0PWUpLHQmJiJzdHJpbmciPT10eXBlb2YgdCYmKG49Y2UuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihqW3JdfHxjZS51bmlxdWVTb3J0KG4pLEUudGVzdChyKSYmbi5yZXZlcnNlKCkpLHRoaXMucHVzaFN0YWNrKG4pfX0pO3ZhciBEPS9bXlx4MjBcdFxyXG5cZl0rL2c7ZnVuY3Rpb24gTihlKXtyZXR1cm4gZX1mdW5jdGlvbiBxKGUpe3Rocm93IGV9ZnVuY3Rpb24gTChlLHQsbixyKXt2YXIgaTt0cnl7ZSYmdihpPWUucHJvbWlzZSk/aS5jYWxsKGUpLmRvbmUodCkuZmFpbChuKTplJiZ2KGk9ZS50aGVuKT9pLmNhbGwoZSx0LG4pOnQuYXBwbHkodm9pZCAwLFtlXS5zbGljZShyKSl9Y2F0Y2goZSl7bi5hcHBseSh2b2lkIDAsW2VdKX19Y2UuQ2FsbGJhY2tzPWZ1bmN0aW9uKHIpe3ZhciBlLG47cj0ic3RyaW5nIj09dHlwZW9mIHI/KGU9cixuPXt9LGNlLmVhY2goZS5tYXRjaChEKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Y2UuZXh0ZW5kKHt9LHIpO3ZhciBpLHQsbyxhLHM9W10sdT1bXSxsPS0xLGM9ZnVuY3Rpb24oKXtmb3IoYT1hfHxyLm9uY2Usbz1pPSEwO3UubGVuZ3RoO2w9LTEpe3Q9dS5zaGlmdCgpO3doaWxlKCsrbDxzLmxlbmd0aCkhMT09PXNbbF0uYXBwbHkodFswXSx0WzFdKSYmci5zdG9wT25GYWxzZSYmKGw9cy5sZW5ndGgsdD0hMSl9ci5tZW1vcnl8fCh0PSExKSxpPSExLGEmJihzPXQ/W106IiIpfSxmPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gcyYmKHQmJiFpJiYobD1zLmxlbmd0aC0xLHUucHVzaCh0KSksZnVuY3Rpb24gbihlKXtjZS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2KHQpP3IudW5pcXVlJiZmLmhhcyh0KXx8cy5wdXNoKHQpOnQmJnQubGVuZ3RoJiYic3RyaW5nIiE9PXgodCkmJm4odCl9KX0oYXJndW1lbnRzKSx0JiYhaSYmYygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gY2UuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1jZS5pbkFycmF5KHQscyxuKSkpcy5zcGxpY2UobiwxKSxuPD1sJiZsLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/LTE8Y2UuaW5BcnJheShlLHMpOjA8cy5sZW5ndGh9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIHMmJihzPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGE9dT1bXSxzPXQ9IiIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hc30sbG9jazpmdW5jdGlvbigpe3JldHVybiBhPXU9W10sdHx8aXx8KHM9dD0iIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFhfSxmaXJlV2l0aDpmdW5jdGlvbihlLHQpe3JldHVybiBhfHwodD1bZSwodD10fHxbXSkuc2xpY2U/dC5zbGljZSgpOnRdLHUucHVzaCh0KSxpfHxjKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW99fTtyZXR1cm4gZn0sY2UuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsY2UuQ2FsbGJhY2tzKCJtZW1vcnkiKSxjZS5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLGNlLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxjZS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLGNlLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxjZS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gY2UuRGVmZXJyZWQoZnVuY3Rpb24ocil7Y2UuZWFjaChvLGZ1bmN0aW9uKGUsdCl7dmFyIG49dihpW3RbNF1dKSYmaVt0WzRdXTtzW3RbMV1dKGZ1bmN0aW9uKCl7dmFyIGU9biYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZSYmdihlLnByb21pc2UpP2UucHJvbWlzZSgpLnByb2dyZXNzKHIubm90aWZ5KS5kb25lKHIucmVzb2x2ZSkuZmFpbChyLnJlamVjdCk6clt0WzBdKyJXaXRoIl0odGhpcyxuP1tlXTphcmd1bWVudHMpfSl9KSxpPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxuLHIpe3ZhciB1PTA7ZnVuY3Rpb24gbChpLG8sYSxzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9YXJndW1lbnRzLGU9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKCEoaTx1KSl7aWYoKGU9YS5hcHBseShuLHIpKT09PW8ucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO3Q9ZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpJiZlLnRoZW4sdih0KT9zP3QuY2FsbChlLGwodSxvLE4scyksbCh1LG8scSxzKSk6KHUrKyx0LmNhbGwoZSxsKHUsbyxOLHMpLGwodSxvLHEscyksbCh1LG8sTixvLm5vdGlmeVdpdGgpKSk6KGEhPT1OJiYobj12b2lkIDAscj1bZV0pLChzfHxvLnJlc29sdmVXaXRoKShuLHIpKX19LHQ9cz9lOmZ1bmN0aW9uKCl7dHJ5e2UoKX1jYXRjaChlKXtjZS5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZjZS5EZWZlcnJlZC5leGNlcHRpb25Ib29rKGUsdC5lcnJvciksdTw9aSsxJiYoYSE9PXEmJihuPXZvaWQgMCxyPVtlXSksby5yZWplY3RXaXRoKG4scikpfX07aT90KCk6KGNlLkRlZmVycmVkLmdldEVycm9ySG9vaz90LmVycm9yPWNlLkRlZmVycmVkLmdldEVycm9ySG9vaygpOmNlLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuZXJyb3I9Y2UuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLGllLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gY2UuRGVmZXJyZWQoZnVuY3Rpb24oZSl7b1swXVszXS5hZGQobCgwLGUsdihyKT9yOk4sZS5ub3RpZnlXaXRoKSksb1sxXVszXS5hZGQobCgwLGUsdih0KT90Ok4pKSxvWzJdWzNdLmFkZChsKDAsZSx2KG4pP246cSkpfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lP2NlLmV4dGVuZChlLGEpOmF9fSxzPXt9O3JldHVybiBjZS5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPWFlLmNhbGwoYXJndW1lbnRzKSxvPWNlLkRlZmVycmVkKCksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7clt0XT10aGlzLGlbdF09MTxhcmd1bWVudHMubGVuZ3RoP2FlLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEwoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHx2KGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pTChpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgSD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztjZS5EZWZlcnJlZC5leGNlcHRpb25Ib29rPWZ1bmN0aW9uKGUsdCl7aWUuY29uc29sZSYmaWUuY29uc29sZS53YXJuJiZlJiZILnRlc3QoZS5uYW1lKSYmaWUuY29uc29sZS53YXJuKCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiAiK2UubWVzc2FnZSxlLnN0YWNrLHQpfSxjZS5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihlKXtpZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgTz1jZS5EZWZlcnJlZCgpO2Z1bmN0aW9uIFAoKXtDLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFApLGllLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFApLGNlLnJlYWR5KCl9Y2UuZm4ucmVhZHk9ZnVuY3Rpb24oZSl7cmV0dXJuIE8udGhlbihlKVsiY2F0Y2giXShmdW5jdGlvbihlKXtjZS5yZWFkeUV4Y2VwdGlvbihlKX0pLHRoaXN9LGNlLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tY2UucmVhZHlXYWl0OmNlLmlzUmVhZHkpfHwoY2UuaXNSZWFkeT0hMCkhPT1lJiYwPC0tY2UucmVhZHlXYWl0fHxPLnJlc29sdmVXaXRoKEMsW2NlXSl9fSksY2UucmVhZHkudGhlbj1PLnRoZW4sImNvbXBsZXRlIj09PUMucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09Qy5yZWFkeVN0YXRlJiYhQy5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/aWUuc2V0VGltZW91dChjZS5yZWFkeSk6KEMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsUCksaWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsUCkpO3ZhciBNPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT14KG4pKWZvcihzIGluIGk9ITAsbilNKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLHYocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoY2UoZSksbil9KSksdCkpZm9yKDtzPHU7cysrKXQoZVtzXSxuLGE/cjpyLmNhbGwoZVtzXSxzLHQoZVtzXSxuKSkpO3JldHVybiBpP2U6bD90LmNhbGwoZSk6dT90KGVbMF0sbik6b30sUj0vXi1tcy0vLEk9Ly0oW2Etel0pL2c7ZnVuY3Rpb24gVyhlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gRihlKXtyZXR1cm4gZS5yZXBsYWNlKFIsIm1zLSIpLnJlcGxhY2UoSSxXKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwhK2Uubm9kZVR5cGV9O2Z1bmN0aW9uIEIoKXt0aGlzLmV4cGFuZG89Y2UuZXhwYW5kbytCLnVpZCsrfUIudWlkPTEsQi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdHx8KHQ9e30sJChlKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXQ6T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdGhpcy5leHBhbmRvLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pKSksdH0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXRoaXMuY2FjaGUoZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlbRih0KV09bjtlbHNlIGZvcihyIGluIHQpaVtGKHIpXT10W3JdO3JldHVybiBpfSxnZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLmNhY2hlKGUpOmVbdGhpcy5leHBhbmRvXSYmZVt0aGlzLmV4cGFuZG9dW0YodCldfSxhY2Nlc3M6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB2b2lkIDA9PT10fHx0JiYic3RyaW5nIj09dHlwZW9mIHQmJnZvaWQgMD09PW4/dGhpcy5nZXQoZSx0KToodGhpcy5zZXQoZSx0LG4pLHZvaWQgMCE9PW4/bjp0KX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1lW3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09cil7aWYodm9pZCAwIT09dCl7bj0odD1BcnJheS5pc0FycmF5KHQpP3QubWFwKEYpOih0PUYodCkpaW4gcj9bdF06dC5tYXRjaChEKXx8W10pLmxlbmd0aDt3aGlsZShuLS0pZGVsZXRlIHJbdFtuXV19KHZvaWQgMD09PXR8fGNlLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFjZS5pc0VtcHR5T2JqZWN0KHQpfX07dmFyIF89bmV3IEIsej1uZXcgQixYPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sVT0vW0EtWl0vZztmdW5jdGlvbiBWKGUsdCxuKXt2YXIgcixpO2lmKHZvaWQgMD09PW4mJjE9PT1lLm5vZGVUeXBlKWlmKHI9ImRhdGEtIit0LnJlcGxhY2UoVSwiLSQmIikudG9Mb3dlckNhc2UoKSwic3RyaW5nIj09dHlwZW9mKG49ZS5nZXRBdHRyaWJ1dGUocikpKXt0cnl7bj0idHJ1ZSI9PT0oaT1uKXx8ImZhbHNlIiE9PWkmJigibnVsbCI9PT1pP251bGw6aT09PStpKyIiPytpOlgudGVzdChpKT9KU09OLnBhcnNlKGkpOmkpfWNhdGNoKGUpe316LnNldChlLHQsbil9ZWxzZSBuPXZvaWQgMDtyZXR1cm4gbn1jZS5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHouaGFzRGF0YShlKXx8Xy5oYXNEYXRhKGUpfSxkYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gei5hY2Nlc3MoZSx0LG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7ei5yZW1vdmUoZSx0KX0sX2RhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBfLmFjY2VzcyhlLHQsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7Xy5yZW1vdmUoZSx0KX19KSxjZS5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT16LmdldChvKSwxPT09by5ub2RlVHlwZSYmIV8uZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9RihyLnNsaWNlKDUpKSxWKG8scixpW3JdKSk7Xy5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe3ouc2V0KHRoaXMsbil9KTpNKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9ei5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1WKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe3ouc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt6LnJlbW92ZSh0aGlzLGUpfSl9fSksY2UuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoZSlyZXR1cm4gdD0odHx8ImZ4IikrInF1ZXVlIixyPV8uZ2V0KGUsdCksbiYmKCFyfHxBcnJheS5pc0FycmF5KG4pP3I9Xy5hY2Nlc3MoZSx0LGNlLm1ha2VBcnJheShuKSk6ci5wdXNoKG4pKSxyfHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ImZ4Ijt2YXIgbj1jZS5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1jZS5fcXVldWVIb29rcyhlLHQpOyJpbnByb2dyZXNzIj09PWkmJihpPW4uc2hpZnQoKSxyLS0pLGkmJigiZngiPT09dCYmbi51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIG8uc3RvcCxpLmNhbGwoZSxmdW5jdGlvbigpe2NlLmRlcXVldWUoZSx0KX0sbykpLCFyJiZvJiZvLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10KyJxdWV1ZUhvb2tzIjtyZXR1cm4gXy5nZXQoZSxuKXx8Xy5hY2Nlc3MoZSxuLHtlbXB0eTpjZS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7Xy5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksY2UuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbih0LG4pe3ZhciBlPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0JiYobj10LHQ9ImZ4IixlLS0pLGFyZ3VtZW50cy5sZW5ndGg8ZT9jZS5xdWV1ZSh0aGlzWzBdLHQpOnZvaWQgMD09PW4/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1jZS5xdWV1ZSh0aGlzLHQsbik7Y2UuX3F1ZXVlSG9va3ModGhpcyx0KSwiZngiPT09dCYmImlucHJvZ3Jlc3MiIT09ZVswXSYmY2UuZGVxdWV1ZSh0aGlzLHQpfSl9LGRlcXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2NlLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Y2UuRGVmZXJyZWQoKSxvPXRoaXMsYT10aGlzLmxlbmd0aCxzPWZ1bmN0aW9uKCl7LS1yfHxpLnJlc29sdmVXaXRoKG8sW29dKX07InN0cmluZyIhPXR5cGVvZiBlJiYodD1lLGU9dm9pZCAwKSxlPWV8fCJmeCI7d2hpbGUoYS0tKShuPV8uZ2V0KG9bYV0sZSsicXVldWVIb29rcyIpKSYmbi5lbXB0eSYmKHIrKyxuLmVtcHR5LmFkZChzKSk7cmV0dXJuIHMoKSxpLnByb21pc2UodCl9fSk7dmFyIEc9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsWT1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrRysiKShbYS16JV0qKSQiLCJpIiksUT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLEo9Qy5kb2N1bWVudEVsZW1lbnQsSz1mdW5jdGlvbihlKXtyZXR1cm4gY2UuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfSxaPXtjb21wb3NlZDohMH07Si5nZXRSb290Tm9kZSYmKEs9ZnVuY3Rpb24oZSl7cmV0dXJuIGNlLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShaKT09PWUub3duZXJEb2N1bWVudH0pO3ZhciBlZT1mdW5jdGlvbihlLHQpe3JldHVybiJub25lIj09PShlPXR8fGUpLnN0eWxlLmRpc3BsYXl8fCIiPT09ZS5zdHlsZS5kaXNwbGF5JiZLKGUpJiYibm9uZSI9PT1jZS5jc3MoZSwiZGlzcGxheSIpfTtmdW5jdGlvbiB0ZShlLHQsbixyKXt2YXIgaSxvLGE9MjAscz1yP2Z1bmN0aW9uKCl7cmV0dXJuIHIuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIGNlLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChjZS5jc3NOdW1iZXJbdF0/IiI6InB4IiksYz1lLm5vZGVUeXBlJiYoY2UuY3NzTnVtYmVyW3RdfHwicHgiIT09bCYmK3UpJiZZLmV4ZWMoY2UuY3NzKGUsdCkpO2lmKGMmJmNbM10hPT1sKXt1Lz0yLGw9bHx8Y1szXSxjPSt1fHwxO3doaWxlKGEtLSljZS5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLGNlLnN0eWxlKGUsdCxjK2wpLG49bnx8W119cmV0dXJuIG4mJihjPStjfHwrdXx8MCxpPW5bMV0/YysoblsxXSsxKSpuWzJdOituWzJdLHImJihyLnVuaXQ9bCxyLnN0YXJ0PWMsci5lbmQ9aSkpLGl9dmFyIG5lPXt9O2Z1bmN0aW9uIHJlKGUsdCl7Zm9yKHZhciBuLHIsaSxvLGEscyx1LGw9W10sYz0wLGY9ZS5sZW5ndGg7YzxmO2MrKykocj1lW2NdKS5zdHlsZSYmKG49ci5zdHlsZS5kaXNwbGF5LHQ/KCJub25lIj09PW4mJihsW2NdPV8uZ2V0KHIsImRpc3BsYXkiKXx8bnVsbCxsW2NdfHwoci5zdHlsZS5kaXNwbGF5PSIiKSksIiI9PT1yLnN0eWxlLmRpc3BsYXkmJmVlKHIpJiYobFtjXT0odT1hPW89dm9pZCAwLGE9KGk9cikub3duZXJEb2N1bWVudCxzPWkubm9kZU5hbWUsKHU9bmVbc10pfHwobz1hLmJvZHkuYXBwZW5kQ2hpbGQoYS5jcmVhdGVFbGVtZW50KHMpKSx1PWNlLmNzcyhvLCJkaXNwbGF5Iiksby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pLCJub25lIj09PXUmJih1PSJibG9jayIpLG5lW3NdPXUpKSkpOiJub25lIiE9PW4mJihsW2NdPSJub25lIixfLnNldChyLCJkaXNwbGF5IixuKSkpO2ZvcihjPTA7YzxmO2MrKyludWxsIT1sW2NdJiYoZVtjXS5zdHlsZS5kaXNwbGF5PWxbY10pO3JldHVybiBlfWNlLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiByZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiByZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtlZSh0aGlzKT9jZSh0aGlzKS5zaG93KCk6Y2UodGhpcykuaGlkZSgpfSl9fSk7dmFyIHhlLGJlLHdlPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLFRlPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLENlPS9eJHxebW9kdWxlJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaTt4ZT1DLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoYmU9Qy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGJlLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxiZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IikseGUuYXBwZW5kQ2hpbGQoYmUpLGxlLmNoZWNrQ2xvbmU9eGUuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLHhlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIsbGUubm9DbG9uZUNoZWNrZWQ9ISF4ZS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUseGUuaW5uZXJIVE1MPSI8b3B0aW9uPjwvb3B0aW9uPiIsbGUub3B0aW9uPSEheGUubGFzdENoaWxkO3ZhciBrZT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O2Z1bmN0aW9uIFNlKGUsdCl7dmFyIG47cmV0dXJuIG49InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodHx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbD9lLnF1ZXJ5U2VsZWN0b3JBbGwodHx8IioiKTpbXSx2b2lkIDA9PT10fHx0JiZmZShlLHQpP2NlLm1lcmdlKFtlXSxuKTpufWZ1bmN0aW9uIEVlKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKV8uc2V0KGVbbl0sImdsb2JhbEV2YWwiLCF0fHxfLmdldCh0W25dLCJnbG9iYWxFdmFsIikpfWtlLnRib2R5PWtlLnRmb290PWtlLmNvbGdyb3VwPWtlLmNhcHRpb249a2UudGhlYWQsa2UudGg9a2UudGQsbGUub3B0aW9ufHwoa2Uub3B0Z3JvdXA9a2Uub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBqZT0vPHwmIz9cdys7LztmdW5jdGlvbiBBZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhLHMsdSxsLGMsZj10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwPVtdLGQ9MCxoPWUubGVuZ3RoO2Q8aDtkKyspaWYoKG89ZVtkXSl8fDA9PT1vKWlmKCJvYmplY3QiPT09eChvKSljZS5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYoamUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KFRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1rZVtzXXx8a2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStjZS5odG1sUHJlZmlsdGVyKG8pK3VbMl0sYz11WzBdO3doaWxlKGMtLSlhPWEubGFzdENoaWxkO2NlLm1lcmdlKHAsYS5jaGlsZE5vZGVzKSwoYT1mLmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2UgcC5wdXNoKHQuY3JlYXRlVGV4dE5vZGUobykpO2YudGV4dENvbnRlbnQ9IiIsZD0wO3doaWxlKG89cFtkKytdKWlmKHImJi0xPGNlLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPUsobyksYT1TZShmLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxsJiZFZShhKSxuKXtjPTA7d2hpbGUobz1hW2MrK10pQ2UudGVzdChvLnR5cGV8fCIiKSYmbi5wdXNoKG8pfXJldHVybiBmfXZhciBEZT0vXihbXi5dKikoPzpcLiguKyl8KS87ZnVuY3Rpb24gTmUoKXtyZXR1cm4hMH1mdW5jdGlvbiBxZSgpe3JldHVybiExfWZ1bmN0aW9uIExlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpTGUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9cWU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGNlKCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1hLmd1aWR8fChhLmd1aWQ9Y2UuZ3VpZCsrKSksZS5lYWNoKGZ1bmN0aW9uKCl7Y2UuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBIZShlLHIsdCl7dD8oXy5zZXQoZSxyLCExKSxjZS5ldmVudC5hZGQoZSxyLHtuYW1lc3BhY2U6ITEsaGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdCxuPV8uZ2V0KHRoaXMscik7aWYoMSZlLmlzVHJpZ2dlciYmdGhpc1tyXSl7aWYobikoY2UuZXZlbnQuc3BlY2lhbFtyXXx8e30pLmRlbGVnYXRlVHlwZSYmZS5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKG49YWUuY2FsbChhcmd1bWVudHMpLF8uc2V0KHRoaXMscixuKSx0aGlzW3JdKCksdD1fLmdldCh0aGlzLHIpLF8uc2V0KHRoaXMsciwhMSksbiE9PXQpcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLHR9ZWxzZSBuJiYoXy5zZXQodGhpcyxyLGNlLmV2ZW50LnRyaWdnZXIoblswXSxuLnNsaWNlKDEpLHRoaXMpKSxlLnN0b3BQcm9wYWdhdGlvbigpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9TmUpfX0pKTp2b2lkIDA9PT1fLmdldChlLHIpJiZjZS5ldmVudC5hZGQoZSxyLE5lKX1jZS5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvLGEscyx1LGwsYyxmLHAsZCxoLGcsdj1fLmdldCh0KTtpZigkKHQpKXtuLmhhbmRsZXImJihuPShvPW4pLmhhbmRsZXIsaT1vLnNlbGVjdG9yKSxpJiZjZS5maW5kLm1hdGNoZXNTZWxlY3RvcihKLGkpLG4uZ3VpZHx8KG4uZ3VpZD1jZS5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNlJiZjZS5ldmVudC50cmlnZ2VyZWQhPT1lLnR5cGU/Y2UuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChEKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9RGUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1jZS5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShpP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkLGY9Y2UuZXZlbnQuc3BlY2lhbFtkXXx8e30sYz1jZS5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmY2UuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChpKSxuYW1lc3BhY2U6aC5qb2luKCIuIil9LG8pLChwPXVbZF0pfHwoKHA9dVtkXT1bXSkuZGVsZWdhdGVDb3VudD0wLGYuc2V0dXAmJiExIT09Zi5zZXR1cC5jYWxsKHQscixoLGEpfHx0LmFkZEV2ZW50TGlzdGVuZXImJnQuYWRkRXZlbnRMaXN0ZW5lcihkLGEpKSxmLmFkZCYmKGYuYWRkLmNhbGwodCxjKSxjLmhhbmRsZXIuZ3VpZHx8KGMuaGFuZGxlci5ndWlkPW4uZ3VpZCkpLGk/cC5zcGxpY2UocC5kZWxlZ2F0ZUNvdW50KyssMCxjKTpwLnB1c2goYyksY2UuZXZlbnQuZ2xvYmFsW2RdPSEwKX19LHJlbW92ZTpmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvLGEscyx1LGwsYyxmLHAsZCxoLGcsdj1fLmhhc0RhdGEoZSkmJl8uZ2V0KGUpO2lmKHYmJih1PXYuZXZlbnRzKSl7bD0odD0odHx8IiIpLm1hdGNoKEQpfHxbIiJdKS5sZW5ndGg7d2hpbGUobC0tKWlmKGQ9Zz0ocz1EZS5leGVjKHRbbF0pfHxbXSlbMV0saD0oc1syXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLGQpe2Y9Y2UuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fGNlLnJlbW92ZUV2ZW50KGUsZCx2LmhhbmRsZSksZGVsZXRlIHVbZF0pfWVsc2UgZm9yKGQgaW4gdSljZS5ldmVudC5yZW1vdmUoZSxkK3RbbF0sbixyLCEwKTtjZS5pc0VtcHR5T2JqZWN0KHUpJiZfLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1jZS5ldmVudC5maXgoZSksbD0oXy5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW3UudHlwZV18fFtdLGM9Y2UuZXZlbnQuc3BlY2lhbFt1LnR5cGVdfHx7fTtmb3Ioc1swXT11LHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXNbdF09YXJndW1lbnRzW3RdO2lmKHUuZGVsZWdhdGVUYXJnZXQ9dGhpcywhYy5wcmVEaXNwYXRjaHx8ITEhPT1jLnByZURpc3BhdGNoLmNhbGwodGhpcyx1KSl7YT1jZS5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChjZS5ldmVudC5zcGVjaWFsW28ub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxvLmhhbmRsZXIpLmFwcGx5KGkuZWxlbSxzKSkmJiExPT09KHUucmVzdWx0PXIpJiYodS5wcmV2ZW50RGVmYXVsdCgpLHUuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyx1KSx1LnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzPVtdLHU9dC5kZWxlZ2F0ZUNvdW50LGw9ZS50YXJnZXQ7aWYodSYmbC5ub2RlVHlwZSYmISgiY2xpY2siPT09ZS50eXBlJiYxPD1lLmJ1dHRvbikpZm9yKDtsIT09dGhpcztsPWwucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bC5ub2RlVHlwZSYmKCJjbGljayIhPT1lLnR5cGV8fCEwIT09bC5kaXNhYmxlZCkpe2ZvcihvPVtdLGE9e30sbj0wO248dTtuKyspdm9pZCAwPT09YVtpPShyPXRbbl0pLnNlbGVjdG9yKyIgIl0mJihhW2ldPXIubmVlZHNDb250ZXh0Py0xPGNlKGksdGhpcykuaW5kZXgobCk6Y2UuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShjZS5FdmVudC5wcm90b3R5cGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OnYoZSk/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGUodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFt0XX0sc2V0OmZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KX19KX0sZml4OmZ1bmN0aW9uKGUpe3JldHVybiBlW2NlLmV4cGFuZG9dP2U6bmV3IGNlLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHdlLnRlc3QodC50eXBlKSYmdC5jbGljayYmZmUodCwiaW5wdXQiKSYmSGUodCwiY2xpY2siLCEwKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzfHxlO3JldHVybiB3ZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJmZlKHQsImlucHV0IikmJkhlKHQsImNsaWNrIiksITB9LF9kZWZhdWx0OmZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O3JldHVybiB3ZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJmZlKHQsImlucHV0IikmJl8uZ2V0KHQsImNsaWNrIil8fGZlKHQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUucmVzdWx0JiZlLm9yaWdpbmFsRXZlbnQmJihlLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9ZS5yZXN1bHQpfX19fSxjZS5yZW1vdmVFdmVudD1mdW5jdGlvbihlLHQsbil7ZS5yZW1vdmVFdmVudExpc3RlbmVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuKX0sY2UuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjZS5FdmVudCkpcmV0dXJuIG5ldyBjZS5FdmVudChlLHQpO2UmJmUudHlwZT8odGhpcy5vcmlnaW5hbEV2ZW50PWUsdGhpcy50eXBlPWUudHlwZSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1lLmRlZmF1bHRQcmV2ZW50ZWR8fHZvaWQgMD09PWUuZGVmYXVsdFByZXZlbnRlZCYmITE9PT1lLnJldHVyblZhbHVlP05lOnFlLHRoaXMudGFyZ2V0PWUudGFyZ2V0JiYzPT09ZS50YXJnZXQubm9kZVR5cGU/ZS50YXJnZXQucGFyZW50Tm9kZTplLnRhcmdldCx0aGlzLmN1cnJlbnRUYXJnZXQ9ZS5jdXJyZW50VGFyZ2V0LHRoaXMucmVsYXRlZFRhcmdldD1lLnJlbGF0ZWRUYXJnZXQpOnRoaXMudHlwZT1lLHQmJmNlLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbY2UuZXhwYW5kb109ITB9LGNlLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6Y2UuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOnFlLGlzUHJvcGFnYXRpb25TdG9wcGVkOnFlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOnFlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPU5lLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPU5lLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1OZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sY2UuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCxjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDohMH0sY2UuZXZlbnQuYWRkUHJvcCksY2UuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24ocixpKXtmdW5jdGlvbiBvKGUpe2lmKEMuZG9jdW1lbnRNb2RlKXt2YXIgdD1fLmdldCh0aGlzLCJoYW5kbGUiKSxuPWNlLmV2ZW50LmZpeChlKTtuLnR5cGU9ImZvY3VzaW4iPT09ZS50eXBlPyJmb2N1cyI6ImJsdXIiLG4uaXNTaW11bGF0ZWQ9ITAsdChlKSxuLnRhcmdldD09PW4uY3VycmVudFRhcmdldCYmdChuKX1lbHNlIGNlLmV2ZW50LnNpbXVsYXRlKGksZS50YXJnZXQsY2UuZXZlbnQuZml4KGUpKX1jZS5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlO2lmKEhlKHRoaXMsciwhMCksIUMuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPV8uZ2V0KHRoaXMsaSkpfHx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoaSxvKSxfLnNldCh0aGlzLGksKGV8fDApKzEpfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEhlKHRoaXMsciksITB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU7aWYoIUMuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPV8uZ2V0KHRoaXMsaSktMSk/Xy5zZXQodGhpcyxpLGUpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoaSxvKSxfLnJlbW92ZSh0aGlzLGkpKX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIF8uZ2V0KGUudGFyZ2V0LHIpfSxkZWxlZ2F0ZVR5cGU6aX0sY2UuZXZlbnQuc3BlY2lhbFtpXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1DLmRvY3VtZW50TW9kZT90aGlzOmUsbj1fLmdldCh0LGkpO258fChDLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoaSxvKTplLmFkZEV2ZW50TGlzdGVuZXIocixvLCEwKSksXy5zZXQodCxpLChufHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1DLmRvY3VtZW50TW9kZT90aGlzOmUsbj1fLmdldCh0LGkpLTE7bj9fLnNldCh0LGksbik6KEMuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLG8pOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLG8sITApLF8ucmVtb3ZlKHQsaSkpfX19KSxjZS5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe2NlLmV2ZW50LnNwZWNpYWxbZV09e2RlbGVnYXRlVHlwZTppLGJpbmRUeXBlOmksaGFuZGxlOmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5yZWxhdGVkVGFyZ2V0LHI9ZS5oYW5kbGVPYmo7cmV0dXJuIG4mJihuPT09dGhpc3x8Y2UuY29udGFpbnModGhpcyxuKSl8fChlLnR5cGU9ci5vcmlnVHlwZSx0PXIuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS50eXBlPWkpLHR9fX0pLGNlLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIExlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gTGUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosY2UoZS5kZWxlZ2F0ZVRhcmdldCkub2ZmKHIubmFtZXNwYWNlP3Iub3JpZ1R5cGUrIi4iK3IubmFtZXNwYWNlOnIub3JpZ1R5cGUsci5zZWxlY3RvcixyLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBlKXtmb3IoaSBpbiBlKXRoaXMub2ZmKGksdCxlW2ldKTtyZXR1cm4gdGhpc31yZXR1cm4hMSE9PXQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0fHwobj10LHQ9dm9pZCAwKSwhMT09PW4mJihuPXFlKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtjZS5ldmVudC5yZW1vdmUodGhpcyxlLG4sdCl9KX19KTt2YXIgT2U9LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksUGU9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksTWU9L15ccyo8IVxbQ0RBVEFcW3xcXVxdPlxzKiQvZztmdW5jdGlvbiBSZShlLHQpe3JldHVybiBmZShlLCJ0YWJsZSIpJiZmZSgxMSE9PXQubm9kZVR5cGU/dDp0LmZpcnN0Q2hpbGQsInRyIikmJmNlKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIEllKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIEZlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihfLmhhc0RhdGEoZSkmJihzPV8uZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gXy5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspY2UuZXZlbnQuYWRkKHQsaSxzW2ldW25dKTt6Lmhhc0RhdGEoZSkmJihvPXouYWNjZXNzKGUpLGE9Y2UuZXh0ZW5kKHt9LG8pLHouc2V0KHQsYSkpfX1mdW5jdGlvbiAkZShuLHIsaSxvKXtyPWcocik7dmFyIGUsdCxhLHMsdSxsLGM9MCxmPW4ubGVuZ3RoLHA9Zi0xLGQ9clswXSxoPXYoZCk7aWYoaHx8MTxmJiYic3RyaW5nIj09dHlwZW9mIGQmJiFsZS5jaGVja0Nsb25lJiZQZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksJGUodCxyLGksbyl9KTtpZihmJiYodD0oZT1BZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Y2UubWFwKFNlKGUsInNjcmlwdCIpLEllKSkubGVuZ3RoO2M8ZjtjKyspdT1lLGMhPT1wJiYodT1jZS5jbG9uZSh1LCEwLCEwKSxzJiZjZS5tZXJnZShhLFNlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxjZS5tYXAoYSxXZSksYz0wO2M8cztjKyspdT1hW2NdLENlLnRlc3QodS50eXBlfHwiIikmJiFfLmFjY2Vzcyh1LCJnbG9iYWxFdmFsIikmJmNlLmNvbnRhaW5zKGwsdSkmJih1LnNyYyYmIm1vZHVsZSIhPT0odS50eXBlfHwiIikudG9Mb3dlckNhc2UoKT9jZS5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJmNlLl9ldmFsVXJsKHUuc3JjLHtub25jZTp1Lm5vbmNlfHx1LmdldEF0dHJpYnV0ZSgibm9uY2UiKX0sbCk6bSh1LnRleHRDb250ZW50LnJlcGxhY2UoTWUsIiIpLHUsbCkpfXJldHVybiBufWZ1bmN0aW9uIEJlKGUsdCxuKXtmb3IodmFyIHIsaT10P2NlLmZpbHRlcih0LGUpOmUsbz0wO251bGwhPShyPWlbb10pO28rKylufHwxIT09ci5ub2RlVHlwZXx8Y2UuY2xlYW5EYXRhKFNlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZLKHIpJiZFZShTZShyLCJzY3JpcHQiKSksci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpKTtyZXR1cm4gZX1jZS5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPUsoZSk7aWYoIShsZS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Y2UuaXNYTUxEb2MoZSkpKWZvcihhPVNlKGMpLHI9MCxpPShvPVNlKGUpKS5sZW5ndGg7cjxpO3IrKylzPW9bcl0sdT1hW3JdLHZvaWQgMCwiaW5wdXQiPT09KGw9dS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSYmd2UudGVzdChzLnR5cGUpP3UuY2hlY2tlZD1zLmNoZWNrZWQ6ImlucHV0IiE9PWwmJiJ0ZXh0YXJlYSIhPT1sfHwodS5kZWZhdWx0VmFsdWU9cy5kZWZhdWx0VmFsdWUpO2lmKHQpaWYobilmb3Iobz1vfHxTZShlKSxhPWF8fFNlKGMpLHI9MCxpPW8ubGVuZ3RoO3I8aTtyKyspRmUob1tyXSxhW3JdKTtlbHNlIEZlKGUsYyk7cmV0dXJuIDA8KGE9U2UoYywic2NyaXB0IikpLmxlbmd0aCYmRWUoYSwhZiYmU2UoZSwic2NyaXB0IikpLGN9LGNsZWFuRGF0YTpmdW5jdGlvbihlKXtmb3IodmFyIHQsbixyLGk9Y2UuZXZlbnQuc3BlY2lhbCxvPTA7dm9pZCAwIT09KG49ZVtvXSk7bysrKWlmKCQobikpe2lmKHQ9bltfLmV4cGFuZG9dKXtpZih0LmV2ZW50cylmb3IociBpbiB0LmV2ZW50cylpW3JdP2NlLmV2ZW50LnJlbW92ZShuLHIpOmNlLnJlbW92ZUV2ZW50KG4scix0LmhhbmRsZSk7bltfLmV4cGFuZG9dPXZvaWQgMH1uW3ouZXhwYW5kb10mJihuW3ouZXhwYW5kb109dm9pZCAwKX19fSksY2UuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIEJlKHRoaXMsZSwhMCl9LHJlbW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gQmUodGhpcyxlKX0sdGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gTSh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP2NlLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gJGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fFJlKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiAkZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9UmUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiAkZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiAkZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoY2UuY2xlYW5EYXRhKFNlKGUsITEpKSxlLnRleHRDb250ZW50PSIiKTtyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1udWxsIT1lJiZlLHQ9bnVsbD09dD9lOnQsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gY2UuY2xvbmUodGhpcyxlLHQpfSl9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIE0odGhpcyxmdW5jdGlvbihlKXt2YXIgdD10aGlzWzBdfHx7fSxuPTAscj10aGlzLmxlbmd0aDtpZih2b2lkIDA9PT1lJiYxPT09dC5ub2RlVHlwZSlyZXR1cm4gdC5pbm5lckhUTUw7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYhT2UudGVzdChlKSYmIWtlWyhUZS5leGVjKGUpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7ZT1jZS5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKGNlLmNsZWFuRGF0YShTZSh0LCExKSksdC5pbm5lckhUTUw9ZSk7dD0wfWNhdGNoKGUpe319dCYmdGhpcy5lbXB0eSgpLmFwcGVuZChlKX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBuPVtdO3JldHVybiAkZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7Y2UuaW5BcnJheSh0aGlzLG4pPDAmJihjZS5jbGVhbkRhdGEoU2UodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxjZS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oZSxhKXtjZS5mbltlXT1mdW5jdGlvbihlKXtmb3IodmFyIHQsbj1bXSxyPWNlKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLGNlKHJbb10pW2FdKHQpLHMuYXBwbHkobix0LmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIF9lPW5ldyBSZWdFeHAoIl4oIitHKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksemU9L14tLS8sWGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9aWUpLHQuZ2V0Q29tcHV0ZWRTdHlsZShlKX0sVWU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz17fTtmb3IoaSBpbiB0KW9baV09ZS5zdHlsZVtpXSxlLnN0eWxlW2ldPXRbaV07Zm9yKGkgaW4gcj1uLmNhbGwoZSksdCllLnN0eWxlW2ldPW9baV07cmV0dXJuIHJ9LFZlPW5ldyBSZWdFeHAoUS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBHZShlLHQsbil7dmFyIHIsaSxvLGEscz16ZS50ZXN0KHQpLHU9ZS5zdHlsZTtyZXR1cm4obj1ufHxYZShlKSkmJihhPW4uZ2V0UHJvcGVydHlWYWx1ZSh0KXx8blt0XSxzJiZhJiYoYT1hLnJlcGxhY2UodmUsIiQxIil8fHZvaWQgMCksIiIhPT1hfHxLKGUpfHwoYT1jZS5zdHlsZShlLHQpKSwhbGUucGl4ZWxCb3hTdHlsZXMoKSYmX2UudGVzdChhKSYmVmUudGVzdCh0KSYmKHI9dS53aWR0aCxpPXUubWluV2lkdGgsbz11Lm1heFdpZHRoLHUubWluV2lkdGg9dS5tYXhXaWR0aD11LndpZHRoPWEsYT1uLndpZHRoLHUud2lkdGg9cix1Lm1pbldpZHRoPWksdS5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gWWUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIsSi5hcHBlbmRDaGlsZCh1KS5hcHBlbmRDaGlsZChsKTt2YXIgZT1pZS5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxKLnJlbW92ZUNoaWxkKHUpLGw9bnVsbH19ZnVuY3Rpb24gdChlKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGUpKX12YXIgbixyLGksbyxhLHMsdT1DLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9Qy5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlJiYobC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGwuY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixsZS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsY2UuZXh0ZW5kKGxlLHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBlKCkscn0scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLG99LHBpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLG59LHJlbGlhYmxlTWFyZ2luTGVmdDpmdW5jdGlvbigpe3JldHVybiBlKCksc30sc2Nyb2xsYm94U2l6ZTpmdW5jdGlvbigpe3JldHVybiBlKCksaX0scmVsaWFibGVUckRpbWVuc2lvbnM6ZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtyZXR1cm4gbnVsbD09YSYmKGU9Qy5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLHQ9Qy5jcmVhdGVFbGVtZW50KCJ0ciIpLG49Qy5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlIix0LnN0eWxlLmNzc1RleHQ9ImJveC1zaXppbmc6Y29udGVudC1ib3g7Ym9yZGVyOjFweCBzb2xpZCIsdC5zdHlsZS5oZWlnaHQ9IjFweCIsbi5zdHlsZS5oZWlnaHQ9IjlweCIsbi5zdHlsZS5kaXNwbGF5PSJibG9jayIsSi5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPWllLmdldENvbXB1dGVkU3R5bGUodCksYT1wYXJzZUludChyLmhlaWdodCwxMCkrcGFyc2VJbnQoci5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQoci5ib3JkZXJCb3R0b21XaWR0aCwxMCk9PT10Lm9mZnNldEhlaWdodCxKLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgUWU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLEplPUMuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsS2U9e307ZnVuY3Rpb24gWmUoZSl7dmFyIHQ9Y2UuY3NzUHJvcHNbZV18fEtlW2VdO3JldHVybiB0fHwoZSBpbiBKZT9lOktlW2VdPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49UWUubGVuZ3RoO3doaWxlKG4tLSlpZigoZT1RZVtuXSt0KWluIEplKXJldHVybiBlfShlKXx8ZSl9dmFyIGV0PS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyx0dD17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sbnQ9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9O2Z1bmN0aW9uIHJ0KGUsdCxuKXt2YXIgcj1ZLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gaXQoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wLGw9MDtpZihuPT09KHI/ImJvcmRlciI6ImNvbnRlbnQiKSlyZXR1cm4gMDtmb3IoO2E8NDthKz0yKSJtYXJnaW4iPT09biYmKGwrPWNlLmNzcyhlLG4rUVthXSwhMCxpKSkscj8oImNvbnRlbnQiPT09biYmKHUtPWNlLmNzcyhlLCJwYWRkaW5nIitRW2FdLCEwLGkpKSwibWFyZ2luIiE9PW4mJih1LT1jZS5jc3MoZSwiYm9yZGVyIitRW2FdKyJXaWR0aCIsITAsaSkpKToodSs9Y2UuY3NzKGUsInBhZGRpbmciK1FbYV0sITAsaSksInBhZGRpbmciIT09bj91Kz1jZS5jc3MoZSwiYm9yZGVyIitRW2FdKyJXaWR0aCIsITAsaSk6cys9Y2UuY3NzKGUsImJvcmRlciIrUVthXSsiV2lkdGgiLCEwLGkpKTtyZXR1cm4hciYmMDw9byYmKHUrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGVbIm9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSldLW8tdS1zLS41KSl8fDApLHUrbH1mdW5jdGlvbiBvdChlLHQsbil7dmFyIHI9WGUoZSksaT0oIWxlLmJveFNpemluZ1JlbGlhYmxlKCl8fG4pJiYiYm9yZGVyLWJveCI9PT1jZS5jc3MoZSwiYm94U2l6aW5nIiwhMSxyKSxvPWksYT1HZShlLHQscikscz0ib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtpZihfZS50ZXN0KGEpKXtpZighbilyZXR1cm4gYTthPSJhdXRvIn1yZXR1cm4oIWxlLmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCFsZS5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZmZShlLCJ0ciIpfHwiYXV0byI9PT1hfHwhcGFyc2VGbG9hdChhKSYmImlubGluZSI9PT1jZS5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1jZS5jc3MoZSwiYm94U2l6aW5nIiwhMSxyKSwobz1zIGluIGUpJiYoYT1lW3NdKSksKGE9cGFyc2VGbG9hdChhKXx8MCkraXQoZSx0LG58fChpPyJib3JkZXIiOiJjb250ZW50IiksbyxyLGEpKyJweCJ9ZnVuY3Rpb24gYXQoZSx0LG4scixpKXtyZXR1cm4gbmV3IGF0LnByb3RvdHlwZS5pbml0KGUsdCxuLHIsaSl9Y2UuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGUsdCl7aWYodCl7dmFyIG49R2UoZSwib3BhY2l0eSIpO3JldHVybiIiPT09bj8iMSI6bn19fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGNvbHVtbkNvdW50OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9Rih0KSx1PXplLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PVplKHMpKSxhPWNlLmNzc0hvb2tzW3RdfHxjZS5jc3NIb29rc1tzXSx2b2lkIDA9PT1uKXJldHVybiBhJiYiZ2V0ImluIGEmJnZvaWQgMCE9PShpPWEuZ2V0KGUsITEscikpP2k6bFt0XTsic3RyaW5nIj09PShvPXR5cGVvZiBuKSYmKGk9WS5leGVjKG4pKSYmaVsxXSYmKG49dGUoZSx0LGkpLG89Im51bWJlciIpLG51bGwhPW4mJm49PW4mJigibnVtYmVyIiE9PW98fHV8fChuKz1pJiZpWzNdfHwoY2UuY3NzTnVtYmVyW3NdPyIiOiJweCIpKSxsZS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPUYodCk7cmV0dXJuIHplLnRlc3QodCl8fCh0PVplKHMpKSwoYT1jZS5jc3NIb29rc1t0XXx8Y2UuY3NzSG9va3Nbc10pJiYiZ2V0ImluIGEmJihpPWEuZ2V0KGUsITAsbikpLHZvaWQgMD09PWkmJihpPUdlKGUsdCxyKSksIm5vcm1hbCI9PT1pJiZ0IGluIG50JiYoaT1udFt0XSksIiI9PT1ufHxuPyhvPXBhcnNlRmxvYXQoaSksITA9PT1ufHxpc0Zpbml0ZShvKT9vfHwwOmkpOml9fSksY2UuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtjZS5jc3NIb29rc1t1XT17Z2V0OmZ1bmN0aW9uKGUsdCxuKXtpZih0KXJldHVybiFldC50ZXN0KGNlLmNzcyhlLCJkaXNwbGF5IikpfHxlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoP290KGUsdSxuKTpVZShlLHR0LGZ1bmN0aW9uKCl7cmV0dXJuIG90KGUsdSxuKX0pfSxzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9WGUoZSksbz0hbGUuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Y2UuY3NzKGUsImJveFNpemluZyIsITEsaSkscz1uP2l0KGUsdSxuLGEsaSk6MDtyZXR1cm4gYSYmbyYmKHMtPU1hdGguY2VpbChlWyJvZmZzZXQiK3VbMF0udG9VcHBlckNhc2UoKSt1LnNsaWNlKDEpXS1wYXJzZUZsb2F0KGlbdV0pLWl0KGUsdSwiYm9yZGVyIiwhMSxpKS0uNSkpLHMmJihyPVkuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1jZS5jc3MoZSx1KSkscnQoMCx0LHMpfX19KSxjZS5jc3NIb29rcy5tYXJnaW5MZWZ0PVllKGxlLnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoR2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LVVlKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxjZS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oaSxvKXtjZS5jc3NIb29rc1tpK29dPXtleHBhbmQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj17fSxyPSJzdHJpbmciPT10eXBlb2YgZT9lLnNwbGl0KCIgIik6W2VdO3Q8NDt0KyspbltpK1FbdF0rb109clt0XXx8clt0LTJdfHxyWzBdO3JldHVybiBufX0sIm1hcmdpbiIhPT1pJiYoY2UuY3NzSG9va3NbaStvXS5zZXQ9cnQpfSksY2UuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTSh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVhlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPWNlLmNzcyhlLHRbYV0sITEscik7cmV0dXJuIG99cmV0dXJuIHZvaWQgMCE9PW4/Y2Uuc3R5bGUoZSx0LG4pOmNlLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKGNlLlR3ZWVuPWF0KS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmF0LGluaXQ6ZnVuY3Rpb24oZSx0LG4scixpLG8pe3RoaXMuZWxlbT1lLHRoaXMucHJvcD1uLHRoaXMuZWFzaW5nPWl8fGNlLmVhc2luZy5fZGVmYXVsdCx0aGlzLm9wdGlvbnM9dCx0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCksdGhpcy5lbmQ9cix0aGlzLnVuaXQ9b3x8KGNlLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9YXQucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOmF0LnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPWF0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1jZS5lYXNpbmdbdGhpcy5lYXNpbmddKGUsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9dD1lLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0K3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOmF0LnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319KS5pbml0LnByb3RvdHlwZT1hdC5wcm90b3R5cGUsKGF0LnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gMSE9PWUuZWxlbS5ub2RlVHlwZXx8bnVsbCE9ZS5lbGVtW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVtlLnByb3BdP2UuZWxlbVtlLnByb3BdOih0PWNlLmNzcyhlLmVsZW0sZS5wcm9wLCIiKSkmJiJhdXRvIiE9PXQ/dDowfSxzZXQ6ZnVuY3Rpb24oZSl7Y2UuZnguc3RlcFtlLnByb3BdP2NlLmZ4LnN0ZXBbZS5wcm9wXShlKToxIT09ZS5lbGVtLm5vZGVUeXBlfHwhY2UuY3NzSG9va3NbZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW1plKGUucHJvcCldP2UuZWxlbVtlLnByb3BdPWUubm93OmNlLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPWF0LnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LGNlLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxzd2luZzpmdW5jdGlvbihlKXtyZXR1cm4uNS1NYXRoLmNvcyhlKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LGNlLmZ4PWF0LnByb3RvdHlwZS5pbml0LGNlLmZ4LnN0ZXA9e307dmFyIHN0LHV0LGx0LGN0LGZ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxwdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIGR0KCl7dXQmJighMT09PUMuaGlkZGVuJiZpZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/aWUucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGR0KTppZS5zZXRUaW1lb3V0KGR0LGNlLmZ4LmludGVydmFsKSxjZS5meC50aWNrKCkpfWZ1bmN0aW9uIGh0KCl7cmV0dXJuIGllLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzdD12b2lkIDB9KSxzdD1EYXRlLm5vdygpfWZ1bmN0aW9uIGd0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49UVtyXSldPWlbInBhZGRpbmciK25dPWU7cmV0dXJuIHQmJihpLm9wYWNpdHk9aS53aWR0aD1lKSxpfWZ1bmN0aW9uIHZ0KGUsdCxuKXtmb3IodmFyIHIsaT0oeXQudHdlZW5lcnNbdF18fFtdKS5jb25jYXQoeXQudHdlZW5lcnNbIioiXSksbz0wLGE9aS5sZW5ndGg7bzxhO28rKylpZihyPWlbb10uY2FsbChuLHQsZSkpcmV0dXJuIHJ9ZnVuY3Rpb24geXQobyxlLHQpe3ZhciBuLGEscj0wLGk9eXQucHJlZmlsdGVycy5sZW5ndGgscz1jZS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9c3R8fGh0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpjZS5leHRlbmQoe30sZSksb3B0czpjZS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOmNlLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOnN0fHxodCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Y2UuVHdlZW4obyxsLm9wdHMsZSx0LGwub3B0cy5zcGVjaWFsRWFzaW5nW2VdfHxsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaChuKSxufSxzdG9wOmZ1bmN0aW9uKGUpe3ZhciB0PTAsbj1lP2wudHdlZW5zLmxlbmd0aDowO2lmKGEpcmV0dXJuIHRoaXM7Zm9yKGE9ITA7dDxuO3QrKylsLnR3ZWVuc1t0XS5ydW4oMSk7cmV0dXJuIGU/KHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbCxlXSkpOnMucmVqZWN0V2l0aChvLFtsLGVdKSx0aGlzfX0pLGM9bC5wcm9wcztmb3IoIWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYTtmb3IobiBpbiBlKWlmKGk9dFtyPUYobildLG89ZVtuXSxBcnJheS5pc0FycmF5KG8pJiYoaT1vWzFdLG89ZVtuXT1vWzBdKSxuIT09ciYmKGVbcl09byxkZWxldGUgZVtuXSksKGE9Y2UuY3NzSG9va3Nbcl0pJiYiZXhwYW5kImluIGEpZm9yKG4gaW4gbz1hLmV4cGFuZChvKSxkZWxldGUgZVtyXSxvKW4gaW4gZXx8KGVbbl09b1tuXSx0W25dPWkpO2Vsc2UgdFtyXT1pfShjLGwub3B0cy5zcGVjaWFsRWFzaW5nKTtyPGk7cisrKWlmKG49eXQucHJlZmlsdGVyc1tyXS5jYWxsKGwsbyxjLGwub3B0cykpcmV0dXJuIHYobi5zdG9wKSYmKGNlLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIGNlLm1hcChjLHZ0LGwpLHYobC5vcHRzLnN0YXJ0KSYmbC5vcHRzLnN0YXJ0LmNhbGwobyxsKSxsLnByb2dyZXNzKGwub3B0cy5wcm9ncmVzcykuZG9uZShsLm9wdHMuZG9uZSxsLm9wdHMuY29tcGxldGUpLmZhaWwobC5vcHRzLmZhaWwpLmFsd2F5cyhsLm9wdHMuYWx3YXlzKSxjZS5meC50aW1lcihjZS5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1jZS5BbmltYXRpb249Y2UuZXh0ZW5kKHl0LHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY3JlYXRlVHdlZW4oZSx0KTtyZXR1cm4gdGUobi5lbGVtLGUsWS5leGVjKHQpLG4pLG59XX0sdHdlZW5lcjpmdW5jdGlvbihlLHQpe3YoZSk/KHQ9ZSxlPVsiKiJdKTplPWUubWF0Y2goRCk7Zm9yKHZhciBuLHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspbj1lW3JdLHl0LnR3ZWVuZXJzW25dPXl0LnR3ZWVuZXJzW25dfHxbXSx5dC50d2VlbmVyc1tuXS51bnNoaWZ0KHQpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGwsYyxmPSJ3aWR0aCJpbiB0fHwiaGVpZ2h0ImluIHQscD10aGlzLGQ9e30saD1lLnN0eWxlLGc9ZS5ub2RlVHlwZSYmZWUoZSksdj1fLmdldChlLCJmeHNob3ciKTtmb3IociBpbiBuLnF1ZXVlfHwobnVsbD09KGE9Y2UuX3F1ZXVlSG9va3MoZSwiZngiKSkudW5xdWV1ZWQmJihhLnVucXVldWVkPTAscz1hLmVtcHR5LmZpcmUsYS5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7YS51bnF1ZXVlZHx8cygpfSksYS51bnF1ZXVlZCsrLHAuYWx3YXlzKGZ1bmN0aW9uKCl7cC5hbHdheXMoZnVuY3Rpb24oKXthLnVucXVldWVkLS0sY2UucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0sZnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Y2Uuc3R5bGUoZSxyKX1pZigodT0hY2UuaXNFbXB0eU9iamVjdCh0KSl8fCFjZS5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9Xy5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1jZS5jc3MoZSwiZGlzcGxheSIpKSYmKGw/Yz1sOihyZShbZV0sITApLGw9ZS5zdHlsZS5kaXNwbGF5fHxsLGM9Y2UuY3NzKGUsImRpc3BsYXkiKSxyZShbZV0pKSksKCJpbmxpbmUiPT09Y3x8ImlubGluZS1ibG9jayI9PT1jJiZudWxsIT1sKSYmIm5vbmUiPT09Y2UuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9Xy5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZyZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fHJlKFtlXSksXy5yZW1vdmUoZSwiZnhzaG93IiksZCljZS5zdHlsZShlLHIsZFtyXSl9KSksdT12dChnP3Zbcl06MCxyLHApLHIgaW4gdnx8KHZbcl09dS5zdGFydCxnJiYodS5lbmQ9dS5zdGFydCx1LnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihlLHQpe3Q/eXQucHJlZmlsdGVycy51bnNoaWZ0KGUpOnl0LnByZWZpbHRlcnMucHVzaChlKX19KSxjZS5zcGVlZD1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZSYmIm9iamVjdCI9PXR5cGVvZiBlP2NlLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fHYoZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIXYodCkmJnR9O3JldHVybiBjZS5meC5vZmY/ci5kdXJhdGlvbj0wOiJudW1iZXIiIT10eXBlb2Ygci5kdXJhdGlvbiYmKHIuZHVyYXRpb24gaW4gY2UuZnguc3BlZWRzP3IuZHVyYXRpb249Y2UuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Y2UuZnguc3BlZWRzLl9kZWZhdWx0KSxudWxsIT1yLnF1ZXVlJiYhMCE9PXIucXVldWV8fChyLnF1ZXVlPSJmeCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe3Yoci5vbGQpJiZyLm9sZC5jYWxsKHRoaXMpLHIucXVldWUmJmNlLmRlcXVldWUodGhpcyxyLnF1ZXVlKX0scn0sY2UuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGVlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1jZS5pc0VtcHR5T2JqZWN0KHQpLG89Y2Uuc3BlZWQoZSxuLHIpLGE9ZnVuY3Rpb24oKXt2YXIgZT15dCh0aGlzLGNlLmV4dGVuZCh7fSx0KSxvKTsoaXx8Xy5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Y2UudGltZXJzLHI9Xy5nZXQodGhpcyk7aWYodClyW3RdJiZyW3RdLnN0b3AmJmEoclt0XSk7ZWxzZSBmb3IodCBpbiByKXJbdF0mJnJbdF0uc3RvcCYmcHQudGVzdCh0KSYmYShyW3RdKTtmb3IodD1uLmxlbmd0aDt0LS07KW5bdF0uZWxlbSE9PXRoaXN8fG51bGwhPWkmJm5bdF0ucXVldWUhPT1pfHwoblt0XS5hbmltLnN0b3AobyksZT0hMSxuLnNwbGljZSh0LDEpKTshZSYmb3x8Y2UuZGVxdWV1ZSh0aGlzLGkpfSl9LGZpbmlzaDpmdW5jdGlvbihhKXtyZXR1cm4hMSE9PWEmJihhPWF8fCJmeCIpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ9Xy5nZXQodGhpcyksbj10W2ErInF1ZXVlIl0scj10W2ErInF1ZXVlSG9va3MiXSxpPWNlLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsY2UucXVldWUodGhpcyxhLFtdKSxyJiZyLnN0b3AmJnIuc3RvcC5jYWxsKHRoaXMsITApLGU9aS5sZW5ndGg7ZS0tOylpW2VdLmVsZW09PT10aGlzJiZpW2VdLnF1ZXVlPT09YSYmKGlbZV0uYW5pbS5zdG9wKCEwKSxpLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8bztlKyspbltlXSYmbltlXS5maW5pc2gmJm5bZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIHQuZmluaXNofSl9fSksY2UuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oZSxyKXt2YXIgaT1jZS5mbltyXTtjZS5mbltyXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGw9PWV8fCJib29sZWFuIj09dHlwZW9mIGU/aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dGhpcy5hbmltYXRlKGd0KHIsITApLGUsdCxuKX19KSxjZS5lYWNoKHtzbGlkZURvd246Z3QoInNob3ciKSxzbGlkZVVwOmd0KCJoaWRlIiksc2xpZGVUb2dnbGU6Z3QoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oZSxyKXtjZS5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxjZS50aW1lcnM9W10sY2UuZngudGljaz1mdW5jdGlvbigpe3ZhciBlLHQ9MCxuPWNlLnRpbWVycztmb3Ioc3Q9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxjZS5meC5zdG9wKCksc3Q9dm9pZCAwfSxjZS5meC50aW1lcj1mdW5jdGlvbihlKXtjZS50aW1lcnMucHVzaChlKSxjZS5meC5zdGFydCgpfSxjZS5meC5pbnRlcnZhbD0xMyxjZS5meC5zdGFydD1mdW5jdGlvbigpe3V0fHwodXQ9ITAsZHQoKSl9LGNlLmZ4LnN0b3A9ZnVuY3Rpb24oKXt1dD1udWxsfSxjZS5meC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sY2UuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1jZS5meCYmY2UuZnguc3BlZWRzW3JdfHxyLGU9ZXx8ImZ4Iix0aGlzLnF1ZXVlKGUsZnVuY3Rpb24oZSx0KXt2YXIgbj1pZS5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7aWUuY2xlYXJUaW1lb3V0KG4pfX0pfSxsdD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksY3Q9Qy5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKSxsdC50eXBlPSJjaGVja2JveCIsbGUuY2hlY2tPbj0iIiE9PWx0LnZhbHVlLGxlLm9wdFNlbGVjdGVkPWN0LnNlbGVjdGVkLChsdD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IixsdC50eXBlPSJyYWRpbyIsbGUucmFkaW9WYWx1ZT0idCI9PT1sdC52YWx1ZTt2YXIgbXQseHQ9Y2UuZXhwci5hdHRySGFuZGxlO2NlLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiBNKHRoaXMsY2UuYXR0cixlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Y2UucmVtb3ZlQXR0cih0aGlzLGUpfSl9fSksY2UuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Y2UucHJvcChlLHQsbik6KDE9PT1vJiZjZS5pc1hNTERvYyhlKXx8KGk9Y2UuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChjZS5leHByLm1hdGNoLmJvb2wudGVzdCh0KT9tdDp2b2lkIDApKSx2b2lkIDAhPT1uP251bGw9PT1uP3ZvaWQgY2UucmVtb3ZlQXR0cihlLHQpOmkmJiJzZXQiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOihlLnNldEF0dHJpYnV0ZSh0LG4rIiIpLG4pOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6bnVsbD09KHI9Y2UuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZighbGUucmFkaW9WYWx1ZSYmInJhZGlvIj09PXQmJmZlKGUsImlucHV0Iikpe3ZhciBuPWUudmFsdWU7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJ0eXBlIix0KSxuJiYoZS52YWx1ZT1uKSx0fX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wLGk9dCYmdC5tYXRjaChEKTtpZihpJiYxPT09ZS5ub2RlVHlwZSl3aGlsZShuPWlbcisrXSllLnJlbW92ZUF0dHJpYnV0ZShuKX19KSxtdD17c2V0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hMT09PXQ/Y2UucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LGNlLmVhY2goY2UuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGUsdCl7dmFyIGE9eHRbdF18fGNlLmZpbmQuYXR0cjt4dFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9eHRbb10seHRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCx4dFtvXT1pKSxyfX0pO3ZhciBidD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHd0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBUdChlKXtyZXR1cm4oZS5tYXRjaChEKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBDdChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBrdChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChEKXx8W119Y2UuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIE0odGhpcyxjZS5wcm9wLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tjZS5wcm9wRml4W2VdfHxlXX0pfX0pLGNlLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPWUubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm4gMT09PW8mJmNlLmlzWE1MRG9jKGUpfHwodD1jZS5wcm9wRml4W3RdfHx0LGk9Y2UucHJvcEhvb2tzW3RdKSx2b2lkIDAhPT1uP2kmJiJzZXQiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOmVbdF09bjppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOmVbdF19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihlKXt2YXIgdD1jZS5maW5kLmF0dHIoZSwidGFiaW5kZXgiKTtyZXR1cm4gdD9wYXJzZUludCh0LDEwKTpidC50ZXN0KGUubm9kZU5hbWUpfHx3dC50ZXN0KGUubm9kZU5hbWUpJiZlLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsZS5vcHRTZWxlY3RlZHx8KGNlLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3QmJih0LnNlbGVjdGVkSW5kZXgsdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSksY2UuZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7Y2UucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxjZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8sYTtyZXR1cm4gdih0KT90aGlzLmVhY2goZnVuY3Rpb24oZSl7Y2UodGhpcykuYWRkQ2xhc3ModC5jYWxsKHRoaXMsZSxDdCh0aGlzKSkpfSk6KGU9a3QodCkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihyPUN0KHRoaXMpLG49MT09PXRoaXMubm9kZVR5cGUmJiIgIitUdChyKSsiICIpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaT1lW29dLG4uaW5kZXhPZigiICIraSsiICIpPDAmJihuKz1pKyIgIik7YT1UdChuKSxyIT09YSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixhKX19KTp0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGE7cmV0dXJuIHYodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlKHRoaXMpLnJlbW92ZUNsYXNzKHQuY2FsbCh0aGlzLGUsQ3QodGhpcykpKX0pOmFyZ3VtZW50cy5sZW5ndGg/KGU9a3QodCkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihyPUN0KHRoaXMpLG49MT09PXRoaXMubm9kZVR5cGUmJiIgIitUdChyKSsiICIpe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspe2k9ZVtvXTt3aGlsZSgtMTxuLmluZGV4T2YoIiAiK2krIiAiKSluPW4ucmVwbGFjZSgiICIraSsiICIsIiAiKX1hPVR0KG4pLHIhPT1hJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGEpfX0pOnRoaXM6dGhpcy5hdHRyKCJjbGFzcyIsIiIpfSx0b2dnbGVDbGFzczpmdW5jdGlvbih0LG4pe3ZhciBlLHIsaSxvLGE9dHlwZW9mIHQscz0ic3RyaW5nIj09PWF8fEFycmF5LmlzQXJyYXkodCk7cmV0dXJuIHYodCk/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlKHRoaXMpLnRvZ2dsZUNsYXNzKHQuY2FsbCh0aGlzLGUsQ3QodGhpcyksbiksbil9KToiYm9vbGVhbiI9PXR5cGVvZiBuJiZzP24/dGhpcy5hZGRDbGFzcyh0KTp0aGlzLnJlbW92ZUNsYXNzKHQpOihlPWt0KHQpLHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHMpZm9yKG89Y2UodGhpcyksaT0wO2k8ZS5sZW5ndGg7aSsrKXI9ZVtpXSxvLmhhc0NsYXNzKHIpP28ucmVtb3ZlQ2xhc3Mocik6by5hZGRDbGFzcyhyKTtlbHNlIHZvaWQgMCE9PXQmJiJib29sZWFuIiE9PWF8fCgocj1DdCh0aGlzKSkmJl8uc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLHIpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHJ8fCExPT09dD8iIjpfLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK1R0KEN0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIFN0PS9cci9nO2NlLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKG4pe3ZhciByLGUsaSx0PXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dihuKSx0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0odD1pP24uY2FsbCh0aGlzLGUsY2UodGhpcykudmFsKCkpOm4pP3Q9IiI6Im51bWJlciI9PXR5cGVvZiB0P3QrPSIiOkFycmF5LmlzQXJyYXkodCkmJih0PWNlLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Y2UudmFsSG9va3NbdGhpcy50eXBlXXx8Y2UudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJzZXQiaW4gciYmdm9pZCAwIT09ci5zZXQodGhpcyx0LCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT10KSl9KSk6dD8ocj1jZS52YWxIb29rc1t0LnR5cGVdfHxjZS52YWxIb29rc1t0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmImdldCJpbiByJiZ2b2lkIDAhPT0oZT1yLmdldCh0LCJ2YWx1ZSIpKT9lOiJzdHJpbmciPT10eXBlb2YoZT10LnZhbHVlKT9lLnJlcGxhY2UoU3QsIiIpOm51bGw9PWU/IiI6ZTp2b2lkIDB9fSksY2UuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9Y2UuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpUdChjZS50ZXh0KGUpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPWUub3B0aW9ucyxvPWUuc2VsZWN0ZWRJbmRleCxhPSJzZWxlY3Qtb25lIj09PWUudHlwZSxzPWE/bnVsbDpbXSx1PWE/bysxOmkubGVuZ3RoO2ZvcihyPW88MD91OmE/bzowO3I8dTtyKyspaWYoKChuPWlbcl0pLnNlbGVjdGVkfHxyPT09bykmJiFuLmRpc2FibGVkJiYoIW4ucGFyZW50Tm9kZS5kaXNhYmxlZHx8IWZlKG4ucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKHQ9Y2UobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1jZS5tYWtlQXJyYXkodCksYT1pLmxlbmd0aDt3aGlsZShhLS0pKChyPWlbYV0pLnNlbGVjdGVkPS0xPGNlLmluQXJyYXkoY2UudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLGNlLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtjZS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZS5jaGVja2VkPS0xPGNlLmluQXJyYXkoY2UoZSkudmFsKCksdCl9fSxsZS5jaGVja09ufHwoY2UudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KTt2YXIgRXQ9aWUubG9jYXRpb24sanQ9e2d1aWQ6RGF0ZS5ub3coKX0sQXQ9L1w/LztjZS5wYXJzZVhNTD1mdW5jdGlvbihlKXt2YXIgdCxuO2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7dHJ5e3Q9KG5ldyBpZS5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxjZS5lcnJvcigiSW52YWxpZCBYTUw6ICIrKG4/Y2UubWFwKG4uY2hpbGROb2RlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0Q29udGVudH0pLmpvaW4oIlxuIik6ZSkpLHR9O3ZhciBEdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sTnQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Y2UuZXh0ZW5kKGNlLmV2ZW50LHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbCxjLGYscD1bbnx8Q10sZD11ZS5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXVlLmNhbGwoZSwibmFtZXNwYWNlIik/ZS5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihvPWY9YT1uPW58fEMsMyE9PW4ubm9kZVR5cGUmJjghPT1uLm5vZGVUeXBlJiYhRHQudGVzdChkK2NlLmV2ZW50LnRyaWdnZXJlZCkmJigtMTxkLmluZGV4T2YoIi4iKSYmKGQ9KGg9ZC5zcGxpdCgiLiIpKS5zaGlmdCgpLGguc29ydCgpKSx1PWQuaW5kZXhPZigiOiIpPDAmJiJvbiIrZCwoZT1lW2NlLmV4cGFuZG9dP2U6bmV3IGNlLkV2ZW50KGQsIm9iamVjdCI9PXR5cGVvZiBlJiZlKSkuaXNUcmlnZ2VyPXI/MjozLGUubmFtZXNwYWNlPWguam9pbigiLiIpLGUucm5hbWVzcGFjZT1lLm5hbWVzcGFjZT9uZXcgUmVnRXhwKCIoXnxcXC4pIitoLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpOm51bGwsZS5yZXN1bHQ9dm9pZCAwLGUudGFyZ2V0fHwoZS50YXJnZXQ9biksdD1udWxsPT10P1tlXTpjZS5tYWtlQXJyYXkodCxbZV0pLGM9Y2UuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXkobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLER0LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEMpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fGllKX1pPTA7d2hpbGUoKG89cFtpKytdKSYmIWUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlmPW8sZS50eXBlPTE8aT9zOmMuYmluZFR5cGV8fGQsKGw9KF8uZ2V0KG8sImV2ZW50cyIpfHxPYmplY3QuY3JlYXRlKG51bGwpKVtlLnR5cGVdJiZfLmdldChvLCJoYW5kbGUiKSkmJmwuYXBwbHkobyx0KSwobD11JiZvW3VdKSYmbC5hcHBseSYmJChvKSYmKGUucmVzdWx0PWwuYXBwbHkobyx0KSwhMT09PWUucmVzdWx0JiZlLnByZXZlbnREZWZhdWx0KCkpO3JldHVybiBlLnR5cGU9ZCxyfHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxjLl9kZWZhdWx0JiYhMSE9PWMuX2RlZmF1bHQuYXBwbHkocC5wb3AoKSx0KXx8ISQobil8fHUmJnYobltkXSkmJiF5KG4pJiYoKGE9blt1XSkmJihuW3VdPW51bGwpLGNlLmV2ZW50LnRyaWdnZXJlZD1kLGUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmZi5hZGRFdmVudExpc3RlbmVyKGQsTnQpLG5bZF0oKSxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLE50KSxjZS5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1jZS5leHRlbmQobmV3IGNlLkV2ZW50LG4se3R5cGU6ZSxpc1NpbXVsYXRlZDohMH0pO2NlLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLGNlLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjZS5ldmVudC50cmlnZ2VyKGUsdCx0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXNbMF07aWYobilyZXR1cm4gY2UuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSk7dmFyIHF0PS9cW1xdJC8sTHQ9L1xyP1xuL2csSHQ9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLE90PS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBQdChuLGUscixpKXt2YXIgdDtpZihBcnJheS5pc0FycmF5KGUpKWNlLmVhY2goZSxmdW5jdGlvbihlLHQpe3J8fHF0LnRlc3Qobik/aShuLHQpOlB0KG4rIlsiKygib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPXQ/ZToiIikrIl0iLHQscixpKX0pO2Vsc2UgaWYocnx8Im9iamVjdCIhPT14KGUpKWkobixlKTtlbHNlIGZvcih0IGluIGUpUHQobisiWyIrdCsiXSIsZVt0XSxyLGkpfWNlLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49dih0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhY2UuaXNQbGFpbk9iamVjdChlKSljZS5lYWNoKGUsZnVuY3Rpb24oKXtpKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKG4gaW4gZSlQdChuLGVbbl0sdCxpKTtyZXR1cm4gci5qb2luKCImIil9LGNlLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGNlLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9Y2UucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBlP2NlLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFjZSh0aGlzKS5pcygiOmRpc2FibGVkIikmJk90LnRlc3QodGhpcy5ub2RlTmFtZSkmJiFIdC50ZXN0KGUpJiYodGhpcy5jaGVja2VkfHwhd2UudGVzdChlKSl9KS5tYXAoZnVuY3Rpb24oZSx0KXt2YXIgbj1jZSh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09bj9udWxsOkFycmF5LmlzQXJyYXkobik/Y2UubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShMdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoTHQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTXQ9LyUyMC9nLFJ0PS8jLiokLyxJdD0vKFs/Jl0pXz1bXiZdKi8sV3Q9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxGdD0vXig/OkdFVHxIRUFEKSQvLCR0PS9eXC9cLy8sQnQ9e30sX3Q9e30senQ9IiovIi5jb25jYXQoIioiKSxYdD1DLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBVdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChEKXx8W107aWYodih0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFZ0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PV90O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsY2UuZWFjaCh0W2VdfHxbXSxmdW5jdGlvbihlLHQpe3ZhciBuPXQoaSxvLGEpO3JldHVybiJzdHJpbmciIT10eXBlb2Ygbnx8dXx8c1tuXT91PyEocj1uKTp2b2lkIDA6KGkuZGF0YVR5cGVzLnVuc2hpZnQobiksbChuKSwhMSl9KSxyfXJldHVybiBsKGkuZGF0YVR5cGVzWzBdKXx8IXNbIioiXSYmbCgiKiIpfWZ1bmN0aW9uIEd0KGUsdCl7dmFyIG4scixpPWNlLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKG4gaW4gdCl2b2lkIDAhPT10W25dJiYoKGlbbl0/ZTpyfHwocj17fSkpW25dPXRbbl0pO3JldHVybiByJiZjZS5leHRlbmQoITAsZSxyKSxlfVh0LmhyZWY9RXQuaHJlZixjZS5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOkV0LmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoRXQucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6enQsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6SlNPTi5wYXJzZSwidGV4dCB4bWwiOmNlLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9HdChHdChlLGNlLmFqYXhTZXR0aW5ncyksdCk6R3QoY2UuYWpheFNldHRpbmdzLGUpfSxhamF4UHJlZmlsdGVyOlV0KEJ0KSxhamF4VHJhbnNwb3J0OlV0KF90KSxhamF4OmZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBlJiYodD1lLGU9dm9pZCAwKSx0PXR8fHt9O3ZhciBjLGYscCxuLGQscixoLGcsaSxvLHY9Y2UuYWpheFNldHVwKHt9LHQpLHk9di5jb250ZXh0fHx2LG09di5jb250ZXh0JiYoeS5ub2RlVHlwZXx8eS5qcXVlcnkpP2NlKHkpOmNlLmV2ZW50LHg9Y2UuRGVmZXJyZWQoKSxiPWNlLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1XdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxFdC5ocmVmKSsiIikucmVwbGFjZSgkdCxFdC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEQpfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9Qy5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49WHQucHJvdG9jb2wrIi8vIitYdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Y2UucGFyYW0odi5kYXRhLHYudHJhZGl0aW9uYWwpKSxWdChCdCx2LHQsVCksaClyZXR1cm4gVDtmb3IoaSBpbihnPWNlLmV2ZW50JiZ2Lmdsb2JhbCkmJjA9PWNlLmFjdGl2ZSsrJiZjZS5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKSx2LnR5cGU9di50eXBlLnRvVXBwZXJDYXNlKCksdi5oYXNDb250ZW50PSFGdC50ZXN0KHYudHlwZSksZj12LnVybC5yZXBsYWNlKFJ0LCIiKSx2Lmhhc0NvbnRlbnQ/di5kYXRhJiZ2LnByb2Nlc3NEYXRhJiYwPT09KHYuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmKHYuZGF0YT12LmRhdGEucmVwbGFjZShNdCwiKyIpKToobz12LnVybC5zbGljZShmLmxlbmd0aCksdi5kYXRhJiYodi5wcm9jZXNzRGF0YXx8InN0cmluZyI9PXR5cGVvZiB2LmRhdGEpJiYoZis9KEF0LnRlc3QoZik/IiYiOiI/Iikrdi5kYXRhLGRlbGV0ZSB2LmRhdGEpLCExPT09di5jYWNoZSYmKGY9Zi5yZXBsYWNlKEl0LCIkMSIpLG89KEF0LnRlc3QoZik/IiYiOiI/IikrIl89IitqdC5ndWlkKysrbyksdi51cmw9ZitvKSx2LmlmTW9kaWZpZWQmJihjZS5sYXN0TW9kaWZpZWRbZl0mJlQuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGNlLmxhc3RNb2RpZmllZFtmXSksY2UuZXRhZ1tmXSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixjZS5ldGFnW2ZdKSksKHYuZGF0YSYmdi5oYXNDb250ZW50JiYhMSE9PXYuY29udGVudFR5cGV8fHQuY29udGVudFR5cGUpJiZULnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsdi5jb250ZW50VHlwZSksVC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHYuZGF0YVR5cGVzWzBdJiZ2LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dP3YuYWNjZXB0c1t2LmRhdGFUeXBlc1swXV0rKCIqIiE9PXYuZGF0YVR5cGVzWzBdPyIsICIrenQrIjsgcT0wLjAxIjoiIik6di5hY2NlcHRzWyIqIl0pLHYuaGVhZGVycylULnNldFJlcXVlc3RIZWFkZXIoaSx2LmhlYWRlcnNbaV0pO2lmKHYuYmVmb3JlU2VuZCYmKCExPT09di5iZWZvcmVTZW5kLmNhbGwoeSxULHYpfHxoKSlyZXR1cm4gVC5hYm9ydCgpO2lmKHU9ImFib3J0IixiLmFkZCh2LmNvbXBsZXRlKSxULmRvbmUodi5zdWNjZXNzKSxULmZhaWwodi5lcnJvciksYz1WdChfdCx2LHQsVCkpe2lmKFQucmVhZHlTdGF0ZT0xLGcmJm0udHJpZ2dlcigiYWpheFNlbmQiLFtULHZdKSxoKXJldHVybiBUO3YuYXN5bmMmJjA8di50aW1lb3V0JiYoZD1pZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJmllLmNsZWFyVGltZW91dChkKSxjPXZvaWQgMCxwPXJ8fCIiLFQucmVhZHlTdGF0ZT0wPGU/NDowLGk9MjAwPD1lJiZlPDMwMHx8MzA0PT09ZSxuJiYocz1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscz1lLmNvbnRlbnRzLHU9ZS5kYXRhVHlwZXM7d2hpbGUoIioiPT09dVswXSl1LnNoaWZ0KCksdm9pZCAwPT09ciYmKHI9ZS5taW1lVHlwZXx8dC5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKHIpZm9yKGkgaW4gcylpZihzW2ldJiZzW2ldLnRlc3Qocikpe3UudW5zaGlmdChpKTticmVha31pZih1WzBdaW4gbilvPXVbMF07ZWxzZXtmb3IoaSBpbiBuKXtpZighdVswXXx8ZS5jb252ZXJ0ZXJzW2krIiAiK3VbMF1dKXtvPWk7YnJlYWt9YXx8KGE9aSl9bz1vfHxhfWlmKG8pcmV0dXJuIG8hPT11WzBdJiZ1LnVuc2hpZnQobyksbltvXX0odixULG4pKSwhaSYmLTE8Y2UuaW5BcnJheSgic2NyaXB0Iix2LmRhdGFUeXBlcykmJmNlLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoY2UubGFzdE1vZGlmaWVkW2ZdPXUpLCh1PVQuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSkmJihjZS5ldGFnW2ZdPXUpKSwyMDQ9PT1lfHwiSEVBRCI9PT12LnR5cGU/bD0ibm9jb250ZW50IjozMDQ9PT1lP2w9Im5vdG1vZGlmaWVkIjoobD1zLnN0YXRlLG89cy5kYXRhLGk9IShhPXMuZXJyb3IpKSk6KGE9bCwhZSYmbHx8KGw9ImVycm9yIixlPDAmJihlPTApKSksVC5zdGF0dXM9ZSxULnN0YXR1c1RleHQ9KHR8fGwpKyIiLGk/eC5yZXNvbHZlV2l0aCh5LFtvLGwsVF0pOngucmVqZWN0V2l0aCh5LFtULGwsYV0pLFQuc3RhdHVzQ29kZSh3KSx3PXZvaWQgMCxnJiZtLnRyaWdnZXIoaT8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFtULHYsaT9vOmFdKSxiLmZpcmVXaXRoKHksW1QsbF0pLGcmJihtLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW1Qsdl0pLC0tY2UuYWN0aXZlfHxjZS5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9cmV0dXJuIFR9LGdldEpTT046ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBjZS5nZXQoZSx0LG4sImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGNlLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxjZS5lYWNoKFsiZ2V0IiwicG9zdCJdLGZ1bmN0aW9uKGUsaSl7Y2VbaV09ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHYodCkmJihyPXJ8fG4sbj10LHQ9dm9pZCAwKSxjZS5hamF4KGNlLmV4dGVuZCh7dXJsOmUsdHlwZTppLGRhdGFUeXBlOnIsZGF0YTp0LHN1Y2Nlc3M6bn0sY2UuaXNQbGFpbk9iamVjdChlKSYmZSkpfX0pLGNlLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLGNlLl9ldmFsVXJsPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gY2UuYWpheCh7dXJsOmUsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7Y2UuZ2xvYmFsRXZhbChlLHQsbil9fSl9LGNlLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpc1swXSYmKHYoZSkmJihlPWUuY2FsbCh0aGlzWzBdKSksdD1jZShlLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmdC5pbnNlcnRCZWZvcmUodGhpc1swXSksdC5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzO3doaWxlKGUuZmlyc3RFbGVtZW50Q2hpbGQpZT1lLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBlfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24obil7cmV0dXJuIHYobik/dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1jZSh0aGlzKSx0PWUuY29udGVudHMoKTt0Lmxlbmd0aD90LndyYXBBbGwobik6ZS5hcHBlbmQobil9KX0sd3JhcDpmdW5jdGlvbih0KXt2YXIgbj12KHQpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7Y2UodGhpcykud3JhcEFsbChuP3QuY2FsbCh0aGlzLGUpOnQpfSl9LHVud3JhcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wYXJlbnQoZSkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe2NlKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLGNlLmV4cHIucHNldWRvcy5oaWRkZW49ZnVuY3Rpb24oZSl7cmV0dXJuIWNlLmV4cHIucHNldWRvcy52aXNpYmxlKGUpfSxjZS5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LGNlLmFqYXhTZXR0aW5ncy54aHI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBpZS5YTUxIdHRwUmVxdWVzdH1jYXRjaChlKXt9fTt2YXIgWXQ9ezA6MjAwLDEyMjM6MjA0fSxRdD1jZS5hamF4U2V0dGluZ3MueGhyKCk7bGUuY29ycz0hIVF0JiYid2l0aENyZWRlbnRpYWxzImluIFF0LGxlLmFqYXg9UXQ9ISFRdCxjZS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYobGUuY29yc3x8UXQmJiFpLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1pLnhocigpO2lmKHIub3BlbihpLnR5cGUsaS51cmwsaS5hc3luYyxpLnVzZXJuYW1lLGkucGFzc3dvcmQpLGkueGhyRmllbGRzKWZvcihuIGluIGkueGhyRmllbGRzKXJbbl09aS54aHJGaWVsZHNbbl07Zm9yKG4gaW4gaS5taW1lVHlwZSYmci5vdmVycmlkZU1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUoaS5taW1lVHlwZSksaS5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpLGUpci5zZXRSZXF1ZXN0SGVhZGVyKG4sZVtuXSk7bz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtvJiYobz1hPXIub25sb2FkPXIub25lcnJvcj1yLm9uYWJvcnQ9ci5vbnRpbWVvdXQ9ci5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09ZT9yLmFib3J0KCk6ImVycm9yIj09PWU/Im51bWJlciIhPXR5cGVvZiByLnN0YXR1cz90KDAsImVycm9yIik6dChyLnN0YXR1cyxyLnN0YXR1c1RleHQpOnQoWXRbci5zdGF0dXNdfHxyLnN0YXR1cyxyLnN0YXR1c1RleHQsInRleHQiIT09KHIucmVzcG9uc2VUeXBlfHwidGV4dCIpfHwic3RyaW5nIiE9dHlwZW9mIHIucmVzcG9uc2VUZXh0P3tiaW5hcnk6ci5yZXNwb25zZX06e3RleHQ6ci5yZXNwb25zZVRleHR9LHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19LHIub25sb2FkPW8oKSxhPXIub25lcnJvcj1yLm9udGltZW91dD1vKCJlcnJvciIpLHZvaWQgMCE9PXIub25hYm9ydD9yLm9uYWJvcnQ9YTpyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1yLnJlYWR5U3RhdGUmJmllLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtvJiZhKCl9KX0sbz1vKCJhYm9ydCIpO3RyeXtyLnNlbmQoaS5oYXNDb250ZW50JiZpLmRhdGF8fG51bGwpfWNhdGNoKGUpe2lmKG8pdGhyb3cgZX19LGFib3J0OmZ1bmN0aW9uKCl7byYmbygpfX19KSxjZS5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxjZS5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oZSl7cmV0dXJuIGNlLmdsb2JhbEV2YWwoZSksZX19fSksY2UuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxjZS5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKG4pe3ZhciByLGk7aWYobi5jcm9zc0RvbWFpbnx8bi5zY3JpcHRBdHRycylyZXR1cm57c2VuZDpmdW5jdGlvbihlLHQpe3I9Y2UoIjxzY3JpcHQ+IikuYXR0cihuLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDpuLnNjcmlwdENoYXJzZXQsc3JjOm4udXJsfSkub24oImxvYWQgZXJyb3IiLGk9ZnVuY3Rpb24oZSl7ci5yZW1vdmUoKSxpPW51bGwsZSYmdCgiZXJyb3IiPT09ZS50eXBlPzQwNDoyMDAsZS50eXBlKX0pLEMuaGVhZC5hcHBlbmRDaGlsZChyWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtpJiZpKCl9fX0pO3ZhciBKdCxLdD1bXSxadD0vKD0pXD8oPz0mfCQpfFw/XD8vO2NlLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9S3QucG9wKCl8fGNlLmV4cGFuZG8rIl8iK2p0Lmd1aWQrKztyZXR1cm4gdGhpc1tlXT0hMCxlfX0pLGNlLmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT0hMSE9PWUuanNvbnAmJihadC50ZXN0KGUudXJsKT8idXJsIjoic3RyaW5nIj09dHlwZW9mIGUuZGF0YSYmMD09PShlLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJlp0LnRlc3QoZS5kYXRhKSYmImRhdGEiKTtpZihhfHwianNvbnAiPT09ZS5kYXRhVHlwZXNbMF0pcmV0dXJuIHI9ZS5qc29ucENhbGxiYWNrPXYoZS5qc29ucENhbGxiYWNrKT9lLmpzb25wQ2FsbGJhY2soKTplLmpzb25wQ2FsbGJhY2ssYT9lW2FdPWVbYV0ucmVwbGFjZShadCwiJDEiK3IpOiExIT09ZS5qc29ucCYmKGUudXJsKz0oQXQudGVzdChlLnVybCk/IiYiOiI/IikrZS5qc29ucCsiPSIrciksZS5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdPWZ1bmN0aW9uKCl7cmV0dXJuIG98fGNlLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPWllW3JdLGllW3JdPWZ1bmN0aW9uKCl7bz1hcmd1bWVudHN9LG4uYWx3YXlzKGZ1bmN0aW9uKCl7dm9pZCAwPT09aT9jZShpZSkucmVtb3ZlUHJvcChyKTppZVtyXT1pLGVbcl0mJihlLmpzb25wQ2FsbGJhY2s9dC5qc29ucENhbGxiYWNrLEt0LnB1c2gocikpLG8mJnYoaSkmJmkob1swXSksbz1pPXZvaWQgMH0pLCJzY3JpcHQifSksbGUuY3JlYXRlSFRNTERvY3VtZW50PSgoSnQ9Qy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1KdC5jaGlsZE5vZGVzLmxlbmd0aCksY2UucGFyc2VIVE1MPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGU/W106KCJib29sZWFuIj09dHlwZW9mIHQmJihuPXQsdD0hMSksdHx8KGxlLmNyZWF0ZUhUTUxEb2N1bWVudD8oKHI9KHQ9Qy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpKS5jcmVhdGVFbGVtZW50KCJiYXNlIikpLmhyZWY9Qy5sb2NhdGlvbi5ocmVmLHQuaGVhZC5hcHBlbmRDaGlsZChyKSk6dD1DKSxvPSFuJiZbXSwoaT13LmV4ZWMoZSkpP1t0LmNyZWF0ZUVsZW1lbnQoaVsxXSldOihpPUFlKFtlXSx0LG8pLG8mJm8ubGVuZ3RoJiZjZShvKS5yZW1vdmUoKSxjZS5tZXJnZShbXSxpLmNoaWxkTm9kZXMpKSk7dmFyIHIsaSxvfSxjZS5mbi5sb2FkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT10aGlzLHM9ZS5pbmRleE9mKCIgIik7cmV0dXJuLTE8cyYmKHI9VHQoZS5zbGljZShzKSksZT1lLnNsaWNlKDAscykpLHYodCk/KG49dCx0PXZvaWQgMCk6dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYoaT0iUE9TVCIpLDA8YS5sZW5ndGgmJmNlLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/Y2UoIjxkaXY+IikuYXBwZW5kKGNlLnBhcnNlSFRNTChlKSkuZmluZChyKTplKX0pLmFsd2F5cyhuJiZmdW5jdGlvbihlLHQpe2EuZWFjaChmdW5jdGlvbigpe24uYXBwbHkodGhpcyxvfHxbZS5yZXNwb25zZVRleHQsdCxlXSl9KX0pLHRoaXN9LGNlLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gY2UuZ3JlcChjZS50aW1lcnMsZnVuY3Rpb24oZSl7cmV0dXJuIHQ9PT1lLmVsZW19KS5sZW5ndGh9LGNlLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1jZS5jc3MoZSwicG9zaXRpb24iKSxjPWNlKGUpLGY9e307InN0YXRpYyI9PT1sJiYoZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxzPWMub2Zmc2V0KCksbz1jZS5jc3MoZSwidG9wIiksdT1jZS5jc3MoZSwibGVmdCIpLCgiYWJzb2x1dGUiPT09bHx8ImZpeGVkIj09PWwpJiYtMTwobyt1KS5pbmRleE9mKCJhdXRvIik/KGE9KHI9Yy5wb3NpdGlvbigpKS50b3AsaT1yLmxlZnQpOihhPXBhcnNlRmxvYXQobyl8fDAsaT1wYXJzZUZsb2F0KHUpfHwwKSx2KHQpJiYodD10LmNhbGwoZSxuLGNlLmV4dGVuZCh7fSxzKSkpLG51bGwhPXQudG9wJiYoZi50b3A9dC50b3Atcy50b3ArYSksbnVsbCE9dC5sZWZ0JiYoZi5sZWZ0PXQubGVmdC1zLmxlZnQraSksInVzaW5nImluIHQ/dC51c2luZy5jYWxsKGUsZik6Yy5jc3MoZil9fSxjZS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2NlLm9mZnNldC5zZXRPZmZzZXQodGhpcyx0LGUpfSk7dmFyIGUsbixyPXRoaXNbMF07cmV0dXJuIHI/ci5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6ZS50b3Arbi5wYWdlWU9mZnNldCxsZWZ0OmUubGVmdCtuLnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH06dm9pZCAwfSxwb3NpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXNbMF0pe3ZhciBlLHQsbixyPXRoaXNbMF0saT17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09Y2UuY3NzKHIsInBvc2l0aW9uIikpdD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7dD10aGlzLm9mZnNldCgpLG49ci5vd25lckRvY3VtZW50LGU9ci5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3doaWxlKGUmJihlPT09bi5ib2R5fHxlPT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PWNlLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPWNlKGUpLm9mZnNldCgpKS50b3ArPWNlLmNzcyhlLCJib3JkZXJUb3BXaWR0aCIsITApLGkubGVmdCs9Y2UuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLWNlLmNzcyhyLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OnQubGVmdC1pLmxlZnQtY2UuY3NzKHIsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShlJiYic3RhdGljIj09PWNlLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fEp9KX19KSxjZS5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Y2UuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIE0odGhpcyxmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoeShlKT9yPWU6OT09PWUubm9kZVR5cGUmJihyPWUuZGVmYXVsdFZpZXcpLHZvaWQgMD09PW4pcmV0dXJuIHI/cltpXTplW3RdO3I/ci5zY3JvbGxUbyhvP3IucGFnZVhPZmZzZXQ6bixvP246ci5wYWdlWU9mZnNldCk6ZVt0XT1ufSx0LGUsYXJndW1lbnRzLmxlbmd0aCl9fSksY2UuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLG4pe2NlLmNzc0hvb2tzW25dPVllKGxlLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oZSx0KXtpZih0KXJldHVybiB0PUdlKGUsbiksX2UudGVzdCh0KT9jZShlKS5wb3NpdGlvbigpW25dKyJweCI6dH0pfSksY2UuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Y2UuZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpzLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24ocixvKXtjZS5mbltvXT1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGgmJihyfHwiYm9vbGVhbiIhPXR5cGVvZiBlKSxpPXJ8fCghMD09PWV8fCEwPT09dD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIE0odGhpcyxmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIHkoZSk/MD09PW8uaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrYV06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWUubm9kZVR5cGU/KHI9ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sZS5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PW4/Y2UuY3NzKGUsdCxpKTpjZS5zdHlsZShlLHQsbixpKX0scyxuP2U6dm9pZCAwLG4pfX0pfSksY2UuZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGUsdCl7Y2UuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxjZS5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLm9uKGUsbnVsbCx0LG4pfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vZmYoZSxudWxsLHQpfSxkZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5vbih0LGUsbixyKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGUsIioqIik6dGhpcy5vZmYodCxlfHwiKioiLG4pfSxob3ZlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9uKCJtb3VzZWVudGVyIixlKS5vbigibW91c2VsZWF2ZSIsdHx8ZSl9fSksY2UuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe2NlLmZuW25dPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKG4sbnVsbCxlLHQpOnRoaXMudHJpZ2dlcihuKX19KTt2YXIgZW49L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7Y2UucHJveHk9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYobj1lW3RdLHQ9ZSxlPW4pLHYoZSkpcmV0dXJuIHI9YWUuY2FsbChhcmd1bWVudHMsMiksKGk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0fHx0aGlzLHIuY29uY2F0KGFlLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxjZS5ndWlkKyssaX0sY2UuaG9sZFJlYWR5PWZ1bmN0aW9uKGUpe2U/Y2UucmVhZHlXYWl0Kys6Y2UucmVhZHkoITApfSxjZS5pc0FycmF5PUFycmF5LmlzQXJyYXksY2UucGFyc2VKU09OPUpTT04ucGFyc2UsY2Uubm9kZU5hbWU9ZmUsY2UuaXNGdW5jdGlvbj12LGNlLmlzV2luZG93PXksY2UuY2FtZWxDYXNlPUYsY2UudHlwZT14LGNlLm5vdz1EYXRlLm5vdyxjZS5pc051bWVyaWM9ZnVuY3Rpb24oZSl7dmFyIHQ9Y2UudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sY2UudHJpbT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjooZSsiIikucmVwbGFjZShlbiwiJDEiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGNlfSk7dmFyIHRuPWllLmpRdWVyeSxubj1pZS4kO3JldHVybiBjZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKGUpe3JldHVybiBpZS4kPT09Y2UmJihpZS4kPW5uKSxlJiZpZS5qUXVlcnk9PT1jZSYmKGllLmpRdWVyeT10biksY2V9LCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGllLmpRdWVyeT1pZS4kPWNlKSxjZX0pOwpqUXVlcnkubm9Db25mbGljdCgpOw=="}},"time_used":521,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":521,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/vendor-modern.707b8462.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.819Z","timestamp":1785145403819,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /vendor-modern.707b8462.js HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-667fd\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":419837,"size_decoded":121800,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65456)","md5":"5accc26cb30b9a0cef485545c4b33cc1","sha1":"7c68f04a08a5b307431cbe3b740a0b31448fbae8","sha256":"01c4abeade9bc41ae8d5ab3d3f7b7b9da098e9f5b28baaa6011a566bd8f84bd0","sha512":"6d6d4028a9869d50fa0cd1fc9ba45b0417253ed03af08fb81cdff167bba15d8d8e0eeda510d9f70fdd4b58cbdb79dc0061d4531f05e4f4693d9853b16a6bd221","ssdeep":"6144:b4WLmNExCM8wZFMdTJs7EbDc3lejy3JzEUmz:8WLmoCTIkjy3JwUu","tlshash":"0b9419c97591f4a107f361f6407f1407f33a296a280d8450e351e9e9bcb954ea23bf6e","first_seen":"2026-07-27T07:14:06.777445Z","last_seen":"2026-07-27T14:04:41.080316Z","times_seen":5,"resource_available":false,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgdmVuZG9yLW1vZGVybi43MDdiODQ2Mi5qcy5MSUNFTlNFLnR4dCAqLwooZ2xvYmFsVGhpcy53ZWJwYWNrQ2h1bmtpbnRlcmNvbV9qcz1nbG9iYWxUaGlzLndlYnBhY2tDaHVua2ludGVyY29tX2pzfHxbXSkucHVzaChbWzQ3MzZdLHs5OTI2NzooZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcixvPW4oMTYxNzApLGk9KHI9big1Njk0MCkpJiYib2JqZWN0Ij09dHlwZW9mIHImJiJkZWZhdWx0ImluIHI/ci5kZWZhdWx0OnI7big5NzUwOCk7dmFyIGE9Ii8qfCovIix1PWErIn0iO2Z1bmN0aW9uIHMoZSl7ZSYmYy5jdXJyZW50Lmluc2VydChlKyJ9Iil9dmFyIGM9e2N1cnJlbnQ6bnVsbH0sbD1mdW5jdGlvbihlLHQsbixyLG8saSxsLGYscCxkKXtzd2l0Y2goZSl7Y2FzZSAxOnN3aXRjaCh0LmNoYXJDb2RlQXQoMCkpe2Nhc2UgNjQ6cmV0dXJuIGMuY3VycmVudC5pbnNlcnQodCsiOyIpLCIiO2Nhc2UgMTA4OmlmKDk4PT09dC5jaGFyQ29kZUF0KDIpKXJldHVybiIifWJyZWFrO2Nhc2UgMjppZigwPT09ZilyZXR1cm4gdCthO2JyZWFrO2Nhc2UgMzpzd2l0Y2goZil7Y2FzZSAxMDI6Y2FzZSAxMTI6cmV0dXJuIGMuY3VycmVudC5pbnNlcnQoblswXSt0KSwiIjtkZWZhdWx0OnJldHVybiB0KygwPT09ZD9hOiIiKX1jYXNlLTI6dC5zcGxpdCh1KS5mb3JFYWNoKHMpfX07dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgdCxuPWUua2V5fHwiY3NzIjt2b2lkIDAhPT1lLnByZWZpeCYmKHQ9e3ByZWZpeDplLnByZWZpeH0pO3ZhciByPW5ldyBpKHQpO3ZhciBhLHU9e307YT1lLmNvbnRhaW5lcnx8ZG9jdW1lbnQuaGVhZDt2YXIgcyxmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtZW1vdGlvbi0iK24rIl0iKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGYsKGZ1bmN0aW9uKGUpe2UuZ2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24tIituKS5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3VbZV09ITB9KSksZS5wYXJlbnROb2RlIT09YSYmYS5hcHBlbmRDaGlsZChlKX0pKSxyLnVzZShlLnN0eWxpc1BsdWdpbnMpKGwpLHM9ZnVuY3Rpb24oZSx0LG4sbyl7dmFyIGk9dC5uYW1lO2MuY3VycmVudD1uLHIoZSx0LnN0eWxlcyksbyYmKHAuaW5zZXJ0ZWRbaV09ITApfTt2YXIgcD17a2V5Om4sc2hlZXQ6bmV3IG8uU3R5bGVTaGVldCh7a2V5Om4sY29udGFpbmVyOmEsbm9uY2U6ZS5ub25jZSxzcGVlZHk6ZS5zcGVlZHl9KSxub25jZTplLm5vbmNlLGluc2VydGVkOnUscmVnaXN0ZXJlZDp7fSxpbnNlcnQ6c307cmV0dXJuIHB9fSwxNjE3MDooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuaXNTcGVlZHk9dm9pZCAwPT09ZS5zcGVlZHl8fGUuc3BlZWR5LHRoaXMudGFncz1bXSx0aGlzLmN0cj0wLHRoaXMubm9uY2U9ZS5ub25jZSx0aGlzLmtleT1lLmtleSx0aGlzLmNvbnRhaW5lcj1lLmNvbnRhaW5lcix0aGlzLmJlZm9yZT1udWxsfXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0Lmluc2VydD1mdW5jdGlvbihlKXtpZih0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT0wKXt2YXIgdCxuPWZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24iLGUua2V5KSx2b2lkIDAhPT1lLm5vbmNlJiZ0LnNldEF0dHJpYnV0ZSgibm9uY2UiLGUubm9uY2UpLHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSx0fSh0aGlzKTt0PTA9PT10aGlzLnRhZ3MubGVuZ3RoP3RoaXMuYmVmb3JlOnRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoLTFdLm5leHRTaWJsaW5nLHRoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZShuLHQpLHRoaXMudGFncy5wdXNoKG4pfXZhciByPXRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoLTFdO2lmKHRoaXMuaXNTcGVlZHkpe3ZhciBvPWZ1bmN0aW9uKGUpe2lmKGUuc2hlZXQpcmV0dXJuIGUuc2hlZXQ7Zm9yKHZhciB0PTA7dDxkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7dCsrKWlmKGRvY3VtZW50LnN0eWxlU2hlZXRzW3RdLm93bmVyTm9kZT09PWUpcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW3RdfShyKTt0cnl7dmFyIGk9MTA1PT09ZS5jaGFyQ29kZUF0KDEpJiY2ND09PWUuY2hhckNvZGVBdCgwKTtvLmluc2VydFJ1bGUoZSxpPzA6by5jc3NSdWxlcy5sZW5ndGgpfWNhdGNoKGUpezB9fWVsc2Ugci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSk7dGhpcy5jdHIrK30sdC5mbHVzaD1mdW5jdGlvbigpe3RoaXMudGFncy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkpLHRoaXMudGFncz1bXSx0aGlzLmN0cj0wfSxlfSgpO3QuU3R5bGVTaGVldD1ufSw5NzUwODooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBXZWFrTWFwO3JldHVybiBmdW5jdGlvbihuKXtpZih0LmhhcyhuKSlyZXR1cm4gdC5nZXQobik7dmFyIHI9ZShuKTtyZXR1cm4gdC5zZXQobixyKSxyfX19LDgzNjA1OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZGVmYXVsdCJpbiBlP2UuZGVmYXVsdDplfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz1yKG4oMzE1MDMpKSxpPW4oNjcyOTQpLGE9cihuKDk5MjY3KSksdT1uKDc1MTk1KSxzPW4oNzQyMDUpLGM9bigxMTk4KSxsPXIobig4ODAyOCkpLGY9aS5jcmVhdGVDb250ZXh0KGEoKSkscD1pLmNyZWF0ZUNvbnRleHQoe30pLGQ9Zi5Qcm92aWRlcjt0LndpdGhFbW90aW9uQ2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuZm9yd2FyZFJlZigoZnVuY3Rpb24odCxuKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KGYuQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24ocil7cmV0dXJuIGUodCxyLG4pfSkpfSkpfTt2YXIgaD0iX19FTU9USU9OX1RZUEVfUExFQVNFX0RPX05PVF9VU0VfXyIseT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHY9ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89dFtoXSxhPVtdLGM9IiIsbD1udWxsPT09bj90LmNzczp0LmNzcyhuKTsic3RyaW5nIj09dHlwZW9mIGwmJnZvaWQgMCE9PWUucmVnaXN0ZXJlZFtsXSYmKGw9ZS5yZWdpc3RlcmVkW2xdKSxhLnB1c2gobCksdm9pZCAwIT09dC5jbGFzc05hbWUmJihjPXUuZ2V0UmVnaXN0ZXJlZFN0eWxlcyhlLnJlZ2lzdGVyZWQsYSx0LmNsYXNzTmFtZSkpO3ZhciBmPXMuc2VyaWFsaXplU3R5bGVzKGEpO3UuaW5zZXJ0U3R5bGVzKGUsZiwic3RyaW5nIj09dHlwZW9mIG8pO2MrPWUua2V5KyItIitmLm5hbWU7dmFyIHA9e307Zm9yKHZhciBkIGluIHQpeS5jYWxsKHQsZCkmJiJjc3MiIT09ZCYmZCE9PWgmJihwW2RdPXRbZF0pO3JldHVybiBwLnJlZj1yLHAuY2xhc3NOYW1lPWMsaS5jcmVhdGVFbGVtZW50KG8scCl9LG09dC53aXRoRW1vdGlvbkNhY2hlKChmdW5jdGlvbihlLHQsbil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuY3NzP2kuY3JlYXRlRWxlbWVudChwLkNvbnN1bWVyLG51bGwsKGZ1bmN0aW9uKHIpe3JldHVybiB2KHQsZSxyLG4pfSkpOnYodCxlLG51bGwsbil9KSk7dmFyIGc9dC53aXRoRW1vdGlvbkNhY2hlKChmdW5jdGlvbihlLHQpe3ZhciBuPWUuc3R5bGVzO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXJldHVybiBpLmNyZWF0ZUVsZW1lbnQocC5Db25zdW1lcixudWxsLChmdW5jdGlvbihlKXt2YXIgcj1zLnNlcmlhbGl6ZVN0eWxlcyhbbihlKV0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXyx7c2VyaWFsaXplZDpyLGNhY2hlOnR9KX0pKTt2YXIgcj1zLnNlcmlhbGl6ZVN0eWxlcyhbbl0pO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXyx7c2VyaWFsaXplZDpyLGNhY2hlOnR9KX0pKSxfPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuLHIpe3JldHVybiBlLmNhbGwodGhpcyx0LG4scil8fHRoaXN9byh0LGUpO3ZhciBuPXQucHJvdG90eXBlO3JldHVybiBuLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5zaGVldD1uZXcgYy5TdHlsZVNoZWV0KHtrZXk6dGhpcy5wcm9wcy5jYWNoZS5rZXkrIi1nbG9iYWwiLG5vbmNlOnRoaXMucHJvcHMuY2FjaGUuc2hlZXQubm9uY2UsY29udGFpbmVyOnRoaXMucHJvcHMuY2FjaGUuc2hlZXQuY29udGFpbmVyfSk7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic3R5bGVbZGF0YS1lbW90aW9uLSIrdGhpcy5wcm9wcy5jYWNoZS5rZXkrJz0iJyt0aGlzLnByb3BzLnNlcmlhbGl6ZWQubmFtZSsnIl0nKTtudWxsIT09ZSYmdGhpcy5zaGVldC50YWdzLnB1c2goZSksdGhpcy5wcm9wcy5jYWNoZS5zaGVldC50YWdzLmxlbmd0aCYmKHRoaXMuc2hlZXQuYmVmb3JlPXRoaXMucHJvcHMuY2FjaGUuc2hlZXQudGFnc1swXSksdGhpcy5pbnNlcnRTdHlsZXMoKX0sbi5jb21wb25lbnREaWRVcGRhdGU9ZnVuY3Rpb24oZSl7ZS5zZXJpYWxpemVkLm5hbWUhPT10aGlzLnByb3BzLnNlcmlhbGl6ZWQubmFtZSYmdGhpcy5pbnNlcnRTdHlsZXMoKX0sbi5pbnNlcnRTdHlsZXM9ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzLnByb3BzLnNlcmlhbGl6ZWQubmV4dCYmdS5pbnNlcnRTdHlsZXModGhpcy5wcm9wcy5jYWNoZSx0aGlzLnByb3BzLnNlcmlhbGl6ZWQubmV4dCwhMCksdGhpcy5zaGVldC50YWdzLmxlbmd0aCl7dmFyIGU9dGhpcy5zaGVldC50YWdzW3RoaXMuc2hlZXQudGFncy5sZW5ndGgtMV0ubmV4dEVsZW1lbnRTaWJsaW5nO3RoaXMuc2hlZXQuYmVmb3JlPWUsdGhpcy5zaGVldC5mbHVzaCgpfXRoaXMucHJvcHMuY2FjaGUuaW5zZXJ0KCIiLHRoaXMucHJvcHMuc2VyaWFsaXplZCx0aGlzLnNoZWV0LCExKX0sbi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMuc2hlZXQuZmx1c2goKX0sbi5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sdH0oaS5Db21wb25lbnQpLGI9ZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dC5sZW5ndGgscj0wLG89IiI7cjxuO3IrKyl7dmFyIGk9dFtyXTtpZihudWxsIT1pKXt2YXIgYT12b2lkIDA7c3dpdGNoKHR5cGVvZiBpKXtjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGkpKWE9ZShpKTtlbHNlIGZvcih2YXIgdSBpbiBhPSIiLGkpaVt1XSYmdSYmKGEmJihhKz0iICIpLGErPXUpO2JyZWFrO2RlZmF1bHQ6YT1pfWEmJihvJiYobys9IiAiKSxvKz1hKX19cmV0dXJuIG99O3ZhciB3PXQud2l0aEVtb3Rpb25DYWNoZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHAuQ29uc3VtZXIsbnVsbCwoZnVuY3Rpb24obil7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPWFyZ3VtZW50c1tyXTt2YXIgbz1zLnNlcmlhbGl6ZVN0eWxlcyhuLHQucmVnaXN0ZXJlZCk7cmV0dXJuIHUuaW5zZXJ0U3R5bGVzKHQsbywhMSksdC5rZXkrIi0iK28ubmFtZX0sbz17Y3NzOnIsY3g6ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlKSxvPTA7bzxlO28rKyluW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLG89dS5nZXRSZWdpc3RlcmVkU3R5bGVzKGUscixuKTtyZXR1cm4gci5sZW5ndGg8Mj9uOm8rdChyKX0odC5yZWdpc3RlcmVkLHIsYihuKSl9LHRoZW1lOm59LGk9ZS5jaGlsZHJlbihvKTtyZXR1cm4hMCxpfSkpfSkpO3QuY3NzPWwsdC5DYWNoZVByb3ZpZGVyPWQsdC5DbGFzc05hbWVzPXcsdC5HbG9iYWw9Zyx0LlRoZW1lQ29udGV4dD1wLHQuanN4PWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzO2lmKG51bGw9PXR8fG51bGw9PXQuY3NzKXJldHVybiBpLmNyZWF0ZUVsZW1lbnQuYXBwbHkodm9pZCAwLG4pO3ZhciByPW4ubGVuZ3RoLG89bmV3IEFycmF5KHIpO29bMF09bTt2YXIgYT17fTtmb3IodmFyIHUgaW4gdCl5LmNhbGwodCx1KSYmKGFbdV09dFt1XSk7YVtoXT1lLG9bMV09YTtmb3IodmFyIHM9MjtzPHI7cysrKW9bc109bltzXTtyZXR1cm4gaS5jcmVhdGVFbGVtZW50LmFwcGx5KG51bGwsbyl9LHQua2V5ZnJhbWVzPWZ1bmN0aW9uKCl7dmFyIGU9bC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSx0PSJhbmltYXRpb24tIitlLm5hbWU7cmV0dXJue25hbWU6dCxzdHlsZXM6IkBrZXlmcmFtZXMgIit0KyJ7IitlLnN0eWxlcysifSIsYW5pbToxLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIl9FTU9fIit0aGlzLm5hbWUrIl8iK3RoaXMuc3R5bGVzKyJfRU1PXyJ9fX19LDMxNTAzOihlLHQsbik9Pnt2YXIgcj1uKDE4MjM1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLHIoZSx0KX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSwxODIzNTplPT57ZnVuY3Rpb24gdChuLHIpe3JldHVybiBlLmV4cG9ydHM9dD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuX19wcm90b19fPXQsZX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQobixyKX1lLmV4cG9ydHM9dCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDc1MTk1OihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt0LmdldFJlZ2lzdGVyZWRTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPSIiO3JldHVybiBuLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24obil7dm9pZCAwIT09ZVtuXT90LnB1c2goZVtuXSk6cis9bisiICJ9KSkscn0sdC5pbnNlcnRTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUua2V5KyItIit0Lm5hbWU7aWYoITE9PT1uJiZ2b2lkIDA9PT1lLnJlZ2lzdGVyZWRbcl0mJihlLnJlZ2lzdGVyZWRbcl09dC5zdHlsZXMpLHZvaWQgMD09PWUuaW5zZXJ0ZWRbdC5uYW1lXSl7dmFyIG89dDtkb3tlLmluc2VydCgiLiIrcixvLGUuc2hlZXQsITApO289by5uZXh0fXdoaWxlKHZvaWQgMCE9PW8pfX19LDg4MDI4OihlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oNzQyMDUpO3QuZGVmYXVsdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiByLnNlcmlhbGl6ZVN0eWxlcyh0KX19LDMwNTg4OihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MCxyPTAsbz1lLmxlbmd0aDtvPj00OysrcixvLT00KXQ9MTU0MDQ4MzQ3NyooNjU1MzUmKHQ9MjU1JmUuY2hhckNvZGVBdChyKXwoMjU1JmUuY2hhckNvZGVBdCgrK3IpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCgrK3IpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQoKytyKSk8PDI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNiksbj0xNTQwNDgzNDc3Kig2NTUzNSYodF49dD4+PjI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNileMTU0MDQ4MzQ3NyooNjU1MzUmbikrKDU5Nzk3KihuPj4+MTYpPDwxNik7c3dpdGNoKG8pe2Nhc2UgMzpuXj0oMjU1JmUuY2hhckNvZGVBdChyKzIpKTw8MTY7Y2FzZSAyOm5ePSgyNTUmZS5jaGFyQ29kZUF0KHIrMSkpPDw4O2Nhc2UgMTpuPTE1NDA0ODM0NzcqKDY1NTM1JihuXj0yNTUmZS5jaGFyQ29kZUF0KHIpKSkrKDU5Nzk3KihuPj4+MTYpPDwxNil9cmV0dXJuKCgobj0xNTQwNDgzNDc3Kig2NTUzNSYobl49bj4+PjEzKSkrKDU5Nzk3KihuPj4+MTYpPDwxNikpXm4+Pj4xNSk+Pj4wKS50b1N0cmluZygzNil9fSw2NzEyMTooZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcixvPShyPW4oNzc2NjApKSYmIm9iamVjdCI9PXR5cGVvZiByJiYiZGVmYXVsdCJpbiByP3IuZGVmYXVsdDpyLGk9L14oKGNoaWxkcmVufGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfGtleXxyZWZ8YXV0b0ZvY3VzfGRlZmF1bHRWYWx1ZXxkZWZhdWx0Q2hlY2tlZHxpbm5lckhUTUx8c3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nfHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x2YWx1ZUxpbmt8YWNjZXB0fGFjY2VwdENoYXJzZXR8YWNjZXNzS2V5fGFjdGlvbnxhbGxvd3xhbGxvd1VzZXJNZWRpYXxhbGxvd1BheW1lbnRSZXF1ZXN0fGFsbG93RnVsbFNjcmVlbnxhbGxvd1RyYW5zcGFyZW5jeXxhbHR8YXN5bmN8YXV0b0NvbXBsZXRlfGF1dG9QbGF5fGNhcHR1cmV8Y2VsbFBhZGRpbmd8Y2VsbFNwYWNpbmd8Y2hhbGxlbmdlfGNoYXJTZXR8Y2hlY2tlZHxjaXRlfGNsYXNzSUR8Y2xhc3NOYW1lfGNvbHN8Y29sU3Bhbnxjb250ZW50fGNvbnRlbnRFZGl0YWJsZXxjb250ZXh0TWVudXxjb250cm9sc3xjb250cm9sc0xpc3R8Y29vcmRzfGNyb3NzT3JpZ2lufGRhdGF8ZGF0ZVRpbWV8ZGVjb2Rpbmd8ZGVmYXVsdHxkZWZlcnxkaXJ8ZGlzYWJsZWR8ZGlzYWJsZVBpY3R1cmVJblBpY3R1cmV8ZG93bmxvYWR8ZHJhZ2dhYmxlfGVuY1R5cGV8Zm9ybXxmb3JtQWN0aW9ufGZvcm1FbmNUeXBlfGZvcm1NZXRob2R8Zm9ybU5vVmFsaWRhdGV8Zm9ybVRhcmdldHxmcmFtZUJvcmRlcnxoZWFkZXJzfGhlaWdodHxoaWRkZW58aGlnaHxocmVmfGhyZWZMYW5nfGh0bWxGb3J8aHR0cEVxdWl2fGlkfGlucHV0TW9kZXxpbnRlZ3JpdHl8aXN8a2V5UGFyYW1zfGtleVR5cGV8a2luZHxsYWJlbHxsYW5nfGxpc3R8bG9hZGluZ3xsb29wfGxvd3xtYXJnaW5IZWlnaHR8bWFyZ2luV2lkdGh8bWF4fG1heExlbmd0aHxtZWRpYXxtZWRpYUdyb3VwfG1ldGhvZHxtaW58bWluTGVuZ3RofG11bHRpcGxlfG11dGVkfG5hbWV8bm9uY2V8bm9WYWxpZGF0ZXxvcGVufG9wdGltdW18cGF0dGVybnxwbGFjZWhvbGRlcnxwbGF5c0lubGluZXxwb3N0ZXJ8cHJlbG9hZHxwcm9maWxlfHJhZGlvR3JvdXB8cmVhZE9ubHl8cmVmZXJyZXJQb2xpY3l8cmVsfHJlcXVpcmVkfHJldmVyc2VkfHJvbGV8cm93c3xyb3dTcGFufHNhbmRib3h8c2NvcGV8c2NvcGVkfHNjcm9sbGluZ3xzZWFtbGVzc3xzZWxlY3RlZHxzaGFwZXxzaXplfHNpemVzfHNsb3R8c3BhbnxzcGVsbENoZWNrfHNyY3xzcmNEb2N8c3JjTGFuZ3xzcmNTZXR8c3RhcnR8c3RlcHxzdHlsZXxzdW1tYXJ5fHRhYkluZGV4fHRhcmdldHx0aXRsZXx0eXBlfHVzZU1hcHx2YWx1ZXx3aWR0aHx3bW9kZXx3cmFwfGFib3V0fGRhdGF0eXBlfGlubGlzdHxwcmVmaXh8cHJvcGVydHl8cmVzb3VyY2V8dHlwZW9mfHZvY2FifGF1dG9DYXBpdGFsaXplfGF1dG9Db3JyZWN0fGF1dG9TYXZlfGNvbG9yfGluZXJ0fGl0ZW1Qcm9wfGl0ZW1TY29wZXxpdGVtVHlwZXxpdGVtSUR8aXRlbVJlZnxvbnxyZXN1bHRzfHNlY3VyaXR5fHVuc2VsZWN0YWJsZXxhY2NlbnRIZWlnaHR8YWNjdW11bGF0ZXxhZGRpdGl2ZXxhbGlnbm1lbnRCYXNlbGluZXxhbGxvd1Jlb3JkZXJ8YWxwaGFiZXRpY3xhbXBsaXR1ZGV8YXJhYmljRm9ybXxhc2NlbnR8YXR0cmlidXRlTmFtZXxhdHRyaWJ1dGVUeXBlfGF1dG9SZXZlcnNlfGF6aW11dGh8YmFzZUZyZXF1ZW5jeXxiYXNlbGluZVNoaWZ0fGJhc2VQcm9maWxlfGJib3h8YmVnaW58Ymlhc3xieXxjYWxjTW9kZXxjYXBIZWlnaHR8Y2xpcHxjbGlwUGF0aFVuaXRzfGNsaXBQYXRofGNsaXBSdWxlfGNvbG9ySW50ZXJwb2xhdGlvbnxjb2xvckludGVycG9sYXRpb25GaWx0ZXJzfGNvbG9yUHJvZmlsZXxjb2xvclJlbmRlcmluZ3xjb250ZW50U2NyaXB0VHlwZXxjb250ZW50U3R5bGVUeXBlfGN1cnNvcnxjeHxjeXxkfGRlY2VsZXJhdGV8ZGVzY2VudHxkaWZmdXNlQ29uc3RhbnR8ZGlyZWN0aW9ufGRpc3BsYXl8ZGl2aXNvcnxkb21pbmFudEJhc2VsaW5lfGR1cnxkeHxkeXxlZGdlTW9kZXxlbGV2YXRpb258ZW5hYmxlQmFja2dyb3VuZHxlbmR8ZXhwb25lbnR8ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZHxmaWxsfGZpbGxPcGFjaXR5fGZpbGxSdWxlfGZpbHRlcnxmaWx0ZXJSZXN8ZmlsdGVyVW5pdHN8Zmxvb2RDb2xvcnxmbG9vZE9wYWNpdHl8Zm9jdXNhYmxlfGZvbnRGYW1pbHl8Zm9udFNpemV8Zm9udFNpemVBZGp1c3R8Zm9udFN0cmV0Y2h8Zm9udFN0eWxlfGZvbnRWYXJpYW50fGZvbnRXZWlnaHR8Zm9ybWF0fGZyb218ZnJ8Znh8Znl8ZzF8ZzJ8Z2x5cGhOYW1lfGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsfGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbHxnbHlwaFJlZnxncmFkaWVudFRyYW5zZm9ybXxncmFkaWVudFVuaXRzfGhhbmdpbmd8aG9yaXpBZHZYfGhvcml6T3JpZ2luWHxpZGVvZ3JhcGhpY3xpbWFnZVJlbmRlcmluZ3xpbnxpbjJ8aW50ZXJjZXB0fGt8azF8azJ8azN8azR8a2VybmVsTWF0cml4fGtlcm5lbFVuaXRMZW5ndGh8a2VybmluZ3xrZXlQb2ludHN8a2V5U3BsaW5lc3xrZXlUaW1lc3xsZW5ndGhBZGp1c3R8bGV0dGVyU3BhY2luZ3xsaWdodGluZ0NvbG9yfGxpbWl0aW5nQ29uZUFuZ2xlfGxvY2FsfG1hcmtlckVuZHxtYXJrZXJNaWR8bWFya2VyU3RhcnR8bWFya2VySGVpZ2h0fG1hcmtlclVuaXRzfG1hcmtlcldpZHRofG1hc2t8bWFza0NvbnRlbnRVbml0c3xtYXNrVW5pdHN8bWF0aGVtYXRpY2FsfG1vZGV8bnVtT2N0YXZlc3xvZmZzZXR8b3BhY2l0eXxvcGVyYXRvcnxvcmRlcnxvcmllbnR8b3JpZW50YXRpb258b3JpZ2lufG92ZXJmbG93fG92ZXJsaW5lUG9zaXRpb258b3ZlcmxpbmVUaGlja25lc3N8cGFub3NlMXxwYWludE9yZGVyfHBhdGhMZW5ndGh8cGF0dGVybkNvbnRlbnRVbml0c3xwYXR0ZXJuVHJhbnNmb3JtfHBhdHRlcm5Vbml0c3xwb2ludGVyRXZlbnRzfHBvaW50c3xwb2ludHNBdFh8cG9pbnRzQXRZfHBvaW50c0F0WnxwcmVzZXJ2ZUFscGhhfHByZXNlcnZlQXNwZWN0UmF0aW98cHJpbWl0aXZlVW5pdHN8cnxyYWRpdXN8cmVmWHxyZWZZfHJlbmRlcmluZ0ludGVudHxyZXBlYXRDb3VudHxyZXBlYXREdXJ8cmVxdWlyZWRFeHRlbnNpb25zfHJlcXVpcmVkRmVhdHVyZXN8cmVzdGFydHxyZXN1bHR8cm90YXRlfHJ4fHJ5fHNjYWxlfHNlZWR8c2hhcGVSZW5kZXJpbmd8c2xvcGV8c3BhY2luZ3xzcGVjdWxhckNvbnN0YW50fHNwZWN1bGFyRXhwb25lbnR8c3BlZWR8c3ByZWFkTWV0aG9kfHN0YXJ0T2Zmc2V0fHN0ZERldmlhdGlvbnxzdGVtaHxzdGVtdnxzdGl0Y2hUaWxlc3xzdG9wQ29sb3J8c3RvcE9wYWNpdHl8c3RyaWtldGhyb3VnaFBvc2l0aW9ufHN0cmlrZXRocm91Z2hUaGlja25lc3N8c3RyaW5nfHN0cm9rZXxzdHJva2VEYXNoYXJyYXl8c3Ryb2tlRGFzaG9mZnNldHxzdHJva2VMaW5lY2FwfHN0cm9rZUxpbmVqb2lufHN0cm9rZU1pdGVybGltaXR8c3Ryb2tlT3BhY2l0eXxzdHJva2VXaWR0aHxzdXJmYWNlU2NhbGV8c3lzdGVtTGFuZ3VhZ2V8dGFibGVWYWx1ZXN8dGFyZ2V0WHx0YXJnZXRZfHRleHRBbmNob3J8dGV4dERlY29yYXRpb258dGV4dFJlbmRlcmluZ3x0ZXh0TGVuZ3RofHRvfHRyYW5zZm9ybXx1MXx1Mnx1bmRlcmxpbmVQb3NpdGlvbnx1bmRlcmxpbmVUaGlja25lc3N8dW5pY29kZXx1bmljb2RlQmlkaXx1bmljb2RlUmFuZ2V8dW5pdHNQZXJFbXx2QWxwaGFiZXRpY3x2SGFuZ2luZ3x2SWRlb2dyYXBoaWN8dk1hdGhlbWF0aWNhbHx2YWx1ZXN8dmVjdG9yRWZmZWN0fHZlcnNpb258dmVydEFkdll8dmVydE9yaWdpblh8dmVydE9yaWdpbll8dmlld0JveHx2aWV3VGFyZ2V0fHZpc2liaWxpdHl8d2lkdGhzfHdvcmRTcGFjaW5nfHdyaXRpbmdNb2RlfHh8eEhlaWdodHx4MXx4Mnx4Q2hhbm5lbFNlbGVjdG9yfHhsaW5rQWN0dWF0ZXx4bGlua0FyY3JvbGV8eGxpbmtIcmVmfHhsaW5rUm9sZXx4bGlua1Nob3d8eGxpbmtUaXRsZXx4bGlua1R5cGV8eG1sQmFzZXx4bWxuc3x4bWxuc1hsaW5rfHhtbExhbmd8eG1sU3BhY2V8eXx5MXx5Mnx5Q2hhbm5lbFNlbGVjdG9yfHp8em9vbUFuZFBhbnxmb3J8Y2xhc3N8YXV0b2ZvY3VzKXwoKFtEZF1bQWFdW1R0XVtBYV18W0FhXVtScl1bSWldW0FhXXx4KS0uKikpJC8sYT1vKChmdW5jdGlvbihlKXtyZXR1cm4gaS50ZXN0KGUpfHwxMTE9PT1lLmNoYXJDb2RlQXQoMCkmJjExMD09PWUuY2hhckNvZGVBdCgxKSYmZS5jaGFyQ29kZUF0KDIpPDkxfSkpO3QuZGVmYXVsdD1hfSw3NzY2MDooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwPT09dFtuXSYmKHRbbl09ZShuKSksdFtuXX19fSw3NDIwNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmImRlZmF1bHQiaW4gZT9lLmRlZmF1bHQ6ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89cihuKDMwNTg4KSksaT1yKG4oMTA2NCkpLGE9cihuKDc3NjYwKSksdT0vW0EtWl18Xm1zL2cscz0vX0VNT18oW15fXSs/KV8oW15dKj8pX0VNT18vZyxjPWZ1bmN0aW9uKGUpe3JldHVybiA0NT09PWUuY2hhckNvZGVBdCgxKX0sbD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmImJvb2xlYW4iIT10eXBlb2YgZX0sZj1hKChmdW5jdGlvbihlKXtyZXR1cm4gYyhlKT9lOmUucmVwbGFjZSh1LCItJCYiKS50b0xvd2VyQ2FzZSgpfSkpLHA9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJhbmltYXRpb24iOmNhc2UiYW5pbWF0aW9uTmFtZSI6aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnJlcGxhY2UocywoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoPXtuYW1lOnQsc3R5bGVzOm4sbmV4dDpofSx0fSkpfXJldHVybiAxPT09aVtlXXx8YyhlKXx8Im51bWJlciIhPXR5cGVvZiB0fHwwPT09dD90OnQrInB4In07ZnVuY3Rpb24gZChlLHQsbixyKXtpZihudWxsPT1uKXJldHVybiIiO2lmKHZvaWQgMCE9PW4uX19lbW90aW9uX3N0eWxlcylyZXR1cm4gbjtzd2l0Y2godHlwZW9mIG4pe2Nhc2UiYm9vbGVhbiI6cmV0dXJuIiI7Y2FzZSJvYmplY3QiOmlmKDE9PT1uLmFuaW0pcmV0dXJuIGg9e25hbWU6bi5uYW1lLHN0eWxlczpuLnN0eWxlcyxuZXh0Omh9LG4ubmFtZTtpZih2b2lkIDAhPT1uLnN0eWxlcyl7dmFyIG89bi5uZXh0O2lmKHZvaWQgMCE9PW8pZm9yKDt2b2lkIDAhPT1vOyloPXtuYW1lOm8ubmFtZSxzdHlsZXM6by5zdHlsZXMsbmV4dDpofSxvPW8ubmV4dDtyZXR1cm4gbi5zdHlsZXMrIjsifXJldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI9IiI7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylyKz1kKGUsdCxuW29dLCExKTtlbHNlIGZvcih2YXIgaSBpbiBuKXt2YXIgYT1uW2ldO2lmKCJvYmplY3QiIT10eXBlb2YgYSludWxsIT10JiZ2b2lkIDAhPT10W2FdP3IrPWkrInsiK3RbYV0rIn0iOmwoYSkmJihyKz1mKGkpKyI6IitwKGksYSkrIjsiKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGEpfHwic3RyaW5nIiE9dHlwZW9mIGFbMF18fG51bGwhPXQmJnZvaWQgMCE9PXRbYVswXV0pe3ZhciB1PWQoZSx0LGEsITEpO3N3aXRjaChpKXtjYXNlImFuaW1hdGlvbiI6Y2FzZSJhbmltYXRpb25OYW1lIjpyKz1mKGkpKyI6Iit1KyI7IjticmVhaztkZWZhdWx0OnIrPWkrInsiK3UrIn0ifX1lbHNlIGZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKWwoYVtzXSkmJihyKz1mKGkpKyI6IitwKGksYVtzXSkrIjsiKX1yZXR1cm4gcn0oZSx0LG4pO2Nhc2UiZnVuY3Rpb24iOmlmKHZvaWQgMCE9PWUpe3ZhciBpPWgsYT1uKGUpO3JldHVybiBoPWksZChlLHQsYSxyKX19aWYobnVsbD09dClyZXR1cm4gbjt2YXIgdT10W25dO3JldHVybiB2b2lkIDA9PT11fHxyP246dX12YXIgaCx5PS9sYWJlbDpccyooW15ccztcbntdKylccyo7L2c7dC5zZXJpYWxpemVTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe2lmKDE9PT1lLmxlbmd0aCYmIm9iamVjdCI9PXR5cGVvZiBlWzBdJiZudWxsIT09ZVswXSYmdm9pZCAwIT09ZVswXS5zdHlsZXMpcmV0dXJuIGVbMF07dmFyIHI9ITAsaT0iIjtoPXZvaWQgMDt2YXIgYT1lWzBdO251bGw9PWF8fHZvaWQgMD09PWEucmF3PyhyPSExLGkrPWQobix0LGEsITEpKTppKz1hWzBdO2Zvcih2YXIgdT0xO3U8ZS5sZW5ndGg7dSsrKWkrPWQobix0LGVbdV0sNDY9PT1pLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkpLHImJihpKz1hW3VdKTt5Lmxhc3RJbmRleD0wO2Zvcih2YXIgcyxjPSIiO251bGwhPT0ocz15LmV4ZWMoaSkpOyljKz0iLSIrc1sxXTtyZXR1cm57bmFtZTpvKGkpK2Msc3R5bGVzOmksbmV4dDpofX19LDExOTg6KGUsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLmlzU3BlZWR5PXZvaWQgMD09PWUuc3BlZWR5fHxlLnNwZWVkeSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MCx0aGlzLm5vbmNlPWUubm9uY2UsdGhpcy5rZXk9ZS5rZXksdGhpcy5jb250YWluZXI9ZS5jb250YWluZXIsdGhpcy5iZWZvcmU9bnVsbH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5pbnNlcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5jdHIlKHRoaXMuaXNTcGVlZHk/NjVlMzoxKT09MCl7dmFyIHQsbj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIixlLmtleSksdm9pZCAwIT09ZS5ub25jZSYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixlLm5vbmNlKSx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSksdH0odGhpcyk7dD0wPT09dGhpcy50YWdzLmxlbmd0aD90aGlzLmJlZm9yZTp0aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXS5uZXh0U2libGluZyx0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUobix0KSx0aGlzLnRhZ3MucHVzaChuKX12YXIgcj10aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXTtpZih0aGlzLmlzU3BlZWR5KXt2YXIgbz1mdW5jdGlvbihlKXtpZihlLnNoZWV0KXJldHVybiBlLnNoZWV0O2Zvcih2YXIgdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKylpZihkb2N1bWVudC5zdHlsZVNoZWV0c1t0XS5vd25lck5vZGU9PT1lKXJldHVybiBkb2N1bWVudC5zdHlsZVNoZWV0c1t0XX0ocik7dHJ5e3ZhciBpPTEwNT09PWUuY2hhckNvZGVBdCgxKSYmNjQ9PT1lLmNoYXJDb2RlQXQoMCk7by5pbnNlcnRSdWxlKGUsaT8wOm8uY3NzUnVsZXMubGVuZ3RoKX1jYXRjaChlKXswfX1lbHNlIHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpO3RoaXMuY3RyKyt9LHQuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLnRhZ3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MH0sZX0oKTt0LlN0eWxlU2hlZXQ9bn0sNzM2MzU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiBlJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJkZWZhdWx0ImluIGU/ZS5kZWZhdWx0OmV9dmFyIG89cihuKDgyNDY2KSksaT1uKDY3Mjk0KSxhPXIobig2NzEyMSkpLHU9big4MzYwNSkscz1uKDg4MTI2KSxjPW4oNzQyMDUpLGw9YSxmPWZ1bmN0aW9uKGUpe3JldHVybiJ0aGVtZSIhPT1lJiYiaW5uZXJSZWYiIT09ZX0scD1mdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJmUuY2hhckNvZGVBdCgwKT45Nj9sOmZ9O2Z1bmN0aW9uIGQoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufXQuWj1mdW5jdGlvbiBlKHQsbil7dmFyIHIsYSxsO3ZvaWQgMCE9PW4mJihyPW4ubGFiZWwsbD1uLnRhcmdldCxhPXQuX19lbW90aW9uX2ZvcndhcmRQcm9wJiZuLnNob3VsZEZvcndhcmRQcm9wP2Z1bmN0aW9uKGUpe3JldHVybiB0Ll9fZW1vdGlvbl9mb3J3YXJkUHJvcChlKSYmbi5zaG91bGRGb3J3YXJkUHJvcChlKX06bi5zaG91bGRGb3J3YXJkUHJvcCk7dmFyIGY9dC5fX2Vtb3Rpb25fcmVhbD09PXQsaD1mJiZ0Ll9fZW1vdGlvbl9iYXNlfHx0OyJmdW5jdGlvbiIhPXR5cGVvZiBhJiZmJiYoYT10Ll9fZW1vdGlvbl9mb3J3YXJkUHJvcCk7dmFyIHk9YXx8cChoKSx2PSF5KCJhcyIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBtPWFyZ3VtZW50cyxnPWYmJnZvaWQgMCE9PXQuX19lbW90aW9uX3N0eWxlcz90Ll9fZW1vdGlvbl9zdHlsZXMuc2xpY2UoMCk6W107aWYodm9pZCAwIT09ciYmZy5wdXNoKCJsYWJlbDoiK3IrIjsiKSxudWxsPT1tWzBdfHx2b2lkIDA9PT1tWzBdLnJhdylnLnB1c2guYXBwbHkoZyxtKTtlbHNlezAsZy5wdXNoKG1bMF1bMF0pO2Zvcih2YXIgXz1tLmxlbmd0aCxiPTE7YjxfO2IrKylnLnB1c2gobVtiXSxtWzBdW2JdKX12YXIgdz11LndpdGhFbW90aW9uQ2FjaGUoKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHUuVGhlbWVDb250ZXh0LkNvbnN1bWVyLG51bGwsKGZ1bmN0aW9uKHIpe3ZhciBvPXYmJmUuYXN8fGgsdT0iIixmPVtdLGQ9ZTtpZihudWxsPT1lLnRoZW1lKXtmb3IodmFyIG0gaW4gZD17fSxlKWRbbV09ZVttXTtkLnRoZW1lPXJ9InN0cmluZyI9PXR5cGVvZiBlLmNsYXNzTmFtZT91PXMuZ2V0UmVnaXN0ZXJlZFN0eWxlcyh0LnJlZ2lzdGVyZWQsZixlLmNsYXNzTmFtZSk6bnVsbCE9ZS5jbGFzc05hbWUmJih1PWUuY2xhc3NOYW1lKyIgIik7dmFyIF89Yy5zZXJpYWxpemVTdHlsZXMoZy5jb25jYXQoZiksdC5yZWdpc3RlcmVkLGQpO3MuaW5zZXJ0U3R5bGVzKHQsXywic3RyaW5nIj09dHlwZW9mIG8pO3UrPXQua2V5KyItIitfLm5hbWUsdm9pZCAwIT09bCYmKHUrPSIgIitsKTt2YXIgYj12JiZ2b2lkIDA9PT1hP3Aobyk6eSx3PXt9O2Zvcih2YXIgeCBpbiBlKXYmJiJhcyI9PT14fHxiKHgpJiYod1t4XT1lW3hdKTtyZXR1cm4gdy5jbGFzc05hbWU9dSx3LnJlZj1ufHxlLmlubmVyUmVmLGkuY3JlYXRlRWxlbWVudChvLHcpfSkpfSkpO3JldHVybiB3LmRpc3BsYXlOYW1lPXZvaWQgMCE9PXI/cjoiU3R5bGVkKCIrKCJzdHJpbmciPT10eXBlb2YgaD9oOmguZGlzcGxheU5hbWV8fGgubmFtZXx8IkNvbXBvbmVudCIpKyIpIix3LmRlZmF1bHRQcm9wcz10LmRlZmF1bHRQcm9wcyx3Ll9fZW1vdGlvbl9yZWFsPXcsdy5fX2Vtb3Rpb25fYmFzZT1oLHcuX19lbW90aW9uX3N0eWxlcz1nLHcuX19lbW90aW9uX2ZvcndhcmRQcm9wPWEsT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsInRvU3RyaW5nIix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iLiIrbH19KSx3LndpdGhDb21wb25lbnQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZSh0LHZvaWQgMCE9PXI/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZChuLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtvKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpkKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX0oe30sbnx8e30se30scik6bikuYXBwbHkodm9pZCAwLGcpfSx3fX19LDgyNDY2OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDU2OTQwOihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlLHIscyxjLHApe2Zvcih2YXIgZCxoLHksdixiLHg9MCxrPTAsUz0wLEU9MCxUPTAsUj0wLE49eT1kPTAsRj0wLEQ9MCxMPTAsej0wLFU9cy5sZW5ndGgsQj1VLTEsVz0iIixIPSIiLCQ9IiIsVj0iIjtGPFU7KXtpZihoPXMuY2hhckNvZGVBdChGKSxGPT09QiYmMCE9PWsrRStTK3gmJigwIT09ayYmKGg9NDc9PT1rPzEwOjQ3KSxFPVM9eD0wLFUrKyxCKyspLDA9PT1rK0UrUyt4KXtpZihGPT09QiYmKDA8RCYmKFc9Vy5yZXBsYWNlKGYsIiIpKSwwPFcudHJpbSgpLmxlbmd0aCkpe3N3aXRjaChoKXtjYXNlIDMyOmNhc2UgOTpjYXNlIDU5OmNhc2UgMTM6Y2FzZSAxMDpicmVhaztkZWZhdWx0OlcrPXMuY2hhckF0KEYpfWg9NTl9c3dpdGNoKGgpe2Nhc2UgMTIzOmZvcihkPShXPVcudHJpbSgpKS5jaGFyQ29kZUF0KDApLHk9MSx6PSsrRjtGPFU7KXtzd2l0Y2goaD1zLmNoYXJDb2RlQXQoRikpe2Nhc2UgMTIzOnkrKzticmVhaztjYXNlIDEyNTp5LS07YnJlYWs7Y2FzZSA0Nzpzd2l0Y2goaD1zLmNoYXJDb2RlQXQoRisxKSl7Y2FzZSA0MjpjYXNlIDQ3OmU6e2ZvcihOPUYrMTtOPEI7KytOKXN3aXRjaChzLmNoYXJDb2RlQXQoTikpe2Nhc2UgNDc6aWYoNDI9PT1oJiY0Mj09PXMuY2hhckNvZGVBdChOLTEpJiZGKzIhPT1OKXtGPU4rMTticmVhayBlfWJyZWFrO2Nhc2UgMTA6aWYoNDc9PT1oKXtGPU4rMTticmVhayBlfX1GPU59fWJyZWFrO2Nhc2UgOTE6aCsrO2Nhc2UgNDA6aCsrO2Nhc2UgMzQ6Y2FzZSAzOTpmb3IoO0YrKzxCJiZzLmNoYXJDb2RlQXQoRikhPT1oOyk7fWlmKDA9PT15KWJyZWFrO0YrK31pZih5PXMuc3Vic3RyaW5nKHosRiksMD09PWQmJihkPShXPVcucmVwbGFjZShsLCIiKS50cmltKCkpLmNoYXJDb2RlQXQoMCkpLDY0PT09ZCl7c3dpdGNoKDA8RCYmKFc9Vy5yZXBsYWNlKGYsIiIpKSxoPVcuY2hhckNvZGVBdCgxKSl7Y2FzZSAxMDA6Y2FzZSAxMDk6Y2FzZSAxMTU6Y2FzZSA0NTpEPXI7YnJlYWs7ZGVmYXVsdDpEPWp9aWYoej0oeT10KHIsRCx5LGgscCsxKSkubGVuZ3RoLDA8TSYmKGI9dSgzLHksRD1uKGosVyxMKSxyLE8sQyx6LGgscCxjKSxXPUQuam9pbigiIiksdm9pZCAwIT09YiYmMD09PSh6PSh5PWIudHJpbSgpKS5sZW5ndGgpJiYoaD0wLHk9IiIpKSwwPHopc3dpdGNoKGgpe2Nhc2UgMTE1Olc9Vy5yZXBsYWNlKHcsYSk7Y2FzZSAxMDA6Y2FzZSAxMDk6Y2FzZSA0NTp5PVcrInsiK3krIn0iO2JyZWFrO2Nhc2UgMTA3Onk9KFc9Vy5yZXBsYWNlKG0sIiQxICQyIikpKyJ7Iit5KyJ9Iix5PTE9PT1BfHwyPT09QSYmaSgiQCIreSwzKT8iQC13ZWJraXQtIit5KyJAIit5OiJAIit5O2JyZWFrO2RlZmF1bHQ6eT1XK3ksMTEyPT09YyYmKEgrPXkseT0iIil9ZWxzZSB5PSIifWVsc2UgeT10KHIsbihyLFcsTCkseSxjLHArMSk7JCs9eSx5PUw9RD1OPWQ9MCxXPSIiLGg9cy5jaGFyQ29kZUF0KCsrRik7YnJlYWs7Y2FzZSAxMjU6Y2FzZSA1OTppZigxPCh6PShXPSgwPEQ/Vy5yZXBsYWNlKGYsIiIpOlcpLnRyaW0oKSkubGVuZ3RoKSlzd2l0Y2goMD09PU4mJihkPVcuY2hhckNvZGVBdCgwKSw0NT09PWR8fDk2PGQmJjEyMz5kKSYmKHo9KFc9Vy5yZXBsYWNlKCIgIiwiOiIpKS5sZW5ndGgpLDA8TSYmdm9pZCAwIT09KGI9dSgxLFcscixlLE8sQyxILmxlbmd0aCxjLHAsYykpJiYwPT09KHo9KFc9Yi50cmltKCkpLmxlbmd0aCkmJihXPSJcMFwwIiksZD1XLmNoYXJDb2RlQXQoMCksaD1XLmNoYXJDb2RlQXQoMSksZCl7Y2FzZSAwOmJyZWFrO2Nhc2UgNjQ6aWYoMTA1PT09aHx8OTk9PT1oKXtWKz1XK3MuY2hhckF0KEYpO2JyZWFrfWRlZmF1bHQ6NTghPT1XLmNoYXJDb2RlQXQoei0xKSYmKEgrPW8oVyxkLGgsVy5jaGFyQ29kZUF0KDIpKSl9TD1EPU49ZD0wLFc9IiIsaD1zLmNoYXJDb2RlQXQoKytGKX19c3dpdGNoKGgpe2Nhc2UgMTM6Y2FzZSAxMDo0Nz09PWs/az0wOjA9PT0xK2QmJjEwNyE9PWMmJjA8Vy5sZW5ndGgmJihEPTEsVys9IlwwIiksMDxNKkkmJnUoMCxXLHIsZSxPLEMsSC5sZW5ndGgsYyxwLGMpLEM9MSxPKys7YnJlYWs7Y2FzZSA1OTpjYXNlIDEyNTppZigwPT09aytFK1MreCl7QysrO2JyZWFrfWRlZmF1bHQ6c3dpdGNoKEMrKyx2PXMuY2hhckF0KEYpLGgpe2Nhc2UgOTpjYXNlIDMyOmlmKDA9PT1FK3graylzd2l0Y2goVCl7Y2FzZSA0NDpjYXNlIDU4OmNhc2UgOTpjYXNlIDMyOnY9IiI7YnJlYWs7ZGVmYXVsdDozMiE9PWgmJih2PSIgIil9YnJlYWs7Y2FzZSAwOnY9IlxcMCI7YnJlYWs7Y2FzZSAxMjp2PSJcXGYiO2JyZWFrO2Nhc2UgMTE6dj0iXFx2IjticmVhaztjYXNlIDM4OjA9PT1FK2sreCYmKEQ9TD0xLHY9IlxmIit2KTticmVhaztjYXNlIDEwODppZigwPT09RStrK3grUCYmMDxOKXN3aXRjaChGLU4pe2Nhc2UgMjoxMTI9PT1UJiY1OD09PXMuY2hhckNvZGVBdChGLTMpJiYoUD1UKTtjYXNlIDg6MTExPT09UiYmKFA9Uil9YnJlYWs7Y2FzZSA1ODowPT09RStrK3gmJihOPUYpO2JyZWFrO2Nhc2UgNDQ6MD09PWsrUytFK3gmJihEPTEsdis9IlxyIik7YnJlYWs7Y2FzZSAzNDpjYXNlIDM5OjA9PT1rJiYoRT1FPT09aD8wOjA9PT1FP2g6RSk7YnJlYWs7Y2FzZSA5MTowPT09RStrK1MmJngrKzticmVhaztjYXNlIDkzOjA9PT1FK2srUyYmeC0tO2JyZWFrO2Nhc2UgNDE6MD09PUUrayt4JiZTLS07YnJlYWs7Y2FzZSA0MDppZigwPT09RStrK3gpe2lmKDA9PT1kKWlmKDIqVCszKlI9PTUzMyk7ZWxzZSBkPTE7UysrfWJyZWFrO2Nhc2UgNjQ6MD09PWsrUytFK3grTit5JiYoeT0xKTticmVhaztjYXNlIDQyOmNhc2UgNDc6aWYoISgwPEUreCtTKSlzd2l0Y2goayl7Y2FzZSAwOnN3aXRjaCgyKmgrMypzLmNoYXJDb2RlQXQoRisxKSl7Y2FzZSAyMzU6az00NzticmVhaztjYXNlIDIyMDp6PUYsaz00Mn1icmVhaztjYXNlIDQyOjQ3PT09aCYmNDI9PT1UJiZ6KzIhPT1GJiYoMzM9PT1zLmNoYXJDb2RlQXQoeisyKSYmKEgrPXMuc3Vic3RyaW5nKHosRisxKSksdj0iIixrPTApfX0wPT09ayYmKFcrPXYpfVI9VCxUPWgsRisrfWlmKDA8KHo9SC5sZW5ndGgpKXtpZihEPXIsMDxNJiYodm9pZCAwIT09KGI9dSgyLEgsRCxlLE8sQyx6LGMscCxjKSkmJjA9PT0oSD1iKS5sZW5ndGgpKXJldHVybiBWK0grJDtpZihIPUQuam9pbigiLCIpKyJ7IitIKyJ9IiwwIT1BKlApe3N3aXRjaCgyIT09QXx8aShILDIpfHwoUD0wKSxQKXtjYXNlIDExMTpIPUgucmVwbGFjZShfLCI6LW1vei0kMSIpK0g7YnJlYWs7Y2FzZSAxMTI6SD1ILnJlcGxhY2UoZywiOjotd2Via2l0LWlucHV0LSQxIikrSC5yZXBsYWNlKGcsIjo6LW1vei0kMSIpK0gucmVwbGFjZShnLCI6LW1zLWlucHV0LSQxIikrSH1QPTB9fXJldHVybiBWK0grJH1mdW5jdGlvbiBuKGUsdCxuKXt2YXIgbz10LnRyaW0oKS5zcGxpdCh5KTt0PW87dmFyIGk9by5sZW5ndGgsYT1lLmxlbmd0aDtzd2l0Y2goYSl7Y2FzZSAwOmNhc2UgMTp2YXIgdT0wO2ZvcihlPTA9PT1hPyIiOmVbMF0rIiAiO3U8aTsrK3UpdFt1XT1yKGUsdFt1XSxuKS50cmltKCk7YnJlYWs7ZGVmYXVsdDp2YXIgcz11PTA7Zm9yKHQ9W107dTxpOysrdSlmb3IodmFyIGM9MDtjPGE7KytjKXRbcysrXT1yKGVbY10rIiAiLG9bdV0sbikudHJpbSgpfXJldHVybiB0fWZ1bmN0aW9uIHIoZSx0LG4pe3ZhciByPXQuY2hhckNvZGVBdCgwKTtzd2l0Y2goMzM+ciYmKHI9KHQ9dC50cmltKCkpLmNoYXJDb2RlQXQoMCkpLHIpe2Nhc2UgMzg6cmV0dXJuIHQucmVwbGFjZSh2LCIkMSIrZS50cmltKCkpO2Nhc2UgNTg6cmV0dXJuIGUudHJpbSgpK3QucmVwbGFjZSh2LCIkMSIrZS50cmltKCkpO2RlZmF1bHQ6aWYoMDwxKm4mJjA8dC5pbmRleE9mKCJcZiIpKXJldHVybiB0LnJlcGxhY2UodiwoNTg9PT1lLmNoYXJDb2RlQXQoMCk/IiI6IiQxIikrZS50cmltKCkpfXJldHVybiBlK3R9ZnVuY3Rpb24gbyhlLHQsbixyKXt2YXIgYT1lKyI7Iix1PTIqdCszKm4rNCpyO2lmKDk0ND09PXUpe2U9YS5pbmRleE9mKCI6Iiw5KSsxO3ZhciBzPWEuc3Vic3RyaW5nKGUsYS5sZW5ndGgtMSkudHJpbSgpO3JldHVybiBzPWEuc3Vic3RyaW5nKDAsZSkudHJpbSgpK3MrIjsiLDE9PT1BfHwyPT09QSYmaShzLDEpPyItd2Via2l0LSIrcytzOnN9aWYoMD09PUF8fDI9PT1BJiYhaShhLDEpKXJldHVybiBhO3N3aXRjaCh1KXtjYXNlIDEwMTU6cmV0dXJuIDk3PT09YS5jaGFyQ29kZUF0KDEwKT8iLXdlYmtpdC0iK2ErYTphO2Nhc2UgOTUxOnJldHVybiAxMTY9PT1hLmNoYXJDb2RlQXQoMyk/Ii13ZWJraXQtIithK2E6YTtjYXNlIDk2MzpyZXR1cm4gMTEwPT09YS5jaGFyQ29kZUF0KDUpPyItd2Via2l0LSIrYSthOmE7Y2FzZSAxMDA5OmlmKDEwMCE9PWEuY2hhckNvZGVBdCg0KSlicmVhaztjYXNlIDk2OTpjYXNlIDk0MjpyZXR1cm4iLXdlYmtpdC0iK2ErYTtjYXNlIDk3ODpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tb3otIithK2E7Y2FzZSAxMDE5OmNhc2UgOTgzOnJldHVybiItd2Via2l0LSIrYSsiLW1vei0iK2ErIi1tcy0iK2ErYTtjYXNlIDg4MzppZig0NT09PWEuY2hhckNvZGVBdCg4KSlyZXR1cm4iLXdlYmtpdC0iK2ErYTtpZigwPGEuaW5kZXhPZigiaW1hZ2Utc2V0KCIsMTEpKXJldHVybiBhLnJlcGxhY2UoVCwiJDEtd2Via2l0LSQyIikrYTticmVhaztjYXNlIDkzMjppZig0NT09PWEuY2hhckNvZGVBdCg0KSlzd2l0Y2goYS5jaGFyQ29kZUF0KDUpKXtjYXNlIDEwMzpyZXR1cm4iLXdlYmtpdC1ib3gtIithLnJlcGxhY2UoIi1ncm93IiwiIikrIi13ZWJraXQtIithKyItbXMtIithLnJlcGxhY2UoImdyb3ciLCJwb3NpdGl2ZSIpK2E7Y2FzZSAxMTU6cmV0dXJuIi13ZWJraXQtIithKyItbXMtIithLnJlcGxhY2UoInNocmluayIsIm5lZ2F0aXZlIikrYTtjYXNlIDk4OnJldHVybiItd2Via2l0LSIrYSsiLW1zLSIrYS5yZXBsYWNlKCJiYXNpcyIsInByZWZlcnJlZC1zaXplIikrYX1yZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy0iK2ErYTtjYXNlIDk2NDpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy1mbGV4LSIrYSthO2Nhc2UgMTAyMzppZig5OSE9PWEuY2hhckNvZGVBdCg4KSlicmVhaztyZXR1cm4iLXdlYmtpdC1ib3gtcGFjayIrKHM9YS5zdWJzdHJpbmcoYS5pbmRleE9mKCI6IiwxNSkpLnJlcGxhY2UoImZsZXgtIiwiIikucmVwbGFjZSgic3BhY2UtYmV0d2VlbiIsImp1c3RpZnkiKSkrIi13ZWJraXQtIithKyItbXMtZmxleC1wYWNrIitzK2E7Y2FzZSAxMDA1OnJldHVybiBkLnRlc3QoYSk/YS5yZXBsYWNlKHAsIjotd2Via2l0LSIpK2EucmVwbGFjZShwLCI6LW1vei0iKSthOmE7Y2FzZSAxZTM6c3dpdGNoKHQ9KHM9YS5zdWJzdHJpbmcoMTMpLnRyaW0oKSkuaW5kZXhPZigiLSIpKzEscy5jaGFyQ29kZUF0KDApK3MuY2hhckNvZGVBdCh0KSl7Y2FzZSAyMjY6cz1hLnJlcGxhY2UoYiwidGIiKTticmVhaztjYXNlIDIzMjpzPWEucmVwbGFjZShiLCJ0Yi1ybCIpO2JyZWFrO2Nhc2UgMjIwOnM9YS5yZXBsYWNlKGIsImxyIik7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gYX1yZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy0iK3MrYTtjYXNlIDEwMTc6aWYoLTE9PT1hLmluZGV4T2YoInN0aWNreSIsOSkpYnJlYWs7Y2FzZSA5NzU6c3dpdGNoKHQ9KGE9ZSkubGVuZ3RoLTEwLHU9KHM9KDMzPT09YS5jaGFyQ29kZUF0KHQpP2Euc3Vic3RyaW5nKDAsdCk6YSkuc3Vic3RyaW5nKGUuaW5kZXhPZigiOiIsNykrMSkudHJpbSgpKS5jaGFyQ29kZUF0KDApKygwfHMuY2hhckNvZGVBdCg3KSkpe2Nhc2UgMjAzOmlmKDExMT5zLmNoYXJDb2RlQXQoOCkpYnJlYWs7Y2FzZSAxMTU6YT1hLnJlcGxhY2UocywiLXdlYmtpdC0iK3MpKyI7IithO2JyZWFrO2Nhc2UgMjA3OmNhc2UgMTAyOmE9YS5yZXBsYWNlKHMsIi13ZWJraXQtIisoMTAyPHU/ImlubGluZS0iOiIiKSsiYm94IikrIjsiK2EucmVwbGFjZShzLCItd2Via2l0LSIrcykrIjsiK2EucmVwbGFjZShzLCItbXMtIitzKyJib3giKSsiOyIrYX1yZXR1cm4gYSsiOyI7Y2FzZSA5Mzg6aWYoNDU9PT1hLmNoYXJDb2RlQXQoNSkpc3dpdGNoKGEuY2hhckNvZGVBdCg2KSl7Y2FzZSAxMDU6cmV0dXJuIHM9YS5yZXBsYWNlKCItaXRlbXMiLCIiKSwiLXdlYmtpdC0iK2ErIi13ZWJraXQtYm94LSIrcysiLW1zLWZsZXgtIitzK2E7Y2FzZSAxMTU6cmV0dXJuIi13ZWJraXQtIithKyItbXMtZmxleC1pdGVtLSIrYS5yZXBsYWNlKGssIiIpK2E7ZGVmYXVsdDpyZXR1cm4iLXdlYmtpdC0iK2ErIi1tcy1mbGV4LWxpbmUtcGFjayIrYS5yZXBsYWNlKCJhbGlnbi1jb250ZW50IiwiIikucmVwbGFjZShrLCIiKSthfWJyZWFrO2Nhc2UgOTczOmNhc2UgOTg5OmlmKDQ1IT09YS5jaGFyQ29kZUF0KDMpfHwxMjI9PT1hLmNoYXJDb2RlQXQoNCkpYnJlYWs7Y2FzZSA5MzE6Y2FzZSA5NTM6aWYoITA9PT1FLnRlc3QoZSkpcmV0dXJuIDExNT09PShzPWUuc3Vic3RyaW5nKGUuaW5kZXhPZigiOiIpKzEpKS5jaGFyQ29kZUF0KDApP28oZS5yZXBsYWNlKCJzdHJldGNoIiwiZmlsbC1hdmFpbGFibGUiKSx0LG4scikucmVwbGFjZSgiOmZpbGwtYXZhaWxhYmxlIiwiOnN0cmV0Y2giKTphLnJlcGxhY2UocywiLXdlYmtpdC0iK3MpK2EucmVwbGFjZShzLCItbW96LSIrcy5yZXBsYWNlKCJmaWxsLSIsIiIpKSthO2JyZWFrO2Nhc2UgOTYyOmlmKGE9Ii13ZWJraXQtIithKygxMDI9PT1hLmNoYXJDb2RlQXQoNSk/Ii1tcy0iK2E6IiIpK2EsMjExPT09bityJiYxMDU9PT1hLmNoYXJDb2RlQXQoMTMpJiYwPGEuaW5kZXhPZigidHJhbnNmb3JtIiwxMCkpcmV0dXJuIGEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCI7IiwyNykrMSkucmVwbGFjZShoLCIkMS13ZWJraXQtJDIiKSthfXJldHVybiBhfWZ1bmN0aW9uIGkoZSx0KXt2YXIgbj1lLmluZGV4T2YoMT09PXQ/IjoiOiJ7Iikscj1lLnN1YnN0cmluZygwLDMhPT10P246MTApO3JldHVybiBuPWUuc3Vic3RyaW5nKG4rMSxlLmxlbmd0aC0xKSxOKDIhPT10P3I6ci5yZXBsYWNlKFMsIiQxIiksbix0KX1mdW5jdGlvbiBhKGUsdCl7dmFyIG49byh0LHQuY2hhckNvZGVBdCgwKSx0LmNoYXJDb2RlQXQoMSksdC5jaGFyQ29kZUF0KDIpKTtyZXR1cm4gbiE9PXQrIjsiP24ucmVwbGFjZSh4LCIgb3IgKCQxKSIpLnN1YnN0cmluZyg0KToiKCIrdCsiKSJ9ZnVuY3Rpb24gdShlLHQsbixyLG8saSxhLHUscyxsKXtmb3IodmFyIGYscD0wLGQ9dDtwPE07KytwKXN3aXRjaChmPVJbcF0uY2FsbChjLGUsZCxuLHIsbyxpLGEsdSxzLGwpKXtjYXNlIHZvaWQgMDpjYXNlITE6Y2FzZSEwOmNhc2UgbnVsbDpicmVhaztkZWZhdWx0OmQ9Zn1pZihkIT09dClyZXR1cm4gZH1mdW5jdGlvbiBzKGUpe3JldHVybiB2b2lkIDAhPT0oZT1lLnByZWZpeCkmJihOPW51bGwsZT8iZnVuY3Rpb24iIT10eXBlb2YgZT9BPTE6KEE9MixOPWUpOkE9MCksc31mdW5jdGlvbiBjKGUsbil7dmFyIHI9ZTtpZigzMz5yLmNoYXJDb2RlQXQoMCkmJihyPXIudHJpbSgpKSxyPVtyXSwwPE0pe3ZhciBvPXUoLTEsbixyLHIsTyxDLDAsMCwwLDApO3ZvaWQgMCE9PW8mJiJzdHJpbmciPT10eXBlb2YgbyYmKG49byl9dmFyIGk9dChqLHIsbiwwLDApO3JldHVybiAwPE0mJih2b2lkIDAhPT0obz11KC0yLGkscixyLE8sQyxpLmxlbmd0aCwwLDAsMCkpJiYoaT1vKSksIiIsUD0wLEM9Tz0xLGl9dmFyIGw9L15cMCsvZyxmPS9bXDBcclxmXS9nLHA9LzogKi9nLGQ9L3pvb3xncmEvLGg9LyhbLDogXSkodHJhbnNmb3JtKS9nLHk9Lyxccis/L2csdj0vKFtcdFxyXG4gXSkqXGY/Ji9nLG09L0Aoa1x3KylccyooXFMqKVxzKi8sZz0vOjoocGxhY2UpL2csXz0vOihyZWFkLW9ubHkpL2csYj0vW3N2aF1cdystW3RibHJdezJ9Lyx3PS9cKFxzKiguKilccypcKS9nLHg9LyhbXHNcU10qPyk7L2csaz0vLXNlbGZ8ZmxleC0vZyxTPS9bXl0qPyg6W3JwXVtlbF1hW1x3LV0rKVteXSovLEU9L3N0cmV0Y2h8OlxzKlx3K1wtKD86Y29udGV8YXZhaWwpLyxUPS8oW14tXSkoaW1hZ2Utc2V0XCgpLyxDPTEsTz0xLFA9MCxBPTEsaj1bXSxSPVtdLE09MCxOPW51bGwsST0wO3JldHVybiBjLnVzZT1mdW5jdGlvbiBlKHQpe3N3aXRjaCh0KXtjYXNlIHZvaWQgMDpjYXNlIG51bGw6TT1SLmxlbmd0aD0wO2JyZWFrO2RlZmF1bHQ6aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpUltNKytdPXQ7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHQpZm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7KytuKWUodFtuXSk7ZWxzZSBJPTB8ISF0fXJldHVybiBlfSxjLnNldD1zLHZvaWQgMCE9PWUmJnMoZSksY319LDEwNjQ6KGUsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3QuZGVmYXVsdD17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6MSxib3JkZXJJbWFnZU91dHNldDoxLGJvcmRlckltYWdlU2xpY2U6MSxib3JkZXJJbWFnZVdpZHRoOjEsYm94RmxleDoxLGJveEZsZXhHcm91cDoxLGJveE9yZGluYWxHcm91cDoxLGNvbHVtbkNvdW50OjEsY29sdW1uczoxLGZsZXg6MSxmbGV4R3JvdzoxLGZsZXhQb3NpdGl2ZToxLGZsZXhTaHJpbms6MSxmbGV4TmVnYXRpdmU6MSxmbGV4T3JkZXI6MSxncmlkUm93OjEsZ3JpZFJvd0VuZDoxLGdyaWRSb3dTcGFuOjEsZ3JpZFJvd1N0YXJ0OjEsZ3JpZENvbHVtbjoxLGdyaWRDb2x1bW5FbmQ6MSxncmlkQ29sdW1uU3BhbjoxLGdyaWRDb2x1bW5TdGFydDoxLG1zR3JpZFJvdzoxLG1zR3JpZFJvd1NwYW46MSxtc0dyaWRDb2x1bW46MSxtc0dyaWRDb2x1bW5TcGFuOjEsZm9udFdlaWdodDoxLGxpbmVIZWlnaHQ6MSxvcGFjaXR5OjEsb3JkZXI6MSxvcnBoYW5zOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX19LDg4MTI2OihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt0LmdldFJlZ2lzdGVyZWRTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPSIiO3JldHVybiBuLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24obil7dm9pZCAwIT09ZVtuXT90LnB1c2goZVtuXSk6cis9bisiICJ9KSkscn0sdC5pbnNlcnRTdHlsZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUua2V5KyItIit0Lm5hbWU7aWYoITE9PT1uJiZ2b2lkIDA9PT1lLnJlZ2lzdGVyZWRbcl0mJihlLnJlZ2lzdGVyZWRbcl09dC5zdHlsZXMpLHZvaWQgMD09PWUuaW5zZXJ0ZWRbdC5uYW1lXSl7dmFyIG89dDtkb3tlLmluc2VydCgiLiIrcixvLGUuc2hlZXQsITApO289by5uZXh0fXdoaWxlKHZvaWQgMCE9PW8pfX19LDIyOTc3OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUsdCl7cmV0dXJuIGUodD17ZXhwb3J0czp7fX0sdC5leHBvcnRzKSx0LmV4cG9ydHN9dmFyIHQ9ZSgoZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKHQpe3ZhciBuPS9eXHMrLyxyPS9ccyskLyxvPTAsaT10LnJvdW5kLGE9dC5taW4sdT10Lm1heCxzPXQucmFuZG9tO2Z1bmN0aW9uIGMoZSx0KXtpZih0PXR8fHt9LChlPWV8fCIiKWluc3RhbmNlb2YgYylyZXR1cm4gZTtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGMoZSx0KTt2YXIgbj1sKGUpO3RoaXMuX29yaWdpbmFsSW5wdXQ9ZSx0aGlzLl9yPW4ucix0aGlzLl9nPW4uZyx0aGlzLl9iPW4uYix0aGlzLl9hPW4uYSx0aGlzLl9yb3VuZEE9aSgxMDAqdGhpcy5fYSkvMTAwLHRoaXMuX2Zvcm1hdD10LmZvcm1hdHx8bi5mb3JtYXQsdGhpcy5fZ3JhZGllbnRUeXBlPXQuZ3JhZGllbnRUeXBlLHRoaXMuX3I8MSYmKHRoaXMuX3I9aSh0aGlzLl9yKSksdGhpcy5fZzwxJiYodGhpcy5fZz1pKHRoaXMuX2cpKSx0aGlzLl9iPDEmJih0aGlzLl9iPWkodGhpcy5fYikpLHRoaXMuX29rPW4ub2ssdGhpcy5fdGNfaWQ9bysrfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9e3I6MCxnOjAsYjowfSxuPTEscj1udWxsLG89bnVsbCxpPW51bGwscz0hMSxjPSExO3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmKGU9SyhlKSksIm9iamVjdCI9PXR5cGVvZiBlJiYoWShlLnIpJiZZKGUuZykmJlkoZS5iKT8odD1mKGUucixlLmcsZS5iKSxzPSEwLGM9IiUiPT09U3RyaW5nKGUucikuc3Vic3RyKC0xKT8icHJnYiI6InJnYiIpOlkoZS5oKSYmWShlLnMpJiZZKGUudik/KHI9VyhlLnMpLG89VyhlLnYpLHQ9eShlLmgscixvKSxzPSEwLGM9ImhzdiIpOlkoZS5oKSYmWShlLnMpJiZZKGUubCkmJihyPVcoZS5zKSxpPVcoZS5sKSx0PWQoZS5oLHIsaSkscz0hMCxjPSJoc2wiKSxlLmhhc093blByb3BlcnR5KCJhIikmJihuPWUuYSkpLG49SShuKSx7b2s6cyxmb3JtYXQ6ZS5mb3JtYXR8fGMscjphKDI1NSx1KHQuciwwKSksZzphKDI1NSx1KHQuZywwKSksYjphKDI1NSx1KHQuYiwwKSksYTpufX1mdW5jdGlvbiBmKGUsdCxuKXtyZXR1cm57cjoyNTUqRihlLDI1NSksZzoyNTUqRih0LDI1NSksYjoyNTUqRihuLDI1NSl9fWZ1bmN0aW9uIHAoZSx0LG4pe2U9RihlLDI1NSksdD1GKHQsMjU1KSxuPUYobiwyNTUpO3ZhciByLG8saT11KGUsdCxuKSxzPWEoZSx0LG4pLGM9KGkrcykvMjtpZihpPT1zKXI9bz0wO2Vsc2V7dmFyIGw9aS1zO3N3aXRjaChvPWM+LjU/bC8oMi1pLXMpOmwvKGkrcyksaSl7Y2FzZSBlOnI9KHQtbikvbCsodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OnI9KG4tZSkvbCsyO2JyZWFrO2Nhc2UgbjpyPShlLXQpL2wrNH1yLz02fXJldHVybntoOnIsczpvLGw6Y319ZnVuY3Rpb24gZChlLHQsbil7dmFyIHIsbyxpO2Z1bmN0aW9uIGEoZSx0LG4pe3JldHVybiBuPDAmJihuKz0xKSxuPjEmJihuLT0xKSxuPDEvNj9lKzYqKHQtZSkqbjpuPC41P3Q6bjwyLzM/ZSsodC1lKSooMi8zLW4pKjY6ZX1pZihlPUYoZSwzNjApLHQ9Rih0LDEwMCksbj1GKG4sMTAwKSwwPT09dClyPW89aT1uO2Vsc2V7dmFyIHU9bjwuNT9uKigxK3QpOm4rdC1uKnQscz0yKm4tdTtyPWEocyx1LGUrMS8zKSxvPWEocyx1LGUpLGk9YShzLHUsZS0xLzMpfXJldHVybntyOjI1NSpyLGc6MjU1Km8sYjoyNTUqaX19ZnVuY3Rpb24gaChlLHQsbil7ZT1GKGUsMjU1KSx0PUYodCwyNTUpLG49RihuLDI1NSk7dmFyIHIsbyxpPXUoZSx0LG4pLHM9YShlLHQsbiksYz1pLGw9aS1zO2lmKG89MD09PWk/MDpsL2ksaT09cylyPTA7ZWxzZXtzd2l0Y2goaSl7Y2FzZSBlOnI9KHQtbikvbCsodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OnI9KG4tZSkvbCsyO2JyZWFrO2Nhc2UgbjpyPShlLXQpL2wrNH1yLz02fXJldHVybntoOnIsczpvLHY6Y319ZnVuY3Rpb24geShlLG4scil7ZT02KkYoZSwzNjApLG49RihuLDEwMCkscj1GKHIsMTAwKTt2YXIgbz10LmZsb29yKGUpLGk9ZS1vLGE9ciooMS1uKSx1PXIqKDEtaSpuKSxzPXIqKDEtKDEtaSkqbiksYz1vJTY7cmV0dXJue3I6MjU1KltyLHUsYSxhLHMscl1bY10sZzoyNTUqW3MscixyLHUsYSxhXVtjXSxiOjI1NSpbYSxhLHMscixyLHVdW2NdfX1mdW5jdGlvbiB2KGUsdCxuLHIpe3ZhciBvPVtCKGkoZSkudG9TdHJpbmcoMTYpKSxCKGkodCkudG9TdHJpbmcoMTYpKSxCKGkobikudG9TdHJpbmcoMTYpKV07cmV0dXJuIHImJm9bMF0uY2hhckF0KDApPT1vWzBdLmNoYXJBdCgxKSYmb1sxXS5jaGFyQXQoMCk9PW9bMV0uY2hhckF0KDEpJiZvWzJdLmNoYXJBdCgwKT09b1syXS5jaGFyQXQoMSk/b1swXS5jaGFyQXQoMCkrb1sxXS5jaGFyQXQoMCkrb1syXS5jaGFyQXQoMCk6by5qb2luKCIiKX1mdW5jdGlvbiBtKGUsdCxuLHIsbyl7dmFyIGE9W0IoaShlKS50b1N0cmluZygxNikpLEIoaSh0KS50b1N0cmluZygxNikpLEIoaShuKS50b1N0cmluZygxNikpLEIoSChyKSldO3JldHVybiBvJiZhWzBdLmNoYXJBdCgwKT09YVswXS5jaGFyQXQoMSkmJmFbMV0uY2hhckF0KDApPT1hWzFdLmNoYXJBdCgxKSYmYVsyXS5jaGFyQXQoMCk9PWFbMl0uY2hhckF0KDEpJiZhWzNdLmNoYXJBdCgwKT09YVszXS5jaGFyQXQoMSk/YVswXS5jaGFyQXQoMCkrYVsxXS5jaGFyQXQoMCkrYVsyXS5jaGFyQXQoMCkrYVszXS5jaGFyQXQoMCk6YS5qb2luKCIiKX1mdW5jdGlvbiBnKGUsdCxuLHIpe3JldHVybltCKEgocikpLEIoaShlKS50b1N0cmluZygxNikpLEIoaSh0KS50b1N0cmluZygxNikpLEIoaShuKS50b1N0cmluZygxNikpXS5qb2luKCIiKX1mdW5jdGlvbiBfKGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciBuPWMoZSkudG9Ic2woKTtyZXR1cm4gbi5zLT10LzEwMCxuLnM9RChuLnMpLGMobil9ZnVuY3Rpb24gYihlLHQpe3Q9MD09PXQ/MDp0fHwxMDt2YXIgbj1jKGUpLnRvSHNsKCk7cmV0dXJuIG4ucys9dC8xMDAsbi5zPUQobi5zKSxjKG4pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIGMoZSkuZGVzYXR1cmF0ZSgxMDApfWZ1bmN0aW9uIHgoZSx0KXt0PTA9PT10PzA6dHx8MTA7dmFyIG49YyhlKS50b0hzbCgpO3JldHVybiBuLmwrPXQvMTAwLG4ubD1EKG4ubCksYyhuKX1mdW5jdGlvbiBrKGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciBuPWMoZSkudG9SZ2IoKTtyZXR1cm4gbi5yPXUoMCxhKDI1NSxuLnItaSgtdC8xMDAqMjU1KSkpLG4uZz11KDAsYSgyNTUsbi5nLWkoLXQvMTAwKjI1NSkpKSxuLmI9dSgwLGEoMjU1LG4uYi1pKC10LzEwMCoyNTUpKSksYyhuKX1mdW5jdGlvbiBTKGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciBuPWMoZSkudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9RChuLmwpLGMobil9ZnVuY3Rpb24gRShlLHQpe3ZhciBuPWMoZSkudG9Ic2woKSxyPShuLmgrdCklMzYwO3JldHVybiBuLmg9cjwwPzM2MCtyOnIsYyhuKX1mdW5jdGlvbiBUKGUpe3ZhciB0PWMoZSkudG9Ic2woKTtyZXR1cm4gdC5oPSh0LmgrMTgwKSUzNjAsYyh0KX1mdW5jdGlvbiBDKGUpe3ZhciB0PWMoZSkudG9Ic2woKSxuPXQuaDtyZXR1cm5bYyhlKSxjKHtoOihuKzEyMCklMzYwLHM6dC5zLGw6dC5sfSksYyh7aDoobisyNDApJTM2MCxzOnQucyxsOnQubH0pXX1mdW5jdGlvbiBPKGUpe3ZhciB0PWMoZSkudG9Ic2woKSxuPXQuaDtyZXR1cm5bYyhlKSxjKHtoOihuKzkwKSUzNjAsczp0LnMsbDp0Lmx9KSxjKHtoOihuKzE4MCklMzYwLHM6dC5zLGw6dC5sfSksYyh7aDoobisyNzApJTM2MCxzOnQucyxsOnQubH0pXX1mdW5jdGlvbiBQKGUpe3ZhciB0PWMoZSkudG9Ic2woKSxuPXQuaDtyZXR1cm5bYyhlKSxjKHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxjKHtoOihuKzIxNiklMzYwLHM6dC5zLGw6dC5sfSldfWZ1bmN0aW9uIEEoZSx0LG4pe3Q9dHx8NixuPW58fDMwO3ZhciByPWMoZSkudG9Ic2woKSxvPTM2MC9uLGk9W2MoZSldO2ZvcihyLmg9KHIuaC0obyp0Pj4xKSs3MjApJTM2MDstLXQ7KXIuaD0oci5oK28pJTM2MCxpLnB1c2goYyhyKSk7cmV0dXJuIGl9ZnVuY3Rpb24gaihlLHQpe3Q9dHx8Njtmb3IodmFyIG49YyhlKS50b0hzdigpLHI9bi5oLG89bi5zLGk9bi52LGE9W10sdT0xL3Q7dC0tOylhLnB1c2goYyh7aDpyLHM6byx2Oml9KSksaT0oaSt1KSUxO3JldHVybiBhfWMucHJvdG90eXBlPXtpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCk8MTI4fSxpc0xpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9LGlzVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb2t9LGdldE9yaWdpbmFsSW5wdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxJbnB1dH0sZ2V0Rm9ybWF0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Zvcm1hdH0sZ2V0QWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYX0sZ2V0QnJpZ2h0bmVzczpmdW5jdGlvbigpe3ZhciBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oMjk5KmUucis1ODcqZS5nKzExNCplLmIpLzFlM30sZ2V0THVtaW5hbmNlOmZ1bmN0aW9uKCl7dmFyIGUsbixyLG89dGhpcy50b1JnYigpO3JldHVybiBlPW8uci8yNTUsbj1vLmcvMjU1LHI9by5iLzI1NSwuMjEyNiooZTw9LjAzOTI4P2UvMTIuOTI6dC5wb3coKGUrLjA1NSkvMS4wNTUsMi40KSkrLjcxNTIqKG48PS4wMzkyOD9uLzEyLjkyOnQucG93KChuKy4wNTUpLzEuMDU1LDIuNCkpKy4wNzIyKihyPD0uMDM5Mjg/ci8xMi45Mjp0LnBvdygocisuMDU1KS8xLjA1NSwyLjQpKX0sc2V0QWxwaGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2E9SShlKSx0aGlzLl9yb3VuZEE9aSgxMDAqdGhpcy5fYSkvMTAwLHRoaXN9LHRvSHN2OmZ1bmN0aW9uKCl7dmFyIGU9aCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYik7cmV0dXJue2g6MzYwKmUuaCxzOmUucyx2OmUudixhOnRoaXMuX2F9fSx0b0hzdlN0cmluZzpmdW5jdGlvbigpe3ZhciBlPWgodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpLHQ9aSgzNjAqZS5oKSxuPWkoMTAwKmUucykscj1pKDEwMCplLnYpO3JldHVybiAxPT10aGlzLl9hPyJoc3YoIit0KyIsICIrbisiJSwgIityKyIlKSI6ImhzdmEoIit0KyIsICIrbisiJSwgIityKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvSHNsOmZ1bmN0aW9uKCl7dmFyIGU9cCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYik7cmV0dXJue2g6MzYwKmUuaCxzOmUucyxsOmUubCxhOnRoaXMuX2F9fSx0b0hzbFN0cmluZzpmdW5jdGlvbigpe3ZhciBlPXAodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpLHQ9aSgzNjAqZS5oKSxuPWkoMTAwKmUucykscj1pKDEwMCplLmwpO3JldHVybiAxPT10aGlzLl9hPyJoc2woIit0KyIsICIrbisiJSwgIityKyIlKSI6ImhzbGEoIit0KyIsICIrbisiJSwgIityKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvSGV4OmZ1bmN0aW9uKGUpe3JldHVybiB2KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLGUpfSx0b0hleFN0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4iIyIrdGhpcy50b0hleChlKX0sdG9IZXg4OmZ1bmN0aW9uKGUpe3JldHVybiBtKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EsZSl9LHRvSGV4OFN0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4iIyIrdGhpcy50b0hleDgoZSl9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJue3I6aSh0aGlzLl9yKSxnOmkodGhpcy5fZyksYjppKHRoaXMuX2IpLGE6dGhpcy5fYX19LHRvUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2kodGhpcy5fcikrIiwgIitpKHRoaXMuX2cpKyIsICIraSh0aGlzLl9iKSsiKSI6InJnYmEoIitpKHRoaXMuX3IpKyIsICIraSh0aGlzLl9nKSsiLCAiK2kodGhpcy5fYikrIiwgIit0aGlzLl9yb3VuZEErIikifSx0b1BlcmNlbnRhZ2VSZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjppKDEwMCpGKHRoaXMuX3IsMjU1KSkrIiUiLGc6aSgxMDAqRih0aGlzLl9nLDI1NSkpKyIlIixiOmkoMTAwKkYodGhpcy5fYiwyNTUpKSsiJSIsYTp0aGlzLl9hfX0sdG9QZXJjZW50YWdlUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2koMTAwKkYodGhpcy5fciwyNTUpKSsiJSwgIitpKDEwMCpGKHRoaXMuX2csMjU1KSkrIiUsICIraSgxMDAqRih0aGlzLl9iLDI1NSkpKyIlKSI6InJnYmEoIitpKDEwMCpGKHRoaXMuX3IsMjU1KSkrIiUsICIraSgxMDAqRih0aGlzLl9nLDI1NSkpKyIlLCAiK2koMTAwKkYodGhpcy5fYiwyNTUpKSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX2E/InRyYW5zcGFyZW50IjohKHRoaXMuX2E8MSkmJihNW3YodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsITApXXx8ITEpfSx0b0ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgdD0iIyIrZyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKSxuPXQscj10aGlzLl9ncmFkaWVudFR5cGU/IkdyYWRpZW50VHlwZSA9IDEsICI6IiI7aWYoZSl7dmFyIG89YyhlKTtuPSIjIitnKG8uX3Isby5fZyxvLl9iLG8uX2EpfXJldHVybiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIityKyJzdGFydENvbG9yc3RyPSIrdCsiLGVuZENvbG9yc3RyPSIrbisiKSJ9LHRvU3RyaW5nOmZ1bmN0aW9uKGUpe3ZhciB0PSEhZTtlPWV8fHRoaXMuX2Zvcm1hdDt2YXIgbj0hMSxyPXRoaXMuX2E8MSYmdGhpcy5fYT49MDtyZXR1cm4gdHx8IXJ8fCJoZXgiIT09ZSYmImhleDYiIT09ZSYmImhleDMiIT09ZSYmImhleDQiIT09ZSYmImhleDgiIT09ZSYmIm5hbWUiIT09ZT8oInJnYiI9PT1lJiYobj10aGlzLnRvUmdiU3RyaW5nKCkpLCJwcmdiIj09PWUmJihuPXRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCkpLCJoZXgiIT09ZSYmImhleDYiIT09ZXx8KG49dGhpcy50b0hleFN0cmluZygpKSwiaGV4MyI9PT1lJiYobj10aGlzLnRvSGV4U3RyaW5nKCEwKSksImhleDQiPT09ZSYmKG49dGhpcy50b0hleDhTdHJpbmcoITApKSwiaGV4OCI9PT1lJiYobj10aGlzLnRvSGV4OFN0cmluZygpKSwibmFtZSI9PT1lJiYobj10aGlzLnRvTmFtZSgpKSwiaHNsIj09PWUmJihuPXRoaXMudG9Ic2xTdHJpbmcoKSksImhzdiI9PT1lJiYobj10aGlzLnRvSHN2U3RyaW5nKCkpLG58fHRoaXMudG9IZXhTdHJpbmcoKSk6Im5hbWUiPT09ZSYmMD09PXRoaXMuX2E/dGhpcy50b05hbWUoKTp0aGlzLnRvUmdiU3RyaW5nKCl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcy50b1N0cmluZygpKX0sX2FwcGx5TW9kaWZpY2F0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5hcHBseShudWxsLFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbCh0KSkpO3JldHVybiB0aGlzLl9yPW4uX3IsdGhpcy5fZz1uLl9nLHRoaXMuX2I9bi5fYix0aGlzLnNldEFscGhhKG4uX2EpLHRoaXN9LGxpZ2h0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oeCxhcmd1bWVudHMpfSxicmlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihrLGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihTLGFyZ3VtZW50cyl9LGRlc2F0dXJhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oXyxhcmd1bWVudHMpfSxzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihiLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih3LGFyZ3VtZW50cyl9LHNwaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oRSxhcmd1bWVudHMpfSxfYXBwbHlDb21iaW5hdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKHQpKSl9LGFuYWxvZ291czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKEEsYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKFQsYXJndW1lbnRzKX0sbW9ub2Nocm9tYXRpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKGosYXJndW1lbnRzKX0sc3BsaXRjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oUCxhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKEMsYXJndW1lbnRzKX0sdGV0cmFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oTyxhcmd1bWVudHMpfX0sYy5mcm9tUmF0aW89ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0Ij09dHlwZW9mIGUpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWUuaGFzT3duUHJvcGVydHkocikmJihuW3JdPSJhIj09PXI/ZVtyXTpXKGVbcl0pKTtlPW59cmV0dXJuIGMoZSx0KX0sYy5lcXVhbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hKCFlfHwhdCkmJmMoZSkudG9SZ2JTdHJpbmcoKT09Yyh0KS50b1JnYlN0cmluZygpfSxjLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiBjLmZyb21SYXRpbyh7cjpzKCksZzpzKCksYjpzKCl9KX0sYy5taXg9ZnVuY3Rpb24oZSx0LG4pe249MD09PW4/MDpufHw1MDt2YXIgcj1jKGUpLnRvUmdiKCksbz1jKHQpLnRvUmdiKCksaT1uLzEwMDtyZXR1cm4gYyh7cjooby5yLXIucikqaStyLnIsZzooby5nLXIuZykqaStyLmcsYjooby5iLXIuYikqaStyLmIsYTooby5hLXIuYSkqaStyLmF9KX0sYy5yZWFkYWJpbGl0eT1mdW5jdGlvbihlLG4pe3ZhciByPWMoZSksbz1jKG4pO3JldHVybih0Lm1heChyLmdldEx1bWluYW5jZSgpLG8uZ2V0THVtaW5hbmNlKCkpKy4wNSkvKHQubWluKHIuZ2V0THVtaW5hbmNlKCksby5nZXRMdW1pbmFuY2UoKSkrLjA1KX0sYy5pc1JlYWRhYmxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGk9Yy5yZWFkYWJpbGl0eShlLHQpO3N3aXRjaChvPSExLChyPVgobikpLmxldmVsK3Iuc2l6ZSl7Y2FzZSJBQXNtYWxsIjpjYXNlIkFBQWxhcmdlIjpvPWk+PTQuNTticmVhaztjYXNlIkFBbGFyZ2UiOm89aT49MzticmVhaztjYXNlIkFBQXNtYWxsIjpvPWk+PTd9cmV0dXJuIG99LGMubW9zdFJlYWRhYmxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvLGksYSx1PW51bGwscz0wO289KG49bnx8e30pLmluY2x1ZGVGYWxsYmFja0NvbG9ycyxpPW4ubGV2ZWwsYT1uLnNpemU7Zm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspKHI9Yy5yZWFkYWJpbGl0eShlLHRbbF0pKT5zJiYocz1yLHU9Yyh0W2xdKSk7cmV0dXJuIGMuaXNSZWFkYWJsZShlLHUse2xldmVsOmksc2l6ZTphfSl8fCFvP3U6KG4uaW5jbHVkZUZhbGxiYWNrQ29sb3JzPSExLGMubW9zdFJlYWRhYmxlKGUsWyIjZmZmIiwiIzAwMCJdLG4pKX07dmFyIFI9Yy5uYW1lcz17YWxpY2VibHVlOiJmMGY4ZmYiLGFudGlxdWV3aGl0ZToiZmFlYmQ3IixhcXVhOiIwZmYiLGFxdWFtYXJpbmU6IjdmZmZkNCIsYXp1cmU6ImYwZmZmZiIsYmVpZ2U6ImY1ZjVkYyIsYmlzcXVlOiJmZmU0YzQiLGJsYWNrOiIwMDAiLGJsYW5jaGVkYWxtb25kOiJmZmViY2QiLGJsdWU6IjAwZiIsYmx1ZXZpb2xldDoiOGEyYmUyIixicm93bjoiYTUyYTJhIixidXJseXdvb2Q6ImRlYjg4NyIsYnVybnRzaWVubmE6ImVhN2U1ZCIsY2FkZXRibHVlOiI1ZjllYTAiLGNoYXJ0cmV1c2U6IjdmZmYwMCIsY2hvY29sYXRlOiJkMjY5MWUiLGNvcmFsOiJmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiI2NDk1ZWQiLGNvcm5zaWxrOiJmZmY4ZGMiLGNyaW1zb246ImRjMTQzYyIsY3lhbjoiMGZmIixkYXJrYmx1ZToiMDAwMDhiIixkYXJrY3lhbjoiMDA4YjhiIixkYXJrZ29sZGVucm9kOiJiODg2MGIiLGRhcmtncmF5OiJhOWE5YTkiLGRhcmtncmVlbjoiMDA2NDAwIixkYXJrZ3JleToiYTlhOWE5IixkYXJra2hha2k6ImJkYjc2YiIsZGFya21hZ2VudGE6IjhiMDA4YiIsZGFya29saXZlZ3JlZW46IjU1NmIyZiIsZGFya29yYW5nZToiZmY4YzAwIixkYXJrb3JjaGlkOiI5OTMyY2MiLGRhcmtyZWQ6IjhiMDAwMCIsZGFya3NhbG1vbjoiZTk5NjdhIixkYXJrc2VhZ3JlZW46IjhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiNDgzZDhiIixkYXJrc2xhdGVncmF5OiIyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IjJmNGY0ZiIsZGFya3R1cnF1b2lzZToiMDBjZWQxIixkYXJrdmlvbGV0OiI5NDAwZDMiLGRlZXBwaW5rOiJmZjE0OTMiLGRlZXBza3libHVlOiIwMGJmZmYiLGRpbWdyYXk6IjY5Njk2OSIsZGltZ3JleToiNjk2OTY5Iixkb2RnZXJibHVlOiIxZTkwZmYiLGZpcmVicmljazoiYjIyMjIyIixmbG9yYWx3aGl0ZToiZmZmYWYwIixmb3Jlc3RncmVlbjoiMjI4YjIyIixmdWNoc2lhOiJmMGYiLGdhaW5zYm9ybzoiZGNkY2RjIixnaG9zdHdoaXRlOiJmOGY4ZmYiLGdvbGQ6ImZmZDcwMCIsZ29sZGVucm9kOiJkYWE1MjAiLGdyYXk6IjgwODA4MCIsZ3JlZW46IjAwODAwMCIsZ3JlZW55ZWxsb3c6ImFkZmYyZiIsZ3JleToiODA4MDgwIixob25leWRldzoiZjBmZmYwIixob3RwaW5rOiJmZjY5YjQiLGluZGlhbnJlZDoiY2Q1YzVjIixpbmRpZ286IjRiMDA4MiIsaXZvcnk6ImZmZmZmMCIsa2hha2k6ImYwZTY4YyIsbGF2ZW5kZXI6ImU2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiZmZmMGY1IixsYXduZ3JlZW46IjdjZmMwMCIsbGVtb25jaGlmZm9uOiJmZmZhY2QiLGxpZ2h0Ymx1ZToiYWRkOGU2IixsaWdodGNvcmFsOiJmMDgwODAiLGxpZ2h0Y3lhbjoiZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiZmFmYWQyIixsaWdodGdyYXk6ImQzZDNkMyIsbGlnaHRncmVlbjoiOTBlZTkwIixsaWdodGdyZXk6ImQzZDNkMyIsbGlnaHRwaW5rOiJmZmI2YzEiLGxpZ2h0c2FsbW9uOiJmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IjIwYjJhYSIsbGlnaHRza3libHVlOiI4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiI3ODkiLGxpZ2h0c2xhdGVncmV5OiI3ODkiLGxpZ2h0c3RlZWxibHVlOiJiMGM0ZGUiLGxpZ2h0eWVsbG93OiJmZmZmZTAiLGxpbWU6IjBmMCIsbGltZWdyZWVuOiIzMmNkMzIiLGxpbmVuOiJmYWYwZTYiLG1hZ2VudGE6ImYwZiIsbWFyb29uOiI4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IjY2Y2RhYSIsbWVkaXVtYmx1ZToiMDAwMGNkIixtZWRpdW1vcmNoaWQ6ImJhNTVkMyIsbWVkaXVtcHVycGxlOiI5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIzY2IzNzEiLG1lZGl1bXNsYXRlYmx1ZToiN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IjQ4ZDFjYyIsbWVkaXVtdmlvbGV0cmVkOiJjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiMTkxOTcwIixtaW50Y3JlYW06ImY1ZmZmYSIsbWlzdHlyb3NlOiJmZmU0ZTEiLG1vY2Nhc2luOiJmZmU0YjUiLG5hdmFqb3doaXRlOiJmZmRlYWQiLG5hdnk6IjAwMDA4MCIsb2xkbGFjZToiZmRmNWU2IixvbGl2ZToiODA4MDAwIixvbGl2ZWRyYWI6IjZiOGUyMyIsb3JhbmdlOiJmZmE1MDAiLG9yYW5nZXJlZDoiZmY0NTAwIixvcmNoaWQ6ImRhNzBkNiIscGFsZWdvbGRlbnJvZDoiZWVlOGFhIixwYWxlZ3JlZW46Ijk4ZmI5OCIscGFsZXR1cnF1b2lzZToiYWZlZWVlIixwYWxldmlvbGV0cmVkOiJkYjcwOTMiLHBhcGF5YXdoaXA6ImZmZWZkNSIscGVhY2hwdWZmOiJmZmRhYjkiLHBlcnU6ImNkODUzZiIscGluazoiZmZjMGNiIixwbHVtOiJkZGEwZGQiLHBvd2RlcmJsdWU6ImIwZTBlNiIscHVycGxlOiI4MDAwODAiLHJlYmVjY2FwdXJwbGU6IjY2MzM5OSIscmVkOiJmMDAiLHJvc3licm93bjoiYmM4ZjhmIixyb3lhbGJsdWU6IjQxNjllMSIsc2FkZGxlYnJvd246IjhiNDUxMyIsc2FsbW9uOiJmYTgwNzIiLHNhbmR5YnJvd246ImY0YTQ2MCIsc2VhZ3JlZW46IjJlOGI1NyIsc2Vhc2hlbGw6ImZmZjVlZSIsc2llbm5hOiJhMDUyMmQiLHNpbHZlcjoiYzBjMGMwIixza3libHVlOiI4N2NlZWIiLHNsYXRlYmx1ZToiNmE1YWNkIixzbGF0ZWdyYXk6IjcwODA5MCIsc2xhdGVncmV5OiI3MDgwOTAiLHNub3c6ImZmZmFmYSIsc3ByaW5nZ3JlZW46IjAwZmY3ZiIsc3RlZWxibHVlOiI0NjgyYjQiLHRhbjoiZDJiNDhjIix0ZWFsOiIwMDgwODAiLHRoaXN0bGU6ImQ4YmZkOCIsdG9tYXRvOiJmZjYzNDciLHR1cnF1b2lzZToiNDBlMGQwIix2aW9sZXQ6ImVlODJlZSIsd2hlYXQ6ImY1ZGViMyIsd2hpdGU6ImZmZiIsd2hpdGVzbW9rZToiZjVmNWY1Iix5ZWxsb3c6ImZmMCIseWVsbG93Z3JlZW46IjlhY2QzMiJ9LE09Yy5oZXhOYW1lcz1OKFIpO2Z1bmN0aW9uIE4oZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbZVtuXV09bik7cmV0dXJuIHR9ZnVuY3Rpb24gSShlKXtyZXR1cm4gZT1wYXJzZUZsb2F0KGUpLChpc05hTihlKXx8ZTwwfHxlPjEpJiYoZT0xKSxlfWZ1bmN0aW9uIEYoZSxuKXt6KGUpJiYoZT0iMTAwJSIpO3ZhciByPVUoZSk7cmV0dXJuIGU9YShuLHUoMCxwYXJzZUZsb2F0KGUpKSksciYmKGU9cGFyc2VJbnQoZSpuLDEwKS8xMDApLHQuYWJzKGUtbik8MWUtNj8xOmUlbi9wYXJzZUZsb2F0KG4pfWZ1bmN0aW9uIEQoZSl7cmV0dXJuIGEoMSx1KDAsZSkpfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIHooZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYtMSE9ZS5pbmRleE9mKCIuIikmJjE9PT1wYXJzZUZsb2F0KGUpfWZ1bmN0aW9uIFUoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYtMSE9ZS5pbmRleE9mKCIlIil9ZnVuY3Rpb24gQihlKXtyZXR1cm4gMT09ZS5sZW5ndGg/IjAiK2U6IiIrZX1mdW5jdGlvbiBXKGUpe3JldHVybiBlPD0xJiYoZT0xMDAqZSsiJSIpLGV9ZnVuY3Rpb24gSChlKXtyZXR1cm4gdC5yb3VuZCgyNTUqcGFyc2VGbG9hdChlKSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uICQoZSl7cmV0dXJuIEwoZSkvMjU1fXZhciBWLHEsRyxRPShxPSJbXFxzfFxcKF0rKCIrKFY9Iig/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSIpKyIpWyx8XFxzXSsoIitWKyIpWyx8XFxzXSsoIitWKyIpXFxzKlxcKT8iLEc9IltcXHN8XFwoXSsoIitWKyIpWyx8XFxzXSsoIitWKyIpWyx8XFxzXSsoIitWKyIpWyx8XFxzXSsoIitWKyIpXFxzKlxcKT8iLHtDU1NfVU5JVDpuZXcgUmVnRXhwKFYpLHJnYjpuZXcgUmVnRXhwKCJyZ2IiK3EpLHJnYmE6bmV3IFJlZ0V4cCgicmdiYSIrRyksaHNsOm5ldyBSZWdFeHAoImhzbCIrcSksaHNsYTpuZXcgUmVnRXhwKCJoc2xhIitHKSxoc3Y6bmV3IFJlZ0V4cCgiaHN2IitxKSxoc3ZhOm5ldyBSZWdFeHAoImhzdmEiK0cpLGhleDM6L14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDY6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvLGhleDQ6L14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg4Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC99KTtmdW5jdGlvbiBZKGUpe3JldHVybiEhUS5DU1NfVU5JVC5leGVjKGUpfWZ1bmN0aW9uIEsoZSl7ZT1lLnJlcGxhY2UobiwiIikucmVwbGFjZShyLCIiKS50b0xvd2VyQ2FzZSgpO3ZhciB0LG89ITE7aWYoUltlXSllPVJbZV0sbz0hMDtlbHNlIGlmKCJ0cmFuc3BhcmVudCI9PWUpcmV0dXJue3I6MCxnOjAsYjowLGE6MCxmb3JtYXQ6Im5hbWUifTtyZXR1cm4odD1RLnJnYi5leGVjKGUpKT97cjp0WzFdLGc6dFsyXSxiOnRbM119Oih0PVEucmdiYS5leGVjKGUpKT97cjp0WzFdLGc6dFsyXSxiOnRbM10sYTp0WzRdfToodD1RLmhzbC5leGVjKGUpKT97aDp0WzFdLHM6dFsyXSxsOnRbM119Oih0PVEuaHNsYS5leGVjKGUpKT97aDp0WzFdLHM6dFsyXSxsOnRbM10sYTp0WzRdfToodD1RLmhzdi5leGVjKGUpKT97aDp0WzFdLHM6dFsyXSx2OnRbM119Oih0PVEuaHN2YS5leGVjKGUpKT97aDp0WzFdLHM6dFsyXSx2OnRbM10sYTp0WzRdfToodD1RLmhleDguZXhlYyhlKSk/e3I6TCh0WzFdKSxnOkwodFsyXSksYjpMKHRbM10pLGE6JCh0WzRdKSxmb3JtYXQ6bz8ibmFtZSI6ImhleDgifToodD1RLmhleDYuZXhlYyhlKSk/e3I6TCh0WzFdKSxnOkwodFsyXSksYjpMKHRbM10pLGZvcm1hdDpvPyJuYW1lIjoiaGV4In06KHQ9US5oZXg0LmV4ZWMoZSkpP3tyOkwodFsxXSsiIit0WzFdKSxnOkwodFsyXSsiIit0WzJdKSxiOkwodFszXSsiIit0WzNdKSxhOiQodFs0XSsiIit0WzRdKSxmb3JtYXQ6bz8ibmFtZSI6ImhleDgifTohISh0PVEuaGV4My5leGVjKGUpKSYme3I6TCh0WzFdKyIiK3RbMV0pLGc6TCh0WzJdKyIiK3RbMl0pLGI6TCh0WzNdKyIiK3RbM10pLGZvcm1hdDpvPyJuYW1lIjoiaGV4In19ZnVuY3Rpb24gWChlKXt2YXIgdCxuO3JldHVybiJBQSIhPT0odD0oKGU9ZXx8e2xldmVsOiJBQSIsc2l6ZToic21hbGwifSkubGV2ZWx8fCJBQSIpLnRvVXBwZXJDYXNlKCkpJiYiQUFBIiE9PXQmJih0PSJBQSIpLCJzbWFsbCIhPT0obj0oZS5zaXplfHwic21hbGwiKS50b0xvd2VyQ2FzZSgpKSYmImxhcmdlIiE9PW4mJihuPSJzbWFsbCIpLHtsZXZlbDp0LHNpemU6bn19ZS5leHBvcnRzP2UuZXhwb3J0cz1jOndpbmRvdy50aW55Y29sb3I9Y30oTWF0aCl9KSksbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9LHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sbz10KCIjMDAwMDAwIikudG9SZ2JTdHJpbmcoKSxpPXQoIiMxYTFhMWEiKS50b1JnYlN0cmluZygpLGE9dCgiIzMzMzMzMyIpLnRvUmdiU3RyaW5nKCksdT10KCIjMDAwMDAwIikuc2V0QWxwaGEoLjcpLnRvUmdiU3RyaW5nKCkscz10KCIjRkZGRkZGIikuc2V0QWxwaGEoLjcpLnRvUmdiU3RyaW5nKCksYz10KCIjMDAwMDAwIikuc2V0QWxwaGEoLjUpLnRvUmdiU3RyaW5nKCksbD10KCIjZmZmZmZmIikudG9SZ2JTdHJpbmcoKSxmPTEwLHA9LjYsZD0yMS41LGg9Myx5PTMsdj00LjU7ZnVuY3Rpb24gbShlLG4scil7cmV0dXJuIHQucmVhZGFiaWxpdHkoZSxuKT49NC41P246cn1mdW5jdGlvbiBnKGUpe3ZhciBuPXQoZSkudG9Ic2woKSxyPWwsbz10KHtoOm4uaCxzOm4ucyxsOjg1fSkudG9SZ2JTdHJpbmcoKTtyZXR1cm4gYihvLGUsaCl8fChvPWwpLHtncmVldGluZ190ZXh0X2NvbG9yOm8saW50cm9kdWN0aW9uX3RleHRfY29sb3I6cn19ZnVuY3Rpb24gXyhlKXt2YXIgbj10KGUpLnRvSHNsKCkscj1vLGk9dCh7aDpuLmgsczo1LGw6NTB9KS50b1JnYlN0cmluZygpO3JldHVybiBiKGksZSxoKXx8KGk9bykse2dyZWV0aW5nX3RleHRfY29sb3I6aSxpbnRyb2R1Y3Rpb25fdGV4dF9jb2xvcjpyfX1mdW5jdGlvbiBiKGUsbil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnk7cmV0dXJuIHQucmVhZGFiaWxpdHkobixlKT49cn1mdW5jdGlvbiB3KGUpe3ZhciBuPXQoZSkudG9Ic2woKS5sLHI9MTAwKiguOTUtbiksbz10KGUpLmxpZ2h0ZW4ocikudG9SZ2JTdHJpbmcoKSxpPTEwMCoobi0uODUpLGE9dChlKS5kYXJrZW4oaSkudG9SZ2JTdHJpbmcoKSx1PTEwMCoobi0uMykscz10KGUpLmRhcmtlbih1KS50b1JnYlN0cmluZygpLGM9MTAwKihuLS4yNSksbD10KGUpLmRhcmtlbihjKS50b1JnYlN0cmluZygpO3JldHVybiBuPC4zNT97bGlnaHQ6byxkYXJrOmV9Om4+Ljk/e2xpZ2h0OmEsZGFyazptKGEscyxsKX06e2xpZ2h0Om8sZGFyazptKG8scyxsKX19ZnVuY3Rpb24geChlLGYscCxoLHkpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdJiZhcmd1bWVudHNbNV07dGhpcy5wcmltYXJ5PWUudG9SZ2JTdHJpbmcoKSx0aGlzLnNlY29uZGFyeT1mLnRvUmdiU3RyaW5nKCksdGhpcy5wcmltYXJ5VmFyaWFudD1wLnRvUmdiU3RyaW5nKCksdGhpcy5zZWNvbmRhcnlWYXJpYW50PWgudG9SZ2JTdHJpbmcoKSx0aGlzLmdyYWRpZW50RW5kPXkudG9SZ2JTdHJpbmcoKTt2YXIgbT1lLmdldEx1bWluYW5jZSgpPC4yPyJsaWdodGVuIjoiZGFya2VuIixiPWUuY2xvbmUoKSx4PWUuY2xvbmUoKTt0aGlzLnByaW1hcnlIb3Zlcj1iW21dKDEwKS50b1JnYlN0cmluZygpLHRoaXMucHJpbWFyeUFjdGl2ZT14W21dKDIwKS50b1JnYlN0cmluZygpO3ZhciBrPXtncmFkaWVudF9zdGFydF9jb2xvcjp0aGlzLnNlY29uZGFyeSxncmFkaWVudF9lbmRfY29sb3I6dGhpcy5ncmFkaWVudEVuZCxjYXJkX2JvcmRlcl90b3BfY29sb3I6dGhpcy5wcmltYXJ5VmFyaWFudCxidXR0b25fYmFja2dyb3VuZF9jb2xvcjp0aGlzLnByaW1hcnksYnV0dG9uX2JhY2tncm91bmRfY29sb3JfaG92ZXI6dGhpcy5wcmltYXJ5SG92ZXIsYnV0dG9uX2JhY2tncm91bmRfY29sb3JfYWN0aXZlOnRoaXMucHJpbWFyeUFjdGl2ZSxwcmltYXJ5X29uX3doaXRlX2NvbnRyYXN0Ok1hdGgucm91bmQoMWUzKnQucmVhZGFiaWxpdHkoIiNGRkZGRkYiLHRoaXMucHJpbWFyeSkpLzFlMyxzZWNvbmRhcnlfb25fd2hpdGVfY29udHJhc3Q6TWF0aC5yb3VuZCgxZTMqdC5yZWFkYWJpbGl0eSgiI0ZGRkZGRiIsdGhpcy5zZWNvbmRhcnkpKS8xZTMscXVpY2tfcmVwbHlfdGV4dF9jb2xvcjp3KHRoaXMucHJpbWFyeSkuZGFyayxxdWlja19yZXBseV9iYWNrZ3JvdW5kX2NvbG9yOncodGhpcy5wcmltYXJ5KS5saWdodCxhdmF0YXJfYmFja2dyb3VuZF9jb2xvcjp0KHRoaXMucHJpbWFyeSkuZGFya2VuKGQpLnRvUmdiU3RyaW5nKCl9O3RoaXMuZ2VuZXJhdGVMaWdodFByaW1hcnlMaWdodFNlY29uZGFyeT1mdW5jdGlvbigpe3JldHVybiByKHt9LGssXyh0aGlzLnNlY29uZGFyeSkse2hlYWRlcl90aXRsZV9jb2xvcjpvLGhlYWRlcl90ZXh0X2NvbG9yOnUsbGF1bmNoZXJfaWNvbl9jb2xvcjp2P286YyxidXR0b25fdGV4dF9jb2xvcjp2P286YyxsaW5rX2NvbG9yOm8sbGlua19jb2xvcl9ob3ZlcjppLGxpbmtfY29sb3JfYWN0aXZlOmEscHJpbWFyeV90eXBlOiJsaWdodCIsc2Vjb25kYXJ5X3R5cGU6ImxpZ2h0In0pfSx0aGlzLmdlbmVyYXRlTGlnaHRQcmltYXJ5RGFya1NlY29uZGFyeT1mdW5jdGlvbigpe3JldHVybiByKHt9LGssZyh0aGlzLnNlY29uZGFyeSkse2hlYWRlcl90aXRsZV9jb2xvcjpsLGhlYWRlcl90ZXh0X2NvbG9yOnMsbGF1bmNoZXJfaWNvbl9jb2xvcjp2P286YyxidXR0b25fdGV4dF9jb2xvcjp2P286YyxsaW5rX2NvbG9yOm8sbGlua19jb2xvcl9ob3ZlcjppLGxpbmtfY29sb3JfYWN0aXZlOmEscHJpbWFyeV90eXBlOiJsaWdodCIsc2Vjb25kYXJ5X3R5cGU6ImRhcmsifSl9LHRoaXMuZ2VuZXJhdGVEYXJrUHJpbWFyeUxpZ2h0U2Vjb25kYXJ5PWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIHIoe30sayxfKHRoaXMuc2Vjb25kYXJ5KSwobihlPXtoZWFkZXJfdGl0bGVfY29sb3I6bH0sImhlYWRlcl90aXRsZV9jb2xvciIsbyksbihlLCJoZWFkZXJfdGV4dF9jb2xvciIsdSksbihlLCJsYXVuY2hlcl9pY29uX2NvbG9yIixsKSxuKGUsImJ1dHRvbl90ZXh0X2NvbG9yIixsKSxuKGUsImxpbmtfY29sb3IiLHRoaXMucHJpbWFyeSksbihlLCJsaW5rX2NvbG9yX2hvdmVyIix0aGlzLnByaW1hcnlIb3ZlciksbihlLCJsaW5rX2NvbG9yX2FjdGl2ZSIsdGhpcy5wcmltYXJ5QWN0aXZlKSxuKGUsInByaW1hcnlfdHlwZSIsImRhcmsiKSxuKGUsInNlY29uZGFyeV90eXBlIiwibGlnaHQiKSxlKSl9LHRoaXMuZ2VuZXJhdGVEYXJrUHJpbWFyeURhcmtTZWNvbmRhcnk9ZnVuY3Rpb24oKXtyZXR1cm4gcih7fSxrLGcodGhpcy5zZWNvbmRhcnkpLHtoZWFkZXJfdGl0bGVfY29sb3I6bCxoZWFkZXJfdGV4dF9jb2xvcjpzLGxhdW5jaGVyX2ljb25fY29sb3I6bCxidXR0b25fdGV4dF9jb2xvcjpsLGxpbmtfY29sb3I6dGhpcy5wcmltYXJ5LGxpbmtfY29sb3JfaG92ZXI6dGhpcy5wcmltYXJ5SG92ZXIsbGlua19jb2xvcl9hY3RpdmU6dGhpcy5wcmltYXJ5QWN0aXZlLHByaW1hcnlfdHlwZToiZGFyayIsc2Vjb25kYXJ5X3R5cGU6ImRhcmsifSl9fXZhciBrPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnA7c3dpdGNoKHQpe2Nhc2UiY29udHJhc3QtcmF0aW8tNC41IjpyZXR1cm4hYihsLGUsdik7Y2FzZSJjb250cmFzdC1yYXRpby0zLjAiOnJldHVybiFiKGwsZSx5KTtkZWZhdWx0OnJldHVybiBlLmdldEx1bWluYW5jZSgpPm59fTtmdW5jdGlvbiBTKGUpe2lmKCFCb29sZWFuKGUucHJpbWFyeUNvbG9yKSl0aHJvdyJBIHByaW1hcnkgY29sb3Igd2FzIG5vdCBwcm92aWRlZCB0byB0aGUgY29sb3IgY2FsY3VsYXRpb24iO3ZhciBuPXQoZS5wcmltYXJ5Q29sb3IpLHI9KG4udG9Ic3YoKSxuLmNsb25lKCkuc2V0QWxwaGEoLjUpKSxvPXQoZS5zZWNvbmRhcnlDb2xvcnx8ZS5wcmltYXJ5Q29sb3IpLGk9by50b0hzdigpLGE9dCh7aDppLmgsczpNYXRoLm1pbihpLnMsLjEyKSx2OjF9KSx1PW8uY2xvbmUoKTt1LmRhcmtlbihlLmRhcmtlbkFtb3VudHx8Zik7dmFyIHM9ayhuLGUuY29udHJhc3RDaGVja01ldGhvZCxlLmJyaWdodG5lc3NDdXRvZmYpLGM9ayhvLGUuY29udHJhc3RDaGVja01ldGhvZCxlLmJyaWdodG5lc3NDdXRvZmYpLGw9IXMscD0hYyxkPSJjb250cmFzdC1yYXRpby00LjUiPT09ZS5jb250cmFzdENoZWNrTWV0aG9kfHwiY29udHJhc3QtcmF0aW8tMy4wIj09PWUuY29udHJhc3RDaGVja01ldGhvZCxoPW5ldyB4KG4sbyxyLGEsdSwicHVyZUJsYWNrQWN0aW9uQ29sb3JzImluIGU/ZS5wdXJlQmxhY2tBY3Rpb25Db2xvcnM6ZCk7cmV0dXJuIHMmJmM/aC5nZW5lcmF0ZUxpZ2h0UHJpbWFyeUxpZ2h0U2Vjb25kYXJ5KCk6cyYmcD9oLmdlbmVyYXRlTGlnaHRQcmltYXJ5RGFya1NlY29uZGFyeSgpOmwmJmM/aC5nZW5lcmF0ZURhcmtQcmltYXJ5TGlnaHRTZWNvbmRhcnkoKTpsJiZwP2guZ2VuZXJhdGVEYXJrUHJpbWFyeURhcmtTZWNvbmRhcnkoKTp2b2lkIDB9cmV0dXJuIFMudGlueWNvbG9yPXQsU30oKX0sMjc1Njc6ZnVuY3Rpb24oZSl7dmFyIHQ7dD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD17fTtmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgbz10W3JdPXtleHBvcnRzOnt9LGlkOnIsbG9hZGVkOiExfTtyZXR1cm4gZVtyXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxuKSxvLmxvYWRlZD0hMCxvLmV4cG9ydHN9cmV0dXJuIG4ubT1lLG4uYz10LG4ucD0iIixuKDApfShbZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMSksbz1uKDgpLGk9big3KSxhPW4oMTApLHU9bigyKSxzPW4oMyksYz1uKDQpLGw9big1KSxmPWZ1bmN0aW9uKCl7fSxwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4scil7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOmYsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06ZixhPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTpmLGw9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOmYscD1hcmd1bWVudHMubGVuZ3RoPjcmJnZvaWQgMCE9PWFyZ3VtZW50c1s3XT9hcmd1bWVudHNbN106e30sZD1hcmd1bWVudHNbOF07IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fZW5kcG9pbnRzPXQsdGhpcy5fb25OZXh1c0F2YWlsYWJsZT1vLHRoaXMuX29uTmV4dXNOb3RBdmFpbGFibGU9aSx0aGlzLl9vbkNoYW5uZWxFeHBpcmVkPWEsdGhpcy5fb25GYWlsdXJlVG9Fc3RhYmxpc2hDb25uZWN0aW9uPWwsdGhpcy5fdXNlclJvbGU9ZCx1LnNldE9wdGlvbnMocCksYy5zZXRTaW5rKHIpLHMuc2V0TG9nZ2VyKG4pLHRoaXMuYWN0aXZlQ29ubmVjdGlvbnM9MCx0aGlzLl9maXJzdENvbm5lY3REb25lPSExLHRoaXMuX2J1ZmZlcj10aGlzLl9jcmVhdGVCdWZmZXIoKSx0aGlzLmNvbm5lY3Rpb25zPXRoaXMuX2NyZWF0ZUNvbm5lY3Rpb25zKCksdGhpcy50aHJvdHRsZVNlbmRFdmVudD10aGlzLl9jcmVhdGVTZW5kRXZlbnRUaHJvdHRsZSgpLHRoaXMudGhyb3R0bGVTZW5kVXNlckV2ZW50PXRoaXMuX2NyZWF0ZVNlbmRVc2VyRXZlbnRUaHJvdHRsZSgpLHRoaXMuYWRkTGlzdGVuZXIoIkVYUCIsdGhpcy5fb25FeHBpcmVkLmJpbmQodGhpcykpfXJldHVybiBlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3RoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24obil7cmV0dXJuIG4uYWRkTGlzdGVuZXIoZSx0KX0pKX0sZS5wcm90b3R5cGUuYWRkR2xvYmFsTGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRHbG9iYWxMaXN0ZW5lcihlKX0pKX0sZS5wcm90b3R5cGUuc2V0TGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt0aGlzLmFkZExpc3RlbmVyKGUsdCl9LGUucHJvdG90eXBlLnNlbmRFdmVudD1mdW5jdGlvbihlLHQpe3ZhciBuPXtldmVudE5hbWU6ZSxldmVudERhdGE6dH07bj1pLnNldEV2ZW50VG9waWNzKG4pLHRoaXMuX3B1Ymxpc2gobil9LGUucHJvdG90eXBlLnNlbmRVc2VyRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXsibnguVG9Vc2VyIjplLGV2ZW50TmFtZTp0LGV2ZW50RGF0YTpufTtyPWkuc2V0RXZlbnRUb3BpY3MociksdGhpcy5fcHVibGlzaChyKX0sZS5wcm90b3R5cGUuc3Vic2NyaWJlVG9waWNzPWZ1bmN0aW9uKGUpe3RoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3Vic2NyaWJlVG9Ub3BpY3MoZSl9KSl9LGUucHJvdG90eXBlLnN1YnNjcmliZVRvQWxsVG9waWNzPWZ1bmN0aW9uKCl7dGhpcy5zdWJzY3JpYmVUb3BpY3MoWyIqIl0pfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZVRvcGljcz1mdW5jdGlvbihlKXt0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnVuc3Vic2NyaWJlRnJvbVRvcGljcyhlKX0pKX0sZS5wcm90b3R5cGUubmV3TWVzc2FnZT1mdW5jdGlvbihlKXt0aGlzLnNlbmRFdmVudCgiTmV3TWVzc2FnZSIsZSl9LGUucHJvdG90eXBlLm5ld0NvbW1lbnQ9ZnVuY3Rpb24oZSl7dGhpcy5zZW5kRXZlbnQoIk5ld0NvbW1lbnQiLGUpfSxlLnByb3RvdHlwZS5nZXRFbmRwb2ludHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5kcG9pbnRzfSxlLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3RoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2h1dGRvd24oKX0pKSxzLmRlc3Ryb3koKSxjLnJlc2V0KCksdGhpcy5hY3RpdmVDb25uZWN0aW9ucz0wfSxlLnByb3RvdHlwZS5yZXRyeUNvbm5lY3Rpb249ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlY29ubmVjdE5vdygpfSkpfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuc2h1dGRvd24oKX0sZS5wcm90b3R5cGUub25GYWlsZWRUb0VzdGFibGlzaE5ld1dlYnNvY2tldENvbm5lY3Rpb249ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiI7Yy5pbmNyZW1lbnQoInVuYWJsZV90b19lc3RhYmxpc2hfbmV3X3dlYnNvY2tldF9iZWNhdXNlXyIrZSksdGhpcy5fb25GYWlsdXJlVG9Fc3RhYmxpc2hDb25uZWN0aW9uKGUpLHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2h1dGRvd24oKX0pKSx0aGlzLmNvbm5lY3Rpb25zPXRoaXMuX2NyZWF0ZUNvbm5lY3Rpb25zKCl9LGUucHJvdG90eXBlLl9vbkNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZUNvbm5lY3Rpb25zKyssMT09PXRoaXMuYWN0aXZlQ29ubmVjdGlvbnMmJih0aGlzLl9vbk5leHVzQXZhaWxhYmxlKCksdm9pZCAwIT09dGhpcy5fbGFzdERpc2Nvbm5lY3RBdCYmKGMudGltaW5nKCJvZmZsaW5lIiwobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9sYXN0RGlzY29ubmVjdEF0KSx0aGlzLl9sYXN0RGlzY29ubmVjdEF0PXZvaWQgMCkpfSxlLnByb3RvdHlwZS5fb25EaXNjb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVDb25uZWN0aW9ucz10aGlzLmFjdGl2ZUNvbm5lY3Rpb25zPjA/dGhpcy5hY3RpdmVDb25uZWN0aW9ucy0xOjAsdGhpcy5hY3RpdmVDb25uZWN0aW9uczwxJiYodGhpcy5fbGFzdERpc2Nvbm5lY3RBdD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLl9vbk5leHVzTm90QXZhaWxhYmxlKCkpfSxlLnByb3RvdHlwZS5fb25GaXJzdENvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl9maXJzdENvbm5lY3REb25lPSEwLHRoaXMuX2J1ZmZlci5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25FeHBpcmVkPWZ1bmN0aW9uKGUpe3RoaXMuX29uQ2hhbm5lbEV4cGlyZWQoKSx0aGlzLnNodXRkb3duKCl9LGUucHJvdG90eXBlLl9wdWJsaXNoPWZ1bmN0aW9uKGUpe2UuZXZlbnRHdWlkPWwuZ2VuZXJhdGVHdWlkKCksdGhpcy51c2VOZXdXZWJTb2NrZXRzfHx0aGlzLl9maXJzdENvbm5lY3REb25lfHx0aGlzLl9idWZmZXIucHVzaEV2ZW50KGUpLHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucHVibGlzaChlKX0pKX0sZS5wcm90b3R5cGUuX2NyZWF0ZUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgbyh0aGlzLl9wdWJsaXNoLmJpbmQodGhpcykpfSxlLnByb3RvdHlwZS5fY3JlYXRlQ29ubmVjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9lbmRwb2ludHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIodCxlLl9vbkNvbm5lY3QuYmluZChlKSxlLl9vbkRpc2Nvbm5lY3QuYmluZChlKSxlLm9uRmFpbGVkVG9Fc3RhYmxpc2hOZXdXZWJzb2NrZXRDb25uZWN0aW9uLmJpbmQoZSksZS5fdXNlclJvbGUpfSkpLmZpbHRlcihCb29sZWFuKX0sZS5wcm90b3R5cGUuX2NyZWF0ZVNlbmRFdmVudFRocm90dGxlPWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5zZW5kRXZlbnQuYmluZCh0aGlzKSx1LklTX1RZUElOR19USFJPVFRMRSl9LGUucHJvdG90eXBlLl9jcmVhdGVTZW5kVXNlckV2ZW50VGhyb3R0bGU9ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzLnNlbmRVc2VyRXZlbnQuYmluZCh0aGlzKSx1LklTX1RZUElOR19USFJPVFRMRSx7dHJhaWxpbmc6ITF9KX0sZX0oKTtlLmV4cG9ydHM9cH0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMiksbz1uKDMpLGk9big0KSxhPW4oNSksdT1uKDcpLHM9big4KSxjPW4oOSksbD1uKDExKSxmPW4oMTIpO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmZ1bmN0aW9uKCl7fSxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpmdW5jdGlvbigpe30sbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106ZnVuY3Rpb24oZSl7fSxpPWFyZ3VtZW50c1s0XTshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLmVuZHBvaW50PXQsdGhpcy5vbkNvbm5lY3Q9bix0aGlzLm9uRGlzY29ubmVjdD1yLHRoaXMub25GYWlsZWRUb0VzdGFibGlzaE5ld1dlYnNvY2tldENvbm5lY3Rpb249byx0aGlzLl91c2VyUm9sZT1pLHRoaXMuX2NhbGxlZE9uQ29ubmVjdFNpbmNlTGFzdERpc2Nvbm5lY3Q9ITEsdGhpcy5udW1iZXJPZkNvbnNlY3V0aXZlRmFpbGVkUmV0cmllc1RvQ29ubmVjdD0wLHRoaXMuX2xpc3RlbmVycz17fSx0aGlzLl9nbG9iYWxMaXN0ZW5lcnM9W10sdGhpcy5yZXRyeUNvdW50ZXI9YS5uZXdSZXRyeUNvdW50ZXIoKSx0aGlzLl9pbml0QnVmZmVyKCksdGhpcy5faW5pdFdlYlNvY2tldCgpPyh0aGlzLl9yZWFjaGFiaWxpdHk9bmV3IGYodGhpcyksdGhpcy5fcHJlc2VuY2U9bmV3IGModGhpcyksdGhpcy5fdG9waWNNYW5hZ2VyPW5ldyB1KHRoaXMpKTp0aGlzLm9uRmFpbGVkVG9Fc3RhYmxpc2hOZXdXZWJzb2NrZXRDb25uZWN0aW9uKCJ3ZWJzb2NrZXRfbm90X3N1cHBvcnRlZCIpfXJldHVybiBlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXRoaXMuX2xpc3RlbmVyc1tlXT90aGlzLl9saXN0ZW5lcnNbZV09W3RdOnRoaXMuX2xpc3RlbmVyc1tlXS5wdXNoKHQpfSxlLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2xpc3RlbmVyc1tlXTtpZihuKXt2YXIgcj1uLmluZGV4T2YodCk7cj49MCYmbi5zcGxpY2UociwxKX19LGUucHJvdG90eXBlLmFkZEdsb2JhbExpc3RlbmVyPWZ1bmN0aW9uKGUpe3RoaXMuX2dsb2JhbExpc3RlbmVycy5wdXNoKGUpfSxlLnByb3RvdHlwZS5wdWJsaXNoPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNPcGVuKCkpe3RyeXt0aGlzLndlYlNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KGUpKX1jYXRjaChlKXtvLmVycm9yKCJFcnJvciB3aXRoIHB1Ymxpc2hpbmcgYSBtZXNzYWdlOiAiK0pTT04uc3RyaW5naWZ5KGUpKSx0aGlzLndlYlNvY2tldCYmdGhpcy53ZWJTb2NrZXQuY2xvc2UmJnRoaXMud2ViU29ja2V0LmNsb3NlKDFlMyl9dGhpcy5fcGluZ2VyLnJlc2V0KCl9ZWxzZSB0aGlzLl9idWZmZXIucHVzaEV2ZW50KGUpfSxlLnByb3RvdHlwZS5zdWJzY3JpYmVUb1RvcGljcz1mdW5jdGlvbihlKXt0aGlzLl90b3BpY01hbmFnZXIuc3Vic2NyaWJlKGUpfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZUZyb21Ub3BpY3M9ZnVuY3Rpb24oZSl7dGhpcy5fdG9waWNNYW5hZ2VyLnVuc3Vic2NyaWJlKGUpfSxlLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3lQaW5nZXIoKSx0aGlzLl9yZWFjaGFiaWxpdHkuZGVzdHJveSgpLHRoaXMuX3ByZXNlbmNlLmRlc3Ryb3koKSx0aGlzLl90b3BpY01hbmFnZXIuZGVzdHJveSgpLHRoaXMuZGVzdHJveVdlYlNvY2tldCgpLHRoaXMuX2xpc3RlbmVycz17fSx0aGlzLl9nbG9iYWxMaXN0ZW5lcnM9W10sdGhpcy5faW5pdEJ1ZmZlcigpLHRoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKX0sZS5wcm90b3R5cGUuaXNPcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2ViU29ja2V0JiZ0aGlzLndlYlNvY2tldC5yZWFkeVN0YXRlPT09dGhpcy53ZWJTb2NrZXQuT1BFTn0sZS5wcm90b3R5cGUuaXNDb25uZWN0aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2ViU29ja2V0JiZ0aGlzLndlYlNvY2tldC5yZWFkeVN0YXRlPT09dGhpcy53ZWJTb2NrZXQuQ09OTkVDVElOR30sZS5wcm90b3R5cGUuaXNXZWJzb2NrZXRUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuc2NoZWR1bGVSZWNvbm5lY3Q9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLl9jbGVhclNjaGVkdWxlZFJlY29ubmVjdCgpLHRoaXMuX3NjaGVkdWxlZFJlY29ubmVjdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QucmVjb25uZWN0Tm93KCl9KSxlKX0sZS5wcm90b3R5cGUucmVjb25uZWN0Tm93PWZ1bmN0aW9uKCl7dGhpcy5fY2xlYXJTY2hlZHVsZWRSZWNvbm5lY3QoKSx0aGlzLmRlc3Ryb3lXZWJTb2NrZXQoKSx0aGlzLl90b3BpY01hbmFnZXIuaGFzTm9TdWJzY3JpcHRpb25zKCkmJmkuaW5jcmVtZW50KCJyZWNvbm5lY3Rfbm9fc3Vic2NyaXB0aW9ucyIpLHRoaXMuX2luaXRXZWJTb2NrZXQoKX0sZS5wcm90b3R5cGUuZGVzdHJveVdlYlNvY2tldD1mdW5jdGlvbigpe3RoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSx0aGlzLl9jYWxsZWRPbkNvbm5lY3RTaW5jZUxhc3REaXNjb25uZWN0JiYodGhpcy5vbkRpc2Nvbm5lY3QoKSx0aGlzLl9jYWxsZWRPbkNvbm5lY3RTaW5jZUxhc3REaXNjb25uZWN0PSExKSx0aGlzLndlYlNvY2tldCYmKHRoaXMud2ViU29ja2V0Lm9ub3Blbj1udWxsLHRoaXMud2ViU29ja2V0Lm9ubWVzc2FnZT1udWxsLHRoaXMud2ViU29ja2V0Lm9uZXJyb3I9bnVsbCx0aGlzLndlYlNvY2tldC5vbmNsb3NlPW51bGwsdGhpcy5pc09wZW4oKT90aGlzLndlYlNvY2tldCYmdGhpcy53ZWJTb2NrZXQuY2xvc2UmJnRoaXMud2ViU29ja2V0LmNsb3NlKDFlMyk6dGhpcy5pc0Nvbm5lY3RpbmcoKSYmby5pbmZvKCJEZXN0cm95aW5nIGEgd2Vic29ja2V0IHRoYXQgaXMgc3RpbGwgaW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUiKSx0aGlzLndlYlNvY2tldD1udWxsKSx0aGlzLl9kZXN0cm95UGluZ2VyKCl9LGUucHJvdG90eXBlLl9vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJldHJ5Q291bnRlci5yZXNldCgpLHRoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSx0aGlzLm51bWJlck9mQ29uc2VjdXRpdmVGYWlsZWRSZXRyaWVzVG9Db25uZWN0PTAsdGhpcy5faW5pdFBpbmdlcigpLHRoaXMuX2NhbGxlZE9uQ29ubmVjdFNpbmNlTGFzdERpc2Nvbm5lY3Q9ITAsdGhpcy5vbkNvbm5lY3QoKSx0aGlzLl9wcmVzZW5jZS5zdGFydCgpLHRoaXMuX2J1ZmZlci5mbHVzaCgpLHRoaXMuX3RvcGljTWFuYWdlci5mbHVzaCgpfSxlLnByb3RvdHlwZS5fb25NZXNzYWdlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3BhcnNlTWVzc2FnZShlKTt0JiYodGhpcy5fY2FsbExpc3RlbmVycyh0KSwiQUNLIj09PXQuZXZlbnROYW1lJiZ0aGlzLl9waW5nZXIuYWNrKCkpfSxlLnByb3RvdHlwZS5fb25FcnJvcj1mdW5jdGlvbihlKXtpLmluY3JlbWVudCgiZXJyb3IiKSxvLmVycm9yKCJXZWJzb2NrZXQgX29uRXJyb3IgY2FsbGVkOiAiK0pTT04uc3RyaW5naWZ5KGUpKX0sZS5wcm90b3R5cGUuX29uQ2xvc2U9ZnVuY3Rpb24oZSl7dGhpcy5kZXN0cm95V2ViU29ja2V0KCksby5lcnJvcigiV2Vic29ja2V0IGNsb3NlZDogY29kZTogIitlLmNvZGUrIiwgcmVhc29uOiAiK2UucmVhc29uKyIsIHdhc0NsZWFuOiAiK2Uud2FzQ2xlYW4pLG5hdmlnYXRvci5vbkxpbmU/KHRoaXMubnVtYmVyT2ZDb25zZWN1dGl2ZUZhaWxlZFJldHJpZXNUb0Nvbm5lY3QrKyx0aGlzLm51bWJlck9mQ29uc2VjdXRpdmVGYWlsZWRSZXRyaWVzVG9Db25uZWN0Pj01P3RoaXMub25GYWlsZWRUb0VzdGFibGlzaE5ld1dlYnNvY2tldENvbm5lY3Rpb24oIm1heF9yZXRyaWVzX3RvX2Nvbm5lY3RfZmFpbGVkIik6dGhpcy5zY2hlZHVsZVJlY29ubmVjdCh0aGlzLnJldHJ5Q291bnRlci5uZXh0KCkpKTp0aGlzLnNjaGVkdWxlUmVjb25uZWN0KHRoaXMucmV0cnlDb3VudGVyLm5leHQoKSl9LGUucHJvdG90eXBlLl9vblBpbmdUaW1lb3V0PWZ1bmN0aW9uKCl7aS5pbmNyZW1lbnQoInBpbmdfdGltZW91dCIpLHRoaXMud2ViU29ja2V0JiZ0aGlzLndlYlNvY2tldC5jbG9zZSYmdGhpcy53ZWJTb2NrZXQuY2xvc2UoMWUzKX0sZS5wcm90b3R5cGUuX2NhbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ldmVudE5hbWU7dGhpcy5fbGlzdGVuZXJzW3RdJiZ0aGlzLl9saXN0ZW5lcnNbdF0uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoZSl9KSksdGhpcy5fZ2xvYmFsTGlzdGVuZXJzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KGUpfSkpfSxlLnByb3RvdHlwZS5fY2xlYXJTY2hlZHVsZWRSZWNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl9zY2hlZHVsZWRSZWNvbm5lY3QmJihjbGVhclRpbWVvdXQodGhpcy5fc2NoZWR1bGVkUmVjb25uZWN0KSx0aGlzLl9zY2hlZHVsZWRSZWNvbm5lY3Q9bnVsbCl9LGUucHJvdG90eXBlLl9pbml0QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5fYnVmZmVyPW5ldyBzKHRoaXMucHVibGlzaC5iaW5kKHRoaXMpKX0sZS5wcm90b3R5cGUuX2luaXRXZWJTb2NrZXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl93ZWJTb2NrZXRVcmwodGhpcy5lbmRwb2ludCk7cmV0dXJuIHRoaXMuX3N0YXJ0Q29ubmVjdFRpbWVvdXQoKSx3aW5kb3cuV2ViU29ja2V0Pyh0aGlzLndlYlNvY2tldD1uZXcgV2ViU29ja2V0KGUpLHRoaXMud2ViU29ja2V0Lm9ub3Blbj10aGlzLl9vbk9wZW4uYmluZCh0aGlzKSx0aGlzLndlYlNvY2tldC5vbm1lc3NhZ2U9dGhpcy5fb25NZXNzYWdlLmJpbmQodGhpcyksdGhpcy53ZWJTb2NrZXQub25lcnJvcj10aGlzLl9vbkVycm9yLmJpbmQodGhpcyksdGhpcy53ZWJTb2NrZXQub25jbG9zZT10aGlzLl9vbkNsb3NlLmJpbmQodGhpcyksITApOih0aGlzLl9jbGVhckNvbm5lY3RUaW1lb3V0KCksITEpfSxlLnByb3RvdHlwZS5faW5pdFBpbmdlcj1mdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3lQaW5nZXIoKSx0aGlzLl9waW5nZXI9bmV3IGwodGhpcyx0aGlzLl9vblBpbmdUaW1lb3V0LmJpbmQodGhpcykpLHRoaXMuX3Bpbmdlci5zdGFydCgpfSxlLnByb3RvdHlwZS5fZGVzdHJveVBpbmdlcj1mdW5jdGlvbigpe3RoaXMuX3BpbmdlciYmdGhpcy5fcGluZ2VyLmRlc3Ryb3koKX0sZS5wcm90b3R5cGUuX3N0YXJ0Q29ubmVjdFRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSxyLldFQlNPQ0tFVF9DT05ORUNUX1RJTUVPVVQ+MCYmKHRoaXMuX2Nvbm5lY3RUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aS5pbmNyZW1lbnQoImNvbm5lY3RfdGltZW91dCIpLGUud2ViU29ja2V0JiZlLndlYlNvY2tldC5jbG9zZSYmZS53ZWJTb2NrZXQuY2xvc2UoMWUzKX0pLHIuV0VCU09DS0VUX0NPTk5FQ1RfVElNRU9VVCkpfSxlLnByb3RvdHlwZS5fY2xlYXJDb25uZWN0VGltZW91dD1mdW5jdGlvbigpe3RoaXMuX2Nvbm5lY3RUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX2Nvbm5lY3RUaW1lb3V0KSx0aGlzLl9jb25uZWN0VGltZW91dD1udWxsKX0sZS5wcm90b3R5cGUuX2FkZFF1ZXJ5UGFyYW09ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUsbz10KyI9IituO3JldHVybiByKz0oci5zcGxpdCgiPyIpWzFdPyImIjoiPyIpK299LGUucHJvdG90eXBlLl93ZWJTb2NrZXRVcmw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtyZXR1cm4gdD10aGlzLl9hZGRRdWVyeVBhcmFtKHQsIlgtTmV4dXMtTmV3LUNsaWVudCIsITApLHQ9dGhpcy5fYWRkUXVlcnlQYXJhbSh0LCJYLU5leHVzLVZlcnNpb24iLHIuTkVYVVNfQ0xJRU5UX1ZFUlNJT04pLCh0PXRoaXMuX2FkZFF1ZXJ5UGFyYW0odCwidXNlcl9yb2xlIix0aGlzLl91c2VyUm9sZSkpLnJlcGxhY2UoL15odHRwLywid3MiKX0sZS5wcm90b3R5cGUuX3BhcnNlTWVzc2FnZT1mdW5jdGlvbihlKXtpZihlLmRhdGEmJiIiIT09ZS5kYXRhLnRyaW0oKSl0cnl7cmV0dXJuIEpTT04ucGFyc2UoZS5kYXRhKX1jYXRjaChlKXtyZXR1cm59fSxlfSgpfSxmdW5jdGlvbihlLHQpe3ZhciBuPXtORVhVU19DTElFTlRfVkVSU0lPTjoiMC4xMi4zIixJU19UWVBJTkdfVEhST1RUTEU6MWUzLFBSRVNFTkNFX0lOVEVSVkFMOjEyZTQsUFJFU0VOQ0VfRU5BQkxFRDohMCxQSU5HX1RJTUVPVVQ6NDVlMyxQT05HX1RJTUVPVVQ6MWU0LFdFQlNPQ0tFVF9DT05ORUNUX1RJTUVPVVQ6M2U0LEVWRU5UX0JVRkZFUl9UVEw6M2U0fSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLE9iamVjdC5hc3NpZ24odGhpcyxuKX1yZXR1cm4gZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtPYmplY3QuYXNzaWduKHRoaXMsbil9LGUucHJvdG90eXBlLnNldE9wdGlvbnM9ZnVuY3Rpb24oZSl7T2JqZWN0LmFzc2lnbih0aGlzLGUpfSxlfSgpO2UuZXhwb3J0cz1uZXcgcn0sZnVuY3Rpb24oZSx0KXt2YXIgbj0iTmV4dXNDbGllbnQgLSAiLHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5sb2dnZXI9Y29uc29sZX1yZXR1cm4gZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubG9nZ2VyPW51bGx9LGUucHJvdG90eXBlLnNldExvZ2dlcj1mdW5jdGlvbihlKXt0aGlzLmxvZ2dlcj1lfSxlLnByb3RvdHlwZS5pbmZvPWZ1bmN0aW9uKGUpe3dpbmRvdy5ORVhVU19ERUJVR19MT0dHSU5HJiZjb25zb2xlLmxvZyhuK2UpLHRoaXMubG9nZ2VyJiZ0aGlzLmxvZ2dlci5pbmZvKG4rZSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3dpbmRvdy5ORVhVU19ERUJVR19MT0dHSU5HJiZjb25zb2xlLmVycm9yKG4rZSksdGhpcy5sb2dnZXImJnRoaXMubG9nZ2VyLmVycm9yKG4rZSl9LGV9KCk7ZS5leHBvcnRzPW5ldyByfSxmdW5jdGlvbihlLHQpe3ZhciBuPSJuZXh1c2NsaWVudC1qcy4iLHI9e2luY3JlbWVudDpmdW5jdGlvbigpe30sdGltaW5nOmZ1bmN0aW9uKCl7fX0sbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLl9zaW5rPXJ9cmV0dXJuIGUucHJvdG90eXBlLnNldFNpbms9ZnVuY3Rpb24oZSl7dGhpcy5fc2luaz1lfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3Npbms9cn0sZS5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGUpe3RoaXMuX3NpbmsuaW5jcmVtZW50KG4rZSl9LGUucHJvdG90eXBlLnRpbWluZz1mdW5jdGlvbihlLHQpe3RoaXMuX3NpbmsudGltaW5nKG4rZSx0KX0sZX0oKTtlLmV4cG9ydHM9bmV3IG99LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sbz1uKDYpLGk9e29iamVjdEVhY2g6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiZ0KG4sZVtuXSl9LHJhbmRvbUludDpmdW5jdGlvbihlLHQpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHQtZSkpK2V9LGlzTnVtYmVyOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX0saXNPYmplY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PT0odm9pZCAwPT09ZT8idW5kZWZpbmVkIjpyKGUpKX0sdW5pcXVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLmluZGV4T2YoZSk9PT10fSkpfSx1bmlvbjpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLmNvbmNhdChlLHQpO3JldHVybiBpLnVuaXF1ZShuKX0sZGlmZmVyZW5jZTpmdW5jdGlvbihlLHQpe3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuISgtMSE9PXQuaW5kZXhPZihlKSl9KSl9LGN1cnJlbnRQYWdlOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB3aW5kb3cudG9wLmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZSl7cmV0dXJufX0sZ2VuZXJhdGVHdWlkOmZ1bmN0aW9uKCl7cmV0dXJuInh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLChmdW5jdGlvbihlKXt2YXIgdD0xNipNYXRoLnJhbmRvbSgpfDA7cmV0dXJuKCJ4Ij09PWU/dDozJnR8OCkudG9TdHJpbmcoMTYpfSkpfSxwYXJzZVVybDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIHQuaHJlZj1lLHtob3N0OnQuaG9zdCxob3N0bmFtZTp0Lmhvc3RuYW1lLHBhdGhuYW1lOnQucGF0aG5hbWUscG9ydDp0LnBvcnQscHJvdG9jb2w6dC5wcm90b2NvbCxzZWFyY2g6dC5zZWFyY2gsaGFzaDp0Lmhhc2h9fSxoYXNWaXNpYmlsaXR5U3VwcG9ydDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW58fHZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbnx8dm9pZCAwIT09ZG9jdW1lbnQubXNIaWRkZW58fHZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbn0sZ2V0VmlzaWJpbGl0eUNoYW5nZUV2ZW50TmFtZTpmdW5jdGlvbigpe3ZhciBlPXZvaWQgMDtyZXR1cm4gdm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVuP2U9InZpc2liaWxpdHljaGFuZ2UiOnZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbj9lPSJtb3p2aXNpYmlsaXR5Y2hhbmdlIjp2b2lkIDAhPT1kb2N1bWVudC5tc0hpZGRlbj9lPSJtc3Zpc2liaWxpdHljaGFuZ2UiOnZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbiYmKGU9IndlYmtpdHZpc2liaWxpdHljaGFuZ2UiKSxlfSxpc1BhZ2VWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PWRvY3VtZW50LmhpZGRlbj8hZG9jdW1lbnQuaGlkZGVuOnZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbj8hZG9jdW1lbnQubW96SGlkZGVuOnZvaWQgMCE9PWRvY3VtZW50Lm1zSGlkZGVuPyFkb2N1bWVudC5tc0hpZGRlbjp2b2lkIDA9PT1kb2N1bWVudC53ZWJraXRIaWRkZW58fCFkb2N1bWVudC53ZWJraXRIaWRkZW59LG5ld1JldHJ5Q291bnRlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgbygxZTQsM2U1LDIsLjUsMS41KX19O2UuZXhwb3J0cz1pfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuLHIsbyxpKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLmluaXRpYWxCYXNlRGVsYXk9dCx0aGlzLm1heEJhc2VEZWxheT1uLHRoaXMuYmFja29mZk11bHRpcGxpZXI9cix0aGlzLm1pblJhbmRvbT1vLHRoaXMubWF4UmFuZG9tPWksdGhpcy5yZXNldCgpfXJldHVybiBlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dEluaXRpYWxCYXNlRGVsYXk9dGhpcy5pbml0aWFsQmFzZURlbGF5fSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYodGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheT50aGlzLm1heEJhc2VEZWxheSlyZXR1cm4gdGhpcy5yZXNldCgpLE1hdGguZmxvb3IodGhpcy5tYXhCYXNlRGVsYXkqdGhpcy5yYW5kb21GbG9hdCh0aGlzLm1pblJhbmRvbSx0aGlzLm1heFJhbmRvbSkpO3ZhciBlPU1hdGguZmxvb3IodGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheSp0aGlzLnJhbmRvbUZsb2F0KHRoaXMubWluUmFuZG9tLHRoaXMubWF4UmFuZG9tKSk7cmV0dXJuIHRoaXMubmV4dEluaXRpYWxCYXNlRGVsYXk9dGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheSp0aGlzLmJhY2tvZmZNdWx0aXBsaWVyLGV9LGUucHJvdG90eXBlLnJhbmRvbUZsb2F0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE1hdGgucmFuZG9tKCkqKHQtZSkrZX0sZX0oKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLl9uZXh1c1dlYlNvY2tldD10LHRoaXMuX3RvcGljcz1bXX1yZXR1cm4gZS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RoaXMuX3RvcGljcz1yLnVuaW9uKHRoaXMuX3RvcGljcyxlKSx0aGlzLl9wdWJsaXNoX2V2ZW50KCJueC5TdWJzY3JpYmUiLGUpfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXt0aGlzLl90b3BpY3M9ci5kaWZmZXJlbmNlKHRoaXMuX3RvcGljcyxlKSx0aGlzLl9wdWJsaXNoX2V2ZW50KCJueC5VbnN1YnNjcmliZSIsZSl9LGUucHJvdG90eXBlLmhhc05vU3Vic2NyaXB0aW9ucz1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fdG9waWNzLmxlbmd0aH0sZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLl90b3BpY3MubGVuZ3RoPjAmJnRoaXMuc3Vic2NyaWJlKHRoaXMuX3RvcGljcyl9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLl9uZXh1c1dlYlNvY2tldD1udWxsLHRoaXMuX3RvcGljcz1bXX0sZS5zZXRFdmVudFRvcGljcz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9ldmVudF90b3BpY3MoZS5ldmVudE5hbWUsZS5ldmVudERhdGEpO3JldHVybiB0JiYoZVsibnguVG9waWNzIl09dCksZX0sZS5pc1RvcGljRXZlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1bIm54LlN1YnNjcmliZSIsIm54LlVuc3Vic2NyaWJlIl0uaW5kZXhPZihlLmV2ZW50TmFtZSl9LGUuX2V2ZW50X3RvcGljcz1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIkFkbWluSXNUeXBpbmciOmNhc2UiVXNlcklzVHlwaW5nIjpjYXNlIkNvbnZlcnNhdGlvblNlZW4iOmNhc2UiQWRtaW5Jc1R5cGluZ0FOb3RlIjpjYXNlIlVzZXJDb250ZW50U2VlbkJ5QWRtaW4iOmNhc2UiTmV3Q29tbWVudCI6cmV0dXJuIHQuY29udmVyc2F0aW9uSWQ/WyJjb252ZXJzYXRpb24vIit0LmNvbnZlcnNhdGlvbklkXTpbImNvbnZlcnNhdGlvbi9uZXciXTtkZWZhdWx0OnJldHVybiExfX0sZS5wcm90b3R5cGUuX3B1Ymxpc2hfZXZlbnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9uZXh1c1dlYlNvY2tldCYmdGhpcy5fbmV4dXNXZWJTb2NrZXQuaXNXZWJzb2NrZXRUcmFuc3BvcnQoKSYmdGhpcy5fbmV4dXNXZWJTb2NrZXQucHVibGlzaCh7ZXZlbnROYW1lOmUsIm54LlRvcGljcyI6dH0pfSxlfSgpfSxmdW5jdGlvbihlLHQsbil7dmFyIHI9big1KS5vYmplY3RFYWNoLG89bigyKSxpPW4oNyksYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fcHVibGlzaD10LHRoaXMuX2V2ZW50cz17fSx0aGlzLl9jb252ZXJzYXRpb25FdmVudHM9e319cmV0dXJuIGUucHJvdG90eXBlLmdldEV2ZW50cz1mdW5jdGlvbigpe3JldHVybntldmVudHM6dGhpcy5fZXZlbnRzLGNvbnZlcnNhdGlvbkV2ZW50czp0aGlzLl9jb252ZXJzYXRpb25FdmVudHN9fSxlLnByb3RvdHlwZS5wdXNoRXZlbnQ9ZnVuY3Rpb24oZSl7aWYoIWkuaXNUb3BpY0V2ZW50KGUpKXt2YXIgdD1lLmV2ZW50RGF0YSYmZS5ldmVudERhdGEuY29udmVyc2F0aW9uSWQ7dD90aGlzLl9wdXNoQ29udmVyc2F0aW9uRXZlbnQodCxlKTp0aGlzLl9wdXNoRXZlbnQoZSl9fSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuX2ZsdXNoRXZlbnRzKHRoaXMuX2V2ZW50cyksdGhpcy5fZXZlbnRzPXt9LHRoaXMuX2ZsdXNoQ29udmVyc2F0aW9uRXZlbnRzKCksdGhpcy5fY29udmVyc2F0aW9uRXZlbnRzPXt9fSxlLnByb3RvdHlwZS5fcHVzaEV2ZW50PWZ1bmN0aW9uKGUpe3ZhciB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuX2V2ZW50c1t0XT1lfSxlLnByb3RvdHlwZS5fcHVzaENvbnZlcnNhdGlvbkV2ZW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49KG5ldyBEYXRlKS5nZXRUaW1lKCkscj10aGlzLl9jb252ZXJzYXRpb25FdmVudHNbZV18fHt9O3Jbbl09dCx0aGlzLl9jb252ZXJzYXRpb25FdmVudHNbZV09cn0sZS5wcm90b3R5cGUuX2ZsdXNoRXZlbnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0obmV3IERhdGUpLmdldFRpbWUoKTtyKGUsKGZ1bmN0aW9uKGUscil7bi1lPG8uRVZFTlRfQlVGRkVSX1RUTCYmdC5fcHVibGlzaChyKX0pKX0sZS5wcm90b3R5cGUuX2ZsdXNoQ29udmVyc2F0aW9uRXZlbnRzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyKHRoaXMuX2NvbnZlcnNhdGlvbkV2ZW50cywoZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5fZmx1c2hFdmVudHMobil9KSl9LGV9KCk7ZS5leHBvcnRzPWF9LGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDIpLG89big1KSxpPW4oMTApO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdGhyb3R0bGVQcmVzZW5jZUV2ZW50PXRoaXMuX2NyZWF0ZVNlbmRQcmVzZW5jZUV2ZW50VGhyb3R0bGUoKSx0aGlzLl9uZXh1c1dlYlNvY2tldD10LHRoaXMuX2luaXRQYWdlVmlzaWJpbGl0eUxpc3Rlbm5lcnMoKX1yZXR1cm4gZS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3ByZXNlbmNlSW50ZXJ2YWx8fCh0aGlzLl90aHJvdHRsZVByZXNlbmNlRXZlbnQoKSx0aGlzLl9wcmVzZW5jZUludGVydmFsPXNldEludGVydmFsKChmdW5jdGlvbigpe2UuX3Rocm90dGxlUHJlc2VuY2VFdmVudCgpfSksci5QUkVTRU5DRV9JTlRFUlZBTCkpfSxlLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5fcHJlc2VuY2VJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLl9wcmVzZW5jZUludGVydmFsKSx0aGlzLl9wcmVzZW5jZUludGVydmFsPW51bGx9LGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKSx0aGlzLl90ZWFyZG93blBhZ2VWaXNpYmlsaXR5TGlzdGVuZXJzKCksdGhpcy5fbmV4dXNXZWJTb2NrZXQ9bnVsbH0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCl9LGUucHJvdG90eXBlLl9zZW5kUHJlc2VuY2VFdmVudD1mdW5jdGlvbigpe2lmKHIuUFJFU0VOQ0VfRU5BQkxFRCYmdGhpcy5fbmV4dXNXZWJTb2NrZXQpe3ZhciBlPXtldmVudE5hbWU6Im54LlVzZXJQcmVzZW5jZSJ9LHQ9by5jdXJyZW50UGFnZSgpO3QmJihlLmV2ZW50RGF0YT17Y3VycmVudF9wYWdlOnR9KSx0aGlzLl9uZXh1c1dlYlNvY2tldC5wdWJsaXNoKGUpfX0sZS5wcm90b3R5cGUuX2NyZWF0ZVNlbmRQcmVzZW5jZUV2ZW50VGhyb3R0bGU9ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLl9zZW5kUHJlc2VuY2VFdmVudC5iaW5kKHRoaXMpLHIuUFJFU0VOQ0VfSU5URVJWQUwpfSxlLnByb3RvdHlwZS5faW5pdFBhZ2VWaXNpYmlsaXR5TGlzdGVubmVycz1mdW5jdGlvbigpe28uaGFzVmlzaWJpbGl0eVN1cHBvcnQoKSYmKHRoaXMuX3Zpc2liaWxpdHlFdmVudD1vLmdldFZpc2liaWxpdHlDaGFuZ2VFdmVudE5hbWUoKSx0aGlzLl9vblBhZ2VWaXNpYmxlQm91bmQ9dGhpcy5fb25QYWdlVmlzaWJpbGl0eUNoYW5nZS5iaW5kKHRoaXMpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKHRoaXMuX3Zpc2liaWxpdHlFdmVudCx0aGlzLl9vblBhZ2VWaXNpYmxlQm91bmQpKX0sZS5wcm90b3R5cGUuX3RlYXJkb3duUGFnZVZpc2liaWxpdHlMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtvLmhhc1Zpc2liaWxpdHlTdXBwb3J0KCkmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuX3Zpc2liaWxpdHlFdmVudCx0aGlzLl9vblBhZ2VWaXNpYmxlQm91bmQpfSxlLnByb3RvdHlwZS5fb25QYWdlVmlzaWJpbGl0eUNoYW5nZT1mdW5jdGlvbigpe28uaXNQYWdlVmlzaWJsZSgpP3RoaXMuc3RhcnQoKTp0aGlzLnN0b3AoKX0sZX0oKX0sZnVuY3Rpb24oZSx0KXsoZnVuY3Rpb24odCl7dmFyIG49IkV4cGVjdGVkIGEgZnVuY3Rpb24iLHI9TmFOLG89IltvYmplY3QgU3ltYm9sXSIsaT0vXlxzK3xccyskL2csYT0vXlstK10weFswLTlhLWZdKyQvaSx1PS9eMGJbMDFdKyQvaSxzPS9eMG9bMC03XSskL2ksYz1wYXJzZUludCxsPSJvYmplY3QiPT10eXBlb2YgdCYmdCYmdC5PYmplY3Q9PT1PYmplY3QmJnQsZj0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLHA9bHx8Znx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxkPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaD1NYXRoLm1heCx5PU1hdGgubWluLHY9ZnVuY3Rpb24oKXtyZXR1cm4gcC5EYXRlLm5vdygpfTtmdW5jdGlvbiBtKGUsdCxyKXt2YXIgbyxpLGEsdSxzLGMsbD0wLGY9ITEscD0hMSxkPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3Iobik7ZnVuY3Rpb24gbSh0KXt2YXIgbj1vLHI9aTtyZXR1cm4gbz1pPXZvaWQgMCxsPXQsdT1lLmFwcGx5KHIsbil9ZnVuY3Rpb24gYihlKXt2YXIgbj1lLWM7cmV0dXJuIHZvaWQgMD09PWN8fG4+PXR8fG48MHx8cCYmZS1sPj1hfWZ1bmN0aW9uIHcoKXt2YXIgZT12KCk7aWYoYihlKSlyZXR1cm4geChlKTtzPXNldFRpbWVvdXQodyxmdW5jdGlvbihlKXt2YXIgbj10LShlLWMpO3JldHVybiBwP3kobixhLShlLWwpKTpufShlKSl9ZnVuY3Rpb24geChlKXtyZXR1cm4gcz12b2lkIDAsZCYmbz9tKGUpOihvPWk9dm9pZCAwLHUpfWZ1bmN0aW9uIGsoKXt2YXIgZT12KCksbj1iKGUpO2lmKG89YXJndW1lbnRzLGk9dGhpcyxjPWUsbil7aWYodm9pZCAwPT09cylyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGw9ZSxzPXNldFRpbWVvdXQodyx0KSxmP20oZSk6dX0oYyk7aWYocClyZXR1cm4gcz1zZXRUaW1lb3V0KHcsdCksbShjKX1yZXR1cm4gdm9pZCAwPT09cyYmKHM9c2V0VGltZW91dCh3LHQpKSx1fXJldHVybiB0PV8odCl8fDAsZyhyKSYmKGY9ISFyLmxlYWRpbmcsYT0ocD0ibWF4V2FpdCJpbiByKT9oKF8oci5tYXhXYWl0KXx8MCx0KTphLGQ9InRyYWlsaW5nImluIHI/ISFyLnRyYWlsaW5nOmQpLGsuY2FuY2VsPWZ1bmN0aW9uKCl7dm9pZCAwIT09cyYmY2xlYXJUaW1lb3V0KHMpLGw9MCxvPWM9aT1zPXZvaWQgMH0say5mbHVzaD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1zP3U6eCh2KCkpfSxrfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuISFlJiYoIm9iamVjdCI9PXR8fCJmdW5jdGlvbiI9PXQpfWZ1bmN0aW9uIF8oZSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlO2lmKGZ1bmN0aW9uKGUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgZXx8ZnVuY3Rpb24oZSl7cmV0dXJuISFlJiYib2JqZWN0Ij09dHlwZW9mIGV9KGUpJiZkLmNhbGwoZSk9PW99KGUpKXJldHVybiByO2lmKGcoZSkpe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiBlLnZhbHVlT2Y/ZS52YWx1ZU9mKCk6ZTtlPWcodCk/dCsiIjp0fWlmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gMD09PWU/ZTorZTtlPWUucmVwbGFjZShpLCIiKTt2YXIgbj11LnRlc3QoZSk7cmV0dXJuIG58fHMudGVzdChlKT9jKGUuc2xpY2UoMiksbj8yOjgpOmEudGVzdChlKT9yOitlfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7dmFyIG89ITAsaT0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKG4pO3JldHVybiBnKHIpJiYobz0ibGVhZGluZyJpbiByPyEhci5sZWFkaW5nOm8saT0idHJhaWxpbmciaW4gcj8hIXIudHJhaWxpbmc6aSksbShlLHQse2xlYWRpbmc6byxtYXhXYWl0OnQsdHJhaWxpbmc6aX0pfX0pLmNhbGwodCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4peyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMubmV4dXNXZWJTb2NrZXQ9dCx0aGlzLm9uRXJyb3I9bn1yZXR1cm4gZS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3BpbmdUZXN0VGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9waW5nKCksZS5fcG9uZ1Rlc3RUaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2Uub25FcnJvcigpfSksci5QT05HX1RJTUVPVVQpfSksci5QSU5HX1RJTUVPVVQpfSxlLnByb3RvdHlwZS5hY2s9ZnVuY3Rpb24oKXt0aGlzLl9wb25nVGVzdFRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fcG9uZ1Rlc3RUaW1lcil9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fc3RvcFBpbmdQb25nKCksdGhpcy5zdGFydCgpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5fc3RvcFBpbmdQb25nKCksdGhpcy5uZXh1c1dlYlNvY2tldD1udWxsLHRoaXMub25FcnJvcj1udWxsfSxlLnByb3RvdHlwZS5fc3RvcFBpbmdQb25nPWZ1bmN0aW9uKCl7dGhpcy5fcGluZ1Rlc3RUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX3BpbmdUZXN0VGltZXIpLHRoaXMuX3BvbmdUZXN0VGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9wb25nVGVzdFRpbWVyKX0sZS5wcm90b3R5cGUuX3Bpbmc9ZnVuY3Rpb24oKXt2YXIgZT0obmV3IERhdGUpLmdldFRpbWUoKSx0PXtldmVudE5hbWU6Im54LlBpbmciLGV2ZW50R3VpZDplLnRvU3RyaW5nKCksZXZlbnREYXRhOntzZW5kVGltZTplLGVuZHBvaW50OnRoaXMubmV4dXNXZWJTb2NrZXQuZW5kcG9pbnR9fTt0aGlzLm5leHVzV2ViU29ja2V0LnB1Ymxpc2godCl9LGV9KCl9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLm5leHVzV2ViU29ja2V0PXQsdGhpcy5faW5pdE9ubGluZU9mZmxpbmVMaXN0ZW5lcnMoKX1yZXR1cm4gZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuX3RlYXJkb3duT25saW5lT2ZmbGluZUxpc3RlbmVycygpLHRoaXMubmV4dXNXZWJTb2NrZXQ9bnVsbH0sZS5wcm90b3R5cGUuX2luaXRPbmxpbmVPZmZsaW5lTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dGhpcy5fY2FtZU9ubGluZUJvdW5kPXRoaXMuX2NhbWVPbmxpbmUuYmluZCh0aGlzKSx0aGlzLl93ZW50T2ZmbGluZUJvdW5kPXRoaXMuX3dlbnRPZmZsaW5lLmJpbmQodGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fY2FtZU9ubGluZUJvdW5kKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsdGhpcy5fd2VudE9mZmxpbmVCb3VuZCl9LGUucHJvdG90eXBlLl90ZWFyZG93bk9ubGluZU9mZmxpbmVMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLl9jYW1lT25saW5lQm91bmQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvZmZsaW5lIix0aGlzLl93ZW50T2ZmbGluZUJvdW5kKX0sZS5wcm90b3R5cGUuX2NhbWVPbmxpbmU9ZnVuY3Rpb24oKXt0aGlzLm5leHVzV2ViU29ja2V0LnJlY29ubmVjdE5vdygpfSxlLnByb3RvdHlwZS5fd2VudE9mZmxpbmU9ZnVuY3Rpb24oKXt0aGlzLm5leHVzV2ViU29ja2V0LmRlc3Ryb3lXZWJTb2NrZXQoKX0sZX0oKX1dKX0sZS5leHBvcnRzPXQoKX0sNDczODk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxyKGUsdCl9LGZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcodCkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KToobi5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IG4pfSksaT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxpLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6dSgwKSx0aHJvdzp1KDEpLHJldHVybjp1KDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIHUoaSl7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBmdW5jdGlvbihpKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2E7KXRyeXtpZihuPTEsciYmKG89MiZpWzBdP3IucmV0dXJuOmlbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixpWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihpPVsyJmlbMF0sby52YWx1ZV0pLGlbMF0pe2Nhc2UgMDpjYXNlIDE6bz1pO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTppWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1pWzFdLGk9WzBdO2NvbnRpbnVlO2Nhc2UgNzppPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1pWzBdJiYyIT09aVswXSkpe2E9MDtjb250aW51ZX1pZigzPT09aVswXSYmKCFvfHxpWzFdPm9bMF0mJmlbMV08b1szXSkpe2EubGFiZWw9aVsxXTticmVha31pZig2PT09aVswXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1pO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goaSk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWk9dC5jYWxsKGUsYSl9Y2F0Y2goZSl7aT1bNixlXSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmlbMF0pdGhyb3cgaVsxXTtyZXR1cm57dmFsdWU6aVswXT9pWzFdOnZvaWQgMCxkb25lOiEwfX0oW2ksdV0pfX19LGE9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGgsbz1lLmxlbmd0aDtuPHI7bisrLG8rKyllW29dPXRbbl07cmV0dXJuIGV9LHU9T2JqZWN0LmNyZWF0ZSxzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHA9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsZD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGg9T2JqZWN0LmdldFByb3RvdHlwZU9mLHk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx2PU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsbT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQgaW4gZT9zKGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pOmVbdF09bn0sZz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0fHwodD17fSkpeS5jYWxsKHQsbikmJm0oZSxuLHRbbl0pO2lmKGQpZm9yKHZhciByPTAsbz1kKHQpO3I8by5sZW5ndGg7cisrKXYuY2FsbCh0LG49b1tyXSkmJm0oZSxuLHRbbl0pO3JldHVybiBlfSxfPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGMoZSxmKHQpKX0sYj1mdW5jdGlvbihlKXtyZXR1cm4gcyhlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sdz1mdW5jdGlvbihlLHQsbil7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdClmb3IodmFyIHI9ZnVuY3Rpb24ocil7eS5jYWxsKGUscil8fCJkZWZhdWx0Ij09PXJ8fHMoZSxyLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX0sZW51bWVyYWJsZTohKG49bCh0LHIpKXx8bi5lbnVtZXJhYmxlfSl9LG89MCxpPXAodCk7bzxpLmxlbmd0aDtvKyspcihpW29dKTtyZXR1cm4gZX0seD1mdW5jdGlvbihlKXtyZXR1cm4gdyhiKHMobnVsbCE9ZT91KGgoZSkpOnt9LCJkZWZhdWx0IixlJiZlLl9fZXNNb2R1bGUmJiJkZWZhdWx0ImluIGU/e2dldDpmdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9LGVudW1lcmFibGU6ITB9Ont2YWx1ZTplLGVudW1lcmFibGU6ITB9KSksZSl9LGs9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT1mdW5jdGlvbihlKXt0cnl7dShuLm5leHQoZSkpfWNhdGNoKGUpe28oZSl9fSxhPWZ1bmN0aW9uKGUpe3RyeXt1KG4udGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fSx1PWZ1bmN0aW9uKGUpe3JldHVybiBlLmRvbmU/cihlLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZS52YWx1ZSkudGhlbihpLGEpfTt1KChuPW4uYXBwbHkoZSx0KSkubmV4dCgpKX0pKX07Yih0KSxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KXMoZSxuLHtnZXQ6dFtuXSxlbnVtZXJhYmxlOiEwfSl9KHQse0VuaGFuY2VyQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sTWlkZGxld2FyZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LFNIT1VMRF9BVVRPQkFUQ0g6ZnVuY3Rpb24oKXtyZXR1cm4gUWV9LFRhc2tBYm9ydEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGplfSxhZGRMaXN0ZW5lcjpmdW5jdGlvbigpe3JldHVybiBXZX0sYXV0b0JhdGNoRW5oYW5jZXI6ZnVuY3Rpb24oKXtyZXR1cm4gWmV9LGNsZWFyQWxsTGlzdGVuZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIEhlfSxjb25maWd1cmVTdG9yZTpmdW5jdGlvbigpe3JldHVybiBxfSxjcmVhdGVBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gR30sY3JlYXRlQXN5bmNUaHVuazpmdW5jdGlvbigpe3JldHVybiBoZX0sY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sY3JlYXRlRW50aXR5QWRhcHRlcjpmdW5jdGlvbigpe3JldHVybiBzZX0sY3JlYXRlSW1tdXRhYmxlU3RhdGVJbnZhcmlhbnRNaWRkbGV3YXJlOmZ1bmN0aW9uKCl7cmV0dXJuIFV9LGNyZWF0ZUxpc3RlbmVyTWlkZGxld2FyZTpmdW5jdGlvbigpe3JldHVybiBxZX0sY3JlYXRlTmV4dFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIEUuZGVmYXVsdH0sY3JlYXRlUmVkdWNlcjpmdW5jdGlvbigpe3JldHVybiBlZX0sY3JlYXRlU2VsZWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gVC5jcmVhdGVTZWxlY3Rvcn0sY3JlYXRlU2VyaWFsaXphYmxlU3RhdGVJbnZhcmlhbnRNaWRkbGV3YXJlOmZ1bmN0aW9uKCl7cmV0dXJuICR9LGNyZWF0ZVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRlfSxjdXJyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIEUuY3VycmVudH0sZmluZE5vblNlcmlhbGl6YWJsZVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LGZyZWV6ZTpmdW5jdGlvbigpe3JldHVybiBFLmZyZWV6ZX0sZ2V0RGVmYXVsdE1pZGRsZXdhcmU6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sZ2V0VHlwZTpmdW5jdGlvbigpe3JldHVybiBYfSxpc0FjdGlvbjpmdW5jdGlvbigpe3JldHVybiBRfSxpc0FsbE9mOmZ1bmN0aW9uKCl7cmV0dXJuIGdlfSxpc0FueU9mOmZ1bmN0aW9uKCl7cmV0dXJuIG1lfSxpc0FzeW5jVGh1bmtBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gRWV9LGlzRHJhZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gRS5pc0RyYWZ0fSxpc0ZsdXhTdGFuZGFyZEFjdGlvbjpmdW5jdGlvbigpe3JldHVybiBZfSxpc0Z1bGZpbGxlZDpmdW5jdGlvbigpe3JldHVybiBTZX0saXNJbW11dGFibGVEZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHp9LGlzUGVuZGluZzpmdW5jdGlvbigpe3JldHVybiB3ZX0saXNQbGFpbjpmdW5jdGlvbigpe3JldHVybiBCfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIE19LGlzUmVqZWN0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4geGV9LGlzUmVqZWN0ZWRXaXRoVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4ga2V9LG1pbmlTZXJpYWxpemVFcnJvcjpmdW5jdGlvbigpe3JldHVybiBkZX0sbmFub2lkOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSxvcmlnaW5hbDpmdW5jdGlvbigpe3JldHVybiBFLm9yaWdpbmFsfSxwcmVwYXJlQXV0b0JhdGNoZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gWWV9LHJlbW92ZUxpc3RlbmVyOmZ1bmN0aW9uKCl7cmV0dXJuICRlfSx1bndyYXBSZXN1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4geWV9fSk7dmFyIFM9eChuKDY2MzEyKSk7dyh0LHgobigzNTI4MSkpKTt2YXIgRT14KG4oNjYzMTIpKSxUPXgobig0MjI3OSkpLEM9eChuKDY2MzEyKSksTz14KG4oNDIyNzkpKSxQPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciBuPU8uY3JlYXRlU2VsZWN0b3IuYXBwbHkodm9pZCAwLGUpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gbi5hcHBseSh2b2lkIDAsYShbKDAsQy5pc0RyYWZ0KShlKT8oMCxDLmN1cnJlbnQpKGUpOmVdLHQpKX19LEE9eChuKDM1MjgxKSksaj14KG4oMzUyODEpKSxSPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fP3dpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX186ZnVuY3Rpb24oKXtpZigwIT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGFyZ3VtZW50c1swXT9qLmNvbXBvc2U6ai5jb21wb3NlLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gTShlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiExO3ZhciB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtpZihudWxsPT09dClyZXR1cm4hMDtmb3IodmFyIG49dDtudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pOyluPU9iamVjdC5nZXRQcm90b3R5cGVPZihuKTtyZXR1cm4gdD09PW59InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fJiZ3aW5kb3c7dmFyIE49eChuKDU5NjgxKSksST14KG4oNjYzMTIpKSxGPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtmb3IodmFyIG49W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07dmFyIG89ZS5hcHBseSh0aGlzLG4pfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Yobyx0LnByb3RvdHlwZSksb31yZXR1cm4gbyh0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC5zcGVjaWVzLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUucHJvdG90eXBlLmNvbmNhdC5hcHBseSh0aGlzLHQpfSx0LnByb3RvdHlwZS5wcmVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3JldHVybiAxPT09ZS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZVswXSk/bmV3KHQuYmluZC5hcHBseSh0LGEoW3ZvaWQgMF0sZVswXS5jb25jYXQodGhpcykpKSk6bmV3KHQuYmluZC5hcHBseSh0LGEoW3ZvaWQgMF0sZS5jb25jYXQodGhpcykpKSl9LHR9KEFycmF5KSxEPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtmb3IodmFyIG49W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07dmFyIG89ZS5hcHBseSh0aGlzLG4pfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Yobyx0LnByb3RvdHlwZSksb31yZXR1cm4gbyh0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC5zcGVjaWVzLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUucHJvdG90eXBlLmNvbmNhdC5hcHBseSh0aGlzLHQpfSx0LnByb3RvdHlwZS5wcmVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbl09YXJndW1lbnRzW25dO3JldHVybiAxPT09ZS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZVswXSk/bmV3KHQuYmluZC5hcHBseSh0LGEoW3ZvaWQgMF0sZVswXS5jb25jYXQodGhpcykpKSk6bmV3KHQuYmluZC5hcHBseSh0LGEoW3ZvaWQgMF0sZS5jb25jYXQodGhpcykpKSl9LHR9KEFycmF5KTtmdW5jdGlvbiBMKGUpe3JldHVybigwLEkuaXNEcmFmdGFibGUpKGUpPygwLEkuZGVmYXVsdCkoZSwoZnVuY3Rpb24oKXt9KSk6ZX1mdW5jdGlvbiB6KGUpe3JldHVybiJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09ZXx8T2JqZWN0LmlzRnJvemVuKGUpfWZ1bmN0aW9uIFUoZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9fX19ZnVuY3Rpb24gQihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gbnVsbD09ZXx8InN0cmluZyI9PT10fHwiYm9vbGVhbiI9PT10fHwibnVtYmVyIj09PXR8fEFycmF5LmlzQXJyYXkoZSl8fE0oZSl9ZnVuY3Rpb24gVyhlLHQsbixyLG8saSl7dmFyIGE7aWYodm9pZCAwPT09dCYmKHQ9IiIpLHZvaWQgMD09PW4mJihuPUIpLHZvaWQgMD09PW8mJihvPVtdKSwhbihlKSlyZXR1cm57a2V5UGF0aDp0fHwiPHJvb3Q+Iix2YWx1ZTplfTtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiExO2lmKG51bGw9PWk/dm9pZCAwOmkuaGFzKGUpKXJldHVybiExO2Zvcih2YXIgdT1udWxsIT1yP3IoZSk6T2JqZWN0LmVudHJpZXMoZSkscz1vLmxlbmd0aD4wLGM9ZnVuY3Rpb24oZSx1KXt2YXIgYz10P3QrIi4iK2U6ZTtyZXR1cm4gcyYmby5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFJlZ0V4cD9lLnRlc3QoYyk6Yz09PWV9KSk/ImNvbnRpbnVlIjpuKHUpPyJvYmplY3QiPT10eXBlb2YgdSYmKGE9Vyh1LGMsbixyLG8saSkpP3t2YWx1ZTphfTp2b2lkIDA6e3ZhbHVlOntrZXlQYXRoOmMsdmFsdWU6dX19fSxsPTAsZj11O2w8Zi5sZW5ndGg7bCsrKXt2YXIgcD1mW2xdLGQ9YyhwWzBdLHBbMV0pO2lmKCJvYmplY3QiPT10eXBlb2YgZClyZXR1cm4gZC52YWx1ZX1yZXR1cm4gaSYmSChlKSYmaS5hZGQoZSksITF9ZnVuY3Rpb24gSChlKXtpZighT2JqZWN0LmlzRnJvemVuKGUpKXJldHVybiExO2Zvcih2YXIgdD0wLG49T2JqZWN0LnZhbHVlcyhlKTt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtpZigib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPT1yJiYhSChyKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiAkKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfX19fWZ1bmN0aW9uIFYoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciB0PWUudGh1bmssbj12b2lkIDA9PT10fHx0LHI9bmV3IEY7cmV0dXJuIG4mJnIucHVzaCgiYm9vbGVhbiI9PXR5cGVvZiBuP04uZGVmYXVsdDpOLmRlZmF1bHQud2l0aEV4dHJhQXJndW1lbnQobi5leHRyYUFyZ3VtZW50KSkscn1mdW5jdGlvbiBxKGUpe3ZhciB0LG49ZnVuY3Rpb24oZSl7cmV0dXJuIFYoZSl9LHI9ZXx8e30sbz1yLnJlZHVjZXIsaT12b2lkIDA9PT1vP3ZvaWQgMDpvLHU9ci5taWRkbGV3YXJlLHM9dm9pZCAwPT09dT9uKCk6dSxjPXIuZGV2VG9vbHMsbD12b2lkIDA9PT1jfHxjLGY9ci5wcmVsb2FkZWRTdGF0ZSxwPXZvaWQgMD09PWY/dm9pZCAwOmYsZD1yLmVuaGFuY2VycyxoPXZvaWQgMD09PWQ/dm9pZCAwOmQ7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpdD1pO2Vsc2V7aWYoIU0oaSkpdGhyb3cgbmV3IEVycm9yKCcicmVkdWNlciIgaXMgYSByZXF1aXJlZCBhcmd1bWVudCwgYW5kIG11c3QgYmUgYSBmdW5jdGlvbiBvciBhbiBvYmplY3Qgb2YgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBjb21iaW5lUmVkdWNlcnMnKTt0PSgwLEEuY29tYmluZVJlZHVjZXJzKShpKX12YXIgeT1zOyJmdW5jdGlvbiI9PXR5cGVvZiB5JiYoeT15KG4pKTt2YXIgdj1BLmFwcGx5TWlkZGxld2FyZS5hcHBseSh2b2lkIDAseSksbT1BLmNvbXBvc2U7bCYmKG09UihnKHt0cmFjZTohMX0sIm9iamVjdCI9PXR5cGVvZiBsJiZsKSkpO3ZhciBfPW5ldyBEKHYpLGI9XztBcnJheS5pc0FycmF5KGgpP2I9YShbdl0saCk6ImZ1bmN0aW9uIj09dHlwZW9mIGgmJihiPWgoXykpO3ZhciB3PW0uYXBwbHkodm9pZCAwLGIpO3JldHVybigwLEEuY3JlYXRlU3RvcmUpKHQscCx3KX1mdW5jdGlvbiBHKGUsdCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgbj1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3JdPWFyZ3VtZW50c1tyXTtpZih0KXt2YXIgbz10LmFwcGx5KHZvaWQgMCxuKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoInByZXBhcmVBY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0Iik7cmV0dXJuIGcoZyh7dHlwZTplLHBheWxvYWQ6by5wYXlsb2FkfSwibWV0YSJpbiBvJiZ7bWV0YTpvLm1ldGF9KSwiZXJyb3IiaW4gbyYme2Vycm9yOm8uZXJyb3J9KX1yZXR1cm57dHlwZTplLHBheWxvYWQ6blswXX19cmV0dXJuIG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIitlfSxuLnR5cGU9ZSxuLm1hdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1lfSxufWZ1bmN0aW9uIFEoZSl7cmV0dXJuIE0oZSkmJiJ0eXBlImluIGV9ZnVuY3Rpb24gWShlKXtyZXR1cm4gUShlKSYmInN0cmluZyI9PXR5cGVvZiBlLnR5cGUmJk9iamVjdC5rZXlzKGUpLmV2ZXJ5KEspfWZ1bmN0aW9uIEsoZSl7cmV0dXJuWyJ0eXBlIiwicGF5bG9hZCIsImVycm9yIiwibWV0YSJdLmluZGV4T2YoZSk+LTF9ZnVuY3Rpb24gWChlKXtyZXR1cm4iIitlfXZhciBKPXgobig2NjMxMikpO2Z1bmN0aW9uIFooZSl7dmFyIHQsbj17fSxyPVtdLG89e2FkZENhc2U6ZnVuY3Rpb24oZSx0KXt2YXIgcj0ic3RyaW5nIj09dHlwZW9mIGU/ZTplLnR5cGU7aWYociBpbiBuKXRocm93IG5ldyBFcnJvcigiYWRkQ2FzZSBjYW5ub3QgYmUgY2FsbGVkIHdpdGggdHdvIHJlZHVjZXJzIGZvciB0aGUgc2FtZSBhY3Rpb24gdHlwZSIpO3JldHVybiBuW3JdPXQsb30sYWRkTWF0Y2hlcjpmdW5jdGlvbihlLHQpe3JldHVybiByLnB1c2goe21hdGNoZXI6ZSxyZWR1Y2VyOnR9KSxvfSxhZGREZWZhdWx0Q2FzZTpmdW5jdGlvbihlKXtyZXR1cm4gdD1lLG99fTtyZXR1cm4gZShvKSxbbixyLHRdfWZ1bmN0aW9uIGVlKGUsdCxuLHIpe3ZvaWQgMD09PW4mJihuPVtdKTt2YXIgbyxpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P1oodCk6W3QsbixyXSx1PWlbMF0scz1pWzFdLGM9aVsyXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlvPWZ1bmN0aW9uKCl7cmV0dXJuIEwoZSgpKX07ZWxzZXt2YXIgbD1MKGUpO289ZnVuY3Rpb24oKXtyZXR1cm4gbH19ZnVuY3Rpb24gZihlLHQpe3ZvaWQgMD09PWUmJihlPW8oKSk7dmFyIG49YShbdVt0LnR5cGVdXSxzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuKDAsZS5tYXRjaGVyKSh0KX0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZXJ9KSkpO3JldHVybiAwPT09bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiEhZX0pKS5sZW5ndGgmJihuPVtjXSksbi5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7aWYobil7dmFyIHI7aWYoKDAsSi5pc0RyYWZ0KShlKSlyZXR1cm4gdm9pZCAwPT09KHI9bihlLHQpKT9lOnI7aWYoKDAsSi5pc0RyYWZ0YWJsZSkoZSkpcmV0dXJuKDAsSi5kZWZhdWx0KShlLChmdW5jdGlvbihlKXtyZXR1cm4gbihlLHQpfSkpO2lmKHZvaWQgMD09PShyPW4oZSx0KSkpe2lmKG51bGw9PT1lKXJldHVybiBlO3Rocm93IEVycm9yKCJBIGNhc2UgcmVkdWNlciBvbiBhIG5vbi1kcmFmdGFibGUgdmFsdWUgbXVzdCBub3QgcmV0dXJuIHVuZGVmaW5lZCIpfXJldHVybiByfXJldHVybiBlfSksZSl9cmV0dXJuIGYuZ2V0SW5pdGlhbFN0YXRlPW8sZn1mdW5jdGlvbiB0ZShlKXt2YXIgdD1lLm5hbWU7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJgbmFtZWAgaXMgYSByZXF1aXJlZCBvcHRpb24gZm9yIGNyZWF0ZVNsaWNlIik7dmFyIG4scj0iZnVuY3Rpb24iPT10eXBlb2YgZS5pbml0aWFsU3RhdGU/ZS5pbml0aWFsU3RhdGU6TChlLmluaXRpYWxTdGF0ZSksbz1lLnJlZHVjZXJzfHx7fSxpPU9iamVjdC5rZXlzKG8pLGE9e30sdT17fSxzPXt9O2Z1bmN0aW9uIGMoKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZS5leHRyYVJlZHVjZXJzP1ooZS5leHRyYVJlZHVjZXJzKTpbZS5leHRyYVJlZHVjZXJzXSxuPXRbMF0sbz10WzFdLGk9dm9pZCAwPT09bz9bXTpvLGE9dFsyXSxzPXZvaWQgMD09PWE/dm9pZCAwOmEsYz1nKGcoe30sdm9pZCAwPT09bj97fTpuKSx1KTtyZXR1cm4gZWUociwoZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGMpZS5hZGRDYXNlKHQsY1t0XSk7Zm9yKHZhciBuPTAscj1pO248ci5sZW5ndGg7bisrKXt2YXIgbz1yW25dO2UuYWRkTWF0Y2hlcihvLm1hdGNoZXIsby5yZWR1Y2VyKX1zJiZlLmFkZERlZmF1bHRDYXNlKHMpfSkpfXJldHVybiBpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuLHIsaT1vW2VdLGM9dCsiLyIrZTsicmVkdWNlciJpbiBpPyhuPWkucmVkdWNlcixyPWkucHJlcGFyZSk6bj1pLGFbZV09bix1W2NdPW4sc1tlXT1yP0coYyxyKTpHKGMpfSkpLHtuYW1lOnQscmVkdWNlcjpmdW5jdGlvbihlLHQpe3JldHVybiBufHwobj1jKCkpLG4oZSx0KX0sYWN0aW9uczpzLGNhc2VSZWR1Y2VyczphLGdldEluaXRpYWxTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBufHwobj1jKCkpLG4uZ2V0SW5pdGlhbFN0YXRlKCl9fX12YXIgbmU9eChuKDY2MzEyKSk7ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIHI9ZnVuY3Rpb24odCl7WShuKT9lKG4ucGF5bG9hZCx0KTplKG4sdCl9O3JldHVybigwLG5lLmlzRHJhZnQpKHQpPyhyKHQpLHQpOigwLG5lLmRlZmF1bHQpKHQscil9fWZ1bmN0aW9uIG9lKGUsdCl7cmV0dXJuIHQoZSl9ZnVuY3Rpb24gaWUoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fChlPU9iamVjdC52YWx1ZXMoZSkpLGV9ZnVuY3Rpb24gYWUoZSx0LG4pe2Zvcih2YXIgcj1bXSxvPVtdLGk9MCxhPWU9aWUoZSk7aTxhLmxlbmd0aDtpKyspe3ZhciB1PWFbaV0scz1vZSh1LHQpO3MgaW4gbi5lbnRpdGllcz9vLnB1c2goe2lkOnMsY2hhbmdlczp1fSk6ci5wdXNoKHUpfXJldHVybltyLG9dfWZ1bmN0aW9uIHVlKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcj1vZSh0LGUpO3IgaW4gbi5lbnRpdGllc3x8KG4uaWRzLnB1c2gociksbi5lbnRpdGllc1tyXT10KX1mdW5jdGlvbiBuKGUsbil7Zm9yKHZhciByPTAsbz1lPWllKGUpO3I8by5sZW5ndGg7cisrKXQob1tyXSxuKX1mdW5jdGlvbiByKHQsbil7dmFyIHI9b2UodCxlKTtyIGluIG4uZW50aXRpZXN8fG4uaWRzLnB1c2gociksbi5lbnRpdGllc1tyXT10fWZ1bmN0aW9uIG8oZSx0KXt2YXIgbj0hMTtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UgaW4gdC5lbnRpdGllcyYmKGRlbGV0ZSB0LmVudGl0aWVzW2VdLG49ITApfSkpLG4mJih0Lmlkcz10Lmlkcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluIHQuZW50aXRpZXN9KSkpfWZ1bmN0aW9uIGkodCxuKXt2YXIgcj17fSxvPXt9O2lmKHQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5pZCBpbiBuLmVudGl0aWVzJiYob1tlLmlkXT17aWQ6ZS5pZCxjaGFuZ2VzOmcoZyh7fSxvW2UuaWRdP29bZS5pZF0uY2hhbmdlczpudWxsKSxlLmNoYW5nZXMpfSl9KSksKHQ9T2JqZWN0LnZhbHVlcyhvKSkubGVuZ3RoPjApe3ZhciBpPXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3ZhciBvPU9iamVjdC5hc3NpZ24oe30sci5lbnRpdGllc1tuLmlkXSxuLmNoYW5nZXMpLGk9b2UobyxlKSxhPWkhPT1uLmlkO3JldHVybiBhJiYodFtuLmlkXT1pLGRlbGV0ZSByLmVudGl0aWVzW24uaWRdKSxyLmVudGl0aWVzW2ldPW8sYX0ocix0LG4pfSkpLmxlbmd0aD4wO2kmJihuLmlkcz1PYmplY3Qua2V5cyhuLmVudGl0aWVzKSl9fWZ1bmN0aW9uIGEodCxyKXt2YXIgbz1hZSh0LGUsciksYT1vWzBdO2kob1sxXSxyKSxuKGEscil9cmV0dXJue3JlbW92ZUFsbDoodT1mdW5jdGlvbihlKXtPYmplY3QuYXNzaWduKGUse2lkczpbXSxlbnRpdGllczp7fX0pfSxzPXJlKChmdW5jdGlvbihlLHQpe3JldHVybiB1KHQpfSkpLGZ1bmN0aW9uKGUpe3JldHVybiBzKGUsdm9pZCAwKX0pLGFkZE9uZTpyZSh0KSxhZGRNYW55OnJlKG4pLHNldE9uZTpyZShyKSxzZXRNYW55OnJlKChmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLG89ZT1pZShlKTtuPG8ubGVuZ3RoO24rKylyKG9bbl0sdCl9KSksc2V0QWxsOnJlKChmdW5jdGlvbihlLHQpe2U9aWUoZSksdC5pZHM9W10sdC5lbnRpdGllcz17fSxuKGUsdCl9KSksdXBkYXRlT25lOnJlKChmdW5jdGlvbihlLHQpe3JldHVybiBpKFtlXSx0KX0pKSx1cGRhdGVNYW55OnJlKGkpLHVwc2VydE9uZTpyZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gYShbZV0sdCl9KSksdXBzZXJ0TWFueTpyZShhKSxyZW1vdmVPbmU6cmUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8oW2VdLHQpfSkpLHJlbW92ZU1hbnk6cmUobyl9O3ZhciB1LHN9ZnVuY3Rpb24gc2UoZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciB0PWcoe3NvcnRDb21wYXJlcjohMSxzZWxlY3RJZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pZH19LGUpLG49dC5zZWxlY3RJZCxyPXQuc29ydENvbXBhcmVyLG89e2dldEluaXRpYWxTdGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLE9iamVjdC5hc3NpZ24oe2lkczpbXSxlbnRpdGllczp7fX0sZSl9fSxpPXtnZXRTZWxlY3RvcnM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWRzfSxuPWZ1bmN0aW9uKGUpe3JldHVybiBlLmVudGl0aWVzfSxyPVAodCxuLChmdW5jdGlvbihlLHQpe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9KSksbz1mdW5jdGlvbihlLHQpe3JldHVybiB0fSxpPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdF19LGE9UCh0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGh9KSk7aWYoIWUpcmV0dXJue3NlbGVjdElkczp0LHNlbGVjdEVudGl0aWVzOm4sc2VsZWN0QWxsOnIsc2VsZWN0VG90YWw6YSxzZWxlY3RCeUlkOlAobixvLGkpfTt2YXIgdT1QKGUsbik7cmV0dXJue3NlbGVjdElkczpQKGUsdCksc2VsZWN0RW50aXRpZXM6dSxzZWxlY3RBbGw6UChlLHIpLHNlbGVjdFRvdGFsOlAoZSxhKSxzZWxlY3RCeUlkOlAodSxvLGkpfX19LGE9cj9mdW5jdGlvbihlLHQpe3ZhciBuPXVlKGUpO2Z1bmN0aW9uIHIodCxuKXt2YXIgcj0odD1pZSh0KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hKG9lKHQsZSlpbiBuLmVudGl0aWVzKX0pKTswIT09ci5sZW5ndGgmJnUocixuKX1mdW5jdGlvbiBvKGUsdCl7MCE9PShlPWllKGUpKS5sZW5ndGgmJnUoZSx0KX1mdW5jdGlvbiBpKHQsbil7Zm9yKHZhciByPSExLG89MCxpPXQ7bzxpLmxlbmd0aDtvKyspe3ZhciBhPWlbb10sdT1uLmVudGl0aWVzW2EuaWRdO2lmKHUpe3I9ITAsT2JqZWN0LmFzc2lnbih1LGEuY2hhbmdlcyk7dmFyIGM9ZSh1KTthLmlkIT09YyYmKGRlbGV0ZSBuLmVudGl0aWVzW2EuaWRdLG4uZW50aXRpZXNbY109dSl9fXImJnMobil9ZnVuY3Rpb24gYSh0LG4pe3ZhciBvPWFlKHQsZSxuKSxhPW9bMF07aShvWzFdLG4pLHIoYSxuKX1mdW5jdGlvbiB1KHQsbil7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtuLmVudGl0aWVzW2UodCldPXR9KSkscyhuKX1mdW5jdGlvbiBzKG4pe3ZhciByPU9iamVjdC52YWx1ZXMobi5lbnRpdGllcyk7ci5zb3J0KHQpO3ZhciBvPXIubWFwKGUpOyhmdW5jdGlvbihlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aCYmbjx0Lmxlbmd0aDtuKyspaWYoZVtuXSE9PXRbbl0pcmV0dXJuITE7cmV0dXJuITB9KShuLmlkcyxvKXx8KG4uaWRzPW8pfXJldHVybntyZW1vdmVPbmU6bi5yZW1vdmVPbmUscmVtb3ZlTWFueTpuLnJlbW92ZU1hbnkscmVtb3ZlQWxsOm4ucmVtb3ZlQWxsLGFkZE9uZTpyZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gcihbZV0sdCl9KSksdXBkYXRlT25lOnJlKChmdW5jdGlvbihlLHQpe3JldHVybiBpKFtlXSx0KX0pKSx1cHNlcnRPbmU6cmUoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEoW2VdLHQpfSkpLHNldE9uZTpyZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhbZV0sdCl9KSksc2V0TWFueTpyZShvKSxzZXRBbGw6cmUoKGZ1bmN0aW9uKGUsdCl7ZT1pZShlKSx0LmVudGl0aWVzPXt9LHQuaWRzPVtdLHIoZSx0KX0pKSxhZGRNYW55OnJlKHIpLHVwZGF0ZU1hbnk6cmUoaSksdXBzZXJ0TWFueTpyZShhKX19KG4scik6dWUobik7cmV0dXJuIGcoZyhnKHtzZWxlY3RJZDpuLHNvcnRDb21wYXJlcjpyfSxvKSxpKSxhKX12YXIgY2U9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9MjEpO2Zvcih2YXIgdD0iIixuPWU7bi0tOyl0Kz0iTW9kdWxlU3ltYmhhc093blByLTAxMjM0NTY3ODlBQkNERUZHSE5SVmZnY3RpVXZ6X0txWVRKa0x4cFpYSWpRVyJbNjQqTWF0aC5yYW5kb20oKXwwXTtyZXR1cm4gdH0sbGU9WyJuYW1lIiwibWVzc2FnZSIsInN0YWNrIiwiY29kZSJdLGZlPWZ1bmN0aW9uKGUsdCl7dGhpcy5wYXlsb2FkPWUsdGhpcy5tZXRhPXR9LHBlPWZ1bmN0aW9uKGUsdCl7dGhpcy5wYXlsb2FkPWUsdGhpcy5tZXRhPXR9LGRlPWZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUpe2Zvcih2YXIgdD17fSxuPTAscj1sZTtuPHIubGVuZ3RoO24rKyl7dmFyIG89cltuXTsic3RyaW5nIj09dHlwZW9mIGVbb10mJih0W29dPWVbb10pfXJldHVybiB0fXJldHVybnttZXNzYWdlOlN0cmluZyhlKX19LGhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dmFyIHI9RyhlKyIvZnVsZmlsbGVkIiwoZnVuY3Rpb24oZSx0LG4scil7cmV0dXJue3BheWxvYWQ6ZSxtZXRhOl8oZyh7fSxyfHx7fSkse2FyZzpuLHJlcXVlc3RJZDp0LHJlcXVlc3RTdGF0dXM6ImZ1bGZpbGxlZCJ9KX19KSksbz1HKGUrIi9wZW5kaW5nIiwoZnVuY3Rpb24oZSx0LG4pe3JldHVybntwYXlsb2FkOnZvaWQgMCxtZXRhOl8oZyh7fSxufHx7fSkse2FyZzp0LHJlcXVlc3RJZDplLHJlcXVlc3RTdGF0dXM6InBlbmRpbmcifSl9fSkpLGE9RyhlKyIvcmVqZWN0ZWQiLChmdW5jdGlvbihlLHQscixvLGkpe3JldHVybntwYXlsb2FkOm8sZXJyb3I6KG4mJm4uc2VyaWFsaXplRXJyb3J8fGRlKShlfHwiUmVqZWN0ZWQiKSxtZXRhOl8oZyh7fSxpfHx7fSkse2FyZzpyLHJlcXVlc3RJZDp0LHJlamVjdGVkV2l0aFZhbHVlOiEhbyxyZXF1ZXN0U3RhdHVzOiJyZWplY3RlZCIsYWJvcnRlZDoiQWJvcnRFcnJvciI9PT0obnVsbD09ZT92b2lkIDA6ZS5uYW1lKSxjb25kaXRpb246IkNvbmRpdGlvbkVycm9yIj09PShudWxsPT1lP3ZvaWQgMDplLm5hbWUpfSl9fSkpLHU9InVuZGVmaW5lZCIhPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI/QWJvcnRDb250cm9sbGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuc2lnbmFsPXthYm9ydGVkOiExLGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGRpc3BhdGNoRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sb25hYm9ydDpmdW5jdGlvbigpe30scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbigpe30scmVhc29uOnZvaWQgMCx0aHJvd0lmQWJvcnRlZDpmdW5jdGlvbigpe319fXJldHVybiBlLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe30sZX0oKTtyZXR1cm4gT2JqZWN0LmFzc2lnbigoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHMsYyxsKXt2YXIgZixwPShudWxsPT1uP3ZvaWQgMDpuLmlkR2VuZXJhdG9yKT9uLmlkR2VuZXJhdG9yKGUpOmNlKCksZD1uZXcgdTtmdW5jdGlvbiBoKGUpe2Y9ZSxkLmFib3J0KCl9dmFyIHk9ZnVuY3Rpb24oKXtyZXR1cm4gayh0aGlzLG51bGwsKGZ1bmN0aW9uKCl7dmFyIHUseSx2LG0sZyxfO3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKGkpe3N3aXRjaChpLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkudHJ5cy5wdXNoKFswLDQsLDVdKSxudWxsPT09KGI9bT1udWxsPT0odT1udWxsPT1uP3ZvaWQgMDpuLmNvbmRpdGlvbik/dm9pZCAwOnUuY2FsbChuLGUse2dldFN0YXRlOmMsZXh0cmE6bH0pKXx8Im9iamVjdCIhPXR5cGVvZiBifHwiZnVuY3Rpb24iIT10eXBlb2YgYi50aGVuP1szLDJdOls0LG1dO2Nhc2UgMTptPWkuc2VudCgpLGkubGFiZWw9MjtjYXNlIDI6aWYoITE9PT1tfHxkLnNpZ25hbC5hYm9ydGVkKXRocm93e25hbWU6IkNvbmRpdGlvbkVycm9yIixtZXNzYWdlOiJBYm9ydGVkIGR1ZSB0byBjb25kaXRpb24gY2FsbGJhY2sgcmV0dXJuaW5nIGZhbHNlLiJ9O3JldHVybiBnPW5ldyBQcm9taXNlKChmdW5jdGlvbihlLHQpe3JldHVybiBkLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKGZ1bmN0aW9uKCl7cmV0dXJuIHQoe25hbWU6IkFib3J0RXJyb3IiLG1lc3NhZ2U6Znx8IkFib3J0ZWQifSl9KSl9KSkscyhvKHAsZSxudWxsPT0oeT1udWxsPT1uP3ZvaWQgMDpuLmdldFBlbmRpbmdNZXRhKT92b2lkIDA6eS5jYWxsKG4se3JlcXVlc3RJZDpwLGFyZzplfSx7Z2V0U3RhdGU6YyxleHRyYTpsfSkpKSxbNCxQcm9taXNlLnJhY2UoW2csUHJvbWlzZS5yZXNvbHZlKHQoZSx7ZGlzcGF0Y2g6cyxnZXRTdGF0ZTpjLGV4dHJhOmwscmVxdWVzdElkOnAsc2lnbmFsOmQuc2lnbmFsLGFib3J0OmgscmVqZWN0V2l0aFZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBmZShlLHQpfSxmdWxmaWxsV2l0aFZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBwZShlLHQpfX0pKS50aGVuKChmdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgZmUpdGhyb3cgdDtyZXR1cm4gdCBpbnN0YW5jZW9mIHBlP3IodC5wYXlsb2FkLHAsZSx0Lm1ldGEpOnIodCxwLGUpfSkpXSldO2Nhc2UgMzpyZXR1cm4gdj1pLnNlbnQoKSxbMyw1XTtjYXNlIDQ6cmV0dXJuIF89aS5zZW50KCksdj1fIGluc3RhbmNlb2YgZmU/YShudWxsLHAsZSxfLnBheWxvYWQsXy5tZXRhKTphKF8scCxlKSxbMyw1XTtjYXNlIDU6cmV0dXJuIG4mJiFuLmRpc3BhdGNoQ29uZGl0aW9uUmVqZWN0aW9uJiZhLm1hdGNoKHYpJiZ2Lm1ldGEuY29uZGl0aW9ufHxzKHYpLFsyLHZdfXZhciBifSkpfSkpfSgpO3JldHVybiBPYmplY3QuYXNzaWduKHkse2Fib3J0OmgscmVxdWVzdElkOnAsYXJnOmUsdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHkudGhlbih5ZSl9fSl9fSkse3BlbmRpbmc6byxyZWplY3RlZDphLGZ1bGZpbGxlZDpyLHR5cGVQcmVmaXg6ZX0pfXJldHVybiBlLndpdGhUeXBlcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfSgpO2Z1bmN0aW9uIHllKGUpe2lmKGUubWV0YSYmZS5tZXRhLnJlamVjdGVkV2l0aFZhbHVlKXRocm93IGUucGF5bG9hZDtpZihlLmVycm9yKXRocm93IGUuZXJyb3I7cmV0dXJuIGUucGF5bG9hZH12YXIgdmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4obj1lKSYmImZ1bmN0aW9uIj09dHlwZW9mIG4ubWF0Y2g/ZS5tYXRjaCh0KTplKHQpO3ZhciBufTtmdW5jdGlvbiBtZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIHZlKGUsdCl9KSl9fWZ1bmN0aW9uIGdlKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIHZlKGUsdCl9KSl9fWZ1bmN0aW9uIF9lKGUsdCl7aWYoIWV8fCFlLm1ldGEpcmV0dXJuITE7dmFyIG49InN0cmluZyI9PXR5cGVvZiBlLm1ldGEucmVxdWVzdElkLHI9dC5pbmRleE9mKGUubWV0YS5yZXF1ZXN0U3RhdHVzKT4tMTtyZXR1cm4gbiYmcn1mdW5jdGlvbiBiZShlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZVswXSYmInBlbmRpbmciaW4gZVswXSYmImZ1bGZpbGxlZCJpbiBlWzBdJiYicmVqZWN0ZWQiaW4gZVswXX1mdW5jdGlvbiB3ZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gMD09PWUubGVuZ3RoP2Z1bmN0aW9uKGUpe3JldHVybiBfZShlLFsicGVuZGluZyJdKX06YmUoZSk/ZnVuY3Rpb24odCl7dmFyIG49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBlbmRpbmd9KSk7cmV0dXJuIG1lLmFwcGx5KHZvaWQgMCxuKSh0KX06d2UoKShlWzBdKX1mdW5jdGlvbiB4ZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gMD09PWUubGVuZ3RoP2Z1bmN0aW9uKGUpe3JldHVybiBfZShlLFsicmVqZWN0ZWQiXSl9OmJlKGUpP2Z1bmN0aW9uKHQpe3ZhciBuPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWplY3RlZH0pKTtyZXR1cm4gbWUuYXBwbHkodm9pZCAwLG4pKHQpfTp4ZSgpKGVbMF0pfWZ1bmN0aW9uIGtlKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLm1ldGEmJmUubWV0YS5yZWplY3RlZFdpdGhWYWx1ZX07cmV0dXJuIDA9PT1lLmxlbmd0aHx8YmUoZSk/ZnVuY3Rpb24odCl7cmV0dXJuIGdlKHhlLmFwcGx5KHZvaWQgMCxlKSxuKSh0KX06a2UoKShlWzBdKX1mdW5jdGlvbiBTZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gMD09PWUubGVuZ3RoP2Z1bmN0aW9uKGUpe3JldHVybiBfZShlLFsiZnVsZmlsbGVkIl0pfTpiZShlKT9mdW5jdGlvbih0KXt2YXIgbj1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZnVsZmlsbGVkfSkpO3JldHVybiBtZS5hcHBseSh2b2lkIDAsbikodCl9OlNlKCkoZVswXSl9ZnVuY3Rpb24gRWUoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIDA9PT1lLmxlbmd0aD9mdW5jdGlvbihlKXtyZXR1cm4gX2UoZSxbInBlbmRpbmciLCJmdWxmaWxsZWQiLCJyZWplY3RlZCJdKX06YmUoZSk/ZnVuY3Rpb24odCl7Zm9yKHZhciBuPVtdLHI9MCxvPWU7cjxvLmxlbmd0aDtyKyspe3ZhciBpPW9bcl07bi5wdXNoKGkucGVuZGluZyxpLnJlamVjdGVkLGkuZnVsZmlsbGVkKX1yZXR1cm4gbWUuYXBwbHkodm9pZCAwLG4pKHQpfTpFZSgpKGVbMF0pfXZhciBUZT1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9LENlPWZ1bmN0aW9uKCl7fSxPZT1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1DZSksZS5jYXRjaCh0KSxlfSxQZT1mdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0Iix0LHtvbmNlOiEwfSksZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdCl9fSxBZT1mdW5jdGlvbihlLHQpe3ZhciBuPWUuc2lnbmFsO24uYWJvcnRlZHx8KCJyZWFzb24iaW4gbnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInJlYXNvbiIse2VudW1lcmFibGU6ITAsdmFsdWU6dCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxlLmFib3J0KHQpKX0samU9ZnVuY3Rpb24oZSl7dGhpcy5jb2RlPWUsdGhpcy5uYW1lPSJUYXNrQWJvcnRFcnJvciIsdGhpcy5tZXNzYWdlPSJ0YXNrIGNhbmNlbGxlZCAocmVhc29uOiAiK2UrIikifSxSZT1mdW5jdGlvbihlKXtpZihlLmFib3J0ZWQpdGhyb3cgbmV3IGplKGUucmVhc29uKX07ZnVuY3Rpb24gTWUoZSx0KXt2YXIgbj1DZTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gbyhuZXcgamUoZS5yZWFzb24pKX07ZS5hYm9ydGVkP2koKToobj1QZShlLGkpLHQuZmluYWxseSgoZnVuY3Rpb24oKXtyZXR1cm4gbigpfSkpLnRoZW4ocixvKSl9KSkuZmluYWxseSgoZnVuY3Rpb24oKXtuPUNlfSkpfXZhciBOZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIE9lKE1lKGUsdCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIFJlKGUpLHR9KSkpfX0sSWU9ZnVuY3Rpb24oZSl7dmFyIHQ9TmUoZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSkpKX19LEZlPU9iamVjdC5hc3NpZ24sRGU9e30sTGU9Imxpc3RlbmVyTWlkZGxld2FyZSIsemU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50eXBlLG49ZS5hY3Rpb25DcmVhdG9yLHI9ZS5tYXRjaGVyLG89ZS5wcmVkaWNhdGUsaT1lLmVmZmVjdDtpZih0KW89Ryh0KS5tYXRjaDtlbHNlIGlmKG4pdD1uLnR5cGUsbz1uLm1hdGNoO2Vsc2UgaWYocilvPXI7ZWxzZSBpZighbyl0aHJvdyBuZXcgRXJyb3IoIkNyZWF0aW5nIG9yIHJlbW92aW5nIGEgbGlzdGVuZXIgcmVxdWlyZXMgb25lIG9mIHRoZSBrbm93biBmaWVsZHMgZm9yIG1hdGNoaW5nIGFuIGFjdGlvbiIpO3JldHVybiBUZShpLCJvcHRpb25zLmxpc3RlbmVyIikse3ByZWRpY2F0ZTpvLHR5cGU6dCxlZmZlY3Q6aX19LFVlPWZ1bmN0aW9uKGUpe2UucGVuZGluZy5mb3JFYWNoKChmdW5jdGlvbihlKXtBZShlLCJsaXN0ZW5lci1jYW5jZWxsZWQiKX0pKX0sQmU9ZnVuY3Rpb24oZSx0LG4pe3RyeXtlKHQsbil9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSksMCl9fSxXZT1HKExlKyIvYWRkIiksSGU9RyhMZSsiL3JlbW92ZUFsbCIpLCRlPUcoTGUrIi9yZW1vdmUiKSxWZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtjb25zb2xlLmVycm9yLmFwcGx5KGNvbnNvbGUsYShbTGUrIi9lcnJvciJdLGUpKX07ZnVuY3Rpb24gcWUoZSl7dmFyIHQ9dGhpczt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49bmV3IE1hcCxyPWUuZXh0cmEsbz1lLm9uRXJyb3IsYT12b2lkIDA9PT1vP1ZlOm87VGUoYSwib25FcnJvciIpO3ZhciB1PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLHI9QXJyYXkuZnJvbShuLnZhbHVlcygpKTt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XTtpZihlKG8pKXJldHVybiBvfX0scz1mdW5jdGlvbihlKXt2YXIgdD11KChmdW5jdGlvbih0KXtyZXR1cm4gdC5lZmZlY3Q9PT1lLmVmZmVjdH0pKTtyZXR1cm4gdHx8KHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9emUoZSksbj10LnR5cGUscj10LnByZWRpY2F0ZSxvPXQuZWZmZWN0O3JldHVybntpZDpjZSgpLGVmZmVjdDpvLHR5cGU6bixwcmVkaWNhdGU6cixwZW5kaW5nOm5ldyBTZXQsdW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlVuc3Vic2NyaWJlIG5vdCBpbml0aWFsaXplZCIpfX19KGUpKSxmdW5jdGlvbihlKXtyZXR1cm4gZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3JldHVybiBuLmRlbGV0ZShlLmlkKX0sbi5zZXQoZS5pZCxlKSxmdW5jdGlvbih0KXtlLnVuc3Vic2NyaWJlKCksKG51bGw9PXQ/dm9pZCAwOnQuY2FuY2VsQWN0aXZlKSYmVWUoZSl9fSh0KX0sYz1mdW5jdGlvbihlKXt2YXIgdD16ZShlKSxuPXQudHlwZSxyPXQuZWZmZWN0LG89dC5wcmVkaWNhdGUsaT11KChmdW5jdGlvbihlKXtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBuP2UudHlwZT09PW46ZS5wcmVkaWNhdGU9PT1vKSYmZS5lZmZlY3Q9PT1yfSkpO3JldHVybiBpJiYoaS51bnN1YnNjcmliZSgpLGUuY2FuY2VsQWN0aXZlJiZVZShpKSksISFpfSxsPWZ1bmN0aW9uKGUsbyx1LGMpe3JldHVybiBrKHQsbnVsbCwoZnVuY3Rpb24oKXt2YXIgdCxsLGY7cmV0dXJuIGkodGhpcywoZnVuY3Rpb24ocCl7c3dpdGNoKHAubGFiZWwpe2Nhc2UgMDp0PW5ldyBBYm9ydENvbnRyb2xsZXIsbD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBPZShmdW5jdGlvbihuLHIpe3JldHVybiBrKHZvaWQgMCxudWxsLChmdW5jdGlvbigpe3ZhciBvLGEsdSxzO3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKGkpe3N3aXRjaChpLmxhYmVsKXtjYXNlIDA6UmUodCksbz1mdW5jdGlvbigpe30sYT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxyKXt2YXIgaT1lKHtwcmVkaWNhdGU6bixlZmZlY3Q6ZnVuY3Rpb24oZSxuKXtuLnVuc3Vic2NyaWJlKCksdChbZSxuLmdldFN0YXRlKCksbi5nZXRPcmlnaW5hbFN0YXRlKCldKX19KTtvPWZ1bmN0aW9uKCl7aSgpLHIoKX19KSksdT1bYV0sbnVsbCE9ciYmdS5wdXNoKG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtyZXR1cm4gc2V0VGltZW91dChlLHIsbnVsbCl9KSkpLGkubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGkudHJ5cy5wdXNoKFsxLCwzLDRdKSxbNCxNZSh0LFByb21pc2UucmFjZSh1KSldO2Nhc2UgMjpyZXR1cm4gcz1pLnNlbnQoKSxSZSh0KSxbMixzXTtjYXNlIDM6cmV0dXJuIG8oKSxbN107Y2FzZSA0OnJldHVyblsyXX19KSl9KSl9KG4scikpfX0ocyx0LnNpZ25hbCkscC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gcC50cnlzLnB1c2goWzEsMyw0LDVdKSxlLnBlbmRpbmcuYWRkKHQpLFs0LFByb21pc2UucmVzb2x2ZShlLmVmZmVjdChvLEZlKHt9LHUse2dldE9yaWdpbmFsU3RhdGU6Yyxjb25kaXRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbChlLHQpLnRoZW4oQm9vbGVhbil9LHRha2U6bCxkZWxheTpJZSh0LnNpZ25hbCkscGF1c2U6TmUodC5zaWduYWwpLGV4dHJhOnIsc2lnbmFsOnQuc2lnbmFsLGZvcms6KGQ9dC5zaWduYWwsZnVuY3Rpb24oZSl7VGUoZSwidGFza0V4ZWN1dG9yIik7dmFyIHQsbj1uZXcgQWJvcnRDb250cm9sbGVyO3Q9bixQZShkLChmdW5jdGlvbigpe3JldHVybiBBZSh0LGQucmVhc29uKX0pKTt2YXIgcixvLGE9KHI9ZnVuY3Rpb24oKXtyZXR1cm4gayh2b2lkIDAsbnVsbCwoZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gaSh0aGlzLChmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiBSZShkKSxSZShuLnNpZ25hbCksWzQsZSh7cGF1c2U6TmUobi5zaWduYWwpLGRlbGF5OkllKG4uc2lnbmFsKSxzaWduYWw6bi5zaWduYWx9KV07Y2FzZSAxOnJldHVybiB0PXIuc2VudCgpLFJlKG4uc2lnbmFsKSxbMix0XX19KSl9KSl9LG89ZnVuY3Rpb24oKXtyZXR1cm4gQWUobiwidGFzay1jb21wbGV0ZWQiKX0sayh2b2lkIDAsbnVsbCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gaSh0aGlzLChmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwzLDQsNV0pLFs0LFByb21pc2UucmVzb2x2ZSgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFs0LHIoKV07Y2FzZSAyOnJldHVyblsyLHtzdGF0dXM6Im9rIix2YWx1ZTp0LnNlbnQoKX1dO2Nhc2UgMzpyZXR1cm5bMix7c3RhdHVzOihlPXQuc2VudCgpKWluc3RhbmNlb2YgamU/ImNhbmNlbGxlZCI6InJlamVjdGVkIixlcnJvcjplfV07Y2FzZSA0OnJldHVybiBudWxsPT1vfHxvKCksWzddO2Nhc2UgNTpyZXR1cm5bMl19fSkpfSkpKTtyZXR1cm57cmVzdWx0Ok5lKGQpKGEpLGNhbmNlbDpmdW5jdGlvbigpe0FlKG4sInRhc2stY2FuY2VsbGVkIil9fX0pLHVuc3Vic2NyaWJlOmUudW5zdWJzY3JpYmUsc3Vic2NyaWJlOmZ1bmN0aW9uKCl7bi5zZXQoZS5pZCxlKX0sY2FuY2VsQWN0aXZlTGlzdGVuZXJzOmZ1bmN0aW9uKCl7ZS5wZW5kaW5nLmZvckVhY2goKGZ1bmN0aW9uKGUsbixyKXtlIT09dCYmKEFlKGUsImxpc3RlbmVyLWNhbmNlbGxlZCIpLHIuZGVsZXRlKGUpKX0pKX19KSkpXTtjYXNlIDI6cmV0dXJuIHAuc2VudCgpLFszLDVdO2Nhc2UgMzpyZXR1cm4oZj1wLnNlbnQoKSlpbnN0YW5jZW9mIGplfHxCZShhLGYse3JhaXNlZEJ5OiJlZmZlY3QifSksWzMsNV07Y2FzZSA0OnJldHVybiBBZSh0LCJsaXN0ZW5lci1jb21wbGV0ZWQiKSxlLnBlbmRpbmcuZGVsZXRlKHQpLFs3XTtjYXNlIDU6cmV0dXJuWzJdfXZhciBkfSkpfSkpfSxmPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2UuZm9yRWFjaChVZSksZS5jbGVhcigpfX0obik7cmV0dXJue21pZGRsZXdhcmU6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtpZighUShyKSlyZXR1cm4gdChyKTtpZihXZS5tYXRjaChyKSlyZXR1cm4gcyhyLnBheWxvYWQpO2lmKCFIZS5tYXRjaChyKSl7aWYoJGUubWF0Y2gocikpcmV0dXJuIGMoci5wYXlsb2FkKTt2YXIgbyxpPWUuZ2V0U3RhdGUoKSx1PWZ1bmN0aW9uKCl7aWYoaT09PURlKXRocm93IG5ldyBFcnJvcihMZSsiOiBnZXRPcmlnaW5hbFN0YXRlIGNhbiBvbmx5IGJlIGNhbGxlZCBzeW5jaHJvbm91c2x5Iik7cmV0dXJuIGl9O3RyeXtpZihvPXQociksbi5zaXplPjApZm9yKHZhciBwPWUuZ2V0U3RhdGUoKSxkPUFycmF5LmZyb20obi52YWx1ZXMoKSksaD0wLHk9ZDtoPHkubGVuZ3RoO2grKyl7dmFyIHY9eVtoXSxtPSExO3RyeXttPXYucHJlZGljYXRlKHIscCxpKX1jYXRjaChlKXttPSExLEJlKGEsZSx7cmFpc2VkQnk6InByZWRpY2F0ZSJ9KX1tJiZsKHYscixlLHUpfX1maW5hbGx5e2k9RGV9cmV0dXJuIG99ZigpfX19LHN0YXJ0TGlzdGVuaW5nOnMsc3RvcExpc3RlbmluZzpjLGNsZWFyTGlzdGVuZXJzOmZ9fXZhciBHZSxRZT0iUlRLX2F1dG9CYXRjaCIsWWU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJue3BheWxvYWQ6ZSxtZXRhOih0PXt9LHRbUWVdPSEwLHQpfX19LEtlPSJmdW5jdGlvbiI9PXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz9xdWV1ZU1pY3JvdGFzay5iaW5kKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1uLmc/bi5nOmdsb2JhbFRoaXMpOmZ1bmN0aW9uKGUpe3JldHVybihHZXx8KEdlPVByb21pc2UucmVzb2x2ZSgpKSkudGhlbihlKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgZX0pLDApfSkpfSxYZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LGUpfX0sSmU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZTpYZSgxMCksWmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt0eXBlOiJyYWYifSksZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bcl09YXJndW1lbnRzW3JdO3ZhciBvPXQuYXBwbHkodm9pZCAwLG4pLGk9ITAsYT0hMSx1PSExLHM9bmV3IFNldCxjPSJ0aWNrIj09PWUudHlwZT9LZToicmFmIj09PWUudHlwZT9KZToiY2FsbGJhY2siPT09ZS50eXBlP2UucXVldWVOb3RpZmljYXRpb246WGUoZS50aW1lb3V0KSxsPWZ1bmN0aW9uKCl7dT0hMSxhJiYoYT0hMSxzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSkpfTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxvLHtzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7dmFyIHQ9by5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7cmV0dXJuIGkmJmUoKX0pKTtyZXR1cm4gcy5hZGQoZSksZnVuY3Rpb24oKXt0KCkscy5kZWxldGUoZSl9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdDt0cnl7cmV0dXJuIGk9IShudWxsPT0odD1udWxsPT1lP3ZvaWQgMDplLm1ldGEpP3ZvaWQgMDp0W1FlXSksKGE9IWkpJiYodXx8KHU9ITAsYyhsKSkpLG8uZGlzcGF0Y2goZSl9ZmluYWxseXtpPSEwfX19KX19fTsoMCxTLmVuYWJsZUVTNSkoKX0sNzIwNDc6KGUsdCxuKT0+e3ZhciByPW4oOTkzNTMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixvKXt2YXIgaSxhPXR8fHt9O2Z1bmN0aW9uIHUoZSl7byhlfHxuZXcgRXJyb3IoIkFib3J0ZWQiKSl9ZnVuY3Rpb24gcyhlLHQpe2UuYmFpbD91KGUpOmkucmV0cnkoZSk/YS5vblJldHJ5JiZhLm9uUmV0cnkoZSx0KTpvKGkubWFpbkVycm9yKCkpfSJyYW5kb21pemUiaW4gYXx8KGEucmFuZG9taXplPSEwKSwoaT1yLm9wZXJhdGlvbihhKSkuYXR0ZW1wdCgoZnVuY3Rpb24odCl7dmFyIHI7dHJ5e3I9ZSh1LHQpfWNhdGNoKGUpe3JldHVybiB2b2lkIHMoZSx0KX1Qcm9taXNlLnJlc29sdmUocikudGhlbihuKS5jYXRjaCgoZnVuY3Rpb24oZSl7cyhlLHQpfSkpfSkpfSkpfX0sMTk2NjI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDYwNjE0KSxvPW4oNjYzMzApLGk9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXJldHVybiBlO3Rocm93IGkobyhlKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw5NjA3NzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNjA2MTQpLG89U3RyaW5nLGk9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigib2JqZWN0Ij09dHlwZW9mIGV8fHIoZSkpcmV0dXJuIGU7dGhyb3cgaSgiQ2FuJ3Qgc2V0ICIrbyhlKSsiIGFzIGEgcHJvdG90eXBlIil9fSwyNTc4NzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDc5NzYpLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHIodCxlKSlyZXR1cm4gZTt0aHJvdyBvKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfX0sMTk2NzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDcwMTExKSxvPVN0cmluZyxpPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYocihlKSlyZXR1cm4gZTt0aHJvdyBpKG8oZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw0MTMxODooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDU2NTYpLG89big1MTQwMCksaT1uKDI2MjQ0KSxhPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4sYSl7dmFyIHUscz1yKHQpLGM9aShzKSxsPW8oYSxjKTtpZihlJiZuIT1uKXtmb3IoO2M+bDspaWYoKHU9c1tsKytdKSE9dSlyZXR1cm4hMH1lbHNlIGZvcig7Yz5sO2wrKylpZigoZXx8bCBpbiBzKSYmc1tsXT09PW4pcmV0dXJuIGV8fGx8fDA7cmV0dXJuIWUmJi0xfX07ZS5leHBvcnRzPXtpbmNsdWRlczphKCEwKSxpbmRleE9mOmEoITEpfX0sODM2NTg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE5NzgxKSxvPW4oNDMxNTcpLGk9VHlwZUVycm9yLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix1PXImJiFmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXRoaXMpcmV0dXJuITA7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5sZW5ndGg9MX1jYXRjaChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCk7ZS5leHBvcnRzPXU/ZnVuY3Rpb24oZSx0KXtpZihvKGUpJiYhYShlLCJsZW5ndGgiKS53cml0YWJsZSl0aHJvdyBpKCJDYW5ub3Qgc2V0IHJlYWQgb25seSAubGVuZ3RoIik7cmV0dXJuIGUubGVuZ3RoPXR9OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubGVuZ3RoPXR9fSw1MDIwNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMik7ZS5leHBvcnRzPXIoW10uc2xpY2UpfSw4NDMyNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMiksbz1yKHt9LnRvU3RyaW5nKSxpPXIoIiIuc2xpY2UpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShvKGUpLDgsLTEpfX0sNzA2NDg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUxNjk0KSxvPW4oNjA2MTQpLGk9big4NDMyNiksYT1uKDUxMTIpKCJ0b1N0cmluZ1RhZyIpLHU9T2JqZWN0LHM9IkFyZ3VtZW50cyI9PT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7ZS5leHBvcnRzPXI/aTpmdW5jdGlvbihlKXt2YXIgdCxuLHI7cmV0dXJuIHZvaWQgMD09PWU/IlVuZGVmaW5lZCI6bnVsbD09PWU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChlKXt9fSh0PXUoZSksYSkpP246cz9pKHQpOiJPYmplY3QiPT09KHI9aSh0KSkmJm8odC5jYWxsZWUpPyJBcmd1bWVudHMiOnJ9fSw5OTkyMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oOTI1OTcpLG89big1Mzg4NyksaT1uKDMxMjM2KSxhPW4oMzA3MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHU9byh0KSxzPWEuZixjPWkuZixsPTA7bDx1Lmxlbmd0aDtsKyspe3ZhciBmPXVbbF07cihlLGYpfHxuJiZyKG4sZil8fHMoZSxmLGModCxmKSl9fX0sNjg4ODA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE5NzgxKSxvPW4oMzA3MCksaT1uKDc5MTE0KTtlLmV4cG9ydHM9cj9mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8uZihlLHQsaSgxLG4pKX06ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlW3RdPW4sZX19LDc5MTE0OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sODYxMzU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDM0OTQ4KSxvPW4oMzA3MCksaT1uKDc5MTE0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPXIodCk7YSBpbiBlP28uZihlLGEsaSgwLG4pKTplW2FdPW59fSw5ODA1MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNjA2MTQpLG89bigzMDcwKSxpPW4oNTYzMzkpLGE9bigxMzA3Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHUpe3V8fCh1PXt9KTt2YXIgcz11LmVudW1lcmFibGUsYz12b2lkIDAhPT11Lm5hbWU/dS5uYW1lOnQ7aWYocihuKSYmaShuLGMsdSksdS5nbG9iYWwpcz9lW3RdPW46YSh0LG4pO2Vsc2V7dHJ5e3UudW5zYWZlP2VbdF0mJihzPSEwKTpkZWxldGUgZVt0XX1jYXRjaChlKXt9cz9lW3RdPW46by5mKGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohdS5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IXUubm9uV3JpdGFibGV9KX1yZXR1cm4gZX19LDEzMDcyOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzg1NCksbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e28ocixlLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe3JbZV09dH1yZXR1cm4gdH19LDE5NzgxOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0NzI5Myk7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0MTU0OmU9PnsidXNlIHN0cmljdCI7dmFyIHQ9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsLG49dm9pZCAwPT09dCYmdm9pZCAwIT09dDtlLmV4cG9ydHM9e2FsbDp0LElTX0hUTUxEREE6bn19LDgwMzE3OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzg1NCksbz1uKDcwMTExKSxpPXIuZG9jdW1lbnQsYT1vKGkpJiZvKGkuY3JlYXRlRWxlbWVudCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhP2kuY3JlYXRlRWxlbWVudChlKTp7fX19LDcyMDc6ZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGU+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyB0KCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gZX19LDkzNjc4OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtJbmRleFNpemVFcnJvcjp7czoiSU5ERVhfU0laRV9FUlIiLGM6MSxtOjF9LERPTVN0cmluZ1NpemVFcnJvcjp7czoiRE9NU1RSSU5HX1NJWkVfRVJSIixjOjIsbTowfSxIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6e3M6IkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsYzozLG06MX0sV3JvbmdEb2N1bWVudEVycm9yOntzOiJXUk9OR19ET0NVTUVOVF9FUlIiLGM6NCxtOjF9LEludmFsaWRDaGFyYWN0ZXJFcnJvcjp7czoiSU5WQUxJRF9DSEFSQUNURVJfRVJSIixjOjUsbToxfSxOb0RhdGFBbGxvd2VkRXJyb3I6e3M6Ik5PX0RBVEFfQUxMT1dFRF9FUlIiLGM6NixtOjB9LE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOntzOiJOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLGM6NyxtOjF9LE5vdEZvdW5kRXJyb3I6e3M6Ik5PVF9GT1VORF9FUlIiLGM6OCxtOjF9LE5vdFN1cHBvcnRlZEVycm9yOntzOiJOT1RfU1VQUE9SVEVEX0VSUiIsYzo5LG06MX0sSW5Vc2VBdHRyaWJ1dGVFcnJvcjp7czoiSU5VU0VfQVRUUklCVVRFX0VSUiIsYzoxMCxtOjF9LEludmFsaWRTdGF0ZUVycm9yOntzOiJJTlZBTElEX1NUQVRFX0VSUiIsYzoxMSxtOjF9LFN5bnRheEVycm9yOntzOiJTWU5UQVhfRVJSIixjOjEyLG06MX0sSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOntzOiJJTlZBTElEX01PRElGSUNBVElPTl9FUlIiLGM6MTMsbToxfSxOYW1lc3BhY2VFcnJvcjp7czoiTkFNRVNQQUNFX0VSUiIsYzoxNCxtOjF9LEludmFsaWRBY2Nlc3NFcnJvcjp7czoiSU5WQUxJRF9BQ0NFU1NfRVJSIixjOjE1LG06MX0sVmFsaWRhdGlvbkVycm9yOntzOiJWQUxJREFUSU9OX0VSUiIsYzoxNixtOjB9LFR5cGVNaXNtYXRjaEVycm9yOntzOiJUWVBFX01JU01BVENIX0VSUiIsYzoxNyxtOjF9LFNlY3VyaXR5RXJyb3I6e3M6IlNFQ1VSSVRZX0VSUiIsYzoxOCxtOjF9LE5ldHdvcmtFcnJvcjp7czoiTkVUV09SS19FUlIiLGM6MTksbToxfSxBYm9ydEVycm9yOntzOiJBQk9SVF9FUlIiLGM6MjAsbToxfSxVUkxNaXNtYXRjaEVycm9yOntzOiJVUkxfTUlTTUFUQ0hfRVJSIixjOjIxLG06MX0sUXVvdGFFeGNlZWRlZEVycm9yOntzOiJRVU9UQV9FWENFRURFRF9FUlIiLGM6MjIsbToxfSxUaW1lb3V0RXJyb3I6e3M6IlRJTUVPVVRfRVJSIixjOjIzLG06MX0sSW52YWxpZE5vZGVUeXBlRXJyb3I6e3M6IklOVkFMSURfTk9ERV9UWVBFX0VSUiIsYzoyNCxtOjF9LERhdGFDbG9uZUVycm9yOntzOiJEQVRBX0NMT05FX0VSUiIsYzoyNSxtOjF9fX0sNzg3MTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oODM4MjMpLG89bigzNTI2OCk7ZS5leHBvcnRzPSFyJiYhbyYmIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJiJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnR9LDg5MzYzOmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBCdW4mJkJ1biYmInN0cmluZyI9PXR5cGVvZiBCdW4udmVyc2lvbn0sODM4MjM6ZT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBEZW5vJiZEZW5vJiYib2JqZWN0Ij09dHlwZW9mIERlbm8udmVyc2lvbn0sNjgzMzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oODgxMTMpO2UuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChyKX0sMzUyNjg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3ODU0KSxvPW4oODQzMjYpO2UuZXhwb3J0cz0icHJvY2VzcyI9PT1vKHIucHJvY2Vzcyl9LDg4MTEzOmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZTdHJpbmcobmF2aWdhdG9yLnVzZXJBZ2VudCl8fCIifSw3MzkyOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHIsbyxpPW4oMTc4NTQpLGE9big4ODExMyksdT1pLnByb2Nlc3Mscz1pLkRlbm8sYz11JiZ1LnZlcnNpb25zfHxzJiZzLnZlcnNpb24sbD1jJiZjLnY4O2wmJihvPShyPWwuc3BsaXQoIi4iKSlbMF0+MCYmclswXTw0PzE6KyhyWzBdK3JbMV0pKSwhbyYmYSYmKCEocj1hLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8clsxXT49NzQpJiYocj1hLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYobz0rclsxXSksZS5leHBvcnRzPW99LDgwNzQ4OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDExMDYwOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzAyKSxvPUVycm9yLGk9cigiIi5yZXBsYWNlKSxhPVN0cmluZyhvKCJ6eGNhc2QiKS5zdGFjayksdT0vXG5ccyphdCBbXjpdKjpbXlxuXSovLHM9dS50ZXN0KGEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHMmJiJzdHJpbmciPT10eXBlb2YgZSYmIW8ucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDt0LS07KWU9aShlLHUsIiIpO3JldHVybiBlfX0sMjI5MTQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQ3MjkzKSxvPW4oNzkxMTQpO2UuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXt2YXIgZT1FcnJvcigiYSIpO3JldHVybiEoInN0YWNrImluIGUpfHwoT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN0YWNrIixvKDEsNykpLDchPT1lLnN0YWNrKX0pKX0sODIxMDk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3ODU0KSxvPW4oMzEyMzYpLmYsaT1uKDY4ODgwKSxhPW4oOTgwNTIpLHU9bigxMzA3Mikscz1uKDk5OTIwKSxjPW4oNTQ3MDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuLGwsZixwLGQsaD1lLnRhcmdldCx5PWUuZ2xvYmFsLHY9ZS5zdGF0O2lmKG49eT9yOnY/cltoXXx8dShoLHt9KToocltoXXx8e30pLnByb3RvdHlwZSlmb3IobCBpbiB0KXtpZihwPXRbbF0sZj1lLmRvbnRDYWxsR2V0U2V0PyhkPW8obixsKSkmJmQudmFsdWU6bltsXSwhYyh5P2w6aCsodj8iLiI6IiMiKStsLGUuZm9yY2VkKSYmdm9pZCAwIT09Zil7aWYodHlwZW9mIHA9PXR5cGVvZiBmKWNvbnRpbnVlO3MocCxmKX0oZS5zaGFtfHxmJiZmLnNoYW0pJiZpKHAsInNoYW0iLCEwKSxhKG4sbCxwLGUpfX19LDQ3MjkzOmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hIWUoKX1jYXRjaChlKXtyZXR1cm4hMH19fSwyMjEwNDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMzQzNzQpLG89RnVuY3Rpb24ucHJvdG90eXBlLGk9by5hcHBseSxhPW8uY2FsbDtlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwocj9hLmJpbmQoaSk6ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShpLGFyZ3VtZW50cyl9KX0sNDk5NzQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIxNDcwKSxvPW4oMTk2NjIpLGk9bigzNDM3NCksYT1yKHIuYmluZCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8oZSksdm9pZCAwPT09dD9lOmk/YShlLHQpOmZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX19LDM0Mzc0OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0NzI5Myk7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGV8fGUuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpfSw0NjkxNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMzQzNzQpLG89RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7ZS5leHBvcnRzPXI/by5iaW5kKG8pOmZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkobyxhcmd1bWVudHMpfX0sNzY1MzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE5NzgxKSxvPW4oOTI1OTcpLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9ciYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix1PW8oaSwibmFtZSIpLHM9dSYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSxjPXUmJighcnx8ciYmYShpLCJuYW1lIikuY29uZmlndXJhYmxlKTtlLmV4cG9ydHM9e0VYSVNUUzp1LFBST1BFUjpzLENPTkZJR1VSQUJMRTpjfX0sNzU2Njg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3MDIpLG89bigxOTY2Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt0cnl7cmV0dXJuIHIobyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdClbbl0pKX1jYXRjaChlKXt9fX0sMjE0NzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDg0MzI2KSxvPW4oMTcwMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJGdW5jdGlvbiI9PT1yKGUpKXJldHVybiBvKGUpfX0sMTcwMjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMzQzNzQpLG89RnVuY3Rpb24ucHJvdG90eXBlLGk9by5jYWxsLGE9ciYmby5iaW5kLmJpbmQoaSxpKTtlLmV4cG9ydHM9cj9hOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpLmFwcGx5KGUsYXJndW1lbnRzKX19fSwzNTAwNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTc4NTQpLG89big2MDYxNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj8obj1yW2VdLG8obik/bjp2b2lkIDApOnJbZV0mJnJbZV1bdF07dmFyIG59fSw3MTI0NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNzA2NDgpLG89big1ODE3MyksaT1uKDY4NTU0KSxhPW4oOTc0OTcpLHU9big1MTEyKSgiaXRlcmF0b3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIWkoZSkpcmV0dXJuIG8oZSx1KXx8byhlLCJAQGl0ZXJhdG9yIil8fGFbcihlKV19fSwxODU1NDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDY5MTYpLG89bigxOTY2MiksaT1uKDE5NjcwKSxhPW4oNjYzMzApLHU9big3MTI0Nikscz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aDwyP3UoZSk6dDtpZihvKG4pKXJldHVybiBpKHIobixlKSk7dGhyb3cgcyhhKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1ODE3MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTk2NjIpLG89big2ODU1NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZVt0XTtyZXR1cm4gbyhuKT92b2lkIDA6cihuKX19LDE3ODU0OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuTWF0aD09PU1hdGgmJmV9O2UuZXhwb3J0cz1yKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fHIoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fHIoIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8cigib2JqZWN0Ij09dHlwZW9mIG4uZyYmbi5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8dGhpc3x8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sOTI1OTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3MDIpLG89big0NzkwOCksaT1yKHt9Lmhhc093blByb3BlcnR5KTtlLmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShvKGUpLHQpfX0sMzUwMTplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17fX0sNjA0OTA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDM1MDA1KTtlLmV4cG9ydHM9cigiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKX0sNjQ2NjQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE5NzgxKSxvPW4oNDcyOTMpLGk9big4MDMxNyk7ZS5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShpKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LDY4MzYxOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzAyKSxvPW4oNDcyOTMpLGk9big4NDMyNiksYT1PYmplY3QsdT1yKCIiLnNwbGl0KTtlLmV4cG9ydHM9bygoZnVuY3Rpb24oKXtyZXR1cm4hYSgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKGUpe3JldHVybiJTdHJpbmciPT09aShlKT91KGUsIiIpOmEoZSl9OmF9LDc5NTg3OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big2MDYxNCksbz1uKDcwMTExKSxpPW4oMjc2NzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGEsdTtyZXR1cm4gaSYmcihhPXQuY29uc3RydWN0b3IpJiZhIT09biYmbyh1PWEucHJvdG90eXBlKSYmdSE9PW4ucHJvdG90eXBlJiZpKGUsdSksZX19LDQyNzg4OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzAyKSxvPW4oNjA2MTQpLGk9big1NDY1KSxhPXIoRnVuY3Rpb24udG9TdHJpbmcpO28oaS5pbnNwZWN0U291cmNlKXx8KGkuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYShlKX0pLGUuZXhwb3J0cz1pLmluc3BlY3RTb3VyY2V9LDI5OTA5OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHIsbyxpLGE9big5NDgxMSksdT1uKDE3ODU0KSxzPW4oNzAxMTEpLGM9big2ODg4MCksbD1uKDkyNTk3KSxmPW4oNTQ2NSkscD1uKDYyMDApLGQ9bigzNTAxKSxoPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIseT11LlR5cGVFcnJvcix2PXUuV2Vha01hcDtpZihhfHxmLnN0YXRlKXt2YXIgbT1mLnN0YXRlfHwoZi5zdGF0ZT1uZXcgdik7bS5nZXQ9bS5nZXQsbS5oYXM9bS5oYXMsbS5zZXQ9bS5zZXQscj1mdW5jdGlvbihlLHQpe2lmKG0uaGFzKGUpKXRocm93IHkoaCk7cmV0dXJuIHQuZmFjYWRlPWUsbS5zZXQoZSx0KSx0fSxvPWZ1bmN0aW9uKGUpe3JldHVybiBtLmdldChlKXx8e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIG0uaGFzKGUpfX1lbHNle3ZhciBnPXAoInN0YXRlIik7ZFtnXT0hMCxyPWZ1bmN0aW9uKGUsdCl7aWYobChlLGcpKXRocm93IHkoaCk7cmV0dXJuIHQuZmFjYWRlPWUsYyhlLGcsdCksdH0sbz1mdW5jdGlvbihlKXtyZXR1cm4gbChlLGcpP2VbZ106e319LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxnKX19ZS5leHBvcnRzPXtzZXQ6cixnZXQ6byxoYXM6aSxlbmZvcmNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpP28oZSk6cihlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtpZighcyh0KXx8KG49byh0KSkudHlwZSE9PWUpdGhyb3cgeSgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK2UrIiByZXF1aXJlZCIpO3JldHVybiBufX19fSw5NzY1OTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNTExMiksbz1uKDk3NDk3KSxpPXIoIml0ZXJhdG9yIiksYT1BcnJheS5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lJiYoby5BcnJheT09PWV8fGFbaV09PT1lKX19LDQzMTU3OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big4NDMyNik7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJBcnJheSI9PT1yKGUpfX0sNjA2MTQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQxNTQpLG89ci5hbGw7ZS5leHBvcnRzPXIuSVNfSFRNTEREQT9mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZXx8ZT09PW99OmZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfX0sNDQxMTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMiksbz1uKDQ3MjkzKSxpPW4oNjA2MTQpLGE9big3MDY0OCksdT1uKDM1MDA1KSxzPW4oNDI3ODgpLGM9ZnVuY3Rpb24oKXt9LGw9W10sZj11KCJSZWZsZWN0IiwiY29uc3RydWN0IikscD0vXlxzKig/OmNsYXNzfGZ1bmN0aW9uKVxiLyxkPXIocC5leGVjKSxoPSFwLmV4ZWMoYykseT1mdW5jdGlvbihlKXtpZighaShlKSlyZXR1cm4hMTt0cnl7cmV0dXJuIGYoYyxsLGUpLCEwfWNhdGNoKGUpe3JldHVybiExfX0sdj1mdW5jdGlvbihlKXtpZighaShlKSlyZXR1cm4hMTtzd2l0Y2goYShlKSl7Y2FzZSJBc3luY0Z1bmN0aW9uIjpjYXNlIkdlbmVyYXRvckZ1bmN0aW9uIjpjYXNlIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iOnJldHVybiExfXRyeXtyZXR1cm4gaHx8ISFkKHAscyhlKSl9Y2F0Y2goZSl7cmV0dXJuITB9fTt2LnNoYW09ITAsZS5leHBvcnRzPSFmfHxvKChmdW5jdGlvbigpe3ZhciBlO3JldHVybiB5KHkuY2FsbCl8fCF5KE9iamVjdCl8fCF5KChmdW5jdGlvbigpe2U9ITB9KSl8fGV9KSk/djp5fSw1NDcwNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDcyOTMpLG89big2MDYxNCksaT0vI3xcLnByb3RvdHlwZVwuLyxhPWZ1bmN0aW9uKGUsdCl7dmFyIG49c1t1KGUpXTtyZXR1cm4gbj09PWx8fG4hPT1jJiYobyh0KT9yKHQpOiEhdCl9LHU9YS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKGksIi4iKS50b0xvd2VyQ2FzZSgpfSxzPWEuZGF0YT17fSxjPWEuTkFUSVZFPSJOIixsPWEuUE9MWUZJTEw9IlAiO2UuZXhwb3J0cz1hfSw2ODU1NDplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX19LDcwMTExOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big2MDYxNCksbz1uKDQxNTQpLGk9by5hbGw7ZS5leHBvcnRzPW8uSVNfSFRNTEREQT9mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGU/bnVsbCE9PWU6cihlKXx8ZT09PWl9OmZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZT9udWxsIT09ZTpyKGUpfX0sMzE5MTM6ZT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ITF9LDUyMTkwOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigzNTAwNSksbz1uKDYwNjE0KSxpPW4oNDc5NzYpLGE9big0MzMwNyksdT1PYmplY3Q7ZS5leHBvcnRzPWE/ZnVuY3Rpb24oZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBlfTpmdW5jdGlvbihlKXt2YXIgdD1yKCJTeW1ib2wiKTtyZXR1cm4gbyh0KSYmaSh0LnByb3RvdHlwZSx1KGUpKX19LDIwNDA4OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0OTk3NCksbz1uKDQ2OTE2KSxpPW4oMTk2NzApLGE9big2NjMzMCksdT1uKDk3NjU5KSxzPW4oMjYyNDQpLGM9big0Nzk3NiksbD1uKDE4NTU0KSxmPW4oNzEyNDYpLHA9big5OTIxMiksZD1UeXBlRXJyb3IsaD1mdW5jdGlvbihlLHQpe3RoaXMuc3RvcHBlZD1lLHRoaXMucmVzdWx0PXR9LHk9aC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgdixtLGcsXyxiLHcseCxrPW4mJm4udGhhdCxTPSEoIW58fCFuLkFTX0VOVFJJRVMpLEU9ISghbnx8IW4uSVNfUkVDT1JEKSxUPSEoIW58fCFuLklTX0lURVJBVE9SKSxDPSEoIW58fCFuLklOVEVSUlVQVEVEKSxPPXIodCxrKSxQPWZ1bmN0aW9uKGUpe3JldHVybiB2JiZwKHYsIm5vcm1hbCIsZSksbmV3IGgoITAsZSl9LEE9ZnVuY3Rpb24oZSl7cmV0dXJuIFM/KGkoZSksQz9PKGVbMF0sZVsxXSxQKTpPKGVbMF0sZVsxXSkpOkM/TyhlLFApOk8oZSl9O2lmKEUpdj1lLml0ZXJhdG9yO2Vsc2UgaWYoVCl2PWU7ZWxzZXtpZighKG09ZihlKSkpdGhyb3cgZChhKGUpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYodShtKSl7Zm9yKGc9MCxfPXMoZSk7Xz5nO2crKylpZigoYj1BKGVbZ10pKSYmYyh5LGIpKXJldHVybiBiO3JldHVybiBuZXcgaCghMSl9dj1sKGUsbSl9Zm9yKHc9RT9lLm5leHQ6di5uZXh0OyEoeD1vKHcsdikpLmRvbmU7KXt0cnl7Yj1BKHgudmFsdWUpfWNhdGNoKGUpe3AodiwidGhyb3ciLGUpfWlmKCJvYmplY3QiPT10eXBlb2YgYiYmYiYmYyh5LGIpKXJldHVybiBifXJldHVybiBuZXcgaCghMSl9fSw5OTIxMjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDY5MTYpLG89bigxOTY3MCksaT1uKDU4MTczKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhLHU7byhlKTt0cnl7aWYoIShhPWkoZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBuO3JldHVybiBufWE9cihhLGUpfWNhdGNoKGUpe3U9ITAsYT1lfWlmKCJ0aHJvdyI9PT10KXRocm93IG47aWYodSl0aHJvdyBhO3JldHVybiBvKGEpLG59fSw5NzQ5NzplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17fX0sMjYyNDQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3NDY2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZS5sZW5ndGgpfX0sNTYzMzk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3MDIpLG89big0NzI5MyksaT1uKDYwNjE0KSxhPW4oOTI1OTcpLHU9bigxOTc4MSkscz1uKDc2NTMwKS5DT05GSUdVUkFCTEUsYz1uKDQyNzg4KSxsPW4oMjk5MDkpLGY9bC5lbmZvcmNlLHA9bC5nZXQsZD1TdHJpbmcsaD1PYmplY3QuZGVmaW5lUHJvcGVydHkseT1yKCIiLnNsaWNlKSx2PXIoIiIucmVwbGFjZSksbT1yKFtdLmpvaW4pLGc9dSYmIW8oKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1oKChmdW5jdGlvbigpe30pLCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RofSkpLF89U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpLGI9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXsiU3ltYm9sKCI9PT15KGQodCksMCw3KSYmKHQ9IlsiK3YoZCh0KSwvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLG4mJm4uZ2V0dGVyJiYodD0iZ2V0ICIrdCksbiYmbi5zZXR0ZXImJih0PSJzZXQgIit0KSwoIWEoZSwibmFtZSIpfHxzJiZlLm5hbWUhPT10KSYmKHU/aChlLCJuYW1lIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KTplLm5hbWU9dCksZyYmbiYmYShuLCJhcml0eSIpJiZlLmxlbmd0aCE9PW4uYXJpdHkmJmgoZSwibGVuZ3RoIix7dmFsdWU6bi5hcml0eX0pO3RyeXtuJiZhKG4sImNvbnN0cnVjdG9yIikmJm4uY29uc3RydWN0b3I/dSYmaChlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOmUucHJvdG90eXBlJiYoZS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChlKXt9dmFyIHI9ZihlKTtyZXR1cm4gYShyLCJzb3VyY2UiKXx8KHIuc291cmNlPW0oXywic3RyaW5nIj09dHlwZW9mIHQ/dDoiIikpLGV9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1iKChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpJiZwKHRoaXMpLnNvdXJjZXx8Yyh0aGlzKX0pLCJ0b1N0cmluZyIpfSw3NTcwNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMiksbz1NYXAucHJvdG90eXBlO2UuZXhwb3J0cz17TWFwOk1hcCxzZXQ6cihvLnNldCksZ2V0OnIoby5nZXQpLGhhczpyKG8uaGFzKSxyZW1vdmU6cihvLmRlbGV0ZSkscHJvdG86b319LDc0NzU4OmU9PnsidXNlIHN0cmljdCI7dmFyIHQ9TWF0aC5jZWlsLG49TWF0aC5mbG9vcjtlLmV4cG9ydHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24oZSl7dmFyIHI9K2U7cmV0dXJuKHI+MD9uOnQpKHIpfX0sNTYyNzc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQxMzQwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09ZT9hcmd1bWVudHMubGVuZ3RoPDI/IiI6dDpyKGUpfX0sMzA3MDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTk3ODEpLG89big2NDY2NCksaT1uKDMzNTMpLGE9bigxOTY3MCksdT1uKDM0OTQ4KSxzPVR5cGVFcnJvcixjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZj0iZW51bWVyYWJsZSIscD0iY29uZmlndXJhYmxlIixkPSJ3cml0YWJsZSI7dC5mPXI/aT9mdW5jdGlvbihlLHQsbil7aWYoYShlKSx0PXUodCksYShuKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmInByb3RvdHlwZSI9PT10JiYidmFsdWUiaW4gbiYmZCBpbiBuJiYhbltkXSl7dmFyIHI9bChlLHQpO3ImJnJbZF0mJihlW3RdPW4udmFsdWUsbj17Y29uZmlndXJhYmxlOnAgaW4gbj9uW3BdOnJbcF0sZW51bWVyYWJsZTpmIGluIG4/bltmXTpyW2ZdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGMoZSx0LG4pfTpjOmZ1bmN0aW9uKGUsdCxuKXtpZihhKGUpLHQ9dSh0KSxhKG4pLG8pdHJ5e3JldHVybiBjKGUsdCxuKX1jYXRjaChlKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgcygiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKGVbdF09bi52YWx1ZSksZX19LDMxMjM2OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxOTc4MSksbz1uKDQ2OTE2KSxpPW4oNTUyOTYpLGE9big3OTExNCksdT1uKDQ1NjU2KSxzPW4oMzQ5NDgpLGM9big5MjU5NyksbD1uKDY0NjY0KSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dC5mPXI/ZjpmdW5jdGlvbihlLHQpe2lmKGU9dShlKSx0PXModCksbCl0cnl7cmV0dXJuIGYoZSx0KX1jYXRjaChlKXt9aWYoYyhlLHQpKXJldHVybiBhKCFvKGkuZixlLHQpLGVbdF0pfX0sODAwNjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTYzMjQpLG89big4MDc0OCkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTt0LmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKGUpe3JldHVybiByKGUsbyl9fSwyNTE4MTooZSx0KT0+eyJ1c2Ugc3RyaWN0Ijt0LmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sNDc5NzY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3MDIpO2UuZXhwb3J0cz1yKHt9LmlzUHJvdG90eXBlT2YpfSwxNjMyNDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMiksbz1uKDkyNTk3KSxpPW4oNDU2NTYpLGE9big0MTMxOCkuaW5kZXhPZix1PW4oMzUwMSkscz1yKFtdLnB1c2gpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuLHI9aShlKSxjPTAsbD1bXTtmb3IobiBpbiByKSFvKHUsbikmJm8ocixuKSYmcyhsLG4pO2Zvcig7dC5sZW5ndGg+YzspbyhyLG49dFtjKytdKSYmKH5hKGwsbil8fHMobCxuKSk7cmV0dXJuIGx9fSw1NTI5NjooZSx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1yJiYhbi5jYWxsKHsxOjJ9LDEpO3QuZj1vP2Z1bmN0aW9uKGUpe3ZhciB0PXIodGhpcyxlKTtyZXR1cm4hIXQmJnQuZW51bWVyYWJsZX06bn0sMjc2NzQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDc1NjY4KSxvPW4oMTk2NzApLGk9big5NjA3Nyk7ZS5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBlLHQ9ITEsbj17fTt0cnl7KGU9cihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkobixbXSksdD1uIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goZSl7fXJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBvKG4pLGkociksdD9lKG4scik6bi5fX3Byb3RvX189cixufX0oKTp2b2lkIDApfSw5MjE0MDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDY5MTYpLG89big2MDYxNCksaT1uKDcwMTExKSxhPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbix1O2lmKCJzdHJpbmciPT09dCYmbyhuPWUudG9TdHJpbmcpJiYhaSh1PXIobixlKSkpcmV0dXJuIHU7aWYobyhuPWUudmFsdWVPZikmJiFpKHU9cihuLGUpKSlyZXR1cm4gdTtpZigic3RyaW5nIiE9PXQmJm8obj1lLnRvU3RyaW5nKSYmIWkodT1yKG4sZSkpKXJldHVybiB1O3Rocm93IGEoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNTM4ODc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDM1MDA1KSxvPW4oMTcwMiksaT1uKDgwMDYpLGE9bigyNTE4MSksdT1uKDE5NjcwKSxzPW8oW10uY29uY2F0KTtlLmV4cG9ydHM9cigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oZSl7dmFyIHQ9aS5mKHUoZSkpLG49YS5mO3JldHVybiBuP3ModCxuKGUpKTp0fX0sNjcwNjY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE5NjcwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZT1yKHRoaXMpLHQ9IiI7cmV0dXJuIGUuaGFzSW5kaWNlcyYmKHQrPSJkIiksZS5nbG9iYWwmJih0Kz0iZyIpLGUuaWdub3JlQ2FzZSYmKHQrPSJpIiksZS5tdWx0aWxpbmUmJih0Kz0ibSIpLGUuZG90QWxsJiYodCs9InMiKSxlLnVuaWNvZGUmJih0Kz0idSIpLGUudW5pY29kZVNldHMmJih0Kz0idiIpLGUuc3RpY2t5JiYodCs9InkiKSx0fX0sMzQ3MDY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQ2OTE2KSxvPW4oOTI1OTcpLGk9big0Nzk3NiksYT1uKDY3MDY2KSx1PVJlZ0V4cC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZmxhZ3M7cmV0dXJuIHZvaWQgMCE9PXR8fCJmbGFncyJpbiB1fHxvKGUsImZsYWdzIil8fCFpKHUsZSk/dDpyKGEsZSl9fSw4NDQ4ODooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNjg1NTQpLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXRocm93IG8oIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrZSk7cmV0dXJuIGV9fSwxNzE1MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLG89bigxNzg1NCksaT1uKDIyMTA0KSxhPW4oNjA2MTQpLHU9big4OTM2Mykscz1uKDg4MTEzKSxjPW4oNTAyMDYpLGw9big0ODA1MyksZj1vLkZ1bmN0aW9uLHA9L01TSUUgLlwuLy50ZXN0KHMpfHx1JiYoKHI9by5CdW4udmVyc2lvbi5zcGxpdCgiLiIpKS5sZW5ndGg8M3x8IjAiPT09clswXSYmKHJbMV08M3x8IjMiPT09clsxXSYmIjAiPT09clsyXSkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/MjoxO3JldHVybiBwP2Z1bmN0aW9uKHIsbyl7dmFyIHU9bChhcmd1bWVudHMubGVuZ3RoLDEpPm4scz1hKHIpP3I6ZihyKSxwPXU/Yyhhcmd1bWVudHMsbik6W10sZD11P2Z1bmN0aW9uKCl7aShzLHRoaXMscCl9OnM7cmV0dXJuIHQ/ZShkLG8pOmUoZCl9OmV9fSw3OTQwNTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTcwMiksbz1TZXQucHJvdG90eXBlO2UuZXhwb3J0cz17U2V0OlNldCxhZGQ6cihvLmFkZCksaGFzOnIoby5oYXMpLHJlbW92ZTpyKG8uZGVsZXRlKSxwcm90bzpvfX0sNjIwMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNzIzMDkpLG89big2OTcxMSksaT1yKCJrZXlzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpW2VdfHwoaVtlXT1vKGUpKX19LDU0NjU6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3ODU0KSxvPW4oMTMwNzIpLGk9Il9fY29yZS1qc19zaGFyZWRfXyIsYT1yW2ldfHxvKGkse30pO2UuZXhwb3J0cz1hfSw3MjMwOTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMzE5MTMpLG89big1NDY1KTsoZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG9bZV18fChvW2VdPXZvaWQgMCE9PXQ/dDp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjMyLjEiLG1vZGU6cj8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiLCqSAyMDE0LTIwMjMgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMzIuMS9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pfSw2NDEyNDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTc4NTQpLG89big0NzI5MyksaT1uKDczOTIpLGE9big3ODcxKSx1PW4oODM4MjMpLHM9bigzNTI2OCksYz1yLnN0cnVjdHVyZWRDbG9uZTtlLmV4cG9ydHM9ISFjJiYhbygoZnVuY3Rpb24oKXtpZih1JiZpPjkyfHxzJiZpPjk0fHxhJiZpPjk3KXJldHVybiExO3ZhciBlPW5ldyBBcnJheUJ1ZmZlcig4KSx0PWMoZSx7dHJhbnNmZXI6W2VdfSk7cmV0dXJuIDAhPT1lLmJ5dGVMZW5ndGh8fDghPT10LmJ5dGVMZW5ndGh9KSl9LDM2MjkzOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big3MzkyKSxvPW4oNDcyOTMpLGk9bigxNzg1NCkuU3RyaW5nO2UuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFvKChmdW5jdGlvbigpe3ZhciBlPVN5bWJvbCgic3ltYm9sIGRldGVjdGlvbiIpO3JldHVybiFpKGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZyJiZyPDQxfSkpfSwyMDI2MTooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLG8saSxhLHU9bigxNzg1NCkscz1uKDIyMTA0KSxjPW4oNDk5NzQpLGw9big2MDYxNCksZj1uKDkyNTk3KSxwPW4oNDcyOTMpLGQ9big2MDQ5MCksaD1uKDUwMjA2KSx5PW4oODAzMTcpLHY9big0ODA1MyksbT1uKDY4MzMpLGc9bigzNTI2OCksXz11LnNldEltbWVkaWF0ZSxiPXUuY2xlYXJJbW1lZGlhdGUsdz11LnByb2Nlc3MseD11LkRpc3BhdGNoLGs9dS5GdW5jdGlvbixTPXUuTWVzc2FnZUNoYW5uZWwsRT11LlN0cmluZyxUPTAsQz17fSxPPSJvbnJlYWR5c3RhdGVjaGFuZ2UiO3AoKGZ1bmN0aW9uKCl7cj11LmxvY2F0aW9ufSkpO3ZhciBQPWZ1bmN0aW9uKGUpe2lmKGYoQyxlKSl7dmFyIHQ9Q1tlXTtkZWxldGUgQ1tlXSx0KCl9fSxBPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe1AoZSl9fSxqPWZ1bmN0aW9uKGUpe1AoZS5kYXRhKX0sUj1mdW5jdGlvbihlKXt1LnBvc3RNZXNzYWdlKEUoZSksci5wcm90b2NvbCsiLy8iK3IuaG9zdCl9O18mJmJ8fChfPWZ1bmN0aW9uKGUpe3YoYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgdD1sKGUpP2U6ayhlKSxuPWgoYXJndW1lbnRzLDEpO3JldHVybiBDWysrVF09ZnVuY3Rpb24oKXtzKHQsdm9pZCAwLG4pfSxvKFQpLFR9LGI9ZnVuY3Rpb24oZSl7ZGVsZXRlIENbZV19LGc/bz1mdW5jdGlvbihlKXt3Lm5leHRUaWNrKEEoZSkpfTp4JiZ4Lm5vdz9vPWZ1bmN0aW9uKGUpe3gubm93KEEoZSkpfTpTJiYhbT8oYT0oaT1uZXcgUykucG9ydDIsaS5wb3J0MS5vbm1lc3NhZ2U9aixvPWMoYS5wb3N0TWVzc2FnZSxhKSk6dS5hZGRFdmVudExpc3RlbmVyJiZsKHUucG9zdE1lc3NhZ2UpJiYhdS5pbXBvcnRTY3JpcHRzJiZyJiYiZmlsZToiIT09ci5wcm90b2NvbCYmIXAoUik/KG89Uix1LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGosITEpKTpvPU8gaW4geSgic2NyaXB0Iik/ZnVuY3Rpb24oZSl7ZC5hcHBlbmRDaGlsZCh5KCJzY3JpcHQiKSlbT109ZnVuY3Rpb24oKXtkLnJlbW92ZUNoaWxkKHRoaXMpLFAoZSl9fTpmdW5jdGlvbihlKXtzZXRUaW1lb3V0KEEoZSksMCl9KSxlLmV4cG9ydHM9e3NldDpfLGNsZWFyOmJ9fSw1MTQwMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTkzMDMpLG89TWF0aC5tYXgsaT1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKGUpO3JldHVybiBuPDA/byhuK3QsMCk6aShuLHQpfX0sNDU2NTY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDY4MzYxKSxvPW4oODQ0ODgpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihvKGUpKX19LDE5MzAzOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big3NDc1OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PStlO3JldHVybiB0IT10fHwwPT09dD8wOnIodCl9fSwxNzQ2NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMTkzMDMpLG89TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlPjA/byhyKGUpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSw0NzkwODooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oODQ0ODgpLG89T2JqZWN0O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhyKGUpKX19LDU3NTkzOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0NjkxNiksbz1uKDcwMTExKSxpPW4oNTIxOTApLGE9big1ODE3MyksdT1uKDkyMTQwKSxzPW4oNTExMiksYz1UeXBlRXJyb3IsbD1zKCJ0b1ByaW1pdGl2ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFvKGUpfHxpKGUpKXJldHVybiBlO3ZhciBuLHM9YShlLGwpO2lmKHMpe2lmKHZvaWQgMD09PXQmJih0PSJkZWZhdWx0Iiksbj1yKHMsZSx0KSwhbyhuKXx8aShuKSlyZXR1cm4gbjt0aHJvdyBjKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09dCYmKHQ9Im51bWJlciIpLHUoZSx0KX19LDM0OTQ4OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big1NzU5Myksbz1uKDUyMTkwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlLCJzdHJpbmciKTtyZXR1cm4gbyh0KT90OnQrIiJ9fSw1MTY5NDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPXt9O3Jbbig1MTEyKSgidG9TdHJpbmdUYWciKV09InoiLGUuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcocil9LDQxMzQwOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big3MDY0OCksbz1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJTeW1ib2wiPT09cihlKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIG8oZSl9fSw2NjMzMDplPT57InVzZSBzdHJpY3QiO3ZhciB0PVN0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUpfWNhdGNoKGUpe3JldHVybiJPYmplY3QifX19LDY5NzExOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzAyKSxvPTAsaT1NYXRoLnJhbmRvbSgpLGE9cigxLi50b1N0cmluZyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09ZT8iIjplKSsiKV8iK2EoKytvK2ksMzYpfX0sODUxNDM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQ3MjkzKSxvPW4oNTExMiksaT1uKDE5NzgxKSxhPW4oMzE5MTMpLHU9bygiaXRlcmF0b3IiKTtlLmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVSTCgiYj9hPTEmYj0yJmM9MyIsImh0dHA6Ly9hIiksdD1lLnNlYXJjaFBhcmFtcyxuPW5ldyBVUkxTZWFyY2hQYXJhbXMoImE9MSZhPTImYj0zIikscj0iIjtyZXR1cm4gZS5wYXRobmFtZT0iYyUyMGQiLHQuZm9yRWFjaCgoZnVuY3Rpb24oZSxuKXt0LmRlbGV0ZSgiYiIpLHIrPW4rZX0pKSxuLmRlbGV0ZSgiYSIsMiksbi5kZWxldGUoImIiLHZvaWQgMCksYSYmKCFlLnRvSlNPTnx8IW4uaGFzKCJhIiwxKXx8bi5oYXMoImEiLDIpfHwhbi5oYXMoImEiLHZvaWQgMCl8fG4uaGFzKCJiIikpfHwhdC5zaXplJiYoYXx8IWkpfHwhdC5zb3J0fHwiaHR0cDovL2EvYyUyMGQ/YT0xJmM9MyIhPT1lLmhyZWZ8fCIzIiE9PXQuZ2V0KCJjIil8fCJhPTEiIT09U3RyaW5nKG5ldyBVUkxTZWFyY2hQYXJhbXMoIj9hPTEiKSl8fCF0W3VdfHwiYSIhPT1uZXcgVVJMKCJodHRwczovL2FAYiIpLnVzZXJuYW1lfHwiYiIhPT1uZXcgVVJMU2VhcmNoUGFyYW1zKG5ldyBVUkxTZWFyY2hQYXJhbXMoImE9YiIpKS5nZXQoImEiKXx8InhuLS1lMWF5YmMiIT09bmV3IFVSTCgiaHR0cDovL9GC0LXRgdGCIikuaG9zdHx8IiMlRDAlQjEiIT09bmV3IFVSTCgiaHR0cDovL2Ej0LEiKS5oYXNofHwiYTFjMyIhPT1yfHwieCIhPT1uZXcgVVJMKCJodHRwOi8veCIsdm9pZCAwKS5ob3N0fSkpfSw0MzMwNzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oMzYyOTMpO2UuZXhwb3J0cz1yJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSwzMzUzOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxOTc4MSksbz1uKDQ3MjkzKTtlLmV4cG9ydHM9ciYmbygoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSw0ODA1MzplPT57InVzZSBzdHJpY3QiO3ZhciB0PVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSxuKXtpZihlPG4pdGhyb3cgdCgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gZX19LDk0ODExOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9bigxNzg1NCksbz1uKDYwNjE0KSxpPXIuV2Vha01hcDtlLmV4cG9ydHM9byhpKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhpKSl9LDUxMTI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDE3ODU0KSxvPW4oNzIzMDkpLGk9big5MjU5NyksYT1uKDY5NzExKSx1PW4oMzYyOTMpLHM9big0MzMwNyksYz1yLlN5bWJvbCxsPW8oIndrcyIpLGY9cz9jLmZvcnx8YzpjJiZjLndpdGhvdXRTZXR0ZXJ8fGE7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGwsZSl8fChsW2VdPXUmJmkoYyxlKT9jW2VdOmYoIlN5bWJvbC4iK2UpKSxsW2VdfX0sNTc2NTg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDgyMTA5KSxvPW4oNDc5MDgpLGk9bigyNjI0NCksYT1uKDgzNjU4KSx1PW4oNzIwNyk7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6big0NzI5MykoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pKXx8IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2goZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpfSx7cHVzaDpmdW5jdGlvbihlKXt2YXIgdD1vKHRoaXMpLG49aSh0KSxyPWFyZ3VtZW50cy5sZW5ndGg7dShuK3IpO2Zvcih2YXIgcz0wO3M8cjtzKyspdFtuXT1hcmd1bWVudHNbc10sbisrO3JldHVybiBhKHQsbiksbn19KX0sMTEwOTE6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDgyMTA5KSxvPW4oMTc4NTQpLGk9bigyMDI2MSkuY2xlYXI7cih7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6by5jbGVhckltbWVkaWF0ZSE9PWl9LHtjbGVhckltbWVkaWF0ZTppfSl9LDgyODAxOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big4MjEwOSksbz1uKDE3ODU0KSxpPW4oMzUwMDUpLGE9big3OTExNCksdT1uKDMwNzApLmYscz1uKDkyNTk3KSxjPW4oMjU3ODcpLGw9big3OTU4NyksZj1uKDU2Mjc3KSxwPW4oOTM2NzgpLGQ9bigxMTA2MCksaD1uKDE5NzgxKSx5PW4oMzE5MTMpLHY9IkRPTUV4Y2VwdGlvbiIsbT1pKCJFcnJvciIpLGc9aSh2KSxfPWZ1bmN0aW9uKCl7Yyh0aGlzLGIpO3ZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1mKGU8MT92b2lkIDA6YXJndW1lbnRzWzBdKSxuPWYoZTwyP3ZvaWQgMDphcmd1bWVudHNbMV0sIkVycm9yIikscj1uZXcgZyh0LG4pLG89bSh0KTtyZXR1cm4gby5uYW1lPXYsdShyLCJzdGFjayIsYSgxLGQoby5zdGFjaywxKSkpLGwocix0aGlzLF8pLHJ9LGI9Xy5wcm90b3R5cGU9Zy5wcm90b3R5cGUsdz0ic3RhY2siaW4gbSh2KSx4PSJzdGFjayJpbiBuZXcgZygxLDIpLGs9ZyYmaCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLHYpLFM9ISgha3x8ay53cml0YWJsZSYmay5jb25maWd1cmFibGUpLEU9dyYmIVMmJiF4O3Ioe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6eXx8RX0se0RPTUV4Y2VwdGlvbjpFP186Z30pO3ZhciBUPWkodiksQz1ULnByb3RvdHlwZTtpZihDLmNvbnN0cnVjdG9yIT09VClmb3IodmFyIE8gaW4geXx8dShDLCJjb25zdHJ1Y3RvciIsYSgxLFQpKSxwKWlmKHMocCxPKSl7dmFyIFA9cFtPXSxBPVAucztzKFQsQSl8fHUoVCxBLGEoNixQLmMpKX19LDg0NjMzOihlLHQsbik9PnsidXNlIHN0cmljdCI7bigxMTA5MSksbigxMjk4Nil9LDEyOTg2OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big4MjEwOSksbz1uKDE3ODU0KSxpPW4oMjAyNjEpLnNldCxhPW4oMTcxNTIpLHU9by5zZXRJbW1lZGlhdGU/YShpLCExKTppO3Ioe2dsb2JhbDohMCxiaW5kOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOm8uc2V0SW1tZWRpYXRlIT09dX0se3NldEltbWVkaWF0ZTp1fSl9LDYxMjk1OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHIsbz1uKDMxOTEzKSxpPW4oODIxMDkpLGE9bigxNzg1NCksdT1uKDM1MDA1KSxzPW4oMTcwMiksYz1uKDQ3MjkzKSxsPW4oNjk3MTEpLGY9big2MDYxNCkscD1uKDQ0MTEpLGQ9big2ODU1NCksaD1uKDcwMTExKSx5PW4oNTIxOTApLHY9bigyMDQwOCksbT1uKDE5NjcwKSxnPW4oNzA2NDgpLF89big5MjU5NyksYj1uKDg2MTM1KSx3PW4oNjg4ODApLHg9bigyNjI0NCksaz1uKDQ4MDUzKSxTPW4oMzQ3MDYpLEU9big3NTcwNiksVD1uKDc5NDA1KSxDPW4oMjI5MTQpLE89big2NDEyNCksUD1hLk9iamVjdCxBPWEuQXJyYXksaj1hLkRhdGUsUj1hLkVycm9yLE09YS5FdmFsRXJyb3IsTj1hLlJhbmdlRXJyb3IsST1hLlJlZmVyZW5jZUVycm9yLEY9YS5TeW50YXhFcnJvcixEPWEuVHlwZUVycm9yLEw9YS5VUklFcnJvcix6PWEuUGVyZm9ybWFuY2VNYXJrLFU9YS5XZWJBc3NlbWJseSxCPVUmJlUuQ29tcGlsZUVycm9yfHxSLFc9VSYmVS5MaW5rRXJyb3J8fFIsSD1VJiZVLlJ1bnRpbWVFcnJvcnx8UiwkPXUoIkRPTUV4Y2VwdGlvbiIpLFY9RS5NYXAscT1FLmhhcyxHPUUuZ2V0LFE9RS5zZXQsWT1ULlNldCxLPVQuYWRkLFg9dSgiT2JqZWN0Iiwia2V5cyIpLEo9cyhbXS5wdXNoKSxaPXMoKCEwKS52YWx1ZU9mKSxlZT1zKDEuLnZhbHVlT2YpLHRlPXMoIiIudmFsdWVPZiksbmU9cyhqLnByb3RvdHlwZS5nZXRUaW1lKSxyZT1sKCJzdHJ1Y3R1cmVkQ2xvbmUiKSxvZT0iRGF0YUNsb25lRXJyb3IiLGllPSJUcmFuc2ZlcnJpbmciLGFlPWZ1bmN0aW9uKGUpe3JldHVybiFjKChmdW5jdGlvbigpe3ZhciB0PW5ldyBhLlNldChbN10pLG49ZSh0KSxyPWUoUCg3KSk7cmV0dXJuIG49PT10fHwhbi5oYXMoNyl8fCJvYmplY3QiIT10eXBlb2Ygcnx8NyE9PXJ9KSkmJmV9LHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIWMoKGZ1bmN0aW9uKCl7dmFyIG49bmV3IHQscj1lKHthOm4sYjpufSk7cmV0dXJuIShyJiZyLmE9PT1yLmImJnIuYSBpbnN0YW5jZW9mIHQmJnIuYS5zdGFjaz09PW4uc3RhY2spfSkpfSxzZT1hLnN0cnVjdHVyZWRDbG9uZSxjZT1vfHwhdWUoc2UsUil8fCF1ZShzZSwkKXx8KHI9c2UsISFjKChmdW5jdGlvbigpe3ZhciBlPXIobmV3IGEuQWdncmVnYXRlRXJyb3IoWzFdLHJlLHtjYXVzZTozfSkpO3JldHVybiJBZ2dyZWdhdGVFcnJvciIhPT1lLm5hbWV8fDEhPT1lLmVycm9yc1swXXx8ZS5tZXNzYWdlIT09cmV8fDMhPT1lLmNhdXNlfSkpKSxsZT0hc2UmJmFlKChmdW5jdGlvbihlKXtyZXR1cm4gbmV3IHoocmUse2RldGFpbDplfSkuZGV0YWlsfSkpLGZlPWFlKHNlKXx8bGUscGU9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3ICQoIlVuY2xvbmVhYmxlIHR5cGU6ICIrZSxvZSl9LGRlPWZ1bmN0aW9uKGUsdCl7dGhyb3cgbmV3ICQoKHR8fCJDbG9uaW5nIikrIiBvZiAiK2UrIiBjYW5ub3QgYmUgcHJvcGVybHkgcG9seWZpbGxlZCBpbiB0aGlzIGVuZ2luZSIsb2UpfSxoZT1mdW5jdGlvbihlLHQpe3JldHVybiBmZXx8ZGUodCksZmUoZSl9LHllPWZ1bmN0aW9uKGUsdCxuKXtpZihxKHQsZSkpcmV0dXJuIEcodCxlKTt2YXIgcixvLGksdSxzLGM7aWYoIlNoYXJlZEFycmF5QnVmZmVyIj09PShufHxnKGUpKSlyPWZlP2ZlKGUpOmU7ZWxzZXt2YXIgbD1hLkRhdGFWaWV3O2x8fCJmdW5jdGlvbiI9PXR5cGVvZiBlLnNsaWNlfHxkZSgiQXJyYXlCdWZmZXIiKTt0cnl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUuc2xpY2V8fGUucmVzaXphYmxlKXtvPWUuYnl0ZUxlbmd0aCxpPSJtYXhCeXRlTGVuZ3RoImluIGU/e21heEJ5dGVMZW5ndGg6ZS5tYXhCeXRlTGVuZ3RofTp2b2lkIDAscj1uZXcgQXJyYXlCdWZmZXIobyxpKSx1PW5ldyBsKGUpLHM9bmV3IGwocik7Zm9yKGM9MDtjPG87YysrKXMuc2V0VWludDgoYyx1LmdldFVpbnQ4KGMpKX1lbHNlIHI9ZS5zbGljZSgwKX1jYXRjaChlKXt0aHJvdyBuZXcgJCgiQXJyYXlCdWZmZXIgaXMgZGV0YWNoZWQiLG9lKX19cmV0dXJuIFEodCxlLHIpLHJ9LHZlPWZ1bmN0aW9uKGUsdCxuLHIsbyl7dmFyIGk9YVt0XTtyZXR1cm4gaChpKXx8ZGUodCksbmV3IGkoeWUoZS5idWZmZXIsbyksbixyKX0sbWU9ZnVuY3Rpb24oZSx0LG4pe3RoaXMub2JqZWN0PWUsdGhpcy50eXBlPXQsdGhpcy5tZXRhZGF0YT1ufSxnZT1mdW5jdGlvbihlLHQsbil7aWYoeShlKSYmcGUoIlN5bWJvbCIpLCFoKGUpKXJldHVybiBlO2lmKHQpe2lmKHEodCxlKSlyZXR1cm4gRyh0LGUpfWVsc2UgdD1uZXcgVjt2YXIgcixvLGkscyxjLGwscCxkLHY9ZyhlKTtzd2l0Y2godil7Y2FzZSJBcnJheSI6aT1BKHgoZSkpO2JyZWFrO2Nhc2UiT2JqZWN0IjppPXt9O2JyZWFrO2Nhc2UiTWFwIjppPW5ldyBWO2JyZWFrO2Nhc2UiU2V0IjppPW5ldyBZO2JyZWFrO2Nhc2UiUmVnRXhwIjppPW5ldyBSZWdFeHAoZS5zb3VyY2UsUyhlKSk7YnJlYWs7Y2FzZSJFcnJvciI6c3dpdGNoKG89ZS5uYW1lKXtjYXNlIkFnZ3JlZ2F0ZUVycm9yIjppPXUoIkFnZ3JlZ2F0ZUVycm9yIikoW10pO2JyZWFrO2Nhc2UiRXZhbEVycm9yIjppPU0oKTticmVhaztjYXNlIlJhbmdlRXJyb3IiOmk9TigpO2JyZWFrO2Nhc2UiUmVmZXJlbmNlRXJyb3IiOmk9SSgpO2JyZWFrO2Nhc2UiU3ludGF4RXJyb3IiOmk9RigpO2JyZWFrO2Nhc2UiVHlwZUVycm9yIjppPUQoKTticmVhaztjYXNlIlVSSUVycm9yIjppPUwoKTticmVhaztjYXNlIkNvbXBpbGVFcnJvciI6aT1CKCk7YnJlYWs7Y2FzZSJMaW5rRXJyb3IiOmk9VygpO2JyZWFrO2Nhc2UiUnVudGltZUVycm9yIjppPUgoKTticmVhaztkZWZhdWx0Omk9UigpfWJyZWFrO2Nhc2UiRE9NRXhjZXB0aW9uIjppPW5ldyAkKGUubWVzc2FnZSxlLm5hbWUpO2JyZWFrO2Nhc2UiQXJyYXlCdWZmZXIiOmNhc2UiU2hhcmVkQXJyYXlCdWZmZXIiOmk9bj9uZXcgbWUoZSx2KTp5ZShlLHQsdik7YnJlYWs7Y2FzZSJEYXRhVmlldyI6Y2FzZSJJbnQ4QXJyYXkiOmNhc2UiVWludDhBcnJheSI6Y2FzZSJVaW50OENsYW1wZWRBcnJheSI6Y2FzZSJJbnQxNkFycmF5IjpjYXNlIlVpbnQxNkFycmF5IjpjYXNlIkludDMyQXJyYXkiOmNhc2UiVWludDMyQXJyYXkiOmNhc2UiRmxvYXQxNkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQmlnSW50NjRBcnJheSI6Y2FzZSJCaWdVaW50NjRBcnJheSI6bD0iRGF0YVZpZXciPT09dj9lLmJ5dGVMZW5ndGg6ZS5sZW5ndGgsaT1uP25ldyBtZShlLHYse29mZnNldDplLmJ5dGVPZmZzZXQsbGVuZ3RoOmx9KTp2ZShlLHYsZS5ieXRlT2Zmc2V0LGwsdCk7YnJlYWs7Y2FzZSJET01RdWFkIjp0cnl7aT1uZXcgRE9NUXVhZChnZShlLnAxLHQsbiksZ2UoZS5wMix0LG4pLGdlKGUucDMsdCxuKSxnZShlLnA0LHQsbikpfWNhdGNoKHQpe2k9aGUoZSx2KX1icmVhaztjYXNlIkZpbGUiOmlmKGZlKXRyeXtpPWZlKGUpLGcoaSkhPT12JiYoaT12b2lkIDApfWNhdGNoKGUpe31pZighaSl0cnl7aT1uZXcgRmlsZShbZV0sZS5uYW1lLGUpfWNhdGNoKGUpe31pfHxkZSh2KTticmVhaztjYXNlIkZpbGVMaXN0IjppZihzPWZ1bmN0aW9uKCl7dmFyIGU7dHJ5e2U9bmV3IGEuRGF0YVRyYW5zZmVyfWNhdGNoKHQpe3RyeXtlPW5ldyBhLkNsaXBib2FyZEV2ZW50KCIiKS5jbGlwYm9hcmREYXRhfWNhdGNoKGUpe319cmV0dXJuIGUmJmUuaXRlbXMmJmUuZmlsZXM/ZTpudWxsfSgpKXtmb3IoYz0wLGw9eChlKTtjPGw7YysrKXMuaXRlbXMuYWRkKGdlKGVbY10sdCxuKSk7aT1zLmZpbGVzfWVsc2UgaT1oZShlLHYpO2JyZWFrO2Nhc2UiSW1hZ2VEYXRhIjp0cnl7aT1uZXcgSW1hZ2VEYXRhKGdlKGUuZGF0YSx0LG4pLGUud2lkdGgsZS5oZWlnaHQse2NvbG9yU3BhY2U6ZS5jb2xvclNwYWNlfSl9Y2F0Y2godCl7aT1oZShlLHYpfWJyZWFrO2RlZmF1bHQ6aWYoZmUpaT1mZShlKTtlbHNlIHN3aXRjaCh2KXtjYXNlIkJpZ0ludCI6aT1QKGUudmFsdWVPZigpKTticmVhaztjYXNlIkJvb2xlYW4iOmk9UChaKGUpKTticmVhaztjYXNlIk51bWJlciI6aT1QKGVlKGUpKTticmVhaztjYXNlIlN0cmluZyI6aT1QKHRlKGUpKTticmVhaztjYXNlIkRhdGUiOmk9bmV3IGoobmUoZSkpO2JyZWFrO2Nhc2UiQmxvYiI6dHJ5e2k9ZS5zbGljZSgwLGUuc2l6ZSxlLnR5cGUpfWNhdGNoKGUpe2RlKHYpfWJyZWFrO2Nhc2UiRE9NUG9pbnQiOmNhc2UiRE9NUG9pbnRSZWFkT25seSI6cj1hW3ZdO3RyeXtpPXIuZnJvbVBvaW50P3IuZnJvbVBvaW50KGUpOm5ldyByKGUueCxlLnksZS56LGUudyl9Y2F0Y2goZSl7ZGUodil9YnJlYWs7Y2FzZSJET01SZWN0IjpjYXNlIkRPTVJlY3RSZWFkT25seSI6cj1hW3ZdO3RyeXtpPXIuZnJvbVJlY3Q/ci5mcm9tUmVjdChlKTpuZXcgcihlLngsZS55LGUud2lkdGgsZS5oZWlnaHQpfWNhdGNoKGUpe2RlKHYpfWJyZWFrO2Nhc2UiRE9NTWF0cml4IjpjYXNlIkRPTU1hdHJpeFJlYWRPbmx5IjpyPWFbdl07dHJ5e2k9ci5mcm9tTWF0cml4P3IuZnJvbU1hdHJpeChlKTpuZXcgcihlKX1jYXRjaChlKXtkZSh2KX1icmVhaztjYXNlIkF1ZGlvRGF0YSI6Y2FzZSJWaWRlb0ZyYW1lIjpmKGUuY2xvbmUpfHxkZSh2KTt0cnl7aT1lLmNsb25lKCl9Y2F0Y2goZSl7cGUodil9YnJlYWs7Y2FzZSJDcm9wVGFyZ2V0IjpjYXNlIkNyeXB0b0tleSI6Y2FzZSJGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlIjpjYXNlIkZpbGVTeXN0ZW1GaWxlSGFuZGxlIjpjYXNlIkZpbGVTeXN0ZW1IYW5kbGUiOmNhc2UiR1BVQ29tcGlsYXRpb25JbmZvIjpjYXNlIkdQVUNvbXBpbGF0aW9uTWVzc2FnZSI6Y2FzZSJJbWFnZUJpdG1hcCI6Y2FzZSJSVENDZXJ0aWZpY2F0ZSI6Y2FzZSJXZWJBc3NlbWJseS5Nb2R1bGUiOmRlKHYpO2RlZmF1bHQ6cGUodil9fXN3aXRjaChRKHQsZSxpKSx2KXtjYXNlIkFycmF5IjpjYXNlIk9iamVjdCI6Zm9yKHA9WChlKSxjPTAsbD14KHApO2M8bDtjKyspZD1wW2NdLGIoaSxkLGdlKGVbZF0sdCxuKSk7YnJlYWs7Y2FzZSJNYXAiOmUuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtRKGksZ2Uocix0LG4pLGdlKGUsdCxuKSl9KSk7YnJlYWs7Y2FzZSJTZXQiOmUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7SyhpLGdlKGUsdCxuKSl9KSk7YnJlYWs7Y2FzZSJFcnJvciI6dyhpLCJtZXNzYWdlIixnZShlLm1lc3NhZ2UsdCxuKSksXyhlLCJjYXVzZSIpJiZ3KGksImNhdXNlIixnZShlLmNhdXNlLHQsbikpLCJBZ2dyZWdhdGVFcnJvciI9PT1vJiYoaS5lcnJvcnM9Z2UoZS5lcnJvcnMsdCxuKSk7Y2FzZSJET01FeGNlcHRpb24iOkMmJncoaSwic3RhY2siLGdlKGUuc3RhY2ssdCxuKSl9cmV0dXJuIGl9LF9lPWZ1bmN0aW9uKGUsdCl7aWYoIWgoZSkpcmV0dXJuIGU7aWYocSh0LGUpKXJldHVybiBHKHQsZSk7dmFyIG4scixvLGksYSx1LHMsYztpZihlIGluc3RhbmNlb2YgbWUpc3dpdGNoKG49ZS50eXBlLHI9ZS5vYmplY3Qsbil7Y2FzZSJBcnJheUJ1ZmZlciI6Y2FzZSJTaGFyZWRBcnJheUJ1ZmZlciI6Yz15ZShyLHQsbik7YnJlYWs7Y2FzZSJEYXRhVmlldyI6Y2FzZSJJbnQ4QXJyYXkiOmNhc2UiVWludDhBcnJheSI6Y2FzZSJVaW50OENsYW1wZWRBcnJheSI6Y2FzZSJJbnQxNkFycmF5IjpjYXNlIlVpbnQxNkFycmF5IjpjYXNlIkludDMyQXJyYXkiOmNhc2UiVWludDMyQXJyYXkiOmNhc2UiRmxvYXQxNkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQmlnSW50NjRBcnJheSI6Y2FzZSJCaWdVaW50NjRBcnJheSI6bz1lLm1ldGFkYXRhLGM9dmUocixuLG8ub2Zmc2V0LG8ubGVuZ3RoLHQpfWVsc2Ugc3dpdGNoKGcoZSkpe2Nhc2UiQXJyYXkiOmNhc2UiT2JqZWN0Ijpmb3IodT1YKGUpLGk9MCxhPXgodSk7aTxhO2krKyllW3M9dVtpXV09X2UoZVtzXSx0KTticmVhaztjYXNlIk1hcCI6Yz1uZXcgVixlLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7UShjLF9lKG4sdCksX2UoZSx0KSl9KSk7YnJlYWs7Y2FzZSJTZXQiOmM9bmV3IFksZS5mb3JFYWNoKChmdW5jdGlvbihlKXtLKGMsX2UoZSx0KSl9KSk7YnJlYWs7Y2FzZSJFcnJvciI6ZS5tZXNzYWdlPV9lKGUubWVzc2FnZSx0KSxfKGUsImNhdXNlIikmJihlLmNhdXNlPV9lKGUuY2F1c2UsdCkpLCJBZ2dyZWdhdGVFcnJvciI9PT1lLm5hbWUmJihlLmVycm9ycz1fZShlLmVycm9ycyx0KSk7Y2FzZSJET01FeGNlcHRpb24iOkMmJihlLnN0YWNrPV9lKGUuc3RhY2ssdCkpfXJldHVybiBRKHQsZSxjfHxlKSxjfHxlfTtpKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxzaGFtOiFPLGZvcmNlZDpjZX0se3N0cnVjdHVyZWRDbG9uZTpmdW5jdGlvbihlKXt2YXIgdCxuLHI9ayhhcmd1bWVudHMubGVuZ3RoLDEpPjEmJiFkKGFyZ3VtZW50c1sxXSk/bShhcmd1bWVudHNbMV0pOnZvaWQgMCxvPXI/ci50cmFuc2Zlcjp2b2lkIDAsaT0hMTt2b2lkIDAhPT1vJiYobj1mdW5jdGlvbihlLHQpe2lmKCFoKGUpKXRocm93IEQoIlRyYW5zZmVyIG9wdGlvbiBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgc2VxdWVuY2UiKTt2YXIgbj1bXTt2KGUsKGZ1bmN0aW9uKGUpe0oobixtKGUpKX0pKTtmb3IodmFyIHIsbyxpLHUscyxjPTAsbD14KG4pLGQ9W107YzxsOylpZihyPW5bYysrXSwiQXJyYXlCdWZmZXIiIT09KG89ZyhyKSkpe2lmKHEodCxyKSl0aHJvdyBuZXcgJCgiRHVwbGljYXRlIHRyYW5zZmVyYWJsZSIsb2UpO2lmKE8pdT1zZShyLHt0cmFuc2Zlcjpbcl19KTtlbHNlIHN3aXRjaChvKXtjYXNlIkltYWdlQml0bWFwIjppPWEuT2Zmc2NyZWVuQ2FudmFzLHAoaSl8fGRlKG8saWUpO3RyeXsocz1uZXcgaShyLndpZHRoLHIuaGVpZ2h0KSkuZ2V0Q29udGV4dCgiYml0bWFwcmVuZGVyZXIiKS50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChyKSx1PXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9Y2F0Y2goZSl7fWJyZWFrO2Nhc2UiQXVkaW9EYXRhIjpjYXNlIlZpZGVvRnJhbWUiOmYoci5jbG9uZSkmJmYoci5jbG9zZSl8fGRlKG8saWUpO3RyeXt1PXIuY2xvbmUoKSxyLmNsb3NlKCl9Y2F0Y2goZSl7fWJyZWFrO2Nhc2UiTWVkaWFTb3VyY2VIYW5kbGUiOmNhc2UiTWVzc2FnZVBvcnQiOmNhc2UiT2Zmc2NyZWVuQ2FudmFzIjpjYXNlIlJlYWRhYmxlU3RyZWFtIjpjYXNlIlRyYW5zZm9ybVN0cmVhbSI6Y2FzZSJXcml0YWJsZVN0cmVhbSI6ZGUobyxpZSl9aWYodm9pZCAwPT09dSl0aHJvdyBuZXcgJCgiVGhpcyBvYmplY3QgY2Fubm90IGJlIHRyYW5zZmVycmVkOiAiK28sb2UpO1EodCxyLHUpfWVsc2UgSihkLHIpO3JldHVybiBkfShvLHQ9bmV3IFYpLGk9ISF4KG4pKTt2YXIgdT1nZShlLHQsaSk7cmV0dXJuIGkmJihmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLG89MCxpPXgoZSk7bzxpOyl7aWYobj1lW28rK10scSh0LG4pKXRocm93IG5ldyAkKCJEdXBsaWNhdGUgdHJhbnNmZXJhYmxlIixvZSk7Tz9yPXNlKG4se3RyYW5zZmVyOltuXX0pOihmKG4udHJhbnNmZXIpfHxkZSgiQXJyYXlCdWZmZXIiLGllKSxyPW4udHJhbnNmZXIoKSksUSh0LG4scil9fShvLHQ9bmV3IFYpLHU9X2UodSx0KSksdX19KX0sNDYyMjk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDk4MDUyKSxvPW4oMTcwMiksaT1uKDQxMzQwKSxhPW4oNDgwNTMpLHU9VVJMU2VhcmNoUGFyYW1zLHM9dS5wcm90b3R5cGUsYz1vKHMuYXBwZW5kKSxsPW8ocy5kZWxldGUpLGY9byhzLmZvckVhY2gpLHA9byhbXS5wdXNoKSxkPW5ldyB1KCJhPTEmYT0yJmI9MyIpO2QuZGVsZXRlKCJhIiwxKSxkLmRlbGV0ZSgiYiIsdm9pZCAwKSxkKyIiIT0iYT0yIiYmcihzLCJkZWxldGUiLChmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49dDwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYodCYmdm9pZCAwPT09bilyZXR1cm4gbCh0aGlzLGUpO3ZhciByPVtdO2YodGhpcywoZnVuY3Rpb24oZSx0KXtwKHIse2tleTp0LHZhbHVlOmV9KX0pKSxhKHQsMSk7Zm9yKHZhciBvLHU9aShlKSxzPWkobiksZD0wLGg9MCx5PSExLHY9ci5sZW5ndGg7ZDx2OylvPXJbZCsrXSx5fHxvLmtleT09PXU/KHk9ITAsbCh0aGlzLG8ua2V5KSk6aCsrO2Zvcig7aDx2Oykobz1yW2grK10pLmtleT09PXUmJm8udmFsdWU9PT1zfHxjKHRoaXMsby5rZXksby52YWx1ZSl9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sMTczMzA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDk4MDUyKSxvPW4oMTcwMiksaT1uKDQxMzQwKSxhPW4oNDgwNTMpLHU9VVJMU2VhcmNoUGFyYW1zLHM9dS5wcm90b3R5cGUsYz1vKHMuZ2V0QWxsKSxsPW8ocy5oYXMpLGY9bmV3IHUoImE9MSIpOyFmLmhhcygiYSIsMikmJmYuaGFzKCJhIix2b2lkIDApfHxyKHMsImhhcyIsKGZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj10PDI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZih0JiZ2b2lkIDA9PT1uKXJldHVybiBsKHRoaXMsZSk7dmFyIHI9Yyh0aGlzLGUpO2EodCwxKTtmb3IodmFyIG89aShuKSx1PTA7dTxyLmxlbmd0aDspaWYoclt1KytdPT09bylyZXR1cm4hMDtyZXR1cm4hMX0pLHtlbnVtZXJhYmxlOiEwLHVuc2FmZTohMH0pfSw3OTk0OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big4MjEwOSksbz1uKDM1MDA1KSxpPW4oNDcyOTMpLGE9big0ODA1MyksdT1uKDQxMzQwKSxzPW4oODUxNDMpLGM9bygiVVJMIik7cih7dGFyZ2V0OiJVUkwiLHN0YXQ6ITAsZm9yY2VkOiEocyYmaSgoZnVuY3Rpb24oKXtjLmNhblBhcnNlKCl9KSkpfSx7Y2FuUGFyc2U6ZnVuY3Rpb24oZSl7dmFyIHQ9YShhcmd1bWVudHMubGVuZ3RoLDEpLG49dShlKSxyPXQ8Mnx8dm9pZCAwPT09YXJndW1lbnRzWzFdP3ZvaWQgMDp1KGFyZ3VtZW50c1sxXSk7dHJ5e3JldHVybiEhbmV3IGMobixyKX1jYXRjaChlKXtyZXR1cm4hMX19fSl9LDU5NDM1OmU9Pnt2YXIgdD0xZTMsbj02MCp0LHI9NjAqbixvPTI0KnIsaT0zNjUuMjUqbztmdW5jdGlvbiBhKGUsdCxuKXtpZighKGU8dCkpcmV0dXJuIGU8MS41KnQ/TWF0aC5mbG9vcihlL3QpKyIgIituOk1hdGguY2VpbChlL3QpKyIgIituKyJzIn1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx1KXt1PXV8fHt9O3ZhciBzLGM9dHlwZW9mIGU7aWYoInN0cmluZyI9PT1jJiZlLmxlbmd0aD4wKXJldHVybiBmdW5jdGlvbihlKXtpZigoZT1TdHJpbmcoZSkpLmxlbmd0aD4xMDApcmV0dXJuO3ZhciBhPS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYoIWEpcmV0dXJuO3ZhciB1PXBhcnNlRmxvYXQoYVsxXSk7c3dpdGNoKChhWzJdfHwibXMiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInllYXJzIjpjYXNlInllYXIiOmNhc2UieXJzIjpjYXNlInlyIjpjYXNlInkiOnJldHVybiB1Kmk7Y2FzZSJkYXlzIjpjYXNlImRheSI6Y2FzZSJkIjpyZXR1cm4gdSpvO2Nhc2UiaG91cnMiOmNhc2UiaG91ciI6Y2FzZSJocnMiOmNhc2UiaHIiOmNhc2UiaCI6cmV0dXJuIHUqcjtjYXNlIm1pbnV0ZXMiOmNhc2UibWludXRlIjpjYXNlIm1pbnMiOmNhc2UibWluIjpjYXNlIm0iOnJldHVybiB1Km47Y2FzZSJzZWNvbmRzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNzIjpjYXNlInNlYyI6Y2FzZSJzIjpyZXR1cm4gdSp0O2Nhc2UibWlsbGlzZWNvbmRzIjpjYXNlIm1pbGxpc2Vjb25kIjpjYXNlIm1zZWNzIjpjYXNlIm1zZWMiOmNhc2UibXMiOnJldHVybiB1O2RlZmF1bHQ6cmV0dXJufX0oZSk7aWYoIm51bWJlciI9PT1jJiYhMT09PWlzTmFOKGUpKXJldHVybiB1Lmxvbmc/YShzPWUsbywiZGF5Iil8fGEocyxyLCJob3VyIil8fGEocyxuLCJtaW51dGUiKXx8YShzLHQsInNlY29uZCIpfHxzKyIgbXMiOmZ1bmN0aW9uKGUpe2lmKGU+PW8pcmV0dXJuIE1hdGgucm91bmQoZS9vKSsiZCI7aWYoZT49cilyZXR1cm4gTWF0aC5yb3VuZChlL3IpKyJoIjtpZihlPj1uKXJldHVybiBNYXRoLnJvdW5kKGUvbikrIm0iO2lmKGU+PXQpcmV0dXJuIE1hdGgucm91bmQoZS90KSsicyI7cmV0dXJuIGUrIm1zIn0oZSk7dGhyb3cgbmV3IEVycm9yKCJ2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIHZhbGlkIG51bWJlci4gdmFsPSIrSlNPTi5zdHJpbmdpZnkoZSkpfX0sMTEyMjc6KGUsdCxuKT0+e2Z1bmN0aW9uIHIoKXt2YXIgZTt0cnl7ZT10LnN0b3JhZ2UuZGVidWd9Y2F0Y2goZSl7fXJldHVybiFlJiYidW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJlbnYiaW4gcHJvY2VzcyYmKGU9cHJvY2Vzcy5lbnYuREVCVUcpLGV9KHQ9ZS5leHBvcnRzPW4oMTE2NTgpKS5sb2c9ZnVuY3Rpb24oKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlLGFyZ3VtZW50cyl9LHQuZm9ybWF0QXJncz1mdW5jdGlvbihlKXt2YXIgbj10aGlzLnVzZUNvbG9ycztpZihlWzBdPShuPyIlYyI6IiIpK3RoaXMubmFtZXNwYWNlKyhuPyIgJWMiOiIgIikrZVswXSsobj8iJWMgIjoiICIpKyIrIit0Lmh1bWFuaXplKHRoaXMuZGlmZiksIW4pcmV0dXJuO3ZhciByPSJjb2xvcjogIit0aGlzLmNvbG9yO2Uuc3BsaWNlKDEsMCxyLCJjb2xvcjogaW5oZXJpdCIpO3ZhciBvPTAsaT0wO2VbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLChmdW5jdGlvbihlKXsiJSUiIT09ZSYmKG8rKywiJWMiPT09ZSYmKGk9bykpfSkpLGUuc3BsaWNlKGksMCxyKX0sdC5zYXZlPWZ1bmN0aW9uKGUpe3RyeXtudWxsPT1lP3Quc3RvcmFnZS5yZW1vdmVJdGVtKCJkZWJ1ZyIpOnQuc3RvcmFnZS5kZWJ1Zz1lfWNhdGNoKGUpe319LHQubG9hZD1yLHQudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5wcm9jZXNzJiYicmVuZGVyZXIiPT09d2luZG93LnByb2Nlc3MudHlwZSlyZXR1cm4hMDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVwvKFxkKykvKSlyZXR1cm4hMTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pJiZwYXJzZUludChSZWdFeHAuJDEsMTApPj0zMXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcLyhcZCspLyl9LHQuc3RvcmFnZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNocm9tZSYmdm9pZCAwIT09Y2hyb21lLnN0b3JhZ2U/Y2hyb21lLnN0b3JhZ2UubG9jYWw6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2goZSl7fX0oKSx0LmNvbG9ycz1bIiMwMDAwQ0MiLCIjMDAwMEZGIiwiIzAwMzNDQyIsIiMwMDMzRkYiLCIjMDA2NkNDIiwiIzAwNjZGRiIsIiMwMDk5Q0MiLCIjMDA5OUZGIiwiIzAwQ0MwMCIsIiMwMENDMzMiLCIjMDBDQzY2IiwiIzAwQ0M5OSIsIiMwMENDQ0MiLCIjMDBDQ0ZGIiwiIzMzMDBDQyIsIiMzMzAwRkYiLCIjMzMzM0NDIiwiIzMzMzNGRiIsIiMzMzY2Q0MiLCIjMzM2NkZGIiwiIzMzOTlDQyIsIiMzMzk5RkYiLCIjMzNDQzAwIiwiIzMzQ0MzMyIsIiMzM0NDNjYiLCIjMzNDQzk5IiwiIzMzQ0NDQyIsIiMzM0NDRkYiLCIjNjYwMENDIiwiIzY2MDBGRiIsIiM2NjMzQ0MiLCIjNjYzM0ZGIiwiIzY2Q0MwMCIsIiM2NkNDMzMiLCIjOTkwMENDIiwiIzk5MDBGRiIsIiM5OTMzQ0MiLCIjOTkzM0ZGIiwiIzk5Q0MwMCIsIiM5OUNDMzMiLCIjQ0MwMDAwIiwiI0NDMDAzMyIsIiNDQzAwNjYiLCIjQ0MwMDk5IiwiI0NDMDBDQyIsIiNDQzAwRkYiLCIjQ0MzMzAwIiwiI0NDMzMzMyIsIiNDQzMzNjYiLCIjQ0MzMzk5IiwiI0NDMzNDQyIsIiNDQzMzRkYiLCIjQ0M2NjAwIiwiI0NDNjYzMyIsIiNDQzk5MDAiLCIjQ0M5OTMzIiwiI0NDQ0MwMCIsIiNDQ0NDMzMiLCIjRkYwMDAwIiwiI0ZGMDAzMyIsIiNGRjAwNjYiLCIjRkYwMDk5IiwiI0ZGMDBDQyIsIiNGRjAwRkYiLCIjRkYzMzAwIiwiI0ZGMzMzMyIsIiNGRjMzNjYiLCIjRkYzMzk5IiwiI0ZGMzNDQyIsIiNGRjMzRkYiLCIjRkY2NjAwIiwiI0ZGNjYzMyIsIiNGRjk5MDAiLCIjRkY5OTMzIiwiI0ZGQ0MwMCIsIiNGRkNDMzMiXSx0LmZvcm1hdHRlcnMuaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVybiJbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogIitlLm1lc3NhZ2V9fSx0LmVuYWJsZShyKCkpfSwxMTY1ODooZSx0LG4pPT57ZnVuY3Rpb24gcihlKXt2YXIgbjtmdW5jdGlvbiByKCl7aWYoci5lbmFibGVkKXt2YXIgZT1yLG89K25ldyBEYXRlLGk9by0obnx8byk7ZS5kaWZmPWksZS5wcmV2PW4sZS5jdXJyPW8sbj1vO2Zvcih2YXIgYT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT0wO3U8YS5sZW5ndGg7dSsrKWFbdV09YXJndW1lbnRzW3VdO2FbMF09dC5jb2VyY2UoYVswXSksInN0cmluZyIhPXR5cGVvZiBhWzBdJiZhLnVuc2hpZnQoIiVPIik7dmFyIHM9MDthWzBdPWFbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKGZ1bmN0aW9uKG4scil7aWYoIiUlIj09PW4pcmV0dXJuIG47cysrO3ZhciBvPXQuZm9ybWF0dGVyc1tyXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbyl7dmFyIGk9YVtzXTtuPW8uY2FsbChlLGkpLGEuc3BsaWNlKHMsMSkscy0tfXJldHVybiBufSkpLHQuZm9ybWF0QXJncy5jYWxsKGUsYSksKHIubG9nfHx0LmxvZ3x8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKSkuYXBwbHkoZSxhKX19cmV0dXJuIHIubmFtZXNwYWNlPWUsci5lbmFibGVkPXQuZW5hYmxlZChlKSxyLnVzZUNvbG9ycz10LnVzZUNvbG9ycygpLHIuY29sb3I9ZnVuY3Rpb24oZSl7dmFyIG4scj0wO2ZvcihuIGluIGUpcj0ocjw8NSktcitlLmNoYXJDb2RlQXQobikscnw9MDtyZXR1cm4gdC5jb2xvcnNbTWF0aC5hYnMocikldC5jb2xvcnMubGVuZ3RoXX0oZSksci5kZXN0cm95PW8sImZ1bmN0aW9uIj09dHlwZW9mIHQuaW5pdCYmdC5pbml0KHIpLHQuaW5zdGFuY2VzLnB1c2gocikscn1mdW5jdGlvbiBvKCl7dmFyIGU9dC5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4tMSE9PWUmJih0Lmluc3RhbmNlcy5zcGxpY2UoZSwxKSwhMCl9KHQ9ZS5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIpLmNvZXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXt0LmVuYWJsZSgiIil9LHQuZW5hYmxlPWZ1bmN0aW9uKGUpe3ZhciBuO3Quc2F2ZShlKSx0Lm5hbWVzPVtdLHQuc2tpcHM9W107dmFyIHI9KCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKS5zcGxpdCgvW1xzLF0rLyksbz1yLmxlbmd0aDtmb3Iobj0wO248bztuKyspcltuXSYmKCItIj09PShlPXJbbl0ucmVwbGFjZSgvXCovZywiLio/IikpWzBdP3Quc2tpcHMucHVzaChuZXcgUmVnRXhwKCJeIitlLnN1YnN0cigxKSsiJCIpKTp0Lm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgiXiIrZSsiJCIpKSk7Zm9yKG49MDtuPHQuaW5zdGFuY2VzLmxlbmd0aDtuKyspe3ZhciBpPXQuaW5zdGFuY2VzW25dO2kuZW5hYmxlZD10LmVuYWJsZWQoaS5uYW1lc3BhY2UpfX0sdC5lbmFibGVkPWZ1bmN0aW9uKGUpe2lmKCIqIj09PWVbZS5sZW5ndGgtMV0pcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9dC5za2lwcy5sZW5ndGg7bjxyO24rKylpZih0LnNraXBzW25dLnRlc3QoZSkpcmV0dXJuITE7Zm9yKG49MCxyPXQubmFtZXMubGVuZ3RoO248cjtuKyspaWYodC5uYW1lc1tuXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfSx0Lmh1bWFuaXplPW4oNTk0MzUpLHQuaW5zdGFuY2VzPVtdLHQubmFtZXM9W10sdC5za2lwcz1bXSx0LmZvcm1hdHRlcnM9e319LDgyMjQxOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oMjE5MzkpfSwyMTkzOTpmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdCgpe3JldHVybih0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIG47ZS5BY3Rpb249dm9pZCAwLChuPWUuQWN0aW9ufHwoZS5BY3Rpb249e30pKS5Qb3A9IlBPUCIsbi5QdXNoPSJQVVNIIixuLlJlcGxhY2U9IlJFUExBQ0UiO3ZhciByPSJiZWZvcmV1bmxvYWQiLG89InBvcHN0YXRlIjtmdW5jdGlvbiBpKGUsdCxuKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoZSx0KSxuKX1mdW5jdGlvbiBhKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnJldHVyblZhbHVlPSIifWZ1bmN0aW9uIHUoKXt2YXIgZT1bXTtyZXR1cm57Z2V0IGxlbmd0aCgpe3JldHVybiBlLmxlbmd0aH0scHVzaDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wdXNoKHQpLGZ1bmN0aW9uKCl7ZT1lLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSkpfX0sY2FsbDpmdW5jdGlvbih0KXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlKHQpfSkpfX19ZnVuY3Rpb24gcygpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw4KX1mdW5jdGlvbiBjKGUpe3ZhciB0PWUucGF0aG5hbWUsbj12b2lkIDA9PT10PyIvIjp0LHI9ZS5zZWFyY2gsbz12b2lkIDA9PT1yPyIiOnIsaT1lLmhhc2gsYT12b2lkIDA9PT1pPyIiOmk7cmV0dXJuIG8mJiI/IiE9PW8mJihuKz0iPyI9PT1vLmNoYXJBdCgwKT9vOiI/IitvKSxhJiYiIyIhPT1hJiYobis9IiMiPT09YS5jaGFyQXQoMCk/YToiIyIrYSksbn1mdW5jdGlvbiBsKGUpe3ZhciB0PXt9O2lmKGUpe3ZhciBuPWUuaW5kZXhPZigiIyIpO24+PTAmJih0Lmhhc2g9ZS5zdWJzdHIobiksZT1lLnN1YnN0cigwLG4pKTt2YXIgcj1lLmluZGV4T2YoIj8iKTtyPj0wJiYodC5zZWFyY2g9ZS5zdWJzdHIociksZT1lLnN1YnN0cigwLHIpKSxlJiYodC5wYXRobmFtZT1lKX1yZXR1cm4gdH1lLmNyZWF0ZUJyb3dzZXJIaXN0b3J5PWZ1bmN0aW9uKG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgaT1uLndpbmRvdyxmPXZvaWQgMD09PWk/ZG9jdW1lbnQuZGVmYXVsdFZpZXc6aSxwPWYuaGlzdG9yeTtmdW5jdGlvbiBkKCl7dmFyIGU9Zi5sb2NhdGlvbix0PWUucGF0aG5hbWUsbj1lLnNlYXJjaCxyPWUuaGFzaCxvPXAuc3RhdGV8fHt9O3JldHVybltvLmlkeCx7cGF0aG5hbWU6dCxzZWFyY2g6bixoYXNoOnIsc3RhdGU6by51c3J8fG51bGwsa2V5Om8ua2V5fHwiZGVmYXVsdCJ9XX12YXIgaD1udWxsO2YuYWRkRXZlbnRMaXN0ZW5lcihvLChmdW5jdGlvbigpe2lmKGgpYi5jYWxsKGgpLGg9bnVsbDtlbHNle3ZhciB0PWUuQWN0aW9uLlBvcCxuPWQoKSxyPW5bMF0sbz1uWzFdO2lmKGIubGVuZ3RoKXtpZihudWxsIT1yKXt2YXIgaT1tLXI7aSYmKGg9e2FjdGlvbjp0LGxvY2F0aW9uOm8scmV0cnk6ZnVuY3Rpb24oKXtUKC0xKmkpfX0sVChpKSl9fWVsc2UgRSh0KX19KSk7dmFyIHk9ZS5BY3Rpb24uUG9wLHY9ZCgpLG09dlswXSxnPXZbMV0sXz11KCksYj11KCk7ZnVuY3Rpb24gdyhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTpjKGUpfWZ1bmN0aW9uIHgoZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49bnVsbCksdCh7cGF0aG5hbWU6Zy5wYXRobmFtZSxoYXNoOiIiLHNlYXJjaDoiIn0sInN0cmluZyI9PXR5cGVvZiBlP2woZSk6ZSx7c3RhdGU6bixrZXk6cygpfSl9ZnVuY3Rpb24gayhlLHQpe3JldHVyblt7dXNyOmUuc3RhdGUsa2V5OmUua2V5LGlkeDp0fSx3KGUpXX1mdW5jdGlvbiBTKGUsdCxuKXtyZXR1cm4hYi5sZW5ndGh8fChiLmNhbGwoe2FjdGlvbjplLGxvY2F0aW9uOnQscmV0cnk6bn0pLCExKX1mdW5jdGlvbiBFKGUpe3k9ZTt2YXIgdD1kKCk7bT10WzBdLGc9dFsxXSxfLmNhbGwoe2FjdGlvbjp5LGxvY2F0aW9uOmd9KX1mdW5jdGlvbiBUKGUpe3AuZ28oZSl9cmV0dXJuIG51bGw9PW0mJihtPTAscC5yZXBsYWNlU3RhdGUodCh7fSxwLnN0YXRlLHtpZHg6bX0pLCIiKSkse2dldCBhY3Rpb24oKXtyZXR1cm4geX0sZ2V0IGxvY2F0aW9uKCl7cmV0dXJuIGd9LGNyZWF0ZUhyZWY6dyxwdXNoOmZ1bmN0aW9uIHQobixyKXt2YXIgbz1lLkFjdGlvbi5QdXNoLGk9eChuLHIpO2lmKFMobyxpLChmdW5jdGlvbigpe3QobixyKX0pKSl7dmFyIGE9ayhpLG0rMSksdT1hWzBdLHM9YVsxXTt0cnl7cC5wdXNoU3RhdGUodSwiIixzKX1jYXRjaChlKXtmLmxvY2F0aW9uLmFzc2lnbihzKX1FKG8pfX0scmVwbGFjZTpmdW5jdGlvbiB0KG4scil7dmFyIG89ZS5BY3Rpb24uUmVwbGFjZSxpPXgobixyKTtpZihTKG8saSwoZnVuY3Rpb24oKXt0KG4scil9KSkpe3ZhciBhPWsoaSxtKSx1PWFbMF0scz1hWzFdO3AucmVwbGFjZVN0YXRlKHUsIiIscyksRShvKX19LGdvOlQsYmFjazpmdW5jdGlvbigpe1QoLTEpfSxmb3J3YXJkOmZ1bmN0aW9uKCl7VCgxKX0sbGlzdGVuOmZ1bmN0aW9uKGUpe3JldHVybiBfLnB1c2goZSl9LGJsb2NrOmZ1bmN0aW9uKGUpe3ZhciB0PWIucHVzaChlKTtyZXR1cm4gMT09PWIubGVuZ3RoJiZmLmFkZEV2ZW50TGlzdGVuZXIocixhKSxmdW5jdGlvbigpe3QoKSxiLmxlbmd0aHx8Zi5yZW1vdmVFdmVudExpc3RlbmVyKHIsYSl9fX19LGUuY3JlYXRlSGFzaEhpc3Rvcnk9ZnVuY3Rpb24obil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPW4ud2luZG93LGY9dm9pZCAwPT09aT9kb2N1bWVudC5kZWZhdWx0VmlldzppLHA9Zi5oaXN0b3J5O2Z1bmN0aW9uIGQoKXt2YXIgZT1sKGYubG9jYXRpb24uaGFzaC5zdWJzdHIoMSkpLHQ9ZS5wYXRobmFtZSxuPXZvaWQgMD09PXQ/Ii8iOnQscj1lLnNlYXJjaCxvPXZvaWQgMD09PXI/IiI6cixpPWUuaGFzaCxhPXZvaWQgMD09PWk/IiI6aSx1PXAuc3RhdGV8fHt9O3JldHVyblt1LmlkeCx7cGF0aG5hbWU6bixzZWFyY2g6byxoYXNoOmEsc3RhdGU6dS51c3J8fG51bGwsa2V5OnUua2V5fHwiZGVmYXVsdCJ9XX12YXIgaD1udWxsO2Z1bmN0aW9uIHkoKXtpZihoKXcuY2FsbChoKSxoPW51bGw7ZWxzZXt2YXIgdD1lLkFjdGlvbi5Qb3Asbj1kKCkscj1uWzBdLG89blsxXTtpZih3Lmxlbmd0aCl7aWYobnVsbCE9cil7dmFyIGk9Zy1yO2kmJihoPXthY3Rpb246dCxsb2NhdGlvbjpvLHJldHJ5OmZ1bmN0aW9uKCl7QygtMSppKX19LEMoaSkpfX1lbHNlIFQodCl9fWYuYWRkRXZlbnRMaXN0ZW5lcihvLHkpLGYuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsKGZ1bmN0aW9uKCl7YyhkKClbMV0pIT09YyhfKSYmeSgpfSkpO3ZhciB2PWUuQWN0aW9uLlBvcCxtPWQoKSxnPW1bMF0sXz1tWzFdLGI9dSgpLHc9dSgpO2Z1bmN0aW9uIHgoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpLHQ9IiI7aWYoZSYmZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSl7dmFyIG49Zi5sb2NhdGlvbi5ocmVmLHI9bi5pbmRleE9mKCIjIik7dD0tMT09PXI/bjpuLnNsaWNlKDAscil9cmV0dXJuIHR9KCkrIiMiKygic3RyaW5nIj09dHlwZW9mIGU/ZTpjKGUpKX1mdW5jdGlvbiBrKGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPW51bGwpLHQoe3BhdGhuYW1lOl8ucGF0aG5hbWUsaGFzaDoiIixzZWFyY2g6IiJ9LCJzdHJpbmciPT10eXBlb2YgZT9sKGUpOmUse3N0YXRlOm4sa2V5OnMoKX0pfWZ1bmN0aW9uIFMoZSx0KXtyZXR1cm5be3VzcjplLnN0YXRlLGtleTplLmtleSxpZHg6dH0seChlKV19ZnVuY3Rpb24gRShlLHQsbil7cmV0dXJuIXcubGVuZ3RofHwody5jYWxsKHthY3Rpb246ZSxsb2NhdGlvbjp0LHJldHJ5Om59KSwhMSl9ZnVuY3Rpb24gVChlKXt2PWU7dmFyIHQ9ZCgpO2c9dFswXSxfPXRbMV0sYi5jYWxsKHthY3Rpb246dixsb2NhdGlvbjpffSl9ZnVuY3Rpb24gQyhlKXtwLmdvKGUpfXJldHVybiBudWxsPT1nJiYoZz0wLHAucmVwbGFjZVN0YXRlKHQoe30scC5zdGF0ZSx7aWR4Omd9KSwiIikpLHtnZXQgYWN0aW9uKCl7cmV0dXJuIHZ9LGdldCBsb2NhdGlvbigpe3JldHVybiBffSxjcmVhdGVIcmVmOngscHVzaDpmdW5jdGlvbiB0KG4scil7dmFyIG89ZS5BY3Rpb24uUHVzaCxpPWsobixyKTtpZihFKG8saSwoZnVuY3Rpb24oKXt0KG4scil9KSkpe3ZhciBhPVMoaSxnKzEpLHU9YVswXSxzPWFbMV07dHJ5e3AucHVzaFN0YXRlKHUsIiIscyl9Y2F0Y2goZSl7Zi5sb2NhdGlvbi5hc3NpZ24ocyl9VChvKX19LHJlcGxhY2U6ZnVuY3Rpb24gdChuLHIpe3ZhciBvPWUuQWN0aW9uLlJlcGxhY2UsaT1rKG4scik7aWYoRShvLGksKGZ1bmN0aW9uKCl7dChuLHIpfSkpKXt2YXIgYT1TKGksZyksdT1hWzBdLHM9YVsxXTtwLnJlcGxhY2VTdGF0ZSh1LCIiLHMpLFQobyl9fSxnbzpDLGJhY2s6ZnVuY3Rpb24oKXtDKC0xKX0sZm9yd2FyZDpmdW5jdGlvbigpe0MoMSl9LGxpc3RlbjpmdW5jdGlvbihlKXtyZXR1cm4gYi5wdXNoKGUpfSxibG9jazpmdW5jdGlvbihlKXt2YXIgdD13LnB1c2goZSk7cmV0dXJuIDE9PT13Lmxlbmd0aCYmZi5hZGRFdmVudExpc3RlbmVyKHIsYSksZnVuY3Rpb24oKXt0KCksdy5sZW5ndGh8fGYucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLGEpfX19fSxlLmNyZWF0ZU1lbW9yeUhpc3Rvcnk9ZnVuY3Rpb24obil7dm9pZCAwPT09biYmKG49e30pO3ZhciByPW4sbz1yLmluaXRpYWxFbnRyaWVzLGE9dm9pZCAwPT09bz9bIi8iXTpvLGY9ci5pbml0aWFsSW5kZXgscD1hLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoe3BhdGhuYW1lOiIvIixzZWFyY2g6IiIsaGFzaDoiIixzdGF0ZTpudWxsLGtleTpzKCl9LCJzdHJpbmciPT10eXBlb2YgZT9sKGUpOmUpfSkpLGQ9aShudWxsPT1mP3AubGVuZ3RoLTE6ZiwwLHAubGVuZ3RoLTEpLGg9ZS5BY3Rpb24uUG9wLHk9cFtkXSx2PXUoKSxtPXUoKTtmdW5jdGlvbiBnKGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPW51bGwpLHQoe3BhdGhuYW1lOnkucGF0aG5hbWUsc2VhcmNoOiIiLGhhc2g6IiJ9LCJzdHJpbmciPT10eXBlb2YgZT9sKGUpOmUse3N0YXRlOm4sa2V5OnMoKX0pfWZ1bmN0aW9uIF8oZSx0LG4pe3JldHVybiFtLmxlbmd0aHx8KG0uY2FsbCh7YWN0aW9uOmUsbG9jYXRpb246dCxyZXRyeTpufSksITEpfWZ1bmN0aW9uIGIoZSx0KXtoPWUseT10LHYuY2FsbCh7YWN0aW9uOmgsbG9jYXRpb246eX0pfWZ1bmN0aW9uIHcodCl7dmFyIG49aShkK3QsMCxwLmxlbmd0aC0xKSxyPWUuQWN0aW9uLlBvcCxvPXBbbl07XyhyLG8sKGZ1bmN0aW9uKCl7dyh0KX0pKSYmKGQ9bixiKHIsbykpfXJldHVybntnZXQgaW5kZXgoKXtyZXR1cm4gZH0sZ2V0IGFjdGlvbigpe3JldHVybiBofSxnZXQgbG9jYXRpb24oKXtyZXR1cm4geX0sY3JlYXRlSHJlZjpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTpjKGUpfSxwdXNoOmZ1bmN0aW9uIHQobixyKXt2YXIgbz1lLkFjdGlvbi5QdXNoLGk9ZyhuLHIpO18obyxpLChmdW5jdGlvbigpe3QobixyKX0pKSYmKGQrPTEscC5zcGxpY2UoZCxwLmxlbmd0aCxpKSxiKG8saSkpfSxyZXBsYWNlOmZ1bmN0aW9uIHQobixyKXt2YXIgbz1lLkFjdGlvbi5SZXBsYWNlLGk9ZyhuLHIpO18obyxpLChmdW5jdGlvbigpe3QobixyKX0pKSYmKHBbZF09aSxiKG8saSkpfSxnbzp3LGJhY2s6ZnVuY3Rpb24oKXt3KC0xKX0sZm9yd2FyZDpmdW5jdGlvbigpe3coMSl9LGxpc3RlbjpmdW5jdGlvbihlKXtyZXR1cm4gdi5wdXNoKGUpfSxibG9jazpmdW5jdGlvbihlKXtyZXR1cm4gbS5wdXNoKGUpfX19LGUuY3JlYXRlUGF0aD1jLGUucGFyc2VQYXRoPWwsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSh0KX0sODA0MTooZSx0KT0+e2Z1bmN0aW9uIG4oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07dGhyb3cgRXJyb3IoIltJbW1lcl0gbWluaWZpZWQgZXJyb3IgbnI6ICIrZSsobi5sZW5ndGg/IiAiK24ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iJyIrZSsiJyJ9KSkuam9pbigiLCIpOiIiKSsiLiBGaW5kIHRoZSBmdWxsIGVycm9yIGF0OiBodHRwczovL2JpdC5seS8zY1hFS1dmIil9ZnVuY3Rpb24gcihlKXtyZXR1cm4hIWUmJiEhZVtRXX1mdW5jdGlvbiBvKGUpe3ZhciB0O3JldHVybiEhZSYmKGZ1bmN0aW9uKGUpe2lmKCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO2lmKG51bGw9PT10KXJldHVybiEwO3ZhciBuPU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3I7cmV0dXJuIG49PT1PYmplY3R8fCJmdW5jdGlvbiI9PXR5cGVvZiBuJiZGdW5jdGlvbi50b1N0cmluZy5jYWxsKG4pPT09S30oZSl8fEFycmF5LmlzQXJyYXkoZSl8fCEhZVtHXXx8ISEobnVsbD09PSh0PWUuY29uc3RydWN0b3IpfHx2b2lkIDA9PT10P3ZvaWQgMDp0W0ddKXx8ZihlKXx8cChlKSl9ZnVuY3Rpb24gaShlLHQsbil7dm9pZCAwPT09biYmKG49ITEpLDA9PT1hKGUpPyhuP09iamVjdC5rZXlzOlgpKGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe24mJiJzeW1ib2wiPT10eXBlb2Ygcnx8dChyLGVbcl0sZSl9KSk6ZS5mb3JFYWNoKChmdW5jdGlvbihuLHIpe3JldHVybiB0KHIsbixlKX0pKX1mdW5jdGlvbiBhKGUpe3ZhciB0PWVbUV07cmV0dXJuIHQ/dC50PjM/dC50LTQ6dC50OkFycmF5LmlzQXJyYXkoZSk/MTpmKGUpPzI6cChlKT8zOjB9ZnVuY3Rpb24gdShlLHQpe3JldHVybiAyPT09YShlKT9lLmhhcyh0KTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIDI9PT1hKGUpP2UuZ2V0KHQpOmVbdF19ZnVuY3Rpb24gYyhlLHQsbil7dmFyIHI9YShlKTsyPT09cj9lLnNldCh0LG4pOjM9PT1yP2UuYWRkKG4pOmVbdF09bn1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuIGU9PT10PzAhPT1lfHwxL2U9PTEvdDplIT1lJiZ0IT10fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIEgmJmUgaW5zdGFuY2VvZiBNYXB9ZnVuY3Rpb24gcChlKXtyZXR1cm4gJCYmZSBpbnN0YW5jZW9mIFNldH1mdW5jdGlvbiBkKGUpe3JldHVybiBlLml8fGUudX1mdW5jdGlvbiBoKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpO3ZhciB0PUooZSk7ZGVsZXRlIHRbUV07Zm9yKHZhciBuPVgodCkscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbz1uW3JdLGk9dFtvXTshMT09PWkud3JpdGFibGUmJihpLndyaXRhYmxlPSEwLGkuY29uZmlndXJhYmxlPSEwKSwoaS5nZXR8fGkuc2V0KSYmKHRbb109e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxlbnVtZXJhYmxlOmkuZW51bWVyYWJsZSx2YWx1ZTplW29dfSl9cmV0dXJuIE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpLHQpfWZ1bmN0aW9uIHkoZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9ITEpLG0oZSl8fHIoZSl8fCFvKGUpfHwoYShlKT4xJiYoZS5zZXQ9ZS5hZGQ9ZS5jbGVhcj1lLmRlbGV0ZT12KSxPYmplY3QuZnJlZXplKGUpLHQmJmkoZSwoZnVuY3Rpb24oZSx0KXtyZXR1cm4geSh0LCEwKX0pLCEwKSksZX1mdW5jdGlvbiB2KCl7bigyKX1mdW5jdGlvbiBtKGUpe3JldHVybiBudWxsPT1lfHwib2JqZWN0IiE9dHlwZW9mIGV8fE9iamVjdC5pc0Zyb3plbihlKX1mdW5jdGlvbiBnKGUpe3ZhciB0PVpbZV07cmV0dXJuIHR8fG4oMTgsZSksdH1mdW5jdGlvbiBfKGUsdCl7WltlXXx8KFpbZV09dCl9ZnVuY3Rpb24gYigpe3JldHVybiBCfWZ1bmN0aW9uIHcoZSx0KXt0JiYoZygiUGF0Y2hlcyIpLGUubz1bXSxlLnY9W10sZS5zPXQpfWZ1bmN0aW9uIHgoZSl7ayhlKSxlLnAuZm9yRWFjaChFKSxlLnA9bnVsbH1mdW5jdGlvbiBrKGUpe2U9PT1CJiYoQj1lLmwpfWZ1bmN0aW9uIFMoZSl7cmV0dXJuIEI9e3A6W10sbDpCLGg6ZSxfOiEwLG06MH19ZnVuY3Rpb24gRShlKXt2YXIgdD1lW1FdOzA9PT10LnR8fDE9PT10LnQ/dC5qKCk6dC5PPSEwfWZ1bmN0aW9uIFQoZSx0KXt0Lm09dC5wLmxlbmd0aDt2YXIgcj10LnBbMF0saT12b2lkIDAhPT1lJiZlIT09cjtyZXR1cm4gdC5oLlN8fGcoIkVTNSIpLlAodCxlLGkpLGk/KHJbUV0uZyYmKHgodCksbig0KSksbyhlKSYmKGU9Qyh0LGUpLHQubHx8UCh0LGUpKSx0Lm8mJmcoIlBhdGNoZXMiKS5NKHJbUV0udSxlLHQubyx0LnYpKTplPUModCxyLFtdKSx4KHQpLHQubyYmdC5zKHQubyx0LnYpLGUhPT1xP2U6dm9pZCAwfWZ1bmN0aW9uIEMoZSx0LG4pe2lmKG0odCkpcmV0dXJuIHQ7dmFyIHI9dFtRXTtpZighcilyZXR1cm4gaSh0LChmdW5jdGlvbihvLGkpe3JldHVybiBPKGUscix0LG8saSxuKX0pLCEwKSx0O2lmKHIuQSE9PWUpcmV0dXJuIHQ7aWYoIXIuZylyZXR1cm4gUChlLHIudSwhMCksci51O2lmKCFyLlIpe3IuUj0hMCxyLkEubS0tO3ZhciBvPTQ9PT1yLnR8fDU9PT1yLnQ/ci5pPWgoci5rKTpyLmksYT1vLHU9ITE7Mz09PXIudCYmKGE9bmV3IFNldChvKSxvLmNsZWFyKCksdT0hMCksaShhLChmdW5jdGlvbih0LGkpe3JldHVybiBPKGUscixvLHQsaSxuLHUpfSkpLFAoZSxvLCExKSxuJiZlLm8mJmcoIlBhdGNoZXMiKS5GKHIsbixlLm8sZS52KX1yZXR1cm4gci5pfWZ1bmN0aW9uIE8oZSx0LG4saSxhLHMsbCl7aWYocihhKSl7dmFyIGY9QyhlLGEscyYmdCYmMyE9PXQudCYmIXUodC5OLGkpP3MuY29uY2F0KGkpOnZvaWQgMCk7aWYoYyhuLGksZiksIXIoZikpcmV0dXJuO2UuXz0hMX1lbHNlIGwmJm4uYWRkKGEpO2lmKG8oYSkmJiFtKGEpKXtpZighZS5oLkQmJmUubTwxKXJldHVybjtDKGUsYSksdCYmdC5BLmx8fFAoZSxhKX19ZnVuY3Rpb24gUChlLHQsbil7dm9pZCAwPT09biYmKG49ITEpLCFlLmwmJmUuaC5EJiZlLl8mJnkodCxuKX1mdW5jdGlvbiBBKGUsdCl7dmFyIG49ZVtRXTtyZXR1cm4obj9kKG4pOmUpW3RdfWZ1bmN0aW9uIGooZSx0KXtpZih0IGluIGUpZm9yKHZhciBuPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtuOyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpO2lmKHIpcmV0dXJuIHI7bj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobil9fWZ1bmN0aW9uIFIoZSl7ZS5nfHwoZS5nPSEwLGUubCYmUihlLmwpKX1mdW5jdGlvbiBNKGUpe2UuaXx8KGUuaT1oKGUudSkpfWZ1bmN0aW9uIE4oZSx0LG4pe3ZhciByPWYodCk/ZygiTWFwU2V0IikuSyh0LG4pOnAodCk/ZygiTWFwU2V0IikuJCh0LG4pOmUuUz9mdW5jdGlvbihlLHQpe3ZhciBuPUFycmF5LmlzQXJyYXkoZSkscj17dDpuPzE6MCxBOnQ/dC5BOmIoKSxnOiExLFI6ITEsTjp7fSxsOnQsdTplLGs6bnVsbCxpOm51bGwsajpudWxsLEM6ITF9LG89cixpPWVlO24mJihvPVtyXSxpPXRlKTt2YXIgYT1Qcm94eS5yZXZvY2FibGUobyxpKSx1PWEucmV2b2tlLHM9YS5wcm94eTtyZXR1cm4gci5rPXMsci5qPXUsc30odCxuKTpnKCJFUzUiKS5JKHQsbik7cmV0dXJuKG4/bi5BOmIoKSkucC5wdXNoKHIpLHJ9ZnVuY3Rpb24gSShlKXtyZXR1cm4gcihlKXx8bigyMixlKSxmdW5jdGlvbiBlKHQpe2lmKCFvKHQpKXJldHVybiB0O3ZhciBuLHI9dFtRXSx1PWEodCk7aWYocil7aWYoIXIuZyYmKHIudDw0fHwhZygiRVM1IikuSihyKSkpcmV0dXJuIHIudTtyLlI9ITAsbj1GKHQsdSksci5SPSExfWVsc2Ugbj1GKHQsdSk7cmV0dXJuIGkobiwoZnVuY3Rpb24odCxvKXtyJiZzKHIudSx0KT09PW98fGMobix0LGUobykpfSkpLDM9PT11P25ldyBTZXQobik6bn0oZSl9ZnVuY3Rpb24gRihlLHQpe3N3aXRjaCh0KXtjYXNlIDI6cmV0dXJuIG5ldyBNYXAoZSk7Y2FzZSAzOnJldHVybiBBcnJheS5mcm9tKGUpfXJldHVybiBoKGUpfWZ1bmN0aW9uIEQoKXtmdW5jdGlvbiBlKGUsdCl7dmFyIG49YVtlXTtyZXR1cm4gbj9uLmVudW1lcmFibGU9dDphW2VdPW49e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOnQsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVlLmdldCh0aGlzW1FdLGUpfSxzZXQ6ZnVuY3Rpb24odCl7ZWUuc2V0KHRoaXNbUV0sZSx0KX19LG59ZnVuY3Rpb24gdChlKXtmb3IodmFyIHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSl7dmFyIHI9ZVt0XVtRXTtpZighci5nKXN3aXRjaChyLnQpe2Nhc2UgNTpvKHIpJiZSKHIpO2JyZWFrO2Nhc2UgNDpuKHIpJiZSKHIpfX19ZnVuY3Rpb24gbihlKXtmb3IodmFyIHQ9ZS51LG49ZS5rLHI9WChuKSxvPXIubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBpPXJbb107aWYoaSE9PVEpe3ZhciBhPXRbaV07aWYodm9pZCAwPT09YSYmIXUodCxpKSlyZXR1cm4hMDt2YXIgcz1uW2ldLGM9cyYmc1tRXTtpZihjP2MudSE9PWE6IWwocyxhKSlyZXR1cm4hMH19dmFyIGY9ISF0W1FdO3JldHVybiByLmxlbmd0aCE9PVgodCkubGVuZ3RoKyhmPzA6MSl9ZnVuY3Rpb24gbyhlKXt2YXIgdD1lLms7aWYodC5sZW5ndGghPT1lLnUubGVuZ3RoKXJldHVybiEwO3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCx0Lmxlbmd0aC0xKTtpZihuJiYhbi5nZXQpcmV0dXJuITA7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspaWYoIXQuaGFzT3duUHJvcGVydHkocikpcmV0dXJuITA7cmV0dXJuITF9dmFyIGE9e307XygiRVM1Iix7STpmdW5jdGlvbih0LG4pe3ZhciByPUFycmF5LmlzQXJyYXkodCksbz1mdW5jdGlvbih0LG4pe2lmKHQpe2Zvcih2YXIgcj1BcnJheShuLmxlbmd0aCksbz0wO288bi5sZW5ndGg7bysrKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCIiK28sZShvLCEwKSk7cmV0dXJuIHJ9dmFyIGk9SihuKTtkZWxldGUgaVtRXTtmb3IodmFyIGE9WChpKSx1PTA7dTxhLmxlbmd0aDt1Kyspe3ZhciBzPWFbdV07aVtzXT1lKHMsdHx8ISFpW3NdLmVudW1lcmFibGUpfXJldHVybiBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSxpKX0ocix0KSxpPXt0OnI/NTo0LEE6bj9uLkE6YigpLGc6ITEsUjohMSxOOnt9LGw6bix1OnQsazpvLGk6bnVsbCxPOiExLEM6ITF9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobyxRLHt2YWx1ZTppLHdyaXRhYmxlOiEwfSksb30sUDpmdW5jdGlvbihlLG4sYSl7YT9yKG4pJiZuW1FdLkE9PT1lJiZ0KGUucCk6KGUubyYmZnVuY3Rpb24gZSh0KXtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQpe3ZhciBuPXRbUV07aWYobil7dmFyIHI9bi51LGE9bi5rLHM9bi5OLGM9bi50O2lmKDQ9PT1jKWkoYSwoZnVuY3Rpb24odCl7dCE9PVEmJih2b2lkIDAhPT1yW3RdfHx1KHIsdCk/c1t0XXx8ZShhW3RdKTooc1t0XT0hMCxSKG4pKSl9KSksaShyLChmdW5jdGlvbihlKXt2b2lkIDAhPT1hW2VdfHx1KGEsZSl8fChzW2VdPSExLFIobikpfSkpO2Vsc2UgaWYoNT09PWMpe2lmKG8obikmJihSKG4pLHMubGVuZ3RoPSEwKSxhLmxlbmd0aDxyLmxlbmd0aClmb3IodmFyIGw9YS5sZW5ndGg7bDxyLmxlbmd0aDtsKyspc1tsXT0hMTtlbHNlIGZvcih2YXIgZj1yLmxlbmd0aDtmPGEubGVuZ3RoO2YrKylzW2ZdPSEwO2Zvcih2YXIgcD1NYXRoLm1pbihhLmxlbmd0aCxyLmxlbmd0aCksZD0wO2Q8cDtkKyspYS5oYXNPd25Qcm9wZXJ0eShkKXx8KHNbZF09ITApLHZvaWQgMD09PXNbZF0mJmUoYVtkXSl9fX19KGUucFswXSksdChlLnApKX0sSjpmdW5jdGlvbihlKXtyZXR1cm4gND09PWUudD9uKGUpOm8oZSl9fSl9ZnVuY3Rpb24gTCgpe2Z1bmN0aW9uIGUodCl7aWYoIW8odCkpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoZSk7aWYoZih0KSlyZXR1cm4gbmV3IE1hcChBcnJheS5mcm9tKHQuZW50cmllcygpKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVyblt0WzBdLGUodFsxXSldfSkpKTtpZihwKHQpKXJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odCkubWFwKGUpKTt2YXIgbj1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSk7Zm9yKHZhciByIGluIHQpbltyXT1lKHRbcl0pO3JldHVybiB1KHQsRykmJihuW0ddPXRbR10pLG59ZnVuY3Rpb24gdCh0KXtyZXR1cm4gcih0KT9lKHQpOnR9dmFyIGM9ImFkZCI7XygiUGF0Y2hlcyIse1c6ZnVuY3Rpb24odCxyKXtyZXR1cm4gci5mb3JFYWNoKChmdW5jdGlvbihyKXtmb3IodmFyIG89ci5wYXRoLGk9ci5vcCx1PXQsbD0wO2w8by5sZW5ndGgtMTtsKyspe3ZhciBmPWEodSkscD1vW2xdOyJzdHJpbmciIT10eXBlb2YgcCYmIm51bWJlciIhPXR5cGVvZiBwJiYocD0iIitwKSwwIT09ZiYmMSE9PWZ8fCJfX3Byb3RvX18iIT09cCYmImNvbnN0cnVjdG9yIiE9PXB8fG4oMjQpLCJmdW5jdGlvbiI9PXR5cGVvZiB1JiYicHJvdG90eXBlIj09PXAmJm4oMjQpLCJvYmplY3QiIT10eXBlb2YodT1zKHUscCkpJiZuKDE1LG8uam9pbigiLyIpKX12YXIgZD1hKHUpLGg9ZShyLnZhbHVlKSx5PW9bby5sZW5ndGgtMV07c3dpdGNoKGkpe2Nhc2UicmVwbGFjZSI6c3dpdGNoKGQpe2Nhc2UgMjpyZXR1cm4gdS5zZXQoeSxoKTtjYXNlIDM6bigxNik7ZGVmYXVsdDpyZXR1cm4gdVt5XT1ofWNhc2UgYzpzd2l0Y2goZCl7Y2FzZSAxOnJldHVybiItIj09PXk/dS5wdXNoKGgpOnUuc3BsaWNlKHksMCxoKTtjYXNlIDI6cmV0dXJuIHUuc2V0KHksaCk7Y2FzZSAzOnJldHVybiB1LmFkZChoKTtkZWZhdWx0OnJldHVybiB1W3ldPWh9Y2FzZSJyZW1vdmUiOnN3aXRjaChkKXtjYXNlIDE6cmV0dXJuIHUuc3BsaWNlKHksMSk7Y2FzZSAyOnJldHVybiB1LmRlbGV0ZSh5KTtjYXNlIDM6cmV0dXJuIHUuZGVsZXRlKHIudmFsdWUpO2RlZmF1bHQ6cmV0dXJuIGRlbGV0ZSB1W3ldfWRlZmF1bHQ6bigxNyxpKX19KSksdH0sRjpmdW5jdGlvbihlLG4scixvKXtzd2l0Y2goZS50KXtjYXNlIDA6Y2FzZSA0OmNhc2UgMjpyZXR1cm4gZnVuY3Rpb24oZSxuLHIsbyl7dmFyIGE9ZS51LGw9ZS5pO2koZS5OLChmdW5jdGlvbihlLGkpe3ZhciBmPXMoYSxlKSxwPXMobCxlKSxkPWk/dShhLGUpPyJyZXBsYWNlIjpjOiJyZW1vdmUiO2lmKGYhPT1wfHwicmVwbGFjZSIhPT1kKXt2YXIgaD1uLmNvbmNhdChlKTtyLnB1c2goInJlbW92ZSI9PT1kP3tvcDpkLHBhdGg6aH06e29wOmQscGF0aDpoLHZhbHVlOnB9KSxvLnB1c2goZD09PWM/e29wOiJyZW1vdmUiLHBhdGg6aH06InJlbW92ZSI9PT1kP3tvcDpjLHBhdGg6aCx2YWx1ZTp0KGYpfTp7b3A6InJlcGxhY2UiLHBhdGg6aCx2YWx1ZTp0KGYpfSl9fSkpfShlLG4scixvKTtjYXNlIDU6Y2FzZSAxOnJldHVybiBmdW5jdGlvbihlLG4scixvKXt2YXIgaT1lLnUsYT1lLk4sdT1lLmk7aWYodS5sZW5ndGg8aS5sZW5ndGgpe3ZhciBzPVt1LGldO2k9c1swXSx1PXNbMV07dmFyIGw9W28scl07cj1sWzBdLG89bFsxXX1mb3IodmFyIGY9MDtmPGkubGVuZ3RoO2YrKylpZihhW2ZdJiZ1W2ZdIT09aVtmXSl7dmFyIHA9bi5jb25jYXQoW2ZdKTtyLnB1c2goe29wOiJyZXBsYWNlIixwYXRoOnAsdmFsdWU6dCh1W2ZdKX0pLG8ucHVzaCh7b3A6InJlcGxhY2UiLHBhdGg6cCx2YWx1ZTp0KGlbZl0pfSl9Zm9yKHZhciBkPWkubGVuZ3RoO2Q8dS5sZW5ndGg7ZCsrKXt2YXIgaD1uLmNvbmNhdChbZF0pO3IucHVzaCh7b3A6YyxwYXRoOmgsdmFsdWU6dCh1W2RdKX0pfWkubGVuZ3RoPHUubGVuZ3RoJiZvLnB1c2goe29wOiJyZXBsYWNlIixwYXRoOm4uY29uY2F0KFsibGVuZ3RoIl0pLHZhbHVlOmkubGVuZ3RofSl9KGUsbixyLG8pO2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ZS51LGk9ZS5pLGE9MDtvLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKCFpLmhhcyhlKSl7dmFyIG89dC5jb25jYXQoW2FdKTtuLnB1c2goe29wOiJyZW1vdmUiLHBhdGg6byx2YWx1ZTplfSksci51bnNoaWZ0KHtvcDpjLHBhdGg6byx2YWx1ZTplfSl9YSsrfSkpLGE9MCxpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKCFvLmhhcyhlKSl7dmFyIGk9dC5jb25jYXQoW2FdKTtuLnB1c2goe29wOmMscGF0aDppLHZhbHVlOmV9KSxyLnVuc2hpZnQoe29wOiJyZW1vdmUiLHBhdGg6aSx2YWx1ZTplfSl9YSsrfSkpfShlLG4scixvKX19LE06ZnVuY3Rpb24oZSx0LG4scil7bi5wdXNoKHtvcDoicmVwbGFjZSIscGF0aDpbXSx2YWx1ZTp0PT09cT92b2lkIDA6dH0pLHIucHVzaCh7b3A6InJlcGxhY2UiLHBhdGg6W10sdmFsdWU6ZX0pfX0pfWZ1bmN0aW9uIHooKXtmdW5jdGlvbiBlKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX11KGUsdCksZS5wcm90b3R5cGU9KG4ucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBuKX1mdW5jdGlvbiB0KGUpe2UuaXx8KGUuTj1uZXcgTWFwLGUuaT1uZXcgTWFwKGUudSkpfWZ1bmN0aW9uIHIoZSl7ZS5pfHwoZS5pPW5ldyBTZXQsZS51LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKG8odCkpe3ZhciBuPU4oZS5BLmgsdCxlKTtlLnAuc2V0KHQsbiksZS5pLmFkZChuKX1lbHNlIGUuaS5hZGQodCl9KSkpfWZ1bmN0aW9uIGEoZSl7ZS5PJiZuKDMsSlNPTi5zdHJpbmdpZnkoZChlKSkpfXZhciB1PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09dFtuXSl9KShlLHQpfSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihlLHQpe3JldHVybiB0aGlzW1FdPXt0OjIsbDp0LEE6dD90LkE6YigpLGc6ITEsUjohMSxpOnZvaWQgMCxOOnZvaWQgMCx1OmUsazp0aGlzLEM6ITEsTzohMX0sdGhpc31lKG4sTWFwKTt2YXIgcj1uLnByb3RvdHlwZTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZCh0aGlzW1FdKS5zaXplfX0pLHIuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBkKHRoaXNbUV0pLmhhcyhlKX0sci5zZXQ9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzW1FdO3JldHVybiBhKHIpLGQocikuaGFzKGUpJiZkKHIpLmdldChlKT09PW58fCh0KHIpLFIociksci5OLnNldChlLCEwKSxyLmkuc2V0KGUsbiksci5OLnNldChlLCEwKSksdGhpc30sci5kZWxldGU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuaGFzKGUpKXJldHVybiExO3ZhciBuPXRoaXNbUV07cmV0dXJuIGEobiksdChuKSxSKG4pLG4udS5oYXMoZSk/bi5OLnNldChlLCExKTpuLk4uZGVsZXRlKGUpLG4uaS5kZWxldGUoZSksITB9LHIuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzW1FdO2EoZSksZChlKS5zaXplJiYodChlKSxSKGUpLGUuTj1uZXcgTWFwLGkoZS51LChmdW5jdGlvbih0KXtlLk4uc2V0KHQsITEpfSkpLGUuaS5jbGVhcigpKX0sci5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztkKHRoaXNbUV0pLmZvckVhY2goKGZ1bmN0aW9uKHIsbyl7ZS5jYWxsKHQsbi5nZXQobyksbyxuKX0pKX0sci5nZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpc1tRXTthKG4pO3ZhciByPWQobikuZ2V0KGUpO2lmKG4uUnx8IW8ocikpcmV0dXJuIHI7aWYociE9PW4udS5nZXQoZSkpcmV0dXJuIHI7dmFyIGk9TihuLkEuaCxyLG4pO3JldHVybiB0KG4pLG4uaS5zZXQoZSxpKSxpfSxyLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gZCh0aGlzW1FdKS5rZXlzKCl9LHIudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG49dGhpcy5rZXlzKCk7cmV0dXJuKGU9e30pW1ldPWZ1bmN0aW9uKCl7cmV0dXJuIHQudmFsdWVzKCl9LGUubmV4dD1mdW5jdGlvbigpe3ZhciBlPW4ubmV4dCgpO3JldHVybiBlLmRvbmU/ZTp7ZG9uZTohMSx2YWx1ZTp0LmdldChlLnZhbHVlKX19LGV9LHIuZW50cmllcz1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXRoaXMua2V5cygpO3JldHVybihlPXt9KVtZXT1mdW5jdGlvbigpe3JldHVybiB0LmVudHJpZXMoKX0sZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIGU9bi5uZXh0KCk7aWYoZS5kb25lKXJldHVybiBlO3ZhciByPXQuZ2V0KGUudmFsdWUpO3JldHVybntkb25lOiExLHZhbHVlOltlLnZhbHVlLHJdfX0sZX0scltZXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVudHJpZXMoKX0sbn0oKSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQpe3JldHVybiB0aGlzW1FdPXt0OjMsbDp0LEE6dD90LkE6YigpLGc6ITEsUjohMSxpOnZvaWQgMCx1OmUsazp0aGlzLHA6bmV3IE1hcCxPOiExLEM6ITF9LHRoaXN9ZSh0LFNldCk7dmFyIG49dC5wcm90b3R5cGU7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQodGhpc1tRXSkuc2l6ZX19KSxuLmhhcz1mdW5jdGlvbihlKXt2YXIgdD10aGlzW1FdO3JldHVybiBhKHQpLHQuaT8hIXQuaS5oYXMoZSl8fCEoIXQucC5oYXMoZSl8fCF0LmkuaGFzKHQucC5nZXQoZSkpKTp0LnUuaGFzKGUpfSxuLmFkZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzW1FdO3JldHVybiBhKHQpLHRoaXMuaGFzKGUpfHwocih0KSxSKHQpLHQuaS5hZGQoZSkpLHRoaXN9LG4uZGVsZXRlPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLmhhcyhlKSlyZXR1cm4hMTt2YXIgdD10aGlzW1FdO3JldHVybiBhKHQpLHIodCksUih0KSx0LmkuZGVsZXRlKGUpfHwhIXQucC5oYXMoZSkmJnQuaS5kZWxldGUodC5wLmdldChlKSl9LG4uY2xlYXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzW1FdO2EoZSksZChlKS5zaXplJiYocihlKSxSKGUpLGUuaS5jbGVhcigpKX0sbi52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzW1FdO3JldHVybiBhKGUpLHIoZSksZS5pLnZhbHVlcygpfSxuLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzW1FdO3JldHVybiBhKGUpLHIoZSksZS5pLmVudHJpZXMoKX0sbi5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzKCl9LG5bWV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMoKX0sbi5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXRoaXMudmFsdWVzKCkscj1uLm5leHQoKTshci5kb25lOyllLmNhbGwodCxyLnZhbHVlLHIudmFsdWUsdGhpcykscj1uLm5leHQoKX0sdH0oKTtfKCJNYXBTZXQiLHtLOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBzKGUsdCl9LCQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IGMoZSx0KX19KX12YXIgVTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEIsVz0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2woIngiKSxIPSJ1bmRlZmluZWQiIT10eXBlb2YgTWFwLCQ9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQsVj0idW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiZ2b2lkIDAhPT1Qcm94eS5yZXZvY2FibGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCxxPVc/U3ltYm9sLmZvcigiaW1tZXItbm90aGluZyIpOigoVT17fSlbImltbWVyLW5vdGhpbmciXT0hMCxVKSxHPVc/U3ltYm9sLmZvcigiaW1tZXItZHJhZnRhYmxlIik6Il9fJGltbWVyX2RyYWZ0YWJsZSIsUT1XP1N5bWJvbC5mb3IoImltbWVyLXN0YXRlIik6Il9fJGltbWVyX3N0YXRlIixZPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixLPSIiK09iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IsWD0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3Qub3duS2V5cz9SZWZsZWN0Lm93bktleXM6dm9pZCAwIT09T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSkpfTpPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxKPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzfHxmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gWChlKS5mb3JFYWNoKChmdW5jdGlvbihuKXt0W25dPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKX0pKSx0fSxaPXt9LGVlPXtnZXQ6ZnVuY3Rpb24oZSx0KXtpZih0PT09USlyZXR1cm4gZTt2YXIgbj1kKGUpO2lmKCF1KG4sdCkpcmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixvPWoodCxuKTtyZXR1cm4gbz8idmFsdWUiaW4gbz9vLnZhbHVlOm51bGw9PT0ocj1vLmdldCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuY2FsbChlLmspOnZvaWQgMH0oZSxuLHQpO3ZhciByPW5bdF07cmV0dXJuIGUuUnx8IW8ocik/cjpyPT09QShlLnUsdCk/KE0oZSksZS5pW3RdPU4oZS5BLmgscixlKSk6cn0saGFzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQgaW4gZChlKX0sb3duS2V5czpmdW5jdGlvbihlKXtyZXR1cm4gUmVmbGVjdC5vd25LZXlzKGQoZSkpfSxzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWooZChlKSx0KTtpZihudWxsPT1yP3ZvaWQgMDpyLnNldClyZXR1cm4gci5zZXQuY2FsbChlLmssbiksITA7aWYoIWUuZyl7dmFyIG89QShkKGUpLHQpLGk9bnVsbD09bz92b2lkIDA6b1tRXTtpZihpJiZpLnU9PT1uKXJldHVybiBlLmlbdF09bixlLk5bdF09ITEsITA7aWYobChuLG8pJiYodm9pZCAwIT09bnx8dShlLnUsdCkpKXJldHVybiEwO00oZSksUihlKX1yZXR1cm4gZS5pW3RdPT09biYmKHZvaWQgMCE9PW58fHQgaW4gZS5pKXx8TnVtYmVyLmlzTmFOKG4pJiZOdW1iZXIuaXNOYU4oZS5pW3RdKXx8KGUuaVt0XT1uLGUuTlt0XT0hMCksITB9LGRlbGV0ZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMCE9PUEoZS51LHQpfHx0IGluIGUudT8oZS5OW3RdPSExLE0oZSksUihlKSk6ZGVsZXRlIGUuTlt0XSxlLmkmJmRlbGV0ZSBlLmlbdF0sITB9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbihlLHQpe3ZhciBuPWQoZSkscj1SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpO3JldHVybiByP3t3cml0YWJsZTohMCxjb25maWd1cmFibGU6MSE9PWUudHx8Imxlbmd0aCIhPT10LGVudW1lcmFibGU6ci5lbnVtZXJhYmxlLHZhbHVlOm5bdF19OnJ9LGRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7bigxMSl9LGdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZS51KX0sc2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oKXtuKDEyKX19LHRlPXt9O2koZWUsKGZ1bmN0aW9uKGUsdCl7dGVbZV09ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzWzBdPWFyZ3VtZW50c1swXVswXSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSksdGUuZGVsZXRlUHJvcGVydHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGUuc2V0LmNhbGwodGhpcyxlLHQsdm9pZCAwKX0sdGUuc2V0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZWUuc2V0LmNhbGwodGhpcyxlWzBdLHQsbixlWzBdKX07dmFyIG5lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt2YXIgdD10aGlzO3RoaXMuUz1WLHRoaXMuRD0hMCx0aGlzLnByb2R1Y2U9ZnVuY3Rpb24oZSxyLGkpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2Ygcil7dmFyIGE9cjtyPWU7dmFyIHU9dDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt2b2lkIDA9PT1lJiYoZT1hKTtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxvPUFycmF5KG4+MT9uLTE6MCksaT0xO2k8bjtpKyspb1tpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4gdS5wcm9kdWNlKGUsKGZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybihuPXIpLmNhbGwuYXBwbHkobixbdCxlXS5jb25jYXQobykpfSkpfX12YXIgcztpZigiZnVuY3Rpb24iIT10eXBlb2YgciYmbig2KSx2b2lkIDAhPT1pJiYiZnVuY3Rpb24iIT10eXBlb2YgaSYmbig3KSxvKGUpKXt2YXIgYz1TKHQpLGw9Tih0LGUsdm9pZCAwKSxmPSEwO3RyeXtzPXIobCksZj0hMX1maW5hbGx5e2Y/eChjKTprKGMpfXJldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmcyBpbnN0YW5jZW9mIFByb21pc2U/cy50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gdyhjLGkpLFQoZSxjKX0pLChmdW5jdGlvbihlKXt0aHJvdyB4KGMpLGV9KSk6KHcoYyxpKSxUKHMsYykpfWlmKCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpe2lmKHZvaWQgMD09PShzPXIoZSkpJiYocz1lKSxzPT09cSYmKHM9dm9pZCAwKSx0LkQmJnkocywhMCksaSl7dmFyIHA9W10sZD1bXTtnKCJQYXRjaGVzIikuTShlLHMscCxkKSxpKHAsZCl9cmV0dXJuIHN9bigyMSxlKX0sdGhpcy5wcm9kdWNlV2l0aFBhdGNoZXM9ZnVuY3Rpb24oZSxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gZnVuY3Rpb24obil7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1BcnJheShyPjE/ci0xOjApLGk9MTtpPHI7aSsrKW9baS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIHQucHJvZHVjZVdpdGhQYXRjaGVzKG4sKGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHZvaWQgMCxbdF0uY29uY2F0KG8pKX0pKX07dmFyIHIsbyxpPXQucHJvZHVjZShlLG4sKGZ1bmN0aW9uKGUsdCl7cj1lLG89dH0pKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJmkgaW5zdGFuY2VvZiBQcm9taXNlP2kudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuW2UscixvXX0pKTpbaSxyLG9dfSwiYm9vbGVhbiI9PXR5cGVvZihudWxsPT1lP3ZvaWQgMDplLnVzZVByb3hpZXMpJiZ0aGlzLnNldFVzZVByb3hpZXMoZS51c2VQcm94aWVzKSwiYm9vbGVhbiI9PXR5cGVvZihudWxsPT1lP3ZvaWQgMDplLmF1dG9GcmVlemUpJiZ0aGlzLnNldEF1dG9GcmVlemUoZS5hdXRvRnJlZXplKX12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5jcmVhdGVEcmFmdD1mdW5jdGlvbihlKXtvKGUpfHxuKDgpLHIoZSkmJihlPUkoZSkpO3ZhciB0PVModGhpcyksaT1OKHRoaXMsZSx2b2lkIDApO3JldHVybiBpW1FdLkM9ITAsayh0KSxpfSx0LmZpbmlzaERyYWZ0PWZ1bmN0aW9uKGUsdCl7dmFyIG49KGUmJmVbUV0pLkE7cmV0dXJuIHcobix0KSxUKHZvaWQgMCxuKX0sdC5zZXRBdXRvRnJlZXplPWZ1bmN0aW9uKGUpe3RoaXMuRD1lfSx0LnNldFVzZVByb3hpZXM9ZnVuY3Rpb24oZSl7ZSYmIVYmJm4oMjApLHRoaXMuUz1lfSx0LmFwcGx5UGF0Y2hlcz1mdW5jdGlvbihlLHQpe3ZhciBuO2ZvcihuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBvPXRbbl07aWYoMD09PW8ucGF0aC5sZW5ndGgmJiJyZXBsYWNlIj09PW8ub3Ape2U9by52YWx1ZTticmVha319bj4tMSYmKHQ9dC5zbGljZShuKzEpKTt2YXIgaT1nKCJQYXRjaGVzIikuVztyZXR1cm4gcihlKT9pKGUsdCk6dGhpcy5wcm9kdWNlKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBpKGUsdCl9KSl9LGV9KCkscmU9bmV3IG5lLG9lPXJlLnByb2R1Y2UsaWU9cmUucHJvZHVjZVdpdGhQYXRjaGVzLmJpbmQocmUpLGFlPXJlLnNldEF1dG9GcmVlemUuYmluZChyZSksdWU9cmUuc2V0VXNlUHJveGllcy5iaW5kKHJlKSxzZT1yZS5hcHBseVBhdGNoZXMuYmluZChyZSksY2U9cmUuY3JlYXRlRHJhZnQuYmluZChyZSksbGU9cmUuZmluaXNoRHJhZnQuYmluZChyZSk7dC5JbW1lcj1uZSx0LmFwcGx5UGF0Y2hlcz1zZSx0LmNhc3REcmFmdD1mdW5jdGlvbihlKXtyZXR1cm4gZX0sdC5jYXN0SW1tdXRhYmxlPWZ1bmN0aW9uKGUpe3JldHVybiBlfSx0LmNyZWF0ZURyYWZ0PWNlLHQuY3VycmVudD1JLHQuZGVmYXVsdD1vZSx0LmVuYWJsZUFsbFBsdWdpbnM9ZnVuY3Rpb24oKXtEKCkseigpLEwoKX0sdC5lbmFibGVFUzU9RCx0LmVuYWJsZU1hcFNldD16LHQuZW5hYmxlUGF0Y2hlcz1MLHQuZmluaXNoRHJhZnQ9bGUsdC5mcmVlemU9eSx0LmltbWVyYWJsZT1HLHQuaXNEcmFmdD1yLHQuaXNEcmFmdGFibGU9byx0Lm5vdGhpbmc9cSx0Lm9yaWdpbmFsPWZ1bmN0aW9uKGUpe3JldHVybiByKGUpfHxuKDIzLGUpLGVbUV0udX0sdC5wcm9kdWNlPW9lLHQucHJvZHVjZVdpdGhQYXRjaGVzPWllLHQuc2V0QXV0b0ZyZWV6ZT1hZSx0LnNldFVzZVByb3hpZXM9dWV9LDY2MzEyOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oODA0MSl9LDE4NTUyOihlLHQsbik9Pnt2YXIgcj1uKDEwODUyKShuKDU1NjM5KSwiRGF0YVZpZXciKTtlLmV4cG9ydHM9cn0sMTk4OTooZSx0LG4pPT57dmFyIHI9big1MTc4OSksbz1uKDgwNDAxKSxpPW4oNTc2NjcpLGE9bigyMTMyNyksdT1uKDgxODY2KTtmdW5jdGlvbiBzKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fXMucHJvdG90eXBlLmNsZWFyPXIscy5wcm90b3R5cGUuZGVsZXRlPW8scy5wcm90b3R5cGUuZ2V0PWkscy5wcm90b3R5cGUuaGFzPWEscy5wcm90b3R5cGUuc2V0PXUsZS5leHBvcnRzPXN9LDM4NDA3OihlLHQsbik9Pnt2YXIgcj1uKDI3MDQwKSxvPW4oMTQxMjUpLGk9big4MjExNyksYT1uKDY3NTE4KSx1PW4oMTMzOTkpO2Z1bmN0aW9uIHMoZSl7dmFyIHQ9LTEsbj1udWxsPT1lPzA6ZS5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8bjspe3ZhciByPWVbdF07dGhpcy5zZXQoclswXSxyWzFdKX19cy5wcm90b3R5cGUuY2xlYXI9cixzLnByb3RvdHlwZS5kZWxldGU9byxzLnByb3RvdHlwZS5nZXQ9aSxzLnByb3RvdHlwZS5oYXM9YSxzLnByb3RvdHlwZS5zZXQ9dSxlLmV4cG9ydHM9c30sNTcwNzE6KGUsdCxuKT0+e3ZhciByPW4oMTA4NTIpKG4oNTU2MzkpLCJNYXAiKTtlLmV4cG9ydHM9cn0sODMzNjk6KGUsdCxuKT0+e3ZhciByPW4oMjQ3ODUpLG89bigxMTI4NSksaT1uKDk2ZTMpLGE9big0OTkxNiksdT1uKDk1MjY1KTtmdW5jdGlvbiBzKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fXMucHJvdG90eXBlLmNsZWFyPXIscy5wcm90b3R5cGUuZGVsZXRlPW8scy5wcm90b3R5cGUuZ2V0PWkscy5wcm90b3R5cGUuaGFzPWEscy5wcm90b3R5cGUuc2V0PXUsZS5leHBvcnRzPXN9LDUzODE4OihlLHQsbik9Pnt2YXIgcj1uKDEwODUyKShuKDU1NjM5KSwiUHJvbWlzZSIpO2UuZXhwb3J0cz1yfSw1ODUyNTooZSx0LG4pPT57dmFyIHI9bigxMDg1Mikobig1NTYzOSksIlNldCIpO2UuZXhwb3J0cz1yfSw4ODY2ODooZSx0LG4pPT57dmFyIHI9big4MzM2OSksbz1uKDkwNjE5KSxpPW4oNzIzODUpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9LTEsbj1udWxsPT1lPzA6ZS5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IHI7Kyt0PG47KXRoaXMuYWRkKGVbdF0pfWEucHJvdG90eXBlLmFkZD1hLnByb3RvdHlwZS5wdXNoPW8sYS5wcm90b3R5cGUuaGFzPWksZS5leHBvcnRzPWF9LDQ2Mzg0OihlLHQsbik9Pnt2YXIgcj1uKDM4NDA3KSxvPW4oMzc0NjUpLGk9big2Mzc3OSksYT1uKDY3NTk5KSx1PW4oNDQ3NTgpLHM9bigzNDMwOSk7ZnVuY3Rpb24gYyhlKXt2YXIgdD10aGlzLl9fZGF0YV9fPW5ldyByKGUpO3RoaXMuc2l6ZT10LnNpemV9Yy5wcm90b3R5cGUuY2xlYXI9byxjLnByb3RvdHlwZS5kZWxldGU9aSxjLnByb3RvdHlwZS5nZXQ9YSxjLnByb3RvdHlwZS5oYXM9dSxjLnByb3RvdHlwZS5zZXQ9cyxlLmV4cG9ydHM9Y30sNjI3MDU6KGUsdCxuKT0+e3ZhciByPW4oNTU2MzkpLlN5bWJvbDtlLmV4cG9ydHM9cn0sMTExNDk6KGUsdCxuKT0+e3ZhciByPW4oNTU2MzkpLlVpbnQ4QXJyYXk7ZS5leHBvcnRzPXJ9LDcwNTc3OihlLHQsbik9Pnt2YXIgcj1uKDEwODUyKShuKDU1NjM5KSwiV2Vha01hcCIpO2UuZXhwb3J0cz1yfSw5Njg3NDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtzd2l0Y2gobi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gZS5jYWxsKHQpO2Nhc2UgMTpyZXR1cm4gZS5jYWxsKHQsblswXSk7Y2FzZSAyOnJldHVybiBlLmNhbGwodCxuWzBdLG5bMV0pO2Nhc2UgMzpyZXR1cm4gZS5jYWxsKHQsblswXSxuWzFdLG5bMl0pfXJldHVybiBlLmFwcGx5KHQsbil9fSw3NzQxMjplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xLHI9bnVsbD09ZT8wOmUubGVuZ3RoOysrbjxyJiYhMSE9PXQoZVtuXSxuLGUpOyk7cmV0dXJuIGV9fSwzNDk2MzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xLHI9bnVsbD09ZT8wOmUubGVuZ3RoLG89MCxpPVtdOysrbjxyOyl7dmFyIGE9ZVtuXTt0KGEsbixlKSYmKGlbbysrXT1hKX1yZXR1cm4gaX19LDQ3NDQzOihlLHQsbik9Pnt2YXIgcj1uKDQyMTE4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIShudWxsPT1lPzA6ZS5sZW5ndGgpJiZyKGUsdCwwKT4tMX19LDExOTY6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPS0xLG89bnVsbD09ZT8wOmUubGVuZ3RoOysrcjxvOylpZihuKHQsZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9fSwxNDYzNjooZSx0LG4pPT57dmFyIHI9bigyMjU0NSksbz1uKDM1Njk0KSxpPW4oMTQ2OSksYT1uKDQ0MTQ0KSx1PW4oNjU3NzYpLHM9bigzNjcxOSksYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWkoZSksbD0hbiYmbyhlKSxmPSFuJiYhbCYmYShlKSxwPSFuJiYhbCYmIWYmJnMoZSksZD1ufHxsfHxmfHxwLGg9ZD9yKGUubGVuZ3RoLFN0cmluZyk6W10seT1oLmxlbmd0aDtmb3IodmFyIHYgaW4gZSkhdCYmIWMuY2FsbChlLHYpfHxkJiYoImxlbmd0aCI9PXZ8fGYmJigib2Zmc2V0Ij09dnx8InBhcmVudCI9PXYpfHxwJiYoImJ1ZmZlciI9PXZ8fCJieXRlTGVuZ3RoIj09dnx8ImJ5dGVPZmZzZXQiPT12KXx8dSh2LHkpKXx8aC5wdXNoKHYpO3JldHVybiBofX0sMjk5MzI6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMSxyPW51bGw9PWU/MDplLmxlbmd0aCxvPUFycmF5KHIpOysrbjxyOylvW25dPXQoZVtuXSxuLGUpO3JldHVybiBvfX0sNjI0ODg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoLG89ZS5sZW5ndGg7KytuPHI7KWVbbytuXT10W25dO3JldHVybiBlfX0sNjI2NjM6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyKXt2YXIgbz0tMSxpPW51bGw9PWU/MDplLmxlbmd0aDtmb3IociYmaSYmKG49ZVsrK29dKTsrK288aTspbj10KG4sZVtvXSxvLGUpO3JldHVybiBufX0sODI5MDg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0tMSxyPW51bGw9PWU/MDplLmxlbmd0aDsrK248cjspaWYodChlW25dLG4sZSkpcmV0dXJuITA7cmV0dXJuITF9fSw0NDI4NjplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIiKX19LDQ5MDI5OmU9Pnt2YXIgdD0vW15ceDAwLVx4MmZceDNhLVx4NDBceDViLVx4NjBceDdiLVx4N2ZdKy9nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZS5tYXRjaCh0KXx8W119fSw4NjU1NjooZSx0LG4pPT57dmFyIHI9big4OTQ2NSksbz1uKDc3ODEzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4peyh2b2lkIDAhPT1uJiYhbyhlW3RdLG4pfHx2b2lkIDA9PT1uJiYhKHQgaW4gZSkpJiZyKGUsdCxuKX19LDM0ODY1OihlLHQsbik9Pnt2YXIgcj1uKDg5NDY1KSxvPW4oNzc4MTMpLGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPWVbdF07aS5jYWxsKGUsdCkmJm8oYSxuKSYmKHZvaWQgMCE9PW58fHQgaW4gZSl8fHIoZSx0LG4pfX0sMTg0NzA6KGUsdCxuKT0+e3ZhciByPW4oNzc4MTMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KWlmKHIoZVtuXVswXSx0KSlyZXR1cm4gbjtyZXR1cm4tMX19LDQ0MDM3OihlLHQsbik9Pnt2YXIgcj1uKDk4MzYzKSxvPW4oMzY3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnIodCxvKHQpLGUpfX0sNjM4ODY6KGUsdCxuKT0+e3ZhciByPW4oOTgzNjMpLG89big4MTcwNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnIodCxvKHQpLGUpfX0sODk0NjU6KGUsdCxuKT0+e3ZhciByPW4oMzg3NzcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Il9fcHJvdG9fXyI9PXQmJnI/cihlLHQse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm4sd3JpdGFibGU6ITB9KTplW3RdPW59fSw4NTk5MDooZSx0LG4pPT57dmFyIHI9big0NjM4NCksbz1uKDc3NDEyKSxpPW4oMzQ4NjUpLGE9big0NDAzNyksdT1uKDYzODg2KSxzPW4oNjQ2MjYpLGM9bigyNzgpLGw9bigxODgwNSksZj1uKDE5MTEpLHA9big1ODIzNCksZD1uKDQ2OTA0KSxoPW4oNjQxNjApLHk9big0MzgyNCksdj1uKDI5MTQ4KSxtPW4oMzg1MTcpLGc9bigxNDY5KSxfPW4oNDQxNDQpLGI9big1NjY4OCksdz1uKDEzMjE4KSx4PW4oNzI5MjgpLGs9bigzNjc0KSxTPW4oODE3MDQpLEU9IltvYmplY3QgQXJndW1lbnRzXSIsVD0iW29iamVjdCBGdW5jdGlvbl0iLEM9IltvYmplY3QgT2JqZWN0XSIsTz17fTtPW0VdPU9bIltvYmplY3QgQXJyYXldIl09T1siW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1PWyJbb2JqZWN0IERhdGFWaWV3XSJdPU9bIltvYmplY3QgQm9vbGVhbl0iXT1PWyJbb2JqZWN0IERhdGVdIl09T1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09T1siW29iamVjdCBGbG9hdDY0QXJyYXldIl09T1siW29iamVjdCBJbnQ4QXJyYXldIl09T1siW29iamVjdCBJbnQxNkFycmF5XSJdPU9bIltvYmplY3QgSW50MzJBcnJheV0iXT1PWyJbb2JqZWN0IE1hcF0iXT1PWyJbb2JqZWN0IE51bWJlcl0iXT1PW0NdPU9bIltvYmplY3QgUmVnRXhwXSJdPU9bIltvYmplY3QgU2V0XSJdPU9bIltvYmplY3QgU3RyaW5nXSJdPU9bIltvYmplY3QgU3ltYm9sXSJdPU9bIltvYmplY3QgVWludDhBcnJheV0iXT1PWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPU9bIltvYmplY3QgVWludDE2QXJyYXldIl09T1siW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxPWyJbb2JqZWN0IEVycm9yXSJdPU9bVF09T1siW29iamVjdCBXZWFrTWFwXSJdPSExLGUuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixQLEEsaixSKXt2YXIgTSxOPTEmbixJPTImbixGPTQmbjtpZihQJiYoTT1qP1AodCxBLGosUik6UCh0KSksdm9pZCAwIT09TSlyZXR1cm4gTTtpZighdyh0KSlyZXR1cm4gdDt2YXIgRD1nKHQpO2lmKEQpe2lmKE09eSh0KSwhTilyZXR1cm4gYyh0LE0pfWVsc2V7dmFyIEw9aCh0KSx6PUw9PVR8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PUw7aWYoXyh0KSlyZXR1cm4gcyh0LE4pO2lmKEw9PUN8fEw9PUV8fHomJiFqKXtpZihNPUl8fHo/e306bSh0KSwhTilyZXR1cm4gST9mKHQsdShNLHQpKTpsKHQsYShNLHQpKX1lbHNle2lmKCFPW0xdKXJldHVybiBqP3Q6e307TT12KHQsTCxOKX19Unx8KFI9bmV3IHIpO3ZhciBVPVIuZ2V0KHQpO2lmKFUpcmV0dXJuIFU7Ui5zZXQodCxNKSx4KHQpP3QuZm9yRWFjaCgoZnVuY3Rpb24ocil7TS5hZGQoZShyLG4sUCxyLHQsUikpfSkpOmIodCkmJnQuZm9yRWFjaCgoZnVuY3Rpb24ocixvKXtNLnNldChvLGUocixuLFAsbyx0LFIpKX0pKTt2YXIgQj1EP3ZvaWQgMDooRj9JP2Q6cDpJP1M6aykodCk7cmV0dXJuIG8oQnx8dCwoZnVuY3Rpb24ocixvKXtCJiYocj10W289cl0pLGkoTSxvLGUocixuLFAsbyx0LFIpKX0pKSxNfX0sMzExODooZSx0LG4pPT57dmFyIHI9bigxMzIxOCksbz1PYmplY3QuY3JlYXRlLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBmdW5jdGlvbih0KXtpZighcih0KSlyZXR1cm57fTtpZihvKXJldHVybiBvKHQpO2UucHJvdG90eXBlPXQ7dmFyIG49bmV3IGU7cmV0dXJuIGUucHJvdG90eXBlPXZvaWQgMCxufX0oKTtlLmV4cG9ydHM9aX0sODk4ODE6KGUsdCxuKT0+e3ZhciByPW4oNDc4MTYpLG89big5OTI5MSkocik7ZS5leHBvcnRzPW99LDgwNzYwOihlLHQsbik9Pnt2YXIgcj1uKDg5ODgxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtyZXR1cm4gcihlLChmdW5jdGlvbihlLHIsbyl7dChlLHIsbykmJm4ucHVzaChlKX0pKSxufX0sNDE4NDg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyKXtmb3IodmFyIG89ZS5sZW5ndGgsaT1uKyhyPzE6LTEpO3I/aS0tOisraTxvOylpZih0KGVbaV0saSxlKSlyZXR1cm4gaTtyZXR1cm4tMX19LDIxMDc4OihlLHQsbik9Pnt2YXIgcj1uKDYyNDg4KSxvPW4oMzcyODUpO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixpLGEsdSl7dmFyIHM9LTEsYz10Lmxlbmd0aDtmb3IoaXx8KGk9byksdXx8KHU9W10pOysrczxjOyl7dmFyIGw9dFtzXTtuPjAmJmkobCk/bj4xP2UobCxuLTEsaSxhLHUpOnIodSxsKTphfHwodVt1Lmxlbmd0aF09bCl9cmV0dXJuIHV9fSwyODQ4MzooZSx0LG4pPT57dmFyIHI9bigyNTA2MykoKTtlLmV4cG9ydHM9cn0sNDc4MTY6KGUsdCxuKT0+e3ZhciByPW4oMjg0ODMpLG89bigzNjc0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmcihlLHQsbyl9fSw5Nzc4NjooZSx0LG4pPT57dmFyIHI9big3MTgxMSksbz1uKDQwMzI3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxpPSh0PXIodCxlKSkubGVuZ3RoO251bGwhPWUmJm48aTspZT1lW28odFtuKytdKV07cmV0dXJuIG4mJm49PWk/ZTp2b2lkIDB9fSw2ODg2NjooZSx0LG4pPT57dmFyIHI9big2MjQ4OCksbz1uKDE0NjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9dChlKTtyZXR1cm4gbyhlKT9pOnIoaSxuKGUpKX19LDQ0MjM5OihlLHQsbik9Pnt2YXIgcj1uKDYyNzA1KSxvPW4oODk2MDcpLGk9bigyMzMzKSxhPXI/ci50b1N0cmluZ1RhZzp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMD09PWU/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3QgTnVsbF0iOmEmJmEgaW4gT2JqZWN0KGUpP28oZSk6aShlKX19LDEzOmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmdCBpbiBPYmplY3QoZSl9fSw0MjExODooZSx0LG4pPT57dmFyIHI9big0MTg0OCksbz1uKDYyNzIyKSxpPW4oNDIzNTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ9PXQ/aShlLHQsbik6cihlLG8sbil9fSw5NDU0OihlLHQsbik9Pnt2YXIgcj1uKDQ0MjM5KSxvPW4oMzcwMDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhlKSYmIltvYmplY3QgQXJndW1lbnRzXSI9PXIoZSl9fSw0MTc2MTooZSx0LG4pPT57dmFyIHI9big0NDIzOSksbz1uKDM3MDA1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkmJiJbb2JqZWN0IERhdGVdIj09cihlKX19LDkwOTM5OihlLHQsbik9Pnt2YXIgcj1uKDI0OTIpLG89bigzNzAwNSk7ZS5leHBvcnRzPWZ1bmN0aW9uIGUodCxuLGksYSx1KXtyZXR1cm4gdD09PW58fChudWxsPT10fHxudWxsPT1ufHwhbyh0KSYmIW8obik/dCE9dCYmbiE9bjpyKHQsbixpLGEsZSx1KSl9fSwyNDkyOihlLHQsbik9Pnt2YXIgcj1uKDQ2Mzg0KSxvPW4oNjcxMTQpLGk9bigxODM1MSksYT1uKDE2MDk2KSx1PW4oNjQxNjApLHM9bigxNDY5KSxjPW4oNDQxNDQpLGw9bigzNjcxOSksZj0iW29iamVjdCBBcmd1bWVudHNdIixwPSJbb2JqZWN0IEFycmF5XSIsZD0iW29iamVjdCBPYmplY3RdIixoPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHksdixtKXt2YXIgZz1zKGUpLF89cyh0KSxiPWc/cDp1KGUpLHc9Xz9wOnUodCkseD0oYj1iPT1mP2Q6Yik9PWQsaz0odz13PT1mP2Q6dyk9PWQsUz1iPT13O2lmKFMmJmMoZSkpe2lmKCFjKHQpKXJldHVybiExO2c9ITAseD0hMX1pZihTJiYheClyZXR1cm4gbXx8KG09bmV3IHIpLGd8fGwoZSk/byhlLHQsbix5LHYsbSk6aShlLHQsYixuLHksdixtKTtpZighKDEmbikpe3ZhciBFPXgmJmguY2FsbChlLCJfX3dyYXBwZWRfXyIpLFQ9ayYmaC5jYWxsKHQsIl9fd3JhcHBlZF9fIik7aWYoRXx8VCl7dmFyIEM9RT9lLnZhbHVlKCk6ZSxPPVQ/dC52YWx1ZSgpOnQ7cmV0dXJuIG18fChtPW5ldyByKSx2KEMsTyxuLHksbSl9fXJldHVybiEhUyYmKG18fChtPW5ldyByKSxhKGUsdCxuLHksdixtKSl9fSwyNTU4ODooZSx0LG4pPT57dmFyIHI9big2NDE2MCksbz1uKDM3MDA1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkmJiJbb2JqZWN0IE1hcF0iPT1yKGUpfX0sMjk1ODooZSx0LG4pPT57dmFyIHI9big0NjM4NCksbz1uKDkwOTM5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9bi5sZW5ndGgsdT1hLHM9IWk7aWYobnVsbD09ZSlyZXR1cm4hdTtmb3IoZT1PYmplY3QoZSk7YS0tOyl7dmFyIGM9blthXTtpZihzJiZjWzJdP2NbMV0hPT1lW2NbMF1dOiEoY1swXWluIGUpKXJldHVybiExfWZvcig7KythPHU7KXt2YXIgbD0oYz1uW2FdKVswXSxmPWVbbF0scD1jWzFdO2lmKHMmJmNbMl0pe2lmKHZvaWQgMD09PWYmJiEobCBpbiBlKSlyZXR1cm4hMX1lbHNle3ZhciBkPW5ldyByO2lmKGkpdmFyIGg9aShmLHAsbCxlLHQsZCk7aWYoISh2b2lkIDA9PT1oP28ocCxmLDMsaSxkKTpoKSlyZXR1cm4hMX19cmV0dXJuITB9fSw2MjcyMjplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfX0sMjg0NTg6KGUsdCxuKT0+e3ZhciByPW4oMjM1NjApLG89bigxNTM0NiksaT1uKDEzMjE4KSxhPW4oODAzNDYpLHU9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8scz1GdW5jdGlvbi5wcm90b3R5cGUsYz1PYmplY3QucHJvdG90eXBlLGw9cy50b1N0cmluZyxmPWMuaGFzT3duUHJvcGVydHkscD1SZWdFeHAoIl4iK2wuY2FsbChmKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISghaShlKXx8byhlKSkmJihyKGUpP3A6dSkudGVzdChhKGUpKX19LDI5MjIxOihlLHQsbik9Pnt2YXIgcj1uKDY0MTYwKSxvPW4oMzcwMDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhlKSYmIltvYmplY3QgU2V0XSI9PXIoZSl9fSwzODc0OTooZSx0LG4pPT57dmFyIHI9big0NDIzOSksbz1uKDQxNzgwKSxpPW4oMzcwMDUpLGE9e307YVsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09YVsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09YVsiW29iamVjdCBJbnQ4QXJyYXldIl09YVsiW29iamVjdCBJbnQxNkFycmF5XSJdPWFbIltvYmplY3QgSW50MzJBcnJheV0iXT1hWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09YVsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1hWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWFbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsYVsiW29iamVjdCBBcmd1bWVudHNdIl09YVsiW29iamVjdCBBcnJheV0iXT1hWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPWFbIltvYmplY3QgQm9vbGVhbl0iXT1hWyJbb2JqZWN0IERhdGFWaWV3XSJdPWFbIltvYmplY3QgRGF0ZV0iXT1hWyJbb2JqZWN0IEVycm9yXSJdPWFbIltvYmplY3QgRnVuY3Rpb25dIl09YVsiW29iamVjdCBNYXBdIl09YVsiW29iamVjdCBOdW1iZXJdIl09YVsiW29iamVjdCBPYmplY3RdIl09YVsiW29iamVjdCBSZWdFeHBdIl09YVsiW29iamVjdCBTZXRdIl09YVsiW29iamVjdCBTdHJpbmddIl09YVsiW29iamVjdCBXZWFrTWFwXSJdPSExLGUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShlKSYmbyhlLmxlbmd0aCkmJiEhYVtyKGUpXX19LDY3MjA2OihlLHQsbik9Pnt2YXIgcj1uKDkxNTczKSxvPW4oMTY0MzIpLGk9big2NTU3KSxhPW4oMTQ2OSksdT1uKDM5NjAxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsPT1lP2k6Im9iamVjdCI9PXR5cGVvZiBlP2EoZSk/byhlWzBdLGVbMV0pOnIoZSk6dShlKX19LDI4MDooZSx0LG4pPT57dmFyIHI9bigyNTcyNiksbz1uKDg2OTE2KSxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFyKGUpKXJldHVybiBvKGUpO3ZhciB0PVtdO2Zvcih2YXIgbiBpbiBPYmplY3QoZSkpaS5jYWxsKGUsbikmJiJjb25zdHJ1Y3RvciIhPW4mJnQucHVzaChuKTtyZXR1cm4gdH19LDEwMzEzOihlLHQsbik9Pnt2YXIgcj1uKDEzMjE4KSxvPW4oMjU3MjYpLGk9bigzMzQ5OCksYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighcihlKSlyZXR1cm4gaShlKTt2YXIgdD1vKGUpLG49W107Zm9yKHZhciB1IGluIGUpKCJjb25zdHJ1Y3RvciIhPXV8fCF0JiZhLmNhbGwoZSx1KSkmJm4ucHVzaCh1KTtyZXR1cm4gbn19LDY5MTk5OihlLHQsbik9Pnt2YXIgcj1uKDg5ODgxKSxvPW4oOTg2MTIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPS0xLGk9byhlKT9BcnJheShlLmxlbmd0aCk6W107cmV0dXJuIHIoZSwoZnVuY3Rpb24oZSxyLG8pe2lbKytuXT10KGUscixvKX0pKSxpfX0sOTE1NzM6KGUsdCxuKT0+e3ZhciByPW4oMjk1OCksbz1uKDE0OTkpLGk9big0MjYzNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW8oZSk7cmV0dXJuIDE9PXQubGVuZ3RoJiZ0WzBdWzJdP2kodFswXVswXSx0WzBdWzFdKTpmdW5jdGlvbihuKXtyZXR1cm4gbj09PWV8fHIobixlLHQpfX19LDE2NDMyOihlLHQsbik9Pnt2YXIgcj1uKDkwOTM5KSxvPW4oMjczNjEpLGk9big3OTA5NSksYT1uKDE1NDAzKSx1PW4oODkxNjIpLHM9big0MjYzNCksYz1uKDQwMzI3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYShlKSYmdSh0KT9zKGMoZSksdCk6ZnVuY3Rpb24obil7dmFyIGE9byhuLGUpO3JldHVybiB2b2lkIDA9PT1hJiZhPT09dD9pKG4sZSk6cih0LGEsMyl9fX0sNDI5ODA6KGUsdCxuKT0+e3ZhciByPW4oNDYzODQpLG89big4NjU1NiksaT1uKDI4NDgzKSxhPW4oNTk3ODMpLHU9bigxMzIxOCkscz1uKDgxNzA0KSxjPW4oMzYzOTApO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixsLGYscCl7dCE9PW4mJmkobiwoZnVuY3Rpb24oaSxzKXtpZihwfHwocD1uZXcgciksdShpKSlhKHQsbixzLGwsZSxmLHApO2Vsc2V7dmFyIGQ9Zj9mKGModCxzKSxpLHMrIiIsdCxuLHApOnZvaWQgMDt2b2lkIDA9PT1kJiYoZD1pKSxvKHQscyxkKX19KSxzKX19LDU5NzgzOihlLHQsbik9Pnt2YXIgcj1uKDg2NTU2KSxvPW4oNjQ2MjYpLGk9big3NzEzMyksYT1uKDI3OCksdT1uKDM4NTE3KSxzPW4oMzU2OTQpLGM9bigxNDY5KSxsPW4oMjkyNDYpLGY9big0NDE0NCkscD1uKDIzNTYwKSxkPW4oMTMyMTgpLGg9big2ODYzMCkseT1uKDM2NzE5KSx2PW4oMzYzOTApLG09big1OTg4MSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGcsXyxiLHcpe3ZhciB4PXYoZSxuKSxrPXYodCxuKSxTPXcuZ2V0KGspO2lmKFMpcihlLG4sUyk7ZWxzZXt2YXIgRT1iP2IoeCxrLG4rIiIsZSx0LHcpOnZvaWQgMCxUPXZvaWQgMD09PUU7aWYoVCl7dmFyIEM9YyhrKSxPPSFDJiZmKGspLFA9IUMmJiFPJiZ5KGspO0U9ayxDfHxPfHxQP2MoeCk/RT14OmwoeCk/RT1hKHgpOk8/KFQ9ITEsRT1vKGssITApKTpQPyhUPSExLEU9aShrLCEwKSk6RT1bXTpoKGspfHxzKGspPyhFPXgscyh4KT9FPW0oeCk6ZCh4KSYmIXAoeCl8fChFPXUoaykpKTpUPSExfVQmJih3LnNldChrLEUpLF8oRSxrLGcsYix3KSx3LmRlbGV0ZShrKSkscihlLG4sRSl9fX0sODI2ODk6KGUsdCxuKT0+e3ZhciByPW4oMjk5MzIpLG89big5Nzc4NiksaT1uKDY3MjA2KSxhPW4oNjkxOTkpLHU9big3MTEzMSkscz1uKDc1MTgpLGM9big4NTAyMiksbD1uKDY1NTcpLGY9bigxNDY5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3Q9dC5sZW5ndGg/cih0LChmdW5jdGlvbihlKXtyZXR1cm4gZihlKT9mdW5jdGlvbih0KXtyZXR1cm4gbyh0LDE9PT1lLmxlbmd0aD9lWzBdOmUpfTplfSkpOltsXTt2YXIgcD0tMTt0PXIodCxzKGkpKTt2YXIgZD1hKGUsKGZ1bmN0aW9uKGUsbixvKXtyZXR1cm57Y3JpdGVyaWE6cih0LChmdW5jdGlvbih0KXtyZXR1cm4gdChlKX0pKSxpbmRleDorK3AsdmFsdWU6ZX19KSk7cmV0dXJuIHUoZCwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gYyhlLHQsbil9KSl9fSw2MzAxMjooZSx0LG4pPT57dmFyIHI9big5Nzc4Niksbz1uKDEwNjExKSxpPW4oNzE4MTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciBhPS0xLHU9dC5sZW5ndGgscz17fTsrK2E8dTspe3ZhciBjPXRbYV0sbD1yKGUsYyk7bihsLGMpJiZvKHMsaShjLGUpLGwpfXJldHVybiBzfX0sNDAzNzE6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbZV19fX0sNzkxNTI6KGUsdCxuKT0+e3ZhciByPW4oOTc3ODYpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIodCxlKX19fSwxODY3NDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZVt0XX19fSw1OTc2OihlLHQsbik9Pnt2YXIgcj1uKDY1NTcpLG89big0NTM1NyksaT1uKDMwMDYxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShvKGUsdCxyKSxlKyIiKX19LDEwNjExOihlLHQsbik9Pnt2YXIgcj1uKDM0ODY1KSxvPW4oNzE4MTEpLGk9big2NTc3NiksYT1uKDEzMjE4KSx1PW4oNDAzMjcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixzKXtpZighYShlKSlyZXR1cm4gZTtmb3IodmFyIGM9LTEsbD0odD1vKHQsZSkpLmxlbmd0aCxmPWwtMSxwPWU7bnVsbCE9cCYmKytjPGw7KXt2YXIgZD11KHRbY10pLGg9bjtpZigiX19wcm90b19fIj09PWR8fCJjb25zdHJ1Y3RvciI9PT1kfHwicHJvdG90eXBlIj09PWQpcmV0dXJuIGU7aWYoYyE9Zil7dmFyIHk9cFtkXTt2b2lkIDA9PT0oaD1zP3MoeSxkLHApOnZvaWQgMCkmJihoPWEoeSk/eTppKHRbYysxXSk/W106e30pfXIocCxkLGgpLHA9cFtkXX1yZXR1cm4gZX19LDU2NTYwOihlLHQsbik9Pnt2YXIgcj1uKDc1NzAzKSxvPW4oMzg3NzcpLGk9big2NTU3KSxhPW8/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhlLCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOnIodCksd3JpdGFibGU6ITB9KX06aTtlLmV4cG9ydHM9YX0sMTQyNTk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIHI9LTEsbz1lLmxlbmd0aDt0PDAmJih0PS10Pm8/MDpvK3QpLChuPW4+bz9vOm4pPDAmJihuKz1vKSxvPXQ+bj8wOm4tdD4+PjAsdD4+Pj0wO2Zvcih2YXIgaT1BcnJheShvKTsrK3I8bzspaVtyXT1lW3IrdF07cmV0dXJuIGl9fSw1MDc2OihlLHQsbik9Pnt2YXIgcj1uKDg5ODgxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gcihlLChmdW5jdGlvbihlLHIsbyl7cmV0dXJuIShuPXQoZSxyLG8pKX0pKSwhIW59fSw3MTEzMTplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGg7Zm9yKGUuc29ydCh0KTtuLS07KWVbbl09ZVtuXS52YWx1ZTtyZXR1cm4gZX19LDIyNTQ1OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTEscj1BcnJheShlKTsrK248ZTspcltuXT10KG4pO3JldHVybiByfX0sODA1MzE6KGUsdCxuKT0+e3ZhciByPW4oNjI3MDUpLG89bigyOTkzMiksaT1uKDE0NjkpLGE9bigzMzQ0OCksdT1yP3IucHJvdG90eXBlOnZvaWQgMCxzPXU/dS50b1N0cmluZzp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uIGUodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGkodCkpcmV0dXJuIG8odCxlKSsiIjtpZihhKHQpKXJldHVybiBzP3MuY2FsbCh0KToiIjt2YXIgbj10KyIiO3JldHVybiIwIj09biYmMS90PT0tSW5maW5pdHk/Ii0wIjpufX0sMjc1NjE6KGUsdCxuKT0+e3ZhciByPW4oNjc5OTApLG89L15ccysvO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT9lLnNsaWNlKDAscihlKSsxKS5yZXBsYWNlKG8sIiIpOmV9fSw3NTE4OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfX19LDQ1NjUyOihlLHQsbik9Pnt2YXIgcj1uKDg4NjY4KSxvPW4oNDc0NDMpLGk9bigxMTk2KSxhPW4oNzQ3NTcpLHU9bigyMzU5Mykscz1uKDIxODE0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBjPS0xLGw9byxmPWUubGVuZ3RoLHA9ITAsZD1bXSxoPWQ7aWYobilwPSExLGw9aTtlbHNlIGlmKGY+PTIwMCl7dmFyIHk9dD9udWxsOnUoZSk7aWYoeSlyZXR1cm4gcyh5KTtwPSExLGw9YSxoPW5ldyByfWVsc2UgaD10P1tdOmQ7ZTpmb3IoOysrYzxmOyl7dmFyIHY9ZVtjXSxtPXQ/dCh2KTp2O2lmKHY9bnx8MCE9PXY/djowLHAmJm09PW0pe2Zvcih2YXIgZz1oLmxlbmd0aDtnLS07KWlmKGhbZ109PT1tKWNvbnRpbnVlIGU7dCYmaC5wdXNoKG0pLGQucHVzaCh2KX1lbHNlIGwoaCxtLG4pfHwoaCE9PWQmJmgucHVzaChtKSxkLnB1c2godikpfXJldHVybiBkfX0sNTc0MDY6KGUsdCxuKT0+e3ZhciByPW4oNzE4MTEpLG89bigxMDkyOCksaT1uKDQwMjkyKSxhPW4oNDAzMjcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiB0PXIodCxlKSxudWxsPT0oZT1pKGUsdCkpfHxkZWxldGUgZVthKG8odCkpXX19LDI0NDU2OihlLHQsbik9Pnt2YXIgcj1uKDk3Nzg2KSxvPW4oMTA2MTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gbyhlLHQsbihyKGUsdCkpLGkpfX0sNzQ3NTc6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBlLmhhcyh0KX19LDU0MjkwOihlLHQsbik9Pnt2YXIgcj1uKDY1NTcpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnJ9fSw3MTgxMTooZSx0LG4pPT57dmFyIHI9bigxNDY5KSxvPW4oMTU0MDMpLGk9big1NTUxNCksYT1uKDc5ODMzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcihlKT9lOm8oZSx0KT9bZV06aShhKGUpKX19LDQwMTgwOihlLHQsbik9Pnt2YXIgcj1uKDE0MjU5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPWUubGVuZ3RoO3JldHVybiBuPXZvaWQgMD09PW4/bzpuLCF0JiZuPj1vP2U6cihlLHQsbil9fSw3NDMxODooZSx0LG4pPT57dmFyIHI9bigxMTE0OSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBlLmNvbnN0cnVjdG9yKGUuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyByKHQpLnNldChuZXcgcihlKSksdH19LDY0NjI2OihlLHQsbik9PntlPW4ubm1kKGUpO3ZhciByPW4oNTU2MzkpLG89dCYmIXQubm9kZVR5cGUmJnQsaT1vJiZlJiYhZS5ub2RlVHlwZSYmZSxhPWkmJmkuZXhwb3J0cz09PW8/ci5CdWZmZXI6dm9pZCAwLHU9YT9hLmFsbG9jVW5zYWZlOnZvaWQgMDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZih0KXJldHVybiBlLnNsaWNlKCk7dmFyIG49ZS5sZW5ndGgscj11P3Uobik6bmV3IGUuY29uc3RydWN0b3Iobik7cmV0dXJuIGUuY29weShyKSxyfX0sNTcxNTc6KGUsdCxuKT0+e3ZhciByPW4oNzQzMTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/cihlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKG4sZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9fSw5MzE0NzplPT57dmFyIHQ9L1x3KiQvO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1uZXcgZS5jb25zdHJ1Y3RvcihlLnNvdXJjZSx0LmV4ZWMoZSkpO3JldHVybiBuLmxhc3RJbmRleD1lLmxhc3RJbmRleCxufX0sNDA0MTk6KGUsdCxuKT0+e3ZhciByPW4oNjI3MDUpLG89cj9yLnByb3RvdHlwZTp2b2lkIDAsaT1vP28udmFsdWVPZjp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpP09iamVjdChpLmNhbGwoZSkpOnt9fX0sNzcxMzM6KGUsdCxuKT0+e3ZhciByPW4oNzQzMTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/cihlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKG4sZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKX19LDI2MzkzOihlLHQsbik9Pnt2YXIgcj1uKDMzNDQ4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihlIT09dCl7dmFyIG49dm9pZCAwIT09ZSxvPW51bGw9PT1lLGk9ZT09ZSxhPXIoZSksdT12b2lkIDAhPT10LHM9bnVsbD09PXQsYz10PT10LGw9cih0KTtpZighcyYmIWwmJiFhJiZlPnR8fGEmJnUmJmMmJiFzJiYhbHx8byYmdSYmY3x8IW4mJmN8fCFpKXJldHVybiAxO2lmKCFvJiYhYSYmIWwmJmU8dHx8bCYmbiYmaSYmIW8mJiFhfHxzJiZuJiZpfHwhdSYmaXx8IWMpcmV0dXJuLTF9cmV0dXJuIDB9fSw4NTAyMjooZSx0LG4pPT57dmFyIHI9bigyNjM5Myk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIG89LTEsaT1lLmNyaXRlcmlhLGE9dC5jcml0ZXJpYSx1PWkubGVuZ3RoLHM9bi5sZW5ndGg7KytvPHU7KXt2YXIgYz1yKGlbb10sYVtvXSk7aWYoYylyZXR1cm4gbz49cz9jOmMqKCJkZXNjIj09bltvXT8tMToxKX1yZXR1cm4gZS5pbmRleC10LmluZGV4fX0sMjc4OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj0tMSxyPWUubGVuZ3RoO2Zvcih0fHwodD1BcnJheShyKSk7KytuPHI7KXRbbl09ZVtuXTtyZXR1cm4gdH19LDk4MzYzOihlLHQsbik9Pnt2YXIgcj1uKDM0ODY1KSxvPW4oODk0NjUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixpKXt2YXIgYT0hbjtufHwobj17fSk7Zm9yKHZhciB1PS0xLHM9dC5sZW5ndGg7Kyt1PHM7KXt2YXIgYz10W3VdLGw9aT9pKG5bY10sZVtjXSxjLG4sZSk6dm9pZCAwO3ZvaWQgMD09PWwmJihsPWVbY10pLGE/byhuLGMsbCk6cihuLGMsbCl9cmV0dXJuIG59fSwxODgwNTooZSx0LG4pPT57dmFyIHI9big5ODM2Myksbz1uKDk5NTUxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcihlLG8oZSksdCl9fSwxOTExOihlLHQsbik9Pnt2YXIgcj1uKDk4MzYzKSxvPW4oNTE0NDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiByKGUsbyhlKSx0KX19LDE0NDI5OihlLHQsbik9Pnt2YXIgcj1uKDU1NjM5KVsiX19jb3JlLWpzX3NoYXJlZF9fIl07ZS5leHBvcnRzPXJ9LDIxNDYzOihlLHQsbik9Pnt2YXIgcj1uKDU5NzYpLG89bigxNjYxMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKChmdW5jdGlvbih0LG4pe3ZhciByPS0xLGk9bi5sZW5ndGgsYT1pPjE/bltpLTFdOnZvaWQgMCx1PWk+Mj9uWzJdOnZvaWQgMDtmb3IoYT1lLmxlbmd0aD4zJiYiZnVuY3Rpb24iPT10eXBlb2YgYT8oaS0tLGEpOnZvaWQgMCx1JiZvKG5bMF0sblsxXSx1KSYmKGE9aTwzP3ZvaWQgMDphLGk9MSksdD1PYmplY3QodCk7KytyPGk7KXt2YXIgcz1uW3JdO3MmJmUodCxzLHIsYSl9cmV0dXJuIHR9KSl9fSw5OTI5MTooZSx0LG4pPT57dmFyIHI9big5ODYxMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4sbyl7aWYobnVsbD09bilyZXR1cm4gbjtpZighcihuKSlyZXR1cm4gZShuLG8pO2Zvcih2YXIgaT1uLmxlbmd0aCxhPXQ/aTotMSx1PU9iamVjdChuKTsodD9hLS06KythPGkpJiYhMSE9PW8odVthXSxhLHUpOyk7cmV0dXJuIG59fX0sMjUwNjM6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Zvcih2YXIgbz0tMSxpPU9iamVjdCh0KSxhPXIodCksdT1hLmxlbmd0aDt1LS07KXt2YXIgcz1hW2U/dTorK29dO2lmKCExPT09bihpW3NdLHMsaSkpYnJlYWt9cmV0dXJuIHR9fX0sOTg4MDU6KGUsdCxuKT0+e3ZhciByPW4oNDAxODApLG89big2MjY4OSksaT1uKDgzMTQwKSxhPW4oNzk4MzMpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dD1hKHQpO3ZhciBuPW8odCk/aSh0KTp2b2lkIDAsdT1uP25bMF06dC5jaGFyQXQoMCkscz1uP3IobiwxKS5qb2luKCIiKTp0LnNsaWNlKDEpO3JldHVybiB1W2VdKCkrc319fSwzNTM5MzooZSx0LG4pPT57dmFyIHI9big2MjY2Myksbz1uKDUzODE2KSxpPW4oNTg3NDgpLGE9UmVnRXhwKCJbJ+KAmV0iLCJnIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gcihpKG8odCkucmVwbGFjZShhLCIiKSksZSwiIil9fX0sNjc3NDA6KGUsdCxuKT0+e3ZhciByPW4oNjcyMDYpLG89big5ODYxMiksaT1uKDM2NzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLGEpe3ZhciB1PU9iamVjdCh0KTtpZighbyh0KSl7dmFyIHM9cihuLDMpO3Q9aSh0KSxuPWZ1bmN0aW9uKGUpe3JldHVybiBzKHVbZV0sZSx1KX19dmFyIGM9ZSh0LG4sYSk7cmV0dXJuIGM+LTE/dVtzP3RbY106Y106dm9pZCAwfX19LDIzNTkzOihlLHQsbik9Pnt2YXIgcj1uKDU4NTI1KSxvPW4oNTAzMDgpLGk9bigyMTgxNCksYT1yJiYxL2kobmV3IHIoWywtMF0pKVsxXT09MS8wP2Z1bmN0aW9uKGUpe3JldHVybiBuZXcgcihlKX06bztlLmV4cG9ydHM9YX0sNjA2OTY6KGUsdCxuKT0+e3ZhciByPW4oNjg2MzApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlKT92b2lkIDA6ZX19LDY5Mzg5OihlLHQsbik9Pnt2YXIgcj1uKDE4Njc0KSh7IsOAIjoiQSIsIsOBIjoiQSIsIsOCIjoiQSIsIsODIjoiQSIsIsOEIjoiQSIsIsOFIjoiQSIsIsOgIjoiYSIsIsOhIjoiYSIsIsOiIjoiYSIsIsOjIjoiYSIsIsOkIjoiYSIsIsOlIjoiYSIsIsOHIjoiQyIsIsOnIjoiYyIsIsOQIjoiRCIsIsOwIjoiZCIsIsOIIjoiRSIsIsOJIjoiRSIsIsOKIjoiRSIsIsOLIjoiRSIsIsOoIjoiZSIsIsOpIjoiZSIsIsOqIjoiZSIsIsOrIjoiZSIsIsOMIjoiSSIsIsONIjoiSSIsIsOOIjoiSSIsIsOPIjoiSSIsIsOsIjoiaSIsIsOtIjoiaSIsIsOuIjoiaSIsIsOvIjoiaSIsIsORIjoiTiIsIsOxIjoibiIsIsOSIjoiTyIsIsOTIjoiTyIsIsOUIjoiTyIsIsOVIjoiTyIsIsOWIjoiTyIsIsOYIjoiTyIsIsOyIjoibyIsIsOzIjoibyIsIsO0IjoibyIsIsO1IjoibyIsIsO2IjoibyIsIsO4IjoibyIsIsOZIjoiVSIsIsOaIjoiVSIsIsObIjoiVSIsIsOcIjoiVSIsIsO5IjoidSIsIsO6IjoidSIsIsO7IjoidSIsIsO8IjoidSIsIsOdIjoiWSIsIsO9IjoieSIsIsO/IjoieSIsIsOGIjoiQWUiLCLDpiI6ImFlIiwiw54iOiJUaCIsIsO+IjoidGgiLCLDnyI6InNzIiwixIAiOiJBIiwixIIiOiJBIiwixIQiOiJBIiwixIEiOiJhIiwixIMiOiJhIiwixIUiOiJhIiwixIYiOiJDIiwixIgiOiJDIiwixIoiOiJDIiwixIwiOiJDIiwixIciOiJjIiwixIkiOiJjIiwixIsiOiJjIiwixI0iOiJjIiwixI4iOiJEIiwixJAiOiJEIiwixI8iOiJkIiwixJEiOiJkIiwixJIiOiJFIiwixJQiOiJFIiwixJYiOiJFIiwixJgiOiJFIiwixJoiOiJFIiwixJMiOiJlIiwixJUiOiJlIiwixJciOiJlIiwixJkiOiJlIiwixJsiOiJlIiwixJwiOiJHIiwixJ4iOiJHIiwixKAiOiJHIiwixKIiOiJHIiwixJ0iOiJnIiwixJ8iOiJnIiwixKEiOiJnIiwixKMiOiJnIiwixKQiOiJIIiwixKYiOiJIIiwixKUiOiJoIiwixKciOiJoIiwixKgiOiJJIiwixKoiOiJJIiwixKwiOiJJIiwixK4iOiJJIiwixLAiOiJJIiwixKkiOiJpIiwixKsiOiJpIiwixK0iOiJpIiwixK8iOiJpIiwixLEiOiJpIiwixLQiOiJKIiwixLUiOiJqIiwixLYiOiJLIiwixLciOiJrIiwixLgiOiJrIiwixLkiOiJMIiwixLsiOiJMIiwixL0iOiJMIiwixL8iOiJMIiwixYEiOiJMIiwixLoiOiJsIiwixLwiOiJsIiwixL4iOiJsIiwixYAiOiJsIiwixYIiOiJsIiwixYMiOiJOIiwixYUiOiJOIiwixYciOiJOIiwixYoiOiJOIiwixYQiOiJuIiwixYYiOiJuIiwixYgiOiJuIiwixYsiOiJuIiwixYwiOiJPIiwixY4iOiJPIiwixZAiOiJPIiwixY0iOiJvIiwixY8iOiJvIiwixZEiOiJvIiwixZQiOiJSIiwixZYiOiJSIiwixZgiOiJSIiwixZUiOiJyIiwixZciOiJyIiwixZkiOiJyIiwixZoiOiJTIiwixZwiOiJTIiwixZ4iOiJTIiwixaAiOiJTIiwixZsiOiJzIiwixZ0iOiJzIiwixZ8iOiJzIiwixaEiOiJzIiwixaIiOiJUIiwixaQiOiJUIiwixaYiOiJUIiwixaMiOiJ0IiwixaUiOiJ0IiwixaciOiJ0IiwixagiOiJVIiwixaoiOiJVIiwixawiOiJVIiwixa4iOiJVIiwixbAiOiJVIiwixbIiOiJVIiwixakiOiJ1IiwixasiOiJ1Iiwixa0iOiJ1Iiwixa8iOiJ1IiwixbEiOiJ1IiwixbMiOiJ1IiwixbQiOiJXIiwixbUiOiJ3IiwixbYiOiJZIiwixbciOiJ5IiwixbgiOiJZIiwixbkiOiJaIiwixbsiOiJaIiwixb0iOiJaIiwixboiOiJ6IiwixbwiOiJ6Iiwixb4iOiJ6IiwixLIiOiJJSiIsIsSzIjoiaWoiLCLFkiI6Ik9lIiwixZMiOiJvZSIsIsWJIjoiJ24iLCLFvyI6InMifSk7ZS5leHBvcnRzPXJ9LDM4Nzc3OihlLHQsbik9Pnt2YXIgcj1uKDEwODUyKSxvPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPXIoT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBlKHt9LCIiLHt9KSxlfWNhdGNoKGUpe319KCk7ZS5leHBvcnRzPW99LDY3MTE0OihlLHQsbik9Pnt2YXIgcj1uKDg4NjY4KSxvPW4oODI5MDgpLGk9big3NDc1Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGEsdSxzKXt2YXIgYz0xJm4sbD1lLmxlbmd0aCxmPXQubGVuZ3RoO2lmKGwhPWYmJiEoYyYmZj5sKSlyZXR1cm4hMTt2YXIgcD1zLmdldChlKSxkPXMuZ2V0KHQpO2lmKHAmJmQpcmV0dXJuIHA9PXQmJmQ9PWU7dmFyIGg9LTEseT0hMCx2PTImbj9uZXcgcjp2b2lkIDA7Zm9yKHMuc2V0KGUsdCkscy5zZXQodCxlKTsrK2g8bDspe3ZhciBtPWVbaF0sZz10W2hdO2lmKGEpdmFyIF89Yz9hKGcsbSxoLHQsZSxzKTphKG0sZyxoLGUsdCxzKTtpZih2b2lkIDAhPT1fKXtpZihfKWNvbnRpbnVlO3k9ITE7YnJlYWt9aWYodil7aWYoIW8odCwoZnVuY3Rpb24oZSx0KXtpZighaSh2LHQpJiYobT09PWV8fHUobSxlLG4sYSxzKSkpcmV0dXJuIHYucHVzaCh0KX0pKSl7eT0hMTticmVha319ZWxzZSBpZihtIT09ZyYmIXUobSxnLG4sYSxzKSl7eT0hMTticmVha319cmV0dXJuIHMuZGVsZXRlKGUpLHMuZGVsZXRlKHQpLHl9fSwxODM1MTooZSx0LG4pPT57dmFyIHI9big2MjcwNSksbz1uKDExMTQ5KSxpPW4oNzc4MTMpLGE9big2NzExNCksdT1uKDY4Nzc2KSxzPW4oMjE4MTQpLGM9cj9yLnByb3RvdHlwZTp2b2lkIDAsbD1jP2MudmFsdWVPZjp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIsYyxmLHApe3N3aXRjaChuKXtjYXNlIltvYmplY3QgRGF0YVZpZXddIjppZihlLmJ5dGVMZW5ndGghPXQuYnl0ZUxlbmd0aHx8ZS5ieXRlT2Zmc2V0IT10LmJ5dGVPZmZzZXQpcmV0dXJuITE7ZT1lLmJ1ZmZlcix0PXQuYnVmZmVyO2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiEoZS5ieXRlTGVuZ3RoIT10LmJ5dGVMZW5ndGh8fCFmKG5ldyBvKGUpLG5ldyBvKHQpKSk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOmNhc2UiW29iamVjdCBOdW1iZXJdIjpyZXR1cm4gaSgrZSwrdCk7Y2FzZSJbb2JqZWN0IEVycm9yXSI6cmV0dXJuIGUubmFtZT09dC5uYW1lJiZlLm1lc3NhZ2U9PXQubWVzc2FnZTtjYXNlIltvYmplY3QgUmVnRXhwXSI6Y2FzZSJbb2JqZWN0IFN0cmluZ10iOnJldHVybiBlPT10KyIiO2Nhc2UiW29iamVjdCBNYXBdIjp2YXIgZD11O2Nhc2UiW29iamVjdCBTZXRdIjp2YXIgaD0xJnI7aWYoZHx8KGQ9cyksZS5zaXplIT10LnNpemUmJiFoKXJldHVybiExO3ZhciB5PXAuZ2V0KGUpO2lmKHkpcmV0dXJuIHk9PXQ7cnw9MixwLnNldChlLHQpO3ZhciB2PWEoZChlKSxkKHQpLHIsYyxmLHApO3JldHVybiBwLmRlbGV0ZShlKSx2O2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihsKXJldHVybiBsLmNhbGwoZSk9PWwuY2FsbCh0KX1yZXR1cm4hMX19LDE2MDk2OihlLHQsbik9Pnt2YXIgcj1uKDU4MjM0KSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGksYSx1KXt2YXIgcz0xJm4sYz1yKGUpLGw9Yy5sZW5ndGg7aWYobCE9cih0KS5sZW5ndGgmJiFzKXJldHVybiExO2Zvcih2YXIgZj1sO2YtLTspe3ZhciBwPWNbZl07aWYoIShzP3AgaW4gdDpvLmNhbGwodCxwKSkpcmV0dXJuITF9dmFyIGQ9dS5nZXQoZSksaD11LmdldCh0KTtpZihkJiZoKXJldHVybiBkPT10JiZoPT1lO3ZhciB5PSEwO3Uuc2V0KGUsdCksdS5zZXQodCxlKTtmb3IodmFyIHY9czsrK2Y8bDspe3ZhciBtPWVbcD1jW2ZdXSxnPXRbcF07aWYoaSl2YXIgXz1zP2koZyxtLHAsdCxlLHUpOmkobSxnLHAsZSx0LHUpO2lmKCEodm9pZCAwPT09Xz9tPT09Z3x8YShtLGcsbixpLHUpOl8pKXt5PSExO2JyZWFrfXZ8fCh2PSJjb25zdHJ1Y3RvciI9PXApfWlmKHkmJiF2KXt2YXIgYj1lLmNvbnN0cnVjdG9yLHc9dC5jb25zdHJ1Y3RvcjtiPT13fHwhKCJjb25zdHJ1Y3RvciJpbiBlKXx8ISgiY29uc3RydWN0b3IiaW4gdCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiIGluc3RhbmNlb2YgYiYmImZ1bmN0aW9uIj09dHlwZW9mIHcmJncgaW5zdGFuY2VvZiB3fHwoeT0hMSl9cmV0dXJuIHUuZGVsZXRlKGUpLHUuZGVsZXRlKHQpLHl9fSw5OTAyMTooZSx0LG4pPT57dmFyIHI9big4NTU2NCksbz1uKDQ1MzU3KSxpPW4oMzAwNjEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShvKGUsdm9pZCAwLHIpLGUrIiIpfX0sMzE5NTc6KGUsdCxuKT0+e3ZhciByPSJvYmplY3QiPT10eXBlb2Ygbi5nJiZuLmcmJm4uZy5PYmplY3Q9PT1PYmplY3QmJm4uZztlLmV4cG9ydHM9cn0sNTgyMzQ6KGUsdCxuKT0+e3ZhciByPW4oNjg4NjYpLG89big5OTU1MSksaT1uKDM2NzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlLGksbyl9fSw0NjkwNDooZSx0LG4pPT57dmFyIHI9big2ODg2Niksbz1uKDUxNDQyKSxpPW4oODE3MDQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlLGksbyl9fSw0NTA1MDooZSx0LG4pPT57dmFyIHI9bigzNzAxOSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fX2RhdGFfXztyZXR1cm4gcih0KT9uWyJzdHJpbmciPT10eXBlb2YgdD8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfX0sMTQ5OTooZSx0LG4pPT57dmFyIHI9big4OTE2Miksbz1uKDM2NzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9byhlKSxuPXQubGVuZ3RoO24tLTspe3ZhciBpPXRbbl0sYT1lW2ldO3Rbbl09W2ksYSxyKGEpXX1yZXR1cm4gdH19LDEwODUyOihlLHQsbik9Pnt2YXIgcj1uKDI4NDU4KSxvPW4oNDc4MDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPW8oZSx0KTtyZXR1cm4gcihuKT9uOnZvaWQgMH19LDg1OTI0OihlLHQsbik9Pnt2YXIgcj1uKDU1NjkpKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO2UuZXhwb3J0cz1yfSw4OTYwNzooZSx0LG4pPT57dmFyIHI9big2MjcwNSksbz1PYmplY3QucHJvdG90eXBlLGk9by5oYXNPd25Qcm9wZXJ0eSxhPW8udG9TdHJpbmcsdT1yP3IudG9TdHJpbmdUYWc6dm9pZCAwO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1pLmNhbGwoZSx1KSxuPWVbdV07dHJ5e2VbdV09dm9pZCAwO3ZhciByPSEwfWNhdGNoKGUpe312YXIgbz1hLmNhbGwoZSk7cmV0dXJuIHImJih0P2VbdV09bjpkZWxldGUgZVt1XSksb319LDk5NTUxOihlLHQsbik9Pnt2YXIgcj1uKDM0OTYzKSxvPW4oNzA0NzkpLGk9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsdT1hP2Z1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP1tdOihlPU9iamVjdChlKSxyKGEoZSksKGZ1bmN0aW9uKHQpe3JldHVybiBpLmNhbGwoZSx0KX0pKSl9Om87ZS5leHBvcnRzPXV9LDUxNDQyOihlLHQsbik9Pnt2YXIgcj1uKDYyNDg4KSxvPW4oODU5MjQpLGk9big5OTU1MSksYT1uKDcwNDc5KSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdO2U7KXIodCxpKGUpKSxlPW8oZSk7cmV0dXJuIHR9OmE7ZS5leHBvcnRzPXV9LDY0MTYwOihlLHQsbik9Pnt2YXIgcj1uKDE4NTUyKSxvPW4oNTcwNzEpLGk9big1MzgxOCksYT1uKDU4NTI1KSx1PW4oNzA1NzcpLHM9big0NDIzOSksYz1uKDgwMzQ2KSxsPSJbb2JqZWN0IE1hcF0iLGY9IltvYmplY3QgUHJvbWlzZV0iLHA9IltvYmplY3QgU2V0XSIsZD0iW29iamVjdCBXZWFrTWFwXSIsaD0iW29iamVjdCBEYXRhVmlld10iLHk9YyhyKSx2PWMobyksbT1jKGkpLGc9YyhhKSxfPWModSksYj1zOyhyJiZiKG5ldyByKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1ofHxvJiZiKG5ldyBvKSE9bHx8aSYmYihpLnJlc29sdmUoKSkhPWZ8fGEmJmIobmV3IGEpIT1wfHx1JiZiKG5ldyB1KSE9ZCkmJihiPWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSksbj0iW29iamVjdCBPYmplY3RdIj09dD9lLmNvbnN0cnVjdG9yOnZvaWQgMCxyPW4/YyhuKToiIjtpZihyKXN3aXRjaChyKXtjYXNlIHk6cmV0dXJuIGg7Y2FzZSB2OnJldHVybiBsO2Nhc2UgbTpyZXR1cm4gZjtjYXNlIGc6cmV0dXJuIHA7Y2FzZSBfOnJldHVybiBkfXJldHVybiB0fSksZS5leHBvcnRzPWJ9LDQ3ODAxOmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZVt0XX19LDIyMjooZSx0LG4pPT57dmFyIHI9big3MTgxMSksbz1uKDM1Njk0KSxpPW4oMTQ2OSksYT1uKDY1Nzc2KSx1PW4oNDE3ODApLHM9big0MDMyNyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIGM9LTEsbD0odD1yKHQsZSkpLmxlbmd0aCxmPSExOysrYzxsOyl7dmFyIHA9cyh0W2NdKTtpZighKGY9bnVsbCE9ZSYmbihlLHApKSlicmVhaztlPWVbcF19cmV0dXJuIGZ8fCsrYyE9bD9mOiEhKGw9bnVsbD09ZT8wOmUubGVuZ3RoKSYmdShsKSYmYShwLGwpJiYoaShlKXx8byhlKSl9fSw2MjY4OTplPT57dmFyIHQ9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KGUpfX0sOTMxNTc6ZT0+e3ZhciB0PS9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KGUpfX0sNTE3ODk6KGUsdCxuKT0+e3ZhciByPW4oOTQ1MzYpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189cj9yKG51bGwpOnt9LHRoaXMuc2l6ZT0wfX0sODA0MDE6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmhhcyhlKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZV07cmV0dXJuIHRoaXMuc2l6ZS09dD8xOjAsdH19LDU3NjY3OihlLHQsbik9Pnt2YXIgcj1uKDk0NTM2KSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX187aWYocil7dmFyIG49dFtlXTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1uP3ZvaWQgMDpufXJldHVybiBvLmNhbGwodCxlKT90W2VdOnZvaWQgMH19LDIxMzI3OihlLHQsbik9Pnt2YXIgcj1uKDk0NTM2KSxvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuIHI/dm9pZCAwIT09dFtlXTpvLmNhbGwodCxlKX19LDgxODY2OihlLHQsbik9Pnt2YXIgcj1uKDk0NTM2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGUpPzA6MSxuW2VdPXImJnZvaWQgMD09PXQ/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnQsdGhpc319LDQzODI0OmU9Pnt2YXIgdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCxyPW5ldyBlLmNvbnN0cnVjdG9yKG4pO3JldHVybiBuJiYic3RyaW5nIj09dHlwZW9mIGVbMF0mJnQuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn19LDI5MTQ4OihlLHQsbik9Pnt2YXIgcj1uKDc0MzE4KSxvPW4oNTcxNTcpLGk9big5MzE0NyksYT1uKDQwNDE5KSx1PW4oNzcxMzMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIHM9ZS5jb25zdHJ1Y3Rvcjtzd2l0Y2godCl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIHIoZSk7Y2FzZSJbb2JqZWN0IEJvb2xlYW5dIjpjYXNlIltvYmplY3QgRGF0ZV0iOnJldHVybiBuZXcgcygrZSk7Y2FzZSJbb2JqZWN0IERhdGFWaWV3XSI6cmV0dXJuIG8oZSxuKTtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iOmNhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpjYXNlIltvYmplY3QgVWludDE2QXJyYXldIjpjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4gdShlLG4pO2Nhc2UiW29iamVjdCBNYXBdIjpjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyBzO2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyBzKGUpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gaShlKTtjYXNlIltvYmplY3QgU3ltYm9sXSI6cmV0dXJuIGEoZSl9fX0sMzg1MTc6KGUsdCxuKT0+e3ZhciByPW4oMzExOCksbz1uKDg1OTI0KSxpPW4oMjU3MjYpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZS5jb25zdHJ1Y3Rvcnx8aShlKT97fTpyKG8oZSkpfX0sMzcyODU6KGUsdCxuKT0+e3ZhciByPW4oNjI3MDUpLG89bigzNTY5NCksaT1uKDE0NjkpLGE9cj9yLmlzQ29uY2F0U3ByZWFkYWJsZTp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGUpfHxvKGUpfHwhIShhJiZlJiZlW2FdKX19LDY1Nzc2OmU9Pnt2YXIgdD0vXig/OjB8WzEtOV1cZCopJC87ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbil7dmFyIHI9dHlwZW9mIGU7cmV0dXJuISEobj1udWxsPT1uPzkwMDcxOTkyNTQ3NDA5OTE6bikmJigibnVtYmVyIj09cnx8InN5bWJvbCIhPXImJnQudGVzdChlKSkmJmU+LTEmJmUlMT09MCYmZTxufX0sMTY2MTI6KGUsdCxuKT0+e3ZhciByPW4oNzc4MTMpLG89big5ODYxMiksaT1uKDY1Nzc2KSxhPW4oMTMyMTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIWEobikpcmV0dXJuITE7dmFyIHU9dHlwZW9mIHQ7cmV0dXJuISEoIm51bWJlciI9PXU/byhuKSYmaSh0LG4ubGVuZ3RoKToic3RyaW5nIj09dSYmdCBpbiBuKSYmcihuW3RdLGUpfX0sMTU0MDM6KGUsdCxuKT0+e3ZhciByPW4oMTQ2OSksbz1uKDMzNDQ4KSxpPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGE9L15cdyokLztlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihyKGUpKXJldHVybiExO3ZhciBuPXR5cGVvZiBlO3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPWUmJiFvKGUpKXx8KGEudGVzdChlKXx8IWkudGVzdChlKXx8bnVsbCE9dCYmZSBpbiBPYmplY3QodCkpfX0sMzcwMTk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4ic3RyaW5nIj09dHx8Im51bWJlciI9PXR8fCJzeW1ib2wiPT10fHwiYm9vbGVhbiI9PXQ/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lfX0sMTUzNDY6KGUsdCxuKT0+e3ZhciByLG89bigxNDQyOSksaT0ocj0vW14uXSskLy5leGVjKG8mJm8ua2V5cyYmby5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrcjoiIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISFpJiZpIGluIGV9fSwyNTcyNjplPT57dmFyIHQ9T2JqZWN0LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIG49ZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4gZT09PSgiZnVuY3Rpb24iPT10eXBlb2YgbiYmbi5wcm90b3R5cGV8fHQpfX0sODkxNjI6KGUsdCxuKT0+e3ZhciByPW4oMTMyMTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT09ZSYmIXIoZSl9fSwyNzA0MDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH19LDE0MTI1OihlLHQsbik9Pnt2YXIgcj1uKDE4NDcwKSxvPUFycmF5LnByb3RvdHlwZS5zcGxpY2U7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX18sbj1yKHQsZSk7cmV0dXJuIShuPDApJiYobj09dC5sZW5ndGgtMT90LnBvcCgpOm8uY2FsbCh0LG4sMSksLS10aGlzLnNpemUsITApfX0sODIxMTc6KGUsdCxuKT0+e3ZhciByPW4oMTg0NzApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fZGF0YV9fLG49cih0LGUpO3JldHVybiBuPDA/dm9pZCAwOnRbbl1bMV19fSw2NzUxODooZSx0LG4pPT57dmFyIHI9bigxODQ3MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKHRoaXMuX19kYXRhX18sZSk+LTF9fSwxMzM5OTooZSx0LG4pPT57dmFyIHI9bigxODQ3MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fX2RhdGFfXyxvPXIobixlKTtyZXR1cm4gbzwwPygrK3RoaXMuc2l6ZSxuLnB1c2goW2UsdF0pKTpuW29dWzFdPXQsdGhpc319LDI0Nzg1OihlLHQsbik9Pnt2YXIgcj1uKDE5ODkpLG89bigzODQwNyksaT1uKDU3MDcxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyByLG1hcDpuZXcoaXx8byksc3RyaW5nOm5ldyByfX19LDExMjg1OihlLHQsbik9Pnt2YXIgcj1uKDQ1MDUwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9cih0aGlzLGUpLmRlbGV0ZShlKTtyZXR1cm4gdGhpcy5zaXplLT10PzE6MCx0fX0sOTZlMzooZSx0LG4pPT57dmFyIHI9big0NTA1MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKHRoaXMsZSkuZ2V0KGUpfX0sNDk5MTY6KGUsdCxuKT0+e3ZhciByPW4oNDUwNTApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcih0aGlzLGUpLmhhcyhlKX19LDk1MjY1OihlLHQsbik9Pnt2YXIgcj1uKDQ1MDUwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKHRoaXMsZSksbz1uLnNpemU7cmV0dXJuIG4uc2V0KGUsdCksdGhpcy5zaXplKz1uLnNpemU9PW8/MDoxLHRoaXN9fSw2ODc3NjplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PS0xLG49QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe25bKyt0XT1bcixlXX0pKSxufX0sNDI2MzQ6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmKG5bZV09PT10JiYodm9pZCAwIT09dHx8ZSBpbiBPYmplY3QobikpKX19fSwyNDUyMzooZSx0LG4pPT57dmFyIHI9big4ODMwNik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIDUwMD09PW4uc2l6ZSYmbi5jbGVhcigpLGV9KSksbj10LmNhY2hlO3JldHVybiB0fX0sOTQ1MzY6KGUsdCxuKT0+e3ZhciByPW4oMTA4NTIpKE9iamVjdCwiY3JlYXRlIik7ZS5leHBvcnRzPXJ9LDg2OTE2OihlLHQsbik9Pnt2YXIgcj1uKDU1NjkpKE9iamVjdC5rZXlzLE9iamVjdCk7ZS5leHBvcnRzPXJ9LDMzNDk4OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9W107aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gT2JqZWN0KGUpKXQucHVzaChuKTtyZXR1cm4gdH19LDMxMTY3OihlLHQsbik9PntlPW4ubm1kKGUpO3ZhciByPW4oMzE5NTcpLG89dCYmIXQubm9kZVR5cGUmJnQsaT1vJiZlJiYhZS5ub2RlVHlwZSYmZSxhPWkmJmkuZXhwb3J0cz09PW8mJnIucHJvY2Vzcyx1PWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWkmJmkucmVxdWlyZSYmaS5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIGV8fGEmJmEuYmluZGluZyYmYS5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2goZSl7fX0oKTtlLmV4cG9ydHM9dX0sMjMzMzplPT57dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuY2FsbChlKX19LDU1Njk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZSh0KG4pKX19fSw0NTM1NzooZSx0LG4pPT57dmFyIHI9big5Njg3NCksbz1NYXRoLm1heDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0PW8odm9pZCAwPT09dD9lLmxlbmd0aC0xOnQsMCksZnVuY3Rpb24oKXtmb3IodmFyIGk9YXJndW1lbnRzLGE9LTEsdT1vKGkubGVuZ3RoLXQsMCkscz1BcnJheSh1KTsrK2E8dTspc1thXT1pW3QrYV07YT0tMTtmb3IodmFyIGM9QXJyYXkodCsxKTsrK2E8dDspY1thXT1pW2FdO3JldHVybiBjW3RdPW4ocykscihlLHRoaXMsYyl9fX0sNDAyOTI6KGUsdCxuKT0+e3ZhciByPW4oOTc3ODYpLG89bigxNDI1OSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGVuZ3RoPDI/ZTpyKGUsbyh0LDAsLTEpKX19LDU1NjM5OihlLHQsbik9Pnt2YXIgcj1uKDMxOTU3KSxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1yfHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO2UuZXhwb3J0cz1pfSwzNjM5MDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoKCJjb25zdHJ1Y3RvciIhPT10fHwiZnVuY3Rpb24iIT10eXBlb2YgZVt0XSkmJiJfX3Byb3RvX18iIT10KXJldHVybiBlW3RdfX0sOTA2MTk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQoZSwiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIpLHRoaXN9fSw3MjM4NTplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhlKX19LDIxODE0OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9LTEsbj1BcnJheShlLnNpemUpO3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUpe25bKyt0XT1lfSkpLG59fSwzMDA2MTooZSx0LG4pPT57dmFyIHI9big1NjU2MCksbz1uKDIxMjc1KShyKTtlLmV4cG9ydHM9b30sMjEyNzU6ZT0+e3ZhciB0PURhdGUubm93O2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj0wLHI9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10KCksaT0xNi0oby1yKTtpZihyPW8saT4wKXtpZigrK24+PTgwMClyZXR1cm4gYXJndW1lbnRzWzBdfWVsc2Ugbj0wO3JldHVybiBlLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LDM3NDY1OihlLHQsbik9Pnt2YXIgcj1uKDM4NDA3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyByLHRoaXMuc2l6ZT0wfX0sNjM3Nzk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9fZGF0YV9fLG49dC5kZWxldGUoZSk7cmV0dXJuIHRoaXMuc2l6ZT10LnNpemUsbn19LDY3NTk5OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpfX0sNDQ3NTg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9fSwzNDMwOTooZSx0LG4pPT57dmFyIHI9bigzODQwNyksbz1uKDU3MDcxKSxpPW4oODMzNjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX19kYXRhX187aWYobiBpbnN0YW5jZW9mIHIpe3ZhciBhPW4uX19kYXRhX187aWYoIW98fGEubGVuZ3RoPDE5OSlyZXR1cm4gYS5wdXNoKFtlLHRdKSx0aGlzLnNpemU9KytuLnNpemUsdGhpcztuPXRoaXMuX19kYXRhX189bmV3IGkoYSl9cmV0dXJuIG4uc2V0KGUsdCksdGhpcy5zaXplPW4uc2l6ZSx0aGlzfX0sNDIzNTE6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPW4tMSxvPWUubGVuZ3RoOysrcjxvOylpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4tMX19LDgzMTQwOihlLHQsbik9Pnt2YXIgcj1uKDQ0Mjg2KSxvPW4oNjI2ODkpLGk9big2NzYpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhlKT9pKGUpOnIoZSl9fSw1NTUxNDooZSx0LG4pPT57dmFyIHI9bigyNDUyMyksbz0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxpPS9cXChcXCk/L2csYT1yKChmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gNDY9PT1lLmNoYXJDb2RlQXQoMCkmJnQucHVzaCgiIiksZS5yZXBsYWNlKG8sKGZ1bmN0aW9uKGUsbixyLG8pe3QucHVzaChyP28ucmVwbGFjZShpLCIkMSIpOm58fGUpfSkpLHR9KSk7ZS5leHBvcnRzPWF9LDQwMzI3OihlLHQsbik9Pnt2YXIgcj1uKDMzNDQ4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlfHxyKGUpKXJldHVybiBlO3ZhciB0PWUrIiI7cmV0dXJuIjAiPT10JiYxL2U9PS1JbmZpbml0eT8iLTAiOnR9fSw4MDM0NjplPT57dmFyIHQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihudWxsIT1lKXt0cnl7cmV0dXJuIHQuY2FsbChlKX1jYXRjaChlKXt9dHJ5e3JldHVybiBlKyIifWNhdGNoKGUpe319cmV0dXJuIiJ9fSw2Nzk5MDplPT57dmFyIHQ9L1xzLztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWUubGVuZ3RoO24tLSYmdC50ZXN0KGUuY2hhckF0KG4pKTspO3JldHVybiBufX0sNjc2OmU9Pnt2YXIgdD0iXFx1ZDgwMC1cXHVkZmZmIixuPSJbIit0KyJdIixyPSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIsbz0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixpPSJbXiIrdCsiXSIsYT0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsdT0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIscz0iKD86IityKyJ8IitvKyIpIisiPyIsYz0iW1xcdWZlMGVcXHVmZTBmXT8iLGw9YytzKygiKD86XFx1MjAwZCg/OiIrW2ksYSx1XS5qb2luKCJ8IikrIikiK2MrcysiKSoiKSxmPSIoPzoiK1tpK3IrIj8iLHIsYSx1LG5dLmpvaW4oInwiKSsiKSIscD1SZWdFeHAobysiKD89IitvKyIpfCIrZitsLCJnIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlLm1hdGNoKHApfHxbXX19LDI3NTc6ZT0+e3ZhciB0PSJcXHVkODAwLVxcdWRmZmYiLG49IlxcdTI3MDAtXFx1MjdiZiIscj0iYS16XFx4ZGYtXFx4ZjZcXHhmOC1cXHhmZiIsbz0iQS1aXFx4YzAtXFx4ZDZcXHhkOC1cXHhkZSIsaT0iXFx4YWNcXHhiMVxceGQ3XFx4ZjdcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZlxcdTIwMDAtXFx1MjA2ZiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsYT0iWyIraSsiXSIsdT0iXFxkKyIscz0iWyIrbisiXSIsYz0iWyIrcisiXSIsbD0iW14iK3QraSt1K24rcitvKyJdIixmPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixwPSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixkPSJbIitvKyJdIixoPSIoPzoiK2MrInwiK2wrIikiLHk9Iig/OiIrZCsifCIrbCsiKSIsdj0iKD86WyfigJldKD86ZHxsbHxtfHJlfHN8dHx2ZSkpPyIsbT0iKD86WyfigJldKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsZz0iKD86W1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl18XFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdKT8iLF89IltcXHVmZTBlXFx1ZmUwZl0/IixiPV8rZysoIig/OlxcdTIwMGQoPzoiK1siW14iK3QrIl0iLGYscF0uam9pbigifCIpKyIpIitfK2crIikqIiksdz0iKD86IitbcyxmLHBdLmpvaW4oInwiKSsiKSIrYix4PVJlZ0V4cChbZCsiPyIrYysiKyIrdisiKD89IitbYSxkLCIkIl0uam9pbigifCIpKyIpIix5KyIrIittKyIoPz0iK1thLGQraCwiJCJdLmpvaW4oInwiKSsiKSIsZCsiPyIraCsiKyIrdixkKyIrIittLCJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLCJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLHUsd10uam9pbigifCIpLCJnIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlLm1hdGNoKHgpfHxbXX19LDI4NTgzOihlLHQsbik9Pnt2YXIgcj1uKDM0ODY1KSxvPW4oOTgzNjMpLGk9bigyMTQ2MyksYT1uKDk4NjEyKSx1PW4oMjU3MjYpLHM9bigzNjc0KSxjPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbD1pKChmdW5jdGlvbihlLHQpe2lmKHUodCl8fGEodCkpbyh0LHModCksZSk7ZWxzZSBmb3IodmFyIG4gaW4gdCljLmNhbGwodCxuKSYmcihlLG4sdFtuXSl9KSk7ZS5leHBvcnRzPWx9LDY4OTI5OihlLHQsbik9Pnt2YXIgcj1uKDQ4NDAzKSxvPW4oMzUzOTMpKChmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ9dC50b0xvd2VyQ2FzZSgpLGUrKG4/cih0KTp0KX0pKTtlLmV4cG9ydHM9b30sNDg0MDM6KGUsdCxuKT0+e3ZhciByPW4oNzk4MzMpLG89bigxMTcwMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBvKHIoZSkudG9Mb3dlckNhc2UoKSl9fSw2NjY3ODooZSx0LG4pPT57dmFyIHI9big4NTk5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUsNCl9fSw1MDM2MTooZSx0LG4pPT57dmFyIHI9big4NTk5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUsNSl9fSw3NTcwMzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX19LDIzMjc5OihlLHQsbik9Pnt2YXIgcj1uKDEzMjE4KSxvPW4oNzc3MSksaT1uKDE0ODQxKSxhPU1hdGgubWF4LHU9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcyxjLGwsZixwLGQsaD0wLHk9ITEsdj0hMSxtPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBnKHQpe3ZhciBuPXMscj1jO3JldHVybiBzPWM9dm9pZCAwLGg9dCxmPWUuYXBwbHkocixuKX1mdW5jdGlvbiBfKGUpe3ZhciBuPWUtZDtyZXR1cm4gdm9pZCAwPT09ZHx8bj49dHx8bjwwfHx2JiZlLWg+PWx9ZnVuY3Rpb24gYigpe3ZhciBlPW8oKTtpZihfKGUpKXJldHVybiB3KGUpO3A9c2V0VGltZW91dChiLGZ1bmN0aW9uKGUpe3ZhciBuPXQtKGUtZCk7cmV0dXJuIHY/dShuLGwtKGUtaCkpOm59KGUpKX1mdW5jdGlvbiB3KGUpe3JldHVybiBwPXZvaWQgMCxtJiZzP2coZSk6KHM9Yz12b2lkIDAsZil9ZnVuY3Rpb24geCgpe3ZhciBlPW8oKSxuPV8oZSk7aWYocz1hcmd1bWVudHMsYz10aGlzLGQ9ZSxuKXtpZih2b2lkIDA9PT1wKXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gaD1lLHA9c2V0VGltZW91dChiLHQpLHk/ZyhlKTpmfShkKTtpZih2KXJldHVybiBjbGVhclRpbWVvdXQocCkscD1zZXRUaW1lb3V0KGIsdCksZyhkKX1yZXR1cm4gdm9pZCAwPT09cCYmKHA9c2V0VGltZW91dChiLHQpKSxmfXJldHVybiB0PWkodCl8fDAscihuKSYmKHk9ISFuLmxlYWRpbmcsbD0odj0ibWF4V2FpdCJpbiBuKT9hKGkobi5tYXhXYWl0KXx8MCx0KTpsLG09InRyYWlsaW5nImluIG4/ISFuLnRyYWlsaW5nOm0pLHguY2FuY2VsPWZ1bmN0aW9uKCl7dm9pZCAwIT09cCYmY2xlYXJUaW1lb3V0KHApLGg9MCxzPWQ9Yz1wPXZvaWQgMH0seC5mbHVzaD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1wP2Y6dyhvKCkpfSx4fX0sNTM4MTY6KGUsdCxuKT0+e3ZhciByPW4oNjkzODkpLG89big3OTgzMyksaT0vW1x4YzAtXHhkNlx4ZDgtXHhmNlx4ZjgtXHhmZlx1MDEwMC1cdTAxN2ZdL2csYT1SZWdFeHAoIltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIiwiZyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4oZT1vKGUpKSYmZS5yZXBsYWNlKGkscikucmVwbGFjZShhLCIiKX19LDc2NjkyOmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZXx8ZSE9ZT90OmV9fSw3NzgxMzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fHxlIT1lJiZ0IT10fX0sNjMxMDU6KGUsdCxuKT0+e3ZhciByPW4oMzQ5NjMpLG89big4MDc2MCksaT1uKDY3MjA2KSxhPW4oMTQ2OSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGEoZSk/cjpvKShlLGkodCwzKSl9fSwxMzMxMTooZSx0LG4pPT57dmFyIHI9big2Nzc0MCkobigzMDk5OCkpO2UuZXhwb3J0cz1yfSwzMDk5ODooZSx0LG4pPT57dmFyIHI9big0MTg0OCksbz1uKDY3MjA2KSxpPW4oNDA1NTQpLGE9TWF0aC5tYXg7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgdT1udWxsPT1lPzA6ZS5sZW5ndGg7aWYoIXUpcmV0dXJuLTE7dmFyIHM9bnVsbD09bj8wOmkobik7cmV0dXJuIHM8MCYmKHM9YSh1K3MsMCkpLHIoZSxvKHQsMykscyl9fSw4ODA0OihlLHQsbik9PntlLmV4cG9ydHM9big5MTE3NSl9LDk0NjU0OihlLHQsbik9Pnt2YXIgcj1uKDIxMDc4KSxvPW4oMzUxNjEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiByKG8oZSx0KSwxKX19LDg1NTY0OihlLHQsbik9Pnt2YXIgcj1uKDIxMDc4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuKG51bGw9PWU/MDplLmxlbmd0aCk/cihlLDEpOltdfX0sMjczNjE6KGUsdCxuKT0+e3ZhciByPW4oOTc3ODYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIG89bnVsbD09ZT92b2lkIDA6cihlLHQpO3JldHVybiB2b2lkIDA9PT1vP246b319LDc5MDk1OihlLHQsbik9Pnt2YXIgcj1uKDEzKSxvPW4oMjIyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmbyhlLHQscil9fSw5MTE3NTplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9lWzBdOnZvaWQgMH19LDY1NTc6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZX19LDM1Njk0OihlLHQsbik9Pnt2YXIgcj1uKDk0NTQpLG89bigzNzAwNSksaT1PYmplY3QucHJvdG90eXBlLGE9aS5oYXNPd25Qcm9wZXJ0eSx1PWkucHJvcGVydHlJc0VudW1lcmFibGUscz1yKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/cjpmdW5jdGlvbihlKXtyZXR1cm4gbyhlKSYmYS5jYWxsKGUsImNhbGxlZSIpJiYhdS5jYWxsKGUsImNhbGxlZSIpfTtlLmV4cG9ydHM9c30sMTQ2OTplPT57dmFyIHQ9QXJyYXkuaXNBcnJheTtlLmV4cG9ydHM9dH0sOTg2MTI6KGUsdCxuKT0+e3ZhciByPW4oMjM1NjApLG89big0MTc4MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZvKGUubGVuZ3RoKSYmIXIoZSl9fSwyOTI0NjooZSx0LG4pPT57dmFyIHI9big5ODYxMiksbz1uKDM3MDA1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkmJnIoZSl9fSw1MTU4NDooZSx0LG4pPT57dmFyIHI9big0NDIzOSksbz1uKDM3MDA1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lfHwhMT09PWV8fG8oZSkmJiJbb2JqZWN0IEJvb2xlYW5dIj09cihlKX19LDQ0MTQ0OihlLHQsbik9PntlPW4ubm1kKGUpO3ZhciByPW4oNTU2MzkpLG89big5NTA2MiksaT10JiYhdC5ub2RlVHlwZSYmdCxhPWkmJmUmJiFlLm5vZGVUeXBlJiZlLHU9YSYmYS5leHBvcnRzPT09aT9yLkJ1ZmZlcjp2b2lkIDAscz0odT91LmlzQnVmZmVyOnZvaWQgMCl8fG87ZS5leHBvcnRzPXN9LDQ3OTYwOihlLHQsbik9Pnt2YXIgcj1uKDQxNzYxKSxvPW4oNzUxOCksaT1uKDMxMTY3KSxhPWkmJmkuaXNEYXRlLHU9YT9vKGEpOnI7ZS5leHBvcnRzPXV9LDQxNjA5OihlLHQsbik9Pnt2YXIgcj1uKDI4MCksbz1uKDY0MTYwKSxpPW4oMzU2OTQpLGE9bigxNDY5KSx1PW4oOTg2MTIpLHM9big0NDE0NCksYz1uKDI1NzI2KSxsPW4oMzY3MTkpLGY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4hMDtpZih1KGUpJiYoYShlKXx8InN0cmluZyI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZS5zcGxpY2V8fHMoZSl8fGwoZSl8fGkoZSkpKXJldHVybiFlLmxlbmd0aDt2YXIgdD1vKGUpO2lmKCJbb2JqZWN0IE1hcF0iPT10fHwiW29iamVjdCBTZXRdIj09dClyZXR1cm4hZS5zaXplO2lmKGMoZSkpcmV0dXJuIXIoZSkubGVuZ3RoO2Zvcih2YXIgbiBpbiBlKWlmKGYuY2FsbChlLG4pKXJldHVybiExO3JldHVybiEwfX0sMTg0NDY6KGUsdCxuKT0+e3ZhciByPW4oOTA5MzkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiByKGUsdCl9fSwyMzU2MDooZSx0LG4pPT57dmFyIHI9big0NDIzOSksbz1uKDEzMjE4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIW8oZSkpcmV0dXJuITE7dmFyIHQ9cihlKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT10fHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT10fHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PXR8fCJbb2JqZWN0IFByb3h5XSI9PXR9fSw0MTc4MDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmZT4tMSYmZSUxPT0wJiZlPD05MDA3MTk5MjU0NzQwOTkxfX0sNTY2ODg6KGUsdCxuKT0+e3ZhciByPW4oMjU1ODgpLG89big3NTE4KSxpPW4oMzExNjcpLGE9aSYmaS5pc01hcCx1PWE/byhhKTpyO2UuZXhwb3J0cz11fSwxNDI5MzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfX0sMTMyMTg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gbnVsbCE9ZSYmKCJvYmplY3QiPT10fHwiZnVuY3Rpb24iPT10KX19LDM3MDA1OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZX19LDY4NjMwOihlLHQsbik9Pnt2YXIgcj1uKDQ0MjM5KSxvPW4oODU5MjQpLGk9bigzNzAwNSksYT1GdW5jdGlvbi5wcm90b3R5cGUsdT1PYmplY3QucHJvdG90eXBlLHM9YS50b1N0cmluZyxjPXUuaGFzT3duUHJvcGVydHksbD1zLmNhbGwoT2JqZWN0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIWkoZSl8fCJbb2JqZWN0IE9iamVjdF0iIT1yKGUpKXJldHVybiExO3ZhciB0PW8oZSk7aWYobnVsbD09PXQpcmV0dXJuITA7dmFyIG49Yy5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3I7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4gaW5zdGFuY2VvZiBuJiZzLmNhbGwobik9PWx9fSw3MjkyODooZSx0LG4pPT57dmFyIHI9bigyOTIyMSksbz1uKDc1MTgpLGk9bigzMTE2NyksYT1pJiZpLmlzU2V0LHU9YT9vKGEpOnI7ZS5leHBvcnRzPXV9LDMzNDQ4OihlLHQsbik9Pnt2YXIgcj1uKDQ0MjM5KSxvPW4oMzcwMDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGV8fG8oZSkmJiJbb2JqZWN0IFN5bWJvbF0iPT1yKGUpfX0sMzY3MTk6KGUsdCxuKT0+e3ZhciByPW4oMzg3NDkpLG89big3NTE4KSxpPW4oMzExNjcpLGE9aSYmaS5pc1R5cGVkQXJyYXksdT1hP28oYSk6cjtlLmV4cG9ydHM9dX0sMzY3NDooZSx0LG4pPT57dmFyIHI9bigxNDYzNiksbz1uKDI4MCksaT1uKDk4NjEyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSk/cihlKTpvKGUpfX0sODE3MDQ6KGUsdCxuKT0+e3ZhciByPW4oMTQ2MzYpLG89bigxMDMxMyksaT1uKDk4NjEyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSk/cihlLCEwKTpvKGUpfX0sMTA5Mjg6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHQ/ZVt0LTFdOnZvaWQgMH19LDM1MTYxOihlLHQsbik9Pnt2YXIgcj1uKDI5OTMyKSxvPW4oNjcyMDYpLGk9big2OTE5OSksYT1uKDE0NjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybihhKGUpP3I6aSkoZSxvKHQsMykpfX0sODgzMDY6KGUsdCxuKT0+e3ZhciByPW4oODMzNjkpO2Z1bmN0aW9uIG8oZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZXx8bnVsbCE9dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHI9YXJndW1lbnRzLG89dD90LmFwcGx5KHRoaXMscik6clswXSxpPW4uY2FjaGU7aWYoaS5oYXMobykpcmV0dXJuIGkuZ2V0KG8pO3ZhciBhPWUuYXBwbHkodGhpcyxyKTtyZXR1cm4gbi5jYWNoZT1pLnNldChvLGEpfHxpLGF9O3JldHVybiBuLmNhY2hlPW5ldyhvLkNhY2hlfHxyKSxufW8uQ2FjaGU9cixlLmV4cG9ydHM9b30sMzAyMzY6KGUsdCxuKT0+e3ZhciByPW4oNDI5ODApLG89bigyMTQ2MykoKGZ1bmN0aW9uKGUsdCxuLG8pe3IoZSx0LG4sbyl9KSk7ZS5leHBvcnRzPW99LDUwMzA4OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSw3NzcxOihlLHQsbik9Pnt2YXIgcj1uKDU1NjM5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gci5EYXRlLm5vdygpfX0sNTc1NTc6KGUsdCxuKT0+e3ZhciByPW4oMjk5MzIpLG89big4NTk5MCksaT1uKDU3NDA2KSxhPW4oNzE4MTEpLHU9big5ODM2Mykscz1uKDYwNjk2KSxjPW4oOTkwMjEpLGw9big0NjkwNCksZj1jKChmdW5jdGlvbihlLHQpe3ZhciBuPXt9O2lmKG51bGw9PWUpcmV0dXJuIG47dmFyIGM9ITE7dD1yKHQsKGZ1bmN0aW9uKHQpe3JldHVybiB0PWEodCxlKSxjfHwoYz10Lmxlbmd0aD4xKSx0fSkpLHUoZSxsKGUpLG4pLGMmJihuPW8obiw3LHMpKTtmb3IodmFyIGY9dC5sZW5ndGg7Zi0tOylpKG4sdFtmXSk7cmV0dXJuIG59KSk7ZS5leHBvcnRzPWZ9LDc1NDcyOihlLHQsbik9Pnt2YXIgcj1uKDgyNjg5KSxvPW4oMTQ2OSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiBudWxsPT1lP1tdOihvKHQpfHwodD1udWxsPT10P1tdOlt0XSksbyhuPWk/dm9pZCAwOm4pfHwobj1udWxsPT1uP1tdOltuXSkscihlLHQsbikpfX0sMzU5Mzc6KGUsdCxuKT0+e3ZhciByPW4oMjk5MzIpLG89big2NzIwNiksaT1uKDYzMDEyKSxhPW4oNDY5MDQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49cihhKGUpLChmdW5jdGlvbihlKXtyZXR1cm5bZV19KSk7cmV0dXJuIHQ9byh0KSxpKGUsbiwoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdChlLG5bMF0pfSkpfX0sMzk2MDE6KGUsdCxuKT0+e3ZhciByPW4oNDAzNzEpLG89big3OTE1MiksaT1uKDE1NDAzKSxhPW4oNDAzMjcpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaShlKT9yKGEoZSkpOm8oZSl9fSwzNjk2ODooZSx0LG4pPT57dmFyIHI9bigxMDYxMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZT9lOnIoZSx0LG4pfX0sMzE5MjE6KGUsdCxuKT0+e3ZhciByPW4oMTA2MTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixvKXtyZXR1cm4gbz0iZnVuY3Rpb24iPT10eXBlb2Ygbz9vOnZvaWQgMCxudWxsPT1lP2U6cihlLHQsbixvKX19LDU5NzA0OihlLHQsbik9Pnt2YXIgcj1uKDgyOTA4KSxvPW4oNjcyMDYpLGk9big1MDc2KSxhPW4oMTQ2OSksdT1uKDE2NjEyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBzPWEoZSk/cjppO3JldHVybiBuJiZ1KGUsdCxuKSYmKHQ9dm9pZCAwKSxzKGUsbyh0LDMpKX19LDcwNDc5OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm5bXX19LDk1MDYyOmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4hMX19LDIzNDkzOihlLHQsbik9Pnt2YXIgcj1uKDIzMjc5KSxvPW4oMTMyMTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9ITAsYT0hMDtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7cmV0dXJuIG8obikmJihpPSJsZWFkaW5nImluIG4/ISFuLmxlYWRpbmc6aSxhPSJ0cmFpbGluZyJpbiBuPyEhbi50cmFpbGluZzphKSxyKGUsdCx7bGVhZGluZzppLG1heFdhaXQ6dCx0cmFpbGluZzphfSl9fSwxODYwMTooZSx0LG4pPT57dmFyIHI9bigxNDg0MSksbz0xLzA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlPyhlPXIoZSkpPT09b3x8ZT09PS0xLzA/MTc5NzY5MzEzNDg2MjMxNTdlMjkyKihlPDA/LTE6MSk6ZT09ZT9lOjA6MD09PWU/ZTowfX0sNDA1NTQ6KGUsdCxuKT0+e3ZhciByPW4oMTg2MDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1yKGUpLG49dCUxO3JldHVybiB0PT10P24/dC1uOnQ6MH19LDE0ODQxOihlLHQsbik9Pnt2YXIgcj1uKDI3NTYxKSxvPW4oMTMyMTgpLGk9bigzMzQ0OCksYT0vXlstK10weFswLTlhLWZdKyQvaSx1PS9eMGJbMDFdKyQvaSxzPS9eMG9bMC03XSskL2ksYz1wYXJzZUludDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlO2lmKGkoZSkpcmV0dXJuIE5hTjtpZihvKGUpKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZS52YWx1ZU9mP2UudmFsdWVPZigpOmU7ZT1vKHQpP3QrIiI6dH1pZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIDA9PT1lP2U6K2U7ZT1yKGUpO3ZhciBuPXUudGVzdChlKTtyZXR1cm4gbnx8cy50ZXN0KGUpP2MoZS5zbGljZSgyKSxuPzI6OCk6YS50ZXN0KGUpP05hTjorZX19LDU5ODgxOihlLHQsbik9Pnt2YXIgcj1uKDk4MzYzKSxvPW4oODE3MDQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcihlLG8oZSkpfX0sNzk4MzM6KGUsdCxuKT0+e3ZhciByPW4oODA1MzEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjpyKGUpfX0sNjg3MTg6KGUsdCxuKT0+e3ZhciByPW4oNzc0MTIpLG89bigzMTE4KSxpPW4oNDc4MTYpLGE9big2NzIwNiksdT1uKDg1OTI0KSxzPW4oMTQ2OSksYz1uKDQ0MTQ0KSxsPW4oMjM1NjApLGY9bigxMzIxOCkscD1uKDM2NzE5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBkPXMoZSksaD1kfHxjKGUpfHxwKGUpO2lmKHQ9YSh0LDQpLG51bGw9PW4pe3ZhciB5PWUmJmUuY29uc3RydWN0b3I7bj1oP2Q/bmV3IHk6W106ZihlKSYmbCh5KT9vKHUoZSkpOnt9fXJldHVybihoP3I6aSkoZSwoZnVuY3Rpb24oZSxyLG8pe3JldHVybiB0KG4sZSxyLG8pfSkpLG59fSw0NTU3ODooZSx0LG4pPT57dmFyIHI9big2NzIwNiksbz1uKDQ1NjUyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmZS5sZW5ndGg/byhlLHIodCwyKSk6W119fSw4NzE4NTooZSx0LG4pPT57dmFyIHI9big0NTY1Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDAsZSYmZS5sZW5ndGg/cihlLHZvaWQgMCx0KTpbXX19LDk4NjAxOihlLHQsbik9Pnt2YXIgcj1uKDU3NDA2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZXx8cihlLHQpfX0sOTM0MjU6KGUsdCxuKT0+e3ZhciByPW4oMjQ0NTYpLG89big1NDI5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZT9lOnIoZSx0LG8obikpfX0sMTE3MDA6KGUsdCxuKT0+e3ZhciByPW4oOTg4MDUpKCJ0b1VwcGVyQ2FzZSIpO2UuZXhwb3J0cz1yfSw1ODc0ODooZSx0LG4pPT57dmFyIHI9big0OTAyOSksbz1uKDkzMTU3KSxpPW4oNzk4MzMpLGE9bigyNzU3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPWkoZSksdm9pZCAwPT09KHQ9bj92b2lkIDA6dCk/byhlKT9hKGUpOnIoZSk6ZS5tYXRjaCh0KXx8W119fSwyNzQxODplPT57InVzZSBzdHJpY3QiO3ZhciB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0cnl7aWYoIU9iamVjdC5hc3NpZ24pcmV0dXJuITE7dmFyIGU9bmV3IFN0cmluZygiYWJjIik7aWYoZVs1XT0iZGUiLCI1Ij09PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpWzBdKXJldHVybiExO2Zvcih2YXIgdD17fSxuPTA7bjwxMDtuKyspdFsiXyIrU3RyaW5nLmZyb21DaGFyQ29kZShuKV09bjtpZigiMDEyMzQ1Njc4OSIhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpLmpvaW4oIiIpKXJldHVybiExO3ZhciByPXt9O3JldHVybiJhYmNkZWZnaGlqa2xtbm9wcXJzdCIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JbZV09ZX0pKSwiYWJjZGVmZ2hpamtsbW5vcHFyc3QiPT09T2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxyKSkuam9pbigiIil9Y2F0Y2goZSl7cmV0dXJuITF9fSgpP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oZSxvKXtmb3IodmFyIGksYSx1PWZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQiKTtyZXR1cm4gT2JqZWN0KGUpfShlKSxzPTE7czxhcmd1bWVudHMubGVuZ3RoO3MrKyl7Zm9yKHZhciBjIGluIGk9T2JqZWN0KGFyZ3VtZW50c1tzXSkpbi5jYWxsKGksYykmJih1W2NdPWlbY10pO2lmKHQpe2E9dChpKTtmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKylyLmNhbGwoaSxhW2xdKSYmKHVbYVtsXV09aVthW2xdXSl9fXJldHVybiB1fX0sOTI3MDM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUwNDE0KTtmdW5jdGlvbiBvKCl7fWZ1bmN0aW9uIGkoKXt9aS5yZXNldFdhcm5pbmdDYWNoZT1vLGUuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4sbyxpLGEpe2lmKGEhPT1yKXt2YXIgdT1uZXcgRXJyb3IoIkNhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuIFVzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uIFJlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMiKTt0aHJvdyB1Lm5hbWU9IkludmFyaWFudCBWaW9sYXRpb24iLHV9fWZ1bmN0aW9uIHQoKXtyZXR1cm4gZX1lLmlzUmVxdWlyZWQ9ZTt2YXIgbj17YXJyYXk6ZSxiaWdpbnQ6ZSxib29sOmUsZnVuYzplLG51bWJlcjplLG9iamVjdDplLHN0cmluZzplLHN5bWJvbDplLGFueTplLGFycmF5T2Y6dCxlbGVtZW50OmUsZWxlbWVudFR5cGU6ZSxpbnN0YW5jZU9mOnQsbm9kZTplLG9iamVjdE9mOnQsb25lT2Y6dCxvbmVPZlR5cGU6dCxzaGFwZTp0LGV4YWN0OnQsY2hlY2tQcm9wVHlwZXM6aSxyZXNldFdhcm5pbmdDYWNoZTpvfTtyZXR1cm4gbi5Qcm9wVHlwZXM9bixufX0sNDU2OTc6KGUsdCxuKT0+e2UuZXhwb3J0cz1uKDkyNzAzKSgpfSw1MDQxNDplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0iU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQifSw2NDQ0ODooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNjcyOTQpLG89bigyNzQxOCksaT1uKDYzODQwKTtmdW5jdGlvbiBhKGUpe2Zvcih2YXIgdD0iaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9IitlLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXQrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSk7cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2UrIjsgdmlzaXQgIit0KyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9aWYoIXIpdGhyb3cgRXJyb3IoYSgyMjcpKTtmdW5jdGlvbiB1KGUsdCxuLHIsbyxpLGEsdSxzKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e3QuYXBwbHkobixjKX1jYXRjaChlKXt0aGlzLm9uRXJyb3IoZSl9fXZhciBzPSExLGM9bnVsbCxsPSExLGY9bnVsbCxwPXtvbkVycm9yOmZ1bmN0aW9uKGUpe3M9ITAsYz1lfX07ZnVuY3Rpb24gZChlLHQsbixyLG8saSxhLGwsZil7cz0hMSxjPW51bGwsdS5hcHBseShwLGFyZ3VtZW50cyl9dmFyIGg9bnVsbCx5PW51bGwsdj1udWxsO2Z1bmN0aW9uIG0oZSx0LG4pe3ZhciByPWUudHlwZXx8InVua25vd24tZXZlbnQiO2UuY3VycmVudFRhcmdldD12KG4pLGZ1bmN0aW9uKGUsdCxuLHIsbyxpLHUscCxoKXtpZihkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxzKXtpZighcyl0aHJvdyBFcnJvcihhKDE5OCkpO3ZhciB5PWM7cz0hMSxjPW51bGwsbHx8KGw9ITAsZj15KX19KHIsdCx2b2lkIDAsZSksZS5jdXJyZW50VGFyZ2V0PW51bGx9dmFyIGc9bnVsbCxfPXt9O2Z1bmN0aW9uIGIoKXtpZihnKWZvcih2YXIgZSBpbiBfKXt2YXIgdD1fW2VdLG49Zy5pbmRleE9mKGUpO2lmKCEoLTE8bikpdGhyb3cgRXJyb3IoYSg5NixlKSk7aWYoIXhbbl0pe2lmKCF0LmV4dHJhY3RFdmVudHMpdGhyb3cgRXJyb3IoYSg5NyxlKSk7Zm9yKHZhciByIGluIHhbbl09dCxuPXQuZXZlbnRUeXBlcyl7dmFyIG89dm9pZCAwLGk9bltyXSx1PXQscz1yO2lmKGsuaGFzT3duUHJvcGVydHkocykpdGhyb3cgRXJyb3IoYSg5OSxzKSk7a1tzXT1pO3ZhciBjPWkucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM7aWYoYyl7Zm9yKG8gaW4gYyljLmhhc093blByb3BlcnR5KG8pJiZ3KGNbb10sdSxzKTtvPSEwfWVsc2UgaS5yZWdpc3RyYXRpb25OYW1lPyh3KGkucmVnaXN0cmF0aW9uTmFtZSx1LHMpLG89ITApOm89ITE7aWYoIW8pdGhyb3cgRXJyb3IoYSg5OCxyLGUpKX19fX1mdW5jdGlvbiB3KGUsdCxuKXtpZihTW2VdKXRocm93IEVycm9yKGEoMTAwLGUpKTtTW2VdPXQsRVtlXT10LmV2ZW50VHlwZXNbbl0uZGVwZW5kZW5jaWVzfXZhciB4PVtdLGs9e30sUz17fSxFPXt9O2Z1bmN0aW9uIFQoZSl7dmFyIHQsbj0hMTtmb3IodCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkpe3ZhciByPWVbdF07aWYoIV8uaGFzT3duUHJvcGVydHkodCl8fF9bdF0hPT1yKXtpZihfW3RdKXRocm93IEVycm9yKGEoMTAyLHQpKTtfW3RdPXIsbj0hMH19biYmYigpfXZhciBDPSEoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudHx8dm9pZCAwPT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLE89bnVsbCxQPW51bGwsQT1udWxsO2Z1bmN0aW9uIGooZSl7aWYoZT15KGUpKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgTyl0aHJvdyBFcnJvcihhKDI4MCkpO3ZhciB0PWUuc3RhdGVOb2RlO3QmJih0PWgodCksTyhlLnN0YXRlTm9kZSxlLnR5cGUsdCkpfX1mdW5jdGlvbiBSKGUpe1A/QT9BLnB1c2goZSk6QT1bZV06UD1lfWZ1bmN0aW9uIE0oKXtpZihQKXt2YXIgZT1QLHQ9QTtpZihBPVA9bnVsbCxqKGUpLHQpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKylqKHRbZV0pfX1mdW5jdGlvbiBOKGUsdCl7cmV0dXJuIGUodCl9ZnVuY3Rpb24gSShlLHQsbixyLG8pe3JldHVybiBlKHQsbixyLG8pfWZ1bmN0aW9uIEYoKXt9dmFyIEQ9TixMPSExLHo9ITE7ZnVuY3Rpb24gVSgpe251bGw9PT1QJiZudWxsPT09QXx8KEYoKSxNKCkpfWZ1bmN0aW9uIEIoZSx0LG4pe2lmKHopcmV0dXJuIGUodCxuKTt6PSEwO3RyeXtyZXR1cm4gRChlLHQsbil9ZmluYWxseXt6PSExLFUoKX19dmFyIFc9L15bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRF1bOkEtWl9hLXpcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyRkZcdTAzNzAtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRFwtLjAtOVx1MDBCN1x1MDMwMC1cdTAzNkZcdTIwM0YtXHUyMDQwXSokLyxIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksJD17fSxWPXt9O2Z1bmN0aW9uIHEoZSx0LG4scixvLGkpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT10fHwzPT09dHx8ND09PXQsdGhpcy5hdHRyaWJ1dGVOYW1lPXIsdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9byx0aGlzLm11c3RVc2VQcm9wZXJ0eT1uLHRoaXMucHJvcGVydHlOYW1lPWUsdGhpcy50eXBlPXQsdGhpcy5zYW5pdGl6ZVVSTD1pfXZhciBHPXt9OyJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7R1tlXT1uZXcgcShlLDAsITEsZSxudWxsLCExKX0pKSxbWyJhY2NlcHRDaGFyc2V0IiwiYWNjZXB0LWNoYXJzZXQiXSxbImNsYXNzTmFtZSIsImNsYXNzIl0sWyJodG1sRm9yIiwiZm9yIl0sWyJodHRwRXF1aXYiLCJodHRwLWVxdWl2Il1dLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07R1t0XT1uZXcgcSh0LDEsITEsZVsxXSxudWxsLCExKX0pKSxbImNvbnRlbnRFZGl0YWJsZSIsImRyYWdnYWJsZSIsInNwZWxsQ2hlY2siLCJ2YWx1ZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0dbZV09bmV3IHEoZSwyLCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pKSxbImF1dG9SZXZlcnNlIiwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIsImZvY3VzYWJsZSIsInByZXNlcnZlQWxwaGEiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtHW2VdPW5ldyBxKGUsMiwhMSxlLG51bGwsITEpfSkpLCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGUiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7R1tlXT1uZXcgcShlLDMsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSkpLFsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0dbZV09bmV3IHEoZSwzLCEwLGUsbnVsbCwhMSl9KSksWyJjYXB0dXJlIiwiZG93bmxvYWQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtHW2VdPW5ldyBxKGUsNCwhMSxlLG51bGwsITEpfSkpLFsiY29scyIsInJvd3MiLCJzaXplIiwic3BhbiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe0dbZV09bmV3IHEoZSw2LCExLGUsbnVsbCwhMSl9KSksWyJyb3dTcGFuIiwic3RhcnQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtHW2VdPW5ldyBxKGUsNSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSl9KSk7dmFyIFE9L1tcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIFkoZSl7cmV0dXJuIGVbMV0udG9VcHBlckNhc2UoKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKFEsWSk7R1t0XT1uZXcgcSh0LDEsITEsZSxudWxsLCExKX0pKSwieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlIi5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShRLFkpO0dbdF09bmV3IHEodCwxLCExLGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCExKX0pKSxbInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoUSxZKTtHW3RdPW5ldyBxKHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCExKX0pKSxbInRhYkluZGV4IiwiY3Jvc3NPcmlnaW4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtHW2VdPW5ldyBxKGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSl9KSksRy54bGlua0hyZWY9bmV3IHEoInhsaW5rSHJlZiIsMSwhMSwieGxpbms6aHJlZiIsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCEwKSxbInNyYyIsImhyZWYiLCJhY3Rpb24iLCJmb3JtQWN0aW9uIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7R1tlXT1uZXcgcShlLDEsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITApfSkpO3ZhciBLPXIuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7ZnVuY3Rpb24gWChlLHQsbixyKXt2YXIgbz1HLmhhc093blByb3BlcnR5KHQpP0dbdF06bnVsbDsobnVsbCE9PW8/MD09PW8udHlwZTohciYmKDI8dC5sZW5ndGgmJigibyI9PT10WzBdfHwiTyI9PT10WzBdKSYmKCJuIj09PXRbMV18fCJOIj09PXRbMV0pKSl8fChmdW5jdGlvbihlLHQsbixyKXtpZihudWxsPT10fHxmdW5jdGlvbihlLHQsbixyKXtpZihudWxsIT09biYmMD09PW4udHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIHQpe2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjpyZXR1cm4hMDtjYXNlImJvb2xlYW4iOnJldHVybiFyJiYobnVsbCE9PW4/IW4uYWNjZXB0c0Jvb2xlYW5zOiJkYXRhLSIhPT0oZT1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KSkmJiJhcmlhLSIhPT1lKTtkZWZhdWx0OnJldHVybiExfX0oZSx0LG4scikpcmV0dXJuITA7aWYocilyZXR1cm4hMTtpZihudWxsIT09bilzd2l0Y2gobi50eXBlKXtjYXNlIDM6cmV0dXJuIXQ7Y2FzZSA0OnJldHVybiExPT09dDtjYXNlIDU6cmV0dXJuIGlzTmFOKHQpO2Nhc2UgNjpyZXR1cm4gaXNOYU4odCl8fDE+dH1yZXR1cm4hMX0odCxuLG8scikmJihuPW51bGwpLHJ8fG51bGw9PT1vP2Z1bmN0aW9uKGUpe3JldHVybiEhSC5jYWxsKFYsZSl8fCFILmNhbGwoJCxlKSYmKFcudGVzdChlKT9WW2VdPSEwOigkW2VdPSEwLCExKSl9KHQpJiYobnVsbD09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6ZS5zZXRBdHRyaWJ1dGUodCwiIituKSk6by5tdXN0VXNlUHJvcGVydHk/ZVtvLnByb3BlcnR5TmFtZV09bnVsbD09PW4/MyE9PW8udHlwZSYmIiI6bjoodD1vLmF0dHJpYnV0ZU5hbWUscj1vLmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09bj9lLnJlbW92ZUF0dHJpYnV0ZSh0KToobj0zPT09KG89by50eXBlKXx8ND09PW8mJiEwPT09bj8iIjoiIituLHI/ZS5zZXRBdHRyaWJ1dGVOUyhyLHQsbik6ZS5zZXRBdHRyaWJ1dGUodCxuKSkpKX1LLmhhc093blByb3BlcnR5KCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIil8fChLLlJlYWN0Q3VycmVudERpc3BhdGNoZXI9e2N1cnJlbnQ6bnVsbH0pLEsuaGFzT3duUHJvcGVydHkoIlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnIil8fChLLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnPXtzdXNwZW5zZTpudWxsfSk7dmFyIEo9L14oLiopW1xcXC9dLyxaPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsZWU9Wj9TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iik6NjAxMDMsdGU9Wj9TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTo2MDEwNixuZT1aP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcscmU9Wj9TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpOjYwMTA4LG9lPVo/U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKTo2MDExNCxpZT1aP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDksYWU9Wj9TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0Iik6NjAxMTAsdWU9Wj9TeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKTo2MDExMSxzZT1aP1N5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIik6NjAxMTIsY2U9Wj9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpOjYwMTEzLGxlPVo/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpOjYwMTIwLGZlPVo/U3ltYm9sLmZvcigicmVhY3QubWVtbyIpOjYwMTE1LHBlPVo/U3ltYm9sLmZvcigicmVhY3QubGF6eSIpOjYwMTE2LGRlPVo/U3ltYm9sLmZvcigicmVhY3QuYmxvY2siKTo2MDEyMSxoZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24geWUoZSl7cmV0dXJuIG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGU/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZT1oZSYmZVtoZV18fGVbIkBAaXRlcmF0b3IiXSk/ZTpudWxsfWZ1bmN0aW9uIHZlKGUpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpcmV0dXJuIGUuZGlzcGxheU5hbWV8fGUubmFtZXx8bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7c3dpdGNoKGUpe2Nhc2UgbmU6cmV0dXJuIkZyYWdtZW50IjtjYXNlIHRlOnJldHVybiJQb3J0YWwiO2Nhc2Ugb2U6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIHJlOnJldHVybiJTdHJpY3RNb2RlIjtjYXNlIGNlOnJldHVybiJTdXNwZW5zZSI7Y2FzZSBsZTpyZXR1cm4iU3VzcGVuc2VMaXN0In1pZigib2JqZWN0Ij09dHlwZW9mIGUpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgYWU6cmV0dXJuIkNvbnRleHQuQ29uc3VtZXIiO2Nhc2UgaWU6cmV0dXJuIkNvbnRleHQuUHJvdmlkZXIiO2Nhc2Ugc2U6dmFyIHQ9ZS5yZW5kZXI7cmV0dXJuIHQ9dC5kaXNwbGF5TmFtZXx8dC5uYW1lfHwiIixlLmRpc3BsYXlOYW1lfHwoIiIhPT10PyJGb3J3YXJkUmVmKCIrdCsiKSI6IkZvcndhcmRSZWYiKTtjYXNlIGZlOnJldHVybiB2ZShlLnR5cGUpO2Nhc2UgZGU6cmV0dXJuIHZlKGUucmVuZGVyKTtjYXNlIHBlOmlmKGU9MT09PWUuX3N0YXR1cz9lLl9yZXN1bHQ6bnVsbClyZXR1cm4gdmUoZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbWUoZSl7dmFyIHQ9IiI7ZG97ZTpzd2l0Y2goZS50YWcpe2Nhc2UgMzpjYXNlIDQ6Y2FzZSA2OmNhc2UgNzpjYXNlIDEwOmNhc2UgOTp2YXIgbj0iIjticmVhayBlO2RlZmF1bHQ6dmFyIHI9ZS5fZGVidWdPd25lcixvPWUuX2RlYnVnU291cmNlLGk9dmUoZS50eXBlKTtuPW51bGwsciYmKG49dmUoci50eXBlKSkscj1pLGk9IiIsbz9pPSIgKGF0ICIrby5maWxlTmFtZS5yZXBsYWNlKEosIiIpKyI6IitvLmxpbmVOdW1iZXIrIikiOm4mJihpPSIgKGNyZWF0ZWQgYnkgIituKyIpIiksbj0iXG4gICAgaW4gIisocnx8IlVua25vd24iKStpfXQrPW4sZT1lLnJldHVybn13aGlsZShlKTtyZXR1cm4gdH1mdW5jdGlvbiBnZShlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UiYm9vbGVhbiI6Y2FzZSJudW1iZXIiOmNhc2Uib2JqZWN0IjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIF9lKGUpe3ZhciB0PWUudHlwZTtyZXR1cm4oZT1lLm5vZGVOYW1lKSYmImlucHV0Ij09PWUudG9Mb3dlckNhc2UoKSYmKCJjaGVja2JveCI9PT10fHwicmFkaW8iPT09dCl9ZnVuY3Rpb24gYmUoZSl7ZS5fdmFsdWVUcmFja2VyfHwoZS5fdmFsdWVUcmFja2VyPWZ1bmN0aW9uKGUpe3ZhciB0PV9lKGUpPyJjaGVja2VkIjoidmFsdWUiLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxyPSIiK2VbdF07aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJnZvaWQgMCE9PW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBuLmdldCYmImZ1bmN0aW9uIj09dHlwZW9mIG4uc2V0KXt2YXIgbz1uLmdldCxpPW4uc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe3I9IiIrZSxpLmNhbGwodGhpcyxlKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOm4uZW51bWVyYWJsZX0pLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiByfSxzZXRWYWx1ZTpmdW5jdGlvbihlKXtyPSIiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW3RdfX19fShlKSl9ZnVuY3Rpb24gd2UoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5fdmFsdWVUcmFja2VyO2lmKCF0KXJldHVybiEwO3ZhciBuPXQuZ2V0VmFsdWUoKSxyPSIiO3JldHVybiBlJiYocj1fZShlKT9lLmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6ZS52YWx1ZSksKGU9cikhPT1uJiYodC5zZXRWYWx1ZShlKSwhMCl9ZnVuY3Rpb24geGUoZSx0KXt2YXIgbj10LmNoZWNrZWQ7cmV0dXJuIG8oe30sdCx7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9bj9uOmUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIGtlKGUsdCl7dmFyIG49bnVsbD09dC5kZWZhdWx0VmFsdWU/IiI6dC5kZWZhdWx0VmFsdWUscj1udWxsIT10LmNoZWNrZWQ/dC5jaGVja2VkOnQuZGVmYXVsdENoZWNrZWQ7bj1nZShudWxsIT10LnZhbHVlP3QudmFsdWU6biksZS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpyLGluaXRpYWxWYWx1ZTpuLGNvbnRyb2xsZWQ6ImNoZWNrYm94Ij09PXQudHlwZXx8InJhZGlvIj09PXQudHlwZT9udWxsIT10LmNoZWNrZWQ6bnVsbCE9dC52YWx1ZX19ZnVuY3Rpb24gU2UoZSx0KXtudWxsIT0odD10LmNoZWNrZWQpJiZYKGUsImNoZWNrZWQiLHQsITEpfWZ1bmN0aW9uIEVlKGUsdCl7U2UoZSx0KTt2YXIgbj1nZSh0LnZhbHVlKSxyPXQudHlwZTtpZihudWxsIT1uKSJudW1iZXIiPT09cj8oMD09PW4mJiIiPT09ZS52YWx1ZXx8ZS52YWx1ZSE9bikmJihlLnZhbHVlPSIiK24pOmUudmFsdWUhPT0iIituJiYoZS52YWx1ZT0iIituKTtlbHNlIGlmKCJzdWJtaXQiPT09cnx8InJlc2V0Ij09PXIpcmV0dXJuIHZvaWQgZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIik7dC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9DZShlLHQudHlwZSxuKTp0Lmhhc093blByb3BlcnR5KCJkZWZhdWx0VmFsdWUiKSYmQ2UoZSx0LnR5cGUsZ2UodC5kZWZhdWx0VmFsdWUpKSxudWxsPT10LmNoZWNrZWQmJm51bGwhPXQuZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhdC5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gVGUoZSx0LG4pe2lmKHQuaGFzT3duUHJvcGVydHkoInZhbHVlIil8fHQuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpKXt2YXIgcj10LnR5cGU7aWYoISgic3VibWl0IiE9PXImJiJyZXNldCIhPT1yfHx2b2lkIDAhPT10LnZhbHVlJiZudWxsIT09dC52YWx1ZSkpcmV0dXJuO3Q9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxufHx0PT09ZS52YWx1ZXx8KGUudmFsdWU9dCksZS5kZWZhdWx0VmFsdWU9dH0iIiE9PShuPWUubmFtZSkmJihlLm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9ISFlLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQsIiIhPT1uJiYoZS5uYW1lPW4pfWZ1bmN0aW9uIENlKGUsdCxuKXsibnVtYmVyIj09PXQmJmUub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8KG51bGw9PW4/ZS5kZWZhdWx0VmFsdWU9IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTplLmRlZmF1bHRWYWx1ZSE9PSIiK24mJihlLmRlZmF1bHRWYWx1ZT0iIituKSl9ZnVuY3Rpb24gT2UoZSx0KXtyZXR1cm4gZT1vKHtjaGlsZHJlbjp2b2lkIDB9LHQpLCh0PWZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiByLkNoaWxkcmVuLmZvckVhY2goZSwoZnVuY3Rpb24oZSl7bnVsbCE9ZSYmKHQrPWUpfSkpLHR9KHQuY2hpbGRyZW4pKSYmKGUuY2hpbGRyZW49dCksZX1mdW5jdGlvbiBQZShlLHQsbixyKXtpZihlPWUub3B0aW9ucyx0KXt0PXt9O2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXRbIiQiK25bb11dPSEwO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspbz10Lmhhc093blByb3BlcnR5KCIkIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09byYmKGVbbl0uc2VsZWN0ZWQ9byksbyYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihuPSIiK2dlKG4pLHQ9bnVsbCxvPTA7bzxlLmxlbmd0aDtvKyspe2lmKGVbb10udmFsdWU9PT1uKXJldHVybiBlW29dLnNlbGVjdGVkPSEwLHZvaWQociYmKGVbb10uZGVmYXVsdFNlbGVjdGVkPSEwKSk7bnVsbCE9PXR8fGVbb10uZGlzYWJsZWR8fCh0PWVbb10pfW51bGwhPT10JiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIEFlKGUsdCl7aWYobnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihhKDkxKSk7cmV0dXJuIG8oe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGplKGUsdCl7dmFyIG49dC52YWx1ZTtpZihudWxsPT1uKXtpZihuPXQuY2hpbGRyZW4sdD10LmRlZmF1bHRWYWx1ZSxudWxsIT1uKXtpZihudWxsIT10KXRocm93IEVycm9yKGEoOTIpKTtpZihBcnJheS5pc0FycmF5KG4pKXtpZighKDE+PW4ubGVuZ3RoKSl0aHJvdyBFcnJvcihhKDkzKSk7bj1uWzBdfXQ9bn1udWxsPT10JiYodD0iIiksbj10fWUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOmdlKG4pfX1mdW5jdGlvbiBSZShlLHQpe3ZhciBuPWdlKHQudmFsdWUpLHI9Z2UodC5kZWZhdWx0VmFsdWUpO251bGwhPW4mJigobj0iIituKSE9PWUudmFsdWUmJihlLnZhbHVlPW4pLG51bGw9PXQuZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PW4mJihlLmRlZmF1bHRWYWx1ZT1uKSksbnVsbCE9ciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpfWZ1bmN0aW9uIE1lKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJiIiIT09dCYmbnVsbCE9PXQmJihlLnZhbHVlPXQpfXZhciBOZT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsSWU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtmdW5jdGlvbiBGZShlKXtzd2l0Y2goZSl7Y2FzZSJzdmciOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7Y2FzZSJtYXRoIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI7ZGVmYXVsdDpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCJ9fWZ1bmN0aW9uIERlKGUsdCl7cmV0dXJuIG51bGw9PWV8fCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWU/RmUodCk6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj09PWUmJiJmb3JlaWduT2JqZWN0Ij09PXQ/Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOmV9dmFyIExlLHplLFVlPSh6ZT1mdW5jdGlvbihlLHQpe2lmKGUubmFtZXNwYWNlVVJJIT09SWV8fCJpbm5lckhUTUwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKChMZT1MZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK3QudmFsdWVPZigpLnRvU3RyaW5nKCkrIjwvc3ZnPiIsdD1MZS5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7dC5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCl9fSwidW5kZWZpbmVkIiE9dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihlLHQsbixyKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbigoZnVuY3Rpb24oKXtyZXR1cm4gemUoZSx0KX0pKX06emUpO2Z1bmN0aW9uIEJlKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpcmV0dXJuIHZvaWQobi5ub2RlVmFsdWU9dCl9ZS50ZXh0Q29udGVudD10fWZ1bmN0aW9uIFdlKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksblsiV2Via2l0IitlXT0id2Via2l0Iit0LG5bIk1veiIrZV09Im1veiIrdCxufXZhciBIZT17YW5pbWF0aW9uZW5kOldlKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246V2UoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OldlKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25lbmQ6V2UoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LCRlPXt9LFZlPXt9O2Z1bmN0aW9uIHFlKGUpe2lmKCRlW2VdKXJldHVybiAkZVtlXTtpZighSGVbZV0pcmV0dXJuIGU7dmFyIHQsbj1IZVtlXTtmb3IodCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkmJnQgaW4gVmUpcmV0dXJuICRlW2VdPW5bdF07cmV0dXJuIGV9QyYmKFZlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgSGUuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgSGUuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgSGUuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIEhlLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIEdlPXFlKCJhbmltYXRpb25lbmQiKSxRZT1xZSgiYW5pbWF0aW9uaXRlcmF0aW9uIiksWWU9cWUoImFuaW1hdGlvbnN0YXJ0IiksS2U9cWUoInRyYW5zaXRpb25lbmQiKSxYZT0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoIiAiKSxKZT1uZXcoImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXApO2Z1bmN0aW9uIFplKGUpe3ZhciB0PUplLmdldChlKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9bmV3IE1hcCxKZS5zZXQoZSx0KSksdH1mdW5jdGlvbiBldChlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvezAhPSgxMDI2Jih0PWUpLmVmZmVjdFRhZykmJihuPXQucmV0dXJuKSxlPXQucmV0dXJufXdoaWxlKGUpfXJldHVybiAzPT09dC50YWc/bjpudWxsfWZ1bmN0aW9uIHR0KGUpe2lmKDEzPT09ZS50YWcpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09dCYmKG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSkpLG51bGwhPT10KXJldHVybiB0LmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbnQoZSl7aWYoZXQoZSkhPT1lKXRocm93IEVycm9yKGEoMTg4KSl9ZnVuY3Rpb24gcnQoZSl7aWYoZT1mdW5jdGlvbihlKXt2YXIgdD1lLmFsdGVybmF0ZTtpZighdCl7aWYobnVsbD09PSh0PWV0KGUpKSl0aHJvdyBFcnJvcihhKDE4OCkpO3JldHVybiB0IT09ZT9udWxsOmV9Zm9yKHZhciBuPWUscj10Ozspe3ZhciBvPW4ucmV0dXJuO2lmKG51bGw9PT1vKWJyZWFrO3ZhciBpPW8uYWx0ZXJuYXRlO2lmKG51bGw9PT1pKXtpZihudWxsIT09KHI9by5yZXR1cm4pKXtuPXI7Y29udGludWV9YnJlYWt9aWYoby5jaGlsZD09PWkuY2hpbGQpe2ZvcihpPW8uY2hpbGQ7aTspe2lmKGk9PT1uKXJldHVybiBudChvKSxlO2lmKGk9PT1yKXJldHVybiBudChvKSx0O2k9aS5zaWJsaW5nfXRocm93IEVycm9yKGEoMTg4KSl9aWYobi5yZXR1cm4hPT1yLnJldHVybiluPW8scj1pO2Vsc2V7Zm9yKHZhciB1PSExLHM9by5jaGlsZDtzOyl7aWYocz09PW4pe3U9ITAsbj1vLHI9aTticmVha31pZihzPT09cil7dT0hMCxyPW8sbj1pO2JyZWFrfXM9cy5zaWJsaW5nfWlmKCF1KXtmb3Iocz1pLmNoaWxkO3M7KXtpZihzPT09bil7dT0hMCxuPWkscj1vO2JyZWFrfWlmKHM9PT1yKXt1PSEwLHI9aSxuPW87YnJlYWt9cz1zLnNpYmxpbmd9aWYoIXUpdGhyb3cgRXJyb3IoYSgxODkpKX19aWYobi5hbHRlcm5hdGUhPT1yKXRocm93IEVycm9yKGEoMTkwKSl9aWYoMyE9PW4udGFnKXRocm93IEVycm9yKGEoMTg4KSk7cmV0dXJuIG4uc3RhdGVOb2RlLmN1cnJlbnQ9PT1uP2U6dH0oZSksIWUpcmV0dXJuIG51bGw7Zm9yKHZhciB0PWU7Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpcmV0dXJuIHQ7aWYodC5jaGlsZCl0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7IXQuc2libGluZzspe2lmKCF0LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIG51bGx9ZnVuY3Rpb24gb3QoZSx0KXtpZihudWxsPT10KXRocm93IEVycm9yKGEoMzApKTtyZXR1cm4gbnVsbD09ZT90OkFycmF5LmlzQXJyYXkoZSk/QXJyYXkuaXNBcnJheSh0KT8oZS5wdXNoLmFwcGx5KGUsdCksZSk6KGUucHVzaCh0KSxlKTpBcnJheS5pc0FycmF5KHQpP1tlXS5jb25jYXQodCk6W2UsdF19ZnVuY3Rpb24gaXQoZSx0LG4pe0FycmF5LmlzQXJyYXkoZSk/ZS5mb3JFYWNoKHQsbik6ZSYmdC5jYWxsKG4sZSl9dmFyIGF0PW51bGw7ZnVuY3Rpb24gdXQoZSl7aWYoZSl7dmFyIHQ9ZS5fZGlzcGF0Y2hMaXN0ZW5lcnMsbj1lLl9kaXNwYXRjaEluc3RhbmNlcztpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGgmJiFlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7cisrKW0oZSx0W3JdLG5bcl0pO2Vsc2UgdCYmbShlLHQsbik7ZS5fZGlzcGF0Y2hMaXN0ZW5lcnM9bnVsbCxlLl9kaXNwYXRjaEluc3RhbmNlcz1udWxsLGUuaXNQZXJzaXN0ZW50KCl8fGUuY29uc3RydWN0b3IucmVsZWFzZShlKX19ZnVuY3Rpb24gc3QoZSl7aWYobnVsbCE9PWUmJihhdD1vdChhdCxlKSksZT1hdCxhdD1udWxsLGUpe2lmKGl0KGUsdXQpLGF0KXRocm93IEVycm9yKGEoOTUpKTtpZihsKXRocm93IGU9ZixsPSExLGY9bnVsbCxlfX1mdW5jdGlvbiBjdChlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX1mdW5jdGlvbiBsdChlKXtpZighQylyZXR1cm4hMTt2YXIgdD0oZT0ib24iK2UpaW4gZG9jdW1lbnQ7cmV0dXJuIHR8fCgodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc2V0QXR0cmlidXRlKGUsInJldHVybjsiKSx0PSJmdW5jdGlvbiI9PXR5cGVvZiB0W2VdKSx0fXZhciBmdD1bXTtmdW5jdGlvbiBwdChlKXtlLnRvcExldmVsVHlwZT1udWxsLGUubmF0aXZlRXZlbnQ9bnVsbCxlLnRhcmdldEluc3Q9bnVsbCxlLmFuY2VzdG9ycy5sZW5ndGg9MCwxMD5mdC5sZW5ndGgmJmZ0LnB1c2goZSl9ZnVuY3Rpb24gZHQoZSx0LG4scil7aWYoZnQubGVuZ3RoKXt2YXIgbz1mdC5wb3AoKTtyZXR1cm4gby50b3BMZXZlbFR5cGU9ZSxvLmV2ZW50U3lzdGVtRmxhZ3M9cixvLm5hdGl2ZUV2ZW50PXQsby50YXJnZXRJbnN0PW4sb31yZXR1cm57dG9wTGV2ZWxUeXBlOmUsZXZlbnRTeXN0ZW1GbGFnczpyLG5hdGl2ZUV2ZW50OnQsdGFyZ2V0SW5zdDpuLGFuY2VzdG9yczpbXX19ZnVuY3Rpb24gaHQoZSl7dmFyIHQ9ZS50YXJnZXRJbnN0LG49dDtkb3tpZighbil7ZS5hbmNlc3RvcnMucHVzaChuKTticmVha312YXIgcj1uO2lmKDM9PT1yLnRhZylyPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87ZWxzZXtmb3IoO3IucmV0dXJuOylyPXIucmV0dXJuO3I9MyE9PXIudGFnP251bGw6ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mb31pZighcilicmVhazs1IT09KHQ9bi50YWcpJiY2IT09dHx8ZS5hbmNlc3RvcnMucHVzaChuKSxuPU1uKHIpfXdoaWxlKG4pO2ZvcihuPTA7bjxlLmFuY2VzdG9ycy5sZW5ndGg7bisrKXt0PWUuYW5jZXN0b3JzW25dO3ZhciBvPWN0KGUubmF0aXZlRXZlbnQpO3I9ZS50b3BMZXZlbFR5cGU7dmFyIGk9ZS5uYXRpdmVFdmVudCxhPWUuZXZlbnRTeXN0ZW1GbGFnczswPT09biYmKGF8PTY0KTtmb3IodmFyIHU9bnVsbCxzPTA7czx4Lmxlbmd0aDtzKyspe3ZhciBjPXhbc107YyYmKGM9Yy5leHRyYWN0RXZlbnRzKHIsdCxpLG8sYSkpJiYodT1vdCh1LGMpKX1zdCh1KX19ZnVuY3Rpb24geXQoZSx0LG4pe2lmKCFuLmhhcyhlKSl7c3dpdGNoKGUpe2Nhc2Uic2Nyb2xsIjpZdCh0LCJzY3JvbGwiLCEwKTticmVhaztjYXNlImZvY3VzIjpjYXNlImJsdXIiOll0KHQsImZvY3VzIiwhMCksWXQodCwiYmx1ciIsITApLG4uc2V0KCJibHVyIixudWxsKSxuLnNldCgiZm9jdXMiLG51bGwpO2JyZWFrO2Nhc2UiY2FuY2VsIjpjYXNlImNsb3NlIjpsdChlKSYmWXQodCxlLCEwKTticmVhaztjYXNlImludmFsaWQiOmNhc2Uic3VibWl0IjpjYXNlInJlc2V0IjpicmVhaztkZWZhdWx0Oi0xPT09WGUuaW5kZXhPZihlKSYmUXQoZSx0KX1uLnNldChlLG51bGwpfX12YXIgdnQsbXQsZ3QsX3Q9ITEsYnQ9W10sd3Q9bnVsbCx4dD1udWxsLGt0PW51bGwsU3Q9bmV3IE1hcCxFdD1uZXcgTWFwLFR0PVtdLEN0PSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjbG9zZSBjYW5jZWwgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdCIuc3BsaXQoIiAiKSxPdD0iZm9jdXMgYmx1ciBkcmFnZW50ZXIgZHJhZ2xlYXZlIG1vdXNlb3ZlciBtb3VzZW91dCBwb2ludGVyb3ZlciBwb2ludGVyb3V0IGdvdHBvaW50ZXJjYXB0dXJlIGxvc3Rwb2ludGVyY2FwdHVyZSIuc3BsaXQoIiAiKTtmdW5jdGlvbiBQdChlLHQsbixyLG8pe3JldHVybntibG9ja2VkT246ZSx0b3BMZXZlbFR5cGU6dCxldmVudFN5c3RlbUZsYWdzOjMyfG4sbmF0aXZlRXZlbnQ6byxjb250YWluZXI6cn19ZnVuY3Rpb24gQXQoZSx0KXtzd2l0Y2goZSl7Y2FzZSJmb2N1cyI6Y2FzZSJibHVyIjp3dD1udWxsO2JyZWFrO2Nhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdsZWF2ZSI6eHQ9bnVsbDticmVhaztjYXNlIm1vdXNlb3ZlciI6Y2FzZSJtb3VzZW91dCI6a3Q9bnVsbDticmVhaztjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJvdXQiOlN0LmRlbGV0ZSh0LnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOkV0LmRlbGV0ZSh0LnBvaW50ZXJJZCl9fWZ1bmN0aW9uIGp0KGUsdCxuLHIsbyxpKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1pPyhlPVB0KHQsbixyLG8saSksbnVsbCE9PXQmJihudWxsIT09KHQ9Tm4odCkpJiZtdCh0KSksZSk6KGUuZXZlbnRTeXN0ZW1GbGFnc3w9cixlKX1mdW5jdGlvbiBSdChlKXt2YXIgdD1NbihlLnRhcmdldCk7aWYobnVsbCE9PXQpe3ZhciBuPWV0KHQpO2lmKG51bGwhPT1uKWlmKDEzPT09KHQ9bi50YWcpKXtpZihudWxsIT09KHQ9dHQobikpKXJldHVybiBlLmJsb2NrZWRPbj10LHZvaWQgaS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkoZS5wcmlvcml0eSwoZnVuY3Rpb24oKXtndChuKX0pKX1lbHNlIGlmKDM9PT10JiZuLnN0YXRlTm9kZS5oeWRyYXRlKXJldHVybiB2b2lkKGUuYmxvY2tlZE9uPTM9PT1uLnRhZz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGwpfWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gTXQoZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO3ZhciB0PVp0KGUudG9wTGV2ZWxUeXBlLGUuZXZlbnRTeXN0ZW1GbGFncyxlLmNvbnRhaW5lcixlLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09dCl7dmFyIG49Tm4odCk7cmV0dXJuIG51bGwhPT1uJiZtdChuKSxlLmJsb2NrZWRPbj10LCExfXJldHVybiEwfWZ1bmN0aW9uIE50KGUsdCxuKXtNdChlKSYmbi5kZWxldGUodCl9ZnVuY3Rpb24gSXQoKXtmb3IoX3Q9ITE7MDxidC5sZW5ndGg7KXt2YXIgZT1idFswXTtpZihudWxsIT09ZS5ibG9ja2VkT24pe251bGwhPT0oZT1ObihlLmJsb2NrZWRPbikpJiZ2dChlKTticmVha312YXIgdD1adChlLnRvcExldmVsVHlwZSxlLmV2ZW50U3lzdGVtRmxhZ3MsZS5jb250YWluZXIsZS5uYXRpdmVFdmVudCk7bnVsbCE9PXQ/ZS5ibG9ja2VkT249dDpidC5zaGlmdCgpfW51bGwhPT13dCYmTXQod3QpJiYod3Q9bnVsbCksbnVsbCE9PXh0JiZNdCh4dCkmJih4dD1udWxsKSxudWxsIT09a3QmJk10KGt0KSYmKGt0PW51bGwpLFN0LmZvckVhY2goTnQpLEV0LmZvckVhY2goTnQpfWZ1bmN0aW9uIEZ0KGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCxfdHx8KF90PSEwLGkudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhpLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LEl0KSkpfWZ1bmN0aW9uIER0KGUpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIEZ0KHQsZSl9aWYoMDxidC5sZW5ndGgpe0Z0KGJ0WzBdLGUpO2Zvcih2YXIgbj0xO248YnQubGVuZ3RoO24rKyl7dmFyIHI9YnRbbl07ci5ibG9ja2VkT249PT1lJiYoci5ibG9ja2VkT249bnVsbCl9fWZvcihudWxsIT09d3QmJkZ0KHd0LGUpLG51bGwhPT14dCYmRnQoeHQsZSksbnVsbCE9PWt0JiZGdChrdCxlKSxTdC5mb3JFYWNoKHQpLEV0LmZvckVhY2godCksbj0wO248VHQubGVuZ3RoO24rKykocj1UdFtuXSkuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxUdC5sZW5ndGgmJm51bGw9PT0obj1UdFswXSkuYmxvY2tlZE9uOylSdChuKSxudWxsPT09bi5ibG9ja2VkT24mJlR0LnNoaWZ0KCl9dmFyIEx0PXt9LHp0PW5ldyBNYXAsVXQ9bmV3IE1hcCxCdD1bImFib3J0IiwiYWJvcnQiLEdlLCJhbmltYXRpb25FbmQiLFFlLCJhbmltYXRpb25JdGVyYXRpb24iLFllLCJhbmltYXRpb25TdGFydCIsImNhbnBsYXkiLCJjYW5QbGF5IiwiY2FucGxheXRocm91Z2giLCJjYW5QbGF5VGhyb3VnaCIsImR1cmF0aW9uY2hhbmdlIiwiZHVyYXRpb25DaGFuZ2UiLCJlbXB0aWVkIiwiZW1wdGllZCIsImVuY3J5cHRlZCIsImVuY3J5cHRlZCIsImVuZGVkIiwiZW5kZWQiLCJlcnJvciIsImVycm9yIiwiZ290cG9pbnRlcmNhcHR1cmUiLCJnb3RQb2ludGVyQ2FwdHVyZSIsImxvYWQiLCJsb2FkIiwibG9hZGVkZGF0YSIsImxvYWRlZERhdGEiLCJsb2FkZWRtZXRhZGF0YSIsImxvYWRlZE1ldGFkYXRhIiwibG9hZHN0YXJ0IiwibG9hZFN0YXJ0IiwibG9zdHBvaW50ZXJjYXB0dXJlIiwibG9zdFBvaW50ZXJDYXB0dXJlIiwicGxheWluZyIsInBsYXlpbmciLCJwcm9ncmVzcyIsInByb2dyZXNzIiwic2Vla2luZyIsInNlZWtpbmciLCJzdGFsbGVkIiwic3RhbGxlZCIsInN1c3BlbmQiLCJzdXNwZW5kIiwidGltZXVwZGF0ZSIsInRpbWVVcGRhdGUiLEtlLCJ0cmFuc2l0aW9uRW5kIiwid2FpdGluZyIsIndhaXRpbmciXTtmdW5jdGlvbiBXdChlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bis9Mil7dmFyIHI9ZVtuXSxvPWVbbisxXSxpPSJvbiIrKG9bMF0udG9VcHBlckNhc2UoKStvLnNsaWNlKDEpKTtpPXtwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDppLGNhcHR1cmVkOmkrIkNhcHR1cmUifSxkZXBlbmRlbmNpZXM6W3JdLGV2ZW50UHJpb3JpdHk6dH0sVXQuc2V0KHIsdCksenQuc2V0KHIsaSksTHRbb109aX19V3QoImJsdXIgYmx1ciBjYW5jZWwgY2FuY2VsIGNsaWNrIGNsaWNrIGNsb3NlIGNsb3NlIGNvbnRleHRtZW51IGNvbnRleHRNZW51IGNvcHkgY29weSBjdXQgY3V0IGF1eGNsaWNrIGF1eENsaWNrIGRibGNsaWNrIGRvdWJsZUNsaWNrIGRyYWdlbmQgZHJhZ0VuZCBkcmFnc3RhcnQgZHJhZ1N0YXJ0IGRyb3AgZHJvcCBmb2N1cyBmb2N1cyBpbnB1dCBpbnB1dCBpbnZhbGlkIGludmFsaWQga2V5ZG93biBrZXlEb3duIGtleXByZXNzIGtleVByZXNzIGtleXVwIGtleVVwIG1vdXNlZG93biBtb3VzZURvd24gbW91c2V1cCBtb3VzZVVwIHBhc3RlIHBhc3RlIHBhdXNlIHBhdXNlIHBsYXkgcGxheSBwb2ludGVyY2FuY2VsIHBvaW50ZXJDYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlckRvd24gcG9pbnRlcnVwIHBvaW50ZXJVcCByYXRlY2hhbmdlIHJhdGVDaGFuZ2UgcmVzZXQgcmVzZXQgc2Vla2VkIHNlZWtlZCBzdWJtaXQgc3VibWl0IHRvdWNoY2FuY2VsIHRvdWNoQ2FuY2VsIHRvdWNoZW5kIHRvdWNoRW5kIHRvdWNoc3RhcnQgdG91Y2hTdGFydCB2b2x1bWVjaGFuZ2Ugdm9sdW1lQ2hhbmdlIi5zcGxpdCgiICIpLDApLFd0KCJkcmFnIGRyYWcgZHJhZ2VudGVyIGRyYWdFbnRlciBkcmFnZXhpdCBkcmFnRXhpdCBkcmFnbGVhdmUgZHJhZ0xlYXZlIGRyYWdvdmVyIGRyYWdPdmVyIG1vdXNlbW92ZSBtb3VzZU1vdmUgbW91c2VvdXQgbW91c2VPdXQgbW91c2VvdmVyIG1vdXNlT3ZlciBwb2ludGVybW92ZSBwb2ludGVyTW92ZSBwb2ludGVyb3V0IHBvaW50ZXJPdXQgcG9pbnRlcm92ZXIgcG9pbnRlck92ZXIgc2Nyb2xsIHNjcm9sbCB0b2dnbGUgdG9nZ2xlIHRvdWNobW92ZSB0b3VjaE1vdmUgd2hlZWwgd2hlZWwiLnNwbGl0KCIgIiksMSksV3QoQnQsMik7Zm9yKHZhciBIdD0iY2hhbmdlIHNlbGVjdGlvbmNoYW5nZSB0ZXh0SW5wdXQgY29tcG9zaXRpb25zdGFydCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnVwZGF0ZSIuc3BsaXQoIiAiKSwkdD0wOyR0PEh0Lmxlbmd0aDskdCsrKVV0LnNldChIdFskdF0sMCk7dmFyIFZ0PWkudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkscXQ9aS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksR3Q9ITA7ZnVuY3Rpb24gUXQoZSx0KXtZdCh0LGUsITEpfWZ1bmN0aW9uIFl0KGUsdCxuKXt2YXIgcj1VdC5nZXQodCk7c3dpdGNoKHZvaWQgMD09PXI/MjpyKXtjYXNlIDA6cj1LdC5iaW5kKG51bGwsdCwxLGUpO2JyZWFrO2Nhc2UgMTpyPVh0LmJpbmQobnVsbCx0LDEsZSk7YnJlYWs7ZGVmYXVsdDpyPUp0LmJpbmQobnVsbCx0LDEsZSl9bj9lLmFkZEV2ZW50TGlzdGVuZXIodCxyLCEwKTplLmFkZEV2ZW50TGlzdGVuZXIodCxyLCExKX1mdW5jdGlvbiBLdChlLHQsbixyKXtMfHxGKCk7dmFyIG89SnQsaT1MO0w9ITA7dHJ5e0kobyxlLHQsbixyKX1maW5hbGx5eyhMPWkpfHxVKCl9fWZ1bmN0aW9uIFh0KGUsdCxuLHIpe3F0KFZ0LEp0LmJpbmQobnVsbCxlLHQsbixyKSl9ZnVuY3Rpb24gSnQoZSx0LG4scil7aWYoR3QpaWYoMDxidC5sZW5ndGgmJi0xPEN0LmluZGV4T2YoZSkpZT1QdChudWxsLGUsdCxuLHIpLGJ0LnB1c2goZSk7ZWxzZXt2YXIgbz1adChlLHQsbixyKTtpZihudWxsPT09bylBdChlLHIpO2Vsc2UgaWYoLTE8Q3QuaW5kZXhPZihlKSllPVB0KG8sZSx0LG4sciksYnQucHVzaChlKTtlbHNlIGlmKCFmdW5jdGlvbihlLHQsbixyLG8pe3N3aXRjaCh0KXtjYXNlImZvY3VzIjpyZXR1cm4gd3Q9anQod3QsZSx0LG4scixvKSwhMDtjYXNlImRyYWdlbnRlciI6cmV0dXJuIHh0PWp0KHh0LGUsdCxuLHIsbyksITA7Y2FzZSJtb3VzZW92ZXIiOnJldHVybiBrdD1qdChrdCxlLHQsbixyLG8pLCEwO2Nhc2UicG9pbnRlcm92ZXIiOnZhciBpPW8ucG9pbnRlcklkO3JldHVybiBTdC5zZXQoaSxqdChTdC5nZXQoaSl8fG51bGwsZSx0LG4scixvKSksITA7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6cmV0dXJuIGk9by5wb2ludGVySWQsRXQuc2V0KGksanQoRXQuZ2V0KGkpfHxudWxsLGUsdCxuLHIsbykpLCEwfXJldHVybiExfShvLGUsdCxuLHIpKXtBdChlLHIpLGU9ZHQoZSxyLG51bGwsdCk7dHJ5e0IoaHQsZSl9ZmluYWxseXtwdChlKX19fX1mdW5jdGlvbiBadChlLHQsbixyKXtpZihudWxsIT09KG49TW4obj1jdChyKSkpKXt2YXIgbz1ldChuKTtpZihudWxsPT09byluPW51bGw7ZWxzZXt2YXIgaT1vLnRhZztpZigxMz09PWkpe2lmKG51bGwhPT0obj10dChvKSkpcmV0dXJuIG47bj1udWxsfWVsc2UgaWYoMz09PWkpe2lmKG8uc3RhdGVOb2RlLmh5ZHJhdGUpcmV0dXJuIDM9PT1vLnRhZz9vLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7bj1udWxsfWVsc2UgbyE9PW4mJihuPW51bGwpfX1lPWR0KGUscixuLHQpO3RyeXtCKGh0LGUpfWZpbmFsbHl7cHQoZSl9cmV0dXJuIG51bGx9dmFyIGVuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSx0bj1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO2Z1bmN0aW9uIG5uKGUsdCxuKXtyZXR1cm4gbnVsbD09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8IiI9PT10PyIiOm58fCJudW1iZXIiIT10eXBlb2YgdHx8MD09PXR8fGVuLmhhc093blByb3BlcnR5KGUpJiZlbltlXT8oIiIrdCkudHJpbSgpOnQrInB4In1mdW5jdGlvbiBybihlLHQpe2Zvcih2YXIgbiBpbiBlPWUuc3R5bGUsdClpZih0Lmhhc093blByb3BlcnR5KG4pKXt2YXIgcj0wPT09bi5pbmRleE9mKCItLSIpLG89bm4obix0W25dLHIpOyJmbG9hdCI9PT1uJiYobj0iY3NzRmxvYXQiKSxyP2Uuc2V0UHJvcGVydHkobixvKTplW25dPW99fU9iamVjdC5rZXlzKGVuKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0bi5mb3JFYWNoKChmdW5jdGlvbih0KXt0PXQrZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxlblt0XT1lbltlXX0pKX0pKTt2YXIgb249byh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtmdW5jdGlvbiBhbihlLHQpe2lmKHQpe2lmKG9uW2VdJiYobnVsbCE9dC5jaGlsZHJlbnx8bnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoYSgxMzcsZSwiIikpO2lmKG51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPXQuY2hpbGRyZW4pdGhyb3cgRXJyb3IoYSg2MCkpO2lmKCJvYmplY3QiIT10eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTHx8ISgiX19odG1sImluIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKGEoNjEpKX1pZihudWxsIT10LnN0eWxlJiYib2JqZWN0IiE9dHlwZW9mIHQuc3R5bGUpdGhyb3cgRXJyb3IoYSg2MiwiIikpfX1mdW5jdGlvbiB1bihlLHQpe2lmKC0xPT09ZS5pbmRleE9mKCItIikpcmV0dXJuInN0cmluZyI9PXR5cGVvZiB0LmlzO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBzbj1OZTtmdW5jdGlvbiBjbihlLHQpe3ZhciBuPVplKGU9OT09PWUubm9kZVR5cGV8fDExPT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudCk7dD1FW3RdO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXl0KHRbcl0sZSxuKX1mdW5jdGlvbiBsbigpe31mdW5jdGlvbiBmbihlKXtpZih2b2lkIDA9PT0oZT1lfHwoInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGUuYWN0aXZlRWxlbWVudHx8ZS5ib2R5fWNhdGNoKHQpe3JldHVybiBlLmJvZHl9fWZ1bmN0aW9uIHBuKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBkbihlLHQpe3ZhciBuLHI9cG4oZSk7Zm9yKGU9MDtyOyl7aWYoMz09PXIubm9kZVR5cGUpe2lmKG49ZStyLnRleHRDb250ZW50Lmxlbmd0aCxlPD10JiZuPj10KXJldHVybntub2RlOnIsb2Zmc2V0OnQtZX07ZT1ufWU6e2Zvcig7cjspe2lmKHIubmV4dFNpYmxpbmcpe3I9ci5uZXh0U2libGluZzticmVhayBlfXI9ci5wYXJlbnROb2RlfXI9dm9pZCAwfXI9cG4ocil9fWZ1bmN0aW9uIGhuKGUsdCl7cmV0dXJuISghZXx8IXQpJiYoZT09PXR8fCghZXx8MyE9PWUubm9kZVR5cGUpJiYodCYmMz09PXQubm9kZVR5cGU/aG4oZSx0LnBhcmVudE5vZGUpOiJjb250YWlucyJpbiBlP2UuY29udGFpbnModCk6ISFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpKSkpfWZ1bmN0aW9uIHluKCl7Zm9yKHZhciBlPXdpbmRvdyx0PWZuKCk7dCBpbnN0YW5jZW9mIGUuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIG49InN0cmluZyI9PXR5cGVvZiB0LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChlKXtuPSExfWlmKCFuKWJyZWFrO3Q9Zm4oKGU9dC5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gdm4oZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoImlucHV0Ij09PXQmJigidGV4dCI9PT1lLnR5cGV8fCJzZWFyY2giPT09ZS50eXBlfHwidGVsIj09PWUudHlwZXx8InVybCI9PT1lLnR5cGV8fCJwYXNzd29yZCI9PT1lLnR5cGUpfHwidGV4dGFyZWEiPT09dHx8InRydWUiPT09ZS5jb250ZW50RWRpdGFibGUpfXZhciBtbj0iJCIsZ249Ii8kIixfbj0iJD8iLGJuPSIkISIsd249bnVsbCx4bj1udWxsO2Z1bmN0aW9uIGtuKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuISF0LmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBTbihlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwib3B0aW9uIj09PWV8fCJub3NjcmlwdCI9PT1lfHwic3RyaW5nIj09dHlwZW9mIHQuY2hpbGRyZW58fCJudW1iZXIiPT10eXBlb2YgdC5jaGlsZHJlbnx8Im9iamVjdCI9PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09dC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIEVuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLFRuPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMDtmdW5jdGlvbiBDbihlKXtmb3IoO251bGwhPWU7ZT1lLm5leHRTaWJsaW5nKXt2YXIgdD1lLm5vZGVUeXBlO2lmKDE9PT10fHwzPT09dClicmVha31yZXR1cm4gZX1mdW5jdGlvbiBPbihlKXtlPWUucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIG49ZS5kYXRhO2lmKG49PT1tbnx8bj09PWJufHxuPT09X24pe2lmKDA9PT10KXJldHVybiBlO3QtLX1lbHNlIG49PT1nbiYmdCsrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9dmFyIFBuPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLEFuPSJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSQiK1BuLGpuPSJfX3JlYWN0RXZlbnRIYW5kbGVycyQiK1BuLFJuPSJfX3JlYWN0Q29udGFpbmVyZSQiK1BuO2Z1bmN0aW9uIE1uKGUpe3ZhciB0PWVbQW5dO2lmKHQpcmV0dXJuIHQ7Zm9yKHZhciBuPWUucGFyZW50Tm9kZTtuOyl7aWYodD1uW1JuXXx8bltBbl0pe2lmKG49dC5hbHRlcm5hdGUsbnVsbCE9PXQuY2hpbGR8fG51bGwhPT1uJiZudWxsIT09bi5jaGlsZClmb3IoZT1PbihlKTtudWxsIT09ZTspe2lmKG49ZVtBbl0pcmV0dXJuIG47ZT1PbihlKX1yZXR1cm4gdH1uPShlPW4pLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gTm4oZSl7cmV0dXJuIShlPWVbQW5dfHxlW1JuXSl8fDUhPT1lLnRhZyYmNiE9PWUudGFnJiYxMyE9PWUudGFnJiYzIT09ZS50YWc/bnVsbDplfWZ1bmN0aW9uIEluKGUpe2lmKDU9PT1lLnRhZ3x8Nj09PWUudGFnKXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihhKDMzKSl9ZnVuY3Rpb24gRm4oZSl7cmV0dXJuIGVbam5dfHxudWxsfWZ1bmN0aW9uIERuKGUpe2Rve2U9ZS5yZXR1cm59d2hpbGUoZSYmNSE9PWUudGFnKTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBMbihlLHQpe3ZhciBuPWUuc3RhdGVOb2RlO2lmKCFuKXJldHVybiBudWxsO3ZhciByPWgobik7aWYoIXIpcmV0dXJuIG51bGw7bj1yW3RdO2U6c3dpdGNoKHQpe2Nhc2Uib25DbGljayI6Y2FzZSJvbkNsaWNrQ2FwdHVyZSI6Y2FzZSJvbkRvdWJsZUNsaWNrIjpjYXNlIm9uRG91YmxlQ2xpY2tDYXB0dXJlIjpjYXNlIm9uTW91c2VEb3duIjpjYXNlIm9uTW91c2VEb3duQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlTW92ZSI6Y2FzZSJvbk1vdXNlTW92ZUNhcHR1cmUiOmNhc2Uib25Nb3VzZVVwIjpjYXNlIm9uTW91c2VVcENhcHR1cmUiOmNhc2Uib25Nb3VzZUVudGVyIjoocj0hci5kaXNhYmxlZCl8fChyPSEoImJ1dHRvbiI9PT0oZT1lLnR5cGUpfHwiaW5wdXQiPT09ZXx8InNlbGVjdCI9PT1lfHwidGV4dGFyZWEiPT09ZSkpLGU9IXI7YnJlYWsgZTtkZWZhdWx0OmU9ITF9aWYoZSlyZXR1cm4gbnVsbDtpZihuJiYiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBFcnJvcihhKDIzMSx0LHR5cGVvZiBuKSk7cmV0dXJuIG59ZnVuY3Rpb24gem4oZSx0LG4peyh0PUxuKGUsbi5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lc1t0XSkpJiYobi5fZGlzcGF0Y2hMaXN0ZW5lcnM9b3Qobi5fZGlzcGF0Y2hMaXN0ZW5lcnMsdCksbi5fZGlzcGF0Y2hJbnN0YW5jZXM9b3Qobi5fZGlzcGF0Y2hJbnN0YW5jZXMsZSkpfWZ1bmN0aW9uIFVuKGUpe2lmKGUmJmUuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMpe2Zvcih2YXIgdD1lLl90YXJnZXRJbnN0LG49W107dDspbi5wdXNoKHQpLHQ9RG4odCk7Zm9yKHQ9bi5sZW5ndGg7MDx0LS07KXpuKG5bdF0sImNhcHR1cmVkIixlKTtmb3IodD0wO3Q8bi5sZW5ndGg7dCsrKXpuKG5bdF0sImJ1YmJsZWQiLGUpfX1mdW5jdGlvbiBCbihlLHQsbil7ZSYmbiYmbi5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lJiYodD1MbihlLG4uZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSkpJiYobi5fZGlzcGF0Y2hMaXN0ZW5lcnM9b3Qobi5fZGlzcGF0Y2hMaXN0ZW5lcnMsdCksbi5fZGlzcGF0Y2hJbnN0YW5jZXM9b3Qobi5fZGlzcGF0Y2hJbnN0YW5jZXMsZSkpfWZ1bmN0aW9uIFduKGUpe2UmJmUuZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSYmQm4oZS5fdGFyZ2V0SW5zdCxudWxsLGUpfWZ1bmN0aW9uIEhuKGUpe2l0KGUsVW4pfXZhciAkbj1udWxsLFZuPW51bGwscW49bnVsbDtmdW5jdGlvbiBHbigpe2lmKHFuKXJldHVybiBxbjt2YXIgZSx0LG49Vm4scj1uLmxlbmd0aCxvPSJ2YWx1ZSJpbiAkbj8kbi52YWx1ZTokbi50ZXh0Q29udGVudCxpPW8ubGVuZ3RoO2ZvcihlPTA7ZTxyJiZuW2VdPT09b1tlXTtlKyspO3ZhciBhPXItZTtmb3IodD0xO3Q8PWEmJm5bci10XT09PW9baS10XTt0KyspO3JldHVybiBxbj1vLnNsaWNlKGUsMTx0PzEtdDp2b2lkIDApfWZ1bmN0aW9uIFFuKCl7cmV0dXJuITB9ZnVuY3Rpb24gWW4oKXtyZXR1cm4hMX1mdW5jdGlvbiBLbihlLHQsbixyKXtmb3IodmFyIG8gaW4gdGhpcy5kaXNwYXRjaENvbmZpZz1lLHRoaXMuX3RhcmdldEluc3Q9dCx0aGlzLm5hdGl2ZUV2ZW50PW4sZT10aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZSllLmhhc093blByb3BlcnR5KG8pJiYoKHQ9ZVtvXSk/dGhpc1tvXT10KG4pOiJ0YXJnZXQiPT09bz90aGlzLnRhcmdldD1yOnRoaXNbb109bltvXSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1uLmRlZmF1bHRQcmV2ZW50ZWQ/bi5kZWZhdWx0UHJldmVudGVkOiExPT09bi5yZXR1cm5WYWx1ZSk/UW46WW4sdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1Zbix0aGlzfWZ1bmN0aW9uIFhuKGUsdCxuLHIpe2lmKHRoaXMuZXZlbnRQb29sLmxlbmd0aCl7dmFyIG89dGhpcy5ldmVudFBvb2wucG9wKCk7cmV0dXJuIHRoaXMuY2FsbChvLGUsdCxuLHIpLG99cmV0dXJuIG5ldyB0aGlzKGUsdCxuLHIpfWZ1bmN0aW9uIEpuKGUpe2lmKCEoZSBpbnN0YW5jZW9mIHRoaXMpKXRocm93IEVycm9yKGEoMjc5KSk7ZS5kZXN0cnVjdG9yKCksMTA+dGhpcy5ldmVudFBvb2wubGVuZ3RoJiZ0aGlzLmV2ZW50UG9vbC5wdXNoKGUpfWZ1bmN0aW9uIFpuKGUpe2UuZXZlbnRQb29sPVtdLGUuZ2V0UG9vbGVkPVhuLGUucmVsZWFzZT1Kbn1vKEtuLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6InVua25vd24iIT10eXBlb2YgZS5yZXR1cm5WYWx1ZSYmKGUucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPVFuKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5zdG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKToidW5rbm93biIhPXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPVFuKX0scGVyc2lzdDpmdW5jdGlvbigpe3RoaXMuaXNQZXJzaXN0ZW50PVFufSxpc1BlcnNpc3RlbnQ6WW4sZGVzdHJ1Y3RvcjpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5jb25zdHJ1Y3Rvci5JbnRlcmZhY2U7Zm9yKGUgaW4gdCl0aGlzW2VdPW51bGw7dGhpcy5uYXRpdmVFdmVudD10aGlzLl90YXJnZXRJbnN0PXRoaXMuZGlzcGF0Y2hDb25maWc9bnVsbCx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXRoaXMuaXNEZWZhdWx0UHJldmVudGVkPVluLHRoaXMuX2Rpc3BhdGNoSW5zdGFuY2VzPXRoaXMuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGx9fSksS24uSW50ZXJmYWNlPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsY3VycmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxldmVudFBoYXNlOm51bGwsYnViYmxlczpudWxsLGNhbmNlbGFibGU6bnVsbCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOm51bGwsaXNUcnVzdGVkOm51bGx9LEtuLmV4dGVuZD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7fWZ1bmN0aW9uIG4oKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHI9dGhpczt0LnByb3RvdHlwZT1yLnByb3RvdHlwZTt2YXIgaT1uZXcgdDtyZXR1cm4gbyhpLG4ucHJvdG90eXBlKSxuLnByb3RvdHlwZT1pLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sbi5JbnRlcmZhY2U9byh7fSxyLkludGVyZmFjZSxlKSxuLmV4dGVuZD1yLmV4dGVuZCxabihuKSxufSxabihLbik7dmFyIGVyPUtuLmV4dGVuZCh7ZGF0YTpudWxsfSksdHI9S24uZXh0ZW5kKHtkYXRhOm51bGx9KSxucj1bOSwxMywyNywzMl0scnI9QyYmIkNvbXBvc2l0aW9uRXZlbnQiaW4gd2luZG93LG9yPW51bGw7QyYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKG9yPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGlyPUMmJiJUZXh0RXZlbnQiaW4gd2luZG93JiYhb3IsYXI9QyYmKCFycnx8b3ImJjg8b3ImJjExPj1vciksdXI9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksc3I9e2JlZm9yZUlucHV0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25CZWZvcmVJbnB1dCIsY2FwdHVyZWQ6Im9uQmVmb3JlSW5wdXRDYXB0dXJlIn0sZGVwZW5kZW5jaWVzOlsiY29tcG9zaXRpb25lbmQiLCJrZXlwcmVzcyIsInRleHRJbnB1dCIsInBhc3RlIl19LGNvbXBvc2l0aW9uRW5kOntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25Db21wb3NpdGlvbkVuZCIsY2FwdHVyZWQ6Im9uQ29tcG9zaXRpb25FbmRDYXB0dXJlIn0sZGVwZW5kZW5jaWVzOiJibHVyIGNvbXBvc2l0aW9uZW5kIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpfSxjb21wb3NpdGlvblN0YXJ0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25Db21wb3NpdGlvblN0YXJ0IixjYXB0dXJlZDoib25Db21wb3NpdGlvblN0YXJ0Q2FwdHVyZSJ9LGRlcGVuZGVuY2llczoiYmx1ciBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpfSxjb21wb3NpdGlvblVwZGF0ZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6Im9uQ29tcG9zaXRpb25VcGRhdGUiLGNhcHR1cmVkOiJvbkNvbXBvc2l0aW9uVXBkYXRlQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczoiYmx1ciBjb21wb3NpdGlvbnVwZGF0ZSBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKX19LGNyPSExO2Z1bmN0aW9uIGxyKGUsdCl7c3dpdGNoKGUpe2Nhc2Uia2V5dXAiOnJldHVybi0xIT09bnIuaW5kZXhPZih0LmtleUNvZGUpO2Nhc2Uia2V5ZG93biI6cmV0dXJuIDIyOSE9PXQua2V5Q29kZTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJibHVyIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBmcihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mKGU9ZS5kZXRhaWwpJiYiZGF0YSJpbiBlP2UuZGF0YTpudWxsfXZhciBwcj0hMTt2YXIgZHI9e2V2ZW50VHlwZXM6c3IsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyKXt2YXIgbztpZihycillOntzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp2YXIgaT1zci5jb21wb3NpdGlvblN0YXJ0O2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6aT1zci5jb21wb3NpdGlvbkVuZDticmVhayBlO2Nhc2UiY29tcG9zaXRpb251cGRhdGUiOmk9c3IuY29tcG9zaXRpb25VcGRhdGU7YnJlYWsgZX1pPXZvaWQgMH1lbHNlIHByP2xyKGUsbikmJihpPXNyLmNvbXBvc2l0aW9uRW5kKToia2V5ZG93biI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJihpPXNyLmNvbXBvc2l0aW9uU3RhcnQpO3JldHVybiBpPyhhciYmImtvIiE9PW4ubG9jYWxlJiYocHJ8fGkhPT1zci5jb21wb3NpdGlvblN0YXJ0P2k9PT1zci5jb21wb3NpdGlvbkVuZCYmcHImJihvPUduKCkpOihWbj0idmFsdWUiaW4oJG49cik/JG4udmFsdWU6JG4udGV4dENvbnRlbnQscHI9ITApKSxpPWVyLmdldFBvb2xlZChpLHQsbixyKSxvP2kuZGF0YT1vOm51bGwhPT0obz1mcihuKSkmJihpLmRhdGE9byksSG4oaSksbz1pKTpvPW51bGwsKGU9aXI/ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIGZyKHQpO2Nhc2Uia2V5cHJlc3MiOnJldHVybiAzMiE9PXQud2hpY2g/bnVsbDooY3I9ITAsdXIpO2Nhc2UidGV4dElucHV0IjpyZXR1cm4oZT10LmRhdGEpPT09dXImJmNyP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSxuKTpmdW5jdGlvbihlLHQpe2lmKHByKXJldHVybiJjb21wb3NpdGlvbmVuZCI9PT1lfHwhcnImJmxyKGUsdCk/KGU9R24oKSxxbj1Wbj0kbj1udWxsLHByPSExLGUpOm51bGw7c3dpdGNoKGUpe2Nhc2UicGFzdGUiOmRlZmF1bHQ6cmV0dXJuIG51bGw7Y2FzZSJrZXlwcmVzcyI6aWYoISh0LmN0cmxLZXl8fHQuYWx0S2V5fHx0Lm1ldGFLZXkpfHx0LmN0cmxLZXkmJnQuYWx0S2V5KXtpZih0LmNoYXImJjE8dC5jaGFyLmxlbmd0aClyZXR1cm4gdC5jaGFyO2lmKHQud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIGFyJiYia28iIT09dC5sb2NhbGU/bnVsbDp0LmRhdGF9fShlLG4pKT8oKHQ9dHIuZ2V0UG9vbGVkKHNyLmJlZm9yZUlucHV0LHQsbixyKSkuZGF0YT1lLEhuKHQpKTp0PW51bGwsbnVsbD09PW8/dDpudWxsPT09dD9vOltvLHRdfX0saHI9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIHlyKGUpe3ZhciB0PWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dD8hIWhyW2UudHlwZV06InRleHRhcmVhIj09PXR9dmFyIHZyPXtjaGFuZ2U6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOiJvbkNoYW5nZSIsY2FwdHVyZWQ6Im9uQ2hhbmdlQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczoiYmx1ciBjaGFuZ2UgY2xpY2sgZm9jdXMgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIil9fTtmdW5jdGlvbiBtcihlLHQsbil7cmV0dXJuKGU9S24uZ2V0UG9vbGVkKHZyLmNoYW5nZSxlLHQsbikpLnR5cGU9ImNoYW5nZSIsUihuKSxIbihlKSxlfXZhciBncj1udWxsLF9yPW51bGw7ZnVuY3Rpb24gYnIoZSl7c3QoZSl9ZnVuY3Rpb24gd3IoZSl7aWYod2UoSW4oZSkpKXJldHVybiBlfWZ1bmN0aW9uIHhyKGUsdCl7aWYoImNoYW5nZSI9PT1lKXJldHVybiB0fXZhciBrcj0hMTtmdW5jdGlvbiBTcigpe2dyJiYoZ3IuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEVyKSxfcj1ncj1udWxsKX1mdW5jdGlvbiBFcihlKXtpZigidmFsdWUiPT09ZS5wcm9wZXJ0eU5hbWUmJndyKF9yKSlpZihlPW1yKF9yLGUsY3QoZSkpLEwpc3QoZSk7ZWxzZXtMPSEwO3RyeXtOKGJyLGUpfWZpbmFsbHl7TD0hMSxVKCl9fX1mdW5jdGlvbiBUcihlLHQsbil7ImZvY3VzIj09PWU/KFNyKCksX3I9biwoZ3I9dCkuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEVyKSk6ImJsdXIiPT09ZSYmU3IoKX1mdW5jdGlvbiBDcihlKXtpZigic2VsZWN0aW9uY2hhbmdlIj09PWV8fCJrZXl1cCI9PT1lfHwia2V5ZG93biI9PT1lKXJldHVybiB3cihfcil9ZnVuY3Rpb24gT3IoZSx0KXtpZigiY2xpY2siPT09ZSlyZXR1cm4gd3IodCl9ZnVuY3Rpb24gUHIoZSx0KXtpZigiaW5wdXQiPT09ZXx8ImNoYW5nZSI9PT1lKXJldHVybiB3cih0KX1DJiYoa3I9bHQoImlucHV0IikmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSkpO3ZhciBBcj17ZXZlbnRUeXBlczp2cixfaXNJbnB1dEV2ZW50U3VwcG9ydGVkOmtyLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89dD9Jbih0KTp3aW5kb3csaT1vLm5vZGVOYW1lJiZvLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInNlbGVjdCI9PT1pfHwiaW5wdXQiPT09aSYmImZpbGUiPT09by50eXBlKXZhciBhPXhyO2Vsc2UgaWYoeXIobykpaWYoa3IpYT1QcjtlbHNle2E9Q3I7dmFyIHU9VHJ9ZWxzZShpPW8ubm9kZU5hbWUpJiYiaW5wdXQiPT09aS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PW8udHlwZXx8InJhZGlvIj09PW8udHlwZSkmJihhPU9yKTtpZihhJiYoYT1hKGUsdCkpKXJldHVybiBtcihhLG4scik7dSYmdShlLG8sdCksImJsdXIiPT09ZSYmKGU9by5fd3JhcHBlclN0YXRlKSYmZS5jb250cm9sbGVkJiYibnVtYmVyIj09PW8udHlwZSYmQ2UobywibnVtYmVyIixvLnZhbHVlKX19LGpyPUtuLmV4dGVuZCh7dmlldzpudWxsLGRldGFpbDpudWxsfSksUnI9e0FsdDoiYWx0S2V5IixDb250cm9sOiJjdHJsS2V5IixNZXRhOiJtZXRhS2V5IixTaGlmdDoic2hpZnRLZXkifTtmdW5jdGlvbiBNcihlKXt2YXIgdD10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiB0LmdldE1vZGlmaWVyU3RhdGU/dC5nZXRNb2RpZmllclN0YXRlKGUpOiEhKGU9UnJbZV0pJiYhIXRbZV19ZnVuY3Rpb24gTnIoKXtyZXR1cm4gTXJ9dmFyIElyPTAsRnI9MCxEcj0hMSxMcj0hMSx6cj1qci5leHRlbmQoe3NjcmVlblg6bnVsbCxzY3JlZW5ZOm51bGwsY2xpZW50WDpudWxsLGNsaWVudFk6bnVsbCxwYWdlWDpudWxsLHBhZ2VZOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLGdldE1vZGlmaWVyU3RhdGU6TnIsYnV0dG9uOm51bGwsYnV0dG9uczpudWxsLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVsYXRlZFRhcmdldHx8KGUuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudCl9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtpZigibW92ZW1lbnRYImluIGUpcmV0dXJuIGUubW92ZW1lbnRYO3ZhciB0PUlyO3JldHVybiBJcj1lLnNjcmVlblgsRHI/Im1vdXNlbW92ZSI9PT1lLnR5cGU/ZS5zY3JlZW5YLXQ6MDooRHI9ITAsMCl9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtpZigibW92ZW1lbnRZImluIGUpcmV0dXJuIGUubW92ZW1lbnRZO3ZhciB0PUZyO3JldHVybiBGcj1lLnNjcmVlblksTHI/Im1vdXNlbW92ZSI9PT1lLnR5cGU/ZS5zY3JlZW5ZLXQ6MDooTHI9ITAsMCl9fSksVXI9enIuZXh0ZW5kKHtwb2ludGVySWQ6bnVsbCx3aWR0aDpudWxsLGhlaWdodDpudWxsLHByZXNzdXJlOm51bGwsdGFuZ2VudGlhbFByZXNzdXJlOm51bGwsdGlsdFg6bnVsbCx0aWx0WTpudWxsLHR3aXN0Om51bGwscG9pbnRlclR5cGU6bnVsbCxpc1ByaW1hcnk6bnVsbH0pLEJyPXttb3VzZUVudGVyOntyZWdpc3RyYXRpb25OYW1lOiJvbk1vdXNlRW50ZXIiLGRlcGVuZGVuY2llczpbIm1vdXNlb3V0IiwibW91c2VvdmVyIl19LG1vdXNlTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6Im9uTW91c2VMZWF2ZSIsZGVwZW5kZW5jaWVzOlsibW91c2VvdXQiLCJtb3VzZW92ZXIiXX0scG9pbnRlckVudGVyOntyZWdpc3RyYXRpb25OYW1lOiJvblBvaW50ZXJFbnRlciIsZGVwZW5kZW5jaWVzOlsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl19LHBvaW50ZXJMZWF2ZTp7cmVnaXN0cmF0aW9uTmFtZToib25Qb2ludGVyTGVhdmUiLGRlcGVuZGVuY2llczpbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdfX0sV3I9e2V2ZW50VHlwZXM6QnIsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyLG8pe3ZhciBpPSJtb3VzZW92ZXIiPT09ZXx8InBvaW50ZXJvdmVyIj09PWUsYT0ibW91c2VvdXQiPT09ZXx8InBvaW50ZXJvdXQiPT09ZTtpZihpJiYwPT0oMzImbykmJihuLnJlbGF0ZWRUYXJnZXR8fG4uZnJvbUVsZW1lbnQpfHwhYSYmIWkpcmV0dXJuIG51bGw7KGk9ci53aW5kb3c9PT1yP3I6KGk9ci5vd25lckRvY3VtZW50KT9pLmRlZmF1bHRWaWV3fHxpLnBhcmVudFdpbmRvdzp3aW5kb3csYSk/KGE9dCxudWxsIT09KHQ9KHQ9bi5yZWxhdGVkVGFyZ2V0fHxuLnRvRWxlbWVudCk/TW4odCk6bnVsbCkmJih0IT09ZXQodCl8fDUhPT10LnRhZyYmNiE9PXQudGFnKSYmKHQ9bnVsbCkpOmE9bnVsbDtpZihhPT09dClyZXR1cm4gbnVsbDtpZigibW91c2VvdXQiPT09ZXx8Im1vdXNlb3ZlciI9PT1lKXZhciB1PXpyLHM9QnIubW91c2VMZWF2ZSxjPUJyLm1vdXNlRW50ZXIsbD0ibW91c2UiO2Vsc2UicG9pbnRlcm91dCIhPT1lJiYicG9pbnRlcm92ZXIiIT09ZXx8KHU9VXIscz1Cci5wb2ludGVyTGVhdmUsYz1Cci5wb2ludGVyRW50ZXIsbD0icG9pbnRlciIpO2lmKGU9bnVsbD09YT9pOkluKGEpLGk9bnVsbD09dD9pOkluKHQpLChzPXUuZ2V0UG9vbGVkKHMsYSxuLHIpKS50eXBlPWwrImxlYXZlIixzLnRhcmdldD1lLHMucmVsYXRlZFRhcmdldD1pLChuPXUuZ2V0UG9vbGVkKGMsdCxuLHIpKS50eXBlPWwrImVudGVyIixuLnRhcmdldD1pLG4ucmVsYXRlZFRhcmdldD1lLGw9dCwocj1hKSYmbCllOntmb3IoYz1sLGE9MCxlPXU9cjtlO2U9RG4oZSkpYSsrO2ZvcihlPTAsdD1jO3Q7dD1Ebih0KSllKys7Zm9yKDswPGEtZTspdT1Ebih1KSxhLS07Zm9yKDswPGUtYTspYz1EbihjKSxlLS07Zm9yKDthLS07KXtpZih1PT09Y3x8dT09PWMuYWx0ZXJuYXRlKWJyZWFrIGU7dT1Ebih1KSxjPURuKGMpfXU9bnVsbH1lbHNlIHU9bnVsbDtmb3IoYz11LHU9W107ciYmciE9PWMmJihudWxsPT09KGE9ci5hbHRlcm5hdGUpfHxhIT09Yyk7KXUucHVzaChyKSxyPURuKHIpO2ZvcihyPVtdO2wmJmwhPT1jJiYobnVsbD09PShhPWwuYWx0ZXJuYXRlKXx8YSE9PWMpOylyLnB1c2gobCksbD1EbihsKTtmb3IobD0wO2w8dS5sZW5ndGg7bCsrKUJuKHVbbF0sImJ1YmJsZWQiLHMpO2ZvcihsPXIubGVuZ3RoOzA8bC0tOylCbihyW2xdLCJjYXB0dXJlZCIsbik7cmV0dXJuIDA9PSg2NCZvKT9bc106W3Msbl19fTt2YXIgSHI9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT0xL3QpfHxlIT1lJiZ0IT10fSwkcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFZyKGUsdCl7aWYoSHIoZSx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIHR8fG51bGw9PT10KXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9T2JqZWN0LmtleXModCk7aWYobi5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKWlmKCEkci5jYWxsKHQsbltyXSl8fCFIcihlW25bcl1dLHRbbltyXV0pKXJldHVybiExO3JldHVybiEwfXZhciBxcj1DJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLEdyPXtzZWxlY3Q6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOiJvblNlbGVjdCIsY2FwdHVyZWQ6Im9uU2VsZWN0Q2FwdHVyZSJ9LGRlcGVuZGVuY2llczoiYmx1ciBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpfX0sUXI9bnVsbCxZcj1udWxsLEtyPW51bGwsWHI9ITE7ZnVuY3Rpb24gSnIoZSx0KXt2YXIgbj10LndpbmRvdz09PXQ/dC5kb2N1bWVudDo5PT09dC5ub2RlVHlwZT90OnQub3duZXJEb2N1bWVudDtyZXR1cm4gWHJ8fG51bGw9PVFyfHxRciE9PWZuKG4pP251bGw6KCJzZWxlY3Rpb25TdGFydCJpbihuPVFyKSYmdm4obik/bj17c3RhcnQ6bi5zZWxlY3Rpb25TdGFydCxlbmQ6bi5zZWxlY3Rpb25FbmR9Om49e2FuY2hvck5vZGU6KG49KG4ub3duZXJEb2N1bWVudCYmbi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpuLmFuY2hvck9mZnNldCxmb2N1c05vZGU6bi5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6bi5mb2N1c09mZnNldH0sS3ImJlZyKEtyLG4pP251bGw6KEtyPW4sKGU9S24uZ2V0UG9vbGVkKEdyLnNlbGVjdCxZcixlLHQpKS50eXBlPSJzZWxlY3QiLGUudGFyZ2V0PVFyLEhuKGUpLGUpKX12YXIgWnI9e2V2ZW50VHlwZXM6R3IsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixyLG8saSl7aWYoIShpPSEobz1pfHwoci53aW5kb3c9PT1yP3IuZG9jdW1lbnQ6OT09PXIubm9kZVR5cGU/cjpyLm93bmVyRG9jdW1lbnQpKSkpe2U6e289WmUobyksaT1FLm9uU2VsZWN0O2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKWlmKCFvLmhhcyhpW2FdKSl7bz0hMTticmVhayBlfW89ITB9aT0hb31pZihpKXJldHVybiBudWxsO3N3aXRjaChvPXQ/SW4odCk6d2luZG93LGUpe2Nhc2UiZm9jdXMiOih5cihvKXx8InRydWUiPT09by5jb250ZW50RWRpdGFibGUpJiYoUXI9byxZcj10LEtyPW51bGwpO2JyZWFrO2Nhc2UiYmx1ciI6S3I9WXI9UXI9bnVsbDticmVhaztjYXNlIm1vdXNlZG93biI6WHI9ITA7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJtb3VzZXVwIjpjYXNlImRyYWdlbmQiOnJldHVybiBYcj0hMSxKcihuLHIpO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihxcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOnJldHVybiBKcihuLHIpfXJldHVybiBudWxsfX0sZW89S24uZXh0ZW5kKHthbmltYXRpb25OYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSx0bz1Lbi5leHRlbmQoe2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksbm89anIuZXh0ZW5kKHtyZWxhdGVkVGFyZ2V0Om51bGx9KTtmdW5jdGlvbiBybyhlKXt2YXIgdD1lLmtleUNvZGU7cmV0dXJuImNoYXJDb2RlImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PXQmJihlPTEzKTplPXQsMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9dmFyIG9vPXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxpbz17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LGFvPWpyLmV4dGVuZCh7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgdD1vb1tlLmtleV18fGUua2V5O2lmKCJVbmlkZW50aWZpZWQiIT09dClyZXR1cm4gdH1yZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlPzEzPT09KGU9cm8oZSkpPyJFbnRlciI6U3RyaW5nLmZyb21DaGFyQ29kZShlKToia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/aW9bZS5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGxvY2F0aW9uOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLHJlcGVhdDpudWxsLGxvY2FsZTpudWxsLGdldE1vZGlmaWVyU3RhdGU6TnIsY2hhckNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT9ybyhlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT9ybyhlKToia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9fSksdW89enIuZXh0ZW5kKHtkYXRhVHJhbnNmZXI6bnVsbH0pLHNvPWpyLmV4dGVuZCh7dG91Y2hlczpudWxsLHRhcmdldFRvdWNoZXM6bnVsbCxjaGFuZ2VkVG91Y2hlczpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxjdHJsS2V5Om51bGwsc2hpZnRLZXk6bnVsbCxnZXRNb2RpZmllclN0YXRlOk5yfSksY289S24uZXh0ZW5kKHtwcm9wZXJ0eU5hbWU6bnVsbCxlbGFwc2VkVGltZTpudWxsLHBzZXVkb0VsZW1lbnQ6bnVsbH0pLGxvPXpyLmV4dGVuZCh7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVgiaW4gZT9lLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWSJpbiBlP2UuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBlPy1lLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6bnVsbCxkZWx0YU1vZGU6bnVsbH0pLGZvPXtldmVudFR5cGVzOkx0LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89enQuZ2V0KGUpO2lmKCFvKXJldHVybiBudWxsO3N3aXRjaChlKXtjYXNlImtleXByZXNzIjppZigwPT09cm8obikpcmV0dXJuIG51bGw7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjplPWFvO2JyZWFrO2Nhc2UiYmx1ciI6Y2FzZSJmb2N1cyI6ZT1ubzticmVhaztjYXNlImNsaWNrIjppZigyPT09bi5idXR0b24pcmV0dXJuIG51bGw7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjplPXpyO2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmU9dW87YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6ZT1zbzticmVhaztjYXNlIEdlOmNhc2UgUWU6Y2FzZSBZZTplPWVvO2JyZWFrO2Nhc2UgS2U6ZT1jbzticmVhaztjYXNlInNjcm9sbCI6ZT1qcjticmVhaztjYXNlIndoZWVsIjplPWxvO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOmU9dG87YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6ZT1VcjticmVhaztkZWZhdWx0OmU9S259cmV0dXJuIEhuKHQ9ZS5nZXRQb29sZWQobyx0LG4scikpLHR9fTtpZihnKXRocm93IEVycm9yKGEoMTAxKSk7Zz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCgiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLnNwbGl0KCIgIikpLGIoKSxoPUZuLHk9Tm4sdj1JbixUKHtTaW1wbGVFdmVudFBsdWdpbjpmbyxFbnRlckxlYXZlRXZlbnRQbHVnaW46V3IsQ2hhbmdlRXZlbnRQbHVnaW46QXIsU2VsZWN0RXZlbnRQbHVnaW46WnIsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpkcn0pO3ZhciBwbz1bXSxobz0tMTtmdW5jdGlvbiB5byhlKXswPmhvfHwoZS5jdXJyZW50PXBvW2hvXSxwb1tob109bnVsbCxoby0tKX1mdW5jdGlvbiB2byhlLHQpe2hvKysscG9baG9dPWUuY3VycmVudCxlLmN1cnJlbnQ9dH12YXIgbW89e30sZ289e2N1cnJlbnQ6bW99LF9vPXtjdXJyZW50OiExfSxibz1tbztmdW5jdGlvbiB3byhlLHQpe3ZhciBuPWUudHlwZS5jb250ZXh0VHlwZXM7aWYoIW4pcmV0dXJuIG1vO3ZhciByPWUuc3RhdGVOb2RlO2lmKHImJnIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PXQpcmV0dXJuIHIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIG8saT17fTtmb3IobyBpbiBuKWlbb109dFtvXTtyZXR1cm4gciYmKChlPWUuc3RhdGVOb2RlKS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PXQsZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1pKSxpfWZ1bmN0aW9uIHhvKGUpe3JldHVybiBudWxsIT0oZT1lLmNoaWxkQ29udGV4dFR5cGVzKX1mdW5jdGlvbiBrbygpe3lvKF9vKSx5byhnbyl9ZnVuY3Rpb24gU28oZSx0LG4pe2lmKGdvLmN1cnJlbnQhPT1tbyl0aHJvdyBFcnJvcihhKDE2OCkpO3ZvKGdvLHQpLHZvKF9vLG4pfWZ1bmN0aW9uIEVvKGUsdCxuKXt2YXIgcj1lLnN0YXRlTm9kZTtpZihlPXQuY2hpbGRDb250ZXh0VHlwZXMsImZ1bmN0aW9uIiE9dHlwZW9mIHIuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBuO2Zvcih2YXIgaSBpbiByPXIuZ2V0Q2hpbGRDb250ZXh0KCkpaWYoIShpIGluIGUpKXRocm93IEVycm9yKGEoMTA4LHZlKHQpfHwiVW5rbm93biIsaSkpO3JldHVybiBvKHt9LG4se30scil9ZnVuY3Rpb24gVG8oZSl7cmV0dXJuIGU9KGU9ZS5zdGF0ZU5vZGUpJiZlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxtbyxibz1nby5jdXJyZW50LHZvKGdvLGUpLHZvKF9vLF9vLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIENvKGUsdCxuKXt2YXIgcj1lLnN0YXRlTm9kZTtpZighcil0aHJvdyBFcnJvcihhKDE2OSkpO24/KGU9RW8oZSx0LGJvKSxyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWUseW8oX28pLHlvKGdvKSx2byhnbyxlKSk6eW8oX28pLHZvKF9vLG4pfXZhciBPbz1pLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSxQbz1pLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssQW89aS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxqbz1pLnVuc3RhYmxlX3JlcXVlc3RQYWludCxSbz1pLnVuc3RhYmxlX25vdyxNbz1pLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLE5vPWkudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksSW89aS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxGbz1pLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LERvPWkudW5zdGFibGVfTG93UHJpb3JpdHksTG89aS51bnN0YWJsZV9JZGxlUHJpb3JpdHksem89e30sVW89aS51bnN0YWJsZV9zaG91bGRZaWVsZCxCbz12b2lkIDAhPT1qbz9qbzpmdW5jdGlvbigpe30sV289bnVsbCxIbz1udWxsLCRvPSExLFZvPVJvKCkscW89MWU0PlZvP1JvOmZ1bmN0aW9uKCl7cmV0dXJuIFJvKCktVm99O2Z1bmN0aW9uIEdvKCl7c3dpdGNoKE1vKCkpe2Nhc2UgTm86cmV0dXJuIDk5O2Nhc2UgSW86cmV0dXJuIDk4O2Nhc2UgRm86cmV0dXJuIDk3O2Nhc2UgRG86cmV0dXJuIDk2O2Nhc2UgTG86cmV0dXJuIDk1O2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgzMzIpKX19ZnVuY3Rpb24gUW8oZSl7c3dpdGNoKGUpe2Nhc2UgOTk6cmV0dXJuIE5vO2Nhc2UgOTg6cmV0dXJuIElvO2Nhc2UgOTc6cmV0dXJuIEZvO2Nhc2UgOTY6cmV0dXJuIERvO2Nhc2UgOTU6cmV0dXJuIExvO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgzMzIpKX19ZnVuY3Rpb24gWW8oZSx0KXtyZXR1cm4gZT1RbyhlKSxPbyhlLHQpfWZ1bmN0aW9uIEtvKGUsdCxuKXtyZXR1cm4gZT1RbyhlKSxQbyhlLHQsbil9ZnVuY3Rpb24gWG8oZSl7cmV0dXJuIG51bGw9PT1Xbz8oV289W2VdLEhvPVBvKE5vLFpvKSk6V28ucHVzaChlKSx6b31mdW5jdGlvbiBKbygpe2lmKG51bGwhPT1Ibyl7dmFyIGU9SG87SG89bnVsbCxBbyhlKX1abygpfWZ1bmN0aW9uIFpvKCl7aWYoISRvJiZudWxsIT09V28peyRvPSEwO3ZhciBlPTA7dHJ5e3ZhciB0PVdvO1lvKDk5LChmdW5jdGlvbigpe2Zvcig7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRbZV07ZG97bj1uKCEwKX13aGlsZShudWxsIT09bil9fSkpLFdvPW51bGx9Y2F0Y2godCl7dGhyb3cgbnVsbCE9PVdvJiYoV289V28uc2xpY2UoZSsxKSksUG8oTm8sSm8pLHR9ZmluYWxseXskbz0hMX19fWZ1bmN0aW9uIGVpKGUsdCxuKXtyZXR1cm4gMTA3Mzc0MTgyMS0oMSsoKDEwNzM3NDE4MjEtZSt0LzEwKS8obi89MTApfDApKSpufWZ1bmN0aW9uIHRpKGUsdCl7aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBuIGluIHQ9byh7fSx0KSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PXRbbl0mJih0W25dPWVbbl0pO3JldHVybiB0fXZhciBuaT17Y3VycmVudDpudWxsfSxyaT1udWxsLG9pPW51bGwsaWk9bnVsbDtmdW5jdGlvbiBhaSgpe2lpPW9pPXJpPW51bGx9ZnVuY3Rpb24gdWkoZSl7dmFyIHQ9bmkuY3VycmVudDt5byhuaSksZS50eXBlLl9jb250ZXh0Ll9jdXJyZW50VmFsdWU9dH1mdW5jdGlvbiBzaShlLHQpe2Zvcig7bnVsbCE9PWU7KXt2YXIgbj1lLmFsdGVybmF0ZTtpZihlLmNoaWxkRXhwaXJhdGlvblRpbWU8dCllLmNoaWxkRXhwaXJhdGlvblRpbWU9dCxudWxsIT09biYmbi5jaGlsZEV4cGlyYXRpb25UaW1lPHQmJihuLmNoaWxkRXhwaXJhdGlvblRpbWU9dCk7ZWxzZXtpZighKG51bGwhPT1uJiZuLmNoaWxkRXhwaXJhdGlvblRpbWU8dCkpYnJlYWs7bi5jaGlsZEV4cGlyYXRpb25UaW1lPXR9ZT1lLnJldHVybn19ZnVuY3Rpb24gY2koZSx0KXtyaT1lLGlpPW9pPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmbnVsbCE9PWUuZmlyc3RDb250ZXh0JiYoZS5leHBpcmF0aW9uVGltZT49dCYmKEZhPSEwKSxlLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiBsaShlLHQpe2lmKGlpIT09ZSYmITEhPT10JiYwIT09dClpZigibnVtYmVyIj09dHlwZW9mIHQmJjEwNzM3NDE4MjMhPT10fHwoaWk9ZSx0PTEwNzM3NDE4MjMpLHQ9e2NvbnRleHQ6ZSxvYnNlcnZlZEJpdHM6dCxuZXh0Om51bGx9LG51bGw9PT1vaSl7aWYobnVsbD09PXJpKXRocm93IEVycm9yKGEoMzA4KSk7b2k9dCxyaS5kZXBlbmRlbmNpZXM9e2V4cGlyYXRpb25UaW1lOjAsZmlyc3RDb250ZXh0OnQscmVzcG9uZGVyczpudWxsfX1lbHNlIG9pPW9pLm5leHQ9dDtyZXR1cm4gZS5fY3VycmVudFZhbHVlfXZhciBmaT0hMTtmdW5jdGlvbiBwaShlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGJhc2VRdWV1ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsfSxlZmZlY3RzOm51bGx9fWZ1bmN0aW9uIGRpKGUsdCl7ZT1lLnVwZGF0ZVF1ZXVlLHQudXBkYXRlUXVldWU9PT1lJiYodC51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGJhc2VRdWV1ZTplLmJhc2VRdWV1ZSxzaGFyZWQ6ZS5zaGFyZWQsZWZmZWN0czplLmVmZmVjdHN9KX1mdW5jdGlvbiBoaShlLHQpe3JldHVybihlPXtleHBpcmF0aW9uVGltZTplLHN1c3BlbnNlQ29uZmlnOnQsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSkubmV4dD1lfWZ1bmN0aW9uIHlpKGUsdCl7aWYobnVsbCE9PShlPWUudXBkYXRlUXVldWUpKXt2YXIgbj0oZT1lLnNoYXJlZCkucGVuZGluZztudWxsPT09bj90Lm5leHQ9dDoodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCksZS5wZW5kaW5nPXR9fWZ1bmN0aW9uIHZpKGUsdCl7dmFyIG49ZS5hbHRlcm5hdGU7bnVsbCE9PW4mJmRpKG4sZSksbnVsbD09PShuPShlPWUudXBkYXRlUXVldWUpLmJhc2VRdWV1ZSk/KGUuYmFzZVF1ZXVlPXQubmV4dD10LHQubmV4dD10KToodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCl9ZnVuY3Rpb24gbWkoZSx0LG4scil7dmFyIGk9ZS51cGRhdGVRdWV1ZTtmaT0hMTt2YXIgYT1pLmJhc2VRdWV1ZSx1PWkuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PXUpe2lmKG51bGwhPT1hKXt2YXIgcz1hLm5leHQ7YS5uZXh0PXUubmV4dCx1Lm5leHQ9c31hPXUsaS5zaGFyZWQucGVuZGluZz1udWxsLG51bGwhPT0ocz1lLmFsdGVybmF0ZSkmJihudWxsIT09KHM9cy51cGRhdGVRdWV1ZSkmJihzLmJhc2VRdWV1ZT11KSl9aWYobnVsbCE9PWEpe3M9YS5uZXh0O3ZhciBjPWkuYmFzZVN0YXRlLGw9MCxmPW51bGwscD1udWxsLGQ9bnVsbDtpZihudWxsIT09cylmb3IodmFyIGg9czs7KXtpZigodT1oLmV4cGlyYXRpb25UaW1lKTxyKXt2YXIgeT17ZXhwaXJhdGlvblRpbWU6aC5leHBpcmF0aW9uVGltZSxzdXNwZW5zZUNvbmZpZzpoLnN1c3BlbnNlQ29uZmlnLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWQ/KHA9ZD15LGY9Yyk6ZD1kLm5leHQ9eSx1PmwmJihsPXUpfWVsc2V7bnVsbCE9PWQmJihkPWQubmV4dD17ZXhwaXJhdGlvblRpbWU6MTA3Mzc0MTgyMyxzdXNwZW5zZUNvbmZpZzpoLnN1c3BlbnNlQ29uZmlnLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0pLHhzKHUsaC5zdXNwZW5zZUNvbmZpZyk7ZTp7dmFyIHY9ZSxtPWg7c3dpdGNoKHU9dCx5PW4sbS50YWcpe2Nhc2UgMTppZigiZnVuY3Rpb24iPT10eXBlb2Yodj1tLnBheWxvYWQpKXtjPXYuY2FsbCh5LGMsdSk7YnJlYWsgZX1jPXY7YnJlYWsgZTtjYXNlIDM6di5lZmZlY3RUYWc9LTQwOTcmdi5lZmZlY3RUYWd8NjQ7Y2FzZSAwOmlmKG51bGw9PSh1PSJmdW5jdGlvbiI9PXR5cGVvZih2PW0ucGF5bG9hZCk/di5jYWxsKHksYyx1KTp2KSlicmVhayBlO2M9byh7fSxjLHUpO2JyZWFrIGU7Y2FzZSAyOmZpPSEwfX1udWxsIT09aC5jYWxsYmFjayYmKGUuZWZmZWN0VGFnfD0zMixudWxsPT09KHU9aS5lZmZlY3RzKT9pLmVmZmVjdHM9W2hdOnUucHVzaChoKSl9aWYobnVsbD09PShoPWgubmV4dCl8fGg9PT1zKXtpZihudWxsPT09KHU9aS5zaGFyZWQucGVuZGluZykpYnJlYWs7aD1hLm5leHQ9dS5uZXh0LHUubmV4dD1zLGkuYmFzZVF1ZXVlPWE9dSxpLnNoYXJlZC5wZW5kaW5nPW51bGx9fW51bGw9PT1kP2Y9YzpkLm5leHQ9cCxpLmJhc2VTdGF0ZT1mLGkuYmFzZVF1ZXVlPWQsa3MobCksZS5leHBpcmF0aW9uVGltZT1sLGUubWVtb2l6ZWRTdGF0ZT1jfX1mdW5jdGlvbiBnaShlLHQsbil7aWYoZT10LmVmZmVjdHMsdC5lZmZlY3RzPW51bGwsbnVsbCE9PWUpZm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XSxvPXIuY2FsbGJhY2s7aWYobnVsbCE9PW8pe2lmKHIuY2FsbGJhY2s9bnVsbCxyPW8sbz1uLCJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IEVycm9yKGEoMTkxLHIpKTtyLmNhbGwobyl9fX12YXIgX2k9Sy5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxiaT0obmV3IHIuQ29tcG9uZW50KS5yZWZzO2Z1bmN0aW9uIHdpKGUsdCxuLHIpe249bnVsbD09KG49bihyLHQ9ZS5tZW1vaXplZFN0YXRlKSk/dDpvKHt9LHQsbiksZS5tZW1vaXplZFN0YXRlPW4sMD09PWUuZXhwaXJhdGlvblRpbWUmJihlLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1uKX12YXIgeGk9e2lzTW91bnRlZDpmdW5jdGlvbihlKXtyZXR1cm4hIShlPWUuX3JlYWN0SW50ZXJuYWxGaWJlcikmJmV0KGUpPT09ZX0sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxGaWJlcjt2YXIgcj1jcygpLG89X2kuc3VzcGVuc2U7KG89aGkocj1scyhyLGUsbyksbykpLnBheWxvYWQ9dCxudWxsIT1uJiYoby5jYWxsYmFjaz1uKSx5aShlLG8pLGZzKGUscil9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSx0LG4pe2U9ZS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciByPWNzKCksbz1faS5zdXNwZW5zZTsobz1oaShyPWxzKHIsZSxvKSxvKSkudGFnPTEsby5wYXlsb2FkPXQsbnVsbCE9biYmKG8uY2FsbGJhY2s9bikseWkoZSxvKSxmcyhlLHIpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oZSx0KXtlPWUuX3JlYWN0SW50ZXJuYWxGaWJlcjt2YXIgbj1jcygpLHI9X2kuc3VzcGVuc2U7KHI9aGkobj1scyhuLGUscikscikpLnRhZz0yLG51bGwhPXQmJihyLmNhbGxiYWNrPXQpLHlpKGUsciksZnMoZSxuKX19O2Z1bmN0aW9uIGtpKGUsdCxuLHIsbyxpLGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixpLGEpOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwoIVZyKG4scil8fCFWcihvLGkpKX1mdW5jdGlvbiBTaShlLHQsbil7dmFyIHI9ITEsbz1tbyxpPXQuY29udGV4dFR5cGU7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT09aT9pPWxpKGkpOihvPXhvKHQpP2JvOmdvLmN1cnJlbnQsaT0ocj1udWxsIT0ocj10LmNvbnRleHRUeXBlcykpP3dvKGUsbyk6bW8pLHQ9bmV3IHQobixpKSxlLm1lbW9pemVkU3RhdGU9bnVsbCE9PXQuc3RhdGUmJnZvaWQgMCE9PXQuc3RhdGU/dC5zdGF0ZTpudWxsLHQudXBkYXRlcj14aSxlLnN0YXRlTm9kZT10LHQuX3JlYWN0SW50ZXJuYWxGaWJlcj1lLHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1vLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9aSksdH1mdW5jdGlvbiBFaShlLHQsbixyKXtlPXQuc3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mIHQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksImZ1bmN0aW9uIj09dHlwZW9mIHQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobixyKSx0LnN0YXRlIT09ZSYmeGkuZW5xdWV1ZVJlcGxhY2VTdGF0ZSh0LHQuc3RhdGUsbnVsbCl9ZnVuY3Rpb24gVGkoZSx0LG4scil7dmFyIG89ZS5zdGF0ZU5vZGU7by5wcm9wcz1uLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLG8ucmVmcz1iaSxwaShlKTt2YXIgaT10LmNvbnRleHRUeXBlOyJvYmplY3QiPT10eXBlb2YgaSYmbnVsbCE9PWk/by5jb250ZXh0PWxpKGkpOihpPXhvKHQpP2JvOmdvLmN1cnJlbnQsby5jb250ZXh0PXdvKGUsaSkpLG1pKGUsbixvLHIpLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZihpPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKSYmKHdpKGUsdCxpLG4pLG8uc3RhdGU9ZS5tZW1vaXplZFN0YXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHwiZnVuY3Rpb24iIT10eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiYiZnVuY3Rpb24iIT10eXBlb2Ygby5jb21wb25lbnRXaWxsTW91bnR8fCh0PW8uc3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mIG8uY29tcG9uZW50V2lsbE1vdW50JiZvLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJm8uVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLHQhPT1vLnN0YXRlJiZ4aS5lbnF1ZXVlUmVwbGFjZVN0YXRlKG8sby5zdGF0ZSxudWxsKSxtaShlLG4sbyxyKSxvLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihlLmVmZmVjdFRhZ3w9NCl9dmFyIENpPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gT2koZSx0LG4pe2lmKG51bGwhPT0oZT1uLnJlZikmJiJmdW5jdGlvbiIhPXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIGUpe2lmKG4uX293bmVyKXtpZihuPW4uX293bmVyKXtpZigxIT09bi50YWcpdGhyb3cgRXJyb3IoYSgzMDkpKTt2YXIgcj1uLnN0YXRlTm9kZX1pZighcil0aHJvdyBFcnJvcihhKDE0NyxlKSk7dmFyIG89IiIrZTtyZXR1cm4gbnVsbCE9PXQmJm51bGwhPT10LnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVmJiZ0LnJlZi5fc3RyaW5nUmVmPT09bz90LnJlZjoodD1mdW5jdGlvbihlKXt2YXIgdD1yLnJlZnM7dD09PWJpJiYodD1yLnJlZnM9e30pLG51bGw9PT1lP2RlbGV0ZSB0W29dOnRbb109ZX0sdC5fc3RyaW5nUmVmPW8sdCl9aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IEVycm9yKGEoMjg0KSk7aWYoIW4uX293bmVyKXRocm93IEVycm9yKGEoMjkwLGUpKX1yZXR1cm4gZX1mdW5jdGlvbiBQaShlLHQpe2lmKCJ0ZXh0YXJlYSIhPT1lLnR5cGUpdGhyb3cgRXJyb3IoYSgzMSwiW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyh0KS5qb2luKCIsICIpKyJ9Ijp0LCIiKSl9ZnVuY3Rpb24gQWkoZSl7ZnVuY3Rpb24gdCh0LG4pe2lmKGUpe3ZhciByPXQubGFzdEVmZmVjdDtudWxsIT09cj8oci5uZXh0RWZmZWN0PW4sdC5sYXN0RWZmZWN0PW4pOnQuZmlyc3RFZmZlY3Q9dC5sYXN0RWZmZWN0PW4sbi5uZXh0RWZmZWN0PW51bGwsbi5lZmZlY3RUYWc9OH19ZnVuY3Rpb24gbihuLHIpe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PXI7KXQobixyKSxyPXIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGUsdCl7Zm9yKGU9bmV3IE1hcDtudWxsIT09dDspbnVsbCE9PXQua2V5P2Uuc2V0KHQua2V5LHQpOmUuc2V0KHQuaW5kZXgsdCksdD10LnNpYmxpbmc7cmV0dXJuIGV9ZnVuY3Rpb24gbyhlLHQpe3JldHVybihlPUhzKGUsdCkpLmluZGV4PTAsZS5zaWJsaW5nPW51bGwsZX1mdW5jdGlvbiBpKHQsbixyKXtyZXR1cm4gdC5pbmRleD1yLGU/bnVsbCE9PShyPXQuYWx0ZXJuYXRlKT8ocj1yLmluZGV4KTxuPyh0LmVmZmVjdFRhZz0yLG4pOnI6KHQuZWZmZWN0VGFnPTIsbik6bn1mdW5jdGlvbiB1KHQpe3JldHVybiBlJiZudWxsPT09dC5hbHRlcm5hdGUmJih0LmVmZmVjdFRhZz0yKSx0fWZ1bmN0aW9uIHMoZSx0LG4scil7cmV0dXJuIG51bGw9PT10fHw2IT09dC50YWc/KCh0PXFzKG4sZS5tb2RlLHIpKS5yZXR1cm49ZSx0KTooKHQ9byh0LG4pKS5yZXR1cm49ZSx0KX1mdW5jdGlvbiBjKGUsdCxuLHIpe3JldHVybiBudWxsIT09dCYmdC5lbGVtZW50VHlwZT09PW4udHlwZT8oKHI9byh0LG4ucHJvcHMpKS5yZWY9T2koZSx0LG4pLHIucmV0dXJuPWUscik6KChyPSRzKG4udHlwZSxuLmtleSxuLnByb3BzLG51bGwsZS5tb2RlLHIpKS5yZWY9T2koZSx0LG4pLHIucmV0dXJuPWUscil9ZnVuY3Rpb24gbChlLHQsbixyKXtyZXR1cm4gbnVsbD09PXR8fDQhPT10LnRhZ3x8dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PW4uY29udGFpbmVySW5mb3x8dC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1uLmltcGxlbWVudGF0aW9uPygodD1HcyhuLGUubW9kZSxyKSkucmV0dXJuPWUsdCk6KCh0PW8odCxuLmNoaWxkcmVufHxbXSkpLnJldHVybj1lLHQpfWZ1bmN0aW9uIGYoZSx0LG4scixpKXtyZXR1cm4gbnVsbD09PXR8fDchPT10LnRhZz8oKHQ9VnMobixlLm1vZGUscixpKSkucmV0dXJuPWUsdCk6KCh0PW8odCxuKSkucmV0dXJuPWUsdCl9ZnVuY3Rpb24gcChlLHQsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuKHQ9cXMoIiIrdCxlLm1vZGUsbikpLnJldHVybj1lLHQ7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgZWU6cmV0dXJuKG49JHModC50eXBlLHQua2V5LHQucHJvcHMsbnVsbCxlLm1vZGUsbikpLnJlZj1PaShlLG51bGwsdCksbi5yZXR1cm49ZSxuO2Nhc2UgdGU6cmV0dXJuKHQ9R3ModCxlLm1vZGUsbikpLnJldHVybj1lLHR9aWYoQ2kodCl8fHllKHQpKXJldHVybih0PVZzKHQsZS5tb2RlLG4sbnVsbCkpLnJldHVybj1lLHQ7UGkoZSx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGUsdCxuLHIpe3ZhciBvPW51bGwhPT10P3Qua2V5Om51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBufHwibnVtYmVyIj09dHlwZW9mIG4pcmV0dXJuIG51bGwhPT1vP251bGw6cyhlLHQsIiIrbixyKTtpZigib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uKXtzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBlZTpyZXR1cm4gbi5rZXk9PT1vP24udHlwZT09PW5lP2YoZSx0LG4ucHJvcHMuY2hpbGRyZW4scixvKTpjKGUsdCxuLHIpOm51bGw7Y2FzZSB0ZTpyZXR1cm4gbi5rZXk9PT1vP2woZSx0LG4scik6bnVsbH1pZihDaShuKXx8eWUobikpcmV0dXJuIG51bGwhPT1vP251bGw6ZihlLHQsbixyLG51bGwpO1BpKGUsbil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaChlLHQsbixyLG8pe2lmKCJzdHJpbmciPT10eXBlb2Ygcnx8Im51bWJlciI9PXR5cGVvZiByKXJldHVybiBzKHQsZT1lLmdldChuKXx8bnVsbCwiIityLG8pO2lmKCJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIGVlOnJldHVybiBlPWUuZ2V0KG51bGw9PT1yLmtleT9uOnIua2V5KXx8bnVsbCxyLnR5cGU9PT1uZT9mKHQsZSxyLnByb3BzLmNoaWxkcmVuLG8sci5rZXkpOmModCxlLHIsbyk7Y2FzZSB0ZTpyZXR1cm4gbCh0LGU9ZS5nZXQobnVsbD09PXIua2V5P246ci5rZXkpfHxudWxsLHIsbyl9aWYoQ2kocil8fHllKHIpKXJldHVybiBmKHQsZT1lLmdldChuKXx8bnVsbCxyLG8sbnVsbCk7UGkodCxyKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5KG8sYSx1LHMpe2Zvcih2YXIgYz1udWxsLGw9bnVsbCxmPWEseT1hPTAsdj1udWxsO251bGwhPT1mJiZ5PHUubGVuZ3RoO3krKyl7Zi5pbmRleD55Pyh2PWYsZj1udWxsKTp2PWYuc2libGluZzt2YXIgbT1kKG8sZix1W3ldLHMpO2lmKG51bGw9PT1tKXtudWxsPT09ZiYmKGY9dik7YnJlYWt9ZSYmZiYmbnVsbD09PW0uYWx0ZXJuYXRlJiZ0KG8sZiksYT1pKG0sYSx5KSxudWxsPT09bD9jPW06bC5zaWJsaW5nPW0sbD1tLGY9dn1pZih5PT09dS5sZW5ndGgpcmV0dXJuIG4obyxmKSxjO2lmKG51bGw9PT1mKXtmb3IoO3k8dS5sZW5ndGg7eSsrKW51bGwhPT0oZj1wKG8sdVt5XSxzKSkmJihhPWkoZixhLHkpLG51bGw9PT1sP2M9ZjpsLnNpYmxpbmc9ZixsPWYpO3JldHVybiBjfWZvcihmPXIobyxmKTt5PHUubGVuZ3RoO3krKyludWxsIT09KHY9aChmLG8seSx1W3ldLHMpKSYmKGUmJm51bGwhPT12LmFsdGVybmF0ZSYmZi5kZWxldGUobnVsbD09PXYua2V5P3k6di5rZXkpLGE9aSh2LGEseSksbnVsbD09PWw/Yz12Omwuc2libGluZz12LGw9dik7cmV0dXJuIGUmJmYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQobyxlKX0pKSxjfWZ1bmN0aW9uIHYobyx1LHMsYyl7dmFyIGw9eWUocyk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgRXJyb3IoYSgxNTApKTtpZihudWxsPT0ocz1sLmNhbGwocykpKXRocm93IEVycm9yKGEoMTUxKSk7Zm9yKHZhciBmPWw9bnVsbCx5PXUsdj11PTAsbT1udWxsLGc9cy5uZXh0KCk7bnVsbCE9PXkmJiFnLmRvbmU7disrLGc9cy5uZXh0KCkpe3kuaW5kZXg+dj8obT15LHk9bnVsbCk6bT15LnNpYmxpbmc7dmFyIF89ZChvLHksZy52YWx1ZSxjKTtpZihudWxsPT09Xyl7bnVsbD09PXkmJih5PW0pO2JyZWFrfWUmJnkmJm51bGw9PT1fLmFsdGVybmF0ZSYmdChvLHkpLHU9aShfLHUsdiksbnVsbD09PWY/bD1fOmYuc2libGluZz1fLGY9Xyx5PW19aWYoZy5kb25lKXJldHVybiBuKG8seSksbDtpZihudWxsPT09eSl7Zm9yKDshZy5kb25lO3YrKyxnPXMubmV4dCgpKW51bGwhPT0oZz1wKG8sZy52YWx1ZSxjKSkmJih1PWkoZyx1LHYpLG51bGw9PT1mP2w9ZzpmLnNpYmxpbmc9ZyxmPWcpO3JldHVybiBsfWZvcih5PXIobyx5KTshZy5kb25lO3YrKyxnPXMubmV4dCgpKW51bGwhPT0oZz1oKHksbyx2LGcudmFsdWUsYykpJiYoZSYmbnVsbCE9PWcuYWx0ZXJuYXRlJiZ5LmRlbGV0ZShudWxsPT09Zy5rZXk/djpnLmtleSksdT1pKGcsdSx2KSxudWxsPT09Zj9sPWc6Zi5zaWJsaW5nPWcsZj1nKTtyZXR1cm4gZSYmeS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChvLGUpfSkpLGx9cmV0dXJuIGZ1bmN0aW9uKGUscixpLHMpe3ZhciBjPSJvYmplY3QiPT10eXBlb2YgaSYmbnVsbCE9PWkmJmkudHlwZT09PW5lJiZudWxsPT09aS5rZXk7YyYmKGk9aS5wcm9wcy5jaGlsZHJlbik7dmFyIGw9Im9iamVjdCI9PXR5cGVvZiBpJiZudWxsIT09aTtpZihsKXN3aXRjaChpLiQkdHlwZW9mKXtjYXNlIGVlOmU6e2ZvcihsPWkua2V5LGM9cjtudWxsIT09Yzspe2lmKGMua2V5PT09bCl7aWYoNz09PWMudGFnKXtpZihpLnR5cGU9PT1uZSl7bihlLGMuc2libGluZyksKHI9byhjLGkucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm49ZSxlPXI7YnJlYWsgZX19ZWxzZSBpZihjLmVsZW1lbnRUeXBlPT09aS50eXBlKXtuKGUsYy5zaWJsaW5nKSwocj1vKGMsaS5wcm9wcykpLnJlZj1PaShlLGMsaSksci5yZXR1cm49ZSxlPXI7YnJlYWsgZX1uKGUsYyk7YnJlYWt9dChlLGMpLGM9Yy5zaWJsaW5nfWkudHlwZT09PW5lPygocj1WcyhpLnByb3BzLmNoaWxkcmVuLGUubW9kZSxzLGkua2V5KSkucmV0dXJuPWUsZT1yKTooKHM9JHMoaS50eXBlLGkua2V5LGkucHJvcHMsbnVsbCxlLm1vZGUscykpLnJlZj1PaShlLHIsaSkscy5yZXR1cm49ZSxlPXMpfXJldHVybiB1KGUpO2Nhc2UgdGU6ZTp7Zm9yKGM9aS5rZXk7bnVsbCE9PXI7KXtpZihyLmtleT09PWMpe2lmKDQ9PT1yLnRhZyYmci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWkuY29udGFpbmVySW5mbyYmci5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1pLmltcGxlbWVudGF0aW9uKXtuKGUsci5zaWJsaW5nKSwocj1vKHIsaS5jaGlsZHJlbnx8W10pKS5yZXR1cm49ZSxlPXI7YnJlYWsgZX1uKGUscik7YnJlYWt9dChlLHIpLHI9ci5zaWJsaW5nfShyPUdzKGksZS5tb2RlLHMpKS5yZXR1cm49ZSxlPXJ9cmV0dXJuIHUoZSl9aWYoInN0cmluZyI9PXR5cGVvZiBpfHwibnVtYmVyIj09dHlwZW9mIGkpcmV0dXJuIGk9IiIraSxudWxsIT09ciYmNj09PXIudGFnPyhuKGUsci5zaWJsaW5nKSwocj1vKHIsaSkpLnJldHVybj1lLGU9cik6KG4oZSxyKSwocj1xcyhpLGUubW9kZSxzKSkucmV0dXJuPWUsZT1yKSx1KGUpO2lmKENpKGkpKXJldHVybiB5KGUscixpLHMpO2lmKHllKGkpKXJldHVybiB2KGUscixpLHMpO2lmKGwmJlBpKGUsaSksdm9pZCAwPT09aSYmIWMpc3dpdGNoKGUudGFnKXtjYXNlIDE6Y2FzZSAwOnRocm93IGU9ZS50eXBlLEVycm9yKGEoMTUyLGUuZGlzcGxheU5hbWV8fGUubmFtZXx8IkNvbXBvbmVudCIpKX1yZXR1cm4gbihlLHIpfX12YXIgamk9QWkoITApLFJpPUFpKCExKSxNaT17fSxOaT17Y3VycmVudDpNaX0sSWk9e2N1cnJlbnQ6TWl9LEZpPXtjdXJyZW50Ok1pfTtmdW5jdGlvbiBEaShlKXtpZihlPT09TWkpdGhyb3cgRXJyb3IoYSgxNzQpKTtyZXR1cm4gZX1mdW5jdGlvbiBMaShlLHQpe3N3aXRjaCh2byhGaSx0KSx2byhJaSxlKSx2byhOaSxNaSksZT10Lm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTp0PSh0PXQuZG9jdW1lbnRFbGVtZW50KT90Lm5hbWVzcGFjZVVSSTpEZShudWxsLCIiKTticmVhaztkZWZhdWx0OnQ9RGUodD0oZT04PT09ZT90LnBhcmVudE5vZGU6dCkubmFtZXNwYWNlVVJJfHxudWxsLGU9ZS50YWdOYW1lKX15byhOaSksdm8oTmksdCl9ZnVuY3Rpb24gemkoKXt5byhOaSkseW8oSWkpLHlvKEZpKX1mdW5jdGlvbiBVaShlKXtEaShGaS5jdXJyZW50KTt2YXIgdD1EaShOaS5jdXJyZW50KSxuPURlKHQsZS50eXBlKTt0IT09biYmKHZvKElpLGUpLHZvKE5pLG4pKX1mdW5jdGlvbiBCaShlKXtJaS5jdXJyZW50PT09ZSYmKHlvKE5pKSx5byhJaSkpfXZhciBXaT17Y3VycmVudDowfTtmdW5jdGlvbiBIaShlKXtmb3IodmFyIHQ9ZTtudWxsIT09dDspe2lmKDEzPT09dC50YWcpe3ZhciBuPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09biYmKG51bGw9PT0obj1uLmRlaHlkcmF0ZWQpfHxuLmRhdGE9PT1fbnx8bi5kYXRhPT09Ym4pKXJldHVybiB0fWVsc2UgaWYoMTk9PT10LnRhZyYmdm9pZCAwIT09dC5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigwIT0oNjQmdC5lZmZlY3RUYWcpKXJldHVybiB0fWVsc2UgaWYobnVsbCE9PXQuY2hpbGQpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1lKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ31yZXR1cm4gbnVsbH1mdW5jdGlvbiAkaShlLHQpe3JldHVybntyZXNwb25kZXI6ZSxwcm9wczp0fX12YXIgVmk9Sy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHFpPUsuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsR2k9MCxRaT1udWxsLFlpPW51bGwsS2k9bnVsbCxYaT0hMTtmdW5jdGlvbiBKaSgpe3Rocm93IEVycm9yKGEoMzIxKSl9ZnVuY3Rpb24gWmkoZSx0KXtpZihudWxsPT09dClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoJiZuPGUubGVuZ3RoO24rKylpZighSHIoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBlYShlLHQsbixyLG8saSl7aWYoR2k9aSxRaT10LHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmV4cGlyYXRpb25UaW1lPTAsVmkuY3VycmVudD1udWxsPT09ZXx8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZT9rYTpTYSxlPW4ocixvKSx0LmV4cGlyYXRpb25UaW1lPT09R2kpe2k9MDtkb3tpZih0LmV4cGlyYXRpb25UaW1lPTAsISgyNT5pKSl0aHJvdyBFcnJvcihhKDMwMSkpO2krPTEsS2k9WWk9bnVsbCx0LnVwZGF0ZVF1ZXVlPW51bGwsVmkuY3VycmVudD1FYSxlPW4ocixvKX13aGlsZSh0LmV4cGlyYXRpb25UaW1lPT09R2kpfWlmKFZpLmN1cnJlbnQ9eGEsdD1udWxsIT09WWkmJm51bGwhPT1ZaS5uZXh0LEdpPTAsS2k9WWk9UWk9bnVsbCxYaT0hMSx0KXRocm93IEVycm9yKGEoMzAwKSk7cmV0dXJuIGV9ZnVuY3Rpb24gdGEoKXt2YXIgZT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gbnVsbD09PUtpP1FpLm1lbW9pemVkU3RhdGU9S2k9ZTpLaT1LaS5uZXh0PWUsS2l9ZnVuY3Rpb24gbmEoKXtpZihudWxsPT09WWkpe3ZhciBlPVFpLmFsdGVybmF0ZTtlPW51bGwhPT1lP2UubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgZT1ZaS5uZXh0O3ZhciB0PW51bGw9PT1LaT9RaS5tZW1vaXplZFN0YXRlOktpLm5leHQ7aWYobnVsbCE9PXQpS2k9dCxZaT1lO2Vsc2V7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzMTApKTtlPXttZW1vaXplZFN0YXRlOihZaT1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpZaS5iYXNlU3RhdGUsYmFzZVF1ZXVlOllpLmJhc2VRdWV1ZSxxdWV1ZTpZaS5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1LaT9RaS5tZW1vaXplZFN0YXRlPUtpPWU6S2k9S2kubmV4dD1lfXJldHVybiBLaX1mdW5jdGlvbiByYShlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoZSk6dH1mdW5jdGlvbiBvYShlKXt2YXIgdD1uYSgpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihhKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByPVlpLG89ci5iYXNlUXVldWUsaT1uLnBlbmRpbmc7aWYobnVsbCE9PWkpe2lmKG51bGwhPT1vKXt2YXIgdT1vLm5leHQ7by5uZXh0PWkubmV4dCxpLm5leHQ9dX1yLmJhc2VRdWV1ZT1vPWksbi5wZW5kaW5nPW51bGx9aWYobnVsbCE9PW8pe289by5uZXh0LHI9ci5iYXNlU3RhdGU7dmFyIHM9dT1pPW51bGwsYz1vO2Rve3ZhciBsPWMuZXhwaXJhdGlvblRpbWU7aWYobDxHaSl7dmFyIGY9e2V4cGlyYXRpb25UaW1lOmMuZXhwaXJhdGlvblRpbWUsc3VzcGVuc2VDb25maWc6Yy5zdXNwZW5zZUNvbmZpZyxhY3Rpb246Yy5hY3Rpb24sZWFnZXJSZWR1Y2VyOmMuZWFnZXJSZWR1Y2VyLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH07bnVsbD09PXM/KHU9cz1mLGk9cik6cz1zLm5leHQ9ZixsPlFpLmV4cGlyYXRpb25UaW1lJiYoUWkuZXhwaXJhdGlvblRpbWU9bCxrcyhsKSl9ZWxzZSBudWxsIT09cyYmKHM9cy5uZXh0PXtleHBpcmF0aW9uVGltZToxMDczNzQxODIzLHN1c3BlbnNlQ29uZmlnOmMuc3VzcGVuc2VDb25maWcsYWN0aW9uOmMuYWN0aW9uLGVhZ2VyUmVkdWNlcjpjLmVhZ2VyUmVkdWNlcixlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSx4cyhsLGMuc3VzcGVuc2VDb25maWcpLHI9Yy5lYWdlclJlZHVjZXI9PT1lP2MuZWFnZXJTdGF0ZTplKHIsYy5hY3Rpb24pO2M9Yy5uZXh0fXdoaWxlKG51bGwhPT1jJiZjIT09byk7bnVsbD09PXM/aT1yOnMubmV4dD11LEhyKHIsdC5tZW1vaXplZFN0YXRlKXx8KEZhPSEwKSx0Lm1lbW9pemVkU3RhdGU9cix0LmJhc2VTdGF0ZT1pLHQuYmFzZVF1ZXVlPXMsbi5sYXN0UmVuZGVyZWRTdGF0ZT1yfXJldHVyblt0Lm1lbW9pemVkU3RhdGUsbi5kaXNwYXRjaF19ZnVuY3Rpb24gaWEoZSl7dmFyIHQ9bmEoKSxuPXQucXVldWU7aWYobnVsbD09PW4pdGhyb3cgRXJyb3IoYSgzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj1uLmRpc3BhdGNoLG89bi5wZW5kaW5nLGk9dC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1vKXtuLnBlbmRpbmc9bnVsbDt2YXIgdT1vPW8ubmV4dDtkb3tpPWUoaSx1LmFjdGlvbiksdT11Lm5leHR9d2hpbGUodSE9PW8pO0hyKGksdC5tZW1vaXplZFN0YXRlKXx8KEZhPSEwKSx0Lm1lbW9pemVkU3RhdGU9aSxudWxsPT09dC5iYXNlUXVldWUmJih0LmJhc2VTdGF0ZT1pKSxuLmxhc3RSZW5kZXJlZFN0YXRlPWl9cmV0dXJuW2kscl19ZnVuY3Rpb24gYWEoZSl7dmFyIHQ9dGEoKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZSgpKSx0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZSxlPShlPXQucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6cmEsbGFzdFJlbmRlcmVkU3RhdGU6ZX0pLmRpc3BhdGNoPXdhLmJpbmQobnVsbCxRaSxlKSxbdC5tZW1vaXplZFN0YXRlLGVdfWZ1bmN0aW9uIHVhKGUsdCxuLHIpe3JldHVybiBlPXt0YWc6ZSxjcmVhdGU6dCxkZXN0cm95Om4sZGVwczpyLG5leHQ6bnVsbH0sbnVsbD09PSh0PVFpLnVwZGF0ZVF1ZXVlKT8odD17bGFzdEVmZmVjdDpudWxsfSxRaS51cGRhdGVRdWV1ZT10LHQubGFzdEVmZmVjdD1lLm5leHQ9ZSk6bnVsbD09PShuPXQubGFzdEVmZmVjdCk/dC5sYXN0RWZmZWN0PWUubmV4dD1lOihyPW4ubmV4dCxuLm5leHQ9ZSxlLm5leHQ9cix0Lmxhc3RFZmZlY3Q9ZSksZX1mdW5jdGlvbiBzYSgpe3JldHVybiBuYSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gY2EoZSx0LG4scil7dmFyIG89dGEoKTtRaS5lZmZlY3RUYWd8PWUsby5tZW1vaXplZFN0YXRlPXVhKDF8dCxuLHZvaWQgMCx2b2lkIDA9PT1yP251bGw6cil9ZnVuY3Rpb24gbGEoZSx0LG4scil7dmFyIG89bmEoKTtyPXZvaWQgMD09PXI/bnVsbDpyO3ZhciBpPXZvaWQgMDtpZihudWxsIT09WWkpe3ZhciBhPVlpLm1lbW9pemVkU3RhdGU7aWYoaT1hLmRlc3Ryb3ksbnVsbCE9PXImJlppKHIsYS5kZXBzKSlyZXR1cm4gdm9pZCB1YSh0LG4saSxyKX1RaS5lZmZlY3RUYWd8PWUsby5tZW1vaXplZFN0YXRlPXVhKDF8dCxuLGkscil9ZnVuY3Rpb24gZmEoZSx0KXtyZXR1cm4gY2EoNTE2LDQsZSx0KX1mdW5jdGlvbiBwYShlLHQpe3JldHVybiBsYSg1MTYsNCxlLHQpfWZ1bmN0aW9uIGRhKGUsdCl7cmV0dXJuIGxhKDQsMixlLHQpfWZ1bmN0aW9uIGhhKGUsdCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGU9ZSgpLHQoZSksZnVuY3Rpb24oKXt0KG51bGwpfSk6bnVsbCE9dD8oZT1lKCksdC5jdXJyZW50PWUsZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH1mdW5jdGlvbiB5YShlLHQsbil7cmV0dXJuIG49bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsbGEoNCwyLGhhLmJpbmQobnVsbCx0LGUpLG4pfWZ1bmN0aW9uIHZhKCl7fWZ1bmN0aW9uIG1hKGUsdCl7cmV0dXJuIHRhKCkubWVtb2l6ZWRTdGF0ZT1bZSx2b2lkIDA9PT10P251bGw6dF0sZX1mdW5jdGlvbiBnYShlLHQpe3ZhciBuPW5hKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT1yJiZudWxsIT09dCYmWmkodCxyWzFdKT9yWzBdOihuLm1lbW9pemVkU3RhdGU9W2UsdF0sZSl9ZnVuY3Rpb24gX2EoZSx0KXt2YXIgbj1uYSgpO3Q9dm9pZCAwPT09dD9udWxsOnQ7dmFyIHI9bi5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09ciYmbnVsbCE9PXQmJlppKHQsclsxXSk/clswXTooZT1lKCksbi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIGJhKGUsdCxuKXt2YXIgcj1HbygpO1lvKDk4PnI/OTg6ciwoZnVuY3Rpb24oKXtlKCEwKX0pKSxZbyg5NzxyPzk3OnIsKGZ1bmN0aW9uKCl7dmFyIHI9cWkuc3VzcGVuc2U7cWkuc3VzcGVuc2U9dm9pZCAwPT09dD9udWxsOnQ7dHJ5e2UoITEpLG4oKX1maW5hbGx5e3FpLnN1c3BlbnNlPXJ9fSkpfWZ1bmN0aW9uIHdhKGUsdCxuKXt2YXIgcj1jcygpLG89X2kuc3VzcGVuc2U7bz17ZXhwaXJhdGlvblRpbWU6cj1scyhyLGUsbyksc3VzcGVuc2VDb25maWc6byxhY3Rpb246bixlYWdlclJlZHVjZXI6bnVsbCxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTt2YXIgaT10LnBlbmRpbmc7aWYobnVsbD09PWk/by5uZXh0PW86KG8ubmV4dD1pLm5leHQsaS5uZXh0PW8pLHQucGVuZGluZz1vLGk9ZS5hbHRlcm5hdGUsZT09PVFpfHxudWxsIT09aSYmaT09PVFpKVhpPSEwLG8uZXhwaXJhdGlvblRpbWU9R2ksUWkuZXhwaXJhdGlvblRpbWU9R2k7ZWxzZXtpZigwPT09ZS5leHBpcmF0aW9uVGltZSYmKG51bGw9PT1pfHwwPT09aS5leHBpcmF0aW9uVGltZSkmJm51bGwhPT0oaT10Lmxhc3RSZW5kZXJlZFJlZHVjZXIpKXRyeXt2YXIgYT10Lmxhc3RSZW5kZXJlZFN0YXRlLHU9aShhLG4pO2lmKG8uZWFnZXJSZWR1Y2VyPWksby5lYWdlclN0YXRlPXUsSHIodSxhKSlyZXR1cm59Y2F0Y2goZSl7fWZzKGUscil9fXZhciB4YT17cmVhZENvbnRleHQ6bGksdXNlQ2FsbGJhY2s6SmksdXNlQ29udGV4dDpKaSx1c2VFZmZlY3Q6SmksdXNlSW1wZXJhdGl2ZUhhbmRsZTpKaSx1c2VMYXlvdXRFZmZlY3Q6SmksdXNlTWVtbzpKaSx1c2VSZWR1Y2VyOkppLHVzZVJlZjpKaSx1c2VTdGF0ZTpKaSx1c2VEZWJ1Z1ZhbHVlOkppLHVzZVJlc3BvbmRlcjpKaSx1c2VEZWZlcnJlZFZhbHVlOkppLHVzZVRyYW5zaXRpb246Sml9LGthPXtyZWFkQ29udGV4dDpsaSx1c2VDYWxsYmFjazptYSx1c2VDb250ZXh0OmxpLHVzZUVmZmVjdDpmYSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj1udWxsIT1uP24uY29uY2F0KFtlXSk6bnVsbCxjYSg0LDIsaGEuYmluZChudWxsLHQsZSksbil9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihlLHQpe3JldHVybiBjYSg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBuPXRhKCk7cmV0dXJuIHQ9dm9pZCAwPT09dD9udWxsOnQsZT1lKCksbi5tZW1vaXplZFN0YXRlPVtlLHRdLGV9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRhKCk7cmV0dXJuIHQ9dm9pZCAwIT09bj9uKHQpOnQsci5tZW1vaXplZFN0YXRlPXIuYmFzZVN0YXRlPXQsZT0oZT1yLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmUsbGFzdFJlbmRlcmVkU3RhdGU6dH0pLmRpc3BhdGNoPXdhLmJpbmQobnVsbCxRaSxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0sdGEoKS5tZW1vaXplZFN0YXRlPWV9LHVzZVN0YXRlOmFhLHVzZURlYnVnVmFsdWU6dmEsdXNlUmVzcG9uZGVyOiRpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1hYShlKSxyPW5bMF0sbz1uWzFdO3JldHVybiBmYSgoZnVuY3Rpb24oKXt2YXIgbj1xaS5zdXNwZW5zZTtxaS5zdXNwZW5zZT12b2lkIDA9PT10P251bGw6dDt0cnl7byhlKX1maW5hbGx5e3FpLnN1c3BlbnNlPW59fSksW2UsdF0pLHJ9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oZSl7dmFyIHQ9YWEoITEpLG49dFswXTtyZXR1cm4gdD10WzFdLFttYShiYS5iaW5kKG51bGwsdCxlKSxbdCxlXSksbl19fSxTYT17cmVhZENvbnRleHQ6bGksdXNlQ2FsbGJhY2s6Z2EsdXNlQ29udGV4dDpsaSx1c2VFZmZlY3Q6cGEsdXNlSW1wZXJhdGl2ZUhhbmRsZTp5YSx1c2VMYXlvdXRFZmZlY3Q6ZGEsdXNlTWVtbzpfYSx1c2VSZWR1Y2VyOm9hLHVzZVJlZjpzYSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBvYShyYSl9LHVzZURlYnVnVmFsdWU6dmEsdXNlUmVzcG9uZGVyOiRpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1vYShyYSkscj1uWzBdLG89blsxXTtyZXR1cm4gcGEoKGZ1bmN0aW9uKCl7dmFyIG49cWkuc3VzcGVuc2U7cWkuc3VzcGVuc2U9dm9pZCAwPT09dD9udWxsOnQ7dHJ5e28oZSl9ZmluYWxseXtxaS5zdXNwZW5zZT1ufX0pLFtlLHRdKSxyfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PW9hKHJhKSxuPXRbMF07cmV0dXJuIHQ9dFsxXSxbZ2EoYmEuYmluZChudWxsLHQsZSksW3QsZV0pLG5dfX0sRWE9e3JlYWRDb250ZXh0OmxpLHVzZUNhbGxiYWNrOmdhLHVzZUNvbnRleHQ6bGksdXNlRWZmZWN0OnBhLHVzZUltcGVyYXRpdmVIYW5kbGU6eWEsdXNlTGF5b3V0RWZmZWN0OmRhLHVzZU1lbW86X2EsdXNlUmVkdWNlcjppYSx1c2VSZWY6c2EsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaWEocmEpfSx1c2VEZWJ1Z1ZhbHVlOnZhLHVzZVJlc3BvbmRlcjokaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49aWEocmEpLHI9blswXSxvPW5bMV07cmV0dXJuIHBhKChmdW5jdGlvbigpe3ZhciBuPXFpLnN1c3BlbnNlO3FpLnN1c3BlbnNlPXZvaWQgMD09PXQ/bnVsbDp0O3RyeXtvKGUpfWZpbmFsbHl7cWkuc3VzcGVuc2U9bn19KSxbZSx0XSkscn0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgdD1pYShyYSksbj10WzBdO3JldHVybiB0PXRbMV0sW2dhKGJhLmJpbmQobnVsbCx0LGUpLFt0LGVdKSxuXX19LFRhPW51bGwsQ2E9bnVsbCxPYT0hMTtmdW5jdGlvbiBQYShlLHQpe3ZhciBuPUJzKDUsbnVsbCxudWxsLDApO24uZWxlbWVudFR5cGU9IkRFTEVURUQiLG4udHlwZT0iREVMRVRFRCIsbi5zdGF0ZU5vZGU9dCxuLnJldHVybj1lLG4uZWZmZWN0VGFnPTgsbnVsbCE9PWUubGFzdEVmZmVjdD8oZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9bixlLmxhc3RFZmZlY3Q9bik6ZS5maXJzdEVmZmVjdD1lLmxhc3RFZmZlY3Q9bn1mdW5jdGlvbiBBYShlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSA1OnZhciBuPWUudHlwZTtyZXR1cm4gbnVsbCE9PSh0PTEhPT10Lm5vZGVUeXBlfHxuLnRvTG93ZXJDYXNlKCkhPT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDp0KSYmKGUuc3RhdGVOb2RlPXQsITApO2Nhc2UgNjpyZXR1cm4gbnVsbCE9PSh0PSIiPT09ZS5wZW5kaW5nUHJvcHN8fDMhPT10Lm5vZGVUeXBlP251bGw6dCkmJihlLnN0YXRlTm9kZT10LCEwKTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBqYShlKXtpZihPYSl7dmFyIHQ9Q2E7aWYodCl7dmFyIG49dDtpZighQWEoZSx0KSl7aWYoISh0PUNuKG4ubmV4dFNpYmxpbmcpKXx8IUFhKGUsdCkpcmV0dXJuIGUuZWZmZWN0VGFnPS0xMDI1JmUuZWZmZWN0VGFnfDIsT2E9ITEsdm9pZChUYT1lKTtQYShUYSxuKX1UYT1lLENhPUNuKHQuZmlyc3RDaGlsZCl9ZWxzZSBlLmVmZmVjdFRhZz0tMTAyNSZlLmVmZmVjdFRhZ3wyLE9hPSExLFRhPWV9fWZ1bmN0aW9uIFJhKGUpe2ZvcihlPWUucmV0dXJuO251bGwhPT1lJiY1IT09ZS50YWcmJjMhPT1lLnRhZyYmMTMhPT1lLnRhZzspZT1lLnJldHVybjtUYT1lfWZ1bmN0aW9uIE1hKGUpe2lmKGUhPT1UYSlyZXR1cm4hMTtpZighT2EpcmV0dXJuIFJhKGUpLE9hPSEwLCExO3ZhciB0PWUudHlwZTtpZig1IT09ZS50YWd8fCJoZWFkIiE9PXQmJiJib2R5IiE9PXQmJiFTbih0LGUubWVtb2l6ZWRQcm9wcykpZm9yKHQ9Q2E7dDspUGEoZSx0KSx0PUNuKHQubmV4dFNpYmxpbmcpO2lmKFJhKGUpLDEzPT09ZS50YWcpe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IoYSgzMTcpKTtlOntmb3IoZT1lLm5leHRTaWJsaW5nLHQ9MDtlOyl7aWYoOD09PWUubm9kZVR5cGUpe3ZhciBuPWUuZGF0YTtpZihuPT09Z24pe2lmKDA9PT10KXtDYT1DbihlLm5leHRTaWJsaW5nKTticmVhayBlfXQtLX1lbHNlIG4hPT1tbiYmbiE9PWJuJiZuIT09X258fHQrK31lPWUubmV4dFNpYmxpbmd9Q2E9bnVsbH19ZWxzZSBDYT1UYT9DbihlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBOYSgpe0NhPVRhPW51bGwsT2E9ITF9dmFyIElhPUsuUmVhY3RDdXJyZW50T3duZXIsRmE9ITE7ZnVuY3Rpb24gRGEoZSx0LG4scil7dC5jaGlsZD1udWxsPT09ZT9SaSh0LG51bGwsbixyKTpqaSh0LGUuY2hpbGQsbixyKX1mdW5jdGlvbiBMYShlLHQsbixyLG8pe249bi5yZW5kZXI7dmFyIGk9dC5yZWY7cmV0dXJuIGNpKHQsbykscj1lYShlLHQsbixyLGksbyksbnVsbD09PWV8fEZhPyh0LmVmZmVjdFRhZ3w9MSxEYShlLHQscixvKSx0LmNoaWxkKToodC51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQuZWZmZWN0VGFnJj0tNTE3LGUuZXhwaXJhdGlvblRpbWU8PW8mJihlLmV4cGlyYXRpb25UaW1lPTApLHR1KGUsdCxvKSl9ZnVuY3Rpb24gemEoZSx0LG4scixvLGkpe2lmKG51bGw9PT1lKXt2YXIgYT1uLnR5cGU7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGF8fFdzKGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PW4uY29tcGFyZXx8dm9pZCAwIT09bi5kZWZhdWx0UHJvcHM/KChlPSRzKG4udHlwZSxudWxsLHIsbnVsbCx0Lm1vZGUsaSkpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZSk6KHQudGFnPTE1LHQudHlwZT1hLFVhKGUsdCxhLHIsbyxpKSl9cmV0dXJuIGE9ZS5jaGlsZCxvPGkmJihvPWEubWVtb2l6ZWRQcm9wcywobj1udWxsIT09KG49bi5jb21wYXJlKT9uOlZyKShvLHIpJiZlLnJlZj09PXQucmVmKT90dShlLHQsaSk6KHQuZWZmZWN0VGFnfD0xLChlPUhzKGEscikpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZSl9ZnVuY3Rpb24gVWEoZSx0LG4scixvLGkpe3JldHVybiBudWxsIT09ZSYmVnIoZS5tZW1vaXplZFByb3BzLHIpJiZlLnJlZj09PXQucmVmJiYoRmE9ITEsbzxpKT8odC5leHBpcmF0aW9uVGltZT1lLmV4cGlyYXRpb25UaW1lLHR1KGUsdCxpKSk6V2EoZSx0LG4scixpKX1mdW5jdGlvbiBCYShlLHQpe3ZhciBuPXQucmVmOyhudWxsPT09ZSYmbnVsbCE9PW58fG51bGwhPT1lJiZlLnJlZiE9PW4pJiYodC5lZmZlY3RUYWd8PTEyOCl9ZnVuY3Rpb24gV2EoZSx0LG4scixvKXt2YXIgaT14byhuKT9ibzpnby5jdXJyZW50O3JldHVybiBpPXdvKHQsaSksY2kodCxvKSxuPWVhKGUsdCxuLHIsaSxvKSxudWxsPT09ZXx8RmE/KHQuZWZmZWN0VGFnfD0xLERhKGUsdCxuLG8pLHQuY2hpbGQpOih0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5lZmZlY3RUYWcmPS01MTcsZS5leHBpcmF0aW9uVGltZTw9byYmKGUuZXhwaXJhdGlvblRpbWU9MCksdHUoZSx0LG8pKX1mdW5jdGlvbiBIYShlLHQsbixyLG8pe2lmKHhvKG4pKXt2YXIgaT0hMDtUbyh0KX1lbHNlIGk9ITE7aWYoY2kodCxvKSxudWxsPT09dC5zdGF0ZU5vZGUpbnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5lZmZlY3RUYWd8PTIpLFNpKHQsbixyKSxUaSh0LG4scixvKSxyPSEwO2Vsc2UgaWYobnVsbD09PWUpe3ZhciBhPXQuc3RhdGVOb2RlLHU9dC5tZW1vaXplZFByb3BzO2EucHJvcHM9dTt2YXIgcz1hLmNvbnRleHQsYz1uLmNvbnRleHRUeXBlOyJvYmplY3QiPT10eXBlb2YgYyYmbnVsbCE9PWM/Yz1saShjKTpjPXdvKHQsYz14byhuKT9ibzpnby5jdXJyZW50KTt2YXIgbD1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyxmPSJmdW5jdGlvbiI9PXR5cGVvZiBsfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtmfHwiZnVuY3Rpb24iIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KHUhPT1yfHxzIT09YykmJkVpKHQsYSxyLGMpLGZpPSExO3ZhciBwPXQubWVtb2l6ZWRTdGF0ZTthLnN0YXRlPXAsbWkodCxyLGEsbykscz10Lm1lbW9pemVkU3RhdGUsdSE9PXJ8fHAhPT1zfHxfby5jdXJyZW50fHxmaT8oImZ1bmN0aW9uIj09dHlwZW9mIGwmJih3aSh0LG4sbCxyKSxzPXQubWVtb2l6ZWRTdGF0ZSksKHU9Zml8fGtpKHQsbix1LHIscCxzLGMpKT8oZnx8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50JiZhLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZWZmZWN0VGFnfD00KSk6KCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYodC5lZmZlY3RUYWd8PTQpLHQubWVtb2l6ZWRQcm9wcz1yLHQubWVtb2l6ZWRTdGF0ZT1zKSxhLnByb3BzPXIsYS5zdGF0ZT1zLGEuY29udGV4dD1jLHI9dSk6KCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYodC5lZmZlY3RUYWd8PTQpLHI9ITEpfWVsc2UgYT10LnN0YXRlTm9kZSxkaShlLHQpLHU9dC5tZW1vaXplZFByb3BzLGEucHJvcHM9dC50eXBlPT09dC5lbGVtZW50VHlwZT91OnRpKHQudHlwZSx1KSxzPWEuY29udGV4dCwib2JqZWN0Ij09dHlwZW9mKGM9bi5jb250ZXh0VHlwZSkmJm51bGwhPT1jP2M9bGkoYyk6Yz13byh0LGM9eG8obik/Ym86Z28uY3VycmVudCksKGY9ImZ1bmN0aW9uIj09dHlwZW9mKGw9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiYiZnVuY3Rpb24iIT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwodSE9PXJ8fHMhPT1jKSYmRWkodCxhLHIsYyksZmk9ITEscz10Lm1lbW9pemVkU3RhdGUsYS5zdGF0ZT1zLG1pKHQscixhLG8pLHA9dC5tZW1vaXplZFN0YXRlLHUhPT1yfHxzIT09cHx8X28uY3VycmVudHx8Zmk/KCJmdW5jdGlvbiI9PXR5cGVvZiBsJiYod2kodCxuLGwscikscD10Lm1lbW9pemVkU3RhdGUpLChsPWZpfHxraSh0LG4sdSxyLHMscCxjKSk/KGZ8fCJmdW5jdGlvbiIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiYiZnVuY3Rpb24iIT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlfHwoImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5jb21wb25lbnRXaWxsVXBkYXRlKHIscCxjKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShyLHAsYykpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZSYmKHQuZWZmZWN0VGFnfD00KSwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKHQuZWZmZWN0VGFnfD0yNTYpKTooImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZzPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZzPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTI1NiksdC5tZW1vaXplZFByb3BzPXIsdC5tZW1vaXplZFN0YXRlPXApLGEucHJvcHM9cixhLnN0YXRlPXAsYS5jb250ZXh0PWMscj1sKTooImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZzPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZzPT09ZS5tZW1vaXplZFN0YXRlfHwodC5lZmZlY3RUYWd8PTI1Nikscj0hMSk7cmV0dXJuICRhKGUsdCxuLHIsaSxvKX1mdW5jdGlvbiAkYShlLHQsbixyLG8saSl7QmEoZSx0KTt2YXIgYT0wIT0oNjQmdC5lZmZlY3RUYWcpO2lmKCFyJiYhYSlyZXR1cm4gbyYmQ28odCxuLCExKSx0dShlLHQsaSk7cj10LnN0YXRlTm9kZSxJYS5jdXJyZW50PXQ7dmFyIHU9YSYmImZ1bmN0aW9uIiE9dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ci5yZW5kZXIoKTtyZXR1cm4gdC5lZmZlY3RUYWd8PTEsbnVsbCE9PWUmJmE/KHQuY2hpbGQ9amkodCxlLmNoaWxkLG51bGwsaSksdC5jaGlsZD1qaSh0LG51bGwsdSxpKSk6RGEoZSx0LHUsaSksdC5tZW1vaXplZFN0YXRlPXIuc3RhdGUsbyYmQ28odCxuLCEwKSx0LmNoaWxkfWZ1bmN0aW9uIFZhKGUpe3ZhciB0PWUuc3RhdGVOb2RlO3QucGVuZGluZ0NvbnRleHQ/U28oMCx0LnBlbmRpbmdDb250ZXh0LHQucGVuZGluZ0NvbnRleHQhPT10LmNvbnRleHQpOnQuY29udGV4dCYmU28oMCx0LmNvbnRleHQsITEpLExpKGUsdC5jb250YWluZXJJbmZvKX12YXIgcWEsR2EsUWEsWWEsS2E9e2RlaHlkcmF0ZWQ6bnVsbCxyZXRyeVRpbWU6MH07ZnVuY3Rpb24gWGEoZSx0LG4pe3ZhciByLG89dC5tb2RlLGk9dC5wZW5kaW5nUHJvcHMsYT1XaS5jdXJyZW50LHU9ITE7aWYoKHI9MCE9KDY0JnQuZWZmZWN0VGFnKSl8fChyPTAhPSgyJmEpJiYobnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpKSxyPyh1PSEwLHQuZWZmZWN0VGFnJj0tNjUpOm51bGwhPT1lJiZudWxsPT09ZS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1pLmZhbGxiYWNrfHwhMD09PWkudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChhfD0xKSx2byhXaSwxJmEpLG51bGw9PT1lKXtpZih2b2lkIDAhPT1pLmZhbGxiYWNrJiZqYSh0KSx1KXtpZih1PWkuZmFsbGJhY2ssKGk9VnMobnVsbCxvLDAsbnVsbCkpLnJldHVybj10LDA9PSgyJnQubW9kZSkpZm9yKGU9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT90LmNoaWxkLmNoaWxkOnQuY2hpbGQsaS5jaGlsZD1lO251bGwhPT1lOyllLnJldHVybj1pLGU9ZS5zaWJsaW5nO3JldHVybihuPVZzKHUsbyxuLG51bGwpKS5yZXR1cm49dCxpLnNpYmxpbmc9bix0Lm1lbW9pemVkU3RhdGU9S2EsdC5jaGlsZD1pLG59cmV0dXJuIG89aS5jaGlsZHJlbix0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LmNoaWxkPVJpKHQsbnVsbCxvLG4pfWlmKG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKG89KGU9ZS5jaGlsZCkuc2libGluZyx1KXtpZihpPWkuZmFsbGJhY2ssKG49SHMoZSxlLnBlbmRpbmdQcm9wcykpLnJldHVybj10LDA9PSgyJnQubW9kZSkmJih1PW51bGwhPT10Lm1lbW9pemVkU3RhdGU/dC5jaGlsZC5jaGlsZDp0LmNoaWxkKSE9PWUuY2hpbGQpZm9yKG4uY2hpbGQ9dTtudWxsIT09dTspdS5yZXR1cm49bix1PXUuc2libGluZztyZXR1cm4obz1IcyhvLGkpKS5yZXR1cm49dCxuLnNpYmxpbmc9byxuLmNoaWxkRXhwaXJhdGlvblRpbWU9MCx0Lm1lbW9pemVkU3RhdGU9S2EsdC5jaGlsZD1uLG99cmV0dXJuIG49amkodCxlLmNoaWxkLGkuY2hpbGRyZW4sbiksdC5tZW1vaXplZFN0YXRlPW51bGwsdC5jaGlsZD1ufWlmKGU9ZS5jaGlsZCx1KXtpZih1PWkuZmFsbGJhY2ssKGk9VnMobnVsbCxvLDAsbnVsbCkpLnJldHVybj10LGkuY2hpbGQ9ZSxudWxsIT09ZSYmKGUucmV0dXJuPWkpLDA9PSgyJnQubW9kZSkpZm9yKGU9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT90LmNoaWxkLmNoaWxkOnQuY2hpbGQsaS5jaGlsZD1lO251bGwhPT1lOyllLnJldHVybj1pLGU9ZS5zaWJsaW5nO3JldHVybihuPVZzKHUsbyxuLG51bGwpKS5yZXR1cm49dCxpLnNpYmxpbmc9bixuLmVmZmVjdFRhZ3w9MixpLmNoaWxkRXhwaXJhdGlvblRpbWU9MCx0Lm1lbW9pemVkU3RhdGU9S2EsdC5jaGlsZD1pLG59cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQuY2hpbGQ9amkodCxlLGkuY2hpbGRyZW4sbil9ZnVuY3Rpb24gSmEoZSx0KXtlLmV4cGlyYXRpb25UaW1lPHQmJihlLmV4cGlyYXRpb25UaW1lPXQpO3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiZuLmV4cGlyYXRpb25UaW1lPHQmJihuLmV4cGlyYXRpb25UaW1lPXQpLHNpKGUucmV0dXJuLHQpfWZ1bmN0aW9uIFphKGUsdCxuLHIsbyxpKXt2YXIgYT1lLm1lbW9pemVkU3RhdGU7bnVsbD09PWE/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbEV4cGlyYXRpb246MCx0YWlsTW9kZTpvLGxhc3RFZmZlY3Q6aX06KGEuaXNCYWNrd2FyZHM9dCxhLnJlbmRlcmluZz1udWxsLGEucmVuZGVyaW5nU3RhcnRUaW1lPTAsYS5sYXN0PXIsYS50YWlsPW4sYS50YWlsRXhwaXJhdGlvbj0wLGEudGFpbE1vZGU9byxhLmxhc3RFZmZlY3Q9aSl9ZnVuY3Rpb24gZXUoZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzLG89ci5yZXZlYWxPcmRlcixpPXIudGFpbDtpZihEYShlLHQsci5jaGlsZHJlbixuKSwwIT0oMiYocj1XaS5jdXJyZW50KSkpcj0xJnJ8Mix0LmVmZmVjdFRhZ3w9NjQ7ZWxzZXtpZihudWxsIT09ZSYmMCE9KDY0JmUuZWZmZWN0VGFnKSllOmZvcihlPXQuY2hpbGQ7bnVsbCE9PWU7KXtpZigxMz09PWUudGFnKW51bGwhPT1lLm1lbW9pemVkU3RhdGUmJkphKGUsbik7ZWxzZSBpZigxOT09PWUudGFnKUphKGUsbik7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PXQpYnJlYWsgZTtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGUucmV0dXJuPT09dClicmVhayBlO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31yJj0xfWlmKHZvKFdpLHIpLDA9PSgyJnQubW9kZSkpdC5tZW1vaXplZFN0YXRlPW51bGw7ZWxzZSBzd2l0Y2gobyl7Y2FzZSJmb3J3YXJkcyI6Zm9yKG49dC5jaGlsZCxvPW51bGw7bnVsbCE9PW47KW51bGwhPT0oZT1uLmFsdGVybmF0ZSkmJm51bGw9PT1IaShlKSYmKG89biksbj1uLnNpYmxpbmc7bnVsbD09PShuPW8pPyhvPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobz1uLnNpYmxpbmcsbi5zaWJsaW5nPW51bGwpLFphKHQsITEsbyxuLGksdC5sYXN0RWZmZWN0KTticmVhaztjYXNlImJhY2t3YXJkcyI6Zm9yKG49bnVsbCxvPXQuY2hpbGQsdC5jaGlsZD1udWxsO251bGwhPT1vOyl7aWYobnVsbCE9PShlPW8uYWx0ZXJuYXRlKSYmbnVsbD09PUhpKGUpKXt0LmNoaWxkPW87YnJlYWt9ZT1vLnNpYmxpbmcsby5zaWJsaW5nPW4sbj1vLG89ZX1aYSh0LCEwLG4sbnVsbCxpLHQubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSJ0b2dldGhlciI6WmEodCwhMSxudWxsLG51bGwsdm9pZCAwLHQubGFzdEVmZmVjdCk7YnJlYWs7ZGVmYXVsdDp0Lm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiB0dShlLHQsbil7bnVsbCE9PWUmJih0LmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyk7dmFyIHI9dC5leHBpcmF0aW9uVGltZTtpZigwIT09ciYma3MociksdC5jaGlsZEV4cGlyYXRpb25UaW1lPG4pcmV0dXJuIG51bGw7aWYobnVsbCE9PWUmJnQuY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGEoMTUzKSk7aWYobnVsbCE9PXQuY2hpbGQpe2ZvcihuPUhzKGU9dC5jaGlsZCxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1uLG4ucmV0dXJuPXQ7bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKG49bi5zaWJsaW5nPUhzKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49dDtuLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBudShlLHQpe3N3aXRjaChlLnRhaWxNb2RlKXtjYXNlImhpZGRlbiI6dD1lLnRhaWw7Zm9yKHZhciBuPW51bGw7bnVsbCE9PXQ7KW51bGwhPT10LmFsdGVybmF0ZSYmKG49dCksdD10LnNpYmxpbmc7bnVsbD09PW4/ZS50YWlsPW51bGw6bi5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSJjb2xsYXBzZWQiOm49ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJihyPW4pLG49bi5zaWJsaW5nO251bGw9PT1yP3R8fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gcnUoZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzO3N3aXRjaCh0LnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIG51bGw7Y2FzZSAxOmNhc2UgMTc6cmV0dXJuIHhvKHQudHlwZSkmJmtvKCksbnVsbDtjYXNlIDM6cmV0dXJuIHppKCkseW8oX28pLHlvKGdvKSwobj10LnN0YXRlTm9kZSkucGVuZGluZ0NvbnRleHQmJihuLmNvbnRleHQ9bi5wZW5kaW5nQ29udGV4dCxuLnBlbmRpbmdDb250ZXh0PW51bGwpLG51bGwhPT1lJiZudWxsIT09ZS5jaGlsZHx8IU1hKHQpfHwodC5lZmZlY3RUYWd8PTQpLEdhKHQpLG51bGw7Y2FzZSA1OkJpKHQpLG49RGkoRmkuY3VycmVudCk7dmFyIGk9dC50eXBlO2lmKG51bGwhPT1lJiZudWxsIT10LnN0YXRlTm9kZSlRYShlLHQsaSxyLG4pLGUucmVmIT09dC5yZWYmJih0LmVmZmVjdFRhZ3w9MTI4KTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjYpKTtyZXR1cm4gbnVsbH1pZihlPURpKE5pLmN1cnJlbnQpLE1hKHQpKXtyPXQuc3RhdGVOb2RlLGk9dC50eXBlO3ZhciB1PXQubWVtb2l6ZWRQcm9wcztzd2l0Y2gocltBbl09dCxyW2puXT11LGkpe2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6UXQoImxvYWQiLHIpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihlPTA7ZTxYZS5sZW5ndGg7ZSsrKVF0KFhlW2VdLHIpO2JyZWFrO2Nhc2Uic291cmNlIjpRdCgiZXJyb3IiLHIpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOlF0KCJlcnJvciIsciksUXQoImxvYWQiLHIpO2JyZWFrO2Nhc2UiZm9ybSI6UXQoInJlc2V0IixyKSxRdCgic3VibWl0IixyKTticmVhaztjYXNlImRldGFpbHMiOlF0KCJ0b2dnbGUiLHIpO2JyZWFrO2Nhc2UiaW5wdXQiOmtlKHIsdSksUXQoImludmFsaWQiLHIpLGNuKG4sIm9uQ2hhbmdlIik7YnJlYWs7Y2FzZSJzZWxlY3QiOnIuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISF1Lm11bHRpcGxlfSxRdCgiaW52YWxpZCIsciksY24obiwib25DaGFuZ2UiKTticmVhaztjYXNlInRleHRhcmVhIjpqZShyLHUpLFF0KCJpbnZhbGlkIixyKSxjbihuLCJvbkNoYW5nZSIpfWZvcih2YXIgcyBpbiBhbihpLHUpLGU9bnVsbCx1KWlmKHUuaGFzT3duUHJvcGVydHkocykpe3ZhciBjPXVbc107ImNoaWxkcmVuIj09PXM/InN0cmluZyI9PXR5cGVvZiBjP3IudGV4dENvbnRlbnQhPT1jJiYoZT1bImNoaWxkcmVuIixjXSk6Im51bWJlciI9PXR5cGVvZiBjJiZyLnRleHRDb250ZW50IT09IiIrYyYmKGU9WyJjaGlsZHJlbiIsIiIrY10pOlMuaGFzT3duUHJvcGVydHkocykmJm51bGwhPWMmJmNuKG4scyl9c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOmJlKHIpLFRlKHIsdSwhMCk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6YmUociksTWUocik7YnJlYWs7Y2FzZSJzZWxlY3QiOmNhc2Uib3B0aW9uIjpicmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiB1Lm9uQ2xpY2smJihyLm9uY2xpY2s9bG4pfW49ZSx0LnVwZGF0ZVF1ZXVlPW4sbnVsbCE9PW4mJih0LmVmZmVjdFRhZ3w9NCl9ZWxzZXtzd2l0Y2gocz05PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudCxlPT09c24mJihlPUZlKGkpKSxlPT09c24/InNjcmlwdCI9PT1pPygoZT1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9IjxzY3JpcHQ+PFwvc2NyaXB0PiIsZT1lLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCkpOiJzdHJpbmciPT10eXBlb2Ygci5pcz9lPXMuY3JlYXRlRWxlbWVudChpLHtpczpyLmlzfSk6KGU9cy5jcmVhdGVFbGVtZW50KGkpLCJzZWxlY3QiPT09aSYmKHM9ZSxyLm11bHRpcGxlP3MubXVsdGlwbGU9ITA6ci5zaXplJiYocy5zaXplPXIuc2l6ZSkpKTplPXMuY3JlYXRlRWxlbWVudE5TKGUsaSksZVtBbl09dCxlW2puXT1yLHFhKGUsdCwhMSwhMSksdC5zdGF0ZU5vZGU9ZSxzPXVuKGksciksaSl7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpRdCgibG9hZCIsZSksYz1yO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihjPTA7YzxYZS5sZW5ndGg7YysrKVF0KFhlW2NdLGUpO2M9cjticmVhaztjYXNlInNvdXJjZSI6UXQoImVycm9yIixlKSxjPXI7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6UXQoImVycm9yIixlKSxRdCgibG9hZCIsZSksYz1yO2JyZWFrO2Nhc2UiZm9ybSI6UXQoInJlc2V0IixlKSxRdCgic3VibWl0IixlKSxjPXI7YnJlYWs7Y2FzZSJkZXRhaWxzIjpRdCgidG9nZ2xlIixlKSxjPXI7YnJlYWs7Y2FzZSJpbnB1dCI6a2UoZSxyKSxjPXhlKGUsciksUXQoImludmFsaWQiLGUpLGNuKG4sIm9uQ2hhbmdlIik7YnJlYWs7Y2FzZSJvcHRpb24iOmM9T2UoZSxyKTticmVhaztjYXNlInNlbGVjdCI6ZS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIXIubXVsdGlwbGV9LGM9byh7fSxyLHt2YWx1ZTp2b2lkIDB9KSxRdCgiaW52YWxpZCIsZSksY24obiwib25DaGFuZ2UiKTticmVhaztjYXNlInRleHRhcmVhIjpqZShlLHIpLGM9QWUoZSxyKSxRdCgiaW52YWxpZCIsZSksY24obiwib25DaGFuZ2UiKTticmVhaztkZWZhdWx0OmM9cn1hbihpLGMpO3ZhciBsPWM7Zm9yKHUgaW4gbClpZihsLmhhc093blByb3BlcnR5KHUpKXt2YXIgZj1sW3VdOyJzdHlsZSI9PT11P3JuKGUsZik6ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXU/bnVsbCE9KGY9Zj9mLl9faHRtbDp2b2lkIDApJiZVZShlLGYpOiJjaGlsZHJlbiI9PT11PyJzdHJpbmciPT10eXBlb2YgZj8oInRleHRhcmVhIiE9PWl8fCIiIT09ZikmJkJlKGUsZik6Im51bWJlciI9PXR5cGVvZiBmJiZCZShlLCIiK2YpOiJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciIT09dSYmInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIhPT11JiYiYXV0b0ZvY3VzIiE9PXUmJihTLmhhc093blByb3BlcnR5KHUpP251bGwhPWYmJmNuKG4sdSk6bnVsbCE9ZiYmWChlLHUsZixzKSl9c3dpdGNoKGkpe2Nhc2UiaW5wdXQiOmJlKGUpLFRlKGUsciwhMSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6YmUoZSksTWUoZSk7YnJlYWs7Y2FzZSJvcHRpb24iOm51bGwhPXIudmFsdWUmJmUuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIrZ2Uoci52YWx1ZSkpO2JyZWFrO2Nhc2Uic2VsZWN0IjplLm11bHRpcGxlPSEhci5tdWx0aXBsZSxudWxsIT0obj1yLnZhbHVlKT9QZShlLCEhci5tdWx0aXBsZSxuLCExKTpudWxsIT1yLmRlZmF1bHRWYWx1ZSYmUGUoZSwhIXIubXVsdGlwbGUsci5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIj09dHlwZW9mIGMub25DbGljayYmKGUub25jbGljaz1sbil9a24oaSxyKSYmKHQuZWZmZWN0VGFnfD00KX1udWxsIT09dC5yZWYmJih0LmVmZmVjdFRhZ3w9MTI4KX1yZXR1cm4gbnVsbDtjYXNlIDY6aWYoZSYmbnVsbCE9dC5zdGF0ZU5vZGUpWWEoZSx0LGUubWVtb2l6ZWRQcm9wcyxyKTtlbHNle2lmKCJzdHJpbmciIT10eXBlb2YgciYmbnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTY2KSk7bj1EaShGaS5jdXJyZW50KSxEaShOaS5jdXJyZW50KSxNYSh0KT8obj10LnN0YXRlTm9kZSxyPXQubWVtb2l6ZWRQcm9wcyxuW0FuXT10LG4ubm9kZVZhbHVlIT09ciYmKHQuZWZmZWN0VGFnfD00KSk6KChuPSg5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUocikpW0FuXT10LHQuc3RhdGVOb2RlPW4pfXJldHVybiBudWxsO2Nhc2UgMTM6cmV0dXJuIHlvKFdpKSxyPXQubWVtb2l6ZWRTdGF0ZSwwIT0oNjQmdC5lZmZlY3RUYWcpPyh0LmV4cGlyYXRpb25UaW1lPW4sdCk6KG49bnVsbCE9PXIscj0hMSxudWxsPT09ZT92b2lkIDAhPT10Lm1lbW9pemVkUHJvcHMuZmFsbGJhY2smJk1hKHQpOihyPW51bGwhPT0oaT1lLm1lbW9pemVkU3RhdGUpLG58fG51bGw9PT1pfHxudWxsIT09KGk9ZS5jaGlsZC5zaWJsaW5nKSYmKG51bGwhPT0odT10LmZpcnN0RWZmZWN0KT8odC5maXJzdEVmZmVjdD1pLGkubmV4dEVmZmVjdD11KToodC5maXJzdEVmZmVjdD10Lmxhc3RFZmZlY3Q9aSxpLm5leHRFZmZlY3Q9bnVsbCksaS5lZmZlY3RUYWc9OCkpLG4mJiFyJiYwIT0oMiZ0Lm1vZGUpJiYobnVsbD09PWUmJiEwIT09dC5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrfHwwIT0oMSZXaS5jdXJyZW50KT9IdT09PU11JiYoSHU9RnUpOihIdSE9PU11JiZIdSE9PUZ1fHwoSHU9RHUpLDAhPT1RdSYmbnVsbCE9PVV1JiYoS3MoVXUsV3UpLFhzKFV1LFF1KSkpKSwobnx8cikmJih0LmVmZmVjdFRhZ3w9NCksbnVsbCk7Y2FzZSA0OnJldHVybiB6aSgpLEdhKHQpLG51bGw7Y2FzZSAxMDpyZXR1cm4gdWkodCksbnVsbDtjYXNlIDE5OmlmKHlvKFdpKSxudWxsPT09KHI9dC5tZW1vaXplZFN0YXRlKSlyZXR1cm4gbnVsbDtpZihpPTAhPSg2NCZ0LmVmZmVjdFRhZyksbnVsbD09PSh1PXIucmVuZGVyaW5nKSl7aWYoaSludShyLCExKTtlbHNlIGlmKEh1IT09TXV8fG51bGwhPT1lJiYwIT0oNjQmZS5lZmZlY3RUYWcpKWZvcih1PXQuY2hpbGQ7bnVsbCE9PXU7KXtpZihudWxsIT09KGU9SGkodSkpKXtmb3IodC5lZmZlY3RUYWd8PTY0LG51KHIsITEpLG51bGwhPT0oaT1lLnVwZGF0ZVF1ZXVlKSYmKHQudXBkYXRlUXVldWU9aSx0LmVmZmVjdFRhZ3w9NCksbnVsbD09PXIubGFzdEVmZmVjdCYmKHQuZmlyc3RFZmZlY3Q9bnVsbCksdC5sYXN0RWZmZWN0PXIubGFzdEVmZmVjdCxyPXQuY2hpbGQ7bnVsbCE9PXI7KXU9biwoaT1yKS5lZmZlY3RUYWcmPTIsaS5uZXh0RWZmZWN0PW51bGwsaS5maXJzdEVmZmVjdD1udWxsLGkubGFzdEVmZmVjdD1udWxsLG51bGw9PT0oZT1pLmFsdGVybmF0ZSk/KGkuY2hpbGRFeHBpcmF0aW9uVGltZT0wLGkuZXhwaXJhdGlvblRpbWU9dSxpLmNoaWxkPW51bGwsaS5tZW1vaXplZFByb3BzPW51bGwsaS5tZW1vaXplZFN0YXRlPW51bGwsaS51cGRhdGVRdWV1ZT1udWxsLGkuZGVwZW5kZW5jaWVzPW51bGwpOihpLmNoaWxkRXhwaXJhdGlvblRpbWU9ZS5jaGlsZEV4cGlyYXRpb25UaW1lLGkuZXhwaXJhdGlvblRpbWU9ZS5leHBpcmF0aW9uVGltZSxpLmNoaWxkPWUuY2hpbGQsaS5tZW1vaXplZFByb3BzPWUubWVtb2l6ZWRQcm9wcyxpLm1lbW9pemVkU3RhdGU9ZS5tZW1vaXplZFN0YXRlLGkudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx1PWUuZGVwZW5kZW5jaWVzLGkuZGVwZW5kZW5jaWVzPW51bGw9PT11P251bGw6e2V4cGlyYXRpb25UaW1lOnUuZXhwaXJhdGlvblRpbWUsZmlyc3RDb250ZXh0OnUuZmlyc3RDb250ZXh0LHJlc3BvbmRlcnM6dS5yZXNwb25kZXJzfSkscj1yLnNpYmxpbmc7cmV0dXJuIHZvKFdpLDEmV2kuY3VycmVudHwyKSx0LmNoaWxkfXU9dS5zaWJsaW5nfX1lbHNle2lmKCFpKWlmKG51bGwhPT0oZT1IaSh1KSkpe2lmKHQuZWZmZWN0VGFnfD02NCxpPSEwLG51bGwhPT0obj1lLnVwZGF0ZVF1ZXVlKSYmKHQudXBkYXRlUXVldWU9bix0LmVmZmVjdFRhZ3w9NCksbnUociwhMCksbnVsbD09PXIudGFpbCYmImhpZGRlbiI9PT1yLnRhaWxNb2RlJiYhdS5hbHRlcm5hdGUpcmV0dXJuIG51bGwhPT0odD10Lmxhc3RFZmZlY3Q9ci5sYXN0RWZmZWN0KSYmKHQubmV4dEVmZmVjdD1udWxsKSxudWxsfWVsc2UgMipxbygpLXIucmVuZGVyaW5nU3RhcnRUaW1lPnIudGFpbEV4cGlyYXRpb24mJjE8biYmKHQuZWZmZWN0VGFnfD02NCxpPSEwLG51KHIsITEpLHQuZXhwaXJhdGlvblRpbWU9dC5jaGlsZEV4cGlyYXRpb25UaW1lPW4tMSk7ci5pc0JhY2t3YXJkcz8odS5zaWJsaW5nPXQuY2hpbGQsdC5jaGlsZD11KToobnVsbCE9PShuPXIubGFzdCk/bi5zaWJsaW5nPXU6dC5jaGlsZD11LHIubGFzdD11KX1yZXR1cm4gbnVsbCE9PXIudGFpbD8oMD09PXIudGFpbEV4cGlyYXRpb24mJihyLnRhaWxFeHBpcmF0aW9uPXFvKCkrNTAwKSxuPXIudGFpbCxyLnJlbmRlcmluZz1uLHIudGFpbD1uLnNpYmxpbmcsci5sYXN0RWZmZWN0PXQubGFzdEVmZmVjdCxyLnJlbmRlcmluZ1N0YXJ0VGltZT1xbygpLG4uc2libGluZz1udWxsLHQ9V2kuY3VycmVudCx2byhXaSxpPzEmdHwyOjEmdCksbik6bnVsbH10aHJvdyBFcnJvcihhKDE1Nix0LnRhZykpfWZ1bmN0aW9uIG91KGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAxOnhvKGUudHlwZSkmJmtvKCk7dmFyIHQ9ZS5lZmZlY3RUYWc7cmV0dXJuIDQwOTYmdD8oZS5lZmZlY3RUYWc9LTQwOTcmdHw2NCxlKTpudWxsO2Nhc2UgMzppZih6aSgpLHlvKF9vKSx5byhnbyksMCE9KDY0Jih0PWUuZWZmZWN0VGFnKSkpdGhyb3cgRXJyb3IoYSgyODUpKTtyZXR1cm4gZS5lZmZlY3RUYWc9LTQwOTcmdHw2NCxlO2Nhc2UgNTpyZXR1cm4gQmkoZSksbnVsbDtjYXNlIDEzOnJldHVybiB5byhXaSksNDA5NiYodD1lLmVmZmVjdFRhZyk/KGUuZWZmZWN0VGFnPS00MDk3JnR8NjQsZSk6bnVsbDtjYXNlIDE5OnJldHVybiB5byhXaSksbnVsbDtjYXNlIDQ6cmV0dXJuIHppKCksbnVsbDtjYXNlIDEwOnJldHVybiB1aShlKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGl1KGUsdCl7cmV0dXJue3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6bWUodCl9fXFhPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXQuY2hpbGQ7bnVsbCE9PW47KXtpZig1PT09bi50YWd8fDY9PT1uLnRhZyllLmFwcGVuZENoaWxkKG4uc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1uLnRhZyYmbnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT10KWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT10KXJldHVybjtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fSxHYT1mdW5jdGlvbigpe30sUWE9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgYT1lLm1lbW9pemVkUHJvcHM7aWYoYSE9PXIpe3ZhciB1LHMsYz10LnN0YXRlTm9kZTtzd2l0Y2goRGkoTmkuY3VycmVudCksZT1udWxsLG4pe2Nhc2UiaW5wdXQiOmE9eGUoYyxhKSxyPXhlKGMsciksZT1bXTticmVhaztjYXNlIm9wdGlvbiI6YT1PZShjLGEpLHI9T2UoYyxyKSxlPVtdO2JyZWFrO2Nhc2Uic2VsZWN0IjphPW8oe30sYSx7dmFsdWU6dm9pZCAwfSkscj1vKHt9LHIse3ZhbHVlOnZvaWQgMH0pLGU9W107YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6YT1BZShjLGEpLHI9QWUoYyxyKSxlPVtdO2JyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIiE9dHlwZW9mIGEub25DbGljayYmImZ1bmN0aW9uIj09dHlwZW9mIHIub25DbGljayYmKGMub25jbGljaz1sbil9Zm9yKHUgaW4gYW4obixyKSxuPW51bGwsYSlpZighci5oYXNPd25Qcm9wZXJ0eSh1KSYmYS5oYXNPd25Qcm9wZXJ0eSh1KSYmbnVsbCE9YVt1XSlpZigic3R5bGUiPT09dSlmb3IocyBpbiBjPWFbdV0pYy5oYXNPd25Qcm9wZXJ0eShzKSYmKG58fChuPXt9KSxuW3NdPSIiKTtlbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiE9PXUmJiJjaGlsZHJlbiIhPT11JiYic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PXUmJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09dSYmImF1dG9Gb2N1cyIhPT11JiYoUy5oYXNPd25Qcm9wZXJ0eSh1KT9lfHwoZT1bXSk6KGU9ZXx8W10pLnB1c2godSxudWxsKSk7Zm9yKHUgaW4gcil7dmFyIGw9clt1XTtpZihjPW51bGwhPWE/YVt1XTp2b2lkIDAsci5oYXNPd25Qcm9wZXJ0eSh1KSYmbCE9PWMmJihudWxsIT1sfHxudWxsIT1jKSlpZigic3R5bGUiPT09dSlpZihjKXtmb3IocyBpbiBjKSFjLmhhc093blByb3BlcnR5KHMpfHxsJiZsLmhhc093blByb3BlcnR5KHMpfHwobnx8KG49e30pLG5bc109IiIpO2ZvcihzIGluIGwpbC5oYXNPd25Qcm9wZXJ0eShzKSYmY1tzXSE9PWxbc10mJihufHwobj17fSksbltzXT1sW3NdKX1lbHNlIG58fChlfHwoZT1bXSksZS5wdXNoKHUsbikpLG49bDtlbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXU/KGw9bD9sLl9faHRtbDp2b2lkIDAsYz1jP2MuX19odG1sOnZvaWQgMCxudWxsIT1sJiZjIT09bCYmKGU9ZXx8W10pLnB1c2godSxsKSk6ImNoaWxkcmVuIj09PXU/Yz09PWx8fCJzdHJpbmciIT10eXBlb2YgbCYmIm51bWJlciIhPXR5cGVvZiBsfHwoZT1lfHxbXSkucHVzaCh1LCIiK2wpOiJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciIT09dSYmInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIhPT11JiYoUy5oYXNPd25Qcm9wZXJ0eSh1KT8obnVsbCE9bCYmY24oaSx1KSxlfHxjPT09bHx8KGU9W10pKTooZT1lfHxbXSkucHVzaCh1LGwpKX1uJiYoZT1lfHxbXSkucHVzaCgic3R5bGUiLG4pLGk9ZSwodC51cGRhdGVRdWV1ZT1pKSYmKHQuZWZmZWN0VGFnfD00KX19LFlhPWZ1bmN0aW9uKGUsdCxuLHIpe24hPT1yJiYodC5lZmZlY3RUYWd8PTQpfTt2YXIgYXU9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQ7ZnVuY3Rpb24gdXUoZSx0KXt2YXIgbj10LnNvdXJjZSxyPXQuc3RhY2s7bnVsbD09PXImJm51bGwhPT1uJiYocj1tZShuKSksbnVsbCE9PW4mJnZlKG4udHlwZSksdD10LnZhbHVlLG51bGwhPT1lJiYxPT09ZS50YWcmJnZlKGUudHlwZSk7dHJ5e2NvbnNvbGUuZXJyb3IodCl9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfX1mdW5jdGlvbiBzdShlKXt2YXIgdD1lLnJlZjtpZihudWxsIT09dClpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl0cnl7dChudWxsKX1jYXRjaCh0KXtJcyhlLHQpfWVsc2UgdC5jdXJyZW50PW51bGx9ZnVuY3Rpb24gY3UoZSx0KXtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpjYXNlIDM6Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpyZXR1cm47Y2FzZSAxOmlmKDI1NiZ0LmVmZmVjdFRhZyYmbnVsbCE9PWUpe3ZhciBuPWUubWVtb2l6ZWRQcm9wcyxyPWUubWVtb2l6ZWRTdGF0ZTt0PShlPXQuc3RhdGVOb2RlKS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh0LmVsZW1lbnRUeXBlPT09dC50eXBlP246dGkodC50eXBlLG4pLHIpLGUuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9dH1yZXR1cm59dGhyb3cgRXJyb3IoYSgxNjMpKX1mdW5jdGlvbiBsdShlLHQpe2lmKG51bGwhPT0odD1udWxsIT09KHQ9dC51cGRhdGVRdWV1ZSk/dC5sYXN0RWZmZWN0Om51bGwpKXt2YXIgbj10PXQubmV4dDtkb3tpZigobi50YWcmZSk9PT1lKXt2YXIgcj1uLmRlc3Ryb3k7bi5kZXN0cm95PXZvaWQgMCx2b2lkIDAhPT1yJiZyKCl9bj1uLm5leHR9d2hpbGUobiE9PXQpfX1mdW5jdGlvbiBmdShlLHQpe2lmKG51bGwhPT0odD1udWxsIT09KHQ9dC51cGRhdGVRdWV1ZSk/dC5sYXN0RWZmZWN0Om51bGwpKXt2YXIgbj10PXQubmV4dDtkb3tpZigobi50YWcmZSk9PT1lKXt2YXIgcj1uLmNyZWF0ZTtuLmRlc3Ryb3k9cigpfW49bi5uZXh0fXdoaWxlKG4hPT10KX19ZnVuY3Rpb24gcHUoZSx0LG4pe3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyOnJldHVybiB2b2lkIGZ1KDMsbik7Y2FzZSAxOmlmKGU9bi5zdGF0ZU5vZGUsNCZuLmVmZmVjdFRhZylpZihudWxsPT09dCllLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgcj1uLmVsZW1lbnRUeXBlPT09bi50eXBlP3QubWVtb2l6ZWRQcm9wczp0aShuLnR5cGUsdC5tZW1vaXplZFByb3BzKTtlLmNvbXBvbmVudERpZFVwZGF0ZShyLHQubWVtb2l6ZWRTdGF0ZSxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1yZXR1cm4gdm9pZChudWxsIT09KHQ9bi51cGRhdGVRdWV1ZSkmJmdpKG4sdCxlKSk7Y2FzZSAzOmlmKG51bGwhPT0odD1uLnVwZGF0ZVF1ZXVlKSl7aWYoZT1udWxsLG51bGwhPT1uLmNoaWxkKXN3aXRjaChuLmNoaWxkLnRhZyl7Y2FzZSA1OmNhc2UgMTplPW4uY2hpbGQuc3RhdGVOb2RlfWdpKG4sdCxlKX1yZXR1cm47Y2FzZSA1OnJldHVybiBlPW4uc3RhdGVOb2RlLHZvaWQobnVsbD09PXQmJjQmbi5lZmZlY3RUYWcmJmtuKG4udHlwZSxuLm1lbW9pemVkUHJvcHMpJiZlLmZvY3VzKCkpO2Nhc2UgNjpjYXNlIDQ6Y2FzZSAxMjpjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMDpjYXNlIDIxOnJldHVybjtjYXNlIDEzOnJldHVybiB2b2lkKG51bGw9PT1uLm1lbW9pemVkU3RhdGUmJihuPW4uYWx0ZXJuYXRlLG51bGwhPT1uJiYobj1uLm1lbW9pemVkU3RhdGUsbnVsbCE9PW4mJihuPW4uZGVoeWRyYXRlZCxudWxsIT09biYmRHQobikpKSkpfXRocm93IEVycm9yKGEoMTYzKSl9ZnVuY3Rpb24gZHUoZSx0LG4pe3N3aXRjaCgiZnVuY3Rpb24iPT10eXBlb2YgenMmJnpzKHQpLHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAyMjppZihudWxsIT09KGU9dC51cGRhdGVRdWV1ZSkmJm51bGwhPT0oZT1lLmxhc3RFZmZlY3QpKXt2YXIgcj1lLm5leHQ7WW8oOTc8bj85NzpuLChmdW5jdGlvbigpe3ZhciBlPXI7ZG97dmFyIG49ZS5kZXN0cm95O2lmKHZvaWQgMCE9PW4pe3ZhciBvPXQ7dHJ5e24oKX1jYXRjaChlKXtJcyhvLGUpfX1lPWUubmV4dH13aGlsZShlIT09cil9KSl9YnJlYWs7Y2FzZSAxOnN1KHQpLCJmdW5jdGlvbiI9PXR5cGVvZihuPXQuc3RhdGVOb2RlKS5jb21wb25lbnRXaWxsVW5tb3VudCYmZnVuY3Rpb24oZSx0KXt0cnl7dC5wcm9wcz1lLm1lbW9pemVkUHJvcHMsdC5zdGF0ZT1lLm1lbW9pemVkU3RhdGUsdC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKHQpe0lzKGUsdCl9fSh0LG4pO2JyZWFrO2Nhc2UgNTpzdSh0KTticmVhaztjYXNlIDQ6X3UoZSx0LG4pfX1mdW5jdGlvbiBodShlKXt2YXIgdD1lLmFsdGVybmF0ZTtlLnJldHVybj1udWxsLGUuY2hpbGQ9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCxlLmFsdGVybmF0ZT1udWxsLGUuZmlyc3RFZmZlY3Q9bnVsbCxlLmxhc3RFZmZlY3Q9bnVsbCxlLnBlbmRpbmdQcm9wcz1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUuc3RhdGVOb2RlPW51bGwsbnVsbCE9PXQmJmh1KHQpfWZ1bmN0aW9uIHl1KGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8ND09PWUudGFnfWZ1bmN0aW9uIHZ1KGUpe2U6e2Zvcih2YXIgdD1lLnJldHVybjtudWxsIT09dDspe2lmKHl1KHQpKXt2YXIgbj10O2JyZWFrIGV9dD10LnJldHVybn10aHJvdyBFcnJvcihhKDE2MCkpfXN3aXRjaCh0PW4uc3RhdGVOb2RlLG4udGFnKXtjYXNlIDU6dmFyIHI9ITE7YnJlYWs7Y2FzZSAzOmNhc2UgNDp0PXQuY29udGFpbmVySW5mbyxyPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgxNjEpKX0xNiZuLmVmZmVjdFRhZyYmKEJlKHQsIiIpLG4uZWZmZWN0VGFnJj0tMTcpO2U6dDpmb3Iobj1lOzspe2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8eXUobi5yZXR1cm4pKXtuPW51bGw7YnJlYWsgZX1uPW4ucmV0dXJufWZvcihuLnNpYmxpbmcucmV0dXJuPW4ucmV0dXJuLG49bi5zaWJsaW5nOzUhPT1uLnRhZyYmNiE9PW4udGFnJiYxOCE9PW4udGFnOyl7aWYoMiZuLmVmZmVjdFRhZyljb250aW51ZSB0O2lmKG51bGw9PT1uLmNoaWxkfHw0PT09bi50YWcpY29udGludWUgdDtuLmNoaWxkLnJldHVybj1uLG49bi5jaGlsZH1pZighKDImbi5lZmZlY3RUYWcpKXtuPW4uc3RhdGVOb2RlO2JyZWFrIGV9fXI/bXUoZSxuLHQpOmd1KGUsbix0KX1mdW5jdGlvbiBtdShlLHQsbil7dmFyIHI9ZS50YWcsbz01PT09cnx8Nj09PXI7aWYobyllPW8/ZS5zdGF0ZU5vZGU6ZS5zdGF0ZU5vZGUuaW5zdGFuY2UsdD84PT09bi5ub2RlVHlwZT9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCk6bi5pbnNlcnRCZWZvcmUoZSx0KTooOD09PW4ubm9kZVR5cGU/KHQ9bi5wYXJlbnROb2RlKS5pbnNlcnRCZWZvcmUoZSxuKToodD1uKS5hcHBlbmRDaGlsZChlKSxudWxsIT0obj1uLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09dC5vbmNsaWNrfHwodC5vbmNsaWNrPWxuKSk7ZWxzZSBpZig0IT09ciYmbnVsbCE9PShlPWUuY2hpbGQpKWZvcihtdShlLHQsbiksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KW11KGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiBndShlLHQsbil7dmFyIHI9ZS50YWcsbz01PT09cnx8Nj09PXI7aWYobyllPW8/ZS5zdGF0ZU5vZGU6ZS5zdGF0ZU5vZGUuaW5zdGFuY2UsdD9uLmluc2VydEJlZm9yZShlLHQpOm4uYXBwZW5kQ2hpbGQoZSk7ZWxzZSBpZig0IT09ciYmbnVsbCE9PShlPWUuY2hpbGQpKWZvcihndShlLHQsbiksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KWd1KGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiBfdShlLHQsbil7Zm9yKHZhciByLG8saT10LHU9ITE7Oyl7aWYoIXUpe3U9aS5yZXR1cm47ZTpmb3IoOzspe2lmKG51bGw9PT11KXRocm93IEVycm9yKGEoMTYwKSk7c3dpdGNoKHI9dS5zdGF0ZU5vZGUsdS50YWcpe2Nhc2UgNTpvPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpyPXIuY29udGFpbmVySW5mbyxvPSEwO2JyZWFrIGV9dT11LnJldHVybn11PSEwfWlmKDU9PT1pLnRhZ3x8Nj09PWkudGFnKXtlOmZvcih2YXIgcz1lLGM9aSxsPW4sZj1jOzspaWYoZHUocyxmLGwpLG51bGwhPT1mLmNoaWxkJiY0IT09Zi50YWcpZi5jaGlsZC5yZXR1cm49ZixmPWYuY2hpbGQ7ZWxzZXtpZihmPT09YylicmVhayBlO2Zvcig7bnVsbD09PWYuc2libGluZzspe2lmKG51bGw9PT1mLnJldHVybnx8Zi5yZXR1cm49PT1jKWJyZWFrIGU7Zj1mLnJldHVybn1mLnNpYmxpbmcucmV0dXJuPWYucmV0dXJuLGY9Zi5zaWJsaW5nfW8/KHM9cixjPWkuc3RhdGVOb2RlLDg9PT1zLm5vZGVUeXBlP3MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTpzLnJlbW92ZUNoaWxkKGMpKTpyLnJlbW92ZUNoaWxkKGkuc3RhdGVOb2RlKX1lbHNlIGlmKDQ9PT1pLnRhZyl7aWYobnVsbCE9PWkuY2hpbGQpe3I9aS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxvPSEwLGkuY2hpbGQucmV0dXJuPWksaT1pLmNoaWxkO2NvbnRpbnVlfX1lbHNlIGlmKGR1KGUsaSxuKSxudWxsIT09aS5jaGlsZCl7aS5jaGlsZC5yZXR1cm49aSxpPWkuY2hpbGQ7Y29udGludWV9aWYoaT09PXQpYnJlYWs7Zm9yKDtudWxsPT09aS5zaWJsaW5nOyl7aWYobnVsbD09PWkucmV0dXJufHxpLnJldHVybj09PXQpcmV0dXJuOzQ9PT0oaT1pLnJldHVybikudGFnJiYodT0hMSl9aS5zaWJsaW5nLnJldHVybj1pLnJldHVybixpPWkuc2libGluZ319ZnVuY3Rpb24gYnUoZSx0KXtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOnJldHVybiB2b2lkIGx1KDMsdCk7Y2FzZSAxOmNhc2UgMTI6Y2FzZSAxNzpyZXR1cm47Y2FzZSA1OnZhciBuPXQuc3RhdGVOb2RlO2lmKG51bGwhPW4pe3ZhciByPXQubWVtb2l6ZWRQcm9wcyxvPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpyO2U9dC50eXBlO3ZhciBpPXQudXBkYXRlUXVldWU7aWYodC51cGRhdGVRdWV1ZT1udWxsLG51bGwhPT1pKXtmb3Iobltqbl09ciwiaW5wdXQiPT09ZSYmInJhZGlvIj09PXIudHlwZSYmbnVsbCE9ci5uYW1lJiZTZShuLHIpLHVuKGUsbyksdD11bihlLHIpLG89MDtvPGkubGVuZ3RoO28rPTIpe3ZhciB1PWlbb10scz1pW28rMV07InN0eWxlIj09PXU/cm4obixzKToiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPT09dT9VZShuLHMpOiJjaGlsZHJlbiI9PT11P0JlKG4scyk6WChuLHUscyx0KX1zd2l0Y2goZSl7Y2FzZSJpbnB1dCI6RWUobixyKTticmVhaztjYXNlInRleHRhcmVhIjpSZShuLHIpO2JyZWFrO2Nhc2Uic2VsZWN0Ijp0PW4uX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxuLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFyLm11bHRpcGxlLG51bGwhPShlPXIudmFsdWUpP1BlKG4sISFyLm11bHRpcGxlLGUsITEpOnQhPT0hIXIubXVsdGlwbGUmJihudWxsIT1yLmRlZmF1bHRWYWx1ZT9QZShuLCEhci5tdWx0aXBsZSxyLmRlZmF1bHRWYWx1ZSwhMCk6UGUobiwhIXIubXVsdGlwbGUsci5tdWx0aXBsZT9bXToiIiwhMSkpfX19cmV0dXJuO2Nhc2UgNjppZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjIpKTtyZXR1cm4gdm9pZCh0LnN0YXRlTm9kZS5ub2RlVmFsdWU9dC5tZW1vaXplZFByb3BzKTtjYXNlIDM6cmV0dXJuIHZvaWQoKHQ9dC5zdGF0ZU5vZGUpLmh5ZHJhdGUmJih0Lmh5ZHJhdGU9ITEsRHQodC5jb250YWluZXJJbmZvKSkpO2Nhc2UgMTM6aWYobj10LG51bGw9PT10Lm1lbW9pemVkU3RhdGU/cj0hMToocj0hMCxuPXQuY2hpbGQsS3U9cW8oKSksbnVsbCE9PW4pZTpmb3IoZT1uOzspe2lmKDU9PT1lLnRhZylpPWUuc3RhdGVOb2RlLHI/ImZ1bmN0aW9uIj09dHlwZW9mKGk9aS5zdHlsZSkuc2V0UHJvcGVydHk/aS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsIm5vbmUiLCJpbXBvcnRhbnQiKTppLmRpc3BsYXk9Im5vbmUiOihpPWUuc3RhdGVOb2RlLG89bnVsbCE9KG89ZS5tZW1vaXplZFByb3BzLnN0eWxlKSYmby5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpP28uZGlzcGxheTpudWxsLGkuc3R5bGUuZGlzcGxheT1ubigiZGlzcGxheSIsbykpO2Vsc2UgaWYoNj09PWUudGFnKWUuc3RhdGVOb2RlLm5vZGVWYWx1ZT1yPyIiOmUubWVtb2l6ZWRQcm9wcztlbHNle2lmKDEzPT09ZS50YWcmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGw9PT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7KGk9ZS5jaGlsZC5zaWJsaW5nKS5yZXR1cm49ZSxlPWk7Y29udGludWV9aWYobnVsbCE9PWUuY2hpbGQpe2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkO2NvbnRpbnVlfX1pZihlPT09bilicmVhaztmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGUucmV0dXJuPT09bilicmVhayBlO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31yZXR1cm4gdm9pZCB3dSh0KTtjYXNlIDE5OnJldHVybiB2b2lkIHd1KHQpfXRocm93IEVycm9yKGEoMTYzKSl9ZnVuY3Rpb24gd3UoZSl7dmFyIHQ9ZS51cGRhdGVRdWV1ZTtpZihudWxsIT09dCl7ZS51cGRhdGVRdWV1ZT1udWxsO3ZhciBuPWUuc3RhdGVOb2RlO251bGw9PT1uJiYobj1lLnN0YXRlTm9kZT1uZXcgYXUpLHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9RHMuYmluZChudWxsLGUsdCk7bi5oYXModCl8fChuLmFkZCh0KSx0LnRoZW4ocixyKSl9KSl9fXZhciB4dT0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtmdW5jdGlvbiBrdShlLHQsbil7KG49aGkobixudWxsKSkudGFnPTMsbi5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciByPXQudmFsdWU7cmV0dXJuIG4uY2FsbGJhY2s9ZnVuY3Rpb24oKXtadXx8KFp1PSEwLGVzPXIpLHV1KGUsdCl9LG59ZnVuY3Rpb24gU3UoZSx0LG4peyhuPWhpKG4sbnVsbCkpLnRhZz0zO3ZhciByPWUudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe3ZhciBvPXQudmFsdWU7bi5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIHV1KGUsdCkscihvKX19dmFyIGk9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGwhPT1pJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5jb21wb25lbnREaWRDYXRjaCYmKG4uY2FsbGJhY2s9ZnVuY3Rpb24oKXsiZnVuY3Rpb24iIT10eXBlb2YgciYmKG51bGw9PT10cz90cz1uZXcgU2V0KFt0aGlzXSk6dHMuYWRkKHRoaXMpLHV1KGUsdCkpO3ZhciBuPXQuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaCh0LnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09bj9uOiIifSl9KSxufXZhciBFdSxUdT1NYXRoLmNlaWwsQ3U9Sy5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLE91PUsuUmVhY3RDdXJyZW50T3duZXIsUHU9MCxBdT04LGp1PTE2LFJ1PTMyLE11PTAsTnU9MSxJdT0yLEZ1PTMsRHU9NCxMdT01LHp1PVB1LFV1PW51bGwsQnU9bnVsbCxXdT0wLEh1PU11LCR1PW51bGwsVnU9MTA3Mzc0MTgyMyxxdT0xMDczNzQxODIzLEd1PW51bGwsUXU9MCxZdT0hMSxLdT0wLFh1PTUwMCxKdT1udWxsLFp1PSExLGVzPW51bGwsdHM9bnVsbCxucz0hMSxycz1udWxsLG9zPTkwLGlzPW51bGwsYXM9MCx1cz1udWxsLHNzPTA7ZnVuY3Rpb24gY3MoKXtyZXR1cm4oenUmKGp1fFJ1KSkhPT1QdT8xMDczNzQxODIxLShxbygpLzEwfDApOjAhPT1zcz9zczpzcz0xMDczNzQxODIxLShxbygpLzEwfDApfWZ1bmN0aW9uIGxzKGUsdCxuKXtpZigwPT0oMiYodD10Lm1vZGUpKSlyZXR1cm4gMTA3Mzc0MTgyMzt2YXIgcj1HbygpO2lmKDA9PSg0JnQpKXJldHVybiA5OT09PXI/MTA3Mzc0MTgyMzoxMDczNzQxODIyO2lmKCh6dSZqdSkhPT1QdSlyZXR1cm4gV3U7aWYobnVsbCE9PW4pZT1laShlLDB8bi50aW1lb3V0TXN8fDVlMywyNTApO2Vsc2Ugc3dpdGNoKHIpe2Nhc2UgOTk6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgOTg6ZT1laShlLDE1MCwxMDApO2JyZWFrO2Nhc2UgOTc6Y2FzZSA5NjplPWVpKGUsNWUzLDI1MCk7YnJlYWs7Y2FzZSA5NTplPTI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihhKDMyNikpfXJldHVybiBudWxsIT09VXUmJmU9PT1XdSYmLS1lLGV9ZnVuY3Rpb24gZnMoZSx0KXtpZig1MDxhcyl0aHJvdyBhcz0wLHVzPW51bGwsRXJyb3IoYSgxODUpKTtpZihudWxsIT09KGU9cHMoZSx0KSkpe3ZhciBuPUdvKCk7MTA3Mzc0MTgyMz09PXQ/KHp1JkF1KSE9PVB1JiYoenUmKGp1fFJ1KSk9PT1QdT92cyhlKTooaHMoZSksenU9PT1QdSYmSm8oKSk6aHMoZSksKDQmenUpPT09UHV8fDk4IT09biYmOTkhPT1ufHwobnVsbD09PWlzP2lzPW5ldyBNYXAoW1tlLHRdXSk6KHZvaWQgMD09PShuPWlzLmdldChlKSl8fG4+dCkmJmlzLnNldChlLHQpKX19ZnVuY3Rpb24gcHMoZSx0KXtlLmV4cGlyYXRpb25UaW1lPHQmJihlLmV4cGlyYXRpb25UaW1lPXQpO3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiZuLmV4cGlyYXRpb25UaW1lPHQmJihuLmV4cGlyYXRpb25UaW1lPXQpO3ZhciByPWUucmV0dXJuLG89bnVsbDtpZihudWxsPT09ciYmMz09PWUudGFnKW89ZS5zdGF0ZU5vZGU7ZWxzZSBmb3IoO251bGwhPT1yOyl7aWYobj1yLmFsdGVybmF0ZSxyLmNoaWxkRXhwaXJhdGlvblRpbWU8dCYmKHIuY2hpbGRFeHBpcmF0aW9uVGltZT10KSxudWxsIT09biYmbi5jaGlsZEV4cGlyYXRpb25UaW1lPHQmJihuLmNoaWxkRXhwaXJhdGlvblRpbWU9dCksbnVsbD09PXIucmV0dXJuJiYzPT09ci50YWcpe289ci5zdGF0ZU5vZGU7YnJlYWt9cj1yLnJldHVybn1yZXR1cm4gbnVsbCE9PW8mJihVdT09PW8mJihrcyh0KSxIdT09PUR1JiZLcyhvLFd1KSksWHMobyx0KSksb31mdW5jdGlvbiBkcyhlKXt2YXIgdD1lLmxhc3RFeHBpcmVkVGltZTtpZigwIT09dClyZXR1cm4gdDtpZighWXMoZSx0PWUuZmlyc3RQZW5kaW5nVGltZSkpcmV0dXJuIHQ7dmFyIG49ZS5sYXN0UGluZ2VkVGltZTtyZXR1cm4gMj49KGU9bj4oZT1lLm5leHRLbm93blBlbmRpbmdMZXZlbCk/bjplKSYmdCE9PWU/MDplfWZ1bmN0aW9uIGhzKGUpe2lmKDAhPT1lLmxhc3RFeHBpcmVkVGltZSllLmNhbGxiYWNrRXhwaXJhdGlvblRpbWU9MTA3Mzc0MTgyMyxlLmNhbGxiYWNrUHJpb3JpdHk9OTksZS5jYWxsYmFja05vZGU9WG8odnMuYmluZChudWxsLGUpKTtlbHNle3ZhciB0PWRzKGUpLG49ZS5jYWxsYmFja05vZGU7aWYoMD09PXQpbnVsbCE9PW4mJihlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wLGUuY2FsbGJhY2tQcmlvcml0eT05MCk7ZWxzZXt2YXIgcj1jcygpO2lmKDEwNzM3NDE4MjM9PT10P3I9OTk6MT09PXR8fDI9PT10P3I9OTU6cj0wPj0ocj0xMCooMTA3Mzc0MTgyMS10KS0xMCooMTA3Mzc0MTgyMS1yKSk/OTk6MjUwPj1yPzk4OjUyNTA+PXI/OTc6OTUsbnVsbCE9PW4pe3ZhciBvPWUuY2FsbGJhY2tQcmlvcml0eTtpZihlLmNhbGxiYWNrRXhwaXJhdGlvblRpbWU9PT10JiZvPj1yKXJldHVybjtuIT09em8mJkFvKG4pfWUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT10LGUuY2FsbGJhY2tQcmlvcml0eT1yLHQ9MTA3Mzc0MTgyMz09PXQ/WG8odnMuYmluZChudWxsLGUpKTpLbyhyLHlzLmJpbmQobnVsbCxlKSx7dGltZW91dDoxMCooMTA3Mzc0MTgyMS10KS1xbygpfSksZS5jYWxsYmFja05vZGU9dH19fWZ1bmN0aW9uIHlzKGUsdCl7aWYoc3M9MCx0KXJldHVybiBKcyhlLHQ9Y3MoKSksaHMoZSksbnVsbDt2YXIgbj1kcyhlKTtpZigwIT09bil7aWYodD1lLmNhbGxiYWNrTm9kZSwoenUmKGp1fFJ1KSkhPT1QdSl0aHJvdyBFcnJvcihhKDMyNykpO2lmKFJzKCksZT09PVV1JiZuPT09V3V8fF9zKGUsbiksbnVsbCE9PUJ1KXt2YXIgcj16dTt6dXw9anU7Zm9yKHZhciBvPXdzKCk7Oyl0cnl7RXMoKTticmVha31jYXRjaCh0KXticyhlLHQpfWlmKGFpKCksenU9cixDdS5jdXJyZW50PW8sSHU9PT1OdSl0aHJvdyB0PSR1LF9zKGUsbiksS3MoZSxuKSxocyhlKSx0O2lmKG51bGw9PT1CdSlzd2l0Y2gobz1lLmZpbmlzaGVkV29yaz1lLmN1cnJlbnQuYWx0ZXJuYXRlLGUuZmluaXNoZWRFeHBpcmF0aW9uVGltZT1uLHI9SHUsVXU9bnVsbCxyKXtjYXNlIE11OmNhc2UgTnU6dGhyb3cgRXJyb3IoYSgzNDUpKTtjYXNlIEl1OkpzKGUsMjxuPzI6bik7YnJlYWs7Y2FzZSBGdTppZihLcyhlLG4pLG49PT0ocj1lLmxhc3RTdXNwZW5kZWRUaW1lKSYmKGUubmV4dEtub3duUGVuZGluZ0xldmVsPU9zKG8pKSwxMDczNzQxODIzPT09VnUmJjEwPChvPUt1K1h1LXFvKCkpKXtpZihZdSl7dmFyIGk9ZS5sYXN0UGluZ2VkVGltZTtpZigwPT09aXx8aT49bil7ZS5sYXN0UGluZ2VkVGltZT1uLF9zKGUsbik7YnJlYWt9fWlmKDAhPT0oaT1kcyhlKSkmJmkhPT1uKWJyZWFrO2lmKDAhPT1yJiZyIT09bil7ZS5sYXN0UGluZ2VkVGltZT1yO2JyZWFrfWUudGltZW91dEhhbmRsZT1FbihQcy5iaW5kKG51bGwsZSksbyk7YnJlYWt9UHMoZSk7YnJlYWs7Y2FzZSBEdTppZihLcyhlLG4pLG49PT0ocj1lLmxhc3RTdXNwZW5kZWRUaW1lKSYmKGUubmV4dEtub3duUGVuZGluZ0xldmVsPU9zKG8pKSxZdSYmKDA9PT0obz1lLmxhc3RQaW5nZWRUaW1lKXx8bz49bikpe2UubGFzdFBpbmdlZFRpbWU9bixfcyhlLG4pO2JyZWFrfWlmKDAhPT0obz1kcyhlKSkmJm8hPT1uKWJyZWFrO2lmKDAhPT1yJiZyIT09bil7ZS5sYXN0UGluZ2VkVGltZT1yO2JyZWFrfWlmKDEwNzM3NDE4MjMhPT1xdT9yPTEwKigxMDczNzQxODIxLXF1KS1xbygpOjEwNzM3NDE4MjM9PT1WdT9yPTA6KHI9MTAqKDEwNzM3NDE4MjEtVnUpLTVlMywwPihyPShvPXFvKCkpLXIpJiYocj0wKSwobj0xMCooMTA3Mzc0MTgyMS1uKS1vKTwocj0oMTIwPnI/MTIwOjQ4MD5yPzQ4MDoxMDgwPnI/MTA4MDoxOTIwPnI/MTkyMDozZTM+cj8zZTM6NDMyMD5yPzQzMjA6MTk2MCpUdShyLzE5NjApKS1yKSYmKHI9bikpLDEwPHIpe2UudGltZW91dEhhbmRsZT1FbihQcy5iaW5kKG51bGwsZSkscik7YnJlYWt9UHMoZSk7YnJlYWs7Y2FzZSBMdTppZigxMDczNzQxODIzIT09VnUmJm51bGwhPT1HdSl7aT1WdTt2YXIgdT1HdTtpZigwPj0ocj0wfHUuYnVzeU1pbkR1cmF0aW9uTXMpP3I9MDoobz0wfHUuYnVzeURlbGF5TXMscj0oaT1xbygpLSgxMCooMTA3Mzc0MTgyMS1pKS0oMHx1LnRpbWVvdXRNc3x8NWUzKSkpPD1vPzA6bytyLWkpLDEwPHIpe0tzKGUsbiksZS50aW1lb3V0SGFuZGxlPUVuKFBzLmJpbmQobnVsbCxlKSxyKTticmVha319UHMoZSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihhKDMyOSkpfWlmKGhzKGUpLGUuY2FsbGJhY2tOb2RlPT09dClyZXR1cm4geXMuYmluZChudWxsLGUpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2cyhlKXt2YXIgdD1lLmxhc3RFeHBpcmVkVGltZTtpZih0PTAhPT10P3Q6MTA3Mzc0MTgyMywoenUmKGp1fFJ1KSkhPT1QdSl0aHJvdyBFcnJvcihhKDMyNykpO2lmKFJzKCksZT09PVV1JiZ0PT09V3V8fF9zKGUsdCksbnVsbCE9PUJ1KXt2YXIgbj16dTt6dXw9anU7Zm9yKHZhciByPXdzKCk7Oyl0cnl7U3MoKTticmVha31jYXRjaCh0KXticyhlLHQpfWlmKGFpKCksenU9bixDdS5jdXJyZW50PXIsSHU9PT1OdSl0aHJvdyBuPSR1LF9zKGUsdCksS3MoZSx0KSxocyhlKSxuO2lmKG51bGwhPT1CdSl0aHJvdyBFcnJvcihhKDI2MSkpO2UuZmluaXNoZWRXb3JrPWUuY3VycmVudC5hbHRlcm5hdGUsZS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPXQsVXU9bnVsbCxQcyhlKSxocyhlKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBtcyhlLHQpe3ZhciBuPXp1O3p1fD0xO3RyeXtyZXR1cm4gZSh0KX1maW5hbGx5eyh6dT1uKT09PVB1JiZKbygpfX1mdW5jdGlvbiBncyhlLHQpe3ZhciBuPXp1O3p1Jj0tMix6dXw9QXU7dHJ5e3JldHVybiBlKHQpfWZpbmFsbHl7KHp1PW4pPT09UHUmJkpvKCl9fWZ1bmN0aW9uIF9zKGUsdCl7ZS5maW5pc2hlZFdvcms9bnVsbCxlLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDt2YXIgbj1lLnRpbWVvdXRIYW5kbGU7aWYoLTEhPT1uJiYoZS50aW1lb3V0SGFuZGxlPS0xLFRuKG4pKSxudWxsIT09QnUpZm9yKG49QnUucmV0dXJuO251bGwhPT1uOyl7dmFyIHI9bjtzd2l0Y2goci50YWcpe2Nhc2UgMTpudWxsIT0ocj1yLnR5cGUuY2hpbGRDb250ZXh0VHlwZXMpJiZrbygpO2JyZWFrO2Nhc2UgMzp6aSgpLHlvKF9vKSx5byhnbyk7YnJlYWs7Y2FzZSA1OkJpKHIpO2JyZWFrO2Nhc2UgNDp6aSgpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxOTp5byhXaSk7YnJlYWs7Y2FzZSAxMDp1aShyKX1uPW4ucmV0dXJufVV1PWUsQnU9SHMoZS5jdXJyZW50LG51bGwpLFd1PXQsSHU9TXUsJHU9bnVsbCxxdT1WdT0xMDczNzQxODIzLEd1PW51bGwsUXU9MCxZdT0hMX1mdW5jdGlvbiBicyhlLHQpe2Zvcig7Oyl7dHJ5e2lmKGFpKCksVmkuY3VycmVudD14YSxYaSlmb3IodmFyIG49UWkubWVtb2l6ZWRTdGF0ZTtudWxsIT09bjspe3ZhciByPW4ucXVldWU7bnVsbCE9PXImJihyLnBlbmRpbmc9bnVsbCksbj1uLm5leHR9aWYoR2k9MCxLaT1ZaT1RaT1udWxsLFhpPSExLG51bGw9PT1CdXx8bnVsbD09PUJ1LnJldHVybilyZXR1cm4gSHU9TnUsJHU9dCxCdT1udWxsO2U6e3ZhciBvPWUsaT1CdS5yZXR1cm4sYT1CdSx1PXQ7aWYodD1XdSxhLmVmZmVjdFRhZ3w9MjA0OCxhLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1udWxsLG51bGwhPT11JiYib2JqZWN0Ij09dHlwZW9mIHUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1LnRoZW4pe3ZhciBzPXU7aWYoMD09KDImYS5tb2RlKSl7dmFyIGM9YS5hbHRlcm5hdGU7Yz8oYS51cGRhdGVRdWV1ZT1jLnVwZGF0ZVF1ZXVlLGEubWVtb2l6ZWRTdGF0ZT1jLm1lbW9pemVkU3RhdGUsYS5leHBpcmF0aW9uVGltZT1jLmV4cGlyYXRpb25UaW1lKTooYS51cGRhdGVRdWV1ZT1udWxsLGEubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgbD0wIT0oMSZXaS5jdXJyZW50KSxmPWk7ZG97dmFyIHA7aWYocD0xMz09PWYudGFnKXt2YXIgZD1mLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQpcD1udWxsIT09ZC5kZWh5ZHJhdGVkO2Vsc2V7dmFyIGg9Zi5tZW1vaXplZFByb3BzO3A9dm9pZCAwIT09aC5mYWxsYmFjayYmKCEwIT09aC51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8IWwpfX1pZihwKXt2YXIgeT1mLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT15KXt2YXIgdj1uZXcgU2V0O3YuYWRkKHMpLGYudXBkYXRlUXVldWU9dn1lbHNlIHkuYWRkKHMpO2lmKDA9PSgyJmYubW9kZSkpe2lmKGYuZWZmZWN0VGFnfD02NCxhLmVmZmVjdFRhZyY9LTI5ODEsMT09PWEudGFnKWlmKG51bGw9PT1hLmFsdGVybmF0ZSlhLnRhZz0xNztlbHNle3ZhciBtPWhpKDEwNzM3NDE4MjMsbnVsbCk7bS50YWc9Mix5aShhLG0pfWEuZXhwaXJhdGlvblRpbWU9MTA3Mzc0MTgyMzticmVhayBlfXU9dm9pZCAwLGE9dDt2YXIgZz1vLnBpbmdDYWNoZTtpZihudWxsPT09Zz8oZz1vLnBpbmdDYWNoZT1uZXcgeHUsdT1uZXcgU2V0LGcuc2V0KHMsdSkpOnZvaWQgMD09PSh1PWcuZ2V0KHMpKSYmKHU9bmV3IFNldCxnLnNldChzLHUpKSwhdS5oYXMoYSkpe3UuYWRkKGEpO3ZhciBfPUZzLmJpbmQobnVsbCxvLHMsYSk7cy50aGVuKF8sXyl9Zi5lZmZlY3RUYWd8PTQwOTYsZi5leHBpcmF0aW9uVGltZT10O2JyZWFrIGV9Zj1mLnJldHVybn13aGlsZShudWxsIT09Zik7dT1FcnJvcigodmUoYS50eXBlKXx8IkEgUmVhY3QgY29tcG9uZW50IikrIiBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cblxuQWRkIGEgPFN1c3BlbnNlIGZhbGxiYWNrPS4uLj4gY29tcG9uZW50IGhpZ2hlciBpbiB0aGUgdHJlZSB0byBwcm92aWRlIGEgbG9hZGluZyBpbmRpY2F0b3Igb3IgcGxhY2Vob2xkZXIgdG8gZGlzcGxheS4iK21lKGEpKX1IdSE9PUx1JiYoSHU9SXUpLHU9aXUodSxhKSxmPWk7ZG97c3dpdGNoKGYudGFnKXtjYXNlIDM6cz11LGYuZWZmZWN0VGFnfD00MDk2LGYuZXhwaXJhdGlvblRpbWU9dCx2aShmLGt1KGYscyx0KSk7YnJlYWsgZTtjYXNlIDE6cz11O3ZhciBiPWYudHlwZSx3PWYuc3RhdGVOb2RlO2lmKDA9PSg2NCZmLmVmZmVjdFRhZykmJigiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT13JiYiZnVuY3Rpb24iPT10eXBlb2Ygdy5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT10c3x8IXRzLmhhcyh3KSkpKXtmLmVmZmVjdFRhZ3w9NDA5NixmLmV4cGlyYXRpb25UaW1lPXQsdmkoZixTdShmLHMsdCkpO2JyZWFrIGV9fWY9Zi5yZXR1cm59d2hpbGUobnVsbCE9PWYpfUJ1PUNzKEJ1KX1jYXRjaChlKXt0PWU7Y29udGludWV9YnJlYWt9fWZ1bmN0aW9uIHdzKCl7dmFyIGU9Q3UuY3VycmVudDtyZXR1cm4gQ3UuY3VycmVudD14YSxudWxsPT09ZT94YTplfWZ1bmN0aW9uIHhzKGUsdCl7ZTxWdSYmMjxlJiYoVnU9ZSksbnVsbCE9PXQmJmU8cXUmJjI8ZSYmKHF1PWUsR3U9dCl9ZnVuY3Rpb24ga3MoZSl7ZT5RdSYmKFF1PWUpfWZ1bmN0aW9uIFNzKCl7Zm9yKDtudWxsIT09QnU7KUJ1PVRzKEJ1KX1mdW5jdGlvbiBFcygpe2Zvcig7bnVsbCE9PUJ1JiYhVW8oKTspQnU9VHMoQnUpfWZ1bmN0aW9uIFRzKGUpe3ZhciB0PUV1KGUuYWx0ZXJuYXRlLGUsV3UpO3JldHVybiBlLm1lbW9pemVkUHJvcHM9ZS5wZW5kaW5nUHJvcHMsbnVsbD09PXQmJih0PUNzKGUpKSxPdS5jdXJyZW50PW51bGwsdH1mdW5jdGlvbiBDcyhlKXtCdT1lO2Rve3ZhciB0PUJ1LmFsdGVybmF0ZTtpZihlPUJ1LnJldHVybiwwPT0oMjA0OCZCdS5lZmZlY3RUYWcpKXtpZih0PXJ1KHQsQnUsV3UpLDE9PT1XdXx8MSE9PUJ1LmNoaWxkRXhwaXJhdGlvblRpbWUpe2Zvcih2YXIgbj0wLHI9QnUuY2hpbGQ7bnVsbCE9PXI7KXt2YXIgbz1yLmV4cGlyYXRpb25UaW1lLGk9ci5jaGlsZEV4cGlyYXRpb25UaW1lO28+biYmKG49byksaT5uJiYobj1pKSxyPXIuc2libGluZ31CdS5jaGlsZEV4cGlyYXRpb25UaW1lPW59aWYobnVsbCE9PXQpcmV0dXJuIHQ7bnVsbCE9PWUmJjA9PSgyMDQ4JmUuZWZmZWN0VGFnKSYmKG51bGw9PT1lLmZpcnN0RWZmZWN0JiYoZS5maXJzdEVmZmVjdD1CdS5maXJzdEVmZmVjdCksbnVsbCE9PUJ1Lmxhc3RFZmZlY3QmJihudWxsIT09ZS5sYXN0RWZmZWN0JiYoZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9QnUuZmlyc3RFZmZlY3QpLGUubGFzdEVmZmVjdD1CdS5sYXN0RWZmZWN0KSwxPEJ1LmVmZmVjdFRhZyYmKG51bGwhPT1lLmxhc3RFZmZlY3Q/ZS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9QnU6ZS5maXJzdEVmZmVjdD1CdSxlLmxhc3RFZmZlY3Q9QnUpKX1lbHNle2lmKG51bGwhPT0odD1vdShCdSkpKXJldHVybiB0LmVmZmVjdFRhZyY9MjA0Nyx0O251bGwhPT1lJiYoZS5maXJzdEVmZmVjdD1lLmxhc3RFZmZlY3Q9bnVsbCxlLmVmZmVjdFRhZ3w9MjA0OCl9aWYobnVsbCE9PSh0PUJ1LnNpYmxpbmcpKXJldHVybiB0O0J1PWV9d2hpbGUobnVsbCE9PUJ1KTtyZXR1cm4gSHU9PT1NdSYmKEh1PUx1KSxudWxsfWZ1bmN0aW9uIE9zKGUpe3ZhciB0PWUuZXhwaXJhdGlvblRpbWU7cmV0dXJuIHQ+KGU9ZS5jaGlsZEV4cGlyYXRpb25UaW1lKT90OmV9ZnVuY3Rpb24gUHMoZSl7dmFyIHQ9R28oKTtyZXR1cm4gWW8oOTksQXMuYmluZChudWxsLGUsdCkpLG51bGx9ZnVuY3Rpb24gQXMoZSx0KXtkb3tScygpfXdoaWxlKG51bGwhPT1ycyk7aWYoKHp1JihqdXxSdSkpIT09UHUpdGhyb3cgRXJyb3IoYSgzMjcpKTt2YXIgbj1lLmZpbmlzaGVkV29yayxyPWUuZmluaXNoZWRFeHBpcmF0aW9uVGltZTtpZihudWxsPT09bilyZXR1cm4gbnVsbDtpZihlLmZpbmlzaGVkV29yaz1udWxsLGUuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wLG49PT1lLmN1cnJlbnQpdGhyb3cgRXJyb3IoYSgxNzcpKTtlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wLGUuY2FsbGJhY2tQcmlvcml0eT05MCxlLm5leHRLbm93blBlbmRpbmdMZXZlbD0wO3ZhciBvPU9zKG4pO2lmKGUuZmlyc3RQZW5kaW5nVGltZT1vLHI8PWUubGFzdFN1c3BlbmRlZFRpbWU/ZS5maXJzdFN1c3BlbmRlZFRpbWU9ZS5sYXN0U3VzcGVuZGVkVGltZT1lLm5leHRLbm93blBlbmRpbmdMZXZlbD0wOnI8PWUuZmlyc3RTdXNwZW5kZWRUaW1lJiYoZS5maXJzdFN1c3BlbmRlZFRpbWU9ci0xKSxyPD1lLmxhc3RQaW5nZWRUaW1lJiYoZS5sYXN0UGluZ2VkVGltZT0wKSxyPD1lLmxhc3RFeHBpcmVkVGltZSYmKGUubGFzdEV4cGlyZWRUaW1lPTApLGU9PT1VdSYmKEJ1PVV1PW51bGwsV3U9MCksMTxuLmVmZmVjdFRhZz9udWxsIT09bi5sYXN0RWZmZWN0PyhuLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1uLG89bi5maXJzdEVmZmVjdCk6bz1uOm89bi5maXJzdEVmZmVjdCxudWxsIT09byl7dmFyIGk9enU7enV8PVJ1LE91LmN1cnJlbnQ9bnVsbCx3bj1HdDt2YXIgdT15bigpO2lmKHZuKHUpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gdSl2YXIgcz17c3RhcnQ6dS5zZWxlY3Rpb25TdGFydCxlbmQ6dS5zZWxlY3Rpb25FbmR9O2Vsc2UgZTp7dmFyIGM9KHM9KHM9dS5vd25lckRvY3VtZW50KSYmcy5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24mJnMuZ2V0U2VsZWN0aW9uKCk7aWYoYyYmMCE9PWMucmFuZ2VDb3VudCl7cz1jLmFuY2hvck5vZGU7dmFyIGw9Yy5hbmNob3JPZmZzZXQsZj1jLmZvY3VzTm9kZTtjPWMuZm9jdXNPZmZzZXQ7dHJ5e3Mubm9kZVR5cGUsZi5ub2RlVHlwZX1jYXRjaChlKXtzPW51bGw7YnJlYWsgZX12YXIgcD0wLGQ9LTEsaD0tMSx5PTAsdj0wLG09dSxnPW51bGw7dDpmb3IoOzspe2Zvcih2YXIgXzttIT09c3x8MCE9PWwmJjMhPT1tLm5vZGVUeXBlfHwoZD1wK2wpLG0hPT1mfHwwIT09YyYmMyE9PW0ubm9kZVR5cGV8fChoPXArYyksMz09PW0ubm9kZVR5cGUmJihwKz1tLm5vZGVWYWx1ZS5sZW5ndGgpLG51bGwhPT0oXz1tLmZpcnN0Q2hpbGQpOylnPW0sbT1fO2Zvcig7Oyl7aWYobT09PXUpYnJlYWsgdDtpZihnPT09cyYmKyt5PT09bCYmKGQ9cCksZz09PWYmJisrdj09PWMmJihoPXApLG51bGwhPT0oXz1tLm5leHRTaWJsaW5nKSlicmVhaztnPShtPWcpLnBhcmVudE5vZGV9bT1ffXM9LTE9PT1kfHwtMT09PWg/bnVsbDp7c3RhcnQ6ZCxlbmQ6aH19ZWxzZSBzPW51bGx9cz1zfHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSBzPW51bGw7eG49e2FjdGl2ZUVsZW1lbnREZXRhY2hlZDpudWxsLGZvY3VzZWRFbGVtOnUsc2VsZWN0aW9uUmFuZ2U6c30sR3Q9ITEsSnU9bztkb3t0cnl7anMoKX1jYXRjaChlKXtpZihudWxsPT09SnUpdGhyb3cgRXJyb3IoYSgzMzApKTtJcyhKdSxlKSxKdT1KdS5uZXh0RWZmZWN0fX13aGlsZShudWxsIT09SnUpO0p1PW87ZG97dHJ5e2Zvcih1PWUscz10O251bGwhPT1KdTspe3ZhciBiPUp1LmVmZmVjdFRhZztpZigxNiZiJiZCZShKdS5zdGF0ZU5vZGUsIiIpLDEyOCZiKXt2YXIgdz1KdS5hbHRlcm5hdGU7aWYobnVsbCE9PXcpe3ZhciB4PXcucmVmO251bGwhPT14JiYoImZ1bmN0aW9uIj09dHlwZW9mIHg/eChudWxsKTp4LmN1cnJlbnQ9bnVsbCl9fXN3aXRjaCgxMDM4JmIpe2Nhc2UgMjp2dShKdSksSnUuZWZmZWN0VGFnJj0tMzticmVhaztjYXNlIDY6dnUoSnUpLEp1LmVmZmVjdFRhZyY9LTMsYnUoSnUuYWx0ZXJuYXRlLEp1KTticmVhaztjYXNlIDEwMjQ6SnUuZWZmZWN0VGFnJj0tMTAyNTticmVhaztjYXNlIDEwMjg6SnUuZWZmZWN0VGFnJj0tMTAyNSxidShKdS5hbHRlcm5hdGUsSnUpO2JyZWFrO2Nhc2UgNDpidShKdS5hbHRlcm5hdGUsSnUpO2JyZWFrO2Nhc2UgODpfdSh1LGw9SnUscyksaHUobCl9SnU9SnUubmV4dEVmZmVjdH19Y2F0Y2goZSl7aWYobnVsbD09PUp1KXRocm93IEVycm9yKGEoMzMwKSk7SXMoSnUsZSksSnU9SnUubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PUp1KTtpZih4PXhuLHc9eW4oKSxiPXguZm9jdXNlZEVsZW0scz14LnNlbGVjdGlvblJhbmdlLHchPT1iJiZiJiZiLm93bmVyRG9jdW1lbnQmJmhuKGIub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYikpe251bGwhPT1zJiZ2bihiKSYmKHc9cy5zdGFydCx2b2lkIDA9PT0oeD1zLmVuZCkmJih4PXcpLCJzZWxlY3Rpb25TdGFydCJpbiBiPyhiLnNlbGVjdGlvblN0YXJ0PXcsYi5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oeCxiLnZhbHVlLmxlbmd0aCkpOih4PSh3PWIub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZ3LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmKHg9eC5nZXRTZWxlY3Rpb24oKSxsPWIudGV4dENvbnRlbnQubGVuZ3RoLHU9TWF0aC5taW4ocy5zdGFydCxsKSxzPXZvaWQgMD09PXMuZW5kP3U6TWF0aC5taW4ocy5lbmQsbCksIXguZXh0ZW5kJiZ1PnMmJihsPXMscz11LHU9bCksbD1kbihiLHUpLGY9ZG4oYixzKSxsJiZmJiYoMSE9PXgucmFuZ2VDb3VudHx8eC5hbmNob3JOb2RlIT09bC5ub2RlfHx4LmFuY2hvck9mZnNldCE9PWwub2Zmc2V0fHx4LmZvY3VzTm9kZSE9PWYubm9kZXx8eC5mb2N1c09mZnNldCE9PWYub2Zmc2V0KSYmKCh3PXcuY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQobC5ub2RlLGwub2Zmc2V0KSx4LnJlbW92ZUFsbFJhbmdlcygpLHU+cz8oeC5hZGRSYW5nZSh3KSx4LmV4dGVuZChmLm5vZGUsZi5vZmZzZXQpKToody5zZXRFbmQoZi5ub2RlLGYub2Zmc2V0KSx4LmFkZFJhbmdlKHcpKSkpKSx3PVtdO2Zvcih4PWI7eD14LnBhcmVudE5vZGU7KTE9PT14Lm5vZGVUeXBlJiZ3LnB1c2goe2VsZW1lbnQ6eCxsZWZ0Onguc2Nyb2xsTGVmdCx0b3A6eC5zY3JvbGxUb3B9KTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGIuZm9jdXMmJmIuZm9jdXMoKSxiPTA7Yjx3Lmxlbmd0aDtiKyspKHg9d1tiXSkuZWxlbWVudC5zY3JvbGxMZWZ0PXgubGVmdCx4LmVsZW1lbnQuc2Nyb2xsVG9wPXgudG9wfUd0PSEhd24seG49d249bnVsbCxlLmN1cnJlbnQ9bixKdT1vO2Rve3RyeXtmb3IoYj1lO251bGwhPT1KdTspe3ZhciBrPUp1LmVmZmVjdFRhZztpZigzNiZrJiZwdShiLEp1LmFsdGVybmF0ZSxKdSksMTI4Jmspe3c9dm9pZCAwO3ZhciBTPUp1LnJlZjtpZihudWxsIT09Uyl7dmFyIEU9SnUuc3RhdGVOb2RlO0p1LnRhZyx3PUUsImZ1bmN0aW9uIj09dHlwZW9mIFM/Uyh3KTpTLmN1cnJlbnQ9d319SnU9SnUubmV4dEVmZmVjdH19Y2F0Y2goZSl7aWYobnVsbD09PUp1KXRocm93IEVycm9yKGEoMzMwKSk7SXMoSnUsZSksSnU9SnUubmV4dEVmZmVjdH19d2hpbGUobnVsbCE9PUp1KTtKdT1udWxsLEJvKCksenU9aX1lbHNlIGUuY3VycmVudD1uO2lmKG5zKW5zPSExLHJzPWUsb3M9dDtlbHNlIGZvcihKdT1vO251bGwhPT1KdTspdD1KdS5uZXh0RWZmZWN0LEp1Lm5leHRFZmZlY3Q9bnVsbCxKdT10O2lmKDA9PT0odD1lLmZpcnN0UGVuZGluZ1RpbWUpJiYodHM9bnVsbCksMTA3Mzc0MTgyMz09PXQ/ZT09PXVzP2FzKys6KGFzPTAsdXM9ZSk6YXM9MCwiZnVuY3Rpb24iPT10eXBlb2YgTHMmJkxzKG4uc3RhdGVOb2RlLHIpLGhzKGUpLFp1KXRocm93IFp1PSExLGU9ZXMsZXM9bnVsbCxlO3JldHVybih6dSZBdSkhPT1QdXx8Sm8oKSxudWxsfWZ1bmN0aW9uIGpzKCl7Zm9yKDtudWxsIT09SnU7KXt2YXIgZT1KdS5lZmZlY3RUYWc7MCE9KDI1NiZlKSYmY3UoSnUuYWx0ZXJuYXRlLEp1KSwwPT0oNTEyJmUpfHxuc3x8KG5zPSEwLEtvKDk3LChmdW5jdGlvbigpe3JldHVybiBScygpLG51bGx9KSkpLEp1PUp1Lm5leHRFZmZlY3R9fWZ1bmN0aW9uIFJzKCl7aWYoOTAhPT1vcyl7dmFyIGU9OTc8b3M/OTc6b3M7cmV0dXJuIG9zPTkwLFlvKGUsTXMpfX1mdW5jdGlvbiBNcygpe2lmKG51bGw9PT1ycylyZXR1cm4hMTt2YXIgZT1ycztpZihycz1udWxsLCh6dSYoanV8UnUpKSE9PVB1KXRocm93IEVycm9yKGEoMzMxKSk7dmFyIHQ9enU7Zm9yKHp1fD1SdSxlPWUuY3VycmVudC5maXJzdEVmZmVjdDtudWxsIT09ZTspe3RyeXt2YXIgbj1lO2lmKDAhPSg1MTImbi5lZmZlY3RUYWcpKXN3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyOmx1KDUsbiksZnUoNSxuKX19Y2F0Y2godCl7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzMzApKTtJcyhlLHQpfW49ZS5uZXh0RWZmZWN0LGUubmV4dEVmZmVjdD1udWxsLGU9bn1yZXR1cm4genU9dCxKbygpLCEwfWZ1bmN0aW9uIE5zKGUsdCxuKXt5aShlLHQ9a3UoZSx0PWl1KG4sdCksMTA3Mzc0MTgyMykpLG51bGwhPT0oZT1wcyhlLDEwNzM3NDE4MjMpKSYmaHMoZSl9ZnVuY3Rpb24gSXMoZSx0KXtpZigzPT09ZS50YWcpTnMoZSxlLHQpO2Vsc2UgZm9yKHZhciBuPWUucmV0dXJuO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXtOcyhuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dHN8fCF0cy5oYXMocikpKXt5aShuLGU9U3UobixlPWl1KHQsZSksMTA3Mzc0MTgyMykpLG51bGwhPT0obj1wcyhuLDEwNzM3NDE4MjMpKSYmaHMobik7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIEZzKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUodCksVXU9PT1lJiZXdT09PW4/SHU9PT1EdXx8SHU9PT1GdSYmMTA3Mzc0MTgyMz09PVZ1JiZxbygpLUt1PFh1P19zKGUsV3UpOll1PSEwOllzKGUsbikmJigwIT09KHQ9ZS5sYXN0UGluZ2VkVGltZSkmJnQ8bnx8KGUubGFzdFBpbmdlZFRpbWU9bixocyhlKSkpfWZ1bmN0aW9uIERzKGUsdCl7dmFyIG49ZS5zdGF0ZU5vZGU7bnVsbCE9PW4mJm4uZGVsZXRlKHQpLDA9PT0odD0wKSYmKHQ9bHModD1jcygpLGUsbnVsbCkpLG51bGwhPT0oZT1wcyhlLHQpKSYmaHMoZSl9RXU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuZXhwaXJhdGlvblRpbWU7aWYobnVsbCE9PWUpe3ZhciBvPXQucGVuZGluZ1Byb3BzO2lmKGUubWVtb2l6ZWRQcm9wcyE9PW98fF9vLmN1cnJlbnQpRmE9ITA7ZWxzZXtpZihyPG4pe3N3aXRjaChGYT0hMSx0LnRhZyl7Y2FzZSAzOlZhKHQpLE5hKCk7YnJlYWs7Y2FzZSA1OmlmKFVpKHQpLDQmdC5tb2RlJiYxIT09biYmby5oaWRkZW4pcmV0dXJuIHQuZXhwaXJhdGlvblRpbWU9dC5jaGlsZEV4cGlyYXRpb25UaW1lPTEsbnVsbDticmVhaztjYXNlIDE6eG8odC50eXBlKSYmVG8odCk7YnJlYWs7Y2FzZSA0OkxpKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyPXQubWVtb2l6ZWRQcm9wcy52YWx1ZSxvPXQudHlwZS5fY29udGV4dCx2byhuaSxvLl9jdXJyZW50VmFsdWUpLG8uX2N1cnJlbnRWYWx1ZT1yO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gMCE9PShyPXQuY2hpbGQuY2hpbGRFeHBpcmF0aW9uVGltZSkmJnI+PW4/WGEoZSx0LG4pOih2byhXaSwxJldpLmN1cnJlbnQpLG51bGwhPT0odD10dShlLHQsbikpP3Quc2libGluZzpudWxsKTt2byhXaSwxJldpLmN1cnJlbnQpO2JyZWFrO2Nhc2UgMTk6aWYocj10LmNoaWxkRXhwaXJhdGlvblRpbWU+PW4sMCE9KDY0JmUuZWZmZWN0VGFnKSl7aWYocilyZXR1cm4gZXUoZSx0LG4pO3QuZWZmZWN0VGFnfD02NH1pZihudWxsIT09KG89dC5tZW1vaXplZFN0YXRlKSYmKG8ucmVuZGVyaW5nPW51bGwsby50YWlsPW51bGwpLHZvKFdpLFdpLmN1cnJlbnQpLCFyKXJldHVybiBudWxsfXJldHVybiB0dShlLHQsbil9RmE9ITF9fWVsc2UgRmE9ITE7c3dpdGNoKHQuZXhwaXJhdGlvblRpbWU9MCx0LnRhZyl7Y2FzZSAyOmlmKHI9dC50eXBlLG51bGwhPT1lJiYoZS5hbHRlcm5hdGU9bnVsbCx0LmFsdGVybmF0ZT1udWxsLHQuZWZmZWN0VGFnfD0yKSxlPXQucGVuZGluZ1Byb3BzLG89d28odCxnby5jdXJyZW50KSxjaSh0LG4pLG89ZWEobnVsbCx0LHIsZSxvLG4pLHQuZWZmZWN0VGFnfD0xLCJvYmplY3QiPT10eXBlb2YgbyYmbnVsbCE9PW8mJiJmdW5jdGlvbiI9PXR5cGVvZiBvLnJlbmRlciYmdm9pZCAwPT09by4kJHR5cGVvZil7aWYodC50YWc9MSx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnVwZGF0ZVF1ZXVlPW51bGwseG8ocikpe3ZhciBpPSEwO1RvKHQpfWVsc2UgaT0hMTt0Lm1lbW9pemVkU3RhdGU9bnVsbCE9PW8uc3RhdGUmJnZvaWQgMCE9PW8uc3RhdGU/by5zdGF0ZTpudWxsLHBpKHQpO3ZhciB1PXIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyJmdW5jdGlvbiI9PXR5cGVvZiB1JiZ3aSh0LHIsdSxlKSxvLnVwZGF0ZXI9eGksdC5zdGF0ZU5vZGU9byxvLl9yZWFjdEludGVybmFsRmliZXI9dCxUaSh0LHIsZSxuKSx0PSRhKG51bGwsdCxyLCEwLGksbil9ZWxzZSB0LnRhZz0wLERhKG51bGwsdCxvLG4pLHQ9dC5jaGlsZDtyZXR1cm4gdDtjYXNlIDE2OmU6e2lmKG89dC5lbGVtZW50VHlwZSxudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsdC5hbHRlcm5hdGU9bnVsbCx0LmVmZmVjdFRhZ3w9MiksZT10LnBlbmRpbmdQcm9wcyxmdW5jdGlvbihlKXtpZigtMT09PWUuX3N0YXR1cyl7ZS5fc3RhdHVzPTA7dmFyIHQ9ZS5fY3Rvcjt0PXQoKSxlLl9yZXN1bHQ9dCx0LnRoZW4oKGZ1bmN0aW9uKHQpezA9PT1lLl9zdGF0dXMmJih0PXQuZGVmYXVsdCxlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9dCl9KSwoZnVuY3Rpb24odCl7MD09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pKX19KG8pLDEhPT1vLl9zdGF0dXMpdGhyb3cgby5fcmVzdWx0O3N3aXRjaChvPW8uX3Jlc3VsdCx0LnR5cGU9byxpPXQudGFnPWZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXJldHVybiBXcyhlKT8xOjA7aWYobnVsbCE9ZSl7aWYoKGU9ZS4kJHR5cGVvZik9PT1zZSlyZXR1cm4gMTE7aWYoZT09PWZlKXJldHVybiAxNH1yZXR1cm4gMn0obyksZT10aShvLGUpLGkpe2Nhc2UgMDp0PVdhKG51bGwsdCxvLGUsbik7YnJlYWsgZTtjYXNlIDE6dD1IYShudWxsLHQsbyxlLG4pO2JyZWFrIGU7Y2FzZSAxMTp0PUxhKG51bGwsdCxvLGUsbik7YnJlYWsgZTtjYXNlIDE0OnQ9emEobnVsbCx0LG8sdGkoby50eXBlLGUpLHIsbik7YnJlYWsgZX10aHJvdyBFcnJvcihhKDMwNixvLCIiKSl9cmV0dXJuIHQ7Y2FzZSAwOnJldHVybiByPXQudHlwZSxvPXQucGVuZGluZ1Byb3BzLFdhKGUsdCxyLG89dC5lbGVtZW50VHlwZT09PXI/bzp0aShyLG8pLG4pO2Nhc2UgMTpyZXR1cm4gcj10LnR5cGUsbz10LnBlbmRpbmdQcm9wcyxIYShlLHQscixvPXQuZWxlbWVudFR5cGU9PT1yP286dGkocixvKSxuKTtjYXNlIDM6aWYoVmEodCkscj10LnVwZGF0ZVF1ZXVlLG51bGw9PT1lfHxudWxsPT09cil0aHJvdyBFcnJvcihhKDI4MikpO2lmKHI9dC5wZW5kaW5nUHJvcHMsbz1udWxsIT09KG89dC5tZW1vaXplZFN0YXRlKT9vLmVsZW1lbnQ6bnVsbCxkaShlLHQpLG1pKHQscixudWxsLG4pLChyPXQubWVtb2l6ZWRTdGF0ZS5lbGVtZW50KT09PW8pTmEoKSx0PXR1KGUsdCxuKTtlbHNle2lmKChvPXQuc3RhdGVOb2RlLmh5ZHJhdGUpJiYoQ2E9Q24odC5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSxUYT10LG89T2E9ITApLG8pZm9yKG49UmkodCxudWxsLHIsbiksdC5jaGlsZD1uO247KW4uZWZmZWN0VGFnPS0zJm4uZWZmZWN0VGFnfDEwMjQsbj1uLnNpYmxpbmc7ZWxzZSBEYShlLHQscixuKSxOYSgpO3Q9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDU6cmV0dXJuIFVpKHQpLG51bGw9PT1lJiZqYSh0KSxyPXQudHlwZSxvPXQucGVuZGluZ1Byb3BzLGk9bnVsbCE9PWU/ZS5tZW1vaXplZFByb3BzOm51bGwsdT1vLmNoaWxkcmVuLFNuKHIsbyk/dT1udWxsOm51bGwhPT1pJiZTbihyLGkpJiYodC5lZmZlY3RUYWd8PTE2KSxCYShlLHQpLDQmdC5tb2RlJiYxIT09biYmby5oaWRkZW4/KHQuZXhwaXJhdGlvblRpbWU9dC5jaGlsZEV4cGlyYXRpb25UaW1lPTEsdD1udWxsKTooRGEoZSx0LHUsbiksdD10LmNoaWxkKSx0O2Nhc2UgNjpyZXR1cm4gbnVsbD09PWUmJmphKHQpLG51bGw7Y2FzZSAxMzpyZXR1cm4gWGEoZSx0LG4pO2Nhc2UgNDpyZXR1cm4gTGkodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxyPXQucGVuZGluZ1Byb3BzLG51bGw9PT1lP3QuY2hpbGQ9amkodCxudWxsLHIsbik6RGEoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDExOnJldHVybiByPXQudHlwZSxvPXQucGVuZGluZ1Byb3BzLExhKGUsdCxyLG89dC5lbGVtZW50VHlwZT09PXI/bzp0aShyLG8pLG4pO2Nhc2UgNzpyZXR1cm4gRGEoZSx0LHQucGVuZGluZ1Byb3BzLG4pLHQuY2hpbGQ7Y2FzZSA4OmNhc2UgMTI6cmV0dXJuIERhKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMTA6ZTp7cj10LnR5cGUuX2NvbnRleHQsbz10LnBlbmRpbmdQcm9wcyx1PXQubWVtb2l6ZWRQcm9wcyxpPW8udmFsdWU7dmFyIHM9dC50eXBlLl9jb250ZXh0O2lmKHZvKG5pLHMuX2N1cnJlbnRWYWx1ZSkscy5fY3VycmVudFZhbHVlPWksbnVsbCE9PXUpaWYocz11LnZhbHVlLDA9PT0oaT1IcihzLGkpPzA6MHwoImZ1bmN0aW9uIj09dHlwZW9mIHIuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzP3IuX2NhbGN1bGF0ZUNoYW5nZWRCaXRzKHMsaSk6MTA3Mzc0MTgyMykpKXtpZih1LmNoaWxkcmVuPT09by5jaGlsZHJlbiYmIV9vLmN1cnJlbnQpe3Q9dHUoZSx0LG4pO2JyZWFrIGV9fWVsc2UgZm9yKG51bGwhPT0ocz10LmNoaWxkKSYmKHMucmV0dXJuPXQpO251bGwhPT1zOyl7dmFyIGM9cy5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWMpe3U9cy5jaGlsZDtmb3IodmFyIGw9Yy5maXJzdENvbnRleHQ7bnVsbCE9PWw7KXtpZihsLmNvbnRleHQ9PT1yJiYwIT0obC5vYnNlcnZlZEJpdHMmaSkpezE9PT1zLnRhZyYmKChsPWhpKG4sbnVsbCkpLnRhZz0yLHlpKHMsbCkpLHMuZXhwaXJhdGlvblRpbWU8biYmKHMuZXhwaXJhdGlvblRpbWU9biksbnVsbCE9PShsPXMuYWx0ZXJuYXRlKSYmbC5leHBpcmF0aW9uVGltZTxuJiYobC5leHBpcmF0aW9uVGltZT1uKSxzaShzLnJldHVybixuKSxjLmV4cGlyYXRpb25UaW1lPG4mJihjLmV4cGlyYXRpb25UaW1lPW4pO2JyZWFrfWw9bC5uZXh0fX1lbHNlIHU9MTA9PT1zLnRhZyYmcy50eXBlPT09dC50eXBlP251bGw6cy5jaGlsZDtpZihudWxsIT09dSl1LnJldHVybj1zO2Vsc2UgZm9yKHU9cztudWxsIT09dTspe2lmKHU9PT10KXt1PW51bGw7YnJlYWt9aWYobnVsbCE9PShzPXUuc2libGluZykpe3MucmV0dXJuPXUucmV0dXJuLHU9czticmVha311PXUucmV0dXJufXM9dX1EYShlLHQsby5jaGlsZHJlbixuKSx0PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSA5OnJldHVybiBvPXQudHlwZSxyPShpPXQucGVuZGluZ1Byb3BzKS5jaGlsZHJlbixjaSh0LG4pLHI9cihvPWxpKG8saS51bnN0YWJsZV9vYnNlcnZlZEJpdHMpKSx0LmVmZmVjdFRhZ3w9MSxEYShlLHQscixuKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGk9dGkobz10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLHphKGUsdCxvLGk9dGkoby50eXBlLGkpLHIsbik7Y2FzZSAxNTpyZXR1cm4gVWEoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxyLG4pO2Nhc2UgMTc6cmV0dXJuIHI9dC50eXBlLG89dC5wZW5kaW5nUHJvcHMsbz10LmVsZW1lbnRUeXBlPT09cj9vOnRpKHIsbyksbnVsbCE9PWUmJihlLmFsdGVybmF0ZT1udWxsLHQuYWx0ZXJuYXRlPW51bGwsdC5lZmZlY3RUYWd8PTIpLHQudGFnPTEseG8ocik/KGU9ITAsVG8odCkpOmU9ITEsY2kodCxuKSxTaSh0LHIsbyksVGkodCxyLG8sbiksJGEobnVsbCx0LHIsITAsZSxuKTtjYXNlIDE5OnJldHVybiBldShlLHQsbil9dGhyb3cgRXJyb3IoYSgxNTYsdC50YWcpKX07dmFyIExzPW51bGwsenM9bnVsbDtmdW5jdGlvbiBVcyhlLHQsbixyKXt0aGlzLnRhZz1lLHRoaXMua2V5PW4sdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz10LHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1yLHRoaXMuZWZmZWN0VGFnPTAsdGhpcy5sYXN0RWZmZWN0PXRoaXMuZmlyc3RFZmZlY3Q9dGhpcy5uZXh0RWZmZWN0PW51bGwsdGhpcy5jaGlsZEV4cGlyYXRpb25UaW1lPXRoaXMuZXhwaXJhdGlvblRpbWU9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEJzKGUsdCxuLHIpe3JldHVybiBuZXcgVXMoZSx0LG4scil9ZnVuY3Rpb24gV3MoZSl7cmV0dXJuISghKGU9ZS5wcm90b3R5cGUpfHwhZS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBIcyhlLHQpe3ZhciBuPWUuYWx0ZXJuYXRlO3JldHVybiBudWxsPT09bj8oKG49QnMoZS50YWcsdCxlLmtleSxlLm1vZGUpKS5lbGVtZW50VHlwZT1lLmVsZW1lbnRUeXBlLG4udHlwZT1lLnR5cGUsbi5zdGF0ZU5vZGU9ZS5zdGF0ZU5vZGUsbi5hbHRlcm5hdGU9ZSxlLmFsdGVybmF0ZT1uKToobi5wZW5kaW5nUHJvcHM9dCxuLmVmZmVjdFRhZz0wLG4ubmV4dEVmZmVjdD1udWxsLG4uZmlyc3RFZmZlY3Q9bnVsbCxuLmxhc3RFZmZlY3Q9bnVsbCksbi5jaGlsZEV4cGlyYXRpb25UaW1lPWUuY2hpbGRFeHBpcmF0aW9uVGltZSxuLmV4cGlyYXRpb25UaW1lPWUuZXhwaXJhdGlvblRpbWUsbi5jaGlsZD1lLmNoaWxkLG4ubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsbi5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdD1lLmRlcGVuZGVuY2llcyxuLmRlcGVuZGVuY2llcz1udWxsPT09dD9udWxsOntleHBpcmF0aW9uVGltZTp0LmV4cGlyYXRpb25UaW1lLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dCxyZXNwb25kZXJzOnQucmVzcG9uZGVyc30sbi5zaWJsaW5nPWUuc2libGluZyxuLmluZGV4PWUuaW5kZXgsbi5yZWY9ZS5yZWYsbn1mdW5jdGlvbiAkcyhlLHQsbixyLG8saSl7dmFyIHU9MjtpZihyPWUsImZ1bmN0aW9uIj09dHlwZW9mIGUpV3MoZSkmJih1PTEpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXU9NTtlbHNlIGU6c3dpdGNoKGUpe2Nhc2UgbmU6cmV0dXJuIFZzKG4uY2hpbGRyZW4sbyxpLHQpO2Nhc2UgdWU6dT04LG98PTc7YnJlYWs7Y2FzZSByZTp1PTgsb3w9MTticmVhaztjYXNlIG9lOnJldHVybihlPUJzKDEyLG4sdCw4fG8pKS5lbGVtZW50VHlwZT1vZSxlLnR5cGU9b2UsZS5leHBpcmF0aW9uVGltZT1pLGU7Y2FzZSBjZTpyZXR1cm4oZT1CcygxMyxuLHQsbykpLnR5cGU9Y2UsZS5lbGVtZW50VHlwZT1jZSxlLmV4cGlyYXRpb25UaW1lPWksZTtjYXNlIGxlOnJldHVybihlPUJzKDE5LG4sdCxvKSkuZWxlbWVudFR5cGU9bGUsZS5leHBpcmF0aW9uVGltZT1pLGU7ZGVmYXVsdDppZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIGllOnU9MTA7YnJlYWsgZTtjYXNlIGFlOnU9OTticmVhayBlO2Nhc2Ugc2U6dT0xMTticmVhayBlO2Nhc2UgZmU6dT0xNDticmVhayBlO2Nhc2UgcGU6dT0xNixyPW51bGw7YnJlYWsgZTtjYXNlIGRlOnU9MjI7YnJlYWsgZX10aHJvdyBFcnJvcihhKDEzMCxudWxsPT1lP2U6dHlwZW9mIGUsIiIpKX1yZXR1cm4odD1Ccyh1LG4sdCxvKSkuZWxlbWVudFR5cGU9ZSx0LnR5cGU9cix0LmV4cGlyYXRpb25UaW1lPWksdH1mdW5jdGlvbiBWcyhlLHQsbixyKXtyZXR1cm4oZT1Ccyg3LGUscix0KSkuZXhwaXJhdGlvblRpbWU9bixlfWZ1bmN0aW9uIHFzKGUsdCxuKXtyZXR1cm4oZT1Ccyg2LGUsbnVsbCx0KSkuZXhwaXJhdGlvblRpbWU9bixlfWZ1bmN0aW9uIEdzKGUsdCxuKXtyZXR1cm4odD1Ccyg0LG51bGwhPT1lLmNoaWxkcmVuP2UuY2hpbGRyZW46W10sZS5rZXksdCkpLmV4cGlyYXRpb25UaW1lPW4sdC5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86ZS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmUuaW1wbGVtZW50YXRpb259LHR9ZnVuY3Rpb24gUXMoZSx0LG4pe3RoaXMudGFnPXQsdGhpcy5jdXJyZW50PW51bGwsdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5waW5nQ2FjaGU9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MCx0aGlzLmZpbmlzaGVkV29yaz1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsLHRoaXMuaHlkcmF0ZT1uLHRoaXMuY2FsbGJhY2tOb2RlPW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTkwLHRoaXMubGFzdEV4cGlyZWRUaW1lPXRoaXMubGFzdFBpbmdlZFRpbWU9dGhpcy5uZXh0S25vd25QZW5kaW5nTGV2ZWw9dGhpcy5sYXN0U3VzcGVuZGVkVGltZT10aGlzLmZpcnN0U3VzcGVuZGVkVGltZT10aGlzLmZpcnN0UGVuZGluZ1RpbWU9MH1mdW5jdGlvbiBZcyhlLHQpe3ZhciBuPWUuZmlyc3RTdXNwZW5kZWRUaW1lO3JldHVybiBlPWUubGFzdFN1c3BlbmRlZFRpbWUsMCE9PW4mJm4+PXQmJmU8PXR9ZnVuY3Rpb24gS3MoZSx0KXt2YXIgbj1lLmZpcnN0U3VzcGVuZGVkVGltZSxyPWUubGFzdFN1c3BlbmRlZFRpbWU7bjx0JiYoZS5maXJzdFN1c3BlbmRlZFRpbWU9dCksKHI+dHx8MD09PW4pJiYoZS5sYXN0U3VzcGVuZGVkVGltZT10KSx0PD1lLmxhc3RQaW5nZWRUaW1lJiYoZS5sYXN0UGluZ2VkVGltZT0wKSx0PD1lLmxhc3RFeHBpcmVkVGltZSYmKGUubGFzdEV4cGlyZWRUaW1lPTApfWZ1bmN0aW9uIFhzKGUsdCl7dD5lLmZpcnN0UGVuZGluZ1RpbWUmJihlLmZpcnN0UGVuZGluZ1RpbWU9dCk7dmFyIG49ZS5maXJzdFN1c3BlbmRlZFRpbWU7MCE9PW4mJih0Pj1uP2UuZmlyc3RTdXNwZW5kZWRUaW1lPWUubGFzdFN1c3BlbmRlZFRpbWU9ZS5uZXh0S25vd25QZW5kaW5nTGV2ZWw9MDp0Pj1lLmxhc3RTdXNwZW5kZWRUaW1lJiYoZS5sYXN0U3VzcGVuZGVkVGltZT10KzEpLHQ+ZS5uZXh0S25vd25QZW5kaW5nTGV2ZWwmJihlLm5leHRLbm93blBlbmRpbmdMZXZlbD10KSl9ZnVuY3Rpb24gSnMoZSx0KXt2YXIgbj1lLmxhc3RFeHBpcmVkVGltZTsoMD09PW58fG4+dCkmJihlLmxhc3RFeHBpcmVkVGltZT10KX1mdW5jdGlvbiBacyhlLHQsbixyKXt2YXIgbz10LmN1cnJlbnQsaT1jcygpLHU9X2kuc3VzcGVuc2U7aT1scyhpLG8sdSk7ZTppZihuKXt0OntpZihldChuPW4uX3JlYWN0SW50ZXJuYWxGaWJlcikhPT1ufHwxIT09bi50YWcpdGhyb3cgRXJyb3IoYSgxNzApKTt2YXIgcz1uO2Rve3N3aXRjaChzLnRhZyl7Y2FzZSAzOnM9cy5zdGF0ZU5vZGUuY29udGV4dDticmVhayB0O2Nhc2UgMTppZih4byhzLnR5cGUpKXtzPXMuc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIHR9fXM9cy5yZXR1cm59d2hpbGUobnVsbCE9PXMpO3Rocm93IEVycm9yKGEoMTcxKSl9aWYoMT09PW4udGFnKXt2YXIgYz1uLnR5cGU7aWYoeG8oYykpe249RW8obixjLHMpO2JyZWFrIGV9fW49c31lbHNlIG49bW87cmV0dXJuIG51bGw9PT10LmNvbnRleHQ/dC5jb250ZXh0PW46dC5wZW5kaW5nQ29udGV4dD1uLCh0PWhpKGksdSkpLnBheWxvYWQ9e2VsZW1lbnQ6ZX0sbnVsbCE9PShyPXZvaWQgMD09PXI/bnVsbDpyKSYmKHQuY2FsbGJhY2s9cikseWkobyx0KSxmcyhvLGkpLGl9ZnVuY3Rpb24gZWMoZSl7cmV0dXJuKGU9ZS5jdXJyZW50KS5jaGlsZD8oZS5jaGlsZC50YWcsZS5jaGlsZC5zdGF0ZU5vZGUpOm51bGx9ZnVuY3Rpb24gdGMoZSx0KXtudWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCYmZS5yZXRyeVRpbWU8dCYmKGUucmV0cnlUaW1lPXQpfWZ1bmN0aW9uIG5jKGUsdCl7dGMoZSx0KSwoZT1lLmFsdGVybmF0ZSkmJnRjKGUsdCl9ZnVuY3Rpb24gcmMoZSx0LG4pe3ZhciByPW5ldyBRcyhlLHQsbj1udWxsIT1uJiYhMD09PW4uaHlkcmF0ZSksbz1CcygzLG51bGwsbnVsbCwyPT09dD83OjE9PT10PzM6MCk7ci5jdXJyZW50PW8sby5zdGF0ZU5vZGU9cixwaShvKSxlW1JuXT1yLmN1cnJlbnQsbiYmMCE9PXQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49WmUodCk7Q3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7eXQoZSx0LG4pfSkpLE90LmZvckVhY2goKGZ1bmN0aW9uKGUpe3l0KGUsdCxuKX0pKX0oMCw5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudCksdGhpcy5faW50ZXJuYWxSb290PXJ9ZnVuY3Rpb24gb2MoZSl7cmV0dXJuISghZXx8MSE9PWUubm9kZVR5cGUmJjkhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGUmJig4IT09ZS5ub2RlVHlwZXx8IiByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSAiIT09ZS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBpYyhlLHQsbixyLG8pe3ZhciBpPW4uX3JlYWN0Um9vdENvbnRhaW5lcjtpZihpKXt2YXIgYT1pLl9pbnRlcm5hbFJvb3Q7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG8pe3ZhciB1PW87bz1mdW5jdGlvbigpe3ZhciBlPWVjKGEpO3UuY2FsbChlKX19WnModCxhLGUsbyl9ZWxzZXtpZihpPW4uX3JlYWN0Um9vdENvbnRhaW5lcj1mdW5jdGlvbihlLHQpe2lmKHR8fCh0PSEoISh0PWU/OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZS5maXJzdENoaWxkOm51bGwpfHwxIT09dC5ub2RlVHlwZXx8IXQuaGFzQXR0cmlidXRlKCJkYXRhLXJlYWN0cm9vdCIpKSksIXQpZm9yKHZhciBuO249ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQobik7cmV0dXJuIG5ldyByYyhlLDAsdD97aHlkcmF0ZTohMH06dm9pZCAwKX0obixyKSxhPWkuX2ludGVybmFsUm9vdCwiZnVuY3Rpb24iPT10eXBlb2Ygbyl7dmFyIHM9bztvPWZ1bmN0aW9uKCl7dmFyIGU9ZWMoYSk7cy5jYWxsKGUpfX1ncygoZnVuY3Rpb24oKXtacyh0LGEsZSxvKX0pKX1yZXR1cm4gZWMoYSl9ZnVuY3Rpb24gYWMoZSx0KXt2YXIgbj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighb2ModCkpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjp0ZSxrZXk6bnVsbD09cj9udWxsOiIiK3IsY2hpbGRyZW46ZSxjb250YWluZXJJbmZvOnQsaW1wbGVtZW50YXRpb246bn19KGUsdCxudWxsLG4pfXJjLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oZSl7WnMoZSx0aGlzLl9pbnRlcm5hbFJvb3QsbnVsbCxudWxsKX0scmMucHJvdG90eXBlLnVubW91bnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pbnRlcm5hbFJvb3QsdD1lLmNvbnRhaW5lckluZm87WnMobnVsbCxlLG51bGwsKGZ1bmN0aW9uKCl7dFtSbl09bnVsbH0pKX0sdnQ9ZnVuY3Rpb24oZSl7aWYoMTM9PT1lLnRhZyl7dmFyIHQ9ZWkoY3MoKSwxNTAsMTAwKTtmcyhlLHQpLG5jKGUsdCl9fSxtdD1mdW5jdGlvbihlKXsxMz09PWUudGFnJiYoZnMoZSwzKSxuYyhlLDMpKX0sZ3Q9ZnVuY3Rpb24oZSl7aWYoMTM9PT1lLnRhZyl7dmFyIHQ9Y3MoKTtmcyhlLHQ9bHModCxlLG51bGwpKSxuYyhlLHQpfX0sTz1mdW5jdGlvbihlLHQsbil7c3dpdGNoKHQpe2Nhc2UiaW5wdXQiOmlmKEVlKGUsbiksdD1uLm5hbWUsInJhZGlvIj09PW4udHlwZSYmbnVsbCE9dCl7Zm9yKG49ZTtuLnBhcmVudE5vZGU7KW49bi5wYXJlbnROb2RlO2ZvcihuPW4ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK3QpKyddW3R5cGU9InJhZGlvIl0nKSx0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIG89Rm4ocik7aWYoIW8pdGhyb3cgRXJyb3IoYSg5MCkpO3dlKHIpLEVlKHIsbyl9fX1icmVhaztjYXNlInRleHRhcmVhIjpSZShlLG4pO2JyZWFrO2Nhc2Uic2VsZWN0IjpudWxsIT0odD1uLnZhbHVlKSYmUGUoZSwhIW4ubXVsdGlwbGUsdCwhMSl9fSxOPW1zLEk9ZnVuY3Rpb24oZSx0LG4scixvKXt2YXIgaT16dTt6dXw9NDt0cnl7cmV0dXJuIFlvKDk4LGUuYmluZChudWxsLHQsbixyLG8pKX1maW5hbGx5eyh6dT1pKT09PVB1JiZKbygpfX0sRj1mdW5jdGlvbigpeyh6dSYoMXxqdXxSdSkpPT09UHUmJihmdW5jdGlvbigpe2lmKG51bGwhPT1pcyl7dmFyIGU9aXM7aXM9bnVsbCxlLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7SnModCxlKSxocyh0KX0pKSxKbygpfX0oKSxScygpKX0sRD1mdW5jdGlvbihlLHQpe3ZhciBuPXp1O3p1fD0yO3RyeXtyZXR1cm4gZSh0KX1maW5hbGx5eyh6dT1uKT09PVB1JiZKbygpfX07dmFyIHVjPXtFdmVudHM6W05uLEluLEZuLFQsayxIbixmdW5jdGlvbihlKXtpdChlLFduKX0sUixNLEp0LHN0LFJzLHtjdXJyZW50OiExfV19OyFmdW5jdGlvbihlKXt2YXIgdD1lLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOyhmdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXylyZXR1cm4hMTt2YXIgdD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYodC5pc0Rpc2FibGVkfHwhdC5zdXBwb3J0c0ZpYmVyKXJldHVybiEwO3RyeXt2YXIgbj10LmluamVjdChlKTtMcz1mdW5jdGlvbihlKXt0cnl7dC5vbkNvbW1pdEZpYmVyUm9vdChuLGUsdm9pZCAwLDY0PT0oNjQmZS5jdXJyZW50LmVmZmVjdFRhZykpfWNhdGNoKGUpe319LHpzPWZ1bmN0aW9uKGUpe3RyeXt0Lm9uQ29tbWl0RmliZXJVbm1vdW50KG4sZSl9Y2F0Y2goZSl7fX19Y2F0Y2goZSl7fX0pKG8oe30sZSx7b3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpLLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsZmluZEhvc3RJbnN0YW5jZUJ5RmliZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT0oZT1ydChlKSk/bnVsbDplLnN0YXRlTm9kZX0sZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHQ/dChlKTpudWxsfSxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsfSkpfSh7ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6TW4sYnVuZGxlVHlwZTowLHZlcnNpb246IjE2LjEzLjEiLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSJ9KSx0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXVjLHQuY3JlYXRlUG9ydGFsPWFjLHQuZmluZERPTU5vZGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtpZigxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZTt2YXIgdD1lLl9yZWFjdEludGVybmFsRmliZXI7aWYodm9pZCAwPT09dCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUucmVuZGVyKXRocm93IEVycm9yKGEoMTg4KSk7dGhyb3cgRXJyb3IoYSgyNjgsT2JqZWN0LmtleXMoZSkpKX1yZXR1cm4gZT1udWxsPT09KGU9cnQodCkpP251bGw6ZS5zdGF0ZU5vZGV9LHQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUsdCl7aWYoKHp1JihqdXxSdSkpIT09UHUpdGhyb3cgRXJyb3IoYSgxODcpKTt2YXIgbj16dTt6dXw9MTt0cnl7cmV0dXJuIFlvKDk5LGUuYmluZChudWxsLHQpKX1maW5hbGx5e3p1PW4sSm8oKX19LHQuaHlkcmF0ZT1mdW5jdGlvbihlLHQsbil7aWYoIW9jKHQpKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIGljKG51bGwsZSx0LCEwLG4pfSx0LnJlbmRlcj1mdW5jdGlvbihlLHQsbil7aWYoIW9jKHQpKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIGljKG51bGwsZSx0LCExLG4pfSx0LnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oZSl7aWYoIW9jKGUpKXRocm93IEVycm9yKGEoNDApKTtyZXR1cm4hIWUuX3JlYWN0Um9vdENvbnRhaW5lciYmKGdzKChmdW5jdGlvbigpe2ljKG51bGwsbnVsbCxlLCExLChmdW5jdGlvbigpe2UuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLGVbUm5dPW51bGx9KSl9KSksITApfSx0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPW1zLHQudW5zdGFibGVfY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFjKGUsdCwyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCl9LHQudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oZSx0LG4scil7aWYoIW9jKG4pKXRocm93IEVycm9yKGEoMjAwKSk7aWYobnVsbD09ZXx8dm9pZCAwPT09ZS5fcmVhY3RJbnRlcm5hbEZpYmVyKXRocm93IEVycm9yKGEoMzgpKTtyZXR1cm4gaWMoZSx0LG4sITEscil9LHQudmVyc2lvbj0iMTYuMTMuMSJ9LDczOTM1OihlLHQsbik9PnsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGUoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz1uKDY0NDQ4KX0sMzUxMjA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PXQuUmVhY3RSZWR1eENvbnRleHQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKGUsdCl7aWYoIXQmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgbj1vKHQpO2lmKG4mJm4uaGFzKGUpKXJldHVybiBuLmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGEgaW4gZSlpZigiZGVmYXVsdCIhPT1hJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSl7dmFyIHU9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsYSk6bnVsbDt1JiYodS5nZXR8fHUuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHUpOnJbYV09ZVthXX1yLmRlZmF1bHQ9ZSxuJiZuLnNldChlLHIpO3JldHVybiByfShuKDY3Mjk0KSk7ZnVuY3Rpb24gbyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgdD1uZXcgV2Vha01hcCxuPW5ldyBXZWFrTWFwO3JldHVybihvPWZ1bmN0aW9uKGUpe3JldHVybiBlP246dH0pKGUpfWNvbnN0IGk9U3ltYm9sLmZvcigicmVhY3QtcmVkdXgtY29udGV4dCIpLGE9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6e307ZnVuY3Rpb24gdSgpe3ZhciBlO2lmKCFyLmNyZWF0ZUNvbnRleHQpcmV0dXJue307Y29uc3QgdD1udWxsIT0oZT1hW2ldKT9lOmFbaV09bmV3IE1hcDtsZXQgbj10LmdldChyLmNyZWF0ZUNvbnRleHQpO3JldHVybiBufHwobj1yLmNyZWF0ZUNvbnRleHQobnVsbCksdC5zZXQoci5jcmVhdGVDb250ZXh0LG4pKSxufWNvbnN0IHM9dSgpO3QuUmVhY3RSZWR1eENvbnRleHQ9czt2YXIgYz1zO3QuZGVmYXVsdD1jfSw1NzQ1NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKGUsdCl7aWYoIXQmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgbj11KHQpO2lmKG4mJm4uaGFzKGUpKXJldHVybiBuLmdldChlKTt2YXIgcj17fSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGkgaW4gZSlpZigiZGVmYXVsdCIhPT1pJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSl7dmFyIGE9bz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsaSk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixpLGEpOnJbaV09ZVtpXX1yLmRlZmF1bHQ9ZSxuJiZuLnNldChlLHIpO3JldHVybiByfShuKDY3Mjk0KSksbz1uKDM1MTIwKSxpPW4oNzUxMCksYT1uKDM0MjUzKTtmdW5jdGlvbiB1KGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciB0PW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKHU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/bjp0fSkoZSl9dmFyIHM9ZnVuY3Rpb24oe3N0b3JlOmUsY29udGV4dDp0LGNoaWxkcmVuOm4sc2VydmVyU3RhdGU6dSxzdGFiaWxpdHlDaGVjazpzPSJvbmNlIixub29wQ2hlY2s6Yz0ib25jZSJ9KXtjb25zdCBsPXIudXNlTWVtbygoKCk9Pntjb25zdCB0PSgwLGkuY3JlYXRlU3Vic2NyaXB0aW9uKShlKTtyZXR1cm57c3RvcmU6ZSxzdWJzY3JpcHRpb246dCxnZXRTZXJ2ZXJTdGF0ZTp1PygpPT51OnZvaWQgMCxzdGFiaWxpdHlDaGVjazpzLG5vb3BDaGVjazpjfX0pLFtlLHUscyxjXSksZj1yLnVzZU1lbW8oKCgpPT5lLmdldFN0YXRlKCkpLFtlXSk7KDAsYS51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9Pntjb25zdHtzdWJzY3JpcHRpb246dH09bDtyZXR1cm4gdC5vblN0YXRlQ2hhbmdlPXQubm90aWZ5TmVzdGVkU3Vicyx0LnRyeVN1YnNjcmliZSgpLGYhPT1lLmdldFN0YXRlKCkmJnQubm90aWZ5TmVzdGVkU3VicygpLCgpPT57dC50cnlVbnN1YnNjcmliZSgpLHQub25TdGF0ZUNoYW5nZT12b2lkIDB9fSksW2wsZl0pO2NvbnN0IHA9dHx8by5SZWFjdFJlZHV4Q29udGV4dDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHAuUHJvdmlkZXIse3ZhbHVlOmx9LG4pfTt0LmRlZmF1bHQ9c30sMzk3OTQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQxNzc5KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PXQuaW5pdGlhbGl6ZUNvbm5lY3Q9dm9pZCAwO3ZhciBvPXIobig4MDk2MikpLGk9cihuKDI2OTQ0KSksYT1yKG4oODg0NDcpKSx1PWZ1bmN0aW9uKGUsdCl7aWYoIXQmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgbj1fKHQpO2lmKG4mJm4uaGFzKGUpKXJldHVybiBuLmdldChlKTt2YXIgcj17fSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGkgaW4gZSlpZigiZGVmYXVsdCIhPT1pJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSl7dmFyIGE9bz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsaSk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixpLGEpOnJbaV09ZVtpXX1yLmRlZmF1bHQ9ZSxuJiZuLnNldChlLHIpO3JldHVybiByfShuKDY3Mjk0KSkscz1uKDcyOTczKSxjPXIobig3Mzc2NCkpLGw9bigyMjMzMyksZj1uKDk2MTg4KSxwPW4oMTk0NDIpLGQ9big3NTEwKSxoPW4oMzQyNTMpLHk9cihuKDY4NzYxKSksdj0ocihuKDkzMDk5KSksbigzNTEyMCkpLG09big1MjMwNSk7Y29uc3QgZz1bInJlYWN0UmVkdXhGb3J3YXJkZWRSZWYiXTtmdW5jdGlvbiBfKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciB0PW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKF89ZnVuY3Rpb24oZSl7cmV0dXJuIGU/bjp0fSkoZSl9bGV0IGI9bS5ub3RJbml0aWFsaXplZDt0LmluaXRpYWxpemVDb25uZWN0PWU9PntiPWV9O2NvbnN0IHc9W251bGwsbnVsbF07ZnVuY3Rpb24geChlLHQsbixyLG8saSl7ZS5jdXJyZW50PXIsbi5jdXJyZW50PSExLG8uY3VycmVudCYmKG8uY3VycmVudD1udWxsLGkoKSl9ZnVuY3Rpb24gayhlLHQpe3JldHVybiBlPT09dH12YXIgUz1mdW5jdGlvbihlLHQsbix7cHVyZTpyLGFyZVN0YXRlc0VxdWFsOm09ayxhcmVPd25Qcm9wc0VxdWFsOl89eS5kZWZhdWx0LGFyZVN0YXRlUHJvcHNFcXVhbDpTPXkuZGVmYXVsdCxhcmVNZXJnZWRQcm9wc0VxdWFsOkU9eS5kZWZhdWx0LGZvcndhcmRSZWY6VD0hMSxjb250ZXh0OkM9di5SZWFjdFJlZHV4Q29udGV4dH09e30pe2NvbnN0IE89QyxQPSgwLGYubWFwU3RhdGVUb1Byb3BzRmFjdG9yeSkoZSksQT0oMCxsLm1hcERpc3BhdGNoVG9Qcm9wc0ZhY3RvcnkpKHQpLGo9KDAscC5tZXJnZVByb3BzRmFjdG9yeSkobiksUj1Cb29sZWFuKGUpO3JldHVybiBlPT57Y29uc3QgdD1lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCJDb21wb25lbnQiLG49YENvbm5lY3QoJHt0fSlgLHI9e3Nob3VsZEhhbmRsZVN0YXRlQ2hhbmdlczpSLGRpc3BsYXlOYW1lOm4sd3JhcHBlZENvbXBvbmVudE5hbWU6dCxXcmFwcGVkQ29tcG9uZW50OmUsaW5pdE1hcFN0YXRlVG9Qcm9wczpQLGluaXRNYXBEaXNwYXRjaFRvUHJvcHM6QSxpbml0TWVyZ2VQcm9wczpqLGFyZVN0YXRlc0VxdWFsOm0sYXJlU3RhdGVQcm9wc0VxdWFsOlMsYXJlT3duUHJvcHNFcXVhbDpfLGFyZU1lcmdlZFByb3BzRXF1YWw6RX07ZnVuY3Rpb24gbCh0KXtjb25zdFtuLGEsbF09dS51c2VNZW1vKCgoKT0+e2NvbnN0e3JlYWN0UmVkdXhGb3J3YXJkZWRSZWY6ZX09dCxuPSgwLGkuZGVmYXVsdCkodCxnKTtyZXR1cm5bdC5jb250ZXh0LGUsbl19KSxbdF0pLGY9dS51c2VNZW1vKCgoKT0+biYmbi5Db25zdW1lciYmKDAscy5pc0NvbnRleHRDb25zdW1lcikodS5jcmVhdGVFbGVtZW50KG4uQ29uc3VtZXIsbnVsbCkpP246TyksW24sT10pLHA9dS51c2VDb250ZXh0KGYpLHk9Qm9vbGVhbih0LnN0b3JlKSYmQm9vbGVhbih0LnN0b3JlLmdldFN0YXRlKSYmQm9vbGVhbih0LnN0b3JlLmRpc3BhdGNoKSx2PUJvb2xlYW4ocCkmJkJvb2xlYW4ocC5zdG9yZSk7Y29uc3QgbT15P3Quc3RvcmU6cC5zdG9yZSxfPXY/cC5nZXRTZXJ2ZXJTdGF0ZTptLmdldFN0YXRlLGs9dS51c2VNZW1vKCgoKT0+KDAsYy5kZWZhdWx0KShtLmRpc3BhdGNoLHIpKSxbbV0pLFtTLEVdPXUudXNlTWVtbygoKCk9PntpZighUilyZXR1cm4gdztjb25zdCBlPSgwLGQuY3JlYXRlU3Vic2NyaXB0aW9uKShtLHk/dm9pZCAwOnAuc3Vic2NyaXB0aW9uKSx0PWUubm90aWZ5TmVzdGVkU3Vicy5iaW5kKGUpO3JldHVybltlLHRdfSksW20seSxwXSksVD11LnVzZU1lbW8oKCgpPT55P3A6KDAsby5kZWZhdWx0KSh7fSxwLHtzdWJzY3JpcHRpb246U30pKSxbeSxwLFNdKSxDPXUudXNlUmVmKCksUD11LnVzZVJlZihsKSxBPXUudXNlUmVmKCksaj11LnVzZVJlZighMSksTT0odS51c2VSZWYoITEpLHUudXNlUmVmKCExKSksTj11LnVzZVJlZigpOygwLGgudXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCkoKCgpPT4oTS5jdXJyZW50PSEwLCgpPT57TS5jdXJyZW50PSExfSkpLFtdKTtjb25zdCBJPXUudXNlTWVtbygoKCk9PigpPT5BLmN1cnJlbnQmJmw9PT1QLmN1cnJlbnQ/QS5jdXJyZW50OmsobS5nZXRTdGF0ZSgpLGwpKSxbbSxsXSksRj11LnVzZU1lbW8oKCgpPT5lPT5TP2Z1bmN0aW9uKGUsdCxuLHIsbyxpLGEsdSxzLGMsbCl7aWYoIWUpcmV0dXJuKCk9Pnt9O2xldCBmPSExLHA9bnVsbDtjb25zdCBkPSgpPT57aWYoZnx8IXUuY3VycmVudClyZXR1cm47Y29uc3QgZT10LmdldFN0YXRlKCk7bGV0IG4sZDt0cnl7bj1yKGUsby5jdXJyZW50KX1jYXRjaChlKXtkPWUscD1lfWR8fChwPW51bGwpLG49PT1pLmN1cnJlbnQ/YS5jdXJyZW50fHxjKCk6KGkuY3VycmVudD1uLHMuY3VycmVudD1uLGEuY3VycmVudD0hMCxsKCkpfTtyZXR1cm4gbi5vblN0YXRlQ2hhbmdlPWQsbi50cnlTdWJzY3JpYmUoKSxkKCksKCk9PntpZihmPSEwLG4udHJ5VW5zdWJzY3JpYmUoKSxuLm9uU3RhdGVDaGFuZ2U9bnVsbCxwKXRocm93IHB9fShSLG0sUyxrLFAsQyxqLE0sQSxFLGUpOigpPT57fSksW1NdKTt2YXIgRCxMLHo7bGV0IFU7RD14LEw9W1AsQyxqLGwsQSxFXSwoMCxoLnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QpKCgoKT0+RCguLi5MKSkseik7dHJ5e1U9YihGLEksXz8oKT0+ayhfKCksbCk6SSl9Y2F0Y2goZSl7dGhyb3cgTi5jdXJyZW50JiYoZS5tZXNzYWdlKz1gXG5UaGUgZXJyb3IgbWF5IGJlIGNvcnJlbGF0ZWQgd2l0aCB0aGlzIHByZXZpb3VzIGVycm9yOlxuJHtOLmN1cnJlbnQuc3RhY2t9XG5cbmApLGV9KDAsaC51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KSgoKCk9PntOLmN1cnJlbnQ9dm9pZCAwLEEuY3VycmVudD12b2lkIDAsQy5jdXJyZW50PVV9KSk7Y29uc3QgQj11LnVzZU1lbW8oKCgpPT51LmNyZWF0ZUVsZW1lbnQoZSwoMCxvLmRlZmF1bHQpKHt9LFUse3JlZjphfSkpKSxbYSxlLFVdKTtyZXR1cm4gdS51c2VNZW1vKCgoKT0+Uj91LmNyZWF0ZUVsZW1lbnQoZi5Qcm92aWRlcix7dmFsdWU6VH0sQik6QiksW2YsQixUXSl9Y29uc3QgZj11Lm1lbW8obCk7aWYoZi5XcmFwcGVkQ29tcG9uZW50PWUsZi5kaXNwbGF5TmFtZT1sLmRpc3BsYXlOYW1lPW4sVCl7Y29uc3QgdD11LmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHUuY3JlYXRlRWxlbWVudChmLCgwLG8uZGVmYXVsdCkoe30sZSx7cmVhY3RSZWR1eEZvcndhcmRlZFJlZjp0fSkpfSkpO3JldHVybiB0LmRpc3BsYXlOYW1lPW4sdC5XcmFwcGVkQ29tcG9uZW50PWUsKDAsYS5kZWZhdWx0KSh0LGUpfXJldHVybigwLGEuZGVmYXVsdCkoZixlKX19O3QuZGVmYXVsdD1TfSw2MzY3MjooZSx0KT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5jcmVhdGVJbnZhbGlkQXJnRmFjdG9yeT1mdW5jdGlvbihlLHQpe3JldHVybihuLHIpPT57dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlIG9mIHR5cGUgJHt0eXBlb2YgZX0gZm9yICR7dH0gYXJndW1lbnQgd2hlbiBjb25uZWN0aW5nIGNvbXBvbmVudCAke3Iud3JhcHBlZENvbXBvbmVudE5hbWV9LmApfX19LDIyMzMzOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0MTc3OSk7dC5fX2VzTW9kdWxlPSEwLHQubWFwRGlzcGF0Y2hUb1Byb3BzRmFjdG9yeT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlPygwLGkud3JhcE1hcFRvUHJvcHNDb25zdGFudCkoKHQ9PigwLG8uZGVmYXVsdCkoZSx0KSkpOmU/ImZ1bmN0aW9uIj09dHlwZW9mIGU/KDAsaS53cmFwTWFwVG9Qcm9wc0Z1bmMpKGUsIm1hcERpc3BhdGNoVG9Qcm9wcyIpOigwLGEuY3JlYXRlSW52YWxpZEFyZ0ZhY3RvcnkpKGUsIm1hcERpc3BhdGNoVG9Qcm9wcyIpOigwLGkud3JhcE1hcFRvUHJvcHNDb25zdGFudCkoKGU9Pih7ZGlzcGF0Y2g6ZX0pKSl9O3ZhciBvPXIobig4NDUwMikpLGk9big1OTIyOCksYT1uKDYzNjcyKX0sOTYxODg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5tYXBTdGF0ZVRvUHJvcHNGYWN0b3J5PWZ1bmN0aW9uKGUpe3JldHVybiBlPyJmdW5jdGlvbiI9PXR5cGVvZiBlPygwLHIud3JhcE1hcFRvUHJvcHNGdW5jKShlLCJtYXBTdGF0ZVRvUHJvcHMiKTooMCxvLmNyZWF0ZUludmFsaWRBcmdGYWN0b3J5KShlLCJtYXBTdGF0ZVRvUHJvcHMiKTooMCxyLndyYXBNYXBUb1Byb3BzQ29uc3RhbnQpKCgoKT0+KHt9KSkpfTt2YXIgcj1uKDU5MjI4KSxvPW4oNjM2NzIpfSwxOTQ0MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDE3NzkpO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHRNZXJnZVByb3BzPWEsdC53cmFwTWVyZ2VQcm9wc0Z1bmM9dSx0Lm1lcmdlUHJvcHNGYWN0b3J5PWZ1bmN0aW9uKGUpe3JldHVybiBlPyJmdW5jdGlvbiI9PXR5cGVvZiBlP3UoZSk6KDAsaS5jcmVhdGVJbnZhbGlkQXJnRmFjdG9yeSkoZSwibWVyZ2VQcm9wcyIpOigpPT5hfTt2YXIgbz1yKG4oODA5NjIpKSxpPShyKG4oNTE3NTgpKSxuKDYzNjcyKSk7ZnVuY3Rpb24gYShlLHQsbil7cmV0dXJuKDAsby5kZWZhdWx0KSh7fSxuLGUsdCl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gZnVuY3Rpb24odCx7ZGlzcGxheU5hbWU6bixhcmVNZXJnZWRQcm9wc0VxdWFsOnJ9KXtsZXQgbyxpPSExO3JldHVybiBmdW5jdGlvbih0LG4sYSl7Y29uc3QgdT1lKHQsbixhKTtyZXR1cm4gaT9yKHUsbyl8fChvPXUpOihpPSEwLG89dSksb319fX0sNzM3NjQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQxNzc5KTt0Ll9fZXNNb2R1bGU9ITAsdC5wdXJlRmluYWxQcm9wc1NlbGVjdG9yRmFjdG9yeT1hLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2xldHtpbml0TWFwU3RhdGVUb1Byb3BzOm4saW5pdE1hcERpc3BhdGNoVG9Qcm9wczpyLGluaXRNZXJnZVByb3BzOnV9PXQscz0oMCxvLmRlZmF1bHQpKHQsaSk7Y29uc3QgYz1uKGUscyksbD1yKGUscyksZj11KGUscyk7MDtyZXR1cm4gYShjLGwsZixlLHMpfTt2YXIgbz1yKG4oMjY5NDQpKTtyKG4oODE4MzApKTtjb25zdCBpPVsiaW5pdE1hcFN0YXRlVG9Qcm9wcyIsImluaXRNYXBEaXNwYXRjaFRvUHJvcHMiLCJpbml0TWVyZ2VQcm9wcyJdO2Z1bmN0aW9uIGEoZSx0LG4scix7YXJlU3RhdGVzRXF1YWw6byxhcmVPd25Qcm9wc0VxdWFsOmksYXJlU3RhdGVQcm9wc0VxdWFsOmF9KXtsZXQgdSxzLGMsbCxmLHA9ITE7ZnVuY3Rpb24gZChwLGQpe2NvbnN0IGg9IWkoZCxzKSx5PSFvKHAsdSxkLHMpO3JldHVybiB1PXAscz1kLGgmJnk/KGM9ZSh1LHMpLHQuZGVwZW5kc09uT3duUHJvcHMmJihsPXQocixzKSksZj1uKGMsbCxzKSxmKTpoPyhlLmRlcGVuZHNPbk93blByb3BzJiYoYz1lKHUscykpLHQuZGVwZW5kc09uT3duUHJvcHMmJihsPXQocixzKSksZj1uKGMsbCxzKSxmKTp5P2Z1bmN0aW9uKCl7Y29uc3QgdD1lKHUscykscj0hYSh0LGMpO3JldHVybiBjPXQsciYmKGY9bihjLGwscykpLGZ9KCk6Zn1yZXR1cm4gZnVuY3Rpb24obyxpKXtyZXR1cm4gcD9kKG8saSk6KHU9byxzPWksYz1lKHUscyksbD10KHIscyksZj1uKGMsbCxzKSxwPSEwLGYpfX19LDgxODMwOihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0MTc3OSk7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQsbil7aShlLCJtYXBTdGF0ZVRvUHJvcHMiKSxpKHQsIm1hcERpc3BhdGNoVG9Qcm9wcyIpLGkobiwibWVyZ2VQcm9wcyIpfTt2YXIgbz1yKG4oOTMwOTkpKTtmdW5jdGlvbiBpKGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHZhbHVlIGZvciAke3R9IGluIGNvbm5lY3QuYCk7Im1hcFN0YXRlVG9Qcm9wcyIhPT10JiYibWFwRGlzcGF0Y2hUb1Byb3BzIiE9PXR8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkZXBlbmRzT25Pd25Qcm9wcyIpfHwoMCxvLmRlZmF1bHQpKGBUaGUgc2VsZWN0b3IgZm9yICR7dH0gb2YgY29ubmVjdCBkaWQgbm90IHNwZWNpZnkgYSB2YWx1ZSBmb3IgZGVwZW5kc09uT3duUHJvcHMuYCl9fSw1OTIyODooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPW4oNDE3NzkpO3QuX19lc01vZHVsZT0hMCx0LndyYXBNYXBUb1Byb3BzQ29uc3RhbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2NvbnN0IG49ZSh0KTtmdW5jdGlvbiByKCl7cmV0dXJuIG59cmV0dXJuIHIuZGVwZW5kc09uT3duUHJvcHM9ITEscn19LHQuZ2V0RGVwZW5kc09uT3duUHJvcHM9byx0LndyYXBNYXBUb1Byb3BzRnVuYz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbih0LHtkaXNwbGF5TmFtZTpufSl7Y29uc3Qgcj1mdW5jdGlvbihlLHQpe3JldHVybiByLmRlcGVuZHNPbk93blByb3BzP3IubWFwVG9Qcm9wcyhlLHQpOnIubWFwVG9Qcm9wcyhlLHZvaWQgMCl9O3JldHVybiByLmRlcGVuZHNPbk93blByb3BzPSEwLHIubWFwVG9Qcm9wcz1mdW5jdGlvbih0LG4pe3IubWFwVG9Qcm9wcz1lLHIuZGVwZW5kc09uT3duUHJvcHM9byhlKTtsZXQgaT1yKHQsbik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGkmJihyLm1hcFRvUHJvcHM9aSxyLmRlcGVuZHNPbk93blByb3BzPW8oaSksaT1yKHQsbikpLGl9LHJ9fTtyKG4oNTE3NTgpKTtmdW5jdGlvbiBvKGUpe3JldHVybiBlLmRlcGVuZHNPbk93blByb3BzP0Jvb2xlYW4oZS5kZXBlbmRzT25Pd25Qcm9wcyk6MSE9PWUubGVuZ3RofX0sMTkxMjQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDQxNzc5KTt0Ll9fZXNNb2R1bGU9ITA7dmFyIG89e1Byb3ZpZGVyOiEwLGNvbm5lY3Q6ITAsUmVhY3RSZWR1eENvbnRleHQ6ITAsdXNlRGlzcGF0Y2g6ITAsY3JlYXRlRGlzcGF0Y2hIb29rOiEwLHVzZVNlbGVjdG9yOiEwLGNyZWF0ZVNlbGVjdG9ySG9vazohMCx1c2VTdG9yZTohMCxjcmVhdGVTdG9yZUhvb2s6ITAsc2hhbGxvd0VxdWFsOiEwfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiUHJvdmlkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImNvbm5lY3QiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIlJlYWN0UmVkdXhDb250ZXh0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5SZWFjdFJlZHV4Q29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidXNlRGlzcGF0Y2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLnVzZURpc3BhdGNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjcmVhdGVEaXNwYXRjaEhvb2siLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmNyZWF0ZURpc3BhdGNoSG9va319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidXNlU2VsZWN0b3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjLnVzZVNlbGVjdG9yfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjcmVhdGVTZWxlY3Rvckhvb2siLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjLmNyZWF0ZVNlbGVjdG9ySG9va319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidXNlU3RvcmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsLnVzZVN0b3JlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjcmVhdGVTdG9yZUhvb2siLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsLmNyZWF0ZVN0b3JlSG9va319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwic2hhbGxvd0VxdWFsIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kZWZhdWx0fX0pO3ZhciBpPXIobig1NzQ1NikpLGE9cihuKDM5Nzk0KSksdT1uKDM1MTIwKSxzPW4oODUxNTgpLGM9big4MTAzMyksbD1uKDY5MjY5KSxmPXIobig2ODc2MSkpLHA9big3ODkyOSk7T2JqZWN0LmtleXMocCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ImRlZmF1bHQiIT09ZSYmIl9fZXNNb2R1bGUiIT09ZSYmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGUpfHxlIGluIHQmJnRbZV09PT1wW2VdfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwW2VdfX0pKX0pKX0sODUxNTg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5jcmVhdGVEaXNwYXRjaEhvb2s9aSx0LnVzZURpc3BhdGNoPXZvaWQgMDt2YXIgcj1uKDM1MTIwKSxvPW4oNjkyNjkpO2Z1bmN0aW9uIGkoZT1yLlJlYWN0UmVkdXhDb250ZXh0KXtjb25zdCB0PWU9PT1yLlJlYWN0UmVkdXhDb250ZXh0P28udXNlU3RvcmU6KDAsby5jcmVhdGVTdG9yZUhvb2spKGUpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KCkuZGlzcGF0Y2h9fWNvbnN0IGE9aSgpO3QudXNlRGlzcGF0Y2g9YX0sOTcyMzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmNyZWF0ZVJlZHV4Q29udGV4dEhvb2s9aSx0LnVzZVJlZHV4Q29udGV4dD12b2lkIDA7dmFyIHI9big2NzI5NCksbz1uKDM1MTIwKTtmdW5jdGlvbiBpKGU9by5SZWFjdFJlZHV4Q29udGV4dCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKDAsci51c2VDb250ZXh0KShlKX19Y29uc3QgYT1pKCk7dC51c2VSZWR1eENvbnRleHQ9YX0sODEwMzM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5jcmVhdGVTZWxlY3Rvckhvb2s9cyx0LnVzZVNlbGVjdG9yPXQuaW5pdGlhbGl6ZVVzZVNlbGVjdG9yPXZvaWQgMDt2YXIgcj1uKDY3Mjk0KSxvPW4oOTcyMyksaT1uKDM1MTIwKTtsZXQgYT1uKDUyMzA1KS5ub3RJbml0aWFsaXplZDt0LmluaXRpYWxpemVVc2VTZWxlY3Rvcj1lPT57YT1lfTtjb25zdCB1PShlLHQpPT5lPT09dDtmdW5jdGlvbiBzKGU9aS5SZWFjdFJlZHV4Q29udGV4dCl7Y29uc3QgdD1lPT09aS5SZWFjdFJlZHV4Q29udGV4dD9vLnVzZVJlZHV4Q29udGV4dDooMCxvLmNyZWF0ZVJlZHV4Q29udGV4dEhvb2spKGUpO3JldHVybiBmdW5jdGlvbihlLG49e30pe2NvbnN0e2VxdWFsaXR5Rm46bz11LHN0YWJpbGl0eUNoZWNrOmksbm9vcENoZWNrOnN9PSJmdW5jdGlvbiI9PXR5cGVvZiBuP3tlcXVhbGl0eUZuOm59Om47Y29uc3R7c3RvcmU6YyxzdWJzY3JpcHRpb246bCxnZXRTZXJ2ZXJTdGF0ZTpmLHN0YWJpbGl0eUNoZWNrOnAsbm9vcENoZWNrOmR9PXQoKSxoPSgoMCxyLnVzZVJlZikoITApLCgwLHIudXNlQ2FsbGJhY2spKHtbZS5uYW1lXSh0KXtyZXR1cm4gZSh0KX19W2UubmFtZV0sW2UscCxpXSkpLHk9YShsLmFkZE5lc3RlZFN1YixjLmdldFN0YXRlLGZ8fGMuZ2V0U3RhdGUsaCxvKTtyZXR1cm4oMCxyLnVzZURlYnVnVmFsdWUpKHkpLHl9fWNvbnN0IGM9cygpO3QudXNlU2VsZWN0b3I9Y30sNjkyNjk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5jcmVhdGVTdG9yZUhvb2s9aSx0LnVzZVN0b3JlPXZvaWQgMDt2YXIgcj1uKDM1MTIwKSxvPW4oOTcyMyk7ZnVuY3Rpb24gaShlPXIuUmVhY3RSZWR1eENvbnRleHQpe2NvbnN0IHQ9ZT09PXIuUmVhY3RSZWR1eENvbnRleHQ/by51c2VSZWR1eENvbnRleHQ6KDAsby5jcmVhdGVSZWR1eENvbnRleHRIb29rKShlKTtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdHtzdG9yZTplfT10KCk7cmV0dXJuIGV9fWNvbnN0IGE9aSgpO3QudXNlU3RvcmU9YX0sMzc0MjQ6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITA7dmFyIHI9e2JhdGNoOiEwfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYmF0Y2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzfX0pO3ZhciBvPW4oNjE2ODgpLGk9big1Mjc5OCksYT1uKDkyNTgxKSx1PW4oNjc4NTIpLHM9big4MTAzMyksYz1uKDM5Nzk0KSxsPW4oMTkxMjQpO09iamVjdC5rZXlzKGwpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJkZWZhdWx0IiE9PWUmJiJfX2VzTW9kdWxlIiE9PWUmJihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixlKXx8ZSBpbiB0JiZ0W2VdPT09bFtlXXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbFtlXX19KSl9KSksKDAscy5pbml0aWFsaXplVXNlU2VsZWN0b3IpKGkudXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3IpLCgwLGMuaW5pdGlhbGl6ZUNvbm5lY3QpKG8udXNlU3luY0V4dGVybmFsU3RvcmUpLCgwLHUuc2V0QmF0Y2gpKGEudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMpfSw3ODkyOTooKT0+e30sNzUxMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmNyZWF0ZVN1YnNjcmlwdGlvbj1mdW5jdGlvbihlLHQpe2xldCBuLGk9bztmdW5jdGlvbiBhKCl7cy5vblN0YXRlQ2hhbmdlJiZzLm9uU3RhdGVDaGFuZ2UoKX1mdW5jdGlvbiB1KCl7bnx8KG49dD90LmFkZE5lc3RlZFN1YihhKTplLnN1YnNjcmliZShhKSxpPWZ1bmN0aW9uKCl7Y29uc3QgZT0oMCxyLmdldEJhdGNoKSgpO2xldCB0PW51bGwsbj1udWxsO3JldHVybntjbGVhcigpe3Q9bnVsbCxuPW51bGx9LG5vdGlmeSgpe2UoKCgpPT57bGV0IGU9dDtmb3IoO2U7KWUuY2FsbGJhY2soKSxlPWUubmV4dH0pKX0sZ2V0KCl7bGV0IGU9W10sbj10O2Zvcig7bjspZS5wdXNoKG4pLG49bi5uZXh0O3JldHVybiBlfSxzdWJzY3JpYmUoZSl7bGV0IHI9ITAsbz1uPXtjYWxsYmFjazplLG5leHQ6bnVsbCxwcmV2Om59O3JldHVybiBvLnByZXY/by5wcmV2Lm5leHQ9bzp0PW8sZnVuY3Rpb24oKXtyJiZudWxsIT09dCYmKHI9ITEsby5uZXh0P28ubmV4dC5wcmV2PW8ucHJldjpuPW8ucHJldixvLnByZXY/by5wcmV2Lm5leHQ9by5uZXh0OnQ9by5uZXh0KX19fX0oKSl9Y29uc3Qgcz17YWRkTmVzdGVkU3ViOmZ1bmN0aW9uKGUpe3JldHVybiB1KCksaS5zdWJzY3JpYmUoZSl9LG5vdGlmeU5lc3RlZFN1YnM6ZnVuY3Rpb24oKXtpLm5vdGlmeSgpfSxoYW5kbGVDaGFuZ2VXcmFwcGVyOmEsaXNTdWJzY3JpYmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4obil9LHRyeVN1YnNjcmliZTp1LHRyeVVuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7biYmKG4oKSxuPXZvaWQgMCxpLmNsZWFyKCksaT1vKX0sZ2V0TGlzdGVuZXJzOigpPT5pfTtyZXR1cm4gc307dmFyIHI9big2Nzg1Mik7Y29uc3Qgbz17bm90aWZ5KCl7fSxnZXQ6KCk9PltdfX0sNjc4NTI6KGUsdCk9PnsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLHQuZ2V0QmF0Y2g9dC5zZXRCYXRjaD12b2lkIDA7bGV0IG49ZnVuY3Rpb24oZSl7ZSgpfTt0LnNldEJhdGNoPWU9Pm49ZTt0LmdldEJhdGNoPSgpPT5ufSw4NDUwMjooZSx0KT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj17fTtmb3IoY29uc3QgciBpbiBlKXtjb25zdCBvPWVbcl07ImZ1bmN0aW9uIj09dHlwZW9mIG8mJihuW3JdPSguLi5lKT0+dChvKC4uLmUpKSl9cmV0dXJuIG59fSwxNDQyOihlLHQpPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4hMTtsZXQgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7aWYobnVsbD09PXQpcmV0dXJuITA7bGV0IG49dDtmb3IoO251bGwhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik7KW49T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pO3JldHVybiB0PT09bn19LDkyNTgxOihlLHQsbik9PnsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXN9fSk7dmFyIHI9big3MzkzNSl9LDY4NzYxOihlLHQpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtyZXR1cm4gZT09PXQ/MCE9PWV8fDAhPT10fHwxL2U9PTEvdDplIT1lJiZ0IT10fXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtpZihuKGUsdCkpcmV0dXJuITA7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4hMTtjb25zdCByPU9iamVjdC5rZXlzKGUpLG89T2JqZWN0LmtleXModCk7aWYoci5sZW5ndGghPT1vLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscltvXSl8fCFuKGVbcltvXV0sdFtyW29dXSkpcmV0dXJuITE7cmV0dXJuITB9fSwzNDI1MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LnVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3Q9dC5jYW5Vc2VET009dm9pZCAwO3ZhciByPWZ1bmN0aW9uKGUsdCl7aWYoIXQmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgbj1vKHQpO2lmKG4mJm4uaGFzKGUpKXJldHVybiBuLmdldChlKTt2YXIgcj17fSxpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGEgaW4gZSlpZigiZGVmYXVsdCIhPT1hJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSl7dmFyIHU9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsYSk6bnVsbDt1JiYodS5nZXR8fHUuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHUpOnJbYV09ZVthXX1yLmRlZmF1bHQ9ZSxuJiZuLnNldChlLHIpO3JldHVybiByfShuKDY3Mjk0KSk7ZnVuY3Rpb24gbyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgdD1uZXcgV2Vha01hcCxuPW5ldyBXZWFrTWFwO3JldHVybihvPWZ1bmN0aW9uKGUpe3JldHVybiBlP246dH0pKGUpfWNvbnN0IGk9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7dC5jYW5Vc2VET009aTtjb25zdCBhPWk/ci51c2VMYXlvdXRFZmZlY3Q6ci51c2VFZmZlY3Q7dC51c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0PWF9LDUyMzA1OihlLHQpPT57InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0Lm5vdEluaXRpYWxpemVkPXZvaWQgMDt0Lm5vdEluaXRpYWxpemVkPSgpPT57dGhyb3cgbmV3IEVycm9yKCJ1U0VTIG5vdCBpbml0aWFsaXplZCEiKX19LDUxNzU4OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big0MTc3OSk7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQsbil7KDAsby5kZWZhdWx0KShlKXx8KDAsaS5kZWZhdWx0KShgJHtufSgpIGluICR7dH0gbXVzdCByZXR1cm4gYSBwbGFpbiBvYmplY3QuIEluc3RlYWQgcmVjZWl2ZWQgJHtlfS5gKX07dmFyIG89cihuKDE0NDIpKSxpPXIobig5MzA5OSkpfSw5MzA5OTooZSx0KT0+eyJ1c2Ugc3RyaWN0Ijt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUuZXJyb3ImJmNvbnNvbGUuZXJyb3IoZSk7dHJ5e3Rocm93IG5ldyBFcnJvcihlKX1jYXRjaChlKXt9fX0sODg0NDc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIxNTc4KSxvPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0saT17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxhPXskJHR5cGVvZjohMCxjb21wYXJlOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sdT17fTtmdW5jdGlvbiBzKGUpe3JldHVybiByLmlzTWVtbyhlKT9hOnVbZS4kJHR5cGVvZl18fG99dVtyLkZvcndhcmRSZWZdPXskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0sdVtyLk1lbW9dPWE7dmFyIGM9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixkPU9iamVjdC5nZXRQcm90b3R5cGVPZixoPU9iamVjdC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uIGUodCxuLHIpe2lmKCJzdHJpbmciIT10eXBlb2Ygbil7aWYoaCl7dmFyIG89ZChuKTtvJiZvIT09aCYmZSh0LG8scil9dmFyIGE9bChuKTtmJiYoYT1hLmNvbmNhdChmKG4pKSk7Zm9yKHZhciB1PXModCkseT1zKG4pLHY9MDt2PGEubGVuZ3RoOysrdil7dmFyIG09YVt2XTtpZighKGlbbV18fHImJnJbbV18fHkmJnlbbV18fHUmJnVbbV0pKXt2YXIgZz1wKG4sbSk7dHJ5e2ModCxtLGcpfWNhdGNoKGUpe319fX1yZXR1cm4gdH19LDY2NDQ2OihlLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Iscj1uP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxvPW4/U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik6NjAxMDYsaT1uP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcsYT1uP1N5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIik6NjAxMDgsdT1uP1N5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIik6NjAxMTQscz1uP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDksYz1uP1N5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKTo2MDExMCxsPW4/U3ltYm9sLmZvcigicmVhY3QuYXN5bmNfbW9kZSIpOjYwMTExLGY9bj9TeW1ib2wuZm9yKCJyZWFjdC5jb25jdXJyZW50X21vZGUiKTo2MDExMSxwPW4/U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKTo2MDExMixkPW4/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKTo2MDExMyxoPW4/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpOjYwMTIwLHk9bj9TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIik6NjAxMTUsdj1uP1N5bWJvbC5mb3IoInJlYWN0LmxhenkiKTo2MDExNixtPW4/U3ltYm9sLmZvcigicmVhY3QuYmxvY2siKTo2MDEyMSxnPW4/U3ltYm9sLmZvcigicmVhY3QuZnVuZGFtZW50YWwiKTo2MDExNyxfPW4/U3ltYm9sLmZvcigicmVhY3QucmVzcG9uZGVyIik6NjAxMTgsYj1uP1N5bWJvbC5mb3IoInJlYWN0LnNjb3BlIik6NjAxMTk7ZnVuY3Rpb24gdyhlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXt2YXIgdD1lLiQkdHlwZW9mO3N3aXRjaCh0KXtjYXNlIHI6c3dpdGNoKGU9ZS50eXBlKXtjYXNlIGw6Y2FzZSBmOmNhc2UgaTpjYXNlIHU6Y2FzZSBhOmNhc2UgZDpyZXR1cm4gZTtkZWZhdWx0OnN3aXRjaChlPWUmJmUuJCR0eXBlb2Ype2Nhc2UgYzpjYXNlIHA6Y2FzZSB2OmNhc2UgeTpjYXNlIHM6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gdH19Y2FzZSBvOnJldHVybiB0fX19ZnVuY3Rpb24geChlKXtyZXR1cm4gdyhlKT09PWZ9dC5Bc3luY01vZGU9bCx0LkNvbmN1cnJlbnRNb2RlPWYsdC5Db250ZXh0Q29uc3VtZXI9Yyx0LkNvbnRleHRQcm92aWRlcj1zLHQuRWxlbWVudD1yLHQuRm9yd2FyZFJlZj1wLHQuRnJhZ21lbnQ9aSx0Lkxhenk9dix0Lk1lbW89eSx0LlBvcnRhbD1vLHQuUHJvZmlsZXI9dSx0LlN0cmljdE1vZGU9YSx0LlN1c3BlbnNlPWQsdC5pc0FzeW5jTW9kZT1mdW5jdGlvbihlKXtyZXR1cm4geChlKXx8dyhlKT09PWx9LHQuaXNDb25jdXJyZW50TW9kZT14LHQuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT1jfSx0LmlzQ29udGV4dFByb3ZpZGVyPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09c30sdC5pc0VsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PXJ9LHQuaXNGb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09cH0sdC5pc0ZyYWdtZW50PWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09aX0sdC5pc0xhenk9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT12fSx0LmlzTWVtbz1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PXl9LHQuaXNQb3J0YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT1vfSx0LmlzUHJvZmlsZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT11fSx0LmlzU3RyaWN0TW9kZT1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PWF9LHQuaXNTdXNwZW5zZT1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PWR9LHQuaXNWYWxpZEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT1pfHxlPT09Znx8ZT09PXV8fGU9PT1hfHxlPT09ZHx8ZT09PWh8fCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJihlLiQkdHlwZW9mPT09dnx8ZS4kJHR5cGVvZj09PXl8fGUuJCR0eXBlb2Y9PT1zfHxlLiQkdHlwZW9mPT09Y3x8ZS4kJHR5cGVvZj09PXB8fGUuJCR0eXBlb2Y9PT1nfHxlLiQkdHlwZW9mPT09X3x8ZS4kJHR5cGVvZj09PWJ8fGUuJCR0eXBlb2Y9PT1tKX0sdC50eXBlT2Y9d30sMjE1Nzg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9big2NjQ0Nil9LDg4MzU5OihlLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuLHI9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLG89U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGE9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSx1PVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikscz1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGw9U3ltYm9sLmZvcigicmVhY3Quc2VydmVyX2NvbnRleHQiKSxmPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIikscD1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLGQ9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLGg9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHk9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLHY9U3ltYm9sLmZvcigicmVhY3Qub2Zmc2NyZWVuIik7ZnVuY3Rpb24gbShlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXt2YXIgdD1lLiQkdHlwZW9mO3N3aXRjaCh0KXtjYXNlIHI6c3dpdGNoKGU9ZS50eXBlKXtjYXNlIGk6Y2FzZSB1OmNhc2UgYTpjYXNlIHA6Y2FzZSBkOnJldHVybiBlO2RlZmF1bHQ6c3dpdGNoKGU9ZSYmZS4kJHR5cGVvZil7Y2FzZSBsOmNhc2UgYzpjYXNlIGY6Y2FzZSB5OmNhc2UgaDpjYXNlIHM6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gdH19Y2FzZSBvOnJldHVybiB0fX19bj1TeW1ib2wuZm9yKCJyZWFjdC5tb2R1bGUucmVmZXJlbmNlIiksdC5Db250ZXh0Q29uc3VtZXI9Yyx0LkNvbnRleHRQcm92aWRlcj1zLHQuRWxlbWVudD1yLHQuRm9yd2FyZFJlZj1mLHQuRnJhZ21lbnQ9aSx0Lkxhenk9eSx0Lk1lbW89aCx0LlBvcnRhbD1vLHQuUHJvZmlsZXI9dSx0LlN0cmljdE1vZGU9YSx0LlN1c3BlbnNlPXAsdC5TdXNwZW5zZUxpc3Q9ZCx0LmlzQXN5bmNNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuaXNDb25jdXJyZW50TW9kZT1mdW5jdGlvbigpe3JldHVybiExfSx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiBtKGUpPT09Y30sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4gbShlKT09PXN9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1yfSx0LmlzRm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm4gbShlKT09PWZ9LHQuaXNGcmFnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gbShlKT09PWl9LHQuaXNMYXp5PWZ1bmN0aW9uKGUpe3JldHVybiBtKGUpPT09eX0sdC5pc01lbW89ZnVuY3Rpb24oZSl7cmV0dXJuIG0oZSk9PT1ofSx0LmlzUG9ydGFsPWZ1bmN0aW9uKGUpe3JldHVybiBtKGUpPT09b30sdC5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGUpe3JldHVybiBtKGUpPT09dX0sdC5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG0oZSk9PT1hfSx0LmlzU3VzcGVuc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG0oZSk9PT1wfSx0LmlzU3VzcGVuc2VMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBtKGUpPT09ZH0sdC5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZXx8ZT09PWl8fGU9PT11fHxlPT09YXx8ZT09PXB8fGU9PT1kfHxlPT09dnx8Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmKGUuJCR0eXBlb2Y9PT15fHxlLiQkdHlwZW9mPT09aHx8ZS4kJHR5cGVvZj09PXN8fGUuJCR0eXBlb2Y9PT1jfHxlLiQkdHlwZW9mPT09Znx8ZS4kJHR5cGVvZj09PW58fHZvaWQgMCE9PWUuZ2V0TW9kdWxlSWQpfSx0LnR5cGVPZj1tfSw3Mjk3MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1uKDg4MzU5KX0sNTk2ODU6ZnVuY3Rpb24oZSx0LG4peyFmdW5jdGlvbihlLHQsbixyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGkoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxpPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99Y29uc3QgYT1bIm9uQ2xpY2siLCJyZWxvYWREb2N1bWVudCIsInJlcGxhY2UiLCJzdGF0ZSIsInRhcmdldCIsInRvIl0sdT1bImFyaWEtY3VycmVudCIsImNhc2VTZW5zaXRpdmUiLCJjbGFzc05hbWUiLCJlbmQiLCJzdHlsZSIsInRvIiwiY2hpbGRyZW4iXSxzPXQuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSxuKXtsZXR7b25DbGljazp1LHJlbG9hZERvY3VtZW50OnMscmVwbGFjZTpjPSExLHN0YXRlOmYsdGFyZ2V0OnAsdG86ZH09ZSxoPWkoZSxhKSx5PXIudXNlSHJlZihkKSx2PWwoZCx7cmVwbGFjZTpjLHN0YXRlOmYsdGFyZ2V0OnB9KTtyZXR1cm4gdC5jcmVhdGVFbGVtZW50KCJhIixvKHt9LGgse2hyZWY6eSxvbkNsaWNrOmZ1bmN0aW9uKGUpe3UmJnUoZSksZS5kZWZhdWx0UHJldmVudGVkfHxzfHx2KGUpfSxyZWY6bix0YXJnZXQ6cH0pKX0pKSxjPXQuZm9yd2FyZFJlZigoZnVuY3Rpb24oZSxuKXtsZXR7ImFyaWEtY3VycmVudCI6YT0icGFnZSIsY2FzZVNlbnNpdGl2ZTpjPSExLGNsYXNzTmFtZTpsPSIiLGVuZDpmPSExLHN0eWxlOnAsdG86ZCxjaGlsZHJlbjpofT1lLHk9aShlLHUpLHY9ci51c2VMb2NhdGlvbigpLG09ci51c2VSZXNvbHZlZFBhdGgoZCksZz12LnBhdGhuYW1lLF89bS5wYXRobmFtZTtjfHwoZz1nLnRvTG93ZXJDYXNlKCksXz1fLnRvTG93ZXJDYXNlKCkpO2xldCBiLHc9Zz09PV98fCFmJiZnLnN0YXJ0c1dpdGgoXykmJiIvIj09PWcuY2hhckF0KF8ubGVuZ3RoKSx4PXc/YTp2b2lkIDA7Yj0iZnVuY3Rpb24iPT10eXBlb2YgbD9sKHtpc0FjdGl2ZTp3fSk6W2wsdz8iYWN0aXZlIjpudWxsXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2xldCBrPSJmdW5jdGlvbiI9PXR5cGVvZiBwP3Aoe2lzQWN0aXZlOnd9KTpwO3JldHVybiB0LmNyZWF0ZUVsZW1lbnQocyxvKHt9LHkseyJhcmlhLWN1cnJlbnQiOngsY2xhc3NOYW1lOmIscmVmOm4sc3R5bGU6ayx0bzpkfSksImZ1bmN0aW9uIj09dHlwZW9mIGg/aCh7aXNBY3RpdmU6d30pOmgpfSkpO2Z1bmN0aW9uIGwoZSxuKXtsZXR7dGFyZ2V0Om8scmVwbGFjZTppLHN0YXRlOmF9PXZvaWQgMD09PW4/e306bix1PXIudXNlTmF2aWdhdGUoKSxzPXIudXNlTG9jYXRpb24oKSxjPXIudXNlUmVzb2x2ZWRQYXRoKGUpO3JldHVybiB0LnVzZUNhbGxiYWNrKCh0PT57aWYoISgwIT09dC5idXR0b258fG8mJiJfc2VsZiIhPT1vfHxmdW5jdGlvbihlKXtyZXR1cm4hIShlLm1ldGFLZXl8fGUuYWx0S2V5fHxlLmN0cmxLZXl8fGUuc2hpZnRLZXkpfSh0KSkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgbj0hIWl8fHIuY3JlYXRlUGF0aChzKT09PXIuY3JlYXRlUGF0aChjKTt1KGUse3JlcGxhY2U6bixzdGF0ZTphfSl9fSksW3MsdSxjLGksYSxvLGVdKX1mdW5jdGlvbiBmKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0iIiksbmV3IFVSTFNlYXJjaFBhcmFtcygic3RyaW5nIj09dHlwZW9mIGV8fEFycmF5LmlzQXJyYXkoZSl8fGUgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXM/ZTpPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKCh0LG4pPT57bGV0IHI9ZVtuXTtyZXR1cm4gdC5jb25jYXQoQXJyYXkuaXNBcnJheShyKT9yLm1hcCgoZT0+W24sZV0pKTpbW24scl1dKX0pLFtdKSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIk1lbW9yeVJvdXRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVtb3J5Um91dGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJOYXZpZ2F0ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuTmF2aWdhdGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIk5hdmlnYXRpb25UeXBlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5OYXZpZ2F0aW9uVHlwZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiT3V0bGV0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5PdXRsZXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlJvdXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5Sb3V0ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiUm91dGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5Sb3V0ZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlJvdXRlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuUm91dGVzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJVTlNBRkVfTG9jYXRpb25Db250ZXh0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5VTlNBRkVfTG9jYXRpb25Db250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJVTlNBRkVfTmF2aWdhdGlvbkNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLlVOU0FGRV9OYXZpZ2F0aW9uQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiVU5TQUZFX1JvdXRlQ29udGV4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuVU5TQUZFX1JvdXRlQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3JlYXRlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuY3JlYXRlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5jcmVhdGVSb3V0ZXNGcm9tQ2hpbGRyZW59fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImdlbmVyYXRlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZ2VuZXJhdGVQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJtYXRjaFBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLm1hdGNoUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibWF0Y2hSb3V0ZXMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLm1hdGNoUm91dGVzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwYXJzZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnBhcnNlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicmVuZGVyTWF0Y2hlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIucmVuZGVyTWF0Y2hlc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicmVzb2x2ZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnJlc29sdmVQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VIcmVmIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci51c2VIcmVmfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VJblJvdXRlckNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZUluUm91dGVyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlTG9jYXRpb24iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZUxvY2F0aW9ufX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VNYXRjaCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlTWF0Y2h9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZU5hdmlnYXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci51c2VOYXZpZ2F0ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlTmF2aWdhdGlvblR5cGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZU5hdmlnYXRpb25UeXBlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VPdXRsZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZU91dGxldH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlT3V0bGV0Q29udGV4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlT3V0bGV0Q29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlUGFyYW1zIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci51c2VQYXJhbXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZVJlc29sdmVkUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlUmVzb2x2ZWRQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VSb3V0ZXMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZVJvdXRlc319KSxlLkJyb3dzZXJSb3V0ZXI9ZnVuY3Rpb24oZSl7bGV0e2Jhc2VuYW1lOm8sY2hpbGRyZW46aSx3aW5kb3c6YX09ZSx1PXQudXNlUmVmKCk7bnVsbD09dS5jdXJyZW50JiYodS5jdXJyZW50PW4uY3JlYXRlQnJvd3Nlckhpc3Rvcnkoe3dpbmRvdzphfSkpO2xldCBzPXUuY3VycmVudCxbYyxsXT10LnVzZVN0YXRlKHthY3Rpb246cy5hY3Rpb24sbG9jYXRpb246cy5sb2NhdGlvbn0pO3JldHVybiB0LnVzZUxheW91dEVmZmVjdCgoKCk9PnMubGlzdGVuKGwpKSxbc10pLHQuY3JlYXRlRWxlbWVudChyLlJvdXRlcix7YmFzZW5hbWU6byxjaGlsZHJlbjppLGxvY2F0aW9uOmMubG9jYXRpb24sbmF2aWdhdGlvblR5cGU6Yy5hY3Rpb24sbmF2aWdhdG9yOnN9KX0sZS5IYXNoUm91dGVyPWZ1bmN0aW9uKGUpe2xldHtiYXNlbmFtZTpvLGNoaWxkcmVuOmksd2luZG93OmF9PWUsdT10LnVzZVJlZigpO251bGw9PXUuY3VycmVudCYmKHUuY3VycmVudD1uLmNyZWF0ZUhhc2hIaXN0b3J5KHt3aW5kb3c6YX0pKTtsZXQgcz11LmN1cnJlbnQsW2MsbF09dC51c2VTdGF0ZSh7YWN0aW9uOnMuYWN0aW9uLGxvY2F0aW9uOnMubG9jYXRpb259KTtyZXR1cm4gdC51c2VMYXlvdXRFZmZlY3QoKCgpPT5zLmxpc3RlbihsKSksW3NdKSx0LmNyZWF0ZUVsZW1lbnQoci5Sb3V0ZXIse2Jhc2VuYW1lOm8sY2hpbGRyZW46aSxsb2NhdGlvbjpjLmxvY2F0aW9uLG5hdmlnYXRpb25UeXBlOmMuYWN0aW9uLG5hdmlnYXRvcjpzfSl9LGUuTGluaz1zLGUuTmF2TGluaz1jLGUuY3JlYXRlU2VhcmNoUGFyYW1zPWYsZS51bnN0YWJsZV9IaXN0b3J5Um91dGVyPWZ1bmN0aW9uKGUpe2xldHtiYXNlbmFtZTpuLGNoaWxkcmVuOm8saGlzdG9yeTppfT1lO2NvbnN0W2EsdV09dC51c2VTdGF0ZSh7YWN0aW9uOmkuYWN0aW9uLGxvY2F0aW9uOmkubG9jYXRpb259KTtyZXR1cm4gdC51c2VMYXlvdXRFZmZlY3QoKCgpPT5pLmxpc3Rlbih1KSksW2ldKSx0LmNyZWF0ZUVsZW1lbnQoci5Sb3V0ZXIse2Jhc2VuYW1lOm4sY2hpbGRyZW46byxsb2NhdGlvbjphLmxvY2F0aW9uLG5hdmlnYXRpb25UeXBlOmEuYWN0aW9uLG5hdmlnYXRvcjppfSl9LGUudXNlTGlua0NsaWNrSGFuZGxlcj1sLGUudXNlU2VhcmNoUGFyYW1zPWZ1bmN0aW9uKGUpe2xldCBuPXQudXNlUmVmKGYoZSkpLG89ci51c2VMb2NhdGlvbigpLGk9dC51c2VNZW1vKCgoKT0+e2xldCBlPWYoby5zZWFyY2gpO2ZvcihsZXQgdCBvZiBuLmN1cnJlbnQua2V5cygpKWUuaGFzKHQpfHxuLmN1cnJlbnQuZ2V0QWxsKHQpLmZvckVhY2goKG49PntlLmFwcGVuZCh0LG4pfSkpO3JldHVybiBlfSksW28uc2VhcmNoXSksYT1yLnVzZU5hdmlnYXRlKCk7cmV0dXJuW2ksdC51c2VDYWxsYmFjaygoKGUsdCk9PnthKCI/IitmKGUpLHQpfSksW2FdKV19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0odCxuKDY3Mjk0KSxuKDgyMjQxKSxuKDQ4MDUxKSl9LDQ4MDUxOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oNTg4MDUpfSw1ODgwNTpmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7Y29uc3Qgcj1uLmNyZWF0ZUNvbnRleHQobnVsbCksbz1uLmNyZWF0ZUNvbnRleHQobnVsbCksaT1uLmNyZWF0ZUNvbnRleHQoe291dGxldDpudWxsLG1hdGNoZXM6W119KTtmdW5jdGlvbiBhKGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIHUoZSxuLHIpe3ZvaWQgMD09PXImJihyPSIvIik7bGV0IG89digoInN0cmluZyI9PXR5cGVvZiBuP3QucGFyc2VQYXRoKG4pOm4pLnBhdGhuYW1lfHwiLyIscik7aWYobnVsbD09bylyZXR1cm4gbnVsbDtsZXQgaT1zKGUpOyFmdW5jdGlvbihlKXtlLnNvcnQoKChlLHQpPT5lLnNjb3JlIT09dC5zY29yZT90LnNjb3JlLWUuc2NvcmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5zbGljZSgwLC0xKS5ldmVyeSgoKGUsbik9PmU9PT10W25dKSk/ZVtlLmxlbmd0aC0xXS10W3QubGVuZ3RoLTFdOjB9KGUucm91dGVzTWV0YS5tYXAoKGU9PmUuY2hpbGRyZW5JbmRleCkpLHQucm91dGVzTWV0YS5tYXAoKGU9PmUuY2hpbGRyZW5JbmRleCkpKSkpfShpKTtsZXQgYT1udWxsO2ZvcihsZXQgZT0wO251bGw9PWEmJmU8aS5sZW5ndGg7KytlKWE9cChpW2VdLG8pO3JldHVybiBhfWZ1bmN0aW9uIHMoZSx0LG4scil7cmV0dXJuIHZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09ciYmKHI9IiIpLGUuZm9yRWFjaCgoKGUsbyk9PntsZXQgaT17cmVsYXRpdmVQYXRoOmUucGF0aHx8IiIsY2FzZVNlbnNpdGl2ZTohMD09PWUuY2FzZVNlbnNpdGl2ZSxjaGlsZHJlbkluZGV4Om8scm91dGU6ZX07aS5yZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgiLyIpJiYoaS5yZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChyKXx8YSghMSksaS5yZWxhdGl2ZVBhdGg9aS5yZWxhdGl2ZVBhdGguc2xpY2Uoci5sZW5ndGgpKTtsZXQgdT1tKFtyLGkucmVsYXRpdmVQYXRoXSksYz1uLmNvbmNhdChpKTtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmxlbmd0aD4wJiYoITA9PT1lLmluZGV4JiZhKCExKSxzKGUuY2hpbGRyZW4sdCxjLHUpKSwobnVsbCE9ZS5wYXRofHxlLmluZGV4KSYmdC5wdXNoKHtwYXRoOnUsc2NvcmU6Zih1LGUuaW5kZXgpLHJvdXRlc01ldGE6Y30pfSkpLHR9Y29uc3QgYz0vXjpcdyskLyxsPWU9PiIqIj09PWU7ZnVuY3Rpb24gZihlLHQpe2xldCBuPWUuc3BsaXQoIi8iKSxyPW4ubGVuZ3RoO3JldHVybiBuLnNvbWUobCkmJihyKz0tMiksdCYmKHIrPTIpLG4uZmlsdGVyKChlPT4hbChlKSkpLnJlZHVjZSgoKGUsdCk9PmUrKGMudGVzdCh0KT8zOiIiPT09dD8xOjEwKSkscil9ZnVuY3Rpb24gcChlLHQpe2xldHtyb3V0ZXNNZXRhOm59PWUscj17fSxvPSIvIixpPVtdO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7KytlKXtsZXQgYT1uW2VdLHU9ZT09PW4ubGVuZ3RoLTEscz0iLyI9PT1vP3Q6dC5zbGljZShvLmxlbmd0aCl8fCIvIixjPWQoe3BhdGg6YS5yZWxhdGl2ZVBhdGgsY2FzZVNlbnNpdGl2ZTphLmNhc2VTZW5zaXRpdmUsZW5kOnV9LHMpO2lmKCFjKXJldHVybiBudWxsO09iamVjdC5hc3NpZ24ocixjLnBhcmFtcyk7bGV0IGw9YS5yb3V0ZTtpLnB1c2goe3BhcmFtczpyLHBhdGhuYW1lOm0oW28sYy5wYXRobmFtZV0pLHBhdGhuYW1lQmFzZTpnKG0oW28sYy5wYXRobmFtZUJhc2VdKSkscm91dGU6bH0pLCIvIiE9PWMucGF0aG5hbWVCYXNlJiYobz1tKFtvLGMucGF0aG5hbWVCYXNlXSkpfXJldHVybiBpfWZ1bmN0aW9uIGQoZSx0KXsic3RyaW5nIj09dHlwZW9mIGUmJihlPXtwYXRoOmUsY2FzZVNlbnNpdGl2ZTohMSxlbmQ6ITB9KTtsZXRbbixyXT1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITEpLHZvaWQgMD09PW4mJihuPSEwKTtsZXQgcj1bXSxvPSJeIitlLnJlcGxhY2UoL1wvKlwqPyQvLCIiKS5yZXBsYWNlKC9eXC8qLywiLyIpLnJlcGxhY2UoL1tcXC4qK14kP3t9fCgpW1xdXS9nLCJcXCQmIikucmVwbGFjZSgvOihcdyspL2csKChlLHQpPT4oci5wdXNoKHQpLCIoW15cXC9dKykiKSkpO3JldHVybiBlLmVuZHNXaXRoKCIqIik/KHIucHVzaCgiKiIpLG8rPSIqIj09PWV8fCIvKiI9PT1lPyIoLiopJCI6Iig/OlxcLyguKyl8XFwvKikkIik6bys9bj8iXFwvKiQiOiIoPzooPz1bLn4tXXwlWzAtOUEtRl17Mn0pfFxcYnxcXC98JCkiLFtuZXcgUmVnRXhwKG8sdD92b2lkIDA6ImkiKSxyXX0oZS5wYXRoLGUuY2FzZVNlbnNpdGl2ZSxlLmVuZCksbz10Lm1hdGNoKG4pO2lmKCFvKXJldHVybiBudWxsO2xldCBpPW9bMF0sYT1pLnJlcGxhY2UoLyguKVwvKyQvLCIkMSIpLHU9by5zbGljZSgxKTtyZXR1cm57cGFyYW1zOnIucmVkdWNlKCgoZSx0LG4pPT57aWYoIioiPT09dCl7bGV0IGU9dVtuXXx8IiI7YT1pLnNsaWNlKDAsaS5sZW5ndGgtZS5sZW5ndGgpLnJlcGxhY2UoLyguKVwvKyQvLCIkMSIpfXJldHVybiBlW3RdPWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7cmV0dXJuIGV9fSh1W25dfHwiIiksZX0pLHt9KSxwYXRobmFtZTppLHBhdGhuYW1lQmFzZTphLHBhdHRlcm46ZX19ZnVuY3Rpb24gaChlLG4pe3ZvaWQgMD09PW4mJihuPSIvIik7bGV0e3BhdGhuYW1lOnIsc2VhcmNoOm89IiIsaGFzaDppPSIifT0ic3RyaW5nIj09dHlwZW9mIGU/dC5wYXJzZVBhdGgoZSk6ZSxhPXI/ci5zdGFydHNXaXRoKCIvIik/cjpmdW5jdGlvbihlLHQpe2xldCBuPXQucmVwbGFjZSgvXC8rJC8sIiIpLnNwbGl0KCIvIik7cmV0dXJuIGUuc3BsaXQoIi8iKS5mb3JFYWNoKChlPT57Ii4uIj09PWU/bi5sZW5ndGg+MSYmbi5wb3AoKToiLiIhPT1lJiZuLnB1c2goZSl9KSksbi5sZW5ndGg+MT9uLmpvaW4oIi8iKToiLyJ9KHIsbik6bjtyZXR1cm57cGF0aG5hbWU6YSxzZWFyY2g6XyhvKSxoYXNoOmIoaSl9fWZ1bmN0aW9uIHkoZSxuLHIpe2xldCBvLGk9InN0cmluZyI9PXR5cGVvZiBlP3QucGFyc2VQYXRoKGUpOmUsYT0iIj09PWV8fCIiPT09aS5wYXRobmFtZT8iLyI6aS5wYXRobmFtZTtpZihudWxsPT1hKW89cjtlbHNle2xldCBlPW4ubGVuZ3RoLTE7aWYoYS5zdGFydHNXaXRoKCIuLiIpKXtsZXQgdD1hLnNwbGl0KCIvIik7Zm9yKDsiLi4iPT09dFswXTspdC5zaGlmdCgpLGUtPTE7aS5wYXRobmFtZT10LmpvaW4oIi8iKX1vPWU+PTA/bltlXToiLyJ9bGV0IHU9aChpLG8pO3JldHVybiBhJiYiLyIhPT1hJiZhLmVuZHNXaXRoKCIvIikmJiF1LnBhdGhuYW1lLmVuZHNXaXRoKCIvIikmJih1LnBhdGhuYW1lKz0iLyIpLHV9ZnVuY3Rpb24gdihlLHQpe2lmKCIvIj09PXQpcmV0dXJuIGU7aWYoIWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHQudG9Mb3dlckNhc2UoKSkpcmV0dXJuIG51bGw7bGV0IG49ZS5jaGFyQXQodC5sZW5ndGgpO3JldHVybiBuJiYiLyIhPT1uP251bGw6ZS5zbGljZSh0Lmxlbmd0aCl8fCIvIn1jb25zdCBtPWU9PmUuam9pbigiLyIpLnJlcGxhY2UoL1wvXC8rL2csIi8iKSxnPWU9PmUucmVwbGFjZSgvXC8rJC8sIiIpLnJlcGxhY2UoL15cLyovLCIvIiksXz1lPT5lJiYiPyIhPT1lP2Uuc3RhcnRzV2l0aCgiPyIpP2U6Ij8iK2U6IiIsYj1lPT5lJiYiIyIhPT1lP2Uuc3RhcnRzV2l0aCgiIyIpP2U6IiMiK2U6IiI7ZnVuY3Rpb24gdygpe3JldHVybiBudWxsIT1uLnVzZUNvbnRleHQobyl9ZnVuY3Rpb24geCgpe3JldHVybiB3KCl8fGEoITEpLG4udXNlQ29udGV4dChvKS5sb2NhdGlvbn1mdW5jdGlvbiBrKCl7dygpfHxhKCExKTtsZXR7YmFzZW5hbWU6ZSxuYXZpZ2F0b3I6dH09bi51c2VDb250ZXh0KHIpLHttYXRjaGVzOm99PW4udXNlQ29udGV4dChpKSx7cGF0aG5hbWU6dX09eCgpLHM9SlNPTi5zdHJpbmdpZnkoby5tYXAoKGU9PmUucGF0aG5hbWVCYXNlKSkpLGM9bi51c2VSZWYoITEpO3JldHVybiBuLnVzZUVmZmVjdCgoKCk9PntjLmN1cnJlbnQ9ITB9KSksbi51c2VDYWxsYmFjaygoZnVuY3Rpb24obixyKXtpZih2b2lkIDA9PT1yJiYocj17fSksIWMuY3VycmVudClyZXR1cm47aWYoIm51bWJlciI9PXR5cGVvZiBuKXJldHVybiB2b2lkIHQuZ28obik7bGV0IG89eShuLEpTT04ucGFyc2UocyksdSk7Ii8iIT09ZSYmKG8ucGF0aG5hbWU9bShbZSxvLnBhdGhuYW1lXSkpLChyLnJlcGxhY2U/dC5yZXBsYWNlOnQucHVzaCkobyxyLnN0YXRlKX0pLFtlLHQscyx1XSl9Y29uc3QgUz1uLmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gRShlKXtsZXQgdD1uLnVzZUNvbnRleHQoaSkub3V0bGV0O3JldHVybiB0P24uY3JlYXRlRWxlbWVudChTLlByb3ZpZGVyLHt2YWx1ZTplfSx0KTp0fWZ1bmN0aW9uIFQoZSl7bGV0e21hdGNoZXM6dH09bi51c2VDb250ZXh0KGkpLHtwYXRobmFtZTpyfT14KCksbz1KU09OLnN0cmluZ2lmeSh0Lm1hcCgoZT0+ZS5wYXRobmFtZUJhc2UpKSk7cmV0dXJuIG4udXNlTWVtbygoKCk9PnkoZSxKU09OLnBhcnNlKG8pLHIpKSxbZSxvLHJdKX1mdW5jdGlvbiBDKGUscil7dygpfHxhKCExKTtsZXQgbyx7bWF0Y2hlczpzfT1uLnVzZUNvbnRleHQoaSksYz1zW3MubGVuZ3RoLTFdLGw9Yz9jLnBhcmFtczp7fSxmPShjJiZjLnBhdGhuYW1lLGM/Yy5wYXRobmFtZUJhc2U6Ii8iKSxwPShjJiZjLnJvdXRlLHgoKSk7aWYocil7dmFyIGQ7bGV0IGU9InN0cmluZyI9PXR5cGVvZiByP3QucGFyc2VQYXRoKHIpOnI7Ii8iPT09Znx8KG51bGw9PShkPWUucGF0aG5hbWUpP3ZvaWQgMDpkLnN0YXJ0c1dpdGgoZikpfHxhKCExKSxvPWV9ZWxzZSBvPXA7bGV0IGg9by5wYXRobmFtZXx8Ii8iLHk9dShlLHtwYXRobmFtZToiLyI9PT1mP2g6aC5zbGljZShmLmxlbmd0aCl8fCIvIn0pO3JldHVybiBPKHkmJnkubWFwKChlPT5PYmplY3QuYXNzaWduKHt9LGUse3BhcmFtczpPYmplY3QuYXNzaWduKHt9LGwsZS5wYXJhbXMpLHBhdGhuYW1lOm0oW2YsZS5wYXRobmFtZV0pLHBhdGhuYW1lQmFzZToiLyI9PT1lLnBhdGhuYW1lQmFzZT9mOm0oW2YsZS5wYXRobmFtZUJhc2VdKX0pKSkscyl9ZnVuY3Rpb24gTyhlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1bXSksbnVsbD09ZT9udWxsOmUucmVkdWNlUmlnaHQoKChyLG8sYSk9Pm4uY3JlYXRlRWxlbWVudChpLlByb3ZpZGVyLHtjaGlsZHJlbjp2b2lkIDAhPT1vLnJvdXRlLmVsZW1lbnQ/by5yb3V0ZS5lbGVtZW50OnIsdmFsdWU6e291dGxldDpyLG1hdGNoZXM6dC5jb25jYXQoZS5zbGljZSgwLGErMSkpfX0pKSxudWxsKX1mdW5jdGlvbiBQKGUpe2EoITEpfWZ1bmN0aW9uIEEoZSl7bGV0e2Jhc2VuYW1lOmk9Ii8iLGNoaWxkcmVuOnU9bnVsbCxsb2NhdGlvbjpzLG5hdmlnYXRpb25UeXBlOmM9dC5BY3Rpb24uUG9wLG5hdmlnYXRvcjpsLHN0YXRpYzpmPSExfT1lO3coKSYmYSghMSk7bGV0IHA9ZyhpKSxkPW4udXNlTWVtbygoKCk9Pih7YmFzZW5hbWU6cCxuYXZpZ2F0b3I6bCxzdGF0aWM6Zn0pKSxbcCxsLGZdKTsic3RyaW5nIj09dHlwZW9mIHMmJihzPXQucGFyc2VQYXRoKHMpKTtsZXR7cGF0aG5hbWU6aD0iLyIsc2VhcmNoOnk9IiIsaGFzaDptPSIiLHN0YXRlOl89bnVsbCxrZXk6Yj0iZGVmYXVsdCJ9PXMseD1uLnVzZU1lbW8oKCgpPT57bGV0IGU9dihoLHApO3JldHVybiBudWxsPT1lP251bGw6e3BhdGhuYW1lOmUsc2VhcmNoOnksaGFzaDptLHN0YXRlOl8sa2V5OmJ9fSksW3AsaCx5LG0sXyxiXSk7cmV0dXJuIG51bGw9PXg/bnVsbDpuLmNyZWF0ZUVsZW1lbnQoci5Qcm92aWRlcix7dmFsdWU6ZH0sbi5jcmVhdGVFbGVtZW50KG8uUHJvdmlkZXIse2NoaWxkcmVuOnUsdmFsdWU6e2xvY2F0aW9uOngsbmF2aWdhdGlvblR5cGU6Y319KSl9ZnVuY3Rpb24gaihlKXtsZXQgdD1bXTtyZXR1cm4gbi5DaGlsZHJlbi5mb3JFYWNoKGUsKGU9PntpZighbi5pc1ZhbGlkRWxlbWVudChlKSlyZXR1cm47aWYoZS50eXBlPT09bi5GcmFnbWVudClyZXR1cm4gdm9pZCB0LnB1c2guYXBwbHkodCxqKGUucHJvcHMuY2hpbGRyZW4pKTtlLnR5cGUhPT1QJiZhKCExKTtsZXQgcj17Y2FzZVNlbnNpdGl2ZTplLnByb3BzLmNhc2VTZW5zaXRpdmUsZWxlbWVudDplLnByb3BzLmVsZW1lbnQsaW5kZXg6ZS5wcm9wcy5pbmRleCxwYXRoOmUucHJvcHMucGF0aH07ZS5wcm9wcy5jaGlsZHJlbiYmKHIuY2hpbGRyZW49aihlLnByb3BzLmNoaWxkcmVuKSksdC5wdXNoKHIpfSkpLHR9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIk5hdmlnYXRpb25UeXBlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5BY3Rpb259fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImNyZWF0ZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmNyZWF0ZVBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInBhcnNlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQucGFyc2VQYXRofX0pLGUuTWVtb3J5Um91dGVyPWZ1bmN0aW9uKGUpe2xldHtiYXNlbmFtZTpyLGNoaWxkcmVuOm8saW5pdGlhbEVudHJpZXM6aSxpbml0aWFsSW5kZXg6YX09ZSx1PW4udXNlUmVmKCk7bnVsbD09dS5jdXJyZW50JiYodS5jdXJyZW50PXQuY3JlYXRlTWVtb3J5SGlzdG9yeSh7aW5pdGlhbEVudHJpZXM6aSxpbml0aWFsSW5kZXg6YX0pKTtsZXQgcz11LmN1cnJlbnQsW2MsbF09bi51c2VTdGF0ZSh7YWN0aW9uOnMuYWN0aW9uLGxvY2F0aW9uOnMubG9jYXRpb259KTtyZXR1cm4gbi51c2VMYXlvdXRFZmZlY3QoKCgpPT5zLmxpc3RlbihsKSksW3NdKSxuLmNyZWF0ZUVsZW1lbnQoQSx7YmFzZW5hbWU6cixjaGlsZHJlbjpvLGxvY2F0aW9uOmMubG9jYXRpb24sbmF2aWdhdGlvblR5cGU6Yy5hY3Rpb24sbmF2aWdhdG9yOnN9KX0sZS5OYXZpZ2F0ZT1mdW5jdGlvbihlKXtsZXR7dG86dCxyZXBsYWNlOnIsc3RhdGU6b309ZTt3KCl8fGEoITEpO2xldCBpPWsoKTtyZXR1cm4gbi51c2VFZmZlY3QoKCgpPT57aSh0LHtyZXBsYWNlOnIsc3RhdGU6b30pfSkpLG51bGx9LGUuT3V0bGV0PWZ1bmN0aW9uKGUpe3JldHVybiBFKGUuY29udGV4dCl9LGUuUm91dGU9UCxlLlJvdXRlcj1BLGUuUm91dGVzPWZ1bmN0aW9uKGUpe2xldHtjaGlsZHJlbjp0LGxvY2F0aW9uOm59PWU7cmV0dXJuIEMoaih0KSxuKX0sZS5VTlNBRkVfTG9jYXRpb25Db250ZXh0PW8sZS5VTlNBRkVfTmF2aWdhdGlvbkNvbnRleHQ9cixlLlVOU0FGRV9Sb3V0ZUNvbnRleHQ9aSxlLmNyZWF0ZVJvdXRlc0Zyb21DaGlsZHJlbj1qLGUuZ2VuZXJhdGVQYXRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxlLnJlcGxhY2UoLzooXHcrKS9nLCgoZSxuKT0+KG51bGw9PXRbbl0mJmEoITEpLHRbbl0pKSkucmVwbGFjZSgvXC8qXCokLywoZT0+bnVsbD09dFsiKiJdPyIiOnRbIioiXS5yZXBsYWNlKC9eXC8qLywiLyIpKSl9LGUubWF0Y2hQYXRoPWQsZS5tYXRjaFJvdXRlcz11LGUucmVuZGVyTWF0Y2hlcz1mdW5jdGlvbihlKXtyZXR1cm4gTyhlKX0sZS5yZXNvbHZlUGF0aD1oLGUudXNlSHJlZj1mdW5jdGlvbihlKXt3KCl8fGEoITEpO2xldHtiYXNlbmFtZTpvLG5hdmlnYXRvcjppfT1uLnVzZUNvbnRleHQocikse2hhc2g6dSxwYXRobmFtZTpzLHNlYXJjaDpjfT1UKGUpLGw9cztpZigiLyIhPT1vKXtsZXQgbj1mdW5jdGlvbihlKXtyZXR1cm4iIj09PWV8fCIiPT09ZS5wYXRobmFtZT8iLyI6InN0cmluZyI9PXR5cGVvZiBlP3QucGFyc2VQYXRoKGUpLnBhdGhuYW1lOmUucGF0aG5hbWV9KGUpLHI9bnVsbCE9biYmbi5lbmRzV2l0aCgiLyIpO2w9Ii8iPT09cz9vKyhyPyIvIjoiIik6bShbbyxzXSl9cmV0dXJuIGkuY3JlYXRlSHJlZih7cGF0aG5hbWU6bCxzZWFyY2g6YyxoYXNoOnV9KX0sZS51c2VJblJvdXRlckNvbnRleHQ9dyxlLnVzZUxvY2F0aW9uPXgsZS51c2VNYXRjaD1mdW5jdGlvbihlKXt3KCl8fGEoITEpO2xldHtwYXRobmFtZTp0fT14KCk7cmV0dXJuIG4udXNlTWVtbygoKCk9PmQoZSx0KSksW3QsZV0pfSxlLnVzZU5hdmlnYXRlPWssZS51c2VOYXZpZ2F0aW9uVHlwZT1mdW5jdGlvbigpe3JldHVybiBuLnVzZUNvbnRleHQobykubmF2aWdhdGlvblR5cGV9LGUudXNlT3V0bGV0PUUsZS51c2VPdXRsZXRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQ29udGV4dChTKX0sZS51c2VQYXJhbXM9ZnVuY3Rpb24oKXtsZXR7bWF0Y2hlczplfT1uLnVzZUNvbnRleHQoaSksdD1lW2UubGVuZ3RoLTFdO3JldHVybiB0P3QucGFyYW1zOnt9fSxlLnVzZVJlc29sdmVkUGF0aD1ULGUudXNlUm91dGVzPUMsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSh0LG4oODIyNDEpLG4oNjcyOTQpKX0sNzI0MDg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDI3NDE4KSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsaT1vP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxhPW8/U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik6NjAxMDYsdT1vP1N5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iik6NjAxMDcscz1vP1N5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIik6NjAxMDgsYz1vP1N5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIik6NjAxMTQsbD1vP1N5bWJvbC5mb3IoInJlYWN0LnByb3ZpZGVyIik6NjAxMDksZj1vP1N5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKTo2MDExMCxwPW8/U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKTo2MDExMixkPW8/U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKTo2MDExMyxoPW8/U3ltYm9sLmZvcigicmVhY3QubWVtbyIpOjYwMTE1LHk9bz9TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik6NjAxMTYsdj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gbShlKXtmb3IodmFyIHQ9Imh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIrZSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbl0pO3JldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifXZhciBnPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxfPXt9O2Z1bmN0aW9uIGIoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Xyx0aGlzLnVwZGF0ZXI9bnx8Z31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIHgoZSx0LG4pe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9Xyx0aGlzLnVwZGF0ZXI9bnx8Z31iLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LGIucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcihtKDg1KSk7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sYi5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHcucHJvdG90eXBlPWIucHJvdG90eXBlO3ZhciBrPXgucHJvdG90eXBlPW5ldyB3O2suY29uc3RydWN0b3I9eCxyKGssYi5wcm90b3R5cGUpLGsuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIFM9e2N1cnJlbnQ6bnVsbH0sRT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFQ9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBDKGUsdCxuKXt2YXIgcixvPXt9LGE9bnVsbCx1PW51bGw7aWYobnVsbCE9dClmb3IociBpbiB2b2lkIDAhPT10LnJlZiYmKHU9dC5yZWYpLHZvaWQgMCE9PXQua2V5JiYoYT0iIit0LmtleSksdClFLmNhbGwodCxyKSYmIVQuaGFzT3duUHJvcGVydHkocikmJihvW3JdPXRbcl0pO3ZhciBzPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09cylvLmNoaWxkcmVuPW47ZWxzZSBpZigxPHMpe2Zvcih2YXIgYz1BcnJheShzKSxsPTA7bDxzO2wrKyljW2xdPWFyZ3VtZW50c1tsKzJdO28uY2hpbGRyZW49Y31pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBzPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9bcl0mJihvW3JdPXNbcl0pO3JldHVybnskJHR5cGVvZjppLHR5cGU6ZSxrZXk6YSxyZWY6dSxwcm9wczpvLF9vd25lcjpTLmN1cnJlbnR9fWZ1bmN0aW9uIE8oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PWl9dmFyIFA9L1wvKy9nLEE9W107ZnVuY3Rpb24gaihlLHQsbixyKXtpZihBLmxlbmd0aCl7dmFyIG89QS5wb3AoKTtyZXR1cm4gby5yZXN1bHQ9ZSxvLmtleVByZWZpeD10LG8uZnVuYz1uLG8uY29udGV4dD1yLG8uY291bnQ9MCxvfXJldHVybntyZXN1bHQ6ZSxrZXlQcmVmaXg6dCxmdW5jOm4sY29udGV4dDpyLGNvdW50OjB9fWZ1bmN0aW9uIFIoZSl7ZS5yZXN1bHQ9bnVsbCxlLmtleVByZWZpeD1udWxsLGUuZnVuYz1udWxsLGUuY29udGV4dD1udWxsLGUuY291bnQ9MCwxMD5BLmxlbmd0aCYmQS5wdXNoKGUpfWZ1bmN0aW9uIE0oZSx0LG4scil7dmFyIG89dHlwZW9mIGU7InVuZGVmaW5lZCIhPT1vJiYiYm9vbGVhbiIhPT1vfHwoZT1udWxsKTt2YXIgdT0hMTtpZihudWxsPT09ZSl1PSEwO2Vsc2Ugc3dpdGNoKG8pe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6dT0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgaTpjYXNlIGE6dT0hMH19aWYodSlyZXR1cm4gbihyLGUsIiI9PT10PyIuIitJKGUsMCk6dCksMTtpZih1PTAsdD0iIj09PXQ/Ii4iOnQrIjoiLEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPXQrSShvPWVbc10scyk7dSs9TShvLGMsbixyKX1lbHNlIGlmKG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGU/Yz1udWxsOmM9ImZ1bmN0aW9uIj09dHlwZW9mKGM9diYmZVt2XXx8ZVsiQEBpdGVyYXRvciJdKT9jOm51bGwsImZ1bmN0aW9uIj09dHlwZW9mIGMpZm9yKGU9Yy5jYWxsKGUpLHM9MDshKG89ZS5uZXh0KCkpLmRvbmU7KXUrPU0obz1vLnZhbHVlLGM9dCtJKG8scysrKSxuLHIpO2Vsc2UgaWYoIm9iamVjdCI9PT1vKXRocm93IG49IiIrZSxFcnJvcihtKDMxLCJbb2JqZWN0IE9iamVjdF0iPT09bj8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9IjpuLCIiKSk7cmV0dXJuIHV9ZnVuY3Rpb24gTihlLHQsbil7cmV0dXJuIG51bGw9PWU/MDpNKGUsIiIsdCxuKX1mdW5jdGlvbiBJKGUsdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/ZnVuY3Rpb24oZSl7dmFyIHQ9eyI9IjoiPTAiLCI6IjoiPTIifTtyZXR1cm4iJCIrKCIiK2UpLnJlcGxhY2UoL1s9Ol0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9KGUua2V5KTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBGKGUsdCl7ZS5mdW5jLmNhbGwoZS5jb250ZXh0LHQsZS5jb3VudCsrKX1mdW5jdGlvbiBEKGUsdCxuKXt2YXIgcj1lLnJlc3VsdCxvPWUua2V5UHJlZml4O2U9ZS5mdW5jLmNhbGwoZS5jb250ZXh0LHQsZS5jb3VudCsrKSxBcnJheS5pc0FycmF5KGUpP0woZSxyLG4sKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpOm51bGwhPWUmJihPKGUpJiYoZT1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjppLHR5cGU6ZS50eXBlLGtleTp0LHJlZjplLnJlZixwcm9wczplLnByb3BzLF9vd25lcjplLl9vd25lcn19KGUsbysoIWUua2V5fHx0JiZ0LmtleT09PWUua2V5PyIiOigiIitlLmtleSkucmVwbGFjZShQLCIkJi8iKSsiLyIpK24pKSxyLnB1c2goZSkpfWZ1bmN0aW9uIEwoZSx0LG4scixvKXt2YXIgaT0iIjtudWxsIT1uJiYoaT0oIiIrbikucmVwbGFjZShQLCIkJi8iKSsiLyIpLE4oZSxELHQ9aih0LGkscixvKSksUih0KX12YXIgej17Y3VycmVudDpudWxsfTtmdW5jdGlvbiBVKCl7dmFyIGU9ei5jdXJyZW50O2lmKG51bGw9PT1lKXRocm93IEVycm9yKG0oMzIxKSk7cmV0dXJuIGV9dmFyIEI9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6eixSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzp7c3VzcGVuc2U6bnVsbH0sUmVhY3RDdXJyZW50T3duZXI6UyxJc1NvbWVSZW5kZXJlckFjdGluZzp7Y3VycmVudDohMX0sYXNzaWduOnJ9O3QuQ2hpbGRyZW49e21hcDpmdW5jdGlvbihlLHQsbil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgcj1bXTtyZXR1cm4gTChlLHIsbnVsbCx0LG4pLHJ9LGZvckVhY2g6ZnVuY3Rpb24oZSx0LG4pe2lmKG51bGw9PWUpcmV0dXJuIGU7TihlLEYsdD1qKG51bGwsbnVsbCx0LG4pKSxSKHQpfSxjb3VudDpmdW5jdGlvbihlKXtyZXR1cm4gTihlLChmdW5jdGlvbigpe3JldHVybiBudWxsfSksbnVsbCl9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIEwoZSx0LG51bGwsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpLHR9LG9ubHk6ZnVuY3Rpb24oZSl7aWYoIU8oZSkpdGhyb3cgRXJyb3IobSgxNDMpKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PWIsdC5GcmFnbWVudD11LHQuUHJvZmlsZXI9Yyx0LlB1cmVDb21wb25lbnQ9eCx0LlN0cmljdE1vZGU9cyx0LlN1c3BlbnNlPWQsdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1CLHQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT1lKXRocm93IEVycm9yKG0oMjY3LGUpKTt2YXIgbz1yKHt9LGUucHJvcHMpLGE9ZS5rZXksdT1lLnJlZixzPWUuX293bmVyO2lmKG51bGwhPXQpe2lmKHZvaWQgMCE9PXQucmVmJiYodT10LnJlZixzPVMuY3VycmVudCksdm9pZCAwIT09dC5rZXkmJihhPSIiK3Qua2V5KSxlLnR5cGUmJmUudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGM9ZS50eXBlLmRlZmF1bHRQcm9wcztmb3IobCBpbiB0KUUuY2FsbCh0LGwpJiYhVC5oYXNPd25Qcm9wZXJ0eShsKSYmKG9bbF09dm9pZCAwPT09dFtsXSYmdm9pZCAwIT09Yz9jW2xdOnRbbF0pfXZhciBsPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09bClvLmNoaWxkcmVuPW47ZWxzZSBpZigxPGwpe2M9QXJyYXkobCk7Zm9yKHZhciBmPTA7ZjxsO2YrKyljW2ZdPWFyZ3VtZW50c1tmKzJdO28uY2hpbGRyZW49Y31yZXR1cm57JCR0eXBlb2Y6aSx0eXBlOmUudHlwZSxrZXk6YSxyZWY6dSxwcm9wczpvLF9vd25lcjpzfX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW51bGwpLChlPXskJHR5cGVvZjpmLF9jYWxjdWxhdGVDaGFuZ2VkQml0czp0LF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjpsLF9jb250ZXh0OmV9LGUuQ29uc3VtZXI9ZX0sdC5jcmVhdGVFbGVtZW50PUMsdC5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGUpe3ZhciB0PUMuYmluZChudWxsLGUpO3JldHVybiB0LnR5cGU9ZSx0fSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnAscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PU8sdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjp5LF9jdG9yOmUsX3N0YXR1czotMSxfcmVzdWx0Om51bGx9fSx0Lm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6aCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVSgpLnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiBVKCkudXNlQ29udGV4dChlLHQpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFUoKS51c2VFZmZlY3QoZSx0KX0sdC51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gVSgpLnVzZUltcGVyYXRpdmVIYW5kbGUoZSx0LG4pfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBVKCkudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBVKCkudXNlTWVtbyhlLHQpfSx0LnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBVKCkudXNlUmVkdWNlcihlLHQsbil9LHQudXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBVKCkudXNlUmVmKGUpfSx0LnVzZVN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBVKCkudXNlU3RhdGUoZSl9LHQudmVyc2lvbj0iMTYuMTMuMSJ9LDY3Mjk0OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oNzI0MDgpfSw4NzkwODooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5mb3J3YXJkPXQuYmFjaz10LmdvRm9yd2FyZD10LmdvQmFjaz10LmdvPXQucmVwbGFjZT10LnB1c2g9dC5sb2NhdGlvbkNoYW5nZUFjdGlvbj10LkxPQ0FUSU9OX0NIQU5HRT10LkNBTExfSElTVE9SWV9NRVRIT0Q9dm9pZCAwLHQuQ0FMTF9ISVNUT1JZX01FVEhPRD0iQEByb3V0ZXIvQ0FMTF9ISVNUT1JZX01FVEhPRCIsdC5MT0NBVElPTl9DSEFOR0U9IkBAcm91dGVyL0xPQ0FUSU9OX0NIQU5HRSI7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07cmV0dXJue3R5cGU6dC5DQUxMX0hJU1RPUllfTUVUSE9ELHBheWxvYWQ6e21ldGhvZDplLGFyZ3M6bn19fX10LmxvY2F0aW9uQ2hhbmdlQWN0aW9uPWZ1bmN0aW9uKGUsbil7cmV0dXJue3R5cGU6dC5MT0NBVElPTl9DSEFOR0UscGF5bG9hZDp7bG9jYXRpb246ZSxhY3Rpb246bn19fSx0LnB1c2g9bigicHVzaCIpLHQucmVwbGFjZT1uKCJyZXBsYWNlIiksdC5nbz1uKCJnbyIpLHQuZ29CYWNrPW4oImdvQmFjayIpLHQuZ29Gb3J3YXJkPW4oImdvRm9yd2FyZCIpLHQuYmFjaz1uKCJiYWNrIiksdC5mb3J3YXJkPW4oImZvcndhcmQiKX0sNjg1MDg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5jcmVhdGVSZWR1eEhpc3RvcnlDb250ZXh0PXZvaWQgMDt2YXIgcj1uKDg3OTA4KSxvPW4oMTM1MjApLGk9big1NzEyMik7dC5jcmVhdGVSZWR1eEhpc3RvcnlDb250ZXh0PWZ1bmN0aW9uKGUpe3ZhciB0PWUuaGlzdG9yeSxuPWUucm91dGVyUmVkdWNlcktleSxhPXZvaWQgMD09PW4/InJvdXRlciI6bix1PWUucmVkdXhUcmF2ZWxsaW5nLHM9dm9pZCAwIT09dSYmdSxjPWUuc2hvd0hpc3RvcnlBY3Rpb24sbD12b2lkIDAhPT1jJiZjLGY9ZS5zZWxlY3RSb3V0ZXJTdGF0ZSxwPWUuc2F2ZVByZXZpb3VzTG9jYXRpb25zLGQ9dm9pZCAwPT09cD8wOnAsaD1lLmJhdGNoLHk9ZS5yZWFjaEdsb2JhbEhpc3Rvcnksdj1lLmJhc2VuYW1lLG09ITEsZz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG0/ZSh7bG9jYXRpb246dCxhY3Rpb246bn0pOmUodCxuKX07ImZ1bmN0aW9uIiE9dHlwZW9mIGgmJihoPWZ1bmN0aW9uKGUpe2UoKX0pLCJmdW5jdGlvbiIhPXR5cGVvZiBmJiYoZj1mdW5jdGlvbihlKXtyZXR1cm4gZVthXX0pO3ZhciBfPSgwLGkuY3JlYXRlUm91dGVyUmVkdWNlcikoe3NhdmVQcmV2aW91c0xvY2F0aW9uczpkLGJhc2VuYW1lOnZ9KSxiPSgwLG8uY3JlYXRlUm91dGVyTWlkZGxld2FyZSkoe2hpc3Rvcnk6dCxzaG93SGlzdG9yeUFjdGlvbjpsLGJhc2VuYW1lOnZ9KSx3PSExO3JldHVybntyb3V0ZXJSZWR1Y2VyOl8scm91dGVyTWlkZGxld2FyZTpiLGNyZWF0ZVJlZHV4SGlzdG9yeTpmdW5jdGlvbihlKXt2YXIgbj1bXTtyZXR1cm4gZS5kaXNwYXRjaCgoMCxyLmxvY2F0aW9uQ2hhbmdlQWN0aW9uKSh0LmxvY2F0aW9uLHQuYWN0aW9uKSkscyYmZnVuY3Rpb24oZSl7ZS5zdWJzY3JpYmUoKGZ1bmN0aW9uKCl7dmFyIG4scixvPWYoZS5nZXRTdGF0ZSgpKS5sb2NhdGlvbixpPXQubG9jYXRpb247byYmaSYmKHI9aSwobj1vKS5wYXRobmFtZSE9PXIucGF0aG5hbWV8fG4uc2VhcmNoIT09ci5zZWFyY2h8fG4uaGFzaCE9PXIuaGFzaCkmJih3PSEwLHQucHVzaCh7cGF0aG5hbWU6by5wYXRobmFtZSxzZWFyY2g6by5zZWFyY2gsaGFzaDpvLmhhc2h9KSl9KSl9KGUpLHQubGlzdGVuKChmdW5jdGlvbih0LG8pe2lmKHQubG9jYXRpb24mJihvPXQuYWN0aW9uLHQ9dC5sb2NhdGlvbixtPSEwKSx3KXt3PSExO3ZhciBpPWYoZS5nZXRTdGF0ZSgpKTtuLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBnKGUsaS5sb2NhdGlvbixpLmFjdGlvbil9KSl9ZWxzZSBoKChmdW5jdGlvbigpe2UuZGlzcGF0Y2goKDAsci5sb2NhdGlvbkNoYW5nZUFjdGlvbikodCxvKSk7dmFyIGk9ZihlLmdldFN0YXRlKCkpO24uZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSxpLmxvY2F0aW9uLGkuYWN0aW9uKX0pKX0pKX0pKSx5JiZ5Lmxpc3RlbigoZnVuY3Rpb24odCl7dmFyIG89dC5sb2NhdGlvbixpPXQuYWN0aW9uO2lmKCJQT1AiIT09aSl7dmFyIGE9e3BhdGhuYW1lOm8ucGF0aG5hbWUsc2VhcmNoOm8uc2VhcmNoLGhhc2g6by5oYXNoLGtleTpvLmtleSxzdGF0ZTpvLnN0YXRlfTtoKChmdW5jdGlvbigpe2UuZGlzcGF0Y2goKDAsci5sb2NhdGlvbkNoYW5nZUFjdGlvbikoYSxpKSk7dmFyIHQ9ZihlLmdldFN0YXRlKCkpO24uZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSx0LmxvY2F0aW9uLHQuYWN0aW9uKX0pKX0pKX19KSkse2Jsb2NrOnQuYmxvY2ssY3JlYXRlSHJlZjp0LmNyZWF0ZUhyZWYscHVzaDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZS5kaXNwYXRjaChyLnB1c2guYXBwbHkodm9pZCAwLHQpKX0scmVwbGFjZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZS5kaXNwYXRjaChyLnJlcGxhY2UuYXBwbHkodm9pZCAwLHQpKX0sZ286ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuZGlzcGF0Y2goci5nby5hcHBseSh2b2lkIDAsdCkpfSxnb0JhY2s6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuZGlzcGF0Y2goci5nb0JhY2suYXBwbHkodm9pZCAwLHQpKX0sZ29Gb3J3YXJkOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBlLmRpc3BhdGNoKHIuZ29Gb3J3YXJkLmFwcGx5KHZvaWQgMCx0KSl9LGJhY2s6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuZGlzcGF0Y2goci5iYWNrLmFwcGx5KHZvaWQgMCx0KSl9LGZvcndhcmQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuZGlzcGF0Y2goci5mb3J3YXJkLmFwcGx5KHZvaWQgMCx0KSl9LGxpc3RlbjpmdW5jdGlvbihlKXtyZXR1cm4gbi5pbmRleE9mKGUpPDAmJm4ucHVzaChlKSxmdW5jdGlvbigpe249bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pKX19LGdldCBsb2NhdGlvbigpe3JldHVybiBmKGUuZ2V0U3RhdGUoKSkubG9jYXRpb259LGdldCBhY3Rpb24oKXtyZXR1cm4gZihlLmdldFN0YXRlKCkpLmFjdGlvbn0sZ2V0IGxlbmd0aCgpe3JldHVybiB0Lmxlbmd0aH0sZ2V0IGxpc3Rlbk9iamVjdCgpe3JldHVybiBtfX19fX19LDgxMDM2OihlLHQsbik9PnsidXNlIHN0cmljdCI7dC52ND10Lm5rPXQuSG09dC5neD10LlZGPXZvaWQgMDt2YXIgcj1uKDg3OTA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiVkYiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnB1c2h9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImd4Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5yZXBsYWNlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJIbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZ29CYWNrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJuayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuTE9DQVRJT05fQ0hBTkdFfX0pO3ZhciBvPW4oMTQ5OTgpO3ZhciBpPW4oNjg1MDgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlUmVkdXhIaXN0b3J5Q29udGV4dH19KX0sMTM1MjA6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiByPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBvIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiYoZVtvXT10W29dKTtyZXR1cm4gZX0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG89dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQsbil7aWYobnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLG89MCxpPXQubGVuZ3RoO288aTtvKyspIXImJm8gaW4gdHx8KHJ8fChyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxvKSkscltvXT10W29dKTtyZXR1cm4gZS5jb25jYXQocnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5jcmVhdGVSb3V0ZXJNaWRkbGV3YXJlPXZvaWQgMDt2YXIgaT1uKDg3OTA4KTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlfHxlLnN0YXJ0c1dpdGgodCk/Im9iamVjdCI9PXR5cGVvZiBlJiZlLnBhdGhuYW1lJiYhZS5wYXRobmFtZS5zdGFydHNXaXRoKHQpP3Iocih7fSxlKSx7cGF0aG5hbWU6dCtlLnBhdGhuYW1lfSk6ZTp0K2V9dC5jcmVhdGVSb3V0ZXJNaWRkbGV3YXJlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaGlzdG9yeSxuPWUuc2hvd0hpc3RvcnlBY3Rpb24scj1lLmJhc2VuYW1lO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odSl7aWYodS50eXBlIT09aS5DQUxMX0hJU1RPUllfTUVUSE9EKXJldHVybiBlKHUpO3ZhciBzPXUucGF5bG9hZC5tZXRob2QsYz11LnBheWxvYWQuYXJncztzd2l0Y2gocyl7Y2FzZSJwdXNoIjp2YXIgbD1jO3ImJmMubGVuZ3RoPjAmJihsPW8oW2EoY1swXSxyKV0sYy5zbGljZSgxKSwhMCkpLHQucHVzaC5hcHBseSh0LGwpO2JyZWFrO2Nhc2UicmVwbGFjZSI6bD1jO3ImJmMubGVuZ3RoPjAmJihsPW8oW2EoY1swXSxyKV0sYy5zbGljZSgxKSwhMCkpLHQucmVwbGFjZS5hcHBseSh0LGwpO2JyZWFrO2Nhc2UiZ28iOnQuZ28uYXBwbHkodCxjKTticmVhaztjYXNlImJhY2siOmNhc2UiZ29CYWNrIjp0LmdvQmFjayYmdC5nb0JhY2suYXBwbHkodCxjKSx0LmJhY2smJnQuYmFjay5hcHBseSh0LGMpO2JyZWFrO2Nhc2UiZm9yd2FyZCI6Y2FzZSJnb0ZvcndhcmQiOnQuZ29Gb3J3YXJkJiZ0LmdvRm9yd2FyZC5hcHBseSh0LGMpLHQuZm9yd2FyZCYmdC5mb3J3YXJkLmFwcGx5KHQsYyl9cmV0dXJuIG4/ZSh1KTp2b2lkIDB9fX19fSwxNDk5ODooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5yZWFjaGlmeT12b2lkIDA7dC5yZWFjaGlmeT1mdW5jdGlvbihlKXt2YXIgdD0hMSxuPWZ1bmN0aW9uKCl7fTtyZXR1cm57X29uVHJhbnNpdGlvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7dD0hMSxuKCl9LGxpc3RlbjpmdW5jdGlvbih0KXtyZXR1cm4gZS5saXN0ZW5PYmplY3Q/ZS5saXN0ZW4odCk6ZS5saXN0ZW4oKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoe2xvY2F0aW9uOmUsYWN0aW9uOm59KX0pKX0sbmF2aWdhdGU6ZnVuY3Rpb24ocixvKXt2YXIgaT12b2lkIDA9PT1vP3t9Om8sYT1pLnN0YXRlLHU9aS5yZXBsYWNlO3JldHVybiB0fHx2b2lkIDAhPT11JiZ1P2UucmVwbGFjZShyLGEpOmUucHVzaChyLGEpLHQ9ITAsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3JldHVybiBuPWV9KSl9LGdldCBsb2NhdGlvbigpe3JldHVybiBlLmxvY2F0aW9ufSxnZXQgdHJhbnNpdGlvbmluZygpe3JldHVybiB0fX19fSw1NzEyMjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIG8gaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbykmJihlW29dPXRbb10pO3JldHVybiBlfSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbz10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKGUsdCxuKXtpZihufHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHIsbz0wLGk9dC5sZW5ndGg7bzxpO28rKykhciYmbyBpbiB0fHwocnx8KHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLG8pKSxyW29dPXRbb10pO3JldHVybiBlLmNvbmNhdChyfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmNyZWF0ZVJvdXRlclJlZHVjZXI9dm9pZCAwO3ZhciBpPW4oODc5MDgpO3QuY3JlYXRlUm91dGVyUmVkdWNlcj1mdW5jdGlvbihlKXt2YXIgdD1lLnNhdmVQcmV2aW91c0xvY2F0aW9ucyxuPXZvaWQgMD09PXQ/MDp0LGE9e2xvY2F0aW9uOm51bGwsYWN0aW9uOm51bGwsYmFzZW5hbWU6ZS5iYXNlbmFtZX0sdT1pc05hTihuKT8wOm47cmV0dXJuIHUmJihhLnByZXZpb3VzTG9jYXRpb25zPVtdKSxmdW5jdGlvbihlLHQpe3ZvaWQgMD09PWUmJihlPWEpO3ZhciBuPXZvaWQgMD09PXQ/e306dCxzPW4udHlwZSxjPW4ucGF5bG9hZDtpZihzPT09aS5MT0NBVElPTl9DSEFOR0Upe3ZhciBsPWN8fHt9LGY9bC5sb2NhdGlvbixwPWwuYWN0aW9uLGQ9dT9vKFt7bG9jYXRpb246ZixhY3Rpb246cH1dLGUucHJldmlvdXNMb2NhdGlvbnMuc2xpY2UoMCx1KSwhMCk6dm9pZCAwO3JldHVybiByKHIoe30sZSkse2xvY2F0aW9uOmYsYWN0aW9uOnAscHJldmlvdXNMb2NhdGlvbnM6ZH0pfXJldHVybiBlfX19LDU5NjgxOihlLHQpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQuZGlzcGF0Y2gscj10LmdldFN0YXRlO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8/byhuLHIsZSk6dChvKX19fX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCk7ci53aXRoRXh0cmFBcmd1bWVudD1uO3ZhciBvPXI7dC5kZWZhdWx0PW99LDM1MjgxOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZGVmYXVsdCJpbiBlP2U6e2RlZmF1bHQ6ZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPXIobig3ODE2MSkpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIk1pbmlmaWVkIFJlZHV4IGVycm9yICMiK2UrIjsgdmlzaXQgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvRXJyb3JzP2NvZGU9IitlKyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycy4gIn12YXIgYT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSIsdT1mdW5jdGlvbigpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykuc3BsaXQoIiIpLmpvaW4oIi4iKX0scz17SU5JVDoiQEByZWR1eC9JTklUIit1KCksUkVQTEFDRToiQEByZWR1eC9SRVBMQUNFIit1KCksUFJPQkVfVU5LTk9XTl9BQ1RJT046ZnVuY3Rpb24oKXtyZXR1cm4iQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiIrdSgpfX07ZnVuY3Rpb24gYyhlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiExO2Zvcih2YXIgdD1lO251bGwhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7KXQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT10fWZ1bmN0aW9uIGwoZSx0LG4pe3ZhciByO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4mJiJmdW5jdGlvbiI9PXR5cGVvZiBhcmd1bWVudHNbM10pdGhyb3cgbmV3IEVycm9yKGkoMCkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uJiYobj10LHQ9dm9pZCAwKSx2b2lkIDAhPT1uKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoaSgxKSk7cmV0dXJuIG4obCkoZSx0KX1pZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoaSgyKSk7dmFyIG89ZSx1PXQsZj1bXSxwPWYsZD0hMTtmdW5jdGlvbiBoKCl7cD09PWYmJihwPWYuc2xpY2UoKSl9ZnVuY3Rpb24geSgpe2lmKGQpdGhyb3cgbmV3IEVycm9yKGkoMykpO3JldHVybiB1fWZ1bmN0aW9uIHYoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKGkoNCkpO2lmKGQpdGhyb3cgbmV3IEVycm9yKGkoNSkpO3ZhciB0PSEwO3JldHVybiBoKCkscC5wdXNoKGUpLGZ1bmN0aW9uKCl7aWYodCl7aWYoZCl0aHJvdyBuZXcgRXJyb3IoaSg2KSk7dD0hMSxoKCk7dmFyIG49cC5pbmRleE9mKGUpO3Auc3BsaWNlKG4sMSksZj1udWxsfX19ZnVuY3Rpb24gbShlKXtpZighYyhlKSl0aHJvdyBuZXcgRXJyb3IoaSg3KSk7aWYodm9pZCAwPT09ZS50eXBlKXRocm93IG5ldyBFcnJvcihpKDgpKTtpZihkKXRocm93IG5ldyBFcnJvcihpKDkpKTt0cnl7ZD0hMCx1PW8odSxlKX1maW5hbGx5e2Q9ITF9Zm9yKHZhciB0PWY9cCxuPTA7bjx0Lmxlbmd0aDtuKyspeygwLHRbbl0pKCl9cmV0dXJuIGV9cmV0dXJuIG0oe3R5cGU6cy5JTklUfSksKHI9e2Rpc3BhdGNoOm0sc3Vic2NyaWJlOnYsZ2V0U3RhdGU6eSxyZXBsYWNlUmVkdWNlcjpmdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoaSgxMCkpO289ZSxtKHt0eXBlOnMuUkVQTEFDRX0pfX0pW2FdPWZ1bmN0aW9uKCl7dmFyIGUsdD12O3JldHVybihlPXtzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoaSgxMSkpO2Z1bmN0aW9uIG4oKXtlLm5leHQmJmUubmV4dCh5KCkpfXJldHVybiBuKCkse3Vuc3Vic2NyaWJlOnQobil9fX0pW2FdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGV9LHJ9dmFyIGY9bDtmdW5jdGlvbiBwKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX1mdW5jdGlvbiBkKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIDA9PT10Lmxlbmd0aD9mdW5jdGlvbihlKXtyZXR1cm4gZX06MT09PXQubGVuZ3RoP3RbMF06dC5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fSkpfXQuX19ET19OT1RfVVNFX19BY3Rpb25UeXBlcz1zLHQuYXBwbHlNaWRkbGV3YXJlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykscj1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihpKDE1KSl9LGE9e2dldFN0YXRlOm4uZ2V0U3RhdGUsZGlzcGF0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19LHU9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlKGEpfSkpO3JldHVybiByPWQuYXBwbHkodm9pZCAwLHUpKG4uZGlzcGF0Y2gpLG8uZGVmYXVsdChvLmRlZmF1bHQoe30sbikse30se2Rpc3BhdGNoOnJ9KX19fSx0LmJpbmRBY3Rpb25DcmVhdG9ycz1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXJldHVybiBwKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoaSgxNikpO3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKXt2YXIgbz1lW3JdOyJmdW5jdGlvbiI9PXR5cGVvZiBvJiYobltyXT1wKG8sdCkpfXJldHVybiBufSx0LmNvbWJpbmVSZWR1Y2Vycz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj17fSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07MCwiZnVuY3Rpb24iPT10eXBlb2YgZVtvXSYmKG5bb109ZVtvXSl9dmFyIGEsdT1PYmplY3Qua2V5cyhuKTt0cnl7IWZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWVbdF07aWYodm9pZCAwPT09bih2b2lkIDAse3R5cGU6cy5JTklUfSkpdGhyb3cgbmV3IEVycm9yKGkoMTIpKTtpZih2b2lkIDA9PT1uKHZvaWQgMCx7dHlwZTpzLlBST0JFX1VOS05PV05fQUNUSU9OKCl9KSl0aHJvdyBuZXcgRXJyb3IoaSgxMykpfSkpfShuKX1jYXRjaChlKXthPWV9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwPT09ZSYmKGU9e30pLGEpdGhyb3cgYTtmb3IodmFyIHI9ITEsbz17fSxzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBjPXVbc10sbD1uW2NdLGY9ZVtjXSxwPWwoZix0KTtpZih2b2lkIDA9PT1wKXt0JiZ0LnR5cGU7dGhyb3cgbmV3IEVycm9yKGkoMTQpKX1vW2NdPXAscj1yfHxwIT09Zn1yZXR1cm4ocj1yfHx1Lmxlbmd0aCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aCk/bzplfX0sdC5jb21wb3NlPWQsdC5jcmVhdGVTdG9yZT1sLHQubGVnYWN5X2NyZWF0ZVN0b3JlPWZ9LDk3OTI6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sNzgxNjE6KGUsdCxuKT0+e3ZhciByPW4oOTc5Mik7ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP28oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpvKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDUzMzc2OihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmNyZWF0ZUNhY2hlS2V5Q29tcGFyYXRvcj1vLHQuZGVmYXVsdEVxdWFsaXR5Q2hlY2s9dm9pZCAwLHQuZGVmYXVsdE1lbW9pemU9ZnVuY3Rpb24oZSx0KXt2YXIgaT0ib2JqZWN0Ij09dHlwZW9mIHQ/dDp7ZXF1YWxpdHlDaGVjazp0fSxhPWkuZXF1YWxpdHlDaGVjayx1PXZvaWQgMD09PWE/cjphLHM9aS5tYXhTaXplLGM9dm9pZCAwPT09cz8xOnMsbD1pLnJlc3VsdEVxdWFsaXR5Q2hlY2ssZj1vKHUpLHA9MT09PWM/KGQ9Zix7Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBoJiZkKGgua2V5LGUpP2gudmFsdWU6bn0scHV0OmZ1bmN0aW9uKGUsdCl7aD17a2V5OmUsdmFsdWU6dH19LGdldEVudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9baF06W119LGNsZWFyOmZ1bmN0aW9uKCl7aD12b2lkIDB9fSk6ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtmdW5jdGlvbiBvKGUpe3ZhciBvPXIuZmluZEluZGV4KChmdW5jdGlvbihuKXtyZXR1cm4gdChlLG4ua2V5KX0pKTtpZihvPi0xKXt2YXIgaT1yW29dO3JldHVybiBvPjAmJihyLnNwbGljZShvLDEpLHIudW5zaGlmdChpKSksaS52YWx1ZX1yZXR1cm4gbn1mdW5jdGlvbiBpKHQsaSl7byh0KT09PW4mJihyLnVuc2hpZnQoe2tleTp0LHZhbHVlOml9KSxyLmxlbmd0aD5lJiZyLnBvcCgpKX1mdW5jdGlvbiBhKCl7cmV0dXJuIHJ9ZnVuY3Rpb24gdSgpe3I9W119cmV0dXJue2dldDpvLHB1dDppLGdldEVudHJpZXM6YSxjbGVhcjp1fX0oYyxmKTt2YXIgZCxoO2Z1bmN0aW9uIHkoKXt2YXIgdD1wLmdldChhcmd1bWVudHMpO2lmKHQ9PT1uKXtpZih0PWUuYXBwbHkobnVsbCxhcmd1bWVudHMpLGwpe3ZhciByPXAuZ2V0RW50cmllcygpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBsKGUudmFsdWUsdCl9KSk7ciYmKHQ9ci52YWx1ZSl9cC5wdXQoYXJndW1lbnRzLHQpfXJldHVybiB0fXJldHVybiB5LmNsZWFyQ2FjaGU9ZnVuY3Rpb24oKXtyZXR1cm4gcC5jbGVhcigpfSx5fTt2YXIgbj0iTk9UX0ZPVU5EIjt2YXIgcj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dH07ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZihudWxsPT09dHx8bnVsbD09PW58fHQubGVuZ3RoIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciByPXQubGVuZ3RoLG89MDtvPHI7bysrKWlmKCFlKHRbb10sbltvXSkpcmV0dXJuITE7cmV0dXJuITB9fXQuZGVmYXVsdEVxdWFsaXR5Q2hlY2s9cn0sNDIyNzk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5jcmVhdGVTZWxlY3Rvcj12b2lkIDAsdC5jcmVhdGVTZWxlY3RvckNyZWF0b3I9byx0LmNyZWF0ZVN0cnVjdHVyZWRTZWxlY3Rvcj12b2lkIDAsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlZmF1bHRFcXVhbGl0eUNoZWNrIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5kZWZhdWx0RXF1YWxpdHlDaGVja319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdE1lbW9pemUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLmRlZmF1bHRNZW1vaXplfX0pO3ZhciByPW4oNTMzNzYpO2Z1bmN0aW9uIG8oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkodD4xP3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KHQpLG89MDtvPHQ7bysrKXJbb109YXJndW1lbnRzW29dO3ZhciBpLGE9MCx1PXttZW1vaXplT3B0aW9uczp2b2lkIDB9LHM9ci5wb3AoKTtpZigib2JqZWN0Ij09dHlwZW9mIHMmJih1PXMscz1yLnBvcCgpKSwiZnVuY3Rpb24iIT10eXBlb2Ygcyl0aHJvdyBuZXcgRXJyb3IoImNyZWF0ZVNlbGVjdG9yIGV4cGVjdHMgYW4gb3V0cHV0IGZ1bmN0aW9uIGFmdGVyIHRoZSBpbnB1dHMsIGJ1dCByZWNlaXZlZDogWyIrdHlwZW9mIHMrIl0iKTt2YXIgYz11Lm1lbW9pemVPcHRpb25zLGw9dm9pZCAwPT09Yz9uOmMsZj1BcnJheS5pc0FycmF5KGwpP2w6W2xdLHA9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlWzBdKT9lWzBdOmU7aWYoIXQuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfSkpKXt2YXIgbj10Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/ImZ1bmN0aW9uICIrKGUubmFtZXx8InVubmFtZWQiKSsiKCkiOnR5cGVvZiBlfSkpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKCJjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBidXQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogWyIrbisiXSIpfXJldHVybiB0fShyKSxkPWUuYXBwbHkodm9pZCAwLFtmdW5jdGlvbigpe3JldHVybiBhKysscy5hcHBseShudWxsLGFyZ3VtZW50cyl9XS5jb25jYXQoZikpLGg9ZSgoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD1wLmxlbmd0aCxuPTA7bjx0O24rKyllLnB1c2gocFtuXS5hcHBseShudWxsLGFyZ3VtZW50cykpO3JldHVybiBpPWQuYXBwbHkobnVsbCxlKX0pKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihoLHtyZXN1bHRGdW5jOnMsbWVtb2l6ZWRSZXN1bHRGdW5jOmQsZGVwZW5kZW5jaWVzOnAsbGFzdFJlc3VsdDpmdW5jdGlvbigpe3JldHVybiBpfSxyZWNvbXB1dGF0aW9uczpmdW5jdGlvbigpe3JldHVybiBhfSxyZXNldFJlY29tcHV0YXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIGE9MH19KSxofX12YXIgaT1vKHIuZGVmYXVsdE1lbW9pemUpO3QuY3JlYXRlU2VsZWN0b3I9aTt0LmNyZWF0ZVN0cnVjdHVyZWRTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKHZvaWQgMD09PXQmJih0PWkpLCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImNyZWF0ZVN0cnVjdHVyZWRTZWxlY3RvciBleHBlY3RzIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCB3aGVyZSBlYWNoIHByb3BlcnR5IGlzIGEgc2VsZWN0b3IsIGluc3RlYWQgcmVjZWl2ZWQgYSAiK3R5cGVvZiBlKTt2YXIgbj1PYmplY3Qua2V5cyhlKSxyPXQobi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkpLChmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlW25bcl1dPXQsZX0pLHt9KX0pKTtyZXR1cm4gcn19LDk5MzUzOihlLHQsbik9PntlLmV4cG9ydHM9big3MTg0Nil9LDcxODQ2OihlLHQsbik9Pnt2YXIgcj1uKDQxOTYwKTt0Lm9wZXJhdGlvbj1mdW5jdGlvbihlKXt2YXIgbj10LnRpbWVvdXRzKGUpO3JldHVybiBuZXcgcihuLHtmb3JldmVyOmUmJihlLmZvcmV2ZXJ8fGUucmV0cmllcz09PTEvMCksdW5yZWY6ZSYmZS51bnJlZixtYXhSZXRyeVRpbWU6ZSYmZS5tYXhSZXRyeVRpbWV9KX0sdC50aW1lb3V0cz1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuW10uY29uY2F0KGUpO3ZhciB0PXtyZXRyaWVzOjEwLGZhY3RvcjoyLG1pblRpbWVvdXQ6MWUzLG1heFRpbWVvdXQ6MS8wLHJhbmRvbWl6ZTohMX07Zm9yKHZhciBuIGluIGUpdFtuXT1lW25dO2lmKHQubWluVGltZW91dD50Lm1heFRpbWVvdXQpdGhyb3cgbmV3IEVycm9yKCJtaW5UaW1lb3V0IGlzIGdyZWF0ZXIgdGhhbiBtYXhUaW1lb3V0Iik7Zm9yKHZhciByPVtdLG89MDtvPHQucmV0cmllcztvKyspci5wdXNoKHRoaXMuY3JlYXRlVGltZW91dChvLHQpKTtyZXR1cm4gZSYmZS5mb3JldmVyJiYhci5sZW5ndGgmJnIucHVzaCh0aGlzLmNyZWF0ZVRpbWVvdXQobyx0KSksci5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9KSkscn0sdC5jcmVhdGVUaW1lb3V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5yYW5kb21pemU/TWF0aC5yYW5kb20oKSsxOjEscj1NYXRoLnJvdW5kKG4qTWF0aC5tYXgodC5taW5UaW1lb3V0LDEpKk1hdGgucG93KHQuZmFjdG9yLGUpKTtyZXR1cm4gcj1NYXRoLm1pbihyLHQubWF4VGltZW91dCl9LHQud3JhcD1mdW5jdGlvbihlLG4scil7aWYobiBpbnN0YW5jZW9mIEFycmF5JiYocj1uLG49bnVsbCksIXIpZm9yKHZhciBvIGluIHI9W10sZSkiZnVuY3Rpb24iPT10eXBlb2YgZVtvXSYmci5wdXNoKG8pO2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldLHU9ZVthXTtlW2FdPWZ1bmN0aW9uKHIpe3ZhciBvPXQub3BlcmF0aW9uKG4pLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGE9aS5wb3AoKTtpLnB1c2goKGZ1bmN0aW9uKGUpe28ucmV0cnkoZSl8fChlJiYoYXJndW1lbnRzWzBdPW8ubWFpbkVycm9yKCkpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKSxvLmF0dGVtcHQoKGZ1bmN0aW9uKCl7ci5hcHBseShlLGkpfSkpfS5iaW5kKGUsdSksZVthXS5vcHRpb25zPW59fX0sNDE5NjA6ZT0+e2Z1bmN0aW9uIHQoZSx0KXsiYm9vbGVhbiI9PXR5cGVvZiB0JiYodD17Zm9yZXZlcjp0fSksdGhpcy5fb3JpZ2luYWxUaW1lb3V0cz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSx0aGlzLl90aW1lb3V0cz1lLHRoaXMuX29wdGlvbnM9dHx8e30sdGhpcy5fbWF4UmV0cnlUaW1lPXQmJnQubWF4UmV0cnlUaW1lfHwxLzAsdGhpcy5fZm49bnVsbCx0aGlzLl9lcnJvcnM9W10sdGhpcy5fYXR0ZW1wdHM9MSx0aGlzLl9vcGVyYXRpb25UaW1lb3V0PW51bGwsdGhpcy5fb3BlcmF0aW9uVGltZW91dENiPW51bGwsdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX29wZXJhdGlvblN0YXJ0PW51bGwsdGhpcy5fdGltZXI9bnVsbCx0aGlzLl9vcHRpb25zLmZvcmV2ZXImJih0aGlzLl9jYWNoZWRUaW1lb3V0cz10aGlzLl90aW1lb3V0cy5zbGljZSgwKSl9ZS5leHBvcnRzPXQsdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hdHRlbXB0cz0xLHRoaXMuX3RpbWVvdXRzPXRoaXMuX29yaWdpbmFsVGltZW91dHMuc2xpY2UoMCl9LHQucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLl90aW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksdGhpcy5fdGltZXImJmNsZWFyVGltZW91dCh0aGlzLl90aW1lciksdGhpcy5fdGltZW91dHM9W10sdGhpcy5fY2FjaGVkVGltZW91dHM9bnVsbH0sdC5wcm90b3R5cGUucmV0cnk9ZnVuY3Rpb24oZSl7aWYodGhpcy5fdGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLCFlKXJldHVybiExO3ZhciB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpO2lmKGUmJnQtdGhpcy5fb3BlcmF0aW9uU3RhcnQ+PXRoaXMuX21heFJldHJ5VGltZSlyZXR1cm4gdGhpcy5fZXJyb3JzLnB1c2goZSksdGhpcy5fZXJyb3JzLnVuc2hpZnQobmV3IEVycm9yKCJSZXRyeU9wZXJhdGlvbiB0aW1lb3V0IG9jY3VycmVkIikpLCExO3RoaXMuX2Vycm9ycy5wdXNoKGUpO3ZhciBuPXRoaXMuX3RpbWVvdXRzLnNoaWZ0KCk7aWYodm9pZCAwPT09bil7aWYoIXRoaXMuX2NhY2hlZFRpbWVvdXRzKXJldHVybiExO3RoaXMuX2Vycm9ycy5zcGxpY2UoMCx0aGlzLl9lcnJvcnMubGVuZ3RoLTEpLG49dGhpcy5fY2FjaGVkVGltZW91dHMuc2xpY2UoLTEpfXZhciByPXRoaXM7cmV0dXJuIHRoaXMuX3RpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5fYXR0ZW1wdHMrKyxyLl9vcGVyYXRpb25UaW1lb3V0Q2ImJihyLl90aW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5fb3BlcmF0aW9uVGltZW91dENiKHIuX2F0dGVtcHRzKX0pLHIuX29wZXJhdGlvblRpbWVvdXQpLHIuX29wdGlvbnMudW5yZWYmJnIuX3RpbWVvdXQudW5yZWYoKSksci5fZm4oci5fYXR0ZW1wdHMpfSksbiksdGhpcy5fb3B0aW9ucy51bnJlZiYmdGhpcy5fdGltZXIudW5yZWYoKSwhMH0sdC5wcm90b3R5cGUuYXR0ZW1wdD1mdW5jdGlvbihlLHQpe3RoaXMuX2ZuPWUsdCYmKHQudGltZW91dCYmKHRoaXMuX29wZXJhdGlvblRpbWVvdXQ9dC50aW1lb3V0KSx0LmNiJiYodGhpcy5fb3BlcmF0aW9uVGltZW91dENiPXQuY2IpKTt2YXIgbj10aGlzO3RoaXMuX29wZXJhdGlvblRpbWVvdXRDYiYmKHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuLl9vcGVyYXRpb25UaW1lb3V0Q2IoKX0pLG4uX29wZXJhdGlvblRpbWVvdXQpKSx0aGlzLl9vcGVyYXRpb25TdGFydD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLl9mbih0aGlzLl9hdHRlbXB0cyl9LHQucHJvdG90eXBlLnRyeT1mdW5jdGlvbihlKXtjb25zb2xlLmxvZygiVXNpbmcgUmV0cnlPcGVyYXRpb24udHJ5KCkgaXMgZGVwcmVjYXRlZCIpLHRoaXMuYXR0ZW1wdChlKX0sdC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oZSl7Y29uc29sZS5sb2coIlVzaW5nIFJldHJ5T3BlcmF0aW9uLnN0YXJ0KCkgaXMgZGVwcmVjYXRlZCIpLHRoaXMuYXR0ZW1wdChlKX0sdC5wcm90b3R5cGUuc3RhcnQ9dC5wcm90b3R5cGUudHJ5LHQucHJvdG90eXBlLmVycm9ycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lcnJvcnN9LHQucHJvdG90eXBlLmF0dGVtcHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F0dGVtcHRzfSx0LnByb3RvdHlwZS5tYWluRXJyb3I9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5fZXJyb3JzLmxlbmd0aClyZXR1cm4gbnVsbDtmb3IodmFyIGU9e30sdD1udWxsLG49MCxyPTA7cjx0aGlzLl9lcnJvcnMubGVuZ3RoO3IrKyl7dmFyIG89dGhpcy5fZXJyb3JzW3JdLGk9by5tZXNzYWdlLGE9KGVbaV18fDApKzE7ZVtpXT1hLGE+PW4mJih0PW8sbj1hKX1yZXR1cm4gdH19LDYwMDUzOihlLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuLHIsbyxpLGE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fCJmdW5jdGlvbiIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIHU9bnVsbCxzPW51bGwsYz1mdW5jdGlvbigpe2lmKG51bGwhPT11KXRyeXt2YXIgZT10LnVuc3RhYmxlX25vdygpO3UoITAsZSksdT1udWxsfWNhdGNoKGUpe3Rocm93IHNldFRpbWVvdXQoYywwKSxlfX0sbD1EYXRlLm5vdygpO3QudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCktbH0sbj1mdW5jdGlvbihlKXtudWxsIT09dT9zZXRUaW1lb3V0KG4sMCxlKToodT1lLHNldFRpbWVvdXQoYywwKSl9LHI9ZnVuY3Rpb24oZSx0KXtzPXNldFRpbWVvdXQoZSx0KX0sbz1mdW5jdGlvbigpe2NsZWFyVGltZW91dChzKX0saT1mdW5jdGlvbigpe3JldHVybiExfSxhPXQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIGY9d2luZG93LnBlcmZvcm1hbmNlLHA9d2luZG93LkRhdGUsZD13aW5kb3cuc2V0VGltZW91dCxoPXdpbmRvdy5jbGVhclRpbWVvdXQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlKXt2YXIgeT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU7ImZ1bmN0aW9uIiE9dHlwZW9mIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJmNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxscyIpLCJmdW5jdGlvbiIhPXR5cGVvZiB5JiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxscyIpfWlmKCJvYmplY3QiPT10eXBlb2YgZiYmImZ1bmN0aW9uIj09dHlwZW9mIGYubm93KXQudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGYubm93KCl9O2Vsc2V7dmFyIHY9cC5ub3coKTt0LnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBwLm5vdygpLXZ9fXZhciBtPSExLGc9bnVsbCxfPS0xLGI9NSx3PTA7aT1mdW5jdGlvbigpe3JldHVybiB0LnVuc3RhYmxlX25vdygpPj13fSxhPWZ1bmN0aW9uKCl7fSx0LnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpezA+ZXx8MTI1PGU/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWVyYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCB1bnN1cHBvcnRlZCIpOmI9MDxlP01hdGguZmxvb3IoMWUzL2UpOjV9O3ZhciB4PW5ldyBNZXNzYWdlQ2hhbm5lbCxrPXgucG9ydDI7eC5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtpZihudWxsIT09Zyl7dmFyIGU9dC51bnN0YWJsZV9ub3coKTt3PWUrYjt0cnl7ZyghMCxlKT9rLnBvc3RNZXNzYWdlKG51bGwpOihtPSExLGc9bnVsbCl9Y2F0Y2goZSl7dGhyb3cgay5wb3N0TWVzc2FnZShudWxsKSxlfX1lbHNlIG09ITF9LG49ZnVuY3Rpb24oZSl7Zz1lLG18fChtPSEwLGsucG9zdE1lc3NhZ2UobnVsbCkpfSxyPWZ1bmN0aW9uKGUsbil7Xz1kKChmdW5jdGlvbigpe2UodC51bnN0YWJsZV9ub3coKSl9KSxuKX0sbz1mdW5jdGlvbigpe2goXyksXz0tMX19ZnVuY3Rpb24gUyhlLHQpe3ZhciBuPWUubGVuZ3RoO2UucHVzaCh0KTtlOmZvcig7Oyl7dmFyIHI9bi0xPj4+MSxvPWVbcl07aWYoISh2b2lkIDAhPT1vJiYwPEMobyx0KSkpYnJlYWsgZTtlW3JdPXQsZVtuXT1vLG49cn19ZnVuY3Rpb24gRShlKXtyZXR1cm4gdm9pZCAwPT09KGU9ZVswXSk/bnVsbDplfWZ1bmN0aW9uIFQoZSl7dmFyIHQ9ZVswXTtpZih2b2lkIDAhPT10KXt2YXIgbj1lLnBvcCgpO2lmKG4hPT10KXtlWzBdPW47ZTpmb3IodmFyIHI9MCxvPWUubGVuZ3RoO3I8bzspe3ZhciBpPTIqKHIrMSktMSxhPWVbaV0sdT1pKzEscz1lW3VdO2lmKHZvaWQgMCE9PWEmJjA+QyhhLG4pKXZvaWQgMCE9PXMmJjA+QyhzLGEpPyhlW3JdPXMsZVt1XT1uLHI9dSk6KGVbcl09YSxlW2ldPW4scj1pKTtlbHNle2lmKCEodm9pZCAwIT09cyYmMD5DKHMsbikpKWJyZWFrIGU7ZVtyXT1zLGVbdV09bixyPXV9fX1yZXR1cm4gdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKGUsdCl7dmFyIG49ZS5zb3J0SW5kZXgtdC5zb3J0SW5kZXg7cmV0dXJuIDAhPT1uP246ZS5pZC10LmlkfXZhciBPPVtdLFA9W10sQT0xLGo9bnVsbCxSPTMsTT0hMSxOPSExLEk9ITE7ZnVuY3Rpb24gRihlKXtmb3IodmFyIHQ9RShQKTtudWxsIT09dDspe2lmKG51bGw9PT10LmNhbGxiYWNrKVQoUCk7ZWxzZXtpZighKHQuc3RhcnRUaW1lPD1lKSlicmVhaztUKFApLHQuc29ydEluZGV4PXQuZXhwaXJhdGlvblRpbWUsUyhPLHQpfXQ9RShQKX19ZnVuY3Rpb24gRChlKXtpZihJPSExLEYoZSksIU4paWYobnVsbCE9PUUoTykpTj0hMCxuKEwpO2Vsc2V7dmFyIHQ9RShQKTtudWxsIT09dCYmcihELHQuc3RhcnRUaW1lLWUpfX1mdW5jdGlvbiBMKGUsbil7Tj0hMSxJJiYoST0hMSxvKCkpLE09ITA7dmFyIGE9Ujt0cnl7Zm9yKEYobiksaj1FKE8pO251bGwhPT1qJiYoIShqLmV4cGlyYXRpb25UaW1lPm4pfHxlJiYhaSgpKTspe3ZhciB1PWouY2FsbGJhY2s7aWYobnVsbCE9PXUpe2ouY2FsbGJhY2s9bnVsbCxSPWoucHJpb3JpdHlMZXZlbDt2YXIgcz11KGouZXhwaXJhdGlvblRpbWU8PW4pO249dC51bnN0YWJsZV9ub3coKSwiZnVuY3Rpb24iPT10eXBlb2Ygcz9qLmNhbGxiYWNrPXM6aj09PUUoTykmJlQoTyksRihuKX1lbHNlIFQoTyk7aj1FKE8pfWlmKG51bGwhPT1qKXZhciBjPSEwO2Vsc2V7dmFyIGw9RShQKTtudWxsIT09bCYmcihELGwuc3RhcnRUaW1lLW4pLGM9ITF9cmV0dXJuIGN9ZmluYWxseXtqPW51bGwsUj1hLE09ITF9fWZ1bmN0aW9uIHooZSl7c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4tMTtjYXNlIDI6cmV0dXJuIDI1MDtjYXNlIDU6cmV0dXJuIDEwNzM3NDE4MjM7Y2FzZSA0OnJldHVybiAxZTQ7ZGVmYXVsdDpyZXR1cm4gNWUzfX12YXIgVT1hO3QudW5zdGFibGVfSWRsZVByaW9yaXR5PTUsdC51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHQudW5zdGFibGVfTG93UHJpb3JpdHk9NCx0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsdC51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCx0LnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsdC51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihlKXtlLmNhbGxiYWNrPW51bGx9LHQudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtOfHxNfHwoTj0hMCxuKEwpKX0sdC51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBSfSx0LnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIEUoTyl9LHQudW5zdGFibGVfbmV4dD1mdW5jdGlvbihlKXtzd2l0Y2goUil7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIHQ9MzticmVhaztkZWZhdWx0OnQ9Un12YXIgbj1SO1I9dDt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e1I9bn19LHQudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9LHQudW5zdGFibGVfcmVxdWVzdFBhaW50PVUsdC51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmU9M312YXIgbj1SO1I9ZTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e1I9bn19LHQudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihlLGksYSl7dmFyIHU9dC51bnN0YWJsZV9ub3coKTtpZigib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hKXt2YXIgcz1hLmRlbGF5O3M9Im51bWJlciI9PXR5cGVvZiBzJiYwPHM/dStzOnUsYT0ibnVtYmVyIj09dHlwZW9mIGEudGltZW91dD9hLnRpbWVvdXQ6eihlKX1lbHNlIGE9eihlKSxzPXU7cmV0dXJuIGU9e2lkOkErKyxjYWxsYmFjazppLHByaW9yaXR5TGV2ZWw6ZSxzdGFydFRpbWU6cyxleHBpcmF0aW9uVGltZTphPXMrYSxzb3J0SW5kZXg6LTF9LHM+dT8oZS5zb3J0SW5kZXg9cyxTKFAsZSksbnVsbD09PUUoTykmJmU9PT1FKFApJiYoST9vKCk6ST0hMCxyKEQscy11KSkpOihlLnNvcnRJbmRleD1hLFMoTyxlKSxOfHxNfHwoTj0hMCxuKEwpKSksZX0sdC51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3ZhciBlPXQudW5zdGFibGVfbm93KCk7RihlKTt2YXIgbj1FKE8pO3JldHVybiBuIT09aiYmbnVsbCE9PWomJm51bGwhPT1uJiZudWxsIT09bi5jYWxsYmFjayYmbi5zdGFydFRpbWU8PWUmJm4uZXhwaXJhdGlvblRpbWU8ai5leHBpcmF0aW9uVGltZXx8aSgpfSx0LnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgdD1SO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPVI7Uj10O3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtSPW59fX19LDYzODQwOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oNjAwNTMpfSw0MzcyNjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByOyFmdW5jdGlvbihvKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl7dmFyIGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2kubm9uTmF0aXZlPSEwfWNvbnN0IGE9aSgicGxhaW50ZXh0IiksdT1pKCJodG1sIikscz1pKCJjb21tZW50IiksYz0vPChcdyopPi9nLGw9LzxcLz8oW15cc1wvPl0rKS87ZnVuY3Rpb24gZihlLHQsbil7cmV0dXJuIGQoZT1lfHwiIixwKHQ9dHx8W10sbj1ufHwiIikpfWZ1bmN0aW9uIHAoZSx0KXtyZXR1cm57YWxsb3dhYmxlX3RhZ3M6ZT1mdW5jdGlvbihlKXtsZXQgdD1uZXcgU2V0O2lmKCJzdHJpbmciPT10eXBlb2YgZSl7bGV0IG47Zm9yKDtuPWMuZXhlYyhlKTspdC5hZGQoblsxXSl9ZWxzZSBpLm5vbk5hdGl2ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGVbaS5pdGVyYXRvcl0/ImZ1bmN0aW9uIj09dHlwZW9mIGUuZm9yRWFjaCYmZS5mb3JFYWNoKHQuYWRkLHQpOnQ9bmV3IFNldChlKTtyZXR1cm4gdH0oZSksdGFnX3JlcGxhY2VtZW50OnQsc3RhdGU6YSx0YWdfYnVmZmVyOiIiLGRlcHRoOjAsaW5fcXVvdGVfY2hhcjoiIn19ZnVuY3Rpb24gZChlLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCInaHRtbCcgcGFyYW1ldGVyIG11c3QgYmUgYSBzdHJpbmciKTtsZXQgbj10LmFsbG93YWJsZV90YWdzLHI9dC50YWdfcmVwbGFjZW1lbnQsbz10LnN0YXRlLGk9dC50YWdfYnVmZmVyLGM9dC5kZXB0aCxsPXQuaW5fcXVvdGVfY2hhcixmPSIiO2ZvcihsZXQgdD0wLHA9ZS5sZW5ndGg7dDxwO3QrKyl7bGV0IHA9ZVt0XTtpZihvPT09YSlpZigiPCI9PT1wKW89dSxpKz1wO2Vsc2UgZis9cDtlbHNlIGlmKG89PT11KXN3aXRjaChwKXtjYXNlIjwiOmlmKGwpYnJlYWs7YysrO2JyZWFrO2Nhc2UiPiI6aWYobClicmVhaztpZihjKXtjLS07YnJlYWt9bD0iIixvPWEsaSs9Ij4iLG4uaGFzKGgoaSkpP2YrPWk6Zis9cixpPSIiO2JyZWFrO2Nhc2UnIic6Y2FzZSInIjpsPXA9PT1sPyIiOmx8fHAsaSs9cDticmVhaztjYXNlIi0iOiI8IS0iPT09aSYmKG89cyksaSs9cDticmVhaztjYXNlIiAiOmNhc2UiXG4iOmlmKCI8Ij09PWkpe289YSxmKz0iPCAiLGk9IiI7YnJlYWt9aSs9cDticmVhaztkZWZhdWx0OmkrPXB9ZWxzZSBpZihvPT09cylpZigiPiI9PT1wKSItLSI9PWkuc2xpY2UoLTIpJiYobz1hKSxpPSIiO2Vsc2UgaSs9cH1yZXR1cm4gdC5zdGF0ZT1vLHQudGFnX2J1ZmZlcj1pLHQuZGVwdGg9Yyx0LmluX3F1b3RlX2NoYXI9bCxmfWZ1bmN0aW9uIGgoZSl7bGV0IHQ9bC5leGVjKGUpO3JldHVybiB0P3RbMV0udG9Mb3dlckNhc2UoKTpudWxsfWYuaW5pdF9zdHJlYW1pbmdfbW9kZT1mdW5jdGlvbihlLHQpe2xldCBuPXAoZT1lfHxbXSx0PXR8fCIiKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGQoZXx8IiIsbil9fSx2b2lkIDA9PT0ocj1mdW5jdGlvbigpe3JldHVybiBmfS5jYWxsKHQsbix0LGUpKXx8KGUuZXhwb3J0cz1yKX0oKX0sNTMyNTA6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDY3Mjk0KTt2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PTEvdCl8fGUhPWUmJnQhPXR9LGk9ci51c2VTdGF0ZSxhPXIudXNlRWZmZWN0LHU9ci51c2VMYXlvdXRFZmZlY3Qscz1yLnVzZURlYnVnVmFsdWU7ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmdldFNuYXBzaG90O2U9ZS52YWx1ZTt0cnl7dmFyIG49dCgpO3JldHVybiFvKGUsbil9Y2F0Y2goZSl7cmV0dXJuITB9fXZhciBsPSJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnR8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50P2Z1bmN0aW9uKGUsdCl7cmV0dXJuIHQoKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj10KCkscj1pKHtpbnN0Ont2YWx1ZTpuLGdldFNuYXBzaG90OnR9fSksbz1yWzBdLmluc3QsbD1yWzFdO3JldHVybiB1KChmdW5jdGlvbigpe28udmFsdWU9bixvLmdldFNuYXBzaG90PXQsYyhvKSYmbCh7aW5zdDpvfSl9KSxbZSxuLHRdKSxhKChmdW5jdGlvbigpe3JldHVybiBjKG8pJiZsKHtpbnN0Om99KSxlKChmdW5jdGlvbigpe2MobykmJmwoe2luc3Q6b30pfSkpfSksW2VdKSxzKG4pLG59O3QudXNlU3luY0V4dGVybmFsU3RvcmU9dm9pZCAwIT09ci51c2VTeW5jRXh0ZXJuYWxTdG9yZT9yLnVzZVN5bmNFeHRlcm5hbFN0b3JlOmx9LDUwMTM5OihlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9big2NzI5NCksbz1uKDYxNjg4KTt2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PTEvdCl8fGUhPWUmJnQhPXR9LGE9by51c2VTeW5jRXh0ZXJuYWxTdG9yZSx1PXIudXNlUmVmLHM9ci51c2VFZmZlY3QsYz1yLnVzZU1lbW8sbD1yLnVzZURlYnVnVmFsdWU7dC51c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3Rvcj1mdW5jdGlvbihlLHQsbixyLG8pe3ZhciBmPXUobnVsbCk7aWYobnVsbD09PWYuY3VycmVudCl7dmFyIHA9e2hhc1ZhbHVlOiExLHZhbHVlOm51bGx9O2YuY3VycmVudD1wfWVsc2UgcD1mLmN1cnJlbnQ7Zj1jKChmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7aWYoIXMpe2lmKHM9ITAsYT1lLGU9cihlKSx2b2lkIDAhPT1vJiZwLmhhc1ZhbHVlKXt2YXIgdD1wLnZhbHVlO2lmKG8odCxlKSlyZXR1cm4gdT10fXJldHVybiB1PWV9aWYodD11LGkoYSxlKSlyZXR1cm4gdDt2YXIgbj1yKGUpO3JldHVybiB2b2lkIDAhPT1vJiZvKHQsbik/dDooYT1lLHU9bil9dmFyIGEsdSxzPSExLGM9dm9pZCAwPT09bj9udWxsOm47cmV0dXJuW2Z1bmN0aW9uKCl7cmV0dXJuIGUodCgpKX0sbnVsbD09PWM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIGUoYygpKX1dfSksW3QsbixyLG9dKTt2YXIgZD1hKGUsZlswXSxmWzFdKTtyZXR1cm4gcygoZnVuY3Rpb24oKXtwLmhhc1ZhbHVlPSEwLHAudmFsdWU9ZH0pLFtkXSksbChkKSxkfX0sNjE2ODg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9big1MzI1MCl9LDUyNzk4OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPW4oNTAxMzkpfSw4MDk2MjplPT57ZnVuY3Rpb24gdCgpe3JldHVybiBlLmV4cG9ydHM9dD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1lLmV4cG9ydHM9dCxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDQxNzc5OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDI2OTQ0OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxpPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNDMzNDA6ZT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJhX2RheSI6IkEgZGF5IiwiYV9mZXdfaG91cnMiOiJBIGZldyBob3VycyIsImFfZmV3X21pbnV0ZXMiOiJBIGZldyBtaW51dGVzIiwiYV93ZWVrIjoiQSB3ZWVrIiwiYWN0aXZlXzE1bV9hZ28iOiJBY3RpdmUgaW4gdGhlIGxhc3Qge21pbnV0ZXN9bSIsImFjdGl2ZV9kYXlfYWdvIjoiQWN0aXZlIHtkYXlzfWQgYWdvIiwiYWN0aXZlX2hvdXJfYWdvIjoiQWN0aXZlIHtob3Vyc31oIGFnbyIsImFjdGl2ZV9taW51dGVfYWdvIjoiQWN0aXZlIHttaW51dGVzfW0gYWdvIiwiYWN0aXZlX3N0YXRlIjoiQWN0aXZlIiwiYWN0aXZlX3dlZWtfYWdvIjoiQWN0aXZlIG92ZXIgMXcgYWdvIiwiYWRkX3BhcnRpY2lwYW50IjoiQWRkIHBhcnRpY2lwYW50IiwiYWRkX3BlcnNvbiI6IkFkZCBwZXJzb24iLCJhaV9hbnN3ZXIiOiJBSSBBbnN3ZXIiLCJhaV9hbnN3ZXJfaW5mb3JtYXRpb24iOiJBSSBBbnN3ZXIsIGluZm9ybWF0aW9uIiwiYWlfYW5zd2Vyc19lbmdsaXNoX29ubHkiOiJBSSBhbnN3ZXJzIGFyZSBjdXJyZW50bHkgRW5nbGlzaCBvbmx5LiIsImFpX2JvdCI6IkFJIEJvdCIsImFsZXhhbmRyaWFfdW5hdXRob3JpemVkIjoiWW91IGNhbiB0cnkgc2VuZGluZyB1cyBhIG1lc3NhZ2Ugb3IgbG9nZ2luZyBpbiBhdCB7YXBwX25hbWV9IiwiYWxtb3N0X3RoZXJlIjoiQWxtb3N0IHRoZXJlLi4uIiwiYWxzb19pbl90aGlzX2NvbnZlcnNhdGlvbiI6IkFsc28gaW4gdGhpcyBjb252ZXJzYXRpb24iLCJhbWF6aW5nIjoiQW1hemluZyIsImFuc3dlciI6IkFuc3dlciIsImFuc3dlcl9pc19nZW5lcmF0ZWRfd2l0aF9haSI6IlRoaXMgYW5zd2VyIGlzIGJhc2VkIG9ubHkgb24gY29udGVudCBzcGVjaWZpZWQgYnkge2NvbXBhbnlfbmFtZX0uIEl0IGlzIEFJIGdlbmVyYXRlZCBzbyBtYXkgbm90IGJlIGZ1bGx5IGNvcnJlY3QuIiwiYW5zd2VyX2lzX2dlbmVyYXRlZF93aXRoX2FpX21heV9iZV9pbmNvcnJlY3QiOiJUaGlzIGFuc3dlciB3YXMgYXV0byBnZW5lcmF0ZWQgdXNpbmcgQUkuIFRoZXJl4oCZcyBhIGNoYW5jZSBpdCBtYXkgbm90IGJlIGZ1bGx5IGNvcnJlY3QuIiwiYW5zd2VyX2lzX2dlbmVyYXRlZF93aXRoX2FpX3NvdXJjZXMiOiJBSSBhbnN3ZXJzIGFyZSBnZW5lcmF0ZWQgYmFzZWQgb24gYm90aCBwdWJsaWMgYW5kIHByaXZhdGUgc291cmNlcyBwcm92aWRlZCBieSB7Y29tcGFueV9uYW1lfS4iLCJhcHJpbF9kYXRlIjoiQXByaWwge2RhdGV9IiwiYXJ0aWNsZSI6ImFydGljbGUiLCJhcnRpY2xlX2RvdWJsZV9hdXRob3IiOiJCeSB7YXV0aG9yX2ZpcnN0X25hbWUxfSBhbmQge2F1dGhvcl9maXJzdF9uYW1lMn0iLCJhcnRpY2xlX211bHRpcGxlX2F1dGhvcnMiOiJCeSB7YXV0aG9yX2ZpcnN0X25hbWUxfSBhbmQge251bWJlcl9vZl9vdGhlcl9hdXRob3JzfSBvdGhlcnMiLCJhcnRpY2xlX3F1ZXN0aW9uIjoiRGlkIHRoaXMgYW5zd2VyIHlvdXIgcXVlc3Rpb24/IiwiYXJ0aWNsZV9zZWFyY2hfaGludF90ZXh0IjoiU2VhcmNoIGFydGljbGVzLi4uIiwiYXJ0aWNsZV9zZWFyY2hfbm9fcmVzdWx0c19mb3JfcXVlcnkiOiJObyByZXN1bHRzIGZvciBcXCJ7cXVlcnl9XFwiIiwiYXJ0aWNsZV9zZWFyY2hfc2VhcmNoX3Jlc3VsdHMiOiJTZWFyY2ggcmVzdWx0cyIsImFydGljbGVfc2VhcmNoX3NlYXJjaF9yZXN1bHRzX2Zvcl9xdWVyeSI6IlNlYXJjaCByZXN1bHRzIGZvciBcXCJ7cXVlcnl9XFwiIiwiYXJ0aWNsZV9zaW5nbGVfYXV0aG9yIjoiQnkge2F1dGhvcl9maXJzdF9uYW1lfSIsImFza19hX3F1ZXN0aW9uIjoiQXNrIGEgcXVlc3Rpb24iLCJhc2tfYV9xdWVzdGlvbl9wbGFjZWhvbGRlciI6IkFzayBhIHF1ZXN0aW9u4oCmIiwiYXNrX2FfcXVlc3Rpb25fd2l0aF9lbGxpcHNpcyI6IkFzayBhIHF1ZXN0aW9uLi4uIiwiYXNrX2Fub3RoZXJfcXVlc3Rpb25fd2l0aF9lbGxpcHNpcyI6IkFzayBhbm90aGVyIHF1ZXN0aW9uLi4uIiwiYXNrX291cl9ib3RfYV9xdWVzdGlvbiI6IkFzayBvdXIgYm90IGEgcXVlc3Rpb24iLCJhc2tlZF9hYm91dCI6IkFza2VkIGFib3V0IiwiYXNzaWduZWRfdG9fYWRtaW4iOiJBc3NpZ25lZCB0byB7YWRtaW59IiwiYXR0cmlidXRlX2NvbGxlY3Rvcl9uZWdhdGl2ZSI6Ik5vIiwiYXR0cmlidXRlX2NvbGxlY3Rvcl9wb3NpdGl2ZSI6IlllcyIsImF1Z3VzdF9kYXRlIjoiQXVndXN0IHtkYXRlfSIsImF2YXRhciI6IkF2YXRhciIsImF2YXRhcnMiOiJBdmF0YXJzIiwiYXdheV9zdGF0ZSI6IkF3YXkiLCJiYWQiOiJCYWQiLCJiYW5uZXIiOiJiYW5uZXIiLCJib3QiOiJCb3QiLCJib3RfYW5zd2Vyc19pbnN0YW50bHkiOiJCb3QgYW5zd2VycyBpbnN0YW50bHkiLCJib3RfZXhwZWN0YXRpb25fdGV4dCI6Ik91ciBib3QgY2FuIGFuc3dlciBtYW55IGNvbW1vbiBxdWVzdGlvbnMiLCJib3RfaXNfc3RpbGxfdGhpbmtpbmciOiJCb3QgaXMgc3RpbGwgdGhpbmtpbmcuLi4iLCJib3RfaXNfdGhpbmtpbmciOiJCb3QgaXMgdGhpbmtpbmcuLi4iLCJicm93c2VfY29sbGVjdGlvbnMiOiJCcm93c2UgY29sbGVjdGlvbnMiLCJieV9lbWFpbCI6IkJ5IGVtYWlsIiwiYnlfd2ViX25vdGlmaWNhdGlvbiI6IkJ5IHdlYiBub3RpZmljYXRpb24iLCJjYW5fY29udGludWVfd2hhdHNhcHAiOiJZb3UgY2FuIGNvbnRpbnVlIHlvdXIgY29udmVyc2F0aW9uIG9uIFdoYXRzQXBwIiwiY2FuY2VsIjoiQ2FuY2VsIiwiY2FudF9sb2FkX25ld19tZXNzYWdlcyI6IkNhblwndCBsb2FkIG5ldyBtZXNzYWdlcyIsImNoZWNrX2xhdGVyX2Zvcl91cGRhdGVzIjoiQ2hlY2sgYmFjayBsYXRlciBmb3IgdXBkYXRlcy4iLCJjaGVja2xpc3RfY2FyZF9maXJzdF9zdGVwIjoiRmlyc3Qgc3RlcCIsImNoZWNrbGlzdF9jYXJkX25leHRfc3RlcCI6Ik5leHQgc3RlcCIsImNoZWNrbGlzdF9jb21wbGV0ZWQiOiJDb21wbGV0ZWQiLCJjaGVja2xpc3RfaW5fcHJvZ3Jlc3NfdGltZV9yZW1haW5pbmdfcGx1cmFsIjoiQWJvdXQge21pbnV0ZXN9IG1pbnV0ZXMgbGVmdCIsImNoZWNrbGlzdF9pbl9wcm9ncmVzc190aW1lX3JlbWFpbmluZ19zaW5ndWxhciI6IkFib3V0IDEgbWludXRlIGxlZnQiLCJjaGVja2xpc3RfbWFya19zdGVwX2FzX2NvbXBsZXRlIjoiTWFyayBhcyBjb21wbGV0ZWQiLCJjaGVja2xpc3Rfbm90X3N0YXJ0ZWRfdGltZV9yZW1haW5pbmdfcGx1cmFsIjoiQWJvdXQge21pbnV0ZXN9IG1pbnV0ZXMiLCJjaGVja2xpc3Rfbm90X3N0YXJ0ZWRfdGltZV9yZW1haW5pbmdfc2luZ3VsYXIiOiJBYm91dCAxIG1pbnV0ZSIsImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfcGx1cmFsIjoie251bWJlcl9vZl9zdGVwc30gc3RlcHMiLCJjaGVja2xpc3RfbnVtYmVyX29mX3N0ZXBzX3Byb2dyZXNzX3BsdXJhbCI6IntzdGVwc19jb21wbGV0ZWR9IG9mIHt0b3RhbF9zdGVwc30gZG9uZSIsImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfcHJvZ3Jlc3Nfc2luZ3VsYXIiOiIxIG9mIHt0b3RhbF9zdGVwc30gZG9uZSIsImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfc2luZ3VsYXIiOiIxIHN0ZXAiLCJjaGVja2xpc3Rfc2VuZGVyX25hbWUiOiJTaGFyZWQgYnkge25hbWV9IiwiY2hlY2tsaXN0X3N0ZXBfYWN0aW9uX2J1dHRvbiI6IlN0ZXAgYWN0aW9uIGJ1dHRvbiIsImNoZWNrbGlzdF9zdGVwX2NvbXBsZXRlZCI6IkNvbXBsZXRlZCIsImNob29zZV9vbmUiOiJDaG9vc2Ugb25l4oCmIiwiY2xlYXIiOiJDbGVhciIsImNsZWFyX2FsbCI6IkNsZWFyIEFsbCIsImNsaWNrX29wZW5fd2hhdHNhcHAiOiJDbGljayBoZXJlIHRvIG9wZW4gV2hhdHNBcHAiLCJjbGlja190b191bm11dGUiOiJDbGljayB0byB1bm11dGUiLCJjbG9zZSI6IkNsb3NlIiwiY2xvc2VfaW50ZXJjb21fbWVzc2VuZ2VyIjoiQ2xvc2UgSW50ZXJjb20gTWVzc2VuZ2VyIiwiY29ubmVjdGluZyI6IkNvbm5lY3RpbmcuLi4iLCJjb250aW51ZV9vbl93aGF0c2FwcCI6IkNvbnRpbnVlIG9uIFdoYXRzQXBwIiwiY29udGludWVfdGhlX2NvbnZlcnNhdGlvbiI6IkNvbnRpbnVlIHRoZSBjb252ZXJzYXRpb24iLCJjb250aW51ZV93aGF0c2FwcF9pbnN0ZWFkIjoiWW91IGNhbiBjb250aW51ZSB0aGUgY29udmVyc2F0aW9uIG9uIFdoYXRzQXBwIGluc3RlYWQuIiwiY29udmVyc2F0aW9uX2NhcmRfb2ZmaWNlX2hvdXJzX2hlYWRlciI6IldlXCdsbCBiZSBiYWNrIG9ubGluZSIsImNvbnZlcnNhdGlvbl9jYXJkX3JlcGx5X3RpbWVfaGVhZGVyIjoiT3VyIHVzdWFsIHJlcGx5IHRpbWUiLCJjb252ZXJzYXRpb25fY2FyZF9yZXBseV90aW1lX2hlYWRlcl9tNSI6IlVzdWFsIHJlcGx5IHRpbWUiLCJjb252ZXJzYXRpb25fY2FyZF91bmtub3duX3Jlc3BvbnNlX3RpbWUiOiJXZeKAmWxsIHJlcGx5IGFzIHNvb24gYXMgd2UgY2FuIiwiY29udmVyc2F0aW9uX2hhc19lbmRlZCI6IllvdXIgY29udmVyc2F0aW9uIGhhcyBlbmRlZCIsImNvbnZlcnNhdGlvbl9tb3ZlZF93aGF0c2FwcCI6IllvdXIgY29udmVyc2F0aW9uIGhhcyBtb3ZlZCB0byBXaGF0c0FwcCIsImNvbnZlcnNhdGlvbnMiOiJDb252ZXJzYXRpb25zIiwiY291bGRudF9sb2FkX2FwcCI6IkNvdWxkblwndCBsb2FkIHRoZSBhcHAuIiwiY291bGRudF9sb2FkX2FwcHMiOiJDb3VsZG5cJ3QgbG9hZCBhcHBzLiIsImNvdWxkbnRfbG9hZF9jb250ZW50IjoiQ291bGRuXCd0IGxvYWQgdGhlIGNvbnRlbnQiLCJjdXJyZW50bHlfbm9faGVscF9hcnRpY2xlcyI6IlRoZXJl4oCZcyBjdXJyZW50bHkgbm8gaGVscCBhcnRpY2xlcyBhdmFpbGFibGUuIiwiY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiBhIGZldyBtaW51dGVzIiwiY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzEiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiBhIGZldyBob3VycyIsImN1c3RvbV9yZXNwb25zZV9kZWxheV8yIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBkYXkiLCJjdXN0b21fcmVzcG9uc2VfZGVsYXlfMyI6IlR5cGljYWxseSByZXBsaWVzIGluIGEgd2VlayIsImN1c3RvbV9yZXNwb25zZV9kZWxheV91bmtub3duIjoiV2lsbCByZXBseSBhcyBzb29uIGFzIHRoZXkgY2FuLiIsImRlY2VtYmVyX2RhdGUiOiJEZWNlbWJlciB7ZGF0ZX0iLCJkaXNjb3ZlcnlfbGF1bmNoZXIiOiJkaXNjb3ZlcnkgbGF1bmNoZXIiLCJkaXNjb3ZlcnlfbW9kZV9lbnRyeV90ZXh0IjoiTmVlZCBoZWxwPyIsImRpc21pc3MiOiJEaXNtaXNzIiwiZG9udF9zaG93X3N1Z2dlc3Rpb25zIjoiRG9u4oCZdCBzaG93IHN1Z2dlc3Rpb25zIiwiZG93bmxvYWRfdHJhbnNjcmlwdCI6IkRvd25sb2FkIGNvbnZlcnNhdGlvbiIsImVtYWlsIjoiRW1haWwiLCJlbW9qaV9waWNrZXIiOiJFbW9qaSBwaWNrZXIiLCJlbXB0eV9jb252ZXJzYXRpb25zIjoiTWVzc2FnZXMgZnJvbSB0aGUgdGVhbSB3aWxsIGJlIHNob3duIGhlcmUiLCJlbXB0eV9zdWdnZXN0aW9uX3Byb21wdCI6Ik5vIHJlbGF0ZWQgc3VnZ2VzdGlvbnMiLCJlbnRlcl90ZXh0X3BsYWNlaG9sZGVyIjoiRW50ZXIgdGV4dOKApiIsImV4cGFuZF9oZWFkZXIiOiJFeHBhbmQgaGVhZGVyIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTA4MDAiOiJ1bmRlciAzIGhvdXJzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTIwIjoidW5kZXIgMiBtaW51dGVzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTIwMCI6InVuZGVyIDIwIG1pbnV0ZXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xNDQwMCI6InVuZGVyIDQgaG91cnMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xNzI4MDAiOiIyIGRheXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAiOiJ1bmRlciAzIG1pbnV0ZXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAwIjoidW5kZXIgMzAgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE4MDAwIjoidW5kZXIgNSBob3VycyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzIxNjAwIjoidW5kZXIgNiBob3VycyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzI0MCI6InVuZGVyIDQgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzI1OTIwMCI6IjMgZGF5cyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzMwMCI6InVuZGVyIDUgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzM0NTYwMCI6IjQgZGF5cyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzM2MDAiOiJ1bmRlciAxIGhvdXIiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV80MzIwMCI6InVuZGVyIDEyIGhvdXJzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNDMyMDAwIjoiNSBkYXlzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNTE4NDAwIjoiNiBkYXlzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNjAiOiJ1bmRlciAxIG1pbnV0ZSIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwMCI6InVuZGVyIDEwIG1pbnV0ZXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV82MDQ4MDAiOiJ1bmRlciAxIHdlZWsiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV83MjAwIjoidW5kZXIgMiBob3VycyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5Xzg2NDAwIjoiMSBkYXkiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV85MDAiOiJ1bmRlciAxNSBtaW51dGVzIiwiZXh0cmFfbGFiZWxzX2NvdW50IjoiKyB7bGFiZWxzX2NvdW50fSBsYWJlbHMiLCJmYWlsZWRfbWVzc2FnZSI6IkZhaWxlZCBtZXNzYWdlIiwiZmFpbGVkX3RvX3NlbmQiOiJDb3VsZG5cJ3Qgc2VuZCIsImZlYnJ1YXJ5X2RhdGUiOiJGZWJydWFyeSB7ZGF0ZX0iLCJmaWVsZF9pc19yZXF1aXJlZCI6IkZpZWxkIHtmaWVsZF9uYW1lfSBpcyByZXF1aXJlZCIsImZpbGVfbWF4X2xpbWl0IjoiTWF4aW11bSB7bGltaXR9IGZpbGVzIiwiZmlsZV90b29fYmlnIjoiQ2FuXCd0IHNlbmQgZmlsZXMgb3ZlciB7bGltaXR9TUIiLCJmaWxlX3R5cGVfbm90X2FsbG93ZWQiOiJGaWxlIHR5cGUgaXMgbm90IGFsbG93ZWQiLCJmcmVxdWVudGx5X3VzZWQiOiJGcmVxdWVudGx5IHVzZWQiLCJmcm9tX2FwcCI6ImZyb20ge2FwcF9uYW1lfSIsImZyb21fbmFtZSI6ImZyb20ge25hbWV9IiwiZ2VuZXJhdGluZ19hbnN3ZXIiOiJHZW5lcmF0aW5nIGFuc3dlci4uLiIsImdldF9hbl9pbnN0YW50X2Fuc3dlciI6IkdldCBhbiBpbnN0YW50IGFuc3dlciIsImdldF9oZWxwIjoiR2V0IGhlbHAiLCJnZXRfbm90aWZpZWQiOiJHZXQgbm90aWZpZWQiLCJnZXRfbm90aWZpZWRfYnlfZW1haWwiOiJHZXQgbm90aWZpZWQgYnkgZW1haWwiLCJnZXRfcmVzcG9uc2VzX2J5X2VtYWlsIjoiR2V0IHJlcGxpZXMgYnkgZW1haWwiLCJnaWZfYXR0cmlidXRpb24iOiJ2aWEge3Byb3ZpZGVybmFtZX0iLCJnaWZfcGlja2VyIjoiR2lmIHBpY2tlciIsImdpZnNfbG9hZF9lcnJvciI6IkNvdWxkblwndCBsb2FkIEdJRnMiLCJnb190byI6IkdvIHRvIHthcHBfbmFtZX0iLCJncmVhdCI6IkdyZWF0IiwiZ3JvdXBfY29udmVyc2F0aW9uXzFfb3RoZXJfcGFydGljaXBhbnRfY291bnRfc2hvcnQiOiIrMSBvdGhlciIsImdyb3VwX2NvbnZlcnNhdGlvbl9tdWx0aXBsZV9vdGhlcl9wYXJ0aWNpcGFudF9jb3VudF9zaG9ydCI6Iit7b3RoZXJfcGFydGljaXBhbnRfY291bnR9IG90aGVycyIsImdyb3VwX2NvbnZlcnNhdGlvbl9tdWx0aXBsZV9wZXJzb25fYWxzb19wYXJ0aWNpcGF0aW5nIjoie290aGVyX3BhcnRpY2lwYW50X2NvdW50fSBvdGhlcnMgYXJlIGFsc28gcGFydGljaXBhdGluZyIsImdyb3VwX2NvbnZlcnNhdGlvbl9uYW1lX2Fsc29fcGFydGljaXBhdGluZyI6IntwYXJ0aWNpcGFudF9uYW1lfSBpcyBhbHNvIHBhcnRpY2lwYXRpbmciLCJncm91cF9jb252ZXJzYXRpb25fbmFtZV9hbmRfMV9vdGhlcl9hbHNvX3BhcnRpY2lhcHRpbmciOiJ7cGFydGljaXBhbnRfbmFtZX0gYW5kIDEgb3RoZXIgYXJlIGFsc28gcGFydGljaXBhdGluZyIsImdyb3VwX2NvbnZlcnNhdGlvbl9uYW1lX2FuZF9tdWx0aXBsZV9vdGhlcnNfYWxzb19wYXJ0aWNpcGF0aW5nIjoie3BhcnRpY2lwYW50X25hbWV9IGFuZCB7b3RoZXJfcGFydGljaXBhbnRfY291bnR9IG90aGVycyBhcmUgYWxzbyBwYXJ0aWNpcGF0aW5nIiwiZ3JvdXBfY29udmVyc2F0aW9uX29uZV9wZXJzb25fYWxzb19wYXJ0aWNpcGF0aW5nIjoiMSBvdGhlciBpcyBhbHNvIHBhcnRpY2lwYXRpbmciLCJoZWxwX3NwYWNlX3RpdGxlIjoiSGVscCIsImhpX25hbWUiOiJIaSB7Zmlyc3RfbmFtZX0g8J+RiyIsImhpX3RoZXJlIjoiSGkgPGltdD5maXJzdF9uYW1lIHwgZmFsbGJhY2s6IFwndGhlcmVcJzwvaW10PiDwn5GLIiwiaG9tZV9zcGFjZV90aXRsZSI6IkhvbWUiLCJob3dfY2FuX3dlX2hlbHAiOiJIb3cgY2FuIHdlIGhlbHA/IiwiaG93X3dvdWxkX3lvdV9yYXRlX3RoaXMiOiJIb3cgd291bGQgeW91IHJhdGUgdGhpcz8iLCJqYW51YXJ5X2RhdGUiOiJKYW51YXJ5IHtkYXRlfSIsImpvaW5fY29udmVyc2F0aW9uIjoiSm9pbiBjb252ZXJzYXRpb24iLCJqdWx5X2RhdGUiOiJKdWx5IHtkYXRlfSIsImp1bmVfZGF0ZSI6Ikp1bmUge2RhdGV9IiwibGFzdF9hY3RpdmVfaG91cnNfYWdvIjoiTGFzdCBhY3RpdmUge21pbnN9IGhvdXJzIGFnbyIsImxhc3RfYWN0aXZlX21pbnNfYWdvIjoiTGFzdCBhY3RpdmUge21pbnN9IG1pbnMgYWdvIiwibGFzdF9hY3RpdmVfb3Zlcl9hX3dlZWsiOiJMYXN0IGFjdGl2ZSBvdmVyIDF3IGFnbyIsImxlYXJuX21vcmUiOiJMZWFybiBtb3JlIiwibGVhdmVfdXNfYV9tZXNzYWdlIjoiTGVhdmUgdXMgYSBtZXNzYWdlIiwibGVhdmVfeW91cl9lbWFpbCI6IkxlYXZlIHlvdXIgZW1haWwuLi4iLCJsb2FkaW5nIjoiTG9hZGluZyIsIm1hcmNoX2RhdGUiOiJNYXJjaCB7ZGF0ZX0iLCJtYXlfZGF0ZSI6Ik1heSB7ZGF0ZX0iLCJtZXNzYWdlIjoibWVzc2FnZSIsIm1lc3NhZ2VfcGxhY2Vob2xkZXIiOiJNZXNzYWdl4oCmIiwibWVzc2FnZV9zZWVuIjoiU2VlbiIsIm1lc3NhZ2Vfc3RhdGVfc2VuZGluZyI6IlNlbmRpbmfigKYiLCJtZXNzYWdlX3Vuc2VlbiI6Ik5vdCBzZWVuIHlldCIsIm1lc3NhZ2VzX2Jyb3dzZV9hcnRpY2xlc19idG4iOiJCcm93c2UgZm9yIGhlbHAiLCJtZXNzYWdlc19lbXB0eV9zdGF0ZV90ZXh0IjoiTWVzc2FnZXMgZnJvbSB0aGUgdGVhbSB3aWxsIGJlIHNob3duIGhlcmUiLCJtZXNzYWdlc19lbXB0eV9zdGF0ZV90aXRsZSI6Ik5vIG1lc3NhZ2VzIiwibWVzc2FnZXNfc3BhY2VfdGl0bGUiOiJNZXNzYWdlcyIsIm1lc3NlbmdlciI6Im1lc3NlbmdlciIsIm1lc3Nlbmdlcl9ib3RfcmVwbHlfdGltZSI6Ik91ciBib3Qgd2lsbCByZXBseSBpbnN0YW50bHkiLCJtdWx0aXBsZV9hcnRpY2xlcyI6Int0b3RhbF9hcnRpY2xlc30gYXJ0aWNsZXMiLCJtdWx0aXBsZV9jb2xsZWN0aW9ucyI6Int0b3RhbF9jb2xsZWN0aW9ufSBjb2xsZWN0aW9ucyIsIm11dGVfc291bmQiOiJNdXRlIHNvdW5kIiwibmFtZV9hbmRfMV9vdGhlciI6IntuYW1lfSBhbmQgMSBvdGhlciIsIm5hbWVfYW5kX29uZV9vdGhlciI6IntuYW1lfSBhbmQgb25lIG90aGVyIiwibmFtZV9hbmRfdHdvX290aGVycyI6IntuYW1lfSBhbmQgMiBvdGhlcnMiLCJuYW1lX2FuZF94X290aGVycyI6IntuYW1lfSBhbmQge2NvdW50fSBvdGhlcnMiLCJuYXR1cmUiOiJOYXR1cmUiLCJuYXZpZ2F0aW9uX2JhY2siOiJCYWNrIiwibmV3X2NvbnZlcnNhdGlvbiI6Ik5ldyBjb252ZXJzYXRpb24iLCJuZXdfbWVzc2FnZSI6Ik5ldyBtZXNzYWdlIiwibmV3cyI6Ik5ld3MiLCJuZXdzX2VtcHR5X3RpdGxlIjoiTm8gbmV3cyB5ZXQiLCJuZXdzX2xhdGVzdF9zdWJ0aXRsZSI6IkZyb20gVGVhbSB7dGVhbV9uYW1lfSIsIm5ld3NfbGF0ZXN0X3RpdGxlIjoiTGF0ZXN0IiwibmV3c19vbGRlcl90aXRsZSI6Ik9sZGVyIiwibmV3c19zcGFjZV90aXRsZSI6Ik5ld3MiLCJuZXdzZmVlZCI6Ik5ld3NmZWVkIiwibm9fYXJ0aWNsZXNfdG9fZGlzcGxheSI6Ik5vIGFydGljbGVzIHlldCIsIm5vX2NvbnZlcnNhdGlvbnMiOiJObyBjb252ZXJzYXRpb25zIiwibm9fZW1vamlfZm91bmQiOiJObyBlbW9qaSBjb3VsZCBiZSBmb3VuZCIsIm5vX2dpZnNfZm91bmQiOiJObyBHSUZzIGZvdW5kIiwibm9faGVscF9hcnRpY2xlc190b19kaXNwbGF5IjoiTm8gaGVscCBhcnRpY2xlcyIsIm5vX21lc3NhZ2VzX2Zyb21fdGhlX3RlYW0iOiJObyBtZXNzYWdlcyBmcm9tIHRoZSB0ZWFtIiwibm9fcmVzdWx0c19mb3Jfc2VhcmNodGVybSI6Ik5vIHJlc3VsdHMgZm9yIHtzZWFyY2hUZXJtfSIsIm5vX3Rhc2tzIjoiTm8gdGFza3MiLCJub190YXNrc19hdmFpbGFibGVfY3VycmVudGx5IjoiVGhlcmUgYXJlIGN1cnJlbnRseSBubyB0YXNrcyBhdmFpbGFibGUuIiwibm90aGluZ190b19zZWVfaGVyZV95ZXQiOiJOb3RoaW5nIHRvIHNlZSBoZXJlIHlldCIsIm5vdGlmaWNhdGlvbiI6Im5vdGlmaWNhdGlvbiIsIm5vdmVtYmVyX2RhdGUiOiJOb3ZlbWJlciB7ZGF0ZX0iLCJudW1iZXJfaXNfaW5jb3JyZWN0IjoiVGhhdCBudW1iZXIgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsIm9iamVjdHMiOiJPYmplY3RzIiwib2N0b2Jlcl9kYXRlIjoiT2N0b2JlciB7ZGF0ZX0iLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlXzFoIjoiQmFjayBpbiAxaCIsIm9mZmljZV9ob3Vyc19jbGllbnRfcmVzcG9uc2VfMmgiOiJCYWNrIGluIDJoIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV8zMG0iOiJCYWNrIGluIDMwbSIsIm9mZmljZV9ob3Vyc19jbGllbnRfcmVzcG9uc2VfM2giOiJCYWNrIGluIDNoIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfMCI6IkJhY2sgb24gTW9uIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfMSI6IkJhY2sgb24gVHVlIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfMiI6IkJhY2sgb24gV2VkIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfMyI6IkJhY2sgb24gVGh1Iiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfNCI6IkJhY2sgb24gRnJpIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfNSI6IkJhY2sgb24gU2F0Iiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9kYXlfNiI6IkJhY2sgb24gU3VuIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV9sYXRlcl90b2RheSI6IkJhY2sgbGF0ZXIgdG9kYXkiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX25leHRfd2VlayI6IkJhY2sgbmV4dCB3ZWVrIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV90b21vcnJvdyI6IkJhY2sgdG9tb3Jyb3ciLCJva19kZXNjcmlwdGlvbiI6Ik9LIiwib3Blbl9hcnRpY2xlX2luX2hlbHBfY2VudGVyIjoiT3BlbiBpbiBoZWxwIGNlbnRlciIsIm9wZW5fY29udmVyc2F0aW9uX2FuZF9yZXBseSI6Ik9wZW4gY29udmVyc2F0aW9uIGFuZCByZXBseSIsIm9wZW5faW50ZXJjb21fbWVzc2VuZ2VyIjoiT3BlbiBJbnRlcmNvbSBNZXNzZW5nZXIiLCJvcGVyYXRvcl9hc2tlZF9mb3JfYXR0cmlidXRlIjoiQXNrZWQgZm9yIHthdHRyaWJ1dGV9Iiwib3JfY2xpY2tfb3Blbl93aGF0c2FwcCI6Ik9yIGNsaWNrIGhlcmUgdG8gb3BlbiBXaGF0c0FwcCIsIm9yX2NvbnRpbnVlX29uX3doYXRzYXBwX3dlYiI6Ik9yIGNvbnRpbnVlIG9uIFdoYXRzQXBwIHdlYiIsIm91cl9ib3RfYW5zd2Vyc19pbnN0YW50bHkiOiJPdXIgYm90IGFuc3dlcnMgaW5zdGFudGx5IiwicGF1c2UiOiJQYXVzZSIsInBlb3BsZSI6IlBlb3BsZSIsInBob25lX251bWJlciI6IlBob25lIG51bWJlciIsInBsYWNlaG9sZGVyX2RhdGVwaWNrZXIiOiJERC1NTS1ZWVlZIiwicGxhY2Vob2xkZXJfZW1haWxfaW5wdXQiOiJFbnRlciBlbWFpbCBoZXJlLi4uIiwicGxhY2Vob2xkZXJfbnVtZXJpY2FsX2lucHV0cyI6IkVudGVyIG51bWJlciBoZXJlLi4uIiwicGxhY2Vob2xkZXJfdGV4dF9pbnB1dHMiOiJFbnRlciB0ZXh0IGhlcmUuLi4iLCJwbGFjZXMiOiJQbGFjZXMiLCJwbGF5IjoiUGxheSIsInBsYXlfc291bmQiOiJQbGF5IHNvdW5kIiwicGxheV92aWRlbyI6IlBsYXkgdmlkZW8iLCJwbGVhc2Vfc2VsZWN0IjoiUGxlYXNlIHNlbGVjdC4uLiIsInBsdXNfeF9wYXJ0aWNpcGFudHMiOiIrIHtjb3VudH0iLCJwb2ludGVyIjoicG9pbnRlciIsInBvc3QiOiJwb3N0IiwicG93ZXJlZF9ieV9pbnRlcmNvbSI6IlBvd2VyZWQgYnkgSW50ZXJjb20iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTA4MDAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAzaCIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAybSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMjBtIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE0NDAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNGgiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTcyODAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gMmQiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTgwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgM20iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTgwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDMwbSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDVoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzIxNjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNmgiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjQwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNG0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjU5MjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gM2QiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNW0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzQ1NjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gNGQiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzYwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDFoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gMTJoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDVkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzUxODQwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDZkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMW0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMTBtIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwNDgwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDF3IiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzcyMDAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAyaCIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV84NjQwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDFkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzkwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDE1bSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV91bmtub3duIjoiV2lsbCByZXBseSBhcyBzb29uIGFzIHRoZXkgY2FuIiwicHJvZHVjdF90b3Vyc19hdXRob3IiOiJCeSB7bmFtZX0gZnJvbSB7Y29tcGFueX0iLCJwcm9kdWN0X3RvdXJzX2RvbmUiOiJEb25lIiwicHJvZHVjdF90b3Vyc19lcnJvciI6Ildl4oCZcmUgc29ycnksIHRoZXJlIHdhcyBhbiB1bmV4cGVjdGVkIGlzc3VlIHdpdGggdGhpcyB0b3VyIiwicHJvZHVjdF90b3Vyc19lcnJvcl9jdGEiOiJUYWxrIHRvIHRoZSB0ZWFtIiwicHJvZHVjdF90b3Vyc19uYW1lIjoiUHJvZHVjdCB0b3VyIiwicHJvZHVjdF90b3Vyc19uZXh0IjoiTmV4dCIsInByb2R1Y3RfdG91cnNfcmVzdGFydCI6IlJlc3RhcnQiLCJwcm9kdWN0X3RvdXJzX3Nub296ZSI6IlNub296ZSIsInByb2R1Y3RfdG91cnNfdG91cl9zdGVwX251bWJlciI6IntzdGFydF9udW1iZXJ9IG9mIHtlbmRfbnVtYmVyfSIsInByb2R1Y3RfdG91cnNfdmlldyI6IlZpZXcgdG91ciIsInByb2ZpbGVfbG9jYXRpb24iOiJ7dGltZX0gaW4ge2xvY2F0aW9ufSIsInJhdGVfeW91cl9jb252ZXJzYXRpb24iOiJSYXRlIHlvdXIgY29udmVyc2F0aW9uIiwicmVjZWl2ZV9yZXBsaWVzX3RoZXJlIjoiWW91XCdsbCByZWNlaXZlIHJlcGxpZXMgdGhlcmUgd2hlbiB0aGUgdGVhbSByZXBsaWVzIiwicmVjZW50X3RpY2tldCI6IlJlY2VudCB0aWNrZXQiLCJyZWNlbnRfdGlja2V0cyI6IlJlY2VudCB0aWNrZXRzIiwicmVjb25uZWN0IjoiUmVjb25uZWN0IiwicmVjb3JkZWRfZGF5c19hZ28iOiJSZWNvcmRlZCB7ZGF5c30gZGF5cyBhZ28iLCJyZWNvcmRlZF9vdmVyX3dlZWtfYWdvIjoiUmVjb3JkZWQgb3ZlciBhIHdlZWsgYWdvIiwicmVjb3JkZWRfdG9kYXkiOiJSZWNvcmRlZCB0b2RheSIsInJlY29yZGVkX3llc3RlcmRheSI6IlJlY29yZGVkIHllc3RlcmRheSIsInJlbW92ZV9wYXJ0aWNpcGFudCI6IlJlbW92ZSBwYXJ0aWNpcGFudCIsInJlbW92ZV9wZXJzb24iOiJSZW1vdmUgcGVyc29uIiwicmVwbHlfZnJvbSI6IlJlcGx5IGZyb20iLCJyZXBseV90b19jb252ZXJzYXRpb24iOiJXcml0ZSBhIHJlcGx54oCmIiwicmVwbHlfdG9fbmFtZSI6IlJlcGx5IHRvIHtuYW1lfeKApiIsInNjYW5fcXIiOiJTY2FuIHRoZSBRUiB3aXRoIHlvdXIgcGhvbmUiLCJzZWFyY2giOiJTZWFyY2giLCJzZWFyY2hfYnJvd3NlX2VtcHR5X3N0YXRlX3RleHQiOiJTb3JyeSwgd2UgY291bGRu4oCZdCBmaW5kIGFueSByZXN1bHRzIGZvciB0aGF0LiBUcnkgcmV3b3JkaW5nIHlvdXIgc2VhcmNoLiIsInNlYXJjaF9mb3JfYW5zd2VycyI6IlNlYXJjaCBmb3IgYW5zd2Vyc+KApiIsInNlYXJjaF9mb3JfZW1vamkiOiJTZWFyY2ggZW1vamnigKYiLCJzZWFyY2hfZm9yX2hlbHAiOiJTZWFyY2ggZm9yIGhlbHAiLCJzZWFyY2hfZ2lmIjoiU2VhcmNoIEdJRnPigKYiLCJzZWVfYWxsIjoiU2VlIGFsbCIsInNlZV9hbGxfY29udmVyc2F0aW9ucyI6IlNlZSBhbGwgeW91ciBjb252ZXJzYXRpb25zIiwic2VlX3Bhc3RfY29udmVyc2F0aW9ucyI6IlNlZSBwcmV2aW91cyIsInNlZV9wcmV2aW91c19jb252ZXJzYXRpb25zIjoiU2VlIHlvdXIgcHJldmlvdXMgY29udmVyc2F0aW9ucyIsInNlZWtfdmlkZW8iOiJTZWVrIHZpZGVvIiwic2VuZCI6IlNlbmQiLCJzZW5kX2FfbWVzc2FnZSI6IlNlbmQgYSBtZXNzYWdl4oCmIiwic2VuZF9hX21lc3NhZ2VfcmVwbHlfdGltZSI6IlVzdWFsIHJlcGx5IHRpbWUgaXMiLCJzZW5kX2FfbWVzc2FnZV9yZXBseV90aW1lX2NhcmQiOiJVc3VhbCByZXBseSB0aW1lIGlzIHtyZXBseVRpbWV9Iiwic2VuZF9wcmVmaWxsZWRfbWVzc2FnZSI6IldoZW4gV2hhdHNBcHAgb3BlbnMsIHNlbmQgdGhlIHByZS1maWxsZWQgbWVzc2FnZSB0byBjb250aW51ZSB0aGUgY29udmVyc2F0aW9uIiwic2VuZF91c19hX21lc3NhZ2UiOiJTZW5kIHVzIGEgbWVzc2FnZSIsInNlbmRfdXNfYV9tZXNzYWdlX2JvdCI6IlNlbmQgdXMgYSBtZXNzYWdlIGFuZCBvdXIgYm90IHdpbGwgcmVwbHkgaW5zdGFudGx5Iiwic2VudF9hX3ZpZGVvIjoic2VudCBhIHZpZGVvIiwic2VudF9hbl9hcHAiOiJzZW50IGFuIGFwcCIsInNlbnRfYW5fYXR0YWNobWVudCI6InNlbnQgYW4gYXR0YWNobWVudCIsInNlbnRfYW5faW1hZ2UiOiJzZW50IGFuIGltYWdlIiwic2VudF95b3VfYV92aWRlbyI6IlNlbnQgeW91IGEgdmlkZW8iLCJzZW50X3lvdV9hX3ZpZGVvX3JlcGx5IjoiU2VudCB5b3UgYSB2aWRlbyByZXBseSIsInNlbnRfeW91X2FuX2FwcCI6IlNlbnQgeW91IGFuIGFwcCIsInNlbnRfeW91X2FuX2F0dGFjaG1lbnQiOiJTZW50IHlvdSBhbiBhdHRhY2htZW50Iiwic2VudF95b3VfYW5faW1hZ2UiOiJTZW50IHlvdSBhbiBpbWFnZSIsInNlcHRlbWJlcl9kYXRlIjoiU2VwdGVtYmVyIHtkYXRlfSIsInNoYXJlZF9ieSI6IlNoYXJlZCBieSIsInNob3dfYWRtaW5fbmFtZSI6IlNob3cgYWRtaW4gbmFtZSIsInNob3dfbGVzcyI6IlNob3cgbGVzcyIsInNpbmdsZV9hcnRpY2xlIjoiMSBhcnRpY2xlIiwic2luZ2xlX2NvbGxlY3Rpb24iOiIxIGNvbGxlY3Rpb24iLCJzbXMiOiJTTVMiLCJzb21lX3RoaW5nc19mYWlsZWRfdG9fbG9hZCI6IlNvbWUgdGhpbmdzIGZhaWxlZCB0byBsb2FkLiBUcnkgYWdhaW4uIiwic29tZXRoaW5nX2lzX3dyb25nIjoiU29tZXRoaW5nXCdzIHdyb25nIiwic291cmNlIjoiU291cmNlIiwic291cmNlcyI6IlNvdXJjZXMiLCJzcGFjZXNfZXJyb3JfZGVzY3JpcHRpb24iOiJDb250ZW50IGNvdWxkIG5vdCBiZSBsb2FkZWQiLCJzcGFjZXNfZXJyb3JfdGl0bGUiOiJTb21ldGhpbmdcJ3MgZ29uZSB3cm9uZyIsInN0YXJ0X2FfY29udmVyc2F0aW9uIjoiU3RhcnQgYSBjb252ZXJzYXRpb24iLCJzdGFydF9hbm90aGVyX2NvbnZlcnNhdGlvbiI6IlN0YXJ0IGFub3RoZXIgY29udmVyc2F0aW9uIiwic3RhcnRfdHlwaW5nIjoiU3RhcnQgdHlwaW5nLi4uIiwic3RhdHVzIjoiU3RhdHVzIiwic3RpbGxfZ2VuZXJhdGluZ19hbnN3ZXIiOiJTdGlsbCBnZW5lcmF0aW5nIGFuc3dlci4uLiIsInN0aWxsX3RoaW5raW5nIjoiU3RpbGwgdGhpbmtpbmcuLi4iLCJzdGlsbF93b3JraW5nX29uX2l0IjoiU3RpbGwgd29ya2luZyBvbiBpdC4uLiIsInN0cmluZ19pc19pbmNvcnJlY3QiOiJUaGF0IGRvZXNuXCd0IGxvb2sgcXVpdGUgcmlnaHQiLCJzdWJtaXQiOiJTdWJtaXQiLCJzdWNjZXNzZnVsbHlfcmVjb25uZWN0ZWQiOiJTdWNjZXNzZnVsbHkgcmVjb25uZWN0ZWQiLCJzdWdnZXN0ZWRfYXJ0aWNsZXMiOiJTdWdnZXN0ZWQgYXJ0aWNsZXMiLCJzdWdnZXN0ZWRfY29udGVudF9wcm9tcHQiOiJBcmUgYW55IG9mIHRoZXNlIHJlbGF0ZWQgdG8geW91ciBxdWVzdGlvbj8iLCJzdXJ2ZXlzX2FsbF9vcHRpb25zX3Jlc3BvbnNlX2hpbnQiOiJQbGVhc2Ugc2VsZWN0IGFsbCBvcHRpb25zIHRoYXQgYXBwbHkiLCJzdXJ2ZXlzX2Nsb3NlX3N1cnZleSI6IkNsb3NlIHN1cnZleSIsInN1cnZleXNfZG9uZV9idXR0b24iOiJEb25lIiwic3VydmV5c19kcm9wZG93bl9kZWZhdWx0X29wdGlvbiI6IlBsZWFzZSBzZWxlY3QgYSByZXNwb25zZS4uLiIsInN1cnZleXNfZW1haWxfZXJyb3IiOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIiwic3VydmV5c19maXhlZF9yZXNwb25zZV9jb3VudF9yZXNwb25zZV9oaW50IjoiUGxlYXNlIHNlbGVjdCB7cmVzcG9uc2VfY291bnR9IG9wdGlvbnMiLCJzdXJ2ZXlzX2Zyb21fY29tcGFueSI6IlN1cnZleSBmcm9tIHtjb21wYW55fSIsInN1cnZleXNfZnJvbV90ZWFtbWF0ZSI6IlN1cnZleSBieSB7c2VuZGVyX25hbWV9IGZyb20ge2NvbXBhbnl9Iiwic3VydmV5c19tdWx0aV9zZWxlY3RfdG9vX2Zld19yZXNwb25zZXMiOiJUaGlzIHF1ZXN0aW9uIHJlcXVpcmVzIGF0IGxlYXN0IHtyZXNwb25zZV9jb3VudH0gb3B0aW9ucyB0byBiZSBzZWxlY3RlZCIsInN1cnZleXNfbXVsdGlfc2VsZWN0X3Rvb19tYW55X3Jlc3BvbnNlcyI6IlRoaXMgcXVlc3Rpb24gcmVxdWlyZXMge3Jlc3BvbnNlX2NvdW50fSBvcHRpb25zIHRvIGJlIHNlbGVjdGVkIiwic3VydmV5c19tdWx0aXNlbGVjdF9vdGhlcl9vcHRpb24iOiJPdGhlciAoUGxlYXNlIHNwZWNpZnkpIiwic3VydmV5c19tdWx0aXNlbGVjdF9vdGhlcl9vcHRpb25faW5wdXRfbGFiZWwiOiJQbGVhc2Ugc3BlY2lmeSIsInN1cnZleXNfbXVsdGlzZWxlY3Rfb3RoZXJfb3B0aW9uX2lucHV0X3BsYWNlaG9sZGVyIjoiRW50ZXIgcmVzcG9uc2UiLCJzdXJ2ZXlzX211bHRpc2VsZWN0X290aGVyX29wdGlvbl92YWx1ZSI6Ik90aGVyIiwic3VydmV5c19uZXh0X2J1dHRvbiI6Ik5leHQiLCJzdXJ2ZXlzX25wc19sb3dlcl9sYWJlbCI6Ik5vdCBsaWtlbHkiLCJzdXJ2ZXlzX25wc191cHBlcl9sYWJlbCI6IlZlcnkgbGlrZWx5Iiwic3VydmV5c19udW1iZXJfZXJyb3IiOiJQbGVhc2UgZW50ZXIgYSBudW1iZXIiLCJzdXJ2ZXlzX3JlcXVpcmVkX3F1ZXN0aW9uIjoiVGhpcyBpcyBhIHJlcXVpcmVkIHF1ZXN0aW9uIiwic3VydmV5c19yZXF1aXJlZF9yZXNwb25zZSI6IlRoaXMgaXMgYSByZXF1aXJlZCByZXNwb25zZSIsInN1cnZleXNfcmVzcG9uc2VfcmFuZ2VfcmVzcG9uc2VfaGludCI6IlBsZWFzZSBzZWxlY3QgYSBtaW5pbXVtIG9mIHttaW5pbXVtX3Jlc3BvbnNlX2NvdW50fSBhbmQgYSBtYXhpbXVtIG9mIHttYXhpbXVtX3Jlc3BvbnNlX2NvdW50fSBvcHRpb25zIiwic3VydmV5c19yZXNwb25zZV90b29fbG9uZyI6IlBsZWFzZSBrZWVwIGFuc3dlcnMgdG8gYSBtYXhpbXVtIG9mIHtjaGFyYWN0ZXJfY291bnR9IGNoYXJhY3RlcnMiLCJzdXJ2ZXlzX3NpbmdsZV9yZXNwb25zZV9oaW50IjoiUGxlYXNlIHNlbGVjdCAxIG9wdGlvbiIsInN1cnZleXNfc3VibWl0X3Jlc3BvbnNlIjoiU3VibWl0IHlvdXIgcmVzcG9uc2UiLCJzdXJ2ZXlzX3RlbGVwaG9uZV9lcnJvciI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIHRlbGVwaG9uZSBudW1iZXIiLCJzdXJ2ZXlzX3RleHRfaW5wdXRfcXVlc3Rpb25fcGxhY2Vob2xkZXIiOiJQbGVhc2UgdHlwZSB5b3VyIHJlc3BvbnNlIGhlcmUuLi4iLCJzeW1ib2xzIjoiU3ltYm9scyIsInRhc2tzX3NwYWNlX3RpdGxlIjoiVGFza3MiLCJ0ZWFtX25hbWVfY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzIiOiJ7YXBwX25hbWV9IHR5cGljYWxseSByZXBsaWVzIGluIGEgZGF5IiwidGVhbV9uYW1lX2N1c3RvbV9yZXNwb25zZV9kZWxheV8zIjoie2FwcF9uYW1lfSB0eXBpY2FsbHkgcmVwbGllcyBpbiBhIHdlZWsiLCJ0ZWFtX25hbWVfcHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5X29uZV9idXNpbmVzc19kYXkiOiJ7YXBwX25hbWV9IHR5cGljYWxseSByZXBsaWVzIGluIG9uZSBidXNpbmVzcyBkYXkiLCJ0ZWFtX25hbWVfcHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5X3R3b19idXNpbmVzc19kYXlzIjoie2FwcF9uYW1lfSB0eXBpY2FsbHkgcmVwbGllcyBpbiB0d28gYnVzaW5lc3MgZGF5cyIsInRlYW1tYXRlX2NhbGVuZGFyX2xpbmsiOiJUZWFtbWF0ZSBjYWxlbmRhciIsInRlYW1tYXRlX3Byb2ZpbGUiOiJ7cHJvdmlkZXJ9IHRlYW1tYXRlIHByb2ZpbGUiLCJ0ZWxsX3VzX21vcmUiOiJUZWxsIHVzIG1vcmXigKYiLCJ0ZWxsX3VzX3doYXRfeW91X25lZWQiOiJUZWxsIHVzIHdoYXQgeW91IG5lZWQgaGVscCB3aXRoIGFuZCBvdXIgYm90IHdpbGwgZG8gaXRzIGJlc3QgdG8gYW5zd2VyIiwidGVycmlibGUiOiJUZXJyaWJsZSIsInRoYW5rX3lvdSI6IlRoYW5rIHlvdSIsInRoYW5rc19jdXN0b21fcmVzcG9uc2VfZGVsYXlfb25lX2J1c2luZXNzX2RheSI6IlRoYW5rcyEgVGhlIHRlYW0gd2lsbCByZXBseSBpbiBvbmUgYnVzaW5lc3MgZGF5IiwidGhhbmtzX2N1c3RvbV9yZXNwb25zZV9kZWxheV90d29fYnVzaW5lc3NfZGF5cyI6IlRoYW5rcyEgVGhlIHRlYW0gd2lsbCByZXBseSBpbiB0d28gYnVzaW5lc3MgZGF5cyIsInRoYW5rc19mb3JfbGV0dGluZ191c19rbm93IjoiVGhhbmtzIGZvciBsZXR0aW5nIHVzIGtub3ciLCJ0aGFua3NfcHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5X3Vua25vd24iOiJUaGFua3MhIFRoZSB0ZWFtIHdpbGwgcmVwbHkgYXMgc29vbiBhcyB0aGV5IGNhbiIsInRoYXRfY291bnRyeV9jb2RlX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0IjoiVGhhdCBjb3VudHJ5IGNvZGUgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsInRoYXRfZW1haWxfYWRkcmVzc19kb2VzbnRfbG9va19xdWl0ZV9yaWdodCI6IlRoYXQgZW1haWwgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsInRoYXRfbnVtYmVyX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0IjoiVGhhdCBudW1iZXIgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsInRoYXRfbnVtYmVyX2hhc190b29fbWFueV9kaWdpdHMiOiJUaGF0IG51bWJlciBoYXMgdG9vIG1hbnkgZGlnaXRzIiwidGhhdF9udW1iZXJfaXNfbWlzc2luZ19hX2Zld19kaWdpdHMiOiJUaGF0IG51bWJlciBpcyBtaXNzaW5nIGEgZmV3IGRpZ2l0cyIsInRoYXRfbnVtYmVyX25lZWRzX2FfcHJlZml4IjoiVGhhdCBudW1iZXIgbmVlZHMgYSBwcmVmaXggKCsgb3IgMDApIiwidGhlX3RlYW1fY2FuX2hlbHBfaWZfbmVlZGVkIjoiVGhlIHRlYW0gY2FuIGhlbHAgaWYgbmVlZGVkIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMTA4MDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAzaCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzEyMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDJtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMTIwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDIwbSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzE0NDAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNGgiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8xNzI4MDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiAyZCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzE4MCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDNtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMTgwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDMwbSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzE4MDAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNWgiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8yMTYwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDZoIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMjQwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNG0iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8yNTkyMDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiAzZCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzMwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDVtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMzQ1NjAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gNGQiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8zNjAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMWgiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl80MzIwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDEyaCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzQzMjAwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIDVkIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNTE4NDAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gNmQiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl82MCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDFtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNjAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMTBtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNjA0ODAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMXciLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl83MjAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMmgiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl84NjQwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIDFkIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fOTAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMTVtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fZGF5IjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBkYXkuIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5faG91cnMiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiBhIGZldyBob3Vycy4iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl9taW51dGVzIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBmZXcgbWludXRlcy4iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl9vbmVfYnVzaW5lc3NfZGF5IjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gb25lIGJ1c2luZXNzIGRheS4iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl90d29fYnVzaW5lc3NfZGF5cyI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHR3byBidXNpbmVzcyBkYXlzIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fdW5kZXJfbl9ob3VycyI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIHtob3Vyc31oLiIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luX3VuZGVyX25fbWluIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIge21pbnV0ZXN9bS4iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl91bmtub3duIjoiVGhlIHRlYW0gd2lsbCByZXBseSBhcyBzb29uIGFzIHRoZXkgY2FuIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fd2VlayI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIGEgd2Vlay4iLCJ0aGlua2luZyI6IlRoaW5raW5nLi4uIiwidGhpc19jaGF0X2lzX3Bvd2VyZWRfYnlfaW50ZXJjb20iOiJUaGlzIGNoYXQgaXMgcG93ZXJlZCBieSBJbnRlcmNvbSIsInRpY2tldF9jb3VsZF9ub3RfYmVfY3JlYXRlZCI6IlRpY2tldCBjb3VsZCBub3QgYmUgY3JlYXRlZCIsInRpY2tldF9jcmVhdGVfdGlja2V0X3dpdGhfdHlwZV90aXRsZSI6IkNyZWF0ZSB7dGlja2V0X3R5cGVfdGl0bGV9IHRpY2tldCIsInRpY2tldF9jdXJyZW50X3N0YXR1cyI6IkN1cnJlbnQgc3RhdHVzOiB7Y3VycmVudF9zdGF0dXNfdGl0bGV9IiwidGlja2V0X2N1cnJlbnRfc3RhdHVzX3dpdGhfZGF0ZSI6IkN1cnJlbnQgc3RhdHVzOiB7Y3VycmVudF9zdGF0dXNfdGl0bGV9LCB7ZGF0ZX0iLCJ0aWNrZXRfZGV0YWlsc19hdHRyaWJ1dGVzX2FjY2Vzc2liaWxpdHlfdGV4dCI6IlRpY2tldCBhdHRyaWJ1dGVzOyIsInRpY2tldF9kZXRhaWxzX2Zvcl90aXRsZSI6IlRpY2tldCBkZXRhaWxzIGZvciB7dGl0bGV9IiwidGlja2V0X2RldGFpbHNfbm90aWZpY2F0aW9uX2RldGFpbCI6IllvdSB3aWxsIGJlIG5vdGlmaWVkIGhlcmUgYW5kIHZpYSBlbWFpbCBhdCIsInRpY2tldF9wb3J0YWxfY2FyZF9saW5rX3RpdGxlIjoiR28gdG8gdGlja2V0IHBvcnRhbCIsInRpY2tldF9wb3J0YWxfY2FyZF90aXRsZSI6Ikxvb2tpbmcgZm9yIHlvdXIgY29tcGFueeKAmXMgdGlja2V0cz8iLCJ0aWNrZXRfc2xhX2RldGFpbHMiOiJTTEEgZGV0YWlsczoge3NsYV9kZXRhaWxzfSIsInRpY2tldF9zdGF0dXNfZGV0YWlscyI6IlN0YXR1cyBkZXRhaWxzOiB7c3RhdHVzX2RldGFpbHN9IiwidGlja2V0X3N0YXR1c19ldmVudF9tb3ZlZF9hdXRvbWF0aW9uX3dpdGhfYnVsbGV0X3BvaW50IjoiVGlja2V0IG1vdmVkIGludG8ge3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0X3N0YXR1c19ldmVudF9tb3ZlZF93aXRoX2J1bGxldF9wb2ludCI6Int0ZWFtbWF0ZX0gbW92ZWQgdGlja2V0IGludG8ge3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0c19hZGRfZmlsZSI6IkFkZCBmaWxlIiwidGlja2V0c19hZGRfZmlsZXMiOiJBZGQgZmlsZXMiLCJ0aWNrZXRzX2NyZWF0ZV90aWNrZXQiOiJDcmVhdGUgdGlja2V0IiwidGlja2V0c19jcmVhdGVfdGlja2V0X2ZhbGxiYWNrIjoiUGxlYXNlIHJlcGx5IHdpdGggdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBhbmQgc29tZW9uZSB3aWxsIGdldCBiYWNrIHRvIHlvdSBzb29uLiIsInRpY2tldHNfY3RhX3RleHQiOiJIYXZlIGEgcXVlc3Rpb24gYWJvdXQgdGhpcyB0aWNrZXQ/IiwidGlja2V0c19lbWFpbF9jb3B5IjoiUmVwbGllcyBhbmQgdGlja2V0IHVwZGF0ZXMgd2lsbCBiZSBzZW50IHRvIHRoaXMgZW1haWwiLCJ0aWNrZXRzX2VtYWlsX3N1YmplY3QiOiJZb3VyIHt0aWNrZXRfdHlwZV9uYW1lfSB0aWNrZXQiLCJ0aWNrZXRzX2VtYWlsX3N1YmplY3Rfd2l0aF90aWNrZXRfaWQiOiJZb3VyIHt0aWNrZXRfdHlwZV9uYW1lfSB0aWNrZXQgI3t0aWNrZXRfaWR9IiwidGlja2V0c19lc3RpbWF0ZWRfcmVzb2x1dGlvbiI6IkVzdGltYXRlZCB0aW1lIHRvIHJlc29sdXRpb246IHtkdXJhdGlvbn0iLCJ0aWNrZXRzX2ZpbGVzX2FkZGVkIjoiRmlsZXMgYWRkZWQiLCJ0aWNrZXRzX2hhdmVfYV9xdWVzdGlvbiI6IkhhdmUgYSBxdWVzdGlvbiBhYm91dCB0aGlzIGlzc3VlPyIsInRpY2tldHNfaW5fcHJvZ3Jlc3Nfc3RhdHVzX2RldGFpbCI6Ildl4oCZcmUgd29ya2luZyBvbiB0aGlzIPCfmYwiLCJ0aWNrZXRzX2luX3Byb2dyZXNzX3N0YXR1c19kZXRhaWxfd2l0aF9hc3NpZ25lZSI6IntmaXJzdF9uYW1lfSBpcyB3b3JraW5nIG9uIHRoaXMhIiwidGlja2V0c19pc19yZXNvbHZlZCI6IklzIHRoaXMgdGlja2V0IHJlc29sdmVkPyIsInRpY2tldHNfbG9nX2FfdGlja2V0IjoiTG9nIGEgdGlja2V0IiwidGlja2V0c19yZXNvbHZlZF9zdGF0dXNfZGV0YWlsIjoiV2XigJl2ZSBjb21wbGV0ZWQgeW91ciB0aWNrZXQiLCJ0aWNrZXRzX3Jlc29sdmVkX3N0YXR1c19kZXRhaWxfd2l0aF9hc3NpZ25lZSI6IntmaXJzdF9uYW1lfSBoYXMgY29tcGxldGVkIHlvdXIgdGlja2V0IiwidGlja2V0c19zbGEiOiJFc3RpbWF0ZWQgdG8gYmUgcmVzb2x2ZWQge3RpbWV9IiwidGlja2V0c19zcGFjZV90aXRsZSI6IlRpY2tldHMiLCJ0aWNrZXRzX3N0YXR1c19jaGFuZ2VfZXZlbnQiOiJUaWNrZXQgaXMgbm93IHtzdGF0dXN9IOKAoiB7dGltZXN0YW1wfSIsInRpY2tldHNfc3RhdHVzX2Rlc2NyaXB0aW9uX2NvbXBsZXRlZCI6IldlXCd2ZSBjb21wbGV0ZWQgeW91ciB0aWNrZXQiLCJ0aWNrZXRzX3N0YXR1c19kZXNjcmlwdGlvbl9tb3JlX2luZm8iOiJXZSBuZWVkIG1vcmUgaW5mb3JtYXRpb24iLCJ0aWNrZXRzX3N0YXR1c19kZXNjcmlwdGlvbl93ZWxsX3BpY2tfdXBfc29vbiI6IldlXCdsbCBwaWNrIHVwIHlvdXIgdGlja2V0IHNvb24iLCJ0aWNrZXRzX3N0YXR1c19kZXNjcmlwdGlvbl93b3JraW5nX29uIjoiV2VcJ3JlIHdvcmtpbmcgb24geW91ciB0aWNrZXQiLCJ0aWNrZXRzX3N0YXR1c19ldmVudF9tb3ZlZCI6Int0ZWFtbWF0ZX0gbW92ZWQgdGlja2V0IGludG8ge3N0YXR1c30ge3RpbWVzdGFtcH0iLCJ0aWNrZXRzX3N0YXR1c19ldmVudF9tb3ZlZF9hdXRvbWF0aW9uIjoiVGlja2V0IG1vdmVkIGludG8ge3N0YXR1c30ge3RpbWVzdGFtcH0iLCJ0aWNrZXRzX3N0YXR1c19ldmVudF9zdWJtaXR0ZWQiOiJUaWNrZXQgaGFzIGJlZW4ge3N1Ym1pdHRlZF9zdGF0dXN9IOKAoiB7dGltZXN0YW1wfSIsInRpY2tldHNfc3RhdHVzX2luX3Byb2dyZXNzIjoiSW4gcHJvZ3Jlc3MiLCJ0aWNrZXRzX3N0YXR1c19yZXNvbHZlZCI6IlJlc29sdmVkIiwidGlja2V0c19zdGF0dXNfc3VibWl0dGVkIjoiU3VibWl0dGVkIiwidGlja2V0c19zdGF0dXNfd2FpdGluZ19vbl95b3UiOiJXYWl0aW5nIG9uIHlvdSIsInRpY2tldHNfc3VibWl0dGVkX2NvbmZpcm1hdGlvbl9oZWFkZXIiOiJUaWNrZXQgaXMgc3VibWl0dGVkIiwidGlja2V0c19zdWJtaXR0ZWRfY29uZmlybWF0aW9uX3BhcmFncmFwaCI6IldlXCdsbCBub3RpZnkgeW91IG9uY2UgeW91ciB0aWNrZXQgaGFzIGFuIHVwZGF0ZSIsInRpY2tldHNfc3VibWl0dGVkX3N0YXR1c19kZXRhaWwiOiJXZeKAmWxsIHBpY2sgdGhpcyB1cCBzb29uIiwidGlja2V0c19zdWJtaXR0ZWRfc3RhdHVzX2RldGFpbF93aXRoX2Fzc2lnbmVlIjoie2ZpcnN0X25hbWV9IHdpbGwgcGljayB0aGlzIHVwIHNvb24iLCJ0aWNrZXRzX3VwZGF0ZXNfcHJvbXB0IjoiWW91IHdpbGwgcmVjZWl2ZSB1cGRhdGVzIGluIHRoZSBNZXNzZW5nZXIgYW5kIHZpYSBlbWFpbCIsInRpY2tldHNfdmlld190aWNrZXQiOiJWaWV3IHRpY2tldCBkZXRhaWxzIiwidGlja2V0c193YWl0aW5nX29uX2N1c3RvbWVyX3N0YXR1c19kZXRhaWwiOiJXZSBuZWVkIG1vcmUgaW5mb3JtYXRpb24gZnJvbSB5b3UiLCJ0aWNrZXRzX3dhaXRpbmdfb25fY3VzdG9tZXJfc3RhdHVzX2RldGFpbF93aXRoX2Fzc2lnbmVlIjoie2ZpcnN0X25hbWV9IG5lZWRzIG1vcmUgaW5mb3JtYXRpb24iLCJ0aW1lX2RheV9hZ28iOiJ7ZGVsdGF9ZCBhZ28iLCJ0aW1lX2Z1dHVyZV8xaCI6IkluIDEgaG91ciIsInRpbWVfZnV0dXJlXzJoIjoiSW4gMiBob3VycyIsInRpbWVfZnV0dXJlXzMwbSI6IkluIDMwIG1pbnV0ZXMiLCJ0aW1lX2Z1dHVyZV8zaCI6IkluIDMgaG91cnMiLCJ0aW1lX2Z1dHVyZV9kYXlfMCI6Ik1vbmRheSIsInRpbWVfZnV0dXJlX2RheV8xIjoiVHVlc2RheSIsInRpbWVfZnV0dXJlX2RheV8yIjoiV2VkbmVzZGF5IiwidGltZV9mdXR1cmVfZGF5XzMiOiJUaHVyc2RheSIsInRpbWVfZnV0dXJlX2RheV80IjoiRnJpZGF5IiwidGltZV9mdXR1cmVfZGF5XzUiOiJTYXR1cmRheSIsInRpbWVfZnV0dXJlX2RheV82IjoiU3VuZGF5IiwidGltZV9mdXR1cmVfbGF0ZXJfdG9kYXkiOiJMYXRlciB0b2RheSIsInRpbWVfZnV0dXJlX25leHRfd2VlayI6Ik5leHQgd2VlayIsInRpbWVfZnV0dXJlX3RvbW9ycm93IjoiVG9tb3Jyb3ciLCJ0aW1lX2hvdXJfYWdvIjoie2RlbHRhfWggYWdvIiwidGltZV9qdXN0X25vdyI6Ikp1c3Qgbm93IiwidGltZV9taW51dGVfYWdvIjoie2RlbHRhfW0gYWdvIiwidGltZV93ZWVrX2FnbyI6IntkZWx0YX13IGFnbyIsInRpbWVfeWVzdGVyZGF5IjoieWVzdGVyZGF5IiwidG91ciI6InRvdXIiLCJ0cnlfYWdhaW4iOiJUcnkgQWdhaW4iLCJ0cnlfaGVscF9jZW50ZXIiOiJUcnkgb3VyIEhlbHAgQ2VudGVyIiwidHJ5X3VzZV9kaWZmZXJlbnRfa2V5d29yZHMiOiJUcnkgZGlmZmVyZW50IGtleXdvcmRzIG9yIHR5cGUgeW91ciBmdWxsIHF1ZXN0aW9uIiwidHdvX2J1c2luZXNzX2RheXMiOiJUd28gYnVzaW5lc3MgZGF5cyIsInR5cGVfYV9udW1iZXIiOiJUeXBlIGEgbnVtYmVy4oCmIiwidHlwaWNhbGx5X3JlcGxpZXNfaW5fb25lX2J1c2luZXNzX2RheSI6IlR5cGljYWxseSByZXBsaWVzIGluIG9uZSBidXNpbmVzcyBkYXkiLCJ0eXBpY2FsbHlfcmVwbGllc19pbl90d29fYnVzaW5lc3NfZGF5cyI6IlR5cGljYWxseSByZXBsaWVzIGluIHR3byBidXNpbmVzcyBkYXlzIiwidHlwaW5nIjoiVHlwaW5nIiwidW5hYmxlX3RvX2xvYWRfdGhlX21lc3NlbmdlciI6IldlXCdyZSB1bmFibGUgdG8gbG9hZCB0aGUgbWVzc2VuZ2VyIiwidW5yZWFkX21lc3NhZ2VzIjoiVW5yZWFkIG1lc3NhZ2VzIiwidXBkYXRlZF9pbl90aGVfbGFzdF8xNW0iOiJVcGRhdGVkIGluIHRoZSBsYXN0IDE1IG1pbnV0ZXMiLCJ1cGRhdGVkX2luX3RoZV9sYXN0X2hvdXIiOiJVcGRhdGVkIGluIHRoZSBsYXN0IGhvdXIiLCJ1cGRhdGVkX292ZXJfYV93ZWVrX2FnbyI6IlVwZGF0ZWQgb3ZlciBhIHdlZWsgYWdvIiwidXBkYXRlZF90aGlzX3dlZWsiOiJVcGRhdGVkIHRoaXMgd2VlayIsInVwZGF0ZWRfdG9kYXkiOiJVcGRhdGVkIHRvZGF5IiwidXBkYXRlZF95ZXN0ZXJkYXkiOiJVcGRhdGVkIHllc3RlcmRheSIsInVwZnJvbnRfY29sbGVjdGlvbl9mb3JtX2Nsb3NlX291dCI6IllvdSBjYW4gcmV0dXJuIGhlcmUgYW55dGltZSB0byBzZWUgcmVzcG9uc2VzIGFuZCBzZW5kIHVwZGF0ZXMuIiwidXBmcm9udF9jb2xsZWN0aW9uX2Zvcm1faW50cm9kdWN0aW9uIjoiU2hhcmUgc29tZSBjb250ZXh0IHRvIGhlbHAgdGhlIHRlYW0gcmVzcG9uZCBiZXR0ZXIgYW5kIGZhc3Rlci4iLCJ1cGZyb250X2NvbGxlY3Rpb25fZm9ybV9zdWJtaXNzaW9uX2NvbmZpcm1hdGlvbiI6IlRoYW5rcyBmb3Igc2VuZGluZyB0aGF0IGNvbnRleHQuIFRvIHNhdmUgdGltZSBsYXRlciwgZmVlbCBmcmVlIHRvIGFkZCBtb3JlIGRldGFpbHMgbm93LiIsInVwZnJvbnRfY29sbGVjdGlvbl9mb3JtX3N1YnRpdGxlIjoiU2VuZCB0aGUgdGVhbSBzb21lIGNvbnRleHQiLCJ1cGZyb250X2NvbGxlY3Rpb25fZm9ybV9zdWJ0aXRsZV9zdWJtaXR0ZWQiOiJUaGV5XCdsbCBrZWVwIHRoaXMgY29udGV4dCBpbiBtaW5kIiwidXBmcm9udF9jb2xsZWN0aW9uX2Zvcm1fdGl0bGUiOiJHZXQgaGVscCBmYXN0ZXIiLCJ1cGZyb250X2NvbGxlY3Rpb25fZm9ybV90aXRsZV9zdWJtaXR0ZWQiOiJTZW50IHRvIHRoZSB0ZWFtISIsInVwbG9hZF9hdHRhY2htZW50IjoiVXBsb2FkIGF0dGFjaG1lbnQiLCJ1cGxvYWRfZmFpbGVkIjoiVXBsb2FkIGZhaWxlZCIsInVwbG9hZF9tYXhfZmlsZXNfYWxsb3dlZCI6Ik1heGltdW0ge2xpbWl0fSBmaWxlcyBhbGxvd2VkIiwidXBsb2FkX21heF9maWxlc19zaXplIjoiTWF4aW11bSBmaWxlIHNpemUgaXMge2xpbWl0fU1CIiwidXNlcl9zYXlzIjoie2ZpcnN0TmFtZX0gc2F5c+KApiIsInVzdWFsX3JlcGx5X3RpbWVfaGVhZGVyX2xhYmVsIjoiVXN1YWwgcmVwbHkgdGltZSIsInZpZXdfYWxsIjoiVmlldyBhbGwiLCJ2aWV3X2NvbnZlcnNhdGlvbiI6IlZpZXcgY29udmVyc2F0aW9uIiwidmlld19tb3JlIjoiVmlldyBtb3JlIiwidmlld19tb3JlX2RldGFpbHMiOiJWaWV3IG1vcmUgZGV0YWlscyIsInZpZXdfcG9zdCI6IlZpZXcgcG9zdCIsIndlX3J1bl9vbl9pbnRlcmNvbSI6IldlIHJ1biBvbiBJbnRlcmNvbSIsIndpdGhfdGVhbW5hbWUiOiJ3aXRoIHt0ZWFtbmFtZX0iLCJ3b3JraW5nX29uX2l0IjoiV29ya2luZyBvbiBpdC4uLiIsIndyaXRlX3lvdXJfbWVzc2FnZSI6IldyaXRlIHlvdXIgbWVzc2FnZS4uLiIsIndyaXR0ZW5fYnkiOiJXcml0dGVuIGJ5IiwieW91IjoiWW91IiwieW91X2FyZV9hbGxfdXBfdG9fZGF0ZSI6IllvdVwncmUgYWxsIGNhdWdodCB1cCEiLCJ5b3VfaGF2ZV9uZXdfbWVzc2FnZXMiOiJZb3UgaGF2ZSBuZXcgbWVzc2FnZXMuIiwieW91X3JhdGVkX3RoZV9jb252ZXJzYXRpb24iOiJZb3UgcmF0ZWQgdGhlIGNvbnZlcnNhdGlvbiIsInlvdV93aWxsX2dldF9hX3JlcGx5X2hlcmVfYW5kX2F0X2VtYWlsIjoiWW91XCdsbCBnZXQgYSByZXBseSBoZXJlIGFuZCBhdCB7ZW1haWx9IiwieW91bGxfYmVfbm90aWZpZWRfaGVyZV9hbmRfYnlfZW1haWwiOiJZb3Ugd2lsbCBiZSBub3RpZmllZCBoZXJlIGFuZCBieSBlbWFpbCIsInlvdWxsX2JlX25vdGlmaWVkX2hlcmVfYW5kX2J5X3NtcyI6IllvdVwnbGwgYmUgbm90aWZpZWQgaGVyZSBhbmQgYnkgU01TIiwieW91cl9jaGVja2xpc3RzIjoiWW91ciBjaGVja2xpc3RzIiwieW91cl9jb252ZXJzYXRpb25zIjoiWW91ciBjb252ZXJzYXRpb25zIiwieW91cl9lbWFpbCI6IllvdXIgZW1haWwiLCJ5b3VyX21lc3NhZ2UiOiJZb3VyIG1lc3NhZ2UiLCJ5b3VyX3JlY2VudF9tZXNzYWdlIjoiUmVjZW50IG1lc3NhZ2UiLCJ5b3VyX3JlY2VudF9tZXNzYWdlcyI6IlJlY2VudCBtZXNzYWdlcyIsInlvdXJfdGlja2V0IjoiWW91ciB0aWNrZXQifScpfX1dKTs="}},"time_used":414,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":414,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-6.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.105Z","timestamp":1785145406105,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-6.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 3895\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-f37\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":3895,"size_decoded":4147,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"f1168610149244644b858ae45b0b7b0b","sha1":"8728e360c078fb6ea4c03e08a4920026c64b548d","sha256":"297302201618b4605a690c0dda34b543053457837e4338fae743333cc36deb17","sha512":"8fe01fbd5c319b9c09393cc812dbe7b1ed7cdd64f2e322070b05d68e41d6764c643092ab9285a0387b0b1d6e9239740dada08c89aef5a41736135d1ddbdf76a7","ssdeep":"","tlshash":"6d8186fbf2ade2942607dff9d82e603266aa38fd6fc7e50403c59b90a60014c9598d57","first_seen":"2026-07-01T02:48:47.7944Z","last_seen":"2026-07-27T14:04:41.098419Z","times_seen":6,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNyIgaGVpZ2h0PSI0MSIgdmlld0JveD0iMCAwIDM3IDQxIiBmaWxsPSJub25lIj48ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjM4N18yOTI5MykiPjxwYXRoIGQ9Ik05LjM0NjExIDI5LjcwMzFIMS43MTQ4NEMxLjI4OTQgMjkuNzAzMSAwLjk1NzAzMSAzMC4wMzU1IDAuOTU3MDMxIDMwLjQ2MDlWMzkuNTk0NUMwLjk1NzAzMSA0MC4wMiAxLjI4OTQgNDAuMzUyMyAxLjcxNDg0IDQwLjM1MjNIOS4zNDYxMUM5Ljc3MTU1IDQwLjM1MjMgMTAuMTAzOSA0MC4wMiAxMC4xMDM5IDM5LjU5NDVWMzAuNDYwOUMxMC4xMDM5IDMwLjAzNTUgOS43NzE1NSAyOS43MDMxIDkuMzQ2MTEgMjkuNzAzMVpNOC41ODgzIDM4LjgzNjdIMi40NzI2NVYzMS4yMzJIOC41NzVWMzguODM2N0g4LjU4ODNaIiBmaWxsPSIjMjUyODMxIj48L3BhdGg+PHBhdGggZD0iTTIyLjMyMjcgNDAuMzQ3NkMyMi43NDgxIDQwLjM0NzYgMjMuMDgwNSA0MC4wMTUzIDIzLjA4MDUgMzkuNTg5OFYyMS4zMzU5QzIzLjA4MDUgMjAuOTEwNSAyMi43NDgxIDIwLjU3ODEgMjIuMzIyNyAyMC41NzgxSDE0LjY5MTRDMTQuMjY2IDIwLjU3ODEgMTMuOTMzNiAyMC45MTA1IDEzLjkzMzYgMjEuMzM1OVYzOS41ODk4QzEzLjkzMzYgNDAuMDE1MyAxNC4yNjYgNDAuMzQ3NiAxNC42OTE0IDQwLjM0NzZIMjIuMzIyN1pNMTUuNDQ5MiAyMi4wOTM3SDIxLjU1MTZWMzguODE4N0gxNS40NDkyVjIyLjA5MzdaIiBmaWxsPSIjMjUyODMxIj48L3BhdGg+PHBhdGggZD0iTTI3LjY1MzMgNDAuMzVIMzUuMjg0NkMzNS43MSA0MC4zNSAzNi4wNDI0IDQwLjAxNzYgMzYuMDQyNCAzOS41OTIyVjEzLjY0MDZDMzYuMDQyNCAxMy4yMTUxIDM1LjcxIDEyLjg4MjggMzUuMjg0NiAxMi44ODI4SDI3LjY1MzNDMjcuMjI3OSAxMi44ODI4IDI2Ljg5NTUgMTMuMjE1MSAyNi44OTU1IDEzLjY0MDZWMzkuNTkyMkMyNi44OTU1IDQwLjAxNzYgMjcuMjI3OSA0MC4zNSAyNy42NTMzIDQwLjM1Wk0yOC40MTExIDE0LjM5ODRIMzQuNTEzNVYzOC44MjExSDI4LjQxMTFWMTQuMzk4NFoiIGZpbGw9IiMyNTI4MzEiPjwvcGF0aD48cGF0aCBkPSJNMS4zNDMxNiAyNi41NTA3QzEuNTQyNTkgMjYuNTUwNyAxLjc0MjAxIDI2LjQ3MSAxLjg3NDk2IDI2LjMyNDdMMTUuODIxMyAxMi4zOTE3TDIwLjI3NTEgMTYuODQ1NUMyMC41ODA5IDE3LjE1MTIgMjEuMDU5NSAxNy4xNTEyIDIxLjM2NTMgMTYuODQ1NUwzNC42NjAyIDMuNTM3MjdMMzQuMDc1MiA5LjIwMDg5QzM0LjAzNTMgOS42MTMwMyAzNC4zNDExIDkuOTk4NTkgMzQuNzY2NSAxMC4wMzg1SDM0Ljg0NjNDMzUuMjMxOSAxMC4wMzg1IDM1LjU2NDIgOS43NDU5OCAzNS42MDQxIDkuMzQ3MTRMMzYuNDE1MSAxLjU0MzAzVjEuNTE2NDRDMzYuNDE1MSAxLjQzNjY3IDM2LjQwMTggMS4zNzAyIDM2LjM4ODUgMS4zMDM3M0MzNi4zODg1IDEuMjc3MTQgMzYuMzg4NSAxLjIzNzI1IDM2LjM3NTIgMS4yMTA2NkMzNi4zNDg2IDEuMTE3NiAzNi4yODIyIDEuMDExMjQgMzYuMjAyNCAwLjkzMTQ2OEMzNi4xMjI2IDAuODUxNjk5IDM2LjAxNjMgMC43OTg1MTkgMzUuOTIzMiAwLjc1ODYzNUMzNS44OTY2IDAuNzQ1MzQgMzUuODgzMyAwLjc0NTM0IDM1Ljg0MzQgMC43NDUzNEMzNS43NjM3IDAuNzMyMDQ1IDM1LjY5NzIgMC43MTg3NSAzNS42MTc0IDAuNzE4NzVIMzUuNTkwOEwyNy43ODY3IDEuNTI5NzRDMjcuMzc0NiAxLjU2OTYyIDI3LjA2ODggMS45NDE4OCAyNy4wOTU0IDIuMzY3MzJDMjcuMTM1MyAyLjc3OTQ2IDI3LjUwNzUgMy4wODUyNCAyNy45MzMgMy4wNTg2NUwzMy41OTY2IDIuNDczNjhMMjAuODMzNSAxNS4yNTAxTDE2LjM3OTcgMTAuNzk2M0MxNi4wODcyIDEwLjUwMzggMTUuNTgyIDEwLjUwMzggMTUuMjg5NSAxMC43OTYzTDAuODExMzY4IDI1LjI4NzdDMC41MDU1ODYgMjUuNTkzNSAwLjUwNTU4NiAyNi4wNzIxIDAuODExMzY4IDI2LjM3NzlDMC45NTc2MTIgMjYuNDk3NSAxLjE0Mzc0IDI2LjU2NCAxLjM0MzE2IDI2LjU2NFYyNi41NTA3WiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjxwYXRoIGQ9Ik05LjYyNTQ5IDE4LjYyNzlDMTQuNjE4NCAxOC42Mjc5IDE4LjY2NiAxNC41ODAzIDE4LjY2NiA5LjU4NzRDMTguNjY2IDQuNTk0NDYgMTQuNjE4NCAwLjU0Njg3NSA5LjYyNTQ5IDAuNTQ2ODc1QzQuNjMyNTQgMC41NDY4NzUgMC41ODQ5NjEgNC41OTQ0NiAwLjU4NDk2MSA5LjU4NzRDMC41ODQ5NjEgMTQuNTgwMyA0LjYzMjU0IDE4LjYyNzkgOS42MjU0OSAxOC42Mjc5WiIgZmlsbD0iI0ZEOUY2QSI+PC9wYXRoPjxwYXRoIGQ9Ik05LjcwNTI3IDE5LjQyMzhDMTUuMDYzMSAxOS40MjM4IDE5LjQxMDUgMTUuMDYzMSAxOS40MTA1IDkuNzE4NTdDMTkuNDEwNSA0LjM3NDAyIDE1LjA2MzEgMCA5LjcwNTI3IDBDNC4zNDc0MyAwIDAgNC4zNjA3MyAwIDkuNzA1MjdDMCAxNS4wNDk4IDQuMzYwNzMgMTkuNDEwNSA5LjcwNTI3IDE5LjQxMDVWMTkuNDIzOFpNOS43MDUyNyAxLjcyODM0QzE0LjEwNTkgMS43MjgzNCAxNy42ODIyIDUuMzA0NjYgMTcuNjgyMiA5LjcwNTI3QzE3LjY4MjIgMTQuMTA1OSAxNC4xMDU5IDE3LjY4MjIgOS43MDUyNyAxNy42ODIyQzUuMzA0NjYgMTcuNjgyMiAxLjcyODM0IDE0LjExOTIgMS43MjgzNCA5LjcwNTI3QzEuNzI4MzQgNS4yOTEzNyA1LjMwNDY2IDEuNzI4MzQgOS43MDUyNyAxLjcyODM0WiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjxwYXRoIGQ9Ik03Ljg1Njk1IDEzLjcwNjhIOS4wNTM1VjE0LjQ3NzlDOS4wNTM1IDE0Ljk1NjUgOS40MzkwNSAxNS4zNDIxIDkuOTE3NjYgMTUuMzQyMUMxMC4zOTYzIDE1LjM0MjEgMTAuNzgxOCAxNC45NTY1IDEwLjc4MTggMTQuNDc3OVYxMy42NjY5QzExLjkzODUgMTMuNDk0MSAxMi44NDI1IDEyLjUxMDIgMTIuODQyNSAxMS4zMDA0QzEyLjg0MjUgOS45NzA5MSAxMS43NjU3IDguODk0MDMgMTAuNDM2MiA4Ljg5NDAzSDkuNDEyNDZDOS4wMjY5MSA4Ljg5NDAzIDguNzM0NDIgOC41ODgyNSA4LjczNDQyIDguMTIyOTNDOC43MzQ0MiA3LjczNzM3IDkuMDQwMiA3LjQ0NDg5IDkuNDEyNDYgNy40NDQ4OUgxMS4xMDA5VjcuNjU3NkMxMS4xMDA5IDguMTM2MjIgMTEuNDg2NSA4LjUyMTc3IDExLjk2NTEgOC41MjE3N0MxMi40NDM3IDguNTIxNzcgMTIuODI5MiA4LjEzNjIyIDEyLjgyOTIgNy42NTc2VjYuNTgwNzJDMTIuODI5MiA2LjEwMjEgMTIuNDQzNyA1LjcxNjU1IDExLjk2NTEgNS43MTY1NUgxMC43Njg1VjQuOTE4ODZDMTAuNzY4NSA0LjQ0MDI0IDEwLjM4MyA0LjA1NDY5IDkuOTA0MzcgNC4wNTQ2OUM5LjQyNTc1IDQuMDU0NjkgOS4wNDAyIDQuNDQwMjQgOS4wNDAyIDQuOTE4ODZWNS43Mjk4NEM3Ljg4MzU1IDUuOTAyNjggNi45Nzk0OSA2Ljg5OTc5IDYuOTc5NDkgOC4yMDI2OUM2Ljk3OTQ5IDkuNTA1NTkgOC4wNTYzOCAxMC42MDkxIDkuMzg1ODcgMTAuNjA5MUgxMC40MDk2QzEwLjc5NTEgMTAuNjA5MSAxMS4wODc2IDEwLjkxNDkgMTEuMDg3NiAxMS4yODcxQzExLjA4NzYgMTEuNjU5NCAxMC43ODE4IDExLjk2NTEgMTAuNDA5NiAxMS45NjUxSDguNzIxMTJWMTEuODMyMkM4LjcyMTEyIDExLjM1MzYgOC4zMzU1NyAxMC45NjggNy44NTY5NSAxMC45NjhDNy4zNzgzNCAxMC45NjggNi45OTI3OSAxMS4zNTM2IDYuOTkyNzkgMTEuODMyMlYxMi44MjkzQzYuOTkyNzkgMTMuMzM0NSA3LjM3ODM0IDEzLjcwNjggNy44NTY5NSAxMy43MDY4WiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwXzIzODdfMjkyOTMiPjxyZWN0IHdpZHRoPSIzNi40MjgiIGhlaWdodD0iNDAuMzUiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA=="}},"time_used":102,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":102,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=59d951b75d934ae23e0ea7f9776264aa","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.873Z","timestamp":1785145403873,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=59d951b75d934ae23e0ea7f9776264aa HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-9fdc\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":40924,"size_decoded":12084,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (40923), with no line terminators","md5":"1329f9a0886f2ff3fb51c6f17277eb75","sha1":"dd530e798768376bfb8f72f7a188e0643a7b2631","sha256":"d03515268b17a0cbf88cd38aa108e0770a23e1338d22d2dc9e9a38ca6a89311b","sha512":"6c63128c53607c4e18336cf78b96e882238c2073d0f81289a510d8af1f4234752af2ec8c84c339c89a0ced5c84c206c651c101094b9c3492427e270047df7ed3","ssdeep":"768:doRA3CnJLHrkXO5FIXCZnmOkG3SWCi/n1:f8LkUFvmOkG3SWCiN","tlshash":"d1038598b2d2b0e246a75064453fd30bf23a6d55381ad480d212f9e17838eef9167f6e","first_seen":"2023-05-26T02:57:09Z","last_seen":"2026-08-03T00:31:35.423636Z","times_seen":281,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7dmFyIHQ9ezg1NzpmdW5jdGlvbih0KXt2YXIgZSxuLHI9dC5leHBvcnRzPXt9O2Z1bmN0aW9uIG8oKXt0aHJvdyBuZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBpKCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBjKHQpe2lmKGU9PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KHQsMCk7aWYoKGU9PT1vfHwhZSkmJnNldFRpbWVvdXQpcmV0dXJuIGU9c2V0VGltZW91dCxzZXRUaW1lb3V0KHQsMCk7dHJ5e3JldHVybiBlKHQsMCl9Y2F0Y2gobil7dHJ5e3JldHVybiBlLmNhbGwobnVsbCx0LDApfWNhdGNoKG4pe3JldHVybiBlLmNhbGwodGhpcyx0LDApfX19IWZ1bmN0aW9uKCl7dHJ5e2U9ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpvfWNhdGNoKHQpe2U9b310cnl7bj0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDppfWNhdGNoKHQpe249aX19KCk7dmFyIGEsdT1bXSxsPSExLHM9LTE7ZnVuY3Rpb24gZigpe2wmJmEmJihsPSExLGEubGVuZ3RoP3U9YS5jb25jYXQodSk6cz0tMSx1Lmxlbmd0aCYmZCgpKX1mdW5jdGlvbiBkKCl7aWYoIWwpe3ZhciB0PWMoZik7bD0hMDtmb3IodmFyIGU9dS5sZW5ndGg7ZTspe2ZvcihhPXUsdT1bXTsrK3M8ZTspYSYmYVtzXS5ydW4oKTtzPS0xLGU9dS5sZW5ndGh9YT1udWxsLGw9ITEsZnVuY3Rpb24odCl7aWYobj09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KHQpO2lmKChuPT09aXx8IW4pJiZjbGVhclRpbWVvdXQpcmV0dXJuIG49Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dCh0KTt0cnl7cmV0dXJuIG4odCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBuLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIHAodCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiB2KCl7fXIubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt1LnB1c2gobmV3IHAodCxlKSksMSE9PXUubGVuZ3RofHxsfHxjKGQpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxyLnRpdGxlPSJicm93c2VyIixyLmJyb3dzZXI9ITAsci5lbnY9e30sci5hcmd2PVtdLHIudmVyc2lvbj0iIixyLnZlcnNpb25zPXt9LHIub249dixyLmFkZExpc3RlbmVyPXYsci5vbmNlPXYsci5vZmY9dixyLnJlbW92ZUxpc3RlbmVyPXYsci5yZW1vdmVBbGxMaXN0ZW5lcnM9dixyLmVtaXQ9dixyLnByZXBlbmRMaXN0ZW5lcj12LHIucHJlcGVuZE9uY2VMaXN0ZW5lcj12LHIubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxyLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxyLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sci5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxyLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fX0sZT17fTtmdW5jdGlvbiBuKHIpe3ZhciBvPWVbcl07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBpPWVbcl09e2V4cG9ydHM6e319O3JldHVybiB0W3JdKGksaS5leHBvcnRzLG4pLGkuZXhwb3J0c31uLmQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSluLm8oZSxyKSYmIW4ubyh0LHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLHtlbnVtZXJhYmxlOiEwLGdldDplW3JdfSl9LG4ubz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sbi5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PXt9O24ucih0KSxuLmQodCx7cnVuOmZ1bmN0aW9uKCl7cmV0dXJuIEx0fSxydW5Hcm91cDpmdW5jdGlvbigpe3JldHVybiBfdH19KTt2YXIgZT17fTtuLnIoZSksbi5kKGUse2dldFNjcm9sbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFh0fSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuICR0fSx1bmxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gWXR9fSk7dmFyIHI9e307bi5yKHIpLG4uZChyLHtyZUluaXRDaGlsZHJlbjpmdW5jdGlvbigpe3JldHVybiBtZX19KTt2YXIgbz17fTtuLnIobyksbi5kKG8se2Rvd246ZnVuY3Rpb24oKXtyZXR1cm4gU2V9LHVwOmZ1bmN0aW9uKCl7cmV0dXJuIEVlfX0pO3ZhciBpPXt9O24ucihpKSxuLmQoaSx7ZWxWaXNpYmxlSGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIF9lfSxlbGVtZW50czpmdW5jdGlvbigpe3JldHVybiBDZX0saGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIExlfSx3aWR0aDpmdW5jdGlvbigpe3JldHVybiBQZX19KTt2YXIgYz17fTtuLnIoYyksbi5kKGMse2NsZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIEJlfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVWV9LHB1dDpmdW5jdGlvbigpe3JldHVybiBSZX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFdlfX0pO3ZhciBhPXt9O24ucihhKSxuLmQoYSx7Y2xlYXI6ZnVuY3Rpb24oKXtyZXR1cm4gS2V9LGdldDpmdW5jdGlvbigpe3JldHVybiAkZX0scHV0OmZ1bmN0aW9uKCl7cmV0dXJuIFhlfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gWWV9fSk7dmFyIHU9e307bi5yKHUpLG4uZCh1LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR2V9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBRZX0sc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZlfX0pO3ZhciBsPXt9O2Z1bmN0aW9uIHModCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciBuPW51bGw9PXQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLGMsYT1bXSx1PSEwLGw9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKHQpKS5uZXh0LDA9PT1lKXtpZihPYmplY3QobikhPT1uKXJldHVybjt1PSExfWVsc2UgZm9yKDshKHU9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PWUpO3U9ITApO31jYXRjaCh0KXtsPSEwLG89dH1maW5hbGx5e3RyeXtpZighdSYmbnVsbCE9bi5yZXR1cm4mJihjPW4ucmV0dXJuKCksT2JqZWN0KGMpIT09YykpcmV0dXJufWZpbmFsbHl7aWYobCl0aHJvdyBvfX1yZXR1cm4gYX19KHQsZSl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBzKHQsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cyh0LGUpOnZvaWQgMH19KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBkKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxlPVtdLG49dC5sZW5ndGg7bi0tO2UudW5zaGlmdCh0W25dKSk7cmV0dXJuIGV9ZnVuY3Rpb24gcCh0KXtyZXR1cm4hISh0Lm9mZnNldFdpZHRofHx0Lm9mZnNldEhlaWdodHx8dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9ZnVuY3Rpb24gdigpe3JldHVybiBkKChhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbiwgW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBwKHQpfSkpfWZ1bmN0aW9uIGcoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsLHI9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOmZ1bmN0aW9uKCl7fTtpZihuJiZlKXtpZigyNz09PXQua2V5Q29kZSlyZXR1cm4gZS5mb2N1cygpLHZvaWQgcigpO2lmKDk9PT10LmtleUNvZGUpe3ZhciBvPXYobiksaT1vWzBdLGM9b1tvLmxlbmd0aC0xXTt0LnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pJiYoYy5mb2N1cygpLHQucHJldmVudERlZmF1bHQoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWMmJihpLmZvY3VzKCksdC5wcmV2ZW50RGVmYXVsdCgpKX19fWZ1bmN0aW9uIGgodCxlKXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUobixlW25dKX0pKX1uLnIobCksbi5kKGwse2FuaW1hdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sYXBwbHlCcm93c2VyQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybiBXdH0sYXJyYXlFcXVhbHM6ZnVuY3Rpb24oKXtyZXR1cm4gX30sYXJyYXlUb0ludDpmdW5jdGlvbigpe3JldHVybiBJfSxhc3BlY3RSYXRpb1RvUGFkZGluZzpmdW5jdGlvbigpe3JldHVybiBNfSxib2R5TG9jazpmdW5jdGlvbigpe3JldHVybiBlfSxicm93c2VyczpmdW5jdGlvbigpe3JldHVybiBVdH0sY2hlY2tOb3RpZmljYXRpb25Qcm9taXNlOmZ1bmN0aW9uKCl7cmV0dXJuIEplfSxjbGlwYm9hcmQ6ZnVuY3Rpb24oKXtyZXR1cm4gS3R9LGNvbnNvbGVFcnJvcjpmdW5jdGlvbigpe3JldHVybiBUfSxjb25zb2xlSW5mbzpmdW5jdGlvbigpe3JldHVybiBrfSxjb25zb2xlTG9nOmZ1bmN0aW9uKCl7cmV0dXJuIFB9LGNvbnNvbGVXYXJuOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LGNvbnZlcnRFbGVtZW50czpmdW5jdGlvbigpe3JldHVybiBkfSxjb29raWVTdG9yYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGRlYm91bmNlOmZ1bmN0aW9uKCl7cmV0dXJuIEllfSxkZWVwTWVyZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gWX0sZGVsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sZGVsZWdhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gSGV9LGRyYWdIb3Jpem9udGFsOmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fSxlc2NhcGVIdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIFF9LGVzY2FwZVNjcmlwdHM6ZnVuY3Rpb24oKXtyZXR1cm4gWn0sZmlsdGVyT2JqZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIEt9LGZpbmROZXN0ZWRPYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gR30sZm9jdXNMb29wOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGdldENoaWxkcmVuOmZ1bmN0aW9uKCl7cmV0dXJuIFF0fSxnZXRDbG9zZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIFp0fSxnZXRDb25maWc6ZnVuY3Rpb24oKXtyZXR1cm4gdHR9LGdldENvb3JkczpmdW5jdGlvbigpe3JldHVybiB0ZX0sZ2V0Rm9jdXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LGdldEhpZGRlbkhlaWdodDpmdW5jdGlvbigpe3JldHVybiBlZX0sZ2V0Tm9kZTpmdW5jdGlvbigpe3JldHVybiByZX0sZ2V0Tm9kZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbmV9LGhhc0NsYXNzRnJvbUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIG9lfSxoYXNTY3JvbGxiYXI6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9LGluc2VydEFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gYWV9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gZXR9LGlzRXh0ZXJuYWxMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIHVlfSxpc0ZpbGVMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfSxpc0Zvcm1EaXJ0eTpmdW5jdGlvbigpe3JldHVybiBzZX0saXNGdW5jdGlvbjpmdW5jdGlvbigpe3JldHVybiB6fSxpc0ltYWdlTGluazpmdW5jdGlvbigpe3JldHVybiBmZX0saXNKZXN0VGVzdDpmdW5jdGlvbigpe3JldHVybiB4fSxpc0pzb246ZnVuY3Rpb24oKXtyZXR1cm4gbnR9LGlzT2JqZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ0fSxpc1J0bDpmdW5jdGlvbigpe3JldHVybiBkZX0sbG9jYWxTdG9yYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LG1pbWljRm46ZnVuY3Rpb24oKXtyZXR1cm4gbXR9LG9iamVjdEFzc2lnbjpmdW5jdGlvbigpe3JldHVybiB5dH0sb2JqZWN0VG9BdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7cmV0dXJuIFN0fSxvYmplY3RUb0Zvcm1EYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGJ0fSxvcGVuTmV3VGFiOmZ1bmN0aW9uKCl7cmV0dXJuIHBlfSxwYXJzZVVybDpmdW5jdGlvbigpe3JldHVybiB3dH0scG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdmV9LHF1ZXJ5VG9Kc29uOmZ1bmN0aW9uKCl7cmV0dXJuIGt0fSxyZWFkeTpmdW5jdGlvbigpe3JldHVybiBxZX0scmVtb3ZlQ2xhc3NUaGF0Q29udGFpbnM6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V9LHJlc2l6ZTpmdW5jdGlvbigpe3JldHVybiB6ZX0sc2FmZXJIdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIE90fSxzZXNzaW9uU3RvcmFnZTpmdW5jdGlvbigpe3JldHVybiBhfSxzZXRBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHNob3VsZExvYWRDaHVuazpmdW5jdGlvbigpe3JldHVybiBoZX0sc2ltcGxlQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNsaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHNsdWdpZnk6ZnVuY3Rpb24oKXtyZXR1cm4ganR9LHNwYWNlckNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm4ga2V9LHNwZWFrOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LHNwcmludGY6ZnVuY3Rpb24oKXtyZXR1cm4geHR9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gR3R9LHVuaXF1ZUlkOmZ1bmN0aW9uKCl7cmV0dXJuIEN0fSx1cGRhdGVRdWVyeVZhcjpmdW5jdGlvbigpe3JldHVybiBQdH0sdmlld3BvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdmlzaWJsZTpmdW5jdGlvbigpe3JldHVybiBwfSx2c3ByaW50ZjpmdW5jdGlvbigpe3JldHVybiBUdH19KTt2YXIgbT17Y29udGFpbmVyczpbXX0seT17cHJldmlvdXNNZXNzYWdlOiIifSxiPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJwb2xpdGUiLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aChlLHsiYXJpYS1saXZlIjp0LCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIHRleHQiLCJhcmlhLWF0b21pYyI6InRydWUiLHN0eWxlOiJwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbjogLTFweDsgcGFkZGluZzogMDsgaGVpZ2h0OiAxcHg7IHdpZHRoOiAxcHg7IG92ZXJmbG93OiBoaWRkZW47IGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTsgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSk7IGNsaXAtcGF0aDogaW5zZXQoNTAlKTsgYm9yZGVyOiAwOyB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50OyJ9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLG0uY29udGFpbmVycy5wdXNoKGUpfSx3PWZ1bmN0aW9uKCl7dmFyIHQ9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikucmVwbGFjZSgvPFtePD5dKz4vZywiICIpO3JldHVybiB5LnByZXZpb3VzTWVzc2FnZT09PXQmJih0Kz0iwqAiKSx5LnByZXZpb3VzTWVzc2FnZT10LHR9LE89ZnVuY3Rpb24oKXtyZXR1cm4gbS5jb250YWluZXJzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHRDb250ZW50PSIifSkpfSxqPWZ1bmN0aW9uKCl7bS5jb250YWluZXJzLmxlbmd0aHx8KGIoImFzc2VydGl2ZSIpLGIoInBvbGl0ZSIpKX07ZnVuY3Rpb24gUygpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToicG9saXRlIjtqKCksTygpO3ZhciBuPW0uY29udGFpbmVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEF0dHJpYnV0ZSgiYXJpYS1saXZlIik9PT1lfSkpWzBdO24mJihuLnRleHRDb250ZW50PXcodCkpfXZhciBFPW4oODU3KTtmdW5jdGlvbiB4KCl7dmFyIHQsZSxuLHI7cmV0dXJuISh2b2lkIDA9PT0obnVsbD09PSh0PUUpfHx2b2lkIDA9PT1FfHxudWxsPT09KGU9dC5lbnYpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLkpFU1RfV09SS0VSX0lEKXx8InRlc3QiIT09KG51bGw9PT0obj1FKXx8dm9pZCAwPT09RXx8bnVsbD09PShyPW4uZW52KXx8dm9pZCAwPT09cj92b2lkIDA6InByb2R1Y3Rpb24iKSl9ZnVuY3Rpb24gVCgpe3dpbmRvdy5jb25zb2xlJiZ4KCl9dmFyIEE9big4NTcpO2Z1bmN0aW9uIGsoKXt2YXIgdCxlOyJwcm9kdWN0aW9uIiE9PShudWxsPT09KHQ9QSl8fHZvaWQgMD09PUF8fG51bGw9PT0oZT10LmVudil8fHZvaWQgMD09PWU/dm9pZCAwOiJwcm9kdWN0aW9uIikmJndpbmRvdy5jb25zb2xlJiZ4KCl9dmFyIEM9big4NTcpO2Z1bmN0aW9uIFAoKXt2YXIgdCxlOyJwcm9kdWN0aW9uIiE9PShudWxsPT09KHQ9Qyl8fHZvaWQgMD09PUN8fG51bGw9PT0oZT10LmVudil8fHZvaWQgMD09PWU/dm9pZCAwOiJwcm9kdWN0aW9uIikmJndpbmRvdy5jb25zb2xlJiZ4KCl9ZnVuY3Rpb24gTCgpe3dpbmRvdy5jb25zb2xlJiZ4KCl9ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KGUpJiZ0Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KChmdW5jdGlvbih0LG4pe3JldHVybiB0PT09ZVtuXX0pKX12YXIgST1mdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlSW50KHQsMTApfSkpfTtmdW5jdGlvbiBNKCl7dmFyIHQ9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikuc3BsaXQoIjoiKTtyZXR1cm4gcGFyc2VGbG9hdCgodFsxXS90WzBdKjEwMCkudG9GaXhlZCg1KSl9ZnVuY3Rpb24gRCh0KXtyZXR1cm4gRD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sRCh0KX12YXIgRj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yP1N5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKTo2MDEwMyxOPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmIm9iamVjdCI9PT1EKHQpfSxIPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KTtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PWV8fCJbb2JqZWN0IERhdGVdIj09PWV8fGZ1bmN0aW9uKHQpe3JldHVybiB0LiQkdHlwZW9mPT09Rn0odCl9O2Z1bmN0aW9uIHEodCl7cmV0dXJuIE4odCkmJiFIKHQpfWZ1bmN0aW9uIHoodCl7cmV0dXJuIHQmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT17fS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIEoodCxlKXtyZXR1cm4hMSE9PWUuY2xvbmUmJmUuaXNNZXJnZWFibGVPYmplY3QodCk/JCgobj10LEFycmF5LmlzQXJyYXkobik/W106e30pLHQsZSk6dDt2YXIgbn1mdW5jdGlvbiBSKHQsZSxuKXtyZXR1cm4gdC5jb25jYXQoZSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSih0LG4pfSkpfWZ1bmN0aW9uIFUodCxlLG4pe3ZhciByPXQuc2xpY2UoKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlLG8pe3ZvaWQgMD09PXJbb10/cltvXT1uLmNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGUsbik6bi5pc01lcmdlYWJsZU9iamVjdChlKT9yW29dPSQodFtvXSxlLG4pOi0xPT09dC5pbmRleE9mKGUpJiZyLnB1c2goZSl9KSkscn1mdW5jdGlvbiBXKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5jb25jYXQoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnByb3BlcnR5SXNFbnVtZXJhYmxlKGUpfSkpOltdfSh0KSl9ZnVuY3Rpb24gQih0LGUpe3RyeXtyZXR1cm4gZSBpbiB0fWNhdGNoKHQpe3JldHVybiExfX1mdW5jdGlvbiBYKHQsZSxuKXt2YXIgcj17fTtyZXR1cm4gbi5pc01lcmdlYWJsZU9iamVjdCh0KSYmVyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXtyW2VdPUoodFtlXSxuKX0pKSxXKGUpLmZvckVhY2goKGZ1bmN0aW9uKG8peyhmdW5jdGlvbih0LGUpe3JldHVybiBCKHQsZSkmJiEoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmT2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxlKSl9KSh0LG8pfHwoQih0LG8pJiZuLmlzTWVyZ2VhYmxlT2JqZWN0KGVbb10pP3Jbb109ZnVuY3Rpb24odCxlKXtpZighZS5jdXN0b21NZXJnZSlyZXR1cm4gJDt2YXIgbj1lLmN1c3RvbU1lcmdlKHQpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP246JH0obyxuKSh0W29dLGVbb10sbik6cltvXT1KKGVbb10sbikpfSkpLHJ9ZnVuY3Rpb24gJCh0LGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtuLmFycmF5TWVyZ2U9ZnVuY3Rpb24odCl7dmFyIGU9UjtyZXR1cm4iY29tYmluZSI9PT10LmFycmF5TWVyZ2U/ZT1VOnoodC5hcnJheU1lcmdlKSYmKGU9dC5hcnJheU1lcmdlKSxlfShuKSxuLmlzTWVyZ2VhYmxlT2JqZWN0PW4uaXNNZXJnZWFibGVPYmplY3R8fHEsbi5jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZD1KO3ZhciByPUFycmF5LmlzQXJyYXkoZSk7cmV0dXJuIHI9PT1BcnJheS5pc0FycmF5KHQpP3I/bi5hcnJheU1lcmdlKHQsZSxuKTpYKHQsZSxuKTpKKGUsbil9JC5hbGw9ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheSIpO3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gJCh0LG4sZSl9KSx7fSl9O3ZhciBZPSQsSz1mdW5jdGlvbih0LGUpe3ZhciBuPU9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcihlKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKG4pfTtmdW5jdGlvbiBHKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiIixuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIjtyZXR1cm4gZnVuY3Rpb24gdChyKXtpZigib2JqZWN0Ij09PUQocikpZm9yKHZhciBvIGluIHIpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbykpe2lmKG89PT1lJiZyW29dPT09bilyZXR1cm4gcjt2YXIgaT10KHJbb10pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9KHQpfWZ1bmN0aW9uIFYoKXt2YXIgdCxlLG49YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmZ1bmN0aW9uKCl7fSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxMDAsbz1bXTtmdW5jdGlvbiBpKHQsbil7ZT13aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpZihlPW51bGwsdCgpLG8ubGVuZ3RoKXt2YXIgbj1vLnNoaWZ0KCk7aShuLmZuLG4udCl9fSksbil9cmV0dXJuIHQ9e2RlbGF5OmZ1bmN0aW9uKG4scil7cmV0dXJuIG8ubGVuZ3RofHxlP28ucHVzaCh7Zm46bix0OnJ9KTppKG4sciksdH0sY2FuY2VsOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5jbGVhclRpbWVvdXQoZSksbz1bXSx0fX0sdC5kZWxheShuLHIpfWZ1bmN0aW9uIFEoKXtyZXR1cm4gU3RyaW5nKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzAzOTsiKX1mdW5jdGlvbiBaKCl7cmV0dXJuIFN0cmluZyhhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIpLnJlcGxhY2UoLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3NjcmlwdD4vZ2ksIiIpfWZ1bmN0aW9uIHR0KCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiO3JldHVybiBlJiZ0W2VdP3RbZV06dH1mdW5jdGlvbiBldCh0KXtmb3IodmFyIGUgaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSlyZXR1cm4hMTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCk9PT1KU09OLnN0cmluZ2lmeSh7fSl9ZnVuY3Rpb24gbnQodCl7aWYobnVsbD09PXQpcmV0dXJuITE7dHJ5e0pTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gcnQodCl7cmV0dXJuISghdHx8Im9iamVjdCIhPT1EKHQpfHxBcnJheS5pc0FycmF5KHQpKX1mdW5jdGlvbiBvdCh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT09RCh0KXx8bnVsbD09PXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1EKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PT1EKGUpP2U6U3RyaW5nKGUpfWZ1bmN0aW9uIGl0KHQsZSxuKXtyZXR1cm4oZT1vdChlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH1mdW5jdGlvbiBjdCh0LGUpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheSh0KXx8KG49ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm47aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBhdCh0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gYXQodCxlKX0odCkpfHxlJiZ0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXtuJiYodD1uKTt2YXIgcj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiByPj10Lmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6dFtyKytdfX0sZTpmdW5jdGlvbih0KXt0aHJvdyB0fSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxjPSEwLGE9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtuPW4uY2FsbCh0KX0sbjpmdW5jdGlvbigpe3ZhciB0PW4ubmV4dCgpO3JldHVybiBjPXQuZG9uZSx0fSxlOmZ1bmN0aW9uKHQpe2E9ITAsaT10fSxmOmZ1bmN0aW9uKCl7dHJ5e2N8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBpfX19fWZ1bmN0aW9uIGF0KHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdXQodCxlKXt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihyPXIuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGx0KHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tlXT9hcmd1bWVudHNbZV06e307ZSUyP3V0KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aXQodCxlLG5bZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnV0KE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSkpfXJldHVybiB0fXZhciBzdD1mdW5jdGlvbih0LGUsbixyKXtpZigibGVuZ3RoIiE9PW4mJiJwcm90b3R5cGUiIT09biYmImFyZ3VtZW50cyIhPT1uJiYiY2FsbGVyIiE9PW4pe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTshZnQobyxpKSYmcnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbixpKX19LGZ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXR8fHQuY29uZmlndXJhYmxlfHx0LndyaXRhYmxlPT09ZS53cml0YWJsZSYmdC5lbnVtZXJhYmxlPT09ZS5lbnVtZXJhYmxlJiZ0LmNvbmZpZ3VyYWJsZT09PWUuY29uZmlndXJhYmxlJiYodC53cml0YWJsZXx8dC52YWx1ZT09PWUudmFsdWUpfSxkdD1mdW5jdGlvbih0LGUpe3ZhciBuPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtuIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpJiZPYmplY3Quc2V0UHJvdG90eXBlT2YodCxuKX0scHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4iLyogV3JhcHBlZCAiLmNvbmNhdCh0LCIqL1xuIikuY29uY2F0KGUpfSx2dD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLnByb3RvdHlwZSwidG9TdHJpbmciKSxndD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZywibmFtZSIpLGh0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0iIj09PW4/IiI6IndpdGggIi5jb25jYXQobi50cmltKCksIigpICIpLG89cHQuYmluZChudWxsLHIsZS50b1N0cmluZygpKTtPYmplY3QuZGVmaW5lUHJvcGVydHkobywibmFtZSIsZ3QpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ0b1N0cmluZyIsbHQobHQoe30sdnQpLHt9LHt2YWx1ZTpvfSkpfTtmdW5jdGlvbiBtdCh0LGUpe3ZhciBuLHI9KGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSkuaWdub3JlTm9uQ29uZmlndXJhYmxlLG89dm9pZCAwIT09ciYmcixpPXQubmFtZSxjPWN0KFJlZmxlY3Qub3duS2V5cyhlKSk7dHJ5e2ZvcihjLnMoKTshKG49Yy5uKCkpLmRvbmU7KXt2YXIgYT1uLnZhbHVlO3N0KHQsZSxhLG8pfX1jYXRjaCh0KXtjLmUodCl9ZmluYWxseXtjLmYoKX1yZXR1cm4gZHQodCxlKSxodCh0LGUsaSksdH1mdW5jdGlvbiB5dCgpe2Zvcih2YXIgdD17fSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrPTEpZm9yKHZhciBuPWFyZ3VtZW50c1tlXSxyPU9iamVjdC5rZXlzKG4pLG89MDtvPHIubGVuZ3RoO28rPTEpdFtyW29dXT1uW3Jbb11dO3JldHVybiB0fXZhciBidD1mdW5jdGlvbih0LGUsbil7dmFyIHI9bmV3IHdpbmRvdy5Gb3JtRGF0YTtyZXR1cm4gZnVuY3Rpb24gdChlLG8pe2lmKCFmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKSYmbi5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9KSl9KG8pKWlmKG89b3x8IiIsZSBpbnN0YW5jZW9mIHdpbmRvdy5GaWxlKXIuYXBwZW5kKG8sZSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXQoZVtpXSxvKyJbIitpKyJdIik7ZWxzZSBpZigib2JqZWN0Ij09PUQoZSkmJmUpZm9yKHZhciBjIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYykmJnQoZVtjXSwiIj09PW8/YzpvKyJbIitjKyJdIik7ZWxzZSBudWxsIT1lJiZyLmFwcGVuZChvLGUpfSh0LGUpLHJ9O2Z1bmN0aW9uIHd0KHQsZSl7Zm9yKHZhciBuLHI9WyJzb3VyY2UiLCJzY2hlbWUiLCJhdXRob3JpdHkiLCJ1c2VySW5mbyIsInVzZXIiLCJwYXNzIiwiaG9zdCIsInBvcnQiLCJyZWxhdGl2ZSIsInBhdGgiLCJkaXJlY3RvcnkiLCJmaWxlIiwicXVlcnkiLCJmcmFnbWVudCJdLG89e30saT1vWyJwaHBqcy5wYXJzZV91cmwubW9kZSJdJiZvWyJwaHBqcy5wYXJzZV91cmwubW9kZSJdLmxvY2FsX3ZhbHVlfHwicGhwIixjPXtwaHA6L14oPzooW146XC8/I10rKTopPyg/OlwvXC8oKSg/Oig/OigpKD86KFteOkBdKik6PyhbXjpAXSopKT9AKT8oW146XC8/I10qKSg/OjooXGQqKSk/KSk/KCkoPzooKCkoPzooPzpbXj8jXC9dKlwvKSopKCkoPzpbXj8jXSopKSg/Olw/KFteI10qKSk/KD86IyguKikpPykvLHN0cmljdDovXig/OihbXjpcLz8jXSspOik/KD86XC9cLygoPzooKFteOkBdKik6PyhbXjpAXSopKT9AKT8oW146XC8/I10qKSg/OjooXGQqKSk/KSk/KCgoKD86W14/I1wvXSpcLykqKShbXj8jXSopKSg/Olw/KFteI10qKSk/KD86IyguKikpPykvLGxvb3NlOi9eKD86KD8hW146QF0rOlteOkBcL10qQCkoW146XC8/Iy5dKyk6KT8oPzpcL1wvXC8/KT8oKD86KChbXjpAXSopOj8oW146QF0qKSk/QCk/KFteOlwvPyNdKikoPzo6KFxkKikpPykoKChcLyg/OltePyNdKD8hW14/I1wvXSpcLltePyNcLy5dKyg/Ols/I118JCkpKSpcLz8pPyhbXj8jXC9dKikpKD86XD8oW14jXSopKT8oPzojKC4qKSk/KS99LGE9Y1tpXS5leGVjKHQpLHU9e30sbD0xNDtsLS07KWFbbF0mJih1W3JbbF1dPWFbbF0pO3JldHVybiBlP3VbZS5yZXBsYWNlKCJQSFBfVVJMXyIsIiIpLnRvTG93ZXJDYXNlKCldOigicGhwIiE9PWkmJihuPW9bInBocGpzLnBhcnNlX3VybC5xdWVyeUtleSJdJiZvWyJwaHBqcy5wYXJzZV91cmwucXVlcnlLZXkiXS5sb2NhbF92YWx1ZXx8InF1ZXJ5S2V5IixjPS8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZyx1W25dPXt9LCh1W3JbMTJdXXx8IiIpLnJlcGxhY2UoYywoZnVuY3Rpb24odCxlLHIpe2UmJih1W25dW2VdPXIpfSkpKSx1LnNvdXJjZT1udWxsLHUpfWZ1bmN0aW9uIE90KHQpe2Zvcih2YXIgZT10WzBdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXtlKz1TdHJpbmcoYXJndW1lbnRzW25dKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZSs9dFtuXX1yZXR1cm4gZX1mdW5jdGlvbiBqdCgpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIpLnRvU3RyaW5nKCkubm9ybWFsaXplKCJORktEIikudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvXHMrL2csIi0iKS5yZXBsYWNlKC9bXlx3LV0rL2csIiIpLnJlcGxhY2UoLy0tKy9nLCItIikucmVwbGFjZSgvLSQvZywiIil9ZnVuY3Rpb24gU3QodCl7dmFyIGU9W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWYodCwyKSxyPW5bMF0sbz1uWzFdO2lmKG8ubGVuZ3RofHwiYWx0Ij09PXIpaWYoQXJyYXkuaXNBcnJheShvKSl7dmFyIGk9by5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO2UucHVzaCgiIi5jb25jYXQociwnPSInKS5jb25jYXQoaS5qb2luKCIgIiksJyInKSl9ZWxzZSBlLnB1c2goIiIuY29uY2F0KHIsJz0iJykuY29uY2F0KG8sJyInKSl9KSksZS5qb2luKCIgIil9dmFyIEV0PXtub3Rfc3RyaW5nOi9bXnNdLyxub3RfYm9vbDovW150XS8sbm90X3R5cGU6L1teVF0vLG5vdF9wcmltaXRpdmU6L1tedl0vLG51bWJlcjovW2RpZWZnXS8sbnVtZXJpY19hcmc6L1tiY2RpZWZndXhYXS8sanNvbjovW2pdLyxub3RfanNvbjovW15qXS8sdGV4dDovXlteXHgyNV0rLyxtb2R1bG86L15ceDI1ezJ9LyxwbGFjZWhvbGRlcjovXlx4MjUoPzooWzEtOV1cZCopXCR8XCgoW14pXSspXCkpPyhcKyk/KDB8J1teJF0pPygtKT8oXGQrKT8oPzpcLihcZCspKT8oW2ItZ2lqb3N0VHV2eFhdKS8sa2V5Oi9eKFthLXpfXVthLXpfXGRdKikvaSxrZXlfYWNjZXNzOi9eXC4oW2Etel9dW2Etel9cZF0qKS9pLGluZGV4X2FjY2VzczovXlxbKFxkKylcXS8sc2lnbjovXlsrLV0vfTtmdW5jdGlvbiB4dCh0KXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saSxjLGEsdSxsLHMsZj0xLGQ9dC5sZW5ndGgscD0iIjtmb3Iocj0wO3I8ZDtyKyspaWYoInN0cmluZyI9PXR5cGVvZiB0W3JdKXArPXRbcl07ZWxzZSBpZigib2JqZWN0Ij09PUQodFtyXSkpe2lmKChpPXRbcl0pLmtleXMpZm9yKG49ZVtmXSxvPTA7bzxpLmtleXMubGVuZ3RoO28rKyl7aWYobnVsbD09bil0aHJvdyBuZXcgRXJyb3IoeHQoJ1tzcHJpbnRmXSBDYW5ub3QgYWNjZXNzIHByb3BlcnR5ICIlcyIgb2YgdW5kZWZpbmVkIHZhbHVlICIlcyInLGkua2V5c1tvXSxpLmtleXNbby0xXSkpO249bltpLmtleXNbb11dfWVsc2Ugbj1pLnBhcmFtX25vP2VbaS5wYXJhbV9ub106ZVtmKytdO2lmKEV0Lm5vdF90eXBlLnRlc3QoaS50eXBlKSYmRXQubm90X3ByaW1pdGl2ZS50ZXN0KGkudHlwZSkmJm4gaW5zdGFuY2VvZiBGdW5jdGlvbiYmKG49bigpKSxFdC5udW1lcmljX2FyZy50ZXN0KGkudHlwZSkmJiJudW1iZXIiIT10eXBlb2YgbiYmaXNOYU4obikpdGhyb3cgbmV3IFR5cGVFcnJvcih4dCgiW3NwcmludGZdIGV4cGVjdGluZyBudW1iZXIgYnV0IGZvdW5kICVUIixuKSk7c3dpdGNoKEV0Lm51bWJlci50ZXN0KGkudHlwZSkmJihsPW4+PTApLGkudHlwZSl7Y2FzZSJiIjpuPXBhcnNlSW50KG4sMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6bj1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG4sMTApKTticmVhaztjYXNlImQiOmNhc2UiaSI6bj1wYXJzZUludChuLDEwKTticmVhaztjYXNlImoiOm49SlNPTi5zdHJpbmdpZnkobixudWxsLGkud2lkdGg/cGFyc2VJbnQoaS53aWR0aCk6MCk7YnJlYWs7Y2FzZSJlIjpuPWkucHJlY2lzaW9uP3BhcnNlRmxvYXQobikudG9FeHBvbmVudGlhbChpLnByZWNpc2lvbik6cGFyc2VGbG9hdChuKS50b0V4cG9uZW50aWFsKCk7YnJlYWs7Y2FzZSJmIjpuPWkucHJlY2lzaW9uP3BhcnNlRmxvYXQobikudG9GaXhlZChpLnByZWNpc2lvbik6cGFyc2VGbG9hdChuKTticmVhaztjYXNlImciOm49aS5wcmVjaXNpb24/U3RyaW5nKE51bWJlcihuLnRvUHJlY2lzaW9uKGkucHJlY2lzaW9uKSkpOnBhcnNlRmxvYXQobik7YnJlYWs7Y2FzZSJvIjpuPShwYXJzZUludChuLDEwKT4+PjApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6bj1TdHJpbmcobiksbj1pLnByZWNpc2lvbj9uLnN1YnN0cmluZygwLGkucHJlY2lzaW9uKTpuO2JyZWFrO2Nhc2UidCI6bj1TdHJpbmcoISFuKSxuPWkucHJlY2lzaW9uP24uc3Vic3RyaW5nKDAsaS5wcmVjaXNpb24pOm47YnJlYWs7Y2FzZSJUIjpuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpLG49aS5wcmVjaXNpb24/bi5zdWJzdHJpbmcoMCxpLnByZWNpc2lvbik6bjticmVhaztjYXNlInUiOm49cGFyc2VJbnQobiwxMCk+Pj4wO2JyZWFrO2Nhc2UidiI6bj1uLnZhbHVlT2YoKSxuPWkucHJlY2lzaW9uP24uc3Vic3RyaW5nKDAsaS5wcmVjaXNpb24pOm47YnJlYWs7Y2FzZSJ4IjpuPShwYXJzZUludChuLDEwKT4+PjApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOm49KHBhcnNlSW50KG4sMTApPj4+MCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9RXQuanNvbi50ZXN0KGkudHlwZSk/cCs9bjooIUV0Lm51bWJlci50ZXN0KGkudHlwZSl8fGwmJiFpLnNpZ24/cz0iIjoocz1sPyIrIjoiLSIsbj1uLnRvU3RyaW5nKCkucmVwbGFjZShFdC5zaWduLCIiKSksYT1pLnBhZF9jaGFyPyIwIj09PWkucGFkX2NoYXI/IjAiOmkucGFkX2NoYXIuY2hhckF0KDEpOiIgIix1PWkud2lkdGgtKHMrbikubGVuZ3RoLGM9aS53aWR0aCYmdT4wP2EucmVwZWF0KHUpOiIiLHArPWkuYWxpZ24/cytuK2M6IjAiPT09YT9zK2MrbjpjK3Mrbil9cmV0dXJuIHB9KGZ1bmN0aW9uKHQpe2lmKEF0W3RdKXJldHVybiBBdFt0XTt2YXIgZSxuPXQscj1bXSxvPTA7Zm9yKDtuOyl7aWYobnVsbCE9PShlPUV0LnRleHQuZXhlYyhuKSkpci5wdXNoKGVbMF0pO2Vsc2UgaWYobnVsbCE9PShlPUV0Lm1vZHVsby5leGVjKG4pKSlyLnB1c2goIiUiKTtlbHNle2lmKG51bGw9PT0oZT1FdC5wbGFjZWhvbGRlci5leGVjKG4pKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSB1bmV4cGVjdGVkIHBsYWNlaG9sZGVyIik7aWYoZVsyXSl7b3w9MTt2YXIgaT1bXSxjPWVbMl0sYT1bXTtpZihudWxsPT09KGE9RXQua2V5LmV4ZWMoYykpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXkiKTtmb3IoaS5wdXNoKGFbMV0pOyIiIT09KGM9Yy5zdWJzdHJpbmcoYVswXS5sZW5ndGgpKTspaWYobnVsbCE9PShhPUV0LmtleV9hY2Nlc3MuZXhlYyhjKSkpaS5wdXNoKGFbMV0pO2Vsc2V7aWYobnVsbD09PShhPUV0LmluZGV4X2FjY2Vzcy5leGVjKGMpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7aS5wdXNoKGFbMV0pfWVbMl09aX1lbHNlIG98PTI7aWYoMz09PW8pdGhyb3cgbmV3IEVycm9yKCJbc3ByaW50Zl0gbWl4aW5nIHBvc2l0aW9uYWwgYW5kIG5hbWVkIHBsYWNlaG9sZGVycyBpcyBub3QgKHlldCkgc3VwcG9ydGVkIik7ci5wdXNoKHtwbGFjZWhvbGRlcjplWzBdLHBhcmFtX25vOmVbMV0sa2V5czplWzJdLHNpZ246ZVszXSxwYWRfY2hhcjplWzRdLGFsaWduOmVbNV0sd2lkdGg6ZVs2XSxwcmVjaXNpb246ZVs3XSx0eXBlOmVbOF19KX1uPW4uc3Vic3RyaW5nKGVbMF0ubGVuZ3RoKX1yZXR1cm4gQXRbdF09cn0odCksYXJndW1lbnRzKX1mdW5jdGlvbiBUdCh0LGUpe3JldHVybiB4dC5hcHBseShudWxsLFt0XS5jb25jYXQoZXx8W10pKX12YXIgQXQ9T2JqZWN0LmNyZWF0ZShudWxsKTt2YXIga3Q9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsZT10Lmxlbmd0aD90OndpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2xpY2UoMSksbj1lLmxlbmd0aD9lLnNwbGl0KCImIik6W10scj17fSxvPVtdO3JldHVybiBuLmZvckVhY2goKGZ1bmN0aW9uKHQpe289dC5zcGxpdCgiPSIpLHJbb1swXV09ZGVjb2RlVVJJQ29tcG9uZW50KG9bMV18fCIiKX0pKSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHIpKX07ZnVuY3Rpb24gQ3QoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ImlkIjtyZXR1cm4iIi5jb25jYXQodC5sZW5ndGg/IiIuY29uY2F0KHQsIi0iKToiIikuY29uY2F0KE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpKX1mdW5jdGlvbiBQdCh0LGUpe3ZhciBuPShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06d2luZG93LmxvY2F0aW9uLmhyZWYpLnNwbGl0KCIjIikscj1uWzFdPyIjIi5jb25jYXQoblsxXSk6IiIsbz1uWzBdLnNwbGl0KCI/IiksaT1vWzBdLGM9b1sxXSxhPXZvaWQgMCE9PWM/Yy5zcGxpdCgiJiIpOltdLHU9ITE7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24obixyKXtuLnN0YXJ0c1dpdGgoIiIuY29uY2F0KHQsIj0iKSkmJih1PSEwLGU/YVtyXT0iIi5jb25jYXQodCwiPSIpLmNvbmNhdChlKTphLnNwbGljZShyLDEpKX0pKSwhdSYmZSYmKGFbYS5sZW5ndGhdPSIiLmNvbmNhdCh0LCI9IikuY29uY2F0KGUpKSwiIi5jb25jYXQoaSkuY29uY2F0KCI/IikuY29uY2F0KGEuam9pbigiJiIpKS5jb25jYXQocil9dmFyIEx0PWZ1bmN0aW9uKCl7dmFyIHQsZSxuLHI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsbz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYocil7dmFyIGk9by5vbkFuaW1hdGVJbml0LGM9dm9pZCAwPT09aT9mdW5jdGlvbigpe306aSxhPW8ub25BbmltYXRlU3RhcnQsdT12b2lkIDA9PT1hP2Z1bmN0aW9uKCl7fTphLGw9by5vbkFuaW1hdGVFbmQscz12b2lkIDA9PT1sP2Z1bmN0aW9uKCl7fTpsLGY9by5kZWxheSxkPXZvaWQgMD09PWY/KG51bGw9PT0odD1yLmRhdGFzZXQpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmFuaW1hdGlvbkRlbGF5KXx8MDpmLHA9by5kdXJhdGlvbix2PXZvaWQgMD09PXA/KG51bGw9PT0oZT1yLmRhdGFzZXQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmFuaW1hdGlvbkR1cmF0aW9uKXx8NDAwOnAsZz1vLmVhc2luZyxoPXZvaWQgMD09PWc/KG51bGw9PT0obj1yLmRhdGFzZXQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmFuaW1hdGlvbkVhc2luZyl8fCJsaW5lYXIiOmcsbT1mdW5jdGlvbih0LGUpe3ZhciBuLHIsbyxpLGMsYT17fSx1PXt9LGw9ZS5kaXN0YW5jZUZyb20scz12b2lkIDA9PT1sPyhudWxsPT09KG49dC5kYXRhc2V0KXx8dm9pZCAwPT09bj92b2lkIDA6bi50cmFuc2xhdGVEaXN0YW5jZUZyb20pfHwiMjBweCI6bCxmPWUuZGlzdGFuY2VUbyxkPXZvaWQgMD09PWY/KG51bGw9PT0ocj10LmRhdGFzZXQpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLnRyYW5zbGF0ZURpc3RhbmNlVG8pfHwiMHB4IjpmLHA9ZS5vcGFjaXR5RnJvbSx2PXZvaWQgMD09PXA/bnVsbD09PShvPXQuZGF0YXNldCl8fHZvaWQgMD09PW8/dm9pZCAwOm8udHJhbnNsYXRlT3BhY2l0eUZyb206cCxnPWUub3BhY2l0eVRvLGg9dm9pZCAwPT09Zz9udWxsPT09KGk9dC5kYXRhc2V0KXx8dm9pZCAwPT09aT92b2lkIDA6aS50cmFuc2xhdGVPcGFjaXR5VG86ZyxtPWUudHlwZXM7cmV0dXJuKHZvaWQgMD09PW0/KG51bGw9PT0oYz10LmRhdGFzZXQpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmFuaW1hdGlvblR5cGVzKXx8IiI6bSkuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZmFkZUluIj09PXQmJihhLm9wYWNpdHk9dnx8MCx1Lm9wYWNpdHk9aHx8MSksImZhZGVPdXQiPT09dCYmKGEub3BhY2l0eT12fHwxLHUub3BhY2l0eT1ofHwwKSwidHJhbnNsYXRlWSI9PT10JiYoYS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoIi5jb25jYXQocywiKSIpLHUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIuY29uY2F0KGQsIikiKSl9KSksW2EsdV19KHIsbyk7YygpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dSgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtyLmFuaW1hdGUobSx7ZHVyYXRpb246TnVtYmVyKHYpLGVhc2luZzpofSkub25maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saT1lLmRpc3RhbmNlVG8sYz12b2lkIDA9PT1pPyhudWxsPT09KG49dC5kYXRhc2V0KXx8dm9pZCAwPT09bj92b2lkIDA6bi50cmFuc2xhdGVEaXN0YW5jZVRvKXx8IjBweCI6aSxhPWUub3BhY2l0eVRvLHU9dm9pZCAwPT09YT9udWxsPT09KHI9dC5kYXRhc2V0KXx8dm9pZCAwPT09cj92b2lkIDA6ci50cmFuc2xhdGVPcGFjaXR5VG86YSxsPWUudHlwZXM7KHZvaWQgMD09PWw/KG51bGw9PT0obz10LmRhdGFzZXQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmFuaW1hdGlvblR5cGVzKXx8IiI6bCkuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXsiZmFkZUluIj09PWUmJih0LnN0eWxlLm9wYWNpdHk9dXx8IjEiLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsImZhbHNlIikpLCJmYWRlT3V0Ij09PWUmJih0LnN0eWxlLm9wYWNpdHk9dXx8IjAiLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSksInRyYW5zbGF0ZVkiPT09ZSYmKHQuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIuY29uY2F0KGMsIikiKSl9KSl9KHIsbykscygpfX0pKX0pLGQpfX0sX3Q9ZnVuY3Rpb24oKXsoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldCxuPXQub3B0aW9ucztMdChlLG4pfSkpfSxJdD0vKGFuZHJvaWQpL2kudGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCksTXQ9ISF3aW5kb3cuY2hyb21lLER0PSJ1bmRlZmluZWQiIT10eXBlb2YgSW5zdGFsbFRyaWdnZXIsRnQ9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwhMSxOdD0hRnQmJiEhd2luZG93LlN0eWxlTWVkaWEsSHQ9ISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQb2R8aVBob25lfGlQYWQpL2kpLHF0PSEhd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUG9kfGlQaG9uZSkvaSksenQ9ISF3aW5kb3cub3BlcmF8fHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIiBPUFIvIik+PTAsSnQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHdpbmRvdy5IVE1MRWxlbWVudCkuaW5kZXhPZigiQ29uc3RydWN0b3IiKT4wfHwhTXQmJiF6dCYmInVuZGVmaW5lZCIhPT13aW5kb3cud2Via2l0QXVkaW9Db250ZXh0LFJ0PXdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm07ZnVuY3Rpb24gVXQoKXtyZXR1cm57YW5kcm9pZDpJdCxjaHJvbWU6TXQsZWRnZTpOdCxmaXJlZm94OkR0LGllOkZ0LGlvczpIdCxpb3NNb2JpbGU6cXQsb3BlcmE6enQsc2FmYXJpOkp0LG9zOlJ0fX1mdW5jdGlvbiBXdCgpe3ZhciB0PVV0KCksZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdDt0LmFuZHJvaWQ/ZS5hZGQoImRldmljZS1hbmRyb2lkIik6dC5pb3MmJmUuYWRkKCJkZXZpY2UtaW9zIiksdC5lZGdlP2UuYWRkKCJicm93c2VyLWVkZ2UiKTp0LmNocm9tZT9lLmFkZCgiYnJvd3Nlci1jaHJvbWUiKTp0LmZpcmVmb3g/ZS5hZGQoImJyb3dzZXItZmlyZWZveCIpOnQuaWU/ZS5hZGQoImJyb3dzZXItaWUiKTp0Lm9wZXJhP2UuYWRkKCJicm93c2VyLW9wZXJhIik6dC5zYWZhcmkmJmUuYWRkKCJicm93c2VyLXNhZmFyaSIpfXZhciBCdD0wLFh0PWZ1bmN0aW9uKCl7dmFyIHQ9VXQoKTtyZXR1cm4gdC5pZXx8dC5maXJlZm94fHx0LmNocm9tZSYmIXQuZWRnZT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuYm9keX0sJHQ9ZnVuY3Rpb24oKXt2YXIgdD0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLGU9WHQoKSxuPWRvY3VtZW50LmJvZHkuc3R5bGU7QnQ9ZS5zY3JvbGxUb3Asbi5vdmVyZmxvd1k9InNjcm9sbCIsbi5wb3NpdGlvbj0iZml4ZWQiLG4ud2lkdGg9IjEwMCUiLHQmJihuLm1hcmdpblRvcD0iLSIuY29uY2F0KEJ0LCJweCIpKX0sWXQ9ZnVuY3Rpb24oKXt2YXIgdD1YdCgpLGU9ZG9jdW1lbnQuYm9keS5zdHlsZTtlLm92ZXJmbG93WT0iIixlLnBvc2l0aW9uPSJzdGF0aWMiLGUubWFyZ2luVG9wPSIwcHgiLGUud2lkdGg9IiIsdC5zY3JvbGxUb3A9QnR9O2Z1bmN0aW9uIEt0KCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiO2lmKHdpbmRvdy5jbGlwYm9hcmREYXRhJiZ3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKXJldHVybiB3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJUZXh0Iix0KTtpZihkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQmJmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgiY29weSIpKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2UudGV4dENvbnRlbnQ9dCxlLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxlLnNlbGVjdCgpO3RyeXtyZXR1cm4gZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKX1jYXRjaCh0KXtyZXR1cm4gTCgiQ29weSB0byBjbGlwYm9hcmQgZmFpbGVkLiIsdCksITF9ZmluYWxseXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGUpfX19ZnVuY3Rpb24gR3QoKXt2YXIgdCxlPXl0KHtkYXRhOnt9LGVsOmRvY3VtZW50LGV2ZW50OiIiLG5hdGl2ZTohMH0sYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9KTtpZihlLm5hdGl2ZSkodD1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQoZS5ldmVudCwhMCwhMSk7ZWxzZSB0cnl7dD1uZXcgd2luZG93LkN1c3RvbUV2ZW50KGUuZXZlbnQse2RldGFpbDplLmRhdGF9KX1jYXRjaChuKXsodD1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSkuaW5pdEN1c3RvbUV2ZW50KGUuZXZlbnQsITAsITAsZS5kYXRhKX1lLmVsLmRpc3BhdGNoRXZlbnQodCl9ZnVuY3Rpb24gVnQodCl7dmFyIGU9e2lzRG93bjohMSxtb3ZlRXZlbnRUcmlnZ2VyZWQ6ITEsc3RhcnRYOjAsc2Nyb2xsTGVmdDowfTt0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsKGZ1bmN0aW9uKG4pe2UuaXNEb3duPSEwLHQuY2xhc3NMaXN0LmFkZCgiZHJhZy1ob3Jpem9udGFsLS1hY3RpdmUiKSxlLnN0YXJ0WD1uLnBhZ2VYLXQub2Zmc2V0TGVmdCxlLnNjcm9sbExlZnQ9dC5zY3JvbGxMZWZ0fSkpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKGZ1bmN0aW9uKCl7ZS5pc0Rvd249ITEsdC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLWhvcml6b250YWwtLWFjdGl2ZSIpfSkpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKGZ1bmN0aW9uKCl7ZS5pc0Rvd249ITEsdC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLWhvcml6b250YWwtLWFjdGl2ZSIpLEd0KHtldmVudDoiZ2Zvcm0tdXRpbHMvaG9yaXpvbnRhbC1kcmFnLWVuZGVkIixuYXRpdmU6ITF9KSxlLm1vdmVFdmVudFRyaWdnZXJlZD0hMX0pKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsKGZ1bmN0aW9uKG4pe2lmKGUuaXNEb3duKXtuLnByZXZlbnREZWZhdWx0KCk7dmFyIHI9Myoobi5wYWdlWC10Lm9mZnNldExlZnQtZS5zdGFydFgpO3Quc2Nyb2xsTGVmdD1lLnNjcm9sbExlZnQtcixlLm1vdmVFdmVudFRyaWdnZXJlZHx8KEd0KHtldmVudDoiZ2Zvcm0tdXRpbHMvaG9yaXpvbnRhbC1kcmFnLXN0YXJ0ZWQiLG5hdGl2ZTohMX0pLGUubW92ZUV2ZW50VHJpZ2dlcmVkPSEwKX19KSl9ZnVuY3Rpb24gUXQodCl7Zm9yKHZhciBlPVtdLG49dC5jaGlsZHJlbi5sZW5ndGg7bi0tOyk4IT09dC5jaGlsZHJlbltuXS5ub2RlVHlwZSYmZS51bnNoaWZ0KHQuY2hpbGRyZW5bbl0pO3JldHVybiBlfWZ1bmN0aW9uIFp0KHQsZSl7dmFyIG4scjtmb3IoWyJtYXRjaGVzIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwibXNNYXRjaGVzU2VsZWN0b3IiLCJvTWF0Y2hlc1NlbGVjdG9yIl0uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRvY3VtZW50LmJvZHlbdF0mJihuPXQsITApfSkpO3Q7KXtpZigocj10LnBhcmVudEVsZW1lbnQpJiZyW25dKGUpKXJldHVybiByO3Q9cn1yZXR1cm4gbnVsbH1mdW5jdGlvbiB0ZSh0KXt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZG9jdW1lbnQuYm9keSxyPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxvPXdpbmRvdy5wYWdlWU9mZnNldHx8ci5zY3JvbGxUb3B8fG4uc2Nyb2xsVG9wLGk9d2luZG93LnBhZ2VYT2Zmc2V0fHxyLnNjcm9sbExlZnR8fG4uc2Nyb2xsTGVmdCxjPXIuY2xpZW50VG9wfHxuLmNsaWVudFRvcHx8MCxhPXIuY2xpZW50TGVmdHx8bi5jbGllbnRMZWZ0fHwwLHU9ZS50b3Arby1jLGw9ZS5sZWZ0K2ktYTtyZXR1cm57dG9wOk1hdGgucm91bmQodSksbGVmdDpNYXRoLnJvdW5kKGwpLGJvdHRvbTpNYXRoLnJvdW5kKGUuYm90dG9tKX19ZnVuY3Rpb24gZWUodCl7dmFyIGU9dC5jbGllbnRXaWR0aCxuPXQ7bi5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLG4uc3R5bGUuaGVpZ2h0PSJhdXRvIixuLnN0eWxlLm1heEhlaWdodD0ibm9uZSIsbi5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLG4uc3R5bGUud2lkdGg9IiIuY29uY2F0KGUsInB4Iik7dmFyIHI9bi5vZmZzZXRIZWlnaHQ7cmV0dXJuIG4uc3R5bGUudmlzaWJpbGl0eT0iIixuLnN0eWxlLmhlaWdodD0iIixuLnN0eWxlLm1heEhlaWdodD0iIixuLnN0eWxlLndpZHRoPSIiLG4uc3R5bGUucG9zaXRpb249IiIsbi5zdHlsZS56SW5kZXg9IiIscn1mdW5jdGlvbiBuZSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZG9jdW1lbnQscj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdP3Q6J1tkYXRhLWpzPSInLmNvbmNhdCh0LCciXScpLG89bi5xdWVyeVNlbGVjdG9yQWxsKHIpO3JldHVybiBlJiYobz1kKG8pKSxvfWZ1bmN0aW9uIHJlKCl7dmFyIHQ9bmUoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLCExLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpkb2N1bWVudCxhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdKTtyZXR1cm4gdC5sZW5ndGg+MD90WzBdOm51bGx9ZnVuY3Rpb24gb2UodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOiIiO3JldHVybihhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10pLnNvbWUoKGZ1bmN0aW9uKHIpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygiIi5jb25jYXQoZSkuY29uY2F0KHIpLmNvbmNhdChuKSl9KSl9ZnVuY3Rpb24gaWUodCl7cmV0dXJue3ZlcnRpY2FsOnQuc2Nyb2xsSGVpZ2h0PnQuY2xpZW50SGVpZ2h0LGhvcml6b250YWw6dC5zY3JvbGxXaWR0aD50LmNsaWVudFdpZHRofX1mdW5jdGlvbiBjZSh0LGUpe2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxlLm5leHRFbGVtZW50U2libGluZyl9ZnVuY3Rpb24gYWUodCxlKXtlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsZSl9ZnVuY3Rpb24gdWUoKXt2YXIgdD0oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiKS5tYXRjaCgvXihbXjovPyNdKzopPyg/OlwvXC8oW14vPyNdKikpPyhbXj8jXSspPyhcP1teI10qKT8oIy4qKT8vKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHRbMV0mJnRbMV0ubGVuZ3RoPjAmJnRbMV0udG9Mb3dlckNhc2UoKSE9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbHx8InN0cmluZyI9PXR5cGVvZiB0WzJdJiZ0WzJdLmxlbmd0aD4wJiZ0WzJdLnJlcGxhY2UobmV3IFJlZ0V4cCgiOigiLmNvbmNhdCh7Imh0dHA6Ijo4MCwiaHR0cHM6Ijo0NDN9W3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbF0sIik/JCIpKSwiIikhPT13aW5kb3cubG9jYXRpb24uaG9zdH1mdW5jdGlvbiBsZSgpe3JldHVybi0xIT09KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikuc3BsaXQoIi8iKS5wb3AoKS5pbmRleE9mKCIuIil9ZnVuY3Rpb24gc2UoKXt2YXIgdCxlO2lmKCF3aW5kb3cuZ2Zvcm1zX29yaWdpbmFsX2pzb258fCF3aW5kb3cuVXBkYXRlRm9ybU9iamVjdClyZXR1cm4hMTt3aW5kb3cuVXBkYXRlRm9ybU9iamVjdCgpO3ZhciBuPSIxIj09PShudWxsPT09KHQ9d2luZG93KXx8dm9pZCAwPT09dHx8bnVsbD09PShlPXQuZ2ZfbGVnYWN5KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5pc19sZWdhY3kpLHI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShKU09OLnBhcnNlKHdpbmRvdy5nZm9ybXNfb3JpZ2luYWxfanNvbikpKSxvPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkod2luZG93LmZvcm0pKTtyZXR1cm4gbiYmKHIuZmllbGRzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7ZGVsZXRlIHIuZmllbGRzW2VdLmxheW91dEdyb3VwSWR9KSksby5maWVsZHMuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtkZWxldGUgby5maWVsZHNbZV0ubGF5b3V0R3JvdXBJZH0pKSksSlNPTi5zdHJpbmdpZnkocikhPT1KU09OLnN0cmluZ2lmeShvKX1mdW5jdGlvbiBmZSgpe3ZhciB0PShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIpLnNwbGl0KCIuIikucG9wKCkudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGpwZ3xqcGVnfHBuZ3xnaWZ8c3ZnKS9nKTtyZXR1cm4gdCYmdC5sZW5ndGg+MHx8ITF9ZnVuY3Rpb24gZGUoKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBlPSJydGwiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJkaXJlY3Rpb24iKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxlfWZ1bmN0aW9uIHBlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2UuaHJlZj10LGUudGFyZ2V0PSJfYmxhbmsiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZS5jbGljaygpLGUucmVtb3ZlKCl9ZnVuY3Rpb24gdmUoKXt2YXIgdD15dCh7ZXZlbnQ6bnVsbCx1cmw6IiIsY2VudGVyOiEwLG5hbWU6Il9ibGFuayIsc3BlY3M6e21lbnViYXI6MCxzY3JvbGxiYXJzOjAsc3RhdHVzOjEsdGl0bGViYXI6MSx0b29sYmFyOjAsdG9wOjEwMCxsZWZ0OjEwMCx3aWR0aDo1MDAsaGVpZ2h0OjMwMH19LGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSk7aWYodC5ldmVudCYmKHQuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LnVybC5sZW5ndGh8fCh0LnVybD10LmV2ZW50LmN1cnJlbnRUYXJnZXQuaHJlZikpLHQudXJsLmxlbmd0aCl7dC5jZW50ZXImJih0LnNwZWNzLnRvcD13aW5kb3cuc2NyZWVuLmhlaWdodC8yLXQuc3BlY3MuaGVpZ2h0LzIsdC5zcGVjcy5sZWZ0PXdpbmRvdy5zY3JlZW4ud2lkdGgvMi10LnNwZWNzLndpZHRoLzIpO3ZhciBlPVtdO09iamVjdC5lbnRyaWVzKHQuc3BlY3MpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWYodCwyKSxyPW5bMF0sbz1uWzFdLGk9IiIuY29uY2F0KHIsIj0iKS5jb25jYXQobyk7ZS5wdXNoKGkpfSkpLHdpbmRvdy5vcGVuKHQudXJsLHQubmFtZSxlLmpvaW4oKSl9fWZ1bmN0aW9uIGdlKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IiIsbj0wO248dC5jbGFzc0xpc3QubGVuZ3RoO24rKyktMSE9PXQuY2xhc3NMaXN0Lml0ZW0obikuaW5kZXhPZihlKSYmdC5jbGFzc0xpc3QucmVtb3ZlKHQuY2xhc3NMaXN0Lml0ZW0obikpfWZ1bmN0aW9uIGhlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiO3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1sb2FkLWNodW5rLSIuY29uY2F0KHQsIl0iKSkubGVuZ3RoPjB9dmFyIG1lPWZ1bmN0aW9uKHQpe3ZhciBlLG49KG51bGw9PT0oZT13aW5kb3cpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLlNpbXBsZUJhcil8fHt9O24uaW5zdGFuY2VzJiZ0JiZuZSgiW2RhdGEtc2ltcGxlYmFyXSIsITAsdCwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT1uLmluc3RhbmNlcy5nZXQodCkpJiZ2b2lkIDAhPT1lP2U6bmV3IG4odCl9KSl9LHllPTI1LGJlPVtdLHdlPWZ1bmN0aW9uKHQpe3JldHVybiB0PC4yMDc0Py0zLjg3MTYqdCp0KnQrNi4xMzcqdCp0Ky40KnQ6MS4xMzE3Kih0LTEpKih0LTEpKih0LTEpLS4xOTc1Kih0LTEpKih0LTEpKzF9LE9lPWZ1bmN0aW9uKHQpe2JlW3RdfHwoYmVbdF09e3VwOm51bGwsZG93bjpudWxsfSl9LGplPWZ1bmN0aW9uKHQpe2JlW3RdLnVwJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGJlW3RdLnVwKSxiZVt0XS51cD1udWxsKSxiZVt0XS5kb3duJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGJlW3RdLmRvd24pLGJlW3RdLmRvd249bnVsbCl9LFNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjQwMCxyPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsLG89dC5vZmZzZXRIZWlnaHQsaT1lZSh0KSxjPW51bGw7dC5zdHlsZS5tYXhIZWlnaHQ9IjAiLE9lKGUpLGplKGUpO3ZhciBhPWZ1bmN0aW9uIGEodSl7Y3x8KGM9dSk7dmFyIGw9dS1jLHM9d2UobC9uKSooaS1vKStvO3Quc3R5bGUubWF4SGVpZ2h0PSIiLmNvbmNhdChzLCJweCIpLGw8bj9iZVtlXS5kb3duPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYSk6KGJlW2VdLmRvd249bnVsbCx0LnN0eWxlLm1heEhlaWdodD0ibm9uZSIsciYmcigpKX07c2V0VGltZW91dCgoZnVuY3Rpb24oKXtiZVtlXS5kb3duPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYSl9KSx5ZSl9LEVlPWZ1bmN0aW9uKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjQwMCxyPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsLG89dC5vZmZzZXRIZWlnaHQsaT1udWxsO3Quc3R5bGUubWF4SGVpZ2h0PSIiLmNvbmNhdChvLCJweCIpLE9lKGUpLGplKGUpO3ZhciBjPWZ1bmN0aW9uIGMoYSl7aXx8KGk9YSk7dmFyIHU9YS1pLGw9d2UodS9uKSooMC1vKStvO3Quc3R5bGUubWF4SGVpZ2h0PSIiLmNvbmNhdChsLCJweCIpLHU8bj9iZVtlXS51cD13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGMpOihiZVtlXS51cD1udWxsLHQuc3R5bGUubWF4SGVpZ2h0PSIwIixyJiZyKCkpfTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2JlW2VdLnVwPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYyl9KSx5ZSl9O2Z1bmN0aW9uIHhlKHQsZSl7dmFyIG49T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYocj1yLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBUZSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj94ZShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2l0KHQsZSxuW2VdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp4ZShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pKX1yZXR1cm4gdH12YXIgQWU9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiJnZm9ybS1zcGFjaW5nIixyPXt9O3JldHVybiF0fHwic3RyaW5nIiE9dHlwZW9mIHQmJiJudW1iZXIiIT10eXBlb2YgdCYmIUFycmF5LmlzQXJyYXkodCl8fEFycmF5LmlzQXJyYXkodCkmJiF0Lmxlbmd0aD9yOiJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0PyhyWyIiLmNvbmNhdChuLCItLSIpLmNvbmNhdChlLCJib3R0b20tIikuY29uY2F0KHQpXT0hMCxyKToxPT09dC5sZW5ndGg/KFsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Il0uZm9yRWFjaCgoZnVuY3Rpb24obyl7clsiIi5jb25jYXQobiwiLS0iKS5jb25jYXQoZSkuY29uY2F0KG8sIi0iKS5jb25jYXQodFswXSldPSEwfSkpLHIpOjI9PT10Lmxlbmd0aD8oWyJ0b3AiLCJib3R0b20iXS5mb3JFYWNoKChmdW5jdGlvbihvKXtyWyIiLmNvbmNhdChuLCItLSIpLmNvbmNhdChlKS5jb25jYXQobywiLSIpLmNvbmNhdCh0WzBdKV09ITB9KSksWyJyaWdodCIsImxlZnQiXS5mb3JFYWNoKChmdW5jdGlvbihvKXtyWyIiLmNvbmNhdChuLCItLSIpLmNvbmNhdChlKS5jb25jYXQobywiLSIpLmNvbmNhdCh0WzFdKV09ITB9KSkscik6Mz09PXQubGVuZ3RoPyhyWyIiLmNvbmNhdChuLCItLSIpLmNvbmNhdChlLCJ0b3AtIikuY29uY2F0KHRbMF0pXT0hMCxbInJpZ2h0IiwibGVmdCJdLmZvckVhY2goKGZ1bmN0aW9uKG8pe3JbIiIuY29uY2F0KG4sIi0tIikuY29uY2F0KGUpLmNvbmNhdChvLCItIikuY29uY2F0KHRbMV0pXT0hMH0pKSxyWyJnZm9ybS1zcGFjaW5nLS0iLmNvbmNhdChlLCJib3R0b20tIikuY29uY2F0KHRbMl0pXT0hMCxyKTo0PT09dC5sZW5ndGg/KHJbIiIuY29uY2F0KG4sIi0tIikuY29uY2F0KGUsInRvcC0iKS5jb25jYXQodFswXSldPSEwLHJbIiIuY29uY2F0KG4sIi0tIikuY29uY2F0KGUsInJpZ2h0LSIpLmNvbmNhdCh0WzFdKV09ITAsclsiIi5jb25jYXQobiwiLS0iKS5jb25jYXQoZSwiYm90dG9tLSIpLmNvbmNhdCh0WzJdKV09ITAsclsiIi5jb25jYXQobiwiLS0iKS5jb25jYXQoZSwibGVmdC0iKS5jb25jYXQodFszXSldPSEwLHIpOnJ9O2Z1bmN0aW9uIGtlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJnZm9ybS1zcGFjaW5nIixuPXt9O3JldHVybiF0fHwic3RyaW5nIiE9dHlwZW9mIHQmJiJudW1iZXIiIT10eXBlb2YgdCYmIUFycmF5LmlzQXJyYXkodCkmJigib2JqZWN0IiE9PUQodCl8fEFycmF5LmlzQXJyYXkodCkpfHxBcnJheS5pc0FycmF5KHQpJiYhdC5sZW5ndGg/bjoobltlXT0hMCwic3RyaW5nIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8QXJyYXkuaXNBcnJheSh0KT9UZShUZSh7fSxuKSxBZSh0LCIiLGUpKTpbIiIsIm1kIiwibGciXS5yZWR1Y2UoKGZ1bmN0aW9uKG4scil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpP1RlKFRlKHt9LG4pLEFlKHRbcl0scj8iIi5jb25jYXQociwiLSIpOiIiLGUpKTpufSksbikpfXZhciBDZT1mdW5jdGlvbigpe3ZhciB0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3csZT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudDtyZXR1cm57ZG9jRWxlbTplJiZlLmRvY3VtZW50RWxlbWVudCx3aW46dH19LFBlPWZ1bmN0aW9uKCl7dmFyIHQ9Q2UoKSxlPXQuZG9jRWxlbSxuPXQud2luLHI9ZS5jbGllbnRXaWR0aCxvPW4uaW5uZXJXaWR0aDtyZXR1cm4gcjxvP286cn0sTGU9ZnVuY3Rpb24oKXt2YXIgdD1DZSgpLGU9dC5kb2NFbGVtLG49dC53aW4scj1lLmNsaWVudEhlaWdodCxvPW4uaW5uZXJIZWlnaHQ7cmV0dXJuIHI8bz9vOnJ9LF9lPWZ1bmN0aW9uKHQpe3ZhciBlPXQub2Zmc2V0SGVpZ2h0LG49TGUoKSxyPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLmJvdHRvbSxpPXIudG9wO3JldHVybiBNYXRoLm1heCgwLGk+MD9NYXRoLm1pbihlLG4taSk6TWF0aC5taW4obyxuKSl9O2Z1bmN0aW9uIEllKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiwgZ290IGAiLmNvbmNhdChEKHQpLCJgIikpO3ZhciBuLHIsbyxpPWUud2FpdCxjPXZvaWQgMD09PWk/MDppLGE9ZS5tYXhXYWl0LHU9dm9pZCAwPT09YT9OdW1iZXIuSW5maW5pdHk6YSxsPWUuYmVmb3JlLHM9dm9pZCAwIT09bCYmbCxmPWUuYWZ0ZXIsZD12b2lkIDA9PT1mfHxmO2lmKCFzJiYhZCl0aHJvdyBuZXcgRXJyb3IoIkJvdGggYGJlZm9yZWAgYW5kIGBhZnRlcmAgYXJlIGZhbHNlLCBmdW5jdGlvbiB3b3VsZG4ndCBiZSBjYWxsZWQuIik7dmFyIHA9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShlKSxhPTA7YTxlO2ErKylpW2FdPWFyZ3VtZW50c1thXTt2YXIgbD10aGlzLGY9cyYmIW47cmV0dXJuIGNsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7bj12b2lkIDAsciYmKGNsZWFyVGltZW91dChyKSxyPXZvaWQgMCksZCYmKG89dC5hcHBseShsLGkpKX0pLGMpLHU+MCYmdSE9PU51bWJlci5JbmZpbml0eSYmIXImJihyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cj12b2lkIDAsbiYmKGNsZWFyVGltZW91dChuKSxuPXZvaWQgMCksZCYmKG89dC5hcHBseShsLGkpKX0pLHUpKSxmJiYobz10LmFwcGx5KGwsaSkpLG99O3JldHVybiBtdChwLHQpLHAuY2FuY2VsPWZ1bmN0aW9uKCl7biYmKGNsZWFyVGltZW91dChuKSxuPXZvaWQgMCksciYmKGNsZWFyVGltZW91dChyKSxyPXZvaWQgMCl9LHB9dmFyIE1lPTk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50JiYhRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcyl7dmFyIERlPUVsZW1lbnQucHJvdG90eXBlO0RlLm1hdGNoZXM9RGUubWF0Y2hlc1NlbGVjdG9yfHxEZS5tb3pNYXRjaGVzU2VsZWN0b3J8fERlLm1zTWF0Y2hlc1NlbGVjdG9yfHxEZS5vTWF0Y2hlc1NlbGVjdG9yfHxEZS53ZWJraXRNYXRjaGVzU2VsZWN0b3J9ZnVuY3Rpb24gRmUodCxlLG4scixvKXt2YXIgaT1OZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihuLGksbykse2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIobixpLG8pfX19ZnVuY3Rpb24gTmUodCxlLG4scil7cmV0dXJuIGZ1bmN0aW9uKG4pe24uZGVsZWdhdGVUYXJnZXQ9ZnVuY3Rpb24odCxlKXtmb3IoO3QmJnQubm9kZVR5cGUhPT1NZTspe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm1hdGNoZXMmJnQubWF0Y2hlcyhlKSlyZXR1cm4gdDt0PXQucGFyZW50Tm9kZX19KG4udGFyZ2V0LGUpLG4uZGVsZWdhdGVUYXJnZXQmJnIuY2FsbCh0LG4pfX12YXIgSGU9ZnVuY3Rpb24odCxlLG4scil7dmFyIG89YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0mJmFyZ3VtZW50c1s0XTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5hZGRFdmVudExpc3RlbmVyP0ZlLmFwcGx5KG51bGwsYXJndW1lbnRzKToiZnVuY3Rpb24iPT10eXBlb2Ygbj9GZS5iaW5kKG51bGwsZG9jdW1lbnQpLmFwcGx5KG51bGwsYXJndW1lbnRzKTooInN0cmluZyI9PXR5cGVvZiB0JiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpKSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwodCwoZnVuY3Rpb24odCl7cmV0dXJuIEZlKHQsZSxuLHIsbyl9KSkpfTtmdW5jdGlvbiBxZSh0KXsibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP3QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHQpOmRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLChmdW5jdGlvbigpeyJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGUmJnQoKX0pKX1mdW5jdGlvbiB6ZSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpmdW5jdGlvbigpe30sZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwOyEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsSWUodCx7d2FpdDplfSkpOndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLEllKHQse3dhaXQ6ZX0pKX1mdW5jdGlvbiBKZSgpe3RyeXt3aW5kb3cuTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigpfWNhdGNoKHQpe3JldHVybiExfXJldHVybiEwfXZhciBSZT1mdW5jdGlvbih0LGUpe3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LGUpfSxVZT1mdW5jdGlvbih0KXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpfSxXZT1mdW5jdGlvbih0KXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHQpfSxCZT1mdW5jdGlvbigpe3dpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKX0sWGU9ZnVuY3Rpb24odCxlKXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0LGUpfSwkZT1mdW5jdGlvbih0KXtyZXR1cm4gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odCl9LFllPWZ1bmN0aW9uKHQpe3JldHVybiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh0KX0sS2U9ZnVuY3Rpb24oKXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKX0sR2U9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLGU9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iiksbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dLnNwbGl0KCI9Iik7aWYodD09PXJbMF0udHJpbSgpKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoclsxXSl9cmV0dXJuIG51bGx9LFZlPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxvPSIiLGk9ZTtpZihuJiYhaXNOYU4oTnVtYmVyKG4pKSl7dmFyIGM9bmV3IERhdGU7Yy5zZXRUaW1lKGMuZ2V0VGltZSgpKzI0Kk51bWJlcihuKSo2MCo2MCoxZTMpLG89IiBleHBpcmVzPSIrYy50b1VUQ1N0cmluZygpfWlmKHIpe3ZhciBhPUdlKHQpO2k9IiIhPT1hJiZudWxsIT09YT9hKyIsIitlOmV9ZG9jdW1lbnQuY29va2llPWVuY29kZVVSSUNvbXBvbmVudCh0KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpKyI7IitvfSxRZT1mdW5jdGlvbih0KXtWZSh0LCIiLC0xKX07d2luZG93Lmdmb3JtPXdpbmRvdy5nZm9ybXx8e30sd2luZG93Lmdmb3JtLnV0aWxzPXdpbmRvdy5nZm9ybS51dGlsc3x8e307dmFyIFplO1plPXdpbmRvdy5nZm9ybS51dGlscyxPYmplY3QuZW50cmllcyhsKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1mKHQsMiksbj1lWzBdLHI9ZVsxXTtaZVtuXT1yfSkpfSgpfSgpOw=="}},"time_used":461,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":461,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-1.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.041Z","timestamp":1785145405041,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-1.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 4685\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-124d\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":4685,"size_decoded":4938,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"c05e944a148c74add982509564f54fc5","sha1":"cc3c6351c8f4aad0db070b7fbe8f13dbbc1fb2a4","sha256":"e8cd055ea2223375169c92a1aee189afed5991cfb8f9212e0c0658a3169e6601","sha512":"cca52c84e4ea33a50f647406030820903e2f8bd66f0560ec4617208b20b295204378a211c75f422f76765683bf3ecb0a743e5a15b98b00300b79ad83f9235632","ssdeep":"96:ZpCDxEDcuasC46yI5FR4Xext7ZncLZ6KN6sPoossSfxZ:ZQD+VMyogXG7ZTKcO2j","tlshash":"c9a183d9f3a4b2a99805b7d4d393c870bb633cfd7662d18887c42d46a25109c18dd8d3","first_seen":"2026-05-20T00:20:36.600331Z","last_seen":"2026-07-27T14:04:41.105386Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgdmlld0JveD0iMCAwIDQxIDQxIiBmaWxsPSJub25lIj48ZyBpZD0iTGF5ZXJfMSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjg4NjkpIj48cGF0aCBpZD0iVmVjdG9yIiBkPSJNMjguNDc0OCAzNy43NzI3TDI1LjA3OTYgMzUuNTk3N0gyMC4zMzE2TDEzLjYwNzQgMzguMTk3MUwxNi41MTE5IDM5LjU3NjRIMjEuNjg0NEwyOC40NzQ4IDM3Ljc3MjdaIiBmaWxsPSIjNjhDREVEIj48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNMzQuMzkwMiAyMy43MjY2TDM4LjMxNTkgMjYuNTc4TDM3LjUwNjkgMjguOTUyTDM1LjkwMjEgMzEuNTY0OEwzNC4xOTEyIDMxLjM2NThMMzMuMTgzMiAyOS44MTQxTDMyLjQxNCAyOC45NTJMMzAuNjg5OSAyOS4zODk3TDMwLjI5MiAyNi43NTA0TDMxLjcyNDQgMjUuMzA0OEwzNC4zOTAyIDIzLjcyNjZaIiBmaWxsPSIjNjhDREVEIj48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl8zIiBkPSJNMS4wMDc4MSAxNy4zOTk1TDIuMjk0MjkgMTMuMDM2MUw0LjYwMTk5IDguMjYxNTdMOS4wNTgyNCA0LjI0Mjk5TDEzLjMyODggMS45MjIwMkwxOC42MzM5IDAuOTE0MDYySDIyLjIyOEwyNi44NTY3IDIuNDI2TDMxLjI1OTkgNC4yNDI5OUwzMy4xODMgNS4zMzA1MkwzMC42MjMzIDEwLjE1ODFMMzIuMTc1IDEyLjY2NDhMMjguOTEyNCAxNC43MDcyTDI5Ljc2MTIgMTcuMzk5NUwyOS41MDkyIDE4Ljc3ODhIMjkuMDg0OEgyOC4wNTAzTDI2Ljg1NjcgMTYuMjg1NUwyNS4wNTMgMTQuNzA3MkwyMy4wOTAxIDE4Ljc3ODhMMjAuMzMxNSAxNC4yMTY1TDE1Ljk4MTMgMTMuODA1NEwxNS4yMTIxIDE2LjU2NEwxNS42MjMyIDE3Ljg1MDVMMTMuMTU2NCAyMC43MTUyTDEyLjgyNDggMjQuNzYwM0wxMC41MDM5IDI5LjgxMzRMNS45NjgwNCAxOC43Nzg4TDEuMDA3ODEgMTguMzQxMlYxNy4zOTk1WiIgZmlsbD0iIzY4Q0RFRCI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfNCIgZD0iTTM0LjY5NTEgNS45NTQ5M0MzMC44NDg5IDIuMTIyMDIgMjUuNzU2MSAwIDIwLjMzMTYgMEMxNC44OTQgMCA5Ljc4NzgzIDIuMTA4NzYgNS45NTQ5MyA1Ljk1NDkzQzIuMTA4NzYgOS43ODc4MyAwIDE0Ljg5NCAwIDIwLjMzMTZDMCAyNS43NjkzIDIuMTA4NzYgMzAuODYyMiA1Ljk1NDkzIDM0LjcwODRDOS43ODc4MyAzOC41NDEzIDE0Ljg5NCA0MC42NjMzIDIwLjMzMTYgNDAuNjYzM0MyNS43NjkzIDQwLjY2MzMgMzAuODYyMiAzOC41NTQ1IDM0LjcwODQgMzQuNzA4NEMzOC41NDEzIDMwLjg3NTQgNDAuNjYzMyAyNS43NjkzIDQwLjY2MzMgMjAuMzMxNkM0MC42NjMzIDE0LjkwNzIgMzguNTQxMyA5LjgwMTEgMzQuNzA4NCA1Ljk2ODE5TDM0LjY5NTEgNS45NTQ5M1pNMzMuMDc3IDI4LjE2OTlDMzMuMDEwNyAyOC4xNjk5IDMyLjkzMTIgMjguMTY5OSAzMi44NjQ4IDI4LjE5NjRMMzEuMjYwMSAyOC41OTQzVjI2LjgxNzFMMzQuMzYzNSAyNC43NDgxTDM3LjUyIDI3LjM3NDFDMzYuOTc2MyAyOC43MDA0IDM2LjI3MzMgMjkuOTYwMyAzNS40Mzc4IDMxLjExNDJMMzQuNDgyOSAzMC40Nzc2TDMzLjkxMjYgMjguNzUzNEMzMy43OTMyIDI4LjM5NTMgMzMuNDYxNyAyOC4xNTY2IDMzLjA5MDMgMjguMTU2NkwzMy4wNzcgMjguMTY5OVpNMzMuOTM5MSAyMi45NDQ0TDI5LjkyMDUgMjUuNjIzNEMyOS42ODE4IDI1Ljc4MjYgMjkuNTM1OSAyNi4wNjExIDI5LjUzNTkgMjYuMzUyOVYyOS43MDgzQzI5LjUzNTkgMjkuOTczNiAyOS42NTUzIDMwLjIyNTYgMjkuODY3NSAzMC4zOThDMzAuMDI2NiAzMC41MTc0IDMwLjIxMjMgMzAuNTgzNyAzMC4zOTggMzAuNTgzN0MzMC40NjQzIDMwLjU4MzcgMzAuNTQzOSAzMC41ODM3IDMwLjYxMDIgMzAuNTU3MUwzMi41MDY4IDMwLjA3OTdMMzIuOTE3OSAzMS4zMjY0QzMyLjk4NDIgMzEuNTEyMSAzMy4xMDM2IDMxLjY3MTIgMzMuMjYyNyAzMS43NzczTDM0LjM1MDMgMzIuNTA2OEMzMi43NTg3IDM0LjMzNyAzMC44NjIyIDM1LjgyMjQgMjguNjg3MSAzNi45MUwyNi4wMzQ2IDM0LjkyMDZMMjUuOTgxNSAzNC44ODA4SDE5LjQ1NjNMMTMuMDkwMiAzNy40NDA1QzkuNzM0NzggMzYuMDIxNCA2Ljg4MzMxIDMzLjY2MDYgNC44NjczOSAzMC42MjM1QzIuODI0OTQgMjcuNTU5OCAxLjc1MDY3IDI0LjAwNTQgMS43NTA2NyAyMC4zMTg0QzEuNzUwNjcgMTkuOTg2OCAxLjc1MDY3IDE5LjY0MiAxLjc5MDQ2IDE5LjIzMDhMNC45NzM0OSAxOS43NjEzTDkuNDgyNzkgMzAuMDY2NEM5LjYxNTQyIDMwLjM3MTUgOS45MjA0NiAzMC41ODM3IDEwLjI1MiAzMC41ODM3QzEwLjYxMDEgMzAuNTgzNyAxMC45MDE5IDMwLjM5OCAxMS4wNDc4IDMwLjEwNjJMMTMuNzI2OCAyNC43MzQ4QzEzLjc5MzIgMjQuNjE1NSAxMy44MTk3IDI0LjQ4MjkgMTMuODE5NyAyNC4zNTAyVjIxLjI5OThMMTYuMzEzMSAxOC4xODMxQzE2LjUyNTMgMTcuOTE3OCAxNi41NjUgMTcuNTQ2NSAxNi40MDU5IDE3LjI1NDdMMTUuOTI4NCAxNi4yOTk4TDE2Ljc5MDUgMTQuNTc1N0wxOS43NzQ2IDE1LjA2NjRMMjIuMjU0NyAxOS40MDMzQzIyLjQxMzkgMTkuNjY4NSAyMi42OTI0IDE5Ljg0MDkgMjMuMDEwNyAxOS44NDA5QzIzLjM1NTUgMTkuODQwOSAyMy42NDczIDE5LjY0MiAyMy43OTMyIDE5LjM2MzVMMjUuMjY1MyAxNi40MTkyTDI2LjI3MzMgMTcuNDI3MUwyNi44ODM0IDE5LjI0NDFDMjYuOTYzIDE5LjQ2OTYgMjcuMTA4OSAxOS42NDIgMjcuMzIxMSAxOS43NDgxTDI4LjY2MDYgMjAuNDI0NUMyOC43Nzk5IDIwLjQ5MDggMjguOTEyNiAyMC41MTczIDI5LjA0NTIgMjAuNTE3M0MyOS4xNzc4IDIwLjUxNzMgMjkuMjk3MiAyMC40OTA4IDI5LjQwMzMgMjAuNDM3N0MyOS42NDIgMjAuMzMxNiAyOS44MTQ0IDIwLjExOTQgMjkuODgwNyAxOS44NTQyTDMwLjU1NzEgMTcuMTc1MUMzMC41OTY5IDE3LjAxNiAzMC41OTY5IDE2Ljg0MzYgMzAuNTQzOSAxNi42ODQ0TDMwLjA5MyAxNS4zMzE2TDMyLjg1MTYgMTMuNjczOEMzMy4wNjM4IDEzLjU0MTIgMzMuMjA5NyAxMy4zNDIyIDMzLjI2MjcgMTMuMDkwMkMzMy4zMTU4IDEyLjg1MTUgMzMuMjYyNyAxMi41OTk1IDMzLjEwMzYgMTIuNDAwNkwzMS40NTkgMTAuMjEyMkwzMy40NzQ5IDcuMTg4MzZDMzUuODQ4OSA5LjU2MjM3IDM3LjUzMzMgMTIuNTMzMiAzOC4zNTU2IDE1Ljc5NThDMzkuMTY0NiAxOS4wMzE5IDM5LjA5ODMgMjIuNDI3MSAzOC4xNDM0IDI1LjYzNjdMMzQuOTg2OSAyMi45OTc0QzM0LjgyNzcgMjIuODY0OCAzNC42Mjg4IDIyLjc5ODUgMzQuNDI5OCAyMi43OTg1QzM0LjI1NzQgMjIuNzk4NSAzNC4wODUgMjIuODUxNSAzMy45MzkxIDIyLjk0NDRaTTguMTU2NTMgNi4yODY1QzExLjUzODUgMy4zNTU0NSAxNS44NDg5IDEuNzM3NDEgMjAuMzMxNiAxLjczNzQxQzI0LjY2ODUgMS43Mzc0MSAyOC44NTk1IDMuMjYyNjEgMzIuMTc1MiA2LjAyMTI0TDI5LjY2ODUgOS43ODc4M0MyOS40Njk2IDEwLjA5MjkgMjkuNDY5NiAxMC41MDQgMjkuNjk1MSAxMC43OTU4TDMxLjEyNzQgMTIuNzA1NkwyOC41OTQzIDE0LjIxNzZDMjguMjM2MiAxNC40Mjk4IDI4LjA5MDMgMTQuODU0MiAyOC4yMjI5IDE1LjIzODhMMjguODE5NyAxNy4wMTZMMjguNDc0OSAxOC4zOTUzTDI4LjQyMTkgMTguMzY4OEwyNy44NjQ4IDE2LjY5NzdDMjcuODI1IDE2LjU2NSAyNy43NDU1IDE2LjQ1ODkgMjcuNjUyNiAxNi4zNTI4TDI1LjYzNjcgMTQuMzM2OUMyNS40Nzc1IDE0LjE3NzggMjUuMjUyMSAxNC4wODQ5IDI1LjAyNjYgMTQuMDg0OUMyNC45ODY4IDE0LjA4NDkgMjQuOTMzOCAxNC4wODQ5IDI0Ljg5NCAxNC4wODQ5QzI0LjYxNTUgMTQuMTI0NyAyNC4zNzY3IDE0LjMxMDQgMjQuMjU3NCAxNC41NDkxTDIyLjk3MDkgMTcuMTIyMUwyMS4wODc2IDEzLjgzMjlDMjAuOTU1IDEzLjYwNzUgMjAuNzQyOCAxMy40NDgzIDIwLjQ3NzUgMTMuNDA4NUwxNi40NDU3IDEyLjczMjFDMTYuNDQ1NyAxMi43MzIxIDE2LjM1MjggMTIuNzMyMSAxNi4yOTk4IDEyLjczMjFDMTUuOTY4MiAxMi43MzIxIDE1LjY3NjUgMTIuOTE3OCAxNS41MTczIDEzLjIwOTZMMTQuMTc3OCAxNS44ODg3QzE0LjA1ODQgMTYuMTI3NCAxNC4wNTg0IDE2LjQxOTIgMTQuMTc3OCAxNi42NzExTDE0LjYwMjIgMTcuNTJMMTIuMjY3OSAyMC40Mzc3QzEyLjE0ODYgMjAuNTk2OSAxMi4wNjkgMjAuNzgyNiAxMi4wNjkgMjAuOTgxNVYyNC4xMjQ4TDEwLjMwNTEgMjcuNjUyNkw2LjM1MjgxIDE4LjYyMDhDNi4yMzM0NCAxOC4zNTU1IDUuOTk0NzIgMTguMTU2NiA1LjcwMjk0IDE4LjExNjhMMS45NDk2MSAxNy40OTM0QzIuNjI2IDEzLjE0MzMgNC44MTQzNCA5LjE2NDQ5IDguMTQzMjcgNi4yODY1SDguMTU2NTNaTTE5LjgyNzcgMzYuNjMxNEgyNS40MTEyTDI2Ljg3MDEgMzcuNzE5QzI0Ljc3NDYgMzguNTE0NyAyMi41NzMgMzguOTEyNiAyMC4zMzE2IDM4LjkxMjZDMTguNzQwMSAzOC45MTI2IDE3LjE2MTkgMzguNzEzNyAxNS42MzY3IDM4LjMwMjVMMTkuODI3NyAzNi42MTgyVjM2LjYzMTRaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfMjM4N18yODg2OSI+PHJlY3Qgd2lkdGg9IjQwLjY1IiBoZWlnaHQ9IjQwLjY1IiBmaWxsPSJ3aGl0ZSI+PC9yZWN0PjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPiA="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-5.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.103Z","timestamp":1785145406103,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-5.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 4617\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-1209\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":4617,"size_decoded":4870,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"a4bb00b3f80c87aaaa6940564f06f619","sha1":"dadb44be1e4e2cc6fcdd7b68dbaf2b4517b81d3b","sha256":"74247dca58c539d8155dceee5e798c6a05e5576134675b96ab2fff648320aac1","sha512":"a5dc3d33df0c6042732fb9e832c271904d522022e05e0668b5a725b8aa1a4ed07b7892b34248ff13b7bf7e9cd38f2316ba2a91b87cee7837e6be9a4c865351de","ssdeep":"96:ICpCDg6UEDcuasC46yI5FR4Xext7ZncLZ6Ks6sPoosYSfxp:3QDHVMyogXG7ZTKvO4f","tlshash":"099164e9f395b2e59804b7d5c367c430ba633cf97aa6e1c887c42d46925249c18ddcd3","first_seen":"2026-07-01T02:48:47.793444Z","last_seen":"2026-07-27T14:04:41.105912Z","times_seen":6,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgdmlld0JveD0iMCAwIDQxIDQxIiBmaWxsPSJub25lIj48ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjM4N18yOTI4OCkiPjxwYXRoIGQ9Ik0yOC40NzQ4IDM3Ljc3MjdMMjUuMDc5NiAzNS41OTc3SDIwLjMzMTZMMTMuNjA3NCAzOC4xOTcxTDE2LjUxMTkgMzkuNTc2NEgyMS42ODQ0TDI4LjQ3NDggMzcuNzcyN1oiIGZpbGw9IiNGRDlGNkEiPjwvcGF0aD48cGF0aCBkPSJNMzQuMzkwMiAyMy43MjY2TDM4LjMxNTkgMjYuNTc4TDM3LjUwNjkgMjguOTUyTDM1LjkwMjEgMzEuNTY0OEwzNC4xOTEyIDMxLjM2NThMMzMuMTgzMiAyOS44MTQxTDMyLjQxNCAyOC45NTJMMzAuNjg5OSAyOS4zODk3TDMwLjI5MiAyNi43NTA0TDMxLjcyNDQgMjUuMzA0OEwzNC4zOTAyIDIzLjcyNjZaIiBmaWxsPSIjRkQ5RjZBIj48L3BhdGg+PHBhdGggZD0iTTEuMDA3ODEgMTcuMzk5NUwyLjI5NDI5IDEzLjAzNjFMNC42MDE5OSA4LjI2MTU3TDkuMDU4MjQgNC4yNDI5OUwxMy4zMjg4IDEuOTIyMDJMMTguNjMzOSAwLjkxNDA2MkgyMi4yMjhMMjYuODU2NyAyLjQyNkwzMS4yNTk5IDQuMjQyOTlMMzMuMTgzIDUuMzMwNTJMMzAuNjIzMyAxMC4xNTgxTDMyLjE3NSAxMi42NjQ4TDI4LjkxMjQgMTQuNzA3MkwyOS43NjEyIDE3LjM5OTVMMjkuNTA5MiAxOC43Nzg4SDI5LjA4NDhIMjguMDUwM0wyNi44NTY3IDE2LjI4NTVMMjUuMDUzIDE0LjcwNzJMMjMuMDkwMSAxOC43Nzg4TDIwLjMzMTUgMTQuMjE2NUwxNS45ODEzIDEzLjgwNTRMMTUuMjEyMSAxNi41NjRMMTUuNjIzMiAxNy44NTA1TDEzLjE1NjQgMjAuNzE1MkwxMi44MjQ4IDI0Ljc2MDNMMTAuNTAzOSAyOS44MTM0TDUuOTY4MDQgMTguNzc4OEwxLjAwNzgxIDE4LjM0MTJWMTcuMzk5NVoiIGZpbGw9IiNGRDlGNkEiPjwvcGF0aD48cGF0aCBkPSJNMzQuNjk1MSA1Ljk1NDkzQzMwLjg0ODkgMi4xMjIwMiAyNS43NTYxIDAgMjAuMzMxNiAwQzE0Ljg5NCAwIDkuNzg3ODMgMi4xMDg3NiA1Ljk1NDkzIDUuOTU0OTNDMi4xMDg3NiA5Ljc4NzgzIDAgMTQuODk0IDAgMjAuMzMxNkMwIDI1Ljc2OTMgMi4xMDg3NiAzMC44NjIyIDUuOTU0OTMgMzQuNzA4NEM5Ljc4NzgzIDM4LjU0MTMgMTQuODk0IDQwLjY2MzMgMjAuMzMxNiA0MC42NjMzQzI1Ljc2OTMgNDAuNjYzMyAzMC44NjIyIDM4LjU1NDUgMzQuNzA4NCAzNC43MDg0QzM4LjU0MTMgMzAuODc1NCA0MC42NjMzIDI1Ljc2OTMgNDAuNjYzMyAyMC4zMzE2QzQwLjY2MzMgMTQuOTA3MiAzOC41NDEzIDkuODAxMSAzNC43MDg0IDUuOTY4MTlMMzQuNjk1MSA1Ljk1NDkzWk0zMy4wNzcgMjguMTY5OUMzMy4wMTA3IDI4LjE2OTkgMzIuOTMxMiAyOC4xNjk5IDMyLjg2NDggMjguMTk2NEwzMS4yNjAxIDI4LjU5NDNWMjYuODE3MUwzNC4zNjM1IDI0Ljc0ODFMMzcuNTIgMjcuMzc0MUMzNi45NzYzIDI4LjcwMDQgMzYuMjczMyAyOS45NjAzIDM1LjQzNzggMzEuMTE0MkwzNC40ODI5IDMwLjQ3NzZMMzMuOTEyNiAyOC43NTM0QzMzLjc5MzIgMjguMzk1MyAzMy40NjE3IDI4LjE1NjYgMzMuMDkwMyAyOC4xNTY2TDMzLjA3NyAyOC4xNjk5Wk0zMy45MzkxIDIyLjk0NDRMMjkuOTIwNSAyNS42MjM0QzI5LjY4MTggMjUuNzgyNiAyOS41MzU5IDI2LjA2MTEgMjkuNTM1OSAyNi4zNTI5VjI5LjcwODNDMjkuNTM1OSAyOS45NzM2IDI5LjY1NTMgMzAuMjI1NiAyOS44Njc1IDMwLjM5OEMzMC4wMjY2IDMwLjUxNzQgMzAuMjEyMyAzMC41ODM3IDMwLjM5OCAzMC41ODM3QzMwLjQ2NDMgMzAuNTgzNyAzMC41NDM5IDMwLjU4MzcgMzAuNjEwMiAzMC41NTcxTDMyLjUwNjggMzAuMDc5N0wzMi45MTc5IDMxLjMyNjRDMzIuOTg0MiAzMS41MTIxIDMzLjEwMzYgMzEuNjcxMiAzMy4yNjI3IDMxLjc3NzNMMzQuMzUwMyAzMi41MDY4QzMyLjc1ODcgMzQuMzM3IDMwLjg2MjIgMzUuODIyNCAyOC42ODcxIDM2LjkxTDI2LjAzNDYgMzQuOTIwNkwyNS45ODE1IDM0Ljg4MDhIMTkuNDU2M0wxMy4wOTAyIDM3LjQ0MDVDOS43MzQ3OCAzNi4wMjE0IDYuODgzMzEgMzMuNjYwNiA0Ljg2NzM5IDMwLjYyMzVDMi44MjQ5NCAyNy41NTk4IDEuNzUwNjcgMjQuMDA1NCAxLjc1MDY3IDIwLjMxODRDMS43NTA2NyAxOS45ODY4IDEuNzUwNjcgMTkuNjQyIDEuNzkwNDYgMTkuMjMwOEw0Ljk3MzQ5IDE5Ljc2MTNMOS40ODI3OSAzMC4wNjY0QzkuNjE1NDIgMzAuMzcxNSA5LjkyMDQ2IDMwLjU4MzcgMTAuMjUyIDMwLjU4MzdDMTAuNjEwMSAzMC41ODM3IDEwLjkwMTkgMzAuMzk4IDExLjA0NzggMzAuMTA2MkwxMy43MjY4IDI0LjczNDhDMTMuNzkzMiAyNC42MTU1IDEzLjgxOTcgMjQuNDgyOSAxMy44MTk3IDI0LjM1MDJWMjEuMjk5OEwxNi4zMTMxIDE4LjE4MzFDMTYuNTI1MyAxNy45MTc4IDE2LjU2NSAxNy41NDY1IDE2LjQwNTkgMTcuMjU0N0wxNS45Mjg0IDE2LjI5OThMMTYuNzkwNSAxNC41NzU3TDE5Ljc3NDYgMTUuMDY2NEwyMi4yNTQ3IDE5LjQwMzNDMjIuNDEzOSAxOS42Njg1IDIyLjY5MjQgMTkuODQwOSAyMy4wMTA3IDE5Ljg0MDlDMjMuMzU1NSAxOS44NDA5IDIzLjY0NzMgMTkuNjQyIDIzLjc5MzIgMTkuMzYzNUwyNS4yNjUzIDE2LjQxOTJMMjYuMjczMyAxNy40MjcxTDI2Ljg4MzQgMTkuMjQ0MUMyNi45NjMgMTkuNDY5NiAyNy4xMDg5IDE5LjY0MiAyNy4zMjExIDE5Ljc0ODFMMjguNjYwNiAyMC40MjQ1QzI4Ljc3OTkgMjAuNDkwOCAyOC45MTI2IDIwLjUxNzMgMjkuMDQ1MiAyMC41MTczQzI5LjE3NzggMjAuNTE3MyAyOS4yOTcyIDIwLjQ5MDggMjkuNDAzMyAyMC40Mzc3QzI5LjY0MiAyMC4zMzE2IDI5LjgxNDQgMjAuMTE5NCAyOS44ODA3IDE5Ljg1NDJMMzAuNTU3MSAxNy4xNzUxQzMwLjU5NjkgMTcuMDE2IDMwLjU5NjkgMTYuODQzNiAzMC41NDM5IDE2LjY4NDRMMzAuMDkzIDE1LjMzMTZMMzIuODUxNiAxMy42NzM4QzMzLjA2MzggMTMuNTQxMiAzMy4yMDk3IDEzLjM0MjIgMzMuMjYyNyAxMy4wOTAyQzMzLjMxNTggMTIuODUxNSAzMy4yNjI3IDEyLjU5OTUgMzMuMTAzNiAxMi40MDA2TDMxLjQ1OSAxMC4yMTIyTDMzLjQ3NDkgNy4xODgzNkMzNS44NDg5IDkuNTYyMzcgMzcuNTMzMyAxMi41MzMyIDM4LjM1NTYgMTUuNzk1OEMzOS4xNjQ2IDE5LjAzMTkgMzkuMDk4MyAyMi40MjcxIDM4LjE0MzQgMjUuNjM2N0wzNC45ODY5IDIyLjk5NzRDMzQuODI3NyAyMi44NjQ4IDM0LjYyODggMjIuNzk4NSAzNC40Mjk4IDIyLjc5ODVDMzQuMjU3NCAyMi43OTg1IDM0LjA4NSAyMi44NTE1IDMzLjkzOTEgMjIuOTQ0NFpNOC4xNTY1MyA2LjI4NjVDMTEuNTM4NSAzLjM1NTQ1IDE1Ljg0ODkgMS43Mzc0MSAyMC4zMzE2IDEuNzM3NDFDMjQuNjY4NSAxLjczNzQxIDI4Ljg1OTUgMy4yNjI2MSAzMi4xNzUyIDYuMDIxMjRMMjkuNjY4NSA5Ljc4Nzg0QzI5LjQ2OTYgMTAuMDkyOSAyOS40Njk2IDEwLjUwNCAyOS42OTUxIDEwLjc5NThMMzEuMTI3NCAxMi43MDU2TDI4LjU5NDMgMTQuMjE3NkMyOC4yMzYyIDE0LjQyOTggMjguMDkwMyAxNC44NTQyIDI4LjIyMjkgMTUuMjM4OEwyOC44MTk3IDE3LjAxNkwyOC40NzQ5IDE4LjM5NTNMMjguNDIxOSAxOC4zNjg4TDI3Ljg2NDggMTYuNjk3N0MyNy44MjUgMTYuNTY1IDI3Ljc0NTUgMTYuNDU4OSAyNy42NTI2IDE2LjM1MjhMMjUuNjM2NyAxNC4zMzY5QzI1LjQ3NzUgMTQuMTc3OCAyNS4yNTIxIDE0LjA4NDkgMjUuMDI2NiAxNC4wODQ5QzI0Ljk4NjggMTQuMDg0OSAyNC45MzM4IDE0LjA4NDkgMjQuODk0IDE0LjA4NDlDMjQuNjE1NSAxNC4xMjQ3IDI0LjM3NjcgMTQuMzEwNCAyNC4yNTc0IDE0LjU0OTFMMjIuOTcwOSAxNy4xMjIxTDIxLjA4NzYgMTMuODMyOUMyMC45NTUgMTMuNjA3NSAyMC43NDI4IDEzLjQ0ODMgMjAuNDc3NSAxMy40MDg1TDE2LjQ0NTcgMTIuNzMyMUMxNi40NDU3IDEyLjczMjEgMTYuMzUyOCAxMi43MzIxIDE2LjI5OTggMTIuNzMyMUMxNS45NjgyIDEyLjczMjEgMTUuNjc2NSAxMi45MTc4IDE1LjUxNzMgMTMuMjA5NkwxNC4xNzc4IDE1Ljg4ODdDMTQuMDU4NCAxNi4xMjc0IDE0LjA1ODQgMTYuNDE5MiAxNC4xNzc4IDE2LjY3MTFMMTQuNjAyMiAxNy41MkwxMi4yNjggMjAuNDM3N0MxMi4xNDg2IDIwLjU5NjkgMTIuMDY5IDIwLjc4MjYgMTIuMDY5IDIwLjk4MTVWMjQuMTI0OEwxMC4zMDUxIDI3LjY1MjZMNi4zNTI4MSAxOC42MjA4QzYuMjMzNDQgMTguMzU1NSA1Ljk5NDcyIDE4LjE1NjYgNS43MDI5NCAxOC4xMTY4TDEuOTQ5NjEgMTcuNDkzNEMyLjYyNiAxMy4xNDMzIDQuODE0MzQgOS4xNjQ0OSA4LjE0MzI3IDYuMjg2NUg4LjE1NjUzWk0xOS44Mjc3IDM2LjYzMTRIMjUuNDExMkwyNi44NzAxIDM3LjcxOUMyNC43NzQ2IDM4LjUxNDcgMjIuNTczIDM4LjkxMjYgMjAuMzMxNiAzOC45MTI2QzE4Ljc0MDEgMzguOTEyNiAxNy4xNjE5IDM4LjcxMzcgMTUuNjM2NyAzOC4zMDI1TDE5LjgyNzcgMzYuNjE4MlYzNi42MzE0WiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwXzIzODdfMjkyODgiPjxyZWN0IHdpZHRoPSI0MC42NSIgaGVpZ2h0PSI0MC42NSIgZmlsbD0id2hpdGUiPjwvcmVjdD48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4g"}},"time_used":119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/ScrollTrigger.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.857Z","timestamp":1785145403857,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/ScrollTrigger.min.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-9cb3\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":40115,"size_decoded":16229,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (39808)","md5":"cb4218b968091a06cf9447053f145af3","sha1":"c6447e0cc69d7f0aed49b54e6dc9f89cbd3cdfc6","sha256":"be08df326777a8b33cbcd047765e7dc6b8ddf620dcf64a85402ffc8fa006caab","sha512":"b47bd47144188b7e73029bc06b94cd4777cd84142456d92658a7da727a719a2c78fd54c6cf59468c85722cca7b80b800be0f9a2898e754aa245c9352e4667efe","ssdeep":"384:aKWjysakTk1ofF1rcaFf7kJUukoBxPN3uHt15P9Bvnjlk/ugeX/CdVmgjMPdACPr:JW1kGjr1t2nBT3y10Pk/CdIg3moT1i","tlshash":"4c0318ca3209b07366af6276912f0206733a14d9290f4124f625e8ec7c7e57d876bf6d","first_seen":"2023-03-08T14:21:43Z","last_seen":"2026-08-10T14:09:24.72502Z","times_seen":780,"resource_available":true,"data":"LyohCiAqIFNjcm9sbFRyaWdnZXIgMy4xMS4zCiAqIGh0dHBzOi8vZ3JlZW5zb2NrLmNvbQogKiAKICogQGxpY2Vuc2UgQ29weXJpZ2h0IDIwMjIsIEdyZWVuU29jay4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICogU3ViamVjdCB0byB0aGUgdGVybXMgYXQgaHR0cHM6Ly9ncmVlbnNvY2suY29tL3N0YW5kYXJkLWxpY2Vuc2Ugb3IgZm9yIENsdWIgR3JlZW5Tb2NrIG1lbWJlcnMsIHRoZSBhZ3JlZW1lbnQgaXNzdWVkIHdpdGggdGhhdCBtZW1iZXJzaGlwLgogKiBAYXV0aG9yOiBKYWNrIERveWxlLCBqYWNrQGdyZWVuc29jay5jb20KICovCgohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP3QoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sdCk6dCgoZT1lfHxzZWxmKS53aW5kb3c9ZS53aW5kb3d8fHt9KX0odGhpcyxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXMoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4ua2V5LG4pfX1mdW5jdGlvbiBxKCl7cmV0dXJuIHdlfHwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdlPXdpbmRvdy5nc2FwKSYmd2UucmVnaXN0ZXJQbHVnaW4mJndlfWZ1bmN0aW9uIHkoZSx0KXtyZXR1cm5+RmUuaW5kZXhPZihlKSYmRmVbRmUuaW5kZXhPZihlKSsxXVt0XX1mdW5jdGlvbiB6KGUpe3JldHVybiEhfnQuaW5kZXhPZihlKX1mdW5jdGlvbiBBKGUsdCxyLG4sbyl7cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcih0LHIse3Bhc3NpdmU6IW4sY2FwdHVyZTohIW99KX1mdW5jdGlvbiBCKGUsdCxyLG4pe3JldHVybiBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxyLCEhbil9ZnVuY3Rpb24gRSgpe3JldHVybiB6ZSYmemUuaXNQcmVzc2VkfHxMZS5jYWNoZSsrfWZ1bmN0aW9uIEYocixuKXtmdW5jdGlvbiBTYyhlKXtpZihlfHwwPT09ZSl7byYmKEFlLmhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb249Im1hbnVhbCIpO3ZhciB0PXplJiZ6ZS5pc1ByZXNzZWQ7ZT1TYy52PU1hdGgucm91bmQoZSl8fCh6ZSYmemUuaU9TPzE6MCkscihlKSxTYy5jYWNoZUlEPUxlLmNhY2hlLHQmJmkoInNzIixlKX1lbHNlKG58fExlLmNhY2hlIT09U2MuY2FjaGVJRHx8aSgicmVmIikpJiYoU2MuY2FjaGVJRD1MZS5jYWNoZSxTYy52PXIoKSk7cmV0dXJuIFNjLnYrU2Mub2Zmc2V0fXJldHVybiBTYy5vZmZzZXQ9MCxyJiZTY31mdW5jdGlvbiBJKGUpe3JldHVybiB3ZS51dGlscy50b0FycmF5KGUpWzBdfHwoInN0cmluZyI9PXR5cGVvZiBlJiYhMSE9PXdlLmNvbmZpZygpLm51bGxUYXJnZXRXYXJuP2NvbnNvbGUud2FybigiRWxlbWVudCBub3QgZm91bmQ6IixlKTpudWxsKX1mdW5jdGlvbiBKKHQsZSl7dmFyIHI9ZS5zLG49ZS5zYzt6KHQpJiYodD1FZS5zY3JvbGxpbmdFbGVtZW50fHxNZSk7dmFyIG89TGUuaW5kZXhPZih0KSxpPW49PT1OZS5zYz8xOjI7fm98fChvPUxlLnB1c2godCktMSksTGVbbytpXXx8dC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLEUpO3ZhciBhPUxlW28raV0scz1hfHwoTGVbbytpXT1GKHkodCxyKSwhMCl8fCh6KHQpP246RihmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90W3JdPWU6dFtyXX0pKSk7cmV0dXJuIHMudGFyZ2V0PXQsYXx8KHMuc21vb3RoPSJzbW9vdGgiPT09d2UuZ2V0UHJvcGVydHkodCwic2Nyb2xsQmVoYXZpb3IiKSksc31mdW5jdGlvbiBLKGUsdCxvKXtmdW5jdGlvbiBvZChlLHQpe3ZhciByPUhlKCk7dHx8bjxyLXM/KGE9aSxpPWUsbD1zLHM9cik6bz9pKz1lOmk9YSsoZS1hKS8oci1sKSoocy1sKX12YXIgaT1lLGE9ZSxzPUhlKCksbD1zLG49dHx8NTAsYz1NYXRoLm1heCg1MDAsMypuKTtyZXR1cm57dXBkYXRlOm9kLHJlc2V0OmZ1bmN0aW9uIHJlc2V0KCl7YT1pPW8/MDppLGw9cz0wfSxnZXRWZWxvY2l0eTpmdW5jdGlvbiBnZXRWZWxvY2l0eShlKXt2YXIgdD1sLHI9YSxuPUhlKCk7cmV0dXJuIWUmJjAhPT1lfHxlPT09aXx8b2QoZSkscz09PWx8fGM8bi1sPzA6KGkrKG8/cjotcikpLygobz9uOnMpLXQpKjFlM319fWZ1bmN0aW9uIEwoZSx0KXtyZXR1cm4gdCYmIWUuX2dzYXBBbGxvdyYmZS5wcmV2ZW50RGVmYXVsdCgpLGUuY2hhbmdlZFRvdWNoZXM/ZS5jaGFuZ2VkVG91Y2hlc1swXTplfWZ1bmN0aW9uIE0oZSl7dmFyIHQ9TWF0aC5tYXguYXBwbHkoTWF0aCxlKSxyPU1hdGgubWluLmFwcGx5KE1hdGgsZSk7cmV0dXJuIE1hdGguYWJzKHQpPj1NYXRoLmFicyhyKT90OnJ9ZnVuY3Rpb24gTigpeyhJZT13ZS5jb3JlLmdsb2JhbHMoKS5TY3JvbGxUcmlnZ2VyKSYmSWUuY29yZSYmZnVuY3Rpb24gX2ludGVncmF0ZSgpe3ZhciBlPUllLmNvcmUscj1lLmJyaWRnZXx8e30sdD1lLl9zY3JvbGxlcnMsbj1lLl9wcm94aWVzO3QucHVzaC5hcHBseSh0LExlKSxuLnB1c2guYXBwbHkobixGZSksTGU9dCxGZT1uLGk9ZnVuY3Rpb24gX2JyaWRnZShlLHQpe3JldHVybiByW2VdKHQpfX0oKX1mdW5jdGlvbiBPKGUpe3JldHVybih3ZT1lfHxxKCkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5ib2R5JiYoQWU9d2luZG93LE1lPShFZT1kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50LENlPUVlLmJvZHksdD1bQWUsRWUsTWUsQ2VdLHdlLnV0aWxzLmNsYW1wLERlPSJvbnBvaW50ZXJlbnRlciJpbiBDZT8icG9pbnRlciI6Im1vdXNlIixPZT1rLmlzVG91Y2g9QWUubWF0Y2hNZWRpYSYmQWUubWF0Y2hNZWRpYSgiKGhvdmVyOiBub25lKSwgKHBvaW50ZXI6IGNvYXJzZSkiKS5tYXRjaGVzPzE6Im9udG91Y2hzdGFydCJpbiBBZXx8MDxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN8fDA8bmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM/MjowLEJlPWsuZXZlbnRUeXBlcz0oIm9udG91Y2hzdGFydCJpbiBNZT8idG91Y2hzdGFydCx0b3VjaG1vdmUsdG91Y2hjYW5jZWwsdG91Y2hlbmQiOiJvbnBvaW50ZXJkb3duImluIE1lPyJwb2ludGVyZG93bixwb2ludGVybW92ZSxwb2ludGVyY2FuY2VsLHBvaW50ZXJ1cCI6Im1vdXNlZG93bixtb3VzZW1vdmUsbW91c2V1cCxtb3VzZXVwIikuc3BsaXQoIiwiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG89MH0sNTAwKSxOKCksa2U9MSksa2V9dmFyIHdlLGtlLEFlLEVlLE1lLENlLE9lLERlLEllLHQsemUsQmUsbz0xLFJlPVtdLExlPVtdLEZlPVtdLEhlPURhdGUubm93LGk9ZnVuY3Rpb24gX2JyaWRnZShlLHQpe3JldHVybiB0fSxyPSJzY3JvbGxMZWZ0IixuPSJzY3JvbGxUb3AiLEplPXtzOnIscDoibGVmdCIscDI6IkxlZnQiLG9zOiJyaWdodCIsb3MyOiJSaWdodCIsZDoid2lkdGgiLGQyOiJXaWR0aCIsYToieCIsc2M6RihmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9BZS5zY3JvbGxUbyhlLE5lLnNjKCkpOkFlLnBhZ2VYT2Zmc2V0fHxFZVtyXXx8TWVbcl18fENlW3JdfHwwfSl9LE5lPXtzOm4scDoidG9wIixwMjoiVG9wIixvczoiYm90dG9tIixvczI6IkJvdHRvbSIsZDoiaGVpZ2h0IixkMjoiSGVpZ2h0IixhOiJ5IixvcDpKZSxzYzpGKGZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP0FlLnNjcm9sbFRvKEplLnNjKCksZSk6QWUucGFnZVlPZmZzZXR8fEVlW25dfHxNZVtuXXx8Q2Vbbl18fDB9KX07SmUub3A9TmUsTGUuY2FjaGU9MDt2YXIgaz0oT2JzZXJ2ZXIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24gaW5pdChlKXtrZXx8Tyh3ZSl8fGNvbnNvbGUud2FybigiUGxlYXNlIGdzYXAucmVnaXN0ZXJQbHVnaW4oT2JzZXJ2ZXIpIiksSWV8fE4oKTt2YXIgbz1lLnRvbGVyYW5jZSxhPWUuZHJhZ01pbmltdW0sdD1lLnR5cGUsbj1lLnRhcmdldCxyPWUubGluZUhlaWdodCxpPWUuZGVib3VuY2Uscz1lLnByZXZlbnREZWZhdWx0LGw9ZS5vblN0b3AsYz1lLm9uU3RvcERlbGF5LHU9ZS5pZ25vcmUsZj1lLndoZWVsU3BlZWQsZD1lLmV2ZW50LHA9ZS5vbkRyYWdTdGFydCxnPWUub25EcmFnRW5kLGg9ZS5vbkRyYWcsdj1lLm9uUHJlc3MsYj1lLm9uUmVsZWFzZSxtPWUub25SaWdodCx5PWUub25MZWZ0LHg9ZS5vblVwLFM9ZS5vbkRvd24sdz1lLm9uQ2hhbmdlWCxfPWUub25DaGFuZ2VZLFQ9ZS5vbkNoYW5nZSxrPWUub25Ub2dnbGVYLFA9ZS5vblRvZ2dsZVksQz1lLm9uSG92ZXIsRD1lLm9uSG92ZXJFbmQsUj1lLm9uTW92ZSxYPWUuaWdub3JlQ2hlY2ssRj1lLmlzTm9ybWFsaXplcixZPWUub25HZXN0dXJlU3RhcnQsSD1lLm9uR2VzdHVyZUVuZCxWPWUub25XaGVlbCxXPWUub25FbmFibGUsaj1lLm9uRGlzYWJsZSxxPWUub25DbGljayxVPWUuc2Nyb2xsU3BlZWQsRz1lLmNhcHR1cmUsJD1lLmFsbG93Q2xpY2tzLFE9ZS5sb2NrQXhpcyxaPWUub25Mb2NrQXhpcztmdW5jdGlvbiBQZSgpe3JldHVybiB5ZT1IZSgpfWZ1bmN0aW9uIFFlKGUsdCl7cmV0dXJuKHNlLmV2ZW50PWUpJiZ1JiZ+dS5pbmRleE9mKGUudGFyZ2V0KXx8dCYmZ2UmJiJ0b3VjaCIhPT1lLnBvaW50ZXJUeXBlfHxYJiZYKGUsdCl9ZnVuY3Rpb24gU2UoKXt2YXIgZT1zZS5kZWx0YVg9TShiZSksdD1zZS5kZWx0YVk9TShtZSkscj1NYXRoLmFicyhlKT49byxuPU1hdGguYWJzKHQpPj1vO1QmJihyfHxuKSYmVChzZSxlLHQsYmUsbWUpLHImJihtJiYwPHNlLmRlbHRhWCYmbShzZSkseSYmc2UuZGVsdGFYPDAmJnkoc2UpLHcmJncoc2UpLGsmJnNlLmRlbHRhWDwwIT1sZTwwJiZrKHNlKSxsZT1zZS5kZWx0YVgsYmVbMF09YmVbMV09YmVbMl09MCksbiYmKFMmJjA8c2UuZGVsdGFZJiZTKHNlKSx4JiZzZS5kZWx0YVk8MCYmeChzZSksXyYmXyhzZSksUCYmc2UuZGVsdGFZPDAhPWNlPDAmJlAoc2UpLGNlPXNlLmRlbHRhWSxtZVswXT1tZVsxXT1tZVsyXT0wKSwobmV8fHJlKSYmKFImJlIoc2UpLHJlJiYoaChzZSkscmU9ITEpLG5lPSExKSxpZSYmIShpZT0hMSkmJlomJlooc2UpLG9lJiYoVihzZSksb2U9ITEpLGVlPTB9ZnVuY3Rpb24gVGUoZSx0LHIpe2JlW3JdKz1lLG1lW3JdKz10LHNlLl92eC51cGRhdGUoZSksc2UuX3Z5LnVwZGF0ZSh0KSxpP2VlPWVlfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoU2UpOlNlKCl9ZnVuY3Rpb24gVWUoZSx0KXtRJiYhYWUmJihzZS5heGlzPWFlPU1hdGguYWJzKGUpPk1hdGguYWJzKHQpPyJ4IjoieSIsaWU9ITApLCJ5IiE9PWFlJiYoYmVbMl0rPWUsc2UuX3Z4LnVwZGF0ZShlLCEwKSksIngiIT09YWUmJihtZVsyXSs9dCxzZS5fdnkudXBkYXRlKHQsITApKSxpP2VlPWVlfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoU2UpOlNlKCl9ZnVuY3Rpb24gVmUoZSl7aWYoIVFlKGUsMSkpe3ZhciB0PShlPUwoZSxzKSkuY2xpZW50WCxyPWUuY2xpZW50WSxuPXQtc2UueCxvPXItc2UueSxpPXNlLmlzRHJhZ2dpbmc7c2UueD10LHNlLnk9ciwoaXx8TWF0aC5hYnMoc2Uuc3RhcnRYLXQpPj1hfHxNYXRoLmFicyhzZS5zdGFydFktcik+PWEpJiYoaCYmKHJlPSEwKSxpfHwoc2UuaXNEcmFnZ2luZz0hMCksVWUobixvKSxpfHxwJiZwKHNlKSl9fWZ1bmN0aW9uIFhlKHQpe2lmKCFRZSh0LDEpKXtCKEY/bjp2ZSxCZVsxXSxWZSwhMCk7dmFyIGU9c2UuaXNEcmFnZ2luZyYmKDM8TWF0aC5hYnMoc2UueC1zZS5zdGFydFgpfHwzPE1hdGguYWJzKHNlLnktc2Uuc3RhcnRZKSkscj1MKHQpO2V8fChzZS5fdngucmVzZXQoKSxzZS5fdnkucmVzZXQoKSxzJiYkJiZ3ZS5kZWxheWVkQ2FsbCguMDgsZnVuY3Rpb24oKXtpZigzMDA8SGUoKS15ZSYmIXQuZGVmYXVsdFByZXZlbnRlZClpZih0LnRhcmdldC5jbGljayl0LnRhcmdldC5jbGljaygpO2Vsc2UgaWYodmUuY3JlYXRlRXZlbnQpe3ZhciBlPXZlLmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpO2UuaW5pdE1vdXNlRXZlbnQoImNsaWNrIiwhMCwhMCxBZSwxLHIuc2NyZWVuWCxyLnNjcmVlblksci5jbGllbnRYLHIuY2xpZW50WSwhMSwhMSwhMSwhMSwwLG51bGwpLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZSl9fSkpLHNlLmlzRHJhZ2dpbmc9c2UuaXNHZXN0dXJpbmc9c2UuaXNQcmVzc2VkPSExLGwmJiFGJiZ0ZS5yZXN0YXJ0KCEwKSxnJiZlJiZnKHNlKSxiJiZiKHNlLGUpfX1mdW5jdGlvbiBZZShlKXtyZXR1cm4gZS50b3VjaGVzJiYxPGUudG91Y2hlcy5sZW5ndGgmJihzZS5pc0dlc3R1cmluZz0hMCkmJlkoZSxzZS5pc0RyYWdnaW5nKX1mdW5jdGlvbiBaZSgpe3JldHVybihzZS5pc0dlc3R1cmluZz0hMSl8fEgoc2UpfWZ1bmN0aW9uICRlKGUpe2lmKCFRZShlKSl7dmFyIHQ9dWUoKSxyPWZlKCk7VGUoKHQtZGUpKlUsKHItcGUpKlUsMSksZGU9dCxwZT1yLGwmJnRlLnJlc3RhcnQoITApfX1mdW5jdGlvbiBfZShlKXtpZighUWUoZSkpe2U9TChlLHMpLFYmJihvZT0hMCk7dmFyIHQ9KDE9PT1lLmRlbHRhTW9kZT9yOjI9PT1lLmRlbHRhTW9kZT9BZS5pbm5lckhlaWdodDoxKSpmO1RlKGUuZGVsdGFYKnQsZS5kZWx0YVkqdCwwKSxsJiYhRiYmdGUucmVzdGFydCghMCl9fWZ1bmN0aW9uIGFmKGUpe2lmKCFRZShlKSl7dmFyIHQ9ZS5jbGllbnRYLHI9ZS5jbGllbnRZLG49dC1zZS54LG89ci1zZS55O3NlLng9dCxzZS55PXIsbmU9ITAsKG58fG8pJiZVZShuLG8pfX1mdW5jdGlvbiBiZihlKXtzZS5ldmVudD1lLEMoc2UpfWZ1bmN0aW9uIGNmKGUpe3NlLmV2ZW50PWUsRChzZSl9ZnVuY3Rpb24gZGYoZSl7cmV0dXJuIFFlKGUpfHxMKGUscykmJnEoc2UpfXRoaXMudGFyZ2V0PW49SShuKXx8TWUsdGhpcy52YXJzPWUsdT11JiZ3ZS51dGlscy50b0FycmF5KHUpLG89b3x8MWUtOSxhPWF8fDAsZj1mfHwxLFU9VXx8MSx0PXR8fCJ3aGVlbCx0b3VjaCxwb2ludGVyIixpPSExIT09aSxyPXJ8fHBhcnNlRmxvYXQoQWUuZ2V0Q29tcHV0ZWRTdHlsZShDZSkubGluZUhlaWdodCl8fDIyO3ZhciBlZSx0ZSxyZSxuZSxvZSxpZSxhZSxzZT10aGlzLGxlPTAsY2U9MCx1ZT1KKG4sSmUpLGZlPUoobixOZSksZGU9dWUoKSxwZT1mZSgpLGdlPX50LmluZGV4T2YoInRvdWNoIikmJiF+dC5pbmRleE9mKCJwb2ludGVyIikmJiJwb2ludGVyZG93biI9PT1CZVswXSxoZT16KG4pLHZlPW4ub3duZXJEb2N1bWVudHx8RWUsYmU9WzAsMCwwXSxtZT1bMCwwLDBdLHllPTAseGU9c2Uub25QcmVzcz1mdW5jdGlvbihlKXtRZShlLDEpfHwoc2UuYXhpcz1hZT1udWxsLHRlLnBhdXNlKCksc2UuaXNQcmVzc2VkPSEwLGU9TChlKSxsZT1jZT0wLHNlLnN0YXJ0WD1zZS54PWUuY2xpZW50WCxzZS5zdGFydFk9c2UueT1lLmNsaWVudFksc2UuX3Z4LnJlc2V0KCksc2UuX3Z5LnJlc2V0KCksQShGP246dmUsQmVbMV0sVmUscywhMCksc2UuZGVsdGFYPXNlLmRlbHRhWT0wLHYmJnYoc2UpKX07dGU9c2UuX2RjPXdlLmRlbGF5ZWRDYWxsKGN8fC4yNSxmdW5jdGlvbiBvblN0b3BGdW5jKCl7c2UuX3Z4LnJlc2V0KCksc2UuX3Z5LnJlc2V0KCksdGUucGF1c2UoKSxsJiZsKHNlKX0pLnBhdXNlKCksc2UuZGVsdGFYPXNlLmRlbHRhWT0wLHNlLl92eD1LKDAsNTAsITApLHNlLl92eT1LKDAsNTAsITApLHNlLnNjcm9sbFg9dWUsc2Uuc2Nyb2xsWT1mZSxzZS5pc0RyYWdnaW5nPXNlLmlzR2VzdHVyaW5nPXNlLmlzUHJlc3NlZD0hMSxzZS5lbmFibGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHNlLmlzRW5hYmxlZHx8KEEoaGU/dmU6biwic2Nyb2xsIixFKSwwPD10LmluZGV4T2YoInNjcm9sbCIpJiZBKGhlP3ZlOm4sInNjcm9sbCIsJGUscyxHKSwwPD10LmluZGV4T2YoIndoZWVsIikmJkEobiwid2hlZWwiLF9lLHMsRyksKDA8PXQuaW5kZXhPZigidG91Y2giKSYmT2V8fDA8PXQuaW5kZXhPZigicG9pbnRlciIpKSYmKEEobixCZVswXSx4ZSxzLEcpLEEodmUsQmVbMl0sWGUpLEEodmUsQmVbM10sWGUpLCQmJkEobiwiY2xpY2siLFBlLCExLCEwKSxxJiZBKG4sImNsaWNrIixkZiksWSYmQSh2ZSwiZ2VzdHVyZXN0YXJ0IixZZSksSCYmQSh2ZSwiZ2VzdHVyZWVuZCIsWmUpLEMmJkEobixEZSsiZW50ZXIiLGJmKSxEJiZBKG4sRGUrImxlYXZlIixjZiksUiYmQShuLERlKyJtb3ZlIixhZikpLHNlLmlzRW5hYmxlZD0hMCxlJiZlLnR5cGUmJnhlKGUpLFcmJlcoc2UpKSxzZX0sc2UuZGlzYWJsZT1mdW5jdGlvbigpe3NlLmlzRW5hYmxlZCYmKFJlLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXNlJiZ6KGUudGFyZ2V0KX0pLmxlbmd0aHx8QihoZT92ZTpuLCJzY3JvbGwiLEUpLHNlLmlzUHJlc3NlZCYmKHNlLl92eC5yZXNldCgpLHNlLl92eS5yZXNldCgpLEIoRj9uOnZlLEJlWzFdLFZlLCEwKSksQihoZT92ZTpuLCJzY3JvbGwiLCRlLEcpLEIobiwid2hlZWwiLF9lLEcpLEIobixCZVswXSx4ZSxHKSxCKHZlLEJlWzJdLFhlKSxCKHZlLEJlWzNdLFhlKSxCKG4sImNsaWNrIixQZSwhMCksQihuLCJjbGljayIsZGYpLEIodmUsImdlc3R1cmVzdGFydCIsWWUpLEIodmUsImdlc3R1cmVlbmQiLFplKSxCKG4sRGUrImVudGVyIixiZiksQihuLERlKyJsZWF2ZSIsY2YpLEIobixEZSsibW92ZSIsYWYpLHNlLmlzRW5hYmxlZD1zZS5pc1ByZXNzZWQ9c2UuaXNEcmFnZ2luZz0hMSxqJiZqKHNlKSl9LHNlLmtpbGw9ZnVuY3Rpb24oKXtzZS5kaXNhYmxlKCk7dmFyIGU9UmUuaW5kZXhPZihzZSk7MDw9ZSYmUmUuc3BsaWNlKGUsMSksemU9PT1zZSYmKHplPTApfSxSZS5wdXNoKHNlKSxGJiZ6KG4pJiYoemU9c2UpLHNlLmVuYWJsZShkKX0sZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKGUsdCxyKXtyZXR1cm4gdCYmX2RlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsdCksciYmX2RlZmluZVByb3BlcnRpZXMoZSxyKSxlfShPYnNlcnZlcixbe2tleToidmVsb2NpdHlYIixnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIHRoaXMuX3Z4LmdldFZlbG9jaXR5KCl9fSx7a2V5OiJ2ZWxvY2l0eVkiLGdldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gdGhpcy5fdnkuZ2V0VmVsb2NpdHkoKX19XSksT2JzZXJ2ZXIpO2Z1bmN0aW9uIE9ic2VydmVyKGUpe3RoaXMuaW5pdChlKX1rLnZlcnNpb249IjMuMTEuMyIsay5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBrKGUpfSxrLnJlZ2lzdGVyPU8say5nZXRBbGw9ZnVuY3Rpb24oKXtyZXR1cm4gUmUuc2xpY2UoKX0say5nZXRCeUlkPWZ1bmN0aW9uKHQpe3JldHVybiBSZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFycy5pZD09PXR9KVswXX0scSgpJiZ3ZS5yZWdpc3RlclBsdWdpbihrKTtmdW5jdGlvbiB4YSgpe3JldHVybiBvdD0xfWZ1bmN0aW9uIHlhKCl7cmV0dXJuIG90PTB9ZnVuY3Rpb24gemEoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gQWEoZSl7cmV0dXJuIE1hdGgucm91bmQoMWU1KmUpLzFlNXx8MH1mdW5jdGlvbiBCYSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93fWZ1bmN0aW9uIENhKCl7cmV0dXJuIEtlfHxCYSgpJiYoS2U9d2luZG93LmdzYXApJiZLZS5yZWdpc3RlclBsdWdpbiYmS2V9ZnVuY3Rpb24gRGEoZSl7cmV0dXJuISF+cy5pbmRleE9mKGUpfWZ1bmN0aW9uIEVhKGUpe3JldHVybiB5KGUsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIpfHwoRGEoZSk/ZnVuY3Rpb24oKXtyZXR1cm4gWHQud2lkdGg9V2UuaW5uZXJXaWR0aCxYdC5oZWlnaHQ9V2UuaW5uZXJIZWlnaHQsWHR9OmZ1bmN0aW9uKCl7cmV0dXJuIE10KGUpfSl9ZnVuY3Rpb24gSGEoZSx0KXt2YXIgcj10LnMsbj10LmQyLG89dC5kLGk9dC5hO3JldHVybihyPSJzY3JvbGwiK24pJiYoaT15KGUscikpP2koKS1FYShlKSgpW29dOkRhKGUpPyhxZVtyXXx8R2Vbcl0pLShXZVsiaW5uZXIiK25dfHxxZVsiY2xpZW50IituXXx8R2VbImNsaWVudCIrbl0pOmVbcl0tZVsib2Zmc2V0IituXX1mdW5jdGlvbiBJYShlLHQpe2Zvcih2YXIgcj0wO3I8cC5sZW5ndGg7cis9Myl0JiYhfnQuaW5kZXhPZihwW3IrMV0pfHxlKHBbcl0scFtyKzFdLHBbcisyXSl9ZnVuY3Rpb24gSmEoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfWZ1bmN0aW9uIEthKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfWZ1bmN0aW9uIExhKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX1mdW5jdGlvbiBNYShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gTmEoZSx0LHIpe3JldHVybiBlJiZlLnByb2dyZXNzKHQ/MDoxKSYmciYmZS5wYXVzZSgpfWZ1bmN0aW9uIE9hKGUsdCl7aWYoZS5lbmFibGVkKXt2YXIgcj10KGUpO3ImJnIudG90YWxUaW1lJiYoZS5jYWxsYmFja0FuaW1hdGlvbj1yKX19ZnVuY3Rpb24gZGIoZSl7cmV0dXJuIFdlLmdldENvbXB1dGVkU3R5bGUoZSl9ZnVuY3Rpb24gZmIoZSx0KXtmb3IodmFyIHIgaW4gdClyIGluIGV8fChlW3JdPXRbcl0pO3JldHVybiBlfWZ1bmN0aW9uIGhiKGUsdCl7dmFyIHI9dC5kMjtyZXR1cm4gZVsib2Zmc2V0IityXXx8ZVsiY2xpZW50IityXXx8MH1mdW5jdGlvbiBpYihlKXt2YXIgdCxyPVtdLG49ZS5sYWJlbHMsbz1lLmR1cmF0aW9uKCk7Zm9yKHQgaW4gbilyLnB1c2goblt0XS9vKTtyZXR1cm4gcn1mdW5jdGlvbiBrYihvKXt2YXIgaT1LZS51dGlscy5zbmFwKG8pLGE9QXJyYXkuaXNBcnJheShvKSYmby5zbGljZSgwKS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUtdH0pO3JldHVybiBhP2Z1bmN0aW9uKGUsdCxyKXt2YXIgbjtpZih2b2lkIDA9PT1yJiYocj0uMDAxKSwhdClyZXR1cm4gaShlKTtpZigwPHQpe2ZvcihlLT1yLG49MDtuPGEubGVuZ3RoO24rKylpZihhW25dPj1lKXJldHVybiBhW25dO3JldHVybiBhW24tMV19Zm9yKG49YS5sZW5ndGgsZSs9cjtuLS07KWlmKGFbbl08PWUpcmV0dXJuIGFbbl07cmV0dXJuIGFbMF19OmZ1bmN0aW9uKGUsdCxyKXt2b2lkIDA9PT1yJiYocj0uMDAxKTt2YXIgbj1pKGUpO3JldHVybiF0fHxNYXRoLmFicyhuLWUpPHJ8fG4tZTwwPT10PDA/bjppKHQ8MD9lLW86ZStvKX19ZnVuY3Rpb24gbWIodCxyLGUsbil7cmV0dXJuIGUuc3BsaXQoIiwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KHIsZSxuKX0pfWZ1bmN0aW9uIG5iKGUsdCxyLG4sbyl7cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcih0LHIse3Bhc3NpdmU6IW4sY2FwdHVyZTohIW99KX1mdW5jdGlvbiBvYihlLHQscixuKXtyZXR1cm4gZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsciwhIW4pfWZ1bmN0aW9uIHBiKGUsdCxyKXtyZXR1cm4gciYmci53aGVlbEhhbmRsZXImJmUodCwid2hlZWwiLHIpfWZ1bmN0aW9uIHRiKGUsdCl7aWYoSmEoZSkpe3ZhciByPWUuaW5kZXhPZigiPSIpLG49fnI/KGUuY2hhckF0KHItMSkrMSkqcGFyc2VGbG9hdChlLnN1YnN0cihyKzEpKTowO35yJiYoZS5pbmRleE9mKCIlIik+ciYmKG4qPXQvMTAwKSxlPWUuc3Vic3RyKDAsci0xKSksZT1uKyhlIGluIEQ/RFtlXSp0On5lLmluZGV4T2YoIiUiKT9wYXJzZUZsb2F0KGUpKnQvMTAwOnBhcnNlRmxvYXQoZSl8fDApfXJldHVybiBlfWZ1bmN0aW9uIHViKGUsdCxyLG4sbyxpLGEscyl7dmFyIGw9by5zdGFydENvbG9yLGM9by5lbmRDb2xvcix1PW8uZm9udFNpemUsZj1vLmluZGVudCxkPW8uZm9udFdlaWdodCxwPWplLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGc9RGEocil8fCJmaXhlZCI9PT15KHIsInBpblR5cGUiKSxoPS0xIT09ZS5pbmRleE9mKCJzY3JvbGxlciIpLHY9Zz9HZTpyLGI9LTEhPT1lLmluZGV4T2YoInN0YXJ0IiksbT1iP2w6Yyx4PSJib3JkZXItY29sb3I6IittKyI7Zm9udC1zaXplOiIrdSsiO2NvbG9yOiIrbSsiO2ZvbnQtd2VpZ2h0OiIrZCsiO3BvaW50ZXItZXZlbnRzOm5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWYsQXJpYWw7ei1pbmRleDoxMDAwO3BhZGRpbmc6NHB4IDhweDtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7IjtyZXR1cm4geCs9InBvc2l0aW9uOiIrKChofHxzKSYmZz8iZml4ZWQ7IjoiYWJzb2x1dGU7IiksIWgmJiFzJiZnfHwoeCs9KG49PT1OZT9fOlQpKyI6IisoaStwYXJzZUZsb2F0KGYpKSsicHg7IiksYSYmKHgrPSJib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOiIrYS5vZmZzZXRXaWR0aCsicHg7IikscC5faXNTdGFydD1iLHAuc2V0QXR0cmlidXRlKCJjbGFzcyIsImdzYXAtbWFya2VyLSIrZSsodD8iIG1hcmtlci0iK3Q6IiIpKSxwLnN0eWxlLmNzc1RleHQ9eCxwLmlubmVyVGV4dD10fHwwPT09dD9lKyItIit0OmUsdi5jaGlsZHJlblswXT92Lmluc2VydEJlZm9yZShwLHYuY2hpbGRyZW5bMF0pOnYuYXBwZW5kQ2hpbGQocCkscC5fb2Zmc2V0PXBbIm9mZnNldCIrbi5vcC5kMl0sUihwLDAsbixiKSxwfWZ1bmN0aW9uIHpiKCl7cmV0dXJuIDM0PGd0KCktaHQmJihTPVN8fHJlcXVlc3RBbmltYXRpb25GcmFtZShqKSl9ZnVuY3Rpb24gQWIoKXtoJiZoLmlzUHJlc3NlZCYmIShoLnN0YXJ0WD5HZS5jbGllbnRXaWR0aCl8fChMZS5jYWNoZSsrLGg/Uz1TfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaik6aigpLGh0fHxIKCJzY3JvbGxTdGFydCIpLGh0PWd0KCkpfWZ1bmN0aW9uIEJiKCl7bT1XZS5pbm5lcldpZHRoLGI9V2UuaW5uZXJIZWlnaHR9ZnVuY3Rpb24gQ2IoKXtMZS5jYWNoZSsrLG50fHxnfHxqZS5mdWxsc2NyZWVuRWxlbWVudHx8amUud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fHYmJm09PT1XZS5pbm5lcldpZHRoJiYhKE1hdGguYWJzKFdlLmlubmVySGVpZ2h0LWIpPi4yNSpXZS5pbm5lckhlaWdodCl8fGwucmVzdGFydCghMCl9ZnVuY3Rpb24gRmIoKXtyZXR1cm4gb2IoWiwic2Nyb2xsRW5kIixGYil8fHp0KCEwKX1mdW5jdGlvbiBJYihlKXtmb3IodmFyIHQ9MDt0PFYubGVuZ3RoO3QrPTUpKCFlfHxWW3QrNF0mJlZbdCs0XS5xdWVyeT09PWUpJiYoVlt0XS5zdHlsZS5jc3NUZXh0PVZbdCsxXSxWW3RdLmdldEJCb3gmJlZbdF0uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLFZbdCsyXXx8IiIpLFZbdCszXS51bmNhY2hlPTEpfWZ1bmN0aW9uIEpiKGUsdCl7dmFyIHI7Zm9yKGl0PTA7aXQ8T3QubGVuZ3RoO2l0KyspIShyPU90W2l0XSl8fHQmJnIuX2N0eCE9PXR8fChlP3Iua2lsbCgxKTpyLnJldmVydCghMCwhMCkpO3QmJkliKHQpLHR8fEgoInJldmVydCIpfWZ1bmN0aW9uIEtiKGUsdCl7TGUuY2FjaGUrKywhdCYmdXR8fExlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIEthKGUpJiZlLmNhY2hlSUQrKyYmKGUucmVjPTApfSksSmEoZSkmJihXZS5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uPXg9ZSl9ZnVuY3Rpb24gWGIoZSx0LHIsbil7aWYoIWUuX2dzYXAuc3dhcHBlZEluKXtmb3IodmFyIG8saT1VLmxlbmd0aCxhPXQuc3R5bGUscz1lLnN0eWxlO2ktLTspYVtvPVVbaV1dPXJbb107YS5wb3NpdGlvbj0iYWJzb2x1dGUiPT09ci5wb3NpdGlvbj8iYWJzb2x1dGUiOiJyZWxhdGl2ZSIsImlubGluZSI9PT1yLmRpc3BsYXkmJihhLmRpc3BsYXk9ImlubGluZS1ibG9jayIpLHNbVF09c1tfXT0iYXV0byIsYS5mbGV4QmFzaXM9ci5mbGV4QmFzaXN8fCJhdXRvIixhLm92ZXJmbG93PSJ2aXNpYmxlIixhLmJveFNpemluZz0iYm9yZGVyLWJveCIsYVttdF09aGIoZSxKZSkrRXQsYVt5dF09aGIoZSxOZSkrRXQsYVtUdF09c1trdF09cy50b3A9cy5sZWZ0PSIwIixSdChuKSxzW210XT1zLm1heFdpZHRoPXJbbXRdLHNbeXRdPXMubWF4SGVpZ2h0PXJbeXRdLHNbVHRdPXJbVHRdLGUucGFyZW50Tm9kZSE9PXQmJihlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsZSksdC5hcHBlbmRDaGlsZChlKSksZS5fZ3NhcC5zd2FwcGVkSW49ITB9fWZ1bmN0aW9uICRiKGUpe2Zvcih2YXIgdD1HLmxlbmd0aCxyPWUuc3R5bGUsbj1bXSxvPTA7bzx0O28rKyluLnB1c2goR1tvXSxyW0dbb11dKTtyZXR1cm4gbi50PWUsbn1mdW5jdGlvbiBiYyhlLHQscixuLG8saSxhLHMsbCxjLHUsZixkKXtLYShlKSYmKGU9ZShzKSksSmEoZSkmJiJtYXgiPT09ZS5zdWJzdHIoMCwzKSYmKGU9ZisoIj0iPT09ZS5jaGFyQXQoNCk/dGIoIjAiK2Uuc3Vic3RyKDMpLHIpOjApKTt2YXIgcCxnLGgsdj1kP2QudGltZSgpOjA7aWYoZCYmZC5zZWVrKDApLExhKGUpKWEmJlIoYSxyLG4sITApO2Vsc2V7S2EodCkmJih0PXQocykpO3ZhciBiLG0seSx4LFM9KGV8fCIwIikuc3BsaXQoIiAiKTtoPUkodCl8fEdlLChiPU10KGgpfHx7fSkmJihiLmxlZnR8fGIudG9wKXx8Im5vbmUiIT09ZGIoaCkuZGlzcGxheXx8KHg9aC5zdHlsZS5kaXNwbGF5LGguc3R5bGUuZGlzcGxheT0iYmxvY2siLGI9TXQoaCkseD9oLnN0eWxlLmRpc3BsYXk9eDpoLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5IikpLG09dGIoU1swXSxiW24uZF0pLHk9dGIoU1sxXXx8IjAiLHIpLGU9YltuLnBdLWxbbi5wXS1jK20rby15LGEmJlIoYSx5LG4sci15PDIwfHxhLl9pc1N0YXJ0JiYyMDx5KSxyLT1yLXl9aWYoaSl7dmFyIHc9ZStyLF89aS5faXNTdGFydDtwPSJzY3JvbGwiK24uZDIsUihpLHcsbixfJiYyMDx3fHwhXyYmKHU/TWF0aC5tYXgoR2VbcF0scWVbcF0pOmkucGFyZW50Tm9kZVtwXSk8PXcrMSksdSYmKGw9TXQoYSksdSYmKGkuc3R5bGVbbi5vcC5wXT1sW24ub3AucF0tbi5vcC5tLWkuX29mZnNldCtFdCkpfXJldHVybiBkJiZoJiYocD1NdChoKSxkLnNlZWsoZiksZz1NdChoKSxkLl9jYVNjcm9sbERpc3Q9cFtuLnBdLWdbbi5wXSxlPWUvZC5fY2FTY3JvbGxEaXN0KmYpLGQmJmQuc2Vlayh2KSxkP2U6TWF0aC5yb3VuZChlKX1mdW5jdGlvbiBkYyhlLHQscixuKXtpZihlLnBhcmVudE5vZGUhPT10KXt2YXIgbyxpLGE9ZS5zdHlsZTtpZih0PT09R2Upe2ZvcihvIGluIGUuX3N0T3JpZz1hLmNzc1RleHQsaT1kYihlKSkrb3x8US50ZXN0KG8pfHwhaVtvXXx8InN0cmluZyIhPXR5cGVvZiBhW29dfHwiMCI9PT1vfHwoYVtvXT1pW29dKTthLnRvcD1yLGEubGVmdD1ufWVsc2UgYS5jc3NUZXh0PWUuX3N0T3JpZztLZS5jb3JlLmdldENhY2hlKGUpLnVuY2FjaGU9MSx0LmFwcGVuZENoaWxkKGUpfX1mdW5jdGlvbiBlYyhsLGUpe2Z1bmN0aW9uIFNqKGUsdCxyLG4sbyl7dmFyIGk9U2oudHdlZW4sYT10Lm9uQ29tcGxldGUscz17fTtyZXR1cm4gcj1yfHxmKCksbz1uJiZvfHwwLG49bnx8ZS1yLGkmJmkua2lsbCgpLGM9TWF0aC5yb3VuZChyKSx0W2RdPWUsKHQubW9kaWZpZXJzPXMpW2RdPWZ1bmN0aW9uKGUpe3JldHVybihlPU1hdGgucm91bmQoZigpKSkhPT1jJiZlIT09dSYmMzxNYXRoLmFicyhlLWMpJiYzPE1hdGguYWJzKGUtdSk/KGkua2lsbCgpLFNqLnR3ZWVuPTApOmU9cituKmkucmF0aW8rbyppLnJhdGlvKmkucmF0aW8sdT1jLGM9TWF0aC5yb3VuZChlKX0sdC5vbkNvbXBsZXRlPWZ1bmN0aW9uKCl7U2oudHdlZW49MCxhJiZhLmNhbGwoaSl9LGk9U2oudHdlZW49S2UudG8obCx0KX12YXIgYyx1LGY9SihsLGUpLGQ9Il9zY3JvbGwiK2UucDI7cmV0dXJuKGxbZF09Zikud2hlZWxIYW5kbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIFNqLnR3ZWVuJiZTai50d2Vlbi5raWxsKCkmJihTai50d2Vlbj0wKX0sbmIobCwid2hlZWwiLGYud2hlZWxIYW5kbGVyKSxTan12YXIgS2UsYSxXZSxqZSxxZSxHZSxzLGwsZXQsdHQscnQsYyxudCxvdCx1LGl0LGYsZCxwLGF0LHN0LGcsaCx2LGIsbSxQLGx0LHgsY3QsUyx1dCxmdCxkdCxwdD0xLGd0PURhdGUubm93LHc9Z3QoKSxodD0wLHZ0PTAsYnQ9TWF0aC5hYnMsXz0icmlnaHQiLFQ9ImJvdHRvbSIsbXQ9IndpZHRoIix5dD0iaGVpZ2h0Iix4dD0iUmlnaHQiLFN0PSJMZWZ0Iix3dD0iVG9wIixfdD0iQm90dG9tIixUdD0icGFkZGluZyIsa3Q9Im1hcmdpbiIsQXQ9IldpZHRoIixDPSJIZWlnaHQiLEV0PSJweCIsTXQ9ZnVuY3Rpb24gX2dldEJvdW5kcyhlLHQpe3ZhciByPXQmJiJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMCkiIT09ZGIoZSlbdV0mJktlLnRvKGUse3g6MCx5OjAseFBlcmNlbnQ6MCx5UGVyY2VudDowLHJvdGF0aW9uOjAscm90YXRpb25YOjAscm90YXRpb25ZOjAsc2NhbGU6MSxza2V3WDowLHNrZXdZOjB9KS5wcm9ncmVzcygxKSxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHImJnIucHJvZ3Jlc3MoMCkua2lsbCgpLG59LFB0PXtzdGFydENvbG9yOiJncmVlbiIsZW5kQ29sb3I6InJlZCIsaW5kZW50OjAsZm9udFNpemU6IjE2cHgiLGZvbnRXZWlnaHQ6Im5vcm1hbCJ9LEN0PXt0b2dnbGVBY3Rpb25zOiJwbGF5IixhbnRpY2lwYXRlUGluOjB9LEQ9e3RvcDowLGxlZnQ6MCxjZW50ZXI6LjUsYm90dG9tOjEscmlnaHQ6MX0sUj1mdW5jdGlvbiBfcG9zaXRpb25NYXJrZXIoZSx0LHIsbil7dmFyIG89e2Rpc3BsYXk6ImJsb2NrIn0saT1yW24/Im9zMiI6InAyIl0sYT1yW24/InAyIjoib3MyIl07ZS5faXNGbGlwcGVkPW4sb1tyLmErIlBlcmNlbnQiXT1uPy0xMDA6MCxvW3IuYV09bj8iMXB4IjowLG9bImJvcmRlciIraStBdF09MSxvWyJib3JkZXIiK2ErQXRdPTAsb1tyLnBdPXQrInB4IixLZS5zZXQoZSxvKX0sT3Q9W10sRHQ9e30sWD17fSxZPVtdLEg9ZnVuY3Rpb24gX2Rpc3BhdGNoKGUpe3JldHVybiBYW2VdJiZYW2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSl8fFl9LFY9W10sSXQ9MCx6dD1mdW5jdGlvbiBfcmVmcmVzaEFsbChlLHQpe2lmKCFodHx8ZSl7dXQ9Wi5pc1JlZnJlc2hpbmc9ITAsTGUuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gS2EoZSkmJmUuY2FjaGVJRCsrJiYoZS5yZWM9ZSgpKX0pO3ZhciByPUgoInJlZnJlc2hJbml0Iik7YXQmJlouc29ydCgpLHR8fEpiKCksTGUuZm9yRWFjaChmdW5jdGlvbihlKXtLYShlKSYmKGUuc21vb3RoJiYoZS50YXJnZXQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9ImF1dG8iKSxlKDApKX0pLE90LnNsaWNlKDApLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVmcmVzaCgpfSksT3QuZm9yRWFjaChmdW5jdGlvbihlLHQpe2lmKGUuX3N1YlBpbk9mZnNldCYmZS5waW4pe3ZhciByPWUudmFycy5ob3Jpem9udGFsPyJvZmZzZXRXaWR0aCI6Im9mZnNldEhlaWdodCIsbj1lLnBpbltyXTtlLnJldmVydCghMCwxKSxlLmFkanVzdFBpblNwYWNpbmcoZS5waW5bcl0tbiksZS5yZXZlcnQoITEsMSl9fSksT3QuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4ibWF4Ij09PWUudmFycy5lbmQmJmUuc2V0UG9zaXRpb25zKGUuc3RhcnQsTWF0aC5tYXgoZS5zdGFydCsxLEhhKGUuc2Nyb2xsZXIsZS5fZGlyKSkpfSksci5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLnJlbmRlciYmZS5yZW5kZXIoLTEpfSksTGUuZm9yRWFjaChmdW5jdGlvbihlKXtLYShlKSYmKGUuc21vb3RoJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gZS50YXJnZXQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9InNtb290aCJ9KSxlLnJlYyYmZShlLnJlYykpfSksS2IoeCwxKSxsLnBhdXNlKCksSXQrKyxqKDIpLE90LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIEthKGUudmFycy5vblJlZnJlc2gpJiZlLnZhcnMub25SZWZyZXNoKGUpfSksdXQ9Wi5pc1JlZnJlc2hpbmc9ITEsSCgicmVmcmVzaCIpfWVsc2UgbmIoWiwic2Nyb2xsRW5kIixGYil9LFc9MCxCdD0xLGo9ZnVuY3Rpb24gX3VwZGF0ZUFsbChlKXtpZighdXR8fDI9PT1lKXtaLmlzVXBkYXRpbmc9ITAsZHQmJmR0LnVwZGF0ZSgwKTt2YXIgdD1PdC5sZW5ndGgscj1ndCgpLG49NTA8PXItdyxvPXQmJk90WzBdLnNjcm9sbCgpO2lmKEJ0PW88Vz8tMToxLFc9byxuJiYoaHQmJiFvdCYmMjAwPHItaHQmJihodD0wLEgoInNjcm9sbEVuZCIpKSxydD13LHc9ciksQnQ8MCl7Zm9yKGl0PXQ7MDxpdC0tOylPdFtpdF0mJk90W2l0XS51cGRhdGUoMCxuKTtCdD0xfWVsc2UgZm9yKGl0PTA7aXQ8dDtpdCsrKU90W2l0XSYmT3RbaXRdLnVwZGF0ZSgwLG4pO1ouaXNVcGRhdGluZz0hMX1TPTB9LFU9WyJsZWZ0IiwidG9wIixULF8sa3QrX3Qsa3QreHQsa3Qrd3Qsa3QrU3QsImRpc3BsYXkiLCJmbGV4U2hyaW5rIiwiZmxvYXQiLCJ6SW5kZXgiLCJncmlkQ29sdW1uU3RhcnQiLCJncmlkQ29sdW1uRW5kIiwiZ3JpZFJvd1N0YXJ0IiwiZ3JpZFJvd0VuZCIsImdyaWRBcmVhIiwianVzdGlmeVNlbGYiLCJhbGlnblNlbGYiLCJwbGFjZVNlbGYiLCJvcmRlciJdLEc9VS5jb25jYXQoW210LHl0LCJib3hTaXppbmciLCJtYXgiK0F0LCJtYXgiK0MsInBvc2l0aW9uIixrdCxUdCxUdCt3dCxUdCt4dCxUdCtfdCxUdCtTdF0pLCQ9LyhbQS1aXSkvZyxSdD1mdW5jdGlvbiBfc2V0U3RhdGUoZSl7aWYoZSl7dmFyIHQscixuPWUudC5zdHlsZSxvPWUubGVuZ3RoLGk9MDtmb3IoKGUudC5fZ3NhcHx8S2UuY29yZS5nZXRDYWNoZShlLnQpKS51bmNhY2hlPTE7aTxvO2krPTIpcj1lW2krMV0sdD1lW2ldLHI/blt0XT1yOm5bdF0mJm4ucmVtb3ZlUHJvcGVydHkodC5yZXBsYWNlKCQsIi0kMSIpLnRvTG93ZXJDYXNlKCkpfX0sWHQ9e2xlZnQ6MCx0b3A6MH0sUT0vKHdlYmtpdHxtb3p8bGVuZ3RofGNzc1RleHR8aW5zZXQpL2ksWj0oU2Nyb2xsVHJpZ2dlci5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbiBpbml0KF8sVCl7aWYodGhpcy5wcm9ncmVzcz10aGlzLnN0YXJ0PTAsdGhpcy52YXJzJiZ0aGlzLmtpbGwoITAsITApLHZ0KXt2YXIgayxuLHAsQSxFLE0sUCxDLE8sRCx6LGUsQixSLFgsTCxGLHQsWSxiLEgsTixtLEsseCxTLHIsdyxWLFcsbyxnLGoscSxVLEcsJCxpLFE9KF89ZmIoSmEoXyl8fExhKF8pfHxfLm5vZGVUeXBlP3t0cmlnZ2VyOl99Ol8sQ3QpKS5vblVwZGF0ZSxaPV8udG9nZ2xlQ2xhc3MsYT1fLmlkLGVlPV8ub25Ub2dnbGUsdGU9Xy5vblJlZnJlc2gscmU9Xy5zY3J1YixuZT1fLnRyaWdnZXIsb2U9Xy5waW4saWU9Xy5waW5TcGFjaW5nLGFlPV8uaW52YWxpZGF0ZU9uUmVmcmVzaCxzZT1fLmFudGljaXBhdGVQaW4scz1fLm9uU2NydWJDb21wbGV0ZSxoPV8ub25TbmFwQ29tcGxldGUsbGU9Xy5vbmNlLGNlPV8uc25hcCx1ZT1fLnBpblJlcGFyZW50LGw9Xy5waW5TcGFjZXIsZmU9Xy5jb250YWluZXJBbmltYXRpb24sZGU9Xy5mYXN0U2Nyb2xsRW5kLHBlPV8ucHJldmVudE92ZXJsYXBzLGdlPV8uaG9yaXpvbnRhbHx8Xy5jb250YWluZXJBbmltYXRpb24mJiExIT09Xy5ob3Jpem9udGFsP0plOk5lLGhlPSFyZSYmMCE9PXJlLHZlPUkoXy5zY3JvbGxlcnx8V2UpLGM9S2UuY29yZS5nZXRDYWNoZSh2ZSksYmU9RGEodmUpLG1lPSJmaXhlZCI9PT0oInBpblR5cGUiaW4gXz9fLnBpblR5cGU6eSh2ZSwicGluVHlwZSIpfHxiZSYmImZpeGVkIikseWU9W18ub25FbnRlcixfLm9uTGVhdmUsXy5vbkVudGVyQmFjayxfLm9uTGVhdmVCYWNrXSx4ZT1oZSYmXy50b2dnbGVBY3Rpb25zLnNwbGl0KCIgIiksdT0ibWFya2VycyJpbiBfP18ubWFya2VyczpDdC5tYXJrZXJzLFNlPWJlPzA6cGFyc2VGbG9hdChkYih2ZSlbImJvcmRlciIrZ2UucDIrQXRdKXx8MCx3ZT10aGlzLF9lPV8ub25SZWZyZXNoSW5pdCYmZnVuY3Rpb24oKXtyZXR1cm4gXy5vblJlZnJlc2hJbml0KHdlKX0sVGU9ZnVuY3Rpb24gX2dldFNpemVGdW5jKGUsdCxyKXt2YXIgbj1yLmQsbz1yLmQyLGk9ci5hO3JldHVybihpPXkoZSwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IikpP2Z1bmN0aW9uKCl7cmV0dXJuIGkoKVtuXX06ZnVuY3Rpb24oKXtyZXR1cm4odD9XZVsiaW5uZXIiK29dOmVbImNsaWVudCIrb10pfHwwfX0odmUsYmUsZ2UpLGtlPWZ1bmN0aW9uIF9nZXRPZmZzZXRzRnVuYyhlLHQpe3JldHVybiF0fHx+RmUuaW5kZXhPZihlKT9FYShlKTpmdW5jdGlvbigpe3JldHVybiBYdH19KHZlLGJlKSxBZT0wLEVlPTAsTWU9Sih2ZSxnZSk7aWYobHQod2UpLHdlLl9kaXI9Z2Usc2UqPTQ1LHdlLnNjcm9sbGVyPXZlLHdlLnNjcm9sbD1mZT9mZS50aW1lLmJpbmQoZmUpOk1lLEE9TWUoKSx3ZS52YXJzPV8sVD1UfHxfLmFuaW1hdGlvbiwicmVmcmVzaFByaW9yaXR5ImluIF8mJihhdD0xLC05OTk5PT09Xy5yZWZyZXNoUHJpb3JpdHkmJihkdD13ZSkpLGMudHdlZW5TY3JvbGw9Yy50d2VlblNjcm9sbHx8e3RvcDplYyh2ZSxOZSksbGVmdDplYyh2ZSxKZSl9LHdlLnR3ZWVuVG89az1jLnR3ZWVuU2Nyb2xsW2dlLnBdLHdlLnNjcnViRHVyYXRpb249ZnVuY3Rpb24oZSl7KG89TGEoZSkmJmUpP1c/Vy5kdXJhdGlvbihlKTpXPUtlLnRvKFQse2Vhc2U6ImV4cG8iLHRvdGFsUHJvZ3Jlc3M6Iis9MC4wMDEiLGR1cmF0aW9uOm8scGF1c2VkOiEwLG9uQ29tcGxldGU6ZnVuY3Rpb24gb25Db21wbGV0ZSgpe3JldHVybiBzJiZzKHdlKX19KTooVyYmVy5wcm9ncmVzcygxKS5raWxsKCksVz0wKX0sVCYmKFQudmFycy5sYXp5PSExLFQuX2luaXR0ZWR8fCExIT09VC52YXJzLmltbWVkaWF0ZVJlbmRlciYmITEhPT1fLmltbWVkaWF0ZVJlbmRlciYmVC5kdXJhdGlvbigpJiZULnJlbmRlcigwLCEwLCEwKSx3ZS5hbmltYXRpb249VC5wYXVzZSgpLChULnNjcm9sbFRyaWdnZXI9d2UpLnNjcnViRHVyYXRpb24ocmUpLHc9MCxhPWF8fFQudmFycy5pZCksT3QucHVzaCh3ZSksY2UmJihNYShjZSkmJiFjZS5wdXNofHwoY2U9e3NuYXBUbzpjZX0pLCJzY3JvbGxCZWhhdmlvciJpbiBHZS5zdHlsZSYmS2Uuc2V0KGJlP1tHZSxxZV06dmUse3Njcm9sbEJlaGF2aW9yOiJhdXRvIn0pLExlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIEthKGUpJiZlLnRhcmdldD09PShiZT9qZS5zY3JvbGxpbmdFbGVtZW50fHxxZTp2ZSkmJihlLnNtb290aD0hMSl9KSxwPUthKGNlLnNuYXBUbyk/Y2Uuc25hcFRvOiJsYWJlbHMiPT09Y2Uuc25hcFRvP2Z1bmN0aW9uIF9nZXRDbG9zZXN0TGFiZWwodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBLZS51dGlscy5zbmFwKGliKHQpLGUpfX0oVCk6ImxhYmVsc0RpcmVjdGlvbmFsIj09PWNlLnNuYXBUbz9mdW5jdGlvbiBfZ2V0TGFiZWxBdERpcmVjdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4ga2IoaWIocikpKGUsdC5kaXJlY3Rpb24pfX0oVCk6ITEhPT1jZS5kaXJlY3Rpb25hbD9mdW5jdGlvbihlLHQpe3JldHVybiBrYihjZS5zbmFwVG8pKGUsZ3QoKS1FZTw1MDA/MDp0LmRpcmVjdGlvbil9OktlLnV0aWxzLnNuYXAoY2Uuc25hcFRvKSxnPWNlLmR1cmF0aW9ufHx7bWluOi4xLG1heDoyfSxnPU1hKGcpP3R0KGcubWluLGcubWF4KTp0dChnLGcpLGo9S2UuZGVsYXllZENhbGwoY2UuZGVsYXl8fG8vMnx8LjEsZnVuY3Rpb24oKXt2YXIgZT1NZSgpLHQ9Z3QoKS1FZTw1MDAscj1rLnR3ZWVuO2lmKCEodHx8TWF0aC5hYnMod2UuZ2V0VmVsb2NpdHkoKSk8MTApfHxyfHxvdHx8QWU9PT1lKXdlLmlzQWN0aXZlJiZBZSE9PWUmJmoucmVzdGFydCghMCk7ZWxzZXt2YXIgbj0oZS1NKS9CLG89VCYmIWhlP1QudG90YWxQcm9ncmVzcygpOm4saT10PzA6KG8tVikvKGd0KCktcnQpKjFlM3x8MCxhPUtlLnV0aWxzLmNsYW1wKC1uLDEtbixidChpLzIpKmkvLjE4NSkscz1uKyghMT09PWNlLmluZXJ0aWE/MDphKSxsPXR0KDAsMSxwKHMsd2UpKSxjPU1hdGgucm91bmQoTStsKkIpLHU9Y2Uub25TdGFydCxmPWNlLm9uSW50ZXJydXB0LGQ9Y2Uub25Db21wbGV0ZTtpZihlPD1QJiZNPD1lJiZjIT09ZSl7aWYociYmIXIuX2luaXR0ZWQmJnIuZGF0YTw9YnQoYy1lKSlyZXR1cm47ITE9PT1jZS5pbmVydGlhJiYoYT1sLW4pLGsoYyx7ZHVyYXRpb246ZyhidCguMTg1Kk1hdGgubWF4KGJ0KHMtbyksYnQobC1vKSkvaS8uMDV8fDApKSxlYXNlOmNlLmVhc2V8fCJwb3dlcjMiLGRhdGE6YnQoYy1lKSxvbkludGVycnVwdDpmdW5jdGlvbiBvbkludGVycnVwdCgpe3JldHVybiBqLnJlc3RhcnQoITApJiZmJiZmKHdlKX0sb25Db21wbGV0ZTpmdW5jdGlvbiBvbkNvbXBsZXRlKCl7d2UudXBkYXRlKCksQWU9TWUoKSx3PVY9VCYmIWhlP1QudG90YWxQcm9ncmVzcygpOndlLnByb2dyZXNzLGgmJmgod2UpLGQmJmQod2UpfX0sZSxhKkIsYy1lLWEqQiksdSYmdSh3ZSxrLnR3ZWVuKX19fSkucGF1c2UoKSksYSYmKER0W2FdPXdlKSxpPShpPShuZT13ZS50cmlnZ2VyPUkobmV8fG9lKSkmJm5lLl9nc2FwJiZuZS5fZ3NhcC5zdFJldmVydCkmJmkod2UpLG9lPSEwPT09b2U/bmU6SShvZSksSmEoWikmJihaPXt0YXJnZXRzOm5lLGNsYXNzTmFtZTpafSksb2UmJighMT09PWllfHxpZT09PWt0fHwoaWU9ISghaWUmJm9lLnBhcmVudE5vZGUmJm9lLnBhcmVudE5vZGUuc3R5bGUmJiJmbGV4Ij09PWRiKG9lLnBhcmVudE5vZGUpLmRpc3BsYXkpJiZUdCksd2UucGluPW9lLChuPUtlLmNvcmUuZ2V0Q2FjaGUob2UpKS5zcGFjZXI/Uj1uLnBpblN0YXRlOihsJiYoKGw9SShsKSkmJiFsLm5vZGVUeXBlJiYobD1sLmN1cnJlbnR8fGwubmF0aXZlRWxlbWVudCksbi5zcGFjZXJJc05hdGl2ZT0hIWwsbCYmKG4uc3BhY2VyU3RhdGU9JGIobCkpKSxuLnNwYWNlcj1GPWx8fGplLmNyZWF0ZUVsZW1lbnQoImRpdiIpLEYuY2xhc3NMaXN0LmFkZCgicGluLXNwYWNlciIpLGEmJkYuY2xhc3NMaXN0LmFkZCgicGluLXNwYWNlci0iK2EpLG4ucGluU3RhdGU9Uj0kYihvZSkpLCExIT09Xy5mb3JjZTNEJiZLZS5zZXQob2Use2ZvcmNlM0Q6ITB9KSx3ZS5zcGFjZXI9Rj1uLnNwYWNlcixyPWRiKG9lKSxtPXJbaWUrZ2Uub3MyXSxZPUtlLmdldFByb3BlcnR5KG9lKSxiPUtlLnF1aWNrU2V0dGVyKG9lLGdlLmEsRXQpLFhiKG9lLEYsciksTD0kYihvZSkpLHUpe2U9TWEodSk/ZmIodSxQdCk6UHQsRD11Yigic2Nyb2xsZXItc3RhcnQiLGEsdmUsZ2UsZSwwKSx6PXViKCJzY3JvbGxlci1lbmQiLGEsdmUsZ2UsZSwwLEQpLHQ9RFsib2Zmc2V0IitnZS5vcC5kMl07dmFyIGY9SSh5KHZlLCJjb250ZW50Iil8fHZlKTtDPXRoaXMubWFya2VyU3RhcnQ9dWIoInN0YXJ0IixhLGYsZ2UsZSx0LDAsZmUpLE89dGhpcy5tYXJrZXJFbmQ9dWIoImVuZCIsYSxmLGdlLGUsdCwwLGZlKSxmZSYmKCQ9S2UucXVpY2tTZXR0ZXIoW0MsT10sZ2UuYSxFdCkpLG1lfHxGZS5sZW5ndGgmJiEwPT09eSh2ZSwiZml4ZWRNYXJrZXJzIil8fChmdW5jdGlvbiBfbWFrZVBvc2l0aW9uYWJsZShlKXt2YXIgdD1kYihlKS5wb3NpdGlvbjtlLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI9PT10fHwiZml4ZWQiPT09dD90OiJyZWxhdGl2ZSJ9KGJlP0dlOnZlKSxLZS5zZXQoW0Qsel0se2ZvcmNlM0Q6ITB9KSx4PUtlLnF1aWNrU2V0dGVyKEQsZ2UuYSxFdCksUz1LZS5xdWlja1NldHRlcih6LGdlLmEsRXQpKX1pZihmZSl7dmFyIGQ9ZmUudmFycy5vblVwZGF0ZSx2PWZlLnZhcnMub25VcGRhdGVQYXJhbXM7ZmUuZXZlbnRDYWxsYmFjaygib25VcGRhdGUiLGZ1bmN0aW9uKCl7d2UudXBkYXRlKDAsMCwxKSxkJiZkLmFwcGx5KHZ8fFtdKX0pfXdlLnByZXZpb3VzPWZ1bmN0aW9uKCl7cmV0dXJuIE90W090LmluZGV4T2Yod2UpLTFdfSx3ZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIE90W090LmluZGV4T2Yod2UpKzFdfSx3ZS5yZXZlcnQ9ZnVuY3Rpb24oZSx0KXtpZighdClyZXR1cm4gd2Uua2lsbCghMCk7dmFyIHI9ITEhPT1lfHwhd2UuZW5hYmxlZCxuPW50O3IhPT13ZS5pc1JldmVydGVkJiYociYmKFU9TWF0aC5tYXgoTWUoKSx3ZS5zY3JvbGwucmVjfHwwKSxxPXdlLnByb2dyZXNzLEc9VCYmVC5wcm9ncmVzcygpKSxDJiZbQyxPLEQsel0uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZS5kaXNwbGF5PXI/Im5vbmUiOiJibG9jayJ9KSxyJiYobnQ9MSx3ZS51cGRhdGUocikpLG9lJiYocj9mdW5jdGlvbiBfc3dhcFBpbk91dChlLHQscil7UnQocik7dmFyIG49ZS5fZ3NhcDtpZihuLnNwYWNlcklzTmF0aXZlKVJ0KG4uc3BhY2VyU3RhdGUpO2Vsc2UgaWYoZS5fZ3NhcC5zd2FwcGVkSW4pe3ZhciBvPXQucGFyZW50Tm9kZTtvJiYoby5pbnNlcnRCZWZvcmUoZSx0KSxvLnJlbW92ZUNoaWxkKHQpKX1lLl9nc2FwLnN3YXBwZWRJbj0hMX0ob2UsRixSKTp1ZSYmd2UuaXNBY3RpdmV8fFhiKG9lLEYsZGIob2UpLEspKSxyfHx3ZS51cGRhdGUociksbnQ9bix3ZS5pc1JldmVydGVkPXIpfSx3ZS5yZWZyZXNoPWZ1bmN0aW9uKGUsdCl7aWYoIW50JiZ3ZS5lbmFibGVkfHx0KWlmKG9lJiZlJiZodCluYihTY3JvbGxUcmlnZ2VyLCJzY3JvbGxFbmQiLEZiKTtlbHNleyF1dCYmX2UmJl9lKHdlKSxudD0xLEVlPWd0KCksay50d2VlbiYmKGsudHdlZW4ua2lsbCgpLGsudHdlZW49MCksVyYmVy5wYXVzZSgpLGFlJiZUJiZULnJldmVydCh7a2lsbDohMX0pLmludmFsaWRhdGUoKSx3ZS5pc1JldmVydGVkfHx3ZS5yZXZlcnQoITAsITApLHdlLl9zdWJQaW5PZmZzZXQ9ITE7Zm9yKHZhciByLG4sbyxpLGEscyxsLGMsdSxmLGQ9VGUoKSxwPWtlKCksZz1mZT9mZS5kdXJhdGlvbigpOkhhKHZlLGdlKSxoPTAsdj0wLGI9Xy5lbmQsbT1fLmVuZFRyaWdnZXJ8fG5lLHk9Xy5zdGFydHx8KDAhPT1fLnN0YXJ0JiZuZT9vZT8iMCAwIjoiMCAxMDAlIjowKSx4PXdlLnBpbm5lZENvbnRhaW5lcj1fLnBpbm5lZENvbnRhaW5lciYmSShfLnBpbm5lZENvbnRhaW5lciksUz1uZSYmTWF0aC5tYXgoMCxPdC5pbmRleE9mKHdlKSl8fDAsdz1TO3ctLTspKHM9T3Rbd10pLmVuZHx8cy5yZWZyZXNoKDAsMSl8fChudD0xKSwhKGw9cy5waW4pfHxsIT09bmUmJmwhPT1vZXx8cy5pc1JldmVydGVkfHwoKGY9Znx8W10pLnVuc2hpZnQocykscy5yZXZlcnQoITAsITApKSxzIT09T3Rbd10mJihTLS0sdy0tKTtmb3IoS2EoeSkmJih5PXkod2UpKSxNPWJjKHksbmUsZCxnZSxNZSgpLEMsRCx3ZSxwLFNlLG1lLGcsZmUpfHwob2U/LS4wMDE6MCksS2EoYikmJihiPWIod2UpKSxKYShiKSYmIWIuaW5kZXhPZigiKz0iKSYmKH5iLmluZGV4T2YoIiAiKT9iPShKYSh5KT95LnNwbGl0KCIgIilbMF06IiIpK2I6KGg9dGIoYi5zdWJzdHIoMiksZCksYj1KYSh5KT95Ok0raCxtPW5lKSksUD1NYXRoLm1heChNLGJjKGJ8fChtPyIxMDAlIDAiOmcpLG0sZCxnZSxNZSgpK2gsTyx6LHdlLHAsU2UsbWUsZyxmZSkpfHwtLjAwMSxCPVAtTXx8KE0tPS4wMSkmJi4wMDEsaD0wLHc9Uzt3LS07KShsPShzPU90W3ddKS5waW4pJiZzLnN0YXJ0LXMuX3BpblB1c2g8PU0mJiFmZSYmMDxzLmVuZCYmKHI9cy5lbmQtcy5zdGFydCwobD09PW5lJiZzLnN0YXJ0LXMuX3BpblB1c2g8TXx8bD09PXgpJiYhTGEoeSkmJihoKz1yKigxLXMucHJvZ3Jlc3MpKSxsPT09b2UmJih2Kz1yKSk7aWYoTSs9aCxQKz1oLHdlLl9waW5QdXNoPXYsQyYmaCYmKChyPXt9KVtnZS5hXT0iKz0iK2gseCYmKHJbZ2UucF09Ii09IitNZSgpKSxLZS5zZXQoW0MsT10scikpLG9lKXI9ZGIob2UpLGk9Z2U9PT1OZSxvPU1lKCksSD1wYXJzZUZsb2F0KFkoZ2UuYSkpK3YsIWcmJjE8UCYmKChiZT9HZTp2ZSkuc3R5bGVbIm92ZXJmbG93LSIrZ2UuYV09InNjcm9sbCIpLFhiKG9lLEYsciksTD0kYihvZSksbj1NdChvZSwhMCksYz1tZSYmSih2ZSxpP0plOk5lKSgpLGllJiYoKEs9W2llK2dlLm9zMixCK3YrRXRdKS50PUYsKHc9aWU9PT1UdD9oYihvZSxnZSkrQit2OjApJiZLLnB1c2goZ2UuZCx3K0V0KSxSdChLKSx4JiZPdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucGluPT09eCYmITEhPT1lLnZhcnMucGluU3BhY2luZyYmKGUuX3N1YlBpbk9mZnNldD0hMCl9KSxtZSYmTWUoVSkpLG1lJiYoKGE9e3RvcDpuLnRvcCsoaT9vLU06YykrRXQsbGVmdDpuLmxlZnQrKGk/YzpvLU0pK0V0LGJveFNpemluZzoiYm9yZGVyLWJveCIscG9zaXRpb246ImZpeGVkIn0pW210XT1hLm1heFdpZHRoPU1hdGguY2VpbChuLndpZHRoKStFdCxhW3l0XT1hLm1heEhlaWdodD1NYXRoLmNlaWwobi5oZWlnaHQpK0V0LGFba3RdPWFba3Qrd3RdPWFba3QreHRdPWFba3QrX3RdPWFba3QrU3RdPSIwIixhW1R0XT1yW1R0XSxhW1R0K3d0XT1yW1R0K3d0XSxhW1R0K3h0XT1yW1R0K3h0XSxhW1R0K190XT1yW1R0K190XSxhW1R0K1N0XT1yW1R0K1N0XSxYPWZ1bmN0aW9uIF9jb3B5U3RhdGUoZSx0LHIpe2Zvcih2YXIgbixvPVtdLGk9ZS5sZW5ndGgsYT1yPzg6MDthPGk7YSs9MiluPWVbYV0sby5wdXNoKG4sbiBpbiB0P3Rbbl06ZVthKzFdKTtyZXR1cm4gby50PWUudCxvfShSLGEsdWUpLHV0JiZNZSgwKSksVD8odT1ULl9pbml0dGVkLHN0KDEpLFQucmVuZGVyKFQuZHVyYXRpb24oKSwhMCwhMCksTj1ZKGdlLmEpLUgrQit2LEIhPT1OJiZtZSYmWC5zcGxpY2UoWC5sZW5ndGgtMiwyKSxULnJlbmRlcigwLCEwLCEwKSx1fHxULmludmFsaWRhdGUoITApLFQucGFyZW50fHxULnRvdGFsVGltZShULnRvdGFsVGltZSgpKSxzdCgwKSk6Tj1CO2Vsc2UgaWYobmUmJk1lKCkmJiFmZSlmb3Iobj1uZS5wYXJlbnROb2RlO24mJm4hPT1HZTspbi5fcGluT2Zmc2V0JiYoTS09bi5fcGluT2Zmc2V0LFAtPW4uX3Bpbk9mZnNldCksbj1uLnBhcmVudE5vZGU7ZiYmZi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJldmVydCghMSwhMCl9KSx3ZS5zdGFydD1NLHdlLmVuZD1QLEE9RT11dD9VOk1lKCksZmV8fHV0fHwoQTxVJiZNZShVKSx3ZS5zY3JvbGwucmVjPTApLHdlLnJldmVydCghMSwhMCksaiYmKEFlPS0xLHdlLmlzQWN0aXZlJiZNZShNK0IqcSksai5yZXN0YXJ0KCEwKSksbnQ9MCxUJiZoZSYmKFQuX2luaXR0ZWR8fEcpJiZULnByb2dyZXNzKCkhPT1HJiZULnByb2dyZXNzKEcsITApLnJlbmRlcihULnRpbWUoKSwhMCwhMCkscT09PXdlLnByb2dyZXNzJiYhZmV8fChUJiYhaGUmJlQudG90YWxQcm9ncmVzcyhxLCEwKSx3ZS5wcm9ncmVzcz0oQS1NKS9CPT09cT8wOnEpLG9lJiZpZSYmKEYuX3Bpbk9mZnNldD1NYXRoLnJvdW5kKHdlLnByb2dyZXNzKk4pKSx0ZSYmIXV0JiZ0ZSh3ZSl9fSx3ZS5nZXRWZWxvY2l0eT1mdW5jdGlvbigpe3JldHVybihNZSgpLUUpLyhndCgpLXJ0KSoxZTN8fDB9LHdlLmVuZEFuaW1hdGlvbj1mdW5jdGlvbigpe05hKHdlLmNhbGxiYWNrQW5pbWF0aW9uKSxUJiYoVz9XLnByb2dyZXNzKDEpOlQucGF1c2VkKCk/aGV8fE5hKFQsd2UuZGlyZWN0aW9uPDAsMSk6TmEoVCxULnJldmVyc2VkKCkpKX0sd2UubGFiZWxUb1Njcm9sbD1mdW5jdGlvbihlKXtyZXR1cm4gVCYmVC5sYWJlbHMmJihNfHx3ZS5yZWZyZXNoKCl8fE0pK1QubGFiZWxzW2VdL1QuZHVyYXRpb24oKSpCfHwwfSx3ZS5nZXRUcmFpbGluZz1mdW5jdGlvbih0KXt2YXIgZT1PdC5pbmRleE9mKHdlKSxyPTA8d2UuZGlyZWN0aW9uP090LnNsaWNlKDAsZSkucmV2ZXJzZSgpOk90LnNsaWNlKGUrMSk7cmV0dXJuKEphKHQpP3IuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhcnMucHJldmVudE92ZXJsYXBzPT09dH0pOnIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMDx3ZS5kaXJlY3Rpb24/ZS5lbmQ8PU06ZS5zdGFydD49UH0pfSx3ZS51cGRhdGU9ZnVuY3Rpb24oZSx0LHIpe2lmKCFmZXx8cnx8ZSl7dmFyIG4sbyxpLGEscyxsLGMsdT11dD9VOndlLnNjcm9sbCgpLGY9ZT8wOih1LU0pL0IsZD1mPDA/MDoxPGY/MTpmfHwwLHA9d2UucHJvZ3Jlc3M7aWYodCYmKEU9QSxBPWZlP01lKCk6dSxjZSYmKFY9dyx3PVQmJiFoZT9ULnRvdGFsUHJvZ3Jlc3MoKTpkKSksc2UmJiFkJiZvZSYmIW50JiYhcHQmJmh0JiZNPHUrKHUtRSkvKGd0KCktcnQpKnNlJiYoZD0xZS00KSxkIT09cCYmd2UuZW5hYmxlZCl7aWYoYT0ocz0obj13ZS5pc0FjdGl2ZT0hIWQmJmQ8MSkhPSghIXAmJnA8MSkpfHwhIWQhPSEhcCx3ZS5kaXJlY3Rpb249cDxkPzE6LTEsd2UucHJvZ3Jlc3M9ZCxhJiYhbnQmJihvPWQmJiFwPzA6MT09PWQ/MToxPT09cD8yOjMsaGUmJihpPSFzJiYibm9uZSIhPT14ZVtvKzFdJiZ4ZVtvKzFdfHx4ZVtvXSxjPVQmJigiY29tcGxldGUiPT09aXx8InJlc2V0Ij09PWl8fGkgaW4gVCkpKSxwZSYmKHN8fGMpJiYoY3x8cmV8fCFUKSYmKEthKHBlKT9wZSh3ZSk6d2UuZ2V0VHJhaWxpbmcocGUpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5kQW5pbWF0aW9uKCl9KSksaGV8fCghV3x8bnR8fHB0P1QmJlQudG90YWxQcm9ncmVzcyhkLCEhbnQpOigoZmV8fGR0JiZkdCE9PXdlKSYmVy5yZW5kZXIoVy5fZHAuX3RpbWUtVy5fc3RhcnQpLFcucmVzZXRUbz9XLnJlc2V0VG8oInRvdGFsUHJvZ3Jlc3MiLGQsVC5fdFRpbWUvVC5fdER1cik6KFcudmFycy50b3RhbFByb2dyZXNzPWQsVy5pbnZhbGlkYXRlKCkucmVzdGFydCgpKSkpLG9lKWlmKGUmJmllJiYoRi5zdHlsZVtpZStnZS5vczJdPW0pLG1lKXtpZihhKXtpZihsPSFlJiZwPGQmJnU8UCsxJiZ1KzE+PUhhKHZlLGdlKSx1ZSlpZihlfHwhbiYmIWwpZGMob2UsRik7ZWxzZXt2YXIgZz1NdChvZSwhMCksaD11LU07ZGMob2UsR2UsZy50b3ArKGdlPT09TmU/aDowKStFdCxnLmxlZnQrKGdlPT09TmU/MDpoKStFdCl9UnQobnx8bD9YOkwpLE4hPT1CJiZkPDEmJm58fGIoSCsoMSE9PWR8fGw/MDpOKSl9fWVsc2UgYihBYShIK04qZCkpOyFjZXx8ay50d2Vlbnx8bnR8fHB0fHxqLnJlc3RhcnQoITApLFomJihzfHxsZSYmZCYmKGQ8MXx8IWN0KSkmJmV0KFoudGFyZ2V0cykuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3Rbbnx8bGU/ImFkZCI6InJlbW92ZSJdKFouY2xhc3NOYW1lKX0pLCFRfHxoZXx8ZXx8USh3ZSksYSYmIW50PyhoZSYmKGMmJigiY29tcGxldGUiPT09aT9ULnBhdXNlKCkudG90YWxQcm9ncmVzcygxKToicmVzZXQiPT09aT9ULnJlc3RhcnQoITApLnBhdXNlKCk6InJlc3RhcnQiPT09aT9ULnJlc3RhcnQoITApOlRbaV0oKSksUSYmUSh3ZSkpLCFzJiZjdHx8KGVlJiZzJiZPYSh3ZSxlZSkseWVbb10mJk9hKHdlLHllW29dKSxsZSYmKDE9PT1kP3dlLmtpbGwoITEsMSk6eWVbb109MCksc3x8eWVbbz0xPT09ZD8xOjNdJiZPYSh3ZSx5ZVtvXSkpLGRlJiYhbiYmTWF0aC5hYnMod2UuZ2V0VmVsb2NpdHkoKSk+KExhKGRlKT9kZToyNTAwKSYmKE5hKHdlLmNhbGxiYWNrQW5pbWF0aW9uKSxXP1cucHJvZ3Jlc3MoMSk6TmEoVCwicmV2ZXJzZSI9PT1pPzE6IWQsMSkpKTpoZSYmUSYmIW50JiZRKHdlKX1pZihTKXt2YXIgdj1mZT91L2ZlLmR1cmF0aW9uKCkqKGZlLl9jYVNjcm9sbERpc3R8fDApOnU7eCh2KyhELl9pc0ZsaXBwZWQ/MTowKSksUyh2KX0kJiYkKC11L2ZlLmR1cmF0aW9uKCkqKGZlLl9jYVNjcm9sbERpc3R8fDApKX19LHdlLmVuYWJsZT1mdW5jdGlvbihlLHQpe3dlLmVuYWJsZWR8fCh3ZS5lbmFibGVkPSEwLG5iKHZlLCJyZXNpemUiLENiKSxuYihiZT9qZTp2ZSwic2Nyb2xsIixBYiksX2UmJm5iKFNjcm9sbFRyaWdnZXIsInJlZnJlc2hJbml0IixfZSksITEhPT1lJiYod2UucHJvZ3Jlc3M9cT0wLEE9RT1BZT1NZSgpKSwhMSE9PXQmJndlLnJlZnJlc2goKSl9LHdlLmdldFR3ZWVuPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZrP2sudHdlZW46V30sd2Uuc2V0UG9zaXRpb25zPWZ1bmN0aW9uKGUsdCl7b2UmJihIKz1lLU0sTis9dC1lLUIsaWU9PT1UdCYmd2UuYWRqdXN0UGluU3BhY2luZyh0LWUtQikpLHdlLnN0YXJ0PU09ZSx3ZS5lbmQ9UD10LEI9dC1lLHdlLnVwZGF0ZSgpfSx3ZS5hZGp1c3RQaW5TcGFjaW5nPWZ1bmN0aW9uKGUpe2lmKEspe3ZhciB0PUsuaW5kZXhPZihnZS5kKSsxO0tbdF09cGFyc2VGbG9hdChLW3RdKStlK0V0LEtbMV09cGFyc2VGbG9hdChLWzFdKStlK0V0LFJ0KEspfX0sd2UuZGlzYWJsZT1mdW5jdGlvbihlLHQpe2lmKHdlLmVuYWJsZWQmJighMSE9PWUmJndlLnJldmVydCghMCwhMCksd2UuZW5hYmxlZD13ZS5pc0FjdGl2ZT0hMSx0fHxXJiZXLnBhdXNlKCksVT0wLG4mJihuLnVuY2FjaGU9MSksX2UmJm9iKFNjcm9sbFRyaWdnZXIsInJlZnJlc2hJbml0IixfZSksaiYmKGoucGF1c2UoKSxrLnR3ZWVuJiZrLnR3ZWVuLmtpbGwoKSYmKGsudHdlZW49MCkpLCFiZSkpe2Zvcih2YXIgcj1PdC5sZW5ndGg7ci0tOylpZihPdFtyXS5zY3JvbGxlcj09PXZlJiZPdFtyXSE9PXdlKXJldHVybjtvYih2ZSwicmVzaXplIixDYiksb2IodmUsInNjcm9sbCIsQWIpfX0sd2Uua2lsbD1mdW5jdGlvbihlLHQpe3dlLmRpc2FibGUoZSx0KSxXJiYhdCYmVy5raWxsKCksYSYmZGVsZXRlIER0W2FdO3ZhciByPU90LmluZGV4T2Yod2UpOzA8PXImJk90LnNwbGljZShyLDEpLHI9PT1pdCYmMDxCdCYmaXQtLSxyPTAsT3QuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zY3JvbGxlcj09PXdlLnNjcm9sbGVyJiYocj0xKX0pLHJ8fHV0fHwod2Uuc2Nyb2xsLnJlYz0wKSxUJiYoVC5zY3JvbGxUcmlnZ2VyPW51bGwsZSYmVC5yZXZlcnQoe2tpbGw6ITF9KSx0fHxULmtpbGwoKSksQyYmW0MsTyxELHpdLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSksZHQ9PT13ZSYmKGR0PTApLG9lJiYobiYmKG4udW5jYWNoZT0xKSxyPTAsT3QuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5waW49PT1vZSYmcisrfSkscnx8KG4uc3BhY2VyPTApKSxfLm9uS2lsbCYmXy5vbktpbGwod2UpfSx3ZS5lbmFibGUoITEsITEpLGkmJmkod2UpLFQmJlQuYWRkJiYhQj9LZS5kZWxheWVkQ2FsbCguMDEsZnVuY3Rpb24oKXtyZXR1cm4gTXx8UHx8d2UucmVmcmVzaCgpfSkmJihCPS4wMSkmJihNPVA9MCk6d2UucmVmcmVzaCgpLG9lJiZmdW5jdGlvbiBfcXVldWVSZWZyZXNoQWxsKCl7aWYoZnQhPT1JdCl7dmFyIGU9ZnQ9SXQ7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGU9PT1JdCYmenQoITApfSl9fSgpfWVsc2UgdGhpcy51cGRhdGU9dGhpcy5yZWZyZXNoPXRoaXMua2lsbD16YX0sU2Nyb2xsVHJpZ2dlci5yZWdpc3Rlcj1mdW5jdGlvbiByZWdpc3RlcihlKXtyZXR1cm4gYXx8KEtlPWV8fENhKCksQmEoKSYmd2luZG93LmRvY3VtZW50JiZTY3JvbGxUcmlnZ2VyLmVuYWJsZSgpLGE9dnQpLGF9LFNjcm9sbFRyaWdnZXIuZGVmYXVsdHM9ZnVuY3Rpb24gZGVmYXVsdHMoZSl7aWYoZSlmb3IodmFyIHQgaW4gZSlDdFt0XT1lW3RdO3JldHVybiBDdH0sU2Nyb2xsVHJpZ2dlci5kaXNhYmxlPWZ1bmN0aW9uIGRpc2FibGUodCxyKXt2dD0wLE90LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGVbcj8ia2lsbCI6ImRpc2FibGUiXSh0KX0pLG9iKFdlLCJ3aGVlbCIsQWIpLG9iKGplLCJzY3JvbGwiLEFiKSxjbGVhckludGVydmFsKGMpLG9iKGplLCJ0b3VjaGNhbmNlbCIsemEpLG9iKEdlLCJ0b3VjaHN0YXJ0Iix6YSksbWIob2IsamUsInBvaW50ZXJkb3duLHRvdWNoc3RhcnQsbW91c2Vkb3duIix4YSksbWIob2IsamUsInBvaW50ZXJ1cCx0b3VjaGVuZCxtb3VzZXVwIix5YSksbC5raWxsKCksSWEob2IpO2Zvcih2YXIgZT0wO2U8TGUubGVuZ3RoO2UrPTMpcGIob2IsTGVbZV0sTGVbZSsxXSkscGIob2IsTGVbZV0sTGVbZSsyXSl9LFNjcm9sbFRyaWdnZXIuZW5hYmxlPWZ1bmN0aW9uIGVuYWJsZSgpe2lmKFdlPXdpbmRvdyxqZT1kb2N1bWVudCxxZT1qZS5kb2N1bWVudEVsZW1lbnQsR2U9amUuYm9keSxLZSYmKGV0PUtlLnV0aWxzLnRvQXJyYXksdHQ9S2UudXRpbHMuY2xhbXAsbHQ9S2UuY29yZS5jb250ZXh0fHx6YSxzdD1LZS5jb3JlLnN1cHByZXNzT3ZlcndyaXRlc3x8emEseD1XZS5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9ufHwiYXV0byIsS2UuY29yZS5nbG9iYWxzKCJTY3JvbGxUcmlnZ2VyIixTY3JvbGxUcmlnZ2VyKSxHZSkpe3Z0PTEsay5yZWdpc3RlcihLZSksU2Nyb2xsVHJpZ2dlci5pc1RvdWNoPWsuaXNUb3VjaCxQPWsuaXNUb3VjaCYmLyhpUGFkfGlQaG9uZXxpUG9kfE1hYykvZy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG5iKFdlLCJ3aGVlbCIsQWIpLHM9W1dlLGplLHFlLEdlXSxLZS5tYXRjaE1lZGlhPyhTY3JvbGxUcmlnZ2VyLm1hdGNoTWVkaWE9ZnVuY3Rpb24oZSl7dmFyIHQscj1LZS5tYXRjaE1lZGlhKCk7Zm9yKHQgaW4gZSlyLmFkZCh0LGVbdF0pO3JldHVybiByfSxLZS5hZGRFdmVudExpc3RlbmVyKCJtYXRjaE1lZGlhSW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4gSmIoKX0pLEtlLmFkZEV2ZW50TGlzdGVuZXIoIm1hdGNoTWVkaWFSZXZlcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIEliKCl9KSxLZS5hZGRFdmVudExpc3RlbmVyKCJtYXRjaE1lZGlhIixmdW5jdGlvbigpe3p0KDAsMSksSCgibWF0Y2hNZWRpYSIpfSksS2UubWF0Y2hNZWRpYSgiKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkiLGZ1bmN0aW9uKCl7cmV0dXJuIEJiKCksQmJ9KSk6Y29uc29sZS53YXJuKCJSZXF1aXJlcyBHU0FQIDMuMTEuMCBvciBsYXRlciIpLEJiKCksbmIoamUsInNjcm9sbCIsQWIpO3ZhciBlLHQscj1HZS5zdHlsZSxuPXIuYm9yZGVyVG9wU3R5bGUsbz1LZS5jb3JlLkFuaW1hdGlvbi5wcm90b3R5cGU7Zm9yKG8ucmV2ZXJ0fHxPYmplY3QuZGVmaW5lUHJvcGVydHkobywicmV2ZXJ0Iix7dmFsdWU6ZnVuY3Rpb24gdmFsdWUoKXtyZXR1cm4gdGhpcy50aW1lKC0uMDEsITApfX0pLHIuYm9yZGVyVG9wU3R5bGU9InNvbGlkIixlPU10KEdlKSxOZS5tPU1hdGgucm91bmQoZS50b3ArTmUuc2MoKSl8fDAsSmUubT1NYXRoLnJvdW5kKGUubGVmdCtKZS5zYygpKXx8MCxuP3IuYm9yZGVyVG9wU3R5bGU9bjpyLnJlbW92ZVByb3BlcnR5KCJib3JkZXItdG9wLXN0eWxlIiksYz1zZXRJbnRlcnZhbCh6YiwyNTApLEtlLmRlbGF5ZWRDYWxsKC41LGZ1bmN0aW9uKCl7cmV0dXJuIHB0PTB9KSxuYihqZSwidG91Y2hjYW5jZWwiLHphKSxuYihHZSwidG91Y2hzdGFydCIsemEpLG1iKG5iLGplLCJwb2ludGVyZG93bix0b3VjaHN0YXJ0LG1vdXNlZG93biIseGEpLG1iKG5iLGplLCJwb2ludGVydXAsdG91Y2hlbmQsbW91c2V1cCIseWEpLHU9S2UudXRpbHMuY2hlY2tQcmVmaXgoInRyYW5zZm9ybSIpLEcucHVzaCh1KSxhPWd0KCksbD1LZS5kZWxheWVkQ2FsbCguMix6dCkucGF1c2UoKSxwPVtqZSwidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZT1XZS5pbm5lcldpZHRoLHQ9V2UuaW5uZXJIZWlnaHQ7amUuaGlkZGVuPyhmPWUsZD10KTpmPT09ZSYmZD09PXR8fENiKCl9LGplLCJET01Db250ZW50TG9hZGVkIix6dCxXZSwibG9hZCIsenQsV2UsInJlc2l6ZSIsQ2JdLElhKG5iKSxPdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVuYWJsZSgwLDEpfSksdD0wO3Q8TGUubGVuZ3RoO3QrPTMpcGIob2IsTGVbdF0sTGVbdCsxXSkscGIob2IsTGVbdF0sTGVbdCsyXSl9fSxTY3JvbGxUcmlnZ2VyLmNvbmZpZz1mdW5jdGlvbiBjb25maWcoZSl7ImxpbWl0Q2FsbGJhY2tzImluIGUmJihjdD0hIWUubGltaXRDYWxsYmFja3MpO3ZhciB0PWUuc3luY0ludGVydmFsO3QmJmNsZWFySW50ZXJ2YWwoYyl8fChjPXQpJiZzZXRJbnRlcnZhbCh6Yix0KSwiaWdub3JlTW9iaWxlUmVzaXplImluIGUmJih2PTE9PT1TY3JvbGxUcmlnZ2VyLmlzVG91Y2gmJmUuaWdub3JlTW9iaWxlUmVzaXplKSwiYXV0b1JlZnJlc2hFdmVudHMiaW4gZSYmKElhKG9iKXx8SWEobmIsZS5hdXRvUmVmcmVzaEV2ZW50c3x8Im5vbmUiKSxnPS0xPT09KGUuYXV0b1JlZnJlc2hFdmVudHMrIiIpLmluZGV4T2YoInJlc2l6ZSIpKX0sU2Nyb2xsVHJpZ2dlci5zY3JvbGxlclByb3h5PWZ1bmN0aW9uIHNjcm9sbGVyUHJveHkoZSx0KXt2YXIgcj1JKGUpLG49TGUuaW5kZXhPZihyKSxvPURhKHIpO35uJiZMZS5zcGxpY2UobixvPzY6MiksdCYmKG8/RmUudW5zaGlmdChXZSx0LEdlLHQscWUsdCk6RmUudW5zaGlmdChyLHQpKX0sU2Nyb2xsVHJpZ2dlci5jbGVhck1hdGNoTWVkaWE9ZnVuY3Rpb24gY2xlYXJNYXRjaE1lZGlhKHQpe090LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuX2N0eCYmZS5fY3R4LnF1ZXJ5PT09dCYmZS5fY3R4LmtpbGwoITAsITApfSl9LFNjcm9sbFRyaWdnZXIuaXNJblZpZXdwb3J0PWZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlLHQscil7dmFyIG49KEphKGUpP0koZSk6ZSkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uW3I/bXQ6eXRdKnR8fDA7cmV0dXJuIHI/MDxuLnJpZ2h0LW8mJm4ubGVmdCtvPFdlLmlubmVyV2lkdGg6MDxuLmJvdHRvbS1vJiZuLnRvcCtvPFdlLmlubmVySGVpZ2h0fSxTY3JvbGxUcmlnZ2VyLnBvc2l0aW9uSW5WaWV3cG9ydD1mdW5jdGlvbiBwb3NpdGlvbkluVmlld3BvcnQoZSx0LHIpe0phKGUpJiYoZT1JKGUpKTt2YXIgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bltyP210Onl0XSxpPW51bGw9PXQ/by8yOnQgaW4gRD9EW3RdKm86fnQuaW5kZXhPZigiJSIpP3BhcnNlRmxvYXQodCkqby8xMDA6cGFyc2VGbG9hdCh0KXx8MDtyZXR1cm4gcj8obi5sZWZ0K2kpL1dlLmlubmVyV2lkdGg6KG4udG9wK2kpL1dlLmlubmVySGVpZ2h0fSxTY3JvbGxUcmlnZ2VyLmtpbGxBbGw9ZnVuY3Rpb24ga2lsbEFsbChlKXtpZihPdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiJTY3JvbGxTbW9vdGhlciIhPT1lLnZhcnMuaWQmJmUua2lsbCgpfSksITAhPT1lKXt2YXIgdD1YLmtpbGxBbGx8fFtdO1g9e30sdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX19LFNjcm9sbFRyaWdnZXIpO2Z1bmN0aW9uIFNjcm9sbFRyaWdnZXIoZSx0KXthfHxTY3JvbGxUcmlnZ2VyLnJlZ2lzdGVyKEtlKXx8Y29uc29sZS53YXJuKCJQbGVhc2UgZ3NhcC5yZWdpc3RlclBsdWdpbihTY3JvbGxUcmlnZ2VyKSIpLHRoaXMuaW5pdChlLHQpfVoudmVyc2lvbj0iMy4xMS4zIixaLnNhdmVTdHlsZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZXQoZSkuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlJiZlLnN0eWxlKXt2YXIgdD1WLmluZGV4T2YoZSk7MDw9dCYmVi5zcGxpY2UodCw1KSxWLnB1c2goZSxlLnN0eWxlLmNzc1RleHQsZS5nZXRCQm94JiZlLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiksS2UuY29yZS5nZXRDYWNoZShlKSxsdCgpKX19KTpWfSxaLnJldmVydD1mdW5jdGlvbihlLHQpe3JldHVybiBKYighZSx0KX0sWi5jcmVhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFooZSx0KX0sWi5yZWZyZXNoPWZ1bmN0aW9uKGUpe3JldHVybiBlP0NiKCk6KGF8fFoucmVnaXN0ZXIoKSkmJnp0KCEwKX0sWi51cGRhdGU9aixaLmNsZWFyU2Nyb2xsTWVtb3J5PUtiLFoubWF4U2Nyb2xsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhhKGUsdD9KZTpOZSl9LFouZ2V0U2Nyb2xsRnVuYz1mdW5jdGlvbihlLHQpe3JldHVybiBKKEkoZSksdD9KZTpOZSl9LFouZ2V0QnlJZD1mdW5jdGlvbihlKXtyZXR1cm4gRHRbZV19LFouZ2V0QWxsPWZ1bmN0aW9uKCl7cmV0dXJuIE90LmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iU2Nyb2xsU21vb3RoZXIiIT09ZS52YXJzLmlkfSl9LFouaXNTY3JvbGxpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hIWh0fSxaLnNuYXBEaXJlY3Rpb25hbD1rYixaLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj1YW2VdfHwoWFtlXT1bXSk7fnIuaW5kZXhPZih0KXx8ci5wdXNoKHQpfSxaLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj1YW2VdLG49ciYmci5pbmRleE9mKHQpOzA8PW4mJnIuc3BsaWNlKG4sMSl9LFouYmF0Y2g9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBEbyhlLHQpe3ZhciByPVtdLG49W10sbz1LZS5kZWxheWVkQ2FsbChpLGZ1bmN0aW9uKCl7dChyLG4pLHI9W10sbj1bXX0pLnBhdXNlKCk7cmV0dXJuIGZ1bmN0aW9uKGUpe3IubGVuZ3RofHxvLnJlc3RhcnQoITApLHIucHVzaChlLnRyaWdnZXIpLG4ucHVzaChlKSxhPD1yLmxlbmd0aCYmby5wcm9ncmVzcygxKX19dmFyIHIsbj1bXSxvPXt9LGk9dC5pbnRlcnZhbHx8LjAxNixhPXQuYmF0Y2hNYXh8fDFlOTtmb3IociBpbiB0KW9bcl09Im9uIj09PXIuc3Vic3RyKDAsMikmJkthKHRbcl0pJiYib25SZWZyZXNoSW5pdCIhPT1yP0RvKDAsdFtyXSk6dFtyXTtyZXR1cm4gS2EoYSkmJihhPWEoKSxuYihaLCJyZWZyZXNoIixmdW5jdGlvbigpe3JldHVybiBhPXQuYmF0Y2hNYXgoKX0pKSxldChlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2ZvcihyIGluIG8pdFtyXT1vW3JdO3QudHJpZ2dlcj1lLG4ucHVzaChaLmNyZWF0ZSh0KSl9KSxufTtmdW5jdGlvbiBnYyhlLHQscixuKXtyZXR1cm4gbjx0P2Uobik6dDwwJiZlKDApLG48cj8obi10KS8oci10KTpyPDA/dC8odC1yKToxfWZ1bmN0aW9uIGhjKGUsdCl7ITA9PT10P2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRvdWNoLWFjdGlvbiIpOmUuc3R5bGUudG91Y2hBY3Rpb249ITA9PT10PyJhdXRvIjp0PyJwYW4tIit0KyhrLmlzVG91Y2g/IiBwaW5jaC16b29tIjoiIik6Im5vbmUiLGU9PT1xZSYmaGMoR2UsdCl9ZnVuY3Rpb24gamMoZSl7dmFyIHQscj1lLmV2ZW50LG49ZS50YXJnZXQsbz1lLmF4aXMsaT0oci5jaGFuZ2VkVG91Y2hlcz9yLmNoYW5nZWRUb3VjaGVzWzBdOnIpLnRhcmdldCxhPWkuX2dzYXB8fEtlLmNvcmUuZ2V0Q2FjaGUoaSkscz1ndCgpO2lmKCFhLl9pc1Njcm9sbFR8fDJlMzxzLWEuX2lzU2Nyb2xsVCl7Zm9yKDtpJiZpLnNjcm9sbEhlaWdodDw9aS5jbGllbnRIZWlnaHQ7KWk9aS5wYXJlbnROb2RlO2EuX2lzU2Nyb2xsPWkmJiFEYShpKSYmaSE9PW4mJih0ZVsodD1kYihpKSkub3ZlcmZsb3dZXXx8dGVbdC5vdmVyZmxvd1hdKSxhLl9pc1Njcm9sbFQ9c30hYS5faXNTY3JvbGwmJiJ4IiE9PW98fChyLnN0b3BQcm9wYWdhdGlvbigpLHIuX2dzYXBBbGxvdz0hMCl9ZnVuY3Rpb24ga2MoZSx0LHIsbil7cmV0dXJuIGsuY3JlYXRlKHt0YXJnZXQ6ZSxjYXB0dXJlOiEwLGRlYm91bmNlOiExLGxvY2tBeGlzOiEwLHR5cGU6dCxvbldoZWVsOm49biYmamMsb25QcmVzczpuLG9uRHJhZzpuLG9uU2Nyb2xsOm4sb25FbmFibGU6ZnVuY3Rpb24gb25FbmFibGUoKXtyZXR1cm4gciYmbmIoamUsay5ldmVudFR5cGVzWzBdLG5lLCExLCEwKX0sb25EaXNhYmxlOmZ1bmN0aW9uIG9uRGlzYWJsZSgpe3JldHVybiBvYihqZSxrLmV2ZW50VHlwZXNbMF0sbmUsITApfX0pfWZ1bmN0aW9uIG9jKGUpe2Z1bmN0aW9uIHpwKCl7cmV0dXJuIG89ITF9ZnVuY3Rpb24gQ3AoKXtpPUhhKGQsTmUpLFQ9dHQoUD8xOjAsaSksZiYmKF89dHQoMCxIYShkLEplKSkpLGw9SXR9ZnVuY3Rpb24gRHAoKXtoLl9nc2FwLnk9QWEocGFyc2VGbG9hdChoLl9nc2FwLnkpK3Yub2Zmc2V0KSsicHgiLGguc3R5bGUudHJhbnNmb3JtPSJtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAiK3BhcnNlRmxvYXQoaC5fZ3NhcC55KSsiLCAwLCAxKSIsdi5vZmZzZXQ9di5jYWNoZUlEPTB9ZnVuY3Rpb24gSnAoKXtDcCgpLGEuaXNBY3RpdmUoKSYmYS52YXJzLnNjcm9sbFk+aSYmKHYoKT5pP2EucHJvZ3Jlc3MoMSkmJnYoaSk6YS5yZXNldFRvKCJzY3JvbGxZIixpKSl9TWEoZSl8fChlPXt9KSxlLnByZXZlbnREZWZhdWx0PWUuaXNOb3JtYWxpemVyPWUuYWxsb3dDbGlja3M9ITAsZS50eXBlfHwoZS50eXBlPSJ3aGVlbCx0b3VjaCIpLGUuZGVib3VuY2U9ISFlLmRlYm91bmNlLGUuaWQ9ZS5pZHx8Im5vcm1hbGl6ZXIiO3ZhciBuLGksbCxvLGEsYyx1LHMsZj1lLm5vcm1hbGl6ZVNjcm9sbFgsdD1lLm1vbWVudHVtLHI9ZS5hbGxvd05lc3RlZFNjcm9sbCxkPUkoZS50YXJnZXQpfHxxZSxwPUtlLmNvcmUuZ2xvYmFscygpLlNjcm9sbFNtb290aGVyLGc9cCYmcC5nZXQoKSxoPVAmJihlLmNvbnRlbnQmJkkoZS5jb250ZW50KXx8ZyYmITEhPT1lLmNvbnRlbnQmJiFnLnNtb290aCgpJiZnLmNvbnRlbnQoKSksdj1KKGQsTmUpLGI9SihkLEplKSxtPTEseT0oay5pc1RvdWNoJiZXZS52aXN1YWxWaWV3cG9ydD9XZS52aXN1YWxWaWV3cG9ydC5zY2FsZSpXZS52aXN1YWxWaWV3cG9ydC53aWR0aDpXZS5vdXRlcldpZHRoKS9XZS5pbm5lcldpZHRoLHg9MCxTPUthKHQpP2Z1bmN0aW9uKCl7cmV0dXJuIHQobil9OmZ1bmN0aW9uKCl7cmV0dXJuIHR8fDIuOH0sdz1rYyhkLGUudHlwZSwhMCxyKSxfPXphLFQ9emE7cmV0dXJuIGgmJktlLnNldChoLHt5OiIrPTAifSksZS5pZ25vcmVDaGVjaz1mdW5jdGlvbihlKXtyZXR1cm4gUCYmInRvdWNobW92ZSI9PT1lLnR5cGUmJmZ1bmN0aW9uIGlnbm9yZURyYWcoKXtpZihvKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoenApO3ZhciBlPUFhKG4uZGVsdGFZLzIpLHQ9VCh2LnYtZSk7aWYoaCYmdCE9PXYudit2Lm9mZnNldCl7di5vZmZzZXQ9dC12LnY7dmFyIHI9QWEoKHBhcnNlRmxvYXQoaCYmaC5fZ3NhcC55KXx8MCktdi5vZmZzZXQpO2guc3R5bGUudHJhbnNmb3JtPSJtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAiK3IrIiwgMCwgMSkiLGguX2dzYXAueT1yKyJweCIsdi5jYWNoZUlEPUxlLmNhY2hlLGooKX1yZXR1cm4hMH12Lm9mZnNldCYmRHAoKSxvPSEwfSgpfHwxLjA1PG0mJiJ0b3VjaHN0YXJ0IiE9PWUudHlwZXx8bi5pc0dlc3R1cmluZ3x8ZS50b3VjaGVzJiYxPGUudG91Y2hlcy5sZW5ndGh9LGUub25QcmVzcz1mdW5jdGlvbigpe3ZhciBlPW07bT1BYSgoV2UudmlzdWFsVmlld3BvcnQmJldlLnZpc3VhbFZpZXdwb3J0LnNjYWxlfHwxKS95KSxhLnBhdXNlKCksZSE9PW0mJmhjKGQsMS4wMTxtfHwhZiYmIngiKSxjPWIoKSx1PXYoKSxDcCgpLGw9SXR9LGUub25SZWxlYXNlPWUub25HZXN0dXJlU3RhcnQ9ZnVuY3Rpb24oZSx0KXtpZih2Lm9mZnNldCYmRHAoKSx0KXtMZS5jYWNoZSsrO3ZhciByLG4sbz1TKCk7ZiYmKG49KHI9YigpKSsuMDUqbyotZS52ZWxvY2l0eVgvLjIyNyxvKj1nYyhiLHIsbixIYShkLEplKSksYS52YXJzLnNjcm9sbFg9XyhuKSksbj0ocj12KCkpKy4wNSpvKi1lLnZlbG9jaXR5WS8uMjI3LG8qPWdjKHYscixuLEhhKGQsTmUpKSxhLnZhcnMuc2Nyb2xsWT1UKG4pLGEuaW52YWxpZGF0ZSgpLmR1cmF0aW9uKG8pLnBsYXkoLjAxKSwoUCYmYS52YXJzLnNjcm9sbFk+PWl8fGktMTw9cikmJktlLnRvKHt9LHtvblVwZGF0ZTpKcCxkdXJhdGlvbjpvfSl9ZWxzZSBzLnJlc3RhcnQoITApfSxlLm9uV2hlZWw9ZnVuY3Rpb24oKXthLl90cyYmYS5wYXVzZSgpLDFlMzxndCgpLXgmJihsPTAseD1ndCgpKX0sZS5vbkNoYW5nZT1mdW5jdGlvbihlLHQscixuLG8pe2lmKEl0IT09bCYmQ3AoKSx0JiZmJiZiKF8oblsyXT09PXQ/YysoZS5zdGFydFgtZS54KTpiKCkrdC1uWzFdKSkscil7di5vZmZzZXQmJkRwKCk7dmFyIGk9b1syXT09PXIsYT1pP3UrZS5zdGFydFktZS55OnYoKStyLW9bMV0scz1UKGEpO2kmJmEhPT1zJiYodSs9cy1hKSx2KHMpfShyfHx0KSYmaigpfSxlLm9uRW5hYmxlPWZ1bmN0aW9uKCl7aGMoZCwhZiYmIngiKSxaLmFkZEV2ZW50TGlzdGVuZXIoInJlZnJlc2giLEpwKSxuYihXZSwicmVzaXplIixKcCksdi5zbW9vdGgmJih2LnRhcmdldC5zdHlsZS5zY3JvbGxCZWhhdmlvcj0iYXV0byIsdi5zbW9vdGg9Yi5zbW9vdGg9ITEpLHcuZW5hYmxlKCl9LGUub25EaXNhYmxlPWZ1bmN0aW9uKCl7aGMoZCwhMCksb2IoV2UsInJlc2l6ZSIsSnApLFoucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVmcmVzaCIsSnApLHcua2lsbCgpfSxlLmxvY2tBeGlzPSExIT09ZS5sb2NrQXhpcywoKG49bmV3IGsoZSkpLmlPUz1QKSYmIXYoKSYmdigxKSxQJiZLZS50aWNrZXIuYWRkKHphKSxzPW4uX2RjLGE9S2UudG8obix7ZWFzZToicG93ZXI0IixwYXVzZWQ6ITAsc2Nyb2xsWDpmPyIrPTAuMSI6Iis9MCIsc2Nyb2xsWToiKz0wLjEiLG9uQ29tcGxldGU6cy52YXJzLm9uQ29tcGxldGV9KSxufXZhciBlZSx0ZT17YXV0bzoxLHNjcm9sbDoxfSxyZT0vKGlucHV0fGxhYmVsfHNlbGVjdHx0ZXh0YXJlYSkvaSxuZT1mdW5jdGlvbiBfY2FwdHVyZUlucHV0cyhlKXt2YXIgdD1yZS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpOyh0fHxlZSkmJihlLl9nc2FwQWxsb3c9ITAsZWU9dCl9O1ouc29ydD1mdW5jdGlvbihlKXtyZXR1cm4gT3Quc29ydChlfHxmdW5jdGlvbihlLHQpe3JldHVybi0xZTYqKGUudmFycy5yZWZyZXNoUHJpb3JpdHl8fDApK2Uuc3RhcnQtKHQuc3RhcnQrLTFlNioodC52YXJzLnJlZnJlc2hQcmlvcml0eXx8MCkpfSl9LFoub2JzZXJ2ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGsoZSl9LFoubm9ybWFsaXplU2Nyb2xsPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIGg7aWYoITA9PT1lJiZoKXJldHVybiBoLmVuYWJsZSgpO2lmKCExPT09ZSlyZXR1cm4gaCYmaC5raWxsKCk7dmFyIHQ9ZSBpbnN0YW5jZW9mIGs/ZTpvYyhlKTtyZXR1cm4gaCYmaC50YXJnZXQ9PT10LnRhcmdldCYmaC5raWxsKCksRGEodC50YXJnZXQpJiYoaD10KSx0fSxaLmNvcmU9e19nZXRWZWxvY2l0eVByb3A6SyxfaW5wdXRPYnNlcnZlcjprYyxfc2Nyb2xsZXJzOkxlLF9wcm94aWVzOkZlLGJyaWRnZTp7c3M6ZnVuY3Rpb24gc3MoKXtodHx8SCgic2Nyb2xsU3RhcnQiKSxodD1ndCgpfSxyZWY6ZnVuY3Rpb24gcmVmKCl7cmV0dXJuIG50fX19LENhKCkmJktlLnJlZ2lzdGVyUGx1Z2luKFopLGUuU2Nyb2xsVHJpZ2dlcj1aLGUuZGVmYXVsdD1aO2lmICh0eXBlb2Yod2luZG93KT09PSJ1bmRlZmluZWQifHx3aW5kb3chPT1lKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9IGVsc2Uge2RlbGV0ZSBlLmRlZmF1bHR9fSk7Cgo="}},"time_used":477,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":477,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translations.smartsuppcdn.com/api/v1/widget/translations/lang/en/defaults","fqdn":"translations.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:32.047Z","timestamp":1785145412047,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1087630013.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 03 Jun 2026 14:33:02 GMT","end":"Tue, 01 Sep 2026 14:33:01 GMT"},"fingerprint":{"sha1":"CE:B9:32:81:E9:D2:46:C8:31:53:55:D3:41:19:F7:94:91:30:D1:93","sha256":"54:C9:41:2F:97:E8:14:28:D7:2C:4F:FA:E0:C3:3A:BC:85:F8:14:22:1C:98:23:82:53:4D:5D:58:C9:0B:C9:68"}}},"request":{"raw":"GET /api/v1/widget/translations/lang/en/defaults HTTP/1.1\r\nHost: translations.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:32 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-origin: *\r\ncache-control: max-age=600\r\nx-response-time: 0ms\r\nx-version: 0dd3c95f86cdb6b59a0dad25ffcd406aa7c7723b\r\nx-77-nzt: k/DDzdu2tPYlvqx+tr74FHm/QgZkovF0CkzErlstOJvEn3/UtGBzkdNFkKtLW2top5rDTH0\r\nx-77-nzt-ray: fdb54123c44391bc4428676af2285e06\r\nx-77-cache: HIT\r\nx-77-age: 39\r\nvary: Origin, Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":7216,"size_decoded":3345,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"05d7604a60456ab25eb809557b353edc","sha1":"e32135b721636e7994e42748da35341e03dfd123","sha256":"5892aca834fe3f9f8fb66f68c8a3eb2295708a3b428cf355d7f3e3c1a0b7b62e","sha512":"db4124c008e22597192e1f07b44575ff191a03322f763bffb1efd129152e0f6f1546d98f5016967b32cc71a8252fefc0546aef0be258e8343fbba4ae2afe00da","ssdeep":"192:Ccdft/hc4l6WKHSY8pZcqq+jT0UHAfoW/Ymz8:CgF/hcbWbYKZcF+jhqoWQmw","tlshash":"48e1b54f9a144ea987c6438276cfb84675bc80734250993afd8cc8b842697cda3e3b94","first_seen":"2026-04-01T12:23:41.393805Z","last_seen":"2026-07-27T13:21:25.866734Z","times_seen":5254,"resource_available":false,"data":"eyJhZ2VudFJhdGluZy5hbGwucGxhY2Vob2xkZXIiOiJMZWF2ZSB1cyBmZWVkYmFjayIsImFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dCI6IlNvIHNvcnJ5IPCfmJMgV2hhdCB3ZW50IHdyb25nPyIsImFnZW50UmF0aW5nLmdvb2QuZm9ybVRleHQiOiJUaGFua3Mg8J+kqSBXaGF0IHdhcyBzbyBncmVhdD8iLCJhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHQiOiJUaGFua3Mg8J+RjSBIb3cgY2FuIHdlIGltcHJvdmU/IiwiYWdlbnRUcmFuc2Zlci5kZWZhdWx0VGV4dCI6IkFnZW50IiwiYWdlbnRUcmFuc2Zlci5qb2luZWQiOiJqb2luZWQgdGhlIGNoYXQiLCJhZ2VudFRyYW5zZmVyLmxlZnQiOiJsZWZ0IiwiYWdlbnRUcmFuc2Zlci5yZWRpcmVjdGVkIjoiaXMgeW91ciBuZXcgYWdlbnQiLCJhcmlhTGFiZWwuYWdlbnRBdmF0YXIiOiJBZ2VudCBhdmF0YXIiLCJhcmlhTGFiZWwuY2FyZCI6IlByb2R1Y3QgY2FyZCIsImFyaWFMYWJlbC5jaGF0Q29udGVudCI6IkNoYXQgY29udGVudCIsImFyaWFMYWJlbC5jaGF0Ym90QXZhdGFyIjoiQ2hhdGJvdCBhdmF0YXIiLCJhcmlhTGFiZWwuZHJhd2VyLmNvbnRlbnQiOiJEcmF3ZXIgY29udGVudCIsImFyaWFMYWJlbC5kcmF3ZXIub3ZlcmxheSI6IkRyYXdlciBvdmVybGF5IiwiYXJpYUxhYmVsLmlubGluZUVtb2ppUGlja2VyLmRlc2NyaXB0aW9uIjoiU2hvd2luZyB7Y291bnR9IGVtb2ppcyIsImFyaWFMYWJlbC5pbmxpbmVFbW9qaVBpY2tlci5sYWJlbCI6IkVtb2ppIHN1Z2dlc3Rpb25zIiwiYXJpYUxhYmVsLmxlZnQiOiJMZWZ0IiwiYXJpYUxhYmVsLm9wZW5DaGF0IjoiT3BlbiBTbWFydHN1cHAgY2hhdCIsImFyaWFMYWJlbC5wb3B1cCI6IlNtYXJ0c3VwcCBjaGF0IHBvcHVwIiwiYXJpYUxhYmVsLnJhdGVDaGF0LmJhZCI6IlJhdGUgY2hhdCBuZWdhdGl2ZWxseSIsImFyaWFMYWJlbC5yYXRlQ2hhdC5nb29kIjoiUmF0ZSBjaGF0IHBvc2l0aXZlbHkiLCJhcmlhTGFiZWwucmF0ZUNoYXQubmV1dHJhbCI6IlJhdGUgY2hhdCBuZXV0cmFsbHkiLCJhcmlhTGFiZWwucmVtb3ZlQXR0YWNobWVudCI6IlJlbW92ZSBhdHRhY2htZW50IiwiYXJpYUxhYmVsLnJpZ2h0IjoiUmlnaHQiLCJhcmlhTGFiZWwuc2Nyb2xsRG93biI6IlNjcm9sbCBkb3duIiwiYXJpYUxhYmVsLnN1Y2Nlc3MiOiJTdWNjZXNzIiwiYXJpYUxhYmVsLnVwbG9hZGluZyI6IlVwbG9hZGluZy4uLiIsImFyaWFMYWJlbC53aWRnZXRCcmFuZGluZyI6IlNtYXJ0c3VwcCBicmFuZGluZyIsImF1dGhGb3JtLmFjY2VwdFRlcm1zIjoiSSBhZ3JlZSB3aXRoIHByaXZhY3kgcG9saWN5IiwiYXV0aEZvcm0uYnV0dG9uLnNlbmQiOiJTZW5kIG1lc3NhZ2UiLCJhdXRoRm9ybS5kZXNjcmlwdGlvbiI6Ildl4oCZbGwgdXNlIHlvdXIgY29udGFjdCBpbmZvIG9ubHkgaWYgYWxsIHRoZSBhZ2VudHMgYXJlIGJ1c3kgYXQgdGhlIG1vbWVudCBhbmQgY2Fubm90IGltbWVkaWF0ZWx5IHJlcGx5LiIsImF1dGhGb3JtLmdyZWV0aW5nIjoi8J+RiyBQbGVhc2UgaW50cm9kdWNlIHlvdXJzZWxmIiwiYXV0aEZvcm0uZ3JvdXAiOiJDaG9vc2UgYSBncm91cCIsImF1dGhGb3JtLmxhYmVsLmVtYWlsIjoiRS1tYWlsIiwiYXV0aEZvcm0ubGFiZWwuZ3JvdXAiOiJHcm91cCIsImF1dGhGb3JtLmxhYmVsLm5hbWUiOiJOYW1lIiwiYXV0aEZvcm0ubGFiZWwucGhvbmUiOiJQaG9uZSIsImF1dGhGb3JtLnN1Ym1pdC5lcnJvciI6IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsImF1dGhGb3JtLnN1Ym1pdC5zdWNjZXNzIjoiQXV0aGVudGljYXRpb24gd2FzIHN1Y2Nlc3NmdWwiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2FyZC5saW5rc0xpbWl0UmVhY2hlZCI6IlVuYWJsZSB0byBzZW5kIG1vcmUgdGhhbiAyMCBVUkwgbGlua3MuIiwiY2FyZC5ub1ByZXZpZXdUaXRsZSI6IlByZXZpZXcgbm90IGF2YWlsYWJsZSIsImNhcmQub3BlblVybFRpdGxlIjoiUmVhZCBtb3JlIiwiY2FyZC5zZW5kaW5nSW5Qcm9ncmVzcyI6IlNlbmRpbmcgaW4gcHJvZ3Jlc3MsIHBsZWFzZSB3YWl04oCmIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjaGF0Ym90LmdvQmFjayI6IkdvIGJhY2siLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImRyYWdBbmREcm9wLmRyb3BIZXJlIjoiRHJvcCB5b3VyIGZpbGUocykgaGVyZSIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlVG9vQmlnIjoiVGhlIGZpbGUgaXMgYmlnZ2VyIHRoYW4gdGhlIGFsbG93ZWQgbGltaXQiLCJmaWxlVXBsb2FkLmZpbGVzV2VyZW50UHJvY2Vzc2VkIjoiU29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJmb3JtLnN1Ym1pdC5lcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiIsImZvcm0uc3VibWl0LnN1Y2Nlc3MiOiJTdWNjZXNzZnVsbHkgZG9uZSIsImdkcHIuZGF0YVByaXZhY3lIZWFkbGluZSI6IlBlcnNvbmFsIGRhdGEgcHJvY2Vzc2luZyIsImdkcHIuZGF0YVByaXZhY3lUZXh0IjoiU21hcnRzdXBwLmNvbSwgcy5yLm8sIHByb2Nlc3NlcyBwZXJzb25hbCBkYXRhLiwgVkFUIElEIENaMDM2Njg2ODEgKGZ1cnRoZXIgYXMgXCJTbWFydHN1cHBcIikgYXMgYSBkYXRhIHByb2Nlc3NvciB3aG8gYWN0cyBvbiBiZWhhbGYgb2YgdGhlIHdlYnNpdGUgb3duZXIgd2hvIGlzIHRoZSBkYXRhIGNvbnRyb2xsZXIuIFxuXG5TbWFydHN1cHAgaXMgR0RQUiBjb21wbGlhbnQuIFlvdSBjYW4gZmluZCBpbmZvcm1hdGlvbiBhYm91dCBTbWFydHN1cHAgcGVyc29uYWwgZGF0YSBwcml2YWN5IGFuZCBwcm9jZXNzaW5nIG9uIGhlbHAuc21hcnRzdXBwLmNvbS9lbl9VUy9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsImdlbmVyYWwuYmFjayI6IkJhY2siLCJnZW5lcmFsLm5ld01lc3NhZ2VzIjoiTmV3IG1lc3NhZ2VzIiwiZ2VuZXJhbC5zZW5kIjoiU2VuZCIsIm9wdGlvbnMuYWNjZXNzaWJpbGl0eSI6IkFjY2Vzc2liaWxpdHkiLCJvcHRpb25zLmNvcHlyaWdodCI6IsKpIHt5ZWFyfSBTbWFydHN1cHAuY29tIiwib3B0aW9ucy5lbWFpbFRyYW5zY3JpcHQiOiJTZW5kIGVtYWlsIHRyYW5zY3JpcHQiLCJvcHRpb25zLmZlZWRiYWNrIjoiRGlkIHlvdSBmaW5kIGEgYnVnPyIsIm9wdGlvbnMuZ2RwciI6IkdEUFIgYW5kIHByaXZhY3kiLCJvcHRpb25zLnBkZlRyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0Iiwib3B0aW9ucy5wbGF5U291bmRzIjoiUGxheSB0aGUgc291bmRzIiwib3B0aW9ucy50aXRsZSI6Ik9wdGlvbnMiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWdlbnQiOiJSYXRlIGNoYXQiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWkiOiJSYXRlIEFJIGNoYXRib3QiLCJyYXRpbmcuc3VibWl0LnN1Y2Nlc3MiOiJSYXRpbmcgc2VudCIsInJhdGluZy5zdWJtaXRGZWVkYmFjay5zdWNjZXNzIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIiwicmF0aW5nLndhc0l0SGVscGZ1bC5hZ2VudCI6IkhvdyB3b3VsZCB5b3UgcmF0ZSBvdXIgc3VwcG9ydD8iLCJyYXRpbmcud2FzSXRIZWxwZnVsLmFpIjoiSG93IHdvdWxkIHlvdSByYXRlIHRoZSBBSSBjaGF0Ym90IGV4cGVyaWVuY2U/Iiwic3RhdHVzQmFyLmJvdElkZW50aXR5IjoiQUkgYXNzaXN0YW50Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJzeXN0ZW1NZXNzYWdlLmNoYXRDbG9zZWQiOiJDaGF0IHdhcyBjbG9zZWQiLCJzeXN0ZW1NZXNzYWdlLmNoYXRSZXNvbHZlZCI6InJlc29sdmVkIGNvbnZlcnNhdGlvbiIsInRpY2tldEZvcm0ubGFiZWwubWVzc2FnZSI6IldoYXQgY2FuIHdlIGhlbHAgeW91IHdpdGg/IiwidGlja2V0Rm9ybS5tZXNzYWdlLnBsYWNlaG9sZGVyIjoiRGVzY3JpYmUgeW91ciBwcm9ibGVtIiwidGlja2V0Rm9ybS5zdWJtaXQuYnV0dG9uIjoi4pyJ77iPIENvbnRhY3QgdGhlIGFnZW50IGJ5IGVtYWlsIiwidGltZWFnby5YRGF5c0FnbyI6IiclcyBkYXlzIGFnbyIsInRpbWVhZ28uWEhvdXJzQWdvIjoiJXMgaG91cnMgYWdvIiwidGltZWFnby5YTWludXRlc0FnbyI6IiVzIG1pbnV0ZXMgYWdvIiwidGltZWFnby5YTW9udGhzQWdvIjoiJXMgbW9udGhzIGFnbyIsInRpbWVhZ28uWFNlY29uZHNBZ28iOiIlcyBzZWNvbmRzIGFnbyIsInRpbWVhZ28uWFdlZWtzQWdvIjoiJXMgd2Vla3MgYWdvIiwidGltZWFnby5YWWVhcnNBZ28iOiIlcyB5ZWFycyBhZ28iLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRvb2x0aXAuYXR0YWNobWVudCI6IkF0dGFjaG1lbnQiLCJ0b29sdGlwLmNsb3NlIjoiQ2xvc2UiLCJ0b29sdGlwLmNvbGxhcHNlIjoiQ29sbGFwc2UgY2hhdCIsInRvb2x0aXAuZW1vamkiOiJFbW9qaSIsInRvb2x0aXAuZXhwYW5kIjoiRXhwYW5kIGNoYXQiLCJ0b29sdGlwLm1pbmltaXplIjoiTWluaW1pemUgY2hhdCIsInRvb2x0aXAubW9yZSI6IlNob3cgbW9yZSIsInRvb2x0aXAubW9yZUJ1dHRvbiI6IlNob3cgTW9yZSIsInRvb2x0aXAucmF0ZUNoYXQiOiJSYXRlIENoYXQiLCJ0b29sdGlwLnNlbmQiOiJTZW5kIiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInRyaWdnZXIucmVwbHlCdXR0b24iOiJSZXBseSIsInZhbGlkYXRpb25zLmNoZWNrZWRUZXJtcyI6IllvdSBtdXN0IGFncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIGNvbnRpbnVlIiwidmFsaWRhdGlvbnMuaXNFbWFpbCI6IlBsZWFzZSBlbnRlciB2YWxpZCBlbWFpbCIsInZhbGlkYXRpb25zLnBob25lIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiwidmFsaWRhdGlvbnMucmVxdWlyZWQiOiJQbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZCIsIndhcm5pbmdCYXIubWF4TGVuZ3RoIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzICgyMDAwKSIsIndhcm5pbmdCYXIuc2FtZU1lc3NhZ2VUd2ljZSI6IkNhbm5vdCBzZW5kIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2UgaW4gYSByb3cuIiwid2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbiI6IllvdXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGlkZW50aWZpZWQgYXMgc3BhbS4gUGxlYXNlIHdhaXQgZm9yIDMwIHNlY29uZHMgYmVmb3JlIHNlbmRpbmcgYW5vdGhlciBtZXNzYWdlLiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIiwid2lkZ2V0UHJldmlldy5jb250YWN0TWVzc2FnZSI6IvCfjokgTG9va3MgZmFudGFzdGljISDwn5Kq8J+PuyBMZXTCtHMgcm9jayB0aG9zZSBjb252ZXJzYXRpb25zIGFuZCBsZWF2ZSBhIGxhc3RpbmcgaW1wcmVzc2lvbiEg8J+agCIsIndpZGdldFByZXZpZXcud2VsY29tZU1lc3NhZ2UiOiLwn5GL8J+PuyBXZWxjb21lISBUaGlzIGlzIGEgc25lYWsgcGVlayBvZiB5b3VyIGNoYXQgYm94LiBHZXQgcmVhZHkgdG8gc2hpbmUg4pyoIGluIGN1c3RvbWVyIGludGVyYWN0aW9ucyEiLCJtZXNzYWdlLmRlbGV0ZWQiOiJUaGlzIG1lc3NhZ2Ugd2FzIHJlbW92ZWQifQ=="}},"time_used":64,"timings":{"blocked":0,"dns":33,"connect":8,"send":0,"wait":8,"receive":0,"ssl":15},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/trustpilot-reviews/review/assets/js/headerScript.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.812Z","timestamp":1785145403812,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/trustpilot-reviews/review/assets/js/headerScript.min.js?ver=1.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-60d\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":1549,"size_decoded":840,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1503)","md5":"52fe33c670b44657e774b78fa436d23f","sha1":"1e062e19a32cde0e6b51e902ffab985f31473d41","sha256":"0f00ba3e27c018779130e2601a80ea98375b85b395fc2d13861b94bdf101cf35","sha512":"4bad60c17933aeae6ea7847337b4c78747ffa3cf64302123fbb41db95727da66dfb75b5e1212ea568ef5da733dd5afee2bf7102f53474506a47502eff03154b0","ssdeep":"","tlshash":"7e311e493c66ca3400d6192aa1bfc71439275a117c57e864b0eecc783eb0f8eb855e8f","first_seen":"2023-03-07T12:03:30Z","last_seen":"2026-08-03T19:19:38.603459Z","times_seen":630,"resource_available":true,"data":"ZnVuY3Rpb24gaW5JZnJhbWUoKXt0cnl7cmV0dXJuIHdpbmRvdy5zZWxmIT09d2luZG93LnRvcH1jYXRjaCh0KXtyZXR1cm4hMX19ZnVuY3Rpb24gdHJ5UGFyc2VKc29uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuITF9IWZ1bmN0aW9uKHQsZSxyLHMsaSl7dC5UcnVzdHBpbG90T2JqZWN0PWksdC50cD10LnRwfHxmdW5jdGlvbigpeyh0LnRwLnE9dC50cC5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxhPWUuY3JlYXRlRWxlbWVudChyKSxhLmFzeW5jPTEsYS5zcmM9cyxhLnR5cGU9InRleHQvamF2YSIrcixmPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUocilbMF0sZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGYpfSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsdHJ1c3RwaWxvdF9zZXR0aW5ncy5UcnVzdHBpbG90U2NyaXB0VXJsLCJ0cCIpLHRwKCJyZWdpc3RlciIsdHJ1c3RwaWxvdF9zZXR0aW5ncy5rZXkpLGluSWZyYW1lKCkmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbih0KXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbikuaG9zdG5hbWU7aWYodC5kYXRhJiYtMSE9PXQub3JpZ2luLmluZGV4T2YoZSkpaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBUcnVzdHBpbG90UHJldmlldyl7aWYoInN0cmluZyIhPXR5cGVvZiB0LmRhdGF8fCJzdWJtaXQiIT09dC5kYXRhKXJldHVybiBqc29uRGF0YT10cnlQYXJzZUpzb24odC5kYXRhKSx2b2lkKGpzb25EYXRhJiYoanNvbkRhdGEudHJ1c3Rib3g/VHJ1c3RwaWxvdFByZXZpZXcuc2V0U2V0dGluZ3MoanNvbkRhdGEudHJ1c3Rib3gpOmpzb25EYXRhLmN1c3RvbWlzZWQmJlRydXN0cGlsb3RQcmV2aWV3LnVwZGF0ZUFjdGl2ZShqc29uRGF0YS5jdXN0b21pc2VkKSkpO1RydXN0cGlsb3RQcmV2aWV3LnNlbmRUcnVzdGJveGVzKCl9ZWxzZXt2YXIgcj10cnlQYXJzZUpzb24odC5kYXRhKTtpZihyJiZyLnRydXN0Ym94ZXMpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IixzLnNyYz10cnVzdHBpbG90X3NldHRpbmdzLldpZGdldFNjcmlwdFVybCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2kudHlwZT0idGV4dC9qYXZhc2NyaXB0IixpLm9ubG9hZD1mdW5jdGlvbigpe2NvbnN0IGU9dC5zb3VyY2UucGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maWd1cmF0aW9uX2lmcmFtZSIpLmNvbnRlbnRXaW5kb3c7VHJ1c3RwaWxvdFByZXZpZXcuaW5pdChbdHJ1c3RwaWxvdF9zZXR0aW5ncy5QcmV2aWV3Q3NzVXJsLHRydXN0cGlsb3Rfc2V0dGluZ3MuUHJldmlld1dQQ3NzVXJsXSxyLGUsdC5zb3VyY2UpfSxpLnNyYz10cnVzdHBpbG90X3NldHRpbmdzLlByZXZpZXdTY3JpcHRVcmwsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChpKX19fSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWRlclNjcmlwdC5taW4uanMubWFwCg=="}},"time_used":519,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":519,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/theme.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.848Z","timestamp":1785145403848,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/theme.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-758b\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":30091,"size_decoded":5110,"mime_type":"text/css","magic":"ASCII text, with very long lines (30091), with no line terminators","md5":"16719ff50c5282c0f014526fd7e29013","sha1":"1e9ee2b9ec6fbfbc16739b4f5e2bb7f35ec9a717","sha256":"c487387d7e441b4cb0b138137ed47e4d97c0c971cfb4f2d8946184003f08cd22","sha512":"6f9a1a330aa7421c5c0522a9f853d517d946c94d6a6c7fa65da8d11a557914aabd557a0aab6fe955a13b2f4a48c57129532cc2a310d03f948e87a10365b6a8cc","ssdeep":"384:1qyB8UlIYj6S/u//qBpNOD90B4ToIhatAVYV9Sxh6Oo:tMmFu//+pM9UIhatAVMSxh6Oo","tlshash":"cbd28c223761210d207b953da7cee0592335e82de3957ed9e78c793be3691a31721b2c","first_seen":"2023-04-08T23:38:06Z","last_seen":"2026-08-09T17:33:17.746434Z","times_seen":958,"resource_available":false,"data":"Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOjhweDtwYWRkaW5nOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2hlYWRlcl9pdGVtLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpbGV1cGxvYWRfcnVsZXMsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggbGFiZWx7Zm9udC1zaXplOjE1cHg7cGFkZGluZy10b3A6NXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUubGVmdF9sYWJlbCBmaWVsZHNldC5nZmllbGQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5yaWdodF9sYWJlbCBmaWVsZHNldC5nZmllbGR7cGFkZGluZzoxNnB4IDE2cHggMTZweCAzMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5sZWZ0X2xhYmVsIGZpZWxkc2V0LmdmaWVsZCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUubGVmdF9sYWJlbCBmaWVsZHNldC5nZmllbGQgLmdpbnB1dF9jb250YWluZXI6bm90KC5naW5wdXRfY29udGFpbmVyX3RpbWUpLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUucmlnaHRfbGFiZWwgZmllbGRzZXQuZ2ZpZWxkIC5nZmllbGRfZGVzY3JpcHRpb24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5yaWdodF9sYWJlbCBmaWVsZHNldC5nZmllbGQgLmdpbnB1dF9jb250YWluZXI6bm90KC5naW5wdXRfY29udGFpbmVyX3RpbWUpe3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5sZWZ0X2xhYmVsIGxlZ2VuZC5nZmllbGRfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5yaWdodF9sYWJlbCBsZWdlbmQuZ2ZpZWxkX2xhYmVse2xlZnQ6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lLmxlZnRfbGFiZWwgLmdmaWVsZDpub3QoLmdzZWN0aW9uKTpub3QoLmdmaWVsZF9odG1sKTpub3QoZmllbGRzZXQpLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUucmlnaHRfbGFiZWwgLmdmaWVsZDpub3QoLmdzZWN0aW9uKTpub3QoLmdmaWVsZF9odG1sKTpub3QoZmllbGRzZXQpe2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUubGVmdF9sYWJlbCAuZ2ZpZWxkX2h0bWwuZ2ZpZWxkX2h0bWxfZm9ybWF0dGVkLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUucmlnaHRfbGFiZWwgLmdmaWVsZF9odG1sLmdmaWVsZF9odG1sX2Zvcm1hdHRlZHtkaXNwbGF5OmZsZXh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZS5sZWZ0X2xhYmVsIC5nZmllbGQuZ2ZpZWxkX2h0bWw6bm90KC5nZmllbGRfaHRtbF9mb3JtYXR0ZWQpIC5nZi1odG1sLWNvbnRhaW5lciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lLnJpZ2h0X2xhYmVsIC5nZmllbGQuZ2ZpZWxkX2h0bWw6bm90KC5nZmllbGRfaHRtbF9mb3JtYXR0ZWQpIC5nZi1odG1sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUucmlnaHRfbGFiZWwgbGVnZW5kLmdmaWVsZF9sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWU6bm90KC50b3BfbGFiZWwpIC5naW5wdXRfY29udGFpbmVyLmdpbnB1dF9zaW5nbGVfZW1haWx7bWFyZ2luLWxlZnQ6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9yc3tiYWNrZ3JvdW5kOiNmZmY5Zjk7Ym9yZGVyOjEuNXB4IHNvbGlkICNjMDJiMGE7Ym9yZGVyLXJhZGl1czo1cHg7Ym94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuMTEpLDAgMCA0cHggcmdiYSgxOCwyNSw5NywuMDQxKTttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tdG9wOjhweDtwYWRkaW5nOjE2cHggMTZweCAxNnB4IDQ4cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycz5oMntjb2xvcjojYzAyYjBhO2ZvbnQtc2l6ZToxMy4ycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE3LjZweDttYXJnaW46MCAwIDEycHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnM+aDI6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycz5oMiAuZ2Zvcm0taWNvbnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToyOHB4O2hlaWdodDoxMDAlO2xlZnQ6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycz5oMi5oaWRlX3N1bW1hcnl7bWFyZ2luOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnM+b2x7cGFkZGluZy1sZWZ0OjIwcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnM+b2wgYXtjb2xvcjojYzAyYjBhO2ZvbnQtc2l6ZToxMy4ycHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnM+b2wgbGl7Y29sb3I6I2MwMmIwYTtmb250LXNpemU6MTMuMnB4O2xpc3Qtc3R5bGUtdHlwZTpkaXNjIWltcG9ydGFudDttYXJnaW46MCAwIDhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycz5vbCBsaTpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXF1aXJlZHtjb2xvcjojYzAyYjBhO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMy4wMDhweDtwYWRkaW5nLWxlZnQ6LjEyNWVtfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXF1aXJlZCAuZ2ZpZWxkX3JlcXVpcmVkX2N1c3RvbSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVxdWlyZWQgLmdmaWVsZF9yZXF1aXJlZF90ZXh0e2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OjQwMH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9yZXF1aXJlZF9sZWdlbmQgLmdmaWVsZF9yZXF1aXJlZHtwYWRkaW5nLWxlZnQ6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC52YWxpZGF0aW9uX2Vycm9ye2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNjMDJiMGE7Ym9yZGVyLXRvcDoycHggc29saWQgI2MwMmIwYTtjb2xvcjojYzAyYjBhO2ZvbnQtc2l6ZToxZW07Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206MzJweDtwYWRkaW5nOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2Vycm9yIC5nZmllbGRfcmVwZWF0ZXJfY2VsbCBsYWJlbCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfZXJyb3IgbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2Vycm9yIGxlZ2VuZCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnZhbGlkYXRpb25fbWVzc2FnZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIFthcmlhLWludmFsaWQ9dHJ1ZV0rbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBsYWJlbCtbYXJpYS1pbnZhbGlkPXRydWVde2NvbG9yOiNjMDJiMGF9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC52YWxpZGF0aW9uX21lc3NhZ2V7YmFja2dyb3VuZDojZmZmOWY5O2JvcmRlcjoxcHggc29saWQgI2MwMmIwYTtmb250LXNpemU6MTQuOTkycHg7bWFyZ2luLXRvcDo4cHg7cGFkZGluZzoxMi45OTJweCAyNHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9lcnJvciBbYXJpYS1pbnZhbGlkPXRydWVde2JvcmRlcjoxcHggc29saWQgI2MwMmIwYX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9wcmV2aW91c19idXR0b24uYnV0dG9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3NhdmVfbGluay5idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNmI3MjgwO3RleHQtZGVjb3JhdGlvbjpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3ByZXZpb3VzX2J1dHRvbi5idXR0b24gc3ZnLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3NhdmVfbGluay5idXR0b24gc3Zne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo0cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBidXR0b24uYnV0dG9uOmRpc2FibGVke29wYWNpdHk6LjZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAjZmllbGRfc3VibWl0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlcntkaXNwbGF5OmZsZXh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAjZmllbGRfc3VibWl0IGlucHV0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciBpbnB1dHthbGlnbi1zZWxmOmZsZXgtZW5kfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgI2ZpZWxkX3N1Ym1pdCAuZ2Zvcm1faW1hZ2VfYnV0dG9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciAuZ2Zvcm1faW1hZ2VfYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2hlaWdodDphdXRvO3BhZGRpbmc6MDt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgI2ZpZWxkX3N1Ym1pdCAuZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciAuZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxse3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXh7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgd3JhcH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCBmaWVsZHNldCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCBzcGFue2ZsZXg6MX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCAuZ2lucHV0X2Z1bGx7ZmxleDowIDAgMTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCAuY2xlYXItbXVsdGl7ZGlzcGxheTpmbGV4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IGxhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IGxlZ2VuZHtkaXNwbGF5OmJsb2NrfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IGlucHV0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IHNlbGVjdHt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfYWRkcmVzc3ttYXJnaW4tbGVmdDotMSU7bWFyZ2luLXJpZ2h0Oi0xJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3Mgc3BhbntmbGV4OjAgMCA1MCU7cGFkZGluZy1sZWZ0Oi45ODA0JTtwYWRkaW5nLXJpZ2h0Oi45ODA0JX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9icm93c2VyX2llIC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3Mgc3Bhbjpub3QoLmdpbnB1dF9mdWxsKXtmbGV4OjAgMCA0OS4zJX1AbWVkaWEgKG1pbi13aWR0aDo2NDFweCl7Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIGZpZWxkc2V0Om5vdChbc3R5bGUqPSJkaXNwbGF5Om5vbmUiXSk6bm90KC5naW5wdXRfZnVsbCksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIHNwYW46bm90KFtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKTpub3QoLmdpbnB1dF9mdWxsKXtwYWRkaW5nLXJpZ2h0OjElfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4Om5vdCguZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzKSBmaWVsZHNldDpub3QoW3N0eWxlKj0iZGlzcGxheTpub25lIl0pOm5vdCguZ2lucHV0X2Z1bGwpfnNwYW46bm90KC5naW5wdXRfZnVsbCksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIHNwYW46bm90KFtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKTpub3QoLmdpbnB1dF9mdWxsKX5zcGFuOm5vdCguZ2lucHV0X2Z1bGwpe3BhZGRpbmctbGVmdDoxJTtwYWRkaW5nLXJpZ2h0OjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzIHNwYW46bm90KC5naW5wdXRfZnVsbCk6bm90KDpsYXN0LW9mLXR5cGUpOm5vdCg6bnRoLWxhc3Qtb2YtdHlwZSgyKSksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2Z1bGw6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206OHB4fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIGZpZWxkc2V0Om5vdChbc3R5bGUqPSJkaXNwbGF5Om5vbmUiXSk6bm90KC5naW5wdXRfZnVsbCksaHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleDpub3QoLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcykgc3Bhbjpub3QoW3N0eWxlKj0iZGlzcGxheTpub25lIl0pOm5vdCguZ2lucHV0X2Z1bGwpe3BhZGRpbmctbGVmdDoxJTtwYWRkaW5nLXJpZ2h0OjB9aHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleDpub3QoLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcykgZmllbGRzZXQ6bm90KFtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKTpub3QoLmdpbnB1dF9mdWxsKX5zcGFuOm5vdCguZ2lucHV0X2Z1bGwpLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIHNwYW46bm90KFtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKTpub3QoLmdpbnB1dF9mdWxsKX5zcGFuOm5vdCguZ2lucHV0X2Z1bGwpe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MSV9fUBtZWRpYSAobWF4LXdpZHRoOjY0MHB4KXsuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCBzcGFue2ZsZXg6MCAwIDEwMCU7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZy1sZWZ0OjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzIHNwYW57cGFkZGluZy1sZWZ0Oi45ODA0JX19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZGVzY3JpcHRpb24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdzZWN0aW9uX2Rlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmluc3RydWN0aW9ue2NsZWFyOmJvdGg7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTVweDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nLXRvcDoxM3B4O3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmRlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX2Rlc2NyaXB0aW9uX2Fib3ZlIC5nZmllbGRfZGVzY3JpcHRpb24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdzZWN0aW9uX2Rlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX2Rlc2NyaXB0aW9uX2Fib3ZlIC5pbnN0cnVjdGlvbntwYWRkaW5nLWJvdHRvbToxNnB4O3BhZGRpbmctdG9wOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZmllbGRfc3VibGFiZWxfYWJvdmUgLmRlc2NyaXB0aW9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5nZmllbGRfZGVzY3JpcHRpb24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZmllbGRfc3VibGFiZWxfYWJvdmUgLmdzZWN0aW9uX2Rlc2NyaXB0aW9ue21hcmdpbi10b3A6OS4wMDhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC50b3BfbGFiZWwgLmdzZWN0aW9uX2Rlc2NyaXB0aW9ue21hcmdpbi1ib3R0b206OS4wMDhweDt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IC5nZmllbGRfY29uc2VudF9kZXNjcmlwdGlvbiwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfY29uc2VudF9kZXNjcmlwdGlvbntib3JkZXI6MXB4IHNvbGlkICNkZGQ7Zm9udC1zaXplOjEzLjAwOHB4O21hcmdpbi10b3A6MTIuOHB4O21heC1oZWlnaHQ6MjQwcHg7b3ZlcmZsb3cteTpzY3JvbGw7cGFkZGluZzo2LjRweCA4cHg7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfY3JlZGl0Y2FyZF93YXJuaW5ne2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjIzLDIyNCwuMjUpO2JvcmRlci1ib3R0b206NHB4IHNvbGlkICNjMDJiMGE7Ym9yZGVyLXRvcDoycHggc29saWQgI2MwMmIwYTtwYWRkaW5nOjE2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZyAuZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdle2NvbG9yOiNjMDJiMGE7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7bWluLWhlaWdodDozMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmcgLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmdfbWVzc2FnZSBzcGFue2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlpMHhNRFkzSURJNE5qVWdNalFnTXpJaUlITjBlV3hsUFNKbGJtRmliR1V0WW1GamEyZHliM1Z1WkRwdVpYY2dMVEV3TmpjZ01qZzJOU0F5TkNBek1pSWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krUEhCaGRHZ2daRDBpVFMweE1EVXpJREk0TmpWakxUVXVOU0F3TFRFd0lEUXVOUzB4TUNBeE1HZzBZekF0TXk0eklESXVOeTAySURZdE5uTTJJREl1TnlBMklEWjJNbWd0TWpCMk1UUmpNQ0F6TGpNZ01pNDNJRFlnTmlBMmFERXlZek11TXlBd0lEWXRNaTQzSURZdE5uWXRNVFpqTUMwMUxqVXROQzQxTFRFd0xURXdMVEV3ZW0wMElESTRhQzB4TW1NdE1TNHhJREF0TWkwdU9TMHlMVEoyTFRFd2FERTJkakV3WXpBZ01TNHhMUzQ1SURJdE1pQXllbTB0TkMwMll6QWdNUzR4TFM0NUlESXRNaUF5Y3kweUxTNDVMVEl0TWlBdU9TMHlJREl0TWlBeUlDNDVJRElnTW5vaUlITjBlV3hsUFNKbWFXeHNPaU0zT1RBd01EQWlMejQ4TDNOMlp6ND0pO2JhY2tncm91bmQtcG9zaXRpb246MCAzLjJweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjI0cHggMTZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzAyYjBhO2Rpc3BsYXk6YmxvY2s7bGV0dGVyLXNwYWNpbmc6LjFwdDttYXJnaW4tYm90dG9tOjE2cHg7cGFkZGluZzowIDAgMTZweCAyNHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY2FyZGV4dHJhc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9jYXJkaW5mb19yaWdodCBpbnB1dHttYXgtd2lkdGg6MTEycHg7d2lkdGg6MzAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkX2V4cGlyYXRpb25fY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY2FyZF9leHBpcmF0aW9uX21vbnRoe2ZsZXg6MTttYXJnaW4tcmlnaHQ6MTZweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY2FyZF9leHBpcmF0aW9uX3llYXJ7ZmxleDoxfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkaW5mb19sZWZ0IGxhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkaW5mb19sZWZ0IGxlZ2VuZCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY2FyZGluZm9fcmlnaHQgbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NhcmRpbmZvX3JpZ2h0IGxlZ2VuZHtmbGV4OjEgMSAxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgZmllbGRzZXQuZ2lucHV0X2NhcmRpbmZvX2xlZnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGZpZWxkc2V0LmdpbnB1dF9jYXJkaW5mb19sZWZ0IGxlZ2VuZHtmbG9hdDpsZWZ0O3BhZGRpbmctdG9wOjVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5maWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZHNldC5naW5wdXRfY2FyZGluZm9fbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkX2V4cGlyYXRpb25fbW9udGh7bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2NhcmRfaWNvbntmbG9hdDpyaWdodH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmcgLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmdfbWVzc2FnZSBzcGFue2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMy4ycHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToyNHB4IDE2cHg7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjE2cHg7cGFkZGluZzowIDI0cHggMTZweCAwfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBmaWVsZHNldC5naW5wdXRfY2FyZGluZm9fbGVmdHtkaXNwbGF5OmZsZXh9QG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpey5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkX2V4cGlyYXRpb257ZmxleDpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jYXJkX2V4cGlyYXRpb25fbW9udGh7bWFyZ2luLWJvdHRvbTo4cHh9fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfZGF0ZSsuZ2lucHV0X2NvbnRhaW5lcl9kYXRle21hcmdpbi1sZWZ0OjIlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfZGF0ZVtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKy5naW5wdXRfY29udGFpbmVyX2RhdGV7bWFyZ2luLWxlZnQ6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2RhdGUgbGFiZWx7ZGlzcGxheTpibG9ja31odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfZGF0ZSsuZ2lucHV0X2NvbnRhaW5lcl9kYXRle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjE2cHh9aHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2RhdGVbc3R5bGUqPSJkaXNwbGF5Om5vbmUiXSsuZ2lucHV0X2NvbnRhaW5lcl9kYXRle21hcmdpbi1yaWdodDowfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2QwZDFkMztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgLjA2MjVyZW0gLjI1cmVtIHJnYmEoMCwwLDAsLjExKSwwIDAgLjI1cmVtIHJnYmEoMTgsMjUsOTcsLjA0MSk7Y29sb3I6IzYwNzM4Mjtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC13ZWlnaHQtbWVkaXVtKTttYXJnaW4tdG9wOjVweDtwYWRkaW5nOjE4cHggMTVweDt3aWR0aDphdXRvfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgdGFibGUsLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciB0ZCwuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIHRoLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgdGhlYWQsLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciB0cntiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjB9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciB0ZCwuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIHRoe3BhZGRpbmc6NXB4O3RleHQtc2hhZG93Om5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZX0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlcntib3JkZXI6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgMCA1cHg7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItbmV4dCwuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciAudWktZGF0ZXBpY2tlci1wcmV2ey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO3NwZWFrOm5ldmVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjA7Y29sb3I6IzYwNzM4MjtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7Zm9udC1mYW1pbHk6Z2Zvcm0taWNvbnMtdGhlbWUhaW1wb3J0YW50O2ZvbnQtc2l6ZToyNHB4O2hlaWdodDozMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWRlY29yYXRpb246bm9uZTt0b3A6LTJweDt0cmFuc2l0aW9uOmNvbG9yIC4zcyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCxib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0O3dpZHRoOjMwcHh9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpmb2N1cywuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIC51aS1kYXRlcGlja2VyLXByZXY6Zm9jdXMsLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItcHJldjpob3Zlcntjb2xvcjojMmY0MDU0fS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIC51aS1kYXRlcGlja2VyLW5leHQgLnVpLWljb24sLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItcHJldiAudWktaWNvbntkaXNwbGF5Om5vbmV9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmUsLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItcHJldjpiZWZvcmV7Ym9yZGVyOjA7aGVpZ2h0OmF1dG87cG9zaXRpb246c3RhdGljO3RyYW5zZm9ybTpub25lO3dpZHRoOmF1dG99LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItcHJldntsZWZ0OjB9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgLnVpLWRhdGVwaWNrZXItcHJldjpiZWZvcmV7Y29udGVudDoiXGU5MTAifS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIC51aS1kYXRlcGlja2VyLW5leHR7cmlnaHQ6MH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZXtjb250ZW50OiJcZTkxYiJ9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vLi4vLi4vaW1hZ2VzL3RoZW1lL2Rvd24tYXJyb3cuc3ZnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgNTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzU4NWU2YTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1tZWRpdW0pO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MDtwYWRkaW5nOjAgMjJweCAwIDA7d2lkdGg6YXV0b30uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aHttYXJnaW4tcmlnaHQ6MjBweDstbW96LXRleHQtYWxpZ24tbGFzdDpyaWdodDt0ZXh0LWFsaWduLWxhc3Q6cmlnaHR9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciBhLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgc3Bhbntmb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1ub3JtYWwpfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGggc3BhbnthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzJmNDA1NDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtd2VpZ2h0LW1lZGl1bSk7aGVpZ2h0OjQwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo0MHB4fS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGR7Zm9udC1zaXplOi44MTI1cmVtO2hlaWdodDo1MHB4O3dpZHRoOjUwcHh9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtZGVmYXVsdHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxMDAlO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojMmY0MDU0O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQ7d2lkdGg6NDBweH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1kZWZhdWx0OmZvY3VzLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLXN0YXRlLWRlZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZDpub25lO2JvcmRlci1jb2xvcjojNjA3MzgyO291dGxpbmU6bm9uZX0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1kZWZhdWx0OmFjdGl2ZXtiYWNrZ3JvdW5kOiNmMmYzZjU7Ym9yZGVyLWNvbG9yOiM2MDczODJ9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSAudWktc3RhdGUtZGVmYXVsdHtiYWNrZ3JvdW5kOiM2MDczODI7Ym9yZGVyLWNvbG9yOiM2MDczODI7Ym94LXNoYWRvdzowIC4xMjVyZW0gLjEyNXJlbSByZ2JhKDU4LDU4LDg3LC4wNik7Y29sb3I6I2ZmZn0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IC51aS1zdGF0ZS1kZWZhdWx0OmZvY3VzLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkgLnVpLXN0YXRlLWRlZmF1bHQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2MDczODJ9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtZGlzYWJsZWR7YmFja2dyb3VuZDpub25lfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zdGF0ZS1kZWZhdWx0e2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOiNmMmYzZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDMyLDMyLDQ2LC4wNzkpO2JvcmRlci1yYWRpdXM6MTAwJTtib3gtc2hhZG93OjAgLjEyNXJlbSAuMTI1cmVtIHJnYmEoNTgsNTgsODcsLjA2KTtjb2xvcjojNjg2ZTc3O2N1cnNvcjp0ZXh0O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3dpZHRoOjQwcHh9aHRtbFtkaXI9cnRsXSAjdWktZGF0ZXBpY2tlci1kaXYuZ2Zvcm0tdGhlbWUtZGF0ZXBpY2tlcltzdHlsZV17cmlnaHQ6YXV0byFpbXBvcnRhbnR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3BhZ2VfZm9vdGVye21hcmdpbjo2cHggMCAwO3BhZGRpbmc6MTZweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3Rlci5sZWZ0X2xhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3Rlci5yaWdodF9sYWJlbCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9wYWdlX2Zvb3Rlci5sZWZ0X2xhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3BhZ2VfZm9vdGVyLnJpZ2h0X2xhYmVse3BhZGRpbmc6MTZweCAwIDEwcHggMzAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciBidXR0b24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIGlucHV0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3BhZ2VfZm9vdGVyIGJ1dHRvbiwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9wYWdlX2Zvb3RlciBpbnB1dHttYXJnaW4tYm90dG9tOjhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgYnV0dG9uLmJ1dHRvbjpkaXNhYmxlZCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgaW5wdXQuYnV0dG9uOmRpc2FibGVkLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3BhZ2VfZm9vdGVyIGJ1dHRvbi5idXR0b246ZGlzYWJsZWQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fcGFnZV9mb290ZXIgaW5wdXQuYnV0dG9uOmRpc2FibGVke29wYWNpdHk6LjZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIGJ1dHRvbitpbnB1dCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgaW5wdXQrYnV0dG9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciBpbnB1dCtpbnB1dCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9wYWdlX2Zvb3RlciBidXR0b24raW5wdXQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fcGFnZV9mb290ZXIgaW5wdXQrYnV0dG9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3BhZ2VfZm9vdGVyIGlucHV0K2lucHV0e21hcmdpbi1sZWZ0OjhweH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgYnV0dG9uK2lucHV0LGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dCtidXR0b24saHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0K2lucHV0e21hcmdpbi1yaWdodDo4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2NoZWNrYm94IGxhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yYWRpbyBsYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfY2hlY2tib3ggYnV0dG9uLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9jaGVja2JveCBpbnB1dFt0eXBlPXRleHRdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yYWRpbyBidXR0b24sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JhZGlvIGlucHV0W3R5cGU9dGV4dF17bWFyZ2luLXRvcDoxNnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC1jaG9pY2UtaW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDowO3RvcDowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQtY2hvaWNlLWlucHV0K2xhYmVse21hcmdpbi1ib3R0b206MDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMzJweCk7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC1jaG9pY2UtaW5wdXQ6ZGlzYWJsZWQrbGFiZWx7Y29sb3I6Izc1NzU3NX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9bnVtYmVyXXtkaXNwbGF5OmlubGluZS1ibG9ja30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9Y29sb3JdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1kYXRlXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1kYXRldGltZV0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPWVtYWlsXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9bW9udGhdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1udW1iZXJdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1wYXNzd29yZF0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXNlYXJjaF0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRlbF0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRleHRdLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT10aW1lXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9dXJsXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0W3R5cGU9d2Vla10sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBzZWxlY3QsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSB0ZXh0YXJlYXtmb250LXNpemU6MTVweDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowO3BhZGRpbmc6OHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItbXVsdGksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3Byb2R1Y3RfcHJpY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3Byb2R1Y3RfcHJpY2VfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3F1YW50aXR5X2xhYmVse2ZvbnQtc2l6ZToxNXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jaG9pY2Vze3BhZGRpbmc6OHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfZGF0ZXthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2RhdGUgaW5wdXR7d2lkdGg6YXV0b30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2RhdGUgLmRhdGVwaWNrZXJfd2l0aF9pY29uLmxhcmdle3dpZHRoOmNhbGMoMTAwJSAtIDQ4cHgpfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfZGF0ZSBpbWcudWktZGF0ZXBpY2tlci10cmlnZ2Vye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6MTIuOHB4O21heC1oZWlnaHQ6MjUuNnB4O21heC13aWR0aDoyNS42cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9jb250YWluZXJfZGF0ZXtmbGV4LWJhc2lzOm1pbi1jb250ZW50O2ZsZXgtZmxvdzpyb3cgd3JhcDttYXgtd2lkdGg6MzAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IC5naW5wdXRfY29udGFpbmVyX2RhdGUgaW5wdXQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9jb250YWluZXJfZGF0ZSBzZWxlY3R7bWluLXdpZHRoOjg0cHg7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfY2hhaW5lZHNlbGVjdC5ob3Jpem9udGFsIHNlbGVjdHttaW4td2lkdGg6MTAwcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fc2hvd19wYXNzd29yZHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9zaG93X3Bhc3N3b3JkOmZvY3VzLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX3Nob3dfcGFzc3dvcmQ6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfY29uc2VudF9kZXNjcmlwdGlvbntib3JkZXI6MXB4IHNvbGlkICNkZGQ7Zm9udC1zaXplOi44ZW07bWFyZ2luLXRvcDo4cHg7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdy15OnNjcm9sbDtwYWRkaW5nOjhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgLmdpbnB1dF9xdWFudGl0eXt3aWR0aDphdXRvfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9kYXRlIGltZy51aS1kYXRlcGlja2VyLXRyaWdnZXJ7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MTIuOHB4O29yZGVyOjF9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ3NlY3Rpb257Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYztwYWRkaW5nOjAgMTZweCA4cHggMH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdzZWN0aW9ue3BhZGRpbmc6MCAwIDhweCAxNnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3RpdGxle2NvbG9yOiM3Njc2NzY7Zm9udC1zaXplOjEyLjk5MnB4O2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MCAwIDQuOHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFye2JhY2tncm91bmQ6I2U4ZThlODtib3JkZXItcmFkaXVzOjEwLjVweDttYXJnaW4tYm90dG9tOjE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZXtib3JkZXItcmFkaXVzOjEwLjVweDtoZWlnaHQ6MjAuOTkycHg7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZTpub3QoLnBlcmNlbnRiYXJfMTAwKXtib3JkZXItcmFkaXVzOjEwLjVweCAwIDAgMTAuNXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3BlcmNlbnRhZ2Ugc3BhbntkaXNwbGF5OmJsb2NrO2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjIxcHg7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDo4cHg7bWluLXdpZHRoOjJlbTt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3BlcmNlbnRhZ2UucGVyY2VudGJhcl8wIHNwYW57Y29sb3I6Izk1OTU5NTtmbG9hdDpub25lO21hcmdpbi1sZWZ0OjkuNnB4O3RleHQtc2hhZG93Om5vbmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfYmx1ZXtiYWNrZ3JvdW5kOiNkMmQ2ZGN9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZS5wZXJjZW50YmFyX2JsdWV7YmFja2dyb3VuZC1jb2xvcjojMWU3YWM0O2NvbG9yOiNmZmZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfZ3JheXtiYWNrZ3JvdW5kOiNkMmQ2ZGN9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZS5wZXJjZW50YmFyX2dyYXl7YmFja2dyb3VuZC1jb2xvcjojNmI3MjgwO2NvbG9yOiNmZmZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfZ3JlZW57YmFja2dyb3VuZDojZThlOGU4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3BlcmNlbnRhZ2UucGVyY2VudGJhcl9ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiNhYWMxMzg7Y29sb3I6I2ZmZn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9wcm9ncmVzc2Jhcl9vcmFuZ2V7YmFja2dyb3VuZDojZThlYWVjfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3BlcmNlbnRhZ2UucGVyY2VudGJhcl9vcmFuZ2V7YmFja2dyb3VuZC1jb2xvcjojZmY1ZDM4O2NvbG9yOiNmZmZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcmVke2JhY2tncm91bmQ6I2U4ZWFlY30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9wcm9ncmVzc2Jhcl9wZXJjZW50YWdlLnBlcmNlbnRiYXJfcmVke2JhY2tncm91bmQtY29sb3I6I2VjMWUzMTtjb2xvcjojZmZmfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX3NwcmluZ3tiYWNrZ3JvdW5kOiNkMmQ2ZGN9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZS5wZXJjZW50YmFyX3NwcmluZ3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsIzljZDc5MCwjNzZkN2RiKTtjb2xvcjojZmZmfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3Byb2dyZXNzYmFyX2JsdWVze2JhY2tncm91bmQ6I2QyZDZkY30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9wcm9ncmVzc2Jhcl9wZXJjZW50YWdlLnBlcmNlbnRiYXJfYmx1ZXN7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCMwMGMyZmYsIzc4MzhlMik7Y29sb3I6I2ZmZn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9wcm9ncmVzc2Jhcl9yYWluYm93e2JhY2tncm91bmQ6I2QyZDZkY30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9wcm9ncmVzc2Jhcl9wZXJjZW50YWdlLnBlcmNlbnRiYXJfcmFpbmJvd3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsIzFkYmVlYSwjY2Q2YWQ2IDUwJSwjZjM1MTYwKTtjb2xvcjojZmZmfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfcHJvZ3Jlc3NiYXJfcGVyY2VudGFnZTpub3QoLnBlcmNlbnRiYXJfMTAwKXtib3JkZXItcmFkaXVzOjAgMTAuNXB4IDEwLjVweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3BhZ2Vfc3RlcHN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTdlYjttYXJnaW4tYm90dG9tOjE2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc3RlcHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46OHB4IDMycHggOHB4IDB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc3RlcF9sYWJlbCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zdGVwX251bWJlcntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3N0ZXBfbnVtYmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjJweCBzb2xpZCAjY2ZkM2Q5O2JvcmRlci1yYWRpdXM6MjBweDtjb2xvcjojNTg1ZTZhO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6NDBweDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDo0MHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3N0ZXBfYWN0aXZlIC5nZl9zdGVwX251bWJlcntiYWNrZ3JvdW5kOiNjZmQzZDk7Y29sb3I6IzYwNzM4Mn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zdGVwX2NvbXBsZXRlZCAuZ2Zfc3RlcF9udW1iZXJ7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc3RlcF9jb21wbGV0ZWQgLmdmX3N0ZXBfbnVtYmVyOmJlZm9yZXtiYWNrZ3JvdW5kOiM2MDczODI7Ym9yZGVyOjJweCBzb2xpZCAjNjA3MzgyO2JvcmRlci1yYWRpdXM6MjBweDtjb250ZW50OiIiO2Rpc3BsYXk6dGFibGUtY2VsbDtoZWlnaHQ6NDBweDtsZWZ0Oi0ycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7d2lkdGg6NDBweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zdGVwX2NvbXBsZXRlZCAuZ2Zfc3RlcF9udW1iZXI6YWZ0ZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Y29udGVudDoiXGU5MTciO2Rpc3BsYXk6ZmxleDtmb250LWZhbWlseTpnZm9ybS1pY29ucy10aGVtZTtmb250LXNpemU6MjRweDtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6NX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zdGVwX2xhYmVse2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE2cHg7cGFkZGluZy1sZWZ0OjE2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc3RlcF9oaWRkZW57ZGlzcGxheTpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9wcm9kdWN0X3ByaWNlX3dyYXBwZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3Byb2R1Y3RfcHJpY2Vfd3JhcHBlciBpbnB1dDotbW96LXJlYWQtb25seXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9wcm9kdWN0X3ByaWNlX3dyYXBwZXIgaW5wdXQ6cmVhZC1vbmx5e2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3Byb2R1Y3RfcHJpY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3NoaXBwaW5nX3ByaWNle2NvbG9yOiM5MDB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X3RvdGFse2NvbG9yOiMwNjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2NlbGx7bWFyZ2luLXRvcDo4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2NlbGwgbGFiZWx7Y29sb3I6IzliOWE5YTtmb250LXNpemU6MTIuOHB4O2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nLXRvcDo4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2l0ZW1zIC5nZmllbGRfcmVwZWF0ZXJfY2VsbDpub3QoOmZpcnN0LWNoaWxkKXtwYWRkaW5nLXRvcDo4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX3dyYXBwZXIgaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCAjYzVjNmM1O2JvcmRlci1yYWRpdXM6NHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXBlYXRlcl9jZWxsPi5nZmllbGRfcmVwZWF0ZXJfd3JhcHBlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjAyKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlO2JvcmRlci1sZWZ0OjhweCBzb2xpZCAjZjFmMWYxO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxcHggMXB4IDAgcmdiYSgwLDAsMCwuMDYpLDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsLjA2KSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4wNik7cGFkZGluZzoxMHB4IDIwcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2J1dHRvbnN7cGFkZGluZy10b3A6MTZweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAuYWRkX3JlcGVhdGVyX2l0ZW1fcGx1czpob3ZlciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAuYWRkX3JlcGVhdGVyX2l0ZW1fdGV4dDpob3ZlciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAucmVtb3ZlX3JlcGVhdGVyX2l0ZW1fbWludXM6aG92ZXIsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2J1dHRvbnMgLnJlbW92ZV9yZXBlYXRlcl9pdGVtX3RleHQ6aG92ZXJ7YmFja2dyb3VuZDojZmFmYWZhO2JvcmRlcjoxcHggc29saWQgIzc1NzU3NTtjb2xvcjojMzc0NzUwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zIC5hZGRfcmVwZWF0ZXJfaXRlbV9wbHVzOmZvY3VzLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zIC5hZGRfcmVwZWF0ZXJfaXRlbV90ZXh0OmZvY3VzLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zIC5yZW1vdmVfcmVwZWF0ZXJfaXRlbV9taW51czpmb2N1cywuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAucmVtb3ZlX3JlcGVhdGVyX2l0ZW1fdGV4dDpmb2N1c3tvdXRsaW5lOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2J1dHRvbnMgLmFkZF9yZXBlYXRlcl9pdGVtX3RleHQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3JlcGVhdGVyX2J1dHRvbnMgLnJlbW92ZV9yZXBlYXRlcl9pdGVtX3RleHR7YmFja2dyb3VuZDpoc2xhKDAsMCUsOTUlLC41KTtib3JkZXI6MXB4IHNvbGlkIGhzbGEoMCwwJSw0NiUsLjQpO2JvcmRlci1yYWRpdXM6MjBweDtjb2xvcjojNzU3NTc1O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjQwMDtoZWlnaHQ6MzJweDttYXJnaW4tYm90dG9tOjhweDttYXJnaW4tcmlnaHQ6OHB4O21pbi13aWR0aDoxMDBweDt0cmFuc2l0aW9uOmFsbCAuM3MgY3ViaWMtYmV6aWVyKC42NywuMTcsLjQsLjgzKX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAuYWRkX3JlcGVhdGVyX2l0ZW1fcGx1cywuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmVwZWF0ZXJfYnV0dG9ucyAucmVtb3ZlX3JlcGVhdGVyX2l0ZW1fbWludXN7YmFja2dyb3VuZDpoc2xhKDAsMCUsOTUlLC41KTtib3JkZXI6MXB4IHNvbGlkIGhzbGEoMCwwJSw0NiUsLjQpO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOiM3NTc1NzU7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NzAwO2hlaWdodDoyNHB4O21hcmdpbjoxMHB4IDVweCAwO3BhZGRpbmc6MDt0cmFuc2l0aW9uOmFsbCAuM3MgY3ViaWMtYmV6aWVyKC42NywuMTcsLjQsLjgzKTt3aWR0aDoyNHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXBlYXRlciAuZ2ZpZWxkX3JlcGVhdGVyX2l0ZW1zIC5nZmllbGRfcmVwZWF0ZXJfaXRlbTpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNlMGUwZTY7bWFyZ2luLWJvdHRvbToyMHB4O21hcmdpbi1yaWdodDo4cHg7cGFkZGluZy1ib3R0b206MjBweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfdGltZV9ob3VyIGxhYmVsLmhvdXJfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3RpbWVfbWludXRlIGxhYmVsLm1pbnV0ZV9sYWJlbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNXB4O21hcmdpbjowO3BhZGRpbmctdG9wOjVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX3RpbWV7ZmxleC1iYXNpczptaW4tY29udGVudDttYXgtd2lkdGg6NjRweDttaW4td2lkdGg6NjRweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX3RpbWUgaW5wdXR7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttaW4td2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfdGltZV9taW51dGV7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuaG91cl9taW51dGVfY29sb257bGluZS1oZWlnaHQ6MjtwYWRkaW5nOjAgOHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5ob3VyX21pbnV0ZV9jb2xvbnthbGlnbi1zZWxmOmZsZXgtZW5kfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF90aW1lX2FtcG17YWxpZ24taXRlbXM6ZmxleC1lbmQ7ZGlzcGxheTpmbGV4O21hcmdpbi1sZWZ0OjE2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3RpbWVfYW1wbS5iZWxvdywuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5ob3VyX21pbnV0ZV9jb2xvbi5iZWxvd3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3RpbWVfYW1wbXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxNnB4fQ=="}},"time_used":485,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":485,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/Union-1.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.037Z","timestamp":1785145405037,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/Union-1.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 3589\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-e05\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":3589,"size_decoded":3841,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"92e5cef23511cab99a28f39307866931","sha1":"2f821284b15f2441ae82a81fe14d44cb9be87581","sha256":"1d85fe374b84a6acb5d01eec2030ef32cf3871ed9cbe5da6ec763bbab6d9ad7c","sha512":"15fce8a80de1b8e7f27e76e1b0f6111ecb7116969a294483e20477216d6aaf732038627ec0280604b4cdb8c15d65e6357a094e2d80af0b261f469368b0ceeb42","ssdeep":"","tlshash":"507186c85221e7c7194c874fbf428559007b5debb6c75370d28a6f2dd48eca81909aa3","first_seen":"2026-05-20T00:20:36.603921Z","last_seen":"2026-07-27T14:04:41.096336Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1NDkiIGhlaWdodD0iNzU0IiB2aWV3Qm94PSIwIDAgNTQ5IDc1NCIgZmlsbD0ibm9uZSI+PHBhdGggb3BhY2l0eT0iMC4zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwNy45NTIgNjAuMzU1TDMxNC4yNDEgNTQuMTU0NEwzNDEuNTQ5IDI3LjA1NzFMMzU1LjE4MyAxMy41Mjg1TDM2OC44MTcgMEwzNjguODE3IDAuMDAwMjQ1OTM3TDM4Mi40OTIgMTMuNTY4OEwzOTYuMTI1IDI3LjA5NzNMNDU1LjY0OCA4Ni4xNTk5TDQ1Ny41OTkgODguMDk2NUM0NTYuNjg2IDg4LjA5NjUgNDU1Ljc4MyA4OC4xNDA5IDQ1NC44OTIgODguMjI3N0M0NDEuMDcxIDg5LjU3NCA0MzAuMjkxIDEwMS4xMiA0MzAuMjkxIDExNS4xNTRMNDMwLjA4OCAzODMuODcySDMwNy45NTJMMzA3LjM4NCAxMTUuMTEzQzMwNy4zNDUgMTAxLjA1NyAyOTYuNTI4IDg5LjUzMTkgMjgyLjcwOCA4OC4yMjA4QzI4MS44NDIgODguMTM4NiAyODAuOTY0IDg4LjA5NjUgMjgwLjA3NSA4OC4wOTY1SDI3OS45OTRMMjgwLjA3NSA4OC4wMTZMMjgxLjk1MSA4Ni4xNTUyTDMwNy45NTIgNjAuMzU1Wk0zNTYuNTkyIDE0Ljk0ODJMMzY4LjgxNyAyLjgxNzUyTDQyOC4yOTEgMTE1LjE1NEw0MjguMDkgMzgxLjg3MkgzMDkuOTQ3TDMwOS4zODQgMTE1LjEwOVYxMTUuMTA4QzMwOS4zNDQgMTAwLjU1MyAyOTguNTU2IDg4LjU0NjEgMjg0LjUxNSA4Ni40MjgyTDMwOS4zNTYgNjEuNzc5MkwzMDkuMzYgNjEuNzc0N0wzMTUuNjQ1IDU1LjU3ODdMMzE1LjY1IDU1LjU3NDFMMzQyLjk1OCAyOC40NzY4TDM1Ni41OTIgMTQuOTQ4MlpNMzY4LjgxNyAyLjgxNzUyTDQyOC4yOTEgMTE1LjE1MkM0MjguMjkyIDEwMC42MTYgNDM5LjA0NyA4OC41ODggNDUzLjA4OSA4Ni40Mzg0TDM5NC43MTcgMjguNTE3TDM4MS4wODMgMTQuOTg4NUwzNjguODE3IDIuODE3NTJaTTI2OS4zMjIgMTI1Ljg2MkwyNjcuMzYyIDEyNy44MDZMMjYzLjQzOCAxMzEuN0wyMzAuNzc0IDE2NC4xMTJMODguMTg2NSAzMDUuNTk4TDYyLjA4MjIgMzMxLjUwMUw2MC4wNjY3IDMzMy41MDFINjIuOTA2MUgxMTYuOTE1QzEzMS45NjkgMzMzLjUwMSAxNDQuMjIzIDM0NS42MiAxNDQuMjIzIDM2MC41OThWMzgxLjk1MVYzODMuOTUxSDE0Ni4yMjNIMjY3LjM2MkgyNjkuMzYyVjM4MS45NTFWMTI4LjYzOVYxMjUuODYyTDI2OS40MDMgMTI1Ljc4MUwyNjkuMzM2IDEyNS44NDhMMjY5LjMyMiAxMjUuODYyWk0yNjQuODQ3IDEzMy4xMkwyNjcuMzYyIDEzMC42MjRWMzgxLjk1MUgxNDYuMjIzVjM2MC41OThDMTQ2LjIyMyAzNDQuNDk5IDEzMy4wNTcgMzMxLjUwMSAxMTYuOTE1IDMzMS41MDFINjQuOTIxN0w4OS41OTUyIDMwNy4wMThMMjMyLjE4MiAxNjUuNTMyTDI2NC44NDcgMTMzLjEyWk00NzAuNTU1IDM4NC4wNzVINDY4LjU1NVYzODIuMDc1VjEyOC43NjNWMTI1Ljk4NlYxMjUuOTQ1TDQ2OC41OTYgMTI1Ljk4Nkw0NzAuNTU1IDEyNy45M0w0NzQuNTIgMTMxLjg2NEw1MDcuMTg0IDE2NC4yNzZMNjQ5LjczMSAzMDUuNzIyTDY3NS44MzUgMzMxLjYyNEw2NzcuODUxIDMzMy42MjRINjc1LjAxMUg2MjEuMDAyQzYwNS45MDggMzMzLjYyNCA1OTMuNjk0IDM0NS43ODQgNTkzLjY5NCAzNjAuNzIyVjM4Mi4wNzVWMzg0LjA3NUg1OTEuNjk0SDQ3MC41NTVaTTU5MS42OTQgMzgyLjA3NVYzNjAuNzIyQzU5MS42OTQgMzQ0LjY2NyA2MDQuODE2IDMzMS42MjQgNjIxLjAwMiAzMzEuNjI0SDY3Mi45OTZMNjQ4LjMyMiAzMDcuMTQyTDUwNS43NzUgMTY1LjY5Nkw0NzMuMTExIDEzMy4yODRMNDcwLjU1NSAxMzAuNzQ3VjM4Mi4wNzVINTkxLjY5NFpNNzExLjIwMyA0NDcuODkxTDY0OS44OTEgNTA4LjY4OUw1NDkuMDY5IDYwOC43MzJMNTQ3LjA2OSA2MTAuNzE3VjYwNy44OTlWNTkyLjQ3N0M1NDcuMDY5IDU2Ni41MDggNTI1Ljg0NyA1NDUuNDUgNDk5LjY3NSA1NDUuNDVINDYwLjQwOUg0NTguNDA5VjU0Ny40NVY3NTEuMDc2Vjc1Mi44ODdMNDU3LjkyMiA3NTMuNDExTDQ1Ny4zOTQgNzUyLjg4N0w0NTYuNTAxIDc1Mi4wMDFMNDU2LjQwOSA3NTEuOTA5TDQzMC43NDMgNzI2LjQ0Mkw0MzAuNjEzIDcyNi4zMTNINDMwLjU3M0w0MzAuNjEzIDcyNi4yNkw0MzAuNjk1IDcyNi4xNTJMNDMwLjYxMyA3MjYuMDcyTDQzMC41NzMgNzI2LjAzMkwzNjkuMDU4IDY2NC45OTJIMzY5LjAxOEwzNjguOTM2IDY2NS4wMzJMMzA5LjM1NyA3MjQuMTEyTDMwOC4xOTMgNzI1LjI2N0wzMDcuMzgxIDcyNi4wNzJMMzA3LjM1MSA3MjYuMTAyTDMwNy4zNDEgNzI2LjExMkgzMDcuMzgxTDMwNy4zNzEgNzI2LjE0M0wzMDcuMzQxIDcyNi4yMzNMMzA1LjQ0NyA3MjguMTEyTDI4MS43ODkgNzUxLjU4N0wyODAuMjc2IDc1My4wODlMMjgwLjAzMyA3NTMuMzI5TDI4MC4wMzIgNzUzLjMzTDI4MC4wMzEgNzUzLjMyOUwyNzkuNzg5IDc1My4wODlWNzUzLjA4NVY3NTAuNzU0VjU0Ny40NVY1NDUuNDVIMjc3Ljc4OUgyMzguNTIyQzIxMi4zNSA1NDUuNDUgMTkxLjEyOCA1NjYuNTA4IDE5MS4xMjggNTkyLjQ3N1Y2MDguMTAxVjYxMC45MThMMTg5LjEyOCA2MDguOTM0TDg4LjQyODIgNTA5LjAxMUwyNi45MTM2IDQ0Ny45NzJMMi45NTk5IDQyNC4yMDNMMC45NDQzMzYgNDIyLjIwM0gzLjc4Mzc5SDczNC4yMTNINzM3LjA1TDczNS4wMzggNDI0LjIwM0w3MTEuMjAzIDQ0Ny44OTFaTTY0OC40ODIgNTA3LjI2OUw1NDkuMDY5IDYwNS45MTVWNTkyLjQ3N0M1NDkuMDY5IDU2NS4zODggNTI2LjkzNyA1NDMuNDUgNDk5LjY3NSA1NDMuNDVINDU4LjQwOUg0NTYuNDA5VjU0NS40NVY3NDkuMDkyTDQzMy4yNCA3MjYuMTAyTDQzMy4zNDQgNzI1Ljk2NEw0MzIuMTAzIDcyNC43MzNMMzcwLjQ2NyA2NjMuNTcyTDM2OS44ODIgNjYyLjk5MkgzNjkuMDU4SDM2OS4wMThIMzY4LjU0OUwzNjguMTI5IDY2My4yTDM2OC4wNDggNjYzLjI0TDM2Ny43NTggNjYzLjM4NEwzNjcuNTI4IDY2My42MTJMMzA2Ljc4NSA3MjMuODQ2TDMwNi43ODQgNzIzLjg0N0wzMDUuOTMyIDcyNC42OTJMMzAyLjQ4NiA3MjguMTEySDMwMi42MDdMMjgxLjc4OSA3NDguNzdWNTQ1LjQ1VjU0My40NUgyNzkuNzg5SDIzOC41MjJDMjExLjI2IDU0My40NSAxODkuMTI4IDU2NS4zODggMTg5LjEyOCA1OTIuNDc3VjYwNi4xMTZMODkuODM2OSA1MDcuNTkyTDI4LjMyMjMgNDQ2LjU1Mkw1Ljc5OTM2IDQyNC4yMDNINzMyLjIwMUw3MDkuNzk0IDQ0Ni40NzFMNzA5Ljc5MyA0NDYuNDczTDY0OC40ODMgNTA3LjI2OUw2NDguNDgyIDUwNy4yNjlaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjM4N18yODg0MikiPjwvcGF0aD48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjM4N18yODg0MiIgeDE9IjAuOTQ0MzMiIHkxPSI3NTMuNDExIiB4Mj0iNTU5LjI4IiB5Mj0iLTExNC4zNzgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjMzY1M0E3Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNjhDREVEIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+IA=="}},"time_used":103,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":103,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-VLMFGK450H\u0026cid=242871477.1785145406\u0026gtm=45je67m0v886665627z8852615139za20gzb852615139zd852615139\u0026rcb=12\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119896803\u0026z=2105154384","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.853Z","timestamp":1785145405853,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-VLMFGK450H\u0026cid=242871477.1785145406\u0026gtm=45je67m0v886665627z8852615139za20gzb852615139zd852615139\u0026rcb=12\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119896803\u0026z=2105154384 HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: image/gif\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 42\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42,"size_decoded":578,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"d89746888da2d9510b64a9f031eaecd5","sha1":"d5fceb6532643d0d84ffe09c40c481ecdf59e15a","sha256":"ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629","sha512":"d5da26b5d496edb0221df1a4057a8b0285d15592a8f8dc7016a294df37ed335f3fde6a2252962e0df38b62847f8b771463a0124ef3f84299f262ed9d9d3cee4c","ssdeep":"","tlshash":"c4900023fa808000c3a8c2300a0b238a2b8c80200a28030b80ae208cec3a3a22c03020","first_seen":"2023-04-05T02:54:03Z","last_seen":"2026-08-12T03:48:31.376535Z","times_seen":1027862,"resource_available":true,"data":"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}},"time_used":82,"timings":{"blocked":0,"dns":0,"connect":15,"send":0,"wait":36,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/swiper/swiper-bundle.min.css?ver=1.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.807Z","timestamp":1785145403807,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/swiper/swiper-bundle.min.css?ver=1.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-3ccb\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":15563,"size_decoded":4335,"mime_type":"text/css","magic":"ASCII text, with very long lines (15306)","md5":"26688d20cf93c5bb5047c7cb4d6c81f8","sha1":"27e95cd5869405930c61b58a2857d51c88c6a994","sha256":"3371f801000f02d00a3011c06bd012698f91b361b6d8d4bb76816e8dba84d22f","sha512":"5faae476bd0923181d9ce5047e724435e0b27426add6eaeb8a20eace0525f767fd3529679124d6b658221fc9f187190aea7959dc3c567fb71ead52ef6e8e4d4a","ssdeep":"192:gFmUJbiKneTTzbHZ+SKUP3p/a/AMQfHffxVeesedOJ9A5Pz+c3At2/6:gQUbeTXbHZ+GA/AVfHfS4XYz","tlshash":"5162136853402c2763274f370b71cbb9ddb444825b93896ea1c0ed84d7b6cb9236f6e9","first_seen":"2023-04-06T22:19:14Z","last_seen":"2026-08-07T20:31:30.061133Z","times_seen":175,"resource_available":false,"data":"LyoqCiAqIFN3aXBlciA3LjMuMQogKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9ucwogKiBodHRwczovL3N3aXBlcmpzLmNvbQogKgogKiBDb3B5cmlnaHQgMjAxNC0yMDIxIFZsYWRpbWlyIEtoYXJsYW1waWRpCiAqCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZQogKgogKiBSZWxlYXNlZCBvbjogTm92ZW1iZXIgMjQsIDIwMjEKICovCgpAZm9udC1mYWNle2ZvbnQtZmFtaWx5OnN3aXBlci1pY29ucztzcmM6dXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwgZDA5R1JnQUJBQUFBQUFaZ0FCQUFBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUdSQUFBQUJvQUFBQWNpNnFIa1VkRVJVWUFBQVdnQUFBQUl3QUFBQ1FBWUFCWFIxQlBVd0FBQmhRQUFBQXVBQUFBTnVBWTcreEhVMVZDQUFBRnhBQUFBRkFBQUFCbTJmUGN6VTlUTHpJQUFBSGNBQUFBU2dBQUFHQlA5VjVSWTIxaGNBQUFBa1FBQUFDSUFBQUJZdDZGMGNCamRuUWdBQUFDekFBQUFBUUFBQUFFQUJFQlJHZGhjM0FBQUFXWUFBQUFDQUFBQUFqLy93QURaMng1WmdBQUF5d0FBQURNQUFBRDJNSHRyeVZvWldGa0FBQUJiQUFBQURBQUFBQTJFMitlb1dob1pXRUFBQUdjQUFBQUh3QUFBQ1FDOWdEemFHMTBlQUFBQWlnQUFBQVpBQUFBcmdKa0FCRnNiMk5oQUFBQzBBQUFBRm9BQUFCYUZRQVVHRzFoZUhBQUFBRzhBQUFBSHdBQUFDQUFjQUJBYm1GdFpRQUFBL2dBQUFFNUFBQUNYdkZkQndsd2IzTjBBQUFGTkFBQUFHSUFBQUNFNXM3NGhYamFZMkJrWUdBQVlwZjVIdS9qK1cyK01uQXpNWURBemFYNlFqRDYvNC8vQnhqNUdBOEF1UndNWUdrQVB5d0wxM2phWTJCa1lHQTg4UDhBZ3g0aisvOGZRRFlmQTFBRUJXZ0RBSUIyQk9vQWVOcGpZR1JnWU5CaDRHZGdZZ0FCRU1uSUFCSnpZTkFEQ1FBQUNXZ0FzUUI0Mm1OZ1lmekNPSUdCbFlHQjBZY3hqWUdCd1IxS2YyV1FaR2hoWUdCaVlHVm1nQUZHQmlRUWtPYWF3dERBb01CUXhYamcvd0VHUGNZRERBNHdOVUEyQ0Nnd3NBQUFPNEVMNmdBQWVOcGoyTTBneUFBQ3F4Z0dOV0JrWjJENC93TUEreGtEZGdBQUFIamFZMkJnWUdhQVlCa0dSZ1lRaUFIeUdNRjhGZ1lISU0zRHdNSEFCR1FyTU9neVdETEVNMVQ5L3c4VUJmRU1nTHpFLy8vL1AvNS8vZi9WL3h2K3I0ZWFBQWVNYkF4d0lVWW1JTUhFZ0tZQVlqVWNzREF3c0xLeGMzQnljZlB3OGpFUUEvZ1pCQVNGaEVWRXhjUWxKS1drWldUbDVCVVVsWlJWVk5YVU5UUVpCZ01BQU1SK0UrZ0FFUUZFQUFBQUtnQXFBQ29BTkFBK0FFZ0FVZ0JjQUdZQWNBQjZBSVFBamdDWUFLSUFyQUMyQU1BQXlnRFVBTjRBNkFEeUFQd0JCZ0VRQVJvQkpBRXVBVGdCUWdGTUFWWUJZQUZxQVhRQmZnR0lBWklCbkFHbUFiSUJ6Z0hzQUFCNDJ1Mk5NUTZDVUF5R1c1Njh4OUFuZVlZZ200TUpiaEtGYUV4SU9BVlg4QXBld1N0NEJpYzRBZmVBaWQzVk9CaXhEeGZQWUV6YTVPK1hmaTA0WUFEZ2dpVUlVTEN1RUpLOFZoTzRiU3ZwZG5rdEhJNVFDWXRkaTJzbDhablhhSGxxVXJOS3pkS2NUOGNqbHErcndaU3ZJVmN6TmllenNmblAvdXpubWZQRkJOT0RNMks3TVRRNDVZRUFacUdQODFBbUdHY0YzaVBxT29wMHIxU1BUYVRiVmtmVWU0SFhqOTd3WUUreU53V1l4d1d1NHYxdWdXSGdvM1MxWGRaRVZxV003RVQwY2ZuTEd4V2ZrZ1I0Mm8yUHZXckRNQlNGai9JSExhRjB6S2pSZ2RpVk13U2NOUkFvV1VvSDc4WTJpY0IveUlZMDlBbjZBSDJCZHUvVUIreXhvcFlzaFFpRXZudnUwZFVSZ0R0OFFlQzhQRHc3RnBqaTNmRUE0ei9QRUo2WU9CNWhLaDRkajNFdlhoeFBxSC9TS1VZM3JKN3NyWjRGWm5oMVBNQXRQaHdQNmZsMlBNSk1QRGdlUTRyWThZVDZHemFvMGVBRUE0MDlEdWdnbVRuRm5PY1NDaUVpTE1neENpVEk2Q3E1RFpVZDNRbXAxMHZPMExhTFRkMmNqTjRmT3VtbGM3bFVZYlNRY1pGa3V0Ukc3ZzZKS1pLeTBSbWRMWTY4MENEbkVKK1VNa3BGRmUxUk43bnhkVnBYckM0YVR0bmF1ck9uWWVyY1pnMllWbUxOL2QvZ2N6ZkVpbXJFL2ZzL2JPdXEyOVptbjh0bG9PUmFYZ1pnR2E3OHlPOS9jblhtMkJwYUd2cTI1RHY5UzRFOSs1U0ljOVBxdXBKS2hZRlNTbDQ3K1FjcjFtWU5BQUFBZU5wdHcwY0t3a0FBQU1EWkpBOFE3T1VKdmtMc1BmWjZ6RlZFUlB5OHFIaDJZRVIrM2kvQlA4M3ZJQkxMeVNzb0tpbXJxS3FwYTJocDYranE2UnNZR2htYm1KcVpTeTBzcmF4dGJPM3NIUnlkbkVNVTR1UjZ5eDdKSlh2ZVA3V3JEeWNBQUFBQUFBSC8vd0FDZU5wallHUmdZT0FCWWhrZ1pnSkNaZ1pOQmtZR0xRWnRJSnNGTE1ZQUFBdzNBTGdBZU5vbGl6RUtnREFRQkNjaFJiQzJzRkVSMFlENnFWUWlCQ3YvSDllekdJNlo1WEJBdzhDQksvbTVpUVFWYXVWYlhMbk9yTVp2Mm9MZEtGYThQanVydTJoSnpHYWJtT1NMek5NenZ1dHBCM040Mm1OZ1pHQmc0R0tRWXpCaFlNeEpMTWxqNEdCZ0FZb3cvUC9QQUpKaExNNnNTb1dLZldDQUF3REFqZ2JSQUFCNDJtTmdZR0JrQUlJYkNabzVJUHJtVW4waEdBMEFPOEVGVFFBQScpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH06cm9vdHstLXN3aXBlci10aGVtZS1jb2xvcjojMDA3YWZmfS5zd2lwZXJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDt6LWluZGV4OjF9LnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXdyYXBwZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zd2lwZXItd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07Ym94LXNpemluZzpjb250ZW50LWJveH0uc3dpcGVyLWFuZHJvaWQgLnN3aXBlci1zbGlkZSwuc3dpcGVyLXdyYXBwZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDBweCwwLDApfS5zd2lwZXItcG9pbnRlci1ldmVudHN7dG91Y2gtYWN0aW9uOnBhbi15fS5zd2lwZXItcG9pbnRlci1ldmVudHMuc3dpcGVyLXZlcnRpY2Fse3RvdWNoLWFjdGlvbjpwYW4teH0uc3dpcGVyLXNsaWRle2ZsZXgtc2hyaW5rOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybX0uc3dpcGVyLXNsaWRlLWludmlzaWJsZS1ibGFua3t2aXNpYmlsaXR5OmhpZGRlbn0uc3dpcGVyLWF1dG9oZWlnaHQsLnN3aXBlci1hdXRvaGVpZ2h0IC5zd2lwZXItc2xpZGV7aGVpZ2h0OmF1dG99LnN3aXBlci1hdXRvaGVpZ2h0IC5zd2lwZXItd3JhcHBlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLGhlaWdodH0uc3dpcGVyLTNkLC5zd2lwZXItM2Quc3dpcGVyLWNzcy1tb2RlIC5zd2lwZXItd3JhcHBlcntwZXJzcGVjdGl2ZToxMjAwcHh9LnN3aXBlci0zZCAuc3dpcGVyLWN1YmUtc2hhZG93LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZSwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLC5zd2lwZXItM2QgLnN3aXBlci13cmFwcGVye3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZH0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9we3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxMH0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93e2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTUpfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9te2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcntvdmVyZmxvdzphdXRvO3Njcm9sbGJhci13aWR0aDpub25lOy1tcy1vdmVyZmxvdy1zdHlsZTpub25lfS5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZXtzY3JvbGwtc25hcC1hbGlnbjpzdGFydCBzdGFydH0uc3dpcGVyLWhvcml6b250YWwuc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcntzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5fS5zd2lwZXItdmVydGljYWwuc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcntzY3JvbGwtc25hcC10eXBlOnkgbWFuZGF0b3J5fS5zd2lwZXItY2VudGVyZWQ+LnN3aXBlci13cmFwcGVyOjpiZWZvcmV7Y29udGVudDonJztmbGV4LXNocmluazowO29yZGVyOjk5OTl9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MXB4O3dpZHRoOnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxke21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSl9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItdmVydGljYWw+LnN3aXBlci13cmFwcGVyOjpiZWZvcmV7d2lkdGg6MTAwJTttaW4td2lkdGg6MXB4O2hlaWdodDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWFmdGVyKX0uc3dpcGVyLWNlbnRlcmVkPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRle3Njcm9sbC1zbmFwLWFsaWduOmNlbnRlciBjZW50ZXJ9LnN3aXBlci12aXJ0dWFsLnN3aXBlci1jc3MtbW9kZSAuc3dpcGVyLXdyYXBwZXI6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci12aXJ0dWFsLnN3aXBlci1jc3MtbW9kZS5zd2lwZXItaG9yaXpvbnRhbCAuc3dpcGVyLXdyYXBwZXI6OmFmdGVye2hlaWdodDoxcHg7d2lkdGg6dmFyKC0tc3dpcGVyLXZpcnR1YWwtc2l6ZSl9LnN3aXBlci12aXJ0dWFsLnN3aXBlci1jc3MtbW9kZS5zd2lwZXItdmVydGljYWwgLnN3aXBlci13cmFwcGVyOjphZnRlcnt3aWR0aDoxcHg7aGVpZ2h0OnZhcigtLXN3aXBlci12aXJ0dWFsLXNpemUpfTpyb290ey0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZTo0NHB4fS5zd2lwZXItYnV0dG9uLW5leHQsLnN3aXBlci1idXR0b24tcHJldntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOmNhbGModmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSkvIDQ0ICogMjcpO2hlaWdodDp2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKTttYXJnaW4tdG9wOmNhbGMoMHB4IC0gKHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpLyAyKSk7ei1pbmRleDoxMDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tY29sb3IsdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSl9LnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkLC5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZHtvcGFjaXR5Oi4zNTtjdXJzb3I6YXV0bztwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItYnV0dG9uLW5leHQ6YWZ0ZXIsLnN3aXBlci1idXR0b24tcHJldjphZnRlcntmb250LWZhbWlseTpzd2lwZXItaWNvbnM7Zm9udC1zaXplOnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpO3RleHQtdHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOjA7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXZhcmlhbnQ6aW5pdGlhbDtsaW5lLWhlaWdodDoxfS5zd2lwZXItYnV0dG9uLXByZXYsLnN3aXBlci1ydGwgLnN3aXBlci1idXR0b24tbmV4dHtsZWZ0OjEwcHg7cmlnaHQ6YXV0b30uc3dpcGVyLWJ1dHRvbi1wcmV2OmFmdGVyLC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQ6YWZ0ZXJ7Y29udGVudDoncHJldid9LnN3aXBlci1idXR0b24tbmV4dCwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2e3JpZ2h0OjEwcHg7bGVmdDphdXRvfS5zd2lwZXItYnV0dG9uLW5leHQ6YWZ0ZXIsLnN3aXBlci1ydGwgLnN3aXBlci1idXR0b24tcHJldjphZnRlcntjb250ZW50OiduZXh0J30uc3dpcGVyLWJ1dHRvbi1sb2Nre2Rpc3BsYXk6bm9uZX0uc3dpcGVyLXBhZ2luYXRpb257cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjouM3Mgb3BhY2l0eTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3otaW5kZXg6MTB9LnN3aXBlci1wYWdpbmF0aW9uLnN3aXBlci1wYWdpbmF0aW9uLWhpZGRlbntvcGFjaXR5OjB9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwsLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSwuc3dpcGVyLXBhZ2luYXRpb24tZnJhY3Rpb257Ym90dG9tOjEwcHg7bGVmdDowO3dpZHRoOjEwMCV9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pY3tvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjB9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zZm9ybTpzY2FsZSguMzMpO3Bvc2l0aW9uOnJlbGF0aXZlfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmV7dHJhbnNmb3JtOnNjYWxlKDEpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbWFpbnt0cmFuc2Zvcm06c2NhbGUoMSl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1wcmV2e3RyYW5zZm9ybTpzY2FsZSguNjYpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldi1wcmV2e3RyYW5zZm9ybTpzY2FsZSguMzMpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtbmV4dHt0cmFuc2Zvcm06c2NhbGUoLjY2KX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHQtbmV4dHt0cmFuc2Zvcm06c2NhbGUoLjMzKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3dpZHRoOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC13aWR0aCx2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZSw4cHgpKTtoZWlnaHQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhlaWdodCx2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZSw4cHgpKTtkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1pbmFjdGl2ZS1jb2xvciwjMDAwKTtvcGFjaXR5OnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1pbmFjdGl2ZS1vcGFjaXR5LCAuMil9YnV0dG9uLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHtib3JkZXI6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNoYWRvdzpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uc3dpcGVyLXBhZ2luYXRpb24tY2xpY2thYmxlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Y3Vyc29yOnBvaW50ZXJ9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpvbmx5LWNoaWxke2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmV7b3BhY2l0eTp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtb3BhY2l0eSwgMSk7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKX0uc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cywuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRze3JpZ2h0OjEwcHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMHB4LC01MCUsMCl9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7bWFyZ2luOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC12ZXJ0aWNhbC1nYXAsNnB4KSAwO2Rpc3BsYXk6YmxvY2t9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWlje3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6OHB4fS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNpdGlvbjouMnMgdHJhbnNmb3JtLC4ycyB0b3B9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e21hcmdpbjowIHZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1ob3Jpem9udGFsLWdhcCw0cHgpfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMsLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWN7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2hpdGUtc3BhY2U6bm93cmFwfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zaXRpb246LjJzIHRyYW5zZm9ybSwuMnMgbGVmdH0uc3dpcGVyLWhvcml6b250YWwuc3dpcGVyLXJ0bD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7dHJhbnNpdGlvbjouMnMgdHJhbnNmb3JtLC4ycyByaWdodH0uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNSk7cG9zaXRpb246YWJzb2x1dGV9LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxse2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tY29sb3IsdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybS1vcmlnaW46bGVmdCB0b3B9LnN3aXBlci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxse3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgdG9wfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRlLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRle3dpZHRoOjEwMCU7aGVpZ2h0OjRweDtsZWZ0OjA7dG9wOjB9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXJ7d2lkdGg6NHB4O2hlaWdodDoxMDAlO2xlZnQ6MDt0b3A6MH0uc3dpcGVyLXBhZ2luYXRpb24tbG9ja3tkaXNwbGF5Om5vbmV9LnN3aXBlci1zY3JvbGxiYXJ7Ym9yZGVyLXJhZGl1czoxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy1tcy10b3VjaC1hY3Rpb246bm9uZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjElO2JvdHRvbTozcHg7ei1pbmRleDo1MDtoZWlnaHQ6NXB4O3dpZHRoOjk4JX0uc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItc2Nyb2xsYmFye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6MSU7ei1pbmRleDo1MDt3aWR0aDo1cHg7aGVpZ2h0Ojk4JX0uc3dpcGVyLXNjcm9sbGJhci1kcmFne2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtib3JkZXItcmFkaXVzOjEwcHg7bGVmdDowO3RvcDowfS5zd2lwZXItc2Nyb2xsYmFyLWN1cnNvci1kcmFne2N1cnNvcjptb3ZlfS5zd2lwZXItc2Nyb2xsYmFyLWxvY2t7ZGlzcGxheTpub25lfS5zd2lwZXItem9vbS1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LnN3aXBlci16b29tLWNvbnRhaW5lcj5jYW52YXMsLnN3aXBlci16b29tLWNvbnRhaW5lcj5pbWcsLnN3aXBlci16b29tLWNvbnRhaW5lcj5zdmd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbn0uc3dpcGVyLXNsaWRlLXpvb21lZHtjdXJzb3I6bW92ZX0uc3dpcGVyLWxhenktcHJlbG9hZGVye3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTttYXJnaW4tbGVmdDotMjFweDttYXJnaW4tdG9wOi0yMXB4O3otaW5kZXg6MTA7dHJhbnNmb3JtLW9yaWdpbjo1MCU7YW5pbWF0aW9uOnN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBpbmZpbml0ZSBsaW5lYXI7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjo0cHggc29saWQgdmFyKC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtib3JkZXItcmFkaXVzOjUwJTtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50fS5zd2lwZXItbGF6eS1wcmVsb2FkZXItd2hpdGV7LS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yOiNmZmZ9LnN3aXBlci1sYXp5LXByZWxvYWRlci1ibGFja3stLXN3aXBlci1wcmVsb2FkZXItY29sb3I6IzAwMH1Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbnsxMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnN3aXBlciAuc3dpcGVyLW5vdGlmaWNhdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7ei1pbmRleDotMTAwMH0uc3dpcGVyLWZyZWUtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7bWFyZ2luOjAgYXV0b30uc3dpcGVyLWdyaWQ+LnN3aXBlci13cmFwcGVye2ZsZXgtd3JhcDp3cmFwfS5zd2lwZXItZ3JpZC1jb2x1bW4+LnN3aXBlci13cmFwcGVye2ZsZXgtd3JhcDp3cmFwO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc3dpcGVyLWZhZGUuc3dpcGVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fS5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZle3BvaW50ZXItZXZlbnRzOmF1dG99LnN3aXBlci1jdWJle292ZXJmbG93OnZpc2libGV9LnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOjAgMDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWN1YmUuc3dpcGVyLXJ0bCAuc3dpcGVyLXNsaWRle3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmV7cG9pbnRlci1ldmVudHM6YXV0b30uc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0Ky5zd2lwZXItc2xpZGUsLnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGUtcHJldntwb2ludGVyLWV2ZW50czphdXRvO3Zpc2liaWxpdHk6dmlzaWJsZX0uc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9we3otaW5kZXg6MDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5zd2lwZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MHB4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTouNjt6LWluZGV4OjB9LnN3aXBlci1jdWJlIC5zd2lwZXItY3ViZS1zaGFkb3c6YmVmb3Jle2NvbnRlbnQ6Jyc7YmFja2dyb3VuZDojMDAwO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO2ZpbHRlcjpibHVyKDUwcHgpfS5zd2lwZXItZmxpcHtvdmVyZmxvdzp2aXNpYmxlfS5zd2lwZXItZmxpcCAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjF9LnN3aXBlci1mbGlwIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZXtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmV7cG9pbnRlci1ldmVudHM6YXV0b30uc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9we3otaW5kZXg6MDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5zd2lwZXItY3JlYXRpdmUgLnN3aXBlci1zbGlkZXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5LGhlaWdodH0uc3dpcGVyLWNhcmRze292ZXJmbG93OnZpc2libGV9LnN3aXBlci1jYXJkcyAuc3dpcGVyLXNsaWRle3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbn0="}},"time_used":120,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":120,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/dom-ready.min.js?ver=392bdd43726760d1f3ca","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.865Z","timestamp":1785145403865,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/dom-ready.min.js?ver=392bdd43726760d1f3ca HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nx-accel-version: 0.01\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"1f2-60f1ec8f1f6c0\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":498,"size_decoded":551,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (463)","md5":"b0b80b0256874e70acdc820b52bbf1aa","sha1":"9aace9a7989736bf535d65f229d0c10e9acea41b","sha256":"166c7c3bb5f76f977a9f2a5490589b3466374eb2b3f064802e56f08bad71fbf0","sha512":"bc0f09e99b8dd01249e4d43216c9aaa46edf2b748d54b8f21091cce04e5fc5a4b0d0f011f580c9ff4349b4d39a09847bf9908042869dca4d6b587731eb19118e","ssdeep":"","tlshash":"e3f0c060b585e9f062b990e5003f5381f232b476262170d18f4cd8b4acb0a9a037ec9f","first_seen":"2023-03-07T01:06:59Z","last_seen":"2026-08-11T19:55:22.859738Z","times_seen":8394,"resource_available":true,"data":"LyohIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9e2Q6ZnVuY3Rpb24odCxuKXtmb3IodmFyIG8gaW4gbillLm8obixvKSYmIWUubyh0LG8pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSl9LG86ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9fSx0PXt9O2Z1bmN0aW9uIG4oZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJjb21wbGV0ZSIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYiaW50ZXJhY3RpdmUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixlKTplKCkpfWUuZCh0LHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksKHdpbmRvdy53cD13aW5kb3cud3B8fHt9KS5kb21SZWFkeT10LmRlZmF1bHR9KCk7"}},"time_used":469,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":469,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/manifest.json","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:28.563Z","timestamp":1785145408563,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /manifest.json HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:31 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a670743-891\"\r\nexpires: Mon, 27 Jul 2026 07:32:27 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k1tpUMJoI/yXPNqaX0TlnUwu3LZZ0U2WGLhkS6hQl21PGPxjhppOhMqHdPPWG1s1PBcGn3Y\r\nx-77-nzt-ray: fdb54123991870604328676ac41e5936\r\nx-77-cache: HIT\r\nx-77-age: 53\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":2193,"size_decoded":1029,"mime_type":"application/json","magic":"JSON text data","md5":"ac973fd16446a8bd414c2cfdbfbdd6ba","sha1":"6d802991373d8180ad7c4197d08c2e8d8e21d581","sha256":"8c973dd5712d4b0125d2be8cc65e3590298e054fb63560738ecf0f64b8e43277","sha512":"9748bc4696f6ec983d5dbd492e36472b1e083d2e61c3a60133b102a8370f7603b54bfe88360c24035fe882d5c30f0a52eb253ae2d0d460d384d72f9f3b188d79","ssdeep":"","tlshash":"c3417893c0f80d531b9c6627b8855a415d50c3c3a8993e0e72ad8a7f2f4ceb910e67bc","first_seen":"2026-07-27T07:28:16.144753Z","last_seen":"2026-07-29T06:17:50.081451Z","times_seen":1033,"resource_available":false,"data":"ewogICJfV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VySW5wdXQiLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIgogICAgXSwKICAgICJkeW5hbWljSW1wb3J0cyI6IFsKICAgICAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIgogICAgXQogIH0sCiAgIl9zaGFyZWQta2IxeXFIYUEuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICJuYW1lIjogIkljb25CdXR0b24iLAogICAgImR5bmFtaWNJbXBvcnRzIjogWwogICAgICAibm9kZV9tb2R1bGVzLy5wbnBtL0B0aHVtYm1hcmtqcyt0aHVtYm1hcmtqc0AxLjkuMC9ub2RlX21vZHVsZXMvQHRodW1ibWFya2pzL3RodW1ibWFya2pzL2Rpc3QvdGh1bWJtYXJrLmVzbS5qcyIKICAgIF0KICB9LAogICJub2RlX21vZHVsZXMvLnBucG0vQHRodW1ibWFya2pzK3RodW1ibWFya2pzQDEuOS4wL25vZGVfbW9kdWxlcy9AdGh1bWJtYXJranMvdGh1bWJtYXJranMvZGlzdC90aHVtYm1hcmsuZXNtLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL3RodW1ibWFyay5lc20tQ1A0Q1UweUwuanMiLAogICAgIm5hbWUiOiAidGh1bWJtYXJrLmVzbSIsCiAgICAic3JjIjogIm5vZGVfbW9kdWxlcy8ucG5wbS9AdGh1bWJtYXJranMrdGh1bWJtYXJranNAMS45LjAvbm9kZV9tb2R1bGVzL0B0aHVtYm1hcmtqcy90aHVtYm1hcmtqcy9kaXN0L3RodW1ibWFyay5lc20uanMiLAogICAgImlzRHluYW1pY0VudHJ5IjogdHJ1ZQogIH0sCiAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21vZHVsZS1ERDVudlZEMy5qcyIsCiAgICAibmFtZSI6ICJtb2R1bGUiLAogICAgInNyYyI6ICJub2RlX21vZHVsZXMvLnBucG0vZW1vamktbWFydEA1LjYuMC9ub2RlX21vZHVsZXMvZW1vamktbWFydC9kaXN0L21vZHVsZS5qcyIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlCiAgfSwKICAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VyIiwKICAgICJzcmMiOiAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICAgIl9XaWRnZXRNZXNzZW5nZXJJbnB1dC1ESHI1dUh3ZC5qcyIsCiAgICAgICJzcmMvbWFpbi50cyIKICAgIF0KICB9LAogICJzcmMvZnJhbWVzL3BvcHVwL1dpZGdldFBvcHVwLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRQb3B1cC1CQTFqY0hudS5qcyIsCiAgICAibmFtZSI6ICJXaWRnZXRQb3B1cCIsCiAgICAic3JjIjogInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIiwKICAgICJpc0R5bmFtaWNFbnRyeSI6IHRydWUsCiAgICAiaW1wb3J0cyI6IFsKICAgICAgIl9zaGFyZWQta2IxeXFIYUEuanMiLAogICAgICAiX1dpZGdldE1lc3NlbmdlcklucHV0LURIcjV1SHdkLmpzIgogICAgXQogIH0sCiAgInNyYy9tYWluLnRzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21haW4tQi1WSGMxSzQuanMiLAogICAgIm5hbWUiOiAibWFpbiIsCiAgICAic3JjIjogInNyYy9tYWluLnRzIiwKICAgICJpc0VudHJ5IjogdHJ1ZSwKICAgICJpbXBvcnRzIjogWwogICAgICAiX3NoYXJlZC1rYjF5cUhhQS5qcyIKICAgIF0sCiAgICAiZHluYW1pY0ltcG9ydHMiOiBbCiAgICAgICJzcmMvZnJhbWVzL21lc3Nlbmdlci9XaWRnZXRNZXNzZW5nZXIuc3ZlbHRlIiwKICAgICAgInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIgogICAgXQogIH0sCiAgInN0eWxlLmNzcyI6IHsKICAgICJmaWxlIjogImFzc2V0cy9zdHlsZS1DbGlKd1VUUi5jc3MiLAogICAgInNyYyI6ICJzdHlsZS5jc3MiCiAgfQp9"}},"time_used":3352,"timings":{"blocked":-1,"dns":34,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3302},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/wpconnect-gf-sendgrid/assets/css/admin.min.css?ver=1.2.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.849Z","timestamp":1785145403849,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/wpconnect-gf-sendgrid/assets/css/admin.min.css?ver=1.2.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-5f9\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":1529,"size_decoded":661,"mime_type":"text/css","magic":"ASCII text, with very long lines (1529), with no line terminators","md5":"af6674f90d4348f39b117ad8505ead00","sha1":"e11cbaefec616987eb847e512f45b1b58dd59a25","sha256":"b6af57838d344e2281438c7cd5ff174bb5481e1a3ddcc7a254dd3853b8b9fc12","sha512":"61ea546db1faabf1df145d07014e372c1c55e6fedd2e6f25d917a131f10e5fb0989364dc9387e7f4dbe81d3d79a7591359ec0692af8e72b624913e80326e5c8d","ssdeep":"","tlshash":"d4318d2011847267635ece78f8dbb3153511f1069fb3a96c6776059089ea7f110d53d7","first_seen":"2024-08-19T22:46:12.853789Z","last_seen":"2026-08-05T08:01:16.805313Z","times_seen":19,"resource_available":false,"data":"I3RhYl9ncmF2aXR5LWZvcm1zLXRvLXNlbmRncmlkICNnZm9ybV9zZXR0aW5nX2xpY2Vuc2Uta2V5LWZpZWxke21hcmdpbi10b3A6MH0jdGFiX2dyYXZpdHktZm9ybXMtdG8tc2VuZGdyaWQgZGl2Lm5vdGljZXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0jd3Bjb25uZWN0LWdyYXZpdHlmb3Jtcy1zZW5kZ3JpZCBoNC5mZWVkLXRpdGxle21hcmdpbjowO2JhY2tncm91bmQ6cmdiYSgxMCwyMCwzMCwuMDUpO3BhZGRpbmc6LjFlbSAuMjVlbTtib3JkZXItcmFkaXVzOi4yNWVtO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouNzVlbX0jd3Bjb25uZWN0LWdyYXZpdHlmb3Jtcy1zZW5kZ3JpZCBoNC5mZWVkLXRpdGxlOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7bWFyZ2luLXRvcDoxLjI1ZW19I3dwY29ubmVjdC1ncmF2aXR5Zm9ybXMtc2VuZGdyaWQgcHttYXJnaW46MH0jd3Bjb25uZWN0LWdyYXZpdHlmb3Jtcy1zZW5kZ3JpZCBoNC5mZWVkLXRpdGxlK3B7bWFyZ2luLXRvcDouNWVtfWRpdiN0YWJfZ3Jhdml0eS1mb3Jtcy10by1zZW5kZ3JpZCB0YWJsZS53cC1saXN0LXRhYmxlICNuYW1le3dpZHRoOjIwJX1kaXYjdGFiX2dyYXZpdHktZm9ybXMtdG8tc2VuZGdyaWQgdGFibGUud3AtbGlzdC10YWJsZSAjbGlzdHN7d2lkdGg6MzAlfSN0YWJfZ3Jhdml0eS1mb3Jtcy10by1zZW5kZ3JpZCAuaWNvbi15ZXN7Y29sb3I6IzI0OTQ0MH0jdGFiX2dyYXZpdHktZm9ybXMtdG8tc2VuZGdyaWQgLmljb24tbm97Y29sb3I6IzExMTtvcGFjaXR5Oi4yNX0jZ2Zvcm0tc2V0dGluZ3Mtc2VjdGlvbi1zZW5kZ3JpZC1hZGQtb24tc2V0dGluZ3MgZGl2LmxpY2Vuc2Uta2V5LWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXB9I2dmb3JtLXNldHRpbmdzLXNlY3Rpb24tc2VuZGdyaWQtYWRkLW9uLXNldHRpbmdzIGRpdi5nZm9ybS1zZXR0aW5ncy1wYW5lbF9fY29udGVudCBkaXYubGljZW5zZS1rZXktY29udGFpbmVyPnNwYW4uZ2Zvcm0tc2V0dGluZ3MtaW5wdXRfX2NvbnRhaW5lcntmbGV4OjR9I2dmb3JtLXNldHRpbmdzLXNlY3Rpb24tc2VuZGdyaWQtYWRkLW9uLXNldHRpbmdzIGRpdi5nZm9ybS1zZXR0aW5ncy1wYW5lbF9fY29udGVudCBkaXYubGljZW5zZS1rZXktY29udGFpbmVyPmJ1dHRvbi5idXR0b257ZmxleDoxO21hcmdpbi1sZWZ0Oi41cmVtfSNnZm9ybS1zZXR0aW5ncy1zZWN0aW9uLXNlbmRncmlkLWFkZC1vbi1zZXR0aW5ncyBkaXYuZ2Zvcm0tc2V0dGluZ3MtcGFuZWxfX2NvbnRlbnQgZGl2LmxpY2Vuc2Uta2V5LWNvbnRhaW5lcj5idXR0b24uYnV0dG9uLmFjdGl2YXRle2JhY2tncm91bmQtY29sb3I6IzJjOTE1Nn0jZ2Zvcm0tc2V0dGluZ3Mtc2VjdGlvbi1zZW5kZ3JpZC1hZGQtb24tc2V0dGluZ3MgZGl2Lmdmb3JtLXNldHRpbmdzLXBhbmVsX19jb250ZW50IGRpdi5saWNlbnNlLWtleS1jb250YWluZXI+YnV0dG9uLmJ1dHRvbi5kZWFjdGl2YXRle2JhY2tncm91bmQtY29sb3I6I2I0NGU1M30="}},"time_used":484,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":484,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/gsap.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.855Z","timestamp":1785145403855,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/gsap.min.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-11569\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":71017,"size_decoded":27219,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65240)","md5":"068f978b15a6125528fb14dd3d36cd5f","sha1":"e54d17d709baa69810dcee71d1cb2fce86348e15","sha256":"386a292b805ec5376c149711c08d9013658fd08879a7ac9a62a99e14310c397a","sha512":"826c019a24d5111e7b3778d84b72e29c0f5e6fc687ac9b9ae62403ef2a9808a6b9c7a26373b54355a100d237b42eed1b3fd8fbb448d5dfed6a526ea5a0ef7d2b","ssdeep":"1536:uNBwKyDBpQvvtM9eqZ08XJjhBhWDs06RPewGanrY:uwNsCC85jhBhLLRPepEs","tlshash":"ae63f9dd3292b42343965161447f0a0bf33ba998640f0918f269e5ce7d3c99d42bbf7a","first_seen":"2023-03-08T14:21:43Z","last_seen":"2026-08-10T14:54:10.753294Z","times_seen":1033,"resource_available":true,"data":"LyohCiAqIEdTQVAgMy4xMS4zCiAqIGh0dHBzOi8vZ3JlZW5zb2NrLmNvbQogKiAKICogQGxpY2Vuc2UgQ29weXJpZ2h0IDIwMjIsIEdyZWVuU29jay4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICogU3ViamVjdCB0byB0aGUgdGVybXMgYXQgaHR0cHM6Ly9ncmVlbnNvY2suY29tL3N0YW5kYXJkLWxpY2Vuc2Ugb3IgZm9yIENsdWIgR3JlZW5Tb2NrIG1lbWJlcnMsIHRoZSBhZ3JlZW1lbnQgaXNzdWVkIHdpdGggdGhhdCBtZW1iZXJzaGlwLgogKiBAYXV0aG9yOiBKYWNrIERveWxlLCBqYWNrQGdyZWVuc29jay5jb20KICovCgohZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sZSk6ZSgodD10fHxzZWxmKS53aW5kb3c9dC53aW5kb3d8fHt9KX0odGhpcyxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2luaGVyaXRzTG9vc2UodCxlKXt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSwodC5wcm90b3R5cGUuY29uc3RydWN0b3I9dCkuX19wcm90b19fPWV9ZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZCh0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9ZnVuY3Rpb24gcih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiB0KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdH1mdW5jdGlvbiB1KHQpe3JldHVybiB2b2lkIDA9PT10fWZ1bmN0aW9uIHYodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0fWZ1bmN0aW9uIHcodCl7cmV0dXJuITEhPT10fWZ1bmN0aW9uIHgoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvd31mdW5jdGlvbiB5KHQpe3JldHVybiBzKHQpfHxyKHQpfWZ1bmN0aW9uIFAodCl7cmV0dXJuKGk9eXQodCxvdCkpJiZDZX1mdW5jdGlvbiBRKHQsZSl7cmV0dXJuIGNvbnNvbGUud2FybigiSW52YWxpZCBwcm9wZXJ0eSIsdCwic2V0IHRvIixlLCJNaXNzaW5nIHBsdWdpbj8gZ3NhcC5yZWdpc3RlclBsdWdpbigpIil9ZnVuY3Rpb24gUih0LGUpe3JldHVybiFlJiZjb25zb2xlLndhcm4odCl9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiB0JiYob3RbdF09ZSkmJmkmJihpW3RdPWUpfHxvdH1mdW5jdGlvbiBUKCl7cmV0dXJuIDB9ZnVuY3Rpb24gZWEodCl7dmFyIGUscixpPXRbMF07aWYodihpKXx8cyhpKXx8KHQ9W3RdKSwhKGU9KGkuX2dzYXB8fHt9KS5oYXJuZXNzKSl7Zm9yKHI9Z3QubGVuZ3RoO3ItLSYmIWd0W3JdLnRhcmdldFRlc3QoaSk7KTtlPWd0W3JdfWZvcihyPXQubGVuZ3RoO3ItLTspdFtyXSYmKHRbcl0uX2dzYXB8fCh0W3JdLl9nc2FwPW5ldyBqdCh0W3JdLGUpKSl8fHQuc3BsaWNlKHIsMSk7cmV0dXJuIHR9ZnVuY3Rpb24gZmEodCl7cmV0dXJuIHQuX2dzYXB8fGVhKE90KHQpKVswXS5fZ3NhcH1mdW5jdGlvbiBnYSh0LGUscil7cmV0dXJuKHI9dFtlXSkmJnMocik/dFtlXSgpOnUocikmJnQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZShlKXx8cn1mdW5jdGlvbiBoYSh0LGUpe3JldHVybih0PXQuc3BsaXQoIiwiKSkuZm9yRWFjaChlKXx8dH1mdW5jdGlvbiBpYSh0KXtyZXR1cm4gTWF0aC5yb3VuZCgxZTUqdCkvMWU1fHwwfWZ1bmN0aW9uIGphKHQpe3JldHVybiBNYXRoLnJvdW5kKDFlNyp0KS8xZTd8fDB9ZnVuY3Rpb24ga2EodCxlKXt2YXIgcj1lLmNoYXJBdCgwKSxpPXBhcnNlRmxvYXQoZS5zdWJzdHIoMikpO3JldHVybiB0PXBhcnNlRmxvYXQodCksIisiPT09cj90K2k6Ii0iPT09cj90LWk6IioiPT09cj90Kmk6dC9pfWZ1bmN0aW9uIGxhKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLGk9MDt0LmluZGV4T2YoZVtpXSk8MCYmKytpPHI7KTtyZXR1cm4gaTxyfWZ1bmN0aW9uIG1hKCl7dmFyIHQsZSxyPWN0Lmxlbmd0aCxpPWN0LnNsaWNlKDApO2ZvcihkdD17fSx0PWN0Lmxlbmd0aD0wO3Q8cjt0KyspKGU9aVt0XSkmJmUuX2xhenkmJihlLnJlbmRlcihlLl9sYXp5WzBdLGUuX2xhenlbMV0sITApLl9sYXp5PTApfWZ1bmN0aW9uIG5hKHQsZSxyLGkpe2N0Lmxlbmd0aCYmbWEoKSx0LnJlbmRlcihlLHIsaXx8QiYmZTwwJiYodC5faW5pdHRlZHx8dC5fc3RhcnRBdCkpLGN0Lmxlbmd0aCYmbWEoKX1mdW5jdGlvbiBvYSh0KXt2YXIgZT1wYXJzZUZsb2F0KHQpO3JldHVybihlfHwwPT09ZSkmJih0KyIiKS5tYXRjaChhdCkubGVuZ3RoPDI/ZTpyKHQpP3QudHJpbSgpOnR9ZnVuY3Rpb24gcGEodCl7cmV0dXJuIHR9ZnVuY3Rpb24gcWEodCxlKXtmb3IodmFyIHIgaW4gZSlyIGluIHR8fCh0W3JdPWVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIHRhKHQsZSl7Zm9yKHZhciByIGluIGUpIl9fcHJvdG9fXyIhPT1yJiYiY29uc3RydWN0b3IiIT09ciYmInByb3RvdHlwZSIhPT1yJiYodFtyXT12KGVbcl0pP3RhKHRbcl18fCh0W3JdPXt9KSxlW3JdKTplW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiB1YSh0LGUpe3ZhciByLGk9e307Zm9yKHIgaW4gdClyIGluIGV8fChpW3JdPXRbcl0pO3JldHVybiBpfWZ1bmN0aW9uIHZhKHQpe3ZhciBlPXQucGFyZW50fHxMLHI9dC5rZXlmcmFtZXM/ZnVuY3Rpb24gX3NldEtleWZyYW1lRGVmYXVsdHMoaSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpciBpbiB0fHwiZHVyYXRpb24iPT09ciYmaXx8ImVhc2UiPT09cnx8KHRbcl09ZVtyXSl9fSgkKHQua2V5ZnJhbWVzKSk6cWE7aWYodyh0LmluaGVyaXQpKWZvcig7ZTspcih0LGUudmFycy5kZWZhdWx0cyksZT1lLnBhcmVudHx8ZS5fZHA7cmV0dXJuIHR9ZnVuY3Rpb24geGEodCxlLHIsaSxuKXt2b2lkIDA9PT1yJiYocj0iX2ZpcnN0Iiksdm9pZCAwPT09aSYmKGk9Il9sYXN0Iik7dmFyIGEscz10W2ldO2lmKG4pZm9yKGE9ZVtuXTtzJiZzW25dPmE7KXM9cy5fcHJldjtyZXR1cm4gcz8oZS5fbmV4dD1zLl9uZXh0LHMuX25leHQ9ZSk6KGUuX25leHQ9dFtyXSx0W3JdPWUpLGUuX25leHQ/ZS5fbmV4dC5fcHJldj1lOnRbaV09ZSxlLl9wcmV2PXMsZS5wYXJlbnQ9ZS5fZHA9dCxlfWZ1bmN0aW9uIHlhKHQsZSxyLGkpe3ZvaWQgMD09PXImJihyPSJfZmlyc3QiKSx2b2lkIDA9PT1pJiYoaT0iX2xhc3QiKTt2YXIgbj1lLl9wcmV2LGE9ZS5fbmV4dDtuP24uX25leHQ9YTp0W3JdPT09ZSYmKHRbcl09YSksYT9hLl9wcmV2PW46dFtpXT09PWUmJih0W2ldPW4pLGUuX25leHQ9ZS5fcHJldj1lLnBhcmVudD1udWxsfWZ1bmN0aW9uIHphKHQsZSl7IXQucGFyZW50fHxlJiYhdC5wYXJlbnQuYXV0b1JlbW92ZUNoaWxkcmVufHx0LnBhcmVudC5yZW1vdmUodCksdC5fYWN0PTB9ZnVuY3Rpb24gQWEodCxlKXtpZih0JiYoIWV8fGUuX2VuZD50Ll9kdXJ8fGUuX3N0YXJ0PDApKWZvcih2YXIgcj10O3I7KXIuX2RpcnR5PTEscj1yLnBhcmVudDtyZXR1cm4gdH1mdW5jdGlvbiBDYSh0LGUscixpKXtyZXR1cm4gdC5fc3RhcnRBdCYmKEI/dC5fc3RhcnRBdC5yZXZlcnQoaHQpOnQudmFycy5pbW1lZGlhdGVSZW5kZXImJiF0LnZhcnMuYXV0b1JldmVydHx8dC5fc3RhcnRBdC5yZW5kZXIoZSwhMCxpKSl9ZnVuY3Rpb24gRWEodCl7cmV0dXJuIHQuX3JlcGVhdD9UdCh0Ll90VGltZSx0PXQuZHVyYXRpb24oKSt0Ll9yRGVsYXkpKnQ6MH1mdW5jdGlvbiBHYSh0LGUpe3JldHVybih0LWUuX3N0YXJ0KSplLl90cysoMDw9ZS5fdHM/MDplLl9kaXJ0eT9lLnRvdGFsRHVyYXRpb24oKTplLl90RHVyKX1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gdC5fZW5kPWphKHQuX3N0YXJ0Kyh0Ll90RHVyL01hdGguYWJzKHQuX3RzfHx0Ll9ydHN8fFYpfHwwKSl9ZnVuY3Rpb24gSWEodCxlKXt2YXIgcj10Ll9kcDtyZXR1cm4gciYmci5zbW9vdGhDaGlsZFRpbWluZyYmdC5fdHMmJih0Ll9zdGFydD1qYShyLl90aW1lLSgwPHQuX3RzP2UvdC5fdHM6KCh0Ll9kaXJ0eT90LnRvdGFsRHVyYXRpb24oKTp0Ll90RHVyKS1lKS8tdC5fdHMpKSxIYSh0KSxyLl9kaXJ0eXx8QWEocix0KSksdH1mdW5jdGlvbiBKYSh0LGUpe3ZhciByO2lmKChlLl90aW1lfHxlLl9pbml0dGVkJiYhZS5fZHVyKSYmKHI9R2EodC5yYXdUaW1lKCksZSksKCFlLl9kdXJ8fGt0KDAsZS50b3RhbER1cmF0aW9uKCksciktZS5fdFRpbWU+VikmJmUucmVuZGVyKHIsITApKSxBYSh0LGUpLl9kcCYmdC5faW5pdHRlZCYmdC5fdGltZT49dC5fZHVyJiZ0Ll90cyl7aWYodC5fZHVyPHQuZHVyYXRpb24oKSlmb3Iocj10O3IuX2RwOykwPD1yLnJhd1RpbWUoKSYmci50b3RhbFRpbWUoci5fdFRpbWUpLHI9ci5fZHA7dC5felRpbWU9LVZ9fWZ1bmN0aW9uIEthKGUscixpLG4pe3JldHVybiByLnBhcmVudCYmemEociksci5fc3RhcnQ9amEoKHQoaSk/aTppfHxlIT09TD94dChlLGkscik6ZS5fdGltZSkrci5fZGVsYXkpLHIuX2VuZD1qYShyLl9zdGFydCsoci50b3RhbER1cmF0aW9uKCkvTWF0aC5hYnMoci50aW1lU2NhbGUoKSl8fDApKSx4YShlLHIsIl9maXJzdCIsIl9sYXN0IixlLl9zb3J0PyJfc3RhcnQiOjApLGJ0KHIpfHwoZS5fcmVjZW50PXIpLG58fEphKGUsciksZS5fdHM8MCYmSWEoZSxlLl90VGltZSksZX1mdW5jdGlvbiBMYSh0LGUpe3JldHVybihvdC5TY3JvbGxUcmlnZ2VyfHxRKCJzY3JvbGxUcmlnZ2VyIixlKSkmJm90LlNjcm9sbFRyaWdnZXIuY3JlYXRlKGUsdCl9ZnVuY3Rpb24gTWEodCxlLHIsaSxuKXtyZXR1cm4gSHQodCxlLG4pLHQuX2luaXR0ZWQ/IXImJnQuX3B0JiYhQiYmKHQuX2R1ciYmITEhPT10LnZhcnMubGF6eXx8IXQuX2R1ciYmdC52YXJzLmxhenkpJiZmIT09RXQuZnJhbWU/KGN0LnB1c2godCksdC5fbGF6eT1bbixpXSwxKTp2b2lkIDA6MX1mdW5jdGlvbiBSYSh0LGUscixpKXt2YXIgbj10Ll9yZXBlYXQsYT1qYShlKXx8MCxzPXQuX3RUaW1lL3QuX3REdXI7cmV0dXJuIHMmJiFpJiYodC5fdGltZSo9YS90Ll9kdXIpLHQuX2R1cj1hLHQuX3REdXI9bj9uPDA/MWUxMDpqYShhKihuKzEpK3QuX3JEZWxheSpuKTphLDA8cyYmIWkmJklhKHQsdC5fdFRpbWU9dC5fdER1cipzKSx0LnBhcmVudCYmSGEodCkscnx8QWEodC5wYXJlbnQsdCksdH1mdW5jdGlvbiBTYSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFV0P0FhKHQpOlJhKHQsdC5fZHVyKX1mdW5jdGlvbiBWYShlLHIsaSl7dmFyIG4sYSxzPXQoclsxXSksbz0ocz8yOjEpKyhlPDI/MDoxKSx1PXJbb107aWYocyYmKHUuZHVyYXRpb249clsxXSksdS5wYXJlbnQ9aSxlKXtmb3Iobj11LGE9aTthJiYhKCJpbW1lZGlhdGVSZW5kZXIiaW4gbik7KW49YS52YXJzLmRlZmF1bHRzfHx7fSxhPXcoYS52YXJzLmluaGVyaXQpJiZhLnBhcmVudDt1LmltbWVkaWF0ZVJlbmRlcj13KG4uaW1tZWRpYXRlUmVuZGVyKSxlPDI/dS5ydW5CYWNrd2FyZHM9MTp1LnN0YXJ0QXQ9cltvLTFdfXJldHVybiBuZXcgR3QoclswXSx1LHJbMStvXSl9ZnVuY3Rpb24gV2EodCxlKXtyZXR1cm4gdHx8MD09PXQ/ZSh0KTplfWZ1bmN0aW9uIFlhKHQsZSl7cmV0dXJuIHIodCkmJihlPXN0LmV4ZWModCkpP2VbMV06IiJ9ZnVuY3Rpb24gX2EodCxlKXtyZXR1cm4gdCYmdih0KSYmImxlbmd0aCJpbiB0JiYoIWUmJiF0Lmxlbmd0aHx8dC5sZW5ndGgtMSBpbiB0JiZ2KHRbMF0pKSYmIXQubm9kZVR5cGUmJnQhPT1ofWZ1bmN0aW9uIGNiKHIpe3JldHVybiByPU90KHIpWzBdfHxSKCJJbnZhbGlkIHNjb3BlIil8fHt9LGZ1bmN0aW9uKHQpe3ZhciBlPXIuY3VycmVudHx8ci5uYXRpdmVFbGVtZW50fHxyO3JldHVybiBPdCh0LGUucXVlcnlTZWxlY3RvckFsbD9lOmU9PT1yP1IoIkludmFsaWQgc2NvcGUiKXx8YS5jcmVhdGVFbGVtZW50KCJkaXYiKTpyKX19ZnVuY3Rpb24gZGIodCl7cmV0dXJuIHQuc29ydChmdW5jdGlvbigpe3JldHVybi41LU1hdGgucmFuZG9tKCl9KX1mdW5jdGlvbiBlYih0KXtpZihzKHQpKXJldHVybiB0O3ZhciBwPXYodCk/dDp7ZWFjaDp0fSxfPVl0KHAuZWFzZSksbT1wLmZyb218fDAsZz1wYXJzZUZsb2F0KHAuYmFzZSl8fDAseT17fSxlPTA8bSYmbTwxLFQ9aXNOYU4obSl8fGUsYj1wLmF4aXMsdz1tLHg9bTtyZXR1cm4gcihtKT93PXg9e2NlbnRlcjouNSxlZGdlczouNSxlbmQ6MX1bbV18fDA6IWUmJlQmJih3PW1bMF0seD1tWzFdKSxmdW5jdGlvbih0LGUscil7dmFyIGksbixhLHMsbyx1LGgsbCxmLGM9KHJ8fHApLmxlbmd0aCxkPXlbY107aWYoIWQpe2lmKCEoZj0iYXV0byI9PT1wLmdyaWQ/MDoocC5ncmlkfHxbMSxVXSlbMV0pKXtmb3IoaD0tVTtoPChoPXJbZisrXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KSYmZjxjOyk7Zi0tfWZvcihkPXlbY109W10saT1UP01hdGgubWluKGYsYykqdy0uNTptJWYsbj1mPT09VT8wOlQ/Yyp4L2YtLjU6bS9mfDAsbD1VLHU9aD0wO3U8Yzt1KyspYT11JWYtaSxzPW4tKHUvZnwwKSxkW3VdPW89Yj9NYXRoLmFicygieSI9PT1iP3M6YSk6SyhhKmErcypzKSxoPG8mJihoPW8pLG88bCYmKGw9byk7InJhbmRvbSI9PT1tJiZkYihkKSxkLm1heD1oLWwsZC5taW49bCxkLnY9Yz0ocGFyc2VGbG9hdChwLmFtb3VudCl8fHBhcnNlRmxvYXQocC5lYWNoKSooYzxmP2MtMTpiPyJ5Ij09PWI/Yy9mOmY6TWF0aC5tYXgoZixjL2YpKXx8MCkqKCJlZGdlcyI9PT1tPy0xOjEpLGQuYj1jPDA/Zy1jOmcsZC51PVlhKHAuYW1vdW50fHxwLmVhY2gpfHwwLF89XyYmYzwwP0x0KF8pOl99cmV0dXJuIGM9KGRbdF0tZC5taW4pL2QubWF4fHwwLGphKGQuYisoXz9fKGMpOmMpKmQudikrZC51fX1mdW5jdGlvbiBmYihpKXt2YXIgbj1NYXRoLnBvdygxMCwoKGkrIiIpLnNwbGl0KCIuIilbMV18fCIiKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1qYShNYXRoLnJvdW5kKHBhcnNlRmxvYXQoZSkvaSkqaSpuKTtyZXR1cm4oci1yJTEpL24rKHQoZSk/MDpZYShlKSl9fWZ1bmN0aW9uIGdiKGgsZSl7dmFyIGwsZixyPSQoaCk7cmV0dXJuIXImJnYoaCkmJihsPXI9aC5yYWRpdXN8fFUsaC52YWx1ZXM/KGg9T3QoaC52YWx1ZXMpLChmPSF0KGhbMF0pKSYmKGwqPWwpKTpoPWZiKGguaW5jcmVtZW50KSksV2EoZSxyP3MoaCk/ZnVuY3Rpb24odCl7cmV0dXJuIGY9aCh0KSxNYXRoLmFicyhmLXQpPD1sP2Y6dH06ZnVuY3Rpb24oZSl7Zm9yKHZhciByLGksbj1wYXJzZUZsb2F0KGY/ZS54OmUpLGE9cGFyc2VGbG9hdChmP2UueTowKSxzPVUsbz0wLHU9aC5sZW5ndGg7dS0tOykocj1mPyhyPWhbdV0ueC1uKSpyKyhpPWhbdV0ueS1hKSppOk1hdGguYWJzKGhbdV0tbikpPHMmJihzPXIsbz11KTtyZXR1cm4gbz0hbHx8czw9bD9oW29dOmUsZnx8bz09PWV8fHQoZSk/bzpvK1lhKGUpfTpmYihoKSl9ZnVuY3Rpb24gaGIodCxlLHIsaSl7cmV0dXJuIFdhKCQodCk/IWU6ITA9PT1yPyEhKHI9MCk6IWksZnVuY3Rpb24oKXtyZXR1cm4gJCh0KT90W35+KE1hdGgucmFuZG9tKCkqdC5sZW5ndGgpXToocj1yfHwxZS01KSYmKGk9cjwxP01hdGgucG93KDEwLChyKyIiKS5sZW5ndGgtMik6MSkmJk1hdGguZmxvb3IoTWF0aC5yb3VuZCgodC1yLzIrTWF0aC5yYW5kb20oKSooZS10Ky45OSpyKSkvcikqcippKS9pfSl9ZnVuY3Rpb24gbGIoZSxyLHQpe3JldHVybiBXYSh0LGZ1bmN0aW9uKHQpe3JldHVybiBlW35+cih0KV19KX1mdW5jdGlvbiBvYih0KXtmb3IodmFyIGUscixpLG4sYT0wLHM9IiI7fihlPXQuaW5kZXhPZigicmFuZG9tKCIsYSkpOylpPXQuaW5kZXhPZigiKSIsZSksbj0iWyI9PT10LmNoYXJBdChlKzcpLHI9dC5zdWJzdHIoZSs3LGktZS03KS5tYXRjaChuP2F0OnR0KSxzKz10LnN1YnN0cihhLGUtYSkraGIobj9yOityWzBdLG4/MDorclsxXSwrclsyXXx8MWUtNSksYT1pKzE7cmV0dXJuIHMrdC5zdWJzdHIoYSx0Lmxlbmd0aC1hKX1mdW5jdGlvbiByYih0LGUscil7dmFyIGksbixhLHM9dC5sYWJlbHMsbz1VO2ZvcihpIGluIHMpKG49c1tpXS1lKTwwPT0hIXImJm4mJm8+KG49TWF0aC5hYnMobikpJiYoYT1pLG89bik7cmV0dXJuIGF9ZnVuY3Rpb24gdGIodCl7cmV0dXJuIHphKHQpLHQuc2Nyb2xsVHJpZ2dlciYmdC5zY3JvbGxUcmlnZ2VyLmtpbGwoISFCKSx0LnByb2dyZXNzKCk8MSYmQ3QodCwib25JbnRlcnJ1cHQiKSx0fWZ1bmN0aW9uIHliKHQsZSxyKXtyZXR1cm4oNioodCs9dDwwPzE6MTx0Py0xOjApPDE/ZSsoci1lKSp0KjY6dDwuNT9yOjMqdDwyP2UrKHItZSkqKDIvMy10KSo2OmUpKkF0Ky41fDB9ZnVuY3Rpb24gemIoZSxyLGkpe3ZhciBuLGEscyxvLHUsaCxsLGYsYyxkLHA9ZT90KGUpP1tlPj4xNixlPj44JkF0LGUmQXRdOjA6U3QuYmxhY2s7aWYoIXApe2lmKCIsIj09PWUuc3Vic3RyKC0xKSYmKGU9ZS5zdWJzdHIoMCxlLmxlbmd0aC0xKSksU3RbZV0pcD1TdFtlXTtlbHNlIGlmKCIjIj09PWUuY2hhckF0KDApKXtpZihlLmxlbmd0aDw2JiYoZT0iIyIrKG49ZS5jaGFyQXQoMSkpK24rKGE9ZS5jaGFyQXQoMikpK2ErKHM9ZS5jaGFyQXQoMykpK3MrKDU9PT1lLmxlbmd0aD9lLmNoYXJBdCg0KStlLmNoYXJBdCg0KToiIikpLDk9PT1lLmxlbmd0aClyZXR1cm5bKHA9cGFyc2VJbnQoZS5zdWJzdHIoMSw2KSwxNikpPj4xNixwPj44JkF0LHAmQXQscGFyc2VJbnQoZS5zdWJzdHIoNyksMTYpLzI1NV07cD1bKGU9cGFyc2VJbnQoZS5zdWJzdHIoMSksMTYpKT4+MTYsZT4+OCZBdCxlJkF0XX1lbHNlIGlmKCJoc2wiPT09ZS5zdWJzdHIoMCwzKSlpZihwPWQ9ZS5tYXRjaCh0dCkscil7aWYofmUuaW5kZXhPZigiPSIpKXJldHVybiBwPWUubWF0Y2goZXQpLGkmJnAubGVuZ3RoPDQmJihwWzNdPTEpLHB9ZWxzZSBvPStwWzBdJTM2MC8zNjAsdT1wWzFdLzEwMCxuPTIqKGg9cFsyXS8xMDApLShhPWg8PS41P2gqKHUrMSk6aCt1LWgqdSksMzxwLmxlbmd0aCYmKHBbM10qPTEpLHBbMF09eWIobysxLzMsbixhKSxwWzFdPXliKG8sbixhKSxwWzJdPXliKG8tMS8zLG4sYSk7ZWxzZSBwPWUubWF0Y2godHQpfHxTdC50cmFuc3BhcmVudDtwPXAubWFwKE51bWJlcil9cmV0dXJuIHImJiFkJiYobj1wWzBdL0F0LGE9cFsxXS9BdCxzPXBbMl0vQXQsaD0oKGw9TWF0aC5tYXgobixhLHMpKSsoZj1NYXRoLm1pbihuLGEscykpKS8yLGw9PT1mP289dT0wOihjPWwtZix1PS41PGg/Yy8oMi1sLWYpOmMvKGwrZiksbz1sPT09bj8oYS1zKS9jKyhhPHM/NjowKTpsPT09YT8ocy1uKS9jKzI6KG4tYSkvYys0LG8qPTYwKSxwWzBdPX5+KG8rLjUpLHBbMV09fn4oMTAwKnUrLjUpLHBbMl09fn4oMTAwKmgrLjUpKSxpJiZwLmxlbmd0aDw0JiYocFszXT0xKSxwfWZ1bmN0aW9uIEFiKHQpe3ZhciByPVtdLGk9W10sbj0tMTtyZXR1cm4gdC5zcGxpdChSdCkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKHJ0KXx8W107ci5wdXNoLmFwcGx5KHIsZSksaS5wdXNoKG4rPWUubGVuZ3RoKzEpfSksci5jPWkscn1mdW5jdGlvbiBCYih0LGUscil7dmFyIGksbixhLHMsbz0iIix1PSh0K28pLm1hdGNoKFJ0KSxoPWU/ImhzbGEoIjoicmdiYSgiLGw9MDtpZighdSlyZXR1cm4gdDtpZih1PXUubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXpiKHQsZSwxKSkmJmgrKGU/dFswXSsiLCIrdFsxXSsiJSwiK3RbMl0rIiUsIit0WzNdOnQuam9pbigiLCIpKSsiKSJ9KSxyJiYoYT1BYih0KSwoaT1yLmMpLmpvaW4obykhPT1hLmMuam9pbihvKSkpZm9yKHM9KG49dC5yZXBsYWNlKFJ0LCIxIikuc3BsaXQocnQpKS5sZW5ndGgtMTtsPHM7bCsrKW8rPW5bbF0rKH5pLmluZGV4T2YobCk/dS5zaGlmdCgpfHxoKyIwLDAsMCwwKSI6KGEubGVuZ3RoP2E6dS5sZW5ndGg/dTpyKS5zaGlmdCgpKTtpZighbilmb3Iocz0obj10LnNwbGl0KFJ0KSkubGVuZ3RoLTE7bDxzO2wrKylvKz1uW2xdK3VbbF07cmV0dXJuIG8rbltzXX1mdW5jdGlvbiBFYih0KXt2YXIgZSxyPXQuam9pbigiICIpO2lmKFJ0Lmxhc3RJbmRleD0wLFJ0LnRlc3QocikpcmV0dXJuIGU9RHQudGVzdChyKSx0WzFdPUJiKHRbMV0sZSksdFswXT1CYih0WzBdLGUsQWIodFsxXSkpLCEwfWZ1bmN0aW9uIE5iKHQpe3ZhciBlPSh0KyIiKS5zcGxpdCgiKCIpLHI9RnRbZVswXV07cmV0dXJuIHImJjE8ZS5sZW5ndGgmJnIuY29uZmlnP3IuY29uZmlnLmFwcGx5KG51bGwsfnQuaW5kZXhPZigieyIpP1tmdW5jdGlvbiBfcGFyc2VPYmplY3RJblN0cmluZyh0KXtmb3IodmFyIGUscixpLG49e30sYT10LnN1YnN0cigxLHQubGVuZ3RoLTMpLnNwbGl0KCI6Iikscz1hWzBdLG89MSx1PWEubGVuZ3RoO288dTtvKyspcj1hW29dLGU9byE9PXUtMT9yLmxhc3RJbmRleE9mKCIsIik6ci5sZW5ndGgsaT1yLnN1YnN0cigwLGUpLG5bc109aXNOYU4oaSk/aS5yZXBsYWNlKEJ0LCIiKS50cmltKCk6K2kscz1yLnN1YnN0cihlKzEpLnRyaW0oKTtyZXR1cm4gbn0oZVsxXSldOmZ1bmN0aW9uIF92YWx1ZUluUGFyZW50aGVzZXModCl7dmFyIGU9dC5pbmRleE9mKCIoIikrMSxyPXQuaW5kZXhPZigiKSIpLGk9dC5pbmRleE9mKCIoIixlKTtyZXR1cm4gdC5zdWJzdHJpbmcoZSx+aSYmaTxyP3QuaW5kZXhPZigiKSIscisxKTpyKX0odCkuc3BsaXQoIiwiKS5tYXAob2EpKTpGdC5fQ0UmJkl0LnRlc3QodCk/RnQuX0NFKCIiLHQpOnJ9ZnVuY3Rpb24gUGIodCxlKXtmb3IodmFyIHIsaT10Ll9maXJzdDtpOylpIGluc3RhbmNlb2YgVXQ/UGIoaSxlKTohaS52YXJzLnlveW9FYXNlfHxpLl95b3lvJiZpLl9yZXBlYXR8fGkuX3lveW89PT1lfHwoaS50aW1lbGluZT9QYihpLnRpbWVsaW5lLGUpOihyPWkuX2Vhc2UsaS5fZWFzZT1pLl95RWFzZSxpLl95RWFzZT1yLGkuX3lveW89ZSkpLGk9aS5fbmV4dH1mdW5jdGlvbiBSYih0LGUscixpKXt2b2lkIDA9PT1yJiYocj1mdW5jdGlvbiBlYXNlT3V0KHQpe3JldHVybiAxLWUoMS10KX0pLHZvaWQgMD09PWkmJihpPWZ1bmN0aW9uIGVhc2VJbk91dCh0KXtyZXR1cm4gdDwuNT9lKDIqdCkvMjoxLWUoMiooMS10KSkvMn0pO3ZhciBuLGE9e2Vhc2VJbjplLGVhc2VPdXQ6cixlYXNlSW5PdXQ6aX07cmV0dXJuIGhhKHQsZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIEZ0W3RdPW90W3RdPWEsRnRbbj10LnRvTG93ZXJDYXNlKCldPXIsYSlGdFtuKygiZWFzZUluIj09PWU/Ii5pbiI6ImVhc2VPdXQiPT09ZT8iLm91dCI6Ii5pbk91dCIpXT1GdFt0KyIuIitlXT1hW2VdfSksYX1mdW5jdGlvbiBTYihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/KDEtZSgxLTIqdCkpLzI6LjUrZSgyKih0LS41KSkvMn19ZnVuY3Rpb24gVGIocix0LGUpe2Z1bmN0aW9uIEhtKHQpe3JldHVybiAxPT09dD8xOmkqTWF0aC5wb3coMiwtMTAqdCkqRygodC1hKSpuKSsxfXZhciBpPTE8PXQ/dDoxLG49KGV8fChyPy4zOi40NSkpLyh0PDE/dDoxKSxhPW4vVyooTWF0aC5hc2luKDEvaSl8fDApLHM9Im91dCI9PT1yP0htOiJpbiI9PT1yP2Z1bmN0aW9uKHQpe3JldHVybiAxLUhtKDEtdCl9OlNiKEhtKTtyZXR1cm4gbj1XL24scy5jb25maWc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gVGIocix0LGUpfSxzfWZ1bmN0aW9uIFViKGUscil7ZnVuY3Rpb24gUG0odCl7cmV0dXJuIHQ/LS10KnQqKChyKzEpKnQrcikrMTowfXZvaWQgMD09PXImJihyPTEuNzAxNTgpO3ZhciB0PSJvdXQiPT09ZT9QbToiaW4iPT09ZT9mdW5jdGlvbih0KXtyZXR1cm4gMS1QbSgxLXQpfTpTYihQbSk7cmV0dXJuIHQuY29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBVYihlLHQpfSx0fXZhciBJLEIsbCxMLGgsbixhLGksbyxmLGMsZCxwLF8sbSxnLGIsayxNLE8sQyxBLEQsRSx6LEYsWSxOLGo9e2F1dG9TbGVlcDoxMjAsZm9yY2UzRDoiYXV0byIsbnVsbFRhcmdldFdhcm46MSx1bml0czp7bGluZUhlaWdodDoiIn19LHE9e2R1cmF0aW9uOi41LG92ZXJ3cml0ZTohMSxkZWxheTowfSxVPTFlOCxWPTEvVSxXPTIqTWF0aC5QSSxYPVcvNCxIPTAsSz1NYXRoLnNxcnQsWj1NYXRoLmNvcyxHPU1hdGguc2luLEo9ImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKCl7fSwkPUFycmF5LmlzQXJyYXksdHQ9Lyg/Oi0/XC4/XGR8XC4pKy9naSxldD0vWy0rPS5dKlxkK1suZVwtK10qXGQqW2VcLStdKlxkKi9nLHJ0PS9bLSs9Ll0qXGQrWy5lLV0qXGQqW2EteiVdKi9nLGl0PS9bLSs9Ll0qXGQrXC4/XGQqKD86ZS18ZVwrKT9cZCovZ2ksbnQ9L1srLV09LT9bLlxkXSsvLGF0PS9bXiwnIlxbXF1cc10rL2dpLHN0PS9eWytcLT1lXHNcZF0qXGQrWy5cZF0qKFthLXpdKnwlKVxzKiQvaSxvdD17fSx1dD17c3VwcHJlc3NFdmVudHM6ITAsaXNTdGFydDohMCxraWxsOiExfSxodD17c3VwcHJlc3NFdmVudHM6ITAsa2lsbDohMX0sbHQ9e3N1cHByZXNzRXZlbnRzOiEwfSxmdD17fSxjdD1bXSxkdD17fSxwdD17fSxfdD17fSxtdD0zMCxndD1bXSx2dD0iIix5dD1mdW5jdGlvbiBfbWVyZ2UodCxlKXtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9LFR0PWZ1bmN0aW9uIF9hbmltYXRpb25DeWNsZSh0LGUpe3ZhciByPU1hdGguZmxvb3IodC89ZSk7cmV0dXJuIHQmJnI9PT10P3ItMTpyfSxidD1mdW5jdGlvbiBfaXNGcm9tT3JGcm9tU3RhcnQodCl7dmFyIGU9dC5kYXRhO3JldHVybiJpc0Zyb21TdGFydCI9PT1lfHwiaXNTdGFydCI9PT1lfSx3dD17X3N0YXJ0OjAsZW5kVGltZTpULHRvdGFsRHVyYXRpb246VH0seHQ9ZnVuY3Rpb24gX3BhcnNlUG9zaXRpb24odCxlLGkpe3ZhciBuLGEscyxvPXQubGFiZWxzLHU9dC5fcmVjZW50fHx3dCxoPXQuZHVyYXRpb24oKT49VT91LmVuZFRpbWUoITEpOnQuX2R1cjtyZXR1cm4gcihlKSYmKGlzTmFOKGUpfHxlIGluIG8pPyhhPWUuY2hhckF0KDApLHM9IiUiPT09ZS5zdWJzdHIoLTEpLG49ZS5pbmRleE9mKCI9IiksIjwiPT09YXx8Ij4iPT09YT8oMDw9biYmKGU9ZS5yZXBsYWNlKC89LywiIikpLCgiPCI9PT1hP3UuX3N0YXJ0OnUuZW5kVGltZSgwPD11Ll9yZXBlYXQpKSsocGFyc2VGbG9hdChlLnN1YnN0cigxKSl8fDApKihzPyhuPDA/dTppKS50b3RhbER1cmF0aW9uKCkvMTAwOjEpKTpuPDA/KGUgaW4gb3x8KG9bZV09aCksb1tlXSk6KGE9cGFyc2VGbG9hdChlLmNoYXJBdChuLTEpK2Uuc3Vic3RyKG4rMSkpLHMmJmkmJihhPWEvMTAwKigkKGkpP2lbMF06aSkudG90YWxEdXJhdGlvbigpKSwxPG4/X3BhcnNlUG9zaXRpb24odCxlLnN1YnN0cigwLG4tMSksaSkrYTpoK2EpKTpudWxsPT1lP2g6K2V9LGt0PWZ1bmN0aW9uIF9jbGFtcCh0LGUscil7cmV0dXJuIHI8dD90OmU8cj9lOnJ9LE10PVtdLnNsaWNlLE90PWZ1bmN0aW9uIHRvQXJyYXkodCxlLGkpe3JldHVybiBsJiYhZSYmbC5zZWxlY3Rvcj9sLnNlbGVjdG9yKHQpOiFyKHQpfHxpfHwhbiYmenQoKT8kKHQpP2Z1bmN0aW9uIF9mbGF0dGVuKHQsZSxpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9W10pLHQuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gcih0KSYmIWV8fF9hKHQsMSk/aS5wdXNoLmFwcGx5KGksT3QodCkpOmkucHVzaCh0KX0pfHxpfSh0LGkpOl9hKHQpP010LmNhbGwodCwwKTp0P1t0XTpbXTpNdC5jYWxsKChlfHxhKS5xdWVyeVNlbGVjdG9yQWxsKHQpLDApfSxQdD1mdW5jdGlvbiBtYXBSYW5nZShlLHQscixpLG4pe3ZhciBhPXQtZSxzPWktcjtyZXR1cm4gV2EobixmdW5jdGlvbih0KXtyZXR1cm4gcisoKHQtZSkvYSpzfHwwKX0pfSxDdD1mdW5jdGlvbiBfY2FsbGJhY2sodCxlLHIpe3ZhciBpLG4sYSxzPXQudmFycyxvPXNbZV0sdT1sLGg9dC5fY3R4O2lmKG8pcmV0dXJuIGk9c1tlKyJQYXJhbXMiXSxuPXMuY2FsbGJhY2tTY29wZXx8dCxyJiZjdC5sZW5ndGgmJm1hKCksaCYmKGw9aCksYT1pP28uYXBwbHkobixpKTpvLmNhbGwobiksbD11LGF9LEF0PTI1NSxTdD17YXF1YTpbMCxBdCxBdF0sbGltZTpbMCxBdCwwXSxzaWx2ZXI6WzE5MiwxOTIsMTkyXSxibGFjazpbMCwwLDBdLG1hcm9vbjpbMTI4LDAsMF0sdGVhbDpbMCwxMjgsMTI4XSxibHVlOlswLDAsQXRdLG5hdnk6WzAsMCwxMjhdLHdoaXRlOltBdCxBdCxBdF0sb2xpdmU6WzEyOCwxMjgsMF0seWVsbG93OltBdCxBdCwwXSxvcmFuZ2U6W0F0LDE2NSwwXSxncmF5OlsxMjgsMTI4LDEyOF0scHVycGxlOlsxMjgsMCwxMjhdLGdyZWVuOlswLDEyOCwwXSxyZWQ6W0F0LDAsMF0scGluazpbQXQsMTkyLDIwM10sY3lhbjpbMCxBdCxBdF0sdHJhbnNwYXJlbnQ6W0F0LEF0LEF0LDBdfSxSdD1mdW5jdGlvbigpe3ZhciB0LGU9Iig/OlxcYig/Oig/OnJnYnxyZ2JhfGhzbHxoc2xhKVxcKC4rP1xcKSl8XFxCIyg/OlswLTlhLWZdezMsNH0pezEsMn1cXGIiO2Zvcih0IGluIFN0KWUrPSJ8Iit0KyJcXGIiO3JldHVybiBuZXcgUmVnRXhwKGUrIikiLCJnaSIpfSgpLER0PS9oc2xbYV0/XCgvLEV0PShNPURhdGUubm93LE89NTAwLEM9MzMsQT1NKCksRD1BLHo9RT0xZTMvMjQwLGc9e3RpbWU6MCxmcmFtZTowLHRpY2s6ZnVuY3Rpb24gdGljaygpe3dsKCEwKX0sZGVsdGFSYXRpbzpmdW5jdGlvbiBkZWx0YVJhdGlvKHQpe3JldHVybiBiLygxZTMvKHR8fDYwKSl9LHdha2U6ZnVuY3Rpb24gd2FrZSgpe28mJighbiYmeCgpJiYoaD1uPXdpbmRvdyxhPWguZG9jdW1lbnR8fHt9LG90LmdzYXA9Q2UsKGguZ3NhcFZlcnNpb25zfHwoaC5nc2FwVmVyc2lvbnM9W10pKS5wdXNoKENlLnZlcnNpb24pLFAoaXx8aC5HcmVlblNvY2tHbG9iYWxzfHwhaC5nc2FwJiZofHx7fSksbT1oLnJlcXVlc3RBbmltYXRpb25GcmFtZSkscCYmZy5zbGVlcCgpLF89bXx8ZnVuY3Rpb24odCl7cmV0dXJuIHNldFRpbWVvdXQodCx6LTFlMypnLnRpbWUrMXwwKX0sZD0xLHdsKDIpKX0sc2xlZXA6ZnVuY3Rpb24gc2xlZXAoKXsobT9oLmNhbmNlbEFuaW1hdGlvbkZyYW1lOmNsZWFyVGltZW91dCkocCksZD0wLF89VH0sbGFnU21vb3RoaW5nOmZ1bmN0aW9uIGxhZ1Ntb290aGluZyh0LGUpe089dHx8MWU4LEM9TWF0aC5taW4oZSxPLDApfSxmcHM6ZnVuY3Rpb24gZnBzKHQpe0U9MWUzLyh0fHwyNDApLHo9MWUzKmcudGltZStFfSxhZGQ6ZnVuY3Rpb24gYWRkKG4sdCxlKXt2YXIgYT10P2Z1bmN0aW9uKHQsZSxyLGkpe24odCxlLHIsaSksZy5yZW1vdmUoYSl9Om47cmV0dXJuIGcucmVtb3ZlKG4pLEZbZT8idW5zaGlmdCI6InB1c2giXShhKSx6dCgpLGF9LHJlbW92ZTpmdW5jdGlvbiByZW1vdmUodCxlKXt+KGU9Ri5pbmRleE9mKHQpKSYmRi5zcGxpY2UoZSwxKSYmZTw9ayYmay0tfSxfbGlzdGVuZXJzOkY9W119KSx6dD1mdW5jdGlvbiBfd2FrZSgpe3JldHVybiFkJiZFdC53YWtlKCl9LEZ0PXt9LEl0PS9eW1xkLlwtTV1bXGQuXC0sXHNdLyxCdD0vWyInXS9nLEx0PWZ1bmN0aW9uIF9pbnZlcnRFYXNlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gMS1lKDEtdCl9fSxZdD1mdW5jdGlvbiBfcGFyc2VFYXNlKHQsZSl7cmV0dXJuIHQmJihzKHQpP3Q6RnRbdF18fE5iKHQpKXx8ZX07ZnVuY3Rpb24gd2wodCl7dmFyIGUscixpLG4sYT1NKCktRCxzPSEwPT09dDtpZihPPGEmJihBKz1hLUMpLCgwPChlPShpPShEKz1hKS1BKS16KXx8cykmJihuPSsrZy5mcmFtZSxiPWktMWUzKmcudGltZSxnLnRpbWU9aS89MWUzLHorPWUrKEU8PWU/NDpFLWUpLHI9MSksc3x8KHA9Xyh3bCkpLHIpZm9yKGs9MDtrPEYubGVuZ3RoO2srKylGW2tdKGksYixuLHQpfWZ1bmN0aW9uIGVuKHQpe3JldHVybiB0PE4/WSp0KnQ6dDwuNzI3MjcyNzI3MjcyNzI3Mz9ZKk1hdGgucG93KHQtMS41LzIuNzUsMikrLjc1OnQ8LjkwOTA5MDkwOTA5MDkwOTI/WSoodC09Mi4yNS8yLjc1KSp0Ky45Mzc1OlkqTWF0aC5wb3codC0yLjYyNS8yLjc1LDIpKy45ODQzNzV9aGEoIkxpbmVhcixRdWFkLEN1YmljLFF1YXJ0LFF1aW50LFN0cm9uZyIsZnVuY3Rpb24odCxlKXt2YXIgcj1lPDU/ZSsxOmU7UmIodCsiLFBvd2VyIisoci0xKSxlP2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LHIpfTpmdW5jdGlvbih0KXtyZXR1cm4gdH0sZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5wb3coMS10LHIpfSxmdW5jdGlvbih0KXtyZXR1cm4gdDwuNT9NYXRoLnBvdygyKnQscikvMjoxLU1hdGgucG93KDIqKDEtdCkscikvMn0pfSksRnQuTGluZWFyLmVhc2VOb25lPUZ0Lm5vbmU9RnQuTGluZWFyLmVhc2VJbixSYigiRWxhc3RpYyIsVGIoImluIiksVGIoIm91dCIpLFRiKCkpLFk9Ny41NjI1LE49MS8yLjc1LFJiKCJCb3VuY2UiLGZ1bmN0aW9uKHQpe3JldHVybiAxLWVuKDEtdCl9LGVuKSxSYigiRXhwbyIsZnVuY3Rpb24odCl7cmV0dXJuIHQ/TWF0aC5wb3coMiwxMCoodC0xKSk6MH0pLFJiKCJDaXJjIixmdW5jdGlvbih0KXtyZXR1cm4tKEsoMS10KnQpLTEpfSksUmIoIlNpbmUiLGZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD8xOjEtWih0KlgpfSksUmIoIkJhY2siLFViKCJpbiIpLFViKCJvdXQiKSxVYigpKSxGdC5TdGVwcGVkRWFzZT1GdC5zdGVwcz1vdC5TdGVwcGVkRWFzZT17Y29uZmlnOmZ1bmN0aW9uIGNvbmZpZyh0LGUpe3ZvaWQgMD09PXQmJih0PTEpO3ZhciByPTEvdCxpPXQrKGU/MDoxKSxuPWU/MTowO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4oKGkqa3QoMCwuOTk5OTk5OTksdCl8MCkrbikqcn19fSxxLmVhc2U9RnRbInF1YWQub3V0Il0saGEoIm9uQ29tcGxldGUsb25VcGRhdGUsb25TdGFydCxvblJlcGVhdCxvblJldmVyc2VDb21wbGV0ZSxvbkludGVycnVwdCIsZnVuY3Rpb24odCl7cmV0dXJuIHZ0Kz10KyIsIit0KyJQYXJhbXMsIn0pO3ZhciBOdCxqdD1mdW5jdGlvbiBHU0NhY2hlKHQsZSl7dGhpcy5pZD1IKyssKHQuX2dzYXA9dGhpcykudGFyZ2V0PXQsdGhpcy5oYXJuZXNzPWUsdGhpcy5nZXQ9ZT9lLmdldDpnYSx0aGlzLnNldD1lP2UuZ2V0U2V0dGVyOnJlfSxxdD0oKE50PUFuaW1hdGlvbi5wcm90b3R5cGUpLmRlbGF5PWZ1bmN0aW9uIGRlbGF5KHQpe3JldHVybiB0fHwwPT09dD8odGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LnNtb290aENoaWxkVGltaW5nJiZ0aGlzLnN0YXJ0VGltZSh0aGlzLl9zdGFydCt0LXRoaXMuX2RlbGF5KSx0aGlzLl9kZWxheT10LHRoaXMpOnRoaXMuX2RlbGF5fSxOdC5kdXJhdGlvbj1mdW5jdGlvbiBkdXJhdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnRvdGFsRHVyYXRpb24oMDx0aGlzLl9yZXBlYXQ/dCsodCt0aGlzLl9yRGVsYXkpKnRoaXMuX3JlcGVhdDp0KTp0aGlzLnRvdGFsRHVyYXRpb24oKSYmdGhpcy5fZHVyfSxOdC50b3RhbER1cmF0aW9uPWZ1bmN0aW9uIHRvdGFsRHVyYXRpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2RpcnR5PTAsUmEodGhpcyx0aGlzLl9yZXBlYXQ8MD90Oih0LXRoaXMuX3JlcGVhdCp0aGlzLl9yRGVsYXkpLyh0aGlzLl9yZXBlYXQrMSkpKTp0aGlzLl90RHVyfSxOdC50b3RhbFRpbWU9ZnVuY3Rpb24gdG90YWxUaW1lKHQsZSl7aWYoenQoKSwhYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fdFRpbWU7dmFyIHI9dGhpcy5fZHA7aWYociYmci5zbW9vdGhDaGlsZFRpbWluZyYmdGhpcy5fdHMpe2ZvcihJYSh0aGlzLHQpLCFyLl9kcHx8ci5wYXJlbnR8fEphKHIsdGhpcyk7ciYmci5wYXJlbnQ7KXIucGFyZW50Ll90aW1lIT09ci5fc3RhcnQrKDA8PXIuX3RzP3IuX3RUaW1lL3IuX3RzOihyLnRvdGFsRHVyYXRpb24oKS1yLl90VGltZSkvLXIuX3RzKSYmci50b3RhbFRpbWUoci5fdFRpbWUsITApLHI9ci5wYXJlbnQ7IXRoaXMucGFyZW50JiZ0aGlzLl9kcC5hdXRvUmVtb3ZlQ2hpbGRyZW4mJigwPHRoaXMuX3RzJiZ0PHRoaXMuX3REdXJ8fHRoaXMuX3RzPDAmJjA8dHx8IXRoaXMuX3REdXImJiF0KSYmS2EodGhpcy5fZHAsdGhpcyx0aGlzLl9zdGFydC10aGlzLl9kZWxheSl9cmV0dXJuKHRoaXMuX3RUaW1lIT09dHx8IXRoaXMuX2R1ciYmIWV8fHRoaXMuX2luaXR0ZWQmJk1hdGguYWJzKHRoaXMuX3pUaW1lKT09PVZ8fCF0JiYhdGhpcy5faW5pdHRlZCYmKHRoaXMuYWRkfHx0aGlzLl9wdExvb2t1cCkpJiYodGhpcy5fdHN8fCh0aGlzLl9wVGltZT10KSxuYSh0aGlzLHQsZSkpLHRoaXN9LE50LnRpbWU9ZnVuY3Rpb24gdGltZSh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMudG90YWxUaW1lKE1hdGgubWluKHRoaXMudG90YWxEdXJhdGlvbigpLHQrRWEodGhpcykpJSh0aGlzLl9kdXIrdGhpcy5fckRlbGF5KXx8KHQ/dGhpcy5fZHVyOjApLGUpOnRoaXMuX3RpbWV9LE50LnRvdGFsUHJvZ3Jlc3M9ZnVuY3Rpb24gdG90YWxQcm9ncmVzcyh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMudG90YWxUaW1lKHRoaXMudG90YWxEdXJhdGlvbigpKnQsZSk6dGhpcy50b3RhbER1cmF0aW9uKCk/TWF0aC5taW4oMSx0aGlzLl90VGltZS90aGlzLl90RHVyKTp0aGlzLnJhdGlvfSxOdC5wcm9ncmVzcz1mdW5jdGlvbiBwcm9ncmVzcyh0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMudG90YWxUaW1lKHRoaXMuZHVyYXRpb24oKSooIXRoaXMuX3lveW98fDEmdGhpcy5pdGVyYXRpb24oKT90OjEtdCkrRWEodGhpcyksZSk6dGhpcy5kdXJhdGlvbigpP01hdGgubWluKDEsdGhpcy5fdGltZS90aGlzLl9kdXIpOnRoaXMucmF0aW99LE50Lml0ZXJhdGlvbj1mdW5jdGlvbiBpdGVyYXRpb24odCxlKXt2YXIgcj10aGlzLmR1cmF0aW9uKCkrdGhpcy5fckRlbGF5O3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMudG90YWxUaW1lKHRoaXMuX3RpbWUrKHQtMSkqcixlKTp0aGlzLl9yZXBlYXQ/VHQodGhpcy5fdFRpbWUscikrMToxfSxOdC50aW1lU2NhbGU9ZnVuY3Rpb24gdGltZVNjYWxlKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl9ydHM9PT0tVj8wOnRoaXMuX3J0cztpZih0aGlzLl9ydHM9PT10KXJldHVybiB0aGlzO3ZhciBlPXRoaXMucGFyZW50JiZ0aGlzLl90cz9HYSh0aGlzLnBhcmVudC5fdGltZSx0aGlzKTp0aGlzLl90VGltZTtyZXR1cm4gdGhpcy5fcnRzPSt0fHwwLHRoaXMuX3RzPXRoaXMuX3BzfHx0PT09LVY/MDp0aGlzLl9ydHMsdGhpcy50b3RhbFRpbWUoa3QoLXRoaXMuX2RlbGF5LHRoaXMuX3REdXIsZSksITApLEhhKHRoaXMpLGZ1bmN0aW9uIF9yZWNhY2hlQW5jZXN0b3JzKHQpe2Zvcih2YXIgZT10LnBhcmVudDtlJiZlLnBhcmVudDspZS5fZGlydHk9MSxlLnRvdGFsRHVyYXRpb24oKSxlPWUucGFyZW50O3JldHVybiB0fSh0aGlzKX0sTnQucGF1c2VkPWZ1bmN0aW9uIHBhdXNlZCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcHMhPT10JiYoKHRoaXMuX3BzPXQpPyh0aGlzLl9wVGltZT10aGlzLl90VGltZXx8TWF0aC5tYXgoLXRoaXMuX2RlbGF5LHRoaXMucmF3VGltZSgpKSx0aGlzLl90cz10aGlzLl9hY3Q9MCk6KHp0KCksdGhpcy5fdHM9dGhpcy5fcnRzLHRoaXMudG90YWxUaW1lKHRoaXMucGFyZW50JiYhdGhpcy5wYXJlbnQuc21vb3RoQ2hpbGRUaW1pbmc/dGhpcy5yYXdUaW1lKCk6dGhpcy5fdFRpbWV8fHRoaXMuX3BUaW1lLDE9PT10aGlzLnByb2dyZXNzKCkmJk1hdGguYWJzKHRoaXMuX3pUaW1lKSE9PVYmJih0aGlzLl90VGltZS09VikpKSksdGhpcyk6dGhpcy5fcHN9LE50LnN0YXJ0VGltZT1mdW5jdGlvbiBzdGFydFRpbWUodCl7aWYoYXJndW1lbnRzLmxlbmd0aCl7dGhpcy5fc3RhcnQ9dDt2YXIgZT10aGlzLnBhcmVudHx8dGhpcy5fZHA7cmV0dXJuIWV8fCFlLl9zb3J0JiZ0aGlzLnBhcmVudHx8S2EoZSx0aGlzLHQtdGhpcy5fZGVsYXkpLHRoaXN9cmV0dXJuIHRoaXMuX3N0YXJ0fSxOdC5lbmRUaW1lPWZ1bmN0aW9uIGVuZFRpbWUodCl7cmV0dXJuIHRoaXMuX3N0YXJ0Kyh3KHQpP3RoaXMudG90YWxEdXJhdGlvbigpOnRoaXMuZHVyYXRpb24oKSkvTWF0aC5hYnModGhpcy5fdHN8fDEpfSxOdC5yYXdUaW1lPWZ1bmN0aW9uIHJhd1RpbWUodCl7dmFyIGU9dGhpcy5wYXJlbnR8fHRoaXMuX2RwO3JldHVybiBlP3QmJighdGhpcy5fdHN8fHRoaXMuX3JlcGVhdCYmdGhpcy5fdGltZSYmdGhpcy50b3RhbFByb2dyZXNzKCk8MSk/dGhpcy5fdFRpbWUlKHRoaXMuX2R1cit0aGlzLl9yRGVsYXkpOnRoaXMuX3RzP0dhKGUucmF3VGltZSh0KSx0aGlzKTp0aGlzLl90VGltZTp0aGlzLl90VGltZX0sTnQucmV2ZXJ0PWZ1bmN0aW9uIHJldmVydCh0KXt2b2lkIDA9PT10JiYodD1sdCk7dmFyIGU9QjtyZXR1cm4gQj10LCh0aGlzLl9pbml0dGVkfHx0aGlzLl9zdGFydEF0KSYmKHRoaXMudGltZWxpbmUmJnRoaXMudGltZWxpbmUucmV2ZXJ0KHQpLHRoaXMudG90YWxUaW1lKC0uMDEsdC5zdXBwcmVzc0V2ZW50cykpLCJuZXN0ZWQiIT09dGhpcy5kYXRhJiYhMSE9PXQua2lsbCYmdGhpcy5raWxsKCksQj1lLHRoaXN9LE50Lmdsb2JhbFRpbWU9ZnVuY3Rpb24gZ2xvYmFsVGltZSh0KXtmb3IodmFyIGU9dGhpcyxyPWFyZ3VtZW50cy5sZW5ndGg/dDplLnJhd1RpbWUoKTtlOylyPWUuX3N0YXJ0K3IvKGUuX3RzfHwxKSxlPWUuX2RwO3JldHVybiF0aGlzLnBhcmVudCYmdGhpcy52YXJzLmltbWVkaWF0ZVJlbmRlcj8tMTpyfSxOdC5yZXBlYXQ9ZnVuY3Rpb24gcmVwZWF0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZXBlYXQ9dD09PTEvMD8tMjp0LFNhKHRoaXMpKTotMj09PXRoaXMuX3JlcGVhdD8xLzA6dGhpcy5fcmVwZWF0fSxOdC5yZXBlYXREZWxheT1mdW5jdGlvbiByZXBlYXREZWxheSh0KXtpZihhcmd1bWVudHMubGVuZ3RoKXt2YXIgZT10aGlzLl90aW1lO3JldHVybiB0aGlzLl9yRGVsYXk9dCxTYSh0aGlzKSxlP3RoaXMudGltZShlKTp0aGlzfXJldHVybiB0aGlzLl9yRGVsYXl9LE50LnlveW89ZnVuY3Rpb24geW95byh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feW95bz10LHRoaXMpOnRoaXMuX3lveW99LE50LnNlZWs9ZnVuY3Rpb24gc2Vlayh0LGUpe3JldHVybiB0aGlzLnRvdGFsVGltZSh4dCh0aGlzLHQpLHcoZSkpfSxOdC5yZXN0YXJ0PWZ1bmN0aW9uIHJlc3RhcnQodCxlKXtyZXR1cm4gdGhpcy5wbGF5KCkudG90YWxUaW1lKHQ/LXRoaXMuX2RlbGF5OjAsdyhlKSl9LE50LnBsYXk9ZnVuY3Rpb24gcGxheSh0LGUpe3JldHVybiBudWxsIT10JiZ0aGlzLnNlZWsodCxlKSx0aGlzLnJldmVyc2VkKCExKS5wYXVzZWQoITEpfSxOdC5yZXZlcnNlPWZ1bmN0aW9uIHJldmVyc2UodCxlKXtyZXR1cm4gbnVsbCE9dCYmdGhpcy5zZWVrKHR8fHRoaXMudG90YWxEdXJhdGlvbigpLGUpLHRoaXMucmV2ZXJzZWQoITApLnBhdXNlZCghMSl9LE50LnBhdXNlPWZ1bmN0aW9uIHBhdXNlKHQsZSl7cmV0dXJuIG51bGwhPXQmJnRoaXMuc2Vlayh0LGUpLHRoaXMucGF1c2VkKCEwKX0sTnQucmVzdW1lPWZ1bmN0aW9uIHJlc3VtZSgpe3JldHVybiB0aGlzLnBhdXNlZCghMSl9LE50LnJldmVyc2VkPWZ1bmN0aW9uIHJldmVyc2VkKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyghIXQhPT10aGlzLnJldmVyc2VkKCkmJnRoaXMudGltZVNjYWxlKC10aGlzLl9ydHN8fCh0Py1WOjApKSx0aGlzKTp0aGlzLl9ydHM8MH0sTnQuaW52YWxpZGF0ZT1mdW5jdGlvbiBpbnZhbGlkYXRlKCl7cmV0dXJuIHRoaXMuX2luaXR0ZWQ9dGhpcy5fYWN0PTAsdGhpcy5felRpbWU9LVYsdGhpc30sTnQuaXNBY3RpdmU9ZnVuY3Rpb24gaXNBY3RpdmUoKXt2YXIgdCxlPXRoaXMucGFyZW50fHx0aGlzLl9kcCxyPXRoaXMuX3N0YXJ0O3JldHVybiEoZSYmISh0aGlzLl90cyYmdGhpcy5faW5pdHRlZCYmZS5pc0FjdGl2ZSgpJiYodD1lLnJhd1RpbWUoITApKT49ciYmdDx0aGlzLmVuZFRpbWUoITApLVYpKX0sTnQuZXZlbnRDYWxsYmFjaz1mdW5jdGlvbiBldmVudENhbGxiYWNrKHQsZSxyKXt2YXIgaT10aGlzLnZhcnM7cmV0dXJuIDE8YXJndW1lbnRzLmxlbmd0aD8oZT8oaVt0XT1lLHImJihpW3QrIlBhcmFtcyJdPXIpLCJvblVwZGF0ZSI9PT10JiYodGhpcy5fb25VcGRhdGU9ZSkpOmRlbGV0ZSBpW3RdLHRoaXMpOmlbdF19LE50LnRoZW49ZnVuY3Rpb24gdGhlbih0KXt2YXIgaT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtmdW5jdGlvbiB6bygpe3ZhciB0PWkudGhlbjtpLnRoZW49bnVsbCxzKHIpJiYocj1yKGkpKSYmKHIudGhlbnx8cj09PWkpJiYoaS50aGVuPXQpLGUociksaS50aGVuPXR9dmFyIHI9cyh0KT90OnBhO2kuX2luaXR0ZWQmJjE9PT1pLnRvdGFsUHJvZ3Jlc3MoKSYmMDw9aS5fdHN8fCFpLl90VGltZSYmaS5fdHM8MD96bygpOmkuX3Byb209em99KX0sTnQua2lsbD1mdW5jdGlvbiBraWxsKCl7dGIodGhpcyl9LEFuaW1hdGlvbik7ZnVuY3Rpb24gQW5pbWF0aW9uKHQpe3RoaXMudmFycz10LHRoaXMuX2RlbGF5PSt0LmRlbGF5fHwwLCh0aGlzLl9yZXBlYXQ9dC5yZXBlYXQ9PT0xLzA/LTI6dC5yZXBlYXR8fDApJiYodGhpcy5fckRlbGF5PXQucmVwZWF0RGVsYXl8fDAsdGhpcy5feW95bz0hIXQueW95b3x8ISF0LnlveW9FYXNlKSx0aGlzLl90cz0xLFJhKHRoaXMsK3QuZHVyYXRpb24sMSwxKSx0aGlzLmRhdGE9dC5kYXRhLGwmJih0aGlzLl9jdHg9bCkuZGF0YS5wdXNoKHRoaXMpLGR8fEV0Lndha2UoKX1xYShxdC5wcm90b3R5cGUse190aW1lOjAsX3N0YXJ0OjAsX2VuZDowLF90VGltZTowLF90RHVyOjAsX2RpcnR5OjAsX3JlcGVhdDowLF95b3lvOiExLHBhcmVudDpudWxsLF9pbml0dGVkOiExLF9yRGVsYXk6MCxfdHM6MSxfZHA6MCxyYXRpbzowLF96VGltZTotVixfcHJvbTowLF9wczohMSxfcnRzOjF9KTt2YXIgVXQ9ZnVuY3Rpb24oaSl7ZnVuY3Rpb24gVGltZWxpbmUodCxlKXt2YXIgcjtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9e30pLChyPWkuY2FsbCh0aGlzLHQpfHx0aGlzKS5sYWJlbHM9e30sci5zbW9vdGhDaGlsZFRpbWluZz0hIXQuc21vb3RoQ2hpbGRUaW1pbmcsci5hdXRvUmVtb3ZlQ2hpbGRyZW49ISF0LmF1dG9SZW1vdmVDaGlsZHJlbixyLl9zb3J0PXcodC5zb3J0Q2hpbGRyZW4pLEwmJkthKHQucGFyZW50fHxMLF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQociksZSksdC5yZXZlcnNlZCYmci5yZXZlcnNlKCksdC5wYXVzZWQmJnIucGF1c2VkKCEwKSx0LnNjcm9sbFRyaWdnZXImJkxhKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQociksdC5zY3JvbGxUcmlnZ2VyKSxyfV9pbmhlcml0c0xvb3NlKFRpbWVsaW5lLGkpO3ZhciBlPVRpbWVsaW5lLnByb3RvdHlwZTtyZXR1cm4gZS50bz1mdW5jdGlvbiB0byh0LGUscil7cmV0dXJuIFZhKDAsYXJndW1lbnRzLHRoaXMpLHRoaXN9LGUuZnJvbT1mdW5jdGlvbiBmcm9tKHQsZSxyKXtyZXR1cm4gVmEoMSxhcmd1bWVudHMsdGhpcyksdGhpc30sZS5mcm9tVG89ZnVuY3Rpb24gZnJvbVRvKHQsZSxyLGkpe3JldHVybiBWYSgyLGFyZ3VtZW50cyx0aGlzKSx0aGlzfSxlLnNldD1mdW5jdGlvbiBzZXQodCxlLHIpe3JldHVybiBlLmR1cmF0aW9uPTAsZS5wYXJlbnQ9dGhpcyx2YShlKS5yZXBlYXREZWxheXx8KGUucmVwZWF0PTApLGUuaW1tZWRpYXRlUmVuZGVyPSEhZS5pbW1lZGlhdGVSZW5kZXIsbmV3IEd0KHQsZSx4dCh0aGlzLHIpLDEpLHRoaXN9LGUuY2FsbD1mdW5jdGlvbiBjYWxsKHQsZSxyKXtyZXR1cm4gS2EodGhpcyxHdC5kZWxheWVkQ2FsbCgwLHQsZSkscil9LGUuc3RhZ2dlclRvPWZ1bmN0aW9uIHN0YWdnZXJUbyh0LGUscixpLG4sYSxzKXtyZXR1cm4gci5kdXJhdGlvbj1lLHIuc3RhZ2dlcj1yLnN0YWdnZXJ8fGksci5vbkNvbXBsZXRlPWEsci5vbkNvbXBsZXRlUGFyYW1zPXMsci5wYXJlbnQ9dGhpcyxuZXcgR3QodCxyLHh0KHRoaXMsbikpLHRoaXN9LGUuc3RhZ2dlckZyb209ZnVuY3Rpb24gc3RhZ2dlckZyb20odCxlLHIsaSxuLGEscyl7cmV0dXJuIHIucnVuQmFja3dhcmRzPTEsdmEocikuaW1tZWRpYXRlUmVuZGVyPXcoci5pbW1lZGlhdGVSZW5kZXIpLHRoaXMuc3RhZ2dlclRvKHQsZSxyLGksbixhLHMpfSxlLnN0YWdnZXJGcm9tVG89ZnVuY3Rpb24gc3RhZ2dlckZyb21Ubyh0LGUscixpLG4sYSxzLG8pe3JldHVybiBpLnN0YXJ0QXQ9cix2YShpKS5pbW1lZGlhdGVSZW5kZXI9dyhpLmltbWVkaWF0ZVJlbmRlciksdGhpcy5zdGFnZ2VyVG8odCxlLGksbixhLHMsbyl9LGUucmVuZGVyPWZ1bmN0aW9uIHJlbmRlcih0LGUscil7dmFyIGksbixhLHMsbyx1LGgsbCxmLGMsZCxwLF89dGhpcy5fdGltZSxtPXRoaXMuX2RpcnR5P3RoaXMudG90YWxEdXJhdGlvbigpOnRoaXMuX3REdXIsZz10aGlzLl9kdXIsdj10PD0wPzA6amEodCkseT10aGlzLl96VGltZTwwIT10PDAmJih0aGlzLl9pbml0dGVkfHwhZyk7aWYodGhpcyE9PUwmJm08diYmMDw9dCYmKHY9bSksdiE9PXRoaXMuX3RUaW1lfHxyfHx5KXtpZihfIT09dGhpcy5fdGltZSYmZyYmKHYrPXRoaXMuX3RpbWUtXyx0Kz10aGlzLl90aW1lLV8pLGk9dixmPXRoaXMuX3N0YXJ0LHU9IShsPXRoaXMuX3RzKSx5JiYoZ3x8KF89dGhpcy5felRpbWUpLCF0JiZlfHwodGhpcy5felRpbWU9dCkpLHRoaXMuX3JlcGVhdCl7aWYoZD10aGlzLl95b3lvLG89Zyt0aGlzLl9yRGVsYXksdGhpcy5fcmVwZWF0PC0xJiZ0PDApcmV0dXJuIHRoaXMudG90YWxUaW1lKDEwMCpvK3QsZSxyKTtpZihpPWphKHYlbyksdj09PW0/KHM9dGhpcy5fcmVwZWF0LGk9Zyk6KChzPX5+KHYvbykpJiZzPT09di9vJiYoaT1nLHMtLSksZzxpJiYoaT1nKSksYz1UdCh0aGlzLl90VGltZSxvKSwhXyYmdGhpcy5fdFRpbWUmJmMhPT1zJiYoYz1zKSxkJiYxJnMmJihpPWctaSxwPTEpLHMhPT1jJiYhdGhpcy5fbG9jayl7dmFyIFQ9ZCYmMSZjLGI9VD09PShkJiYxJnMpO2lmKHM8YyYmKFQ9IVQpLF89VD8wOmcsdGhpcy5fbG9jaz0xLHRoaXMucmVuZGVyKF98fChwPzA6amEocypvKSksZSwhZykuX2xvY2s9MCx0aGlzLl90VGltZT12LCFlJiZ0aGlzLnBhcmVudCYmQ3QodGhpcywib25SZXBlYXQiKSx0aGlzLnZhcnMucmVwZWF0UmVmcmVzaCYmIXAmJih0aGlzLmludmFsaWRhdGUoKS5fbG9jaz0xKSxfJiZfIT09dGhpcy5fdGltZXx8dSE9IXRoaXMuX3RzfHx0aGlzLnZhcnMub25SZXBlYXQmJiF0aGlzLnBhcmVudCYmIXRoaXMuX2FjdClyZXR1cm4gdGhpcztpZihnPXRoaXMuX2R1cixtPXRoaXMuX3REdXIsYiYmKHRoaXMuX2xvY2s9MixfPVQ/ZzotMWUtNCx0aGlzLnJlbmRlcihfLCEwKSx0aGlzLnZhcnMucmVwZWF0UmVmcmVzaCYmIXAmJnRoaXMuaW52YWxpZGF0ZSgpKSx0aGlzLl9sb2NrPTAsIXRoaXMuX3RzJiYhdSlyZXR1cm4gdGhpcztQYih0aGlzLHApfX1pZih0aGlzLl9oYXNQYXVzZSYmIXRoaXMuX2ZvcmNpbmcmJnRoaXMuX2xvY2s8MiYmKGg9ZnVuY3Rpb24gX2ZpbmROZXh0UGF1c2VUd2Vlbih0LGUscil7dmFyIGk7aWYoZTxyKWZvcihpPXQuX2ZpcnN0O2kmJmkuX3N0YXJ0PD1yOyl7aWYoImlzUGF1c2UiPT09aS5kYXRhJiZpLl9zdGFydD5lKXJldHVybiBpO2k9aS5fbmV4dH1lbHNlIGZvcihpPXQuX2xhc3Q7aSYmaS5fc3RhcnQ+PXI7KXtpZigiaXNQYXVzZSI9PT1pLmRhdGEmJmkuX3N0YXJ0PGUpcmV0dXJuIGk7aT1pLl9wcmV2fX0odGhpcyxqYShfKSxqYShpKSkpJiYodi09aS0oaT1oLl9zdGFydCkpLHRoaXMuX3RUaW1lPXYsdGhpcy5fdGltZT1pLHRoaXMuX2FjdD0hbCx0aGlzLl9pbml0dGVkfHwodGhpcy5fb25VcGRhdGU9dGhpcy52YXJzLm9uVXBkYXRlLHRoaXMuX2luaXR0ZWQ9MSx0aGlzLl96VGltZT10LF89MCksIV8mJmkmJiFlJiYoQ3QodGhpcywib25TdGFydCIpLHRoaXMuX3RUaW1lIT09dikpcmV0dXJuIHRoaXM7aWYoXzw9aSYmMDw9dClmb3Iobj10aGlzLl9maXJzdDtuOyl7aWYoYT1uLl9uZXh0LChuLl9hY3R8fGk+PW4uX3N0YXJ0KSYmbi5fdHMmJmghPT1uKXtpZihuLnBhcmVudCE9PXRoaXMpcmV0dXJuIHRoaXMucmVuZGVyKHQsZSxyKTtpZihuLnJlbmRlcigwPG4uX3RzPyhpLW4uX3N0YXJ0KSpuLl90czoobi5fZGlydHk/bi50b3RhbER1cmF0aW9uKCk6bi5fdER1cikrKGktbi5fc3RhcnQpKm4uX3RzLGUsciksaSE9PXRoaXMuX3RpbWV8fCF0aGlzLl90cyYmIXUpe2g9MCxhJiYodis9dGhpcy5felRpbWU9LVYpO2JyZWFrfX1uPWF9ZWxzZXtuPXRoaXMuX2xhc3Q7Zm9yKHZhciB3PXQ8MD90Omk7bjspe2lmKGE9bi5fcHJldiwobi5fYWN0fHx3PD1uLl9lbmQpJiZuLl90cyYmaCE9PW4pe2lmKG4ucGFyZW50IT09dGhpcylyZXR1cm4gdGhpcy5yZW5kZXIodCxlLHIpO2lmKG4ucmVuZGVyKDA8bi5fdHM/KHctbi5fc3RhcnQpKm4uX3RzOihuLl9kaXJ0eT9uLnRvdGFsRHVyYXRpb24oKTpuLl90RHVyKSsody1uLl9zdGFydCkqbi5fdHMsZSxyfHxCJiYobi5faW5pdHRlZHx8bi5fc3RhcnRBdCkpLGkhPT10aGlzLl90aW1lfHwhdGhpcy5fdHMmJiF1KXtoPTAsYSYmKHYrPXRoaXMuX3pUaW1lPXc/LVY6Vik7YnJlYWt9fW49YX19aWYoaCYmIWUmJih0aGlzLnBhdXNlKCksaC5yZW5kZXIoXzw9aT8wOi1WKS5felRpbWU9Xzw9aT8xOi0xLHRoaXMuX3RzKSlyZXR1cm4gdGhpcy5fc3RhcnQ9ZixIYSh0aGlzKSx0aGlzLnJlbmRlcih0LGUscik7dGhpcy5fb25VcGRhdGUmJiFlJiZDdCh0aGlzLCJvblVwZGF0ZSIsITApLCh2PT09bSYmdGhpcy5fdFRpbWU+PXRoaXMudG90YWxEdXJhdGlvbigpfHwhdiYmXykmJihmIT09dGhpcy5fc3RhcnQmJk1hdGguYWJzKGwpPT09TWF0aC5hYnModGhpcy5fdHMpfHx0aGlzLl9sb2NrfHwoIXQmJmd8fCEodj09PW0mJjA8dGhpcy5fdHN8fCF2JiZ0aGlzLl90czwwKXx8emEodGhpcywxKSxlfHx0PDAmJiFffHwhdiYmIV8mJm18fChDdCh0aGlzLHY9PT1tJiYwPD10PyJvbkNvbXBsZXRlIjoib25SZXZlcnNlQ29tcGxldGUiLCEwKSwhdGhpcy5fcHJvbXx8djxtJiYwPHRoaXMudGltZVNjYWxlKCl8fHRoaXMuX3Byb20oKSkpKX1yZXR1cm4gdGhpc30sZS5hZGQ9ZnVuY3Rpb24gYWRkKGUsaSl7dmFyIG49dGhpcztpZih0KGkpfHwoaT14dCh0aGlzLGksZSkpLCEoZSBpbnN0YW5jZW9mIHF0KSl7aWYoJChlKSlyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBuLmFkZCh0LGkpfSksdGhpcztpZihyKGUpKXJldHVybiB0aGlzLmFkZExhYmVsKGUsaSk7aWYoIXMoZSkpcmV0dXJuIHRoaXM7ZT1HdC5kZWxheWVkQ2FsbCgwLGUpfXJldHVybiB0aGlzIT09ZT9LYSh0aGlzLGUsaSk6dGhpc30sZS5nZXRDaGlsZHJlbj1mdW5jdGlvbiBnZXRDaGlsZHJlbih0LGUscixpKXt2b2lkIDA9PT10JiYodD0hMCksdm9pZCAwPT09ZSYmKGU9ITApLHZvaWQgMD09PXImJihyPSEwKSx2b2lkIDA9PT1pJiYoaT0tVSk7Zm9yKHZhciBuPVtdLGE9dGhpcy5fZmlyc3Q7YTspYS5fc3RhcnQ+PWkmJihhIGluc3RhbmNlb2YgR3Q/ZSYmbi5wdXNoKGEpOihyJiZuLnB1c2goYSksdCYmbi5wdXNoLmFwcGx5KG4sYS5nZXRDaGlsZHJlbighMCxlLHIpKSkpLGE9YS5fbmV4dDtyZXR1cm4gbn0sZS5nZXRCeUlkPWZ1bmN0aW9uIGdldEJ5SWQodCl7Zm9yKHZhciBlPXRoaXMuZ2V0Q2hpbGRyZW4oMSwxLDEpLHI9ZS5sZW5ndGg7ci0tOylpZihlW3JdLnZhcnMuaWQ9PT10KXJldHVybiBlW3JdfSxlLnJlbW92ZT1mdW5jdGlvbiByZW1vdmUodCl7cmV0dXJuIHIodCk/dGhpcy5yZW1vdmVMYWJlbCh0KTpzKHQpP3RoaXMua2lsbFR3ZWVuc09mKHQpOih5YSh0aGlzLHQpLHQ9PT10aGlzLl9yZWNlbnQmJih0aGlzLl9yZWNlbnQ9dGhpcy5fbGFzdCksQWEodGhpcykpfSxlLnRvdGFsVGltZT1mdW5jdGlvbiB0b3RhbFRpbWUodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZm9yY2luZz0xLCF0aGlzLl9kcCYmdGhpcy5fdHMmJih0aGlzLl9zdGFydD1qYShFdC50aW1lLSgwPHRoaXMuX3RzP3QvdGhpcy5fdHM6KHRoaXMudG90YWxEdXJhdGlvbigpLXQpLy10aGlzLl90cykpKSxpLnByb3RvdHlwZS50b3RhbFRpbWUuY2FsbCh0aGlzLHQsZSksdGhpcy5fZm9yY2luZz0wLHRoaXMpOnRoaXMuX3RUaW1lfSxlLmFkZExhYmVsPWZ1bmN0aW9uIGFkZExhYmVsKHQsZSl7cmV0dXJuIHRoaXMubGFiZWxzW3RdPXh0KHRoaXMsZSksdGhpc30sZS5yZW1vdmVMYWJlbD1mdW5jdGlvbiByZW1vdmVMYWJlbCh0KXtyZXR1cm4gZGVsZXRlIHRoaXMubGFiZWxzW3RdLHRoaXN9LGUuYWRkUGF1c2U9ZnVuY3Rpb24gYWRkUGF1c2UodCxlLHIpe3ZhciBpPUd0LmRlbGF5ZWRDYWxsKDAsZXx8VCxyKTtyZXR1cm4gaS5kYXRhPSJpc1BhdXNlIix0aGlzLl9oYXNQYXVzZT0xLEthKHRoaXMsaSx4dCh0aGlzLHQpKX0sZS5yZW1vdmVQYXVzZT1mdW5jdGlvbiByZW1vdmVQYXVzZSh0KXt2YXIgZT10aGlzLl9maXJzdDtmb3IodD14dCh0aGlzLHQpO2U7KWUuX3N0YXJ0PT09dCYmImlzUGF1c2UiPT09ZS5kYXRhJiZ6YShlKSxlPWUuX25leHR9LGUua2lsbFR3ZWVuc09mPWZ1bmN0aW9uIGtpbGxUd2VlbnNPZih0LGUscil7Zm9yKHZhciBpPXRoaXMuZ2V0VHdlZW5zT2YodCxyKSxuPWkubGVuZ3RoO24tLTspVnQhPT1pW25dJiZpW25dLmtpbGwodCxlKTtyZXR1cm4gdGhpc30sZS5nZXRUd2VlbnNPZj1mdW5jdGlvbiBnZXRUd2VlbnNPZihlLHIpe2Zvcih2YXIgaSxuPVtdLGE9T3QoZSkscz10aGlzLl9maXJzdCxvPXQocik7czspcyBpbnN0YW5jZW9mIEd0P2xhKHMuX3RhcmdldHMsYSkmJihvPyghVnR8fHMuX2luaXR0ZWQmJnMuX3RzKSYmcy5nbG9iYWxUaW1lKDApPD1yJiZzLmdsb2JhbFRpbWUocy50b3RhbER1cmF0aW9uKCkpPnI6IXJ8fHMuaXNBY3RpdmUoKSkmJm4ucHVzaChzKTooaT1zLmdldFR3ZWVuc09mKGEscikpLmxlbmd0aCYmbi5wdXNoLmFwcGx5KG4saSkscz1zLl9uZXh0O3JldHVybiBufSxlLnR3ZWVuVG89ZnVuY3Rpb24gdHdlZW5Ubyh0LGUpe2U9ZXx8e307dmFyIHIsaT10aGlzLG49eHQoaSx0KSxhPWUuc3RhcnRBdCxzPWUub25TdGFydCxvPWUub25TdGFydFBhcmFtcyx1PWUuaW1tZWRpYXRlUmVuZGVyLGg9R3QudG8oaSxxYSh7ZWFzZTplLmVhc2V8fCJub25lIixsYXp5OiExLGltbWVkaWF0ZVJlbmRlcjohMSx0aW1lOm4sb3ZlcndyaXRlOiJhdXRvIixkdXJhdGlvbjplLmR1cmF0aW9ufHxNYXRoLmFicygobi0oYSYmInRpbWUiaW4gYT9hLnRpbWU6aS5fdGltZSkpL2kudGltZVNjYWxlKCkpfHxWLG9uU3RhcnQ6ZnVuY3Rpb24gb25TdGFydCgpe2lmKGkucGF1c2UoKSwhcil7dmFyIHQ9ZS5kdXJhdGlvbnx8TWF0aC5hYnMoKG4tKGEmJiJ0aW1lImluIGE/YS50aW1lOmkuX3RpbWUpKS9pLnRpbWVTY2FsZSgpKTtoLl9kdXIhPT10JiZSYShoLHQsMCwxKS5yZW5kZXIoaC5fdGltZSwhMCwhMCkscj0xfXMmJnMuYXBwbHkoaCxvfHxbXSl9fSxlKSk7cmV0dXJuIHU/aC5yZW5kZXIoMCk6aH0sZS50d2VlbkZyb21Ubz1mdW5jdGlvbiB0d2VlbkZyb21Ubyh0LGUscil7cmV0dXJuIHRoaXMudHdlZW5UbyhlLHFhKHtzdGFydEF0Ont0aW1lOnh0KHRoaXMsdCl9fSxyKSl9LGUucmVjZW50PWZ1bmN0aW9uIHJlY2VudCgpe3JldHVybiB0aGlzLl9yZWNlbnR9LGUubmV4dExhYmVsPWZ1bmN0aW9uIG5leHRMYWJlbCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9dGhpcy5fdGltZSkscmIodGhpcyx4dCh0aGlzLHQpKX0sZS5wcmV2aW91c0xhYmVsPWZ1bmN0aW9uIHByZXZpb3VzTGFiZWwodCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXRoaXMuX3RpbWUpLHJiKHRoaXMseHQodGhpcyx0KSwxKX0sZS5jdXJyZW50TGFiZWw9ZnVuY3Rpb24gY3VycmVudExhYmVsKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuc2Vlayh0LCEwKTp0aGlzLnByZXZpb3VzTGFiZWwodGhpcy5fdGltZStWKX0sZS5zaGlmdENoaWxkcmVuPWZ1bmN0aW9uIHNoaWZ0Q2hpbGRyZW4odCxlLHIpe3ZvaWQgMD09PXImJihyPTApO2Zvcih2YXIgaSxuPXRoaXMuX2ZpcnN0LGE9dGhpcy5sYWJlbHM7bjspbi5fc3RhcnQ+PXImJihuLl9zdGFydCs9dCxuLl9lbmQrPXQpLG49bi5fbmV4dDtpZihlKWZvcihpIGluIGEpYVtpXT49ciYmKGFbaV0rPXQpO3JldHVybiBBYSh0aGlzKX0sZS5pbnZhbGlkYXRlPWZ1bmN0aW9uIGludmFsaWRhdGUodCl7dmFyIGU9dGhpcy5fZmlyc3Q7Zm9yKHRoaXMuX2xvY2s9MDtlOyllLmludmFsaWRhdGUodCksZT1lLl9uZXh0O3JldHVybiBpLnByb3RvdHlwZS5pbnZhbGlkYXRlLmNhbGwodGhpcyx0KX0sZS5jbGVhcj1mdW5jdGlvbiBjbGVhcih0KXt2b2lkIDA9PT10JiYodD0hMCk7Zm9yKHZhciBlLHI9dGhpcy5fZmlyc3Q7cjspZT1yLl9uZXh0LHRoaXMucmVtb3ZlKHIpLHI9ZTtyZXR1cm4gdGhpcy5fZHAmJih0aGlzLl90aW1lPXRoaXMuX3RUaW1lPXRoaXMuX3BUaW1lPTApLHQmJih0aGlzLmxhYmVscz17fSksQWEodGhpcyl9LGUudG90YWxEdXJhdGlvbj1mdW5jdGlvbiB0b3RhbER1cmF0aW9uKHQpe3ZhciBlLHIsaSxuPTAsYT10aGlzLHM9YS5fbGFzdCxvPVU7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYS50aW1lU2NhbGUoKGEuX3JlcGVhdDwwP2EuZHVyYXRpb24oKTphLnRvdGFsRHVyYXRpb24oKSkvKGEucmV2ZXJzZWQoKT8tdDp0KSk7aWYoYS5fZGlydHkpe2ZvcihpPWEucGFyZW50O3M7KWU9cy5fcHJldixzLl9kaXJ0eSYmcy50b3RhbER1cmF0aW9uKCksbzwocj1zLl9zdGFydCkmJmEuX3NvcnQmJnMuX3RzJiYhYS5fbG9jaz8oYS5fbG9jaz0xLEthKGEscyxyLXMuX2RlbGF5LDEpLl9sb2NrPTApOm89cixyPDAmJnMuX3RzJiYobi09ciwoIWkmJiFhLl9kcHx8aSYmaS5zbW9vdGhDaGlsZFRpbWluZykmJihhLl9zdGFydCs9ci9hLl90cyxhLl90aW1lLT1yLGEuX3RUaW1lLT1yKSxhLnNoaWZ0Q2hpbGRyZW4oLXIsITEsLUluZmluaXR5KSxvPTApLHMuX2VuZD5uJiZzLl90cyYmKG49cy5fZW5kKSxzPWU7UmEoYSxhPT09TCYmYS5fdGltZT5uP2EuX3RpbWU6biwxLDEpLGEuX2RpcnR5PTB9cmV0dXJuIGEuX3REdXJ9LFRpbWVsaW5lLnVwZGF0ZVJvb3Q9ZnVuY3Rpb24gdXBkYXRlUm9vdCh0KXtpZihMLl90cyYmKG5hKEwsR2EodCxMKSksZj1FdC5mcmFtZSksRXQuZnJhbWU+PW10KXttdCs9ai5hdXRvU2xlZXB8fDEyMDt2YXIgZT1MLl9maXJzdDtpZigoIWV8fCFlLl90cykmJmouYXV0b1NsZWVwJiZFdC5fbGlzdGVuZXJzLmxlbmd0aDwyKXtmb3IoO2UmJiFlLl90czspZT1lLl9uZXh0O2V8fEV0LnNsZWVwKCl9fX0sVGltZWxpbmV9KHF0KTtxYShVdC5wcm90b3R5cGUse19sb2NrOjAsX2hhc1BhdXNlOjAsX2ZvcmNpbmc6MH0pO2Z1bmN0aW9uIF9iKHQsZSxpLG4sYSxvKXt2YXIgdSxoLGwsZjtpZihwdFt0XSYmITEhPT0odT1uZXcgcHRbdF0pLmluaXQoYSx1LnJhd1ZhcnM/ZVt0XTpmdW5jdGlvbiBfcHJvY2Vzc1ZhcnModCxlLGksbixhKXtpZihzKHQpJiYodD1RdCh0LGEsZSxpLG4pKSwhdih0KXx8dC5zdHlsZSYmdC5ub2RlVHlwZXx8JCh0KXx8Sih0KSlyZXR1cm4gcih0KT9RdCh0LGEsZSxpLG4pOnQ7dmFyIG8sdT17fTtmb3IobyBpbiB0KXVbb109UXQodFtvXSxhLGUsaSxuKTtyZXR1cm4gdX0oZVt0XSxuLGEsbyxpKSxpLG4sbykmJihpLl9wdD1oPW5ldyBwZShpLl9wdCxhLHQsMCwxLHUucmVuZGVyLHUsMCx1LnByaW9yaXR5KSxpIT09YykpZm9yKGw9aS5fcHRMb29rdXBbaS5fdGFyZ2V0cy5pbmRleE9mKGEpXSxmPXUuX3Byb3BzLmxlbmd0aDtmLS07KWxbdS5fcHJvcHNbZl1dPWg7cmV0dXJuIHV9ZnVuY3Rpb24gZmModCxyLGUsaSl7dmFyIG4sYSxzPXIuZWFzZXx8aXx8InBvd2VyMS5pbk91dCI7aWYoJChyKSlhPWVbdF18fChlW3RdPVtdKSxyLmZvckVhY2goZnVuY3Rpb24odCxlKXtyZXR1cm4gYS5wdXNoKHt0OmUvKHIubGVuZ3RoLTEpKjEwMCx2OnQsZTpzfSl9KTtlbHNlIGZvcihuIGluIHIpYT1lW25dfHwoZVtuXT1bXSksImVhc2UiPT09bnx8YS5wdXNoKHt0OnBhcnNlRmxvYXQodCksdjpyW25dLGU6c30pfXZhciBWdCxXdCxYdD1mdW5jdGlvbiBfYWRkUHJvcFR3ZWVuKHQsZSxpLG4sYSxvLHUsaCxsLGYpe3MobikmJihuPW4oYXx8MCx0LG8pKTt2YXIgYyxkPXRbZV0scD0iZ2V0IiE9PWk/aTpzKGQpP2w/dFtlLmluZGV4T2YoInNldCIpfHwhcyh0WyJnZXQiK2Uuc3Vic3RyKDMpXSk/ZToiZ2V0IitlLnN1YnN0cigzKV0obCk6dFtlXSgpOmQsXz1zKGQpP2w/ZWU6JHQ6SnQ7aWYocihuKSYmKH5uLmluZGV4T2YoInJhbmRvbSgiKSYmKG49b2IobikpLCI9Ij09PW4uY2hhckF0KDEpJiYoIShjPWthKHAsbikrKFlhKHApfHwwKSkmJjAhPT1jfHwobj1jKSkpLCFmfHxwIT09bnx8V3QpcmV0dXJuIGlzTmFOKHAqbil8fCIiPT09bj8oZHx8ZSBpbiB0fHxRKGUsbiksZnVuY3Rpb24gX2FkZENvbXBsZXhTdHJpbmdQcm9wVHdlZW4odCxlLHIsaSxuLGEscyl7dmFyIG8sdSxoLGwsZixjLGQscCxfPW5ldyBwZSh0aGlzLl9wdCx0LGUsMCwxLHNlLG51bGwsbiksbT0wLGc9MDtmb3IoXy5iPXIsXy5lPWkscis9IiIsKGQ9fihpKz0iIikuaW5kZXhPZigicmFuZG9tKCIpKSYmKGk9b2IoaSkpLGEmJihhKHA9W3IsaV0sdCxlKSxyPXBbMF0saT1wWzFdKSx1PXIubWF0Y2goaXQpfHxbXTtvPWl0LmV4ZWMoaSk7KWw9b1swXSxmPWkuc3Vic3RyaW5nKG0sby5pbmRleCksaD9oPShoKzEpJTU6InJnYmEoIj09PWYuc3Vic3RyKC01KSYmKGg9MSksbCE9PXVbZysrXSYmKGM9cGFyc2VGbG9hdCh1W2ctMV0pfHwwLF8uX3B0PXtfbmV4dDpfLl9wdCxwOmZ8fDE9PT1nP2Y6IiwiLHM6YyxjOiI9Ij09PWwuY2hhckF0KDEpP2thKGMsbCktYzpwYXJzZUZsb2F0KGwpLWMsbTpoJiZoPDQ/TWF0aC5yb3VuZDowfSxtPWl0Lmxhc3RJbmRleCk7cmV0dXJuIF8uYz1tPGkubGVuZ3RoP2kuc3Vic3RyaW5nKG0saS5sZW5ndGgpOiIiLF8uZnA9cywobnQudGVzdChpKXx8ZCkmJihfLmU9MCksdGhpcy5fcHQ9X30uY2FsbCh0aGlzLHQsZSxwLG4sXyxofHxqLnN0cmluZ0ZpbHRlcixsKSk6KGM9bmV3IHBlKHRoaXMuX3B0LHQsZSwrcHx8MCxuLShwfHwwKSwiYm9vbGVhbiI9PXR5cGVvZiBkP2FlOm5lLDAsXyksbCYmKGMuZnA9bCksdSYmYy5tb2RpZmllcih1LHRoaXMsdCksdGhpcy5fcHQ9Yyl9LEh0PWZ1bmN0aW9uIF9pbml0VHdlZW4odCxlLHIpe3ZhciBpLG4sYSxzLG8sdSxoLGwsZixjLGQscCxfLG09dC52YXJzLGc9bS5lYXNlLHY9bS5zdGFydEF0LHk9bS5pbW1lZGlhdGVSZW5kZXIsVD1tLmxhenksYj1tLm9uVXBkYXRlLHg9bS5vblVwZGF0ZVBhcmFtcyxrPW0uY2FsbGJhY2tTY29wZSxNPW0ucnVuQmFja3dhcmRzLE89bS55b3lvRWFzZSxQPW0ua2V5ZnJhbWVzLEM9bS5hdXRvUmV2ZXJ0LEE9dC5fZHVyLFM9dC5fc3RhcnRBdCxSPXQuX3RhcmdldHMsRD10LnBhcmVudCxFPUQmJiJuZXN0ZWQiPT09RC5kYXRhP0QudmFycy50YXJnZXRzOlIsej0iYXV0byI9PT10Ll9vdmVyd3JpdGUmJiFJLEY9dC50aW1lbGluZTtpZighRnx8UCYmZ3x8KGc9Im5vbmUiKSx0Ll9lYXNlPVl0KGcscS5lYXNlKSx0Ll95RWFzZT1PP0x0KFl0KCEwPT09Tz9nOk8scS5lYXNlKSk6MCxPJiZ0Ll95b3lvJiYhdC5fcmVwZWF0JiYoTz10Ll95RWFzZSx0Ll95RWFzZT10Ll9lYXNlLHQuX2Vhc2U9TyksdC5fZnJvbT0hRiYmISFtLnJ1bkJhY2t3YXJkcywhRnx8UCYmIW0uc3RhZ2dlcil7aWYocD0obD1SWzBdP2ZhKFJbMF0pLmhhcm5lc3M6MCkmJm1bbC5wcm9wXSxpPXVhKG0sZnQpLFMmJihTLl96VGltZTwwJiZTLnByb2dyZXNzKDEpLGU8MCYmTSYmeSYmIUM/Uy5yZW5kZXIoLTEsITApOlMucmV2ZXJ0KE0mJkE/aHQ6dXQpLFMuX2xhenk9MCksdil7aWYoemEodC5fc3RhcnRBdD1HdC5zZXQoUixxYSh7ZGF0YToiaXNTdGFydCIsb3ZlcndyaXRlOiExLHBhcmVudDpELGltbWVkaWF0ZVJlbmRlcjohMCxsYXp5OncoVCksc3RhcnRBdDpudWxsLGRlbGF5OjAsb25VcGRhdGU6YixvblVwZGF0ZVBhcmFtczp4LGNhbGxiYWNrU2NvcGU6ayxzdGFnZ2VyOjB9LHYpKSksZTwodC5fc3RhcnRBdC5fZHA9MCkmJihCfHwheSYmIUMpJiZ0Ll9zdGFydEF0LnJldmVydChodCkseSYmQSYmZTw9MCYmcjw9MClyZXR1cm4gdm9pZChlJiYodC5felRpbWU9ZSkpfWVsc2UgaWYoTSYmQSYmIVMpaWYoZSYmKHk9ITEpLGE9cWEoe292ZXJ3cml0ZTohMSxkYXRhOiJpc0Zyb21TdGFydCIsbGF6eTp5JiZ3KFQpLGltbWVkaWF0ZVJlbmRlcjp5LHN0YWdnZXI6MCxwYXJlbnQ6RH0saSkscCYmKGFbbC5wcm9wXT1wKSx6YSh0Ll9zdGFydEF0PUd0LnNldChSLGEpKSxlPCh0Ll9zdGFydEF0Ll9kcD0wKSYmKEI/dC5fc3RhcnRBdC5yZXZlcnQoaHQpOnQuX3N0YXJ0QXQucmVuZGVyKC0xLCEwKSksdC5felRpbWU9ZSx5KXtpZighZSlyZXR1cm59ZWxzZSBfaW5pdFR3ZWVuKHQuX3N0YXJ0QXQsVixWKTtmb3IodC5fcHQ9dC5fcHRDYWNoZT0wLFQ9QSYmdyhUKXx8VCYmIUEsbj0wO248Ui5sZW5ndGg7bisrKXtpZihoPShvPVJbbl0pLl9nc2FwfHxlYShSKVtuXS5fZ3NhcCx0Ll9wdExvb2t1cFtuXT1jPXt9LGR0W2guaWRdJiZjdC5sZW5ndGgmJm1hKCksZD1FPT09Uj9uOkUuaW5kZXhPZihvKSxsJiYhMSE9PShmPW5ldyBsKS5pbml0KG8scHx8aSx0LGQsRSkmJih0Ll9wdD1zPW5ldyBwZSh0Ll9wdCxvLGYubmFtZSwwLDEsZi5yZW5kZXIsZiwwLGYucHJpb3JpdHkpLGYuX3Byb3BzLmZvckVhY2goZnVuY3Rpb24odCl7Y1t0XT1zfSksZi5wcmlvcml0eSYmKHU9MSkpLCFsfHxwKWZvcihhIGluIGkpcHRbYV0mJihmPV9iKGEsaSx0LGQsbyxFKSk/Zi5wcmlvcml0eSYmKHU9MSk6Y1thXT1zPVh0LmNhbGwodCxvLGEsImdldCIsaVthXSxkLEUsMCxtLnN0cmluZ0ZpbHRlcik7dC5fb3AmJnQuX29wW25dJiZ0LmtpbGwobyx0Ll9vcFtuXSkseiYmdC5fcHQmJihWdD10LEwua2lsbFR3ZWVuc09mKG8sYyx0Lmdsb2JhbFRpbWUoZSkpLF89IXQucGFyZW50LFZ0PTApLHQuX3B0JiZUJiYoZHRbaC5pZF09MSl9dSYmZGUodCksdC5fb25Jbml0JiZ0Ll9vbkluaXQodCl9dC5fb25VcGRhdGU9Yix0Ll9pbml0dGVkPSghdC5fb3B8fHQuX3B0KSYmIV8sUCYmZTw9MCYmRi5yZW5kZXIoVSwhMCwhMCl9LFF0PWZ1bmN0aW9uIF9wYXJzZUZ1bmNPclN0cmluZyh0LGUsaSxuLGEpe3JldHVybiBzKHQpP3QuY2FsbChlLGksbixhKTpyKHQpJiZ+dC5pbmRleE9mKCJyYW5kb20oIik/b2IodCk6dH0sS3Q9dnQrInJlcGVhdCxyZXBlYXREZWxheSx5b3lvLHJlcGVhdFJlZnJlc2gseW95b0Vhc2UsYXV0b1JldmVydCIsWnQ9e307aGEoS3QrIixpZCxzdGFnZ2VyLGRlbGF5LGR1cmF0aW9uLHBhdXNlZCxzY3JvbGxUcmlnZ2VyIixmdW5jdGlvbih0KXtyZXR1cm4gWnRbdF09MX0pO3ZhciBHdD1mdW5jdGlvbih6KXtmdW5jdGlvbiBUd2VlbihlLHIsaSxuKXt2YXIgYTsibnVtYmVyIj09dHlwZW9mIHImJihpLmR1cmF0aW9uPXIscj1pLGk9bnVsbCk7dmFyIHMsbyx1LGgsbCxmLGMsZCxwPShhPXouY2FsbCh0aGlzLG4/cjp2YShyKSl8fHRoaXMpLnZhcnMsXz1wLmR1cmF0aW9uLG09cC5kZWxheSxnPXAuaW1tZWRpYXRlUmVuZGVyLFQ9cC5zdGFnZ2VyLGI9cC5vdmVyd3JpdGUseD1wLmtleWZyYW1lcyxrPXAuZGVmYXVsdHMsTT1wLnNjcm9sbFRyaWdnZXIsTz1wLnlveW9FYXNlLFA9ci5wYXJlbnR8fEwsQz0oJChlKXx8SihlKT90KGVbMF0pOiJsZW5ndGgiaW4gcik/W2VdOk90KGUpO2lmKGEuX3RhcmdldHM9Qy5sZW5ndGg/ZWEoQyk6UigiR1NBUCB0YXJnZXQgIitlKyIgbm90IGZvdW5kLiBodHRwczovL2dyZWVuc29jay5jb20iLCFqLm51bGxUYXJnZXRXYXJuKXx8W10sYS5fcHRMb29rdXA9W10sYS5fb3ZlcndyaXRlPWIseHx8VHx8eShfKXx8eShtKSl7aWYocj1hLnZhcnMsKHM9YS50aW1lbGluZT1uZXcgVXQoe2RhdGE6Im5lc3RlZCIsZGVmYXVsdHM6a3x8e30sdGFyZ2V0czpQJiYibmVzdGVkIj09PVAuZGF0YT9QLnZhcnMudGFyZ2V0czpDfSkpLmtpbGwoKSxzLnBhcmVudD1zLl9kcD1fYXNzZXJ0VGhpc0luaXRpYWxpemVkKGEpLHMuX3N0YXJ0PTAsVHx8eShfKXx8eShtKSl7aWYoaD1DLmxlbmd0aCxjPVQmJmViKFQpLHYoVCkpZm9yKGwgaW4gVCl+S3QuaW5kZXhPZihsKSYmKChkPWR8fHt9KVtsXT1UW2xdKTtmb3Iobz0wO288aDtvKyspKHU9dWEocixadCkpLnN0YWdnZXI9MCxPJiYodS55b3lvRWFzZT1PKSxkJiZ5dCh1LGQpLGY9Q1tvXSx1LmR1cmF0aW9uPStRdChfLF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoYSksbyxmLEMpLHUuZGVsYXk9KCtRdChtLF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoYSksbyxmLEMpfHwwKS1hLl9kZWxheSwhVCYmMT09PWgmJnUuZGVsYXkmJihhLl9kZWxheT1tPXUuZGVsYXksYS5fc3RhcnQrPW0sdS5kZWxheT0wKSxzLnRvKGYsdSxjP2MobyxmLEMpOjApLHMuX2Vhc2U9RnQubm9uZTtzLmR1cmF0aW9uKCk/Xz1tPTA6YS50aW1lbGluZT0wfWVsc2UgaWYoeCl7dmEocWEocy52YXJzLmRlZmF1bHRzLHtlYXNlOiJub25lIn0pKSxzLl9lYXNlPVl0KHguZWFzZXx8ci5lYXNlfHwibm9uZSIpO3ZhciBBLFMsRCxFPTA7aWYoJCh4KSl4LmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHMudG8oQyx0LCI+Iil9KSxzLmR1cmF0aW9uKCk7ZWxzZXtmb3IobCBpbiB1PXt9LHgpImVhc2UiPT09bHx8ImVhc2VFYWNoIj09PWx8fGZjKGwseFtsXSx1LHguZWFzZUVhY2gpO2ZvcihsIGluIHUpZm9yKEE9dVtsXS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudC1lLnR9KSxvPUU9MDtvPEEubGVuZ3RoO28rKykoRD17ZWFzZTooUz1BW29dKS5lLGR1cmF0aW9uOihTLnQtKG8/QVtvLTFdLnQ6MCkpLzEwMCpffSlbbF09Uy52LHMudG8oQyxELEUpLEUrPUQuZHVyYXRpb247cy5kdXJhdGlvbigpPF8mJnMudG8oe30se2R1cmF0aW9uOl8tcy5kdXJhdGlvbigpfSl9fV98fGEuZHVyYXRpb24oXz1zLmR1cmF0aW9uKCkpfWVsc2UgYS50aW1lbGluZT0wO3JldHVybiEwIT09Ynx8SXx8KFZ0PV9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoYSksTC5raWxsVHdlZW5zT2YoQyksVnQ9MCksS2EoUCxfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGEpLGkpLHIucmV2ZXJzZWQmJmEucmV2ZXJzZSgpLHIucGF1c2VkJiZhLnBhdXNlZCghMCksKGd8fCFfJiYheCYmYS5fc3RhcnQ9PT1qYShQLl90aW1lKSYmdyhnKSYmZnVuY3Rpb24gX2hhc05vUGF1c2VkQW5jZXN0b3JzKHQpe3JldHVybiF0fHx0Ll90cyYmX2hhc05vUGF1c2VkQW5jZXN0b3JzKHQucGFyZW50KX0oX2Fzc2VydFRoaXNJbml0aWFsaXplZChhKSkmJiJuZXN0ZWQiIT09UC5kYXRhKSYmKGEuX3RUaW1lPS1WLGEucmVuZGVyKE1hdGgubWF4KDAsLW0pfHwwKSksTSYmTGEoX2Fzc2VydFRoaXNJbml0aWFsaXplZChhKSxNKSxhfV9pbmhlcml0c0xvb3NlKFR3ZWVuLHopO3ZhciBlPVR3ZWVuLnByb3RvdHlwZTtyZXR1cm4gZS5yZW5kZXI9ZnVuY3Rpb24gcmVuZGVyKHQsZSxyKXt2YXIgaSxuLGEscyxvLHUsaCxsLGYsYz10aGlzLl90aW1lLGQ9dGhpcy5fdER1cixwPXRoaXMuX2R1cixfPXQ8MCxtPWQtVjx0JiYhXz9kOnQ8Vj8wOnQ7aWYocCl7aWYobSE9PXRoaXMuX3RUaW1lfHwhdHx8cnx8IXRoaXMuX2luaXR0ZWQmJnRoaXMuX3RUaW1lfHx0aGlzLl9zdGFydEF0JiZ0aGlzLl96VGltZTwwIT1fKXtpZihpPW0sbD10aGlzLnRpbWVsaW5lLHRoaXMuX3JlcGVhdCl7aWYocz1wK3RoaXMuX3JEZWxheSx0aGlzLl9yZXBlYXQ8LTEmJl8pcmV0dXJuIHRoaXMudG90YWxUaW1lKDEwMCpzK3QsZSxyKTtpZihpPWphKG0lcyksbT09PWQ/KGE9dGhpcy5fcmVwZWF0LGk9cCk6KChhPX5+KG0vcykpJiZhPT09bS9zJiYoaT1wLGEtLSkscDxpJiYoaT1wKSksKHU9dGhpcy5feW95byYmMSZhKSYmKGY9dGhpcy5feUVhc2UsaT1wLWkpLG89VHQodGhpcy5fdFRpbWUscyksaT09PWMmJiFyJiZ0aGlzLl9pbml0dGVkKXJldHVybiB0aGlzLl90VGltZT1tLHRoaXM7YSE9PW8mJihsJiZ0aGlzLl95RWFzZSYmUGIobCx1KSwhdGhpcy52YXJzLnJlcGVhdFJlZnJlc2h8fHV8fHRoaXMuX2xvY2t8fCh0aGlzLl9sb2NrPXI9MSx0aGlzLnJlbmRlcihqYShzKmEpLCEwKS5pbnZhbGlkYXRlKCkuX2xvY2s9MCkpfWlmKCF0aGlzLl9pbml0dGVkKXtpZihNYSh0aGlzLF8/dDppLHIsZSxtKSlyZXR1cm4gdGhpcy5fdFRpbWU9MCx0aGlzO2lmKGMhPT10aGlzLl90aW1lKXJldHVybiB0aGlzO2lmKHAhPT10aGlzLl9kdXIpcmV0dXJuIHRoaXMucmVuZGVyKHQsZSxyKX1pZih0aGlzLl90VGltZT1tLHRoaXMuX3RpbWU9aSwhdGhpcy5fYWN0JiZ0aGlzLl90cyYmKHRoaXMuX2FjdD0xLHRoaXMuX2xhenk9MCksdGhpcy5yYXRpbz1oPShmfHx0aGlzLl9lYXNlKShpL3ApLHRoaXMuX2Zyb20mJih0aGlzLnJhdGlvPWg9MS1oKSxpJiYhYyYmIWUmJihDdCh0aGlzLCJvblN0YXJ0IiksdGhpcy5fdFRpbWUhPT1tKSlyZXR1cm4gdGhpcztmb3Iobj10aGlzLl9wdDtuOyluLnIoaCxuLmQpLG49bi5fbmV4dDtsJiZsLnJlbmRlcih0PDA/dDohaSYmdT8tVjpsLl9kdXIqbC5fZWFzZShpL3RoaXMuX2R1ciksZSxyKXx8dGhpcy5fc3RhcnRBdCYmKHRoaXMuX3pUaW1lPXQpLHRoaXMuX29uVXBkYXRlJiYhZSYmKF8mJkNhKHRoaXMsdCwwLHIpLEN0KHRoaXMsIm9uVXBkYXRlIikpLHRoaXMuX3JlcGVhdCYmYSE9PW8mJnRoaXMudmFycy5vblJlcGVhdCYmIWUmJnRoaXMucGFyZW50JiZDdCh0aGlzLCJvblJlcGVhdCIpLG0hPT10aGlzLl90RHVyJiZtfHx0aGlzLl90VGltZSE9PW18fChfJiYhdGhpcy5fb25VcGRhdGUmJkNhKHRoaXMsdCwwLCEwKSwhdCYmcHx8IShtPT09dGhpcy5fdER1ciYmMDx0aGlzLl90c3x8IW0mJnRoaXMuX3RzPDApfHx6YSh0aGlzLDEpLGV8fF8mJiFjfHwhKG18fGN8fHUpfHwoQ3QodGhpcyxtPT09ZD8ib25Db21wbGV0ZSI6Im9uUmV2ZXJzZUNvbXBsZXRlIiwhMCksIXRoaXMuX3Byb218fG08ZCYmMDx0aGlzLnRpbWVTY2FsZSgpfHx0aGlzLl9wcm9tKCkpKX19ZWxzZSFmdW5jdGlvbiBfcmVuZGVyWmVyb0R1cmF0aW9uVHdlZW4odCxlLHIsaSl7dmFyIG4sYSxzLG89dC5yYXRpbyx1PWU8MHx8IWUmJighdC5fc3RhcnQmJmZ1bmN0aW9uIF9wYXJlbnRQbGF5aGVhZElzQmVmb3JlU3RhcnQodCl7dmFyIGU9dC5wYXJlbnQ7cmV0dXJuIGUmJmUuX3RzJiZlLl9pbml0dGVkJiYhZS5fbG9jayYmKGUucmF3VGltZSgpPDB8fF9wYXJlbnRQbGF5aGVhZElzQmVmb3JlU3RhcnQoZSkpfSh0KSYmKHQuX2luaXR0ZWR8fCFidCh0KSl8fCh0Ll90czwwfHx0Ll9kcC5fdHM8MCkmJiFidCh0KSk/MDoxLGg9dC5fckRlbGF5LGw9MDtpZihoJiZ0Ll9yZXBlYXQmJihsPWt0KDAsdC5fdER1cixlKSxhPVR0KGwsaCksdC5feW95byYmMSZhJiYodT0xLXUpLGEhPT1UdCh0Ll90VGltZSxoKSYmKG89MS11LHQudmFycy5yZXBlYXRSZWZyZXNoJiZ0Ll9pbml0dGVkJiZ0LmludmFsaWRhdGUoKSkpLHUhPT1vfHxCfHxpfHx0Ll96VGltZT09PVZ8fCFlJiZ0Ll96VGltZSl7aWYoIXQuX2luaXR0ZWQmJk1hKHQsZSxpLHIsbCkpcmV0dXJuO2ZvcihzPXQuX3pUaW1lLHQuX3pUaW1lPWV8fChyP1Y6MCkscj1yfHxlJiYhcyx0LnJhdGlvPXUsdC5fZnJvbSYmKHU9MS11KSx0Ll90aW1lPTAsdC5fdFRpbWU9bCxuPXQuX3B0O247KW4ucih1LG4uZCksbj1uLl9uZXh0O2U8MCYmQ2EodCxlLDAsITApLHQuX29uVXBkYXRlJiYhciYmQ3QodCwib25VcGRhdGUiKSxsJiZ0Ll9yZXBlYXQmJiFyJiZ0LnBhcmVudCYmQ3QodCwib25SZXBlYXQiKSwoZT49dC5fdER1cnx8ZTwwKSYmdC5yYXRpbz09PXUmJih1JiZ6YSh0LDEpLHJ8fEJ8fChDdCh0LHU/Im9uQ29tcGxldGUiOiJvblJldmVyc2VDb21wbGV0ZSIsITApLHQuX3Byb20mJnQuX3Byb20oKSkpfWVsc2UgdC5felRpbWV8fCh0Ll96VGltZT1lKX0odGhpcyx0LGUscik7cmV0dXJuIHRoaXN9LGUudGFyZ2V0cz1mdW5jdGlvbiB0YXJnZXRzKCl7cmV0dXJuIHRoaXMuX3RhcmdldHN9LGUuaW52YWxpZGF0ZT1mdW5jdGlvbiBpbnZhbGlkYXRlKHQpe3JldHVybiB0JiZ0aGlzLnZhcnMucnVuQmFja3dhcmRzfHwodGhpcy5fc3RhcnRBdD0wKSx0aGlzLl9wdD10aGlzLl9vcD10aGlzLl9vblVwZGF0ZT10aGlzLl9sYXp5PXRoaXMucmF0aW89MCx0aGlzLl9wdExvb2t1cD1bXSx0aGlzLnRpbWVsaW5lJiZ0aGlzLnRpbWVsaW5lLmludmFsaWRhdGUodCksei5wcm90b3R5cGUuaW52YWxpZGF0ZS5jYWxsKHRoaXMsdCl9LGUucmVzZXRUbz1mdW5jdGlvbiByZXNldFRvKHQsZSxyLGkpe2R8fEV0Lndha2UoKSx0aGlzLl90c3x8dGhpcy5wbGF5KCk7dmFyIG4sYT1NYXRoLm1pbih0aGlzLl9kdXIsKHRoaXMuX2RwLl90aW1lLXRoaXMuX3N0YXJ0KSp0aGlzLl90cyk7cmV0dXJuIHRoaXMuX2luaXR0ZWR8fEh0KHRoaXMsYSksbj10aGlzLl9lYXNlKGEvdGhpcy5fZHVyKSxmdW5jdGlvbiBfdXBkYXRlUHJvcFR3ZWVucyh0LGUscixpLG4sYSxzKXt2YXIgbyx1LGgsbCxmPSh0Ll9wdCYmdC5fcHRDYWNoZXx8KHQuX3B0Q2FjaGU9e30pKVtlXTtpZighZilmb3IoZj10Ll9wdENhY2hlW2VdPVtdLGg9dC5fcHRMb29rdXAsbD10Ll90YXJnZXRzLmxlbmd0aDtsLS07KXtpZigobz1oW2xdW2VdKSYmby5kJiZvLmQuX3B0KWZvcihvPW8uZC5fcHQ7byYmby5wIT09ZSYmby5mcCE9PWU7KW89by5fbmV4dDtpZighbylyZXR1cm4gV3Q9MSx0LnZhcnNbZV09Iis9MCIsSHQodCxzKSxXdD0wLDE7Zi5wdXNoKG8pfWZvcihsPWYubGVuZ3RoO2wtLTspKG89KHU9ZltsXSkuX3B0fHx1KS5zPSFpJiYwIT09aXx8bj9vLnMrKGl8fDApK2Eqby5jOmksby5jPXItby5zLHUuZSYmKHUuZT1pYShyKStZYSh1LmUpKSx1LmImJih1LmI9by5zK1lhKHUuYikpfSh0aGlzLHQsZSxyLGksbixhKT90aGlzLnJlc2V0VG8odCxlLHIsaSk6KElhKHRoaXMsMCksdGhpcy5wYXJlbnR8fHhhKHRoaXMuX2RwLHRoaXMsIl9maXJzdCIsIl9sYXN0Iix0aGlzLl9kcC5fc29ydD8iX3N0YXJ0IjowKSx0aGlzLnJlbmRlcigwKSl9LGUua2lsbD1mdW5jdGlvbiBraWxsKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9ImFsbCIpLCEodHx8ZSYmImFsbCIhPT1lKSlyZXR1cm4gdGhpcy5fbGF6eT10aGlzLl9wdD0wLHRoaXMucGFyZW50P3RiKHRoaXMpOnRoaXM7aWYodGhpcy50aW1lbGluZSl7dmFyIGk9dGhpcy50aW1lbGluZS50b3RhbER1cmF0aW9uKCk7cmV0dXJuIHRoaXMudGltZWxpbmUua2lsbFR3ZWVuc09mKHQsZSxWdCYmITAhPT1WdC52YXJzLm92ZXJ3cml0ZSkuX2ZpcnN0fHx0Yih0aGlzKSx0aGlzLnBhcmVudCYmaSE9PXRoaXMudGltZWxpbmUudG90YWxEdXJhdGlvbigpJiZSYSh0aGlzLHRoaXMuX2R1cip0aGlzLnRpbWVsaW5lLl90RHVyL2ksMCwxKSx0aGlzfXZhciBuLGEscyxvLHUsaCxsLGY9dGhpcy5fdGFyZ2V0cyxjPXQ/T3QodCk6ZixkPXRoaXMuX3B0TG9va3VwLHA9dGhpcy5fcHQ7aWYoKCFlfHwiYWxsIj09PWUpJiZmdW5jdGlvbiBfYXJyYXlzTWF0Y2godCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsaT1yPT09ZS5sZW5ndGg7aSYmci0tJiZ0W3JdPT09ZVtyXTspO3JldHVybiByPDB9KGYsYykpcmV0dXJuImFsbCI9PT1lJiYodGhpcy5fcHQ9MCksdGIodGhpcyk7Zm9yKG49dGhpcy5fb3A9dGhpcy5fb3B8fFtdLCJhbGwiIT09ZSYmKHIoZSkmJih1PXt9LGhhKGUsZnVuY3Rpb24odCl7cmV0dXJuIHVbdF09MX0pLGU9dSksZT1mdW5jdGlvbiBfYWRkQWxpYXNlc1RvVmFycyh0LGUpe3ZhciByLGksbixhLHM9dFswXT9mYSh0WzBdKS5oYXJuZXNzOjAsbz1zJiZzLmFsaWFzZXM7aWYoIW8pcmV0dXJuIGU7Zm9yKGkgaW4gcj15dCh7fSxlKSxvKWlmKGkgaW4gcilmb3Iobj0oYT1vW2ldLnNwbGl0KCIsIikpLmxlbmd0aDtuLS07KXJbYVtuXV09cltpXTtyZXR1cm4gcn0oZixlKSksbD1mLmxlbmd0aDtsLS07KWlmKH5jLmluZGV4T2YoZltsXSkpZm9yKHUgaW4gYT1kW2xdLCJhbGwiPT09ZT8obltsXT1lLG89YSxzPXt9KToocz1uW2xdPW5bbF18fHt9LG89ZSksbykoaD1hJiZhW3VdKSYmKCJraWxsImluIGguZCYmITAhPT1oLmQua2lsbCh1KXx8eWEodGhpcyxoLCJfcHQiKSxkZWxldGUgYVt1XSksImFsbCIhPT1zJiYoc1t1XT0xKTtyZXR1cm4gdGhpcy5faW5pdHRlZCYmIXRoaXMuX3B0JiZwJiZ0Yih0aGlzKSx0aGlzfSxUd2Vlbi50bz1mdW5jdGlvbiB0byh0LGUscil7cmV0dXJuIG5ldyBUd2Vlbih0LGUscil9LFR3ZWVuLmZyb209ZnVuY3Rpb24gZnJvbSh0LGUpe3JldHVybiBWYSgxLGFyZ3VtZW50cyl9LFR3ZWVuLmRlbGF5ZWRDYWxsPWZ1bmN0aW9uIGRlbGF5ZWRDYWxsKHQsZSxyLGkpe3JldHVybiBuZXcgVHdlZW4oZSwwLHtpbW1lZGlhdGVSZW5kZXI6ITEsbGF6eTohMSxvdmVyd3JpdGU6ITEsZGVsYXk6dCxvbkNvbXBsZXRlOmUsb25SZXZlcnNlQ29tcGxldGU6ZSxvbkNvbXBsZXRlUGFyYW1zOnIsb25SZXZlcnNlQ29tcGxldGVQYXJhbXM6cixjYWxsYmFja1Njb3BlOml9KX0sVHdlZW4uZnJvbVRvPWZ1bmN0aW9uIGZyb21Ubyh0LGUscil7cmV0dXJuIFZhKDIsYXJndW1lbnRzKX0sVHdlZW4uc2V0PWZ1bmN0aW9uIHNldCh0LGUpe3JldHVybiBlLmR1cmF0aW9uPTAsZS5yZXBlYXREZWxheXx8KGUucmVwZWF0PTApLG5ldyBUd2Vlbih0LGUpfSxUd2Vlbi5raWxsVHdlZW5zT2Y9ZnVuY3Rpb24ga2lsbFR3ZWVuc09mKHQsZSxyKXtyZXR1cm4gTC5raWxsVHdlZW5zT2YodCxlLHIpfSxUd2Vlbn0ocXQpO3FhKEd0LnByb3RvdHlwZSx7X3RhcmdldHM6W10sX2xhenk6MCxfc3RhcnRBdDowLF9vcDowLF9vbkluaXQ6MH0pLGhhKCJzdGFnZ2VyVG8sc3RhZ2dlckZyb20sc3RhZ2dlckZyb21UbyIsZnVuY3Rpb24ocil7R3Rbcl09ZnVuY3Rpb24oKXt2YXIgdD1uZXcgVXQsZT1NdC5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gZS5zcGxpY2UoInN0YWdnZXJGcm9tVG8iPT09cj81OjQsMCwwKSx0W3JdLmFwcGx5KHQsZSl9fSk7ZnVuY3Rpb24gbmModCxlLHIpe3JldHVybiB0LnNldEF0dHJpYnV0ZShlLHIpfWZ1bmN0aW9uIHZjKHQsZSxyLGkpe2kubVNldCh0LGUsaS5tLmNhbGwoaS50d2VlbixyLGkubXQpLGkpfXZhciBKdD1mdW5jdGlvbiBfc2V0dGVyUGxhaW4odCxlLHIpe3JldHVybiB0W2VdPXJ9LCR0PWZ1bmN0aW9uIF9zZXR0ZXJGdW5jKHQsZSxyKXtyZXR1cm4gdFtlXShyKX0sZWU9ZnVuY3Rpb24gX3NldHRlckZ1bmNXaXRoUGFyYW0odCxlLHIsaSl7cmV0dXJuIHRbZV0oaS5mcCxyKX0scmU9ZnVuY3Rpb24gX2dldFNldHRlcih0LGUpe3JldHVybiBzKHRbZV0pPyR0OnUodFtlXSkmJnQuc2V0QXR0cmlidXRlP25jOkp0fSxuZT1mdW5jdGlvbiBfcmVuZGVyUGxhaW4odCxlKXtyZXR1cm4gZS5zZXQoZS50LGUucCxNYXRoLnJvdW5kKDFlNiooZS5zK2UuYyp0KSkvMWU2LGUpfSxhZT1mdW5jdGlvbiBfcmVuZGVyQm9vbGVhbih0LGUpe3JldHVybiBlLnNldChlLnQsZS5wLCEhKGUucytlLmMqdCksZSl9LHNlPWZ1bmN0aW9uIF9yZW5kZXJDb21wbGV4U3RyaW5nKHQsZSl7dmFyIHI9ZS5fcHQsaT0iIjtpZighdCYmZS5iKWk9ZS5iO2Vsc2UgaWYoMT09PXQmJmUuZSlpPWUuZTtlbHNle2Zvcig7cjspaT1yLnArKHIubT9yLm0oci5zK3IuYyp0KTpNYXRoLnJvdW5kKDFlNCooci5zK3IuYyp0KSkvMWU0KStpLHI9ci5fbmV4dDtpKz1lLmN9ZS5zZXQoZS50LGUucCxpLGUpfSxvZT1mdW5jdGlvbiBfcmVuZGVyUHJvcFR3ZWVucyh0LGUpe2Zvcih2YXIgcj1lLl9wdDtyOylyLnIodCxyLmQpLHI9ci5fbmV4dH0sbGU9ZnVuY3Rpb24gX2FkZFBsdWdpbk1vZGlmaWVyKHQsZSxyLGkpe2Zvcih2YXIgbixhPXRoaXMuX3B0O2E7KW49YS5fbmV4dCxhLnA9PT1pJiZhLm1vZGlmaWVyKHQsZSxyKSxhPW59LGZlPWZ1bmN0aW9uIF9raWxsUHJvcFR3ZWVuc09mKHQpe2Zvcih2YXIgZSxyLGk9dGhpcy5fcHQ7aTspcj1pLl9uZXh0LGkucD09PXQmJiFpLm9wfHxpLm9wPT09dD95YSh0aGlzLGksIl9wdCIpOmkuZGVwfHwoZT0xKSxpPXI7cmV0dXJuIWV9LGRlPWZ1bmN0aW9uIF9zb3J0UHJvcFR3ZWVuc0J5UHJpb3JpdHkodCl7Zm9yKHZhciBlLHIsaSxuLGE9dC5fcHQ7YTspe2ZvcihlPWEuX25leHQscj1pO3ImJnIucHI+YS5wcjspcj1yLl9uZXh0OyhhLl9wcmV2PXI/ci5fcHJldjpuKT9hLl9wcmV2Ll9uZXh0PWE6aT1hLChhLl9uZXh0PXIpP3IuX3ByZXY9YTpuPWEsYT1lfXQuX3B0PWl9LHBlPShQcm9wVHdlZW4ucHJvdG90eXBlLm1vZGlmaWVyPWZ1bmN0aW9uIG1vZGlmaWVyKHQsZSxyKXt0aGlzLm1TZXQ9dGhpcy5tU2V0fHx0aGlzLnNldCx0aGlzLnNldD12Yyx0aGlzLm09dCx0aGlzLm10PXIsdGhpcy50d2Vlbj1lfSxQcm9wVHdlZW4pO2Z1bmN0aW9uIFByb3BUd2Vlbih0LGUscixpLG4sYSxzLG8sdSl7dGhpcy50PWUsdGhpcy5zPWksdGhpcy5jPW4sdGhpcy5wPXIsdGhpcy5yPWF8fG5lLHRoaXMuZD1zfHx0aGlzLHRoaXMuc2V0PW98fEp0LHRoaXMucHI9dXx8MCwodGhpcy5fbmV4dD10KSYmKHQuX3ByZXY9dGhpcyl9aGEodnQrInBhcmVudCxkdXJhdGlvbixlYXNlLGRlbGF5LG92ZXJ3cml0ZSxydW5CYWNrd2FyZHMsc3RhcnRBdCx5b3lvLGltbWVkaWF0ZVJlbmRlcixyZXBlYXQscmVwZWF0RGVsYXksZGF0YSxwYXVzZWQscmV2ZXJzZWQsbGF6eSxjYWxsYmFja1Njb3BlLHN0cmluZ0ZpbHRlcixpZCx5b3lvRWFzZSxzdGFnZ2VyLGluaGVyaXQscmVwZWF0UmVmcmVzaCxrZXlmcmFtZXMsYXV0b1JldmVydCxzY3JvbGxUcmlnZ2VyIixmdW5jdGlvbih0KXtyZXR1cm4gZnRbdF09MX0pLG90LlR3ZWVuTWF4PW90LlR3ZWVuTGl0ZT1HdCxvdC5UaW1lbGluZUxpdGU9b3QuVGltZWxpbmVNYXg9VXQsTD1uZXcgVXQoe3NvcnRDaGlsZHJlbjohMSxkZWZhdWx0czpxLGF1dG9SZW1vdmVDaGlsZHJlbjohMCxpZDoicm9vdCIsc21vb3RoQ2hpbGRUaW1pbmc6ITB9KSxqLnN0cmluZ0ZpbHRlcj1FYjtmdW5jdGlvbiBDYyh0KXtyZXR1cm4oVGVbdF18fHdlKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pfWZ1bmN0aW9uIERjKCl7dmFyIHQ9RGF0ZS5ub3coKSxvPVtdOzI8dC14ZSYmKENjKCJtYXRjaE1lZGlhSW5pdCIpLHllLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUscixpLG4sYT10LnF1ZXJpZXMscz10LmNvbmRpdGlvbnM7Zm9yKHIgaW4gYSkoZT1oLm1hdGNoTWVkaWEoYVtyXSkubWF0Y2hlcykmJihpPTEpLGUhPT1zW3JdJiYoc1tyXT1lLG49MSk7biYmKHQucmV2ZXJ0KCksaSYmby5wdXNoKHQpKX0pLENjKCJtYXRjaE1lZGlhUmV2ZXJ0Iiksby5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9uTWF0Y2godCl9KSx4ZT10LENjKCJtYXRjaE1lZGlhIikpfXZhciBfZSx5ZT1bXSxUZT17fSx3ZT1bXSx4ZT0wLGtlPSgoX2U9Q29udGV4dC5wcm90b3R5cGUpLmFkZD1mdW5jdGlvbiBhZGQodCxpLG4pe2Z1bmN0aW9uIEN3KCl7dmFyIHQsZT1sLHI9YS5zZWxlY3RvcjtyZXR1cm4gZSYmZSE9PWEmJmUuZGF0YS5wdXNoKGEpLG4mJihhLnNlbGVjdG9yPWNiKG4pKSxsPWEsdD1pLmFwcGx5KGEsYXJndW1lbnRzKSxzKHQpJiZhLl9yLnB1c2godCksbD1lLGEuc2VsZWN0b3I9cixhLmlzUmV2ZXJ0ZWQ9ITEsdH1zKHQpJiYobj1pLGk9dCx0PXMpO3ZhciBhPXRoaXM7cmV0dXJuIGEubGFzdD1Ddyx0PT09cz9DdyhhKTp0P2FbdF09Q3c6Q3d9LF9lLmlnbm9yZT1mdW5jdGlvbiBpZ25vcmUodCl7dmFyIGU9bDtsPW51bGwsdCh0aGlzKSxsPWV9LF9lLmdldFR3ZWVucz1mdW5jdGlvbiBnZXRUd2VlbnMoKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5kYXRhLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBDb250ZXh0P2UucHVzaC5hcHBseShlLHQuZ2V0VHdlZW5zKCkpOnQgaW5zdGFuY2VvZiBHdCYmISh0LnBhcmVudCYmIm5lc3RlZCI9PT10LnBhcmVudC5kYXRhKSYmZS5wdXNoKHQpfSksZX0sX2UuY2xlYXI9ZnVuY3Rpb24gY2xlYXIoKXt0aGlzLl9yLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoPTB9LF9lLmtpbGw9ZnVuY3Rpb24ga2lsbChlLHQpe3ZhciByPXRoaXM7aWYoZSl7dmFyIGk9dGhpcy5nZXRUd2VlbnMoKTt0aGlzLmRhdGEuZm9yRWFjaChmdW5jdGlvbih0KXsiaXNGbGlwIj09PXQuZGF0YSYmKHQucmV2ZXJ0KCksdC5nZXRDaGlsZHJlbighMCwhMCwhMSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gaS5zcGxpY2UoaS5pbmRleE9mKHQpLDEpfSkpfSksaS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2c6dC5nbG9iYWxUaW1lKDApLHQ6dH19KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZy10Lmd8fC0xfSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC50LnJldmVydChlKX0pLHRoaXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiEodCBpbnN0YW5jZW9mIHF0KSYmdC5yZXZlcnQmJnQucmV2ZXJ0KGUpfSksdGhpcy5fci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0KGUscil9KSx0aGlzLmlzUmV2ZXJ0ZWQ9ITB9ZWxzZSB0aGlzLmRhdGEuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5raWxsJiZ0LmtpbGwoKX0pO2lmKHRoaXMuY2xlYXIoKSx0KXt2YXIgbj15ZS5pbmRleE9mKHRoaXMpO35uJiZ5ZS5zcGxpY2UobiwxKX19LF9lLnJldmVydD1mdW5jdGlvbiByZXZlcnQodCl7dGhpcy5raWxsKHR8fHt9KX0sQ29udGV4dCk7ZnVuY3Rpb24gQ29udGV4dCh0LGUpe3RoaXMuc2VsZWN0b3I9ZSYmY2IoZSksdGhpcy5kYXRhPVtdLHRoaXMuX3I9W10sdGhpcy5pc1JldmVydGVkPSExLHQmJnRoaXMuYWRkKHQpfXZhciBNZSxPZT0oKE1lPU1hdGNoTWVkaWEucHJvdG90eXBlKS5hZGQ9ZnVuY3Rpb24gYWRkKHQsZSxyKXt2KHQpfHwodD17bWF0Y2hlczp0fSk7dmFyIGksbixhLHM9bmV3IGtlKDAscnx8dGhpcy5zY29wZSksbz1zLmNvbmRpdGlvbnM9e307Zm9yKG4gaW4gdGhpcy5jb250ZXh0cy5wdXNoKHMpLGU9cy5hZGQoIm9uTWF0Y2giLGUpLHMucXVlcmllcz10KSJhbGwiPT09bj9hPTE6KGk9aC5tYXRjaE1lZGlhKHRbbl0pKSYmKHllLmluZGV4T2Yocyk8MCYmeWUucHVzaChzKSwob1tuXT1pLm1hdGNoZXMpJiYoYT0xKSxpLmFkZExpc3RlbmVyP2kuYWRkTGlzdGVuZXIoRGMpOmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixEYykpO3JldHVybiBhJiZlKHMpLHRoaXN9LE1lLnJldmVydD1mdW5jdGlvbiByZXZlcnQodCl7dGhpcy5raWxsKHR8fHt9KX0sTWUua2lsbD1mdW5jdGlvbiBraWxsKGUpe3RoaXMuY29udGV4dHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5raWxsKGUsITApfSl9LE1hdGNoTWVkaWEpO2Z1bmN0aW9uIE1hdGNoTWVkaWEodCl7dGhpcy5jb250ZXh0cz1bXSx0aGlzLnNjb3BlPXR9dmFyIFBlPXtyZWdpc3RlclBsdWdpbjpmdW5jdGlvbiByZWdpc3RlclBsdWdpbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09YXJndW1lbnRzW3JdO2UuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVBsdWdpbih0KXt2YXIgZT0odD0hdC5uYW1lJiZ0LmRlZmF1bHR8fHQpLm5hbWUscj1zKHQpLGk9ZSYmIXImJnQuaW5pdD9mdW5jdGlvbigpe3RoaXMuX3Byb3BzPVtdfTp0LG49e2luaXQ6VCxyZW5kZXI6b2UsYWRkOlh0LGtpbGw6ZmUsbW9kaWZpZXI6bGUscmF3VmFyczowfSxhPXt0YXJnZXRUZXN0OjAsZ2V0OjAsZ2V0U2V0dGVyOnJlLGFsaWFzZXM6e30scmVnaXN0ZXI6MH07aWYoenQoKSx0IT09aSl7aWYocHRbZV0pcmV0dXJuO3FhKGkscWEodWEodCxuKSxhKSkseXQoaS5wcm90b3R5cGUseXQobix1YSh0LGEpKSkscHRbaS5wcm9wPWVdPWksdC50YXJnZXRUZXN0JiYoZ3QucHVzaChpKSxmdFtlXT0xKSxlPSgiY3NzIj09PWU/IkNTUyI6ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cigxKSkrIlBsdWdpbiJ9UyhlLGkpLHQucmVnaXN0ZXImJnQucmVnaXN0ZXIoQ2UsaSxwZSl9KHQpfSl9LHRpbWVsaW5lOmZ1bmN0aW9uIHRpbWVsaW5lKHQpe3JldHVybiBuZXcgVXQodCl9LGdldFR3ZWVuc09mOmZ1bmN0aW9uIGdldFR3ZWVuc09mKHQsZSl7cmV0dXJuIEwuZ2V0VHdlZW5zT2YodCxlKX0sZ2V0UHJvcGVydHk6ZnVuY3Rpb24gZ2V0UHJvcGVydHkoaSx0LGUsbil7cihpKSYmKGk9T3QoaSlbMF0pO3ZhciBhPWZhKGl8fHt9KS5nZXQscz1lP3BhOm9hO3JldHVybiJuYXRpdmUiPT09ZSYmKGU9IiIpLGk/dD9zKChwdFt0XSYmcHRbdF0uZ2V0fHxhKShpLHQsZSxuKSk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBzKChwdFt0XSYmcHRbdF0uZ2V0fHxhKShpLHQsZSxyKSl9Oml9LHF1aWNrU2V0dGVyOmZ1bmN0aW9uIHF1aWNrU2V0dGVyKHIsZSxpKXtpZigxPChyPU90KHIpKS5sZW5ndGgpe3ZhciBuPXIubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBDZS5xdWlja1NldHRlcih0LGUsaSl9KSxhPW4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9YTtlLS07KW5bZV0odCl9fXI9clswXXx8e307dmFyIHM9cHRbZV0sbz1mYShyKSx1PW8uaGFybmVzcyYmKG8uaGFybmVzcy5hbGlhc2VzfHx7fSlbZV18fGUsaD1zP2Z1bmN0aW9uKHQpe3ZhciBlPW5ldyBzO2MuX3B0PTAsZS5pbml0KHIsaT90K2k6dCxjLDAsW3JdKSxlLnJlbmRlcigxLGUpLGMuX3B0JiZvZSgxLGMpfTpvLnNldChyLHUpO3JldHVybiBzP2g6ZnVuY3Rpb24odCl7cmV0dXJuIGgocix1LGk/dCtpOnQsbywxKX19LHF1aWNrVG86ZnVuY3Rpb24gcXVpY2tUbyh0LGksZSl7ZnVuY3Rpb24gVXgodCxlLHIpe3JldHVybiBuLnJlc2V0VG8oaSx0LGUscil9dmFyIHIsbj1DZS50byh0LHl0KCgocj17fSlbaV09Iis9MC4xIixyLnBhdXNlZD0hMCxyKSxlfHx7fSkpO3JldHVybiBVeC50d2Vlbj1uLFV4fSxpc1R3ZWVuaW5nOmZ1bmN0aW9uIGlzVHdlZW5pbmcodCl7cmV0dXJuIDA8TC5nZXRUd2VlbnNPZih0LCEwKS5sZW5ndGh9LGRlZmF1bHRzOmZ1bmN0aW9uIGRlZmF1bHRzKHQpe3JldHVybiB0JiZ0LmVhc2UmJih0LmVhc2U9WXQodC5lYXNlLHEuZWFzZSkpLHRhKHEsdHx8e30pfSxjb25maWc6ZnVuY3Rpb24gY29uZmlnKHQpe3JldHVybiB0YShqLHR8fHt9KX0scmVnaXN0ZXJFZmZlY3Q6ZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QodCl7dmFyIGk9dC5uYW1lLG49dC5lZmZlY3QsZT10LnBsdWdpbnMsYT10LmRlZmF1bHRzLHI9dC5leHRlbmRUaW1lbGluZTsoZXx8IiIpLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdCYmIXB0W3RdJiYhb3RbdF0mJlIoaSsiIGVmZmVjdCByZXF1aXJlcyAiK3QrIiBwbHVnaW4uIil9KSxfdFtpXT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oT3QodCkscWEoZXx8e30sYSkscil9LHImJihVdC5wcm90b3R5cGVbaV09ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLmFkZChfdFtpXSh0LHYoZSk/ZToocj1lKSYme30sdGhpcykscil9KX0scmVnaXN0ZXJFYXNlOmZ1bmN0aW9uIHJlZ2lzdGVyRWFzZSh0LGUpe0Z0W3RdPVl0KGUpfSxwYXJzZUVhc2U6ZnVuY3Rpb24gcGFyc2VFYXNlKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/WXQodCxlKTpGdH0sZ2V0QnlJZDpmdW5jdGlvbiBnZXRCeUlkKHQpe3JldHVybiBMLmdldEJ5SWQodCl9LGV4cG9ydFJvb3Q6ZnVuY3Rpb24gZXhwb3J0Um9vdCh0LGUpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgcixpLG49bmV3IFV0KHQpO2ZvcihuLnNtb290aENoaWxkVGltaW5nPXcodC5zbW9vdGhDaGlsZFRpbWluZyksTC5yZW1vdmUobiksbi5fZHA9MCxuLl90aW1lPW4uX3RUaW1lPUwuX3RpbWUscj1MLl9maXJzdDtyOylpPXIuX25leHQsIWUmJiFyLl9kdXImJnIgaW5zdGFuY2VvZiBHdCYmci52YXJzLm9uQ29tcGxldGU9PT1yLl90YXJnZXRzWzBdfHxLYShuLHIsci5fc3RhcnQtci5fZGVsYXkpLHI9aTtyZXR1cm4gS2EoTCxuLDApLG59LGNvbnRleHQ6ZnVuY3Rpb24gY29udGV4dCh0LGUpe3JldHVybiB0P25ldyBrZSh0LGUpOmx9LG1hdGNoTWVkaWE6ZnVuY3Rpb24gbWF0Y2hNZWRpYSh0KXtyZXR1cm4gbmV3IE9lKHQpfSxtYXRjaE1lZGlhUmVmcmVzaDpmdW5jdGlvbiBtYXRjaE1lZGlhUmVmcmVzaCgpe3JldHVybiB5ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLHIsaT10LmNvbmRpdGlvbnM7Zm9yKHIgaW4gaSlpW3JdJiYoaVtyXT0hMSxlPTEpO2UmJnQucmV2ZXJ0KCl9KXx8RGMoKX0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKHQsZSl7dmFyIHI9VGVbdF18fChUZVt0XT1bXSk7fnIuaW5kZXhPZihlKXx8ci5wdXNoKGUpfSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIodCxlKXt2YXIgcj1UZVt0XSxpPXImJnIuaW5kZXhPZihlKTswPD1pJiZyLnNwbGljZShpLDEpfSx1dGlsczp7d3JhcDpmdW5jdGlvbiB3cmFwKGUsdCxyKXt2YXIgaT10LWU7cmV0dXJuICQoZSk/bGIoZSx3cmFwKDAsZS5sZW5ndGgpLHQpOldhKHIsZnVuY3Rpb24odCl7cmV0dXJuKGkrKHQtZSklaSklaStlfSl9LHdyYXBZb3lvOmZ1bmN0aW9uIHdyYXBZb3lvKGUsdCxyKXt2YXIgaT10LWUsbj0yKmk7cmV0dXJuICQoZSk/bGIoZSx3cmFwWW95bygwLGUubGVuZ3RoLTEpLHQpOldhKHIsZnVuY3Rpb24odCl7cmV0dXJuIGUrKGk8KHQ9KG4rKHQtZSklbiklbnx8MCk/bi10OnQpfSl9LGRpc3RyaWJ1dGU6ZWIscmFuZG9tOmhiLHNuYXA6Z2Isbm9ybWFsaXplOmZ1bmN0aW9uIG5vcm1hbGl6ZSh0LGUscil7cmV0dXJuIFB0KHQsZSwwLDEscil9LGdldFVuaXQ6WWEsY2xhbXA6ZnVuY3Rpb24gY2xhbXAoZSxyLHQpe3JldHVybiBXYSh0LGZ1bmN0aW9uKHQpe3JldHVybiBrdChlLHIsdCl9KX0sc3BsaXRDb2xvcjp6Yix0b0FycmF5Ok90LHNlbGVjdG9yOmNiLG1hcFJhbmdlOlB0LHBpcGU6ZnVuY3Rpb24gcGlwZSgpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09YXJndW1lbnRzW3JdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSh0KX0sdCl9fSx1bml0aXplOmZ1bmN0aW9uIHVuaXRpemUoZSxyKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUocGFyc2VGbG9hdCh0KSkrKHJ8fFlhKHQpKX19LGludGVycG9sYXRlOmZ1bmN0aW9uIGludGVycG9sYXRlKGUsaSx0LG4pe3ZhciBhPWlzTmFOKGUraSk/MDpmdW5jdGlvbih0KXtyZXR1cm4oMS10KSplK3QqaX07aWYoIWEpe3ZhciBzLG8sdSxoLGwsZj1yKGUpLGM9e307aWYoITA9PT10JiYobj0xKSYmKHQ9bnVsbCksZillPXtwOmV9LGk9e3A6aX07ZWxzZSBpZigkKGUpJiYhJChpKSl7Zm9yKHU9W10saD1lLmxlbmd0aCxsPWgtMixvPTE7bzxoO28rKyl1LnB1c2goaW50ZXJwb2xhdGUoZVtvLTFdLGVbb10pKTtoLS0sYT1mdW5jdGlvbiBmdW5jKHQpe3QqPWg7dmFyIGU9TWF0aC5taW4obCx+fnQpO3JldHVybiB1W2VdKHQtZSl9LHQ9aX1lbHNlIG58fChlPXl0KCQoZSk/W106e30sZSkpO2lmKCF1KXtmb3IocyBpbiBpKVh0LmNhbGwoYyxlLHMsImdldCIsaVtzXSk7YT1mdW5jdGlvbiBmdW5jKHQpe3JldHVybiBvZSh0LGMpfHwoZj9lLnA6ZSl9fX1yZXR1cm4gV2EodCxhKX0sc2h1ZmZsZTpkYn0saW5zdGFsbDpQLGVmZmVjdHM6X3QsdGlja2VyOkV0LHVwZGF0ZVJvb3Q6VXQudXBkYXRlUm9vdCxwbHVnaW5zOnB0LGdsb2JhbFRpbWVsaW5lOkwsY29yZTp7UHJvcFR3ZWVuOnBlLGdsb2JhbHM6UyxUd2VlbjpHdCxUaW1lbGluZTpVdCxBbmltYXRpb246cXQsZ2V0Q2FjaGU6ZmEsX3JlbW92ZUxpbmtlZExpc3RJdGVtOnlhLHJldmVydGluZzpmdW5jdGlvbiByZXZlcnRpbmcoKXtyZXR1cm4gQn0sY29udGV4dDpmdW5jdGlvbiBjb250ZXh0KHQpe3JldHVybiB0JiZsJiYobC5kYXRhLnB1c2godCksdC5fY3R4PWwpLGx9LHN1cHByZXNzT3ZlcndyaXRlczpmdW5jdGlvbiBzdXBwcmVzc092ZXJ3cml0ZXModCl7cmV0dXJuIEk9dH19fTtoYSgidG8sZnJvbSxmcm9tVG8sZGVsYXllZENhbGwsc2V0LGtpbGxUd2VlbnNPZiIsZnVuY3Rpb24odCl7cmV0dXJuIFBlW3RdPUd0W3RdfSksRXQuYWRkKFV0LnVwZGF0ZVJvb3QpLGM9UGUudG8oe30se2R1cmF0aW9uOjB9KTtmdW5jdGlvbiBIYyh0LGUpe2Zvcih2YXIgcj10Ll9wdDtyJiZyLnAhPT1lJiZyLm9wIT09ZSYmci5mcCE9PWU7KXI9ci5fbmV4dDtyZXR1cm4gcn1mdW5jdGlvbiBKYyh0LGEpe3JldHVybntuYW1lOnQscmF3VmFyczoxLGluaXQ6ZnVuY3Rpb24gaW5pdCh0LG4sZSl7ZS5fb25Jbml0PWZ1bmN0aW9uKHQpe3ZhciBlLGk7aWYocihuKSYmKGU9e30saGEobixmdW5jdGlvbih0KXtyZXR1cm4gZVt0XT0xfSksbj1lKSxhKXtmb3IoaSBpbiBlPXt9LG4pZVtpXT1hKG5baV0pO249ZX0hZnVuY3Rpb24gX2FkZE1vZGlmaWVycyh0LGUpe3ZhciByLGksbixhPXQuX3RhcmdldHM7Zm9yKHIgaW4gZSlmb3IoaT1hLmxlbmd0aDtpLS07KShuPShuPXQuX3B0TG9va3VwW2ldW3JdKSYmbi5kKSYmKG4uX3B0JiYobj1IYyhuLHIpKSxuJiZuLm1vZGlmaWVyJiZuLm1vZGlmaWVyKGVbcl0sdCxhW2ldLHIpKX0odCxuKX19fX12YXIgQ2U9UGUucmVnaXN0ZXJQbHVnaW4oe25hbWU6ImF0dHIiLGluaXQ6ZnVuY3Rpb24gaW5pdCh0LGUscixpLG4pe3ZhciBhLHMsbztmb3IoYSBpbiB0aGlzLnR3ZWVuPXIsZSlvPXQuZ2V0QXR0cmlidXRlKGEpfHwiIiwocz10aGlzLmFkZCh0LCJzZXRBdHRyaWJ1dGUiLChvfHwwKSsiIixlW2FdLGksbiwwLDAsYSkpLm9wPWEscy5iPW8sdGhpcy5fcHJvcHMucHVzaChhKX0scmVuZGVyOmZ1bmN0aW9uIHJlbmRlcih0LGUpe2Zvcih2YXIgcj1lLl9wdDtyOylCP3Iuc2V0KHIudCxyLnAsci5iLHIpOnIucih0LHIuZCkscj1yLl9uZXh0fX0se25hbWU6ImVuZEFycmF5Iixpbml0OmZ1bmN0aW9uIGluaXQodCxlKXtmb3IodmFyIHI9ZS5sZW5ndGg7ci0tOyl0aGlzLmFkZCh0LHIsdFtyXXx8MCxlW3JdLDAsMCwwLDAsMCwxKX19LEpjKCJyb3VuZFByb3BzIixmYiksSmMoIm1vZGlmaWVycyIpLEpjKCJzbmFwIixnYikpfHxQZTtHdC52ZXJzaW9uPVV0LnZlcnNpb249Q2UudmVyc2lvbj0iMy4xMS4zIixvPTEseCgpJiZ6dCgpO2Z1bmN0aW9uIHRkKHQsZSl7cmV0dXJuIGUuc2V0KGUudCxlLnAsTWF0aC5yb3VuZCgxZTQqKGUucytlLmMqdCkpLzFlNCtlLnUsZSl9ZnVuY3Rpb24gdWQodCxlKXtyZXR1cm4gZS5zZXQoZS50LGUucCwxPT09dD9lLmU6TWF0aC5yb3VuZCgxZTQqKGUucytlLmMqdCkpLzFlNCtlLnUsZSl9ZnVuY3Rpb24gdmQodCxlKXtyZXR1cm4gZS5zZXQoZS50LGUucCx0P01hdGgucm91bmQoMWU0KihlLnMrZS5jKnQpKS8xZTQrZS51OmUuYixlKX1mdW5jdGlvbiB3ZCh0LGUpe3ZhciByPWUucytlLmMqdDtlLnNldChlLnQsZS5wLH5+KHIrKHI8MD8tLjU6LjUpKStlLnUsZSl9ZnVuY3Rpb24geGQodCxlKXtyZXR1cm4gZS5zZXQoZS50LGUucCx0P2UuZTplLmIsZSl9ZnVuY3Rpb24geWQodCxlKXtyZXR1cm4gZS5zZXQoZS50LGUucCwxIT09dD9lLmI6ZS5lLGUpfWZ1bmN0aW9uIHpkKHQsZSxyKXtyZXR1cm4gdC5zdHlsZVtlXT1yfWZ1bmN0aW9uIEFkKHQsZSxyKXtyZXR1cm4gdC5zdHlsZS5zZXRQcm9wZXJ0eShlLHIpfWZ1bmN0aW9uIEJkKHQsZSxyKXtyZXR1cm4gdC5fZ3NhcFtlXT1yfWZ1bmN0aW9uIENkKHQsZSxyKXtyZXR1cm4gdC5fZ3NhcC5zY2FsZVg9dC5fZ3NhcC5zY2FsZVk9cn1mdW5jdGlvbiBEZCh0LGUscixpLG4pe3ZhciBhPXQuX2dzYXA7YS5zY2FsZVg9YS5zY2FsZVk9cixhLnJlbmRlclRyYW5zZm9ybShuLGEpfWZ1bmN0aW9uIEVkKHQsZSxyLGksbil7dmFyIGE9dC5fZ3NhcDthW2VdPXIsYS5yZW5kZXJUcmFuc2Zvcm0obixhKX1mdW5jdGlvbiBIZCh0LGUpe3ZhciByPXRoaXMsaT10aGlzLnRhcmdldCxuPWkuc3R5bGU7aWYodCBpbiBycil7aWYodGhpcy50Zm09dGhpcy50Zm18fHt9LCJ0cmFuc2Zvcm0iIT09dCYmKH4odD1oclt0XXx8dCkuaW5kZXhPZigiLCIpP3Quc3BsaXQoIiwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiByLnRmbVt0XT1tcihpLHQpfSk6dGhpcy50Zm1bdF09aS5fZ3NhcC54P2kuX2dzYXBbdF06bXIoaSx0KSksMDw9dGhpcy5wcm9wcy5pbmRleE9mKGxyKSlyZXR1cm47aS5fZ3NhcC5zdmcmJih0aGlzLnN2Z289aS5nZXRBdHRyaWJ1dGUoImRhdGEtc3ZnLW9yaWdpbiIpLHRoaXMucHJvcHMucHVzaChmcixlLCIiKSksdD1scn0obnx8ZSkmJnRoaXMucHJvcHMucHVzaCh0LGUsblt0XSl9ZnVuY3Rpb24gSWQodCl7dC50cmFuc2xhdGUmJih0LnJlbW92ZVByb3BlcnR5KCJ0cmFuc2xhdGUiKSx0LnJlbW92ZVByb3BlcnR5KCJzY2FsZSIpLHQucmVtb3ZlUHJvcGVydHkoInJvdGF0ZSIpKX1mdW5jdGlvbiBKZCgpe3ZhciB0LGUscj10aGlzLnByb3BzLGk9dGhpcy50YXJnZXQsbj1pLnN0eWxlLGE9aS5fZ3NhcDtmb3IodD0wO3Q8ci5sZW5ndGg7dCs9MylyW3QrMV0/aVtyW3RdXT1yW3QrMl06clt0KzJdP25bclt0XV09clt0KzJdOm4ucmVtb3ZlUHJvcGVydHkoclt0XS5yZXBsYWNlKHNyLCItJDEiKS50b0xvd2VyQ2FzZSgpKTtpZih0aGlzLnRmbSl7Zm9yKGUgaW4gdGhpcy50Zm0pYVtlXT10aGlzLnRmbVtlXTthLnN2ZyYmKGEucmVuZGVyVHJhbnNmb3JtKCksaS5zZXRBdHRyaWJ1dGUoImRhdGEtc3ZnLW9yaWdpbiIsdGhpcy5zdmdvfHwiIikpLCEodD1GZSgpKXx8dC5pc1N0YXJ0fHxuW2xyXXx8KElkKG4pLGEudW5jYWNoZT0xKX19ZnVuY3Rpb24gS2QodCxlKXt2YXIgcj17dGFyZ2V0OnQscHJvcHM6W10scmV2ZXJ0OkpkLHNhdmU6SGR9O3JldHVybiBlJiZlLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gci5zYXZlKHQpfSkscn1mdW5jdGlvbiBNZCh0LGUpe3ZhciByPVNlLmNyZWF0ZUVsZW1lbnROUz9TZS5jcmVhdGVFbGVtZW50TlMoKGV8fCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIikucmVwbGFjZSgvXmh0dHBzLywiaHR0cCIpLHQpOlNlLmNyZWF0ZUVsZW1lbnQodCk7cmV0dXJuIHIuc3R5bGU/cjpTZS5jcmVhdGVFbGVtZW50KHQpfWZ1bmN0aW9uIE5kKHQsZSxyKXt2YXIgaT1nZXRDb21wdXRlZFN0eWxlKHQpO3JldHVybiBpW2VdfHxpLmdldFByb3BlcnR5VmFsdWUoZS5yZXBsYWNlKHNyLCItJDEiKS50b0xvd2VyQ2FzZSgpKXx8aS5nZXRQcm9wZXJ0eVZhbHVlKGUpfHwhciYmTmQodCxkcihlKXx8ZSwxKXx8IiJ9ZnVuY3Rpb24gUWQoKXsoZnVuY3Rpb24gX3dpbmRvd0V4aXN0cygpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93fSkoKSYmd2luZG93LmRvY3VtZW50JiYoQWU9d2luZG93LFNlPUFlLmRvY3VtZW50LFJlPVNlLmRvY3VtZW50RWxlbWVudCxFZT1NZCgiZGl2Iil8fHtzdHlsZTp7fX0sTWQoImRpdiIpLGxyPWRyKGxyKSxmcj1scisiT3JpZ2luIixFZS5zdHlsZS5jc3NUZXh0PSJib3JkZXItd2lkdGg6MDtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MCIsSWU9ISFkcigicGVyc3BlY3RpdmUiKSxGZT1DZS5jb3JlLnJldmVydGluZyxEZT0xKX1mdW5jdGlvbiBSZCh0KXt2YXIgZSxyPU1kKCJzdmciLHRoaXMub3duZXJTVkdFbGVtZW50JiZ0aGlzLm93bmVyU1ZHRWxlbWVudC5nZXRBdHRyaWJ1dGUoInhtbG5zIil8fCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIpLGk9dGhpcy5wYXJlbnROb2RlLG49dGhpcy5uZXh0U2libGluZyxhPXRoaXMuc3R5bGUuY3NzVGV4dDtpZihSZS5hcHBlbmRDaGlsZChyKSxyLmFwcGVuZENoaWxkKHRoaXMpLHRoaXMuc3R5bGUuZGlzcGxheT0iYmxvY2siLHQpdHJ5e2U9dGhpcy5nZXRCQm94KCksdGhpcy5fZ3NhcEJCb3g9dGhpcy5nZXRCQm94LHRoaXMuZ2V0QkJveD1SZH1jYXRjaCh0KXt9ZWxzZSB0aGlzLl9nc2FwQkJveCYmKGU9dGhpcy5fZ3NhcEJCb3goKSk7cmV0dXJuIGkmJihuP2kuaW5zZXJ0QmVmb3JlKHRoaXMsbik6aS5hcHBlbmRDaGlsZCh0aGlzKSksUmUucmVtb3ZlQ2hpbGQociksdGhpcy5zdHlsZS5jc3NUZXh0PWEsZX1mdW5jdGlvbiBTZCh0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aDtyLS07KWlmKHQuaGFzQXR0cmlidXRlKGVbcl0pKXJldHVybiB0LmdldEF0dHJpYnV0ZShlW3JdKX1mdW5jdGlvbiBUZChlKXt2YXIgcjt0cnl7cj1lLmdldEJCb3goKX1jYXRjaCh0KXtyPVJkLmNhbGwoZSwhMCl9cmV0dXJuIHImJihyLndpZHRofHxyLmhlaWdodCl8fGUuZ2V0QkJveD09PVJkfHwocj1SZC5jYWxsKGUsITApKSwhcnx8ci53aWR0aHx8ci54fHxyLnk/cjp7eDorU2QoZSxbIngiLCJjeCIsIngxIl0pfHwwLHk6K1NkKGUsWyJ5IiwiY3kiLCJ5MSJdKXx8MCx3aWR0aDowLGhlaWdodDowfX1mdW5jdGlvbiBVZCh0KXtyZXR1cm4hKCF0LmdldENUTXx8dC5wYXJlbnROb2RlJiYhdC5vd25lclNWR0VsZW1lbnR8fCFUZCh0KSl9ZnVuY3Rpb24gVmQodCxlKXtpZihlKXt2YXIgcj10LnN0eWxlO2UgaW4gcnImJmUhPT1mciYmKGU9bHIpLHIucmVtb3ZlUHJvcGVydHk/KCJtcyIhPT1lLnN1YnN0cigwLDIpJiYid2Via2l0IiE9PWUuc3Vic3RyKDAsNil8fChlPSItIitlKSxyLnJlbW92ZVByb3BlcnR5KGUucmVwbGFjZShzciwiLSQxIikudG9Mb3dlckNhc2UoKSkpOnIucmVtb3ZlQXR0cmlidXRlKGUpfX1mdW5jdGlvbiBXZCh0LGUscixpLG4sYSl7dmFyIHM9bmV3IHBlKHQuX3B0LGUsciwwLDEsYT95ZDp4ZCk7cmV0dXJuKHQuX3B0PXMpLmI9aSxzLmU9bix0Ll9wcm9wcy5wdXNoKHIpLHN9ZnVuY3Rpb24gWmQodCxlLHIsaSl7dmFyIG4sYSxzLG8sdT1wYXJzZUZsb2F0KHIpfHwwLGg9KHIrIiIpLnRyaW0oKS5zdWJzdHIoKHUrIiIpLmxlbmd0aCl8fCJweCIsbD1FZS5zdHlsZSxmPW9yLnRlc3QoZSksYz0ic3ZnIj09PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpLGQ9KGM/ImNsaWVudCI6Im9mZnNldCIpKyhmPyJXaWR0aCI6IkhlaWdodCIpLHA9InB4Ij09PWksXz0iJSI9PT1pO3JldHVybiBpPT09aHx8IXV8fHByW2ldfHxwcltoXT91OigicHgiPT09aHx8cHx8KHU9WmQodCxlLHIsInB4IikpLG89dC5nZXRDVE0mJlVkKHQpLCFfJiYiJSIhPT1ofHwhcnJbZV0mJiF+ZS5pbmRleE9mKCJhZGl1cyIpPyhsW2Y/IndpZHRoIjoiaGVpZ2h0Il09MTAwKyhwP2g6aSksYT1+ZS5pbmRleE9mKCJhZGl1cyIpfHwiZW0iPT09aSYmdC5hcHBlbmRDaGlsZCYmIWM/dDp0LnBhcmVudE5vZGUsbyYmKGE9KHQub3duZXJTVkdFbGVtZW50fHx7fSkucGFyZW50Tm9kZSksYSYmYSE9PVNlJiZhLmFwcGVuZENoaWxkfHwoYT1TZS5ib2R5KSwocz1hLl9nc2FwKSYmXyYmcy53aWR0aCYmZiYmcy50aW1lPT09RXQudGltZSYmIXMudW5jYWNoZT9pYSh1L3Mud2lkdGgqMTAwKTooIV8mJiIlIiE9PWh8fF9yW05kKGEsImRpc3BsYXkiKV18fChsLnBvc2l0aW9uPU5kKHQsInBvc2l0aW9uIikpLGE9PT10JiYobC5wb3NpdGlvbj0ic3RhdGljIiksYS5hcHBlbmRDaGlsZChFZSksbj1FZVtkXSxhLnJlbW92ZUNoaWxkKEVlKSxsLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZiYmXyYmKChzPWZhKGEpKS50aW1lPUV0LnRpbWUscy53aWR0aD1hW2RdKSxpYShwP24qdS8xMDA6biYmdT8xMDAvbip1OjApKSk6KG49bz90LmdldEJCb3goKVtmPyJ3aWR0aCI6ImhlaWdodCJdOnRbZF0saWEoXz91L24qMTAwOnUvMTAwKm4pKSl9ZnVuY3Rpb24gX2QodCxlLHIsaSl7aWYoIXJ8fCJub25lIj09PXIpe3ZhciBuPWRyKGUsdCwxKSxhPW4mJk5kKHQsbiwxKTthJiZhIT09cj8oZT1uLHI9YSk6ImJvcmRlckNvbG9yIj09PWUmJihyPU5kKHQsImJvcmRlclRvcENvbG9yIikpfXZhciBzLG8sdSxoLGwsZixjLGQscCxfLG0sZz1uZXcgcGUodGhpcy5fcHQsdC5zdHlsZSxlLDAsMSxzZSksdj0wLHk9MDtpZihnLmI9cixnLmU9aSxyKz0iIiwiYXV0byI9PT0oaSs9IiIpJiYodC5zdHlsZVtlXT1pLGk9TmQodCxlKXx8aSx0LnN0eWxlW2VdPXIpLEViKHM9W3IsaV0pLGk9c1sxXSx1PShyPXNbMF0pLm1hdGNoKHJ0KXx8W10sKGkubWF0Y2gocnQpfHxbXSkubGVuZ3RoKXtmb3IoO289cnQuZXhlYyhpKTspYz1vWzBdLHA9aS5zdWJzdHJpbmcodixvLmluZGV4KSxsP2w9KGwrMSklNToicmdiYSgiIT09cC5zdWJzdHIoLTUpJiYiaHNsYSgiIT09cC5zdWJzdHIoLTUpfHwobD0xKSxjIT09KGY9dVt5KytdfHwiIikmJihoPXBhcnNlRmxvYXQoZil8fDAsbT1mLnN1YnN0cigoaCsiIikubGVuZ3RoKSwiPSI9PT1jLmNoYXJBdCgxKSYmKGM9a2EoaCxjKSttKSxkPXBhcnNlRmxvYXQoYyksXz1jLnN1YnN0cigoZCsiIikubGVuZ3RoKSx2PXJ0Lmxhc3RJbmRleC1fLmxlbmd0aCxffHwoXz1ffHxqLnVuaXRzW2VdfHxtLHY9PT1pLmxlbmd0aCYmKGkrPV8sZy5lKz1fKSksbSE9PV8mJihoPVpkKHQsZSxmLF8pfHwwKSxnLl9wdD17X25leHQ6Zy5fcHQscDpwfHwxPT09eT9wOiIsIixzOmgsYzpkLWgsbTpsJiZsPDR8fCJ6SW5kZXgiPT09ZT9NYXRoLnJvdW5kOjB9KTtnLmM9djxpLmxlbmd0aD9pLnN1YnN0cmluZyh2LGkubGVuZ3RoKToiIn1lbHNlIGcucj0iZGlzcGxheSI9PT1lJiYibm9uZSI9PT1pP3lkOnhkO3JldHVybiBudC50ZXN0KGkpJiYoZy5lPTApLHRoaXMuX3B0PWd9ZnVuY3Rpb24gYmUodCl7dmFyIGU9dC5zcGxpdCgiICIpLHI9ZVswXSxpPWVbMV18fCI1MCUiO3JldHVybiJ0b3AiIT09ciYmImJvdHRvbSIhPT1yJiYibGVmdCIhPT1pJiYicmlnaHQiIT09aXx8KHQ9cixyPWksaT10KSxlWzBdPWdyW3JdfHxyLGVbMV09Z3JbaV18fGksZS5qb2luKCIgIil9ZnVuY3Rpb24gY2UodCxlKXtpZihlLnR3ZWVuJiZlLnR3ZWVuLl90aW1lPT09ZS50d2Vlbi5fZHVyKXt2YXIgcixpLG4sYT1lLnQscz1hLnN0eWxlLG89ZS51LHU9YS5fZ3NhcDtpZigiYWxsIj09PW98fCEwPT09bylzLmNzc1RleHQ9IiIsaT0xO2Vsc2UgZm9yKG49KG89by5zcGxpdCgiLCIpKS5sZW5ndGg7LTE8LS1uOylyPW9bbl0scnJbcl0mJihpPTEscj0idHJhbnNmb3JtT3JpZ2luIj09PXI/ZnI6bHIpLFZkKGEscik7aSYmKFZkKGEsbHIpLHUmJih1LnN2ZyYmYS5yZW1vdmVBdHRyaWJ1dGUoInRyYW5zZm9ybSIpLGJyKGEsMSksdS51bmNhY2hlPTEsSWQocykpKX19ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIm1hdHJpeCgxLCAwLCAwLCAxLCAwLCAwKSI9PT10fHwibm9uZSI9PT10fHwhdH1mdW5jdGlvbiBoZSh0KXt2YXIgZT1OZCh0LGxyKTtyZXR1cm4gZ2UoZSk/eXI6ZS5zdWJzdHIoNykubWF0Y2goZXQpLm1hcChpYSl9ZnVuY3Rpb24gaWUodCxlKXt2YXIgcixpLG4sYSxzPXQuX2dzYXB8fGZhKHQpLG89dC5zdHlsZSx1PWhlKHQpO3JldHVybiBzLnN2ZyYmdC5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpPyIxLDAsMCwxLDAsMCI9PT0odT1bKG49dC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpLm1hdHJpeCkuYSxuLmIsbi5jLG4uZCxuLmUsbi5mXSkuam9pbigiLCIpP3lyOnU6KHUhPT15cnx8dC5vZmZzZXRQYXJlbnR8fHQ9PT1SZXx8cy5zdmd8fChuPW8uZGlzcGxheSxvLmRpc3BsYXk9ImJsb2NrIiwocj10LnBhcmVudE5vZGUpJiZ0Lm9mZnNldFBhcmVudHx8KGE9MSxpPXQubmV4dEVsZW1lbnRTaWJsaW5nLFJlLmFwcGVuZENoaWxkKHQpKSx1PWhlKHQpLG4/by5kaXNwbGF5PW46VmQodCwiZGlzcGxheSIpLGEmJihpP3IuaW5zZXJ0QmVmb3JlKHQsaSk6cj9yLmFwcGVuZENoaWxkKHQpOlJlLnJlbW92ZUNoaWxkKHQpKSksZSYmNjx1Lmxlbmd0aD9bdVswXSx1WzFdLHVbNF0sdVs1XSx1WzEyXSx1WzEzXV06dSl9ZnVuY3Rpb24gamUodCxlLHIsaSxuLGEpe3ZhciBzLG8sdSxoPXQuX2dzYXAsbD1ufHxpZSh0LCEwKSxmPWgueE9yaWdpbnx8MCxjPWgueU9yaWdpbnx8MCxkPWgueE9mZnNldHx8MCxwPWgueU9mZnNldHx8MCxfPWxbMF0sbT1sWzFdLGc9bFsyXSx2PWxbM10seT1sWzRdLFQ9bFs1XSxiPWUuc3BsaXQoIiAiKSx3PXBhcnNlRmxvYXQoYlswXSl8fDAseD1wYXJzZUZsb2F0KGJbMV0pfHwwO3I/bCE9PXlyJiYobz1fKnYtbSpnKSYmKHU9dyooLW0vbykreCooXy9vKS0oXypULW0qeSkvbyx3PXcqKHYvbykreCooLWcvbykrKGcqVC12KnkpL28seD11KToodz0ocz1UZCh0KSkueCsofmJbMF0uaW5kZXhPZigiJSIpP3cvMTAwKnMud2lkdGg6dykseD1zLnkrKH4oYlsxXXx8YlswXSkuaW5kZXhPZigiJSIpP3gvMTAwKnMuaGVpZ2h0OngpKSxpfHwhMSE9PWkmJmguc21vb3RoPyh5PXctZixUPXgtYyxoLnhPZmZzZXQ9ZCsoeSpfK1QqZykteSxoLnlPZmZzZXQ9cCsoeSptK1QqdiktVCk6aC54T2Zmc2V0PWgueU9mZnNldD0wLGgueE9yaWdpbj13LGgueU9yaWdpbj14LGguc21vb3RoPSEhaSxoLm9yaWdpbj1lLGgub3JpZ2luSXNBYnNvbHV0ZT0hIXIsdC5zdHlsZVtmcl09IjBweCAwcHgiLGEmJihXZChhLGgsInhPcmlnaW4iLGYsdyksV2QoYSxoLCJ5T3JpZ2luIixjLHgpLFdkKGEsaCwieE9mZnNldCIsZCxoLnhPZmZzZXQpLFdkKGEsaCwieU9mZnNldCIscCxoLnlPZmZzZXQpKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1zdmctb3JpZ2luIix3KyIgIit4KX1mdW5jdGlvbiBtZSh0LGUscil7dmFyIGk9WWEoZSk7cmV0dXJuIGlhKHBhcnNlRmxvYXQoZSkrcGFyc2VGbG9hdChaZCh0LCJ4IixyKyJweCIsaSkpKStpfWZ1bmN0aW9uIHRlKHQsZSxpLG4sYSl7dmFyIHMsbyx1PTM2MCxoPXIoYSksbD1wYXJzZUZsb2F0KGEpKihoJiZ+YS5pbmRleE9mKCJyYWQiKT9pcjoxKS1uLGY9bitsKyJkZWciO3JldHVybiBoJiYoInNob3J0Ij09PShzPWEuc3BsaXQoIl8iKVsxXSkmJihsJT11KSE9PWwlMTgwJiYobCs9bDwwP3U6LXUpLCJjdyI9PT1zJiZsPDA/bD0obCszNmU5KSV1LX5+KGwvdSkqdToiY2N3Ij09PXMmJjA8bCYmKGw9KGwtMzZlOSkldS1+fihsL3UpKnUpKSx0Ll9wdD1vPW5ldyBwZSh0Ll9wdCxlLGksbixsLHVkKSxvLmU9ZixvLnU9ImRlZyIsdC5fcHJvcHMucHVzaChpKSxvfWZ1bmN0aW9uIHVlKHQsZSl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdO3JldHVybiB0fWZ1bmN0aW9uIHZlKHQsZSxyKXt2YXIgaSxuLGEscyxvLHUsaCxsPXVlKHt9LHIuX2dzYXApLGY9ci5zdHlsZTtmb3IobiBpbiBsLnN2Zz8oYT1yLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiksci5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIiIpLGZbbHJdPWUsaT1icihyLDEpLFZkKHIsbHIpLHIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGEpKTooYT1nZXRDb21wdXRlZFN0eWxlKHIpW2xyXSxmW2xyXT1lLGk9YnIociwxKSxmW2xyXT1hKSxycikoYT1sW25dKSE9PShzPWlbbl0pJiYicGVyc3BlY3RpdmUsZm9yY2UzRCx0cmFuc2Zvcm1PcmlnaW4sc3ZnT3JpZ2luIi5pbmRleE9mKG4pPDAmJihvPVlhKGEpIT09KGg9WWEocykpP1pkKHIsbixhLGgpOnBhcnNlRmxvYXQoYSksdT1wYXJzZUZsb2F0KHMpLHQuX3B0PW5ldyBwZSh0Ll9wdCxpLG4sbyx1LW8sdGQpLHQuX3B0LnU9aHx8MCx0Ll9wcm9wcy5wdXNoKG4pKTt1ZShpLGwpfXZhciBBZSxTZSxSZSxEZSxFZSx6ZSxGZSxJZSxCZT1GdC5Qb3dlcjAsTGU9RnQuUG93ZXIxLFllPUZ0LlBvd2VyMixOZT1GdC5Qb3dlcjMscWU9RnQuUG93ZXI0LFVlPUZ0LkxpbmVhcixWZT1GdC5RdWFkLFdlPUZ0LkN1YmljLFhlPUZ0LlF1YXJ0LEhlPUZ0LlF1aW50LFFlPUZ0LlN0cm9uZyxLZT1GdC5FbGFzdGljLFplPUZ0LkJhY2ssR2U9RnQuU3RlcHBlZEVhc2UsSmU9RnQuQm91bmNlLCRlPUZ0LlNpbmUsdHI9RnQuRXhwbyxlcj1GdC5DaXJjLHJyPXt9LGlyPTE4MC9NYXRoLlBJLG5yPU1hdGguUEkvMTgwLGFyPU1hdGguYXRhbjIsc3I9LyhbQS1aXSkvZyxvcj0vKGxlZnR8cmlnaHR8d2lkdGh8bWFyZ2lufHBhZGRpbmd8eCkvaSx1cj0vW1xzLFwoXVxTLyxocj17YXV0b0FscGhhOiJvcGFjaXR5LHZpc2liaWxpdHkiLHNjYWxlOiJzY2FsZVgsc2NhbGVZIixhbHBoYToib3BhY2l0eSJ9LGxyPSJ0cmFuc2Zvcm0iLGZyPWxyKyJPcmlnaW4iLGNyPSJPLE1veixtcyxNcyxXZWJraXQiLnNwbGl0KCIsIiksZHI9ZnVuY3Rpb24gX2NoZWNrUHJvcFByZWZpeCh0LGUscil7dmFyIGk9KGV8fEVlKS5zdHlsZSxuPTU7aWYodCBpbiBpJiYhcilyZXR1cm4gdDtmb3IodD10LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc3Vic3RyKDEpO24tLSYmIShjcltuXSt0IGluIGkpOyk7cmV0dXJuIG48MD9udWxsOigzPT09bj8ibXMiOjA8PW4/Y3Jbbl06IiIpK3R9LHByPXtkZWc6MSxyYWQ6MSx0dXJuOjF9LF9yPXtncmlkOjEsZmxleDoxfSxtcj1mdW5jdGlvbiBfZ2V0KHQsZSxyLGkpe3ZhciBuO3JldHVybiBEZXx8UWQoKSxlIGluIGhyJiYidHJhbnNmb3JtIiE9PWUmJn4oZT1ocltlXSkuaW5kZXhPZigiLCIpJiYoZT1lLnNwbGl0KCIsIilbMF0pLHJyW2VdJiYidHJhbnNmb3JtIiE9PWU/KG49YnIodCxpKSxuPSJ0cmFuc2Zvcm1PcmlnaW4iIT09ZT9uW2VdOm4uc3ZnP24ub3JpZ2luOndyKE5kKHQsZnIpKSsiICIrbi56T3JpZ2luKyJweCIpOihuPXQuc3R5bGVbZV0pJiYiYXV0byIhPT1uJiYhaSYmIX4obisiIikuaW5kZXhPZigiY2FsYygiKXx8KG49dnJbZV0mJnZyW2VdKHQsZSxyKXx8TmQodCxlKXx8Z2EodCxlKXx8KCJvcGFjaXR5Ij09PWU/MTowKSksciYmIX4obisiIikudHJpbSgpLmluZGV4T2YoIiAiKT9aZCh0LGUsbixyKStyOm59LGdyPXt0b3A6IjAlIixib3R0b206IjEwMCUiLGxlZnQ6IjAlIixyaWdodDoiMTAwJSIsY2VudGVyOiI1MCUifSx2cj17Y2xlYXJQcm9wczpmdW5jdGlvbiBjbGVhclByb3BzKHQsZSxyLGksbil7aWYoImlzRnJvbVN0YXJ0IiE9PW4uZGF0YSl7dmFyIGE9dC5fcHQ9bmV3IHBlKHQuX3B0LGUsciwwLDAsY2UpO3JldHVybiBhLnU9aSxhLnByPS0xMCxhLnR3ZWVuPW4sdC5fcHJvcHMucHVzaChyKSwxfX19LHlyPVsxLDAsMCwxLDAsMF0sVHI9e30sYnI9ZnVuY3Rpb24gX3BhcnNlVHJhbnNmb3JtKHQsZSl7dmFyIHI9dC5fZ3NhcHx8bmV3IGp0KHQpO2lmKCJ4ImluIHImJiFlJiYhci51bmNhY2hlKXJldHVybiByO3ZhciBpLG4sYSxzLG8sdSxoLGwsZixjLGQscCxfLG0sZyx2LHksVCxiLHcseCxrLE0sTyxQLEMsQSxTLFIsRCxFLHosRj10LnN0eWxlLEk9ci5zY2FsZVg8MCxCPSJkZWciLEw9Z2V0Q29tcHV0ZWRTdHlsZSh0KSxZPU5kKHQsZnIpfHwiMCI7cmV0dXJuIGk9bj1hPXU9aD1sPWY9Yz1kPTAscz1vPTEsci5zdmc9ISghdC5nZXRDVE18fCFVZCh0KSksTC50cmFuc2xhdGUmJigibm9uZSI9PT1MLnRyYW5zbGF0ZSYmIm5vbmUiPT09TC5zY2FsZSYmIm5vbmUiPT09TC5yb3RhdGV8fChGW2xyXT0oIm5vbmUiIT09TC50cmFuc2xhdGU/InRyYW5zbGF0ZTNkKCIrKEwudHJhbnNsYXRlKyIgMCAwIikuc3BsaXQoIiAiKS5zbGljZSgwLDMpLmpvaW4oIiwgIikrIikgIjoiIikrKCJub25lIiE9PUwucm90YXRlPyJyb3RhdGUoIitMLnJvdGF0ZSsiKSAiOiIiKSsoIm5vbmUiIT09TC5zY2FsZT8ic2NhbGUoIitMLnNjYWxlLnNwbGl0KCIgIikuam9pbigiLCIpKyIpICI6IiIpKygibm9uZSIhPT1MW2xyXT9MW2xyXToiIikpLEYuc2NhbGU9Ri5yb3RhdGU9Ri50cmFuc2xhdGU9Im5vbmUiKSxtPWllKHQsci5zdmcpLHIuc3ZnJiYoTz1yLnVuY2FjaGU/KFA9dC5nZXRCQm94KCksWT1yLnhPcmlnaW4tUC54KyJweCAiKyhyLnlPcmlnaW4tUC55KSsicHgiLCIiKTohZSYmdC5nZXRBdHRyaWJ1dGUoImRhdGEtc3ZnLW9yaWdpbiIpLGplKHQsT3x8WSwhIU98fHIub3JpZ2luSXNBYnNvbHV0ZSwhMSE9PXIuc21vb3RoLG0pKSxwPXIueE9yaWdpbnx8MCxfPXIueU9yaWdpbnx8MCxtIT09eXImJihUPW1bMF0sYj1tWzFdLHc9bVsyXSx4PW1bM10saT1rPW1bNF0sbj1NPW1bNV0sNj09PW0ubGVuZ3RoPyhzPU1hdGguc3FydChUKlQrYipiKSxvPU1hdGguc3FydCh4Kngrdyp3KSx1PVR8fGI/YXIoYixUKSppcjowLChmPXd8fHg/YXIodyx4KSppcit1OjApJiYobyo9TWF0aC5hYnMoTWF0aC5jb3MoZipucikpKSxyLnN2ZyYmKGktPXAtKHAqVCtfKncpLG4tPV8tKHAqYitfKngpKSk6KHo9bVs2XSxEPW1bN10sQT1tWzhdLFM9bVs5XSxSPW1bMTBdLEU9bVsxMV0saT1tWzEyXSxuPW1bMTNdLGE9bVsxNF0saD0oZz1hcih6LFIpKSppcixnJiYoTz1rKih2PU1hdGguY29zKC1nKSkrQSooeT1NYXRoLnNpbigtZykpLFA9TSp2K1MqeSxDPXoqditSKnksQT1rKi15K0EqdixTPU0qLXkrUyp2LFI9eioteStSKnYsRT1EKi15K0UqdixrPU8sTT1QLHo9QyksbD0oZz1hcigtdyxSKSkqaXIsZyYmKHY9TWF0aC5jb3MoLWcpLEU9eCooeT1NYXRoLnNpbigtZykpK0UqdixUPU89VCp2LUEqeSxiPVA9Yip2LVMqeSx3PUM9dyp2LVIqeSksdT0oZz1hcihiLFQpKSppcixnJiYoTz1UKih2PU1hdGguY29zKGcpKStiKih5PU1hdGguc2luKGcpKSxQPWsqditNKnksYj1iKnYtVCp5LE09TSp2LWsqeSxUPU8saz1QKSxoJiYzNTkuOTxNYXRoLmFicyhoKStNYXRoLmFicyh1KSYmKGg9dT0wLGw9MTgwLWwpLHM9aWEoTWF0aC5zcXJ0KFQqVCtiKmIrdyp3KSksbz1pYShNYXRoLnNxcnQoTSpNK3oqeikpLGc9YXIoayxNKSxmPTJlLTQ8TWF0aC5hYnMoZyk/ZyppcjowLGQ9RT8xLyhFPDA/LUU6RSk6MCksci5zdmcmJihPPXQuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKSxyLmZvcmNlQ1NTPXQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCIiKXx8IWdlKE5kKHQsbHIpKSxPJiZ0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixPKSkpLDkwPE1hdGguYWJzKGYpJiZNYXRoLmFicyhmKTwyNzAmJihJPyhzKj0tMSxmKz11PD0wPzE4MDotMTgwLHUrPXU8PTA/MTgwOi0xODApOihvKj0tMSxmKz1mPD0wPzE4MDotMTgwKSksZT1lfHxyLnVuY2FjaGUsci54PWktKChyLnhQZXJjZW50PWkmJighZSYmci54UGVyY2VudHx8KE1hdGgucm91bmQodC5vZmZzZXRXaWR0aC8yKT09PU1hdGgucm91bmQoLWkpPy01MDowKSkpP3Qub2Zmc2V0V2lkdGgqci54UGVyY2VudC8xMDA6MCkrInB4IixyLnk9bi0oKHIueVBlcmNlbnQ9biYmKCFlJiZyLnlQZXJjZW50fHwoTWF0aC5yb3VuZCh0Lm9mZnNldEhlaWdodC8yKT09PU1hdGgucm91bmQoLW4pPy01MDowKSkpP3Qub2Zmc2V0SGVpZ2h0KnIueVBlcmNlbnQvMTAwOjApKyJweCIsci56PWErInB4IixyLnNjYWxlWD1pYShzKSxyLnNjYWxlWT1pYShvKSxyLnJvdGF0aW9uPWlhKHUpK0Isci5yb3RhdGlvblg9aWEoaCkrQixyLnJvdGF0aW9uWT1pYShsKStCLHIuc2tld1g9ZitCLHIuc2tld1k9YytCLHIudHJhbnNmb3JtUGVyc3BlY3RpdmU9ZCsicHgiLChyLnpPcmlnaW49cGFyc2VGbG9hdChZLnNwbGl0KCIgIilbMl0pfHwwKSYmKEZbZnJdPXdyKFkpKSxyLnhPZmZzZXQ9ci55T2Zmc2V0PTAsci5mb3JjZTNEPWouZm9yY2UzRCxyLnJlbmRlclRyYW5zZm9ybT1yLnN2Zz9DcjpJZT9Qcjp4cixyLnVuY2FjaGU9MCxyfSx3cj1mdW5jdGlvbiBfZmlyc3RUd29Pbmx5KHQpe3JldHVybih0PXQuc3BsaXQoIiAiKSlbMF0rIiAiK3RbMV19LHhyPWZ1bmN0aW9uIF9yZW5kZXJOb24zRFRyYW5zZm9ybXModCxlKXtlLno9IjBweCIsZS5yb3RhdGlvblk9ZS5yb3RhdGlvblg9IjBkZWciLGUuZm9yY2UzRD0wLFByKHQsZSl9LGtyPSIwZGVnIixNcj0iMHB4IixPcj0iKSAiLFByPWZ1bmN0aW9uIF9yZW5kZXJDU1NUcmFuc2Zvcm1zKHQsZSl7dmFyIHI9ZXx8dGhpcyxpPXIueFBlcmNlbnQsbj1yLnlQZXJjZW50LGE9ci54LHM9ci55LG89ci56LHU9ci5yb3RhdGlvbixoPXIucm90YXRpb25ZLGw9ci5yb3RhdGlvblgsZj1yLnNrZXdYLGM9ci5za2V3WSxkPXIuc2NhbGVYLHA9ci5zY2FsZVksXz1yLnRyYW5zZm9ybVBlcnNwZWN0aXZlLG09ci5mb3JjZTNELGc9ci50YXJnZXQsdj1yLnpPcmlnaW4seT0iIixUPSJhdXRvIj09PW0mJnQmJjEhPT10fHwhMD09PW07aWYodiYmKGwhPT1rcnx8aCE9PWtyKSl7dmFyIGIsdz1wYXJzZUZsb2F0KGgpKm5yLHg9TWF0aC5zaW4odyksaz1NYXRoLmNvcyh3KTt3PXBhcnNlRmxvYXQobCkqbnIsYj1NYXRoLmNvcyh3KSxhPW1lKGcsYSx4KmIqLXYpLHM9bWUoZyxzLC1NYXRoLnNpbih3KSotdiksbz1tZShnLG8saypiKi12K3YpfV8hPT1NciYmKHkrPSJwZXJzcGVjdGl2ZSgiK18rT3IpLChpfHxuKSYmKHkrPSJ0cmFuc2xhdGUoIitpKyIlLCAiK24rIiUpICIpLCFUJiZhPT09TXImJnM9PT1NciYmbz09PU1yfHwoeSs9byE9PU1yfHxUPyJ0cmFuc2xhdGUzZCgiK2ErIiwgIitzKyIsICIrbysiKSAiOiJ0cmFuc2xhdGUoIithKyIsICIrcytPciksdSE9PWtyJiYoeSs9InJvdGF0ZSgiK3UrT3IpLGghPT1rciYmKHkrPSJyb3RhdGVZKCIraCtPciksbCE9PWtyJiYoeSs9InJvdGF0ZVgoIitsK09yKSxmPT09a3ImJmM9PT1rcnx8KHkrPSJza2V3KCIrZisiLCAiK2MrT3IpLDE9PT1kJiYxPT09cHx8KHkrPSJzY2FsZSgiK2QrIiwgIitwK09yKSxnLnN0eWxlW2xyXT15fHwidHJhbnNsYXRlKDAsIDApIn0sQ3I9ZnVuY3Rpb24gX3JlbmRlclNWR1RyYW5zZm9ybXModCxlKXt2YXIgcixpLG4sYSxzLG89ZXx8dGhpcyx1PW8ueFBlcmNlbnQsaD1vLnlQZXJjZW50LGw9by54LGY9by55LGM9by5yb3RhdGlvbixkPW8uc2tld1gscD1vLnNrZXdZLF89by5zY2FsZVgsbT1vLnNjYWxlWSxnPW8udGFyZ2V0LHY9by54T3JpZ2luLHk9by55T3JpZ2luLFQ9by54T2Zmc2V0LGI9by55T2Zmc2V0LHc9by5mb3JjZUNTUyx4PXBhcnNlRmxvYXQobCksaz1wYXJzZUZsb2F0KGYpO2M9cGFyc2VGbG9hdChjKSxkPXBhcnNlRmxvYXQoZCksKHA9cGFyc2VGbG9hdChwKSkmJihkKz1wPXBhcnNlRmxvYXQocCksYys9cCksY3x8ZD8oYyo9bnIsZCo9bnIscj1NYXRoLmNvcyhjKSpfLGk9TWF0aC5zaW4oYykqXyxuPU1hdGguc2luKGMtZCkqLW0sYT1NYXRoLmNvcyhjLWQpKm0sZCYmKHAqPW5yLHM9TWF0aC50YW4oZC1wKSxuKj1zPU1hdGguc3FydCgxK3MqcyksYSo9cyxwJiYocz1NYXRoLnRhbihwKSxyKj1zPU1hdGguc3FydCgxK3MqcyksaSo9cykpLHI9aWEociksaT1pYShpKSxuPWlhKG4pLGE9aWEoYSkpOihyPV8sYT1tLGk9bj0wKSwoeCYmIX4obCsiIikuaW5kZXhPZigicHgiKXx8ayYmIX4oZisiIikuaW5kZXhPZigicHgiKSkmJih4PVpkKGcsIngiLGwsInB4Iiksaz1aZChnLCJ5IixmLCJweCIpKSwodnx8eXx8VHx8YikmJih4PWlhKHgrdi0odipyK3kqbikrVCksaz1pYShrK3ktKHYqaSt5KmEpK2IpKSwodXx8aCkmJihzPWcuZ2V0QkJveCgpLHg9aWEoeCt1LzEwMCpzLndpZHRoKSxrPWlhKGsraC8xMDAqcy5oZWlnaHQpKSxzPSJtYXRyaXgoIityKyIsIitpKyIsIituKyIsIithKyIsIit4KyIsIitrKyIpIixnLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixzKSx3JiYoZy5zdHlsZVtscl09cyl9O2hhKCJwYWRkaW5nLG1hcmdpbixXaWR0aCxSYWRpdXMiLGZ1bmN0aW9uKGUscil7dmFyIHQ9IlJpZ2h0IixpPSJCb3R0b20iLG49IkxlZnQiLG89KHI8Mz9bIlRvcCIsdCxpLG5dOlsiVG9wIituLCJUb3AiK3QsaSt0LGkrbl0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcjwyP2UrdDoiYm9yZGVyIit0K2V9KTt2clsxPHI/ImJvcmRlciIrZTplXT1mdW5jdGlvbihlLHQscixpLG4pe3ZhciBhLHM7aWYoYXJndW1lbnRzLmxlbmd0aDw0KXJldHVybiBhPW8ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBtcihlLHQscil9KSw1PT09KHM9YS5qb2luKCIgIikpLnNwbGl0KGFbMF0pLmxlbmd0aD9hWzBdOnM7YT0oaSsiIikuc3BsaXQoIiAiKSxzPXt9LG8uZm9yRWFjaChmdW5jdGlvbih0LGUpe3JldHVybiBzW3RdPWFbZV09YVtlXXx8YVsoZS0xKS8yfDBdfSksZS5pbml0KHQscyxuKX19KTt2YXIgQXIsU3IsUnIsRHI9e25hbWU6ImNzcyIscmVnaXN0ZXI6UWQsdGFyZ2V0VGVzdDpmdW5jdGlvbiB0YXJnZXRUZXN0KHQpe3JldHVybiB0LnN0eWxlJiZ0Lm5vZGVUeXBlfSxpbml0OmZ1bmN0aW9uIGluaXQodCxlLGksbixhKXt2YXIgcyxvLHUsaCxsLGYsYyxkLHAsXyxtLGcsdix5LFQsYix3PXRoaXMuX3Byb3BzLHg9dC5zdHlsZSxrPWkudmFycy5zdGFydEF0O2ZvcihjIGluIERlfHxRZCgpLHRoaXMuc3R5bGVzPXRoaXMuc3R5bGVzfHxLZCh0KSxiPXRoaXMuc3R5bGVzLnByb3BzLHRoaXMudHdlZW49aSxlKWlmKCJhdXRvUm91bmQiIT09YyYmKG89ZVtjXSwhcHRbY118fCFfYihjLGUsaSxuLHQsYSkpKWlmKGw9dHlwZW9mIG8sZj12cltjXSwiZnVuY3Rpb24iPT09bCYmKGw9dHlwZW9mKG89by5jYWxsKGksbix0LGEpKSksInN0cmluZyI9PT1sJiZ+by5pbmRleE9mKCJyYW5kb20oIikmJihvPW9iKG8pKSxmKWYodGhpcyx0LGMsbyxpKSYmKFQ9MSk7ZWxzZSBpZigiLS0iPT09Yy5zdWJzdHIoMCwyKSlzPShnZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoYykrIiIpLnRyaW0oKSxvKz0iIixSdC5sYXN0SW5kZXg9MCxSdC50ZXN0KHMpfHwoZD1ZYShzKSxwPVlhKG8pKSxwP2QhPT1wJiYocz1aZCh0LGMscyxwKStwKTpkJiYobys9ZCksdGhpcy5hZGQoeCwic2V0UHJvcGVydHkiLHMsbyxuLGEsMCwwLGMpLHcucHVzaChjKSxiLnB1c2goYywwLHhbY10pO2Vsc2UgaWYoInVuZGVmaW5lZCIhPT1sKXtpZihrJiZjIGluIGs/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIGtbY10/a1tjXS5jYWxsKGksbix0LGEpOmtbY10scihzKSYmfnMuaW5kZXhPZigicmFuZG9tKCIpJiYocz1vYihzKSksWWEocysiIil8fChzKz1qLnVuaXRzW2NdfHxZYShtcih0LGMpKXx8IiIpLCI9Ij09PShzKyIiKS5jaGFyQXQoMSkmJihzPW1yKHQsYykpKTpzPW1yKHQsYyksaD1wYXJzZUZsb2F0KHMpLChfPSJzdHJpbmciPT09bCYmIj0iPT09by5jaGFyQXQoMSkmJm8uc3Vic3RyKDAsMikpJiYobz1vLnN1YnN0cigyKSksdT1wYXJzZUZsb2F0KG8pLGMgaW4gaHImJigiYXV0b0FscGhhIj09PWMmJigxPT09aCYmImhpZGRlbiI9PT1tcih0LCJ2aXNpYmlsaXR5IikmJnUmJihoPTApLGIucHVzaCgidmlzaWJpbGl0eSIsMCx4LnZpc2liaWxpdHkpLFdkKHRoaXMseCwidmlzaWJpbGl0eSIsaD8iaW5oZXJpdCI6ImhpZGRlbiIsdT8iaW5oZXJpdCI6ImhpZGRlbiIsIXUpKSwic2NhbGUiIT09YyYmInRyYW5zZm9ybSIhPT1jJiZ+KGM9aHJbY10pLmluZGV4T2YoIiwiKSYmKGM9Yy5zcGxpdCgiLCIpWzBdKSksbT1jIGluIHJyKWlmKHRoaXMuc3R5bGVzLnNhdmUoYyksZ3x8KCh2PXQuX2dzYXApLnJlbmRlclRyYW5zZm9ybSYmIWUucGFyc2VUcmFuc2Zvcm18fGJyKHQsZS5wYXJzZVRyYW5zZm9ybSkseT0hMSE9PWUuc21vb3RoT3JpZ2luJiZ2LnNtb290aCwoZz10aGlzLl9wdD1uZXcgcGUodGhpcy5fcHQseCxsciwwLDEsdi5yZW5kZXJUcmFuc2Zvcm0sdiwwLC0xKSkuZGVwPTEpLCJzY2FsZSI9PT1jKXRoaXMuX3B0PW5ldyBwZSh0aGlzLl9wdCx2LCJzY2FsZVkiLGgsKF8/a2EoaCxfK3UpOnUpLWh8fDAsdGQpLHRoaXMuX3B0LnU9MCx3LnB1c2goInNjYWxlWSIsYyksYys9IlgiO2Vsc2V7aWYoInRyYW5zZm9ybU9yaWdpbiI9PT1jKXtiLnB1c2goZnIsMCx4W2ZyXSksbz1iZShvKSx2LnN2Zz9qZSh0LG8sMCx5LDAsdGhpcyk6KChwPXBhcnNlRmxvYXQoby5zcGxpdCgiICIpWzJdKXx8MCkhPT12LnpPcmlnaW4mJldkKHRoaXMsdiwiek9yaWdpbiIsdi56T3JpZ2luLHApLFdkKHRoaXMseCxjLHdyKHMpLHdyKG8pKSk7Y29udGludWV9aWYoInN2Z09yaWdpbiI9PT1jKXtqZSh0LG8sMSx5LDAsdGhpcyk7Y29udGludWV9aWYoYyBpbiBUcil7dGUodGhpcyx2LGMsaCxfP2thKGgsXytvKTpvKTtjb250aW51ZX1pZigic21vb3RoT3JpZ2luIj09PWMpe1dkKHRoaXMsdiwic21vb3RoIix2LnNtb290aCxvKTtjb250aW51ZX1pZigiZm9yY2UzRCI9PT1jKXt2W2NdPW87Y29udGludWV9aWYoInRyYW5zZm9ybSI9PT1jKXt2ZSh0aGlzLG8sdCk7Y29udGludWV9fWVsc2UgYyBpbiB4fHwoYz1kcihjKXx8Yyk7aWYobXx8KHV8fDA9PT11KSYmKGh8fDA9PT1oKSYmIXVyLnRlc3QobykmJmMgaW4geCl1PXV8fDAsKGQ9KHMrIiIpLnN1YnN0cigoaCsiIikubGVuZ3RoKSkhPT0ocD1ZYShvKXx8KGMgaW4gai51bml0cz9qLnVuaXRzW2NdOmQpKSYmKGg9WmQodCxjLHMscCkpLHRoaXMuX3B0PW5ldyBwZSh0aGlzLl9wdCxtP3Y6eCxjLGgsKF8/a2EoaCxfK3UpOnUpLWgsbXx8InB4IiE9PXAmJiJ6SW5kZXgiIT09Y3x8ITE9PT1lLmF1dG9Sb3VuZD90ZDp3ZCksdGhpcy5fcHQudT1wfHwwLGQhPT1wJiYiJSIhPT1wJiYodGhpcy5fcHQuYj1zLHRoaXMuX3B0LnI9dmQpO2Vsc2UgaWYoYyBpbiB4KV9kLmNhbGwodGhpcyx0LGMscyxfP18rbzpvKTtlbHNle2lmKCEoYyBpbiB0KSl7UShjLG8pO2NvbnRpbnVlfXRoaXMuYWRkKHQsYyxzfHx0W2NdLF8/XytvOm8sbixhKX1tfHwoYyBpbiB4P2IucHVzaChjLDAseFtjXSk6Yi5wdXNoKGMsMSxzfHx0W2NdKSksdy5wdXNoKGMpfVQmJmRlKHRoaXMpfSxyZW5kZXI6ZnVuY3Rpb24gcmVuZGVyKHQsZSl7aWYoZS50d2Vlbi5fdGltZXx8IUZlKCkpZm9yKHZhciByPWUuX3B0O3I7KXIucih0LHIuZCkscj1yLl9uZXh0O2Vsc2UgZS5zdHlsZXMucmV2ZXJ0KCl9LGdldDptcixhbGlhc2VzOmhyLGdldFNldHRlcjpmdW5jdGlvbiBnZXRTZXR0ZXIodCxlLHIpe3ZhciBpPWhyW2VdO3JldHVybiBpJiZpLmluZGV4T2YoIiwiKTwwJiYoZT1pKSxlIGluIHJyJiZlIT09ZnImJih0Ll9nc2FwLnh8fG1yKHQsIngiKSk/ciYmemU9PT1yPyJzY2FsZSI9PT1lP0NkOkJkOih6ZT1yfHx7fSkmJigic2NhbGUiPT09ZT9EZDpFZCk6dC5zdHlsZSYmIXUodC5zdHlsZVtlXSk/emQ6fmUuaW5kZXhPZigiLSIpP0FkOnJlKHQsZSl9LGNvcmU6e19yZW1vdmVQcm9wZXJ0eTpWZCxfZ2V0TWF0cml4OmllfX07Q2UudXRpbHMuY2hlY2tQcmVmaXg9ZHIsQ2UuY29yZS5nZXRTdHlsZVNhdmVyPUtkLFJyPWhhKChBcj0ieCx5LHosc2NhbGUsc2NhbGVYLHNjYWxlWSx4UGVyY2VudCx5UGVyY2VudCIpKyIsIisoU3I9InJvdGF0aW9uLHJvdGF0aW9uWCxyb3RhdGlvblksc2tld1gsc2tld1kiKSsiLHRyYW5zZm9ybSx0cmFuc2Zvcm1PcmlnaW4sc3ZnT3JpZ2luLGZvcmNlM0Qsc21vb3RoT3JpZ2luLHRyYW5zZm9ybVBlcnNwZWN0aXZlIixmdW5jdGlvbih0KXtyclt0XT0xfSksaGEoU3IsZnVuY3Rpb24odCl7ai51bml0c1t0XT0iZGVnIixUclt0XT0xfSksaHJbUnJbMTNdXT1BcisiLCIrU3IsaGEoIjA6dHJhbnNsYXRlWCwxOnRyYW5zbGF0ZVksMjp0cmFuc2xhdGVaLDg6cm90YXRlLDg6cm90YXRpb25aLDg6cm90YXRlWiw5OnJvdGF0ZVgsMTA6cm90YXRlWSIsZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiOiIpO2hyW2VbMV1dPVJyW2VbMF1dfSksaGEoIngseSx6LHRvcCxyaWdodCxib3R0b20sbGVmdCx3aWR0aCxoZWlnaHQsZm9udFNpemUscGFkZGluZyxtYXJnaW4scGVyc3BlY3RpdmUiLGZ1bmN0aW9uKHQpe2oudW5pdHNbdF09InB4In0pLENlLnJlZ2lzdGVyUGx1Z2luKERyKTt2YXIgRXI9Q2UucmVnaXN0ZXJQbHVnaW4oRHIpfHxDZSx6cj1Fci5jb3JlLlR3ZWVuO2UuQmFjaz1aZSxlLkJvdW5jZT1KZSxlLkNTU1BsdWdpbj1EcixlLkNpcmM9ZXIsZS5DdWJpYz1XZSxlLkVsYXN0aWM9S2UsZS5FeHBvPXRyLGUuTGluZWFyPVVlLGUuUG93ZXIwPUJlLGUuUG93ZXIxPUxlLGUuUG93ZXIyPVllLGUuUG93ZXIzPU5lLGUuUG93ZXI0PXFlLGUuUXVhZD1WZSxlLlF1YXJ0PVhlLGUuUXVpbnQ9SGUsZS5TaW5lPSRlLGUuU3RlcHBlZEVhc2U9R2UsZS5TdHJvbmc9UWUsZS5UaW1lbGluZUxpdGU9VXQsZS5UaW1lbGluZU1heD1VdCxlLlR3ZWVuTGl0ZT1HdCxlLlR3ZWVuTWF4PXpyLGUuZGVmYXVsdD1FcixlLmdzYXA9RXI7aWYgKHR5cGVvZih3aW5kb3cpPT09InVuZGVmaW5lZCJ8fHdpbmRvdyE9PWUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0gZWxzZSB7ZGVsZXRlIGUuZGVmYXVsdH19KTsKCg=="}},"time_used":478,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":478,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=13\u0026frm=0\u0026ae=g\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026_tu=CA\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2842\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.725Z","timestamp":1785145405725,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=13\u0026frm=0\u0026ae=g\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026_tu=CA\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2842\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\ncache-control: no-cache, no-store, must-revalidate\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: text/plain\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":549,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":22,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/conversion/10784971490/?random=1785145405698\u0026cv=11\u0026fst=1785145405698\u0026fmt=3\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026bttype=purchase\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oid=2129522358.1785145406\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=1\u0026sscte=1\u0026ct_cookie_present=1","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.727Z","timestamp":1785145405727,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /ccm/conversion/10784971490/?random=1785145405698\u0026cv=11\u0026fst=1785145405698\u0026fmt=3\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026bttype=purchase\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oid=2129522358.1785145406\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=1\u0026sscte=1\u0026ct_cookie_present=1 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\nlast-modified: Sun, 17 May 1998 03:00:00 GMT\r\nx-content-type-options: nosniff\r\ncontent-type: image/gif\r\ncross-origin-resource-policy: cross-origin\r\ncontent-security-policy-report-only: script-src 'none'; form-action 'none'; frame-src 'none'; report-uri https://csp.withgoogle.com/csp/scaffolding/ascnsrsgac:130:0\r\ncross-origin-opener-policy-report-only: same-origin; report-to=ascnsrsgac:130:0\r\nreport-to: {\"group\":\"ascnsrsgac:130:0\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/scaffolding/ascnsrsgac:130:0\"}],}\r\nserver: Golfe2\r\ncontent-length: 35\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":35,"size_decoded":871,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"28d6814f309ea289f847c69cf91194c6","sha1":"0f4e929dd5bb2564f7ab9c76338e04e292a42ace","sha256":"8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015","sha512":"1d68b92e8d822fe82dc7563edd7b37f3418a02a89f1a9f0454cca664c2fc2565235e0d85540ff9be0b20175be3f5b7b4eae1175067465d5cca13486aab4c582c","ssdeep":"","tlshash":"be800003c280c002c2a2c0308e08ca802a8ab0a08a28030fb0ec3baafc2a2a20c00000","first_seen":"2023-04-05T07:36:27Z","last_seen":"2026-08-12T03:29:30.197691Z","times_seen":54932,"resource_available":false,"data":"R0lGODlhAQABAID/AP///wAAACwAAAAAAQABAAACAkQBADs="}},"time_used":19,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026ipr=y\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.403Z","timestamp":1785145406403,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026ipr=y\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-security-policy: script-src 'none'; object-src 'none'\r\ncontent-type: text/html; charset=UTF-8\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":613,"mime_type":"text/html; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":87,"timings":{"blocked":0,"dns":2,"connect":15,"send":0,"wait":41,"receive":0,"ssl":29},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.867Z","timestamp":1785145403867,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-24e5\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":9445,"size_decoded":3806,"mime_type":"application/javascript","magic":"data","md5":"c2c4e2a562e06e1cb22293a5b920aca6","sha1":"a7b5a369ac4883f1ee7fa701b238d20238b675ca","sha256":"698e93fe491cc7bbf07a470579a33dbd0db53c19142b7be41ebfd39a23aef11f","sha512":"7117e879a8a4d8c8e1acd1a34247a7cf420128da970ed42975d6a04665ec571dc388c62fc3b50deda0b9e896f599d56ffbc28b25a45119cd79f5f45e3e58c178","ssdeep":"192:zofOLSBW36LJ2iBYDe7qBoegqC4Wxaftm9Norr7dWSjSWfYN:zofOLSk36FJBYDeubjCWtm9Norr7EgPW","tlshash":"b712b4ec71dab056238721e054afb005f13aaaa431d99cd0db90d9e17e708c961b3fe9","first_seen":"2023-08-08T23:25:56Z","last_seen":"2026-08-11T20:39:17.481881Z","times_seen":21533,"resource_available":true,"data":"LyohIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCAqLwohZnVuY3Rpb24oKXt2YXIgdD17MTI0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcjshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGk9e25vdF9zdHJpbmc6L1tec10vLG5vdF9ib29sOi9bXnRdLyxub3RfdHlwZTovW15UXS8sbm90X3ByaW1pdGl2ZTovW152XS8sbnVtYmVyOi9bZGllZmddLyxudW1lcmljX2FyZzovW2JjZGllZmd1eFhdLyxqc29uOi9bal0vLG5vdF9qc29uOi9bXmpdLyx0ZXh0Oi9eW15ceDI1XSsvLG1vZHVsbzovXlx4MjV7Mn0vLHBsYWNlaG9sZGVyOi9eXHgyNSg/OihbMS05XVxkKilcJHxcKChbXildKylcKSk/KFwrKT8oMHwnW14kXSk/KC0pPyhcZCspPyg/OlwuKFxkKykpPyhbYi1naWpvc3RUdXZ4WF0pLyxrZXk6L14oW2Etel9dW2Etel9cZF0qKS9pLGtleV9hY2Nlc3M6L15cLihbYS16X11bYS16X1xkXSopL2ksaW5kZXhfYWNjZXNzOi9eXFsoXGQrKVxdLyxzaWduOi9eWystXS99O2Z1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG4scixhLHMsdSxsLGMscCxmLGQ9MSxoPXQubGVuZ3RoLGc9IiI7Zm9yKHI9MDtyPGg7cisrKWlmKCJzdHJpbmciPT10eXBlb2YgdFtyXSlnKz10W3JdO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiB0W3JdKXtpZigocz10W3JdKS5rZXlzKWZvcihuPWVbZF0sYT0wO2E8cy5rZXlzLmxlbmd0aDthKyspe2lmKG51bGw9PW4pdGhyb3cgbmV3IEVycm9yKG8oJ1tzcHJpbnRmXSBDYW5ub3QgYWNjZXNzIHByb3BlcnR5ICIlcyIgb2YgdW5kZWZpbmVkIHZhbHVlICIlcyInLHMua2V5c1thXSxzLmtleXNbYS0xXSkpO249bltzLmtleXNbYV1dfWVsc2Ugbj1zLnBhcmFtX25vP2Vbcy5wYXJhbV9ub106ZVtkKytdO2lmKGkubm90X3R5cGUudGVzdChzLnR5cGUpJiZpLm5vdF9wcmltaXRpdmUudGVzdChzLnR5cGUpJiZuIGluc3RhbmNlb2YgRnVuY3Rpb24mJihuPW4oKSksaS5udW1lcmljX2FyZy50ZXN0KHMudHlwZSkmJiJudW1iZXIiIT10eXBlb2YgbiYmaXNOYU4obikpdGhyb3cgbmV3IFR5cGVFcnJvcihvKCJbc3ByaW50Zl0gZXhwZWN0aW5nIG51bWJlciBidXQgZm91bmQgJVQiLG4pKTtzd2l0Y2goaS5udW1iZXIudGVzdChzLnR5cGUpJiYocD1uPj0wKSxzLnR5cGUpe2Nhc2UiYiI6bj1wYXJzZUludChuLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOm49U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChuLDEwKSk7YnJlYWs7Y2FzZSJkIjpjYXNlImkiOm49cGFyc2VJbnQobiwxMCk7YnJlYWs7Y2FzZSJqIjpuPUpTT04uc3RyaW5naWZ5KG4sbnVsbCxzLndpZHRoP3BhcnNlSW50KHMud2lkdGgpOjApO2JyZWFrO2Nhc2UiZSI6bj1zLnByZWNpc2lvbj9wYXJzZUZsb2F0KG4pLnRvRXhwb25lbnRpYWwocy5wcmVjaXNpb24pOnBhcnNlRmxvYXQobikudG9FeHBvbmVudGlhbCgpO2JyZWFrO2Nhc2UiZiI6bj1zLnByZWNpc2lvbj9wYXJzZUZsb2F0KG4pLnRvRml4ZWQocy5wcmVjaXNpb24pOnBhcnNlRmxvYXQobik7YnJlYWs7Y2FzZSJnIjpuPXMucHJlY2lzaW9uP1N0cmluZyhOdW1iZXIobi50b1ByZWNpc2lvbihzLnByZWNpc2lvbikpKTpwYXJzZUZsb2F0KG4pO2JyZWFrO2Nhc2UibyI6bj0ocGFyc2VJbnQobiwxMCk+Pj4wKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOm49U3RyaW5nKG4pLG49cy5wcmVjaXNpb24/bi5zdWJzdHJpbmcoMCxzLnByZWNpc2lvbik6bjticmVhaztjYXNlInQiOm49U3RyaW5nKCEhbiksbj1zLnByZWNpc2lvbj9uLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTpuO2JyZWFrO2Nhc2UiVCI6bj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobikuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSxuPXMucHJlY2lzaW9uP24uc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOm47YnJlYWs7Y2FzZSJ1IjpuPXBhcnNlSW50KG4sMTApPj4+MDticmVhaztjYXNlInYiOm49bi52YWx1ZU9mKCksbj1zLnByZWNpc2lvbj9uLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTpuO2JyZWFrO2Nhc2UieCI6bj0ocGFyc2VJbnQobiwxMCk+Pj4wKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpuPShwYXJzZUludChuLDEwKT4+PjApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfWkuanNvbi50ZXN0KHMudHlwZSk/Zys9bjooIWkubnVtYmVyLnRlc3Qocy50eXBlKXx8cCYmIXMuc2lnbj9mPSIiOihmPXA/IisiOiItIixuPW4udG9TdHJpbmcoKS5yZXBsYWNlKGkuc2lnbiwiIikpLGw9cy5wYWRfY2hhcj8iMCI9PT1zLnBhZF9jaGFyPyIwIjpzLnBhZF9jaGFyLmNoYXJBdCgxKToiICIsYz1zLndpZHRoLShmK24pLmxlbmd0aCx1PXMud2lkdGgmJmM+MD9sLnJlcGVhdChjKToiIixnKz1zLmFsaWduP2Yrbit1OiIwIj09PWw/Zit1K246dStmK24pfXJldHVybiBnfShmdW5jdGlvbih0KXtpZihzW3RdKXJldHVybiBzW3RdO3ZhciBlLG49dCxyPVtdLG89MDtmb3IoO247KXtpZihudWxsIT09KGU9aS50ZXh0LmV4ZWMobikpKXIucHVzaChlWzBdKTtlbHNlIGlmKG51bGwhPT0oZT1pLm1vZHVsby5leGVjKG4pKSlyLnB1c2goIiUiKTtlbHNle2lmKG51bGw9PT0oZT1pLnBsYWNlaG9sZGVyLmV4ZWMobikpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIHVuZXhwZWN0ZWQgcGxhY2Vob2xkZXIiKTtpZihlWzJdKXtvfD0xO3ZhciBhPVtdLHU9ZVsyXSxsPVtdO2lmKG51bGw9PT0obD1pLmtleS5leGVjKHUpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7Zm9yKGEucHVzaChsWzFdKTsiIiE9PSh1PXUuc3Vic3RyaW5nKGxbMF0ubGVuZ3RoKSk7KWlmKG51bGwhPT0obD1pLmtleV9hY2Nlc3MuZXhlYyh1KSkpYS5wdXNoKGxbMV0pO2Vsc2V7aWYobnVsbD09PShsPWkuaW5kZXhfYWNjZXNzLmV4ZWModSkpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXkiKTthLnB1c2gobFsxXSl9ZVsyXT1hfWVsc2Ugb3w9MjtpZigzPT09byl0aHJvdyBuZXcgRXJyb3IoIltzcHJpbnRmXSBtaXhpbmcgcG9zaXRpb25hbCBhbmQgbmFtZWQgcGxhY2Vob2xkZXJzIGlzIG5vdCAoeWV0KSBzdXBwb3J0ZWQiKTtyLnB1c2goe3BsYWNlaG9sZGVyOmVbMF0scGFyYW1fbm86ZVsxXSxrZXlzOmVbMl0sc2lnbjplWzNdLHBhZF9jaGFyOmVbNF0sYWxpZ246ZVs1XSx3aWR0aDplWzZdLHByZWNpc2lvbjplWzddLHR5cGU6ZVs4XX0pfW49bi5zdWJzdHJpbmcoZVswXS5sZW5ndGgpfXJldHVybiBzW3RdPXJ9KHQpLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBvLmFwcGx5KG51bGwsW3RdLmNvbmNhdChlfHxbXSkpfXZhciBzPU9iamVjdC5jcmVhdGUobnVsbCk7ZS5zcHJpbnRmPW8sZS52c3ByaW50Zj1hLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LnNwcmludGY9byx3aW5kb3cudnNwcmludGY9YSx2b2lkIDA9PT0ocj1mdW5jdGlvbigpe3JldHVybntzcHJpbnRmOm8sdnNwcmludGY6YX19LmNhbGwoZSxuLGUsdCkpfHwodC5leHBvcnRzPXIpKX0oKX19LGU9e307ZnVuY3Rpb24gbihyKXt2YXIgaT1lW3JdO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkuZXhwb3J0czt2YXIgbz1lW3JdPXtleHBvcnRzOnt9fTtyZXR1cm4gdFtyXShvLG8uZXhwb3J0cyxuKSxvLmV4cG9ydHN9bi5uPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiBuLmQoZSx7YTplfSksZX0sbi5kPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpbi5vKGUscikmJiFuLm8odCxyKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscix7ZW51bWVyYWJsZTohMCxnZXQ6ZVtyXX0pfSxuLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LG4ucj1mdW5jdGlvbih0KXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfTt2YXIgcj17fTshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7bi5yKHIpLG4uZChyLHtfXzpmdW5jdGlvbigpe3JldHVybiBGfSxfbjpmdW5jdGlvbigpe3JldHVybiBqfSxfbng6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sX3g6ZnVuY3Rpb24oKXtyZXR1cm4gU30sY3JlYXRlSTE4bjpmdW5jdGlvbigpe3JldHVybiB4fSxkZWZhdWx0STE4bjpmdW5jdGlvbigpe3JldHVybiBffSxnZXRMb2NhbGVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LGhhc1RyYW5zbGF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIER9LGlzUlRMOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LHJlc2V0TG9jYWxlRGF0YTpmdW5jdGlvbigpe3JldHVybiB3fSxzZXRMb2NhbGVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIG19LHNwcmludGY6ZnVuY3Rpb24oKXtyZXR1cm4gb30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJuIGt9fSk7dmFyIHQ9bigxMjQpLGU9bi5uKHQpO2NvbnN0IGk9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9MDtmdW5jdGlvbiBvKCl7dmFyIG8sYSxzPW4sdT1hcmd1bWVudHMubGVuZ3RoO3Q6Zm9yKDtzOyl7aWYocy5hcmdzLmxlbmd0aD09PWFyZ3VtZW50cy5sZW5ndGgpe2ZvcihhPTA7YTx1O2ErKylpZihzLmFyZ3NbYV0hPT1hcmd1bWVudHNbYV0pe3M9cy5uZXh0O2NvbnRpbnVlIHR9cmV0dXJuIHMhPT1uJiYocz09PXImJihyPXMucHJldikscy5wcmV2Lm5leHQ9cy5uZXh0LHMubmV4dCYmKHMubmV4dC5wcmV2PXMucHJldikscy5uZXh0PW4scy5wcmV2PW51bGwsbi5wcmV2PXMsbj1zKSxzLnZhbH1zPXMubmV4dH1mb3Iobz1uZXcgQXJyYXkodSksYT0wO2E8dTthKyspb1thXT1hcmd1bWVudHNbYV07cmV0dXJuIHM9e2FyZ3M6byx2YWw6dC5hcHBseShudWxsLG8pfSxuPyhuLnByZXY9cyxzLm5leHQ9bik6cj1zLGk9PT1lLm1heFNpemU/KHI9ci5wcmV2KS5uZXh0PW51bGw6aSsrLG49cyxzLnZhbH1yZXR1cm4gZT1lfHx7fSxvLmNsZWFyPWZ1bmN0aW9uKCl7bj1udWxsLHI9bnVsbCxpPTB9LG99KGNvbnNvbGUuZXJyb3IpO2Z1bmN0aW9uIG8odCwuLi5uKXt0cnl7cmV0dXJuIGUoKS5zcHJpbnRmKHQsLi4ubil9Y2F0Y2goZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvciYmaSgic3ByaW50ZiBlcnJvcjogXG5cbiIrZS50b1N0cmluZygpKSx0fX12YXIgYSxzLHUsbDthPXsiKCI6OSwiISI6OCwiKiI6NywiLyI6NywiJSI6NywiKyI6NiwiLSI6NiwiPCI6NSwiPD0iOjUsIj4iOjUsIj49Ijo1LCI9PSI6NCwiIT0iOjQsIiYmIjozLCJ8fCI6MiwiPyI6MSwiPzoiOjF9LHM9WyIoIiwiPyJdLHU9eyIpIjpbIigiXSwiOiI6WyI/IiwiPzoiXX0sbD0vPD18Pj18PT18IT18JiZ8XHxcfHxcPzp8XCh8IXxcKnxcL3wlfFwrfC18PHw+fFw/fFwpfDovO3ZhciBjPXsiISI6ZnVuY3Rpb24odCl7cmV0dXJuIXR9LCIqIjpmdW5jdGlvbih0LGUpe3JldHVybiB0KmV9LCIvIjpmdW5jdGlvbih0LGUpe3JldHVybiB0L2V9LCIlIjpmdW5jdGlvbih0LGUpe3JldHVybiB0JWV9LCIrIjpmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9LCItIjpmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9LCI8IjpmdW5jdGlvbih0LGUpe3JldHVybiB0PGV9LCI8PSI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw9ZX0sIj4iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+ZX0sIj49IjpmdW5jdGlvbih0LGUpe3JldHVybiB0Pj1lfSwiPT0iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfSwiIT0iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1lfSwiJiYiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJmV9LCJ8fCI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdHx8ZX0sIj86IjpmdW5jdGlvbih0LGUsbil7aWYodCl0aHJvdyBlO3JldHVybiBufX07ZnVuY3Rpb24gcCh0KXt2YXIgZT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbixyLGksbz1bXSxjPVtdO2U9dC5tYXRjaChsKTspe2ZvcihuPWVbMF0sKHI9dC5zdWJzdHIoMCxlLmluZGV4KS50cmltKCkpJiZvLnB1c2gocik7aT1jLnBvcCgpOyl7aWYodVtuXSl7aWYodVtuXVswXT09PWkpe249dVtuXVsxXXx8bjticmVha319ZWxzZSBpZihzLmluZGV4T2YoaSk+PTB8fGFbaV08YVtuXSl7Yy5wdXNoKGkpO2JyZWFrfW8ucHVzaChpKX11W25dfHxjLnB1c2gobiksdD10LnN1YnN0cihlLmluZGV4K24ubGVuZ3RoKX1yZXR1cm4odD10LnRyaW0oKSkmJm8ucHVzaCh0KSxvLmNvbmNhdChjLnJldmVyc2UoKSl9KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixyLGksbyxhLHMsdT1bXTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXtpZihhPXRbbl0sbz1jW2FdKXtmb3Iocj1vLmxlbmd0aCxpPUFycmF5KHIpO3ItLTspaVtyXT11LnBvcCgpO3RyeXtzPW8uYXBwbHkobnVsbCxpKX1jYXRjaCh0KXtyZXR1cm4gdH19ZWxzZSBzPWUuaGFzT3duUHJvcGVydHkoYSk/ZVthXTorYTt1LnB1c2gocyl9cmV0dXJuIHVbMF19KGUsdCl9fXZhciBmPXtjb250ZXh0RGVsaW1pdGVyOiIEIixvbk1pc3NpbmdLZXk6bnVsbH07ZnVuY3Rpb24gZCh0LGUpe3ZhciBuO2ZvcihuIGluIHRoaXMuZGF0YT10LHRoaXMucGx1cmFsRm9ybXM9e30sdGhpcy5vcHRpb25zPXt9LGYpdGhpcy5vcHRpb25zW25dPXZvaWQgMCE9PWUmJm4gaW4gZT9lW25dOmZbbl19ZC5wcm90b3R5cGUuZ2V0UGx1cmFsRm9ybT1mdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxvPXRoaXMucGx1cmFsRm9ybXNbdF07cmV0dXJuIG98fCgiZnVuY3Rpb24iIT10eXBlb2YoaT0obj10aGlzLmRhdGFbdF1bIiJdKVsiUGx1cmFsLUZvcm1zIl18fG5bInBsdXJhbC1mb3JtcyJdfHxuLnBsdXJhbF9mb3JtcykmJihyPWZ1bmN0aW9uKHQpe3ZhciBlLG4scjtmb3IoZT10LnNwbGl0KCI7Iiksbj0wO248ZS5sZW5ndGg7bisrKWlmKDA9PT0ocj1lW25dLnRyaW0oKSkuaW5kZXhPZigicGx1cmFsPSIpKXJldHVybiByLnN1YnN0cig3KX0oblsiUGx1cmFsLUZvcm1zIl18fG5bInBsdXJhbC1mb3JtcyJdfHxuLnBsdXJhbF9mb3JtcyksaT1mdW5jdGlvbih0KXt2YXIgZT1wKHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4rZSh7bjp0fSl9fShyKSksbz10aGlzLnBsdXJhbEZvcm1zW3RdPWkpLG8oZSl9LGQucHJvdG90eXBlLmRjbnBnZXR0ZXh0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzO3JldHVybiBvPXZvaWQgMD09PWk/MDp0aGlzLmdldFBsdXJhbEZvcm0odCxpKSxhPW4sZSYmKGE9ZSt0aGlzLm9wdGlvbnMuY29udGV4dERlbGltaXRlcituKSwocz10aGlzLmRhdGFbdF1bYV0pJiZzW29dP3Nbb106KHRoaXMub3B0aW9ucy5vbk1pc3NpbmdLZXkmJnRoaXMub3B0aW9ucy5vbk1pc3NpbmdLZXkobix0KSwwPT09bz9uOnIpfTtjb25zdCBoPXtwbHVyYWxfZm9ybXModCl7cmV0dXJuIDE9PT10PzA6MX19LGc9L15pMThuXC4obj9nZXR0ZXh0fGhhc190cmFuc2xhdGlvbikoX3wkKS8seD0odCxlLG4pPT57Y29uc3Qgcj1uZXcgZCh7fSksaT1uZXcgU2V0LG89KCk9PntpLmZvckVhY2goKHQ9PnQoKSkpfSxhPSh0LGU9ImRlZmF1bHQiKT0+e3IuZGF0YVtlXT17Li4uci5kYXRhW2VdLC4uLnR9LHIuZGF0YVtlXVsiIl09ey4uLmgsLi4uci5kYXRhW2VdPy5bIiJdfSxkZWxldGUgci5wbHVyYWxGb3Jtc1tlXX0scz0odCxlKT0+e2EodCxlKSxvKCl9LHU9KHQ9ImRlZmF1bHQiLGUsbixpLG8pPT4oci5kYXRhW3RdfHxhKHZvaWQgMCx0KSxyLmRjbnBnZXR0ZXh0KHQsZSxuLGksbykpLGw9KHQ9ImRlZmF1bHQiKT0+dCxjPSh0LGUscik9PntsZXQgaT11KHIsZSx0KTtyZXR1cm4gbj8oaT1uLmFwcGx5RmlsdGVycygiaTE4bi5nZXR0ZXh0X3dpdGhfY29udGV4dCIsaSx0LGUsciksbi5hcHBseUZpbHRlcnMoImkxOG4uZ2V0dGV4dF93aXRoX2NvbnRleHRfIitsKHIpLGksdCxlLHIpKTppfTtpZih0JiZzKHQsZSksbil7Y29uc3QgdD10PT57Zy50ZXN0KHQpJiZvKCl9O24uYWRkQWN0aW9uKCJob29rQWRkZWQiLCJjb3JlL2kxOG4iLHQpLG4uYWRkQWN0aW9uKCJob29rUmVtb3ZlZCIsImNvcmUvaTE4biIsdCl9cmV0dXJue2dldExvY2FsZURhdGE6KHQ9ImRlZmF1bHQiKT0+ci5kYXRhW3RdLHNldExvY2FsZURhdGE6cyxhZGRMb2NhbGVEYXRhOih0LGU9ImRlZmF1bHQiKT0+e3IuZGF0YVtlXT17Li4uci5kYXRhW2VdLC4uLnQsIiI6ey4uLmgsLi4uci5kYXRhW2VdPy5bIiJdLC4uLnQ/LlsiIl19fSxkZWxldGUgci5wbHVyYWxGb3Jtc1tlXSxvKCl9LHJlc2V0TG9jYWxlRGF0YToodCxlKT0+e3IuZGF0YT17fSxyLnBsdXJhbEZvcm1zPXt9LHModCxlKX0sc3Vic2NyaWJlOnQ9PihpLmFkZCh0KSwoKT0+aS5kZWxldGUodCkpLF9fOih0LGUpPT57bGV0IHI9dShlLHZvaWQgMCx0KTtyZXR1cm4gbj8ocj1uLmFwcGx5RmlsdGVycygiaTE4bi5nZXR0ZXh0IixyLHQsZSksbi5hcHBseUZpbHRlcnMoImkxOG4uZ2V0dGV4dF8iK2woZSkscix0LGUpKTpyfSxfeDpjLF9uOih0LGUscixpKT0+e2xldCBvPXUoaSx2b2lkIDAsdCxlLHIpO3JldHVybiBuPyhvPW4uYXBwbHlGaWx0ZXJzKCJpMThuLm5nZXR0ZXh0IixvLHQsZSxyLGkpLG4uYXBwbHlGaWx0ZXJzKCJpMThuLm5nZXR0ZXh0XyIrbChpKSxvLHQsZSxyLGkpKTpvfSxfbng6KHQsZSxyLGksbyk9PntsZXQgYT11KG8saSx0LGUscik7cmV0dXJuIG4/KGE9bi5hcHBseUZpbHRlcnMoImkxOG4ubmdldHRleHRfd2l0aF9jb250ZXh0IixhLHQsZSxyLGksbyksbi5hcHBseUZpbHRlcnMoImkxOG4ubmdldHRleHRfd2l0aF9jb250ZXh0XyIrbChvKSxhLHQsZSxyLGksbykpOmF9LGlzUlRMOigpPT4icnRsIj09PWMoImx0ciIsInRleHQgZGlyZWN0aW9uIiksaGFzVHJhbnNsYXRpb246KHQsZSxpKT0+e2NvbnN0IG89ZT9lKyIEIit0OnQ7bGV0IGE9ISFyLmRhdGE/LltudWxsIT1pP2k6ImRlZmF1bHQiXT8uW29dO3JldHVybiBuJiYoYT1uLmFwcGx5RmlsdGVycygiaTE4bi5oYXNfdHJhbnNsYXRpb24iLGEsdCxlLGkpLGE9bi5hcHBseUZpbHRlcnMoImkxOG4uaGFzX3RyYW5zbGF0aW9uXyIrbChpKSxhLHQsZSxpKSksYX19fTt2YXIgeT13aW5kb3cud3AuaG9va3M7Y29uc3QgYj14KHZvaWQgMCx2b2lkIDAseS5kZWZhdWx0SG9va3MpO3ZhciBfPWI7Y29uc3Qgdj1iLmdldExvY2FsZURhdGEuYmluZChiKSxtPWIuc2V0TG9jYWxlRGF0YS5iaW5kKGIpLHc9Yi5yZXNldExvY2FsZURhdGEuYmluZChiKSxrPWIuc3Vic2NyaWJlLmJpbmQoYiksRj1iLl9fLmJpbmQoYiksUz1iLl94LmJpbmQoYiksaj1iLl9uLmJpbmQoYiksTD1iLl9ueC5iaW5kKGIpLFQ9Yi5pc1JUTC5iaW5kKGIpLEQ9Yi5oYXNUcmFuc2xhdGlvbi5iaW5kKGIpfSgpLCh3aW5kb3cud3A9d2luZG93LndwfHx7fSkuaTE4bj1yfSgpOw=="}},"time_used":466,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":466,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/a11y.min.js?ver=7032343a947cfccf5608","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.868Z","timestamp":1785145403868,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/a11y.min.js?ver=7032343a947cfccf5608 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-990\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":2448,"size_decoded":1076,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (2412)","md5":"8435e0a6bc86815f46db228163d21b25","sha1":"06047d8a8d8c45ac02bc116544284b8027479960","sha256":"d35faa1c0b45cc142295ae07a0c6e6e7824e0e64b58b81a83e7850251586e0df","sha512":"9fb550e519cc2a955df89c0fc6b16c6b27872de62c1b8afa49b24ce8a29df927b75985bcc861201c36a0de3092347089af064c127503cb5fe2034de809ba972c","ssdeep":"","tlshash":"575163763490767284bf7af25c3f828abb3199303a47e0448a1c9e967639d4d6032bd4","first_seen":"2023-08-09T03:39:54Z","last_seen":"2026-08-11T19:51:03.099454Z","times_seen":5061,"resource_available":true,"data":"LyohIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9e246ZnVuY3Rpb24oZSl7dmFyIG49ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIHQuZChuLHthOm59KSxufSxkOmZ1bmN0aW9uKGUsbil7Zm9yKHZhciBpIGluIG4pdC5vKG4saSkmJiF0Lm8oZSxpKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6bltpXX0pfSxvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxyOmZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9fSxlPXt9O3QucihlKSx0LmQoZSx7c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc3BlYWs6ZnVuY3Rpb24oKXtyZXR1cm4gcH19KTt2YXIgbj13aW5kb3cud3AuZG9tUmVhZHksaT10Lm4obiksbz13aW5kb3cud3AuaTE4bjtmdW5jdGlvbiByKHQ9InBvbGl0ZSIpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5pZD1gYTExeS1zcGVhay0ke3R9YCxlLmNsYXNzTmFtZT0iYTExeS1zcGVhay1yZWdpb24iLGUuc2V0QXR0cmlidXRlKCJzdHlsZSIsInBvc2l0aW9uOiBhYnNvbHV0ZTttYXJnaW46IC0xcHg7cGFkZGluZzogMDtoZWlnaHQ6IDFweDt3aWR0aDogMXB4O292ZXJmbG93OiBoaWRkZW47Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpOy13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpO2NsaXAtcGF0aDogaW5zZXQoNTAlKTtib3JkZXI6IDA7d29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDsiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIix0KSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1yZWxldmFudCIsImFkZGl0aW9ucyB0ZXh0IiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtYXRvbWljIiwidHJ1ZSIpO2NvbnN0e2JvZHk6bn09ZG9jdW1lbnQ7cmV0dXJuIG4mJm4uYXBwZW5kQ2hpbGQoZSksZX1sZXQgYT0iIjtmdW5jdGlvbiBkKCl7Y29uc3QgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYTExeS1zcGVhay1pbnRyby10ZXh0IiksZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYTExeS1zcGVhay1hc3NlcnRpdmUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhMTF5LXNwZWFrLXBvbGl0ZSIpO251bGw9PT10JiZmdW5jdGlvbigpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpO3QuaWQ9ImExMXktc3BlYWstaW50cm8tdGV4dCIsdC5jbGFzc05hbWU9ImExMXktc3BlYWstaW50cm8tdGV4dCIsdC50ZXh0Q29udGVudD0oMCxvLl9fKSgiTm90aWZpY2F0aW9ucyIpLHQuc2V0QXR0cmlidXRlKCJzdHlsZSIsInBvc2l0aW9uOiBhYnNvbHV0ZTttYXJnaW46IC0xcHg7cGFkZGluZzogMDtoZWlnaHQ6IDFweDt3aWR0aDogMXB4O292ZXJmbG93OiBoaWRkZW47Y2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpOy13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpO2NsaXAtcGF0aDogaW5zZXQoNTAlKTtib3JkZXI6IDA7d29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDsiKSx0LnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIik7Y29uc3R7Ym9keTplfT1kb2N1bWVudDtlJiZlLmFwcGVuZENoaWxkKHQpfSgpLG51bGw9PT1lJiZyKCJhc3NlcnRpdmUiKSxudWxsPT09biYmcigicG9saXRlIil9ZnVuY3Rpb24gcCh0LGUpeyFmdW5jdGlvbigpe2NvbnN0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYTExeS1zcGVhay1yZWdpb24iKSxlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhMTF5LXNwZWFrLWludHJvLXRleHQiKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLnRleHRDb250ZW50PSIiO2UmJmUuc2V0QXR0cmlidXRlKCJoaWRkZW4iLCJoaWRkZW4iKX0oKSx0PWZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZSgvPFtePD5dKz4vZywiICIpLGE9PT10JiYodCs9IsKgIiksYT10LHR9KHQpO2NvbnN0IG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImExMXktc3BlYWstaW50cm8tdGV4dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImExMXktc3BlYWstYXNzZXJ0aXZlIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYTExeS1zcGVhay1wb2xpdGUiKTtpJiYiYXNzZXJ0aXZlIj09PWU/aS50ZXh0Q29udGVudD10Om8mJihvLnRleHRDb250ZW50PXQpLG4mJm4ucmVtb3ZlQXR0cmlidXRlKCJoaWRkZW4iKX1pKCkoZCksKHdpbmRvdy53cD13aW5kb3cud3B8fHt9KS5hMTF5PWV9KCk7"}},"time_used":465,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":465,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/favicon.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.913Z","timestamp":1785145404913,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/favicon.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 1338\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-53a\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1338,"size_decoded":1590,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"9a0e3fc3b834dc4482e28b3d89e64285","sha1":"f195830476427916be750d968a5cdf0b6216837a","sha256":"248845dec19300779c9e674df98a814edef9fab973003a52faff0ccf5f316a97","sha512":"40d6282299a2c3653e09ac9e60275c65ba215eb8a03462ab9d34beb7c8da1049e66cd411249885727c2959fe2e6d3c75fbcf8414e40753ea2c68af40607c3584","ssdeep":"","tlshash":"7d2156ee6658b8e9fac8435b7af16016511166fdd3844118e9c40ff9058ae8eac2cf91","first_seen":"2026-07-27T07:14:06.801986Z","last_seen":"2026-07-27T14:04:41.068784Z","times_seen":5,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzEiIGhlaWdodD0iMzQxIiB2aWV3Qm94PSIwIDAgMzMxIDM0MSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE2NS4zMDYgMEwxNTkuMTgxIDYuMTIzMTNMMTUzLjA1NiAxMi4yNDYzTDE0MC43ODcgMjQuNTEwN0wxMzcuOTYxIDI3LjMxNzJMMTI1LjQwMSAzOS44NzMySDEyNS40MzhDMTMyLjIwMSAzOS44NzMyIDEzNy42ODggNDUuMzQwMyAxMzcuNzA2IDUyLjEwMTNMMTM3Ljk2MSAxNzMuNzQ0SDE5Mi44MzNMMTkyLjkyNCA1Mi4xMTk1QzE5Mi45MjQgNDUuMzU4NSAxOTguNDExIDM5Ljg3MzIgMjA1LjE5MiAzOS44NzMyTDE3Ny41NzQgMTIuMjY0NUwxNzEuNDQ5IDYuMTQxMzVMMTY1LjMwNiAwWiIgZmlsbD0iIzI4NTJBQiI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjAuNjQzIDU2LjkzMDVMMTE3Ljk2NCA1OS42MDk0TDEwMy4yODkgNzQuMjc5NEwzOS4yMzAxIDEzOC4zMTdMMjYuNTk3IDE1MC45NDZINTIuMTM2NkM1OC44OTk4IDE1MC45NDYgNjQuNDA1MSAxNTYuNDMxIDY0LjQwNTEgMTYzLjIxMVYxNzMuNzhIMTIwLjYyNVY1Ni45NjdMMTIwLjY0MyA1Ni45MzA1WiIgZmlsbD0iIzI4NTJBQiI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTAuMTE0IDU3LjAyMTZWMTczLjgzNUgyNjYuMzM0VjE2My4yNjVDMjY2LjMzNCAxNTYuNTA0IDI3MS44MjEgMTUxLjAwMSAyNzguNjAzIDE1MS4wMDFIMzA0LjE0MkwyOTEuNTA5IDEzOC4zNzJMMjI3LjQ2OSA3NC4zNTIzTDIxMi43OTQgNTkuNjgyM0wyMTAuMTE0IDU3LjAwMzRWNTcuMDIxNloiIGZpbGw9IiMyODUyQUIiPjwvcGF0aD48cGF0aCBkPSJNMzMwLjczOSAxOTEuMDkzTDMxOS4xMjcgMjAyLjcxOUwyOTEuNTgyIDIzMC4yMzdMMjQ1LjM4OCAyNzYuNDE2VjI2OC4xNkMyNDUuMzg4IDI1Ni40MDYgMjM1Ljg1NCAyNDYuODc1IDIyNC4wOTYgMjQ2Ljg3NUgyMDUuNTU3VjM0MC43NjNMMjA1LjMzOCAzNDFMMTkzLjA3IDMyOC43MzZIMTkzLjA1MUwxOTMuMTA2IDMyOC42NjNMMTY1LjQxNSAzMDAuOTgxSDE2NS4zOTdMMTY1LjM2MSAzMDAuOTk5TDEzOC4wNzEgMzI4LjI2MkwxMzcuNjg4IDMyOC42NDRIMTM3LjcwNkwxMzcuNjg4IDMyOC42OTlMMTI1LjQyIDM0MC45NjRMMTI1LjMxIDM0MC44NTRWMjQ2Ljg3NUgxMDYuNzcxQzk1LjAxMjYgMjQ2Ljg3NSA4NS40Nzg1IDI1Ni40MDYgODUuNDc4NSAyNjguMTZWMjc2LjUwN0wzOS4zMzk0IDIzMC4zODNMMTEuNzAzNCAyMDIuNzU2TDAuMDM2NDM4IDE5MS4wOTNIMzMwLjczOVoiIGZpbGw9IiMyODUyQUIiPjwvcGF0aD48L3N2Zz4g"}},"time_used":103,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":103,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/ewww-image-optimizer/includes/lazysizes.min.js?ver=721","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.850Z","timestamp":1785145403850,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/ewww-image-optimizer/includes/lazysizes.min.js?ver=721 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-3d9e\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":15774,"size_decoded":5926,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (15774), with no line terminators","md5":"0ce7aaa5fa8ac9d7a1b5703cce48f633","sha1":"62846540e8509f8d0a2ffcc7e28564137a3b97c3","sha256":"8875034ea813fa8a38f1e262928f4f2f74712e947efff24d07e49b0ec328ea4a","sha512":"b63bb89fe30f85ac882befb1a20ec8d36d60074086658a72a21aab50d76527952cd26bc9eba5c66487b6f925c8fd0c1e7bd1b8d667f82b1ecf8b3dc3c99f2b3e","ssdeep":"384:3QPSgBtTi+SgadWyD9DPSjkSweSJ6CqbYxFLGvQHonmzVqGebOO7go3A1qn3NTEI:3Q9BtTi+SgagyDZSkSwBJ6CqbYx5GvQI","tlshash":"ef62e8ee361979b3795b10f1554f630b613235379d0b9820aa39d8e28d3ccda6737a2c","first_seen":"2023-07-21T15:58:52Z","last_seen":"2026-08-08T16:13:07.64173Z","times_seen":1095,"resource_available":true,"data":"dmFyIGV3d3dfd2VicF9zdXBwb3J0ZWQ7dm9pZCAwPT09ZXd3d193ZWJwX3N1cHBvcnRlZCYmKGV3d3dfd2VicF9zdXBwb3J0ZWQ9ITEpLHdpbmRvdy5sYXp5U2l6ZXNDb25maWc9d2luZG93LmxhenlTaXplc0NvbmZpZ3x8e30sd2luZG93LmxhenlTaXplc0NvbmZpZy5leHBhbmQ9NTAwPGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQmJjUwMDxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg/MWUzOjc0MCwidW5kZWZpbmVkIj09dHlwZW9mIGVpb19sYXp5X3ZhcnMmJihlaW9fbGF6eV92YXJzPXtleGFjdGRuX2RvbWFpbjoiLmV4YWN0ZG4uY29tIix0aHJlc2hvbGQ6MCxza2lwX2F1dG9zY2FsZTowfSksNTA8ZWlvX2xhenlfdmFycy50aHJlc2hvbGQmJih3aW5kb3cubGF6eVNpemVzQ29uZmlnLmV4cGFuZD1laW9fbGF6eV92YXJzLnRocmVzaG9sZCksZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBhKCl7dChlLmxhenlTaXplcyksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsYXp5dW52ZWlscmVhZCIsYSwhMCl9dD10LmJpbmQobnVsbCxlLGUuZG9jdW1lbnQpLCJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz90KHJlcXVpcmUoImxhenlzaXplcyIpKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImxhenlzaXplcyJdLHQpOmUubGF6eVNpemVzP2EoKTplLmFkZEV2ZW50TGlzdGVuZXIoImxhenl1bnZlaWxyZWFkIixhLCEwKX0od2luZG93LGZ1bmN0aW9uKGUsbixvKXsidXNlIHN0cmljdCI7dmFyIHMsbCxkPXt9O2Z1bmN0aW9uIGMoZSx0LGEpe3ZhciBpLHI7ZFtlXXx8KGk9bi5jcmVhdGVFbGVtZW50KHQ/ImxpbmsiOiJzY3JpcHQiKSxyPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdLHQ/KGkucmVsPSJzdHlsZXNoZWV0IixpLmhyZWY9ZSk6KGkub25sb2FkPWZ1bmN0aW9uKCl7aS5vbmVycm9yPW51bGwsaS5vbmxvYWQ9bnVsbCxhKCl9LGkub25lcnJvcj1pLm9ubG9hZCxpLnNyYz1lKSxkW2VdPSEwLGRbaS5zcmN8fGkuaHJlZl09ITAsci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLHIpKX1uLmFkZEV2ZW50TGlzdGVuZXImJihsPS9cKHxcKXxcc3wnLyxzPWZ1bmN0aW9uKGUsdCl7dmFyIGE9bi5jcmVhdGVFbGVtZW50KCJpbWciKTthLm9ubG9hZD1mdW5jdGlvbigpe2Eub25sb2FkPW51bGwsYS5vbmVycm9yPW51bGwsYT1udWxsLHQoKX0sYS5vbmVycm9yPWEub25sb2FkLGEuc3JjPWUsYSYmYS5jb21wbGV0ZSYmYS5vbmxvYWQmJmEub25sb2FkKCl9LGFkZEV2ZW50TGlzdGVuZXIoImxhenliZWZvcmV1bnZlaWwiLGZ1bmN0aW9uKGUpe3ZhciB0LGEsaTtpZihlLmRldGFpbC5pbnN0YW5jZT09byYmIWUuZGVmYXVsdFByZXZlbnRlZCl7dmFyIHI9ZS50YXJnZXQ7aWYoIm5vbmUiPT1yLnByZWxvYWQmJihyLnByZWxvYWQ9ci5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlbG9hZCIpfHwiYXV0byIpLG51bGwhPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWF1dG9wbGF5IikpaWYoci5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kIikmJiFyLmF1dG9wbGF5KXRyeXtyLnBsYXkoKX1jYXRjaChlKXt9ZWxzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQiLCItMTAiKSxvLmFDKHIsby5jZmcubGF6eUNsYXNzKX0pOyh0PXIuZ2V0QXR0cmlidXRlKCJkYXRhLWxpbmsiKSkmJmModCwhMCksKHQ9ci5nZXRBdHRyaWJ1dGUoImRhdGEtc2NyaXB0IikpJiYoZS5kZXRhaWwuZmlyZXNMb2FkPSEwLGModCxudWxsLGZ1bmN0aW9uKCl7ZS5kZXRhaWwuZmlyZXNMb2FkPSExLG8uZmlyZShyLCJfbGF6eWxvYWRlZCIse30sITAsITApfSkpLCh0PXIuZ2V0QXR0cmlidXRlKCJkYXRhLXJlcXVpcmUiKSkmJihvLmNmZy5yZXF1aXJlSnM/by5jZmcucmVxdWlyZUpzKFt0XSk6Yyh0KSksKGE9ci5nZXRBdHRyaWJ1dGUoImRhdGEtYmciKSkmJihlLmRldGFpbC5maXJlc0xvYWQ9ITAscyhhLGZ1bmN0aW9uKCl7ci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9InVybCgiKyhsLnRlc3QoYSk/SlNPTi5zdHJpbmdpZnkoYSk6YSkrIikiLGUuZGV0YWlsLmZpcmVzTG9hZD0hMSxvLmZpcmUociwiX2xhenlsb2FkZWQiLHt9LCEwLCEwKX0pKSwoaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1wb3N0ZXIiKSkmJihlLmRldGFpbC5maXJlc0xvYWQ9ITAscyhpLGZ1bmN0aW9uKCl7ci5wb3N0ZXI9aSxlLmRldGFpbC5maXJlc0xvYWQ9ITEsby5maXJlKHIsIl9sYXp5bG9hZGVkIix7fSwhMCwhMCl9KSl9fSwhMSkpfSksZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBhKCl7dChlLmxhenlTaXplcyksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsYXp5dW52ZWlscmVhZCIsYSwhMCl9dD10LmJpbmQobnVsbCxlLGUuZG9jdW1lbnQpLCJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz90KHJlcXVpcmUoImxhenlzaXplcyIpKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImxhenlzaXplcyJdLHQpOmUubGF6eVNpemVzP2EoKTplLmFkZEV2ZW50TGlzdGVuZXIoImxhenl1bnZlaWxyZWFkIixhLCEwKX0od2luZG93LGZ1bmN0aW9uKHUsZixnKXsidXNlIHN0cmljdCI7dmFyIG47Zi5hZGRFdmVudExpc3RlbmVyJiYobj0vXCh8XCl8XHN8Jy8sYWRkRXZlbnRMaXN0ZW5lcigibGF6eWJlZm9yZXVudmVpbCIsZnVuY3Rpb24oZSl7dmFyIHQsYSxpLHI7ZS5kZXRhaWwuaW5zdGFuY2U9PWcmJihlLmRlZmF1bHRQcmV2ZW50ZWR8fCgibm9uZSI9PWUudGFyZ2V0LnByZWxvYWQmJihlLnRhcmdldC5wcmVsb2FkPSJhdXRvIiksKGk9ZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLWJhY2siKSkmJihld3d3X3dlYnBfc3VwcG9ydGVkJiYocj1lLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtYmFjay13ZWJwIikpJiYoaT1yKSx0PXUuZGV2aWNlUGl4ZWxSYXRpb3x8MSxhPU1hdGgucm91bmQoZS50YXJnZXQub2Zmc2V0V2lkdGgqdCkscj1NYXRoLnJvdW5kKGUudGFyZ2V0Lm9mZnNldEhlaWdodCp0KSwwPT09aS5zZWFyY2goL1xbLyl8fG8oZS50YXJnZXQpJiZvKGUudGFyZ2V0LnBhcmVudE5vZGUpJiYoaT1nLmhDKGUudGFyZ2V0LCJ3cC1ibG9jay1jb3ZlciIpPyhnLmhDKGUudGFyZ2V0LCJoYXMtcGFyYWxsYXgiKT8oYT1NYXRoLnJvdW5kKHUuc2NyZWVuLndpZHRoKnQpLHI9TWF0aC5yb3VuZCh1LnNjcmVlbi5oZWlnaHQqdCkpOnI8MzAwJiYocj00MzApLHMoaSxhLHIsImJnLWNvdmVyIikpOmcuaEMoZS50YXJnZXQsImNvdmVyLWltYWdlIil8fGcuaEMoZS50YXJnZXQsImVsZW1lbnRvci1iZyIpfHxnLmhDKGUudGFyZ2V0LCJldF9wYXJhbGxheF9iZyIpfHxnLmhDKGUudGFyZ2V0LCJiZy1pbWFnZS1jcm9wIik/cyhpLGEsciwiYmctY292ZXIiKTpzKGksYSxyLCJiZyIpKSxlLnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UmJi0xPT09ZS50YXJnZXQuc3R5bGUuYmFja2dyb3VuZEltYWdlLnNlYXJjaCgvXmluaXRpYWwvKT8wPT09aS5zZWFyY2goL1xbLyk/KChpPUpTT04ucGFyc2UoaSkpLmZvckVhY2goZnVuY3Rpb24oZSl7bi50ZXN0KGUpJiZKU09OLnN0cmluZ2lmeShlKX0pLGk9J3VybCgiJytpLmpvaW4oJyIpLCB1cmwoIicpKyciJyxyPWUudGFyZ2V0LnN0eWxlLmJhY2tncm91bmRJbWFnZSsiLCAiK2ksZS50YXJnZXQuc3R5bGUuYmFja2dyb3VuZEltYWdlPXIpOmUudGFyZ2V0LnN0eWxlLmJhY2tncm91bmRJbWFnZT1lLnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UrJywgdXJsKCInKyhuLnRlc3QoaSk/SlNPTi5zdHJpbmdpZnkoaSk6aSkrJyIpJzowPT09aS5zZWFyY2goL1xbLyk/KChpPUpTT04ucGFyc2UoaSkpLmZvckVhY2goZnVuY3Rpb24oZSl7bi50ZXN0KGUpJiZKU09OLnN0cmluZ2lmeShlKX0pLGk9J3VybCgiJytpLmpvaW4oJyIpLCB1cmwoIicpKyciJyxlLnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9aSk6ZS50YXJnZXQuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJ1cmwoIisobi50ZXN0KGkpP0pTT04uc3RyaW5naWZ5KGkpOmkpKyIpIikpKX0sITEpKTtmdW5jdGlvbiBoKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWVpby1yd2lkdGgiKSxlPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWVpby1yaGVpZ2h0Iik7cmV0dXJuIDE8dCYmMTxlP3t3OnQsaDplfTp7dzowLGg6MH19ZnVuY3Rpb24gbShlLHQ9ITEpe3ZhciBhPXUuZGV2aWNlUGl4ZWxSYXRpb3x8MSxpPU1hdGgucm91bmQoZS5vZmZzZXRXaWR0aCphKSxyPU1hdGgucm91bmQoZS5vZmZzZXRIZWlnaHQqYSksbj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMiKSxhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXNyYy13ZWJwIik7ZXd3d193ZWJwX3N1cHBvcnRlZCYmYSYmLTE9PW4uc2VhcmNoKCJ3ZWJwPTEiKSYmIXQmJihuPWEpLG8oZSkmJm8oZS5wYXJlbnROb2RlKSYmKGE9ZSxhPWcuaEMoYSwiZXRfcGJfanRfZmlsdGVyYWJsZV9ncmlkX2l0ZW1faW1hZ2UiKXx8Zy5oQyhhLCJzcy1mb3JlZ3JvdW5kLWltYWdlIil8fGcuaEMoYSwiaW1nLWNyb3AiKT8iaW1nLWNyb3AiOmcuaEMoYSwib2JqZWN0LWNvdmVyIikmJihnLmhDKGEsIm9iamVjdC10b3AiKXx8Zy5oQyhhLCJvYmplY3QtYm90dG9tIikpPyJpbWctdyI6Zy5oQyhhLCJvYmplY3QtY292ZXIiKSYmKGcuaEMoYSwib2JqZWN0LWxlZnQiKXx8Zy5oQyhhLCJvYmplY3QtcmlnaHQiKSk/ImltZy1oIjpnLmhDKGEsImN0LWltYWdlIikmJmcuaEMoYSwib2JqZWN0LWNvdmVyIil8fCFhLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmNzZXQiKSYmIWEuc3Jjc2V0JiZhLm9mZnNldEhlaWdodD5hLm9mZnNldFdpZHRoJiYxPGwoYSk/ImltZy1jcm9wIjoiaW1nIiwoYT1zKG4saSxyLGEsdCkpJiZuIT1hJiYodCYmZS5zZXRBdHRyaWJ1dGUoInNyYyIsYSksZS5zZXRBdHRyaWJ1dGUoImRhdGEtc3JjIixhKSkpfXZhciBvPWZ1bmN0aW9uKGUpe2lmKDE9PWVpb19sYXp5X3ZhcnMuc2tpcF9hdXRvc2NhbGUpcmV0dXJuITE7aWYoZS5oYXNBdHRyaWJ1dGVzKCkpZm9yKHZhciB0PWUuYXR0cmlidXRlcyxhPS9za2lwLWF1dG9zY2FsZS8saT10Lmxlbmd0aC0xOzA8PWk7aS0tKXtpZihhLnRlc3QodFtpXS5uYW1lKSlyZXR1cm4hMTtpZihhLnRlc3QodFtpXS52YWx1ZSkpcmV0dXJuITF9cmV0dXJuITB9LHM9ZnVuY3Rpb24oZSx0LGEsaSxyPSExKXtpZihudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj0vdz0oXGQrKS8sbz0vZml0PShcZCspLChcZCspLyxzPS9yZXNpemU9KFxkKyksKFxkKykvLGw9ZGVjb2RlVVJJQ29tcG9uZW50KGUpO2lmKC9cLnN2ZyhcPy4rKT8kLy5leGVjKGwpKXJldHVybiBlO2lmKDA8ZS5zZWFyY2goIlxcPyIpJiYwPGUuc2VhcmNoKGVpb19sYXp5X3ZhcnMuZXhhY3Rkbl9kb21haW4pKXt2YXIgZD1zLmV4ZWMobCk7aWYoZCYmKHQ8ZFsxXXx8cikpcmV0dXJuImltZy13Ij09PWk/bC5yZXBsYWNlKHMsInc9Iit0KToiaW1nLWgiPT09aT9sLnJlcGxhY2UocywiaD0iK2EpOmwucmVwbGFjZShzLCJyZXNpemU9Iit0KyIsIithKTtzPW4uZXhlYyhlKTtpZihzJiYodDw9c1sxXXx8cikpe2lmKCJpbWctaCI9PT1pKXJldHVybiBsLnJlcGxhY2UobiwiaD0iK2EpO2lmKCJiZy1jb3ZlciIhPT1pJiYiaW1nLWNyb3AiIT09aSlyZXR1cm4gZS5yZXBsYWNlKG4sInc9Iit0KTt2YXIgYz1NYXRoLmFicyhzWzFdLXQpO3JldHVybiAyMDxjfHxhPDEwODA/ZS5yZXBsYWNlKG4sInJlc2l6ZT0iK3QrIiwiK2EpOmV9Yz1vLmV4ZWMobCk7aWYoYyYmKHQ8Y1sxXXx8cikpe2lmKCJiZy1jb3ZlciIhPT1pJiYiaW1nLWNyb3AiIT09aSlyZXR1cm4iaW1nLXciPT09aT9sLnJlcGxhY2Uobywidz0iK3QpOiJpbWctaCI9PT1pP2wucmVwbGFjZShvLCJoPSIrYSk6bC5yZXBsYWNlKG8sImZpdD0iK3QrIiwiK2EpO2w9TWF0aC5hYnMoY1sxXS10KSxvPU1hdGguYWJzKGNbMl0tYSk7cmV0dXJuIDIwPGx8fDIwPG8/ZS5yZXBsYWNlKG4sInJlc2l6ZT0iK3QrIiwiK2EpOmV9aWYoIXMmJiFjJiYhZClyZXR1cm4iaW1nIj09PWk/ZSsiJmZpdD0iK3QrIiwiK2E6ImJnLWNvdmVyIj09PWl8fCJpbWctY3JvcCI9PT1pP2UrIiZyZXNpemU9Iit0KyIsIithOiJpbWctaCI9PT1pfHx0PGE/ZSsiJmg9IithOmUrIiZ3PSIrdH1yZXR1cm4tMT09ZS5zZWFyY2goIlxcPyIpJiYwPGUuc2VhcmNoKGVpb19sYXp5X3ZhcnMuZXhhY3Rkbl9kb21haW4pPyJpbWciPT09aT9lKyI/Zml0PSIrdCsiLCIrYToiYmctY292ZXIiPT09aXx8ImltZy1jcm9wIj09PWk/ZSsiP3Jlc2l6ZT0iK3QrIiwiK2E6ImltZy1oIj09PWl8fHQ8YT9lKyI/aD0iK2E6ZSsiP3c9Iit0OmV9LHA9ZnVuY3Rpb24oZSl7ZT0vLShcZCspeChcZCspXC4vLmV4ZWMoZSk7cmV0dXJuIGUmJjE8ZVsxXSYmMTxlWzJdP3t3OmVbMV0saDplWzJdfTp7dzowLGg6MH19LGw9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoIndpZHRoIiksYT1lLmdldEF0dHJpYnV0ZSgiaGVpZ2h0Iik7aWYoMTx0JiYxPGEpcmV0dXJuIHQvYTthPSExO2lmKGE9KGE9ZS5zcmMmJi0xPGUuc3JjLnNlYXJjaCgiaHR0cCIpP2Uuc3JjOmEpfHxlLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMiKSl7dmFyIGk9cChhKTtpZihpLncmJmkuaClyZXR1cm4gaS53L2kuaH1pPWgoZSk7aWYoaS53JiZpLmgpcmV0dXJuIGkudy9pLmg7ZT1mdW5jdGlvbihlKXt2YXIgdDtpZihlLnNyY3NldD90PWUuc3Jjc2V0LnNwbGl0KCIsIik6KGU9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0IikpJiYodD1lLnNwbGl0KCIsIikpLHQpe3ZhciBhPTAsaT10Lmxlbmd0aDtpZihpKXtmb3IoO2E8aTthKyspe3ZhciByLG49dFthXS50cmltKCkuc3BsaXQoIiAiKTshblswXS5sZW5ndGh8fChuPXAoblswXSkpLncmJm4uaCYmKHI9bil9aWYoci53JiZyLmgpcmV0dXJuIHJ9fXJldHVybnt3OjAsaDowfX0oZSk7cmV0dXJuIGUudyYmZS5oP2Uudy9lLmg6MH07Zi5hZGRFdmVudExpc3RlbmVyKCJsYXp5YmVmb3Jlc2l6ZXMiLGZ1bmN0aW9uKGUpe2UudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMiKTt2YXIgdD1sKGUudGFyZ2V0KTsxPGUudGFyZ2V0LmNsaWVudEhlaWdodCYmdCYmKHQ9TWF0aC5jZWlsKHQqZS50YXJnZXQuY2xpZW50SGVpZ2h0KSxlLmRldGFpbC53aWR0aCsyPHQmJihlLmRldGFpbC53aWR0aD10KSksdm9pZCAwIT09ZS50YXJnZXQuX2xhenlzaXplc1dpZHRoJiZlLmRldGFpbC53aWR0aDxlLnRhcmdldC5fbGF6eXNpemVzV2lkdGgmJihlLmRldGFpbC53aWR0aD1lLnRhcmdldC5fbGF6eXNpemVzV2lkdGgpfSksZi5hZGRFdmVudExpc3RlbmVyKCJsYXp5YmVmb3JldW52ZWlsIixmdW5jdGlvbihlKXt2YXIgdCxhLGkscixuPWUudGFyZ2V0LG89bi5nZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0Iik7bi5uYXR1cmFsV2lkdGgmJiFvJiYxPG4ubmF0dXJhbFdpZHRoJiYxPG4ubmF0dXJhbEhlaWdodCYmKHQ9dS5kZXZpY2VQaXhlbFJhdGlvfHwxLGE9bi5uYXR1cmFsV2lkdGgsaT1uLm5hdHVyYWxIZWlnaHQsKGU9aChuKSkudyYmZS53PmEmJihhPWUudyxpPWUuaCksYT1uLmNsaWVudFdpZHRoJiYxLjI1Km4uY2xpZW50V2lkdGgqdDxhLGk9bi5jbGllbnRIZWlnaHQmJjEuMjUqbi5jbGllbnRIZWlnaHQqdDxpLChhfHxpKSYmbShuKSksZXd3d193ZWJwX3N1cHBvcnRlZCYmKCFvfHwocj1uLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmNzZXQtd2VicCIpKSYmbi5zZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0IixyKSwocj1uLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMtd2VicCIpKSYmbi5zZXRBdHRyaWJ1dGUoImRhdGEtc3JjIixyKSl9KTtmdW5jdGlvbiBlKGU9ITEpe2UudHlwZSYmImxvYWQiPT09ZS50eXBlJiZnLmF1dG9TaXplci5jaGVja0VsZW1zKCksdS5kZXZpY2VQaXhlbFJhdGlvO3ZhciB0LGE9Zi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGcuY2ZnLmxvYWRlZENsYXNzKSxpPWEubGVuZ3RoO2lmKGkpZm9yKHQ9MDt0PGk7dCsrKXt2YXIgcixuLG8scyxsLGQsYz1hW3RdO2Muc3JjJiYhYy5zcmNzZXQmJjE8Yy5uYXR1cmFsV2lkdGgmJjE8Yy5uYXR1cmFsSGVpZ2h0JiYxPGMuY2xpZW50V2lkdGgmJjE8Yy5jbGllbnRIZWlnaHQmJihyPWMubmF0dXJhbFdpZHRoLG49Yy5uYXR1cmFsSGVpZ2h0LG89dS5pbm5lcldpZHRoLHM9dS5pbm5lckhlaWdodCxsPWgoYyksZD1wKGMuc3JjKSxsLnc/bz1sLnc6ZC53JiYobz1kLncpLGwuaD9zPWwuaDpkLmgmJihzPWQuaCksbD1jLmNsaWVudFdpZHRoLGQ9Yy5jbGllbnRIZWlnaHQsKDEuMSpyPGwmJmw8PW98fDEuMSpuPGQmJmQ8PXMpJiZtKGMsITApKX19dmFyIHQsYSxpLHIsZD0odD1lLHI9ZnVuY3Rpb24oKXthPW51bGwsdCgpfSxmdW5jdGlvbigpe2k9RGF0ZS5ub3coKSxhPWF8fHNldFRpbWVvdXQoYyw5OSl9KTtmdW5jdGlvbiBjKCl7dmFyIGU9RGF0ZS5ub3coKS1pO2U8OTk/c2V0VGltZW91dChjLDk5LWUpOih1LnJlcXVlc3RJZGxlQ2FsbGJhY2t8fHIpKHIpfWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUpLGFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZCksc2V0VGltZW91dChlLDJlNCl9KSxmdW5jdGlvbihlLHQpe3Q9dChlLGUuZG9jdW1lbnQsRGF0ZSk7ZS5sYXp5U2l6ZXM9dCwib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihtb2R1bGUuZXhwb3J0cz10KX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9LGZ1bmN0aW9uKGksZixuKXsidXNlIHN0cmljdCI7dmFyIGcsaDtpZighZnVuY3Rpb24oKXt2YXIgZSx0PXtsYXp5Q2xhc3M6Imxhenlsb2FkIixsb2FkZWRDbGFzczoibGF6eWxvYWRlZCIsbG9hZGluZ0NsYXNzOiJsYXp5bG9hZGluZyIscHJlbG9hZENsYXNzOiJsYXp5cHJlbG9hZCIsZXJyb3JDbGFzczoibGF6eWVycm9yIixhdXRvc2l6ZXNDbGFzczoibGF6eWF1dG9zaXplcyIsZmFzdExvYWRlZENsYXNzOiJscy1pcy1jYWNoZWQiLGlmcmFtZUxvYWRNb2RlOjAsc3JjQXR0cjoiZGF0YS1zcmMiLHNyY3NldEF0dHI6ImRhdGEtc3Jjc2V0IixzaXplc0F0dHI6ImRhdGEtc2l6ZXMiLG1pblNpemU6NDAsY3VzdG9tTWVkaWE6e30saW5pdDohMCxleHBGYWN0b3I6MS41LGhGYWM6LjgsbG9hZE1vZGU6Mixsb2FkSGlkZGVuOiEwLHJpY1RpbWVvdXQ6MCx0aHJvdHRsZURlbGF5OjEyNX07Zm9yKGUgaW4gaD1pLmxhenlTaXplc0NvbmZpZ3x8aS5sYXp5c2l6ZXNDb25maWd8fHt9LHQpZSBpbiBofHwoaFtlXT10W2VdKX0oKSwhZnx8IWYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm57aW5pdDpmdW5jdGlvbigpe30sY2ZnOmgsbm9TdXBwb3J0OiEwfTtmdW5jdGlvbiBjKGUsdCl7RShlLHQpfHxlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChlW3ZdKCJjbGFzcyIpfHwiIikudHJpbSgpKyIgIit0KX1mdW5jdGlvbiB1KGUsdCl7KHQ9RShlLHQpKSYmZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoZVt2XSgiY2xhc3MiKXx8IiIpLnJlcGxhY2UodCwiICIpKX1mdW5jdGlvbiBtKGUsdCl7dmFyIGE7IWwmJihhPWkucGljdHVyZWZpbGx8fGgucGYpPyh0JiZ0LnNyYyYmIWVbdl0oInNyY3NldCIpJiZlLnNldEF0dHJpYnV0ZSgic3Jjc2V0Iix0LnNyYyksYSh7cmVldmFsdWF0ZTohMCxlbGVtZW50czpbZV19KSk6dCYmdC5zcmMmJihlLnNyYz10LnNyYyl9dmFyIGEscix0LG8scyxwPWYuZG9jdW1lbnRFbGVtZW50LGw9aS5IVE1MUGljdHVyZUVsZW1lbnQsZD0iYWRkRXZlbnRMaXN0ZW5lciIsdj0iZ2V0QXR0cmlidXRlIixlPWlbZF0uYmluZChpKSx5PWkuc2V0VGltZW91dCxiPWkucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx5LHo9aS5yZXF1ZXN0SWRsZUNhbGxiYWNrLHc9L15waWN0dXJlJC9pLEM9WyJsb2FkIiwiZXJyb3IiLCJsYXp5aW5jbHVkZWQiLCJfbGF6eWxvYWRlZCJdLF89e30sQT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF9bdF18fChfW3RdPW5ldyBSZWdFeHAoIihcXHN8XikiK3QrIihcXHN8JCkiKSksX1t0XS50ZXN0KGVbdl0oImNsYXNzIil8fCIiKSYmX1t0XX0seD1mdW5jdGlvbih0LGEsZSl7dmFyIGk9ZT9kOiJyZW1vdmVFdmVudExpc3RlbmVyIjtlJiZ4KHQsYSksQy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbaV0oZSxhKX0pfSxMPWZ1bmN0aW9uKGUsdCxhLGkscil7dmFyIG49Zi5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4oYT1hfHx7fSkuaW5zdGFuY2U9ZyxuLmluaXRFdmVudCh0LCFpLCFyKSxuLmRldGFpbD1hLGUuZGlzcGF0Y2hFdmVudChuKSxufSxOPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGdldENvbXB1dGVkU3R5bGUoZSxudWxsKXx8e30pW3RdfSxXPWZ1bmN0aW9uKGUsdCxhKXtmb3IoYT1hfHxlLm9mZnNldFdpZHRoO2E8aC5taW5TaXplJiZ0JiYhZS5fbGF6eXNpemVzV2lkdGg7KWE9dC5vZmZzZXRXaWR0aCx0PXQucGFyZW50Tm9kZTtyZXR1cm4gYX0sTT0obz1bXSxzPXQ9W10say5fbHNGbHVzaD1TLGspO2Z1bmN0aW9uIFMoKXt2YXIgZT1zO2ZvcihzPXQubGVuZ3RoP286dCxyPSEoYT0hMCk7ZS5sZW5ndGg7KWUuc2hpZnQoKSgpO2E9ITF9ZnVuY3Rpb24gayhlLHQpe2EmJiF0P2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOihzLnB1c2goZSkscnx8KHI9ITAsKGYuaGlkZGVuP3k6YikoUykpKX1mdW5jdGlvbiBIKGEsZSl7cmV0dXJuIGU/ZnVuY3Rpb24oKXtNKGEpfTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1hcmd1bWVudHM7TShmdW5jdGlvbigpe2EuYXBwbHkoZSx0KX0pfX1mdW5jdGlvbiBJKGUpe2Z1bmN0aW9uIHQoKXt2YXIgZT1uLm5vdygpLWk7ZTw5OT95KHQsOTktZSk6KHp8fHIpKHIpfXZhciBhLGkscj1mdW5jdGlvbigpe2E9bnVsbCxlKCl9O3JldHVybiBmdW5jdGlvbigpe2k9bi5ub3coKSxhPWF8fHkodCw5OSl9fXZhciBqLFIsVCxCLE8sUCxxLEYsSixELCQsVSxHLEssUSxWLFgsWSxaLGVlLHRlLGFlLGllLHJlLG5lLG9lLHNlLGxlLGRlLGNlLHVlLGZlPShaPS9eaW1nJC9pLGVlPS9eaWZyYW1lJC9pLHRlPSJvbnNjcm9sbCJpbiBpJiYhLyhnbGV8aW5nKWJvdC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxyZT0tMSxuZT1mdW5jdGlvbihlKXtyZXR1cm4oVT1udWxsPT1VPyJoaWRkZW4iPT1OKGYuYm9keSwidmlzaWJpbGl0eSIpOlUpfHwhKCJoaWRkZW4iPT1OKGUucGFyZW50Tm9kZSwidmlzaWJpbGl0eSIpJiYiaGlkZGVuIj09TihlLCJ2aXNpYmlsaXR5IikpfSxHPWhlLFE9aWU9YWU9MCxWPWgudGhyb3R0bGVEZWxheSxYPWgucmljVGltZW91dCxZPXomJjQ5PFg/ZnVuY3Rpb24oKXt6KG1lLHt0aW1lb3V0Olh9KSxYIT09aC5yaWNUaW1lb3V0JiYoWD1oLnJpY1RpbWVvdXQpfTpIKGZ1bmN0aW9uKCl7eShtZSl9LCEwKSxzZT1IKHBlKSxsZT1mdW5jdGlvbihlKXtzZSh7dGFyZ2V0OmUudGFyZ2V0fSl9LGRlPUgoZnVuY3Rpb24odCxlLGEsaSxyKXt2YXIgbixvLHMsbCxkOyhzPUwodCwibGF6eWJlZm9yZXVudmVpbCIsZSkpLmRlZmF1bHRQcmV2ZW50ZWR8fChpJiYoYT9jKHQsaC5hdXRvc2l6ZXNDbGFzcyk6dC5zZXRBdHRyaWJ1dGUoInNpemVzIixpKSksbj10W3ZdKGguc3Jjc2V0QXR0ciksYT10W3ZdKGguc3JjQXR0ciksciYmKG89KGQ9dC5wYXJlbnROb2RlKSYmdy50ZXN0KGQubm9kZU5hbWV8fCIiKSksbD1lLmZpcmVzTG9hZHx8InNyYyJpbiB0JiYobnx8YXx8bykscz17dGFyZ2V0OnR9LGModCxoLmxvYWRpbmdDbGFzcyksbCYmKGNsZWFyVGltZW91dChUKSxUPXkoZ2UsMjUwMCkseCh0LGxlLCEwKSksbyYmQS5jYWxsKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLHZlKSxuP3Quc2V0QXR0cmlidXRlKCJzcmNzZXQiLG4pOmEmJiFvJiYoZWUudGVzdCh0Lm5vZGVOYW1lKT8oaT1hLDA9PShkPShlPXQpLmdldEF0dHJpYnV0ZSgiZGF0YS1sb2FkLW1vZGUiKXx8aC5pZnJhbWVMb2FkTW9kZSk/ZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlcGxhY2UoaSk6MT09ZCYmKGUuc3JjPWkpKTp0LnNyYz1hKSxyJiYobnx8bykmJm0odCx7c3JjOmF9KSksdC5fbGF6eVJhY2UmJmRlbGV0ZSB0Ll9sYXp5UmFjZSx1KHQsaC5sYXp5Q2xhc3MpLE0oZnVuY3Rpb24oKXt2YXIgZT10LmNvbXBsZXRlJiYxPHQubmF0dXJhbFdpZHRoO2wmJiFlfHwoZSYmYyh0LGguZmFzdExvYWRlZENsYXNzKSxwZShzKSx0Ll9sYXp5Q2FjaGU9ITAseShmdW5jdGlvbigpeyJfbGF6eUNhY2hlImluIHQmJmRlbGV0ZSB0Ll9sYXp5Q2FjaGV9LDkpKSwibGF6eSI9PXQubG9hZGluZyYmaWUtLX0sITApfSksdWU9SShmdW5jdGlvbigpe2gubG9hZE1vZGU9MyxvZSgpfSkse186ZnVuY3Rpb24oKXtPPW4ubm93KCksZy5lbGVtZW50cz1mLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaC5sYXp5Q2xhc3MpLGo9Zi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGgubGF6eUNsYXNzKyIgIitoLnByZWxvYWRDbGFzcyksZSgic2Nyb2xsIixvZSwhMCksZSgicmVzaXplIixvZSwhMCksZSgicGFnZXNob3ciLGZ1bmN0aW9uKGUpe3ZhciB0OyFlLnBlcnNpc3RlZHx8KHQ9Zi5xdWVyeVNlbGVjdG9yQWxsKCIuIitoLmxvYWRpbmdDbGFzcykpLmxlbmd0aCYmdC5mb3JFYWNoJiZiKGZ1bmN0aW9uKCl7dC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuY29tcGxldGUmJmNlKGUpfSl9KX0pLGkuTXV0YXRpb25PYnNlcnZlcj9uZXcgTXV0YXRpb25PYnNlcnZlcihvZSkub2JzZXJ2ZShwLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwfSk6KHBbZF0oIkRPTU5vZGVJbnNlcnRlZCIsb2UsITApLHBbZF0oIkRPTUF0dHJNb2RpZmllZCIsb2UsITApLHNldEludGVydmFsKG9lLDk5OSkpLGUoImhhc2hjaGFuZ2UiLG9lLCEwKSxbImZvY3VzIiwibW91c2VvdmVyIiwiY2xpY2siLCJsb2FkIiwidHJhbnNpdGlvbmVuZCIsImFuaW1hdGlvbmVuZCJdLmZvckVhY2goZnVuY3Rpb24oZSl7ZltkXShlLG9lLCEwKX0pLC9kJHxeYy8udGVzdChmLnJlYWR5U3RhdGUpP2JlKCk6KGUoImxvYWQiLGJlKSxmW2RdKCJET01Db250ZW50TG9hZGVkIixvZSkseShiZSwyZTQpKSxnLmVsZW1lbnRzLmxlbmd0aD8oaGUoKSxNLl9sc0ZsdXNoKCkpOm9lKCl9LGNoZWNrRWxlbXM6b2U9ZnVuY3Rpb24oZSl7dmFyIHQ7KGU9ITA9PT1lKSYmKFg9MzMpLEt8fChLPSEwLCh0PVYtKG4ubm93KCktUSkpPDAmJih0PTApLGV8fHQ8OT9ZKCk6eShZLHQpKX0sdW52ZWlsOmNlPWZ1bmN0aW9uKGUpe3ZhciB0LGEsaSxyO2UuX2xhenlSYWNlfHwoIShyPSJhdXRvIj09KGk9KGE9Wi50ZXN0KGUubm9kZU5hbWUpKSYmKGVbdl0oaC5zaXplc0F0dHIpfHxlW3ZdKCJzaXplcyIpKSkpJiZSfHwhYXx8IWVbdl0oInNyYyIpJiYhZS5zcmNzZXR8fGUuY29tcGxldGV8fEUoZSxoLmVycm9yQ2xhc3MpfHwhRShlLGgubGF6eUNsYXNzKSkmJih0PUwoZSwibGF6eXVudmVpbHJlYWQiKS5kZXRhaWwsciYmX2UudXBkYXRlRWxlbShlLCEwLGUub2Zmc2V0V2lkdGgpLGUuX2xhenlSYWNlPSEwLGllKyssZGUoZSx0LHIsaSxhKSl9LF9hTFNMOnllfSk7ZnVuY3Rpb24gZ2UoZSl7aWUtLSxlJiYhKGllPDApJiZlLnRhcmdldHx8KGllPTApfWZ1bmN0aW9uIGhlKCl7dmFyIGUsdCxhLGkscixuLG8scyxsLGQsYyx1PWcuZWxlbWVudHM7aWYoKEI9aC5sb2FkTW9kZSkmJmllPDgmJihlPXUubGVuZ3RoKSl7Zm9yKHQ9MCxyZSsrO3Q8ZTt0KyspaWYodVt0XSYmIXVbdF0uX2xhenlSYWNlKWlmKCF0ZXx8Zy5wcmVtYXR1cmVVbnZlaWwmJmcucHJlbWF0dXJlVW52ZWlsKHVbdF0pKWNlKHVbdF0pO2Vsc2UgaWYoKG89dVt0XVt2XSgiZGF0YS1leHBhbmQiKSkmJihyPStvKXx8KHI9YWUpLGx8fChsPSFoLmV4cGFuZHx8aC5leHBhbmQ8MT81MDA8cC5jbGllbnRIZWlnaHQmJjUwMDxwLmNsaWVudFdpZHRoPzUwMDozNzA6aC5leHBhbmQsZD0oZy5fZGVmRXg9bCkqaC5leHBGYWN0b3IsYz1oLmhGYWMsVT1udWxsLGFlPGQmJmllPDEmJjI8cmUmJjI8QiYmIWYuaGlkZGVuPyhhZT1kLHJlPTApOmFlPTE8QiYmMTxyZSYmaWU8Nj9sOjApLHMhPT1yJiYoUD1pbm5lcldpZHRoK3IqYyxxPWlubmVySGVpZ2h0K3Isbj0tMSpyLHM9ciksZD11W3RdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCgkPWQuYm90dG9tKT49biYmKEY9ZC50b3ApPD1xJiYoRD1kLnJpZ2h0KT49bipjJiYoSj1kLmxlZnQpPD1QJiYoJHx8RHx8Snx8RikmJihoLmxvYWRIaWRkZW58fG5lKHVbdF0pKSYmKFImJmllPDMmJiFvJiYoQjwzfHxyZTw0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgYSxpPWUscj1uZShlKTtmb3IoRi09dCwkKz10LEotPXQsRCs9dDtyJiYoaT1pLm9mZnNldFBhcmVudCkmJmkhPWYuYm9keSYmaSE9cDspKHI9MDwoTihpLCJvcGFjaXR5Iil8fDEpKSYmInZpc2libGUiIT1OKGksIm92ZXJmbG93IikmJihhPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1EPmEubGVmdCYmSjxhLnJpZ2h0JiYkPmEudG9wLTEmJkY8YS5ib3R0b20rMSk7cmV0dXJuIHJ9KHVbdF0scikpKXtpZihjZSh1W3RdKSxpPSEwLDk8aWUpYnJlYWt9ZWxzZSFpJiZSJiYhYSYmaWU8NCYmcmU8NCYmMjxCJiYoalswXXx8aC5wcmVsb2FkQWZ0ZXJMb2FkKSYmKGpbMF18fCFvJiYoJHx8RHx8Snx8Rnx8ImF1dG8iIT11W3RdW3ZdKGguc2l6ZXNBdHRyKSkpJiYoYT1qWzBdfHx1W3RdKTthJiYhaSYmY2UoYSl9fWZ1bmN0aW9uIG1lKCl7Sz0hMSxRPW4ubm93KCksRygpfWZ1bmN0aW9uIHBlKGUpe3ZhciB0PWUudGFyZ2V0O3QuX2xhenlDYWNoZT9kZWxldGUgdC5fbGF6eUNhY2hlOihnZShlKSxjKHQsaC5sb2FkZWRDbGFzcyksdSh0LGgubG9hZGluZ0NsYXNzKSx4KHQsbGUpLEwodCwibGF6eWxvYWRlZCIpKX1mdW5jdGlvbiB2ZShlKXt2YXIgdCxhPWVbdl0oaC5zcmNzZXRBdHRyKTsodD1oLmN1c3RvbU1lZGlhW2Vbdl0oImRhdGEtbWVkaWEiKXx8ZVt2XSgibWVkaWEiKV0pJiZlLnNldEF0dHJpYnV0ZSgibWVkaWEiLHQpLGEmJmUuc2V0QXR0cmlidXRlKCJzcmNzZXQiLGEpfWZ1bmN0aW9uIHllKCl7Mz09aC5sb2FkTW9kZSYmKGgubG9hZE1vZGU9MiksdWUoKX1mdW5jdGlvbiBiZSgpe1J8fChuLm5vdygpLU88OTk5P3koYmUsOTk5KTooUj0hMCxoLmxvYWRNb2RlPTMsb2UoKSxlKCJzY3JvbGwiLHllLCEwKSkpfXZhciB6ZSx3ZSxDZSxfZT0od2U9SChmdW5jdGlvbihlLHQsYSxpKXt2YXIgcixuLG87aWYoZS5fbGF6eXNpemVzV2lkdGg9aSxlLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGkrPSJweCIpLHcudGVzdCh0Lm5vZGVOYW1lfHwiIikpZm9yKG49MCxvPShyPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpKS5sZW5ndGg7bjxvO24rKylyW25dLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGkpO2EuZGV0YWlsLmRhdGFBdHRyfHxtKGUsYS5kZXRhaWwpfSkse186ZnVuY3Rpb24oKXt6ZT1mLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaC5hdXRvc2l6ZXNDbGFzcyksZSgicmVzaXplIixDZSl9LGNoZWNrRWxlbXM6Q2U9SShmdW5jdGlvbigpe3ZhciBlLHQ9emUubGVuZ3RoO2lmKHQpZm9yKGU9MDtlPHQ7ZSsrKUFlKHplW2VdKX0pLHVwZGF0ZUVsZW06QWV9KTtmdW5jdGlvbiBBZShlLHQsYSl7dmFyIGk9ZS5wYXJlbnROb2RlO2kmJihhPVcoZSxpLGEpLCh0PUwoZSwibGF6eWJlZm9yZXNpemVzIix7d2lkdGg6YSxkYXRhQXR0cjohIXR9KSkuZGVmYXVsdFByZXZlbnRlZHx8KGE9dC5kZXRhaWwud2lkdGgpJiZhIT09ZS5fbGF6eXNpemVzV2lkdGgmJndlKGUsaSx0LGEpKX1mdW5jdGlvbiBFZSgpeyFFZS5pJiZmLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJihFZS5pPSEwLF9lLl8oKSxmZS5fKCkpfXJldHVybiB5KGZ1bmN0aW9uKCl7aC5pbml0JiZFZSgpfSksZz17Y2ZnOmgsYXV0b1NpemVyOl9lLGxvYWRlcjpmZSxpbml0OkVlLHVQOm0sYUM6YyxyQzp1LGhDOkUsZmlyZTpMLGdXOlcsckFGOk19fSk7"}},"time_used":483,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":483,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtm.js?id=GTM-TR979K9","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.666Z","timestamp":1785145404666,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtm.js?id=GTM-TR979K9 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:24 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 09:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 182477\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":564249,"size_decoded":183127,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (42202)","md5":"568412c5d5160c0137a414cdf9d4564e","sha1":"e352c9efc563aa6c1c712513e07ffcbda457bdca","sha256":"dae2f2dabe7b120039852e81c29f38aa10cc54609f4dc4eaa30614864a6b0ab5","sha512":"5cd7ba58c223043c11a2eb9c6f7bd039e031b97757b96baf8a27128f2556a177a26d5ba385dfd65af74cb9a90d4d797d78f2003713c1f04ba60928ce2b65a39c","ssdeep":"6144:U9w27sRU0jUecP69FMxmRkqn0hdBzcPmfxNf3Ejh8GaCoXaW6GOHJDI+N:Ww27sC3XP69V3K2MCOavGOHJk+N","tlshash":"2dc419ceb3c674769392f468903f018b667a28e2b44cd895f089ccd42e7469a5273f7d","first_seen":"2026-07-27T09:44:08.321369Z","last_seen":"2026-07-27T14:04:41.07346Z","times_seen":4,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKIChmdW5jdGlvbih3LGcpe3dbZ109d1tnXXx8e307CiB3W2ddLmU9ZnVuY3Rpb24ocyl7cmV0dXJuIGV2YWwocyk7fTt9KSh3aW5kb3csJ2dvb2dsZV90YWdfbWFuYWdlcicpOwogCihmdW5jdGlvbigpewoKdmFyIGRhdGEgPSB7CiJyZXNvdXJjZSI6IHsKICAidmVyc2lvbiI6IjE2OSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19nYXMiLCJ2dHBfY29va2llRG9tYWluIjoiYXV0byIsInZ0cF9kb3VibGVDbGljayI6ZmFsc2UsInZ0cF9zZXRUcmFja2VyTmFtZSI6ZmFsc2UsInZ0cF91c2VEZWJ1Z1ZlcnNpb24iOmZhbHNlLCJ2dHBfdXNlSGFzaEF1dG9MaW5rIjpmYWxzZSwidnRwX2RlY29yYXRlRm9ybXNBdXRvTGluayI6ZmFsc2UsInZ0cF9lbmFibGVMaW5rSWQiOmZhbHNlLCJ2dHBfZW5hYmxlRWNvbW1lcmNlIjpmYWxzZSwidnRwX3RyYWNraW5nSWQiOiJVQS0yMDgxMzEyNDctMSIsInZ0cF9lbmFibGVSZWNhcHRjaGFPcHRpb24iOmZhbHNlLCJ2dHBfZW5hYmxlVWFSbHNhIjpmYWxzZSwidnRwX2VuYWJsZVVzZUludGVybmFsVmVyc2lvbiI6ZmFsc2V9LHsiZnVuY3Rpb24iOiJfX3UiLCJ2dHBfY29tcG9uZW50IjoiVVJMIiwidnRwX2VuYWJsZU11bHRpUXVlcnlLZXlzIjpmYWxzZSwidnRwX2VuYWJsZUlnbm9yZUVtcHR5UXVlcnlQYXJhbSI6ZmFsc2V9LHsiZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImV2ZW50TW9kZWwudmFsdWUifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImV2ZW50TW9kZWwuY3VycmVuY3kifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImV2ZW50TW9kZWwuaXRlbXMifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiRy1WTE1GR0s0NTBIIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6IjE4NzA0NjIyNiJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZXZlbnRNb2RlbC50cmFuc2FjdGlvbl9pZCJ9LHsiZnVuY3Rpb24iOiJfX2MiLCJ2dHBfdmFsdWUiOiIxMDc4NDk3MTQ5MCJ9LHsiZnVuY3Rpb24iOiJfX3UiLCJ2dHBfZW5hYmxlTXVsdGlRdWVyeUtleXMiOmZhbHNlLCJ2dHBfZW5hYmxlSWdub3JlRW1wdHlRdWVyeVBhcmFtIjpmYWxzZX0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6IjQwOTgxODg2NDM2NzUyNiJ9LHsiZnVuY3Rpb24iOiJfX2FldiIsInZ0cF92YXJUeXBlIjoiVEVYVCJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZ3RtLm5ld1VybCJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZ3RtLm9sZFVybCJ9LHsiZnVuY3Rpb24iOiJfX2d0Y3MiLCJ2dHBfY29uZmlnU2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsInBhZ2VfcmVmZXJyZXIiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMTVdXSxbIm1hcCIsInBhcmFtZXRlciIsInBhZ2VfbG9jYXRpb24iLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMTRdXSxbIm1hcCIsInBhcmFtZXRlciIsInVwZGF0ZSIsInBhcmFtZXRlclZhbHVlIiwidHJ1ZSJdXX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRDbGFzc2VzIiwidnRwX2RhdGFMYXllclZlcnNpb24iOjF9LHsiZnVuY3Rpb24iOiJfX2MiLCJ2dHBfdmFsdWUiOiJHLUI0UlFTM1RaRzgifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX25hbWUiOiJndG0uZWxlbWVudFVybCIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoxfSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImJhbm5lclR5cGUifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImJhbm5lckhyZWYifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImJhbm5lckxvY2F0aW9uIn0seyJmdW5jdGlvbiI6Il9fdSIsInZ0cF9jb21wb25lbnQiOiJIT1NUIiwidnRwX2VuYWJsZU11bHRpUXVlcnlLZXlzIjpmYWxzZSwidnRwX2VuYWJsZUlnbm9yZUVtcHR5UXVlcnlQYXJhbSI6ZmFsc2V9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfbmFtZSI6Imd0bS50cmlnZ2VycyIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjp0cnVlLCJ2dHBfZGVmYXVsdFZhbHVlIjoiIn0seyJmdW5jdGlvbiI6Il9fYW5hbHl0aWNzX3N0b3JhZ2UiLCJ2dHBfZGF0YUZpZWxkIjoic2Vzc2lvbl9pZCJ9LHsiZnVuY3Rpb24iOiJfX2FuYWx5dGljc19zdG9yYWdlIiwidnRwX2RhdGFGaWVsZCI6ImNsaWVudF9pZCJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZXZlbnRNb2RlbC5zdGF0dXMifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImV2ZW50TW9kZWwuZGVwb3NpdF9pZCJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZXZlbnRNb2RlbC5hbW91bnQifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiRy1CNFJRUzNUWkc4In0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJldmVudE1vZGVsLnNvdXJjZSJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZXZlbnRNb2RlbC5wcm92aWRlcl9uYW1lIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJldmVudE1vZGVsLnBsYXRmb3JtX25hbWUifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiRy1NTDc1MVBQRVdIIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6IjEwNzg0OTcxNDkwIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6Ijg0MTcxOTM1NDU1NTYwNyJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfbmFtZSI6Imd0bS5lbGVtZW50VXJsIiwidnRwX2RhdGFMYXllclZlcnNpb24iOjF9LHsiZnVuY3Rpb24iOiJfX2pzbSIsInZ0cF9qYXZhc2NyaXB0IjpbInRlbXBsYXRlIiwiKGZ1bmN0aW9uKCl7dmFyIGI9d2luZG93LmRhdGFMYXllci5maW5kTGFzdChmdW5jdGlvbihhKXtpZihhLmV2ZW50XHUwMDI2XHUwMDI2YS5ldmVudD09PVwicHVyY2hhc2UyXCIpcmV0dXJuIGF9KSxjPW51bGw7Ylx1MDAyNlx1MDAyNihjPWIuZWNvbW1lcmNlLm9yZGVySWQpO3JldHVybiBjfSkoKTsiXX0seyJmdW5jdGlvbiI6Il9fanNtIiwidnRwX2phdmFzY3JpcHQiOlsidGVtcGxhdGUiLCIoZnVuY3Rpb24oKXt2YXIgYj13aW5kb3cuZGF0YUxheWVyLmZpbmRMYXN0KGZ1bmN0aW9uKGEpe2lmKGEuZXZlbnRcdTAwMjZcdTAwMjZhLmV2ZW50PT09XCJwdXJjaGFzZTJcIilyZXR1cm4gYX0pLGM9bnVsbDtiXHUwMDI2XHUwMDI2KGM9Yi5lY29tbWVyY2UudmFsdWUpO3JldHVybiBjfSkoKTsiXX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJlY29tbWVyY2UucHVyY2hhc2UuYWN0aW9uRmllbGQuaWQifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImVjb21tZXJjZS5wdXJjaGFzZS5hY3Rpb25GaWVsZC5yZXZlbnVlIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJlY29tbWVyY2UucHVyY2hhc2UuYWN0aW9uRmllbGQudGF4In0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJlY29tbWVyY2UucHVyY2hhc2UuYWN0aW9uRmllbGQuc2hpcHBpbmcifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImVjb21tZXJjZS5wdXJjaGFzZS5wcm9kdWN0cy4wLnZhcmlhbnQifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImVjb21tZXJjZS5wdXJjaGFzZS5hY3Rpb25GaWVsZC5jb3Vwb24ifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImVjb21tZXJjZS5wdXJjaGFzZS5hY3Rpb25GaWVsZC5hZmZpbGlhdGlvbiJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZWNvbW1lcmNlIn0seyJmdW5jdGlvbiI6Il9fanNtIiwidnRwX2phdmFzY3JpcHQiOlsidGVtcGxhdGUiLCIoZnVuY3Rpb24oKXt2YXIgYT0iLFsiZXNjYXBlIixbIm1hY3JvIiw0N10sOCwxNl0sIjtpZihhXHUwMDI2XHUwMDI2YS5pdGVtcylyZXR1cm4gYS5pdGVtc30pKCk7Il19LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZWNvbW1lcmNlLnB1cmNoYXNlLnByb2R1Y3RzLjAubmFtZSJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MiwidnRwX3NldERlZmF1bHRWYWx1ZSI6ZmFsc2UsInZ0cF9uYW1lIjoiZWNvbW1lcmNlLnB1cmNoYXNlLnByb2R1Y3RzLjAuaWQifSx7ImZ1bmN0aW9uIjoiX192IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjIsInZ0cF9zZXREZWZhdWx0VmFsdWUiOmZhbHNlLCJ2dHBfbmFtZSI6ImVjb21tZXJjZS5wdXJjaGFzZS5wcm9kdWN0cy4wLnByaWNlIn0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9kYXRhTGF5ZXJWZXJzaW9uIjoyLCJ2dHBfc2V0RGVmYXVsdFZhbHVlIjpmYWxzZSwidnRwX25hbWUiOiJlY29tbWVyY2UucHVyY2hhc2UucHJvZHVjdHMuMC5xdWFudGl0eSJ9LHsiZnVuY3Rpb24iOiJfX2pzbSIsInZ0cF9qYXZhc2NyaXB0IjpbInRlbXBsYXRlIiwiKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImNzcy0xcHo3ZGZ3XCIpWzBdLnRleHRDb250ZW50O3JldHVybiBhfSkoKTsiXX0seyJmdW5jdGlvbiI6Il9fanNtIiwidnRwX2phdmFzY3JpcHQiOlsidGVtcGxhdGUiLCIoZnVuY3Rpb24oKXt0cnl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi53b29jb21tZXJjZS1QcmljZS1hbW91bnQuYW1vdW50XCIpO2lmKCFhKXJldHVybiBudWxsO3ZhciBiPWEucXVlcnlTZWxlY3RvcihcIi53b29jb21tZXJjZS1QcmljZS1jdXJyZW5jeVN5bWJvbFwiKSxlPWI/Yi50ZXh0Q29udGVudC50cmltKCk6XCJcIixmPWEudGV4dENvbnRlbnQucmVwbGFjZShcL1xccytcL2csXCJcIikucmVwbGFjZShlLFwiXCIpLGM9Zi5tYXRjaChcLyhbXFxkLixdKylcLyk7aWYoIWMpcmV0dXJuIG51bGw7dmFyIGQ9cGFyc2VGbG9hdChjWzFdLnJlcGxhY2UoXCIsXCIsXCIuXCIpKTtyZXR1cm4gaXNOYU4oZCk/bnVsbDpkfWNhdGNoKGcpe3JldHVybiBudWxsfX0pKCk7Il19LHsiZnVuY3Rpb24iOiJfX2pzbSIsInZ0cF9qYXZhc2NyaXB0IjpbInRlbXBsYXRlIiwiKGZ1bmN0aW9uKCl7dHJ5e3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIud29vY29tbWVyY2UtUHJpY2UtYW1vdW50LmFtb3VudFwiKTtpZighYSlyZXR1cm4gbnVsbDt2YXIgYj1hLnF1ZXJ5U2VsZWN0b3IoXCIud29vY29tbWVyY2UtUHJpY2UtY3VycmVuY3lTeW1ib2xcIiksYz1iP2IudGV4dENvbnRlbnQudHJpbSgpOlwiXCI7cmV0dXJuIGN8fG51bGx9Y2F0Y2goZCl7cmV0dXJuIG51bGx9fSkoKTsiXX0seyJmdW5jdGlvbiI6Il9fanNtIiwidnRwX2phdmFzY3JpcHQiOlsidGVtcGxhdGUiLCIoZnVuY3Rpb24oKXt0cnl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi53b29jb21tZXJjZS1QcmljZS1hbW91bnQuYW1vdW50XCIpO2lmKCFhKXJldHVybiBudWxsO3ZhciBiPWEucXVlcnlTZWxlY3RvcihcIi53b29jb21tZXJjZS1QcmljZS1jdXJyZW5jeVN5bWJvbFwiKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1iLnRleHRDb250ZW50LnRyaW0oKTthPXskOlwiVVNEXCIsXCJcXHUyMGFjXCI6XCJFVVJcIixcIlxcdTAwYTNcIjpcIkdCUFwiLFIkOlwiQlJMXCIsXCJcXHUwMGE1XCI6XCJKUFlcIixcIlxcdTIwYmRcIjpcIlJVQlwiLFwiXFx1MjBhOVwiOlwiS1JXXCIsXCJcXHUyMGI5XCI6XCJJTlJcIixcIlxcdTIwYmFcIjpcIlRSWVwiLFwiXFx1MjBiNFwiOlwiVUFIXCIsXCJcXHUyMGFiXCI6XCJWTkRcIixcIlxcdTIwYTZcIjpcIk5HTlwiLFwiXFx1MjBiMVwiOlwiUEhQXCIsQ0hGOlwiQ0hGXCIsQyQ6XCJDQURcIixBJDpcIkFVRFwifTtyZXR1cm4gYVtjXXx8Y3x8bnVsbH1jYXRjaChkKXtyZXR1cm4gbnVsbH19KSgpOyJdfSx7ImZ1bmN0aW9uIjoiX19qc20iLCJ2dHBfamF2YXNjcmlwdCI6WyJ0ZW1wbGF0ZSIsIihmdW5jdGlvbigpe3RyeXt2YXIgYT13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0cmFuc2FjdGlvbl9pZHNcIiksYz1hP0pTT04ucGFyc2UoYSk6W10sZD1TdHJpbmcoIixbImVzY2FwZSIsWyJtYWNybyIsOV0sOCwxNl0sIik7cmV0dXJuIGMuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi5pZD09PWR9KX1jYXRjaChiKXtyZXR1cm4hMX19KSgpOyJdfSx7ImZ1bmN0aW9uIjoiX19ndGVzIiwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImN1cnJlbmN5IiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDVdXSxbIm1hcCIsInBhcmFtZXRlciIsInZhbHVlIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDRdXSxbIm1hcCIsInBhcmFtZXRlciIsInRyYW5zYWN0aW9uX2lkIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDldXSxbIm1hcCIsInBhcmFtZXRlciIsIml0ZW1zIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDZdXV19LHsiZnVuY3Rpb24iOiJfX3UiLCJ2dHBfY29tcG9uZW50IjoiUEFUSCIsInZ0cF9lbmFibGVNdWx0aVF1ZXJ5S2V5cyI6ZmFsc2UsInZ0cF9lbmFibGVJZ25vcmVFbXB0eVF1ZXJ5UGFyYW0iOmZhbHNlfSx7ImZ1bmN0aW9uIjoiX19mIiwidnRwX2NvbXBvbmVudCI6IlVSTCJ9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfbmFtZSI6Imd0bS5lbGVtZW50IiwidnRwX2RhdGFMYXllclZlcnNpb24iOjF9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfbmFtZSI6Imd0bS5lbGVtZW50SWQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRUYXJnZXQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRDbGFzc2VzIiwidnRwX2RhdGFMYXllclZlcnNpb24iOjF9LHsiZnVuY3Rpb24iOiJfX3YiLCJ2dHBfbmFtZSI6Imd0bS5lbGVtZW50SWQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fdiIsInZ0cF9uYW1lIjoiZ3RtLmVsZW1lbnRUYXJnZXQiLCJ2dHBfZGF0YUxheWVyVmVyc2lvbiI6MX0seyJmdW5jdGlvbiI6Il9fYWV2IiwidnRwX3ZhclR5cGUiOiJURVhUIn1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fZ2NsaWR3IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZW5hYmxlQ3Jvc3NEb21haW4iOnRydWUsInZ0cF9lbmFibGVVcmxQYXNzdGhyb3VnaCI6dHJ1ZSwidnRwX2FjY2VwdEluY29taW5nIjp0cnVlLCJ2dHBfbGlua2VyRG9tYWlucyI6InR4M21hcmtldHMuY29tLCBmeC50eDNtYXJrZXRzLmNvbSwgdG9wdGllcnRyYWRlci5jb20sIGFwcC50b3B0aWVydHJhZGVyLmNvbSwgbWVyY2gudG9wdGllcnRyYWRlci5jb20sIGtleW5vdGUudG9wdGllcnRyYWRlci5jb20sIGF1dG90cmFkZXJzY2FwaXRhbC5jb20sIGV4cGVydG9wdGlvbmZpbmFuY2Vicm9rZXIuY29tLCB0b3AtdGllcnRyYWRlci5jb20sIHRvcHRpZXJzdHJhZGVyLmNvbSwgdHR0LXNlcnZpY2VzLmNvbSwgc2l4ZmlndXJlcGF5b3V0cy50b3B0aWVydHJhZGVyLmNvbSwgNjZjNzk4OWNjY2VjNWUwMDA4MGY4NjQ4LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY2ZDA4ZWEwZGJlZmVmMDAwOGUxNGFlYy0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzExMWI1ZGExYmI1ZDAwMDhlOWIyOTEtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxMTZlZThkZTZiYjYwMDA4MzIwMjg1LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MTI0NjZlNTZmOTc1MDAwOGIyNjIyMi0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzEyNDdiNzI0ZWE5NjAwMDg2M2IzZTktLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxMjkwMzFkNWJlNzEwMDA4N2QzMTZkLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MTI5MWMyY2FlNzVkMDAwODVjNTkxMy0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzEyOTdlNDQ1MmY4NjAwMDhmOWYzYmMtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxMjk4MWFiMzczNjkwMDA4YmNlZDE2LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MTJhODkyNjViYWY2MDAwODg4M2ZhMS0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzEzMjM2Njg5Y2MyYjAwMDhkNDY2YmEtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxMzIzZDU3ZTM5ZmQwMDA4ODk3YmU5LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MTUxYzM5MDk0OTk1MDAwODI1OGJkMS0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzE2NGY3NDM2NTVhMzAwMDhkZDk5MWQtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxNjYxNjZjMTE2MjQwMDA4ZDFlMzRhLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MTdmYmE3NDRhOGJkMDAwOGJlNjZjZC0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzE4MTUxMWE1ZTU2NTAwMDhlN2VkNGYtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcxODFlNmY1OTBjMDgwMDA4MDMyNzRmLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MWY5NDI2NzAzMzY1MDAwODUwYTU2Ny0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzIwZjcxZDI3N2E2MDAwMDgyMGU0MGUtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcyMzc0MmYyOTE1NzMwMDA4YzZmOWY0LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MjM3NDkxYmY1ZWI2MDAwOGNkOTg0NS0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzI0YzkwNTNhYWNiMjAwMDg5YzlkNTctLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcyY2I4MGU4NWQ2MTAwMDA4ZDkwYTRlLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MmNjZDQ1YTMwY2ZmMDAwOGY1MmZkMy0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzJjZDkyM2QyNjdkZDAwMDgyNDQwOGEtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcyZTBkOWNkYWMzZDYwMDA4ODA0MGU0LS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MmUyNmY1MzRjNGY5MDAwODFmNDI3Yi0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzJlNmE3MTY1MDNjNzAwMDgwYTcxZWUtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcyZTZiNTNjOTcwMjMwMDA4MzI1YmJjLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MmU3NmM0OWNhNjBlMDAwODk3NWRiYy0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCA2NzJlOGFlMWNlNTMyMzAwMDhlOTU3OTMtLW1haW5wYWdldG9wdGllcnRyYWRlci5uZXRsaWZ5LmFwcCwgNjcyZThiNGRlZGJlNTgwMDA4Nzc2YzAyLS1tYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIDY3MzJhMjg5YjQ2NzRiMDAwOGU4OTI3NC0tbWFpbnBhZ2V0b3B0aWVydHJhZGVyLm5ldGxpZnkuYXBwLCBhdXRvbGl0ZWZpbmFuY2UucHJvLCBlbWJlZGRlZC5jb20sIG1haW4tcGFnZS1nM3drenk1d3EtdG9wdGllcnRyYWRlci52ZXJjZWwuYXBwLCBtYWluLXBhZ2UtZ2l0LXRlc3RpbmctdG9wdGllcnRyYWRlci52ZXJjZWwuYXBwLCBtYWlucGFnZXRvcHRpZXJ0cmFkZXIubmV0bGlmeS5hcHAsIHByb3BmaXJtc2F2ZXIuY29tLCBzaXgtZmlndXJlLXBheW91dHMtbWFzdGVyY2xhc3MudmVyY2VsLmFwcCwgNjY1NzQ4YWExMzZkN2YzMjFiMmU0ZTM3LS1iZXNwb2tlLXB1ZmZwdWZmLWJkM2E0My5uZXRsaWZ5LmFwcCwgNjY3YzZkMTE3NmNjNGJhYjZhYjk5MTlhLS16aXBweS1iaXNjdWl0LWEyNDU0YS5uZXRsaWZ5LmFwcCwgNjY4NWNlODUyNmFkYTIwMDA4ODFjZTcwLS1wcm9wZmlybXNhdmVyLm5ldGxpZnkuYXBwLCBiZXNwb2tlLXB1ZmZwdWZmLWJkM2E0My5uZXRsaWZ5LmFwcCwgY2FsaS1iaWxsYm9hcmQtbGFuZGluZy1wYWdlLnZlcmNlbC5hcHAsIGV2ZXJncmVlbi1sYW5kaW5nLW1hc3RlcmNsYXNzLnZlcmNlbC5hcHAsIGZ1bmRlZHguY29tLCBmdW5kZXJwcm8uY29tLCBrZXlub3RlLXdlYnNpdGUudmVyY2VsLmFwcCwgbGV2ZWxzbGFuZGluZ3BhZ2UtZ2l0LW1haW4tdG9wdGllcnRyYWRlci52ZXJjZWwuYXBwLCBsZXZlbHNsYW5kaW5ncGFnZS1naXQtd2FpdGluZy1saXN0LXRvcHRpZXJ0cmFkZXIudmVyY2VsLmFwcCwgbGV2ZWxzbGFuZGluZ3BhZ2UtdG9wdGllcnRyYWRlci52ZXJjZWwuYXBwLCBsdi5scywgbWFpbi1wYWdlLTJyZ2FveG0wdy10b3B0aWVydHJhZGVyLnZlcmNlbC5hcHAsIHByb3BmaXJtc2F2ZXIubmV0bGlmeS5hcHAsIHRvcHRpZXJsZXZlbHMuY29tLCB0b3B0aWVyc2FsZXMuY29tLCB6aXBweS1iaXNjdWl0LWEyNDU0YS5uZXRsaWZ5LmFwcCwgNjdlNmQyODQxNDU0OGI2NzMzMTk2NDA5LS16aXBweS1iaXNjdWl0LWEyNDU0YS5uZXRsaWZ5LmFwcCwgNjdmZWJkNjc1YjIyMWQwNGE1ODQ1OTIwLS16aXBweS1iaXNjdWl0LWEyNDU0YS5uZXRsaWZ5LmFwcCwgZWFlZDA0LWZjLm15c2hvcGlmeS5jb20sIGV4cGVydG9wdGlvbmZpbmFuY2Vicm9rZXIubGl2ZSwgcmlza2pvY2tleS5jb20sIHRvcHRpZXIudGVzdCwgYXV0b2xpdGVmaW5hbmNlcy5wcm8sIG1haW4tcGFnZS1naXQtY2hhbGxlbmdlLXRhYmxlLXZpc3VhbC1yZWZhY3Rvci10b3B0aWVydHJhZGVyLnZlcmNlbC5hcHAsIG1haW4tcGFnZS1naXQtZHJhd2Rvd24tZGFuLWxwLXRvcHRpZXJ0cmFkZXIudmVyY2VsLmFwcCwgbWFpbi1wYWdlLWd3NzIyZ3FqZi10b3B0aWVydHJhZGVyLnZlcmNlbC5hcHAsIHR4My1mdW5kaW5nLW1lcmdlLXdlYnNpdGUudmVyY2VsLmFwcCwgdHgzbWFya2V0cy5jb20sIHR4My1mdW5kaW5nLW1lcmdlLXdlYnNpdGUtbDhhcXZ0czIyLXRvcHRpZXJ0cmFkZXIudmVyY2VsLmFwcCwgdHgzLW1hcmtldHMtd2Vic2l0ZS1naXQtbWFpbi10b3B0aWVydHJhZGVyLnZlcmNlbC5hcHAsIHR4My1tYXJrZXRzLXdlYnNpdGUudmVyY2VsLmFwcCwgdHgzZnVuZGluZy5jb20sIHR4My1mdW5kaW5nLW1lcmdlLXdlYnNpdGUtZ2l0LWZlYXQtdmlkZW8tby0yYjM3MjEtdG9wdGllcnRyYWRlci52ZXJjZWwuYXBwIiwidnRwX2VuYWJsZUNvb2tpZU92ZXJyaWRlcyI6ZmFsc2UsInZ0cF9mb3JtRGVjb3JhdGlvbiI6ZmFsc2UsInZ0cF91cmxQb3NpdGlvbiI6InF1ZXJ5IiwidGFnX2lkIjo2fSx7ImZ1bmN0aW9uIjoiX19oanRjIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfaG90amFyX3NpdGVfaWQiOiIyNjM4NTUwIiwidGFnX2lkIjo5fSx7ImZ1bmN0aW9uIjoiX191YSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX292ZXJyaWRlR2FTZXR0aW5ncyI6ZmFsc2UsInZ0cF90cmFja1R5cGUiOiJUUkFDS19QQUdFVklFVyIsInZ0cF9nYVNldHRpbmdzIjpbIm1hY3JvIiwxXSwidnRwX2VuYWJsZVJlY2FwdGNoYU9wdGlvbiI6ZmFsc2UsInZ0cF9lbmFibGVVYVJsc2EiOmZhbHNlLCJ2dHBfZW5hYmxlVXNlSW50ZXJuYWxWZXJzaW9uIjpmYWxzZSwidnRwX2VuYWJsZUZpcmViYXNlQ2FtcGFpZ25EYXRhIjp0cnVlLCJ0YWdfaWQiOjE4fSx7ImZ1bmN0aW9uIjoiX19jdnRfNTI2MTUxMzlfMjMiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9waXhlbF9pZCI6Im9lbGkwIiwidGFnX2lkIjoyNH0seyJmdW5jdGlvbiI6Il9fcGF1c2VkIiwidnRwX29yaWdpbmFsVGFnVHlwZSI6Imdvb2d0YWciLCJ0YWdfaWQiOjI4fSx7ImZ1bmN0aW9uIjoiX19wYXVzZWQiLCJ2dHBfb3JpZ2luYWxUYWdUeXBlIjoiaHRtbCIsInRhZ19pZCI6Mjl9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sInRlYXJkb3duX3RhZ3MiOlsibGlzdCIsWyJ0YWciLDEwMywwXV0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZXZlbnRTZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicGFyYW1ldGVyIiwidmFsdWUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNF1dLFsibWFwIiwicGFyYW1ldGVyIiwiY3VycmVuY3kiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNV1dLFsibWFwIiwicGFyYW1ldGVyIiwiaXRlbXMiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNl1dXSwidnRwX2V2ZW50TmFtZSI6InB1cmNoYXNlIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsN10sInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjMwfSx7ImZ1bmN0aW9uIjoiX19wYXVzZWQiLCJ2dHBfb3JpZ2luYWxUYWdUeXBlIjoiaHRtbCIsInRhZ19pZCI6NDZ9LHsiZnVuY3Rpb24iOiJfX2JhdXQiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9jX25hdlRpbWluZ0FwaSI6ZmFsc2UsInZ0cF90YWdJZCI6WyJtYWNybyIsOF0sInZ0cF9jX2NvbnNlbnRJbmhlcml0R3RtIjpmYWxzZSwidnRwX2Nfc3RvcmVDb252VHJhY2tDb29raWVzIjp0cnVlLCJ2dHBfdWV0cU5hbWUiOiJ1ZXRxIiwidnRwX2NfcmVtb3ZlUXVlcnlGcm9tVXJscyI6ZmFsc2UsInZ0cF9jX2Rpc2FibGVBdXRvUGFnZVZpZXciOmZhbHNlLCJ2dHBfY19lbmhhbmNlZENvbnZlcnNpb24iOmZhbHNlLCJ2dHBfY19jb25zZW50VXBkYXRlcyI6dHJ1ZSwidnRwX2V2ZW50VHlwZSI6IlBBR0VfTE9BRCIsInZ0cF9jX2VuYWJsZUF1dG9TcGFUcmFja2luZyI6ZmFsc2UsInRhZ19pZCI6NDd9LHsiZnVuY3Rpb24iOiJfX3BhdXNlZCIsInZ0cF9vcmlnaW5hbFRhZ1R5cGUiOiJnb29ndGFnIiwidGFnX2lkIjo0OX0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3Byb2R1Y3RSZXBvcnRpbmdEYXRhU291cmNlIjoiSlNPTiIsInZ0cF9vcmRlcklkIjpbIm1hY3JvIiw5XSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOnRydWUsInZ0cF9lbmFibGVTaGlwcGluZ0RhdGEiOmZhbHNlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2NvbnZlcnNpb25WYWx1ZSI6WyJtYWNybyIsNF0sInZ0cF9jb252ZXJzaW9uQ29va2llUHJlZml4IjoiX2djbCIsInZ0cF9jb252ZXJzaW9uSWQiOlsibWFjcm8iLDEwXSwidnRwX2N1cnJlbmN5Q29kZSI6WyJtYWNybyIsNV0sInZ0cF9pdGVtcyI6WyJtYWNybyIsNl0sInZ0cF9jb252ZXJzaW9uTGFiZWwiOiI3bEZqQ1BxanJlTVlFT0sxMXBZbyIsInZ0cF9yZHAiOmZhbHNlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uc0NoZWNrYm94IjpmYWxzZSwidnRwX2VuYWJsZVJkcENoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlVHJhbnNwb3J0VXJsIjpmYWxzZSwidnRwX2VuYWJsZUN1c3RvbVBhcmFtcyI6ZmFsc2UsInZ0cF9lbmFibGVFdmVudFBhcmFtZXRlcnMiOnRydWUsInRhZ19pZCI6NTB9LHsiZnVuY3Rpb24iOiJfX3NwIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2VuYWJsZUR5bmFtaWNSZW1hcmtldGluZyI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uQ29va2llUHJlZml4IjoiX2djbCIsInZ0cF9jb252ZXJzaW9uSWQiOiIxMDc4NDk3MTQ5MCIsInZ0cF9jdXN0b21QYXJhbXNGb3JtYXQiOiJOT05FIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF9lbmFibGVPZ3RSbWt0UGFyYW1zIjp0cnVlLCJ2dHBfZW5hYmxlVXNlcklkIjp0cnVlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjo1MX0seyJmdW5jdGlvbiI6Il9fY3Z0XzVSTTNRIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZGlzYWJsZVB1c2hTdGF0ZSI6ZmFsc2UsInZ0cF9waXhlbElkIjpbIm1hY3JvIiwxMl0sInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IlBhZ2VWaWV3IiwidnRwX2Rpc2FibGVBdXRvQ29uZmlnIjpmYWxzZSwidnRwX3VzZUdBNEVjb21tZXJjZSI6ZmFsc2UsInZ0cF9lbmhhbmNlZEVjb21tZXJjZSI6ZmFsc2UsInZ0cF9kcG9MRFUiOmZhbHNlLCJ2dHBfZXZlbnROYW1lIjoic3RhbmRhcmQiLCJ2dHBfb2JqZWN0UHJvcGVydGllc0Zyb21WYXJpYWJsZSI6ZmFsc2UsInZ0cF9jb25zZW50Ijp0cnVlLCJ2dHBfYWR2YW5jZWRNYXRjaGluZyI6ZmFsc2UsInRhZ19pZCI6NTJ9LHsiZnVuY3Rpb24iOiJfX2F3Y3QiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb24iOmZhbHNlLCJ2dHBfY29udmVyc2lvbkNvb2tpZVByZWZpeCI6Il9nY2wiLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2NvbnZlcnNpb25JZCI6IjEwNzg0OTcxNDkwIiwidnRwX2NvbnZlcnNpb25MYWJlbCI6InFuX0FDSk9fbV9JWUVPSzExcFlvIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF91cmwiOlsibWFjcm8iLDExXSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zQ2hlY2tib3giOmZhbHNlLCJ2dHBfZW5hYmxlUmRwQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVUcmFuc3BvcnRVcmwiOmZhbHNlLCJ2dHBfZW5hYmxlQ3VzdG9tUGFyYW1zIjpmYWxzZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjo1NH0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXIiOnRydWUsInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbiI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uQ29va2llUHJlZml4IjoiX2djbCIsInZ0cF9lbmFibGVTaGlwcGluZ0RhdGEiOmZhbHNlLCJ2dHBfY29udmVyc2lvbklkIjoiMTA3ODQ5NzE0OTAiLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoiTFpUV0NMU1Z5SzhaRU9LMTFwWW8iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjYyfSx7ImZ1bmN0aW9uIjoiX19hd2N0IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfcHJvZHVjdFJlcG9ydGluZ0RhdGFTb3VyY2UiOiJKU09OIiwidnRwX29yZGVySWQiOlsibWFjcm8iLDldLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6dHJ1ZSwidnRwX2VuYWJsZVNoaXBwaW5nRGF0YSI6ZmFsc2UsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfY29udmVyc2lvblZhbHVlIjpbIm1hY3JvIiw0XSwidnRwX2NvbnZlcnNpb25Db29raWVQcmVmaXgiOiJfZ2NsIiwidnRwX2NvbnZlcnNpb25JZCI6WyJtYWNybyIsMTBdLCJ2dHBfY3VycmVuY3lDb2RlIjpbIm1hY3JvIiw1XSwidnRwX2l0ZW1zIjpbIm1hY3JvIiw2XSwidnRwX2NvbnZlcnNpb25MYWJlbCI6IjBoVnBDSjJVeExRWkVPSzExcFlvIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF91cmwiOlsibWFjcm8iLDExXSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zQ2hlY2tib3giOmZhbHNlLCJ2dHBfZW5hYmxlUmRwQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVUcmFuc3BvcnRVcmwiOmZhbHNlLCJ2dHBfZW5hYmxlQ3VzdG9tUGFyYW1zIjpmYWxzZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjo2Nn0seyJmdW5jdGlvbiI6Il9fZ29vZ3RhZyIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3RhZ0lkIjoiR1RNLVRSOTc5SzkiLCJ2dHBfY29uZmlnU2V0dGluZ3NWYXJpYWJsZSI6WyJtYWNybyIsMTZdLCJ0YWdfaWQiOjcyfSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2VuaGFuY2VkVXNlcklkIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InBhZ2VfdmlldyIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjo3M30seyJmdW5jdGlvbiI6Il9faGp0YyIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2hvdGphcl9zaXRlX2lkIjoiNTA0Mzg3OCIsInRhZ19pZCI6Nzd9LHsiZnVuY3Rpb24iOiJfX2JhdXQiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9nb2FsVmFsdWUiOlsibWFjcm8iLDRdLCJ2dHBfcF9jdXJyZW5jeSI6WyJtYWNybyIsNV0sInZ0cF91ZXRxTmFtZSI6InVldHEiLCJ2dHBfY3VzdG9tRXZlbnRBY3Rpb24iOiJwdXJjaGFzZSIsInZ0cF9ldmVudFR5cGUiOiJDVVNUT00iLCJ0YWdfaWQiOjc4fSx7ImZ1bmN0aW9uIjoiX19hd2N0IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uQ29va2llUHJlZml4IjoiX2djbCIsInZ0cF9lbmFibGVTaGlwcGluZ0RhdGEiOmZhbHNlLCJ2dHBfY29udmVyc2lvbklkIjoiMTA4NTQ3NTc1MjYiLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoiUWlsbkNMR3Fyc1VaRUpicC1iY28iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjgxfSx7ImZ1bmN0aW9uIjoiX19hd2N0IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb24iOmZhbHNlLCJ2dHBfY29udmVyc2lvbkNvb2tpZVByZWZpeCI6Il9nY2wiLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2NvbnZlcnNpb25JZCI6IjEwNzg0OTcxNDkwIiwidnRwX2NvbnZlcnNpb25MYWJlbCI6IjNRd0hDTVBnaXNrWkVPSzExcFlvIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF91cmwiOlsibWFjcm8iLDExXSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zQ2hlY2tib3giOmZhbHNlLCJ2dHBfZW5hYmxlUmRwQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVUcmFuc3BvcnRVcmwiOmZhbHNlLCJ2dHBfZW5hYmxlQ3VzdG9tUGFyYW1zIjpmYWxzZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjo4OX0seyJmdW5jdGlvbiI6Il9fY3Z0XzVSTTNRIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOiI0MDk4MTg4NjQzNjc1MjYiLCJ2dHBfc3RhbmRhcmRFdmVudE5hbWUiOiJMZWFkIiwidnRwX2Rpc2FibGVBdXRvQ29uZmlnIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjo5MX0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9sb2FkIjp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uIjpmYWxzZSwidnRwX2NvbnZlcnNpb25Db29raWVQcmVmaXgiOiJfZ2NsIiwidnRwX2VuYWJsZVNoaXBwaW5nRGF0YSI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uSWQiOiIxMDc4NDk3MTQ5MCIsInZ0cF9jb252ZXJzaW9uTGFiZWwiOiJYcGpHQ0lMcjdzOFpFT0sxMXBZbyIsInZ0cF9yZHAiOmZhbHNlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uc0NoZWNrYm94IjpmYWxzZSwidnRwX2VuYWJsZVJkcENoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlVHJhbnNwb3J0VXJsIjpmYWxzZSwidnRwX2VuYWJsZUN1c3RvbVBhcmFtcyI6ZmFsc2UsInZ0cF9lbmFibGVFdmVudFBhcmFtZXRlcnMiOnRydWUsInRhZ19pZCI6OTR9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9lbmhhbmNlZFVzZXJJZCI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJhZGRfdG9fY2FydCIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjo5OX0seyJmdW5jdGlvbiI6Il9fZ2Fhd2UiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfbG9hZCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6ImJlZ2luX2NoZWNrb3V0X2ZvcmV4IiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMThdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoxMDB9LHsiZnVuY3Rpb24iOiJfX2dvb2d0YWciLCJ2dHBfdGFnSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTAxfSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsImJhbm5lclR5cGUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMjBdXSxbIm1hcCIsInBhcmFtZXRlciIsImJhbm5lckhyZWYiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMjFdXSxbIm1hcCIsInBhcmFtZXRlciIsImJhbm5lckxvY2F0aW9uIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDIyXV1dLCJ2dHBfZXZlbnROYW1lIjoiYmFubmVyX2NsaWNrIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6IkctQjRSUVMzVFpHOCIsInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjExMn0seyJmdW5jdGlvbiI6Il9fY3Z0XzVSTTNRIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZGlzYWJsZVB1c2hTdGF0ZSI6ZmFsc2UsInZ0cF9waXhlbElkIjpbIm1hY3JvIiwxMl0sInZ0cF9vYmplY3RQcm9wZXJ0eUxpc3QiOlsibGlzdCIsWyJtYXAiLCJuYW1lIiwidmFsdWUiLCJ2YWx1ZSIsWyJtYWNybyIsNF1dLFsibWFwIiwibmFtZSIsImN1cnJlbmN5IiwidmFsdWUiLFsibWFjcm8iLDVdXSxbIm1hcCIsIm5hbWUiLCJ0cmFuc2FjdGlvbl9pZCIsInZhbHVlIixbIm1hY3JvIiw5XV1dLCJ2dHBfc3RhbmRhcmRFdmVudE5hbWUiOiJQdXJjaGFzZSIsInZ0cF9kaXNhYmxlQXV0b0NvbmZpZyI6ZmFsc2UsInZ0cF91c2VHQTRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZW5oYW5jZWRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZHBvTERVIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InN0YW5kYXJkIiwidnRwX29iamVjdFByb3BlcnRpZXNGcm9tVmFyaWFibGUiOmZhbHNlLCJ2dHBfY29uc2VudCI6dHJ1ZSwidnRwX2FkdmFuY2VkTWF0Y2hpbmciOmZhbHNlLCJ0YWdfaWQiOjExN30seyJmdW5jdGlvbiI6Il9fYmF1dCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2dvYWxWYWx1ZSI6WyJtYWNybyIsNF0sInZ0cF9wX2N1cnJlbmN5IjpbIm1hY3JvIiw1XSwidnRwX3VldHFOYW1lIjoidWV0cSIsInZ0cF9jdXN0b21FdmVudEFjdGlvbiI6ImluaXRpYXRlX2NoZWNrb3V0IiwidnRwX2V2ZW50VHlwZSI6IkNVU1RPTSIsInRhZ19pZCI6MTE5fSx7ImZ1bmN0aW9uIjoiX19hd2N0IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2NvbnZlcnNpb25JZCI6WyJtYWNybyIsMTBdLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoiTFpUV0NMU1Z5SzhaRU9LMTFwWW8iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjEzNH0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXIiOnRydWUsInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZVNoaXBwaW5nRGF0YSI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uSWQiOlsibWFjcm8iLDEwXSwidnRwX2NvbnZlcnNpb25MYWJlbCI6Ikd2NWZDUEw3Z19jYkVPSzExcFlvIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF91cmwiOlsibWFjcm8iLDExXSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zQ2hlY2tib3giOmZhbHNlLCJ2dHBfZW5hYmxlUmRwQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVUcmFuc3BvcnRVcmwiOmZhbHNlLCJ2dHBfZW5hYmxlQ3VzdG9tUGFyYW1zIjpmYWxzZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjoxMzZ9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZXZlbnROYW1lIjoibGVhZCIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOlsibWFjcm8iLDddLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoxMzh9LHsiZnVuY3Rpb24iOiJfX2dvb2d0YWciLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF90YWdJZCI6WyJtYWNybyIsN10sInRhZ19pZCI6MTUyfSx7ImZ1bmN0aW9uIjoiX19nb29ndGFnIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfdGFnSWQiOlsibWFjcm8iLDE4XSwidGFnX2lkIjoxNTZ9LHsiZnVuY3Rpb24iOiJfX2N2dF9NUURLWiIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3Nlc3Npb25JZCI6WyJtYWNybyIsMjVdLCJ2dHBfcHJvamVjdElkIjoidG16NzFiMG02MSIsInZ0cF91c2VySWQiOlsibWFjcm8iLDI2XSwidGFnX2lkIjoxNTh9LHsiZnVuY3Rpb24iOiJfX2N2dF9NUURLWiIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3Nlc3Npb25JZCI6WyJtYWNybyIsMjVdLCJ2dHBfcHJvamVjdElkIjoidzk0YWVqZjFsNiIsInZ0cF91c2VySWQiOlsibWFjcm8iLDI2XSwidGFnX2lkIjoxNTl9LHsiZnVuY3Rpb24iOiJfX3BhdXNlZCIsInZ0cF9vcmlnaW5hbFRhZ1R5cGUiOiJhd2N0IiwidGFnX2lkIjoxNjN9LHsiZnVuY3Rpb24iOiJfX2dvb2d0YWciLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF90YWdJZCI6IkFXLTE2ODMwMzQ1OTE1IiwidGFnX2lkIjoxNjR9LHsiZnVuY3Rpb24iOiJfX2N2dF81Uk0zUSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2Rpc2FibGVQdXNoU3RhdGUiOmZhbHNlLCJ2dHBfcGl4ZWxJZCI6Ijg0MTcxOTM1NDU1NTYwNyIsInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IlBhZ2VWaWV3IiwidnRwX2Rpc2FibGVBdXRvQ29uZmlnIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjoxNjV9LHsiZnVuY3Rpb24iOiJfX2N2dF81Uk0zUSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2Rpc2FibGVQdXNoU3RhdGUiOmZhbHNlLCJ2dHBfcGl4ZWxJZCI6WyJtYWNybyIsMTJdLCJ2dHBfb2JqZWN0UHJvcGVydHlMaXN0IjpbImxpc3QiLFsibWFwIiwibmFtZSIsInZhbHVlIiwidmFsdWUiLFsibWFjcm8iLDRdXSxbIm1hcCIsIm5hbWUiLCJjdXJyZW5jeSIsInZhbHVlIixbIm1hY3JvIiw1XV0sWyJtYXAiLCJuYW1lIiwidHJhbnNhY3Rpb25faWQiLCJ2YWx1ZSIsWyJtYWNybyIsOV1dXSwidnRwX3N0YW5kYXJkRXZlbnROYW1lIjoiSW5pdGlhdGVDaGVja291dCIsInZ0cF9kaXNhYmxlQXV0b0NvbmZpZyI6ZmFsc2UsInZ0cF91c2VHQTRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZW5oYW5jZWRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZHBvTERVIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InN0YW5kYXJkIiwidnRwX29iamVjdFByb3BlcnRpZXNGcm9tVmFyaWFibGUiOmZhbHNlLCJ2dHBfY29uc2VudCI6dHJ1ZSwidnRwX2FkdmFuY2VkTWF0Y2hpbmciOmZhbHNlLCJ0YWdfaWQiOjE2Nn0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXIiOnRydWUsInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZVNoaXBwaW5nRGF0YSI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uSWQiOiIxMDc4NDk3MTQ5MCIsInZ0cF9jb252ZXJzaW9uTGFiZWwiOiJMWlRXQ0xTVnlLOFpFT0sxMXBZbyIsInZ0cF9yZHAiOmZhbHNlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uc0NoZWNrYm94IjpmYWxzZSwidnRwX2VuYWJsZVJkcENoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlVHJhbnNwb3J0VXJsIjpmYWxzZSwidnRwX2VuYWJsZUN1c3RvbVBhcmFtcyI6ZmFsc2UsInZ0cF9lbmFibGVFdmVudFBhcmFtZXRlcnMiOnRydWUsInRhZ19pZCI6MTc3fSx7ImZ1bmN0aW9uIjoiX19hd2N0IiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2NvbnZlcnNpb25JZCI6IjE2ODMwMzQ1OTE1IiwidnRwX2NvbnZlcnNpb25MYWJlbCI6Im41R2VDTWlJOHBVYUVMdmxxdGstIiwidnRwX3JkcCI6ZmFsc2UsInZ0cF91cmwiOlsibWFjcm8iLDExXSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zQ2hlY2tib3giOmZhbHNlLCJ2dHBfZW5hYmxlUmRwQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVUcmFuc3BvcnRVcmwiOmZhbHNlLCJ2dHBfZW5hYmxlQ3VzdG9tUGFyYW1zIjpmYWxzZSwidnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycyI6dHJ1ZSwidGFnX2lkIjoxNzh9LHsiZnVuY3Rpb24iOiJfX2F3Y3QiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfb3JkZXJJZCI6WyJtYWNybyIsMjhdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uVmFsdWUiOlsibWFjcm8iLDI5XSwidnRwX2VuYWJsZVNoaXBwaW5nRGF0YSI6ZmFsc2UsInZ0cF9jb252ZXJzaW9uSWQiOiIxMDc4NDk3MTQ5MCIsInZ0cF9jdXJyZW5jeUNvZGUiOlsibWFjcm8iLDVdLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoiN2xGakNQcWpyZU1ZRU9LMTFwWW8iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjE3OX0seyJmdW5jdGlvbiI6Il9fZ2Fhd2UiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJnZW5lcmF0ZV9sZWFkIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMzBdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoxODB9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZXZlbnRTZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicGFyYW1ldGVyIiwic291cmNlIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDMxXV1dLCJ2dHBfZXZlbnROYW1lIjoiYmVnaW5fY2hlY2tvdXQiLCJ2dHBfbWVhc3VyZW1lbnRJZE92ZXJyaWRlIjpbIm1hY3JvIiwzMF0sInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjE4MX0seyJmdW5jdGlvbiI6Il9fZ2Fhd2UiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudFNldHRpbmdzVGFibGUiOlsibGlzdCIsWyJtYXAiLCJwYXJhbWV0ZXIiLCJ0cmFuc2FjdGlvbl9pZCIsInBhcmFtZXRlclZhbHVlIixbIm1hY3JvIiwyOF1dLFsibWFwIiwicGFyYW1ldGVyIiwidmFsdWUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMjldXSxbIm1hcCIsInBhcmFtZXRlciIsImN1cnJlbmN5IiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDVdXSxbIm1hcCIsInBhcmFtZXRlciIsInByb3ZpZGVyX25hbWUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMzJdXSxbIm1hcCIsInBhcmFtZXRlciIsInBsYXRmb3JtX25hbWUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsMzNdXV0sInZ0cF9ldmVudE5hbWUiOiJwdXJjaGFzZSIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOlsibWFjcm8iLDMwXSwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6MTgyfSx7ImZ1bmN0aW9uIjoiX19jdnRfNVJNM1EiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOlsibWFjcm8iLDEyXSwidnRwX3N0YW5kYXJkRXZlbnROYW1lIjoiTGVhZCIsInZ0cF9kaXNhYmxlQXV0b0NvbmZpZyI6ZmFsc2UsInZ0cF91c2VHQTRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZW5oYW5jZWRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZHBvTERVIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InN0YW5kYXJkIiwidnRwX29iamVjdFByb3BlcnRpZXNGcm9tVmFyaWFibGUiOmZhbHNlLCJ2dHBfY29uc2VudCI6dHJ1ZSwidnRwX2FkdmFuY2VkTWF0Y2hpbmciOmZhbHNlLCJ0YWdfaWQiOjE4M30seyJmdW5jdGlvbiI6Il9fY3Z0XzVSTTNRIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfZGlzYWJsZVB1c2hTdGF0ZSI6ZmFsc2UsInZ0cF9waXhlbElkIjpbIm1hY3JvIiwxMl0sInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IkluaXRpYXRlQ2hlY2tvdXQiLCJ2dHBfZGlzYWJsZUF1dG9Db25maWciOmZhbHNlLCJ2dHBfdXNlR0E0RWNvbW1lcmNlIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjoxODR9LHsiZnVuY3Rpb24iOiJfX2N2dF81Uk0zUSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2Rpc2FibGVQdXNoU3RhdGUiOmZhbHNlLCJ2dHBfcGl4ZWxJZCI6WyJtYWNybyIsMTJdLCJ2dHBfb2JqZWN0UHJvcGVydHlMaXN0IjpbImxpc3QiLFsibWFwIiwibmFtZSIsInZhbHVlIiwidmFsdWUiLFsibWFjcm8iLDI5XV0sWyJtYXAiLCJuYW1lIiwiY3VycmVuY3kiLCJ2YWx1ZSIsWyJtYWNybyIsNV1dXSwidnRwX3N0YW5kYXJkRXZlbnROYW1lIjoiUHVyY2hhc2UiLCJ2dHBfZGlzYWJsZUF1dG9Db25maWciOmZhbHNlLCJ2dHBfdXNlR0E0RWNvbW1lcmNlIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjoxODV9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sInRlYXJkb3duX3RhZ3MiOlsibGlzdCIsWyJ0YWciLDEwMywwXV0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfc2VuZEVjb21tZXJjZURhdGEiOmZhbHNlLCJ2dHBfZXZlbnRTZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicGFyYW1ldGVyIiwidmFsdWUiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNF1dLFsibWFwIiwicGFyYW1ldGVyIiwiY3VycmVuY3kiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNV1dLFsibWFwIiwicGFyYW1ldGVyIiwiaXRlbXMiLCJwYXJhbWV0ZXJWYWx1ZSIsWyJtYWNybyIsNl1dXSwidnRwX2V2ZW50TmFtZSI6InB1cmNoYXNlIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMThdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoxODh9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sInRlYXJkb3duX3RhZ3MiOlsibGlzdCIsWyJ0YWciLDE1LDJdXSwib25jZV9wZXJfbG9hZCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6ImJlZ2luX2NoZWNrb3V0IiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsN10sInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjE4OX0seyJmdW5jdGlvbiI6Il9fZ29vZ3RhZyIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3RhZ0lkIjoiRy04VlYyS0IzUDc3IiwidGFnX2lkIjoxOTF9LHsiZnVuY3Rpb24iOiJfX2dvb2d0YWciLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF90YWdJZCI6IkctODhQV1cyMDIxRCIsInRhZ19pZCI6MTkyfSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJ0ZWFyZG93bl90YWdzIjpbImxpc3QiLFsidGFnIiwxMDMsMF1dLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsInZhbHVlIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDRdXSxbIm1hcCIsInBhcmFtZXRlciIsImN1cnJlbmN5IiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDVdXSxbIm1hcCIsInBhcmFtZXRlciIsIml0ZW1zIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDZdXV0sInZ0cF9ldmVudE5hbWUiOiJwdXJjaGFzZV9mb3JleCIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOlsibWFjcm8iLDE4XSwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6MTkzfSx7ImZ1bmN0aW9uIjoiX19jdnRfNVJNM1EiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOiI4NDE3MTkzNTQ1NTU2MDciLCJ2dHBfc3RhbmRhcmRFdmVudE5hbWUiOiJQYWdlVmlldyIsInZ0cF9kaXNhYmxlQXV0b0NvbmZpZyI6ZmFsc2UsInZ0cF91c2VHQTRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZW5oYW5jZWRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZHBvTERVIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InN0YW5kYXJkIiwidnRwX29iamVjdFByb3BlcnRpZXNGcm9tVmFyaWFibGUiOmZhbHNlLCJ2dHBfY29uc2VudCI6dHJ1ZSwidnRwX2FkdmFuY2VkTWF0Y2hpbmciOmZhbHNlLCJ0YWdfaWQiOjE5NX0seyJmdW5jdGlvbiI6Il9fZ29vZ3RhZyIsIm1ldGFkYXRhIjpbIm1hcCJdLCJ2dHBfdGFnSWQiOiJBVy0xMDg1NDc1NzUyNiIsInRhZ19pZCI6MTk5fSx7ImZ1bmN0aW9uIjoiX19nYWF3ZSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJ0ZWFyZG93bl90YWdzIjpbImxpc3QiLFsidGFnIiwxMDMsMF1dLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50U2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInBhcmFtZXRlciIsInZhbHVlIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDRdXSxbIm1hcCIsInBhcmFtZXRlciIsImN1cnJlbmN5IiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDVdXSxbIm1hcCIsInBhcmFtZXRlciIsIml0ZW1zIiwicGFyYW1ldGVyVmFsdWUiLFsibWFjcm8iLDZdXV0sInZ0cF9ldmVudE5hbWUiOiJwdXJjaGFzZSIsInZ0cF9tZWFzdXJlbWVudElkT3ZlcnJpZGUiOlsibWFjcm8iLDM0XSwidnRwX2VuYWJsZVVzZXJQcm9wZXJ0aWVzIjp0cnVlLCJ2dHBfZW5hYmxlRXVpZCI6dHJ1ZSwidnRwX21pZ3JhdGVkVG9WMiI6dHJ1ZSwidnRwX2RlbW9WMiI6ZmFsc2UsInRhZ19pZCI6MjAzfSx7ImZ1bmN0aW9uIjoiX19nb29ndGFnIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfdGFnSWQiOlsibWFjcm8iLDM0XSwidGFnX2lkIjoyMDV9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJsZWFkIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMzRdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoyMDZ9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sInRlYXJkb3duX3RhZ3MiOlsibGlzdCIsWyJ0YWciLDY0LDJdXSwib25jZV9wZXJfbG9hZCI6dHJ1ZSwidnRwX3NlbmRFY29tbWVyY2VEYXRhIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6ImJlZ2luX2NoZWNrb3V0IiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMzRdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoyMDd9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJiZWdpbl9jaGVja291dF9mdXR1cmVzIiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMThdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoyMDh9LHsiZnVuY3Rpb24iOiJfX2dhYXdlIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJsZWFkX2Z1dHVyZXMiLCJ2dHBfbWVhc3VyZW1lbnRJZE92ZXJyaWRlIjpbIm1hY3JvIiwxOF0sInZ0cF9lbmFibGVVc2VyUHJvcGVydGllcyI6dHJ1ZSwidnRwX2VuYWJsZUV1aWQiOnRydWUsInZ0cF9taWdyYXRlZFRvVjIiOnRydWUsInZ0cF9kZW1vVjIiOmZhbHNlLCJ0YWdfaWQiOjIwOX0seyJmdW5jdGlvbiI6Il9fZ2Fhd2UiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9zZW5kRWNvbW1lcmNlRGF0YSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJsZWFkX2ZvcmV4IiwidnRwX21lYXN1cmVtZW50SWRPdmVycmlkZSI6WyJtYWNybyIsMThdLCJ2dHBfZW5hYmxlVXNlclByb3BlcnRpZXMiOnRydWUsInZ0cF9lbmFibGVFdWlkIjp0cnVlLCJ2dHBfbWlncmF0ZWRUb1YyIjp0cnVlLCJ2dHBfZGVtb1YyIjpmYWxzZSwidGFnX2lkIjoyMTB9LHsiZnVuY3Rpb24iOiJfX2F3Y3QiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9wcm9kdWN0UmVwb3J0aW5nRGF0YVNvdXJjZSI6IkpTT04iLCJ2dHBfb3JkZXJJZCI6WyJtYWNybyIsOV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nIjp0cnVlLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2VuYWJsZU5ld0N1c3RvbWVyUmVwb3J0aW5nIjpmYWxzZSwidnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXIiOnRydWUsInZ0cF9jb252ZXJzaW9uVmFsdWUiOlsibWFjcm8iLDRdLCJ2dHBfY29udmVyc2lvbkNvb2tpZVByZWZpeCI6Il9nY2wiLCJ2dHBfY29udmVyc2lvbklkIjpbIm1hY3JvIiwzNV0sInZ0cF9jdXJyZW5jeUNvZGUiOlsibWFjcm8iLDVdLCJ2dHBfaXRlbXMiOlsibWFjcm8iLDZdLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoibjVHZUNNaUk4cFVhRUx2bHF0ay0iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjIxMX0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9sb2FkIjp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlU2hpcHBpbmdEYXRhIjpmYWxzZSwidnRwX2NvbnZlcnNpb25JZCI6WyJtYWNybyIsMzVdLCJ2dHBfY29udmVyc2lvbkxhYmVsIjoiX2ZVMUNQS1o4TDRjRUx2bHF0ay0iLCJ2dHBfcmRwIjpmYWxzZSwidnRwX3VybCI6WyJtYWNybyIsMTFdLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmdDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbnNDaGVja2JveCI6ZmFsc2UsInZ0cF9lbmFibGVSZHBDaGVja2JveCI6dHJ1ZSwidnRwX2VuYWJsZVRyYW5zcG9ydFVybCI6ZmFsc2UsInZ0cF9lbmFibGVDdXN0b21QYXJhbXMiOmZhbHNlLCJ2dHBfZW5hYmxlRXZlbnRQYXJhbWV0ZXJzIjp0cnVlLCJ0YWdfaWQiOjIxMn0seyJmdW5jdGlvbiI6Il9fYXdjdCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX3Byb2R1Y3RSZXBvcnRpbmdEYXRhU291cmNlIjoiSlNPTiIsInZ0cF9vcmRlcklkIjpbIm1hY3JvIiw5XSwidnRwX2VuYWJsZVByb2R1Y3RSZXBvcnRpbmciOnRydWUsInZ0cF9lbmFibGVTaGlwcGluZ0RhdGEiOmZhbHNlLCJ2dHBfZW5hYmxlTmV3Q3VzdG9tZXJSZXBvcnRpbmciOmZhbHNlLCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciI6dHJ1ZSwidnRwX2NvbnZlcnNpb25WYWx1ZSI6WyJtYWNybyIsNF0sInZ0cF9jb252ZXJzaW9uQ29va2llUHJlZml4IjoiX2djbCIsInZ0cF9jb252ZXJzaW9uSWQiOlsibWFjcm8iLDM1XSwidnRwX2N1cnJlbmN5Q29kZSI6WyJtYWNybyIsNV0sInZ0cF9pdGVtcyI6WyJtYWNybyIsNl0sInZ0cF9jb252ZXJzaW9uTGFiZWwiOiI3RUMxQ095QzdaZ2FFTHZscXRrLSIsInZ0cF9yZHAiOmZhbHNlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uc0NoZWNrYm94IjpmYWxzZSwidnRwX2VuYWJsZVJkcENoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlVHJhbnNwb3J0VXJsIjpmYWxzZSwidnRwX2VuYWJsZUN1c3RvbVBhcmFtcyI6ZmFsc2UsInZ0cF9lbmFibGVFdmVudFBhcmFtZXRlcnMiOnRydWUsInRhZ19pZCI6MjEzfSx7ImZ1bmN0aW9uIjoiX19jdnRfNVJNM1EiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOlsibWFjcm8iLDM2XSwidnRwX29iamVjdFByb3BlcnR5TGlzdCI6WyJsaXN0IixbIm1hcCIsIm5hbWUiLCJ2YWx1ZSIsInZhbHVlIixbIm1hY3JvIiw0XV0sWyJtYXAiLCJuYW1lIiwiY3VycmVuY3kiLCJ2YWx1ZSIsWyJtYWNybyIsNV1dLFsibWFwIiwibmFtZSIsInRyYW5zYWN0aW9uX2lkIiwidmFsdWUiLFsibWFjcm8iLDldXV0sInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IlB1cmNoYXNlIiwidnRwX2Rpc2FibGVBdXRvQ29uZmlnIjpmYWxzZSwidnRwX3VzZUdBNEVjb21tZXJjZSI6ZmFsc2UsInZ0cF9lbmhhbmNlZEVjb21tZXJjZSI6ZmFsc2UsInZ0cF9kcG9MRFUiOmZhbHNlLCJ2dHBfZXZlbnROYW1lIjoic3RhbmRhcmQiLCJ2dHBfb2JqZWN0UHJvcGVydGllc0Zyb21WYXJpYWJsZSI6ZmFsc2UsInZ0cF9jb25zZW50Ijp0cnVlLCJ2dHBfYWR2YW5jZWRNYXRjaGluZyI6ZmFsc2UsInRhZ19pZCI6MjE0fSx7ImZ1bmN0aW9uIjoiX19jdnRfNVJNM1EiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOlsibWFjcm8iLDM2XSwidnRwX29iamVjdFByb3BlcnR5TGlzdCI6WyJsaXN0IixbIm1hcCIsIm5hbWUiLCJ2YWx1ZSIsInZhbHVlIixbIm1hY3JvIiw0XV0sWyJtYXAiLCJuYW1lIiwiY3VycmVuY3kiLCJ2YWx1ZSIsWyJtYWNybyIsNV1dLFsibWFwIiwibmFtZSIsInRyYW5zYWN0aW9uX2lkIiwidmFsdWUiLFsibWFjcm8iLDldXV0sInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IkluaXRpYXRlQ2hlY2tvdXQiLCJ2dHBfZGlzYWJsZUF1dG9Db25maWciOmZhbHNlLCJ2dHBfdXNlR0E0RWNvbW1lcmNlIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjoyMTV9LHsiZnVuY3Rpb24iOiJfX2N2dF81Uk0zUSIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2Rpc2FibGVQdXNoU3RhdGUiOmZhbHNlLCJ2dHBfcGl4ZWxJZCI6WyJtYWNybyIsMTJdLCJ2dHBfb2JqZWN0UHJvcGVydHlMaXN0IjpbImxpc3QiLFsibWFwIiwibmFtZSIsInZhbHVlIiwidmFsdWUiLFsibWFjcm8iLDRdXSxbIm1hcCIsIm5hbWUiLCJjdXJyZW5jeSIsInZhbHVlIixbIm1hY3JvIiw1XV0sWyJtYXAiLCJuYW1lIiwidHJhbnNhY3Rpb25faWQiLCJ2YWx1ZSIsWyJtYWNybyIsOV1dXSwidnRwX3N0YW5kYXJkRXZlbnROYW1lIjoiTGVhZCIsInZ0cF9kaXNhYmxlQXV0b0NvbmZpZyI6ZmFsc2UsInZ0cF91c2VHQTRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZW5oYW5jZWRFY29tbWVyY2UiOmZhbHNlLCJ2dHBfZHBvTERVIjpmYWxzZSwidnRwX2V2ZW50TmFtZSI6InN0YW5kYXJkIiwidnRwX29iamVjdFByb3BlcnRpZXNGcm9tVmFyaWFibGUiOmZhbHNlLCJ2dHBfY29uc2VudCI6dHJ1ZSwidnRwX2FkdmFuY2VkTWF0Y2hpbmciOmZhbHNlLCJ0YWdfaWQiOjIxNn0seyJmdW5jdGlvbiI6Il9fY3Z0XzVSTTNRIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2xvYWQiOnRydWUsInZ0cF9kaXNhYmxlUHVzaFN0YXRlIjpmYWxzZSwidnRwX3BpeGVsSWQiOlsibWFjcm8iLDM2XSwidnRwX29iamVjdFByb3BlcnR5TGlzdCI6WyJsaXN0IixbIm1hcCIsIm5hbWUiLCJ2YWx1ZSIsInZhbHVlIixbIm1hY3JvIiw0XV0sWyJtYXAiLCJuYW1lIiwiY3VycmVuY3kiLCJ2YWx1ZSIsWyJtYWNybyIsNV1dLFsibWFwIiwibmFtZSIsInRyYW5zYWN0aW9uX2lkIiwidmFsdWUiLFsibWFjcm8iLDldXV0sInZ0cF9zdGFuZGFyZEV2ZW50TmFtZSI6IkxlYWQiLCJ2dHBfZGlzYWJsZUF1dG9Db25maWciOmZhbHNlLCJ2dHBfdXNlR0E0RWNvbW1lcmNlIjpmYWxzZSwidnRwX2VuaGFuY2VkRWNvbW1lcmNlIjpmYWxzZSwidnRwX2Rwb0xEVSI6ZmFsc2UsInZ0cF9ldmVudE5hbWUiOiJzdGFuZGFyZCIsInZ0cF9vYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIjpmYWxzZSwidnRwX2NvbnNlbnQiOnRydWUsInZ0cF9hZHZhbmNlZE1hdGNoaW5nIjpmYWxzZSwidGFnX2lkIjoyMTd9LHsiZnVuY3Rpb24iOiJfX2F3Y3QiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyIjp0cnVlLCJ2dHBfZW5hYmxlUHJvZHVjdFJlcG9ydGluZyI6ZmFsc2UsInZ0cF9lbmFibGVTaGlwcGluZ0RhdGEiOmZhbHNlLCJ2dHBfY29udmVyc2lvbklkIjpbIm1hY3JvIiwzNV0sInZ0cF9jb252ZXJzaW9uTGFiZWwiOiJQZ2FiQ0xubXRkVWNFTHZscXRrLSIsInZ0cF9yZHAiOmZhbHNlLCJ2dHBfdXJsIjpbIm1hY3JvIiwxMV0sInZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nQ2hlY2tib3giOnRydWUsInZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZ0NoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlRW5oYW5jZWRDb252ZXJzaW9uc0NoZWNrYm94IjpmYWxzZSwidnRwX2VuYWJsZVJkcENoZWNrYm94Ijp0cnVlLCJ2dHBfZW5hYmxlVHJhbnNwb3J0VXJsIjpmYWxzZSwidnRwX2VuYWJsZUN1c3RvbVBhcmFtcyI6ZmFsc2UsInZ0cF9lbmFibGVFdmVudFBhcmFtZXRlcnMiOnRydWUsInRhZ19pZCI6MjE4fSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjE5fSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjIwfSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjIxfSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjIyfSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjIzfSx7ImZ1bmN0aW9uIjoiX19jbCIsInRhZ19pZCI6MjI0fSx7ImZ1bmN0aW9uIjoiX19obCIsInRhZ19pZCI6MjI1fSx7ImZ1bmN0aW9uIjoiX19sY2wiLCJ2dHBfd2FpdEZvclRhZ3MiOmZhbHNlLCJ2dHBfY2hlY2tWYWxpZGF0aW9uIjpmYWxzZSwidnRwX3VuaXF1ZVRyaWdnZXJJZCI6IjUyNjE1MTM5Xzc5IiwidGFnX2lkIjoyMjZ9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMjd9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMjh9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMjl9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMzB9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMzF9LHsiZnVuY3Rpb24iOiJfX2xjbCIsInZ0cF93YWl0Rm9yVGFncyI6ZmFsc2UsInZ0cF9jaGVja1ZhbGlkYXRpb24iOmZhbHNlLCJ2dHBfdW5pcXVlVHJpZ2dlcklkIjoiNTI2MTUxMzlfMTI1IiwidGFnX2lkIjoyMzJ9LHsiZnVuY3Rpb24iOiJfX2xjbCIsInZ0cF93YWl0Rm9yVGFncyI6ZmFsc2UsInZ0cF9jaGVja1ZhbGlkYXRpb24iOmZhbHNlLCJ2dHBfdW5pcXVlVHJpZ2dlcklkIjoiNTI2MTUxMzlfMTI3IiwidGFnX2lkIjoyMzN9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMzR9LHsiZnVuY3Rpb24iOiJfX2V2bCIsInZ0cF91c2VPblNjcmVlbkR1cmF0aW9uIjpmYWxzZSwidnRwX3VzZURvbUNoYW5nZUxpc3RlbmVyIjpmYWxzZSwidnRwX2VsZW1lbnRTZWxlY3RvciI6ImJvZHkgXHUwMDNFIGIyY29yZS1yb290IFx1MDAzRSBmZWF0dXJlLXZlcmlmaWNhdGlvbi1vbmJvYXJkaW5nIFx1MDAzRSBzZWN0aW9uIFx1MDAzRSBkaXYgXHUwMDNFIGRpdi5idXR0b24td3JhcCBcdTAwM0UgZHMtYnV0dG9uIFx1MDAzRSBidXR0b24gXHUwMDNFIHNwYW4iLCJ2dHBfZmlyaW5nRnJlcXVlbmN5IjoiT05DRSIsInZ0cF9zZWxlY3RvclR5cGUiOiJDU1MiLCJ2dHBfb25TY3JlZW5SYXRpbyI6IjEiLCJ2dHBfdW5pcXVlVHJpZ2dlcklkIjoiNTI2MTUxMzlfMTY4IiwidGFnX2lkIjoyMzV9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMzZ9LHsiZnVuY3Rpb24iOiJfX2NsIiwidGFnX2lkIjoyMzd9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXG5cdTAwM0NzY3JpcHQgYXN5bmMgZGF0YS1ndG1zcmM9XCJodHRwczpcL1wvd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tXC9ndGFnXC9qcz9pZD1BVy0xMDc4NDk3MTQ5MFwiIHR5cGU9XCJ0ZXh0XC9ndG1zY3JpcHRcIlx1MDAzRVx1MDAzQ1wvc2NyaXB0XHUwMDNFXG5cdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFd2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKX1ndGFnKFwianNcIixuZXcgRGF0ZSk7Z3RhZyhcImNvbmZpZ1wiLFwiQVctMTA3ODQ5NzE0OTBcIik7XHUwMDNDXC9zY3JpcHRcdTAwM0VcbiIsInZ0cF9zdXBwb3J0RG9jdW1lbnRXcml0ZSI6ZmFsc2UsInZ0cF9lbmFibGVJZnJhbWVNb2RlIjpmYWxzZSwidnRwX2VuYWJsZUVkaXRKc01hY3JvQmVoYXZpb3IiOmZhbHNlLCJ0YWdfaWQiOjd9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXG5cdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFZ3RhZyhcImV2ZW50XCIsXCJjb252ZXJzaW9uXCIse3NlbmRfdG86XCJBVy0xMDc4NDk3MTQ5MFwvdFhoZUNPcldwdm9DRU9LMTFwWW9cIn0pO1x1MDAzQ1wvc2NyaXB0XHUwMDNFXG4iLCJ2dHBfc3VwcG9ydERvY3VtZW50V3JpdGUiOmZhbHNlLCJ2dHBfZW5hYmxlSWZyYW1lTW9kZSI6ZmFsc2UsInZ0cF9lbmFibGVFZGl0SnNNYWNyb0JlaGF2aW9yIjpmYWxzZSwidGFnX2lkIjo4fSx7ImZ1bmN0aW9uIjoiX19odG1sIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfaHRtbCI6Ilx1MDAzQ3NjcmlwdCB0eXBlPVwidGV4dFwvZ3Rtc2NyaXB0XCJcdTAwM0V2YXIgaGVhZD1kb2N1bWVudC5oZWFkLHNjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO3NjcmlwdC50eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiO3NjcmlwdC5zcmM9XCJodHRwczpcL1wvdC50eDNtYXJrZXRzLmNvbVwvdjFcL2xzdFwvdW5pdmVyc2FsLXNjcmlwdD9waFxceDNkYzM0NmRiNGIzZWVhZTFkMTc0ZjkyMWFlZjhiZmFmMDVlZWY4MjkxYzI2MmMyMDk5YzhjMDY0YzUxOGRhMjA3NFxceDI2dGFnXFx4M2QhY2xpY2tlZFxceDI2cmVmX3VybFxceDNkXCIrZW5jb2RlVVJJKGRvY3VtZW50LlVSTCk7aGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1x1MDAzQ1wvc2NyaXB0XHUwMDNFIiwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6MjF9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJ2dHBfaHRtbCI6IlxuXHRcdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFIWZ1bmN0aW9uKGQsZyxlKXtkLlRpa3Rva0FuYWx5dGljc09iamVjdD1lO3ZhciBhPWRbZV09ZFtlXXx8W107YS5tZXRob2RzPVwicGFnZSB0cmFjayBpZGVudGlmeSBpbnN0YW5jZXMgZGVidWcgb24gb2ZmIG9uY2UgcmVhZHkgYWxpYXMgZ3JvdXAgZW5hYmxlQ29va2llIGRpc2FibGVDb29raWVcIi5zcGxpdChcIiBcIik7YS5zZXRBbmREZWZlcj1mdW5jdGlvbihiLGMpe2JbY109ZnVuY3Rpb24oKXtiLnB1c2goW2NdLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpKX19O2ZvcihkPTA7ZFx1MDAzQ2EubWV0aG9kcy5sZW5ndGg7ZCsrKWEuc2V0QW5kRGVmZXIoYSxhLm1ldGhvZHNbZF0pO2EuaW5zdGFuY2U9ZnVuY3Rpb24oYil7Yj1hLl9pW2JdfHxbXTtmb3IodmFyIGM9MDtjXHUwMDNDYS5tZXRob2RzLmxlbmd0aDtjKyspYS5zZXRBbmREZWZlcihiLGEubWV0aG9kc1tjXSk7cmV0dXJuIGJ9O2EubG9hZD1mdW5jdGlvbihiLGMpe3ZhciBmPVwiaHR0cHM6XC9cL2FuYWx5dGljcy50aWt0b2suY29tXC9pMThuXC9waXhlbFwvZXZlbnRzLmpzXCI7XG5hLl9pPWEuX2l8fHt9O2EuX2lbYl09W107YS5faVtiXS5fdT1mO2EuX3Q9YS5fdHx8e307YS5fdFtiXT0rbmV3IERhdGU7YS5fbz1hLl9vfHx7fTthLl9vW2JdPWN8fHt9O2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtjLnR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI7Yy5hc3luYz0hMDtjLnNyYz1mK1wiP3Nka2lkXFx4M2RcIitiK1wiXFx4MjZsaWJcXHgzZFwiK2U7Yj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXTtiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMsYil9O2EubG9hZChcIkNEMlQ1S1JDNzdVOVVBUTc4NjIwXCIpO2EucGFnZSgpfSh3aW5kb3csZG9jdW1lbnQsXCJ0dHFcIik7XHUwMDNDXC9zY3JpcHRcdTAwM0Vcblx0IiwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6MjJ9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXHUwMDNDc2NyaXB0IHR5cGU9XCJ0ZXh0XC9ndG1zY3JpcHRcIlx1MDAzRSFmdW5jdGlvbihkLGcsZSl7ZC5UaWt0b2tBbmFseXRpY3NPYmplY3Q9ZTt2YXIgYT1kW2VdPWRbZV18fFtdO2EubWV0aG9kcz1cInBhZ2UgdHJhY2sgaWRlbnRpZnkgaW5zdGFuY2VzIGRlYnVnIG9uIG9mZiBvbmNlIHJlYWR5IGFsaWFzIGdyb3VwIGVuYWJsZUNvb2tpZSBkaXNhYmxlQ29va2llXCIuc3BsaXQoXCIgXCIpO2Euc2V0QW5kRGVmZXI9ZnVuY3Rpb24oYixjKXtiW2NdPWZ1bmN0aW9uKCl7Yi5wdXNoKFtjXS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKSl9fTtmb3IoZD0wO2RcdTAwM0NhLm1ldGhvZHMubGVuZ3RoO2QrKylhLnNldEFuZERlZmVyKGEsYS5tZXRob2RzW2RdKTthLmluc3RhbmNlPWZ1bmN0aW9uKGIpe2I9YS5faVtiXXx8W107Zm9yKHZhciBjPTA7Y1x1MDAzQ2EubWV0aG9kcy5sZW5ndGg7YysrKWEuc2V0QW5kRGVmZXIoYixhLm1ldGhvZHNbY10pO3JldHVybiBifTthLmxvYWQ9ZnVuY3Rpb24oYixjKXt2YXIgZj1cImh0dHBzOlwvXC9hbmFseXRpY3MudGlrdG9rLmNvbVwvaTE4blwvcGl4ZWxcL2V2ZW50cy5qc1wiO1xuYS5faT1hLl9pfHx7fTthLl9pW2JdPVtdO2EuX2lbYl0uX3U9ZjthLl90PWEuX3R8fHt9O2EuX3RbYl09K25ldyBEYXRlO2EuX289YS5fb3x8e307YS5fb1tiXT1jfHx7fTtjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7Yy50eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiO2MuYXN5bmM9ITA7Yy5zcmM9ZitcIj9zZGtpZFxceDNkXCIrYitcIlxceDI2bGliXFx4M2RcIitlO2I9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIilbMF07Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGIpfTthLmxvYWQoXCJDSE44RjBCQzc3VUJKQUVCNkE1R1wiKTthLnBhZ2UoKX0od2luZG93LGRvY3VtZW50LFwidHRxXCIpO1x1MDAzQ1wvc2NyaXB0XHUwMDNFIiwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6NDV9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXHUwMDNDc2NyaXB0IHR5cGU9XCJ0ZXh0XC9ndG1zY3JpcHRcIlx1MDAzRXdpbmRvdy51ZXRxPXdpbmRvdy51ZXRxfHxbXTt3aW5kb3cudWV0cS5wdXNoKFwiZXZlbnRcIixcIlwiLHtyZXZlbnVlX3ZhbHVlOjEsY3VycmVuY3k6XCJVU0RcIn0pO1x1MDAzQ1wvc2NyaXB0XHUwMDNFIiwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6NDh9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXHUwMDNDc2NyaXB0IHR5cGU9XCJ0ZXh0XC9ndG1zY3JpcHRcIlx1MDAzRWZicShcInRyYWNrXCIsXCJDbGllbnRlIHBvdGVuY2lhbFwiLHt9KTtcdTAwM0NcL3NjcmlwdFx1MDAzRSIsInZ0cF9zdXBwb3J0RG9jdW1lbnRXcml0ZSI6ZmFsc2UsInZ0cF9lbmFibGVJZnJhbWVNb2RlIjpmYWxzZSwidnRwX2VuYWJsZUVkaXRKc01hY3JvQmVoYXZpb3IiOmZhbHNlLCJ0YWdfaWQiOjU2fSx7ImZ1bmN0aW9uIjoiX19odG1sIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfaHRtbCI6Ilx1MDAzQ3NjcmlwdCB0eXBlPVwidGV4dFwvZ3Rtc2NyaXB0XCJcdTAwM0VmYnEoXCJ0cmFja1wiLFwiQ29udGFjdCBhZmZpbGlhdGVcIix7fSk7XHUwMDNDXC9zY3JpcHRcdTAwM0UiLCJ2dHBfc3VwcG9ydERvY3VtZW50V3JpdGUiOmZhbHNlLCJ2dHBfZW5hYmxlSWZyYW1lTW9kZSI6ZmFsc2UsInZ0cF9lbmFibGVFZGl0SnNNYWNyb0JlaGF2aW9yIjpmYWxzZSwidGFnX2lkIjo1OH0seyJmdW5jdGlvbiI6Il9faHRtbCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2h0bWwiOiJcdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFZmJxKFwidHJhY2tcIixcIkNsaWVudGUgcG90ZW5jaWFsXCIse30pO1x1MDAzQ1wvc2NyaXB0XHUwMDNFIiwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6NjB9LHsiZnVuY3Rpb24iOiJfX2h0bWwiLCJtZXRhZGF0YSI6WyJtYXAiXSwib25jZV9wZXJfZXZlbnQiOnRydWUsInZ0cF9odG1sIjoiXG5cblx1MDAzQ3NjcmlwdCB0eXBlPVwidGV4dFwvZ3Rtc2NyaXB0XCJcdTAwM0UoZnVuY3Rpb24oKXt2YXIgYz1cIjQuMC4wXCIsaD1cIjM3NzczXCIsaz1cInRlcm1cXHgzZHZhbHVlXCI7dHJ5e3ZhciBmPVwiXCIhPT10b3AuZG9jdW1lbnQucmVmZXJlcj9lbmNvZGVVUklDb21wb25lbnQodG9wLmRvY3VtZW50LnJlZmVycmVyLnN1YnN0cmluZygwLDIwNDgpKTpcIlwifWNhdGNoKGcpe2Y9bnVsbCE9PWRvY3VtZW50LnJlZmVycmVyP2RvY3VtZW50LnJlZmVycmVyLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsMjA0OCk6XCJcIn10cnl7dmFyIGE9d2luZG93XHUwMDI2XHUwMDI2d2luZG93LnRvcFx1MDAyNlx1MDAyNmRvY3VtZW50LmxvY2F0aW9uXHUwMDI2XHUwMDI2d2luZG93LnRvcC5sb2NhdGlvbj09PWRvY3VtZW50LmxvY2F0aW9uP2RvY3VtZW50LmxvY2F0aW9uOndpbmRvd1x1MDAyNlx1MDAyNndpbmRvdy50b3BcdTAwMjZcdTAwMjZ3aW5kb3cudG9wLmxvY2F0aW9uXHUwMDI2XHUwMDI2XCJcIiE9PXdpbmRvdy50b3AubG9jYXRpb24/d2luZG93LnRvcC5sb2NhdGlvbjpkb2N1bWVudC5sb2NhdGlvbn1jYXRjaChnKXthPWRvY3VtZW50LmxvY2F0aW9ufXRyeXt2YXIgZD1cIlwiIT09cGFyZW50LmxvY2F0aW9uLmhyZWY/XG5lbmNvZGVVUklDb21wb25lbnQocGFyZW50LmxvY2F0aW9uLmhyZWYudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwyMDQ4KSk6XCJcIn1jYXRjaChnKXt0cnl7ZD1udWxsIT09YT9lbmNvZGVVUklDb21wb25lbnQoYS50b1N0cmluZygpLnN1YnN0cmluZygwLDIwNDgpKTpcIlwifWNhdGNoKGwpe2Q9XCJcIn19dmFyIGU7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO2I9TnVtYmVyKGIubGVuZ3RoKS0xO2I9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIilbYl07XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBlXHUwMDI2XHUwMDI2KGU9TWF0aC5mbG9vcigxRTE3Kk1hdGgucmFuZG9tKCkpKTtjPVwiZHgubW91bnRhaW4uY29tXC9zcHg/ZHh2ZXJcXHgzZFwiK2MrXCJcXHgyNnNoYWlkXFx4M2RcIitoK1wiXFx4MjZ0ZHJcXHgzZFwiK2YrXCJcXHgyNnBsaFxceDNkXCIrZCtcIlxceDI2Y2JcXHgzZFwiK2UrazthLnR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI7XG5hLnNyYz0oXCJodHRwczpcIj09PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sP1wiaHR0cHM6XC9cL1wiOlwiaHR0cDpcL1wvXCIpK2M7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSkoKTtcdTAwM0NcL3NjcmlwdFx1MDAzRSIsInZ0cF9zdXBwb3J0RG9jdW1lbnRXcml0ZSI6ZmFsc2UsInZ0cF9lbmFibGVJZnJhbWVNb2RlIjpmYWxzZSwidnRwX2VuYWJsZUVkaXRKc01hY3JvQmVoYXZpb3IiOmZhbHNlLCJ0YWdfaWQiOjYzfSx7ImZ1bmN0aW9uIjoiX19odG1sIiwibWV0YWRhdGEiOlsibWFwIl0sIm9uY2VfcGVyX2V2ZW50Ijp0cnVlLCJ2dHBfaHRtbCI6WyJ0ZW1wbGF0ZSIsIlxuXG5cdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFKGZ1bmN0aW9uKCl7dmFyIGc9XCIzNzc3M1wiLGg9IixbImVzY2FwZSIsWyJtYWNybyIsMzhdLDgsMTZdLCIsaz0iLFsiZXNjYXBlIixbIm1hY3JvIiwzOV0sOCwxNl0sIixsPVwiXCIsbT1cIlwiLG49XCJcIixwPVwiXCIscT1cIlwiLHI9XCJcIjt0cnl7dmFyIGM9XCJcIiE9PXRvcC5kb2N1bWVudC5yZWZlcmVyP2VuY29kZVVSSUNvbXBvbmVudCh0b3AuZG9jdW1lbnQucmVmZXJyZXIuc3Vic3RyaW5nKDAsNTEyKSk6XCJcIn1jYXRjaChmKXtjPW51bGwhPT1kb2N1bWVudC5yZWZlcnJlcj9kb2N1bWVudC5yZWZlcnJlci50b1N0cmluZygpLnN1YnN0cmluZygwLDUxMik6XCJcIn10cnl7dmFyIGE9d2luZG93XHUwMDI2XHUwMDI2d2luZG93LnRvcFx1MDAyNlx1MDAyNmRvY3VtZW50LmxvY2F0aW9uXHUwMDI2XHUwMDI2d2luZG93LnRvcC5sb2NhdGlvbj09PWRvY3VtZW50LmxvY2F0aW9uP2RvY3VtZW50LmxvY2F0aW9uOndpbmRvd1x1MDAyNlx1MDAyNndpbmRvdy50b3BcdTAwMjZcdTAwMjZ3aW5kb3cudG9wLmxvY2F0aW9uXHUwMDI2XHUwMDI2XCJcIiE9PXdpbmRvdy50b3AubG9jYXRpb24/d2luZG93LnRvcC5sb2NhdGlvbjpkb2N1bWVudC5sb2NhdGlvbn1jYXRjaChmKXthPVxuZG9jdW1lbnQubG9jYXRpb259dHJ5e3ZhciBkPVwiXCIhPT1wYXJlbnQubG9jYXRpb24uaHJlZj9lbmNvZGVVUklDb21wb25lbnQocGFyZW50LmxvY2F0aW9uLmhyZWYudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCw1MTIpKTpcIlwifWNhdGNoKGYpe3RyeXtkPW51bGwhPT1hP2VuY29kZVVSSUNvbXBvbmVudChhLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsNTEyKSk6XCJcIn1jYXRjaCh0KXtkPVwiXCJ9fXZhciBlO2E9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtiPU51bWJlcihiLmxlbmd0aCktMTtiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpW2JdO1widW5kZWZpbmVkXCI9PT10eXBlb2YgZVx1MDAyNlx1MDAyNihlPU1hdGguZmxvb3IoMUUxNypNYXRoLnJhbmRvbSgpKSk7Yz1cImR4Lm1vdW50YWluLmNvbVwvc3B4P2NvbnZcXHgzZDFcXHgyNnNoYWlkXFx4M2RcIitnK1wiXFx4MjZ0ZHJcXHgzZFwiK2MrXCJcXHgyNnBsaFxceDNkXCIrXG5kK1wiXFx4MjZjYlxceDNkXCIrZStcIlxceDI2c2hvaWRcXHgzZFwiK2grXCJcXHgyNnNob2FtdFxceDNkXCIraytcIlxceDI2c2hvY3VyXFx4M2RcIitsK1wiXFx4MjZzaG9waWRcXHgzZFwiK20rXCJcXHgyNnNob3FcXHgzZFwiK24rXCJcXHgyNnNob3VwXFx4M2RcIitwK1wiXFx4MjZzaHBpbFxceDNkXCIrcStyO2EudHlwZT1cInRleHRcL2phdmFzY3JpcHRcIjthLnNyYz0oXCJodHRwczpcIj09PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sP1wiaHR0cHM6XC9cL1wiOlwiaHR0cDpcL1wvXCIpK2M7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSkoKTtcdTAwM0NcL3NjcmlwdFx1MDAzRSJdLCJ2dHBfc3VwcG9ydERvY3VtZW50V3JpdGUiOmZhbHNlLCJ2dHBfZW5hYmxlSWZyYW1lTW9kZSI6ZmFsc2UsInZ0cF9lbmFibGVFZGl0SnNNYWNyb0JlaGF2aW9yIjpmYWxzZSwidGFnX2lkIjo2NH0seyJmdW5jdGlvbiI6Il9faHRtbCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2h0bWwiOiJcdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZnVuY3Rpb24oYil7dmFyIGE9Yi50YXJnZXQ7KGI9YS5jbG9zZXN0KFwiYm9keSAuei01MFwiKSlcdTAwMjZcdTAwMjYoYT1hLmNsb3Nlc3QoXCJhXCIpKVx1MDAyNlx1MDAyNmIuY29udGFpbnMoYSlcdTAwMjZcdTAwMjYoY29uc29sZS5sb2coXCJCYW5uZXIgY2xpY2sgZGV0ZWN0ZWQhXCIpLHdpbmRvdy5kYXRhTGF5ZXI9d2luZG93LmRhdGFMYXllcnx8W10sd2luZG93LmRhdGFMYXllci5wdXNoKHtldmVudDpcImJhbm5lckNsaWNrXCIsYmFubmVyVHlwZTpcInNtYXJ0VHJhZGVyc0Jhbm5lclwiLGJhbm5lckxvY2F0aW9uOlwiei01MF9jb250YWluZXJcIixiYW5uZXJIcmVmOmEuaHJlZn0pKX0pfSkoKTtcdTAwM0NcL3NjcmlwdFx1MDAzRSIsInZ0cF9zdXBwb3J0RG9jdW1lbnRXcml0ZSI6ZmFsc2UsInZ0cF9lbmFibGVJZnJhbWVNb2RlIjpmYWxzZSwidnRwX2VuYWJsZUVkaXRKc01hY3JvQmVoYXZpb3IiOmZhbHNlLCJ0YWdfaWQiOjEwOH0seyJmdW5jdGlvbiI6Il9faHRtbCIsIm1ldGFkYXRhIjpbIm1hcCJdLCJvbmNlX3Blcl9ldmVudCI6dHJ1ZSwidnRwX2h0bWwiOlsidGVtcGxhdGUiLCJcdTAwM0NzY3JpcHQgdHlwZT1cInRleHRcL2d0bXNjcmlwdFwiXHUwMDNFdHJ5e3ZhciB0cmFuc2FjdGlvbklkPVN0cmluZygiLFsiZXNjYXBlIixbIm1hY3JvIiw5XSw4LDE2XSwiKTtpZih0cmFuc2FjdGlvbklkKXt2YXIgcmF3PXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zYWN0aW9uX2lkc1wiKSxkYXRhPXJhdz9KU09OLnBhcnNlKHJhdyk6W10sbmluZXR5X2RheXM9Nzc3NkU2LG5vdz1EYXRlLm5vdygpO2RhdGE9ZGF0YS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIG5vdy1hLnRzXHUwMDNDbmluZXR5X2RheXN9KTtkYXRhLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT10cmFuc2FjdGlvbklkfSl8fGRhdGEucHVzaCh7aWQ6dHJhbnNhY3Rpb25JZCx0czpub3d9KTt3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ0cmFuc2FjdGlvbl9pZHNcIixKU09OLnN0cmluZ2lmeShkYXRhKSl9fWNhdGNoKGEpe307XHUwMDNDXC9zY3JpcHRcdTAwM0UiXSwidnRwX3N1cHBvcnREb2N1bWVudFdyaXRlIjpmYWxzZSwidnRwX2VuYWJsZUlmcmFtZU1vZGUiOmZhbHNlLCJ2dHBfZW5hYmxlRWRpdEpzTWFjcm9CZWhhdmlvciI6ZmFsc2UsInRhZ19pZCI6MTQxfV0sCiAgInByZWRpY2F0ZXMiOlt7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uanMifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJhcHAudHgzZnVuZGluZy5jb20ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJ0eDNmdXR1cmVzLmNvbSJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwyXSwiYXJnMSI6InBhbmVsLnR4M2Z1bmRpbmcuY29tIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDNdLCJhcmcxIjoicHVyY2hhc2UifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJwdXJjaGFzZSJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwxM10sImFyZzEiOiJFTlZJQVIgU09MSUNJVFVEIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmNsaWNrIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IlJFU0VSVkUgWU9VUiBTUE9UIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDJdLCJhcmcxIjoicGFuZWwudHgzZnVuZGluZy5jb21cL2NoZWNrb3V0In0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDJdLCJhcmcxIjoiYXBwLnR4M2Z1bmRpbmcuY29tXC9jaGVja291dD8ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMTRdLCJhcmcxIjoiXC9wdXJjaGFzZV9jaGFsbGVuZ2VcLyJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5oaXN0b3J5Q2hhbmdlIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IlJlZ2lzdGVyIE5vdyJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwxN10sImFyZzEiOiJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIGNoZWNrb3V0LXBhbmVsLWJ0biJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6ImZvcm1fc3VibWl0In0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IlJFR0lTVEVSIE5PVyJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwyXSwiYXJnMSI6ImtleW5vdGUifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMTddLCJhcmcxIjoiY3NzLTFtMWpoYjIifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJidXktY2hhbGxlbmdlIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMTldLCJhcmcxIjoiYnV5LWNoYWxsZW5nZSJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6ImJhbm5lckNsaWNrIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IlBMQUNFIE9SREVSIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDIzXSwiYXJnMSI6InBhbmVsLnR4M2Z1bmRpbmcuY29tIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDJdLCJhcmcxIjoidmVyaWZpY2F0aW9uLW9uYm9hcmRpbmcifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uZWxlbWVudFZpc2liaWxpdHkifSx7ImZ1bmN0aW9uIjoiX3JlIiwiYXJnMCI6WyJtYWNybyIsMjRdLCJhcmcxIjoiKF4kfCgoXnwsKTUyNjE1MTM5XzE2OCgkfCwpKSkifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJkYXNoYm9hcmQuZngudHgzZnVuZGluZy5jb20ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJmdW5kaW5nLnR4M21hcmtldHMuY29tIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDJdLCJhcmcxIjoiZngudHgzbWFya2V0cy5jb20ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJ0eDNmdW5kaW5nLmNvbSJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwyXSwiYXJnMSI6IlwvZngifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJcL2Z1dHVyZXMifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJjcm0udHgzbWFya2V0cy5jb20ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJ0eDNtYXJrZXRzLmNvbSJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwyXSwiYXJnMSI6IlwvZnVuZHNcL2RlcG9zaXQ/In0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiU2lnbiBVcCBjb21wbGV0ZWQifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJEZXBvc2l0IHBhZ2UgY2xpY2tlZCJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwyN10sImFyZzEiOiJEb25lIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiRGVwb3NpdCJ9LHsiZnVuY3Rpb24iOiJfY24iLCJhcmcwIjpbIm1hY3JvIiwyXSwiYXJnMSI6ImZ1bmRpbmcudHgzbWFya2V0cy5jb21cLyJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwyM10sImFyZzEiOiJhcHAudHgzZnVuZGluZy5jb20ifSx7ImZ1bmN0aW9uIjoiX2NuIiwiYXJnMCI6WyJtYWNybyIsMl0sImFyZzEiOiJcL3B1cmNoYXNlX2NoYWxsZW5nZVwvIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDJdLCJhcmcxIjoiXC9vcmRlci1yZWNlaXZlZFwvIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IkpvaW4gdGhlIFdhaXRsaXN0In0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IkVucm9sbCBOb3chIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDM3XSwiYXJnMSI6ImFmZmlsaWF0ZS1wcm9ncmFtIn0seyJmdW5jdGlvbiI6Il9jbiIsImFyZzAiOlsibWFjcm8iLDEzXSwiYXJnMSI6IlRleHRXcmFwcGVyLXNjLV9fc2MtMWY4dno5MC0wIGdiblhsdCJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5kb20ifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiwwLDEsMiwzLDQsNSw3LDgsOSwxMSwxMiwxOCwzMSwzMywzNCw5MSw5Myw5NCw5NSwxMDAsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTBdXSxbWyJpZiIsMyw0LDVdLFsiYWRkIiw2LDEwLDE5LDI4LDU0XSxbImJsb2NrIiw2Niw2N11dLFtbImlmIiw2LDddLFsiYWRkIiwxM11dLFtbImlmIiw3LDhdLFsiYWRkIiwxNF1dLFtbImlmIiwwLDldLFsiYWRkIiwxNSwyNSwyOSw0MCw1MV0sWyJibG9jayIsNjAsNjEsNjQsNjhdXSxbWyJpZiIsMTEsMTJdLFsiYWRkIiwxNiwxNywxMDFdXSxbWyJpZiIsNywxM10sWyJhZGQiLDIwXV0sW1siaWYiLDE0LDE1XSxbImFkZCIsMjEsMjJdLFsiYmxvY2siLDIzXV0sW1siaWYiLDcsMTZdLFsiYWRkIiwyM11dLFtbImlmIiw3LDE4LDE5XSxbImFkZCIsMjRdXSxbWyJpZiIsMjBdLFsiYWRkIiwyNiw1Nl1dLFtbImlmIiwyMSwyMl0sWyJhZGQiLDI3XV0sW1siaWYiLDcsMjMsMjRdLFsiYWRkIiwzMCwzMiw2Myw2OV1dLFtbImlmIiwwLDI1XSxbImFkZCIsMzJdXSxbWyJpZiIsMjYsMjddLFsiYWRkIiwzMl1dLFtbImlmIiwwLDFdLFsiYWRkIiwzNSw1NSw1OCw3MV0sWyJibG9jayIsMyw4LDEyLDMwLDMxLDMyLDMzLDYzLDY5LDk1XV0sW1siaWYiLDIwLDI4XSxbImFkZCIsMzVdXSxbWyJpZiIsMjAsMjldLFsiYWRkIiwzNV1dLFtbImlmIiwyMCwzMF0sWyJhZGQiLDM1XV0sW1siaWYiLDIwLDMxXSxbInVubGVzcyIsMzIsMzNdLFsiYWRkIiwzNV1dLFtbImlmIiwyMCwzNF0sWyJhZGQiLDM2LDM4LDM5XV0sW1siaWYiLDIwLDM1XSxbInVubGVzcyIsMzIsMzNdLFsiYWRkIiwzNiwzOCwzOV1dLFtbImlmIiwwLDM2XSxbImFkZCIsMzddXSxbWyJpZiIsMzddLFsiYWRkIiw0MSw0NCw0N11dLFtbImlmIiwzOF0sWyJhZGQiLDQyLDQ1LDQ4XV0sW1siaWYiLDM5LDQwXSxbImFkZCIsNDMsNDYsNDldXSxbWyJpZiIsNCw1XSxbImFkZCIsNTAsMTAzXV0sW1siaWYiLDIwLDMyLDQxXSxbImFkZCIsNTJdXSxbWyJpZiIsMjAsMjksMzNdLFsiYWRkIiw1M11dLFtbImlmIiwwLDJdLFsiYWRkIiw1NSw1OCw3MV0sWyJibG9jayIsMyw4LDEyLDMxLDMzLDk1XV0sW1siaWYiLDEsNCw1XSxbImFkZCIsNTcsNjYsNjddLFsiYmxvY2siLDEwLDE5LDI4XV0sW1siaWYiLDcsMjMsNDJdLFsiYWRkIiw1OSw2Miw2NSw3MF1dLFtbImlmIiwwLDEwXSxbImFkZCIsNjAsNjEsNjQsNjhdLFsiYmxvY2siLDE1LDI1LDI5LDQwLDUxXV0sW1siaWYiLDAsNDNdLFsiYWRkIiw5Ml1dLFtbImlmIiwwLDQ0XSxbImFkZCIsOTZdXSxbWyJpZiIsNyw0NV0sWyJhZGQiLDk3XV0sW1siaWYiLDcsNDYsNDddLFsiYWRkIiw5OF1dLFtbImlmIiw3LDQ4XSxbImFkZCIsOTldXSxbWyJpZiIsNDldLFsiYWRkIiwxMDJdXSxbWyJpZiIsMCwxN10sWyJibG9jayIsMjNdXSxbWyJpZiIsMCwzXSxbImJsb2NrIiw1OCw1OSw2Miw2NSw3MF1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fY3Z0XzUyNjE1MTM5XzIzIixbNDYsImEiXSxbNTAsIm0iLFs0NiwicCIsInEiLCJyIl0sWzIsWzE1LCJyIl0sImZvckVhY2giLFs3LFs1MSwiIixbNywicyJdLFsyMixbMTYsWzE1LCJwIl0sWzE1LCJzIl1dLFs0NixbNDMsWzE1LCJxIl0sWzE1LCJzIl0sWzE2LFsxNSwicCJdLFsxNSwicyJdXV1dXV1dXV0sWzUwLCJuIixbNDYsInAiLCJxIl0sWzM4LFsxNyxbMTUsInAiXSwicGFnZV9sb2NhdGlvbl9vcCJdLFs0NiwxLDJdLFs0NixbNSxbNDYsWzQzLFsxNSwicSJdLCJoaWRlX3BhZ2VfbG9jYXRpb24iLHRydWVdLFs0XV1dLFs1LFs0NixbNDMsWzE1LCJxIl0sInBhZ2VfbG9jYXRpb24iLFsxNyxbMTUsInAiXSwicGFnZV9sb2NhdGlvbiJdXSxbNF1dXSxbOSxbNDZdXV1dXSxbNTAsIm8iLFs0NiwicCIsInEiXSxbMjIsWzI4LFsxNyxbMTUsInAiXSwiYWRkaXRpb25hbFBhcmFtcyJdXSxbNDYsWzM2XV1dLFs1MiwiciIsWyJoIixbMTcsWzE1LCJwIl0sImFkZGl0aW9uYWxQYXJhbXMiXSwibmFtZSIsInZhbHVlIl1dLFsyLFsyLFsxNSwiZyJdLCJrZXlzIixbNyxbMTUsInIiXV1dLCJmb3JFYWNoIixbNyxbNTEsIiIsWzcsInMiXSxbNDMsWzE1LCJxIl0sWzE1LCJzIl0sWzE2LFsxNSwiciJdLFsxNSwicyJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiY2FsbEluV2luZG93Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiY29weUZyb21XaW5kb3ciXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbmplY3RTY3JpcHQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJKU09OIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwibG9nVG9Db25zb2xlIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiaCIsWyJyZXF1aXJlIiwibWFrZVRhYmxlTWFwIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwic2V0SW5XaW5kb3ciXV0sWyJmIixbMCwiZGF0YTogIixbMixbMTUsImUiXSwic3RyaW5naWZ5IixbNyxbMTUsImEiXV1dXV0sWzUyLCJqIixbNTEsIiIsWzddLFsyMixbImMiLCJ0d3EuZXhlIl0sWzQ2LFsiYiIsInR3cS5leGUuYXBwbHkiLFs0NV0sWzE1LCJhcmd1bWVudHMiXV1dLFs0NixbImIiLCJ0d3EucXVldWUucHVzaCIsWzE1LCJhcmd1bWVudHMiXV1dXV1dLFs0MyxbMTUsImoiXSwiaW50ZWdyYXRpb24iLCJndG0iXSxbNDMsWzE1LCJqIl0sInF1ZXVlIixbN11dLFsiaSIsInR3cSIsWzE1LCJqIl0sZmFsc2VdLFs1MiwiayIsWzhdXSxbIm0iLFsxNSwiYSJdLFsxNSwiayJdLFs3LCJlbWFpbF9hZGRyZXNzIiwicGhvbmVfbnVtYmVyIiwiZXh0ZXJuYWxfaWQiLCJ0d2NsaWQiXV0sWyJuIixbMTUsImEiXSxbMTUsImsiXV0sWyJvIixbMTUsImEiXSxbMTUsImsiXV0sWyJiIiwidHdxIiwiY29uZmlnIixbMTcsWzE1LCJhIl0sInBpeGVsX2lkIl0sWzE1LCJrIl1dLFs1MiwibCIsImh0dHBzOi8vc3RhdGljLmFkcy10d2l0dGVyLmNvbS91d3QuanMiXSxbImQiLFsxNSwibCJdLFsxNyxbMTUsImEiXSwiZ3RtT25TdWNjZXNzIl0sWzE3LFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiXSxbMTUsImwiXV0sWzM2LFsxNSwiaiJdXV0KICxbNTAsIl9fY3Z0XzVSTTNRIixbNDYsImEiXSxbNTAsImFPIixbNDZdLFs0MSwiYVEiXSxbNTIsImFQIixbImUiLCJfZmJxX3BhcmFtX2J1aWxkZXJfc3RhdHVzIl1dLFsyMixbMzAsWzIwLFsxNSwiYVAiXSwiY29tcGxldGUiXSxbMjAsWzE1LCJhUCJdLCJsb2FkaW5nIl1dLFs0NixbMzYsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV1dXSxbImYiLCJfZmJxX3BhcmFtX2J1aWxkZXJfc3RhdHVzIiwibG9hZGluZyIsdHJ1ZV0sWzMsImFRIixbMTYsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLCJdXSwwXV0sWyJjIiwiZmJxIiwiZ2F0ZUNoZWNrIiwiZW5hYmxlX2d0bV9wYXJhbWJ1aWxkZXIiLFs1MSwiIixbNywiYVIiLCJhUyJdLFsiZyIsWzE1LCJvIl0sWzE1LCJhTiJdLFsxNSwiYU0iXSxbMTUsIm8iXV1dLFs1MSwiIixbNywiYVIiLCJhUyJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dLFsxNSwiYVEiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiY3JlYXRlUXVldWUiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJjYWxsSW5XaW5kb3ciXV0sWzUyLCJkIixbInJlcXVpcmUiLCJhbGlhc0luV2luZG93Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiY29weUZyb21XaW5kb3ciXV0sWzUyLCJmIixbInJlcXVpcmUiLCJzZXRJbldpbmRvdyJdXSxbNTIsImciLFsicmVxdWlyZSIsImluamVjdFNjcmlwdCJdXSxbNTIsImgiLFsicmVxdWlyZSIsIm1ha2VUYWJsZU1hcCJdXSxbNTIsImkiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiY29weUZyb21EYXRhTGF5ZXIiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJNYXRoIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwibG9nVG9Db25zb2xlIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwibyIsImh0dHBzOi8vY2FwaS1hdXRvbWF0aW9uLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL3B1YmxpYy9jbGllbnRfanMvY2FwaVBhcmFtQnVpbGRlci9jbGllbnRQYXJhbUJ1aWxkZXIuYnVuZGxlLmpzIl0sWzUyLCJwIixbMzAsWyJlIiwiX2ZicV9ndG1faWRzIl0sWzddXV0sWzUyLCJxIixbMTcsWzE1LCJhIl0sInBpeGVsSWQiXV0sWzUyLCJyIixbNywiQWRkUGF5bWVudEluZm8iLCJBZGRUb0NhcnQiLCJBZGRUb1dpc2hsaXN0IiwiQ29tcGxldGVSZWdpc3RyYXRpb24iLCJDb250YWN0IiwiQ3VzdG9taXplUHJvZHVjdCIsIkRvbmF0ZSIsIkZpbmRMb2NhdGlvbiIsIkluaXRpYXRlQ2hlY2tvdXQiLCJMZWFkIiwiUGFnZVZpZXciLCJQdXJjaGFzZSIsIlNjaGVkdWxlIiwiU2VhcmNoIiwiU3RhcnRUcmlhbCIsIlN1Ym1pdEFwcGxpY2F0aW9uIiwiU3Vic2NyaWJlIiwiVmlld0NvbnRlbnQiXV0sWzUyLCJzIixbImsiLCJlY29tbWVyY2UiLDFdXSxbNTIsInQiLFsiayIsImV2ZW50TW9kZWwiLDFdXSxbNTIsInUiLFs1MSwiIixbNywiYVAiXSxbIm0iLFsxNSwiYVAiXV0sWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXV1dLFs1MiwidiIsWzUxLCIiLFs3LCJhUCIsImFRIl0sWzU1LCJhUiIsWzE1LCJhUSJdLFs0NixbMjIsWzIsWzE1LCJhUSJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJhUiJdXV0sWzQ2LFs0MyxbMTUsImFQIl0sWzE1LCJhUiJdLFsxNixbMTUsImFRIl0sWzE1LCJhUiJdXV1dXV1dLFszNixbMTUsImFQIl1dXV0sWzUyLCJ3IixbNTEsIiIsWzcsImFQIl0sWzM2LFs4LCJpZCIsWzE3LFsxNSwiYVAiXSwiaWQiXSwicXVhbnRpdHkiLFsxNyxbMTUsImFQIl0sInF1YW50aXR5Il1dXV1dLFs0MSwieCIsInkiLCJ6Il0sWzIyLFsxNyxbMTUsImEiXSwiZW5oYW5jZWRFY29tbWVyY2UiXSxbNDYsWzIyLFsyOCxbMTUsInMiXV0sWzQ2LFszNixbInUiLCJGYWNlYm9vayBQaXhlbDogTm8gdmFsaWQgXCJlY29tbWVyY2VcIiBvYmplY3QgZm91bmQgaW4gZGF0YUxheWVyIl1dXV0sWzIyLFsxNyxbMTUsInMiXSwiZGV0YWlsIl0sWzQ2LFszLCJ4IiwiVmlld0NvbnRlbnQiXSxbMywieSIsImRldGFpbCJdXSxbNDYsWzIyLFsxNyxbMTUsInMiXSwiYWRkIl0sWzQ2LFszLCJ4IiwiQWRkVG9DYXJ0Il0sWzMsInkiLCJhZGQiXV0sWzQ2LFsyMixbMTcsWzE1LCJzIl0sImNoZWNrb3V0Il0sWzQ2LFszLCJ4IiwiSW5pdGlhdGVDaGVja291dCJdLFszLCJ5IiwiY2hlY2tvdXQiXV0sWzQ2LFsyMixbMTcsWzE1LCJzIl0sInB1cmNoYXNlIl0sWzQ2LFszLCJ4IiwiUHVyY2hhc2UiXSxbMywieSIsInB1cmNoYXNlIl1dLFs0NixbMzYsWyJ1IiwiRmFjZWJvb2sgUGl4ZWw6IE1vc3QgcmVjZW50bHkgcHVzaGVkIFwiZWNvbW1lcmNlXCIgb2JqZWN0IG11c3QgYmUgb25lIG9mIHR5cGVzIFwiZGV0YWlsXCIsIFwiYWRkXCIsIFwiY2hlY2tvdXRcIiBvciBcInB1cmNoYXNlXCIuIl1dXV1dXV1dXV0sWzIyLFszMCxbMjgsWzE3LFsxNixbMTUsInMiXSxbMTUsInkiXV0sInByb2R1Y3RzIl1dLFsyMSxbImoiLFsxNyxbMTYsWzE1LCJzIl0sWzE1LCJ5Il1dLCJwcm9kdWN0cyJdXSwiYXJyYXkiXV0sWzQ2LFszNixbInUiLCJGYWNlYm9vayBwaXhlbDogTW9zdCByZWNlbnRseSBwdXNoZWQgXCJlY29tbWVyY2VcIiBvYmplY3QgZGlkIG5vdCBoYXZlIGEgdmFsaWQgXCJwcm9kdWN0c1wiIGFycmF5LiJdXV1dLFszLCJ6IixbOCwiY29udGVudF90eXBlIiwicHJvZHVjdCIsImNvbnRlbnRzIixbMixbMTcsWzE2LFsxNSwicyJdLFsxNSwieSJdXSwicHJvZHVjdHMiXSwibWFwIixbNyxbMTUsInciXV1dLCJ2YWx1ZSIsWzIsWzE3LFsxNixbMTUsInMiXSxbMTUsInkiXV0sInByb2R1Y3RzIl0sInJlZHVjZSIsWzcsWzUxLCIiLFs3LCJhUCIsImFRIl0sWzUyLCJhUiIsWzEwLFsyLFsxNSwibCJdLCJyb3VuZCIsWzcsWzI2LFsyNixbImkiLFszMCxbMTcsWzE1LCJhUSJdLCJwcmljZSJdLDBdXSxbMzAsWzE3LFsxNSwiYVEiXSwicXVhbnRpdHkiXSwxXV0sMTAwXV1dLDEwMF1dLFszNixbMCxbMTUsImFQIl0sWzE1LCJhUiJdXV1dLDBdXSwiY3VycmVuY3kiLFszMCxbMTcsWzE1LCJzIl0sImN1cnJlbmN5Q29kZSJdLCJVU0QiXV1dLFsyMixbMTgsWzIsWzcsIkluaXRpYXRlQ2hlY2tvdXQiLCJQdXJjaGFzZSJdLCJpbmRleE9mIixbNyxbMTUsIngiXV1dLFsyNywxXV0sWzQ2LFs0MyxbMTUsInoiXSwibnVtX2l0ZW1zIixbMixbMTcsWzE2LFsxNSwicyJdLFsxNSwieSJdXSwicHJvZHVjdHMiXSwicmVkdWNlIixbNyxbNTEsIiIsWzcsImFQIiwiYVEiXSxbMzYsWzAsWzE1LCJhUCJdLFsiaSIsWzMwLFsxNyxbMTUsImFRIl0sInF1YW50aXR5Il0sMV1dXV1dLDBdXV1dXV1dLFs1MiwiYUEiLFszOSxbMSxbMTcsWzE1LCJhIl0sImFkdmFuY2VkTWF0Y2hpbmdMaXN0Il0sWzE3LFsxNyxbMTUsImEiXSwiYWR2YW5jZWRNYXRjaGluZ0xpc3QiXSwibGVuZ3RoIl1dLFsiaCIsWzE3LFsxNSwiYSJdLCJhZHZhbmNlZE1hdGNoaW5nTGlzdCJdLCJuYW1lIiwidmFsdWUiXSxbOF1dXSxbNTIsImFCIixbMzksWzEsWzE3LFsxNSwiYSJdLCJvYmplY3RQcm9wZXJ0eUxpc3QiXSxbMTcsWzE3LFsxNSwiYSJdLCJvYmplY3RQcm9wZXJ0eUxpc3QiXSwibGVuZ3RoIl1dLFsiaCIsWzE3LFsxNSwiYSJdLCJvYmplY3RQcm9wZXJ0eUxpc3QiXSwibmFtZSIsInZhbHVlIl0sWzhdXV0sWzUyLCJhQyIsWzM5LFsyMCxbImoiLFsxNyxbMTUsImEiXSwib2JqZWN0UHJvcGVydGllc0Zyb21WYXJpYWJsZSJdXSwib2JqZWN0Il0sWzE3LFsxNSwiYSJdLCJvYmplY3RQcm9wZXJ0aWVzRnJvbVZhcmlhYmxlIl0sWzhdXV0sWzQxLCJhRCJdLFszLCJhRCIsWzhdXSxbMywieCIsWzMwLFsxNSwieCJdLFszOSxbMjAsWzE3LFsxNSwiYSJdLCJldmVudE5hbWUiXSwiY3VzdG9tIl0sWzE3LFsxNSwiYSJdLCJjdXN0b21FdmVudE5hbWUiXSxbMzksWzIwLFsxNyxbMTUsImEiXSwiZXZlbnROYW1lIl0sInZhcmlhYmxlIl0sWzE3LFsxNSwiYSJdLCJ2YXJpYWJsZUV2ZW50TmFtZSJdLFsxNyxbMTUsImEiXSwic3RhbmRhcmRFdmVudE5hbWUiXV1dXV0sWzUyLCJhRSIsWzM5LFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsWzE1LCJ4Il1dXSxbMjcsMV1dLCJ0cmFja1NpbmdsZUN1c3RvbSIsInRyYWNrU2luZ2xlIl1dLFs1MiwiYUYiLFszOSxbMjAsWzE3LFsxNSwiYSJdLCJjb25zZW50Il0sZmFsc2VdLCJyZXZva2UiLCJncmFudCJdXSxbNTIsImFHIixbNTEsIiIsWzddLFs0MSwiYVAiXSxbMywiYVAiLFsiZSIsImZicSJdXSxbMjIsWzE1LCJhUCJdLFs0NixbMzYsWzE1LCJhUCJdXV1dLFsiZiIsImZicSIsWzUxLCIiLFs3XSxbNTIsImFRIixbImUiLCJmYnEuY2FsbE1ldGhvZC5hcHBseSJdXSxbMjIsWzE1LCJhUSJdLFs0NixbImMiLCJmYnEuY2FsbE1ldGhvZC5hcHBseSIsWzQ1XSxbMTUsImFyZ3VtZW50cyJdXV0sWzQ2LFsiYyIsImZicS5xdWV1ZS5wdXNoIixbMTUsImFyZ3VtZW50cyJdXV1dXV0sWyJkIiwiX2ZicSIsImZicSJdLFsiYiIsImZicS5xdWV1ZSJdLFszNixbImUiLCJmYnEiXV1dXSxbNTIsImFIIixbImFHIl1dLFsiYUgiLCJjb25zZW50IixbMTUsImFGIl1dLFsyMixbMTcsWzE1LCJhIl0sImRwb0xEVSJdLFs0NixbImFIIiwiZGF0YVByb2Nlc3NpbmdPcHRpb25zIixbNywiTERVIl0sWyJpIixbMTcsWzE1LCJhIl0sImRwb0NvdW50cnkiXV0sWyJpIixbMTcsWzE1LCJhIl0sImRwb1N0YXRlIl1dXV1dLFs1MiwiYUkiLCJ0bVNpbW8tR1RNLVdlYlRlbXBsYXRlIl0sWzUyLCJhSiIsIjIuMC43Il0sWzUyLCJhSyIsWzAsWzM5LFsxNyxbMTUsImEiXSwiZW5oYW5jZWRFY29tbWVyY2UiXSwiLUVFQyIsIiJdLFszOSxbMTcsWzE1LCJhIl0sInVzZUdBNEVjb21tZXJjZSJdLCItR0E0IiwiIl1dXSxbMixbMixbMTUsInEiXSwic3BsaXQiLFs3LCIsIl1dLCJmb3JFYWNoIixbNyxbNTEsIiIsWzcsImFQIl0sWzIyLFsyMCxbMixbMTUsInAiXSwiaW5kZXhPZiIsWzcsWzE1LCJhUCJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyMixbMTcsWzE1LCJhIl0sImRpc2FibGVBdXRvQ29uZmlnIl0sWzQ2LFsiYUgiLCJzZXQiLCJhdXRvQ29uZmlnIixmYWxzZSxbMTUsImFQIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwiZGlzYWJsZVB1c2hTdGF0ZSJdLFs0NixbImYiLCJmYnEuZGlzYWJsZVB1c2hTdGF0ZSIsdHJ1ZV1dXSxbImFIIiwiaW5pdCIsWzE1LCJhUCJdLFsxNSwiYUEiXV0sWzUyLCJhUSIsWzAsWzAsWzAsWzE1LCJhSSJdLCItIl0sWzE1LCJhSiJdXSxbMTUsImFLIl1dXSxbImFIIiwic2V0IiwiYWdlbnQiLFsxNSwiYVEiXSxbMTUsImFQIl1dLFsyLFsxNSwicCJdLCJwdXNoIixbNyxbMTUsImFQIl1dXSxbImYiLCJfZmJxX2d0bV9pZHMiLFsxNSwicCJdLHRydWVdLFsyMixbMSxbMTcsWzE1LCJhIl0sImFkdmFuY2VkTWF0Y2hpbmdMaXN0Il0sWzE3LFsxNyxbMTUsImEiXSwiYWR2YW5jZWRNYXRjaGluZ0xpc3QiXSwibGVuZ3RoIl1dLFs0NixbImYiLCJfZmJxX2d0bV9jaWRwYXJhbXNfaW5pdGlhbGl6ZWQiLHRydWUsdHJ1ZV1dXV1dXV1dXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhZHZhbmNlZE1hdGNoaW5nTGlzdCJdLFsxNyxbMTcsWzE1LCJhIl0sImFkdmFuY2VkTWF0Y2hpbmdMaXN0Il0sImxlbmd0aCJdXSxbNDYsWzIsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLCJdXSwiZm9yRWFjaCIsWzcsWzUxLCIiLFs3LCJhUCJdLFsyMixbMjEsWzIsWzE1LCJwIl0sImluZGV4T2YiLFs3LFsxNSwiYVAiXV1dLFsyNywxXV0sWzQ2LFs1MyxbImFIIiwiaW5pdCIsWzE1LCJhUCJdLFsxNSwiYUEiXV0sWzUyLCJhUSIsWzAsWzAsWzAsWzAsWzE1LCJhSSJdLCItIl0sWzE1LCJhSiJdXSxbMTUsImFLIl1dLCItUkVJTklUIl1dLFsiYUgiLCJzZXQiLCJhZ2VudCIsWzE1LCJhUSJdLFsxNSwiYVAiXV1dXV1dXV1dXSxbNTIsImFMIixbNTEsIiIsWzcsImFQIl0sWzUyLCJhUSIsWyJ2IixbMTUsImFQIl0sWzMwLFsxNSwieiJdLFs4XV1dXSxbNTIsImFSIixbInYiLFsxNSwiYUMiXSxbMTUsImFCIl1dXSxbNTIsImFTIixbInYiLFsxNSwiYVEiXSxbMTUsImFSIl1dXSxbMixbMixbMTUsInEiXSwic3BsaXQiLFs3LCIsIl1dLCJmb3JFYWNoIixbNyxbNTEsIiIsWzcsImFUIl0sWzIyLFsxNyxbMTUsImEiXSwiZXZlbnRJZCJdLFs0NixbImFIIixbMTUsImFFIl0sWzE1LCJhVCJdLFsxNSwieCJdLFsxNSwiYVMiXSxbOCwiZXZlbnRJRCIsWzE3LFsxNSwiYSJdLCJldmVudElkIl1dXV0sWzQ2LFsiYUgiLFsxNSwiYUUiXSxbMTUsImFUIl0sWzE1LCJ4Il0sWzE1LCJhUyJdXV1dXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwidXNlR0E0RWNvbW1lcmNlIl0sWzQ2LFs1MyxbNTIsImFQIixbMTYsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLCJdXSwwXV0sWyJjIiwiZmJxIiwiZ2F0ZUNoZWNrIiwiZW5hYmxlX2d0bV9nYTRfc3RydWN0dXJlIixbNTEsIiIsWzcsImFRIiwiYVIiXSxbNDEsImFTIl0sWzIyLFsxLFsxNSwidCJdLFsxNyxbMTUsInQiXSwidXNlcl9kYXRhIl1dLFs0NixbMywiYVMiLFsxNyxbMTUsInQiXSwidXNlcl9kYXRhIl1dLFsyMixbMSxbMTcsWzE1LCJhUyJdLCJlbWFpbF9hZGRyZXNzIl0sWzI4LFsxNyxbMTUsImFBIl0sImVtIl1dXSxbNDYsWzQzLFsxNSwiYUEiXSwiZW0iLFsxNyxbMTUsImFTIl0sImVtYWlsX2FkZHJlc3MiXV1dXSxbMjIsWzEsWzE3LFsxNSwiYVMiXSwicGhvbmVfbnVtYmVyIl0sWzI4LFsxNyxbMTUsImFBIl0sInBoIl1dXSxbNDYsWzQzLFsxNSwiYUEiXSwicGgiLFsxNyxbMTUsImFTIl0sInBob25lX251bWJlciJdXV1dLFsyMixbMTcsWzE1LCJhUyJdLCJhZGRyZXNzIl0sWzQ2LFsyMixbMSxbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJmaXJzdF9uYW1lIl0sWzI4LFsxNyxbMTUsImFBIl0sImZuIl1dXSxbNDYsWzQzLFsxNSwiYUEiXSwiZm4iLFsxNyxbMTcsWzE1LCJhUyJdLCJhZGRyZXNzIl0sImZpcnN0X25hbWUiXV1dXSxbMjIsWzEsWzE3LFsxNyxbMTUsImFTIl0sImFkZHJlc3MiXSwibGFzdF9uYW1lIl0sWzI4LFsxNyxbMTUsImFBIl0sImxuIl1dXSxbNDYsWzQzLFsxNSwiYUEiXSwibG4iLFsxNyxbMTcsWzE1LCJhUyJdLCJhZGRyZXNzIl0sImxhc3RfbmFtZSJdXV1dLFsyMixbMSxbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJjaXR5Il0sWzI4LFsxNyxbMTUsImFBIl0sImN0Il1dXSxbNDYsWzQzLFsxNSwiYUEiXSwiY3QiLFsxNyxbMTcsWzE1LCJhUyJdLCJhZGRyZXNzIl0sImNpdHkiXV1dXSxbMjIsWzEsWzE3LFsxNyxbMTUsImFTIl0sImFkZHJlc3MiXSwicmVnaW9uIl0sWzI4LFsxNyxbMTUsImFBIl0sInN0Il1dXSxbNDYsWzQzLFsxNSwiYUEiXSwic3QiLFsxNyxbMTcsWzE1LCJhUyJdLCJhZGRyZXNzIl0sInJlZ2lvbiJdXV1dLFsyMixbMSxbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJwb3N0YWxfY29kZSJdLFsyOCxbMTcsWzE1LCJhQSJdLCJ6cCJdXV0sWzQ2LFs0MyxbMTUsImFBIl0sInpwIixbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJwb3N0YWxfY29kZSJdXV1dLFsyMixbMSxbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJjb3VudHJ5Il0sWzI4LFsxNyxbMTUsImFBIl0sImNvdW50cnkiXV1dLFs0NixbNDMsWzE1LCJhQSJdLCJjb3VudHJ5IixbMTcsWzE3LFsxNSwiYVMiXSwiYWRkcmVzcyJdLCJjb3VudHJ5Il1dXV1dXSxbMjIsWzEsWzE3LFsxNSwiYVMiXSwiZmJfbG9naW5faWQiXSxbMjgsWzE3LFsxNSwiYUEiXSwiZmJfbG9naW5faWQiXV1dLFs0NixbNDMsWzE1LCJhQSJdLCJmYl9sb2dpbl9pZCIsWzE3LFsxNSwiYVMiXSwiZmJfbG9naW5faWQiXV1dXSxbMixbMixbMTUsInEiXSwic3BsaXQiLFs3LCIsIl1dLCJmb3JFYWNoIixbNyxbNTEsIiIsWzcsImFUIl0sWyJhSCIsImluaXQiLFsxNSwiYVQiXSxbMTUsImFBIl1dXV1dXV0sWzIyLFsxNSwidCJdLFs0NixbMjIsWzE3LFsxNSwidCJdLCJjdXJyZW5jeSJdLFs0NixbNDMsWzE1LCJhRCJdLCJjdXJyZW5jeSIsWzE3LFsxNSwidCJdLCJjdXJyZW5jeSJdXV1dLFsyMixbMTcsWzE1LCJ0Il0sInZhbHVlIl0sWzQ2LFs0MyxbMTUsImFEIl0sInZhbHVlIixbMTcsWzE1LCJ0Il0sInZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsInQiXSwic2VhcmNoX3Rlcm0iXSxbNDYsWzQzLFsxNSwiYUQiXSwic2VhcmNoX3N0cmluZyIsWzE3LFsxNSwidCJdLCJzZWFyY2hfdGVybSJdXV1dLFsyMixbMTcsWzE1LCJ0Il0sInRyYW5zYWN0aW9uX2lkIl0sWzQ2LFs0MyxbMTUsImFEIl0sIm9yZGVyX2lkIixbMTcsWzE1LCJ0Il0sInRyYW5zYWN0aW9uX2lkIl1dXV0sWzIyLFsxLFsxNyxbMTUsInQiXSwiaXRlbXMiXSxbMjAsWyJqIixbMTcsWzE1LCJ0Il0sIml0ZW1zIl1dLCJhcnJheSJdXSxbNDYsWzQzLFsxNSwiYUQiXSwiY29udGVudHMiLFsyLFsxNyxbMTUsInQiXSwiaXRlbXMiXSwibWFwIixbNyxbNTEsIiIsWzcsImFUIl0sWzM2LFs4LCJpZCIsWzMwLFszMCxbMTcsWzE1LCJhVCJdLCJpdGVtX2lkIl0sWzE3LFsxNSwiYVQiXSwiaXRlbV9uYW1lIl1dLFs0NF1dLCJpdGVtX3ByaWNlIixbMzAsWzE3LFsxNSwiYVQiXSwicHJpY2UiXSxbNDRdXSwicXVhbnRpdHkiLFszMCxbMTcsWzE1LCJhVCJdLCJxdWFudGl0eSJdLFs0NF1dXV1dXV1dXV1dXSxbImFMIixbMTUsImFEIl1dXSxbNTEsIiIsWzcsImFRIiwiYVIiXSxbImFMIixbMTUsImFEIl1dXSxbMTUsImFQIl1dXV0sWzQ2LFsiYUwiLFsxNSwiYUQiXV1dXSxbNTIsImFNIixbNTEsIiIsWzddLFsibSIsIkZhY2Vib29rIFBpeGVsOiBGYWlsZWQgdG8gbG9hZCBjbGllbnRQYXJhbUJ1aWxkZXIgc2NyaXB0Il0sWyJmIiwiX2ZicV9wYXJhbV9idWlsZGVyX3N0YXR1cyIsImNvbXBsZXRlIix0cnVlXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXV0sWzUyLCJhTiIsWzUxLCIiLFs3XSxbIm0iLCJQYXJhbUJ1aWxkZXIgc2NyaXB0IGxvYWRlZCBzdWNjZXNzZnVsbHksIHByb2Nlc3NpbmcgYW5kIGNvbGxlY3RpbmcgYWxsIHBhcmFtcy4uLiJdLFs1MiwiYVAiLFsiZSIsImNsaWVudFBhcmFtQnVpbGRlciJdXSxbMjIsWzI4LFsxNSwiYVAiXV0sWzQ2LFsibSIsIkVSUk9SOiBjbGllbnRQYXJhbUJ1aWxkZXIgd2Fzbid0IGxvYWRlZCBjb3JyZWN0bHkuIl0sWyJmIiwiX2ZicV9wYXJhbV9idWlsZGVyX3N0YXR1cyIsImNvbXBsZXRlIix0cnVlXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXSxbNTIsImFRIixbIm4iXV0sWzUyLCJhUiIsWyJlIiwiY2xpZW50UGFyYW1CdWlsZGVyLnByb2Nlc3NBbmRDb2xsZWN0QWxsUGFyYW1zIl1dLFs1MiwiYVMiLFsiZSIsImNsaWVudFBhcmFtQnVpbGRlci5wcm9jZXNzQW5kQ29sbGVjdFBhcmFtcyJdXSxbMjIsWzE1LCJhUiJdLFs0NixbImMiLCJjbGllbnRQYXJhbUJ1aWxkZXIucHJvY2Vzc0FuZENvbGxlY3RBbGxQYXJhbXMiLFsxNSwiYVEiXV0sWyJtIiwicHJvY2Vzc0FuZENvbGxlY3RBbGxQYXJhbXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iXSxbImYiLCJfZmJxX3BhcmFtX2J1aWxkZXJfc3RhdHVzIiwiY29tcGxldGUiLHRydWVdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dLFs0NixbMjIsWzE1LCJhUyJdLFs0NixbImMiLCJjbGllbnRQYXJhbUJ1aWxkZXIucHJvY2Vzc0FuZENvbGxlY3RQYXJhbXMiLFsxNSwiYVEiXV0sWyJtIiwicHJvY2Vzc0FuZENvbGxlY3RQYXJhbXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iXSxbImYiLCJfZmJxX3BhcmFtX2J1aWxkZXJfc3RhdHVzIiwiY29tcGxldGUiLHRydWVdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dLFs0NixbIm0iLCJFUlJPUjogTmVpdGhlciBwcm9jZXNzQW5kQ29sbGVjdEFsbFBhcmFtcyBub3IgcHJvY2Vzc0FuZENvbGxlY3RQYXJhbXMgbWV0aG9kcyBmb3VuZC4iXSxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dXV1dXV1dLFsiZyIsImh0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMiLFsxNSwiYU8iXSxbMTcsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSJdLCJmYlBpeGVsIl1dCiAsWzUwLCJfX2N2dF9NUURLWiIsWzQ2LCJhIl0sWzQxLCJuIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbmplY3RTY3JpcHQiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzUyLCJkIixbInJlcXVpcmUiLCJjcmVhdGVBcmd1bWVudHNRdWV1ZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImVuY29kZVVyaSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImFkZEV2ZW50Q2FsbGJhY2siXV0sWzUyLCJnIixbInJlcXVpcmUiLCJjb3B5RnJvbURhdGFMYXllciJdXSxbNTIsImgiLFsiZCIsImNsYXJpdHkiLCJjbGFyaXR5LnEiXV0sWzUyLCJpIixbMzAsWzE3LFsxNSwiYSJdLCJjdXN0b21fdGFnIl0sWzddXV0sWzUyLCJqIixbMCxbMCwiaHR0cHM6Ly93d3cuY2xhcml0eS5tcy90YWcvIixbImUiLFsxNyxbMTUsImEiXSwicHJvamVjdElkIl1dXSwiP3JlZj1ndG0iXV0sWzUyLCJrIixbNTEsIiIsWzddLFs1MiwibyIsWzMwLFsxNyxbMTUsImEiXSwiZnJpZW5kbHlOYW1lIl0sIiJdXSxbNTIsInAiLFszMCxbMTcsWzE1LCJhIl0sInNlc3Npb25JZCJdLCIiXV0sWzUyLCJxIixbMzAsWzE3LFsxNSwiYSJdLCJwYWdlSWQiXSwiIl1dLFsyMixbMTcsWzE1LCJhIl0sInVzZXJJZCJdLFs0NixbImgiLCJpZGVudGlmeSIsWzE3LFsxNSwiYSJdLCJ1c2VySWQiXSxbMTUsInAiXSxbMTUsInEiXSxbMTUsIm8iXV1dXV1dLFs1MiwibCIsWzUxLCIiLFs3XSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXV0sWzUyLCJtIixbNTEsIiIsWzddLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV1dXSxbMjIsWyJjIiwiaW5qZWN0X3NjcmlwdCIsImh0dHBzOi8vd3d3LmNsYXJpdHkubXMiXSxbNDYsWzMsIm4iLDBdLFs0MixbMjMsWzE1LCJuIl0sWzE3LFsxNSwiaSJdLCJsZW5ndGgiXV0sWzMzLFsxNSwibiJdLFszLCJuIixbMCxbMTUsIm4iXSwxXV1dLGZhbHNlLFs0NixbMjIsWzE3LFsxNixbMTUsImkiXSxbMTUsIm4iXV0sInZhbHVlIl0sWzQ2LFsiaCIsInNldCIsWzE3LFsxNixbMTUsImkiXSxbMTUsIm4iXV0sImtleSJdLFsxNyxbMTYsWzE1LCJpIl0sWzE1LCJuIl1dLCJ2YWx1ZSJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwidXNlcklkIl0sWzQ2LFsiayJdXSxbNDYsWyJmIixbNTEsIiIsWzcsIm8iLCJwIl0sWzUyLCJxIixbImciLCJldmVudCJdXSxbMjIsWzIwLFsxNSwicSJdLCJndG0ubG9hZCJdLFs0NixbImsiXV1dXV1dXSxbImIiLFsxNSwiaiJdLFsxNSwibCJdLFsxNSwibSJdXV0sWzQ2LFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV1dXV0KICxbNTAsIl9fYWV2IixbNDYsImEiXSxbNTAsImFDIixbNDYsImFKIl0sWzIyLFsyLFsxNSwidiJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJhSiJdXV0sWzQ2LFs1MyxbMzYsWzE2LFsxNSwidiJdLFsxNSwiYUoiXV1dXV1dLFs1MiwiYUsiLFsxNixbMTUsInoiXSwiZWxlbWVudCJdXSxbMjIsWzI4LFsxNSwiYUsiXV0sWzQ2LFszNixbNDRdXV1dLFs1MiwiYUwiLFsiZyIsWzE1LCJhSyJdXV0sWyJhRCIsWzE1LCJhSiJdLFsxNSwiYUwiXV0sWzM2LFsxNSwiYUwiXV1dLFs1MCwiYUQiLFs0NiwiYUoiLCJhSyJdLFs0MyxbMTUsInYiXSxbMTUsImFKIl0sWzE1LCJhSyJdXSxbMixbMTUsInciXSwicHVzaCIsWzcsWzE1LCJhSiJdXV0sWzIyLFsxOCxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNSwicyJdXSxbNDYsWzUzLFs1MiwiYUwiLFsyLFsxNSwidyJdLCJzaGlmdCIsWzddXV0sWzIsWzE1LCJiIl0sImRlbGV0ZSIsWzcsWzE1LCJ2Il0sWzE1LCJhTCJdXV1dXV1dLFs1MCwiYUUiLFs0NiwiYUoiLCJhSyJdLFs1MiwiYUwiLFsibiIsWzMwLFszMCxbMTYsWzE1LCJ6Il0sImVsZW1lbnRVcmwiXSxbMTUsImFKIl1dLCIiXV1dLFs1MiwiYU0iLFsibiIsWzMwLFsxNyxbMTUsImFLIl0sImNvbXBvbmVudCJdLCJVUkwiXV1dLFszOCxbMTUsImFNIl0sWzQ2LCJVUkwiLCJJU19PVVRCT1VORCIsIlBST1RPQ09MIiwiSE9TVCIsIlBPUlQiLCJQQVRIIiwiRVhURU5TSU9OIiwiUVVFUlkiLCJGUkFHTUVOVCJdLFs0NixbNSxbNDYsWzM2LFsxNSwiYUwiXV1dXSxbNSxbNDYsWzM2LFsiYUciLFsxNSwiYUwiXSxbMTcsWzE1LCJhSyJdLCJhZmZpbGlhdGVkRG9tYWlucyJdXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwibCJdLCJCIixbNyxbMTUsImFMIl1dXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwibCJdLCJDIixbNyxbMTUsImFMIl0sWzE3LFsxNSwiYUsiXSwic3RyaXBXd3ciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkQiLFs3LFsxNSwiYUwiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkUiLFs3LFsxNSwiYUwiXSxbMTcsWzE1LCJhSyJdLCJkZWZhdWx0UGFnZXMiXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJsIl0sIkYiLFs3LFsxNSwiYUwiXV1dXV1dLFs1LFs0NixbMjIsWzE3LFsxNSwiYUsiXSwicXVlcnlLZXkiXSxbNDYsWzUzLFszNixbMixbMTUsImwiXSwiSCIsWzcsWzE1LCJhTCJdLFsxNyxbMTUsImFLIl0sInF1ZXJ5S2V5Il1dXV1dXSxbNDYsWzUzLFszNixbMixbMTcsWyJtIixbMTUsImFMIl1dLCJzZWFyY2giXSwicmVwbGFjZSIsWzcsIj8iLCIiXV1dXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImwiXSwiRyIsWzcsWzE1LCJhTCJdXV1dXV0sWzksWzQ2LFszNixbMTcsWyJtIixbMTUsImFMIl1dLCJocmVmIl1dXV1dXV0sWzUwLCJhRiIsWzQ2LCJhSiIsImFLIl0sWzUyLCJhTCIsWzgsIkFUVFJJQlVURSIsImVsZW1lbnRBdHRyaWJ1dGUiLCJDTEFTU0VTIiwiZWxlbWVudENsYXNzZXMiLCJFTEVNRU5UIiwiZWxlbWVudCIsIklEIiwiZWxlbWVudElkIiwiSElTVE9SWV9DSEFOR0VfU09VUkNFIiwiaGlzdG9yeUNoYW5nZVNvdXJjZSIsIkhJU1RPUllfTkVXX1NUQVRFIiwibmV3SGlzdG9yeVN0YXRlIiwiSElTVE9SWV9ORVdfVVJMX0ZSQUdNRU5UIiwibmV3VXJsRnJhZ21lbnQiLCJISVNUT1JZX09MRF9TVEFURSIsIm9sZEhpc3RvcnlTdGF0ZSIsIkhJU1RPUllfT0xEX1VSTF9GUkFHTUVOVCIsIm9sZFVybEZyYWdtZW50IiwiVEFSR0VUIiwiZWxlbWVudFRhcmdldCJdXSxbNTIsImFNIixbMTYsWzE1LCJ6Il0sWzE2LFsxNSwiYUwiXSxbMTUsImFKIl1dXV0sWzM2LFszOSxbMjEsWzE1LCJhTSJdLFs0NF1dLFsxNSwiYU0iXSxbMTUsImFLIl1dXV0sWzUwLCJhRyIsWzQ2LCJhSiIsImFLIl0sWzIyLFsyOCxbMTUsImFKIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNTIsImFMIixbImFJIixbMTUsImFKIl1dXSxbMjIsWyJhSCIsWzE1LCJhTCJdLFsiayJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFsyOCxbInEiLFsxNSwiYUsiXV1dLFs0NixbNTMsWzMsImFLIixbMixbMixbIm4iLFszMCxbMTUsImFLIl0sIiJdXSwicmVwbGFjZSIsWzcsWyJjIiwiXFxzKyIsImciXSwiIl1dLCJzcGxpdCIsWzcsIiwiXV1dXV1dLFs2NSwiYU0iLFsxNSwiYUsiXSxbNDYsWzUzLFsyMixbMjAsWyJqIixbMTUsImFNIl1dLCJvYmplY3QiXSxbNDYsWzUzLFsyMixbMTYsWzE1LCJhTSJdLCJpc19yZWdleCJdLFs0NixbNTMsWzUyLCJhTiIsWyJjIixbMTYsWzE1LCJhTSJdLCJkb21haW4iXV1dLFsyMixbMjAsWzE1LCJhTiJdLFs0NV1dLFs0NixbNl1dXSxbMjIsWyJwIixbMTUsImFOIl0sWzE1LCJhTCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXSxbNDYsWzUzLFsyMixbImFIIixbMTUsImFMIl0sWzE2LFsxNSwiYU0iXSwiZG9tYWluIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXV1dXV1dLFs0NixbMjIsWzIwLFsiaiIsWzE1LCJhTSJdXSwiUmVnRXhwIl0sWzQ2LFs1MyxbMjIsWyJwIixbMTUsImFNIl0sWzE1LCJhTCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXSxbNDYsWzUzLFsyMixbImFIIixbMTUsImFMIl0sWzE1LCJhTSJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXV1dXV1dXSxbMzYsdHJ1ZV1dLFs1MCwiYUgiLFs0NiwiYUoiLCJhSyJdLFsyMixbMjgsWzE1LCJhSyJdXSxbNDYsWzM2LGZhbHNlXV1dLFsyMixbMTksWzIsWzE1LCJhSiJdLCJpbmRleE9mIixbNyxbMTUsImFLIl1dXSwwXSxbNDYsWzM2LHRydWVdXV0sWzMsImFLIixbImFJIixbMTUsImFLIl1dXSxbMjIsWzI4LFsxNSwiYUsiXV0sWzQ2LFszNixmYWxzZV1dXSxbMywiYUsiLFsyLFsxNSwiYUsiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFs0MSwiYUwiXSxbMywiYUwiLFszNyxbMTcsWzE1LCJhSiJdLCJsZW5ndGgiXSxbMTcsWzE1LCJhSyJdLCJsZW5ndGgiXV1dLFsyMixbMSxbMTgsWzE1LCJhTCJdLDBdLFsyOSxbMixbMTUsImFLIl0sImNoYXJBdCIsWzcsMF1dLCIuIl1dLFs0NixbNTMsWzM0LFszLCJhTCIsWzM3LFsxNSwiYUwiXSwxXV1dLFszLCJhSyIsWzAsIi4iLFsxNSwiYUsiXV1dXV1dLFszNixbMSxbMTksWzE1LCJhTCJdLDBdLFsxMixbMixbMTUsImFKIl0sImluZGV4T2YiLFs3LFsxNSwiYUsiXSxbMTUsImFMIl1dXSxbMTUsImFMIl1dXV1dLFs1MCwiYUkiLFs0NiwiYUoiXSxbMjIsWzI4LFsicCIsWzE1LCJyIl0sWzE1LCJhSiJdXV0sWzQ2LFs1MyxbMywiYUoiLFswLCJodHRwOi8vIixbMTUsImFKIl1dXV1dXSxbMzYsWzIsWzE1LCJsIl0sIkMiLFs3LFsxNSwiYUoiXSx0cnVlXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RWxlbWVudEF0dHJpYnV0ZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbURhdGFMYXllckNhY2hlIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfbGVnYWN5VXJscyJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIl1dLFs1MiwibiIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm8iLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsInAiLFsicmVxdWlyZSIsImludGVybmFsLnRlc3RSZWdleCJdXSxbNTIsInEiLFs1MSwiIixbNywiYUoiXSxbMzYsWzIwLFsiaiIsWzE1LCJhSiJdXSwiYXJyYXkiXV1dXSxbNTIsInIiLFsiYyIsIl5odHRwcz86XFwvXFwvIiwiaSJdXSxbNTIsInMiLDM1XSxbNTIsInQiLCJlcSJdLFs1MiwidSIsImV2YyJdLFs1MiwidiIsWzMwLFsyLFsxNSwibyJdLCJnZXRJdGVtIixbNyxbMTUsInUiXV1dLFs4XV1dLFsyLFsxNSwibyJdLCJzZXRJdGVtIixbNyxbMTUsInUiXSxbMTUsInYiXV1dLFs1MiwidyIsWzMwLFsyLFsxNSwibyJdLCJnZXRJdGVtIixbNyxbMTUsInQiXV1dLFs3XV1dLFsyLFsxNSwibyJdLCJzZXRJdGVtIixbNyxbMTUsInQiXSxbMTUsInciXV1dLFs1MiwieCIsWzE3LFsxNSwiYSJdLCJkZWZhdWx0VmFsdWUiXV0sWzUyLCJ5IixbMTcsWzE1LCJhIl0sInZhclR5cGUiXV0sWzUyLCJ6IixbImkiLCJndG0iXV0sWzM4LFsxNSwieSJdLFs0NiwiVEFHX05BTUUiLCJURVhUIiwiVVJMIiwiQVRUUklCVVRFIl0sWzQ2LFs1LFs0NixbNTIsImFBIixbMTYsWzE1LCJ6Il0sImVsZW1lbnQiXV0sWzUyLCJhQiIsWzEsWzE1LCJhQSJdLFsiaCIsWzE1LCJhQSJdLCJ0YWdOYW1lIl1dXSxbMzYsWzMwLFsxNSwiYUIiXSxbMTUsIngiXV1dXV0sWzUsWzQ2LFszNixbMzAsWyJhQyIsWyJmIiwiZ3RtXFwudW5pcXVlRXZlbnRJZCJdXSxbMTUsIngiXV1dXV0sWzUsWzQ2LFszNixbImFFIixbMTUsIngiXSxbMTUsImEiXV1dXV0sWzUsWzQ2LFsyMixbMjAsWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXSxbNDRdXSxbNDYsWzUzLFszNixbImFGIixbMTUsInkiXSxbMTUsIngiXV1dXV0sWzQ2LFs1MyxbNTIsImFKIixbMTYsWzE1LCJ6Il0sImVsZW1lbnQiXV0sWzUyLCJhSyIsWzEsWzE1LCJhSiJdLFszOSxbMjAsWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXSwidmFsdWUiXSxbImUiLFsxNSwiYUoiXV0sWyJkIixbMTUsImFKIl0sWzE3LFsxNSwiYSJdLCJhdHRyaWJ1dGUiXV1dXV0sWzM2LFszMCxbMzAsWzE1LCJhSyJdLFsxNSwieCJdXSwiIl1dXV1dXV0sWzksWzQ2LFszNixbImFGIixbMTUsInkiXSxbMTUsIngiXV1dXV1dXV0KICxbNTAsIl9fYW5hbHl0aWNzX3N0b3JhZ2UiLFs0NiwiYSJdLFs1MCwiZyIsWzQ2XSxbMjIsWzE3LFsxNSwiYSJdLCJtZWFzdXJlbWVudElkIl0sWzQ2LFs1MyxbNjUsImkiLFsxNyxbMTUsImUiXSwic2Vzc2lvbnMiXSxbNDYsWzUzLFsyMixbMjAsWzE3LFsxNSwiaSJdLCJtZWFzdXJlbWVudF9pZCJdLFsxNyxbMTUsImEiXSwibWVhc3VyZW1lbnRJZCJdXSxbNDYsWzUzLFszNixbMzksWzEyLFsxNyxbMTUsImkiXSwic2Vzc2lvbl9pZCJdLFs0NV1dLCIiLFsiYyIsWzE3LFsxNSwiaSJdLCJzZXNzaW9uX2lkIl1dXV1dXV1dXV0sWzM2LCIiXV1dLFs0NixbNTMsWzUyLCJpIixbMixbMTcsWzE1LCJlIl0sInNlc3Npb25zIl0sIm1hcCIsWzcsWzUxLCIiLFs3LCJqIl0sWzM2LFswLFswLFsxNyxbMTUsImoiXSwibWVhc3VyZW1lbnRfaWQiXSwiOiJdLFsxNyxbMTUsImoiXSwic2Vzc2lvbl9pZCJdXV1dXV1dLFszNixbMzksWzE4LFsxNyxbMTUsImkiXSwibGVuZ3RoIl0sMF0sWzAsWzAsWzE1LCJmIl0sIi4iXSxbMixbMTUsImkiXSwiam9pbiIsWzcsIiwiXV1dLCIiXV1dXV1dLFs1MCwiaCIsWzQ2XSxbMjIsWzE3LFsxNSwiYSJdLCJtZWFzdXJlbWVudElkIl0sWzQ2LFs1MyxbNjUsImkiLFsxNyxbMTUsImUiXSwic2Vzc2lvbnMiXSxbNDYsWzUzLFsyMixbMjAsWzE3LFsxNSwiaSJdLCJtZWFzdXJlbWVudF9pZCJdLFsxNyxbMTUsImEiXSwibWVhc3VyZW1lbnRJZCJdXSxbNDYsWzUzLFszNixbMzksWzEyLFsxNyxbMTUsImkiXSwic2Vzc2lvbl9udW1iZXIiXSxbNDVdXSwiIixbImMiLFsxNyxbMTUsImkiXSwic2Vzc2lvbl9udW1iZXIiXV1dXV1dXV1dXSxbMzYsIiJdXV0sWzQ2LFs1MyxbNTIsImkiLFsyLFsxNyxbMTUsImUiXSwic2Vzc2lvbnMiXSwibWFwIixbNyxbNTEsIiIsWzcsImoiXSxbMzYsWzAsWzAsWzE3LFsxNSwiaiJdLCJtZWFzdXJlbWVudF9pZCJdLCI6Il0sWzE3LFsxNSwiaiJdLCJzZXNzaW9uX251bWJlciJdXV1dXV1dLFszNixbMzksWzE4LFsxNyxbMTUsImkiXSwibGVuZ3RoIl0sMF0sWzAsWzAsWzE1LCJmIl0sIi4iXSxbMixbMTUsImkiXSwiam9pbiIsWzcsIiwiXV1dLCIiXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwicmVhZEFuYWx5dGljc1N0b3JhZ2UiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZCIsWzgsImNvb2tpZV9wcmVmaXgiLFsxNyxbMTUsImEiXSwiY29va2llUHJlZml4Il1dXSxbNTIsImUiLFsiYiIsWzE1LCJkIl1dXSxbNTIsImYiLCJBU1YxIl0sWzM4LFsxNyxbMTUsImEiXSwiZGF0YUZpZWxkIl0sWzQ2LCJjbGllbnRfaWQiLCJzZXNzaW9uX2lkIiwic2Vzc2lvbl9udW1iZXIiXSxbNDYsWzUsWzQ2LFszNixbMzAsWzE3LFsxNSwiZSJdLCJjbGllbnRfaWQiXSwiIl1dXV0sWzUsWzQ2LFszNixbImciXV1dXSxbNSxbNDYsWzM2LFsiaCJdXV1dLFs5LFs0NixbMzYsWzQ0XV1dXV1dXQogLFs1MCwiX19iYXV0IixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImluamVjdFNjcmlwdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImNhbGxJbldpbmRvdyJdXSxbNTIsImQiLFsicmVxdWlyZSIsIm1ha2VUYWJsZU1hcCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImxvZ1RvQ29uc29sZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImFkZENvbnNlbnRMaXN0ZW5lciJdXSxbNTIsImciLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzM4LFsxNyxbMTUsImEiXSwiZXZlbnRUeXBlIl0sWzQ2LCJQQUdFX0xPQUQiLCJWQVJJQUJMRV9SRVZFTlVFIiwiQ1VTVE9NIl0sWzQ2LFs1LFs0NixbNDMsWzE1LCJhIl0sImV2ZW50VHlwZSIsInBhZ2VWaWV3Il0sWzRdXV0sWzUsWzQ2LFs0MyxbMTUsImEiXSwiZXZlbnRUeXBlIiwidmFyaWFibGVSZXZlbnVlIl0sWzRdXV0sWzUsWzQ2LFs0MyxbMTUsImEiXSwiZXZlbnRUeXBlIiwiY3VzdG9tIl1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImV2ZW50Q2F0ZWdvcnkiXSxbNDYsWzUzLFs0MyxbMTUsImEiXSwicF9ldmVudF9jYXRlZ29yeSIsWzE3LFsxNSwiYSJdLCJldmVudENhdGVnb3J5Il1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImV2ZW50TGFiZWwiXSxbNDYsWzUzLFs0MyxbMTUsImEiXSwicF9ldmVudF9sYWJlbCIsWzE3LFsxNSwiYSJdLCJldmVudExhYmVsIl1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImV2ZW50VmFsdWUiXSxbNDYsWzUzLFs0MyxbMTUsImEiXSwicF9ldmVudF92YWx1ZSIsWzE3LFsxNSwiYSJdLCJldmVudFZhbHVlIl1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImdvYWxWYWx1ZSJdLFs0NixbNTMsWzQzLFsxNSwiYSJdLCJwX3JldmVudWVfdmFsdWUiLFsxNyxbMTUsImEiXSwiZ29hbFZhbHVlIl1dXV1dLFs1MiwiaCIsWzUxLCIiLFs3LCJuIiwibyIsInAiXSxbNDEsInEiXSxbMywicSIsWzgsInNvdXJjZSIsWzM5LFsxNSwicCJdLCJndG1faW5pdCIsImd0bV91cGRhdGUiXV1dLFs0MyxbMTUsInEiXSxbMTUsIm4iXSxbMzksWzE1LCJvIl0sImdyYW50ZWQiLCJkZW5pZWQiXV0sWyJlIiwiVUVUIEdUTSB1cGRhdGluZyBjb25zZW50OiIsWzE1LCJxIl1dLFsiYyIsIlVFVF9wdXNoIixbMTcsWzE1LCJhIl0sInVldHFOYW1lIl0sImNvbnNlbnQiLCJ1cGRhdGUiLFsxNSwicSJdXV1dLFs1MiwiaSIsWzUxLCIiLFs3XSxbImMiLCJVRVRfcHVzaCIsWzE3LFsxNSwiYSJdLCJ1ZXRxTmFtZSJdLCJjb25zZW50IiwiZGVmYXVsdCIsWzgsInNvdXJjZSIsImd0bV9kZWZhdWx0Iiwid2FpdF9mb3JfdXBkYXRlIiw1MDBdXV1dLFs1MiwiaiIsWzUxLCIiLFs3XSxbNTIsIm4iLFszOSxbMzAsWzIwLFsxNyxbMTUsImEiXSwiZXZlbnRUeXBlIl0sInBhZ2VWaWV3Il0sWzI4LFsxNyxbMTUsImEiXSwiY3VzdG9tUGFyYW1UYWJsZSJdXV0sWzhdLFsiZCIsWzE3LFsxNSwiYSJdLCJjdXN0b21QYXJhbVRhYmxlIl0sImN1c3RvbVBhcmFtTmFtZSIsImN1c3RvbVBhcmFtVmFsdWUiXV1dLFs1MiwibyIsWzgsInBhZ2VWaWV3U3BhIixbNywicGFnZV9wYXRoIiwicGFnZV90aXRsZSJdLCJ2YXJpYWJsZVJldmVudWUiLFs3LCJjdXJyZW5jeSIsInJldmVudWVfdmFsdWUiXSwiY3VzdG9tIixbNywiZXZlbnRfY2F0ZWdvcnkiLCJldmVudF9sYWJlbCIsImV2ZW50X3ZhbHVlIiwiY3VycmVuY3kiLCJyZXZlbnVlX3ZhbHVlIl0sImVjb21tZXJjZSIsWzcsImVjb21tX3Byb2RpZCIsImVjb21tX3BhZ2V0eXBlIiwiZWNvbW1fdG90YWx2YWx1ZSIsImVjb21tX2NhdGVnb3J5Il0sImhvdGVsIixbNywiY3VycmVuY3kiLCJoY3RfYmFzZV9wcmljZSIsImhjdF9ib29raW5nX3hyZWYiLCJoY3RfY2hlY2tpbl9kYXRlIiwiaGN0X2NoZWNrb3V0X2RhdGUiLCJoY3RfbGVuZ3RoX29mX3N0YXkiLCJoY3RfcGFydG5lcl9ob3RlbF9pZCIsImhjdF90b3RhbF9wcmljZSIsImhjdF9wYWdldHlwZSJdLCJ0cmF2ZWwiLFs3LCJ0cmF2ZWxfZGVzdGlkIiwidHJhdmVsX29yaWdpbmlkIiwidHJhdmVsX3BhZ2V0eXBlIiwidHJhdmVsX3N0YXJ0ZGF0ZSIsInRyYXZlbF9lbmRkYXRlIiwidHJhdmVsX3RvdGFsdmFsdWUiXSwiZW5oYW5jZWRDb252ZXJzaW9uIixbNywiZW0iLCJwaCJdXV0sWzY1LCJwIixbMzAsWzE2LFsxNSwibyJdLFsxNyxbMTUsImEiXSwiZXZlbnRUeXBlIl1dLFs3XV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sWzE1LCJwIl0sWzMwLFsxNixbMTUsIm4iXSxbMTUsInAiXV0sWzE2LFsxNSwiYSJdLFswLCJwXyIsWzE1LCJwIl1dXV1dXV1dLFs0MyxbMTUsIm4iXSwidHBwIiwiMSJdLFszNixbMTUsIm4iXV1dXSxbNTIsImsiLFs1MSwiIixbN10sWzQxLCJxIl0sWzUyLCJuIixbMzksWzI4LFsxNyxbMTUsImEiXSwiY3VzdG9tQ29uZmlnVGFibGUiXV0sWzhdLFsiZCIsWzE3LFsxNSwiYSJdLCJjdXN0b21Db25maWdUYWJsZSJdLCJjdXN0b21Db25maWdOYW1lIiwiY3VzdG9tQ29uZmlnVmFsdWUiXV1dLFs1NCwiciIsWzE1LCJuIl0sWzQ2LFs1MyxbMjIsWzIwLFsxNixbMTUsIm4iXSxbMTUsInIiXV0sInRydWUiXSxbNDYsWzUzLFs0MyxbMTUsIm4iXSxbMTUsInIiXSx0cnVlXV1dLFs0NixbMjIsWzIwLFsxNixbMTUsIm4iXSxbMTUsInIiXV0sImZhbHNlIl0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sWzE1LCJyIl0sZmFsc2VdXV1dXV1dXV0sWzUyLCJvIixbNywibmF2VGltaW5nQXBpIiwiZW5hYmxlQXV0b1NwYVRyYWNraW5nIiwic3RvcmVDb252VHJhY2tDb29raWVzIiwicmVtb3ZlUXVlcnlGcm9tVXJscyIsImRpc2FibGVBdXRvUGFnZVZpZXciXV0sWzY1LCJyIixbMTUsIm8iXSxbNDYsWzUzLFs0MyxbMTUsIm4iXSxbMTUsInIiXSxbMzAsWzE2LFsxNSwibiJdLFsxNSwiciJdXSxbMTYsWzE1LCJhIl0sWzAsImNfIixbMTUsInIiXV1dXV1dXV0sWzIyLFsyMCxbMTcsWzE1LCJhIl0sImNfZW5oYW5jZWRDb252ZXJzaW9uIl0sdHJ1ZV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sInBhZ2VQaWQiLFs4LCJlbSIsWzE3LFsxNSwiYSJdLCJwX2VtIl0sInBoIixbMTcsWzE1LCJhIl0sInBfcGgiXV1dXV1dLFs1MiwicCIsWzcsImFkX3N0b3JhZ2UiLCJhZF9wZXJzb25hbGl6YXRpb24iLCJhZF91c2VyX2RhdGEiXV0sWzIyLFsxNyxbMTUsImEiXSwiY19jb25zZW50SW5oZXJpdEd0bSJdLFs0NixbNTMsWyJpIl0sWzY1LCJyIixbMTUsInAiXSxbNDYsWzUzLFszLCJxIixbImciLFsxNSwiciJdXV0sWyJlIiwiVUVUIEdUTSBpbmhlcml0ZWQgY29uc2VudCIsWzE1LCJyIl0sIiA9ICIsWzM5LFsxNSwicSJdLCJncmFudGVkIiwiZGVuaWVkIl1dLFsiaCIsWzE1LCJyIl0sWzE1LCJxIl0sdHJ1ZV1dXV1dXV0sWzIyLFszMCxbMjAsWzE3LFsxNSwiYSJdLCJjX2NvbnNlbnRVcGRhdGVzIl0sWzQ0XV0sWzE3LFsxNSwiYSJdLCJjX2NvbnNlbnRVcGRhdGVzIl1dLFs0NixbNTMsWyJlIiwiVUVUIEdUTSBsaXN0ZW5pbmcgZm9yIGNvbnNlbnQgdXBkYXRlcyJdLFs2NSwiciIsWzE1LCJwIl0sWzQ2LFs1MyxbImYiLFsxNSwiciJdLFsxNSwiaCJdXV1dXV1dXSxbNDMsWzE1LCJuIl0sInRpIixbMTcsWzE1LCJhIl0sInRhZ0lkIl1dLFs0MyxbMTUsIm4iXSwidG0iLCJndG0wMDIiXSxbMzYsWzE1LCJuIl1dXV0sWzUyLCJsIixbNTEsIiIsWzddLFsyMixbMjAsWzE3LFsxNSwiYSJdLCJldmVudFR5cGUiXSwicGFnZVZpZXciXSxbNDYsWzUzLFs1MiwibiIsWyJrIl1dLFsiYyIsIlVFVF9pbml0IixbMTcsWzE1LCJhIl0sInVldHFOYW1lIl0sWzE1LCJuIl1dLFsiYyIsIlVFVF9wdXNoIixbMTcsWzE1LCJhIl0sInVldHFOYW1lIl0sInBhZ2VMb2FkIl1dXSxbNDYsWzUzLFs1MiwibiIsWyJqIl1dLFsyMixbMjAsWzE3LFsxNSwiYSJdLCJldmVudFR5cGUiXSwicGFnZVZpZXdTcGEiXSxbNDYsWzUzLFsiYyIsIlVFVF9wdXNoIixbMTcsWzE1LCJhIl0sInVldHFOYW1lIl0sImV2ZW50IiwicGFnZV92aWV3IixbMTUsIm4iXV1dXSxbNDYsWzUzLFsyMixbMjAsWzE3LFsxNSwiYSJdLCJldmVudFR5cGUiXSwiZW5oYW5jZWRDb252ZXJzaW9uIl0sWzQ2LFs1MyxbImMiLCJVRVRfcHVzaCIsWzE3LFsxNSwiYSJdLCJ1ZXRxTmFtZSJdLCJzZXQiLFs4LCJwaWQiLFsxNSwibiJdXV1dXSxbNDYsWzUzLFs1MiwibyIsWzMwLFszMCxbMTcsWzE1LCJhIl0sImN1c3RvbUV2ZW50QWN0aW9uIl0sWzE3LFsxNSwiYSJdLCJldmVudEFjdGlvbiJdXSwiIl1dLFsiYyIsIlVFVF9wdXNoIixbMTcsWzE1LCJhIl0sInVldHFOYW1lIl0sImV2ZW50IixbMTUsIm8iXSxbMTUsIm4iXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV1dLFs1MiwibSIsImh0dHBzOi8vYmF0LmJpbmcuY29tL2JhdC5qcyJdLFsiYiIsWzE1LCJtIl0sWzE1LCJsIl0sWzE3LFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiXSxbMTUsIm0iXV1dCiAsWzUwLCJfX2MiLFs0NiwiYSJdLFszNixbMTcsWzE1LCJhIl0sInZhbHVlIl1dXQogLFs1MCwiX19jbCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIl1dLFsiYiJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX2V2bCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImQiLFs4LCJzZWxlY3RvclR5cGUiLFsxNyxbMTUsImEiXSwic2VsZWN0b3JUeXBlIl0sImlkIixbMTcsWzE1LCJhIl0sImVsZW1lbnRJZCJdLCJzZWxlY3RvciIsWzE3LFsxNSwiYSJdLCJlbGVtZW50U2VsZWN0b3IiXSwidXNlRG9tQ2hhbmdlTGlzdGVuZXIiLFsyOCxbMjgsWzE3LFsxNSwiYSJdLCJ1c2VEb21DaGFuZ2VMaXN0ZW5lciJdXV0sIm9uU2NyZWVuUmF0aW8iLFsiYyIsWzE3LFsxNSwiYSJdLCJvblNjcmVlblJhdGlvIl1dLCJmaXJpbmdGcmVxdWVuY3kiLFsxNyxbMTUsImEiXSwiZmlyaW5nRnJlcXVlbmN5Il1dXSxbMjIsWzE3LFsxNSwiYSJdLCJ1c2VPblNjcmVlbkR1cmF0aW9uIl0sWzQ2LFs1MyxbNDMsWzE1LCJkIl0sIm9uU2NyZWVuRHVyYXRpb24iLFsiYyIsWzE3LFsxNSwiYSJdLCJvblNjcmVlbkR1cmF0aW9uIl1dXV1dXSxbImIiLFsxNSwiZCJdLFsxNyxbMTUsImEiXSwidW5pcXVlVHJpZ2dlcklkIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2YiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiY29weUZyb21EYXRhTGF5ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRSZWZlcnJlclVybCJdXSxbNTIsImQiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfbGVnYWN5VXJscyJdXSxbNTIsImciLFszMCxbImIiLCJndG0ucmVmZXJyZXIiLDFdLFsiYyJdXV0sWzIyLFsyOCxbMTUsImciXV0sWzQ2LFszNixbImQiLFsxNSwiZyJdXV1dXSxbMzgsWzE3LFsxNSwiYSJdLCJjb21wb25lbnQiXSxbNDYsIlBST1RPQ09MIiwiSE9TVCIsIlBPUlQiLCJQQVRIIiwiUVVFUlkiLCJGUkFHTUVOVCIsIlVSTCJdLFs0NixbNSxbNDYsWzM2LFsyLFsxNSwiZiJdLCJCIixbNyxbMTUsImciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJmIl0sIkMiLFs3LFsxNSwiZyJdLFsxNyxbMTUsImEiXSwic3RyaXBXd3ciXV1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJmIl0sIkQiLFs3LFsxNSwiZyJdXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImYiXSwiRSIsWzcsWzE1LCJnIl0sWzE3LFsxNSwiYSJdLCJkZWZhdWx0UGFnZXMiXV1dXV1dLFs1LFs0NixbMjIsWzE3LFsxNSwiYSJdLCJxdWVyeUtleSJdLFs0NixbNTMsWzM2LFsyLFsxNSwiZiJdLCJIIixbNyxbMTUsImciXSxbMTcsWzE1LCJhIl0sInF1ZXJ5S2V5Il1dXV1dXV0sWzUyLCJoIixbImUiLFsxNSwiZyJdXV0sWzM2LFsyLFsxNyxbMTUsImgiXSwic2VhcmNoIl0sInJlcGxhY2UiLFs3LCI/IiwiIl1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJmIl0sIkciLFs3LFsxNSwiZyJdXV1dXV0sWzUsWzQ2XV0sWzksWzQ2LFszNixbMixbMTUsImYiXSwiQSIsWzcsWyJkIixbMTUsImciXV1dXV1dXV1dXQogLFs1MCwiX19nYWF3ZSIsWzQ2LCJhIl0sWzUwLCJyIixbNDYsImFFIl0sWzIsWzE1LCJxIl0sInB1c2giLFs3LFsxNSwiYUUiXV1dXSxbNTAsInYiLFs0NiwiYUUiLCJhRiIsImFHIl0sWzUyLCJhSCIsWzhdXSxbNTIsImFJIixbNTEsIiIsWzcsImFNIiwiYU4iXSxbNDMsWzE1LCJhSCJdLFsxNSwiYU0iXSxbMzAsWzE2LFsxNSwiYUgiXSxbMTUsImFNIl1dLFsxNSwiYU4iXV1dXV0sWzUyLCJhSiIsWzUxLCIiLFs3LCJhTSIsImFOIiwiYU8iXSxbInIiLFsxNyxbMTUsImsiXSwiRiJdXSxbMjIsWzE1LCJhTSJdLFs0NixbNTMsWzQzLFsxNSwiYUgiXSwiaXRlbXMiLFszMCxbMTYsWzE1LCJhSCJdLCJpdGVtcyJdLFs3XV1dLFs2NSwiYVAiLFsxNSwiYU0iXSxbNDYsWzUzLFs1MiwiYVEiLFs4XV0sWzU0LCJhUiIsWzE1LCJhUCJdLFs0NixbNTMsWzUyLCJhUyIsWzE2LFsxNSwiYVAiXSxbMTUsImFSIl1dXSxbMjIsWzEsWzE1LCJhTyJdLFsyMCxbMTUsImFSIl0sImlkIl1dLFs0NixbNTMsWzQzLFsxNSwiYVEiXSwicHJvbW90aW9uX2lkIixbMTUsImFTIl1dXV0sWzQ2LFsyMixbMSxbMTUsImFPIl0sWzIwLFsxNSwiYVIiXSwibmFtZSJdXSxbNDYsWzUzLFs0MyxbMTUsImFRIl0sInByb21vdGlvbl9uYW1lIixbMTUsImFTIl1dXV0sWzQ2LFs1MyxbNDMsWzE1LCJhUSJdLFsxNSwiYVIiXSxbMTUsImFTIl1dXV1dXV1dXV0sWzIsWzE2LFsxNSwiYUgiXSwiaXRlbXMiXSwicHVzaCIsWzcsWzE1LCJhUSJdXV1dXV1dXV0sWzIyLFsxNSwiYU4iXSxbNDYsWzUzLFs1NSwiYVAiLFsxNSwiYU4iXSxbNDYsWzUzLFsyMixbMixbMTUsInMiXSwiaGFzT3duUHJvcGVydHkiLFs3LFsxNSwiYVAiXV1dLFs0NixbNTMsWyJhSSIsWzE2LFsxNSwicyJdLFsxNSwiYVAiXV0sWzE2LFsxNSwiYU4iXSxbMTUsImFQIl1dXV1dLFs0NixbNTMsWyJhSSIsWzE1LCJhUCJdLFsxNixbMTUsImFOIl0sWzE1LCJhUCJdXV1dXV1dXV1dXV1dXSxbNDEsImFLIl0sWzIyLFsyMCxbMTcsWzE1LCJhRSJdLCJnZXRFY29tbWVyY2VEYXRhRnJvbSJdLCJkYXRhTGF5ZXIiXSxbNDYsWzUzLFszLCJhSyIsWyJjIiwiZXZlbnRNb2RlbCJdXSxbMjIsWzI4LFsxNSwiYUsiXV0sWzQ2LFs1MyxbMywiYUsiLFsiYiIsImVjb21tZXJjZSJdXV1dXV1dLFs0NixbNTMsWzMsImFLIixbMTcsWzE1LCJhRSJdLCJlY29tbWVyY2VNYWNyb0RhdGEiXV0sWzIyLFsxLFsxLFsyMCxbImQiLFsxNSwiYUsiXV0sIm9iamVjdCJdLFsxNixbMTUsImFLIl0sImVjb21tZXJjZSJdXSxbMjgsWzE2LFsxNSwiYUsiXSwiaXRlbXMiXV1dLFs0NixbNTMsWzMsImFLIixbMTYsWzE1LCJhSyJdLCJlY29tbWVyY2UiXV1dXV1dXV0sWzIyLFsyMSxbImQiLFsxNSwiYUsiXV0sIm9iamVjdCJdLFs0NixbMzZdXV0sWzQxLCJhTCJdLFszLCJhTCIsZmFsc2VdLFs1NSwiYU0iLFsxNSwiYUsiXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzUzLFsiciIsWzE3LFsxNSwiayJdLCJFIl1dLFszLCJhTCIsdHJ1ZV1dXV0sWzIyLFsyMCxbMTUsImFNIl0sImN1cnJlbmN5Q29kZSJdLFs0NixbNTMsWyJhSSIsImN1cnJlbmN5IixbMTYsWzE1LCJhSyJdLCJjdXJyZW5jeUNvZGUiXV1dXSxbNDYsWzIyLFsxLFsyMCxbMTUsImFNIl0sImltcHJlc3Npb25zIl0sWzIwLFsxNSwiYUYiXSwidmlld19pdGVtX2xpc3QiXV0sWzQ2LFs1MyxbImFKIixbMTYsWzE1LCJhSyJdLCJpbXByZXNzaW9ucyJdLFs0NV1dXV0sWzQ2LFsyMixbMSxbMjAsWzE1LCJhTSJdLCJwcm9tb0NsaWNrIl0sWzIwLFsxNSwiYUYiXSwic2VsZWN0X3Byb21vdGlvbiJdXSxbNDYsWzUzLFsiYUoiLFsxNixbMTYsWzE1LCJhSyJdLCJwcm9tb0NsaWNrIl0sInByb21vdGlvbnMiXSxbMTYsWzE2LFsxNSwiYUsiXSwicHJvbW9DbGljayJdLCJhY3Rpb25GaWVsZCJdLHRydWVdXV0sWzQ2LFsyMixbMSxbMjAsWzE1LCJhTSJdLCJwcm9tb1ZpZXciXSxbMjAsWzE1LCJhRiJdLCJ2aWV3X3Byb21vdGlvbiJdXSxbNDYsWzUzLFsiYUoiLFsxNixbMTYsWzE1LCJhSyJdLCJwcm9tb1ZpZXciXSwicHJvbW90aW9ucyJdLFsxNixbMTYsWzE1LCJhSyJdLCJwcm9tb1ZpZXciXSwiYWN0aW9uRmllbGQiXSx0cnVlXV1dLFs0NixbMjIsWzIsWzE1LCJ0Il0sImhhc093blByb3BlcnR5IixbNyxbMTUsImFNIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRiJdLFsxNixbMTUsInQiXSxbMTUsImFNIl1dXSxbNDYsWzUzLFsiYUoiLFsxNixbMTYsWzE1LCJhSyJdLFsxNSwiYU0iXV0sInByb2R1Y3RzIl0sWzE2LFsxNixbMTUsImFLIl0sWzE1LCJhTSJdXSwiYWN0aW9uRmllbGQiXV1dXSxbNDYsWzUzXV1dXV0sWzQ2LFs1MyxbNDMsWzE1LCJhSCJdLFsxNSwiYU0iXSxbMTYsWzE1LCJhSyJdLFsxNSwiYU0iXV1dXV1dXV1dXV1dXV1dXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFsxNSwiYUgiXSxbMTUsImFHIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbURhdGFMYXllckNhY2hlIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImxvZ1RvQ29uc29sZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJnIixbInJlcXVpcmUiLCJtYWtlVGFibGVNYXAiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwiaSIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwibyIsWzE1LCJfX21vZHVsZV9ndGFnIl1dLFs1MiwicCIsWzE1LCJfX21vZHVsZV9vYmplY3QiXV0sWzUyLCJxIixbN11dLFs1MiwicyIsWzgsImlkIiwidHJhbnNhY3Rpb25faWQiLCJyZXZlbnVlIiwidmFsdWUiLCJsaXN0IiwiaXRlbV9saXN0X25hbWUiXV0sWzUyLCJ0IixbOCwiY2xpY2siLCJzZWxlY3RfaXRlbSIsImRldGFpbCIsInZpZXdfaXRlbSIsImFkZCIsImFkZF90b19jYXJ0IiwicmVtb3ZlIiwicmVtb3ZlX2Zyb21fY2FydCIsImNoZWNrb3V0IiwiYmVnaW5fY2hlY2tvdXQiLCJjaGVja291dF9vcHRpb24iLCJjaGVja291dF9vcHRpb24iLCJwdXJjaGFzZSIsInB1cmNoYXNlIiwicmVmdW5kIiwicmVmdW5kIl1dLFs1MiwidSIsWzgsImFkZF9wYXltZW50X2luZm8iLDEsImFkZF9zaGlwcGluZ19pbmZvIiwxLCJhZGRfdG9fY2FydCIsMSwicmVtb3ZlX2Zyb21fY2FydCIsMSwidmlld19jYXJ0IiwxLCJiZWdpbl9jaGVja291dCIsMSwic2VsZWN0X2l0ZW0iLDEsInZpZXdfaXRlbV9saXN0IiwxLCJzZWxlY3RfcHJvbW90aW9uIiwxLCJ2aWV3X3Byb21vdGlvbiIsMSwicHVyY2hhc2UiLDEsInJlZnVuZCIsMSwidmlld19pdGVtIiwxLCJhZGRfdG9fd2lzaGxpc3QiLDFdXSxbNDEsInciXSxbMjIsWzE3LFsxNSwiYSJdLCJtaWdyYXRlZFRvVjIiXSxbNDYsWzUzLFszLCJ3IixbImYiLFsxNyxbMTUsImEiXSwibWVhc3VyZW1lbnRJZE92ZXJyaWRlIl1dXV1dLFs0NixbNTMsWzMsInciLFsiZiIsWzMwLFsxNyxbMTUsImEiXSwibWVhc3VyZW1lbnRJZE92ZXJyaWRlIl0sWzE3LFsxNSwiYSJdLCJtZWFzdXJlbWVudElkIl1dXV1dXV0sWzIyLFsyMSxbMixbMTUsInciXSwiaW5kZXhPZiIsWzcsIkctIl1dLDBdLFs0NixbNTMsWyJlIixbMCwiSW52YWxpZCBNZWFzdXJlbWVudCBJRCBmb3IgdGhlIEdBNCBldmVudCB0YWc6ICIsWzE1LCJ3Il1dXSxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzUyLCJ4IixbImYiLFsxNyxbMTUsImEiXSwiZXZlbnROYW1lIl1dXSxbNTIsInkiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwic2VuZEVjb21tZXJjZURhdGEiXSxbNDYsWzUzLFsyMixbMSxbMjgsWzE2LFsxNSwidSJdLFsxNSwieCJdXV0sWzIxLFsxNSwieCJdLCJjaGVja291dF9vcHRpb24iXV0sWzQ2LFs1MyxbImUiLFswLFswLCJJbnZhbGlkIEVjb21tZXJjZSBldmVudCBuYW1lIFwiIixbMTUsIngiXV0sIlwiIl1dXV0sWzQ2LFs1MyxbInYiLFsxNSwiYSJdLFsxNSwieCJdLFsxNSwieSJdXV1dXV1dXSxbNTIsInoiLFsxNyxbMTUsImEiXSwiZXZlbnRTZXR0aW5nc1ZhcmlhYmxlIl1dLFsyMixbMTUsInoiXSxbNDYsWzUzLFs1NSwiYUUiLFsxNSwieiJdLFs0NixbNTMsWzIyLFsyLFsxNSwieiJdLCJoYXNPd25Qcm9wZXJ0eSIsWzcsWzE1LCJhRSJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJ5Il0sWzE1LCJhRSJdLFsxNixbMTUsInoiXSxbMTUsImFFIl1dXV1dXV1dXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzVGFibGUiXSxbNDYsWzUzLFs1MiwiYUUiLFszMCxbImciLFszMCxbMTcsWzE1LCJhIl0sImV2ZW50U2V0dGluZ3NUYWJsZSJdLFs3XV0sInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIl0sWzhdXV0sWzU1LCJhRiIsWzE1LCJhRSJdLFs0NixbNTMsWzQzLFsxNSwieSJdLFsxNSwiYUYiXSxbMTYsWzE1LCJhRSJdLFsxNSwiYUYiXV1dXV1dXV1dLFs1MiwiYUEiLFszMCxbImciLFszMCxbMTcsWzE1LCJhIl0sImV2ZW50UGFyYW1ldGVycyJdLFs3XV0sIm5hbWUiLCJ2YWx1ZSJdLFs4XV1dLFs1NSwiYUUiLFsxNSwiYUEiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSxbMTUsImFFIl0sWzE2LFsxNSwiYUEiXSxbMTUsImFFIl1dXV1dXSxbNTIsImFCIixbMTcsWzE1LCJhIl0sInVzZXJEYXRhVmFyaWFibGUiXV0sWzIyLFsxNSwiYUIiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSwidXNlcl9kYXRhIixbMTUsImFCIl1dXV1dLFsyMixbMzAsWzIsWzE1LCJ5Il0sImhhc093blByb3BlcnR5IixbNywidXNlcl9wcm9wZXJ0aWVzIl1dLFsxNyxbMTUsImEiXSwidXNlclByb3BlcnRpZXMiXV0sWzQ2LFs1MyxbNTIsImFFIixbMzAsWzE2LFsxNSwieSJdLCJ1c2VyX3Byb3BlcnRpZXMiXSxbOF1dXSxbMixbMTUsInAiXSwiQSIsWzcsWzMwLFsiZyIsWzMwLFsxNyxbMTUsImEiXSwidXNlclByb3BlcnRpZXMiXSxbN11dLCJuYW1lIiwidmFsdWUiXSxbOF1dLFsxNSwiYUUiXV1dLFs0MyxbMTUsInkiXSwidXNlcl9wcm9wZXJ0aWVzIixbMTUsImFFIl1dXV1dLFs1MiwiYUMiLFs4LCJub0d0bUV2ZW50Iix0cnVlXV0sWzIyLFsxOCxbMTcsWzE1LCJxIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiYUMiXSwiZXZlbnRNZXRhZGF0YSIsWzgsImV2ZW50X3VzYWdlIixbMTUsInEiXV1dXV1dLFs1MiwiYUQiLFszMCxbMTcsWzE1LCJhQyJdLCJldmVudE1ldGFkYXRhIl0sWzhdXV0sWzIsWzE1LCJvIl0sIkgiLFs3LFsxNSwiYUQiXSxbMTUsInciXV1dLFsyMixbMTgsWzE3LFsyLFsxNSwiaiJdLCJrZXlzIixbNyxbMTUsImFEIl1dXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJhQyJdLCJldmVudE1ldGFkYXRhIixbMTUsImFEIl1dXV1dLFsyLFsxNSwibyJdLCJFIixbNyxbMTUsInkiXSxbMTcsWzE1LCJvIl0sIkIiXSxbNTEsIiIsWzcsImFFIl0sWzM2LFszOSxbMjAsImZhbHNlIixbMixbImYiLFsxNSwiYUUiXV0sInRvTG93ZXJDYXNlIixbN11dXSxmYWxzZSxbMjgsWzI4LFsxNSwiYUUiXV1dXV1dXV0sWzIsWzE1LCJvIl0sIkUiLFs3LFsxNSwieSJdLFsxNyxbMTUsIm8iXSwiRCJdLFs1MSwiIixbNywiYUUiXSxbMzYsWyJpIixbMTUsImFFIl1dXV1dXSxbImgiLFsxNSwidyJdLFsxNSwieCJdLFsxNSwieSJdLFsxNSwiYUMiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fZ2FzIixbNDYsImEiXSxbNTAsImQiLFs0NiwiZSIsImYiLCJnIl0sWzQzLFsxNSwiZSJdLCJmaWVsZHNUb1NldCIsWzMwLFsxNyxbMTUsImUiXSwiZmllbGRzVG9TZXQiXSxbN11dXSxbNTIsImgiLFsxNixbMTUsImUiXSxbMTUsImYiXV1dLFsyMixbMjEsWzE1LCJoIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTcsWzE1LCJlIl0sImZpZWxkc1RvU2V0Il0sInB1c2giLFs3LFs4LCJmaWVsZE5hbWUiLFsxNSwiZyJdLCJ2YWx1ZSIsWzE1LCJoIl1dXV0sWzIsWzE1LCJiIl0sImRlbGV0ZSIsWzcsWzE1LCJlIl0sWzE1LCJmIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbOF1dLFs2NSwiZSIsWzIsWzE1LCJiIl0sImVudHJpZXMiLFs3LFsxNSwiYSJdXV0sWzQ2LFs1MyxbNTIsImYiLFsxNixbMTUsImUiXSwwXV0sWzIyLFszMCxbMjAsWzE1LCJmIl0sImZ1bmN0aW9uIl0sWzIwLFsxNSwiZiJdLCJpbnN0YW5jZV9uYW1lIl1dLFs0NixbNTMsWzQzLFsxNSwiYyJdLFsxNSwiZiJdLFs0NV1dXV0sWzQ2LFs1MyxbNDMsWzE1LCJjIl0sWzE1LCJmIl0sWzE2LFsxNSwiZSJdLDFdXV1dXV1dXSxbImQiLFsxNSwiYyJdLCJjb29raWVEb21haW4iLCJjb29raWVEb21haW4iXSxbNjUsImUiLFsyLFsxNSwiYiJdLCJrZXlzIixbNyxbMTUsImMiXV1dLFs0NixbNTMsWzQzLFsxNSwiYyJdLFswLCJ2dHBfIixbMTUsImUiXV0sWzE2LFsxNSwiYyJdLFsxNSwiZSJdXV1dXV0sWzM2LFsxNSwiYyJdXV0KICxbNTAsIl9fZ29vZ3RhZyIsWzQ2LCJhIl0sWzUwLCJtIixbNDYsInYiLCJ3Il0sWzY2LCJ4IixbMixbMTUsImIiXSwia2V5cyIsWzcsWzE1LCJ3Il1dXSxbNDYsWzUzLFs0MyxbMTUsInYiXSxbMTUsIngiXSxbMTYsWzE1LCJ3Il0sWzE1LCJ4Il1dXV1dXV0sWzUwLCJuIixbNDZdLFszNixbNyxbMTcsWzE1LCJmIl0sIklEIl0sWzE3LFsxNSwiZiJdLCJJVyJdXV1dLFs1MCwibyIsWzQ2LCJ2Il0sWzUyLCJ3IixbIm4iXV0sWzY1LCJ4IixbMTUsInciXSxbNDYsWzUzLFs1MiwieSIsWzE2LFsxNSwidiJdLFsxNSwieCJdXV0sWzIyLFsxNSwieSJdLFs0NixbMzYsWzE1LCJ5Il1dXV1dXV0sWzM2LFs0NF1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImNyZWF0ZUFyZ3VtZW50c1F1ZXVlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ3RhZ0NvbmZpZyJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5sb2FkR29vZ2xlVGFnIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwibG9nVG9Db25zb2xlIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImsiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJsIixbInJlcXVpcmUiLCJtYWtlVGFibGVNYXAiXV0sWzUyLCJwIixbMzAsWzE3LFsxNSwiYSJdLCJ0YWdJZCJdLCIiXV0sWzIyLFszMCxbMjEsWyJnIixbMTUsInAiXV0sInN0cmluZyJdLFsyNCxbMixbMTUsInAiXSwiaW5kZXhPZiIsWzcsIi0iXV0sMF1dLFs0NixbNTMsWyJpIixbMCwiSW52YWxpZCBNZWFzdXJlbWVudCBJRCBmb3IgdGhlIEdBNCBDb25maWd1cmF0aW9uIHRhZzogIixbMTUsInAiXV1dLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbNTIsInEiLFszMCxbMTcsWzE1LCJhIl0sImNvbmZpZ1NldHRpbmdzVmFyaWFibGUiXSxbOF1dXSxbNTIsInIiLFszMCxbImwiLFszMCxbMTcsWzE1LCJhIl0sImNvbmZpZ1NldHRpbmdzVGFibGUiXSxbN11dLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSJdLFs4XV1dLFsibSIsWzE1LCJxIl0sWzE1LCJyIl1dLFs1MiwicyIsWzMwLFsxNyxbMTUsImEiXSwiZXZlbnRTZXR0aW5nc1ZhcmlhYmxlIl0sWzhdXV0sWzUyLCJ0IixbMzAsWyJsIixbMzAsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzVGFibGUiXSxbN11dLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSJdLFs4XV1dLFsibSIsWzE1LCJzIl0sWzE1LCJ0Il1dLFs1MiwidSIsWzE1LCJxIl1dLFsibSIsWzE1LCJ1Il0sWzE1LCJzIl1dLFsyMixbMzAsWzIsWzE1LCJ1Il0sImhhc093blByb3BlcnR5IixbNyxbMTcsWzE1LCJmIl0sIkpTIl1dXSxbMTcsWzE1LCJhIl0sInVzZXJQcm9wZXJ0aWVzIl1dLFs0NixbNTMsWzUyLCJ2IixbMzAsWzE2LFsxNSwidSJdLFsxNyxbMTUsImYiXSwiSlMiXV0sWzhdXV0sWyJtIixbMTUsInYiXSxbMzAsWyJsIixbMzAsWzE3LFsxNSwiYSJdLCJ1c2VyUHJvcGVydGllcyJdLFs3XV0sIm5hbWUiLCJ2YWx1ZSJdLFs4XV1dLFs0MyxbMTUsInUiXSxbMTcsWzE1LCJmIl0sIkpTIl0sWzE1LCJ2Il1dXV1dLFsyLFsxNSwiZCJdLCJFIixbNyxbMTUsInUiXSxbMTcsWzE1LCJkIl0sIkIiXSxbNTEsIiIsWzcsInYiXSxbMzYsWzM5LFsyMCwiZmFsc2UiLFsyLFsiayIsWzE1LCJ2Il1dLCJ0b0xvd2VyQ2FzZSIsWzddXV0sZmFsc2UsWzI4LFsyOCxbMTUsInYiXV1dXV1dXV0sWzIsWzE1LCJkIl0sIkUiLFs3LFsxNSwidSJdLFsxNyxbMTUsImQiXSwiRCJdLFs1MSwiIixbNywidiJdLFszNixbImoiLFsxNSwidiJdXV1dXV0sWyJoIixbMTUsInAiXSxbOCwiZmlyc3RQYXJ0eVVybCIsWyJvIixbMTUsInUiXV1dXSxbImUiLFsxNSwicCJdLFsxNSwidSJdLFs4LCJub1RhcmdldEdyb3VwIix0cnVlXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fZ3RjcyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJtYWtlVGFibGVNYXAiXV0sWzM2LFszMCxbImIiLFszMCxbMTcsWzE1LCJhIl0sImNvbmZpZ1NldHRpbmdzVGFibGUiXSxbN11dLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSJdLFs4XV1dXQogLFs1MCwiX19ndGVzIixbNDYsImEiXSxbNTAsImYiLFs0NiwiaCIsImkiXSxbNjYsImoiLFsyLFsxNSwiYiJdLCJrZXlzIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzQzLFsxNSwiaCJdLFsxNSwiaiJdLFsxNixbMTUsImkiXSxbMTUsImoiXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJtYWtlVGFibGVNYXAiXV0sWzUyLCJnIixbMzAsWyJlIixbMzAsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzVGFibGUiXSxbN11dLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSJdLFs4XV1dLFsyMixbMTcsWzE1LCJhIl0sInVzZXJQcm9wZXJ0aWVzIl0sWzQ2LFs1MyxbNDEsImgiXSxbMywiaCIsWzMwLFsxNixbMTUsImciXSxbMTcsWzE1LCJkIl0sIkpTIl1dLFs4XV1dLFsyMixbMjksWyJjIixbMTUsImgiXV0sIm9iamVjdCJdLFs0NixbNTMsWzMsImgiLFs4XV1dXV0sWyJmIixbMTUsImgiXSxbMzAsWyJlIixbMzAsWzE3LFsxNSwiYSJdLCJ1c2VyUHJvcGVydGllcyJdLFs3XV0sIm5hbWUiLCJ2YWx1ZSJdLFs4XV1dLFs0MyxbMTUsImciXSxbMTcsWzE1LCJkIl0sIkpTIl0sWzE1LCJoIl1dXV1dLFszNixbMTUsImciXV1dCiAsWzUwLCJfX2hqdGMiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiY3JlYXRlQXJndW1lbnRzUXVldWUiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJlbmNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbmplY3RTY3JpcHQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwic2V0SW5XaW5kb3ciXV0sWyJiIiwiaGoiLCJoai5xIl0sWzUyLCJnIixbMTcsWzE1LCJhIl0sImhvdGphcl9zaXRlX2lkIl1dLFsiZiIsIl9oalNldHRpbmdzIixbOCwiaGppZCIsWzE1LCJnIl0sImhqc3YiLDcsInNjcmlwdFNvdXJjZSIsImd0bSJdXSxbImQiLFswLFswLCJodHRwczovL3N0YXRpYy5ob3RqYXIuY29tL2MvaG90amFyLSIsWyJjIixbImUiLFsxNSwiZyJdXV1dLCIuanM/c3Y9NyJdLFsxNyxbMTUsImEiXSwiZ3RtT25TdWNjZXNzIl0sWzE3LFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiXV1dCiAsWzUwLCJfX2hsIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbImIiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19odG1sIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmluamVjdEh0bWwiXV0sWyJiIixbMTcsWzE1LCJhIl0sImh0bWwiXSxbMTcsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyJdLFsxNyxbMTUsImEiXSwiZ3RtT25GYWlsdXJlIl0sWzE3LFsxNSwiYSJdLCJ1c2VJZnJhbWUiXSxbMTcsWzE1LCJhIl0sInN1cHBvcnREb2N1bWVudFdyaXRlIl1dXQogLFs1MCwiX19qc20iLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXhlY3V0ZUphdmFzY3JpcHRTdHJpbmciXV0sWzIyLFsyMCxbMTcsWzE1LCJhIl0sImphdmFzY3JpcHQiXSxbNDRdXSxbNDYsWzM2XV1dLFszNixbImIiLFsxNyxbMTUsImEiXSwiamF2YXNjcmlwdCJdXV1dCiAsWzUwLCJfX2xjbCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJtYWtlSW50ZWdlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImUiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwid2FpdEZvclRhZ3MiXSxbNDYsWzUzLFs0MyxbMTUsImUiXSwid2FpdEZvclRhZ3MiLHRydWVdLFs0MyxbMTUsImUiXSwid2FpdEZvclRhZ3NUaW1lb3V0IixbImIiLFsxNyxbMTUsImEiXSwid2FpdEZvclRhZ3NUaW1lb3V0Il1dXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJjaGVja1ZhbGlkYXRpb24iXSxbNDYsWzUzLFs0MyxbMTUsImUiXSwiY2hlY2tWYWxpZGF0aW9uIix0cnVlXV1dXSxbNTIsImYiLFszMCxbMTcsWzE1LCJhIl0sInVuaXF1ZVRyaWdnZXJJZCJdLCIwIl1dLFsiZCIsWzE1LCJlIl0sWzE1LCJmIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX3BhdXNlZCIsWzQ2LCJhIl0sWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXV0KICxbNTAsIl9fdSIsWzQ2LCJhIl0sWzUwLCJrIixbNDYsImwiLCJtIl0sWzUyLCJuIixbMTcsWzE1LCJtIl0sIm11bHRpUXVlcnlLZXlzIl1dLFs1MiwibyIsWzMwLFsxNyxbMTUsIm0iXSwicXVlcnlLZXkiXSwiIl1dLFs1MiwicCIsWzE3LFsxNSwibSJdLCJpZ25vcmVFbXB0eVF1ZXJ5UGFyYW0iXV0sWzIyLFsyMCxbMTUsIm8iXSwiIl0sWzQ2LFs1MyxbNTIsInIiLFsyLFsxNyxbImkiLFsxNSwibCJdXSwic2VhcmNoIl0sInJlcGxhY2UiLFs3LCI/IiwiIl1dXSxbMzYsWzM5LFsxLFsyOCxbMTUsInIiXV0sWzE1LCJwIl1dLFs0NF0sWzE1LCJyIl1dXV1dXSxbNDEsInEiXSxbMjIsWzE1LCJuIl0sWzQ2LFs1MyxbMjIsWzIwLFsiZSIsWzE1LCJvIl1dLCJhcnJheSJdLFs0NixbNTMsWzMsInEiLFsxNSwibyJdXV1dLFs0NixbNTMsWzUyLCJyIixbImMiLCJcXHMrIiwiZyJdXSxbMywicSIsWzIsWzIsWyJmIixbMTUsIm8iXV0sInJlcGxhY2UiLFs3LFsxNSwiciJdLCIiXV0sInNwbGl0IixbNywiLCJdXV1dXV1dXSxbNDYsWzUzLFszLCJxIixbNyxbImYiLFsxNSwibyJdXV1dXV1dLFs2NSwiciIsWzE1LCJxIl0sWzQ2LFs1MyxbNTIsInMiLFsyLFsxNSwiaCJdLCJIIixbNyxbMTUsImwiXSxbMTUsInIiXV1dXSxbMjIsWzI5LFsxNSwicyJdLFs0NF1dLFs0NixbNTMsWzIyLFsxLFsxNSwicCJdLFsyMCxbMTUsInMiXSwiIl1dLFs0NixbNTMsWzZdXV1dLFszNixbMTUsInMiXV1dXV1dXV0sWzM2LFs0NF1dXSxbNTIsImIiLFsicmVxdWlyZSIsImNvcHlGcm9tRGF0YUxheWVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsImciLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9sZWdhY3lVcmxzIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiXV0sWzQxLCJqIl0sWzIyLFsxNyxbMTUsImEiXSwiY3VzdG9tVXJsU291cmNlIl0sWzQ2LFs1MyxbMywiaiIsWzE3LFsxNSwiYSJdLCJjdXN0b21VcmxTb3VyY2UiXV1dXSxbNDYsWzUzLFszLCJqIixbImIiLCJndG0udXJsIiwxXV1dXV0sWzMsImoiLFszMCxbMTUsImoiXSxbImQiXV1dLFszOCxbMTcsWzE1LCJhIl0sImNvbXBvbmVudCJdLFs0NiwiUFJPVE9DT0wiLCJIT1NUIiwiUE9SVCIsIlBBVEgiLCJFWFRFTlNJT04iLCJRVUVSWSIsIkZSQUdNRU5UIiwiVVJMIl0sWzQ2LFs1LFs0NixbMzYsWzIsWzE1LCJoIl0sIkIiLFs3LFsxNSwiaiJdXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImgiXSwiQyIsWzcsWzE1LCJqIl0sWzE3LFsxNSwiYSJdLCJzdHJpcFd3dyJdXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImgiXSwiRCIsWzcsWzE1LCJqIl1dXV1dXSxbNSxbNDYsWzM2LFsyLFsxNSwiaCJdLCJFIixbNyxbMTUsImoiXSxbMTcsWzE1LCJhIl0sImRlZmF1bHRQYWdlcyJdXV1dXV0sWzUsWzQ2LFszNixbMixbMTUsImgiXSwiRiIsWzcsWzE1LCJqIl1dXV1dXSxbNSxbNDYsWzM2LFsiayIsWzE1LCJqIl0sWzE1LCJhIl1dXV1dLFs1LFs0NixbMzYsWzIsWzE1LCJoIl0sIkciLFs3LFsxNSwiaiJdXV1dXV0sWzUsWzQ2XV0sWzksWzQ2LFszNixbMixbMTUsImgiXSwiQSIsWzcsWyJmIixbMTUsImoiXV1dXV1dXV1dXQogLFs1MCwiX192IixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImNvcHlGcm9tRGF0YUxheWVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZSIsWzE3LFsxNSwiYSJdLCJuYW1lIl1dLFsyMixbMzAsWzI4LFsxNSwiZSJdXSxbMjEsWyJkIixbMTUsImUiXV0sInN0cmluZyJdXSxbNDYsWzM2LGZhbHNlXV1dLFs1MiwiZiIsWzIsWzE1LCJlIl0sInJlcGxhY2UiLFs3LFsiYyIsIlxcXFwuIiwiZyJdLCIuIl1dXSxbNTIsImciLFsiYiIsWzE1LCJmIl0sWzMwLFsxNyxbMTUsImEiXSwiZGF0YUxheWVyVmVyc2lvbiJdLDFdXV0sWzM2LFszOSxbMjEsWzE1LCJnIl0sWzQ0XV0sWzE1LCJnIl0sWzE3LFsxNSwiYSJdLCJkZWZhdWx0VmFsdWUiXV1dXQogLFs1MiwiX19tb2R1bGVfZ3RhZ1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiYyIsImFkX3N0b3JhZ2UiXSxbNTIsImQiLCJhZF91c2VyX2RhdGEiXSxbNTIsImUiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImYiLCJhcHBfcmVtb3ZlIl0sWzUyLCJnIiwiYXBwX3N0b3JlX3JlZnVuZCJdLFs1MiwiaCIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIl0sWzUyLCJpIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Il0sWzUyLCJqIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyJdLFs1MiwiayIsImNvbnZlcnNpb24iXSxbNTIsImwiLCJwdXJjaGFzZSJdLFs1MiwibSIsImZpcnN0X29wZW4iXSxbNTIsIm4iLCJmaXJzdF92aXNpdCJdLFs1MiwibyIsImd0YWcuY29uZmlnIl0sWzUyLCJwIiwiaW5fYXBwX3B1cmNoYXNlIl0sWzUyLCJxIiwicGFnZV92aWV3Il0sWzUyLCJyIiwic2Vzc2lvbl9zdGFydCJdLFs1MiwicyIsInVzZXJfZW5nYWdlbWVudCJdLFs1MiwidCIsImFkc19kYXRhX3JlZGFjdGlvbiJdLFs1MiwidSIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIl0sWzUyLCJ2IiwiYWxsb3dfY3VzdG9tX3NjcmlwdHMiXSxbNTIsInciLCJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyJdLFs1MiwieCIsImFsbG93X2dvb2dsZV9zaWduYWxzIl0sWzUyLCJ5IiwiYXVpZCJdLFs1MiwieiIsImF3X3JlbWFya2V0aW5nX29ubHkiXSxbNTIsImFBIiwiZGlzY291bnQiXSxbNTIsImFCIiwiYXdfZmVlZF9jb3VudHJ5Il0sWzUyLCJhQyIsImF3X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImFEIiwiaXRlbXMiXSxbNTIsImFFIiwiYXdfbWVyY2hhbnRfaWQiXSxbNTIsImFGIiwiYXdfYmFza2V0X3R5cGUiXSxbNTIsImFHIiwiY2xpZW50X2lkIl0sWzUyLCJhSCIsImNvbnZlcnNpb25fY29va2llX3ByZWZpeCJdLFs1MiwiYUkiLCJjb252ZXJzaW9uX2lkIl0sWzUyLCJhSiIsImNvbnZlcnNpb25fbGlua2VyIl0sWzUyLCJhSyIsImNvbnZlcnNpb25fYXBpIl0sWzUyLCJhTCIsImNvb2tpZV9kZXByZWNhdGlvbiJdLFs1MiwiYU0iLCJjb29raWVfZXhwaXJlcyJdLFs1MiwiYU4iLCJjb29raWVfcHJlZml4Il0sWzUyLCJhTyIsImNvb2tpZV91cGRhdGUiXSxbNTIsImFQIiwiY291bnRyeSJdLFs1MiwiYVEiLCJjdXJyZW5jeSJdLFs1MiwiYVIiLCJjdXN0b21lcl9saWZldGltZV92YWx1ZSJdLFs1MiwiYVMiLCJjdXN0b21lcl90eXBlIl0sWzUyLCJhVCIsImRlYnVnX21vZGUiXSxbNTIsImFVIiwic2hpcHBpbmciXSxbNTIsImFWIiwiZW5nYWdlbWVudF90aW1lX21zZWMiXSxbNTIsImFXIiwiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiXSxbNTIsImFYIiwiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiYVkiLCJldmVudF9pZCJdLFs1MiwiYVoiLCJldmVudCJdLFs1MiwiYkEiLCJfJmFlIl0sWzUyLCJiQiIsImV2ZW50X3RpbWVvdXQiXSxbNTIsImJDIiwiZXh0X2NsaWVudF9pZCJdLFs1MiwiYkQiLCJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIl0sWzUyLCJiRSIsIm1hdGNoX2lkIl0sWzUyLCJiRiIsImdkcHJfYXBwbGllcyJdLFs1MiwiYkciLCJfZ3RfbWV0YWRhdGEiXSxbNTIsImJIIiwiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyJdLFs1MiwiYkkiLCJfZ29vZ2xlX25nIl0sWzUyLCJiSiIsIl9vbm8iXSxbNTIsImJLIiwiZ3BwX3NpZCJdLFs1MiwiYkwiLCJncHBfc3RyaW5nIl0sWzUyLCJiTSIsImdzYV9leHBlcmltZW50X2lkIl0sWzUyLCJiTiIsImd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSJdLFs1MiwiYk8iLCJpZnJhbWVfc3RhdGUiXSxbNTIsImJQIiwiaWdub3JlX3JlZmVycmVyIl0sWzUyLCJiUSIsImlzX3Bhc3N0aHJvdWdoIl0sWzUyLCJiUiIsImxhbmd1YWdlIl0sWzUyLCJiUyIsIm1lcmNoYW50X2ZlZWRfbGFiZWwiXSxbNTIsImJUIiwibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYlUiLCJtZXJjaGFudF9pZCJdLFs1MiwiYlYiLCJuZXdfY3VzdG9tZXIiXSxbNTIsImJXIiwicGFnZV9ob3N0bmFtZSJdLFs1MiwiYlgiLCJwYWdlX3BhdGgiXSxbNTIsImJZIiwicGFnZV9yZWZlcnJlciJdLFs1MiwiYloiLCJwYWdlX3RpdGxlIl0sWzUyLCJjQSIsIl9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyJdLFs1MiwiY0IiLCJxdWFudGl0eSJdLFs1MiwiY0MiLCJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyJdLFs1MiwiY0QiLCJzY3JlZW5fcmVzb2x1dGlvbiJdLFs1MiwiY0UiLCJzZW5kX3BhZ2VfdmlldyJdLFs1MiwiY0YiLCJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiXSxbNTIsImNHIiwic2VydmVyX2NvbnRhaW5lcl91cmwiXSxbNTIsImNIIiwic2Vzc2lvbl9kdXJhdGlvbiJdLFs1MiwiY0kiLCJzZXNzaW9uX2VuZ2FnZWRfdGltZSJdLFs1MiwiY0oiLCJzZXNzaW9uX2lkIl0sWzUyLCJjSyIsIl9zaGFyZWRfdXNlcl9pZCJdLFs1MiwiY0wiLCJkZWxpdmVyeV9wb3N0YWxfY29kZSJdLFs1MiwiY00iLCJ0ZXN0b25seSJdLFs1MiwiY04iLCJ0b3Btb3N0X3VybCJdLFs1MiwiY08iLCJ0cmFuc2FjdGlvbl9pZCJdLFs1MiwiY1AiLCJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiXSxbNTIsImNRIiwidHJhbnNwb3J0X3VybCJdLFs1MiwiY1IiLCJ1cGRhdGUiXSxbNTIsImNTIiwiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIl0sWzUyLCJjVCIsIl91c2VyX2FnZW50X2JpdG5lc3MiXSxbNTIsImNVIiwiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiXSxbNTIsImNWIiwiX3VzZXJfYWdlbnRfbW9iaWxlIl0sWzUyLCJjVyIsIl91c2VyX2FnZW50X21vZGVsIl0sWzUyLCJjWCIsIl91c2VyX2FnZW50X3BsYXRmb3JtIl0sWzUyLCJjWSIsIl91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iXSxbNTIsImNaIiwiX3VzZXJfYWdlbnRfd293NjQiXSxbNTIsImRBIiwidXNlcl9kYXRhIl0sWzUyLCJkQiIsInVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiXSxbNTIsImRDIiwidXNlcl9kYXRhX2F1dG9fbWV0YSJdLFs1MiwiZEQiLCJ1c2VyX2RhdGFfYXV0b19tdWx0aSJdLFs1MiwiZEUiLCJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiXSxbNTIsImRGIiwidXNlcl9kYXRhX2F1dG9fc3RhdHVzIl0sWzUyLCJkRyIsInVzZXJfZGF0YV9tb2RlIl0sWzUyLCJkSCIsInVzZXJfaWQiXSxbNTIsImRJIiwidXNlcl9wcm9wZXJ0aWVzIl0sWzUyLCJkSiIsInVzX3ByaXZhY3lfc3RyaW5nIl0sWzUyLCJkSyIsInZhbHVlIl0sWzUyLCJkTCIsIl9mcG1fcGFyYW1ldGVycyJdLFs1MiwiZE0iLCJfaG9zdF9uYW1lIl0sWzUyLCJkTiIsIl9pbl9wYWdlX2NvbW1hbmQiXSxbNTIsImRPIiwiX21lYXN1cmVtZW50X3R5cGUiXSxbNTIsImRQIiwibm9uX3BlcnNvbmFsaXplZF9hZHMiXSxbNTIsImRRIiwiY29udmVyc2lvbl9sYWJlbCJdLFs1MiwiZFIiLCJwYWdlX2xvY2F0aW9uIl0sWzUyLCJkUyIsIl9leHRyYWN0ZWRfZGF0YSJdLFs1MiwiZFQiLCJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiZFUiLCJ0Y19wcml2YWN5X3N0cmluZyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl0sIkwiLFsxNSwiaSJdLCJNIixbMTUsImoiXSwiTyIsWzE1LCJrIl0sIkFBIixbMTUsImwiXSwiQUYiLFsxNSwibSJdLCJBRyIsWzE1LCJuIl0sIkFIIixbMTUsIm8iXSwiQUoiLFsxNSwicCJdLCJBSyIsWzE1LCJxIl0sIkFNIixbMTUsInIiXSwiQVEiLFsxNSwicyJdLCJCQyIsWzE1LCJ0Il0sIkJKIixbMTUsInUiXSwiQksiLFsxNSwidiJdLCJCTSIsWzE1LCJ3Il0sIkJOIixbMTUsIngiXSwiQlQiLFsxNSwieSJdLCJCWCIsWzE1LCJ6Il0sIkJZIixbMTUsImFBIl0sIkJaIixbMTUsImFCIl0sIkNBIixbMTUsImFDIl0sIkNCIixbMTUsImFEIl0sIkNDIixbMTUsImFFIl0sIkNEIixbMTUsImFGIl0sIkNMIixbMTUsImFHIl0sIkNRIixbMTUsImFIIl0sIkNSIixbMTUsImFJIl0sIktHIixbMTUsImRRIl0sIkNTIixbMTUsImFKIl0sIkNVIixbMTUsImFLIl0sIkNXIixbMTUsImFMIl0sIkNZIixbMTUsImFNIl0sIkRDIixbMTUsImFOIl0sIkREIixbMTUsImFPIl0sIkRFIixbMTUsImFQIl0sIkRGIixbMTUsImFRIl0sIkRHIixbMTUsImFSIl0sIkRIIixbMTUsImFTIl0sIkROIixbMTUsImFUIl0sIkVBIixbMTUsImFVIl0sIkVDIixbMTUsImFWIl0sIkVHIixbMTUsImFXIl0sIkVKIixbMTUsImFYIl0sIkVLIixbMTUsImFZIl0sIkVOIixbMTUsImFaIl0sIkVPIixbMTUsImJBIl0sIkVRIixbMTUsImJCIl0sIktJIixbMTUsImRTIl0sIkVVIixbMTUsImJDIl0sIkVXIixbMTUsImJEIl0sIkZFIixbMTUsImJFIl0sIkZPIixbMTUsImJGIl0sIkZQIixbMTUsImJHIl0sIktKIixbMTUsImRUIl0sIkZUIixbMTUsImJIIl0sIkZVIixbMTUsImJJIl0sIkZWIixbMTUsImJKIl0sIkZZIixbMTUsImJLIl0sIkZaIixbMTUsImJMIl0sIkdCIixbMTUsImJNIl0sIkdDIixbMTUsImJOIl0sIkdFIixbMTUsImJPIl0sIkdGIixbMTUsImJQIl0sIkdLIixbMTUsImJRIl0sIkdNIixbMTUsImJSIl0sIkdUIixbMTUsImJTIl0sIkdVIixbMTUsImJUIl0sIkdWIixbMTUsImJVIl0sIkdaIixbMTUsImJWIl0sIkhDIixbMTUsImJXIl0sIktIIixbMTUsImRSIl0sIkhEIixbMTUsImJYIl0sIkhFIixbMTUsImJZIl0sIkhGIixbMTUsImJaIl0sIkhOIixbMTUsImNBIl0sIkhQIixbMTUsImNCIl0sIkhUIixbMTUsImNDIl0sIkhYIixbMTUsImNEIl0sIklBIixbMTUsImNFIl0sIklDIixbMTUsImNGIl0sIklEIixbMTUsImNHIl0sIklGIixbMTUsImNIIl0sIklIIixbMTUsImNJIl0sIklJIixbMTUsImNKIl0sIklLIixbMTUsImNLIl0sIklMIixbMTUsImNMIl0sIktLIixbMTUsImRVIl0sIklQIixbMTUsImNNIl0sIklSIixbMTUsImNOIl0sIklVIixbMTUsImNPIl0sIklWIixbMTUsImNQIl0sIklXIixbMTUsImNRIl0sIklZIixbMTUsImNSIl0sIkpCIixbMTUsImNTIl0sIkpDIixbMTUsImNUIl0sIkpEIixbMTUsImNVIl0sIkpFIixbMTUsImNWIl0sIkpGIixbMTUsImNXIl0sIkpHIixbMTUsImNYIl0sIkpIIixbMTUsImNZIl0sIkpJIixbMTUsImNaIl0sIkpKIixbMTUsImRBIl0sIkpLIixbMTUsImRCIl0sIkpMIixbMTUsImRDIl0sIkpNIixbMTUsImREIl0sIkpOIixbMTUsImRFIl0sIkpPIixbMTUsImRGIl0sIkpQIixbMTUsImRHIl0sIkpSIixbMTUsImRIIl0sIkpTIixbMTUsImRJIl0sIkpVIixbMTUsImRKIl0sIkpWIixbMTUsImRLIl0sIkpYIixbMTUsImRMIl0sIkpZIixbMTUsImRNIl0sIkpaIixbMTUsImROIl0sIktDIixbMTUsImRPIl0sIktEIixbMTUsImRQIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFib3J0X3dpdGhvdXRfZmFpbCJdLFs1MiwiYyIsImFjY2VwdF9ieV9kZWZhdWx0Il0sWzUyLCJkIiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJlIiwiY29uc2VudF9zdGF0ZSJdLFs1MiwiZiIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZyIsImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiXSxbNTIsImgiLCJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIl0sWzUyLCJpIiwiY29va2llX29wdGlvbnMiXSxbNTIsImoiLCJkZWR1cGVfaWQiXSxbNTIsImsiLCJlbV9ldmVudCJdLFs1MiwibCIsImV2ZW50X3Byb3ZlbmFuY2UiXSxbNTIsIm0iLCJldmVudF9zb3VyY2UiXSxbNTIsIm4iLCJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiXSxbNTIsIm8iLCJldmVudF91c2FnZSJdLFs1MiwicCIsImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyJdLFs1MiwicSIsImZvcm1fZXZlbnRfY2FuY2VsZWQiXSxbNTIsInIiLCJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iXSxbNTIsInMiLCJndG1fZXh0cmFjdGVkX2RhdGEiXSxbNTIsInQiLCJoYW5kbGVfaW50ZXJuYWxseSJdLFs1MiwidSIsImhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIl0sWzUyLCJ2IiwiaGl0X3R5cGUiXSxbNTIsInciLCJoaXRfdHlwZV9vdmVycmlkZSJdLFs1MiwieCIsImlnbm9yZV9kdXBlX2NvbmZpZyJdLFs1MiwieSIsImlzX2NvbnZlcnNpb24iXSxbNTIsInoiLCJpc19leHRlcm5hbF9ldmVudCJdLFs1MiwiYUEiLCJpc19maXJzdF92aXNpdCJdLFs1MiwiYUIiLCJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIl0sWzUyLCJhQyIsImlzX2ZwbV9lbmNyeXB0aW9uIl0sWzUyLCJhRCIsImlzX2ZwbV9zcGxpdCJdLFs1MiwiYUUiLCJpc19nY3BfYnJvd3NlciJdLFs1MiwiYUYiLCJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCJdLFs1MiwiYUciLCJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiJdLFs1MiwiYUgiLCJpc19zZXNzaW9uX3N0YXJ0Il0sWzUyLCJhSSIsImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiJdLFs1MiwiYUoiLCJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiXSxbNTIsImFLIiwiaXNfc2d0bV9wcmVoaXQiXSxbNTIsImFMIiwiaXNfc3BsaXRfY29udmVyc2lvbiJdLFs1MiwiYU0iLCJpc19zeW4iXSxbNTIsImFOIiwiaXNfdGVzdF9ldmVudCJdLFs1MiwiYU8iLCJwcmVoaXRfZm9yX3JldHJ5Il0sWzUyLCJhUCIsInJlZGFjdF9hZHNfZGF0YSJdLFs1MiwiYVEiLCJyZWRhY3RfY2xpY2tfaWRzIl0sWzUyLCJhUiIsInNlbmRfY2NtX3BhcmFsbGVsX3BpbmciXSxbNTIsImFTIiwic2VuZF91c2VyX2RhdGFfaGl0Il0sWzUyLCJhVCIsInNwZWN1bGF0aXZlIl0sWzUyLCJhVSIsInN5bl9vcl9tb2QiXSxbNTIsImFWIiwidHJhbnNpZW50X2Vjc2lkIl0sWzUyLCJhVyIsInVzZXJfZGF0YSJdLFs1MiwiYVgiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiXSxbNTIsImFZIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciJdLFs1MiwiYVoiLCJ1c2VyX2RhdGFfZnJvbV9jb2RlIl0sWzUyLCJiQSIsInVzZXJfZGF0YV9mcm9tX21hbnVhbCJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiTSIsWzE1LCJlIl0sIk4iLFsxNSwiZiJdLCJPIixbMTUsImciXSwiUCIsWzE1LCJoIl0sIlEiLFsxNSwiaSJdLCJTIixbMTUsImoiXSwiVCIsWzE1LCJrIl0sIloiLFsxNSwibCJdLCJBQSIsWzE1LCJtIl0sIkFCIixbMTUsIm4iXSwiQUMiLFsxNSwibyJdLCJBRCIsWzE1LCJwIl0sIkFKIixbMTUsInEiXSwiQUsiLFsxNSwiciJdLCJBTiIsWzE1LCJzIl0sIkFPIixbMTUsInQiXSwiQVAiLFsxNSwidSJdLCJBUSIsWzE1LCJ2Il0sIkFSIixbMTUsInciXSwiQVMiLFsxNSwieCJdLCJBViIsWzE1LCJ5Il0sIkFZIixbMTUsInoiXSwiQVoiLFsxNSwiYUEiXSwiQkEiLFsxNSwiYUIiXSwiQkMiLFsxNSwiYUMiXSwiQkQiLFsxNSwiYUQiXSwiQkUiLFsxNSwiYUUiXSwiQkYiLFsxNSwiYUYiXSwiQksiLFsxNSwiYUciXSwiQkwiLFsxNSwiYUgiXSwiQk0iLFsxNSwiYUkiXSwiQk4iLFsxNSwiYUoiXSwiQk8iLFsxNSwiYUsiXSwiQlEiLFsxNSwiYUwiXSwiQlIiLFsxNSwiYU0iXSwiQlMiLFsxNSwiYU4iXSwiQlkiLFsxNSwiYU8iXSwiQ0IiLFsxNSwiYVAiXSwiQ0MiLFsxNSwiYVEiXSwiQ0UiLFsxNSwiYVIiXSwiQ04iLFsxNSwiYVMiXSwiQ1EiLFsxNSwiYVQiXSwiQ1QiLFsxNSwiYVUiXSwiQ1UiLFsxNSwiYVYiXSwiQ1ciLFsxNSwiYVciXSwiQ1giLFsxNSwiYVgiXSwiQ1kiLFsxNSwiYVkiXSwiQ1oiLFsxNSwiYVoiXSwiREEiLFsxNSwiYkEiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDVdLFs1MiwiYyIsNDZdLFs1MiwiZCIsNDddLFs1MiwiZSIsMTc0XSxbNTIsImYiLDI3Nl0sWzM2LFs4LCJGIixbMTUsImIiXSwiRyIsWzE1LCJjIl0sIkgiLFsxNSwiZCJdLCJWIixbMTUsImUiXSwiQUQiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQyNV0sWzUyLCJjIiw0MzVdLFs1MiwiZCIsNDg4XSxbNTIsImUiLDQ4OV0sWzUyLCJmIiw0OThdLFs1MiwiZyIsNTAzXSxbNTIsImgiLDUwNF0sWzUyLCJpIiw1MDZdLFs1MiwiaiIsNTIzXSxbNTIsImsiLDUzMl0sWzUyLCJsIiw1NTNdLFs1MiwibSIsNTY4XSxbNTIsIm4iLDU3N10sWzUyLCJvIiw1ODFdLFs1MiwicCIsNTgzXSxbNTIsInEiLDU5Ml0sWzUyLCJyIiw1OTRdLFs1MiwicyIsNTk5XSxbMzYsWzgsIkFWIixbMTUsImsiXSwiQUQiLFsxNSwiZCJdLCJDSSIsWzE1LCJxIl0sIkJWIixbMTUsIm4iXSwiQk8iLFsxNSwibSJdLCJDSyIsWzE1LCJyIl0sIkNQIixbMTUsInMiXSwiQU0iLFsxNSwiZyJdLCJCWiIsWzE1LCJvIl0sIkFUIixbMTUsImoiXSwiQUUiLFsxNSwiZSJdLCJBTiIsWzE1LCJoIl0sIkwiLFsxNSwiYyJdLCJCQyIsWzE1LCJsIl0sIkFPIixbMTUsImkiXSwiQ0IiLFsxNSwicCJdLCJBSSIsWzE1LCJmIl0sIkkiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfb2JqZWN0IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiLCJnIl0sWzUyLCJoIixbMzAsWzE1LCJnIl0sWzM5LFsiYyIsWzE1LCJmIl1dLFs3XSxbOF1dXV0sWzU1LCJpIixbMTUsImYiXSxbNDYsWzUzLFs1MiwiaiIsWzE2LFsxNSwiZiJdLFsxNSwiaSJdXV0sWzIyLFsiYyIsWzE1LCJqIl1dLFs0NixbNTMsWzIyLFsyOCxbImMiLFsxNixbMTUsImgiXSxbMTUsImkiXV1dXSxbNDYsWzUzLFs0MyxbMTUsImgiXSxbMTUsImkiXSxbN11dXV1dLFs0MyxbMTUsImgiXSxbMTUsImkiXSxbImUiLFsxNSwiaiJdLFsxNixbMTUsImgiXSxbMTUsImkiXV1dXV1dLFs0NixbMjIsWyJkIixbMTUsImoiXV0sWzQ2LFs1MyxbMjIsWzI4LFsiZCIsWzE2LFsxNSwiaCJdLFsxNSwiaSJdXV1dLFs0NixbNTMsWzQzLFsxNSwiaCJdLFsxNSwiaSJdLFs4XV1dXV0sWzQzLFsxNSwiaCJdLFsxNSwiaSJdLFsiZSIsWzE1LCJqIl0sWzE2LFsxNSwiaCJdLFsxNSwiaSJdXV1dXV0sWzQ2LFs1MyxbNDMsWzE1LCJoIl0sWzE1LCJpIl0sWzE1LCJqIl1dXV1dXV1dXV0sWzM2LFsxNSwiaCJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiYyIsWzUxLCIiLFs3LCJmIl0sWzM2LFsxMixbImIiLFsxNSwiZiJdXSwiYXJyYXkiXV1dXSxbNTIsImQiLFs1MSwiIixbNywiZiJdLFszNixbMTIsWyJiIixbMTUsImYiXV0sIm9iamVjdCJdXV1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsNV0sWzUyLCJlIiw2XSxbNTIsImYiLDddLFs1MiwiZyIsOF0sWzUyLCJoIiw5XSxbNTIsImkiLDExXSxbNTIsImoiLDE1XSxbNTIsImsiLDE2XSxbNTIsImwiLDIwXSxbNTIsIm0iLDIxXSxbNTIsIm4iLDIzXSxbNTIsIm8iLDI0XSxbNTIsInAiLDI3XSxbNTIsInEiLDQwXSxbNTIsInIiLDQxXSxbMzYsWzgsIk8iLFsxNSwiaiJdLCJXIixbMTUsIm4iXSwiUCIsWzE1LCJrIl0sIlgiLFsxNSwibyJdLCJLIixbMTUsImkiXSwiQSIsWzE1LCJiIl0sIlQiLFsxNSwibCJdLCJFIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkIiLFsxNSwiYyJdLCJIIixbMTUsImciXSwiQU4iLFsxNSwicSJdLCJJIixbMTUsImgiXSwiRyIsWzE1LCJmIl0sIlUiLFsxNSwibSJdLCJBTyIsWzE1LCJyIl0sIkFBIixbMTUsInAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2xlZ2FjeVVybHMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwicCJdLFs1MiwicSIsWzIsWzE1LCJwIl0sImluZGV4T2YiLFs3LCIjIl1dXSxbMzYsWzM5LFsyMyxbMTUsInEiXSwwXSxbMTUsInAiXSxbMixbMTUsInAiXSwic3Vic3RyaW5nIixbNywwLFsxNSwicSJdXV1dXV0sWzUwLCJpIixbNDYsInAiXSxbNTIsInEiLFsxNyxbImUiLFsxNSwicCJdXSwicHJvdG9jb2wiXV0sWzM2LFszOSxbMTUsInEiXSxbMixbMTUsInEiXSwicmVwbGFjZSIsWzcsIjoiLCIiXV0sIiJdXV0sWzUwLCJqIixbNDYsInAiLCJxIl0sWzQxLCJyIl0sWzMsInIiLFsxNyxbImUiLFsxNSwicCJdXSwiaG9zdG5hbWUiXV0sWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFszNiwiIl1dXSxbNTIsInMiLFsiYiIsIjpbMC05XSsiXV0sWzMsInIiLFsyLFsxNSwiciJdLCJyZXBsYWNlIixbNyxbMTUsInMiXSwiIl1dXSxbMjIsWzE1LCJxIl0sWzQ2LFs1MyxbNTIsInQiLFsiYiIsIl53d3dcXGQqXFwuIl1dLFs1MiwidSIsWzIsWzE1LCJyIl0sIm1hdGNoIixbNyxbMTUsInQiXV1dXSxbMjIsWzEsWzE1LCJ1Il0sWzE2LFsxNSwidSJdLDBdXSxbNDYsWzMsInIiLFsyLFsxNSwiciJdLCJzdWJzdHJpbmciLFs3LFsxNyxbMTYsWzE1LCJ1Il0sMF0sImxlbmd0aCJdXV1dXV1dXV0sWzM2LFsxNSwiciJdXV0sWzUwLCJrIixbNDYsInAiXSxbNTIsInEiLFsiZSIsWzE1LCJwIl1dXSxbNDEsInIiXSxbMywiciIsWyJmIixbMTcsWzE1LCJxIl0sInBvcnQiXV1dLFsyMixbMjgsWzE1LCJyIl1dLFs0NixbNTMsWzIyLFsyMCxbMTcsWzE1LCJxIl0sInByb3RvY29sIl0sImh0dHA6Il0sWzQ2LFs1MyxbMywiciIsODBdXV0sWzQ2LFsyMixbMjAsWzE3LFsxNSwicSJdLCJwcm90b2NvbCJdLCJodHRwczoiXSxbNDYsWzUzLFszLCJyIiw0NDNdXV0sWzQ2LFs1MyxbMywiciIsIiJdXV1dXV1dXV0sWzM2LFsiZyIsWzE1LCJyIl1dXV0sWzUwLCJsIixbNDYsInAiLCJxIl0sWzUyLCJyIixbImUiLFsxNSwicCJdXV0sWzQxLCJzIl0sWzMsInMiLFszOSxbMjAsWzIsWzE3LFsxNSwiciJdLCJwYXRobmFtZSJdLCJpbmRleE9mIixbNywiLyJdXSwwXSxbMTcsWzE1LCJyIl0sInBhdGhuYW1lIl0sWzAsIi8iLFsxNyxbMTUsInIiXSwicGF0aE5hbWUiXV1dXSxbMjIsWzIwLFsiZCIsWzE1LCJxIl1dLCJhcnJheSJdLFs0NixbNTMsWzUyLCJ0IixbMixbMTUsInMiXSwic3BsaXQiLFs3LCIvIl1dXSxbMjIsWzE5LFsyLFsxNSwicSJdLCJpbmRleE9mIixbNyxbMTYsWzE1LCJ0Il0sWzM3LFsxNyxbMTUsInQiXSwibGVuZ3RoIl0sMV1dXV0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJ0Il0sWzM3LFsxNyxbMTUsInQiXSwibGVuZ3RoIl0sMV0sIiJdLFszLCJzIixbMixbMTUsInQiXSwiam9pbiIsWzcsIi8iXV1dXV1dXV1dLFszNixbMTUsInMiXV1dLFs1MCwibSIsWzQ2LCJwIl0sWzUyLCJxIixbMTcsWyJlIixbMTUsInAiXV0sInBhdGhuYW1lIl1dLFs1MiwiciIsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLiJdXV0sWzQxLCJzIl0sWzMsInMiLFszOSxbMTgsWzE3LFsxNSwiciJdLCJsZW5ndGgiXSwxXSxbMTYsWzE1LCJyIl0sWzM3LFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMV1dLCIiXV0sWzM2LFsxNixbMixbMTUsInMiXSwic3BsaXQiLFs3LCIvIl1dLDBdXV0sWzUwLCJuIixbNDYsInAiXSxbNTIsInEiLFsxNyxbImUiLFsxNSwicCJdXSwiaGFzaCJdXSxbMzYsWzIsWzE1LCJxIl0sInJlcGxhY2UiLFs3LCIjIiwiIl1dXV0sWzUwLCJvIixbNDYsInAiLCJxIl0sWzUwLCJzIixbNDYsInQiXSxbMzYsWyJjIixbMixbMTUsInQiXSwicmVwbGFjZSIsWzcsWyJiIiwiXFwrIiwiZyJdLCIgIl1dXV1dLFs1MiwiciIsWzIsWzE3LFsiZSIsWzE1LCJwIl1dLCJzZWFyY2giXSwicmVwbGFjZSIsWzcsIj8iLCIiXV1dLFs2NSwidCIsWzIsWzE1LCJyIl0sInNwbGl0IixbNywiJiJdXSxbNDYsWzUzLFs1MiwidSIsWzIsWzE1LCJ0Il0sInNwbGl0IixbNywiPSJdXV0sWzIyLFsyMSxbInMiLFsxNixbMTUsInUiXSwwXV0sWzE1LCJxIl1dLFs0NixbNl1dXSxbMzYsWyJzIixbMixbMixbMTUsInUiXSwic2xpY2UiLFs3LDFdXSwiam9pbiIsWzcsIj0iXV1dXV1dXSxbMzZdXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZGVjb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImciLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzM2LFs4LCJGIixbMTUsIm0iXSwiSCIsWzE1LCJvIl0sIkciLFsxNSwibiJdLCJDIixbMTUsImoiXSwiRSIsWzE1LCJsIl0sIkQiLFsxNSwiayJdLCJCIixbMTUsImkiXSwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJuIixbNDYsInIiLCJzIiwidCJdLFs2NSwidSIsWzE1LCJzIl0sWzQ2LFs1MyxbMjIsWzIsWzE1LCJyIl0sImhhc093blByb3BlcnR5IixbNyxbMTUsInUiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidSJdLFsidCIsWzE2LFsxNSwiciJdLFsxNSwidSJdXV1dXV1dXV1dXSxbNTAsIm8iLFs0NiwiciIsInMiXSxbIm4iLFsxNSwiciJdLFsxNSwicyJdLFs1MSwiIixbNywidCJdLFszNixbMzksWzIwLCJmYWxzZSIsWzIsWyJlIixbMTUsInQiXV0sInRvTG93ZXJDYXNlIixbN11dXSxmYWxzZSxbMjgsWzI4LFsxNSwidCJdXV1dXV1dXSxbNTAsInAiLFs0NiwiciIsInMiXSxbIm4iLFsxNSwiciJdLFsxNSwicyJdLFsxNSwiZCJdXV0sWzUwLCJxIixbNDYsInIiLCJzIl0sWzUyLCJ0IixbImgiXV0sWzIyLFsxLFsxNSwidCJdLFsxOCxbMixbMTUsInQiXSwiaW5kZXhPZiIsWzcsWzE1LCJzIl1dXSxbMjcsMV1dXSxbNDYsWzUzLFs0MyxbMTUsInIiXSxbMTcsWzE1LCJpIl0sIkFPIl0sdHJ1ZV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImUiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJqIixbMixbMTUsImIiXSwiZnJlZXplIixbNyxbNyxbMTcsWzE1LCJjIl0sIkJKIl0sWzE3LFsxNSwiYyJdLCJCTiJdLFsxNyxbMTUsImMiXSwiREQiXSxbMTcsWzE1LCJjIl0sIkdGIl0sWzE3LFsxNSwiYyJdLCJJWSJdLFsxNyxbMTUsImMiXSwiRVciXSxbMTcsWzE1LCJjIl0sIklBIl0sWzE3LFsxNSwiYyJdLCJJQyJdXV1dXSxbNTIsImsiLFsyLFsxNSwiYiJdLCJmcmVlemUiLFs3LFs3LFsxNyxbMTUsImMiXSwiQkoiXSxbMTcsWzE1LCJjIl0sIkJOIl0sWzE3LFsxNSwiYyJdLCJERCJdLFsxNyxbMTUsImMiXSwiR0YiXSxbMTcsWzE1LCJjIl0sIklZIl0sWzE3LFsxNSwiYyJdLCJFVyJdLFsxNyxbMTUsImMiXSwiSUEiXSxbMTcsWzE1LCJjIl0sIklDIl1dXV1dLFs1MiwibCIsWzIsWzE1LCJiIl0sImZyZWV6ZSIsWzcsWzcsWzE3LFsxNSwiYyJdLCJDWSJdLFsxNyxbMTUsImMiXSwiRVEiXSxbMTcsWzE1LCJjIl0sIklGIl0sWzE3LFsxNSwiYyJdLCJJSCJdLFsxNyxbMTUsImMiXSwiRUMiXV1dXV0sWzUyLCJtIixbMixbMTUsImIiXSwiZnJlZXplIixbNyxbNyxbMTcsWzE1LCJjIl0sIkNZIl0sWzE3LFsxNSwiYyJdLCJFUSJdLFsxNyxbMTUsImMiXSwiSUYiXSxbMTcsWzE1LCJjIl0sIklIIl0sWzE3LFsxNSwiYyJdLCJFQyJdXV1dXSxbMzYsWzgsIkIiLFsxNSwiayJdLCJEIixbMTUsIm0iXSwiQSIsWzE1LCJqIl0sIkMiLFsxNSwibCJdLCJGIixbMTUsIm8iXSwiRyIsWzE1LCJwIl0sIkUiLFsxNSwibiJdLCJIIixbMTUsInEiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fYWV2Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fYW5hbHl0aWNzX3N0b3JhZ2UiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2YiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19nYWF3ZSI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2dhcyI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2dvb2d0YWciOnsiMSI6MTAsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZ3RjcyI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2d0ZXMiOnsiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19obCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2xjbCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3BhdXNlZCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3UiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX192Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CgoKfQosImJsb2IiOnsiMSI6IjE2OSIsIjEwIjoiR1RNLVRSOTc5SzkiLCIxMiI6IiIsIjE0IjoiNjdtMCIsIjE1IjoiMCIsIjE2IjoiQ2hFSThJT2Mwd1lRZ09tc2t2dWx4S3FSQVJJY0FMMlBZWmFHWTlkK2RZekhNN21HU09xdG12VXFrVm43NW1ERjZob0NGd1U9IiwiMTkiOiJkYXRhTGF5ZXIiLCIyMCI6IiIsIjIxIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMjIiOiJleUl3SWpvaVRrOGlMQ0l4SWpvaVRrOHRNRE1pTENJeUlqcG1ZV3h6WlN3aU15STZJbWR2YjJkc1pTNXVieUlzSWpRaU9pSnlaV2RwYjI0eElpd2lOU0k2Wm1Gc2MyVXNJallpT25SeWRXVXNJamNpT2lKaFpGOXpkRzl5WVdkbGZHRnVZV3g1ZEdsamMxOXpkRzl5WVdkbGZHRmtYM1Z6WlhKZlpHRjBZWHhoWkY5d1pYSnpiMjVoYkdsNllYUnBiMjRpTENJNUlqcDBjblZsZlEiLCIyMyI6Imdvb2dsZS50YWdtYW5hZ2VyLmRlYnVndWkyLnF1ZXVlIiwiMjQiOiJ0YWdhc3Npc3RhbnQuZ29vZ2xlLmNvbSIsIjI3IjowLjAwNSwiMyI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjMwIjoiTk8iLCIzMSI6Ik5PLTAzIiwiMzIiOmZhbHNlLCIzMyI6InJlZ2lvbjEiLCIzNiI6Imh0dHBzOi8vYWRzZXJ2aWNlLmdvb2dsZS5jb20vcGFnZWFkL3JlZ2NsayIsIjM3IjoiX19UQUdHWV9JTlNUQUxMRUQiLCIzOCI6ImNjdC5nb29nbGUiLCIzOSI6Imdvb2dUYWdneVJlZmVycmVyIiwiNDAiOiJodHRwczovL2NjdC5nb29nbGUvdGFnZ3kvYWdlbnQuanMiLCI0MSI6Imdvb2dsZS50YWdtYW5hZ2VyLnRhLnByb2RxdWV1ZSIsIjQyIjowLjAxLCI0MyI6IntcImtleXNcIjpbe1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJLbHlUWDJqeW9icFFDbWZVeUJiaEJ5UUhrOVoySGRONWxIeHBCQXRJS0dNY216dzBnRStlYmxZQ21tMUdhN2JZZVRkeWRvSm1lNklwYVNvQ1UwSVVVbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJkZWU0YjM1MS1iMGY1LTRjMjctYThjOC1lZDY2MDQ3N2E0NGNcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJEdFlCUm5QQlMxZzZtZVhPMXJRNWE1MkI1RmJuaDdEQzVqcXYwMml4SnNzbjBrMUo5cmNIQ2FWYy96elJzbnNIQnpTb0ZLczZKOHBIN0NjblFQM0Vqdz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJhZDE5M2IyYS00YTkwLTRjMWEtYjc5ZS1kZTM3YWMzOTFiZDJcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJNWjBVTXVkQWU0UG9hZlNUcFV4UHRJa2ZCZUNNYkZCWHZ0eVJZdkhMQ1NRL0VVdkVKc21zVjR0Nk5CL0JFVnBxTDNIdjhnTlNRaDdLK1NVb29mMjVhbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0OGM0ZWZlMS1mZGQwLTQzNmEtYWM4Zi05MjNmMTE5MTg3ODdcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJGZmx2VWwreHBIYUZWQ0lZTzFLUEx4a3YrQWpkbDRkOHJ2clhoSTZ6ZnBuYkJEcUk1MUREa3RISGIzWldJUzU3b0RoMEtpcjlBdUNPb24yTU94TlY5WT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0MzJiYzI3MC05OWVhLTQyMjAtYjU2Mi1lMmM1YWU3N2Q0ZDlcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJBUThUa3k0RExXT0piSE9IYlZZRGJRWkVmRWVsYjRGVEI4RVlNUWVSUWlMMW0xTHRBZDByM3pleUxqZ1ozL1cyNFI4VmZiMjJ6WTJpeDZXL1RmQ2pqQT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCIwNTBhNmUxMS0zOGFiLTRmODAtODljYi03YjMxOWI5NzA0YzBcIn1dfSIsIjQ0IjoiMTE4ODk3OTIwfjExODg5NzkzMCIsIjQ2Ijp7IjEiOiIxMDAwIiwiMTAiOiI2NnUwIiwiMTEiOiI2NmcwIiwiMTQiOiIxMDAwIiwiMTYiOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjE3IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIyIjoiOSIsIjIwIjoiNTAwMCIsIjIxIjoiNTAwMCIsIjIyIjoiNC40LjAiLCIyMyI6IjAuMC4wIiwiMjUiOiIxIiwiMjYiOiI0MDAwIiwiMjciOiIxMDAiLCIzIjoiNSIsIjQiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YXxhZF9wZXJzb25hbGl6YXRpb24iLCI0NCI6IjE1MDAwIiwiNDgiOiIzMDAwMCIsIjUiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YSIsIjYiOiIxIiwiNjEiOiIxMDAwIiwiNjIiOiJBNk9OSFJZNy9idkJybytJTVpkL2E2TE5qbjdTU3Y5OTlTa04vaEZBRTlMNnZNcjM0ZE5nZmRTVmRZbXY0VStOSFpnMXN4ZDM4UnRjaVJwUlV0SVJQZ1FBQUFDQ2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVjBZV2R0WVc1aFoyVnlMbU52YlRvME5ETWlMQ0ptWldGMGRYSmxJam9pVTJoaGNtVmtWMjl5YTJWeVJYaDBaVzVrWldSTWFXWmxkR2x0WlNJc0ltVjRjR2x5ZVNJNk1UYzNOamN5T1RZd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiwiNjMiOiIxMDAwIiwiNjYiOiIxMDAiLCI3IjoiMTAifSwiNDgiOnRydWUsIjUiOiJHVE0tVFI5NzlLOSIsIjU1IjpbXSwiNTYiOlt7IjEiOjQwMywiMyI6MC41LCI0IjoxMTU5Mzg0NjUsIjUiOjExNTkzODQ2NiwiNiI6MCwiNyI6Mn0seyIxIjo0MDQsIjMiOjAuNSwiNCI6MTE1OTM4NDY4LCI1IjoxMTU5Mzg0NjksIjYiOjAsIjciOjF9LHsiMSI6NjAyLCIzIjowLjAxLCI0IjoxMjAxMjQ0NTUsIjUiOjEyMDEyNDQ1MywiNiI6MTIwMTI0NDU0LCI3IjozfSx7IjEiOjU2OSwiMiI6dHJ1ZX0seyIxIjo0NzUsIjIiOnRydWV9LHsiMSI6NTAyLCIyIjp0cnVlfSx7IjEiOjU3NywiMiI6dHJ1ZX0seyIxIjo1NjgsIjMiOjAuMDEsIjQiOjExOTc5MTc0OSwiNSI6MTE5NzkxNzQ4LCI2IjowLCI3IjoxfSx7IjEiOjQ5MCwiMiI6dHJ1ZX0seyIxIjo0OTEsIjMiOjAuMDEsIjQiOjExODAxMjAwNywiNSI6MTE4MDEyMDA4LCI2IjoxMTgwMTIwMDksIjciOjF9LHsiMSI6NDgwLCIyIjp0cnVlfSx7IjEiOjU5NCwiMyI6MC4wMSwiNCI6MTE5NzkzOTc0LCI1IjoxMTk3OTM5NzIsIjYiOjExOTc5Mzk3MywiNyI6MX0seyIxIjo1OTksIjIiOnRydWV9LHsiMSI6NTgwLCIzIjowLjEsIjQiOjExOTUyNzAyMCwiNSI6MTE5NTI3MDE5LCI2IjowLCI3IjoxfSx7IjEiOjUyMywiMiI6dHJ1ZX0seyIxIjo1ODEsIjMiOjAuMDEsIjQiOjExOTk0ODg1NCwiNSI6MTE5OTQ4ODUyLCI2IjoxMTk5NDg4NTMsIjciOjN9LHsiMSI6NTU1LCIzIjowLjAxLCI0IjoxMTkyNTk2MDYsIjUiOjExOTI1OTYwNSwiNiI6MCwiNyI6Mn0seyIxIjo1MDQsIjIiOnRydWV9LHsiMSI6NDYyLCIzIjowLjA1LCI0IjoxMTg4MDY1MjQsIjUiOjExODgwNjUyNSwiNiI6MTE4ODA2NTI2LCI3IjoxfSx7IjEiOjQxMywiMiI6dHJ1ZX0seyIxIjo1OTMsIjIiOnRydWV9LHsiMSI6NTA2LCIyIjp0cnVlfSx7IjEiOjUwMCwiMiI6dHJ1ZX0seyIxIjo1NjEsIjMiOjAuMDAxLCI0IjoxMTk0MDQ3MDMsIjUiOjExOTQwNDcwMiwiNiI6MCwiNyI6MX0seyIxIjo0ODEsIjMiOjAuMDAxLCI0IjoxMTk0MDQ3MDEsIjUiOjExOTQwNDcwMCwiNiI6MCwiNyI6MX0seyIxIjo0NTAsIjMiOjAuMDEsIjQiOjExNzIyNzcxNCwiNSI6MTE3MjI3NzE1LCI2IjoxMTcyMjc3MTYsIjciOjN9LHsiMSI6NTgzLCIzIjowLjUsIjQiOjExOTg5NjgwMywiNSI6MTE5ODk2ODAyLCI2IjowLCI3IjoxfSx7IjEiOjQ1OCwiMiI6dHJ1ZX0seyIxIjo1ODIsIjMiOjAuMDEsIjQiOjExOTM4MTY2NCwiNSI6MTE5MzgxNjYyLCI2IjoxMTkzODE2NjMsIjciOjF9LHsiMSI6NTcwLCIyIjp0cnVlfSx7IjEiOjQ5OCwiMyI6MC4yLCI0IjoxMTU2MTY5ODUsIjUiOjExNTYxNjk4NiwiNiI6MCwiNyI6MX0seyIxIjo1OTUsIjIiOnRydWV9LHsiMSI6NTg5LCIzIjowLjAxLCI0IjoxMjAwODQyMTUsIjUiOjEyMDA4NDIxNCwiNiI6MCwiNyI6MX0seyIxIjo0OTUsIjMiOjAuMDUsIjQiOjExODEzMTgxMCwiNSI6MTE4MTMxODA4LCI2IjoxMTgxMzE4MDksIjciOjN9LHsiMSI6NTg3LCIzIjowLjEsIjQiOjExOTczMjE3MSwiNSI6MTE5NzMyMTcwLCI2IjowLCI3IjozfSx7IjEiOjU4NCwiMiI6dHJ1ZX0seyIxIjo1NjQsIjMiOjAuMDAwMSwiNCI6MTE5MjA1MzE3LCI1IjoxMTkyMDUzMTUsIjYiOjExOTIwNTMxNiwiNyI6MX0seyIxIjo1NTcsIjIiOnRydWV9LHsiMSI6NDI3LCIzIjowLjEsIjQiOjExOTcyNDMyMiwiNSI6MTE5NzI0MzIwLCI2IjoxMTk3MjQzMjEsIjciOjJ9LHsiMSI6NTc2LCIzIjowLjAxLCI0IjoxMTkzMTc4MTAsIjUiOjExOTMxNzgxMSwiNiI6MTE5MzE4MTc3LCI3IjozfSx7IjEiOjU3MywiMiI6dHJ1ZX0seyIxIjo0OTksIjIiOnRydWV9LHsiMSI6NTE2LCIzIjowLjEsIjQiOjExODM5NTMzNSwiNSI6MTE4Mzk1MzMzLCI2IjoxMTgzOTUzMzQsIjciOjF9LHsiMSI6NTI0LCIyIjp0cnVlfV0sIjU5IjpbXSwiNiI6IjUyNjE1MTM5IiwiNjIiOmZhbHNlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fY3Z0XzUyNjE1MTM5XzIzIjp7ImFjY2Vzc19nbG9iYWxzIjp7ImtleXMiOlt7ImtleSI6InR3cSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfSx7ImtleSI6InR3cS5xdWV1ZSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjpmYWxzZX0seyJrZXkiOiJ0d3EuaW50ZWdyYXRpb24iLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9LHsia2V5IjoidHdxLmV4ZSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfSx7ImtleSI6InR3cS5xdWV1ZS5wdXNoIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImV4ZWN1dGUiOnRydWV9LHsia2V5IjoidHdxLmV4ZS5hcHBseSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfV19LCJpbmplY3Rfc2NyaXB0Ijp7InVybHMiOlsiaHR0cHM6XC9cL3N0YXRpYy5hZHMtdHdpdHRlci5jb21cL3V3dC5qcyJdfSwibG9nZ2luZyI6eyJlbnZpcm9ubWVudHMiOiJkZWJ1ZyJ9fQosCiJfX2N2dF81Uk0zUSI6eyJhY2Nlc3NfZ2xvYmFscyI6eyJrZXlzIjpbeyJrZXkiOiJmYnEiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6dHJ1ZX0seyJrZXkiOiJfZmJxX2d0bSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjpmYWxzZX0seyJrZXkiOiJfZmJxIiwicmVhZCI6ZmFsc2UsIndyaXRlIjp0cnVlLCJleGVjdXRlIjpmYWxzZX0seyJrZXkiOiJfZmJxX2d0bV9pZHMiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9LHsia2V5IjoiX2ZicV9ndG1fY2lkcGFyYW1zX2luaXRpYWxpemVkIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImV4ZWN1dGUiOmZhbHNlfSx7ImtleSI6ImZicS5jYWxsTWV0aG9kLmFwcGx5IiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlLCJleGVjdXRlIjp0cnVlfSx7ImtleSI6ImZicS5xdWV1ZS5wdXNoIiwicmVhZCI6ZmFsc2UsIndyaXRlIjpmYWxzZSwiZXhlY3V0ZSI6dHJ1ZX0seyJrZXkiOiJmYnEucXVldWUiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9LHsia2V5IjoiZmJxLmRpc2FibGVQdXNoU3RhdGUiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9LHsia2V5IjoiX2ZicV9wYXJhbV9idWlsZGVyX3N0YXR1cyIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjpmYWxzZX0seyJrZXkiOiJjbGllbnRQYXJhbUJ1aWxkZXIiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6dHJ1ZX0seyJrZXkiOiJjbGllbnRQYXJhbUJ1aWxkZXIucHJvY2Vzc0FuZENvbGxlY3RBbGxQYXJhbXMiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2UsImV4ZWN1dGUiOnRydWV9LHsia2V5IjoiY2xpZW50UGFyYW1CdWlsZGVyLnByb2Nlc3NBbmRDb2xsZWN0UGFyYW1zIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlLCJleGVjdXRlIjp0cnVlfV19LCJpbmplY3Rfc2NyaXB0Ijp7InVybHMiOlsiaHR0cHM6XC9cL2Nvbm5lY3QuZmFjZWJvb2submV0XC9lbl9VU1wvZmJldmVudHMuanMiLCJodHRwczpcL1wvY2FwaS1hdXRvbWF0aW9uLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tXC9wdWJsaWNcL2NsaWVudF9qc1wvY2FwaVBhcmFtQnVpbGRlclwvY2xpZW50UGFyYW1CdWlsZGVyLmJ1bmRsZS5qcyJdfSwibG9nZ2luZyI6eyJlbnZpcm9ubWVudHMiOiJkZWJ1ZyJ9LCJyZWFkX2RhdGFfbGF5ZXIiOnsiYWxsb3dlZEtleXMiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImVjb21tZXJjZSIsImV2ZW50TW9kZWwiXX0sImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkifX0KLAoiX19jdnRfTVFES1oiOnsiaW5qZWN0X3NjcmlwdCI6eyJ1cmxzIjpbImh0dHBzOlwvXC93d3cuY2xhcml0eS5tc1wvKiJdfSwiYWNjZXNzX2dsb2JhbHMiOnsia2V5cyI6W3sia2V5IjoiY2xhcml0eSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfSx7ImtleSI6ImNsYXJpdHkucSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfV19LCJyZWFkX2V2ZW50X21ldGFkYXRhIjp7fSwicmVhZF9kYXRhX2xheWVyIjp7ImFsbG93ZWRLZXlzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudCJdfX0KLAoiX19hZXYiOnsicmVhZF9kYXRhX2xheWVyIjp7ImFsbG93ZWRLZXlzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJndG0iXX0sInJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJhbnkifSwicmVhZF9kb21fZWxlbWVudF90ZXh0Ijp7fSwiZ2V0X2VsZW1lbnRfYXR0cmlidXRlcyI6eyJhbGxvd2VkQXR0cmlidXRlcyI6ImFueSJ9LCJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55In0sImFjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzIjp7InByb3BlcnRpZXMiOlt7InByb3BlcnR5IjoidGFnTmFtZSIsInJlYWQiOnRydWV9XX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiYWNjZXNzX2VsZW1lbnRfdmFsdWVzIjp7ImFsbG93UmVhZCI6W3RydWVdLCJhbGxvd1dyaXRlIjpbZmFsc2VdfX0KLAoiX19hbmFseXRpY3Nfc3RvcmFnZSI6eyJyZWFkX2FuYWx5dGljc19zdG9yYWdlIjp7fX0KLAoiX19iYXV0Ijp7ImFjY2Vzc19nbG9iYWxzIjp7ImtleXMiOlt7ImtleSI6IlVFVF9wdXNoIiwicmVhZCI6ZmFsc2UsIndyaXRlIjpmYWxzZSwiZXhlY3V0ZSI6dHJ1ZX0seyJrZXkiOiJVRVRfaW5pdCIsInJlYWQiOmZhbHNlLCJ3cml0ZSI6ZmFsc2UsImV4ZWN1dGUiOnRydWV9XX0sImluamVjdF9zY3JpcHQiOnsidXJscyI6WyJodHRwczpcL1wvYmF0LmJpbmcuY29tXC9iYXQuanMiXX0sImFjY2Vzc19jb25zZW50Ijp7ImNvbnNlbnRUeXBlcyI6W3siY29uc2VudFR5cGUiOiJhZF9zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYWRfcGVyc29uYWxpemF0aW9uIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYWRfdXNlcl9kYXRhIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19LCJsb2dnaW5nIjp7ImVudmlyb25tZW50cyI6ImRlYnVnIn19CiwKIl9fYyI6e30KLAoiX19jbCI6eyJkZXRlY3RfY2xpY2tfZXZlbnRzIjp7fX0KLAoiX19lIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50Il19fQosCiJfX2V2bCI6eyJkZXRlY3RfZWxlbWVudF92aXNpYmlsaXR5X2V2ZW50cyI6e319CiwKIl9fZiI6eyJyZWFkX2RhdGFfbGF5ZXIiOnsia2V5UGF0dGVybnMiOlsiZ3RtLnJlZmVycmVyIl19LCJnZXRfcmVmZXJyZXIiOnsidXJsUGFydHMiOiJhbnkifX0KLAoiX19nYWF3ZSI6eyJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudE1vZGVsIl19LCJyZWFkX2RhdGFfbGF5ZXIiOnsiYWxsb3dlZEtleXMiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50TW9kZWwiLCJlY29tbWVyY2UiXX0sImxvZ2dpbmciOnsiZW52aXJvbm1lbnRzIjoiZGVidWcifX0KLAoiX19nYXMiOnt9CiwKIl9fZ29vZ3RhZyI6eyJsb2dnaW5nIjp7ImVudmlyb25tZW50cyI6ImRlYnVnIn0sImFjY2Vzc19nbG9iYWxzIjp7ImtleXMiOlt7ImtleSI6Imd0YWciLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6dHJ1ZX0seyJrZXkiOiJkYXRhTGF5ZXIiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9XX0sImNvbmZpZ3VyZV9nb29nbGVfdGFncyI6eyJhbGxvd2VkVGFnSWRzIjoiYW55In0sImxvYWRfZ29vZ2xlX3RhZ3MiOnsiYWxsb3dlZFRhZ0lkcyI6ImFueSIsImFsbG93Rmlyc3RQYXJ0eVVybHMiOnRydWUsImFsbG93ZWRGaXJzdFBhcnR5VXJscyI6ImFueSJ9fQosCiJfX2d0Y3MiOnt9CiwKIl9fZ3RlcyI6e30KLAoiX19oanRjIjp7ImFjY2Vzc19nbG9iYWxzIjp7ImtleXMiOlt7ImtleSI6ImhqIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImV4ZWN1dGUiOmZhbHNlfSx7ImtleSI6ImhqLnEiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9LHsia2V5IjoiX2hqU2V0dGluZ3MiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZXhlY3V0ZSI6ZmFsc2V9XX0sImluamVjdF9zY3JpcHQiOnsidXJscyI6WyJodHRwczpcL1wvc3RhdGljLmhvdGphci5jb21cL2NcL2hvdGphci0qIl19fQosCiJfX2hsIjp7ImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiOnt9fQosCiJfX2h0bWwiOnsidW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbCI6e319CiwKIl9fanNtIjp7InVuc2FmZV9ydW5fYXJiaXRyYXJ5X2phdmFzY3JpcHQiOnt9fQosCiJfX2xjbCI6eyJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6dHJ1ZX19CiwKIl9fcGF1c2VkIjp7fQosCiJfX3UiOnsicmVhZF9kYXRhX2xheWVyIjp7ImtleVBhdHRlcm5zIjpbImd0bS51cmwiXX0sImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkifX0KLAoiX192Ijp7InJlYWRfZGF0YV9sYXllciI6eyJhbGxvd2VkS2V5cyI6ImFueSJ9fQoKCn0KCiwic2FuZGJveGVkX3NjcmlwdHMiOlsKIl9fY3Z0XzUyNjE1MTM5XzIzIgosIl9fY3Z0XzVSTTNRIgosIl9fY3Z0X01RREtaIgoKXQoKLCJzZWN1cml0eV9ncm91cHMiOnsKImN1c3RvbVNjcmlwdHMiOlsKIl9faHRtbCIKLAoiX19qc20iCgpdCiwKImdvb2dsZSI6WwoiX19hZXYiCiwKIl9fYW5hbHl0aWNzX3N0b3JhZ2UiCiwKIl9fYyIKLAoiX19jbCIKLAoiX19lIgosCiJfX2V2bCIKLAoiX19mIgosCiJfX2dhYXdlIgosCiJfX2dhcyIKLAoiX19nb29ndGFnIgosCiJfX2d0Y3MiCiwKIl9fZ3RlcyIKLAoiX19obCIKLAoiX191IgosCiJfX3YiCgpdCiwKIm5vbkdvb2dsZVNjcmlwdHMiOlsKIl9fYmF1dCIKLAoiX19oanRjIgoKXQoKCn0KCgoKCgp9OwoKCgoKdmFyIGssYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9LGJhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9LGNhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpOwp9LGhhPWNhKHRoaXMpLGlhPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCJ4Iik9PT0ic3ltYm9sIixrYT17fSxsYT17fSxuYT1mdW5jdGlvbihhLGIsYyl7aWYoIWN8fGEhPW51bGwpe3ZhciBkPWxhW2JdO2lmKGQ9PW51bGwpcmV0dXJuIGFbYl07dmFyIGU9YVtkXTtyZXR1cm4gZSE9PXZvaWQgMD9lOmFbYl19fSxvYT1mdW5jdGlvbihhLGIsYyl7aWYoYilhOnt2YXIgZD1hLnNwbGl0KCIuIiksZT1kLmxlbmd0aD09PTEsZj1kWzBdLGc7IWUmJmYgaW4ga2E/Zz1rYTpnPWhhO2Zvcih2YXIgaD0wO2g8ZC5sZW5ndGgtMTtoKyspe3ZhciBsPWRbaF07aWYoIShsIGluIGcpKWJyZWFrIGE7Zz1nW2xdfXZhciBuPWRbZC5sZW5ndGgtMV0scD1pYSYmYz09PSJlczYiP2dbbl06bnVsbCxxPWIocCk7aWYocSE9bnVsbClpZihlKWJhKGthLG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSk7ZWxzZSBpZihxIT09cCl7aWYobGFbbl09PT12b2lkIDApe3ZhciByPQpNYXRoLnJhbmRvbSgpKjFFOT4+PjA7bGFbbl09aWE/aGEuU3ltYm9sKG4pOiIkanNjcCQiK3IrIiQiK259YmEoZyxsYVtuXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX19fSxwYTtpZihpYSYmdHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilwYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcmE7YTp7dmFyIHRhPXthOiEwfSx1YT17fTt0cnl7dWEuX19wcm90b19fPXRhO3JhPXVhLmE7YnJlYWsgYX1jYXRjaChhKXt9cmE9ITF9cGE9cmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsfQp2YXIgdmE9cGEsd2E9ZnVuY3Rpb24oYSxiKXthLnByb3RvdHlwZT1hYShiLnByb3RvdHlwZSk7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTtpZih2YSl2YShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuRnQ9Yi5wcm90b3R5cGV9LHhhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSxtPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDp4YShhKX07CnRocm93IEVycm9yKFN0cmluZyhhKSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9LHlhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO3JldHVybiBjfSx3PWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgQXJyYXk/YTp5YShtKGEpKX0sQWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHphKGEsYSl9LHphPWZ1bmN0aW9uKGEsYil7YS5yYXc9YjtPYmplY3QuZnJlZXplJiYoT2JqZWN0LmZyZWV6ZShhKSxPYmplY3QuZnJlZXplKGIpKTtyZXR1cm4gYX0sQmE9aWEmJnR5cGVvZiBuYShPYmplY3QsImFzc2lnbiIpPT0iZnVuY3Rpb24iP25hKE9iamVjdCwiYXNzaWduIik6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG51bGxpc2ggYXJnIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdOwppZihkKWZvcih2YXIgZSBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07b2EoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxCYX0sImVzNiIpO3ZhciBDYT1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fSxEYT1mdW5jdGlvbigpe3RoaXMuZmE9ITE7dGhpcy5SPW51bGw7dGhpcy5qYT12b2lkIDA7dGhpcy5IPTE7dGhpcy5OPXRoaXMuWj0wO3RoaXMuTGE9dGhpcy5LPW51bGx9LEVhPWZ1bmN0aW9uKGEpe2lmKGEuZmEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2EuZmE9ITB9O0RhLnByb3RvdHlwZS55YT1mdW5jdGlvbihhKXt0aGlzLmphPWF9Owp2YXIgR2E9ZnVuY3Rpb24oYSxiKXthLks9e2FvOmIsaXNFeGNlcHRpb246ITB9O2EuSD1hLlp8fGEuTn07RGEucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07RGEucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuamF9O0RhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5LPXtyZXR1cm46YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlWyJyZXR1cm4iXT1EYS5wcm90b3R5cGUucmV0dXJuO0RhLnByb3RvdHlwZS5Baj1mdW5jdGlvbihhKXt0aGlzLks9e25kOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLkFqO0RhLnByb3RvdHlwZS5hYz1mdW5jdGlvbihhLGIpe3RoaXMuSD1iO3JldHVybnt2YWx1ZTphfX07RGEucHJvdG90eXBlLnlpZWxkPURhLnByb3RvdHlwZS5hYzsKRGEucHJvdG90eXBlLnhzPWZ1bmN0aW9uKGEsYil7dmFyIGM9bShhKSxkPWMubmV4dCgpO0NhKGQpO2lmKGQuZG9uZSl0aGlzLmphPWQudmFsdWUsdGhpcy5IPWI7ZWxzZSByZXR1cm4gdGhpcy5SPWMsdGhpcy5hYyhkLnZhbHVlLGIpfTtEYS5wcm90b3R5cGUueWllbGRBbGw9RGEucHJvdG90eXBlLnhzO0RhLnByb3RvdHlwZS5uZD1mdW5jdGlvbihhKXt0aGlzLkg9YX07RGEucHJvdG90eXBlLmp1bXBUbz1EYS5wcm90b3R5cGUubmQ7RGEucHJvdG90eXBlLkRqPWZ1bmN0aW9uKCl7dGhpcy5IPTB9O0RhLnByb3RvdHlwZS5qdW1wVG9FbmQ9RGEucHJvdG90eXBlLkRqO0RhLnByb3RvdHlwZS5Oaj1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO2IhPXZvaWQgMCYmKHRoaXMuTj1iKX07RGEucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuTmo7RGEucHJvdG90eXBlLnZnPWZ1bmN0aW9uKGEpe3RoaXMuWj0wO3RoaXMuTj1hfHwwfTsKRGEucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUudmc7RGEucHJvdG90eXBlLklqPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5aPWJ8fDB9O0RhLnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPURhLnByb3RvdHlwZS5JajtEYS5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oYSl7dGhpcy5aPWF8fDA7dmFyIGI9dGhpcy5LLmFvO3RoaXMuSz1udWxsO3JldHVybiBifTtEYS5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPURhLnByb3RvdHlwZS5QaDtEYS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oYSxiLGMpe2M/dGhpcy5MYVtjXT10aGlzLks6dGhpcy5MYT1bdGhpcy5LXTt0aGlzLlo9YXx8MDt0aGlzLk49Ynx8MH07RGEucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5rZDsKRGEucHJvdG90eXBlLmhlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYS5zcGxpY2UoYnx8MClbMF0sZD10aGlzLks9dGhpcy5LfHxjO2Q/ZC5pc0V4Y2VwdGlvbj90aGlzLkg9dGhpcy5afHx0aGlzLk46ZC5uZCE9dm9pZCAwJiZ0aGlzLk48ZC5uZD8odGhpcy5IPWQubmQsdGhpcy5LPW51bGwpOnRoaXMuSD10aGlzLk46dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUuaGU7RGEucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSGEoYSl9O0RhLnByb3RvdHlwZS5mb3JJbj1EYS5wcm90b3R5cGUuZmU7dmFyIEhhPWZ1bmN0aW9uKGEpe3RoaXMuSz1hO3RoaXMuSD1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLkgucHVzaChiKTt0aGlzLkgucmV2ZXJzZSgpfTtIYS5wcm90b3R5cGUuaG89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuSC5sZW5ndGg+MDspe3ZhciBhPXRoaXMuSC5wb3AoKTtpZihhIGluIHRoaXMuSylyZXR1cm4gYX1yZXR1cm4gbnVsbH07CkhhLnByb3RvdHlwZS5nZXROZXh0PUhhLnByb3RvdHlwZS5obzsKdmFyIElhPWZ1bmN0aW9uKGEpe3RoaXMuSD1uZXcgRGE7dGhpcy5LPWF9LExhPWZ1bmN0aW9uKGEsYil7RWEoYS5IKTt2YXIgYz1hLkguUjtpZihjKXJldHVybiBKYShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkgucmV0dXJuKTthLkgucmV0dXJuKGIpO3JldHVybiBLYShhKX0sSmE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkguUixjKTtDYShlKTtpZighZS5kb25lKXJldHVybiBhLkguZmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkguUj1udWxsLEdhKGEuSCxnKSxLYShhKX1hLkguUj1udWxsO2QuY2FsbChhLkgsZik7cmV0dXJuIEthKGEpfSxLYT1mdW5jdGlvbihhKXtmb3IoO2EuSC5IOyl0cnl7dmFyIGI9YS5LKGEuSCk7aWYoYilyZXR1cm4gYS5ILmZhPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGQpe2EuSC5qYT12b2lkIDAsR2EoYS5ILApkKX1hLkguZmE9ITE7aWYoYS5ILkspe3ZhciBjPWEuSC5LO2EuSC5LPW51bGw7aWYoYy5pc0V4Y2VwdGlvbil0aHJvdyBjLmFvO3JldHVybnt2YWx1ZTpjLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSxNYT1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlIubmV4dCxiLGEuSC55YSk6KGEuSC55YShiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy50aHJvdz1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUlsidGhyb3ciXSxiLGEuSC55YSk6KEdhKGEuSCxiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIExhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX0sTmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTWEobmV3IElhKGIpKTt2YSYmYS5wcm90b3R5cGUmJnZhKGMsCmEucHJvdG90eXBlKTtyZXR1cm4gY30sT2E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0sUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9Oy8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBSYT10aGlzfHxzZWxmLFNhPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkZ0PWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5udj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19O3ZhciBUYT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuZGF0YT1ifTt2YXIgVWE9ZnVuY3Rpb24oKXt0aGlzLm1hcD17fTt0aGlzLkg9e319O1VhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwWyJkdXN0LiIrYV19O1VhLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGMpfHwodGhpcy5tYXBbY109Yil9O1VhLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KCJkdXN0LiIrYSl9O1VhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7dmFyIGI9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShiKXx8ZGVsZXRlIHRoaXMubWFwW2JdfTsKdmFyIFZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLm1hcClpZihhLm1hcC5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7c3dpdGNoKGIpe2Nhc2UgMTpjLnB1c2goZSk7YnJlYWs7Y2FzZSAyOmMucHVzaChhLm1hcFtkXSk7YnJlYWs7Y2FzZSAzOmMucHVzaChbZSxhLm1hcFtkXV0pfX1yZXR1cm4gY307VWEucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMSl9O1VhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDIpfTtVYS5wcm90b3R5cGUuZmM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywzKX07dmFyIFdhPWZ1bmN0aW9uKCl7fTtXYS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBYYT1mdW5jdGlvbigpe3RoaXMudmFsdWU9e307dGhpcy5wcmVmaXg9Imd0bS4ifTtrPVhhLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXT1ifTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByZWZpeCtTdHJpbmcoYSkpfTtrLmRlbGV0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnByZWZpeCtTdHJpbmcoYSk7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkoYik/KGRlbGV0ZSB0aGlzLnZhbHVlW2JdLCEwKTohMX07ay5jbGVhcj1mdW5jdGlvbigpe3RoaXMudmFsdWU9e319OwprLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uIGMoKXt2YXIgZCxlLGY7cmV0dXJuIE5hKGMsZnVuY3Rpb24oZyl7c3dpdGNoKGcuSCl7Y2FzZSAxOmcudmcoMiksZT1nLmZlKGEudmFsdWUpO2Nhc2UgNDppZigoZD1lLmhvKCkpPT1udWxsKXtnLm5kKDIpO2JyZWFrfWlmKCFhLnZhbHVlLmhhc093blByb3BlcnR5KGQpKXtnLm5kKDQpO2JyZWFrfWY9UWE7cmV0dXJuIGcuYWMoYS52YWx1ZVtkXSw4KTtjYXNlIDg6ZihnLmphKTtnLm5kKDQpO2JyZWFrO2Nhc2UgMjpnLmtkKCksZy5oZSgwKX19KX0oKX07aGEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWGEucHJvdG90eXBlLHtzaXplOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RofX19KTsKZnVuY3Rpb24gWWEoKXt0cnl7aWYoTWFwKXJldHVybiBuZXcgTWFwfWNhdGNoKGEpe31yZXR1cm4gbmV3IFhhfTt2YXIgWmE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlcz1bXX07WmEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlcy5pbmRleE9mKGEpPT09LTEmJnRoaXMudmFsdWVzLnB1c2goYSl9O1phLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmluZGV4T2YoYSk+LTF9O3ZhciAkYT1mdW5jdGlvbihhLGIpe3RoaXMuZmE9YTt0aGlzLnBhcmVudD1iO3RoaXMuUj10aGlzLks9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5OPWZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZC5hcHBseShlLGYpfTt0aGlzLkg9WWEoKTt2YXIgYzthOnt0cnl7aWYoU2V0KXtjPW5ldyBTZXQ7YnJlYWsgYX19Y2F0Y2goZCl7fWM9bmV3IFphfXRoaXMuWj1jfTskYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITEpfTskYS5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMCl9O3ZhciBhYj1mdW5jdGlvbihhLGIsYyxkKXthLkhifHxhLlouaGFzKGIpfHwoZCYmYS5aLmFkZChiKSxhLkguc2V0KGIsYykpfTtrPSRhLnByb3RvdHlwZTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMuSC5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy5aLmhhcyhhKXx8dGhpcy5ILnNldChhLGIpKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5oYXMoYSk/dGhpcy5ILmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuSC5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyAkYSh0aGlzLmZhLHRoaXMpO3RoaXMuSyYmYS5RYih0aGlzLkspO2Euc2QodGhpcy5OKTthLnVlKHRoaXMuUik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYX07ay5RYj1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9OwprLnNkPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5SPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTt2YXIgYmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGEubWVzc2FnZSk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy52bz1hO3RoaXMuU249Yz09PXZvaWQgMD8hMTpjO3RoaXMuSz1bXTt0aGlzLkg9Yn07d2EoYmIsRXJyb3IpO3ZhciBjYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGJiP2E6bmV3IGJiKGEsdm9pZCAwLCEwKX07dmFyIGRiPVlhKCk7ZnVuY3Rpb24gZWIoYSxiKXtmb3IodmFyIGMsZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZSYmIShjPWZiKGEsZS52YWx1ZSksYyBpbnN0YW5jZW9mIFRhKTtlPWQubmV4dCgpKTtyZXR1cm4gY31mdW5jdGlvbiBmYihhLGIpe3RyeXt2YXIgYz1iWzBdLGQ9Yi5zbGljZSgxKSxlPVN0cmluZyhjKSxmPWRiLmhhcyhlKT9kYi5nZXQoZSk6YS5nZXQoZSk7aWYoIWZ8fHR5cGVvZiBmLmludm9rZSE9PSJmdW5jdGlvbiIpdGhyb3cgY2IoRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBub24tZnVuY3Rpb24gIitiWzBdKyIuIikpO3JldHVybiBmLmFwcGx5KGEsZCl9Y2F0Y2goaCl7dmFyIGc9YS5mbygpO2cmJmcoaCxiLmNvbnRleHQ/e2lkOmJbMF0sbGluZTpiLmNvbnRleHQubGluZX06bnVsbCk7dGhyb3cgaDt9fTt2YXIgZ2I9ZnVuY3Rpb24oKXt0aGlzLks9bmV3IFdhO3RoaXMuSD1uZXcgJGEodGhpcy5LKX07az1nYi5wcm90b3R5cGU7ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07ay5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJrKFthXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2sucms9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj1tKE9hLmFwcGx5KDAsYXJndW1lbnRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYT1mYih0aGlzLkgsYy52YWx1ZSk7cmV0dXJuIGF9O2suSnE9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9dGhpcy5ILndiKCk7Yy51ZShhKTtmb3IodmFyIGQsZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQ9ZmIoYyxmLnZhbHVlKTtyZXR1cm4gZH07ay5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTt2YXIgaGI9ZnVuY3Rpb24oYSxiKXt0aGlzLlI9YTt0aGlzLnBhcmVudD1iO3RoaXMuTj10aGlzLkg9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5LPWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYy5hcHBseShkLGUpfTt0aGlzLnZhbHVlcz1uZXcgVWF9O2hiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMSl9O2hiLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCEwKX07dmFyIGpiPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhLkhiKWlmKGQpe3ZhciBlPWEudmFsdWVzO2Uuc2V0KGIsYyk7ZS5IWyJkdXN0LiIrYl09ITB9ZWxzZSBhLnZhbHVlcy5zZXQoYixjKX07az1oYi5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMudmFsdWVzLmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLnZhbHVlcy5zZXQoYSxiKSl9OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGEpP3RoaXMudmFsdWVzLmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMudmFsdWVzLmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGhiKHRoaXMuUix0aGlzKTt0aGlzLkgmJmEuUWIodGhpcy5IKTthLnNkKHRoaXMuSyk7YS51ZSh0aGlzLk4pO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07ay5RYj1mdW5jdGlvbihhKXt0aGlzLkg9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLk49YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O3ZhciBrYj1mdW5jdGlvbigpe3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWF9O2s9a2IucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBsYigpe2Zvcih2YXIgYT1tYixiPXt9LGM9MDtjPGEubGVuZ3RoOysrYyliW2FbY11dPWM7cmV0dXJuIGJ9ZnVuY3Rpb24gbmIoKXt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO2ErPWEudG9Mb3dlckNhc2UoKSsiMDEyMzQ1Njc4OS1fIjtyZXR1cm4gYSsiLiJ9dmFyIG1iLG9iO2Z1bmN0aW9uIHBiKGEpe21iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKz0zKXt2YXIgZD1jKzE8YS5sZW5ndGgsZT1jKzI8YS5sZW5ndGgsZj1hLmNoYXJDb2RlQXQoYyksZz1kP2EuY2hhckNvZGVBdChjKzEpOjAsaD1lP2EuY2hhckNvZGVBdChjKzIpOjAsbD1mPj4yLG49KGYmMyk8PDR8Zz4+NCxwPShnJjE1KTw8MnxoPj42LHE9aCY2MztlfHwocT02NCxkfHwocD02NCkpO2IucHVzaChtYltsXSxtYltuXSxtYltwXSxtYltxXSl9cmV0dXJuIGIuam9pbigiIil9CmZ1bmN0aW9uIHFiKGEpe2Z1bmN0aW9uIGIobCl7Zm9yKDtkPGEubGVuZ3RoOyl7dmFyIG49YS5jaGFyQXQoZCsrKSxwPW9iW25dO2lmKHAhPW51bGwpcmV0dXJuIHA7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChuKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIituKTt9cmV0dXJuIGx9bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBjPSIiLGQ9MDs7KXt2YXIgZT1iKC0xKSxmPWIoMCksZz1iKDY0KSxoPWIoNjQpO2lmKGg9PT02NCYmZT09PS0xKXJldHVybiBjO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUoZTw8MnxmPj40KTtnIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGY8PDQmMjQwfGc+PjIpLGghPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZzw8NiYxOTJ8aCkpKX19O3ZhciByYj17fTtmdW5jdGlvbiBzYihhLGIpe3ZhciBjPXJiW2FdO2N8fChjPXJiW2FdPVtdKTtjW2JdPSEwfWZ1bmN0aW9uIHRiKCl7ZGVsZXRlIHJiLkdBNF9FVkVOVH1mdW5jdGlvbiB1Yigpe3ZhciBhPXZiLkguc2xpY2UoKTtyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTD1hfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKWQlOD09PTAmJmQ+MCYmKGIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSxjPTApLGFbZF0mJihjfD0xPDxkJTgpO2M+MCYmYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO3JldHVybiBwYihiLmpvaW4oIiIpKS5yZXBsYWNlKC9cLiskLywiIil9O2Z1bmN0aW9uIHhiKCl7fWZ1bmN0aW9uIHliKGEpe3JldHVybiB0eXBlb2YgYT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gemIoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKX1mdW5jdGlvbiBCYihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX1mdW5jdGlvbiBDYihhLGIpe2lmKGEmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmYihhW2NdKSlyZXR1cm4gYVtjXX1mdW5jdGlvbiBEYihhLGIpe2lmKCFBYihhKXx8IUFiKGIpfHxhPmIpYT0wLGI9MjE0NzQ4MzY0NztyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihiLWErMSkrYSl9CmZ1bmN0aW9uIEViKGEsYil7Zm9yKHZhciBjPW5ldyBGYixkPTA7ZDxhLmxlbmd0aDtkKyspYy5zZXQoYVtkXSwhMCk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5nZXQoYltlXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2IoYSxiKXtmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihjLGFbY10pfWZ1bmN0aW9uIEhiKGEpe3JldHVybiEhYSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEFyZ3VtZW50c10ifHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiY2FsbGVlIikpfWZ1bmN0aW9uIEliKGEpe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihhKSl8fDB9ZnVuY3Rpb24gSmIoYSl7cmV0dXJuImZhbHNlIj09PVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpPyExOiEhYX0KZnVuY3Rpb24gS2IoYSl7dmFyIGI9W107aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2goU3RyaW5nKGFbY10pKTtyZXR1cm4gYn1mdW5jdGlvbiBMYihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToiIn1mdW5jdGlvbiBNYigpe3JldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpKX1mdW5jdGlvbiBOYigpe3JldHVybiBNYigpLmdldFRpbWUoKX12YXIgRmI9ZnVuY3Rpb24oKXt0aGlzLnByZWZpeD0iZ3RtLiI7dGhpcy52YWx1ZXM9e319O0ZiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXT1ifTtGYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXX07RmIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldChhKSE9PXZvaWQgMH07CmZ1bmN0aW9uIE9iKGEsYixjKXtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOmN9ZnVuY3Rpb24gUGIoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9dm9pZCAwO3RyeXtjKCl9Y2F0Y2goZCl7fX19fWZ1bmN0aW9uIFFiKGEsYil7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YltjXSl9ZnVuY3Rpb24gUmIoYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdKSxjLnB1c2guYXBwbHkoYyxiW2FbZF1dfHxbXSk7cmV0dXJuIGN9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZygwLGIubGVuZ3RoKT09PWJ9ZnVuY3Rpb24gVGIoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZyhhLmxlbmd0aC1iLmxlbmd0aCxhLmxlbmd0aCk9PT1ifQpmdW5jdGlvbiBVYihhLGIsYyl7Yz1jfHxbXTtmb3IodmFyIGQ9YSxlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7aWYoIWQuaGFzT3duUHJvcGVydHkoYltlXSkpcmV0dXJuO2Q9ZFtiW2VdXTtpZihjLmluZGV4T2YoZCk+PTApcmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjPXt9LGQ9YyxlPWEuc3BsaXQoIi4iKSxmPTA7ZjxlLmxlbmd0aC0xO2YrKylkPWRbZVtmXV09e307ZFtlW2UubGVuZ3RoLTFdXT1iO3JldHVybiBjfXZhciBXYj0vXlx3ezEsOX0kLztmdW5jdGlvbiBZYihhLGIpe2E9YXx8e307Yj1ifHwiLCI7dmFyIGM9W107R2IoYSxmdW5jdGlvbihkLGUpe1diLnRlc3QoZCkmJmUmJmMucHVzaChkKX0pO3JldHVybiBjLmpvaW4oYil9CmZ1bmN0aW9uIFpiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTtkPDEyOD9iLnB1c2goZCk6ZDwyMDQ4P2IucHVzaCgxOTJ8ZD4+NiwxMjh8ZCY2Myk6ZDw1NTI5Nnx8ZD49NTczNDQ/Yi5wdXNoKDIyNHxkPj4xMiwxMjh8ZD4+NiY2MywxMjh8ZCY2Myk6KGQ9NjU1MzYrKChkJjEwMjMpPDwxMHxhLmNoYXJDb2RlQXQoKytjKSYxMDIzKSxiLnB1c2goMjQwfGQ+PjE4LDEyOHxkPj4xMiY2MywxMjh8ZD4+NiY2MywxMjh8ZCY2MykpfXJldHVybiBuZXcgVWludDhBcnJheShiKX1mdW5jdGlvbiAkYihhKXtpZighYSlyZXR1cm4gYTt2YXIgYj1hO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChkKXt9dmFyIGM9Yi5zcGxpdCgiLCIpO3JldHVybiBjLmxlbmd0aD09PTImJmNbMF09PT1jWzFdP2NbMF06YX0KZnVuY3Rpb24gYWMoYSxiLGMpe2Z1bmN0aW9uIGQobil7dmFyIHA9bi5zcGxpdCgiPSIpWzBdO2lmKGEuaW5kZXhPZihwKTwwKXJldHVybiBuO2lmKGMhPT12b2lkIDApcmV0dXJuIHArIj0iK2N9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5zcGxpdCgiJiIpLm1hcChkKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT12b2lkIDB9KS5qb2luKCImIil9dmFyIGY9Yi5ocmVmLnNwbGl0KC9bPyNdLylbMF0sZz1iLnNlYXJjaCxoPWIuaGFzaDtnWzBdPT09Ij8iJiYoZz1nLnN1YnN0cmluZygxKSk7aFswXT09PSIjIiYmKGg9aC5zdWJzdHJpbmcoMSkpO2c9ZShnKTtoPWUoaCk7ZyE9PSIiJiYoZz0iPyIrZyk7aCE9PSIiJiYoaD0iIyIraCk7dmFyIGw9IiIrZitnK2g7bFtsLmxlbmd0aC0xXT09PSIvIiYmKGw9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0xKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGJjKGEpe2Zvcih2YXIgYj0wO2I8MzsrK2IpdHJ5e3ZhciBjPWRlY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoYz09PWEpYnJlYWs7YT1jfWNhdGNoKGQpe3JldHVybiIifXJldHVybiBhfWZ1bmN0aW9uIGNjKCl7dmFyIGE9QSxiO2E6e3ZhciBjPWEuY3J5cHRvfHxhLm1zQ3J5cHRvO2lmKGMmJmMuZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgZD1uZXcgVWludDhBcnJheSgyNSk7Yy5nZXRSYW5kb21WYWx1ZXMoZCk7Yj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZCkpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2JyZWFrIGF9Y2F0Y2goZSl7fWI9dm9pZCAwfXJldHVybiBifTsvKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgZGM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsZWM7ZnVuY3Rpb24gZmMoKXt2YXIgYT1udWxsO2lmKCFkYylyZXR1cm4gYTt0cnl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2E9ZGMuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9ZnVuY3Rpb24gaGMoKXtlYz09PXZvaWQgMCYmKGVjPWZjKCkpO3JldHVybiBlY307dmFyIGljPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtpYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTtmdW5jdGlvbiBqYyhhKXt2YXIgYj1hLGM9aGMoKSxkPWM/Yy5jcmVhdGVTY3JpcHRVUkwoYik6YjtyZXR1cm4gbmV3IGljKGQpfWZ1bmN0aW9uIGtjKGEpe2lmKGEgaW5zdGFuY2VvZiBpYylyZXR1cm4gYS5IO3Rocm93IEVycm9yKCIiKTt9O3ZhciBsYz1BYShbIiJdKSxtYz16YShbIlx4MDAiXSxbIlxcMCJdKSxuYz16YShbIlxuIl0sWyJcXG4iXSksb2M9emEoWyJceDAwIl0sWyJcXHUwMDAwIl0pO2Z1bmN0aW9uIHBjKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobGMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG1jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShuYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEob2MpfSk7dmFyIHFjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtxYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTt2YXIgcmM9ZnVuY3Rpb24oYSl7dGhpcy5Kcz1hfTtmdW5jdGlvbiBzYyhhKXtyZXR1cm4gbmV3IHJjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciB0Yz1bc2MoImRhdGEiKSxzYygiaHR0cCIpLHNjKCJodHRwcyIpLHNjKCJtYWlsdG8iKSxzYygiZnRwIiksbmV3IHJjKGZ1bmN0aW9uKGEpe3JldHVybi9eW146XSooWy8/I118JCkvLnRlc3QoYSl9KV07ZnVuY3Rpb24gdWMoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP3RjOmI7aWYoYSBpbnN0YW5jZW9mIHFjKXJldHVybiBhO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiByYyYmZC5KcyhhKSlyZXR1cm4gbmV3IHFjKGEpfX12YXIgdmM9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTsKZnVuY3Rpb24gd2MoYSl7dmFyIGI7aWYoYSBpbnN0YW5jZW9mIHFjKWlmKGEgaW5zdGFuY2VvZiBxYyliPWEuSDtlbHNlIHRocm93IEVycm9yKCIiKTtlbHNlIGI9dmMudGVzdChhKT9hOnZvaWQgMDtyZXR1cm4gYn07ZnVuY3Rpb24geGMoYSxiKXt2YXIgYz13YyhiKTtjIT09dm9pZCAwJiYoYS5hY3Rpb249Yyl9O2Z1bmN0aW9uIHljKGEsYil7dGhyb3cgRXJyb3IoYj09PXZvaWQgMD8idW5leHBlY3RlZCB2YWx1ZSAiK2ErIiEiOmIpO307dmFyIHpjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTt6Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTt2YXIgQmM9ZnVuY3Rpb24oKXt0aGlzLkg9QWNbMF0udG9Mb3dlckNhc2UoKX07QmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1bbmV3IEJjXTtpZihjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO3ZhciBkPWMubWFwKGZ1bmN0aW9uKGYpe3ZhciBnO2lmKGYgaW5zdGFuY2VvZiBCYylnPWYuSDtlbHNlIHRocm93IEVycm9yKCIiKTtyZXR1cm4gZ30pLGU9Yi50b0xvd2VyQ2FzZSgpO2lmKGQuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGUuaW5kZXhPZihmKSE9PTB9KSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInK2IrJyIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpO2Euc2V0QXR0cmlidXRlKGIsInRydWUiKX07dmFyIERjPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07IkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLAoiSU5QVVQiXSk7ZnVuY3Rpb24gRWMoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmF9O3ZhciBBPXdpbmRvdyxGYz1bXSxHYz13aW5kb3cuaGlzdG9yeSxCPWRvY3VtZW50LEhjPW5hdmlnYXRvcjtmdW5jdGlvbiBJYygpe3ZhciBhO3RyeXthPUhjLnNlcnZpY2VXb3JrZXJ9Y2F0Y2goYil7cmV0dXJufXJldHVybiBhfXZhciBKYz1CLmN1cnJlbnRTY3JpcHQsS2M9SmMmJkpjLnNyYztmdW5jdGlvbiBNYyhhLGIpe3ZhciBjPUEsZD1jW2FdO2NbYV09ZD09PXZvaWQgMD9iOmQ7cmV0dXJuIGNbYV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuKEhjLnVzZXJBZ2VudHx8IiIpLmluZGV4T2YoYSkhPT0tMX1mdW5jdGlvbiBPYygpe3JldHVybiBOYygiRmlyZWZveCIpfHxOYygiRnhpT1MiKX1mdW5jdGlvbiBQYygpe3JldHVybihOYygiR1NBIil8fE5jKCJHb29nbGVBcHAiKSkmJihOYygiaVBob25lIil8fE5jKCJpUGFkIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIE5jKCJFZGcvIil8fE5jKCJFZGdBLyIpfHxOYygiRWRnaU9TLyIpfQp2YXIgUmM9e2FzeW5jOjEsbm9uY2U6MSxvbmVycm9yOjEsb25sb2FkOjEsc3JjOjEsdHlwZToxfSxTYz17aGVpZ2h0OjEsb25sb2FkOjEsc3JjOjEsc3R5bGU6MSx3aWR0aDoxfTtmdW5jdGlvbiBUYyhhLGIsYyl7YiYmR2IoYixmdW5jdGlvbihkLGUpe2Q9ZC50b0xvd2VyQ2FzZSgpO2MuaGFzT3duUHJvcGVydHkoZCl8fGEuc2V0QXR0cmlidXRlKGQsZSl9KX0KZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXt2YXIgZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1RjKGYsZCxSYyk7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2YuYXN5bmM9ZCYmZC5hc3luYz09PSExPyExOiEwO3ZhciBnO2c9amMoRWMoYSkpO2Yuc3JjPWtjKGcpO3ZhciBoLGw9Zi5vd25lckRvY3VtZW50O2w9bD09PXZvaWQgMD9kb2N1bWVudDpsO3ZhciBuLHAscT0ocD0obj1sKS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6cC5jYWxsKG4sInNjcmlwdFtub25jZV0iKTsoaD1xPT1udWxsPyIiOnEubm9uY2V8fHEuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmYuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7YiYmKGYub25sb2FkPWIpO2MmJihmLm9uZXJyb3I9Yyk7ZT9lLmFwcGVuZENoaWxkKGYpOlZjLkJzKGYpO3JldHVybiBmfQpmdW5jdGlvbiBXYygpe2lmKEtjKXt2YXIgYT1LYy50b0xvd2VyQ2FzZSgpO2lmKGEuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTApcmV0dXJuIDI7aWYoYS5pbmRleE9mKCJodHRwOi8vIik9PT0wKXJldHVybiAzfXJldHVybiAxfWZ1bmN0aW9uIFhjKGEsYixjLGQsZSxmKXtmPWY9PT12b2lkIDA/ITA6Zjt2YXIgZz1lLGg9ITE7Z3x8KGc9Qi5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxoPSEwKTtUYyhnLGMsU2MpO2QmJkdiKGQsZnVuY3Rpb24obixwKXtnLmRhdGFzZXRbbl09cH0pO2YmJihnLmhlaWdodD0iMCIsZy53aWR0aD0iMCIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixnLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2EhPT12b2lkIDAmJihnLnNyYz1hKTtpZihoKXt2YXIgbD1CLmJvZHkmJkIuYm9keS5sYXN0Q2hpbGR8fEIuYm9keXx8Qi5oZWFkO2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxsKX1iJiYoZy5vbmxvYWQ9Yik7cmV0dXJuIGd9CmZ1bmN0aW9uIFpjKCl7cmV0dXJuIFZjLkVyLmFwcGx5KFZjLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9ZnVuY3Rpb24gJGMoYSxiLGMsZCl7YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEhZCl9ZnVuY3Rpb24gYWQoYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gYmQoYSl7QS5zZXRUaW1lb3V0KGEsMCl9ZnVuY3Rpb24gY2QoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZCxlPShkPUEpLnNldEludGVydmFsLmFwcGx5KGQsW2EsYl0uY29uY2F0KHcoYykpKTtGYy5wdXNoKGUpO3JldHVybiBlfQpmdW5jdGlvbiBkZChhKXt2YXIgYj1BO3liKGIucXVldWVNaWNyb3Rhc2spP2IucXVldWVNaWNyb3Rhc2soYSk6eWIoYi5Qcm9taXNlKSYmYi5Qcm9taXNlLnJlc29sdmU/Yi5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7YSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTpiZChhKX1mdW5jdGlvbiBlZChhLGIpe3JldHVybiBhJiZiJiZhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlc1tiXT9hLmF0dHJpYnV0ZXNbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBmZChhKXt2YXIgYj1hLmlubmVyVGV4dHx8YS50ZXh0Q29udGVudHx8IiI7YiYmYiE9PSIgIiYmKGI9Yi5yZXBsYWNlKC9eW1xzXHhhMF0rL2csIiIpLGI9Yi5yZXBsYWNlKC9bXHNceGEwXSskL2csIiIpKTtiJiYoYj1iLnJlcGxhY2UoLyhceGEwK3xcc3syLH18XG58XHJcdCkvZywiICIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gZ2QoYSl7dmFyIGI9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWIsZCxlPUVjKCJBPGRpdj4iK2ErIjwvZGl2PiIpLGY9aGMoKSxnPWY/Zi5jcmVhdGVIVE1MKGUpOmU7ZD1uZXcgemMoZyk7aWYoYy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChjLnRhZ05hbWUpKXRocm93IEVycm9yKCIiKTt2YXIgaDtpZihkIGluc3RhbmNlb2YgemMpaD1kLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7Yy5pbm5lckhUTUw9aDtiPWIubGFzdENoaWxkO2Zvcih2YXIgbD1bXTtiJiZiLmZpcnN0Q2hpbGQ7KWwucHVzaChiLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCkpO3JldHVybiBsfQpmdW5jdGlvbiBoZChhLGIsYyl7Yz1jfHwxMDA7Zm9yKHZhciBkPXt9LGU9MDtlPGIubGVuZ3RoO2UrKylkW2JbZV1dPSEwO2Zvcih2YXIgZj1hLGc9MDtmJiZnPD1jO2crKyl7aWYoZFtTdHJpbmcoZi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4gZjtmPWYucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpZChhLGIsYyl7dmFyIGQ7dHJ5e2Q9SGMuc2VuZEJlYWNvbiYmSGMuc2VuZEJlYWNvbihhKX1jYXRjaChlKXtzYigiVEFHR0lORyIsMTUpfWQ/Yj09bnVsbHx8YigpOlpjKGEsYixjKX1mdW5jdGlvbiBqZChhLGIpe3RyeXtpZihIYy5zZW5kQmVhY29uIT09dm9pZCAwKXJldHVybiBIYy5zZW5kQmVhY29uKGEsYil9Y2F0Y2goYyl7c2IoIlRBR0dJTkciLDE1KX1yZXR1cm4hMX1mdW5jdGlvbiBrZCgpe3JldHVybiBIYy5zZW5kQmVhY29uIT09dm9pZCAwfQp2YXIgbGQ9e2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGtlZXBhbGl2ZTohMCxtZXRob2Q6IlBPU1QiLG1vZGU6Im5vLWNvcnMiLHJlZGlyZWN0OiJmb2xsb3cifTsKZnVuY3Rpb24gbWQoYSxiLGMsZCxlKXtpZihuZCgpKXt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtiJiYoZi5ib2R5PWIpO2MmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nJiYoZi5hdHRyaWJ1dGlvblJlcG9ydGluZz1jLmF0dHJpYnV0aW9uUmVwb3J0aW5nKSxjLmJyb3dzaW5nVG9waWNzIT09dm9pZCAwJiYoZi5icm93c2luZ1RvcGljcz1jLmJyb3dzaW5nVG9waWNzKSxjLmNyZWRlbnRpYWxzJiYoZi5jcmVkZW50aWFscz1jLmNyZWRlbnRpYWxzKSxjLmtlZXBhbGl2ZSE9PXZvaWQgMCYmKGYua2VlcGFsaXZlPWMua2VlcGFsaXZlKSxjLm1ldGhvZCYmKGYubWV0aG9kPWMubWV0aG9kKSxjLm1vZGUmJihmLm1vZGU9Yy5tb2RlKSk7dHJ5e3ZhciBnPUEuZmV0Y2goYSxmKTtpZihnKXJldHVybiBnLnRoZW4oZnVuY3Rpb24obCl7bCYmKGwub2t8fGwuc3RhdHVzPT09MCk/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09Cm51bGx8fGUoKX0pLCEwfWNhdGNoKGwpe319aWYoKGM9PW51bGw/MDpjLlFnKXx8KGM9PW51bGw/MDpjLmNyZWRlbnRpYWxzKSYmYy5jcmVkZW50aWFscyE9PSJpbmNsdWRlIilyZXR1cm4gZT09bnVsbHx8ZSgpLCExO2lmKGIpe3ZhciBoPWpkKGEsYik7aD9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpO3JldHVybiBofVZjLnd0KGEsZCxlKTtyZXR1cm4hMH1mdW5jdGlvbiBuZCgpe3JldHVybiB5YihBLmZldGNoKX1mdW5jdGlvbiBvZChhLGIpe3ZhciBjPWFbYl07YyYmdHlwZW9mIGMuYW5pbVZhbD09PSJzdHJpbmciJiYoYz1jLmFuaW1WYWwpO3JldHVybiBjfWZ1bmN0aW9uIHBkKCl7dmFyIGE9QS5wZXJmb3JtYW5jZTtpZihhJiZ5YihhLm5vdykpcmV0dXJuIGEubm93KCl9CmZ1bmN0aW9uIHFkKCl7dmFyIGEsYj1BLnBlcmZvcm1hbmNlO2lmKGImJmIuZ2V0RW50cmllc0J5VHlwZSl0cnl7dmFyIGM9Yi5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7YyYmYy5sZW5ndGg+MCYmKGE9Y1swXS50eXBlKX1jYXRjaChkKXtyZXR1cm4iZSJ9aWYoIWEpcmV0dXJuInUiO3N3aXRjaChhKXtjYXNlICJuYXZpZ2F0ZSI6cmV0dXJuIm4iO2Nhc2UgImJhY2tfZm9yd2FyZCI6cmV0dXJuImgiO2Nhc2UgInJlbG9hZCI6cmV0dXJuInIiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuInAiO2RlZmF1bHQ6cmV0dXJuIngifX1mdW5jdGlvbiByZCgpe3JldHVybiBBLnBlcmZvcm1hbmNlfHx2b2lkIDB9ZnVuY3Rpb24gc2QoKXt2YXIgYT1BLndlYlBpeGVsc01hbmFnZXI7cmV0dXJuIGE/YS5jcmVhdGVTaG9waWZ5RXh0ZW5kIT09dm9pZCAwOiExfQp2YXIgVmM9e0VyOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJbWFnZSgxLDEpO1RjKGUsZCx7fSk7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD1udWxsO2ImJmIoKX07ZS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5vbmVycm9yPW51bGw7YyYmYygpfTtlLnNyYz1hO3JldHVybiBlfSxCczpmdW5jdGlvbihhKXt2YXIgYj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXXx8Qi5ib2R5fHxCLmhlYWQ7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSx3dDppZH07ZnVuY3Rpb24gdGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB1ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPT09dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB2ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHdkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7cmV0dXJuIFN0cmluZyhjKS5pbmRleE9mKFN0cmluZyhkKSk+LTF9ZnVuY3Rpb24geGQoYSxiKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhKSksZD1TdHJpbmcodGhpcy5ldmFsdWF0ZShiKSk7cmV0dXJuIGMuc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT09ZH0KZnVuY3Rpb24geWQoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtzd2l0Y2goYyl7Y2FzZSAicGFnZUxvY2F0aW9uIjp2YXIgZT1BLmxvY2F0aW9uLmhyZWY7ZCBpbnN0YW5jZW9mIGtiJiZkLmdldCgic3RyaXBQcm90b2NvbCIpJiYoZT1lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpKTtyZXR1cm4gZX19Oy8qCiBqUXVlcnkgKGMpIDIwMDUsIDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4ganF1ZXJ5Lm9yZy9saWNlbnNlLgoqLwp2YXIgemQ9L1xbb2JqZWN0IChCb29sZWFufE51bWJlcnxTdHJpbmd8RnVuY3Rpb258QXJyYXl8RGF0ZXxSZWdFeHApXF0vLEFkPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIFN0cmluZyhhKTt2YXIgYj16ZC5leGVjKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChPYmplY3QoYSkpKTtyZXR1cm4gYj9iWzFdLnRvTG93ZXJDYXNlKCk6Im9iamVjdCJ9LEJkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoYSksYil9LENkPWZ1bmN0aW9uKGEpe2lmKCFhfHxBZChhKSE9Im9iamVjdCJ8fGEubm9kZVR5cGV8fGE9PWEud2luZG93KXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhQmQoYSwiY29uc3RydWN0b3IiKSYmIUJkKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9Zm9yKHZhciBiIGluIGEpO3JldHVybiBiPT09dm9pZCAwfHwKQmQoYSxiKX0sRWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwoQWQoYSk9PSJhcnJheSI/W106e30pLGQ7Zm9yKGQgaW4gYSlpZihCZChhLGQpKXt2YXIgZT1hW2RdO0FkKGUpPT0iYXJyYXkiPyhBZChjW2RdKSE9ImFycmF5IiYmKGNbZF09W10pLGNbZF09RWQoZSxjW2RdKSk6Q2QoZSk/KENkKGNbZF0pfHwoY1tkXT17fSksY1tkXT1FZChlLGNbZF0pKTpjW2RdPWV9cmV0dXJuIGN9O2Z1bmN0aW9uIEZkKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiZhPj0wJiZpc0Zpbml0ZShhKSYmYSUxPT09MHx8dHlwZW9mIGE9PT0ic3RyaW5nIiYmYVswXSE9PSItIiYmYT09PSIiK3BhcnNlSW50KGEpfTt2YXIgR2Q9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7dGhpcy5sYT1uZXcgVWE7dGhpcy52YWx1ZXM9W107dGhpcy5OYT0hMTtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoRmQoYik/dGhpcy52YWx1ZXNbTnVtYmVyKGIpXT1hW051bWJlcihiKV06dGhpcy5sYS5zZXQoYixhW2JdKSl9O2s9R2QucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oYSl7aWYoYSYmYS5pbmRleE9mKHRoaXMpPj0wKXJldHVybiIiO2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLnZhbHVlcy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnZhbHVlc1tjXTtkPT09bnVsbHx8ZD09PXZvaWQgMD9iLnB1c2goIiIpOmQgaW5zdGFuY2VvZiBHZD8oYT1hfHxbXSxhLnB1c2godGhpcyksYi5wdXNoKGQudG9TdHJpbmcoYSkpLGEucG9wKCkpOmIucHVzaChTdHJpbmcoZCkpfXJldHVybiBiLmpvaW4oIiwiKX07Cmsuc2V0PWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuTmEpaWYoYT09PSJsZW5ndGgiKXtpZighRmQoYikpdGhyb3cgY2IoRXJyb3IoIlJhbmdlRXJyb3I6IExlbmd0aCBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlci4iKSk7dGhpcy52YWx1ZXMubGVuZ3RoPU51bWJlcihiKX1lbHNlIEZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV09Yjp0aGlzLmxhLnNldChhLGIpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJsZW5ndGgiP3RoaXMubGVuZ3RoKCk6RmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLmxhLmdldChhKX07ay5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RofTtrLkZhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuRmEoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goU3RyaW5nKGIpKTtyZXR1cm4gYX07CmsuaGM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5oYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaCh0aGlzLnZhbHVlc1tiXSk7cmV0dXJuIGF9O2suZmM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5mYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChbU3RyaW5nKGIpLHRoaXMudmFsdWVzW2JdXSk7cmV0dXJuIGF9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe0ZkKGEpP2RlbGV0ZSB0aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wb3AoKX07ay5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5zaGlmdCgpfTsKay5zcGxpY2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyk7cmV0dXJuIGI9PT12b2lkIDAmJmMubGVuZ3RoPT09MD9uZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlKGEpKTpuZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlLmFwcGx5KHRoaXMudmFsdWVzLFthLGJ8fDBdLmNvbmNhdCh3KGMpKSkpfTtrLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMudW5zaGlmdC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gRmQoYSkmJnRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGEpfHx0aGlzLmxhLmhhcyhhKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITA7T2JqZWN0LmZyZWV6ZSh0aGlzLnZhbHVlcyl9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07CmZ1bmN0aW9uIEhkKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aCgpO2MrKylhLmhhcyhjKSYmKGJbY109YS5nZXQoYykpO3JldHVybiBifTt2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmZ1bmN0aW9uTmFtZT1hO3RoaXMuaWU9Yjt0aGlzLmxhPW5ldyBVYTt0aGlzLk5hPSExfTtrPUlkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0S2V5cz1mdW5jdGlvbigpe3JldHVybiBuZXcgR2QodGhpcy5GYSgpKX07ay5pbnZva2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWUuY2FsbC5hcHBseSh0aGlzLmllLFtuZXcgSmQodGhpcyxhKV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLmFwcGx5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaWUuYXBwbHkobmV3IEpkKHRoaXMsYSksYil9O2suTmM9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO3RyeXtyZXR1cm4gdGhpcy5pbnZva2UuYXBwbHkodGhpcyxbYV0uY29uY2F0KHcoYikpKX1jYXRjaChjKXt9fTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O3ZhciBLZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShLZCxJZCk7dmFyIExkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKExkLElkKTt2YXIgSmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmllPWE7dGhpcy5UPWJ9OwpKZC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5UO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2ZiKGIsYSk6YX07SmQucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZS5nZXROYW1lKCl9O0pkLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlQuamUoKX07dmFyIE1kPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IE1hcH07TWQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMubWFwLnNldChhLGIpfTtNZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5nZXQoYSl9O3ZhciBOZD1mdW5jdGlvbigpe3RoaXMua2V5cz1bXTt0aGlzLnZhbHVlcz1bXX07TmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMua2V5cy5wdXNoKGEpO3RoaXMudmFsdWVzLnB1c2goYil9O05kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoYj4tMSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19O2Z1bmN0aW9uIE9kKCl7dHJ5e3JldHVybiBNYXA/bmV3IE1kOm5ldyBOZH1jYXRjaChhKXtyZXR1cm4gbmV3IE5kfX07dmFyIFBkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQZClyZXR1cm4gYTt2YXIgYjthOmlmKGE9PXZvaWQgMHx8QXJyYXkuaXNBcnJheShhKXx8Q2QoYSkpYj0hMDtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgImZ1bmN0aW9uIjpiPSEwO2JyZWFrIGF9Yj0hMX1pZihiKXRocm93IEVycm9yKCJUeXBlIG9mIGdpdmVuIHZhbHVlIGhhcyBhbiBlcXVpdmFsZW50IFBpeGllIHR5cGUuIik7dGhpcy52YWx1ZT1hfTtQZC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07UGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX07dmFyIFNkPWZ1bmN0aW9uKGEpe3RoaXMucHJvbWlzZT1hO3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWE7dGhpcy5sYS5zZXQoInRoZW4iLFJkKHRoaXMpKTt0aGlzLmxhLnNldCgiY2F0Y2giLFJkKHRoaXMsITApKTt0aGlzLmxhLnNldCgiZmluYWxseSIsUmQodGhpcywhMSwhMCkpfTtrPVNkLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07CnZhciBSZD1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihkLGUpe2ImJihlPWQsZD12b2lkIDApO2MmJihlPWQpO2QgaW5zdGFuY2VvZiBLZHx8KGQ9dm9pZCAwKTtlIGluc3RhbmNlb2YgS2R8fChlPXZvaWQgMCk7dmFyIGY9dGhpcy5ULndiKCksZz1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e3JldHVybiBjPyhsLmludm9rZShmKSxhLnByb21pc2UpOmwuaW52b2tlKGYsbil9Y2F0Y2gocCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHAgaW5zdGFuY2VvZiBFcnJvcj9uZXcgUGQocCk6U3RyaW5nKHApKX19fSxoPWEucHJvbWlzZS50aGVuKGQmJmcoZCksZSYmZyhlKSk7cmV0dXJuIG5ldyBTZChoKX0pfTtTZC5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtTZC5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gVGQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbD1nLkZhKCksbj0wO248bC5sZW5ndGg7bisrKWhbbFtuXV09ZihnLmdldChsW25dKSl9LGY9ZnVuY3Rpb24oZyl7aWYoZz09PW51bGx8fGc9PT12b2lkIDApcmV0dXJuIGc7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihnIGluc3RhbmNlb2YgR2Qpe3ZhciBsPVtdO2Quc2V0KGcsbCk7Zm9yKHZhciBuPWcuRmEoKSxwPTA7cDxuLmxlbmd0aDtwKyspbFtuW3BdXT1mKGcuZ2V0KG5bcF0pKTtyZXR1cm4gbH1pZihnIGluc3RhbmNlb2YgU2QpcmV0dXJuIGcucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBUZCh1LGIsMSl9LGZ1bmN0aW9uKHUpe3JldHVybiBQcm9taXNlLnJlamVjdChUZCh1LGIsMSkpfSk7aWYoZyBpbnN0YW5jZW9mIGtiKXt2YXIgcT17fTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX1pZihnIGluc3RhbmNlb2YgS2Qpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PQpbXSx2PTA7djxhcmd1bWVudHMubGVuZ3RoO3YrKyl1W3ZdPVVkKGFyZ3VtZW50c1t2XSxiLGMpO3ZhciB4PW5ldyBoYihiP2IuamUoKTpuZXcgV2EpO2ImJngudWUoYi54YigpKTtyZXR1cm4gZihnLmFwcGx5KHgsdSkpfTtkLnNldChnLHIpO2UoZyxyKTtyZXR1cm4gcn12YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7Y2FzZSAzOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyBpbnN0YW5jZW9mIFBkJiZ0KXJldHVybiBnLmdldFZhbHVlKCk7c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAidW5kZWZpbmVkIjpyZXR1cm4gZztjYXNlICJvYmplY3QiOmlmKGc9PT0KbnVsbClyZXR1cm4gbnVsbH19O3JldHVybiBmKGEpfQpmdW5jdGlvbiBVZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShsKSYmaC5zZXQobCxmKGdbbF0pKX0sZj1mdW5jdGlvbihnKXt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKEFycmF5LmlzQXJyYXkoZyl8fEhiKGcpKXt2YXIgbD1uZXcgR2Q7ZC5zZXQoZyxsKTtmb3IodmFyIG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZsLnNldChuLGYoZ1tuXSkpO3JldHVybiBsfWlmKENkKGcpKXt2YXIgcD1uZXcga2I7ZC5zZXQoZyxwKTtlKGcscCk7cmV0dXJuIHB9aWYodHlwZW9mIGc9PT0iZnVuY3Rpb24iKXt2YXIgcT1uZXcgS2QoIiIsZnVuY3Rpb24oKXtmb3IodmFyIHU9T2EuYXBwbHkoMCxhcmd1bWVudHMpLHY9W10seD0wO3g8dS5sZW5ndGg7eCsrKXZbeF09VGQodGhpcy5ldmFsdWF0ZSh1W3hdKSxiLGMpO3JldHVybiBmKHRoaXMuVC5QaigpKGcsZyx2KSl9KTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX12YXIgcj10eXBlb2YgZztpZihnPT09bnVsbHx8cj09PSJzdHJpbmcifHxyPT09Im51bWJlciJ8fHI9PT0iYm9vbGVhbiIpcmV0dXJuIGc7dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGchPT12b2lkIDAmJnQpcmV0dXJuIG5ldyBQZChnKX07cmV0dXJuIGYoYSl9O3ZhciBWZD17c3VwcG9ydGVkTWV0aG9kczoiY29uY2F0IGV2ZXJ5IGZpbHRlciBmb3JFYWNoIGhhc093blByb3BlcnR5IGluZGV4T2Ygam9pbiBsYXN0SW5kZXhPZiBtYXAgcG9wIHB1c2ggcmVkdWNlIHJlZHVjZVJpZ2h0IHJldmVyc2Ugc2hpZnQgc2xpY2Ugc29tZSBzb3J0IHNwbGljZSB1bnNoaWZ0IHRvU3RyaW5nIi5zcGxpdCgiICIpLGNvbmNhdDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy5sZW5ndGgoKTtjKyspYi5wdXNoKHRoaXMuZ2V0KGMpKTtmb3IodmFyIGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKWlmKGFyZ3VtZW50c1tkXWluc3RhbmNlb2YgR2QpZm9yKHZhciBlPWFyZ3VtZW50c1tkXSxmPTA7ZjxlLmxlbmd0aCgpO2YrKyliLnB1c2goZS5nZXQoZikpO2Vsc2UgYi5wdXNoKGFyZ3VtZW50c1tkXSk7cmV0dXJuIG5ldyBHZChiKX0sZXZlcnk6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiYKZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmIWIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMTtyZXR1cm4hMH0sZmlsdGVyOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiZiLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykmJmQucHVzaCh0aGlzLmdldChlKSk7cmV0dXJuIG5ldyBHZChkKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspdGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKX0saGFzT3duUHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5oYXMoYil9LGluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1jPT09dm9pZCAwPzA6TnVtYmVyKGMpO2U8MCYmKGU9TWF0aC5tYXgoZCtlLDApKTtmb3IodmFyIGY9CmU7ZjxkO2YrKylpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxqb2luOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPHRoaXMubGVuZ3RoKCk7ZCsrKWMucHVzaCh0aGlzLmdldChkKSk7cmV0dXJuIGMuam9pbihiKX0sbGFzdEluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1kLTE7YyE9PXZvaWQgMCYmKGU9YzwwP2QrYzpNYXRoLm1pbihjLGUpKTtmb3IodmFyIGY9ZTtmPj0wO2YtLSlpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxtYXA6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJihkW2VdPWIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSk7cmV0dXJuIG5ldyBHZChkKX0scG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wKCl9LHB1c2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLAp3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfSxyZWR1Y2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPTA7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTtmb3IodmFyIGc9MDtnPGQ7ZysrKWlmKHRoaXMuaGFzKGcpKXtlPXRoaXMuZ2V0KGcpO2Y9ZysxO2JyZWFrfWlmKGc9PT1kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPGQ7aCsrKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj1kLTE7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpOwpmb3IodmFyIGc9MTtnPD1kO2crKylpZih0aGlzLmhhcyhkLWcpKXtlPXRoaXMuZ2V0KGQtZyk7Zj1kLShnKzEpO2JyZWFrfWlmKGc+ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPj0wO2gtLSl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPUhkKHRoaXMpLGI9YS5sZW5ndGgtMSxjPTA7Yj49MDtiLS0sYysrKWEuaGFzT3duUHJvcGVydHkoYik/dGhpcy5zZXQoYyxhW2JdKTp0aGlzLnJlbW92ZShjKTtyZXR1cm4gdGhpc30sc2hpZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGlmdCgpfSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKTtiPT09dm9pZCAwJiYoYj0wKTtiPWI8MD9NYXRoLm1heChkK2IsMCk6TWF0aC5taW4oYixkKTtjPWM9PT0Kdm9pZCAwP2Q6YzwwP01hdGgubWF4KGQrYywwKTpNYXRoLm1pbihjLGQpO2M9TWF0aC5tYXgoYixjKTtmb3IodmFyIGU9W10sZj1iO2Y8YztmKyspZS5wdXNoKHRoaXMuZ2V0KGYpKTtyZXR1cm4gbmV3IEdkKGUpfSxzb21lOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiEwO3JldHVybiExfSxzb3J0OmZ1bmN0aW9uKGEsYil7dmFyIGM9SGQodGhpcyk7Yj09PXZvaWQgMD9jLnNvcnQoKTpjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gTnVtYmVyKGIuaW52b2tlKGEsZSxmKSl9KTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljLmhhc093blByb3BlcnR5KGQpP3RoaXMuc2V0KGQsY1tkXSk6dGhpcy5yZW1vdmUoZCk7cmV0dXJuIHRoaXN9LHNwbGljZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuc3BsaWNlLmFwcGx5KHRoaXMsCltiLGNdLmNvbmNhdCh3KE9hLmFwcGx5KDMsYXJndW1lbnRzKSkpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1bnNoaWZ0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuc2hpZnQuYXBwbHkodGhpcyx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfX07dmFyIFdkPXtjaGFyQXQ6MSxjb25jYXQ6MSxpbmRleE9mOjEsbGFzdEluZGV4T2Y6MSxtYXRjaDoxLHJlcGxhY2U6MSxzZWFyY2g6MSxzbGljZToxLHNwbGl0OjEsc3Vic3RyaW5nOjEsdG9Mb3dlckNhc2U6MSx0b0xvY2FsZUxvd2VyQ2FzZToxLHRvU3RyaW5nOjEsdG9VcHBlckNhc2U6MSx0b0xvY2FsZVVwcGVyQ2FzZToxLHRyaW06MX0sWGQ9bmV3IFRhKCJicmVhayIpLFlkPW5ldyBUYSgiY29udGludWUiKTtmdW5jdGlvbiBaZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpK3RoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gYWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBBcHBseSBpbnN0cnVjdGlvbi4iKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCByZWFkIHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTt2YXIgZz10eXBlb2YgZD09PSJudW1iZXIiO2lmKHR5cGVvZiBkPT09ImJvb2xlYW4ifHxnKXtpZihlPT09InRvU3RyaW5nIil7aWYoZyYmZi5sZW5ndGgoKSl7dmFyIGg9VGQoZi5nZXQoMCkpO3RyeXtyZXR1cm4gZC50b1N0cmluZyhoKX1jYXRjaCh1KXt9fXJldHVybiBkLnRvU3RyaW5nKCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitkKyIuIitlKyIgaXMgbm90IGEgZnVuY3Rpb24uIikpO31pZih0eXBlb2YgZD09PQoic3RyaW5nIil7aWYoV2QuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBsPVRkKGYsdm9pZCAwLDEpO3JldHVybiBVZChkW2VdLmFwcGx5KGQsbCksdGhpcy5UKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZCBpbnN0YW5jZW9mIEdkKXtpZihkLmhhcyhlKSl7dmFyIG49ZC5nZXQoU3RyaW5nKGUpKTtpZihuIGluc3RhbmNlb2YgS2Qpe3ZhciBwPUhkKGYpO3JldHVybiBuLmFwcGx5KHRoaXMuVCxwKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoVmQuc3VwcG9ydGVkTWV0aG9kcy5pbmRleE9mKGUpPj0wKXt2YXIgcT1IZChmKTtyZXR1cm4gVmRbZV0uY2FsbC5hcHBseShWZFtlXSxbZCx0aGlzLlRdLmNvbmNhdCh3KHEpKSl9fWlmKGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2Qpe2lmKGQuaGFzKGUpKXt2YXIgcj1kLmdldChlKTsKaWYociBpbnN0YW5jZW9mIEtkKXt2YXIgdD1IZChmKTtyZXR1cm4gci5hcHBseSh0aGlzLlQsdCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGU9PT0idG9TdHJpbmciKXJldHVybiBkIGluc3RhbmNlb2YgS2Q/ZC5nZXROYW1lKCk6ZC50b1N0cmluZygpO2lmKGU9PT0iaGFzT3duUHJvcGVydHkiKXJldHVybiBkLmhhcyhmLmdldCgwKSl9aWYoZCBpbnN0YW5jZW9mIFBkJiZlPT09InRvU3RyaW5nIilyZXR1cm4gZC50b1N0cmluZygpO3Rocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IE9iamVjdCBoYXMgbm8gJyIrZSsiJyBwcm9wZXJ0eS4iKSk7fQpmdW5jdGlvbiBiZShhLGIpe2E9dGhpcy5ldmFsdWF0ZShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSBuYW1lIGdpdmVuIGZvciBhc3NpZ25tZW50LiIpO3ZhciBjPXRoaXMuVDtpZighYy5oYXMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXNzaWduIHRvIHVuZGVmaW5lZCB2YWx1ZSAiK2IpO3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7Yy5zZXQoYSxkKTtyZXR1cm4gZH1mdW5jdGlvbiBjZSgpe3ZhciBhPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxiPXRoaXMuVC53YigpLGM9ZWIoYixhKTtpZihjIGluc3RhbmNlb2YgVGEpcmV0dXJuIGN9ZnVuY3Rpb24gZGUoKXtyZXR1cm4gWGR9ZnVuY3Rpb24gZWUoYSl7Zm9yKHZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD10aGlzLmV2YWx1YXRlKGJbY10pO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH19CmZ1bmN0aW9uIGZlKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9YXJndW1lbnRzW2JdO2lmKHR5cGVvZiBjPT09InN0cmluZyIpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2EuUWgoYyxkKX19fWZ1bmN0aW9uIGdlKCl7cmV0dXJuIFlkfWZ1bmN0aW9uIGhlKGEsYil7cmV0dXJuIG5ldyBUYShhLHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGllKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7ZD1uZXcgR2Q7Zm9yKHZhciBlPXRoaXMuZXZhbHVhdGUoYiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWQucHVzaChlW2ZdKTt2YXIgZz1bNTEsYSxkXS5jb25jYXQodyhjKSk7dGhpcy5ULmFkZChhLHRoaXMuZXZhbHVhdGUoZykpfWZ1bmN0aW9uIGplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkvdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24ga2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKSxlPWMgaW5zdGFuY2VvZiBQZCxmPWQgaW5zdGFuY2VvZiBQZDtyZXR1cm4gZXx8Zj9lJiZmP2MuZ2V0VmFsdWUoKT09PWQuZ2V0VmFsdWUoKTohMTpjPT1kfWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBhLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWE9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8YigpO2UrKyl7dmFyIGY9YShjKGUpKSxnPWViKGYsZCk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfX19CmZ1bmN0aW9uIG5lKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihmKXtyZXR1cm4gZn0sYyk7aWYoYiBpbnN0YW5jZW9mIGtifHxiIGluc3RhbmNlb2YgU2R8fGIgaW5zdGFuY2VvZiBHZHx8YiBpbnN0YW5jZW9mIEtkKXt2YXIgZD1iLkZhKCksZT1kLmxlbmd0aDtyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBlfSxmdW5jdGlvbihmKXtyZXR1cm4gZFtmXX0sYyl9fWZ1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHBlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcmUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gdGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiB1ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX0KZnVuY3Rpb24gc2UoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdfSxjKTtpZihiIGluc3RhbmNlb2YgR2QpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGgoKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGIuZ2V0KGQpfSxjKTt0aHJvdyBjYihFcnJvcigiVGhlIHZhbHVlIGlzIG5vdCBpdGVyYWJsZS4iKSk7fQpmdW5jdGlvbiB2ZShhLGIsYyxkKXtmdW5jdGlvbiBlKHEscil7Zm9yKHZhciB0PTA7dDxmLmxlbmd0aCgpO3QrKyl7dmFyIHU9Zi5nZXQodCk7ci5hZGQodSxxLmdldCh1KSl9fXZhciBmPXRoaXMuZXZhbHVhdGUoYSk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJUeXBlRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEZvckxldCBpbnN0cnVjdGlvbi4iKTt2YXIgZz10aGlzLlQsaD10aGlzLmV2YWx1YXRlKGQpLGw9Zy53YigpO2ZvcihlKGcsbCk7ZmIobCxiKTspe3ZhciBuPWViKGwsaCk7aWYobiBpbnN0YW5jZW9mIFRhKXtpZihuLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKG4udHlwZT09PSJyZXR1cm4iKXJldHVybiBufXZhciBwPWcud2IoKTtlKGwscCk7ZmIocCxjKTtsPXB9fQpmdW5jdGlvbiB3ZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPXRoaXMuVCxlPXRoaXMuZXZhbHVhdGUoYik7aWYoIShlIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogbm9uLUxpc3QgdmFsdWUgZ2l2ZW4gZm9yIEZuIGFyZ3VtZW50IG5hbWVzLiIpO3JldHVybiBuZXcgS2QoYSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPWQud2IoKTtnLnhiKCk9PT12b2lkIDAmJmcudWUodGhpcy5ULnhiKCkpO2Zvcih2YXIgaD1bXSxsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBuPXRoaXMuZXZhbHVhdGUoZltsXSk7aFtsXT1ufWZvcih2YXIgcD1lLmdldCgibGVuZ3RoIikscT0wO3E8cDtxKyspcTxoLmxlbmd0aD9nLmFkZChlLmdldChxKSxoW3FdKTpnLmFkZChlLmdldChxKSx2b2lkIDApO2cuYWRkKCJhcmd1bWVudHMiLG5ldyBHZChoKSk7dmFyIHI9ZWIoZyxjKTtpZihyIGluc3RhbmNlb2YgVGEpcmV0dXJuIHIudHlwZT09PQoicmV0dXJuIj9yLmRhdGE6cn19KCkpfWZ1bmN0aW9uIHhlKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz10aGlzLlQ7aWYoeWUmJiFjLmhhcyhiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYisiIGlzIG5vdCBkZWZpbmVkLiIpO3JldHVybiBjLmdldChiKX0KZnVuY3Rpb24gemUoYSxiKXt2YXIgYyxkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgIitkKyIgKHJlYWRpbmcgJyIrZSsiJykiKSk7aWYoZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIEtkKWM9ZC5nZXQoZSk7ZWxzZSBpZih0eXBlb2YgZD09PSJzdHJpbmciKWU9PT0ibGVuZ3RoIj9jPWQubGVuZ3RoOkZkKGUpJiYoYz1kW2VdKTtlbHNlIGlmKGQgaW5zdGFuY2VvZiBQZClyZXR1cm47cmV0dXJuIGN9ZnVuY3Rpb24gQWUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT50aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEJlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+PXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIENlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7YyBpbnN0YW5jZW9mIFBkJiYoYz1jLmdldFZhbHVlKCkpO2QgaW5zdGFuY2VvZiBQZCYmKGQ9ZC5nZXRWYWx1ZSgpKTtyZXR1cm4gYz09PWR9ZnVuY3Rpb24gRGUoYSxiKXtyZXR1cm4hQ2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gRWUoYSxiLGMpe3ZhciBkPVtdO3RoaXMuZXZhbHVhdGUoYSk/ZD10aGlzLmV2YWx1YXRlKGIpOmMmJihkPXRoaXMuZXZhbHVhdGUoYykpO3ZhciBlPWViKHRoaXMuVCxkKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGV9dmFyIHllPSExOwpmdW5jdGlvbiBGZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTw9dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBIZSgpe2Zvcih2YXIgYT1uZXcgR2QsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTthLnB1c2goYyl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoKXtmb3IodmFyIGE9bmV3IGtiLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pKSxkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2Euc2V0KGMsZCl9cmV0dXJuIGF9ZnVuY3Rpb24gSmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSV0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBLZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpKnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gTGUoYSl7cmV0dXJuLXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTmUoYSxiKXtyZXR1cm4ha2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gT2UoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKTt0aGlzLmV2YWx1YXRlKGIpO3JldHVybiBjfWZ1bmN0aW9uIFJlKGEpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIE9hLmFwcGx5KDAsYXJndW1lbnRzKX1mdW5jdGlvbiBUZShhKXtyZXR1cm4gbmV3IFRhKCJyZXR1cm4iLHRoaXMuZXZhbHVhdGUoYSkpfQpmdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHNldCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7KGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2Yga2IpJiZkLnNldChTdHJpbmcoZSksZik7cmV0dXJuIGZ9ZnVuY3Rpb24gVmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigiRXJyb3I6IE1hbGZvcm1lZCBzd2l0Y2ggaW5zdHJ1Y3Rpb24uIik7Zm9yKHZhciBnLGg9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKGh8fGQ9PT10aGlzLmV2YWx1YXRlKGVbbF0pKWlmKGc9dGhpcy5ldmFsdWF0ZShmW2xdKSxnIGluc3RhbmNlb2YgVGEpe3ZhciBuPWcudHlwZTtpZihuPT09ImJyZWFrIilyZXR1cm47aWYobj09PSJyZXR1cm4ifHxuPT09ImNvbnRpbnVlIilyZXR1cm4gZ31lbHNlIGg9ITA7aWYoZi5sZW5ndGg9PT1lLmxlbmd0aCsxJiYoZz10aGlzLmV2YWx1YXRlKGZbZi5sZW5ndGgtMV0pLGcgaW5zdGFuY2VvZiBUYSYmKGcudHlwZT09PSJyZXR1cm4ifHxnLnR5cGU9PT0iY29udGludWUiKSkpcmV0dXJuIGd9CmZ1bmN0aW9uIFhlKGEsYixjKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT90aGlzLmV2YWx1YXRlKGIpOnRoaXMuZXZhbHVhdGUoYyl9ZnVuY3Rpb24gWWUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKTtyZXR1cm4gYiBpbnN0YW5jZW9mIEtkPyJmdW5jdGlvbiI6dHlwZW9mIGJ9ZnVuY3Rpb24gWmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz1hcmd1bWVudHNbYl07dHlwZW9mIGMhPT0ic3RyaW5nInx8YS5hZGQoYyx2b2lkIDApfX0KZnVuY3Rpb24gJGUoYSxiLGMsZCl7dmFyIGU9dGhpcy5ldmFsdWF0ZShkKTtpZih0aGlzLmV2YWx1YXRlKGMpKXt2YXIgZj1lYih0aGlzLlQsZSk7aWYoZiBpbnN0YW5jZW9mIFRhKXtpZihmLnR5cGU9PT0iYnJlYWsiKXJldHVybjtpZihmLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZn19Zm9yKDt0aGlzLmV2YWx1YXRlKGEpOyl7dmFyIGc9ZWIodGhpcy5ULGUpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ310aGlzLmV2YWx1YXRlKGIpfX1mdW5jdGlvbiBhZihhKXtyZXR1cm5+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfWZ1bmN0aW9uIGJmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKTw8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGNmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfQpmdW5jdGlvbiBkZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZWYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpJk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBmZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSleTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGdmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKXxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaGYoKXt9CmZ1bmN0aW9uIGtmKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9Y2F0Y2goaCl7aWYoIShoIGluc3RhbmNlb2YgYmImJmguU24pKXRocm93IGg7dmFyIGU9dGhpcy5ULndiKCk7YSE9PSIiJiYoaCBpbnN0YW5jZW9mIGJiJiYoaD1oLnZvKSxlLmFkZChhLG5ldyBQZChoKSkpO3ZhciBmPXRoaXMuZXZhbHVhdGUoYyksZz1lYihlLGYpO2lmKGcgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZ319ZnVuY3Rpb24gbGYoYSxiKXt2YXIgYyxkO3RyeXtkPXRoaXMuZXZhbHVhdGUoYSl9Y2F0Y2goZil7aWYoIShmIGluc3RhbmNlb2YgYmImJmYuU24pKXRocm93IGY7Yz1mfXZhciBlPXRoaXMuZXZhbHVhdGUoYik7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlO2lmKGMpdGhyb3cgYztpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9O3ZhciBuZj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgZ2I7bWYodGhpcyl9O25mLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkgucmsoYSl9O3ZhciBtZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPW5ldyBMZChTdHJpbmcoYyksZCk7ZS5aYSgpO3ZhciBmPVN0cmluZyhjKTthLkguSC5zZXQoZixlKTtkYi5zZXQoZixlKX07YigibWFwIixJZSk7YigiYW5kIix0ZCk7YigiY29udGFpbnMiLHdkKTtiKCJlcXVhbHMiLHVkKTtiKCJvciIsdmQpO2IoInN0YXJ0c1dpdGgiLHhkKTtiKCJ2YXJpYWJsZSIseWQpfTtuZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTt2YXIgcGY9ZnVuY3Rpb24oKXt0aGlzLks9ITE7dGhpcy5IPW5ldyBnYjtvZih0aGlzKTt0aGlzLks9ITB9O3BmLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiBxZih0aGlzLkgucmsoYSkpfTt2YXIgcmY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBxZihhLkguSnEoYixjKSl9O3BmLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTsKdmFyIG9mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9U3RyaW5nKGMpLGY9bmV3IExkKGUsZCk7Zi5aYSgpO2EuSC5ILnNldChlLGYpO2RiLnNldChlLGYpfTtiKDAsWmQpO2IoMSwkZCk7YigyLGFlKTtiKDMsYmUpO2IoNTYsZWYpO2IoNTcsYmYpO2IoNTgsYWYpO2IoNTksZ2YpO2IoNjAsY2YpO2IoNjEsZGYpO2IoNjIsZmYpO2IoNTMsY2UpO2IoNCxkZSk7Yig1LGVlKTtiKDY4LGtmKTtiKDUyLGZlKTtiKDYsZ2UpO2IoNDksaGUpO2IoNyxIZSk7Yig4LEllKTtiKDksZWUpO2IoNTAsaWUpO2IoMTAsamUpO2IoMTIsa2UpO2IoMTMsbGUpO2IoNjcsbGYpO2IoNTEsd2UpO2IoNDcsb2UpO2IoNTQscGUpO2IoNTUscWUpO2IoNjMsdmUpO2IoNjQscmUpO2IoNjUsdGUpO2IoNjYsdWUpO2IoMTUseGUpO2IoMTYsemUpO2IoMTcsemUpO2IoMTgsQWUpO2IoMTksQmUpO2IoMjAsQ2UpO2IoMjEsRGUpO2IoMjIsRWUpO2IoMjMsRmUpO2IoMjQsR2UpO2IoMjUsSmUpO2IoMjYsCktlKTtiKDI3LExlKTtiKDI4LE1lKTtiKDI5LE5lKTtiKDQ1LE9lKTtiKDMwLFBlKTtiKDMyLFFlKTtiKDMzLFFlKTtiKDM0LFJlKTtiKDM1LFJlKTtiKDQ2LFNlKTtiKDM2LFRlKTtiKDQzLFVlKTtiKDM3LFZlKTtiKDM4LFdlKTtiKDM5LFhlKTtiKDQwLFllKTtiKDQ0LGhmKTtiKDQxLFplKTtiKDQyLCRlKX07cGYucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5qZSgpfTtwZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtwZi5wcm90b3R5cGUuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTsKZnVuY3Rpb24gcWYoYSl7aWYoYSBpbnN0YW5jZW9mIFRhfHxhIGluc3RhbmNlb2YgS2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBQZHx8YT09PW51bGx8fGE9PT12b2lkIDB8fHR5cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im51bWJlciJ8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhfTt2YXIgc2Y9ZnVuY3Rpb24oYSl7dGhpcy5tZXNzYWdlPWF9O2Z1bmN0aW9uIHRmKGEpe2EucXY9ITA7cmV0dXJuIGF9O3ZhciB1Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLHZmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksd2Y9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7ZnVuY3Rpb24geGYoYSl7dmFyIGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2FdO3JldHVybiBiPT09dm9pZCAwP25ldyBzZigiVmFsdWUgIithKyIgY2FuIG5vdCBiZSBlbmNvZGVkIGluIHdlYi1zYWZlIGJhc2U2NCBkaWN0aW9uYXJ5LiIpOmJ9O2Z1bmN0aW9uIHlmKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIjEiO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIjAiO2RlZmF1bHQ6cmV0dXJuIi0ifX07dmFyIHpmPS9eWzEtOWEtekEtWl8tXVsxLTlhLWNdWzEtOWEtdl1cZCQvO2Z1bmN0aW9uIEFmKGEsYil7Zm9yKHZhciBjPSIiLGQ9ITA7YT43Oyl7dmFyIGU9YSYzMTthPj49NTtkP2Q9ITE6ZXw9MzI7Yz0iIit4ZihlKStjfWE8PD0yO2R8fChhfD0zMik7cmV0dXJuIGM9IiIreGYoYXxiKStjfWZ1bmN0aW9uIEJmKGEsYil7cmV0dXJuIGI9PT12b2lkIDB8fGI9PT0wPyIiOiIiK0FmKGEsMSkreGYoYil9CmZ1bmN0aW9uIENmKGEsYil7dmFyIGM7dmFyIGQ9YS5oaSxlPWEuYms7ZD09PXZvaWQgMD9jPSIiOihlfHwoZT0wKSxjPSIiK0FmKDEsMSkreGYoZDw8MnxlKSk7dmFyIGY9IjQiK2MrQmYoMixhLnFyKSxnLGg9YS5JbztnPWgmJnpmLnRlc3QoaCk/IiIrQWYoMywyKStoOiIiO3ZhciBsO3ZhciBuPWEuY3RpZDtpZihuJiZiKXt2YXIgcD1BZig1LDMpLHE9bi5zcGxpdCgiLSIpLHI9cVswXS50b1VwcGVyQ2FzZSgpO2lmKHIhPT0iR1RNIiYmciE9PSJPUFQiKWw9IiI7ZWxzZXt2YXIgdD1xWzFdO2w9IiIrcCt4ZigxK3QubGVuZ3RoKSsoYS5Mc3x8MCkrdH19ZWxzZSBsPSIiO3ZhciB1PWEuY2Fub25pY2FsSWQsdj1hLm1jLHg9YS56dix5PWYrZytCZig0LGEuRG8pK2wrQmYoNixhLkR0KSsodT8iIitBZig3LDMpK3hmKHUubGVuZ3RoKSt1OiIiKSsodj8iIitBZig4LDMpK3hmKHYubGVuZ3RoKSt2OiIiKSsoeD8iIitBZig5LDMpK3hmKHgubGVuZ3RoKSt4OiIiKSx6O3ZhciBDPWEuenI7Qz0KQz09PXZvaWQgMD97fTpDO2Zvcih2YXIgRD1bXSxJPW0oT2JqZWN0LmtleXMoQykpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXt2YXIgTj1HLnZhbHVlO0RbTnVtYmVyKE4pXT1DW05dfWlmKEQubGVuZ3RoKXt2YXIgUz1BZigxMCwzKSxXO2lmKEQubGVuZ3RoPT09MClXPXhmKDApO2Vsc2V7Zm9yKHZhciBlYT1bXSxqYT0wLGZhPSExLHNhPTA7c2E8RC5sZW5ndGg7c2ErKyl7ZmE9ITA7dmFyIGRhPXNhJTY7RFtzYV0mJihqYXw9MTw8ZGEpO2RhPT09NSYmKGVhLnB1c2goeGYoamEpKSxqYT0wLGZhPSExKX1mYSYmZWEucHVzaCh4ZihqYSkpO1c9ZWEuam9pbigiIil9dmFyIG1hPVc7ej0iIitTK3hmKG1hLmxlbmd0aCkrbWF9ZWxzZSB6PSIiO3ZhciBQYT1hLlVzLEZhPWEubnQ7cmV0dXJuIHkreisoUGE/IiIrQWYoMTEsMykreGYoUGEubGVuZ3RoKStQYToiIikrKEZhPyIiK0FmKDEzLDMpK3hmKEZhLmxlbmd0aCkrRmE6IiIpK0JmKDE0LGEuRXQpK0JmKDE1LGEucnYpK0JmKDE2LAphLkF2KX07ZnVuY3Rpb24gRGYoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07ZnVuY3Rpb24gRWYoYSxiKXtmb3IodmFyIGM9cWIoYiksZD1uZXcgVWludDhBcnJheShjLmxlbmd0aCksZT0wO2U8Yy5sZW5ndGg7ZSsrKWRbZV09Yy5jaGFyQ29kZUF0KGUpO2lmKGQubGVuZ3RoIT09MzIpdGhyb3cgRXJyb3IoIktleSBpcyBub3QgMzIgYnl0ZXMuIik7cmV0dXJuIEZmKGEsZCl9ZnVuY3Rpb24gRmYoYSxiKXtpZihhPT09IiIpcmV0dXJuIiI7dmFyIGM9WmIoYSksZD1iLnNsaWNlKC0yKSxlPVtdLmNvbmNhdCh3KGQpLHcoYykpLm1hcChmdW5jdGlvbihnLGgpe3JldHVybiBnXmJbaCViLmxlbmd0aF19KSxmPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGUpLHcoZCkpKTtyZXR1cm4gcGIoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhmKSkpLnJlcGxhY2UoL1wuKyQvLCIiKX07dmFyIEdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtyZXR1cm57dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYn19fXJldHVybntjcDphKCJjb25zZW50IiksWms6YSgiY29udmVydF9jYXNlX3RvIiksYWw6YSgiY29udmVydF9mYWxzZV90byIpLGJsOmEoImNvbnZlcnRfbnVsbF90byIpLGVwOmEoImNvbnZlcnRfdG9fYm9vbGVhbiIpLGFoOmEoImNvbnZlcnRfdG9fbnVtYmVyIiksZmw6YSgiY29udmVydF90cnVlX3RvIiksaWw6YSgiY29udmVydF91bmRlZmluZWRfdG8iKSxZdDphKCJkZWJ1Z19tb2RlX21ldGFkYXRhIiksWWI6YSgiZnVuY3Rpb24iKSxSbTphKCJpbnN0YW5jZV9uYW1lIiksTnE6YSgibGl2ZV9vbmx5IiksT3E6YSgibWFsd2FyZV9kaXNhYmxlZCIpLE1FVEFEQVRBOmEoIm1ldGFkYXRhIiksUnE6YSgib3JpZ2luYWxfYWN0aXZpdHlfaWQiKSxUdTphKCJvcmlnaW5hbF92ZW5kb3JfdGVtcGxhdGVfaWQiKSxTdTphKCJvbmNlX29uX2xvYWQiKSxRcTphKCJvbmNlX3Blcl9ldmVudCIpLAprbjphKCJvbmNlX3Blcl9sb2FkIiksVnU6YSgicHJpb3JpdHlfb3ZlcnJpZGUiKSxZdTphKCJyZXNwZWN0ZWRfY29uc2VudF90eXBlcyIpLHRuOmEoInNldHVwX3RhZ3MiKSx5ajphKCJ0YWdfaWQiKSxEbjphKCJ0ZWFyZG93bl90YWdzIikscGw6YSgiZGlzYWJsZWRfaW5fZ29vZ2xlX21vZGUiKSxGcTphKCJnZW5lcmF0ZWRfdGFnZ2luZ19tZXRhZGF0YSIpfX0oKTtmdW5jdGlvbiBIZihhLGIpe3ZhciBjPXt9O2NbR2YuWWJdPSJfXyIrYTtmb3IodmFyIGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1sidnRwXyIrZF09YltkXSk7cmV0dXJuIGN9O2Z1bmN0aW9uIElmKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/ISFkYXRhLmJsb2JbYV06Yn1mdW5jdGlvbiBFKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhkYXRhLmJsb2JbYV0pOmJ9ZnVuY3Rpb24gSmYoYSl7dmFyIGIsYztyZXR1cm4oKGI9ZGF0YSk9PW51bGw/MDooYz1iLmJsb2IpPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGRhdGEuYmxvYlthXSk6MH1mdW5jdGlvbiBLZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/W106Yjt2YXIgYyxkLGU9KGM9ZGF0YSk9PW51bGw/dm9pZCAwOihkPWMuYmxvYik9PW51bGw/dm9pZCAwOmRbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpifQpmdW5jdGlvbiBMZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGNbYV0pOmJ9ZnVuY3Rpb24gTmYoYSxiKXt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGNbYV0pOmJ9ZnVuY3Rpb24gTWYoYSl7dmFyIGIsYztyZXR1cm4oYj1kYXRhKT09bnVsbD92b2lkIDA6KGM9Yi5ibG9iKT09bnVsbD92b2lkIDA6Y1thXX07dmFyIE9mPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxjKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnBlcm1pc3Npb25JZD1hO3RoaXMucGFyYW1ldGVycz1iO3RoaXMubmFtZT0iUGVybWlzc2lvbkVycm9yIn07d2EoT2YsRXJyb3IpO09mLnByb3RvdHlwZS5nZXRNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07ZnVuY3Rpb24gUGYoYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY29udGV4dCIse3ZhbHVlOntsaW5lOmJbMF19fSk7Zm9yKHZhciBjPTE7YzxhLmxlbmd0aDtjKyspUGYoYVtjXSxiW2NdKX19O2Z1bmN0aW9uIFFmKCl7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM7dmFyIGQ9UmY7YSBpbnN0YW5jZW9mIGJiPyhhLkg9ZCxjPWEpOmM9bmV3IGJiKGEsZCk7dmFyIGU9YztiJiZlLksucHVzaChiKTt0aHJvdyBlO319ZnVuY3Rpb24gUmYoYSl7aWYoIWEubGVuZ3RoKXJldHVybiBhO2EucHVzaCh7aWQ6Im1haW4iLGxpbmU6MH0pO2Zvcih2YXIgYj1hLmxlbmd0aC0xO2I+MDtiLS0pQWIoYVtiXS5pZCkmJmEuc3BsaWNlKGIrKywxKTtmb3IodmFyIGM9YS5sZW5ndGgtMTtjPjA7Yy0tKWFbY10ubGluZT1hW2MtMV0ubGluZTthLnNwbGljZSgwLDEpO3JldHVybiBhfTt2YXIgU2Y9UmVnRXhwKCJbXjAtOVxcListXSIsImciKSxUZj1SZWdFeHAoIlteMC05XFwsKy1dIiwiZyIpLFVmPVJlZ0V4cCgiW14wLTkrLV0iLCJnIik7CmZ1bmN0aW9uIFZmKGEsYil7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTt2YXIgYz1TdHJpbmcoYSksZDtpZihiPT09IkFVVE9NQVRJQyIpe3ZhciBlPShjLm1hdGNoKC9cLi9nKXx8W10pLmxlbmd0aCxmPShjLm1hdGNoKC8sL2cpfHxbXSkubGVuZ3RoLGc9Ik5PTkUiO2lmKGU+MCYmZj4wKXt2YXIgaD1jLmxhc3RJbmRleE9mKCIuIik+Yy5sYXN0SW5kZXhPZigiLCIpO2gmJmU9PT0xP2c9IlBFUklPRCI6aHx8ZiE9PTF8fChnPSJDT01NQSIpfWVsc2UgZT09PTE/Zz0oYy5zcGxpdCgiLiIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IlBFUklPRCI6Ik5PTkUiOmY9PT0xJiYoZz0oYy5zcGxpdCgiLCIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IkNPTU1BIjoiTk9ORSIpO2Q9Z31lbHNlIGQ9Yj09PSJDT01NQSI/IkNPTU1BIjoiUEVSSU9EIjt2YXIgbCxuO2Q9PT0iUEVSSU9EIj8obD0iLiIsbj1TZik6ZD09PSJDT01NQSI/KGw9IiwiLApuPVRmKToobD0iIixuPVVmKTt2YXIgcD1jLnJlcGxhY2UobiwiIik7aWYobCE9PSIiJiZwLnNwbGl0KGwpLmxlbmd0aD4yKXJldHVybiBhO3ZhciBxPXAucmVwbGFjZSgvLC9nLCIuIik7aWYocT09PSIiKXJldHVybiBhO3ZhciByPU51bWJlcihxKTtyZXR1cm4gaXNOYU4ocik/YTpyfTt2YXIgV2Y9W10sWGY9e307ZnVuY3Rpb24gWWYoYSl7cmV0dXJuIFdmW2FdPT09dm9pZCAwPyExOldmW2FdfTt2YXIgWmY9ZnVuY3Rpb24oKXt0aGlzLkg9e319LCRmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7YS5IW2JdLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShudWxsLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9KX07ZnVuY3Rpb24gYWcoYSxiLGMsZCl7aWYoYSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9dm9pZCAwLGc9IkEgcG9saWN5IGZ1bmN0aW9uIGRlbmllZCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0Ijt0cnl7Zj1hW2VdKGIsYyxkKSxnKz0iLiJ9Y2F0Y2goaCl7Zz10eXBlb2YgaD09PSJzdHJpbmciP2crKCI6ICIraCk6aCBpbnN0YW5jZW9mIEVycm9yP2crKCI6ICIraC5tZXNzYWdlKTpnKyIuIn1pZighZil0aHJvdyBuZXcgT2YoYyxkLGcpO319CmZ1bmN0aW9uIGJnKGEsYil7dmFyIGM9Y2coZGcuSCxiLGZ1bmN0aW9uKCl7cmV0dXJue319KTt0cnl7cmV0dXJuIGMoYSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fWZ1bmN0aW9uIGNnKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGU9YS5IW2RdLGY9YS5ILmFsbDtpZihlfHxmKXt2YXIgZz1jLmFwcGx5KHZvaWQgMCxbZF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpO2FnKGUsYixkLGcpO2FnKGYsYixkLGcpfX19fTt2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD1uZXcgWmY7dmFyIGU9e30sZj17fSxnPWNnKHRoaXMuSCxhLGZ1bmN0aW9uKGgpe3JldHVybiBoJiZlW2hdP2VbaF0uYXBwbHkodm9pZCAwLFtoXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk6e319KTtHYihiLGZ1bmN0aW9uKGgsbCl7ZnVuY3Rpb24gbihxKXt2YXIgcj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoIXBbcV0pdGhyb3cgZWcocSx7fSwiVGhlIHJlcXVlc3RlZCBhZGRpdGlvbmFsIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7Zy5hcHBseShudWxsLFtxXS5jb25jYXQodyhyKSkpfXZhciBwPXt9O0diKGwsZnVuY3Rpb24ocSxyKXt2YXIgdD1mZyhxLHIsYyk7cFtxXT10LmFzc2VydDtlW3FdfHwoZVtxXT10LmFhKTt0Lk9uJiYhZltxXSYmKGZbcV09dC5Pbil9KTtkLktbaF09ZnVuY3Rpb24ocSxyKXt2YXIgdD1wW3FdO2lmKCF0KXRocm93IGVnKHEsCnt9LCJUaGUgcmVxdWVzdGVkIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3QuYXBwbHkodm9pZCAwLHUpO2cuYXBwbHkodm9pZCAwLHUpO3ZhciB2PWZbcV07diYmdi5hcHBseShudWxsLFtuXS5jb25jYXQodyh1LnNsaWNlKDEpKSkpfX0pfSxoZz1mdW5jdGlvbihhKXtyZXR1cm4gZGcuS1thXXx8ZnVuY3Rpb24oKXt9fTsKZnVuY3Rpb24gZmcoYSxiLGMpe3RyeXt2YXIgZD1jWyJfXyIrYV07aWYoIWQpdGhyb3cgRXJyb3IoIk5vIGZ1bmN0aW9uIGZvdW5kIGZvciBwZXJtaXNzaW9uOiAiK2ErIi4iKTt2YXIgZT1IZihhLGIpO2UudnRwX3Blcm1pc3Npb25OYW1lPWE7ZS52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yPWVnO2RlbGV0ZSBlW0dmLlliXTtyZXR1cm4gZChlKX1jYXRjaChmKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGcpe3Rocm93IG5ldyBPZihnLHt9LCJQZXJtaXNzaW9uICIrZysiIGlzIHVua25vd24uIik7fSxhYTpmdW5jdGlvbigpe3Rocm93IG5ldyBPZihhLHt9LCJQZXJtaXNzaW9uICIrYSsiIGlzIHVua25vd24uIik7fX19fWZ1bmN0aW9uIGVnKGEsYixjKXtyZXR1cm4gbmV3IE9mKGEsYixjKX07dmFyIGlnPUUoNSksamc9RSgyMCksa2c9RSgxKSxsZz0hMTt2YXIgbWc9e307bWcuUG89SWYoMjkpO21nLktyPUlmKDI4KTtmdW5jdGlvbiBuZyhhKXt2YXIgYj0xLGMsZCxlO2lmKGEpZm9yKGI9MCxkPWEubGVuZ3RoLTE7ZD49MDtkLS0pZT1hLmNoYXJDb2RlQXQoZCksYj0oYjw8NiYyNjg0MzU0NTUpK2UrKGU8PDE0KSxjPWImMjY2MzM4MzA0LGI9YyE9PTA/Yl5jPj4yMTpiO3JldHVybiBifTt2YXIgb2c9ZnVuY3Rpb24oYSl7dGhpcy5jYWNoZT1hfTtvZy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPW5nKGEpLGM9dGhpcy5jYWNoZS5nZXQoYik7aWYoIWMpcmV0dXJue3Byb21pc2U6dm9pZCAwLEtqOjB9O2lmKERhdGUubm93KCk+PWMudGltZXN0YW1wKzlFNSlyZXR1cm4gdGhpcy5jYWNoZS5kZWxldGUoYikse3Byb21pc2U6dm9pZCAwLEtqOjN9O3ZhciBkPWMucmVzb2x2ZWRWYWx1ZT8yOjE7cmV0dXJue3Byb21pc2U6Yy5yZXNvbHZlZFZhbHVlP1Byb21pc2UucmVzb2x2ZShjLnJlc29sdmVkVmFsdWUpOmMucHJvbWlzZSxLajpkfX07b2cucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXtwcm9taXNlOmIscmVzb2x2ZWRWYWx1ZTp2b2lkIDAsdGltZXN0YW1wOkRhdGUubm93KCl9O3RoaXMuY2FjaGUuc2V0KG5nKGEpLGMpO2IudGhlbihmdW5jdGlvbihkKXtjLnJlc29sdmVkVmFsdWU9ZH0pfTtmdW5jdGlvbiBwZyhhKXtzd2l0Y2goYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTpyZXR1cm4iZTQiO2Nhc2UgNjpyZXR1cm4iZTUiO2Nhc2UgMTQ6cmV0dXJuImU2IjtkZWZhdWx0OnJldHVybiJlNyJ9fTt2YXIgRj17RDp7WGE6ImFkX3BlcnNvbmFsaXphdGlvbiIsa2E6ImFkX3N0b3JhZ2UiLG1hOiJhZF91c2VyX2RhdGEiLHJhOiJhbmFseXRpY3Nfc3RvcmFnZSIsbmM6InJlZ2lvbiIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsWWc6IndhaXRfZm9yX3VwZGF0ZSIsZWg6ImVuZHBvaW50X3R5cGUiLHFwOiJhcHBfcmVtb3ZlIixycDoiYXBwX3N0b3JlX3JlZnVuZCIsdHA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIix1cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Iix2cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyIsd3A6ImNvbnNlbnRfdXBkYXRlIix4cDoiY29udmVyc2lvbiIsdmw6ImFkZF9wYXltZW50X2luZm8iLHdsOiJhZGRfc2hpcHBpbmdfaW5mbyIseGU6ImFkZF90b19jYXJ0Iix5ZToicmVtb3ZlX2Zyb21fY2FydCIseGw6InZpZXdfY2FydCIsQWQ6ImJlZ2luX2NoZWNrb3V0IixldToiZ2VuZXJhdGVfbGVhZCIsemU6InNlbGVjdF9pdGVtIixvYzoidmlld19pdGVtX2xpc3QiLApRYzoic2VsZWN0X3Byb21vdGlvbiIscWM6InZpZXdfcHJvbW90aW9uIixJYjoicHVyY2hhc2UiLEFlOiJyZWZ1bmQiLHJjOiJ2aWV3X2l0ZW0iLHlsOiJhZGRfdG9fd2lzaGxpc3QiLHlwOiJleGNlcHRpb24iLHpwOiJmaXJzdF9vcGVuIixBcDoiZmlyc3RfdmlzaXQiLHdhOiJndGFnLmNvbmZpZyIsSmI6Imd0YWcuZ2V0IixCcDoiaW5fYXBwX3B1cmNoYXNlIixzYzoicGFnZV92aWV3IixDcDoic2NyZWVuX3ZpZXciLERwOiJzZXNzaW9uX3N0YXJ0IixFcDoic291cmNlX3VwZGF0ZSIsRnA6InRpbWluZ19jb21wbGV0ZSIsR3A6InRyYWNrX3NvY2lhbCIseWY6InVzZXJfZW5nYWdlbWVudCIsSHA6InVzZXJfaWRfdXBkYXRlIixmaDoiYnJhaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsZ2g6ImJyYWlkX3N0b3JhZ2Vfc291cmNlIixCZDoiZ2NsaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQ2Q6ImdjbGlkX3N0b3JhZ2Vfc291cmNlIixTYjoiZ2NsZ2IiLGxiOiJnY2xpZCIsemw6ImdjbGlkX2xlbiIsCkJlOiJnY2xncyIsQ2U6ImdjbGxwIixEZToiZ2Nsc3QiLG1iOiJhZHNfZGF0YV9yZWRhY3Rpb24iLHpmOiJnYWRfc291cmNlIixBZjoiZ2FkX3NvdXJjZV9zcmMiLERkOiJnY2xpZF91cmwiLEFsOiJnY2xzcmMiLEJmOiJnYnJhaWQiLEVlOiJ3YnJhaWQiLFJjOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyIscmk6ImFsbG93X2N1c3RvbV9zY3JpcHRzIixoaDoiYWxsb3dfZGlzcGxheV9mZWF0dXJlcyIsc2k6ImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIixTYzoiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLHVpOiJhbGxvd19pbnRlcmVzdF9ncm91cHMiLElwOiJhcHBfaWQiLEpwOiJhcHBfaW5zdGFsbGVyX2lkIixLcDoiYXBwX25hbWUiLExwOiJhcHBfdmVyc2lvbiIsRWQ6ImF1aWQiLGZ1OiJhdXRvX2RldGVjdGlvbl9lbmFibGVkIixCbDoiYXV0b19ldmVudCIsQ2w6ImF3X3JlbWFya2V0aW5nIixpaDoiYXdfcmVtYXJrZXRpbmdfb25seSIsQ2Y6ImRpc2NvdW50IixEZjoiYXdfZmVlZF9jb3VudHJ5IiwKRWY6ImF3X2ZlZWRfbGFuZ3VhZ2UiLEhhOiJpdGVtcyIsRmY6ImF3X21lcmNoYW50X2lkIix3aToiYXdfYmFza2V0X3R5cGUiLEdmOiJjYW1wYWlnbl9jb250ZW50IixIZjoiY2FtcGFpZ25faWQiLElmOiJjYW1wYWlnbl9tZWRpdW0iLEpmOiJjYW1wYWlnbl9uYW1lIixLZjoiY2FtcGFpZ24iLExmOiJjYW1wYWlnbl9zb3VyY2UiLE1mOiJjYW1wYWlnbl90ZXJtIixLYjoiY2xpZW50X2lkIixEbDoicm5kIix4aToiY29uc2VudF91cGRhdGVfdHlwZSIsTXA6ImNvbnRlbnRfZ3JvdXAiLE5wOiJjb250ZW50X3R5cGUiLEZkOiJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiLHlpOiJjb252ZXJzaW9uX2lkIix1YzoiY29udmVyc2lvbl9saW5rZXIiLEhkOiJjb252ZXJzaW9uX2xpbmtlcl9kaXNhYmxlZCIsRmU6ImNvbnZlcnNpb25fYXBpIix6aToiXyZyY2IiLGpoOiJjb29raWVfZGVwcmVjYXRpb24iLExiOiJjb29raWVfZG9tYWluIixDYjoiY29va2llX2V4cGlyZXMiLFRiOiJjb29raWVfZmxhZ3MiLApJZDoiY29va2llX25hbWUiLHZjOiJjb29raWVfcGF0aCIsbmI6ImNvb2tpZV9wcmVmaXgiLEpkOiJjb29raWVfdXBkYXRlIixUYzoiY291bnRyeSIsZWI6ImN1cnJlbmN5IixHZToiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiLGtoOiJjdXN0b21lcl90eXBlIixIZToiY3VzdG9tX21hcCIsQWk6ImdjbGRjX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLEJpOiJnY2xkY19zdG9yYWdlX3NvdXJjZSIsTmY6ImdjbGRjIixLZDoiZGNsaWQiLEVsOiJkZWJ1Z19tb2RlIixPYToiZGV2ZWxvcGVyX2lkIixPcDoiZGlzYWJsZV9tZXJjaGFudF9yZXBvcnRlZF9wdXJjaGFzZXMiLFVjOiJkY19jdXN0b21fcGFyYW1zIixQcDoiZGNfbmF0dXJhbF9zZWFyY2giLFFwOiJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixGbDoiYWZmaWxpYXRpb24iLG1oOiJjaGVja291dF9vcHRpb24iLENpOiJjaGVja291dF9zdGVwIixHbDoiY291cG9uIixPZjoiaXRlbV9saXN0X25hbWUiLERpOiJsaXN0X25hbWUiLFJwOiJwcm9tb3Rpb25zIiwKTGQ6InNoaXBwaW5nIixIbDoidGF4IixuaDoiZW5nYWdlbWVudF90aW1lX21zZWMiLG9oOiJlbmhhbmNlZF9jbGllbnRfaWQiLFNwOiJlbmhhbmNlZF9jb252ZXJzaW9ucyIsZ3U6ImVuaGFuY2VkX2NvbnZlcnNpb25zX2F1dG9tYXRpY19zZXR0aW5ncyIsSWU6ImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIixQZjoiZXZlbnRfY2FsbGJhY2siLFRwOiJldmVudF9jYXRlZ29yeSIsVmM6ImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciLE1kOiJldmVudF9pZCIsRWk6Il9ldmVudF9qb2luX2lkIixVcDoiZXZlbnRfbGFiZWwiLFViOiJldmVudCIsSWw6Il8mYWUiLEZpOiJldmVudF9zZXR0aW5ncyIscGg6ImV2ZW50X3RpbWVvdXQiLFZwOiJkZXNjcmlwdGlvbiIsV3A6ImZhdGFsIixYcDoiZXhwZXJpbWVudHMiLE5kOiJleHRfY2xpZW50X2lkIixHaToiZmlyZWJhc2VfaWQiLFFmOiJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIixSZjoiX3hfMjAiLFZiOiJfeF8xOSIsWXA6ImZsaWdodF9lcnJvcl9jb2RlIiwKWnA6ImZsaWdodF9lcnJvcl9tZXNzYWdlIixIaToiZmxfYWN0aXZpdHlfY2F0ZWdvcnkiLElpOiJmbF9hY3Rpdml0eV9ncm91cCIscWg6ImZsX2FkdmVydGlzZXJfaWQiLEppOiJtYXRjaF9pZCIsSmw6ImZsX3JhbmRvbV9udW1iZXIiLEtsOiJ0cmFuIixMbDoidSIscmg6ImdhY19nY2xpZCIsSmU6ImdhY193YnJhaWQiLE1sOiJnYWNfd2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixhcToiZ2FfcmVzdHJpY3RfZG9tYWluIixObDoiZ2FfdGVtcF9jbGllbnRfaWQiLGJxOiJnYV90ZW1wX2VjaWQiLEtlOiJnZHByX2FwcGxpZXMiLHNoOiJfZ3RfbWV0YWRhdGEiLE9sOiJnZW9fZ3JhbnVsYXJpdHkiLFNmOiJ2YWx1ZV9jYWxsYmFjayIsVGY6InZhbHVlX2tleSIsVGE6Imdvb2dsZV9hbmFseXNpc19wYXJhbXMiLExlOiJfZ29vZ2xlX25nIixjcToiX29ubyIsVWY6Imdvb2dsZV9zaWduYWxzIixmcToiZ29vZ2xlX3RsZCIsdGg6ImdwcF9zaWQiLHVoOiJncHBfc3RyaW5nIixPZDoiZ3JvdXBzIiwKUGw6ImdzYV9leHBlcmltZW50X2lkIixWZjoiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIixRbDoiZ3RtX3VwIixNZToiaWZyYW1lX3N0YXRlIixXZjoiaWdub3JlX3JlZmVycmVyIixSbDoiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixTbDoiX2lzX2ZwbSIsWWM6ImlzX2xlZ2FjeV9jb252ZXJ0ZWQiLFpjOiJpc19sZWdhY3lfbG9hZGVkIixLaToiaXNfcGFzc3Rocm91Z2giLFBkOiJfbHBzIix0YjoibGFuZ3VhZ2UiLExpOiJsZWdhY3lfZGV2ZWxvcGVyX2lkX3N0cmluZyIsRGI6ImxpbmtlciIsWGY6ImFjY2VwdF9pbmNvbWluZyIsd2M6ImRlY29yYXRlX2Zvcm1zIixBYToiZG9tYWlucyIsYWQ6InVybF9wb3NpdGlvbiIsUWQ6Im1lcmNoYW50X2ZlZWRfbGFiZWwiLFJkOiJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIixTZDoibWVyY2hhbnRfaWQiLFRsOiJtZXRob2QiLGdxOiJuYW1lIixVbDoibmF2aWdhdGlvbl90eXBlIixOZToibmV3X2N1c3RvbWVyIixNaToibm9uX2ludGVyYWN0aW9uIiwKaHE6Im9wdGltaXplX2lkIixWbDoicGFnZV9ob3N0bmFtZSIsWWY6InBhZ2VfcGF0aCIsVWE6InBhZ2VfcmVmZXJyZXIiLE1iOiJwYWdlX3RpdGxlIixpcToicGFzc2VuZ2VycyIsV2w6InBob25lX2NvbnZlcnNpb25fY2FsbGJhY2siLGpxOiJwaG9uZV9jb252ZXJzaW9uX2NvdW50cnlfY29kZSIsWGw6InBob25lX2NvbnZlcnNpb25fY3NzX2NsYXNzIixrcToicGhvbmVfY29udmVyc2lvbl9pZHMiLFlsOiJwaG9uZV9jb252ZXJzaW9uX251bWJlciIsWmw6InBob25lX2NvbnZlcnNpb25fb3B0aW9ucyIsbHE6Il9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyIsbXE6Il9wcm90ZWN0ZWRfYXVkaWVuY2VfZW5hYmxlZCIsd2g6InF1YW50aXR5Iix4aDoicmVkYWN0X2RldmljZV9pbmZvIixhbToicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLGh1OiJfcmVxdWVzdF9zdGFydF90aW1lIixXYjoicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciLG5xOiJyZXRva2VuIixvcToic2FtcGxlX3JhdGUiLApOaToic2NyZWVuX25hbWUiLGJkOiJzY3JlZW5fcmVzb2x1dGlvbiIsYm06Il9zY3JpcHRfc291cmNlIixwcToic2VhcmNoX3Rlcm0iLFRkOiJzZW5kX3BhZ2VfdmlldyIsWGI6InNlbmRfdG8iLE9pOiJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiLGRkOiJzZXJ2ZXJfY29udGFpbmVyX3VybCIscXE6InNlc3Npb25fYXR0cmlidXRlc19lbmNvZGVkIix5aDoic2Vzc2lvbl9kdXJhdGlvbiIsemg6InNlc3Npb25fZW5nYWdlZCIsUGk6InNlc3Npb25fZW5nYWdlZF90aW1lIix4Yzoic2Vzc2lvbl9pZCIsQWg6InNlc3Npb25fbnVtYmVyIixaZjoiX3NoYXJlZF91c2VyX2lkIixVZDoiZGVsaXZlcnlfcG9zdGFsX2NvZGUiLGl1OiJfdGFnX2ZpcmluZ19kZWxheSIsanU6Il90YWdfZmlyaW5nX3RpbWUiLGt1OiJ0ZW1wb3JhcnlfY2xpZW50X2lkIixRaToidGVzdG9ubHkiLHJxOiJfdGltZXpvbmUiLFBlOiJ0b3Btb3N0X3VybCIsUWU6InRyYWNraW5nX2lkIixSaToidHJhZmZpY190eXBlIiwKUGE6InRyYW5zYWN0aW9uX2lkIixkbToidHJhbnNhY3Rpb25faWRfc291cmNlIix5YzoidHJhbnNwb3J0X3VybCIsc3E6InRyaXBfdHlwZSIsVmQ6InVwZGF0ZSIsemM6InVybF9wYXNzdGhyb3VnaCIsZm06InVwdGdzIixjZzoiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIixkZzoiX3VzZXJfYWdlbnRfYml0bmVzcyIsZWc6Il91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0IixmZzoiX3VzZXJfYWdlbnRfbW9iaWxlIixnZzoiX3VzZXJfYWdlbnRfbW9kZWwiLGhnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybSIsaWc6Il91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iLGpnOiJfdXNlcl9hZ2VudF93b3c2NCIsQWM6InVzZXJfZGF0YSIsZ206InVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiLGhtOiJ1c2VyX2RhdGFfYXV0b19tZXRhIixpbToidXNlcl9kYXRhX2F1dG9fbXVsdGkiLGptOiJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiLGttOiJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiLEJjOiJ1c2VyX2RhdGFfbW9kZSIsCmxtOiJ1c2VyX2RhdGFfc2V0dGluZ3MiLGZiOiJ1c2VyX2lkIixXZDoidXNlcl9wcm9wZXJ0aWVzIixvbToiX3VzZXJfcmVnaW9uIixrZzoidXNfcHJpdmFjeV9zdHJpbmciLFFhOiJ2YWx1ZSIscW06IndicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsZWQ6Il9mcG1fcGFyYW1ldGVycyIsV2k6Il9ob3N0X25hbWUiLFZtOiJfaW5fcGFnZV9jb21tYW5kIixZaToiX2lwX292ZXJyaWRlIixabToiX2lzX3Bhc3N0aHJvdWdoX2NpZCIsSmg6Il9tZWFzdXJlbWVudF90eXBlIixkZToibm9uX3BlcnNvbmFsaXplZF9hZHMiLG9qOiJfc3N0X3BhcmFtZXRlcnMiLFlxOiJzZ3RtX2dlb191c2VyX2NvdW50cnkiLEdkOiJjb252ZXJzaW9uX2xhYmVsIix6YToicGFnZV9sb2NhdGlvbiIsV2M6Il9leHRyYWN0ZWRfZGF0YSIsWGM6Imdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIixPZToidGNfcHJpdmFjeV9zdHJpbmcifX07dmFyIEg9e0o6e1NvOiJhYm9ydF93aXRob3V0X2ZhaWwiLGtpOiJhY2NlcHRfYnlfZGVmYXVsdCIsQms6ImFkZF90YWdfdGltaW5nIixEazoiYWRzX2NvbnNlbnRfZ3JhbnRlZCIsdmQ6ImFkc19ldmVudF9wYWdlX3ZpZXciLHdkOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iLFF0OiJhdXRvX2V2ZW50IixLazoiYmF0Y2hfb25fbmF2aWdhdGlvbiIsWGc6ImJpc2NvdHRpX2pvaW5faWQiLFBrOiJjbGllbnRfaWRfc291cmNlIix1ZjoiY29uc2VudF9ldmVudF9pZCIsdmY6ImNvbnNlbnRfcHJpb3JpdHlfaWQiLFN0OiJjb25zZW50X3N0YXRlIixzYToiY29uc2VudF91cGRhdGVkIix3ZjoiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCIsVHQ6ImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiLEdhOiJjb29raWVfb3B0aW9ucyIsb2w6ImRjX3JhbmRvbSIsWnQ6ImRlZHVwZV9pZCIsUGM6ImVtX2V2ZW50IixidToiZW5kcG9pbnRfZm9yX2RlYnVnIix0bDoiZW5oYW5jZWRfY2xpZW50X2lkX3NvdXJjZSIsCnBwOiJlbmhhbmNlZF9tYXRjaF9yZXN1bHQiLHJtOiJldWlkX2xvZ2dlZF9pbl9zdGF0ZSIsbGc6ImV1aWRfbW9kZV9lbmFibGVkIix0cToiZXZlbnRfcHJvdmVuYW5jZSIsbXU6ImV2ZW50X3NvdXJjZSIsRWI6ImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyIsd206ImV2ZW50X3VzYWdlIixDaDoiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIixwdToiYWRkX3BhcmFtZXRlciIsVWk6ImNvdW50aW5nX21ldGhvZCIsRGg6InNlbmRfYXNfaWZyYW1lIixxdToicGFyYW1ldGVyX29yZGVyIixFaDoicGFyc2VkX3RhcmdldCIsc3U6ImZvcm1fZXZlbnRfY2FuY2VsZWQiLEFxOiJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iLFZpOiJnYTRfcmVxdWVzdF9mbGFncyIsTm06ImdicmFpZF9jb29raWVfbWFya2VkIixRbToiZ3RtX2V4dHJhY3RlZF9kYXRhIixDYzoiaGFuZGxlX2ludGVybmFsbHkiLHV1OiJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyIsZGE6ImhpdF90eXBlIixEYzoiaGl0X3R5cGVfb3ZlcnJpZGUiLApIcToiaWdub3JlX2R1cGVfY29uZmlnIixPdToiaXNfY29uZmlnX2NvbW1hbmQiLEdoOiJpc19jb25zZW50X3VwZGF0ZSIsbWc6ImlzX2NvbnZlcnNpb24iLFdtOiJpc19lY29tbWVyY2UiLFhtOiJpc19lY19jbV9zcGxpdCIsYWU6ImlzX2V4dGVybmFsX2V2ZW50IixuZzoiaXNfZmlyc3RfdmlzaXQiLFltOiJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIixaaToiaXNfZmxfZmFsbGJhY2tfY29udmVyc2lvbl9mbG93X2FsbG93ZWQiLGZkOiJpc19mcG1fZW5jcnlwdGlvbiIsYWo6ImlzX2ZwbV9zcGxpdCIsb2I6ImlzX2djcF9icm93c2VyIixiajoiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiLGNqOiJpc19nb29nbGVfc2lnbmFsc19lbmFibGVkIixiZToiaXNfbWVyY2hhbnRfY2VudGVyIixIaDoiaXNfbmV3X3RvX3NpdGUiLEVjOiJpc19wZXJzb25hbGl6YXRpb24iLGRqOiJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiIsVGU6ImlzX3Nlc3Npb25fc3RhcnQiLGJuOiJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iLApQdToiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIixRdToiaXNfc2d0bV9wcmVoaXQiLGRuOiJpc19zZ3RtX3NlcnZpY2Vfd29ya2VyIixJaDoiaXNfc3BsaXRfY29udmVyc2lvbiIsSXE6ImlzX3N5biIsRmM6ImlzX3Rlc3RfZXZlbnQiLG9nOiJqb2luX2lkIixlajoiam9pbl9lbGFwc2VkIixwZzoiam9pbl90aW1lcl9zZWMiLGduOiJsb2NhbF9zdG9yYWdlX2F3X2NvbnZlcnNpb25fY291bnRlcnMiLFdlOiJ0dW5uZWxfdXBkYXRlZCIsVXU6InByZWhpdF9mb3JfcmV0cnkiLFd1OiJwcm9taXNlcyIsWHU6InJlY29yZF9hd19sYXRlbmN5IixYZToicmVkYWN0X2Fkc19kYXRhIixZZToicmVkYWN0X2NsaWNrX2lkcyIscG46InJlbWFya2V0aW5nX29ubHkiLGxqOiJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIixoZDoic2VuZF9kb3VibGVjbGlja19qb2luIixNaDoic2VuZF9mcG1fZ2VvX2pvaW4iLE5oOiJzZW5kX2ZwbV9nb29nbGVfam9pbiIsWnU6InNlbmRfY2NtX3BhcmFsbGVsX3Rlc3RfcGluZyIsCnJuOiJzZW5kX2dvb2dsZV9tZWFzdXJlbWVudCIscmc6InNlbmRfdGxkX2pvaW4iLHNnOiJzZW5kX3RvX2Rlc3RpbmF0aW9ucyIsbWo6InNlbmRfdG9fdGFyZ2V0cyIsc246InNlbmRfdXNlcl9kYXRhX2hpdCIscGo6InNlcnZpY2Vfd29ya2VyX2NvbnRleHQiLE5iOiJzb3VyY2VfY2Fub25pY2FsX2lkIixKYToic3BlY3VsYXRpdmUiLHluOiJzcGVjdWxhdGl2ZV9pbl9tZXNzYWdlIixBbjoic3VwcHJlc3Nfc2NyaXB0X2xvYWQiLEJuOiJzeW5fb3JfbW9kIix6ajoidHJhbnNpZW50X2Vjc2lkIix0ZzoidHJhbnNtaXNzaW9uX3R5cGUiLFlhOiJ1c2VyX2RhdGEiLGd2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiLGh2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIixHbjoidXNlcl9kYXRhX2Zyb21fY29kZSIsaXI6InVzZXJfZGF0YV9mcm9tX21hbnVhbCIsanY6InVzZXJfZGF0YV9tb2RlIix1ZzoidXNlcl9pZF91cGRhdGVkIn19O3ZhciBKPXtVOntrcDoxLG1wOjIsRW46Myxubjo0LHFsOjUscmw6NixFcTo3LG5wOjgsRHE6OSxqcDoxMCxocDoxMSx4bjoxMix2bjoxMyxOazoxNCxVbzoxNSxXbzoxNixobjoxNyxzbDoxOCxmbjoxOSxscDoyMCxQcToyMSxhcDoyMixWbzoyMyxYbzoyNCxubDoyNSxMazoyNixlcjoyNyxKbToyOCxVbToyOSxUbTozMCxTbTozMSxNbTozMixLbTozMyxMbTozNCxHbTozNSxGbTozNixIbTozNyxJbTozOCxCcTozOSxDcTo0MCxVcTo0MX19O0ouVVtKLlUua3BdPSJDUkVBVEVfRVZFTlRfU09VUkNFIjtKLlVbSi5VLm1wXT0iRURJVF9FVkVOVCI7Si5VW0ouVS5Fbl09IlRSQUZGSUNfVFlQRSI7Si5VW0ouVS5ubl09IlJFRkVSUkFMX0VYQ0xVU0lPTiI7Si5VW0ouVS5xbF09IkVDT01NRVJDRV9GUk9NX0dUTV9UQUciO0ouVVtKLlUucmxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVUFfU0NIRU1BIjtKLlVbSi5VLkVxXT0iR0FfU0VORCI7Si5VW0ouVS5ucF09IkVNX0ZPUk0iOwpKLlVbSi5VLkRxXT0iR0FfR0FNX0xJTksiO0ouVVtKLlUuanBdPSJDUkVBVEVfRVZFTlRfQVVUT19QQUdFX1BBVEgiO0ouVVtKLlUuaHBdPSJDUkVBVEVEX0VWRU5UIjtKLlVbSi5VLnhuXT0iU0lERUxPQURFRCI7Si5VW0ouVS52bl09IlNHVE1fTEVHQUNZX0NPTkZJR1VSQVRJT04iO0ouVVtKLlUuTmtdPSJDQ0RfRU1fRVZFTlQiO0ouVVtKLlUuVW9dPSJBVVRPX1JFREFDVF9FTUFJTCI7Si5VW0ouVS5Xb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNIjtKLlVbSi5VLmhuXT0iTVVMVElQTEVfUEFHRVZJRVdfRlJPTV9DT05GSUciO0ouVVtKLlUuc2xdPSJFTV9FVkVOVF9TRU5UX0JFRk9SRV9DT05GSUciO0ouVVtKLlUuZm5dPSJMT0FERURfVklBX0NTVF9PUl9TSURFTE9BRElORyI7Si5VW0ouVS5scF09IkRFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuUHFdPSJOT05fREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5hcF09IkNDRF9FVkVOVF9TR1RNIjsKSi5VW0ouVS5Wb109IkFVVE9fUkVEQUNUX0VNQUlMX1NHVE0iO0ouVVtKLlUuWG9dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTV9TR1RNIjtKLlVbSi5VLm5sXT0iREFJTFlfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5Ma109IkJVUlNUX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuZXJdPSJTSEFSRURfVVNFUl9JRF9TRVRfQUZURVJfUkVRVUVTVCI7Si5VW0ouVS5KbV09IkdBNF9NVUxUSVBMRV9TRVNTSU9OX0NPT0tJRVMiO0ouVVtKLlUuVW1dPSJJTlZBTElEX0dBNF9TRVNTSU9OX0NPVU5UIjtKLlVbSi5VLlRtXT0iSU5WQUxJRF9HQTRfTEFTVF9FVkVOVF9USU1FU1RBTVAiO0ouVVtKLlUuU21dPSJJTlZBTElEX0dBNF9KT0lOX1RJTUVSIjtKLlVbSi5VLk1tXT0iR0E0X1NUQUxFX1NFU1NJT05fQ09PS0lFX1NFTEVDVEVEIjtKLlVbSi5VLkttXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMV9SRUFEIjtKLlVbSi5VLkxtXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMl9SRUFEIjsKSi5VW0ouVS5HbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BVkFJTEFCTEUiO0ouVVtKLlUuRm1dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVBQTElFRCI7Si5VW0ouVS5IbV09IkdBNF9HT09HTEVfTUVBU1VSRU1FTlRfQUxMT1dFRCI7Si5VW0ouVS5JbV09IkdBNF9HT09HTEVfU0lHTkFMU19FTkFCTEVEIjtKLlVbSi5VLkJxXT0iR0E0X0ZBTExCQUNLX1JFUVVFU1QiO0ouVVtKLlUuQ3FdPSJHQV9BRFNfTElOS19CRUZPUkVfQ09OVkVSU0lPTl9NQVJLSU5HIjtKLlVbSi5VLlVxXT0iUExBVElOVU1fRUxJR0lCTEUiO3ZhciB4Zz17fSx5Zz0oeGcudWFhPSEwLHhnLnVhYj0hMCx4Zy51YWZ2bD0hMCx4Zy51YW1iPSEwLHhnLnVhbT0hMCx4Zy51YXA9ITAseGcudWFwdj0hMCx4Zy51YXc9ITAseGcpOwp2YXIgRWc9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YSxlPWJbY107aWYoIUNnLmV4ZWMoZSkpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IHdpbGRjYXJkIik7dmFyIGY9ZS5pbmRleE9mKCIuKiIpLGc9ZiE9PS0xJiZmPT09ZS5sZW5ndGgtMixoPWc/ZS5zbGljZSgwLGUubGVuZ3RoLTIpOmUsbDthOmlmKGQubGVuZ3RoPT09MClsPSExO2Vsc2V7Zm9yKHZhciBuPWQuc3BsaXQoIi4iKSxwPTA7cDxuLmxlbmd0aDtwKyspaWYoIURnLmV4ZWMobltwXSkpe2w9ITE7YnJlYWsgYX1sPSEwfWlmKCFsfHxoLmxlbmd0aD5kLmxlbmd0aHx8IWcmJmQubGVuZ3RoIT09ZS5sZW5ndGg/MDpnP1NiKGQsaCkmJihkPT09aHx8ZC5jaGFyQXQoaC5sZW5ndGgpPT09Ii4iKTpkPT09aClyZXR1cm4hMH1yZXR1cm4hMX0sRGc9L15bYS16JF9dW1x3LSRdKiQvaSxDZz0vXig/OlthLXpfJF1bYS16LV8kMC05XSpcLikqW2Etel8kXVthLXotXyQwLTldKig/OlwuXCopPyQvaTsKdmFyIEZnPVsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdO2Z1bmN0aW9uIEdnKGEsYil7aWYoIWEpcmV0dXJuITE7dHJ5e2Zvcih2YXIgYz0wO2M8RmcubGVuZ3RoO2MrKyl7dmFyIGQ9RmdbY107aWYoYVtkXSE9bnVsbClyZXR1cm4gYVtkXShiKX19Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEhnKGEsYil7dmFyIGM9U3RyaW5nKGEpLGQ9U3RyaW5nKGIpLGU9Yy5sZW5ndGgtZC5sZW5ndGg7cmV0dXJuIGU+PTAmJmMuaW5kZXhPZihkLGUpPT09ZX1mdW5jdGlvbiBJZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuc3BsaXQoIiwiKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9CmZ1bmN0aW9uIEpnKGEsYixjLGQpe3ZhciBlPWM/ImkiOnZvaWQgMDt0cnl7dmFyIGY9U3RyaW5nKGIpK1N0cmluZyhlKSxnPWQ9PW51bGw/dm9pZCAwOmQuZ2V0KGYpO2d8fChnPW5ldyBSZWdFeHAoYixlKSxkPT1udWxsfHxkLnNldChmLGcpKTtyZXR1cm4gZy50ZXN0KGEpfWNhdGNoKGgpe3JldHVybiExfX1mdW5jdGlvbiBLZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuaW5kZXhPZihTdHJpbmcoYikpPj0wfWZ1bmN0aW9uIExnKGEsYil7cmV0dXJuIFN0cmluZyhhKT09PVN0cmluZyhiKX1mdW5jdGlvbiBNZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+PU51bWJlcihiKX1mdW5jdGlvbiBOZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8PU51bWJlcihiKX1mdW5jdGlvbiBPZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+TnVtYmVyKGIpfWZ1bmN0aW9uIFBnKGEsYil7cmV0dXJuIE51bWJlcihhKTxOdW1iZXIoYil9CmZ1bmN0aW9uIFFnKGEsYil7cmV0dXJuIFNiKFN0cmluZyhhKSxTdHJpbmcoYikpfTsKdmFyIFJnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubGVuZ3RoJiZiLmxlbmd0aCYmYS5sYXN0SW5kZXhPZihiKT09PWEubGVuZ3RoLWIubGVuZ3RofSxTZz1mdW5jdGlvbihhLGIpe3ZhciBjPWIuY2hhckF0KGIubGVuZ3RoLTEpPT09IioifHxiPT09Ii8ifHxiPT09Ii8qIjtSZyhiLCIvKiIpJiYoYj1iLnNsaWNlKDAsLTIpKTtSZyhiLCI/IikmJihiPWIuc2xpY2UoMCwtMSkpO3ZhciBkPWIuc3BsaXQoIioiKTtpZighYyYmZC5sZW5ndGg9PT0xKXJldHVybiBhPT09ZFswXTtmb3IodmFyIGU9LTEsZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1kW2ZdO2lmKGcpe2U9YS5pbmRleE9mKGcsZSk7aWYoZT09PS0xfHxmPT09MCYmZSE9PTApcmV0dXJuITE7ZSs9Zy5sZW5ndGh9fWlmKGN8fGU9PT1hLmxlbmd0aClyZXR1cm4hMDt2YXIgaD1kW2QubGVuZ3RoLTFdO3JldHVybiBhLmxhc3RJbmRleE9mKGgpPT09YS5sZW5ndGgtaC5sZW5ndGh9LFRnPWZ1bmN0aW9uKGEpe3JldHVybiBhLnByb3RvY29sPT09CiJodHRwczoiJiYoIWEucG9ydHx8YS5wb3J0PT09IjQ0MyIpfSxXZz1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKCEoYz0hVGcoYSkpKXt2YXIgZDthOnt2YXIgZT1hLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoZS5sZW5ndGg8MilkPSExO2Vsc2V7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspaWYoIVVnLmV4ZWMoZVtmXSkpe2Q9ITE7YnJlYWsgYX1kPSEwfX1jPSFkfWlmKGMpcmV0dXJuITE7Zm9yKHZhciBnPTA7ZzxiLmxlbmd0aDtnKyspe3ZhciBoO3ZhciBsPWEsbj1iW2ddO2lmKCFWZy5leGVjKG4pKXRocm93IEVycm9yKCJJbnZhbGlkIFdpbGRjYXJkIik7dmFyIHA9bi5zbGljZSg4KSxxPXAuc2xpY2UoMCxwLmluZGV4T2YoIi8iKSkscjt2YXIgdD1sLmhvc3RuYW1lLHU9cTtpZihTYih1LCIqLiIpKXt1PXUuc2xpY2UoMik7dmFyIHY9dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodS50b0xvd2VyQ2FzZSgpKTtyPXY9PT0tMT8hMTp0Lmxlbmd0aD09PXUubGVuZ3RoPyEwOnQubGVuZ3RoIT09CnUubGVuZ3RoK3Y/ITE6dFt2LTFdPT09Ii4ifWVsc2Ugcj10LnRvTG93ZXJDYXNlKCk9PT11LnRvTG93ZXJDYXNlKCk7aWYocil7dmFyIHg9cC5zbGljZShwLmluZGV4T2YoIi8iKSk7aD1TZyhsLnBhdGhuYW1lK2wuc2VhcmNoLHgpPyEwOiExfWVsc2UgaD0hMTtpZihoKXJldHVybiEwfXJldHVybiExfSxVZz0vXlthLXowLTktXSskL2ksVmc9L15odHRwczpcL1wvKFwqXC58KSgoPzpbYS16MC05LV0rXC4pK1thLXowLTktXSspXC8oLiopJC9pO2Z1bmN0aW9uIFhnKGEpe3ZhciBiPWEuc2VhcmNoO3JldHVybiBhLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZSthLnBhdGhuYW1lKyhiP2IrIiZyaWNoc3N0c3NlIjoiP3JpY2hzc3Rzc2UiKX07dmFyIFlnPWZ1bmN0aW9uKCl7dGhpcy5SPSIifSwkZz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPWIuZmFsbGJhY2tfdXJsLGQ9Yi5mYWxsYmFja191cmxfbWV0aG9kO2lmKGMmJmQpe3ZhciBlPXt9O1pnKGEsKGVbZF09W2NdLGUub3B0aW9ucz17fSxlKSl9fX0sYWg9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7dHlwZW9mIGY9PT0ic3RyaW5nIiYmYyhmLGIpfX0sWmc9ZnVuY3Rpb24oYSxiKXtpZihiKWZvcih2YXIgYz1DZChiLm9wdGlvbnMpP2Iub3B0aW9uczp7fSxkPW0oT2JqZWN0LmtleXMoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9YltmXTtzd2l0Y2goZil7Y2FzZSAic2VuZF9waXhlbCI6YWgoZyxjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5LKGgsbCl9KTticmVhaztjYXNlICJmZXRjaCI6YWgoZywKYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSChoLGwpfSl9fX07dmFyIGJoPS9eKFthLXpdW2EtejAtOV0qKTooIXxcPykoXCp8c3RyaW5nfGJvb2xlYW58bnVtYmVyfEZufFBpeGllTWFwfExpc3R8T3BhcXVlVmFsdWUpJC9pLGNoPXtGbjoiZnVuY3Rpb24iLFBpeGllTWFwOiJPYmplY3QiLExpc3Q6IkFycmF5In07CmZ1bmN0aW9uIGRoKGEsYil7Zm9yKHZhciBjPVsiaW5wdXQ6ISoiXSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWJoLmV4ZWMoY1tkXSk7aWYoIWUpdGhyb3cgRXJyb3IoIkludGVybmFsIEVycm9yIGluICIrYSk7dmFyIGY9ZVsxXSxnPWVbMl09PT0iISIsaD1lWzNdLGw9YltkXTtpZihsPT1udWxsKXtpZihnKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gUmVxdWlyZWQgYXJndW1lbnQgIitmKyIgbm90IHN1cHBsaWVkLiIpO31lbHNlIGlmKGghPT0iKiIpe3ZhciBuPXR5cGVvZiBsO2wgaW5zdGFuY2VvZiBLZD9uPSJGbiI6bCBpbnN0YW5jZW9mIEdkP249Ikxpc3QiOmwgaW5zdGFuY2VvZiBrYj9uPSJQaXhpZU1hcCI6bCBpbnN0YW5jZW9mIFNkP249IlBpeGllUHJvbWlzZSI6bCBpbnN0YW5jZW9mIFBkJiYobj0iT3BhcXVlVmFsdWUiKTtpZihuIT09aCl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIEFyZ3VtZW50ICIrZisiIGhhcyB0eXBlICIrKChjaFtuXXx8bikrIiwgd2hpY2ggZG9lcyBub3QgbWF0Y2ggcmVxdWlyZWQgdHlwZSAiKSsKKChjaFtoXXx8aCkrIi4iKSk7fX19ZnVuY3Rpb24gSyhhLGIsYyl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIGluc3RhbmNlb2YgS2Q/ZC5wdXNoKCJmdW5jdGlvbiIpOmcgaW5zdGFuY2VvZiBHZD9kLnB1c2goIkFycmF5Iik6ZyBpbnN0YW5jZW9mIGtiP2QucHVzaCgiT2JqZWN0Iik6ZyBpbnN0YW5jZW9mIFNkP2QucHVzaCgiUHJvbWlzZSIpOmcgaW5zdGFuY2VvZiBQZD9kLnB1c2goIk9wYXF1ZVZhbHVlIik6ZC5wdXNoKHR5cGVvZiBnKX1yZXR1cm4gRXJyb3IoIkFyZ3VtZW50IGVycm9yIGluICIrYSsiLiBFeHBlY3RlZCBhcmd1bWVudCB0eXBlcyBbIisoYi5qb2luKCIsIikrIl0sIGJ1dCByZWNlaXZlZCBbIikrKGQuam9pbigiLCIpKyJdLiIpKX1mdW5jdGlvbiBlaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGtifWZ1bmN0aW9uIGZoKGEpe3JldHVybiBlaChhKXx8YT09PW51bGx8fGdoKGEpfQpmdW5jdGlvbiBoaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEtkfWZ1bmN0aW9uIGloKGEpe3JldHVybiBoaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIGpoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgR2R9ZnVuY3Rpb24ga2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBQZH1mdW5jdGlvbiBsaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBtaChhKXtyZXR1cm4gbGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBuaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9ZnVuY3Rpb24gb2goYSl7cmV0dXJuIG5oKGEpfHxnaChhKX1mdW5jdGlvbiBwaChhKXtyZXR1cm4gbmgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBxaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn1mdW5jdGlvbiBnaChhKXtyZXR1cm4gYT09PXZvaWQgMH07ZnVuY3Rpb24gcmgoYSl7cmV0dXJuIiIrYX0KZnVuY3Rpb24gc2goYSxiKXt2YXIgYz1bXTtyZXR1cm4gY307ZnVuY3Rpb24gdGgoYSxiKXt2YXIgYz1uZXcgS2QoYSxmdW5jdGlvbigpe2Zvcih2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCksZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV09dGhpcy5ldmFsdWF0ZShkW2VdKTt0cnl7cmV0dXJuIGIuYXBwbHkodGhpcyxkKX1jYXRjaChnKXt0aHJvdyBjYihnKTt9fSk7Yy5aYSgpO3JldHVybiBjfQpmdW5jdGlvbiB1aChhLGIpe3ZhciBjPW5ldyBrYixkO2ZvcihkIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9YltkXTt5YihlKT9jLnNldChkLHRoKGErIl8iK2QsZSkpOkNkKGUpP2Muc2V0KGQsdWgoYSsiXyIrZCxlKSk6KEFiKGUpfHx6YihlKXx8dHlwZW9mIGU9PT0iYm9vbGVhbiIpJiZjLnNldChkLGUpfWMuWmEoKTtyZXR1cm4gY307ZnVuY3Rpb24gd2goYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRBcGlTdWJqZWN0IiwKYyl9O2Z1bmN0aW9uIHhoKGEsYil7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBTZCl0aHJvdyBFcnJvcigiQXJndW1lbnQgYWN0dWFsIGNhbm5vdCBoYXZlIHR5cGUgUHJvbWlzZS4gQXNzZXJ0aW9ucyBvbiBhc3luY2hyb25vdXMgY29kZSBhcmVuJ3Qgc3VwcG9ydGVkLiIpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRUaGF0U3ViamVjdCIsYyl9O2Z1bmN0aW9uIHloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj1PYS5hcHBseSgwLGFyZ3VtZW50cyksYz1bXSxkPXRoaXMuVCxlPTA7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKFRkKGJbZV0sZCkpO3JldHVybiBVZChhLmFwcGx5KG51bGwsYykpfX1mdW5jdGlvbiB6aCgpe2Zvcih2YXIgYT1NYXRoLGI9QWgsYz17fSxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07YS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09eWgoYVtlXS5iaW5kKGEpKSl9cmV0dXJuIGN9O2Z1bmN0aW9uIEJoKGEpe3JldHVybiBhIT1udWxsJiZTYihhLCJfX2N2dF8iKX07ZnVuY3Rpb24gQ2goYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIERoKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYyl7fXJldHVybiBifTtmdW5jdGlvbiBFaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSShhKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBGaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEdoKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9ZnVuY3Rpb24gTGgoYSl7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt9O2Z1bmN0aW9uIE1oKGEpe3ZhciBiPVRkKGEpO3JldHVybiBuZyhiPyIiK2I6IiIpfTtmdW5jdGlvbiBOaChhLGIpe2lmKCFxaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiLCJudW1iZXIiXSxhcmd1bWVudHMpO3JldHVybiBEYihhLGIpfTtmdW5jdGlvbiBPaCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTtmdW5jdGlvbiBQaChhKXtpZihhPT09bnVsbClyZXR1cm4ibnVsbCI7aWYoYSBpbnN0YW5jZW9mIEdkKXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIEtkKXJldHVybiJmdW5jdGlvbiI7aWYoYSBpbnN0YW5jZW9mIFBkKXt2YXIgYj1hLmdldFZhbHVlKCk7aWYoKGI9PW51bGw/dm9pZCAwOmIuY29uc3RydWN0b3IpPT09dm9pZCAwfHxiLmNvbnN0cnVjdG9yLm5hbWU9PT12b2lkIDApe3ZhciBjPVN0cmluZyhiKTtyZXR1cm4gYy5zdWJzdHJpbmcoOCxjLmxlbmd0aC0xKX1yZXR1cm4gU3RyaW5nKGIuY29uc3RydWN0b3IubmFtZSl9cmV0dXJuIHR5cGVvZiBhfTtmdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGMpe3JldHVybiBmdW5jdGlvbihkKXt0cnl7cmV0dXJuIGMoZCl9Y2F0Y2goZSl7KGxnfHxtZy5QbykmJmEuY2FsbCh0aGlzLGUubWVzc2FnZSl9fX1yZXR1cm57cGFyc2U6YihmdW5jdGlvbihjKXtyZXR1cm4gVWQoSlNPTi5wYXJzZShjKSl9KSxzdHJpbmdpZnk6YihmdW5jdGlvbihjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVGQoYykpfSkscHVibGljTmFtZToiSlNPTiJ9fTtmdW5jdGlvbiBSaChhKXtyZXR1cm4gSWIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gU2goYSl7cmV0dXJuIE51bWJlcihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBUaChhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBVaChhLGIsYyl7dmFyIGQ9bnVsbCxlPSExO2lmKCFqaChhKXx8IWxoKGIpfHwhbGgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIkFycmF5Iiwic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTtkPW5ldyBrYjtmb3IodmFyIGY9MDtmPGEubGVuZ3RoKCk7ZisrKXt2YXIgZz1hLmdldChmKTtnIGluc3RhbmNlb2Yga2ImJmcuaGFzKGIpJiZnLmhhcyhjKSYmKGQuc2V0KGcuZ2V0KGIpLGcuZ2V0KGMpKSxlPSEwKX1yZXR1cm4gZT9kOm51bGx9O3ZhciBBaD0iZmxvb3IgY2VpbCByb3VuZCBtYXggbWluIGFicyBwb3cgc3FydCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBWaCgpe3ZhciBhPXt9O3JldHVybntXcjpmdW5jdGlvbihiKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOnZvaWQgMH0sS286ZnVuY3Rpb24oYixjKXthW2JdPWN9LHJlc2V0OmZ1bmN0aW9uKCl7YT17fX19fWZ1bmN0aW9uIFdoKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEtkLnByb3RvdHlwZS5pbnZva2UuYXBwbHkoYSxbYl0uY29uY2F0KHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSkpfX0KZnVuY3Rpb24gWGgoYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7fQpmdW5jdGlvbiBZaChhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJQaXhpZU1hcCJdLGFyZ3VtZW50cyk7fTt2YXIgWmg9e307dmFyICRoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtpZihhIGluc3RhbmNlb2YgR2QpZm9yKHZhciBjPWEuRmEoKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07YS5oYXMoZSkmJmIuc2V0KGUsYS5nZXQoZSkpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIEtkKWZvcih2YXIgZj1hLkZhKCksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO2Iuc2V0KGgsYS5nZXQoaCkpfWVsc2UgZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYi5zZXQobCxhW2xdKTtyZXR1cm4gYn07ClpoLmtleXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5GYSgpKTtyZXR1cm4gbmV3IEdkfTsKWmgudmFsdWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuaGMoKSk7cmV0dXJuIG5ldyBHZH07ClpoLmVudHJpZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5mYygpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gbmV3IEdkKGIpfSkpO3JldHVybiBuZXcgR2R9OwpaaC5mcmVlemU9ZnVuY3Rpb24oYSl7KGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZCkmJmEuWmEoKTtyZXR1cm4gYX07WmguZGVsZXRlPWZ1bmN0aW9uKGEsYil7aWYoYSBpbnN0YW5jZW9mIGtiJiYhYS5IYigpKXJldHVybiBhLnJlbW92ZShiKSwhMDtyZXR1cm4hMX07ZnVuY3Rpb24gTChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPWEuVC54YigpO2lmKCFkKXRocm93IEVycm9yKCJNaXNzaW5nIHByb2dyYW0gc3RhdGUuIik7aWYoZC5pdCl7dHJ5e2QuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX1jYXRjaChlKXt0aHJvdyBzYigiVEFHR0lORyIsMjEpLGU7fXJldHVybn1kLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9O3ZhciBhaT1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPSEwO307YWkucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGFpbnMoYSk/dGhpcy5LW2FdOnZvaWQgMDtyZXR1cm4gY307YWkucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLksuaGFzT3duUHJvcGVydHkoYSl9OwphaS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZih0aGlzLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGFuIEFQSSB3aXRoIGFuIGV4aXN0aW5nIHByaXZhdGUgQVBJIG5hbWU6ICIrYSsiLiIpO3RoaXMuS1thXT1jP3ZvaWQgMDp5YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIGJpKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfTtmdW5jdGlvbiBjaSgpe3ZhciBhPXt9OwpyZXR1cm4gYX07dmFyIGRpPXt9LGVpPShkaVtGLkQuc2FdPSJnY3UiLGRpW0YuRC5laF09ImVwdCIsZGlbRi5ELlNiXT0iZ2NsZ2IiLGRpW0YuRC5sYl09ImdjbGF3IixkaVtGLkQuemxdPSJnY2xpZF9sZW4iLGRpW0YuRC5CZV09ImdjbGdzIixkaVtGLkQuQ2VdPSJnY2xscCIsZGlbRi5ELkRlXT0iZ2Nsc3QiLGRpW0YuRC5FZF09ImF1aWQiLGRpW0YuRC5CbF09ImFlIixkaVtGLkQuQ2ZdPSJkc2NudCIsZGlbRi5ELkRmXT0iZmNudHIiLGRpW0YuRC5FZl09ImZsbmciLGRpW0YuRC5GZl09Im1pZCIsZGlbRi5ELndpXT0iYnR0eXBlIixkaVtGLkQuS2JdPSJnYWNpZCIsZGlbRi5ELkdkXT0ibGFiZWwiLGRpW0YuRC5GZV09ImNhcGkiLGRpW0YuRC5qaF09InBzY2RsIixkaVtGLkQuZWJdPSJjdXJyZW5jeV9jb2RlIixkaVtGLkQuR2VdPSJ2ZGx0diIsZGlbRi5ELmtoXT0iY2xvY3QiLGRpW0YuRC5FbF09Il9kYmciLGRpW0YuRC5JZV09Im9lZGVsZCIsZGlbRi5ELlZjXT0iZWRpZCIsZGlbRi5ELk1kXT0iZXZuaWQiLApkaVtGLkQuRWldPSJldmppZCIsZGlbRi5ELk5kXT0iZXhjaWQiLGRpW0YuRC5yaF09ImdhYyIsZGlbRi5ELkplXT0iZ2FjZ2IiLGRpW0YuRC5NbF09ImdhY21jb3YiLGRpW0YuRC5LZV09ImdkcHIiLGRpW0YuRC5YY109ImdkaWQiLGRpW0YuRC5MZV09Il9uZyIsZGlbRi5ELmNxXT0iX29ubyIsZGlbRi5ELnRoXT0iZ3BwX3NpZCIsZGlbRi5ELnVoXT0iZ3BwIixkaVtGLkQuUGxdPSJnc2FleHAiLGRpW0YuRC5WZl09Il90dSIsZGlbRi5ELk1lXT0iZnJtIixkaVtGLkQuS2ldPSJndG1fdXAiLGRpW0YuRC5QZF09ImxwcyIsZGlbRi5ELkxpXT0iZGlkIixkaVtGLkQuUWRdPSJmY250ciIsZGlbRi5ELlJkXT0iZmxuZyIsZGlbRi5ELlNkXT0ibWlkIixkaVtGLkQuTmVdPXZvaWQgMCxkaVtGLkQuTWJdPSJ0aWJhIixkaVtGLkQuV2JdPSJyZHAiLGRpW0YuRC54Y109ImVjc2lkIixkaVtGLkQuWmZdPSJnYV91aWQiLGRpW0YuRC5VZF09ImRlbG9wYyIsZGlbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IiwKZGlbRi5ELlBhXT0ib2lkIixkaVtGLkQuZG1dPSJvaWRzcmMiLGRpW0YuRC5mbV09InVwdGdzIixkaVtGLkQuY2ddPSJ1YWEiLGRpW0YuRC5kZ109InVhYiIsZGlbRi5ELmVnXT0idWFmdmwiLGRpW0YuRC5mZ109InVhbWIiLGRpW0YuRC5nZ109InVhbSIsZGlbRi5ELmhnXT0idWFwIixkaVtGLkQuaWddPSJ1YXB2IixkaVtGLkQuamddPSJ1YXciLGRpW0YuRC5nbV09ImVjX2xhdCIsZGlbRi5ELmhtXT0iZWNfbWV0YSIsZGlbRi5ELmltXT0iZWNfbSIsZGlbRi5ELmptXT0iZWNfc2VsIixkaVtGLkQua21dPSJlY19zIixkaVtGLkQuQmNdPSJlY19tb2RlIixkaVtGLkQuZmJdPSJ1c2VySWQiLGRpW0YuRC5rZ109InVzX3ByaXZhY3kiLGRpW0YuRC5RYV09InZhbHVlIixkaVtGLkQucW1dPSJtY292IixkaVtGLkQuV2ldPSJobiIsZGlbRi5ELlZtXT0iZ3RtX2VlIixkaVtGLkQuWWldPSJ1aXAiLGRpW0YuRC5KaF09Im10IixkaVtGLkQuZGVdPSJucGEiLGRpW0YuRC5ZcV09InNnX3VjIixkaVtGLkQueWldPQpudWxsLGRpW0YuRC5iZF09bnVsbCxkaVtGLkQudGJdPW51bGwsZGlbRi5ELkhhXT1udWxsLGRpW0YuRC56YV09bnVsbCxkaVtGLkQuVWFdPW51bGwsZGlbRi5ELlBlXT1udWxsLGRpW0YuRC5lZF09bnVsbCxkaVtGLkQuc2hdPW51bGwsZGlbRi5ELkJkXT1udWxsLGRpW0YuRC5DZF09bnVsbCxkaVtGLkQuZmhdPW51bGwsZGlbRi5ELmdoXT1udWxsLGRpW0YuRC5UYV09bnVsbCxkaVtGLkQuV2NdPW51bGwsZGkpO2Z1bmN0aW9uIGZpKGEsYil7aWYoYSl7dmFyIGM9YS5zcGxpdCgieCIpO2MubGVuZ3RoPT09MiYmKGdpKGIsInVfdyIsY1swXSksZ2koYiwidV9oIixjWzFdKSl9fWZ1bmN0aW9uIGhpKGEpe3ZhciBiPWlpO2I9Yj09PXZvaWQgMD9qaTpiO3JldHVybiBraShsaShhLGIpKX1mdW5jdGlvbiBraShhKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIigiK1ttaShiLnZhbHVlKSxtaShiLnF1YW50aXR5KSxtaShiLml0ZW1faWQpLG1pKGIuc3RhcnRfZGF0ZSksbWkoYi5lbmRfZGF0ZSldLmpvaW4oIioiKSsiKSJ9KS5qb2luKCIiKX0KZnVuY3Rpb24gbGkoYSxiKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJue2l0ZW1faWQ6YihjKSxxdWFudGl0eTpjLnF1YW50aXR5LHZhbHVlOmMucHJpY2Usc3RhcnRfZGF0ZTpjLnN0YXJ0X2RhdGUsZW5kX2RhdGU6Yy5lbmRfZGF0ZX19KX1mdW5jdGlvbiBqaShhKXtyZXR1cm5bYS5pdGVtX2lkLGEuaWQsYS5pdGVtX25hbWVdLmZpbmQoZnVuY3Rpb24oYil7cmV0dXJuIGIhPW51bGx9KX1mdW5jdGlvbiBuaShhKXtpZihhJiZhLmxlbmd0aClyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGImJmIuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU/Yi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZToiIn0pLmpvaW4oIiwiKX1mdW5jdGlvbiBnaShhLGIsYyl7Yz09PXZvaWQgMHx8Yz09PW51bGx8fGM9PT0iIiYmIXlnW2JdfHwoYVtiXT1jKX0KZnVuY3Rpb24gbWkoYSl7cmV0dXJuIHR5cGVvZiBhIT09Im51bWJlciImJnR5cGVvZiBhIT09InN0cmluZyI/IiI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBvaSgpe3RoaXMuYmxvY2tTaXplPS0xfTtmdW5jdGlvbiBwaShhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuTj1SYS5VaW50OEFycmF5P25ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTpBcnJheSh0aGlzLmJsb2NrU2l6ZSk7dGhpcy5SPXRoaXMuSz0wO3RoaXMuSD1bXTt0aGlzLmZhPWE7dGhpcy5aPWI7dGhpcy5qYT1SYS5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7cWk9PT12b2lkIDAmJihSYS5JbnQzMkFycmF5P3FpPW5ldyBJbnQzMkFycmF5KHJpKTpxaT1yaSk7dGhpcy5yZXNldCgpfVNhKHBpLG9pKTtmb3IodmFyIHNpPVtdLHRpPTA7dGk8NjM7dGkrKylzaVt0aV09MDt2YXIgdWk9W10uY29uY2F0KDEyOCxzaSk7CnBpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuUj10aGlzLks9MDt2YXIgYTtpZihSYS5JbnQzMkFycmF5KWE9bmV3IEludDMyQXJyYXkodGhpcy5aKTtlbHNle3ZhciBiPXRoaXMuWixjPWIubGVuZ3RoO2lmKGM+MCl7Zm9yKHZhciBkPUFycmF5KGMpLGU9MDtlPGM7ZSsrKWRbZV09YltlXTthPWR9ZWxzZSBhPVtdfXRoaXMuSD1hfTsKdmFyIHZpPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLk4sYz1hLmphLGQ9MCxlPTA7ZTxiLmxlbmd0aDspY1tkKytdPWJbZV08PDI0fGJbZSsxXTw8MTZ8YltlKzJdPDw4fGJbZSszXSxlPWQqNDtmb3IodmFyIGY9MTY7Zjw2NDtmKyspe3ZhciBnPWNbZi0xNV18MCxoPWNbZi0yXXwwO2NbZl09KChjW2YtMTZdfDApKygoZz4+Pjd8Zzw8MjUpXihnPj4+MTh8Zzw8MTQpXmc+Pj4zKXwwKSsoKGNbZi03XXwwKSsoKGg+Pj4xN3xoPDwxNSleKGg+Pj4xOXxoPDwxMyleaD4+PjEwKXwwKXwwfWZvcih2YXIgbD1hLkhbMF18MCxuPWEuSFsxXXwwLHA9YS5IWzJdfDAscT1hLkhbM118MCxyPWEuSFs0XXwwLHQ9YS5IWzVdfDAsdT1hLkhbNl18MCx2PWEuSFs3XXwwLHg9MDt4PDY0O3grKyl7dmFyIHk9KChsPj4+MnxsPDwzMCleKGw+Pj4xM3xsPDwxOSleKGw+Pj4yMnxsPDwxMCkpKyhsJm5ebCZwXm4mcCl8MCx6PSh2Kygocj4+PjZ8cjw8MjYpXihyPj4+MTF8cjw8MjEpXihyPj4+MjV8cjw8NykpfAowKSsoKChyJnRefnImdSkrKHFpW3hdfDApfDApKyhjW3hdfDApfDApfDA7dj11O3U9dDt0PXI7cj1xK3p8MDtxPXA7cD1uO249bDtsPXoreXwwfWEuSFswXT1hLkhbMF0rbHwwO2EuSFsxXT1hLkhbMV0rbnwwO2EuSFsyXT1hLkhbMl0rcHwwO2EuSFszXT1hLkhbM10rcXwwO2EuSFs0XT1hLkhbNF0rcnwwO2EuSFs1XT1hLkhbNV0rdHwwO2EuSFs2XT1hLkhbNl0rdXwwO2EuSFs3XT1hLkhbN10rdnwwfTsKcGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPWEubGVuZ3RoKTt2YXIgYz0wLGQ9dGhpcy5LO2lmKHR5cGVvZiBhPT09InN0cmluZyIpZm9yKDtjPGI7KXRoaXMuTltkKytdPWEuY2hhckNvZGVBdChjKyspLGQ9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKTtlbHNle3ZhciBlLGY9dHlwZW9mIGE7ZT1mIT0ib2JqZWN0Ij9mOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmY6Im51bGwiO2lmKGU9PSJhcnJheSJ8fGU9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKWZvcig7YzxiOyl7dmFyIGc9YVtjKytdO2lmKCEoIm51bWJlciI9PXR5cGVvZiBnJiYwPD1nJiYyNTU+PWcmJmc9PShnfDApKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuTltkKytdPWc7ZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsKfXRoaXMuSz1kO3RoaXMuUis9Yn07cGkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5SKjg7dGhpcy5LPDU2P3RoaXMudXBkYXRlKHVpLDU2LXRoaXMuSyk6dGhpcy51cGRhdGUodWksdGhpcy5ibG9ja1NpemUtKHRoaXMuSy01NikpO2Zvcih2YXIgYz02MztjPj01NjtjLS0pdGhpcy5OW2NdPWImMjU1LGIvPTI1Njt2aSh0aGlzKTtmb3IodmFyIGQ9MCxlPTA7ZTx0aGlzLmZhO2UrKylmb3IodmFyIGY9MjQ7Zj49MDtmLT04KWFbZCsrXT10aGlzLkhbZV0+PmYmMjU1O3JldHVybiBhfTsKdmFyIHJpPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsCjQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxxaTtmdW5jdGlvbiB3aSgpe3BpLmNhbGwodGhpcyw4LHhpKX1TYSh3aSxwaSk7dmFyIHhpPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07dmFyIHlpPS9eWzAtOUEtRmEtZl17NjR9JC87ZnVuY3Rpb24gemkoYSl7dHJ5e3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKX1jYXRjaChiKXtyZXR1cm4gWmIoYSl9fWZ1bmN0aW9uIEFpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3ZhciBjO2lmKChjPWIuY3J5cHRvKT09bnVsbD8wOmMuc3VidGxlKXtpZih5aS50ZXN0KGEpKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dHJ5e3ZhciBkPXppKGEpO3JldHVybiBiLmNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBCaShlLGIpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4iZTIifSl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTIiKX19ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMSIpfQpmdW5jdGlvbiBDaShhKXt0cnl7dmFyIGI9bmV3IHdpO2IudXBkYXRlKHppKGEpKTtyZXR1cm4gYi5kaWdlc3QoKX1jYXRjaChjKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBEaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCJ8fHlpLnRlc3QoYSkpcmV0dXJuIGE7dmFyIGM9Q2koYSk7aWYoYz09PSJlMiIpcmV0dXJuImUyIjt0cnl7cmV0dXJuIEJpKGMsYil9Y2F0Y2goZCl7cmV0dXJuImUyIn19ZnVuY3Rpb24gQmkoYSxiKXt2YXIgYz1BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZCl9KS5qb2luKCIiKTtyZXR1cm4gYi5idG9hKGMpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9O2Z1bmN0aW9uIEVpKCl7Zm9yKHZhciBhPSExLGI9ITEsYz0wO2E9PT1iOylpZihhPURiKDAsMSk9PT0wLGI9RGIoMCwxKT09PTAsYysrLGM+MzApcmV0dXJuO3JldHVybiBhfXZhciBHaT17c2s6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBGaS5zayhhLGIsYyl9fSxIaT1mdW5jdGlvbigpe3RoaXMuc3R1ZGllcz17fTt0aGlzLkg9RWl9OwpIaS5wcm90b3R5cGUuc2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuc3R1ZGllc1tiXTtpZighKChjPT09dm9pZCAwP0RiKDAsOTk5OSk6YyUxRTQpPGQucHJvYmFiaWxpdHkqKGQuY29udHJvbElkMj80OjIpKjFFNCkpcmV0dXJuIGE7YTp7dmFyIGU9ZC5zdHVkeUlkLGY9ZC5leHBlcmltZW50SWQsZz1kLmNvbnRyb2xJZCxoPWQuY29udHJvbElkMjtpZighKChhLmV4cHx8e30pW2ZdfHwoYS5leHB8fHt9KVtnXXx8aCYmKGEuZXhwfHx7fSlbaF0pKXt2YXIgbD1jIT09dm9pZCAwP2MlMj09PTA6dGhpcy5IKCk7aWYobCE9PXZvaWQgMCl7dmFyIG49bD8wOjE7aWYoaCl7dmFyIHA9YyE9PXZvaWQgMD8oYz4+MSklMj09PTA6dGhpcy5IKCk7aWYocD09PXZvaWQgMClicmVhayBhO258PShwPzA6MSk8PDF9bj09PTA/SWkoYSxmLGUpOm49PT0xP0lpKGEsZyxlKTpuPT09MiYmSWkoYSxoLGUpfX19cmV0dXJuIGF9Owp2YXIgS2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdP0ppKGMsYil8fCEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmV4cGVyaW1lbnRJZF06ITF9LExpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZCYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkXTohMX0sTWk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkMiYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkMl06ITF9LE5pPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEuZXhwfHx7fSxkPW0oT2JqZWN0LmtleXMoYykubWFwKE51bWJlcikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2lmKGNbZl09PT1iKXJldHVybiBmfX0sSmk9ZnVuY3Rpb24oYSwKYil7cmV0dXJuISFhLnN0dWRpZXNbYl0uYWN0aXZlfHxhLnN0dWRpZXNbYl0ucHJvYmFiaWxpdHk+LjV9LElpPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmV4cHx8e307ZFtiXT1jO2EuZXhwPWR9LEZpPW5ldyBIaTsKdmFyIFBpPWZ1bmN0aW9uKGEpe3JldHVybiBPaVthXX0sUmk9ZnVuY3Rpb24oYSl7cmV0dXJuIFFpW2FdfSxUaT1mdW5jdGlvbihhKXtyZXR1cm4gU2lbYV19LFVpPVtdLFNpPXsiXHgwMCI6IiYjMDsiLCciJzoiJnF1b3Q7IiwiJiI6IiZhbXA7IiwiJyI6IiYjMzk7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsIlx0IjoiJiM5OyIsIlxuIjoiJiMxMDsiLCJcdiI6IiYjMTE7IiwiXGYiOiImIzEyOyIsIlxyIjoiJiMxMzsiLCIgIjoiJiMzMjsiLCItIjoiJiM0NTsiLCIvIjoiJiM0NzsiLCI9IjoiJiM2MTsiLCJgIjoiJiM5NjsiLCJcdTAwODUiOiImIzEzMzsiLCJcdTAwYTAiOiImIzE2MDsiLCJcdTIwMjgiOiImIzgyMzI7IiwiXHUyMDI5IjoiJiM4MjMzOyJ9LFZpPS9bXHgwMFx4MjJceDI2XHgyN1x4M2NceDNlXS9nOwp2YXIgWmk9L1tceDAwXHgwOC1ceDBkXHgyMlx4MjZceDI3XC9ceDNjLVx4M2VcXFx4ODVcdTIwMjhcdTIwMjldL2csUWk9eyJceDAwIjoiXFx4MDAiLAoiXGIiOiJcXHgwOCIsIlx0IjoiXFx0IiwiXG4iOiJcXG4iLCJcdiI6IlxceDBiIiwiXGYiOiJcXGYiLCJcciI6IlxcciIsJyInOiJcXHgyMiIsIiYiOiJcXHgyNiIsIiciOiJcXHgyNyIsIi8iOiJcXC8iLCI8IjoiXFx4M2MiLCI9IjoiXFx4M2QiLCI+IjoiXFx4M2UiLCJcXCI6IlxcXFwiLCJcdTAwODUiOiJcXHg4NSIsIlx1MjAyOCI6IlxcdTIwMjgiLCJcdTIwMjkiOiJcXHUyMDI5IiwkOiJcXHgyNCIsIigiOiJcXHgyOCIsIikiOiJcXHgyOSIsIioiOiJcXHgyYSIsIisiOiJcXHgyYiIsIiwiOiJcXHgyYyIsIi0iOiJcXHgyZCIsIi4iOiJcXHgyZSIsIjoiOiJcXHgzYSIsIj8iOiJcXHgzZiIsIlsiOiJcXHg1YiIsIl0iOiJcXHg1ZCIsIl4iOiJcXHg1ZSIsInsiOiJcXHg3YiIsInwiOiJcXHg3YyIsIn0iOiJcXHg3ZCJ9OwpVaVs4XT1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiIgbnVsbCAiO3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpyZXR1cm4iICIrYSsiICI7ZGVmYXVsdDpyZXR1cm4iJyIrU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShaaSxSaSkrIicifX07dmFyIGdqPS9bXHgwMC0gXHgyMlx4MjctXHgyOVx4M2NceDNlXFxceDdiXHg3ZFx4N2ZceDg1XHhhMFx1MjAyOFx1MjAyOVx1ZmYwMVx1ZmYwM1x1ZmYwNFx1ZmYwNi1cdWZmMGNcdWZmMGZcdWZmMWFcdWZmMWJcdWZmMWRcdWZmMWZcdWZmMjBcdWZmM2JcdWZmM2RdL2csT2k9eyJceDAwIjoiJTAwIiwiXHUwMDAxIjoiJTAxIiwiXHUwMDAyIjoiJTAyIiwiXHUwMDAzIjoiJTAzIiwiXHUwMDA0IjoiJTA0IiwiXHUwMDA1IjoiJTA1IiwiXHUwMDA2IjoiJTA2IiwiXHUwMDA3IjoiJTA3IiwiXGIiOiIlMDgiLCJcdCI6IiUwOSIsIlxuIjoiJTBBIiwiXHYiOiIlMEIiLCJcZiI6IiUwQyIsIlxyIjoiJTBEIiwiXHUwMDBlIjoiJTBFIiwiXHUwMDBmIjoiJTBGIiwiXHUwMDEwIjoiJTEwIiwKIlx1MDAxMSI6IiUxMSIsIlx1MDAxMiI6IiUxMiIsIlx1MDAxMyI6IiUxMyIsIlx1MDAxNCI6IiUxNCIsIlx1MDAxNSI6IiUxNSIsIlx1MDAxNiI6IiUxNiIsIlx1MDAxNyI6IiUxNyIsIlx1MDAxOCI6IiUxOCIsIlx1MDAxOSI6IiUxOSIsIlx1MDAxYSI6IiUxQSIsIlx1MDAxYiI6IiUxQiIsIlx1MDAxYyI6IiUxQyIsIlx1MDAxZCI6IiUxRCIsIlx1MDAxZSI6IiUxRSIsIlx1MDAxZiI6IiUxRiIsIiAiOiIlMjAiLCciJzoiJTIyIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwiPCI6IiUzQyIsIj4iOiIlM0UiLCJcXCI6IiU1QyIsInsiOiIlN0IiLCJ9IjoiJTdEIiwiXHUwMDdmIjoiJTdGIiwiXHUwMDg1IjoiJUMyJTg1IiwiXHUwMGEwIjoiJUMyJUEwIiwiXHUyMDI4IjoiJUUyJTgwJUE4IiwiXHUyMDI5IjoiJUUyJTgwJUE5IiwiXHVmZjAxIjoiJUVGJUJDJTgxIiwiXHVmZjAzIjoiJUVGJUJDJTgzIiwiXHVmZjA0IjoiJUVGJUJDJTg0IiwiXHVmZjA2IjoiJUVGJUJDJTg2IiwKIlx1ZmYwNyI6IiVFRiVCQyU4NyIsIlx1ZmYwOCI6IiVFRiVCQyU4OCIsIlx1ZmYwOSI6IiVFRiVCQyU4OSIsIlx1ZmYwYSI6IiVFRiVCQyU4QSIsIlx1ZmYwYiI6IiVFRiVCQyU4QiIsIlx1ZmYwYyI6IiVFRiVCQyU4QyIsIlx1ZmYwZiI6IiVFRiVCQyU4RiIsIlx1ZmYxYSI6IiVFRiVCQyU5QSIsIlx1ZmYxYiI6IiVFRiVCQyU5QiIsIlx1ZmYxZCI6IiVFRiVCQyU5RCIsIlx1ZmYxZiI6IiVFRiVCQyU5RiIsIlx1ZmYyMCI6IiVFRiVCQyVBMCIsIlx1ZmYzYiI6IiVFRiVCQyVCQiIsIlx1ZmYzZCI6IiVFRiVCQyVCRCJ9O1VpWzE2XT1mdW5jdGlvbihhKXtyZXR1cm4gYX07dmFyIGlqPWZ1bmN0aW9uKCl7dGhpcy5IPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyfHx7fX0samo7ZnVuY3Rpb24ga2ooYSxiKXtsaigpO3ZhciBjPWpqO3JldHVybiBjLkhbYV09Yy5IW2FdfHxiKCl9ZnVuY3Rpb24gbWooYSl7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiBuaihhLGIpe2xqKCk7amouSFthXT1ifWZ1bmN0aW9uIG9qKGEpe3ZhciBiPUUoNSk7bGooKTt2YXIgYz1qajtjLkhbYl09Yy5IW2JdfHxhfWZ1bmN0aW9uIHBqKCl7dmFyIGE9RSgxOSk7bGooKTt2YXIgYj1qajtyZXR1cm4gYi5IW2FdPWIuSFthXXx8e319ZnVuY3Rpb24gcWooKXt2YXIgYT1FKDE5KTtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIHJqKCl7bGooKTt2YXIgYT1qaixiPWEuSC5zZXF1ZW5jZXx8MTthLkguc2VxdWVuY2U9YisxO3JldHVybiBifWZ1bmN0aW9uIGxqKCl7amp8fChqaj1uZXcgaWopfTt2YXIgc2o9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4gMDtjYXNlIDQ5MTpyZXR1cm4gMTI7Y2FzZSA0ODA6cmV0dXJuIDExO2Nhc2UgNDk5OnJldHVybiAxMDtjYXNlIDUwMDpyZXR1cm4gNjtjYXNlIDQyMTpyZXR1cm4gOTtjYXNlIDU2MTpyZXR1cm4gMTc7Y2FzZSA0ODI6cmV0dXJuIDE1O2Nhc2UgNTcwOnJldHVybiAxOTtjYXNlIDQ5NTpyZXR1cm4gMTM7Y2FzZSA1MTQ6cmV0dXJuIDE2O2Nhc2UgNTczOnJldHVybiAxODtjYXNlIDIzNTpyZXR1cm4gODtjYXNlIDUzOnJldHVybiAxO2Nhc2UgNTQ6cmV0dXJuIDI7Y2FzZSA1MjpyZXR1cm4gNDtjYXNlIDc1OnJldHVybiAzfX0sdGo9ZnVuY3Rpb24oYSxiKXthLk5bYl09ITA7dmFyIGM9c2ooYik7YyE9PXZvaWQgMCYmKFdmW2NdPSEwKX0sTT1mdW5jdGlvbihhKXtyZXR1cm4hIXVqLk5bYV19LHVqPW5ldyBmdW5jdGlvbigpe3RoaXMuTj1bXTt0aGlzLks9W107dGhpcy5IPVtdOwp0aih0aGlzLDEzMik7dmFyIGE9TmYoNiw2RTQpO1hmWzFdPWE7dmFyIGI9TmYoNywxKTtYZlszXT1iO3ZhciBjPU5mKDM1LDUwKTtYZlsyXT1jO3ZhciBkPU5mKDY5LDE3NzY0NDg5MjApO1hmWzRdPWQ7CnRqKHRoaXMsNDM1KTt0aih0aGlzLDE0MSk7Cn07dmFyIHZqPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBTZXQ7dGhpcy5LPW5ldyBTZXR9LHhqPWZ1bmN0aW9uKGEpe3ZhciBiPXdqLkg7YT1hPT09dm9pZCAwP1tdOmE7dmFyIGM9W10uY29uY2F0KHcoYi5IKSkuY29uY2F0KFtdLmNvbmNhdCh3KGIuSykpKS5jb25jYXQoYSk7Yy5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtZX0pO3JldHVybiBjfSx5aj1mdW5jdGlvbigpe3ZhciBhPVtdLmNvbmNhdCh3KHdqLkguSCkpO2Euc29ydChmdW5jdGlvbihiLGMpe3JldHVybiBiLWN9KTtyZXR1cm4gYX0semo9ZnVuY3Rpb24oKXt2YXIgYT13ai5ILGI9RSg0NCk7YS5IPW5ldyBTZXQ7aWYoYiE9PSIiKWZvcih2YXIgYz1tKGIuc3BsaXQoIn4iKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPU51bWJlcihkLnZhbHVlKTtpc05hTihlKXx8YS5ILmFkZChlKX19O3ZhciBBaj17fSxCaj17X19jbDoxLF9fZWNsOjEsX19laGw6MSxfX2V2bDoxLF9fZmFsOjEsX19maWw6MSxfX2ZzbDoxLF9faGw6MSxfX2plbDoxLF9fbGNsOjEsX19zZGw6MSxfX3RsOjEsX195dGw6MX0sQ2o9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7X19wYXVzZWQ6MSxfX3RnOjF9LEJqKSxEaixFaj0hMTtEaj1Fajt2YXIgRmo9IiI7QWoucWo9Rmo7dmFyIHdqPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1uZXcgdmp9O3ZhciBHaj0vOlswLTldKyQvLEhqPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLztmdW5jdGlvbiBJaihhLGIsYyxkKXt2YXIgZT1KaihhLCEhZCxiKSxmLGc7cmV0dXJuIGM/KGc9ZVtiXSkhPW51bGw/ZzpbXTooZj1lW2JdKT09bnVsbD92b2lkIDA6ZlswXX1mdW5jdGlvbiBKaihhLGIsYyl7Zm9yKHZhciBkPXt9LGU9bShhLnNwbGl0KCImIikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUuc3BsaXQoIj0iKSksaD1nLm5leHQoKS52YWx1ZSxsPXlhKGcpLG49ZGVjb2RlVVJJQ29tcG9uZW50KGgucmVwbGFjZSgvXCsvZywiICIpKTtpZihjPT09dm9pZCAwfHxuPT09Yyl7dmFyIHA9bC5qb2luKCI9Iik7ZFtuXXx8KGRbbl09W10pO2Rbbl0ucHVzaChiP3A6ZGVjb2RlVVJJQ29tcG9uZW50KHAucmVwbGFjZSgvXCsvZywiICIpKSl9fXJldHVybiBkfQpmdW5jdGlvbiBLaihhKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChiKXt9fWZ1bmN0aW9uIExqKGEsYixjLGQsZSl7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO2lmKGI9PT0icHJvdG9jb2wifHxiPT09InBvcnQiKWEucHJvdG9jb2w9TWooYS5wcm90b2NvbCl8fE1qKEEubG9jYXRpb24ucHJvdG9jb2wpO2I9PT0icG9ydCI/YS5wb3J0PVN0cmluZyhOdW1iZXIoYS5ob3N0bmFtZT9hLnBvcnQ6QS5sb2NhdGlvbi5wb3J0KXx8KGEucHJvdG9jb2w9PT0iaHR0cCI/ODA6YS5wcm90b2NvbD09PSJodHRwcyI/NDQzOiIiKSk6Yj09PSJob3N0IiYmKGEuaG9zdG5hbWU9KGEuaG9zdG5hbWV8fEEubG9jYXRpb24uaG9zdG5hbWUpLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBOaihhLGIsYyxkLGUpfQpmdW5jdGlvbiBOaihhLGIsYyxkLGUpe3ZhciBmLGc9TWooYS5wcm90b2NvbCk7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO3N3aXRjaChiKXtjYXNlICJ1cmxfbm9fZnJhZ21lbnQiOmY9T2ooYSk7YnJlYWs7Y2FzZSAicHJvdG9jb2wiOmY9ZzticmVhaztjYXNlICJob3N0IjpmPWEuaG9zdG5hbWUucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKTtpZihjKXt2YXIgaD0vXnd3d1xkKlwuLy5leGVjKGYpO2gmJmhbMF0mJihmPWYuc3Vic3RyaW5nKGhbMF0ubGVuZ3RoKSl9YnJlYWs7Y2FzZSAicG9ydCI6Zj1TdHJpbmcoTnVtYmVyKGEucG9ydCl8fChnPT09Imh0dHAiPzgwOmc9PT0iaHR0cHMiPzQ0MzoiIikpO2JyZWFrO2Nhc2UgInBhdGgiOmEucGF0aG5hbWV8fGEuaG9zdG5hbWV8fHNiKCJUQUdHSU5HIiwxKTtmPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsMSk9PT0iLyI/YS5wYXRobmFtZToiLyIrYS5wYXRobmFtZTt2YXIgbD1mLnNwbGl0KCIvIik7KGR8fFtdKS5pbmRleE9mKGxbbC5sZW5ndGgtCjFdKT49MCYmKGxbbC5sZW5ndGgtMV09IiIpO2Y9bC5qb2luKCIvIik7YnJlYWs7Y2FzZSAicXVlcnkiOmY9YS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpO2UmJihmPUlqKGYsZSwhMSkpO2JyZWFrO2Nhc2UgImV4dGVuc2lvbiI6dmFyIG49YS5wYXRobmFtZS5zcGxpdCgiLiIpO2Y9bi5sZW5ndGg+MT9uW24ubGVuZ3RoLTFdOiIiO2Y9Zi5zcGxpdCgiLyIpWzBdO2JyZWFrO2Nhc2UgImZyYWdtZW50IjpmPWEuaGFzaC5yZXBsYWNlKCIjIiwiIik7YnJlYWs7ZGVmYXVsdDpmPWEmJmEuaHJlZn1yZXR1cm4gZn1mdW5jdGlvbiBNaihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoIjoiLCIiKS50b0xvd2VyQ2FzZSgpOiIifWZ1bmN0aW9uIE9qKGEpe3ZhciBiPSIiO2lmKGEmJmEuaHJlZil7dmFyIGM9YS5ocmVmLmluZGV4T2YoIiMiKTtiPWM8MD9hLmhyZWY6YS5ocmVmLnN1YnN0cmluZygwLGMpfXJldHVybiBifXZhciBQaj17fSxRaj0wOwpmdW5jdGlvbiBSaihhKXt2YXIgYj1QalthXTtpZighYil7dmFyIGM9Qi5jcmVhdGVFbGVtZW50KCJhIik7YSYmKGMuaHJlZj1hKTt2YXIgZD1jLnBhdGhuYW1lO2RbMF0hPT0iLyImJihhfHxzYigiVEFHR0lORyIsMSksZD0iLyIrZCk7dmFyIGU9Yy5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKTtiPXtocmVmOmMuaHJlZixwcm90b2NvbDpjLnByb3RvY29sLGhvc3Q6Yy5ob3N0LGhvc3RuYW1lOmUscGF0aG5hbWU6ZCxzZWFyY2g6Yy5zZWFyY2gsaGFzaDpjLmhhc2gscG9ydDpjLnBvcnR9O1FqPDUmJihQalthXT1iLFFqKyspfXJldHVybiBifWZ1bmN0aW9uIFNqKGEsYixjKXt2YXIgZD1SaihhKTtyZXR1cm4gYWMoYixkLGMpfQpmdW5jdGlvbiBUaihhKXt2YXIgYj1SaihBLmxvY2F0aW9uLmhyZWYpLGM9TGooYiwiaG9zdCIsITEpO2lmKGMmJmMubWF0Y2goSGopKXt2YXIgZD1MaihiLCJwYXRoIik7aWYoZCl7dmFyIGU9ZC5zcGxpdChhKyI9Iik7aWYoZS5sZW5ndGg+MSlyZXR1cm4gZVsxXS5zcGxpdCgiOyIpWzBdLnNwbGl0KCI/IilbMF19fX07dmFyIFVqPXsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSI6Ii9nIiwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iOiIvYXMiLCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIjoiL2dzIn0sVmo9WyIvYXMvZC9jY20vY29udmVyc2lvbiIsIi9nL2QvY2NtL2NvbnZlcnNpb24iLCIvZ3MvY2NtL2NvbnZlcnNpb24iLCIvZC9jY20vZm9ybS1kYXRhIl07ZnVuY3Rpb24gV2ooKXtyZXR1cm4gSWYoNDcpP0pmKDU0KSE9PTE6ITF9ZnVuY3Rpb24gWGooKXt2YXIgYT1FKDE4KSxiPWEubGVuZ3RoO3JldHVybiBhW2ItMV09PT0iLyI/YS5zdWJzdHJpbmcoMCxiLTEpOmF9CmZ1bmN0aW9uIFlqKGEsYil7aWYoYSl7dmFyIGM9IiIrYTtjLmluZGV4T2YoImh0dHA6Ly8iKSE9PTAmJmMuaW5kZXhPZigiaHR0cHM6Ly8iKSE9PTAmJihjPSJodHRwczovLyIrYyk7Y1tjLmxlbmd0aC0xXT09PSIvIiYmKGM9Yy5zdWJzdHJpbmcoMCxjLmxlbmd0aC0xKSk7cmV0dXJuIFJqKCIiK2MrYikuaHJlZn19ZnVuY3Rpb24gWmooYSl7aWYoYWsoKSlyZXR1cm4gWWooYSwiL2FuYWx5dGljcy5qcyIpfWZ1bmN0aW9uIGJrKGEpe3JldHVybiBhPT09Mnx8YT09PTN9ZnVuY3Rpb24gY2soYSl7cmV0dXJuIE0oNTg4KSYmYT09PTN9ZnVuY3Rpb24gYWsoKXtyZXR1cm4gV2ooKXx8SWYoNTApfWZ1bmN0aW9uIGRrKCl7cmV0dXJuISFBai5xaiYmQWoucWouc3BsaXQoIkBAIikuam9pbigiIikhPT0iU0dUTV9UT0tFTiJ9CmZ1bmN0aW9uIGVrKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPU8oYSxjLnZhbHVlKTtpZihkKXJldHVybiBkfX1mdW5jdGlvbiBmayhhLGIsYyl7Yz1jPT09dm9pZCAwPyIiOmM7aWYoIVdqKCkpcmV0dXJuIGE7dmFyIGQ9Yj9ValthXXx8IiI6IiI7ZD09PSIvZ3MiJiYoYz0iIik7cmV0dXJuIiIrWGooKStkK2N9ZnVuY3Rpb24gZ2soYSl7aWYoV2ooKSlmb3IodmFyIGI9bShWaiksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoU2IoYSwiIitYaigpK2QpKXJldHVybiI6OiJ9fQpmdW5jdGlvbiBoaygpe3ZhciBhPUE7aWYoIWEpcmV0dXJuITE7dHJ5e2lmKGE9PT1hLnRvcClyZXR1cm4hMTt2YXIgYj1hLmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiBiLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyLyIpIT09LTEmJlRiKGIsIi9zd19pZnJhbWUuaHRtbCIpfWNhdGNoKGMpe3JldHVybiExfX07dmFyIGlrPS9ndGFnWy5cL11qcy8sams9L2d0bVsuXC9danMvLGxrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrO2lmKChhLnNjcmlwdENvbnRhaW5lcklkfHwiIikuaW5kZXhPZigiR1RNLSIpPj0wKXt2YXIgYzthOnt2YXIgZCxlPShkPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmQuc3JjO2lmKGUpe2Zvcih2YXIgZj1JZig0NyksZz1SaihlKSxoPWY/Zy5wYXRobmFtZToiIitnLmhvc3RuYW1lK2cucGF0aG5hbWUsbD1CLnNjcmlwdHMsbj0iIixwPTA7cDxsLmxlbmd0aDsrK3Ape3ZhciBxPWxbcF07aWYoIShxLmlubmVySFRNTC5sZW5ndGg9PT0wfHwhZiYmcS5pbm5lckhUTUwuaW5kZXhPZihhLnNjcmlwdENvbnRhaW5lcklkfHwiU0hPVUxEX05PVF9CRV9TRVQiKTwwfHxxLmlubmVySFRNTC5pbmRleE9mKGgpPDApKXtpZihxLmlubmVySFRNTC5pbmRleE9mKCIoZnVuY3Rpb24odyxkLHMsbCxpKSIpPj0wKXtjPVN0cmluZyhwKTticmVhayBhfW49U3RyaW5nKHApfX1pZihuKXtjPQpuO2JyZWFrIGF9fWM9dm9pZCAwfXZhciByPWM7aWYocilyZXR1cm4gYi5IPSEwLHJ9dmFyIHQ9W10uc2xpY2UuY2FsbChCLnNjcmlwdHMpO3JldHVybiBhLnNjcmlwdEVsZW1lbnQ/U3RyaW5nKHQuaW5kZXhPZihhLnNjcmlwdEVsZW1lbnQpKToiLTEifSxtaz1mdW5jdGlvbihhKXtpZihray5IKXJldHVybiIxIjt2YXIgYixjPShiPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmIuc3JjO2lmKGMpe2lmKGlrLnRlc3QoYykpcmV0dXJuIjMiO2lmKGprLnRlc3QoYykpcmV0dXJuIjIifXJldHVybiIwIn0sa2s9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTtmdW5jdGlvbiBQKGEpe3NiKCJHVE0iLGEpfTtmdW5jdGlvbiBuayhhKXt2YXIgYj1vaygpLmRlc3RpbmF0aW9uQXJyYXlbYV0sYz1vaygpLmRlc3RpbmF0aW9uW2FdO3JldHVybiBiJiZiLmxlbmd0aD4wP2JbMF06Y31mdW5jdGlvbiBwayhhLGIpe3ZhciBjPW9rKCk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtDYihjLnBlbmRpbmcsZnVuY3Rpb24oZCl7cmV0dXJuIGQudGFyZ2V0LmN0aWQ9PT1hLmN0aWQmJmQudGFyZ2V0LmlzRGVzdGluYXRpb249PT1hLmlzRGVzdGluYXRpb259KXx8Yy5wZW5kaW5nLnB1c2goe3RhcmdldDphLG9uTG9hZDpifSl9ZnVuY3Rpb24gcWsoKXt2YXIgYT1BLmdvb2dsZV90YWdzX2ZpcnN0X3BhcnR5O0FycmF5LmlzQXJyYXkoYSl8fChhPVtdKTtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIE9iamVjdC5mcmVlemUoYil9CnZhciByaz1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuZGVzdGluYXRpb249e307dGhpcy5kZXN0aW5hdGlvbkFycmF5PXt9O3RoaXMuY2Fub25pY2FsPXt9O3RoaXMucGVuZGluZz1bXTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9e307dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCl9OwpmdW5jdGlvbiBvaygpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEudGlkcjtiJiZ0eXBlb2YgYj09PSJvYmplY3QifHwoYj1uZXcgcmssYS50aWRyPWIpO3ZhciBjPWI7Yy5jb250YWluZXJ8fChjLmNvbnRhaW5lcj17fSk7Yy5kZXN0aW5hdGlvbnx8KGMuZGVzdGluYXRpb249e30pO2MuZGVzdGluYXRpb25BcnJheXx8KGMuZGVzdGluYXRpb25BcnJheT17fSk7Yy5jYW5vbmljYWx8fChjLmNhbm9uaWNhbD17fSk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnN8fChjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHNrKCl7cmV0dXJuIElmKDcpJiZ0aygpLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1FKDUpfSl9ZnVuY3Rpb24gdWsoKXt2YXIgYTtyZXR1cm4oYT1LZig1NSkpIT1udWxsP2E6W119ZnVuY3Rpb24gdmsoKXtyZXR1cm4gRSg2KXx8Il8iK0UoNSl9ZnVuY3Rpb24gd2soKXt2YXIgYT1FKDEwKTtyZXR1cm4gYT9hLnNwbGl0KCJ8Iik6W0UoNSldfWZ1bmN0aW9uIHRrKCl7dmFyIGE9S2YoNTkpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2EuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmcifSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmluZGV4T2YoIkdUTS0iKSE9PTB9KTpbXX1mdW5jdGlvbiB4aygpe3ZhciBhPXlrKHprKCkpLGI9YSYmYS5wYXJlbnQ7aWYoYilyZXR1cm4geWsoYil9CmZ1bmN0aW9uIEFrKCl7dmFyIGE9eWsoemsoKSk7aWYoYSl7Zm9yKDthLnBhcmVudDspe3ZhciBiPXlrKGEucGFyZW50KTtpZighYilicmVhazthPWJ9cmV0dXJuIGF9fWZ1bmN0aW9uIHlrKGEpe3ZhciBiPW9rKCk7cmV0dXJuIGEuaXNEZXN0aW5hdGlvbj9uayhhLmN0aWQpOmIuY29udGFpbmVyW2EuY3RpZF19ZnVuY3Rpb24gQmsoKXt2YXIgYT1vaygpO2lmKGEucGVuZGluZyl7Zm9yKHZhciBiLGM9W10sZD0hMSxlPXdrKCksZj10aygpLGc9e30saD0wO2g8YS5wZW5kaW5nLmxlbmd0aDtnPXtSZzp2b2lkIDB9LGgrKylnLlJnPWEucGVuZGluZ1toXSxDYihnLlJnLnRhcmdldC5pc0Rlc3RpbmF0aW9uP2Y6ZSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG49PT1sLlJnLnRhcmdldC5jdGlkfX0oZykpP2R8fChiPWcuUmcub25Mb2FkLGQ9ITApOmMucHVzaChnLlJnKTthLnBlbmRpbmc9YztpZihiKXRyeXtiKHZrKCkpfWNhdGNoKGwpe319fQpmdW5jdGlvbiBDaygpe2Zvcih2YXIgYT1FKDUpLGI9d2soKSxjPXRrKCksZD11aygpLGU9ZnVuY3Rpb24ocSxyKXt2YXIgdD17Y2Fub25pY2FsQ29udGFpbmVySWQ6RSg2KSxzY3JpcHRDb250YWluZXJJZDphLHN0YXRlOjIsY29udGFpbmVyczpiLnNsaWNlKCksZGVzdGluYXRpb25zOmMuc2xpY2UoKX07SmMmJih0LnNjcmlwdEVsZW1lbnQ9SmMpO0tjJiYodC5zY3JpcHRTb3VyY2U9S2MpO3hrKCk9PT12b2lkIDAmJih0Lmh0bWxMb2FkT3JkZXI9bGsodCksdC5sb2FkU2NyaXB0VHlwZT1tayh0KSk7dmFyIHUsdjtzd2l0Y2gocil7Y2FzZSAwOnU9ZnVuY3Rpb24oeil7Zi5jb250YWluZXJbcV09en07dj1mLmNvbnRhaW5lcltxXTticmVhaztjYXNlIDE6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0udW5zaGlmdCh6KX07dmFyIHgseT0oKHg9Zi5kZXN0aW5hdGlvbkFycmF5W3FdKT09Cm51bGw/dm9pZCAwOnhbMF0pfHxmLmRlc3RpbmF0aW9uW3FdOyF5fHx5LnN0YXRlIT09MCYmeS5zdGF0ZSE9PTF8fCh2PXkpO2JyZWFrO2Nhc2UgMjp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS5wdXNoKHopfSx2PXZvaWQgMH11JiYodj8odi5zdGF0ZT09PTAmJlAoOTMpLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qsdix0KSk6dSh0KSl9LGY9b2soKSxnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpZShoLnZhbHVlLDApO2Zvcih2YXIgbD1tKGMpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2QuaW5jbHVkZXMocCk/ZShwLDEpOmUocCwyKX1mLmNhbm9uaWNhbFt2aygpXT17fTtCaygpfWZ1bmN0aW9uIERrKCl7dmFyIGE9dmsoKTtyZXR1cm4hIW9rKCkuY2Fub25pY2FsW2FdfQpmdW5jdGlvbiBFayhhKXtyZXR1cm4hIW9rKCkuY29udGFpbmVyW2FdfWZ1bmN0aW9uIEZrKCl7dmFyIGE9emsoKSxiPXlrKGEpO3JldHVybiBiJiZiLmNvbnRleHR9ZnVuY3Rpb24gR2soYSl7dmFyIGI9bmsoYSk7cmV0dXJuIGI/Yi5zdGF0ZSE9PTA6ITF9ZnVuY3Rpb24gemsoKXtyZXR1cm57Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246SWYoNyl9fWZ1bmN0aW9uIEhrKGEsYixjKXt2YXIgZD16aygpLGU9b2soKS5jb250YWluZXJbYV07ZSYmZS5zdGF0ZSE9PTN8fChvaygpLmNvbnRhaW5lclthXT17c3RhdGU6MSxjb250ZXh0OmIscGFyZW50OmR9LHBrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMX0sYykpfWZ1bmN0aW9uIElrKGEsYixjKXt2YXIgZD1vaygpLGU9bmsoYSk7ZT9lLnN0YXRlPTE6KGU9e2NvbnRleHQ6YixzdGF0ZToxLHBhcmVudDp6aygpfSxkLmRlc3RpbmF0aW9uQXJyYXlbYV09W2VdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGMpfQpmdW5jdGlvbiBKayhhLGIsYyxkKXt2YXIgZT1vaygpLGY9bmsoYSk7Zj9mLnN0YXRlPTA6KGY9e3N0YXRlOjAsdHJhbnNwb3J0VXJsOmIsY29udGV4dDpjLHBhcmVudDp6aygpfSxlLmRlc3RpbmF0aW9uQXJyYXlbYV09W2ZdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGQpO1AoOTEpfWZ1bmN0aW9uIEtrKCl7dmFyIGE9b2soKS5jb250YWluZXIsYjtmb3IoYiBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkoYikmJmFbYl0uc3RhdGU9PT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIExrKCl7dmFyIGE9e307R2Iob2soKS5kZXN0aW5hdGlvbixmdW5jdGlvbihiLGMpeyhjPT1udWxsP3ZvaWQgMDpjLnN0YXRlKT09PTAmJihhW2JdPWMpfSk7R2Iob2soKS5kZXN0aW5hdGlvbkFycmF5LGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Y1swXTsoZD09bnVsbD92b2lkIDA6ZC5zdGF0ZSk9PT0wJiYoYVtiXT1kKX0pO3JldHVybiBhfQpmdW5jdGlvbiBNayhhKXtyZXR1cm4hIShhJiZhLnBhcmVudCYmYS5jb250ZXh0JiZhLmNvbnRleHQuc291cmNlPT09MSYmYS5wYXJlbnQuY3RpZC5pbmRleE9mKCJHVE0tIikhPT0wKX1mdW5jdGlvbiBOaygpe2Zvcih2YXIgYT1vaygpLGI9bSh3aygpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihhLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnNbYy52YWx1ZV0pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBPaz1mdW5jdGlvbigpe307T2sucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCJ9O3ZhciBQaz1uZXcgT2s7CnZhciBTaz1mdW5jdGlvbihhLGIsYyl7YSBpbnN0YW5jZW9mIFFrJiYoYT1hLnJlc29sdmUoUmsuTihiLGMpKSxiPXhiKTtyZXR1cm57d3M6YSxvblN1Y2Nlc3M6Yn19LFVrPWZ1bmN0aW9uKGEpe1JrfHwoUms9bmV3IFRrKTtyZXR1cm4gUmsuSyhhKX0sVms9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTtraigicm0iLGZ1bmN0aW9uKCl7cmV0dXJue319KVt2aygpXT1mdW5jdGlvbihiKXtpZihhLkguaGFzT3duUHJvcGVydHkoYikpcmV0dXJuIGEuSFtiXX19O1ZrLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKGE9PT1QaylyZXR1cm4gYTt2YXIgYj1yaigpO3RoaXMuSFtiXT1hO3JldHVybidnb29nbGVfdGFnX21hbmFnZXJbInJtIl1bIicrdmsoKSsnIl0oJytiKyIpIn07dmFyIFdrLFFrPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWVPZj10aGlzLnRvU3RyaW5nO3RoaXMucmVzb2x2ZT1mdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdPT09ClBrP2I6YVtkXSk7cmV0dXJuIGMuam9pbigiIil9fTtRay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlKCJ1bmRlZmluZWQiKX07dmFyIFRrPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtUay5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPVN0cmluZyhyaigpKTt0aGlzLkhbY109W2EsYl07cmV0dXJuIGN9O1RrLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1hPzA6MTtyZXR1cm4gZnVuY3Rpb24oZCl7UChhPzEzNDoxMzUpO3ZhciBlPWIuSFtkXTtpZihlJiZ0eXBlb2YgZVtjXT09PSJmdW5jdGlvbiIpZVtjXSgpO2IuSFtkXT12b2lkIDB9fTt2YXIgUms7dmFyIFhrPWZ1bmN0aW9uKCl7dGhpcy5zdG9yYWdlPVlhKCl9O1hrLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKX07WGsucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTt2YXIgWWs7ZnVuY3Rpb24gWmsoYSxiKXtZa3x8KFlrPW5ldyBYayk7WWsuc2V0KGEsYil9ZnVuY3Rpb24gJGsoYSl7WWt8fChZaz1uZXcgWGspO3JldHVybiBZay5nZXQoYSl9ZnVuY3Rpb24gYWwoYSxiKXtZa3x8KFlrPW5ldyBYayk7dmFyIGM9WWs7Yy5zdG9yYWdlLmhhcyhTdHJpbmcoYSkpfHxjLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKCkpO3JldHVybiBjLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O2Z1bmN0aW9uIGJsKGEsYil7ZnVuY3Rpb24gYyhnKXt2YXIgaD1SaihnKSxsPUxqKGgsInByb3RvY29sIiksbj1MaihoLCJob3N0IiwhMCkscD1MaihoLCJwb3J0IikscT1MaihoLCJwYXRoIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihsPT09dm9pZCAwfHxsPT09Imh0dHAiJiZwPT09IjgwInx8bD09PSJodHRwcyImJnA9PT0iNDQzIilsPSJ3ZWIiLHA9ImRlZmF1bHQiO3JldHVybltsLG4scCxxXX1mb3IodmFyIGQ9YyhTdHJpbmcoYSkpLGU9YyhTdHJpbmcoYikpLGY9MDtmPGQubGVuZ3RoO2YrKylpZihkW2ZdIT09ZVtmXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBjbChhKXtyZXR1cm4gZGwoYSk/MTowfQpmdW5jdGlvbiBkbChhKXt2YXIgYj1hLmFyZzAsYz1hLmFyZzE7aWYoYS5hbnlfb2YmJkFycmF5LmlzQXJyYXkoYykpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1FZChhLHt9KTtFZCh7YXJnMTpjW2RdLGFueV9vZjp2b2lkIDB9LGUpO2lmKGNsKGUpKXJldHVybiEwfXJldHVybiExfXN3aXRjaChhWyJmdW5jdGlvbiJdKXtjYXNlICJfY24iOnJldHVybiBLZyhiLGMpO2Nhc2UgIl9jc3MiOnJldHVybiBHZyhiLGMpO2Nhc2UgIl9ldyI6cmV0dXJuIEhnKGIsYyk7Y2FzZSAiX2VxIjpyZXR1cm4gTGcoYixjKTtjYXNlICJfZ2UiOnJldHVybiBNZyhiLGMpO2Nhc2UgIl9ndCI6cmV0dXJuIE9nKGIsYyk7Y2FzZSAiX2xjIjpyZXR1cm4gSWcoYixjKTtjYXNlICJfbGUiOnJldHVybiBOZyhiLGMpO2Nhc2UgIl9sdCI6cmV0dXJuIFBnKGIsYyk7Y2FzZSAiX3JlIjpyZXR1cm4gSmcoYixjLGEuaWdub3JlX2Nhc2UsYWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSkpO2Nhc2UgIl9zdyI6cmV0dXJuIFFnKGIsCmMpO2Nhc2UgIl91bSI6cmV0dXJuIGJsKGIsYyl9cmV0dXJuITF9O2Z1bmN0aW9uIGVsKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGY7c3dpdGNoKGFbMF0pe2Nhc2UgImZ1bmN0aW9uX2lkIjpyZXR1cm4gYVsxXTtjYXNlICJsaXN0IjpmPVtdO2Zvcih2YXIgZz0xO2c8YS5sZW5ndGg7ZysrKWYucHVzaChlbChhW2ddLGIsYyxkLGUpKTtyZXR1cm4gZjtjYXNlICJtYWNybyI6dmFyIGg9ZFthWzFdXTtyZXR1cm4gaD9oLmV2YWx1YXRlKGIsZSk6dm9pZCAwO2Nhc2UgIm1hcCI6Zj17fTtmb3IodmFyIGw9MTtsPGEubGVuZ3RoO2wrPTIpZltlbChhW2xdLGIsYyxkLGUpXT1lbChhW2wrMV0sYixjLGQsZSk7cmV0dXJuIGY7Y2FzZSAidGVtcGxhdGUiOmY9W107Zm9yKHZhciBuPSExLHA9MTtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9ZWwoYVtwXSxiLGMsZCxlKTtuPW58fHE9PT1QaztmLnB1c2gocSl9CmlmKG4pcmV0dXJuIG5ldyBRayhmKTtyZXR1cm4gZi5qb2luKCIiKTtjYXNlICJlc2NhcGUiOmY9ZWwoYVsxXSxiLGMsZCxlKTt2YXIgcjtpZihyPUFycmF5LmlzQXJyYXkoYVsxXSkmJmFbMV1bMF09PT0ibWFjcm8iKXtmb3IodmFyIHQ9ITEsdT0hMSx2PTI7djxhLmxlbmd0aDt2KyspdD10fHxhW3ZdPT09OCx1PXV8fGFbdl09PT0xNjtyPXQmJnV9aWYocil7dmFyIHg9ZjtXa3x8KFdrPW5ldyBWayk7cmV0dXJuIFdrLksoeCl9Zj1TdHJpbmcoZik7Zm9yKHZhciB5PTI7eTxhLmxlbmd0aDt5KyspVWlbYVt5XV0mJihmPVVpW2FbeV1dKGYpKTtyZXR1cm4gZjtjYXNlICJ0YWciOnZhciB6PWFbMV07aWYoIWNbel0pdGhyb3cgRXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIHRhZyByZWZlcmVuY2UgIisKeisiLiIpO3JldHVybntibzphWzJdLGluZGV4Onp9O2Nhc2UgInpiIjp2YXIgQz17fSxEPShDW0dmLlliXT1hWzFdLEMuYXJnMD1lbChhWzJdLGIsYyxkLGUpLEMuYXJnMT1lbChhWzNdLGIsYyxkLGUpLEMuaWdub3JlX2Nhc2U9ZWwoYVs1XSxiLGMsZCxlKSxDKSxJPWNsKEQpLEc9ISFhWzRdO3JldHVybiBHfHxJIT09Mj9HIT09KEk9PT0xKTpudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhwYW5kIHVua25vd24gVmFsdWUgdHlwZTogIithWzBdKyIuIik7fX1yZXR1cm4gYX07ZnVuY3Rpb24gZmwoYSl7cmV0dXJuIGEmJmEuaW5kZXhPZigicGVuZGluZzoiKT09PTA/Z2woYS5zdWJzdHIoOCkpOiExfWZ1bmN0aW9uIGdsKGEpe2lmKGE9PW51bGx8fGEubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgYj1OdW1iZXIoYSksYz1OYigpO3JldHVybiBiPGMrM0U1JiZiPmMtOUU1fTt2YXIgaGw9ITEsaWw9ITEsamw9ITEsa2w9MCxsbD0hMSxtbD12b2lkIDAsbmw9W107ZnVuY3Rpb24gb2woYSl7aWYoa2w9PT0wKWxsJiZubCYmKG5sLmxlbmd0aD49MTAwJiZubC5zaGlmdCgpLG5sLnB1c2goYSkpO2Vsc2UgaWYocGwoKSl7dmFyIGI9RSg0MSksYz1NYyhiLFtdKTtjLmxlbmd0aD49NTAmJmMuc2hpZnQoKTtjLnB1c2goYSl9fWZ1bmN0aW9uIHFsKCl7aWx8fChybCgpLHNsKGtsKSl9ZnVuY3Rpb24gc2woYSl7aWYoIWlsfHxrbD09PTImJmE9PT0xKWlmKGlsPSEwLGpsJiYoYWQoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsKSxqbD0hMSksbWwhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dChtbCksbWw9dm9pZCAwKSxrbD1hLGE9PT0xKXt2YXIgYj1ubDtubD12b2lkIDA7Yj09bnVsbHx8Yi5mb3JFYWNoKGZ1bmN0aW9uKGMpe29sKGMpfSl9fQpmdW5jdGlvbiBybCgpe3ZhciBhPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByb2QtcHJlc2VudCIpO2dsKGEpP2tsPTE6IWZsKGEpfHxobHx8amw/a2w9Mjooamw9ITAsJGMoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsLCExKSxtbD1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbHx8KHJsKCksc2woa2wpKTtobD0hMH0sMjAwKSl9ZnVuY3Rpb24gcGwoKXtpZighbGwpcmV0dXJuITE7c3dpdGNoKGtsKXtjYXNlIDE6Y2FzZSAwOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gdGwoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7cmV0dXJuIGEuaWNzPWEuaWNzfHxuZXcgdWx9dmFyIHVsPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPXt9O3RoaXMud2FpdFBlcmlvZFRpbWVkT3V0PXRoaXMud2FzU2V0TGF0ZT10aGlzLmFjY2Vzc2VkQW55PXRoaXMuYWNjZXNzZWREZWZhdWx0PXRoaXMudXNlZEltcGxpY2l0PXRoaXMudXNlZFVwZGF0ZT10aGlzLnVzZWREZWZhdWx0PXRoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITE7dGhpcy5IPVtdfTsKdWwucHJvdG90eXBlLmRlZmF1bHQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8IXRoaXMuYWNjZXNzZWREZWZhdWx0JiYhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkRGVmYXVsdD10aGlzLmFjdGl2ZT0hMDtzYigiVEFHR0lORyIsMTkpO2I9PW51bGw/c2IoIlRBR0dJTkciLDE4KTp2bCh0aGlzLGEsYj09PSJncmFudGVkIixjLGQsZSxmLGcpfTt1bC5wcm90b3R5cGUud2FpdEZvclVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspdmwodGhpcyxhW2RdLHZvaWQgMCx2b2lkIDAsIiIsIiIsYixjKX07CnZhciB2bD1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPWEuZW50cmllcyxuPWxbYl18fHt9LHA9bi5yZWdpb24scT1kJiZ6YihkKT9kLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2U9ZS50b1VwcGVyQ2FzZSgpO2Y9Zi50b1VwcGVyQ2FzZSgpO2lmKGU9PT0iInx8cT09PWZ8fChxPT09ZT9wIT09ZjohcSYmIXApKXt2YXIgcj0hIShnJiZnPjAmJm4udXBkYXRlPT09dm9pZCAwKSx0PXtyZWdpb246cSxkZWNsYXJlX3JlZ2lvbjpuLmRlY2xhcmVfcmVnaW9uLGltcGxpY2l0Om4uaW1wbGljaXQsZGVmYXVsdDpjIT09dm9pZCAwP2M6bi5kZWZhdWx0LGRlY2xhcmU6bi5kZWNsYXJlLHVwZGF0ZTpuLnVwZGF0ZSxxdWlldDpyfTtpZihlIT09IiJ8fG4uZGVmYXVsdCE9PSExKWxbYl09dDtyJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsW2JdPT09dCYmdC5xdWlldCYmKHNiKCJUQUdHSU5HIiwyKSxhLndhaXRQZXJpb2RUaW1lZE91dD0hMCxhLmNsZWFyVGltZW91dChiLHZvaWQgMCxoKSwKYS5ub3RpZnlMaXN0ZW5lcnMoKSl9LGcpfX07az11bC5wcm90b3R5cGU7ay5jbGVhclRpbWVvdXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVthXSxlPWMuZGVsZWdhdGVkQ29uc2VudFR5cGVzLGY7Zm9yKGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiZlW2ZdPT09YSYmZC5wdXNoKGYpO3ZhciBnPXRoaXMuZW50cmllc1thXXx8e30saD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpO2lmKGcucXVpZXQpe2cucXVpZXQ9ITE7Zm9yKHZhciBsPW0oZCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpd2wodGhpcyxuLnZhbHVlKX1lbHNlIGlmKGIhPT12b2lkIDAmJmghPT1iKWZvcih2YXIgcD1tKGQpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXdsKHRoaXMscS52YWx1ZSl9OwprLnVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8dGhpcy51c2VkVXBkYXRlfHwhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkVXBkYXRlPXRoaXMuYWN0aXZlPSEwO2lmKGIhPW51bGwpe3ZhciBkPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyksZT10aGlzLmVudHJpZXM7KGVbYV09ZVthXXx8e30pLnVwZGF0ZT1iPT09ImdyYW50ZWQiO3RoaXMuY2xlYXJUaW1lb3V0KGEsZCxjKX19OwprLmRlY2xhcmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSEwO3ZhciBmPXRoaXMuZW50cmllcyxnPWZbYV18fHt9LGg9Zy5kZWNsYXJlX3JlZ2lvbixsPWMmJnpiKGMpP2MudG9VcHBlckNhc2UoKTp2b2lkIDA7ZD1kLnRvVXBwZXJDYXNlKCk7ZT1lLnRvVXBwZXJDYXNlKCk7aWYoZD09PSIifHxsPT09ZXx8KGw9PT1kP2ghPT1lOiFsJiYhaCkpe3ZhciBuPXtyZWdpb246Zy5yZWdpb24sZGVjbGFyZV9yZWdpb246bCxkZWNsYXJlOmI9PT0iZ3JhbnRlZCIsaW1wbGljaXQ6Zy5pbXBsaWNpdCxkZWZhdWx0OmcuZGVmYXVsdCx1cGRhdGU6Zy51cGRhdGUscXVpZXQ6Zy5xdWlldH07aWYoZCE9PSIifHxnLmRlY2xhcmUhPT0hMSlmW2FdPW59fTsKay5pbXBsaWNpdD1mdW5jdGlvbihhLGIpe3RoaXMudXNlZEltcGxpY2l0PSEwO3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV09Y1thXXx8e307ZC5pbXBsaWNpdCE9PSExJiYoZC5pbXBsaWNpdD1iPT09ImdyYW50ZWQiKX07CmsuZ2V0Q29uc2VudFN0YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXXx8e30sZT1kLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGY9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1thXTtpZihmPT09MylyZXR1cm4gMTtpZihmPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9ZC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGI9PW51bGw/MDpiLmRlbGVnYXRlZENvbnNlbnRUeXBlcy5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGc9Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbYV0saD1jW2ddfHx7fTtlPWgudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgbD1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2ddO2lmKGw9PT0zKXJldHVybiAxO2lmKGw9PT0yKXJldHVybiAyfWVsc2UgaWYoZT0KaC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyfWU9ZC5kZWNsYXJlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2U9ZC5pbXBsaWNpdDtyZXR1cm4gZSE9PXZvaWQgMD9lPzM6NDowfTtrLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dGhpcy5ILnB1c2goe2NvbnNlbnRUeXBlczphLGllOmJ9KX07dmFyIHdsPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxhLkgubGVuZ3RoOysrYyl7dmFyIGQ9YS5IW2NdO0FycmF5LmlzQXJyYXkoZC5jb25zZW50VHlwZXMpJiZkLmNvbnNlbnRUeXBlcy5pbmRleE9mKGIpIT09LTEmJihkLnhvPSEwKX19O3VsLnByb3RvdHlwZS5ub3RpZnlMaXN0ZW5lcnM9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPHRoaXMuSC5sZW5ndGg7KytjKXt2YXIgZD10aGlzLkhbY107aWYoZC54byl7ZC54bz0hMTt0cnl7ZC5pZSh7Y29uc2VudEV2ZW50SWQ6YSxjb25zZW50UHJpb3JpdHlJZDpifSl9Y2F0Y2goZSl7fX19fTt2YXIgeGw9ITEseWw9ITEsemw9e30sQWw9e2RlbGVnYXRlZENvbnNlbnRUeXBlczp7fSxjb3JlUGxhdGZvcm1TZXJ2aWNlczp7fSx1c2VkQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxjb250YWluZXJTY29wZWREZWZhdWx0czooemwuYWRfc3RvcmFnZT0xLHpsLmFuYWx5dGljc19zdG9yYWdlPTEsemwuYWRfdXNlcl9kYXRhPTEsemwuYWRfcGVyc29uYWxpemF0aW9uPTEsemwpLHVzZWRDb250YWluZXJTY29wZWREZWZhdWx0czohMX07ZnVuY3Rpb24gQmwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybih6YihhKT9bYV06YSkuZXZlcnkoZnVuY3Rpb24oYyl7c3dpdGNoKGIuZ2V0Q29uc2VudFN0YXRlKGMsQWwpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KX0KZnVuY3Rpb24gQ2woYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiBiLmdldENvbnNlbnRTdGF0ZShhLEFsKX1mdW5jdGlvbiBEbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIShiLmVudHJpZXNbYV18fHt9KS5xdWlldH1mdW5jdGlvbiBFbCgpe2lmKCFZZig1KSlyZXR1cm4hMTt2YXIgYT10bCgpO2EuYWNjZXNzZWRBbnk9ITA7aWYoYS5hY3RpdmUpcmV0dXJuITA7aWYoIUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cylyZXR1cm4hMTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhBbC5jb250YWluZXJTY29wZWREZWZhdWx0cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2MudmFsdWVdIT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGbChhLGIpe3RsKCkuYWRkTGlzdGVuZXIoYSxiKX0KZnVuY3Rpb24gR2woYSxiKXt0bCgpLm5vdGlmeUxpc3RlbmVycyhhLGIpfWZ1bmN0aW9uIEhsKGEsYil7aWYoYi5ldmVyeShEbCkpYSh7fSk7ZWxzZXt2YXIgYz0hMTtGbChiLGZ1bmN0aW9uKGQpeyFjJiZiLmV2ZXJ5KERsKSYmKGM9ITAsYShkKSl9KX19CmZ1bmN0aW9uIElsKGEsYil7dmFyIGM9emIoYik/W2JdOmIsZD17fSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBCbChoKSYmIWRbaF19KX0sZj1lKCk7aWYoZi5sZW5ndGghPT1jLmxlbmd0aCl7dmFyIGc9ZnVuY3Rpb24oaCl7Zm9yKHZhciBsPW0oaCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpZFtuLnZhbHVlXT0hMH07ZyhmKTtGbChjLGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGwocSl7cS5sZW5ndGghPT0wJiYoZyhxKSxoLmNvbnNlbnRUeXBlcz1xLGEoaCkpfXZhciBuPWUoKTtpZihuLmxlbmd0aCE9PTApe3ZhciBwPU9iamVjdC5rZXlzKGQpLmxlbmd0aDtuLmxlbmd0aCtwPj1jLmxlbmd0aD9sKG4pOkEuc2V0VGltZW91dChmdW5jdGlvbigpe2woZSgpKX0sNTAwKX19KX19O3ZhciBKbD0hMTtmdW5jdGlvbiBLbChhLGIpe3ZhciBjPXdrKCksZD10aygpO0UoMjYpO3ZhciBlPUlmKDQ3KT8wOklmKDUwKT8xOjMsZj1YaigpO2lmKHBsKCkpe3ZhciBnPUxsKCJJTklUIik7Zy5jb250YWluZXJMb2FkU291cmNlPWEhPW51bGw/YTowO2ImJihnLnBhcmVudFRhcmdldFJlZmVyZW5jZT1iKTtnLmFsaWFzZXM9YztnLmRlc3RpbmF0aW9ucz1kO2UhPT12b2lkIDAmJihnLmd0Zz17c291cmNlOmUsbVBhdGg6ZiE9bnVsbD9mOiIifSk7b2woZyl9fQpmdW5jdGlvbiBNbChhKXt2YXIgYixjLGQsZTtiPWEudGFyZ2V0SWQ7Yz1hLnJlcXVlc3Q7ZD1hLnFiO2U9YS5pc0JhdGNoZWQ7dmFyIGY7aWYoZj1wbCgpKXt2YXIgZzthOnN3aXRjaChjLmVuZHBvaW50KXtjYXNlIDY4OmNhc2UgNjk6Y2FzZSAxOTpjYXNlIDYyOmNhc2UgNDc6Zz0hMDticmVhayBhO2RlZmF1bHQ6Zz0hMX1mPSFnfWlmKGYpe3ZhciBoPUxsKCJHVEFHX0hJVCIse2V2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7aC50YXJnZXQ9YjtoLnVybD1jLnVybDtjLnBvc3RCb2R5JiYoaC5wb3N0Qm9keT1jLnBvc3RCb2R5KTtoLnBhcmFtZXRlckVuY29kaW5nPWMucGFyYW1ldGVyRW5jb2Rpbmc7aC5lbmRwb2ludD1jLmVuZHBvaW50O2UhPT12b2lkIDAmJihoLmlzQmF0Y2hlZD1lKTtvbChoKX19ZnVuY3Rpb24gTmwoYSl7cGwoKSYmTWwoYSgpKX0KZnVuY3Rpb24gTGwoYSxiKXtiPWI9PT12b2lkIDA/e306YjtiLmdyb3VwSWQ9T2w7dmFyIGMsZD1iLGU9UGwsZj17cHVibGljSWQ6UWx9O2QuZXZlbnRJZCE9bnVsbCYmKGYuZXZlbnRJZD1kLmV2ZW50SWQpO2QucHJpb3JpdHlJZCE9bnVsbCYmKGYucHJpb3JpdHlJZD1kLnByaW9yaXR5SWQpO2QuZXZlbnROYW1lJiYoZi5ldmVudE5hbWU9ZC5ldmVudE5hbWUpO2QuZ3JvdXBJZCYmKGYuZ3JvdXBJZD1kLmdyb3VwSWQpO2QudGFnTmFtZSYmKGYudGFnTmFtZT1kLnRhZ05hbWUpO2M9e2NvbnRhaW5lclByb2R1Y3Q6IkdUTSIsa2V5OmYsdmVyc2lvbjplLG1lc3NhZ2VUeXBlOmF9O2MuY29udGFpbmVyUHJvZHVjdD1KbD8iT0dUIjoiR1RNIjtjLmtleS50YXJnZXRSZWY9Umw7cmV0dXJuIGN9dmFyIFFsPSIiLFBsPSIiLFJsPXtjdGlkOiIiLGlzRGVzdGluYXRpb246ITF9LE9sOwpmdW5jdGlvbiBTbChhKXt2YXIgYj1FKDUpLGM9SWYoNDUpLGQ9c2soKSxlPUUoNiksZj1FKDEpO0UoMjMpO2tsPTA7bGw9ITA7cmwoKTtPbD1hO1FsPWI7UGw9ZjtKbD1jO1JsPXtjdGlkOmIsaXNEZXN0aW5hdGlvbjpkLGNhbm9uaWNhbElkOmV9fTtmdW5jdGlvbiBUbChhLGIsYyxkKXtpZihwbCgpKXt2YXIgZT1iLk07TWwoe3RhcmdldElkOmR8fFtiLnRhcmdldC5kZXN0aW5hdGlvbklkXSxyZXF1ZXN0Ont1cmw6YSxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OmN9LHFiOntldmVudElkOmUuZXZlbnRJZCxwcmlvcml0eUlkOmUucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19O2Z1bmN0aW9uIFVsKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly8iK2ErYjtyZXR1cm4gYz9mdW5jdGlvbigpe3JldHVybiBXaigpP1hqKCkrYytiOmR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTt2YXIgVmw9e30sV2w9KFZsWzIyXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2FzL2QiKSxWbFs2MF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2dzIiksVmxbMjNdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9nL2QiKSxWbCk7dmFyIFhsPXt9LFlsPShYbFs1XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbOF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNjZdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvdWNvbnZlcnNpb24iKSxYbFs2M109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzY0XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs2NV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNzRdPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9hcy9wL2MifSxYbCk7dmFyIFpsPXt9LCRsPShabFs0NV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb2xsZWN0IiksWmxbNDZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29sbGVjdCIsIi9ncyIpLFpsWzY5XT1VbCgiYWQuZG91YmxlY2xpY2submV0IiwiL2NjbS9zL2NvbGxlY3QiKSxabFs1OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmxbNTddPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabCk7dmFyIGFtPXt9LGJtPShhbVs5XT1VbCgiZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0IiwiL3BhZ2VhZC92aWV3dGhyb3VnaGNvbnZlcnNpb24iKSxhbVs2OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3Jta3QvY29sbGVjdCIpLGFtKTt2YXIgY209e30sZG09KGNtWzExXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bMjFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbVs3Ml09VWwoImdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bNzNdPVVsKCJnb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtKTt2YXIgZW09e30sZm09KGVtWzUxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvdHJhdmVsL2ZsaWdodHMvY2xpY2svY29udmVyc2lvbiIpLGVtKTt2YXIgZ209e30saG09KGdtWzFdPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2FjdGl2aXR5OyJ9LGdtWzJdPWZ1bmN0aW9uKCl7cmV0dXJuKFdqKCk/WGooKToiaHR0cHM6Ly9hZGUuZ29vZ2xlc3luZGljYXRpb24uY29tIikrIi9kZG0vYWN0aXZpdHkiKyhNKDQ2Nyk/IjsiOiIvIil9LGdtWzNdPWZ1bmN0aW9uKGEpe3JldHVybiJodHRwczovLyIrYS5scisiLmZscy5kb3VibGVjbGljay5uZXQvYWN0aXZpdHlpOyJ9LGdtKTtmdW5jdGlvbiBpbShhKXtzYigiSEVBTFRIIixhKX07dmFyIGptPXtiYTp7UHQ6ImF3X3VzZXJfZGF0YV9jYWNoZSIsb2k6ImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCIsYmg6ImRpYWdub3N0aWNzX3BhZ2VfaWQiLG9wOiJlbWVtbyIsZHU6ImVtX3JlZ2lzdHJ5IixTaToiZWFiIixydToiZmxfdXNlcl9kYXRhX2NhY2hlIix0dToiZ2E0X3VzZXJfZGF0YV9jYWNoZSIsTHU6ImlkY19wdl9jbGFpbSIsU2U6ImlwX2dlb19kYXRhX2NhY2hlIixYaToiaXBfZ2VvX2ZldGNoX2luX3Byb2dyZXNzIixqbjoibmJfZGF0YSIsVHE6InBhZ2VfZXhwZXJpbWVudF9pZHMiLGxuOiJwbGQiLFZlOiJwdF9kYXRhIixtbjoicHRfbGlzdGVuZXJfc2V0IixrajoicmV0cnlfY29udGFpbmVycyIsT2g6InNlcnZpY2Vfd29ya2VyX2VuZHBvaW50IixacToic2hhcmVkX3VzZXJfaWQiLGFyOiJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiLHNqOiJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiLGJ2OiJhd2giLGhyOiJ1bml2ZXJzYWxfY2xhaW1fcmVnaXN0cnkifX07dmFyIGttPWZ1bmN0aW9uKGEpe3JldHVybiB0ZihmdW5jdGlvbihiKXtmb3IodmFyIGMgaW4gYSlpZihiPT09YVtjXSYmIS9eWzAtOV0rJC8udGVzdChjKSlyZXR1cm4hMDtyZXR1cm4hMX0pfShqbS5iYSk7CmZ1bmN0aW9uIGxtKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7aWYoa20oYSkpe3ZhciBjLGQsZT0oZD0oYz1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSkpLnhjZCkhPW51bGw/ZDpjLnhjZD17fTtpZihlW2FdKXJldHVybiBlW2FdO2lmKGIpe3ZhciBmPXZvaWQgMCxnPTEsaD17fSxsPXtzZXQ6ZnVuY3Rpb24obil7Zj1uO2wubm90aWZ5KCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBmfSxzdWJzY3JpYmU6ZnVuY3Rpb24obil7aFtTdHJpbmcoZyldPW47cmV0dXJuIGcrK30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24obil7dmFyIHA9U3RyaW5nKG4pO3JldHVybiBoLmhhc093blByb3BlcnR5KHApPyhkZWxldGUgaFtwXSwhMCk6ITF9LG5vdGlmeTpmdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKGgpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTt0cnl7aFtxXShhLGYpfWNhdGNoKHIpe319fX07cmV0dXJuIGVbYV09bH19fQpmdW5jdGlvbiBtbShhLGIpe3ZhciBjPWxtKGEsITApO2MmJmMuc2V0KGIpfWZ1bmN0aW9uIG5tKGEpe3ZhciBiO3JldHVybihiPWxtKGEpKT09bnVsbD92b2lkIDA6Yi5nZXQoKX1mdW5jdGlvbiBvbShhLGIpe3ZhciBjPWxtKGEpO2lmKCFjKXtjPWxtKGEsITApO2lmKCFjKXJldHVybjtjLnNldChiKX1yZXR1cm4gYy5nZXQoKX1mdW5jdGlvbiBwbShhLGIpe2lmKHR5cGVvZiBiPT09ImZ1bmN0aW9uIil7dmFyIGM7cmV0dXJuKGM9bG0oYSwhMCkpPT1udWxsP3ZvaWQgMDpjLnN1YnNjcmliZShiKX19ZnVuY3Rpb24gcW0oYSxiKXt2YXIgYz1sbShhKTtyZXR1cm4gYz9jLnVuc3Vic2NyaWJlKGIpOiExfTt2YXIgc209ZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPSExfTtzbS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3RoaXMuS3x8KHRoaXMuSD10bSgpLHRoaXMuSFsiMCJdJiZvbShqbS5iYS5TZSxKU09OLnN0cmluZ2lmeSh0aGlzLkgpKSl9Owp2YXIgeG09ZnVuY3Rpb24oKXt2YXIgYT11bSxiPXZtLGM9dm9pZCAwLGQ9ZnVuY3Rpb24oKXtjIT09dm9pZCAwJiZxbShqbS5iYS5TZSxjKTt0cnl7dmFyIGY9bm0oam0uYmEuU2UpO2IuSD1KU09OLnBhcnNlKGYpfWNhdGNoKGcpe1AoMTIzKSxpbSgyKSxiLkg9e319Yi5LPSEwO2EoKX0sZT1ubShqbS5iYS5TZSk7ZT9kKGUpOihjPXBtKGptLmJhLlNlLGQpLHdtKCkpfSx3bT1mdW5jdGlvbigpe2lmKCFubShqbS5iYS5YaSkpe21tKGptLmJhLlhpLCEwKTt2YXIgYT1mdW5jdGlvbihiKXttbShqbS5iYS5TZSxifHwie30iKTttbShqbS5iYS5YaSwhMSl9O3RyeXtBLmZldGNoKCJodHRwczovL3d3dy5nb29nbGUuY29tL2NjbS9nZW8iLHttZXRob2Q6IkdFVCIsY2FjaGU6Im5vLXN0b3JlIixtb2RlOiJjb3JzIixjcmVkZW50aWFsczoib21pdCJ9KS50aGVuKGZ1bmN0aW9uKGIpe2Iub2s/Yi50ZXh0KCkudGhlbihmdW5jdGlvbihjKXthKGMpfSxmdW5jdGlvbigpe2EoKX0pOmEoKX0sZnVuY3Rpb24oKXthKCl9KX1jYXRjaChiKXthKCl9fX0sCnRtPWZ1bmN0aW9uKCl7dmFyIGE9RSgyMik7dHJ5e3JldHVybiBKU09OLnBhcnNlKHFiKGEpKX1jYXRjaChiKXtyZXR1cm4gUCgxMjMpLGltKDIpLHt9fX0seW09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMCJdfHwiIn0sem09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMSJdfHwiIn0sQW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO3JldHVybiBifSxCbT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyI2Il0hPT0hMX0sQ209ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO3JldHVybiBifSxEbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9IiI7CnJldHVybiBifSxFbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9IiI7cmV0dXJuIGJ9LHZtPW5ldyBzbTtmdW5jdGlvbiBGbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTtyZXR1cm4iaHR0cHM6Ly8iKyhEbSgpfHwid3d3IikrIi5nb29nbGUtYW5hbHl0aWNzLmNvbS8iK2F9ZnVuY3Rpb24gR20oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7dmFyIGI9RG0oKTtyZXR1cm4iaHR0cHM6Ly8iKyhiP2IrIi4iOiIiKSsiYW5hbHl0aWNzLmdvb2dsZS5jb20vIithfXZhciBIbT17fSxJbT0oSG1bMTddPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9hZy9nL2MiOkdtKCl9LEhtWzE2XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvZ2EvZy9jIjpGbSgpfSxIbVs2N109ZnVuY3Rpb24oKXt2YXIgYTthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTtyZXR1cm4gRG0oKT8iIjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8iK2F9LEhtKTtmdW5jdGlvbiBKbShhLGIsYyl7dmFyIGQ9VWwoYiwiL21lYXN1cmVtZW50L2NvbnZlcnNpb24iLGMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBEbSgpP2EoIm1lYXN1cmVtZW50L2NvbnZlcnNpb24iKTpkKCl9fXZhciBLbT17fSxMbT0oS21bNTVdPUptKEZtLCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9ncyIpLEttWzU0XT1KbShHbSwid3d3Lmdvb2dsZS5jb20iLCIvZyIpLEttKTt2YXIgTW09bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxXbCxZbCwkbCxibSxkbSxmbSxobSxMbSxJbSk7ZnVuY3Rpb24gTm0oYSxiKXt2YXIgYz1PYmplY3Qua2V5cyhiKS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGJbZF0hPW51bGx9KS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrIj0iK2JbZF19KS5qb2luKCImIik7cmV0dXJuIE1tW2FdKHZvaWQgMCkrIj8iK2N9O3ZhciBPbT17fSxQbT0oT20udGRwPTEsT20uZXhwPTEsT20uZ3RtPTEsT20ucGlkPTEsT20uZGw9MSxPbS5zZXE9MSxPbS50PTEsT20udj0xLE9tKSxSbT1mdW5jdGlvbigpe3ZhciBhPVFtO3JldHVybiBPYmplY3Qua2V5cyhhLkgpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYS5IW2JdfSl9LFNtPWZ1bmN0aW9uKGEsYixjKXtpZihhLkhbYl09PT12b2lkIDB8fChjPT09dm9pZCAwPzA6YykpYS5IW2JdPSEwfSxUbT1mdW5jdGlvbihhKXthLmZvckVhY2goZnVuY3Rpb24oYil7UG1bYl18fChRbS5IW2JdPSExKX0pfSxRbT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPXt9fTtmdW5jdGlvbiBVbShhLGIsYyl7dmFyIGQ9Yz09PXZvaWQgMD8hMDpjLGU9UW07ZS5LW2FdPWI7KGQ9PT12b2lkIDB8fGQpJiZTbShlLGEpfWZ1bmN0aW9uIFZtKGEsYil7U20oUW0sYSxiPT09dm9pZCAwPyExOmIpfTtmdW5jdGlvbiBXbShhKXt2YXIgYj0wO2EuR2MuZm9yRWFjaChmdW5jdGlvbihjKXtifD0xPDxjfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gWG0oKXtyZXR1cm57dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbGY6e319fWZ1bmN0aW9uIFltKGEsYixjLGQpe3ZhciBlPU9iamVjdC5rZXlzKGEubmYpLnNvcnQoZnVuY3Rpb24oZixnKXtyZXR1cm4gTnVtYmVyKGYpLU51bWJlcihnKX0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm5bZixiKGEubmZbZl0pXX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZlsxXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5qb2luKGMpfSkuam9pbihkKTtyZXR1cm4gZT9lOnZvaWQgMH0KZnVuY3Rpb24gWm0oYSxiKXt2YXIgYyxkLGU7Yz1jPT09dm9pZCAwPyJfIjpjO2Q9ZD09PXZvaWQgMD8iOyI6ZDtlPWU9PT12b2lkIDA/In4iOmU7Zm9yKHZhciBmPVtdLGc9bShPYmplY3Qua2V5cyhhLmxmKS5zb3J0KCkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49WW0oYS5sZltsXSxiLGMsZCk7aWYobil7dmFyIHA9dm9pZCAwO2YucHVzaCgiIisoKHA9bCkhPW51bGw/cDoiIikrZCtuKX19cmV0dXJuIGYubGVuZ3RoP2Yuam9pbihlKTp2b2lkIDB9CmZ1bmN0aW9uICRtKGEpe2EuamI9MDthLkdjLmNsZWFyKCk7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYS5sZikpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1hLmxmW2MudmFsdWVdO2QuamI9MDtkLkdjLmNsZWFyKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZC5uZikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1kLm5mW2YudmFsdWVdO2cuamI9MDtnLkdjLmNsZWFyKCl9fX0KZnVuY3Rpb24gYW4oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/MTpkO2EudG90YWwrPWQ7YS5qYis9ZDt2YXIgZixnPWI9PT12b2lkIDA/IiI6YjtmPWEubGZbZ118fChhLmxmW2ddPXt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxuZjp7fX0pO2YudG90YWwrPWQ7Zi5qYis9ZDt2YXIgaCxsPVN0cmluZyhjKTtoPWYubmZbbF18fChmLm5mW2xdPXt0b3RhbDowLGpiOjAsR2M6bmV3IFNldH0pO2gudG90YWwrPWQ7aC5qYis9ZDtlIT09dm9pZCAwJiYoYS5HYy5hZGQoZSksZi5HYy5hZGQoZSksaC5HYy5hZGQoZSkpfTt2YXIgYm49ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKX07Ym4ucHJvdG90eXBlLmluY3JlbWVudD1mdW5jdGlvbihhLGIpe2FuKHRoaXMuSCxhLGIpfTt2YXIgY249bmV3IGJuO2Z1bmN0aW9uIGRuKGEpe3ZhciBiPVN0cmluZyhhW0dmLlliXXx8IiIpLnJlcGxhY2UoL18vZywiIik7cmV0dXJuIFNiKGIsImN2dCIpPyJjdnQiOmJ9dmFyIGVuPUEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIj9ndG1fbGF0ZW5jeT0iKT49MHx8QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiJmd0bV9sYXRlbmN5PSIpPj0wO3ZhciBnbj1mdW5jdGlvbigpe3ZhciBhPWZuO3JldHVybiBNKDYwMykmJklmKDY1LCExKSYmIWEuWn0sZm49bmV3IGZ1bmN0aW9uKGEpe3RoaXMuUj1hKCk7dmFyIGI9SmYoMjcpO3RoaXMuTj1lbnx8dGhpcy5SPGI7dmFyIGM9SmYoNDIpO3RoaXMuWj1lbnx8dGhpcy5SPj0xLWM7dmFyIGQ9TSg2MDMpJiZJZig2NSwhMSk7dGhpcy5LPXRoaXMuWnx8ZDt2YXIgZT1KZigyNyksZj1KZig2Myk7dGhpcy5IPWVufHxmPT09MXx8dGhpcy5SPj1lJiZ0aGlzLlI8ZStmfShmdW5jdGlvbigpe3JldHVybiBNYXRoLnJhbmRvbSgpfSk7dmFyIGhuPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtobi5wcm90b3R5cGUucmVnaXN0ZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKGZuLkspe3ZhciBkPWpuKGIsYyk7aWYoZCl7dmFyIGUsZj1iO2Y9PT00JiYoZj01KTt2YXIgZz10aGlzLkhbZl07Z3x8KGc9dGhpcy5IW2ZdPXt9KTtlPWc7dmFyIGg9ZVtkXTtofHwoaD1lW2RdPVtdKTtoLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKSk7Y24uaW5jcmVtZW50KGEuZGVzdGluYXRpb25JZCxhLmVuZHBvaW50KTthLmVuZHBvaW50IT09NTYmJmEuZW5kcG9pbnQhPT02MSYmVm0oIm1kZSIsITApfX19Owp2YXIgbW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1rbixkPWpuKGEsYik7aWYoZCl7dmFyIGU9bG4oYyxhKTtpZihlKXt2YXIgZj1lW2RdO2YmJihlW2RdPWYuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFnLkVvfSkpfX19LGxuPWZ1bmN0aW9uKGEsYil7Yj09PTQmJihiPTUpO3JldHVybiBhLkhbYl19LGpuPWZ1bmN0aW9uKGEsYil7dmFyIGM9YjtpZihiWzBdPT09Ii8iKXt2YXIgZDtjPSgoZD1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6ZC5vcmlnaW4pK2J9dHJ5e3ZhciBlPW5ldyBVUkwoYyk7cmV0dXJuIGE9PT0yP2Uub3JpZ2luOmUub3JpZ2luK2UucGF0aG5hbWV9Y2F0Y2goZil7fX0sa249bmV3IGhuOwpmdW5jdGlvbiBubihhKXtzd2l0Y2goYSl7Y2FzZSAic2NyaXB0LXNyYyI6cmV0dXJuIDQ7Y2FzZSAic2NyaXB0LXNyYy1lbGVtIjpyZXR1cm4gNTtjYXNlICJmcmFtZS1zcmMiOnJldHVybiAyO2Nhc2UgImNvbm5lY3Qtc3JjIjpyZXR1cm4gMTtjYXNlICJpbWctc3JjIjpyZXR1cm4gM319O2Z1bmN0aW9uIG9uKGEsYixjKXt2YXIgZCxlPWEuR29vZ2xlYlFoQ3NPO2V8fChlPXt9LGEuR29vZ2xlYlFoQ3NPPWUpO2Q9ZTtpZihkW2JdKXJldHVybiExO2RbYl09W107ZFtiXVswXT1jO3JldHVybiEwfTt2YXIgcG4scW47YTp7Zm9yKHZhciBybj1bIkNMT1NVUkVfRkxBR1MiXSxzbj1SYSx0bj0wO3RuPHJuLmxlbmd0aDt0bisrKWlmKHNuPXNuW3JuW3RuXV0sc249PW51bGwpe3FuPW51bGw7YnJlYWsgYX1xbj1zbn12YXIgdW49cW4mJnFuWzYxMDQwMTMwMV07cG49dW4hPW51bGw/dW46ITE7ZnVuY3Rpb24gdm4oKXt2YXIgYT1SYS5uYXZpZ2F0b3I7aWYoYSl7dmFyIGI9YS51c2VyQWdlbnQ7aWYoYilyZXR1cm4gYn1yZXR1cm4iIn12YXIgd24seG49UmEubmF2aWdhdG9yO3duPXhuP3huLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtmdW5jdGlvbiB5bihhKXtpZighcG58fCF3bilyZXR1cm4hMTtmb3IodmFyIGI9MDtiPHduLmJyYW5kcy5sZW5ndGg7YisrKXt2YXIgYz13bi5icmFuZHNbYl0uYnJhbmQ7aWYoYyYmYy5pbmRleE9mKGEpIT0tMSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiB6bihhKXtyZXR1cm4gdm4oKS5pbmRleE9mKGEpIT0tMX07ZnVuY3Rpb24gQW4oKXtyZXR1cm4gcG4/ISF3biYmd24uYnJhbmRzLmxlbmd0aD4wOiExfWZ1bmN0aW9uIEJuKCl7cmV0dXJuIEFuKCk/ITE6em4oIk9wZXJhIil9ZnVuY3Rpb24gQ24oKXtyZXR1cm4gem4oIkZpcmVmb3giKXx8em4oIkZ4aU9TIil9ZnVuY3Rpb24gRG4oKXtyZXR1cm4gQW4oKT95bigiQ2hyb21pdW0iKTooem4oIkNocm9tZSIpfHx6bigiQ3JpT1MiKSkmJiEoQW4oKT8wOnpuKCJFZGdlIikpfHx6bigiU2lsayIpfTtmdW5jdGlvbiBFbigpe3JldHVybiBwbj8hIXduJiYhIXduLnBsYXRmb3JtOiExfWZ1bmN0aW9uIEZuKCl7cmV0dXJuIHpuKCJpUGhvbmUiKSYmIXpuKCJpUG9kIikmJiF6bigiaVBhZCIpfWZ1bmN0aW9uIEduKCl7Rm4oKXx8em4oImlQYWQiKXx8em4oImlQb2QiKX07dmFyIEhuPWZ1bmN0aW9uKGEpe0huWyIgIl0oYSk7cmV0dXJuIGF9O0huWyIgIl09ZnVuY3Rpb24oKXt9O0JuKCk7QW4oKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKTt6bigiRWRnZSIpOyF6bigiR2Vja28iKXx8dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIXpuKCJFZGdlIil8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIil8fHpuKCJFZGdlIik7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIXpuKCJFZGdlIikmJnpuKCJNb2JpbGUiKTtFbigpfHx6bigiTWFjaW50b3NoIik7RW4oKXx8em4oIldpbmRvd3MiKTsoRW4oKT93bi5wbGF0Zm9ybT09PSJMaW51eCI6em4oIkxpbnV4IikpfHxFbigpfHx6bigiQ3JPUyIpO0VuKCl8fHpuKCJBbmRyb2lkIik7Rm4oKTt6bigiaVBhZCIpO3puKCJpUG9kIik7R24oKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigia2Fpb3MiKTtDbigpO0ZuKCl8fHpuKCJpUG9kIik7em4oImlQYWQiKTshem4oIkFuZHJvaWQiKXx8RG4oKXx8Q24oKXx8Qm4oKXx8em4oIlNpbGsiKTtEbigpOyF6bigiU2FmYXJpIil8fERuKCl8fChBbigpPzA6em4oIkNvYXN0IikpfHxCbigpfHwoQW4oKT8wOnpuKCJFZGdlIikpfHwoQW4oKT95bigiTWljcm9zb2Z0IEVkZ2UiKTp6bigiRWRnLyIpKXx8KEFuKCk/eW4oIk9wZXJhIik6em4oIk9QUiIpKXx8Q24oKXx8em4oIlNpbGsiKXx8em4oIkFuZHJvaWQiKXx8R24oKTt2YXIgSW49e30sSm49bnVsbDsKZnVuY3Rpb24gS24oYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPjI1NSYmKGJbYysrXT1lJjI1NSxlPj49OCk7YltjKytdPWV9dmFyIGY9NDtmPT09dm9pZCAwJiYoZj0wKTtpZighSm4pe0puPXt9O2Zvcih2YXIgZz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxoPVsiKy89IiwiKy8iLCItXz0iLCItXy4iLCItXyJdLGw9MDtsPDU7bCsrKXt2YXIgbj1nLmNvbmNhdChoW2xdLnNwbGl0KCIiKSk7SW5bbF09bjtmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9bltwXTtKbltxXT09PXZvaWQgMCYmKEpuW3FdPXApfX19Zm9yKHZhciByPUluW2ZdLHQ9QXJyYXkoTWF0aC5mbG9vcihiLmxlbmd0aC8zKSksdT1yWzY0XXx8IiIsdj0wLHg9MDt2PGIubGVuZ3RoLTI7dis9Myl7dmFyIHk9Ylt2XSx6PWJbdisxXSxDPWJbdisyXSwKRD1yW3k+PjJdLEk9clsoeSYzKTw8NHx6Pj40XSxHPXJbKHomMTUpPDwyfEM+PjZdLE49cltDJjYzXTt0W3grK109IiIrRCtJK0crTn12YXIgUz0wLFc9dTtzd2l0Y2goYi5sZW5ndGgtdil7Y2FzZSAyOlM9Ylt2KzFdLFc9clsoUyYxNSk8PDJdfHx1O2Nhc2UgMTp2YXIgZWE9Ylt2XTt0W3hdPSIiK3JbZWE+PjJdK3JbKGVhJjMpPDw0fFM+PjRdK1crdX1yZXR1cm4gdC5qb2luKCIiKX07dmFyIExuPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC9cKy9nLCIgIikpfTt2YXIgTW49UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtmdW5jdGlvbiBObihhLGIsYyxkKXtmb3IodmFyIGU9YixmPWMubGVuZ3RoOyhlPWEuaW5kZXhPZihjLGUpKT49MCYmZTxkOyl7dmFyIGc9YS5jaGFyQ29kZUF0KGUtMSk7aWYoZz09Mzh8fGc9PTYzKXt2YXIgaD1hLmNoYXJDb2RlQXQoZStmKTtpZighaHx8aD09NjF8fGg9PTM4fHxoPT0zNSlyZXR1cm4gZX1lKz1mKzF9cmV0dXJuLTF9dmFyIE9uPS8jfCQvOwpmdW5jdGlvbiBQbihhLGIpe3ZhciBjPWEuc2VhcmNoKE9uKSxkPU5uKGEsMCxiLGMpO2lmKGQ8MClyZXR1cm4gbnVsbDt2YXIgZT1hLmluZGV4T2YoIiYiLGQpO2lmKGU8MHx8ZT5jKWU9YztkKz1iLmxlbmd0aCsxO3JldHVybiBMbihhLnNsaWNlKGQsZSE9PS0xP2U6MCkpfXZhciBRbj0vWz8mXSgkfCMpLzsKZnVuY3Rpb24gUm4oYSxiLGMpe2Zvcih2YXIgZCxlPWEuc2VhcmNoKE9uKSxmPTAsZyxoPVtdOyhnPU5uKGEsZixiLGUpKT49MDspaC5wdXNoKGEuc3Vic3RyaW5nKGYsZykpLGY9TWF0aC5taW4oYS5pbmRleE9mKCImIixnKSsxfHxlLGUpO2gucHVzaChhLnNsaWNlKGYpKTtkPWguam9pbigiIikucmVwbGFjZShRbiwiJDEiKTt2YXIgbCxuPWMhPW51bGw/Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYykpOiIiO3ZhciBwPWIrbjtpZihwKXt2YXIgcSxyPWQuaW5kZXhPZigiIyIpO3I8MCYmKHI9ZC5sZW5ndGgpO3ZhciB0PWQuaW5kZXhPZigiPyIpLHU7dDwwfHx0PnI/KHQ9cix1PSIiKTp1PWQuc3Vic3RyaW5nKHQrMSxyKTtxPVtkLnNsaWNlKDAsdCksdSxkLnNsaWNlKHIpXTt2YXIgdj1xWzFdO3FbMV09cD92P3YrIiYiK3A6cDp2O2w9cVswXSsocVsxXT8iPyIrcVsxXToiIikrcVsyXX1lbHNlIGw9ZDtyZXR1cm4gbH07ZnVuY3Rpb24gU24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1QbihjLCJmbXQiKTtpZihkKXt2YXIgbj1QbihjLCJyYW5kb20iKSxwPVBuKGMsImxhYmVsIil8fCIiO2lmKCFuKXJldHVybjt2YXIgcT1LbihMbihwKSsiOiIrTG4obikpO2lmKCFvbihhLHEsZCkpcmV0dXJufWwmJk51bWJlcihsKSE9PTQ/KGM9Um4oYywicmZtdCIsbCksYz1SbihjLCJmbXQiLDQpKTpsfHwoYz1SbihjLCJmbXQiLDQpKTtVYyhjLGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTthLmdvb2dsZV9ub0Z1cnRoZXJSZWRpcmVjdHMmJmQmJihhLmdvb2dsZV9ub0Z1cnRoZXJSZWRpcmVjdHM9bnVsbCxkKCkpfSxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7ZT09bnVsbHx8ZSgpfSxmLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdLnBhcmVudEVsZW1lbnR8fHZvaWQgMCk7cmV0dXJuIGN9O2Z1bmN0aW9uIFZuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7aWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBXbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO3JldHVybiBqZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFhuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDMsYlswXSk7WmMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBZbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO3JldHVybiBtZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFpuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDUsYlswXSk7VWMuYXBwbHkobnVsbCx3KGIpKX0KZnVuY3Rpb24gJG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2JbMF0mJmtuLnJlZ2lzdGVyKGEsMixiWzBdKTtYYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIGFvKGEpe3ZhciBiPVNuLmFwcGx5KG51bGwsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKTtiJiZrbi5yZWdpc3RlcihhLDQsYik7cmV0dXJuIGJ9O3ZhciBibz17TWE6e1JlOjAsVWU6MSxMaDoyfX07Ym8uTWFbYm8uTWEuUmVdPSJGVUxMX1RSQU5TTUlTU0lPTiI7Ym8uTWFbYm8uTWEuVWVdPSJMSU1JVEVEX1RSQU5TTUlTU0lPTiI7Ym8uTWFbYm8uTWEuTGhdPSJOT19UUkFOU01JU1NJT04iO3ZhciBjbz17aWE6e2dkOjAsY2I6MSx4ZDoyLFpiOjN9fTtjby5pYVtjby5pYS5nZF09Ik5PX1FVRVVFIjtjby5pYVtjby5pYS5jYl09IkFEUyI7Y28uaWFbY28uaWEueGRdPSJBTkFMWVRJQ1MiO2NvLmlhW2NvLmlhLlpiXT0iTU9OSVRPUklORyI7dmFyIGVvPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5jb25zZW50VHlwZXM9Yn07ZW8ucHJvdG90eXBlLmlzQ29uc2VudEdyYW50ZWQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5IKXtjYXNlIDA6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLmV2ZXJ5KGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2Nhc2UgMTpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtkZWZhdWx0OnljKHRoaXMuSCwiY29uc2VudHNSZXF1aXJlZCBoYWQgYW4gdW5rbm93biB0eXBlIil9fTsKdmFyIGZvPW5ldyBmdW5jdGlvbigpe3ZhciBhPXt9O3RoaXMuSD0oYVtjby5pYS5nZF09Ym8uTWEuUmUsYVtjby5pYS5jYl09Ym8uTWEuUmUsYVtjby5pYS54ZF09Ym8uTWEuUmUsYVtjby5pYS5aYl09Ym8uTWEuUmUsYSk7dmFyIGI9e307dGhpcy5LPShiW2NvLmlhLmdkXT1uZXcgZW8oMCxbXSksYltjby5pYS5jYl09bmV3IGVvKDAsWyJhZF9zdG9yYWdlIl0pLGJbY28uaWEueGRdPW5ldyBlbygwLFsiYW5hbHl0aWNzX3N0b3JhZ2UiXSksYltjby5pYS5aYl09bmV3IGVvKDEsWyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXSksYil9O3ZhciBobz1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMudHlwZT1hO3RoaXMuSD1bXTtGbChmby5LW2FdLmNvbnNlbnRUeXBlcyxmdW5jdGlvbigpe2dvKGIpfHxiLmZsdXNoKCl9KX07aG8ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPW0odGhpcy5IKSxiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSl7dmFyIGM9Yi52YWx1ZTtjKCl9dGhpcy5IPVtdfTt2YXIgZ289ZnVuY3Rpb24oYSl7cmV0dXJuIGZvLkhbYS50eXBlXT09PWJvLk1hLkxoJiYhZm8uS1thLnR5cGVdLmlzQ29uc2VudEdyYW50ZWQoKX0saW89ZnVuY3Rpb24oYSxiKXtnbyhhKT9hLkgucHVzaChiKTpiKCl9LGpvPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBNYXB9LGxvPWZ1bmN0aW9uKGEpe3ZhciBiPWtvO2IuSC5oYXMoYSl8fGIuSC5zZXQoYSxuZXcgaG8oYSkpO3JldHVybiBiLkguZ2V0KGEpfTtqby5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkguY2xlYXIoKX07CnZhciBrbz1uZXcgam87dmFyIG1vPVsiZmluIiwiZnMiLCJtY2MiLCJuY2MiXSxubz1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ITE6YTt2YXIgYj1SbSgpLGM9UW0uSyxkPWIuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBjW2VdIT09dm9pZCAwJiYoYXx8IW1vLmluY2x1ZGVzKGUpKX0pO1RtKGQpO3JldHVybiBkLm1hcChmdW5jdGlvbihlKXt2YXIgZj1jW2VdO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpKTtyZXR1cm4gZj8iJiIrZSsiPSIrZjoiIn0pLmpvaW4oIiIpKyImej0wIn0sb289ZnVuY3Rpb24oYSl7dmFyIGI9Imh0dHBzOi8vIitFKDIxKSxjPSIvdGQ/aWQ9IitFKDUpO3JldHVybiIiK2ZrKGIpK2MrYX0scG89ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO2lmKCRrKDI2KSYmZm4uSyYmRSg1KSYmKGN8fCFnbigpKSl7dmFyIGQ9bG8oY28uaWEuWmIpO2lmKGdvKGQpKWEuSHx8KGEuSD0hMCxpbyhkLGZ1bmN0aW9uKCl7cmV0dXJuIHBvKGEpfSkpOwplbHNle2ImJlVtKCJmaW4iLCIxIik7dmFyIGU9bm8oYiksZj1vbyhlKSxnPXtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NjF9O2I/WW4oZyxmLHZvaWQgMCx7UWc6ITB9LHZvaWQgMCxmdW5jdGlvbigpe1pjKGYrIiZpbWc9MSIpfSk6WG4oZyxmKTthLkg9ITE7cW8oZSl9fX0scW89ZnVuY3Rpb24oYSl7aWYoS2MmJihTYihLYywiaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vIil8fElmKDQ3KSkmJiEoYS5pbmRleE9mKCImY3NwPSIpPDAmJmEuaW5kZXhPZigiJm1kZT0iKTwwKSl7dmFyIGI7YTp7dHJ5e2lmKEtjKXtiPW5ldyBVUkwoS2MpO2JyZWFrIGF9fWNhdGNoKGMpe31iPXZvaWQgMH1iJiZVYygiIitLYysoS2MuaW5kZXhPZigiPyIpPj0wPyImIjoiPyIpKyJpc190ZD0xIithKX19LHJvPWZ1bmN0aW9uKGEpe1JtKCkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4hUG1bYl19KSYmcG8oYSwhMCl9LHNvPW5ldyBmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPSExOwokYyhBLCJwYWdlaGlkZSIsZnVuY3Rpb24oKXtybyhhKX0pfTtmdW5jdGlvbiB0byhhLGIpe3BvKHNvLGE9PT12b2lkIDA/ITE6YSxiPT09dm9pZCAwPyExOmIpfTt2YXIgdW89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiLCJhZF9wZXJzb25hbGl6YXRpb24iXSx2bz1bRi5ELmRkLEYuRC55YyxGLkQuUWYsRi5ELktiLEYuRC54YyxGLkQuZmIsRi5ELkRiLEYuRC5uYixGLkQuTGIsRi5ELnZjXSx5bz1mdW5jdGlvbigpe3ZhciBhPXdvOyFhLlImJmEuSCYmKHVvLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2JdIT09MX0pfHx4bygibWJjIikpO2EuUj0hMH0seG89ZnVuY3Rpb24oYSl7Zm4uSyYmKFVtKGEsIjEiKSx0bygpKX0sem89ZnVuY3Rpb24oYSxiKXt2YXIgYz13bztpZighYy5OW2JdJiYoYy5OW2JdPSEwLGMuS1tiXSkpZm9yKHZhciBkPW0odm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWlmKE8oYSxlLnZhbHVlKSl7eG8oImVyYyIpO2JyZWFrfX0sd289bmV3IGZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSD0hMTt0aGlzLk49e307dGhpcy5LPXt9fTt2YXIgQW89e30sQm89T2JqZWN0LmZyZWV6ZSgoQW9bRi5ELlJjXT0xLEFvW0YuRC5oaF09MSxBb1tGLkQuc2ldPTEsQW9bRi5ELlNjXT0xLEFvW0YuRC5IYV09MSxBb1tGLkQuTGJdPTEsQW9bRi5ELkNiXT0xLEFvW0YuRC5UYl09MSxBb1tGLkQuSWRdPTEsQW9bRi5ELnZjXT0xLEFvW0YuRC5uYl09MSxBb1tGLkQuSmRdPTEsQW9bRi5ELkhlXT0xLEFvW0YuRC5PYV09MSxBb1tGLkQuUXBdPTEsQW9bRi5ELlBmXT0xLEFvW0YuRC5GaV09MSxBb1tGLkQucGhdPTEsQW9bRi5ELldjXT0xLEFvW0YuRC5RZl09MSxBb1tGLkQuYXFdPTEsQW9bRi5ELlRhXT0xLEFvW0YuRC5VZl09MSxBb1tGLkQuZnFdPTEsQW9bRi5ELk9kXT0xLEFvW0YuRC5SbF09MSxBb1tGLkQuWWNdPTEsQW9bRi5ELlpjXT0xLEFvW0YuRC5EYl09MSxBb1tGLkQuYW1dPTEsQW9bRi5ELldiXT0xLEFvW0YuRC5UZF09MSxBb1tGLkQuWGJdPTEsQW9bRi5ELk9pXT0xLEFvW0YuRC5kZF09MSxBb1tGLkQueWhdPTEsQW9bRi5ELlBpXT0KMSxBb1tGLkQuVWRdPTEsQW9bRi5ELnljXT0xLEFvW0YuRC5WZF09MSxBb1tGLkQubG1dPTEsQW9bRi5ELldkXT0xLEFvW0YuRC5lZF09MSxBb1tGLkQub2pdPTEsQW8pKTtPYmplY3QuZnJlZXplKFtGLkQuemEsRi5ELlVhLEYuRC5NYixGLkQudGIsRi5ELk5pLEYuRC5mYixGLkQuR2ksRi5ELk1wXSk7CnZhciBDbz17fSxEbz1PYmplY3QuZnJlZXplKChDb1tGLkQucXBdPTEsQ29bRi5ELnJwXT0xLENvW0YuRC50cF09MSxDb1tGLkQudXBdPTEsQ29bRi5ELnZwXT0xLENvW0YuRC56cF09MSxDb1tGLkQuQXBdPTEsQ29bRi5ELkJwXT0xLENvW0YuRC5EcF09MSxDb1tGLkQueWZdPTEsQ28pKSxFbz17fSxGbz1PYmplY3QuZnJlZXplKChFb1tGLkQudmxdPTEsRW9bRi5ELndsXT0xLEVvW0YuRC54ZV09MSxFb1tGLkQueWVdPTEsRW9bRi5ELnhsXT0xLEVvW0YuRC5BZF09MSxFb1tGLkQuemVdPTEsRW9bRi5ELm9jXT0xLEVvW0YuRC5RY109MSxFb1tGLkQucWNdPTEsRW9bRi5ELkliXT0xLEVvW0YuRC5BZV09MSxFb1tGLkQucmNdPTEsRW9bRi5ELnlsXT0xLEVvKSksR289T2JqZWN0LmZyZWV6ZShbRi5ELlJjLEYuRC5TYyxGLkQuSmQsRi5ELlFmLEYuRC5XZixGLkQuVGQsRi5ELk9pLEYuRC5WZF0pLEhvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoR28pKSksSW89T2JqZWN0LmZyZWV6ZShbRi5ELkNiLApGLkQucGgsRi5ELnloLEYuRC5QaSxGLkQubmhdKSxKbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KElvKSkpLEtvPXt9LExvPShLb1tGLkQua2FdPSIxIixLb1tGLkQucmFdPSIyIixLb1tGLkQubWFdPSIzIixLb1tGLkQuWGFdPSI0IixLbyksTW89e30sTm89T2JqZWN0LmZyZWV6ZSgoTW8uc2VhcmNoPSJzIixNby55b3V0dWJlPSJ5IixNby5wbGF5c3RvcmU9InAiLE1vLnNob3BwaW5nPSJoIixNby5hZHM9ImEiLE1vLm1hcHM9Im0iLE1vKSk7ZnVuY3Rpb24gT28oYSl7cmV0dXJuIHR5cGVvZiBhIT09Im9iamVjdCJ8fGE9PT1udWxsP3t9OmF9ZnVuY3Rpb24gUG8oYSl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1udWxsPyIiOnR5cGVvZiBhPT09Im9iamVjdCI/YS50b1N0cmluZygpOlN0cmluZyhhKX1mdW5jdGlvbiBRbyhhKXtpZihhIT09dm9pZCAwJiZhIT09bnVsbClyZXR1cm4gUG8oYSl9O3ZhciBSbz1bRi5ELmthLEYuRC5yYSxGLkQubWEsRi5ELlhhXTtmdW5jdGlvbiBTbyhhKXtmb3IodmFyIGI9bShhW0YuRC5uY118fFsiIl0pLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e3JlZ2lvbjp2b2lkIDB9LGM9Yi5uZXh0KCkpZC5yZWdpb249Yy52YWx1ZSxHYihhLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihmLGcpe2lmKGYhPT1GLkQubmMpe3ZhciBoPVBvKGcpLGw9ZS5yZWdpb24sbj15bSgpLHA9em0oKTt5bD0hMDt4bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlY2xhcmUoZixoLGwsbixwKX19fShkKSl9CmZ1bmN0aW9uIFRvKGEpe3lvKCk7dmFyIGI9YWwoMTcsZnVuY3Rpb24oKXtyZXR1cm4hMX0pLGM9YWwoMTYsZnVuY3Rpb24oKXtyZXR1cm4hMX0pOyFiJiZjJiZ4bygiY3JjIik7WmsoMTcsITApO3ZhciBkPWFbRi5ELllnXTtkJiZQKDQxKTt2YXIgZT1hW0YuRC5uY107ZT9QKDQwKTplPVsiIl07Zm9yKHZhciBmPW0oZSksZz1mLm5leHQoKSxoPXt9OyFnLmRvbmU7aD17Qm86dm9pZCAwfSxnPWYubmV4dCgpKWguQm89Zy52YWx1ZSxHYihhLGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuLHApe2lmKG4hPT1GLkQubmMmJm4hPT1GLkQuWWcpe3ZhciBxPVFvKHApLHI9bC5Cbyx0PU51bWJlcihkKSx1PXltKCksdj16bSgpO3Q9dD09PXZvaWQgMD8wOnQ7eGw9ITA7eWwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWZhdWx0KG4scSxyLHUsdix0LEFsKX19fShoKSl9CmZ1bmN0aW9uIFVvKGEpe0FsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDt2YXIgYj1hW0YuRC5uY107aWYoYil7dmFyIGM9QXJyYXkuaXNBcnJheShiKT9iOltiXTtpZighYy5pbmNsdWRlcyh6bSgpKSYmIWMuaW5jbHVkZXMoeW0oKSkpcmV0dXJufUdiKGEsZnVuY3Rpb24oZCxlKXtzd2l0Y2goZCl7Y2FzZSAiYWRfc3RvcmFnZSI6Y2FzZSAiYW5hbHl0aWNzX3N0b3JhZ2UiOmNhc2UgImFkX3VzZXJfZGF0YSI6Y2FzZSAiYWRfcGVyc29uYWxpemF0aW9uIjpicmVhaztkZWZhdWx0OnJldHVybn1BbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbZF09ZT09PSJncmFudGVkIj8zOjJ9KX0KZnVuY3Rpb24gVm8oYSxiKXt5bygpO1prKDE2LCEwKTtHYihhLGZ1bmN0aW9uKGMsZCl7dmFyIGU9UG8oZCk7eGw9ITA7eWwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS51cGRhdGUoYyxlLEFsKX0pO0dsKGIuZXZlbnRJZCxiLnByaW9yaXR5SWQpfWZ1bmN0aW9uIFdvKGEpe2EuaGFzT3duUHJvcGVydHkoImFsbCIpJiYoQWwuc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCxHYihObyxmdW5jdGlvbihiKXtBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1hLmFsbD09PSJncmFudGVkIjtBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITB9KSk7R2IoYSxmdW5jdGlvbihiLGMpe2IhPT0iYWxsIiYmKEFsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWM9PT0iZ3JhbnRlZCIsQWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwKX0pfQpmdW5jdGlvbiBYbyhhKXtBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBCbChiKX0pfWZ1bmN0aW9uIFlvKCl7dmFyIGE9Wm87QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBCbChiKX0pfWZ1bmN0aW9uICRvKGEsYil7RmwoYSxiKX1mdW5jdGlvbiBhcChhLGIpe0lsKGEsYil9ZnVuY3Rpb24gYnAoYSxiKXtIbChhLGIpfWZ1bmN0aW9uIGNwKCl7dmFyIGE9W0YuRC5rYSxGLkQuWGEsRi5ELm1hXTt0bCgpLndhaXRGb3JVcGRhdGUoYSw1MDAsQWwpfWZ1bmN0aW9uIGRwKGEpe2Zvcih2YXIgYj1tKGEpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO3RsKCkuY2xlYXJUaW1lb3V0KGQsdm9pZCAwLEFsKX1HbCgpfQpmdW5jdGlvbiBlcChhKXtmb3IodmFyIGI9e30sYz1tKGEuc3BsaXQoInwiKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpYltkLnZhbHVlXT0hMDtyZXR1cm4gYn07dmFyIGZwPU9iamVjdC5mcmVlemUoW0YuRC5rYSxGLkQubWFdKTsKdmFyIGhwPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2JbZ3BbZV18fGVdPWFbZV19cmV0dXJuIGJ9LGlwPWZ1bmN0aW9uKGEpe3JldHVybiEhUShhLEguSi52ZCkmJlIoYSxGLkQuUGQpPT09IjEiJiZSKGEsRi5ELkhkKSE9PSIxIiYmWG8oZnApfSxqcD1mdW5jdGlvbihhLGIpe2lmKCFpcChhKSlyZXR1cm4hMTt2YXIgYz1RYygpfHxPYygpPzU4OjU3LGQ9Tm0oYyxocChiKSk7VGwoZCxhLGMpO1luKHtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6YyxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGQrIiZmbXQ9OCIsdm9pZCAwLHtRZzohMCxtZXRob2Q6IkdFVCJ9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGQrIiZmbXQ9MyIpfSk7cmV0dXJuITB9LGtwPXt9LGdwPShrcC5kbD0idXJsIixrcC5kcj0KInJlZiIsa3AudWlkPSJ1c2VySWQiLGtwKTt2YXIgbHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkPWZ1bmN0aW9uKGUpe2JbZV0hPW51bGwmJmJbZV0hPT0iIiYmKGNbZV09YltlXSl9O00oNDc0KSYmZCgiX2dzaWQiKTtSKGEsRi5ELkhkKSE9PSIxIiYmKGQoImdjbGlkIiksZCgiZ2Nsc3JjIiksZCgiYXVpZCIpLGQoImRjbGlkIikpO2lmKE9iamVjdC5rZXlzKGMpLmxlbmd0aClyZXR1cm4gZCgiZ3RtIiksY307CnZhciBtcD17fSxucD0obXBbRi5ELnNhXT0iZ2N1IixtcFtGLkQuU2JdPSJnY2xnYiIsbXBbRi5ELmxiXT0iZ2NsYXciLG1wW0YuRC56Zl09ImdhZF9zb3VyY2UiLG1wW0YuRC5BZl09ImdhZF9zb3VyY2Vfc3JjIixtcFtGLkQuRGRdPSJnY2xpZCIsbXBbRi5ELkFsXT0iZ2Nsc3JjIixtcFtGLkQuQmZdPSJnYnJhaWQiLG1wW0YuRC5FZV09IndicmFpZCIsbXBbRi5ELkVkXT0iYXVpZCIsbXBbRi5ELkJsXT0iYWUiLG1wW0YuRC5IYV09bnVsbCxtcFtGLkQuRGxdPSJybmQiLG1wW0YuRC5IZF09Im5jbCIsbXBbRi5ELk5mXT0iZ2NsZGMiLG1wW0YuRC5LZF09ImRjbGlkIixtcFtGLkQuVmNdPSJlZGlkIixtcFtGLkQuVWJdPSJlbiIsbXBbRi5ELktlXT0iZ2RwciIsbXBbRi5ELlhjXT0iZ2RpZCIsbXBbRi5ELlRhXT1udWxsLG1wW0YuRC5MZV09Il9uZyIsbXBbRi5ELnRoXT0iZ3BwX3NpZCIsbXBbRi5ELnVoXT0iZ3BwIixtcFtGLkQuVmZdPSJfdHUiLG1wW0YuRC5RbF09Imd0bV91cCIsbXBbRi5ELk1lXT0KImZybSIsbXBbRi5ELlBkXT0ibHBzIixtcFtGLkQuTGldPSJkaWQiLG1wW0YuRC5VbF09Im5hdnQiLG1wW0YuRC56YV09ImRsIixtcFtGLkQuVWFdPSJkciIsbXBbRi5ELk1iXT0iZHQiLG1wW0YuRC5ibV09InNjcnNyYyIsbXBbRi5ELlpmXT0iZ2FfdWlkIixtcFtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLG1wW0YuRC5RaV09InRlc3Rvbmx5IixtcFtGLkQucnFdPSJ1X3R6IixtcFtGLkQuUGVdPSJ0b3AiLG1wW0YuRC5RZV09InRpZCIsbXBbRi5ELmZiXT0idWlkIixtcFtGLkQua2ddPSJ1c19wcml2YWN5IixtcFtGLkQuZWRdPW51bGwsbXBbRi5ELmRlXT0ibnBhIixtcCk7ZnVuY3Rpb24gb3AoYSxiKXtpZihiIT1udWxsJiZiIT09IiIpe3ZhciBjPWI9PT0hMD8iMSI6Yj09PSExPyIwIjplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIpKTtpZihTYihhLCJfJiIpKXJldHVybntrZXk6YS5zdWJzdHJpbmcoMiksdmFsdWU6Y307dmFyIGQ9bnBbYV07aWYoZCE9PW51bGwpcmV0dXJuIGQ/e2tleTpkLHZhbHVlOmN9OntrZXk6QWIoYik/ImVwbi4iK2E6ImVwLiIrYSx2YWx1ZTpjfX19O2Z1bmN0aW9uIHBwKGEpe2E9YT09PXZvaWQgMD9bXTphO3JldHVybiB4aihhKS5qb2luKCJ+Iil9O2Z1bmN0aW9uIHFwKCl7dmFyIGE9W10sYj1OdW1iZXIoJycpfHwwLGM9TnVtYmVyKCcnKXx8MDtjfHwoYz1iLzEwMCk7dmFyIGQ9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIyOCxzdHVkeUlkOjIyOCxleHBlcmltZW50SWQ6MTA1MTc3MTU0LGNvbnRyb2xJZDoxMDUxNzcxNTUsY29udHJvbElkMjoxMDUyNTUyNDUscHJvYmFiaWxpdHk6YyxhY3RpdmU6ZCxaZTowfSk7dmFyIGU9TnVtYmVyKCcnKXx8CjAsZj1OdW1iZXIoJycpfHwwO2Z8fChmPWUvMTAwKTt2YXIgZz1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjM1LHN0dWR5SWQ6MjM1LGV4cGVyaW1lbnRJZDoxMDUzNTcxNTAsY29udHJvbElkOjEwNTM1NzE1MSxjb250cm9sSWQyOjAscHJvYmFiaWxpdHk6ZixhY3RpdmU6ZyxaZToxfSk7dmFyIGg9TnVtYmVyKCcnKXx8MCxsPU51bWJlcignJyl8fAowO2x8fChsPWgvMTAwKTt2YXIgbj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY2LHN0dWR5SWQ6MjY2LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjksY29udHJvbElkOjExNTcxODUzMCxjb250cm9sSWQyOjExNTcxODUzMSxwcm9iYWJpbGl0eTpsLGFjdGl2ZTpuLFplOjB9KTt2YXIgcD1OdW1iZXIoJycpfHwwLHE9TnVtYmVyKCcnKXx8CjA7cXx8KHE9cC8xMDApO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjcsc3R1ZHlJZDoyNjcsZXhwZXJpbWVudElkOjExNTcxODUyNixjb250cm9sSWQ6MTE1NzE4NTI3LGNvbnRyb2xJZDI6MTE1NzE4NTI4LHByb2JhYmlsaXR5OnEsYWN0aXZlOnIsWmU6MH0pO3JldHVybiBhfTt2YXIgcnA9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9bmV3IFNldH0seHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLGQ9Yj1hLk5bYy5zdHVkeUlkXT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2FjdGl2ZTohMH0pOmMsZT1GaTtkLmNvbnRyb2xJZDImJmQucHJvYmFiaWxpdHk8PS4yNXx8KGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkLHtjb250cm9sSWQyOjB9KSk7ZS5zdHVkaWVzW2Quc3R1ZHlJZF09ZDtiLmZvY3VzZWQmJihhLktbYi5zdHVkeUlkXT0hMCk7aWYoYi5aZT09PTEpe3ZhciBmPWIuc3R1ZHlJZDtzcChhLHRwKCksZik7dXAoYSxmKT90aih1aixmKTp2cChhLGYpP3VqLktbZl09ITA6d3AoYSxmKSYmKHVqLkhbZl09ITApfWVsc2UgaWYoYi5aZT09PTApe3ZhciBnPWIuc3R1ZHlJZDtzcChhLGEuSCxnKTt1cChhLGcpP3RqKHVqLGcpOnZwKGEsZyk/dWouS1tnXT0hMDp3cChhLGcpJiYKKHVqLkhbZ109ITApfX0sc3A9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Rmk7aWYoZS5zdHVkaWVzW2NdKXt2YXIgZj1lLnN0dWRpZXNbY10sZz1mLmV4cGVyaW1lbnRJZCxoPWYucHJvYmFiaWxpdHk7aWYoIShiLnN0dWRpZXN8fHt9KVtjXSl7dmFyIGw9Yi5zdHVkaWVzfHx7fTtsW2NdPSEwO2Iuc3R1ZGllcz1sO2lmKCFlLnN0dWRpZXNbY10uYWN0aXZlKWlmKGUuc3R1ZGllc1tjXS5wcm9iYWJpbGl0eT4uNSlJaShiLGcsYyk7ZWxzZSBpZighKGg8PTB8fGg+MSkpe3ZhciBuPXZvaWQgMDtpZihkKXt2YXIgcD1DaShkKyJ+IitjKTtpZihwPT09ImUyIiluPS0xO2Vsc2V7Zm9yKHZhciBxPW5ldyBVaW50OEFycmF5KHApLHI9QmlnSW50KDApLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyPXI8PEJpZ0ludCg4KXxCaWdJbnQodS52YWx1ZSk7bj1OdW1iZXIociVCaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKX19R2kuc2soYixjLG4pfX19aWYoIWEuS1tjXSl7dmFyIHY9Ck5pKGIsYyk7diYmd2ouSC5LLmFkZCh2KX19LHRwPWZ1bmN0aW9uKCl7cmV0dXJuIG9tKGptLmJhLlRxLHt9KX0sdXA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBLaShjLGIpfHxLaShhLkgsYil9LHZwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTGkoYyxiKXx8TGkoYS5ILGIpfSx3cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIE1pKGMsYil8fE1pKGEuSCxiKX0seXA7CmZ1bmN0aW9uIHpwKCl7aWYoIXlwKXt2YXIgYT15cD1uZXcgcnAsYixjLGQ9KChiPUEpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5oYXNoKXx8IiI7aWYoZFswXT09PSIjIiYmZFsxXT09PSJfIiYmZFsyXT09PSJ0IiYmZFszXT09PSJlIiYmZFs0XT09PSI9Iil7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7aWYoZSlmb3IodmFyIGY9bShlLnNwbGl0KCJ+IikpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1OdW1iZXIoZy52YWx1ZSk7aCYmKGEuTltoXT0hMCx0aih1aixoKSl9fWZvcih2YXIgbD1tKHFwKCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXhwKGEsbi52YWx1ZSk7Zm9yKHZhciBwPVtdLHE9bShNZig1Nil8fFtdKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PXtzdHVkeUlkOnRbMV0sYWN0aXZlOiEhdFsyXSxwcm9iYWJpbGl0eTp0WzNdfHwwLGV4cGVyaW1lbnRJZDp0WzRdfHwKMCxjb250cm9sSWQ6dFs1XXx8MCxjb250cm9sSWQyOnRbNl18fDB9LHY9MDtzd2l0Y2godFs3XSl7Y2FzZSAyOnY9MTticmVhaztjYXNlIDM6dj0yO2JyZWFrO2Nhc2UgMTpjYXNlIDQ6Y2FzZSA1OmNhc2UgMDp2PTB9dmFyIHg7YTpzd2l0Y2godS5zdHVkeUlkKXtjYXNlIDU2NzpjYXNlIDQ2Mjp4PSEwO2JyZWFrIGE7ZGVmYXVsdDp4PSExfXZhciB5PW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdSx7WmU6dixmb2N1c2VkOnh9KTsoeS5hY3RpdmV8fHkucHJvYmFiaWxpdHk+LjUmJnkuZXhwZXJpbWVudElkfHx5LmV4cGVyaW1lbnRJZCYmeS5jb250cm9sSWQpJiZwLnB1c2goeSl9Zm9yKHZhciB6PW0ocCksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpeHAoYSxDLnZhbHVlKX19CmZ1bmN0aW9uIEFwKGEsYil7enAoKTt2YXIgYz15cDtzcChjLHRwKCksYSxiKTt1cChjLGEpP3RqKHVqLGEpOnZwKGMsYSk/dWouS1thXT0hMDp3cChjLGEpJiYodWouSFthXT0hMCl9ZnVuY3Rpb24gQnAoKXt6cCgpO3ZhciBhPXlwLGI9dXAoYSw1NjcpO2lmKGEuS1s1NjddKXt2YXIgYyxkPXRwKCk7KGM9TmkoZCw1NjcpfHxOaShhLkgsNTY3KSkmJmEuUi5hZGQoYyl9cmV0dXJuIGJ9ZnVuY3Rpb24gQ3AoYSl7enAoKTt2YXIgYj1uZXcgU2V0KHlwLlIpO2lmKGEpZm9yKHZhciBjPVEoYSxILkouQ2gpfHxbXSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYi5hZGQoZS52YWx1ZSk7cmV0dXJuIHBwKFtdLmNvbmNhdCh3KGIpKSl9O2Z1bmN0aW9uIERwKGEpe3ZhciBiPWEubG9jYXRpb24uaHJlZjtpZihhPT09YS50b3ApcmV0dXJue3VybDpiLElzOiEwfTt2YXIgYz0hMSxkPWEuZG9jdW1lbnQ7ZCYmZC5yZWZlcnJlciYmKGI9ZC5yZWZlcnJlcixhLnBhcmVudD09PWEudG9wJiYoYz0hMCkpO3ZhciBlPWEubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGUpe3ZhciBmPWVbZS5sZW5ndGgtMV0sZztmJiYoKGc9Yik9PW51bGw/dm9pZCAwOmcuaW5kZXhPZihmKSk9PT0tMSYmKGM9ITEsYj1mKX1yZXR1cm57dXJsOmIsSXM6Y319ZnVuY3Rpb24gRXAoYSl7dHJ5e3ZhciBiO2lmKGI9ISFhJiZhLmxvY2F0aW9uLmhyZWYhPW51bGwpYTp7dHJ5e0huKGEuZm9vKTtiPSEwO2JyZWFrIGF9Y2F0Y2goYyl7fWI9ITF9cmV0dXJuIGJ9Y2F0Y2goYyl7cmV0dXJuITF9fWZ1bmN0aW9uIEZwKCl7Zm9yKHZhciBhPUEsYj1hO2EmJmEhPT1hLnBhcmVudDspYT1hLnBhcmVudCxFcChhKSYmKGI9YSk7cmV0dXJuIGJ9O3ZhciBHcD1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKCl7fTtjLnByb3RvdHlwZT1hLnByb3RvdHlwZTt2YXIgZD1uZXcgYzthLmFwcGx5KGQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtyZXR1cm4gZH0sSHA9ZnVuY3Rpb24oYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9bnVsbDtjKCl9fX07ZnVuY3Rpb24gSXAoYSxiKXtpZihhKWZvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGFbY10sYyxhKX07ZnVuY3Rpb24gSnAoYSl7dmFyIGI9YS5zcGxpdCgvWz8jXS8pLGM9L1s/XS8udGVzdChhKT8iPyIrYlsxXToiIjtyZXR1cm57ems6YlswXSxwYXJhbXM6YyxmcmFnbWVudDovWyNdLy50ZXN0KGEpPyIjIisoYz9iWzJdOmJbMV0pOiIifX1mdW5jdGlvbiBLcChhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBqYyhhWzBdKTtmb3IodmFyIGM9YVswXSxkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gamMoYyl9CmZ1bmN0aW9uIExwKGEsYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtnIT1udWxsJiYoQXJyYXkuaXNBcnJheShnKT9nLmZvckVhY2goZnVuY3Rpb24obCl7cmV0dXJuIGUobCxoKX0pOihiKz1mK2VuY29kZVVSSUNvbXBvbmVudChoKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcpLGY9IiYiKSl9dmFyIGY9Yi5sZW5ndGg/IiYiOiI/IjtkLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoZD1PYmplY3QuZW50cmllcyhkKSk7QXJyYXkuaXNBcnJheShkKT9kLmZvckVhY2goZnVuY3Rpb24oZyl7cmV0dXJuIGUoZ1sxXSxnWzBdKX0pOmQuZm9yRWFjaChlKTtyZXR1cm4gamMoYStiK2MpfWZ1bmN0aW9uIE1wKGEsYil7dmFyIGM9SnAoa2MoYSkudG9TdHJpbmcoKSksZD1jLnprLnNsaWNlKC0xKT09PSIvIj8iIjoiLyIsZT1jLnprK2QrZW5jb2RlVVJJQ29tcG9uZW50KGIpO3JldHVybiBqYyhlK2MucGFyYW1zK2MuZnJhZ21lbnQpfTt2YXIgTnA9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YSxkPTA7ZDw1MDsrK2Qpe3ZhciBlO3RyeXtlPSEoIWMuZnJhbWVzfHwhYy5mcmFtZXNbYl0pfWNhdGNoKGgpe2U9ITF9aWYoZSlyZXR1cm4gYzt2YXIgZjthOnt0cnl7dmFyIGc9Yy5wYXJlbnQ7aWYoZyYmZyE9PWMpe2Y9ZzticmVhayBhfX1jYXRjaChoKXt9Zj1udWxsfWlmKCEoYz1mKSlicmVha31yZXR1cm4gbnVsbH0sT3A9ZnVuY3Rpb24oYSl7dmFyIGI9QTtpZihiLnRvcD09YilyZXR1cm4gMDtpZihhPT09dm9pZCAwPzA6YSl7dmFyIGM9Yi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoYylyZXR1cm4gY1tjLmxlbmd0aC0xXT09Yi5sb2NhdGlvbi5vcmlnaW4/MToyfXJldHVybiBFcChiLnRvcCk/MToyfSxQcD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJpbWciKX07ZnVuY3Rpb24gUXAoYSl7Zm9yKHZhciBiPVtdLGM9Qi5jb29raWUuc3BsaXQoIjsiKSxkPW5ldyBSZWdFeHAoIl5cXHMqIisoYXx8Il9nYWMiKSsiXyhVQS1cXGQrLVxcZCspPVxccyooLis/KVxccyokIiksZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLm1hdGNoKGQpO2YmJmIucHVzaCh7dWQ6ZlsxXSx2YWx1ZTpmWzJdLHRpbWVzdGFtcDpOdW1iZXIoZlsyXS5zcGxpdCgiLiIpWzFdKXx8MH0pfWIuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBifQpmdW5jdGlvbiBScChhLGIpe3ZhciBjPVFwKGEpLGQ9e307aWYoIWN8fCFjLmxlbmd0aClyZXR1cm4gZDtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS52YWx1ZS5zcGxpdCgiLiIpO2lmKCEoZlswXSE9PSIxInx8YiYmZi5sZW5ndGg8M3x8IWImJmYubGVuZ3RoIT09MykmJk51bWJlcihmWzFdKSl7ZFtjW2VdLnVkXXx8KGRbY1tlXS51ZF09W10pO3ZhciBnPXt2ZXJzaW9uOmZbMF0sdGltZXN0YW1wOk51bWJlcihmWzFdKSoxRTMsZ2NsaWQ6ZlsyXX07YiYmZi5sZW5ndGg+MyYmKGcubGFiZWxzPWYuc2xpY2UoMykpO2RbY1tlXS51ZF0ucHVzaChnKX19cmV0dXJuIGR9O2Z1bmN0aW9uIFNwKGEpe3JldHVybiBhLm9yaWdpbiE9PSJudWxsIn07dmFyIFRwPXt9LFVwPShUcC5rPXtuYTovXltcdy1dKyQvfSxUcC5iPXtuYTovXltcdy1dKyQvLG5rOiEwfSxUcC5pPXtuYTovXlsxLTldXGQqJC99LFRwLmg9e25hOi9eXGQrJC99LFRwLnQ9e25hOi9eWzEtOV1cZCokL30sVHAuZD17bmE6L15bQS1aYS16MC05Xy1dKyQvfSxUcC5qPXtuYTovXlxkKyQvfSxUcC51PXtuYTovXlsxLTldXGQqJC99LFRwLmw9e25hOi9eWzAxXSQvfSxUcC5vPXtuYTovXlsxLTldXGQqJC99LFRwLmc9e25hOi9eWzAxXSQvfSxUcC5zPXtuYTovXi4rJC99LFRwLm09e25hOi9eWzAxXSQvfSxUcCk7dmFyIFZwPXt9LFpwPShWcFs1XT17amk6ezI6V3B9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsInUiXX0sVnBbNF09e2ppOnsyOldwLEdDTDpYcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwibSJdfSxWcFsyXT17amk6e0dTMjpXcCxHUzE6WXB9LFpqOiJHUzIiLFJoOiJzb2d0amxoZCIuc3BsaXQoIiIpfSxWcCk7ZnVuY3Rpb24gJHAoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpe3ZhciBlPWEuc3BsaXQoIi4iKVswXTtjPT1udWxsfHxjKGUpO2lmKGUpe3ZhciBmPWQuamlbZV07aWYoZilyZXR1cm4gZihhLGIpfX19CmZ1bmN0aW9uIFdwKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09Myl7dmFyIGQ9Y1syXTtpZihkLmluZGV4T2YoIiQiKT09PS0xJiZkLmluZGV4T2YoIiUyNCIpIT09LTEpdHJ5e2Q9ZGVjb2RlVVJJQ29tcG9uZW50KGQpfWNhdGNoKHQpe312YXIgZT17fSxmPVpwW2JdO2lmKGYpe2Zvcih2YXIgZz1mLlJoLGg9bShkLnNwbGl0KCIkIikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9blswXTtpZihnLmluZGV4T2YocCkhPT0tMSl0cnl7dmFyIHE9ZGVjb2RlVVJJQ29tcG9uZW50KG4uc3Vic3RyaW5nKDEpKSxyPVVwW3BdO3ImJihyLm5rPyhlW3BdPWVbcF18fFtdLGVbcF0ucHVzaChxKSk6ZVtwXT1xKX1jYXRjaCh0KXt9fXJldHVybiBlfX19ZnVuY3Rpb24gYXEoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpcmV0dXJuW2QuWmosY3x8IjEiLGJxKGEsYildLmpvaW4oIi4iKX0KZnVuY3Rpb24gYnEoYSxiKXt2YXIgYz1acFtiXTtpZihjKXtmb3IodmFyIGQ9W10sZT1tKGMuUmgpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9VXBbZ107aWYoaCl7dmFyIGw9YVtnXTtpZihsIT09dm9pZCAwKWlmKGgubmsmJkFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK3AudmFsdWUpKTtlbHNlIGQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytsKSl9fXJldHVybiBkLmpvaW4oIiQiKX19ZnVuY3Rpb24gWHAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpO2Iuc2hpZnQoKTt2YXIgYz1iLnNoaWZ0KCksZD1iLnNoaWZ0KCksZT17fTtyZXR1cm4gZS5rPWQsZS5pPWMsZS5iPWIsZX0KZnVuY3Rpb24gWXAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpLnNsaWNlKDIpO2lmKCEoYi5sZW5ndGg8NXx8Yi5sZW5ndGg+Nykpe3ZhciBjPXt9O3JldHVybiBjLnM9YlswXSxjLm89YlsxXSxjLmc9YlsyXSxjLnQ9YlszXSxjLmo9Yls0XSxjLmw9Yls1XSxjLmg9Yls2XSxjfX07ZnVuY3Rpb24gY3EoYSxiLGMsZCl7dmFyIGU7cmV0dXJuKGU9ZHEoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT1hfSxiLGMsZClbYV0pIT1udWxsP2U6W119ZnVuY3Rpb24gZHEoYSxiLGMsZCl7dmFyIGU7aWYoZXEoZCkpe2Zvcih2YXIgZj17fSxnPVN0cmluZyhifHxmcSgpKS5zcGxpdCgiOyIpLGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIGw9Z1toXS5zcGxpdCgiPSIpLG49bFswXS50cmltKCk7aWYobiYmYShuKSl7dmFyIHA9bC5zbGljZSgxKS5qb2luKCI9IikudHJpbSgpO3AmJmMmJihwPWRlY29kZVVSSUNvbXBvbmVudChwKSk7dmFyIHE9dm9pZCAwLHI9dm9pZCAwOygocT1mKVtyPW5dfHwocVtyXT1bXSkpLnB1c2gocCl9fWU9Zn1lbHNlIGU9e307cmV0dXJuIGV9CmZ1bmN0aW9uIGdxKGEsYixjLGQsZSl7aWYoZXEoZSkpe3ZhciBmPWhxKGEsZCxlKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07aWYoZi5sZW5ndGghPT0wKXtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuSnJ9LGIpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuV3N9LGMpO3JldHVybiBmWzBdfX19ZnVuY3Rpb24ganEoYSxiLGMsZCl7dmFyIGU9ZnEoKSxmPUE7U3AoZikmJihmLmRvY3VtZW50LmNvb2tpZT1hKTt2YXIgZz1mcSgpO3JldHVybiBlIT09Z3x8YyE9PXZvaWQgMCYmY3EoYixnLCExLGQpLmluZGV4T2YoYyk+PTB9CmZ1bmN0aW9uIGtxKGEsYixjLGQpe2Z1bmN0aW9uIGUoeCx5LHope2lmKHo9PW51bGwpcmV0dXJuIGRlbGV0ZSBoW3ldLHg7aFt5XT16O3JldHVybiB4KyI7ICIreSsiPSIren1mdW5jdGlvbiBmKHgseSl7aWYoeT09bnVsbClyZXR1cm4geDtoW3ldPSEwO3JldHVybiB4KyI7ICIreX1pZighZXEoYy5NYykpcmV0dXJuIDI7dmFyIGc7Yj09bnVsbD9nPWErIj1kZWxldGVkOyBleHBpcmVzPSIrKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpOihjLmVuY29kZSYmKGI9ZW5jb2RlVVJJQ29tcG9uZW50KGIpKSxiPWxxKGIpLGc9YSsiPSIrYik7dmFyIGg9e307Zz1lKGcsInBhdGgiLGMucGF0aCk7dmFyIGw7Yy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZT9sPWMuZXhwaXJlcy50b1VUQ1N0cmluZygpOmMuZXhwaXJlcyE9bnVsbCYmKGw9IiIrYy5leHBpcmVzKTtnPWUoZywiZXhwaXJlcyIsbCk7Zz1lKGcsIm1heC1hZ2UiLGMuT3MpO2c9ZShnLCJzYW1lc2l0ZSIsYy5ydCk7Yy5zZWN1cmUmJgooZz1mKGcsInNlY3VyZSIpKTt2YXIgbj1jLmRvbWFpbjtpZihuJiZuLnRvTG93ZXJDYXNlKCk9PT0iYXV0byIpe2Zvcih2YXIgcD1tcSgpLHE9dm9pZCAwLHI9ITEsdD0wO3Q8cC5sZW5ndGg7Kyt0KXt2YXIgdT1wW3RdIT09Im5vbmUiP3BbdF06dm9pZCAwLHY9ZShnLCJkb21haW4iLHUpO3Y9Zih2LGMuZmxhZ3MpO3RyeXtkJiZkKGEsaCl9Y2F0Y2goeCl7cT14O2NvbnRpbnVlfXI9ITA7aWYoIW5xKHUsYy5wYXRoKSYmanEodixhLGIsYy5NYykpcmV0dXJuIDB9aWYocSYmIXIpdGhyb3cgcTtyZXR1cm4gMX1uJiZuLnRvTG93ZXJDYXNlKCkhPT0ibm9uZSImJihnPWUoZywiZG9tYWluIixuKSk7Zz1mKGcsYy5mbGFncyk7ZCYmZChhLGgpO3JldHVybiBucShuLGMucGF0aCk/MTpqcShnLGEsYixjLk1jKT8wOjF9ZnVuY3Rpb24gb3EoYSxiLGMpe2MucGF0aD09bnVsbCYmKGMucGF0aD0iLyIpO2MuZG9tYWlufHwoYy5kb21haW49ImF1dG8iKTtyZXR1cm4ga3EoYSxiLGMpfQpmdW5jdGlvbiBpcShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9W10sZixnPTA7ZzxhLmxlbmd0aDtnKyspe3ZhciBoPWFbZ10sbD1iKGgpO2w9PT1jP2QucHVzaChoKTpmPT09dm9pZCAwfHxsPGY/KGU9W2hdLGY9bCk6bD09PWYmJmUucHVzaChoKX1yZXR1cm4gZC5sZW5ndGg+MD9kOmV9ZnVuY3Rpb24gaHEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCxjKSxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl0uc3BsaXQoIi4iKSxoPWcuc2hpZnQoKTtpZighYnx8IWh8fGIuaW5kZXhPZihoKSE9PS0xKXt2YXIgbD1nLnNoaWZ0KCk7aWYobCl7dmFyIG49bC5zcGxpdCgiLSIpO2QucHVzaCh7QnI6ZVtmXSxDcjpnLmpvaW4oIi4iKSxKcjpOdW1iZXIoblswXSl8fDEsV3M6TnVtYmVyKG5bMV0pfHwxfSl9fX1yZXR1cm4gZH1mdW5jdGlvbiBscShhKXthJiZhLmxlbmd0aD4xMjAwJiYoYT1hLnN1YnN0cmluZygwLDEyMDApKTtyZXR1cm4gYX0KdmFyIHBxPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfSk/JC8scXE9LyhefFwuKWRvdWJsZWNsaWNrXC5uZXQkL2k7ZnVuY3Rpb24gbnEoYSxiKXtyZXR1cm4gYSE9PXZvaWQgMCYmKHFxLnRlc3QoQS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSl8fGI9PT0iLyImJnBxLnRlc3QoYSkpfWZ1bmN0aW9uIHJxKGEpe2lmKCFhKXJldHVybiAxO3ZhciBiPWE7WWYoNCkmJmE9PT0ibm9uZSImJihiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpO2I9Yi5pbmRleE9mKCIuIik9PT0wP2Iuc3Vic3RyaW5nKDEpOmI7cmV0dXJuIGIuc3BsaXQoIi4iKS5sZW5ndGh9ZnVuY3Rpb24gc3EoYSl7aWYoIWF8fGE9PT0iLyIpcmV0dXJuIDE7YVswXSE9PSIvIiYmKGE9Ii8iK2EpO2FbYS5sZW5ndGgtMV0hPT0iLyImJihhKz0iLyIpO3JldHVybiBhLnNwbGl0KCIvIikubGVuZ3RoLTF9CmZ1bmN0aW9uIHRxKGEsYil7dmFyIGM9IiIrcnEoYSksZD1zcShiKTtkPjEmJihjKz0iLSIrZCk7cmV0dXJuIGN9CnZhciBmcT1mdW5jdGlvbigpe3ZhciBhPUE7cmV0dXJuIFNwKGEpP2EuZG9jdW1lbnQuY29va2llOiIifSxlcT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmWWYoNSk/KEFycmF5LmlzQXJyYXkoYSk/YTpbYV0pLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBEbChiKSYmQmwoYil9KTohMH0sbXE9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKTtpZihiLmxlbmd0aD09PTQpe3ZhciBjPWJbYi5sZW5ndGgtMV07aWYoTnVtYmVyKGMpLnRvU3RyaW5nKCk9PT1jKXJldHVyblsibm9uZSJdfWZvcih2YXIgZD1iLmxlbmd0aC0yO2Q+PTA7ZC0tKWEucHVzaChiLnNsaWNlKGQpLmpvaW4oIi4iKSk7dmFyIGU9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZTtxcS50ZXN0KGUpfHxwcS50ZXN0KGUpfHxhLnB1c2goIm5vbmUiKTtyZXR1cm4gYX07ZnVuY3Rpb24gdXEoYSxiLGMsZCl7dmFyIGUsZj1OdW1iZXIoYS5wZCE9bnVsbD9hLnBkOnZvaWQgMCk7ZiE9PTAmJihlPW5ldyBEYXRlKChifHxOYigpKSsxRTMqKGZ8fDc3NzZFMykpKTtyZXR1cm57cGF0aDphLnBhdGgsZG9tYWluOmEuZG9tYWluLGZsYWdzOmEuZmxhZ3MsZW5jb2RlOiEhYyxleHBpcmVzOmUsTWM6ZH19O3ZhciB2cT1uZXcgTWFwKFtbNSwiYWRfc3RvcmFnZSJdLFs0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdXSxbMiwiYW5hbHl0aWNzX3N0b3JhZ2UiXV0pO2Z1bmN0aW9uIHdxKGEsYixjKXtpZihacFtiXSl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLHZxLmdldChiKSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD0kcChnLnZhbHVlLGIsYyk7aCYmZC5wdXNoKHhxKGgpKX1yZXR1cm4gZH19CmZ1bmN0aW9uIHlxKGEpe3ZhciBiPXpxO2lmKFpwWzJdKXtmb3IodmFyIGM9e30sZD1kcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KDIpKSxlPU9iamVjdC5rZXlzKGQpLnNvcnQoKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD1tKGRbaF0pLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD0kcChuLnZhbHVlLDIsYik7cCYmKGNbaF18fChjW2hdPVtdKSxjW2hdLnB1c2goeHEocCkpKX1yZXR1cm4gY319ZnVuY3Rpb24gQXEoYSxiLGMsZCxlKXtkPWR8fHt9O3ZhciBmPXRxKGQuZG9tYWluLGQucGF0aCksZz1hcShiLGMsZik7aWYoIWcpcmV0dXJuIDE7dmFyIGg9dXEoZCxlLHZvaWQgMCx2cS5nZXQoYykpO3JldHVybiBvcShhLGcsaCl9ZnVuY3Rpb24gQnEoYSxiKXt2YXIgYz1iLm5hO3JldHVybiB0eXBlb2YgYz09PSJmdW5jdGlvbiI/YyhhKTpjLnRlc3QoYSl9CmZ1bmN0aW9uIHhxKGEpe2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEpKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtBZzp2b2lkIDB9LGM9Yi5uZXh0KCkpe3ZhciBlPWMudmFsdWUsZj1hW2VdO2QuQWc9VXBbZV07ZC5BZz9kLkFnLm5rP2FbZV09QXJyYXkuaXNBcnJheShmKT9mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIEJxKGgsZy5BZyl9fShkKSk6dm9pZCAwOnR5cGVvZiBmPT09InN0cmluZyImJkJxKGYsZC5BZyl8fChhW2VdPXZvaWQgMCk6YVtlXT12b2lkIDB9cmV0dXJuIGF9O3ZhciBDcTtmdW5jdGlvbiBEcSgpe2Z1bmN0aW9uIGEoZyl7YyhnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9ZnVuY3Rpb24gYihnKXtkKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX12YXIgYz1FcSxkPUZxLGU9R3EoKTtpZighZS5pbml0KXskYyhCLCJtb3VzZWRvd24iLGEpOyRjKEIsImtleXVwIixhKTskYyhCLCJzdWJtaXQiLGIpO3ZhciBmPUhUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0O0hUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0PWZ1bmN0aW9uKCl7ZCh0aGlzKTtmLmNhbGwodGhpcyl9O2UuaW5pdD0hMH19ZnVuY3Rpb24gSHEoYSxiLGMsZCxlKXt2YXIgZj17Y2FsbGJhY2s6YSxkb21haW5zOmIsZnJhZ21lbnQ6Yz09PTIscGxhY2VtZW50OmMsZm9ybXM6ZCxzYW1lSG9zdDplfTtHcSgpLmRlY29yYXRvcnMucHVzaChmKX0KZnVuY3Rpb24gSXEoYSxiLGMpe2Zvcih2YXIgZD1HcSgpLmRlY29yYXRvcnMsZT17fSxmPTA7ZjxkLmxlbmd0aDsrK2Ype3ZhciBnPWRbZl0saDtpZihoPSFjfHxnLmZvcm1zKWE6e3ZhciBsPWcuZG9tYWlucyxuPWEscD0hIWcuc2FtZUhvc3Q7aWYobCYmKHB8fG4hPT1CLmxvY2F0aW9uLmhvc3RuYW1lKSlmb3IodmFyIHE9MDtxPGwubGVuZ3RoO3ErKylpZihsW3FdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGxbcV0udGVzdChuKSl7aD0hMDticmVhayBhfX1lbHNlIGlmKG4uaW5kZXhPZihsW3FdKT49MHx8cCYmbFtxXS5pbmRleE9mKG4pPj0wKXtoPSEwO2JyZWFrIGF9aD0hMX1pZihoKXt2YXIgcj1nLnBsYWNlbWVudDtyPT09dm9pZCAwJiYocj1nLmZyYWdtZW50PzI6MSk7cj09PWImJlFiKGUsZy5jYWxsYmFjaygpKX19cmV0dXJuIGV9CmZ1bmN0aW9uIEdxKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS5nbDtiJiZiLmRlY29yYXRvcnN8fChiPXtkZWNvcmF0b3JzOltdfSxhLmdsPWIpO3JldHVybiBifTt2YXIgSnE9LyguKj8pXCooLio/KVwqKC4qKS8sS3E9L15odHRwcz86XC9cLyhbXlwvXSo/KVwuP2NkblwuYW1wcHJvamVjdFwub3JnXC8/KC4qKS8sTHE9L14oPzp3d3dcLnxtXC58YW1wXC4pKy8sTXE9LyhbXj8jXSspKFw/W14jXSopPygjLiopPy87ZnVuY3Rpb24gTnEoYSl7dmFyIGI9TXEuZXhlYyhhKTtpZihiKXJldHVybntoazpiWzFdLHF1ZXJ5OmJbMl0sZnJhZ21lbnQ6YlszXX19ZnVuY3Rpb24gT3EoYSl7cmV0dXJuIG5ldyBSZWdFeHAoIiguKj8pKF58JikiK2ErIj0oW14mXSopJj8oLiopIil9CmZ1bmN0aW9uIFBxKGEsYil7dmFyIGM9W0hjLnVzZXJBZ2VudCwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCksSGMudXNlckxhbmd1YWdlfHxIYy5sYW5ndWFnZSxNYXRoLmZsb29yKE5iKCkvNjAvMUUzKS0oYj09PXZvaWQgMD8wOmIpLGFdLmpvaW4oIioiKSxkO2lmKCEoZD1DcSkpe2Zvcih2YXIgZT1BcnJheSgyNTYpLGY9MDtmPDI1NjtmKyspe2Zvcih2YXIgZz1mLGg9MDtoPDg7aCsrKWc9ZyYxP2c+Pj4xXjM5ODgyOTIzODQ6Zz4+PjE7ZVtmXT1nfWQ9ZX1DcT1kO2Zvcih2YXIgbD00Mjk0OTY3Mjk1LG49MDtuPGMubGVuZ3RoO24rKylsPWw+Pj44XkNxWyhsXmMuY2hhckNvZGVBdChuKSkmMjU1XTtyZXR1cm4oKGxeLTEpPj4+MCkudG9TdHJpbmcoMzYpfQpmdW5jdGlvbiBRcShhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9UmooQS5sb2NhdGlvbi5ocmVmKSxkPWMuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKSxlPUlqKGQsIl9nbCIsITEsITApfHwiIjtiLnF1ZXJ5PVJxKGUpfHx7fTt2YXIgZj1MaihjLCJmcmFnbWVudCIpLGc7dmFyIGg9LTE7aWYoU2IoZiwiX2dsPSIpKWg9NDtlbHNle3ZhciBsPWYuaW5kZXhPZigiJl9nbD0iKTtsPjAmJihoPWwrMysyKX1pZihoPDApZz12b2lkIDA7ZWxzZXt2YXIgbj1mLmluZGV4T2YoIiYiLGgpO2c9bjwwP2Yuc3Vic3RyaW5nKGgpOmYuc3Vic3RyaW5nKGgsbil9Yi5mcmFnbWVudD1ScShnfHwiIil8fHt9O2EmJlNxKGMsZCxmKX19ZnVuY3Rpb24gVHEoYSxiKXt2YXIgYz1PcShhKS5leGVjKGIpLGQ9YjtpZihjKXt2YXIgZT1jWzJdLGY9Y1s0XTtkPWNbMV07ZiYmKGQ9ZCtlK2YpfXJldHVybiBkfQpmdW5jdGlvbiBTcShhLGIsYyl7ZnVuY3Rpb24gZChnLGgpe3ZhciBsPVRxKCJfZ2wiLGcpO2wubGVuZ3RoJiYobD1oK2wpO3JldHVybiBsfWlmKEdjJiZHYy5yZXBsYWNlU3RhdGUpe3ZhciBlPU9xKCJfZ2wiKTtpZihlLnRlc3QoYil8fGUudGVzdChjKSl7dmFyIGY9TGooYSwicGF0aCIpO2I9ZChiLCI/Iik7Yz1kKGMsIiMiKTtHYy5yZXBsYWNlU3RhdGUoe30sIiIsIiIrZitiK2MpfX19ZnVuY3Rpb24gVXEoYSxiKXt2YXIgYz1RcSghIWIpLGQ9R3EoKTtkLmRhdGF8fChkLmRhdGE9e3F1ZXJ5Ont9LGZyYWdtZW50Ont9fSxjKGQuZGF0YSkpO3ZhciBlPXt9LGY9ZC5kYXRhO2YmJihRYihlLGYucXVlcnkpLGEmJlFiKGUsZi5mcmFnbWVudCkpO3JldHVybiBlfQp2YXIgUnE9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPVZxKGEsMyk7aWYoYiE9PXZvaWQgMCl7Zm9yKHZhciBjPXt9LGQ9Yj9iLnNwbGl0KCIqIik6W10sZT0wO2UrMTxkLmxlbmd0aDtlKz0yKXt2YXIgZj1kW2VdLGc9cWIoZFtlKzFdKTtjW2ZdPWd9c2IoIlRBR0dJTkciLDYpO3JldHVybiBjfX1jYXRjaChoKXtzYigiVEFHR0lORyIsOCl9fTtmdW5jdGlvbiBWcShhLGIpe2lmKGEpe3ZhciBjO2E6e2Zvcih2YXIgZD1hLGU9MDtlPDM7KytlKXt2YXIgZj1KcS5leGVjKGQpO2lmKGYpe2M9ZjticmVhayBhfWQ9S2ooZCl8fCIifWM9dm9pZCAwfXZhciBnPWM7aWYoZyYmZ1sxXT09PSIxIil7dmFyIGg9Z1szXSxsO2E6e2Zvcih2YXIgbj1nWzJdLHA9MDtwPGI7KytwKWlmKG49PT1QcShoLHApKXtsPSEwO2JyZWFrIGF9bD0hMX1pZihsKXJldHVybiBoO3NiKCJUQUdHSU5HIiw3KX19fQpmdW5jdGlvbiBXcShhLGIsYyxkLGUpe2Z1bmN0aW9uIGYocCl7cD1UcShhLHApO3ZhciBxPXAuY2hhckF0KHAubGVuZ3RoLTEpO3AmJnEhPT0iJiImJihwKz0iJiIpO3JldHVybiBwK259ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGc9TnEoYyk7aWYoIWcpcmV0dXJuIiI7dmFyIGg9Zy5xdWVyeXx8IiIsbD1nLmZyYWdtZW50fHwiIixuPWErIj0iK2I7ZD9sLnN1YnN0cmluZygxKS5sZW5ndGghPT0wJiZlfHwobD0iIyIrZihsLnN1YnN0cmluZygxKSkpOmg9Ij8iK2YoaC5zdWJzdHJpbmcoMSkpO3JldHVybiIiK2cuaGsraCtsfQpmdW5jdGlvbiBYcShhLGIpe2Z1bmN0aW9uIGMobixwLHEpe3ZhciByO2E6e2Zvcih2YXIgdCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkpe3I9ITA7YnJlYWsgYX1yPSExfWlmKHIpe3ZhciB1LHY9W10seDtmb3IoeCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkoeCkpe3ZhciB5PW5beF07eSE9PXZvaWQgMCYmeT09PXkmJnkhPT1udWxsJiZ5LnRvU3RyaW5nKCkhPT0iW29iamVjdCBPYmplY3RdIiYmKHYucHVzaCh4KSx2LnB1c2gocGIoU3RyaW5nKHkpKSkpfXZhciB6PXYuam9pbigiKiIpO3U9WyIxIixQcSh6KSx6XS5qb2luKCIqIik7ZD8oWWYoMyl8fFlmKDEpfHwhcCkmJllxKCJfZ2wiLHUsYSxwLHEpOlpxKCJfZ2wiLHUsYSxwLHEpfX12YXIgZD0oYS50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKT09PSJGT1JNIixlPUlxKGIsMSxkKSxmPUlxKGIsMixkKSxnPUlxKGIsNCxkKSxoPUlxKGIsMyxkKTtjKGUsITEsITEpO2MoZiwhMCwhMSk7WWYoMSkmJmMoZywhMCwhMCk7Zm9yKHZhciBsIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShsKSYmCiRxKGwsaFtsXSxhKX1mdW5jdGlvbiAkcShhLGIsYyl7Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYSI/WnEoYSxiLGMpOmMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImZvcm0iJiZZcShhLGIsYyl9ZnVuY3Rpb24gWnEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZjtpZihmPWMuaHJlZil7dmFyIGc7aWYoIShnPWQpKXt2YXIgaD1BLmxvY2F0aW9uLmhyZWYsbD1OcShjLmhyZWYpLG49TnEoaCk7Zz0hKGwmJm4mJmwuaGs9PT1uLmhrJiZsLnF1ZXJ5PT09bi5xdWVyeSYmbC5mcmFnbWVudCl9Zj1nfWlmKGYpe3ZhciBwPVdxKGEsYixjLmhyZWYsZCxlKTt2Yy50ZXN0KHApJiYoYy5ocmVmPXApfX0KZnVuY3Rpb24gWXEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTtpZihjKXt2YXIgZj1jLmdldEF0dHJpYnV0ZSgiYWN0aW9uIil8fCIiO2lmKGYpe3ZhciBnPShjLm1ldGhvZHx8IiIpLnRvTG93ZXJDYXNlKCk7aWYoZyE9PSJnZXQifHxkKXtpZihnPT09ImdldCJ8fGc9PT0icG9zdCIpe3ZhciBoPVdxKGEsYixmLGQsZSk7dmMudGVzdChoKSYmKGMuYWN0aW9uPWgpfX1lbHNle2Zvcih2YXIgbD1jLmNoaWxkTm9kZXN8fFtdLG49ITEscD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgcT1sW3BdO2lmKHEubmFtZT09PWEpe3Euc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7bj0hMDticmVha319aWYoIW4pe3ZhciByPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpO3Iuc2V0QXR0cmlidXRlKCJuYW1lIixhKTtyLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO2MuYXBwZW5kQ2hpbGQocil9fX19fQpmdW5jdGlvbiBFcShhKXt0cnl7dmFyIGI7YTp7Zm9yKHZhciBjPWEsZD0xMDA7YyYmZD4wOyl7aWYoYy5ocmVmJiZjLm5vZGVOYW1lLm1hdGNoKC9eYSg/OnJlYSk/JC9pKSl7Yj1jO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGU7ZC0tfWI9bnVsbH12YXIgZT1iO2lmKGUpe3ZhciBmPWUucHJvdG9jb2w7ZiE9PSJodHRwOiImJmYhPT0iaHR0cHM6Inx8WHEoZSxlLmhvc3RuYW1lKX19Y2F0Y2goZyl7fX1mdW5jdGlvbiBGcShhKXt0cnl7dmFyIGI9YS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpO2lmKGIpe3ZhciBjPUxqKFJqKGIpLCJob3N0Iik7WHEoYSxjKX19Y2F0Y2goZCl7fX1mdW5jdGlvbiBhcihhLGIsYyxkKXtEcSgpO3ZhciBlPWM9PT0iZnJhZ21lbnQiPzI6MTtkPSEhZDtIcShhLGIsZSxkLCExKTtlPT09MiYmc2IoIlRBR0dJTkciLDIzKTtkJiZzYigiVEFHR0lORyIsMjQpfQpmdW5jdGlvbiBicihhLGIpe0RxKCk7SHEoYSxbTmooQS5sb2NhdGlvbiwiaG9zdCIsITApXSxiLCEwLCEwKX1mdW5jdGlvbiBjcigpe3ZhciBhPUIubG9jYXRpb24uaG9zdG5hbWUsYj1LcS5leGVjKEIucmVmZXJyZXIpO2lmKCFiKXJldHVybiExO3ZhciBjPWJbMl0sZD1iWzFdLGU9IiI7aWYoYyl7dmFyIGY9Yy5zcGxpdCgiLyIpLGc9ZlsxXTtlPWc9PT0icyI/S2ooZlsyXSl8fCIiOktqKGcpfHwiIn1lbHNlIGlmKGQpe2lmKGQuaW5kZXhPZigieG4tLSIpPT09MClyZXR1cm4hMTtlPWQucmVwbGFjZSgvLS9nLCIuIikucmVwbGFjZSgvXC5cLi9nLCItIil9dmFyIGg9YS5yZXBsYWNlKExxLCIiKSxsPWUucmVwbGFjZShMcSwiIik7cmV0dXJuIGg9PT1sfHxUYihoLCIuIitsKX1mdW5jdGlvbiBkcihhLGIpe3JldHVybiBhPT09ITE/ITE6YXx8Ynx8Y3IoKX07dmFyIGVyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWU9MDt0aGlzLnZhbHVlPWE9PT12b2lkIDA/MDphfTtlci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlfD0xPDxhfTt2YXIgZnI9ZnVuY3Rpb24oYSxiKXtiPD0wfHwoYS52YWx1ZXw9MTw8Yi0xKX07ZXIucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtlci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZSY9figxPDxhKX07ZXIucHJvdG90eXBlLmNsZWFyQWxsPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT0wfTtlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlPT09YS52YWx1ZX07ZnVuY3Rpb24gZ3IoYSl7aWYoYSl0cnl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGF0b2IoYS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5jaGFyQ29kZUF0KDApfSkpfWNhdGNoKGIpe319ZnVuY3Rpb24gaHIoYSxiKXt2YXIgYz0wLGQ9MCxlLGY9Yjtkb3tpZihmPj1hLmxlbmd0aClyZXR1cm47ZT1hW2YrK107Y3w9KGUmMTI3KTw8ZDtkKz03fXdoaWxlKGUmMTI4KTtyZXR1cm5bYyxmXX07ZnVuY3Rpb24gaXIoKXt2YXIgYT1TdHJpbmcsYj1BLmxvY2F0aW9uLmhvc3RuYW1lLGM9QS5sb2NhdGlvbi5wYXRobmFtZSxkPWI9YmMoYik7ZC5zcGxpdCgiLiIpLmxlbmd0aD4yJiYoZD1kLnJlcGxhY2UoL14od3d3WzAtOV0qfHdlYnxmdHB8d2FwfGhvbWV8bXx3fGFtcHxtb2JpbGUpXC4vLCIiKSk7Yj1kO2M9YmMoYyk7dmFyIGU9Yy5zcGxpdCgiOyIpWzBdO2U9ZS5yZXBsYWNlKC9cLyhhcnxzbHB8d2VifGluZGV4KT9cLz8kLywiIik7cmV0dXJuIGEobmcoKCIiK2IrZSkudG9Mb3dlckNhc2UoKSkpfTt2YXIganI9WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl07ZnVuY3Rpb24ga3IoYSxiKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDMyKSwxMDtpZihiPT09bnVsbHx8Yj09PXZvaWQgMHx8Yj09PSIiKXJldHVybiBzYigiVEFHR0lORyIsMzMpLDExO3ZhciBjPWxyKCExKTtpZihjLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDM0KSxjLmVycm9yO2lmKCFjLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzUpLDI7Yy52YWx1ZVthXT1iO3ZhciBkPW1yKGMpO2QhPT0wJiZzYigiVEFHR0lORyIsMzYpO3JldHVybiBkfQpmdW5jdGlvbiBucihhKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDI3KSx7ZXJyb3I6MTB9O3ZhciBiPWxyKCk7aWYoYi5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwyOSksYjtpZighYi52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDMwKSx7ZXJyb3I6Mn07aWYoIShhIGluIGIudmFsdWUpKXJldHVybiBzYigiVEFHR0lORyIsMzEpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTV9O3ZhciBjPWIudmFsdWVbYV07cmV0dXJuIGM9PT1udWxsfHxjPT09dm9pZCAwfHxjPT09IiI/KHNiKCJUQUdHSU5HIiwyOCkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxMX0pOnt2YWx1ZTpjLGVycm9yOjB9fQpmdW5jdGlvbiBvcihhKXtpZihhKXt2YXIgYj1scighMSk7Yi5lcnJvciE9PTA/c2IoIlRBR0dJTkciLDM4KTpiLnZhbHVlP2EgaW4gYi52YWx1ZT8oZGVsZXRlIGIudmFsdWVbYV0sbXIoYikhPT0wJiZzYigiVEFHR0lORyIsNDEpKTpzYigiVEFHR0lORyIsNDApOnNiKCJUQUdHSU5HIiwzOSl9ZWxzZSBzYigiVEFHR0lORyIsMzcpfQpmdW5jdGlvbiBscihhKXthPWE9PT12b2lkIDA/ITA6YTtpZighQmwoanIpKXJldHVybiBzYigiVEFHR0lORyIsNDMpLHtlcnJvcjozfTt0cnl7aWYoIUEubG9jYWxTdG9yYWdlKXJldHVybiBzYigiVEFHR0lORyIsNDQpLHtlcnJvcjoxfX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ1KSx7ZXJyb3I6MTR9fXZhciBiPXtzY2hlbWE6ImdjbCIsdmVyc2lvbjoxfSxjPXZvaWQgMDt0cnl7Yz1BLmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfZ2NsX2xzIil9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0Nikse2Vycm9yOjEzfX10cnl7aWYoYyl7dmFyIGQ9SlNPTi5wYXJzZShjKTtpZihkJiZ0eXBlb2YgZD09PSJvYmplY3QiKWI9ZDtlbHNlIHJldHVybiBzYigiVEFHR0lORyIsNDcpLHtlcnJvcjoxMn19fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1pZihiLnNjaGVtYSE9PSJnY2wiKXJldHVybiBzYigiVEFHR0lORyIsNDkpLHtlcnJvcjo0fTsKaWYoYi52ZXJzaW9uIT09MSlyZXR1cm4gc2IoIlRBR0dJTkciLDUwKSx7ZXJyb3I6NX07dHJ5e3ZhciBlPXByKGIpO2EmJmUmJm1yKHt2YWx1ZTpiLGVycm9yOjB9KX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19cmV0dXJue3ZhbHVlOmIsZXJyb3I6MH19CmZ1bmN0aW9uIHByKGEpe2lmKCFhfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKCJleHBpcmVzImluIGEmJiJ2YWx1ZSJpbiBhKXt2YXIgYjt0eXBlb2YgYS5leHBpcmVzPT09Im51bWJlciI/Yj1hLmV4cGlyZXM6Yj10eXBlb2YgYS5leHBpcmVzPT09InN0cmluZyI/TnVtYmVyKGEuZXhwaXJlcyk6TmFOO2lmKGlzTmFOKGIpfHwhKERhdGUubm93KCk8PWIpKXJldHVybiBhLnZhbHVlPW51bGwsYS5lcnJvcj05LHNiKCJUQUdHSU5HIiw1NCksITB9ZWxzZXtmb3IodmFyIGM9ITEsZD1tKE9iamVjdC5rZXlzKGEpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSljPXByKGFbZS52YWx1ZV0pfHxjO3JldHVybiBjfXJldHVybiExfQpmdW5jdGlvbiBtcihhKXtpZihhLmVycm9yKXJldHVybiBhLmVycm9yO2lmKCFhLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsNDIpLDI7dmFyIGI9YS52YWx1ZSxjO3RyeXtjPUpTT04uc3RyaW5naWZ5KGIpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTIpLDZ9dHJ5e0EubG9jYWxTdG9yYWdlLnNldEl0ZW0oIl9nY2xfbHMiLGMpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTMpLDd9cmV0dXJuIDB9O3ZhciBxcj17fSxycj0ocXIuZ2NsaWQ9ITAscXIuZGNsaWQ9ITAscXIuZ2JyYWlkPSEwLHFyLndicmFpZD0hMCxxciksc3I9L15cdyskLyx0cj0vXltcdy1dKyQvLHVyPXt9LHZyPSh1ci5hdz0iRlBHQ0xBVyIsdXIpLHdyPXt9LHhyPSh3ci5hZz0iX2FnIix3ci5nYj0iX2diIix3ci5hdz0iX2F3Iix3ci5kYz0iX2RjIix3ci5nZj0iX2dmIix3ci5oYT0iX2hhIix3ci5ncD0iX2dwIix3ci5ncz0iX2dzIix3cikseXI9L14oPzp3d3dcLik/Z29vZ2xlKD86XC5jb20/KT8oPzpcLlthLXpdezJ9dD8pPyQvLHpyPS9ed3d3XC5nb29nbGVhZHNlcnZpY2VzXC5jb20kLztmdW5jdGlvbiBBcigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfWZ1bmN0aW9uIEJyKGEpe3JldHVybiFZZig1KXx8QmwoYSl9ZnVuY3Rpb24gQ3IoYSxiKXtmdW5jdGlvbiBjKCl7dmFyIGQ9QnIoYik7ZCYmYSgpO3JldHVybiBkfUhsKGZ1bmN0aW9uKCl7YygpfHxJbChjLGIpfSxiKX0KZnVuY3Rpb24gRHIoYSl7cmV0dXJuIEVyKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEZyKGEpe3JldHVybiBHcihhKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBHcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPUhyKGEucHJlZml4KSxkPUlyKCJnYiIsYyksZT1JcigiYWciLGMpO2lmKCFlfHwhZClyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7bi56Zz1sO3JldHVybiBufX0sZz1FcihkLGIpLm1hcChmKCJnYiIpKSxoPUpyKGUpLm1hcChmKCJhZyIpKTtyZXR1cm4gZy5jb25jYXQoaCkuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBLcihhLGIsYyxkLGUpe3ZhciBmPUNiKGEsZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2NsaWQ9PT1ifSk7Zj8oZi50aW1lc3RhbXA8YyYmKGYudGltZXN0YW1wPWMsZi5vZD1lKSxmLmxhYmVscz1McihmLmxhYmVsc3x8W10sZHx8W10pKTphLnB1c2goe3ZlcnNpb246IjIiLGdjbGlkOmIsdGltZXN0YW1wOmMsbGFiZWxzOmQsb2Q6ZX0pfWZ1bmN0aW9uIE1yKGEpe2Zvcih2YXIgYj13cShhLDUpfHxbXSxjPVtdLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWYsaD1OcihmKTtoJiZLcihjLGcuayxoLGcuYnx8W10sZi51KX1yZXR1cm4gYy5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEVyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107T3IoYyxhLDEpO2lmKGIpaWYoVGIoYSwiX2F3Iikpe3ZhciBkPVByKCk7ZCYmKGQub2Q9dm9pZCAwLGQub2E9ZC5vYXx8WzJdLFFyKGMsZCkpO09yKGMsImdjbF9hdyIsMil9ZWxzZSBUYihhLCJfZ2IiKSYmWWYoNikmJk9yKGMsImdjbF9nYiIsMik7Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIGYudGltZXN0YW1wLWUudGltZXN0YW1wfSk7cmV0dXJuIFJyKGMpfWZ1bmN0aW9uIFNyKGEsYil7Zm9yKHZhciBjPVtdLGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjLmluY2x1ZGVzKGYpfHxjLnB1c2goZil9Zm9yKHZhciBnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7Yy5pbmNsdWRlcyhsKXx8Yy5wdXNoKGwpfXJldHVybiBjfQpmdW5jdGlvbiBRcihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBkLGUsZj1tKGEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKGguZ2NsaWQ9PT1iLmdjbGlkKXtkPWg7YnJlYWt9aC5xYSYmYi5xYSYmaC5xYS5lcXVhbHMoYi5xYSkmJihlPWgpfWlmKGQpe3ZhciBsLG4scD0obD1kLnFhKSE9bnVsbD9sOm5ldyBlcixxPShuPWIucWEpIT1udWxsP246bmV3IGVyO3AudmFsdWV8PXEudmFsdWU7ZC5xYT1wO2QudGltZXN0YW1wPGIudGltZXN0YW1wJiYoZC50aW1lc3RhbXA9Yi50aW1lc3RhbXAsZC5vZD1iLm9kKTtkLmxhYmVscz1TcihkLmxhYmVsc3x8W10sYi5sYWJlbHN8fFtdKTtkLm9hPVNyKGQub2F8fFtdLGIub2F8fFtdKX1lbHNlIGMmJmU/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLGIpOmEucHVzaChiKX0KZnVuY3Rpb24gVHIoYSl7aWYoIWEpcmV0dXJuIG5ldyBlcjt2YXIgYj1uZXcgZXI7aWYoYT09PTEpcmV0dXJuIGZyKGIsMiksZnIoYiwzKSxiO2ZyKGIsYSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFByKCl7dmFyIGE9bnIoImdjbGlkIik7aWYoIWF8fGEuZXJyb3J8fCFhLnZhbHVlfHx0eXBlb2YgYS52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBiPWEudmFsdWU7dHJ5e2lmKCEoInZhbHVlImluIGImJmIudmFsdWUpfHx0eXBlb2YgYi52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBjPWIudmFsdWUsZD1jLnZhbHVlO2lmKCFkfHwhZC5tYXRjaCh0cikpcmV0dXJuIG51bGw7dmFyIGU9Yy5saW5rRGVjb3JhdGlvblNvdXJjZSxmPWMubGlua0RlY29yYXRpb25Tb3VyY2VzLGc9bmV3IGVyO3R5cGVvZiBlPT09Im51bWJlciI/Zz1UcihlKTp0eXBlb2YgZj09PSJudW1iZXIiJiYoZy52YWx1ZT1mKTtyZXR1cm57dmVyc2lvbjoiIixnY2xpZDpkLHRpbWVzdGFtcDpOdW1iZXIoYy5jcmVhdGlvblRpbWVNcyl8fDAsbGFiZWxzOltdLHFhOmcsb2E6WzJdfX1jYXRjaChoKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIFVyKGEpe3ZhciBiPW5yKGEpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYi52YWx1ZS5yZWR1Y2UoZnVuY3Rpb24oYyxkKXtpZighZC52YWx1ZXx8dHlwZW9mIGQudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gYzt2YXIgZT1kLnZhbHVlLGY9ZS52YWx1ZTtpZighZnx8IWYubWF0Y2godHIpKXJldHVybiBjO3ZhciBnPW5ldyBlcixoPWUubGlua0RlY29yYXRpb25Tb3VyY2VzO3R5cGVvZiBoPT09Im51bWJlciImJihnLnZhbHVlPWgpO3ZhciBsO2MucHVzaCh7dmVyc2lvbjoiIixnY2xpZDpmLHRpbWVzdGFtcDpOdW1iZXIoZS5jcmVhdGlvblRpbWVNcyl8fDAsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKXx8MCxsYWJlbHM6KGw9ZS5sYWJlbHMpIT1udWxsP2w6W10scWE6ZyxvYTpbMl19KTtyZXR1cm4gY30sW10pfWNhdGNoKGMpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gT3IoYSxiLGMpe2lmKGM9PT0xKWZvcih2YXIgZD1jcShiLEIuY29va2llLHZvaWQgMCxBcigpKSxlPW0oZCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPVZyKGYudmFsdWUuc3BsaXQoIi4iKSksaD1nLmxlbmd0aD09PTA/bnVsbDp7dmVyc2lvbjpnWzBdLGdjbGlkOmdbMl0sdGltZXN0YW1wOihOdW1iZXIoZ1sxXSl8fDApKjFFMyxsYWJlbHM6Zy5zbGljZSgzKX07aCE9bnVsbCYmKGgub2Q9dm9pZCAwLGgucWE9bmV3IGVyLGgub2E9W2NdLFFyKGEsaCkpfWVsc2UgaWYoYz09PTIpe3ZhciBsPVVyKGIpO2lmKGwpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS5vZD12b2lkIDA7cS5vYT1xLm9hO1FyKGEscSl9fX0KZnVuY3Rpb24gWnIoYSl7dmFyIGI9RXIoYSksYz1VcigiZ2NsX2RjIik7aWYoYylmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtmLm9kPXZvaWQgMDtmLm9hPWYub2F8fFsyXTtRcihiLGYpfWIuc29ydChmdW5jdGlvbihnLGgpe3ZhciBsPWcub2EmJmcub2EuaW5jbHVkZXMoMSksbj1oLm9hJiZoLm9hLmluY2x1ZGVzKDEpO3JldHVybiBsJiYhbj8tMTohbCYmbj8xOmgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIFJyKGIpfWZ1bmN0aW9uIEpyKGEpe3JldHVybiBNcihhKS5tYXAoZnVuY3Rpb24oYil7Yi5xYT1uZXcgZXI7Yi5vYT1bMV07cmV0dXJuIGJ9KX0KZnVuY3Rpb24gTHIoYSxiKXtpZighYS5sZW5ndGgpcmV0dXJuIGI7aWYoIWIubGVuZ3RoKXJldHVybiBhO3ZhciBjPXt9O3JldHVybiBhLmNvbmNhdChiKS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGMuaGFzT3duUHJvcGVydHkoZCk/ITE6Y1tkXT0hMH0pfWZ1bmN0aW9uIEhyKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09PSJzdHJpbmciJiZhLm1hdGNoKHNyKT9hOiJfZ2NsIn1mdW5jdGlvbiAkcihhLGIpe2lmKGEpe3ZhciBjPXt2YWx1ZTphLHFhOm5ldyBlcn07ZnIoYy5xYSxiKTtyZXR1cm4gY319CmZ1bmN0aW9uIGFzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6Mik7aWYoYiYmKCFmfHwhZSkpe3ZhciBnPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooZywiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooZywiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiYoZT09PXZvaWQgMHx8ZT09PSJhdyJ8fGU9PT0iYXcuZHMifHxZZig4KSYmZT09PSJhdy5kdiIpP1tmXTpbXX0KZnVuY3Rpb24gYnMoYSxiKXt2YXIgYz1SaihhKSxkPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksZT1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsIndicmFpZCIpO2Y9JGIoZik7dmFyIGc9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2JyYWlkIiksaD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksbD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpO2lmKGImJiEoZCYmZSYmZiYmZykpe3ZhciBuPWMuaGFzaC5yZXBsYWNlKCIjIiwiIik7ZD1kfHxJaihuLCJnY2xpZCIsITEpO2U9ZXx8SWoobiwiZ2Nsc3JjIiwhMSk7Zj1mfHxJaihuLCJ3YnJhaWQiLCExKTtnPWd8fElqKG4sImdicmFpZCIsITEpO2g9aHx8SWoobiwiZ2FkX3NvdXJjZSIsITEpfXJldHVybiBjcyhkLGUsbCxmLGcsaCl9CmZ1bmN0aW9uIGRzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6MiksZz0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpLGM/NDoyKTtpZihiJiYoIWV8fCFmKSl7dmFyIGg9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihoLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihoLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJmUmJihlPT09ImF3LmRzInx8ZT09PSJhdy5kdiJ8fGU9PT0iM3AuZHMifHxlPT09ImRzIik/W2ZdOmc/W2ddOltdfWZ1bmN0aW9uIGVzKCl7cmV0dXJuIGJzKEEubG9jYXRpb24uaHJlZiwhMCl9CmZ1bmN0aW9uIGNzKGEsYixjLGQsZSxmKXt2YXIgZz17fSxoPWZ1bmN0aW9uKGwsbil7Z1tuXXx8KGdbbl09W10pO2dbbl0ucHVzaChsKX07Zy5nY2xpZD1hO2cuZ2Nsc3JjPWI7Zy5kY2xpZD1jO2lmKGEhPT12b2lkIDAmJmEubWF0Y2godHIpKXN3aXRjaChiKXtjYXNlIHZvaWQgMDpoKGEsImF3Iik7YnJlYWs7Y2FzZSAiYXcuZHMiOmgoYSwiYXciKTtoKGEsImRjIik7YnJlYWs7Y2FzZSAiYXcuZHYiOllmKDgpJiYoaChhLCJhdyIpLGgoYSwiZGMiKSk7YnJlYWs7Y2FzZSAiZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICIzcC5kcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgImdmIjpoKGEsImdmIik7YnJlYWs7Y2FzZSAiaGEiOmgoYSwiaGEiKX1jJiZoKGMsImRjIik7ZCE9PXZvaWQgMCYmdHIudGVzdChkKSYmKGcud2JyYWlkPWQsaChkLCJnYiIpKTtlIT09dm9pZCAwJiZ0ci50ZXN0KGUpJiYoZy5nYnJhaWQ9ZSxoKGUsImFnIikpO2YhPT12b2lkIDAmJnRyLnRlc3QoZikmJihnLmdhZF9zb3VyY2U9CmYsaChmLCJncyIpKTtyZXR1cm4gZ31mdW5jdGlvbiBmcygpe2Zvcih2YXIgYT1lcygpLGI9ITAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlpZihhW2QudmFsdWVdIT09dm9pZCAwKXtiPSExO2JyZWFrfWImJihhPWJzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEpLGEuZ2FkX3NvdXJjZT12b2lkIDApO3JldHVybiBhfWZ1bmN0aW9uIGdzKGEpe3ZhciBiPWZzKCk7aHMoYiwhMSxhKX0KZnVuY3Rpb24gaXMoYSl7dmFyIGI9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTtiLmxlbmd0aHx8KGI9YXMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2E9YXx8e307anMoYSk7aWYoYi5sZW5ndGgpe3ZhciBjPWJbMF0sZD1OYigpLGU9dXEoYSxkLCEwKSxmPUFyKCksZz1mdW5jdGlvbigpe0JyKGYpJiZlLmV4cGlyZXMhPT12b2lkIDAmJmtyKCJnY2xpZCIse3ZhbHVlOnt2YWx1ZTpjLnZhbHVlLGNyZWF0aW9uVGltZU1zOmQsbGlua0RlY29yYXRpb25Tb3VyY2VzOmMucWEuZ2V0KCl9LGV4cGlyZXM6TnVtYmVyKGUuZXhwaXJlcyl9KX07SGwoZnVuY3Rpb24oKXtnKCk7QnIoZil8fElsKGcsZil9LGYpfX0KZnVuY3Rpb24ganMoYSl7dmFyIGI9Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiO2lmKHlyLnRlc3QoYil8fHpyLnRlc3QoYil8fGtzKCkpe3ZhciBjO2E6e2Zvcih2YXIgZD1SaihBLmxvY2F0aW9uLmhyZWYpLGU9SmooTGooZCwicXVlcnkiKSksZj1tKE9iamVjdC5rZXlzKGUpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZighcnJbaF0pe3ZhciBsPWVbaF1bMF18fCIiLG47aWYoIWx8fGwubGVuZ3RoPDUwfHxsLmxlbmd0aD4yMDApbj0hMTtlbHNle3ZhciBwPWdyKGwpLHE7aWYocCljOnt2YXIgcj1wO2lmKHImJnIubGVuZ3RoIT09MCl7dmFyIHQ9MDt0cnl7Zm9yKHZhciB1PTEwO3Q8ci5sZW5ndGgmJiEodS0tPD0wKTspe3ZhciB2PWhyKHIsdCk7aWYodj09PXZvaWQgMClicmVhazt2YXIgeD1tKHYpLHk9eC5uZXh0KCkudmFsdWUsej14Lm5leHQoKS52YWx1ZSxDPXksRD16LEk9QyY3O2lmKEM+PjM9PT0xNjM4Mil7aWYoSSE9PQowKWJyZWFrO3ZhciBHPWhyKHIsRCk7aWYoRz09PXZvaWQgMClicmVhaztxPW0oRykubmV4dCgpLnZhbHVlPT09MTticmVhayBjfXZhciBOO2Q6e3ZhciBTPXZvaWQgMCxXPXIsZWE9RDtzd2l0Y2goSSl7Y2FzZSAwOk49KFM9aHIoVyxlYSkpPT1udWxsP3ZvaWQgMDpTWzFdO2JyZWFrIGQ7Y2FzZSAxOk49ZWErODticmVhayBkO2Nhc2UgMjp2YXIgamE9aHIoVyxlYSk7aWYoamE9PT12b2lkIDApYnJlYWs7dmFyIGZhPW0oamEpLHNhPWZhLm5leHQoKS52YWx1ZTtOPWZhLm5leHQoKS52YWx1ZStzYTticmVhayBkO2Nhc2UgNTpOPWVhKzQ7YnJlYWsgZH1OPXZvaWQgMH1pZihOPT09dm9pZCAwfHxOPnIubGVuZ3RofHxOPD10KWJyZWFrO3Q9Tn19Y2F0Y2gobWEpe319cT0hMX1lbHNlIHE9ITE7bj1xfWlmKG4pe2M9bDticmVhayBhfX19Yz12b2lkIDB9dmFyIGRhPWM7ZGEmJmxzKCJnY2xfYXciLGRhLDcsYSl9fQpmdW5jdGlvbiBscyhhLGIsYyxkKXttcyhhLFt7dmVyc2lvbjoiIixnY2xpZDpiLHRpbWVzdGFtcDpOYigpLHFhOlRyKGMpfV0sZCl9CmZ1bmN0aW9uIG1zKGEsYixjKXtjPWN8fHt9O3ZhciBkPUFyKCksZT1mdW5jdGlvbigpe2lmKEJyKGQpJiZiLmxlbmd0aD4wKXt2YXIgZj1VcihhKXx8W107Yi5mb3JFYWNoKGZ1bmN0aW9uKGcpe3ZhciBoPXVxKGMsZy50aW1lc3RhbXAsITApO2guZXhwaXJlcyE9PXZvaWQgMCYmUXIoZix7dmVyc2lvbjoiIixnY2xpZDpnLmdjbGlkLHRpbWVzdGFtcDpnLnRpbWVzdGFtcCxleHBpcmVzOk51bWJlcihoLmV4cGlyZXMpLHFhOmcucWEsbGFiZWxzOmcubGFiZWxzfSwhMCl9KTtmLmxlbmd0aCYma3IoYSxmLm1hcChmdW5jdGlvbihnKXt2YXIgaD17dmFsdWU6Zy5nY2xpZCxjcmVhdGlvblRpbWVNczpnLnRpbWVzdGFtcCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Zy5xYT9nLnFhLmdldCgpOjB9LGw7aWYoKGw9Zy5sYWJlbHMpPT1udWxsPzA6bC5sZW5ndGgpaC5sYWJlbHM9Zy5sYWJlbHM7cmV0dXJue3ZhbHVlOmgsZXhwaXJlczpOdW1iZXIoZy5leHBpcmVzKX19KSl9fTtIbChmdW5jdGlvbigpe0JyKGQpPwplKCk6SWwoZSxkKX0sZCl9CmZ1bmN0aW9uIGhzKGEsYixjLGQsZSl7Yz1jfHx7fTtlPWV8fFtdO3ZhciBmPUhyKGMucHJlZml4KSxnPWR8fE5iKCksaD1NYXRoLnJvdW5kKGcvMUUzKSxsPUFyKCksbj0hMSxwPSExLHE9WWYoOSkscj1mdW5jdGlvbigpe2lmKEJyKGwpKXt2YXIgdD11cShjLGcsITApO3QuTWM9bDtmb3IodmFyIHU9ZnVuY3Rpb24oVyxlYSl7dmFyIGphPUlyKFcsZik7amEmJihvcShqYSxlYSx0KSxXIT09ImdiIiYmKG49ITApKX0sdj1mdW5jdGlvbihXKXt2YXIgZWE9WyJHQ0wiLGgsV107ZS5sZW5ndGg+MCYmZWEucHVzaChlLmpvaW4oIi4iKSk7cmV0dXJuIGVhLmpvaW4oIi4iKX0seD1tKFsiYXciLCJkYyIsImdmIiwiaGEiLCJncCJdKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTthW3pdJiZ1KHosdihhW3pdWzBdKSl9aWYoKCFufHxxKSYmYS5nYil7dmFyIEM9YS5nYlswXSxEPUlyKCJnYiIsZik7IWImJkVyKEQpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1DJiYKVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSl8fHUoImdiIix2KEMpKX19aWYoIXAmJmEuZ2JyYWlkJiZCcigiYWRfc3RvcmFnZSIpJiYocD0hMCwhbnx8cSkpe3ZhciBJPWEuZ2JyYWlkLEc9SXIoImFnIixmKTtpZihifHwhSnIoRykuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUkmJlcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pKXt2YXIgTj17fSxTPShOLms9SSxOLmk9IiIraCxOLmI9ZSxOKTtBcShHLFMsNSxjLGcpfX1ucyhhLGYsZyxjKX07SGwoZnVuY3Rpb24oKXtyKCk7QnIobCl8fElsKHIsbCl9LGwpfQpmdW5jdGlvbiBucyhhLGIsYyxkKXtpZihhLmdhZF9zb3VyY2UhPT12b2lkIDAmJkJyKCJhZF9zdG9yYWdlIikpe3ZhciBlPXFkKCk7aWYoZSE9PSJyIiYmZSE9PSJoIil7dmFyIGY9YS5nYWRfc291cmNlLGc9SXIoImdzIixiKTtpZihnKXt2YXIgaD1NYXRoLmZsb29yKChOYigpLShwZCgpfHwwKSkvMUUzKSxsLG49aXIoKSxwPXt9O2w9KHAuaz1mLHAuaT0iIitoLHAudT1uLHApO0FxKGcsbCw1LGQsYyl9fX19ZnVuY3Rpb24gb3MoYSxiLGMpe2Zvcih2YXIgZD13cShiLGMpLGU9MDtlPGQubGVuZ3RoOysrZSlpZihOcihkW2VdKT5hKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBwcyhhKXt2YXIgYj1xcyxjPXJzKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9Y1tnXTtpZihoKXt2YXIgbD1NYXRoLm1pbihzcyhoKSxOYigpKSxuPXVxKGEsbCwhMCk7bi5NYz1BcigpO3ZhciBwPUlyKGcsZCk7cCYmb3EocCxoLG4pfX12YXIgcT1VcSghMCk7aHMoY3MocS5nY2xpZCxxLmdjbHNyYyksITEsYSl9LEFyKCkpfQpmdW5jdGlvbiBycyhhKXt2YXIgYj1VcSghMCksYz1IcihhKSxkPXt9LGU7Zm9yKGUgaW4geHIpaWYoeHIuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBmPWUsZz1JcihmLGMpO2lmKGchPT12b2lkIDApe3ZhciBoPWJbZ107aWYoaCl7dmFyIGw9c3MoaCksbjthOntmb3IodmFyIHA9TWF0aC5taW4obCxOYigpKXx8TmIoKSxxPWNxKGcsQi5jb29raWUsdm9pZCAwLEFyKCkpLHI9MDtyPHEubGVuZ3RoOysrcilpZihzcyhxW3JdKT5wKXtuPSEwO2JyZWFrIGF9bj0hMX1ufHwoZFtmXT1oKX19fXJldHVybiBkfQpmdW5jdGlvbiB0cyhhKXt2YXIgYj1bImFnIl0sYz1VcSghMCksZD1IcihhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZihmKXt2YXIgZz1jW2ZdO2lmKGcpe3ZhciBoPSRwKGcsNSk7aWYoaCl7dmFyIGw9TnIoaCk7bHx8KGw9TmIoKSk7aWYob3MobCxmLDUpKWJyZWFrO2guaT0iIitNYXRoLnJvdW5kKGwvMUUzKTtBcShmLGgsNSxhLGwpfX19fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIElyKGEsYil7dmFyIGM9eHJbYV07aWYoYyE9PXZvaWQgMClyZXR1cm4gYitjfWZ1bmN0aW9uIHNzKGEpe3JldHVybiBWcihhLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/KE51bWJlcihhLnNwbGl0KCIuIilbMV0pfHwwKSoxRTM6MH1mdW5jdGlvbiBOcihhKXtyZXR1cm4gYT8oTnVtYmVyKGEuaSl8fDApKjFFMzowfQpmdW5jdGlvbiBWcihhKXtyZXR1cm4gYS5sZW5ndGg8M3x8YVswXSE9PSJHQ0wiJiZhWzBdIT09IjEifHwhL15cZCskLy50ZXN0KGFbMV0pfHwhdHIudGVzdChhWzJdKT9bXTphfWZ1bmN0aW9uIHVzKGEsYixjLGQpe3ZhciBlPXFzO2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZihuKXt2YXIgcD1jcShuLEIuY29va2llLHZvaWQgMCxBcigpKTtwLmxlbmd0aCYmKGhbbl09cC5zb3J0KClbcC5sZW5ndGgtMV0pfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB2cyhhLGIsYyl7dmFyIGQ9cXM7aWYoWWYoMTMpJiZBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9ZnVuY3Rpb24oKXtmb3IodmFyIGY9e30sZz0wO2c8ZC5sZW5ndGg7KytnKXt2YXIgaD12cltkW2ddXTtpZihoKXt2YXIgbD1jcShoLEIuY29va2llLHZvaWQgMCxBcigpKTtpZihsLmxlbmd0aCl7Zm9yKHZhciBuPXZvaWQgMCxwPTAscT1tKGwpLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9JHAodCw0KTtpZih1JiYodS5tPT09IjEifHxZZigxNikpKXt2YXIgdj1Ocih1KTt2Pj1wJiYocD12LG49dCl9fW4mJihmW2hdPW4pfX19cmV0dXJuIGZ9O0NyKGZ1bmN0aW9uKCl7YXIoZSxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gd3MoYSxiLGMsZCl7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPVsiYWciXSxmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKCFuKXJldHVybnt9O3ZhciBwPXdxKG4sNSk7aWYocC5sZW5ndGgpe3ZhciBxPXAuc29ydChmdW5jdGlvbihyLHQpe3JldHVybiBOcih0KS1OcihyKX0pWzBdO2hbbl09YXEocSw1KX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LFsiYWRfc3RvcmFnZSJdKX19ZnVuY3Rpb24gUnIoYSl7cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0ci50ZXN0KGIuZ2NsaWQpfSl9CmZ1bmN0aW9uIHhzKGEsYil7aWYoU3AoQSkpe2Zvcih2YXIgYz1IcihiLnByZWZpeCksZD17fSxlPTA7ZTxhLmxlbmd0aDtlKyspeHJbYVtlXV0mJihkW2FbZV1dPXhyW2FbZV1dKTtDcihmdW5jdGlvbigpe0diKGQsZnVuY3Rpb24oZixnKXt2YXIgaD1jcShjK2csQi5jb29raWUsdm9pZCAwLEFyKCkpO2guc29ydChmdW5jdGlvbih0LHUpe3JldHVybiBzcyh1KS1zcyh0KX0pO2lmKGgubGVuZ3RoKXt2YXIgbD1oWzBdLG49c3MobCkscD1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpLnNsaWNlKDMpOltdLHE9e30scjtyPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIilbMl06dm9pZCAwO3FbZl09W3JdO2hzKHEsITAsYixuLHApfX0pfSxBcigpKX19CmZ1bmN0aW9uIHlzKGEpe3ZhciBiPVsiYWciXSxjPVsiZ2JyYWlkIl07Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZighZilicmVhazt2YXIgZz13cShmLDUpO2lmKGcubGVuZ3RoKXt2YXIgaD1nLnNvcnQoZnVuY3Rpb24ocSxyKXtyZXR1cm4gTnIociktTnIocSl9KVswXSxsPU5yKGgpLG49aC5iLHA9e307cFtjW2VdXT1oLms7aHMocCwhMCxhLGwsbil9fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIHpzKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoYVtiW2NdXSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gQXMoYSl7ZnVuY3Rpb24gYihoLGwsbil7biYmKGhbbF09bil9aWYoRWwoKSl7dmFyIGM9ZXMoKSxkO2EuaW5jbHVkZXMoImdhZF9zb3VyY2UiKSYmKGQ9Yy5nYWRfc291cmNlIT09dm9pZCAwP2MuZ2FkX3NvdXJjZTpVcSghMSkuX2dzKTtpZih6cyhjLGEpfHxkKXt2YXIgZT17fTtiKGUsImdjbGlkIixjLmdjbGlkKTtiKGUsImRjbGlkIixjLmRjbGlkKTtiKGUsImdjbHNyYyIsYy5nY2xzcmMpO2IoZSwid2JyYWlkIixjLndicmFpZCk7YihlLCJnYnJhaWQiLGMuZ2JyYWlkKTticihmdW5jdGlvbigpe3JldHVybiBlfSwzKTt2YXIgZj17fSxnPShmLl91cD0iMSIsZik7YihnLCJfZ3MiLGQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGd9LDEpfX19ZnVuY3Rpb24ga3MoKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpO3JldHVybiBMaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIil9CmZ1bmN0aW9uIEJzKGEpe2lmKCFZZigxKSlyZXR1cm4gbnVsbDt2YXIgYj1VcSghMCkuZ2FkX3NvdXJjZTtpZihiIT1udWxsKXJldHVybiBBLmxvY2F0aW9uLmhhc2g9IiIsYjtpZihZZigyKSl7Yj1rcygpO2lmKGIhPW51bGwpcmV0dXJuIGI7dmFyIGM9ZXMoKTtpZih6cyhjLGEpKXJldHVybiIwIn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDcyhhKXt2YXIgYj1CcyhhKTtiIT1udWxsJiZicihmdW5jdGlvbigpe3ZhciBjPXt9O3JldHVybiBjLmdhZF9zb3VyY2U9YixjfSw0KX0KZnVuY3Rpb24gRHMoYSxiLGMpe3ZhciBkPVtdO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gZDtmb3IodmFyIGU9e30sZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdLGg9Zy56Zz9nLnpnOiJnY2wiO2lmKChnLmxhYmVsc3x8W10pLmluZGV4T2YoYyk9PT0tMSl7YS5wdXNoKDApO3ZhciBsPSExLG49dm9pZCAwO2lmKChuPWcub2EpPT1udWxsPzA6bi5pbmNsdWRlcygyKSlsPSEwO3ZhciBwPXZvaWQgMDsoKHA9Zy5vYSk9PW51bGw/MDpwLmluY2x1ZGVzKDEpKSYmIWVbaF0mJihsPSEwLGVbaF09ITApO2wmJmQucHVzaChnKX1lbHNle2EucHVzaCgxKTt2YXIgcT12b2lkIDA7aWYoKHE9Zy5vYSk9PW51bGw/MDpxLmluY2x1ZGVzKDEpKWVbaF09ITB9fXJldHVybiBkfQpmdW5jdGlvbiBFcyhhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdO2M9Y3x8e307aWYoIUJyKEFyKCkpKXJldHVybiBmO3ZhciBnPUVyKGEsZSksaD1EcyhmLGcsYik7aWYoaC5sZW5ndGgmJiFkKXtmb3IodmFyIGw9W10sbj0hMSxwPW0oaCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWUsdD1yLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PSh0LmxhYmVsc3x8W10pLmNvbmNhdChbYl0pLEM9dm9pZCAwO2lmKCgoQz15KT09bnVsbD8wOkMuaW5jbHVkZXMoMSkpJiYhbil7dmFyIEQ9W3UsTWF0aC5yb3VuZCh4LzFFMyksdl0uY29uY2F0KHopLmpvaW4oIi4iKSxJPXVxKGMseCwhMCk7SS5NYz1BcigpO29xKGEsRCxJKTtuPSEwfXZhciBHPXZvaWQgMDtlJiYoKEc9eSk9PW51bGw/MDpHLmluY2x1ZGVzKDIpKSYmbC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scix7bGFiZWxzOnp9KSl9bC5sZW5ndGgmJgptcygiZ2NsX2diIixsLGMpfXJldHVybiBmfQpmdW5jdGlvbiBGcyhhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7dmFyIGQ9W107Yj1ifHx7fTt2YXIgZT1HcihiLGMpLGY9RHMoZCxlLGEpO2lmKGYubGVuZ3RoKXtmb3IodmFyIGc9W10saD17fSxsPW0oZiksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWUscT1IcihiLnByZWZpeCkscj1JcihwLnpnLHEpO2lmKCFyKXJldHVybiBkO3ZhciB0PXAsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9TWF0aC5yb3VuZCh4LzFFMyksQz1Mcih0LmxhYmVsc3x8W10sW2FdKSxEPXZvaWQgMDtpZigoRD15KT09bnVsbD8wOkQuaW5jbHVkZXMoMSkpaWYocC56Zz09PSJhZyImJiFoLmFnKXt2YXIgST17fSxHPShJLms9dixJLmk9IiIreixJLmI9QyxJKTtBcShyLEcsNSxiLHgpO2guYWc9ITB9ZWxzZSBpZihwLnpnPT09ImdiIiYmIWguZ2Ipe3ZhciBOPVt1LHosdl0uY29uY2F0KEMpLmpvaW4oIi4iKSxTPXVxKGIseCwhMCk7Uy5NYz0KQXIoKTtvcShyLE4sUyk7aC5nYj0hMH12YXIgVz12b2lkIDA7YyYmKChXPXkpPT1udWxsPzA6Vy5pbmNsdWRlcygyKSkmJmcucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHAse2xhYmVsczpDfSkpfWcubGVuZ3RoJiZtcygiZ2NsX2diIixnLGIpfXJldHVybiBkfWZ1bmN0aW9uIEdzKGEsYil7dmFyIGM9SHIoYiksZD1JcihhLGMpO2lmKCFkKXJldHVybiAwO3ZhciBlO2U9YT09PSJhZyI/SnIoZCk6RXIoZCk7Zm9yKHZhciBmPTAsZz0wO2c8ZS5sZW5ndGg7ZysrKWY9TWF0aC5tYXgoZixlW2ddLnRpbWVzdGFtcCk7cmV0dXJuIGZ9ZnVuY3Rpb24gSHMoYSl7Zm9yKHZhciBiPTAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlmb3IodmFyIGU9YVtkLnZhbHVlXSxmPTA7ZjxlLmxlbmd0aDtmKyspYj1NYXRoLm1heChiLE51bWJlcihlW2ZdLnRpbWVzdGFtcCkpO3JldHVybiBifQpmdW5jdGlvbiBJcyhhKXt2YXIgYj1NYXRoLm1heChHcygiYXciLGEpLEhzKEJyKEFyKCkpP1JwKCk6e30pKSxjPU1hdGgubWF4KEdzKCJnYiIsYSksSHMoQnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSkpO2M9TWF0aC5tYXgoYyxHcygiYWciLGEpKTtyZXR1cm4gYz5ifTt2YXIgSnM9UmVnRXhwKCJeVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKig/OiUzQlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSopKiQiKSxLcz0vXn4/W1x3LV0rKD86XC5+P1tcdy1dKykqJC8sTHM9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvLE1zPS87Z2FjPShbXjs/XSspLyxOcz0vO2dhY2diPShbXjs/XSspLzsKZnVuY3Rpb24gT3MoYSxiKXtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBjPUIubG9jYXRpb24uaHJlZi5tYXRjaChiKTtyZXR1cm4gYyYmYy5sZW5ndGg9PT0yJiZjWzFdLm1hdGNoKEpzKT9LaihjWzFdKXx8IiI6IiJ9Zm9yKHZhciBkPVtdLGU9bShPYmplY3Qua2V5cyhhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLGg9W10sbD1hW2ddLG49MDtuPGwubGVuZ3RoO24rKyloLnB1c2gobFtuXS5nY2xpZCk7ZC5wdXNoKGcrIjoiK2guam9pbigiLCIpKX1yZXR1cm4gZC5sZW5ndGg+MD9kLmpvaW4oIjsiKToiIn0KZnVuY3Rpb24gUHMoYSxiLGMpe2Zvcih2YXIgZD1CcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9LGU9W10sZj0hMSxnPW0oT2JqZWN0LmtleXMoZCkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49RXMoIl9nYWNfZ2JfIitsLGEsYixjKTtmPWZ8fG4ubGVuZ3RoIT09MCYmbi5zb21lKGZ1bmN0aW9uKHApe3JldHVybiBwPT09MX0pO2UucHVzaChsKyI6IituLmpvaW4oIiwiKSl9cmV0dXJue1JyOmY/ZS5qb2luKCI7Iik6IiIsUXI6T3MoZCxOcyl9fWZ1bmN0aW9uIFFzKGEpe3ZhciBiPUIubG9jYXRpb24uaHJlZi5tYXRjaChuZXcgUmVnRXhwKCI7IithKyI9KFteOz9dKykiKSk7cmV0dXJuIGImJmIubGVuZ3RoPT09MiYmYlsxXS5tYXRjaChLcyk/YlsxXTp2b2lkIDB9CmZ1bmN0aW9uIFJzKGEpe3ZhciBiPXt9LGMsZCxlO0xzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSYmKGM9UXMoImdjbGdzIiksZD1RcygiZ2Nsc3QiKSxlPVFzKCJnY2xscCIpKTtpZihjJiZkJiZlKWIuRWc9YyxiLldoPWQsYi5VaD1lO2Vsc2V7dmFyIGY9TmIoKSxnPU1yKChhfHwiX2djbCIpKyJfZ3MiKSxoPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLmdjbGlkfSksbD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gZi1wLnRpbWVzdGFtcH0pLG49Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAub2R9KTtoLmxlbmd0aD4wJiZsLmxlbmd0aD4wJiZuLmxlbmd0aD4wJiYoYi5FZz1oLmpvaW4oIi4iKSxiLldoPWwuam9pbigiLiIpLGIuVWg9bi5qb2luKCIuIikpfXJldHVybiBifQpmdW5jdGlvbiBTcyhhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKSxkPWI/Yi5zcGxpdCgiLiIpOltdLGU9ZC5sZW5ndGg9PT1jLmxlbmd0aD9kOnZvaWQgMDtyZXR1cm4gYy5tYXAoZnVuY3Rpb24oZixnKXt2YXIgaD17Z2NsaWQ6Zn07aWYoZSl7dmFyIGw9ZVtnXS5zcGxpdCgiXyIpO2lmKGwubGVuZ3RoPT09Mil7aC5xYT1uZXcgZXIoTnVtYmVyKGxbMF0pKTt2YXIgbjt2YXIgcD1OdW1iZXIobFsxXSk7aWYocD09PTApbj1bMF07ZWxzZXt2YXIgcT1bXTtwJjEmJnEucHVzaCgxKTtwJjImJnEucHVzaCgyKTtwJjQmJnEucHVzaCgzKTtwJjgmJnEucHVzaCg0KTtwJjE2JiZxLnB1c2goNSk7bj1xfWgub2E9bn19cmV0dXJuIGh9KX0KZnVuY3Rpb24gVHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgZT1RcyhjKTtpZihlKXtpZihZZigxNykpe3ZhciBmPVFzKGMrIl9zcmMiKTtyZXR1cm4gU3MoZSxmKX1pZihkKXt2YXIgZz1uZXcgZXI7ZnIoZywyKTtmcihnLDMpO3JldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOmcsb2E6WzFdfX0pfXJldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOm5ldyBlcixvYTpbMV19fSl9fWVsc2V7aWYoYj09PSJnY2xpZCIpe2Zvcih2YXIgaD1FcigoYXx8Il9nY2wiKSsiX2F3IixkKSxsPU51bWJlcihYZls0XT09PXZvaWQgMD8wOlhmWzRdKSxuPW0oVXMoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS50aW1lc3RhbXA+bCYmUXIoaCxxKX1yZXR1cm4gaH1pZihiPT09IndicmFpZCIpcmV0dXJuIEVyKChhfHwKIl9nY2wiKSsiX2diIixkKTtpZihiPT09ImJyYWlkcyIpcmV0dXJuIEdyKHtwcmVmaXg6YX0sZCl9cmV0dXJuW119ZnVuY3Rpb24gVXMoKXtyZXR1cm4od3EodnIuYXcsNCl8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEubT09PSIxIn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm57Z2NsaWQ6YS5rLHRpbWVzdGFtcDpOdW1iZXIoYS5pKSx2ZXJzaW9uOiIiLG9hOls1XX19KX1mdW5jdGlvbiBWcyhhKXtmb3IodmFyIGI9MCxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZT4wJiYoYnw9MTw8ZS0xKX1yZXR1cm4gYi50b1N0cmluZygpfWZ1bmN0aW9uIFdzKGEpe3JldHVybiBMcy50ZXN0KEIubG9jYXRpb24uaG9zdCk/IShRcygiZ2NsYXciKXx8UXMoImdhYyIpKTpJcyhhKX0KZnVuY3Rpb24gWHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7dmFyIGU7ZT1jP0ZzKGEsYixkKTpFcygoYiYmYi5wcmVmaXh8fCJfZ2NsIikrIl9nYiIsYSxiLHZvaWQgMCxkKTtyZXR1cm4gZS5sZW5ndGg9PT0wfHxlLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBmPT09MH0pPyIiOmUuam9pbigiLiIpfTsKdmFyIFlzPWZ1bmN0aW9uKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPWtqKCJhZHNfcGFnZXZpZXciLGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZihjW2FdKXJldHVybiExO2J8fChjW2FdPSEwKTtyZXR1cm4hMH0sWnM9ZnVuY3Rpb24oYSl7cmV0dXJuIFNqKGEsImdjbGlkIGRjbGlkIGdicmFpZCB3YnJhaWQgZ2NsYXcgZ2NsZGMgZ2NsaGEgZ2NsZ2YgZ2NsZ2IgX2dsIi5zcGxpdCgiICIpLCIwIil9LGF0PWZ1bmN0aW9uKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKSxiPXZvaWQgMCxjPXZvaWQgMCxkPUxqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxlPUxqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9jYW1wYWlnbmlkIiksZixnPWEuaGFzaC5yZXBsYWNlKCIjIiwiIikubWF0Y2goJHMpO2Y9Zz9nWzFdOnZvaWQgMDtkJiZmPyhiPWQsYz0xKTpkPyhiPWQsYz0yKTpmJiYoYj1mLGM9Myk7cmV0dXJue0RnOmIsU3I6YyxUaDplfX0sYnQ9ZnVuY3Rpb24oYSl7dmFyIGI9Ck9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGEoYil9LGN0PWZ1bmN0aW9uKGEpe3ZhciBiPVtdO0diKGEsZnVuY3Rpb24oYyxkKXtkPVJyKGQpO2Zvcih2YXIgZT1bXSxmPTA7ZjxkLmxlbmd0aDtmKyspZS5wdXNoKGRbZl0uZ2NsaWQpO2UubGVuZ3RoJiZiLnB1c2goYysiOiIrZS5qb2luKCIsIikpfSk7cmV0dXJuIGIuam9pbigiOyIpfSxldD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZHQoYSk7aWYoZClyZXR1cm4gZDt2YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc9W107YT09PSJhdyI/Zz1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOmE9PT0iZGMiJiYoZz1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpKTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1t7dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDoiMCJ9XTpnLm1hcChmdW5jdGlvbihsKXtyZXR1cm57dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCwKZ2NsaWQ6bC52YWx1ZSxxYTpsLnFhLG9hOlsxXX19KX12YXIgaD1JcihhLGUpO3JldHVybiBoP2E9PT0iYXciP0VyKGgsTSg1NjIpKTpacihoKTpbXX0sZHQ9ZnVuY3Rpb24oYSl7dmFyIGI9VGooImdjbCIrYSksYz1hPT09ImRjInx8YT09PSJhdyI/VGooImdjbCIrYSsiX3NyYyIpOnZvaWQgMDtpZihiKXJldHVybiBTcyhiLGMpfSxmdD1mdW5jdGlvbihhLGIsYyl7aWYoYT09PSJhdyJ8fGE9PT0iZGMifHxhPT09ImdiIil7dmFyIGQ9VGooImdjbCIrYSk7aWYoZClyZXR1cm4gZC5zcGxpdCgiLiIpfXZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZztnPWVzKClbYV18fFtdO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/WyIwIl06Z312YXIgaD1JcihhLGUpO3JldHVybiBoP0RyKGgpOltdfSxndD1mdW5jdGlvbihhLGIsYyl7aWYoIVIoYSxiKXx8IVIoYSxjKSlyZXR1cm4iIjt2YXIgZD1SKGEsYikuc3BsaXQoIi4iKSxlPVIoYSxjKS5zcGxpdCgiLiIpO3JldHVybiBkLmxlbmd0aCYmCmUubGVuZ3RoJiZkLmxlbmd0aD09PWUubGVuZ3RoJiZkWzBdJiZlWzBdP2QubWFwKGZ1bmN0aW9uKGYsZyl7cmV0dXJuIGYrIl8iK2VbZ119KS5qb2luKCIuIik6IiJ9LCRzPS9eZ2FkX3NvdXJjZVtfPV0oXGQrKSQvO2Z1bmN0aW9uIGh0KGEsYixjKXt2YXIgZD1SKGEsRi5ELlRhKTtpZihkJiZ0eXBlb2YgZD09PSJvYmplY3QiKWZvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWRbZ107aWYoaCE9PXZvaWQgMCl7aD09PW51bGwmJihoPSIiKTt2YXIgbD0iZ2FwLiIrZyxuPVN0cmluZyhoKTtjP2MobCxuKTpiW2xdPW59fX07dmFyIGl0PSExLGp0PVtdO2Z1bmN0aW9uIGt0KCl7aWYoIWl0KXtpdD0hMDtmb3IodmFyIGE9anQubGVuZ3RoLTE7YT49MDthLS0panRbYV0oKTtqdD1bXX19O2Z1bmN0aW9uIGx0KGEpe3ZhciBiPVtdLGM9MCxkO2ZvcihkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9O2Z1bmN0aW9uIG10KGEsYixjKXtyZXR1cm4gdHlwZW9mIGEuYWRkRXZlbnRMaXN0ZW5lcj09PSJmdW5jdGlvbiI/KGEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpLCEwKTohMX1mdW5jdGlvbiBudChhLGIsYyl7dHlwZW9mIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj09PSJmdW5jdGlvbiImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfTtmdW5jdGlvbiBvdChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0c3x8KGEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzPVtdKTt2YXIgZT1QcChhLmRvY3VtZW50KTtpZihjKXt2YXIgZj1mdW5jdGlvbigpe2lmKGMpe3ZhciBnPWEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLGg9RGMoZyxlKTtoPj0wJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZyxoLDEpfW50KGUsImxvYWQiLGYpO250KGUsImVycm9yIixmKX07bXQoZSwibG9hZCIsZik7bXQoZSwiZXJyb3IiLGYpfWQmJihlLmF0dHJpYnV0aW9uU3JjPSIiKTtlLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLnB1c2goZSl9CmZ1bmN0aW9uIHB0KGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPSJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9nZW5fMjA0P2lkPXRjZmUiO0lwKGEsZnVuY3Rpb24oZCxlKXtpZihkfHxkPT09MCljKz0iJiIrZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSl9KTtxdChjLGIpfQpmdW5jdGlvbiBxdChhLGIpe3ZhciBjPXdpbmRvdyxkO2I9Yj09PXZvaWQgMD8hMTpiO2Q9ZD09PXZvaWQgMD8hMTpkO2lmKGMuZmV0Y2gpe3ZhciBlPXtrZWVwYWxpdmU6ITAsY3JlZGVudGlhbHM6ImluY2x1ZGUiLHJlZGlyZWN0OiJmb2xsb3ciLG1ldGhvZDoiZ2V0Iixtb2RlOiJuby1jb3JzIn07ZCYmKGUubW9kZT0iY29ycyIsInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nImluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZT9lLmF0dHJpYnV0aW9uUmVwb3J0aW5nPXtldmVudFNvdXJjZUVsaWdpYmxlOiJ0cnVlIix0cmlnZ2VyRWxpZ2libGU6ImZhbHNlIn06ZS5oZWFkZXJzPXsiQXR0cmlidXRpb24tUmVwb3J0aW5nLUVsaWdpYmxlIjoiZXZlbnQtc291cmNlIn0pO2MuZmV0Y2goYSxlKX1lbHNlIG90KGMsYSxiPT09dm9pZCAwPyExOmIsZD09PXZvaWQgMD8hMTpkKX07ZnVuY3Rpb24gcnQoKXt0aGlzLmZhPXRoaXMuZmE7dGhpcy5SPXRoaXMuUn1ydC5wcm90b3R5cGUuZmE9ITE7cnQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmZhfHwodGhpcy5mYT0hMCx0aGlzLk4oKSl9O3J0LnByb3RvdHlwZVtTeW1ib2wuZGlzcG9zZV09ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKX07cnQucHJvdG90eXBlLmFkZE9uRGlzcG9zZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYil7dGhpcy5mYT9iIT09dm9pZCAwP2EuY2FsbChiKTphKCk6KHRoaXMuUnx8KHRoaXMuUj1bXSksYiYmKGE9YS5iaW5kKGIpKSx0aGlzLlIucHVzaChhKSl9O3J0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7aWYodGhpcy5SKWZvcig7dGhpcy5SLmxlbmd0aDspdGhpcy5SLnNoaWZ0KCkoKX07ZnVuY3Rpb24gc3QoYSl7YS5hZGR0bENvbnNlbnQ9PT12b2lkIDB8fHZmKGEuYWRkdGxDb25zZW50KXx8KGEuYWRkdGxDb25zZW50PXZvaWQgMCk7YS5nZHByQXBwbGllcz09PXZvaWQgMHx8d2YoYS5nZHByQXBwbGllcyl8fChhLmdkcHJBcHBsaWVzPXZvaWQgMCk7cmV0dXJuIGEudGNTdHJpbmchPT12b2lkIDAmJiF2ZihhLnRjU3RyaW5nKXx8YS5saXN0ZW5lcklkIT09dm9pZCAwJiYhdWYoYS5saXN0ZW5lcklkKT8yOmEuY21wU3RhdHVzJiZhLmNtcFN0YXR1cyE9PSJlcnJvciI/MDozfXZhciB0dD1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO3J0LmNhbGwodGhpcyk7dGhpcy5IPW51bGw7dGhpcy5qYT17fTt0aGlzLnlhPTA7dGhpcy5aPW51bGw7dGhpcy5LPWE7dmFyIGM7dGhpcy50aW1lb3V0TXM9KGM9Yi50aW1lb3V0TXMpIT1udWxsP2M6NTAwO3ZhciBkO3RoaXMuRWo9KGQ9Yi5FaikhPW51bGw/ZDohMX07d2EodHQscnQpOwp0dC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuamE9e307dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLmphO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuSDtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTt2YXIgdnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhLksuX190Y2ZhcGk9PT0iZnVuY3Rpb24ifHx1dChhKSE9bnVsbH07CnR0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz17aW50ZXJuYWxCbG9ja09uRXJyb3JzOnRoaXMuRWp9LGQ9SHAoZnVuY3Rpb24oKXthKGMpfSksZT0wO3RoaXMudGltZW91dE1zIT09LTEmJihlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIjtjLmludGVybmFsRXJyb3JTdGF0ZT0xO2QoKX0sdGhpcy50aW1lb3V0TXMpKTt2YXIgZj1mdW5jdGlvbihnLGgpe2NsZWFyVGltZW91dChlKTtnPyhjPWcsYy5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYyksYy5pbnRlcm5hbEJsb2NrT25FcnJvcnM9Yi5FaixoJiZjLmludGVybmFsRXJyb3JTdGF0ZT09PTB8fChjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixofHwoYy5pbnRlcm5hbEVycm9yU3RhdGU9MykpKTooYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9Myk7YShjKX07dHJ5e3d0KHRoaXMsImFkZEV2ZW50TGlzdGVuZXIiLApmKX1jYXRjaChnKXtjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zLGUmJihjbGVhclRpbWVvdXQoZSksZT0wKSxkKCl9fTt0dC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXthJiZhLmxpc3RlbmVySWQmJnd0KHRoaXMsInJlbW92ZUV2ZW50TGlzdGVuZXIiLG51bGwsYS5saXN0ZW5lcklkKX07CnZhciB6dD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1kPT09dm9pZCAwPyI3NTUiOmQ7dmFyIGU7YTp7aWYoYS5wdWJsaXNoZXImJmEucHVibGlzaGVyLnJlc3RyaWN0aW9ucyl7dmFyIGY9YS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zW2JdO2lmKGYhPT12b2lkIDApe2U9ZltkPT09dm9pZCAwPyI3NTUiOmRdO2JyZWFrIGF9fWU9dm9pZCAwfXZhciBnPWU7aWYoZz09PTApcmV0dXJuITE7dmFyIGg9YztjPT09Mj8oaD0wLGc9PT0yJiYoaD0xKSk6Yz09PTMmJihoPTEsZz09PTEmJihoPTApKTt2YXIgbDtpZihoPT09MClpZihhLnB1cnBvc2UmJmEudmVuZG9yKXt2YXIgbj14dChhLnZlbmRvci5jb25zZW50cyxkPT09dm9pZCAwPyI3NTUiOmQpO2w9biYmYj09PSIxIiYmYS5wdXJwb3NlT25lVHJlYXRtZW50JiZhLnB1Ymxpc2hlckNDPT09IkNIIj8hMDpuJiZ4dChhLnB1cnBvc2UuY29uc2VudHMsYil9ZWxzZSBsPSEwO2Vsc2UgbD1oPT09MT9hLnB1cnBvc2UmJmEudmVuZG9yP3h0KGEucHVycG9zZS5sZWdpdGltYXRlSW50ZXJlc3RzLApiKSYmeHQoYS52ZW5kb3IubGVnaXRpbWF0ZUludGVyZXN0cyxkPT09dm9pZCAwPyI3NTUiOmQpOiEwOiEwO3JldHVybiBsfSx4dD1mdW5jdGlvbihhLGIpe3JldHVybiEoIWF8fCFhW2JdKX0sd3Q9ZnVuY3Rpb24oYSxiLGMsZCl7Y3x8KGM9ZnVuY3Rpb24oKXt9KTt2YXIgZT1hLks7aWYodHlwZW9mIGUuX190Y2ZhcGk9PT0iZnVuY3Rpb24iKXt2YXIgZj1lLl9fdGNmYXBpO2YoYiwyLGMsZCl9ZWxzZSBpZih1dChhKSl7QXQoYSk7dmFyIGc9KythLnlhO2EuamFbZ109YztpZihhLkgpe3ZhciBoPXt9O2EuSC5wb3N0TWVzc2FnZSgoaC5fX3RjZmFwaUNhbGw9e2NvbW1hbmQ6Yix2ZXJzaW9uOjIsY2FsbElkOmcscGFyYW1ldGVyOmR9LGgpLCIqIil9fWVsc2UgYyh7fSwhMSl9LHV0PWZ1bmN0aW9uKGEpe2lmKGEuSClyZXR1cm4gYS5IO2EuSD1OcChhLkssIl9fdGNmYXBpTG9jYXRvciIpO3JldHVybiBhLkh9LEF0PWZ1bmN0aW9uKGEpe2lmKCFhLlope3ZhciBiPWZ1bmN0aW9uKGMpe2lmKGMuc291cmNlPT09CmEuSCl0cnl7dmFyIGQ7ZD0odmYoYy5kYXRhKT9KU09OLnBhcnNlKGMuZGF0YSk6Yy5kYXRhKS5fX3RjZmFwaVJldHVybjthLmphW2QuY2FsbElkXShkLnJldHVyblZhbHVlLGQuc3VjY2Vzcyl9Y2F0Y2goZSl7fX07YS5aPWI7bXQoYS5LLCJtZXNzYWdlIixiKX19LEJ0PWZ1bmN0aW9uKGEpe2lmKGEuZ2RwckFwcGxpZXM9PT0hMSlyZXR1cm4hMDthLmludGVybmFsRXJyb3JTdGF0ZT09PXZvaWQgMCYmKGEuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGEpKTtyZXR1cm4gYS5jbXBTdGF0dXM9PT0iZXJyb3IifHxhLmludGVybmFsRXJyb3JTdGF0ZSE9PTA/YS5pbnRlcm5hbEJsb2NrT25FcnJvcnM/KHB0KHtlOlN0cmluZyhhLmludGVybmFsRXJyb3JTdGF0ZSl9KSwhMSk6ITA6YS5jbXBTdGF0dXMhPT0ibG9hZGVkInx8YS5ldmVudFN0YXR1cyE9PSJ0Y2xvYWRlZCImJmEuZXZlbnRTdGF0dXMhPT0idXNlcmFjdGlvbmNvbXBsZXRlIj8hMTohMH07dmFyIEN0PXsxOjAsMzowLDQ6MCw3OjMsOTozLDEwOjN9O2Z1bmN0aW9uIER0KCl7cmV0dXJuIGtqKCJ0Y2YiLGZ1bmN0aW9uKCl7cmV0dXJue319KX12YXIgRXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHR0KEEse3RpbWVvdXRNczotMX0pfTsKZnVuY3Rpb24gRnQoKXt2YXIgYT1EdCgpLGI9RXQoKTt2dChiKSYmIUd0KCkmJiFIdCgpJiZQKDEyNCk7aWYoIWEuYWN0aXZlJiZ2dChiKSl7R3QoKSYmKGEuYWN0aXZlPSEwLGEucHVycG9zZXM9e30sYS5jbXBJZD0wLGEudGNmUG9saWN5VmVyc2lvbj0wLHRsKCkuYWN0aXZlPSEwLGEudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiKTtjcCgpO3RyeXtiLmFkZEV2ZW50TGlzdGVuZXIoZnVuY3Rpb24oYyl7aWYoYy5pbnRlcm5hbEVycm9yU3RhdGUhPT0wKUl0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwO2Vsc2UgaWYoYS5nZHByQXBwbGllcz1jLmdkcHJBcHBsaWVzLGEuY21wSWQ9Yy5jbXBJZCxhLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT1jLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSxIdCgpJiYoYS5hY3RpdmU9ITApLCFKdChjKXx8R3QoKXx8SHQoKSl7YS50Y2ZQb2xpY3lWZXJzaW9uPWMudGNmUG9saWN5VmVyc2lvbjt2YXIgZDtpZihjLmdkcHJBcHBsaWVzPT09CiExKXt2YXIgZT17fSxmO2ZvcihmIGluIEN0KUN0Lmhhc093blByb3BlcnR5KGYpJiYoZVtmXT0hMCk7ZD1lO2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjKX1lbHNlIGlmKEp0KGMpKXt2YXIgZz17fSxoO2ZvcihoIGluIEN0KWlmKEN0Lmhhc093blByb3BlcnR5KGgpKWlmKGg9PT0iMSIpe3ZhciBsLG49YyxwPXtVcjohMH07cD1wPT09dm9pZCAwP3t9OnA7bD1CdChuKT9uLmdkcHJBcHBsaWVzPT09ITE/ITA6bi50Y1N0cmluZz09PSJ0Y3VuYXZhaWxhYmxlIj8hcC5pZHBjQXBwbGllczoocC5pZHBjQXBwbGllc3x8bi5nZHByQXBwbGllcyE9PXZvaWQgMHx8cC5VcikmJihwLmlkcGNBcHBsaWVzfHx2ZihuLnRjU3RyaW5nKSYmbi50Y1N0cmluZy5sZW5ndGgpP3p0KG4sIjEiLDApOiEwOiExO2dbIjEiXT1sfWVsc2UgZ1toXT16dChjLGgsQ3RbaF0pO2Q9Z31pZihkKXthLnRjU3RyaW5nPWMudGNTdHJpbmd8fCJ0Y2VtcHR5IjthLnB1cnBvc2VzPWQ7dmFyIHE9e30scj0ocVtGLkQua2FdPQphLnB1cnBvc2VzWyIxIl0/ImdyYW50ZWQiOiJkZW5pZWQiLHEpO2EuZ2RwckFwcGxpZXMhPT0hMD8oZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITApOihyW0YuRC5YYV09YS5wdXJwb3Nlc1siMyJdJiZhLnB1cnBvc2VzWyI0Il0/ImdyYW50ZWQiOiJkZW5pZWQiLHR5cGVvZiBhLnRjZlBvbGljeVZlcnNpb249PT0ibnVtYmVyIiYmYS50Y2ZQb2xpY3lWZXJzaW9uPj00P3JbRi5ELm1hXT1hLnB1cnBvc2VzWyIxIl0mJmEucHVycG9zZXNbIjciXT8iZ3JhbnRlZCI6ImRlbmllZCI6ZHAoW0YuRC5tYV0pLFZvKHIse2V2ZW50SWQ6MH0se2dkcHJBcHBsaWVzOmE/YS5nZHByQXBwbGllczp2b2lkIDAsdGNTdHJpbmc6S3QoKXx8IiJ9KSl9fWVsc2UgZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSl9KX1jYXRjaChjKXtJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMH19fQpmdW5jdGlvbiBJdChhKXthLnR5cGU9ImUiO2EudGNTdHJpbmc9InRjdW5hdmFpbGFibGUifWZ1bmN0aW9uIEp0KGEpe3JldHVybiBhLmV2ZW50U3RhdHVzPT09InRjbG9hZGVkInx8YS5ldmVudFN0YXR1cz09PSJ1c2VyYWN0aW9uY29tcGxldGUifHxhLmV2ZW50U3RhdHVzPT09ImNtcHVpc2hvd24ifWZ1bmN0aW9uIEd0KCl7cmV0dXJuIEEuZ3RhZ19lbmFibGVfdGNmX3N1cHBvcnQ9PT0hMH1mdW5jdGlvbiBIdCgpe3JldHVybiBEdCgpLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT09PSEwfWZ1bmN0aW9uIEt0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSlyZXR1cm4gYS50Y1N0cmluZ31mdW5jdGlvbiBMdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUmJmEuZ2RwckFwcGxpZXMhPT12b2lkIDApcmV0dXJuIGEuZ2RwckFwcGxpZXM/IjEiOiIwIn0KZnVuY3Rpb24gTXQoYSl7aWYoIUN0Lmhhc093blByb3BlcnR5KFN0cmluZyhhKSkpcmV0dXJuITA7dmFyIGI9RHQoKTtyZXR1cm4gYi5hY3RpdmUmJmIucHVycG9zZXM/ISFiLnB1cnBvc2VzW1N0cmluZyhhKV06ITB9O3ZhciBOdD1bRi5ELmthLEYuRC5yYSxGLkQubWEsRi5ELlhhXSxPdD17fSxQdD0oT3RbRi5ELmthXT0xLE90W0YuRC5yYV09MixPdCk7ZnVuY3Rpb24gUXQoYSl7aWYoYT09PXZvaWQgMClyZXR1cm4gMDtzd2l0Y2goTyhhLEYuRC5SYykpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgITE6cmV0dXJuIDM7ZGVmYXVsdDpyZXR1cm4gMn19ZnVuY3Rpb24gUnQoKXtyZXR1cm4oTSgxODMpP0xmKDE2KS5zcGxpdCgifiIpOkxmKDE3KS5zcGxpdCgifiIpKS5pbmRleE9mKHptKCkpIT09LTEmJkhjLmdsb2JhbFByaXZhY3lDb250cm9sPT09ITB9ZnVuY3Rpb24gU3QoYSl7aWYoUnQoKSlyZXR1cm4hMTt2YXIgYj1RdChhKTtpZihiPT09MylyZXR1cm4hMTtzd2l0Y2goQ2woRi5ELlhhKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7Y2FzZSA0OnJldHVybiBiPT09MjtjYXNlIDA6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19CmZ1bmN0aW9uIFR0KCl7cmV0dXJuIEVsKCl8fCFCbChGLkQua2EpfHwhQmwoRi5ELnJhKX1mdW5jdGlvbiBVdCgpe3ZhciBhPXt9LGI7Zm9yKGIgaW4gUHQpUHQuaGFzT3duUHJvcGVydHkoYikmJihhW1B0W2JdXT1DbChiKSk7cmV0dXJuIkcxIit5ZihhWzFdfHwwKSt5ZihhWzJdfHwwKX12YXIgVnQ9e30sV3Q9KFZ0W0YuRC5rYV09MCxWdFtGLkQucmFdPTEsVnRbRi5ELm1hXT0yLFZ0W0YuRC5YYV09MyxWdCk7ZnVuY3Rpb24gWHQoYSl7c3dpdGNoKGEpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgITA6cmV0dXJuIDM7Y2FzZSAhMTpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX0KZnVuY3Rpb24gWXQoYSl7Zm9yKHZhciBiPSIxIixjPTA7YzxOdC5sZW5ndGg7YysrKXt2YXIgZD1iLGUsZj1OdFtjXSxnPUFsLmRlbGVnYXRlZENvbnNlbnRUeXBlc1tmXTtlPWc9PT12b2lkIDA/MDpXdC5oYXNPd25Qcm9wZXJ0eShnKT8xMnxXdFtnXTo4O3ZhciBoPXRsKCk7aC5hY2Nlc3NlZEFueT0hMDt2YXIgbD1oLmVudHJpZXNbZl18fHt9O2U9ZTw8MnxYdChsLmltcGxpY2l0KTtiPWQrKCIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltlXSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbWHQobC5kZWNsYXJlKTw8NHxYdChsLmRlZmF1bHQpPDwyfFh0KGwudXBkYXRlKV0pfXZhciBuPWIscD0oUnQoKT8xOjApPDwzLHE9KEVsKCk/MTowKTw8MixyPVF0KGEpO2I9bisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbcHwKcXxyXTtyZXR1cm4gYis9IiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3N0b3JhZ2U8PDR8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYW5hbHl0aWNzX3N0b3JhZ2U8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfdXNlcl9kYXRhXSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbKEFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz8xOjApPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3BlcnNvbmFsaXphdGlvbl19ZnVuY3Rpb24gWnQoKXtyZXR1cm4gQmwoRi5ELm1hKT8iYSI6Ii0ifWZ1bmN0aW9uICR0KCl7cmV0dXJuIEJtKCl8fChHdCgpfHxIdCgpKSYmTHQoKT09PSIxIj8iMSI6IjAifQpmdW5jdGlvbiBhdSgpe3JldHVybihCbSgpPyEwOiEoIUd0KCkmJiFIdCgpKSYmTHQoKT09PSIxIil8fCFCbChGLkQubWEpfQpmdW5jdGlvbiBidSgpe3ZhciBhPSIwIixiPSIwIixjO3ZhciBkPUR0KCk7Yz1kLmFjdGl2ZT9kLmNtcElkOnZvaWQgMDt0eXBlb2YgYz09PSJudW1iZXIiJiZjPj0wJiZjPD00MDk1JiYoYT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYz4+NiY2M10sYj0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYyY2M10pO3ZhciBlPSIwIixmO3ZhciBnPUR0KCk7Zj1nLmFjdGl2ZT9nLnRjZlBvbGljeVZlcnNpb246dm9pZCAwO3R5cGVvZiBmPT09Im51bWJlciImJmY+PTAmJmY8PTYzJiYoZT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZl0pO3ZhciBoPTA7Qm0oKSYmKGh8PTEpO0x0KCk9PT0iMSImJihofD0yKTtHdCgpJiYoaHw9NCk7dmFyIGw7dmFyIG49RHQoKTtsPW4uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlIT09CnZvaWQgMD9uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT8iMSI6IjAiOnZvaWQgMDtsPT09IjEiJiYoaHw9OCk7dGwoKS53YWl0UGVyaW9kVGltZWRPdXQmJihofD0xNik7cmV0dXJuIjEiK2ErYitlKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltoXX07dmFyIGN1PXtVQToxLEFXOjIsREM6MyxHOjQsR0Y6NSxHVDoxMixHVE06MTQsSEE6NixNQzo3fTsKZnVuY3Rpb24gZHUoYSl7YT1hPT09dm9pZCAwP3t9OmE7dmFyIGI9RSg1KS5zcGxpdCgiLSIpWzBdLnRvVXBwZXJDYXNlKCksYyxkPXtjdGlkOkUoNSksRG86SmYoMTUpLElvOkUoMTQpLExzOklmKDcpPzI6MSxEdDphLnBmLGNhbm9uaWNhbElkOkUoNiksbnQ6KGM9QWsoKSk9PW51bGw/dm9pZCAwOmMuY2Fub25pY2FsQ29udGFpbmVySWQsRXQ6YS5UZz09PXZvaWQgMD92b2lkIDA6YS5UZz8xMDoxMn07ZC5jYW5vbmljYWxJZCE9PWEubWMmJihkLm1jPWEubWMpO3ZhciBlPXhrKCk7ZC5Vcz1lP2UuY2Fub25pY2FsQ29udGFpbmVySWQ6dm9pZCAwO0lmKDQ1KT8oZC5oaT1jdVtiXSxkLmhpfHwoZC5oaT0wKSk6ZC5oaT1Eaj8xMzoxMDtJZig0Nyk/KGQuYms9MCxkLnFyPTIpOklmKDUwKT9kLmJrPTE6ZC5iaz0zO3ZhciBmPWEsZz17NjohMX07SmYoNTQpPT09Mj9nWzddPSEwOkpmKDU0KT09PTEmJihnWzJdPSEwKTtpZihLYyl7dmFyIGg9TGooUmooS2MpLCJob3N0Iik7aCYmKGdbOF09CmgubWF0Y2goL14od3d3XC4pP2dvb2dsZXRhZ21hbmFnZXJcLmNvbSQvKT09PW51bGwpfXZhciBsO2dbOV09KGw9Zi5lZikhPW51bGw/bDohMTt2YXIgbj1GaygpLHA7Z1sxMF09KHA9bj09bnVsbD92b2lkIDA6bi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKSE9bnVsbD9wOiExO2QuenI9ZztyZXR1cm4gQ2YoZCxhLlBuKX07CnZhciBmdT1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVIoYSxlKSxnPVEoYSxILkouWWUpO00oNTg5KSYmZyYmKGU9PT1GLkQuemF8fGU9PT1GLkQuVWF8fGU9PT1GLkQuUGUpJiZ0eXBlb2YgZj09PSJzdHJpbmciJiYoZj1acyhmKSk7dmFyIGg9b3AoZSxmKTtoJiYoIWd8fGUhPT1GLkQuRGQmJmUhPT1GLkQuS2QmJmUhPT1GLkQuRWUmJmUhPT1GLkQuQmZ8fChoLnZhbHVlPSIwIiksTSg1MDQpJiYoZT09PUYuRC5NZD9oLmtleT0iZXZuaWQiOmU9PT1GLkQuTmQmJihoLmtleT0iZXhjaWQiKSksYltoLmtleV09aC52YWx1ZSl9Yi5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7VHQoKSYmKGIuZ2NzPWIuZ2NzfHxVdCgpKTtiLmdjZD1iLmdjZHx8WXQoYS5NKTthdSgpJiYoYi5kbWFfY3BzPVp0KCkpO2IuZG1hPSR0KCk7dnQoRXQoKSkmJgooYi50Y2ZkPWJ1KCkpO3ZhciBsPUNwKGEpO2wmJihiLnRhZ19leHA9bCk7aWYoUShhLEguSi5Caykpe2IudGZ0PVN0cmluZyhOYigpKTt2YXIgbj1wZCgpO24hPT12b2lkIDAmJihiLnRmZD1TdHJpbmcoTWF0aC5yb3VuZChuKSkpfWIuYXB2ZT0iMSI7Yi5hcHZmPW5kKCk/ImYiOiJuZiI7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYi5saW1pdGVkX2Fkcz0iMSIpO3ZhciBwPVEoYSxILkouWGcpO00oNDc0KSYmcCE9bnVsbCYmcCE9PSIiJiYoYi5fZ3NpZD1wKTtodChhLGIsZnVuY3Rpb24ocSxyKXtiW3FdPWVuY29kZVVSSUNvbXBvbmVudChyKX0pO3JldHVybiBifTt2YXIgZ3U9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmVuZHBvaW50PWE7dGhpcy5mYT1jO3RoaXMuamE9ZDt0aGlzLnBhcmFtZXRlckVuY29kaW5nPWU7dGhpcy5aPWIuc2xpY2UoKX07Z3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gWG8odGhpcy5aKX07Z3UucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2d1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7dmFyIGE9TW1bdGhpcy5lbmRwb2ludF0odm9pZCAwKTtyZXR1cm4gU2IoYSwiaHR0cHM6Ly8iKT9hLnN1YnN0cmluZyg4KTpTYihhLCJodHRwOi8vIik/YS5zdWJzdHJpbmcoNyk6YX07dmFyIGh1PWZ1bmN0aW9uKGEsYil7dGhpcy5tZXRob2ROYW1lPWE7dGhpcy5SPWJ9O2h1LnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5pc1N1cHBvcnRlZCgpKWlmKChjPT1udWxsP3ZvaWQgMDpjLmJvZHkpPT09dm9pZCAwfHx0aGlzLkgoKSl0cnl7dGhpcy5LKGEsYixjKX1jYXRjaChkKXthLnJkKGQpfWVsc2UgYS5yZCgiUmVxdWVzdCBtZXRob2QgIit0aGlzLm1ldGhvZE5hbWUrIiBkb2VzIG5vdCBzdXBwb3J0IGEgcmVxdWVzdCBib2R5LiIpO2Vsc2UgYS5yZCgiUmVxdWVzdCBtZXRob2QgIit0aGlzLm1ldGhvZE5hbWUrIiBpcyBub3Qgc3VwcG9ydGVkLiIpfTt2YXIgaXU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkltYWdlUGl4ZWwiLDMpfTt3YShpdSxodSk7aXUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2l1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwppdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7WmMoYixmdW5jdGlvbigpe2EuamYoKX0sZnVuY3Rpb24oKXthLm9uRmFpbHVyZSh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKX07dmFyIGp1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJTZW5kQmVhY29uIiwxKX07d2EoanUsaHUpO2p1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiBrZCgpfTtqdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtqdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7amQoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHkpP2EuamYoKTphLnJkKHZvaWQgMCl9O3ZhciBrdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiRmV0Y2giLDEpfTt3YShrdSxodSk7a3UucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtrdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTsKa3UucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe0EuZmV0Y2goYixjPT1udWxsP3ZvaWQgMDpjLkdiKS50aGVuKGZ1bmN0aW9uKGQpe2lmKGQub2spYS5wZShkKTtlbHNlIGlmKGQuc3RhdHVzPT09MClhLmpmKCk7ZWxzZSBhLm9uRmFpbHVyZSgiRmV0Y2ggZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitkLnN0YXR1cysiLiIpfSkuY2F0Y2goZnVuY3Rpb24oZCl7YS5yZChkKX0pfTt2YXIgbHU9bmV3IGl1LG11PW5ldyBqdSxudT1uZXcga3U7dmFyIG91PWZ1bmN0aW9uKCl7fTtvdS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybltdfTsKdmFyIHB1PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP1siYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdOmI7Z3UuY2FsbCh0aGlzLGEsYiwxLCEwLDIpfTt3YShwdSxndSk7cHUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7aWYodGhpcy5aLmxlbmd0aCl7dmFyIGI9UShhLEguSi5Eayk7aWYoYiE9PXZvaWQgMClyZXR1cm4gYn1yZXR1cm4gZ3UucHJvdG90eXBlLksuY2FsbCh0aGlzLGEpfTtwdS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpO2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQmJihjLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkKTtiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2MuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2MuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoYy5mbXQ9IjMiKTtyZXR1cm4gY307cHUucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5OKGEsYik7cmV0dXJuIj8iK09iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsKIj0iK2NbZF19KS5qb2luKCImIil9O3B1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnlhKGEsYiksZT17fTtpZihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1KXtlLkdiPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpO2lmKHRoaXMuZW5kcG9pbnQ9PT01OHx8dGhpcy5lbmRwb2ludD09PTU3KWUuR2IubWV0aG9kPSJHRVQiO3RoaXMuZW5kcG9pbnQhPT00NXx8cXUuSyhhKXx8KGUuR2IuY3JlZGVudGlhbHM9Im9taXQiLGQrPSImZ2FwLnVjZmI9MSIpfWMoZCxlKX07dmFyIHF1PW5ldyBwdSg0NSkscnU9bmV3IHB1KDQ1LFtdKSxzdT1uZXcgcHUoNDYsW10pLHR1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDY5KX07d2EodHUscHUpO3R1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXt2YXIgYj1NKDQ3NCkmJighIVIoYSwiX2dzaWQiKXx8ISFRKGEsSC5KLlhnKSksYz1SKGEsRi5ELkhkKSE9PSIxIiYmKCEhUihhLCJnY2xpZCIpfHwKISFSKGEsImRjbGlkIil8fCEhUihhLCJnY2xzcmMiKXx8ISFSKGEsImF1aWQiKSk7cmV0dXJuIGJ8fGN9O3R1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSksZD1scChhLGMpfHx7fTtPYmplY3Qua2V5cyhkKS5sZW5ndGg+MCYmKGIubWV0aG9kIGluc3RhbmNlb2Yga3U/ZC5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/ZC5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihkLmZtdD0iMyIpKTtyZXR1cm4gZH07dmFyIHV1PW5ldyB0dSx2dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw0NSl9O3dhKHZ1LHB1KTt2dS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0In07dnUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtjWyJnYXAuMXBmYiJdPSIxIjtyZXR1cm4gY307dmFyIHd1PWZ1bmN0aW9uKGEpe3B1LmNhbGwodGhpcyxhLFsiYWRfc3RvcmFnZSIsCiJhZF91c2VyX2RhdGEiXSl9O3dhKHd1LHB1KTt3dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO3JldHVybiBocChjKX07dmFyIHh1PW5ldyB3dSg1OCkseXU9bmV3IHd1KDU3KSx6dT1mdW5jdGlvbigpe307d2EoenUsb3UpO3p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPXF1LksoYSksYz1iP3F1OnN1LGQ9W3tlbmRwb2ludDpjLG1ldGhvZDpuZCgpP251Om11fSx7ZW5kcG9pbnQ6YyxtZXRob2Q6bHV9XTtiP00oNTE3KSYmSWYoNDcpJiZkLnB1c2goe2VuZHBvaW50Om5ldyB2dSxtZXRob2Q6bnV9KTpNKDYwMCkmJmQucHVzaCh7ZW5kcG9pbnQ6cnUsbWV0aG9kOm51fSk7cmV0dXJuIGR9O3p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9ISFRKGEsSC5KLnZkKSxkPVIoYSxGLkQuUGQpPT09IjEiLGU9UihhLEYuRC5IZCk9PT0iMSIsZj1xdS5LKGEpLGc9YyYmZCYmIWUmJmY7aWYoZyl7dmFyIGg9ClFjKCl8fE9jKCk/eHU6eXU7Yi5wdXNoKFt7ZW5kcG9pbnQ6aCxtZXRob2Q6bnV9LHtlbmRwb2ludDpoLG1ldGhvZDpsdX1dKX1mJiYoZ3x8UShhLEguSi5oZCkpJiZiLnB1c2goW3tlbmRwb2ludDp1dSxtZXRob2Q6bmQoKT9udTpsdX1dKTtyZXR1cm4gYn07dmFyIEF1PW5ldyB6dTt2YXIgVD17Vzp7Sms6MSxuajoyLEZrOjMsbWw6NCxHazo1LHlkOjYsa2w6NyxNcTo4LHFuOjksSGs6MTAsSWs6MTEsRmg6MTIsRG06MTMsQW06MTQsQ206MTUsem06MTYsQm06MTcseW06MTgsVG86MTkseHE6MjAseXE6MjEsZmo6MjIsdW46MjQsT206MjUsU2s6MjYsVGs6MjcsUms6MjgsVWs6Mjkscmo6MzAsT2s6MzEsWm86MzJ9fTtULldbVC5XLkprXT0iQUxMT1dfSU5URVJFU1RfR1JPVVBTIjtULldbVC5XLm5qXT0iU0VSVkVSX0NPTlRBSU5FUl9VUkwiO1QuV1tULlcuRmtdPSJBRFNfREFUQV9SRURBQ1RJT04iO1QuV1tULlcubWxdPSJDVVNUT01FUl9MSUZFVElNRV9WQUxVRSI7VC5XW1QuVy5Ha109IkFMTE9XX0NVU1RPTV9TQ1JJUFRTIjtULldbVC5XLnlkXT0iQU5ZX0NPT0tJRV9QQVJBTVMiO1QuV1tULlcua2xdPSJDT09LSUVfRVhQSVJFUyI7VC5XW1QuVy5NcV09IkxFR0FDWV9FTkhBTkNFRF9DT05WRVJTSU9OX0pTX1ZBUklBQkxFIjtULldbVC5XLnFuXT0iUkVTVFJJQ1RFRF9EQVRBX1BST0NFU1NJTkciOwpULldbVC5XLkhrXT0iQUxMT1dfRElTUExBWV9GRUFUVVJFUyI7VC5XW1QuVy5Ja109IkFMTE9XX0dPT0dMRV9TSUdOQUxTIjtULldbVC5XLkZoXT0iR0VORVJBVEVEX1RSQU5TQUNUSU9OX0lEIjtULldbVC5XLkRtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVU5LTk9XTiI7VC5XW1QuVy5BbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1NUQU5EQVJEIjtULldbVC5XLkNtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVU5JUVVFIjtULldbVC5XLnptXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfUEVSX1NFU1NJT04iO1QuV1tULlcuQm1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9UUkFOU0FDVElPTlMiO1QuV1tULlcueW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9JVEVNU19TT0xEIjtULldbVC5XLlRvXT0iQURTX09HVF9WMV9VU0FHRSI7VC5XW1QuVy54cV09IkZPUk1fSU5URVJBQ1RJT05fUEVSTUlTU0lPTl9ERU5JRUQiOwpULldbVC5XLnlxXT0iRk9STV9TVUJNSVRfUEVSTUlTU0lPTl9ERU5JRUQiO1QuV1tULlcuZmpdPSJNSUNST1RBU0tfTk9UX1NVUFBPUlRFRCI7VC5XW1QuVy51bl09IlNFVF9FTkNSWVBURURfREFUQV9UT19DQUNIRSI7VC5XW1QuVy5PbV09IkdFVF9FTkNSWVBURURfREFUQV9GUk9NX0NBQ0hFIjtULldbVC5XLlNrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfTk9fUEFSQU0iO1QuV1tULlcuVGtdPSJDT05GSUdfREVURUNURURfV0lUSF9QQVJBTSI7VC5XW1QuVy5Sa109IkNPTkZJR19DT05TRU5UX1NFVF9CRUZPUkUiO1QuV1tULlcuVWtdPSJDT05GSUdfU0VUX1VTRURfQkVGT1JFIjtULldbVC5XLnJqXT0iU0hBRE9XX0RPTV9BVVRPX1BJSSI7VC5XW1QuVy5Pa109IkNDRF9VU0VSX0RBVEFfV0VCX09OX0NPTkZJRyI7VC5XW1QuVy5ab109IkJMRU5ERURfVVNFUl9EQVRBIjt2YXIgQnU9e30sQ3U9KEJ1W0YuRC51aV09VC5XLkprLEJ1W0YuRC5kZF09VC5XLm5qLEJ1W0YuRC55Y109VC5XLm5qLEJ1W0YuRC5tYl09VC5XLkZrLEJ1W0YuRC5HZV09VC5XLm1sLEJ1W0YuRC5yaV09VC5XLkdrLEJ1W0YuRC5KZF09VC5XLnlkLEJ1W0YuRC5uYl09VC5XLnlkLEJ1W0YuRC5MYl09VC5XLnlkLEJ1W0YuRC5JZF09VC5XLnlkLEJ1W0YuRC52Y109VC5XLnlkLEJ1W0YuRC5UYl09VC5XLnlkLEJ1W0YuRC5DYl09VC5XLmtsLEJ1W0YuRC5XYl09VC5XLnFuLEJ1W0YuRC5oaF09VC5XLkhrLEJ1W0YuRC5TY109VC5XLklrLEJ1KSxEdT17fSxFdT0oRHUudW5rbm93bj1ULlcuRG0sRHUuc3RhbmRhcmQ9VC5XLkFtLER1LnVuaXF1ZT1ULlcuQ20sRHUucGVyX3Nlc3Npb249VC5XLnptLER1LnRyYW5zYWN0aW9ucz1ULlcuQm0sRHUuaXRlbXNfc29sZD1ULlcueW0sRHUpO3ZhciBGdT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7c2IoIkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMIixiKTtjJiYoYS5IW2JdPSEwKX0sdmI9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPVtdfTtmdW5jdGlvbiBHdShhKXtGdSh2YixhLCExKX1mdW5jdGlvbiBIdShhLGIpe3ZhciBjPWI9PT12b2lkIDA/ITE6YixkPXZiO2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZT1PYmplY3Qua2V5cyhhKSxmPW0oT2JqZWN0LmtleXMoQ3UpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLmluY2x1ZGVzKGgpJiZGdShkLEN1W2hdLGMpfX07ZnVuY3Rpb24gSXUoYSxiKXthP2EudGhlbihiKTpiKHZvaWQgMCl9ZnVuY3Rpb24gSnUoYSl7cmV0dXJuIFByb21pc2UuYWxsU2V0dGxlZChhKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBiLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5zdGF0dXM9PT0iZnVsZmlsbGVkIn0pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy52YWx1ZX0pfSl9ZnVuY3Rpb24gS3UoKXt2YXIgYSxiO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsZCl7YT1jO2I9ZH0pLHJlc29sdmU6YSxyZWplY3Q6Yn19O2Z1bmN0aW9uIEx1KGEsYixjLGQsZSxmKXt2YXIgZz1jLnNsaWNlKCksaDtkPT1udWxsfHwoaD1kLnV2KT09bnVsbHx8aC5jYWxsKGQsYSxiLGMsZSk7dmFyIGw9S3UoKSxuPWwucHJvbWlzZSxwPWwucmVzb2x2ZSxxPVtdLHI9ZnVuY3Rpb24oKXtwKHEpO3ZhciB1O2Q9PW51bGx8fCh1PWQuUnMpPT1udWxsfHx1LmNhbGwoZCxhLGIsYyxlLHEpfSx0PWZ1bmN0aW9uKCl7dmFyIHU9Zy5zaGlmdCgpO3U/dS5tZXRob2QuaXNTdXBwb3J0ZWQoKT9NdShhLGIsdS5lbmRwb2ludCxkLHEsdS5tZXRob2QsZSxmLHQscik6dCgpOnIoKX07dCgpO3JldHVybiBufQpmdW5jdGlvbiBNdShhLGIsYyxkLGUsZixnLGgsbCxuKXt2YXIgcD1jLlIoYSkscT17dGs6YixlbmRwb2ludDpjLGlzUHJpbWFyeTpnLHNiOnZvaWQgMCxwazpmLGp0Ont9fSxyPSExLHQ9ZnVuY3Rpb24oeixDKXtpZihyKVAoMTg3KTtlbHNlIGlmKHI9ITAsIXUpe3ZhciBEPUN8fHt9LEk9RC5ib2R5LEc9RC5HYixOPUQuYWY7Qz1PYmplY3QuZnJlZXplKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sST97Ym9keTpJfTp7fSxHP3tHYjpHfTp7fSxOP3thZjpOfTp7fSkpO2lmKEkmJiFmLkgoKSl4KCksbCgpO2Vsc2V7dmFyIFM9TnUoeiksVz1wWzBdPT09Ii8iPyIiK3ArUzoiaHR0cHM6Ly8iK3ArUztxLnNiPVc7cS5qdD1DO3ZhciBlYTtkPT1udWxsfHwoZWE9ZC5Tcyk9PW51bGx8fGVhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSkpO3ZhciBqYT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMuZW5kcG9pbnQsCmV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH07Zi5SPT09dm9pZCAwfHxjLmZhIT09MiYmKGMuZmEhPT0xfHxlLmxlbmd0aCl8fGtuLnJlZ2lzdGVyKGphLGYuUixXKTt2YXIgZmE9ZnVuY3Rpb24oZGEsbWEpe3goKTtpZihxLnN0YXR1cyE9PXZvaWQgMClyZXR1cm4gUCgxOTIpLCExO3Euc3RhdHVzPWRhO2UucHVzaChxKTt2YXIgUGE7ZD09bnVsbHx8KFBhPWQudW8pPT1udWxsfHxQYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLG1hKTtyZXR1cm4hMH0sc2E9e0ZvOmphLHJkOmZ1bmN0aW9uKCl7ZmEoMikmJmwoKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7ZmEoMykmJmwoKX0scGU6ZnVuY3Rpb24oZGEpe2ZhKGRhLnN0YXR1cz09PTA/MTpkYS5vaz8wOjMsZGEpJiZuKCl9LGpmOmZ1bmN0aW9uKCl7ZmEoMSkmJm4oKX19O091KGMsYSxXLFMsSSk7Zi5zZW5kUmVxdWVzdChzYSxXLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsCnt9LEkmJntib2R5Okl9LEcmJntHYjpHfSxOJiZ7YWY6Tn0pKX19fSx1PSExLHYseD1mdW5jdGlvbigpe3YhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dCh2KSx2PXZvaWQgMCl9O00oNTc0KSYmKHY9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dj12b2lkIDA7dT0hMDtpZihxLnN0YXR1cz09PXZvaWQgMCl7cS5zdGF0dXM9NDtxLnNiPT09dm9pZCAwJiYocS5zYj0iW2ZhaWxlZCB0byBidWlsZF0gIitwKTtlLnB1c2gocSk7dmFyIHo7ZD09bnVsbHx8KHo9ZC51byk9PW51bGx8fHouY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSx2b2lkIDApO2woKX19LDVFMykpO3ZhciB5PXtJYzpwLG1ldGhvZDpmLHl2OmUsaXNQcmltYXJ5OmcsQ3Q6aH07dHJ5e2MuSChhLHksdCl9Y2F0Y2goeil7eCgpLFAoMTg4KSxsKCl9fQpmdW5jdGlvbiBPdShhLGIsYyxkLGUpe2lmKGEuamEpe3ZhciBmPWIudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZz1hLmVuZHBvaW50O2lmKGc9PT00NXx8Zz09PTQ2fHxnPT09Njl8fGc9PT01OHx8Zz09PTU3KXt2YXIgaD0vWz8mXXRpZHM9KFteJl0rKS8uZXhlYyhkKTtmPWg/ZGVjb2RlVVJJQ29tcG9uZW50KGhbMV0pLnNwbGl0KCJ+Iik6W2ZdfU1sKHt0YXJnZXRJZDpmLHJlcXVlc3Q6bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7dXJsOmMscGFyYW1ldGVyRW5jb2Rpbmc6YS5wYXJhbWV0ZXJFbmNvZGluZyxlbmRwb2ludDphLmVuZHBvaW50fSxlP3twb3N0Qm9keTplfTp7fSkscWI6e2V2ZW50SWQ6Yi5NLmV2ZW50SWQscHJpb3JpdHlJZDpiLk0ucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19CmZ1bmN0aW9uIE51KGEpe3JldHVybiBhJiZhIT09Ij8iP2FbMF0hPT0iPyI/Ij8iLmNvbmNhdChhKTphOiIifTtmdW5jdGlvbiBQdShhLGIsYyxkLGUpe3ZhciBmO2U9PW51bGx8fChmPWUudnYpPT1udWxsfHxmLmNhbGwoZSxhLGIpO2lmKCFjLmxlbmd0aCl7dmFyIGc7ZT09bnVsbHx8KGc9ZS5Ucyk9PW51bGx8fGcuY2FsbChlLGEsYixbXSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSl9dmFyIGg9W10sbD17dGs6YixtazpjLGprOmR9O2gucHVzaChMdShhLGIsYyxlLCEwLGwpKTtmb3IodmFyIG49bShkKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSloLnB1c2goTHUoYSxiLHAudmFsdWUsZSwhMSxsKSk7cmV0dXJuIEp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtlPT1udWxsfHwodj1lLlRzKT09bnVsbHx8di5jYWxsKGUsYSxiLHIpO3JldHVybiByfSl9O2Z1bmN0aW9uIFF1KGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7Yj09bnVsbHx8KGQ9Yi53dik9PW51bGx8fGQuY2FsbChiLGEsYyk7Zm9yKHZhciBlPVtdLGY9bShjKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSllLnB1c2goUnUoYSxnLnZhbHVlKSk7Zm9yKHZhciBoPVtdLGw9bShlKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtoLnB1c2goUHUoYSxwLnRrLHAubWsscC5qayxiKSl9SnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2I9PW51bGx8fCh2PWIuUXMpPT1udWxsfHx2LmNhbGwoYixhLGMscil9KX0KZnVuY3Rpb24gUnUoYSxiKXt2YXIgYz1mdW5jdGlvbihmKXtyZXR1cm4gZi5tZXRob2QuaXNTdXBwb3J0ZWQoKSYmZi5lbmRwb2ludC5pc1N1cHBvcnRlZChhKSYmZi5lbmRwb2ludC5LKGEpfSxkPShiLkgoYSl8fFtdKS5maWx0ZXIoYyksZT1bXTtkLmxlbmd0aCYmKGU9KGIuSyhhKXx8W10pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5maWx0ZXIoYyl9KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYubGVuZ3RoPjB9KSk7cmV0dXJue3RrOmIsbWs6ZCxqazplfX07CnZhciBTdT1mdW5jdGlvbihhLGIpe2lmKE0oNTE3KSYmSWYoNDcpJiZhPT09NDUpcmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3Q/IitiLnNwbGl0KCI/IilbMV0rIiZnYXAuMXBmYj0xIn0sV3U9ZnVuY3Rpb24oKXt2YXIgYT1hbCgzMCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoYS5sZW5ndGgpe2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1UdShlLmtlLCJhcHZjIiksZz1UdShlLmtlLCJ0ZnQiKSxoPVR1KGUua2UsInRmZCIpLGw9VHUoZS5rZSwidGlkIiksbj1ObShlLmVuZHBvaW50LGUua2UpLHA9YltuXT1iW25dfHx7eGs6W10sWmg6W119O3AuWmgucHVzaChlKTtsPyhwLnhrLnB1c2gobCkscC51ZHx8KHAudWQ9bCkpOnAueGsucHVzaCgiIik7Zj09PSIxIiYmKHAuUW49ITApO2lmKGd8fGgpcC5Obj0hMH1hLmxlbmd0aD0wO2Zvcih2YXIgcT1tKE9iamVjdC5rZXlzKGIpKSxyPXEubmV4dCgpLHQ9e307IXIuZG9uZTt0PQp7eWs6dm9pZCAwfSxyPXEubmV4dCgpKXt2YXIgdT1yLnZhbHVlLHY9Ylt1XTt0LnlrPXYueGs7dmFyIHg9dC55ay5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIGZ1bmN0aW9uKEksRyl7cmV0dXJuIEQueWsuaW5kZXhPZihJKT09PUd9fSh0KSkuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiEhRH0pO2lmKE0oNDI3KSl7dmFyIHk9VXUodix4KTtRdSh5LHZvaWQgMCxBdSl9ZWxzZXt2YXIgej11KyImYXB2Yz0iKyh2LlFuPyIxIjoiMCIpO3gubGVuZ3RoJiYoeis9IiZ0aWRzPSIreC5qb2luKCJ+IikpO3YudWQmJih6Kz0iJnRpZD0iK3YudWQpO2lmKHYuTm4pe3orPSImdGZ0PSIrU3RyaW5nKE5iKCkpO3ZhciBDPXBkKCk7QyE9PXZvaWQgMCYmKHorPSImdGZkPSIrU3RyaW5nKE1hdGgucm91bmQoQykpKX1WdSh2LlpoWzBdLmV2ZW50LHosdi5aaFswXS5lbmRwb2ludCx4Lmxlbmd0aD94OlsiIl0pfX19fSxUdT1mdW5jdGlvbihhLGIpe3ZhciBjPWFbYl07aWYoYyE9PXZvaWQgMClyZXR1cm4gZGVsZXRlIGFbYl0sCmN9LFZ1PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6YyxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGY9ZnVuY3Rpb24obCxuKXt2YXIgcD1iK1h1KGwpO1RsKHAsYSxjLGQpO3JldHVybiBuKHApfTtpZihuZCgpKXt2YXIgZz1mdW5jdGlvbigpe30saD1TdShjLGIpO2ghPT12b2lkIDAmJihnPWZ1bmN0aW9uKCl7WW4oZSxoK1h1KDgpLHZvaWQgMCx7UWc6ITB9KX0pO2YoOCxmdW5jdGlvbihsKXtZbihlLGwsdm9pZCAwLHtRZzohMH0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoYitYdSgzKSxmdW5jdGlvbigpe30sZyl9KX0pfWVsc2UgZig1LGZ1bmN0aW9uKGwpe3JldHVybiBXbihlLGwpfSl8fFpjKGIrWHUoMykpfSxVdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuWmhbMF0sZD17Il8mYXB2YyI6YS5Rbj8iMSI6IjAifTtiLmxlbmd0aD4wJiYoZFsiXyZ0aWRzIl09CmIuam9pbigifiIpKTtpZihhLk5uKXtkWyJfJnRmdCJdPVN0cmluZyhOYigpKTt2YXIgZT1wZCgpO2UhPT12b2lkIDAmJihkWyJfJnRmZCJdPVN0cmluZyhNYXRoLnJvdW5kKGUpKSl9cmV0dXJuIFl1KGMuZXZlbnQsYS51ZHx8IiIsZCl9LFl1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEudGFyZ2V0LHtkZXN0aW5hdGlvbklkOmJ9KSxlPVp1KGEse3RhcmdldDpkfSk7Ynx8VShlLEYuRC5RZSk7Zm9yKHZhciBmPW0oT2JqZWN0LmtleXMoYykpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO1UoZSxoLGNbaF0pfXJldHVybiBlfSxYdT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSA4OmNhc2UgMzpjYXNlIDU6cmV0dXJuIiZmbXQ9IithO2RlZmF1bHQ6cmV0dXJuIiJ9fSwkdT1mdW5jdGlvbihhLGIpe2E9WnUoYSk7VihhLEguSi5EayxYbyhmcCkpO1R0KCkmJlUoYSwiXyZnY3MiLFV0KCkpOwpVKGEsIl8mZ2NkIixZdChhLk0pKTt2YXIgYz1YbyhmcCk/NDU6NDYsZD1mdW5jdGlvbigpe3ZhciBmPWIudGlkO2lmKE0oNDI3KSl7dmFyIGc9WXUoYSxmLGIpO1F1KGcsdm9pZCAwLEF1KX1lbHNle3ZhciBoPU5tKGMsYik7VnUoYSxoLGMsW2ZdKX19O2lmKHliKEEucXVldWVNaWNyb3Rhc2spKXt2YXIgZT1hbCgzMCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoZS5sZW5ndGg9PT0wKXRyeXtBLnF1ZXVlTWljcm90YXNrKFd1KX1jYXRjaChmKXtHdShULlcuZmopO2QoKTtyZXR1cm59Yj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIpO2UucHVzaCh7ZXZlbnQ6YSxrZTpiLGVuZHBvaW50OmN9KX1lbHNlIEd1KFQuVy5maiksZCgpfTt2YXIgYXY9ZnVuY3Rpb24oYSxiLGMsZCl7Z3UuY2FsbCh0aGlzLGEsYixjPT09dm9pZCAwPzE6YyxkPT09dm9pZCAwPyExOmQsMyx2b2lkIDApfTt3YShhdixndSk7YXYucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC55aSk7cmV0dXJuIGIrIi8iK2MrIi8ifTthdi5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy55YShhLGd1LnByb3RvdHlwZS5SLmNhbGwodGhpcyxhKSl9O3ZhciBYPXtWOntNazoiY2FsbF9jb252ZXJzaW9uIix6ZDoiY2NtX2NvbnZlcnNpb24iLFFrOiJjb21tb25fYXciLHhhOiJjb252ZXJzaW9uIix3cToiZmxvb2RsaWdodCIsWWQ6ImdhX2NvbnZlcnNpb24iLFpkOiJnY3BfcmVtYXJrZXRpbmciLEthOiJwYWdlX3ZpZXciLHViOiJyZW1hcmtldGluZyIsT2I6InVzZXJfZGF0YV9sZWFkIixGYjoidXNlcl9kYXRhX3dlYiJ9fTtmdW5jdGlvbiBidihhLGIpe2ImJkdiKGIsZnVuY3Rpb24oYyxkKXt0eXBlb2YgZCE9PSJvYmplY3QiJiZkIT09dm9pZCAwJiYoYVsiMXAuIitjXT1TdHJpbmcoZCkpfSl9Owp2YXIgY3Y9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELnNoKTtpZihjKWZvcih2YXIgZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWNbZl07ZyE9bnVsbCYmKGJbImd0bWQuIitmXT1TdHJpbmcoZykpfX0sZ3Y9ZnVuY3Rpb24oYSl7dmFyIGI9ZHYoYSk7aWYoYi5sZW5ndGgpe3ZhciBjPWV2KGEpLlZuLGQ9ZnYoYyl8fCIiO3JldHVybiBiLm1hcChmdW5jdGlvbihlKXt2YXIgZj1mdihlKTtyZXR1cm4iIitkKyhkJiZmPyI7IjoiIikrZn0pfX0sZHY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWh2KGEpLGM9e30sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9dm9pZCAwO2lmKGYuaGFzT3duUHJvcGVydHkoImdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCIpKXtnPWYuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsO3ZhciBoPXt9O2NbZ109Y1tnXXx8KGguZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsPQpnLGgpfWVsc2UgZz0iIixjLmhhc093blByb3BlcnR5KGcpfHwoY1tnXT17fSk7dmFyIGw9Y1tnXSxuO2ZvcihuIGluIGYpbiE9PSJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiJiYobiBpbiBsfHwobFtuXT1bXSksbFtuXS5wdXNoKGZbbl0pKX1yZXR1cm4gT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKHApe3JldHVybiBjW3BdfSl9LGh2PWZ1bmN0aW9uKGEpe3ZhciBiPVIoYSxGLkQuSGEpO3JldHVybiBiJiZiLmxlbmd0aD9iLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7dmFyIGQ9e307cmV0dXJuIGQuaWQ9aWkoYyksZC5vcmlnaW49Yy5vcmlnaW4sZC5kZXN0aW5hdGlvbj1jLmRlc3RpbmF0aW9uLGQuc3RhcnRfZGF0ZT1jLnN0YXJ0X2RhdGUsZC5lbmRfZGF0ZT1jLmVuZF9kYXRlLGQubG9jYXRpb25faWQ9Yy5sb2NhdGlvbl9pZCxkLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD1jLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCxkfSk6W119LAppaT1mdW5jdGlvbihhKXthLml0ZW1faWQhPW51bGwmJihhLmlkIT1udWxsPyhQKDEzOCksYS5pZCE9PWEuaXRlbV9pZCYmUCgxNDgpKTpQKDE1MykpO3JldHVybiBqaShhKX0sZnY9ZnVuY3Rpb24oYSl7aWYoYSYmdHlwZW9mIGE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1pdihiKTtpZihjKXt2YXIgZD1hW2JdLGU9QXJyYXkuaXNBcnJheShkKT9qdihkKTppdihkKTtpZihlIT09dm9pZCAwKXJldHVybiBjKyI9IitlfX0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYiE9PXZvaWQgMH0pLmpvaW4oIjsiKX0sanY9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXAoaXYpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYyE9PXZvaWQgMH0pO3JldHVybiBiLmxlbmd0aD9iLmpvaW4oIiwiKTp2b2lkIDB9LGl2PWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPXR5cGVvZiBhO2lmKGIhPT0ib2JqZWN0IiYmCmIhPT0iZnVuY3Rpb24iKXJldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvLC9nLCJcXCwiKS5yZXBsYWNlKC87L2csIlxcOyIpLnJlcGxhY2UoLz0vZywiXFw9Iil9fSxrdj1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPWFbYl07aWYoYyE9bnVsbCYmKGMhPT0iInx8eWdbYl0pKXJldHVybiBjPT09ITB8fGM9PT0hMT9iKyI9IisoYz8xOjApOmIrIj0iK2VuY29kZVVSSUNvbXBvbmVudChjKX0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5qb2luKCImIil9LGx2PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpLGM9e30sZD1RKGEsSC5KLkViKTtpZihiPT09WC5WLnhhfHxiPT09WC5WLnVifHxiPT09WC5WLllkfHxiPT09WC5WLnpkfHxiPT09WC5WLlpkKWMucmFuZG9tPSIiK2Q7Yj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi56ZHx8Yj09PVguVi5aZD8oYy5jdj0iMTEiLGMuZnN0PSIiK2QsYy5mbXQ9IjMiLApjLmJnPSJmZmZmZmYiLGMuZ3VpZD0iT04iLGMuYXN5bmM9IjEiLGMuZW49YS5ldmVudE5hbWUpOmI9PT1YLlYuWWQmJihjLmN2PSIxMSIsYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCxjLmZzdD0iIitkLGMuZm10PSI4IixjLmVuPWEuZXZlbnROYW1lKTt2YXIgZT1CcyhbImF3IiwiZGMiXSk7ZSE9bnVsbCYmKGMuZ2FkX3NvdXJjZT1lKTtjLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtiIT09WC5WLnViJiZUdCgpJiYoYy5nY3M9VXQoKSk7Yy5nY2Q9WXQoYS5NKTthdSgpJiYoYy5kbWFfY3BzPVp0KCkpO2MuZG1hPSR0KCk7dnQoRXQoKSkmJihjLnRjZmQ9YnUoKSk7dmFyIGY9Q3AoYSk7ZiYmKGMudGFnX2V4cD1mKTtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChjLmxpbWl0ZWRfYWRzPSIxIik7UihhLEYuRC5iZCkmJmZpKFIoYSxGLkQuYmQpLGMpO2lmKFIoYSwKRi5ELnRiKSl7dmFyIGc9UihhLEYuRC50Yik7ZyYmKGcubGVuZ3RoPT09Mj9naShjLCJobCIsZyk6Zy5sZW5ndGg9PT01JiYoZ2koYywiaGwiLGcuc3Vic3RyaW5nKDAsMikpLGdpKGMsImdsIixnLnN1YnN0cmluZygzLDUpKSkpfXZhciBoPVEoYSxILkouWWUpLGw9ZnVuY3Rpb24oSSxHKXt2YXIgTj1SKGEsRyk7TiYmKGNbSV09aD9acyhOKTpOKX07bCgidXJsIixGLkQuemEpO2woInJlZiIsRi5ELlVhKTtsKCJ0b3AiLEYuRC5QZSk7dmFyIG49Z3QoYSxGLkQuQmQsRi5ELkNkKTtuJiYoYy5nY2xhd19zcmM9bik7dmFyIHA9Z3QoYSxGLkQuZmgsRi5ELmdoKTtwJiYoYy5nY2xnYl9zcmM9cCk7dmFyIHE9ZnVuY3Rpb24oSSxHKXtmb3IodmFyIE49bShPYmplY3Qua2V5cyhJKSksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWU7ZWlbV10mJnR5cGVvZiBJW1ddPT09InN0cmluZyImJihHWyJleHQuIitlaVtXXV09SVtXXSl9fSxyPVIoYSxGLkQuV2MpO3ImJgpxKHIsYyk7dmFyIHQ9ZXYoYSksdT10LlZuO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsYyx0LmtlKTtidihjLFIoYSxGLkQuZWQpKTt2YXIgdj1SKGEsRi5ELk5lKTt2IT09dm9pZCAwJiZ2IT09IiImJihjLnZkbmM9U3RyaW5nKHYpKTt2YXIgeD1SKGEsRi5ELkxkKTt4IT09dm9pZCAwJiYoYy5zaGY9eCk7dmFyIHk9UihhLEYuRC5UYyk7eSE9PXZvaWQgMCYmKGMuZGVsYz15KTtpZihiIT09WC5WLllkKXt2YXIgej1mdih1KTt6JiYoYy5kYXRhPXopfXZhciBDPVIoYSxGLkQuSGEpO2lmKEMmJihiPT09WC5WLnhhfHxiPT09WC5WLllkfHxiPT09WC5WLlpkfHxiPT09WC5WLnpkKSl7dmFyIEQ9bmkoQyk7RCE9PXZvaWQgMCYmKGMuaWVkZWxkPUQpO2MuaXRlbT1oaShDKX1odChhLGMpO2N2KGEsYyk7UShhLEguSi5JaCkmJihjLmFlY3M9IjEiKTtiIT09WC5WLnhhfHxRKGEsSC5KLkVjKXx8UShhLEguSi5vYil8fChjLmNhdGVnb3J5PSJhY3JjcF92MV81MTIiKTtyZXR1cm4gY30sCmV2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPXt9LGQ9UShhLEguSi5kYSksZT1tKGV1KGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVIoYSxnKTtpZihoIT09dm9pZCAwKWlmKFNiKGcsIl8mIikpYltnLnN1YnN0cmluZygyKV09aDtlbHNlIGlmKGVpLmhhc093blByb3BlcnR5KGcpKXtpZihnIT09Ri5ELkVpfHxkPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBsPWVpW2ddO2wmJihnIT09Ri5ELk5kJiZnIT09Ri5ELk1kfHxNKDUwNCk/YltsXT1oOmNbZ109aCl9fWVsc2UgY1tnXT1ofXJldHVybntrZTpiLFZuOmN9fTt2YXIgbXY9e05nOiJ2YWx1ZSIscGI6ImNvbnZlcnNpb25Db3VudCIsT2c6MX0sbnY9e05nOiJ0aW1lb3V0cyIscGI6InRpbWVvdXRzIixPZzowfSxvdj17Tmc6ImVvcENvdW50IixwYjoiZW5kT2ZQYWdlQ291bnQiLE9nOjB9LHB2PXtOZzoiZXJyb3JzIixwYjoiZXJyb3JzIixPZzowfSxxdj1bbXYsbnYscHYsb3ZdO2Z1bmN0aW9uIHJ2KGEsYil7Yj1iPT09dm9pZCAwPzE6YjtpZighc3YoYSkpcmV0dXJue307dmFyIGM9dHYocXYpLGQ9Y1thLnBiXTtpZihkPT09dm9pZCAwfHxkPT09LTEpcmV0dXJuIGM7dmFyIGU9e30sZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMsKGVbYS5wYl09ZCtiLGUpKTtyZXR1cm4gdXYoZik/ZjpjfQpmdW5jdGlvbiB0dihhKXt2YXIgYjthOnt2YXIgYz1ucigiZ2NsX2N0ciIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO3RyeXtiPSJ2YWx1ZSJpbiBkJiZ0eXBlb2YgZC52YWx1ZT09PSJvYmplY3QiP2QudmFsdWU6dm9pZCAwO2JyZWFrIGF9Y2F0Y2gocCl7fX1iPXZvaWQgMH1mb3IodmFyIGU9YixmPXt9LGc9bShhKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtpZihlJiZzdihsKSl7dmFyIG49ZVtsLk5nXTtuPT09dm9pZCAwfHxOdW1iZXIuaXNOYU4obik/ZltsLnBiXT0tMTpmW2wucGJdPU51bWJlcihuKX1lbHNlIGZbbC5wYl09LTF9cmV0dXJuIGZ9CmZ1bmN0aW9uIHV2KGEsYil7Yj1ifHx7fTtmb3IodmFyIGM9TmIoKSxkPXVxKGIsYywhMCksZT17fSxmPW0ocXYpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlLGw9YVtoLnBiXTtsIT09dm9pZCAwJiZsIT09LTEmJihlW2guTmddPWwpfWUuY3JlYXRpb25UaW1lTXM9YztyZXR1cm4ga3IoImdjbF9jdHIiLHt2YWx1ZTplLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl9KT09PTA/ITA6ITF9ZnVuY3Rpb24gc3YoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5mdHx8WWYoYS5mdCk6ITF9ZnVuY3Rpb24gdnYoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5Bc3x8WWYoYS5Bcyk6ITF9O2Z1bmN0aW9uIHd2KCl7aWYoeHYoKSl7dmFyIGE9bnIoImxhc3RfY29udnMiKTtpZihhLmVycm9yPT09MCYmYS52YWx1ZSYmdHlwZW9mIGEudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGI9YS52YWx1ZTtpZihiLnZhbHVlJiZBcnJheS5pc0FycmF5KGIudmFsdWUpKXt2YXIgYz1iLnZhbHVlO2lmKCEoYy5sZW5ndGg+MSkpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYodHlwZW9mIGchPT0ib2JqZWN0Inx8Zz09PW51bGx8fHR5cGVvZiBnLnJhbmRvbSE9PSJudW1iZXIifHx0eXBlb2YgZy5sYWJlbCE9PSJzdHJpbmcifHxnLmxhYmVsLmxlbmd0aD4yMDApcmV0dXJuO2QucHVzaCh7cmFuZG9tOmcucmFuZG9tLGxhYmVsOmcubGFiZWx9KX1yZXR1cm4gZH19fX19CmZ1bmN0aW9uIHl2KGEsYil7IXh2KCl8fGEubGVuZ3RoPjF8fGEubGVuZ3RoPT09MSYmYVswXS5sYWJlbC5sZW5ndGg+MjAwfHwoYj1ifHx7fSxrcigibGFzdF9jb252cyIse3ZhbHVlOmEsZXhwaXJlczpOdW1iZXIodXEoYikuZXhwaXJlcyl9KSl9ZnVuY3Rpb24geHYoKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pJiZZZigxMSl9O2Z1bmN0aW9uIHp2KGEpe3ZhciBiPU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ3KTtyZXR1cm4gYT9TdHJpbmcoYl5uZyhhKSYyMTQ3NDgzNjQ3KTpTdHJpbmcoYil9ZnVuY3Rpb24gQXYoYSl7cmV0dXJuW3p2KGEpLE1hdGgucm91bmQoTmIoKS8xRTMpXS5qb2luKCIuIil9ZnVuY3Rpb24gQnYoYSxiLGMsZCxlKXt2YXIgZj1ycShiKSxnO3JldHVybihnPWdxKGEsZixzcShjKSxkLGUpKT09bnVsbD92b2lkIDA6Zy5Dcn07dmFyIEN2PVsiMSJdLER2PXt9LEV2PXt9O2Z1bmN0aW9uIEZ2KGEpe3JldHVybiBFdltHdihhKV19ZnVuY3Rpb24gSHYoYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz1HdihhLnByZWZpeCk7aWYoRHZbY10pSXYoYSksSnYoYSk7ZWxzZSBpZihLdihjLGEucGF0aCxhLmRvbWFpbikpe3ZhciBkPUZ2KGEucHJlZml4KXx8e2lkOnZvaWQgMCxrYzp2b2lkIDB9O2ImJkx2KGEsZCk7SXYoYSk7SnYoYSl9ZWxzZXt2YXIgZT1UaigiYXVpZGRjIik7aWYoZSlzYigiVEFHR0lORyIsMTcpLER2W2NdPWU7ZWxzZSBpZihiKXt2YXIgZj1HdihhLnByZWZpeCksZz1BdigpO012KGYsZyxhKTtLdihjLGEucGF0aCxhLmRvbWFpbik7SXYoYSwhMCk7SnYoYSwhMCl9fX0KZnVuY3Rpb24gSXYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZzdihtdikmJm9yKCJnY2xfY3RyIik7aWYodnYobXYpJiZ0dihbbXZdKVttdi5wYl09PT0tMSl7Zm9yKHZhciBjPXt9LGQ9KGNbbXYucGJdPTAsYyksZT1tKHF2KSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIT09bXYmJnZ2KGcpJiYoZFtnLnBiXT0wKX11dihkLGEpfX1mdW5jdGlvbiBKdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnh2KCkmJm9yKCJsYXN0X2NvbnZzIik7IUJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKXx8IVlmKDEyKXx8d3YoKXx8eXYoW10sYSl9CmZ1bmN0aW9uIEx2KGEsYil7dmFyIGM9R3YoYS5wcmVmaXgpLGQ9RHZbY107aWYoZCl7dmFyIGU9ZC5zcGxpdCgiLiIpO2lmKGUubGVuZ3RoPT09Mil7dmFyIGY9TnVtYmVyKGVbMV0pfHwwO2lmKGYpe3ZhciBnPWQ7WWYoMTkpJiZiLmZpP2c9ZCsiLiIrKGIuc2Vzc2lvbklkfHwiLS4tIikrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKyIuIitiLmZpKyIuIisoYi5MYz9iLkxjOk1hdGguZmxvb3IoTmIoKS8xRTMpKTpiLnNlc3Npb25JZCYmKGc9ZCsiLiIrYi5zZXNzaW9uSWQrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKTtNdihjLGcsYSxmKjFFMyl9fX19ZnVuY3Rpb24gTXYoYSxiLGMsZCl7dmFyIGU7ZT1bIjEiLHRxKGMuZG9tYWluLGMucGF0aCksYl0uam9pbigiLiIpO3ZhciBmPXVxKGMsZCk7Zi5NYz1OdigpO29xKGEsZSxmKX0KZnVuY3Rpb24gS3YoYSxiLGMpe3ZhciBkPUJ2KGEsYixjLEN2LE52KCkpO2lmKCFkKXJldHVybiExO092KGEsZCk7cmV0dXJuITB9ZnVuY3Rpb24gT3YoYSxiKXt2YXIgYz1iLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKUV2W2FdPXtzZXNzaW9uSWQ6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07ZWxzZSBpZihjLmxlbmd0aD49MiYmKER2W2FdPWNbMF0rIi4iK2NbMV0sYy5zaGlmdCgpLGMuc2hpZnQoKSxjLmxlbmd0aD49Mykpe3ZhciBkPXtzZXNzaW9uSWQ6Y1swXT09PSItIj92b2lkIDA6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07aWYoWWYoMTkpJiZjLmxlbmd0aD49Nil7dmFyIGU9Y1szXSsiLiIrY1s0XSxmPU51bWJlcihjWzVdKXx8MDtlJiZmIT09MCYmKGQuZmk9ZSxkLkxjPWYpfUV2W2FdPWR9fWZ1bmN0aW9uIEd2KGEpe3JldHVybihhfHwiX2djbCIpKyJfYXUifQpmdW5jdGlvbiBQdihhKXtmdW5jdGlvbiBiKCl7QmwoYykmJmEoKX12YXIgYz1OdigpO0hsKGZ1bmN0aW9uKCl7YigpO0JsKGMpfHxJbChiLGMpfSxjKX1mdW5jdGlvbiBRdihhKXt2YXIgYj1VcSghMCksYz1HdihhLnByZWZpeCk7UHYoZnVuY3Rpb24oKXt2YXIgZD1iW2NdO2lmKGQpe092KGMsZCk7dmFyIGU9TnVtYmVyKER2W2NdLnNwbGl0KCIuIilbMV0pKjFFMztpZihlKXtzYigiVEFHR0lORyIsMTYpO3ZhciBmPXVxKGEsZSk7Zi5NYz1OdigpO3ZhciBnPVsiMSIsdHEoYS5kb21haW4sYS5wYXRoKSxkXS5qb2luKCIuIik7b3EoYyxnLGYpfX19KX1mdW5jdGlvbiBSdihhLGIsYyxkLGUpe2U9ZXx8e307dmFyIGY9ZnVuY3Rpb24oKXt2YXIgZz17fSxoPUJ2KGEsZS5wYXRoLGUuZG9tYWluLEN2LE52KCkpO2gmJihnW2FdPWgpO3JldHVybiBnfTtQdihmdW5jdGlvbigpe2FyKGYsYixjLGQpfSl9CmZ1bmN0aW9uIE52KCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19Owp2YXIgVHY9ZnVuY3Rpb24oYSl7cmV0dXJuIFN2KGEse09qOiEwfSkuU2h9LFN2PWZ1bmN0aW9uKGEsYil7YT1hfHx7fTtpZighWG8oRi5ELmthKSlyZXR1cm57fTt2YXIgYz1VdihhKSxkPWMuU2gsZT1jLmlrO2IuT2omJiFkJiYoZD1BdigpKTtiLlhoJiYhZSYmKGU9QXYoKSk7dmFyIGY9e307ZCYmKGYuc2Vzc2lvbklkPWQpO2UmJihmLmZpPWUpO3ZhciBnPUZ2KEhyKGEucHJlZml4KSk7ZyYmKGIuT2omJiFiLlhoP2cuTGMmJihmLkxjPWcuTGMpOmIuWGgmJiFiLk9qJiZnLmtjJiYoZi5rYz1nLmtjKSk7aWYoZHx8ZSl7dmFyIGg9YSxsPUd2KGgucHJlZml4KTtMdihoLGYpO2RlbGV0ZSBEdltsXTtkZWxldGUgRXZbbF07S3YobCxoLnBhdGgsaC5kb21haW4pfXJldHVybiBVdihhKX0sVXY9ZnVuY3Rpb24oYSl7aWYoIVhvKEYuRC5rYSkpcmV0dXJue307YT1hfHx7fTtIdihhLCExKTt2YXIgYj1GdihIcihhLnByZWZpeCkpO2lmKCFiKXJldHVybnt9O3ZhciBjPU5iKCksZD17fTtpZihjLQpiLmtjKjFFMzw9KE0oNDUwKXx8TSg0NDMpPzg2NEU1OjE4RTUpKXt2YXIgZT1iLnNlc3Npb25JZDtpZihlKXt2YXIgZj1lLnNwbGl0KCIuIik7Zi5sZW5ndGg9PT0yJiZjLShOdW1iZXIoZlsxXSl8fDApKjFFMzw9ODY0RTUmJihkLlNoPWUpfX1pZihiLkxjJiZjLWIuTGMqMUUzPD04NjRFNSl7dmFyIGc9Yi5maTtpZihnKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0yJiZjLShOdW1iZXIoaFsxXSl8fDApKjFFMzw9ODY0RTUmJihkLmlrPWcpfX1yZXR1cm4gZH07dmFyIFZ2PSJlbWFpbCBlbWFpbF9hZGRyZXNzIHNoYTI1Nl9lbWFpbF9hZGRyZXNzIHBob25lX251bWJlciBzaGEyNTZfcGhvbmVfbnVtYmVyIGZpcnN0X25hbWUgbGFzdF9uYW1lIi5zcGxpdCgiICIpLFd2PSJmaXJzdF9uYW1lIHNoYTI1Nl9maXJzdF9uYW1lIGxhc3RfbmFtZSBzaGEyNTZfbGFzdF9uYW1lIHN0cmVldCBzaGEyNTZfc3RyZWV0IGNpdHkgcmVnaW9uIGNvdW50cnkgcG9zdGFsX2NvZGUiLnNwbGl0KCIgIik7ZnVuY3Rpb24gWHYoYSxiKXtpZighYi5fdGFnX21ldGFkYXRhKXtmb3IodmFyIGM9e30sZD0wLGU9MDtlPGEubGVuZ3RoO2UrKylkKz1ZdihhW2VdLGIsYyk/MTowO2Q+MCYmKGIuX3RhZ19tZXRhZGF0YT1jKX19CmZ1bmN0aW9uIFl2KGEsYixjKXt2YXIgZD1iW2FdO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXJldHVybiExO2NbYV09QXJyYXkuaXNBcnJheShkKT9kLm1hcChmdW5jdGlvbigpe3JldHVybnttb2RlOiJjIn19KTp7bW9kZToiYyJ9O3JldHVybiEwfWZ1bmN0aW9uIFp2KGEpe2lmKE0oNTIzKSYmYSl7WHYoVnYsYSk7Zm9yKHZhciBiPUJiKGEuYWRkcmVzcyksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QmJlh2KFd2LGQpfXZhciBlPWEuaG9tZV9hZGRyZXNzO2UmJlh2KFd2LGUpfX0KZnVuY3Rpb24gJHYoYSxiLGMpe2Z1bmN0aW9uIGQoZixnKXtnPVN0cmluZyhnKS5zdWJzdHJpbmcoMCwxMDApO2UucHVzaCgiIitmK2VuY29kZVVSSUNvbXBvbmVudChnKSl9aWYoIWMpcmV0dXJuIiI7dmFyIGU9W107ZCgiaSIsU3RyaW5nKGEpKTtkKCJmIixiKTtjLm1vZGUmJmQoIm0iLGMubW9kZSk7Yy5pc1ByZUhhc2hlZCYmZCgicCIsIjEiKTtjLnJhd0xlbmd0aCYmZCgiciIsU3RyaW5nKGMucmF3TGVuZ3RoKSk7Yy5ub3JtYWxpemVkTGVuZ3RoJiZkKCJuIixTdHJpbmcoYy5ub3JtYWxpemVkTGVuZ3RoKSk7Yy5sb2NhdGlvbiYmZCgibCIsYy5sb2NhdGlvbik7Yy5zZWxlY3RvciYmZCgicyIsYy5zZWxlY3Rvcik7cmV0dXJuIGUuam9pbigiLiIpfTt2YXIgYXc9dm9pZCAwO2Z1bmN0aW9uIGJ3KCl7aWYoIWF3KXt2YXIgYT1vbShqbS5iYS5vcCxuZXcgTWFwKTthdz1uZXcgb2coYSl9cmV0dXJuIGF3fTsKdmFyIGN3PWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBhO2Zvcih2YXIgYj17fSxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2UhPT0iYWRkcmVzcyImJmUhPT0icGhvbmVfbnVtYmVyIiYmZSE9PSJzaGEyNTZfcGhvbmVfbnVtYmVyIiYmKGJbZV09YVtlXSl9cmV0dXJuIGJ9LGZ3PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPVsidHYuMSJdLGQ9WyJ0dmQuMSJdLGU9ZHcoYSk7aWYoZSlyZXR1cm4gYy5wdXNoKGUpLHtoYXNVcGQ6ITEsT286Yy5qb2luKCJ+IiksWW46Yy5qb2luKCJ+IiksZW5jcnlwdGlvbktleVN0cmluZzp2b2lkIDAsaWk6e30sbWV0YWRhdGFQYXJhbTpiP2Quam9pbigifiIpOnZvaWQgMH07dmFyIGY9e30sZz0wO3ZhciBoPTAsbD1ldyhhLGZ1bmN0aW9uKHEscix0KXtoKys7dmFyIHU9cS52YWx1ZSx2OwppZih0KXt2YXIgeD1yKyJfXyIrZysrO3Y9IiR7dXNlckRhdGEuIit4KyJ8c2hhMjU2fSI7Zlt4XT11fWVsc2Ugdj1lbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHUpKTtxLmluZGV4IT09dm9pZCAwJiYocis9cS5pbmRleCk7Yy5wdXNoKHIrIi4iK3YpO2lmKGIpe3ZhciB5PSR2KGgscixxLm1ldGFkYXRhKTt5JiZkLnB1c2goeSl9fSkuaGFzVXBkLG49ZC5qb2luKCJ+Iik7dmFyIHA9Yy5qb2luKCJ+Iik7cmV0dXJue2hhc1VwZDpsLE9vOnAsaWk6e3VzZXJEYXRhOmZ9LFluOiJ0di4xfiR7IisocCsifCIrKE0oNTU1KT8iZW5jcnlwdF93aXRoX21lbW8iOiJlbmNyeXB0IikrIn0iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOkUoNDMpLG1ldGFkYXRhUGFyYW06Yj9uOnZvaWQgMH19LGh3PWZ1bmN0aW9uKGEpe2lmKCEoYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjApKXJldHVybiExOwp2YXIgYj1ndyhhKTtyZXR1cm4gZXcoYixmdW5jdGlvbigpe30pLmhhc1VwZH0sZXc9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZnVuY3Rpb24oKXt9OmI7Zm9yKHZhciBjPSExLGQ9ITEsZT1tKGEpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKGcudmFsdWUpe3ZhciBoPWl3W2cubmFtZV07aWYoaCl7dmFyIGw9ancoZyk7bCYmKGM9ITApO2Q9ITA7YihnLGgsbCl9fX1yZXR1cm57aGFzVXBkOmQsaGFzVXBkVG9IYXNoOmN9fSxqdz1mdW5jdGlvbihhKXt2YXIgYj1rdyhhLm5hbWUpLGM9L15lXGQrJC8udGVzdChhLnZhbHVlKSxkO2lmKGQ9YiYmIWMpe3ZhciBlPWEudmFsdWU7ZD0hKGx3LnRlc3QoZSl8fHlpLnRlc3QoZSkpfXJldHVybiBkfSxrdz1mdW5jdGlvbihhKXtyZXR1cm4gbXcuaW5kZXhPZihhKSE9PS0xfSxzdz1mdW5jdGlvbihhLGIsYyl7aWYoeWIoQS5Qcm9taXNlKSl0cnl7dmFyIGQ9ITE7dmFyIGU9Z3coYSxkKSxmPW53KGUpLnRoZW4oZnVuY3Rpb24oaCl7dmFyIGw9aC55YixuPWwuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFTYihxLm5hbWUsInJhdyIpfSkscD1vdyh7eWI6bn0pO3JldHVybntyZXN1bHQ6e3BhcmFtOnAucGFyYW0saGFzVXBkVG9IYXNoOnAuaGFzVXBkVG9IYXNoLGhhc1VwZDpwLmhhc1VwZCxoYWRFcnJvcjpwLmhhZEVycm9yLG1ldGFkYXRhUGFyYW06cC5tZXRhZGF0YVBhcmFtfSx5YjpsfX0pO3JldHVybiBmLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIGgucmVzdWx0fSl9Y2F0Y2goaCl7fX0scXc9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifSxvdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1hLnliLGQ9WyJ0di4xIl0sZT1bInR2ZC4xIl0sZj1kdyhjKTtpZihmKXJldHVybiBkLnB1c2goZikse3BhcmFtOmQuam9pbigifiIpLGhhc1VwZFRvSGFzaDohMSxoYXNVcGQ6ITEsaGFkRXJyb3I6ITAsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH07dmFyIGc9Yy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIWp3KHEpfSksaD0wLGw9ZXcoZyxmdW5jdGlvbihxLHIpe2grKzt2YXIgdD1xLnZhbHVlLHU9cS5pbmRleDt1IT09dm9pZCAwJiYocis9dSk7ZC5wdXNoKHIrIi4iK3QpO2lmKGIpe3ZhciB2PSR2KGgscixxLm1ldGFkYXRhKTt2JiZlLnB1c2godil9fSksbj1sLmhhc1VwZFRvSGFzaCxwPWwuaGFzVXBkO3JldHVybntwYXJhbTplbmNvZGVVUklDb21wb25lbnQoZC5qb2luKCJ+IikpLApoYXNVcGRUb0hhc2g6bixoYXNVcGQ6cCxoYWRFcnJvcjohMSxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfX0sZHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuIGl3LmVycm9yX2NvZGUrIi4iK2FbMF0udmFsdWV9LHB3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiExO2Zvcih2YXIgYj1tKGEpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKGl3W2QubmFtZV0mJmQudmFsdWUpcmV0dXJuITB9cmV0dXJuITF9LGd3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107aWYoQS5sb2NhdGlvbi5wcm90b2NvbCE9PSJodHRwczoiKXJldHVybiBjLnB1c2goe25hbWU6ImVycm9yX2NvZGUiLHZhbHVlOiJlMyIsaW5kZXg6dm9pZCAwfSksYzt2YXIgZD1jLnB1c2gsZT1kLmFwcGx5LGY9W10sCmc9Zi5jb25jYXQsaCxsPWEuX3RhZ19tZXRhZGF0YXx8e307aD1bXS5jb25jYXQodyh0dyh7bmFtZToiZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3MsYWI6bC5lbWFpbCxtZDpsLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSx1dykpLHcodHcoe25hbWU6InBob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcixhYjpsLnBob25lX251bWJlcixtZDpsLnNoYTI1Nl9waG9uZV9udW1iZXJ9LHZ3KSkpO3ZhciBuPXcoaCkscCxxPWEuX3RhZ19tZXRhZGF0YXx8e30scj1hLmhvbWVfYWRkcmVzc3x8e30sdD1yLl90YWdfbWV0YWRhdGF8fHt9O3A9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZSxhYjpxLmZpcnN0X25hbWUsbWQ6cS5zaGEyNTZfZmlyc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsClNhOmEuc2hhMjU2X2xhc3RfbmFtZSxhYjpxLmxhc3RfbmFtZSxtZDpxLnNoYTI1Nl9sYXN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6InN0cmVldCIscmF3OnIuc3RyZWV0LFNhOnIuc2hhMjU2X3N0cmVldCxhYjp0LnN0cmVldCxtZDp0LnNoYTI1Nl9zdHJlZXR9LHd3KHl3KSkpLHcodHcoe25hbWU6ImNpdHkiLHJhdzpyLmNpdHksYWI6dC5jaXR5fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnIucG9zdGFsX2NvZGUsYWI6dC5wb3N0YWxfY29kZX0sd3coencpKSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ci5yZWdpb24sYWI6dC5yZWdpb259LHd3KHl3KSkpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzpyLmNvdW50cnksYWI6dC5jb3VudHJ5fSx3dyh6dykpKSk7Zm9yKHZhciB1PXcocCksdj1bXSx4PUJiKGEuYWRkcmVzc3x8e30pLHk9MDt5PHgubGVuZ3RoO3krKyl7Zm9yKHZhciB6PXhbeV0sQz16Ll90YWdfbWV0YWRhdGF8fHt9LEQ9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLApyYXc6ei5maXJzdF9uYW1lLFNhOnouc2hhMjU2X2ZpcnN0X25hbWUsYWI6Qy5maXJzdF9uYW1lLG1kOkMuc2hhMjU2X2ZpcnN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6ei5sYXN0X25hbWUsU2E6ei5zaGEyNTZfbGFzdF9uYW1lLGFiOkMubGFzdF9uYW1lLG1kOkMuc2hhMjU2X2xhc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzp6LnN0cmVldCxTYTp6LnNoYTI1Nl9zdHJlZXQsYWI6Qy5zdHJlZXQsbWQ6Qy5zaGEyNTZfc3RyZWV0fSx5dykpLHcodHcoe25hbWU6ImNpdHkiLHJhdzp6LmNpdHksYWI6Qy5jaXR5fSx5dykpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ei5wb3N0YWxfY29kZSxhYjpDLnBvc3RhbF9jb2RlfSx6dykpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnoucmVnaW9uLGFiOkMucmVnaW9ufSx5dykpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzp6LmNvdW50cnksYWI6Qy5jb3VudHJ5fSx6dykpKSxJPTA7STwKRC5sZW5ndGg7SSsrKURbSV0uaW5kZXg9eTt2LnB1c2guYXBwbHkodix3KEQpKX1lLmNhbGwoZCxjLGcuY2FsbChmLG4sdSx3KHYpKSk7aWYoYiYmQnAoKSl7dmFyIEc9Yy5wdXNoLE49Ry5hcHBseSxTPVtdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3N9KSksdyhBdyh7bmFtZToicmF3X3Bob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcn0pKSkpO2Zvcih2YXIgVz1CYihhLmFkZHJlc3N8fHt9KSxlYT0wO2VhPFcubGVuZ3RoO2VhKyspe3ZhciBqYT1XW2VhXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzpqYS5maXJzdF9uYW1lLFNhOmphLnNoYTI1Nl9maXJzdF9uYW1lfSxlYSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzpqYS5sYXN0X25hbWUsU2E6amEuc2hhMjU2X2xhc3RfbmFtZX0sCmVhKSksdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmphLnN0cmVldCxTYTpqYS5zaGEyNTZfc3RyZWV0fSxlYSkpKSl9aWYoYS5maXJzdF9uYW1lfHxhLmhvbWVfYWRkcmVzcyl7Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWV9KSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLFNhOmEuc2hhMjU2X2xhc3RfbmFtZX0pKSkpO3ZhciBmYT1hLmhvbWVfYWRkcmVzc3x8e307Uy5wdXNoLmFwcGx5KFMsdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmZhLnN0cmVldCxTYTpmYS5zaGEyNTZfc3RyZWV0fSkpKX1OLmNhbGwoRyxjLHcoUykpfXJldHVybiBjfSx3dz1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7UCg2NCk7cmV0dXJuIGEoYil9fSxBdz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2lmKGEuU2EpcmV0dXJuIGM7Zm9yKHZhciBkPQpCYihhLnJhdyksZT0wO2U8ZC5sZW5ndGg7KytlKXt2YXIgZj1CdyhkW2VdKTtpZihmJiYheWkudGVzdChmKSlpZigvXmVcZCskLy50ZXN0KGYpKWMucHVzaCh7bmFtZTphLm5hbWUsdmFsdWU6ZixpbmRleDpifSk7ZWxzZXt2YXIgZz1jLGg9Zy5wdXNoLGw9YS5uYW1lLG47dmFyIHA9QTt0cnl7bj1CaShBcnJheS5mcm9tKFpiKGYpKSxwKX1jYXRjaChxKXtuPSJlMCJ9aC5jYWxsKGcse25hbWU6bCx2YWx1ZTpuLGluZGV4OmJ9KX19cmV0dXJuIGN9LHR3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1NKDUyMyksZT1hLnJhdyxmPWQ/YS5hYjp2b2lkIDA7Q3coZSwhMSk7YS5TYSYmKGUmJlAoOTApLGU9YS5TYSxmPWQ/YS5tZDp2b2lkIDAsQ3coZSwhMCkpO2Zvcih2YXIgZz1CYihlKSxoPUJiKGYpLGw9MDtsPGcubGVuZ3RoOysrbCl7dmFyIG47dmFyIHA9YS5uYW1lLHE9YixyPWhbbF0sdD1CdyhnW2xdKTtpZih0IT09IiIpaWYoeWkudGVzdCh0KSl7ciYmKHIuaXNQcmVIYXNoZWQ9ITApOwp2YXIgdT17bmFtZTpwLHZhbHVlOnQsaW5kZXg6dm9pZCAwfTtyJiYodS5tZXRhZGF0YT1yKTtuPXV9ZWxzZXt2YXIgdj1xKHQpLHg9e25hbWU6cCx2YWx1ZTp2LGluZGV4OnZvaWQgMH07ciYmKHgubWV0YWRhdGE9cix2JiYoci5yYXdMZW5ndGg9U3RyaW5nKHQpLmxlbmd0aCxyLm5vcm1hbGl6ZWRMZW5ndGg9di5sZW5ndGgpKTtuPXh9ZWxzZSBuPXZvaWQgMDt2YXIgeT1uO3kmJmMucHVzaCh5KX1yZXR1cm4gY30sQ3c9ZnVuY3Rpb24oYSxiKXtpZih6YihhKXx8QXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9QmIoYSksZD0wO2Q8Yy5sZW5ndGg7KytkKXt2YXIgZT1CdyhjW2RdKSxmPXlpLnRlc3QoZSk7YiYmIWYmJlAoODkpOyFiJiZmJiZQKDg4KX19LER3PWZ1bmN0aW9uKGEpe3ZhciBiPWE/Z3coYSk6W107cmV0dXJuIG93KHt5YjpifSl9LEV3PWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCYmeWIoQS5Qcm9taXNlKT9ndyhhKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiYKa3coYi5uYW1lKSYmIXlpLnRlc3QoYi52YWx1ZSl9KTohMX0sQnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/IiI6emIoYSk/TGIoU3RyaW5nKGEpKToiZTAifSx6dz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKEZ3LCIiKX0seHc9ZnVuY3Rpb24oYSl7cmV0dXJuIHl3KGEucmVwbGFjZSgvXHMvZywiIikpfSx5dz1mdW5jdGlvbihhKXtyZXR1cm4gTGIoYS5yZXBsYWNlKEd3LCIiKS50b0xvd2VyQ2FzZSgpKX0sdnc9ZnVuY3Rpb24oYSl7YT1hLnJlcGxhY2UoL1tccy0oKS8uXS9nLCIiKTthLmNoYXJBdCgwKSE9PSIrIiYmKGE9IisiK2EpO3JldHVybihNKDU5Nyk/SHc6SXcpLnRlc3QoYSk/YToiZTAifSx1dz1mdW5jdGlvbihhKXt2YXIgYj1hLnRvTG93ZXJDYXNlKCkuc3BsaXQoIkAiKTtpZihiLmxlbmd0aD09PTIpe3ZhciBjPWJbMF07L14oZ21haWx8Z29vZ2xlbWFpbClcLi8udGVzdChiWzFdKSYmKGM9Yy5yZXBsYWNlKC9cLi9nLCIiKSk7Yz1jKyJAIitiWzFdO2lmKEp3LnRlc3QoYykpcmV0dXJuIGN9cmV0dXJuImUwIn0sCkt3PWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IudmFsdWUmJmt3KGIubmFtZSkmJihiLnZhbHVlPURpKGIudmFsdWUpKX0pLHt5YjphfX1jYXRjaChiKXtyZXR1cm57eWI6W119fX0sbnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKX0pP3liKEEuUHJvbWlzZSk/UHJvbWlzZS5hbGwoYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSk/QWkoYi52YWx1ZSkudGhlbihmdW5jdGlvbihjKXtiLnZhbHVlPWN9KTpQcm9taXNlLnJlc29sdmUoKX0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJue3liOmF9fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57eWI6W119fSk6e3RoZW46ZnVuY3Rpb24oYil7Yih7eWI6W119KX19OlByb21pc2UucmVzb2x2ZSh7eWI6YX0pfSxHdz0vWzAtOWB+IUAjJCVeJiooKV9cLSs9Ojs8PiwuP3wvXFxbXF1dL2csSnc9L15cUytAXFMrXC5cUyskLywKSXc9L15cK1xkezEwLDE1fSQvLEh3PS9eXCtcZHs3LDE1fSQvLEZ3PS9bLn5dL2csbHc9L15bMC05QS1aYS16Xy1dezQzfSQvLEx3PVsicmVtIiwicnBuIiwicmZuIiwicmxuIiwicnNhIl0sTXc9e30saXc9KE13LmVtYWlsPSJlbSIsTXcucGhvbmVfbnVtYmVyPSJwbiIsTXcuZmlyc3RfbmFtZT0iZm4iLE13Lmxhc3RfbmFtZT0ibG4iLE13LnN0cmVldD0ic2EiLE13LmNpdHk9ImN0IixNdy5yZWdpb249InJnIixNdy5jb3VudHJ5PSJjbyIsTXcucG9zdGFsX2NvZGU9InBjIixNdy5lcnJvcl9jb2RlPSJlYyIsTXcucmF3X2VtYWlsPSJyZW0iLE13LnJhd19waG9uZV9udW1iZXI9InJwbiIsTXcucmF3X2ZpcnN0X25hbWU9InJmbiIsTXcucmF3X2xhc3RfbmFtZT0icmxuIixNdy5yYXdfc3RyZWV0PSJyc2EiLE13KTt2YXIgbXc9T2JqZWN0LmZyZWV6ZShbImVtYWlsIiwKInBob25lX251bWJlciIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJzdHJlZXQiXSk7CnZhciBRdz1mdW5jdGlvbihhLGIpe3ZhciBjPWx2KGEpLGQ9ZnVuY3Rpb24ocCl7dmFyIHE9Q3AoYSk7cSYmKGMudGFnX2V4cD1xKTtiKHApfSxlPVEoYSxILkouZGEpLGY9UShhLEguSi5ZYSksZz1YbyhbRi5ELm1hLEYuRC5rYV0pLGg7YTpzd2l0Y2goZSl7Y2FzZSBYLlYueGE6Y2FzZSBYLlYuemQ6Y2FzZSBYLlYuWmQ6Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6aD0hMDticmVhayBhO2RlZmF1bHQ6aD0hMX1pZihoJiZmJiZnKWlmKFEoYSxILkouZmQpKWlmKE53KGEpKWQoYyk7ZWxzZXt2YXIgbD1zdyhmLCEwKTtPdyhsLGEsYyxkKX1lbHNle3ZhciBuO2E6e3RyeXtuPW93KEt3KGd3KGYpKSk7YnJlYWsgYX1jYXRjaChwKXt9bj12b2lkIDB9aWYobil0cnl7UHcoYyxhKShuKX1jYXRjaChwKXt9ZChjKX1lbHNlIGRlbGV0ZSBjLmVjX21vZGUsZChjKX0sTnc9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk7cmV0dXJuIGI9PT1YLlYuRmJ8fGI9PT1YLlYuT2J9LFJ3PWZ1bmN0aW9uKGEsCmIpe3JldHVybiBhIT09MXx8UShiLEguSi5kYSk9PT1YLlYuT2ImJiFNKDQ0NSk/ITE6ISFRKGIsSC5KLmZkKX0sUHc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyl7UncoYy5lbmNyeXB0aW9uUmVzdWx0PzE6MCxiKXx8KGEuZW09Yy5wYXJhbSk7aWYoYy5oYXNVcGQpe3ZhciBkPVN3KGIpO2QmJihhLmVjc2lkPWQpfU0oNTIzKSYmYy5tZXRhZGF0YVBhcmFtJiYoYS5lbWQ9Yy5tZXRhZGF0YVBhcmFtKTt9fSxTdz1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKT09PVguVi5GYiYmCiFNKDQ0Mykpe3ZhciBiPVEoYSxILkouR2EpO3JldHVybiBRKGEsSC5KLnpqKXx8VHYoYil9fSxPdz1mdW5jdGlvbihhLGIsYyxkKXtpZihhKXRyeXthLnRoZW4oUHcoYyxiKSkudGhlbihmdW5jdGlvbigpe2QoYyl9KTtyZXR1cm59Y2F0Y2goZSl7fWQoYyl9O3ZhciBUdz1PYmplY3QuZnJlZXplKHtnY3A6IjEiLHNzY3RlOiIxIixjdF9jb29raWVfcHJlc2VudDoiMSJ9KTsKdmFyIFV3PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwxLCExKX07d2EoVXcsYXYpO1V3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXtRdyhhLGZ1bmN0aW9uKGQpe1EoYSxILkouYWopJiZkZWxldGUgZC5pdGVtO1EoYSxILkoub2IpJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsVHcpO3ZhciBlPWdrKGIuSWMpO2UmJihkLl91aXA9ZSk7dmFyIGY9Ij8iK2t2KGQpO2MoZil9KX07dmFyIFZ3PW5ldyBVdygyMixbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksV3c9bmV3IFV3KDIzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxYdz1uZXcgVXcoNjAsW10pLFl3PWZ1bmN0aW9uKCl7fTt3YShZdyxvdSk7WXcucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLnpkJiZRKGEsSC5KLmxqKT9be2VuZHBvaW50OlhvKGZwKT9RKGEsSC5KLm9iKT9XdzpWdzpYdyxtZXRob2Q6bHV9XTpbXX07dmFyIFp3PW5ldyBZdzsKCnZhciAkdz1mdW5jdGlvbihhKXtpZihPcCgpPT09MilyZXR1cm4hMTt2YXIgYj1RKGEsSC5KLmRhKSxjPVtYLlYueGEsWC5WLnViXTtNKDU5MykmJmMucHVzaChYLlYuWWQpO3JldHVybiBjLmluY2x1ZGVzKGIpPyEwOiExfSxheD1mdW5jdGlvbihhKXtyZXR1cm4gTSg1MDApJiZPcCgpIT09MiYmUShhLEguSi5kYSk9PT1YLlYueGF9LGJ4PWZ1bmN0aW9uKGEpe3ZhciBiPUhyKGEucHJlZml4KTtiPT09Il9nY2wiJiYoYj0iIik7cmV0dXJuIGJ9LGN4PWZ1bmN0aW9uKGEpe2lmKFIoYSxGLkQuU2IpfHxSKGEsRi5ELkplKSl7dmFyIGI9UihhLEYuRC5HZCksYz1FZChRKGEsSC5KLkdhKSxudWxsKSxkPUhyKGMucHJlZml4KTtjLnByZWZpeD1kPT09Il9nY2wiPyIiOmQ7aWYoUihhLEYuRC5TYikpe3ZhciBlPVhzKGIsYywhUShhLEguSi5ObSksYXgoYSkpO1YoYSxILkouTm0sITApO2UmJlUoYSxGLkQucW0sZSl9aWYoUihhLEYuRC5KZSkpe3ZhciBmPVBzKGIsYykuUnI7ZiYmVShhLEYuRC5NbCwKZil9fX0saXg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGR4O3N3aXRjaChRKGEsSC5KLmRhKSl7Y2FzZSBYLlYueGE6VShhLEYuRC5mbSxVcSghMSkuX2dzKTtleChhKTtmeChhLGIpO2d4KGEsYik7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgYz1ubShqbS5iYS5WZSksZD1YbyhGLkQua2EpJiZYbyhGLkQubWEpO2lmKGMmJmMuZ2NsaWQmJiFkJiYhUShhLEguSi5YZSkpe3ZhciBlPVN0cmluZyhjLmdjbGlkKSxmPW5ldyBlcjtmcihmLDYpO2IuQ2ooe3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6ZSxxYTpmLG9hOls0XX0pfX1icmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjpleChhKTtmeChhLGIpO2JyZWFrO2Nhc2UgWC5WLnViOmlmKE0oNDU4KSYmWG8oRi5ELmthKSYmUShhLEguSi53Zikpe3ZhciBnPVEoYSxILkouR2EpO2h4KGEsYixieChnKSl9YnJlYWs7Y2FzZSBYLlYuWWQ6ZXgoYSksZngoYSxiKSxneChhLGIpfWIuT3QoYSl9LGZ4PWZ1bmN0aW9uKGEsYil7aWYoWG8oRi5ELmthKSYmClEoYSxILkoud2YpKXt2YXIgYz1RKGEsSC5KLkdhKSxkPWJ4KGMpLGU9UnMoZCk7VShhLEYuRC5CZSxlLkVnKTtVKGEsRi5ELkRlLGUuV2gpO1UoYSxGLkQuQ2UsZS5VaCk7TSg0MjEpPyhqeChhLGIsYyxkKSxoeChhLGIsZCkpOldzKGQpP2p4KGEsYixjLGQpOmh4KGEsYixkKX19LGh4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kdyhhKTtUcyhjLCJnY2xpZCIsImdjbGF3IixkKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe2IuQ2ooZil9KTtiLkxvKCk7aWYoIWMpe3ZhciBlPU9zKEJyKEFyKCkpP1JwKCk6e30sTXMpO2UmJlUoYSxGLkQucmgsZSl9fSxqeD1mdW5jdGlvbihhLGIsYyxkKXtUcyhkLCJicmFpZHMiLCJnY2xnYiIsYXgoYSkpLmZvckVhY2goZnVuY3Rpb24oZyl7Yi5qcihnKX0pO2lmKCFkKXt2YXIgZT1SKGEsRi5ELkdkKTtjPUVkKGMsbnVsbCk7Yy5wcmVmaXg9ZDt2YXIgZj1QcyhlLGMsITApLlFyO2YmJlUoYSxGLkQuSmUsZil9fSxleD1mdW5jdGlvbihhKXtpZihNKDE2KSl7dmFyIGI9Ck8oYS5NLEYuRC56YSk7Ynx8KGI9T3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZik7dmFyIGMsZD1SaihiKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIik7aWYoIWUpe3ZhciBmPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7ZT1lfHxJaihmLCJnY2xpZCIsITEpfShjPWU/ZS5sZW5ndGg6dm9pZCAwKSYmVShhLEYuRC56bCxjKX19LGd4PWZ1bmN0aW9uKGEsYil7dmFyIGM9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZighYi5qbygpfHxNKDQyMSkpe3ZhciBkO3ZhciBlO2I6e3ZhciBmLGc9QSxoPVtdO3RyeXtnLm5hdmlnYXRpb24mJmcubmF2aWdhdGlvbi5lbnRyaWVzJiYoaD1nLm5hdmlnYXRpb24uZW50cmllcygpKX1jYXRjaChDKXt9Zj1oO3ZhciBsPXt9O3RyeXtmb3IodmFyIG49Zi5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIHA9ZltuXSYmZltuXS51cmw7aWYocCl7dmFyIHE9KG5ldyBVUkwocCkpLnNlYXJjaFBhcmFtcyxyPXEuZ2V0KCJnY2xpZCIpfHwKdm9pZCAwLHQ9cS5nZXQoImdjbHNyYyIpfHx2b2lkIDA7aWYocil7bC5nY2xpZD1yO3QmJihsLlZoPXQpO2U9bDticmVhayBifX19fWNhdGNoKEMpe31lPWx9dmFyIHU9ZSx2PXUuZ2NsaWQseD11LlZoLHk7aWYodiYmKHg9PT12b2lkIDB8fHg9PT0iYXcifHx4PT09ImF3LmRzInx8WWYoOCkmJng9PT0iYXcuZHYiKSlpZih2IT09dm9pZCAwKXt2YXIgej1uZXcgZXI7ZnIoeiwyKTtmcih6LDMpO3k9e3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6dixxYTp6LG9hOlszXX19ZWxzZSB5PXZvaWQgMDtlbHNlIHk9dm9pZCAwO2Q9eTtkJiYoIWMmJlEoYSxILkouWGUpJiYoZC5nY2xpZD0iMCIpLGIuQ2ooZCksYi5MbygpKX19LGR4PWZ1bmN0aW9uKCl7dGhpcy5IPVtdO3RoaXMuSz1bXTt0aGlzLk49dm9pZCAwfTtrPWR4LnByb3RvdHlwZTtrLkNqPWZ1bmN0aW9uKGEpe1FyKHRoaXMuSCxhKX07ay5qcj1mdW5jdGlvbihhKXtRcih0aGlzLkssYSl9O2suam89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LLmxlbmd0aD4KMH07ay5Mbz1mdW5jdGlvbigpe3RoaXMuTiE9PSExJiYodGhpcy5OPSExKX07ay55bz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihhLmxlbmd0aCl7dmFyIGU9W10sZj1bXSxnPVtdO2EuZm9yRWFjaChmdW5jdGlvbihoKXtlLnB1c2goaC5nY2xpZCk7dmFyIGwsbjtmLnB1c2goKG49KGw9aC5xYSk9PW51bGw/dm9pZCAwOmwuZ2V0KCkpIT1udWxsP246MCk7Zy5wdXNoKFZzKGgub2F8fFswXSkpfSk7ZS5sZW5ndGgmJlUoYixjLmlkLGUuam9pbigiLiIpKTtkfHwoZi5sZW5ndGgmJlUoYixjLnFhLGYuam9pbigiLiIpKSxnLmxlbmd0aCYmVShiLGMub2EsZy5qb2luKCIuIikpKX19O2suT3Q9ZnVuY3Rpb24oYSl7dGhpcy5ILmxlbmd0aD4wJiZ0aGlzLnlvKHRoaXMuSCxhLHtpZDpGLkQubGIscWE6Ri5ELkJkLG9hOkYuRC5DZH0sdGhpcy5OKTsodGhpcy5ILmxlbmd0aD09PTB8fE0oNDIxKSkmJnRoaXMueW8odGhpcy5LLGEse2lkOkYuRC5TYixxYTpGLkQuZmgsCm9hOkYuRC5naH0pfTt2YXIga3g9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkluamVjdEFkc1NjcmlwdCIpfTt3YShreCxodSk7a3gucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2t4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2t4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXthbyhhLkZvLEEsQixiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5qZigpfSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEucmQodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil8fFhuKGEuRm8sYi5yZXBsYWNlKCImZm10PTQmIiwiJmZtdD0zJiIpLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5qZigpfSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEucmQodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBseD1uZXcga3g7dmFyIG14PU9iamVjdC5mcmVlemUoe2F0dHJpYnV0aW9uc3JjOiIifSksbng9T2JqZWN0LmZyZWV6ZSh7ZXZlbnRTb3VyY2VFbGlnaWJsZTohMSx0cmlnZ2VyRWxpZ2libGU6ITB9KTtmdW5jdGlvbiBveCgpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTtyZXR1cm4gYSYmeWIoYS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyl9O3ZhciBweD1PYmplY3QuZnJlZXplKHtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IkdFVCIsa2VlcGFsaXZlOiEwLHJlZGlyZWN0OiJmb2xsb3cifSk7CmZ1bmN0aW9uIHF4KGEsYixjLGQsZSxmKXtpZigheWIoQS5mZXRjaCkpcmV0dXJuIGY9PW51bGx8fGYodm9pZCAwLHZvaWQgMCksITE7dmFyIGc9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxweCk7YiYmKGcuYm9keT1iLGcubWV0aG9kPSJQT1NUIik7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxnLGQpO0EuZmV0Y2goYSxnKS50aGVuKGZ1bmN0aW9uKGgpe2lmKGgub2spe2lmKGguYm9keSl7dmFyIGw9aC5ib2R5LmdldFJlYWRlcigpLG49bmV3IFRleHREZWNvZGVyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwKXtmdW5jdGlvbiBxKCl7bC5yZWFkKCkudGhlbihmdW5jdGlvbihyKXt2YXIgdDt0PXIuZG9uZTt2YXIgdT1uLmRlY29kZShyLnZhbHVlLHtzdHJlYW06IXR9KTt1PWMuUit1O2Zvcih2YXIgdj11LmluZGV4T2YoIlxuXG4iKTt2IT09LTE7KXt2YXIgeD1aZyx5O2E6e3ZhciB6PW0odS5zdWJzdHJpbmcoMCx2KS5zcGxpdCgiXG4iKSksQz0Kei5uZXh0KCkudmFsdWUsRD16Lm5leHQoKS52YWx1ZTtpZihTYihDLCJldmVudDogbWVzc2FnZSIpJiZTYihELCJkYXRhOiAiKSl7dmFyIEk9RC5zdWJzdHJpbmcoNik7dHJ5e3k9SlNPTi5wYXJzZShJKTticmVhayBhfWNhdGNoKEcpe319eT12b2lkIDB9eChjLHkpO3U9dS5zdWJzdHJpbmcodisyKTt2PXUuaW5kZXhPZigiXG5cbiIpfWMuUj11O3Q/KGU9PW51bGx8fGUoaCkscCgpKTpxKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PW51bGx8fGUoaCk7cCgpfSl9cSgpfSl9ZT09bnVsbHx8ZShoKX1lbHNlIGY9PW51bGx8fGYoaCx2b2lkIDApfSkuY2F0Y2goZnVuY3Rpb24oaCl7Zj09bnVsbHx8Zih2b2lkIDAsaCl9KTtyZXR1cm4hMH07dmFyIHJ4PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiRmV0Y2hSaWNoUmVzcG9uc2UiLDEpO3RoaXMuTj1hfTt3YShyeCxodSk7cngucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtyeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtyeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7cXgoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHksdGhpcy5OLGM9PW51bGw/dm9pZCAwOmMuR2IsYS5wZSxmdW5jdGlvbihkLGUpe2Eub25GYWlsdXJlKGUpfSl9Owp2YXIgc3g9ZnVuY3Rpb24oYSxiKXt2YXIgYz12b2lkIDA7YSBpbnN0YW5jZW9mIGt1P2M9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk6YSBpbnN0YW5jZW9mIHJ4JiYoYz17fSxveCgpJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZz1ueCkpOyFiJiZjJiYoYy5jcmVkZW50aWFscz0ib21pdCIsYy5tb2RlPSJjb3JzIik7cmV0dXJuIGN9LHR4PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWIubWV0aG9kO1F3KGEsZnVuY3Rpb24oZil7dmFyIGc9UShhLEguSi5vYiksaD1YbyhmcCksbD1lIGluc3RhbmNlb2YgaXU/MzplIGluc3RhbmNlb2Yga3g/Yz09PTV8fGM9PT04PzM6NDplIGluc3RhbmNlb2Yga3U/IWcmJmg/Mzo4OmUgaW5zdGFuY2VvZiByeD83Oi0xO2UgaW5zdGFuY2VvZiBreCYmbD09PTM/KGYuZm10PTQsZi5yZm10PTMpOmYuZm10PWw7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxmLGM9PT02Nj97Z2NwOiI0In06Z3x8Yz09PTh8fGM9PT02NT8KVHc6e30pO3ZhciBuPWVpW0YuRC5laF07biYmKGZbbl09Yyk7aWYoTSg1NjkpKXt2YXIgcD1iLkN0LHE9cC5qay5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHZbMF0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHZbMF0uZW5kcG9pbnQuZW5kcG9pbnR9KTtxLmxlbmd0aD4wJiYocS5wdXNoKHAubWtbMF0uZW5kcG9pbnQuZW5kcG9pbnQpLGYuZXBwPXEuc29ydChmdW5jdGlvbih2LHgpe3JldHVybiB2LXh9KS5qb2luKCJ+IikpfXZhciByPSI/IitrdihmKSx0PXN4KGUsaCksdTt1PShlIGluc3RhbmNlb2YgaXV8fGUgaW5zdGFuY2VvZiBreCkmJlhvKCJhZF91c2VyX2RhdGEiKT9teDp2b2lkIDA7ZChyLHtHYjp0LGFmOnV9KX0pfTt2YXIgdXg9ZnVuY3Rpb24oYSxiKXthdi5jYWxsKHRoaXMsYSxiLDIpfTt3YSh1eCxhdik7dXgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3R4KGEsYix0aGlzLmVuZHBvaW50LGMpfTt2YXIgdng9bmV3IHV4KDUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHd4PW5ldyB1eCg2LFtdKSx4eD1uZXcgdXgoNjMsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHl4PW5ldyB1eCg2NSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkseng9bmV3IHV4KDgsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEF4PW5ldyB1eCg2NixbXSksQng9bmV3IHV4KDc0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKTt2YXIgQ3g9ZnVuY3Rpb24oKXtZZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3dhKEN4LFlnKTtDeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe1pjKGEsdm9pZCAwLCRnKHRoaXMsYiksYi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/bXg6e30pfTtDeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe3ZhciBjPWIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP3thdHRyaWJ1dGlvblJlcG9ydGluZzpueH06e30sZD0kZyh0aGlzLGIpO2IucHJvY2Vzc19yZXNwb25zZT9xeChhLHZvaWQgMCx0aGlzLGMsdm9pZCAwLGQpOm1kKGEsdm9pZCAwLGMsdm9pZCAwLGQpfTt2YXIgRHg9ZnVuY3Rpb24oKXtDeC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3dhKER4LEN4KTtEeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe0N4LnByb3RvdHlwZS5ILmNhbGwodGhpcyxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYix7cHJvY2Vzc19yZXNwb25zZTohMX0pKX07dmFyIEV4PWZ1bmN0aW9uKCl7fTt3YShFeCxvdSk7RXgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSkhPT1YLlYueGEpcmV0dXJuW107dmFyIGI9WG8oZnApLGM9ISFRKGEsSC5KLm9iKSxkPSEhUShhLEguSi5FYyksZT1be2VuZHBvaW50OmI/ZD9jP3l4Onh4OmM/eng6dng6d3gsbWV0aG9kOm5kKCk/Yj9NKDQ5MCk/Yz9udTpuZXcgcngobmV3IER4KTpseDpudTpsdX1dLGY9Yj9jP3ZvaWQgMDp6eDpBeDtmJiZlLnB1c2goe2VuZHBvaW50OmYsbWV0aG9kOm51fSk7cmV0dXJuIGV9O0V4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi54YSYmV2ooKSYmIVEoYSxILkouRWMpJiZNKDU2OSkmJlhvKGZwKT9bW3tlbmRwb2ludDpCeCxtZXRob2Q6bnV9XV06W119O3ZhciBGeD1uZXcgRXg7dmFyIEd4PWZ1bmN0aW9uKGEsYil7Z3UuY2FsbCh0aGlzLGEsYiwxLCExLDMpfTt3YShHeCxndSk7R3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWx2KGEpLGU9Ij8iK2t2KGQpO2MoZSx7R2I6bGR9KX07dmFyIEh4PW5ldyBHeCg1NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksSXg9bmV3IEd4KDU1LFtdKSxKeD1mdW5jdGlvbigpe307d2EoSngsb3UpO0p4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVyblt7ZW5kcG9pbnQ6SHguSyhhKT9IeDpJeCxtZXRob2Q6bnV9XX07dmFyIEt4PW5ldyBKeDsKdmFyIEx4PWZ1bmN0aW9uKCl7YXYuY2FsbCh0aGlzLDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sMSl9O3dhKEx4LGF2KTtMeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLlpkfTtMeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztRdyhhLGZ1bmN0aW9uKGUpe3ZhciBmPWVpW0YuRC5laF07ZiYmKGVbZl09ZC5lbmRwb2ludCk7ZS5nY3A9MTtlLmN0X2Nvb2tpZV9wcmVzZW50PTE7ZS5mbXQ9Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT84OjM7dmFyIGc9Ij8iK2t2KGUpO2MoZyx7R2I6bGR9KX0pfTt2YXIgTXg9bmV3IEx4LE54PWZ1bmN0aW9uKCl7fTt3YShOeCxvdSk7TngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5be2VuZHBvaW50Ok14LG1ldGhvZDpudX0se2VuZHBvaW50Ok14LG1ldGhvZDpsdX1dfTt2YXIgT3g9bmV3IE54O3ZhciBQeD1bNjhdO3ZhciBReD1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMudGltZW91dE1zPWI7dGhpcy5SYj12b2lkIDB9LFJ4PWZ1bmN0aW9uKGEpe2EuUmJ8fChhLlJiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkgoKTthLlJiPXZvaWQgMH0sYS50aW1lb3V0TXMpKX0sVG49ZnVuY3Rpb24oYSl7YS5SYiYmKGNsZWFyVGltZW91dChhLlJiKSxhLlJiPXZvaWQgMCl9O3ZhciBTeD1mdW5jdGlvbigpe3ZhciBhPU5mKDY2LDApO3RoaXMuSz1bXTt0aGlzLlI9YTt0aGlzLkg9WWEoKX0sVXg9ZnVuY3Rpb24oYSl7dmFyIGI9VHg7Yi5LLnB1c2goYSk7Yi5OfHwoYi5OPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPW0oYi5LKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTt0cnl7ZSgpfWNhdGNoKGwpe319Zm9yKHZhciBmPW0oYi5ILnZhbHVlcygpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9dm9pZCAwOyhoPWcudmFsdWUud2UpPT1udWxsfHxUbihoKX1iLkguY2xlYXIoKX0sJGMoQSwicGFnZWhpZGUiLGIuTikpfSxWeD1mdW5jdGlvbihhKXt2YXIgYj1hLm1hdGNoKE1uKVszXXx8bnVsbCxjPShiP2RlY29kZVVSSShiKTpiKXx8IiIsZD1QbihhLCJsYWJlbCIpfHwiIixlPVBuKGEsInJhbmRvbSIpfHwiIjtyZXR1cm4gYysiOiIrTG4oZCkrIjoiK0xuKGUpfSxXeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VHgsCmU9VngoYSk7aWYoIShkLkguaGFzKGUpfHxkLkguc2l6ZT49ZC5SKSl7dmFyIGY9e307YiYmYj4wJiZjJiYoZi53ZT1uZXcgUXgoYyxiKSk7ZC5ILnNldChlLGYpO3ZhciBnOyhnPWYud2UpPT1udWxsfHxSeChnKX19LFVuPWZ1bmN0aW9uKGEsYil7dmFyIGM9VngoYiksZCxlOyhkPWEuSC5nZXQoYykpPT1udWxsfHwoZT1kLndlKT09bnVsbHx8VG4oZSk7YS5ILmRlbGV0ZShjKX07U3gucHJvdG90eXBlLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILnNpemV9Owp2YXIgWHg9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPShjPVEoYSxILkouZ24pKT09bnVsbD92b2lkIDA6Y1tiLnBiXTtyZXR1cm4gZCE9PXZvaWQgMCYmZD49Yi5PZ30sWXg9ZnVuY3Rpb24oYSxiKXtpZihRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLG52KSYmIShiPD0wKSlyZXR1cm4gbmV3IFF4KGZ1bmN0aW9uKCl7cnYobnYpfSxiKX0sWng9ZnVuY3Rpb24oYSxiLGMpe1EoYixILkouZGEpIT09WC5WLnhhfHxRKGIsSC5KLkVjKXx8KFR4fHwoVHg9bmV3IFN4LFh4KGIsb3YpJiZVeChmdW5jdGlvbigpe3ZhciBkO3J2KG92LChkPVR4KT09bnVsbD92b2lkIDA6ZC5nZXRTaXplKCkpfSkpLFh4KGIsbnYpP1d4KGEsYyxmdW5jdGlvbigpe3J2KG52KTt2YXIgZDsoZD1UeCk9PW51bGx8fFVuKGQsYSl9KTpXeChhKSl9LFR4Owp2YXIgJHg9ZnVuY3Rpb24oYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/MDplO2lmKGQpe3ZhciBmPVEoYSxILkouRWIpO2I9Yi5MYSh7cmFuZG9tOmYrZSxkYXRhOmR9KX1yZXR1cm5be2VuZHBvaW50OmIsbWV0aG9kOmN9LHtlbmRwb2ludDpiLG1ldGhvZDpsdX1dfSxheT1mdW5jdGlvbihhLGIsYyxkKXthdi5jYWxsKHRoaXMsYSxiLDEsYyk7dGhpcy5OPWR9O3dhKGF5LGF2KTtheS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZW5kcG9pbnQ9PT02OCYmUShhLEguSi5vYik/ITE6ITB9O2F5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKTt0aGlzLk4mJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCx0aGlzLk4pO3ZhciBlPWVpW0YuRC5laF07ZSYmKGRbZV09dGhpcy5lbmRwb2ludCk7dGhpcy5lbmRwb2ludCE9PTY4JiYoZGVsZXRlIGQuZ2NsYXcsZGVsZXRlIGQuZ2NsYXdfc3JjKTt2YXIgZj12b2lkIDA7UShhLApILkoub2IpPyhkLmdjcD0xLGQuY3RfY29va2llX3ByZXNlbnQ9MSk6dGhpcy5lbmRwb2ludD09PTY4JiYoZC5nY3A9NSxiLm1ldGhvZCBpbnN0YW5jZW9mIGt1JiYoZC5mbXQ9OCxmPWxkKSk7dmFyIGc9Ij8iK2t2KGQpO2MoZyxmP3tHYjpmfTp7fSl9O2F5LnByb3RvdHlwZS5MYT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGF5KHRoaXMuZW5kcG9pbnQsdGhpcy5aLHRoaXMuamEsYSl9O3ZhciBieT1uZXcgYXkoOSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMCksY3k9bmV3IGF5KDY4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLCExKSxkeT1mdW5jdGlvbigpe307d2EoZHksb3UpO2R5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPWd2KGEpO3JldHVybiAkeChhLGJ5LFEoYSxILkoub2IpP251Omx4LGI9PW51bGw/dm9pZCAwOmJbMF0pfTtkeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1ndihhKSxjPVtdO00oNDU4KSYmIVEoYSxILkoub2IpJiYKYy5wdXNoKCR4KGEsY3ksbnUsYj09bnVsbD92b2lkIDA6YlswXSkpO2lmKGImJmIubGVuZ3RoPjEpZm9yKHZhciBkPVEoYSxILkoub2IpP251Omx4LGU9MTtlPGIubGVuZ3RoOysrZSljLnB1c2goJHgoYSxieSxkLGJbZV0sZSkpO3JldHVybiBjfTt2YXIgZXk9bmV3IGR5Owp2YXIgZ3k9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYih2KXtyZXR1cm4gdi5zcGxpdCgifiIpLmZpbHRlcihmdW5jdGlvbih4KXt2YXIgeT14LnNwbGl0KCIuIilbMF07cmV0dXJuIUx3LnNvbWUoZnVuY3Rpb24oeil7cmV0dXJuIFNiKHkseil9KX0pLmpvaW4oIn4iKX1pZihOdyhhKSYmUShhLEguSi5mZCkpe3ZhciBjPVEoYSxILkouWWEpLGQ9QnAoKSxlPWd3KGMsZCksZj1lLnNvbWUoZnVuY3Rpb24odil7cmV0dXJuIFNiKHYubmFtZSwicmF3Iil9KSxnPWZ3KGUpLGg9Zy5PbyxsPWcuaWksbj1nLmhhc1VwZCxwPWcuWW4scT1nLmVuY3J5cHRpb25LZXlTdHJpbmcscj1nLm1ldGFkYXRhUGFyYW0sdD1bXTtSdygxLGEpfHx0LnB1c2goIiZlbT0iK2IoaCkpO3QucHVzaCgiJmVtZT0iK3ApO3ZhciB1O3JldHVybiB1PXtpaTpsLEl0OnQsc3Y6ZSxYbjpyLGVuY3J5cHRpb25LZXlTdHJpbmc6cSxWcjpmdW5jdGlvbih2KXt2YXIgeD1meShhLHUpLHk9c3coUShhLEguSi5ZYSksITAsITApO0l1KHksCmZ1bmN0aW9uKHope2lmKCFSdygxLGEpKXt2YXIgQz0oej09bnVsbD92b2lkIDA6ei5wYXJhbSl8fG93KHt5YjpbXX0pLnBhcmFtO3guZW09Q312KHgpfSl9LGhhc1VwZDpuLHBmOnZvaWQgMCxyYXdQaWlBZGRlZDpmfX19LGZ5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1iLnBmKSE9bnVsbD9jOjMsZT17Z3RtOmR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKSxwZjpkfSl9O2IuWG4mJihlLmVtZD1iLlhuKTtpZihiLmhhc1VwZCl7dmFyIGY9ClN3KGEpO2YmJihlLmVjc2lkPWYpfWIucmF3UGlpQWRkZWQmJihlWyJnYXAucnAiXT0iMSIpO3JldHVybiBlfTt2YXIgZGc7ZnVuY3Rpb24gaHkoYSxiKXt2YXIgYzsoYz1kZyk9PW51bGx8fCRmKGMuSCxhLGIpfTt2YXIgaXk9QWEoWyIvIl0pLGp5PWZ1bmN0aW9uKGEpe3RoaXMuSD1hO3RoaXMuZmFpbHVyZVR5cGU9dm9pZCAwfTtqeS5wcm90b3R5cGUuaW89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD10aGlzLkguYWN0aXZlO2Q/KGQucG9zdE1lc3NhZ2Uoe3R5cGU6MSxjb21tYW5kOmF9KSxiKHtkYXRhOiIifSkpOmMoe2ZhaWx1cmVUeXBlOjEzLGRhdGE6IiJ9KX1jYXRjaChlKXtjKHtmYWlsdXJlVHlwZToxMSxkYXRhOmUubWVzc2FnZX0pfX07dmFyIGt5PWZ1bmN0aW9uKGEsYil7dGhpcy5mYWlsdXJlVHlwZT1hO3RoaXMuSD1ifTtreS5wcm90b3R5cGUuaW89ZnVuY3Rpb24oYSxiLGMpe2Moe2ZhaWx1cmVUeXBlOnRoaXMuZmFpbHVyZVR5cGUsZGF0YToiZiIrdGhpcy5mYWlsdXJlVHlwZSsoInQiKygobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLkgpKX0pfTsKdmFyIG55PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5pbml0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLkg9bmV3IGt5KDE1LHRoaXMuaW5pdFRpbWUpO3ZhciBjPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe0Euc2V0VGltZW91dChmdW5jdGlvbigpe2UoKX0sMjApfSksZD1seShhKS50aGVuKGZ1bmN0aW9uKGUpe2IuSD1uZXcgankoZSk7bXkoYixlKX0pLmNhdGNoKGZ1bmN0aW9uKCl7Yi5IPW5ldyBreSg0LGIuaW5pdFRpbWUpfSk7dGhpcy5LPVByb21pc2UucmFjZShbYyxkXSl9LG15PWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oZCl7ZCYmZC5hZGRFdmVudExpc3RlbmVyKCJzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXtpZihkLnN0YXRlPT09InJlZHVuZGFudCIpe3ZhciBlPWIuYWN0aXZlO2UmJmUuc3RhdGUhPT0icmVkdW5kYW50Inx8KGEuSD1uZXcga3koMTAsYS5pbml0VGltZSkpfX0pfTtjKGIuYWN0aXZlKTtjKGIud2FpdGluZyk7YyhiLmluc3RhbGxpbmcpOwpiLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZvdW5kIixmdW5jdGlvbigpe2MoYi5pbnN0YWxsaW5nKX0pfTtueS5wcm90b3R5cGUuZGVsZWdhdGU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LLnRoZW4oZnVuY3Rpb24oKXtkLkguaW8oYSxiLGMpfSl9O255LnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiAyfTsKdmFyIGx5PWZ1bmN0aW9uKGEpe3ZhciBiLGM9TGYoMTEpO2M9TGYoMTApO2I9Yzt2YXIgZD17c2NvcGU6KFRiKGEuaHJlZiwiLyIpP2EuaHJlZi5zbGljZSgwLC0xKTphLmhyZWYpKyIvXy9zZXJ2aWNlX3dvcmtlciJ9O2ImJihkLnVwZGF0ZVZpYUNhY2hlPSJhbGwiKTt2YXIgZSxmPW95KGEsYiksZz1uZXcgTWFwKFtbInBhdGgiLGEucGF0aG5hbWVdXSksaD1KcChrYyhmKS50b1N0cmluZygpKTtlPUxwKGguemssaC5wYXJhbXMsaC5mcmFnbWVudCxnKTt2YXIgbD1JYygpLG49a2MoZSk7dHJ5e3JldHVybiBsLnJlZ2lzdGVyKG4sZCl9Y2F0Y2gocCl7dHJ5e3JldHVybiBsLnJlZ2lzdGVyKG4udG9TdHJpbmcoKSxkKX1jYXRjaChxKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QocSl9fX07CmZ1bmN0aW9uIG95KGEsYil7Zm9yKHZhciBjPUtwKGl5KSxkPWEucGF0aG5hbWUuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIGgubGVuZ3RoPjB9KSxlPVtdLmNvbmNhdCh3KGQpLFsiXyIsInNlcnZpY2Vfd29ya2VyIixiLCJzdy5qcyJdKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpYz1NcChjLGcudmFsdWUpO3JldHVybiBjfTtmdW5jdGlvbiBweShhKXt2YXIgYj1ubShqbS5iYS5PaCksYz1iPT1udWxsP3ZvaWQgMDpiW2FdO2N8fGEhPT0ibGl0ZSJ8fChjPWI9PW51bGw/dm9pZCAwOmIuZnVsbCk7cmV0dXJuIGN9dmFyIHF5PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1weSgiZnVsbCIpO2Q/ZC5kZWxlZ2F0ZShhLGIsYyk6Yyh7ZmFpbHVyZVR5cGU6MTZ9KX07ZnVuY3Rpb24gcnkoYSxiLGMsZCxlKXtxeSh7Y29tbWFuZFR5cGU6MCxwYXJhbXM6e3VybDphLG1ldGhvZDoxLHRlbXBsYXRlczpiLGJvZHk6IiIscHJvY2Vzc1Jlc3BvbnNlOiExLGVuY3J5cHRpb25LZXlTdHJpbmc6ZSxzb1JlZmVycmVyOkEubG9jYXRpb24uaHJlZn19LGMsZnVuY3Rpb24oZil7ZChmLmZhaWx1cmVUeXBlLGYuZGF0YSl9KX07dmFyIHN5PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiU2VydmljZVdvcmtlckZyYW1lbGVzcyIpO3RoaXMuTj1hfTt3YShzeSxodSk7c3kucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3N5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9O3N5LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztyeShiLHRoaXMuTi5paSxmdW5jdGlvbigpe2EuamYoKX0sZnVuY3Rpb24oZCl7Yy5OLnBmPWQ7YS5yZCh2b2lkIDApfSx0aGlzLk4uZW5jcnlwdGlvbktleVN0cmluZyl9Owp2YXIgdHk9ZnVuY3Rpb24oYSl7YXYuY2FsbCh0aGlzLGEsWyJhZF91c2VyX2RhdGEiLCJhZF9zdG9yYWdlIl0sMSwhMSl9O3dhKHR5LGF2KTt0eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztRdyhhLGZ1bmN0aW9uKGUpe3ZhciBmPVEoYSxILkoucGopLGc9ZnVuY3Rpb24oKXt2YXIgbj1rdihlKTtmJiZiLm1ldGhvZCBpbnN0YW5jZW9mIHN5JiYobis9Zi5JdC5qb2luKCIiKSk7YyhuLHtHYjpsZH0pfTtpZihkLmVuZHBvaW50PT09MjF8fGQuZW5kcG9pbnQ9PT03Myl7dmFyIGg9Z2soYi5JYyk7aCYmKGUuX3VpcD1oKX1pZihmJiYobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLGZ5KGEsZikpLCEoYi5tZXRob2QgaW5zdGFuY2VvZiBzeSkpKXt2YXIgbDtmLnBmPShsPWYucGYpIT1udWxsP2w6MTc7Zi5WcihmdW5jdGlvbihuKXtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsbik7ZygpfSk7cmV0dXJufWcoKX0pfTt0eS5wcm90b3R5cGUuUj0KZnVuY3Rpb24oYSl7cmV0dXJuIGF2LnByb3RvdHlwZS5SLmNhbGwodGhpcyxhKS5zbGljZSgwLC0xKX07dmFyIHV5PW5ldyB0eSgxMSksdnk9bmV3IHR5KDcyKSx3eT1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO3RoaXMuUj1ifTt3YSh3eSxvdSk7d3kucHJvdG90eXBlLmZhPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTYzKT9bdGhpcy5aLHRoaXMuUl06TSgxNDEpP1t0aGlzLlpdOlt0aGlzLlJdfTt3eS5wcm90b3R5cGUuamE9ZnVuY3Rpb24oKXtyZXR1cm4gbnUuaXNTdXBwb3J0ZWQoKT9bbnVdOlttdSxsdV19O3d5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLmZhKCksZD1jLmZsYXRNYXAoZnVuY3Rpb24oZil7cmV0dXJuIGIuamEoKS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue2VuZHBvaW50OmYsbWV0aG9kOmd9fSl9KTtpZih0aGlzLk4oKSl7dmFyIGU9UShhLEguSi5waik7ZSYmZS5oYXNVcGQmJmQudW5zaGlmdCh7ZW5kcG9pbnQ6Y1swXSxtZXRob2Q6bmV3IHN5KGUpfSl9cmV0dXJuIGR9Owp2YXIgeHk9ZnVuY3Rpb24oKXt3eS5jYWxsKHRoaXMsdXksdnkpfTt3YSh4eSx3eSk7eHkucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtyZXR1cm4hMH07dmFyIHl5PW5ldyB4eSx6eT1uZXcgdHkoMjEpLEF5PW5ldyB0eSg3MyksQnk9ZnVuY3Rpb24oKXt3eS5jYWxsKHRoaXMsenksQXkpfTt3YShCeSx3eSk7QnkucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtyZXR1cm4gTSg1ODcpfTt2YXIgQ3k9bmV3IEJ5O3ZhciBEeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPTA7dGhpcy5LPSExO00oNDYyKSYmVW0oImZzIixmdW5jdGlvbigpe3JldHVybiBhLkg+MCYmYS5IPDU/U3RyaW5nKGEuSCk6dm9pZCAwfSwhMSl9LEV5O2Z1bmN0aW9uIEZ5KGEsYil7RXl8fChFeT1uZXcgRHkpO3ZhciBjPUV5O00oNDYyKSYmZm4uSyYmKGI9PT0iZ3RtLmZvcm1TdWJtaXQifHxiPT09ImZvcm1fc3VibWl0IiYmSWYoNDUpKSYmKGE9PT0xfHxjLkspJiYoYy5LPSEwLGMuSD1hLGEhPT01P1ZtKCJmcyIpOlFtLkguZnM9ITEpfTt2YXIgR3k9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuS2Epe3ZhciBiPWZ1KGEpO2lmKCFNKDQyNykmJihqcChhLGIpfHxRKGEsSC5KLmhkKSkmJlhvKGZwKSl7dmFyIGM9bHAoYSxiKTtpZihjKXt2YXIgZD1ObSg2OSxjKTtUbChkLGEsNjkpO1luKHtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6NjksZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKX19dmFyIGU9eWIoYS5NLm9uU3VjY2Vzcyk/YS5NLm9uU3VjY2Vzczp4YjskdShhLGIpO2UoKX19O3ZhciBIeT17WDp7V3E6MCxFazoxLFpnOjIsWGs6MyxtaTo0LFZrOjUsV2s6NixZazo3LG5pOjgsdG06OSxzbToxMCxUaToxMSx2bToxMixCaDoxMyxFbToxNCxpajoxNSxTcToxNixqZDoxNyx1ajoxOCx2ajoxOSx3ajoyMCxDbjoyMSx4ajoyMn19O0h5LlhbSHkuWC5XcV09IlJFU0VSVkVEX1pFUk8iO0h5LlhbSHkuWC5Fa109IkFEU19DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLlpnXT0iQ09OVEFJTkVSX0VYRUNVVEVfU1RBUlQiO0h5LlhbSHkuWC5Ya109IkNPTlRBSU5FUl9TRVRVUF9FTkQiO0h5LlhbSHkuWC5taV09IkNPTlRBSU5FUl9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLlZrXT0iQ09OVEFJTkVSX0JMT0NLSU5HX0VORCI7SHkuWFtIeS5YLldrXT0iQ09OVEFJTkVSX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlguWWtdPSJDT05UQUlORVJfWUlFTERfRU5EIjtIeS5YW0h5LlgubmldPSJDT05UQUlORVJfWUlFTERfU1RBUlQiO0h5LlhbSHkuWC50bV09IkVWRU5UX0VYRUNVVEVfRU5EIjsKSHkuWFtIeS5YLnNtXT0iRVZFTlRfRVZBTFVBVElPTl9FTkQiO0h5LlhbSHkuWC5UaV09IkVWRU5UX0VWQUxVQVRJT05fU1RBUlQiO0h5LlhbSHkuWC52bV09IkVWRU5UX1NFVFVQX0VORCI7SHkuWFtIeS5YLkJoXT0iRVZFTlRfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5FbV09IkdBNF9DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLmlqXT0iUEFHRV9MT0FEIjtIeS5YW0h5LlguU3FdPSJQQUdFVklFVyI7SHkuWFtIeS5YLmpkXT0iU05JUFBFVF9MT0FEIjtIeS5YW0h5LlgudWpdPSJUQUdfQ0FMTEJBQ0tfRVJST1IiO0h5LlhbSHkuWC52al09IlRBR19DQUxMQkFDS19GQUlMVVJFIjtIeS5YW0h5Llgud2pdPSJUQUdfQ0FMTEJBQ0tfU1VDQ0VTUyI7SHkuWFtIeS5YLkNuXT0iVEFHX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlgueGpdPSJUQUdfRVhFQ1VURV9TVEFSVCI7dmFyIEl5PXt9O0l5Llg9SHkuWDt2YXIgSnk9e1J1OiJMIixYcToiUyIsa3Y6IlkiLFJ0OiJCIixudToiRSIsTnU6IkkiLGZ2OiJUQyIsdnU6IkhUQyIsb3U6IkYiLE11OiJDIn0sS3k9e1hxOiJTIixsdToiViIsYXU6IkUiLGR2OiJ0YWcifSxMeT17fSxNeT0oTHlbSXkuWC52al09IjYiLEx5W0l5Llgud2pdPSI1IixMeVtJeS5YLnVqXT0iNyIsTHkpO2Z1bmN0aW9uIE55KGEpe3ZhciBiPUUoNSksYz1OdW1iZXIoYS5ldmVudElkKSxkPU51bWJlcihhLnRhZ0lkKTtyZXR1cm4oU2IoYiwiR1RNLSIpP2I6IkdUTS0iK2IpKyI6IisoQWIoYyk/YysiOiI6IiIpKyhBYihkKT9kKyI6IjoiIikrYS5zdGFnZX07ZnVuY3Rpb24gT3koKXt2YXIgYT1yZCgpO3JldHVybiEhKGEmJmEubWFyayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLm1lYXN1cmUgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1lYXN1cmVzIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNYXJrcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKX07dmFyIFB5PWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSxReTtmdW5jdGlvbiBSeSgpe1F5fHwoUXk9bmV3IFB5KTtyZXR1cm4gUXl9ZnVuY3Rpb24gU3koYSl7dmFyIGI9UnkoKSxjPU55KGEpO3JldHVybiBiLkhbY119ZnVuY3Rpb24gVHkoYSxiKXt2YXIgYzthOnt2YXIgZD1SeSgpO2lmKE95KCkpe3ZhciBlPU55KGEpLGYsZztpZihmPShnPXJkKCkpPT1udWxsP3ZvaWQgMDpnLm1hcmsoZSxiKSl7Yz1kLkhbZV09ZjticmVhayBhfX1jPXZvaWQgMH1yZXR1cm4gY307ZnVuY3Rpb24gVXkoYSxiKXtpZihPeSgpKXthLmVudHJ5PU55KGEpO3ZhciBjPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSk7Yy5zdGFnZT1iO2RlbGV0ZSBjLnNlbnQ7dmFyIGQ9U3koYj09PUl5LlguamQ/e3N0YWdlOkl5LlguamR9OmMpLGU9U3koYSk7aWYoZCYmZSYmIShkLnN0YXJ0VGltZT5lLnN0YXJ0VGltZSkpe2Muc3RhZ2U9YisiOiIrYS5zdGFnZTt2YXIgZj1OeShjKSxnPXtzdGFydDpkLm5hbWUsZW5kOmUubmFtZX0saCxsO3JldHVybihsPShoPXJkKCkpPT1udWxsP3ZvaWQgMDpoLm1lYXN1cmUoZixnKSk9PW51bGw/dm9pZCAwOmwuZHVyYXRpb259fX07dmFyIFd5PWZ1bmN0aW9uKCl7dmFyIGE9NTtWeS5Sbz4wJiYoYT1WeS5Sbyk7dGhpcy5LPWE7dGhpcy5IPTA7dGhpcy5OPVtdfSxYeT1mdW5jdGlvbihhKXtyZXR1cm4gYS5IPGEuSz8hMTpOYigpLWEuTlthLkglYS5LXTwxRTN9LFl5PWZ1bmN0aW9uKGEpe3ZhciBiPWEuSCsrJWEuSzthLk5bYl09TmIoKX07dmFyIFZ5PXtSbzpOZigzLDApfSwkeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy55YT1bXTt0aGlzLkg9dm9pZCAwO3RoaXMuWj17fTt0aGlzLks9dm9pZCAwO3RoaXMuamE9bmV3IFd5O3RoaXMuTGE9MUUzO3RoaXMuUj10aGlzLk49ITE7dGhpcy5mYT1EYigpO1p5KHRoaXMsZnVuY3Rpb24oKXt2YXIgYj1bWyJ2IiwiMyJdLFsidCIsInQiXSxbInBpZCIsU3RyaW5nKGEuZmEpXV0sYz1kdSgpO2MmJmIucHVzaChbImd0bSIsY10pO3JldHVybiBifSk7Y2QoZnVuY3Rpb24oKXthLmZhPURiKCl9LDg2NEU1KX0sWnk9ZnVuY3Rpb24oYSxiKXthLnlhLnB1c2goYil9LGF6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkg7aWYoZD09PXZvaWQgMClpZihjKWQ9cmooKTtlbHNlIHJldHVybiIiO2Zvcih2YXIgZT1bZmsoImh0dHBzOi8vIitFKDIxKSksIi9hIiwiP2lkPSIrRSg1KV0sZj1tKGEueWEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9Cmgoe2V2ZW50SWQ6ZCx0ZjohIWJ9KSxuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPW0ocC52YWx1ZSkscj1xLm5leHQoKS52YWx1ZSx0PXEubmV4dCgpLnZhbHVlO2UucHVzaCgiJiIrcisiPSIrdCl9ZS5wdXNoKCImej0wIik7cmV0dXJuIGUuam9pbigiIil9LGJ6PWZ1bmN0aW9uKGEpe2lmKCRrKDI2KSYmKGEuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCksYS5IIT09dm9pZCAwJiZhLlIpKXt2YXIgYj1sbyhjby5pYS5aYik7aWYoZ28oYikpYS5OfHwoYS5OPSEwLGlvKGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0pKTtlbHNlIGlmKGEuWlthLkhdfHxYeShhLmphKXx8YS5MYS0tPD0wKVAoMSksYS5aW2EuSF09ITA7ZWxzZXtZeShhLmphKTt2YXIgYz1heihhLCEwKTtYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6YS5IfSxjKTthLlI9ITE7YS5OPSExfX19LGN6PWZ1bmN0aW9uKGEpe2EuS3x8KGEuSz0KQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9LDUwMCkpfSxlej1mdW5jdGlvbihhKXt2YXIgYj1kejtiLlpbYV18fChhIT09Yi5IJiYoYnooYiksYi5IPWEpLGIuUj0hMCxjeihiKSxheihiKS5sZW5ndGg+PTIwMjImJmJ6KGIpKX0sZHo7ZnVuY3Rpb24gZnooYSl7Z3ooKTtaeShkeixhKX1mdW5jdGlvbiBoeigpe3ZhciBhO2E9YT09PXZvaWQgMD8hMTphO2d6KCk7dmFyIGI9YSxjPWR6O2I9Yj09PXZvaWQgMD8hMTpiO2lmKGZuLk4mJiRrKDI2KSl7dmFyIGQ9YXooYywhMCwhMCk7Yj9Wbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKTpYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKX19ZnVuY3Rpb24gZ3ooKXtkenx8KGR6PW5ldyAkeSl9O2Z1bmN0aW9uIGl6KCl7ZnVuY3Rpb24gYShjLGQpe3ZhciBlPXdiKHJiW2RdfHxbXSk7ZSYmYi5wdXNoKFtjLGVdKX12YXIgYj1bXTthKCJ1IiwiR1RNIik7YSgidXQiLCJUQUdHSU5HIik7YSgiaCIsIkhFQUxUSCIpO3JldHVybiBifTt2YXIgano9Imh0dHBzOi8vIitFKDIxKSxrej1mdW5jdGlvbigpe3RoaXMuTj0hMTt0aGlzLlI9W107dGhpcy5aPVtdO3RoaXMuSD17VEM6MCxIVEM6MH07dGhpcy5LPXt9fSxsej1mdW5jdGlvbihhLGIsYyxkKXthLktbYl18fChhLktbYl09e30pO2EuS1tiXVtjXT1kfSxvej1mdW5jdGlvbihhKXt2YXIgYj0iIixjPSIiLGQ9bXooKTtBYihkKSYmKGEuSC5JPU1hdGguZmxvb3IoZCkpO2M9bnooYS5ILEp5KS50b1N0cmluZygpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGEuSykpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9YS5LW2ddLm5hbWUsbD0iIixuPW56KGEuS1tnXSxLeSk7biYmKGw9aCsiLiIrbi50b1N0cmluZygpLGIrPSJ+IitsKX12YXIgcD0ifkFXQ1QiK2EuUi5qb2luKCIuIikscT0ifkdBIithLlouam9pbigiLiIpLHI9IiZjY2lkPSIrdmsoKS50b1N0cmluZygpKyImY2lkPSIrRSg1KS50b1N0cmluZygpKyImbD0iK2MrYisoYS5SLmxlbmd0aD8KcDoiIikrKGEuWi5sZW5ndGg/cToiIik7aWYoTSgyMTQpKXt2YXIgdCx1PSh0PXJkKCkpPT1udWxsP3ZvaWQgMDp0LmdldEVudHJpZXNCeU5hbWUoS2MpLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gU3RyaW5nKHYuZHVyYXRpb24pfSkuam9pbigiLiIpO3UmJihyKz0iflNTIit1KX1yZXR1cm4gcn0scHo9ZnVuY3Rpb24oYSxiKXtpZighYi5zdGFnZXx8YS5OfHwhT3koKXx8U3koYikpcmV0dXJuITE7dmFyIGMsZD0oYz1yZCgpKT09bnVsbD92b2lkIDA6Yy50aW1lT3JpZ2luO2lmKCFBYihkKSlhLk49ITA7ZWxzZSBpZihBYigkaygyNSkpJiYhU3koe3N0YWdlOkl5LlguamR9KSYmIWEuTiYmT3koKSl0cnl7dmFyIGU9TnVtYmVyKCRrKDI1KSk7VHkoe3N0YWdlOkl5LlguamR9LHtzdGFydFRpbWU6TWF0aC5tYXgoZS1kLDApfSk7VHkoe3N0YWdlOkl5LlguaWp9LHtzdGFydFRpbWU6MH0pO3ZhciBmPVV5KHtzdGFnZTpJeS5YLmpkfSxJeS5YLmlqKTtmJiYoYS5ILkw9TWF0aC5mbG9vcihmKSl9Y2F0Y2goZyl7YS5OPQohMH1pZihhLk4pcmV0dXJuITE7dHJ5e2lmKCFUeShiKSlyZXR1cm4hMX1jYXRjaChnKXtyZXR1cm4gYS5OPSEwLCExfXJldHVybiEwfSxxej1mdW5jdGlvbihhLGIsYyl7aWYocHooYSxiKSl0cnl7dmFyIGQ9VXkoYixjKTtpZihkKXJldHVybiBNYXRoLmZsb29yKGQpfWNhdGNoKGUpe2EuTj0hMH19LHN6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm1pfSl9LHR6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKSxiPXF6KGEse3N0YWdlOkl5LlguWGt9LEl5LlgubWkpO2IhPT12b2lkIDAmJihhLkguUz1iKX0sdXo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5Llgubml9KX0sdno9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlguQmgsZXZlbnRJZDphfSk7Yy5LW2FdJiZjLktbYV0ubmFtZXx8bHooYyxhLCJuYW1lIixTYihiLCJndG0uIik/YjoiKiIpfSx3ej1mdW5jdGlvbihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC52bSwKZXZlbnRJZDphfSxJeS5YLkJoKTtjIT09dm9pZCAwJiZseihiLGEsIlMiLGMpfSx5ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCksZD1xeihjLHtzdGFnZTpJeS5YLnRtLGV2ZW50SWQ6YX0sSXkuWC5CaCk7ZCE9PXZvaWQgMCYmbHooYyxhLCJFIixkKTtpZihiPT09Imd0bS5sb2FkIil7dmFyIGU9cXooYyx7c3RhZ2U6SXkuWC5Xa30sSXkuWC5aZyk7ZSE9PXZvaWQgMCYmKGMuSC5FPWUpO2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe2lmKCFjLk4mJk95KCkmJkUoNSkpe3ZhciBmPXh6KCk7ZiE9PXZvaWQgMCYmKGMuSC5GPU1hdGguZmxvb3IoZikpO3RyeXtmb3IodmFyIGc9aXooe2V2ZW50SWQ6MCx0ZjohMX0pLGg9W10sbD1tKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1tKG4udmFsdWUpLHE9cC5uZXh0KCkudmFsdWUscj1wLm5leHQoKS52YWx1ZTtoLnB1c2goIiYiK3ErIj0iK3IpfXZhciB0PUNwKCksdT1bW2ZrKGp6KSwiL2E/dj0zJnQ9bCIsIiZwaWQ9IisKRGIoKS50b1N0cmluZygpLCImcnY9IitFKDE0KSx0PyImdGFnX2V4cD0iK3Q6IiIsaC5qb2luKCIiKV0uam9pbigiIiksIiZndG09IixkdSgpLG96KGMpXS5qb2luKCIiKTtpZih1Lmxlbmd0aD4yMDIyKXt2YXIgdj1NYXRoLm1heCh1Lmxhc3RJbmRleE9mKCIuVFMiLDIwMjIpLHUubGFzdEluZGV4T2YoIn4iLDIwMjIpKTt1PXUuc2xpY2UoMCx2KX1Ybih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2fSx1KX1jYXRjaCh4KXt9fX0pfX0seno7ZnVuY3Rpb24gcnooKXt6enx8KHp6PW5ldyBreik7cmV0dXJuIHp6fWZ1bmN0aW9uIG16KCl7dHJ5e3ZhciBhO3JldHVybigoYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIilbMF0pLmRvbUludGVyYWN0aXZlfWNhdGNoKGIpe319CmZ1bmN0aW9uIG56KGEsYil7cmV0dXJuIE9iamVjdC5rZXlzKGIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYltjXX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYVtjXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4oIiIrKGM9PT0idGFnIj8iIjpjKSkuY29uY2F0KGFbY10udG9TdHJpbmcoKSl9KS5qb2luKCIuIil9ZnVuY3Rpb24gQXooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRW0sZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLloucHVzaChjKX1mdW5jdGlvbiBCeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FayxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuUi5wdXNoKGMpfWZ1bmN0aW9uIEN6KGEpe3ZhciBiPXJ6KCk7cHooYix7c3RhZ2U6SXkuWC5UaSxldmVudElkOmF9KX0KZnVuY3Rpb24gRHooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llguc20sZXZlbnRJZDphfSxJeS5YLlRpKTtjIT09dm9pZCAwJiZseihiLGEsIlYiLGMpfWZ1bmN0aW9uIHh6KCl7dHJ5e3ZhciBhLGI7cmV0dXJuKGI9KGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKS5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiBjLm5hbWU9PT0iZmlyc3QtY29udGVudGZ1bC1wYWludCJ9KSk9PW51bGw/dm9pZCAwOmIuc3RhcnRUaW1lfWNhdGNoKGMpe319ZnVuY3Rpb24gRXooYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlgueGosZXZlbnRJZDphLmlkLHRhZ0lkOk51bWJlcihiW0dmLnlqXSl9KX0KZnVuY3Rpb24gRnooYSxiLGMpe3ZhciBkPXJ6KCksZT1kbihiKSxmPU51bWJlcihiW0dmLnlqXSksZz1xeihkLHtzdGFnZTpjLGV2ZW50SWQ6YS5pZCx0YWdJZDpmfSxJeS5YLnhqKTtpZihnIT09dm9pZCAwJiZkLktbYS5pZF0pe3ZhciBoPWQuS1thLmlkXS50YWd8fCIiLGwsbj0obD1NeVtjXSkhPW51bGw/bDoiMSIscD1uZXcgUmVnRXhwKCJUU1xcZCIrZSsiLlRJIitmKSxxPSJUUyIrbitlKyIuVEkiK2YrIi5URSIrZztoLnNlYXJjaChwKT49MD9uIT09IjEiJiZseihkLGEuaWQsInRhZyIsaC5yZXBsYWNlKHAscS5yZXBsYWNlKCIuVEUiK2csIiIpKSk6KGx6KGQsYS5pZCwidGFnIiwoaD9oKyIuIjoiIikrcSksZT09PSJodG1sIiYmKGQuSC5IVEMrPTEpLGQuSC5UQys9MSl9fTsKdmFyIEd6PWZ1bmN0aW9uKGEpe1EoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykmJlh4KGEscHYpJiZydihwdil9LEl6PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO2lmKGI9PT1YLlYuS2EpR3koYSk7ZWxzZXt2YXIgYz1IeltiXTtpZihjKWZuLkgmJmI9PT1YLlYueGEmJkJ6KGEuTS5ldmVudElkKSxRdyhhLGZ1bmN0aW9uKGQpe3ZhciBlPWd5KGEpO1YoYSxILkoucGosZSk7ZSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLGZ5KGEsZSkpO0Z5KDMsYS5ldmVudE5hbWUpO3ZhciBmPXt9LGc9e307UXUoYSx7UXM6ZnVuY3Rpb24oaCxsLG4pe2lmKG4uZmluZChmdW5jdGlvbihwKXtyZXR1cm4gcC5pc1ByaW1hcnkmJihwLnN0YXR1cz09PTB8fHAuc3RhdHVzPT09MSl9KSloLk0ub25TdWNjZXNzKCk7ZWxzZSBHeihoKSxoLk0ub25GYWlsdXJlKCl9LFNzOmZ1bmN0aW9uKGgsbCl7dmFyIG47dmFyIHA9bC5zYixxPWwuZW5kcG9pbnQuZW5kcG9pbnQsCnI7c3dpdGNoKGwucGsgaW5zdGFuY2VvZiBreD8yOmwucGsgaW5zdGFuY2VvZiByeD80OmwucGsgaW5zdGFuY2VvZiBrdT8zOjEpe2Nhc2UgMjpyPTIxO2JyZWFrO2Nhc2UgMzpRKGgsSC5KLmRhKT09PVguVi54YSYmUShoLEguSi5vYikmJnEhPT05JiYocj0yMCk7YnJlYWs7Y2FzZSA0OnI9MjB9aWYocil7dmFyIHQ7dmFyIHU9TmYociwtMSk7WHgoaCxvdik/KFp4KHAsaCx1KSx0PXtNdDpUeH0pOnQ9e3dlOll4KGgsdSl9O3ZhciB2PXQseD12LndlLHk9di5NdDt4PT1udWxsfHxSeCh4KTtuPXt3ZTp4LGt0Onl9fWVsc2Ugbj17fTt2YXIgej1uLEM9ei53ZSxEPXoua3Q7QyYmKGZbbC5zYl09Qyk7RCYmKGdbbC5zYl09RCl9LHVvOmZ1bmN0aW9uKGgsbCl7ZltsLnNiXSYmKFRuKGZbbC5zYl0pLGRlbGV0ZSBmW2wuc2JdKTtnW2wuc2JdJiYoVW4oZ1tsLnNiXSxsLnNiKSxkZWxldGUgZ1tsLnNiXSl9LFJzOmZ1bmN0aW9uKGgsbCxuLHAscSl7aWYocS5sZW5ndGgmJmIhPT1YLlYudWIpe3ZhciByPQpxW3EubGVuZ3RoLTFdLHQ9ci5zYix1PXIuZW5kcG9pbnQuZW5kcG9pbnQ7aWYoIVB4LmluY2x1ZGVzKHUpKXt2YXIgdj1oLk07TWwoe3RhcmdldElkOmgudGFyZ2V0LmRlc3RpbmF0aW9uSWQscmVxdWVzdDp7dXJsOnQscGFyYW1ldGVyRW5jb2Rpbmc6MyxlbmRwb2ludDp1fSxxYjp7ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoaCxILkoudWYpLHByaW9yaXR5SWQ6UShoLEguSi52Zil9fSk7UShoLEguSi5kYSl9fX19LGMpfSk7ZWxzZSBhLk0ub25GYWlsdXJlKCl9fSxKej17fSxIej0oSnpbWC5WLnpkXT1adyxKeltYLlYueGFdPUZ4LEp6W1guVi5ZZF09S3gsSnpbWC5WLlpkXT1PeCxKeltYLlYudWJdPWV5LEp6W1guVi5PYl09eXksSnpbWC5WLkZiXT1DeSxKeik7dmFyIEt6PXtnajp7YnA6IjEiLHVxOiIyIixWcToiMyJ9fTsKdmFyIEx6PXt9LE16PU9iamVjdC5mcmVlemUoKEx6W0YuRC5maF09MSxMeltGLkQuZ2hdPTEsTHpbRi5ELkJkXT0xLEx6W0YuRC5DZF09MSxMeltGLkQuUmNdPTEsTHpbRi5ELnNpXT0xLEx6W0YuRC51aV09MSxMeltGLkQuQ2xdPTEsTHpbRi5ELmloXT0xLEx6W0YuRC5DZl09MSxMeltGLkQuRGZdPTEsTHpbRi5ELkVmXT0xLEx6W0YuRC5IYV09MSxMeltGLkQuRmZdPTEsTHpbRi5ELkZkXT0xLEx6W0YuRC51Y109MSxMeltGLkQuSGRdPTEsTHpbRi5ELkxiXT0xLEx6W0YuRC5DYl09MSxMeltGLkQuVGJdPTEsTHpbRi5ELm5iXT0xLEx6W0YuRC5lYl09MSxMeltGLkQuR2VdPTEsTHpbRi5ELmtoXT0xLEx6W0YuRC5PYV09MSxMeltGLkQuT3BdPTEsTHpbRi5ELlNwXT0xLEx6W0YuRC5JZV09MSxMeltGLkQuR2ldPTEsTHpbRi5ELlFmXT0xLEx6W0YuRC5UYV09MSxMeltGLkQuWWNdPTEsTHpbRi5ELlpjXT0xLEx6W0YuRC50Yl09MSxMeltGLkQuUWRdPTEsTHpbRi5ELlJkXT0xLEx6W0YuRC5TZF09CjEsTHpbRi5ELk5lXT0xLEx6W0YuRC56YV09MSxMeltGLkQuVWFdPTEsTHpbRi5ELldsXT0xLEx6W0YuRC5YbF09MSxMeltGLkQuWWxdPTEsTHpbRi5ELlpsXT0xLEx6W0YuRC5XYl09MSxMeltGLkQuVGRdPTEsTHpbRi5ELlhiXT0xLEx6W0YuRC5kZF09MSxMeltGLkQuVWRdPTEsTHpbRi5ELlFlXT0xLEx6W0YuRC5QYV09MSxMeltGLkQueWNdPTEsTHpbRi5ELlZkXT0xLEx6W0YuRC56Y109MSxMeltGLkQuQWNdPTEsTHpbRi5ELmZiXT0xLEx6W0YuRC5RYV09MSxMeikpLE56PXt9LE96PShOeltGLkQuVWNdPTEsTnpbRi5ELlBwXT0xLE56W0YuRC5IZV09MSxOeltGLkQucmldPTEsTnoub3JlZj0xLE56KTt2YXIgUHosUXo7CmZ1bmN0aW9uIFJ6KGEsYil7dmFyIGM9YVtHZi5ZYl0sZD1iJiZiLmV2ZW50O2lmKCFjKXRocm93IEVycm9yKCJFcnJvcjogTm8gZnVuY3Rpb24gbmFtZSBnaXZlbiBmb3IgZnVuY3Rpb24gY2FsbC4iKTt2YXIgZT1ReltjXSxmPXt9LGc7Zm9yKGcgaW4gYSlhLmhhc093blByb3BlcnR5KGcpJiYoU2IoZywidnRwXyIpP2ZbZSE9PXZvaWQgMD9nOmcuc3Vic3RyaW5nKDQpXT1hW2ddOmc9PT1HZi5GcS50b1N0cmluZygpJiYoZltlIT09dm9pZCAwPyJ2dHBfZ3RtR2VuZXJhdGVkVGFnZ2luZ01ldGFkYXRhIjpnXT1hW2ddKSk7SWYoNjEpJiZlJiYoZi52dHBfZXh0cmFFeHBlcmltZW50SWRzPSEwKTtlJiZkJiZkLmNhY2hlZE1vZGVsVmFsdWVzJiYoZi52dHBfZ3RtQ2FjaGVkVmFsdWVzPWQuY2FjaGVkTW9kZWxWYWx1ZXMpO2ImJmUmJihmLnZ0cF9ndG1FbnRpdHlJbmRleD1iLmluZGV4LGYudnRwX2d0bUVudGl0eU5hbWU9Yi5uYW1lKTtyZXR1cm4gZSE9PXZvaWQgMD9lKGYpOlB6KGMsZiwKYil9dmFyIFR6PWZ1bmN0aW9uKCl7dmFyIGE9U3o7aWYoTSg1ODUpJiZmbi5LKXt2YXIgYj1FKDUpLmluZGV4T2YoIkdUTS0iKT09PTAmJklmKDYyKSxjLGQ9KChjPUZrKCkpPT1udWxsP3ZvaWQgMDpjLnNvdXJjZSk9PT0xO2ImJiFkfHxhLkh8fChhLkg9ITAsVW0oImFibCIsIjEiKSx0bygpKX19LFN6PW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIFV6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMubmFtZT1TdHJpbmcodGhpcy5IW0dmLlJtXXx8IiIpfTsKVXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7aWYoIWJbdGhpcy5pbmRleF0mJiFhLmlzQmxvY2tlZCh0aGlzLkgpKXtiW3RoaXMuaW5kZXhdPSEwO3RoaXMuSFtHZi5wbC50b1N0cmluZygpXSYmVHooKTt2YXIgYz10aGlzLm5hbWUsZDt0cnl7dmFyIGU9e30sZjtmb3IoZiBpbiB0aGlzLkgpdGhpcy5ILmhhc093blByb3BlcnR5KGYpJiYoZVtmXT1lbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYikpO2UudnRwX2d0bUV2ZW50SWQ9YS5pZDthLnByaW9yaXR5SWQmJihlLnZ0cF9ndG1Qcmlvcml0eUlkPWEucHJpb3JpdHlJZCk7dmFyIGc9ZD1SeihlLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToyLG5hbWU6Y30pO2VbR2YuWmtdJiZ0eXBlb2YgZz09PSJzdHJpbmciJiYoZz1lW0dmLlprXT09PTE/Zy50b0xvd2VyQ2FzZSgpOmcudG9VcHBlckNhc2UoKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5haCkmJihnPVlmKDE4KT9lW0dmLmFoXT09PTE/ClZmKGcsIlBFUklPRCIpOmVbR2YuYWhdPT09Mj9WZihnLCJDT01NQSIpOlZmKGcsIkFVVE9NQVRJQyIpOmVbR2YuYWhdPT09MT9WZihnLCJQRVJJT0QiKTpWZihnLCJDT01NQSIpKTtlLmhhc093blByb3BlcnR5KEdmLmJsKSYmZz09PW51bGwmJihnPWVbR2YuYmxdKTtlLmhhc093blByb3BlcnR5KEdmLmlsKSYmZz09PXZvaWQgMCYmKGc9ZVtHZi5pbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuZXApJiYoZz1KYihnKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5mbCkmJmc9PT0hMCYmKGc9ZVtHZi5mbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuYWwpJiZnPT09ITEmJihnPWVbR2YuYWxdKTtkPWd9Y2F0Y2goaCl7YS5sb2dNYWNyb0Vycm9yJiZhLmxvZ01hY3JvRXJyb3IoaCxOdW1iZXIodGhpcy5pbmRleCksYyksZD0hMX1iW3RoaXMuaW5kZXhdPSExO3JldHVybiBkfX07VXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFZ6PWZ1bmN0aW9uKGEsYixjKXt0aGlzLkg9YTt0aGlzLnRhZ3M9Yjt0aGlzLm1hY3Jvcz1jfTtWei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt0cnl7Zm9yKHZhciBjPXt9LGQ9bShPYmplY3Qua2V5cyh0aGlzLkgpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjW2ZdPWY9PT0iZnVuY3Rpb24iP3RoaXMuSFtmXTplbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYil9cmV0dXJuIGNsKGMpfWNhdGNoKGcpe0pTT04uc3RyaW5naWZ5KHRoaXMuSCl9cmV0dXJuIDJ9O1Z6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBXej1mdW5jdGlvbihhLGIpe3RoaXMuaW5kZXg9Yjt0aGlzLk49W107dGhpcy5SPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107dGhpcy5uYW1lPSIiO2Zvcih2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1tKGQudmFsdWUpLGY9ZS5uZXh0KCkudmFsdWUsZz15YShlKSxoPWYsbD1nO2g9PT0iaWYiP3RoaXMuTj1sOmg9PT0idW5sZXNzIj90aGlzLlI9bDpoPT09ImFkZCI/dGhpcy5LPWw6aD09PSJibG9jayI/dGhpcy5IPWw6aD09PSJydWxlTmFtZSImJih0aGlzLm5hbWU9bFswXSl9fTsKV3oucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9WHoodGhpcyxiKSxkPVtdLGU9W107Yz8oZC5wdXNoLmFwcGx5KGQsdyh0aGlzLkspKSxlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpKTpjPT09bnVsbCYmZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKTtyZXR1cm57ZmlyaW5nVGFnczpkLGJsb2NraW5nVGFnczplfX07CnZhciBYej1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1tKGEuTiksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWIoZC52YWx1ZSk7aWYoZT09PTApcmV0dXJuITE7aWYoZT09PTIpcmV0dXJuIG51bGx9Zm9yKHZhciBmPW0oYS5SKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9YihnLnZhbHVlKTtpZihoPT09MilyZXR1cm4gbnVsbDtpZihoPT09MSlyZXR1cm4hMX1yZXR1cm4hMH07V3oucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgWXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5JYT1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMuTz1TdHJpbmcodGhpcy5JYVtHZi5ZYl0pO3RoaXMubmFtZT1TdHJpbmcodGhpcy5JYVtHZi5SbV18fCIiKTt0aGlzLnRhZ0lkPU51bWJlcih0aGlzLklhW0dmLnlqXSl9OwpZei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD97fTpjO3ZhciBkLGU9YztlPWU9PT12b2lkIDA/e306ZTt2YXIgZj17fSxnO2ZvcihnIGluIHRoaXMuSWEpdGhpcy5JYS5oYXNPd25Qcm9wZXJ0eShnKSYmKGZbZ109ZWwodGhpcy5JYVtnXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSkpO2Q9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLGUpO2QudnRwX2d0bVRhZ0lkPXRoaXMudGFnSWQ7dGhpcy5JYVtHZi5wbC50b1N0cmluZygpXSYmVHooKTtSeihkLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToxLG5hbWU6dGhpcy5uYW1lfSl9O1l6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSWEpfTsKdmFyIFp6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi50bl0pcmV0dXJuIGVsKGEuSWFbR2YudG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sJHo9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLkRuXSlyZXR1cm4gZWwoYS5JYVtHZi5Ebl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSxhQT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuSWFbR2YuY3BdO2lmKGMpcmV0dXJuIGVsKGMsYixhLnRhZ3MsYS5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TWV0YWRhdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGVsKHRoaXMuSWFbR2YuTUVUQURBVEFdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgYkE9ZnVuY3Rpb24oKXt0aGlzLm1hY3Jvcz1bXTt0aGlzLnJ1bGVzPVtdO3RoaXMucHJlZGljYXRlcz1bXTt0aGlzLnRhZ3M9W107dGhpcy52az1bXX07YkEucHJvdG90eXBlLmdldFJ1bGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVsZXN9O3ZhciBjQT1uZXcgYkE7ZnVuY3Rpb24gZEEoYSxiLGMsZCl7dmFyIGU9V2MoKSxmO2lmKGU9PT0xKWE6e3ZhciBnPUUoMyk7Zz1nLnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBoPSJodHRwczovLyIrZyxsPSJodHRwOi8vIitnLG49MSxwPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLHE9MDtxPHAubGVuZ3RoJiZxPDEwMDtxKyspe3ZhciByPXBbcV0uc3JjO2lmKHIpe3I9ci50b0xvd2VyQ2FzZSgpO2lmKHIuaW5kZXhPZihsKT09PTApe2Y9MzticmVhayBhfW49PT0xJiZyLmluZGV4T2YoaCk9PT0wJiYobj0yKX19Zj1ufWVsc2UgZj1lO3JldHVybihmPT09Mnx8ZHx8Imh0dHA6IiE9PUEubG9jYXRpb24ucHJvdG9jb2w/YTpiKStjfTt2YXIgZUE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz17fTt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLkspT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSyxkKSYmYy5wdXNoKGQrIn4iK2EuS1tkXSk7dmFyIGU9W10sZjtmb3IoZiBpbiBhLkgpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSCxmKSYmZS5wdXNoKGYrIn4iK2EuSFtmXSk7Yi50ZiYmKGEuSz17fSxhLkg9e30pO3ZhciBnPVtdO2MubGVuZ3RoPjAmJmcucHVzaChbImJjcyIsYy5qb2luKCIuIildKTtlLmxlbmd0aD4wJiZnLnB1c2goWyJiZXQiLGUuam9pbigiLiIpXSk7cmV0dXJuIGd9KX0sZkE7ZnVuY3Rpb24gZ0EoKXtmQXx8KGZBPW5ldyBlQSl9O2Z1bmN0aW9uIGhBKGEsYixjLGQsZSl7aWYoIUVrKGEpKXtkLmxvYWRFeHBlcmltZW50cz15aigpO0hrKGEsZCxlKTt2YXIgZj1pQShhKSxnPWZ1bmN0aW9uKCl7b2soKS5jb250YWluZXJbYV0mJihvaygpLmNvbnRhaW5lclthXS5zdGF0ZT0zKTtqQSgpfSxoPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGw9WGooKSxuPWwrIi8iK2tBKGYsYSk7Wm4oaCxuLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsbixsKyIvIitmLGgsZyl9KX1lbHNle3ZhciBwPVNiKGEsIkdUTS0iKSxxPWRrKCkscj1jPyIvZ3RhZy9qcyI6Ii9ndG0uanMiLHQ9bUEoYixyK2YsYSk7aWYoIXQpe3ZhciB1PUUoMykrcjtxJiZLYyYmcCYmKHU9S2MucmVwbGFjZSgvXig/Omh0dHBzPzpcL1wvKT8vaSwiIikuc3BsaXQoL1s/I10vKVswXSk7dD1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIix1K2YpfVpuKGgsdCx2b2lkIDAsZyl9fX0KZnVuY3Rpb24gakEoKXtLaygpfHxHYihMaygpLGZ1bmN0aW9uKGEsYil7bkEoYSxiLnRyYW5zcG9ydFVybCxiLmNvbnRleHQpO1AoOTIpfSl9ZnVuY3Rpb24gbkEoYSxiLGMsZCl7aWYoIUdrKGEpKWlmKGMubG9hZEV4cGVyaW1lbnRzfHwoYy5sb2FkRXhwZXJpbWVudHM9eWooKSksS2soKSlKayhhLGIsYyxkKTtlbHNle0lrKGEsYyxkKTt2YXIgZT17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBmPVhqKCksZz0iZ3RkIitpQShhLCEwKSxoPWYrIi8iK2tBKGcsYSk7Wm4oZSxoLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsaCxmKyIvIitnLGUpfSl9ZWxzZXt2YXIgbD0iL2d0YWcvZGVzdGluYXRpb24iK2lBKGEsITApLG49bUEoYixsLGEpO258fChuPWRBKCJodHRwczovLyIsImh0dHA6Ly8iLEUoMykrbCkpO1puKGUsbil9fX0KZnVuY3Rpb24gbEEoYSxiLGMsZCxlKXtpZihNKDQxMykpe2dBKCk7dmFyIGY9ZkE7aWYoZm4uTil7dmFyIGc9QS5wZXJmb3JtYW5jZSxoPS0xO2lmKGcmJmcuZ2V0RW50cmllc0J5VHlwZSl7dmFyIGw9UmooYikuaHJlZixuPWcuZ2V0RW50cmllc0J5TmFtZShsKS5wb3AoKTtpZighbilmb3IodmFyIHA9Zy5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9cFtxXTtpZihyLm5hbWUmJnIubmFtZS5pbmRleE9mKGIpIT09LTEpe249cjticmVha319biYmbi5yZXNwb25zZVN0YXR1cyE9PXZvaWQgMCYmKGg9bi5yZXNwb25zZVN0YXR1cyl9Zi5LW2FdPWh9UCgxOTApO3ZhciB0PW5tKGptLmJhLmtqKXx8e307dFthXT0hMDttbShqbS5iYS5raix0KTt2YXIgdT1jKyhjLmluZGV4T2YoIj8iKT09PS0xPyI/Zj0xIjoiJmY9MSIpO2U/Wm4oZCx1LHZvaWQgMCxlKTpabihkLHUpfWVsc2UgZSYmZSgpfQpmdW5jdGlvbiBpQShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPSI/aWQ9IitlbmNvZGVVUklDb21wb25lbnQoYSksZD1FKDE5KTtkIT09ImRhdGFMYXllciImJihjKz0iJmw9IitkKTt2YXIgZT1TYihhLCJHVE0tIik7aWYoIWV8fGIpYys9IiZjeD1jIjtlJiZJZig2MikmJihjKz0iJmdvb2dsZV9vbmx5PXRydWUiKTt2YXIgZj1jLGcsaD17RG86SmYoMTUpLElvOkUoMTQpfTtnPUNmKGgpO2M9ZisoIiZndG09IitnKTtkaygpJiYoYys9IiZzaWduPSIrQWoucWopO3ZhciBsPWMsbj1KZig1NCk7aWYobj09PTEpe2wrPSImZnBzPWZjIjt2YXIgcD1FKDYwKTtwJiYobCs9IiZnZGV2PSIrcCl9ZWxzZSBuPT09MiYmKGwrPSImZnBzPWZlIik7cmV0dXJuIGx9CmZ1bmN0aW9uIGtBKGEsYil7aWYoIU0oNDEzKXx8IVhqKCkpcmV0dXJuIGE7dmFyIGM9RSg1OCk7aWYoIWMpcmV0dXJuIFAoMTgyKSxhO3RyeXt2YXIgZD1OYigpLGU9RWYoYSxjKSxmPU5iKCktZDtnQSgpO3ZhciBnPWZBO2ZuLk4mJihnLkhbYl09Zik7cmV0dXJuIGV9Y2F0Y2goaCl7cmV0dXJuIFAoMTgzKSxhfX1mdW5jdGlvbiBtQShhLGIsYyl7aWYoYWsoKSYmYSl7dmFyIGQ9RSg1OCksZT1YaigpO2lmKGQmJmUpdHJ5e3ZhciBmPU5iKCk7Yj1lKyIvIitFZihiLGQpO3ZhciBnPU5iKCktZjtnQSgpO3ZhciBoPWZBO2ZuLk4mJihoLkhbY109Zyl9Y2F0Y2gobCl7UCgxODMpfXJldHVybiBZaihhLGIpfX07dmFyIHBBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9bmV3IEZiO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPXtuYW1lOkUoMTkpLHNldDpmdW5jdGlvbihiLGMpe0VkKFZiKGIsYyksYS5IKTtvQShhKX0sZ2V0OmZ1bmN0aW9uKGIpe3JldHVybiBhLmdldChiLDIpfSxyZXNldDpmdW5jdGlvbigpe2EuSz1uZXcgRmI7YS5IPXt9O29BKGEpfX19O3BBLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiE9Mj90aGlzLksuZ2V0KGEpOnFBKHRoaXMsYSl9O3ZhciBxQT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5zcGxpdCgiLiIpO2M9Y3x8W107Zm9yKHZhciBlPWEuSCxmPTA7ZjxkLmxlbmd0aDtmKyspe2lmKGU9PT1udWxsKXJldHVybiExO2lmKGU9PT12b2lkIDApYnJlYWs7ZT1lW2RbZl1dO2lmKGMuaW5kZXhPZihlKSE9PS0xKXJldHVybn1yZXR1cm4gZX07CnBBLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk4uaGFzT3duUHJvcGVydHkoYSl8fCh0aGlzLksuc2V0KGEsYiksRWQoVmIoYSxiKSx0aGlzLkgpLG9BKHRoaXMpKX07dmFyIHNBPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPVsiZ3RtLmFsbG93bGlzdCIsImd0bS5ibG9ja2xpc3QiLCJndG0ud2hpdGVsaXN0IiwiZ3RtLmJsYWNrbGlzdCIsInRhZ1R5cGVCbGFja2xpc3QiXSxiPXJBLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWIuZ2V0KGQsMSk7aWYoQXJyYXkuaXNBcnJheShlKXx8Q2QoZSkpZT1FZChlLG51bGwpO2IuTltkXT1lfX0sb0E9ZnVuY3Rpb24oYSxiKXtHYihhLk4sZnVuY3Rpb24oYyxkKXthLksuc2V0KGMsZCk7RWQoVmIoYyksYS5IKTtFZChWYihjLGQpLGEuSCk7YiYmZGVsZXRlIGEuTltjXX0pfSxyQT1uZXcgcEEsdEE9ckEuUjtmdW5jdGlvbiB1QShhLGIpe3JldHVybiByQS5nZXQoYSxiKX0KZnVuY3Rpb24gdkEoYSxiKXt2YXIgYz1iPT09dm9pZCAwPzI6YixkPXJBLGUsZj0oYz09PXZvaWQgMD8yOmMpIT09MT9xQShkLGEpOmQuSy5nZXQoYSk7QWQoZik9PT0iYXJyYXkifHxBZChmKT09PSJvYmplY3QiP2U9RWQoZixudWxsKTplPWY7cmV0dXJuIGV9O3ZhciB3QT1uZXcgUmVnRXhwKC9eKC4qXC4pPyhnb29nbGV8eW91dHViZXxibG9nZ2VyfHdpdGhnb29nbGUpKFwuY29tPyk/KFwuW2Etel17Mn0pP1wuPyQvKSx4QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJub25Hb29nbGVQaXhlbHMiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVBpeGVsczpbXSxub25Hb29nbGVTY3JpcHRzOlsibm9uR29vZ2xlUGl4ZWxzIl0sbm9uR29vZ2xlSWZyYW1lczpbIm5vbkdvb2dsZVBpeGVscyJdfSx5QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJjdXN0b21TY3JpcHRzIiwKImh0bWwiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIl0sbm9uR29vZ2xlUGl4ZWxzOlsiY3VzdG9tUGl4ZWxzIiwiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVNjcmlwdHM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCJdLG5vbkdvb2dsZUlmcmFtZXM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiXX0sekE9Imdvb2dsZSBjdXN0b21QaXhlbHMgY3VzdG9tU2NyaXB0cyBodG1sIG5vbkdvb2dsZVBpeGVscyBub25Hb29nbGVTY3JpcHRzIG5vbkdvb2dsZUlmcmFtZXMiLnNwbGl0KCIgIik7CmZ1bmN0aW9uIEFBKCl7dmFyIGE9dUEoImd0bS5hbGxvd2xpc3QiKXx8dUEoImd0bS53aGl0ZWxpc3QiKTthJiZQKDkpO0lmKDYyKSYmKGE9dm9pZCAwKTtCQSgpJiYoSWYoNjIpP1AoMTE2KTooUCgxMTcpLElmKDQ4KSYmKGE9W10sd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKCJHVE0gYmxvY2tlZC4gU2VlIGdvLzEzNjg3NzI4LiIpKSkpO3ZhciBiPWEmJlJiKEtiKGEpLHhBKSxjPXVBKCJndG0uYmxvY2tsaXN0Iil8fHVBKCJndG0uYmxhY2tsaXN0Iik7Y3x8KGM9dUEoInRhZ1R5cGVCbGFja2xpc3QiKSkmJlAoMyk7Yz9QKDgpOmM9W107QkEoKSYmKGM9S2IoYyksYy5wdXNoKCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwic2FuZGJveGVkU2NyaXB0cyIpKTtLYihjKS5pbmRleE9mKCJnb29nbGUiKT49MCYmUCgyKTt2YXIgZD1jJiZSYihLYihjKSx5QSksZT17fTtyZXR1cm4gZnVuY3Rpb24oZil7dmFyIGc9ZiYmCmZbR2YuWWJdO2lmKCFnfHx0eXBlb2YgZyE9PSJzdHJpbmciKXJldHVybiEwO2c9Zy5yZXBsYWNlKC9eXyovLCIiKTtpZihlW2ddIT09dm9pZCAwKXJldHVybiBlW2ddO3ZhciBoPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtnXXx8W10sbD0hMDthJiYobD1sJiZDQShnLGgsYikpO3ZhciBuPSExO2MmJihuPURBKGcsaCxkKSk7dmFyIHA9IWx8fG47IXAmJihoLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKT09PS0xfHxiJiZiLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKSE9PS0xPzA6RWIoZCx6QSkpJiYocD0hMCk7cmV0dXJuIGVbZ109cH19ZnVuY3Rpb24gQ0EoYSxiLGMpe2lmKGMuaW5kZXhPZihhKTwwKWlmKGImJmIubGVuZ3RoPjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe2lmKGMuaW5kZXhPZihiW2RdKTwwKXJldHVybiBQKDExKSwhMX1lbHNlIHJldHVybiExO3JldHVybiEwfQpmdW5jdGlvbiBEQShhLGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpPj0wO2lmKGQpcmV0dXJuIGQ7dmFyIGU9RWIoYyxifHxbXSk7ZSYmUCgxMCk7cmV0dXJuIGV9ZnVuY3Rpb24gQkEoKXtyZXR1cm4gd0EudGVzdChBLmxvY2F0aW9uJiZBLmxvY2F0aW9uLmhvc3RuYW1lKX07ZnVuY3Rpb24gRUEoYSl7Zm9yKHZhciBiPVtdLGM9W10sZD1GQShhKSxlPW0oY0EuZ2V0UnVsZXMoKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLmV2YWx1YXRlKGEsZCksaD1nLmZpcmluZ1RhZ3MsbD1nLmJsb2NraW5nVGFncyxuPTA7bjxoLmxlbmd0aDtuKyspYltoW25dXT0hMDtmb3IodmFyIHA9MDtwPGwubGVuZ3RoO3ArKyljW2xbcF1dPSEwfWZvcih2YXIgcT1bXSxyPTA7cjxjQS50YWdzLmxlbmd0aDtyKyspYltyXSYmIWNbcl0mJihxW3JdPSEwKTtyZXR1cm4gcX1mdW5jdGlvbiBGQShhKXt2YXIgYj1bXTtyZXR1cm4gZnVuY3Rpb24oYyl7YltjXT09PXZvaWQgMCYmKGJbY109Y0EucHJlZGljYXRlc1tjXS5ldmFsdWF0ZShhLFtdKSk7cmV0dXJuIGJbY119fTt2YXIgR0E9ZnVuY3Rpb24oKXt0aGlzLks9MDt0aGlzLkg9e319O0dBLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Kyt0aGlzLks7dGhpcy5IW2FdPXRoaXMuSFthXXx8e307dGhpcy5IW2FdW1N0cmluZyhkKV09e2xpc3RlbmVyOmIscmY6Y307cmV0dXJuIGR9O0dBLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXSxkPVN0cmluZyhiKTtpZighY3x8IWNbZF0pcmV0dXJuITE7ZGVsZXRlIGNbZF07cmV0dXJuITB9O3ZhciBJQT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO0diKEhBLkhbYV0sZnVuY3Rpb24oZCxlKXtjLmluZGV4T2YoZS5saXN0ZW5lcik8MCYmKGUucmY9PT12b2lkIDB8fGIuaW5kZXhPZihlLnJmKT49MCkmJmMucHVzaChlLmxpc3RlbmVyKX0pO3JldHVybiBjfTtmdW5jdGlvbiBKQShhLGIsYyl7cmV0dXJue2VudGl0eVR5cGU6YSxpbmRleEluT3JpZ2luQ29udGFpbmVyOmIsbmFtZUluT3JpZ2luQ29udGFpbmVyOmMsb3JpZ2luQ29udGFpbmVySWQ6RSg1KSxvcmlnaW5DSWQ6dmsoKX19O2Z1bmN0aW9uIEtBKGEsYil7aWYoZGF0YS5lbnRpdGllcyl7dmFyIGM9ZGF0YS5lbnRpdGllc1thXTtpZihjKXJldHVybiBjW2JdfX07dmFyIE1BPWZ1bmN0aW9uKGEsYil7dGhpcy5IPSExO3RoaXMuUj1bXTt0aGlzLmV2ZW50RGF0YT17dGFnczpbXX07dGhpcy5aPSExO3RoaXMuSz10aGlzLk49MDtMQSh0aGlzLGEsYil9LE5BPWZ1bmN0aW9uKGEsYixjLGQpe2lmKENqLmhhc093blByb3BlcnR5KGIpfHxiPT09Il9fem9uZSIpcmV0dXJuLTE7dmFyIGU9e307Q2QoZCkmJihlPUVkKGQsZSkpO2UuaWQ9YztlLnN0YXR1cz0idGltZW91dCI7cmV0dXJuIGEuZXZlbnREYXRhLnRhZ3MucHVzaChlKS0xfSxPQT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmV2ZW50RGF0YS50YWdzW2JdO2UmJihlLnN0YXR1cz1jLGUuZXhlY3V0aW9uVGltZT1kKX0sUEE9ZnVuY3Rpb24oYSl7aWYoIWEuSCl7Zm9yKHZhciBiPWEuUixjPTA7YzxiLmxlbmd0aDtjKyspYltjXSgpO2EuSD0hMDthLlIubGVuZ3RoPTB9fSxMQT1mdW5jdGlvbihhLGIsYyl7YiE9PXZvaWQgMCYmYS53ZyhiKTtjJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtQQShhKX0sCk51bWJlcihjKSl9O01BLnByb3RvdHlwZS53Zz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9UGIoZnVuY3Rpb24oKXtiZChmdW5jdGlvbigpe2EoRSg1KSxiLmV2ZW50RGF0YSl9KX0pO3RoaXMuSD9jKCk6dGhpcy5SLnB1c2goYyl9O3ZhciBRQT1mdW5jdGlvbihhKXthLk4rKztyZXR1cm4gUGIoZnVuY3Rpb24oKXthLksrKzthLlomJmEuSz49YS5OJiZQQShhKX0pfSxSQT1mdW5jdGlvbihhKXthLlo9ITA7YS5LPj1hLk4mJlBBKGEpfTtmdW5jdGlvbiBTQSgpe3JldHVybiBBW1RBKCldfXZhciBVQT1mdW5jdGlvbihhKXtpZihFbCgpKXt2YXIgYj1TQSgpO2IoYSsicmVxdWlyZSIsImxpbmtlciIpO2IoYSsibGlua2VyOnBhc3N0aHJvdWdoIiwhMCl9fSxWQT1mdW5jdGlvbihhKXt2YXIgYj1BO2IuR29vZ2xlQW5hbHl0aWNzT2JqZWN0fHwoYi5Hb29nbGVBbmFseXRpY3NPYmplY3Q9YXx8ImdhIik7dmFyIGM9Yi5Hb29nbGVBbmFseXRpY3NPYmplY3Q7aWYoYltjXSliLmhhc093blByb3BlcnR5KGMpO2Vsc2V7dmFyIGQ9ZnVuY3Rpb24oKXt2YXIgZT1PYS5hcHBseSgwLGFyZ3VtZW50cyk7ZC5xPWQucXx8W107ZC5xLnB1c2goZSl9O2QubD1OdW1iZXIoTWIoKSk7YltjXT1kfXJldHVybiBiW2NdfTsKZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBMRj1mdW5jdGlvbihhKXtpeChhKX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpcztpZighbGgoYSl8fCFoaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iXSxhcmd1bWVudHMpO0wodGhpcywiYWNjZXNzX2NvbnNlbnQiLGEsInJlYWQiKTt2YXIgZD1YbyhhKTskbyhbYV0sZnVuY3Rpb24oKXt2YXIgZT1YbyhhKTtlIT09ZCYmKGQ9ZSxiLmludm9rZShjLlQsYSxlKSl9KTt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7aWYoIWhoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TCh0aGlzLCJyZWFkX2V2ZW50X21ldGFkYXRhIik7dmFyIGI9WEYodGhpcyk7aWYoIUFiKGIuZXZlbnRJZCl8fCFiLndnKXJldHVybjtiLndnKFRkKGEpKTt9WUYucHVibGljTmFtZT0iYWRkRXZlbnRDYWxsYmFjayI7CnZhciBaRj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9hOlN0cmluZyhyaigpKX0sYkc9ZnVuY3Rpb24oYSxiKXskRihhLCJpbml0IiwhMSl8fChhRyhhLCJpbml0IiwhMCksYigpKX0sJEY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWNHKGEpO3JldHVybiBPYihkLGIsYyl9LGRHPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWNHKGEpLGY9T2IoZSxiLGQpLGc9YyhmKTtyZXR1cm4gZVtiXT1nfSxhRz1mdW5jdGlvbihhLGIsYyl7Y0coYSlbYl09Y30sY0c9ZnVuY3Rpb24oYSl7dmFyIGI9a2ooImF1dG9FdmVudHNTZXR0aW5ncyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2IuaGFzT3duUHJvcGVydHkoYSl8fChiW2FdPXt9KTtyZXR1cm4gYlthXX0sZUc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtldmVudDpiLCJndG0uZWxlbWVudCI6YSwiZ3RtLmVsZW1lbnRDbGFzc2VzIjpvZChhLCJjbGFzc05hbWUiKSwiZ3RtLmVsZW1lbnRJZCI6YS5mb3J8fGVkKGEsImlkIil8fAoiIiwiZ3RtLmVsZW1lbnRUYXJnZXQiOmEuZm9ybVRhcmdldHx8b2QoYSwidGFyZ2V0Iil8fCIifTtjJiYoZFsiZ3RtLnRyaWdnZXJzIl09Yy5qb2luKCIsIikpO2RbImd0bS5lbGVtZW50VXJsIl09KGEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/YS5mb3JtQWN0aW9uOiIiKXx8YS5hY3Rpb258fG9kKGEsImhyZWYiKXx8YS5zcmN8fGEuY29kZXx8YS5jb2RlYmFzZXx8IiI7cmV0dXJuIGR9OwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07CnZhciB3Rz1mdW5jdGlvbihhLGIsYyl7dkcoKS51cGRhdGVab25lKGEsYixjKX0seUc9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj17fSxnPXZHKCk7Yz1jJiZSYihjLHhHKTtmb3IodmFyIGg9Zy5jcmVhdGVab25lKGEsYyksbD0wO2w8Yi5sZW5ndGg7bCsrKXt2YXIgbj1TdHJpbmcoYltsXSk7aWYoZy5yZWdpc3RlckNoaWxkKG4sRSg1KSxoKSl7dmFyIHA9bixxPWEscj1mLHQ9ZCx1PWU7aWYoU2IocCwiR1RNLSIpKWhBKHAsdm9pZCAwLCExLHtzb3VyY2U6MSxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7ZWxzZXt2YXIgdj1xQygianMiLE1iKCkpO2hBKHAsdm9pZCAwLCEwLHtzb3VyY2U6MSxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7dmFyIHg9e29yaWdpbmF0aW5nRW50aXR5OnQsaW5oZXJpdFBhcmVudENvbmZpZzp1fTttRCh2LHEseCk7bUQockMocCxyKSxxLHgpfX19cmV0dXJuIGh9LHZHPWZ1bmN0aW9uKCl7cmV0dXJuIGtqKCJ6b25lcyIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHpHfSl9LApBRz17em9uZToxLGNuOjEsY3NzOjEsZXc6MSxlcToxLGdlOjEsZ3Q6MSxsYzoxLGxlOjEsbHQ6MSxyZToxLHN3OjEsdW06MX0seEc9e2NsOlsiZWNsIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl19LHpHPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fTt0aGlzLk49MH07az16Ry5wcm90b3R5cGU7ay5pc0FjdGl2ZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTA7ZDxhLmxlbmd0aCYmIShjPXRoaXMuSFthW2RdXSk7ZCsrKTtpZighYylyZXR1cm4hMDtpZighdGhpcy5pc0FjdGl2ZShbYy5ra10sYikpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxjLldnLmxlbmd0aDtlKyspaWYodGhpcy5LW2MuV2dbZV1dLmNmKGIpKXJldHVybiEwO3JldHVybiExfTtrLmdldElzQWxsb3dlZEZuPWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuaXNBY3RpdmUoYSxiKSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hMX07Zm9yKHZhciBjLGQ9MDtkPGEubGVuZ3RoJiYKIShjPXRoaXMuSFthW2RdXSk7ZCsrKTtpZighYylyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hMH07Zm9yKHZhciBlPVtdLGY9MDtmPGMuV2cubGVuZ3RoO2YrKyl7dmFyIGc9dGhpcy5LW2MuV2dbZl1dO2cuY2YoYikmJmUucHVzaChnKX1pZighZS5sZW5ndGgpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBoPXRoaXMuZ2V0SXNBbGxvd2VkRm4oW2Mua2tdLGIpO3JldHVybiBmdW5jdGlvbihsLG4pe249bnx8W107aWYoIWgobCxuKSlyZXR1cm4hMTtmb3IodmFyIHA9MDtwPGUubGVuZ3RoOysrcClpZihlW3BdLk4obCxuKSlyZXR1cm4hMDtyZXR1cm4hMX19O2sudW5yZWdpc3RlckNoaWxkPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWRlbGV0ZSB0aGlzLkhbYVtiXV19O2suY3JlYXRlWm9uZT1mdW5jdGlvbihhLGIpe3ZhciBjPVN0cmluZygrK3RoaXMuTik7dGhpcy5LW2NdPW5ldyBCRyhhLGIpO3JldHVybiBjfTtrLnVwZGF0ZVpvbmU9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZD10aGlzLktbYV07ZCYmZC5SKGIsYyl9O2sucmVnaXN0ZXJDaGlsZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5IW2FdLGU7aWYoZT0hZClsaigpLGU9amouSFthXTtpZihlfHwhZCYmRWsoYSl8fGQmJmQua2shPT1iKXJldHVybiExO2lmKGQpcmV0dXJuIGQuV2cucHVzaChjKSwhMTt0aGlzLkhbYV09e2trOmIsV2c6W2NdfTtyZXR1cm4hMH07dmFyIEJHPWZ1bmN0aW9uKGEsYil7dGhpcy5LPW51bGw7dGhpcy5IPVt7ZXZlbnRJZDphLGNmOiEwfV07aWYoYil7dGhpcy5LPXt9O2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRoaXMuS1tiW2NdXT0hMH19O0JHLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW3RoaXMuSC5sZW5ndGgtMV07YTw9Yy5ldmVudElkfHxjLmNmIT09YiYmdGhpcy5ILnB1c2goe2V2ZW50SWQ6YSxjZjpifSl9O0JHLnByb3RvdHlwZS5jZj1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5ILmxlbmd0aC0xO2I+PTA7Yi0tKWlmKHRoaXMuSFtiXS5ldmVudElkPD0KYSlyZXR1cm4gdGhpcy5IW2JdLmNmO3JldHVybiExfTtCRy5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe2I9Ynx8W107aWYoIXRoaXMuS3x8QUdbYV18fHRoaXMuS1thXSlyZXR1cm4hMDtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZih0aGlzLktbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9O2Z1bmN0aW9uIENHKGEpe3ZhciBiPW1qKCJ6b25lcyIpO3JldHVybiBiP2IuZ2V0SXNBbGxvd2VkRm4od2soKSxhKTpmdW5jdGlvbigpe3JldHVybiEwfX1mdW5jdGlvbiBERygpe3ZhciBhPW1qKCJ6b25lcyIpO2EmJmEudW5yZWdpc3RlckNoaWxkKHdrKCkpfQpmdW5jdGlvbiBFRygpe2tCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGI9YS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPW1qKCJ6b25lcyIpO3JldHVybiBjP2MuaXNBY3RpdmUod2soKSxiKTohMH0pO2hCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGIsYztiPWEuZW50aXR5SWQ7Yz1hLnNlY3VyaXR5R3JvdXBzO3JldHVybiBDRyhOdW1iZXIoYS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSkpKGIsYyl9KX07dmFyIEZHPWZ1bmN0aW9uKGEsYil7dGhpcy50YWdJZD1hO3RoaXMuY2Fub25pY2FsSWQ9Yn07CmZ1bmN0aW9uIEdHKGEsYil7dmFyIGM9dGhpcztpZighbGgoYSl8fCFlaChiKSYmIWdoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZD1UZChiLHRoaXMuVCwxKXx8e30sZT1kLmZpcnN0UGFydHlVcmwsZj1kLm9uTG9hZCxnPWQubG9hZEJ5RGVzdGluYXRpb249PT0hMCxoPWQuaXNHdG1FdmVudD09PSEwO1RGKFtmdW5jdGlvbigpe0woYywibG9hZF9nb29nbGVfdGFncyIsYSxlKX1dKTtpZihnKXtpZihHayhhKSlyZXR1cm4gYX1lbHNlIGlmKEVrKGEpKXJldHVybiBhO3ZhciBsPTYsbj1YRih0aGlzKTtoJiYobD03KTtuLlBiKCk9PT0iX196b25lIiYmKGw9MSk7dmFyIHA9e3NvdXJjZTpsLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9LHE9ZnVuY3Rpb24ocil7aEIocixmdW5jdGlvbih0KXtmb3IodmFyIHU9CmlCKCkuZ2V0RXh0ZXJuYWxSZXN0cmljdGlvbnMoMCx2aygpKSx2PW0odSkseD12Lm5leHQoKTsheC5kb25lO3g9di5uZXh0KCkpe3ZhciB5PXgudmFsdWU7aWYoIXkodCkpcmV0dXJuITF9cmV0dXJuITB9LCEwKTtrQihyLGZ1bmN0aW9uKHQpe2Zvcih2YXIgdT1pQigpLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zKDEsdmsoKSksdj1tKHUpLHg9di5uZXh0KCk7IXguZG9uZTt4PXYubmV4dCgpKXt2YXIgeT14LnZhbHVlO2lmKCF5KHQpKXJldHVybiExfXJldHVybiEwfSwhMCk7ZiYmZihuZXcgRkcoYSxyKSl9O2c/bkEoYSxlLHAscSk6aEEoYSxlLCFTYihhLCJHVE0tIikscCxxKTtmJiZuLlBiKCk9PT0iX196b25lIiYmeUcoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsW2FdLG51bGwsdEcoWEYodGhpcykpKTtyZXR1cm4gYX1HRy5QPSJpbnRlcm5hbC5sb2FkR29vZ2xlVGFnIjtmdW5jdGlvbiBIRyhhKXtyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYik7aWYoYyBpbnN0YW5jZW9mIEtkKXJldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oKXt2YXIgZD1PYS5hcHBseSgwLGFyZ3VtZW50cyksZT10aGlzLGY9RWQoWEYodGhpcyksbnVsbCk7Zi5ldmVudElkPWEuZXZlbnRJZDtmLnByaW9yaXR5SWQ9YS5wcmlvcml0eUlkO2Yub3JpZ2luYWxFdmVudERhdGE9YS5vcmlnaW5hbEV2ZW50RGF0YTt2YXIgZz1kLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gZS5ldmFsdWF0ZShsKX0pLGg9dGhpcy5ULndiKCk7aC51ZShmKTtyZXR1cm4gYy5OYy5hcHBseShjLFtoXS5jb25jYXQodyhnKSkpfSl9KX07ZnVuY3Rpb24gSUcoYSxiLGMpe3ZhciBkPXRoaXM7fUlHLlA9ImludGVybmFsLmFkZEdvb2dsZVRhZ1Jlc3RyaWN0aW9uIjsKZnVuY3Rpb24gUEcoYSxiKXt9UEcuUD0iaW50ZXJuYWwuYWRkSGlzdG9yeUNoYW5nZUxpc3RlbmVyIjtmdW5jdGlvbiBRRyhhLGIsYyl7fVFHLnB1YmxpY05hbWU9ImFkZFdpbmRvd0V2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFJHKGEsYil7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7TCh0aGlzLCJhY2Nlc3NfZ2xvYmFscyIsIndyaXRlIixhKTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwicmVhZCIsYik7dmFyIGM9YS5zcGxpdCgiLiIpLGQ9Yi5zcGxpdCgiLiIpLGU9QSxmPVtlLEJdLGc9VWIoZSxjLGYpLGg9VWIoZSxkLGYpO2lmKGc9PT12b2lkIDB8fGg9PT12b2lkIDApcmV0dXJuITE7Z1tjW2MubGVuZ3RoLTFdXT1oW2RbZC5sZW5ndGgtMV1dO3JldHVybiEwfVJHLnB1YmxpY05hbWU9ImFsaWFzSW5XaW5kb3ciO2Z1bmN0aW9uIFNHKGEsYixjKXt9U0cuUD0iaW50ZXJuYWwuYXBwZW5kUmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBURyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIi4uLmFueSJdLGFyZ3VtZW50cyk7TCh0aGlzLCJhY2Nlc3NfZ2xvYmFscyIsImV4ZWN1dGUiLGEpO2Zvcih2YXIgYz1hLnNwbGl0KCIuIiksZD1BLGU9ZFtjWzBdXSxmPTE7ZSYmZjxjLmxlbmd0aDtmKyspaWYoZD1lLGU9ZVtjW2ZdXSxkPT09QXx8ZD09PUIpcmV0dXJuO2lmKEFkKGUpIT09ImZ1bmN0aW9uIilyZXR1cm47Zm9yKHZhciBnPVtdLGg9MTtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWcucHVzaChUZChhcmd1bWVudHNbaF0sdGhpcy5ULDIpKTt2YXIgbD10aGlzLlQuUGooKShlLGQsZyk7Yj1VZChsLHRoaXMuVCwyKTtiPT09dm9pZCAwJiZsIT09dm9pZCAwJiZQKDQ1KTtyZXR1cm4gYn0KVEcucHVibGljTmFtZT0iY2FsbEluV2luZG93IjtmdW5jdGlvbiBVRyhhKXt9VUcucHVibGljTmFtZT0iY2FsbExhdGVyIjtmdW5jdGlvbiBWRyhhKXt9VkcuUD0iY2FsbE9uRG9tUmVhZHkiO2Z1bmN0aW9uIFdHKGEpe31XRy5QPSJjYWxsT25XaW5kb3dMb2FkIjt2YXIgWUc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ubShYRyl8fHt9LGQ9Y1thXXx8e307aWYoZFtiXSlyZXR1cm4hMTt2YXIgZT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQpO2VbYl09ITA7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjKTtmW2FdPWU7bW0oWEcsZik7cmV0dXJuITB9LFhHPWptLmJhLmhyO2Z1bmN0aW9uIFpHKGEsYil7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtyZXR1cm4gYn1jSC5QPSJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gZEgoYSxiKXt2YXIgYztpZighbGgoYSl8fCFxaChiKSYmYiE9PW51bGwmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwibnVtYmVyfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJyZWFkX2RhdGFfbGF5ZXIiLGEpO3ZhciBkOyhifHwyKSE9PTI/ZD11QShhLDEpOmQ9cUEockEsYSxbQSxCXSk7Yz1kO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7TCh0aGlzLCJyZWFkX2RhdGFfbGF5ZXIiLGEpO2E9U3RyaW5nKGEpO3ZhciBjO2E6e2Zvcih2YXIgZD1YRih0aGlzKS5jYWNoZWRNb2RlbFZhbHVlcyxlPW0oYS5zcGxpdCgiLiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7aWYoZD09bnVsbCl7Yz12b2lkIDA7YnJlYWsgYX1kPWRbZi52YWx1ZV19Yz1kfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywiYWNjZXNzX2dsb2JhbHMiLCJyZWFkIixhKTt2YXIgYz1hLnNwbGl0KCIuIiksZD1VYihBLGMsW0EsQl0pO2lmKCFkKXJldHVybjt2YXIgZT1kW2NbYy5sZW5ndGgtMV1dO2I9VWQoZSx0aGlzLlQsMik7Yj09PXZvaWQgMCYmZSE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywiYWNjZXNzX2dsb2JhbHMiLCJyZWFkd3JpdGUiLGEpO0wodGhpcywiYWNjZXNzX2dsb2JhbHMiLCJyZWFkd3JpdGUiLGIpO3ZhciBkPVtBLEJdLGU9YS5zcGxpdCgiLiIpLGY9VWIoQSxlLGQpLGc9ZVtlLmxlbmd0aC0xXTtpZihmPT09dm9pZCAwKXRocm93IEVycm9yKCJQYXRoICIrYSsiIGRvZXMgbm90IGV4aXN0LiIpO3ZhciBoPWZbZ107aWYoaClyZXR1cm4geWIoaCk/VWQoaCx0aGlzLlQsMik6bnVsbDt2YXIgbDtoPWZ1bmN0aW9uKCl7aWYoIXliKGwucHVzaCkpdGhyb3cgRXJyb3IoIk9iamVjdCBhdCAiK2IrIiBpbiB3aW5kb3cgaXMgbm90IGFuIGFycmF5LiIpO2wucHVzaC5jYWxsKGwsCmFyZ3VtZW50cyl9O2ZbZ109aDt2YXIgbj1iLnNwbGl0KCIuIikscD1VYihBLG4sZCkscT1uW24ubGVuZ3RoLTFdO2lmKHA9PT12b2lkIDApdGhyb3cgRXJyb3IoIlBhdGggIituKyIgZG9lcyBub3QgZXhpc3QuIik7bD1wW3FdO2w9PT12b2lkIDAmJihsPVtdLHBbcV09bCk7Yz1mdW5jdGlvbigpe2guYXBwbHkoaCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfTtyZXR1cm4gVWQoYyx0aGlzLlQsMil9aEkucHVibGljTmFtZT0iY3JlYXRlQXJndW1lbnRzUXVldWUiO2Z1bmN0aW9uIGlJKGEpe3JldHVybiBVZChmdW5jdGlvbihjKXt2YXIgZD1TQSgpO2lmKHR5cGVvZiBjPT09ImZ1bmN0aW9uIilkKGZ1bmN0aW9uKCl7YyhmdW5jdGlvbihmLGcsaCl7dmFyIGw9ClNBKCksbj1sJiZsLmdldEJ5TmFtZSYmbC5nZXRCeU5hbWUoZik7cmV0dXJuKG5ldyBBLmdhcGx1Z2lucy5MaW5rZXIobikpLmRlY29yYXRlKGcsaCl9KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShjKSl7dmFyIGU9U3RyaW5nKGNbMF0pLnNwbGl0KCIuIik7YltlLmxlbmd0aD09PTE/ZVswXTplWzFdXSYmZC5hcHBseShudWxsLGMpfWVsc2UgaWYoYz09PSJpc0xvYWRlZCIpcmV0dXJuISFkLmxvYWRlZH0sdGhpcy5ULDEpfWlJLlA9ImludGVybmFsLmNyZWF0ZUdhQ29tbWFuZFF1ZXVlIjtmdW5jdGlvbiBqSShhKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7TCh0aGlzLCJhY2Nlc3NfZ2xvYmFscyIsInJlYWR3cml0ZSIsYSk7dmFyIGI9YS5zcGxpdCgiLiIpLGM9VWIoQSxiLFtBLEJdKSxkPWJbYi5sZW5ndGgtMV07aWYoIWMpdGhyb3cgRXJyb3IoIlBhdGggIithKyIgZG9lcyBub3QgZXhpc3QuIik7dmFyIGU9Y1tkXTtlPT09dm9pZCAwJiYoZT1bXSxjW2RdPWUpO3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dHJ5e3ZhciBkPShifHwiIikuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iaWciLmluZGV4T2YoZSk+PTB9KS5qb2luKCIiKTtjPW5ldyBQZChuZXcgUmVnRXhwKGEsZCkpfWNhdGNoKGUpe31yZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciB0ST1mdW5jdGlvbihhKXt2YXIgYj1zSSgpLGM9Yi5oZWlnaHQsZD1iLndpZHRoLGU9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWUuYm90dG9tLWUudG9wLGc9ZS5yaWdodC1lLmxlZnQ7cmV0dXJuIGYmJmc/KDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS5sZWZ0LDApK01hdGgubWF4KGUucmlnaHQtZCwwKSkvZywxKSkqKDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS50b3AsMCkrTWF0aC5tYXgoZS5ib3R0b20tYywwKSkvZiwxKSk6MH0sc0k9ZnVuY3Rpb24oKXt2YXIgYT1CLmJvZHksYj1CLmRvY3VtZW50RWxlbWVudHx8YSYmYS5wYXJlbnRFbGVtZW50LGMsZDtpZihCLmNvbXBhdE1vZGUmJkIuY29tcGF0TW9kZSE9PSJCYWNrQ29tcGF0IiljPWI/Yi5jbGllbnRIZWlnaHQ6MCxkPWI/Yi5jbGllbnRXaWR0aDowO2Vsc2V7dmFyIGU9ZnVuY3Rpb24oZixnKXtyZXR1cm4gZiYmZz9NYXRoLm1pbihmLGcpOk1hdGgubWF4KGYsZyl9O2M9ZShiP2IuY2xpZW50SGVpZ2h0OjAsYT8KYS5jbGllbnRIZWlnaHQ6MCk7ZD1lKGI/Yi5jbGllbnRXaWR0aDowLGE/YS5jbGllbnRXaWR0aDowKX1yZXR1cm57d2lkdGg6ZCxoZWlnaHQ6Y319O3ZhciB2ST1mdW5jdGlvbihhKXtpZih1SSl7dmFyIGI9YWwoMjQsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGE+PTAmJmE8Yi5sZW5ndGgmJmJbYV0pe3ZhciBjOyhjPWJbYV0pPT1udWxsfHxjLmRpc2Nvbm5lY3QoKTtiW2FdPXZvaWQgMH19ZWxzZSBBLmNsZWFySW50ZXJ2YWwoYSl9LHlJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdPjE/Y1tkXT0xOmNbZF08MCYmKGNbZF09MCk7aWYodUkpe3ZhciBlPSExO2JkKGZ1bmN0aW9uKCl7ZXx8d0koYSxiLGMpKCl9KTtyZXR1cm4geEkoZnVuY3Rpb24oZil7ZT0hMDtmb3IodmFyIGc9e0hnOjB9O2cuSGc8Zi5sZW5ndGg7Zz17SGc6Zy5IZ30sZy5IZysrKWJkKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe2EoZltoLkhnXSl9fShnKSl9LApiLGMpfXJldHVybiBjZCh3SShhLGIsYyksMUUzKX0sd0k9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoaCxsKXt2YXIgbj17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjAsd2lkdGg6MCxoZWlnaHQ6MH0scD17Ym91bmRpbmdDbGllbnRSZWN0OmguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaW50ZXJzZWN0aW9uUmF0aW86bCxpbnRlcnNlY3Rpb25SZWN0Om4saXNJbnRlcnNlY3Rpbmc6bD4wLHJvb3RCb3VuZHM6bix0YXJnZXQ6aCx0aW1lOk5iKCl9O2JkKGZ1bmN0aW9uKCl7YShwKX0pfWZvcih2YXIgZT1bXSxmPVtdLGc9MDtnPGIubGVuZ3RoO2crKyllLnB1c2goMCksZi5wdXNoKC0xKTtjLnNvcnQoZnVuY3Rpb24oaCxsKXtyZXR1cm4gaC1sfSk7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDtoKyspe3ZhciBsPXRJKGJbaF0pO2lmKGw+ZVtoXSlmb3IoO2ZbaF08Yy5sZW5ndGgtMSYmbD49Y1tmW2hdKzFdOylkKGJbaF0sbCksZltoXSsrO2Vsc2UgaWYobDwKZVtoXSlmb3IoO2ZbaF0+PTAmJmw8PWNbZltoXV07KWQoYltoXSxsKSxmW2hdLS07ZVtoXT1sfX19LHhJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9bmV3IEEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYSx7dGhyZXNob2xkOmN9KSxlPTA7ZTxiLmxlbmd0aDtlKyspZC5vYnNlcnZlKGJbZV0pO2Zvcih2YXIgZj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSksZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKCFmW2ddKXJldHVybiBmW2ddPWQsZztyZXR1cm4gZi5wdXNoKGQpLTF9LHVJPSEoIUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ8fCFBLkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpOwp2YXIgSkk9ZnVuY3Rpb24oYSl7dmFyIGIsYz0oYj1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVTZWxlY3RvcikhPW51bGw/YjohMCxkLGU9KGQ9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlVmlzaWJpbGl0eSkhPW51bGw/ZDohMCxmLGc9KGY9YT09bnVsbD92b2lkIDA6YS5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKSE9bnVsbD9mOiExLGg9KGE9PW51bGw/dm9pZCAwOmEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMpfHxbXSxsPShhPT1udWxsP3ZvaWQgMDphLmZpZWxkRmlsdGVycyl8fHtlbWFpbDohMCxwaG9uZTohMSxhZGRyZXNzOiExfSxuPWFsKDYsZnVuY3Rpb24oKXtyZXR1cm57fX0pLHA9ekkoe2luY2x1ZGVTZWxlY3RvcjpjLGluY2x1ZGVWaXNpYmlsaXR5OmUsZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6aCxmaWVsZEZpbHRlcnM6bH0pLHE9bltwXTtpZihxJiZOYigpLXEudGltZXN0YW1wPDIwMCl7dmFyIHI9cS5yZXN1bHQsdDsoci5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8CigodD1yLmdpKT09bnVsbD8wOnQuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gcn12YXIgdT1BSSgpLHY9dS5zdGF0dXMseD1bXSx5LHosQz1bXTtpZihNKDU2OCkpe3ZhciBEPUJJKGwpLEk9Q0kodS5lbGVtZW50cyxEKSxHPURJKEkpLE49RUkoRyxoKSxTPUZJKE4pO3k9Uy5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5EYT09PUZELkJifSlbMF07Zm9yKHZhciBXPVtdLGVhPXtJZzowfTtlYS5JZzxELmxlbmd0aDtlYT17SWc6ZWEuSWd9LGVhLklnKyspe3ZhciBqYT1OLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIGZ1bmN0aW9uKGliKXtyZXR1cm4gaWIuRGE9PT1EW3FhLklnXX19KGVhKSk7amEubGVuZ3RoPjEwJiYodj0iMyIsamE9amEuc2xpY2UoMCwxMCkpO1c9Vy5jb25jYXQoamEpfU49VzshZyYmUyYmKE49Uyk7Zm9yKHZhciBmYT0wO2ZhPE4ubGVuZ3RoO2ZhKyspe3ZhciBzYT1OW2ZhXTtzYS5EYSE9PUZELktoJiZDLnB1c2goR0koc2EsYyxlKSl9fWVsc2V7aWYobC5lbWFpbCl7dmFyIGRhPQpISSh1LmVsZW1lbnRzKTt4PUVJKGRhLGgpO3k9SUkoeCk7ZGEubGVuZ3RoPjEwJiYodj0iMyIpfSFnJiZ5JiYoeD1beV0pO2Zvcih2YXIgbWE9MDttYTx4Lmxlbmd0aDttYSsrKUMucHVzaChHSSh4W21hXSxjLGUpKTtDPUMuc2xpY2UoMCwxMCl9eSYmKHo9R0koeSxjLGUpKTt2YXIgUGE9e2VsZW1lbnRzOkMsZ2k6eixzdGF0dXM6dn07bltwXT17dGltZXN0YW1wOk5iKCkscmVzdWx0OlBhfTt2YXIgRmE7KFBhLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwoKEZhPVBhLmdpKT09bnVsbD8wOkZhLmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIFBhfSxEST1mdW5jdGlvbihhKXt2YXIgYj1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELktofSksYz1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELlhkfSk7aWYoYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5jZX0pLmxlbmd0aD09PTAmJmMubGVuZ3RoPT09CjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0sZj1lLkNhLnNwbGl0KCIgIik7Zi5sZW5ndGg+MSYmYS5wdXNoKHtDYTpmWzBdLERhOkZELlhkLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9LHtDYTpmLnNsaWNlKDEpLmpvaW4oIiAiKSxEYTpGRC5jZSxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSl9Zm9yKHZhciBnLGg9MCxsLG49ZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5lZSYmdS5DYS5sZW5ndGg+PTMmJnUuQ2EubGVuZ3RoPD00fSxwPTA7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWFbcF07aWYobihxKSYmZyYmcS5lbGVtZW50LnBhcmVudEVsZW1lbnQ9PT1nJiZoPDMpe2lmKGgrPTEsbCs9cS5DYSxoPT09Myl7dmFyIHI9cC1oKzE7aWYobD1LSVtGRC5lZV0ubmEobCkpYVtyXS5DYT1sfX1lbHNlIGlmKGg9MCxsPSIiLGc9dm9pZCAwLG4ocSkpe2grKztsPXEuQ2E7dmFyIHQ9dm9pZCAwO2c9KHQ9cS5lbGVtZW50LnBhcmVudEVsZW1lbnQpIT1udWxsPwp0OnZvaWQgMH19cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiFuKHUpfSl9LE9JPWZ1bmN0aW9uKGEsYil7aWYoYS52YWx1ZSYmTEkuaW5kZXhPZigoYS50eXBlfHwidGV4dCIpLnRvTG93ZXJDYXNlKCkpIT09LTEpe3ZhciBjPWEuYXV0b2NvbXBsZXRlO2lmKGMpZm9yKHZhciBkPWMuc3BsaXQoIiAiKSxlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPU1JKGEudmFsdWUsYixkW2VdKTtpZihmKXJldHVybiBmfXZhciBnLGg9W2EubmFtZSxhLmlkLChnPWEuYXJpYUxhYmVsKSE9bnVsbD9nOnZvaWQgMCxhLnBsYWNlaG9sZGVyXSxsPWEucGFyZW50RWxlbWVudDtsJiZsLnRhZ05hbWU9PT0iTEFCRUwiJiZoLnB1c2gobC5pbm5lclRleHQpO3ZhciBuPWEucHJldmlvdXNFbGVtZW50U2libGluZztuJiZuLnRhZ05hbWU9PT0iTEFCRUwiJiYhbi5odG1sRm9yJiZoLnB1c2gobi5pbm5lclRleHQpO2lmKGEuaWQpe3ZhciBwPVtdO3RyeXtwPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnbGFiZWxbZm9yPSInKwphLmlkKyciXScpfWNhdGNoKEQpe31mb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKyloLnB1c2gocFtxXS5pbm5lclRleHQpfWg9aC5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIEQmJkQudHJpbSgpfSk7Zm9yKHZhciByLHQ9MCx1PTA7dTxoLmxlbmd0aDt1Kyspe3ZhciB2PU5JKGEsYixoW3VdKTtpZih2KXt2YXIgeD12LHk9eC5DYSx6PXguRGEsQz14LlhzO0M+dCYmKHQ9QyxyPXtDYTp5LERhOnp9KX19cmV0dXJuIHJ9fSxOST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0ubmUpe3ZhciBmPUtJW2VdLm5lLmV4ZWMoYy50cmltKCkpO2lmKGYpe3ZhciBnPWEsaD1bXSxsPWcudmFsdWUudHJpbSgpO2wmJmgucHVzaChsKTtpZihnLnRhZ05hbWU9PT0iU0VMRUNUIil0cnl7dmFyIG49Zy5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrZy52YWx1ZSsnIl0nKSxwPW4mJm4uaW5uZXJUZXh0LnRyaW0oKTtwJiZoLnB1c2gocCl9Y2F0Y2godSl7fWZvcih2YXIgcT0KaCxyPXZvaWQgMCx0PTA7dDxxLmxlbmd0aCYmIXI7dCsrKXI9S0lbZV0ubmEocVt0XSk7aWYocilyZXR1cm57RGE6ZSxDYTpyLFhzOmZbMF0ubGVuZ3RoL2MudHJpbSgpLmxlbmd0aH19fX19LE1JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5hdXRvY29tcGxldGUmJktJW2VdLmF1dG9jb21wbGV0ZS5pbmRleE9mKGMpPj0wKXt2YXIgZj1LSVtlXS5uYShhLnRyaW0oKSk7aWYoZilyZXR1cm57RGE6ZSxDYTpmfX19fSxCST1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmVtYWlsJiZiLnB1c2goRkQuQmIpO2EucGhvbmUmJmIucHVzaChGRC5lZSk7YS5hZGRyZXNzJiZiLnB1c2goRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQuS2gpO3JldHVybiBifSxDST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0sZj1lLmVsZW1lbnQsZz1lLk9jLGg7YTp7dmFyIGw9ZixuPWIsCnA9bC5pbm5lckhUTUw7UEkuaW5kZXhPZihsLnRhZ05hbWUpPj0wJiYocD1sLnZhbHVlfHxwKTtpZihwKXt2YXIgcTtiOntmb3IodmFyIHI9cCx0PW4sdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgdj10W3VdO2lmKCFLSVt2XS5tZSl7dmFyIHg9S0lbdl0ubmEoci50cmltKCkpO2lmKHgpe3E9e0RhOnYsQ2E6eH07YnJlYWsgYn19fXE9dm9pZCAwfWlmKHEpe2g9cTticmVhayBhfWlmKFBJLmluZGV4T2YobC50YWdOYW1lKSE9PS0xKXtoPU9JKGwsbik7YnJlYWsgYX19aD12b2lkIDB9dmFyIHk9aDtpZih5KXt2YXIgej15O2MucHVzaCh7Q2E6ei5DYSxEYTp6LkRhLGVsZW1lbnQ6ZixPYzpnfSl9fXJldHVybiBjfSxGST1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIGI7dmFyIGM9e30sZDtmb3IoZCBpbiBGRClpZihjPXtWZzpjLlZnfSxjLlZnPWQsRkQuaGFzT3duUHJvcGVydHkoYy5WZykpe3ZhciBlPWEuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gZy5EYT09PQpGRFtmLlZnXX19KGMpKTtlLmxlbmd0aCE9PTAmJihGRFtjLlZnXT09PUZELkJiJiYoZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFSSS50ZXN0KGYuQ2EpfSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiBmLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hckkoZi5lbGVtZW50KX0pKSxiLnB1c2goZVswXSkpfXJldHVybiBifSxHST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5lbGVtZW50LGU9YS5PYyxmPXtDYTphLkNhLHR5cGU6YS5EYSx0YWdOYW1lOmQudGFnTmFtZX07aWYoYil7dmFyIGcsaD1TSShkKTtpZihnPShlP2UrInwiK2g6aCkuc2xpY2UoMCxUSSkpZi5xdWVyeVNlbGVjdG9yPWd9YyYmKGYuaXNWaXNpYmxlPSFySShkKSk7ZSYmKGYuZGk9ITApO3JldHVybiBmfSx6ST1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtiPWEuaW5jbHVkZVNlbGVjdG9yO2M9YS5pbmNsdWRlVmlzaWJpbGl0eTtkPWEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM7CmU9YS5maWVsZEZpbHRlcnM7dmFyIGY9ISFiKyIuIishIWM7ZC5sZW5ndGgmJihmKz0iLiIrZC5qb2luKCIuIikpO3JldHVybiBmKz0iLiIrZS5lbWFpbCsiLiIrZS5waG9uZSsiLiIrZS5hZGRyZXNzfSxJST1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiO2I9UUkoYSxmdW5jdGlvbihjKXtyZXR1cm4hUkkudGVzdChjLkNhKX0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4gYy5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIXJJKGMuZWxlbWVudCl9KTtyZXR1cm4gYlswXX19LEVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtpZihnJiZwSShhW2RdLmVsZW1lbnQsZykpe2U9ITE7YnJlYWt9fWFbZF0uRGE9PT1GRC5CYiYmTSg2MDIpJiYoUkkudGVzdChhW2RdLkNhKXx8YVtkXS5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PQoiQSImJmFbZF0uZWxlbWVudC5oYXNBdHRyaWJ1dGUoImhyZWYiKSYmYVtkXS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluZGV4T2YoIm1haWx0bzoiKSE9PS0xP2U9ITE6YVtkXS5lbGVtZW50LmNsb3Nlc3QoImZvb3RlciIpIT09bnVsbCYmKGU9ITEpKTtlJiZjLnB1c2goYVtkXSl9cmV0dXJuIGN9LFFJPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg8PTEpcmV0dXJuIGE7dmFyIGM9YS5maWx0ZXIoYik7cmV0dXJuIGMubGVuZ3RoPT09MD9hOmN9LFNJPWZ1bmN0aW9uKGEpe2lmKGE9PT1CLmJvZHkpcmV0dXJuImJvZHkiO2lmKGEuaWQpcmV0dXJuIiMiK2EuaWQ7dmFyIGI9YS5wYXJlbnRFbGVtZW50O2lmKGIpe3ZhciBjPVNJKGIpLGQ9VUkoYSxiKSxlPVZJKGEpKyI6bnRoLWNoaWxkKCIrZCsiKSI7cmV0dXJuIGM/YysiPiIrZTplfXZhciBmPWEucGFyZW50Tm9kZTtpZihmIGluc3RhbmNlb2YgU2hhZG93Um9vdCl7dmFyIGc9VUkoYSxmKTtyZXR1cm4gVkkoYSkrIjpudGgtY2hpbGQoIisKZysiKSJ9cmV0dXJuIGEudGFnTmFtZT9hLnRhZ05hbWUudG9Mb3dlckNhc2UoKToiIn0sVkk9ZnVuY3Rpb24oYSl7aWYoYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0Lmxlbmd0aD4wKXt2YXIgYj1BcnJheS5mcm9tKGEuY2xhc3NMaXN0LGZ1bmN0aW9uKGMpe3JldHVybiBDU1MuZXNjYXBlKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmxlbmd0aD4wfSk7aWYoYi5sZW5ndGg+MClyZXR1cm4iLiIrYi5qb2luKCIuIil9cmV0dXJuIiJ9LFVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGRyZW4sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKGNbZF09PT1hKXJldHVybiBkKzE7cmV0dXJuIDF9LEhJPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmVsZW1lbnQsZj1kLk9jLGc9ZS50ZXh0Q29udGVudDtlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCImJmUudmFsdWUmJihnPWUudmFsdWUpO2lmKGcpe3ZhciBoPQpnLm1hdGNoKEtEKTtpZihoKXt2YXIgbD1oWzBdO0xEKGwpfHxiLnB1c2goe2VsZW1lbnQ6ZSxDYTpsLERhOkZELkJiLE9jOmZ9KX19fXJldHVybiBifSxBST1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Qi5ib2R5O2lmKCFiKXJldHVybntlbGVtZW50czphLHN0YXR1czoiNCJ9O3ZhciBjPVdJKGIsMCwiIixhKTtyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6Y319LFdJPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSxmPWUubGVuZ3RoPjFFND8iMiI6IjEiLGc9MDtnPE1hdGgubWluKGUubGVuZ3RoLDFFNCk7ZysrKXt2YXIgaD1lW2ddO2lmKCEoWEkuaW5kZXhPZihoLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApJiZoLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pe3ZhciBsPSExO2lmKE0oNTgyKSYmaC5zaGFkb3dSb290JiZiPDEpe3ZhciBuPVNJKGgpO1dJKGguc2hhZG93Um9vdCxiKzEsYz9jKyJ8IituOm4sZCk9PT0iMiImJgooZj0iMiIpO2w9ITB9dmFyIHA9ITE7aWYoIWwpZm9yKHZhciBxPTA7cTxNYXRoLm1pbihoLmNoaWxkRWxlbWVudENvdW50LDFFNCk7cSsrKWlmKCEoWUkuaW5kZXhPZihoLmNoaWxkcmVuW3FdLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApKXtwPSEwO2JyZWFrfSghcCYmIWx8fE0oNTY4KSYmUEkuaW5kZXhPZihoLnRhZ05hbWUpIT09LTEpJiZkLnB1c2goe2VsZW1lbnQ6aCxPYzpiPjA/Yzp2b2lkIDB9KX19cmV0dXJuIGZ9LFJJPS9zdXBwb3J0fG5vcmVwbHkvaSxYST0iU0NSSVBUIFNUWUxFIElNRyBTVkcgUEFUSCBCUiBOT1NDUklQVCBURVhUQVJFQSIuc3BsaXQoIiAiKSxZST1bIkJSIl0sVEk9TmYoNzAsNTApLFBJPVsiSU5QVVQiLCJTRUxFQ1QiXSxMST0idGV4dCB0ZWwgc2VhcmNoIG51bWJlciBoaWRkZW4gZW1haWwgc2VsZWN0LW9uZSIuc3BsaXQoIiAiKSxaST1SZWdFeHAoInBob25lfG1vYmlsZXxjb250YWN0Lj9udW1iZXJ8dGVsZWZvbm51bW1lcnx0ZWxlZm9ub3x0ZWxcdTAwZTlmb25vfHRlbGZpeGV8XHU5NmZiXHU4YTcxfHRlbGVmb25lfHRlbGVtb3ZlbHxcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzVcdTA0NDRcdTA0M2VcdTA0M2R8XHUwOTJlXHUwOTRiXHUwOTJjXHUwOTNlXHUwOTA3XHUwOTMyfFx1NzUzNVx1OGJkZHxcdTYyNGJcdTY3M2FcdTUzZjd8XHUwZDJlXHUwZDRhXHUwZDJjXHUwZDQ4XHUwZDMyXHUwZDRkXHUyMDBkfChefFstX10pdGVsWy1fXT8oXFxkKykqKFxcWy4qXFxdKSokfCg/Olx1YzgwNFx1ZDY1NHxcdWQ1NzhcdWI0ZGNcdWQzZjB8XHVkNzM0XHViMzAwXHVkM2YwfFx1ZDczNFx1YjMwMFx1YzgwNFx1ZDY1NCkoPzouP1x1YmM4OFx1ZDYzOCk/fChcXGJ8X3xcXCopdGVsZWZvbihcXGJ8X3xcXCopfHRlbGVwb258cG9uc2VsfChub21vcnxub1xcLj8pLj8oaHB8aGFuZHBob25lKSIsCiJpIiksJEk9UmVnRXhwKCJebmFtZXxmdWxsLj9uYW1lfHlvdXIuP25hbWV8Y3VzdG9tZXIuP25hbWV8YmlsbC4/bmFtZXxzaGlwLj9uYW1lfG5hbWUuKmZpcnN0LipsYXN0fGZpcnN0YW5kbGFzdG5hbWV8Y29udGFjdC4/KG5hbWV8cGVyc29uKXxub21icmUuKnkuKmFwZWxsaWRvc3xebm9tKD8hW2EtekEtWl0pfFx1MzA0YVx1NTQwZFx1NTI0ZHxcdTZjMGZcdTU0MGR8Xm5vbWV8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTU5ZDNcXHMqXHU1NDBkfFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzZFx1MDQzZVx1MDQzNS4/XHUwNDNiXHUwNDM4XHUwNDQ2XHUwNDNlfChcXGJ8X3xcXCopYWRbXHUwMTMxXT8gc295YWRbXHUwMTMxXT8oXFxifF98XFwqKXxcdWMxMzFcdWJhODV8bmFtYS4/KGxlbmdrYXB8cGVuZXJpbWF8a2FtdSkiLAoiaSIpLGFKPVJlZ0V4cCgiZmlyc3QuKm5hbWV8aW5pdGlhbHN8Zm5hbWV8Zmlyc3QkfGdpdmVuLipuYW1lfHZvcm5hbWV8bm9tYnJlfGZvcmVuYW1lfHByXHUwMGU5bm9tfHByZW5vbXxcdTU0MGR8bm9tZXxcdTA0MThcdTA0M2NcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1fFx1Yzc3NFx1Yjk4NHxcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoaXNpbXxhZHxhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XHUwOTI4XHUwOTNlXHUwOTJlfG5hbWEgZGVwYW4iLCJpIiksYko9UmVnRXhwKCJsYXN0LipuYW1lfGxuYW1lfHN1cm5hbWUoPyFcXGQpfGxhc3QkfHNlY29uZG5hbWV8ZmFtaWx5LipuYW1lfG5hY2huYW1lfGFwZWxsaWRvcz98ZmFtaWxsZXxebm9tKD8hW2EtekEtWl0pfGNvZ25vbWV8XHU1OWQzfGFwZWxpZG9zfHN1cmVuYW1lfHNvYnJlbm9tZXxcdTA0MjRcdTA0MzBcdTA0M2NcdTA0MzhcdTA0M2JcdTA0MzhcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHUwOTA5XHUwOTJhXHUwOTI4XHUwOTNlXHUwOTJlfFx1MGQyZVx1MGQzMVx1MGQ0MVx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShzb3lpc2ltfHNveWFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcXGJcdWMxMzEoPzpbXlx1YmE4NV18XFxiKXxuYW1hIGJlbGFrYW5nIiwKImkiKSxjSj1SZWdFeHAoImNvdW50cnl8Y291bnRyaWVzfHBhXHUwMGVkc3xwYWlzfChcXGJ8XylsYW5kKFxcYnxfKSg/IS4qKG1hcmsuKikpfChefFteKFx1NTE2NXxcdTUxZmEpXSlcdTU2ZmR8XHU1NmZkXHU1YmI2fFx1YWQ2ZFx1YWMwMHxcdWIwOThcdWI3N2N8KFxcYnxfKShcdTAwZmNsa2V8dWxjZXx1bGtlKShcXGJ8Xyl8XHUwNmE5XHUwNjM0XHUwNjQ4XHUwNjMxfG5lZ2FyYSIsImkiKSxkSj1SZWdFeHAoIihefFteLl0pemlwfHBvc3RhbHxwb3N0Lipjb2RlfHBjb2RlfHBpbi4/Y29kZXxwb3N0bGVpdHphaGx8XFxiY3BcXGJ8XFxiY2RwXFxifFxcYmNhcFxcYnxcdTkwZjVcdTRmYmZcdTc1NmFcdTUzZjd8Y29kaWdvfGNvZHBvc3xcXGJjZXBcXGJ8XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5Lj9cdTA0MThcdTA0M2RcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NDF8XHUwOTJhXHUwOTNmXHUwOTI4Lj9cdTA5MTVcdTA5NGJcdTA5MjF8XHUwZDJhXHUwZDNmXHUwZDI4XHUwZDRkXHUyMDBkXHUwZDE1XHUwZDRiXHUwZDIxXHUwZDRkfFx1OTBhZVx1NjUzZlx1N2YxNlx1NzgwMXxcdTkwYWVcdTdmMTZ8XHU5MGY1XHU5MDVlXHU1MzQwXHU4NjVmfChcXGJ8Xylwb3N0YSBrb2R1KFxcYnxfKXxcdWM2YjBcdWQzYjguP1x1YmM4OFx1ZDYzOHxrb2RlLj9wb3MiLAoiaSIpLGVKPXt9LEtJPShlSltGRC5CYl09e21lOiExLG5hOk1EfSxlSltGRC5lZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbInRlbCIsInRlbC1uYXRpb25hbCIsInRlbC1sb2NhbCJdLG5lOlpJLG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCEwKX19LGVKW0ZELktoXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsibmFtZSIsImNjLW5hbWUiXSxuZTokSSxuYTpORH0sZUpbRkQuWGRdPXttZTohMCxhdXRvY29tcGxldGU6WyJnaXZlbi1uYW1lIiwiY2MtZ2l2ZW4tbmFtZSJdLG5lOmFKLG5hOk5EfSxlSltGRC5jZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbImZhbWlseS1uYW1lIiwiY2MtZmFtaWx5LW5hbWUiXSxuZTpiSixuYTpORH0sZUpbRkQueGZdPXttZTohMCxhdXRvY29tcGxldGU6WyJjb3VudHJ5IiwiY291bnRyeS1uYW1lIl0sbmU6Y0osbmE6TkR9LGVKW0ZELnFnXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsicG9zdGFsLWNvZGUiXSxuZTpkSixuYTpJRH0sZUopO2Z1bmN0aW9uIGZKKGEpe3ZhciBiO3JldHVybiBifWZKLlA9ImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiOwp2YXIga0o9ZnVuY3Rpb24oYSl7dmFyIGI9aGQoYSxbImJ1dHRvbiIsImlucHV0Il0sNTApO2lmKCFiKXJldHVybiBudWxsO3ZhciBjPVN0cmluZyhiLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCk7aWYoYz09PSJidXR0b24iKXJldHVybiBiO2lmKGM9PT0iaW5wdXQiKXt2YXIgZD1lZChiLCJ0eXBlIik7aWYoZD09PSJidXR0b24ifHxkPT09InN1Ym1pdCJ8fGQ9PT0iaW1hZ2UifHxkPT09ImZpbGUifHxkPT09InJlc2V0IilyZXR1cm4gYn1yZXR1cm4gbnVsbH0sbEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPSRGKGEsImluZGl2aWR1YWxFbGVtZW50SWRzIixbXSk7aWYoZS5sZW5ndGg+MCl7dmFyIGY9ZUcoZCxiLGUpO3VFKGYpfXZhciBnPSExLGg9JEYoYSwiY29tbW9uQnV0dG9uSWRzIixbXSk7aWYoaC5sZW5ndGg+MCl7dmFyIGw9a0ooZCk7aWYobCl7dmFyIG49ZUcobCxiLGgpO3VFKG4pO2c9ITB9fXZhciBwPSRGKGEsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKe30pLHE7Zm9yKHEgaW4gcClpZihwLmhhc093blByb3BlcnR5KHEpKXt2YXIgcj1nP3BbcV0uZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiBoLmluZGV4T2Yodik9PT0tMX0pOnBbcV07aWYoci5sZW5ndGghPT0wKXt2YXIgdD1wSShkLHEpO2lmKHQpe3ZhciB1PWVHKHQsYixyKTt1RSh1KX19fX19OwpmdW5jdGlvbiBtSihhLGIpe2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGM9YT9UZChhKTp7fSxkPUpiKGMubWF0Y2hDb21tb25CdXR0b25zKSxlPSEhYy5jc3NTZWxlY3RvcixmPVpGKGIpO0wodGhpcywiZGV0ZWN0X2NsaWNrX2V2ZW50cyIsYy5tYXRjaENvbW1vbkJ1dHRvbnMsYy5jc3NTZWxlY3Rvcik7dmFyIGc9Yy51c2VWMkV2ZW50TmFtZT8iZ3RtLmNsaWNrLXYyIjoiZ3RtLmNsaWNrIixoPWMudXNlVjJFdmVudE5hbWU/ImVjbCI6ImNsIixsPWZ1bmN0aW9uKHApe3AucHVzaChmKTtyZXR1cm4gcH07aWYoZXx8ZCl7aWYoZCYmZEcoaCwiY29tbW9uQnV0dG9uSWRzIixsLFtdKSxlKXt2YXIgbj1MYihTdHJpbmcoYy5jc3NTZWxlY3RvcikpO2RHKGgsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKZnVuY3Rpb24ocCl7cC5oYXNPd25Qcm9wZXJ0eShuKXx8KHBbbl09W10pO2wocFtuXSk7cmV0dXJuIHB9LHt9KX19ZWxzZSBkRyhoLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsbCxbXSk7YkcoaCxmdW5jdGlvbigpeyRjKEIsImNsaWNrIixmdW5jdGlvbihwKXtsSihoLGcscCl9LCEwKX0pO3JldHVybiBmfW1KLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uQ2xpY2siOwp2YXIgbko9ZnVuY3Rpb24oKXt0aGlzLkg9W107dGhpcy5OPSEhQS5NdXRhdGlvbk9ic2VydmVyfTtuSi5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKHRoaXMuSC5sZW5ndGg9PT0wKXt2YXIgYz1mdW5jdGlvbigpe3ZhciBkPUIuYm9keTtpZihkKWlmKGIuTikobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGY9MDtmPGIuSC5sZW5ndGg7ZisrKWJkKGIuSFtmXSl9KSkub2JzZXJ2ZShkLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2Vsc2V7dmFyIGU9ITE7JGMoZCwiRE9NTm9kZUluc2VydGVkIixmdW5jdGlvbigpe2V8fChlPSEwLGJkKGZ1bmN0aW9uKCl7ZT0hMTtmb3IodmFyIGY9MDtmPGIuSC5sZW5ndGg7ZisrKWJkKGIuSFtmXSl9KSl9KX19O0IuYm9keT9jKCk6YmQoYyl9dGhpcy5ILnB1c2goYSl9O25KLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSClmb3IodmFyIGI9MDtiPHRoaXMuSC5sZW5ndGg7YisrKXRoaXMuSFtiXT09PQphJiZ0aGlzLkguc3BsaWNlKGIsMSl9O3ZhciBvSj1uZXcgbko7CnZhciBwSj1mdW5jdGlvbihhKXthLmhhcygiUG9sbGluZ0lkIikmJihBLmNsZWFySW50ZXJ2YWwoTnVtYmVyKGEuZ2V0KCJQb2xsaW5nSWQiKSkpLGEucmVtb3ZlKCJQb2xsaW5nSWQiKSl9LHJKPWZ1bmN0aW9uKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXtpZighckkoYS50YXJnZXQpKXtiLmhhcygiUmVjZW50T25TY3JlZW4iKXx8Yi5zZXQoIlJlY2VudE9uU2NyZWVuIiwiIitxSigpLnRvU3RyaW5nKCkpO2IuaGFzKCJGaXJzdE9uU2NyZWVuIil8fGIuc2V0KCJGaXJzdE9uU2NyZWVuIiwiIitxSigpLnRvU3RyaW5nKCkpO3ZhciBnPTA7Yi5oYXMoIlRvdGFsVmlzaWJsZVRpbWUiKSYmKGc9TnVtYmVyKGIuZ2V0KCJUb3RhbFZpc2libGVUaW1lIikpKTtnKz0xMDA7Yi5zZXQoIlRvdGFsVmlzaWJsZVRpbWUiLCIiK2cudG9TdHJpbmcoKSk7aWYoZz49Yyl7dmFyIGg9ZUcoYS50YXJnZXQsImd0bS5lbGVtZW50VmlzaWJpbGl0eSIsW2IudWlkXSksbD10SShhLnRhcmdldCk7aFsiZ3RtLnZpc2libGVSYXRpbyJdPQpNYXRoLnJvdW5kKGwqMUUzKS8xMDtoWyJndG0udmlzaWJsZVRpbWUiXT1jO2hbImd0bS52aXNpYmxlRmlyc3RUaW1lIl09TnVtYmVyKGIuZ2V0KCJGaXJzdE9uU2NyZWVuIikpO2hbImd0bS52aXNpYmxlTGFzdFRpbWUiXT1OdW1iZXIoYi5nZXQoIlJlY2VudE9uU2NyZWVuIikpO3VFKGgpO2QoKX19fWlmKCFiLmhhcygiUG9sbGluZ0lkIikmJihjPT09MCYmZSgpLCFiLmhhcygiSGFzRmlyZWQiKSkpe3ZhciBmPWNkKGUsMTAwKTtiLnNldCgiUG9sbGluZ0lkIixTdHJpbmcoZikpfX0scUo9ZnVuY3Rpb24oKXt2YXIgYT1OdW1iZXIodUEoImd0bS5zdGFydCIsMikpfHwwO3JldHVybiBOYigpLWF9LHNKPWZ1bmN0aW9uKGEsYil7dGhpcy5lbGVtZW50PWE7dGhpcy51aWQ9Yn07c0oucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuZWxlbWVudC5kYXRhc2V0WyJndG1WaXMiK2ErdGhpcy51aWRdfTtzSi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVsZW1lbnQuZGF0YXNldFsiZ3RtVmlzIisKYSt0aGlzLnVpZF19O3NKLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmVsZW1lbnQuZGF0YXNldFsiZ3RtVmlzIithK3RoaXMudWlkXT1ifTtzSi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe2RlbGV0ZSB0aGlzLmVsZW1lbnQuZGF0YXNldFsiZ3RtVmlzIithK3RoaXMudWlkXX07CmZ1bmN0aW9uIHRKKGEsYil7dmFyIGM9ZnVuY3Rpb24odSl7dmFyIHY9bmV3IHNKKHUudGFyZ2V0LHApO3UuaW50ZXJzZWN0aW9uUmF0aW8+PW4/di5oYXMoIkhhc0ZpcmVkIil8fHJKKHUsdixsLHE9PT0iT05DRSI/ZnVuY3Rpb24oKXtmb3IodmFyIHg9MDt4PHIubGVuZ3RoO3grKyl7dmFyIHk9bmV3IHNKKHJbeF0scCk7eS5zZXQoIkhhc0ZpcmVkIiwiMSIpO3BKKHkpfXZJKHQpO2gmJm9KLlIoZCl9OmZ1bmN0aW9uKCl7di5zZXQoIkhhc0ZpcmVkIiwiMSIpO3BKKHYpfSk6KHBKKHYpLHE9PT0iTUFOWV9QRVJfRUxFTUVOVCImJnYuaGFzKCJIYXNGaXJlZCIpJiYodi5yZW1vdmUoIkhhc0ZpcmVkIiksdi5yZW1vdmUoIlRvdGFsVmlzaWJsZVRpbWUiKSksdi5yZW1vdmUoIlJlY2VudE9uU2NyZWVuIikpfSxkPWZ1bmN0aW9uKCl7dmFyIHU9CiExLHY9bnVsbDtpZihmPT09IkNTUyIpe3RyeXt2PUIucXVlcnlTZWxlY3RvckFsbChnKX1jYXRjaChDKXt9dT0hIXYmJnIubGVuZ3RoIT09di5sZW5ndGh9ZWxzZSBpZihmPT09IklEIil7dmFyIHg9Qi5nZXRFbGVtZW50QnlJZChnKTt4JiYodj1beF0sdT1yLmxlbmd0aCE9PTF8fHJbMF0hPT14KX12fHwodj1bXSx1PXIubGVuZ3RoPjApO2lmKHUpe2Zvcih2YXIgeT0wO3k8ci5sZW5ndGg7eSsrKXBKKG5ldyBzSihyW3ldLHApKTtyPVtdO2Zvcih2YXIgej0wO3o8di5sZW5ndGg7eisrKXIucHVzaCh2W3pdKTt0Pj0wJiZ2SSh0KTtyLmxlbmd0aD4wJiYodD15SShjLHIsW25dKSl9fTtpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO0wodGhpcywiZGV0ZWN0X2VsZW1lbnRfdmlzaWJpbGl0eV9ldmVudHMiKTt2YXIgZT1hP1RkKGEpOnt9LGY9ZS5zZWxlY3RvclR5cGUsZztzd2l0Y2goZil7Y2FzZSAiSUQiOmc9ClN0cmluZyhlLmlkKTticmVhaztjYXNlICJDU1MiOmc9U3RyaW5nKGUuc2VsZWN0b3IpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVucmVjb2duaXplZCBlbGVtZW50IHNlbGVjdG9yIHR5cGUgIitmKyIuIE11c3QgYmUgb25lIG9mICdJRCcgb3IgJ0NTUycuIik7fXZhciBoPSEhZS51c2VEb21DaGFuZ2VMaXN0ZW5lcixsPU51bWJlcihlLm9uU2NyZWVuRHVyYXRpb24pfHwwLG49KE51bWJlcihlLm9uU2NyZWVuUmF0aW8pfHw1MCkvMTAwLHA9WkYoYikscT1lLmZpcmluZ0ZyZXF1ZW5jeSxyPVtdLHQ9LTE7ZCgpO2gmJm9KLksoZCk7cmV0dXJuIHB9dEouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FbGVtZW50VmlzaWJpbGl0eSI7ZnVuY3Rpb24gdUooKXt9dUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FcnJvciI7CmZ1bmN0aW9uIEFKKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZH1BSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiI7CmZ1bmN0aW9uIEZKKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZn1GSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1TdWJtaXQiOwpmdW5jdGlvbiBLSigpe3ZhciBhPXRoaXM7fUtKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uR2FTZW5kIjsKdmFyIE1KPWZ1bmN0aW9uKGEsYixjLGQpe2M9Yz09PXZvaWQgMD97fTpjO2Q9ZD09PXZvaWQgMD9bXTpkO3ZhciBlPSIiK2I7aWYoY1tlXSljW2VdLnB1c2goYSk7ZWxzZXt2YXIgZj1bYV07Y1tlXT1mO3ZhciBnPUxKKCJndG0uaGlzdG9yeUNoYW5nZS12MiIpLGg9LTE7ZC5wdXNoKGZ1bmN0aW9uKGwpe2g+PTAmJkEuY2xlYXJUaW1lb3V0KGgpO2I/aD1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnKGwsZik7aD0tMX0sYik6ZyhsLGYpfSl9fSxMSj1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLmhyZWYsYz17c291cmNlOm51bGwsc3RhdGU6QS5oaXN0b3J5LnN0YXRlfHxudWxsLHVybDpPaihSaihiKSksa2I6TGooUmooYiksImZyYWdtZW50Iil9O3JldHVybiBmdW5jdGlvbihkLGUpe3ZhciBmPWMsZz17fTtnW2Yuc291cmNlXT0hMDtnW2Quc291cmNlXT0hMDtpZighZy5wb3BzdGF0ZXx8IWcuaGFzaGNoYW5nZXx8Zi5rYiE9PWQua2Ipe3ZhciBoPXtldmVudDphLCJndG0uaGlzdG9yeUNoYW5nZVNvdXJjZSI6ZC5zb3VyY2UsCiJndG0ub2xkVXJsRnJhZ21lbnQiOmMua2IsImd0bS5uZXdVcmxGcmFnbWVudCI6ZC5rYiwiZ3RtLm9sZEhpc3RvcnlTdGF0ZSI6Yy5zdGF0ZSwiZ3RtLm5ld0hpc3RvcnlTdGF0ZSI6ZC5zdGF0ZSwiZ3RtLm9sZFVybCI6Yy51cmwsImd0bS5uZXdVcmwiOmQudXJsfTtlJiYoaFsiZ3RtLnRyaWdnZXJzIl09ZS5qb2luKCIsIikpO2M9ZDt1RShoKX19fSxOSj1mdW5jdGlvbihhLGIpe3ZhciBjPUEuaGlzdG9yeSxkPWNbYV07aWYoeWIoZCkpdHJ5e2NbYV09ZnVuY3Rpb24oZSxmLGcpe2QuYXBwbHkoYyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSk7dmFyIGg9QS5sb2NhdGlvbi5ocmVmO2Ioe3NvdXJjZTphLHN0YXRlOmUsdXJsOk9qKFJqKGgpKSxrYjpMaihSaihoKSwiZnJhZ21lbnQiKX0pfX1jYXRjaChlKXt9fSxQSj1mdW5jdGlvbihhKXtBLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixmdW5jdGlvbihiKXt2YXIgYz1PSihiKTthKHtzb3VyY2U6InBvcHN0YXRlIixzdGF0ZTpiLnN0YXRlLAp1cmw6T2ooUmooYykpLGtiOkxqKFJqKGMpLCJmcmFnbWVudCIpfSl9KX0sUUo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixmdW5jdGlvbihiKXt2YXIgYz1PSihiKTthKHtzb3VyY2U6Imhhc2hjaGFuZ2UiLHN0YXRlOm51bGwsdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LE9KPWZ1bmN0aW9uKGEpe3ZhciBiLGM7cmV0dXJuKChiPWEudGFyZ2V0KT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaHJlZil8fEEubG9jYXRpb24uaHJlZn07CmZ1bmN0aW9uIFJKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyIpfV0pO3ZhciBkPWEmJmEuZ2V0KCJ1c2VWMkV2ZW50TmFtZSIpPyJlaGwiOiJobCIsZT1OdW1iZXIoYSYmYS5nZXQoImludGVydmFsIikpO2U+MCYmaXNGaW5pdGUoZSl8fChlPTApO3ZhciBmO2lmKCEkRihkLCJpbml0IiwhMSkpe3ZhciBnPXt9LGg9W10sbDtkPT09ImVobCI/KGw9ZnVuY3Rpb24ocCl7Zm9yKHZhciBxPTA7cTxoLmxlbmd0aDtxKyspaFtxXShwKX0sZj1aRihiKSxNSihmLGUsZyxoKSxhRyhkLCJyZWciLGZ1bmN0aW9uKHAscSl7TUoocCxxLGcsaCl9KSk6bD1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UiKTsKUUoobCk7UEoobCk7TkooInB1c2hTdGF0ZSIsbCk7TkooInJlcGxhY2VTdGF0ZSIsbCk7YUcoZCwiaW5pdCIsITApfWVsc2UgaWYoZD09PSJlaGwiKXt2YXIgbj0kRihkLCJyZWciKTtuJiYoZj1aRihiKSxuKGYsZSkpfWQ9PT0iaGwiJiYoZj12b2lkIDApO3JldHVybiBmfVJKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSI7dmFyIFNKPVsiaHR0cDovLyIsImh0dHBzOi8vIiwiamF2YXNjcmlwdDoiLCJmaWxlOi8vIl07CnZhciBUSj1mdW5jdGlvbihhLGIpe2lmKGEud2hpY2g9PT0yfHxhLmN0cmxLZXl8fGEuc2hpZnRLZXl8fGEuYWx0S2V5fHxhLm1ldGFLZXkpcmV0dXJuITE7dmFyIGM9b2QoYiwiaHJlZiIpO2lmKGMuaW5kZXhPZigiOiIpIT09LTEmJiFTSi5zb21lKGZ1bmN0aW9uKGgpe3JldHVybiBTYihjLGgpfSkpcmV0dXJuITE7dmFyIGQ9Yy5pbmRleE9mKCIjIiksZT1vZChiLCJ0YXJnZXQiKTtpZihlJiZlIT09Il9zZWxmIiYmZSE9PSJfcGFyZW50IiYmZSE9PSJfdG9wInx8ZD09PTApcmV0dXJuITE7aWYoZD4wKXt2YXIgZj1PaihSaihjKSksZz1PaihSaihBLmxvY2F0aW9uLmhyZWYpKTtyZXR1cm4gZiE9PWd9cmV0dXJuITB9LFVKPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPUxqKFJqKChiLmF0dHJpYnV0ZXMmJmIuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2IuZm9ybUFjdGlvbjoiIil8fGIuYWN0aW9ufHxvZChiLCJocmVmIil8fGIuc3JjfHxiLmNvZGV8fGIuY29kZWJhc2V8fCIiKSwiaG9zdCIpLApkPTA7ZDxhLmxlbmd0aDtkKyspdHJ5e2lmKChuZXcgUmVnRXhwKGFbZF0pKS50ZXN0KGMpKXJldHVybiExfWNhdGNoKGUpe31yZXR1cm4hMH0sVko9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQmJmMud2hpY2ghPT0zJiYhKGMuSHx8Yy50aW1lU3RhbXAmJmMudGltZVN0YW1wPT09Yikpe2I9Yy50aW1lU3RhbXA7ZD1oZChkLFsiYSIsImFyZWEiXSwxMDApO2lmKCFkKXJldHVybiBjLnJldHVyblZhbHVlO3ZhciBlPWMuZGVmYXVsdFByZXZlbnRlZHx8Yy5yZXR1cm5WYWx1ZT09PSExLGY9JEYoImxjbCIsZT8ibnYubXd0IjoibXd0IiwwKSxnO2c9ZT8kRigibGNsIiwibnYuaWRzIixbXSk6JEYoImxjbCIsImlkcyIsW10pO2Zvcih2YXIgaD1bXSxsPTA7bDxnLmxlbmd0aDtsKyspe3ZhciBuPWdbbF0scD0kRigibGNsIiwiYWZmLm1hcCIse30pW25dO3AmJiFVSihwLGQpfHxoLnB1c2gobil9aWYoaC5sZW5ndGgpe3ZhciBxPVRKKGMsZCkscj1lRyhkLCJndG0ubGlua0NsaWNrIiwKaCk7clsiZ3RtLmVsZW1lbnRUZXh0Il09ZmQoZCk7clsiZ3RtLndpbGxPcGVuSW5OZXdXaW5kb3ciXT0hcTtpZihxJiYhZSYmZiYmZC5ocmVmKXt2YXIgdD0hIUNiKFN0cmluZyhvZChkLCJyZWwiKXx8IiIpLnNwbGl0KCIgIiksZnVuY3Rpb24oeSl7cmV0dXJuIHkudG9Mb3dlckNhc2UoKT09PSJub3JlZmVycmVyIn0pLHU9QVsob2QoZCwidGFyZ2V0Iil8fCJfc2VsZiIpLnN1YnN0cmluZygxKV0sdj0hMCx4PXRFKGZ1bmN0aW9uKCl7dmFyIHk7aWYoeT12JiZ1KXt2YXIgejthOmlmKHQpe3ZhciBDO3RyeXtDPW5ldyBNb3VzZUV2ZW50KGMudHlwZSx7YnViYmxlczohMH0pfWNhdGNoKEQpe2lmKCFCLmNyZWF0ZUV2ZW50KXt6PSExO2JyZWFrIGF9Qz1CLmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpO0MuaW5pdEV2ZW50KGMudHlwZSwhMCwhMCl9Qy5IPSEwO2MudGFyZ2V0LmRpc3BhdGNoRXZlbnQoQyk7ej0hMH1lbHNlIHo9ITE7eT0hen15JiYodS5sb2NhdGlvbi5ocmVmPW9kKGQsCiJocmVmIikpfSxmKTtpZihpRShyLHgsZikpdj0hMTtlbHNlIHJldHVybiBjLnByZXZlbnREZWZhdWx0JiZjLnByZXZlbnREZWZhdWx0KCksYy5yZXR1cm5WYWx1ZT0hMX1lbHNlIHNFKHIsZnVuY3Rpb24oKXt9LGZ8fDJFMyk7cmV0dXJuITB9fX12YXIgYj0wOyRjKEIsImNsaWNrIixhLCExKTskYyhCLCJhdXhjbGljayIsYSwhMSl9OwpmdW5jdGlvbiBXSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD1UZChhKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZCl9XSk7dmFyIGU9ZCYmISFkLndhaXRGb3JUYWdzLGY9ZCYmISFkLmNoZWNrVmFsaWRhdGlvbixnPWQ/ZC5hZmZpbGlhdGVEb21haW5zOnZvaWQgMCxoPVpGKGIpO2lmKGUpe3ZhciBsPU51bWJlcihkLndhaXRGb3JUYWdzVGltZW91dCk7bD4wJiZpc0Zpbml0ZShsKXx8KGw9MkUzKTt2YXIgbj1mdW5jdGlvbihxKXtyZXR1cm4gTWF0aC5tYXgobCxxKX07ZEcoImxjbCIsIm13dCIsbiwwKTtmfHxkRygibGNsIiwibnYubXd0IixuLDApfXZhciBwPWZ1bmN0aW9uKHEpe3EucHVzaChoKTsKcmV0dXJuIHF9O2RHKCJsY2wiLCJpZHMiLHAsW10pO2Z8fGRHKCJsY2wiLCJudi5pZHMiLHAsW10pO2cmJmRHKCJsY2wiLCJhZmYubWFwIixmdW5jdGlvbihxKXtxW2hdPWc7cmV0dXJuIHF9LHt9KTskRigibGNsIiwiaW5pdCIsITEpfHwoVkooKSxhRygibGNsIiwiaW5pdCIsITApKTtyZXR1cm4gaH1XSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayI7CmZ1bmN0aW9uIGdLKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZ31nSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblNjcm9sbCI7ZnVuY3Rpb24gaEsoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYS5saW1pdCYmYS5naz49YS5saW1pdClhLmFpJiZBLmNsZWFySW50ZXJ2YWwoYS5haSk7ZWxzZXthLmdrKys7dmFyIGI9TmIoKTt1RSh7ZXZlbnQ6YS5ldmVudE5hbWUsImd0bS50aW1lcklkIjphLmFpLCJndG0udGltZXJFdmVudE51bWJlciI6YS5naywiZ3RtLnRpbWVySW50ZXJ2YWwiOmEuaW50ZXJ2YWwsImd0bS50aW1lckxpbWl0IjphLmxpbWl0LCJndG0udGltZXJTdGFydFRpbWUiOmEuTW8sImd0bS50aW1lckN1cnJlbnRUaW1lIjpiLCJndG0udGltZXJFbGFwc2VkVGltZSI6Yi1hLk1vLCJndG0udHJpZ2dlcnMiOmEuTHR9KX19fQpmdW5jdGlvbiBpSyhhLGIpewpyZXR1cm4gZn1pSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblRpbWVyIjt2YXIgQWM9QWEoWyJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIl0pLGtLPVsid3d3LnlvdXR1YmUuY29tIiwid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIl0sbEs7CmZ1bmN0aW9uIHZLKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZX12Sy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbllvdVR1YmVBY3Rpdml0eSI7ZnVuY3Rpb24gd0soYSxiKXtpZighbGgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9Yj9UZChiKTp7fTtjLnJlZ2V4Q2FjaGU9YWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSk7cmV0dXJuIEdoKGEsYyl9d0suUD0iaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiI7ZnVuY3Rpb24geEsoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9eEsuUD0iaW50ZXJuYWwuZXZhbHVhdGVNYXRjaGluZ1J1bGVzIjt2YXIgeUs9bmV3IE1hcChbWyJhdyIsNF1dKTtmdW5jdGlvbiB6SyhhKXt2YXIgYj12clthXSxjPXlLLmdldChhKTtyZXR1cm4gYz8od3EoYixjKXx8W10pLnNvbWUoZnVuY3Rpb24oZCl7cmV0dXJuIGQubT09PSIwInx8ZC5tPT09dm9pZCAwfSk6ITF9CmZ1bmN0aW9uIEFLKGEsYil7aWYoTSg0OTUpKXtmb3IodmFyIGM9bmV3IE1hcCxkPW0oeUspLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1tKGUudmFsdWUpLGc9Zi5uZXh0KCkudmFsdWUsaD1mLm5leHQoKS52YWx1ZSxsPWcsbj1hW2xdLHA9QXJyYXkuaXNBcnJheShuKT9uWzBdOm47aWYocCE9PXZvaWQgMCl7dmFyIHE9e30scj0ocS5rPXAscS5pPVN0cmluZyhNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSkscS5iPVtdLHEubT0iMSIscSksdD1hcShyLGgpO3QmJih6SyhsKXx8Yy5zZXQobCx0KSl9fWlmKGMuc2l6ZSl7dmFyIHUsdj1bXSx4PWIucGF0aHx8Ii8iO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoInAiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHgpKTtiLkFyJiZ2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJjZSIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIuQXIpKSk7dmFyIHk9Yi5kb21haW4mJmIuZG9tYWluIT09ImF1dG8iPwpiLmRvbWFpbjoiYXV0bzoiK0EubG9jYXRpb24uaG9zdG5hbWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiZCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeSkpO2Zvcih2YXIgej1tKGMpLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXt2YXIgRD1tKEMudmFsdWUpLEk9RC5uZXh0KCkudmFsdWUsRz1ELm5leHQoKS52YWx1ZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KEkpKyI9IitlbmNvZGVVUklDb21wb25lbnQoRykpfXU9Il8vc2V0X2Nvb2tpZT8iK3Yuam9pbigiJiIpO3ZhciBOLFM9RSg1OCk7Tj1FZih1LFMpO3ZhciBXPVhqKCkrIi8iK047bWQoVyl9fX07ZnVuY3Rpb24gQksoYSl7cmV0dXJuIkNXVldlYlZpZXdNZXNzYWdlImluIGF9ZnVuY3Rpb24gQ0soYSl7dmFyIGI9QSxjPWIud2Via2l0O2RlbGV0ZSBiLndlYmtpdDthKGIud2Via2l0KTtiLndlYmtpdD1jfWZ1bmN0aW9uIERLKGEsYil7dmFyIGM9e2FjdGlvbjoiZ2NsX3NldHVwIn07aWYoQksoYS5tZXNzYWdlSGFuZGxlcnMpKXJldHVybiBhLm1lc3NhZ2VIYW5kbGVycy5DV1ZXZWJWaWV3TWVzc2FnZS5wb3N0TWVzc2FnZSh7Y29tbWFuZDpiLHBheWxvYWQ6Y30pLCEwO3ZhciBkPWEubWVzc2FnZUhhbmRsZXJzW2JdO3JldHVybiBkPyhkLnBvc3RNZXNzYWdlKGMpLCEwKTohMX07dmFyIEVLPXt9LEZLPShFSy5hd2I9e25vdEZvdW5kOjE3OH0sRUsueXRiPXtub3RGb3VuZDoxOTR9LEVLKTtmdW5jdGlvbiBHSyhhKXt2YXIgYixjPShiPUZLW2FdKT09bnVsbD92b2lkIDA6Yi5ub3RGb3VuZDtjJiZQKGMpfQpmdW5jdGlvbiBISyhhKXtpZighbm0oam0uYmEuam4pJiYid2Via2l0ImluIEEmJkEud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyl7dmFyIGI9ZnVuY3Rpb24oKXt0cnl7Q0soZnVuY3Rpb24oYyl7aWYoYyl7dmFyIGQ7ZD1CSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJhd2IiaW4gYy5tZXNzYWdlSGFuZGxlcnM/e2NvbW1hbmQ6ImF3YiIsc291cmNlOjV9OihCSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJ5dGIiaW4gYy5tZXNzYWdlSGFuZGxlcnMpJiZNKDQ5OSk/e2NvbW1hbmQ6Inl0YiIsc291cmNlOjh9OnZvaWQgMDtkJiYobW0oam0uYmEuam4sZnVuY3Rpb24oZSl7dmFyIGY9ZC5zb3VyY2U7ZS5nY2xpZCYmbHMoImdjbF9hdyIsZS5nY2xpZCxmLGEpO2Uud2JyYWlkJiZscygiZ2NsX2diIixlLndicmFpZCxmLGEpfSksREsoYyxkLmNvbW1hbmQpfHxHSyhkLmNvbW1hbmQpKX19KX1jYXRjaChjKXtQKDE5Myl9fTtIbChmdW5jdGlvbigpe0JyKGZwKT9iKCk6SWwoYixmcCl9LGZwKX19O3ZhciBJSz1bImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIsImh0dHBzOi8vbS55b3V0dWJlLmNvbSJdO2Z1bmN0aW9uIEpLKGEpe3JldHVybiBhLmRhdGEuYWN0aW9uIT09ImdjbF90cmFuc2ZlciI/KFAoMTczKSwhMCk6YS5kYXRhLmdhZFNvdXJjZT9hLmRhdGEuZ2NsaWQ/ITE6KFAoMTgxKSwhMCk6KFAoMTgwKSwhMCl9CmZ1bmN0aW9uIEtLKGEsYil7aWYoIWF8fE0oYSkpe2lmKG5tKGptLmJhLlZlKSlyZXR1cm4gUCgxNzYpLGptLmJhLlZlO2lmKG5tKGptLmJhLm1uKSlyZXR1cm4gUCgxNzApLGptLmJhLlZlO3ZhciBjPUZwKCk7aWYoIWMpUCgxNzEpO2Vsc2UgaWYoYy5vcGVuZXIpe3ZhciBkPWZ1bmN0aW9uKGcpe2lmKCFJSy5pbmNsdWRlcyhnLm9yaWdpbikpUCgxNzIpO2Vsc2UgaWYoIUpLKGcpKXt2YXIgaD17Z2FkU291cmNlOmcuZGF0YS5nYWRTb3VyY2V9O2guZ2NsaWQ9Zy5kYXRhLmdjbGlkO21tKGptLmJhLlZlLGgpO2ImJmcuZGF0YS5nY2xpZCYmbHMoImdjbF9hdyIsU3RyaW5nKGcuZGF0YS5nY2xpZCksNixiKTt2YXIgbDsobD1nLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbik9PW51bGx8fGwuY2FsbChnKTtudChjLCJtZXNzYWdlIixkKX19O2lmKG10KGMsIm1lc3NhZ2UiLGQpKXttbShqbS5iYS5tbiwhMCk7Zm9yKHZhciBlPW0oSUspLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWMub3BlbmVyLnBvc3RNZXNzYWdlKHthY3Rpb246ImdjbF9zZXR1cCJ9LApmLnZhbHVlKTtQKDE3NCk7cmV0dXJuIGptLmJhLlZlfVAoMTc1KX19fTsKdmFyIExLPWZ1bmN0aW9uKGEpe3ZhciBiPXtwcmVmaXg6TyhhLk0sRi5ELkZkKXx8TyhhLk0sRi5ELm5iKSxkb21haW46TyhhLk0sRi5ELkxiKSxwZDpPKGEuTSxGLkQuQ2IpLGZsYWdzOk8oYS5NLEYuRC5UYil9O2EuTS5pc0d0bUV2ZW50JiYoYi5wYXRoPU8oYS5NLEYuRC52YykpO3JldHVybiBifSxNSz1mdW5jdGlvbihhLGIpe2lmKCFRKGEsSC5KLldlKSl7dmFyIGM9S0soMTE5KTtpZihjKXt2YXIgZD1ubShjKSxlPWZ1bmN0aW9uKGcpe1YoYSxILkouV2UsITApO3ZhciBoPVIoYSxGLkQuemYpLGw9UihhLEYuRC5BZik7VShhLEYuRC56ZixTdHJpbmcoZy5nYWRTb3VyY2UpKTtVKGEsRi5ELkFmLDYpO1YoYSxILkouc2EpO1YoYSxILkoudWcpO1UoYSxGLkQuc2EpO2IoKTtVKGEsRi5ELnpmLGgpO1UoYSxGLkQuQWYsbCk7VihhLEguSi5XZSwhMSl9O2lmKGQpZShkKTtlbHNle3ZhciBmPXZvaWQgMDtmPXBtKGMsZnVuY3Rpb24oZyxoKXtlKGgpO3FtKGMsZil9KX19fX0sUEs9ZnVuY3Rpb24oYSl7dmFyIGIsCmMsZCxlO2I9YS5UbjtjPWEubW87ZD1hLlFvO2U9YS5VbjtpZihiKXtpZihkcihjW0YuRC5YZl0sISFjW0YuRC5BYV0pKXtpZihXaigpJiZCcihBcigpKSl7Zm9yKHZhciBmPVVxKCEwKSxnPXt9LGg9bShPYmplY3Qua2V5cyh2cikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9dnJbbl0scT1mW3BdO2lmKHEpe3ZhciByPSRwKHEsNCk7ciYmKG9zKE1hdGgubWluKE5yKHIpLE5iKCkpfHxOYigpLHAsNCl8fChnW25dPXEpKX19Zm9yKHZhciB0PXt9LHU9bShPYmplY3Qua2V5cyhnKSksdj11Lm5leHQoKTshdi5kb25lO3Y9dS5uZXh0KCkpe3ZhciB4PXYudmFsdWUseT1nW3hdO2lmKHkhPT12b2lkIDApe3ZhciB6PSRwKHksNCk7eiYmei5tPT09IjEiJiYodFt4XT16LmspfX1BSyh0LGUpfXBzKGUpO3RzKGUpO1F2KGUpfWlmKE9wKCkhPT0yKXtncyhlKTtpcyhlKTtpZihZZigxNSkpe3ZhciBDPWUsRD1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOwpELmxlbmd0aHx8KEQ9ZHMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2lmKEQubGVuZ3RoKXtDPUN8fHt9O3ZhciBJPURbMF07SS52YWx1ZSYmbXMoImdjbF9kYyIsW3t2ZXJzaW9uOiIiLGdjbGlkOkkudmFsdWUsdGltZXN0YW1wOk5iKCkscWE6SS5xYX1dLEMpfX1ISyhlKTtLSyh2b2lkIDAsZSl9ZWxzZSBncyhlKTtpZihXaigpJiZCcihBcigpKSl7dmFyIEc9ZnMoKTtBSyhHLGUpfXhzKHFzLGUpO3lzKGUpfWNbRi5ELkFhXSYmKHZzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10pLHVzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLHdzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLFJ2KEd2KGUucHJlZml4KSxjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpLFJ2KCJGUEFVIixjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpKTtkJiZBcyhOSyk7Q3MoT0spfSxxcz1bImF3IiwiZGMiLAoiZ2IiXSxPSz1bImF3IiwiZGMiLCJnYiIsImFnIl0sTks9WyJhdyIsImRjIiwiZ2IiLCJhZyIsImdhZF9zb3VyY2UiXTsKdmFyIFFLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9UShhLEguSi5zbiksZD1NKDQ0MykmJmM/VHYoYik6VXYoYikuU2gsZT12b2lkIDA7TSg1NzApJiZjJiYoZT1TdihiLHtYaDohMH0pLmlrKTt2YXIgZjthOntpZihJZig0NykmJlhvKGZwKSl7dmFyIGc9ZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGg9UShhLEguSi5ZYSk7VihhLEguSi5haiwhMCk7VihhLEguSi5mZCwhMCk7aWYoaHcoaCkpe1YoYSxILkouSWgsITApO3ZhciBsPWR8fEF2KCksbj17fSxwPXtldmVudE1ldGFkYXRhOihuW0guSi5EY109WC5WLkZiLG5bSC5KLllhXT1oLG5bSC5KLnpqXT1sLG5bSC5KLmZkXT0hMCxuW0guSi5hal09ITAsbltILkouSWhdPSEwLG5bSC5KLlhtXT1nJiZJZig0Nyksbiksbm9HdG1FdmVudDohMH0scT1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuZXZlbnROYW1lLGEuTS5FYSk7bUQocSxhLk0uZXZlbnRJZCxwKTtnJiZRKGEsSC5KLndkKXx8VihhLEguSi5ZYSk7Zj1sOwpicmVhayBhfX1mPXZvaWQgMH12YXIgcj1kfHxmO2lmKHJ8fGUpe3ZhciB0LHU7dD1SKGEsRi5ELlBhKTt1PUt6LmdqLmJwO3ZhciB2PVIoYSxGLkQuV2MpOyF0JiZ2JiYodD12W0YuRC5QYV0sdT1Lei5nai51cSk7dHx8KHQ9QXYoUihhLEYuRC5HZCkpLHNiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsVC5XLkZoKSx1PUt6LmdqLlZxKTtVKGEsRi5ELlBhLHQpO1UoYSxGLkQuZG0sdSk7ciYmVShhLEYuRC54YyxyKTtlJiZVKGEsIl8mZWNzaWQyIixlKTtWKGEsSC5KLmxqLCEwKX19Owp2YXIgUks9ZnVuY3Rpb24oYSl7UShhLEguSi55bil8fFYoYSxILkouSmEsITEpfSxTSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPVhvKGZwKSxkPVEoYSxILkouc2EpLGU9UihhLEYuRC5HZCksZj1RKGEsSC5KLnBuKTtzd2l0Y2goYil7Y2FzZSBYLlYueGE6IWYmJmUmJlJLKGEpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjppZighY3x8ZHx8IWYmJmUpYS5pc0Fib3J0ZWQ9ITA7YnJlYWs7Y2FzZSBYLlYudWI6Y3x8KGEuaXNBYm9ydGVkPSEwKTshZiYmZXx8UksoYSk7UShhLEguSi53ZCl8fChhLmlzQWJvcnRlZD0hMCk7YS5ldmVudE5hbWUhPT1GLkQud2F8fE8oYS5NLEYuRC5DbCkhPT0hMSYmTyhhLk0sRi5ELlRkKSE9PSExfHxWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5LYTphLmV2ZW50TmFtZSE9PUYuRC5zYyYmUShhLEguSi5QYykmJihhLmlzQWJvcnRlZD0hMCksYS50YXJnZXQuaWRzW2RDWzFdXSYmCk8oYS5NLEYuRC5paCkhPT0hMCYmKGEuaXNBYm9ydGVkPSEwKX19O3ZhciBUSz1mdW5jdGlvbihhKXt2YXIgYixjPU0oNTc2KTtpZihRKGEsSC5KLnNuKSlzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLkZiOmlmKCEoYS5ldmVudE5hbWUhPT1GLkQud2F8fGMmJmh3KFEoYSxILkouWWEpKSkpYnJlYWs7Yj05NzthLmV2ZW50TmFtZT09PUYuRC53YSYmR3UoVC5XLk9rKTtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYuT2I6aWYoYS5ldmVudE5hbWU9PT1GLkQud2EpYnJlYWs7Yj05ODtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYueGE6Yj05OX0hUShhLEguSi5KYSkmJmImJlAoYik7UShhLEguSi5KYSk9PT0hMCYmKGEuaXNBYm9ydGVkPSEwKX07CnZhciBVSz1mdW5jdGlvbihhKXtpZihNKDU2OSkmJldqKCkmJlEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBiPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpLGM9bmV3IFVpbnQ4QXJyYXkoW2ImMjU1LGI+PjgmMjU1XSksZCxlPXltKCl8fCJYWCIsZj16bSgpfHwiMDAiO2Q9bmV3IFVpbnQ4QXJyYXkoW2UuY2hhckNvZGVBdCgwKSxlLmNoYXJDb2RlQXQoMSksZi5jaGFyQ29kZUF0KDApLGYuY2hhckNvZGVBdCgxKV0pO3ZhciBnPW5ldyBVaW50OEFycmF5KDcpLGg7aWYoKGg9QS5jcnlwdG8pPT1udWxsfHwhaC5nZXRSYW5kb21WYWx1ZXMoZykpZm9yKHZhciBsPTA7bDw3O2wrKylnW2xdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpO3ZhciBuPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGMpLHcoZCksdyhnKSkpLHA7dHJ5e3A9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KG4pKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csCiJfIikucmVwbGFjZSgvPSskLywiIil9Y2F0Y2gocSl7cD0iIn1VKGEsRi5ELkVpLHApfX07ZnVuY3Rpb24gVksoKXtyZXR1cm4gTXQoNykmJk10KDkpJiZNdCgxMCl9Owp2YXIgYUw9ZnVuY3Rpb24oYSxiKXthJiYoJEsoInNpZCIsYS50YXJnZXRJZCxiKSwkSygiY2MiLGEuY2xpZW50Q291bnQsYiksJEsoInRsIixhLnRvdGFsTGlmZU1zLGIpLCRLKCJoYyIsYS5oZWFydGJlYXRDb3VudCxiKSwkSygiY2wiLGEuY2xpZW50TGlmZU1zLGIpKX0sJEs9ZnVuY3Rpb24oYSxiLGMpe2IhPW51bGwmJmMucHVzaChhKyI9IitiKX0sYkw9ZnVuY3Rpb24oKXt2YXIgYT1CLnJlZmVycmVyO2lmKGEpe3ZhciBiO3JldHVybiBMaihSaihhKSwiaG9zdCIpPT09KChiPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpiLmhvc3QpPzE6Mn1yZXR1cm4gMH0sZEw9ZnVuY3Rpb24oKXt0aGlzLmphPWNMO3RoaXMuTj0wO3RoaXMueWE9TmYoNTcsNSk7dGhpcy5SPU5mKDU4LDUwKTt0aGlzLmZhPURiKCk7dGhpcy5MYT0iaHR0cHM6Ly8iK0UoMjEpKyIvYT8ifTtkTC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyxkKXsKdmFyIGU9YkwoKSxmLGc9W107Zj1BPT09QS50b3AmJmUhPT0wJiZiPyhiPT1udWxsP3ZvaWQgMDpiLmNsaWVudENvdW50KT4xP2U9PT0yPzE6MjplPT09Mj8wOjM6NDthJiYkSygic2kiLGEuSmcsZyk7JEsoIm0iLDAsZyk7JEsoImlzcyIsZixnKTskSygiaWYiLGMsZyk7YUwoYixnKTtkJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChkLnN1YnN0cmluZygwLHRoaXMuUikpLGcpO3RoaXMuWihnKTt9O2RMLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9W107JEsoIm0iLDEsZik7JEsoInMiLGEsZik7JEsoInBvIixiTCgpLGYpO2ImJigkSygic3QiLGIuc3RhdGUsZiksJEsoInNpIixiLkpnLGYpLCRLKCJzbSIsYi5VZyxmKSk7YUwoYyxmKTskSygiYyIsZCxmKTtlJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZygwLAp0aGlzLlIpKSxmKTt0aGlzLlooZik7fTtkTC5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTshZm4uTnx8dGhpcy5OPj10aGlzLnlhfHwoJEsoInBpZCIsdGhpcy5mYSxhKSwkSygiYmMiLCsrdGhpcy5OLGEpLGEudW5zaGlmdCgiY3RpZD0iK0UoNSkrIiZ0PXMiKSx0aGlzLmphKCIiK3RoaXMuTGErYS5qb2luKCImIikpKX07ZnVuY3Rpb24gZUwoYSl7cmV0dXJuIGEucGVyZm9ybWFuY2UmJmEucGVyZm9ybWFuY2Uubm93KCl8fERhdGUubm93KCl9CnZhciBmTD1mdW5jdGlvbihhLGIpe3ZhciBjPUEsZD1OZig1Myw1MDApLGU9TmYoNTQsNUUzKSxmPU5mKDgsMjApLGc9TmYoNTUsNUUzKSxoO3ZhciBsPWZ1bmN0aW9uKG4scCxxKXtxPXE9PT12b2lkIDA/e3FvOmZ1bmN0aW9uKCl7fSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oKXt9LG9uRmFpbHVyZTpmdW5jdGlvbigpe319OnE7dGhpcy5Jaj1uO3RoaXMuSD1wO3RoaXMuTj1xO3RoaXMuZmE9dGhpcy5qYT10aGlzLmhlYXJ0YmVhdENvdW50PXRoaXMuRGo9MDt0aGlzLmZlPSExO3RoaXMuSz17fTt0aGlzLmlkPVN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKTt0aGlzLnN0YXRlPTA7dGhpcy5KZz1lTCh0aGlzLkgpO3RoaXMuVWc9ZUwodGhpcy5IKTt0aGlzLlo9MTB9O2wucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt0aGlzLlIoMSk7CnRoaXMuTGEoKX07bC5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6dGhpcy5zdGF0ZSxKZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5KZyksVWc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuVWcpfX07bC5wcm90b3R5cGUuUj1mdW5jdGlvbihuKXt0aGlzLnN0YXRlIT09biYmKHRoaXMuc3RhdGU9bix0aGlzLlVnPWVMKHRoaXMuSCkpfTtsLnByb3RvdHlwZS52Zz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5EaisrKX07bC5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuaGVhcnRiZWF0Q291bnQrKzt0aGlzLnlhKHt0eXBlOjAsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLG1heERlbGF5OnRoaXMuaGUoKX0sZnVuY3Rpb24ocCl7aWYocC50eXBlPT09MCl7dmFyIHE7aWYoKChxPXAuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnEuZmFpbHVyZVR5cGUpIT1udWxsKWlmKHAuc3RhdHMmJihuLnN0YXRzPQpwLnN0YXRzKSxuLmZhKysscC5pc0RlYWR8fG4uZmE+Zil7dmFyIHI9cC5pc0RlYWQmJnAuZmFpbHVyZS5mYWlsdXJlVHlwZTtuLlo9cnx8MTA7bi5SKDQpO24uQWooKTt2YXIgdCx1Oyh1PSh0PW4uTikucG8pPT1udWxsfHx1LmNhbGwodCx7ZmFpbHVyZVR5cGU6cnx8MTAsZGF0YTpwLmZhaWx1cmUuZGF0YX0pfWVsc2Ugbi5SKDMpLG4uUGgoKTtlbHNle2lmKG4uaGVhcnRiZWF0Q291bnQ+cC5zdGF0cy5oZWFydGJlYXRDb3VudCtmKXtuLmhlYXJ0YmVhdENvdW50PXAuc3RhdHMuaGVhcnRiZWF0Q291bnQ7dmFyIHYseDsoeD0odj1uLk4pLm9uRmFpbHVyZSk9PW51bGx8fHguY2FsbCh2LHtmYWlsdXJlVHlwZToxM30pfW4uc3RhdHM9cC5zdGF0czt2YXIgeT1uLnN0YXRlO24uUigyKTtpZih5IT09MilpZihuLmZlKXt2YXIgeixDOyhDPSh6PW4uTikuc28pPT1udWxsfHxDLmNhbGwoeil9ZWxzZXtuLmZlPSEwO3ZhciBELEk7KEk9KEQ9bi5OKS5xbyk9PW51bGx8fEkuY2FsbChEKX1uLmZhPQowO24uTmooKTtuLlBoKCl9fX0pfTtsLnByb3RvdHlwZS5oZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlPT09Mj9lOmR9O2wucHJvdG90eXBlLlBoPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe24uTGEoKX0sTWF0aC5tYXgoMCx0aGlzLmhlKCktKGVMKHRoaXMuSCktdGhpcy5qYSkpKX07bC5wcm90b3R5cGUua3I9ZnVuY3Rpb24obixwLHEpe3ZhciByPXRoaXM7dGhpcy55YSh7dHlwZToxLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxjb21tYW5kOm59LGZ1bmN0aW9uKHQpe2lmKHQudHlwZT09PTEpaWYodC5yZXN1bHQpcCh0LnJlc3VsdCk7ZWxzZXt2YXIgdSx2LHgseT17ZmFpbHVyZVR5cGU6KHg9KHU9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6dS5mYWlsdXJlVHlwZSkhPW51bGw/eDoxMixkYXRhOih2PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnYuZGF0YX0seixDOyhDPSh6PXIuTikub25GYWlsdXJlKT09Cm51bGx8fEMuY2FsbCh6LHkpO3EoeSl9fSl9O2wucHJvdG90eXBlLnlhPWZ1bmN0aW9uKG4scCl7dmFyIHE9dGhpcztpZih0aGlzLnN0YXRlPT09NCluLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnRoaXMuWn0scChuKTtlbHNle3ZhciByPXRoaXMuc3RhdGUhPT0yJiZuLnR5cGUhPT0wLHQ9bi5yZXF1ZXN0SWQsdSx2PXRoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9cS5LW3RdO3kmJihpbSg2KSxxLmtkKHksNykpfSwodT1uLm1heERlbGF5KSE9bnVsbD91OmcpLHg9e3JlcXVlc3Q6bixIbzpwLHpvOnIsTnM6dn07dGhpcy5LW3RdPXg7cnx8dGhpcy5zZW5kUmVxdWVzdCh4KX19O2wucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTtuLnpvPSExO3RoaXMuSWoobi5yZXF1ZXN0KX07bC5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9CnRoaXMuS1twLnZhbHVlXTtxLnpvJiZ0aGlzLnNlbmRSZXF1ZXN0KHEpfX07bC5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl0aGlzLmtkKHRoaXMuS1twLnZhbHVlXSx0aGlzLlopfTtsLnByb3RvdHlwZS5rZD1mdW5jdGlvbihuLHApe3RoaXMuYWMobik7dmFyIHE9bi5yZXF1ZXN0O3EuZmFpbHVyZT17ZmFpbHVyZVR5cGU6cH07bi5IbyhxKX07bC5wcm90b3R5cGUuYWM9ZnVuY3Rpb24obil7ZGVsZXRlIHRoaXMuS1tuLnJlcXVlc3QucmVxdWVzdElkXTt0aGlzLkguY2xlYXJUaW1lb3V0KG4uTnMpfTtsLnByb3RvdHlwZS5rcz1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7dmFyIHA9dGhpcy5LW24ucmVxdWVzdElkXTtpZihwKXRoaXMuYWMocCkscC5IbyhuKTtlbHNle3ZhciBxLHI7KHI9KHE9dGhpcy5OKS5vbkZhaWx1cmUpPT1udWxsfHxyLmNhbGwocSx7ZmFpbHVyZVR5cGU6MTR9KX19OwpoPW5ldyBsKGEsYyxiKTtyZXR1cm4gaH07CnZhciBnTD1mdW5jdGlvbigpe3JldHVybiBhbCgxOCxmdW5jdGlvbigpe3JldHVybiBuZXcgZEx9KX0sY0w9ZnVuY3Rpb24oYSl7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7WmMoYSl9KX0saEw9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyIikpO3JldHVybiImMXA9MSIrKGI/IiZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIiKX0saUw9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW47aWYoIWIpcmV0dXJuIG51bGw7KE0oNDMyKT9XaigpOldqKCkmJiFhKSYmKGE9IiIrYitYaigpKyIvXy9zZXJ2aWNlX3dvcmtlciIpO3ZhciBjPWEsZCxlPUxmKDExKTtlPUxmKDEwKTtkPWU7Yz8oYy5jaGFyQXQoYy5sZW5ndGgtMSkhPT0iLyImJgooYys9Ii8iKSxhPWMrZCk6YT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vc3RhdGljL3NlcnZpY2Vfd29ya2VyLyIrZCsiLyI7dmFyIGY7dHJ5e2Y9bmV3IFVSTChhKX1jYXRjaChnKXtyZXR1cm4gbnVsbH1yZXR1cm4gZi5wcm90b2NvbCE9PSJodHRwczoiP251bGw6Zn0sakw9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuT2gpO3JldHVybiBiJiZiW2FdfSxrTD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuSz1nTCgpO3RoaXMuWj10aGlzLlI9ITE7dGhpcy5mYT1udWxsO3RoaXMuaW5pdFRpbWU9TWF0aC5yb3VuZChOYigpKTt0aGlzLkg9MTU7dGhpcy5OPXRoaXMuRnIoYSk7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5pbml0aWFsaXplKCl9LDFFMyk7YmQoZnVuY3Rpb24oKXtiLnpzKGEpfSl9O2s9a0wucHJvdG90eXBlO2suZGVsZWdhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZ2V0U3RhdGUoKSE9PTI/KHRoaXMuSy5IKHRoaXMuSCx7c3RhdGU6dGhpcy5nZXRTdGF0ZSgpLApKZzp0aGlzLmluaXRUaW1lLFVnOk1hdGgucm91bmQoTmIoKSktdGhpcy5pbml0VGltZX0sdm9pZCAwLGEuY29tbWFuZFR5cGUpLGMoe2ZhaWx1cmVUeXBlOnRoaXMuSH0pKTp0aGlzLk4ua3IoYSxiLGMpfTtrLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTi5nZXRTdGF0ZSgpLnN0YXRlfTtrLnpzPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luLGM9dGhpcyxkPVhjKCk7dHJ5e3ZhciBlPWQuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGY9YS5wYXRobmFtZSxnPWZbZi5sZW5ndGgtMV09PT0iLyI/YS50b1N0cmluZygpOmEudG9TdHJpbmcoKSsiLyIsaD1hLm9yaWdpbiE9PSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSI/aEwoZik6IiIsbDtNKDEzMykmJihsPXtzYW5kYm94OiJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIn0pO1hjKGcrInN3X2lmcmFtZS5odG1sP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudChiKSsKaCx2b2lkIDAsbCx2b2lkIDAsZSk7dmFyIG49ZnVuY3Rpb24oKXtkLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2UuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtjLmZhPWUuY29udGVudFdpbmRvdztkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24ocCl7cC5vcmlnaW49PT1hLm9yaWdpbiYmYy5OLmtzKHAuZGF0YSl9KTtjLmluaXRpYWxpemUoKX0pfTtkLmNvbnRlbnREb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj9uKCk6ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7bigpfSl9Y2F0Y2gocCl7ZC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGQpLHRoaXMuSD0xMSx0aGlzLksuSyh2b2lkIDAsdm9pZCAwLHRoaXMuSCxwLnRvU3RyaW5nKCkpfX07ay5Gcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9ZkwoZnVuY3Rpb24oZCl7dmFyIGU7KGU9Yi5mYSk9PQpudWxsfHxlLnBvc3RNZXNzYWdlKGQsYS5vcmlnaW4pfSx7cW86ZnVuY3Rpb24oKXtiLlI9ITA7Yi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMpfSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oZCl7Yi5SPyhiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHwxMCxiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsdm9pZCAwLGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpOihiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHw0LGIuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGIuSCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKX0sb25GYWlsdXJlOmZ1bmN0aW9uKGQpe2IuSD1kLmZhaWx1cmVUeXBlO2IuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyxkLmNvbW1hbmQsZC5kYXRhKX19KTtyZXR1cm4gY307ay5pbml0aWFsaXplPWZ1bmN0aW9uKCl7dGhpcy5afHx0aGlzLk4uaW5pdCgpO3RoaXMuWj0hMH07CnZhciBsTD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZTtpZigoZT1qTChhKSk9PW51bGx8fCFlLmRlbGVnYXRlKXt2YXIgZj1JYygpPzE2OjY7Z0woKS5IKGYsdm9pZCAwLHZvaWQgMCxiLmNvbW1hbmRUeXBlKTtkKHtmYWlsdXJlVHlwZTpmfSk7cmV0dXJufWpMKGEpLmRlbGVnYXRlKGIsYyxkKTt9OwpmdW5jdGlvbiBtTChhLGIsYyxkKXt2YXIgZT1pTChhKTtpZihlPT09bnVsbCl7ZCgiX2lzX3N3PWYiKyhJYygpPzE2OjYpKyJ0ZSIpO3JldHVybn12YXIgZj1iPzE6MCxnPU1hdGgucm91bmQoTmIoKSksaCxsPShoPWpMKGUub3JpZ2luKSk9PW51bGw/dm9pZCAwOmguaW5pdFRpbWUsbj1sP2ctbDp2b2lkIDAscDtNKDQzMik/cD1XaigpP3ZvaWQgMDpBLmxvY2F0aW9uLmhyZWY6cD1BLmxvY2F0aW9uLmhyZWY7bEwoZS5vcmlnaW4se2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6Zix0ZW1wbGF0ZXM6Yyxib2R5OmJ8fCIiLHByb2Nlc3NSZXNwb25zZTohMCxzaW5jZUluaXQ6bixhdHRyaWJ1dGlvblJlcG9ydGluZzohMCxyZWZlcmVyOnAsc3RyaWN0Ok0oNTg0KX19LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihxKXt2YXIgcj0iX2lzX3N3PWYiK3EuZmFpbHVyZVR5cGUsdCx1PSh0PWpMKGUub3JpZ2luKSk9PQpudWxsP3ZvaWQgMDp0LmdldFN0YXRlKCk7dSE9PXZvaWQgMCYmKHIrPSJzIit1KTtkKG4/cisoInQiK24pOnIrInRlIil9KTt9O2Z1bmN0aW9uIG5MKGEpe2lmKElmKDQ3KSYmZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSkmJldqKCkpe3ZhciBiPWEuTTtpZihJYygpJiZiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpKXt2YXIgYz1layhiKSxkPVdqKCk/WGooKTp2b2lkIDAsZTtlPWQ/e3BhdGg6ZCxlbzoiZnVsbCJ9OmM/e3BhdGg6YyxlbzoibGl0ZSJ9OnZvaWQgMDtpZihlKXt2YXIgZj1lLmVvLGc9bmV3IFVSTChlLnBhdGgsQS5sb2NhdGlvbi5vcmlnaW4pO2lmKGcub3JpZ2luPT09QS5sb2NhdGlvbi5vcmlnaW4mJnB5KGYpPT09dm9pZCAwKXt2YXIgaD1vbShqbS5iYS5PaCx7fSk7aFtmXXx8KGhbZl09bmV3IG55KGcpKX19fX19O3ZhciBvTD1mdW5jdGlvbihhKXtuTChhKX07CnZhciBwTD1mdW5jdGlvbihhKXtpZighUShhLEguSi5KYSkmJiFhLmlzQWJvcnRlZClpZihRKGEsSC5KLmRhKSE9PVguVi54YSlRKGEsSC5KLlhtKSYmVShhLEYuRC5KaCwiMSIpLEl6KGEpO2Vsc2V7dmFyIGI9UShhLEguSi5ZYSksYz1SKGEsRi5ELkJjKSxkPVEoYSxILkouZmQpLGU9SWYoNDcpJiZkSShhLCJjY2RfZW5hYmxlX2NtIiwhMSksZj1YbyhmcCkmJlEoYSxILkoud2QpJiZlO2YmJihVKGEsRi5ELkpoLCIxIiksUShhLEguSi5JaCkmJihWKGEsSC5KLllhKSxVKGEsRi5ELkJjKSxWKGEsSC5KLmZkLCExKSkpO3ZhciBnPXJ2KG12KTtWKGEsSC5KLmduLGcpO2Zvcih2YXIgaCxsPVtdLG49bShxdikscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWUscj1nW3EucGJdO2lmKHI9PT12b2lkIDB8fHI8cS5PZylicmVhaztsLnB1c2goci50b1N0cmluZygpKX0oaD1sLmpvaW4oIn4iKSkmJlUoYSwiXyZnY2xfY3RyIixoKTt2YXIgdDt2YXIgdT17cmFuZG9tOlEoYSwKSC5KLkViKSxsYWJlbDpSKGEsRi5ELkdkKX0sdj1RKGEsSC5KLkdhKSx4PXd2KCk7eD8oeXYoW3VdLHYpLHQ9eC5sZW5ndGg9PT0wP3tyYW5kb206MCxsYWJlbDoiMCJ9OnhbMF0pOnQ9dm9pZCAwO3ZhciB5PXQ7eSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtsYXN0X3JhbmRvbTp5LnJhbmRvbSxsYXN0X2xhYmVsOnkubGFiZWx9KTtJeihhKTtpZihRKGEsSC5KLm9iKSYmWG8oZnApKXt2YXIgej1adShhLHtNOnVDKGEuTSl9KTtWKHosSC5KLmRhLFguVi5aZCk7SXooeil9aWYoUShhLEguSi5saikpe3ZhciBDPVp1KGEse006dUMoYS5NKX0pO1YoQyxILkouZGEsWC5WLnpkKTtJeihDKX1pZihmKXt2YXIgRD1adShhLHtNOnVDKGEuTSl9KTtVKEQsRi5ELkpoLCIyIik7VihELEguSi5FYywhMCk7VihELEguSi5mZCxkKTtWKEQsSC5KLllhLGIpO1UoRCxGLkQuQmMsYyk7SXooRCl9fX07dmFyIHFMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpPT09WC5WLnhhO2lmKCFifHxhLmV2ZW50TmFtZT09PUYuRC5JYnx8YS5NLmlzR3RtRXZlbnQpYS5jb3B5VG9IaXREYXRhKEYuRC5IYSksYiYmKGEuY29weVRvSGl0RGF0YShGLkQuRmYpLGEuY29weVRvSGl0RGF0YShGLkQuRGYpLGEuY29weVRvSGl0RGF0YShGLkQuRWYpLGEuY29weVRvSGl0RGF0YShGLkQuQ2YpLFUoYSxGLkQud2ksRi5ELkliKSxhLmNvcHlUb0hpdERhdGEoRi5ELlNkKSxhLmNvcHlUb0hpdERhdGEoRi5ELlFkKSxhLmNvcHlUb0hpdERhdGEoRi5ELlJkKSl9O3ZhciByTD1mdW5jdGlvbigpe3ZhciBhPUhjJiZIYy51c2VyQWdlbnR8fCIiO2lmKGEuaW5kZXhPZigiU2FmYXJpIik8MHx8L0Nocm9tZXxDb2FzdHxPcGVyYXxFZGd8U2lsa3xBbmRyb2lkLy50ZXN0KGEpKXJldHVybiExO3ZhciBiPSgvVmVyc2lvblwvKFtcZFwuXSspLy5leGVjKGEpfHxbXSlbMV18fCIiO2lmKGI9PT0iIilyZXR1cm4hMTtmb3IodmFyIGM9WyIxNCIsIjEiLCIxIl0sZD1iLnNwbGl0KCIuIiksZT0wO2U8ZC5sZW5ndGg7ZSsrKXtpZihjW2VdPT09dm9pZCAwKXJldHVybiEwO2lmKGRbZV0hPT1jW2VdKXJldHVybiBOdW1iZXIoZFtlXSk+TnVtYmVyKGNbZV0pfXJldHVybiBkLmxlbmd0aD49Yy5sZW5ndGh9O2Z1bmN0aW9uIHNMKCl7dmFyIGE7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7dmFyIGI7cmV0dXJuISgoYj1hLmZlYXR1cmVQb2xpY3kpPT1udWxsfHwhYi5hbGxvd2VkRmVhdHVyZXMoKS5pbmNsdWRlcygiYXR0cmlidXRpb24tcmVwb3J0aW5nIikpfTt2YXIgdEw9ZnVuY3Rpb24oYSl7WG8oRi5ELm1hKSYmKEEuX2d0bXBjbT09PSEwfHxyTCgpP1UoYSxGLkQuRmUsIjIiKTpzTCgpJiZVKGEsRi5ELkZlLCIxIikpOyhPYygpfHxRYygpKSYmVihhLEguSi5vYiwhMCk7VihhLEguSi5ZZSxRKGEsSC5KLlhlKSYmIVhvKGZwKSk7UShhLEguSi5zYSkmJlUoYSxGLkQuc2EsITApO2EuTS5ldmVudE1ldGFkYXRhW0guSi5hZV0mJlUoYSxGLkQuVm0sITApfTt2YXIgdUw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5QYSk7YS5jb3B5VG9IaXREYXRhKEYuRC5RYSk7YS5jb3B5VG9IaXREYXRhKEYuRC5lYik7UShhLEguSi5vYik/VShhLEYuRC5XaSwid3d3Lmdvb2dsZS5jb20iKTpVKGEsRi5ELldpLCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iKTt2YXIgYj1PKGEuTSxGLkQuV2IpO2IhPT0hMCYmYiE9PSExfHxVKGEsRi5ELldiLGIpfTt2YXIgdkw9ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQuaWRzW2RDWzBdXTtpZihiKXtVKGEsRi5ELnlpLGIpO3ZhciBjPWEudGFyZ2V0Lmlkc1tkQ1sxXV07YyYmVShhLEYuRC5HZCxjKTtPKGEuTSxGLkQuaWgpPT09ITAmJlYoYSxILkoucG4sITApfWVsc2UgYS5pc0Fib3J0ZWQ9ITB9O2Z1bmN0aW9uIHdMKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlPUZwKCksZj1EcChlKTtpZihmLnVybClpZihkKXt2YXIgZz1jKGYudXJsKTtiIT09ZyYmVShhLEYuRC5QZSxnKX1lbHNle3ZhciBoPWYudXJsO2IhPT1oJiZVKGEsRi5ELlBlLGMoaCkpfX07dmFyIHpMPWZ1bmN0aW9uKGEpe2lmKCFRKGEsSC5KLnNhKSl7dmFyIGI9UihhLEYuRC5NZSksYz1PKGEuTSxGLkQuemEpLGQ9YztkfHwoZD1iPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZik7VShhLEYuRC56YSx4TChkKSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VYSxCLnJlZmVycmVyKTtVKGEsRi5ELk1iLHlMKCkpO2EuY29weVRvSGl0RGF0YShGLkQudGIpO3ZhciBlPXFJKCk7VShhLEYuRC5iZCxlLndpZHRoKyJ4IitlLmhlaWdodCk7dmFyIGY9TSg1ODMpJiYhIWM7d0woYSxkLGZ1bmN0aW9uKGcpe3ZhciBoPXhMKGcpO2YmJihoPWguc3BsaXQoIj8iKVswXSk7cmV0dXJuIGh9KX19Owp2YXIgeEw9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbCl7dmFyIGI9U3RyaW5nKGEpLnN1YnN0cmluZygwLDUxMiksYz1iLmluZGV4T2YoIiMiKTtyZXR1cm4gYz09PS0xP2I6Yi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4iIn0seUw9ZnVuY3Rpb24oKXt2YXIgYT1CLnRpdGxlO2lmKGE9PT12b2lkIDB8fGE9PT0iIilyZXR1cm4iIjthPWVuY29kZVVSSUNvbXBvbmVudChhKTtmb3IodmFyIGI9MjU2O2I+MCYmS2ooYS5zdWJzdHJpbmcoMCxiKSk9PT12b2lkIDA7KWItLTtyZXR1cm4gS2ooYS5zdWJzdHJpbmcoMCxiKSl8fCIifTtmdW5jdGlvbiBBTChhKXtWKGEsSC5KLkphLCEwKTtWKGEsSC5KLkViLE5iKCkpO1YoYSxILkoueW4sYS5NLmV2ZW50TWV0YWRhdGFbSC5KLkphXSl9O3ZhciBCTD1mdW5jdGlvbihhKXtNKDQ3KSYmYS5jb3B5VG9IaXREYXRhKEYuRC5raCl9O3ZhciBDTD1mdW5jdGlvbihhKXt2YXIgYj1NKDQ0MyksYz1NKDU3MCk7aWYoKGJ8fGMpJiZYbyhmcCkpe3ZhciBkPVEoYSxILkouWWEpO2lmKGh3KGQpKXt2YXIgZT1RKGEsSC5KLkdhKTtpZihiKXt2YXIgZj1RKGEsSC5KLnpqKXx8VHYoZSk7VShhLEYuRC54YyxmKX1pZihjKXt2YXIgZz1TdihlLHtYaDohMH0pLmlrO2cmJlUoYSwiXyZlY3NpZDIiLGcpfX19fTt2YXIgREw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5RbSk7YiYmVShhLEYuRC5XYyxiKX07dmFyIEVMPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi5fX2dzYUV4cCYmYi5fX2dzYUV4cC5pZCl7dmFyIGM9Yi5fX2dzYUV4cC5pZDtpZih5YihjKSl0cnl7dmFyIGQ9TnVtYmVyKGMoKSk7aXNOYU4oZCl8fFUoYSxGLkQuUGwsZCl9Y2F0Y2goZSl7fX19O3ZhciBGTD1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELk5lKTthLmNvcHlUb0hpdERhdGEoRi5ELkdlKTthLmNvcHlUb0hpdERhdGEoRi5ELlVkKTthLmNvcHlUb0hpdERhdGEoRi5ELkllKTthLmNvcHlUb0hpdERhdGEoRi5ELlRjKTthLmNvcHlUb0hpdERhdGEoRi5ELkxkKX07dmFyIEdMPWZ1bmN0aW9uKGEpe2lmKFhvKEYuRC5tYSkpe2EuY29weVRvSGl0RGF0YShGLkQuZmIpO3ZhciBiPW5tKGptLmJhLlpxKTtpZihiPT09dm9pZCAwKW1tKGptLmJhLmFyLCEwKTtlbHNle3ZhciBjPW5tKGptLmJhLnNqKTtVKGEsRi5ELlpmLGMrIi4iK2IpfX19Owp2YXIgTUw9ZnVuY3Rpb24oYSxiKXtpZihhJiYoemIoYSkmJihhPWJDKGEpKSxhKSl7dmFyIGM9dm9pZCAwLGQ9ITEsZT1PKGIsRi5ELmtxKTtpZihlJiZBcnJheS5pc0FycmF5KGUpKXtjPVtdO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1iQyhlW2ZdKTtnJiYoYy5wdXNoKGcpLChhLmlkPT09Zy5pZHx8YS5pZD09PWEuZGVzdGluYXRpb25JZCYmYS5kZXN0aW5hdGlvbklkPT09Zy5kZXN0aW5hdGlvbklkKSYmKGQ9ITApKX19aWYoIWN8fGQpe3ZhciBoPU8oYixGLkQuWWwpLGw7aWYoaCl7bD1BcnJheS5pc0FycmF5KGgpP2g6W2hdO3ZhciBuPU8oYixGLkQuV2wpLHA9TyhiLEYuRC5YbCkscT1PKGIsRi5ELlpsKSxyPVFvKE8oYixGLkQuanEpKSx0PW58fHAsdT0xO2EucHJlZml4IT09IlVBInx8Y3x8KHU9NSk7Zm9yKHZhciB2PTA7djxsLmxlbmd0aDt2KyspaWYodjx1KWlmKGMpSEwoYyxsW3ZdLHIsYix7b2U6dCxvcHRpb25zOnF9KTtlbHNlIGlmKGEucHJlZml4PT09CiJBVyImJmEuaWRzW2RDWzFdXSl7dmFyIHg9YS5pZHNbZENbMF1dLHk9YS5pZHNbZENbMV1dLHo9bFt2XSxDPWIsRD17b2U6dCxvcHRpb25zOnF9O1AoMjIpO2lmKHope0Q9RHx8e307dmFyIEk9SUwoSkwsRCx4LEMpLEc9e2FrOngsY2w6eX07RC5vZT09PXZvaWQgMCYmKEcuYXV0b3JlcGxhY2U9eik7S0woRyxDKTtJKDIsRC5vZSxHLHosMCxNYigpLEQub3B0aW9ucyl9fWVsc2UgaWYoYS5wcmVmaXg9PT0iVUEiKXt2YXIgTj1hLmRlc3RpbmF0aW9uSWQsUz1sW3ZdLFc9e29lOnR9O1AoMjMpO2lmKFMpe1c9V3x8e307dmFyIGVhPUlMKExMLFcsTiksamE9e307Vy5vZSE9PXZvaWQgMD9qYS5yZWNlaXZlcj1XLm9lOmphLnJlcGxhY2U9UztqYS5nYV93cGlkPU47amEuZGVzdGluYXRpb249UztlYSgyLE1iKCksamEpfX19fX19LEhMPWZ1bmN0aW9uKGEsYixjLGQsZSl7UCgyMSk7aWYoYiYmYyl7ZT1lfHx7fTtmb3IodmFyIGY9e2NvdW50cnlOYW1lQ29kZTpjLGRlc3RpbmF0aW9uTnVtYmVyOmIsCnJldHJpZXZhbFRpbWU6TWIoKX0sZz1hbCg0LGZ1bmN0aW9uKCl7cmV0dXJue319KSxoPTA7aDxhLmxlbmd0aDtoKyspe3ZhciBsPWFbaF07Z1tsLmlkXXx8KGwmJmwucHJlZml4PT09IkFXIiYmIWYuYWREYXRhJiZsLmlkcy5sZW5ndGg+PTI/KGYuYWREYXRhPXthazpsLmlkc1tkQ1swXV0sY2w6bC5pZHNbZENbMV1dfSxLTChmLmFkRGF0YSxkKSxnW2wuaWRdPSEwKTpsJiZsLnByZWZpeD09PSJVQSImJiFmLmdhRGF0YSYmKGYuZ2FEYXRhPXtnYVdwaWQ6bC5kZXN0aW5hdGlvbklkfSxnW2wuaWRdPSEwKSl9KGYuZ2FEYXRhfHxmLmFkRGF0YSkmJklMKE5MLGUsdm9pZCAwLGQpKGUub2UsZixlLm9wdGlvbnMpfX0sS0w9ZnVuY3Rpb24oYSxiKXthLmRtYT0kdCgpO2F1KCkmJihhLmRtYUNwcz1adCgpKTtTdChiKT9hLm5wYT0iMCI6YS5ucGE9IjEifSxJTD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1BO2lmKGVbYS5mdW5jdGlvbk5hbWVdKXJldHVybiBiLnJvJiZiZChiLnJvKSxlW2EuZnVuY3Rpb25OYW1lXTsKdmFyIGY9T0woKTtlW2EuZnVuY3Rpb25OYW1lXT1mO2lmKGEuYWRkaXRpb25hbFF1ZXVlcylmb3IodmFyIGc9MDtnPGEuYWRkaXRpb25hbFF1ZXVlcy5sZW5ndGg7ZysrKWVbYS5hZGRpdGlvbmFsUXVldWVzW2ddXT1lW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV18fE9MKCk7YS5pZEtleSYmZVthLmlkS2V5XT09PXZvaWQgMCYmKGVbYS5pZEtleV09Yyk7Wm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDowLGV2ZW50SWQ6ZD09bnVsbD92b2lkIDA6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZD09bnVsbD92b2lkIDA6ZC5wcmlvcml0eUlkfSxkQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixhLnNjcmlwdFVybCksYi5ybyxiLnR2KTtyZXR1cm4gZn0sT0w9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7YS5xPWEucXx8W107YS5xLnB1c2goYXJndW1lbnRzKX1yZXR1cm4gYX0sSkw9e2Z1bmN0aW9uTmFtZToiX2dvb2dXY21JbXBsIixpZEtleToiX2dvb2dXY21BayIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vd2NtL2xvYWRlci5qcyJ9LApMTD17ZnVuY3Rpb25OYW1lOiJfZ2FQaG9uZUltcGwiLGlkS2V5OiJnYV93cGlkIixzY3JpcHRVcmw6Ind3dy5nc3RhdGljLmNvbS9nYXBob25lL2xvYWRlci5qcyJ9LFBMPXtZbzpMZigyKSxncjoiNSJ9LE5MPXtmdW5jdGlvbk5hbWU6Il9nb29nQ2FsbFRyYWNraW5nSW1wbCIsYWRkaXRpb25hbFF1ZXVlczpbTEwuZnVuY3Rpb25OYW1lLEpMLmZ1bmN0aW9uTmFtZV0sc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vY2FsbC10cmFja2luZy9jYWxsLXRyYWNraW5nXyIrKFBMLllvfHxQTC5ncikrIi5qcyJ9O3ZhciBRTD1mdW5jdGlvbihhKXtRKGEsSC5KLnNhKXx8TUwoYS50YXJnZXQsYS5NKTthLmlzQWJvcnRlZD0hMH07dmFyIFJMPWZ1bmN0aW9uKGEpe1hvKEYuRC5rYSkmJmN4KGEpfTt2YXIgU0w9ZnVuY3Rpb24oYSl7dmFyIGI9WG8oRi5ELmthKT9taigicHNjZGwiKToiZGVuaWVkIjtiIT1udWxsJiZVKGEsRi5ELmpoLGIpfTt2YXIgVEw9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9fTt2YXIgVUw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLk07aWYoYj09PXZvaWQgMD8wOmIpe3ZhciBkPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSk7WWIoZCkmJlUoYSxGLkQuTGksWWIoZCkpfXZhciBlPU9vKGZEKEYuRC5PYSkpLGY9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDEsZSksZz1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EsMiksaD1ZYihuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxUTC5IKSksIi4iKSxsPVliKGcsIi4iKTtoJiZVKGEsRi5ELlhjLGgpO2wmJlUoYSxGLkQuVmMsbCl9O3ZhciBWTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLnRxKTtiJiZVKGEsRi5ELklsLGIpfTtmdW5jdGlvbiBXTChhKXt2YXIgYj1LQighMSk7aWYoYiE9bnVsbCYmYi5zdGF0dXMpe3ZhciBjPXtndGI6Yi5zdGF0dXN9O2IuZGVsYXkmJihjLmd0YmQ9Yi5kZWxheSk7YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLGMpfX07dmFyIFhMPWZ1bmN0aW9uKGEpe3ptKCk9PT0iVVMtQ08iJiZVKGEsRi5ELkxlLDEpfTt2YXIgWUw9e1JhOntDazoxLHpuOjIsSG46MyxJbjo0LEpuOjUsd246Nn19O1lMLlJhW1lMLlJhLkNrXT0iQURPQkVfQ09NTUVSQ0UiO1lMLlJhW1lMLlJhLnpuXT0iU1FVQVJFU1BBQ0UiO1lMLlJhW1lMLlJhLkhuXT0iV09PX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS5Jbl09IldPT19DT01NRVJDRV9MRUdBQ1kiO1lMLlJhW1lMLlJhLkpuXT0iV09SRF9QUkVTUyI7WUwuUmFbWUwuUmEud25dPSJTSE9QSUZZIjtmdW5jdGlvbiBaTChhKXt2YXIgYj1BO3JldHVybiBLaihiLmVzY2FwZShiLmF0b2IoYSkpKX0KZnVuY3Rpb24gJEwoKXt0cnl7aWYoIU0oNDk4KSYmIU0oNDI1KSlyZXR1cm5bXTt2YXIgYT1ubShqbS5iYS5sbik7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYTt2YXIgYj1bXSxjO2E6e3RyeXtjPSEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbZGF0YS1yZXF1aXJlbW9kdWxlXj0ibWFnZS8iXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWM9ITF9YyYmYi5wdXNoKFlMLlJhLkNrKTt2YXIgZDthOnt0cnl7dmFyIGU9WkwoIllYTnpaWFJ6TG5OeGRXRnlaWE53WVdObExtTnZiUzg9Iik7ZD1lPyEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjXj0iLy8nK2UrJyJdJyk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9ZD0hMX1kJiZiLnB1c2goWUwuUmEuem4pO3ZhciBmO2E6e2lmKE0oNDI1KSl0cnl7dmFyIGc9WkwoImMyaHZjR2xtZVM1amIyMD0iKSxoPVpMKCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSIpO2Y9ZyYmaD8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9ImNkbi4nK2crJyJdLG1ldGFbcHJvcGVydHk9Im9nOmltYWdlIl1bY29udGVudCo9ImNkbi4nKwooZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iY2RuLicpKyhnKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJmb250cy4nKSsoaCsnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iaXRlcmFibGUtc2hvcGlmeSJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9InYuJykrKGcrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWY9ITF9ZiYmYi5wdXNoKFlMLlJhLnduKTt2YXIgbDthOnt0cnl7bD0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9Indvb2NvbW1lcmNlIl0sbGlua1tocmVmKj0id29vY29tbWVyY2UiXSxbY2xhc3N8PSJ3b29jb21tZXJjZSJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9bD0hMX1sJiZiLnB1c2goWUwuUmEuSW4pO3ZhciBuO2E6e3RyeXt2YXIgcCxxPSgocD1CLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6cC5ob3N0bmFtZSl8fCIiLHIsdD0oKHI9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnIub3JpZ2luKXx8CiIiLHU9WkwoIkxuZHZjbVJ3Y21WemN5NWpiMjA9Iiksdj1aTCgiTHk5ekxuY3ViM0puIik7bj11JiZ2P1RiKHEsdSl8fCEhQi5xdWVyeVNlbGVjdG9yKCdbc3JjXj0iJyt0Kycvd3AtY29udGVudCJdLG1ldGFbbmFtZT0iZ2VuZXJhdG9yIl1bY29udGVudF49IldvcmRQcmVzcyAiXSxsaW5rW3JlbD0iZG5zLXByZWZldGNoIl1baHJlZj0iJysodisnIl0nKSk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9bj0hMX1uJiZiLnB1c2goWUwuUmEuSm4pO3ZhciB4O2E6e3RyeXt4PSEhQi5xdWVyeVNlbGVjdG9yKCdbY2xhc3MqPSJ3b29jb21tZXJjZSJdLG1ldGFbbmFtZT0iZ2VuZXJhdG9yIl1bY29udGVudF49Ildvb0NvbW1lcmNlICJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9eD0hMX14JiZiLnB1c2goWUwuUmEuSG4pO1VCKCkmJm1tKGptLmJhLmxuLGIpO3JldHVybiBifWNhdGNoKHkpe31yZXR1cm5bXX07ZnVuY3Rpb24gd00oYSl7aWYoTSg0MjUpJiZRKGEsSC5KLkZjKSl7dmFyIGI9TmYoNjcsMTUwMCksYz1hLm1lcmdlSGl0RGF0YUZvcktleSxkPUYuRC5UYSxlPXt9O2MuY2FsbChhLGQsZSl9fTt2YXIgeE09InBsYXRmb3JtIHBsYXRmb3JtVmVyc2lvbiBhcmNoaXRlY3R1cmUgbW9kZWwgdWFGdWxsVmVyc2lvbiBiaXRuZXNzIGZ1bGxWZXJzaW9uTGlzdCB3b3c2NCIuc3BsaXQoIiAiKTtmdW5jdGlvbiB5TShhKXt2YXIgYjtyZXR1cm4oYj1hLmdvb2dsZV90YWdfZGF0YSkhPW51bGw/YjphLmdvb2dsZV90YWdfZGF0YT17fX1mdW5jdGlvbiB6TShhKXt2YXIgYixjO3JldHVybihjPShiPWEuZ29vZ2xlX3RhZ19kYXRhKT09bnVsbD92b2lkIDA6Yi51YWNoX3Byb21pc2UpIT1udWxsP2M6bnVsbH1mdW5jdGlvbiBBTShhKXt2YXIgYixjO3JldHVybiB0eXBlb2YoKGI9YS5uYXZpZ2F0b3IpPT1udWxsP3ZvaWQgMDooYz1iLnVzZXJBZ2VudERhdGEpPT1udWxsP3ZvaWQgMDpjLmdldEhpZ2hFbnRyb3B5VmFsdWVzKT09PSJmdW5jdGlvbiJ9CmZ1bmN0aW9uIEJNKGEpe2lmKCFBTShhKSlyZXR1cm4gbnVsbDt2YXIgYj15TShhKTtpZihiLnVhY2hfcHJvbWlzZSlyZXR1cm4gYi51YWNoX3Byb21pc2U7dmFyIGM9YS5uYXZpZ2F0b3IudXNlckFnZW50RGF0YS5nZXRIaWdoRW50cm9weVZhbHVlcyh4TSkudGhlbihmdW5jdGlvbihkKXtiLnVhY2ghPW51bGx8fChiLnVhY2g9ZCk7cmV0dXJuIGR9KTtyZXR1cm4gYi51YWNoX3Byb21pc2U9Y307CnZhciBDTT1mdW5jdGlvbigpe3RoaXMud2luZG93PUE7dGhpcy5OPU5ifTtDTS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe2lmKEFNKHRoaXMud2luZG93KSYmKHRoaXMuWj10aGlzLk4oKSwhek0odGhpcy53aW5kb3cpKSl7dmFyIGE9Qk0odGhpcy53aW5kb3cpO2EmJmEudGhlbihmdW5jdGlvbigpe1AoOTUpfSkuY2F0Y2goZnVuY3Rpb24oKXtQKDk2KX0pfX07Q00ucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLndpbmRvdy5nb29nbGVfdGFnX2RhdGEsYjtpZihhIT1udWxsJiZhLnVhY2gpe3ZhciBjPWEudWFjaCxkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7Yy5mdWxsVmVyc2lvbkxpc3QmJihkLmZ1bGxWZXJzaW9uTGlzdD1jLmZ1bGxWZXJzaW9uTGlzdC5zbGljZSgwKSk7Yj1kfWVsc2UgYj1udWxsO3JldHVybiBifTtDTS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPXRoaXMsZD1mdW5jdGlvbihoLGwpe3RyeXthKGgsbCl9Y2F0Y2gobil7fX0sCmU9dGhpcy5IKCk7aWYoZSlkKGUpO2Vsc2V7dmFyIGY9ek0odGhpcy53aW5kb3cpO2lmKGYpe2I9TWF0aC5taW4oTWF0aC5tYXgoaXNGaW5pdGUoYik/YjowLDApLDFFMyk7dmFyIGc9dGhpcy53aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2QuS2d8fChkLktnPSEwLFAoMTA2KSxkKG51bGwsRXJyb3IoIlRpbWVvdXQiKSkpfSxiKTtmLnRoZW4oZnVuY3Rpb24oaCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDQpLGMud2luZG93LmNsZWFyVGltZW91dChnKSxkKGgpKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA1KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChudWxsLGgpKX0pfWVsc2UgZChudWxsKX19O0NNLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWiE9PXZvaWQgMH07dmFyIERNPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwP0E6YTtyZXR1cm4gQU0oYSl9LEVNPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2JbRi5ELmNnXT1hLmFyY2hpdGVjdHVyZTsKYltGLkQuZGddPWEuYml0bmVzczthLmZ1bGxWZXJzaW9uTGlzdCYmKGJbRi5ELmVnXT1hLmZ1bGxWZXJzaW9uTGlzdC5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChjLmJyYW5kfHwiIikrIjsiK2VuY29kZVVSSUNvbXBvbmVudChjLnZlcnNpb258fCIiKX0pLmpvaW4oInwiKSk7YltGLkQuZmddPWEubW9iaWxlPyIxIjoiMCI7YltGLkQuZ2ddPWEubW9kZWw7YltGLkQuaGddPWEucGxhdGZvcm07YltGLkQuaWddPWEucGxhdGZvcm1WZXJzaW9uO2JbRi5ELmpnXT1hLndvdzY0PyIxIjoiMCI7cmV0dXJuIGJ9LEZNPW5ldyBDTTt2YXIgR009ZnVuY3Rpb24oYSl7aWYoIURNKCkpUCg4Nyk7ZWxzZSBpZihGTS5LKCkpe1AoODUpO3ZhciBiPUZNLkgoKTtpZihiKXtpZihiKWZvcih2YXIgYz1FTShiKSxkPW0oT2JqZWN0LmtleXMoYykpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO1UoYSxmLGNbZl0pfX1lbHNlIFAoODYpfX07ZnVuY3Rpb24gSE0oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1RKGEsSC5KLnNnKSxkPWRJKGEsImN1c3RvbV9ldmVudF9hY2NlcHRfcnVsZXMiLCExKSYmIWI7aWYoYyl7dmFyIGU9Yy5pbmRleE9mKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpPj0wLGY9ITA7UShhLEguSi5DYykmJihmPVEoYSxILkouTmIpPT09dmsoKSk7ZSYmZj9WKGEsSC5KLmtpLCEwKTooVihhLEguSi5raSwhMSksZHx8KGEuaXNBYm9ydGVkPSEwKSk7aWYoYS5jYW5CZUFjY2VwdGVkKCkpe3ZhciBnPXVrKCkuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxoPSExO2lmKCFnKXt2YXIgbCxuPShsPW5rKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6bC5jYW5vbmljYWxDb250YWluZXJJZDtuJiYoaD12aygpPT09bil9Z3x8aD9RKGEsSC5KLmtpKSYmYS5hY2NlcHQoKTphLmlzQWJvcnRlZD0hMH1lbHNlIGEuaXNBYm9ydGVkPSEwfX07dmFyIElNPWZ1bmN0aW9uKGEpe3ZhciBiPU8oYS5NLEYuRC5aYyksYz1PKGEuTSxGLkQuWWMpO2ImJiFjPyhhLmV2ZW50TmFtZSE9PUYuRC53YSYmYS5ldmVudE5hbWUhPT1GLkQueWYmJlAoMTMxKSxhLmlzQWJvcnRlZD0hMCk6IWImJmMmJihQKDEzMiksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgSk09ZnVuY3Rpb24oYSl7aWYoYS5ldmVudE5hbWU9PT1GLkQud2Epe3ZhciBiPUlmKDExKSxjPVEoYSxILkouSHEpOyEoIU0oNTUwKSYmYnx8Yyl8fGEudGFyZ2V0LkpjKCl8fFlHKCJpZGNfY29uZmlnX3B2IixhLnRhcmdldC5kZXN0aW5hdGlvbklkKXx8KGEuaXNBYm9ydGVkPSEwKX19O3ZhciBMTT1mdW5jdGlvbihhLGIpe0tNLk4oYSxiKX0sTU09ZnVuY3Rpb24oKXt0aGlzLkg9e319O01NLnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdO2N8fChjPXRoaXMuSFthXT1bXSk7Yy5wdXNoKGIpfTtNTS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLkhbYS50YXJnZXQuZGVzdGluYXRpb25JZF07aWYoIWEuaXNBYm9ydGVkJiZiKWZvcih2YXIgYz1mSShhKSxkPTA7ZDxiLmxlbmd0aDsrK2Qpe3RyeXtiW2RdKGMpfWNhdGNoKGUpe2EuaXNBYm9ydGVkPSEwfWlmKGEuaXNBYm9ydGVkKWJyZWFrfX07dmFyIEtNPW5ldyBNTTt2YXIgTk09ZnVuY3Rpb24oYSl7S00uSyhhKTt9O3ZhciBPTT1mdW5jdGlvbihhKXthJiYoQXAoNDk1LGEpLEFwKDU2NyxhKSxBcCg0NTAsYSksQXAoNDQzLGEpLEFwKDU4NyxhKSxBcCg1NzYsYSksQXAoNTcwLGEpLEFwKDU4MSxhKSxBcCg2MDIsYSkpfSxQTT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLndmKSYmWG8oZnApKXt2YXIgYj1RKGEsSC5KLkdhKSxjPVEoYSxILkouZGEpIT09WC5WLnViJiZRKGEsSC5KLmRhKSE9PVguVi5PYiYmUShhLEguSi5kYSkhPT1YLlYuRmImJmEuZXZlbnROYW1lIT09Ri5ELkpiO0h2KGIsYyk7dmFyIGQ9RHZbR3YoYi5wcmVmaXgpXTtPTShkKTtVKGEsRi5ELkVkLGQpfX07ZnVuY3Rpb24gUU0oKXtyZXR1cm4ga2ooImRlZHVwZV9nY2xpZCIsZnVuY3Rpb24oKXtyZXR1cm4gQXYoKX0pfTt2YXIgUk09L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9dD8pPyQvLFNNPS9ed3d3Lmdvb2dsZWFkc2VydmljZXMuY29tJC87ZnVuY3Rpb24gVE0oYSl7YXx8KGE9VU0oKSk7cmV0dXJuIGEuTnQ/ITE6YS5uc3x8YS5xc3x8YS52c3x8YS5yc3x8YS5EZ3x8YS5UaHx8YS5Ucnx8YS5WaD09PSJhdy5kcyJ8fE0oMjM1KSYmYS5WaD09PSJhdy5kdiJ8fGEuWXI/ITA6ITF9CmZ1bmN0aW9uIFVNKCl7dmFyIGE9e30sYj1VcSghMCk7YS5OdD0hIWIuX3VwO3ZhciBjPWVzKCksZD1hdCgpO2EubnM9Yy5hdyE9PXZvaWQgMDthLnFzPWMuZGMhPT12b2lkIDA7YS52cz1jLndicmFpZCE9PXZvaWQgMDthLnJzPWMuZ2JyYWlkIT09dm9pZCAwO2EuVmg9dHlwZW9mIGMuZ2Nsc3JjPT09InN0cmluZyI/Yy5nY2xzcmM6dm9pZCAwO2EuRGc9ZC5EZzthLlRoPWQuVGg7dmFyIGU9Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiO2EuWXI9Uk0udGVzdChlKTthLlRyPVNNLnRlc3QoZSk7cmV0dXJuIGF9O2Z1bmN0aW9uIFZNKCl7dmFyIGE9QS5fX3VzcGFwaTtpZih5YihhKSl7dmFyIGI9IiI7dHJ5e2EoImdldFVTUERhdGEiLDEsZnVuY3Rpb24oYyxkKXtpZihkJiZjKXt2YXIgZT1jLnVzcFN0cmluZztlJiZSZWdFeHAoIl5bXFxkYS16QS1aLV17MSwyMH0kIikudGVzdChlKSYmKGI9ZSl9fSl9Y2F0Y2goYyl7fXJldHVybiBifX07CnZhciBXTT1mdW5jdGlvbihhKXt2YXIgYj1YbyhmcCk7VihhLEguSi5ZZSxPKGEuTSxGLkQubWIpIT1udWxsJiZPKGEuTSxGLkQubWIpIT09ITEmJiFiKTt2YXIgYz1RKGEsSC5KLmRqKSxkPU8oYS5NLEYuRC51YykhPT0hMSxlPUxLKGEpO2R8fFUoYSxGLkQuSGQsIjEiKTt2YXIgZj1IcihlLnByZWZpeCksZz1RKGEsSC5KLnNhKXx8UShhLEguSi51Zyl8fFEoYSxILkouV2UpO2N8fGd8fFUoYSwiXyZhcHZjIiwiMCIpO2EuTS5pc0d0bUV2ZW50JiZVKGEsRi5ELklsLCJnIik7VShhLEYuRC5FZCk7VShhLEYuRC5NYik7aWYoYiYmKFUoYSxGLkQuTWIseUwoKSksZCkpe0h2KGUpO3ZhciBoPUR2W0d2KGUucHJlZml4KV07VShhLEYuRC5FZCxoKTtPTShoKX1pZihhLmV2ZW50TmFtZT09PUYuRC53YSYmIWcpe3ZhciBsPU8oYS5NLEYuRC56Yyksbj1PKGEuTSxGLkQuRGIpfHx7fTtQSyh7VG46ZCxtbzpuLFFvOmwsVW46ZX0pOyFjJiZZcyhmKSYmKFYoYSxILkoudmQsITApLFUoYSwiXyZhcHZjIiwKIjEiKSl9aWYoYylhLmlzQWJvcnRlZD0hMDtlbHNle2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQmJlUoYSxGLkQuUWUsYS50YXJnZXQuZGVzdGluYXRpb25JZCk7VShhLEYuRC5VYixhLmV2ZW50TmFtZSk7YS5ldmVudE5hbWU9PT1GLkQud2EmJlUoYSxGLkQuVWIsRi5ELnNjKTtpZihRKGEsSC5KLnNhKSlVKGEsRi5ELlViLEYuRC53cCksVShhLEYuRC5zYSwiMSIpO2Vsc2UgaWYoUShhLEguSi51ZykpVShhLEYuRC5VYixGLkQuSHApO2Vsc2UgaWYoUShhLEguSi5XZSkpVShhLEYuRC5VYixGLkQuRXApO2Vsc2V7dmFyIHA9ZXMoKTtVKGEsRi5ELkRkLHAuZ2NsaWQpO1UoYSxGLkQuS2QscC5kY2xpZCk7VShhLEYuRC5BbCxwLmdjbHNyYyk7aWYoIVIoYSxGLkQuRGQpJiYhUihhLEYuRC5LZCl8fE0oNDIxKSlVKGEsRi5ELkVlLHAud2JyYWlkKSxVKGEsRi5ELkJmLHAuZ2JyYWlkKTt2YXIgcT1NKDU4OSkscj1mdW5jdGlvbihmYSl7cmV0dXJuIGZhLnJlcGxhY2UoL1tcPyNdLiokLywiIil9LAp0PSEhTyhhLk0sRi5ELnphKSx1PXE/dD9mdW5jdGlvbihmYSl7cmV0dXJuIHhMKHIoZmEpKX06ZnVuY3Rpb24oZmEpe3JldHVybiB4TChmYS5yZXBsYWNlKC8jLiokLywiIikpfTpyLHY9YnQodSk7VShhLEYuRC56YSx2KTt2YXIgeD0hIU8oYS5NLEYuRC5VYSkseT1CLnJlZmVycmVyO1UoYSxGLkQuVWEscT94P3IoeSk6eS5yZXBsYWNlKC8jLiokLywiIik6Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiKTt3TChhLHYsdSwhMCk7aWYoS2Mpe3ZhciB6PUxqKFJqKEtjKSwiaG9zdCIpO3omJlUoYSxGLkQuYm0seil9aWYoIVEoYSxILkouV2UpKXt2YXIgQz1hdCgpO1UoYSxGLkQuemYsQy5EZyk7VShhLEYuRC5BZixDLlNyKX12YXIgRD1VTSgpO1RNKEQpJiZVKGEsRi5ELlBkLCIxIik7VShhLEYuRC5EbCxRTSgpKTtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELlFsLCIxIil9d28uSD0hMDtVKGEsRi5ELlNiKTtVKGEsRi5ELmxiKTtpZihNKDQyMSkpe3ZhciBJPUZyKGUpOwpJLmxlbmd0aD4wJiZVKGEsRi5ELlNiLEkuam9pbigiLiIpKTt2YXIgRz1EcihmKyJfYXciKTtHLmxlbmd0aD4wJiZVKGEsRi5ELmxiLEcuam9pbigiLiIpKX1lbHNlIGlmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpJiZXcyhmKSl7dmFyIE49RnIoZSk7Ti5sZW5ndGg+MCYmVShhLEYuRC5TYixOLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5FZSkmJmIpe3ZhciBTPURyKGYrIl9hdyIpO1MubGVuZ3RoPjAmJlUoYSxGLkQubGIsUy5qb2luKCIuIikpfVUoYSxGLkQuVWwscWQoKSk7YS5NLmlzR3RtRXZlbnQmJihhLk0uRWFbRi5ELlJjXT1mRChGLkQuUmMpKTtTdChhLk0pP1UoYSxGLkQuZGUsITEpOlUoYSxGLkQuZGUsITApO1YoYSxILkouQmssITApO3ZhciBXPVZNKCk7VyE9PXZvaWQgMCYmVShhLEYuRC5rZyxXfHwiZXJyb3IiKTt2YXIgZWE9THQoKTtlYSYmVShhLEYuRC5LZSxlYSk7dmFyIGphPUt0KCk7amEmJlUoYSxGLkQuT2UsamEpO1EoYSxILkouUGMpfHxWKGEsSC5KLkphLAohMSl9fTsKdmFyIFhNPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITA6YjtjPWM9PT12b2lkIDA/e306YztpZihhLmV2ZW50TmFtZT09PUYuRC5KYiYmIWEuTS5pc0d0bUV2ZW50KXt2YXIgZD1PKGEuTSxGLkQuU2YpO2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIiYmIVEoYSxILkouc2EpKXt2YXIgZT1TdHJpbmcoTyhhLk0sRi5ELlRmKSksZj1lO2NbZV0mJihmPWNbZV0pO3ZhciBnPVIoYSxmKXx8TyhhLk0sZSk7aWYoYil7aWYodHlwZW9mIGQ9PT0iZnVuY3Rpb24iKWlmKGU9PT1GLkQubGImJmchPT12b2lkIDApe3ZhciBoPWcuc3BsaXQoIi4iKTtoLmxlbmd0aD09PTA/ZCh2b2lkIDApOmgubGVuZ3RoPT09MT9kKGhbMF0pOmQoaCl9ZWxzZSBpZihlPT09Ri5ELnFxJiZNKDI1OCkpe3ZhciBsLG49e307WG8oZnApJiYobi5hdWlkPVIoYSxGLkQuRWQpKTt2YXIgcD1VTSgpO2lmKFRNKHApKW4uZ2FkX3NvdXJjZT1wLkRnLG4uZ2FkX2NhbXBhaWduaWQ9cC5UaCxuLnNlc3Npb25fc3RhcnRfdGltZV91c2VjPQooRGF0ZS5ub3coKSoxRTMpLnRvU3RyaW5nKCksbi5sYW5kaW5nX3BhZ2VfdXJsPUEubG9jYXRpb24uaHJlZixuLmxhbmRpbmdfcGFnZV9yZWZlcnJlcj1CLnJlZmVycmVyLG4ubGFuZGluZ19wYWdlX3VzZXJfYWdlbnQ9SGMudXNlckFnZW50O2Vsc2V7dmFyIHE9UShhLEguSi5HYSk7bi5nYWRfc291cmNlPVJzKHEucHJlZml4KS5FZ31sPWJ0b2EoSlNPTi5zdHJpbmdpZnkobikpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIik7ZChsKX1lbHNlIGQoZyl9ZWxzZSBkKGcpfWEuaXNBYm9ydGVkPSEwfX07dmFyIFlNPWZ1bmN0aW9uKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe2Zvcih2YXIgYj1bIl8mYXB2YyIsInRpZHMiLEYuRC5UYSxGLkQuUWksRi5ELlViLEYuRC5RZSxGLkQuVmMsRi5ELlhjXSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2lmKGU9PT1GLkQuemEpe3ZhciBmPVIoYSxlKTtmJiYoZj1mLnJlcGxhY2UoL1tcPyNdLiokLywiIikpO1UoYSxlLGYpfWVsc2UgYi5pbmNsdWRlcyhlKXx8VShhLGUpfVYoYSxILkouWGcpO1YoYSxILkouaGQpfX07ZnVuY3Rpb24gWk0oYSl7aWYoZm4uSylpZih3by5IPSEwLGEuZXZlbnROYW1lPT09Ri5ELndhKXpvKGEuTSxhLnRhcmdldC5pZCk7ZWxzZXtRKGEsSC5KLlBjKXx8KHdvLktbYS50YXJnZXQuaWRdPSEwKTt2YXIgYj1RKGEsSC5KLk5iKTtaQihiKX19O3ZhciAkTT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPWI9PT12b2lkIDA/e306YjtjPWYuU2o9PT12b2lkIDA/ITE6Zi5TajtkPWYuTWo9PT12b2lkIDA/ITE6Zi5NajtlPWYua289PT12b2lkIDA/ITE6Zi5rbztkfHwoYS5NLmlzR3RtRXZlbnQ/UShhLEguSi5kYSkhPT1YLlYueGEmJmEuZXZlbnROYW1lJiZVKGEsRi5ELlViLGEuZXZlbnROYW1lKTpVKGEsRi5ELlViLGEuZXZlbnROYW1lKSk7R2IoYS5NLkVhLGZ1bmN0aW9uKGcsaCl7TXpbZ118fGMmJkJvW2ddfHxlJiZPeltnXXx8VShhLGcsaCl9KX07dmFyIGFOPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1tKFtGLkQuUGEsRi5ELlFhLEYuRC5lYixGLkQuTmUsRi5ELkdlLEYuRC5VZCxGLkQuSWUsRi5ELlRjLEYuRC5MZCxGLkQua2gsRi5ELkZmLEYuRC5EZixGLkQuRWYsRi5ELkNmLEYuRC53aSxGLkQuU2QsRi5ELlFkLEYuRC5SZCxGLkQudGJdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhLmNvcHlUb0hpdERhdGEoYy52YWx1ZSl9O2Z1bmN0aW9uIGJOKGEsYil7cmV0dXJuIGtyKCJnc2lkX2RjIix7dmFsdWU6e2pvaW5JZDphLGxhc3RKb2luZWRUaW1lTXM6Yn0sZXhwaXJlczpiKzNFNX0pPT09MD8hMDohMX07CnZhciBjTj1mdW5jdGlvbihhKXtpZihYbyhmcCkpe3ZhciBiO2E6e3ZhciBjPW5yKCJnc2lkX2RjIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7aWYoZC52YWx1ZSYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGU9ZC52YWx1ZTtpZihlLmpvaW5JZCYmZS5sYXN0Sm9pbmVkVGltZU1zJiZ0eXBlb2YgZS5qb2luSWQ9PT0ic3RyaW5nIiYmdHlwZW9mIGUubGFzdEpvaW5lZFRpbWVNcz09PSJudW1iZXIiKXtiPWU7YnJlYWsgYX19fWI9dm9pZCAwfXZhciBmPWIsZz1mPT1udWxsP3ZvaWQgMDpmLmpvaW5JZCxoPU5iKCk7aWYoIWZ8fCFnfHxmLmxhc3RKb2luZWRUaW1lTXM8aC0zRTUpe3ZhciBsPWNjKCk7Zz1sJiZiTihsLE5iKCkpP2w6dm9pZCAwO2cmJlYoYSxILkouaGQsITApfWVsc2UgZyYmZi5sYXN0Sm9pbmVkVGltZU1zPGgtNkU0JiZiTihmLmpvaW5JZCxoKSYmVihhLEguSi5oZCwhMCk7ZyYmTSg0NzQpJiYKVihhLEguSi5YZyxnKX19O3ZhciBkTj1mdW5jdGlvbihhKXtWKGEsSC5KLndmLE8oYS5NLEYuRC51YykhPT0hMSk7VihhLEguSi5HYSxMSyhhKSk7VihhLEguSi5YZSxPKGEuTSxGLkQubWIpIT1udWxsJiZPKGEuTSxGLkQubWIpIT09ITEpO1YoYSxILkoud2QsU3QoYS5NKSl9O3ZhciBlTj17enE6e1V0OiJjZCIsZnA6ImNlIixWdDoiY2YiLFd0OiJjcGYiLFh0OiJjdSJ9fTt2YXIgZk49ZnVuY3Rpb24oYSl7dmFyIGI9ZU4uenEuZnAsYz1PKGEuTSxGLkQuQ2IpO1IoYSxGLkQuZWQpfHxVKGEsRi5ELmVkLHt9KTtSKGEsRi5ELmVkKVtiXT1jfTtmdW5jdGlvbiBnTihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSk7YyYmKFUoYSxGLkQuVmYsYyksYiYmdWIoKSl9O3ZhciBoTj1mdW5jdGlvbihhKXt2YXIgYj1hLk0uZ2V0TWVyZ2VkVmFsdWVzKEYuRC5UYSk7YiYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLGIpfTt2YXIgaU49ZnVuY3Rpb24oYSl7dmFyIGI9T3AoITEpO1UoYSxGLkQuTWUsYil9O3ZhciBqTj1mdW5jdGlvbihhKXtRKGEsSC5KLndkKT9VKGEsRi5ELmRlLCIwIik6VShhLEYuRC5kZSwiMSIpfTt2YXIga049ZnVuY3Rpb24oYSxiKXtpZihiPT09dm9pZCAwfHxiKXt2YXIgYz1WTSgpO2MhPT12b2lkIDAmJlUoYSxGLkQua2csY3x8ImVycm9yIil9dmFyIGQ9THQoKTtkJiZVKGEsRi5ELktlLGQpO3ZhciBlPUt0KCk7ZSYmVShhLEYuRC5PZSxlKX07dmFyIGxOPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLmtqKSxjPUUoNSk7YiYmYltjXSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtyZXRyeToiMSJ9KX07dmFyIG1OPWZ1bmN0aW9uKGEpe1VxKCExKS5fdXA9PT0iMSImJlUoYSxGLkQuS2ksIjEiKX07CnZhciBuTj1mdW5jdGlvbihhLGIsYyl7aWYoYSE9PXZvaWQgMClyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLm1hcChmdW5jdGlvbigpe3JldHVybnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSk6e21vZGU6Im0iLGxvY2F0aW9uOmIsc2VsZWN0b3I6Y319LG9OPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFjKXJldHVybiExO2Zvcih2YXIgZT1TdHJpbmcoYy52YWx1ZSksZixnPXZvaWQgMCxoPWUucmVwbGFjZSgvXFsiPyc/L2csIi4iKS5yZXBsYWNlKC8iPyc/XF0vZywiIikuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIHUudHJpbSgpfSkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1JiYhU2IodSwiIyIpJiYhU2IodSwiLiIpfSksbD0wO2w8aC5sZW5ndGg7bCsrKXt2YXIgbj1oW2xdO2lmKFNiKG4sImRhdGFMYXllci4iKSlmPXVBKG4uc3Vic3RyaW5nKDEwKSksZz1uTihmLCJkIixuKTtlbHNle3ZhciBwPW4uc3BsaXQoIi4iKTtmPUFbcC5zaGlmdCgpXTsKZm9yKHZhciBxPTA7cTxwLmxlbmd0aDtxKyspZj1mJiZmW3BbcV1dO2c9bk4oZiwiaiIsbil9aWYoZiE9PXZvaWQgMClicmVha31pZihmPT09dm9pZCAwKXRyeXt2YXIgcj1CLnF1ZXJ5U2VsZWN0b3JBbGwoZSk7aWYociYmci5sZW5ndGg+MCl7Zj1bXTtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoJiZ0PChiPT09ImVtYWlsInx8Yj09PSJwaG9uZV9udW1iZXIiPzU6MSk7dCsrKWYucHVzaChmZChyW3RdKXx8TGIoclt0XS52YWx1ZSkpO2Y9Zi5sZW5ndGg9PT0xP2ZbMF06ZjtnPW5OKGYsImMiLGUpfX1jYXRjaCh1KXtQKDE0OSl9cmV0dXJuIGY/KGFbYl09ZixkJiZnJiYoZFtiXT1nKSwhMCk6ITF9Owp2YXIgcE49ZnVuY3Rpb24oYSl7aWYoZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSkmJlhvKGZwKSl7dmFyIGI9YS5NLmliW0YuRC5sbV07aWYoQ2QoYikmJmIuZW5hYmxlX2NvZGUpe3ZhciBjPU8oYS5NLEYuRC5BYyk7aWYoYz09PW51bGwpVihhLEguSi5HbixudWxsKTtlbHNlIGlmKGIuZW5hYmxlX2NvZGUmJkNkKGMpJiYoWnYoYyksVihhLEguSi5HbixjKSksQ2QoYi5zZWxlY3RvcnMpKXt2YXIgZD1ILkouaXIsZTt2YXIgZj1iLnNlbGVjdG9ycyxnPU0oNTIzKTtnPWc9PT12b2lkIDA/ITE6ZztpZihmKXt2YXIgaD17fSxsPSExLG49e307bD1vTihoLCJlbWFpbCIsZi5lbWFpbCxuKXx8bDtsPW9OKGgsInBob25lX251bWJlciIsZi5waG9uZSxuKXx8bDtoLmFkZHJlc3M9W107Zm9yKHZhciBwPWYubmFtZV9hbmRfYWRkcmVzc3x8W10scT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj17fSx0PXt9O2w9b04ociwiZmlyc3RfbmFtZSIscFtxXS5maXJzdF9uYW1lLHQpfHxsO2w9b04ociwKImxhc3RfbmFtZSIscFtxXS5sYXN0X25hbWUsdCl8fGw7bD1vTihyLCJzdHJlZXQiLHBbcV0uc3RyZWV0LHQpfHxsO2w9b04ociwiY2l0eSIscFtxXS5jaXR5LHQpfHxsO2w9b04ociwicmVnaW9uIixwW3FdLnJlZ2lvbix0KXx8bDtsPW9OKHIsImNvdW50cnkiLHBbcV0uY291bnRyeSx0KXx8bDtsPW9OKHIsInBvc3RhbF9jb2RlIixwW3FdLnBvc3RhbF9jb2RlLHQpfHxsO2guYWRkcmVzcy5wdXNoKHIpO2cmJihyLl90YWdfbWV0YWRhdGE9dCl9ZyYmKGguX3RhZ19tZXRhZGF0YT1uKTtlPWw/aDp2b2lkIDB9ZWxzZSBlPXZvaWQgMDtWKGEsZCxlKX19fX07CnZhciBxTj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihlKXtVTChlLCEwKX0sYz1mdW5jdGlvbihlKXtwTihlKX0sZD1mdW5jdGlvbihlKXskTShlLHtTajohMCxNajohMH0pfTtzd2l0Y2goYSl7Y2FzZSBYLlYuUWs6cmV0dXJuW1BGLEFMLE1GLEhNLEpNLElNXTtjYXNlIFguVi5LYTpyZXR1cm5bZk4sWEwsWk0saU4sY04sV00sZCxTSyxhTixHTCxiLHdNLGxOLGhOLFZMLG9MLE5NLGZ1bmN0aW9uKGUpe2dOKGUsITEpfSxXTCxZTSxwTF07Y2FzZSBYLlYuTWs6cmV0dXJuW1pNLFFMXTtjYXNlIFguVi54YTpyZXR1cm5bVUssWEwsWk0sZE4sdkwsdEwsJE0sU0ssaU4sVkwsekwsR0wsYixxTCxGTCxCTCxFTCx1TCxqTixvTCxrTixtTixMRixjLGZOLFNMLGxOLGhOLFBNLFhNLEdNLE5NLFRLLERMLFFLLFJMLGdOLFdMLHBMXTtjYXNlIFguVi51YjpyZXR1cm5bWEwsWk0sZE4sdkwsJE0sU0ssaU4sekwsR0wsYixWTCxxTCxFTCx1TCxqTixvTCxrTixMRixTTCxmTixsTixoTixQTSxHTSwKTk0sVEssZ04sV0wscExdO2Nhc2UgWC5WLk9iOnJldHVybltYTCxaTSxkTix2TCxTSyxHTCxiLGpOLG9MLGlOLExGLGMsU0wsZk4sbE4saE4sVkwsUE0sR00sTk0sVEssZ04sV0wscExdO2Nhc2UgWC5WLkZiOnJldHVybltYTCxaTSxkTix2TCxTSyxHTCxiLGpOLG9MLGlOLFZMLExGLGMsU0wsZk4sbE4saE4sUE0sR00sTk0sVEssQ0wsZ04sV0wscExdO2RlZmF1bHQ6cmV0dXJuW119fSxyTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9cU4oUShhLEguSi5kYSkpLGM9MDtjPGIubGVuZ3RoJiYoYltjXShhKSwhYS5pc0Fib3J0ZWQpO2MrKyk7fSxzTj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgYUkoYi50YXJnZXQsYi5ldmVudE5hbWUsYi5NKSxkPW0oZXUoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO1UoYyxmLFIoYixmKSl9Zm9yKHZhciBnPW0oT2JqZWN0LmtleXMoYi5tZXRhZGF0YSkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD0KaC52YWx1ZTtWKGMsbCxRKGIsbCkpfVYoYyxILkouZGEsYSk7cmV0dXJuIGN9LHROPWZ1bmN0aW9uKGEsYixjLGQpe2Z1bmN0aW9uIGUodSx2KXtmb3IodmFyIHg9bShsKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6LmlzQWJvcnRlZD0hMTtWKHosSC5KLkphLCEwKTtWKHosSC5KLnNhLCEwKTtWKHosSC5KLkViLE5iKCkpO1YoeixILkoudWYsdSk7Vih6LEguSi52Zix2KX19ZnVuY3Rpb24gZih1KXtmb3IodmFyIHY9e30seD0wO3g8bC5sZW5ndGg7dj17VmE6dm9pZCAwfSx4KyspaWYodi5WYT1sW3hdLCF1fHx1KFEodi5WYSxILkouZGEpKSlpZighUSh2LlZhLEguSi5zYSl8fFEodi5WYSxILkouZGEpIT09WC5WLkthfHxRKHYuVmEsSC5KLnZkKSlpZighUSh2LlZhLEguSi5zYSl8fFEodi5WYSxILkouZGEpPT09WC5WLkthfHxYbyhyKSlyTihsW3hdKSxRKHYuVmEsSC5KLkphKXx8di5WYS5pc0Fib3J0ZWR8fFEodi5WYSxILkouZGEpIT09WC5WLkthfHwKIVEodi5WYSxILkoudmQpfHwoTUsodi5WYSxmdW5jdGlvbigpe2YoZnVuY3Rpb24oeSl7cmV0dXJuIHk9PT1YLlYuS2F9KX0pLFIodi5WYSxGLkQuWmYpPT09dm9pZCAwJiZ0PT09dm9pZCAwJiYodD1wbShqbS5iYS5zaixmdW5jdGlvbih5KXtyZXR1cm4gZnVuY3Rpb24oKXtxbShqbS5iYS5zaix0KTt0PXZvaWQgMDtYbyhGLkQubWEpJiYoVih5LlZhLEguSi51ZywhMCksVih5LlZhLEguSi5zYSwhMSksVSh5LlZhLEYuRC5zYSksZihmdW5jdGlvbih6KXtyZXR1cm4gej09PVguVi5LYX0pLFYoeS5WYSxILkoudWcsITEpKX19KHYpKSkpfXZhciBnPWQuaXNHdG1FdmVudCYmYT09PSIiP3tpZDoiIixwcmVmaXg6IiIsZGVzdGluYXRpb25JZDoiIixpZHM6W10sSmM6ZnVuY3Rpb24oKXtyZXR1cm4hMX19OmJDKGEsZC5pc0d0bUV2ZW50KTtpZihnKXt2YXIgaD1uZXcgYUkoZyxiLGQpO1YoaCxILkouZGEsWC5WLlFrKTtyTihoKTtpZighaC5pc0Fib3J0ZWQpe3ZhciBsPVtdO2lmKGQuZXZlbnRNZXRhZGF0YVtILkouRGNdKXt2YXIgbj0KZC5ldmVudE1ldGFkYXRhW0guSi5EY107QXJyYXkuaXNBcnJheShuKXx8KG49W25dKTtmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9c04obltwXSxoKTtNKDQ4OCl8fFYocSxILkouSmEsITEpO2wucHVzaChxKX19ZWxzZSBiPT09Ri5ELndhJiZsLnB1c2goc04oWC5WLk1rLGgpKSxiIT09Ri5ELkpiJiZsLnB1c2goc04oWC5WLkthLGgpKSxsLnB1c2goc04oWC5WLnhhLGgpKSxiIT09Ri5ELkpiJiYobC5wdXNoKHNOKFguVi5PYixoKSksbC5wdXNoKHNOKFguVi5GYixoKSksbC5wdXNoKHNOKFguVi51YixoKSkpO3ZhciByPVtGLkQua2EsRi5ELm1hXSx0PXZvaWQgMDticChmdW5jdGlvbigpe2YoKTt2YXIgdT0hWG8oW0YuRC5YYV0pO2lmKCFYbyhyKXx8dSl7dmFyIHY9cjt1JiYodj1bXS5jb25jYXQodyh2KSxbRi5ELlhhXSkpO2FwKGZ1bmN0aW9uKHgpe3ZhciB5LHosQzt5PXguY29uc2VudEV2ZW50SWQ7ej14LmNvbnNlbnRQcmlvcml0eUlkO0M9eC5jb25zZW50VHlwZXM7CmUoeSx6KTtDJiZDLmxlbmd0aD09PTEmJkNbMF09PT1GLkQuWGE/ZihmdW5jdGlvbihEKXtyZXR1cm4gRD09PVguVi51Yn0pOmYoKX0sdil9fSxyKX19fTsKdmFyIFROPWZ1bmN0aW9uKGEsYil7aWYoIWIuaXNHdG1FdmVudCl7dmFyIGM9TyhiLEYuRC5UZiksZD1PKGIsRi5ELlNmKSxlPU8oYixjKTtpZihlPT09dm9pZCAwKXt2YXIgZj12b2lkIDA7UU4uaGFzT3duUHJvcGVydHkoYyk/Zj1RTltjXTpSTi5oYXNPd25Qcm9wZXJ0eShjKSYmKGY9Uk5bY10pO2Y9PT0xJiYoZj1TTihjKSk7emIoZik/U0EoKShmdW5jdGlvbigpe3ZhciBnLGgsbCxuPShsPShnPVNBKCkpPT1udWxsP3ZvaWQgMDooaD1nLmdldEJ5TmFtZSk9PW51bGw/dm9pZCAwOmguY2FsbChnLGEpKT09bnVsbD92b2lkIDA6bC5nZXQoZik7ZChuKX0pOmQodm9pZCAwKX1lbHNlIGQoZSl9fSxVTj1mdW5jdGlvbihhLGIpe3ZhciBjPWFbRi5ELmFkXSxkPWIrIi4iLGU9YVtGLkQuQWFdfHwiIixmPWM9PT12b2lkIDA/ISFhLnVzZV9hbmNob3I6Yz09PSJmcmFnbWVudCIsZz0hIWFbRi5ELndjXTtlPVN0cmluZyhlKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgaD1TQSgpOwpoKGQrInJlcXVpcmUiLCJsaW5rZXIiKTtoKGQrImxpbmtlcjphdXRvTGluayIsZSxmLGcpfSxYTj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YWwoMjIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKCFjLmlzR3RtRXZlbnR8fCFkW2FdKXt2YXIgZT0hWG8oRi5ELnJhKSxmPWZ1bmN0aW9uKGcpe3ZhciBoPSJndG0iK1N0cmluZyhyaigpKSxsLG49U0EoKSxwPVZOKGIsIiIsYykscSxyPXAuY3JlYXRlT25seUZpZWxkcy5fdXNlVXA7aWYoYy5pc0d0bUV2ZW50fHxXTihiLHAuY3JlYXRlT25seUZpZWxkcykpe2MuaXNHdG1FdmVudCYmKGw9cC5jcmVhdGVPbmx5RmllbGRzLHAuZ3RtVHJhY2tlck5hbWUmJihsLm5hbWU9aCkpO24oZnVuY3Rpb24oKXt2YXIgdSx2PW49PW51bGw/dm9pZCAwOih1PW4uZ2V0QnlOYW1lKT09bnVsbD92b2lkIDA6dS5jYWxsKG4sYik7diYmKHE9di5nZXQoImNsaWVudElkIikpO2lmKCFjLmlzR3RtRXZlbnQpe3ZhciB4O249PW51bGx8fCh4PW4ucmVtb3ZlKT09bnVsbHx8CnguY2FsbChuLGIpfX0pO24oImNyZWF0ZSIsYSxjLmlzR3RtRXZlbnQ/bDpwLmNyZWF0ZU9ubHlGaWVsZHMpO2UmJlhvKEYuRC5yYSkmJihlPSExLG4oZnVuY3Rpb24oKXt2YXIgdSx2LHg9KHU9U0EoKSk9PW51bGw/dm9pZCAwOih2PXUuZ2V0QnlOYW1lKT09bnVsbD92b2lkIDA6di5jYWxsKHUsYy5pc0d0bUV2ZW50P2g6Yik7IXh8fHguZ2V0KCJjbGllbnRJZCIpPT1xJiZyfHwoYy5pc0d0bUV2ZW50PyhwLmZpZWxkc1RvU2V0WyImZ2N1Il09IjEiLHAuZmllbGRzVG9TZXRbIiZzc3QuZ2N1dCJdPUxvW2ddKToocC5maWVsZHNUb1NlbmRbIiZnY3UiXT0iMSIscC5maWVsZHNUb1NlbmRbIiZzc3QuZ2N1dCJdPQpMb1tnXSkseC5zZXQocC5maWVsZHNUb1NldCksYy5pc0d0bUV2ZW50P3guc2VuZCgicGFnZXZpZXciKTp4LnNlbmQoInBhZ2V2aWV3IixwLmZpZWxkc1RvU2VuZCkpfSkpO2MuaXNHdG1FdmVudCYmbihmdW5jdGlvbigpe3ZhciB1O249PW51bGx8fCh1PW4ucmVtb3ZlKT09bnVsbHx8dS5jYWxsKG4saCl9KX19O2FwKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgZihGLkQucmEpfSxGLkQucmEpO2FwKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgZihGLkQua2EpfSxGLkQua2EpO2FwKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgZihGLkQubWEpfSxGLkQubWEpO2MuaXNHdG1FdmVudCYmKGRbYV09ITApfX0sWU49ZnVuY3Rpb24oYSxiKXtkaygpJiZiJiYoYVtGLkQuVmJdPWIpfSxlTz1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZCgpe3ZhciBmYT1PYS5hcHBseSgwLGFyZ3VtZW50cyk7ZmFbMF09eD94KyIuIitmYVswXToiIitmYVswXTt1LmFwcGx5KHdpbmRvdyxmYSl9ZnVuY3Rpb24gZShmYSl7ZnVuY3Rpb24gc2EoaWIsClhiKXtmb3IodmFyIExjPTA7WGImJkxjPFhiLmxlbmd0aDtMYysrKWQoaWIsWGJbTGNdKX12YXIgZGE9Yy5pc0d0bUV2ZW50LG1hPWRhP1pOKHkpOiROKGIsYyk7aWYobWEpe3ZhciBQYT17fTtZTihQYSxmYSk7ZCgicmVxdWlyZSIsImVjIiwiZWMuanMiLFBhKTtkYSYmbWEuSGomJmQoInNldCIsIiZjdSIsbWEuSGopO3ZhciBGYT1tYS5hY3Rpb247aWYoZGF8fEZhPT09ImltcHJlc3Npb25zIilpZihzYSgiZWM6YWRkSW1wcmVzc2lvbiIsbWEubG8pLCFkYSlyZXR1cm47aWYoRmE9PT0icHJvbW9fY2xpY2sifHxGYT09PSJwcm9tb192aWV3Inx8ZGEmJm1hLlNnKXt2YXIgcWE9bWEuU2c7c2EoImVjOmFkZFByb21vIixxYSk7aWYocWEmJnFhLmxlbmd0aD4wJiZGYT09PSJwcm9tb19jbGljayIpe2RhP2QoImVjOnNldEFjdGlvbiIsRmEsbWEuYmMpOmQoImVjOnNldEFjdGlvbiIsRmEpO3JldHVybn1pZighZGEpcmV0dXJufUZhIT09InByb21vX3ZpZXciJiZGYSE9PSJpbXByZXNzaW9ucyImJgooc2EoImVjOmFkZFByb2R1Y3QiLG1hLnNlKSxkKCJlYzpzZXRBY3Rpb24iLEZhLG1hLmJjKSl9fWZ1bmN0aW9uIGYoZmEpe2lmKGZhKXt2YXIgc2E9e307aWYoQ2QoZmEpKWZvcih2YXIgZGEgaW4gYU8pYU8uaGFzT3duUHJvcGVydHkoZGEpJiZiTyhhT1tkYV0sZGEsZmFbZGFdLHNhKTtZTihzYSxJKTtkKCJyZXF1aXJlIiwibGlua2lkIixzYSl9fWZ1bmN0aW9uIGcoKXt2YXIgZmE9TyhjLEYuRC5ocSk7aWYoZmEpe3ZhciBzYT1FKDE5KTtkKCJyZXF1aXJlIixmYSx7ZGF0YUxheWVyOnNhfSk7ZCgicmVxdWlyZSIsInJlbmRlciIpfX1mdW5jdGlvbiBoKCl7dmFyIGZhPU8oYyxGLkQuSGUpO3UoZnVuY3Rpb24oKXtpZighYy5pc0d0bUV2ZW50JiZDZChmYSkpe3ZhciBzYT15LmZpZWxkc1RvU2VuZCxkYSxtYSxQYT0oZGE9digpKT09bnVsbD92b2lkIDA6KG1hPWRhLmdldEJ5TmFtZSk9PW51bGw/dm9pZCAwOm1hLmNhbGwoZGEseCksRmE7Zm9yKEZhIGluIGZhKWlmKGZhW0ZhXSE9bnVsbCYmCi9eKGRpbWVuc2lvbnxtZXRyaWMpXGQrJC8udGVzdChGYSkpe3ZhciBxYT12b2lkIDAsaWI9KHFhPVBhKT09bnVsbD92b2lkIDA6cWEuZ2V0KFNOKGZhW0ZhXSkpO2NPKHNhLEZhLGliKX19fSl9ZnVuY3Rpb24gbChmYSxzYSxkYSl7ZGEmJihzYT1TdHJpbmcoc2EpKTt5LmZpZWxkc1RvU2VuZFtmYV09c2F9ZnVuY3Rpb24gbigpe2lmKHkuZGlzcGxheWZlYXR1cmVzKXt2YXIgZmE9Il9kY19ndG1fIitwLnJlcGxhY2UoL1teQS1aYS16MC05LV0vZywiIik7ZCgicmVxdWlyZSIsImRpc3BsYXlmZWF0dXJlcyIsdm9pZCAwLHtjb29raWVOYW1lOmZhfSl9fXZhciBwPWEscT1iQyhhKSxyPWMuZXZlbnRNZXRhZGF0YVtILkouc2ddO2lmKCEocSYmciYmci5pbmRleE9mKHEuZGVzdGluYXRpb25JZCk8MCkpe2ZuLksmJih3by5IPSEwLGI9PT1GLkQud2E/em8oYyxhKTooYy5ldmVudE1ldGFkYXRhW0guSi5QY118fCh3by5LW2FdPSEwKSxaQihjLmV2ZW50TWV0YWRhdGFbSC5KLk5iXSkpKTt2YXIgdCwKdT1jLmlzR3RtRXZlbnQ/VkEoTyhjLCJnYUZ1bmN0aW9uTmFtZSIpKTpWQSgpO2lmKHliKHUpKXt2YXIgdj1TQSx4O3g9Yy5pc0d0bUV2ZW50P08oYywibmFtZSIpfHxPKGMsImd0bVRyYWNrZXJOYW1lIik6Imd0YWdfIitwLnNwbGl0KCItIikuam9pbigiXyIpO3ZhciB5PVZOKHgsYixjKSx6PWFsKDIxLGZ1bmN0aW9uKCl7cmV0dXJue319KTshYy5pc0d0bUV2ZW50JiZXTih4LHkuY3JlYXRlT25seUZpZWxkcykmJih1KGZ1bmN0aW9uKCl7dmFyIGZhLHNhO3YoKSYmKChmYT12KCkpPT1udWxsfHwoc2E9ZmEucmVtb3ZlKT09bnVsbHx8c2EuY2FsbChmYSx4KSl9KSx6W3hdPSExKTt1KCJjcmVhdGUiLHAseS5jcmVhdGVPbmx5RmllbGRzKTt2YXIgQz1jLmlzR3RtRXZlbnQmJnkuZmllbGRzVG9TZXRbRi5ELlZiXTtpZighYy5pc0d0bUV2ZW50JiZ5LmNyZWF0ZU9ubHlGaWVsZHNbRi5ELlZiXXx8Qyl7dmFyIEQ9WmooYy5pc0d0bUV2ZW50P3kuZmllbGRzVG9TZXRbRi5ELlZiXTp5LmNyZWF0ZU9ubHlGaWVsZHNbRi5ELlZiXSk7CkQmJih0PUQpfXZhciBJPWMuaXNHdG1FdmVudD95LmZpZWxkc1RvU2V0W0YuRC5WYl06eS5jcmVhdGVPbmx5RmllbGRzW0YuRC5WYl07aWYoSSl7dmFyIEc9Yy5pc0d0bUV2ZW50P3kuZmllbGRzVG9TZXRbRi5ELlJmXTp5LmNyZWF0ZU9ubHlGaWVsZHNbRi5ELlJmXTtHJiYhelt4XSYmKHpbeF09ITAsdShZQSh4LEcpKSl9Yy5pc0d0bUV2ZW50P3kuZW5hYmxlUmVjYXB0Y2hhJiZkKCJyZXF1aXJlIiwicmVjYXB0Y2hhIiwicmVjYXB0Y2hhLmpzIik6KGgoKSxmKHkubGlua0F0dHJpYnV0aW9uKSk7dmFyIE49eVtGLkQuRGJdO04mJk5bRi5ELkFhXSYmVU4oTix4KTtkKCJzZXQiLHkuZmllbGRzVG9TZXQpO2lmKGMuaXNHdG1FdmVudCl7aWYoeS5lbmFibGVMaW5rSWQpe3ZhciBTPXt9O1lOKFMsSSk7ZCgicmVxdWlyZSIsImxpbmtpZCIsImxpbmtpZC5qcyIsUyl9WE4ocCx4LGMpfWlmKGI9PT1GLkQuc2MpaWYoYy5pc0d0bUV2ZW50KXtuKCk7aWYoeS5yZW1hcmtldGluZ0xpc3RzKXt2YXIgVz0KIl9kY19ndG1fIitwLnJlcGxhY2UoL1teQS1aYS16MC05LV0vZywiIik7ZCgicmVxdWlyZSIsImFkZmVhdHVyZXMiLHtjb29raWVOYW1lOld9KX1lKEkpO2QoInNlbmQiLCJwYWdldmlldyIpO3kuY3JlYXRlT25seUZpZWxkcy5fdXNlVXAmJlVBKHgrIi4iKX1lbHNlIGcoKSxkKCJzZW5kIiwicGFnZXZpZXciLHkuZmllbGRzVG9TZW5kKTtlbHNlIGI9PT1GLkQud2E/KGcoKSxNTChwLGMpLE8oYyxGLkQuemMpJiYoQXMoWyJhdyIsImRjIl0pLFVBKHgrIi4iKSksQ3MoWyJhdyIsImRjIl0pLHkuc2VuZFBhZ2VWaWV3IT0wJiZkKCJzZW5kIiwicGFnZXZpZXciLHkuZmllbGRzVG9TZW5kKSxYTihwLHgsYykpOmI9PT1GLkQuSmI/VE4oeCxjKTpiPT09InNjcmVlbl92aWV3Ij9kKCJzZW5kIiwic2NyZWVudmlldyIseS5maWVsZHNUb1NlbmQpOmI9PT0idGltaW5nX2NvbXBsZXRlIj8oeS5maWVsZHNUb1NlbmQuaGl0VHlwZT0idGltaW5nIixsKCJ0aW1pbmdDYXRlZ29yeSIseS5ldmVudENhdGVnb3J5LAohMCksYy5pc0d0bUV2ZW50P2woInRpbWluZ1ZhciIseS50aW1pbmdWYXIsITApOmwoInRpbWluZ1ZhciIseS5uYW1lLCEwKSxsKCJ0aW1pbmdWYWx1ZSIsSWIoeS52YWx1ZSkpLHkuZXZlbnRMYWJlbCE9PXZvaWQgMCYmbCgidGltaW5nTGFiZWwiLHkuZXZlbnRMYWJlbCwhMCksZCgic2VuZCIseS5maWVsZHNUb1NlbmQpKTpiPT09ImV4Y2VwdGlvbiI/ZCgic2VuZCIsImV4Y2VwdGlvbiIseS5maWVsZHNUb1NlbmQpOmI9PT0iIiYmYy5pc0d0bUV2ZW50fHwoYj09PSJ0cmFja19zb2NpYWwiJiZjLmlzR3RtRXZlbnQ/KHkuZmllbGRzVG9TZW5kLmhpdFR5cGU9InNvY2lhbCIsbCgic29jaWFsTmV0d29yayIseS5zb2NpYWxOZXR3b3JrLCEwKSxsKCJzb2NpYWxBY3Rpb24iLHkuc29jaWFsQWN0aW9uLCEwKSxsKCJzb2NpYWxUYXJnZXQiLHkuc29jaWFsVGFyZ2V0LCEwKSk6KChjLmlzR3RtRXZlbnR8fGRPW2JdKSYmZShJKSxjLmlzR3RtRXZlbnQmJm4oKSx5LmZpZWxkc1RvU2VuZC5oaXRUeXBlPQoiZXZlbnQiLGwoImV2ZW50Q2F0ZWdvcnkiLHkuZXZlbnRDYXRlZ29yeSwhMCksbCgiZXZlbnRBY3Rpb24iLHkuZXZlbnRBY3Rpb258fGIsITApLHkuZXZlbnRMYWJlbCE9PXZvaWQgMCYmbCgiZXZlbnRMYWJlbCIseS5ldmVudExhYmVsLCEwKSx5LnZhbHVlIT09dm9pZCAwJiZsKCJldmVudFZhbHVlIixJYih5LnZhbHVlKSkpLGQoInNlbmQiLHkuZmllbGRzVG9TZW5kKSk7dmFyIGVhPXQmJiFjLmV2ZW50TWV0YWRhdGFbSC5KLkFuXTtpZighYWwoMjAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoIWMuaXNHdG1FdmVudHx8ZWEpKXt0PXR8fCJodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMiO1prKDIwLCEwKTt2YXIgamE9ZnVuY3Rpb24oKXtjLm9uRmFpbHVyZSgpfTtVYyh0LGZ1bmN0aW9uKCl7dmFyIGZhOygoZmE9digpKT09bnVsbD8wOmZhLmxvYWRlZCl8fGphKCl9LGphKX19ZWxzZSBiZChjLm9uRmFpbHVyZSl9fSxmTz1mdW5jdGlvbihhLGIsYywKZCl7YnAoZnVuY3Rpb24oKXtlTyhhLGIsZCl9LFtGLkQucmEsRi5ELmthXSl9LFdOPWZ1bmN0aW9uKGEsYil7dmFyIGM9YWwoMjMsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGQ9Y1thXTtjW2FdPUVkKGIsbnVsbCk7aWYoIWQpcmV0dXJuITE7Zm9yKHZhciBlIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShlKSYmYltlXSE9PWRbZV0pcmV0dXJuITA7Zm9yKHZhciBmIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShmKSYmZFtmXSE9PWJbZl0pcmV0dXJuITA7cmV0dXJuITF9LCROPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyh1KXtyZXR1cm57aWQ6ZChGLkQuUGEpLGFmZmlsaWF0aW9uOmQoRi5ELkZsKSxyZXZlbnVlOmQoRi5ELlFhKSx0YXg6ZChGLkQuSGwpLHNoaXBwaW5nOmQoRi5ELkxkKSxjb3Vwb246ZChGLkQuR2wpLGxpc3Q6ZChGLkQuRGkpfHxkKEYuRC5PZil8fHV9fWZvcih2YXIgZD1mdW5jdGlvbih1KXtyZXR1cm4gTyhiLHUpfSxlPWQoRi5ELkhhKSxmLGc9MDtlJiZnPGUubGVuZ3RoJiYKIShmPWVbZ11bRi5ELkRpXXx8ZVtnXVtGLkQuT2ZdKTtnKyspO3ZhciBoPWQoRi5ELkhlKTtpZihDZChoKSlmb3IodmFyIGw9MDtlJiZsPGUubGVuZ3RoOysrbCl7dmFyIG49ZVtsXSxwO2ZvcihwIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShwKSYmL14oZGltZW5zaW9ufG1ldHJpYylcZCskLy50ZXN0KHApJiZoW3BdIT1udWxsJiZjTyhuLHAsbltoW3BdXSl9dmFyIHE9bnVsbCxyPWQoRi5ELlJwKTtpZihhPT09Ri5ELklifHxhPT09Ri5ELkFlKXE9e2FjdGlvbjphLGJjOmMoKSxzZTpnTyhlKX07ZWxzZSBpZihhPT09Ri5ELnhlKXE9e2FjdGlvbjoiYWRkIixiYzpjKCksc2U6Z08oZSl9O2Vsc2UgaWYoYT09PUYuRC55ZSlxPXthY3Rpb246InJlbW92ZSIsYmM6YygpLHNlOmdPKGUpfTtlbHNlIGlmKGE9PT1GLkQucmMpcT17YWN0aW9uOiJkZXRhaWwiLGJjOmMoZiksc2U6Z08oZSl9O2Vsc2UgaWYoYT09PUYuRC5vYylxPXthY3Rpb246ImltcHJlc3Npb25zIixsbzpnTyhlKX07ZWxzZSBpZihhPT09CkYuRC5xYylxPXthY3Rpb246InByb21vX3ZpZXciLFNnOmdPKHIpfHxnTyhlKX07ZWxzZSBpZihhPT09InNlbGVjdF9jb250ZW50IiYmciYmci5sZW5ndGg+MHx8YT09PUYuRC5RYylxPXthY3Rpb246InByb21vX2NsaWNrIixTZzpnTyhyKXx8Z08oZSl9O2Vsc2UgaWYoYT09PSJzZWxlY3RfY29udGVudCJ8fGE9PT1GLkQuemUpcT17YWN0aW9uOiJjbGljayIsYmM6e2xpc3Q6ZChGLkQuRGkpfHxkKEYuRC5PZil8fGZ9LHNlOmdPKGUpfTtlbHNlIGlmKGE9PT1GLkQuQWR8fGE9PT0iY2hlY2tvdXRfcHJvZ3Jlc3MiKXt2YXIgdD17c3RlcDphPT09Ri5ELkFkPzE6ZChGLkQuQ2kpLG9wdGlvbjpkKEYuRC5taCl9O3E9e2FjdGlvbjoiY2hlY2tvdXQiLHNlOmdPKGUpLGJjOkVkKGMoKSx0KX19ZWxzZSBhPT09InNldF9jaGVja291dF9vcHRpb24iJiYocT17YWN0aW9uOiJjaGVja291dF9vcHRpb24iLGJjOntzdGVwOmQoRi5ELkNpKSxvcHRpb246ZChGLkQubWgpfX0pO3EmJihxLkhqPWQoRi5ELmViKSk7CnJldHVybiBxfSxaTj1mdW5jdGlvbihhKXt2YXIgYj1hLmd0bUVjb21tZXJjZURhdGE7aWYoIWIpcmV0dXJuIG51bGw7dmFyIGM9e307Yi5jdXJyZW5jeUNvZGUmJihjLkhqPWIuY3VycmVuY3lDb2RlKTtpZihiLmltcHJlc3Npb25zKXtjLmFjdGlvbj0iaW1wcmVzc2lvbnMiO3ZhciBkPWIuaW1wcmVzc2lvbnM7Yy5sbz1iLnRyYW5zbGF0ZUlmS2V5RXF1YWxzPT09ImltcHJlc3Npb25zIj9nTyhkKTpkfWlmKGIucHJvbW9WaWV3KXtjLmFjdGlvbj0icHJvbW9fdmlldyI7dmFyIGU9Yi5wcm9tb1ZpZXcucHJvbW90aW9ucztjLlNnPWIudHJhbnNsYXRlSWZLZXlFcXVhbHM9PT0icHJvbW9WaWV3Ij9nTyhlKTplfWlmKGIucHJvbW9DbGljayl7dmFyIGY9Yi5wcm9tb0NsaWNrO2MuYWN0aW9uPSJwcm9tb19jbGljayI7dmFyIGc9Zi5wcm9tb3Rpb25zO2MuU2c9Yi50cmFuc2xhdGVJZktleUVxdWFscz09PSJwcm9tb0NsaWNrIj9nTyhnKTpnO2MuYmM9Zi5hY3Rpb25GaWVsZDtyZXR1cm4gY31mb3IodmFyIGggaW4gYilpZihiW2hdIT09CnZvaWQgMCYmaCE9PSJ0cmFuc2xhdGVJZktleUVxdWFscyImJmghPT0iaW1wcmVzc2lvbnMiJiZoIT09InByb21vVmlldyImJmghPT0icHJvbW9DbGljayImJmghPT0iY3VycmVuY3lDb2RlIil7Yy5hY3Rpb249aDt2YXIgbD1iW2hdLnByb2R1Y3RzO2Muc2U9Yi50cmFuc2xhdGVJZktleUVxdWFscz09PSJwcm9kdWN0cyI/Z08obCk6bDtjLmJjPWJbaF0uYWN0aW9uRmllbGQ7YnJlYWt9cmV0dXJuIE9iamVjdC5rZXlzKGMpLmxlbmd0aD9jOm51bGx9LGdPPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZSl7ZnVuY3Rpb24gZihoLGwpe2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKXt2YXIgcD1sW25dO2lmKGVbcF0pe2dbaF09ZVtwXTticmVha319fXZhciBnPUVkKGUsbnVsbCk7ZigiaWQiLFsiaWQiLCJpdGVtX2lkIiwicHJvbW90aW9uX2lkIl0pO2YoIm5hbWUiLFsibmFtZSIsIml0ZW1fbmFtZSIsInByb21vdGlvbl9uYW1lIl0pO2YoImJyYW5kIixbImJyYW5kIiwiaXRlbV9icmFuZCJdKTsKZigidmFyaWFudCIsWyJ2YXJpYW50IiwiaXRlbV92YXJpYW50Il0pO2YoImxpc3QiLFsibGlzdF9uYW1lIiwiaXRlbV9saXN0X25hbWUiXSk7ZigicG9zaXRpb24iLFsibGlzdF9wb3NpdGlvbiIsImNyZWF0aXZlX3Nsb3QiLCJpbmRleCJdKTsoZnVuY3Rpb24oKXtpZihlLmNhdGVnb3J5KWcuY2F0ZWdvcnk9ZS5jYXRlZ29yeTtlbHNle2Zvcih2YXIgaD0iIixsPTA7bDxoTy5sZW5ndGg7bCsrKWVbaE9bbF1dIT09dm9pZCAwJiYoaCYmKGgrPSIvIiksaCs9ZVtoT1tsXV0pO2gmJihnLmNhdGVnb3J5PWgpfX0pKCk7ZigibGlzdFBvc2l0aW9uIixbImxpc3RfcG9zaXRpb24iXSk7ZigiY3JlYXRpdmUiLFsiY3JlYXRpdmVfbmFtZSJdKTtmKCJsaXN0IixbImxpc3RfbmFtZSJdKTtmKCJwb3NpdGlvbiIsWyJsaXN0X3Bvc2l0aW9uIiwiY3JlYXRpdmVfc2xvdCJdKTtyZXR1cm4gZ31mb3IodmFyIGM9W10sZD0wO2EmJmQ8YS5sZW5ndGg7ZCsrKWFbZF0mJkNkKGFbZF0pJiZjLnB1c2goYihhW2RdKSk7CnJldHVybiBjLmxlbmd0aD9jOnZvaWQgMH0sVk49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWZ1bmN0aW9uKGphKXtyZXR1cm4gTyhjLGphKX0sZT17fSxmPXt9LGc9e30saD17fSxsPWlPKGQoRi5ELlhwKSk7IWMuaXNHdG1FdmVudCYmbCYmY08oZiwiZXhwIixsKTtnWyImZ3RtIl09ZHUoe21jOmMuZXZlbnRNZXRhZGF0YVtILkouTmJdLFBuOiEwLGVmOiEhYy5ldmVudE1ldGFkYXRhW0guSi5DY119KTtjLmlzR3RtRXZlbnR8fChnLl9ub19zbGM9ITApO0VsKCkmJihoLl9jcz1qTyk7dmFyIG49ZChGLkQuSGUpO2lmKCFjLmlzR3RtRXZlbnQmJkNkKG4pKWZvcih2YXIgcCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocCkmJi9eKGRpbWVuc2lvbnxtZXRyaWMpXGQrJC8udGVzdChwKSYmbltwXSE9bnVsbCl7dmFyIHE9ZChTdHJpbmcobltwXSkpO3EhPT12b2lkIDAmJmNPKGYscCxxKX1mb3IodmFyIHI9IWMuaXNHdG1FdmVudCx0PXdDKGMpLHU9MDt1PHQubGVuZ3RoOysrdSl7dmFyIHY9dFt1XTsKaWYoYy5pc0d0bUV2ZW50KXt2YXIgeD1kKHYpO2tPLmhhc093blByb3BlcnR5KHYpP2Vbdl09eDpsTy5oYXNPd25Qcm9wZXJ0eSh2KT9oW3ZdPXg6Z1t2XT14fWVsc2V7dmFyIHk9dm9pZCAwO3YhPT1GLkQuT2E/eT1kKHYpOnk9Yy5nZXRNZXJnZWRWYWx1ZXModik7aWYobU8uaGFzT3duUHJvcGVydHkodikpYk8obU9bdl0sdix5LGUpO2Vsc2UgaWYobk8uaGFzT3duUHJvcGVydHkodikpYk8obk9bdl0sdix5LGcpO2Vsc2UgaWYoUk4uaGFzT3duUHJvcGVydHkodikpYk8oUk5bdl0sdix5LGYpO2Vsc2UgaWYoUU4uaGFzT3duUHJvcGVydHkodikpYk8oUU5bdl0sdix5LGgpO2Vsc2UgaWYoL14oZGltZW5zaW9ufG1ldHJpY3xjb250ZW50X2dyb3VwKVxkKyQvLnRlc3QodikpYk8oMSx2LHksZik7ZWxzZSBpZih2PT09Ri5ELk9hKXt2YXIgej1ZYih5KTt6JiYoZlsiJmRpZCJdPXopO3ZhciBDPXZvaWQgMCxEPXZvaWQgMDtiPT09Ri5ELndhP0M9WWIoYy5nZXRNZXJnZWRWYWx1ZXModiksCiIuIik6KEM9WWIoYy5nZXRNZXJnZWRWYWx1ZXModiwxKSwiLiIpLEQ9WWIoYy5nZXRNZXJnZWRWYWx1ZXModiwyKSwiLiIpKTtDJiYoZlsiJmdkaWQiXT1DKTtEJiYoZlsiJmVkaWQiXT1EKX1lbHNlIHY9PT1GLkQubmImJnQuaW5kZXhPZihGLkQuSWQpPDAmJihoLmNvb2tpZU5hbWU9U3RyaW5nKHkpKyJfZ2EiKTtvT1t2XSYmKE0oNTUwKSYmYy5XYS5oYXNPd25Qcm9wZXJ0eSh2KXx8Yy5oYi5oYXNPd25Qcm9wZXJ0eSh2KXx8Yj09PUYuRC53YSYmYy5FYS5oYXNPd25Qcm9wZXJ0eSh2KSkmJihyPSExKX19ciYmKGZbIiZqc3NjdXQiXT0iMSIpO2QoRi5ELmhoKSE9PSExJiZkKEYuRC5TYykhPT0hMSYmVksoKXx8KGcuYWxsb3dBZEZlYXR1cmVzPSExKTtnLmFsbG93QWRQZXJzb25hbGl6YXRpb25TaWduYWxzPVN0KGMpOyFjLmlzR3RtRXZlbnQmJmQoRi5ELnpjKSYmKGguX3VzZVVwPSEwKTtpZihjLmlzR3RtRXZlbnQpe2gubmFtZT1oLm5hbWV8fGUuZ3RtVHJhY2tlck5hbWU7dmFyIEk9CmcuaGl0Q2FsbGJhY2s7Zy5oaXRDYWxsYmFjaz1mdW5jdGlvbigpe3liKEkpJiZJKCk7Yy5vblN1Y2Nlc3MoKX19ZWxzZXtjTyhoLCJjb29raWVEb21haW4iLCJhdXRvIik7Y08oZywiZm9yY2VTU0wiLCEwKTtjTyhlLCJldmVudENhdGVnb3J5IixwTyhiKSk7cU9bYl0mJmNPKGYsIm5vbkludGVyYWN0aW9uIiwhMCk7Yj09PSJsb2dpbiJ8fGI9PT0ic2lnbl91cCJ8fGI9PT0ic2hhcmUiP2NPKGUsImV2ZW50TGFiZWwiLGQoRi5ELlRsKSk6Yj09PSJzZWFyY2gifHxiPT09InZpZXdfc2VhcmNoX3Jlc3VsdHMiP2NPKGUsImV2ZW50TGFiZWwiLGQoRi5ELnBxKSk6Yj09PSJzZWxlY3RfY29udGVudCImJmNPKGUsImV2ZW50TGFiZWwiLGQoRi5ELk5wKSk7dmFyIEc9ZVtGLkQuRGJdfHx7fSxOPUdbRi5ELlhmXTtOfHxOIT0wJiZHW0YuRC5BYV0/aC5hbGxvd0xpbmtlcj0hMDpOPT09ITEmJmNPKGgsInVzZUFtcENsaWVudElkIiwhMSk7Zi5oaXRDYWxsYmFjaz1jLm9uU3VjY2VzcztoLm5hbWU9CmF9VHQoKSYmKGdbIiZnY3MiXT1VdCgpKTtnWyImZ2NkIl09WXQoYyk7RWwoKSYmKFhvKEYuRC5yYSl8fChoLnN0b3JhZ2U9Im5vbmUiKSxYbyhmcCl8fChnLmFsbG93QWRGZWF0dXJlcz0hMSxoLnN0b3JlR2FjPSExKSk7YXUoKSYmKGdbIiZkbWFfY3BzIl09WnQoKSk7Z1siJmRtYSJdPSR0KCk7dnQoRXQoKSkmJihnWyImdGNmZCJdPWJ1KCkpO3ZhciBTPWMuZXZlbnRNZXRhZGF0YVtILkouQ2hdfHxbXTtwcChTKSYmKGdbIiZ0YWdfZXhwIl09cHAoUykpO3ZhciBXPWVrKGMpfHxkKEYuRC5WYiksZWE9ZChGLkQuUmYpO1cmJihjLmlzR3RtRXZlbnR8fChoW0YuRC5WYl09VyksaC5fY2QybD0hMCk7ZWEmJiFjLmlzR3RtRXZlbnQmJihoW0YuRC5SZl09ZWEpO2UuZmllbGRzVG9TZW5kPWY7ZS5maWVsZHNUb1NldD1nO2UuY3JlYXRlT25seUZpZWxkcz1oO3JldHVybiBlfSxqTz1mdW5jdGlvbihhKXtyZXR1cm4gWG8oYSl9LGlPPWZ1bmN0aW9uKGEpe2lmKEFycmF5LmlzQXJyYXkoYSkpe2Zvcih2YXIgYj0KW10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdO2lmKGQhPW51bGwpe3ZhciBlPWQuaWQsZj1kLnZhcmlhbnQ7ZSE9bnVsbCYmZiE9bnVsbCYmYi5wdXNoKFN0cmluZyhlKSsiLiIrU3RyaW5nKGYpKX19cmV0dXJuIGIubGVuZ3RoPjA/Yi5qb2luKCIhIik6dm9pZCAwfX0sY089ZnVuY3Rpb24oYSxiLGMpe2EuaGFzT3duUHJvcGVydHkoYil8fChhW2JdPWMpfSxwTz1mdW5jdGlvbihhKXt2YXIgYj0iZ2VuZXJhbCI7ck9bYV0/Yj0iZWNvbW1lcmNlIjpzT1thXT9iPSJlbmdhZ2VtZW50IjphPT09ImV4Y2VwdGlvbiImJihiPSJlcnJvciIpO3JldHVybiBifSxTTj1mdW5jdGlvbihhKXtyZXR1cm4gYSYmemIoYSk/YS5yZXBsYWNlKC8oX1thLXpdKS9nLGZ1bmN0aW9uKGIpe3JldHVybiBiWzFdLnRvVXBwZXJDYXNlKCl9KTphfSxiTz1mdW5jdGlvbihhLGIsYyxkKXtpZihjIT09dm9pZCAwKWlmKHRPW2JdJiYoYz1KYihjKSksYiE9PSJhbm9ueW1pemVfaXAifHxjfHwoYz12b2lkIDApLAphPT09MSlkW1NOKGIpXT1jO2Vsc2UgaWYoemIoYSkpZFthXT1jO2Vsc2UgZm9yKHZhciBlIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShlKSYmY1tlXSE9PXZvaWQgMCYmKGRbYVtlXV09Y1tlXSl9LHVPPXt9LG9PPSh1T1tGLkQuUmNdPTEsdU9bRi5ELlNjXT0xLHVPW0YuRC5MYl09MSx1T1tGLkQuQ2JdPTEsdU9bRi5ELlRiXT0xLHVPW0YuRC5JZF09MSx1T1tGLkQudmNdPTEsdU9bRi5ELm5iXT0xLHVPW0YuRC5KZF09MSx1T1tGLkQuVmxdPTEsdU9bRi5ELnphXT0xLHVPW0YuRC5ZZl09MSx1T1tGLkQuVWFdPTEsdU9bRi5ELk1iXT0xLHVPKSx2Tz17fSxRTj0odk8uY2xpZW50X3N0b3JhZ2U9InN0b3JhZ2UiLHZPLnNhbXBsZV9yYXRlPTEsdk8uc2l0ZV9zcGVlZF9zYW1wbGVfcmF0ZT0xLHZPLnN0b3JlX2dhYz0xLHZPLnVzZV9hbXBfY2xpZW50X2lkPTEsdk9bRi5ELktiXT0xLHZPW0YuRC51Y109InN0b3JlR2FjIix2T1tGLkQuTGJdPTEsdk9bRi5ELkNiXT0xLHZPW0YuRC5UYl09MSwKdk9bRi5ELklkXT0xLHZPW0YuRC52Y109MSx2T1tGLkQuSmRdPTEsdk8pLHdPPXt9LGxPPSh3Ty5fY3M9MSx3Ty5fdXNlVXA9MSx3Ty5hbGxvd0FuY2hvcj0xLHdPLmFsbG93TGlua2VyPTEsd08uYWx3YXlzU2VuZFJlZmVycmVyPTEsd08uY2xpZW50SWQ9MSx3Ty5jb29raWVEb21haW49MSx3Ty5jb29raWVFeHBpcmVzPTEsd08uY29va2llRmxhZ3M9MSx3Ty5jb29raWVOYW1lPTEsd08uY29va2llUGF0aD0xLHdPLmNvb2tpZVVwZGF0ZT0xLHdPLmxlZ2FjeUNvb2tpZURvbWFpbj0xLHdPLmxlZ2FjeUhpc3RvcnlJbXBvcnQ9MSx3Ty5uYW1lPTEsd08uc2FtcGxlUmF0ZT0xLHdPLnNpdGVTcGVlZFNhbXBsZVJhdGU9MSx3Ty5zdG9yYWdlPTEsd08uc3RvcmVHYWM9MSx3Ty51c2VBbXBDbGllbnRJZD0xLHdPLl9jZDJsPTEsd08pLG5PPXthbm9ueW1pemVfaXA6MX0seE89e30sUk49KHhPLmNhbXBhaWduPXtjb250ZW50OiJjYW1wYWlnbkNvbnRlbnQiLGlkOiJjYW1wYWlnbklkIixtZWRpdW06ImNhbXBhaWduTWVkaXVtIiwKbmFtZToiY2FtcGFpZ25OYW1lIixzb3VyY2U6ImNhbXBhaWduU291cmNlIix0ZXJtOiJjYW1wYWlnbktleXdvcmQifSx4Ty5hcHBfaWQ9MSx4Ty5hcHBfaW5zdGFsbGVyX2lkPTEseE8uYXBwX25hbWU9MSx4Ty5hcHBfdmVyc2lvbj0xLHhPLmRlc2NyaXB0aW9uPSJleERlc2NyaXB0aW9uIix4Ty5mYXRhbD0iZXhGYXRhbCIseE8ubGFuZ3VhZ2U9MSx4Ty5wYWdlX2hvc3RuYW1lPSJob3N0bmFtZSIseE8udHJhbnNwb3J0X3R5cGU9InRyYW5zcG9ydCIseE9bRi5ELmViXT0iY3VycmVuY3lDb2RlIix4T1tGLkQuTWldPTEseE9bRi5ELnphXT0ibG9jYXRpb24iLHhPW0YuRC5ZZl09InBhZ2UiLHhPW0YuRC5VYV09InJlZmVycmVyIix4T1tGLkQuTWJdPSJ0aXRsZSIseE9bRi5ELk5pXT0xLHhPW0YuRC5mYl09MSx4TykseU89e30sbU89KHlPLmNvbnRlbnRfaWQ9MSx5Ty5ldmVudF9hY3Rpb249MSx5Ty5ldmVudF9jYXRlZ29yeT0xLHlPLmV2ZW50X2xhYmVsPTEseU8ubGlua19hdHRyaWJ1dGlvbj0KMSx5Ty5uYW1lPTEseU9bRi5ELkRiXT0xLHlPW0YuRC5UbF09MSx5T1tGLkQuVGRdPTEseU9bRi5ELlFhXT0xLHlPKSxrTz17ZGlzcGxheWZlYXR1cmVzOjEsZW5hYmxlTGlua0lkOjEsZW5hYmxlUmVjYXB0Y2hhOjEsZXZlbnRBY3Rpb246MSxldmVudENhdGVnb3J5OjEsZXZlbnRMYWJlbDoxLGdhRnVuY3Rpb25OYW1lOjEsZ3RtRWNvbW1lcmNlRGF0YToxLGd0bVRyYWNrZXJOYW1lOjEsbGlua2VyOjEscmVtYXJrZXRpbmdMaXN0czoxLHNvY2lhbEFjdGlvbjoxLHNvY2lhbE5ldHdvcms6MSxzb2NpYWxUYXJnZXQ6MSx0aW1pbmdWYXI6MSx2YWx1ZToxfSxoTz1bIml0ZW1fY2F0ZWdvcnkiLCJpdGVtX2NhdGVnb3J5MiIsIml0ZW1fY2F0ZWdvcnkzIiwiaXRlbV9jYXRlZ29yeTQiLCJpdGVtX2NhdGVnb3J5NSJdLHpPPXt9LGFPPSh6Ty5sZXZlbHM9MSx6T1tGLkQuQ2JdPSJkdXJhdGlvbiIsek9bRi5ELklkXT0xLHpPKSxBTz17fSx0Tz0oQU8uYW5vbnltaXplX2lwPTEsQU8uZmF0YWw9CjEsQU8uc2VuZF9wYWdlX3ZpZXc9MSxBTy5zdG9yZV9nYWM9MSxBTy51c2VfYW1wX2NsaWVudF9pZD0xLEFPW0YuRC51Y109MSxBT1tGLkQuTWldPTEsQU8pLEJPPXt9LGRPPShCTy5jaGVja291dF9wcm9ncmVzcz0xLEJPLnNlbGVjdF9jb250ZW50PTEsQk8uc2V0X2NoZWNrb3V0X29wdGlvbj0xLEJPW0YuRC54ZV09MSxCT1tGLkQueWVdPTEsQk9bRi5ELkFkXT0xLEJPW0YuRC56ZV09MSxCT1tGLkQub2NdPTEsQk9bRi5ELlFjXT0xLEJPW0YuRC5xY109MSxCT1tGLkQuSWJdPTEsQk9bRi5ELkFlXT0xLEJPW0YuRC5yY109MSxCTyksQ089e30sck89KENPLmNoZWNrb3V0X3Byb2dyZXNzPTEsQ08uc2V0X2NoZWNrb3V0X29wdGlvbj0xLENPW0YuRC52bF09MSxDT1tGLkQud2xdPTEsQ09bRi5ELnhlXT0xLENPW0YuRC55ZV09MSxDT1tGLkQueGxdPTEsQ09bRi5ELkFkXT0xLENPW0YuRC5JYl09MSxDT1tGLkQuQWVdPTEsQ09bRi5ELnlsXT0xLENPKSxETz17fSxzTz0oRE8uZ2VuZXJhdGVfbGVhZD0KMSxETy5sb2dpbj0xLERPLnNlYXJjaD0xLERPLnNlbGVjdF9jb250ZW50PTEsRE8uc2hhcmU9MSxETy5zaWduX3VwPTEsRE8udmlld19zZWFyY2hfcmVzdWx0cz0xLERPW0YuRC56ZV09MSxET1tGLkQub2NdPTEsRE9bRi5ELlFjXT0xLERPW0YuRC5xY109MSxET1tGLkQucmNdPTEsRE8pLEVPPXt9LHFPPShFTy52aWV3X3NlYXJjaF9yZXN1bHRzPTEsRU9bRi5ELm9jXT0xLEVPW0YuRC5xY109MSxFT1tGLkQucmNdPTEsRU8pO2Z1bmN0aW9uIEZPKGEsYixjLGQpe31GTy5QPSJpbnRlcm5hbC5leGVjdXRlRXZlbnRQcm9jZXNzb3IiO2Z1bmN0aW9uIEdPKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInVuc2FmZV9ydW5fYXJiaXRyYXJ5X2phdmFzY3JpcHQiKTt0cnl7dmFyIGM9QS5nb29nbGVfdGFnX21hbmFnZXI7YyYmdHlwZW9mIGMuZT09PSJmdW5jdGlvbiImJihiPWMuZShhKSl9Y2F0Y2goZCl7fXJldHVybiBVZChiLHRoaXMuVCwxKX1HTy5QPSJpbnRlcm5hbC5leGVjdXRlSmF2YXNjcmlwdFN0cmluZyI7ZnVuY3Rpb24gSE8oYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO3JldHVybiBifUlPLlA9ImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiO2Z1bmN0aW9uIEpPKGEpe3ZhciBiPXt9O3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudEF0dHJpYnV0ZSByZXF1aXJlcyBhbiBIVE1MIEVsZW1lbnQuIik7TCh0aGlzLCJnZXRfZWxlbWVudF9hdHRyaWJ1dGVzIixkLGIpO2M9ZWQoZCxiKTtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtpZigha2goYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9wYXF1ZVZhbHVlIl0sYXJndW1lbnRzKTt2YXIgYz1hLmdldFZhbHVlKCk7aWYoIShjIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXRocm93IEVycm9yKCJnZXRFbGVtZW50SW5uZXJUZXh0IHJlcXVpcmVzIGFuIEhUTUwgRWxlbWVudC4iKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRfdGV4dCIsYyk7Yj1mZChjKTtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudFByb3BlcnR5IHJlcXVpcmVzIGFuIEhUTUwgZWxlbWVudC4iKTtMKHRoaXMsImFjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzIixkLCJyZWFkIixiKTtjPWRbYl07cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7aWYoIWtoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSJdLGFyZ3VtZW50cyk7dmFyIGM9YS5nZXRWYWx1ZSgpO2lmKCEoYyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBFcnJvcigiZ2V0RWxlbWVudFZhbHVlIHJlcXVpcmVzIGFuIEhUTUwgRWxlbWVudC4iKTtMKHRoaXMsImFjY2Vzc19lbGVtZW50X3ZhbHVlcyIsYywicmVhZCIpO2I9YyBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQ/Yy52YWx1ZTplZChjLCJ2YWx1ZSIpfHwiIjtyZXR1cm4gYn1hUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmFsdWUiO2Z1bmN0aW9uIGJQKGEpe3ZhciBiPTA7cmV0dXJuIGJ9YlAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZpc2liaWxpdHlSYXRpbyI7ZnVuY3Rpb24gY1AoYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1jUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiOwpmdW5jdGlvbiBkUChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7TCh0aGlzLCJyZWFkX2V2ZW50X2RhdGEiLGEpO3ZhciBjO2E6e3ZhciBkPWEsZT1YRih0aGlzKS5vcmlnaW5hbEV2ZW50RGF0YTtpZihlKXtmb3IodmFyIGY9ZSxnPXt9LGg9e30sbD17fSxuPVtdLHA9ZC5zcGxpdCgiXFxcXCIpLHE9MDtxPHAubGVuZ3RoO3ErKyl7Zm9yKHZhciByPXBbcV0uc3BsaXQoIlxcLiIpLHQ9MDt0PHIubGVuZ3RoO3QrKyl7Zm9yKHZhciB1PXJbdF0uc3BsaXQoIi4iKSx2PTA7djx1Lmxlbmd0aDt2Kyspbi5wdXNoKHVbdl0pLHYhPT11Lmxlbmd0aC0xJiZuLnB1c2gobCk7dCE9PXIubGVuZ3RoLTEmJm4ucHVzaChoKX1xIT09cC5sZW5ndGgtMSYmbi5wdXNoKGcpfWZvcih2YXIgeD1bXSx5PSIiLHo9bShuKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz0Kei5uZXh0KCkpe3ZhciBEPUMudmFsdWU7RD09PWw/KHgucHVzaCh5KSx5PSIiKTp5PUQ9PT1nP3krIlxcIjpEPT09aD95KyIuIjp5K0R9eSYmeC5wdXNoKHkpO2Zvcih2YXIgST1tKHgpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXtpZihmPT1udWxsKXtjPXZvaWQgMDticmVhayBhfWY9ZltHLnZhbHVlXX1jPWZ9ZWxzZSBjPXZvaWQgMH1iPVVkKGMsdGhpcy5ULDEpO3JldHVybiBifWRQLlA9ImludGVybmFsLmdldEV2ZW50RGF0YSI7ZnVuY3Rpb24gZVAoYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO3JldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtyZXR1cm4gVWQoYyl9aVAuUD0iaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iO2Z1bmN0aW9uIGpQKCl7dmFyIGE9bmV3IGtiO3JldHVybiBhfWpQLlA9ImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIjtmdW5jdGlvbiBrUChhLGIpe3ZhciBjO3JldHVybiBjfWtQLlA9ImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gbFAoYSxiKXt2YXIgYztyZXR1cm4gY31sUC5wdWJsaWNOYW1lPSJnZXRRdWVyeVBhcmFtZXRlcnMiO2Z1bmN0aW9uIG1QKGEsYil7dmFyIGM7cmV0dXJuIGN9bVAucHVibGljTmFtZT0iZ2V0UmVmZXJyZXJRdWVyeVBhcmFtZXRlcnMiO2Z1bmN0aW9uIG5QKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfcmVmZXJyZXIiLGEpO2I9TmooUmooQi5yZWZlcnJlciksYSk7cmV0dXJuIGJ9blAucHVibGljTmFtZT0iZ2V0UmVmZXJyZXJVcmwiO2Z1bmN0aW9uIG9QKCl7cmV0dXJuIHptKCl9b1AuUD0iaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSI7ZnVuY3Rpb24gcFAoYSxiKXt2YXIgYztyZXR1cm4gY31wUC5QPSJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIHFQKGEsYil7dmFyIGM9bnVsbDsKcmV0dXJuIGN9cVAuUD0iaW50ZXJuYWwuZ2V0U2NvcGVkRWxlbWVudHNCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiByUCgpe3ZhciBhPW5ldyBrYjthLnNldCgid2lkdGgiLDApO2Euc2V0KCJoZWlnaHQiLDApO3JldHVybiBhfXJQLlA9ImludGVybmFsLmdldFNjcmVlbkRpbWVuc2lvbnMiO2Z1bmN0aW9uIHNQKCl7dmFyIGE9IiI7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtyZXR1cm4gYX10UC5QPSJpbnRlcm5hbC5nZXRUb3BXaW5kb3dVcmwiO2Z1bmN0aW9uIHVQKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIixhKTtiPUxqKFJqKEEubG9jYXRpb24uaHJlZiksYSk7cmV0dXJuIGJ9dVAucHVibGljTmFtZT0iZ2V0VXJsIjtmdW5jdGlvbiB2UCgpe0wodGhpcywiZ2V0X3VzZXJfYWdlbnQiKTtyZXR1cm4gSGMudXNlckFnZW50fXZQLnB1YmxpY05hbWU9ImdldFVzZXJBZ2VudCI7dlAuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50IjtmdW5jdGlvbiB3UCgpe3ZhciBhO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjtmdW5jdGlvbiB6UCgpe3ZhciBhPUE7cmV0dXJuIGEuZ2FHbG9iYWw9YS5nYUdsb2JhbHx8e319ZnVuY3Rpb24gQVAoYSxiKXt2YXIgYz16UCgpO2lmKGMudmlkPT09dm9pZCAwfHxiJiYhYy5mcm9tX2Nvb2tpZSljLnZpZD1hLGMuZnJvbV9jb29raWU9Yn07dmFyIEJQPVsiR0ExIl07dmFyIElQPWZ1bmN0aW9uKGEpe3NiKCJHQTRfRVZFTlQiLGEpfTsKdmFyIE1QPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBSZWdFeHAoIl4iKygoKGE9PW51bGw/dm9pZCAwOmEucHJlZml4KXx8IiIpKyJfZ2FfXFx3KyQiKSksYz15cShmdW5jdGlvbihwKXtyZXR1cm4gYi50ZXN0KHApfSksZD17fSxlO2ZvcihlIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9S1AoY1tlXSk7aWYoZil7dmFyIGc9YnEoZiwyKTtpZihnKXt2YXIgaD1MUChnKTtpZihoKXt2YXIgbD12b2lkIDAsbj0oKChsPWEpPT1udWxsP3ZvaWQgMDpsLnByZWZpeCl8fCIiKS5sZW5ndGgrNDtkWyJHLSIrZS5zdWJzdHJpbmcobildPWh9fX19cmV0dXJuIGR9LE5QPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiO2E6e3ZhciBjPShTYihhLCJzIikmJmEuaW5kZXhPZigiLiIpPT09LTE/IkdTMiI6IkdTMSIpKyIuMS4iK2E7dHJ5e2I9JHAoYywyKTticmVhayBhfWNhdGNoKGQpe31iPXZvaWQgMH1yZXR1cm4gYn19LEtQPWZ1bmN0aW9uKGEpe2lmKGEmJmEubGVuZ3RoIT09MCl7Zm9yKHZhciBiLApjPS1JbmZpbml0eSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoZi50IT09dm9pZCAwKXt2YXIgZz1OdW1iZXIoZi50KTshaXNOYU4oZykmJmc+YyYmKGM9ZyxiPWYpfX1yZXR1cm4gYn19LHpxPWZ1bmN0aW9uKGEpe2EmJihhPT09IkdTMSI/SVAoSi5VLkttKTphPT09IkdTMiImJklQKEouVS5MbSkpfSxMUD1mdW5jdGlvbihhKXt2YXIgYj1OUChhKTtpZihiKXt2YXIgYz1OdW1iZXIoYi5vKSxkPU51bWJlcihiLnQpLGU9TnVtYmVyKGIuanx8MCk7Y3x8SVAoSi5VLlVtKTtkfHxJUChKLlUuVG0pO2lzTmFOKGUpJiZJUChKLlUuU20pO2lmKGMmJmQmJiFpc05hTihlKSl7dmFyIGY9Yi5oLGc9ZiYmZiE9PSIwIj9TdHJpbmcoZik6dm9pZCAwLGg9Yi5kP1N0cmluZyhiLmQpOnZvaWQgMCxsPXt9O3JldHVybiBsLnM9U3RyaW5nKGIucyksbC5vPWMsbC5nPSEhTnVtYmVyKGIuZyksbC50PWQsbC5kPWgsbC5qPWUsbC5sPWIubD09PSIxIiwKbC5oPWcsbH19fTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O2Z1bmN0aW9uIHZSKGEpe3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiEhYyYmYy5jb252ZXJzaW9ufTtWKGEsSC5KLm1nLGIoWEsoYSkpKTtRKGEsSC5KLm5nKSYmVihhLEguSi5ZbSxiKFhLKGEsImZpcnN0X3Zpc2l0IikpKTtRKGEsSC5KLlRlKSYmVihhLEguSi5ibixiKFhLKGEsInNlc3Npb25fc3RhcnQiKSkpfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIFBSPVtGLkQucmEsRi5ELmthXSxRUj1bRi5ELnJhLEYuRC5rYSxGLkQubWFdOwpmdW5jdGlvbiBSUihhKXt2YXIgYixjPU0oNTA2KSYmIWRJKGEsImNjZF9nYV9hZHNfaWRzX29wdF9vdXQiLCExKSxkPSEhZEkoYSwiZ29vZ2xlX25nIiwhMSksZT1YbyhjP2Q/UVI6ZnA6UFIpLGY7Zj1kSShhLEYuRC5VZixPKGEuTSxGLkQuVWYpKXx8ISFkSShhLCJnb29nbGVfbmciLCExKTtiPXtoZjpjLEVzOmQsR286ZSxmZjpmLExnOiEhZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSxiaTpBbSgpLEdqOiFWSygpLEZzOmJrKFpLKGEpKSxEczohIVEoYSxILkouYmUpLEdzOiEhUShhLEguSi5UZSksdXM6ISFPKGEuTSxGLkQuTmwpLEtzOiEhUShhLEguSi5laikseGc6TyhhLk0sRi5ELlNjKSxucjpPKGEuTSxGLkQuU2Msdm9pZCAwLDQpLEhzOiEhUShhLEguSi5GYyl9O1YoYSxILkouY2osYi5mZik7VihhLEguSi5iaixTUihiKSk7Yi5oZiYmIWIuZmYmJmIuTGcmJlNSKGIpJiZVKGEsIl8maWJ0IiwiMSIpO1NSKGIpJiZiLkdvJiYoYi5oZj9iLnhnIT09ITF8fGIuTGc6MSkmJlYoYSwKSC5KLnJuLCEwKTtiLkVzJiYhYi5iaSYmVShhLEYuRC5MZSwxKTsoYi5oZj9iLnhnOmIubnIpPT09ITEmJlUoYSwiXyZuZ3MiLCIxIik7VihhLEguSi5oZCxUUihiKSYmKGIuR3N8fGIudXMpKTtWKGEsSC5KLnJnLFRSKGIpJiZiLktzJiYhYi5iaSl9ZnVuY3Rpb24gU1IoYSl7cmV0dXJuIGEuaGY/KGEuTGd8fGEuZmYpJiYhYS5iaSYmIWEuR2o6YS5mZiYmYS54ZyE9PSExJiYhYS5HaiYmIWEuYml9ZnVuY3Rpb24gVFIoYSl7aWYoYS5IcylyZXR1cm4hMTtpZihhLmhmKXtpZighYS5mZiYmIWEuTGcpcmV0dXJuITF9ZWxzZSBpZighYS5mZilyZXR1cm4hMTtyZXR1cm4gYS5Gc3x8YS5Ec3x8YS5Hanx8KGEuaGY/YS54Zz09PSExJiYhYS5MZzphLnhnPT09ITEpfHwhYS5Hbz8hMTohMH07dmFyIGJTPWZ1bmN0aW9uKGEpe3ZhciBiPSEwO2I9Yj09PXZvaWQgMD8hMTpiO2lmKE0oNDI1KSYmIShwbCgpfHxiJiZRKGEsSC5KLmRqKXx8YS5ldmVudE5hbWUhPT1GLkQud2F8fFEoYSxILkouRmMpKSl7dmFyIGM9e30sZD17fSxlPXtldmVudE1ldGFkYXRhOm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS5NLmV2ZW50TWV0YWRhdGEsKGNbSC5KLkZjXT0hMCxjKSxiP3t9OihkW0guSi5EY109WC5WLkthLGQpKSxub0d0bUV2ZW50OiEwfSxmPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsInN0cnVjdHVyZWRfZGF0YSIsYS5NLkVhKTttRChmLGEuTS5ldmVudElkLGUpfX07ZnVuY3Rpb24gaFMoYSl7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtyZXR1cm4gYn0KZnVuY3Rpb24galMoYSxiKXt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9dmFyIG5TPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKylhLmhhc093blByb3BlcnR5KGJbZF0pJiYoYVtTdHJpbmcoYltkXSldPWMoYVtTdHJpbmcoYltkXSldKSl9O2Z1bmN0aW9uIG9TKGEsYixjKXt2YXIgZD10aGlzO2lmKCFsaChhKXx8IWZoKGIpfHwhZmgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1iP1RkKGIsdGhpcy5ULDEpOnt9O1RGKFtmdW5jdGlvbigpe3JldHVybiBMKGQsImNvbmZpZ3VyZV9nb29nbGVfdGFncyIsYSxlKX1dKTt2YXIgZj1jP1RkKGMpOnt9LGc9WEYodGhpcyk7Zi5vcmlnaW5hdGluZ0VudGl0eT10RyhnKTtnLnByaW9yaXR5UXVldWUmJihmLnByaW9yaXR5UXVldWU9Zy5wcmlvcml0eVF1ZXVlKTttRChyQyhhLGUpLGcuZXZlbnRJZCxmKTt9b1MuUD0iaW50ZXJuYWwuZ3RhZ0NvbmZpZyI7ZnVuY3Rpb24gcFMoYSxiLGMsZCl7dmFyIGU9dGhpczt9cFMuUD0iaW50ZXJuYWwuZ3RhZ0Rlc3RpbmF0aW9uQ29uZmlnIjsKZnVuY3Rpb24gclMoYSxiKXt9CnJTLnB1YmxpY05hbWU9Imd0YWdTZXQiO2Z1bmN0aW9uIHNTKCl7dmFyIGE9e307cmV0dXJuIGF9O2Z1bmN0aW9uIHRTKGEpe310Uy5QPSJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciI7ZnVuY3Rpb24gdVMoYSxiKXt9dVMucHVibGljTmFtZT0iaW5qZWN0SGlkZGVuSWZyYW1lIjtmdW5jdGlvbiB2UyhhLGIsYyxkLGUpe2lmKCEoKGxoKGEpfHxraChhKSkmJmhoKGIpJiZoaChjKSYmcGgoZCkmJnBoKGUpKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfE9wYXF1ZVZhbHVlIiwiZnVuY3Rpb24iLCJmdW5jdGlvbiIsImJvb2xlYW58dW5kZWZpbmVkIiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBmPVhGKHRoaXMpLGc9Q0YoKTtkJiZnKDMpO2UmJihnKDEpLGcoMikpO3ZhciBoPWYuZXZlbnRJZCxsPWYuUGIoKSxuPWcodm9pZCAwKTtERnx8KERGPW5ldyBCRik7dmFyIHA9REY7aWYoZm4uTil7dmFyIHE9U3RyaW5nKG4pK2w7cC5IW2hdPXAuSFtoXXx8W107cC5IW2hdLnB1c2gocSk7cC5LW2hdPXAuS1toXXx8W107cC5LW2hdLnB1c2goInAiK2wpfWlmKGQmJmUpdGhyb3cgRXJyb3IoInVzZUlmcmFtZSBhbmQgc3VwcG9ydERvY3VtZW50V3JpdGUgY2Fubm90IGJvdGggYmUgdHJ1ZS4iKTsKTCh0aGlzLCJ1bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sIixkLGUpO3ZhciByPVRkKGIsdGhpcy5UKSx0PVRkKGMsdGhpcy5UKSx1PVRkKGEsdGhpcy5ULDEpO3dTKHUscix0LCEhZCwhIWUsZik7fQp2YXIgeFM9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGZ1bmN0aW9uKCl7dHJ5e2lmKGIubGVuZ3RoPjApe3ZhciBlPWIuc2hpZnQoKSxmPXhTKGEsYixjLGQpLGc9ZTtpZihTdHJpbmcoZy5ub2RlTmFtZSkudG9VcHBlckNhc2UoKT09PSJTQ1JJUFQiJiZnLnR5cGU9PT0idGV4dC9ndG1zY3JpcHQiKXt2YXIgaD1nLnRleHR8fGcudGV4dENvbnRlbnR8fGcuaW5uZXJIVE1MfHwiIixsPWcuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bXNyYyIpLG49Zy5jaGFyc2V0fHwiIjtsP1VjKGwsZixkLHthc3luYzohMSxpZDplLmlkLHRleHQ6aCxjaGFyc2V0Om59LGEpOihnPUIuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZy5hc3luYz0hMSxnLnR5cGU9InRleHQvamF2YXNjcmlwdCIsZy5pZD1lLmlkLGcudGV4dD1oLGcuY2hhcnNldD1uLGYmJihnLm9ubG9hZD1mKSxhLmluc2VydEJlZm9yZShnLG51bGwpKTtsfHxmKCl9ZWxzZSBpZihlLmlubmVySFRNTCYmZS5pbm5lckhUTUwudG9Mb3dlckNhc2UoKS5pbmRleE9mKCI8c2NyaXB0Iik+PQowKXtmb3IodmFyIHA9W107ZS5maXJzdENoaWxkOylwLnB1c2goZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpKTthLmluc2VydEJlZm9yZShlLG51bGwpO3hTKGUscCxmLGQpKCl9ZWxzZSBhLmluc2VydEJlZm9yZShlLG51bGwpLGYoKX1lbHNlIGMoKX1jYXRjaChxKXtkKCl9fX0sd1M9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKEIuYm9keSl7dmFyIGc9U2soYSxiLGMpO2E9Zy53cztiPWcub25TdWNjZXNzO2lmKGQpe31lbHNlIGU/CnlTKGEsYixjKTp4UyhCLmJvZHksZ2QoYSksYixjKSgpfWVsc2UgQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d1MoYSxiLGMsZCxlLGYpfSl9O3ZTLlA9ImludGVybmFsLmluamVjdEh0bWwiO3ZhciB6Uz1mdW5jdGlvbihhLGIsYyxkLGUsZil7Zj9lW2ZdPyhlW2ZdWzBdLnB1c2goYyksZVtmXVsxXS5wdXNoKGQpKTooZVtmXT1bW2NdLFtkXV0sVWMoYSxmdW5jdGlvbigpe2Zvcih2YXIgZz1lW2ZdWzBdLGg9MDtoPGcubGVuZ3RoO2grKyliZChnW2hdKTtnLnB1c2g9ZnVuY3Rpb24obCl7YmQobCk7cmV0dXJuIDB9fSxmdW5jdGlvbigpe2Zvcih2YXIgZz1lW2ZdWzFdLGg9MDtoPGcubGVuZ3RoO2grKyliZChnW2hdKTtlW2ZdPW51bGx9LGIpKTpVYyhhLGMsZCxiKX07dmFyIEFTPXtkbDoxLGlkOjF9OwpmdW5jdGlvbiBCUyhhLGIsYyxkKXt2YXIgZT12b2lkIDAsZj12b2lkIDA7aWYoIWxoKGEpJiYhZWgoYSl8fCFpaChiKXx8IWloKGMpfHwhbWgoZCkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3xPYmplY3QiLCJmdW5jdGlvbnx1bmRlZmluZWQiLCJmdW5jdGlvbnx1bmRlZmluZWQiLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZih6YihhKSlmPWE7ZWxzZXtlPVRkKGEpO3ZhciBnPXt9LGg7Zm9yKGggaW4gZSlpZihlLmhhc093blByb3BlcnR5KGgpKXt2YXIgbD1lW2hdO2g9aC50b0xvd2VyQ2FzZSgpO2lmKGg9PT0ic3JjIilmPVN0cmluZyhsKTtlbHNlIGlmKFNiKGgsImRhdGEtIil8fEFTLmhhc093blByb3BlcnR5KGgpKWdbaF09bH1lPWc7ZS5hc3luYz0hMH1pZighZil0aHJvdyBFcnJvcih0aGlzLmdldE5hbWUoKSsiOiBzY3JpcHQgc3JjIGF0dHJpYnV0ZSBpcyByZXF1aXJlZC4iKTsKTCh0aGlzLCJpbmplY3Rfc2NyaXB0IixmKTt2YXIgbj10aGlzLlQ7elMoZixlLGZ1bmN0aW9uKCl7YiYmYi5OYyhuKX0sZnVuY3Rpb24oKXtjJiZjLk5jKG4pfSxhbCgxNSxmdW5jdGlvbigpe3JldHVybnt9fSksZCk7fUJTLnB1YmxpY05hbWU9ImluamVjdFNjcmlwdCI7ZnVuY3Rpb24gQ1MoKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjUiXTtyZXR1cm4gYn1DUy5QPSJpbnRlcm5hbC5pc0F1dG9QaWlFbGlnaWJsZSI7ZnVuY3Rpb24gRFMoYSl7dmFyIGI9ITA7aWYoIWxoKGEpJiYhamgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIkFycmF5Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhKTtpZih6YihjKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixjLCJyZWFkIik7ZWxzZSBmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixlLnZhbHVlLCJyZWFkIik7Yj1YbyhjKTtyZXR1cm4gYn1EUy5wdWJsaWNOYW1lPSJpc0NvbnNlbnRHcmFudGVkIjtmdW5jdGlvbiBFUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1FUy5QPSJpbnRlcm5hbC5pc0RlYnVnTW9kZSI7ZnVuY3Rpb24gRlMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9RlMuUD0iaW50ZXJuYWwuaXNEZXN0aW5hdGlvbkluaXRpYWxpemVkIjtmdW5jdGlvbiBHUygpe3JldHVybiBCbSgpfUdTLlA9ImludGVybmFsLmlzRG1hUmVnaW9uIjtmdW5jdGlvbiBIUygpe3JldHVybiBVQigpfUhTLlA9ImludGVybmFsLmlzRG9tUmVhZHkiO2Z1bmN0aW9uIElTKGEpe3ZhciBiPSExO3JldHVybiBifUlTLlA9ImludGVybmFsLmlzRW50aXR5SW5mcmFzdHJ1Y3R1cmUiO2Z1bmN0aW9uIEpTKGEpe3ZhciBiPSExO2lmKCFxaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIl0sW2FdKTtiPU0oYSk7cmV0dXJuIGJ9SlMuUD0iaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCI7ZnVuY3Rpb24gS1MoKXt2YXIgYT0hMTtyZXR1cm4gYX1LUy5QPSJpbnRlcm5hbC5pc0ZwZmUiO2Z1bmN0aW9uIExTKCl7dmFyIGE9ITE7cmV0dXJuIGF9TFMuUD0iaW50ZXJuYWwuaXNHY3BCcm93c2VyIjtmdW5jdGlvbiBNUygpe3ZhciBhPSExO3JldHVybiBhfU1TLlA9ImludGVybmFsLmlzTGFuZGluZ1BhZ2UiO2Z1bmN0aW9uIE5TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TlMuUD0iaW50ZXJuYWwuaXNPZ3QiO2Z1bmN0aW9uIE9TKCl7dmFyIGE7cmV0dXJuIGF9T1MuUD0iaW50ZXJuYWwuaXNTYWZhcmlQY21FbGlnaWJsZUJyb3dzZXIiO2Z1bmN0aW9uIFBTKCl7dmFyIGE9UWgoZnVuY3Rpb24oYil7WEYodGhpcykubG9nKCJlcnJvciIsYil9KTthLnB1YmxpY05hbWU9IkpTT04iO3JldHVybiBhfTtmdW5jdGlvbiBRUyhhKXt2YXIgYj12b2lkIDA7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2I9UmooYSk7cmV0dXJuIFVkKGIpfVFTLlA9ImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIjtmdW5jdGlvbiBSUygpe3JldHVybiExfQp2YXIgU1M9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe3JldHVybiExfSxyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe319O2Z1bmN0aW9uIFRTKCl7dHJ5e0wodGhpcywibG9nZ2luZyIpfWNhdGNoKGQpe3JldHVybn1pZighY29uc29sZSlyZXR1cm47Zm9yKHZhciBhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxiPTA7YjxhLmxlbmd0aDtiKyspYVtiXT1UZChhW2JdLHRoaXMuVCk7dmFyIGM9WEYodGhpcyk7Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxhKTt0RyhjKTt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybjthJiZTYihhLCIvLyIpJiYoYT1CLmxvY2F0aW9uLnByb3RvY29sK2EpO2lmKHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24iKXt2YXIgYzthOnt2YXIgZDt0cnl7ZD1uZXcgVVJMKGEpfWNhdGNoKHgpe2M9dm9pZCAwO2JyZWFrIGF9Zm9yKHZhciBlPXt9LGY9QXJyYXkuZnJvbShkLnNlYXJjaFBhcmFtcyksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddWzBdLGw9ZltnXVsxXTtlLmhhc093blByb3BlcnR5KGgpP3R5cGVvZiBlW2hdPT09InN0cmluZyI/ZVtoXT1bZVtoXSxsXTplW2hdLnB1c2gobCk6ZVtoXT1sfWM9e2hyZWY6ZC5ocmVmLG9yaWdpbjpkLm9yaWdpbixwcm90b2NvbDpkLnByb3RvY29sLHVzZXJuYW1lOmQudXNlcm5hbWUscGFzc3dvcmQ6ZC5wYXNzd29yZCxob3N0OmQuaG9zdCxob3N0bmFtZTpkLmhvc3RuYW1lLApwb3J0OmQucG9ydCxwYXRobmFtZTpkLnBhdGhuYW1lLHNlYXJjaDpkLnNlYXJjaCxzZWFyY2hQYXJhbXM6ZSxoYXNoOmQuaGFzaH19cmV0dXJuIFVkKGMpfXZhciBuO3RyeXtuPVJqKGEpfWNhdGNoKHgpe3JldHVybn1pZighbi5wcm90b2NvbHx8IW4uaG9zdClyZXR1cm47dmFyIHA9e307aWYobi5zZWFyY2gpZm9yKHZhciBxPW4uc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLHI9MDtyPHEubGVuZ3RoO3IrKyl7dmFyIHQ9cVtyXS5zcGxpdCgiPSIpLHU9dFswXSx2PUtqKHQuc3BsaWNlKDEpLmpvaW4oIj0iKSl8fCIiO3Y9di5yZXBsYWNlKC9cKy9nLCIgIik7cC5oYXNPd25Qcm9wZXJ0eSh1KT90eXBlb2YgcFt1XT09PSJzdHJpbmciP3BbdV09W3BbdV0sdl06cFt1XS5wdXNoKHYpOnBbdV09dn1uLnNlYXJjaFBhcmFtcz1wO24ub3JpZ2luPW4ucHJvdG9jb2wrIi8vIituLmhvc3Q7bi51c2VybmFtZT0iIjtuLnBhc3N3b3JkPSIiO2I9VWQobik7CnJldHVybiBifVdTLnB1YmxpY05hbWU9InBhcnNlVXJsIjtmdW5jdGlvbiBYUyhhKXt9WFMuUD0iaW50ZXJuYWwucHJvY2Vzc0FzTmV3RXZlbnQiO2Z1bmN0aW9uIFlTKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1ZUy5QPSJpbnRlcm5hbC5wdXNoVG9EYXRhTGF5ZXIiO2Z1bmN0aW9uIFpTKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPSExO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtmb3IodmFyIGQ9W3RoaXMsYV0sZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQucHVzaChUZChmLnZhbHVlLHRoaXMuVCwxKSk7dHJ5e0wuYXBwbHkobnVsbCxkKSxjPSEwfWNhdGNoKGcpe3JldHVybiExfXJldHVybiBjfVpTLnB1YmxpY05hbWU9InF1ZXJ5UGVybWlzc2lvbiI7ZnVuY3Rpb24gJFMoYSl7dmFyIGI9dGhpczt9JFMuUD0iaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iO2Z1bmN0aW9uIGFUKGEpe3ZhciBiPXZvaWQgMDtpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9hbmFseXRpY3Nfc3RvcmFnZSIpO3ZhciBjPXt9LGQ9VGQoYSx0aGlzLlQpfHx7fSxlPXtwcmVmaXg6U3RyaW5nKGQuY29va2llX3ByZWZpeHx8IiIpLHBhdGg6U3RyaW5nKGQuY29va2llX3BhdGh8fCIvIiksZmxhZ3M6IiIsZG9tYWluOlN0cmluZyhkLmNvb2tpZV9kb21haW58fCJhdXRvIikscGQ6NjMwNzJFM30sZj1CdihlLnByZWZpeCsiX2dhIixlLmRvbWFpbixlLnBhdGgsQlAsRi5ELnJhKTtmJiYoYy5jbGllbnRfaWQ9Zik7dmFyIGc9TVAoZSksaD1bXSxsO2ZvcihsIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShsKSl7dmFyIG49Z1tsXTtoLnB1c2goe21lYXN1cmVtZW50X2lkOmwsc2Vzc2lvbl9pZDpTdHJpbmcobi5zKSwKc2Vzc2lvbl9udW1iZXI6TnVtYmVyKG4ubyl9KX1jLnNlc3Npb25zPWg7Yj1VZChjKTtyZXR1cm4gYn1hVC5wdWJsaWNOYW1lPSJyZWFkQW5hbHl0aWNzU3RvcmFnZSI7ZnVuY3Rpb24gYlQoKXt2YXIgYT0iIjtyZXR1cm4gYX1iVC5wdWJsaWNOYW1lPSJyZWFkQ2hhcmFjdGVyU2V0IjtmdW5jdGlvbiBjVCgpe3JldHVybiBFKDE5KX1jVC5QPSJpbnRlcm5hbC5yZWFkRGF0YUxheWVyTmFtZSI7ZnVuY3Rpb24gZFQoKXt2YXIgYT0iIjtyZXR1cm4gYX1kVC5wdWJsaWNOYW1lPSJyZWFkVGl0bGUiO2Z1bmN0aW9uIGVUKGEsYil7dmFyIGM9dGhpczt9ZVQuUD0iaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayI7ZnVuY3Rpb24gZlQoYSxiKXtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7fXhULlA9ImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiB5VChhLGIsYyl7aWYoIWxoKGEpfHwhcGgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwicmVhZHdyaXRlIixhKTt2YXIgZD1hLnNwbGl0KCIuIiksZT1VYihBLGQsW0EsQl0pLGY9ZC5wb3AoKTtpZihlJiYoZVtTdHJpbmcoZildPT09dm9pZCAwfHxjKSlyZXR1cm4gZVtTdHJpbmcoZildPVRkKGIsdGhpcy5ULDIpLCEwO3JldHVybiExfXlULnB1YmxpY05hbWU9InNldEluV2luZG93IjtmdW5jdGlvbiB6VChhLGIsYyl7fXpULlA9ImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gQVQoYSxiLGMpe31BVC5QPSJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIEJUKGEsYil7fQpCVC5QPSJpbnRlcm5hbC5zZXRUcmFuc21pc3Npb25Nb2RlIjtmdW5jdGlvbiBDVChhLGIsYyxkKXt2YXIgZT10aGlzO31DVC5wdWJsaWNOYW1lPSJzaGEyNTYiO2Z1bmN0aW9uIERUKGEsYixjKXt9CkRULlA9ImludGVybmFsLnNvcnRSZW1vdGVDb25maWdQYXJhbWV0ZXJzIjtmdW5jdGlvbiBFVChhKXt9RVQuUD0iaW50ZXJuYWwuc3RvcmVBZHNCcmFpZExhYmVscyI7ZnVuY3Rpb24gRlQoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9RlQuUD0iaW50ZXJuYWwuc3Vic2NyaWJlVG9Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIEdUKGEpe31HVC5QPSJpbnRlcm5hbC50YXNrU2VuZEFkc0hpdHMiO3ZhciBIVD17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXSYmKGI9ZFtjXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSk/ZFtjXVsiZ3RtLiIrYV06bnVsbCk7cmV0dXJuIGJ9LHNldEl0ZW06ZnVuY3Rpb24oYSxiKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY109ZFtjXXx8e307ZFtjXVsiZ3RtLiIrYV09Yjt9LApyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYj1YRih0aGlzKS5QYigpLGM9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoIWNbYl18fCFjW2JdLmhhc093blByb3BlcnR5KCJndG0uIithKSlyZXR1cm47ZGVsZXRlIGNbYl1bImd0bS4iK2FdO30sY2xlYXI6ZnVuY3Rpb24oKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGE9WEYodGhpcykuUGIoKTtkZWxldGUgYWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSlbYV07fSwKcHVibGljTmFtZToidGVtcGxhdGVTdG9yYWdlIn07ZnVuY3Rpb24gSVQoYSxiKXt2YXIgYz0hMTtpZigha2goYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT3BhcXVlVmFsdWUiLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWEuZ2V0VmFsdWUoKTtpZighKGQgaW5zdGFuY2VvZiBSZWdFeHApKXJldHVybiExO2M9ZC50ZXN0KGIpO3JldHVybiBjfUlULlA9ImludGVybmFsLnRlc3RSZWdleCI7ZnVuY3Rpb24gSlQoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEtUKGEsYil7fUtULlA9ImludGVybmFsLnRyYWNrVXNhZ2UiO2Z1bmN0aW9uIExUKGEsYil7dmFyIGM7cmV0dXJuIGN9TFQuUD0iaW50ZXJuYWwudW5zdWJzY3JpYmVGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBNVChhKXt9TVQucHVibGljTmFtZT0idXBkYXRlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBOVChhKXt2YXIgYj0hMTtyZXR1cm4gYn1OVC5QPSJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiI7dmFyIE9UPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBhaX0sUVQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGI7dmFyIGM9UFQuSDtpZihjLmNvbnRhaW5zKGEpKWI9Yy5nZXQoYSx0aGlzKTtlbHNle3ZhciBkO2lmKGQ9Yy5ILmhhc093blByb3BlcnR5KGEpKXt2YXIgZT10aGlzLlQueGIoKTtpZihlKXt2YXIgZj0hMSxnPWUuUGIoKTtpZihnKXtCaChnKXx8KGY9ITApO31kPWZ9ZWxzZSBkPSEwfWlmKGQpe3ZhciBoPWMuSC5oYXNPd25Qcm9wZXJ0eShhKT9jLkhbYV06dm9pZCAwO2I9aH1lbHNlIHRocm93IEVycm9yKGErIiBpcyBub3QgYSB2YWxpZCBBUEkgbmFtZS4iKTt9cmV0dXJuIGJ9fSxQVDtmdW5jdGlvbiBSVChhLGIsYyl7UFR8fChQVD1uZXcgT1QpO1BULkguYWRkKGEsYixjKX1mdW5jdGlvbiBTVChhLGIpe1BUfHwoUFQ9bmV3IE9UKTt2YXIgYz1QVC5IO2lmKGMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZihjLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2l0aCBhbiBleGlzdGluZyBBUEkgbmFtZTogIithKyIuIik7Yy5IW2FdPXliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gVFQoYSxiKXtmdW5jdGlvbiBjKGQpe2lmKCFlaChkKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgZT1UZChkLHRoaXMuVCwxKS5yYigpO2EoZSl9Yy5QPSJpbnRlcm5hbC4iK2I7cmV0dXJuIGN9O2Z1bmN0aW9uIFVUKCl7dmFyIGE9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgU1QoYy5QLGMpfSxiPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFJUKGMucHVibGljTmFtZSxjKX07YihSRik7YihZRik7YihSRyk7YihURyk7YihVRyk7YihkSCk7YihmSCk7YihoSSk7YihQUygpKTtiKGpJKTtiKE9PKTtiKFBPKTtiKGxQKTtiKG1QKTtiKG5QKTtiKHVQKTtiKHZQKTtiKHJTKTtiKHVTKTtiKEJTKTtiKERTKTtiKFRTKTtiKFdTKTtiKFpTKTtiKGFUKTtiKGJUKTtiKGRUKTtiKG9UKTtiKHJUKTtiKHVUKTtiKHlUKTtiKENUKTtiKEhUKTtiKE1UKTtSVCgiTWF0aCIsemgoKSk7UlQoIk9iamVjdCIsWmgpO1JUKCJUZXN0SGVscGVyIixjaSgpKTtSVCgiYXNzZXJ0QXBpIix3aCk7UlQoImFzc2VydFRoYXQiLHhoKTtSVCgiZGVjb2RlVXJpIixDaCk7UlQoImRlY29kZVVyaUNvbXBvbmVudCIsRGgpO1JUKCJlbmNvZGVVcmkiLEVoKTtSVCgiZW5jb2RlVXJpQ29tcG9uZW50IixGaCk7UlQoImZhaWwiLApMaCk7UlQoImdlbmVyYXRlUmFuZG9tIixOaCk7UlQoImdldFRpbWVzdGFtcCIsT2gpO1JUKCJnZXRUaW1lc3RhbXBNaWxsaXMiLE9oKTtSVCgiZ2V0VHlwZSIsUGgpO1JUKCJtYWtlSW50ZWdlciIsUmgpO1JUKCJtYWtlTnVtYmVyIixTaCk7UlQoIm1ha2VTdHJpbmciLFRoKTtSVCgibWFrZVRhYmxlTWFwIixVaCk7UlQoIm1vY2siLFhoKTtSVCgibW9ja09iamVjdCIsWWgpO1JUKCJmcm9tQmFzZTY0IixITywhKCJhdG9iImluIEEpKTtSVCgibG9jYWxTdG9yYWdlIixTUywhUlMoKSk7UlQoInRvQmFzZTY0IixKVCwhKCJidG9hImluIEEpKTthKFFGKTthKFVGKTthKG5HKTthKHNHKTthKElHKTthKFBHKTthKFNHKTthKFZHKTthKFdHKTthKFpHKTthKCRHKTthKGFIKTthKGJIKTthKGNIKTthKGVIKTthKGdIKTthKGdJKTthKGlJKTthKGtJKTthKGxJKTthKG1JKTthKG5JKTthKG9JKTthKGZKKTthKG1KKTthKHRKKTthKHVKKTthKEFKKTthKEZKKTthKEtKKTthKFJKKTthKFdKKTthKGdLKTsKYShpSyk7YSh2Syk7YSh3Syk7YSh4Syk7YShGTyk7YShHTyk7YShJTyk7YShKTyk7YShLTyk7YShMTyk7YShNTyk7YShOTyk7YShRTyk7YShSTyk7YShTTyk7YShUTyk7YShVTyk7YShWTyk7YShXTyk7YShYTyk7YShZTyk7YShaTyk7YSgkTyk7YShhUCk7YShiUCk7YShjUCk7YShkUCk7YShlUCk7YShmUCk7YShnUCk7YShoUCk7YShpUCk7YShqUCk7YShrUCk7YShvUCk7YShwUCk7YShxUCk7YShyUCk7YShzUCk7YSh0UCk7YSh3UCk7YShvUyk7YShwUyk7YSh0Uyk7YSh2Uyk7YShDUyk7YShFUyk7YShGUyk7YShHUyk7YShIUyk7YShJUyk7YShKUyk7YShLUyk7YShMUyk7YShNUyk7YShOUyk7YShPUyk7YShRUyk7YShHRyk7YShVUyk7YShWUyk7YShYUyk7YShZUyk7YSgkUyk7YShjVCk7YShlVCk7YShmVCk7YShoVCk7YShpVCk7YShqVCk7YShsVCk7YShtVCk7YShuVCk7YShwVCk7YShxVCk7YShzVCk7YSh0VCk7YSh2VCk7YSh3VCk7YSh4VCk7YSh6VCk7YShBVCk7YShCVCk7YShEVCk7CmEoRVQpO2EoRlQpO2EoR1QpO2EoSVQpO2EoS1QpO2EoTFQpO2EoTlQpO1NUKCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIixzUygpKTtTVCgiaW50ZXJuYWwucXVpY2tIYXNoIixNaCk7YShUVChNRiwidGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiKSksYShUVChQRiwidGFza1NldFVuaXZlcnNhbFBhcmFtcyIpKTthKFRUKExGLCJ0YXNrQWRkQWRzQ2xpY2tJZHMiKSk7UFR8fChQVD1uZXcgT1QpO3JldHVybiBRVCgpfTt2YXIgSkY7ZnVuY3Rpb24gVlQoKXtKRi5zZChmdW5jdGlvbihhLGIsYyl7bGooKTt2YXIgZD1qajtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT1kLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRXx8MDtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRSsrO3RyeXtyZXR1cm4gYS5hcHBseShiLGMpfWZpbmFsbHl7bGooKSxqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUtLX19KX1mdW5jdGlvbiBXVChhKXtpZihhJiZhLmxlbmd0aClmb3IodmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXS5yZXBsYWNlKC9eXyovLCIiKTtiW2RdPVsic2FuZGJveGVkU2NyaXB0cyJdfX0KZnVuY3Rpb24gWFQoYSl7aWYoYSl7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO0diKGEsZnVuY3Rpb24oYyxkKXtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9ZFtlXS5yZXBsYWNlKC9eXyovLCIiKTtiW2ZdPWJbZl18fFtdO2JbZl0ucHVzaChjKX19KX19O2Z1bmN0aW9uIFpUKGEpe21EKHBDKCJkZXZlbG9wZXJfaWQuIithLCEwKSwwLHt9KX07ZnVuY3Rpb24gJFQoYSxiKXtyZXR1cm4gRWQoYSxifHxudWxsKX1mdW5jdGlvbiBZKGEpe3JldHVybiB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGEpfWZ1bmN0aW9uIGFVKGEpe1pjKGEsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYlUoYSl7dmFyIGI9WyJ2ZWludGVyYWN0aXZlLmNvbSIsInZlLWludGVyYWN0aXZlLmNuIl07aWYoIWEpcmV0dXJuITE7dmFyIGM9TGooUmooYSksImhvc3QiKTtpZighYylyZXR1cm4hMTtmb3IodmFyIGQ9MDtiJiZkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSYmYltkXS50b0xvd2VyQ2FzZSgpO2lmKGUpe3ZhciBmPWMubGVuZ3RoLWUubGVuZ3RoO2Y+MCYmZS5jaGFyQXQoMCkhPT0iLiImJihmLS0sZT0iLiIrZSk7aWYoZj49MCYmYy5pbmRleE9mKGUsZik9PT1mKXJldHVybiEwfX1yZXR1cm4hMX0KZnVuY3Rpb24gY1UoYSxiLGMpe2Zvcih2YXIgZD17fSxlPSExLGY9MDthJiZmPGEubGVuZ3RoO2YrKylhW2ZdJiZhW2ZdLmhhc093blByb3BlcnR5KGIpJiZhW2ZdLmhhc093blByb3BlcnR5KGMpJiYoZFthW2ZdW2JdXT1hW2ZdW2NdLGU9ITApO3JldHVybiBlP2Q6bnVsbH1mdW5jdGlvbiBkVShhLGIpe3ZhciBjPXt9O2lmKGEpZm9yKHZhciBkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YVtkXSk7aWYoYil7dmFyIGU9Y1UoYiwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiKTtlJiYoYz0kVChlLGMpKX1yZXR1cm4gY31mdW5jdGlvbiBlVShhLGIsYyl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1jP2I6YX0KZnVuY3Rpb24gZlUoYSxiLGMpe3JldHVybiBVYyhhLGIsYyx2b2lkIDApfWZ1bmN0aW9uIGdVKGEsYil7QVthXT1ifWZ1bmN0aW9uIGhVKGEsYixjKXt2YXIgZD1BO2ImJihkW2FdPT09dm9pZCAwfHxjJiYhZFthXSkmJihkW2FdPWIpO3JldHVybiBkW2FdfQp2YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2VsZW1lbnRfdmFsdWVzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkLGUpe3JldHVybntlbGVtZW50OmMsb3BlcmF0aW9uOmQsbmV3VmFsdWU6ZX19KGZ1bmN0aW9uKGIpe1ouX19hY2Nlc3NfZWxlbWVudF92YWx1ZXM9YjtaLl9fYWNjZXNzX2VsZW1lbnRfdmFsdWVzLk89ImFjY2Vzc19lbGVtZW50X3ZhbHVlcyI7Wi5fX2FjY2Vzc19lbGVtZW50X3ZhbHVlcy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfZWxlbWVudF92YWx1ZXMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfZWxlbWVudF92YWx1ZXMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fYWNjZXNzX2VsZW1lbnRfdmFsdWVzWyI1Il09ITE7Wi5fX2FjY2Vzc19lbGVtZW50X3ZhbHVlc1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dSZWFkLGQ9Yi52dHBfYWxsb3dXcml0ZSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjsKcmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCxsKXtpZighKGcgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpdGhyb3cgZShmLHt9LCJFbGVtZW50IG11c3QgYmUgYSBIVE1MRWxlbWVudC4iKTtpZihoIT09InJlYWQiJiZoIT09IndyaXRlIil0aHJvdyBlKGYse30sIlVua25vd24gb3BlcmF0aW9uOiAiK2grIi4iKTtpZihoPT0icmVhZCImJiFjKXRocm93IGUoZix7fSwiQXR0ZW1wdGluZyB0byBwZXJmb3JtIGRpc2FsbG93ZWQgb3BlcmF0aW9uOiByZWFkLiIpO2lmKGg9PSJ3cml0ZSIpe2lmKCFkKXRocm93IGUoZix7fSwiQXR0ZW1wdGluZyB0byBwZXJmb3JtIGRpc2FsbG93ZWQgb3BlcmF0aW9uOiB3cml0ZS4iKTtpZighemIobCkpdGhyb3cgZShmLHt9LCJBdHRlbXB0aW5nIHRvIHdyaXRlIHZhbHVlIHdpdGhvdXQgdmFsaWQgbmV3IHZhbHVlLiIpO319LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc19nbG9iYWxzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXt2YXIgZT17a2V5OmQscmVhZDohMSx3cml0ZTohMSxleGVjdXRlOiExfTtzd2l0Y2goYyl7Y2FzZSAicmVhZCI6ZS5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjplLndyaXRlPSEwO2JyZWFrO2Nhc2UgInJlYWR3cml0ZSI6ZS5yZWFkPWUud3JpdGU9ITA7YnJlYWs7Y2FzZSAiZXhlY3V0ZSI6ZS5leGVjdXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgcmVxdWVzdCAiK2MpO31yZXR1cm4gZX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19nbG9iYWxzPWI7Wi5fX2FjY2Vzc19nbG9iYWxzLk89ImFjY2Vzc19nbG9iYWxzIjtaLl9fYWNjZXNzX2dsb2JhbHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2dsb2JhbHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfZ2xvYmFscy5pc0luZnJhc3RydWN0dXJlPSExOwpaLl9fYWNjZXNzX2dsb2JhbHNbIjUiXT0hMTtaLl9fYWNjZXNzX2dsb2JhbHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1iLnZ0cF9rZXlzfHxbXSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcixlPVtdLGY9W10sZz1bXSxoPTA7aDxjLmxlbmd0aDtoKyspe3ZhciBsPWNbaF0sbj1sLmtleTtsLnJlYWQmJmUucHVzaChuKTtsLndyaXRlJiZmLnB1c2gobik7bC5leGVjdXRlJiZnLnB1c2gobil9cmV0dXJue2Fzc2VydDpmdW5jdGlvbihwLHEscil7aWYoIXpiKHIpKXRocm93IGQocCx7fSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYocT09PSJyZWFkIil7aWYoZS5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0id3JpdGUiKXtpZihmLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJyZWFkd3JpdGUiKXtpZihmLmluZGV4T2Yocik+LTEmJmUuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09ImV4ZWN1dGUiKXtpZihnLmluZGV4T2Yocik+Ci0xKXJldHVybn1lbHNlIHRocm93IGQocCx7fSwiT3BlcmF0aW9uIG11c3QgYmUgZWl0aGVyICdyZWFkJywgJ3dyaXRlJywgb3IgJ2V4ZWN1dGUnLCB3YXMgIitxKTt0aHJvdyBkKHAse30sIlByb2hpYml0ZWQgIitxKyIgb24gZ2xvYmFsIHZhcmlhYmxlOiAiK3IrIi4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQsZSl7dmFyIGY9e3Byb3BlcnR5OmUscmVhZDohMSx3cml0ZTohMX07c3dpdGNoKGQpe2Nhc2UgInJlYWQiOmYucmVhZD0hMDticmVhaztjYXNlICJ3cml0ZSI6Zi53cml0ZT0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJJbnZhbGlkICIrYisiIG9wZXJhdGlvbiAiK2QpO31yZXR1cm4gZn0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzPWI7Wi5fX2FjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzLk89ImFjY2Vzc19kb21fZWxlbWVudF9wcm9wZXJ0aWVzIjtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfZG9tX2VsZW1lbnRfcHJvcGVydGllcy5pc0luZnJhc3RydWN0dXJlPQohMTtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXNbIjUiXT0hMTtaLl9fYWNjZXNzX2RvbV9lbGVtZW50X3Byb3BlcnRpZXNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1iLnZ0cF9wcm9wZXJ0aWVzfHxbXSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcixlPVtdLGY9W10sZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgaD1jW2ddLGw9aC5wcm9wZXJ0eTtoLnJlYWQmJmUucHVzaChsKTtoLndyaXRlJiZmLnB1c2gobCl9cmV0dXJue2Fzc2VydDpmdW5jdGlvbihuLHAscSxyKXtpZighemIocikpdGhyb3cgZChuLHt9LCJQcm9wZXJ0eSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwnT3BlcmF0aW9uIG11c3QgYmUgZWl0aGVyICJyZWFkIiBvciAid3JpdGUiJyk7dGhyb3cgZChuLHt9LAonIicrcSsnIiBvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQuJyk7fSxhYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2RvbV9lbGVtZW50X3RleHQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57ZWxlbWVudDpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZG9tX2VsZW1lbnRfdGV4dD1iO1ouX19yZWFkX2RvbV9lbGVtZW50X3RleHQuTz0icmVhZF9kb21fZWxlbWVudF90ZXh0IjtaLl9fcmVhZF9kb21fZWxlbWVudF90ZXh0LmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRfdGV4dC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRfdGV4dC5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2RvbV9lbGVtZW50X3RleHRbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudF90ZXh0WyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLGUpe2lmKCEoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBjKGQsCnt9LCJXcm9uZyBlbGVtZW50IHR5cGUuIE11c3QgYmUgSFRNTEVsZW1lbnQuIik7fSxhYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5nZXRfcmVmZXJyZXI9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybntjb21wb25lbnQ6YyxxdWVyeUtleTpkfX0oZnVuY3Rpb24oYil7Wi5fX2dldF9yZWZlcnJlcj1iO1ouX19nZXRfcmVmZXJyZXIuTz0iZ2V0X3JlZmVycmVyIjtaLl9fZ2V0X3JlZmVycmVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF9yZWZlcnJlci5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF9yZWZlcnJlci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19nZXRfcmVmZXJyZXJbIjUiXT0hMTtaLl9fZ2V0X3JlZmVycmVyWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiYKYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmYy5wdXNoKCJxdWVyeSIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZXZlbnRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntrZXk6Y319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2V2ZW50X2RhdGE9YjtaLl9fcmVhZF9ldmVudF9kYXRhLk89InJlYWRfZXZlbnRfZGF0YSI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2V2ZW50X2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI1Il09ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfZXZlbnREYXRhQWNjZXNzLGQ9Yi52dHBfa2V5UGF0dGVybnN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZihnIT1udWxsJiYhemIoZykpdGhyb3cgZShmLHtrZXk6Z30sIktleSBtdXN0IGJlIGEgc3RyaW5nLiIpOwppZihjIT09ImFueSIpe3RyeXtpZihjPT09InNwZWNpZmljIiYmZyE9bnVsbCYmRWcoZyxkKSlyZXR1cm59Y2F0Y2goaCl7dGhyb3cgZShmLHtrZXk6Z30sIkludmFsaWQga2V5IGZpbHRlci4iKTt9dGhyb3cgZShmLHtrZXk6Z30sIlByb2hpYml0ZWQgcmVhZCBmcm9tIGV2ZW50IGRhdGEuIik7fX0sYWE6YX19KX0oKTsKClouc2VjdXJpdHlHcm91cHMuZ2NsaWR3PVsiZ29vZ2xlIl0sWi5fX2djbGlkdz1mdW5jdGlvbihhKXtiZChhLnZ0cF9ndG1PblN1Y2Nlc3MpO3ZhciBiLGMsZCxlO2EudnRwX2VuYWJsZUNvb2tpZU92ZXJyaWRlcyYmKGQ9YS52dHBfY29va2llUHJlZml4LGI9YS52dHBfcGF0aCxjPWEudnRwX2RvbWFpbixlPWEudnRwX2Nvb2tpZUZsYWdzKTt2YXIgZj11QShGLkQubWIsMiksZz17fSxoPShnW0YuRC5uYl09ZCxnW0YuRC52Y109YixnW0YuRC5MYl09YyxnW0YuRC5UYl09ZSxnW0YuRC5tYl09ZiE9dm9pZCAwJiZmIT09ITEsZyk7YS52dHBfZW5hYmxlVXJsUGFzc3Rocm91Z2gmJihoW0YuRC56Y109ITApO2lmKGEudnRwX2VuYWJsZUNyb3NzRG9tYWluJiZhLnZ0cF9saW5rZXJEb21haW5zKXt2YXIgbD17fTtoW0YuRC5EYl09KGxbRi5ELlhmXT1hLnZ0cF9hY2NlcHRJbmNvbWluZyxsW0YuRC5BYV09YS52dHBfbGlua2VyRG9tYWlucy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKS5zcGxpdCgiLCIpLApsW0YuRC5hZF09YS52dHBfdXJsUG9zaXRpb24sbFtGLkQud2NdPWEudnRwX2Zvcm1EZWNvcmF0aW9uLGwpfWlmKE0oNDk4KSl7dmFyIG49JEwoKTtuJiZuLmxlbmd0aD4wJiYoaFtGLkQuVGFdPXtwbGY6bi5qb2luKCIuIil9KX12YXIgcD1KQyhJQyhIQyhHQyh6QyhuZXcgeUMoYS52dHBfZ3RtRXZlbnRJZCxhLnZ0cF9ndG1Qcmlvcml0eUlkKSxoKSx4YikseGIpLCEwKSk7cC5ldmVudE1ldGFkYXRhW0guSi5EY109alUuS2E7dE4oIiIsRi5ELndhLERhdGUubm93KCkscCl9LFouX19nY2xpZHcuTz0iZ2NsaWR3IixaLl9fZ2NsaWR3LmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX2djbGlkdy5wcmlvcml0eU92ZXJyaWRlPTEwMCxaLl9fZ2NsaWR3LmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2djbGlkd1siNSJdPSEwLFouX19nY2xpZHdbIjYiXT0hMDsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2RhdGFfbGF5ZXI9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57a2V5OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kYXRhX2xheWVyPWI7Wi5fX3JlYWRfZGF0YV9sYXllci5PPSJyZWFkX2RhdGFfbGF5ZXIiO1ouX19yZWFkX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kYXRhX2xheWVyLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZGF0YV9sYXllclsiNSJdPSExO1ouX19yZWFkX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRLZXlzfHwic3BlY2lmaWMiLGQ9Yi52dHBfa2V5UGF0dGVybnN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJLZXlzIG11c3QgYmUgc3RyaW5ncy4iKTsKaWYoYyE9PSJhbnkiKXt0cnl7aWYoRWcoZyxkKSlyZXR1cm59Y2F0Y2goaCl7dGhyb3cgZShmLHt9LCJJbnZhbGlkIGtleSBmaWx0ZXIuIik7fXRocm93IGUoZix7fSwiUHJvaGliaXRlZCByZWFkIGZyb20gZGF0YSBsYXllciB2YXJpYWJsZTogIitnKyIuIik7fX0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2FuYWx5dGljc19zdG9yYWdlPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2FuYWx5dGljc19zdG9yYWdlPWI7Wi5fX3JlYWRfYW5hbHl0aWNzX3N0b3JhZ2UuTz0icmVhZF9hbmFseXRpY3Nfc3RvcmFnZSI7Wi5fX3JlYWRfYW5hbHl0aWNzX3N0b3JhZ2UuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9hbmFseXRpY3Nfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfYW5hbHl0aWNzX3N0b3JhZ2UuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9hbmFseXRpY3Nfc3RvcmFnZVsiNSJdPSExO1ouX19yZWFkX2FuYWx5dGljc19zdG9yYWdlWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZWxlbWVudF92aXNpYmlsaXR5X2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2VsZW1lbnRfdmlzaWJpbGl0eV9ldmVudHM9YjtaLl9fZGV0ZWN0X2VsZW1lbnRfdmlzaWJpbGl0eV9ldmVudHMuTz0iZGV0ZWN0X2VsZW1lbnRfdmlzaWJpbGl0eV9ldmVudHMiO1ouX19kZXRlY3RfZWxlbWVudF92aXNpYmlsaXR5X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZWxlbWVudF92aXNpYmlsaXR5X2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9lbGVtZW50X3Zpc2liaWxpdHlfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9lbGVtZW50X3Zpc2liaWxpdHlfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9lbGVtZW50X3Zpc2liaWxpdHlfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LAphYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2V2ZW50X21ldGFkYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfZXZlbnRfbWV0YWRhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2V2ZW50X21ldGFkYXRhLk89InJlYWRfZXZlbnRfbWV0YWRhdGEiLFouX19yZWFkX2V2ZW50X21ldGFkYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfZXZlbnRfbWV0YWRhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2V2ZW50X21ldGFkYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfZXZlbnRfbWV0YWRhdGFbIjUiXT0hMSxaLl9fcmVhZF9ldmVudF9tZXRhZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHM9YjtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5PPSJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIjtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTsKCgpaLnNlY3VyaXR5R3JvdXBzLmdldF9lbGVtZW50X2F0dHJpYnV0ZXM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybntlbGVtZW50OmMsYXR0cmlidXRlOmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X2VsZW1lbnRfYXR0cmlidXRlcz1iO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLk89ImdldF9lbGVtZW50X2F0dHJpYnV0ZXMiO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF9lbGVtZW50X2F0dHJpYnV0ZXMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfZWxlbWVudF9hdHRyaWJ1dGVzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF9lbGVtZW50X2F0dHJpYnV0ZXNbIjUiXT0hMTtaLl9fZ2V0X2VsZW1lbnRfYXR0cmlidXRlc1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dlZEF0dHJpYnV0ZXN8fCJzcGVjaWZpYyIsZD1iLnZ0cF9hdHRyaWJ1dGVzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjsKcmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCl7aWYoIXpiKGgpKXRocm93IGUoZix7fSwiQXR0cmlidXRlIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKXRocm93IGUoZix7fSwiV3JvbmcgZWxlbWVudCB0eXBlLiBNdXN0IGJlIEhUTUxFbGVtZW50LiIpO2lmKGg9PT0idmFsdWUifHxjIT09ImFueSImJihjIT09InNwZWNpZmljInx8ZC5pbmRleE9mKGgpPT09LTEpKXRocm93IGUoZix7fSwnUmVhZGluZyBhdHRyaWJ1dGUgIicraCsnIiBpcyBub3QgYWxsb3dlZC4nKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLk89ImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dXYWl0Rm9yVGFncyxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsCmYpe2lmKCFjJiZmJiZmLndhaXRGb3JUYWdzKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb24gd2FpdEZvclRhZ3MuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmxvYWRfZ29vZ2xlX3RhZ3M9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0YWdJZDpjLGZpcnN0UGFydHlVcmw6ZH19KGZ1bmN0aW9uKGIpe1ouX19sb2FkX2dvb2dsZV90YWdzPWI7Wi5fX2xvYWRfZ29vZ2xlX3RhZ3MuTz0ibG9hZF9nb29nbGVfdGFncyI7Wi5fX2xvYWRfZ29vZ2xlX3RhZ3MuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbG9hZF9nb29nbGVfdGFncy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2xvYWRfZ29vZ2xlX3RhZ3MuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbG9hZF9nb29nbGVfdGFnc1siNSJdPSExO1ouX19sb2FkX2dvb2dsZV90YWdzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkVGFnSWRzfHwic3BlY2lmaWMiLGQ9Yi52dHBfYWxsb3dGaXJzdFBhcnR5VXJsc3x8ITEsZT1iLnZ0cF9hbGxvd2VkRmlyc3RQYXJ0eVVybHN8fCJzcGVjaWZpYyIsZj1iLnZ0cF91cmxzfHwKW10sZz1iLnZ0cF90YWdJZHN8fFtdLGg9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24obCxuLHApeyhmdW5jdGlvbihxKXtpZighemIocSkpdGhyb3cgaChsLHt9LCJUYWcgSUQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjIT09ImFueSImJihjIT09InNwZWNpZmljInx8Zy5pbmRleE9mKHEpPT09LTEpKXRocm93IGgobCx7fSwiUHJvaGliaXRlZCBUYWcgSUQ6ICIrcSsiLiIpO30pKG4pOyhmdW5jdGlvbihxKXtpZihxIT09dm9pZCAwKXtpZighemIocSkpdGhyb3cgaChsLHt9LCJGaXJzdCBwYXJ0eSBVUkwgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkKXtpZihlPT09ImFueSIpcmV0dXJuO2lmKGU9PT0ic3BlY2lmaWMiKXRyeXtpZihXZyhSaihxKSxmKSlyZXR1cm59Y2F0Y2gocil7dGhyb3cgaChsLHt9LCJJbnZhbGlkIGZpcnN0IHBhcnR5IFVSTCBmaWx0ZXIuIik7fX10aHJvdyBoKGwse30sIlByb2hpYml0ZWQgZmlyc3QgcGFydHkgVVJMOiAiKwpxKTt9fSkocCl9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuc3A9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dmFyIGM9e307Yi52dHBfY3VzdG9tUGFyYW1zRm9ybWF0PT0iREFUQV9MQVlFUiImJkNkKGIudnRwX2RhdGFMYXllclZhcmlhYmxlKT9jPSRUKGIudnRwX2RhdGFMYXllclZhcmlhYmxlKTpiLnZ0cF9jdXN0b21QYXJhbXNGb3JtYXQ9PSJVU0VSX1NQRUNJRklFRCImJihjPWNVKGIudnRwX2N1c3RvbVBhcmFtcywia2V5IiwidmFsdWUiKSk7cmV0dXJuIGN9KGZ1bmN0aW9uKGIpe1ouX19zcD1iO1ouX19zcC5PPSJzcCI7Wi5fX3NwLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3NwLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fc3AuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fc3BbIjUiXT0hMDtaLl9fc3BbIjYiXT0hMH0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycz9kVShiLnZ0cF9ldmVudFNldHRpbmdzVmFyaWFibGUsYi52dHBfZXZlbnRTZXR0aW5nc1RhYmxlKToKe307blMoYyxIbyxmdW5jdGlvbihwKXtyZXR1cm4gSmIocCl9KTtuUyhjLEpvLGZ1bmN0aW9uKHApe3JldHVybiBOdW1iZXIocCl9KTt2YXIgZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMsYShiKSk7ZFtGLkQuaWhdPSEwO3ZhciBlPWVVKGIudnRwX2NvbnZlcnNpb25Db29raWVQcmVmaXgsY1tGLkQuRmRdLCIiKTtlPT09Il9nY2wiJiYoZT12b2lkIDApO3ZhciBmPSFiLmhhc093blByb3BlcnR5KCJ2dHBfZW5hYmxlQ29udmVyc2lvbkxpbmtlciIpfHwhIWIudnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXI7ZFtGLkQuRmRdPWU7ZFtGLkQudWNdPWY7ZFtGLkQubWJdPXVBKEYuRC5tYiwyKTtiLnZ0cF9lbmFibGVEeW5hbWljUmVtYXJrZXRpbmcmJihkW0YuRC5RYV09ZVUoYi52dHBfZXZlbnRWYWx1ZSxjW0YuRC5RYV0sIiIpLGRbRi5ELkhhXT1lVShiLnZ0cF9ldmVudEl0ZW1zLGNbRi5ELkhhXSkpO2IudnRwX3JkcCYmKGRbRi5ELldiXT0hMCk7ZFtGLkQuZmJdPQplVShiLnZ0cF91c2VySWQsY1tGLkQuZmJdKTt2YXIgZz0iQVctIitiLnZ0cF9jb252ZXJzaW9uSWQsaD1nKyhiLnZ0cF9jb252ZXJzaW9uTGFiZWw/Ii8iK2IudnRwX2NvbnZlcnNpb25MYWJlbDoiIik7bkEoZyx2b2lkIDAse3NvdXJjZTo3LGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTt2YXIgbD17fSxuPXtldmVudE1ldGFkYXRhOihsW0guSi5EY109W2pVLkthLGpVLnViXSxsKSxub0d0bUV2ZW50OiEwLGlzR3RtRXZlbnQ6ITAsb25TdWNjZXNzOmIudnRwX2d0bU9uU3VjY2VzcyxvbkZhaWx1cmU6Yi52dHBfZ3RtT25GYWlsdXJlfTttUyhuLmV2ZW50TWV0YWRhdGEsZyk7bUQoc0MoaCxiLnZ0cF9ldmVudE5hbWV8fCIiLGQpLGIudnRwX2d0bUV2ZW50SWQsbil9KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy51YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShuLHApe2Zvcih2YXIgcSBpbiBuKWlmKCFoW3FdJiZuLmhhc093blByb3BlcnR5KHEpKXt2YXIgcj1nW3FdP0piKG5bcV0pOm5bcV07cSE9ImFub255bWl6ZUlwInx8cnx8KHI9dm9pZCAwKTtwW3FdPXJ9fWZ1bmN0aW9uIGIobil7dmFyIHA9e307bi52dHBfZ2FTZXR0aW5ncyYmJFQoY1Uobi52dHBfZ2FTZXR0aW5ncy52dHBfZmllbGRzVG9TZXQsImZpZWxkTmFtZSIsInZhbHVlIikscCk7JFQoY1Uobi52dHBfZmllbGRzVG9TZXQsImZpZWxkTmFtZSIsInZhbHVlIikscCk7SmIocC51cmxQYXNzdGhyb3VnaCkmJihwLl91c2VVcD0hMCk7bi52dHBfdHJhbnNwb3J0VXJsJiYocC5feF8xOT1uLnZ0cF90cmFuc3BvcnRVcmwpO3JldHVybiBwfWZ1bmN0aW9uIGMobixwKXtyZXR1cm4gcD09PXZvaWQgMD9wOm4ocCl9ZnVuY3Rpb24gZChuLHAscSl7fWZ1bmN0aW9uIGUobixwKXtpZighZiYmKCFhaygpfHwhcC5feF8xOXx8bi52dHBfdXNlRGVidWdWZXJzaW9ufHxuLnZ0cF91c2VJbnRlcm5hbFZlcnNpb24pKXt2YXIgcT0Kbi52dHBfdXNlRGVidWdWZXJzaW9uPyJ1L2FuYWx5dGljc19kZWJ1Zy5qcyI6ImFuYWx5dGljcy5qcyI7bi52dHBfdXNlSW50ZXJuYWxWZXJzaW9uJiYhbi52dHBfdXNlRGVidWdWZXJzaW9uJiYocT0iaW50ZXJuYWwvIitxKTtmPSEwO3ZhciByPW4udnRwX2d0bU9uRmFpbHVyZSx0PVpqKHAuX3hfMTkpLHU9ZEEoImh0dHBzOiIsImh0dHA6IiwiLy93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vIitxLHAmJiEhcC5mb3JjZVNTTCk7ZlUocT09PSJhbmFseXRpY3MuanMiJiZ0P3Q6dSxmdW5jdGlvbigpe3ZhciB2PVNBKCk7diYmdi5sb2FkZWR8fHIoKTt9LHIpfX12YXIgZixnPXthbGxvd0FuY2hvcjohMCxhbGxvd0xpbmtlcjohMCxhbHdheXNTZW5kUmVmZXJyZXI6ITAsYW5vbnltaXplSXA6ITAsY29va2llVXBkYXRlOiEwLGV4RmF0YWw6ITAsZm9yY2VTU0w6ITAsCmphdmFFbmFibGVkOiEwLGxlZ2FjeUhpc3RvcnlJbXBvcnQ6ITAsbm9uSW50ZXJhY3Rpb246ITAsdXNlQW1wQ2xpZW50SWQ6ITAsdXNlQmVhY29uOiEwLHN0b3JlR2FjOiEwLGFsbG93QWRGZWF0dXJlczohMCxhbGxvd0FkUGVyc29uYWxpemF0aW9uU2lnbmFsczohMCxfY2QybDohMH0saD17dXJsUGFzc3Rocm91Z2g6ITB9LGw9ZnVuY3Rpb24obil7ZnVuY3Rpb24gcCgpe2lmKG4udnRwX2RvdWJsZUNsaWNrfHxuLnZ0cF9hZHZlcnRpc2luZ0ZlYXR1cmVzVHlwZT09IkRJU1BMQVlfRkVBVFVSRVMiKXguZGlzcGxheWZlYXR1cmVzPSEwfXZhciBxPXt9LHI9e30sdD17fTtpZihuLnZ0cF9nYVNldHRpbmdzKXt2YXIgdT1uLnZ0cF9nYVNldHRpbmdzOyRUKGNVKHUudnRwX2NvbnRlbnRHcm91cCwiaW5kZXgiLCJncm91cCIpLHEpOyRUKGNVKHUudnRwX2RpbWVuc2lvbiwiaW5kZXgiLCJkaW1lbnNpb24iKSxyKTskVChjVSh1LnZ0cF9tZXRyaWMsImluZGV4IiwibWV0cmljIiksdCk7dmFyIHY9CiRUKHUpO3YudnRwX2ZpZWxkc1RvU2V0PXZvaWQgMDt2LnZ0cF9jb250ZW50R3JvdXA9dm9pZCAwO3YudnRwX2RpbWVuc2lvbj12b2lkIDA7di52dHBfbWV0cmljPXZvaWQgMDtuPSRUKG4sdil9JFQoY1Uobi52dHBfY29udGVudEdyb3VwLCJpbmRleCIsImdyb3VwIikscSk7JFQoY1Uobi52dHBfZGltZW5zaW9uLCJpbmRleCIsImRpbWVuc2lvbiIpLHIpOyRUKGNVKG4udnRwX21ldHJpYywiaW5kZXgiLCJtZXRyaWMiKSx0KTt2YXIgeD1iKG4pLHk9U3RyaW5nKG4udnRwX3RyYWNraW5nSWR8fCIiKSx6PSIiLEM9IiIsRD0iIjtuLnZ0cF9zZXRUcmFja2VyTmFtZSYmdHlwZW9mIG4udnRwX3RyYWNrZXJOYW1lPT0ic3RyaW5nIj9uLnZ0cF90cmFja2VyTmFtZSE9PSIiJiYoRD1uLnZ0cF90cmFja2VyTmFtZSxDPUQrIi4iKTooRD0iZ3RtIitTdHJpbmcocmooKSksQz1EKyIuIik7dmFyIEk9ZnVuY3Rpb24oRmEscWEpe2Zvcih2YXIgaWIgaW4gcWEpcWEuaGFzT3duUHJvcGVydHkoaWIpJiYKKHhbRmEraWJdPXFhW2liXSl9O0koImNvbnRlbnRHcm91cCIscSk7SSgiZGltZW5zaW9uIixyKTtJKCJtZXRyaWMiLHQpO24udnRwX2VuYWJsZUVjb21tZXJjZSYmKHo9bi52dHBfZ3RtQ2FjaGVkVmFsdWVzLmV2ZW50LHguZ3RtRWNvbW1lcmNlRGF0YT1kKG4seCx6KSk7aWYobi52dHBfdHJhY2tUeXBlPT09IlRSQUNLX0VWRU5UIil6PSJ0cmFja19ldmVudCIscCgpLHguZXZlbnRDYXRlZ29yeT1TdHJpbmcobi52dHBfZXZlbnRDYXRlZ29yeSkseC5ldmVudEFjdGlvbj1TdHJpbmcobi52dHBfZXZlbnRBY3Rpb24pLHguZXZlbnRMYWJlbD1jKFN0cmluZyxuLnZ0cF9ldmVudExhYmVsKSx4LnZhbHVlPWMoSWIsbi52dHBfZXZlbnRWYWx1ZSk7ZWxzZSBpZihuLnZ0cF90cmFja1R5cGU9PSJUUkFDS19QQUdFVklFVyIpe2lmKHo9Ri5ELnNjLHAoKSxuLnZ0cF9hZHZlcnRpc2luZ0ZlYXR1cmVzVHlwZT09IkRJU1BMQVlfRkVBVFVSRVNfV0lUSF9SRU1BUktFVElOR19MSVNUUyImJih4LnJlbWFya2V0aW5nTGlzdHM9CiEwKSxuLnZ0cF9hdXRvTGlua0RvbWFpbnMpe3ZhciBHPXt9O0dbRi5ELkFhXT1uLnZ0cF9hdXRvTGlua0RvbWFpbnM7Ry51c2VfYW5jaG9yPW4udnRwX3VzZUhhc2hBdXRvTGluaztHW0YuRC53Y109bi52dHBfZGVjb3JhdGVGb3Jtc0F1dG9MaW5rO3hbRi5ELkRiXT1HfX1lbHNlIG4udnRwX3RyYWNrVHlwZT09PSJUUkFDS19TT0NJQUwiPyh6PSJ0cmFja19zb2NpYWwiLHguc29jaWFsTmV0d29yaz1TdHJpbmcobi52dHBfc29jaWFsTmV0d29yaykseC5zb2NpYWxBY3Rpb249U3RyaW5nKG4udnRwX3NvY2lhbEFjdGlvbikseC5zb2NpYWxUYXJnZXQ9U3RyaW5nKG4udnRwX3NvY2lhbEFjdGlvblRhcmdldCkpOm4udnRwX3RyYWNrVHlwZT09IlRSQUNLX1RJTUlORyImJih6PSJ0aW1pbmdfY29tcGxldGUiLHguZXZlbnRDYXRlZ29yeT1TdHJpbmcobi52dHBfdGltaW5nQ2F0ZWdvcnkpLHgudGltaW5nVmFyPVN0cmluZyhuLnZ0cF90aW1pbmdWYXIpLHgudmFsdWU9SWIobi52dHBfdGltaW5nVmFsdWUpLAp4LmV2ZW50TGFiZWw9YyhTdHJpbmcsbi52dHBfdGltaW5nTGFiZWwpKTtuLnZ0cF9lbmFibGVSZWNhcHRjaGEmJih4LmVuYWJsZVJlY2FwdGNoYT0hMCk7bi52dHBfZW5hYmxlTGlua0lkJiYoeC5lbmFibGVMaW5rSWQ9ITApO3ZhciBOPXt9O2EoeCxOKTt4Lm5hbWV8fChOLmd0bVRyYWNrZXJOYW1lPUQpO04uZ2FGdW5jdGlvbk5hbWU9bi52dHBfZnVuY3Rpb25OYW1lO24udnRwX25vbkludGVyYWN0aW9uIT09dm9pZCAwJiYoTi5ub25JbnRlcmFjdGlvbj1uLnZ0cF9ub25JbnRlcmFjdGlvbik7dmFyIFM9SkMoSUMoSEMoR0MoekMobmV3IHlDKG4udnRwX2d0bUV2ZW50SWQsbi52dHBfZ3RtUHJpb3JpdHlJZCksTiksbi52dHBfZ3RtT25TdWNjZXNzKSxuLnZ0cF9ndG1PbkZhaWx1cmUpLCEwKSk7bi52dHBfdXNlRGVidWdWZXJzaW9uJiZuLnZ0cF91c2VJbnRlcm5hbFZlcnNpb24mJihTLmV2ZW50TWV0YWRhdGFbSC5KLkFuXT0hMCk7bi52dHBfZXh0cmFFeHBlcmltZW50SWRzJiYoUy5ldmVudE1ldGFkYXRhW0guSi5DaF09ClsxMTc5NzExNzRdKTtmTyh5LHosRGF0ZS5ub3coKSxTKTt2YXIgVz1WQShuLnZ0cF9mdW5jdGlvbk5hbWUpO2lmKHliKFcpKXt2YXIgZWE9ZnVuY3Rpb24oRmEpe3ZhciBxYT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtxYVswXT1DK3FhWzBdO1cuYXBwbHkod2luZG93LHFhKX07aWYobi52dHBfdHJhY2tUeXBlPT0iVFJBQ0tfVFJBTlNBQ1RJT04iKXt9ZWxzZSBpZihuLnZ0cF90cmFja1R5cGU9PSJERUNPUkFURV9MSU5LIil7fWVsc2UgaWYobi52dHBfdHJhY2tUeXBlPT0iREVDT1JBVEVfRk9STSIpe31lbHNlIGlmKG4udnRwX3RyYWNrVHlwZT09IlRSQUNLX0RBVEEiKXt9ZShuLHgpfWVsc2UgYmQobi52dHBfZ3RtT25GYWlsdXJlKX07Wi5fX3VhPWw7Wi5fX3VhLk89InVhIjtaLl9fdWEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fdWEucHJpb3JpdHlPdmVycmlkZT0KMDtaLl9fdWEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fdWFbIjUiXT0hMTtaLl9fdWFbIjYiXT0hMX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2NvbnNlbnQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtjb25zZW50VHlwZTpjLHJlYWQ6ITEsd3JpdGU6ITF9O3N3aXRjaChkKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrZCk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2NvbnNlbnQ9YjtaLl9fYWNjZXNzX2NvbnNlbnQuTz0iYWNjZXNzX2NvbnNlbnQiO1ouX19hY2Nlc3NfY29uc2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfY29uc2VudC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19jb25zZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI1Il09ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9CmIudnRwX2NvbnNlbnRUeXBlc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIGg9Y1tnXSxsPWguY29uc2VudFR5cGU7aC5yZWFkJiZlLnB1c2gobCk7aC53cml0ZSYmZi5wdXNoKGwpfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24obixwLHEpe2lmKCF6YihwKSl0aHJvdyBkKG4se30sIkNvbnNlbnQgdHlwZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwiQWNjZXNzIHR5cGUgbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCBvciAnd3JpdGUnLCB3YXMgIitxKTt0aHJvdyBkKG4se30sIlByb2hpYml0ZWQgIitxKyIgb24gY29uc2VudCB0eXBlOiAiK3ArIi4iKTt9LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLmluamVjdF9zY3JpcHQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57dXJsOmN9fShmdW5jdGlvbihiKXtaLl9faW5qZWN0X3NjcmlwdD1iO1ouX19pbmplY3Rfc2NyaXB0Lk89ImluamVjdF9zY3JpcHQiO1ouX19pbmplY3Rfc2NyaXB0LmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2luamVjdF9zY3JpcHQucHJpb3JpdHlPdmVycmlkZT0wO1ouX19pbmplY3Rfc2NyaXB0LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2luamVjdF9zY3JpcHRbIjUiXT0hMTtaLl9faW5qZWN0X3NjcmlwdFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLGYpe2lmKCF6YihmKSl0aHJvdyBkKGUse30sIlNjcmlwdCBVUkwgbXVzdCBiZSBhIHN0cmluZy4iKTt0cnl7aWYoV2coUmooZiksYykpcmV0dXJufWNhdGNoKGcpe3Rocm93IGQoZSwKe30sIkludmFsaWQgc2NyaXB0IFVSTCBmaWx0ZXIuIik7fXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBzY3JpcHQgVVJMOiAiK2YpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy51bnNhZmVfcnVuX2FyYml0cmFyeV9qYXZhc2NyaXB0PVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX191bnNhZmVfcnVuX2FyYml0cmFyeV9qYXZhc2NyaXB0PWI7Wi5fX3Vuc2FmZV9ydW5fYXJiaXRyYXJ5X2phdmFzY3JpcHQuTz0idW5zYWZlX3J1bl9hcmJpdHJhcnlfamF2YXNjcmlwdCI7Wi5fX3Vuc2FmZV9ydW5fYXJiaXRyYXJ5X2phdmFzY3JpcHQuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fdW5zYWZlX3J1bl9hcmJpdHJhcnlfamF2YXNjcmlwdC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3Vuc2FmZV9ydW5fYXJiaXRyYXJ5X2phdmFzY3JpcHQuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fdW5zYWZlX3J1bl9hcmJpdHJhcnlfamF2YXNjcmlwdFsiNSJdPSExO1ouX191bnNhZmVfcnVuX2FyYml0cmFyeV9qYXZhc2NyaXB0WyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LAphYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuYXdjdD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCxlKXtyZXR1cm4gZnVuY3Rpb24oZixnLGgsbCl7dmFyIG49ZD09PSJEQVRBX0xBWUVSIj91QShoLDIpOmVVKGJbZ10sZVtmXSxsKTtuIT1udWxsJiYoY1tmXT1uKX19KGZ1bmN0aW9uKGIpe1ouX19hd2N0PWI7Wi5fX2F3Y3QuTz0iYXdjdCI7Wi5fX2F3Y3QuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYXdjdC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2F3Y3QuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fYXdjdFsiNSJdPSExO1ouX19hd2N0WyI2Il09ITB9KShmdW5jdGlvbihiKXt2YXIgYz0hYi5oYXNPd25Qcm9wZXJ0eSgidnRwX2VuYWJsZUNvbnZlcnNpb25MaW5rZXIiKXx8ISFiLnZ0cF9lbmFibGVDb252ZXJzaW9uTGlua2VyLGQ9ISFiLnZ0cF9lbmFibGVFbmhhbmNlZENvbnZlcnNpb25zfHwhIWIudnRwX2VuYWJsZUVuaGFuY2VkQ29udmVyc2lvbixlPWNVKGIudnRwX2N1c3RvbVZhcmlhYmxlcywKInZhck5hbWUiLCJ2YWx1ZSIpfHx7fSxmPWIudnRwX2VuYWJsZUV2ZW50UGFyYW1ldGVycz9kVShiLnZ0cF9ldmVudFNldHRpbmdzVmFyaWFibGUsYi52dHBfZXZlbnRTZXR0aW5nc1RhYmxlKTp7fTtuUyhmLEhvLGZ1bmN0aW9uKEkpe3JldHVybiBKYihJKX0pO25TKGYsSm8sZnVuY3Rpb24oSSl7cmV0dXJuIE51bWJlcihJKX0pO3ZhciBnPWVVKGIudnRwX2NvbnZlcnNpb25Db29raWVQcmVmaXgsZltGLkQuRmRdLCIiKTtnPT09Il9nY2wiJiYoZz12b2lkIDApO3ZhciBoPXt9LGw9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLChoW0YuRC5RYV09ZVUoYi52dHBfY29udmVyc2lvblZhbHVlLGZbRi5ELlFhXSwiIil8fDAsaFtGLkQuZWJdPWVVKGIudnRwX2N1cnJlbmN5Q29kZSxmW0YuRC5lYl0sIiIpLGhbRi5ELlBhXT1lVShiLnZ0cF9vcmRlcklkLGZbRi5ELlBhXSwiIiksaFtGLkQuRmRdPWcsaFtGLkQudWNdPWMsaFtGLkQuc2ldPWQsaFtGLkQubWJdPXVBKEYuRC5tYiwKMiksaCkpO2IudnRwX3JkcCYmKGxbRi5ELldiXT0hMCk7aWYoYi52dHBfZW5hYmxlQ3VzdG9tUGFyYW1zKWZvcih2YXIgbiBpbiBlKU16Lmhhc093blByb3BlcnR5KG4pfHwobFtuXT1lW25dKTtpZihiLnZ0cF9lbmFibGVQcm9kdWN0UmVwb3J0aW5nKXt2YXIgcD1hKGIsbCxiLnZ0cF9wcm9kdWN0UmVwb3J0aW5nRGF0YVNvdXJjZSxmKTtwKEYuRC5GZiwidnRwX2F3TWVyY2hhbnRJZCIsImF3X21lcmNoYW50X2lkIiwiIik7cChGLkQuRGYsInZ0cF9hd0ZlZWRDb3VudHJ5IiwiYXdfZmVlZF9jb3VudHJ5IiwiIik7cChGLkQuRWYsInZ0cF9hd0ZlZWRMYW5ndWFnZSIsImF3X2ZlZWRfbGFuZ3VhZ2UiLCIiKTtwKEYuRC5TZCwidnRwX2F3TWVyY2hhbnRJZCIsIm1lcmNoYW50X2lkIiwiIik7cChGLkQuUWQsInZ0cF9hd0ZlZWRDb3VudHJ5IiwibWVyY2hhbnRfZmVlZF9sYWJlbCIsIiIpO3AoRi5ELlJkLCJ2dHBfYXdGZWVkTGFuZ3VhZ2UiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIiwiIik7CnAoRi5ELkNmLCJ2dHBfZGlzY291bnQiLCJkaXNjb3VudCIsIiIpO3AoRi5ELkhhLCJ2dHBfaXRlbXMiLCJpdGVtcyIsIiIpfWIudnRwX2VuYWJsZVNoaXBwaW5nRGF0YSYmKGxbRi5ELlVkXT1lVShiLnZ0cF9kZWxpdmVyeVBvc3RhbENvZGUsZltGLkQuVWRdLCIiKSxsW0YuRC5JZV09ZVUoYi52dHBfZXN0aW1hdGVkRGVsaXZlcnlEYXRlLGZbRi5ELkllXSwiIiksbFtGLkQuVGNdPWVVKGIudnRwX2RlbGl2ZXJ5Q291bnRyeSxmW0YuRC5UY10sIiIpLGxbRi5ELkxkXT1lVShiLnZ0cF9zaGlwcGluZ0ZlZSxmW0YuRC5MZF0sIiIpKTtiLnZ0cF90cmFuc3BvcnRVcmwmJihsW0YuRC55Y109Yi52dHBfdHJhbnNwb3J0VXJsKTtpZihiLnZ0cF9lbmFibGVOZXdDdXN0b21lclJlcG9ydGluZyl7dmFyIHE9YShiLGwsYi52dHBfbmV3Q3VzdG9tZXJSZXBvcnRpbmdEYXRhU291cmNlLGYpO3EoRi5ELk5lLCJ2dHBfYXdOZXdDdXN0b21lciIsIm5ld19jdXN0b21lciIsIiIpO3EoRi5ELkdlLCJ2dHBfYXdDdXN0b21lckxUViIsCiJjdXN0b21lcl9saWZldGltZV92YWx1ZSIsIiIpfXZhciByPSJBVy0iK2IudnRwX2NvbnZlcnNpb25JZCx0PXIrIi8iK2IudnRwX2NvbnZlcnNpb25MYWJlbDtuQShyLGIudnRwX3RyYW5zcG9ydFVybCx7c291cmNlOjcsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjohMH0pO3ZhciB1PWIudnRwX2Nzc1Byb3ZpZGVkRW5oYW5jZWRDb252ZXJzaW9uVmFsdWV8fGIudnRwX2VuaGFuY2VkQ29udmVyc2lvbk9iamVjdDt1JiYobFtGLkQuQWNdPXUpO3ZhciB2PXt9LHg9KHZbSC5KLkRjXT1qVS54YSx2KTtpZihiLnZ0cF9ndG1HZW5lcmF0ZWRUYWdnaW5nTWV0YWRhdGEpe3ZhciB5PWNVKGIudnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSwibmFtZSIsInZhbHVlIik7aWYoeSYmKGxbRi5ELnNoXT15LCF5LmlzbSkpe3ZhciB6PXt9LEM9KHpbRi5ELlFhXT1sW0YuRC5RYV0seltGLkQuZWJdPWxbRi5ELmViXSx6W0YuRC5QYV09bFtGLkQuUGFdLHopO3hbSC5KLlFtXT1DfX12YXIgRD17ZXZlbnRNZXRhZGF0YTp4LApub0d0bUV2ZW50OiEwLGlzR3RtRXZlbnQ6ITAsb25TdWNjZXNzOmIudnRwX2d0bU9uU3VjY2VzcyxvbkZhaWx1cmU6Yi52dHBfZ3RtT25GYWlsdXJlfTttUyhELmV2ZW50TWV0YWRhdGEscik7bUQoc0ModCxGLkQueHAsbCksYi52dHBfZ3RtRXZlbnRJZCxEKX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLnVuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWw9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt1c2VJZnJhbWU6YyxzdXBwb3J0RG9jdW1lbnRXcml0ZTpkfX0oZnVuY3Rpb24oYil7Wi5fX3Vuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWw9YjtaLl9fdW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbC5PPSJ1bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sIjtaLl9fdW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX191bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fdW5zYWZlX2luamVjdF9hcmJpdHJhcnlfaHRtbC5pc0luZnJhc3RydWN0dXJlPSExO1ouX191bnNhZmVfaW5qZWN0X2FyYml0cmFyeV9odG1sWyI1Il09ITE7Wi5fX3Vuc2FmZV9pbmplY3RfYXJiaXRyYXJ5X2h0bWxbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPQpiLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLGUsZil7aWYoZSYmZil0aHJvdyBjKGQse30sIk9ubHkgb25lIG9mIHVzZUlmcmFtZSBhbmQgc3VwcG9ydERvY3VtZW50V3JpdGUgY2FuIGJlIHRydWUuIik7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPT0iYm9vbGVhbiIpdGhyb3cgYyhkLHt9LCJ1c2VJZnJhbWUgbXVzdCBiZSBhIGJvb2xlYW4uIik7aWYoZiE9PXZvaWQgMCYmdHlwZW9mIGYhPT0iYm9vbGVhbiIpdGhyb3cgYyhkLHt9LCJzdXBwb3J0RG9jdW1lbnRXcml0ZSBtdXN0IGJlIGEgYm9vbGVhbi4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2NsaWNrX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue21hdGNoQ29tbW9uQnV0dG9uczpjLGNzc1NlbGVjdG9yOmR9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cz1iO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLk89ImRldGVjdF9jbGlja19ldmVudHMiO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9jbGlja19ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9jbGlja19ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCxlLGYpe2lmKGUhPT12b2lkIDAmJnR5cGVvZiBlIT09CiJib29sZWFuIil0aHJvdyBjKGQse30sIm1hdGNoQ29tbW9uQnV0dG9ucyBtdXN0IGJlIGEgYm9vbGVhbi4iKTtpZihmIT09dm9pZCAwJiZ0eXBlb2YgZiE9PSJzdHJpbmciKXRocm93IGMoZCx7fSwiY3NzU2VsZWN0b3IgbXVzdCBiZSBhIHN0cmluZy4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMubG9nZ2luZz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fbG9nZ2luZz1iO1ouX19sb2dnaW5nLk89ImxvZ2dpbmciO1ouX19sb2dnaW5nLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2xvZ2dpbmcucHJpb3JpdHlPdmVycmlkZT0wO1ouX19sb2dnaW5nLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2xvZ2dpbmdbIjUiXT0hMTtaLl9fbG9nZ2luZ1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfZW52aXJvbm1lbnRzfHwiZGVidWciLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSl7dmFyIGY7aWYoZj1jIT09ImFsbCImJiEwKXt2YXIgZz0hMTtmPSFnfWlmKGYpdGhyb3cgZChlLHt9LCJMb2dnaW5nIGlzIG5vdCBlbmFibGVkIGluIGFsbCBlbnZpcm9ubWVudHMiKTsKfSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmNvbmZpZ3VyZV9nb29nbGVfdGFncz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue3RhZ0lkOmMsY29uZmlndXJhdGlvbjpkfX0oZnVuY3Rpb24oYil7Wi5fX2NvbmZpZ3VyZV9nb29nbGVfdGFncz1iO1ouX19jb25maWd1cmVfZ29vZ2xlX3RhZ3MuTz0iY29uZmlndXJlX2dvb2dsZV90YWdzIjtaLl9fY29uZmlndXJlX2dvb2dsZV90YWdzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2NvbmZpZ3VyZV9nb29nbGVfdGFncy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2NvbmZpZ3VyZV9nb29nbGVfdGFncy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19jb25maWd1cmVfZ29vZ2xlX3RhZ3NbIjUiXT0hMTtaLl9fY29uZmlndXJlX2dvb2dsZV90YWdzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkVGFnSWRzfHwic3BlY2lmaWMiLGQ9Yi52dHBfdGFnSWRzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjsKcmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlRhZyBJRCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGMhPT0iYW55IiYmKGMhPT0ic3BlY2lmaWMifHxkLmluZGV4T2YoZyk9PT0tMSkpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGNvbmZpZ3VyYXRpb24gZm9yIFRhZyBJRDogIitnKyIuIik7fSxhYTphfX0pfSgpOwoKCgpmdW5jdGlvbiBrVSgpe3ZhciBhPXt9LGI9e2RhdGFMYXllcjp0QSxjYWxsYmFjazpmdW5jdGlvbihjKXthLmhhc093blByb3BlcnR5KGMpJiZ5YihhW2NdKSYmYVtjXSgpO2RlbGV0ZSBhW2NdfSxib290c3RyYXA6MH07Yi5vbkh0bWxTdWNjZXNzPVVrKCEwKSxiLm9uSHRtbEZhaWx1cmU9VWsoITEpO3JldHVybiBifQpmdW5jdGlvbiBsVSgpe3ZhciBhPWtVKCk7b2ooYSk7Q2soKTtqQSgpO3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtRYihiLFouc2VjdXJpdHlHcm91cHMpO3ZhciBjPXlrKHprKCkpLGQsZT1jPT1udWxsP3ZvaWQgMDooZD1jLmNvbnRleHQpPT1udWxsP3ZvaWQgMDpkLnNvdXJjZTtLbChlLGM9PW51bGw/dm9pZCAwOmMucGFyZW50KTtlIT09MiYmZSE9PTQmJmUhPT0zfHxQKDE0Mik7V2t8fChXaz1uZXcgVmspLFJrfHwoUms9bmV3IFRrKTtyZXR1cm4gYX1mdW5jdGlvbiBtVSgpe3ZhciBhPUUoNjApO2lmKGEpZm9yKHZhciBiPWEuc3BsaXQoIi4iKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1UTDtkJiYoZS5IW2RdPSEwKX19CmZ1bmN0aW9uIG5VKCl7enAoKTtsaigpO2Zvcih2YXIgYT1kYXRhLnJlc291cmNlfHx7fSxiPWNBLGM9YS5tYWNyb3N8fFtdLGQ9MDtkPGMubGVuZ3RoO2QrKyliLm1hY3Jvcy5wdXNoKG5ldyBVeihjW2RdLGQsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBlPWEudGFnc3x8W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKWIudGFncy5wdXNoKG5ldyBZeihlW2ZdLGYsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBnPWEucHJlZGljYXRlc3x8W10saD0wO2g8Zy5sZW5ndGg7aCsrKWIucHJlZGljYXRlcy5wdXNoKG5ldyBWeihnW2hdLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgbD1hLnJ1bGVzfHxbXSxuPTA7bjxsLmxlbmd0aDtuKyspYi5ydWxlcy5wdXNoKG5ldyBXeihsW25dLG4pKTtRej1aO3ZhciBwPWRhdGEucGVybWlzc2lvbnN8fHt9LHE9WjtkZz1uZXcgZ2coRSg1KSxwLHEpO3ZhciByPWRhdGEuc2FuZGJveGVkX3NjcmlwdHMsdD1kYXRhLnNlY3VyaXR5X2dyb3Vwcyx1PWRhdGEucnVudGltZXx8CltdLHY9ZGF0YS5ydW50aW1lX2xpbmVzO0pGPW5ldyBwZjtWVCgpO1B6PUlGKCk7dmFyIHg9SkYseT1VVCgpLHo9bmV3IExkKCJyZXF1aXJlIix5KTt6LlphKCk7eC5ILkguc2V0KCJyZXF1aXJlIix6KTtkYi5zZXQoInJlcXVpcmUiLHopO2Zvcih2YXIgQz0wO0M8dS5sZW5ndGg7QysrKXt2YXIgRD11W0NdO2lmKCFBcnJheS5pc0FycmF5KEQpfHxELmxlbmd0aDwzKXtpZihELmxlbmd0aD09PTApY29udGludWU7YnJlYWt9diYmdltDXSYmdltDXS5sZW5ndGgmJlBmKEQsdltDXSk7dHJ5e0pGLmV4ZWN1dGUoRCl9Y2F0Y2gob1Upe319V1Qocik7WFQodCk7dmFyIEk9bFUoKTtpRigpO3ZtLmJpbmQoKTtpZighRGopZm9yKHZhciBHPUJtKCk/ZXAoTGYoNSkpOmVwKExmKDQpKSxOPW0oUm8pLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlLGVhPVcsamE9R1tXXT8iZ3JhbnRlZCI6ImRlbmllZCI7dGwoKS5pbXBsaWNpdChlYSxqYSl9aEUuYmluZCgpO1RCKCk7Ck9CKCk7Zm4uTiYmKGd6KCksZnooQUYpLGdBKCksY0I9bmV3IGJCLGZ6KGl6KSxPQygpLERGfHwoREY9bmV3IEJGKSxmQnx8KGZCPW5ldyBlQiksRkY9bmV3IEVGKTtpZihmbi5LKXtERS5iaW5kKCk7bUMuYmluZCgpO3dFLmJpbmQoKTt2YXIgZmE9QWsoKTtpZihmYSl7dmFyIHNhO2E6e3ZhciBkYSxtYT0oZGE9ZmEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmRhLnNyYztpZihtYSl7dmFyIFBhO3RyeXt2YXIgRmE7UGE9KEZhPXJkKCkpPT1udWxsP3ZvaWQgMDpGYS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpfWNhdGNoKG9VKXt9aWYoUGEpe2Zvcih2YXIgcWE9LTEsaWI9bShQYSksWGI9aWIubmV4dCgpOyFYYi5kb25lO1hiPWliLm5leHQoKSl7dmFyIExjPVhiLnZhbHVlO2lmKExjLmluaXRpYXRvclR5cGU9PT0KInNjcmlwdCImJihxYSs9MSxMYy5uYW1lLnJlcGxhY2UoTkUsIiIpPT09bWEucmVwbGFjZShORSwiIikpKXtzYT1xYTticmVhayBhfX1QKDE0Nil9ZWxzZSBQKDE0NSl9c2E9dm9pZCAwfXZhciBRZD1zYTtRZCE9PXZvaWQgMCYmKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkJiZVbSgicnRnIixTdHJpbmcoZmEuY2Fub25pY2FsQ29udGFpbmVySWQpKSxVbSgic2xvIixTdHJpbmcoUWQpKSxVbSgiaGxvIixmYS5odG1sTG9hZE9yZGVyfHwiLTEiKSxVbSgibHN0IixTdHJpbmcoZmEubG9hZFNjcmlwdFR5cGV8fCIwIikpKX1lbHNlIFAoMTQ0KTt2YXIgWWM7dmFyIERkPXhrKCk7aWYoRGQpaWYoRGQuY2Fub25pY2FsQ29udGFpbmVySWQpWWM9RGQuY2Fub25pY2FsQ29udGFpbmVySWQ7ZWxzZXt2YXIgamYsdmg9RGQuc2NyaXB0Q29udGFpbmVySWR8fCgoamY9RGQuZGVzdGluYXRpb25zKT09bnVsbD92b2lkIDA6amZbMF0pO1ljPXZoPyJfIit2aDp2b2lkIDB9ZWxzZSBZYz12b2lkIDA7dmFyIEpFPQpZYztKRSYmVW0oInBjaWQiLEpFKTtVbSgiYnQiLFN0cmluZyhJZig0Nyk/MjpJZig1MCk/MTowKSk7VW0oImN0IixTdHJpbmcoSWYoNDcpPzA6SWYoNTApPzE6MykpO0FFLmJpbmQoKTtmb3IodmFyIFdyPVtdLFhyPVtdLEtFPW0oT2JqZWN0LmtleXMoR0UpKSxZcj1LRS5uZXh0KCk7IVlyLmRvbmU7WXI9S0UubmV4dCgpKXt2YXIgcm09WXIudmFsdWU7aWYod2luZG93LmlzU2VjdXJlQ29udGV4dHx8IUlFW3JtXSl7dmFyIExFPUdFW3JtXSgpO2lmKHliKExFKSl7dmFyIE1FPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKExFKTtUYihNRSwieyBbbmF0aXZlIGNvZGVdIH0iKXx8VGIoTUUsIntcbiAgICBbbmF0aXZlIGNvZGVdXG59Iil8fFhyLnB1c2gocm0pfWVsc2UgV3IucHVzaChybSl9fVdyLmxlbmd0aD4wJiZVbSgianNtIixXci5qb2luKCJ+IikpO1hyLmxlbmd0aD4wJiZVbSgianNwIixYci5qb2luKCJ+IikpO0V5fHwoRXk9bmV3IER5KX1oRigpO2ltKDEpO0VHKCk7cmV0dXJuIEl9CmZ1bmN0aW9uIHVtKCl7dHJ5e2lmKCFoaygpJiYoSWYoNDcpfHwhTmsoKSkpe0lmKDY0KSYmd2ouSC5LLmFkZCgxMTg1MTc5MTcpO3pqKCk7Zm4uSCYmc3ooKTtXZls1XT0hMDt2YXIgYT1raigiZGVidWdHcm91cElkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSl9KTtTbChhKTtrdCgpO3pGKCk7RnQoKTtQQigpO2lmKERrKCkpe0UoNSk7REcoKTtpQigpLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zKHZrKCkpO31lbHNle0ZNLlIoKTtuVSgpLmJvb3RzdHJhcD1OYigpO0lmKDUxKSYmcEUoKTsKZm4uSCYmdHooKTt0eXBlb2YgQS5uYW1lPT09InN0cmluZyImJlNiKEEubmFtZSwid2ViLXBpeGVsLXNhbmRib3gtQ1VTVE9NIikmJnNkKCk/WlQoImRNRGcwWXoiKTpBLlNob3BpZnkmJihaVCgiZE4yWmtNaiIpLHNkKCkmJlpUKCJkTlRVMFl6IikpO21VKCl9fX1jYXRjaChiKXtpbSg1KSxoeigpfX0KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtuPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKTtnbChuKSYmKGw9aC54bSl9ZnVuY3Rpb24gYygpe2wmJktjP2cobCk6YSgpfWlmKCFBW0UoMzcpXSl7dmFyIGQ9ITE7aWYoQi5yZWZlcnJlcil7dmFyIGU9UmooQi5yZWZlcnJlcik7ZD1OaihlLCJob3N0Iik9PT1FKDM4KX1pZighZCl7dmFyIGY9Y3EoRSgzOSkpO2Q9ISghZi5sZW5ndGh8fCFmWzBdLmxlbmd0aCl9ZCYmKEFbRSgzNyldPSEwLFVjKEUoNDApKSl9dmFyIGc9ZnVuY3Rpb24odSl7dmFyIHY9IkdUTSIseD0iR1RNIjtJZig0NSkmJih2PSJPR1QiLHg9IkdUQUciKTt2YXIgeT1FKDIzKSx6PUFbeV07enx8KHo9W10sQVt5XT16LFVjKCJodHRwczovLyIrRSgzKSsiL2RlYnVnL2Jvb3RzdHJhcD9pZD0iK0UoNSkrIiZzcmM9Iit4KyImY29uZD0iK1N0cmluZyh1KSsiJmd0bT0iK2R1KCkpKTt2YXIgQz17bWVzc2FnZVR5cGU6IkNPTlRBSU5FUl9TVEFSVElORyIsCmRhdGE6e3NjcmlwdFNvdXJjZTpLYyxjb250YWluZXJQcm9kdWN0OnYsZGVidWc6ITEsaWQ6RSg1KSx0YXJnZXRSZWY6e2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOnNrKCksY2Fub25pY2FsSWQ6RSg2KX0sYWxpYXNlczp3aygpLGRlc3RpbmF0aW9uczp0aygpfX0sRD1DLmRhdGE7RC5yZXN1bWU9ZnVuY3Rpb24oKXthKCl9O0QucmVzdW1lV2l0aE1lbW9zPWZ1bmN0aW9uKCl7c2woMSk7YSgpfTtJZigyKSYmKEMuZGF0YS5pbml0aWFsUHVibGlzaD0hMCk7ei5wdXNoKEMpfSxoPXtHcToxLFBtOjIsb246MyxqbDo0LHhtOjV9O2hbaC5HcV09IkdUTV9ERUJVR19MRUdBQ1lfUEFSQU0iO2hbaC5QbV09IkdUTV9ERUJVR19QQVJBTSI7aFtoLm9uXT0iUkVGRVJSRVIiO2hbaC5qbF09IkNPT0tJRSI7aFtoLnhtXT0iRVhURU5TSU9OX1BBUkFNIjt2YXIgbD12b2lkIDAsbj12b2lkIDAscD1MaihBLmxvY2F0aW9uLCJxdWVyeSIsITEsdm9pZCAwLCJndG1fZGVidWciKTtnbChwKSYmKGw9aC5QbSk7CmlmKCFsJiZCLnJlZmVycmVyKXt2YXIgcT1SaihCLnJlZmVycmVyKTtOaihxLCJob3N0Iik9PT1FKDI0KSYmKGw9aC5vbil9aWYoIWwpe3ZhciByPWNxKCJfX1RBR19BU1NJU1RBTlQiKTtyLmxlbmd0aCYmclswXS5sZW5ndGgmJihsPWguamwpfWx8fGIoKTtpZighbCYmZmwobikpe3ZhciB0PSExOyRjKEIsIlRBRGVidWdTaWduYWwiLGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LCExKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sMjAwKX1lbHNlIGMoKX0pKGZ1bmN0aW9uKCl7IUlmKDQ3KXx8dG0oKVsiMCJdP3VtKCk6eG0oKX0pOwoKfSkoKQoK"}},"time_used":143,"timings":{"blocked":-1,"dns":4,"connect":15,"send":0,"wait":46,"receive":46,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10784971490\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.429Z","timestamp":1785145405429,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=AW-10784971490\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:25 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 09:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 156702\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":454923,"size_decoded":157332,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (5422)","md5":"5080d06e7ec50f41156162eb72bec03e","sha1":"8644606357680248176523d983d955a8826c94fe","sha256":"c82d11bcee93fb3083ed8a24945f7c29e688adc4e87b28dee336b986e5b3c251","sha512":"5d62b98718378fa86dcee9fb3ff8ae4dd128a6fbf4fe6fe09d7ebfdecfb9eb03ab529a4192d47caf4f35ade249760c87862f1409a863c21db9cfd7e705abae96","ssdeep":"6144:AUiWU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+xTGawoXtS:AUivYqP69V3KqxXwOtS","tlshash":"55a419cdb3d670629396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","first_seen":"2026-07-27T09:44:08.322291Z","last_seen":"2026-07-27T14:04:41.076592Z","times_seen":4,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMiIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifV0sCiAgInRhZ3MiOlt7ImZ1bmN0aW9uIjoiX19vZ3RfYWRzX2RhdGF0b3MiLCJwcmlvcml0eSI6MTksInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTZ9LHsiZnVuY3Rpb24iOiJfX29ndF8xcF9kYXRhX3YyIiwicHJpb3JpdHkiOjksInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfaXNNYW51YWxFbmFibGVkIjpmYWxzZSwidnRwX2F1dG9QaG9uZUVuYWJsZWQiOmZhbHNlLCJ2dHBfYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiOlsibGlzdCIsWyJtYXAiLCJleGNsdXNpb25TZWxlY3RvciIsIiJdXSwidnRwX2lzRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9BZGRyZXNzRW5hYmxlZCI6ZmFsc2UsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjd9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZHNfZmlyc3QiLCJwcmlvcml0eSI6OCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTEwNzg0OTcxNDkwIiwidGFnX2lkIjoxN30seyJmdW5jdGlvbiI6Il9fY2NkX3ByZV9hdXRvX3BpaSIsInByaW9yaXR5Ijo2LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjE1fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5Ijo1LCJ2dHBfaW5jbHVkZVBhcmFtcyI6ZmFsc2UsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTR9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9wYWdlX3ZpZXciLCJwcmlvcml0eSI6NCwidnRwX2hpc3RvcnlFdmVudHMiOnRydWUsInZ0cF9kZWZlclBhZ2VWaWV3Ijp0cnVlLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTEwNzg0OTcxNDkwIiwidGFnX2lkIjoxM30seyJmdW5jdGlvbiI6Il9fY2NkX2Fkc19jb252X21hcmtpbmciLCJwcmlvcml0eSI6MywidnRwX2NvbnZlcnNpb25SdWxlcyI6WyJsaXN0IixbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6MixcImFyZ3NcIjpbe1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHA6XC9cL2Z1bmRpbmcudHgzbWFya2V0cy5jb21cIn1dfX0se1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjo2LFwiYXJnc1wiOlt7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiaGl0RGF0YVwiLFwicGFnZV9sb2NhdGlvblwiXX19LHtcInN0cmluZ1ZhbHVlXCI6XCJodHRwczpcL1wvZnVuZGluZy50eDNtYXJrZXRzLmNvbVwifV19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjIsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInBhZ2Vfdmlld1wifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfX0se1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHA6XC9cL2Z1bmRpbmcudHgzbWFya2V0cy5jb21cL2VuXC9meFwifV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjYsXCJhcmdzXCI6W3tcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJoaXREYXRhXCIsXCJwYWdlX2xvY2F0aW9uXCJdfX0se1wic3RyaW5nVmFsdWVcIjpcImh0dHBzOlwvXC9mdW5kaW5nLnR4M21hcmtldHMuY29tXC9lblwvZnhcIn1dfX1dfX1dfX1dfSIsImNvbnZlcnNpb25MYWJlbCIsInlENEVDTFhGazk4YkVPSzExcFlvIl1dLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjEyfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW5hYmxlX2NtIiwicHJpb3JpdHkiOjIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5IjoxLCJ2dHBfYWNjZXB0QXV0b21hdGljIjp0cnVlLCJ2dHBfYWNjZXB0Q29kZSI6dHJ1ZSwidnRwX2FjY2VwdE1hbnVhbFNlbGVjdG9yIjp0cnVlLCJ2dHBfYWNjZXB0VXNlckRhdGEiOnRydWUsInZ0cF9tYXRjaGluZ1J1bGVzIjoie1widHlwZVwiOjEsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNvbnZlcnNpb25cIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19LHtcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInVzZXJfZGF0YV93ZWJcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19XX0iLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA3ODQ5NzE0OTAiLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19yZXAiLCJ2dHBfY29udGFpbmVySWQiOiJBVy0xMDc4NDk3MTQ5MCIsInZ0cF9yZW1vdGVDb25maWciOlsibWFwIl0sInRhZ19pZCI6NX0seyJmdW5jdGlvbiI6Il9fY2NkX2Fkc19sYXN0IiwicHJpb3JpdHkiOjAsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDc4NDk3MTQ5MCIsInRhZ19pZCI6OX1dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiw5XV0sW1siaWYiLDFdLFsiYWRkIiwxLDEwLDgsNyw2LDUsNCwzLDAsMl1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fY2NkX2FkZF8xcF9kYXRhIixbNDYsImEiXSxbNTAsInciLFs0NiwiYUIiXSxbMjIsWzMwLFsyMCxbMTUsImFCIl0sWzQ0XV0sWzIwLFsxNSwiYUIiXSxbNDVdXV0sWzQ2LFszNixbN11dXV0sWzIyLFsyMCxbImciLFsxNSwiYUIiXV0sImFycmF5Il0sWzQ2LFszNixbMTUsImFCIl1dXV0sWzM2LFs3LFsxNSwiYUIiXV1dXSxbNTAsIngiLFs0NiwiYUIiLCJhQyJdLFsyMixbMSxbMTUsImFCIl0sWzE2LFsxNSwiYUIiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzM4LFsxNixbMTUsImFCIl0sWzE1LCJtIl1dLFs0NixbMTUsIm8iXSxbMTUsInAiXV0sWzQ2LFs1LFs0NixbMzYsWzE1LCJsIl1dXV0sWzUsWzQ2LFszNixbMTUsImsiXV1dXSxbOSxbNDYsWzM2LFsxNSwiaiJdXV1dXV1dXV0sWzM2LFsxNSwiYUMiXV1dLFs1MCwieSIsWzQ2LCJhQiIsImFDIiwiYUQiXSxbMjIsWzE1LCJhQiJdLFs0NixbMzYsWyJ4IixbMTUsImFCIl0sWzE1LCJqIl1dXV1dLFsyMixbMTUsImFDIl0sWzQ2LFszNixbMTUsImsiXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbMzYsWzE1LCJsIl1dXV0sWzM2LFs0NF1dXSxbNTAsInoiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsyOCxbMTUsImFDIl1dLFs0NixbMzYsZmFsc2VdXV0sWzQxLCJhRSJdLFszLCJhRSIsZmFsc2VdLFs1MiwiYUYiLFsieCIsWzE1LCJhQyJdLFsxNSwiYUQiXV1dLFs2NSwiYUciLFsyLFsxNSwiZiJdLCJrZXlzIixbNyxbMTUsImFDIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRyJdLFsxNSwibiJdXSxbNDYsWzZdXV0sWzUyLCJhSCIsWyJ3IixbMTYsWzE1LCJhQyJdLFsxNSwiYUciXV1dXSxbNTIsImFJIixbMSxbMTYsWzE1LCJhQyJdLFsxNSwibiJdXSxbMTYsWzE2LFsxNSwiYUMiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXV1dLFs1MiwiYUoiLFsidyIsWzE1LCJhSSJdXV0sWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFIIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbMTYsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzZdXV0sWzQzLFsxNSwiYUIiXSxbMTUsImFHIl0sWzMwLFsxNixbMTUsImFCIl0sWzE1LCJhRyJdXSxbN11dXSxbNDMsWzE1LCJhQiJdLFsxNSwibiJdLFszMCxbMTYsWzE1LCJhQiJdLFsxNSwibiJdXSxbOF1dXSxbNDMsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdLFszMCxbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSxbN11dXSxbNTIsImFNIixbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sImluZGV4T2YiLFs3LFsxNSwiYUwiXV1dXSxbMjIsWzIxLFsxNSwiYU0iXSxbMjcsMV1dLFs0NixbNl1dXSxbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sInB1c2giLFs3LFsxNSwiYUwiXV1dLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzgsIm1vZGUiLFsxNSwiYUYiXV1dXSxbMixbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSwicHVzaCIsWzcsWzE1LCJhTiJdXV0sWzMsImFFIix0cnVlXV1dXV1dXV0sWzM2LFsxNSwiYUUiXV1dLFs1MCwiYUEiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsxLFsxLFsyOCxbMTUsImFCIl1dLFsyOCxbMTUsImFDIl1dXSxbMjgsWzE1LCJhRCJdXV0sWzQ2LFs1MyxbMzYsWzgsInVzZXJEYXRhIixbNDRdLCJkaWRCbGVuZCIsZmFsc2VdXV1dXSxbNTIsImFFIixbOF1dLFs1MiwiYUYiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUIiXSxbMTUsImoiXV1dLFs1MiwiYUciLFsieiIsWzE1LCJhRSJdLFsxNSwiYUMiXSxbMTUsImsiXV1dLFs1MiwiYUgiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUQiXSxbMTUsImwiXV1dLFsyMixbMSxbMSxbMjgsWzE1LCJhRiJdXSxbMjgsWzE1LCJhRyJdXV0sWzI4LFsxNSwiYUgiXV1dLFs0NixbNTMsWzM2LFs4LCJ1c2VyRGF0YSIsWzQ0XSwiZGlkQmxlbmQiLGZhbHNlXV1dXV0sWzUyLCJhSSIsWzE5LFswLFswLFszOSxbMTUsImFGIl0sMSwwXSxbMzksWzE1LCJhRyJdLDEsMF1dLFszOSxbMTUsImFIIl0sMSwwXV0sMl1dLFszNixbOCwidXNlckRhdGEiLFsxNSwiYUUiXSwiZGlkQmxlbmQiLFsxNSwiYUkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50cmFja1VzYWdlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyJdXSxbNTIsImoiLCJjIl0sWzUyLCJrIiwibSJdLFs1MiwibCIsImEiXSxbNTIsIm0iLCJfdGFnX21vZGUiXSxbNTIsIm4iLCJfdGFnX21ldGFkYXRhIl0sWzUyLCJvIiwiQVVUTyJdLFs1MiwicCIsIk1BTlVBTCJdLFs1MiwicSIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsInIiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbInEiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFsicyIsWzE1LCJyIl0sImNjZF9hZGRfMXBfZGF0YSIsdHJ1ZV0sWzIyLFszMCxbMzAsWzI4LFsxNyxbMTUsImEiXSwibWF0Y2hpbmdSdWxlcyJdXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRVc2VyRGF0YSJdXV0sWzEsWzEsWzI4LFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl1dLFsyOCxbMTcsWzE1LCJhIl0sImFjY2VwdE1hbnVhbFNlbGVjdG9yIl1dXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRDb2RlIl1dXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwidSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsInYiLFs1MSwiIixbNywiYUIiXSxbMjIsWzI4LFsidSIsWzE3LFsxNSwiYSJdLCJtYXRjaGluZ1J1bGVzIl0sWzgsInByZUhpdCIsWzE1LCJhQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJCTyJdXV0sWzQ2LFs1MyxbMixbMTUsImFCIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNOIl0sdHJ1ZV1dLFszNl1dXV0sWzQxLCJhQyJdLFs0MSwiYUQiXSxbNTIsImFFIixbImQiLFsxNyxbMTUsImUiXSwiQ0siXV1dLFs1MiwiYUYiLFsxLFsxNSwiciJdLFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dLFs1MiwiYUciLFsxLFsxNSwiYUUiXSxbMTUsImFGIl1dXSxbMjIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhSCIsWzM5LFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1oiXV1dLFs0NF1dXSxbNTIsImFJIixbMzksWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiREEiXV1dLFs0NF1dXSxbNDEsImFKIl0sWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl0sWzQ2LFs1MyxbNTIsImFMIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNZIl1dXV0sWzIyLFsxNSwiYUwiXSxbNDYsWzUzLFszLCJhSiIsWyJhTCIsWzE1LCJhQiJdXV1dXV1dXV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyMCxbMTUsImFIIl0sWzQ1XV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFLIixbImFBIixbMTUsImFIIl0sWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFszLCJhRCIsWzE3LFsxNSwiYUsiXSwidXNlckRhdGEiXV0sWzIyLFsxNyxbMTUsImFLIl0sImRpZEJsZW5kIl0sWzQ2LFs1MyxbImgiLCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsWzE3LFsxNSwiaSJdLCJBRSJdXV1dXSxbMywiYUMiLFsieSIsWzE1LCJhSCJdLFsxNSwiYUkiXSxbMTUsImFKIl1dXV1dLFs0NixbNTMsWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFs0NixbNTMsWzMsImFEIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNaIl1dXV0sWzIyLFsyMCxbMTUsImFEIl0sWzQ1XV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJhQyIsWyJ4IixbMTUsImFEIl0sWzE1LCJqIl1dXV1dXSxbMjIsWzEsWzI4LFsxNSwiYUQiXV0sWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdXSxbNDYsWzUzLFszLCJhRCIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJEQSJdXV1dLFszLCJhQyIsWzE1LCJrIl1dXV1dLFsyMixbMSxbMjgsWzE1LCJhRCJdXSxbMTcsWzE1LCJhIl0sImFjY2VwdEF1dG9tYXRpYyJdXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1kiXV1dXSxbMjIsWzE1LCJhSCJdLFs0NixbNTMsWzMsImFEIixbImFIIixbMTUsImFCIl1dXSxbMywiYUMiLFsxNSwibCJdXV1dXV1dXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbNTMsWzIsWzE1LCJhQiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDVyJdLFsxNSwiYUQiXV1dLFsyLFsxNSwiYUIiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKUCJdLFsxNSwiYUMiXV1dXV1dLFsyLFsxNSwiYUIiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ04iXSx0cnVlXV1dXSxbInQiLFsxNSwiciJdLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2NvbnZfbWFya2luZyIsWzQ2LCJhIl0sWzIyLFszMCxbMjgsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXV0sWzIwLFsxNyxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnByb2Nlc3NBc05ld0V2ZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImoiLCJjb252ZXJzaW9uIl0sWyJlIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJBUSJdXV0sWzE1LCJqIl1dLFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJDVCJdXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImwiLFs4LCJwcmVIaXQiLFsxNSwiayJdXV0sWzUyLCJtIixbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbMjIsWzIwLFsxNSwibSJdLFsxNyxbMTUsImciXSwiQUgiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0RXZlbnROYW1lIixbNyxbMTcsWzE1LCJnIl0sIkFLIl1dXV1dXSxbNjUsIm4iLFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl0sWzQ2LFs1MyxbMjIsWyJjIixbMTcsWzE1LCJuIl0sIm1hdGNoaW5nUnVsZXMiXSxbMTUsImwiXV0sWzQ2LFs1MyxbNTIsIm8iLFsiYiIsWzE1LCJrIl1dXSxbMixbMTUsIm8iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImYiXSwiQVIiXSxbMTUsImoiXV1dLFsyLFsxNSwibyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJnIl0sIktHIl0sWzE3LFsxNSwibiJdLCJjb252ZXJzaW9uTGFiZWwiXV1dLFsyMixbImgiLFsxNyxbMTUsImkiXSwiQUQiXV0sWzQ2LFs1MyxbMixbMTUsIm8iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImYiXSwiQ1EiXSxmYWxzZV1dXV1dLFsiZCIsWzE1LCJvIl1dXV1dXV1dLFsyMixbMjAsWzE1LCJtIl0sWzE3LFsxNSwiZyJdLCJBSCJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwibSJdXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2ZpcnN0IixbNDYsImEiXSxbNTAsImYiLFs0NiwiZyJdLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZCJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImciXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiZyJdLFsiZiIsWzE1LCJnIl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2Fkc19sYXN0IixbNDYsImEiXSxbNTAsImciLFs0NiwiaCJdLFsyLFsxNSwiZiJdLCJBIixbNyxbMTUsImgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfdGFza0VuYWJsZUVuY3J5cHRpb24iXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaCJdLFsiZyIsWzE1LCJoIl1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIkFRIl1dXV0sWzIyLFsyMSxbMTUsImkiXSxbMTcsWzE1LCJlIl0sIkQiXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJLSSJdLFs0NF1dXV1dXSxbMjIsWzEsWzIwLFsxNSwiaSJdLFsxNyxbMTUsImUiXSwiRCJdXSxbMjgsWzIsWzE1LCJoIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiS0ciXV1dXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwiYWJvcnQiLFs3XV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fZm9ybSIsWzQ2LCJhIl0sWzUwLCJ4IixbNDYsImFMIl0sWzUyLCJhTSIsWzMwLFsxNixbMTUsImFMIl0sWzE1LCJyIl1dLFs4XV1dLFs0MyxbMTUsImFNIl0sImV2ZW50X3VzYWdlIixbNyxbMTcsWzE1LCJnIl0sIkgiXV1dLFs0MyxbMTUsImFMIl0sWzE1LCJyIl0sWzE1LCJhTSJdXV0sWzUwLCJ5IixbNDYsImFMIiwiYU0iXSxbNTIsImFOIixbMzAsWzE2LFsxNSwiYUwiXSxbMTUsInIiXV0sWzhdXV0sWzIyLFsxNixbMTUsImFNIl0sImd0bS5mb3JtQ2FuY2VsZWQiXSxbNDYsWzUzLFs0MyxbMTUsImFOIl0sWzE3LFsxNSwiaSJdLCJBSiJdLHRydWVdXV1dLFsyLFsxNSwidSJdLCJCIixbNyxbMTUsImFMIl0sWzE1LCJhTiJdXV1dLFs1MCwieiIsWzQ2LCJhTCIsImFNIiwiYU4iXSxbNTIsImFPIixbMixbMTUsInciXSwiZmlsdGVyIixbNyxbNTEsIiIsWzcsImFRIl0sWzM2LFsyMCxbMixbMTUsImFRIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFPIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWyJ2IixbMTUsImFPIl0sWzE1LCJhTCJdLFsxNSwiYU0iXSxbMTUsImFOIl1dXV1dLFs1MiwiYVAiLFsyLFsxNSwidyJdLCJmaWx0ZXIiLFs3LFs1MSwiIixbNywiYVEiXSxbMzYsWzIxLFsyLFsxNSwiYVEiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJhTiJdLCJkZWZlcnJhYmxlIix0cnVlXSxbInYiLFsxNSwiYVAiXSxbMTUsImFMIl0sWzE1LCJhTSJdLFsxNSwiYU4iXV1dXV1dLFs1MCwiYUsiLFs0Nl0sWzUyLCJhTCIsWyJtIixbImwiLDAsMi4xNDc0ODM2NDdFOV1dXSxbNDEsImFNIl0sWzMsImFNIiwwXSxbMzYsWzUxLCIiLFs3LCJhTiJdLFsyMixbMjAsWzE1LCJhTiJdLFsxNSwicyJdXSxbNDYsWzUzLFszLCJhTSIsWyJrIl1dLFszNixbMCxbIm0iLFsxNSwiYU0iXV0sWzE1LCJhTCJdXV1dXSxbNDYsWzIyLFsyMCxbMTUsImFOIl0sWzE1LCJvIl1dLFs0NixbNTMsWzIyLFsyMCxbMTUsImFNIl0sMF0sWzQ2LFs1MyxbMzYsWzAsWyJtIixbImsiXV0sWzE1LCJhTCJdXV1dXV0sWzUyLCJhTyIsWyJrIl1dLFsyMixbMjMsWzM3LFsxNSwiYU8iXSxbMTUsImFNIl1dLDIwMF0sWzQ2LFs1MyxbNTIsImFQIixbMTUsImFNIl1dLFszLCJhTSIsMF0sWzM2LFswLFsibSIsWzE1LCJhUCJdXSxbMTUsImFMIl1dXV1dXSxbMywiYU0iLDBdLFszNixbMCxbIm0iLFsxNSwiYU8iXV0sWzE1LCJhTCJdXV1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2NjZEVtRm9ybUFjdGl2aXR5Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImwiLFsicmVxdWlyZSIsImdlbmVyYXRlUmFuZG9tIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm4iLFsxNyxbMTUsImgiXSwiQiJdXSxbNTIsIm8iLCJmb3JtX3N1Ym1pdCJdLFs1MiwicCIsImZvcm1fc3RhcnQiXSxbNTIsInEiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsInIiLCJldmVudE1ldGFkYXRhIl0sWzUyLCJzIiwiY2xpY2siXSxbNTIsInQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImQiLFsxNSwidCJdLFsxNSwibiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWzE1LCJhIl0sInNraXBWYWxpZGF0aW9uIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwicSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LFsxNSwicSJdLHRydWVdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsInYiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJ3IixbMixbMTUsInUiXSwiQSIsWzcsImZvcm0iXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzIyLFsxNSwiYU0iXSxbNDYsWyJhTSJdXV0sWzUyLCJhTiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRJZCJdXSxbMjIsWzE2LFsxNSwiYUEiXSxbMTUsImFOIl1dLFs0NixbMzZdXV0sWzQzLFsxNSwiYUEiXSxbMTUsImFOIl0sdHJ1ZV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNSwiYU4iXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZmlyc3RfZmllbGRfaWQiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkSWQiXSwiZmlyc3RfZmllbGRfbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl0sImZpcnN0X2ZpZWxkX3R5cGUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdLCJmaXJzdF9maWVsZF9wb3NpdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRQb3NpdGlvbiJdXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N0YXJ0Il0sWyJ6IixbMTUsInAiXSxbMTUsImFPIl0sWzE1LCJhUCJdXV1dLFs1MiwiYUMiLFsiYUsiXV0sWzUyLCJhRCIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzUyLCJhTiIsWyJhQyIsWzE1LCJvIl1dXSxbImFCIixbMTUsImFMIl0sWzQ0XV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50SWQiXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZm9ybV9zdWJtaXRfdGV4dCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmZvcm1TdWJtaXRFbGVtZW50VGV4dCJdXV0sWzQzLFsxNSwiYU8iXSwiZXZlbnRfY2FsbGJhY2siLFsxNSwiYU0iXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N1Ym1pdCJdLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIlMiXSxbMTUsImFOIl1dLFsieiIsWzE1LCJvIl0sWzE1LCJhTyJdLFsxNSwiYVAiXV1dXSxbNTIsImFFIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiYUYiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCJdXSxbNTIsImFHIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiJdXSxbNTIsImFIIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIl1dLFs1MiwiYUkiLFsiYUciXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsiYUUiLCJndG0uZm9ybUludGVyYWN0IixbMTUsImFCIl0sWzE1LCJhSSJdXSxbNTIsImFKIixbImFGIixbOCwiY2hlY2tWYWxpZGF0aW9uIixmYWxzZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJhSiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbImFFIiwiZ3RtLmZvcm1TdWJtaXQiLFsxNSwiYUQiXSxbMTUsImFKIl1dLFsyMixbImUiLFsxNyxbMTUsImIiXSwiQ1AiXV0sWzQ2LFs1MyxbNTIsImFMIixbImFIIixbOCwidXNlVjJFdmVudE5hbWUiLHRydWUsImNzc1NlbGVjdG9yIixbMCxbMCxbMCxbMCxbMCxbMCxbMCwiZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSwgIiwiZm9ybSBidXR0b246bm90KFt0eXBlXSksIl0sImZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgIl0sImZvcm0gaW5wdXRbdHlwZT1cImltYWdlXCJdLCAiXSwiYnV0dG9uW2Zvcm1dW3R5cGU9XCJzdWJtaXRcIl0sICJdLCJidXR0b25bZm9ybV06bm90KFt0eXBlXSksICJdLCJpbnB1dFt0eXBlPVwic3VibWl0XCJdW2Zvcm1dLCAiXSwiaW5wdXRbdHlwZT1cImltYWdlXCJdW2Zvcm1dIl1dXV0sWzUwLCJhTSIsWzQ2LCJhTiIsImFPIl0sWzUyLCJhUCIsWzgsImV2ZW50X2NhbGxiYWNrIixbMTUsImFPIl1dXSxbNTIsImFRIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYU4iXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUSJdXSxbInkiLFsxNSwiYVEiXSxbMTUsImFOIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFSIl0sWzE3LFsxNSwiaiJdLCJLIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImNsaWNrIl0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiUyJdLFsiYUMiLFsxNSwicyJdXV0sWyJ6IixbMTUsIm8iXSxbMTUsImFQIl0sWzE1LCJhUSJdXV0sWyJhRSIsImd0bS5jbGljay12MiIsWzE1LCJhTSJdLFsxNSwiYUwiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3BhZ2VfdmlldyIsWzQ2LCJhIl0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImhpc3RvcnlFdmVudHMiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJnIixbMTcsWzE1LCJmIl0sIkMiXV0sWzUyLCJoIiwicGFnZV92aWV3Il0sWzUyLCJpIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImoiXSxbMTUsImciXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaiJdXV0sWzIyLFsyLFsxNSwiZCJdLCJnZXRJdGVtIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsIm0iXSwiQSIsWzcsInBhZ2VfdmlldyJdXV0sWzUyLCJwIixbOCwiaW50ZXJ2YWwiLDEwMDAsInVzZVYyRXZlbnROYW1lIix0cnVlXV0sWzUyLCJxIixbImwiLFsxNSwicCJdXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJkIl0sInNldEl0ZW0iLFs3LFsxNSwiaSJdLHRydWVdXSxbImsiLCJndG0uaGlzdG9yeUNoYW5nZS12MiIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0ub2xkVXJsIl1dLFsyMixbMjAsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl0sWzE1LCJ0Il1dLFs0NixbMzZdXV0sWzUyLCJ1IixbMTYsWzE1LCJyIl0sImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIl1dLFsyMixbMSxbMSxbMjEsWzE1LCJ1Il0sInB1c2hTdGF0ZSJdLFsyMSxbMTUsInUiXSwicG9wc3RhdGUiXV0sWzIxLFsxNSwidSJdLCJyZXBsYWNlU3RhdGUiXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInBhZ2VfbG9jYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdXSxbNDMsWzE1LCJ2Il0sInBhZ2VfcmVmZXJyZXIiLFsxNSwidCJdXV1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbMjIsWzIxLFsxNyxbMTUsImEiXSwiZGVmZXJQYWdlVmlldyJdLGZhbHNlXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dXV0sWzIsWzE1LCJtIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImgiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW5hYmxlX2NtIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsiYiIsWzE1LCJjIl0sImNjZF9lbmFibGVfY20iLHRydWVdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9wcmVfYXV0b19waWkiLFs0NiwiYSJdLFs1MCwibCIsWzQ2LCJuIl0sWzUyLCJvIixbMTYsWzE1LCJuIl0sInVzZXJEYXRhIl1dLFs1MiwicCIsWzMwLFsxOCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkBnbWFpbC4iXV0sWzI3LDFdXSxbMTgsWzIsWzE1LCJvIl0sImluZGV4T2YiLFs3LCJAZ29vZ2xlbWFpbC4iXV0sWzI3LDFdXV1dLFszNixbMCxbMCxbMCxbMCxbMCxbMCxbMTYsWzE1LCJuIl0sInRhZ05hbWUiXSwiOiJdLFsxNixbMTUsIm4iXSwiaXNWaXNpYmxlIl1dLCI6Il0sWzE3LFsxNSwibyJdLCJsZW5ndGgiXV0sIjoiXSxbMTUsInAiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWyJjIixbMTUsImQiXSwiaGFzUHJlQXV0b1BpaUNjZFJ1bGUiLHRydWVdLFsyMixbMjgsWyJiIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImciLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbOCwiZW1haWwiLCIxIiwicGhvbmVfbnVtYmVyIiwiMiIsImZpcnN0X25hbWUiLCIzIiwibGFzdF9uYW1lIiwiNCIsImNvdW50cnkiLCI1IiwicG9zdGFsX2NvZGUiLCI2Iiwic3RyZWV0IiwiNyIsImNpdHkiLCI4IiwicmVnaW9uIiwiOSJdXSxbImUiLFsxNSwiZCJdLFs1MSwiIixbNywibiJdLFsyMixbMjEsWzIsWzE1LCJuIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFRIl1dXSxbMTcsWzE1LCJpIl0sIkQiXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbMjgsWyJnIixbMTcsWzE1LCJrIl0sIkIiXV1dLFs0NixbMzZdXV0sWzUyLCJvIixbImYiXV0sWzUyLCJwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIl1dLFs0MSwicSJdLFs2OCwiIixbNTMsWzMsInEiLFsicCIsWzgsImluY2x1ZGVTZWxlY3RvciIsdHJ1ZSwiaW5jbHVkZVZpc2liaWxpdHkiLHRydWUsInNlbGVjdE11bHRpcGxlRWxlbWVudHMiLHRydWUsInJlYWRGcm9tRGF0YUxheWVyIixmYWxzZV1dXV0sWzQ2XV0sWzIyLFszMCxbMzAsWzI4LFsxNSwicSJdXSxbMjgsWzE2LFsxNSwicSJdLCJlbGVtZW50cyJdXV0sWzIwLFsxNyxbMTYsWzE1LCJxIl0sImVsZW1lbnRzIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJyIixbMTYsWzE1LCJxIl0sImVsZW1lbnRzIl1dLFs1MiwicyIsWzddXSxbNjUsInYiLFsxNSwiciJdLFs0NixbNTMsWzUyLCJ3IixbImwiLFsxNSwidiJdXV0sWzUyLCJ4IixbMzAsWzE2LFsxNSwibSJdLFsxNixbMTUsInYiXSwidHlwZSJdXSwiIl1dLFsyLFsxNSwicyJdLCJwdXNoIixbNyxbMCxbMCxbMCxbMCxbMTYsWzE1LCJ2Il0sInF1ZXJ5U2VsZWN0b3IiXSwiKiJdLFsxNSwidyJdXSwiKiJdLFsxNSwieCJdXV1dXV1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpNIl0sWzIsWzE1LCJzIl0sImpvaW4iLFs3LCJ+Il1dXV0sWzUyLCJ0IixbMTYsWzE1LCJxIl0sInByZWZlcnJlZEVtYWlsRWxlbWVudCJdXSxbMjIsWzE1LCJ0Il0sWzQ2LFs1MyxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKTiJdLFsxNixbMTUsInQiXSwicXVlcnlTZWxlY3RvciJdXV0sWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSkwiXSxbImwiLFsxNSwidCJdXV1dXV1dLFs1MiwidSIsWyJmIl1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpLIl0sWyJoIixbMzcsWzE1LCJ1Il0sWzE1LCJvIl1dXV1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpPIl0sWzE2LFsxNSwicSJdLCJzdGF0dXMiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fZSIsWzQ2LCJhIl0sWzM2LFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFdmVudERhdGEiXV0sWyIkMCIsImV2ZW50Il1dXV0KICxbNTAsIl9fb2d0XzFwX2RhdGFfdjIiLFs0NiwiYSJdLFs1MCwicCIsWzQ2LCJyIiwicyIsInQiLCJ1Il0sWzIyLFsyMCxbMTYsWzE1LCJzIl0sInR5cGUiXSxbMTUsInQiXV0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiciJdXSxbNDYsWzUzLFszLCJyIixbOF1dXV1dLFsyMixbMjgsWzE2LFsxNSwiciJdLFsxNSwidCJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sWzE1LCJ0Il0sWzE2LFsxNSwicyJdLCJ1c2VyRGF0YSJdXSxbNTIsInYiLFs4LCJtb2RlIiwiYSJdXSxbMjIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sImxvY2F0aW9uIixbMTYsWzE1LCJzIl0sInRhZ05hbWUiXV1dXV0sWzIyLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJzZWxlY3RvciIsWzE2LFsxNSwicyJdLCJxdWVyeVNlbGVjdG9yIl1dXV1dLFs0MyxbMTUsInUiXSxbMTUsInQiXSxbMTUsInYiXV1dXV1dXV0sWzM2LFsxNSwiciJdXV0sWzUwLCJxIixbNDYsInIiLCJzIiwidCJdLFsyMixbMjgsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV0sWzQ2LFszNl1dXSxbNDMsWzE1LCJyIl0sWzE1LCJzIl0sWzgsInZhbHVlIixbMTYsWzE1LCJhIl0sWzE1LCJ0Il1dXV1dLFsyMixbMjgsWzE3LFsxNSwiYSJdLCJpc0VuYWJsZWQiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbImMiLFsxNyxbMTUsImUiXSwiQVQiXV1dLFs1MiwibiIsWzMwLFsiZiJdLFs3XV1dLFs1MiwibyIsWzgsImVuYWJsZV9jb2RlIix0cnVlXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNBdXRvRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJyIixbN11dLFsyMixbMSxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFs0NixbNTMsWzUzLFs0MSwidSJdLFszLCJ1IiwwXSxbNjMsWzcsInUiXSxbMjMsWzE1LCJ1Il0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFszMyxbMTUsInUiXSxbMywidSIsWzAsWzE1LCJ1Il0sMV1dXSxbNDYsWzUzLFs1MiwidiIsWzE3LFsxNixbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE1LCJ1Il1dLCJleGNsdXNpb25TZWxlY3RvciJdXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMixbMTUsInIiXSwicHVzaCIsWzcsWzE1LCJ2Il1dXV1dXV1dXV1dXV0sWzUyLCJzIixbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdXSxbNTIsInQiLFszOSxbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdLFsxNyxbMTUsImEiXSwiYXV0b0VtYWlsRW5hYmxlZCJdLHRydWVdXSxbNDMsWzE1LCJvIl0sImF1dG9fZGV0ZWN0IixbOCwiZW1haWwiLFsxNSwidCJdLCJwaG9uZSIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvUGhvbmVFbmFibGVkIl1dLCJhZGRyZXNzIixbMSxbMTUsInMiXSxbMTcsWzE1LCJhIl0sImF1dG9BZGRyZXNzRW5hYmxlZCJdXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyIsWzE1LCJyIl1dXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJpc01hbnVhbEVuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxFbWFpbEVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sImVtYWlsIiwiZW1haWxWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbFBob25lRW5hYmxlZCJdLFs0NixbNTMsWyJxIixbMTUsInIiXSwicGhvbmUiLCJwaG9uZVZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsQWRkcmVzc0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwicyIsWzhdXSxbInEiLFsxNSwicyJdLCJmaXJzdF9uYW1lIiwiZmlyc3ROYW1lVmFsdWUiXSxbInEiLFsxNSwicyJdLCJsYXN0X25hbWUiLCJsYXN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwic3RyZWV0Iiwic3RyZWV0VmFsdWUiXSxbInEiLFsxNSwicyJdLCJjaXR5IiwiY2l0eVZhbHVlIl0sWyJxIixbMTUsInMiXSwicmVnaW9uIiwicmVnaW9uVmFsdWUiXSxbInEiLFsxNSwicyJdLCJjb3VudHJ5IiwiY291bnRyeVZhbHVlIl0sWyJxIixbMTUsInMiXSwicG9zdGFsX2NvZGUiLCJwb3N0YWxDb2RlVmFsdWUiXSxbNDMsWzE1LCJyIl0sIm5hbWVfYW5kX2FkZHJlc3MiLFs3LFsxNSwicyJdXV1dXV0sWzQzLFsxNSwibyJdLCJzZWxlY3RvcnMiLFsxNSwiciJdXV1dXSxbNjUsInIiLFsxNSwibiJdLFs0NixbNTMsWyJpIixbMTUsInIiXSwidXNlcl9kYXRhX3NldHRpbmdzIixbMTUsIm8iXV0sWzUyLCJzIixbMTYsWzE1LCJvIl0sImF1dG9fZGV0ZWN0Il1dLFsyMixbMjgsWzE1LCJzIl1dLFs0NixbNTMsWzZdXV1dLFs1MiwidCIsWzUxLCIiLFs3LCJ1Il0sWzUyLCJ2IixbMixbMTUsInUiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXV1dXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMzYsWzE1LCJ2Il1dXV1dLFs1MiwidyIsWyJjIixbMTcsWzE1LCJlIl0sIkJWIl1dXSxbNTIsIngiLFsiYyIsWzE3LFsxNSwiZSJdLCJDSSJdXV0sWzQxLCJ5Il0sWzIyLFsiaCIsImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiLCJhdXRvIl0sWzQ2LFs1MyxbMywieSIsWyJnIixbOCwiZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMiLFsxNixbMTUsInMiXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyJdLCJmaWVsZEZpbHRlcnMiLFs4LCJlbWFpbCIsWzE2LFsxNSwicyJdLCJlbWFpbCJdLCJwaG9uZSIsWzE2LFsxNSwicyJdLCJwaG9uZSJdLCJhZGRyZXNzIixbMTYsWzE1LCJzIl0sImFkZHJlc3MiXV0sImluY2x1ZGVTZWxlY3RvciIsWzE1LCJ3Il0sInJlYWRGcm9tRGF0YUxheWVyIixbMTUsIngiXV1dXV1dXSxbNTIsInoiLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwiZWxlbWVudHMiXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzhdXSxbMjIsWzEsWzE1LCJ6Il0sWzE4LFsxNyxbMTUsInoiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzQxLCJhQyJdLFs0MSwiYUQiXSxbMywiYUQiLFs4XV0sWzUzLFs0MSwiYUUiXSxbMywiYUUiLDBdLFs2MyxbNywiYUUiXSxbMjMsWzE1LCJhRSJdLFsxNyxbMTUsInoiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFFIl0sWzMsImFFIixbMCxbMTUsImFFIl0sMV1dXSxbNDYsWzUzLFs1MiwiYUYiLFsxNixbMTUsInoiXSxbMTUsImFFIl1dXSxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sImVtYWlsIixbMTUsImFCIl1dLFsyMixbImMiLFsxNyxbMTUsImUiXSwiQk8iXV0sWzQ2LFs1MyxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sInBob25lX251bWJlciIsWzE1LCJhQiJdXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwiZmlyc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImxhc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImNvdW50cnkiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJwb3N0YWxfY29kZSIsWzE1LCJhRCJdXV1dXV1dXV1dLFsyMixbMSxbMTUsImFDIl0sWzI4LFsxNixbMTUsImFBIl0sImFkZHJlc3MiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiYWRkcmVzcyIsWzE1LCJhQyJdXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbNDMsWzE2LFsxNSwiYUEiXSwiYWRkcmVzcyJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFEIl1dXV1dXV1dXV1dLFsyMixbMSxbMTUsInkiXSxbMTUsIngiXV0sWzQ2LFs1MyxbNTIsImFDIixbMTYsWzE1LCJ5Il0sImRhdGFMYXllclNlYXJjaFRpbWUiXV0sWzUyLCJhRCIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hDb3VudCJdXSxbMixbMTUsInUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJsIl0sIkZUIl0sWzgsImRsc3QiLFsxNSwiYUMiXSwiZGxzYyIsWzE1LCJhRCJdXV1dXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyMixbMzAsWzE2LFsxNSwiYUEiXSwiZW1haWwiXSxbMTYsWzE1LCJhQSJdLCJwaG9uZV9udW1iZXIiXV0sWzQ2LFs1MyxbNDMsWzE1LCJhQSJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFCIl1dXV1dXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWCJdLFsxNSwiYUEiXV1dLFszNixbMTUsImFBIl1dXV0sWyJqIixbMTUsInIiXSxbNTEsIiIsWzcsInUiXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1kiXSxbMTUsInQiXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fb2d0X2Fkc19kYXRhdG9zIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsiYiIsWzE1LCJjIl0sImFkc19jdXN0b21lcl9kYXRhX3Rlcm1zIix0cnVlXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19yZXAiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiJdXSxbMjIsWzI4LFsiYiIsWzE3LFsxNSwiYSJdLCJjb250YWluZXJJZCJdLFsxNyxbMTUsImEiXSwicmVtb3RlQ29uZmlnIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb252ZXJzaW9uIl0sWzUyLCJjIiwiZmxvb2RsaWdodCJdLFs1MiwiZCIsImdhX2NvbnZlcnNpb24iXSxbNTIsImUiLCJwYWdlX3ZpZXciXSxbNTIsImYiLCJyZW1hcmtldGluZyJdLFs1MiwiZyIsInVzZXJfZGF0YV9sZWFkIl0sWzUyLCJoIiwidXNlcl9kYXRhX3dlYiJdLFszNixbOCwiRCIsWzE1LCJiIl0sIkUiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiSCIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJjIiwiYWRfc3RvcmFnZSJdLFs1MiwiZCIsImFkX3VzZXJfZGF0YSJdLFs1MiwiZSIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZiIsImFwcF9yZW1vdmUiXSxbNTIsImciLCJhcHBfc3RvcmVfcmVmdW5kIl0sWzUyLCJoIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiXSxbNTIsImkiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiXSxbNTIsImoiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Il0sWzUyLCJrIiwiY29udmVyc2lvbiJdLFs1MiwibCIsInB1cmNoYXNlIl0sWzUyLCJtIiwiZmlyc3Rfb3BlbiJdLFs1MiwibiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJvIiwiZ3RhZy5jb25maWciXSxbNTIsInAiLCJpbl9hcHBfcHVyY2hhc2UiXSxbNTIsInEiLCJwYWdlX3ZpZXciXSxbNTIsInIiLCJzZXNzaW9uX3N0YXJ0Il0sWzUyLCJzIiwidXNlcl9lbmdhZ2VtZW50Il0sWzUyLCJ0IiwiYWRzX2RhdGFfcmVkYWN0aW9uIl0sWzUyLCJ1IiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiXSxbNTIsInYiLCJhbGxvd19jdXN0b21fc2NyaXB0cyJdLFs1MiwidyIsImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIl0sWzUyLCJ4IiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiXSxbNTIsInkiLCJhdWlkIl0sWzUyLCJ6IiwiYXdfcmVtYXJrZXRpbmdfb25seSJdLFs1MiwiYUEiLCJkaXNjb3VudCJdLFs1MiwiYUIiLCJhd19mZWVkX2NvdW50cnkiXSxbNTIsImFDIiwiYXdfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYUQiLCJpdGVtcyJdLFs1MiwiYUUiLCJhd19tZXJjaGFudF9pZCJdLFs1MiwiYUYiLCJhd19iYXNrZXRfdHlwZSJdLFs1MiwiYUciLCJjbGllbnRfaWQiXSxbNTIsImFIIiwiY29udmVyc2lvbl9jb29raWVfcHJlZml4Il0sWzUyLCJhSSIsImNvbnZlcnNpb25faWQiXSxbNTIsImFKIiwiY29udmVyc2lvbl9saW5rZXIiXSxbNTIsImFLIiwiY29udmVyc2lvbl9hcGkiXSxbNTIsImFMIiwiY29va2llX2RlcHJlY2F0aW9uIl0sWzUyLCJhTSIsImNvb2tpZV9leHBpcmVzIl0sWzUyLCJhTiIsImNvb2tpZV9wcmVmaXgiXSxbNTIsImFPIiwiY29va2llX3VwZGF0ZSJdLFs1MiwiYVAiLCJjb3VudHJ5Il0sWzUyLCJhUSIsImN1cnJlbmN5Il0sWzUyLCJhUiIsImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIl0sWzUyLCJhUyIsImN1c3RvbWVyX3R5cGUiXSxbNTIsImFUIiwiZGVidWdfbW9kZSJdLFs1MiwiYVUiLCJzaGlwcGluZyJdLFs1MiwiYVYiLCJlbmdhZ2VtZW50X3RpbWVfbXNlYyJdLFs1MiwiYVciLCJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSJdLFs1MiwiYVgiLCJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJhWSIsImV2ZW50X2lkIl0sWzUyLCJhWiIsImV2ZW50Il0sWzUyLCJiQSIsIl8mYWUiXSxbNTIsImJCIiwiZXZlbnRfdGltZW91dCJdLFs1MiwiYkMiLCJleHRfY2xpZW50X2lkIl0sWzUyLCJiRCIsImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iXSxbNTIsImJFIiwibWF0Y2hfaWQiXSxbNTIsImJGIiwiZ2Rwcl9hcHBsaWVzIl0sWzUyLCJiRyIsIl9ndF9tZXRhZGF0YSJdLFs1MiwiYkgiLCJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIl0sWzUyLCJiSSIsIl9nb29nbGVfbmciXSxbNTIsImJKIiwiX29ubyJdLFs1MiwiYksiLCJncHBfc2lkIl0sWzUyLCJiTCIsImdwcF9zdHJpbmciXSxbNTIsImJNIiwiZ3NhX2V4cGVyaW1lbnRfaWQiXSxbNTIsImJOIiwiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIl0sWzUyLCJiTyIsImlmcmFtZV9zdGF0ZSJdLFs1MiwiYlAiLCJpZ25vcmVfcmVmZXJyZXIiXSxbNTIsImJRIiwiaXNfcGFzc3Rocm91Z2giXSxbNTIsImJSIiwibGFuZ3VhZ2UiXSxbNTIsImJTIiwibWVyY2hhbnRfZmVlZF9sYWJlbCJdLFs1MiwiYlQiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIl0sWzUyLCJiVSIsIm1lcmNoYW50X2lkIl0sWzUyLCJiViIsIm5ld19jdXN0b21lciJdLFs1MiwiYlciLCJwYWdlX2hvc3RuYW1lIl0sWzUyLCJiWCIsInBhZ2VfcGF0aCJdLFs1MiwiYlkiLCJwYWdlX3JlZmVycmVyIl0sWzUyLCJiWiIsInBhZ2VfdGl0bGUiXSxbNTIsImNBIiwiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIl0sWzUyLCJjQiIsInF1YW50aXR5Il0sWzUyLCJjQyIsInJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIl0sWzUyLCJjRCIsInNjcmVlbl9yZXNvbHV0aW9uIl0sWzUyLCJjRSIsInNlbmRfcGFnZV92aWV3Il0sWzUyLCJjRiIsInNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCJdLFs1MiwiY0ciLCJzZXJ2ZXJfY29udGFpbmVyX3VybCJdLFs1MiwiY0giLCJzZXNzaW9uX2R1cmF0aW9uIl0sWzUyLCJjSSIsInNlc3Npb25fZW5nYWdlZF90aW1lIl0sWzUyLCJjSiIsInNlc3Npb25faWQiXSxbNTIsImNLIiwiX3NoYXJlZF91c2VyX2lkIl0sWzUyLCJjTCIsImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIl0sWzUyLCJjTSIsInRlc3Rvbmx5Il0sWzUyLCJjTiIsInRvcG1vc3RfdXJsIl0sWzUyLCJjTyIsInRyYW5zYWN0aW9uX2lkIl0sWzUyLCJjUCIsInRyYW5zYWN0aW9uX2lkX3NvdXJjZSJdLFs1MiwiY1EiLCJ0cmFuc3BvcnRfdXJsIl0sWzUyLCJjUiIsInVwZGF0ZSJdLFs1MiwiY1MiLCJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiXSxbNTIsImNUIiwiX3VzZXJfYWdlbnRfYml0bmVzcyJdLFs1MiwiY1UiLCJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCJdLFs1MiwiY1YiLCJfdXNlcl9hZ2VudF9tb2JpbGUiXSxbNTIsImNXIiwiX3VzZXJfYWdlbnRfbW9kZWwiXSxbNTIsImNYIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm0iXSxbNTIsImNZIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiJdLFs1MiwiY1oiLCJfdXNlcl9hZ2VudF93b3c2NCJdLFs1MiwiZEEiLCJ1c2VyX2RhdGEiXSxbNTIsImRCIiwidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSJdLFs1MiwiZEMiLCJ1c2VyX2RhdGFfYXV0b19tZXRhIl0sWzUyLCJkRCIsInVzZXJfZGF0YV9hdXRvX211bHRpIl0sWzUyLCJkRSIsInVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyJdLFs1MiwiZEYiLCJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiXSxbNTIsImRHIiwidXNlcl9kYXRhX21vZGUiXSxbNTIsImRIIiwidXNlcl9pZCJdLFs1MiwiZEkiLCJ1c2VyX3Byb3BlcnRpZXMiXSxbNTIsImRKIiwidXNfcHJpdmFjeV9zdHJpbmciXSxbNTIsImRLIiwidmFsdWUiXSxbNTIsImRMIiwiX2ZwbV9wYXJhbWV0ZXJzIl0sWzUyLCJkTSIsIl9ob3N0X25hbWUiXSxbNTIsImROIiwiX2luX3BhZ2VfY29tbWFuZCJdLFs1MiwiZE8iLCJfbWVhc3VyZW1lbnRfdHlwZSJdLFs1MiwiZFAiLCJub25fcGVyc29uYWxpemVkX2FkcyJdLFs1MiwiZFEiLCJjb252ZXJzaW9uX2xhYmVsIl0sWzUyLCJkUiIsInBhZ2VfbG9jYXRpb24iXSxbNTIsImRTIiwiX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJkVCIsImdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJkVSIsInRjX3ByaXZhY3lfc3RyaW5nIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXSwiTCIsWzE1LCJpIl0sIk0iLFsxNSwiaiJdLCJPIixbMTUsImsiXSwiQUEiLFsxNSwibCJdLCJBRiIsWzE1LCJtIl0sIkFHIixbMTUsIm4iXSwiQUgiLFsxNSwibyJdLCJBSiIsWzE1LCJwIl0sIkFLIixbMTUsInEiXSwiQU0iLFsxNSwiciJdLCJBUSIsWzE1LCJzIl0sIkJDIixbMTUsInQiXSwiQkoiLFsxNSwidSJdLCJCSyIsWzE1LCJ2Il0sIkJNIixbMTUsInciXSwiQk4iLFsxNSwieCJdLCJCVCIsWzE1LCJ5Il0sIkJYIixbMTUsInoiXSwiQlkiLFsxNSwiYUEiXSwiQloiLFsxNSwiYUIiXSwiQ0EiLFsxNSwiYUMiXSwiQ0IiLFsxNSwiYUQiXSwiQ0MiLFsxNSwiYUUiXSwiQ0QiLFsxNSwiYUYiXSwiQ0wiLFsxNSwiYUciXSwiQ1EiLFsxNSwiYUgiXSwiQ1IiLFsxNSwiYUkiXSwiS0ciLFsxNSwiZFEiXSwiQ1MiLFsxNSwiYUoiXSwiQ1UiLFsxNSwiYUsiXSwiQ1ciLFsxNSwiYUwiXSwiQ1kiLFsxNSwiYU0iXSwiREMiLFsxNSwiYU4iXSwiREQiLFsxNSwiYU8iXSwiREUiLFsxNSwiYVAiXSwiREYiLFsxNSwiYVEiXSwiREciLFsxNSwiYVIiXSwiREgiLFsxNSwiYVMiXSwiRE4iLFsxNSwiYVQiXSwiRUEiLFsxNSwiYVUiXSwiRUMiLFsxNSwiYVYiXSwiRUciLFsxNSwiYVciXSwiRUoiLFsxNSwiYVgiXSwiRUsiLFsxNSwiYVkiXSwiRU4iLFsxNSwiYVoiXSwiRU8iLFsxNSwiYkEiXSwiRVEiLFsxNSwiYkIiXSwiS0kiLFsxNSwiZFMiXSwiRVUiLFsxNSwiYkMiXSwiRVciLFsxNSwiYkQiXSwiRkUiLFsxNSwiYkUiXSwiRk8iLFsxNSwiYkYiXSwiRlAiLFsxNSwiYkciXSwiS0oiLFsxNSwiZFQiXSwiRlQiLFsxNSwiYkgiXSwiRlUiLFsxNSwiYkkiXSwiRlYiLFsxNSwiYkoiXSwiRlkiLFsxNSwiYksiXSwiRloiLFsxNSwiYkwiXSwiR0IiLFsxNSwiYk0iXSwiR0MiLFsxNSwiYk4iXSwiR0UiLFsxNSwiYk8iXSwiR0YiLFsxNSwiYlAiXSwiR0siLFsxNSwiYlEiXSwiR00iLFsxNSwiYlIiXSwiR1QiLFsxNSwiYlMiXSwiR1UiLFsxNSwiYlQiXSwiR1YiLFsxNSwiYlUiXSwiR1oiLFsxNSwiYlYiXSwiSEMiLFsxNSwiYlciXSwiS0giLFsxNSwiZFIiXSwiSEQiLFsxNSwiYlgiXSwiSEUiLFsxNSwiYlkiXSwiSEYiLFsxNSwiYloiXSwiSE4iLFsxNSwiY0EiXSwiSFAiLFsxNSwiY0IiXSwiSFQiLFsxNSwiY0MiXSwiSFgiLFsxNSwiY0QiXSwiSUEiLFsxNSwiY0UiXSwiSUMiLFsxNSwiY0YiXSwiSUQiLFsxNSwiY0ciXSwiSUYiLFsxNSwiY0giXSwiSUgiLFsxNSwiY0kiXSwiSUkiLFsxNSwiY0oiXSwiSUsiLFsxNSwiY0siXSwiSUwiLFsxNSwiY0wiXSwiS0siLFsxNSwiZFUiXSwiSVAiLFsxNSwiY00iXSwiSVIiLFsxNSwiY04iXSwiSVUiLFsxNSwiY08iXSwiSVYiLFsxNSwiY1AiXSwiSVciLFsxNSwiY1EiXSwiSVkiLFsxNSwiY1IiXSwiSkIiLFsxNSwiY1MiXSwiSkMiLFsxNSwiY1QiXSwiSkQiLFsxNSwiY1UiXSwiSkUiLFsxNSwiY1YiXSwiSkYiLFsxNSwiY1ciXSwiSkciLFsxNSwiY1giXSwiSkgiLFsxNSwiY1kiXSwiSkkiLFsxNSwiY1oiXSwiSkoiLFsxNSwiZEEiXSwiSksiLFsxNSwiZEIiXSwiSkwiLFsxNSwiZEMiXSwiSk0iLFsxNSwiZEQiXSwiSk4iLFsxNSwiZEUiXSwiSk8iLFsxNSwiZEYiXSwiSlAiLFsxNSwiZEciXSwiSlIiLFsxNSwiZEgiXSwiSlMiLFsxNSwiZEkiXSwiSlUiLFsxNSwiZEoiXSwiSlYiLFsxNSwiZEsiXSwiSlgiLFsxNSwiZEwiXSwiSlkiLFsxNSwiZE0iXSwiSloiLFsxNSwiZE4iXSwiS0MiLFsxNSwiZE8iXSwiS0QiLFsxNSwiZFAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWJvcnRfd2l0aG91dF9mYWlsIl0sWzUyLCJjIiwiYWNjZXB0X2J5X2RlZmF1bHQiXSxbNTIsImQiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImUiLCJjb25zZW50X3N0YXRlIl0sWzUyLCJmIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJnIiwiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCJdLFs1MiwiaCIsImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiXSxbNTIsImkiLCJjb29raWVfb3B0aW9ucyJdLFs1MiwiaiIsImRlZHVwZV9pZCJdLFs1MiwiayIsImVtX2V2ZW50Il0sWzUyLCJsIiwiZXZlbnRfcHJvdmVuYW5jZSJdLFs1MiwibSIsImV2ZW50X3NvdXJjZSJdLFs1MiwibiIsImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyJdLFs1MiwibyIsImV2ZW50X3VzYWdlIl0sWzUyLCJwIiwiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIl0sWzUyLCJxIiwiZm9ybV9ldmVudF9jYW5jZWxlZCJdLFs1MiwiciIsImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiJdLFs1MiwicyIsImd0bV9leHRyYWN0ZWRfZGF0YSJdLFs1MiwidCIsImhhbmRsZV9pbnRlcm5hbGx5Il0sWzUyLCJ1IiwiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiXSxbNTIsInYiLCJoaXRfdHlwZSJdLFs1MiwidyIsImhpdF90eXBlX292ZXJyaWRlIl0sWzUyLCJ4IiwiaWdub3JlX2R1cGVfY29uZmlnIl0sWzUyLCJ5IiwiaXNfY29udmVyc2lvbiJdLFs1MiwieiIsImlzX2V4dGVybmFsX2V2ZW50Il0sWzUyLCJhQSIsImlzX2ZpcnN0X3Zpc2l0Il0sWzUyLCJhQiIsImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iXSxbNTIsImFDIiwiaXNfZnBtX2VuY3J5cHRpb24iXSxbNTIsImFEIiwiaXNfZnBtX3NwbGl0Il0sWzUyLCJhRSIsImlzX2djcF9icm93c2VyIl0sWzUyLCJhRiIsImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIl0sWzUyLCJhRyIsImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIl0sWzUyLCJhSCIsImlzX3Nlc3Npb25fc3RhcnQiXSxbNTIsImFJIiwiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIl0sWzUyLCJhSiIsImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCJdLFs1MiwiYUsiLCJpc19zZ3RtX3ByZWhpdCJdLFs1MiwiYUwiLCJpc19zcGxpdF9jb252ZXJzaW9uIl0sWzUyLCJhTSIsImlzX3N5biJdLFs1MiwiYU4iLCJpc190ZXN0X2V2ZW50Il0sWzUyLCJhTyIsInByZWhpdF9mb3JfcmV0cnkiXSxbNTIsImFQIiwicmVkYWN0X2Fkc19kYXRhIl0sWzUyLCJhUSIsInJlZGFjdF9jbGlja19pZHMiXSxbNTIsImFSIiwic2VuZF9jY21fcGFyYWxsZWxfcGluZyJdLFs1MiwiYVMiLCJzZW5kX3VzZXJfZGF0YV9oaXQiXSxbNTIsImFUIiwic3BlY3VsYXRpdmUiXSxbNTIsImFVIiwic3luX29yX21vZCJdLFs1MiwiYVYiLCJ0cmFuc2llbnRfZWNzaWQiXSxbNTIsImFXIiwidXNlcl9kYXRhIl0sWzUyLCJhWCIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyJdLFs1MiwiYVkiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIl0sWzUyLCJhWiIsInVzZXJfZGF0YV9mcm9tX2NvZGUiXSxbNTIsImJBIiwidXNlcl9kYXRhX2Zyb21fbWFudWFsIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJNIixbMTUsImUiXSwiTiIsWzE1LCJmIl0sIk8iLFsxNSwiZyJdLCJQIixbMTUsImgiXSwiUSIsWzE1LCJpIl0sIlMiLFsxNSwiaiJdLCJUIixbMTUsImsiXSwiWiIsWzE1LCJsIl0sIkFBIixbMTUsIm0iXSwiQUIiLFsxNSwibiJdLCJBQyIsWzE1LCJvIl0sIkFEIixbMTUsInAiXSwiQUoiLFsxNSwicSJdLCJBSyIsWzE1LCJyIl0sIkFOIixbMTUsInMiXSwiQU8iLFsxNSwidCJdLCJBUCIsWzE1LCJ1Il0sIkFRIixbMTUsInYiXSwiQVIiLFsxNSwidyJdLCJBUyIsWzE1LCJ4Il0sIkFWIixbMTUsInkiXSwiQVkiLFsxNSwieiJdLCJBWiIsWzE1LCJhQSJdLCJCQSIsWzE1LCJhQiJdLCJCQyIsWzE1LCJhQyJdLCJCRCIsWzE1LCJhRCJdLCJCRSIsWzE1LCJhRSJdLCJCRiIsWzE1LCJhRiJdLCJCSyIsWzE1LCJhRyJdLCJCTCIsWzE1LCJhSCJdLCJCTSIsWzE1LCJhSSJdLCJCTiIsWzE1LCJhSiJdLCJCTyIsWzE1LCJhSyJdLCJCUSIsWzE1LCJhTCJdLCJCUiIsWzE1LCJhTSJdLCJCUyIsWzE1LCJhTiJdLCJCWSIsWzE1LCJhTyJdLCJDQiIsWzE1LCJhUCJdLCJDQyIsWzE1LCJhUSJdLCJDRSIsWzE1LCJhUiJdLCJDTiIsWzE1LCJhUyJdLCJDUSIsWzE1LCJhVCJdLCJDVCIsWzE1LCJhVSJdLCJDVSIsWzE1LCJhViJdLCJDVyIsWzE1LCJhVyJdLCJDWCIsWzE1LCJhWCJdLCJDWSIsWzE1LCJhWSJdLCJDWiIsWzE1LCJhWiJdLCJEQSIsWzE1LCJiQSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0NV0sWzUyLCJjIiw0Nl0sWzUyLCJkIiw0N10sWzUyLCJlIiwxNzRdLFs1MiwiZiIsMjc2XSxbMzYsWzgsIkYiLFsxNSwiYiJdLCJHIixbMTUsImMiXSwiSCIsWzE1LCJkIl0sIlYiLFsxNSwiZSJdLCJBRCIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lY1R5cGVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiZnNyYyJdLFs1MiwiYyIsImZlaWQiXSxbNTIsImQiLCIwIl0sWzUyLCJlIiwiMSJdLFs1MiwiZiIsIjIiXSxbNTIsImciLCIzIl0sWzUyLCJoIiwiNCJdLFszNixbOCwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZyJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkMiLFsxNSwiZCJdLCJHIixbMTUsImgiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDI1XSxbNTIsImMiLDQzNV0sWzUyLCJkIiw0ODhdLFs1MiwiZSIsNDg5XSxbNTIsImYiLDQ5OF0sWzUyLCJnIiw1MDNdLFs1MiwiaCIsNTA0XSxbNTIsImkiLDUwNl0sWzUyLCJqIiw1MjNdLFs1MiwiayIsNTMyXSxbNTIsImwiLDU1M10sWzUyLCJtIiw1NjhdLFs1MiwibiIsNTc3XSxbNTIsIm8iLDU4MV0sWzUyLCJwIiw1ODNdLFs1MiwicSIsNTkyXSxbNTIsInIiLDU5NF0sWzUyLCJzIiw1OTldLFszNixbOCwiQVYiLFsxNSwiayJdLCJBRCIsWzE1LCJkIl0sIkNJIixbMTUsInEiXSwiQlYiLFsxNSwibiJdLCJCTyIsWzE1LCJtIl0sIkNLIixbMTUsInIiXSwiQ1AiLFsxNSwicyJdLCJBTSIsWzE1LCJnIl0sIkJaIixbMTUsIm8iXSwiQVQiLFsxNSwiaiJdLCJBRSIsWzE1LCJlIl0sIkFOIixbMTUsImgiXSwiTCIsWzE1LCJjIl0sIkJDIixbMTUsImwiXSwiQU8iLFsxNSwiaSJdLCJDQiIsWzE1LCJwIl0sIkFJIixbMTUsImYiXSwiSSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCJdLFs1MiwiYyIsInBsZCJdLFs1MiwiZCIsInNoYXJlZF91c2VyX2lkIl0sWzUyLCJlIiwic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIl0sWzUyLCJmIiwic2hhcmVkX3VzZXJfaWRfc291cmNlIl0sWzM2LFs4LCJCIixbMTUsImIiXSwiTiIsWzE1LCJjIl0sIlMiLFsxNSwiZCJdLCJUIixbMTUsImUiXSwiVSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDNdLFs1MiwiZSIsNF0sWzUyLCJmIiw1XSxbNTIsImciLDZdLFszNixbOCwiQSIsWzE1LCJiIl0sIkYiLFsxNSwiZyJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiw1XSxbNTIsImUiLDZdLFs1MiwiZiIsN10sWzUyLCJnIiw4XSxbNTIsImgiLDldLFs1MiwiaSIsMTFdLFs1MiwiaiIsMTVdLFs1MiwiayIsMTZdLFs1MiwibCIsMjBdLFs1MiwibSIsMjFdLFs1MiwibiIsMjNdLFs1MiwibyIsMjRdLFs1MiwicCIsMjddLFs1MiwicSIsNDBdLFs1MiwiciIsNDFdLFszNixbOCwiTyIsWzE1LCJqIl0sIlciLFsxNSwibiJdLCJQIixbMTUsImsiXSwiWCIsWzE1LCJvIl0sIksiLFsxNSwiaSJdLCJBIixbMTUsImIiXSwiVCIsWzE1LCJsIl0sIkUiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiQiIsWzE1LCJjIl0sIkgiLFsxNSwiZyJdLCJBTiIsWzE1LCJxIl0sIkkiLFsxNSwiaCJdLCJHIixbMTUsImYiXSwiVSIsWzE1LCJtIl0sIkFPIixbMTUsInIiXSwiQUEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZV9ibG9ja19kb3dubG9hZHMiXSxbNTIsImMiLCJhZV9ibG9ja19mb3JtIl0sWzUyLCJkIiwiYWVfYmxvY2tfaGlzdG9yeSJdLFs1MiwiZSIsImFlX2Jsb2NrX291dGJvdW5kX2NsaWNrIl0sWzUyLCJmIiwiYWVfYmxvY2tfc2Nyb2xsIl0sWzUyLCJnIiwiYWVfYmxvY2tfdmlkZW8iXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXSwiRiIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMzJdLFszNixbOCwiQUUiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0Nl0sWzY4LCJ3IixbNTMsWzIyLFsxLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiQUkiXV1dLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV1dLFs0NixbNTMsWzM2LFs3XV1dXV0sWzUyLCJ3IixbImIiLFsxNyxbMTUsImciXSwiTiJdXV0sWzIyLFsibiIsWzE1LCJ3Il1dLFs0NixbNTMsWzM2LFsxNSwidyJdXV1dXSxbNTIsIngiLFs3XV0sWzIyLFsicCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJBIl1dXV1dLFsyMixbInEiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQiJdXV1dXSxbMjIsWyJyIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkYiXV1dXV0sWzIyLFsidSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJEIl1dXV1dLFsyMixbInMiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRSJdXV1dXSxbMjIsWyJ0Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkMiXV1dXV0sWzIyLFsibCJdLFs0NixbNTMsWyJmIixbMTcsWzE1LCJnIl0sIk4iXSxbMTUsIngiXSx0cnVlXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNDZdXSxbMzYsWzddXV0sWzUwLCJwIixbNDZdLFs2OCwidyIsWzUzLFszNixbMjgsWzI4LFsiYyIsInNjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePVwibWFnZS9cIl0iXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJxIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjXj1cIi8vIixbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJyIixbNDZdLFsyMixbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsImMyaHZjR2xtZVM1amIyMD0iXV0sWzUyLCJ4IixbIm0iLCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSJdXSxbMjIsWzMwLFsyOCxbMTUsInciXV0sWzI4LFsxNSwieCJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLCJzY3JpcHRbc3JjKj1cImNkbi4iLFsxNSwidyJdXSwiXCJdLCJdLCJtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl1bY29udGVudCo9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiZm9udHMuIl0sWzE1LCJ4Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cIml0ZXJhYmxlLXNob3BpZnlcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cInYuIl0sWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicyIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsiZCIsInByb3RvY29sIl1dLFs1MiwieCIsWyJkIiwiaG9zdCJdXSxbNTIsInkiLFszOSxbMSxbMTUsInciXSxbMTUsIngiXV0sWzAsWzAsWzAsWzAsIltzcmNePVwiIixbMTUsInciXV0sIjovLyJdLFsxNSwieCJdXSwiL3dwLWNvbnRlbnRcIl0sIl0sIiJdXSxbNTIsInoiLFsibSIsIkxuZHZjbVJ3Y21WemN5NWpiMjA9Il1dLFs1MiwiYUEiLFsibSIsIkx5OXpMbmN1YjNKbiJdXSxbMjIsWzMwLFsyOCxbMTUsInoiXV0sWzI4LFsxNSwiYUEiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFszMCxbInYiLFsxNSwieCJdLFsxNSwieiJdXSxbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzE1LCJ5Il0sIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvcmRQcmVzcyBcIl0sIl0sImxpbmtbcmVsPVwiZG5zLXByZWZldGNoXCJdW2hyZWY9XCIiXSxbMTUsImFBIl1dLCJcIl0iXV1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInQiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsIltjbGFzcyo9XCJ3b29jb21tZXJjZVwiXSwiLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb29Db21tZXJjZSBcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ1IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjKj1cIndvb2NvbW1lcmNlXCJdLCIsImxpbmtbaHJlZio9XCJ3b29jb21tZXJjZVwiXSwiXSwiW2NsYXNzfD1cIndvb2NvbW1lcmNlXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMSxbMTksWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMjAsWzIsWzE1LCJ3Il0sInN1YnN0cmluZyIsWzcsWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV1dLFsxNSwieCJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmlzRG9tUmVhZHkiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJmcm9tQmFzZTY0Il1dLFs1MiwibiIsWzUxLCIiLFs3LCJ3Il0sWzM2LFsyMCxbImsiLFsxNSwidyJdXSwiYXJyYXkiXV1dXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzUyLCJoIixbImIiXV0sWzUyLCJpIixbN11dLFs1MyxbNDEsImoiXSxbMywiaiIsMF0sWzYzLFs3LCJqIl0sWzIzLFsxNSwiaiJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImoiXSxbMywiaiIsWzAsWzE1LCJqIl0sMV1dXSxbNDYsWzUzLFs1MiwiayIsWzE2LFsxNSwiaCJdLFsxNSwiaiJdXV0sWzIyLFsiZCIsWzE1LCJnIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJpIl0sInB1c2giLFs3LFsxNSwiayJdXV1dXV1dXV1dLFszNixbMTUsImkiXV1dLFs1MCwiZiIsWzQ2LCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsxNSwiaCJdLFs4XV1dLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJDUSJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIloiXSwiYSJdLFs0MyxbMTUsImciXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJpIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNsYWltRGVzdGluYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXSwiQiIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbUZvcm1BY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibiIsWzQ2LCJvIiwicCIsInEiXSxbNTIsInIiLFsyMCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV0sWzIyLFsyMCxbMTUsInAiXSxbNDRdXSxbNDYsWzUzLFszLCJwIixbMTUsInIiXV1dXV0sWyJjIixbMTUsIm8iXSxbNTEsIiIsWzcsInMiXSxbNTIsInQiLFsyLFsxNSwicyJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwidSIsWzMwLFsyMCxbMTUsInQiXSxbMTUsImwiXV0sWzIwLFsxNSwidCJdLFsxNSwiayJdXV1dLFsyMixbMzAsWzI4LFsxNSwidSJdXSxbMjgsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwibyJdLFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMSxbMjgsWzE1LCJwIl1dLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJBSiJdXV1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXV0sWzUyLCJ2IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQUEiXV1dXSxbMjIsWzEsWzI4LFsxNSwiciJdXSxbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWyJoIixbMTcsWzE1LCJpIl0sIkJaIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdLFs0NF1dXV1dXV1dXV1dLFsyLFsxNSwicyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsxLFsxNSwidiJdLFsxNSwiciJdXSxbNDYsWzUzLFs0MSwidyJdLFszLCJ3IixbMTcsWzE1LCJnIl0sIkMiXV0sWzQxLCJ4Il0sWzIyLFsyMCxbMTUsInYiXSxbMTUsImwiXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJEIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJrIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRSJdXSxbMywieCIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXV1dXV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwibSJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkYiXV0sWzMsIngiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl1dXV1dXV1dXV1dLFs1MiwieSIsWzhdXSxbNDMsWzE1LCJ5Il0sWzE3LFsxNSwiZyJdLCJBIl0sWzE1LCJ3Il1dLFsyMixbMTUsIngiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSxbMTcsWzE1LCJnIl0sIkIiXSxbMTUsIngiXV1dXV0sWzIsWzE1LCJzIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiZiJdLCJGVCJdLFsxNSwieSJdXV1dXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1faWQiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9kZXN0aW5hdGlvbiIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9sZW5ndGgiLFs0NF1dXSxbMjIsWzIwLFsxNSwidCJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9zdWJtaXRfdGV4dCIsWzQ0XV1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ0Il0sWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF9pZCIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfdHlwZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfcG9zaXRpb24iLFs0NF1dXV1dXV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9lY1R5cGVzIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJqIixbMTcsWzE1LCJlIl0sIkIiXV0sWzUyLCJrIiwiZm9ybV9zdWJtaXQiXSxbNTIsImwiLCJmb3JtX3N0YXJ0Il0sWzUyLCJtIiwiY2xpY2siXSxbMzYsWzgsIkEiLFsxNSwibiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1QYWdlVmlld0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiXSxbImMiLFsxNSwiayJdLFs1MSwiIixbNywibCJdLFsyMixbMzAsWzIxLFsyLFsxNSwibCJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJpIl1dLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJsIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIyLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQk8iXV1dXSxbNDYsWzUzLFsiZCIsWzE1LCJrIl0sWzE3LFsxNSwiZiJdLCJIRSJdLFsyLFsxNSwibCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJmIl0sIkhFIl1dXV1dXV0sWzIsWzE1LCJsIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkNRIl0sZmFsc2VdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQyJdXSxbNTIsImkiLFsxNyxbMTUsImYiXSwiQUsiXV0sWzM2LFs4LCJBIixbMTUsImoiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWiJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkZaIl0sWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV1dXV1dXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRlkiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWSJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJmIixbNDYsImciXSxbMjIsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJTIl1dXSxbNDYsWzUzLFsyLFsxNSwiZyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIklQIl0sIjEiXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrRW5hYmxlRW5jcnlwdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJqIl0sWzUyLCJrIixbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQVEiXV1dXSxbMjIsWzEsWzMwLFsyMCxbMTUsImsiXSxbMTcsWzE1LCJiIl0sIksiXV0sWzIwLFsxNSwiayJdLFsxNyxbMTUsImIiXSwiSiJdXV0sWyJpIixbMTUsImoiXV1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkJDIl0sdHJ1ZV1dXV1dXSxbNTAsImkiLFs0NiwiaiJdLFsyMixbMjgsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkNXIl1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNixbImMiXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRnBmZSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzIsWzE1LCJjIl0sIkEiLFs3XV1dLFsyMixbMSxbMTUsImYiXSxbMTgsWzE3LFsxNSwiZiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzgsInBsZiIsWzIsWzE1LCJmIl0sImpvaW4iLFs3LCIuIl1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fY2NkX2FkZF8xcF9kYXRhIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2Fkc19jb252X21hcmtpbmciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYWRzX2ZpcnN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2Fkc19sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Zvcm0iOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VuYWJsZV9jbSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9wcmVfYXV0b19waWkiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19lIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19vZ3RfYWRzX2RhdGF0b3MiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19yZXAiOnsiNSI6dHJ1ZSwiNiI6dHJ1ZX0KCgp9CiwiYmxvYiI6eyIxIjoiMiIsIjEwIjoiQVctMTA3ODQ5NzE0OTAiLCIxNCI6IjY3bTAiLCIxNSI6IjAiLCIxNiI6IkNoRUk4SU9jMHdZUWdPbXNrdnVseEtxUkFSSWZBTDJQWVpabUhOSjAxckI5QzFYZWlQck9jVGduN3pNcTB4UjZJZEdpdEJvQ2tkOD0iLCIxNyI6ImMiLCIxOSI6ImRhdGFMYXllciIsIjIwIjoiIiwiMjEiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIyMiI6ImV5SXdJam9pVGs4aUxDSXhJam9pVGs4dE1ETWlMQ0l5SWpwbVlXeHpaU3dpTXlJNkltZHZiMmRzWlM1dWJ5SXNJalFpT2lKeVpXZHBiMjR4SWl3aU5TSTZabUZzYzJVc0lqWWlPblJ5ZFdVc0lqY2lPaUpoWkY5emRHOXlZV2RsZkdGdVlXeDVkR2xqYzE5emRHOXlZV2RsZkdGa1gzVnpaWEpmWkdGMFlYeGhaRjl3WlhKemIyNWhiR2w2WVhScGIyNGlMQ0k1SWpwMGNuVmxmUSIsIjIzIjoiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiLCIyNCI6InRhZ2Fzc2lzdGFudC5nb29nbGUuY29tIiwiMjciOjAuMDA1LCIzIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMzAiOiJOTyIsIjMxIjoiTk8tMDMiLCIzMiI6ZmFsc2UsIjMzIjoicmVnaW9uMSIsIjM0IjoiQVctMTA3ODQ5NzE0OTAiLCIzNSI6IkFXIiwiMzYiOiJodHRwczovL2Fkc2VydmljZS5nb29nbGUuY29tL3BhZ2VhZC9yZWdjbGsiLCIzNyI6Il9fVEFHR1lfSU5TVEFMTEVEIiwiMzgiOiJjY3QuZ29vZ2xlIiwiMzkiOiJnb29nVGFnZ3lSZWZlcnJlciIsIjQwIjoiaHR0cHM6Ly9jY3QuZ29vZ2xlL3RhZ2d5L2FnZW50LmpzIiwiNDEiOiJnb29nbGUudGFnbWFuYWdlci50YS5wcm9kcXVldWUiLCI0MiI6MC4wMSwiNDMiOiJ7XCJrZXlzXCI6W3tcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCS2x5VFgyanlvYnBRQ21mVXlCYmhCeVFIazlaMkhkTjVsSHhwQkF0SUtHTWNtencwZ0UrZWJsWUNtbTFHYTdiWWVUZHlkb0ptZTZJcGFTb0NVMElVVW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiZGVlNGIzNTEtYjBmNS00YzI3LWE4YzgtZWQ2NjA0NzdhNDRjXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRHRZQlJuUEJTMWc2bWVYTzFyUTVhNTJCNUZibmg3REM1anF2MDJpeEpzc24wazFKOXJjSENhVmMvenpSc25zSEJ6U29GS3M2SjhwSDdDY25RUDNFanc9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiYWQxOTNiMmEtNGE5MC00YzFhLWI3OWUtZGUzN2FjMzkxYmQyXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCTVowVU11ZEFlNFBvYWZTVHBVeFB0SWtmQmVDTWJGQlh2dHlSWXZITENTUS9FVXZFSnNtc1Y0dDZOQi9CRVZwcUwzSHY4Z05TUWg3SytTVW9vZjI1YW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDhjNGVmZTEtZmRkMC00MzZhLWFjOGYtOTIzZjExOTE4Nzg3XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRmZsdlVsK3hwSGFGVkNJWU8xS1BMeGt2K0FqZGw0ZDhydnJYaEk2emZwbmJCRHFJNTFERGt0SEhiM1pXSVM1N29EaDBLaXI5QXVDT29uMk1PeE5WOVk9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDMyYmMyNzAtOTllYS00MjIwLWI1NjItZTJjNWFlNzdkNGQ5XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCQVE4VGt5NERMV09KYkhPSGJWWURiUVpFZkVlbGI0RlRCOEVZTVFlUlFpTDFtMUx0QWQwcjN6ZXlMamdaMy9XMjRSOFZmYjIyelkyaXg2Vy9UZkNqakE9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiMDUwYTZlMTEtMzhhYi00ZjgwLTg5Y2ItN2IzMTliOTcwNGMwXCJ9XX0iLCI0NCI6IjExODg5NzkyMH4xMTg4OTc5MzAiLCI0NSI6dHJ1ZSwiNDYiOnsiMSI6IjEwMDAiLCIxMCI6IjY2dTAiLCIxMSI6IjY2ZzAiLCIxNCI6IjEwMDAiLCIxNiI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMTciOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjIiOiI5IiwiMjAiOiI1MDAwIiwiMjEiOiI1MDAwIiwiMjIiOiI0LjQuMCIsIjIzIjoiMC4wLjAiLCIyNSI6IjEiLCIyNiI6IjQwMDAiLCIyNyI6IjEwMCIsIjMiOiI1IiwiNCI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhfGFkX3BlcnNvbmFsaXphdGlvbiIsIjQ0IjoiMTUwMDAiLCI0OCI6IjMwMDAwIiwiNSI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhIiwiNiI6IjEiLCI2MSI6IjEwMDAiLCI2MiI6IkE2T05IUlk3L2J2QnJvK0lNWmQvYTZMTmpuN1NTdjk5OVNrTi9oRkFFOUw2dk1yMzRkTmdmZFNWZFltdjRVK05IWmcxc3hkMzhSdGNpUnBSVXRJUlBnUUFBQUNDZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdWMFlXZHRZVzVoWjJWeUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lVMmhoY21Wa1YyOXlhMlZ5UlhoMFpXNWtaV1JNYVdabGRHbHRaU0lzSW1WNGNHbHllU0k2TVRjM05qY3lPVFl3TUN3aWFYTlVhR2x5WkZCaGNuUjVJanAwY25WbGZRPT0iLCI2MyI6IjEwMDAiLCI2NiI6IjEwMCIsIjciOiIxMCJ9LCI0OCI6dHJ1ZSwiNSI6IkFXLTEwNzg0OTcxNDkwIiwiNTEiOnRydWUsIjU1IjpbIkFXLTEwNzg0OTcxNDkwIl0sIjU2IjpbeyIxIjo0MDMsIjMiOjAuNSwiNCI6MTE1OTM4NDY1LCI1IjoxMTU5Mzg0NjYsIjYiOjAsIjciOjJ9LHsiMSI6NDA0LCIzIjowLjUsIjQiOjExNTkzODQ2OCwiNSI6MTE1OTM4NDY5LCI2IjowLCI3IjoxfSx7IjEiOjYwMiwiMyI6MC4wMSwiNCI6MTIwMTI0NDU1LCI1IjoxMjAxMjQ0NTMsIjYiOjEyMDEyNDQ1NCwiNyI6M30seyIxIjo1NjksIjIiOnRydWV9LHsiMSI6NDc1LCIyIjp0cnVlfSx7IjEiOjUwMiwiMiI6dHJ1ZX0seyIxIjo1NzcsIjIiOnRydWV9LHsiMSI6NTY4LCIzIjowLjAxLCI0IjoxMTk3OTE3NDksIjUiOjExOTc5MTc0OCwiNiI6MCwiNyI6MX0seyIxIjo0OTAsIjIiOnRydWV9LHsiMSI6NDkxLCIzIjowLjAxLCI0IjoxMTgwMTIwMDcsIjUiOjExODAxMjAwOCwiNiI6MTE4MDEyMDA5LCI3IjoxfSx7IjEiOjQ4MCwiMiI6dHJ1ZX0seyIxIjo1OTQsIjMiOjAuMDEsIjQiOjExOTc5Mzk3NCwiNSI6MTE5NzkzOTcyLCI2IjoxMTk3OTM5NzMsIjciOjF9LHsiMSI6NTk5LCIyIjp0cnVlfSx7IjEiOjU4MCwiMyI6MC4xLCI0IjoxMTk1MjcwMjAsIjUiOjExOTUyNzAxOSwiNiI6MCwiNyI6MX0seyIxIjo1MjMsIjIiOnRydWV9LHsiMSI6NTgxLCIzIjowLjAxLCI0IjoxMTk5NDg4NTQsIjUiOjExOTk0ODg1MiwiNiI6MTE5OTQ4ODUzLCI3IjozfSx7IjEiOjU1NSwiMyI6MC4wMSwiNCI6MTE5MjU5NjA2LCI1IjoxMTkyNTk2MDUsIjYiOjAsIjciOjJ9LHsiMSI6NTA0LCIyIjp0cnVlfSx7IjEiOjQ2MiwiMyI6MC4wNSwiNCI6MTE4ODA2NTI0LCI1IjoxMTg4MDY1MjUsIjYiOjExODgwNjUyNiwiNyI6MX0seyIxIjo0MTMsIjIiOnRydWV9LHsiMSI6NTkzLCIyIjp0cnVlfSx7IjEiOjUwNiwiMiI6dHJ1ZX0seyIxIjo1MDAsIjIiOnRydWV9LHsiMSI6NTYxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAzLCI1IjoxMTk0MDQ3MDIsIjYiOjAsIjciOjF9LHsiMSI6NDgxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAxLCI1IjoxMTk0MDQ3MDAsIjYiOjAsIjciOjF9LHsiMSI6NDUwLCIzIjowLjAxLCI0IjoxMTcyMjc3MTQsIjUiOjExNzIyNzcxNSwiNiI6MTE3MjI3NzE2LCI3IjozfSx7IjEiOjU4MywiMyI6MC41LCI0IjoxMTk4OTY4MDMsIjUiOjExOTg5NjgwMiwiNiI6MCwiNyI6MX0seyIxIjo0NTgsIjIiOnRydWV9LHsiMSI6NTgyLCIzIjowLjAxLCI0IjoxMTkzODE2NjQsIjUiOjExOTM4MTY2MiwiNiI6MTE5MzgxNjYzLCI3IjoxfSx7IjEiOjU3MCwiMiI6dHJ1ZX0seyIxIjo0OTgsIjMiOjAuMiwiNCI6MTE1NjE2OTg1LCI1IjoxMTU2MTY5ODYsIjYiOjAsIjciOjF9LHsiMSI6NTk1LCIyIjp0cnVlfSx7IjEiOjU4OSwiMyI6MC4wMSwiNCI6MTIwMDg0MjE1LCI1IjoxMjAwODQyMTQsIjYiOjAsIjciOjF9LHsiMSI6NDk1LCIzIjowLjA1LCI0IjoxMTgxMzE4MTAsIjUiOjExODEzMTgwOCwiNiI6MTE4MTMxODA5LCI3IjozfSx7IjEiOjU4NywiMyI6MC4xLCI0IjoxMTk3MzIxNzEsIjUiOjExOTczMjE3MCwiNiI6MCwiNyI6M30seyIxIjo1ODQsIjIiOnRydWV9LHsiMSI6NTY0LCIzIjowLjAwMDEsIjQiOjExOTIwNTMxNywiNSI6MTE5MjA1MzE1LCI2IjoxMTkyMDUzMTYsIjciOjF9LHsiMSI6NTU3LCIyIjp0cnVlfSx7IjEiOjQyNywiMyI6MC4xLCI0IjoxMTk3MjQzMjIsIjUiOjExOTcyNDMyMCwiNiI6MTE5NzI0MzIxLCI3IjoyfSx7IjEiOjU3NiwiMyI6MC4wMSwiNCI6MTE5MzE3ODEwLCI1IjoxMTkzMTc4MTEsIjYiOjExOTMxODE3NywiNyI6M30seyIxIjo1NzMsIjIiOnRydWV9LHsiMSI6NDk5LCIyIjp0cnVlfSx7IjEiOjUxNiwiMyI6MC4xLCI0IjoxMTgzOTUzMzUsIjUiOjExODM5NTMzMywiNiI6MTE4Mzk1MzM0LCI3IjoxfSx7IjEiOjUyNCwiMiI6dHJ1ZX1dLCI1OSI6WyJBVy0xMDc4NDk3MTQ5MCJdLCI2IjoiMTY2Mjk1NzM1IiwiNjIiOnRydWUsIjYzIjowLjAwNX0KLCJwZXJtaXNzaW9ucyI6ewoiX19jY2RfYWRkXzFwX2RhdGEiOnsicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fY2NkX2Fkc19jb252X21hcmtpbmciOnt9CiwKIl9fY2NkX2Fkc19maXJzdCI6eyJyZWFkX2RvbV9lbGVtZW50cyI6eyJhbGxvd2VkQ3NzU2VsZWN0b3JzIjoiYW55In0sImdldF91cmwiOnsidXJsUGFydHMiOiJzcGVjaWZpYyIsInByb3RvY29sIjp0cnVlLCJob3N0Ijp0cnVlfX0KLAoiX19jY2RfYWRzX2xhc3QiOnt9CiwKIl9fY2NkX2VtX2Zvcm0iOnsiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5mb3JtSW50ZXJhY3QiLCJndG0uZm9ybVN1Ym1pdCIsImd0bS5jbGljay12MiJdfSwiZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn0sImRldGVjdF9jbGlja19ldmVudHMiOnt9LCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9wYWdlX3ZpZXciOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uaGlzdG9yeUNoYW5nZS12MiJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIjp7fX0KLAoiX19jY2RfZW5hYmxlX2NtIjp7fQosCiJfX2NjZF9wcmVfYXV0b19waWkiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX0sImFjY2Vzc19jb25zZW50Ijp7ImNvbnNlbnRUeXBlcyI6W3siY29uc2VudFR5cGUiOiJhZF9zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYW5hbHl0aWNzX3N0b3JhZ2UiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9XX19CiwKIl9fZSI6eyJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoic3BlY2lmaWMiLCJrZXlQYXR0ZXJucyI6WyJldmVudCJdfX0KLAoiX19vZ3RfMXBfZGF0YV92MiI6eyJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIjp7ImxpbWl0RGF0YVNvdXJjZXMiOnRydWUsImFsbG93QXV0b0RhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd01hbnVhbERhdGFTb3VyY2VzIjpmYWxzZSwiYWxsb3dDb2RlRGF0YVNvdXJjZXMiOmZhbHNlfX0KLAoiX19vZ3RfYWRzX2RhdGF0b3MiOnt9CiwKIl9fcmVwIjp7fQoKCn0KCgoKLCJzZWN1cml0eV9ncm91cHMiOnsKImdvb2dsZSI6WwoiX19jY2RfYWRkXzFwX2RhdGEiCiwKIl9fY2NkX2Fkc19jb252X21hcmtpbmciCiwKIl9fY2NkX2Fkc19maXJzdCIKLAoiX19jY2RfYWRzX2xhc3QiCiwKIl9fY2NkX2VtX2Zvcm0iCiwKIl9fY2NkX2VtX3BhZ2VfdmlldyIKLAoiX19jY2RfZW5hYmxlX2NtIgosCiJfX2NjZF9wcmVfYXV0b19waWkiCiwKIl9fZSIKLAoiX19vZ3RfMXBfZGF0YV92MiIKLAoiX19vZ3RfYWRzX2RhdGF0b3MiCiwKIl9fcmVwIgoKXQoKCn0KCgoKCgp9OwoKCgoKdmFyIGssYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9LGJhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9LGNhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpOwp9LGhhPWNhKHRoaXMpLGlhPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCJ4Iik9PT0ic3ltYm9sIixrYT17fSxsYT17fSxuYT1mdW5jdGlvbihhLGIsYyl7aWYoIWN8fGEhPW51bGwpe3ZhciBkPWxhW2JdO2lmKGQ9PW51bGwpcmV0dXJuIGFbYl07dmFyIGU9YVtkXTtyZXR1cm4gZSE9PXZvaWQgMD9lOmFbYl19fSxvYT1mdW5jdGlvbihhLGIsYyl7aWYoYilhOnt2YXIgZD1hLnNwbGl0KCIuIiksZT1kLmxlbmd0aD09PTEsZj1kWzBdLGc7IWUmJmYgaW4ga2E/Zz1rYTpnPWhhO2Zvcih2YXIgaD0wO2g8ZC5sZW5ndGgtMTtoKyspe3ZhciBsPWRbaF07aWYoIShsIGluIGcpKWJyZWFrIGE7Zz1nW2xdfXZhciBuPWRbZC5sZW5ndGgtMV0scD1pYSYmYz09PSJlczYiP2dbbl06bnVsbCxxPWIocCk7aWYocSE9bnVsbClpZihlKWJhKGthLG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSk7ZWxzZSBpZihxIT09cCl7aWYobGFbbl09PT12b2lkIDApe3ZhciByPQpNYXRoLnJhbmRvbSgpKjFFOT4+PjA7bGFbbl09aWE/aGEuU3ltYm9sKG4pOiIkanNjcCQiK3IrIiQiK259YmEoZyxsYVtuXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX19fSxwYTtpZihpYSYmdHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilwYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcmE7YTp7dmFyIHRhPXthOiEwfSx1YT17fTt0cnl7dWEuX19wcm90b19fPXRhO3JhPXVhLmE7YnJlYWsgYX1jYXRjaChhKXt9cmE9ITF9cGE9cmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsfQp2YXIgdmE9cGEsd2E9ZnVuY3Rpb24oYSxiKXthLnByb3RvdHlwZT1hYShiLnByb3RvdHlwZSk7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTtpZih2YSl2YShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuRnQ9Yi5wcm90b3R5cGV9LHhhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSxtPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDp4YShhKX07CnRocm93IEVycm9yKFN0cmluZyhhKSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9LHlhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO3JldHVybiBjfSx3PWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgQXJyYXk/YTp5YShtKGEpKX0sQWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHphKGEsYSl9LHphPWZ1bmN0aW9uKGEsYil7YS5yYXc9YjtPYmplY3QuZnJlZXplJiYoT2JqZWN0LmZyZWV6ZShhKSxPYmplY3QuZnJlZXplKGIpKTtyZXR1cm4gYX0sQmE9aWEmJnR5cGVvZiBuYShPYmplY3QsImFzc2lnbiIpPT0iZnVuY3Rpb24iP25hKE9iamVjdCwiYXNzaWduIik6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG51bGxpc2ggYXJnIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdOwppZihkKWZvcih2YXIgZSBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07b2EoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxCYX0sImVzNiIpO3ZhciBDYT1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fSxEYT1mdW5jdGlvbigpe3RoaXMuZmE9ITE7dGhpcy5SPW51bGw7dGhpcy5qYT12b2lkIDA7dGhpcy5IPTE7dGhpcy5OPXRoaXMuWj0wO3RoaXMuTGE9dGhpcy5LPW51bGx9LEVhPWZ1bmN0aW9uKGEpe2lmKGEuZmEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2EuZmE9ITB9O0RhLnByb3RvdHlwZS55YT1mdW5jdGlvbihhKXt0aGlzLmphPWF9Owp2YXIgR2E9ZnVuY3Rpb24oYSxiKXthLks9e2FvOmIsaXNFeGNlcHRpb246ITB9O2EuSD1hLlp8fGEuTn07RGEucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07RGEucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuamF9O0RhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5LPXtyZXR1cm46YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlWyJyZXR1cm4iXT1EYS5wcm90b3R5cGUucmV0dXJuO0RhLnByb3RvdHlwZS5Baj1mdW5jdGlvbihhKXt0aGlzLks9e25kOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLkFqO0RhLnByb3RvdHlwZS5hYz1mdW5jdGlvbihhLGIpe3RoaXMuSD1iO3JldHVybnt2YWx1ZTphfX07RGEucHJvdG90eXBlLnlpZWxkPURhLnByb3RvdHlwZS5hYzsKRGEucHJvdG90eXBlLnhzPWZ1bmN0aW9uKGEsYil7dmFyIGM9bShhKSxkPWMubmV4dCgpO0NhKGQpO2lmKGQuZG9uZSl0aGlzLmphPWQudmFsdWUsdGhpcy5IPWI7ZWxzZSByZXR1cm4gdGhpcy5SPWMsdGhpcy5hYyhkLnZhbHVlLGIpfTtEYS5wcm90b3R5cGUueWllbGRBbGw9RGEucHJvdG90eXBlLnhzO0RhLnByb3RvdHlwZS5uZD1mdW5jdGlvbihhKXt0aGlzLkg9YX07RGEucHJvdG90eXBlLmp1bXBUbz1EYS5wcm90b3R5cGUubmQ7RGEucHJvdG90eXBlLkRqPWZ1bmN0aW9uKCl7dGhpcy5IPTB9O0RhLnByb3RvdHlwZS5qdW1wVG9FbmQ9RGEucHJvdG90eXBlLkRqO0RhLnByb3RvdHlwZS5Oaj1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO2IhPXZvaWQgMCYmKHRoaXMuTj1iKX07RGEucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuTmo7RGEucHJvdG90eXBlLnZnPWZ1bmN0aW9uKGEpe3RoaXMuWj0wO3RoaXMuTj1hfHwwfTsKRGEucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUudmc7RGEucHJvdG90eXBlLklqPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5aPWJ8fDB9O0RhLnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPURhLnByb3RvdHlwZS5JajtEYS5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oYSl7dGhpcy5aPWF8fDA7dmFyIGI9dGhpcy5LLmFvO3RoaXMuSz1udWxsO3JldHVybiBifTtEYS5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPURhLnByb3RvdHlwZS5QaDtEYS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oYSxiLGMpe2M/dGhpcy5MYVtjXT10aGlzLks6dGhpcy5MYT1bdGhpcy5LXTt0aGlzLlo9YXx8MDt0aGlzLk49Ynx8MH07RGEucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5rZDsKRGEucHJvdG90eXBlLmhlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYS5zcGxpY2UoYnx8MClbMF0sZD10aGlzLks9dGhpcy5LfHxjO2Q/ZC5pc0V4Y2VwdGlvbj90aGlzLkg9dGhpcy5afHx0aGlzLk46ZC5uZCE9dm9pZCAwJiZ0aGlzLk48ZC5uZD8odGhpcy5IPWQubmQsdGhpcy5LPW51bGwpOnRoaXMuSD10aGlzLk46dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUuaGU7RGEucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSGEoYSl9O0RhLnByb3RvdHlwZS5mb3JJbj1EYS5wcm90b3R5cGUuZmU7dmFyIEhhPWZ1bmN0aW9uKGEpe3RoaXMuSz1hO3RoaXMuSD1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLkgucHVzaChiKTt0aGlzLkgucmV2ZXJzZSgpfTtIYS5wcm90b3R5cGUuaG89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuSC5sZW5ndGg+MDspe3ZhciBhPXRoaXMuSC5wb3AoKTtpZihhIGluIHRoaXMuSylyZXR1cm4gYX1yZXR1cm4gbnVsbH07CkhhLnByb3RvdHlwZS5nZXROZXh0PUhhLnByb3RvdHlwZS5obzsKdmFyIElhPWZ1bmN0aW9uKGEpe3RoaXMuSD1uZXcgRGE7dGhpcy5LPWF9LExhPWZ1bmN0aW9uKGEsYil7RWEoYS5IKTt2YXIgYz1hLkguUjtpZihjKXJldHVybiBKYShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkgucmV0dXJuKTthLkgucmV0dXJuKGIpO3JldHVybiBLYShhKX0sSmE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkguUixjKTtDYShlKTtpZighZS5kb25lKXJldHVybiBhLkguZmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkguUj1udWxsLEdhKGEuSCxnKSxLYShhKX1hLkguUj1udWxsO2QuY2FsbChhLkgsZik7cmV0dXJuIEthKGEpfSxLYT1mdW5jdGlvbihhKXtmb3IoO2EuSC5IOyl0cnl7dmFyIGI9YS5LKGEuSCk7aWYoYilyZXR1cm4gYS5ILmZhPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGQpe2EuSC5qYT12b2lkIDAsR2EoYS5ILApkKX1hLkguZmE9ITE7aWYoYS5ILkspe3ZhciBjPWEuSC5LO2EuSC5LPW51bGw7aWYoYy5pc0V4Y2VwdGlvbil0aHJvdyBjLmFvO3JldHVybnt2YWx1ZTpjLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSxNYT1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlIubmV4dCxiLGEuSC55YSk6KGEuSC55YShiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy50aHJvdz1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUlsidGhyb3ciXSxiLGEuSC55YSk6KEdhKGEuSCxiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIExhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX0sTmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTWEobmV3IElhKGIpKTt2YSYmYS5wcm90b3R5cGUmJnZhKGMsCmEucHJvdG90eXBlKTtyZXR1cm4gY30sT2E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0sUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9Oy8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBSYT10aGlzfHxzZWxmLFNhPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkZ0PWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5udj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19O3ZhciBUYT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuZGF0YT1ifTt2YXIgVWE9ZnVuY3Rpb24oKXt0aGlzLm1hcD17fTt0aGlzLkg9e319O1VhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwWyJkdXN0LiIrYV19O1VhLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGMpfHwodGhpcy5tYXBbY109Yil9O1VhLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KCJkdXN0LiIrYSl9O1VhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7dmFyIGI9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShiKXx8ZGVsZXRlIHRoaXMubWFwW2JdfTsKdmFyIFZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLm1hcClpZihhLm1hcC5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7c3dpdGNoKGIpe2Nhc2UgMTpjLnB1c2goZSk7YnJlYWs7Y2FzZSAyOmMucHVzaChhLm1hcFtkXSk7YnJlYWs7Y2FzZSAzOmMucHVzaChbZSxhLm1hcFtkXV0pfX1yZXR1cm4gY307VWEucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMSl9O1VhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDIpfTtVYS5wcm90b3R5cGUuZmM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywzKX07dmFyIFdhPWZ1bmN0aW9uKCl7fTtXYS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBYYT1mdW5jdGlvbigpe3RoaXMudmFsdWU9e307dGhpcy5wcmVmaXg9Imd0bS4ifTtrPVhhLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXT1ifTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByZWZpeCtTdHJpbmcoYSkpfTtrLmRlbGV0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnByZWZpeCtTdHJpbmcoYSk7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkoYik/KGRlbGV0ZSB0aGlzLnZhbHVlW2JdLCEwKTohMX07ay5jbGVhcj1mdW5jdGlvbigpe3RoaXMudmFsdWU9e319OwprLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uIGMoKXt2YXIgZCxlLGY7cmV0dXJuIE5hKGMsZnVuY3Rpb24oZyl7c3dpdGNoKGcuSCl7Y2FzZSAxOmcudmcoMiksZT1nLmZlKGEudmFsdWUpO2Nhc2UgNDppZigoZD1lLmhvKCkpPT1udWxsKXtnLm5kKDIpO2JyZWFrfWlmKCFhLnZhbHVlLmhhc093blByb3BlcnR5KGQpKXtnLm5kKDQpO2JyZWFrfWY9UWE7cmV0dXJuIGcuYWMoYS52YWx1ZVtkXSw4KTtjYXNlIDg6ZihnLmphKTtnLm5kKDQpO2JyZWFrO2Nhc2UgMjpnLmtkKCksZy5oZSgwKX19KX0oKX07aGEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWGEucHJvdG90eXBlLHtzaXplOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RofX19KTsKZnVuY3Rpb24gWWEoKXt0cnl7aWYoTWFwKXJldHVybiBuZXcgTWFwfWNhdGNoKGEpe31yZXR1cm4gbmV3IFhhfTt2YXIgWmE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlcz1bXX07WmEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlcy5pbmRleE9mKGEpPT09LTEmJnRoaXMudmFsdWVzLnB1c2goYSl9O1phLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmluZGV4T2YoYSk+LTF9O3ZhciAkYT1mdW5jdGlvbihhLGIpe3RoaXMuZmE9YTt0aGlzLnBhcmVudD1iO3RoaXMuUj10aGlzLks9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5OPWZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZC5hcHBseShlLGYpfTt0aGlzLkg9WWEoKTt2YXIgYzthOnt0cnl7aWYoU2V0KXtjPW5ldyBTZXQ7YnJlYWsgYX19Y2F0Y2goZCl7fWM9bmV3IFphfXRoaXMuWj1jfTskYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITEpfTskYS5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMCl9O3ZhciBhYj1mdW5jdGlvbihhLGIsYyxkKXthLkhifHxhLlouaGFzKGIpfHwoZCYmYS5aLmFkZChiKSxhLkguc2V0KGIsYykpfTtrPSRhLnByb3RvdHlwZTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMuSC5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy5aLmhhcyhhKXx8dGhpcy5ILnNldChhLGIpKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5oYXMoYSk/dGhpcy5ILmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuSC5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyAkYSh0aGlzLmZhLHRoaXMpO3RoaXMuSyYmYS5RYih0aGlzLkspO2Euc2QodGhpcy5OKTthLnVlKHRoaXMuUik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYX07ay5RYj1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9OwprLnNkPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5SPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTt2YXIgYmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGEubWVzc2FnZSk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy52bz1hO3RoaXMuU249Yz09PXZvaWQgMD8hMTpjO3RoaXMuSz1bXTt0aGlzLkg9Yn07d2EoYmIsRXJyb3IpO3ZhciBjYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGJiP2E6bmV3IGJiKGEsdm9pZCAwLCEwKX07dmFyIGRiPVlhKCk7ZnVuY3Rpb24gZWIoYSxiKXtmb3IodmFyIGMsZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZSYmIShjPWZiKGEsZS52YWx1ZSksYyBpbnN0YW5jZW9mIFRhKTtlPWQubmV4dCgpKTtyZXR1cm4gY31mdW5jdGlvbiBmYihhLGIpe3RyeXt2YXIgYz1iWzBdLGQ9Yi5zbGljZSgxKSxlPVN0cmluZyhjKSxmPWRiLmhhcyhlKT9kYi5nZXQoZSk6YS5nZXQoZSk7aWYoIWZ8fHR5cGVvZiBmLmludm9rZSE9PSJmdW5jdGlvbiIpdGhyb3cgY2IoRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBub24tZnVuY3Rpb24gIitiWzBdKyIuIikpO3JldHVybiBmLmFwcGx5KGEsZCl9Y2F0Y2goaCl7dmFyIGc9YS5mbygpO2cmJmcoaCxiLmNvbnRleHQ/e2lkOmJbMF0sbGluZTpiLmNvbnRleHQubGluZX06bnVsbCk7dGhyb3cgaDt9fTt2YXIgZ2I9ZnVuY3Rpb24oKXt0aGlzLks9bmV3IFdhO3RoaXMuSD1uZXcgJGEodGhpcy5LKX07az1nYi5wcm90b3R5cGU7ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07ay5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJrKFthXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2sucms9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj1tKE9hLmFwcGx5KDAsYXJndW1lbnRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYT1mYih0aGlzLkgsYy52YWx1ZSk7cmV0dXJuIGF9O2suSnE9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9dGhpcy5ILndiKCk7Yy51ZShhKTtmb3IodmFyIGQsZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQ9ZmIoYyxmLnZhbHVlKTtyZXR1cm4gZH07ay5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTt2YXIgaGI9ZnVuY3Rpb24oYSxiKXt0aGlzLlI9YTt0aGlzLnBhcmVudD1iO3RoaXMuTj10aGlzLkg9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5LPWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYy5hcHBseShkLGUpfTt0aGlzLnZhbHVlcz1uZXcgVWF9O2hiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMSl9O2hiLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCEwKX07dmFyIGpiPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhLkhiKWlmKGQpe3ZhciBlPWEudmFsdWVzO2Uuc2V0KGIsYyk7ZS5IWyJkdXN0LiIrYl09ITB9ZWxzZSBhLnZhbHVlcy5zZXQoYixjKX07az1oYi5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMudmFsdWVzLmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLnZhbHVlcy5zZXQoYSxiKSl9OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGEpP3RoaXMudmFsdWVzLmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMudmFsdWVzLmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGhiKHRoaXMuUix0aGlzKTt0aGlzLkgmJmEuUWIodGhpcy5IKTthLnNkKHRoaXMuSyk7YS51ZSh0aGlzLk4pO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07ay5RYj1mdW5jdGlvbihhKXt0aGlzLkg9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLk49YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O3ZhciBrYj1mdW5jdGlvbigpe3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWF9O2s9a2IucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBsYigpe2Zvcih2YXIgYT1tYixiPXt9LGM9MDtjPGEubGVuZ3RoOysrYyliW2FbY11dPWM7cmV0dXJuIGJ9ZnVuY3Rpb24gbmIoKXt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO2ErPWEudG9Mb3dlckNhc2UoKSsiMDEyMzQ1Njc4OS1fIjtyZXR1cm4gYSsiLiJ9dmFyIG1iLG9iO2Z1bmN0aW9uIHBiKGEpe21iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKz0zKXt2YXIgZD1jKzE8YS5sZW5ndGgsZT1jKzI8YS5sZW5ndGgsZj1hLmNoYXJDb2RlQXQoYyksZz1kP2EuY2hhckNvZGVBdChjKzEpOjAsaD1lP2EuY2hhckNvZGVBdChjKzIpOjAsbD1mPj4yLG49KGYmMyk8PDR8Zz4+NCxwPShnJjE1KTw8MnxoPj42LHE9aCY2MztlfHwocT02NCxkfHwocD02NCkpO2IucHVzaChtYltsXSxtYltuXSxtYltwXSxtYltxXSl9cmV0dXJuIGIuam9pbigiIil9CmZ1bmN0aW9uIHFiKGEpe2Z1bmN0aW9uIGIobCl7Zm9yKDtkPGEubGVuZ3RoOyl7dmFyIG49YS5jaGFyQXQoZCsrKSxwPW9iW25dO2lmKHAhPW51bGwpcmV0dXJuIHA7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChuKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIituKTt9cmV0dXJuIGx9bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBjPSIiLGQ9MDs7KXt2YXIgZT1iKC0xKSxmPWIoMCksZz1iKDY0KSxoPWIoNjQpO2lmKGg9PT02NCYmZT09PS0xKXJldHVybiBjO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUoZTw8MnxmPj40KTtnIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGY8PDQmMjQwfGc+PjIpLGghPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZzw8NiYxOTJ8aCkpKX19O3ZhciByYj17fTtmdW5jdGlvbiBzYihhLGIpe3ZhciBjPXJiW2FdO2N8fChjPXJiW2FdPVtdKTtjW2JdPSEwfWZ1bmN0aW9uIHRiKCl7ZGVsZXRlIHJiLkdBNF9FVkVOVH1mdW5jdGlvbiB1Yigpe3ZhciBhPXZiLkguc2xpY2UoKTtyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTD1hfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKWQlOD09PTAmJmQ+MCYmKGIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSxjPTApLGFbZF0mJihjfD0xPDxkJTgpO2M+MCYmYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO3JldHVybiBwYihiLmpvaW4oIiIpKS5yZXBsYWNlKC9cLiskLywiIil9O2Z1bmN0aW9uIHhiKCl7fWZ1bmN0aW9uIHliKGEpe3JldHVybiB0eXBlb2YgYT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gemIoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKX1mdW5jdGlvbiBCYihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX1mdW5jdGlvbiBDYihhLGIpe2lmKGEmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmYihhW2NdKSlyZXR1cm4gYVtjXX1mdW5jdGlvbiBEYihhLGIpe2lmKCFBYihhKXx8IUFiKGIpfHxhPmIpYT0wLGI9MjE0NzQ4MzY0NztyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihiLWErMSkrYSl9CmZ1bmN0aW9uIEViKGEsYil7Zm9yKHZhciBjPW5ldyBGYixkPTA7ZDxhLmxlbmd0aDtkKyspYy5zZXQoYVtkXSwhMCk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5nZXQoYltlXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2IoYSxiKXtmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihjLGFbY10pfWZ1bmN0aW9uIEhiKGEpe3JldHVybiEhYSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEFyZ3VtZW50c10ifHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiY2FsbGVlIikpfWZ1bmN0aW9uIEliKGEpe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihhKSl8fDB9ZnVuY3Rpb24gSmIoYSl7cmV0dXJuImZhbHNlIj09PVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpPyExOiEhYX0KZnVuY3Rpb24gS2IoYSl7dmFyIGI9W107aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2goU3RyaW5nKGFbY10pKTtyZXR1cm4gYn1mdW5jdGlvbiBMYihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToiIn1mdW5jdGlvbiBNYigpe3JldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpKX1mdW5jdGlvbiBOYigpe3JldHVybiBNYigpLmdldFRpbWUoKX12YXIgRmI9ZnVuY3Rpb24oKXt0aGlzLnByZWZpeD0iZ3RtLiI7dGhpcy52YWx1ZXM9e319O0ZiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXT1ifTtGYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXX07RmIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldChhKSE9PXZvaWQgMH07CmZ1bmN0aW9uIE9iKGEsYixjKXtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOmN9ZnVuY3Rpb24gUGIoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9dm9pZCAwO3RyeXtjKCl9Y2F0Y2goZCl7fX19fWZ1bmN0aW9uIFFiKGEsYil7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YltjXSl9ZnVuY3Rpb24gUmIoYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdKSxjLnB1c2guYXBwbHkoYyxiW2FbZF1dfHxbXSk7cmV0dXJuIGN9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZygwLGIubGVuZ3RoKT09PWJ9ZnVuY3Rpb24gVGIoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZyhhLmxlbmd0aC1iLmxlbmd0aCxhLmxlbmd0aCk9PT1ifQpmdW5jdGlvbiBVYihhLGIsYyl7Yz1jfHxbXTtmb3IodmFyIGQ9YSxlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7aWYoIWQuaGFzT3duUHJvcGVydHkoYltlXSkpcmV0dXJuO2Q9ZFtiW2VdXTtpZihjLmluZGV4T2YoZCk+PTApcmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjPXt9LGQ9YyxlPWEuc3BsaXQoIi4iKSxmPTA7ZjxlLmxlbmd0aC0xO2YrKylkPWRbZVtmXV09e307ZFtlW2UubGVuZ3RoLTFdXT1iO3JldHVybiBjfXZhciBXYj0vXlx3ezEsOX0kLztmdW5jdGlvbiBZYihhLGIpe2E9YXx8e307Yj1ifHwiLCI7dmFyIGM9W107R2IoYSxmdW5jdGlvbihkLGUpe1diLnRlc3QoZCkmJmUmJmMucHVzaChkKX0pO3JldHVybiBjLmpvaW4oYil9CmZ1bmN0aW9uIFpiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTtkPDEyOD9iLnB1c2goZCk6ZDwyMDQ4P2IucHVzaCgxOTJ8ZD4+NiwxMjh8ZCY2Myk6ZDw1NTI5Nnx8ZD49NTczNDQ/Yi5wdXNoKDIyNHxkPj4xMiwxMjh8ZD4+NiY2MywxMjh8ZCY2Myk6KGQ9NjU1MzYrKChkJjEwMjMpPDwxMHxhLmNoYXJDb2RlQXQoKytjKSYxMDIzKSxiLnB1c2goMjQwfGQ+PjE4LDEyOHxkPj4xMiY2MywxMjh8ZD4+NiY2MywxMjh8ZCY2MykpfXJldHVybiBuZXcgVWludDhBcnJheShiKX1mdW5jdGlvbiAkYihhKXtpZighYSlyZXR1cm4gYTt2YXIgYj1hO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChkKXt9dmFyIGM9Yi5zcGxpdCgiLCIpO3JldHVybiBjLmxlbmd0aD09PTImJmNbMF09PT1jWzFdP2NbMF06YX0KZnVuY3Rpb24gYWMoYSxiLGMpe2Z1bmN0aW9uIGQobil7dmFyIHA9bi5zcGxpdCgiPSIpWzBdO2lmKGEuaW5kZXhPZihwKTwwKXJldHVybiBuO2lmKGMhPT12b2lkIDApcmV0dXJuIHArIj0iK2N9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5zcGxpdCgiJiIpLm1hcChkKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT12b2lkIDB9KS5qb2luKCImIil9dmFyIGY9Yi5ocmVmLnNwbGl0KC9bPyNdLylbMF0sZz1iLnNlYXJjaCxoPWIuaGFzaDtnWzBdPT09Ij8iJiYoZz1nLnN1YnN0cmluZygxKSk7aFswXT09PSIjIiYmKGg9aC5zdWJzdHJpbmcoMSkpO2c9ZShnKTtoPWUoaCk7ZyE9PSIiJiYoZz0iPyIrZyk7aCE9PSIiJiYoaD0iIyIraCk7dmFyIGw9IiIrZitnK2g7bFtsLmxlbmd0aC0xXT09PSIvIiYmKGw9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0xKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGJjKGEpe2Zvcih2YXIgYj0wO2I8MzsrK2IpdHJ5e3ZhciBjPWRlY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoYz09PWEpYnJlYWs7YT1jfWNhdGNoKGQpe3JldHVybiIifXJldHVybiBhfWZ1bmN0aW9uIGNjKCl7dmFyIGE9QSxiO2E6e3ZhciBjPWEuY3J5cHRvfHxhLm1zQ3J5cHRvO2lmKGMmJmMuZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgZD1uZXcgVWludDhBcnJheSgyNSk7Yy5nZXRSYW5kb21WYWx1ZXMoZCk7Yj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZCkpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2JyZWFrIGF9Y2F0Y2goZSl7fWI9dm9pZCAwfXJldHVybiBifTsvKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgZGM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsZWM7ZnVuY3Rpb24gZmMoKXt2YXIgYT1udWxsO2lmKCFkYylyZXR1cm4gYTt0cnl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2E9ZGMuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9ZnVuY3Rpb24gaGMoKXtlYz09PXZvaWQgMCYmKGVjPWZjKCkpO3JldHVybiBlY307dmFyIGljPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtpYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTtmdW5jdGlvbiBqYyhhKXt2YXIgYj1hLGM9aGMoKSxkPWM/Yy5jcmVhdGVTY3JpcHRVUkwoYik6YjtyZXR1cm4gbmV3IGljKGQpfWZ1bmN0aW9uIGtjKGEpe2lmKGEgaW5zdGFuY2VvZiBpYylyZXR1cm4gYS5IO3Rocm93IEVycm9yKCIiKTt9O3ZhciBsYz1BYShbIiJdKSxtYz16YShbIlx4MDAiXSxbIlxcMCJdKSxuYz16YShbIlxuIl0sWyJcXG4iXSksb2M9emEoWyJceDAwIl0sWyJcXHUwMDAwIl0pO2Z1bmN0aW9uIHBjKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobGMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG1jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShuYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEob2MpfSk7dmFyIHFjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtxYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTt2YXIgcmM9ZnVuY3Rpb24oYSl7dGhpcy5Kcz1hfTtmdW5jdGlvbiBzYyhhKXtyZXR1cm4gbmV3IHJjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciB0Yz1bc2MoImRhdGEiKSxzYygiaHR0cCIpLHNjKCJodHRwcyIpLHNjKCJtYWlsdG8iKSxzYygiZnRwIiksbmV3IHJjKGZ1bmN0aW9uKGEpe3JldHVybi9eW146XSooWy8/I118JCkvLnRlc3QoYSl9KV07ZnVuY3Rpb24gdWMoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP3RjOmI7aWYoYSBpbnN0YW5jZW9mIHFjKXJldHVybiBhO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiByYyYmZC5KcyhhKSlyZXR1cm4gbmV3IHFjKGEpfX12YXIgdmM9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTsKZnVuY3Rpb24gd2MoYSl7dmFyIGI7aWYoYSBpbnN0YW5jZW9mIHFjKWlmKGEgaW5zdGFuY2VvZiBxYyliPWEuSDtlbHNlIHRocm93IEVycm9yKCIiKTtlbHNlIGI9dmMudGVzdChhKT9hOnZvaWQgMDtyZXR1cm4gYn07ZnVuY3Rpb24geGMoYSxiKXt2YXIgYz13YyhiKTtjIT09dm9pZCAwJiYoYS5hY3Rpb249Yyl9O2Z1bmN0aW9uIHljKGEsYil7dGhyb3cgRXJyb3IoYj09PXZvaWQgMD8idW5leHBlY3RlZCB2YWx1ZSAiK2ErIiEiOmIpO307dmFyIHpjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTt6Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTt2YXIgQmM9ZnVuY3Rpb24oKXt0aGlzLkg9QWNbMF0udG9Mb3dlckNhc2UoKX07QmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1bbmV3IEJjXTtpZihjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO3ZhciBkPWMubWFwKGZ1bmN0aW9uKGYpe3ZhciBnO2lmKGYgaW5zdGFuY2VvZiBCYylnPWYuSDtlbHNlIHRocm93IEVycm9yKCIiKTtyZXR1cm4gZ30pLGU9Yi50b0xvd2VyQ2FzZSgpO2lmKGQuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGUuaW5kZXhPZihmKSE9PTB9KSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInK2IrJyIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpO2Euc2V0QXR0cmlidXRlKGIsInRydWUiKX07dmFyIERjPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07IkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLAoiSU5QVVQiXSk7ZnVuY3Rpb24gRWMoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmF9O3ZhciBBPXdpbmRvdyxGYz1bXSxHYz13aW5kb3cuaGlzdG9yeSxCPWRvY3VtZW50LEhjPW5hdmlnYXRvcjtmdW5jdGlvbiBJYygpe3ZhciBhO3RyeXthPUhjLnNlcnZpY2VXb3JrZXJ9Y2F0Y2goYil7cmV0dXJufXJldHVybiBhfXZhciBKYz1CLmN1cnJlbnRTY3JpcHQsS2M9SmMmJkpjLnNyYztmdW5jdGlvbiBNYyhhLGIpe3ZhciBjPUEsZD1jW2FdO2NbYV09ZD09PXZvaWQgMD9iOmQ7cmV0dXJuIGNbYV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuKEhjLnVzZXJBZ2VudHx8IiIpLmluZGV4T2YoYSkhPT0tMX1mdW5jdGlvbiBPYygpe3JldHVybiBOYygiRmlyZWZveCIpfHxOYygiRnhpT1MiKX1mdW5jdGlvbiBQYygpe3JldHVybihOYygiR1NBIil8fE5jKCJHb29nbGVBcHAiKSkmJihOYygiaVBob25lIil8fE5jKCJpUGFkIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIE5jKCJFZGcvIil8fE5jKCJFZGdBLyIpfHxOYygiRWRnaU9TLyIpfQp2YXIgUmM9e2FzeW5jOjEsbm9uY2U6MSxvbmVycm9yOjEsb25sb2FkOjEsc3JjOjEsdHlwZToxfSxTYz17aGVpZ2h0OjEsb25sb2FkOjEsc3JjOjEsc3R5bGU6MSx3aWR0aDoxfTtmdW5jdGlvbiBUYyhhLGIsYyl7YiYmR2IoYixmdW5jdGlvbihkLGUpe2Q9ZC50b0xvd2VyQ2FzZSgpO2MuaGFzT3duUHJvcGVydHkoZCl8fGEuc2V0QXR0cmlidXRlKGQsZSl9KX0KZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXt2YXIgZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1RjKGYsZCxSYyk7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2YuYXN5bmM9ZCYmZC5hc3luYz09PSExPyExOiEwO3ZhciBnO2c9amMoRWMoYSkpO2Yuc3JjPWtjKGcpO3ZhciBoLGw9Zi5vd25lckRvY3VtZW50O2w9bD09PXZvaWQgMD9kb2N1bWVudDpsO3ZhciBuLHAscT0ocD0obj1sKS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6cC5jYWxsKG4sInNjcmlwdFtub25jZV0iKTsoaD1xPT1udWxsPyIiOnEubm9uY2V8fHEuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmYuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7YiYmKGYub25sb2FkPWIpO2MmJihmLm9uZXJyb3I9Yyk7ZT9lLmFwcGVuZENoaWxkKGYpOlZjLkJzKGYpO3JldHVybiBmfQpmdW5jdGlvbiBXYygpe2lmKEtjKXt2YXIgYT1LYy50b0xvd2VyQ2FzZSgpO2lmKGEuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTApcmV0dXJuIDI7aWYoYS5pbmRleE9mKCJodHRwOi8vIik9PT0wKXJldHVybiAzfXJldHVybiAxfWZ1bmN0aW9uIFhjKGEsYixjLGQsZSxmKXtmPWY9PT12b2lkIDA/ITA6Zjt2YXIgZz1lLGg9ITE7Z3x8KGc9Qi5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxoPSEwKTtUYyhnLGMsU2MpO2QmJkdiKGQsZnVuY3Rpb24obixwKXtnLmRhdGFzZXRbbl09cH0pO2YmJihnLmhlaWdodD0iMCIsZy53aWR0aD0iMCIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixnLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2EhPT12b2lkIDAmJihnLnNyYz1hKTtpZihoKXt2YXIgbD1CLmJvZHkmJkIuYm9keS5sYXN0Q2hpbGR8fEIuYm9keXx8Qi5oZWFkO2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxsKX1iJiYoZy5vbmxvYWQ9Yik7cmV0dXJuIGd9CmZ1bmN0aW9uIFpjKCl7cmV0dXJuIFZjLkVyLmFwcGx5KFZjLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9ZnVuY3Rpb24gJGMoYSxiLGMsZCl7YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEhZCl9ZnVuY3Rpb24gYWQoYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gYmQoYSl7QS5zZXRUaW1lb3V0KGEsMCl9ZnVuY3Rpb24gY2QoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZCxlPShkPUEpLnNldEludGVydmFsLmFwcGx5KGQsW2EsYl0uY29uY2F0KHcoYykpKTtGYy5wdXNoKGUpO3JldHVybiBlfQpmdW5jdGlvbiBkZChhKXt2YXIgYj1BO3liKGIucXVldWVNaWNyb3Rhc2spP2IucXVldWVNaWNyb3Rhc2soYSk6eWIoYi5Qcm9taXNlKSYmYi5Qcm9taXNlLnJlc29sdmU/Yi5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7YSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTpiZChhKX1mdW5jdGlvbiBlZChhLGIpe3JldHVybiBhJiZiJiZhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlc1tiXT9hLmF0dHJpYnV0ZXNbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBmZChhKXt2YXIgYj1hLmlubmVyVGV4dHx8YS50ZXh0Q29udGVudHx8IiI7YiYmYiE9PSIgIiYmKGI9Yi5yZXBsYWNlKC9eW1xzXHhhMF0rL2csIiIpLGI9Yi5yZXBsYWNlKC9bXHNceGEwXSskL2csIiIpKTtiJiYoYj1iLnJlcGxhY2UoLyhceGEwK3xcc3syLH18XG58XHJcdCkvZywiICIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gZ2QoYSl7dmFyIGI9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWIsZCxlPUVjKCJBPGRpdj4iK2ErIjwvZGl2PiIpLGY9aGMoKSxnPWY/Zi5jcmVhdGVIVE1MKGUpOmU7ZD1uZXcgemMoZyk7aWYoYy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChjLnRhZ05hbWUpKXRocm93IEVycm9yKCIiKTt2YXIgaDtpZihkIGluc3RhbmNlb2YgemMpaD1kLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7Yy5pbm5lckhUTUw9aDtiPWIubGFzdENoaWxkO2Zvcih2YXIgbD1bXTtiJiZiLmZpcnN0Q2hpbGQ7KWwucHVzaChiLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCkpO3JldHVybiBsfQpmdW5jdGlvbiBoZChhLGIsYyl7Yz1jfHwxMDA7Zm9yKHZhciBkPXt9LGU9MDtlPGIubGVuZ3RoO2UrKylkW2JbZV1dPSEwO2Zvcih2YXIgZj1hLGc9MDtmJiZnPD1jO2crKyl7aWYoZFtTdHJpbmcoZi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4gZjtmPWYucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpZChhLGIsYyl7dmFyIGQ7dHJ5e2Q9SGMuc2VuZEJlYWNvbiYmSGMuc2VuZEJlYWNvbihhKX1jYXRjaChlKXtzYigiVEFHR0lORyIsMTUpfWQ/Yj09bnVsbHx8YigpOlpjKGEsYixjKX1mdW5jdGlvbiBqZChhLGIpe3RyeXtpZihIYy5zZW5kQmVhY29uIT09dm9pZCAwKXJldHVybiBIYy5zZW5kQmVhY29uKGEsYil9Y2F0Y2goYyl7c2IoIlRBR0dJTkciLDE1KX1yZXR1cm4hMX1mdW5jdGlvbiBrZCgpe3JldHVybiBIYy5zZW5kQmVhY29uIT09dm9pZCAwfQp2YXIgbGQ9e2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGtlZXBhbGl2ZTohMCxtZXRob2Q6IlBPU1QiLG1vZGU6Im5vLWNvcnMiLHJlZGlyZWN0OiJmb2xsb3cifTsKZnVuY3Rpb24gbWQoYSxiLGMsZCxlKXtpZihuZCgpKXt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtiJiYoZi5ib2R5PWIpO2MmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nJiYoZi5hdHRyaWJ1dGlvblJlcG9ydGluZz1jLmF0dHJpYnV0aW9uUmVwb3J0aW5nKSxjLmJyb3dzaW5nVG9waWNzIT09dm9pZCAwJiYoZi5icm93c2luZ1RvcGljcz1jLmJyb3dzaW5nVG9waWNzKSxjLmNyZWRlbnRpYWxzJiYoZi5jcmVkZW50aWFscz1jLmNyZWRlbnRpYWxzKSxjLmtlZXBhbGl2ZSE9PXZvaWQgMCYmKGYua2VlcGFsaXZlPWMua2VlcGFsaXZlKSxjLm1ldGhvZCYmKGYubWV0aG9kPWMubWV0aG9kKSxjLm1vZGUmJihmLm1vZGU9Yy5tb2RlKSk7dHJ5e3ZhciBnPUEuZmV0Y2goYSxmKTtpZihnKXJldHVybiBnLnRoZW4oZnVuY3Rpb24obCl7bCYmKGwub2t8fGwuc3RhdHVzPT09MCk/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09Cm51bGx8fGUoKX0pLCEwfWNhdGNoKGwpe319aWYoKGM9PW51bGw/MDpjLlFnKXx8KGM9PW51bGw/MDpjLmNyZWRlbnRpYWxzKSYmYy5jcmVkZW50aWFscyE9PSJpbmNsdWRlIilyZXR1cm4gZT09bnVsbHx8ZSgpLCExO2lmKGIpe3ZhciBoPWpkKGEsYik7aD9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpO3JldHVybiBofVZjLnd0KGEsZCxlKTtyZXR1cm4hMH1mdW5jdGlvbiBuZCgpe3JldHVybiB5YihBLmZldGNoKX1mdW5jdGlvbiBvZChhLGIpe3ZhciBjPWFbYl07YyYmdHlwZW9mIGMuYW5pbVZhbD09PSJzdHJpbmciJiYoYz1jLmFuaW1WYWwpO3JldHVybiBjfWZ1bmN0aW9uIHBkKCl7dmFyIGE9QS5wZXJmb3JtYW5jZTtpZihhJiZ5YihhLm5vdykpcmV0dXJuIGEubm93KCl9CmZ1bmN0aW9uIHFkKCl7dmFyIGEsYj1BLnBlcmZvcm1hbmNlO2lmKGImJmIuZ2V0RW50cmllc0J5VHlwZSl0cnl7dmFyIGM9Yi5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7YyYmYy5sZW5ndGg+MCYmKGE9Y1swXS50eXBlKX1jYXRjaChkKXtyZXR1cm4iZSJ9aWYoIWEpcmV0dXJuInUiO3N3aXRjaChhKXtjYXNlICJuYXZpZ2F0ZSI6cmV0dXJuIm4iO2Nhc2UgImJhY2tfZm9yd2FyZCI6cmV0dXJuImgiO2Nhc2UgInJlbG9hZCI6cmV0dXJuInIiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuInAiO2RlZmF1bHQ6cmV0dXJuIngifX1mdW5jdGlvbiByZCgpe3JldHVybiBBLnBlcmZvcm1hbmNlfHx2b2lkIDB9ZnVuY3Rpb24gc2QoKXt2YXIgYT1BLndlYlBpeGVsc01hbmFnZXI7cmV0dXJuIGE/YS5jcmVhdGVTaG9waWZ5RXh0ZW5kIT09dm9pZCAwOiExfQp2YXIgVmM9e0VyOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJbWFnZSgxLDEpO1RjKGUsZCx7fSk7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD1udWxsO2ImJmIoKX07ZS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5vbmVycm9yPW51bGw7YyYmYygpfTtlLnNyYz1hO3JldHVybiBlfSxCczpmdW5jdGlvbihhKXt2YXIgYj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXXx8Qi5ib2R5fHxCLmhlYWQ7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSx3dDppZH07ZnVuY3Rpb24gdGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB1ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPT09dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB2ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHdkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7cmV0dXJuIFN0cmluZyhjKS5pbmRleE9mKFN0cmluZyhkKSk+LTF9ZnVuY3Rpb24geGQoYSxiKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhKSksZD1TdHJpbmcodGhpcy5ldmFsdWF0ZShiKSk7cmV0dXJuIGMuc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT09ZH0KZnVuY3Rpb24geWQoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtzd2l0Y2goYyl7Y2FzZSAicGFnZUxvY2F0aW9uIjp2YXIgZT1BLmxvY2F0aW9uLmhyZWY7ZCBpbnN0YW5jZW9mIGtiJiZkLmdldCgic3RyaXBQcm90b2NvbCIpJiYoZT1lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpKTtyZXR1cm4gZX19Oy8qCiBqUXVlcnkgKGMpIDIwMDUsIDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4ganF1ZXJ5Lm9yZy9saWNlbnNlLgoqLwp2YXIgemQ9L1xbb2JqZWN0IChCb29sZWFufE51bWJlcnxTdHJpbmd8RnVuY3Rpb258QXJyYXl8RGF0ZXxSZWdFeHApXF0vLEFkPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIFN0cmluZyhhKTt2YXIgYj16ZC5leGVjKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChPYmplY3QoYSkpKTtyZXR1cm4gYj9iWzFdLnRvTG93ZXJDYXNlKCk6Im9iamVjdCJ9LEJkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoYSksYil9LENkPWZ1bmN0aW9uKGEpe2lmKCFhfHxBZChhKSE9Im9iamVjdCJ8fGEubm9kZVR5cGV8fGE9PWEud2luZG93KXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhQmQoYSwiY29uc3RydWN0b3IiKSYmIUJkKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9Zm9yKHZhciBiIGluIGEpO3JldHVybiBiPT09dm9pZCAwfHwKQmQoYSxiKX0sRWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwoQWQoYSk9PSJhcnJheSI/W106e30pLGQ7Zm9yKGQgaW4gYSlpZihCZChhLGQpKXt2YXIgZT1hW2RdO0FkKGUpPT0iYXJyYXkiPyhBZChjW2RdKSE9ImFycmF5IiYmKGNbZF09W10pLGNbZF09RWQoZSxjW2RdKSk6Q2QoZSk/KENkKGNbZF0pfHwoY1tkXT17fSksY1tkXT1FZChlLGNbZF0pKTpjW2RdPWV9cmV0dXJuIGN9O2Z1bmN0aW9uIEZkKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiZhPj0wJiZpc0Zpbml0ZShhKSYmYSUxPT09MHx8dHlwZW9mIGE9PT0ic3RyaW5nIiYmYVswXSE9PSItIiYmYT09PSIiK3BhcnNlSW50KGEpfTt2YXIgR2Q9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7dGhpcy5sYT1uZXcgVWE7dGhpcy52YWx1ZXM9W107dGhpcy5OYT0hMTtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoRmQoYik/dGhpcy52YWx1ZXNbTnVtYmVyKGIpXT1hW051bWJlcihiKV06dGhpcy5sYS5zZXQoYixhW2JdKSl9O2s9R2QucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oYSl7aWYoYSYmYS5pbmRleE9mKHRoaXMpPj0wKXJldHVybiIiO2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLnZhbHVlcy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnZhbHVlc1tjXTtkPT09bnVsbHx8ZD09PXZvaWQgMD9iLnB1c2goIiIpOmQgaW5zdGFuY2VvZiBHZD8oYT1hfHxbXSxhLnB1c2godGhpcyksYi5wdXNoKGQudG9TdHJpbmcoYSkpLGEucG9wKCkpOmIucHVzaChTdHJpbmcoZCkpfXJldHVybiBiLmpvaW4oIiwiKX07Cmsuc2V0PWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuTmEpaWYoYT09PSJsZW5ndGgiKXtpZighRmQoYikpdGhyb3cgY2IoRXJyb3IoIlJhbmdlRXJyb3I6IExlbmd0aCBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlci4iKSk7dGhpcy52YWx1ZXMubGVuZ3RoPU51bWJlcihiKX1lbHNlIEZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV09Yjp0aGlzLmxhLnNldChhLGIpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJsZW5ndGgiP3RoaXMubGVuZ3RoKCk6RmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLmxhLmdldChhKX07ay5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RofTtrLkZhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuRmEoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goU3RyaW5nKGIpKTtyZXR1cm4gYX07CmsuaGM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5oYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaCh0aGlzLnZhbHVlc1tiXSk7cmV0dXJuIGF9O2suZmM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5mYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChbU3RyaW5nKGIpLHRoaXMudmFsdWVzW2JdXSk7cmV0dXJuIGF9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe0ZkKGEpP2RlbGV0ZSB0aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wb3AoKX07ay5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5zaGlmdCgpfTsKay5zcGxpY2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyk7cmV0dXJuIGI9PT12b2lkIDAmJmMubGVuZ3RoPT09MD9uZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlKGEpKTpuZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlLmFwcGx5KHRoaXMudmFsdWVzLFthLGJ8fDBdLmNvbmNhdCh3KGMpKSkpfTtrLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMudW5zaGlmdC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gRmQoYSkmJnRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGEpfHx0aGlzLmxhLmhhcyhhKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITA7T2JqZWN0LmZyZWV6ZSh0aGlzLnZhbHVlcyl9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07CmZ1bmN0aW9uIEhkKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aCgpO2MrKylhLmhhcyhjKSYmKGJbY109YS5nZXQoYykpO3JldHVybiBifTt2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmZ1bmN0aW9uTmFtZT1hO3RoaXMuaWU9Yjt0aGlzLmxhPW5ldyBVYTt0aGlzLk5hPSExfTtrPUlkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0S2V5cz1mdW5jdGlvbigpe3JldHVybiBuZXcgR2QodGhpcy5GYSgpKX07ay5pbnZva2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWUuY2FsbC5hcHBseSh0aGlzLmllLFtuZXcgSmQodGhpcyxhKV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLmFwcGx5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaWUuYXBwbHkobmV3IEpkKHRoaXMsYSksYil9O2suTmM9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO3RyeXtyZXR1cm4gdGhpcy5pbnZva2UuYXBwbHkodGhpcyxbYV0uY29uY2F0KHcoYikpKX1jYXRjaChjKXt9fTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O3ZhciBLZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShLZCxJZCk7dmFyIExkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKExkLElkKTt2YXIgSmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmllPWE7dGhpcy5UPWJ9OwpKZC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5UO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2ZiKGIsYSk6YX07SmQucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZS5nZXROYW1lKCl9O0pkLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlQuamUoKX07dmFyIE1kPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IE1hcH07TWQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMubWFwLnNldChhLGIpfTtNZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5nZXQoYSl9O3ZhciBOZD1mdW5jdGlvbigpe3RoaXMua2V5cz1bXTt0aGlzLnZhbHVlcz1bXX07TmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMua2V5cy5wdXNoKGEpO3RoaXMudmFsdWVzLnB1c2goYil9O05kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoYj4tMSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19O2Z1bmN0aW9uIE9kKCl7dHJ5e3JldHVybiBNYXA/bmV3IE1kOm5ldyBOZH1jYXRjaChhKXtyZXR1cm4gbmV3IE5kfX07dmFyIFBkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQZClyZXR1cm4gYTt2YXIgYjthOmlmKGE9PXZvaWQgMHx8QXJyYXkuaXNBcnJheShhKXx8Q2QoYSkpYj0hMDtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgImZ1bmN0aW9uIjpiPSEwO2JyZWFrIGF9Yj0hMX1pZihiKXRocm93IEVycm9yKCJUeXBlIG9mIGdpdmVuIHZhbHVlIGhhcyBhbiBlcXVpdmFsZW50IFBpeGllIHR5cGUuIik7dGhpcy52YWx1ZT1hfTtQZC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07UGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX07dmFyIFNkPWZ1bmN0aW9uKGEpe3RoaXMucHJvbWlzZT1hO3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWE7dGhpcy5sYS5zZXQoInRoZW4iLFJkKHRoaXMpKTt0aGlzLmxhLnNldCgiY2F0Y2giLFJkKHRoaXMsITApKTt0aGlzLmxhLnNldCgiZmluYWxseSIsUmQodGhpcywhMSwhMCkpfTtrPVNkLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07CnZhciBSZD1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihkLGUpe2ImJihlPWQsZD12b2lkIDApO2MmJihlPWQpO2QgaW5zdGFuY2VvZiBLZHx8KGQ9dm9pZCAwKTtlIGluc3RhbmNlb2YgS2R8fChlPXZvaWQgMCk7dmFyIGY9dGhpcy5ULndiKCksZz1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e3JldHVybiBjPyhsLmludm9rZShmKSxhLnByb21pc2UpOmwuaW52b2tlKGYsbil9Y2F0Y2gocCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHAgaW5zdGFuY2VvZiBFcnJvcj9uZXcgUGQocCk6U3RyaW5nKHApKX19fSxoPWEucHJvbWlzZS50aGVuKGQmJmcoZCksZSYmZyhlKSk7cmV0dXJuIG5ldyBTZChoKX0pfTtTZC5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtTZC5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gVGQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbD1nLkZhKCksbj0wO248bC5sZW5ndGg7bisrKWhbbFtuXV09ZihnLmdldChsW25dKSl9LGY9ZnVuY3Rpb24oZyl7aWYoZz09PW51bGx8fGc9PT12b2lkIDApcmV0dXJuIGc7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihnIGluc3RhbmNlb2YgR2Qpe3ZhciBsPVtdO2Quc2V0KGcsbCk7Zm9yKHZhciBuPWcuRmEoKSxwPTA7cDxuLmxlbmd0aDtwKyspbFtuW3BdXT1mKGcuZ2V0KG5bcF0pKTtyZXR1cm4gbH1pZihnIGluc3RhbmNlb2YgU2QpcmV0dXJuIGcucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBUZCh1LGIsMSl9LGZ1bmN0aW9uKHUpe3JldHVybiBQcm9taXNlLnJlamVjdChUZCh1LGIsMSkpfSk7aWYoZyBpbnN0YW5jZW9mIGtiKXt2YXIgcT17fTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX1pZihnIGluc3RhbmNlb2YgS2Qpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PQpbXSx2PTA7djxhcmd1bWVudHMubGVuZ3RoO3YrKyl1W3ZdPVVkKGFyZ3VtZW50c1t2XSxiLGMpO3ZhciB4PW5ldyBoYihiP2IuamUoKTpuZXcgV2EpO2ImJngudWUoYi54YigpKTtyZXR1cm4gZihnLmFwcGx5KHgsdSkpfTtkLnNldChnLHIpO2UoZyxyKTtyZXR1cm4gcn12YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7Y2FzZSAzOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyBpbnN0YW5jZW9mIFBkJiZ0KXJldHVybiBnLmdldFZhbHVlKCk7c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAidW5kZWZpbmVkIjpyZXR1cm4gZztjYXNlICJvYmplY3QiOmlmKGc9PT0KbnVsbClyZXR1cm4gbnVsbH19O3JldHVybiBmKGEpfQpmdW5jdGlvbiBVZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShsKSYmaC5zZXQobCxmKGdbbF0pKX0sZj1mdW5jdGlvbihnKXt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKEFycmF5LmlzQXJyYXkoZyl8fEhiKGcpKXt2YXIgbD1uZXcgR2Q7ZC5zZXQoZyxsKTtmb3IodmFyIG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZsLnNldChuLGYoZ1tuXSkpO3JldHVybiBsfWlmKENkKGcpKXt2YXIgcD1uZXcga2I7ZC5zZXQoZyxwKTtlKGcscCk7cmV0dXJuIHB9aWYodHlwZW9mIGc9PT0iZnVuY3Rpb24iKXt2YXIgcT1uZXcgS2QoIiIsZnVuY3Rpb24oKXtmb3IodmFyIHU9T2EuYXBwbHkoMCxhcmd1bWVudHMpLHY9W10seD0wO3g8dS5sZW5ndGg7eCsrKXZbeF09VGQodGhpcy5ldmFsdWF0ZSh1W3hdKSxiLGMpO3JldHVybiBmKHRoaXMuVC5QaigpKGcsZyx2KSl9KTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX12YXIgcj10eXBlb2YgZztpZihnPT09bnVsbHx8cj09PSJzdHJpbmcifHxyPT09Im51bWJlciJ8fHI9PT0iYm9vbGVhbiIpcmV0dXJuIGc7dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGchPT12b2lkIDAmJnQpcmV0dXJuIG5ldyBQZChnKX07cmV0dXJuIGYoYSl9O3ZhciBWZD17c3VwcG9ydGVkTWV0aG9kczoiY29uY2F0IGV2ZXJ5IGZpbHRlciBmb3JFYWNoIGhhc093blByb3BlcnR5IGluZGV4T2Ygam9pbiBsYXN0SW5kZXhPZiBtYXAgcG9wIHB1c2ggcmVkdWNlIHJlZHVjZVJpZ2h0IHJldmVyc2Ugc2hpZnQgc2xpY2Ugc29tZSBzb3J0IHNwbGljZSB1bnNoaWZ0IHRvU3RyaW5nIi5zcGxpdCgiICIpLGNvbmNhdDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy5sZW5ndGgoKTtjKyspYi5wdXNoKHRoaXMuZ2V0KGMpKTtmb3IodmFyIGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKWlmKGFyZ3VtZW50c1tkXWluc3RhbmNlb2YgR2QpZm9yKHZhciBlPWFyZ3VtZW50c1tkXSxmPTA7ZjxlLmxlbmd0aCgpO2YrKyliLnB1c2goZS5nZXQoZikpO2Vsc2UgYi5wdXNoKGFyZ3VtZW50c1tkXSk7cmV0dXJuIG5ldyBHZChiKX0sZXZlcnk6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiYKZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmIWIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMTtyZXR1cm4hMH0sZmlsdGVyOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiZiLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykmJmQucHVzaCh0aGlzLmdldChlKSk7cmV0dXJuIG5ldyBHZChkKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspdGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKX0saGFzT3duUHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5oYXMoYil9LGluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1jPT09dm9pZCAwPzA6TnVtYmVyKGMpO2U8MCYmKGU9TWF0aC5tYXgoZCtlLDApKTtmb3IodmFyIGY9CmU7ZjxkO2YrKylpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxqb2luOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPHRoaXMubGVuZ3RoKCk7ZCsrKWMucHVzaCh0aGlzLmdldChkKSk7cmV0dXJuIGMuam9pbihiKX0sbGFzdEluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1kLTE7YyE9PXZvaWQgMCYmKGU9YzwwP2QrYzpNYXRoLm1pbihjLGUpKTtmb3IodmFyIGY9ZTtmPj0wO2YtLSlpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxtYXA6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJihkW2VdPWIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSk7cmV0dXJuIG5ldyBHZChkKX0scG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wKCl9LHB1c2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLAp3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfSxyZWR1Y2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPTA7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTtmb3IodmFyIGc9MDtnPGQ7ZysrKWlmKHRoaXMuaGFzKGcpKXtlPXRoaXMuZ2V0KGcpO2Y9ZysxO2JyZWFrfWlmKGc9PT1kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPGQ7aCsrKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj1kLTE7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpOwpmb3IodmFyIGc9MTtnPD1kO2crKylpZih0aGlzLmhhcyhkLWcpKXtlPXRoaXMuZ2V0KGQtZyk7Zj1kLShnKzEpO2JyZWFrfWlmKGc+ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPj0wO2gtLSl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPUhkKHRoaXMpLGI9YS5sZW5ndGgtMSxjPTA7Yj49MDtiLS0sYysrKWEuaGFzT3duUHJvcGVydHkoYik/dGhpcy5zZXQoYyxhW2JdKTp0aGlzLnJlbW92ZShjKTtyZXR1cm4gdGhpc30sc2hpZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGlmdCgpfSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKTtiPT09dm9pZCAwJiYoYj0wKTtiPWI8MD9NYXRoLm1heChkK2IsMCk6TWF0aC5taW4oYixkKTtjPWM9PT0Kdm9pZCAwP2Q6YzwwP01hdGgubWF4KGQrYywwKTpNYXRoLm1pbihjLGQpO2M9TWF0aC5tYXgoYixjKTtmb3IodmFyIGU9W10sZj1iO2Y8YztmKyspZS5wdXNoKHRoaXMuZ2V0KGYpKTtyZXR1cm4gbmV3IEdkKGUpfSxzb21lOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiEwO3JldHVybiExfSxzb3J0OmZ1bmN0aW9uKGEsYil7dmFyIGM9SGQodGhpcyk7Yj09PXZvaWQgMD9jLnNvcnQoKTpjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gTnVtYmVyKGIuaW52b2tlKGEsZSxmKSl9KTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljLmhhc093blByb3BlcnR5KGQpP3RoaXMuc2V0KGQsY1tkXSk6dGhpcy5yZW1vdmUoZCk7cmV0dXJuIHRoaXN9LHNwbGljZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuc3BsaWNlLmFwcGx5KHRoaXMsCltiLGNdLmNvbmNhdCh3KE9hLmFwcGx5KDMsYXJndW1lbnRzKSkpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1bnNoaWZ0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuc2hpZnQuYXBwbHkodGhpcyx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfX07dmFyIFdkPXtjaGFyQXQ6MSxjb25jYXQ6MSxpbmRleE9mOjEsbGFzdEluZGV4T2Y6MSxtYXRjaDoxLHJlcGxhY2U6MSxzZWFyY2g6MSxzbGljZToxLHNwbGl0OjEsc3Vic3RyaW5nOjEsdG9Mb3dlckNhc2U6MSx0b0xvY2FsZUxvd2VyQ2FzZToxLHRvU3RyaW5nOjEsdG9VcHBlckNhc2U6MSx0b0xvY2FsZVVwcGVyQ2FzZToxLHRyaW06MX0sWGQ9bmV3IFRhKCJicmVhayIpLFlkPW5ldyBUYSgiY29udGludWUiKTtmdW5jdGlvbiBaZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpK3RoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gYWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBBcHBseSBpbnN0cnVjdGlvbi4iKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCByZWFkIHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTt2YXIgZz10eXBlb2YgZD09PSJudW1iZXIiO2lmKHR5cGVvZiBkPT09ImJvb2xlYW4ifHxnKXtpZihlPT09InRvU3RyaW5nIil7aWYoZyYmZi5sZW5ndGgoKSl7dmFyIGg9VGQoZi5nZXQoMCkpO3RyeXtyZXR1cm4gZC50b1N0cmluZyhoKX1jYXRjaCh1KXt9fXJldHVybiBkLnRvU3RyaW5nKCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitkKyIuIitlKyIgaXMgbm90IGEgZnVuY3Rpb24uIikpO31pZih0eXBlb2YgZD09PQoic3RyaW5nIil7aWYoV2QuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBsPVRkKGYsdm9pZCAwLDEpO3JldHVybiBVZChkW2VdLmFwcGx5KGQsbCksdGhpcy5UKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZCBpbnN0YW5jZW9mIEdkKXtpZihkLmhhcyhlKSl7dmFyIG49ZC5nZXQoU3RyaW5nKGUpKTtpZihuIGluc3RhbmNlb2YgS2Qpe3ZhciBwPUhkKGYpO3JldHVybiBuLmFwcGx5KHRoaXMuVCxwKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoVmQuc3VwcG9ydGVkTWV0aG9kcy5pbmRleE9mKGUpPj0wKXt2YXIgcT1IZChmKTtyZXR1cm4gVmRbZV0uY2FsbC5hcHBseShWZFtlXSxbZCx0aGlzLlRdLmNvbmNhdCh3KHEpKSl9fWlmKGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2Qpe2lmKGQuaGFzKGUpKXt2YXIgcj1kLmdldChlKTsKaWYociBpbnN0YW5jZW9mIEtkKXt2YXIgdD1IZChmKTtyZXR1cm4gci5hcHBseSh0aGlzLlQsdCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGU9PT0idG9TdHJpbmciKXJldHVybiBkIGluc3RhbmNlb2YgS2Q/ZC5nZXROYW1lKCk6ZC50b1N0cmluZygpO2lmKGU9PT0iaGFzT3duUHJvcGVydHkiKXJldHVybiBkLmhhcyhmLmdldCgwKSl9aWYoZCBpbnN0YW5jZW9mIFBkJiZlPT09InRvU3RyaW5nIilyZXR1cm4gZC50b1N0cmluZygpO3Rocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IE9iamVjdCBoYXMgbm8gJyIrZSsiJyBwcm9wZXJ0eS4iKSk7fQpmdW5jdGlvbiBiZShhLGIpe2E9dGhpcy5ldmFsdWF0ZShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSBuYW1lIGdpdmVuIGZvciBhc3NpZ25tZW50LiIpO3ZhciBjPXRoaXMuVDtpZighYy5oYXMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXNzaWduIHRvIHVuZGVmaW5lZCB2YWx1ZSAiK2IpO3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7Yy5zZXQoYSxkKTtyZXR1cm4gZH1mdW5jdGlvbiBjZSgpe3ZhciBhPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxiPXRoaXMuVC53YigpLGM9ZWIoYixhKTtpZihjIGluc3RhbmNlb2YgVGEpcmV0dXJuIGN9ZnVuY3Rpb24gZGUoKXtyZXR1cm4gWGR9ZnVuY3Rpb24gZWUoYSl7Zm9yKHZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD10aGlzLmV2YWx1YXRlKGJbY10pO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH19CmZ1bmN0aW9uIGZlKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9YXJndW1lbnRzW2JdO2lmKHR5cGVvZiBjPT09InN0cmluZyIpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2EuUWgoYyxkKX19fWZ1bmN0aW9uIGdlKCl7cmV0dXJuIFlkfWZ1bmN0aW9uIGhlKGEsYil7cmV0dXJuIG5ldyBUYShhLHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGllKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7ZD1uZXcgR2Q7Zm9yKHZhciBlPXRoaXMuZXZhbHVhdGUoYiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWQucHVzaChlW2ZdKTt2YXIgZz1bNTEsYSxkXS5jb25jYXQodyhjKSk7dGhpcy5ULmFkZChhLHRoaXMuZXZhbHVhdGUoZykpfWZ1bmN0aW9uIGplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkvdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24ga2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKSxlPWMgaW5zdGFuY2VvZiBQZCxmPWQgaW5zdGFuY2VvZiBQZDtyZXR1cm4gZXx8Zj9lJiZmP2MuZ2V0VmFsdWUoKT09PWQuZ2V0VmFsdWUoKTohMTpjPT1kfWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBhLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWE9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8YigpO2UrKyl7dmFyIGY9YShjKGUpKSxnPWViKGYsZCk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfX19CmZ1bmN0aW9uIG5lKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihmKXtyZXR1cm4gZn0sYyk7aWYoYiBpbnN0YW5jZW9mIGtifHxiIGluc3RhbmNlb2YgU2R8fGIgaW5zdGFuY2VvZiBHZHx8YiBpbnN0YW5jZW9mIEtkKXt2YXIgZD1iLkZhKCksZT1kLmxlbmd0aDtyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBlfSxmdW5jdGlvbihmKXtyZXR1cm4gZFtmXX0sYyl9fWZ1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHBlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcmUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gdGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiB1ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX0KZnVuY3Rpb24gc2UoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdfSxjKTtpZihiIGluc3RhbmNlb2YgR2QpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGgoKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGIuZ2V0KGQpfSxjKTt0aHJvdyBjYihFcnJvcigiVGhlIHZhbHVlIGlzIG5vdCBpdGVyYWJsZS4iKSk7fQpmdW5jdGlvbiB2ZShhLGIsYyxkKXtmdW5jdGlvbiBlKHEscil7Zm9yKHZhciB0PTA7dDxmLmxlbmd0aCgpO3QrKyl7dmFyIHU9Zi5nZXQodCk7ci5hZGQodSxxLmdldCh1KSl9fXZhciBmPXRoaXMuZXZhbHVhdGUoYSk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJUeXBlRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEZvckxldCBpbnN0cnVjdGlvbi4iKTt2YXIgZz10aGlzLlQsaD10aGlzLmV2YWx1YXRlKGQpLGw9Zy53YigpO2ZvcihlKGcsbCk7ZmIobCxiKTspe3ZhciBuPWViKGwsaCk7aWYobiBpbnN0YW5jZW9mIFRhKXtpZihuLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKG4udHlwZT09PSJyZXR1cm4iKXJldHVybiBufXZhciBwPWcud2IoKTtlKGwscCk7ZmIocCxjKTtsPXB9fQpmdW5jdGlvbiB3ZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPXRoaXMuVCxlPXRoaXMuZXZhbHVhdGUoYik7aWYoIShlIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogbm9uLUxpc3QgdmFsdWUgZ2l2ZW4gZm9yIEZuIGFyZ3VtZW50IG5hbWVzLiIpO3JldHVybiBuZXcgS2QoYSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPWQud2IoKTtnLnhiKCk9PT12b2lkIDAmJmcudWUodGhpcy5ULnhiKCkpO2Zvcih2YXIgaD1bXSxsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBuPXRoaXMuZXZhbHVhdGUoZltsXSk7aFtsXT1ufWZvcih2YXIgcD1lLmdldCgibGVuZ3RoIikscT0wO3E8cDtxKyspcTxoLmxlbmd0aD9nLmFkZChlLmdldChxKSxoW3FdKTpnLmFkZChlLmdldChxKSx2b2lkIDApO2cuYWRkKCJhcmd1bWVudHMiLG5ldyBHZChoKSk7dmFyIHI9ZWIoZyxjKTtpZihyIGluc3RhbmNlb2YgVGEpcmV0dXJuIHIudHlwZT09PQoicmV0dXJuIj9yLmRhdGE6cn19KCkpfWZ1bmN0aW9uIHhlKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz10aGlzLlQ7aWYoeWUmJiFjLmhhcyhiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYisiIGlzIG5vdCBkZWZpbmVkLiIpO3JldHVybiBjLmdldChiKX0KZnVuY3Rpb24gemUoYSxiKXt2YXIgYyxkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgIitkKyIgKHJlYWRpbmcgJyIrZSsiJykiKSk7aWYoZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIEtkKWM9ZC5nZXQoZSk7ZWxzZSBpZih0eXBlb2YgZD09PSJzdHJpbmciKWU9PT0ibGVuZ3RoIj9jPWQubGVuZ3RoOkZkKGUpJiYoYz1kW2VdKTtlbHNlIGlmKGQgaW5zdGFuY2VvZiBQZClyZXR1cm47cmV0dXJuIGN9ZnVuY3Rpb24gQWUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT50aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEJlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+PXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIENlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7YyBpbnN0YW5jZW9mIFBkJiYoYz1jLmdldFZhbHVlKCkpO2QgaW5zdGFuY2VvZiBQZCYmKGQ9ZC5nZXRWYWx1ZSgpKTtyZXR1cm4gYz09PWR9ZnVuY3Rpb24gRGUoYSxiKXtyZXR1cm4hQ2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gRWUoYSxiLGMpe3ZhciBkPVtdO3RoaXMuZXZhbHVhdGUoYSk/ZD10aGlzLmV2YWx1YXRlKGIpOmMmJihkPXRoaXMuZXZhbHVhdGUoYykpO3ZhciBlPWViKHRoaXMuVCxkKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGV9dmFyIHllPSExOwpmdW5jdGlvbiBGZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTw9dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBIZSgpe2Zvcih2YXIgYT1uZXcgR2QsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTthLnB1c2goYyl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoKXtmb3IodmFyIGE9bmV3IGtiLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pKSxkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2Euc2V0KGMsZCl9cmV0dXJuIGF9ZnVuY3Rpb24gSmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSV0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBLZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpKnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gTGUoYSl7cmV0dXJuLXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTmUoYSxiKXtyZXR1cm4ha2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gT2UoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKTt0aGlzLmV2YWx1YXRlKGIpO3JldHVybiBjfWZ1bmN0aW9uIFJlKGEpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIE9hLmFwcGx5KDAsYXJndW1lbnRzKX1mdW5jdGlvbiBUZShhKXtyZXR1cm4gbmV3IFRhKCJyZXR1cm4iLHRoaXMuZXZhbHVhdGUoYSkpfQpmdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHNldCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7KGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2Yga2IpJiZkLnNldChTdHJpbmcoZSksZik7cmV0dXJuIGZ9ZnVuY3Rpb24gVmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigiRXJyb3I6IE1hbGZvcm1lZCBzd2l0Y2ggaW5zdHJ1Y3Rpb24uIik7Zm9yKHZhciBnLGg9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKGh8fGQ9PT10aGlzLmV2YWx1YXRlKGVbbF0pKWlmKGc9dGhpcy5ldmFsdWF0ZShmW2xdKSxnIGluc3RhbmNlb2YgVGEpe3ZhciBuPWcudHlwZTtpZihuPT09ImJyZWFrIilyZXR1cm47aWYobj09PSJyZXR1cm4ifHxuPT09ImNvbnRpbnVlIilyZXR1cm4gZ31lbHNlIGg9ITA7aWYoZi5sZW5ndGg9PT1lLmxlbmd0aCsxJiYoZz10aGlzLmV2YWx1YXRlKGZbZi5sZW5ndGgtMV0pLGcgaW5zdGFuY2VvZiBUYSYmKGcudHlwZT09PSJyZXR1cm4ifHxnLnR5cGU9PT0iY29udGludWUiKSkpcmV0dXJuIGd9CmZ1bmN0aW9uIFhlKGEsYixjKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT90aGlzLmV2YWx1YXRlKGIpOnRoaXMuZXZhbHVhdGUoYyl9ZnVuY3Rpb24gWWUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKTtyZXR1cm4gYiBpbnN0YW5jZW9mIEtkPyJmdW5jdGlvbiI6dHlwZW9mIGJ9ZnVuY3Rpb24gWmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz1hcmd1bWVudHNbYl07dHlwZW9mIGMhPT0ic3RyaW5nInx8YS5hZGQoYyx2b2lkIDApfX0KZnVuY3Rpb24gJGUoYSxiLGMsZCl7dmFyIGU9dGhpcy5ldmFsdWF0ZShkKTtpZih0aGlzLmV2YWx1YXRlKGMpKXt2YXIgZj1lYih0aGlzLlQsZSk7aWYoZiBpbnN0YW5jZW9mIFRhKXtpZihmLnR5cGU9PT0iYnJlYWsiKXJldHVybjtpZihmLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZn19Zm9yKDt0aGlzLmV2YWx1YXRlKGEpOyl7dmFyIGc9ZWIodGhpcy5ULGUpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ310aGlzLmV2YWx1YXRlKGIpfX1mdW5jdGlvbiBhZihhKXtyZXR1cm5+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfWZ1bmN0aW9uIGJmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKTw8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGNmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfQpmdW5jdGlvbiBkZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZWYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpJk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBmZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSleTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGdmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKXxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaGYoKXt9CmZ1bmN0aW9uIGtmKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9Y2F0Y2goaCl7aWYoIShoIGluc3RhbmNlb2YgYmImJmguU24pKXRocm93IGg7dmFyIGU9dGhpcy5ULndiKCk7YSE9PSIiJiYoaCBpbnN0YW5jZW9mIGJiJiYoaD1oLnZvKSxlLmFkZChhLG5ldyBQZChoKSkpO3ZhciBmPXRoaXMuZXZhbHVhdGUoYyksZz1lYihlLGYpO2lmKGcgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZ319ZnVuY3Rpb24gbGYoYSxiKXt2YXIgYyxkO3RyeXtkPXRoaXMuZXZhbHVhdGUoYSl9Y2F0Y2goZil7aWYoIShmIGluc3RhbmNlb2YgYmImJmYuU24pKXRocm93IGY7Yz1mfXZhciBlPXRoaXMuZXZhbHVhdGUoYik7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlO2lmKGMpdGhyb3cgYztpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9O3ZhciBuZj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgZ2I7bWYodGhpcyl9O25mLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkgucmsoYSl9O3ZhciBtZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPW5ldyBMZChTdHJpbmcoYyksZCk7ZS5aYSgpO3ZhciBmPVN0cmluZyhjKTthLkguSC5zZXQoZixlKTtkYi5zZXQoZixlKX07YigibWFwIixJZSk7YigiYW5kIix0ZCk7YigiY29udGFpbnMiLHdkKTtiKCJlcXVhbHMiLHVkKTtiKCJvciIsdmQpO2IoInN0YXJ0c1dpdGgiLHhkKTtiKCJ2YXJpYWJsZSIseWQpfTtuZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTt2YXIgcGY9ZnVuY3Rpb24oKXt0aGlzLks9ITE7dGhpcy5IPW5ldyBnYjtvZih0aGlzKTt0aGlzLks9ITB9O3BmLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiBxZih0aGlzLkgucmsoYSkpfTt2YXIgcmY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBxZihhLkguSnEoYixjKSl9O3BmLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTsKdmFyIG9mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9U3RyaW5nKGMpLGY9bmV3IExkKGUsZCk7Zi5aYSgpO2EuSC5ILnNldChlLGYpO2RiLnNldChlLGYpfTtiKDAsWmQpO2IoMSwkZCk7YigyLGFlKTtiKDMsYmUpO2IoNTYsZWYpO2IoNTcsYmYpO2IoNTgsYWYpO2IoNTksZ2YpO2IoNjAsY2YpO2IoNjEsZGYpO2IoNjIsZmYpO2IoNTMsY2UpO2IoNCxkZSk7Yig1LGVlKTtiKDY4LGtmKTtiKDUyLGZlKTtiKDYsZ2UpO2IoNDksaGUpO2IoNyxIZSk7Yig4LEllKTtiKDksZWUpO2IoNTAsaWUpO2IoMTAsamUpO2IoMTIsa2UpO2IoMTMsbGUpO2IoNjcsbGYpO2IoNTEsd2UpO2IoNDcsb2UpO2IoNTQscGUpO2IoNTUscWUpO2IoNjMsdmUpO2IoNjQscmUpO2IoNjUsdGUpO2IoNjYsdWUpO2IoMTUseGUpO2IoMTYsemUpO2IoMTcsemUpO2IoMTgsQWUpO2IoMTksQmUpO2IoMjAsQ2UpO2IoMjEsRGUpO2IoMjIsRWUpO2IoMjMsRmUpO2IoMjQsR2UpO2IoMjUsSmUpO2IoMjYsCktlKTtiKDI3LExlKTtiKDI4LE1lKTtiKDI5LE5lKTtiKDQ1LE9lKTtiKDMwLFBlKTtiKDMyLFFlKTtiKDMzLFFlKTtiKDM0LFJlKTtiKDM1LFJlKTtiKDQ2LFNlKTtiKDM2LFRlKTtiKDQzLFVlKTtiKDM3LFZlKTtiKDM4LFdlKTtiKDM5LFhlKTtiKDQwLFllKTtiKDQ0LGhmKTtiKDQxLFplKTtiKDQyLCRlKX07cGYucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5qZSgpfTtwZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtwZi5wcm90b3R5cGUuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTsKZnVuY3Rpb24gcWYoYSl7aWYoYSBpbnN0YW5jZW9mIFRhfHxhIGluc3RhbmNlb2YgS2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBQZHx8YT09PW51bGx8fGE9PT12b2lkIDB8fHR5cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im51bWJlciJ8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhfTt2YXIgc2Y9ZnVuY3Rpb24oYSl7dGhpcy5tZXNzYWdlPWF9O2Z1bmN0aW9uIHRmKGEpe2EucXY9ITA7cmV0dXJuIGF9O3ZhciB1Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLHZmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksd2Y9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7ZnVuY3Rpb24geGYoYSl7dmFyIGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2FdO3JldHVybiBiPT09dm9pZCAwP25ldyBzZigiVmFsdWUgIithKyIgY2FuIG5vdCBiZSBlbmNvZGVkIGluIHdlYi1zYWZlIGJhc2U2NCBkaWN0aW9uYXJ5LiIpOmJ9O2Z1bmN0aW9uIHlmKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIjEiO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIjAiO2RlZmF1bHQ6cmV0dXJuIi0ifX07dmFyIHpmPS9eWzEtOWEtekEtWl8tXVsxLTlhLWNdWzEtOWEtdl1cZCQvO2Z1bmN0aW9uIEFmKGEsYil7Zm9yKHZhciBjPSIiLGQ9ITA7YT43Oyl7dmFyIGU9YSYzMTthPj49NTtkP2Q9ITE6ZXw9MzI7Yz0iIit4ZihlKStjfWE8PD0yO2R8fChhfD0zMik7cmV0dXJuIGM9IiIreGYoYXxiKStjfWZ1bmN0aW9uIEJmKGEsYil7cmV0dXJuIGI9PT12b2lkIDB8fGI9PT0wPyIiOiIiK0FmKGEsMSkreGYoYil9CmZ1bmN0aW9uIENmKGEsYil7dmFyIGM7dmFyIGQ9YS5oaSxlPWEuYms7ZD09PXZvaWQgMD9jPSIiOihlfHwoZT0wKSxjPSIiK0FmKDEsMSkreGYoZDw8MnxlKSk7dmFyIGY9IjQiK2MrQmYoMixhLnFyKSxnLGg9YS5JbztnPWgmJnpmLnRlc3QoaCk/IiIrQWYoMywyKStoOiIiO3ZhciBsO3ZhciBuPWEuY3RpZDtpZihuJiZiKXt2YXIgcD1BZig1LDMpLHE9bi5zcGxpdCgiLSIpLHI9cVswXS50b1VwcGVyQ2FzZSgpO2lmKHIhPT0iR1RNIiYmciE9PSJPUFQiKWw9IiI7ZWxzZXt2YXIgdD1xWzFdO2w9IiIrcCt4ZigxK3QubGVuZ3RoKSsoYS5Mc3x8MCkrdH19ZWxzZSBsPSIiO3ZhciB1PWEuY2Fub25pY2FsSWQsdj1hLm1jLHg9YS56dix5PWYrZytCZig0LGEuRG8pK2wrQmYoNixhLkR0KSsodT8iIitBZig3LDMpK3hmKHUubGVuZ3RoKSt1OiIiKSsodj8iIitBZig4LDMpK3hmKHYubGVuZ3RoKSt2OiIiKSsoeD8iIitBZig5LDMpK3hmKHgubGVuZ3RoKSt4OiIiKSx6O3ZhciBDPWEuenI7Qz0KQz09PXZvaWQgMD97fTpDO2Zvcih2YXIgRD1bXSxJPW0oT2JqZWN0LmtleXMoQykpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXt2YXIgTj1HLnZhbHVlO0RbTnVtYmVyKE4pXT1DW05dfWlmKEQubGVuZ3RoKXt2YXIgUz1BZigxMCwzKSxXO2lmKEQubGVuZ3RoPT09MClXPXhmKDApO2Vsc2V7Zm9yKHZhciBlYT1bXSxqYT0wLGZhPSExLHNhPTA7c2E8RC5sZW5ndGg7c2ErKyl7ZmE9ITA7dmFyIGRhPXNhJTY7RFtzYV0mJihqYXw9MTw8ZGEpO2RhPT09NSYmKGVhLnB1c2goeGYoamEpKSxqYT0wLGZhPSExKX1mYSYmZWEucHVzaCh4ZihqYSkpO1c9ZWEuam9pbigiIil9dmFyIG1hPVc7ej0iIitTK3hmKG1hLmxlbmd0aCkrbWF9ZWxzZSB6PSIiO3ZhciBQYT1hLlVzLEZhPWEubnQ7cmV0dXJuIHkreisoUGE/IiIrQWYoMTEsMykreGYoUGEubGVuZ3RoKStQYToiIikrKEZhPyIiK0FmKDEzLDMpK3hmKEZhLmxlbmd0aCkrRmE6IiIpK0JmKDE0LGEuRXQpK0JmKDE1LGEucnYpK0JmKDE2LAphLkF2KX07ZnVuY3Rpb24gRGYoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07ZnVuY3Rpb24gRWYoYSxiKXtmb3IodmFyIGM9cWIoYiksZD1uZXcgVWludDhBcnJheShjLmxlbmd0aCksZT0wO2U8Yy5sZW5ndGg7ZSsrKWRbZV09Yy5jaGFyQ29kZUF0KGUpO2lmKGQubGVuZ3RoIT09MzIpdGhyb3cgRXJyb3IoIktleSBpcyBub3QgMzIgYnl0ZXMuIik7cmV0dXJuIEZmKGEsZCl9ZnVuY3Rpb24gRmYoYSxiKXtpZihhPT09IiIpcmV0dXJuIiI7dmFyIGM9WmIoYSksZD1iLnNsaWNlKC0yKSxlPVtdLmNvbmNhdCh3KGQpLHcoYykpLm1hcChmdW5jdGlvbihnLGgpe3JldHVybiBnXmJbaCViLmxlbmd0aF19KSxmPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGUpLHcoZCkpKTtyZXR1cm4gcGIoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhmKSkpLnJlcGxhY2UoL1wuKyQvLCIiKX07dmFyIEdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtyZXR1cm57dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYn19fXJldHVybntjcDphKCJjb25zZW50IiksWms6YSgiY29udmVydF9jYXNlX3RvIiksYWw6YSgiY29udmVydF9mYWxzZV90byIpLGJsOmEoImNvbnZlcnRfbnVsbF90byIpLGVwOmEoImNvbnZlcnRfdG9fYm9vbGVhbiIpLGFoOmEoImNvbnZlcnRfdG9fbnVtYmVyIiksZmw6YSgiY29udmVydF90cnVlX3RvIiksaWw6YSgiY29udmVydF91bmRlZmluZWRfdG8iKSxZdDphKCJkZWJ1Z19tb2RlX21ldGFkYXRhIiksWWI6YSgiZnVuY3Rpb24iKSxSbTphKCJpbnN0YW5jZV9uYW1lIiksTnE6YSgibGl2ZV9vbmx5IiksT3E6YSgibWFsd2FyZV9kaXNhYmxlZCIpLE1FVEFEQVRBOmEoIm1ldGFkYXRhIiksUnE6YSgib3JpZ2luYWxfYWN0aXZpdHlfaWQiKSxUdTphKCJvcmlnaW5hbF92ZW5kb3JfdGVtcGxhdGVfaWQiKSxTdTphKCJvbmNlX29uX2xvYWQiKSxRcTphKCJvbmNlX3Blcl9ldmVudCIpLAprbjphKCJvbmNlX3Blcl9sb2FkIiksVnU6YSgicHJpb3JpdHlfb3ZlcnJpZGUiKSxZdTphKCJyZXNwZWN0ZWRfY29uc2VudF90eXBlcyIpLHRuOmEoInNldHVwX3RhZ3MiKSx5ajphKCJ0YWdfaWQiKSxEbjphKCJ0ZWFyZG93bl90YWdzIikscGw6YSgiZGlzYWJsZWRfaW5fZ29vZ2xlX21vZGUiKSxGcTphKCJnZW5lcmF0ZWRfdGFnZ2luZ19tZXRhZGF0YSIpfX0oKTtmdW5jdGlvbiBIZihhLGIpe3ZhciBjPXt9O2NbR2YuWWJdPSJfXyIrYTtmb3IodmFyIGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1sidnRwXyIrZF09YltkXSk7cmV0dXJuIGN9O2Z1bmN0aW9uIElmKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/ISFkYXRhLmJsb2JbYV06Yn1mdW5jdGlvbiBFKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhkYXRhLmJsb2JbYV0pOmJ9ZnVuY3Rpb24gSmYoYSl7dmFyIGIsYztyZXR1cm4oKGI9ZGF0YSk9PW51bGw/MDooYz1iLmJsb2IpPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGRhdGEuYmxvYlthXSk6MH1mdW5jdGlvbiBLZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/W106Yjt2YXIgYyxkLGU9KGM9ZGF0YSk9PW51bGw/dm9pZCAwOihkPWMuYmxvYik9PW51bGw/dm9pZCAwOmRbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpifQpmdW5jdGlvbiBMZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGNbYV0pOmJ9ZnVuY3Rpb24gTmYoYSxiKXt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGNbYV0pOmJ9ZnVuY3Rpb24gTWYoYSl7dmFyIGIsYztyZXR1cm4oYj1kYXRhKT09bnVsbD92b2lkIDA6KGM9Yi5ibG9iKT09bnVsbD92b2lkIDA6Y1thXX07dmFyIE9mPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxjKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnBlcm1pc3Npb25JZD1hO3RoaXMucGFyYW1ldGVycz1iO3RoaXMubmFtZT0iUGVybWlzc2lvbkVycm9yIn07d2EoT2YsRXJyb3IpO09mLnByb3RvdHlwZS5nZXRNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07ZnVuY3Rpb24gUGYoYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY29udGV4dCIse3ZhbHVlOntsaW5lOmJbMF19fSk7Zm9yKHZhciBjPTE7YzxhLmxlbmd0aDtjKyspUGYoYVtjXSxiW2NdKX19O2Z1bmN0aW9uIFFmKCl7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM7dmFyIGQ9UmY7YSBpbnN0YW5jZW9mIGJiPyhhLkg9ZCxjPWEpOmM9bmV3IGJiKGEsZCk7dmFyIGU9YztiJiZlLksucHVzaChiKTt0aHJvdyBlO319ZnVuY3Rpb24gUmYoYSl7aWYoIWEubGVuZ3RoKXJldHVybiBhO2EucHVzaCh7aWQ6Im1haW4iLGxpbmU6MH0pO2Zvcih2YXIgYj1hLmxlbmd0aC0xO2I+MDtiLS0pQWIoYVtiXS5pZCkmJmEuc3BsaWNlKGIrKywxKTtmb3IodmFyIGM9YS5sZW5ndGgtMTtjPjA7Yy0tKWFbY10ubGluZT1hW2MtMV0ubGluZTthLnNwbGljZSgwLDEpO3JldHVybiBhfTt2YXIgU2Y9UmVnRXhwKCJbXjAtOVxcListXSIsImciKSxUZj1SZWdFeHAoIlteMC05XFwsKy1dIiwiZyIpLFVmPVJlZ0V4cCgiW14wLTkrLV0iLCJnIik7CmZ1bmN0aW9uIFZmKGEsYil7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTt2YXIgYz1TdHJpbmcoYSksZDtpZihiPT09IkFVVE9NQVRJQyIpe3ZhciBlPShjLm1hdGNoKC9cLi9nKXx8W10pLmxlbmd0aCxmPShjLm1hdGNoKC8sL2cpfHxbXSkubGVuZ3RoLGc9Ik5PTkUiO2lmKGU+MCYmZj4wKXt2YXIgaD1jLmxhc3RJbmRleE9mKCIuIik+Yy5sYXN0SW5kZXhPZigiLCIpO2gmJmU9PT0xP2c9IlBFUklPRCI6aHx8ZiE9PTF8fChnPSJDT01NQSIpfWVsc2UgZT09PTE/Zz0oYy5zcGxpdCgiLiIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IlBFUklPRCI6Ik5PTkUiOmY9PT0xJiYoZz0oYy5zcGxpdCgiLCIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IkNPTU1BIjoiTk9ORSIpO2Q9Z31lbHNlIGQ9Yj09PSJDT01NQSI/IkNPTU1BIjoiUEVSSU9EIjt2YXIgbCxuO2Q9PT0iUEVSSU9EIj8obD0iLiIsbj1TZik6ZD09PSJDT01NQSI/KGw9IiwiLApuPVRmKToobD0iIixuPVVmKTt2YXIgcD1jLnJlcGxhY2UobiwiIik7aWYobCE9PSIiJiZwLnNwbGl0KGwpLmxlbmd0aD4yKXJldHVybiBhO3ZhciBxPXAucmVwbGFjZSgvLC9nLCIuIik7aWYocT09PSIiKXJldHVybiBhO3ZhciByPU51bWJlcihxKTtyZXR1cm4gaXNOYU4ocik/YTpyfTt2YXIgV2Y9W10sWGY9e307ZnVuY3Rpb24gWWYoYSl7cmV0dXJuIFdmW2FdPT09dm9pZCAwPyExOldmW2FdfTt2YXIgWmY9ZnVuY3Rpb24oKXt0aGlzLkg9e319LCRmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7YS5IW2JdLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShudWxsLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9KX07ZnVuY3Rpb24gYWcoYSxiLGMsZCl7aWYoYSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9dm9pZCAwLGc9IkEgcG9saWN5IGZ1bmN0aW9uIGRlbmllZCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0Ijt0cnl7Zj1hW2VdKGIsYyxkKSxnKz0iLiJ9Y2F0Y2goaCl7Zz10eXBlb2YgaD09PSJzdHJpbmciP2crKCI6ICIraCk6aCBpbnN0YW5jZW9mIEVycm9yP2crKCI6ICIraC5tZXNzYWdlKTpnKyIuIn1pZighZil0aHJvdyBuZXcgT2YoYyxkLGcpO319CmZ1bmN0aW9uIGJnKGEsYil7dmFyIGM9Y2coZGcuSCxiLGZ1bmN0aW9uKCl7cmV0dXJue319KTt0cnl7cmV0dXJuIGMoYSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fWZ1bmN0aW9uIGNnKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGU9YS5IW2RdLGY9YS5ILmFsbDtpZihlfHxmKXt2YXIgZz1jLmFwcGx5KHZvaWQgMCxbZF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpO2FnKGUsYixkLGcpO2FnKGYsYixkLGcpfX19fTt2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD1uZXcgWmY7dmFyIGU9e30sZj17fSxnPWNnKHRoaXMuSCxhLGZ1bmN0aW9uKGgpe3JldHVybiBoJiZlW2hdP2VbaF0uYXBwbHkodm9pZCAwLFtoXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk6e319KTtHYihiLGZ1bmN0aW9uKGgsbCl7ZnVuY3Rpb24gbihxKXt2YXIgcj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoIXBbcV0pdGhyb3cgZWcocSx7fSwiVGhlIHJlcXVlc3RlZCBhZGRpdGlvbmFsIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7Zy5hcHBseShudWxsLFtxXS5jb25jYXQodyhyKSkpfXZhciBwPXt9O0diKGwsZnVuY3Rpb24ocSxyKXt2YXIgdD1mZyhxLHIsYyk7cFtxXT10LmFzc2VydDtlW3FdfHwoZVtxXT10LmFhKTt0Lk9uJiYhZltxXSYmKGZbcV09dC5Pbil9KTtkLktbaF09ZnVuY3Rpb24ocSxyKXt2YXIgdD1wW3FdO2lmKCF0KXRocm93IGVnKHEsCnt9LCJUaGUgcmVxdWVzdGVkIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3QuYXBwbHkodm9pZCAwLHUpO2cuYXBwbHkodm9pZCAwLHUpO3ZhciB2PWZbcV07diYmdi5hcHBseShudWxsLFtuXS5jb25jYXQodyh1LnNsaWNlKDEpKSkpfX0pfSxoZz1mdW5jdGlvbihhKXtyZXR1cm4gZGcuS1thXXx8ZnVuY3Rpb24oKXt9fTsKZnVuY3Rpb24gZmcoYSxiLGMpe3RyeXt2YXIgZD1jWyJfXyIrYV07aWYoIWQpdGhyb3cgRXJyb3IoIk5vIGZ1bmN0aW9uIGZvdW5kIGZvciBwZXJtaXNzaW9uOiAiK2ErIi4iKTt2YXIgZT1IZihhLGIpO2UudnRwX3Blcm1pc3Npb25OYW1lPWE7ZS52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yPWVnO2RlbGV0ZSBlW0dmLlliXTtyZXR1cm4gZChlKX1jYXRjaChmKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGcpe3Rocm93IG5ldyBPZihnLHt9LCJQZXJtaXNzaW9uICIrZysiIGlzIHVua25vd24uIik7fSxhYTpmdW5jdGlvbigpe3Rocm93IG5ldyBPZihhLHt9LCJQZXJtaXNzaW9uICIrYSsiIGlzIHVua25vd24uIik7fX19fWZ1bmN0aW9uIGVnKGEsYixjKXtyZXR1cm4gbmV3IE9mKGEsYixjKX07dmFyIGlnPUUoNSksamc9RSgyMCksa2c9RSgxKSxsZz0hMTt2YXIgbWc9e307bWcuUG89SWYoMjkpO21nLktyPUlmKDI4KTtmdW5jdGlvbiBuZyhhKXt2YXIgYj0xLGMsZCxlO2lmKGEpZm9yKGI9MCxkPWEubGVuZ3RoLTE7ZD49MDtkLS0pZT1hLmNoYXJDb2RlQXQoZCksYj0oYjw8NiYyNjg0MzU0NTUpK2UrKGU8PDE0KSxjPWImMjY2MzM4MzA0LGI9YyE9PTA/Yl5jPj4yMTpiO3JldHVybiBifTt2YXIgb2c9ZnVuY3Rpb24oYSl7dGhpcy5jYWNoZT1hfTtvZy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPW5nKGEpLGM9dGhpcy5jYWNoZS5nZXQoYik7aWYoIWMpcmV0dXJue3Byb21pc2U6dm9pZCAwLEtqOjB9O2lmKERhdGUubm93KCk+PWMudGltZXN0YW1wKzlFNSlyZXR1cm4gdGhpcy5jYWNoZS5kZWxldGUoYikse3Byb21pc2U6dm9pZCAwLEtqOjN9O3ZhciBkPWMucmVzb2x2ZWRWYWx1ZT8yOjE7cmV0dXJue3Byb21pc2U6Yy5yZXNvbHZlZFZhbHVlP1Byb21pc2UucmVzb2x2ZShjLnJlc29sdmVkVmFsdWUpOmMucHJvbWlzZSxLajpkfX07b2cucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXtwcm9taXNlOmIscmVzb2x2ZWRWYWx1ZTp2b2lkIDAsdGltZXN0YW1wOkRhdGUubm93KCl9O3RoaXMuY2FjaGUuc2V0KG5nKGEpLGMpO2IudGhlbihmdW5jdGlvbihkKXtjLnJlc29sdmVkVmFsdWU9ZH0pfTtmdW5jdGlvbiBwZyhhKXtzd2l0Y2goYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTpyZXR1cm4iZTQiO2Nhc2UgNjpyZXR1cm4iZTUiO2Nhc2UgMTQ6cmV0dXJuImU2IjtkZWZhdWx0OnJldHVybiJlNyJ9fTt2YXIgRj17RDp7WGE6ImFkX3BlcnNvbmFsaXphdGlvbiIsa2E6ImFkX3N0b3JhZ2UiLG1hOiJhZF91c2VyX2RhdGEiLHJhOiJhbmFseXRpY3Nfc3RvcmFnZSIsbmM6InJlZ2lvbiIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsWWc6IndhaXRfZm9yX3VwZGF0ZSIsZWg6ImVuZHBvaW50X3R5cGUiLHFwOiJhcHBfcmVtb3ZlIixycDoiYXBwX3N0b3JlX3JlZnVuZCIsdHA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIix1cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Iix2cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyIsd3A6ImNvbnNlbnRfdXBkYXRlIix4cDoiY29udmVyc2lvbiIsdmw6ImFkZF9wYXltZW50X2luZm8iLHdsOiJhZGRfc2hpcHBpbmdfaW5mbyIseGU6ImFkZF90b19jYXJ0Iix5ZToicmVtb3ZlX2Zyb21fY2FydCIseGw6InZpZXdfY2FydCIsQWQ6ImJlZ2luX2NoZWNrb3V0IixldToiZ2VuZXJhdGVfbGVhZCIsemU6InNlbGVjdF9pdGVtIixvYzoidmlld19pdGVtX2xpc3QiLApRYzoic2VsZWN0X3Byb21vdGlvbiIscWM6InZpZXdfcHJvbW90aW9uIixJYjoicHVyY2hhc2UiLEFlOiJyZWZ1bmQiLHJjOiJ2aWV3X2l0ZW0iLHlsOiJhZGRfdG9fd2lzaGxpc3QiLHlwOiJleGNlcHRpb24iLHpwOiJmaXJzdF9vcGVuIixBcDoiZmlyc3RfdmlzaXQiLHdhOiJndGFnLmNvbmZpZyIsSmI6Imd0YWcuZ2V0IixCcDoiaW5fYXBwX3B1cmNoYXNlIixzYzoicGFnZV92aWV3IixDcDoic2NyZWVuX3ZpZXciLERwOiJzZXNzaW9uX3N0YXJ0IixFcDoic291cmNlX3VwZGF0ZSIsRnA6InRpbWluZ19jb21wbGV0ZSIsR3A6InRyYWNrX3NvY2lhbCIseWY6InVzZXJfZW5nYWdlbWVudCIsSHA6InVzZXJfaWRfdXBkYXRlIixmaDoiYnJhaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsZ2g6ImJyYWlkX3N0b3JhZ2Vfc291cmNlIixCZDoiZ2NsaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQ2Q6ImdjbGlkX3N0b3JhZ2Vfc291cmNlIixTYjoiZ2NsZ2IiLGxiOiJnY2xpZCIsemw6ImdjbGlkX2xlbiIsCkJlOiJnY2xncyIsQ2U6ImdjbGxwIixEZToiZ2Nsc3QiLG1iOiJhZHNfZGF0YV9yZWRhY3Rpb24iLHpmOiJnYWRfc291cmNlIixBZjoiZ2FkX3NvdXJjZV9zcmMiLERkOiJnY2xpZF91cmwiLEFsOiJnY2xzcmMiLEJmOiJnYnJhaWQiLEVlOiJ3YnJhaWQiLFJjOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyIscmk6ImFsbG93X2N1c3RvbV9zY3JpcHRzIixoaDoiYWxsb3dfZGlzcGxheV9mZWF0dXJlcyIsc2k6ImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIixTYzoiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLHVpOiJhbGxvd19pbnRlcmVzdF9ncm91cHMiLElwOiJhcHBfaWQiLEpwOiJhcHBfaW5zdGFsbGVyX2lkIixLcDoiYXBwX25hbWUiLExwOiJhcHBfdmVyc2lvbiIsRWQ6ImF1aWQiLGZ1OiJhdXRvX2RldGVjdGlvbl9lbmFibGVkIixCbDoiYXV0b19ldmVudCIsQ2w6ImF3X3JlbWFya2V0aW5nIixpaDoiYXdfcmVtYXJrZXRpbmdfb25seSIsQ2Y6ImRpc2NvdW50IixEZjoiYXdfZmVlZF9jb3VudHJ5IiwKRWY6ImF3X2ZlZWRfbGFuZ3VhZ2UiLEhhOiJpdGVtcyIsRmY6ImF3X21lcmNoYW50X2lkIix3aToiYXdfYmFza2V0X3R5cGUiLEdmOiJjYW1wYWlnbl9jb250ZW50IixIZjoiY2FtcGFpZ25faWQiLElmOiJjYW1wYWlnbl9tZWRpdW0iLEpmOiJjYW1wYWlnbl9uYW1lIixLZjoiY2FtcGFpZ24iLExmOiJjYW1wYWlnbl9zb3VyY2UiLE1mOiJjYW1wYWlnbl90ZXJtIixLYjoiY2xpZW50X2lkIixEbDoicm5kIix4aToiY29uc2VudF91cGRhdGVfdHlwZSIsTXA6ImNvbnRlbnRfZ3JvdXAiLE5wOiJjb250ZW50X3R5cGUiLEZkOiJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiLHlpOiJjb252ZXJzaW9uX2lkIix1YzoiY29udmVyc2lvbl9saW5rZXIiLEhkOiJjb252ZXJzaW9uX2xpbmtlcl9kaXNhYmxlZCIsRmU6ImNvbnZlcnNpb25fYXBpIix6aToiXyZyY2IiLGpoOiJjb29raWVfZGVwcmVjYXRpb24iLExiOiJjb29raWVfZG9tYWluIixDYjoiY29va2llX2V4cGlyZXMiLFRiOiJjb29raWVfZmxhZ3MiLApJZDoiY29va2llX25hbWUiLHZjOiJjb29raWVfcGF0aCIsbmI6ImNvb2tpZV9wcmVmaXgiLEpkOiJjb29raWVfdXBkYXRlIixUYzoiY291bnRyeSIsZWI6ImN1cnJlbmN5IixHZToiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiLGtoOiJjdXN0b21lcl90eXBlIixIZToiY3VzdG9tX21hcCIsQWk6ImdjbGRjX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLEJpOiJnY2xkY19zdG9yYWdlX3NvdXJjZSIsTmY6ImdjbGRjIixLZDoiZGNsaWQiLEVsOiJkZWJ1Z19tb2RlIixPYToiZGV2ZWxvcGVyX2lkIixPcDoiZGlzYWJsZV9tZXJjaGFudF9yZXBvcnRlZF9wdXJjaGFzZXMiLFVjOiJkY19jdXN0b21fcGFyYW1zIixQcDoiZGNfbmF0dXJhbF9zZWFyY2giLFFwOiJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixGbDoiYWZmaWxpYXRpb24iLG1oOiJjaGVja291dF9vcHRpb24iLENpOiJjaGVja291dF9zdGVwIixHbDoiY291cG9uIixPZjoiaXRlbV9saXN0X25hbWUiLERpOiJsaXN0X25hbWUiLFJwOiJwcm9tb3Rpb25zIiwKTGQ6InNoaXBwaW5nIixIbDoidGF4IixuaDoiZW5nYWdlbWVudF90aW1lX21zZWMiLG9oOiJlbmhhbmNlZF9jbGllbnRfaWQiLFNwOiJlbmhhbmNlZF9jb252ZXJzaW9ucyIsZ3U6ImVuaGFuY2VkX2NvbnZlcnNpb25zX2F1dG9tYXRpY19zZXR0aW5ncyIsSWU6ImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIixQZjoiZXZlbnRfY2FsbGJhY2siLFRwOiJldmVudF9jYXRlZ29yeSIsVmM6ImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciLE1kOiJldmVudF9pZCIsRWk6Il9ldmVudF9qb2luX2lkIixVcDoiZXZlbnRfbGFiZWwiLFViOiJldmVudCIsSWw6Il8mYWUiLEZpOiJldmVudF9zZXR0aW5ncyIscGg6ImV2ZW50X3RpbWVvdXQiLFZwOiJkZXNjcmlwdGlvbiIsV3A6ImZhdGFsIixYcDoiZXhwZXJpbWVudHMiLE5kOiJleHRfY2xpZW50X2lkIixHaToiZmlyZWJhc2VfaWQiLFFmOiJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIixSZjoiX3hfMjAiLFZiOiJfeF8xOSIsWXA6ImZsaWdodF9lcnJvcl9jb2RlIiwKWnA6ImZsaWdodF9lcnJvcl9tZXNzYWdlIixIaToiZmxfYWN0aXZpdHlfY2F0ZWdvcnkiLElpOiJmbF9hY3Rpdml0eV9ncm91cCIscWg6ImZsX2FkdmVydGlzZXJfaWQiLEppOiJtYXRjaF9pZCIsSmw6ImZsX3JhbmRvbV9udW1iZXIiLEtsOiJ0cmFuIixMbDoidSIscmg6ImdhY19nY2xpZCIsSmU6ImdhY193YnJhaWQiLE1sOiJnYWNfd2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixhcToiZ2FfcmVzdHJpY3RfZG9tYWluIixObDoiZ2FfdGVtcF9jbGllbnRfaWQiLGJxOiJnYV90ZW1wX2VjaWQiLEtlOiJnZHByX2FwcGxpZXMiLHNoOiJfZ3RfbWV0YWRhdGEiLE9sOiJnZW9fZ3JhbnVsYXJpdHkiLFNmOiJ2YWx1ZV9jYWxsYmFjayIsVGY6InZhbHVlX2tleSIsVGE6Imdvb2dsZV9hbmFseXNpc19wYXJhbXMiLExlOiJfZ29vZ2xlX25nIixjcToiX29ubyIsVWY6Imdvb2dsZV9zaWduYWxzIixmcToiZ29vZ2xlX3RsZCIsdGg6ImdwcF9zaWQiLHVoOiJncHBfc3RyaW5nIixPZDoiZ3JvdXBzIiwKUGw6ImdzYV9leHBlcmltZW50X2lkIixWZjoiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIixRbDoiZ3RtX3VwIixNZToiaWZyYW1lX3N0YXRlIixXZjoiaWdub3JlX3JlZmVycmVyIixSbDoiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixTbDoiX2lzX2ZwbSIsWWM6ImlzX2xlZ2FjeV9jb252ZXJ0ZWQiLFpjOiJpc19sZWdhY3lfbG9hZGVkIixLaToiaXNfcGFzc3Rocm91Z2giLFBkOiJfbHBzIix0YjoibGFuZ3VhZ2UiLExpOiJsZWdhY3lfZGV2ZWxvcGVyX2lkX3N0cmluZyIsRGI6ImxpbmtlciIsWGY6ImFjY2VwdF9pbmNvbWluZyIsd2M6ImRlY29yYXRlX2Zvcm1zIixBYToiZG9tYWlucyIsYWQ6InVybF9wb3NpdGlvbiIsUWQ6Im1lcmNoYW50X2ZlZWRfbGFiZWwiLFJkOiJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIixTZDoibWVyY2hhbnRfaWQiLFRsOiJtZXRob2QiLGdxOiJuYW1lIixVbDoibmF2aWdhdGlvbl90eXBlIixOZToibmV3X2N1c3RvbWVyIixNaToibm9uX2ludGVyYWN0aW9uIiwKaHE6Im9wdGltaXplX2lkIixWbDoicGFnZV9ob3N0bmFtZSIsWWY6InBhZ2VfcGF0aCIsVWE6InBhZ2VfcmVmZXJyZXIiLE1iOiJwYWdlX3RpdGxlIixpcToicGFzc2VuZ2VycyIsV2w6InBob25lX2NvbnZlcnNpb25fY2FsbGJhY2siLGpxOiJwaG9uZV9jb252ZXJzaW9uX2NvdW50cnlfY29kZSIsWGw6InBob25lX2NvbnZlcnNpb25fY3NzX2NsYXNzIixrcToicGhvbmVfY29udmVyc2lvbl9pZHMiLFlsOiJwaG9uZV9jb252ZXJzaW9uX251bWJlciIsWmw6InBob25lX2NvbnZlcnNpb25fb3B0aW9ucyIsbHE6Il9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyIsbXE6Il9wcm90ZWN0ZWRfYXVkaWVuY2VfZW5hYmxlZCIsd2g6InF1YW50aXR5Iix4aDoicmVkYWN0X2RldmljZV9pbmZvIixhbToicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLGh1OiJfcmVxdWVzdF9zdGFydF90aW1lIixXYjoicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciLG5xOiJyZXRva2VuIixvcToic2FtcGxlX3JhdGUiLApOaToic2NyZWVuX25hbWUiLGJkOiJzY3JlZW5fcmVzb2x1dGlvbiIsYm06Il9zY3JpcHRfc291cmNlIixwcToic2VhcmNoX3Rlcm0iLFRkOiJzZW5kX3BhZ2VfdmlldyIsWGI6InNlbmRfdG8iLE9pOiJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiLGRkOiJzZXJ2ZXJfY29udGFpbmVyX3VybCIscXE6InNlc3Npb25fYXR0cmlidXRlc19lbmNvZGVkIix5aDoic2Vzc2lvbl9kdXJhdGlvbiIsemg6InNlc3Npb25fZW5nYWdlZCIsUGk6InNlc3Npb25fZW5nYWdlZF90aW1lIix4Yzoic2Vzc2lvbl9pZCIsQWg6InNlc3Npb25fbnVtYmVyIixaZjoiX3NoYXJlZF91c2VyX2lkIixVZDoiZGVsaXZlcnlfcG9zdGFsX2NvZGUiLGl1OiJfdGFnX2ZpcmluZ19kZWxheSIsanU6Il90YWdfZmlyaW5nX3RpbWUiLGt1OiJ0ZW1wb3JhcnlfY2xpZW50X2lkIixRaToidGVzdG9ubHkiLHJxOiJfdGltZXpvbmUiLFBlOiJ0b3Btb3N0X3VybCIsUWU6InRyYWNraW5nX2lkIixSaToidHJhZmZpY190eXBlIiwKUGE6InRyYW5zYWN0aW9uX2lkIixkbToidHJhbnNhY3Rpb25faWRfc291cmNlIix5YzoidHJhbnNwb3J0X3VybCIsc3E6InRyaXBfdHlwZSIsVmQ6InVwZGF0ZSIsemM6InVybF9wYXNzdGhyb3VnaCIsZm06InVwdGdzIixjZzoiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIixkZzoiX3VzZXJfYWdlbnRfYml0bmVzcyIsZWc6Il91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0IixmZzoiX3VzZXJfYWdlbnRfbW9iaWxlIixnZzoiX3VzZXJfYWdlbnRfbW9kZWwiLGhnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybSIsaWc6Il91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iLGpnOiJfdXNlcl9hZ2VudF93b3c2NCIsQWM6InVzZXJfZGF0YSIsZ206InVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiLGhtOiJ1c2VyX2RhdGFfYXV0b19tZXRhIixpbToidXNlcl9kYXRhX2F1dG9fbXVsdGkiLGptOiJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiLGttOiJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiLEJjOiJ1c2VyX2RhdGFfbW9kZSIsCmxtOiJ1c2VyX2RhdGFfc2V0dGluZ3MiLGZiOiJ1c2VyX2lkIixXZDoidXNlcl9wcm9wZXJ0aWVzIixvbToiX3VzZXJfcmVnaW9uIixrZzoidXNfcHJpdmFjeV9zdHJpbmciLFFhOiJ2YWx1ZSIscW06IndicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsZWQ6Il9mcG1fcGFyYW1ldGVycyIsV2k6Il9ob3N0X25hbWUiLFZtOiJfaW5fcGFnZV9jb21tYW5kIixZaToiX2lwX292ZXJyaWRlIixabToiX2lzX3Bhc3N0aHJvdWdoX2NpZCIsSmg6Il9tZWFzdXJlbWVudF90eXBlIixkZToibm9uX3BlcnNvbmFsaXplZF9hZHMiLG9qOiJfc3N0X3BhcmFtZXRlcnMiLFlxOiJzZ3RtX2dlb191c2VyX2NvdW50cnkiLEdkOiJjb252ZXJzaW9uX2xhYmVsIix6YToicGFnZV9sb2NhdGlvbiIsV2M6Il9leHRyYWN0ZWRfZGF0YSIsWGM6Imdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIixPZToidGNfcHJpdmFjeV9zdHJpbmcifX07dmFyIEg9e0o6e1NvOiJhYm9ydF93aXRob3V0X2ZhaWwiLGtpOiJhY2NlcHRfYnlfZGVmYXVsdCIsQms6ImFkZF90YWdfdGltaW5nIixEazoiYWRzX2NvbnNlbnRfZ3JhbnRlZCIsdmQ6ImFkc19ldmVudF9wYWdlX3ZpZXciLHdkOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iLFF0OiJhdXRvX2V2ZW50IixLazoiYmF0Y2hfb25fbmF2aWdhdGlvbiIsWGc6ImJpc2NvdHRpX2pvaW5faWQiLFBrOiJjbGllbnRfaWRfc291cmNlIix1ZjoiY29uc2VudF9ldmVudF9pZCIsdmY6ImNvbnNlbnRfcHJpb3JpdHlfaWQiLFN0OiJjb25zZW50X3N0YXRlIixzYToiY29uc2VudF91cGRhdGVkIix3ZjoiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCIsVHQ6ImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiLEdhOiJjb29raWVfb3B0aW9ucyIsb2w6ImRjX3JhbmRvbSIsWnQ6ImRlZHVwZV9pZCIsUGM6ImVtX2V2ZW50IixidToiZW5kcG9pbnRfZm9yX2RlYnVnIix0bDoiZW5oYW5jZWRfY2xpZW50X2lkX3NvdXJjZSIsCnBwOiJlbmhhbmNlZF9tYXRjaF9yZXN1bHQiLHJtOiJldWlkX2xvZ2dlZF9pbl9zdGF0ZSIsbGc6ImV1aWRfbW9kZV9lbmFibGVkIix0cToiZXZlbnRfcHJvdmVuYW5jZSIsbXU6ImV2ZW50X3NvdXJjZSIsRWI6ImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyIsd206ImV2ZW50X3VzYWdlIixDaDoiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIixwdToiYWRkX3BhcmFtZXRlciIsVWk6ImNvdW50aW5nX21ldGhvZCIsRGg6InNlbmRfYXNfaWZyYW1lIixxdToicGFyYW1ldGVyX29yZGVyIixFaDoicGFyc2VkX3RhcmdldCIsc3U6ImZvcm1fZXZlbnRfY2FuY2VsZWQiLEFxOiJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iLFZpOiJnYTRfcmVxdWVzdF9mbGFncyIsTm06ImdicmFpZF9jb29raWVfbWFya2VkIixRbToiZ3RtX2V4dHJhY3RlZF9kYXRhIixDYzoiaGFuZGxlX2ludGVybmFsbHkiLHV1OiJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyIsZGE6ImhpdF90eXBlIixEYzoiaGl0X3R5cGVfb3ZlcnJpZGUiLApIcToiaWdub3JlX2R1cGVfY29uZmlnIixPdToiaXNfY29uZmlnX2NvbW1hbmQiLEdoOiJpc19jb25zZW50X3VwZGF0ZSIsbWc6ImlzX2NvbnZlcnNpb24iLFdtOiJpc19lY29tbWVyY2UiLFhtOiJpc19lY19jbV9zcGxpdCIsYWU6ImlzX2V4dGVybmFsX2V2ZW50IixuZzoiaXNfZmlyc3RfdmlzaXQiLFltOiJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIixaaToiaXNfZmxfZmFsbGJhY2tfY29udmVyc2lvbl9mbG93X2FsbG93ZWQiLGZkOiJpc19mcG1fZW5jcnlwdGlvbiIsYWo6ImlzX2ZwbV9zcGxpdCIsb2I6ImlzX2djcF9icm93c2VyIixiajoiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiLGNqOiJpc19nb29nbGVfc2lnbmFsc19lbmFibGVkIixiZToiaXNfbWVyY2hhbnRfY2VudGVyIixIaDoiaXNfbmV3X3RvX3NpdGUiLEVjOiJpc19wZXJzb25hbGl6YXRpb24iLGRqOiJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiIsVGU6ImlzX3Nlc3Npb25fc3RhcnQiLGJuOiJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iLApQdToiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIixRdToiaXNfc2d0bV9wcmVoaXQiLGRuOiJpc19zZ3RtX3NlcnZpY2Vfd29ya2VyIixJaDoiaXNfc3BsaXRfY29udmVyc2lvbiIsSXE6ImlzX3N5biIsRmM6ImlzX3Rlc3RfZXZlbnQiLG9nOiJqb2luX2lkIixlajoiam9pbl9lbGFwc2VkIixwZzoiam9pbl90aW1lcl9zZWMiLGduOiJsb2NhbF9zdG9yYWdlX2F3X2NvbnZlcnNpb25fY291bnRlcnMiLFdlOiJ0dW5uZWxfdXBkYXRlZCIsVXU6InByZWhpdF9mb3JfcmV0cnkiLFd1OiJwcm9taXNlcyIsWHU6InJlY29yZF9hd19sYXRlbmN5IixYZToicmVkYWN0X2Fkc19kYXRhIixZZToicmVkYWN0X2NsaWNrX2lkcyIscG46InJlbWFya2V0aW5nX29ubHkiLGxqOiJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIixoZDoic2VuZF9kb3VibGVjbGlja19qb2luIixNaDoic2VuZF9mcG1fZ2VvX2pvaW4iLE5oOiJzZW5kX2ZwbV9nb29nbGVfam9pbiIsWnU6InNlbmRfY2NtX3BhcmFsbGVsX3Rlc3RfcGluZyIsCnJuOiJzZW5kX2dvb2dsZV9tZWFzdXJlbWVudCIscmc6InNlbmRfdGxkX2pvaW4iLHNnOiJzZW5kX3RvX2Rlc3RpbmF0aW9ucyIsbWo6InNlbmRfdG9fdGFyZ2V0cyIsc246InNlbmRfdXNlcl9kYXRhX2hpdCIscGo6InNlcnZpY2Vfd29ya2VyX2NvbnRleHQiLE5iOiJzb3VyY2VfY2Fub25pY2FsX2lkIixKYToic3BlY3VsYXRpdmUiLHluOiJzcGVjdWxhdGl2ZV9pbl9tZXNzYWdlIixBbjoic3VwcHJlc3Nfc2NyaXB0X2xvYWQiLEJuOiJzeW5fb3JfbW9kIix6ajoidHJhbnNpZW50X2Vjc2lkIix0ZzoidHJhbnNtaXNzaW9uX3R5cGUiLFlhOiJ1c2VyX2RhdGEiLGd2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiLGh2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIixHbjoidXNlcl9kYXRhX2Zyb21fY29kZSIsaXI6InVzZXJfZGF0YV9mcm9tX21hbnVhbCIsanY6InVzZXJfZGF0YV9tb2RlIix1ZzoidXNlcl9pZF91cGRhdGVkIn19O3ZhciBKPXtVOntrcDoxLG1wOjIsRW46Myxubjo0LHFsOjUscmw6NixFcTo3LG5wOjgsRHE6OSxqcDoxMCxocDoxMSx4bjoxMix2bjoxMyxOazoxNCxVbzoxNSxXbzoxNixobjoxNyxzbDoxOCxmbjoxOSxscDoyMCxQcToyMSxhcDoyMixWbzoyMyxYbzoyNCxubDoyNSxMazoyNixlcjoyNyxKbToyOCxVbToyOSxUbTozMCxTbTozMSxNbTozMixLbTozMyxMbTozNCxHbTozNSxGbTozNixIbTozNyxJbTozOCxCcTozOSxDcTo0MCxVcTo0MX19O0ouVVtKLlUua3BdPSJDUkVBVEVfRVZFTlRfU09VUkNFIjtKLlVbSi5VLm1wXT0iRURJVF9FVkVOVCI7Si5VW0ouVS5Fbl09IlRSQUZGSUNfVFlQRSI7Si5VW0ouVS5ubl09IlJFRkVSUkFMX0VYQ0xVU0lPTiI7Si5VW0ouVS5xbF09IkVDT01NRVJDRV9GUk9NX0dUTV9UQUciO0ouVVtKLlUucmxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVUFfU0NIRU1BIjtKLlVbSi5VLkVxXT0iR0FfU0VORCI7Si5VW0ouVS5ucF09IkVNX0ZPUk0iOwpKLlVbSi5VLkRxXT0iR0FfR0FNX0xJTksiO0ouVVtKLlUuanBdPSJDUkVBVEVfRVZFTlRfQVVUT19QQUdFX1BBVEgiO0ouVVtKLlUuaHBdPSJDUkVBVEVEX0VWRU5UIjtKLlVbSi5VLnhuXT0iU0lERUxPQURFRCI7Si5VW0ouVS52bl09IlNHVE1fTEVHQUNZX0NPTkZJR1VSQVRJT04iO0ouVVtKLlUuTmtdPSJDQ0RfRU1fRVZFTlQiO0ouVVtKLlUuVW9dPSJBVVRPX1JFREFDVF9FTUFJTCI7Si5VW0ouVS5Xb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNIjtKLlVbSi5VLmhuXT0iTVVMVElQTEVfUEFHRVZJRVdfRlJPTV9DT05GSUciO0ouVVtKLlUuc2xdPSJFTV9FVkVOVF9TRU5UX0JFRk9SRV9DT05GSUciO0ouVVtKLlUuZm5dPSJMT0FERURfVklBX0NTVF9PUl9TSURFTE9BRElORyI7Si5VW0ouVS5scF09IkRFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuUHFdPSJOT05fREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5hcF09IkNDRF9FVkVOVF9TR1RNIjsKSi5VW0ouVS5Wb109IkFVVE9fUkVEQUNUX0VNQUlMX1NHVE0iO0ouVVtKLlUuWG9dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTV9TR1RNIjtKLlVbSi5VLm5sXT0iREFJTFlfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5Ma109IkJVUlNUX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuZXJdPSJTSEFSRURfVVNFUl9JRF9TRVRfQUZURVJfUkVRVUVTVCI7Si5VW0ouVS5KbV09IkdBNF9NVUxUSVBMRV9TRVNTSU9OX0NPT0tJRVMiO0ouVVtKLlUuVW1dPSJJTlZBTElEX0dBNF9TRVNTSU9OX0NPVU5UIjtKLlVbSi5VLlRtXT0iSU5WQUxJRF9HQTRfTEFTVF9FVkVOVF9USU1FU1RBTVAiO0ouVVtKLlUuU21dPSJJTlZBTElEX0dBNF9KT0lOX1RJTUVSIjtKLlVbSi5VLk1tXT0iR0E0X1NUQUxFX1NFU1NJT05fQ09PS0lFX1NFTEVDVEVEIjtKLlVbSi5VLkttXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMV9SRUFEIjtKLlVbSi5VLkxtXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMl9SRUFEIjsKSi5VW0ouVS5HbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BVkFJTEFCTEUiO0ouVVtKLlUuRm1dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVBQTElFRCI7Si5VW0ouVS5IbV09IkdBNF9HT09HTEVfTUVBU1VSRU1FTlRfQUxMT1dFRCI7Si5VW0ouVS5JbV09IkdBNF9HT09HTEVfU0lHTkFMU19FTkFCTEVEIjtKLlVbSi5VLkJxXT0iR0E0X0ZBTExCQUNLX1JFUVVFU1QiO0ouVVtKLlUuQ3FdPSJHQV9BRFNfTElOS19CRUZPUkVfQ09OVkVSU0lPTl9NQVJLSU5HIjtKLlVbSi5VLlVxXT0iUExBVElOVU1fRUxJR0lCTEUiO3ZhciB4Zz17fSx5Zz0oeGcudWFhPSEwLHhnLnVhYj0hMCx4Zy51YWZ2bD0hMCx4Zy51YW1iPSEwLHhnLnVhbT0hMCx4Zy51YXA9ITAseGcudWFwdj0hMCx4Zy51YXc9ITAseGcpOwp2YXIgRWc9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YSxlPWJbY107aWYoIUNnLmV4ZWMoZSkpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IHdpbGRjYXJkIik7dmFyIGY9ZS5pbmRleE9mKCIuKiIpLGc9ZiE9PS0xJiZmPT09ZS5sZW5ndGgtMixoPWc/ZS5zbGljZSgwLGUubGVuZ3RoLTIpOmUsbDthOmlmKGQubGVuZ3RoPT09MClsPSExO2Vsc2V7Zm9yKHZhciBuPWQuc3BsaXQoIi4iKSxwPTA7cDxuLmxlbmd0aDtwKyspaWYoIURnLmV4ZWMobltwXSkpe2w9ITE7YnJlYWsgYX1sPSEwfWlmKCFsfHxoLmxlbmd0aD5kLmxlbmd0aHx8IWcmJmQubGVuZ3RoIT09ZS5sZW5ndGg/MDpnP1NiKGQsaCkmJihkPT09aHx8ZC5jaGFyQXQoaC5sZW5ndGgpPT09Ii4iKTpkPT09aClyZXR1cm4hMH1yZXR1cm4hMX0sRGc9L15bYS16JF9dW1x3LSRdKiQvaSxDZz0vXig/OlthLXpfJF1bYS16LV8kMC05XSpcLikqW2Etel8kXVthLXotXyQwLTldKig/OlwuXCopPyQvaTsKdmFyIEZnPVsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdO2Z1bmN0aW9uIEdnKGEsYil7aWYoIWEpcmV0dXJuITE7dHJ5e2Zvcih2YXIgYz0wO2M8RmcubGVuZ3RoO2MrKyl7dmFyIGQ9RmdbY107aWYoYVtkXSE9bnVsbClyZXR1cm4gYVtkXShiKX19Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEhnKGEsYil7dmFyIGM9U3RyaW5nKGEpLGQ9U3RyaW5nKGIpLGU9Yy5sZW5ndGgtZC5sZW5ndGg7cmV0dXJuIGU+PTAmJmMuaW5kZXhPZihkLGUpPT09ZX1mdW5jdGlvbiBJZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuc3BsaXQoIiwiKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9CmZ1bmN0aW9uIEpnKGEsYixjLGQpe3ZhciBlPWM/ImkiOnZvaWQgMDt0cnl7dmFyIGY9U3RyaW5nKGIpK1N0cmluZyhlKSxnPWQ9PW51bGw/dm9pZCAwOmQuZ2V0KGYpO2d8fChnPW5ldyBSZWdFeHAoYixlKSxkPT1udWxsfHxkLnNldChmLGcpKTtyZXR1cm4gZy50ZXN0KGEpfWNhdGNoKGgpe3JldHVybiExfX1mdW5jdGlvbiBLZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuaW5kZXhPZihTdHJpbmcoYikpPj0wfWZ1bmN0aW9uIExnKGEsYil7cmV0dXJuIFN0cmluZyhhKT09PVN0cmluZyhiKX1mdW5jdGlvbiBNZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+PU51bWJlcihiKX1mdW5jdGlvbiBOZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8PU51bWJlcihiKX1mdW5jdGlvbiBPZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+TnVtYmVyKGIpfWZ1bmN0aW9uIFBnKGEsYil7cmV0dXJuIE51bWJlcihhKTxOdW1iZXIoYil9CmZ1bmN0aW9uIFFnKGEsYil7cmV0dXJuIFNiKFN0cmluZyhhKSxTdHJpbmcoYikpfTtmdW5jdGlvbiBYZyhhKXt2YXIgYj1hLnNlYXJjaDtyZXR1cm4gYS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYS5wYXRobmFtZSsoYj9iKyImcmljaHNzdHNzZSI6Ij9yaWNoc3N0c3NlIil9O3ZhciBZZz1mdW5jdGlvbigpe3RoaXMuUj0iIn0sJGc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1iLmZhbGxiYWNrX3VybCxkPWIuZmFsbGJhY2tfdXJsX21ldGhvZDtpZihjJiZkKXt2YXIgZT17fTtaZyhhLChlW2RdPVtjXSxlLm9wdGlvbnM9e30sZSkpfX19LGFoPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO3R5cGVvZiBmPT09InN0cmluZyImJmMoZixiKX19LFpnPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9Q2QoYi5vcHRpb25zKT9iLm9wdGlvbnM6e30sZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWJbZl07c3dpdGNoKGYpe2Nhc2UgInNlbmRfcGl4ZWwiOmFoKGcsYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSyhoLGwpfSk7YnJlYWs7Y2FzZSAiZmV0Y2giOmFoKGcsCmMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLkgoaCxsKX0pfX19O3ZhciBiaD0vXihbYS16XVthLXowLTldKik6KCF8XD8pKFwqfHN0cmluZ3xib29sZWFufG51bWJlcnxGbnxQaXhpZU1hcHxMaXN0fE9wYXF1ZVZhbHVlKSQvaSxjaD17Rm46ImZ1bmN0aW9uIixQaXhpZU1hcDoiT2JqZWN0IixMaXN0OiJBcnJheSJ9OwpmdW5jdGlvbiBkaChhLGIpe2Zvcih2YXIgYz1bImlucHV0OiEqIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1iaC5leGVjKGNbZF0pO2lmKCFlKXRocm93IEVycm9yKCJJbnRlcm5hbCBFcnJvciBpbiAiK2EpO3ZhciBmPWVbMV0sZz1lWzJdPT09IiEiLGg9ZVszXSxsPWJbZF07aWYobD09bnVsbCl7aWYoZyl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIFJlcXVpcmVkIGFyZ3VtZW50ICIrZisiIG5vdCBzdXBwbGllZC4iKTt9ZWxzZSBpZihoIT09IioiKXt2YXIgbj10eXBlb2YgbDtsIGluc3RhbmNlb2YgS2Q/bj0iRm4iOmwgaW5zdGFuY2VvZiBHZD9uPSJMaXN0IjpsIGluc3RhbmNlb2Yga2I/bj0iUGl4aWVNYXAiOmwgaW5zdGFuY2VvZiBTZD9uPSJQaXhpZVByb21pc2UiOmwgaW5zdGFuY2VvZiBQZCYmKG49Ik9wYXF1ZVZhbHVlIik7aWYobiE9PWgpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBBcmd1bWVudCAiK2YrIiBoYXMgdHlwZSAiKygoY2hbbl18fG4pKyIsIHdoaWNoIGRvZXMgbm90IG1hdGNoIHJlcXVpcmVkIHR5cGUgIikrCigoY2hbaF18fGgpKyIuIikpO319fWZ1bmN0aW9uIEsoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyBpbnN0YW5jZW9mIEtkP2QucHVzaCgiZnVuY3Rpb24iKTpnIGluc3RhbmNlb2YgR2Q/ZC5wdXNoKCJBcnJheSIpOmcgaW5zdGFuY2VvZiBrYj9kLnB1c2goIk9iamVjdCIpOmcgaW5zdGFuY2VvZiBTZD9kLnB1c2goIlByb21pc2UiKTpnIGluc3RhbmNlb2YgUGQ/ZC5wdXNoKCJPcGFxdWVWYWx1ZSIpOmQucHVzaCh0eXBlb2YgZyl9cmV0dXJuIEVycm9yKCJBcmd1bWVudCBlcnJvciBpbiAiK2ErIi4gRXhwZWN0ZWQgYXJndW1lbnQgdHlwZXMgWyIrKGIuam9pbigiLCIpKyJdLCBidXQgcmVjZWl2ZWQgWyIpKyhkLmpvaW4oIiwiKSsiXS4iKSl9ZnVuY3Rpb24gZWgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBrYn1mdW5jdGlvbiBmaChhKXtyZXR1cm4gZWgoYSl8fGE9PT1udWxsfHxnaChhKX0KZnVuY3Rpb24gaGgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBLZH1mdW5jdGlvbiBpaChhKXtyZXR1cm4gaGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBqaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEdkfWZ1bmN0aW9uIGtoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgUGR9ZnVuY3Rpb24gbGgoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gbWgoYSl7cmV0dXJuIGxoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gbmgoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifWZ1bmN0aW9uIG9oKGEpe3JldHVybiBuaChhKXx8Z2goYSl9ZnVuY3Rpb24gcGgoYSl7cmV0dXJuIG5oKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gcWgoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9ZnVuY3Rpb24gZ2goYSl7cmV0dXJuIGE9PT12b2lkIDB9O2Z1bmN0aW9uIHJoKGEpe3JldHVybiIiK2F9CmZ1bmN0aW9uIHNoKGEsYil7dmFyIGM9W107cmV0dXJuIGN9O2Z1bmN0aW9uIHRoKGEsYil7dmFyIGM9bmV3IEtkKGEsZnVuY3Rpb24oKXtmb3IodmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdPXRoaXMuZXZhbHVhdGUoZFtlXSk7dHJ5e3JldHVybiBiLmFwcGx5KHRoaXMsZCl9Y2F0Y2goZyl7dGhyb3cgY2IoZyk7fX0pO2MuWmEoKTtyZXR1cm4gY30KZnVuY3Rpb24gdWgoYSxiKXt2YXIgYz1uZXcga2IsZDtmb3IoZCBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWJbZF07eWIoZSk/Yy5zZXQoZCx0aChhKyJfIitkLGUpKTpDZChlKT9jLnNldChkLHVoKGErIl8iK2QsZSkpOihBYihlKXx8emIoZSl8fHR5cGVvZiBlPT09ImJvb2xlYW4iKSYmYy5zZXQoZCxlKX1jLlphKCk7cmV0dXJuIGN9O2Z1bmN0aW9uIHdoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0QXBpU3ViamVjdCIsCmMpfTtmdW5jdGlvbiB4aChhLGIpe2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgU2QpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IGFjdHVhbCBjYW5ub3QgaGF2ZSB0eXBlIFByb21pc2UuIEFzc2VydGlvbnMgb24gYXN5bmNocm9ub3VzIGNvZGUgYXJlbid0IHN1cHBvcnRlZC4iKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0VGhhdFN1YmplY3QiLGMpfTtmdW5jdGlvbiB5aChhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGI9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGM9W10sZD10aGlzLlQsZT0wO2U8Yi5sZW5ndGg7KytlKWMucHVzaChUZChiW2VdLGQpKTtyZXR1cm4gVWQoYS5hcHBseShudWxsLGMpKX19ZnVuY3Rpb24gemgoKXtmb3IodmFyIGE9TWF0aCxiPUFoLGM9e30sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2EuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPXloKGFbZV0uYmluZChhKSkpfXJldHVybiBjfTtmdW5jdGlvbiBCaChhKXtyZXR1cm4gYSE9bnVsbCYmU2IoYSwiX19jdnRfIil9O2Z1bmN0aW9uIENoKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBEaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRWgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUkkoYSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gRmgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGEpKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBHaChhLGIpe3ZhciBjPSExO3ZhciBkPUpTT04ucGFyc2UoYSk7aWYoIWQpdGhyb3cgRXJyb3IoIkludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIHN0cmluZyB3YXMgZ2l2ZW4uIik7Yz1IaChkLGIpO3JldHVybiBjfQp2YXIgSWg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7aWYoYT09PXZvaWQgMClyZXR1cm47YT1hW2JbY11dfXJldHVybiBhfSxKaD1mdW5jdGlvbihhLGIpe3ZhciBjPWIucHJlSGl0O2lmKGMpe3ZhciBkPWFbMF07c3dpdGNoKGQpe2Nhc2UgImhpdERhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldEhpdERhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAibWV0YWRhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldE1ldGFkYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgImV2ZW50TmFtZSI6cmV0dXJuIGMuZ2V0RXZlbnROYW1lKCk7Y2FzZSAiZGVzdGluYXRpb25JZCI6cmV0dXJuIGMuZ2V0RGVzdGluYXRpb25JZCgpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoZCsiIGlzIG5vdCBhIHZhbGlkIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkXG4gICAgICAgICAgICAgICAgICAgICAgZnJvbSBQcmVIaXQgZGF0YS4iKTt9fX0sCktoPWZ1bmN0aW9uKGEsYil7aWYoYSl7aWYoYS5jb250ZXh0VmFsdWUhPT12b2lkIDApe3ZhciBjO2E6e3ZhciBkPWEuY29udGV4dFZhbHVlLGU9ZC5rZXlQYXJ0cztpZihlJiZlLmxlbmd0aCE9PTApe3ZhciBmPWQubmFtZXNwYWNlVHlwZTtzd2l0Y2goZil7Y2FzZSAxOmM9SmgoZSxiKTticmVhayBhO2Nhc2UgMjp2YXIgZz1iLm1hY3JvO2M9Zz9nW2VbMF1dOnZvaWQgMDticmVhayBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlIFR5cGUgdXNlZDogIitmKTt9fWM9dm9pZCAwfXJldHVybiBjfWlmKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSE9PXZvaWQgMClyZXR1cm4gSGgoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlLGIpO2lmKGEuYm9vbGVhblZhbHVlIT09dm9pZCAwKXJldHVybiEhYS5ib29sZWFuVmFsdWU7aWYoYS5zdHJpbmdWYWx1ZSE9PXZvaWQgMClyZXR1cm4gU3RyaW5nKGEuc3RyaW5nVmFsdWUpO2lmKGEuaW50ZWdlclZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5pbnRlZ2VyVmFsdWUpOwppZihhLmRvdWJsZVZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5kb3VibGVWYWx1ZSk7dGhyb3cgRXJyb3IoIlVua25vd24gZmllbGQgdXNlZCBmb3IgdmFyaWFibGUgb2YgdHlwZSBFeHByZXNzaW9uVmFsdWU6IithKTt9fSxIaD1mdW5jdGlvbihhLGIpe3ZhciBjPWEuYXJncztpZighQXJyYXkuaXNBcnJheShjKXx8Yy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJhcmdzIjonK2MrIiBwcm9wZXJ0eSB0b1xuICAgICAgICAgYmUgbm9uLWVtcHR5IGFycmF5LiIpO3ZhciBkPWZ1bmN0aW9uKGcpe3JldHVybiBLaChnLGIpfTtzd2l0Y2goYS50eXBlKXtjYXNlIDE6Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspaWYoZChjW2VdKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlIDI6Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoIWQoY1tmXSkpcmV0dXJuITE7cmV0dXJuIGMubGVuZ3RoPjA7Y2FzZSAzOnJldHVybiFkKGNbMF0pOwpjYXNlIDQ6cmV0dXJuIEpnKGQoY1swXSksZChjWzFdKSwhMSxiLnJlZ2V4Q2FjaGUpO2Nhc2UgNTpyZXR1cm4gTGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDY6cmV0dXJuIFFnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA3OnJldHVybiBIZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgODpyZXR1cm4gS2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDk6cmV0dXJuIFBnKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMDpyZXR1cm4gTmcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDExOnJldHVybiBPZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTI6cmV0dXJuIE1nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMzpyZXR1cm4gSWcoZChjWzBdKSxTdHJpbmcoZChjWzFdKSkpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgInR5cGUiIHByb3BlcnR5IHRvYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIGxlc3MgdGhhbiAxNC4nKTt9fTsKZnVuY3Rpb24gTGgoYSl7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt9O2Z1bmN0aW9uIE1oKGEpe3ZhciBiPVRkKGEpO3JldHVybiBuZyhiPyIiK2I6IiIpfTtmdW5jdGlvbiBOaChhLGIpe2lmKCFxaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiLCJudW1iZXIiXSxhcmd1bWVudHMpO3JldHVybiBEYihhLGIpfTtmdW5jdGlvbiBPaCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTtmdW5jdGlvbiBQaChhKXtpZihhPT09bnVsbClyZXR1cm4ibnVsbCI7aWYoYSBpbnN0YW5jZW9mIEdkKXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIEtkKXJldHVybiJmdW5jdGlvbiI7aWYoYSBpbnN0YW5jZW9mIFBkKXt2YXIgYj1hLmdldFZhbHVlKCk7aWYoKGI9PW51bGw/dm9pZCAwOmIuY29uc3RydWN0b3IpPT09dm9pZCAwfHxiLmNvbnN0cnVjdG9yLm5hbWU9PT12b2lkIDApe3ZhciBjPVN0cmluZyhiKTtyZXR1cm4gYy5zdWJzdHJpbmcoOCxjLmxlbmd0aC0xKX1yZXR1cm4gU3RyaW5nKGIuY29uc3RydWN0b3IubmFtZSl9cmV0dXJuIHR5cGVvZiBhfTtmdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGMpe3JldHVybiBmdW5jdGlvbihkKXt0cnl7cmV0dXJuIGMoZCl9Y2F0Y2goZSl7KGxnfHxtZy5QbykmJmEuY2FsbCh0aGlzLGUubWVzc2FnZSl9fX1yZXR1cm57cGFyc2U6YihmdW5jdGlvbihjKXtyZXR1cm4gVWQoSlNPTi5wYXJzZShjKSl9KSxzdHJpbmdpZnk6YihmdW5jdGlvbihjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVGQoYykpfSkscHVibGljTmFtZToiSlNPTiJ9fTtmdW5jdGlvbiBSaChhKXtyZXR1cm4gSWIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gU2goYSl7cmV0dXJuIE51bWJlcihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBUaChhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBVaChhLGIsYyl7dmFyIGQ9bnVsbCxlPSExO3JldHVybiBlP2Q6bnVsbH07dmFyIEFoPSJmbG9vciBjZWlsIHJvdW5kIG1heCBtaW4gYWJzIHBvdyBzcXJ0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFZoKCl7dmFyIGE9e307cmV0dXJue1dyOmZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpP2FbYl06dm9pZCAwfSxLbzpmdW5jdGlvbihiLGMpe2FbYl09Y30scmVzZXQ6ZnVuY3Rpb24oKXthPXt9fX19ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2QucHJvdG90eXBlLmludm9rZS5hcHBseShhLFtiXS5jb25jYXQodyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKSl9fQpmdW5jdGlvbiBYaChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt9CmZ1bmN0aW9uIFloKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIlBpeGllTWFwIl0sYXJndW1lbnRzKTt9O3ZhciBaaD17fTt2YXIgJGg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2lmKGEgaW5zdGFuY2VvZiBHZClmb3IodmFyIGM9YS5GYSgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTthLmhhcyhlKSYmYi5zZXQoZSxhLmdldChlKSl9ZWxzZSBpZihhIGluc3RhbmNlb2YgS2QpZm9yKHZhciBmPWEuRmEoKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107Yi5zZXQoaCxhLmdldChoKSl9ZWxzZSBmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyliLnNldChsLGFbbF0pO3JldHVybiBifTsKWmgua2V5cz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLkZhKCkpO3JldHVybiBuZXcgR2R9OwpaaC52YWx1ZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5oYygpKTtyZXR1cm4gbmV3IEdkfTsKWmguZW50cmllcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmZjKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBuZXcgR2QoYil9KSk7cmV0dXJuIG5ldyBHZH07ClpoLmZyZWV6ZT1mdW5jdGlvbihhKXsoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkKSYmYS5aYSgpO3JldHVybiBhfTtaaC5kZWxldGU9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2Yga2ImJiFhLkhiKCkpcmV0dXJuIGEucmVtb3ZlKGIpLCEwO3JldHVybiExfTtmdW5jdGlvbiBMKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9YS5ULnhiKCk7aWYoIWQpdGhyb3cgRXJyb3IoIk1pc3NpbmcgcHJvZ3JhbSBzdGF0ZS4iKTtpZihkLml0KXt0cnl7ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfWNhdGNoKGUpe3Rocm93IHNiKCJUQUdHSU5HIiwyMSksZTt9cmV0dXJufWQuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX07dmFyIGFpPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49ITA7fTthaS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250YWlucyhhKT90aGlzLktbYV06dm9pZCAwO3JldHVybiBjfTthaS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSy5oYXNPd25Qcm9wZXJ0eShhKX07CmFpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKHRoaXMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYW4gQVBJIHdpdGggYW4gZXhpc3RpbmcgcHJpdmF0ZSBBUEkgbmFtZTogIithKyIuIik7dGhpcy5LW2FdPWM/dm9pZCAwOnliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9O2Z1bmN0aW9uIGNpKCl7dmFyIGE9e307CnJldHVybiBhfTt2YXIgZGk9e30sZWk9KGRpW0YuRC5zYV09ImdjdSIsZGlbRi5ELmVoXT0iZXB0IixkaVtGLkQuU2JdPSJnY2xnYiIsZGlbRi5ELmxiXT0iZ2NsYXciLGRpW0YuRC56bF09ImdjbGlkX2xlbiIsZGlbRi5ELkJlXT0iZ2NsZ3MiLGRpW0YuRC5DZV09ImdjbGxwIixkaVtGLkQuRGVdPSJnY2xzdCIsZGlbRi5ELkVkXT0iYXVpZCIsZGlbRi5ELkJsXT0iYWUiLGRpW0YuRC5DZl09ImRzY250IixkaVtGLkQuRGZdPSJmY250ciIsZGlbRi5ELkVmXT0iZmxuZyIsZGlbRi5ELkZmXT0ibWlkIixkaVtGLkQud2ldPSJidHR5cGUiLGRpW0YuRC5LYl09ImdhY2lkIixkaVtGLkQuR2RdPSJsYWJlbCIsZGlbRi5ELkZlXT0iY2FwaSIsZGlbRi5ELmpoXT0icHNjZGwiLGRpW0YuRC5lYl09ImN1cnJlbmN5X2NvZGUiLGRpW0YuRC5HZV09InZkbHR2IixkaVtGLkQua2hdPSJjbG9jdCIsZGlbRi5ELkVsXT0iX2RiZyIsZGlbRi5ELkllXT0ib2VkZWxkIixkaVtGLkQuVmNdPSJlZGlkIixkaVtGLkQuTWRdPSJldm5pZCIsCmRpW0YuRC5FaV09ImV2amlkIixkaVtGLkQuTmRdPSJleGNpZCIsZGlbRi5ELnJoXT0iZ2FjIixkaVtGLkQuSmVdPSJnYWNnYiIsZGlbRi5ELk1sXT0iZ2FjbWNvdiIsZGlbRi5ELktlXT0iZ2RwciIsZGlbRi5ELlhjXT0iZ2RpZCIsZGlbRi5ELkxlXT0iX25nIixkaVtGLkQuY3FdPSJfb25vIixkaVtGLkQudGhdPSJncHBfc2lkIixkaVtGLkQudWhdPSJncHAiLGRpW0YuRC5QbF09ImdzYWV4cCIsZGlbRi5ELlZmXT0iX3R1IixkaVtGLkQuTWVdPSJmcm0iLGRpW0YuRC5LaV09Imd0bV91cCIsZGlbRi5ELlBkXT0ibHBzIixkaVtGLkQuTGldPSJkaWQiLGRpW0YuRC5RZF09ImZjbnRyIixkaVtGLkQuUmRdPSJmbG5nIixkaVtGLkQuU2RdPSJtaWQiLGRpW0YuRC5OZV09dm9pZCAwLGRpW0YuRC5NYl09InRpYmEiLGRpW0YuRC5XYl09InJkcCIsZGlbRi5ELnhjXT0iZWNzaWQiLGRpW0YuRC5aZl09ImdhX3VpZCIsZGlbRi5ELlVkXT0iZGVsb3BjIixkaVtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLApkaVtGLkQuUGFdPSJvaWQiLGRpW0YuRC5kbV09Im9pZHNyYyIsZGlbRi5ELmZtXT0idXB0Z3MiLGRpW0YuRC5jZ109InVhYSIsZGlbRi5ELmRnXT0idWFiIixkaVtGLkQuZWddPSJ1YWZ2bCIsZGlbRi5ELmZnXT0idWFtYiIsZGlbRi5ELmdnXT0idWFtIixkaVtGLkQuaGddPSJ1YXAiLGRpW0YuRC5pZ109InVhcHYiLGRpW0YuRC5qZ109InVhdyIsZGlbRi5ELmdtXT0iZWNfbGF0IixkaVtGLkQuaG1dPSJlY19tZXRhIixkaVtGLkQuaW1dPSJlY19tIixkaVtGLkQuam1dPSJlY19zZWwiLGRpW0YuRC5rbV09ImVjX3MiLGRpW0YuRC5CY109ImVjX21vZGUiLGRpW0YuRC5mYl09InVzZXJJZCIsZGlbRi5ELmtnXT0idXNfcHJpdmFjeSIsZGlbRi5ELlFhXT0idmFsdWUiLGRpW0YuRC5xbV09Im1jb3YiLGRpW0YuRC5XaV09ImhuIixkaVtGLkQuVm1dPSJndG1fZWUiLGRpW0YuRC5ZaV09InVpcCIsZGlbRi5ELkpoXT0ibXQiLGRpW0YuRC5kZV09Im5wYSIsZGlbRi5ELllxXT0ic2dfdWMiLGRpW0YuRC55aV09Cm51bGwsZGlbRi5ELmJkXT1udWxsLGRpW0YuRC50Yl09bnVsbCxkaVtGLkQuSGFdPW51bGwsZGlbRi5ELnphXT1udWxsLGRpW0YuRC5VYV09bnVsbCxkaVtGLkQuUGVdPW51bGwsZGlbRi5ELmVkXT1udWxsLGRpW0YuRC5zaF09bnVsbCxkaVtGLkQuQmRdPW51bGwsZGlbRi5ELkNkXT1udWxsLGRpW0YuRC5maF09bnVsbCxkaVtGLkQuZ2hdPW51bGwsZGlbRi5ELlRhXT1udWxsLGRpW0YuRC5XY109bnVsbCxkaSk7ZnVuY3Rpb24gZmkoYSxiKXtpZihhKXt2YXIgYz1hLnNwbGl0KCJ4Iik7Yy5sZW5ndGg9PT0yJiYoZ2koYiwidV93IixjWzBdKSxnaShiLCJ1X2giLGNbMV0pKX19ZnVuY3Rpb24gaGkoYSl7dmFyIGI9aWk7Yj1iPT09dm9pZCAwP2ppOmI7cmV0dXJuIGtpKGxpKGEsYikpfWZ1bmN0aW9uIGtpKGEpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4iKCIrW21pKGIudmFsdWUpLG1pKGIucXVhbnRpdHkpLG1pKGIuaXRlbV9pZCksbWkoYi5zdGFydF9kYXRlKSxtaShiLmVuZF9kYXRlKV0uam9pbigiKiIpKyIpIn0pLmpvaW4oIiIpfQpmdW5jdGlvbiBsaShhLGIpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXtyZXR1cm57aXRlbV9pZDpiKGMpLHF1YW50aXR5OmMucXVhbnRpdHksdmFsdWU6Yy5wcmljZSxzdGFydF9kYXRlOmMuc3RhcnRfZGF0ZSxlbmRfZGF0ZTpjLmVuZF9kYXRlfX0pfWZ1bmN0aW9uIGppKGEpe3JldHVyblthLml0ZW1faWQsYS5pZCxhLml0ZW1fbmFtZV0uZmluZChmdW5jdGlvbihiKXtyZXR1cm4gYiE9bnVsbH0pfWZ1bmN0aW9uIG5pKGEpe2lmKGEmJmEubGVuZ3RoKXJldHVybiBhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYiYmYi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZT9iLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlOiIifSkuam9pbigiLCIpfWZ1bmN0aW9uIGdpKGEsYixjKXtjPT09dm9pZCAwfHxjPT09bnVsbHx8Yz09PSIiJiYheWdbYl18fChhW2JdPWMpfQpmdW5jdGlvbiBtaShhKXtyZXR1cm4gdHlwZW9mIGEhPT0ibnVtYmVyIiYmdHlwZW9mIGEhPT0ic3RyaW5nIj8iIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIG9pKCl7dGhpcy5ibG9ja1NpemU9LTF9O2Z1bmN0aW9uIHBpKGEsYil7dGhpcy5ibG9ja1NpemU9LTE7dGhpcy5ibG9ja1NpemU9NjQ7dGhpcy5OPVJhLlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLlI9dGhpcy5LPTA7dGhpcy5IPVtdO3RoaXMuZmE9YTt0aGlzLlo9Yjt0aGlzLmphPVJhLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KDY0KTtxaT09PXZvaWQgMCYmKFJhLkludDMyQXJyYXk/cWk9bmV3IEludDMyQXJyYXkocmkpOnFpPXJpKTt0aGlzLnJlc2V0KCl9U2EocGksb2kpO2Zvcih2YXIgc2k9W10sdGk9MDt0aTw2Mzt0aSsrKXNpW3RpXT0wO3ZhciB1aT1bXS5jb25jYXQoMTI4LHNpKTsKcGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSz0wO3ZhciBhO2lmKFJhLkludDMyQXJyYXkpYT1uZXcgSW50MzJBcnJheSh0aGlzLlopO2Vsc2V7dmFyIGI9dGhpcy5aLGM9Yi5sZW5ndGg7aWYoYz4wKXtmb3IodmFyIGQ9QXJyYXkoYyksZT0wO2U8YztlKyspZFtlXT1iW2VdO2E9ZH1lbHNlIGE9W119dGhpcy5IPWF9Owp2YXIgdmk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuTixjPWEuamEsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2Zvcih2YXIgZj0xNjtmPDY0O2YrKyl7dmFyIGc9Y1tmLTE1XXwwLGg9Y1tmLTJdfDA7Y1tmXT0oKGNbZi0xNl18MCkrKChnPj4+N3xnPDwyNSleKGc+Pj4xOHxnPDwxNCleZz4+PjMpfDApKygoY1tmLTddfDApKygoaD4+PjE3fGg8PDE1KV4oaD4+PjE5fGg8PDEzKV5oPj4+MTApfDApfDB9Zm9yKHZhciBsPWEuSFswXXwwLG49YS5IWzFdfDAscD1hLkhbMl18MCxxPWEuSFszXXwwLHI9YS5IWzRdfDAsdD1hLkhbNV18MCx1PWEuSFs2XXwwLHY9YS5IWzddfDAseD0wO3g8NjQ7eCsrKXt2YXIgeT0oKGw+Pj4yfGw8PDMwKV4obD4+PjEzfGw8PDE5KV4obD4+PjIyfGw8PDEwKSkrKGwmbl5sJnBebiZwKXwwLHo9KHYrKChyPj4+NnxyPDwyNileKHI+Pj4xMXxyPDwyMSleKHI+Pj4yNXxyPDw3KSl8CjApKygoKHImdF5+ciZ1KSsocWlbeF18MCl8MCkrKGNbeF18MCl8MCl8MDt2PXU7dT10O3Q9cjtyPXErenwwO3E9cDtwPW47bj1sO2w9eit5fDB9YS5IWzBdPWEuSFswXStsfDA7YS5IWzFdPWEuSFsxXStufDA7YS5IWzJdPWEuSFsyXStwfDA7YS5IWzNdPWEuSFszXStxfDA7YS5IWzRdPWEuSFs0XStyfDA7YS5IWzVdPWEuSFs1XSt0fDA7YS5IWzZdPWEuSFs2XSt1fDA7YS5IWzddPWEuSFs3XSt2fDB9OwpwaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLks7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5OW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApO2Vsc2V7dmFyIGUsZj10eXBlb2YgYTtlPWYhPSJvYmplY3QiP2Y6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6ZjoibnVsbCI7aWYoZT09ImFycmF5Inx8ZT09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKDtjPGI7KXt2YXIgZz1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGcmJjA8PWcmJjI1NT49ZyYmZz09KGd8MCkpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dGhpcy5OW2QrK109ZztkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIHN0cmluZyBvciBhcnJheSIpOwp9dGhpcy5LPWQ7dGhpcy5SKz1ifTtwaS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLlIqODt0aGlzLks8NTY/dGhpcy51cGRhdGUodWksNTYtdGhpcy5LKTp0aGlzLnVwZGF0ZSh1aSx0aGlzLmJsb2NrU2l6ZS0odGhpcy5LLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLk5bY109YiYyNTUsYi89MjU2O3ZpKHRoaXMpO2Zvcih2YXIgZD0wLGU9MDtlPHRoaXMuZmE7ZSsrKWZvcih2YXIgZj0yNDtmPj0wO2YtPTgpYVtkKytdPXRoaXMuSFtlXT4+ZiYyNTU7cmV0dXJuIGF9Owp2YXIgcmk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHFpO2Z1bmN0aW9uIHdpKCl7cGkuY2FsbCh0aGlzLDgseGkpfVNhKHdpLHBpKTt2YXIgeGk9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTt2YXIgeWk9L15bMC05QS1GYS1mXXs2NH0kLztmdW5jdGlvbiB6aShhKXt0cnl7cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpfWNhdGNoKGIpe3JldHVybiBaYihhKX19ZnVuY3Rpb24gQWkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAiKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dmFyIGM7aWYoKGM9Yi5jcnlwdG8pPT1udWxsPzA6Yy5zdWJ0bGUpe2lmKHlpLnRlc3QoYSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt0cnl7dmFyIGQ9emkoYSk7cmV0dXJuIGIuY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIEJpKGUsYil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiJlMiJ9KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMiIpfX1lbHNlIHJldHVybiBQcm9taXNlLnJlc29sdmUoImUxIil9CmZ1bmN0aW9uIENpKGEpe3RyeXt2YXIgYj1uZXcgd2k7Yi51cGRhdGUoemkoYSkpO3JldHVybiBiLmRpZ2VzdCgpfWNhdGNoKGMpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIERpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwInx8eWkudGVzdChhKSlyZXR1cm4gYTt2YXIgYz1DaShhKTtpZihjPT09ImUyIilyZXR1cm4iZTIiO3RyeXtyZXR1cm4gQmkoYyxiKX1jYXRjaChkKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBCaShhLGIpe3ZhciBjPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkKX0pLmpvaW4oIiIpO3JldHVybiBiLmJ0b2EoYykucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX07ZnVuY3Rpb24gRWkoKXtmb3IodmFyIGE9ITEsYj0hMSxjPTA7YT09PWI7KWlmKGE9RGIoMCwxKT09PTAsYj1EYigwLDEpPT09MCxjKyssYz4zMClyZXR1cm47cmV0dXJuIGF9dmFyIEdpPXtzazpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEZpLnNrKGEsYixjKX19LEhpPWZ1bmN0aW9uKCl7dGhpcy5zdHVkaWVzPXt9O3RoaXMuSD1FaX07CkhpLnByb3RvdHlwZS5zaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zdHVkaWVzW2JdO2lmKCEoKGM9PT12b2lkIDA/RGIoMCw5OTk5KTpjJTFFNCk8ZC5wcm9iYWJpbGl0eSooZC5jb250cm9sSWQyPzQ6MikqMUU0KSlyZXR1cm4gYTthOnt2YXIgZT1kLnN0dWR5SWQsZj1kLmV4cGVyaW1lbnRJZCxnPWQuY29udHJvbElkLGg9ZC5jb250cm9sSWQyO2lmKCEoKGEuZXhwfHx7fSlbZl18fChhLmV4cHx8e30pW2ddfHxoJiYoYS5leHB8fHt9KVtoXSkpe3ZhciBsPWMhPT12b2lkIDA/YyUyPT09MDp0aGlzLkgoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sPzA6MTtpZihoKXt2YXIgcD1jIT09dm9pZCAwPyhjPj4xKSUyPT09MDp0aGlzLkgoKTtpZihwPT09dm9pZCAwKWJyZWFrIGE7bnw9KHA/MDoxKTw8MX1uPT09MD9JaShhLGYsZSk6bj09PTE/SWkoYSxnLGUpOm49PT0yJiZJaShhLGgsZSl9fX1yZXR1cm4gYX07CnZhciBLaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0/SmkoYyxiKXx8ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uZXhwZXJpbWVudElkXTohMX0sTGk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWRdOiExfSxNaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQyJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWQyXTohMX0sTmk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5leHB8fHt9LGQ9bShPYmplY3Qua2V5cyhjKS5tYXAoTnVtYmVyKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoY1tmXT09PWIpcmV0dXJuIGZ9fSxKaT1mdW5jdGlvbihhLApiKXtyZXR1cm4hIWEuc3R1ZGllc1tiXS5hY3RpdmV8fGEuc3R1ZGllc1tiXS5wcm9iYWJpbGl0eT4uNX0sSWk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZXhwfHx7fTtkW2JdPWM7YS5leHA9ZH0sRmk9bmV3IEhpO3ZhciBpaj1mdW5jdGlvbigpe3RoaXMuSD1BLmdvb2dsZV90YWdfbWFuYWdlcj1BLmdvb2dsZV90YWdfbWFuYWdlcnx8e319LGpqO2Z1bmN0aW9uIGtqKGEsYil7bGooKTt2YXIgYz1qajtyZXR1cm4gYy5IW2FdPWMuSFthXXx8YigpfWZ1bmN0aW9uIG1qKGEpe2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gbmooYSxiKXtsaigpO2pqLkhbYV09Yn1mdW5jdGlvbiBvaihhKXt2YXIgYj1FKDUpO2xqKCk7dmFyIGM9amo7Yy5IW2JdPWMuSFtiXXx8YX1mdW5jdGlvbiBwaigpe3ZhciBhPUUoMTkpO2xqKCk7dmFyIGI9amo7cmV0dXJuIGIuSFthXT1iLkhbYV18fHt9fWZ1bmN0aW9uIHFqKCl7dmFyIGE9RSgxOSk7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiByaigpe2xqKCk7dmFyIGE9amosYj1hLkguc2VxdWVuY2V8fDE7YS5ILnNlcXVlbmNlPWIrMTtyZXR1cm4gYn1mdW5jdGlvbiBsaigpe2pqfHwoamo9bmV3IGlqKX07dmFyIHNqPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSA0OTE6cmV0dXJuIDEyO2Nhc2UgNDgwOnJldHVybiAxMTtjYXNlIDQ5OTpyZXR1cm4gMTA7Y2FzZSA1MDA6cmV0dXJuIDY7Y2FzZSA0MjE6cmV0dXJuIDk7Y2FzZSA1NjE6cmV0dXJuIDE3O2Nhc2UgNDgyOnJldHVybiAxNTtjYXNlIDU3MDpyZXR1cm4gMTk7Y2FzZSA0OTU6cmV0dXJuIDEzO2Nhc2UgNTE0OnJldHVybiAxNjtjYXNlIDU3MzpyZXR1cm4gMTg7Y2FzZSAyMzU6cmV0dXJuIDg7Y2FzZSA1MzpyZXR1cm4gMTtjYXNlIDU0OnJldHVybiAyO2Nhc2UgNTI6cmV0dXJuIDQ7Y2FzZSA3NTpyZXR1cm4gM319LHRqPWZ1bmN0aW9uKGEsYil7YS5OW2JdPSEwO3ZhciBjPXNqKGIpO2MhPT12b2lkIDAmJihXZltjXT0hMCl9LE09ZnVuY3Rpb24oYSl7cmV0dXJuISF1ai5OW2FdfSx1aj1uZXcgZnVuY3Rpb24oKXt0aGlzLk49W107dGhpcy5LPVtdO3RoaXMuSD1bXTsKdGoodGhpcywxMzIpO3ZhciBhPU5mKDYsNkU0KTtYZlsxXT1hO3ZhciBiPU5mKDcsMSk7WGZbM109Yjt2YXIgYz1OZigzNSw1MCk7WGZbMl09Yzt2YXIgZD1OZig2OSwxNzc2NDQ4OTIwKTtYZls0XT1kOwp0aih0aGlzLDQzNSk7dGoodGhpcywxNDEpOwp9O3ZhciB2aj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgU2V0O3RoaXMuSz1uZXcgU2V0fSx4aj1mdW5jdGlvbihhKXt2YXIgYj13ai5IO2E9YT09PXZvaWQgMD9bXTphO3ZhciBjPVtdLmNvbmNhdCh3KGIuSCkpLmNvbmNhdChbXS5jb25jYXQodyhiLkspKSkuY29uY2F0KGEpO2Muc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gY30seWo9ZnVuY3Rpb24oKXt2YXIgYT1bXS5jb25jYXQodyh3ai5ILkgpKTthLnNvcnQoZnVuY3Rpb24oYixjKXtyZXR1cm4gYi1jfSk7cmV0dXJuIGF9LHpqPWZ1bmN0aW9uKCl7dmFyIGE9d2ouSCxiPUUoNDQpO2EuSD1uZXcgU2V0O2lmKGIhPT0iIilmb3IodmFyIGM9bShiLnNwbGl0KCJ+IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1OdW1iZXIoZC52YWx1ZSk7aXNOYU4oZSl8fGEuSC5hZGQoZSl9fTt2YXIgQWo9e30sQmo9e19fY2w6MSxfX2VjbDoxLF9fZWhsOjEsX19ldmw6MSxfX2ZhbDoxLF9fZmlsOjEsX19mc2w6MSxfX2hsOjEsX19qZWw6MSxfX2xjbDoxLF9fc2RsOjEsX190bDoxLF9feXRsOjF9LENqPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se19fcGF1c2VkOjEsX190ZzoxfSxCaiksRGosRWo9ITE7RGo9RWo7dmFyIEZqPSIiO0FqLnFqPUZqO3ZhciB3aj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9bmV3IHZqfTt2YXIgR2o9LzpbMC05XSskLyxIaj0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC87ZnVuY3Rpb24gSWooYSxiLGMsZCl7dmFyIGU9SmooYSwhIWQsYiksZixnO3JldHVybiBjPyhnPWVbYl0pIT1udWxsP2c6W106KGY9ZVtiXSk9PW51bGw/dm9pZCAwOmZbMF19ZnVuY3Rpb24gSmooYSxiLGMpe2Zvcih2YXIgZD17fSxlPW0oYS5zcGxpdCgiJiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlLnNwbGl0KCI9IikpLGg9Zy5uZXh0KCkudmFsdWUsbD15YShnKSxuPWRlY29kZVVSSUNvbXBvbmVudChoLnJlcGxhY2UoL1wrL2csIiAiKSk7aWYoYz09PXZvaWQgMHx8bj09PWMpe3ZhciBwPWwuam9pbigiPSIpO2Rbbl18fChkW25dPVtdKTtkW25dLnB1c2goYj9wOmRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csIiAiKSkpfX1yZXR1cm4gZH0KZnVuY3Rpb24gS2ooYSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBMaihhLGIsYyxkLGUpe2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtpZihiPT09InByb3RvY29sInx8Yj09PSJwb3J0IilhLnByb3RvY29sPU1qKGEucHJvdG9jb2wpfHxNaihBLmxvY2F0aW9uLnByb3RvY29sKTtiPT09InBvcnQiP2EucG9ydD1TdHJpbmcoTnVtYmVyKGEuaG9zdG5hbWU/YS5wb3J0OkEubG9jYXRpb24ucG9ydCl8fChhLnByb3RvY29sPT09Imh0dHAiPzgwOmEucHJvdG9jb2w9PT0iaHR0cHMiPzQ0MzoiIikpOmI9PT0iaG9zdCImJihhLmhvc3RuYW1lPShhLmhvc3RuYW1lfHxBLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gTmooYSxiLGMsZCxlKX0KZnVuY3Rpb24gTmooYSxiLGMsZCxlKXt2YXIgZixnPU1qKGEucHJvdG9jb2wpO2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtzd2l0Y2goYil7Y2FzZSAidXJsX25vX2ZyYWdtZW50IjpmPU9qKGEpO2JyZWFrO2Nhc2UgInByb3RvY29sIjpmPWc7YnJlYWs7Y2FzZSAiaG9zdCI6Zj1hLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCk7aWYoYyl7dmFyIGg9L153d3dcZCpcLi8uZXhlYyhmKTtoJiZoWzBdJiYoZj1mLnN1YnN0cmluZyhoWzBdLmxlbmd0aCkpfWJyZWFrO2Nhc2UgInBvcnQiOmY9U3RyaW5nKE51bWJlcihhLnBvcnQpfHwoZz09PSJodHRwIj84MDpnPT09Imh0dHBzIj80NDM6IiIpKTticmVhaztjYXNlICJwYXRoIjphLnBhdGhuYW1lfHxhLmhvc3RuYW1lfHxzYigiVEFHR0lORyIsMSk7Zj1hLnBhdGhuYW1lLnN1YnN0cmluZygwLDEpPT09Ii8iP2EucGF0aG5hbWU6Ii8iK2EucGF0aG5hbWU7dmFyIGw9Zi5zcGxpdCgiLyIpOyhkfHxbXSkuaW5kZXhPZihsW2wubGVuZ3RoLQoxXSk+PTAmJihsW2wubGVuZ3RoLTFdPSIiKTtmPWwuam9pbigiLyIpO2JyZWFrO2Nhc2UgInF1ZXJ5IjpmPWEuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKTtlJiYoZj1JaihmLGUsITEpKTticmVhaztjYXNlICJleHRlbnNpb24iOnZhciBuPWEucGF0aG5hbWUuc3BsaXQoIi4iKTtmPW4ubGVuZ3RoPjE/bltuLmxlbmd0aC0xXToiIjtmPWYuc3BsaXQoIi8iKVswXTticmVhaztjYXNlICJmcmFnbWVudCI6Zj1hLmhhc2gucmVwbGFjZSgiIyIsIiIpO2JyZWFrO2RlZmF1bHQ6Zj1hJiZhLmhyZWZ9cmV0dXJuIGZ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKCI6IiwiIikudG9Mb3dlckNhc2UoKToiIn1mdW5jdGlvbiBPaihhKXt2YXIgYj0iIjtpZihhJiZhLmhyZWYpe3ZhciBjPWEuaHJlZi5pbmRleE9mKCIjIik7Yj1jPDA/YS5ocmVmOmEuaHJlZi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4gYn12YXIgUGo9e30sUWo9MDsKZnVuY3Rpb24gUmooYSl7dmFyIGI9UGpbYV07aWYoIWIpe3ZhciBjPUIuY3JlYXRlRWxlbWVudCgiYSIpO2EmJihjLmhyZWY9YSk7dmFyIGQ9Yy5wYXRobmFtZTtkWzBdIT09Ii8iJiYoYXx8c2IoIlRBR0dJTkciLDEpLGQ9Ii8iK2QpO3ZhciBlPWMuaG9zdG5hbWUucmVwbGFjZShHaiwiIik7Yj17aHJlZjpjLmhyZWYscHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxob3N0bmFtZTplLHBhdGhuYW1lOmQsc2VhcmNoOmMuc2VhcmNoLGhhc2g6Yy5oYXNoLHBvcnQ6Yy5wb3J0fTtRajw1JiYoUGpbYV09YixRaisrKX1yZXR1cm4gYn1mdW5jdGlvbiBTaihhLGIsYyl7dmFyIGQ9UmooYSk7cmV0dXJuIGFjKGIsZCxjKX0KZnVuY3Rpb24gVGooYSl7dmFyIGI9UmooQS5sb2NhdGlvbi5ocmVmKSxjPUxqKGIsImhvc3QiLCExKTtpZihjJiZjLm1hdGNoKEhqKSl7dmFyIGQ9TGooYiwicGF0aCIpO2lmKGQpe3ZhciBlPWQuc3BsaXQoYSsiPSIpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIGVbMV0uc3BsaXQoIjsiKVswXS5zcGxpdCgiPyIpWzBdfX19O3ZhciBVaj17Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iOiIvZyIsImh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIjoiL2FzIiwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI6Ii9ncyJ9LFZqPVsiL2FzL2QvY2NtL2NvbnZlcnNpb24iLCIvZy9kL2NjbS9jb252ZXJzaW9uIiwiL2dzL2NjbS9jb252ZXJzaW9uIiwiL2QvY2NtL2Zvcm0tZGF0YSJdO2Z1bmN0aW9uIFdqKCl7cmV0dXJuIElmKDQ3KT9KZig1NCkhPT0xOiExfWZ1bmN0aW9uIFhqKCl7dmFyIGE9RSgxOCksYj1hLmxlbmd0aDtyZXR1cm4gYVtiLTFdPT09Ii8iP2Euc3Vic3RyaW5nKDAsYi0xKTphfQpmdW5jdGlvbiBZaihhLGIpe2lmKGEpe3ZhciBjPSIiK2E7Yy5pbmRleE9mKCJodHRwOi8vIikhPT0wJiZjLmluZGV4T2YoImh0dHBzOi8vIikhPT0wJiYoYz0iaHR0cHM6Ly8iK2MpO2NbYy5sZW5ndGgtMV09PT0iLyImJihjPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSkpO3JldHVybiBSaigiIitjK2IpLmhyZWZ9fWZ1bmN0aW9uIFpqKGEpe2lmKGFrKCkpcmV0dXJuIFlqKGEsIi9hbmFseXRpY3MuanMiKX1mdW5jdGlvbiBiayhhKXtyZXR1cm4gYT09PTJ8fGE9PT0zfWZ1bmN0aW9uIGNrKGEpe3JldHVybiBNKDU4OCkmJmE9PT0zfWZ1bmN0aW9uIGFrKCl7cmV0dXJuIFdqKCl8fElmKDUwKX1mdW5jdGlvbiBkaygpe3JldHVybiEhQWoucWomJkFqLnFqLnNwbGl0KCJAQCIpLmpvaW4oIiIpIT09IlNHVE1fVE9LRU4ifQpmdW5jdGlvbiBlayhhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1PKGEsYy52YWx1ZSk7aWYoZClyZXR1cm4gZH19ZnVuY3Rpb24gZmsoYSxiLGMpe2M9Yz09PXZvaWQgMD8iIjpjO2lmKCFXaigpKXJldHVybiBhO3ZhciBkPWI/VWpbYV18fCIiOiIiO2Q9PT0iL2dzIiYmKGM9IiIpO3JldHVybiIiK1hqKCkrZCtjfWZ1bmN0aW9uIGdrKGEpe2lmKFdqKCkpZm9yKHZhciBiPW0oVmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKFNiKGEsIiIrWGooKStkKSlyZXR1cm4iOjoifX0KZnVuY3Rpb24gaGsoKXt2YXIgYT1BO2lmKCFhKXJldHVybiExO3RyeXtpZihhPT09YS50b3ApcmV0dXJuITE7dmFyIGI9YS5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYi5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlci8iKSE9PS0xJiZUYihiLCIvc3dfaWZyYW1lLmh0bWwiKX1jYXRjaChjKXtyZXR1cm4hMX19O3ZhciBpaz0vZ3RhZ1suXC9danMvLGprPS9ndG1bLlwvXWpzLyxsaz1mdW5jdGlvbihhKXt2YXIgYj1raztpZigoYS5zY3JpcHRDb250YWluZXJJZHx8IiIpLmluZGV4T2YoIkdUTS0iKT49MCl7dmFyIGM7YTp7dmFyIGQsZT0oZD1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkLnNyYztpZihlKXtmb3IodmFyIGY9SWYoNDcpLGc9UmooZSksaD1mP2cucGF0aG5hbWU6IiIrZy5ob3N0bmFtZStnLnBhdGhuYW1lLGw9Qi5zY3JpcHRzLG49IiIscD0wO3A8bC5sZW5ndGg7KytwKXt2YXIgcT1sW3BdO2lmKCEocS5pbm5lckhUTUwubGVuZ3RoPT09MHx8IWYmJnEuaW5uZXJIVE1MLmluZGV4T2YoYS5zY3JpcHRDb250YWluZXJJZHx8IlNIT1VMRF9OT1RfQkVfU0VUIik8MHx8cS5pbm5lckhUTUwuaW5kZXhPZihoKTwwKSl7aWYocS5pbm5lckhUTUwuaW5kZXhPZigiKGZ1bmN0aW9uKHcsZCxzLGwsaSkiKT49MCl7Yz1TdHJpbmcocCk7YnJlYWsgYX1uPVN0cmluZyhwKX19aWYobil7Yz0KbjticmVhayBhfX1jPXZvaWQgMH12YXIgcj1jO2lmKHIpcmV0dXJuIGIuSD0hMCxyfXZhciB0PVtdLnNsaWNlLmNhbGwoQi5zY3JpcHRzKTtyZXR1cm4gYS5zY3JpcHRFbGVtZW50P1N0cmluZyh0LmluZGV4T2YoYS5zY3JpcHRFbGVtZW50KSk6Ii0xIn0sbWs9ZnVuY3Rpb24oYSl7aWYoa2suSClyZXR1cm4iMSI7dmFyIGIsYz0oYj1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpiLnNyYztpZihjKXtpZihpay50ZXN0KGMpKXJldHVybiIzIjtpZihqay50ZXN0KGMpKXJldHVybiIyIn1yZXR1cm4iMCJ9LGtrPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07ZnVuY3Rpb24gUChhKXtzYigiR1RNIixhKX07ZnVuY3Rpb24gbmsoYSl7dmFyIGI9b2soKS5kZXN0aW5hdGlvbkFycmF5W2FdLGM9b2soKS5kZXN0aW5hdGlvblthXTtyZXR1cm4gYiYmYi5sZW5ndGg+MD9iWzBdOmN9ZnVuY3Rpb24gcGsoYSxiKXt2YXIgYz1vaygpO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Q2IoYy5wZW5kaW5nLGZ1bmN0aW9uKGQpe3JldHVybiBkLnRhcmdldC5jdGlkPT09YS5jdGlkJiZkLnRhcmdldC5pc0Rlc3RpbmF0aW9uPT09YS5pc0Rlc3RpbmF0aW9ufSl8fGMucGVuZGluZy5wdXNoKHt0YXJnZXQ6YSxvbkxvYWQ6Yn0pfWZ1bmN0aW9uIHFrKCl7dmFyIGE9QS5nb29nbGVfdGFnc19maXJzdF9wYXJ0eTtBcnJheS5pc0FycmF5KGEpfHwoYT1bXSk7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBPYmplY3QuZnJlZXplKGIpfQp2YXIgcms9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLmRlc3RpbmF0aW9uPXt9O3RoaXMuZGVzdGluYXRpb25BcnJheT17fTt0aGlzLmNhbm9uaWNhbD17fTt0aGlzLnBlbmRpbmc9W107dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXt9O3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpfTsKZnVuY3Rpb24gb2soKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLnRpZHI7YiYmdHlwZW9mIGI9PT0ib2JqZWN0Inx8KGI9bmV3IHJrLGEudGlkcj1iKTt2YXIgYz1iO2MuY29udGFpbmVyfHwoYy5jb250YWluZXI9e30pO2MuZGVzdGluYXRpb258fChjLmRlc3RpbmF0aW9uPXt9KTtjLmRlc3RpbmF0aW9uQXJyYXl8fChjLmRlc3RpbmF0aW9uQXJyYXk9e30pO2MuY2Fub25pY2FsfHwoYy5jYW5vbmljYWw9e30pO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Yy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzfHwoYy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCkpO3JldHVybiBjfTtmdW5jdGlvbiBzaygpe3JldHVybiBJZig3KSYmdGsoKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09RSg1KX0pfWZ1bmN0aW9uIHVrKCl7dmFyIGE7cmV0dXJuKGE9S2YoNTUpKSE9bnVsbD9hOltdfWZ1bmN0aW9uIHZrKCl7cmV0dXJuIEUoNil8fCJfIitFKDUpfWZ1bmN0aW9uIHdrKCl7dmFyIGE9RSgxMCk7cmV0dXJuIGE/YS5zcGxpdCgifCIpOltFKDUpXX1mdW5jdGlvbiB0aygpe3ZhciBhPUtmKDU5KTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIn0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5pbmRleE9mKCJHVE0tIikhPT0wfSk6W119ZnVuY3Rpb24geGsoKXt2YXIgYT15ayh6aygpKSxiPWEmJmEucGFyZW50O2lmKGIpcmV0dXJuIHlrKGIpfQpmdW5jdGlvbiBBaygpe3ZhciBhPXlrKHprKCkpO2lmKGEpe2Zvcig7YS5wYXJlbnQ7KXt2YXIgYj15ayhhLnBhcmVudCk7aWYoIWIpYnJlYWs7YT1ifXJldHVybiBhfX1mdW5jdGlvbiB5ayhhKXt2YXIgYj1vaygpO3JldHVybiBhLmlzRGVzdGluYXRpb24/bmsoYS5jdGlkKTpiLmNvbnRhaW5lclthLmN0aWRdfWZ1bmN0aW9uIEJrKCl7dmFyIGE9b2soKTtpZihhLnBlbmRpbmcpe2Zvcih2YXIgYixjPVtdLGQ9ITEsZT13aygpLGY9dGsoKSxnPXt9LGg9MDtoPGEucGVuZGluZy5sZW5ndGg7Zz17Umc6dm9pZCAwfSxoKyspZy5SZz1hLnBlbmRpbmdbaF0sQ2IoZy5SZy50YXJnZXQuaXNEZXN0aW5hdGlvbj9mOmUsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuPT09bC5SZy50YXJnZXQuY3RpZH19KGcpKT9kfHwoYj1nLlJnLm9uTG9hZCxkPSEwKTpjLnB1c2goZy5SZyk7YS5wZW5kaW5nPWM7aWYoYil0cnl7Yih2aygpKX1jYXRjaChsKXt9fX0KZnVuY3Rpb24gQ2soKXtmb3IodmFyIGE9RSg1KSxiPXdrKCksYz10aygpLGQ9dWsoKSxlPWZ1bmN0aW9uKHEscil7dmFyIHQ9e2Nhbm9uaWNhbENvbnRhaW5lcklkOkUoNiksc2NyaXB0Q29udGFpbmVySWQ6YSxzdGF0ZToyLGNvbnRhaW5lcnM6Yi5zbGljZSgpLGRlc3RpbmF0aW9uczpjLnNsaWNlKCl9O0pjJiYodC5zY3JpcHRFbGVtZW50PUpjKTtLYyYmKHQuc2NyaXB0U291cmNlPUtjKTt4aygpPT09dm9pZCAwJiYodC5odG1sTG9hZE9yZGVyPWxrKHQpLHQubG9hZFNjcmlwdFR5cGU9bWsodCkpO3ZhciB1LHY7c3dpdGNoKHIpe2Nhc2UgMDp1PWZ1bmN0aW9uKHope2YuY29udGFpbmVyW3FdPXp9O3Y9Zi5jb250YWluZXJbcV07YnJlYWs7Y2FzZSAxOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnVuc2hpZnQoeil9O3ZhciB4LHk9KCh4PWYuZGVzdGluYXRpb25BcnJheVtxXSk9PQpudWxsP3ZvaWQgMDp4WzBdKXx8Zi5kZXN0aW5hdGlvbltxXTsheXx8eS5zdGF0ZSE9PTAmJnkuc3RhdGUhPT0xfHwodj15KTticmVhaztjYXNlIDI6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0ucHVzaCh6KX0sdj12b2lkIDB9dSYmKHY/KHYuc3RhdGU9PT0wJiZQKDkzKSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHYsdCkpOnUodCkpfSxmPW9rKCksZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWUoaC52YWx1ZSwwKTtmb3IodmFyIGw9bShjKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtkLmluY2x1ZGVzKHApP2UocCwxKTplKHAsMil9Zi5jYW5vbmljYWxbdmsoKV09e307QmsoKX1mdW5jdGlvbiBEaygpe3ZhciBhPXZrKCk7cmV0dXJuISFvaygpLmNhbm9uaWNhbFthXX0KZnVuY3Rpb24gRWsoYSl7cmV0dXJuISFvaygpLmNvbnRhaW5lclthXX1mdW5jdGlvbiBGaygpe3ZhciBhPXprKCksYj15ayhhKTtyZXR1cm4gYiYmYi5jb250ZXh0fWZ1bmN0aW9uIEdrKGEpe3ZhciBiPW5rKGEpO3JldHVybiBiP2Iuc3RhdGUhPT0wOiExfWZ1bmN0aW9uIHprKCl7cmV0dXJue2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOklmKDcpfX1mdW5jdGlvbiBIayhhLGIsYyl7dmFyIGQ9emsoKSxlPW9rKCkuY29udGFpbmVyW2FdO2UmJmUuc3RhdGUhPT0zfHwob2soKS5jb250YWluZXJbYV09e3N0YXRlOjEsY29udGV4dDpiLHBhcmVudDpkfSxwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITF9LGMpKX1mdW5jdGlvbiBJayhhLGIsYyl7dmFyIGQ9b2soKSxlPW5rKGEpO2U/ZS5zdGF0ZT0xOihlPXtjb250ZXh0OmIsc3RhdGU6MSxwYXJlbnQ6emsoKX0sZC5kZXN0aW5hdGlvbkFycmF5W2FdPVtlXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxjKX0KZnVuY3Rpb24gSmsoYSxiLGMsZCl7dmFyIGU9b2soKSxmPW5rKGEpO2Y/Zi5zdGF0ZT0wOihmPXtzdGF0ZTowLHRyYW5zcG9ydFVybDpiLGNvbnRleHQ6YyxwYXJlbnQ6emsoKX0sZS5kZXN0aW5hdGlvbkFycmF5W2FdPVtmXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxkKTtQKDkxKX1mdW5jdGlvbiBLaygpe3ZhciBhPW9rKCkuY29udGFpbmVyLGI7Zm9yKGIgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGIpJiZhW2JdLnN0YXRlPT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMaygpe3ZhciBhPXt9O0diKG9rKCkuZGVzdGluYXRpb24sZnVuY3Rpb24oYixjKXsoYz09bnVsbD92b2lkIDA6Yy5zdGF0ZSk9PT0wJiYoYVtiXT1jKX0pO0diKG9rKCkuZGVzdGluYXRpb25BcnJheSxmdW5jdGlvbihiLGMpe3ZhciBkPWNbMF07KGQ9PW51bGw/dm9pZCAwOmQuc3RhdGUpPT09MCYmKGFbYl09ZCl9KTtyZXR1cm4gYX0KZnVuY3Rpb24gTWsoYSl7cmV0dXJuISEoYSYmYS5wYXJlbnQmJmEuY29udGV4dCYmYS5jb250ZXh0LnNvdXJjZT09PTEmJmEucGFyZW50LmN0aWQuaW5kZXhPZigiR1RNLSIpIT09MCl9ZnVuY3Rpb24gTmsoKXtmb3IodmFyIGE9b2soKSxiPW0od2soKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYS5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzW2MudmFsdWVdKXJldHVybiEwO3JldHVybiExfTt2YXIgT2s9ZnVuY3Rpb24oKXt9O09rLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQifTt2YXIgUGs9bmV3IE9rO3ZhciBYaz1mdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1ZYSgpfTtYay5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5zdG9yYWdlLnNldChTdHJpbmcoYSksYil9O1hrLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07dmFyIFlrO2Z1bmN0aW9uIFprKGEsYil7WWt8fChZaz1uZXcgWGspO1lrLnNldChhLGIpfWZ1bmN0aW9uICRrKGEpe1lrfHwoWWs9bmV3IFhrKTtyZXR1cm4gWWsuZ2V0KGEpfWZ1bmN0aW9uIGFsKGEsYil7WWt8fChZaz1uZXcgWGspO3ZhciBjPVlrO2Muc3RvcmFnZS5oYXMoU3RyaW5nKGEpKXx8Yy5zdG9yYWdlLnNldChTdHJpbmcoYSksYigpKTtyZXR1cm4gYy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTtmdW5jdGlvbiBibChhLGIpe2Z1bmN0aW9uIGMoZyl7dmFyIGg9UmooZyksbD1MaihoLCJwcm90b2NvbCIpLG49TGooaCwiaG9zdCIsITApLHA9TGooaCwicG9ydCIpLHE9TGooaCwicGF0aCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXC8kLywiIik7aWYobD09PXZvaWQgMHx8bD09PSJodHRwIiYmcD09PSI4MCJ8fGw9PT0iaHR0cHMiJiZwPT09IjQ0MyIpbD0id2ViIixwPSJkZWZhdWx0IjtyZXR1cm5bbCxuLHAscV19Zm9yKHZhciBkPWMoU3RyaW5nKGEpKSxlPWMoU3RyaW5nKGIpKSxmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXSE9PWVbZl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gY2woYSl7cmV0dXJuIGRsKGEpPzE6MH0KZnVuY3Rpb24gZGwoYSl7dmFyIGI9YS5hcmcwLGM9YS5hcmcxO2lmKGEuYW55X29mJiZBcnJheS5pc0FycmF5KGMpKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9RWQoYSx7fSk7RWQoe2FyZzE6Y1tkXSxhbnlfb2Y6dm9pZCAwfSxlKTtpZihjbChlKSlyZXR1cm4hMH1yZXR1cm4hMX1zd2l0Y2goYVsiZnVuY3Rpb24iXSl7Y2FzZSAiX2NuIjpyZXR1cm4gS2coYixjKTtjYXNlICJfY3NzIjpyZXR1cm4gR2coYixjKTtjYXNlICJfZXciOnJldHVybiBIZyhiLGMpO2Nhc2UgIl9lcSI6cmV0dXJuIExnKGIsYyk7Y2FzZSAiX2dlIjpyZXR1cm4gTWcoYixjKTtjYXNlICJfZ3QiOnJldHVybiBPZyhiLGMpO2Nhc2UgIl9sYyI6cmV0dXJuIElnKGIsYyk7Y2FzZSAiX2xlIjpyZXR1cm4gTmcoYixjKTtjYXNlICJfbHQiOnJldHVybiBQZyhiLGMpO2Nhc2UgIl9yZSI6cmV0dXJuIEpnKGIsYyxhLmlnbm9yZV9jYXNlLGFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pKTtjYXNlICJfc3ciOnJldHVybiBRZyhiLApjKTtjYXNlICJfdW0iOnJldHVybiBibChiLGMpfXJldHVybiExfTtmdW5jdGlvbiBlbChhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBmO3N3aXRjaChhWzBdKXtjYXNlICJmdW5jdGlvbl9pZCI6cmV0dXJuIGFbMV07Y2FzZSAibGlzdCI6Zj1bXTtmb3IodmFyIGc9MTtnPGEubGVuZ3RoO2crKylmLnB1c2goZWwoYVtnXSxiLGMsZCxlKSk7cmV0dXJuIGY7Y2FzZSAibWFjcm8iOnZhciBoPWRbYVsxXV07cmV0dXJuIGg/aC5ldmFsdWF0ZShiLGUpOnZvaWQgMDtjYXNlICJtYXAiOmY9e307Zm9yKHZhciBsPTE7bDxhLmxlbmd0aDtsKz0yKWZbZWwoYVtsXSxiLGMsZCxlKV09ZWwoYVtsKzFdLGIsYyxkLGUpO3JldHVybiBmO2Nhc2UgInRlbXBsYXRlIjpmPVtdO2Zvcih2YXIgbj0hMSxwPTE7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWVsKGFbcF0sYixjLGQsZSk7Zi5wdXNoKHEpfXJldHVybiBmLmpvaW4oIiIpO2Nhc2UgImVzY2FwZSI6Zj1lbChhWzFdLGIsYyxkLGUpO2Y9U3RyaW5nKGYpO2Zvcih2YXIgeT0yO3k8YS5sZW5ndGg7eSsrKVVpW2FbeV1dJiYoZj1VaVthW3ldXShmKSk7cmV0dXJuIGY7Y2FzZSAidGFnIjp2YXIgej1hWzFdO2lmKCFjW3pdKXRocm93IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSB0YWcgcmVmZXJlbmNlICIrCnorIi4iKTtyZXR1cm57Ym86YVsyXSxpbmRleDp6fTtjYXNlICJ6YiI6dmFyIEM9e30sRD0oQ1tHZi5ZYl09YVsxXSxDLmFyZzA9ZWwoYVsyXSxiLGMsZCxlKSxDLmFyZzE9ZWwoYVszXSxiLGMsZCxlKSxDLmlnbm9yZV9jYXNlPWVsKGFbNV0sYixjLGQsZSksQyksST1jbChEKSxHPSEhYVs0XTtyZXR1cm4gR3x8SSE9PTI/RyE9PShJPT09MSk6bnVsbDtkZWZhdWx0OnRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4cGFuZCB1bmtub3duIFZhbHVlIHR5cGU6ICIrYVswXSsiLiIpO319cmV0dXJuIGF9O2Z1bmN0aW9uIGZsKGEpe3JldHVybiBhJiZhLmluZGV4T2YoInBlbmRpbmc6Iik9PT0wP2dsKGEuc3Vic3RyKDgpKTohMX1mdW5jdGlvbiBnbChhKXtpZihhPT1udWxsfHxhLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGI9TnVtYmVyKGEpLGM9TmIoKTtyZXR1cm4gYjxjKzNFNSYmYj5jLTlFNX07dmFyIGhsPSExLGlsPSExLGpsPSExLGtsPTAsbGw9ITEsbWw9dm9pZCAwLG5sPVtdO2Z1bmN0aW9uIG9sKGEpe2lmKGtsPT09MClsbCYmbmwmJihubC5sZW5ndGg+PTEwMCYmbmwuc2hpZnQoKSxubC5wdXNoKGEpKTtlbHNlIGlmKHBsKCkpe3ZhciBiPUUoNDEpLGM9TWMoYixbXSk7Yy5sZW5ndGg+PTUwJiZjLnNoaWZ0KCk7Yy5wdXNoKGEpfX1mdW5jdGlvbiBxbCgpe2lsfHwocmwoKSxzbChrbCkpfWZ1bmN0aW9uIHNsKGEpe2lmKCFpbHx8a2w9PT0yJiZhPT09MSlpZihpbD0hMCxqbCYmKGFkKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCksamw9ITEpLG1sIT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQobWwpLG1sPXZvaWQgMCksa2w9YSxhPT09MSl7dmFyIGI9bmw7bmw9dm9pZCAwO2I9PW51bGx8fGIuZm9yRWFjaChmdW5jdGlvbihjKXtvbChjKX0pfX0KZnVuY3Rpb24gcmwoKXt2YXIgYT1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcm9kLXByZXNlbnQiKTtnbChhKT9rbD0xOiFmbChhKXx8aGx8fGpsP2tsPTI6KGpsPSEwLCRjKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCwhMSksbWw9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWx8fChybCgpLHNsKGtsKSk7aGw9ITB9LDIwMCkpfWZ1bmN0aW9uIHBsKCl7aWYoIWxsKXJldHVybiExO3N3aXRjaChrbCl7Y2FzZSAxOmNhc2UgMDpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHRsKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pO3JldHVybiBhLmljcz1hLmljc3x8bmV3IHVsfXZhciB1bD1mdW5jdGlvbigpe3RoaXMuZW50cmllcz17fTt0aGlzLndhaXRQZXJpb2RUaW1lZE91dD10aGlzLndhc1NldExhdGU9dGhpcy5hY2Nlc3NlZEFueT10aGlzLmFjY2Vzc2VkRGVmYXVsdD10aGlzLnVzZWRJbXBsaWNpdD10aGlzLnVzZWRVcGRhdGU9dGhpcy51c2VkRGVmYXVsdD10aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSExO3RoaXMuSD1bXX07CnVsLnByb3RvdHlwZS5kZWZhdWx0PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fCF0aGlzLmFjY2Vzc2VkRGVmYXVsdCYmIXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZERlZmF1bHQ9dGhpcy5hY3RpdmU9ITA7c2IoIlRBR0dJTkciLDE5KTtiPT1udWxsP3NiKCJUQUdHSU5HIiwxOCk6dmwodGhpcyxhLGI9PT0iZ3JhbnRlZCIsYyxkLGUsZixnKX07dWwucHJvdG90eXBlLndhaXRGb3JVcGRhdGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXZsKHRoaXMsYVtkXSx2b2lkIDAsdm9pZCAwLCIiLCIiLGIsYyl9Owp2YXIgdmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1hLmVudHJpZXMsbj1sW2JdfHx7fSxwPW4ucmVnaW9uLHE9ZCYmemIoZCk/ZC50b1VwcGVyQ2FzZSgpOnZvaWQgMDtlPWUudG9VcHBlckNhc2UoKTtmPWYudG9VcHBlckNhc2UoKTtpZihlPT09IiJ8fHE9PT1mfHwocT09PWU/cCE9PWY6IXEmJiFwKSl7dmFyIHI9ISEoZyYmZz4wJiZuLnVwZGF0ZT09PXZvaWQgMCksdD17cmVnaW9uOnEsZGVjbGFyZV9yZWdpb246bi5kZWNsYXJlX3JlZ2lvbixpbXBsaWNpdDpuLmltcGxpY2l0LGRlZmF1bHQ6YyE9PXZvaWQgMD9jOm4uZGVmYXVsdCxkZWNsYXJlOm4uZGVjbGFyZSx1cGRhdGU6bi51cGRhdGUscXVpZXQ6cn07aWYoZSE9PSIifHxuLmRlZmF1bHQhPT0hMSlsW2JdPXQ7ciYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bFtiXT09PXQmJnQucXVpZXQmJihzYigiVEFHR0lORyIsMiksYS53YWl0UGVyaW9kVGltZWRPdXQ9ITAsYS5jbGVhclRpbWVvdXQoYix2b2lkIDAsaCksCmEubm90aWZ5TGlzdGVuZXJzKCkpfSxnKX19O2s9dWwucHJvdG90eXBlO2suY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bYV0sZT1jLmRlbGVnYXRlZENvbnNlbnRUeXBlcyxmO2ZvcihmIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShmKSYmZVtmXT09PWEmJmQucHVzaChmKTt2YXIgZz10aGlzLmVudHJpZXNbYV18fHt9LGg9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKTtpZihnLnF1aWV0KXtnLnF1aWV0PSExO2Zvcih2YXIgbD1tKGQpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXdsKHRoaXMsbi52YWx1ZSl9ZWxzZSBpZihiIT09dm9pZCAwJiZoIT09Yilmb3IodmFyIHA9bShkKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl3bCh0aGlzLHEudmFsdWUpfTsKay51cGRhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fHRoaXMudXNlZFVwZGF0ZXx8IXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZFVwZGF0ZT10aGlzLmFjdGl2ZT0hMDtpZihiIT1udWxsKXt2YXIgZD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpLGU9dGhpcy5lbnRyaWVzOyhlW2FdPWVbYV18fHt9KS51cGRhdGU9Yj09PSJncmFudGVkIjt0aGlzLmNsZWFyVGltZW91dChhLGQsYyl9fTsKay5kZWNsYXJlPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMDt2YXIgZj10aGlzLmVudHJpZXMsZz1mW2FdfHx7fSxoPWcuZGVjbGFyZV9yZWdpb24sbD1jJiZ6YihjKT9jLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2Q9ZC50b1VwcGVyQ2FzZSgpO2U9ZS50b1VwcGVyQ2FzZSgpO2lmKGQ9PT0iInx8bD09PWV8fChsPT09ZD9oIT09ZTohbCYmIWgpKXt2YXIgbj17cmVnaW9uOmcucmVnaW9uLGRlY2xhcmVfcmVnaW9uOmwsZGVjbGFyZTpiPT09ImdyYW50ZWQiLGltcGxpY2l0OmcuaW1wbGljaXQsZGVmYXVsdDpnLmRlZmF1bHQsdXBkYXRlOmcudXBkYXRlLHF1aWV0OmcucXVpZXR9O2lmKGQhPT0iInx8Zy5kZWNsYXJlIT09ITEpZlthXT1ufX07CmsuaW1wbGljaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnVzZWRJbXBsaWNpdD0hMDt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdPWNbYV18fHt9O2QuaW1wbGljaXQhPT0hMSYmKGQuaW1wbGljaXQ9Yj09PSJncmFudGVkIil9OwprLmdldENvbnNlbnRTdGF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV18fHt9LGU9ZC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBmPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYV07aWYoZj09PTMpcmV0dXJuIDE7aWYoZj09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPWQuZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiPT1udWxsPzA6Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBnPWIuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2FdLGg9Y1tnXXx8e307ZT1oLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGw9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1tnXTtpZihsPT09MylyZXR1cm4gMTtpZihsPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9CmguZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6Mn1lPWQuZGVjbGFyZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtlPWQuaW1wbGljaXQ7cmV0dXJuIGUhPT12b2lkIDA/ZT8zOjQ6MH07ay5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3RoaXMuSC5wdXNoKHtjb25zZW50VHlwZXM6YSxpZTpifSl9O3ZhciB3bD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5ILmxlbmd0aDsrK2Mpe3ZhciBkPWEuSFtjXTtBcnJheS5pc0FycmF5KGQuY29uc2VudFR5cGVzKSYmZC5jb25zZW50VHlwZXMuaW5kZXhPZihiKSE9PS0xJiYoZC54bz0hMCl9fTt1bC5wcm90b3R5cGUubm90aWZ5TGlzdGVuZXJzPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yzx0aGlzLkgubGVuZ3RoOysrYyl7dmFyIGQ9dGhpcy5IW2NdO2lmKGQueG8pe2QueG89ITE7dHJ5e2QuaWUoe2NvbnNlbnRFdmVudElkOmEsY29uc2VudFByaW9yaXR5SWQ6Yn0pfWNhdGNoKGUpe319fX07dmFyIHhsPSExLHlsPSExLHpsPXt9LEFsPXtkZWxlZ2F0ZWRDb25zZW50VHlwZXM6e30sY29yZVBsYXRmb3JtU2VydmljZXM6e30sdXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLHNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsY29udGFpbmVyU2NvcGVkRGVmYXVsdHM6KHpsLmFkX3N0b3JhZ2U9MSx6bC5hbmFseXRpY3Nfc3RvcmFnZT0xLHpsLmFkX3VzZXJfZGF0YT0xLHpsLmFkX3BlcnNvbmFsaXphdGlvbj0xLHpsKSx1c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM6ITF9O2Z1bmN0aW9uIEJsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4oemIoYSk/W2FdOmEpLmV2ZXJ5KGZ1bmN0aW9uKGMpe3N3aXRjaChiLmdldENvbnNlbnRTdGF0ZShjLEFsKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6Y2FzZSA0OnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSl9CmZ1bmN0aW9uIENsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4gYi5nZXRDb25zZW50U3RhdGUoYSxBbCl9ZnVuY3Rpb24gRGwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiEoYi5lbnRyaWVzW2FdfHx7fSkucXVpZXR9ZnVuY3Rpb24gRWwoKXtpZighWWYoNSkpcmV0dXJuITE7dmFyIGE9dGwoKTthLmFjY2Vzc2VkQW55PSEwO2lmKGEuYWN0aXZlKXJldHVybiEwO2lmKCFBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpcmV0dXJuITE7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tjLnZhbHVlXSE9PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRmwoYSxiKXt0bCgpLmFkZExpc3RlbmVyKGEsYil9CmZ1bmN0aW9uIEdsKGEsYil7dGwoKS5ub3RpZnlMaXN0ZW5lcnMoYSxiKX1mdW5jdGlvbiBIbChhLGIpe2lmKGIuZXZlcnkoRGwpKWEoe30pO2Vsc2V7dmFyIGM9ITE7RmwoYixmdW5jdGlvbihkKXshYyYmYi5ldmVyeShEbCkmJihjPSEwLGEoZCkpfSl9fQpmdW5jdGlvbiBJbChhLGIpe3ZhciBjPXpiKGIpP1tiXTpiLGQ9e30sZT1mdW5jdGlvbigpe3JldHVybiBjLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gQmwoaCkmJiFkW2hdfSl9LGY9ZSgpO2lmKGYubGVuZ3RoIT09Yy5sZW5ndGgpe3ZhciBnPWZ1bmN0aW9uKGgpe2Zvcih2YXIgbD1tKGgpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWRbbi52YWx1ZV09ITB9O2coZik7RmwoYyxmdW5jdGlvbihoKXtmdW5jdGlvbiBsKHEpe3EubGVuZ3RoIT09MCYmKGcocSksaC5jb25zZW50VHlwZXM9cSxhKGgpKX12YXIgbj1lKCk7aWYobi5sZW5ndGghPT0wKXt2YXIgcD1PYmplY3Qua2V5cyhkKS5sZW5ndGg7bi5sZW5ndGgrcD49Yy5sZW5ndGg/bChuKTpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGUoKSl9LDUwMCl9fSl9fTt2YXIgSmw9ITE7ZnVuY3Rpb24gS2woYSxiKXt2YXIgYz13aygpLGQ9dGsoKTtFKDI2KTt2YXIgZT1JZig0Nyk/MDpJZig1MCk/MTozLGY9WGooKTtpZihwbCgpKXt2YXIgZz1MbCgiSU5JVCIpO2cuY29udGFpbmVyTG9hZFNvdXJjZT1hIT1udWxsP2E6MDtiJiYoZy5wYXJlbnRUYXJnZXRSZWZlcmVuY2U9Yik7Zy5hbGlhc2VzPWM7Zy5kZXN0aW5hdGlvbnM9ZDtlIT09dm9pZCAwJiYoZy5ndGc9e3NvdXJjZTplLG1QYXRoOmYhPW51bGw/ZjoiIn0pO29sKGcpfX0KZnVuY3Rpb24gTWwoYSl7dmFyIGIsYyxkLGU7Yj1hLnRhcmdldElkO2M9YS5yZXF1ZXN0O2Q9YS5xYjtlPWEuaXNCYXRjaGVkO3ZhciBmO2lmKGY9cGwoKSl7dmFyIGc7YTpzd2l0Y2goYy5lbmRwb2ludCl7Y2FzZSA2ODpjYXNlIDY5OmNhc2UgMTk6Y2FzZSA2MjpjYXNlIDQ3Omc9ITA7YnJlYWsgYTtkZWZhdWx0Omc9ITF9Zj0hZ31pZihmKXt2YXIgaD1MbCgiR1RBR19ISVQiLHtldmVudElkOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQucHJpb3JpdHlJZH0pO2gudGFyZ2V0PWI7aC51cmw9Yy51cmw7Yy5wb3N0Qm9keSYmKGgucG9zdEJvZHk9Yy5wb3N0Qm9keSk7aC5wYXJhbWV0ZXJFbmNvZGluZz1jLnBhcmFtZXRlckVuY29kaW5nO2guZW5kcG9pbnQ9Yy5lbmRwb2ludDtlIT09dm9pZCAwJiYoaC5pc0JhdGNoZWQ9ZSk7b2woaCl9fWZ1bmN0aW9uIE5sKGEpe3BsKCkmJk1sKGEoKSl9CmZ1bmN0aW9uIExsKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Yi5ncm91cElkPU9sO3ZhciBjLGQ9YixlPVBsLGY9e3B1YmxpY0lkOlFsfTtkLmV2ZW50SWQhPW51bGwmJihmLmV2ZW50SWQ9ZC5ldmVudElkKTtkLnByaW9yaXR5SWQhPW51bGwmJihmLnByaW9yaXR5SWQ9ZC5wcmlvcml0eUlkKTtkLmV2ZW50TmFtZSYmKGYuZXZlbnROYW1lPWQuZXZlbnROYW1lKTtkLmdyb3VwSWQmJihmLmdyb3VwSWQ9ZC5ncm91cElkKTtkLnRhZ05hbWUmJihmLnRhZ05hbWU9ZC50YWdOYW1lKTtjPXtjb250YWluZXJQcm9kdWN0OiJHVE0iLGtleTpmLHZlcnNpb246ZSxtZXNzYWdlVHlwZTphfTtjLmNvbnRhaW5lclByb2R1Y3Q9Smw/Ik9HVCI6IkdUTSI7Yy5rZXkudGFyZ2V0UmVmPVJsO3JldHVybiBjfXZhciBRbD0iIixQbD0iIixSbD17Y3RpZDoiIixpc0Rlc3RpbmF0aW9uOiExfSxPbDsKZnVuY3Rpb24gU2woYSl7dmFyIGI9RSg1KSxjPUlmKDQ1KSxkPXNrKCksZT1FKDYpLGY9RSgxKTtFKDIzKTtrbD0wO2xsPSEwO3JsKCk7T2w9YTtRbD1iO1BsPWY7Smw9YztSbD17Y3RpZDpiLGlzRGVzdGluYXRpb246ZCxjYW5vbmljYWxJZDplfX07ZnVuY3Rpb24gVGwoYSxiLGMsZCl7aWYocGwoKSl7dmFyIGU9Yi5NO01sKHt0YXJnZXRJZDpkfHxbYi50YXJnZXQuZGVzdGluYXRpb25JZF0scmVxdWVzdDp7dXJsOmEscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDpjfSxxYjp7ZXZlbnRJZDplLmV2ZW50SWQscHJpb3JpdHlJZDplLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fTtmdW5jdGlvbiBVbChhLGIsYyl7dmFyIGQ9Imh0dHBzOi8vIithK2I7cmV0dXJuIGM/ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKT9YaigpK2MrYjpkfTpmdW5jdGlvbigpe3JldHVybiBkfX07dmFyIFZsPXt9LFdsPShWbFsyMl09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9hcy9kIiksVmxbNjBdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9ncyIpLFZsWzIzXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZy9kIiksVmwpO3ZhciBYbD17fSxZbD0oWGxbNV09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzY2XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3Vjb252ZXJzaW9uIiksWGxbNjNdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2NF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbNjVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzc0XT1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvYXMvcC9jIn0sWGwpO3ZhciBabD17fSwkbD0oWmxbNDVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29sbGVjdCIpLFpsWzQ2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbGxlY3QiLCIvZ3MiKSxabFs2OV09VWwoImFkLmRvdWJsZWNsaWNrLm5ldCIsIi9jY20vcy9jb2xsZWN0IiksWmxbNThdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsWzU3XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmwpO3ZhciBhbT17fSxibT0oYW1bOV09VWwoImdvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldCIsIi9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uIiksYW1bNjhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9ybWt0L2NvbGxlY3QiKSxhbSk7dmFyIGNtPXt9LGRtPShjbVsxMV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzIxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY21bNzJdPVVsKCJnb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzczXT1VbCgiZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbSk7dmFyIGVtPXt9LGZtPShlbVs1MV09VWwoInd3dy5nb29nbGUuY29tIiwiL3RyYXZlbC9mbGlnaHRzL2NsaWNrL2NvbnZlcnNpb24iKSxlbSk7dmFyIGdtPXt9LGhtPShnbVsxXT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eTsifSxnbVsyXT1mdW5jdGlvbigpe3JldHVybihXaigpP1hqKCk6Imh0dHBzOi8vYWRlLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIpKyIvZGRtL2FjdGl2aXR5IisoTSg0NjcpPyI7IjoiLyIpfSxnbVszXT1mdW5jdGlvbihhKXtyZXR1cm4iaHR0cHM6Ly8iK2EubHIrIi5mbHMuZG91YmxlY2xpY2submV0L2FjdGl2aXR5aTsifSxnbSk7ZnVuY3Rpb24gaW0oYSl7c2IoIkhFQUxUSCIsYSl9O3ZhciBqbT17YmE6e1B0OiJhd191c2VyX2RhdGFfY2FjaGUiLG9pOiJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiLGJoOiJkaWFnbm9zdGljc19wYWdlX2lkIixvcDoiZW1lbW8iLGR1OiJlbV9yZWdpc3RyeSIsU2k6ImVhYiIscnU6ImZsX3VzZXJfZGF0YV9jYWNoZSIsdHU6ImdhNF91c2VyX2RhdGFfY2FjaGUiLEx1OiJpZGNfcHZfY2xhaW0iLFNlOiJpcF9nZW9fZGF0YV9jYWNoZSIsWGk6ImlwX2dlb19mZXRjaF9pbl9wcm9ncmVzcyIsam46Im5iX2RhdGEiLFRxOiJwYWdlX2V4cGVyaW1lbnRfaWRzIixsbjoicGxkIixWZToicHRfZGF0YSIsbW46InB0X2xpc3RlbmVyX3NldCIsa2o6InJldHJ5X2NvbnRhaW5lcnMiLE9oOiJzZXJ2aWNlX3dvcmtlcl9lbmRwb2ludCIsWnE6InNoYXJlZF91c2VyX2lkIixhcjoic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIixzajoic2hhcmVkX3VzZXJfaWRfc291cmNlIixidjoiYXdoIixocjoidW5pdmVyc2FsX2NsYWltX3JlZ2lzdHJ5In19O3ZhciBrbT1mdW5jdGlvbihhKXtyZXR1cm4gdGYoZnVuY3Rpb24oYil7Zm9yKHZhciBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX0oam0uYmEpOwpmdW5jdGlvbiBsbShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO2lmKGttKGEpKXt2YXIgYyxkLGU9KGQ9KGM9TWMoImdvb2dsZV90YWdfZGF0YSIse30pKS54Y2QpIT1udWxsP2Q6Yy54Y2Q9e307aWYoZVthXSlyZXR1cm4gZVthXTtpZihiKXt2YXIgZj12b2lkIDAsZz0xLGg9e30sbD17c2V0OmZ1bmN0aW9uKG4pe2Y9bjtsLm5vdGlmeSgpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe2hbU3RyaW5nKGcpXT1uO3JldHVybiBnKyt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3ZhciBwPVN0cmluZyhuKTtyZXR1cm4gaC5oYXNPd25Qcm9wZXJ0eShwKT8oZGVsZXRlIGhbcF0sITApOiExfSxub3RpZnk6ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyhoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7dHJ5e2hbcV0oYSxmKX1jYXRjaChyKXt9fX19O3JldHVybiBlW2FdPWx9fX0KZnVuY3Rpb24gbW0oYSxiKXt2YXIgYz1sbShhLCEwKTtjJiZjLnNldChiKX1mdW5jdGlvbiBubShhKXt2YXIgYjtyZXR1cm4oYj1sbShhKSk9PW51bGw/dm9pZCAwOmIuZ2V0KCl9ZnVuY3Rpb24gb20oYSxiKXt2YXIgYz1sbShhKTtpZighYyl7Yz1sbShhLCEwKTtpZighYylyZXR1cm47Yy5zZXQoYil9cmV0dXJuIGMuZ2V0KCl9ZnVuY3Rpb24gcG0oYSxiKXtpZih0eXBlb2YgYj09PSJmdW5jdGlvbiIpe3ZhciBjO3JldHVybihjPWxtKGEsITApKT09bnVsbD92b2lkIDA6Yy5zdWJzY3JpYmUoYil9fWZ1bmN0aW9uIHFtKGEsYil7dmFyIGM9bG0oYSk7cmV0dXJuIGM/Yy51bnN1YnNjcmliZShiKTohMX07dmFyIHNtPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz0hMX07c20ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLkt8fCh0aGlzLkg9dG0oKSx0aGlzLkhbIjAiXSYmb20oam0uYmEuU2UsSlNPTi5zdHJpbmdpZnkodGhpcy5IKSkpfTsKdmFyIHhtPWZ1bmN0aW9uKCl7dmFyIGE9dW0sYj12bSxjPXZvaWQgMCxkPWZ1bmN0aW9uKCl7YyE9PXZvaWQgMCYmcW0oam0uYmEuU2UsYyk7dHJ5e3ZhciBmPW5tKGptLmJhLlNlKTtiLkg9SlNPTi5wYXJzZShmKX1jYXRjaChnKXtQKDEyMyksaW0oMiksYi5IPXt9fWIuSz0hMDthKCl9LGU9bm0oam0uYmEuU2UpO2U/ZChlKTooYz1wbShqbS5iYS5TZSxkKSx3bSgpKX0sd209ZnVuY3Rpb24oKXtpZighbm0oam0uYmEuWGkpKXttbShqbS5iYS5YaSwhMCk7dmFyIGE9ZnVuY3Rpb24oYil7bW0oam0uYmEuU2UsYnx8Int9Iik7bW0oam0uYmEuWGksITEpfTt0cnl7QS5mZXRjaCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9jY20vZ2VvIix7bWV0aG9kOiJHRVQiLGNhY2hlOiJuby1zdG9yZSIsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6Im9taXQifSkudGhlbihmdW5jdGlvbihiKXtiLm9rP2IudGV4dCgpLnRoZW4oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oKXthKCl9KTphKCl9LGZ1bmN0aW9uKCl7YSgpfSl9Y2F0Y2goYil7YSgpfX19LAp0bT1mdW5jdGlvbigpe3ZhciBhPUUoMjIpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShxYihhKSl9Y2F0Y2goYil7cmV0dXJuIFAoMTIzKSxpbSgyKSx7fX19LHltPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjAiXXx8IiJ9LHptPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjEiXXx8IiJ9LEFtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7CnZhciBocD1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtiW2dwW2VdfHxlXT1hW2VdfXJldHVybiBifSxpcD1mdW5jdGlvbihhKXtyZXR1cm4hIVEoYSxILkoudmQpJiZSKGEsRi5ELlBkKT09PSIxIiYmUihhLEYuRC5IZCkhPT0iMSImJlhvKGZwKX0sanA9ZnVuY3Rpb24oYSxiKXtpZighaXAoYSkpcmV0dXJuITE7dmFyIGM9UWMoKXx8T2MoKT81ODo1NyxkPU5tKGMsaHAoYikpO1RsKGQsYSxjKTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKyImZm10PTgiLHZvaWQgMCx7UWc6ITAsbWV0aG9kOiJHRVQifSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhkKyImZm10PTMiKX0pO3JldHVybiEwfSxrcD17fSxncD0oa3AuZGw9InVybCIsa3AuZHI9CiJyZWYiLGtwLnVpZD0idXNlcklkIixrcCk7dmFyIGxwPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZD1mdW5jdGlvbihlKXtiW2VdIT1udWxsJiZiW2VdIT09IiImJihjW2VdPWJbZV0pfTtNKDQ3NCkmJmQoIl9nc2lkIik7UihhLEYuRC5IZCkhPT0iMSImJihkKCJnY2xpZCIpLGQoImdjbHNyYyIpLGQoImF1aWQiKSxkKCJkY2xpZCIpKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGgpcmV0dXJuIGQoImd0bSIpLGN9Owp2YXIgbXA9e30sbnA9KG1wW0YuRC5zYV09ImdjdSIsbXBbRi5ELlNiXT0iZ2NsZ2IiLG1wW0YuRC5sYl09ImdjbGF3IixtcFtGLkQuemZdPSJnYWRfc291cmNlIixtcFtGLkQuQWZdPSJnYWRfc291cmNlX3NyYyIsbXBbRi5ELkRkXT0iZ2NsaWQiLG1wW0YuRC5BbF09ImdjbHNyYyIsbXBbRi5ELkJmXT0iZ2JyYWlkIixtcFtGLkQuRWVdPSJ3YnJhaWQiLG1wW0YuRC5FZF09ImF1aWQiLG1wW0YuRC5CbF09ImFlIixtcFtGLkQuSGFdPW51bGwsbXBbRi5ELkRsXT0icm5kIixtcFtGLkQuSGRdPSJuY2wiLG1wW0YuRC5OZl09ImdjbGRjIixtcFtGLkQuS2RdPSJkY2xpZCIsbXBbRi5ELlZjXT0iZWRpZCIsbXBbRi5ELlViXT0iZW4iLG1wW0YuRC5LZV09ImdkcHIiLG1wW0YuRC5YY109ImdkaWQiLG1wW0YuRC5UYV09bnVsbCxtcFtGLkQuTGVdPSJfbmciLG1wW0YuRC50aF09ImdwcF9zaWQiLG1wW0YuRC51aF09ImdwcCIsbXBbRi5ELlZmXT0iX3R1IixtcFtGLkQuUWxdPSJndG1fdXAiLG1wW0YuRC5NZV09CiJmcm0iLG1wW0YuRC5QZF09ImxwcyIsbXBbRi5ELkxpXT0iZGlkIixtcFtGLkQuVWxdPSJuYXZ0IixtcFtGLkQuemFdPSJkbCIsbXBbRi5ELlVhXT0iZHIiLG1wW0YuRC5NYl09ImR0IixtcFtGLkQuYm1dPSJzY3JzcmMiLG1wW0YuRC5aZl09ImdhX3VpZCIsbXBbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IixtcFtGLkQuUWldPSJ0ZXN0b25seSIsbXBbRi5ELnJxXT0idV90eiIsbXBbRi5ELlBlXT0idG9wIixtcFtGLkQuUWVdPSJ0aWQiLG1wW0YuRC5mYl09InVpZCIsbXBbRi5ELmtnXT0idXNfcHJpdmFjeSIsbXBbRi5ELmVkXT1udWxsLG1wW0YuRC5kZV09Im5wYSIsbXApO2Z1bmN0aW9uIG9wKGEsYil7aWYoYiE9bnVsbCYmYiE9PSIiKXt2YXIgYz1iPT09ITA/IjEiOmI9PT0hMT8iMCI6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSk7aWYoU2IoYSwiXyYiKSlyZXR1cm57a2V5OmEuc3Vic3RyaW5nKDIpLHZhbHVlOmN9O3ZhciBkPW5wW2FdO2lmKGQhPT1udWxsKXJldHVybiBkP3trZXk6ZCx2YWx1ZTpjfTp7a2V5OkFiKGIpPyJlcG4uIithOiJlcC4iK2EsdmFsdWU6Y319fTtmdW5jdGlvbiBwcChhKXthPWE9PT12b2lkIDA/W106YTtyZXR1cm4geGooYSkuam9pbigifiIpfTtmdW5jdGlvbiBxcCgpe3ZhciBhPVtdLGI9TnVtYmVyKCcnKXx8MCxjPU51bWJlcignJyl8fDA7Y3x8KGM9Yi8xMDApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMjgsc3R1ZHlJZDoyMjgsZXhwZXJpbWVudElkOjEwNTE3NzE1NCxjb250cm9sSWQ6MTA1MTc3MTU1LGNvbnRyb2xJZDI6MTA1MjU1MjQ1LHByb2JhYmlsaXR5OmMsYWN0aXZlOmQsWmU6MH0pO3ZhciBlPU51bWJlcignJyl8fAowLGY9TnVtYmVyKCcnKXx8MDtmfHwoZj1lLzEwMCk7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIzNSxzdHVkeUlkOjIzNSxleHBlcmltZW50SWQ6MTA1MzU3MTUwLGNvbnRyb2xJZDoxMDUzNTcxNTEsY29udHJvbElkMjowLHByb2JhYmlsaXR5OmYsYWN0aXZlOmcsWmU6MX0pO3ZhciBoPU51bWJlcignJyl8fDAsbD1OdW1iZXIoJycpfHwKMDtsfHwobD1oLzEwMCk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NixzdHVkeUlkOjI2NixleHBlcmltZW50SWQ6MTE1NzE4NTI5LGNvbnRyb2xJZDoxMTU3MTg1MzAsY29udHJvbElkMjoxMTU3MTg1MzEscHJvYmFiaWxpdHk6bCxhY3RpdmU6bixaZTowfSk7dmFyIHA9TnVtYmVyKCcnKXx8MCxxPU51bWJlcignJyl8fAowO3F8fChxPXAvMTAwKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY3LHN0dWR5SWQ6MjY3LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjYsY29udHJvbElkOjExNTcxODUyNyxjb250cm9sSWQyOjExNTcxODUyOCxwcm9iYWJpbGl0eTpxLGFjdGl2ZTpyLFplOjB9KTtyZXR1cm4gYX07dmFyIHJwPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPW5ldyBTZXR9LHhwPWZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWI9YS5OW2Muc3R1ZHlJZF0/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHthY3RpdmU6ITB9KTpjLGU9Rmk7ZC5jb250cm9sSWQyJiZkLnByb2JhYmlsaXR5PD0uMjV8fChkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCx7Y29udHJvbElkMjowfSkpO2Uuc3R1ZGllc1tkLnN0dWR5SWRdPWQ7Yi5mb2N1c2VkJiYoYS5LW2Iuc3R1ZHlJZF09ITApO2lmKGIuWmU9PT0xKXt2YXIgZj1iLnN0dWR5SWQ7c3AoYSx0cCgpLGYpO3VwKGEsZik/dGoodWosZik6dnAoYSxmKT91ai5LW2ZdPSEwOndwKGEsZikmJih1ai5IW2ZdPSEwKX1lbHNlIGlmKGIuWmU9PT0wKXt2YXIgZz1iLnN0dWR5SWQ7c3AoYSxhLkgsZyk7dXAoYSxnKT90aih1aixnKTp2cChhLGcpP3VqLktbZ109ITA6d3AoYSxnKSYmCih1ai5IW2ddPSEwKX19LHNwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUZpO2lmKGUuc3R1ZGllc1tjXSl7dmFyIGY9ZS5zdHVkaWVzW2NdLGc9Zi5leHBlcmltZW50SWQsaD1mLnByb2JhYmlsaXR5O2lmKCEoYi5zdHVkaWVzfHx7fSlbY10pe3ZhciBsPWIuc3R1ZGllc3x8e307bFtjXT0hMDtiLnN0dWRpZXM9bDtpZighZS5zdHVkaWVzW2NdLmFjdGl2ZSlpZihlLnN0dWRpZXNbY10ucHJvYmFiaWxpdHk+LjUpSWkoYixnLGMpO2Vsc2UgaWYoIShoPD0wfHxoPjEpKXt2YXIgbj12b2lkIDA7aWYoZCl7dmFyIHA9Q2koZCsifiIrYyk7aWYocD09PSJlMiIpbj0tMTtlbHNle2Zvcih2YXIgcT1uZXcgVWludDhBcnJheShwKSxyPUJpZ0ludCgwKSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpcj1yPDxCaWdJbnQoOCl8QmlnSW50KHUudmFsdWUpO249TnVtYmVyKHIlQmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl9fUdpLnNrKGIsYyxuKX19fWlmKCFhLktbY10pe3ZhciB2PQpOaShiLGMpO3YmJndqLkguSy5hZGQodil9fSx0cD1mdW5jdGlvbigpe3JldHVybiBvbShqbS5iYS5UcSx7fSl9LHVwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gS2koYyxiKXx8S2koYS5ILGIpfSx2cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIExpKGMsYil8fExpKGEuSCxiKX0sd3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBNaShjLGIpfHxNaShhLkgsYil9LHlwOwpmdW5jdGlvbiB6cCgpe2lmKCF5cCl7dmFyIGE9eXA9bmV3IHJwLGIsYyxkPSgoYj1BKT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaGFzaCl8fCIiO2lmKGRbMF09PT0iIyImJmRbMV09PT0iXyImJmRbMl09PT0idCImJmRbM109PT0iZSImJmRbNF09PT0iPSIpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO2lmKGUpZm9yKHZhciBmPW0oZS5zcGxpdCgifiIpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9TnVtYmVyKGcudmFsdWUpO2gmJihhLk5baF09ITAsdGoodWosaCkpfX1mb3IodmFyIGw9bShxcCgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl4cChhLG4udmFsdWUpO2Zvcih2YXIgcD1bXSxxPW0oTWYoNTYpfHxbXSkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT17c3R1ZHlJZDp0WzFdLGFjdGl2ZTohIXRbMl0scHJvYmFiaWxpdHk6dFszXXx8MCxleHBlcmltZW50SWQ6dFs0XXx8CjAsY29udHJvbElkOnRbNV18fDAsY29udHJvbElkMjp0WzZdfHwwfSx2PTA7c3dpdGNoKHRbN10pe2Nhc2UgMjp2PTE7YnJlYWs7Y2FzZSAzOnY9MjticmVhaztjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDA6dj0wfXZhciB4O2E6c3dpdGNoKHUuc3R1ZHlJZCl7Y2FzZSA1Njc6Y2FzZSA0NjI6eD0hMDticmVhayBhO2RlZmF1bHQ6eD0hMX12YXIgeT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHUse1plOnYsZm9jdXNlZDp4fSk7KHkuYWN0aXZlfHx5LnByb2JhYmlsaXR5Pi41JiZ5LmV4cGVyaW1lbnRJZHx8eS5leHBlcmltZW50SWQmJnkuY29udHJvbElkKSYmcC5wdXNoKHkpfWZvcih2YXIgej1tKHApLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXhwKGEsQy52YWx1ZSl9fQpmdW5jdGlvbiBBcChhLGIpe3pwKCk7dmFyIGM9eXA7c3AoYyx0cCgpLGEsYik7dXAoYyxhKT90aih1aixhKTp2cChjLGEpP3VqLktbYV09ITA6d3AoYyxhKSYmKHVqLkhbYV09ITApfWZ1bmN0aW9uIEJwKCl7enAoKTt2YXIgYT15cCxiPXVwKGEsNTY3KTtpZihhLktbNTY3XSl7dmFyIGMsZD10cCgpOyhjPU5pKGQsNTY3KXx8TmkoYS5ILDU2NykpJiZhLlIuYWRkKGMpfXJldHVybiBifWZ1bmN0aW9uIENwKGEpe3pwKCk7dmFyIGI9bmV3IFNldCh5cC5SKTtpZihhKWZvcih2YXIgYz1RKGEsSC5KLkNoKXx8W10sZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWIuYWRkKGUudmFsdWUpO3JldHVybiBwcChbXS5jb25jYXQodyhiKSkpfTtmdW5jdGlvbiBEcChhKXt2YXIgYj1hLmxvY2F0aW9uLmhyZWY7aWYoYT09PWEudG9wKXJldHVybnt1cmw6YixJczohMH07dmFyIGM9ITEsZD1hLmRvY3VtZW50O2QmJmQucmVmZXJyZXImJihiPWQucmVmZXJyZXIsYS5wYXJlbnQ9PT1hLnRvcCYmKGM9ITApKTt2YXIgZT1hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihlKXt2YXIgZj1lW2UubGVuZ3RoLTFdLGc7ZiYmKChnPWIpPT1udWxsP3ZvaWQgMDpnLmluZGV4T2YoZikpPT09LTEmJihjPSExLGI9Zil9cmV0dXJue3VybDpiLElzOmN9fWZ1bmN0aW9uIEVwKGEpe3RyeXt2YXIgYjtpZihiPSEhYSYmYS5sb2NhdGlvbi5ocmVmIT1udWxsKWE6e3RyeXtIbihhLmZvbyk7Yj0hMDticmVhayBhfWNhdGNoKGMpe31iPSExfXJldHVybiBifWNhdGNoKGMpe3JldHVybiExfX1mdW5jdGlvbiBGcCgpe2Zvcih2YXIgYT1BLGI9YTthJiZhIT09YS5wYXJlbnQ7KWE9YS5wYXJlbnQsRXAoYSkmJihiPWEpO3JldHVybiBifTt2YXIgR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU7dmFyIGQ9bmV3IGM7YS5hcHBseShkLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7cmV0dXJuIGR9LEhwPWZ1bmN0aW9uKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPW51bGw7YygpfX19O2Z1bmN0aW9uIElwKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9O2Z1bmN0aW9uIEpwKGEpe3ZhciBiPWEuc3BsaXQoL1s/I10vKSxjPS9bP10vLnRlc3QoYSk/Ij8iK2JbMV06IiI7cmV0dXJue3prOmJbMF0scGFyYW1zOmMsZnJhZ21lbnQ6L1sjXS8udGVzdChhKT8iIyIrKGM/YlsyXTpiWzFdKToiIn19ZnVuY3Rpb24gS3AoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gamMoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGpjKGMpfQpmdW5jdGlvbiBMcChhLGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7ZyE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZyk/Zy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBlKGwsaCl9KTooYis9ZitlbmNvZGVVUklDb21wb25lbnQoaCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChnKSxmPSImIikpfXZhciBmPWIubGVuZ3RoPyImIjoiPyI7ZC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQ9T2JqZWN0LmVudHJpZXMoZCkpO0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3JldHVybiBlKGdbMV0sZ1swXSl9KTpkLmZvckVhY2goZSk7cmV0dXJuIGpjKGErYitjKX1mdW5jdGlvbiBNcChhLGIpe3ZhciBjPUpwKGtjKGEpLnRvU3RyaW5nKCkpLGQ9Yy56ay5zbGljZSgtMSk9PT0iLyI/IiI6Ii8iLGU9Yy56aytkK2VuY29kZVVSSUNvbXBvbmVudChiKTtyZXR1cm4gamMoZStjLnBhcmFtcytjLmZyYWdtZW50KX07dmFyIE5wPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEsZD0wO2Q8NTA7KytkKXt2YXIgZTt0cnl7ZT0hKCFjLmZyYW1lc3x8IWMuZnJhbWVzW2JdKX1jYXRjaChoKXtlPSExfWlmKGUpcmV0dXJuIGM7dmFyIGY7YTp7dHJ5e3ZhciBnPWMucGFyZW50O2lmKGcmJmchPT1jKXtmPWc7YnJlYWsgYX19Y2F0Y2goaCl7fWY9bnVsbH1pZighKGM9ZikpYnJlYWt9cmV0dXJuIG51bGx9LE9wPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi50b3A9PWIpcmV0dXJuIDA7aWYoYT09PXZvaWQgMD8wOmEpe3ZhciBjPWIubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGMpcmV0dXJuIGNbYy5sZW5ndGgtMV09PWIubG9jYXRpb24ub3JpZ2luPzE6Mn1yZXR1cm4gRXAoYi50b3ApPzE6Mn0sUHA9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiaW1nIil9O2Z1bmN0aW9uIFFwKGEpe2Zvcih2YXIgYj1bXSxjPUIuY29va2llLnNwbGl0KCI7IiksZD1uZXcgUmVnRXhwKCJeXFxzKiIrKGF8fCJfZ2FjIikrIl8oVUEtXFxkKy1cXGQrKT1cXHMqKC4rPylcXHMqJCIpLGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS5tYXRjaChkKTtmJiZiLnB1c2goe3VkOmZbMV0sdmFsdWU6ZlsyXSx0aW1lc3RhbXA6TnVtYmVyKGZbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1iLnNvcnQoZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gYn0KZnVuY3Rpb24gUnAoYSxiKXt2YXIgYz1RcChhKSxkPXt9O2lmKCFjfHwhYy5sZW5ndGgpcmV0dXJuIGQ7Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0udmFsdWUuc3BsaXQoIi4iKTtpZighKGZbMF0hPT0iMSJ8fGImJmYubGVuZ3RoPDN8fCFiJiZmLmxlbmd0aCE9PTMpJiZOdW1iZXIoZlsxXSkpe2RbY1tlXS51ZF18fChkW2NbZV0udWRdPVtdKTt2YXIgZz17dmVyc2lvbjpmWzBdLHRpbWVzdGFtcDpOdW1iZXIoZlsxXSkqMUUzLGdjbGlkOmZbMl19O2ImJmYubGVuZ3RoPjMmJihnLmxhYmVscz1mLnNsaWNlKDMpKTtkW2NbZV0udWRdLnB1c2goZyl9fXJldHVybiBkfTtmdW5jdGlvbiBTcChhKXtyZXR1cm4gYS5vcmlnaW4hPT0ibnVsbCJ9O3ZhciBUcD17fSxVcD0oVHAuaz17bmE6L15bXHctXSskL30sVHAuYj17bmE6L15bXHctXSskLyxuazohMH0sVHAuaT17bmE6L15bMS05XVxkKiQvfSxUcC5oPXtuYTovXlxkKyQvfSxUcC50PXtuYTovXlsxLTldXGQqJC99LFRwLmQ9e25hOi9eW0EtWmEtejAtOV8tXSskL30sVHAuaj17bmE6L15cZCskL30sVHAudT17bmE6L15bMS05XVxkKiQvfSxUcC5sPXtuYTovXlswMV0kL30sVHAubz17bmE6L15bMS05XVxkKiQvfSxUcC5nPXtuYTovXlswMV0kL30sVHAucz17bmE6L14uKyQvfSxUcC5tPXtuYTovXlswMV0kL30sVHApO3ZhciBWcD17fSxacD0oVnBbNV09e2ppOnsyOldwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJ1Il19LFZwWzRdPXtqaTp7MjpXcCxHQ0w6WHB9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsIm0iXX0sVnBbMl09e2ppOntHUzI6V3AsR1MxOllwfSxaajoiR1MyIixSaDoic29ndGpsaGQiLnNwbGl0KCIiKX0sVnApO2Z1bmN0aW9uICRwKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF07Yz09bnVsbHx8YyhlKTtpZihlKXt2YXIgZj1kLmppW2VdO2lmKGYpcmV0dXJuIGYoYSxiKX19fQpmdW5jdGlvbiBXcChhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpe3ZhciBkPWNbMl07aWYoZC5pbmRleE9mKCIkIik9PT0tMSYmZC5pbmRleE9mKCIlMjQiKSE9PS0xKXRyeXtkPWRlY29kZVVSSUNvbXBvbmVudChkKX1jYXRjaCh0KXt9dmFyIGU9e30sZj1acFtiXTtpZihmKXtmb3IodmFyIGc9Zi5SaCxoPW0oZC5zcGxpdCgiJCIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPW5bMF07aWYoZy5pbmRleE9mKHApIT09LTEpdHJ5e3ZhciBxPWRlY29kZVVSSUNvbXBvbmVudChuLnN1YnN0cmluZygxKSkscj1VcFtwXTtyJiYoci5uaz8oZVtwXT1lW3BdfHxbXSxlW3BdLnB1c2gocSkpOmVbcF09cSl9Y2F0Y2godCl7fX1yZXR1cm4gZX19fWZ1bmN0aW9uIGFxKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXJldHVybltkLlpqLGN8fCIxIixicShhLGIpXS5qb2luKCIuIil9CmZ1bmN0aW9uIGJxKGEsYil7dmFyIGM9WnBbYl07aWYoYyl7Zm9yKHZhciBkPVtdLGU9bShjLlJoKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVVwW2ddO2lmKGgpe3ZhciBsPWFbZ107aWYobCE9PXZvaWQgMClpZihoLm5rJiZBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytwLnZhbHVlKSk7ZWxzZSBkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crbCkpfX1yZXR1cm4gZC5qb2luKCIkIil9fWZ1bmN0aW9uIFhwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtiLnNoaWZ0KCk7dmFyIGM9Yi5zaGlmdCgpLGQ9Yi5zaGlmdCgpLGU9e307cmV0dXJuIGUuaz1kLGUuaT1jLGUuYj1iLGV9CmZ1bmN0aW9uIFlwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKS5zbGljZSgyKTtpZighKGIubGVuZ3RoPDV8fGIubGVuZ3RoPjcpKXt2YXIgYz17fTtyZXR1cm4gYy5zPWJbMF0sYy5vPWJbMV0sYy5nPWJbMl0sYy50PWJbM10sYy5qPWJbNF0sYy5sPWJbNV0sYy5oPWJbNl0sY319O2Z1bmN0aW9uIGNxKGEsYixjLGQpe3ZhciBlO3JldHVybihlPWRxKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09YX0sYixjLGQpW2FdKSE9bnVsbD9lOltdfWZ1bmN0aW9uIGRxKGEsYixjLGQpe3ZhciBlO2lmKGVxKGQpKXtmb3IodmFyIGY9e30sZz1TdHJpbmcoYnx8ZnEoKSkuc3BsaXQoIjsiKSxoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBsPWdbaF0uc3BsaXQoIj0iKSxuPWxbMF0udHJpbSgpO2lmKG4mJmEobikpe3ZhciBwPWwuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtwJiZjJiYocD1kZWNvZGVVUklDb21wb25lbnQocCkpO3ZhciBxPXZvaWQgMCxyPXZvaWQgMDsoKHE9Zilbcj1uXXx8KHFbcl09W10pKS5wdXNoKHApfX1lPWZ9ZWxzZSBlPXt9O3JldHVybiBlfQpmdW5jdGlvbiBncShhLGIsYyxkLGUpe2lmKGVxKGUpKXt2YXIgZj1ocShhLGQsZSk7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2lmKGYubGVuZ3RoIT09MCl7Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLkpyfSxiKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLldzfSxjKTtyZXR1cm4gZlswXX19fWZ1bmN0aW9uIGpxKGEsYixjLGQpe3ZhciBlPWZxKCksZj1BO1NwKGYpJiYoZi5kb2N1bWVudC5jb29raWU9YSk7dmFyIGc9ZnEoKTtyZXR1cm4gZSE9PWd8fGMhPT12b2lkIDAmJmNxKGIsZywhMSxkKS5pbmRleE9mKGMpPj0wfQpmdW5jdGlvbiBrcShhLGIsYyxkKXtmdW5jdGlvbiBlKHgseSx6KXtpZih6PT1udWxsKXJldHVybiBkZWxldGUgaFt5XSx4O2hbeV09ejtyZXR1cm4geCsiOyAiK3krIj0iK3p9ZnVuY3Rpb24gZih4LHkpe2lmKHk9PW51bGwpcmV0dXJuIHg7aFt5XT0hMDtyZXR1cm4geCsiOyAiK3l9aWYoIWVxKGMuTWMpKXJldHVybiAyO3ZhciBnO2I9PW51bGw/Zz1hKyI9ZGVsZXRlZDsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKTooYy5lbmNvZGUmJihiPWVuY29kZVVSSUNvbXBvbmVudChiKSksYj1scShiKSxnPWErIj0iK2IpO3ZhciBoPXt9O2c9ZShnLCJwYXRoIixjLnBhdGgpO3ZhciBsO2MuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGU/bD1jLmV4cGlyZXMudG9VVENTdHJpbmcoKTpjLmV4cGlyZXMhPW51bGwmJihsPSIiK2MuZXhwaXJlcyk7Zz1lKGcsImV4cGlyZXMiLGwpO2c9ZShnLCJtYXgtYWdlIixjLk9zKTtnPWUoZywic2FtZXNpdGUiLGMucnQpO2Muc2VjdXJlJiYKKGc9ZihnLCJzZWN1cmUiKSk7dmFyIG49Yy5kb21haW47aWYobiYmbi50b0xvd2VyQ2FzZSgpPT09ImF1dG8iKXtmb3IodmFyIHA9bXEoKSxxPXZvaWQgMCxyPSExLHQ9MDt0PHAubGVuZ3RoOysrdCl7dmFyIHU9cFt0XSE9PSJub25lIj9wW3RdOnZvaWQgMCx2PWUoZywiZG9tYWluIix1KTt2PWYodixjLmZsYWdzKTt0cnl7ZCYmZChhLGgpfWNhdGNoKHgpe3E9eDtjb250aW51ZX1yPSEwO2lmKCFucSh1LGMucGF0aCkmJmpxKHYsYSxiLGMuTWMpKXJldHVybiAwfWlmKHEmJiFyKXRocm93IHE7cmV0dXJuIDF9biYmbi50b0xvd2VyQ2FzZSgpIT09Im5vbmUiJiYoZz1lKGcsImRvbWFpbiIsbikpO2c9ZihnLGMuZmxhZ3MpO2QmJmQoYSxoKTtyZXR1cm4gbnEobixjLnBhdGgpPzE6anEoZyxhLGIsYy5NYyk/MDoxfWZ1bmN0aW9uIG9xKGEsYixjKXtjLnBhdGg9PW51bGwmJihjLnBhdGg9Ii8iKTtjLmRvbWFpbnx8KGMuZG9tYWluPSJhdXRvIik7cmV0dXJuIGtxKGEsYixjKX0KZnVuY3Rpb24gaXEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPVtdLGYsZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGw9YihoKTtsPT09Yz9kLnB1c2goaCk6Zj09PXZvaWQgMHx8bDxmPyhlPVtoXSxmPWwpOmw9PT1mJiZlLnB1c2goaCl9cmV0dXJuIGQubGVuZ3RoPjA/ZDplfWZ1bmN0aW9uIGhxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsYyksZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdLnNwbGl0KCIuIiksaD1nLnNoaWZ0KCk7aWYoIWJ8fCFofHxiLmluZGV4T2YoaCkhPT0tMSl7dmFyIGw9Zy5zaGlmdCgpO2lmKGwpe3ZhciBuPWwuc3BsaXQoIi0iKTtkLnB1c2goe0JyOmVbZl0sQ3I6Zy5qb2luKCIuIiksSnI6TnVtYmVyKG5bMF0pfHwxLFdzOk51bWJlcihuWzFdKXx8MX0pfX19cmV0dXJuIGR9ZnVuY3Rpb24gbHEoYSl7YSYmYS5sZW5ndGg+MTIwMCYmKGE9YS5zdWJzdHJpbmcoMCwxMjAwKSk7cmV0dXJuIGF9CnZhciBwcT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn0pPyQvLHFxPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pO2Z1bmN0aW9uIG5xKGEsYil7cmV0dXJuIGEhPT12b2lkIDAmJihxcS50ZXN0KEEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpfHxiPT09Ii8iJiZwcS50ZXN0KGEpKX1mdW5jdGlvbiBycShhKXtpZighYSlyZXR1cm4gMTt2YXIgYj1hO1lmKDQpJiZhPT09Im5vbmUiJiYoYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTtiPWIuaW5kZXhPZigiLiIpPT09MD9iLnN1YnN0cmluZygxKTpiO3JldHVybiBiLnNwbGl0KCIuIikubGVuZ3RofWZ1bmN0aW9uIHNxKGEpe2lmKCFhfHxhPT09Ii8iKXJldHVybiAxO2FbMF0hPT0iLyImJihhPSIvIithKTthW2EubGVuZ3RoLTFdIT09Ii8iJiYoYSs9Ii8iKTtyZXR1cm4gYS5zcGxpdCgiLyIpLmxlbmd0aC0xfQpmdW5jdGlvbiB0cShhLGIpe3ZhciBjPSIiK3JxKGEpLGQ9c3EoYik7ZD4xJiYoYys9Ii0iK2QpO3JldHVybiBjfQp2YXIgZnE9ZnVuY3Rpb24oKXt2YXIgYT1BO3JldHVybiBTcChhKT9hLmRvY3VtZW50LmNvb2tpZToiIn0sZXE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJllmKDUpPyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gRGwoYikmJkJsKGIpfSk6ITB9LG1xPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoYi5sZW5ndGg9PT00KXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKE51bWJlcihjKS50b1N0cmluZygpPT09YylyZXR1cm5bIm5vbmUiXX1mb3IodmFyIGQ9Yi5sZW5ndGgtMjtkPj0wO2QtLSlhLnB1c2goYi5zbGljZShkKS5qb2luKCIuIikpO3ZhciBlPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7cXEudGVzdChlKXx8cHEudGVzdChlKXx8YS5wdXNoKCJub25lIik7cmV0dXJuIGF9O2Z1bmN0aW9uIHVxKGEsYixjLGQpe3ZhciBlLGY9TnVtYmVyKGEucGQhPW51bGw/YS5wZDp2b2lkIDApO2YhPT0wJiYoZT1uZXcgRGF0ZSgoYnx8TmIoKSkrMUUzKihmfHw3Nzc2RTMpKSk7cmV0dXJue3BhdGg6YS5wYXRoLGRvbWFpbjphLmRvbWFpbixmbGFnczphLmZsYWdzLGVuY29kZTohIWMsZXhwaXJlczplLE1jOmR9fTt2YXIgdnE9bmV3IE1hcChbWzUsImFkX3N0b3JhZ2UiXSxbNCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV0sWzIsImFuYWx5dGljc19zdG9yYWdlIl1dKTtmdW5jdGlvbiB3cShhLGIsYyl7aWYoWnBbYl0pe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoYikpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9JHAoZy52YWx1ZSxiLGMpO2gmJmQucHVzaCh4cShoKSl9cmV0dXJuIGR9fQpmdW5jdGlvbiB5cShhKXt2YXIgYj16cTtpZihacFsyXSl7Zm9yKHZhciBjPXt9LGQ9ZHEoYSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSksZT1PYmplY3Qua2V5cyhkKS5zb3J0KCksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9bShkW2hdKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9JHAobi52YWx1ZSwyLGIpO3AmJihjW2hdfHwoY1toXT1bXSksY1toXS5wdXNoKHhxKHApKSl9cmV0dXJuIGN9fWZ1bmN0aW9uIEFxKGEsYixjLGQsZSl7ZD1kfHx7fTt2YXIgZj10cShkLmRvbWFpbixkLnBhdGgpLGc9YXEoYixjLGYpO2lmKCFnKXJldHVybiAxO3ZhciBoPXVxKGQsZSx2b2lkIDAsdnEuZ2V0KGMpKTtyZXR1cm4gb3EoYSxnLGgpfWZ1bmN0aW9uIEJxKGEsYil7dmFyIGM9Yi5uYTtyZXR1cm4gdHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoYSk6Yy50ZXN0KGEpfQpmdW5jdGlvbiB4cShhKXtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhKSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17QWc6dm9pZCAwfSxjPWIubmV4dCgpKXt2YXIgZT1jLnZhbHVlLGY9YVtlXTtkLkFnPVVwW2VdO2QuQWc/ZC5BZy5uaz9hW2VdPUFycmF5LmlzQXJyYXkoZik/Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBCcShoLGcuQWcpfX0oZCkpOnZvaWQgMDp0eXBlb2YgZj09PSJzdHJpbmciJiZCcShmLGQuQWcpfHwoYVtlXT12b2lkIDApOmFbZV09dm9pZCAwfXJldHVybiBhfTt2YXIgQ3E7ZnVuY3Rpb24gRHEoKXtmdW5jdGlvbiBhKGcpe2MoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfWZ1bmN0aW9uIGIoZyl7ZChnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9dmFyIGM9RXEsZD1GcSxlPUdxKCk7aWYoIWUuaW5pdCl7JGMoQiwibW91c2Vkb3duIixhKTskYyhCLCJrZXl1cCIsYSk7JGMoQiwic3VibWl0IixiKTt2YXIgZj1IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdDtIVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdD1mdW5jdGlvbigpe2QodGhpcyk7Zi5jYWxsKHRoaXMpfTtlLmluaXQ9ITB9fWZ1bmN0aW9uIEhxKGEsYixjLGQsZSl7dmFyIGY9e2NhbGxiYWNrOmEsZG9tYWluczpiLGZyYWdtZW50OmM9PT0yLHBsYWNlbWVudDpjLGZvcm1zOmQsc2FtZUhvc3Q6ZX07R3EoKS5kZWNvcmF0b3JzLnB1c2goZil9CmZ1bmN0aW9uIElxKGEsYixjKXtmb3IodmFyIGQ9R3EoKS5kZWNvcmF0b3JzLGU9e30sZj0wO2Y8ZC5sZW5ndGg7KytmKXt2YXIgZz1kW2ZdLGg7aWYoaD0hY3x8Zy5mb3JtcylhOnt2YXIgbD1nLmRvbWFpbnMsbj1hLHA9ISFnLnNhbWVIb3N0O2lmKGwmJihwfHxuIT09Qi5sb2NhdGlvbi5ob3N0bmFtZSkpZm9yKHZhciBxPTA7cTxsLmxlbmd0aDtxKyspaWYobFtxXWluc3RhbmNlb2YgUmVnRXhwKXtpZihsW3FdLnRlc3Qobikpe2g9ITA7YnJlYWsgYX19ZWxzZSBpZihuLmluZGV4T2YobFtxXSk+PTB8fHAmJmxbcV0uaW5kZXhPZihuKT49MCl7aD0hMDticmVhayBhfWg9ITF9aWYoaCl7dmFyIHI9Zy5wbGFjZW1lbnQ7cj09PXZvaWQgMCYmKHI9Zy5mcmFnbWVudD8yOjEpO3I9PT1iJiZRYihlLGcuY2FsbGJhY2soKSl9fXJldHVybiBlfQpmdW5jdGlvbiBHcSgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEuZ2w7YiYmYi5kZWNvcmF0b3JzfHwoYj17ZGVjb3JhdG9yczpbXX0sYS5nbD1iKTtyZXR1cm4gYn07dmFyIEpxPS8oLio/KVwqKC4qPylcKiguKikvLEtxPS9eaHR0cHM/OlwvXC8oW15cL10qPylcLj9jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyguKikvLExxPS9eKD86d3d3XC58bVwufGFtcFwuKSsvLE1xPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIE5xKGEpe3ZhciBiPU1xLmV4ZWMoYSk7aWYoYilyZXR1cm57aGs6YlsxXSxxdWVyeTpiWzJdLGZyYWdtZW50OmJbM119fWZ1bmN0aW9uIE9xKGEpe3JldHVybiBuZXcgUmVnRXhwKCIoLio/KShefCYpIithKyI9KFteJl0qKSY/KC4qKSIpfQpmdW5jdGlvbiBQcShhLGIpe3ZhciBjPVtIYy51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLEhjLnVzZXJMYW5ndWFnZXx8SGMubGFuZ3VhZ2UsTWF0aC5mbG9vcihOYigpLzYwLzFFMyktKGI9PT12b2lkIDA/MDpiKSxhXS5qb2luKCIqIiksZDtpZighKGQ9Q3EpKXtmb3IodmFyIGU9QXJyYXkoMjU2KSxmPTA7ZjwyNTY7ZisrKXtmb3IodmFyIGc9ZixoPTA7aDw4O2grKylnPWcmMT9nPj4+MV4zOTg4MjkyMzg0Omc+Pj4xO2VbZl09Z31kPWV9Q3E9ZDtmb3IodmFyIGw9NDI5NDk2NzI5NSxuPTA7bjxjLmxlbmd0aDtuKyspbD1sPj4+OF5DcVsobF5jLmNoYXJDb2RlQXQobikpJjI1NV07cmV0dXJuKChsXi0xKT4+PjApLnRvU3RyaW5nKDM2KX0KZnVuY3Rpb24gUXEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPVJqKEEubG9jYXRpb24uaHJlZiksZD1jLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZT1JaihkLCJfZ2wiLCExLCEwKXx8IiI7Yi5xdWVyeT1ScShlKXx8e307dmFyIGY9TGooYywiZnJhZ21lbnQiKSxnO3ZhciBoPS0xO2lmKFNiKGYsIl9nbD0iKSloPTQ7ZWxzZXt2YXIgbD1mLmluZGV4T2YoIiZfZ2w9Iik7bD4wJiYoaD1sKzMrMil9aWYoaDwwKWc9dm9pZCAwO2Vsc2V7dmFyIG49Zi5pbmRleE9mKCImIixoKTtnPW48MD9mLnN1YnN0cmluZyhoKTpmLnN1YnN0cmluZyhoLG4pfWIuZnJhZ21lbnQ9UnEoZ3x8IiIpfHx7fTthJiZTcShjLGQsZil9fWZ1bmN0aW9uIFRxKGEsYil7dmFyIGM9T3EoYSkuZXhlYyhiKSxkPWI7aWYoYyl7dmFyIGU9Y1syXSxmPWNbNF07ZD1jWzFdO2YmJihkPWQrZStmKX1yZXR1cm4gZH0KZnVuY3Rpb24gU3EoYSxiLGMpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgbD1UcSgiX2dsIixnKTtsLmxlbmd0aCYmKGw9aCtsKTtyZXR1cm4gbH1pZihHYyYmR2MucmVwbGFjZVN0YXRlKXt2YXIgZT1PcSgiX2dsIik7aWYoZS50ZXN0KGIpfHxlLnRlc3QoYykpe3ZhciBmPUxqKGEsInBhdGgiKTtiPWQoYiwiPyIpO2M9ZChjLCIjIik7R2MucmVwbGFjZVN0YXRlKHt9LCIiLCIiK2YrYitjKX19fWZ1bmN0aW9uIFVxKGEsYil7dmFyIGM9UXEoISFiKSxkPUdxKCk7ZC5kYXRhfHwoZC5kYXRhPXtxdWVyeTp7fSxmcmFnbWVudDp7fX0sYyhkLmRhdGEpKTt2YXIgZT17fSxmPWQuZGF0YTtmJiYoUWIoZSxmLnF1ZXJ5KSxhJiZRYihlLGYuZnJhZ21lbnQpKTtyZXR1cm4gZX0KdmFyIFJxPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1WcShhLDMpO2lmKGIhPT12b2lkIDApe2Zvcih2YXIgYz17fSxkPWI/Yi5zcGxpdCgiKiIpOltdLGU9MDtlKzE8ZC5sZW5ndGg7ZSs9Mil7dmFyIGY9ZFtlXSxnPXFiKGRbZSsxXSk7Y1tmXT1nfXNiKCJUQUdHSU5HIiw2KTtyZXR1cm4gY319Y2F0Y2goaCl7c2IoIlRBR0dJTkciLDgpfX07ZnVuY3Rpb24gVnEoYSxiKXtpZihhKXt2YXIgYzthOntmb3IodmFyIGQ9YSxlPTA7ZTwzOysrZSl7dmFyIGY9SnEuZXhlYyhkKTtpZihmKXtjPWY7YnJlYWsgYX1kPUtqKGQpfHwiIn1jPXZvaWQgMH12YXIgZz1jO2lmKGcmJmdbMV09PT0iMSIpe3ZhciBoPWdbM10sbDthOntmb3IodmFyIG49Z1syXSxwPTA7cDxiOysrcClpZihuPT09UHEoaCxwKSl7bD0hMDticmVhayBhfWw9ITF9aWYobClyZXR1cm4gaDtzYigiVEFHR0lORyIsNyl9fX0KZnVuY3Rpb24gV3EoYSxiLGMsZCxlKXtmdW5jdGlvbiBmKHApe3A9VHEoYSxwKTt2YXIgcT1wLmNoYXJBdChwLmxlbmd0aC0xKTtwJiZxIT09IiYiJiYocCs9IiYiKTtyZXR1cm4gcCtufWQ9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBnPU5xKGMpO2lmKCFnKXJldHVybiIiO3ZhciBoPWcucXVlcnl8fCIiLGw9Zy5mcmFnbWVudHx8IiIsbj1hKyI9IitiO2Q/bC5zdWJzdHJpbmcoMSkubGVuZ3RoIT09MCYmZXx8KGw9IiMiK2YobC5zdWJzdHJpbmcoMSkpKTpoPSI/IitmKGguc3Vic3RyaW5nKDEpKTtyZXR1cm4iIitnLmhrK2grbH0KZnVuY3Rpb24gWHEoYSxiKXtmdW5jdGlvbiBjKG4scCxxKXt2YXIgcjthOntmb3IodmFyIHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpKXtyPSEwO2JyZWFrIGF9cj0hMX1pZihyKXt2YXIgdSx2PVtdLHg7Zm9yKHggaW4gbilpZihuLmhhc093blByb3BlcnR5KHgpKXt2YXIgeT1uW3hdO3khPT12b2lkIDAmJnk9PT15JiZ5IT09bnVsbCYmeS50b1N0cmluZygpIT09IltvYmplY3QgT2JqZWN0XSImJih2LnB1c2goeCksdi5wdXNoKHBiKFN0cmluZyh5KSkpKX12YXIgej12LmpvaW4oIioiKTt1PVsiMSIsUHEoeiksel0uam9pbigiKiIpO2Q/KFlmKDMpfHxZZigxKXx8IXApJiZZcSgiX2dsIix1LGEscCxxKTpacSgiX2dsIix1LGEscCxxKX19dmFyIGQ9KGEudGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk9PT0iRk9STSIsZT1JcShiLDEsZCksZj1JcShiLDIsZCksZz1JcShiLDQsZCksaD1JcShiLDMsZCk7YyhlLCExLCExKTtjKGYsITAsITEpO1lmKDEpJiZjKGcsITAsITApO2Zvcih2YXIgbCBpbiBoKWguaGFzT3duUHJvcGVydHkobCkmJgokcShsLGhbbF0sYSl9ZnVuY3Rpb24gJHEoYSxiLGMpe2MudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImEiP1pxKGEsYixjKTpjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJmb3JtIiYmWXEoYSxiLGMpfWZ1bmN0aW9uIFpxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY7aWYoZj1jLmhyZWYpe3ZhciBnO2lmKCEoZz1kKSl7dmFyIGg9QS5sb2NhdGlvbi5ocmVmLGw9TnEoYy5ocmVmKSxuPU5xKGgpO2c9IShsJiZuJiZsLmhrPT09bi5oayYmbC5xdWVyeT09PW4ucXVlcnkmJmwuZnJhZ21lbnQpfWY9Z31pZihmKXt2YXIgcD1XcShhLGIsYy5ocmVmLGQsZSk7dmMudGVzdChwKSYmKGMuaHJlZj1wKX19CmZ1bmN0aW9uIFlxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7aWYoYyl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpfHwiIjtpZihmKXt2YXIgZz0oYy5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKGchPT0iZ2V0Inx8ZCl7aWYoZz09PSJnZXQifHxnPT09InBvc3QiKXt2YXIgaD1XcShhLGIsZixkLGUpO3ZjLnRlc3QoaCkmJihjLmFjdGlvbj1oKX19ZWxzZXtmb3IodmFyIGw9Yy5jaGlsZE5vZGVzfHxbXSxuPSExLHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIHE9bFtwXTtpZihxLm5hbWU9PT1hKXtxLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO249ITA7YnJlYWt9fWlmKCFuKXt2YXIgcj1CLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7ci5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKTtyLnNldEF0dHJpYnV0ZSgibmFtZSIsYSk7ci5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtjLmFwcGVuZENoaWxkKHIpfX19fX0KZnVuY3Rpb24gRXEoYSl7dHJ5e3ZhciBiO2E6e2Zvcih2YXIgYz1hLGQ9MTAwO2MmJmQ+MDspe2lmKGMuaHJlZiYmYy5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe2I9YzticmVhayBhfWM9Yy5wYXJlbnROb2RlO2QtLX1iPW51bGx9dmFyIGU9YjtpZihlKXt2YXIgZj1lLnByb3RvY29sO2YhPT0iaHR0cDoiJiZmIT09Imh0dHBzOiJ8fFhxKGUsZS5ob3N0bmFtZSl9fWNhdGNoKGcpe319ZnVuY3Rpb24gRnEoYSl7dHJ5e3ZhciBiPWEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihiKXt2YXIgYz1MaihSaihiKSwiaG9zdCIpO1hxKGEsYyl9fWNhdGNoKGQpe319ZnVuY3Rpb24gYXIoYSxiLGMsZCl7RHEoKTt2YXIgZT1jPT09ImZyYWdtZW50Ij8yOjE7ZD0hIWQ7SHEoYSxiLGUsZCwhMSk7ZT09PTImJnNiKCJUQUdHSU5HIiwyMyk7ZCYmc2IoIlRBR0dJTkciLDI0KX0KZnVuY3Rpb24gYnIoYSxiKXtEcSgpO0hxKGEsW05qKEEubG9jYXRpb24sImhvc3QiLCEwKV0sYiwhMCwhMCl9ZnVuY3Rpb24gY3IoKXt2YXIgYT1CLmxvY2F0aW9uLmhvc3RuYW1lLGI9S3EuZXhlYyhCLnJlZmVycmVyKTtpZighYilyZXR1cm4hMTt2YXIgYz1iWzJdLGQ9YlsxXSxlPSIiO2lmKGMpe3ZhciBmPWMuc3BsaXQoIi8iKSxnPWZbMV07ZT1nPT09InMiP0tqKGZbMl0pfHwiIjpLaihnKXx8IiJ9ZWxzZSBpZihkKXtpZihkLmluZGV4T2YoInhuLS0iKT09PTApcmV0dXJuITE7ZT1kLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpfXZhciBoPWEucmVwbGFjZShMcSwiIiksbD1lLnJlcGxhY2UoTHEsIiIpO3JldHVybiBoPT09bHx8VGIoaCwiLiIrbCl9ZnVuY3Rpb24gZHIoYSxiKXtyZXR1cm4gYT09PSExPyExOmF8fGJ8fGNyKCl9O3ZhciBlcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPTA7dGhpcy52YWx1ZT1hPT09dm9pZCAwPzA6YX07ZXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXw9MTw8YX07dmFyIGZyPWZ1bmN0aW9uKGEsYil7Yjw9MHx8KGEudmFsdWV8PTE8PGItMSl9O2VyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07ZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWUmPX4oMTw8YSl9O2VyLnByb3RvdHlwZS5jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMudmFsdWU9MH07ZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZT09PWEudmFsdWV9O2Z1bmN0aW9uIGdyKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgVWludDhBcnJheShhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hhckNvZGVBdCgwKX0pKX1jYXRjaChiKXt9fWZ1bmN0aW9uIGhyKGEsYil7dmFyIGM9MCxkPTAsZSxmPWI7ZG97aWYoZj49YS5sZW5ndGgpcmV0dXJuO2U9YVtmKytdO2N8PShlJjEyNyk8PGQ7ZCs9N313aGlsZShlJjEyOCk7cmV0dXJuW2MsZl19O2Z1bmN0aW9uIGlyKCl7dmFyIGE9U3RyaW5nLGI9QS5sb2NhdGlvbi5ob3N0bmFtZSxjPUEubG9jYXRpb24ucGF0aG5hbWUsZD1iPWJjKGIpO2Quc3BsaXQoIi4iKS5sZW5ndGg+MiYmKGQ9ZC5yZXBsYWNlKC9eKHd3d1swLTldKnx3ZWJ8ZnRwfHdhcHxob21lfG18d3xhbXB8bW9iaWxlKVwuLywiIikpO2I9ZDtjPWJjKGMpO3ZhciBlPWMuc3BsaXQoIjsiKVswXTtlPWUucmVwbGFjZSgvXC8oYXJ8c2xwfHdlYnxpbmRleCk/XC8/JC8sIiIpO3JldHVybiBhKG5nKCgiIitiK2UpLnRvTG93ZXJDYXNlKCkpKX07dmFyIGpyPVsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdO2Z1bmN0aW9uIGtyKGEsYil7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMiksMTA7aWYoYj09PW51bGx8fGI9PT12b2lkIDB8fGI9PT0iIilyZXR1cm4gc2IoIlRBR0dJTkciLDMzKSwxMTt2YXIgYz1scighMSk7aWYoYy5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwzNCksYy5lcnJvcjtpZighYy52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDM1KSwyO2MudmFsdWVbYV09Yjt2YXIgZD1tcihjKTtkIT09MCYmc2IoIlRBR0dJTkciLDM2KTtyZXR1cm4gZH0KZnVuY3Rpb24gbnIoYSl7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwyNykse2Vycm9yOjEwfTt2YXIgYj1scigpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMjkpLGI7aWYoIWIudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMCkse2Vycm9yOjJ9O2lmKCEoYSBpbiBiLnZhbHVlKSlyZXR1cm4gc2IoIlRBR0dJTkciLDMxKSx7dmFsdWU6dm9pZCAwLGVycm9yOjE1fTt2YXIgYz1iLnZhbHVlW2FdO3JldHVybiBjPT09bnVsbHx8Yz09PXZvaWQgMHx8Yz09PSIiPyhzYigiVEFHR0lORyIsMjgpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTF9KTp7dmFsdWU6YyxlcnJvcjowfX0KZnVuY3Rpb24gb3IoYSl7aWYoYSl7dmFyIGI9bHIoITEpO2IuZXJyb3IhPT0wP3NiKCJUQUdHSU5HIiwzOCk6Yi52YWx1ZT9hIGluIGIudmFsdWU/KGRlbGV0ZSBiLnZhbHVlW2FdLG1yKGIpIT09MCYmc2IoIlRBR0dJTkciLDQxKSk6c2IoIlRBR0dJTkciLDQwKTpzYigiVEFHR0lORyIsMzkpfWVsc2Ugc2IoIlRBR0dJTkciLDM3KX0KZnVuY3Rpb24gbHIoYSl7YT1hPT09dm9pZCAwPyEwOmE7aWYoIUJsKGpyKSlyZXR1cm4gc2IoIlRBR0dJTkciLDQzKSx7ZXJyb3I6M307dHJ5e2lmKCFBLmxvY2FsU3RvcmFnZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQ0KSx7ZXJyb3I6MX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0NSkse2Vycm9yOjE0fX12YXIgYj17c2NoZW1hOiJnY2wiLHZlcnNpb246MX0sYz12b2lkIDA7dHJ5e2M9QS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX2djbF9scyIpfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDYpLHtlcnJvcjoxM319dHJ5e2lmKGMpe3ZhciBkPUpTT04ucGFyc2UoYyk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0IiliPWQ7ZWxzZSByZXR1cm4gc2IoIlRBR0dJTkciLDQ3KSx7ZXJyb3I6MTJ9fX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19aWYoYi5zY2hlbWEhPT0iZ2NsIilyZXR1cm4gc2IoIlRBR0dJTkciLDQ5KSx7ZXJyb3I6NH07CmlmKGIudmVyc2lvbiE9PTEpcmV0dXJuIHNiKCJUQUdHSU5HIiw1MCkse2Vycm9yOjV9O3RyeXt2YXIgZT1wcihiKTthJiZlJiZtcih7dmFsdWU6YixlcnJvcjowfSl9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fXJldHVybnt2YWx1ZTpiLGVycm9yOjB9fQpmdW5jdGlvbiBwcihhKXtpZighYXx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZigiZXhwaXJlcyJpbiBhJiYidmFsdWUiaW4gYSl7dmFyIGI7dHlwZW9mIGEuZXhwaXJlcz09PSJudW1iZXIiP2I9YS5leHBpcmVzOmI9dHlwZW9mIGEuZXhwaXJlcz09PSJzdHJpbmciP051bWJlcihhLmV4cGlyZXMpOk5hTjtpZihpc05hTihiKXx8IShEYXRlLm5vdygpPD1iKSlyZXR1cm4gYS52YWx1ZT1udWxsLGEuZXJyb3I9OSxzYigiVEFHR0lORyIsNTQpLCEwfWVsc2V7Zm9yKHZhciBjPSExLGQ9bShPYmplY3Qua2V5cyhhKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYz1wcihhW2UudmFsdWVdKXx8YztyZXR1cm4gY31yZXR1cm4hMX0KZnVuY3Rpb24gbXIoYSl7aWYoYS5lcnJvcilyZXR1cm4gYS5lcnJvcjtpZighYS52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQyKSwyO3ZhciBiPWEudmFsdWUsYzt0cnl7Yz1KU09OLnN0cmluZ2lmeShiKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUyKSw2fXRyeXtBLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJfZ2NsX2xzIixjKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUzKSw3fXJldHVybiAwfTt2YXIgcXI9e30scnI9KHFyLmdjbGlkPSEwLHFyLmRjbGlkPSEwLHFyLmdicmFpZD0hMCxxci53YnJhaWQ9ITAscXIpLHNyPS9eXHcrJC8sdHI9L15bXHctXSskLyx1cj17fSx2cj0odXIuYXc9IkZQR0NMQVciLHVyKSx3cj17fSx4cj0od3IuYWc9Il9hZyIsd3IuZ2I9Il9nYiIsd3IuYXc9Il9hdyIsd3IuZGM9Il9kYyIsd3IuZ2Y9Il9nZiIsd3IuaGE9Il9oYSIsd3IuZ3A9Il9ncCIsd3IuZ3M9Il9ncyIsd3IpLHlyPS9eKD86d3d3XC4pP2dvb2dsZSg/OlwuY29tPyk/KD86XC5bYS16XXsyfXQ/KT8kLyx6cj0vXnd3d1wuZ29vZ2xlYWRzZXJ2aWNlc1wuY29tJC87ZnVuY3Rpb24gQXIoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX1mdW5jdGlvbiBCcihhKXtyZXR1cm4hWWYoNSl8fEJsKGEpfWZ1bmN0aW9uIENyKGEsYil7ZnVuY3Rpb24gYygpe3ZhciBkPUJyKGIpO2QmJmEoKTtyZXR1cm4gZH1IbChmdW5jdGlvbigpe2MoKXx8SWwoYyxiKX0sYil9CmZ1bmN0aW9uIERyKGEpe3JldHVybiBFcihhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBGcihhKXtyZXR1cm4gR3IoYSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gR3IoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1IcihhLnByZWZpeCksZD1JcigiZ2IiLGMpLGU9SXIoImFnIixjKTtpZighZXx8IWQpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uemc9bDtyZXR1cm4gbn19LGc9RXIoZCxiKS5tYXAoZigiZ2IiKSksaD1KcihlKS5tYXAoZigiYWciKSk7cmV0dXJuIGcuY29uY2F0KGgpLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gS3IoYSxiLGMsZCxlKXt2YXIgZj1DYihhLGZ1bmN0aW9uKGcpe3JldHVybiBnLmdjbGlkPT09Yn0pO2Y/KGYudGltZXN0YW1wPGMmJihmLnRpbWVzdGFtcD1jLGYub2Q9ZSksZi5sYWJlbHM9THIoZi5sYWJlbHN8fFtdLGR8fFtdKSk6YS5wdXNoKHt2ZXJzaW9uOiIyIixnY2xpZDpiLHRpbWVzdGFtcDpjLGxhYmVsczpkLG9kOmV9KX1mdW5jdGlvbiBNcihhKXtmb3IodmFyIGI9d3EoYSw1KXx8W10sYz1bXSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1mLGg9TnIoZik7aCYmS3IoYyxnLmssaCxnLmJ8fFtdLGYudSl9cmV0dXJuIGMuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBFcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO09yKGMsYSwxKTtpZihiKWlmKFRiKGEsIl9hdyIpKXt2YXIgZD1QcigpO2QmJihkLm9kPXZvaWQgMCxkLm9hPWQub2F8fFsyXSxRcihjLGQpKTtPcihjLCJnY2xfYXciLDIpfWVsc2UgVGIoYSwiX2diIikmJllmKDYpJiZPcihjLCJnY2xfZ2IiLDIpO2Muc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBmLnRpbWVzdGFtcC1lLnRpbWVzdGFtcH0pO3JldHVybiBScihjKX1mdW5jdGlvbiBTcihhLGIpe2Zvcih2YXIgYz1bXSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Yy5pbmNsdWRlcyhmKXx8Yy5wdXNoKGYpfWZvcih2YXIgZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2MuaW5jbHVkZXMobCl8fGMucHVzaChsKX1yZXR1cm4gY30KZnVuY3Rpb24gUXIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZCxlLGY9bShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZihoLmdjbGlkPT09Yi5nY2xpZCl7ZD1oO2JyZWFrfWgucWEmJmIucWEmJmgucWEuZXF1YWxzKGIucWEpJiYoZT1oKX1pZihkKXt2YXIgbCxuLHA9KGw9ZC5xYSkhPW51bGw/bDpuZXcgZXIscT0obj1iLnFhKSE9bnVsbD9uOm5ldyBlcjtwLnZhbHVlfD1xLnZhbHVlO2QucWE9cDtkLnRpbWVzdGFtcDxiLnRpbWVzdGFtcCYmKGQudGltZXN0YW1wPWIudGltZXN0YW1wLGQub2Q9Yi5vZCk7ZC5sYWJlbHM9U3IoZC5sYWJlbHN8fFtdLGIubGFiZWxzfHxbXSk7ZC5vYT1TcihkLm9hfHxbXSxiLm9hfHxbXSl9ZWxzZSBjJiZlP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxiKTphLnB1c2goYil9CmZ1bmN0aW9uIFRyKGEpe2lmKCFhKXJldHVybiBuZXcgZXI7dmFyIGI9bmV3IGVyO2lmKGE9PT0xKXJldHVybiBmcihiLDIpLGZyKGIsMyksYjtmcihiLGEpO3JldHVybiBifQpmdW5jdGlvbiBQcigpe3ZhciBhPW5yKCJnY2xpZCIpO2lmKCFhfHxhLmVycm9yfHwhYS52YWx1ZXx8dHlwZW9mIGEudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYj1hLnZhbHVlO3RyeXtpZighKCJ2YWx1ZSJpbiBiJiZiLnZhbHVlKXx8dHlwZW9mIGIudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYz1iLnZhbHVlLGQ9Yy52YWx1ZTtpZighZHx8IWQubWF0Y2godHIpKXJldHVybiBudWxsO3ZhciBlPWMubGlua0RlY29yYXRpb25Tb3VyY2UsZj1jLmxpbmtEZWNvcmF0aW9uU291cmNlcyxnPW5ldyBlcjt0eXBlb2YgZT09PSJudW1iZXIiP2c9VHIoZSk6dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGcudmFsdWU9Zik7cmV0dXJue3ZlcnNpb246IiIsZ2NsaWQ6ZCx0aW1lc3RhbXA6TnVtYmVyKGMuY3JlYXRpb25UaW1lTXMpfHwwLGxhYmVsczpbXSxxYTpnLG9hOlsyXX19Y2F0Y2goaCl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBVcihhKXt2YXIgYj1ucihhKTtpZihiLmVycm9yIT09MClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGIudmFsdWUucmVkdWNlKGZ1bmN0aW9uKGMsZCl7aWYoIWQudmFsdWV8fHR5cGVvZiBkLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIGM7dmFyIGU9ZC52YWx1ZSxmPWUudmFsdWU7aWYoIWZ8fCFmLm1hdGNoKHRyKSlyZXR1cm4gYzt2YXIgZz1uZXcgZXIsaD1lLmxpbmtEZWNvcmF0aW9uU291cmNlczt0eXBlb2YgaD09PSJudW1iZXIiJiYoZy52YWx1ZT1oKTt2YXIgbDtjLnB1c2goe3ZlcnNpb246IiIsZ2NsaWQ6Zix0aW1lc3RhbXA6TnVtYmVyKGUuY3JlYXRpb25UaW1lTXMpfHwwLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl8fDAsbGFiZWxzOihsPWUubGFiZWxzKSE9bnVsbD9sOltdLHFhOmcsb2E6WzJdfSk7cmV0dXJuIGN9LFtdKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIE9yKGEsYixjKXtpZihjPT09MSlmb3IodmFyIGQ9Y3EoYixCLmNvb2tpZSx2b2lkIDAsQXIoKSksZT1tKGQpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1WcihmLnZhbHVlLnNwbGl0KCIuIikpLGg9Zy5sZW5ndGg9PT0wP251bGw6e3ZlcnNpb246Z1swXSxnY2xpZDpnWzJdLHRpbWVzdGFtcDooTnVtYmVyKGdbMV0pfHwwKSoxRTMsbGFiZWxzOmcuc2xpY2UoMyl9O2ghPW51bGwmJihoLm9kPXZvaWQgMCxoLnFhPW5ldyBlcixoLm9hPVtjXSxRcihhLGgpKX1lbHNlIGlmKGM9PT0yKXt2YXIgbD1VcihiKTtpZihsKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3Eub2Q9dm9pZCAwO3Eub2E9cS5vYTtRcihhLHEpfX19CmZ1bmN0aW9uIFpyKGEpe3ZhciBiPUVyKGEpLGM9VXIoImdjbF9kYyIpO2lmKGMpZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Zi5vZD12b2lkIDA7Zi5vYT1mLm9hfHxbMl07UXIoYixmKX1iLnNvcnQoZnVuY3Rpb24oZyxoKXt2YXIgbD1nLm9hJiZnLm9hLmluY2x1ZGVzKDEpLG49aC5vYSYmaC5vYS5pbmNsdWRlcygxKTtyZXR1cm4gbCYmIW4/LTE6IWwmJm4/MTpoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBScihiKX1mdW5jdGlvbiBKcihhKXtyZXR1cm4gTXIoYSkubWFwKGZ1bmN0aW9uKGIpe2IucWE9bmV3IGVyO2Iub2E9WzFdO3JldHVybiBifSl9CmZ1bmN0aW9uIExyKGEsYil7aWYoIWEubGVuZ3RoKXJldHVybiBiO2lmKCFiLmxlbmd0aClyZXR1cm4gYTt2YXIgYz17fTtyZXR1cm4gYS5jb25jYXQoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBjLmhhc093blByb3BlcnR5KGQpPyExOmNbZF09ITB9KX1mdW5jdGlvbiBIcihhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaChzcik/YToiX2djbCJ9ZnVuY3Rpb24gJHIoYSxiKXtpZihhKXt2YXIgYz17dmFsdWU6YSxxYTpuZXcgZXJ9O2ZyKGMucWEsYik7cmV0dXJuIGN9fQpmdW5jdGlvbiBhcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpO2lmKGImJighZnx8IWUpKXt2YXIgZz1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGcsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGcsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmKGU9PT12b2lkIDB8fGU9PT0iYXcifHxlPT09ImF3LmRzInx8WWYoOCkmJmU9PT0iYXcuZHYiKT9bZl06W119CmZ1bmN0aW9uIGJzKGEsYil7dmFyIGM9UmooYSksZD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGU9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJ3YnJhaWQiKTtmPSRiKGYpO3ZhciBnPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdicmFpZCIpLGg9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGw9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKTtpZihiJiYhKGQmJmUmJmYmJmcpKXt2YXIgbj1jLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Q9ZHx8SWoobiwiZ2NsaWQiLCExKTtlPWV8fElqKG4sImdjbHNyYyIsITEpO2Y9Znx8SWoobiwid2JyYWlkIiwhMSk7Zz1nfHxJaihuLCJnYnJhaWQiLCExKTtoPWh8fElqKG4sImdhZF9zb3VyY2UiLCExKX1yZXR1cm4gY3MoZCxlLGwsZixnLGgpfQpmdW5jdGlvbiBkcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpLGc9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKSxjPzQ6Mik7aWYoYiYmKCFlfHwhZikpe3ZhciBoPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooaCwiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooaCwiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiZlJiYoZT09PSJhdy5kcyJ8fGU9PT0iYXcuZHYifHxlPT09IjNwLmRzInx8ZT09PSJkcyIpP1tmXTpnP1tnXTpbXX1mdW5jdGlvbiBlcygpe3JldHVybiBicyhBLmxvY2F0aW9uLmhyZWYsITApfQpmdW5jdGlvbiBjcyhhLGIsYyxkLGUsZil7dmFyIGc9e30saD1mdW5jdGlvbihsLG4pe2dbbl18fChnW25dPVtdKTtnW25dLnB1c2gobCl9O2cuZ2NsaWQ9YTtnLmdjbHNyYz1iO2cuZGNsaWQ9YztpZihhIT09dm9pZCAwJiZhLm1hdGNoKHRyKSlzd2l0Y2goYil7Y2FzZSB2b2lkIDA6aChhLCJhdyIpO2JyZWFrO2Nhc2UgImF3LmRzIjpoKGEsImF3Iik7aChhLCJkYyIpO2JyZWFrO2Nhc2UgImF3LmR2IjpZZig4KSYmKGgoYSwiYXciKSxoKGEsImRjIikpO2JyZWFrO2Nhc2UgImRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiM3AuZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICJnZiI6aChhLCJnZiIpO2JyZWFrO2Nhc2UgImhhIjpoKGEsImhhIil9YyYmaChjLCJkYyIpO2QhPT12b2lkIDAmJnRyLnRlc3QoZCkmJihnLndicmFpZD1kLGgoZCwiZ2IiKSk7ZSE9PXZvaWQgMCYmdHIudGVzdChlKSYmKGcuZ2JyYWlkPWUsaChlLCJhZyIpKTtmIT09dm9pZCAwJiZ0ci50ZXN0KGYpJiYoZy5nYWRfc291cmNlPQpmLGgoZiwiZ3MiKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZnMoKXtmb3IodmFyIGE9ZXMoKSxiPSEwLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpaWYoYVtkLnZhbHVlXSE9PXZvaWQgMCl7Yj0hMTticmVha31iJiYoYT1icyhBLmRvY3VtZW50LnJlZmVycmVyLCExKSxhLmdhZF9zb3VyY2U9dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBncyhhKXt2YXIgYj1mcygpO2hzKGIsITEsYSl9CmZ1bmN0aW9uIGlzKGEpe3ZhciBiPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7Yi5sZW5ndGh8fChiPWFzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTthPWF8fHt9O2pzKGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1iWzBdLGQ9TmIoKSxlPXVxKGEsZCwhMCksZj1BcigpLGc9ZnVuY3Rpb24oKXtCcihmKSYmZS5leHBpcmVzIT09dm9pZCAwJiZrcigiZ2NsaWQiLHt2YWx1ZTp7dmFsdWU6Yy52YWx1ZSxjcmVhdGlvblRpbWVNczpkLGxpbmtEZWNvcmF0aW9uU291cmNlczpjLnFhLmdldCgpfSxleHBpcmVzOk51bWJlcihlLmV4cGlyZXMpfSl9O0hsKGZ1bmN0aW9uKCl7ZygpO0JyKGYpfHxJbChnLGYpfSxmKX19CmZ1bmN0aW9uIGpzKGEpe3ZhciBiPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjtpZih5ci50ZXN0KGIpfHx6ci50ZXN0KGIpfHxrcygpKXt2YXIgYzthOntmb3IodmFyIGQ9UmooQS5sb2NhdGlvbi5ocmVmKSxlPUpqKExqKGQsInF1ZXJ5IikpLGY9bShPYmplY3Qua2V5cyhlKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoIXJyW2hdKXt2YXIgbD1lW2hdWzBdfHwiIixuO2lmKCFsfHxsLmxlbmd0aDw1MHx8bC5sZW5ndGg+MjAwKW49ITE7ZWxzZXt2YXIgcD1ncihsKSxxO2lmKHApYzp7dmFyIHI9cDtpZihyJiZyLmxlbmd0aCE9PTApe3ZhciB0PTA7dHJ5e2Zvcih2YXIgdT0xMDt0PHIubGVuZ3RoJiYhKHUtLTw9MCk7KXt2YXIgdj1ocihyLHQpO2lmKHY9PT12b2lkIDApYnJlYWs7dmFyIHg9bSh2KSx5PXgubmV4dCgpLnZhbHVlLHo9eC5uZXh0KCkudmFsdWUsQz15LEQ9eixJPUMmNztpZihDPj4zPT09MTYzODIpe2lmKEkhPT0KMClicmVhazt2YXIgRz1ocihyLEQpO2lmKEc9PT12b2lkIDApYnJlYWs7cT1tKEcpLm5leHQoKS52YWx1ZT09PTE7YnJlYWsgY312YXIgTjtkOnt2YXIgUz12b2lkIDAsVz1yLGVhPUQ7c3dpdGNoKEkpe2Nhc2UgMDpOPShTPWhyKFcsZWEpKT09bnVsbD92b2lkIDA6U1sxXTticmVhayBkO2Nhc2UgMTpOPWVhKzg7YnJlYWsgZDtjYXNlIDI6dmFyIGphPWhyKFcsZWEpO2lmKGphPT09dm9pZCAwKWJyZWFrO3ZhciBmYT1tKGphKSxzYT1mYS5uZXh0KCkudmFsdWU7Tj1mYS5uZXh0KCkudmFsdWUrc2E7YnJlYWsgZDtjYXNlIDU6Tj1lYSs0O2JyZWFrIGR9Tj12b2lkIDB9aWYoTj09PXZvaWQgMHx8Tj5yLmxlbmd0aHx8Tjw9dClicmVhazt0PU59fWNhdGNoKG1hKXt9fXE9ITF9ZWxzZSBxPSExO249cX1pZihuKXtjPWw7YnJlYWsgYX19fWM9dm9pZCAwfXZhciBkYT1jO2RhJiZscygiZ2NsX2F3IixkYSw3LGEpfX0KZnVuY3Rpb24gbHMoYSxiLGMsZCl7bXMoYSxbe3ZlcnNpb246IiIsZ2NsaWQ6Yix0aW1lc3RhbXA6TmIoKSxxYTpUcihjKX1dLGQpfQpmdW5jdGlvbiBtcyhhLGIsYyl7Yz1jfHx7fTt2YXIgZD1BcigpLGU9ZnVuY3Rpb24oKXtpZihCcihkKSYmYi5sZW5ndGg+MCl7dmFyIGY9VXIoYSl8fFtdO2IuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaD11cShjLGcudGltZXN0YW1wLCEwKTtoLmV4cGlyZXMhPT12b2lkIDAmJlFyKGYse3ZlcnNpb246IiIsZ2NsaWQ6Zy5nY2xpZCx0aW1lc3RhbXA6Zy50aW1lc3RhbXAsZXhwaXJlczpOdW1iZXIoaC5leHBpcmVzKSxxYTpnLnFhLGxhYmVsczpnLmxhYmVsc30sITApfSk7Zi5sZW5ndGgmJmtyKGEsZi5tYXAoZnVuY3Rpb24oZyl7dmFyIGg9e3ZhbHVlOmcuZ2NsaWQsY3JlYXRpb25UaW1lTXM6Zy50aW1lc3RhbXAsbGlua0RlY29yYXRpb25Tb3VyY2VzOmcucWE/Zy5xYS5nZXQoKTowfSxsO2lmKChsPWcubGFiZWxzKT09bnVsbD8wOmwubGVuZ3RoKWgubGFiZWxzPWcubGFiZWxzO3JldHVybnt2YWx1ZTpoLGV4cGlyZXM6TnVtYmVyKGcuZXhwaXJlcyl9fSkpfX07SGwoZnVuY3Rpb24oKXtCcihkKT8KZSgpOklsKGUsZCl9LGQpfQpmdW5jdGlvbiBocyhhLGIsYyxkLGUpe2M9Y3x8e307ZT1lfHxbXTt2YXIgZj1IcihjLnByZWZpeCksZz1kfHxOYigpLGg9TWF0aC5yb3VuZChnLzFFMyksbD1BcigpLG49ITEscD0hMSxxPVlmKDkpLHI9ZnVuY3Rpb24oKXtpZihCcihsKSl7dmFyIHQ9dXEoYyxnLCEwKTt0Lk1jPWw7Zm9yKHZhciB1PWZ1bmN0aW9uKFcsZWEpe3ZhciBqYT1JcihXLGYpO2phJiYob3EoamEsZWEsdCksVyE9PSJnYiImJihuPSEwKSl9LHY9ZnVuY3Rpb24oVyl7dmFyIGVhPVsiR0NMIixoLFddO2UubGVuZ3RoPjAmJmVhLnB1c2goZS5qb2luKCIuIikpO3JldHVybiBlYS5qb2luKCIuIil9LHg9bShbImF3IiwiZGMiLCJnZiIsImhhIiwiZ3AiXSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7YVt6XSYmdSh6LHYoYVt6XVswXSkpfWlmKCghbnx8cSkmJmEuZ2Ipe3ZhciBDPWEuZ2JbMF0sRD1JcigiZ2IiLGYpOyFiJiZFcihEKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09QyYmClcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pfHx1KCJnYiIsdihDKSl9fWlmKCFwJiZhLmdicmFpZCYmQnIoImFkX3N0b3JhZ2UiKSYmKHA9ITAsIW58fHEpKXt2YXIgST1hLmdicmFpZCxHPUlyKCJhZyIsZik7aWYoYnx8IUpyKEcpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1JJiZXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KSl7dmFyIE49e30sUz0oTi5rPUksTi5pPSIiK2gsTi5iPWUsTik7QXEoRyxTLDUsYyxnKX19bnMoYSxmLGcsYyl9O0hsKGZ1bmN0aW9uKCl7cigpO0JyKGwpfHxJbChyLGwpfSxsKX0KZnVuY3Rpb24gbnMoYSxiLGMsZCl7aWYoYS5nYWRfc291cmNlIT09dm9pZCAwJiZCcigiYWRfc3RvcmFnZSIpKXt2YXIgZT1xZCgpO2lmKGUhPT0iciImJmUhPT0iaCIpe3ZhciBmPWEuZ2FkX3NvdXJjZSxnPUlyKCJncyIsYik7aWYoZyl7dmFyIGg9TWF0aC5mbG9vcigoTmIoKS0ocGQoKXx8MCkpLzFFMyksbCxuPWlyKCkscD17fTtsPShwLms9ZixwLmk9IiIraCxwLnU9bixwKTtBcShnLGwsNSxkLGMpfX19fWZ1bmN0aW9uIG9zKGEsYixjKXtmb3IodmFyIGQ9d3EoYixjKSxlPTA7ZTxkLmxlbmd0aDsrK2UpaWYoTnIoZFtlXSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gcHMoYSl7dmFyIGI9cXMsYz1ycyhhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWNbZ107aWYoaCl7dmFyIGw9TWF0aC5taW4oc3MoaCksTmIoKSksbj11cShhLGwsITApO24uTWM9QXIoKTt2YXIgcD1JcihnLGQpO3AmJm9xKHAsaCxuKX19dmFyIHE9VXEoITApO2hzKGNzKHEuZ2NsaWQscS5nY2xzcmMpLCExLGEpfSxBcigpKX0KZnVuY3Rpb24gcnMoYSl7dmFyIGI9VXEoITApLGM9SHIoYSksZD17fSxlO2ZvcihlIGluIHhyKWlmKHhyLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1lLGc9SXIoZixjKTtpZihnIT09dm9pZCAwKXt2YXIgaD1iW2ddO2lmKGgpe3ZhciBsPXNzKGgpLG47YTp7Zm9yKHZhciBwPU1hdGgubWluKGwsTmIoKSl8fE5iKCkscT1jcShnLEIuY29va2llLHZvaWQgMCxBcigpKSxyPTA7cjxxLmxlbmd0aDsrK3IpaWYoc3MocVtyXSk+cCl7bj0hMDticmVhayBhfW49ITF9bnx8KGRbZl09aCl9fX1yZXR1cm4gZH0KZnVuY3Rpb24gdHMoYSl7dmFyIGI9WyJhZyJdLGM9VXEoITApLGQ9SHIoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoZil7dmFyIGc9Y1tmXTtpZihnKXt2YXIgaD0kcChnLDUpO2lmKGgpe3ZhciBsPU5yKGgpO2x8fChsPU5iKCkpO2lmKG9zKGwsZiw1KSlicmVhaztoLmk9IiIrTWF0aC5yb3VuZChsLzFFMyk7QXEoZixoLDUsYSxsKX19fX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiBJcihhLGIpe3ZhciBjPXhyW2FdO2lmKGMhPT12b2lkIDApcmV0dXJuIGIrY31mdW5jdGlvbiBzcyhhKXtyZXR1cm4gVnIoYS5zcGxpdCgiLiIpKS5sZW5ndGghPT0wPyhOdW1iZXIoYS5zcGxpdCgiLiIpWzFdKXx8MCkqMUUzOjB9ZnVuY3Rpb24gTnIoYSl7cmV0dXJuIGE/KE51bWJlcihhLmkpfHwwKSoxRTM6MH0KZnVuY3Rpb24gVnIoYSl7cmV0dXJuIGEubGVuZ3RoPDN8fGFbMF0hPT0iR0NMIiYmYVswXSE9PSIxInx8IS9eXGQrJC8udGVzdChhWzFdKXx8IXRyLnRlc3QoYVsyXSk/W106YX1mdW5jdGlvbiB1cyhhLGIsYyxkKXt2YXIgZT1xcztpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYobil7dmFyIHA9Y3EobixCLmNvb2tpZSx2b2lkIDAsQXIoKSk7cC5sZW5ndGgmJihoW25dPXAuc29ydCgpW3AubGVuZ3RoLTFdKX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gdnMoYSxiLGMpe3ZhciBkPXFzO2lmKFlmKDEzKSYmQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPXt9LGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIGg9dnJbZFtnXV07aWYoaCl7dmFyIGw9Y3EoaCxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aWYobC5sZW5ndGgpe2Zvcih2YXIgbj12b2lkIDAscD0wLHE9bShsKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PSRwKHQsNCk7aWYodSYmKHUubT09PSIxInx8WWYoMTYpKSl7dmFyIHY9TnIodSk7dj49cCYmKHA9dixuPXQpfX1uJiYoZltoXT1uKX19fXJldHVybiBmfTtDcihmdW5jdGlvbigpe2FyKGUsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHdzKGEsYixjLGQpe2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1bImFnIl0sZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZighbilyZXR1cm57fTt2YXIgcD13cShuLDUpO2lmKHAubGVuZ3RoKXt2YXIgcT1wLnNvcnQoZnVuY3Rpb24ocix0KXtyZXR1cm4gTnIodCktTnIocil9KVswXTtoW25dPWFxKHEsNSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxbImFkX3N0b3JhZ2UiXSl9fWZ1bmN0aW9uIFJyKGEpe3JldHVybiBhLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHIudGVzdChiLmdjbGlkKX0pfQpmdW5jdGlvbiB4cyhhLGIpe2lmKFNwKEEpKXtmb3IodmFyIGM9SHIoYi5wcmVmaXgpLGQ9e30sZT0wO2U8YS5sZW5ndGg7ZSsrKXhyW2FbZV1dJiYoZFthW2VdXT14clthW2VdXSk7Q3IoZnVuY3Rpb24oKXtHYihkLGZ1bmN0aW9uKGYsZyl7dmFyIGg9Y3EoYytnLEIuY29va2llLHZvaWQgMCxBcigpKTtoLnNvcnQoZnVuY3Rpb24odCx1KXtyZXR1cm4gc3ModSktc3ModCl9KTtpZihoLmxlbmd0aCl7dmFyIGw9aFswXSxuPXNzKGwpLHA9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKS5zbGljZSgzKTpbXSxxPXt9LHI7cj1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpWzJdOnZvaWQgMDtxW2ZdPVtyXTtocyhxLCEwLGIsbixwKX19KX0sQXIoKSl9fQpmdW5jdGlvbiB5cyhhKXt2YXIgYj1bImFnIl0sYz1bImdicmFpZCJdO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoIWYpYnJlYWs7dmFyIGc9d3EoZiw1KTtpZihnLmxlbmd0aCl7dmFyIGg9Zy5zb3J0KGZ1bmN0aW9uKHEscil7cmV0dXJuIE5yKHIpLU5yKHEpfSlbMF0sbD1OcihoKSxuPWguYixwPXt9O3BbY1tlXV09aC5rO2hzKHAsITAsYSxsLG4pfX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiB6cyhhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWlmKGFbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIEFzKGEpe2Z1bmN0aW9uIGIoaCxsLG4pe24mJihoW2xdPW4pfWlmKEVsKCkpe3ZhciBjPWVzKCksZDthLmluY2x1ZGVzKCJnYWRfc291cmNlIikmJihkPWMuZ2FkX3NvdXJjZSE9PXZvaWQgMD9jLmdhZF9zb3VyY2U6VXEoITEpLl9ncyk7aWYoenMoYyxhKXx8ZCl7dmFyIGU9e307YihlLCJnY2xpZCIsYy5nY2xpZCk7YihlLCJkY2xpZCIsYy5kY2xpZCk7YihlLCJnY2xzcmMiLGMuZ2Nsc3JjKTtiKGUsIndicmFpZCIsYy53YnJhaWQpO2IoZSwiZ2JyYWlkIixjLmdicmFpZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZX0sMyk7dmFyIGY9e30sZz0oZi5fdXA9IjEiLGYpO2IoZywiX2dzIixkKTticihmdW5jdGlvbigpe3JldHVybiBnfSwxKX19fWZ1bmN0aW9uIGtzKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gTGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpfQpmdW5jdGlvbiBCcyhhKXtpZighWWYoMSkpcmV0dXJuIG51bGw7dmFyIGI9VXEoITApLmdhZF9zb3VyY2U7aWYoYiE9bnVsbClyZXR1cm4gQS5sb2NhdGlvbi5oYXNoPSIiLGI7aWYoWWYoMikpe2I9a3MoKTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPWVzKCk7aWYoenMoYyxhKSlyZXR1cm4iMCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3MoYSl7dmFyIGI9QnMoYSk7YiE9bnVsbCYmYnIoZnVuY3Rpb24oKXt2YXIgYz17fTtyZXR1cm4gYy5nYWRfc291cmNlPWIsY30sNCl9CmZ1bmN0aW9uIERzKGEsYixjKXt2YXIgZD1bXTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGQ7Zm9yKHZhciBlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXSxoPWcuemc/Zy56ZzoiZ2NsIjtpZigoZy5sYWJlbHN8fFtdKS5pbmRleE9mKGMpPT09LTEpe2EucHVzaCgwKTt2YXIgbD0hMSxuPXZvaWQgMDtpZigobj1nLm9hKT09bnVsbD8wOm4uaW5jbHVkZXMoMikpbD0hMDt2YXIgcD12b2lkIDA7KChwPWcub2EpPT1udWxsPzA6cC5pbmNsdWRlcygxKSkmJiFlW2hdJiYobD0hMCxlW2hdPSEwKTtsJiZkLnB1c2goZyl9ZWxzZXthLnB1c2goMSk7dmFyIHE9dm9pZCAwO2lmKChxPWcub2EpPT1udWxsPzA6cS5pbmNsdWRlcygxKSllW2hdPSEwfX1yZXR1cm4gZH0KZnVuY3Rpb24gRXMoYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZj1bXTtjPWN8fHt9O2lmKCFCcihBcigpKSlyZXR1cm4gZjt2YXIgZz1FcihhLGUpLGg9RHMoZixnLGIpO2lmKGgubGVuZ3RoJiYhZCl7Zm9yKHZhciBsPVtdLG49ITEscD1tKGgpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlLHQ9cix1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej0odC5sYWJlbHN8fFtdKS5jb25jYXQoW2JdKSxDPXZvaWQgMDtpZigoKEM9eSk9PW51bGw/MDpDLmluY2x1ZGVzKDEpKSYmIW4pe3ZhciBEPVt1LE1hdGgucm91bmQoeC8xRTMpLHZdLmNvbmNhdCh6KS5qb2luKCIuIiksST11cShjLHgsITApO0kuTWM9QXIoKTtvcShhLEQsSSk7bj0hMH12YXIgRz12b2lkIDA7ZSYmKChHPXkpPT1udWxsPzA6Ry5pbmNsdWRlcygyKSkmJmwucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHIse2xhYmVsczp6fSkpfWwubGVuZ3RoJiYKbXMoImdjbF9nYiIsbCxjKX1yZXR1cm4gZn0KZnVuY3Rpb24gRnMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBkPVtdO2I9Ynx8e307dmFyIGU9R3IoYixjKSxmPURzKGQsZSxhKTtpZihmLmxlbmd0aCl7Zm9yKHZhciBnPVtdLGg9e30sbD1tKGYpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlLHE9SHIoYi5wcmVmaXgpLHI9SXIocC56ZyxxKTtpZighcilyZXR1cm4gZDt2YXIgdD1wLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PU1hdGgucm91bmQoeC8xRTMpLEM9THIodC5sYWJlbHN8fFtdLFthXSksRD12b2lkIDA7aWYoKEQ9eSk9PW51bGw/MDpELmluY2x1ZGVzKDEpKWlmKHAuemc9PT0iYWciJiYhaC5hZyl7dmFyIEk9e30sRz0oSS5rPXYsSS5pPSIiK3osSS5iPUMsSSk7QXEocixHLDUsYix4KTtoLmFnPSEwfWVsc2UgaWYocC56Zz09PSJnYiImJiFoLmdiKXt2YXIgTj1bdSx6LHZdLmNvbmNhdChDKS5qb2luKCIuIiksUz11cShiLHgsITApO1MuTWM9CkFyKCk7b3EocixOLFMpO2guZ2I9ITB9dmFyIFc9dm9pZCAwO2MmJigoVz15KT09bnVsbD8wOlcuaW5jbHVkZXMoMikpJiZnLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxwLHtsYWJlbHM6Q30pKX1nLmxlbmd0aCYmbXMoImdjbF9nYiIsZyxiKX1yZXR1cm4gZH1mdW5jdGlvbiBHcyhhLGIpe3ZhciBjPUhyKGIpLGQ9SXIoYSxjKTtpZighZClyZXR1cm4gMDt2YXIgZTtlPWE9PT0iYWciP0pyKGQpOkVyKGQpO2Zvcih2YXIgZj0wLGc9MDtnPGUubGVuZ3RoO2crKylmPU1hdGgubWF4KGYsZVtnXS50aW1lc3RhbXApO3JldHVybiBmfWZ1bmN0aW9uIEhzKGEpe2Zvcih2YXIgYj0wLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZm9yKHZhciBlPWFbZC52YWx1ZV0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWI9TWF0aC5tYXgoYixOdW1iZXIoZVtmXS50aW1lc3RhbXApKTtyZXR1cm4gYn0KZnVuY3Rpb24gSXMoYSl7dmFyIGI9TWF0aC5tYXgoR3MoImF3IixhKSxIcyhCcihBcigpKT9ScCgpOnt9KSksYz1NYXRoLm1heChHcygiZ2IiLGEpLEhzKEJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30pKTtjPU1hdGgubWF4KGMsR3MoImFnIixhKSk7cmV0dXJuIGM+Yn07dmFyIEpzPVJlZ0V4cCgiXlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSooPzolM0JVQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKSokIiksS3M9L15+P1tcdy1dKyg/Olwufj9bXHctXSspKiQvLExzPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLyxNcz0vO2dhYz0oW147P10rKS8sTnM9LztnYWNnYj0oW147P10rKS87CmZ1bmN0aW9uIE9zKGEsYil7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgYz1CLmxvY2F0aW9uLmhyZWYubWF0Y2goYik7cmV0dXJuIGMmJmMubGVuZ3RoPT09MiYmY1sxXS5tYXRjaChKcyk/S2ooY1sxXSl8fCIiOiIifWZvcih2YXIgZD1bXSxlPW0oT2JqZWN0LmtleXMoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZSxoPVtdLGw9YVtnXSxuPTA7bjxsLmxlbmd0aDtuKyspaC5wdXNoKGxbbl0uZ2NsaWQpO2QucHVzaChnKyI6IitoLmpvaW4oIiwiKSl9cmV0dXJuIGQubGVuZ3RoPjA/ZC5qb2luKCI7Iik6IiJ9CmZ1bmN0aW9uIFBzKGEsYixjKXtmb3IodmFyIGQ9QnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSxlPVtdLGY9ITEsZz1tKE9iamVjdC5rZXlzKGQpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPUVzKCJfZ2FjX2diXyIrbCxhLGIsYyk7Zj1mfHxuLmxlbmd0aCE9PTAmJm4uc29tZShmdW5jdGlvbihwKXtyZXR1cm4gcD09PTF9KTtlLnB1c2gobCsiOiIrbi5qb2luKCIsIikpfXJldHVybntScjpmP2Uuam9pbigiOyIpOiIiLFFyOk9zKGQsTnMpfX1mdW5jdGlvbiBRcyhhKXt2YXIgYj1CLmxvY2F0aW9uLmhyZWYubWF0Y2gobmV3IFJlZ0V4cCgiOyIrYSsiPShbXjs/XSspIikpO3JldHVybiBiJiZiLmxlbmd0aD09PTImJmJbMV0ubWF0Y2goS3MpP2JbMV06dm9pZCAwfQpmdW5jdGlvbiBScyhhKXt2YXIgYj17fSxjLGQsZTtMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkmJihjPVFzKCJnY2xncyIpLGQ9UXMoImdjbHN0IiksZT1RcygiZ2NsbHAiKSk7aWYoYyYmZCYmZSliLkVnPWMsYi5XaD1kLGIuVWg9ZTtlbHNle3ZhciBmPU5iKCksZz1NcigoYXx8Il9nY2wiKSsiX2dzIiksaD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5nY2xpZH0pLGw9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGYtcC50aW1lc3RhbXB9KSxuPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm9kfSk7aC5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmbi5sZW5ndGg+MCYmKGIuRWc9aC5qb2luKCIuIiksYi5XaD1sLmpvaW4oIi4iKSxiLlVoPW4uam9pbigiLiIpKX1yZXR1cm4gYn0KZnVuY3Rpb24gU3MoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1iP2Iuc3BsaXQoIi4iKTpbXSxlPWQubGVuZ3RoPT09Yy5sZW5ndGg/ZDp2b2lkIDA7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGYsZyl7dmFyIGg9e2djbGlkOmZ9O2lmKGUpe3ZhciBsPWVbZ10uc3BsaXQoIl8iKTtpZihsLmxlbmd0aD09PTIpe2gucWE9bmV3IGVyKE51bWJlcihsWzBdKSk7dmFyIG47dmFyIHA9TnVtYmVyKGxbMV0pO2lmKHA9PT0wKW49WzBdO2Vsc2V7dmFyIHE9W107cCYxJiZxLnB1c2goMSk7cCYyJiZxLnB1c2goMik7cCY0JiZxLnB1c2goMyk7cCY4JiZxLnB1c2goNCk7cCYxNiYmcS5wdXNoKDUpO249cX1oLm9hPW59fXJldHVybiBofSl9CmZ1bmN0aW9uIFRzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9UXMoYyk7aWYoZSl7aWYoWWYoMTcpKXt2YXIgZj1RcyhjKyJfc3JjIik7cmV0dXJuIFNzKGUsZil9aWYoZCl7dmFyIGc9bmV3IGVyO2ZyKGcsMik7ZnIoZywzKTtyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpnLG9hOlsxXX19KX1yZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpuZXcgZXIsb2E6WzFdfX0pfX1lbHNle2lmKGI9PT0iZ2NsaWQiKXtmb3IodmFyIGg9RXIoKGF8fCJfZ2NsIikrIl9hdyIsZCksbD1OdW1iZXIoWGZbNF09PT12b2lkIDA/MDpYZls0XSksbj1tKFVzKCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3EudGltZXN0YW1wPmwmJlFyKGgscSl9cmV0dXJuIGh9aWYoYj09PSJ3YnJhaWQiKXJldHVybiBFcigoYXx8CiJfZ2NsIikrIl9nYiIsZCk7aWYoYj09PSJicmFpZHMiKXJldHVybiBHcih7cHJlZml4OmF9LGQpfXJldHVybltdfWZ1bmN0aW9uIFVzKCl7cmV0dXJuKHdxKHZyLmF3LDQpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm09PT0iMSJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJue2djbGlkOmEuayx0aW1lc3RhbXA6TnVtYmVyKGEuaSksdmVyc2lvbjoiIixvYTpbNV19fSl9ZnVuY3Rpb24gVnMoYSl7Zm9yKHZhciBiPTAsYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2U+MCYmKGJ8PTE8PGUtMSl9cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBXcyhhKXtyZXR1cm4gTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpPyEoUXMoImdjbGF3Iil8fFFzKCJnYWMiKSk6SXMoYSl9CmZ1bmN0aW9uIFhzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlO2U9Yz9GcyhhLGIsZCk6RXMoKGImJmIucHJlZml4fHwiX2djbCIpKyJfZ2IiLGEsYix2b2lkIDAsZCk7cmV0dXJuIGUubGVuZ3RoPT09MHx8ZS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZj09PTB9KT8iIjplLmpvaW4oIi4iKX07CnZhciBZcz1mdW5jdGlvbihhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1raigiYWRzX3BhZ2V2aWV3IixmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoY1thXSlyZXR1cm4hMTtifHwoY1thXT0hMCk7cmV0dXJuITB9LFpzPWZ1bmN0aW9uKGEpe3JldHVybiBTaihhLCJnY2xpZCBkY2xpZCBnYnJhaWQgd2JyYWlkIGdjbGF3IGdjbGRjIGdjbGhhIGdjbGdmIGdjbGdiIF9nbCIuc3BsaXQoIiAiKSwiMCIpfSxhdD1mdW5jdGlvbigpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZiksYj12b2lkIDAsYz12b2lkIDAsZD1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksZT1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfY2FtcGFpZ25pZCIpLGYsZz1hLmhhc2gucmVwbGFjZSgiIyIsIiIpLm1hdGNoKCRzKTtmPWc/Z1sxXTp2b2lkIDA7ZCYmZj8oYj1kLGM9MSk6ZD8oYj1kLGM9Mik6ZiYmKGI9ZixjPTMpO3JldHVybntEZzpiLFNyOmMsVGg6ZX19LGJ0PWZ1bmN0aW9uKGEpe3ZhciBiPQpPcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmO3JldHVybiBhKGIpfSxjdD1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZD1ScihkKTtmb3IodmFyIGU9W10sZj0wO2Y8ZC5sZW5ndGg7ZisrKWUucHVzaChkW2ZdLmdjbGlkKTtlLmxlbmd0aCYmYi5wdXNoKGMrIjoiK2Uuam9pbigiLCIpKX0pO3JldHVybiBiLmpvaW4oIjsiKX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWR0KGEpO2lmKGQpcmV0dXJuIGQ7dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnPVtdO2E9PT0iYXciP2c9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTphPT09ImRjIiYmKGc9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKSk7aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9be3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6IjAifV06Zy5tYXAoZnVuY3Rpb24obCl7cmV0dXJue3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsCmdjbGlkOmwudmFsdWUscWE6bC5xYSxvYTpbMV19fSl9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9hPT09ImF3Ij9FcihoLE0oNTYyKSk6WnIoaCk6W119LGR0PWZ1bmN0aW9uKGEpe3ZhciBiPVRqKCJnY2wiK2EpLGM9YT09PSJkYyJ8fGE9PT0iYXciP1RqKCJnY2wiK2ErIl9zcmMiKTp2b2lkIDA7aWYoYilyZXR1cm4gU3MoYixjKX0sZnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PT0iYXcifHxhPT09ImRjInx8YT09PSJnYiIpe3ZhciBkPVRqKCJnY2wiK2EpO2lmKGQpcmV0dXJuIGQuc3BsaXQoIi4iKX12YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc7Zz1lcygpW2FdfHxbXTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1siMCJdOmd9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9EcihoKTpbXX0sZ3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFSKGEsYil8fCFSKGEsYykpcmV0dXJuIiI7dmFyIGQ9UihhLGIpLnNwbGl0KCIuIiksZT1SKGEsYykuc3BsaXQoIi4iKTtyZXR1cm4gZC5sZW5ndGgmJgplLmxlbmd0aCYmZC5sZW5ndGg9PT1lLmxlbmd0aCYmZFswXSYmZVswXT9kLm1hcChmdW5jdGlvbihmLGcpe3JldHVybiBmKyJfIitlW2ddfSkuam9pbigiLiIpOiIifSwkcz0vXmdhZF9zb3VyY2VbXz1dKFxkKykkLztmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9Owp2YXIgZnU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1SKGEsZSksZz1RKGEsSC5KLlllKTtNKDU4OSkmJmcmJihlPT09Ri5ELnphfHxlPT09Ri5ELlVhfHxlPT09Ri5ELlBlKSYmdHlwZW9mIGY9PT0ic3RyaW5nIiYmKGY9WnMoZikpO3ZhciBoPW9wKGUsZik7aCYmKCFnfHxlIT09Ri5ELkRkJiZlIT09Ri5ELktkJiZlIT09Ri5ELkVlJiZlIT09Ri5ELkJmfHwoaC52YWx1ZT0iMCIpLE0oNTA0KSYmKGU9PT1GLkQuTWQ/aC5rZXk9ImV2bmlkIjplPT09Ri5ELk5kJiYoaC5rZXk9ImV4Y2lkIikpLGJbaC5rZXldPWgudmFsdWUpfWIuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO1R0KCkmJihiLmdjcz1iLmdjc3x8VXQoKSk7Yi5nY2Q9Yi5nY2R8fFl0KGEuTSk7YXUoKSYmKGIuZG1hX2Nwcz1adCgpKTtiLmRtYT0kdCgpO3Z0KEV0KCkpJiYKKGIudGNmZD1idSgpKTt2YXIgbD1DcChhKTtsJiYoYi50YWdfZXhwPWwpO2lmKFEoYSxILkouQmspKXtiLnRmdD1TdHJpbmcoTmIoKSk7dmFyIG49cGQoKTtuIT09dm9pZCAwJiYoYi50ZmQ9U3RyaW5nKE1hdGgucm91bmQobikpKX1iLmFwdmU9IjEiO2IuYXB2Zj1uZCgpPyJmIjoibmYiO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGIubGltaXRlZF9hZHM9IjEiKTt2YXIgcD1RKGEsSC5KLlhnKTtNKDQ3NCkmJnAhPW51bGwmJnAhPT0iIiYmKGIuX2dzaWQ9cCk7aHQoYSxiLGZ1bmN0aW9uKHEscil7YltxXT1lbmNvZGVVUklDb21wb25lbnQocil9KTtyZXR1cm4gYn07dmFyIGd1PWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5lbmRwb2ludD1hO3RoaXMuZmE9Yzt0aGlzLmphPWQ7dGhpcy5wYXJhbWV0ZXJFbmNvZGluZz1lO3RoaXMuWj1iLnNsaWNlKCl9O2d1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIFhvKHRoaXMuWil9O2d1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtndS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3ZhciBhPU1tW3RoaXMuZW5kcG9pbnRdKHZvaWQgMCk7cmV0dXJuIFNiKGEsImh0dHBzOi8vIik/YS5zdWJzdHJpbmcoOCk6U2IoYSwiaHR0cDovLyIpP2Euc3Vic3RyaW5nKDcpOmF9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMubWV0aG9kTmFtZT1hO3RoaXMuUj1ifTtodS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuaXNTdXBwb3J0ZWQoKSlpZigoYz09bnVsbD92b2lkIDA6Yy5ib2R5KT09PXZvaWQgMHx8dGhpcy5IKCkpdHJ5e3RoaXMuSyhhLGIsYyl9Y2F0Y2goZCl7YS5yZChkKX1lbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgZG9lcyBub3Qgc3VwcG9ydCBhIHJlcXVlc3QgYm9keS4iKTtlbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgaXMgbm90IHN1cHBvcnRlZC4iKX07dmFyIGl1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbWFnZVBpeGVsIiwzKX07d2EoaXUsaHUpO2l1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtpdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTsKaXUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe1pjKGIsZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKCl7YS5vbkZhaWx1cmUodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBqdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiU2VuZEJlYWNvbiIsMSl9O3dhKGp1LGh1KTtqdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2QoKX07anUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07anUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2pkKGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5KT9hLmpmKCk6YS5yZCh2b2lkIDApfTt2YXIga3U9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkZldGNoIiwxKX07d2Eoa3UsaHUpO2t1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07a3UucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Cmt1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtBLmZldGNoKGIsYz09bnVsbD92b2lkIDA6Yy5HYikudGhlbihmdW5jdGlvbihkKXtpZihkLm9rKWEucGUoZCk7ZWxzZSBpZihkLnN0YXR1cz09PTApYS5qZigpO2Vsc2UgYS5vbkZhaWx1cmUoIkZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZC5zdGF0dXMrIi4iKX0pLmNhdGNoKGZ1bmN0aW9uKGQpe2EucmQoZCl9KX07dmFyIGx1PW5ldyBpdSxtdT1uZXcganUsbnU9bmV3IGt1O3ZhciBvdT1mdW5jdGlvbigpe307b3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm5bXX07CnZhciBwdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTpiO2d1LmNhbGwodGhpcyxhLGIsMSwhMCwyKX07d2EocHUsZ3UpO3B1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKHRoaXMuWi5sZW5ndGgpe3ZhciBiPVEoYSxILkouRGspO2lmKGIhPT12b2lkIDApcmV0dXJuIGJ9cmV0dXJuIGd1LnByb3RvdHlwZS5LLmNhbGwodGhpcyxhKX07cHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKTthLnRhcmdldC5kZXN0aW5hdGlvbklkJiYoYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCk7Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT9jLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9jLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGMuZm10PSIzIik7cmV0dXJuIGN9O3B1LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTihhLGIpO3JldHVybiI/IitPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrCiI9IitjW2RdfSkuam9pbigiJiIpfTtwdS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy55YShhLGIpLGU9e307aWYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdSl7ZS5HYj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtpZih0aGlzLmVuZHBvaW50PT09NTh8fHRoaXMuZW5kcG9pbnQ9PT01NyllLkdiLm1ldGhvZD0iR0VUIjt0aGlzLmVuZHBvaW50IT09NDV8fHF1LksoYSl8fChlLkdiLmNyZWRlbnRpYWxzPSJvbWl0IixkKz0iJmdhcC51Y2ZiPTEiKX1jKGQsZSl9O3ZhciBxdT1uZXcgcHUoNDUpLHJ1PW5ldyBwdSg0NSxbXSksc3U9bmV3IHB1KDQ2LFtdKSx0dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw2OSl9O3dhKHR1LHB1KTt0dS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NzQpJiYoISFSKGEsIl9nc2lkIil8fCEhUShhLEguSi5YZykpLGM9UihhLEYuRC5IZCkhPT0iMSImJighIVIoYSwiZ2NsaWQiKXx8CiEhUihhLCJkY2xpZCIpfHwhIVIoYSwiZ2Nsc3JjIil8fCEhUihhLCJhdWlkIikpO3JldHVybiBifHxjfTt0dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpLGQ9bHAoYSxjKXx8e307T2JqZWN0LmtleXMoZCkubGVuZ3RoPjAmJihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2QuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2QuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoZC5mbXQ9IjMiKSk7cmV0dXJuIGR9O3ZhciB1dT1uZXcgdHUsdnU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNDUpfTt3YSh2dSxwdSk7dnUucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdCJ9O3Z1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7Y1siZ2FwLjFwZmIiXT0iMSI7cmV0dXJuIGN9O3ZhciB3dT1mdW5jdGlvbihhKXtwdS5jYWxsKHRoaXMsYSxbImFkX3N0b3JhZ2UiLAoiYWRfdXNlcl9kYXRhIl0pfTt3YSh3dSxwdSk7d3UucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtyZXR1cm4gaHAoYyl9O3ZhciB4dT1uZXcgd3UoNTgpLHl1PW5ldyB3dSg1NyksenU9ZnVuY3Rpb24oKXt9O3dhKHp1LG91KTt6dS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1xdS5LKGEpLGM9Yj9xdTpzdSxkPVt7ZW5kcG9pbnQ6YyxtZXRob2Q6bmQoKT9udTptdX0se2VuZHBvaW50OmMsbWV0aG9kOmx1fV07Yj9NKDUxNykmJklmKDQ3KSYmZC5wdXNoKHtlbmRwb2ludDpuZXcgdnUsbWV0aG9kOm51fSk6TSg2MDApJiZkLnB1c2goe2VuZHBvaW50OnJ1LG1ldGhvZDpudX0pO3JldHVybiBkfTt6dS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSEhUShhLEguSi52ZCksZD1SKGEsRi5ELlBkKT09PSIxIixlPVIoYSxGLkQuSGQpPT09IjEiLGY9cXUuSyhhKSxnPWMmJmQmJiFlJiZmO2lmKGcpe3ZhciBoPQpRYygpfHxPYygpP3h1Onl1O2IucHVzaChbe2VuZHBvaW50OmgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6aCxtZXRob2Q6bHV9XSl9ZiYmKGd8fFEoYSxILkouaGQpKSYmYi5wdXNoKFt7ZW5kcG9pbnQ6dXUsbWV0aG9kOm5kKCk/bnU6bHV9XSk7cmV0dXJuIGJ9O3ZhciBBdT1uZXcgenU7dmFyIFQ9e1c6e0prOjEsbmo6MixGazozLG1sOjQsR2s6NSx5ZDo2LGtsOjcsTXE6OCxxbjo5LEhrOjEwLElrOjExLEZoOjEyLERtOjEzLEFtOjE0LENtOjE1LHptOjE2LEJtOjE3LHltOjE4LFRvOjE5LHhxOjIwLHlxOjIxLGZqOjIyLHVuOjI0LE9tOjI1LFNrOjI2LFRrOjI3LFJrOjI4LFVrOjI5LHJqOjMwLE9rOjMxLFpvOjMyfX07VC5XW1QuVy5Ka109IkFMTE9XX0lOVEVSRVNUX0dST1VQUyI7VC5XW1QuVy5ual09IlNFUlZFUl9DT05UQUlORVJfVVJMIjtULldbVC5XLkZrXT0iQURTX0RBVEFfUkVEQUNUSU9OIjtULldbVC5XLm1sXT0iQ1VTVE9NRVJfTElGRVRJTUVfVkFMVUUiO1QuV1tULlcuR2tdPSJBTExPV19DVVNUT01fU0NSSVBUUyI7VC5XW1QuVy55ZF09IkFOWV9DT09LSUVfUEFSQU1TIjtULldbVC5XLmtsXT0iQ09PS0lFX0VYUElSRVMiO1QuV1tULlcuTXFdPSJMRUdBQ1lfRU5IQU5DRURfQ09OVkVSU0lPTl9KU19WQVJJQUJMRSI7VC5XW1QuVy5xbl09IlJFU1RSSUNURURfREFUQV9QUk9DRVNTSU5HIjsKVC5XW1QuVy5Ia109IkFMTE9XX0RJU1BMQVlfRkVBVFVSRVMiO1QuV1tULlcuSWtdPSJBTExPV19HT09HTEVfU0lHTkFMUyI7VC5XW1QuVy5GaF09IkdFTkVSQVRFRF9UUkFOU0FDVElPTl9JRCI7VC5XW1QuVy5EbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOS05PV04iO1QuV1tULlcuQW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9TVEFOREFSRCI7VC5XW1QuVy5DbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOSVFVRSI7VC5XW1QuVy56bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1BFUl9TRVNTSU9OIjtULldbVC5XLkJtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVFJBTlNBQ1RJT05TIjtULldbVC5XLnltXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfSVRFTVNfU09MRCI7VC5XW1QuVy5Ub109IkFEU19PR1RfVjFfVVNBR0UiO1QuV1tULlcueHFdPSJGT1JNX0lOVEVSQUNUSU9OX1BFUk1JU1NJT05fREVOSUVEIjsKVC5XW1QuVy55cV09IkZPUk1fU1VCTUlUX1BFUk1JU1NJT05fREVOSUVEIjtULldbVC5XLmZqXT0iTUlDUk9UQVNLX05PVF9TVVBQT1JURUQiO1QuV1tULlcudW5dPSJTRVRfRU5DUllQVEVEX0RBVEFfVE9fQ0FDSEUiO1QuV1tULlcuT21dPSJHRVRfRU5DUllQVEVEX0RBVEFfRlJPTV9DQUNIRSI7VC5XW1QuVy5Ta109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX05PX1BBUkFNIjtULldbVC5XLlRrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfUEFSQU0iO1QuV1tULlcuUmtdPSJDT05GSUdfQ09OU0VOVF9TRVRfQkVGT1JFIjtULldbVC5XLlVrXT0iQ09ORklHX1NFVF9VU0VEX0JFRk9SRSI7VC5XW1QuVy5yal09IlNIQURPV19ET01fQVVUT19QSUkiO1QuV1tULlcuT2tdPSJDQ0RfVVNFUl9EQVRBX1dFQl9PTl9DT05GSUciO1QuV1tULlcuWm9dPSJCTEVOREVEX1VTRVJfREFUQSI7dmFyIEJ1PXt9LEN1PShCdVtGLkQudWldPVQuVy5KayxCdVtGLkQuZGRdPVQuVy5uaixCdVtGLkQueWNdPVQuVy5uaixCdVtGLkQubWJdPVQuVy5GayxCdVtGLkQuR2VdPVQuVy5tbCxCdVtGLkQucmldPVQuVy5HayxCdVtGLkQuSmRdPVQuVy55ZCxCdVtGLkQubmJdPVQuVy55ZCxCdVtGLkQuTGJdPVQuVy55ZCxCdVtGLkQuSWRdPVQuVy55ZCxCdVtGLkQudmNdPVQuVy55ZCxCdVtGLkQuVGJdPVQuVy55ZCxCdVtGLkQuQ2JdPVQuVy5rbCxCdVtGLkQuV2JdPVQuVy5xbixCdVtGLkQuaGhdPVQuVy5IayxCdVtGLkQuU2NdPVQuVy5JayxCdSksRHU9e30sRXU9KER1LnVua25vd249VC5XLkRtLER1LnN0YW5kYXJkPVQuVy5BbSxEdS51bmlxdWU9VC5XLkNtLER1LnBlcl9zZXNzaW9uPVQuVy56bSxEdS50cmFuc2FjdGlvbnM9VC5XLkJtLER1Lml0ZW1zX3NvbGQ9VC5XLnltLER1KTt2YXIgRnU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3NiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsYik7YyYmKGEuSFtiXT0hMCl9LHZiPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1bXX07ZnVuY3Rpb24gR3UoYSl7RnUodmIsYSwhMSl9ZnVuY3Rpb24gSHUoYSxiKXt2YXIgYz1iPT09dm9pZCAwPyExOmIsZD12YjtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGU9T2JqZWN0LmtleXMoYSksZj1tKE9iamVjdC5rZXlzKEN1KSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5pbmNsdWRlcyhoKSYmRnUoZCxDdVtoXSxjKX19O2Z1bmN0aW9uIEl1KGEsYil7YT9hLnRoZW4oYik6Yih2b2lkIDApfWZ1bmN0aW9uIEp1KGEpe3JldHVybiBQcm9taXNlLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc3RhdHVzPT09ImZ1bGZpbGxlZCJ9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudmFsdWV9KX0pfWZ1bmN0aW9uIEt1KCl7dmFyIGEsYjtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe2E9YztiPWR9KSxyZXNvbHZlOmEscmVqZWN0OmJ9fTtmdW5jdGlvbiBMdShhLGIsYyxkLGUsZil7dmFyIGc9Yy5zbGljZSgpLGg7ZD09bnVsbHx8KGg9ZC51dik9PW51bGx8fGguY2FsbChkLGEsYixjLGUpO3ZhciBsPUt1KCksbj1sLnByb21pc2UscD1sLnJlc29sdmUscT1bXSxyPWZ1bmN0aW9uKCl7cChxKTt2YXIgdTtkPT1udWxsfHwodT1kLlJzKT09bnVsbHx8dS5jYWxsKGQsYSxiLGMsZSxxKX0sdD1mdW5jdGlvbigpe3ZhciB1PWcuc2hpZnQoKTt1P3UubWV0aG9kLmlzU3VwcG9ydGVkKCk/TXUoYSxiLHUuZW5kcG9pbnQsZCxxLHUubWV0aG9kLGUsZix0LHIpOnQoKTpyKCl9O3QoKTtyZXR1cm4gbn0KZnVuY3Rpb24gTXUoYSxiLGMsZCxlLGYsZyxoLGwsbil7dmFyIHA9Yy5SKGEpLHE9e3RrOmIsZW5kcG9pbnQ6Yyxpc1ByaW1hcnk6ZyxzYjp2b2lkIDAscGs6ZixqdDp7fX0scj0hMSx0PWZ1bmN0aW9uKHosQyl7aWYocilQKDE4Nyk7ZWxzZSBpZihyPSEwLCF1KXt2YXIgRD1DfHx7fSxJPUQuYm9keSxHPUQuR2IsTj1ELmFmO0M9T2JqZWN0LmZyZWV6ZShuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LEk/e2JvZHk6SX06e30sRz97R2I6R306e30sTj97YWY6Tn06e30pKTtpZihJJiYhZi5IKCkpeCgpLGwoKTtlbHNle3ZhciBTPU51KHopLFc9cFswXT09PSIvIj8iIitwK1M6Imh0dHBzOi8vIitwK1M7cS5zYj1XO3EuanQ9Qzt2YXIgZWE7ZD09bnVsbHx8KGVhPWQuU3MpPT1udWxsfHxlYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpKTt2YXIgamE9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLmVuZHBvaW50LApldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9O2YuUj09PXZvaWQgMHx8Yy5mYSE9PTImJihjLmZhIT09MXx8ZS5sZW5ndGgpfHxrbi5yZWdpc3RlcihqYSxmLlIsVyk7dmFyIGZhPWZ1bmN0aW9uKGRhLG1hKXt4KCk7aWYocS5zdGF0dXMhPT12b2lkIDApcmV0dXJuIFAoMTkyKSwhMTtxLnN0YXR1cz1kYTtlLnB1c2gocSk7dmFyIFBhO2Q9PW51bGx8fChQYT1kLnVvKT09bnVsbHx8UGEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSxtYSk7cmV0dXJuITB9LHNhPXtGbzpqYSxyZDpmdW5jdGlvbigpe2ZhKDIpJiZsKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2ZhKDMpJiZsKCl9LHBlOmZ1bmN0aW9uKGRhKXtmYShkYS5zdGF0dXM9PT0wPzE6ZGEub2s/MDozLGRhKSYmbigpfSxqZjpmdW5jdGlvbigpe2ZhKDEpJiZuKCl9fTtPdShjLGEsVyxTLEkpO2Yuc2VuZFJlcXVlc3Qoc2EsVyxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LAp7fSxJJiZ7Ym9keTpJfSxHJiZ7R2I6R30sTiYme2FmOk59KSl9fX0sdT0hMSx2LHg9ZnVuY3Rpb24oKXt2IT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQodiksdj12b2lkIDApfTtNKDU3NCkmJih2PUEuc2V0VGltZW91dChmdW5jdGlvbigpe3Y9dm9pZCAwO3U9ITA7aWYocS5zdGF0dXM9PT12b2lkIDApe3Euc3RhdHVzPTQ7cS5zYj09PXZvaWQgMCYmKHEuc2I9IltmYWlsZWQgdG8gYnVpbGRdICIrcCk7ZS5wdXNoKHEpO3ZhciB6O2Q9PW51bGx8fCh6PWQudW8pPT1udWxsfHx6LmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksdm9pZCAwKTtsKCl9fSw1RTMpKTt2YXIgeT17SWM6cCxtZXRob2Q6Zix5djplLGlzUHJpbWFyeTpnLEN0Omh9O3RyeXtjLkgoYSx5LHQpfWNhdGNoKHope3goKSxQKDE4OCksbCgpfX0KZnVuY3Rpb24gT3UoYSxiLGMsZCxlKXtpZihhLmphKXt2YXIgZj1iLnRhcmdldC5kZXN0aW5hdGlvbklkLGc9YS5lbmRwb2ludDtpZihnPT09NDV8fGc9PT00Nnx8Zz09PTY5fHxnPT09NTh8fGc9PT01Nyl7dmFyIGg9L1s/Jl10aWRzPShbXiZdKykvLmV4ZWMoZCk7Zj1oP2RlY29kZVVSSUNvbXBvbmVudChoWzFdKS5zcGxpdCgifiIpOltmXX1NbCh7dGFyZ2V0SWQ6ZixyZXF1ZXN0Om5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se3VybDpjLHBhcmFtZXRlckVuY29kaW5nOmEucGFyYW1ldGVyRW5jb2RpbmcsZW5kcG9pbnQ6YS5lbmRwb2ludH0sZT97cG9zdEJvZHk6ZX06e30pLHFiOntldmVudElkOmIuTS5ldmVudElkLHByaW9yaXR5SWQ6Yi5NLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fQpmdW5jdGlvbiBOdShhKXtyZXR1cm4gYSYmYSE9PSI/Ij9hWzBdIT09Ij8iPyI/Ii5jb25jYXQoYSk6YToiIn07ZnVuY3Rpb24gUHUoYSxiLGMsZCxlKXt2YXIgZjtlPT1udWxsfHwoZj1lLnZ2KT09bnVsbHx8Zi5jYWxsKGUsYSxiKTtpZighYy5sZW5ndGgpe3ZhciBnO2U9PW51bGx8fChnPWUuVHMpPT1udWxsfHxnLmNhbGwoZSxhLGIsW10pO3JldHVybiBQcm9taXNlLnJlc29sdmUoW10pfXZhciBoPVtdLGw9e3RrOmIsbWs6YyxqazpkfTtoLnB1c2goTHUoYSxiLGMsZSwhMCxsKSk7Zm9yKHZhciBuPW0oZCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpaC5wdXNoKEx1KGEsYixwLnZhbHVlLGUsITEsbCkpO3JldHVybiBKdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7ZT09bnVsbHx8KHY9ZS5Ucyk9PW51bGx8fHYuY2FsbChlLGEsYixyKTtyZXR1cm4gcn0pfTtmdW5jdGlvbiBRdShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2I9PW51bGx8fChkPWIud3YpPT1udWxsfHxkLmNhbGwoYixhLGMpO2Zvcih2YXIgZT1bXSxmPW0oYyksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZS5wdXNoKFJ1KGEsZy52YWx1ZSkpO2Zvcih2YXIgaD1bXSxsPW0oZSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aC5wdXNoKFB1KGEscC50ayxwLm1rLHAuamssYikpfUp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtiPT1udWxsfHwodj1iLlFzKT09bnVsbHx8di5jYWxsKGIsYSxjLHIpfSl9CmZ1bmN0aW9uIFJ1KGEsYil7dmFyIGM9ZnVuY3Rpb24oZil7cmV0dXJuIGYubWV0aG9kLmlzU3VwcG9ydGVkKCkmJmYuZW5kcG9pbnQuaXNTdXBwb3J0ZWQoYSkmJmYuZW5kcG9pbnQuSyhhKX0sZD0oYi5IKGEpfHxbXSkuZmlsdGVyKGMpLGU9W107ZC5sZW5ndGgmJihlPShiLksoYSl8fFtdKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuZmlsdGVyKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmxlbmd0aD4wfSkpO3JldHVybnt0azpiLG1rOmQsams6ZX19Owp2YXIgU3U9ZnVuY3Rpb24oYSxiKXtpZihNKDUxNykmJklmKDQ3KSYmYT09PTQ1KXJldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0PyIrYi5zcGxpdCgiPyIpWzFdKyImZ2FwLjFwZmI9MSJ9LFd1PWZ1bmN0aW9uKCl7dmFyIGE9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGEubGVuZ3RoKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9VHUoZS5rZSwiYXB2YyIpLGc9VHUoZS5rZSwidGZ0IiksaD1UdShlLmtlLCJ0ZmQiKSxsPVR1KGUua2UsInRpZCIpLG49Tm0oZS5lbmRwb2ludCxlLmtlKSxwPWJbbl09YltuXXx8e3hrOltdLFpoOltdfTtwLlpoLnB1c2goZSk7bD8ocC54ay5wdXNoKGwpLHAudWR8fChwLnVkPWwpKTpwLnhrLnB1c2goIiIpO2Y9PT0iMSImJihwLlFuPSEwKTtpZihnfHxoKXAuTm49ITB9YS5sZW5ndGg9MDtmb3IodmFyIHE9bShPYmplY3Qua2V5cyhiKSkscj1xLm5leHQoKSx0PXt9OyFyLmRvbmU7dD0Ke3lrOnZvaWQgMH0scj1xLm5leHQoKSl7dmFyIHU9ci52YWx1ZSx2PWJbdV07dC55az12LnhrO3ZhciB4PXQueWsuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihJLEcpe3JldHVybiBELnlrLmluZGV4T2YoSSk9PT1HfX0odCkpLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4hIUR9KTtpZihNKDQyNykpe3ZhciB5PVV1KHYseCk7UXUoeSx2b2lkIDAsQXUpfWVsc2V7dmFyIHo9dSsiJmFwdmM9Iisodi5Rbj8iMSI6IjAiKTt4Lmxlbmd0aCYmKHorPSImdGlkcz0iK3guam9pbigifiIpKTt2LnVkJiYoeis9IiZ0aWQ9Iit2LnVkKTtpZih2Lk5uKXt6Kz0iJnRmdD0iK1N0cmluZyhOYigpKTt2YXIgQz1wZCgpO0MhPT12b2lkIDAmJih6Kz0iJnRmZD0iK1N0cmluZyhNYXRoLnJvdW5kKEMpKSl9VnUodi5aaFswXS5ldmVudCx6LHYuWmhbMF0uZW5kcG9pbnQseC5sZW5ndGg/eDpbIiJdKX19fX0sVHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMhPT12b2lkIDApcmV0dXJuIGRlbGV0ZSBhW2JdLApjfSxWdT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPWZ1bmN0aW9uKGwsbil7dmFyIHA9YitYdShsKTtUbChwLGEsYyxkKTtyZXR1cm4gbihwKX07aWYobmQoKSl7dmFyIGc9ZnVuY3Rpb24oKXt9LGg9U3UoYyxiKTtoIT09dm9pZCAwJiYoZz1mdW5jdGlvbigpe1luKGUsaCtYdSg4KSx2b2lkIDAse1FnOiEwfSl9KTtmKDgsZnVuY3Rpb24obCl7WW4oZSxsLHZvaWQgMCx7UWc6ITB9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGIrWHUoMyksZnVuY3Rpb24oKXt9LGcpfSl9KX1lbHNlIGYoNSxmdW5jdGlvbihsKXtyZXR1cm4gV24oZSxsKX0pfHxaYyhiK1h1KDMpKX0sVXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlpoWzBdLGQ9eyJfJmFwdmMiOmEuUW4/IjEiOiIwIn07Yi5sZW5ndGg+MCYmKGRbIl8mdGlkcyJdPQpiLmpvaW4oIn4iKSk7aWYoYS5Obil7ZFsiXyZ0ZnQiXT1TdHJpbmcoTmIoKSk7dmFyIGU9cGQoKTtlIT09dm9pZCAwJiYoZFsiXyZ0ZmQiXT1TdHJpbmcoTWF0aC5yb3VuZChlKSkpfXJldHVybiBZdShjLmV2ZW50LGEudWR8fCIiLGQpfSxZdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLnRhcmdldCx7ZGVzdGluYXRpb25JZDpifSksZT1adShhLHt0YXJnZXQ6ZH0pO2J8fFUoZSxGLkQuUWUpO2Zvcih2YXIgZj1tKE9iamVjdC5rZXlzKGMpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtVKGUsaCxjW2hdKX1yZXR1cm4gZX0sWHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgODpjYXNlIDM6Y2FzZSA1OnJldHVybiImZm10PSIrYTtkZWZhdWx0OnJldHVybiIifX0sJHU9ZnVuY3Rpb24oYSxiKXthPVp1KGEpO1YoYSxILkouRGssWG8oZnApKTtUdCgpJiZVKGEsIl8mZ2NzIixVdCgpKTsKVShhLCJfJmdjZCIsWXQoYS5NKSk7dmFyIGM9WG8oZnApPzQ1OjQ2LGQ9ZnVuY3Rpb24oKXt2YXIgZj1iLnRpZDtpZihNKDQyNykpe3ZhciBnPVl1KGEsZixiKTtRdShnLHZvaWQgMCxBdSl9ZWxzZXt2YXIgaD1ObShjLGIpO1Z1KGEsaCxjLFtmXSl9fTtpZih5YihBLnF1ZXVlTWljcm90YXNrKSl7dmFyIGU9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGUubGVuZ3RoPT09MCl0cnl7QS5xdWV1ZU1pY3JvdGFzayhXdSl9Y2F0Y2goZil7R3UoVC5XLmZqKTtkKCk7cmV0dXJufWI9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiKTtlLnB1c2goe2V2ZW50OmEsa2U6YixlbmRwb2ludDpjfSl9ZWxzZSBHdShULlcuZmopLGQoKX07dmFyIGF2PWZ1bmN0aW9uKGEsYixjLGQpe2d1LmNhbGwodGhpcyxhLGIsYz09PXZvaWQgMD8xOmMsZD09PXZvaWQgMD8hMTpkLDMsdm9pZCAwKX07d2EoYXYsZ3UpO2F2LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQueWkpO3JldHVybiBiKyIvIitjKyIvIn07YXYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMueWEoYSxndS5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkpfTt2YXIgWD17Vjp7TWs6ImNhbGxfY29udmVyc2lvbiIsemQ6ImNjbV9jb252ZXJzaW9uIixRazoiY29tbW9uX2F3Iix4YToiY29udmVyc2lvbiIsd3E6ImZsb29kbGlnaHQiLFlkOiJnYV9jb252ZXJzaW9uIixaZDoiZ2NwX3JlbWFya2V0aW5nIixLYToicGFnZV92aWV3Iix1YjoicmVtYXJrZXRpbmciLE9iOiJ1c2VyX2RhdGFfbGVhZCIsRmI6InVzZXJfZGF0YV93ZWIifX07ZnVuY3Rpb24gYnYoYSxiKXtiJiZHYihiLGZ1bmN0aW9uKGMsZCl7dHlwZW9mIGQhPT0ib2JqZWN0IiYmZCE9PXZvaWQgMCYmKGFbIjFwLiIrY109U3RyaW5nKGQpKX0pfTsKdmFyIGN2PWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC5zaCk7aWYoYylmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhjKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1jW2ZdO2chPW51bGwmJihiWyJndG1kLiIrZl09U3RyaW5nKGcpKX19LGd2PWZ1bmN0aW9uKGEpe3ZhciBiPWR2KGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1ldihhKS5WbixkPWZ2KGMpfHwiIjtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9ZnYoZSk7cmV0dXJuIiIrZCsoZCYmZj8iOyI6IiIpK2Z9KX19LGR2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1odihhKSxjPXt9LGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPXZvaWQgMDtpZihmLmhhc093blByb3BlcnR5KCJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiKSl7Zz1mLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbDt2YXIgaD17fTtjW2ddPWNbZ118fChoLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD0KZyxoKX1lbHNlIGc9IiIsYy5oYXNPd25Qcm9wZXJ0eShnKXx8KGNbZ109e30pO3ZhciBsPWNbZ10sbjtmb3IobiBpbiBmKW4hPT0iZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIiYmKG4gaW4gbHx8KGxbbl09W10pLGxbbl0ucHVzaChmW25dKSl9cmV0dXJuIE9iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gY1twXX0pfSxodj1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELkhhKTtyZXR1cm4gYiYmYi5sZW5ndGg/Yi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkPXt9O3JldHVybiBkLmlkPWlpKGMpLGQub3JpZ2luPWMub3JpZ2luLGQuZGVzdGluYXRpb249Yy5kZXN0aW5hdGlvbixkLnN0YXJ0X2RhdGU9Yy5zdGFydF9kYXRlLGQuZW5kX2RhdGU9Yy5lbmRfZGF0ZSxkLmxvY2F0aW9uX2lkPWMubG9jYXRpb25faWQsZC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9Yy5nb29nbGVfYnVzaW5lc3NfdmVydGljYWwsZH0pOltdfSwKaWk9ZnVuY3Rpb24oYSl7YS5pdGVtX2lkIT1udWxsJiYoYS5pZCE9bnVsbD8oUCgxMzgpLGEuaWQhPT1hLml0ZW1faWQmJlAoMTQ4KSk6UCgxNTMpKTtyZXR1cm4gamkoYSl9LGZ2PWZ1bmN0aW9uKGEpe2lmKGEmJnR5cGVvZiBhPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGEpKXJldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9aXYoYik7aWYoYyl7dmFyIGQ9YVtiXSxlPUFycmF5LmlzQXJyYXkoZCk/anYoZCk6aXYoZCk7aWYoZSE9PXZvaWQgMClyZXR1cm4gYysiPSIrZX19KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIhPT12b2lkIDB9KS5qb2luKCI7Iil9LGp2PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWFwKGl2KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMhPT12b2lkIDB9KTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIsIik6dm9pZCAwfSxpdj1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj10eXBlb2YgYTtpZihiIT09Im9iamVjdCImJgpiIT09ImZ1bmN0aW9uIilyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLywvZywiXFwsIikucmVwbGFjZSgvOy9nLCJcXDsiKS5yZXBsYWNlKC89L2csIlxcPSIpfX0sa3Y9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1hW2JdO2lmKGMhPW51bGwmJihjIT09IiJ8fHlnW2JdKSlyZXR1cm4gYz09PSEwfHxjPT09ITE/YisiPSIrKGM/MTowKTpiKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkuam9pbigiJiIpfSxsdj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPXt9LGQ9UShhLEguSi5FYik7aWYoYj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi5ZZHx8Yj09PVguVi56ZHx8Yj09PVguVi5aZCljLnJhbmRvbT0iIitkO2I9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQ/KGMuY3Y9IjExIixjLmZzdD0iIitkLGMuZm10PSIzIiwKYy5iZz0iZmZmZmZmIixjLmd1aWQ9Ik9OIixjLmFzeW5jPSIxIixjLmVuPWEuZXZlbnROYW1lKTpiPT09WC5WLllkJiYoYy5jdj0iMTEiLGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYy5mc3Q9IiIrZCxjLmZtdD0iOCIsYy5lbj1hLmV2ZW50TmFtZSk7dmFyIGU9QnMoWyJhdyIsImRjIl0pO2UhPW51bGwmJihjLmdhZF9zb3VyY2U9ZSk7Yy5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7YiE9PVguVi51YiYmVHQoKSYmKGMuZ2NzPVV0KCkpO2MuZ2NkPVl0KGEuTSk7YXUoKSYmKGMuZG1hX2Nwcz1adCgpKTtjLmRtYT0kdCgpO3Z0KEV0KCkpJiYoYy50Y2ZkPWJ1KCkpO3ZhciBmPUNwKGEpO2YmJihjLnRhZ19leHA9Zik7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYy5saW1pdGVkX2Fkcz0iMSIpO1IoYSxGLkQuYmQpJiZmaShSKGEsRi5ELmJkKSxjKTtpZihSKGEsCkYuRC50Yikpe3ZhciBnPVIoYSxGLkQudGIpO2cmJihnLmxlbmd0aD09PTI/Z2koYywiaGwiLGcpOmcubGVuZ3RoPT09NSYmKGdpKGMsImhsIixnLnN1YnN0cmluZygwLDIpKSxnaShjLCJnbCIsZy5zdWJzdHJpbmcoMyw1KSkpKX12YXIgaD1RKGEsSC5KLlllKSxsPWZ1bmN0aW9uKEksRyl7dmFyIE49UihhLEcpO04mJihjW0ldPWg/WnMoTik6Til9O2woInVybCIsRi5ELnphKTtsKCJyZWYiLEYuRC5VYSk7bCgidG9wIixGLkQuUGUpO3ZhciBuPWd0KGEsRi5ELkJkLEYuRC5DZCk7biYmKGMuZ2NsYXdfc3JjPW4pO3ZhciBwPWd0KGEsRi5ELmZoLEYuRC5naCk7cCYmKGMuZ2NsZ2Jfc3JjPXApO3ZhciBxPWZ1bmN0aW9uKEksRyl7Zm9yKHZhciBOPW0oT2JqZWN0LmtleXMoSSkpLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlO2VpW1ddJiZ0eXBlb2YgSVtXXT09PSJzdHJpbmciJiYoR1siZXh0LiIrZWlbV11dPUlbV10pfX0scj1SKGEsRi5ELldjKTtyJiYKcShyLGMpO3ZhciB0PWV2KGEpLHU9dC5WbjtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsdC5rZSk7YnYoYyxSKGEsRi5ELmVkKSk7dmFyIHY9UihhLEYuRC5OZSk7diE9PXZvaWQgMCYmdiE9PSIiJiYoYy52ZG5jPVN0cmluZyh2KSk7dmFyIHg9UihhLEYuRC5MZCk7eCE9PXZvaWQgMCYmKGMuc2hmPXgpO3ZhciB5PVIoYSxGLkQuVGMpO3khPT12b2lkIDAmJihjLmRlbGM9eSk7aWYoYiE9PVguVi5ZZCl7dmFyIHo9ZnYodSk7eiYmKGMuZGF0YT16KX12YXIgQz1SKGEsRi5ELkhhKTtpZihDJiYoYj09PVguVi54YXx8Yj09PVguVi5ZZHx8Yj09PVguVi5aZHx8Yj09PVguVi56ZCkpe3ZhciBEPW5pKEMpO0QhPT12b2lkIDAmJihjLmllZGVsZD1EKTtjLml0ZW09aGkoQyl9aHQoYSxjKTtjdihhLGMpO1EoYSxILkouSWgpJiYoYy5hZWNzPSIxIik7YiE9PVguVi54YXx8UShhLEguSi5FYyl8fFEoYSxILkoub2IpfHwoYy5jYXRlZ29yeT0iYWNyY3BfdjFfNTEyIik7cmV0dXJuIGN9LApldj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz17fSxkPVEoYSxILkouZGEpLGU9bShldShhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1SKGEsZyk7aWYoaCE9PXZvaWQgMClpZihTYihnLCJfJiIpKWJbZy5zdWJzdHJpbmcoMildPWg7ZWxzZSBpZihlaS5oYXNPd25Qcm9wZXJ0eShnKSl7aWYoZyE9PUYuRC5FaXx8ZD09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgbD1laVtnXTtsJiYoZyE9PUYuRC5OZCYmZyE9PUYuRC5NZHx8TSg1MDQpP2JbbF09aDpjW2ddPWgpfX1lbHNlIGNbZ109aH1yZXR1cm57a2U6YixWbjpjfX07dmFyIG12PXtOZzoidmFsdWUiLHBiOiJjb252ZXJzaW9uQ291bnQiLE9nOjF9LG52PXtOZzoidGltZW91dHMiLHBiOiJ0aW1lb3V0cyIsT2c6MH0sb3Y9e05nOiJlb3BDb3VudCIscGI6ImVuZE9mUGFnZUNvdW50IixPZzowfSxwdj17Tmc6ImVycm9ycyIscGI6ImVycm9ycyIsT2c6MH0scXY9W212LG52LHB2LG92XTtmdW5jdGlvbiBydihhLGIpe2I9Yj09PXZvaWQgMD8xOmI7aWYoIXN2KGEpKXJldHVybnt9O3ZhciBjPXR2KHF2KSxkPWNbYS5wYl07aWYoZD09PXZvaWQgMHx8ZD09PS0xKXJldHVybiBjO3ZhciBlPXt9LGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLChlW2EucGJdPWQrYixlKSk7cmV0dXJuIHV2KGYpP2Y6Y30KZnVuY3Rpb24gdHYoYSl7dmFyIGI7YTp7dmFyIGM9bnIoImdjbF9jdHIiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTt0cnl7Yj0idmFsdWUiaW4gZCYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Ij9kLnZhbHVlOnZvaWQgMDticmVhayBhfWNhdGNoKHApe319Yj12b2lkIDB9Zm9yKHZhciBlPWIsZj17fSxnPW0oYSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7aWYoZSYmc3YobCkpe3ZhciBuPWVbbC5OZ107bj09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKG4pP2ZbbC5wYl09LTE6ZltsLnBiXT1OdW1iZXIobil9ZWxzZSBmW2wucGJdPS0xfXJldHVybiBmfQpmdW5jdGlvbiB1dihhLGIpe2I9Ynx8e307Zm9yKHZhciBjPU5iKCksZD11cShiLGMsITApLGU9e30sZj1tKHF2KSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZSxsPWFbaC5wYl07bCE9PXZvaWQgMCYmbCE9PS0xJiYoZVtoLk5nXT1sKX1lLmNyZWF0aW9uVGltZU1zPWM7cmV0dXJuIGtyKCJnY2xfY3RyIix7dmFsdWU6ZSxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfSk9PT0wPyEwOiExfWZ1bmN0aW9uIHN2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuZnR8fFlmKGEuZnQpOiExfWZ1bmN0aW9uIHZ2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuQXN8fFlmKGEuQXMpOiExfTtmdW5jdGlvbiB3digpe2lmKHh2KCkpe3ZhciBhPW5yKCJsYXN0X2NvbnZzIik7aWYoYS5lcnJvcj09PTAmJmEudmFsdWUmJnR5cGVvZiBhLnZhbHVlPT09Im9iamVjdCIpe3ZhciBiPWEudmFsdWU7aWYoYi52YWx1ZSYmQXJyYXkuaXNBcnJheShiLnZhbHVlKSl7dmFyIGM9Yi52YWx1ZTtpZighKGMubGVuZ3RoPjEpKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKHR5cGVvZiBnIT09Im9iamVjdCJ8fGc9PT1udWxsfHx0eXBlb2YgZy5yYW5kb20hPT0ibnVtYmVyInx8dHlwZW9mIGcubGFiZWwhPT0ic3RyaW5nInx8Zy5sYWJlbC5sZW5ndGg+MjAwKXJldHVybjtkLnB1c2goe3JhbmRvbTpnLnJhbmRvbSxsYWJlbDpnLmxhYmVsfSl9cmV0dXJuIGR9fX19fQpmdW5jdGlvbiB5dihhLGIpeyF4digpfHxhLmxlbmd0aD4xfHxhLmxlbmd0aD09PTEmJmFbMF0ubGFiZWwubGVuZ3RoPjIwMHx8KGI9Ynx8e30sa3IoImxhc3RfY29udnMiLHt2YWx1ZTphLGV4cGlyZXM6TnVtYmVyKHVxKGIpLmV4cGlyZXMpfSkpfWZ1bmN0aW9uIHh2KCl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSYmWWYoMTEpfTtmdW5jdGlvbiB6dihhKXt2YXIgYj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7cmV0dXJuIGE/U3RyaW5nKGJebmcoYSkmMjE0NzQ4MzY0Nyk6U3RyaW5nKGIpfWZ1bmN0aW9uIEF2KGEpe3JldHVyblt6dihhKSxNYXRoLnJvdW5kKE5iKCkvMUUzKV0uam9pbigiLiIpfWZ1bmN0aW9uIEJ2KGEsYixjLGQsZSl7dmFyIGY9cnEoYiksZztyZXR1cm4oZz1ncShhLGYsc3EoYyksZCxlKSk9PW51bGw/dm9pZCAwOmcuQ3J9O3ZhciBDdj1bIjEiXSxEdj17fSxFdj17fTtmdW5jdGlvbiBGdihhKXtyZXR1cm4gRXZbR3YoYSldfWZ1bmN0aW9uIEh2KGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9R3YoYS5wcmVmaXgpO2lmKER2W2NdKUl2KGEpLEp2KGEpO2Vsc2UgaWYoS3YoYyxhLnBhdGgsYS5kb21haW4pKXt2YXIgZD1GdihhLnByZWZpeCl8fHtpZDp2b2lkIDAsa2M6dm9pZCAwfTtiJiZMdihhLGQpO0l2KGEpO0p2KGEpfWVsc2V7dmFyIGU9VGooImF1aWRkYyIpO2lmKGUpc2IoIlRBR0dJTkciLDE3KSxEdltjXT1lO2Vsc2UgaWYoYil7dmFyIGY9R3YoYS5wcmVmaXgpLGc9QXYoKTtNdihmLGcsYSk7S3YoYyxhLnBhdGgsYS5kb21haW4pO0l2KGEsITApO0p2KGEsITApfX19CmZ1bmN0aW9uIEl2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmc3YobXYpJiZvcigiZ2NsX2N0ciIpO2lmKHZ2KG12KSYmdHYoW212XSlbbXYucGJdPT09LTEpe2Zvcih2YXIgYz17fSxkPShjW212LnBiXT0wLGMpLGU9bShxdiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyE9PW12JiZ2dihnKSYmKGRbZy5wYl09MCl9dXYoZCxhKX19ZnVuY3Rpb24gSnYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZ4digpJiZvcigibGFzdF9jb252cyIpOyFCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSl8fCFZZigxMil8fHd2KCl8fHl2KFtdLGEpfQpmdW5jdGlvbiBMdihhLGIpe3ZhciBjPUd2KGEucHJlZml4KSxkPUR2W2NdO2lmKGQpe3ZhciBlPWQuc3BsaXQoIi4iKTtpZihlLmxlbmd0aD09PTIpe3ZhciBmPU51bWJlcihlWzFdKXx8MDtpZihmKXt2YXIgZz1kO1lmKDE5KSYmYi5maT9nPWQrIi4iKyhiLnNlc3Npb25JZHx8Ii0uLSIpKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSsiLiIrYi5maSsiLiIrKGIuTGM/Yi5MYzpNYXRoLmZsb29yKE5iKCkvMUUzKSk6Yi5zZXNzaW9uSWQmJihnPWQrIi4iK2Iuc2Vzc2lvbklkKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSk7TXYoYyxnLGEsZioxRTMpfX19fWZ1bmN0aW9uIE12KGEsYixjLGQpe3ZhciBlO2U9WyIxIix0cShjLmRvbWFpbixjLnBhdGgpLGJdLmpvaW4oIi4iKTt2YXIgZj11cShjLGQpO2YuTWM9TnYoKTtvcShhLGUsZil9CmZ1bmN0aW9uIEt2KGEsYixjKXt2YXIgZD1CdihhLGIsYyxDdixOdigpKTtpZighZClyZXR1cm4hMTtPdihhLGQpO3JldHVybiEwfWZ1bmN0aW9uIE92KGEsYil7dmFyIGM9Yi5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09MylFdlthXT17c2Vzc2lvbklkOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2Vsc2UgaWYoYy5sZW5ndGg+PTImJihEdlthXT1jWzBdKyIuIitjWzFdLGMuc2hpZnQoKSxjLnNoaWZ0KCksYy5sZW5ndGg+PTMpKXt2YXIgZD17c2Vzc2lvbklkOmNbMF09PT0iLSI/dm9pZCAwOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2lmKFlmKDE5KSYmYy5sZW5ndGg+PTYpe3ZhciBlPWNbM10rIi4iK2NbNF0sZj1OdW1iZXIoY1s1XSl8fDA7ZSYmZiE9PTAmJihkLmZpPWUsZC5MYz1mKX1FdlthXT1kfX1mdW5jdGlvbiBHdihhKXtyZXR1cm4oYXx8Il9nY2wiKSsiX2F1In0KZnVuY3Rpb24gUHYoYSl7ZnVuY3Rpb24gYigpe0JsKGMpJiZhKCl9dmFyIGM9TnYoKTtIbChmdW5jdGlvbigpe2IoKTtCbChjKXx8SWwoYixjKX0sYyl9ZnVuY3Rpb24gUXYoYSl7dmFyIGI9VXEoITApLGM9R3YoYS5wcmVmaXgpO1B2KGZ1bmN0aW9uKCl7dmFyIGQ9YltjXTtpZihkKXtPdihjLGQpO3ZhciBlPU51bWJlcihEdltjXS5zcGxpdCgiLiIpWzFdKSoxRTM7aWYoZSl7c2IoIlRBR0dJTkciLDE2KTt2YXIgZj11cShhLGUpO2YuTWM9TnYoKTt2YXIgZz1bIjEiLHRxKGEuZG9tYWluLGEucGF0aCksZF0uam9pbigiLiIpO29xKGMsZyxmKX19fSl9ZnVuY3Rpb24gUnYoYSxiLGMsZCxlKXtlPWV8fHt9O3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGc9e30saD1CdihhLGUucGF0aCxlLmRvbWFpbixDdixOdigpKTtoJiYoZ1thXT1oKTtyZXR1cm4gZ307UHYoZnVuY3Rpb24oKXthcihmLGIsYyxkKX0pfQpmdW5jdGlvbiBOdigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfTsKdmFyIFR2PWZ1bmN0aW9uKGEpe3JldHVybiBTdihhLHtPajohMH0pLlNofSxTdj1mdW5jdGlvbihhLGIpe2E9YXx8e307aWYoIVhvKEYuRC5rYSkpcmV0dXJue307dmFyIGM9VXYoYSksZD1jLlNoLGU9Yy5paztiLk9qJiYhZCYmKGQ9QXYoKSk7Yi5YaCYmIWUmJihlPUF2KCkpO3ZhciBmPXt9O2QmJihmLnNlc3Npb25JZD1kKTtlJiYoZi5maT1lKTt2YXIgZz1GdihIcihhLnByZWZpeCkpO2cmJihiLk9qJiYhYi5YaD9nLkxjJiYoZi5MYz1nLkxjKTpiLlhoJiYhYi5PaiYmZy5rYyYmKGYua2M9Zy5rYykpO2lmKGR8fGUpe3ZhciBoPWEsbD1HdihoLnByZWZpeCk7THYoaCxmKTtkZWxldGUgRHZbbF07ZGVsZXRlIEV2W2xdO0t2KGwsaC5wYXRoLGguZG9tYWluKX1yZXR1cm4gVXYoYSl9LFV2PWZ1bmN0aW9uKGEpe2lmKCFYbyhGLkQua2EpKXJldHVybnt9O2E9YXx8e307SHYoYSwhMSk7dmFyIGI9RnYoSHIoYS5wcmVmaXgpKTtpZighYilyZXR1cm57fTt2YXIgYz1OYigpLGQ9e307aWYoYy0KYi5rYyoxRTM8PShNKDQ1MCl8fE0oNDQzKT84NjRFNToxOEU1KSl7dmFyIGU9Yi5zZXNzaW9uSWQ7aWYoZSl7dmFyIGY9ZS5zcGxpdCgiLiIpO2YubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGZbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5TaD1lKX19aWYoYi5MYyYmYy1iLkxjKjFFMzw9ODY0RTUpe3ZhciBnPWIuZmk7aWYoZyl7dmFyIGg9Zy5zcGxpdCgiLiIpO2gubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGhbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5paz1nKX19cmV0dXJuIGR9O3ZhciBWdj0iZW1haWwgZW1haWxfYWRkcmVzcyBzaGEyNTZfZW1haWxfYWRkcmVzcyBwaG9uZV9udW1iZXIgc2hhMjU2X3Bob25lX251bWJlciBmaXJzdF9uYW1lIGxhc3RfbmFtZSIuc3BsaXQoIiAiKSxXdj0iZmlyc3RfbmFtZSBzaGEyNTZfZmlyc3RfbmFtZSBsYXN0X25hbWUgc2hhMjU2X2xhc3RfbmFtZSBzdHJlZXQgc2hhMjU2X3N0cmVldCBjaXR5IHJlZ2lvbiBjb3VudHJ5IHBvc3RhbF9jb2RlIi5zcGxpdCgiICIpO2Z1bmN0aW9uIFh2KGEsYil7aWYoIWIuX3RhZ19tZXRhZGF0YSl7Zm9yKHZhciBjPXt9LGQ9MCxlPTA7ZTxhLmxlbmd0aDtlKyspZCs9WXYoYVtlXSxiLGMpPzE6MDtkPjAmJihiLl90YWdfbWV0YWRhdGE9Yyl9fQpmdW5jdGlvbiBZdihhLGIsYyl7dmFyIGQ9YlthXTtpZihkPT09dm9pZCAwfHxkPT09bnVsbClyZXR1cm4hMTtjW2FdPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToiYyJ9fSk6e21vZGU6ImMifTtyZXR1cm4hMH1mdW5jdGlvbiBadihhKXtpZihNKDUyMykmJmEpe1h2KFZ2LGEpO2Zvcih2YXIgYj1CYihhLmFkZHJlc3MpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkJiZYdihXdixkKX12YXIgZT1hLmhvbWVfYWRkcmVzcztlJiZYdihXdixlKX19CmZ1bmN0aW9uICR2KGEsYixjKXtmdW5jdGlvbiBkKGYsZyl7Zz1TdHJpbmcoZykuc3Vic3RyaW5nKDAsMTAwKTtlLnB1c2goIiIrZitlbmNvZGVVUklDb21wb25lbnQoZykpfWlmKCFjKXJldHVybiIiO3ZhciBlPVtdO2QoImkiLFN0cmluZyhhKSk7ZCgiZiIsYik7Yy5tb2RlJiZkKCJtIixjLm1vZGUpO2MuaXNQcmVIYXNoZWQmJmQoInAiLCIxIik7Yy5yYXdMZW5ndGgmJmQoInIiLFN0cmluZyhjLnJhd0xlbmd0aCkpO2Mubm9ybWFsaXplZExlbmd0aCYmZCgibiIsU3RyaW5nKGMubm9ybWFsaXplZExlbmd0aCkpO2MubG9jYXRpb24mJmQoImwiLGMubG9jYXRpb24pO2Muc2VsZWN0b3ImJmQoInMiLGMuc2VsZWN0b3IpO3JldHVybiBlLmpvaW4oIi4iKX07dmFyIGF3PXZvaWQgMDtmdW5jdGlvbiBidygpe2lmKCFhdyl7dmFyIGE9b20oam0uYmEub3AsbmV3IE1hcCk7YXc9bmV3IG9nKGEpfXJldHVybiBhd307CnZhciBjdz1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gYTtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlIT09ImFkZHJlc3MiJiZlIT09InBob25lX251bWJlciImJmUhPT0ic2hhMjU2X3Bob25lX251bWJlciImJihiW2VdPWFbZV0pfXJldHVybiBifSxmdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1bInR2LjEiXSxkPVsidHZkLjEiXSxlPWR3KGEpO2lmKGUpcmV0dXJuIGMucHVzaChlKSx7aGFzVXBkOiExLE9vOmMuam9pbigifiIpLFluOmMuam9pbigifiIpLGVuY3J5cHRpb25LZXlTdHJpbmc6dm9pZCAwLGlpOnt9LG1ldGFkYXRhUGFyYW06Yj9kLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBmPXt9LGc9MDt2YXIgaD0wLGw9ZXcoYSxmdW5jdGlvbihxLHIsdCl7aCsrO3ZhciB1PXEudmFsdWUsdjsKaWYodCl7dmFyIHg9cisiX18iK2crKzt2PSIke3VzZXJEYXRhLiIreCsifHNoYTI1Nn0iO2ZbeF09dX1lbHNlIHY9ZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1KSk7cS5pbmRleCE9PXZvaWQgMCYmKHIrPXEuaW5kZXgpO2MucHVzaChyKyIuIit2KTtpZihiKXt2YXIgeT0kdihoLHIscS5tZXRhZGF0YSk7eSYmZC5wdXNoKHkpfX0pLmhhc1VwZCxuPWQuam9pbigifiIpO3ZhciBwPWMuam9pbigifiIpO3JldHVybntoYXNVcGQ6bCxPbzpwLGlpOnt1c2VyRGF0YTpmfSxZbjoidHYuMX4keyIrKHArInwiKyhNKDU1NSk/ImVuY3J5cHRfd2l0aF9tZW1vIjoiZW5jcnlwdCIpKyJ9IiksZW5jcnlwdGlvbktleVN0cmluZzpFKDQzKSxtZXRhZGF0YVBhcmFtOmI/bjp2b2lkIDB9fSxodz1mdW5jdGlvbihhKXtpZighKGEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKSlyZXR1cm4hMTsKdmFyIGI9Z3coYSk7cmV0dXJuIGV3KGIsZnVuY3Rpb24oKXt9KS5oYXNVcGR9LGV3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpiO2Zvcih2YXIgYz0hMSxkPSExLGU9bShhKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnLnZhbHVlKXt2YXIgaD1pd1tnLm5hbWVdO2lmKGgpe3ZhciBsPWp3KGcpO2wmJihjPSEwKTtkPSEwO2IoZyxoLGwpfX19cmV0dXJue2hhc1VwZDpkLGhhc1VwZFRvSGFzaDpjfX0sanc9ZnVuY3Rpb24oYSl7dmFyIGI9a3coYS5uYW1lKSxjPS9eZVxkKyQvLnRlc3QoYS52YWx1ZSksZDtpZihkPWImJiFjKXt2YXIgZT1hLnZhbHVlO2Q9IShsdy50ZXN0KGUpfHx5aS50ZXN0KGUpKX1yZXR1cm4gZH0sa3c9ZnVuY3Rpb24oYSl7cmV0dXJuIG13LmluZGV4T2YoYSkhPT0tMX0sc3c9ZnVuY3Rpb24oYSxiLGMpe2lmKHliKEEuUHJvbWlzZSkpdHJ5e3ZhciBkPSExO3ZhciBlPWd3KGEsZCksZj1udyhlKS50aGVuKGZ1bmN0aW9uKGgpe3ZhciBsPWgueWIsbj1sLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hU2IocS5uYW1lLCJyYXciKX0pLHA9b3coe3liOm59KTtyZXR1cm57cmVzdWx0OntwYXJhbTpwLnBhcmFtLGhhc1VwZFRvSGFzaDpwLmhhc1VwZFRvSGFzaCxoYXNVcGQ6cC5oYXNVcGQsaGFkRXJyb3I6cC5oYWRFcnJvcixtZXRhZGF0YVBhcmFtOnAubWV0YWRhdGFQYXJhbX0seWI6bH19KTtyZXR1cm4gZi50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBoLnJlc3VsdH0pfWNhdGNoKGgpe319LHF3PWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn0sb3c9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9YS55YixkPVsidHYuMSJdLGU9WyJ0dmQuMSJdLGY9ZHcoYyk7aWYoZilyZXR1cm4gZC5wdXNoKGYpLHtwYXJhbTpkLmpvaW4oIn4iKSxoYXNVcGRUb0hhc2g6ITEsaGFzVXBkOiExLGhhZEVycm9yOiEwLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBnPWMuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFqdyhxKX0pLGg9MCxsPWV3KGcsZnVuY3Rpb24ocSxyKXtoKys7dmFyIHQ9cS52YWx1ZSx1PXEuaW5kZXg7dSE9PXZvaWQgMCYmKHIrPXUpO2QucHVzaChyKyIuIit0KTtpZihiKXt2YXIgdj0kdihoLHIscS5tZXRhZGF0YSk7diYmZS5wdXNoKHYpfX0pLG49bC5oYXNVcGRUb0hhc2gscD1sLmhhc1VwZDtyZXR1cm57cGFyYW06ZW5jb2RlVVJJQ29tcG9uZW50KGQuam9pbigifiIpKSwKaGFzVXBkVG9IYXNoOm4saGFzVXBkOnAsaGFkRXJyb3I6ITEsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH19LGR3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiBpdy5lcnJvcl9jb2RlKyIuIithWzBdLnZhbHVlfSxwdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4hMTtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihpd1tkLm5hbWVdJiZkLnZhbHVlKXJldHVybiEwfXJldHVybiExfSxndz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO2lmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iaHR0cHM6IilyZXR1cm4gYy5wdXNoKHtuYW1lOiJlcnJvcl9jb2RlIix2YWx1ZToiZTMiLGluZGV4OnZvaWQgMH0pLGM7dmFyIGQ9Yy5wdXNoLGU9ZC5hcHBseSxmPVtdLApnPWYuY29uY2F0LGgsbD1hLl90YWdfbWV0YWRhdGF8fHt9O2g9W10uY29uY2F0KHcodHcoe25hbWU6ImVtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzLGFiOmwuZW1haWwsbWQ6bC5zaGEyNTZfZW1haWxfYWRkcmVzc30sdXcpKSx3KHR3KHtuYW1lOiJwaG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXIsYWI6bC5waG9uZV9udW1iZXIsbWQ6bC5zaGEyNTZfcGhvbmVfbnVtYmVyfSx2dykpKTt2YXIgbj13KGgpLHAscT1hLl90YWdfbWV0YWRhdGF8fHt9LHI9YS5ob21lX2FkZHJlc3N8fHt9LHQ9ci5fdGFnX21ldGFkYXRhfHx7fTtwPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWUsYWI6cS5maXJzdF9uYW1lLG1kOnEuc2hhMjU2X2ZpcnN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLApTYTphLnNoYTI1Nl9sYXN0X25hbWUsYWI6cS5sYXN0X25hbWUsbWQ6cS5zaGEyNTZfbGFzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzpyLnN0cmVldCxTYTpyLnNoYTI1Nl9zdHJlZXQsYWI6dC5zdHJlZXQsbWQ6dC5zaGEyNTZfc3RyZWV0fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ci5jaXR5LGFiOnQuY2l0eX0sd3coeXcpKSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzpyLnBvc3RhbF9jb2RlLGFiOnQucG9zdGFsX2NvZGV9LHd3KHp3KSkpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnIucmVnaW9uLGFiOnQucmVnaW9ufSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ci5jb3VudHJ5LGFiOnQuY291bnRyeX0sd3coencpKSkpO2Zvcih2YXIgdT13KHApLHY9W10seD1CYihhLmFkZHJlc3N8fHt9KSx5PTA7eTx4Lmxlbmd0aDt5Kyspe2Zvcih2YXIgej14W3ldLEM9ei5fdGFnX21ldGFkYXRhfHx7fSxEPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIiwKcmF3OnouZmlyc3RfbmFtZSxTYTp6LnNoYTI1Nl9maXJzdF9uYW1lLGFiOkMuZmlyc3RfbmFtZSxtZDpDLnNoYTI1Nl9maXJzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OnoubGFzdF9uYW1lLFNhOnouc2hhMjU2X2xhc3RfbmFtZSxhYjpDLmxhc3RfbmFtZSxtZDpDLnNoYTI1Nl9sYXN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ei5zdHJlZXQsU2E6ei5zaGEyNTZfc3RyZWV0LGFiOkMuc3RyZWV0LG1kOkMuc2hhMjU2X3N0cmVldH0seXcpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ei5jaXR5LGFiOkMuY2l0eX0seXcpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnoucG9zdGFsX2NvZGUsYWI6Qy5wb3N0YWxfY29kZX0sencpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzp6LnJlZ2lvbixhYjpDLnJlZ2lvbn0seXcpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ei5jb3VudHJ5LGFiOkMuY291bnRyeX0sencpKSksST0wO0k8CkQubGVuZ3RoO0krKylEW0ldLmluZGV4PXk7di5wdXNoLmFwcGx5KHYsdyhEKSl9ZS5jYWxsKGQsYyxnLmNhbGwoZixuLHUsdyh2KSkpO2lmKGImJkJwKCkpe3ZhciBHPWMucHVzaCxOPUcuYXBwbHksUz1bXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2VtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSkpLHcoQXcoe25hbWU6InJhd19waG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXJ9KSkpKTtmb3IodmFyIFc9QmIoYS5hZGRyZXNzfHx7fSksZWE9MDtlYTxXLmxlbmd0aDtlYSsrKXt2YXIgamE9V1tlYV07Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6amEuZmlyc3RfbmFtZSxTYTpqYS5zaGEyNTZfZmlyc3RfbmFtZX0sZWEpKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6amEubGFzdF9uYW1lLFNhOmphLnNoYTI1Nl9sYXN0X25hbWV9LAplYSkpLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpqYS5zdHJlZXQsU2E6amEuc2hhMjU2X3N0cmVldH0sZWEpKSkpfWlmKGEuZmlyc3RfbmFtZXx8YS5ob21lX2FkZHJlc3Mpe1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lfSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSxTYTphLnNoYTI1Nl9sYXN0X25hbWV9KSkpKTt2YXIgZmE9YS5ob21lX2FkZHJlc3N8fHt9O1MucHVzaC5hcHBseShTLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpmYS5zdHJlZXQsU2E6ZmEuc2hhMjU2X3N0cmVldH0pKSl9Ti5jYWxsKEcsYyx3KFMpKX1yZXR1cm4gY30sd3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe1AoNjQpO3JldHVybiBhKGIpfX0sQXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihhLlNhKXJldHVybiBjO2Zvcih2YXIgZD0KQmIoYS5yYXcpLGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9QncoZFtlXSk7aWYoZiYmIXlpLnRlc3QoZikpaWYoL15lXGQrJC8udGVzdChmKSljLnB1c2goe25hbWU6YS5uYW1lLHZhbHVlOmYsaW5kZXg6Yn0pO2Vsc2V7dmFyIGc9YyxoPWcucHVzaCxsPWEubmFtZSxuO3ZhciBwPUE7dHJ5e249QmkoQXJyYXkuZnJvbShaYihmKSkscCl9Y2F0Y2gocSl7bj0iZTAifWguY2FsbChnLHtuYW1lOmwsdmFsdWU6bixpbmRleDpifSl9fXJldHVybiBjfSx0dz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9TSg1MjMpLGU9YS5yYXcsZj1kP2EuYWI6dm9pZCAwO0N3KGUsITEpO2EuU2EmJihlJiZQKDkwKSxlPWEuU2EsZj1kP2EubWQ6dm9pZCAwLEN3KGUsITApKTtmb3IodmFyIGc9QmIoZSksaD1CYihmKSxsPTA7bDxnLmxlbmd0aDsrK2wpe3ZhciBuO3ZhciBwPWEubmFtZSxxPWIscj1oW2xdLHQ9QncoZ1tsXSk7aWYodCE9PSIiKWlmKHlpLnRlc3QodCkpe3ImJihyLmlzUHJlSGFzaGVkPSEwKTsKdmFyIHU9e25hbWU6cCx2YWx1ZTp0LGluZGV4OnZvaWQgMH07ciYmKHUubWV0YWRhdGE9cik7bj11fWVsc2V7dmFyIHY9cSh0KSx4PXtuYW1lOnAsdmFsdWU6dixpbmRleDp2b2lkIDB9O3ImJih4Lm1ldGFkYXRhPXIsdiYmKHIucmF3TGVuZ3RoPVN0cmluZyh0KS5sZW5ndGgsci5ub3JtYWxpemVkTGVuZ3RoPXYubGVuZ3RoKSk7bj14fWVsc2Ugbj12b2lkIDA7dmFyIHk9bjt5JiZjLnB1c2goeSl9cmV0dXJuIGN9LEN3PWZ1bmN0aW9uKGEsYil7aWYoemIoYSl8fEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPUJiKGEpLGQ9MDtkPGMubGVuZ3RoOysrZCl7dmFyIGU9QncoY1tkXSksZj15aS50ZXN0KGUpO2ImJiFmJiZQKDg5KTshYiYmZiYmUCg4OCl9fSxEdz1mdW5jdGlvbihhKXt2YXIgYj1hP2d3KGEpOltdO3JldHVybiBvdyh7eWI6Yn0pfSxFdz1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjAmJnliKEEuUHJvbWlzZSk/Z3coYSkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYmCmt3KGIubmFtZSkmJiF5aS50ZXN0KGIudmFsdWUpfSk6ITF9LEJ3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOnpiKGEpP0xiKFN0cmluZyhhKSk6ImUwIn0senc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShGdywiIil9LHh3PWZ1bmN0aW9uKGEpe3JldHVybiB5dyhhLnJlcGxhY2UoL1xzL2csIiIpKX0seXc9ZnVuY3Rpb24oYSl7cmV0dXJuIExiKGEucmVwbGFjZShHdywiIikudG9Mb3dlckNhc2UoKSl9LHZ3PWZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC9bXHMtKCkvLl0vZywiIik7YS5jaGFyQXQoMCkhPT0iKyImJihhPSIrIithKTtyZXR1cm4oTSg1OTcpP0h3Okl3KS50ZXN0KGEpP2E6ImUwIn0sdXc9ZnVuY3Rpb24oYSl7dmFyIGI9YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCJAIik7aWYoYi5sZW5ndGg9PT0yKXt2YXIgYz1iWzBdOy9eKGdtYWlsfGdvb2dsZW1haWwpXC4vLnRlc3QoYlsxXSkmJihjPWMucmVwbGFjZSgvXC4vZywiIikpO2M9YysiQCIrYlsxXTtpZihKdy50ZXN0KGMpKXJldHVybiBjfXJldHVybiJlMCJ9LApLdz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihiKXtiLnZhbHVlJiZrdyhiLm5hbWUpJiYoYi52YWx1ZT1EaShiLnZhbHVlKSl9KSx7eWI6YX19Y2F0Y2goYil7cmV0dXJue3liOltdfX19LG53PWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSl9KT95YihBLlByb21pc2UpP1Byb21pc2UuYWxsKGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpP0FpKGIudmFsdWUpLnRoZW4oZnVuY3Rpb24oYyl7Yi52YWx1ZT1jfSk6UHJvbWlzZS5yZXNvbHZlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybnt5YjphfX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue3liOltdfX0pOnt0aGVuOmZ1bmN0aW9uKGIpe2Ioe3liOltdfSl9fTpQcm9taXNlLnJlc29sdmUoe3liOmF9KX0sR3c9L1swLTlgfiFAIyQlXiYqKClfXC0rPTo7PD4sLj98L1xcW1xdXS9nLEp3PS9eXFMrQFxTK1wuXFMrJC8sCkl3PS9eXCtcZHsxMCwxNX0kLyxIdz0vXlwrXGR7NywxNX0kLyxGdz0vWy5+XS9nLGx3PS9eWzAtOUEtWmEtel8tXXs0M30kLyxMdz1bInJlbSIsInJwbiIsInJmbiIsInJsbiIsInJzYSJdLE13PXt9LGl3PShNdy5lbWFpbD0iZW0iLE13LnBob25lX251bWJlcj0icG4iLE13LmZpcnN0X25hbWU9ImZuIixNdy5sYXN0X25hbWU9ImxuIixNdy5zdHJlZXQ9InNhIixNdy5jaXR5PSJjdCIsTXcucmVnaW9uPSJyZyIsTXcuY291bnRyeT0iY28iLE13LnBvc3RhbF9jb2RlPSJwYyIsTXcuZXJyb3JfY29kZT0iZWMiLE13LnJhd19lbWFpbD0icmVtIixNdy5yYXdfcGhvbmVfbnVtYmVyPSJycG4iLE13LnJhd19maXJzdF9uYW1lPSJyZm4iLE13LnJhd19sYXN0X25hbWU9InJsbiIsTXcucmF3X3N0cmVldD0icnNhIixNdyk7dmFyIG13PU9iamVjdC5mcmVlemUoWyJlbWFpbCIsCiJwaG9uZV9udW1iZXIiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwic3RyZWV0Il0pOwp2YXIgUXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1sdihhKSxkPWZ1bmN0aW9uKHApe3ZhciBxPUNwKGEpO3EmJihjLnRhZ19leHA9cSk7YihwKX0sZT1RKGEsSC5KLmRhKSxmPVEoYSxILkouWWEpLGc9WG8oW0YuRC5tYSxGLkQua2FdKSxoO2E6c3dpdGNoKGUpe2Nhc2UgWC5WLnhhOmNhc2UgWC5WLnpkOmNhc2UgWC5WLlpkOmNhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmg9ITA7YnJlYWsgYTtkZWZhdWx0Omg9ITF9aWYoaCYmZiYmZylpZihRKGEsSC5KLmZkKSlpZihOdyhhKSlkKGMpO2Vsc2V7dmFyIGw9c3coZiwhMCk7T3cobCxhLGMsZCl9ZWxzZXt2YXIgbjthOnt0cnl7bj1vdyhLdyhndyhmKSkpO2JyZWFrIGF9Y2F0Y2gocCl7fW49dm9pZCAwfWlmKG4pdHJ5e1B3KGMsYSkobil9Y2F0Y2gocCl7fWQoYyl9ZWxzZSBkZWxldGUgYy5lY19tb2RlLGQoYyl9LE53PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO3JldHVybiBiPT09WC5WLkZifHxiPT09WC5WLk9ifSxSdz1mdW5jdGlvbihhLApiKXtyZXR1cm4gYSE9PTF8fFEoYixILkouZGEpPT09WC5WLk9iJiYhTSg0NDUpPyExOiEhUShiLEguSi5mZCl9LFB3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe1J3KGMuZW5jcnlwdGlvblJlc3VsdD8xOjAsYil8fChhLmVtPWMucGFyYW0pO2lmKGMuaGFzVXBkKXt2YXIgZD1TdyhiKTtkJiYoYS5lY3NpZD1kKX1NKDUyMykmJmMubWV0YWRhdGFQYXJhbSYmKGEuZW1kPWMubWV0YWRhdGFQYXJhbSk7fX0sU3c9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuRmImJgohTSg0NDMpKXt2YXIgYj1RKGEsSC5KLkdhKTtyZXR1cm4gUShhLEguSi56ail8fFR2KGIpfX0sT3c9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSl0cnl7YS50aGVuKFB3KGMsYikpLnRoZW4oZnVuY3Rpb24oKXtkKGMpfSk7cmV0dXJufWNhdGNoKGUpe31kKGMpfTt2YXIgVHc9T2JqZWN0LmZyZWV6ZSh7Z2NwOiIxIixzc2N0ZToiMSIsY3RfY29va2llX3ByZXNlbnQ6IjEifSk7CnZhciBVdz1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMSwhMSl9O3dhKFV3LGF2KTtVdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7UXcoYSxmdW5jdGlvbihkKXtRKGEsSC5KLmFqKSYmZGVsZXRlIGQuaXRlbTtRKGEsSC5KLm9iKSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLFR3KTt2YXIgZT1nayhiLkljKTtlJiYoZC5fdWlwPWUpO3ZhciBmPSI/IitrdihkKTtjKGYpfSl9O3ZhciBWdz1uZXcgVXcoMjIsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFd3PW5ldyBVdygyMyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksWHc9bmV3IFV3KDYwLFtdKSxZdz1mdW5jdGlvbigpe307d2EoWXcsb3UpO1l3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi56ZCYmUShhLEguSi5saik/W3tlbmRwb2ludDpYbyhmcCk/UShhLEguSi5vYik/V3c6Vnc6WHcsbWV0aG9kOmx1fV06W119O3ZhciBadz1uZXcgWXc7Cgp2YXIgJHc9ZnVuY3Rpb24oYSl7aWYoT3AoKT09PTIpcmV0dXJuITE7dmFyIGI9UShhLEguSi5kYSksYz1bWC5WLnhhLFguVi51Yl07TSg1OTMpJiZjLnB1c2goWC5WLllkKTtyZXR1cm4gYy5pbmNsdWRlcyhiKT8hMDohMX0sYXg9ZnVuY3Rpb24oYSl7cmV0dXJuIE0oNTAwKSYmT3AoKSE9PTImJlEoYSxILkouZGEpPT09WC5WLnhhfSxieD1mdW5jdGlvbihhKXt2YXIgYj1IcihhLnByZWZpeCk7Yj09PSJfZ2NsIiYmKGI9IiIpO3JldHVybiBifSxjeD1mdW5jdGlvbihhKXtpZihSKGEsRi5ELlNiKXx8UihhLEYuRC5KZSkpe3ZhciBiPVIoYSxGLkQuR2QpLGM9RWQoUShhLEguSi5HYSksbnVsbCksZD1IcihjLnByZWZpeCk7Yy5wcmVmaXg9ZD09PSJfZ2NsIj8iIjpkO2lmKFIoYSxGLkQuU2IpKXt2YXIgZT1YcyhiLGMsIVEoYSxILkouTm0pLGF4KGEpKTtWKGEsSC5KLk5tLCEwKTtlJiZVKGEsRi5ELnFtLGUpfWlmKFIoYSxGLkQuSmUpKXt2YXIgZj1QcyhiLGMpLlJyO2YmJlUoYSxGLkQuTWwsCmYpfX19LGl4PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBkeDtzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLnhhOlUoYSxGLkQuZm0sVXEoITEpLl9ncyk7ZXgoYSk7ZngoYSxiKTtneChhLGIpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGM9bm0oam0uYmEuVmUpLGQ9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZihjJiZjLmdjbGlkJiYhZCYmIVEoYSxILkouWGUpKXt2YXIgZT1TdHJpbmcoYy5nY2xpZCksZj1uZXcgZXI7ZnIoZiw2KTtiLkNqKHt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOmUscWE6ZixvYTpbNF19KX19YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6ZXgoYSk7ZngoYSxiKTticmVhaztjYXNlIFguVi51YjppZihNKDQ1OCkmJlhvKEYuRC5rYSkmJlEoYSxILkoud2YpKXt2YXIgZz1RKGEsSC5KLkdhKTtoeChhLGIsYngoZykpfWJyZWFrO2Nhc2UgWC5WLllkOmV4KGEpLGZ4KGEsYiksZ3goYSxiKX1iLk90KGEpfSxmeD1mdW5jdGlvbihhLGIpe2lmKFhvKEYuRC5rYSkmJgpRKGEsSC5KLndmKSl7dmFyIGM9UShhLEguSi5HYSksZD1ieChjKSxlPVJzKGQpO1UoYSxGLkQuQmUsZS5FZyk7VShhLEYuRC5EZSxlLldoKTtVKGEsRi5ELkNlLGUuVWgpO00oNDIxKT8oangoYSxiLGMsZCksaHgoYSxiLGQpKTpXcyhkKT9qeChhLGIsYyxkKTpoeChhLGIsZCl9fSxoeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JHcoYSk7VHMoYywiZ2NsaWQiLCJnY2xhdyIsZCkuZm9yRWFjaChmdW5jdGlvbihmKXtiLkNqKGYpfSk7Yi5MbygpO2lmKCFjKXt2YXIgZT1PcyhCcihBcigpKT9ScCgpOnt9LE1zKTtlJiZVKGEsRi5ELnJoLGUpfX0sang9ZnVuY3Rpb24oYSxiLGMsZCl7VHMoZCwiYnJhaWRzIiwiZ2NsZ2IiLGF4KGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2IuanIoZyl9KTtpZighZCl7dmFyIGU9UihhLEYuRC5HZCk7Yz1FZChjLG51bGwpO2MucHJlZml4PWQ7dmFyIGY9UHMoZSxjLCEwKS5RcjtmJiZVKGEsRi5ELkplLGYpfX0sZXg9ZnVuY3Rpb24oYSl7aWYoTSgxNikpe3ZhciBiPQpPKGEuTSxGLkQuemEpO2J8fChiPU9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO3ZhciBjLGQ9UmooYiksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpO2lmKCFlKXt2YXIgZj1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2U9ZXx8SWooZiwiZ2NsaWQiLCExKX0oYz1lP2UubGVuZ3RoOnZvaWQgMCkmJlUoYSxGLkQuemwsYyl9fSxneD1mdW5jdGlvbihhLGIpe3ZhciBjPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgZDt2YXIgZTtiOnt2YXIgZixnPUEsaD1bXTt0cnl7Zy5uYXZpZ2F0aW9uJiZnLm5hdmlnYXRpb24uZW50cmllcyYmKGg9Zy5uYXZpZ2F0aW9uLmVudHJpZXMoKSl9Y2F0Y2goQyl7fWY9aDt2YXIgbD17fTt0cnl7Zm9yKHZhciBuPWYubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBwPWZbbl0mJmZbbl0udXJsO2lmKHApe3ZhciBxPShuZXcgVVJMKHApKS5zZWFyY2hQYXJhbXMscj1xLmdldCgiZ2NsaWQiKXx8CnZvaWQgMCx0PXEuZ2V0KCJnY2xzcmMiKXx8dm9pZCAwO2lmKHIpe2wuZ2NsaWQ9cjt0JiYobC5WaD10KTtlPWw7YnJlYWsgYn19fX1jYXRjaChDKXt9ZT1sfXZhciB1PWUsdj11LmdjbGlkLHg9dS5WaCx5O2lmKHYmJih4PT09dm9pZCAwfHx4PT09ImF3Inx8eD09PSJhdy5kcyJ8fFlmKDgpJiZ4PT09ImF3LmR2IikpaWYodiE9PXZvaWQgMCl7dmFyIHo9bmV3IGVyO2ZyKHosMik7ZnIoeiwzKTt5PXt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOnYscWE6eixvYTpbM119fWVsc2UgeT12b2lkIDA7ZWxzZSB5PXZvaWQgMDtkPXk7ZCYmKCFjJiZRKGEsSC5KLlhlKSYmKGQuZ2NsaWQ9IjAiKSxiLkNqKGQpLGIuTG8oKSl9fSxkeD1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLks9W107dGhpcy5OPXZvaWQgMH07az1keC5wcm90b3R5cGU7ay5Daj1mdW5jdGlvbihhKXtRcih0aGlzLkgsYSl9O2suanI9ZnVuY3Rpb24oYSl7UXIodGhpcy5LLGEpfTtrLmpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSy5sZW5ndGg+CjB9O2suTG89ZnVuY3Rpb24oKXt0aGlzLk4hPT0hMSYmKHRoaXMuTj0hMSl9O2sueW89ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYS5sZW5ndGgpe3ZhciBlPVtdLGY9W10sZz1bXTthLmZvckVhY2goZnVuY3Rpb24oaCl7ZS5wdXNoKGguZ2NsaWQpO3ZhciBsLG47Zi5wdXNoKChuPShsPWgucWEpPT1udWxsP3ZvaWQgMDpsLmdldCgpKSE9bnVsbD9uOjApO2cucHVzaChWcyhoLm9hfHxbMF0pKX0pO2UubGVuZ3RoJiZVKGIsYy5pZCxlLmpvaW4oIi4iKSk7ZHx8KGYubGVuZ3RoJiZVKGIsYy5xYSxmLmpvaW4oIi4iKSksZy5sZW5ndGgmJlUoYixjLm9hLGcuam9pbigiLiIpKSl9fTtrLk90PWZ1bmN0aW9uKGEpe3RoaXMuSC5sZW5ndGg+MCYmdGhpcy55byh0aGlzLkgsYSx7aWQ6Ri5ELmxiLHFhOkYuRC5CZCxvYTpGLkQuQ2R9LHRoaXMuTik7KHRoaXMuSC5sZW5ndGg9PT0wfHxNKDQyMSkpJiZ0aGlzLnlvKHRoaXMuSyxhLHtpZDpGLkQuU2IscWE6Ri5ELmZoLApvYTpGLkQuZ2h9KX07dmFyIGt4PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbmplY3RBZHNTY3JpcHQiKX07d2Eoa3gsaHUpO2t4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtreC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtreC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7YW8oYS5GbyxBLEIsYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfHxYbihhLkZvLGIucmVwbGFjZSgiJmZtdD00JiIsIiZmbXQ9MyYiKSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIgbHg9bmV3IGt4O3ZhciBteD1PYmplY3QuZnJlZXplKHthdHRyaWJ1dGlvbnNyYzoiIn0pLG54PU9iamVjdC5mcmVlemUoe2V2ZW50U291cmNlRWxpZ2libGU6ITEsdHJpZ2dlckVsaWdpYmxlOiEwfSk7ZnVuY3Rpb24gb3goKXt2YXIgYT1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU7cmV0dXJuIGEmJnliKGEuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcpfTt2YXIgcHg9T2JqZWN0LmZyZWV6ZSh7Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJHRVQiLGtlZXBhbGl2ZTohMCxyZWRpcmVjdDoiZm9sbG93In0pOwpmdW5jdGlvbiBxeChhLGIsYyxkLGUsZil7aWYoIXliKEEuZmV0Y2gpKXJldHVybiBmPT1udWxsfHxmKHZvaWQgMCx2b2lkIDApLCExO3ZhciBnPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scHgpO2ImJihnLmJvZHk9YixnLm1ldGhvZD0iUE9TVCIpO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZyxkKTtBLmZldGNoKGEsZykudGhlbihmdW5jdGlvbihoKXtpZihoLm9rKXtpZihoLmJvZHkpe3ZhciBsPWguYm9keS5nZXRSZWFkZXIoKSxuPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocCl7ZnVuY3Rpb24gcSgpe2wucmVhZCgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIHQ7dD1yLmRvbmU7dmFyIHU9bi5kZWNvZGUoci52YWx1ZSx7c3RyZWFtOiF0fSk7dT1jLlIrdTtmb3IodmFyIHY9dS5pbmRleE9mKCJcblxuIik7diE9PS0xOyl7dmFyIHg9WmcseTthOnt2YXIgej1tKHUuc3Vic3RyaW5nKDAsdikuc3BsaXQoIlxuIikpLEM9CnoubmV4dCgpLnZhbHVlLEQ9ei5uZXh0KCkudmFsdWU7aWYoU2IoQywiZXZlbnQ6IG1lc3NhZ2UiKSYmU2IoRCwiZGF0YTogIikpe3ZhciBJPUQuc3Vic3RyaW5nKDYpO3RyeXt5PUpTT04ucGFyc2UoSSk7YnJlYWsgYX1jYXRjaChHKXt9fXk9dm9pZCAwfXgoYyx5KTt1PXUuc3Vic3RyaW5nKHYrMik7dj11LmluZGV4T2YoIlxuXG4iKX1jLlI9dTt0PyhlPT1udWxsfHxlKGgpLHAoKSk6cSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT1udWxsfHxlKGgpO3AoKX0pfXEoKX0pfWU9PW51bGx8fGUoaCl9ZWxzZSBmPT1udWxsfHxmKGgsdm9pZCAwKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2Y9PW51bGx8fGYodm9pZCAwLGgpfSk7cmV0dXJuITB9O3ZhciByeD1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIkZldGNoUmljaFJlc3BvbnNlIiwxKTt0aGlzLk49YX07d2EocngsaHUpO3J4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07cngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07cngucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe3F4KGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5LHRoaXMuTixjPT1udWxsP3ZvaWQgMDpjLkdiLGEucGUsZnVuY3Rpb24oZCxlKXthLm9uRmFpbHVyZShlKX0pfTsKdmFyIHN4PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwO2EgaW5zdGFuY2VvZiBrdT9jPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpOmEgaW5zdGFuY2VvZiByeCYmKGM9e30sb3goKSYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmc9bngpKTshYiYmYyYmKGMuY3JlZGVudGlhbHM9Im9taXQiLGMubW9kZT0iY29ycyIpO3JldHVybiBjfSx0eD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iLm1ldGhvZDtRdyhhLGZ1bmN0aW9uKGYpe3ZhciBnPVEoYSxILkoub2IpLGg9WG8oZnApLGw9ZSBpbnN0YW5jZW9mIGl1PzM6ZSBpbnN0YW5jZW9mIGt4P2M9PT01fHxjPT09OD8zOjQ6ZSBpbnN0YW5jZW9mIGt1PyFnJiZoPzM6ODplIGluc3RhbmNlb2Ygcng/NzotMTtlIGluc3RhbmNlb2Yga3gmJmw9PT0zPyhmLmZtdD00LGYucmZtdD0zKTpmLmZtdD1sO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZixjPT09NjY/e2djcDoiNCJ9Omd8fGM9PT04fHxjPT09NjU/ClR3Ont9KTt2YXIgbj1laVtGLkQuZWhdO24mJihmW25dPWMpO2lmKE0oNTY5KSl7dmFyIHA9Yi5DdCxxPXAuamsuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdLmVuZHBvaW50LmVuZHBvaW50fSk7cS5sZW5ndGg+MCYmKHEucHVzaChwLm1rWzBdLmVuZHBvaW50LmVuZHBvaW50KSxmLmVwcD1xLnNvcnQoZnVuY3Rpb24odix4KXtyZXR1cm4gdi14fSkuam9pbigifiIpKX12YXIgcj0iPyIra3YoZiksdD1zeChlLGgpLHU7dT0oZSBpbnN0YW5jZW9mIGl1fHxlIGluc3RhbmNlb2Yga3gpJiZYbygiYWRfdXNlcl9kYXRhIik/bXg6dm9pZCAwO2Qocix7R2I6dCxhZjp1fSl9KX07dmFyIHV4PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwyKX07d2EodXgsYXYpO3V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt0eChhLGIsdGhpcy5lbmRwb2ludCxjKX07dmFyIHZ4PW5ldyB1eCg1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx3eD1uZXcgdXgoNixbXSkseHg9bmV3IHV4KDYzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx5eD1uZXcgdXgoNjUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHp4PW5ldyB1eCg4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxBeD1uZXcgdXgoNjYsW10pLEJ4PW5ldyB1eCg3NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk7dmFyIEN4PWZ1bmN0aW9uKCl7WWcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShDeCxZZyk7Q3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXtaYyhhLHZvaWQgMCwkZyh0aGlzLGIpLGIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP214Ont9KX07Q3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT97YXR0cmlidXRpb25SZXBvcnRpbmc6bnh9Ont9LGQ9JGcodGhpcyxiKTtiLnByb2Nlc3NfcmVzcG9uc2U/cXgoYSx2b2lkIDAsdGhpcyxjLHZvaWQgMCxkKTptZChhLHZvaWQgMCxjLHZvaWQgMCxkKX07dmFyIER4PWZ1bmN0aW9uKCl7Q3guYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShEeCxDeCk7RHgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIse3Byb2Nlc3NfcmVzcG9uc2U6ITF9KSl9O3ZhciBFeD1mdW5jdGlvbigpe307d2EoRXgsb3UpO0V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpIT09WC5WLnhhKXJldHVybltdO3ZhciBiPVhvKGZwKSxjPSEhUShhLEguSi5vYiksZD0hIVEoYSxILkouRWMpLGU9W3tlbmRwb2ludDpiP2Q/Yz95eDp4eDpjP3p4OnZ4Ond4LG1ldGhvZDpuZCgpP2I/TSg0OTApP2M/bnU6bmV3IHJ4KG5ldyBEeCk6bHg6bnU6bHV9XSxmPWI/Yz92b2lkIDA6eng6QXg7ZiYmZS5wdXNoKHtlbmRwb2ludDpmLG1ldGhvZDpudX0pO3JldHVybiBlfTtFeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYueGEmJldqKCkmJiFRKGEsSC5KLkVjKSYmTSg1NjkpJiZYbyhmcCk/W1t7ZW5kcG9pbnQ6QngsbWV0aG9kOm51fV1dOltdfTt2YXIgRng9bmV3IEV4O3ZhciBHeD1mdW5jdGlvbihhLGIpe2d1LmNhbGwodGhpcyxhLGIsMSwhMSwzKX07d2EoR3gsZ3UpO0d4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKSxlPSI/IitrdihkKTtjKGUse0diOmxkfSl9O3ZhciBIeD1uZXcgR3goNTQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEl4PW5ldyBHeCg1NSxbXSksSng9ZnVuY3Rpb24oKXt9O3dhKEp4LG91KTtKeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm5be2VuZHBvaW50Okh4LksoYSk/SHg6SXgsbWV0aG9kOm51fV19O3ZhciBLeD1uZXcgSng7CnZhciBMeD1mdW5jdGlvbigpe2F2LmNhbGwodGhpcyw5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLDEpfTt3YShMeCxhdik7THgucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi5aZH07THgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1laVtGLkQuZWhdO2YmJihlW2ZdPWQuZW5kcG9pbnQpO2UuZ2NwPTE7ZS5jdF9jb29raWVfcHJlc2VudD0xO2UuZm10PWIubWV0aG9kIGluc3RhbmNlb2Yga3U/ODozO3ZhciBnPSI/IitrdihlKTtjKGcse0diOmxkfSl9KX07dmFyIE14PW5ldyBMeCxOeD1mdW5jdGlvbigpe307d2EoTngsb3UpO054LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuW3tlbmRwb2ludDpNeCxtZXRob2Q6bnV9LHtlbmRwb2ludDpNeCxtZXRob2Q6bHV9XX07dmFyIE94PW5ldyBOeDt2YXIgUHg9WzY4XTt2YXIgUXg9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLnRpbWVvdXRNcz1iO3RoaXMuUmI9dm9pZCAwfSxSeD1mdW5jdGlvbihhKXthLlJifHwoYS5SYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5IKCk7YS5SYj12b2lkIDB9LGEudGltZW91dE1zKSl9LFRuPWZ1bmN0aW9uKGEpe2EuUmImJihjbGVhclRpbWVvdXQoYS5SYiksYS5SYj12b2lkIDApfTt2YXIgU3g9ZnVuY3Rpb24oKXt2YXIgYT1OZig2NiwwKTt0aGlzLks9W107dGhpcy5SPWE7dGhpcy5IPVlhKCl9LFV4PWZ1bmN0aW9uKGEpe3ZhciBiPVR4O2IuSy5wdXNoKGEpO2IuTnx8KGIuTj1mdW5jdGlvbigpe2Zvcih2YXIgYz1tKGIuSyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7dHJ5e2UoKX1jYXRjaChsKXt9fWZvcih2YXIgZj1tKGIuSC52YWx1ZXMoKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPXZvaWQgMDsoaD1nLnZhbHVlLndlKT09bnVsbHx8VG4oaCl9Yi5ILmNsZWFyKCl9LCRjKEEsInBhZ2VoaWRlIixiLk4pKX0sVng9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaChNbilbM118fG51bGwsYz0oYj9kZWNvZGVVUkkoYik6Yil8fCIiLGQ9UG4oYSwibGFiZWwiKXx8IiIsZT1QbihhLCJyYW5kb20iKXx8IiI7cmV0dXJuIGMrIjoiK0xuKGQpKyI6IitMbihlKX0sV3g9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVR4LAplPVZ4KGEpO2lmKCEoZC5ILmhhcyhlKXx8ZC5ILnNpemU+PWQuUikpe3ZhciBmPXt9O2ImJmI+MCYmYyYmKGYud2U9bmV3IFF4KGMsYikpO2QuSC5zZXQoZSxmKTt2YXIgZzsoZz1mLndlKT09bnVsbHx8UngoZyl9fSxVbj1mdW5jdGlvbihhLGIpe3ZhciBjPVZ4KGIpLGQsZTsoZD1hLkguZ2V0KGMpKT09bnVsbHx8KGU9ZC53ZSk9PW51bGx8fFRuKGUpO2EuSC5kZWxldGUoYyl9O1N4LnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5zaXplfTsKdmFyIFh4PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1RKGEsSC5KLmduKSk9PW51bGw/dm9pZCAwOmNbYi5wYl07cmV0dXJuIGQhPT12b2lkIDAmJmQ+PWIuT2d9LFl4PWZ1bmN0aW9uKGEsYil7aWYoUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxudikmJiEoYjw9MCkpcmV0dXJuIG5ldyBReChmdW5jdGlvbigpe3J2KG52KX0sYil9LFp4PWZ1bmN0aW9uKGEsYixjKXtRKGIsSC5KLmRhKSE9PVguVi54YXx8UShiLEguSi5FYyl8fChUeHx8KFR4PW5ldyBTeCxYeChiLG92KSYmVXgoZnVuY3Rpb24oKXt2YXIgZDtydihvdiwoZD1UeCk9PW51bGw/dm9pZCAwOmQuZ2V0U2l6ZSgpKX0pKSxYeChiLG52KT9XeChhLGMsZnVuY3Rpb24oKXtydihudik7dmFyIGQ7KGQ9VHgpPT1udWxsfHxVbihkLGEpfSk6V3goYSkpfSxUeDsKdmFyICR4PWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPzA6ZTtpZihkKXt2YXIgZj1RKGEsSC5KLkViKTtiPWIuTGEoe3JhbmRvbTpmK2UsZGF0YTpkfSl9cmV0dXJuW3tlbmRwb2ludDpiLG1ldGhvZDpjfSx7ZW5kcG9pbnQ6YixtZXRob2Q6bHV9XX0sYXk9ZnVuY3Rpb24oYSxiLGMsZCl7YXYuY2FsbCh0aGlzLGEsYiwxLGMpO3RoaXMuTj1kfTt3YShheSxhdik7YXkucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVuZHBvaW50PT09NjgmJlEoYSxILkoub2IpPyExOiEwfTtheS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSk7dGhpcy5OJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsdGhpcy5OKTt2YXIgZT1laVtGLkQuZWhdO2UmJihkW2VdPXRoaXMuZW5kcG9pbnQpO3RoaXMuZW5kcG9pbnQhPT02OCYmKGRlbGV0ZSBkLmdjbGF3LGRlbGV0ZSBkLmdjbGF3X3NyYyk7dmFyIGY9dm9pZCAwO1EoYSwKSC5KLm9iKT8oZC5nY3A9MSxkLmN0X2Nvb2tpZV9wcmVzZW50PTEpOnRoaXMuZW5kcG9pbnQ9PT02OCYmKGQuZ2NwPTUsYi5tZXRob2QgaW5zdGFuY2VvZiBrdSYmKGQuZm10PTgsZj1sZCkpO3ZhciBnPSI/IitrdihkKTtjKGcsZj97R2I6Zn06e30pfTtheS5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBheSh0aGlzLmVuZHBvaW50LHRoaXMuWix0aGlzLmphLGEpfTt2YXIgYnk9bmV3IGF5KDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITApLGN5PW5ldyBheSg2OCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMSksZHk9ZnVuY3Rpb24oKXt9O3dhKGR5LG91KTtkeS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1ndihhKTtyZXR1cm4gJHgoYSxieSxRKGEsSC5KLm9iKT9udTpseCxiPT1udWxsP3ZvaWQgMDpiWzBdKX07ZHkucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSksYz1bXTtNKDQ1OCkmJiFRKGEsSC5KLm9iKSYmCmMucHVzaCgkeChhLGN5LG51LGI9PW51bGw/dm9pZCAwOmJbMF0pKTtpZihiJiZiLmxlbmd0aD4xKWZvcih2YXIgZD1RKGEsSC5KLm9iKT9udTpseCxlPTE7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKCR4KGEsYnksZCxiW2VdLGUpKTtyZXR1cm4gY307dmFyIGV5PW5ldyBkeTsKdmFyIGd5PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuc3BsaXQoIn4iKS5maWx0ZXIoZnVuY3Rpb24oeCl7dmFyIHk9eC5zcGxpdCgiLiIpWzBdO3JldHVybiFMdy5zb21lKGZ1bmN0aW9uKHope3JldHVybiBTYih5LHopfSl9KS5qb2luKCJ+Iil9aWYoTncoYSkmJlEoYSxILkouZmQpKXt2YXIgYz1RKGEsSC5KLllhKSxkPUJwKCksZT1ndyhjLGQpLGY9ZS5zb21lKGZ1bmN0aW9uKHYpe3JldHVybiBTYih2Lm5hbWUsInJhdyIpfSksZz1mdyhlKSxoPWcuT28sbD1nLmlpLG49Zy5oYXNVcGQscD1nLlluLHE9Zy5lbmNyeXB0aW9uS2V5U3RyaW5nLHI9Zy5tZXRhZGF0YVBhcmFtLHQ9W107UncoMSxhKXx8dC5wdXNoKCImZW09IitiKGgpKTt0LnB1c2goIiZlbWU9IitwKTt2YXIgdTtyZXR1cm4gdT17aWk6bCxJdDp0LHN2OmUsWG46cixlbmNyeXB0aW9uS2V5U3RyaW5nOnEsVnI6ZnVuY3Rpb24odil7dmFyIHg9ZnkoYSx1KSx5PXN3KFEoYSxILkouWWEpLCEwLCEwKTtJdSh5LApmdW5jdGlvbih6KXtpZighUncoMSxhKSl7dmFyIEM9KHo9PW51bGw/dm9pZCAwOnoucGFyYW0pfHxvdyh7eWI6W119KS5wYXJhbTt4LmVtPUN9dih4KX0pfSxoYXNVcGQ6bixwZjp2b2lkIDAscmF3UGlpQWRkZWQ6Zn19fSxmeT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9Yi5wZikhPW51bGw/YzozLGU9e2d0bTpkdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYykscGY6ZH0pfTtiLlhuJiYoZS5lbWQ9Yi5Ybik7aWYoYi5oYXNVcGQpe3ZhciBmPQpTdyhhKTtmJiYoZS5lY3NpZD1mKX1iLnJhd1BpaUFkZGVkJiYoZVsiZ2FwLnJwIl09IjEiKTtyZXR1cm4gZX07dmFyIGRnO2Z1bmN0aW9uIGh5KGEsYil7dmFyIGM7KGM9ZGcpPT1udWxsfHwkZihjLkgsYSxiKX07dmFyIGl5PUFhKFsiLyJdKSxqeT1mdW5jdGlvbihhKXt0aGlzLkg9YTt0aGlzLmZhaWx1cmVUeXBlPXZvaWQgMH07ankucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ILmFjdGl2ZTtkPyhkLnBvc3RNZXNzYWdlKHt0eXBlOjEsY29tbWFuZDphfSksYih7ZGF0YToiIn0pKTpjKHtmYWlsdXJlVHlwZToxMyxkYXRhOiIifSl9Y2F0Y2goZSl7Yyh7ZmFpbHVyZVR5cGU6MTEsZGF0YTplLm1lc3NhZ2V9KX19O3ZhciBreT1mdW5jdGlvbihhLGIpe3RoaXMuZmFpbHVyZVR5cGU9YTt0aGlzLkg9Yn07a3kucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXtjKHtmYWlsdXJlVHlwZTp0aGlzLmZhaWx1cmVUeXBlLGRhdGE6ImYiK3RoaXMuZmFpbHVyZVR5cGUrKCJ0IisoKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5IKSl9KX07CnZhciBueT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuaW5pdFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5IPW5ldyBreSgxNSx0aGlzLmluaXRUaW1lKTt2YXIgYz1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKCl9LDIwKX0pLGQ9bHkoYSkudGhlbihmdW5jdGlvbihlKXtiLkg9bmV3IGp5KGUpO215KGIsZSl9KS5jYXRjaChmdW5jdGlvbigpe2IuSD1uZXcga3koNCxiLmluaXRUaW1lKX0pO3RoaXMuSz1Qcm9taXNlLnJhY2UoW2MsZF0pfSxteT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGQpe2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZC5zdGF0ZT09PSJyZWR1bmRhbnQiKXt2YXIgZT1iLmFjdGl2ZTtlJiZlLnN0YXRlIT09InJlZHVuZGFudCJ8fChhLkg9bmV3IGt5KDEwLGEuaW5pdFRpbWUpKX19KX07YyhiLmFjdGl2ZSk7YyhiLndhaXRpbmcpO2MoYi5pbnN0YWxsaW5nKTsKYi5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmb3VuZCIsZnVuY3Rpb24oKXtjKGIuaW5zdGFsbGluZyl9KX07bnkucHJvdG90eXBlLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSy50aGVuKGZ1bmN0aW9uKCl7ZC5ILmlvKGEsYixjKX0pfTtueS5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gMn07CnZhciBseT1mdW5jdGlvbihhKXt2YXIgYixjPUxmKDExKTtjPUxmKDEwKTtiPWM7dmFyIGQ9e3Njb3BlOihUYihhLmhyZWYsIi8iKT9hLmhyZWYuc2xpY2UoMCwtMSk6YS5ocmVmKSsiL18vc2VydmljZV93b3JrZXIifTtiJiYoZC51cGRhdGVWaWFDYWNoZT0iYWxsIik7dmFyIGUsZj1veShhLGIpLGc9bmV3IE1hcChbWyJwYXRoIixhLnBhdGhuYW1lXV0pLGg9SnAoa2MoZikudG9TdHJpbmcoKSk7ZT1McChoLnprLGgucGFyYW1zLGguZnJhZ21lbnQsZyk7dmFyIGw9SWMoKSxuPWtjKGUpO3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLGQpfWNhdGNoKHApe3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLnRvU3RyaW5nKCksZCl9Y2F0Y2gocSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHEpfX19OwpmdW5jdGlvbiBveShhLGIpe2Zvcih2YXIgYz1LcChpeSksZD1hLnBhdGhuYW1lLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wfSksZT1bXS5jb25jYXQodyhkKSxbIl8iLCJzZXJ2aWNlX3dvcmtlciIsYiwic3cuanMiXSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWM9TXAoYyxnLnZhbHVlKTtyZXR1cm4gY307ZnVuY3Rpb24gcHkoYSl7dmFyIGI9bm0oam0uYmEuT2gpLGM9Yj09bnVsbD92b2lkIDA6YlthXTtjfHxhIT09ImxpdGUifHwoYz1iPT1udWxsP3ZvaWQgMDpiLmZ1bGwpO3JldHVybiBjfXZhciBxeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cHkoImZ1bGwiKTtkP2QuZGVsZWdhdGUoYSxiLGMpOmMoe2ZhaWx1cmVUeXBlOjE2fSl9O2Z1bmN0aW9uIHJ5KGEsYixjLGQsZSl7cXkoe2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6MSx0ZW1wbGF0ZXM6Yixib2R5OiIiLHByb2Nlc3NSZXNwb25zZTohMSxlbmNyeXB0aW9uS2V5U3RyaW5nOmUsc29SZWZlcnJlcjpBLmxvY2F0aW9uLmhyZWZ9fSxjLGZ1bmN0aW9uKGYpe2QoZi5mYWlsdXJlVHlwZSxmLmRhdGEpfSl9O3ZhciBzeT1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIlNlcnZpY2VXb3JrZXJGcmFtZWxlc3MiKTt0aGlzLk49YX07d2Eoc3ksaHUpO3N5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtzeS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtzeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7cnkoYix0aGlzLk4uaWksZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKGQpe2MuTi5wZj1kO2EucmQodm9pZCAwKX0sdGhpcy5OLmVuY3J5cHRpb25LZXlTdHJpbmcpfTsKdmFyIHR5PWZ1bmN0aW9uKGEpe2F2LmNhbGwodGhpcyxhLFsiYWRfdXNlcl9kYXRhIiwiYWRfc3RvcmFnZSJdLDEsITEpfTt3YSh0eSxhdik7dHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1RKGEsSC5KLnBqKSxnPWZ1bmN0aW9uKCl7dmFyIG49a3YoZSk7ZiYmYi5tZXRob2QgaW5zdGFuY2VvZiBzeSYmKG4rPWYuSXQuam9pbigiIikpO2Mobix7R2I6bGR9KX07aWYoZC5lbmRwb2ludD09PTIxfHxkLmVuZHBvaW50PT09NzMpe3ZhciBoPWdrKGIuSWMpO2gmJihlLl91aXA9aCl9aWYoZiYmKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxmeShhLGYpKSwhKGIubWV0aG9kIGluc3RhbmNlb2Ygc3kpKSl7dmFyIGw7Zi5wZj0obD1mLnBmKSE9bnVsbD9sOjE3O2YuVnIoZnVuY3Rpb24obil7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLG4pO2coKX0pO3JldHVybn1nKCl9KX07dHkucHJvdG90eXBlLlI9CmZ1bmN0aW9uKGEpe3JldHVybiBhdi5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkuc2xpY2UoMCwtMSl9O3ZhciB1eT1uZXcgdHkoMTEpLHZ5PW5ldyB0eSg3Miksd3k9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTt0aGlzLlI9Yn07d2Eod3ksb3UpO3d5LnByb3RvdHlwZS5mYT1mdW5jdGlvbigpe3JldHVybiBNKDU2Myk/W3RoaXMuWix0aGlzLlJdOk0oMTQxKT9bdGhpcy5aXTpbdGhpcy5SXX07d3kucHJvdG90eXBlLmphPWZ1bmN0aW9uKCl7cmV0dXJuIG51LmlzU3VwcG9ydGVkKCk/W251XTpbbXUsbHVdfTt3eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5mYSgpLGQ9Yy5mbGF0TWFwKGZ1bmN0aW9uKGYpe3JldHVybiBiLmphKCkubWFwKGZ1bmN0aW9uKGcpe3JldHVybntlbmRwb2ludDpmLG1ldGhvZDpnfX0pfSk7aWYodGhpcy5OKCkpe3ZhciBlPVEoYSxILkoucGopO2UmJmUuaGFzVXBkJiZkLnVuc2hpZnQoe2VuZHBvaW50OmNbMF0sbWV0aG9kOm5ldyBzeShlKX0pfXJldHVybiBkfTsKdmFyIHh5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHV5LHZ5KX07d2EoeHksd3kpO3h5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3ZhciB5eT1uZXcgeHksenk9bmV3IHR5KDIxKSxBeT1uZXcgdHkoNzMpLEJ5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHp5LEF5KX07d2EoQnksd3kpO0J5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTg3KX07dmFyIEN5PW5ldyBCeTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEd5PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkthKXt2YXIgYj1mdShhKTtpZighTSg0MjcpJiYoanAoYSxiKXx8UShhLEguSi5oZCkpJiZYbyhmcCkpe3ZhciBjPWxwKGEsYik7aWYoYyl7dmFyIGQ9Tm0oNjksYyk7VGwoZCxhLDY5KTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OjY5LGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCl9fXZhciBlPXliKGEuTS5vblN1Y2Nlc3MpP2EuTS5vblN1Y2Nlc3M6eGI7JHUoYSxiKTtlKCl9fTt2YXIgSHk9e1g6e1dxOjAsRWs6MSxaZzoyLFhrOjMsbWk6NCxWazo1LFdrOjYsWWs6NyxuaTo4LHRtOjksc206MTAsVGk6MTEsdm06MTIsQmg6MTMsRW06MTQsaWo6MTUsU3E6MTYsamQ6MTcsdWo6MTgsdmo6MTksd2o6MjAsQ246MjEseGo6MjJ9fTtIeS5YW0h5LlguV3FdPSJSRVNFUlZFRF9aRVJPIjtIeS5YW0h5LlguRWtdPSJBRFNfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5aZ109IkNPTlRBSU5FUl9FWEVDVVRFX1NUQVJUIjtIeS5YW0h5LlguWGtdPSJDT05UQUlORVJfU0VUVVBfRU5EIjtIeS5YW0h5LlgubWldPSJDT05UQUlORVJfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5Wa109IkNPTlRBSU5FUl9CTE9DS0lOR19FTkQiO0h5LlhbSHkuWC5Xa109IkNPTlRBSU5FUl9FWEVDVVRFX0VORCI7SHkuWFtIeS5YLllrXT0iQ09OVEFJTkVSX1lJRUxEX0VORCI7SHkuWFtIeS5YLm5pXT0iQ09OVEFJTkVSX1lJRUxEX1NUQVJUIjtIeS5YW0h5LlgudG1dPSJFVkVOVF9FWEVDVVRFX0VORCI7Ckh5LlhbSHkuWC5zbV09IkVWRU5UX0VWQUxVQVRJT05fRU5EIjtIeS5YW0h5LlguVGldPSJFVkVOVF9FVkFMVUFUSU9OX1NUQVJUIjtIeS5YW0h5Llgudm1dPSJFVkVOVF9TRVRVUF9FTkQiO0h5LlhbSHkuWC5CaF09IkVWRU5UX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguRW1dPSJHQTRfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5pal09IlBBR0VfTE9BRCI7SHkuWFtIeS5YLlNxXT0iUEFHRVZJRVciO0h5LlhbSHkuWC5qZF09IlNOSVBQRVRfTE9BRCI7SHkuWFtIeS5YLnVqXT0iVEFHX0NBTExCQUNLX0VSUk9SIjtIeS5YW0h5LlgudmpdPSJUQUdfQ0FMTEJBQ0tfRkFJTFVSRSI7SHkuWFtIeS5YLndqXT0iVEFHX0NBTExCQUNLX1NVQ0NFU1MiO0h5LlhbSHkuWC5Dbl09IlRBR19FWEVDVVRFX0VORCI7SHkuWFtIeS5YLnhqXT0iVEFHX0VYRUNVVEVfU1RBUlQiO3ZhciBJeT17fTtJeS5YPUh5Llg7dmFyIEp5PXtSdToiTCIsWHE6IlMiLGt2OiJZIixSdDoiQiIsbnU6IkUiLE51OiJJIixmdjoiVEMiLHZ1OiJIVEMiLG91OiJGIixNdToiQyJ9LEt5PXtYcToiUyIsbHU6IlYiLGF1OiJFIixkdjoidGFnIn0sTHk9e30sTXk9KEx5W0l5LlgudmpdPSI2IixMeVtJeS5YLndqXT0iNSIsTHlbSXkuWC51al09IjciLEx5KTtmdW5jdGlvbiBOeShhKXt2YXIgYj1FKDUpLGM9TnVtYmVyKGEuZXZlbnRJZCksZD1OdW1iZXIoYS50YWdJZCk7cmV0dXJuKFNiKGIsIkdUTS0iKT9iOiJHVE0tIitiKSsiOiIrKEFiKGMpP2MrIjoiOiIiKSsoQWIoZCk/ZCsiOiI6IiIpK2Euc3RhZ2V9O2Z1bmN0aW9uIE95KCl7dmFyIGE9cmQoKTtyZXR1cm4hIShhJiZhLm1hcmsgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5tZWFzdXJlIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNZWFzdXJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWFya3MgaW5zdGFuY2VvZiBGdW5jdGlvbil9O3ZhciBQeT1mdW5jdGlvbigpe3RoaXMuSD17fX0sUXk7ZnVuY3Rpb24gUnkoKXtReXx8KFF5PW5ldyBQeSk7cmV0dXJuIFF5fWZ1bmN0aW9uIFN5KGEpe3ZhciBiPVJ5KCksYz1OeShhKTtyZXR1cm4gYi5IW2NdfWZ1bmN0aW9uIFR5KGEsYil7dmFyIGM7YTp7dmFyIGQ9UnkoKTtpZihPeSgpKXt2YXIgZT1OeShhKSxmLGc7aWYoZj0oZz1yZCgpKT09bnVsbD92b2lkIDA6Zy5tYXJrKGUsYikpe2M9ZC5IW2VdPWY7YnJlYWsgYX19Yz12b2lkIDB9cmV0dXJuIGN9O2Z1bmN0aW9uIFV5KGEsYil7aWYoT3koKSl7YS5lbnRyeT1OeShhKTt2YXIgYz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpO2Muc3RhZ2U9YjtkZWxldGUgYy5zZW50O3ZhciBkPVN5KGI9PT1JeS5YLmpkP3tzdGFnZTpJeS5YLmpkfTpjKSxlPVN5KGEpO2lmKGQmJmUmJiEoZC5zdGFydFRpbWU+ZS5zdGFydFRpbWUpKXtjLnN0YWdlPWIrIjoiK2Euc3RhZ2U7dmFyIGY9TnkoYyksZz17c3RhcnQ6ZC5uYW1lLGVuZDplLm5hbWV9LGgsbDtyZXR1cm4obD0oaD1yZCgpKT09bnVsbD92b2lkIDA6aC5tZWFzdXJlKGYsZykpPT1udWxsP3ZvaWQgMDpsLmR1cmF0aW9ufX19O3ZhciBXeT1mdW5jdGlvbigpe3ZhciBhPTU7VnkuUm8+MCYmKGE9VnkuUm8pO3RoaXMuSz1hO3RoaXMuSD0wO3RoaXMuTj1bXX0sWHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSDxhLks/ITE6TmIoKS1hLk5bYS5IJWEuS108MUUzfSxZeT1mdW5jdGlvbihhKXt2YXIgYj1hLkgrKyVhLks7YS5OW2JdPU5iKCl9O3ZhciBWeT17Um86TmYoMywwKX0sJHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMueWE9W107dGhpcy5IPXZvaWQgMDt0aGlzLlo9e307dGhpcy5LPXZvaWQgMDt0aGlzLmphPW5ldyBXeTt0aGlzLkxhPTFFMzt0aGlzLlI9dGhpcy5OPSExO3RoaXMuZmE9RGIoKTtaeSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGI9W1sidiIsIjMiXSxbInQiLCJ0Il0sWyJwaWQiLFN0cmluZyhhLmZhKV1dLGM9ZHUoKTtjJiZiLnB1c2goWyJndG0iLGNdKTtyZXR1cm4gYn0pO2NkKGZ1bmN0aW9uKCl7YS5mYT1EYigpfSw4NjRFNSl9LFp5PWZ1bmN0aW9uKGEsYil7YS55YS5wdXNoKGIpfSxhej1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5IO2lmKGQ9PT12b2lkIDApaWYoYylkPXJqKCk7ZWxzZSByZXR1cm4iIjtmb3IodmFyIGU9W2ZrKCJodHRwczovLyIrRSgyMSkpLCIvYSIsIj9pZD0iK0UoNSldLGY9bShhLnlhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPQpoKHtldmVudElkOmQsdGY6ISFifSksbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1tKHAudmFsdWUpLHI9cS5uZXh0KCkudmFsdWUsdD1xLm5leHQoKS52YWx1ZTtlLnB1c2goIiYiK3IrIj0iK3QpfWUucHVzaCgiJno9MCIpO3JldHVybiBlLmpvaW4oIiIpfSxiej1mdW5jdGlvbihhKXtpZigkaygyNikmJihhLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApLGEuSCE9PXZvaWQgMCYmYS5SKSl7dmFyIGI9bG8oY28uaWEuWmIpO2lmKGdvKGIpKWEuTnx8KGEuTj0hMCxpbyhiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9KSk7ZWxzZSBpZihhLlpbYS5IXXx8WHkoYS5qYSl8fGEuTGEtLTw9MClQKDEpLGEuWlthLkhdPSEwO2Vsc2V7WXkoYS5qYSk7dmFyIGM9YXooYSwhMCk7WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmEuSH0sYyk7YS5SPSExO2EuTj0hMX19fSxjej1mdW5jdGlvbihhKXthLkt8fChhLks9CkEuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSw1MDApKX0sZXo9ZnVuY3Rpb24oYSl7dmFyIGI9ZHo7Yi5aW2FdfHwoYSE9PWIuSCYmKGJ6KGIpLGIuSD1hKSxiLlI9ITAsY3ooYiksYXooYikubGVuZ3RoPj0yMDIyJiZieihiKSl9LGR6O2Z1bmN0aW9uIGZ6KGEpe2d6KCk7WnkoZHosYSl9ZnVuY3Rpb24gaHooKXt2YXIgYTthPWE9PT12b2lkIDA/ITE6YTtneigpO3ZhciBiPWEsYz1kejtiPWI9PT12b2lkIDA/ITE6YjtpZihmbi5OJiYkaygyNikpe3ZhciBkPWF6KGMsITAsITApO2I/Vm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCk6WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCl9fWZ1bmN0aW9uIGd6KCl7ZHp8fChkej1uZXcgJHkpfTtmdW5jdGlvbiBpeigpe2Z1bmN0aW9uIGEoYyxkKXt2YXIgZT13YihyYltkXXx8W10pO2UmJmIucHVzaChbYyxlXSl9dmFyIGI9W107YSgidSIsIkdUTSIpO2EoInV0IiwiVEFHR0lORyIpO2EoImgiLCJIRUFMVEgiKTtyZXR1cm4gYn07dmFyIGp6PSJodHRwczovLyIrRSgyMSksa3o9ZnVuY3Rpb24oKXt0aGlzLk49ITE7dGhpcy5SPVtdO3RoaXMuWj1bXTt0aGlzLkg9e1RDOjAsSFRDOjB9O3RoaXMuSz17fX0sbHo9ZnVuY3Rpb24oYSxiLGMsZCl7YS5LW2JdfHwoYS5LW2JdPXt9KTthLktbYl1bY109ZH0sb3o9ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0iIixkPW16KCk7QWIoZCkmJihhLkguST1NYXRoLmZsb29yKGQpKTtjPW56KGEuSCxKeSkudG9TdHJpbmcoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhhLkspKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWEuS1tnXS5uYW1lLGw9IiIsbj1ueihhLktbZ10sS3kpO24mJihsPWgrIi4iK24udG9TdHJpbmcoKSxiKz0ifiIrbCl9dmFyIHA9In5BV0NUIithLlIuam9pbigiLiIpLHE9In5HQSIrYS5aLmpvaW4oIi4iKSxyPSImY2NpZD0iK3ZrKCkudG9TdHJpbmcoKSsiJmNpZD0iK0UoNSkudG9TdHJpbmcoKSsiJmw9IitjK2IrKGEuUi5sZW5ndGg/CnA6IiIpKyhhLloubGVuZ3RoP3E6IiIpO2lmKE0oMjE0KSl7dmFyIHQsdT0odD1yZCgpKT09bnVsbD92b2lkIDA6dC5nZXRFbnRyaWVzQnlOYW1lKEtjKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIFN0cmluZyh2LmR1cmF0aW9uKX0pLmpvaW4oIi4iKTt1JiYocis9In5TUyIrdSl9cmV0dXJuIHJ9LHB6PWZ1bmN0aW9uKGEsYil7aWYoIWIuc3RhZ2V8fGEuTnx8IU95KCl8fFN5KGIpKXJldHVybiExO3ZhciBjLGQ9KGM9cmQoKSk9PW51bGw/dm9pZCAwOmMudGltZU9yaWdpbjtpZighQWIoZCkpYS5OPSEwO2Vsc2UgaWYoQWIoJGsoMjUpKSYmIVN5KHtzdGFnZTpJeS5YLmpkfSkmJiFhLk4mJk95KCkpdHJ5e3ZhciBlPU51bWJlcigkaygyNSkpO1R5KHtzdGFnZTpJeS5YLmpkfSx7c3RhcnRUaW1lOk1hdGgubWF4KGUtZCwwKX0pO1R5KHtzdGFnZTpJeS5YLmlqfSx7c3RhcnRUaW1lOjB9KTt2YXIgZj1VeSh7c3RhZ2U6SXkuWC5qZH0sSXkuWC5paik7ZiYmKGEuSC5MPU1hdGguZmxvb3IoZikpfWNhdGNoKGcpe2EuTj0KITB9aWYoYS5OKXJldHVybiExO3RyeXtpZighVHkoYikpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuIGEuTj0hMCwhMX1yZXR1cm4hMH0scXo9ZnVuY3Rpb24oYSxiLGMpe2lmKHB6KGEsYikpdHJ5e3ZhciBkPVV5KGIsYyk7aWYoZClyZXR1cm4gTWF0aC5mbG9vcihkKX1jYXRjaChlKXthLk49ITB9fSxzej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5taX0pfSx0ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCksYj1xeihhLHtzdGFnZTpJeS5YLlhrfSxJeS5YLm1pKTtiIT09dm9pZCAwJiYoYS5ILlM9Yil9LHV6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm5pfSl9LHZ6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLkJoLGV2ZW50SWQ6YX0pO2MuS1thXSYmYy5LW2FdLm5hbWV8fGx6KGMsYSwibmFtZSIsU2IoYiwiZ3RtLiIpP2I6IioiKX0sd3o9ZnVuY3Rpb24oYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llgudm0sCmV2ZW50SWQ6YX0sSXkuWC5CaCk7YyE9PXZvaWQgMCYmbHooYixhLCJTIixjKX0seXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpLGQ9cXooYyx7c3RhZ2U6SXkuWC50bSxldmVudElkOmF9LEl5LlguQmgpO2QhPT12b2lkIDAmJmx6KGMsYSwiRSIsZCk7aWYoYj09PSJndG0ubG9hZCIpe3ZhciBlPXF6KGMse3N0YWdlOkl5LlguV2t9LEl5LlguWmcpO2UhPT12b2lkIDAmJihjLkguRT1lKTtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtpZighYy5OJiZPeSgpJiZFKDUpKXt2YXIgZj14eigpO2YhPT12b2lkIDAmJihjLkguRj1NYXRoLmZsb29yKGYpKTt0cnl7Zm9yKHZhciBnPWl6KHtldmVudElkOjAsdGY6ITF9KSxoPVtdLGw9bShnKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bShuLnZhbHVlKSxxPXAubmV4dCgpLnZhbHVlLHI9cC5uZXh0KCkudmFsdWU7aC5wdXNoKCImIitxKyI9IityKX12YXIgdD1DcCgpLHU9W1tmayhqeiksIi9hP3Y9MyZ0PWwiLCImcGlkPSIrCkRiKCkudG9TdHJpbmcoKSwiJnJ2PSIrRSgxNCksdD8iJnRhZ19leHA9Iit0OiIiLGguam9pbigiIildLmpvaW4oIiIpLCImZ3RtPSIsZHUoKSxveihjKV0uam9pbigiIik7aWYodS5sZW5ndGg+MjAyMil7dmFyIHY9TWF0aC5tYXgodS5sYXN0SW5kZXhPZigiLlRTIiwyMDIyKSx1Lmxhc3RJbmRleE9mKCJ+IiwyMDIyKSk7dT11LnNsaWNlKDAsdil9WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1Nn0sdSl9Y2F0Y2goeCl7fX19KX19LHp6O2Z1bmN0aW9uIHJ6KCl7enp8fCh6ej1uZXcga3opO3JldHVybiB6en1mdW5jdGlvbiBteigpe3RyeXt2YXIgYTtyZXR1cm4oKGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdKS5kb21JbnRlcmFjdGl2ZX1jYXRjaChiKXt9fQpmdW5jdGlvbiBueihhLGIpe3JldHVybiBPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGJbY119KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY10hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuKCIiKyhjPT09InRhZyI/IiI6YykpLmNvbmNhdChhW2NdLnRvU3RyaW5nKCkpfSkuam9pbigiLiIpfWZ1bmN0aW9uIEF6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVtLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5aLnB1c2goYyl9ZnVuY3Rpb24gQnooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRWssZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLlIucHVzaChjKX1mdW5jdGlvbiBDeihhKXt2YXIgYj1yeigpO3B6KGIse3N0YWdlOkl5LlguVGksZXZlbnRJZDphfSl9CmZ1bmN0aW9uIER6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnNtLGV2ZW50SWQ6YX0sSXkuWC5UaSk7YyE9PXZvaWQgMCYmbHooYixhLCJWIixjKX1mdW5jdGlvbiB4eigpe3RyeXt2YXIgYSxiO3JldHVybihiPShhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoInBhaW50IikuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQifSkpPT1udWxsP3ZvaWQgMDpiLnN0YXJ0VGltZX1jYXRjaChjKXt9fWZ1bmN0aW9uIEV6KGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLnhqLGV2ZW50SWQ6YS5pZCx0YWdJZDpOdW1iZXIoYltHZi55al0pfSl9CmZ1bmN0aW9uIEZ6KGEsYixjKXt2YXIgZD1yeigpLGU9ZG4oYiksZj1OdW1iZXIoYltHZi55al0pLGc9cXooZCx7c3RhZ2U6YyxldmVudElkOmEuaWQsdGFnSWQ6Zn0sSXkuWC54aik7aWYoZyE9PXZvaWQgMCYmZC5LW2EuaWRdKXt2YXIgaD1kLktbYS5pZF0udGFnfHwiIixsLG49KGw9TXlbY10pIT1udWxsP2w6IjEiLHA9bmV3IFJlZ0V4cCgiVFNcXGQiK2UrIi5USSIrZikscT0iVFMiK24rZSsiLlRJIitmKyIuVEUiK2c7aC5zZWFyY2gocCk+PTA/biE9PSIxIiYmbHooZCxhLmlkLCJ0YWciLGgucmVwbGFjZShwLHEucmVwbGFjZSgiLlRFIitnLCIiKSkpOihseihkLGEuaWQsInRhZyIsKGg/aCsiLiI6IiIpK3EpLGU9PT0iaHRtbCImJihkLkguSFRDKz0xKSxkLkguVEMrPTEpfX07CnZhciBHej1mdW5jdGlvbihhKXtRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLHB2KSYmcnYocHYpfSxJej1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtpZihiPT09WC5WLkthKUd5KGEpO2Vsc2V7dmFyIGM9SHpbYl07aWYoYylmbi5IJiZiPT09WC5WLnhhJiZCeihhLk0uZXZlbnRJZCksUXcoYSxmdW5jdGlvbihkKXt2YXIgZT1neShhKTtWKGEsSC5KLnBqLGUpO2UmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxmeShhLGUpKTtGeSgzLGEuZXZlbnROYW1lKTt2YXIgZj17fSxnPXt9O1F1KGEse1FzOmZ1bmN0aW9uKGgsbCxuKXtpZihuLmZpbmQoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNQcmltYXJ5JiYocC5zdGF0dXM9PT0wfHxwLnN0YXR1cz09PTEpfSkpaC5NLm9uU3VjY2VzcygpO2Vsc2UgR3ooaCksaC5NLm9uRmFpbHVyZSgpfSxTczpmdW5jdGlvbihoLGwpe3ZhciBuO3ZhciBwPWwuc2IscT1sLmVuZHBvaW50LmVuZHBvaW50LApyO3N3aXRjaChsLnBrIGluc3RhbmNlb2Yga3g/MjpsLnBrIGluc3RhbmNlb2Ygcng/NDpsLnBrIGluc3RhbmNlb2Yga3U/MzoxKXtjYXNlIDI6cj0yMTticmVhaztjYXNlIDM6UShoLEguSi5kYSk9PT1YLlYueGEmJlEoaCxILkoub2IpJiZxIT09OSYmKHI9MjApO2JyZWFrO2Nhc2UgNDpyPTIwfWlmKHIpe3ZhciB0O3ZhciB1PU5mKHIsLTEpO1h4KGgsb3YpPyhaeChwLGgsdSksdD17TXQ6VHh9KTp0PXt3ZTpZeChoLHUpfTt2YXIgdj10LHg9di53ZSx5PXYuTXQ7eD09bnVsbHx8UngoeCk7bj17d2U6eCxrdDp5fX1lbHNlIG49e307dmFyIHo9bixDPXoud2UsRD16Lmt0O0MmJihmW2wuc2JdPUMpO0QmJihnW2wuc2JdPUQpfSx1bzpmdW5jdGlvbihoLGwpe2ZbbC5zYl0mJihUbihmW2wuc2JdKSxkZWxldGUgZltsLnNiXSk7Z1tsLnNiXSYmKFVuKGdbbC5zYl0sbC5zYiksZGVsZXRlIGdbbC5zYl0pfSxSczpmdW5jdGlvbihoLGwsbixwLHEpe2lmKHEubGVuZ3RoJiZiIT09WC5WLnViKXt2YXIgcj0KcVtxLmxlbmd0aC0xXSx0PXIuc2IsdT1yLmVuZHBvaW50LmVuZHBvaW50O2lmKCFQeC5pbmNsdWRlcyh1KSl7dmFyIHY9aC5NO01sKHt0YXJnZXRJZDpoLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDp0LHBhcmFtZXRlckVuY29kaW5nOjMsZW5kcG9pbnQ6dX0scWI6e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGgsSC5KLnVmKSxwcmlvcml0eUlkOlEoaCxILkoudmYpfX0pO1EoaCxILkouZGEpfX19fSxjKX0pO2Vsc2UgYS5NLm9uRmFpbHVyZSgpfX0sSno9e30sSHo9KEp6W1guVi56ZF09WncsSnpbWC5WLnhhXT1GeCxKeltYLlYuWWRdPUt4LEp6W1guVi5aZF09T3gsSnpbWC5WLnViXT1leSxKeltYLlYuT2JdPXl5LEp6W1guVi5GYl09Q3ksSnopO3ZhciBLej17Z2o6e2JwOiIxIix1cToiMiIsVnE6IjMifX07CnZhciBMej17fSxNej1PYmplY3QuZnJlZXplKChMeltGLkQuZmhdPTEsTHpbRi5ELmdoXT0xLEx6W0YuRC5CZF09MSxMeltGLkQuQ2RdPTEsTHpbRi5ELlJjXT0xLEx6W0YuRC5zaV09MSxMeltGLkQudWldPTEsTHpbRi5ELkNsXT0xLEx6W0YuRC5paF09MSxMeltGLkQuQ2ZdPTEsTHpbRi5ELkRmXT0xLEx6W0YuRC5FZl09MSxMeltGLkQuSGFdPTEsTHpbRi5ELkZmXT0xLEx6W0YuRC5GZF09MSxMeltGLkQudWNdPTEsTHpbRi5ELkhkXT0xLEx6W0YuRC5MYl09MSxMeltGLkQuQ2JdPTEsTHpbRi5ELlRiXT0xLEx6W0YuRC5uYl09MSxMeltGLkQuZWJdPTEsTHpbRi5ELkdlXT0xLEx6W0YuRC5raF09MSxMeltGLkQuT2FdPTEsTHpbRi5ELk9wXT0xLEx6W0YuRC5TcF09MSxMeltGLkQuSWVdPTEsTHpbRi5ELkdpXT0xLEx6W0YuRC5RZl09MSxMeltGLkQuVGFdPTEsTHpbRi5ELlljXT0xLEx6W0YuRC5aY109MSxMeltGLkQudGJdPTEsTHpbRi5ELlFkXT0xLEx6W0YuRC5SZF09MSxMeltGLkQuU2RdPQoxLEx6W0YuRC5OZV09MSxMeltGLkQuemFdPTEsTHpbRi5ELlVhXT0xLEx6W0YuRC5XbF09MSxMeltGLkQuWGxdPTEsTHpbRi5ELllsXT0xLEx6W0YuRC5abF09MSxMeltGLkQuV2JdPTEsTHpbRi5ELlRkXT0xLEx6W0YuRC5YYl09MSxMeltGLkQuZGRdPTEsTHpbRi5ELlVkXT0xLEx6W0YuRC5RZV09MSxMeltGLkQuUGFdPTEsTHpbRi5ELnljXT0xLEx6W0YuRC5WZF09MSxMeltGLkQuemNdPTEsTHpbRi5ELkFjXT0xLEx6W0YuRC5mYl09MSxMeltGLkQuUWFdPTEsTHopKSxOej17fSxPej0oTnpbRi5ELlVjXT0xLE56W0YuRC5QcF09MSxOeltGLkQuSGVdPTEsTnpbRi5ELnJpXT0xLE56Lm9yZWY9MSxOeik7dmFyIFB6LFF6OwpmdW5jdGlvbiBSeihhLGIpe3ZhciBjPWFbR2YuWWJdLGQ9YiYmYi5ldmVudDtpZighYyl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGU9UXpbY10sZj17fSxnO2ZvcihnIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShnKSYmKFNiKGcsInZ0cF8iKT9mW2UhPT12b2lkIDA/ZzpnLnN1YnN0cmluZyg0KV09YVtnXTpnPT09R2YuRnEudG9TdHJpbmcoKSYmKGZbZSE9PXZvaWQgMD8idnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSI6Z109YVtnXSkpO0lmKDYxKSYmZSYmKGYudnRwX2V4dHJhRXhwZXJpbWVudElkcz0hMCk7ZSYmZCYmZC5jYWNoZWRNb2RlbFZhbHVlcyYmKGYudnRwX2d0bUNhY2hlZFZhbHVlcz1kLmNhY2hlZE1vZGVsVmFsdWVzKTtiJiZlJiYoZi52dHBfZ3RtRW50aXR5SW5kZXg9Yi5pbmRleCxmLnZ0cF9ndG1FbnRpdHlOYW1lPWIubmFtZSk7cmV0dXJuIGUhPT12b2lkIDA/ZShmKTpQeihjLGYsCmIpfXZhciBUej1mdW5jdGlvbigpe3ZhciBhPVN6O2lmKE0oNTg1KSYmZm4uSyl7dmFyIGI9RSg1KS5pbmRleE9mKCJHVE0tIik9PT0wJiZJZig2MiksYyxkPSgoYz1GaygpKT09bnVsbD92b2lkIDA6Yy5zb3VyY2UpPT09MTtiJiYhZHx8YS5IfHwoYS5IPSEwLFVtKCJhYmwiLCIxIiksdG8oKSl9fSxTej1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBVej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSFtHZi5SbV18fCIiKX07ClV6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe2lmKCFiW3RoaXMuaW5kZXhdJiYhYS5pc0Jsb2NrZWQodGhpcy5IKSl7Ylt0aGlzLmluZGV4XT0hMDt0aGlzLkhbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7dmFyIGM9dGhpcy5uYW1lLGQ7dHJ5e3ZhciBlPXt9LGY7Zm9yKGYgaW4gdGhpcy5IKXRoaXMuSC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpKTtlLnZ0cF9ndG1FdmVudElkPWEuaWQ7YS5wcmlvcml0eUlkJiYoZS52dHBfZ3RtUHJpb3JpdHlJZD1hLnByaW9yaXR5SWQpO3ZhciBnPWQ9UnooZSx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MixuYW1lOmN9KTtlW0dmLlprXSYmdHlwZW9mIGc9PT0ic3RyaW5nIiYmKGc9ZVtHZi5aa109PT0xP2cudG9Mb3dlckNhc2UoKTpnLnRvVXBwZXJDYXNlKCkpO2UuaGFzT3duUHJvcGVydHkoR2YuYWgpJiYoZz1ZZigxOCk/ZVtHZi5haF09PT0xPwpWZihnLCJQRVJJT0QiKTplW0dmLmFoXT09PTI/VmYoZywiQ09NTUEiKTpWZihnLCJBVVRPTUFUSUMiKTplW0dmLmFoXT09PTE/VmYoZywiUEVSSU9EIik6VmYoZywiQ09NTUEiKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5ibCkmJmc9PT1udWxsJiYoZz1lW0dmLmJsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5pbCkmJmc9PT12b2lkIDAmJihnPWVbR2YuaWxdKTtlLmhhc093blByb3BlcnR5KEdmLmVwKSYmKGc9SmIoZykpO2UuaGFzT3duUHJvcGVydHkoR2YuZmwpJiZnPT09ITAmJihnPWVbR2YuZmxdKTtlLmhhc093blByb3BlcnR5KEdmLmFsKSYmZz09PSExJiYoZz1lW0dmLmFsXSk7ZD1nfWNhdGNoKGgpe2EubG9nTWFjcm9FcnJvciYmYS5sb2dNYWNyb0Vycm9yKGgsTnVtYmVyKHRoaXMuaW5kZXgpLGMpLGQ9ITF9Ylt0aGlzLmluZGV4XT0hMTtyZXR1cm4gZH19O1V6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBWej1mdW5jdGlvbihhLGIsYyl7dGhpcy5IPWE7dGhpcy50YWdzPWI7dGhpcy5tYWNyb3M9Y307VnoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcih2YXIgYz17fSxkPW0oT2JqZWN0LmtleXModGhpcy5IKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Y1tmXT1mPT09ImZ1bmN0aW9uIj90aGlzLkhbZl06ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpfXJldHVybiBjbChjKX1jYXRjaChnKXtKU09OLnN0cmluZ2lmeSh0aGlzLkgpfXJldHVybiAyfTtWei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgV3o9ZnVuY3Rpb24oYSxiKXt0aGlzLmluZGV4PWI7dGhpcy5OPVtdO3RoaXMuUj1bXTt0aGlzLks9W107dGhpcy5IPVtdO3RoaXMubmFtZT0iIjtmb3IodmFyIGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9bShkLnZhbHVlKSxmPWUubmV4dCgpLnZhbHVlLGc9eWEoZSksaD1mLGw9ZztoPT09ImlmIj90aGlzLk49bDpoPT09InVubGVzcyI/dGhpcy5SPWw6aD09PSJhZGQiP3RoaXMuSz1sOmg9PT0iYmxvY2siP3RoaXMuSD1sOmg9PT0icnVsZU5hbWUiJiYodGhpcy5uYW1lPWxbMF0pfX07Cld6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPVh6KHRoaXMsYiksZD1bXSxlPVtdO2M/KGQucHVzaC5hcHBseShkLHcodGhpcy5LKSksZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKSk6Yz09PW51bGwmJmUucHVzaC5hcHBseShlLHcodGhpcy5IKSk7cmV0dXJue2ZpcmluZ1RhZ3M6ZCxibG9ja2luZ1RhZ3M6ZX19Owp2YXIgWHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bShhLk4pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1iKGQudmFsdWUpO2lmKGU9PT0wKXJldHVybiExO2lmKGU9PT0yKXJldHVybiBudWxsfWZvcih2YXIgZj1tKGEuUiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWIoZy52YWx1ZSk7aWYoaD09PTIpcmV0dXJuIG51bGw7aWYoaD09PTEpcmV0dXJuITF9cmV0dXJuITB9O1d6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFl6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSWE9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLk89U3RyaW5nKHRoaXMuSWFbR2YuWWJdKTt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSWFbR2YuUm1dfHwiIik7dGhpcy50YWdJZD1OdW1iZXIodGhpcy5JYVtHZi55al0pfTsKWXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/e306Yzt2YXIgZCxlPWM7ZT1lPT09dm9pZCAwP3t9OmU7dmFyIGY9e30sZztmb3IoZyBpbiB0aGlzLklhKXRoaXMuSWEuaGFzT3duUHJvcGVydHkoZykmJihmW2ddPWVsKHRoaXMuSWFbZ10sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pKTtkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixlKTtkLnZ0cF9ndG1UYWdJZD10aGlzLnRhZ0lkO3RoaXMuSWFbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7UnooZCx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MSxuYW1lOnRoaXMubmFtZX0pfTtZei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLklhKX07CnZhciBaej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YudG5dKXJldHVybiBlbChhLklhW0dmLnRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LCR6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi5Ebl0pcmV0dXJuIGVsKGEuSWFbR2YuRG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sYUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLklhW0dmLmNwXTtpZihjKXJldHVybiBlbChjLGIsYS50YWdzLGEubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBlbCh0aGlzLklhW0dmLk1FVEFEQVRBXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIGJBPWZ1bmN0aW9uKCl7dGhpcy5tYWNyb3M9W107dGhpcy5ydWxlcz1bXTt0aGlzLnByZWRpY2F0ZXM9W107dGhpcy50YWdzPVtdO3RoaXMudms9W119O2JBLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfTt2YXIgY0E9bmV3IGJBO2Z1bmN0aW9uIGRBKGEsYixjLGQpe3ZhciBlPVdjKCksZjtpZihlPT09MSlhOnt2YXIgZz1FKDMpO2c9Zy50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaD0iaHR0cHM6Ly8iK2csbD0iaHR0cDovLyIrZyxuPTEscD1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxxPTA7cTxwLmxlbmd0aCYmcTwxMDA7cSsrKXt2YXIgcj1wW3FdLnNyYztpZihyKXtyPXIudG9Mb3dlckNhc2UoKTtpZihyLmluZGV4T2YobCk9PT0wKXtmPTM7YnJlYWsgYX1uPT09MSYmci5pbmRleE9mKGgpPT09MCYmKG49Mil9fWY9bn1lbHNlIGY9ZTtyZXR1cm4oZj09PTJ8fGR8fCJodHRwOiIhPT1BLmxvY2F0aW9uLnByb3RvY29sP2E6YikrY307dmFyIGVBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkssZCkmJmMucHVzaChkKyJ+IithLktbZF0pO3ZhciBlPVtdLGY7Zm9yKGYgaW4gYS5IKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkgsZikmJmUucHVzaChmKyJ+IithLkhbZl0pO2IudGYmJihhLks9e30sYS5IPXt9KTt2YXIgZz1bXTtjLmxlbmd0aD4wJiZnLnB1c2goWyJiY3MiLGMuam9pbigiLiIpXSk7ZS5sZW5ndGg+MCYmZy5wdXNoKFsiYmV0IixlLmpvaW4oIi4iKV0pO3JldHVybiBnfSl9LGZBO2Z1bmN0aW9uIGdBKCl7ZkF8fChmQT1uZXcgZUEpfTtmdW5jdGlvbiBoQShhLGIsYyxkLGUpe2lmKCFFayhhKSl7ZC5sb2FkRXhwZXJpbWVudHM9eWooKTtIayhhLGQsZSk7dmFyIGY9aUEoYSksZz1mdW5jdGlvbigpe29rKCkuY29udGFpbmVyW2FdJiYob2soKS5jb250YWluZXJbYV0uc3RhdGU9Myk7akEoKX0saD17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBsPVhqKCksbj1sKyIvIitrQShmLGEpO1puKGgsbix2b2lkIDAsZnVuY3Rpb24oKXtsQShhLG4sbCsiLyIrZixoLGcpfSl9ZWxzZXt2YXIgcD1TYihhLCJHVE0tIikscT1kaygpLHI9Yz8iL2d0YWcvanMiOiIvZ3RtLmpzIix0PW1BKGIscitmLGEpO2lmKCF0KXt2YXIgdT1FKDMpK3I7cSYmS2MmJnAmJih1PUtjLnJlcGxhY2UoL14oPzpodHRwcz86XC9cLyk/L2ksIiIpLnNwbGl0KC9bPyNdLylbMF0pO3Q9ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsdStmKX1abihoLHQsdm9pZCAwLGcpfX19CmZ1bmN0aW9uIGpBKCl7S2soKXx8R2IoTGsoKSxmdW5jdGlvbihhLGIpe25BKGEsYi50cmFuc3BvcnRVcmwsYi5jb250ZXh0KTtQKDkyKX0pfWZ1bmN0aW9uIG5BKGEsYixjLGQpe2lmKCFHayhhKSlpZihjLmxvYWRFeHBlcmltZW50c3x8KGMubG9hZEV4cGVyaW1lbnRzPXlqKCkpLEtrKCkpSmsoYSxiLGMsZCk7ZWxzZXtJayhhLGMsZCk7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgZj1YaigpLGc9Imd0ZCIraUEoYSwhMCksaD1mKyIvIitrQShnLGEpO1puKGUsaCx2b2lkIDAsZnVuY3Rpb24oKXtsQShhLGgsZisiLyIrZyxlKX0pfWVsc2V7dmFyIGw9Ii9ndGFnL2Rlc3RpbmF0aW9uIitpQShhLCEwKSxuPW1BKGIsbCxhKTtufHwobj1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixFKDMpK2wpKTtabihlLG4pfX19CmZ1bmN0aW9uIGxBKGEsYixjLGQsZSl7aWYoTSg0MTMpKXtnQSgpO3ZhciBmPWZBO2lmKGZuLk4pe3ZhciBnPUEucGVyZm9ybWFuY2UsaD0tMTtpZihnJiZnLmdldEVudHJpZXNCeVR5cGUpe3ZhciBsPVJqKGIpLmhyZWYsbj1nLmdldEVudHJpZXNCeU5hbWUobCkucG9wKCk7aWYoIW4pZm9yKHZhciBwPWcuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXBbcV07aWYoci5uYW1lJiZyLm5hbWUuaW5kZXhPZihiKSE9PS0xKXtuPXI7YnJlYWt9fW4mJm4ucmVzcG9uc2VTdGF0dXMhPT12b2lkIDAmJihoPW4ucmVzcG9uc2VTdGF0dXMpfWYuS1thXT1ofVAoMTkwKTt2YXIgdD1ubShqbS5iYS5rail8fHt9O3RbYV09ITA7bW0oam0uYmEua2osdCk7dmFyIHU9YysoYy5pbmRleE9mKCI/Iik9PT0tMT8iP2Y9MSI6IiZmPTEiKTtlP1puKGQsdSx2b2lkIDAsZSk6Wm4oZCx1KX1lbHNlIGUmJmUoKX0KZnVuY3Rpb24gaUEoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iP2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLGQ9RSgxOSk7ZCE9PSJkYXRhTGF5ZXIiJiYoYys9IiZsPSIrZCk7dmFyIGU9U2IoYSwiR1RNLSIpO2lmKCFlfHxiKWMrPSImY3g9YyI7ZSYmSWYoNjIpJiYoYys9IiZnb29nbGVfb25seT10cnVlIik7dmFyIGY9YyxnLGg9e0RvOkpmKDE1KSxJbzpFKDE0KX07Zz1DZihoKTtjPWYrKCImZ3RtPSIrZyk7ZGsoKSYmKGMrPSImc2lnbj0iK0FqLnFqKTt2YXIgbD1jLG49SmYoNTQpO2lmKG49PT0xKXtsKz0iJmZwcz1mYyI7dmFyIHA9RSg2MCk7cCYmKGwrPSImZ2Rldj0iK3ApfWVsc2Ugbj09PTImJihsKz0iJmZwcz1mZSIpO3JldHVybiBsfQpmdW5jdGlvbiBrQShhLGIpe2lmKCFNKDQxMyl8fCFYaigpKXJldHVybiBhO3ZhciBjPUUoNTgpO2lmKCFjKXJldHVybiBQKDE4MiksYTt0cnl7dmFyIGQ9TmIoKSxlPUVmKGEsYyksZj1OYigpLWQ7Z0EoKTt2YXIgZz1mQTtmbi5OJiYoZy5IW2JdPWYpO3JldHVybiBlfWNhdGNoKGgpe3JldHVybiBQKDE4MyksYX19ZnVuY3Rpb24gbUEoYSxiLGMpe2lmKGFrKCkmJmEpe3ZhciBkPUUoNTgpLGU9WGooKTtpZihkJiZlKXRyeXt2YXIgZj1OYigpO2I9ZSsiLyIrRWYoYixkKTt2YXIgZz1OYigpLWY7Z0EoKTt2YXIgaD1mQTtmbi5OJiYoaC5IW2NdPWcpfWNhdGNoKGwpe1AoMTgzKX1yZXR1cm4gWWooYSxiKX19O3ZhciBwQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPW5ldyBGYjt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj17bmFtZTpFKDE5KSxzZXQ6ZnVuY3Rpb24oYixjKXtFZChWYihiLGMpLGEuSCk7b0EoYSl9LGdldDpmdW5jdGlvbihiKXtyZXR1cm4gYS5nZXQoYiwyKX0scmVzZXQ6ZnVuY3Rpb24oKXthLks9bmV3IEZiO2EuSD17fTtvQShhKX19fTtwQS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIhPTI/dGhpcy5LLmdldChhKTpxQSh0aGlzLGEpfTt2YXIgcUE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuc3BsaXQoIi4iKTtjPWN8fFtdO2Zvcih2YXIgZT1hLkgsZj0wO2Y8ZC5sZW5ndGg7ZisrKXtpZihlPT09bnVsbClyZXR1cm4hMTtpZihlPT09dm9pZCAwKWJyZWFrO2U9ZVtkW2ZdXTtpZihjLmluZGV4T2YoZSkhPT0tMSlyZXR1cm59cmV0dXJuIGV9OwpwQS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OLmhhc093blByb3BlcnR5KGEpfHwodGhpcy5LLnNldChhLGIpLEVkKFZiKGEsYiksdGhpcy5IKSxvQSh0aGlzKSl9O3ZhciBzQT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bImd0bS5hbGxvd2xpc3QiLCJndG0uYmxvY2tsaXN0IiwiZ3RtLndoaXRlbGlzdCIsImd0bS5ibGFja2xpc3QiLCJ0YWdUeXBlQmxhY2tsaXN0Il0sYj1yQSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iLmdldChkLDEpO2lmKEFycmF5LmlzQXJyYXkoZSl8fENkKGUpKWU9RWQoZSxudWxsKTtiLk5bZF09ZX19LG9BPWZ1bmN0aW9uKGEsYil7R2IoYS5OLGZ1bmN0aW9uKGMsZCl7YS5LLnNldChjLGQpO0VkKFZiKGMpLGEuSCk7RWQoVmIoYyxkKSxhLkgpO2ImJmRlbGV0ZSBhLk5bY119KX0sckE9bmV3IHBBLHRBPXJBLlI7ZnVuY3Rpb24gdUEoYSxiKXtyZXR1cm4gckEuZ2V0KGEsYil9CmZ1bmN0aW9uIHZBKGEsYil7dmFyIGM9Yj09PXZvaWQgMD8yOmIsZD1yQSxlLGY9KGM9PT12b2lkIDA/MjpjKSE9PTE/cUEoZCxhKTpkLksuZ2V0KGEpO0FkKGYpPT09ImFycmF5Inx8QWQoZik9PT0ib2JqZWN0Ij9lPUVkKGYsbnVsbCk6ZT1mO3JldHVybiBlfTt2YXIgd0E9bmV3IFJlZ0V4cCgvXiguKlwuKT8oZ29vZ2xlfHlvdXR1YmV8YmxvZ2dlcnx3aXRoZ29vZ2xlKShcLmNvbT8pPyhcLlthLXpdezJ9KT9cLj8kLykseEE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsibm9uR29vZ2xlUGl4ZWxzIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVQaXhlbHM6W10sbm9uR29vZ2xlU2NyaXB0czpbIm5vbkdvb2dsZVBpeGVscyJdLG5vbkdvb2dsZUlmcmFtZXM6WyJub25Hb29nbGVQaXhlbHMiXX0seUE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsiY3VzdG9tU2NyaXB0cyIsCiJodG1sIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCJdLG5vbkdvb2dsZVBpeGVsczpbImN1c3RvbVBpeGVscyIsImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVTY3JpcHRzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiXSxub25Hb29nbGVJZnJhbWVzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIl19LHpBPSJnb29nbGUgY3VzdG9tUGl4ZWxzIGN1c3RvbVNjcmlwdHMgaHRtbCBub25Hb29nbGVQaXhlbHMgbm9uR29vZ2xlU2NyaXB0cyBub25Hb29nbGVJZnJhbWVzIi5zcGxpdCgiICIpOwpmdW5jdGlvbiBBQSgpe3ZhciBhPXVBKCJndG0uYWxsb3dsaXN0Iil8fHVBKCJndG0ud2hpdGVsaXN0Iik7YSYmUCg5KTtJZig2MikmJihhPXZvaWQgMCk7QkEoKSYmKElmKDYyKT9QKDExNik6KFAoMTE3KSxJZig0OCkmJihhPVtdLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR1RNIGJsb2NrZWQuIFNlZSBnby8xMzY4NzcyOC4iKSkpKTt2YXIgYj1hJiZSYihLYihhKSx4QSksYz11QSgiZ3RtLmJsb2NrbGlzdCIpfHx1QSgiZ3RtLmJsYWNrbGlzdCIpO2N8fChjPXVBKCJ0YWdUeXBlQmxhY2tsaXN0IikpJiZQKDMpO2M/UCg4KTpjPVtdO0JBKCkmJihjPUtiKGMpLGMucHVzaCgibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsInNhbmRib3hlZFNjcmlwdHMiKSk7S2IoYykuaW5kZXhPZigiZ29vZ2xlIik+PTAmJlAoMik7dmFyIGQ9YyYmUmIoS2IoYykseUEpLGU9e307cmV0dXJuIGZ1bmN0aW9uKGYpe3ZhciBnPWYmJgpmW0dmLlliXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4hMDtnPWcucmVwbGFjZSgvXl8qLywiIik7aWYoZVtnXSE9PXZvaWQgMClyZXR1cm4gZVtnXTt2YXIgaD1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZ118fFtdLGw9ITA7YSYmKGw9bCYmQ0EoZyxoLGIpKTt2YXIgbj0hMTtjJiYobj1EQShnLGgsZCkpO3ZhciBwPSFsfHxuOyFwJiYoaC5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIik9PT0tMXx8YiYmYi5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIikhPT0tMT8wOkViKGQsekEpKSYmKHA9ITApO3JldHVybiBlW2ddPXB9fWZ1bmN0aW9uIENBKGEsYixjKXtpZihjLmluZGV4T2YoYSk8MClpZihiJiZiLmxlbmd0aD4wKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtpZihjLmluZGV4T2YoYltkXSk8MClyZXR1cm4gUCgxMSksITF9ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH0KZnVuY3Rpb24gREEoYSxiLGMpe3ZhciBkPWMuaW5kZXhPZihhKT49MDtpZihkKXJldHVybiBkO3ZhciBlPUViKGMsYnx8W10pO2UmJlAoMTApO3JldHVybiBlfWZ1bmN0aW9uIEJBKCl7cmV0dXJuIHdBLnRlc3QoQS5sb2NhdGlvbiYmQS5sb2NhdGlvbi5ob3N0bmFtZSl9O2Z1bmN0aW9uIEVBKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9RkEoYSksZT1tKGNBLmdldFJ1bGVzKCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZS5ldmFsdWF0ZShhLGQpLGg9Zy5maXJpbmdUYWdzLGw9Zy5ibG9ja2luZ1RhZ3Msbj0wO248aC5sZW5ndGg7bisrKWJbaFtuXV09ITA7Zm9yKHZhciBwPTA7cDxsLmxlbmd0aDtwKyspY1tsW3BdXT0hMH1mb3IodmFyIHE9W10scj0wO3I8Y0EudGFncy5sZW5ndGg7cisrKWJbcl0mJiFjW3JdJiYocVtyXT0hMCk7cmV0dXJuIHF9ZnVuY3Rpb24gRkEoYSl7dmFyIGI9W107cmV0dXJuIGZ1bmN0aW9uKGMpe2JbY109PT12b2lkIDAmJihiW2NdPWNBLnByZWRpY2F0ZXNbY10uZXZhbHVhdGUoYSxbXSkpO3JldHVybiBiW2NdfX07dmFyIEdBPWZ1bmN0aW9uKCl7dGhpcy5LPTA7dGhpcy5IPXt9fTtHQS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSsrdGhpcy5LO3RoaXMuSFthXT10aGlzLkhbYV18fHt9O3RoaXMuSFthXVtTdHJpbmcoZCldPXtsaXN0ZW5lcjpiLHJmOmN9O3JldHVybiBkfTtHQS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV0sZD1TdHJpbmcoYik7aWYoIWN8fCFjW2RdKXJldHVybiExO2RlbGV0ZSBjW2RdO3JldHVybiEwfTt2YXIgSUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtHYihIQS5IW2FdLGZ1bmN0aW9uKGQsZSl7Yy5pbmRleE9mKGUubGlzdGVuZXIpPDAmJihlLnJmPT09dm9pZCAwfHxiLmluZGV4T2YoZS5yZik+PTApJiZjLnB1c2goZS5saXN0ZW5lcil9KTtyZXR1cm4gY307ZnVuY3Rpb24gSkEoYSxiLGMpe3JldHVybntlbnRpdHlUeXBlOmEsaW5kZXhJbk9yaWdpbkNvbnRhaW5lcjpiLG5hbWVJbk9yaWdpbkNvbnRhaW5lcjpjLG9yaWdpbkNvbnRhaW5lcklkOkUoNSksb3JpZ2luQ0lkOnZrKCl9fTtmdW5jdGlvbiBLQShhLGIpe2lmKGRhdGEuZW50aXRpZXMpe3ZhciBjPWRhdGEuZW50aXRpZXNbYV07aWYoYylyZXR1cm4gY1tiXX19O3ZhciBNQT1mdW5jdGlvbihhLGIpe3RoaXMuSD0hMTt0aGlzLlI9W107dGhpcy5ldmVudERhdGE9e3RhZ3M6W119O3RoaXMuWj0hMTt0aGlzLks9dGhpcy5OPTA7TEEodGhpcyxhLGIpfSxOQT1mdW5jdGlvbihhLGIsYyxkKXtpZihDai5oYXNPd25Qcm9wZXJ0eShiKXx8Yj09PSJfX3pvbmUiKXJldHVybi0xO3ZhciBlPXt9O0NkKGQpJiYoZT1FZChkLGUpKTtlLmlkPWM7ZS5zdGF0dXM9InRpbWVvdXQiO3JldHVybiBhLmV2ZW50RGF0YS50YWdzLnB1c2goZSktMX0sT0E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5ldmVudERhdGEudGFnc1tiXTtlJiYoZS5zdGF0dXM9YyxlLmV4ZWN1dGlvblRpbWU9ZCl9LFBBPWZ1bmN0aW9uKGEpe2lmKCFhLkgpe2Zvcih2YXIgYj1hLlIsYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10oKTthLkg9ITA7YS5SLmxlbmd0aD0wfX0sTEE9ZnVuY3Rpb24oYSxiLGMpe2IhPT12b2lkIDAmJmEud2coYik7YyYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UEEoYSl9LApOdW1iZXIoYykpfTtNQS5wcm90b3R5cGUud2c9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBiKGZ1bmN0aW9uKCl7YmQoZnVuY3Rpb24oKXthKEUoNSksYi5ldmVudERhdGEpfSl9KTt0aGlzLkg/YygpOnRoaXMuUi5wdXNoKGMpfTt2YXIgUUE9ZnVuY3Rpb24oYSl7YS5OKys7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7YS5LKys7YS5aJiZhLks+PWEuTiYmUEEoYSl9KX0sUkE9ZnVuY3Rpb24oYSl7YS5aPSEwO2EuSz49YS5OJiZQQShhKX07ZnVuY3Rpb24gU0EoKXtyZXR1cm4gQVtUQSgpXX0KZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBMRj1mdW5jdGlvbihhKXtpeChhKX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO2lmKCFsaChhKXx8IWhoKGIpfHwhbWgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChkLCJsaXN0ZW5fZGF0YV9sYXllciIsYSl9XSk7ZT15QigpLmFkZExpc3RlbmVyKGEsVGQoYix2b2lkIDAsMSksYz09PW51bGw/dm9pZCAwOmMpO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTt2YXIgaEc9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLmVsZW1lbnRzKXJldHVybiAwO2Zvcih2YXIgZD1iLmRhdGFzZXRbY10sZT0wLGY9MTtlPGEuZWxlbWVudHMubGVuZ3RoO2UrKyl7dmFyIGc9YS5lbGVtZW50c1tlXSxoPWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoZkcuaW5kZXhPZihoKTwwfHxoPT09ImlucHV0IiYmZ0cuaW5kZXhPZihnLnR5cGUudG9Mb3dlckNhc2UoKSk+PTApKXtpZihnLmRhdGFzZXRbY109PT1kKXJldHVybiBmO2YrK319cmV0dXJuIDB9LGZHPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGdHPVsiYnV0dG9uIiwiaGlkZGVuIiwiaW1hZ2UiLCJyZXNldCIsInN1Ym1pdCJdOwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7aWYoIWVoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGIpfHx7fSxlPVRkKGEsdGhpcy5ULDEpLnJiKCksZj1lLk07ZC5vbWl0RXZlbnRDb250ZXh0JiYoZj1KQyhuZXcgeUMoZS5NLmV2ZW50SWQsZS5NLnByaW9yaXR5SWQpKSk7dmFyIGc9bmV3IGFJKGUudGFyZ2V0LGUuZXZlbnROYW1lLGYpO2lmKCFkLm9taXRIaXREYXRhKWZvcih2YXIgaD1iSShlKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1UoZyxwLGhbcF0pfWlmKGQub21pdE1ldGFkYXRhKWcubWV0YWRhdGE9e307ZWxzZSBmb3IodmFyIHE9Y0koZSkscj1tKE9iamVjdC5rZXlzKHEpKSx0PXIubmV4dCgpOyF0LmRvbmU7dD0Kci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7VihnLHUscVt1XSl9Zy5pc0Fib3J0ZWQ9ZS5pc0Fib3J0ZWQ7Yz1VZChmSShnKSx0aGlzLlQsMSk7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciBKST1mdW5jdGlvbihhKXt2YXIgYixjPShiPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVNlbGVjdG9yKSE9bnVsbD9iOiEwLGQsZT0oZD1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVWaXNpYmlsaXR5KSE9bnVsbD9kOiEwLGYsZz0oZj1hPT1udWxsP3ZvaWQgMDphLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpIT1udWxsP2Y6ITEsaD0oYT09bnVsbD92b2lkIDA6YS5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyl8fFtdLGw9KGE9PW51bGw/dm9pZCAwOmEuZmllbGRGaWx0ZXJzKXx8e2VtYWlsOiEwLHBob25lOiExLGFkZHJlc3M6ITF9LG49YWwoNixmdW5jdGlvbigpe3JldHVybnt9fSkscD16SSh7aW5jbHVkZVNlbGVjdG9yOmMsaW5jbHVkZVZpc2liaWxpdHk6ZSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpoLGZpZWxkRmlsdGVyczpsfSkscT1uW3BdO2lmKHEmJk5iKCktcS50aW1lc3RhbXA8MjAwKXt2YXIgcj1xLnJlc3VsdCx0OyhyLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwKKCh0PXIuZ2kpPT1udWxsPzA6dC5kaSkpJiZHdShULlcucmopO3JldHVybiByfXZhciB1PUFJKCksdj11LnN0YXR1cyx4PVtdLHkseixDPVtdO2lmKE0oNTY4KSl7dmFyIEQ9QkkobCksST1DSSh1LmVsZW1lbnRzLEQpLEc9REkoSSksTj1FSShHLGgpLFM9RkkoTik7eT1TLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIHFhLkRhPT09RkQuQmJ9KVswXTtmb3IodmFyIFc9W10sZWE9e0lnOjB9O2VhLklnPEQubGVuZ3RoO2VhPXtJZzplYS5JZ30sZWEuSWcrKyl7dmFyIGphPU4uZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gZnVuY3Rpb24oaWIpe3JldHVybiBpYi5EYT09PURbcWEuSWddfX0oZWEpKTtqYS5sZW5ndGg+MTAmJih2PSIzIixqYT1qYS5zbGljZSgwLDEwKSk7Vz1XLmNvbmNhdChqYSl9Tj1XOyFnJiZTJiYoTj1TKTtmb3IodmFyIGZhPTA7ZmE8Ti5sZW5ndGg7ZmErKyl7dmFyIHNhPU5bZmFdO3NhLkRhIT09RkQuS2gmJkMucHVzaChHSShzYSxjLGUpKX19ZWxzZXtpZihsLmVtYWlsKXt2YXIgZGE9CkhJKHUuZWxlbWVudHMpO3g9RUkoZGEsaCk7eT1JSSh4KTtkYS5sZW5ndGg+MTAmJih2PSIzIil9IWcmJnkmJih4PVt5XSk7Zm9yKHZhciBtYT0wO21hPHgubGVuZ3RoO21hKyspQy5wdXNoKEdJKHhbbWFdLGMsZSkpO0M9Qy5zbGljZSgwLDEwKX15JiYoej1HSSh5LGMsZSkpO3ZhciBQYT17ZWxlbWVudHM6QyxnaTp6LHN0YXR1czp2fTtuW3BdPXt0aW1lc3RhbXA6TmIoKSxyZXN1bHQ6UGF9O3ZhciBGYTsoUGEuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fCgoRmE9UGEuZ2kpPT1udWxsPzA6RmEuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gUGF9LERJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuS2h9KSxjPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuWGR9KTtpZihhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmNlfSkubGVuZ3RoPT09MCYmYy5sZW5ndGg9PT0KMClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWUuQ2Euc3BsaXQoIiAiKTtmLmxlbmd0aD4xJiZhLnB1c2goe0NhOmZbMF0sRGE6RkQuWGQsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30se0NhOmYuc2xpY2UoMSkuam9pbigiICIpLERhOkZELmNlLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9KX1mb3IodmFyIGcsaD0wLGwsbj1mdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmVlJiZ1LkNhLmxlbmd0aD49MyYmdS5DYS5sZW5ndGg8PTR9LHA9MDtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9YVtwXTtpZihuKHEpJiZnJiZxLmVsZW1lbnQucGFyZW50RWxlbWVudD09PWcmJmg8Myl7aWYoaCs9MSxsKz1xLkNhLGg9PT0zKXt2YXIgcj1wLWgrMTtpZihsPUtJW0ZELmVlXS5uYShsKSlhW3JdLkNhPWx9fWVsc2UgaWYoaD0wLGw9IiIsZz12b2lkIDAsbihxKSl7aCsrO2w9cS5DYTt2YXIgdD12b2lkIDA7Zz0odD1xLmVsZW1lbnQucGFyZW50RWxlbWVudCkhPW51bGw/CnQ6dm9pZCAwfX1yZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIW4odSl9KX0sT0k9ZnVuY3Rpb24oYSxiKXtpZihhLnZhbHVlJiZMSS5pbmRleE9mKChhLnR5cGV8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKSkhPT0tMSl7dmFyIGM9YS5hdXRvY29tcGxldGU7aWYoYylmb3IodmFyIGQ9Yy5zcGxpdCgiICIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9TUkoYS52YWx1ZSxiLGRbZV0pO2lmKGYpcmV0dXJuIGZ9dmFyIGcsaD1bYS5uYW1lLGEuaWQsKGc9YS5hcmlhTGFiZWwpIT1udWxsP2c6dm9pZCAwLGEucGxhY2Vob2xkZXJdLGw9YS5wYXJlbnRFbGVtZW50O2wmJmwudGFnTmFtZT09PSJMQUJFTCImJmgucHVzaChsLmlubmVyVGV4dCk7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO24mJm4udGFnTmFtZT09PSJMQUJFTCImJiFuLmh0bWxGb3ImJmgucHVzaChuLmlubmVyVGV4dCk7aWYoYS5pZCl7dmFyIHA9W107dHJ5e3A9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbFtmb3I9IicrCmEuaWQrJyJdJyl9Y2F0Y2goRCl7fWZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWgucHVzaChwW3FdLmlubmVyVGV4dCl9aD1oLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gRCYmRC50cmltKCl9KTtmb3IodmFyIHIsdD0wLHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIHY9TkkoYSxiLGhbdV0pO2lmKHYpe3ZhciB4PXYseT14LkNhLHo9eC5EYSxDPXguWHM7Qz50JiYodD1DLHI9e0NhOnksRGE6en0pfX1yZXR1cm4gcn19LE5JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5uZSl7dmFyIGY9S0lbZV0ubmUuZXhlYyhjLnRyaW0oKSk7aWYoZil7dmFyIGc9YSxoPVtdLGw9Zy52YWx1ZS50cmltKCk7bCYmaC5wdXNoKGwpO2lmKGcudGFnTmFtZT09PSJTRUxFQ1QiKXRyeXt2YXIgbj1nLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT0iJytnLnZhbHVlKyciXScpLHA9biYmbi5pbm5lclRleHQudHJpbSgpO3AmJmgucHVzaChwKX1jYXRjaCh1KXt9Zm9yKHZhciBxPQpoLHI9dm9pZCAwLHQ9MDt0PHEubGVuZ3RoJiYhcjt0Kyspcj1LSVtlXS5uYShxW3RdKTtpZihyKXJldHVybntEYTplLENhOnIsWHM6ZlswXS5sZW5ndGgvYy50cmltKCkubGVuZ3RofX19fX0sTUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLmF1dG9jb21wbGV0ZSYmS0lbZV0uYXV0b2NvbXBsZXRlLmluZGV4T2YoYyk+PTApe3ZhciBmPUtJW2VdLm5hKGEudHJpbSgpKTtpZihmKXJldHVybntEYTplLENhOmZ9fX19LEJJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuZW1haWwmJmIucHVzaChGRC5CYik7YS5waG9uZSYmYi5wdXNoKEZELmVlKTthLmFkZHJlc3MmJmIucHVzaChGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC5LaCk7cmV0dXJuIGJ9LENJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWUuZWxlbWVudCxnPWUuT2MsaDthOnt2YXIgbD1mLG49YiwKcD1sLmlubmVySFRNTDtQSS5pbmRleE9mKGwudGFnTmFtZSk+PTAmJihwPWwudmFsdWV8fHApO2lmKHApe3ZhciBxO2I6e2Zvcih2YXIgcj1wLHQ9bix1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciB2PXRbdV07aWYoIUtJW3ZdLm1lKXt2YXIgeD1LSVt2XS5uYShyLnRyaW0oKSk7aWYoeCl7cT17RGE6dixDYTp4fTticmVhayBifX19cT12b2lkIDB9aWYocSl7aD1xO2JyZWFrIGF9aWYoUEkuaW5kZXhPZihsLnRhZ05hbWUpIT09LTEpe2g9T0kobCxuKTticmVhayBhfX1oPXZvaWQgMH12YXIgeT1oO2lmKHkpe3ZhciB6PXk7Yy5wdXNoKHtDYTp6LkNhLERhOnouRGEsZWxlbWVudDpmLE9jOmd9KX19cmV0dXJuIGN9LEZJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gYjt2YXIgYz17fSxkO2ZvcihkIGluIEZEKWlmKGM9e1ZnOmMuVmd9LGMuVmc9ZCxGRC5oYXNPd25Qcm9wZXJ0eShjLlZnKSl7dmFyIGU9YS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLkRhPT09CkZEW2YuVmddfX0oYykpO2UubGVuZ3RoIT09MCYmKEZEW2MuVmddPT09RkQuQmImJihlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIVJJLnRlc3QoZi5DYSl9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIGYuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFySShmLmVsZW1lbnQpfSkpLGIucHVzaChlWzBdKSl9cmV0dXJuIGJ9LEdJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmVsZW1lbnQsZT1hLk9jLGY9e0NhOmEuQ2EsdHlwZTphLkRhLHRhZ05hbWU6ZC50YWdOYW1lfTtpZihiKXt2YXIgZyxoPVNJKGQpO2lmKGc9KGU/ZSsifCIraDpoKS5zbGljZSgwLFRJKSlmLnF1ZXJ5U2VsZWN0b3I9Z31jJiYoZi5pc1Zpc2libGU9IXJJKGQpKTtlJiYoZi5kaT0hMCk7cmV0dXJuIGZ9LHpJPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO2I9YS5pbmNsdWRlU2VsZWN0b3I7Yz1hLmluY2x1ZGVWaXNpYmlsaXR5O2Q9YS5leGNsdWRlRWxlbWVudFNlbGVjdG9yczsKZT1hLmZpZWxkRmlsdGVyczt2YXIgZj0hIWIrIi4iKyEhYztkLmxlbmd0aCYmKGYrPSIuIitkLmpvaW4oIi4iKSk7cmV0dXJuIGYrPSIuIitlLmVtYWlsKyIuIitlLnBob25lKyIuIitlLmFkZHJlc3N9LElJPWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT09MCl7dmFyIGI7Yj1RSShhLGZ1bmN0aW9uKGMpe3JldHVybiFSSS50ZXN0KGMuQ2EpfSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiBjLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4hckkoYy5lbGVtZW50KX0pO3JldHVybiBiWzBdfX0sRUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdO2lmKGcmJnBJKGFbZF0uZWxlbWVudCxnKSl7ZT0hMTticmVha319YVtkXS5EYT09PUZELkJiJiZNKDYwMikmJihSSS50ZXN0KGFbZF0uQ2EpfHxhW2RdLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09CiJBIiYmYVtkXS5lbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiZhW2RdLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJocmVmIikuaW5kZXhPZigibWFpbHRvOiIpIT09LTE/ZT0hMTphW2RdLmVsZW1lbnQuY2xvc2VzdCgiZm9vdGVyIikhPT1udWxsJiYoZT0hMSkpO2UmJmMucHVzaChhW2RdKX1yZXR1cm4gY30sUUk9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aDw9MSlyZXR1cm4gYTt2YXIgYz1hLmZpbHRlcihiKTtyZXR1cm4gYy5sZW5ndGg9PT0wP2E6Y30sU0k9ZnVuY3Rpb24oYSl7aWYoYT09PUIuYm9keSlyZXR1cm4iYm9keSI7aWYoYS5pZClyZXR1cm4iIyIrYS5pZDt2YXIgYj1hLnBhcmVudEVsZW1lbnQ7aWYoYil7dmFyIGM9U0koYiksZD1VSShhLGIpLGU9VkkoYSkrIjpudGgtY2hpbGQoIitkKyIpIjtyZXR1cm4gYz9jKyI+IitlOmV9dmFyIGY9YS5wYXJlbnROb2RlO2lmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KXt2YXIgZz1VSShhLGYpO3JldHVybiBWSShhKSsiOm50aC1jaGlsZCgiKwpnKyIpIn1yZXR1cm4gYS50YWdOYW1lP2EudGFnTmFtZS50b0xvd2VyQ2FzZSgpOiIifSxWST1mdW5jdGlvbihhKXtpZihhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QubGVuZ3RoPjApe3ZhciBiPUFycmF5LmZyb20oYS5jbGFzc0xpc3QsZnVuY3Rpb24oYyl7cmV0dXJuIENTUy5lc2NhcGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubGVuZ3RoPjB9KTtpZihiLmxlbmd0aD4wKXJldHVybiIuIitiLmpvaW4oIi4iKX1yZXR1cm4iIn0sVUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZHJlbixkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXT09PWEpcmV0dXJuIGQrMTtyZXR1cm4gMX0sSEk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZWxlbWVudCxmPWQuT2MsZz1lLnRleHRDb250ZW50O2UudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIiYmZS52YWx1ZSYmKGc9ZS52YWx1ZSk7aWYoZyl7dmFyIGg9CmcubWF0Y2goS0QpO2lmKGgpe3ZhciBsPWhbMF07TEQobCl8fGIucHVzaCh7ZWxlbWVudDplLENhOmwsRGE6RkQuQmIsT2M6Zn0pfX19cmV0dXJuIGJ9LEFJPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1CLmJvZHk7aWYoIWIpcmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOiI0In07dmFyIGM9V0koYiwwLCIiLGEpO3JldHVybntlbGVtZW50czphLHN0YXR1czpjfX0sV0k9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWEucXVlcnlTZWxlY3RvckFsbCgiKiIpLGY9ZS5sZW5ndGg+MUU0PyIyIjoiMSIsZz0wO2c8TWF0aC5taW4oZS5sZW5ndGgsMUU0KTtnKyspe3ZhciBoPWVbZ107aWYoIShYSS5pbmRleE9mKGgudGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkmJmguY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbil7dmFyIGw9ITE7aWYoTSg1ODIpJiZoLnNoYWRvd1Jvb3QmJmI8MSl7dmFyIG49U0koaCk7V0koaC5zaGFkb3dSb290LGIrMSxjP2MrInwiK246bixkKT09PSIyIiYmCihmPSIyIik7bD0hMH12YXIgcD0hMTtpZighbClmb3IodmFyIHE9MDtxPE1hdGgubWluKGguY2hpbGRFbGVtZW50Q291bnQsMUU0KTtxKyspaWYoIShZSS5pbmRleE9mKGguY2hpbGRyZW5bcV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkpe3A9ITA7YnJlYWt9KCFwJiYhbHx8TSg1NjgpJiZQSS5pbmRleE9mKGgudGFnTmFtZSkhPT0tMSkmJmQucHVzaCh7ZWxlbWVudDpoLE9jOmI+MD9jOnZvaWQgMH0pfX1yZXR1cm4gZn0sUkk9L3N1cHBvcnR8bm9yZXBseS9pLFhJPSJTQ1JJUFQgU1RZTEUgSU1HIFNWRyBQQVRIIEJSIE5PU0NSSVBUIFRFWFRBUkVBIi5zcGxpdCgiICIpLFlJPVsiQlIiXSxUST1OZig3MCw1MCksUEk9WyJJTlBVVCIsIlNFTEVDVCJdLExJPSJ0ZXh0IHRlbCBzZWFyY2ggbnVtYmVyIGhpZGRlbiBlbWFpbCBzZWxlY3Qtb25lIi5zcGxpdCgiICIpLFpJPVJlZ0V4cCgicGhvbmV8bW9iaWxlfGNvbnRhY3QuP251bWJlcnx0ZWxlZm9ubnVtbWVyfHRlbGVmb25vfHRlbFx1MDBlOWZvbm98dGVsZml4ZXxcdTk2ZmJcdThhNzF8dGVsZWZvbmV8dGVsZW1vdmVsfFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQ0NFx1MDQzZVx1MDQzZHxcdTA5MmVcdTA5NGJcdTA5MmNcdTA5M2VcdTA5MDdcdTA5MzJ8XHU3NTM1XHU4YmRkfFx1NjI0Ylx1NjczYVx1NTNmN3xcdTBkMmVcdTBkNGFcdTBkMmNcdTBkNDhcdTBkMzJcdTBkNGRcdTIwMGR8KF58Wy1fXSl0ZWxbLV9dPyhcXGQrKSooXFxbLipcXF0pKiR8KD86XHVjODA0XHVkNjU0fFx1ZDU3OFx1YjRkY1x1ZDNmMHxcdWQ3MzRcdWIzMDBcdWQzZjB8XHVkNzM0XHViMzAwXHVjODA0XHVkNjU0KSg/Oi4/XHViYzg4XHVkNjM4KT98KFxcYnxffFxcKil0ZWxlZm9uKFxcYnxffFxcKil8dGVsZXBvbnxwb25zZWx8KG5vbW9yfG5vXFwuPykuPyhocHxoYW5kcGhvbmUpIiwKImkiKSwkST1SZWdFeHAoIl5uYW1lfGZ1bGwuP25hbWV8eW91ci4/bmFtZXxjdXN0b21lci4/bmFtZXxiaWxsLj9uYW1lfHNoaXAuP25hbWV8bmFtZS4qZmlyc3QuKmxhc3R8Zmlyc3RhbmRsYXN0bmFtZXxjb250YWN0Lj8obmFtZXxwZXJzb24pfG5vbWJyZS4qeS4qYXBlbGxpZG9zfF5ub20oPyFbYS16QS1aXSl8XHUzMDRhXHU1NDBkXHU1MjRkfFx1NmMwZlx1NTQwZHxebm9tZXxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1NTlkM1xccypcdTU0MGR8XHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDMwXHUwNDNhXHUwNDQyXHUwNDNkXHUwNDNlXHUwNDM1Lj9cdTA0M2JcdTA0MzhcdTA0NDZcdTA0M2V8KFxcYnxffFxcKilhZFtcdTAxMzFdPyBzb3lhZFtcdTAxMzFdPyhcXGJ8X3xcXCopfFx1YzEzMVx1YmE4NXxuYW1hLj8obGVuZ2thcHxwZW5lcmltYXxrYW11KSIsCiJpIiksYUo9UmVnRXhwKCJmaXJzdC4qbmFtZXxpbml0aWFsc3xmbmFtZXxmaXJzdCR8Z2l2ZW4uKm5hbWV8dm9ybmFtZXxub21icmV8Zm9yZW5hbWV8cHJcdTAwZTlub218cHJlbm9tfFx1NTQwZHxub21lfFx1MDQxOFx1MDQzY1x1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDV8XHVjNzc0XHViOTg0fFx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShpc2ltfGFkfGFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcdTA5MjhcdTA5M2VcdTA5MmV8bmFtYSBkZXBhbiIsImkiKSxiSj1SZWdFeHAoImxhc3QuKm5hbWV8bG5hbWV8c3VybmFtZSg/IVxcZCl8bGFzdCR8c2Vjb25kbmFtZXxmYW1pbHkuKm5hbWV8bmFjaG5hbWV8YXBlbGxpZG9zP3xmYW1pbGxlfF5ub20oPyFbYS16QS1aXSl8Y29nbm9tZXxcdTU5ZDN8YXBlbGlkb3N8c3VyZW5hbWV8c29icmVub21lfFx1MDQyNFx1MDQzMFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzOFx1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTA5MDlcdTA5MmFcdTA5MjhcdTA5M2VcdTA5MmV8XHUwZDJlXHUwZDMxXHUwZDQxXHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKHNveWlzaW18c295YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFxcYlx1YzEzMSg/OlteXHViYTg1XXxcXGIpfG5hbWEgYmVsYWthbmciLAoiaSIpLGNKPVJlZ0V4cCgiY291bnRyeXxjb3VudHJpZXN8cGFcdTAwZWRzfHBhaXN8KFxcYnxfKWxhbmQoXFxifF8pKD8hLioobWFyay4qKSl8KF58W14oXHU1MTY1fFx1NTFmYSldKVx1NTZmZHxcdTU2ZmRcdTViYjZ8XHVhZDZkXHVhYzAwfFx1YjA5OFx1Yjc3Y3woXFxifF8pKFx1MDBmY2xrZXx1bGNlfHVsa2UpKFxcYnxfKXxcdTA2YTlcdTA2MzRcdTA2NDhcdTA2MzF8bmVnYXJhIiwiaSIpLGRKPVJlZ0V4cCgiKF58W14uXSl6aXB8cG9zdGFsfHBvc3QuKmNvZGV8cGNvZGV8cGluLj9jb2RlfHBvc3RsZWl0emFobHxcXGJjcFxcYnxcXGJjZHBcXGJ8XFxiY2FwXFxifFx1OTBmNVx1NGZiZlx1NzU2YVx1NTNmN3xjb2RpZ298Y29kcG9zfFxcYmNlcFxcYnxcdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkuP1x1MDQxOFx1MDQzZFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ0MXxcdTA5MmFcdTA5M2ZcdTA5MjguP1x1MDkxNVx1MDk0Ylx1MDkyMXxcdTBkMmFcdTBkM2ZcdTBkMjhcdTBkNGRcdTIwMGRcdTBkMTVcdTBkNGJcdTBkMjFcdTBkNGR8XHU5MGFlXHU2NTNmXHU3ZjE2XHU3ODAxfFx1OTBhZVx1N2YxNnxcdTkwZjVcdTkwNWVcdTUzNDBcdTg2NWZ8KFxcYnxfKXBvc3RhIGtvZHUoXFxifF8pfFx1YzZiMFx1ZDNiOC4/XHViYzg4XHVkNjM4fGtvZGUuP3BvcyIsCiJpIiksZUo9e30sS0k9KGVKW0ZELkJiXT17bWU6ITEsbmE6TUR9LGVKW0ZELmVlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsidGVsIiwidGVsLW5hdGlvbmFsIiwidGVsLWxvY2FsIl0sbmU6WkksbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITApfX0sZUpbRkQuS2hdPXttZTohMCxhdXRvY29tcGxldGU6WyJuYW1lIiwiY2MtbmFtZSJdLG5lOiRJLG5hOk5EfSxlSltGRC5YZF09e21lOiEwLGF1dG9jb21wbGV0ZTpbImdpdmVuLW5hbWUiLCJjYy1naXZlbi1uYW1lIl0sbmU6YUosbmE6TkR9LGVKW0ZELmNlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZmFtaWx5LW5hbWUiLCJjYy1mYW1pbHktbmFtZSJdLG5lOmJKLG5hOk5EfSxlSltGRC54Zl09e21lOiEwLGF1dG9jb21wbGV0ZTpbImNvdW50cnkiLCJjb3VudHJ5LW5hbWUiXSxuZTpjSixuYTpORH0sZUpbRkQucWddPXttZTohMCxhdXRvY29tcGxldGU6WyJwb3N0YWwtY29kZSJdLG5lOmRKLG5hOklEfSxlSik7ZnVuY3Rpb24gZkooYSl7dmFyIGI7TCh0aGlzLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byIpO3ZhciBjPVRkKGEpfHx7fSxkPUpJKHtpbmNsdWRlU2VsZWN0b3I6ISFjLmluY2x1ZGVTZWxlY3RvcixpbmNsdWRlVmlzaWJpbGl0eTohIWMuaW5jbHVkZVZpc2liaWxpdHksZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6Yy5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyxmaWVsZEZpbHRlcnM6Yy5maWVsZEZpbHRlcnMsc2VsZWN0TXVsdGlwbGVFbGVtZW50czohIWMuc2VsZWN0TXVsdGlwbGVFbGVtZW50c30pO2I9bmV3IGtiO3ZhciBlPW5ldyBHZDtiLnNldCgiZWxlbWVudHMiLGUpO2Zvcih2YXIgZj1kLmVsZW1lbnRzLGc9MDtnPGYubGVuZ3RoO2crKyllLnB1c2goZ0ooZltnXSkpO2QuZ2khPT12b2lkIDAmJmIuc2V0KCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiLApnSihkLmdpKSk7Yi5zZXQoInN0YXR1cyIsZC5zdGF0dXMpO2lmKGMucmVhZEZyb21EYXRhTGF5ZXIpe2hKKGUsYyk7dmFyIGg9UEQoKSxsPWguc3Q7Yi5zZXQoImRhdGFMYXllclNlYXJjaFRpbWUiLGgudnQpO2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hDb3VudCIsbCl9cmV0dXJuIGJ9CnZhciBpSj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSBGRC5CYjpyZXR1cm4iZW1haWwiO2Nhc2UgRkQuZWU6cmV0dXJuInBob25lX251bWJlciI7Y2FzZSBGRC5YZDpyZXR1cm4iZmlyc3RfbmFtZSI7Y2FzZSBGRC5jZTpyZXR1cm4ibGFzdF9uYW1lIjtjYXNlIEZELnRqOnJldHVybiJzdHJlZXQiO2Nhc2UgRkQubGk6cmV0dXJuImNpdHkiO2Nhc2UgRkQuamo6cmV0dXJuInJlZ2lvbiI7Y2FzZSBGRC5xZzpyZXR1cm4icG9zdGFsX2NvZGUiO2Nhc2UgRkQueGY6cmV0dXJuImNvdW50cnkifX0sako9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiLGM9aUooYS5EYSk7YyE9PXZvaWQgMCYmYi5zZXQoInR5cGUiLGMpO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLCJETFlSIik7cmV0dXJuIGJ9LGhKPWZ1bmN0aW9uKGEsYil7dmFyIGM9UUQoKTtpZihNKDU2OCkpZm9yKHZhciBkPW5ldyBTZXQoYS5oYygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5nZXQoInR5cGUiKX0pKSwKZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUpLGg9Zy5uZXh0KCkudmFsdWUsbD1nLm5leHQoKS52YWx1ZSxuPWgscD1sO2lmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50cylhLnB1c2goakoocCkpO2Vsc2V7dmFyIHE9aUoobik7cSYmIWQuaGFzKHEpJiZhLnB1c2goakoocCkpfX1lbHNlIGMuaGFzKEZELkJiKSYmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50c3x8YS5sZW5ndGgoKT09PTApJiZhLnB1c2goakooYy5nZXQoRkQuQmIpKSl9LGdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIixhLnRhZ05hbWUpO2EucXVlcnlTZWxlY3RvciE9PXZvaWQgMCYmYi5zZXQoInF1ZXJ5U2VsZWN0b3IiLGEucXVlcnlTZWxlY3Rvcik7YS5pc1Zpc2libGUhPT12b2lkIDAmJmIuc2V0KCJpc1Zpc2libGUiLGEuaXNWaXNpYmxlKTtpZihNKDU2OCkpe3ZhciBjPWlKKGEudHlwZSk7YyE9PQp2b2lkIDAmJmIuc2V0KCJ0eXBlIixjKX1lbHNlIHN3aXRjaChhLnR5cGUpe2Nhc2UgRkQuQmI6Yi5zZXQoInR5cGUiLCJlbWFpbCIpfXJldHVybiBifTtmSi5QPSJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIjsKdmFyIGtKPWZ1bmN0aW9uKGEpe3ZhciBiPWhkKGEsWyJidXR0b24iLCJpbnB1dCJdLDUwKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1TdHJpbmcoYi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpO2lmKGM9PT0iYnV0dG9uIilyZXR1cm4gYjtpZihjPT09ImlucHV0Iil7dmFyIGQ9ZWQoYiwidHlwZSIpO2lmKGQ9PT0iYnV0dG9uInx8ZD09PSJzdWJtaXQifHxkPT09ImltYWdlInx8ZD09PSJmaWxlInx8ZD09PSJyZXNldCIpcmV0dXJuIGJ9cmV0dXJuIG51bGx9LGxKPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLnRhcmdldDtpZihkKXt2YXIgZT0kRihhLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsW10pO2lmKGUubGVuZ3RoPjApe3ZhciBmPWVHKGQsYixlKTt1RShmKX12YXIgZz0hMSxoPSRGKGEsImNvbW1vbkJ1dHRvbklkcyIsW10pO2lmKGgubGVuZ3RoPjApe3ZhciBsPWtKKGQpO2lmKGwpe3ZhciBuPWVHKGwsYixoKTt1RShuKTtnPSEwfX12YXIgcD0kRihhLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCnt9KSxxO2ZvcihxIGluIHApaWYocC5oYXNPd25Qcm9wZXJ0eShxKSl7dmFyIHI9Zz9wW3FdLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gaC5pbmRleE9mKHYpPT09LTF9KTpwW3FdO2lmKHIubGVuZ3RoIT09MCl7dmFyIHQ9cEkoZCxxKTtpZih0KXt2YXIgdT1lRyh0LGIscik7dUUodSl9fX19fTsKZnVuY3Rpb24gbUooYSxiKXtpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBjPWE/VGQoYSk6e30sZD1KYihjLm1hdGNoQ29tbW9uQnV0dG9ucyksZT0hIWMuY3NzU2VsZWN0b3IsZj1aRihiKTtMKHRoaXMsImRldGVjdF9jbGlja19ldmVudHMiLGMubWF0Y2hDb21tb25CdXR0b25zLGMuY3NzU2VsZWN0b3IpO3ZhciBnPWMudXNlVjJFdmVudE5hbWU/Imd0bS5jbGljay12MiI6Imd0bS5jbGljayIsaD1jLnVzZVYyRXZlbnROYW1lPyJlY2wiOiJjbCIsbD1mdW5jdGlvbihwKXtwLnB1c2goZik7cmV0dXJuIHB9O2lmKGV8fGQpe2lmKGQmJmRHKGgsImNvbW1vbkJ1dHRvbklkcyIsbCxbXSksZSl7dmFyIG49TGIoU3RyaW5nKGMuY3NzU2VsZWN0b3IpKTtkRyhoLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCmZ1bmN0aW9uKHApe3AuaGFzT3duUHJvcGVydHkobil8fChwW25dPVtdKTtsKHBbbl0pO3JldHVybiBwfSx7fSl9fWVsc2UgZEcoaCwiaW5kaXZpZHVhbEVsZW1lbnRJZHMiLGwsW10pO2JHKGgsZnVuY3Rpb24oKXskYyhCLCJjbGljayIsZnVuY3Rpb24ocCl7bEooaCxnLHApfSwhMCl9KTtyZXR1cm4gZn1tSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKdmFyIHdKPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPWJbY107ZSYmR2IoZCxmdW5jdGlvbihmLGcpe3ZKKGcsZSl9KX0pfSx6Sj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0iIitiO2lmKGNbaF0pY1toXS5wdXNoKGEpO2Vsc2V7dmFyIGw9W2FdO2NbaF09bDt2YXIgbj1kW2hdO258fChuPXt9LGRbaF09bik7ZS5wdXNoKGZ1bmN0aW9uKHApe3ZhciBxPXAudGFyZ2V0O2lmKHEpe3ZhciByPWlHKHEpO2lmKHIpe3ZhciB0PXhKKHIsImd0bUZvcm1JbnRlcmFjdElkIixmKSx1PXhKKHEsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiLGcpO2lmKHQhPT1udWxsJiZ1IT09bnVsbCl7dmFyIHY9blt0XTt2Pyh2LlJiJiYoQS5jbGVhclRpbWVvdXQodi5SYiksdi5kZi5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLWZvcm0taW50ZXJhY3QtZmllbGQtaWQiKSE9PXUmJnZKKHYsbCkpLHYuZGY9cSx5Sih2LGwsYikpOihuW3RdPXtmb3JtOnIsZGY6cSxzZXF1ZW5jZU51bWJlcjowLApSYjpudWxsfSx5SihuW3RdLGwsYikpfX19fSl9fSx2Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZm9ybSxkPWEuZGYsZT1lRyhjLCJndG0uZm9ybUludGVyYWN0IixiKSxmPWMuYWN0aW9uO2YmJmYudGFnTmFtZSYmKGY9Yy5jbG9uZU5vZGUoITEpLmFjdGlvbik7ZVsiZ3RtLmVsZW1lbnRVcmwiXT1mO2VbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1jLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2MuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdPWMubGVuZ3RoO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkIl09ZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZElkIl09ZC5pZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZE5hbWUiXT1kLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2QuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkUG9zaXRpb24iXT1oRyhjLGQsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiKTsKZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRUeXBlIl09ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgidHlwZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RTZXF1ZW5jZU51bWJlciJdPWEuc2VxdWVuY2VOdW1iZXI7dUUoZSk7YS5zZXF1ZW5jZU51bWJlcisrO2EuUmI9bnVsbH0seUo9ZnVuY3Rpb24oYSxiLGMpe2M/YS5SYj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2SihhLGIpfSxjKTp2SihhLGIpfSx4Sj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7dHJ5e2lmKGQ9YS5kYXRhc2V0W2JdKXJldHVybiBkO2Q9U3RyaW5nKGMoKSk7YS5kYXRhc2V0W2JdPWR9Y2F0Y2goZSl7ZD1udWxsfXJldHVybiBkfTsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiKX1dKTt2YXIgZD1aRihiKSxlPWEmJk51bWJlcihhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7aWYoJEYoImZpbCIsImluaXQiLCExKSl7dmFyIGY9JEYoImZpbCIsInJlZyIpO2lmKGYpZihkLGUpO2Vsc2UgdGhyb3cgRXJyb3IoIkZhaWxlZCB0byByZWdpc3RlciB0cmlnZ2VyOiAiK2QpO31lbHNle3ZhciBnPXt9LGg9W10sbD17fSxuPTAscD1mdW5jdGlvbigpe3JldHVybiBuKyt9LHE9MCxyPWZ1bmN0aW9uKCl7cmV0dXJuIHErK307JGMoQiwiY2hhbmdlIiwKZnVuY3Rpb24odCl7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1KyspaFt1XSh0KX0pOyRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3dKKGwsZyl9KTt6SihkLGUsZyxsLGgscCxyKTthRygiZmlsIiwicmVnIixmdW5jdGlvbih0LHUpe3pKKHQsdSxnLGwsaCxwLHIpfSk7YUcoImZpbCIsImluaXQiLCEwKX1yZXR1cm4gZH1BSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiI7CnZhciBCSj1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSRGKCJmc2wiLGM/Im52Lm13dCI6Im13dCIsMCksZztnPWM/JEYoImZzbCIsIm52LmlkcyIsW10pOiRGKCJmc2wiLCJpZHMiLFtdKTtpZighZy5sZW5ndGgpcmV0dXJuITA7dmFyIGg9ZUcoYSwiZ3RtLmZvcm1TdWJtaXQiLGcpLGw9YS5hY3Rpb247bCYmbC50YWdOYW1lJiYobD1hLmNsb25lTm9kZSghMSkuYWN0aW9uKTtQKDEyMSk7aWYobD09PSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHIvIilyZXR1cm4gUCgxMjIpLCEwO2hbImd0bS5lbGVtZW50VXJsIl09bDtoWyJndG0uZm9ybUNhbmNlbGVkIl09YzthLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsJiYoaFsiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdPWEuZ2V0QXR0cmlidXRlKCJuYW1lIikpO2UmJihoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnQiXT1lLGhbImd0bS5mb3JtU3VibWl0RWxlbWVudFRleHQiXT1lLnZhbHVlKTtpZihkJiZmKXtpZighc0UoaCxqRShiLApmKSxmKSlyZXR1cm4hMX1lbHNlIEZ5KDEsImd0bS5mb3JtU3VibWl0Iiksc0UoaCxmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH0sQ0o9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPWZ1bmN0aW9uKGMpe3JldHVybiBDYihhLGZ1bmN0aW9uKGQpe3JldHVybiBkLmZvcm09PT1jfSl9O3JldHVybntzdG9yZTpmdW5jdGlvbihjLGQpe3ZhciBlPWIoYyk7ZT9lLmJ1dHRvbj1kOmEucHVzaCh7Zm9ybTpjLGJ1dHRvbjpkfSl9LGdldDpmdW5jdGlvbihjKXt2YXIgZD1iKGMpO2lmKGQpcmV0dXJuIGQuYnV0dG9ufX19LERKPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiBiJiZiIT09Il9zZWxmIiYmYiE9PSJfcGFyZW50IiYmYiE9PSJfdG9wIj8hMTohMH0sRUo9ZnVuY3Rpb24oKXt2YXIgYT1DSigpLGI9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPWhkKGQsWyJidXR0b24iLAoiaW5wdXQiXSwxMDApO2lmKGUmJihlLnR5cGU9PT0ic3VibWl0Inx8ZS50eXBlPT09ImltYWdlIikmJmUubmFtZSYmZWQoZSwidmFsdWUiKSl7dmFyIGY9aUcoZSk7ZiYmYS5zdG9yZShmLGUpfX19LCExKTskYyhCLCJzdWJtaXQiLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKCFkKXJldHVybiBjLnJldHVyblZhbHVlO3ZhciBlPWMuZGVmYXVsdFByZXZlbnRlZHx8Yy5yZXR1cm5WYWx1ZT09PSExLGY9REooZCkmJiFlLGc9YS5nZXQoZCksaD0hMDtpZihCSihkLGZ1bmN0aW9uKCl7aWYoaCl7dmFyIGw9bnVsbCxuPXt9O2cmJihsPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxsLnR5cGU9ImhpZGRlbiIsbC5uYW1lPWcubmFtZSxsLnZhbHVlPWcudmFsdWUsZC5hcHBlbmRDaGlsZChsKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWFjdGlvbiIpJiYobi5hY3Rpb249ZC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpLHhjKGQsZy5nZXRBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtZW5jdHlwZSIpJiYKKG4uZW5jdHlwZT1kLmdldEF0dHJpYnV0ZSgiZW5jdHlwZSIpLGQuc2V0QXR0cmlidXRlKCJlbmN0eXBlIixnLmdldEF0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtbWV0aG9kIikmJihuLm1ldGhvZD1kLmdldEF0dHJpYnV0ZSgibWV0aG9kIiksZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsZy5nZXRBdHRyaWJ1dGUoImZvcm1tZXRob2QiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtdmFsaWRhdGUiKSYmKG4udmFsaWRhdGU9ZC5nZXRBdHRyaWJ1dGUoInZhbGlkYXRlIiksZC5zZXRBdHRyaWJ1dGUoInZhbGlkYXRlIixnLmdldEF0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXRhcmdldCIpJiYobi50YXJnZXQ9ZC5nZXRBdHRyaWJ1dGUoInRhcmdldCIpLGQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLGcuZ2V0QXR0cmlidXRlKCJmb3JtdGFyZ2V0IikpKSk7Yi5jYWxsKGQpO2wmJihkLnJlbW92ZUNoaWxkKGwpLG4uaGFzT3duUHJvcGVydHkoImFjdGlvbiIpJiYKeGMoZCxuLmFjdGlvbiksbi5oYXNPd25Qcm9wZXJ0eSgiZW5jdHlwZSIpJiZkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsbi5lbmN0eXBlKSxuLmhhc093blByb3BlcnR5KCJtZXRob2QiKSYmZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsbi5tZXRob2QpLG4uaGFzT3duUHJvcGVydHkoInZhbGlkYXRlIikmJmQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsbi52YWxpZGF0ZSksbi5oYXNPd25Qcm9wZXJ0eSgidGFyZ2V0IikmJmQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLG4udGFyZ2V0KSl9fSxlLGYsZykpaD0hMTtlbHNlIHJldHVybiBlfHwoYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITEpLCExO3JldHVybiBjLnJldHVyblZhbHVlfSwhMSk7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXt2YXIgYz10aGlzLGQ9ITA7QkooYyxmdW5jdGlvbigpe2QmJmIuY2FsbChjKX0sITEsREooYykpJiYoYi5jYWxsKGMpLGQ9CiExKX19OwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD1hJiZhLmdldCgid2FpdEZvclRhZ3MiKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLHt3YWl0Rm9yVGFnczohIWR9KX1dKTt2YXIgZT1hJiZhLmdldCgiY2hlY2tWYWxpZGF0aW9uIiksZj1aRihiKTtpZihkKXt2YXIgZz1OdW1iZXIoYS5nZXQoIndhaXRGb3JUYWdzVGltZW91dCIpKTtnPjAmJmlzRmluaXRlKGcpfHwoZz0yRTMpO3ZhciBoPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLm1heChnLG4pfTtkRygiZnNsIiwibXd0IixoLDApO2V8fGRHKCJmc2wiLCJudi5td3QiLGgsMCl9dmFyIGw9ZnVuY3Rpb24obil7bi5wdXNoKGYpOwpyZXR1cm4gbn07ZEcoImZzbCIsImlkcyIsbCxbXSk7ZXx8ZEcoImZzbCIsIm52LmlkcyIsbCxbXSk7JEYoImZzbCIsImluaXQiLCExKXx8KEVKKCksYUcoImZzbCIsImluaXQiLCEwKSk7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CnZhciBNSj1mdW5jdGlvbihhLGIsYyxkKXtjPWM9PT12b2lkIDA/e306YztkPWQ9PT12b2lkIDA/W106ZDt2YXIgZT0iIitiO2lmKGNbZV0pY1tlXS5wdXNoKGEpO2Vsc2V7dmFyIGY9W2FdO2NbZV09Zjt2YXIgZz1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiKSxoPS0xO2QucHVzaChmdW5jdGlvbihsKXtoPj0wJiZBLmNsZWFyVGltZW91dChoKTtiP2g9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhsLGYpO2g9LTF9LGIpOmcobCxmKX0pfX0sTEo9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5ocmVmLGM9e3NvdXJjZTpudWxsLHN0YXRlOkEuaGlzdG9yeS5zdGF0ZXx8bnVsbCx1cmw6T2ooUmooYikpLGtiOkxqKFJqKGIpLCJmcmFnbWVudCIpfTtyZXR1cm4gZnVuY3Rpb24oZCxlKXt2YXIgZj1jLGc9e307Z1tmLnNvdXJjZV09ITA7Z1tkLnNvdXJjZV09ITA7aWYoIWcucG9wc3RhdGV8fCFnLmhhc2hjaGFuZ2V8fGYua2IhPT1kLmtiKXt2YXIgaD17ZXZlbnQ6YSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiOmQuc291cmNlLAoiZ3RtLm9sZFVybEZyYWdtZW50IjpjLmtiLCJndG0ubmV3VXJsRnJhZ21lbnQiOmQua2IsImd0bS5vbGRIaXN0b3J5U3RhdGUiOmMuc3RhdGUsImd0bS5uZXdIaXN0b3J5U3RhdGUiOmQuc3RhdGUsImd0bS5vbGRVcmwiOmMudXJsLCJndG0ubmV3VXJsIjpkLnVybH07ZSYmKGhbImd0bS50cmlnZ2VycyJdPWUuam9pbigiLCIpKTtjPWQ7dUUoaCl9fX0sTko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLmhpc3RvcnksZD1jW2FdO2lmKHliKGQpKXRyeXtjW2FdPWZ1bmN0aW9uKGUsZixnKXtkLmFwcGx5KGMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBoPUEubG9jYXRpb24uaHJlZjtiKHtzb3VyY2U6YSxzdGF0ZTplLHVybDpPaihSaihoKSksa2I6TGooUmooaCksImZyYWdtZW50Iil9KX19Y2F0Y2goZSl7fX0sUEo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJwb3BzdGF0ZSIsc3RhdGU6Yi5zdGF0ZSwKdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LFFKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJoYXNoY2hhbmdlIixzdGF0ZTpudWxsLHVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxPSj1mdW5jdGlvbihhKXt2YXIgYixjO3JldHVybigoYj1hLnRhcmdldCk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhyZWYpfHxBLmxvY2F0aW9uLmhyZWZ9OwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiKX1dKTt2YXIgZD1hJiZhLmdldCgidXNlVjJFdmVudE5hbWUiKT8iZWhsIjoiaGwiLGU9TnVtYmVyKGEmJmEuZ2V0KCJpbnRlcnZhbCIpKTtlPjAmJmlzRmluaXRlKGUpfHwoZT0wKTt2YXIgZjtpZighJEYoZCwiaW5pdCIsITEpKXt2YXIgZz17fSxoPVtdLGw7ZD09PSJlaGwiPyhsPWZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8aC5sZW5ndGg7cSsrKWhbcV0ocCl9LGY9WkYoYiksTUooZixlLGcsaCksYUcoZCwicmVnIixmdW5jdGlvbihwLHEpe01KKHAscSxnLGgpfSkpOmw9TEooImd0bS5oaXN0b3J5Q2hhbmdlIik7ClFKKGwpO1BKKGwpO05KKCJwdXNoU3RhdGUiLGwpO05KKCJyZXBsYWNlU3RhdGUiLGwpO2FHKGQsImluaXQiLCEwKX1lbHNlIGlmKGQ9PT0iZWhsIil7dmFyIG49JEYoZCwicmVnIik7biYmKGY9WkYoYiksbihmLGUpKX1kPT09ImhsIiYmKGY9dm9pZCAwKTtyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwpmdW5jdGlvbiBXSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGd9Z0suUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiO2Z1bmN0aW9uIGhLKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEubGltaXQmJmEuZ2s+PWEubGltaXQpYS5haSYmQS5jbGVhckludGVydmFsKGEuYWkpO2Vsc2V7YS5naysrO3ZhciBiPU5iKCk7dUUoe2V2ZW50OmEuZXZlbnROYW1lLCJndG0udGltZXJJZCI6YS5haSwiZ3RtLnRpbWVyRXZlbnROdW1iZXIiOmEuZ2ssImd0bS50aW1lckludGVydmFsIjphLmludGVydmFsLCJndG0udGltZXJMaW1pdCI6YS5saW1pdCwiZ3RtLnRpbWVyU3RhcnRUaW1lIjphLk1vLCJndG0udGltZXJDdXJyZW50VGltZSI6YiwiZ3RtLnRpbWVyRWxhcHNlZFRpbWUiOmItYS5NbywiZ3RtLnRyaWdnZXJzIjphLkx0fSl9fX0KZnVuY3Rpb24gaUsoYSxiKXsKcmV0dXJuIGZ9aUsuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25UaW1lciI7dmFyIEFjPUFhKFsiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSJdKSxrSz1bInd3dy55b3V0dWJlLmNvbSIsInd3dy55b3V0dWJlLW5vY29va2llLmNvbSJdLGxLOwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGV9dksuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiO2Z1bmN0aW9uIHdLKGEsYil7aWYoIWxoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPWI/VGQoYik6e307Yy5yZWdleENhY2hlPWFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pO3JldHVybiBHaChhLGMpfXdLLlA9ImludGVybmFsLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iO2Z1bmN0aW9uIHhLKGEpe3ZhciBiPSExO3JldHVybiBifXhLLlA9ImludGVybmFsLmV2YWx1YXRlTWF0Y2hpbmdSdWxlcyI7dmFyIHlLPW5ldyBNYXAoW1siYXciLDRdXSk7ZnVuY3Rpb24geksoYSl7dmFyIGI9dnJbYV0sYz15Sy5nZXQoYSk7cmV0dXJuIGM/KHdxKGIsYyl8fFtdKS5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiBkLm09PT0iMCJ8fGQubT09PXZvaWQgMH0pOiExfQpmdW5jdGlvbiBBSyhhLGIpe2lmKE0oNDk1KSl7Zm9yKHZhciBjPW5ldyBNYXAsZD1tKHlLKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9bShlLnZhbHVlKSxnPWYubmV4dCgpLnZhbHVlLGg9Zi5uZXh0KCkudmFsdWUsbD1nLG49YVtsXSxwPUFycmF5LmlzQXJyYXkobik/blswXTpuO2lmKHAhPT12b2lkIDApe3ZhciBxPXt9LHI9KHEuaz1wLHEuaT1TdHJpbmcoTWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMykpLHEuYj1bXSxxLm09IjEiLHEpLHQ9YXEocixoKTt0JiYoeksobCl8fGMuc2V0KGwsdCkpfX1pZihjLnNpemUpe3ZhciB1LHY9W10seD1iLnBhdGh8fCIvIjt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJwIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh4KSk7Yi5BciYmdi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiY2UiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiLkFyKSkpO3ZhciB5PWIuZG9tYWluJiZiLmRvbWFpbiE9PSJhdXRvIj8KYi5kb21haW46ImF1dG86IitBLmxvY2F0aW9uLmhvc3RuYW1lO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoImQiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKTtmb3IodmFyIHo9bShjKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl7dmFyIEQ9bShDLnZhbHVlKSxJPUQubmV4dCgpLnZhbHVlLEc9RC5uZXh0KCkudmFsdWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEcpKX11PSJfL3NldF9jb29raWU/Iit2LmpvaW4oIiYiKTt2YXIgTixTPUUoNTgpO049RWYodSxTKTt2YXIgVz1YaigpKyIvIitOO21kKFcpfX19O2Z1bmN0aW9uIEJLKGEpe3JldHVybiJDV1ZXZWJWaWV3TWVzc2FnZSJpbiBhfWZ1bmN0aW9uIENLKGEpe3ZhciBiPUEsYz1iLndlYmtpdDtkZWxldGUgYi53ZWJraXQ7YShiLndlYmtpdCk7Yi53ZWJraXQ9Y31mdW5jdGlvbiBESyhhLGIpe3ZhciBjPXthY3Rpb246ImdjbF9zZXR1cCJ9O2lmKEJLKGEubWVzc2FnZUhhbmRsZXJzKSlyZXR1cm4gYS5tZXNzYWdlSGFuZGxlcnMuQ1dWV2ViVmlld01lc3NhZ2UucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6YixwYXlsb2FkOmN9KSwhMDt2YXIgZD1hLm1lc3NhZ2VIYW5kbGVyc1tiXTtyZXR1cm4gZD8oZC5wb3N0TWVzc2FnZShjKSwhMCk6ITF9O3ZhciBFSz17fSxGSz0oRUsuYXdiPXtub3RGb3VuZDoxNzh9LEVLLnl0Yj17bm90Rm91bmQ6MTk0fSxFSyk7ZnVuY3Rpb24gR0soYSl7dmFyIGIsYz0oYj1GS1thXSk9PW51bGw/dm9pZCAwOmIubm90Rm91bmQ7YyYmUChjKX0KZnVuY3Rpb24gSEsoYSl7aWYoIW5tKGptLmJhLmpuKSYmIndlYmtpdCJpbiBBJiZBLndlYmtpdC5tZXNzYWdlSGFuZGxlcnMpe3ZhciBiPWZ1bmN0aW9uKCl7dHJ5e0NLKGZ1bmN0aW9uKGMpe2lmKGMpe3ZhciBkO2Q9QksoYy5tZXNzYWdlSGFuZGxlcnMpfHwiYXdiImluIGMubWVzc2FnZUhhbmRsZXJzP3tjb21tYW5kOiJhd2IiLHNvdXJjZTo1fTooQksoYy5tZXNzYWdlSGFuZGxlcnMpfHwieXRiImluIGMubWVzc2FnZUhhbmRsZXJzKSYmTSg0OTkpP3tjb21tYW5kOiJ5dGIiLHNvdXJjZTo4fTp2b2lkIDA7ZCYmKG1tKGptLmJhLmpuLGZ1bmN0aW9uKGUpe3ZhciBmPWQuc291cmNlO2UuZ2NsaWQmJmxzKCJnY2xfYXciLGUuZ2NsaWQsZixhKTtlLndicmFpZCYmbHMoImdjbF9nYiIsZS53YnJhaWQsZixhKX0pLERLKGMsZC5jb21tYW5kKXx8R0soZC5jb21tYW5kKSl9fSl9Y2F0Y2goYyl7UCgxOTMpfX07SGwoZnVuY3Rpb24oKXtCcihmcCk/YigpOklsKGIsZnApfSxmcCl9fTt2YXIgSUs9WyJodHRwczovL3d3dy5nb29nbGUuY29tIiwiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCJodHRwczovL20ueW91dHViZS5jb20iXTtmdW5jdGlvbiBKSyhhKXtyZXR1cm4gYS5kYXRhLmFjdGlvbiE9PSJnY2xfdHJhbnNmZXIiPyhQKDE3MyksITApOmEuZGF0YS5nYWRTb3VyY2U/YS5kYXRhLmdjbGlkPyExOihQKDE4MSksITApOihQKDE4MCksITApfQpmdW5jdGlvbiBLSyhhLGIpe2lmKCFhfHxNKGEpKXtpZihubShqbS5iYS5WZSkpcmV0dXJuIFAoMTc2KSxqbS5iYS5WZTtpZihubShqbS5iYS5tbikpcmV0dXJuIFAoMTcwKSxqbS5iYS5WZTt2YXIgYz1GcCgpO2lmKCFjKVAoMTcxKTtlbHNlIGlmKGMub3BlbmVyKXt2YXIgZD1mdW5jdGlvbihnKXtpZighSUsuaW5jbHVkZXMoZy5vcmlnaW4pKVAoMTcyKTtlbHNlIGlmKCFKSyhnKSl7dmFyIGg9e2dhZFNvdXJjZTpnLmRhdGEuZ2FkU291cmNlfTtoLmdjbGlkPWcuZGF0YS5nY2xpZDttbShqbS5iYS5WZSxoKTtiJiZnLmRhdGEuZ2NsaWQmJmxzKCJnY2xfYXciLFN0cmluZyhnLmRhdGEuZ2NsaWQpLDYsYik7dmFyIGw7KGw9Zy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24pPT1udWxsfHxsLmNhbGwoZyk7bnQoYywibWVzc2FnZSIsZCl9fTtpZihtdChjLCJtZXNzYWdlIixkKSl7bW0oam0uYmEubW4sITApO2Zvcih2YXIgZT1tKElLKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSljLm9wZW5lci5wb3N0TWVzc2FnZSh7YWN0aW9uOiJnY2xfc2V0dXAifSwKZi52YWx1ZSk7UCgxNzQpO3JldHVybiBqbS5iYS5WZX1QKDE3NSl9fX07CnZhciBMSz1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4Ok8oYS5NLEYuRC5GZCl8fE8oYS5NLEYuRC5uYiksZG9tYWluOk8oYS5NLEYuRC5MYikscGQ6TyhhLk0sRi5ELkNiKSxmbGFnczpPKGEuTSxGLkQuVGIpfTthLk0uaXNHdG1FdmVudCYmKGIucGF0aD1PKGEuTSxGLkQudmMpKTtyZXR1cm4gYn0sTUs9ZnVuY3Rpb24oYSxiKXtpZighUShhLEguSi5XZSkpe3ZhciBjPUtLKDExOSk7aWYoYyl7dmFyIGQ9bm0oYyksZT1mdW5jdGlvbihnKXtWKGEsSC5KLldlLCEwKTt2YXIgaD1SKGEsRi5ELnpmKSxsPVIoYSxGLkQuQWYpO1UoYSxGLkQuemYsU3RyaW5nKGcuZ2FkU291cmNlKSk7VShhLEYuRC5BZiw2KTtWKGEsSC5KLnNhKTtWKGEsSC5KLnVnKTtVKGEsRi5ELnNhKTtiKCk7VShhLEYuRC56ZixoKTtVKGEsRi5ELkFmLGwpO1YoYSxILkouV2UsITEpfTtpZihkKWUoZCk7ZWxzZXt2YXIgZj12b2lkIDA7Zj1wbShjLGZ1bmN0aW9uKGcsaCl7ZShoKTtxbShjLGYpfSl9fX19LFBLPWZ1bmN0aW9uKGEpe3ZhciBiLApjLGQsZTtiPWEuVG47Yz1hLm1vO2Q9YS5RbztlPWEuVW47aWYoYil7aWYoZHIoY1tGLkQuWGZdLCEhY1tGLkQuQWFdKSl7aWYoV2ooKSYmQnIoQXIoKSkpe2Zvcih2YXIgZj1VcSghMCksZz17fSxoPW0oT2JqZWN0LmtleXModnIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPXZyW25dLHE9ZltwXTtpZihxKXt2YXIgcj0kcChxLDQpO3ImJihvcyhNYXRoLm1pbihOcihyKSxOYigpKXx8TmIoKSxwLDQpfHwoZ1tuXT1xKSl9fWZvcih2YXIgdD17fSx1PW0oT2JqZWN0LmtleXMoZykpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PXUubmV4dCgpKXt2YXIgeD12LnZhbHVlLHk9Z1t4XTtpZih5IT09dm9pZCAwKXt2YXIgej0kcCh5LDQpO3omJnoubT09PSIxIiYmKHRbeF09ei5rKX19QUsodCxlKX1wcyhlKTt0cyhlKTtRdihlKX1pZihPcCgpIT09Mil7Z3MoZSk7aXMoZSk7aWYoWWYoMTUpKXt2YXIgQz1lLEQ9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTsKRC5sZW5ndGh8fChEPWRzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTtpZihELmxlbmd0aCl7Qz1DfHx7fTt2YXIgST1EWzBdO0kudmFsdWUmJm1zKCJnY2xfZGMiLFt7dmVyc2lvbjoiIixnY2xpZDpJLnZhbHVlLHRpbWVzdGFtcDpOYigpLHFhOkkucWF9XSxDKX19SEsoZSk7S0sodm9pZCAwLGUpfWVsc2UgZ3MoZSk7aWYoV2ooKSYmQnIoQXIoKSkpe3ZhciBHPWZzKCk7QUsoRyxlKX14cyhxcyxlKTt5cyhlKX1jW0YuRC5BYV0mJih2cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdKSx1cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSx3cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSxSdihHdihlLnByZWZpeCksY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSxSdigiRlBBVSIsY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSk7ZCYmQXMoTkspO0NzKE9LKX0scXM9WyJhdyIsImRjIiwKImdiIl0sT0s9WyJhdyIsImRjIiwiZ2IiLCJhZyJdLE5LPVsiYXciLCJkYyIsImdiIiwiYWciLCJnYWRfc291cmNlIl07CnZhciBRSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkdhKSxjPVEoYSxILkouc24pLGQ9TSg0NDMpJiZjP1R2KGIpOlV2KGIpLlNoLGU9dm9pZCAwO00oNTcwKSYmYyYmKGU9U3YoYix7WGg6ITB9KS5payk7dmFyIGY7YTp7aWYoSWYoNDcpJiZYbyhmcCkpe3ZhciBnPWRJKGEsImNjZF9lbmFibGVfY20iLCExKSxoPVEoYSxILkouWWEpO1YoYSxILkouYWosITApO1YoYSxILkouZmQsITApO2lmKGh3KGgpKXtWKGEsSC5KLkloLCEwKTt2YXIgbD1kfHxBdigpLG49e30scD17ZXZlbnRNZXRhZGF0YToobltILkouRGNdPVguVi5GYixuW0guSi5ZYV09aCxuW0guSi56al09bCxuW0guSi5mZF09ITAsbltILkouYWpdPSEwLG5bSC5KLkloXT0hMCxuW0guSi5YbV09ZyYmSWYoNDcpLG4pLG5vR3RtRXZlbnQ6ITB9LHE9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLmV2ZW50TmFtZSxhLk0uRWEpO21EKHEsYS5NLmV2ZW50SWQscCk7ZyYmUShhLEguSi53ZCl8fFYoYSxILkouWWEpO2Y9bDsKYnJlYWsgYX19Zj12b2lkIDB9dmFyIHI9ZHx8ZjtpZihyfHxlKXt2YXIgdCx1O3Q9UihhLEYuRC5QYSk7dT1Lei5nai5icDt2YXIgdj1SKGEsRi5ELldjKTshdCYmdiYmKHQ9dltGLkQuUGFdLHU9S3ouZ2oudXEpO3R8fCh0PUF2KFIoYSxGLkQuR2QpKSxzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLFQuVy5GaCksdT1Lei5nai5WcSk7VShhLEYuRC5QYSx0KTtVKGEsRi5ELmRtLHUpO3ImJlUoYSxGLkQueGMscik7ZSYmVShhLCJfJmVjc2lkMiIsZSk7VihhLEguSi5saiwhMCl9fTsKdmFyIFJLPWZ1bmN0aW9uKGEpe1EoYSxILkoueW4pfHxWKGEsSC5KLkphLCExKX0sU0s9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz1YbyhmcCksZD1RKGEsSC5KLnNhKSxlPVIoYSxGLkQuR2QpLGY9UShhLEguSi5wbik7c3dpdGNoKGIpe2Nhc2UgWC5WLnhhOiFmJiZlJiZSSyhhKTthLmV2ZW50TmFtZT09PUYuRC53YSYmVihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6aWYoIWN8fGR8fCFmJiZlKWEuaXNBYm9ydGVkPSEwO2JyZWFrO2Nhc2UgWC5WLnViOmN8fChhLmlzQWJvcnRlZD0hMCk7IWYmJmV8fFJLKGEpO1EoYSxILkoud2QpfHwoYS5pc0Fib3J0ZWQ9ITApO2EuZXZlbnROYW1lIT09Ri5ELndhfHxPKGEuTSxGLkQuQ2wpIT09ITEmJk8oYS5NLEYuRC5UZCkhPT0hMXx8VihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuS2E6YS5ldmVudE5hbWUhPT1GLkQuc2MmJlEoYSxILkouUGMpJiYoYS5pc0Fib3J0ZWQ9ITApLGEudGFyZ2V0Lmlkc1tkQ1sxXV0mJgpPKGEuTSxGLkQuaWgpIT09ITAmJihhLmlzQWJvcnRlZD0hMCl9fTt2YXIgVEs9ZnVuY3Rpb24oYSl7dmFyIGIsYz1NKDU3Nik7aWYoUShhLEguSi5zbikpc3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi5GYjppZighKGEuZXZlbnROYW1lIT09Ri5ELndhfHxjJiZodyhRKGEsSC5KLllhKSkpKWJyZWFrO2I9OTc7YS5ldmVudE5hbWU9PT1GLkQud2EmJkd1KFQuVy5Payk7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLk9iOmlmKGEuZXZlbnROYW1lPT09Ri5ELndhKWJyZWFrO2I9OTg7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLnhhOmI9OTl9IVEoYSxILkouSmEpJiZiJiZQKGIpO1EoYSxILkouSmEpPT09ITAmJihhLmlzQWJvcnRlZD0hMCl9Owp2YXIgVUs9ZnVuY3Rpb24oYSl7aWYoTSg1NjkpJiZXaigpJiZRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgYj1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxjPW5ldyBVaW50OEFycmF5KFtiJjI1NSxiPj44JjI1NV0pLGQsZT15bSgpfHwiWFgiLGY9em0oKXx8IjAwIjtkPW5ldyBVaW50OEFycmF5KFtlLmNoYXJDb2RlQXQoMCksZS5jaGFyQ29kZUF0KDEpLGYuY2hhckNvZGVBdCgwKSxmLmNoYXJDb2RlQXQoMSldKTt2YXIgZz1uZXcgVWludDhBcnJheSg3KSxoO2lmKChoPUEuY3J5cHRvKT09bnVsbHx8IWguZ2V0UmFuZG9tVmFsdWVzKGcpKWZvcih2YXIgbD0wO2w8NztsKyspZ1tsXT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU2KTt2YXIgbj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhjKSx3KGQpLHcoZykpKSxwO3RyeXtwPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhuKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLAoiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWNhdGNoKHEpe3A9IiJ9VShhLEYuRC5FaSxwKX19O2Z1bmN0aW9uIFZLKCl7cmV0dXJuIE10KDcpJiZNdCg5KSYmTXQoMTApfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO3JldHVybiBifUlPLlA9ImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiO2Z1bmN0aW9uIEpPKGEpe3ZhciBiPXt9O3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBjfVZPLlA9ImludGVybmFsLmdldEVsZW1lbnRBdHRyaWJ1dGUiO2Z1bmN0aW9uIFdPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9V08uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudEJ5SWQiO2Z1bmN0aW9uIFhPKGEpe3ZhciBiPSIiO3JldHVybiBifVhPLlA9ImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiO2Z1bmN0aW9uIFlPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9WU8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFBhcmVudCI7ZnVuY3Rpb24gWk8oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1aTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJldmlvdXNTaWJsaW5nIjtmdW5jdGlvbiAkTyhhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7cmV0dXJuIGJ9YVAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZhbHVlIjtmdW5jdGlvbiBiUChhKXt2YXIgYj0wO3JldHVybiBifWJQLlA9ImludGVybmFsLmdldEVsZW1lbnRWaXNpYmlsaXR5UmF0aW8iO2Z1bmN0aW9uIGNQKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Y1AuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudHNCeUNzc1NlbGVjdG9yIjsKZnVuY3Rpb24gZFAoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9ldmVudF9kYXRhIixhKTt2YXIgYzthOnt2YXIgZD1hLGU9WEYodGhpcykub3JpZ2luYWxFdmVudERhdGE7aWYoZSl7Zm9yKHZhciBmPWUsZz17fSxoPXt9LGw9e30sbj1bXSxwPWQuc3BsaXQoIlxcXFwiKSxxPTA7cTxwLmxlbmd0aDtxKyspe2Zvcih2YXIgcj1wW3FdLnNwbGl0KCJcXC4iKSx0PTA7dDxyLmxlbmd0aDt0Kyspe2Zvcih2YXIgdT1yW3RdLnNwbGl0KCIuIiksdj0wO3Y8dS5sZW5ndGg7disrKW4ucHVzaCh1W3ZdKSx2IT09dS5sZW5ndGgtMSYmbi5wdXNoKGwpO3QhPT1yLmxlbmd0aC0xJiZuLnB1c2goaCl9cSE9PXAubGVuZ3RoLTEmJm4ucHVzaChnKX1mb3IodmFyIHg9W10seT0iIix6PW0obiksQz16Lm5leHQoKTshQy5kb25lO0M9CnoubmV4dCgpKXt2YXIgRD1DLnZhbHVlO0Q9PT1sPyh4LnB1c2goeSkseT0iIik6eT1EPT09Zz95KyJcXCI6RD09PWg/eSsiLiI6eStEfXkmJngucHVzaCh5KTtmb3IodmFyIEk9bSh4KSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7aWYoZj09bnVsbCl7Yz12b2lkIDA7YnJlYWsgYX1mPWZbRy52YWx1ZV19Yz1mfWVsc2UgYz12b2lkIDB9Yj1VZChjLHRoaXMuVCwxKTtyZXR1cm4gYn1kUC5QPSJpbnRlcm5hbC5nZXRFdmVudERhdGEiO2Z1bmN0aW9uIGVQKGEpe3ZhciBiPW51bGw7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9kb21fZWxlbWVudHMiLCJjc3MiLGEpO3RyeXt2YXIgYz1CLnF1ZXJ5U2VsZWN0b3IoYSk7YyYmKGI9bmV3IFBkKGMpKX1jYXRjaChkKXtyZXR1cm4gbnVsbH1yZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO3JldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtyZXR1cm4gVWQoYyl9aVAuUD0iaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iO2Z1bmN0aW9uIGpQKCl7dmFyIGE9bmV3IGtiO2lmKGFyZ3VtZW50cy5sZW5ndGghPT0wKXRocm93IEsodGhpcy5nZXROYW1lKCksW10sYXJndW1lbnRzKTt2YXIgYj1WTSgpO2IhPT12b2lkIDAmJmEuc2V0KEYuRC5rZyxifHwiZXJyb3IiKTt2YXIgYz1MdCgpO2MmJmEuc2V0KEYuRC5LZSxjKTt2YXIgZD1LdCgpO2QmJmEuc2V0KEYuRC5PZSxkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmYS5zZXQoRi5ELnVoLGUpO3ZhciBmPWtGLkg7ZiYmYS5zZXQoRi5ELnRoLGYpO3JldHVybiBhfWpQLlA9ImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIjtmdW5jdGlvbiBrUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPSRIKGEpfHx7fTtjPVVkKGRbYl0sdGhpcy5UKTtyZXR1cm4gY31rUC5QPSJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIGxQKGEsYil7dmFyIGM7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7cmV0dXJuIGF9clAuUD0iaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyI7ZnVuY3Rpb24gc1AoKXt2YXIgYT0iIjtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO3JldHVybiBhfXRQLlA9ImludGVybmFsLmdldFRvcFdpbmRvd1VybCI7ZnVuY3Rpb24gdVAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiLGEpO2I9TGooUmooQS5sb2NhdGlvbi5ocmVmKSxhKTtyZXR1cm4gYn11UC5wdWJsaWNOYW1lPSJnZXRVcmwiO2Z1bmN0aW9uIHZQKCl7TCh0aGlzLCJnZXRfdXNlcl9hZ2VudCIpO3JldHVybiBIYy51c2VyQWdlbnR9dlAucHVibGljTmFtZT0iZ2V0VXNlckFnZW50Ijt2UC5QPSJpbnRlcm5hbC5nZXRVc2VyQWdlbnQiO2Z1bmN0aW9uIHdQKCl7dmFyIGE7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O2Z1bmN0aW9uIHZSKGEpe3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiEhYyYmYy5jb252ZXJzaW9ufTtWKGEsSC5KLm1nLGIoWEsoYSkpKTtRKGEsSC5KLm5nKSYmVihhLEguSi5ZbSxiKFhLKGEsImZpcnN0X3Zpc2l0IikpKTtRKGEsSC5KLlRlKSYmVihhLEguSi5ibixiKFhLKGEsInNlc3Npb25fc3RhcnQiKSkpfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIFBSPVtGLkQucmEsRi5ELmthXSxRUj1bRi5ELnJhLEYuRC5rYSxGLkQubWFdOwpmdW5jdGlvbiBSUihhKXt2YXIgYixjPU0oNTA2KSYmIWRJKGEsImNjZF9nYV9hZHNfaWRzX29wdF9vdXQiLCExKSxkPSEhZEkoYSwiZ29vZ2xlX25nIiwhMSksZT1YbyhjP2Q/UVI6ZnA6UFIpLGY7Zj1kSShhLEYuRC5VZixPKGEuTSxGLkQuVWYpKXx8ISFkSShhLCJnb29nbGVfbmciLCExKTtiPXtoZjpjLEVzOmQsR286ZSxmZjpmLExnOiEhZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSxiaTpBbSgpLEdqOiFWSygpLEZzOmJrKFpLKGEpKSxEczohIVEoYSxILkouYmUpLEdzOiEhUShhLEguSi5UZSksdXM6ISFPKGEuTSxGLkQuTmwpLEtzOiEhUShhLEguSi5laikseGc6TyhhLk0sRi5ELlNjKSxucjpPKGEuTSxGLkQuU2Msdm9pZCAwLDQpLEhzOiEhUShhLEguSi5GYyl9O1YoYSxILkouY2osYi5mZik7VihhLEguSi5iaixTUihiKSk7Yi5oZiYmIWIuZmYmJmIuTGcmJlNSKGIpJiZVKGEsIl8maWJ0IiwiMSIpO1NSKGIpJiZiLkdvJiYoYi5oZj9iLnhnIT09ITF8fGIuTGc6MSkmJlYoYSwKSC5KLnJuLCEwKTtiLkVzJiYhYi5iaSYmVShhLEYuRC5MZSwxKTsoYi5oZj9iLnhnOmIubnIpPT09ITEmJlUoYSwiXyZuZ3MiLCIxIik7VihhLEguSi5oZCxUUihiKSYmKGIuR3N8fGIudXMpKTtWKGEsSC5KLnJnLFRSKGIpJiZiLktzJiYhYi5iaSl9ZnVuY3Rpb24gU1IoYSl7cmV0dXJuIGEuaGY/KGEuTGd8fGEuZmYpJiYhYS5iaSYmIWEuR2o6YS5mZiYmYS54ZyE9PSExJiYhYS5HaiYmIWEuYml9ZnVuY3Rpb24gVFIoYSl7aWYoYS5IcylyZXR1cm4hMTtpZihhLmhmKXtpZighYS5mZiYmIWEuTGcpcmV0dXJuITF9ZWxzZSBpZighYS5mZilyZXR1cm4hMTtyZXR1cm4gYS5Gc3x8YS5Ec3x8YS5Hanx8KGEuaGY/YS54Zz09PSExJiYhYS5MZzphLnhnPT09ITEpfHwhYS5Hbz8hMTohMH07dmFyIGJTPWZ1bmN0aW9uKGEpe3ZhciBiPSEwO2I9Yj09PXZvaWQgMD8hMTpiO2lmKE0oNDI1KSYmIShwbCgpfHxiJiZRKGEsSC5KLmRqKXx8YS5ldmVudE5hbWUhPT1GLkQud2F8fFEoYSxILkouRmMpKSl7dmFyIGM9e30sZD17fSxlPXtldmVudE1ldGFkYXRhOm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS5NLmV2ZW50TWV0YWRhdGEsKGNbSC5KLkZjXT0hMCxjKSxiP3t9OihkW0guSi5EY109WC5WLkthLGQpKSxub0d0bUV2ZW50OiEwfSxmPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsInN0cnVjdHVyZWRfZGF0YSIsYS5NLkVhKTttRChmLGEuTS5ldmVudElkLGUpfX07ZnVuY3Rpb24gaFMoYSl7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtyZXR1cm4gYn0KZnVuY3Rpb24galMoYSxiKXt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9ZnVuY3Rpb24gb1MoYSxiLGMpe3ZhciBkPXRoaXM7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O3JldHVybiBhfTtmdW5jdGlvbiB0UyhhKXt9dFMuUD0iaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiO2Z1bmN0aW9uIHVTKGEsYil7fXVTLnB1YmxpY05hbWU9ImluamVjdEhpZGRlbklmcmFtZSI7ZnVuY3Rpb24gdlMoYSxiLGMsZCxlKXt9dlMuUD0iaW50ZXJuYWwuaW5qZWN0SHRtbCI7dmFyIEFTPXtkbDoxLGlkOjF9OwpmdW5jdGlvbiBCUyhhLGIsYyxkKXt9QlMucHVibGljTmFtZT0iaW5qZWN0U2NyaXB0IjtmdW5jdGlvbiBDUygpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiNSJdO3JldHVybiBifUNTLlA9ImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIjtmdW5jdGlvbiBEUyhhKXt2YXIgYj0hMDtpZighbGgoYSkmJiFqaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEpO2lmKHpiKGMpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGMsInJlYWQiKTtlbHNlIGZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGUudmFsdWUsInJlYWQiKTtiPVhvKGMpO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO2E9SWYoNDcpO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpLGM9e307RWQoYi5NLkVhLGMpO2JJKGIsYyk7dmFyIGQ9e307Y0koYixkKTtkW0guSi5Cbl09ITA7dmFyIGU9e2V2ZW50TWV0YWRhdGE6ZH0sZj1iLk0uZXZlbnRJZCxnPXNDKGIudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYi5ldmVudE5hbWUsYyk7bUQoZyxmLGUpO31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307ZFtiXT1UZChjLHRoaXMuVCk7dmFyIGU9YSxmPVpIO2YuS3x8WUgoZik7Zi5zZXR0aW5nc1tlXT1kO316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO3JldHVybiBjfUlULlA9ImludGVybmFsLnRlc3RSZWdleCI7ZnVuY3Rpb24gSlQoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEtUKGEsYil7aWYoIWxoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIm51bWJlciJdLGFyZ3VtZW50cyk7c2IoYSxiKTt9S1QuUD0iaW50ZXJuYWwudHJhY2tVc2FnZSI7ZnVuY3Rpb24gTFQoYSxiKXt2YXIgYztyZXR1cm4gY31MVC5QPSJpbnRlcm5hbC51bnN1YnNjcmliZUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIE1UKGEpe31NVC5wdWJsaWNOYW1lPSJ1cGRhdGVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIE5UKGEpe3ZhciBiPSExO3JldHVybiBifU5ULlA9ImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIjt2YXIgT1Q9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGFpfSxRVD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjt2YXIgYz1QVC5IO2lmKGMuY29udGFpbnMoYSkpYj1jLmdldChhLHRoaXMpO2Vsc2V7dmFyIGQ7aWYoZD1jLkguaGFzT3duUHJvcGVydHkoYSkpe3ZhciBlPXRoaXMuVC54YigpO2lmKGUpe3ZhciBmPSExLGc9ZS5QYigpO2lmKGcpe0JoKGcpfHwoZj0hMCk7fWQ9Zn1lbHNlIGQ9ITB9aWYoZCl7dmFyIGg9Yy5ILmhhc093blByb3BlcnR5KGEpP2MuSFthXTp2b2lkIDA7Yj1ofWVsc2UgdGhyb3cgRXJyb3IoYSsiIGlzIG5vdCBhIHZhbGlkIEFQSSBuYW1lLiIpO31yZXR1cm4gYn19LFBUO2Z1bmN0aW9uIFJUKGEsYixjKXtQVHx8KFBUPW5ldyBPVCk7UFQuSC5hZGQoYSxiLGMpfWZ1bmN0aW9uIFNUKGEsYil7UFR8fChQVD1uZXcgT1QpO3ZhciBjPVBULkg7aWYoYy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKGMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aXRoIGFuIGV4aXN0aW5nIEFQSSBuYW1lOiAiK2ErIi4iKTtjLkhbYV09eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBUVChhLGIpe2Z1bmN0aW9uIGMoZCl7aWYoIWVoKGQpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGQsdGhpcy5ULDEpLnJiKCk7YShlKX1jLlA9ImludGVybmFsLiIrYjtyZXR1cm4gY307ZnVuY3Rpb24gVVQoKXt2YXIgYT1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBTVChjLlAsYyl9LGI9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgUlQoYy5wdWJsaWNOYW1lLGMpfTtiKFJGKTtiKFlGKTtiKFJHKTtiKFRHKTtiKFVHKTtiKGRIKTtiKGZIKTtiKGhJKTtiKFBTKCkpO2IoakkpO2IoT08pO2IoUE8pO2IobFApO2IobVApO2IoblApO2IodVApO2IodlApO2IoclMpO2IodVMpO2IoQlMpO2IoRFMpO2IoVFMpO2IoV1MpO2IoWlMpO2IoYVQpO2IoYlQpO2IoZFQpO2Iob1QpO2IoclQpO2IodVQpO2IoeVQpO2IoQ1QpO2IoSFQpO2IoTVQpO1JUKCJNYXRoIix6aCgpKTtSVCgiT2JqZWN0IixaaCk7UlQoIlRlc3RIZWxwZXIiLGNpKCkpO1JUKCJhc3NlcnRBcGkiLHdoKTtSVCgiYXNzZXJ0VGhhdCIseGgpO1JUKCJkZWNvZGVVcmkiLENoKTtSVCgiZGVjb2RlVXJpQ29tcG9uZW50IixEaCk7UlQoImVuY29kZVVyaSIsRWgpO1JUKCJlbmNvZGVVcmlDb21wb25lbnQiLEZoKTtSVCgiZmFpbCIsCkxoKTtSVCgiZ2VuZXJhdGVSYW5kb20iLE5oKTtSVCgiZ2V0VGltZXN0YW1wIixPaCk7UlQoImdldFRpbWVzdGFtcE1pbGxpcyIsT2gpO1JUKCJnZXRUeXBlIixQaCk7UlQoIm1ha2VJbnRlZ2VyIixSaCk7UlQoIm1ha2VOdW1iZXIiLFNoKTtSVCgibWFrZVN0cmluZyIsVGgpO1JUKCJtYWtlVGFibGVNYXAiLFVoKTtSVCgibW9jayIsWGgpO1JUKCJtb2NrT2JqZWN0IixZaCk7UlQoImZyb21CYXNlNjQiLEhPLCEoImF0b2IiaW4gQSkpO1JUKCJsb2NhbFN0b3JhZ2UiLFNTLCFSUygpKTtSVCgidG9CYXNlNjQiLEpULCEoImJ0b2EiaW4gQSkpO2EoUUYpO2EoVUYpO2EobkcpO2Eoc0cpO2EoSUcpO2EoUEcpO2EoU0cpO2EoVkcpO2EoV0cpO2EoWkcpO2EoJEcpO2EoYUgpO2EoYkgpO2EoY0gpO2EoZUgpO2EoZ0gpO2EoZ0kpO2EoaUkpO2Eoa0kpO2EobEkpO2EobUkpO2EobkkpO2Eob0kpO2EoZkopO2EobUopO2EodEopO2EodUopO2EoQUopO2EoRkopO2EoS0opO2EoUkopO2EoV0opO2EoZ0spOwphKGlLKTthKHZLKTthKHdLKTthKHhLKTthKEZPKTthKEdPKTthKElPKTthKEpPKTthKEtPKTthKExPKTthKE1PKTthKE5PKTthKFFPKTthKFJPKTthKFNPKTthKFRPKTthKFVPKTthKFZPKTthKFdPKTthKFhPKTthKFlPKTthKFpPKTthKCRPKTthKGFQKTthKGJQKTthKGNQKTthKGRQKTthKGVQKTthKGZQKTthKGdQKTthKGhQKTthKGlQKTthKGpQKTthKGtQKTthKG9QKTthKHBQKTthKHFQKTthKHJQKTthKHNQKTthKHRQKTthKHdQKTthKG9TKTthKHBTKTthKHRTKTthKHZTKTthKENTKTthKEVTKTthKEZTKTthKEdTKTthKEhTKTthKElTKTthKEpTKTthKEtTKTthKExTKTthKE1TKTthKE5TKTthKE9TKTthKFFTKTthKEdHKTthKFVTKTthKFZTKTthKFhTKTthKFlTKTthKCRTKTthKGNUKTthKGVUKTthKGZUKTthKGhUKTthKGlUKTthKGpUKTthKGxUKTthKG1UKTthKG5UKTthKHBUKTthKHFUKTthKHNUKTthKHRUKTthKHZUKTthKHdUKTthKHhUKTthKHpUKTthKEFUKTthKEJUKTthKERUKTsKYShFVCk7YShGVCk7YShHVCk7YShJVCk7YShLVCk7YShMVCk7YShOVCk7U1QoImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiLHNTKCkpO1NUKCJpbnRlcm5hbC5xdWlja0hhc2giLE1oKTthKFRUKE1GLCJ0YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSIpKSxhKFRUKFBGLCJ0YXNrU2V0VW5pdmVyc2FsUGFyYW1zIikpO2EoVFQoTEYsInRhc2tBZGRBZHNDbGlja0lkcyIpKTtQVHx8KFBUPW5ldyBPVCk7cmV0dXJuIFFUKCl9O3ZhciBKRjtmdW5jdGlvbiBWVCgpe0pGLnNkKGZ1bmN0aW9uKGEsYixjKXtsaigpO3ZhciBkPWpqO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPWQuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFfHwwO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFKys7dHJ5e3JldHVybiBhLmFwcGx5KGIsYyl9ZmluYWxseXtsaigpLGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRS0tfX0pfWZ1bmN0aW9uIFdUKGEpe2lmKGEmJmEubGVuZ3RoKWZvcih2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnJlcGxhY2UoL15fKi8sIiIpO2JbZF09WyJzYW5kYm94ZWRTY3JpcHRzIl19fQpmdW5jdGlvbiBYVChhKXtpZihhKXt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7R2IoYSxmdW5jdGlvbihjLGQpe2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdLnJlcGxhY2UoL15fKi8sIiIpO2JbZl09YltmXXx8W107YltmXS5wdXNoKGMpfX0pfX07ZnVuY3Rpb24gWlQoYSl7bUQocEMoImRldmVsb3Blcl9pZC4iK2EsITApLDAse30pfTtmdW5jdGlvbiAkVChhLGIpe3JldHVybiBFZChhLGJ8fG51bGwpfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoYSl9ZnVuY3Rpb24gYVUoYSl7WmMoYSx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBiVShhKXt2YXIgYj1bInZlaW50ZXJhY3RpdmUuY29tIiwidmUtaW50ZXJhY3RpdmUuY24iXTtpZighYSlyZXR1cm4hMTt2YXIgYz1MaihSaihhKSwiaG9zdCIpO2lmKCFjKXJldHVybiExO2Zvcih2YXIgZD0wO2ImJmQ8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdJiZiW2RdLnRvTG93ZXJDYXNlKCk7aWYoZSl7dmFyIGY9Yy5sZW5ndGgtZS5sZW5ndGg7Zj4wJiZlLmNoYXJBdCgwKSE9PSIuIiYmKGYtLSxlPSIuIitlKTtpZihmPj0wJiZjLmluZGV4T2YoZSxmKT09PWYpcmV0dXJuITB9fXJldHVybiExfQpmdW5jdGlvbiBjVShhLGIsYyl7Zm9yKHZhciBkPXt9LGU9ITEsZj0wO2EmJmY8YS5sZW5ndGg7ZisrKWFbZl0mJmFbZl0uaGFzT3duUHJvcGVydHkoYikmJmFbZl0uaGFzT3duUHJvcGVydHkoYykmJihkW2FbZl1bYl1dPWFbZl1bY10sZT0hMCk7cmV0dXJuIGU/ZDpudWxsfWZ1bmN0aW9uIGRVKGEsYil7dmFyIGM9e307aWYoYSlmb3IodmFyIGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1hW2RdKTtpZihiKXt2YXIgZT1jVShiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIpO2UmJihjPSRUKGUsYykpfXJldHVybiBjfWZ1bmN0aW9uIGVVKGEsYixjKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PWM/YjphfWZ1bmN0aW9uIGZVKGEsYixjKXtyZXR1cm4gVWMoYSxiLGMsdm9pZCAwKX1mdW5jdGlvbiBnVShhLGIpe0FbYV09Yn1mdW5jdGlvbiBoVShhLGIsYyl7dmFyIGQ9QTtiJiYoZFthXT09PXZvaWQgMHx8YyYmIWRbYV0pJiYoZFthXT1iKTtyZXR1cm4gZFthXX12YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKCgoKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPWI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuTz0iZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzPWI7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuTz0iZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyI7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd1dhaXRGb3JUYWdzLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yOwpyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsZil7aWYoIWMmJmYmJmYud2FpdEZvclRhZ3MpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbiB3YWl0Rm9yVGFncy4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9jb250YWluZXJfZGF0YT1bImdvb2dsZSJdLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5PPSJyZWFkX2NvbnRhaW5lcl9kYXRhIixaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhWyI1Il09ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5saXN0ZW5fZGF0YV9sYXllcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntldmVudE5hbWU6Y319KGZ1bmN0aW9uKGIpe1ouX19saXN0ZW5fZGF0YV9sYXllcj1iO1ouX19saXN0ZW5fZGF0YV9sYXllci5PPSJsaXN0ZW5fZGF0YV9sYXllciI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjUiXT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FjY2Vzc1R5cGUsZD1iLnZ0cF9hbGxvd2VkRXZlbnRzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoIXpiKGcpKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LAoiRXZlbnQgbmFtZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKCEoYz09PSJhbnkifHxjPT09InNwZWNpZmljIiYmZC5pbmRleE9mKGcpPj0wKSl0aHJvdyBlKGYse2V2ZW50TmFtZTpnfSwiUHJvaGliaXRlZCBsaXN0ZW4gb24gZGF0YSBsYXllciBldmVudC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntkYXRhU291cmNlOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1iO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLk89ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGFbIjUiXT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCwKZSl7aWYoZSE9PSJhdXRvIiYmZSE9PSJtYW51YWwiJiZlIT09ImNvZGUiKXRocm93IGMoZCx7fSwiVW5rbm93biB1c2VyIHByb3ZpZGVkIGRhdGEgc291cmNlLiIpO2lmKGIudnRwX2xpbWl0RGF0YVNvdXJjZXMpaWYoZSE9PSJhdXRvInx8Yi52dHBfYWxsb3dBdXRvRGF0YVNvdXJjZXMpe2lmKGU9PT0ibWFudWFsIiYmIWIudnRwX2FsbG93TWFudWFsRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIHZpYSBtYW51YWxseSBzcGVjaWZpZWQgQ1NTIHNlbGVjdG9ycyBpcyBub3QgYWxsb3dlZC4iKTtpZihlPT09ImNvZGUiJiYhYi52dHBfYWxsb3dDb2RlRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGZyb20gYW4gaW4tcGFnZSB2YXJpYWJsZSBpcyBub3QgYWxsb3dlZC4iKTt9ZWxzZSB0aHJvdyBjKGQse30sIkF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGlzIG5vdCBhbGxvd2VkLiIpOwp9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZ2V0X3VybD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3VybD1iO1ouX19nZXRfdXJsLk89ImdldF91cmwiO1ouX19nZXRfdXJsLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF91cmwucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfdXJsLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF91cmxbIjUiXT0hMTtaLl9fZ2V0X3VybFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmCmMucHVzaCgicXVlcnkiKSxiLnZ0cF9mcmFnbWVudCYmYy5wdXNoKCJmcmFnbWVudCIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc19jb25zZW50PVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXt2YXIgZT17Y29uc2VudFR5cGU6YyxyZWFkOiExLHdyaXRlOiExfTtzd2l0Y2goZCl7Y2FzZSAicmVhZCI6ZS5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjplLndyaXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgcmVxdWVzdCAiK2QpO31yZXR1cm4gZX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19jb25zZW50PWI7Wi5fX2FjY2Vzc19jb25zZW50Lk89ImFjY2Vzc19jb25zZW50IjtaLl9fYWNjZXNzX2NvbnNlbnQuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2NvbnNlbnQucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfY29uc2VudC5pc0luZnJhc3RydWN0dXJlPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNSJdPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPQpiLnZ0cF9jb25zZW50VHlwZXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPTA7ZzxjLmxlbmd0aDtnKyspe3ZhciBoPWNbZ10sbD1oLmNvbnNlbnRUeXBlO2gucmVhZCYmZS5wdXNoKGwpO2gud3JpdGUmJmYucHVzaChsKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKG4scCxxKXtpZighemIocCkpdGhyb3cgZChuLHt9LCJDb25zZW50IHR5cGUgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihxPT09InJlYWQiKXtpZihlLmluZGV4T2YocCk+LTEpcmV0dXJufWVsc2UgaWYocT09PSJ3cml0ZSIpe2lmKGYuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSB0aHJvdyBkKG4se30sIkFjY2VzcyB0eXBlIG11c3QgYmUgZWl0aGVyICdyZWFkJywgb3IgJ3dyaXRlJywgd2FzICIrcSk7dGhyb3cgZChuLHt9LCJQcm9oaWJpdGVkICIrcSsiIG9uIGNvbnNlbnQgdHlwZTogIitwKyIuIik7fSxhYTphfX0pfSgpOwoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZG9tX2VsZW1lbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57dHlwZTpjLHZhbHVlOmR9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kb21fZWxlbWVudHM9YjtaLl9fcmVhZF9kb21fZWxlbWVudHMuTz0icmVhZF9kb21fZWxlbWVudHMiO1ouX19yZWFkX2RvbV9lbGVtZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2RvbV9lbGVtZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI1Il09ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkRWxlbWVudElkc3x8Im5vbmUiLGQ9Yi52dHBfYWxsb3dlZENzc1NlbGVjdG9yc3x8Im5vbmUiLGU9Yi52dHBfZWxlbWVudElkc3x8W10sZj1iLnZ0cF9jc3NTZWxlY3RvcnN8fFtdLGc9CmIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGgsbCxuKXtzd2l0Y2gobCl7Y2FzZSAiaWQiOmlmKGM9PT0ibm9uZSIpYnJlYWs7aWYoYz09PSJhbnkifHxlLmluZGV4T2Yobik+LTEpcmV0dXJuO2JyZWFrO2Nhc2UgImNzcyI6aWYoZD09PSJub25lIilicmVhaztpZihkPT09ImFueSJ8fGYuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7ZGVmYXVsdDp0aHJvdyBnKGgse30sIlVua25vd24gc2VsZWN0b3IgdHlwZSAiK2wrIi4iKTt9dGhyb3cgZyhoLHt9LCJQcm9oaWJpdGVkIHNlbGVjdG9yIHZhbHVlICIrbisiIGZvciBzZWxlY3RvciB0eXBlICIrbCsiLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57bWF0Y2hDb21tb25CdXR0b25zOmMsY3NzU2VsZWN0b3I6ZH19KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzPWI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuTz0iZGV0ZWN0X2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLGUsZil7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPT0KImJvb2xlYW4iKXRocm93IGMoZCx7fSwibWF0Y2hDb21tb25CdXR0b25zIG11c3QgYmUgYSBib29sZWFuLiIpO2lmKGYhPT12b2lkIDAmJnR5cGVvZiBmIT09InN0cmluZyIpdGhyb3cgYyhkLHt9LCJjc3NTZWxlY3RvciBtdXN0IGJlIGEgc3RyaW5nLiIpO30sYWE6YX19KX0oKTsKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cz1iO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuTz0iZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LAphYTphfX0pfSgpOwpmdW5jdGlvbiBrVSgpe3ZhciBhPXt9LGI9e2RhdGFMYXllcjp0QSxjYWxsYmFjazpmdW5jdGlvbihjKXthLmhhc093blByb3BlcnR5KGMpJiZ5YihhW2NdKSYmYVtjXSgpO2RlbGV0ZSBhW2NdfSxib290c3RyYXA6MH07cmV0dXJuIGJ9CmZ1bmN0aW9uIGxVKCl7dmFyIGE9a1UoKTtvaihhKTtDaygpO2pBKCk7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO1FiKGIsWi5zZWN1cml0eUdyb3Vwcyk7dmFyIGM9eWsoemsoKSksZCxlPWM9PW51bGw/dm9pZCAwOihkPWMuY29udGV4dCk9PW51bGw/dm9pZCAwOmQuc291cmNlO0tsKGUsYz09bnVsbD92b2lkIDA6Yy5wYXJlbnQpO2UhPT0yJiZlIT09NCYmZSE9PTN8fFAoMTQyKTtyZXR1cm4gYX1mdW5jdGlvbiBtVSgpe3ZhciBhPUUoNjApO2lmKGEpZm9yKHZhciBiPWEuc3BsaXQoIi4iKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1UTDtkJiYoZS5IW2RdPSEwKX19CmZ1bmN0aW9uIG5VKCl7enAoKTtsaigpO2Zvcih2YXIgYT1kYXRhLnJlc291cmNlfHx7fSxiPWNBLGM9YS5tYWNyb3N8fFtdLGQ9MDtkPGMubGVuZ3RoO2QrKyliLm1hY3Jvcy5wdXNoKG5ldyBVeihjW2RdLGQsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBlPWEudGFnc3x8W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKWIudGFncy5wdXNoKG5ldyBZeihlW2ZdLGYsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBnPWEucHJlZGljYXRlc3x8W10saD0wO2g8Zy5sZW5ndGg7aCsrKWIucHJlZGljYXRlcy5wdXNoKG5ldyBWeihnW2hdLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgbD1hLnJ1bGVzfHxbXSxuPTA7bjxsLmxlbmd0aDtuKyspYi5ydWxlcy5wdXNoKG5ldyBXeihsW25dLG4pKTtRej1aO3ZhciBwPWRhdGEucGVybWlzc2lvbnN8fHt9LHE9WjtkZz1uZXcgZ2coRSg1KSxwLHEpO3ZhciByPWRhdGEuc2FuZGJveGVkX3NjcmlwdHMsdD1kYXRhLnNlY3VyaXR5X2dyb3Vwcyx1PWRhdGEucnVudGltZXx8CltdLHY9ZGF0YS5ydW50aW1lX2xpbmVzO0pGPW5ldyBwZjtWVCgpO1B6PUlGKCk7dmFyIHg9SkYseT1VVCgpLHo9bmV3IExkKCJyZXF1aXJlIix5KTt6LlphKCk7eC5ILkguc2V0KCJyZXF1aXJlIix6KTtkYi5zZXQoInJlcXVpcmUiLHopO2Zvcih2YXIgQz0wO0M8dS5sZW5ndGg7QysrKXt2YXIgRD11W0NdO2lmKCFBcnJheS5pc0FycmF5KEQpfHxELmxlbmd0aDwzKXtpZihELmxlbmd0aD09PTApY29udGludWU7YnJlYWt9diYmdltDXSYmdltDXS5sZW5ndGgmJlBmKEQsdltDXSk7dHJ5e0pGLmV4ZWN1dGUoRCl9Y2F0Y2gob1Upe319V1Qocik7WFQodCk7dmFyIEk9bFUoKTtpRigpO3ZtLmJpbmQoKTtpZighRGopZm9yKHZhciBHPUJtKCk/ZXAoTGYoNSkpOmVwKExmKDQpKSxOPW0oUm8pLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlLGVhPVcsamE9R1tXXT8iZ3JhbnRlZCI6ImRlbmllZCI7dGwoKS5pbXBsaWNpdChlYSxqYSl9aEUuYmluZCgpO1RCKCk7Ck9CKCk7Zm4uTiYmKGd6KCksZnooQUYpLGdBKCksY0I9bmV3IGJCLGZ6KGl6KSxPQygpLERGfHwoREY9bmV3IEJGKSxmQnx8KGZCPW5ldyBlQiksRkY9bmV3IEVGKTtpZihmbi5LKXtERS5iaW5kKCk7bUMuYmluZCgpO3dFLmJpbmQoKTt2YXIgZmE9QWsoKTtpZihmYSl7dmFyIHNhO2E6e3ZhciBkYSxtYT0oZGE9ZmEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmRhLnNyYztpZihtYSl7dmFyIFBhO3RyeXt2YXIgRmE7UGE9KEZhPXJkKCkpPT1udWxsP3ZvaWQgMDpGYS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpfWNhdGNoKG9VKXt9aWYoUGEpe2Zvcih2YXIgcWE9LTEsaWI9bShQYSksWGI9aWIubmV4dCgpOyFYYi5kb25lO1hiPWliLm5leHQoKSl7dmFyIExjPVhiLnZhbHVlO2lmKExjLmluaXRpYXRvclR5cGU9PT0KInNjcmlwdCImJihxYSs9MSxMYy5uYW1lLnJlcGxhY2UoTkUsIiIpPT09bWEucmVwbGFjZShORSwiIikpKXtzYT1xYTticmVhayBhfX1QKDE0Nil9ZWxzZSBQKDE0NSl9c2E9dm9pZCAwfXZhciBRZD1zYTtRZCE9PXZvaWQgMCYmKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkJiZVbSgicnRnIixTdHJpbmcoZmEuY2Fub25pY2FsQ29udGFpbmVySWQpKSxVbSgic2xvIixTdHJpbmcoUWQpKSxVbSgiaGxvIixmYS5odG1sTG9hZE9yZGVyfHwiLTEiKSxVbSgibHN0IixTdHJpbmcoZmEubG9hZFNjcmlwdFR5cGV8fCIwIikpKX1lbHNlIFAoMTQ0KTt2YXIgWWM7dmFyIERkPXhrKCk7aWYoRGQpaWYoRGQuY2Fub25pY2FsQ29udGFpbmVySWQpWWM9RGQuY2Fub25pY2FsQ29udGFpbmVySWQ7ZWxzZXt2YXIgamYsdmg9RGQuc2NyaXB0Q29udGFpbmVySWR8fCgoamY9RGQuZGVzdGluYXRpb25zKT09bnVsbD92b2lkIDA6amZbMF0pO1ljPXZoPyJfIit2aDp2b2lkIDB9ZWxzZSBZYz12b2lkIDA7dmFyIEpFPQpZYztKRSYmVW0oInBjaWQiLEpFKTtVbSgiYnQiLFN0cmluZyhJZig0Nyk/MjpJZig1MCk/MTowKSk7VW0oImN0IixTdHJpbmcoSWYoNDcpPzA6SWYoNTApPzE6MykpO0FFLmJpbmQoKTtmb3IodmFyIFdyPVtdLFhyPVtdLEtFPW0oT2JqZWN0LmtleXMoR0UpKSxZcj1LRS5uZXh0KCk7IVlyLmRvbmU7WXI9S0UubmV4dCgpKXt2YXIgcm09WXIudmFsdWU7aWYod2luZG93LmlzU2VjdXJlQ29udGV4dHx8IUlFW3JtXSl7dmFyIExFPUdFW3JtXSgpO2lmKHliKExFKSl7dmFyIE1FPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKExFKTtUYihNRSwieyBbbmF0aXZlIGNvZGVdIH0iKXx8VGIoTUUsIntcbiAgICBbbmF0aXZlIGNvZGVdXG59Iil8fFhyLnB1c2gocm0pfWVsc2UgV3IucHVzaChybSl9fVdyLmxlbmd0aD4wJiZVbSgianNtIixXci5qb2luKCJ+IikpO1hyLmxlbmd0aD4wJiZVbSgianNwIixYci5qb2luKCJ+IikpO0V5fHwoRXk9bmV3IER5KX1oRigpO2ltKDEpO0VHKCk7cmV0dXJuIEl9CmZ1bmN0aW9uIHVtKCl7dHJ5e2lmKCFoaygpJiYoSWYoNDcpfHwhTmsoKSkpe0lmKDY0KSYmd2ouSC5LLmFkZCgxMTg1MTc5MTcpO3pqKCk7Zm4uSCYmc3ooKTtXZls1XT0hMDt2YXIgYT1raigiZGVidWdHcm91cElkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSl9KTtTbChhKTtrdCgpO3pGKCk7RnQoKTtQQigpO2lmKERrKCkpe0UoNSk7REcoKTtpQigpLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zKHZrKCkpO31lbHNle0ZNLlIoKTtuVSgpLmJvb3RzdHJhcD1OYigpO0lmKDUxKSYmcEUoKTsKZm4uSCYmdHooKTt0eXBlb2YgQS5uYW1lPT09InN0cmluZyImJlNiKEEubmFtZSwid2ViLXBpeGVsLXNhbmRib3gtQ1VTVE9NIikmJnNkKCk/WlQoImRNRGcwWXoiKTpBLlNob3BpZnkmJihaVCgiZE4yWmtNaiIpLHNkKCkmJlpUKCJkTlRVMFl6IikpO21VKCl9fX1jYXRjaChiKXtpbSg1KSxoeigpfX0KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtuPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKTtnbChuKSYmKGw9aC54bSl9ZnVuY3Rpb24gYygpe2wmJktjP2cobCk6YSgpfWlmKCFBW0UoMzcpXSl7dmFyIGQ9ITE7aWYoQi5yZWZlcnJlcil7dmFyIGU9UmooQi5yZWZlcnJlcik7ZD1OaihlLCJob3N0Iik9PT1FKDM4KX1pZighZCl7dmFyIGY9Y3EoRSgzOSkpO2Q9ISghZi5sZW5ndGh8fCFmWzBdLmxlbmd0aCl9ZCYmKEFbRSgzNyldPSEwLFVjKEUoNDApKSl9dmFyIGc9ZnVuY3Rpb24odSl7dmFyIHY9IkdUTSIseD0iR1RNIjtJZig0NSkmJih2PSJPR1QiLHg9IkdUQUciKTt2YXIgeT1FKDIzKSx6PUFbeV07enx8KHo9W10sQVt5XT16LFVjKCJodHRwczovLyIrRSgzKSsiL2RlYnVnL2Jvb3RzdHJhcD9pZD0iK0UoNSkrIiZzcmM9Iit4KyImY29uZD0iK1N0cmluZyh1KSsiJmd0bT0iK2R1KCkpKTt2YXIgQz17bWVzc2FnZVR5cGU6IkNPTlRBSU5FUl9TVEFSVElORyIsCmRhdGE6e3NjcmlwdFNvdXJjZTpLYyxjb250YWluZXJQcm9kdWN0OnYsZGVidWc6ITEsaWQ6RSg1KSx0YXJnZXRSZWY6e2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOnNrKCksY2Fub25pY2FsSWQ6RSg2KX0sYWxpYXNlczp3aygpLGRlc3RpbmF0aW9uczp0aygpfX0sRD1DLmRhdGE7RC5yZXN1bWU9ZnVuY3Rpb24oKXthKCl9O0QucmVzdW1lV2l0aE1lbW9zPWZ1bmN0aW9uKCl7c2woMSk7YSgpfTtJZigyKSYmKEMuZGF0YS5pbml0aWFsUHVibGlzaD0hMCk7ei5wdXNoKEMpfSxoPXtHcToxLFBtOjIsb246MyxqbDo0LHhtOjV9O2hbaC5HcV09IkdUTV9ERUJVR19MRUdBQ1lfUEFSQU0iO2hbaC5QbV09IkdUTV9ERUJVR19QQVJBTSI7aFtoLm9uXT0iUkVGRVJSRVIiO2hbaC5qbF09IkNPT0tJRSI7aFtoLnhtXT0iRVhURU5TSU9OX1BBUkFNIjt2YXIgbD12b2lkIDAsbj12b2lkIDAscD1MaihBLmxvY2F0aW9uLCJxdWVyeSIsITEsdm9pZCAwLCJndG1fZGVidWciKTtnbChwKSYmKGw9aC5QbSk7CmlmKCFsJiZCLnJlZmVycmVyKXt2YXIgcT1SaihCLnJlZmVycmVyKTtOaihxLCJob3N0Iik9PT1FKDI0KSYmKGw9aC5vbil9aWYoIWwpe3ZhciByPWNxKCJfX1RBR19BU1NJU1RBTlQiKTtyLmxlbmd0aCYmclswXS5sZW5ndGgmJihsPWguamwpfWx8fGIoKTtpZighbCYmZmwobikpe3ZhciB0PSExOyRjKEIsIlRBRGVidWdTaWduYWwiLGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LCExKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sMjAwKX1lbHNlIGMoKX0pKGZ1bmN0aW9uKCl7IUlmKDQ3KXx8dG0oKVsiMCJdP3VtKCk6eG0oKX0pOwoKfSkoKQoK"}},"time_used":113,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":55,"receive":58,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/cars-img-1.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.108Z","timestamp":1785145406108,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/cars-img-1.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 73484\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-11f0c\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":73484,"size_decoded":73739,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"9581ef51125f8f105df2fcc99451bcbe","sha1":"06bb0f0fa7e232d14cce5337a5bfe5c232aa0133","sha256":"25b1d6a35de68d2d628b084f0a2cc66e5082eb5b1e0b191312b28eacc585ccf4","sha512":"96f2f22806e51ae4e8cf9ab6bbe46e1d021f86b2f8be0e9216cbff57dfb3703c3231cd1d3d8582a3ca20779e45cbe002b069a8374d1d44216f8ec70716d94275","ssdeep":"768:0AKHPCoMGnhHBKUh3CT6EfsXf1zhwM5mkLEonoc/S9dTKqtp/6bWlq60nEUtgsLM:rGnHEQDP4onoqS/TIEelh3cwBC","tlshash":"d773a7ee7bb06cd54dc88bdbbf4160ad3412a4fba9588e08d15c8b9c2481d6ced55ec3","first_seen":"2026-05-20T00:20:36.587629Z","last_seen":"2026-07-27T14:04:41.093616Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNTUiIGhlaWdodD0iNDQwIiB2aWV3Qm94PSIwIDAgMzU1IDQ0MCIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjkwODQpIj48cGF0aCBkPSJNMjM5Ljc0NiAyMzcuNzk3TDMzOC43MTUgMzAwLjAwNUwzMzguNTY4IDMwNC4yODlMMzM4LjUzOCAzMDUuMTYyTDMzOC40MTEgMzA4LjczTDMzOC4zODEgMzA5LjU5MkwzMzguMjU0IDMxMy4xNjFMMzM4LjIyNSAzMTQuMDMzTDMzOC4xMDcgMzE3LjU5MkwzMzguMDc4IDMxOC40NjRMMzM3Ljk1IDMyMi4wMjJMMzM3LjkyMSAzMjIuODk1TDMzNy43OTMgMzI2LjUxMkwxMjguMTUxIDQzOC4wMjlMMjkuMTgxNiAzNzUuODJMMjkuMzA5MSAzNzIuMjAzTDI5LjMzODUgMzcxLjMzTDI5LjQ2NTkgMzY3Ljc3MkwyOS40OTUzIDM2Ni45TDI5LjYyMjggMzYzLjMzMUwyOS42NTIyIDM2Mi40NTlMMjkuNzY5OCAzNTguOUwyOS43OTkyIDM1OC4wMjhMMjkuOTI2NyAzNTQuNDdMMjkuOTU2MSAzNTMuNTk3TDMwLjEwMzEgMzQ5LjMwNEwyMzkuNzQ2IDIzNy43OTdaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTIzOS43NDYgMjM3Ljc5N0wzMzguNzE1IDMwMC4wMDVMMzM4LjU2OCAzMDQuMjg5TDMzOC41MzggMzA1LjE2MkwzMzguNDExIDMwOC43M0wzMzguMzgxIDMwOS41OTJMMzM4LjI1NCAzMTMuMTYxTDMzOC4yMjUgMzE0LjAzM0wzMzguMTA3IDMxNy41OTJMMzM4LjA3OCAzMTguNDY0TDMzNy45NSAzMjIuMDIyTDMzNy45MjEgMzIyLjg5NUwzMzcuNzkzIDMyNi41MTJMMTI4LjE1MSA0MzguMDI5TDI5LjE4MTYgMzc1LjgyTDI5LjMwOTEgMzcyLjIwM0wyOS4zMzg1IDM3MS4zM0wyOS40NjU5IDM2Ny43NzJMMjkuNDk1MyAzNjYuOUwyOS42MjI4IDM2My4zMzFMMjkuNjUyMiAzNjIuNDU5TDI5Ljc2OTggMzU4LjlMMjkuNzk5MiAzNTguMDI4TDI5LjkyNjcgMzU0LjQ3TDI5Ljk1NjEgMzUzLjU5N0wzMC4xMDMxIDM0OS4zMDRMMjM5Ljc0NiAyMzcuNzk3WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC4zIj48cGF0aCBkPSJNMjM5Ljc0NiAyMzcuNzk3TDMzOC43MTUgMzAwLjAwNUwzMzguNTY4IDMwNC4yODlMMzM4LjUzOCAzMDUuMTYyTDMzOC40MTEgMzA4LjczTDMzOC4zODEgMzA5LjU5MkwzMzguMjU0IDMxMy4xNjFMMzM4LjIyNSAzMTQuMDMzTDMzOC4xMDcgMzE3LjU5MkwzMzguMDc4IDMxOC40NjRMMzM3Ljk1IDMyMi4wMjJMMzM3LjkyMSAzMjIuODk1TDMzNy43OTMgMzI2LjUxMkwxMjguMTUxIDQzOC4wMjlMMjkuMTgxNiAzNzUuODJMMjkuMzA5MSAzNzIuMjAzTDI5LjMzODUgMzcxLjMzTDI5LjQ2NTkgMzY3Ljc3MkwyOS40OTUzIDM2Ni45TDI5LjYyMjggMzYzLjMzMUwyOS42NTIyIDM2Mi40NTlMMjkuNzY5OCAzNTguOUwyOS43OTkyIDM1OC4wMjhMMjkuOTI2NyAzNTQuNDdMMjkuOTU2MSAzNTMuNTk3TDMwLjEwMzEgMzQ5LjMwNEwyMzkuNzQ2IDIzNy43OTdaIiBmaWxsPSIjMzQ1NEFDIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0xMjkuMDcyIDQxMS41MjNMMTI4LjE1MSA0MzguMDNMMjkuMTgxNiAzNzUuODIxTDMwLjEwMzEgMzQ5LjMwNUwxMjkuMDcyIDQxMS41MjNaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTUzLjc1NzggMzQ4Ljg2NEwyNDEuODc0IDI1MC4xNDFMMzE3LjQ3MyAyOTguNzIzTDEzMS4xMTIgMzk3LjQzN0w1My43NTc4IDM0OC44NjRaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjkuOTA2IDM5OS4zNTdMNTIuNTUyNCAzNTAuNzc0QzUxLjg2NjIgMzUwLjM0MyA1MS40NjQzIDM0OS41NzggNTEuNDkzNyAzNDguNzc0QzUxLjUyMzEgMzQ3Ljk2MSA1MS45ODM4IDM0Ny4yMzUgNTIuNjk5NCAzNDYuODUzTDI0MC44MTUgMjQ4LjEyOUMyNDEuNTMxIDI0Ny43NTYgMjQyLjQwMyAyNDcuNzg2IDI0My4wODkgMjQ4LjIyN0wzMTguNjg5IDI5Ni44MUMzMTkuMzY1IDI5Ny4yNDEgMzE5Ljc1NyAyOTguMDA2IDMxOS43MjggMjk4LjgwOUMzMTkuNjk4IDI5OS42MTMgMzE5LjIzNyAzMDAuMzM5IDMxOC41MjIgMzAwLjcxMUwxMzIuMTYxIDM5OS40MjVDMTMxLjg0NyAzOTkuNTkyIDEzMS41MDQgMzk5LjY4IDEzMS4xNjEgMzk5LjY5QzEzMC43MiAzOTkuNyAxMzAuMjc5IDM5OS41ODIgMTI5Ljg5NiAzOTkuMzQ3TDEyOS45MDYgMzk5LjM1N1pNMjQxLjc1NiAyNTIuNzU2TDU4LjI5NjggMzQ5LjAzOUwxMzEuMjEgMzk0LjgyOEwzMTIuOTkzIDI5OC41MzVMMjQxLjc1NiAyNTIuNzU2WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjcuODY3IDQxMy40NDVMMjguODk4MSAzNTEuMjM2QzI4LjIxMTkgMzUwLjgwNSAyNy44MSAzNTAuMDQgMjcuODM5NCAzNDkuMjM2QzI3Ljg2ODggMzQ4LjQzMyAyOC4zMjk1IDM0Ny42OTcgMjkuMDM1MyAzNDcuMzE1TDIzOC42NzggMjM1Ljc5OEMyMzkuMzk0IDIzNS40MTYgMjQwLjI1NiAyMzUuNDQ1IDI0MC45NDIgMjM1Ljg3N0wzMzkuOTExIDI5OC4wODVDMzQwLjU5OCAyOTguNTE3IDM0MSAyOTkuMjgxIDM0MC45NyAzMDAuMDg1QzM0MC45NDEgMzAwLjg4OSAzNDAuNDggMzAxLjYyNCAzMzkuNzc0IDMwMi4wMDZMMTMwLjEzMiA0MTMuNTIzQzEyOS44MTggNDEzLjY5IDEyOS40NzUgNDEzLjc3OCAxMjkuMTMyIDQxMy43ODhDMTI4LjY5MSA0MTMuNzk4IDEyOC4yNDkgNDEzLjY4IDEyNy44NjcgNDEzLjQ0NVpNMjM5LjY0OCAyNDAuNDE1TDM0LjYyMjkgMzQ5LjQ4MUwxMjkuMTcxIDQwOC45MTZMMzM0LjE5NiAyOTkuODVMMjM5LjY0OCAyNDAuNDE1WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNTQuOTEyIDMwNi4xMkMxNzEuOTg4IDI5Ny4wNDIgMTk5LjAzNCAyOTcuOTc0IDIxNS4zMjYgMzA4LjIxOEMyMzEuNjE5IDMxOC40NjIgMjMwLjk4MSAzMzQuMTI2IDIxMy45MTUgMzQzLjIwNEMxOTYuODM4IDM1Mi4yODEgMTY5Ljc5MiAzNTEuMzUgMTUzLjUgMzQxLjEwNkMxMzcuMjA4IDMzMC44NjIgMTM3Ljg0NSAzMTUuMTk3IDE1NC45MTIgMzA2LjEyWiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0xNTIuMjk1IDM0My4wMTdDMTQzLjcyNyAzMzcuNjM1IDEzOS4xNTkgMzMwLjU3NyAxMzkuNDM0IDMyMy4xNDZDMTM5LjcwOCAzMTUuNjc3IDE0NC44MjUgMzA4LjkxMyAxNTMuODUzIDMwNC4xMDlDMTcxLjUzOCAyOTQuNzA4IDE5OS42NTIgMjk1LjY3OSAyMTYuNTMzIDMwNi4yODZDMjI1LjEgMzExLjY2NyAyMjkuNjY4IDMxOC43MjUgMjI5LjM5NCAzMjYuMTU2QzIyOS4xMTkgMzMzLjYyNiAyMjQuMDAyIDM0MC4zOSAyMTQuOTc0IDM0NS4xOTNDMjA3LjM5NiAzNDkuMjIyIDE5Ny45MDcgMzUxLjM0OSAxODguMjAyIDM1MS42MjRDMTc1LjI2MyAzNTEuOTk2IDE2MS45NDEgMzQ5LjA3NSAxNTIuMjk1IDM0My4wMDdWMzQzLjAxN1pNMTU1Ljk3MSAzMDguMTA5QzE0OC40MzMgMzEyLjExOCAxNDQuMTU5IDMxNy41MiAxNDMuOTUzIDMyMy4zMTNDMTQzLjc0NyAzMjkuMDU3IDE0Ny41NiAzMzQuNjk0IDE1NC43MDYgMzM5LjE4NEMxNzAuMzYxIDM0OS4wMjYgMTk2LjQ0NyAzNDkuOTI4IDIxMi44NDcgMzQxLjIwM0MyMjAuMzg1IDMzNy4xOTQgMjI0LjY1OSAzMzEuNzkyIDIyNC44NjUgMzI1Ljk5OUMyMjUuMDcxIDMyMC4yNTUgMjIxLjI1OCAzMTQuNjE4IDIxNC4xMTEgMzEwLjEyOEMyMDUuMTYxIDMwNC41MDEgMTkyLjgyIDMwMS43OTYgMTgwLjgxMSAzMDIuMTM5QzE3MS44MTIgMzAyLjM5NCAxNjIuOTk5IDMwNC4zNjQgMTU1Ljk3MSAzMDguMTA5WiIgZmlsbD0iIzM0NTRBQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMzEuMDggMjc5LjkwOEMyNDEuMDIgMjc0LjYyNCAyNTYuNzczIDI3NS4xNjMgMjY2LjI2MiAyODEuMTIzQzI3NS43NTEgMjg3LjA4MyAyNzUuMzc4IDI5Ni4yMSAyNjUuNDM4IDMwMS41MDNDMjU1LjQ5OCAzMDYuNzg3IDIzOS43NDUgMzA2LjIzOCAyMzAuMjU2IDMwMC4yNzhDMjIwLjc2NyAyOTQuMzE4IDIyMS4xNCAyODUuMjAxIDIzMS4wOCAyNzkuOTA4WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yMjkuMDUxIDMwMi4xODhDMjIzLjc2NyAyOTguODY1IDIyMC45NTQgMjk0LjQ2NCAyMjEuMTIgMjg5Ljc4OEMyMjEuMjg3IDI4NS4wODIgMjI0LjQ1MyAyODAuODY3IDIzMC4wMjEgMjc3LjkwN0MyNDAuNzY1IDI3Mi4xOTIgMjU3LjIxNCAyNzIuNzYgMjY3LjQ2OCAyNzkuMjAxQzI3Mi43NTIgMjgyLjUyNCAyNzUuNTY1IDI4Ni45MjUgMjc1LjM5OCAyOTEuNjAxQzI3NS4yMzIgMjk2LjMwNyAyNzIuMDY1IDMwMC41MzIgMjY2LjQ5NyAzMDMuNDkyQzI2MS44OCAzMDUuOTQzIDI1Ni4yMTQgMzA3LjIzNyAyNTAuNDMxIDMwNy40MDNDMjQyLjc2NSAzMDcuNjE5IDIzNC45MDMgMzA1Ljg1NCAyMjkuMDUxIDMwMi4xNzhWMzAyLjE4OFpNMjMyLjEzOSAyODEuOTA2QzIyOC4wNjEgMjg0LjA4MiAyMjUuNzQ3IDI4Ni45MzUgMjI1LjYzOSAyODkuOTU0QzIyNS41MzIgMjkyLjk0NCAyMjcuNiAyOTUuOTM0IDIzMS40NTIgMjk4LjM1NUMyNDAuMzE0IDMwMy45MjMgMjU1LjA3NyAzMDQuNDQzIDI2NC4zNiAyOTkuNTAyQzI2OC40MzggMjk3LjMyNiAyNzAuNzUyIDI5NC40NzMgMjcwLjg2IDI5MS40NDRDMjcwLjk2NyAyODguNDQ1IDI2OC44OTkgMjg1LjQ2NSAyNjUuMDQ3IDI4My4wMzRDMjU5Ljk4OCAyNzkuODU3IDI1Mi45OTkgMjc4LjMxOCAyNDYuMjA2IDI3OC41MTRDMjQxLjEwOCAyNzguNjYxIDIzNi4xMTkgMjc5Ljc3OSAyMzIuMTI5IDI4MS44OTZMMjMyLjEzOSAyODEuOTA2WiIgZmlsbD0iIzM0NTRBQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMDMuMzg5IDM0Ny44MzNDMTEzLjMyOSAzNDIuNTUgMTI5LjA4MiAzNDMuMDg5IDEzOC41NzEgMzQ5LjA0OUMxNDguMDYgMzU1LjAwOSAxNDcuNjg4IDM2NC4xMzUgMTM3Ljc0OCAzNjkuNDI5QzEyNy44MDggMzc0LjcxMyAxMTIuMDU1IDM3NC4xNjQgMTAyLjU2NiAzNjguMjA0QzkzLjA3NjYgMzYyLjI0NCA5My40NDkxIDM1My4xMjcgMTAzLjM4OSAzNDcuODMzWiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0xMDEuMzYgMzcwLjEyNkM5Ni4wNzY0IDM2Ni44MDMgOTMuMjUzMiAzNjIuNDAxIDkzLjQyOTcgMzU3LjcyNUM5My41OTYzIDM1My4wMiA5Ni43NjI2IDM0OC44MDUgMTAyLjMzMSAzNDUuODQ0QzExMy4wNzQgMzQwLjEyOSAxMjkuNTI0IDM0MC42OTggMTM5Ljc3NyAzNDcuMTM4QzE0NS4wNjEgMzUwLjQ2MSAxNDcuODg0IDM1NC44NjMgMTQ3LjcwOCAzNTkuNTM5QzE0Ny41NDEgMzY0LjI0NCAxNDQuMzc1IDM2OC40NjkgMTM4LjgwNyAzNzEuNDI5QzEzNC4xOSAzNzMuODggMTI4LjUyNCAzNzUuMTc0IDEyMi43NCAzNzUuMzQxQzExNS4wNzQgMzc1LjU1NiAxMDcuMjEyIDM3My43OTIgMTAxLjM2IDM3MC4xMTZWMzcwLjEyNlpNMTA0LjQ0OCAzNDkuODQ0QzEwMC4zNyAzNTIuMDIgOTguMDU2NiAzNTQuODczIDk3Ljk0ODggMzU3Ljg5MkM5Ny44NDA5IDM2MC44ODIgOTkuOTA5MyAzNjMuODcyIDEwMy43NjIgMzY2LjI5M0MxMTIuNjI0IDM3MS44NjEgMTI3LjM4NyAzNzIuMzggMTM2LjY3IDM2Ny40NEMxNDAuNzQ4IDM2NS4yNjQgMTQzLjA2MSAzNjIuNDExIDE0My4xNjkgMzU5LjM4MkMxNDMuMjc3IDM1Ni4zODIgMTQxLjIwOSAzNTMuNDAyIDEzNy4zNTYgMzUwLjk3MUMxMzIuMjk4IDM0Ny43OTUgMTI1LjMwOCAzNDYuMjU2IDExOC41MTUgMzQ2LjQ1MkMxMTMuNDE4IDM0Ni41OTkgMTA4LjQyOCAzNDcuNzE3IDEwNC40MzggMzQ5LjgzNEwxMDQuNDQ4IDM0OS44NDRaIiBmaWxsPSIjMzQ1NEFDIj48L3BhdGg+PHBhdGggZD0iTTEyNi45NTUgNDM5Ljk0OUwyNy45ODYgMzc3Ljc0MUMyNy4yOTk4IDM3Ny4zMSAyNi44OTc5IDM3Ni41NTUgMjYuOTI3MyAzNzUuNzQxTDI3Ljg0ODggMzQ5LjIyNUMyNy44NzgyIDM0OC40MTEgMjguMzM4OSAzNDcuNjg2IDI5LjA0NDcgMzQ3LjMwM0wyMzguNjg3IDIzNS43ODdDMjM5LjQwMyAyMzUuNDA0IDI0MC4yNjYgMjM1LjQzNCAyNDAuOTUyIDIzNS44NjVMMzM5LjkyMSAyOTguMDc0QzM0MC42MDcgMjk4LjUwNSAzNDEuMDA5IDI5OS4yNiAzNDAuOTggMzAwLjA3M0wzNDAuMDU4IDMyNi41OUMzNDAuMDI5IDMyNy40MDQgMzM5LjU2OCAzMjguMTI5IDMzOC44NjIgMzI4LjUxMUwxMjkuMjE5IDQ0MC4wMjhDMTI4LjkwNiA0NDAuMTk1IDEyOC41NjMgNDQwLjI4MyAxMjguMjIgNDQwLjI5M0MxMjcuNzc4IDQ0MC4zMDIgMTI3LjMzNyA0NDAuMTg1IDEyNi45NTUgNDM5Ljk0OVpNMzM2LjQxMSAzMDEuMjNMMjM5LjY1OCAyNDAuNDE0TDMyLjMxODggMzUwLjY5NUwzMS40ODU2IDM3NC42MDRMMTI4LjIzOSA0MzUuNDIxTDMzNS41NjggMzI1LjEzOUwzMzYuNDAyIDMwMS4yM0gzMzYuNDExWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yNTYuMTU1IDM0My45MTlMMTU3LjE4NiAyODEuNzExTDExMi42NjIgMzA1LjM5NEwyMTEuNjQxIDM2Ny42MDNMMjU2LjE1NSAzNDMuOTE5WiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTAuNDM2IDM2OS41MjZMMTExLjQ2NiAzMDcuMzE3QzExMC43OCAzMDYuODg2IDExMC4zNzggMzA2LjEyMSAxMTAuNDA4IDMwNS4zMTdDMTEwLjQzNyAzMDQuNTEzIDExMC44OTggMzAzLjc3OCAxMTEuNjA0IDMwMy4zOTZMMTU2LjExOCAyNzkuNzEyQzE1Ni44MzQgMjc5LjMzIDE1Ny42OTYgMjc5LjM2IDE1OC4zODMgMjc5Ljc5MUwyNTcuMzUyIDM0MS45OTlDMjU4LjAzOCAzNDIuNDMxIDI1OC40NCAzNDMuMTk1IDI1OC40MSAzNDMuOTk5QzI1OC4zODEgMzQ0LjgwMyAyNTcuOTIgMzQ1LjUzOCAyNTcuMjE0IDM0NS45MjFMMjEyLjcgMzY5LjYwNEMyMTIuMzg2IDM2OS43NzEgMjEyLjA0MyAzNjkuODU5IDIxMS43IDM2OS44NjlDMjExLjI1OSAzNjkuODc5IDIxMC44MTggMzY5Ljc2MSAyMTAuNDM2IDM2OS41MjZaTTE1Ny4wODkgMjg0LjMzTDExNy4xODEgMzA1LjU2MkwyMTEuNzI5IDM2NC45OTdMMjUxLjYzNyAzNDMuNzY0TDE1Ny4wODkgMjg0LjMzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTAuNjQyIDM5NC4yMkwyNTUuMjI1IDM3MC41NDZMMjU2LjE1NiAzNDMuOTIyTDIxMS41NjMgMzY3LjYwNUwyMTAuNjQyIDM5NC4yMloiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuMyI+PHBhdGggZD0iTTIxMC42NDIgMzk0LjIyTDI1NS4yMjUgMzcwLjU0NkwyNTYuMTU2IDM0My45MjJMMjExLjU2MyAzNjcuNjA1TDIxMC42NDIgMzk0LjIyWiIgZmlsbD0iIzM0NTRBQyI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMjA5LjQzNiAzOTYuMTQxQzIwOC43NSAzOTUuNzEgMjA4LjM0OCAzOTQuOTQ1IDIwOC4zNzcgMzk0LjE0MUwyMDkuMjk5IDM2Ny41MjdDMjA5LjMyOCAzNjYuNzEzIDIwOS43ODkgMzY1Ljk4OCAyMTAuNDk1IDM2NS42MDVMMjU1LjA4OCAzNDEuOTMyQzI1NS44MDMgMzQxLjU1OSAyNTYuNjY2IDM0MS41ODkgMjU3LjM1MiAzNDIuMDFDMjU4LjAzOCAzNDIuNDQxIDI1OC40NCAzNDMuMjA2IDI1OC40MTEgMzQ0LjAxTDI1Ny40OSAzNzAuNjI0QzI1Ny40NiAzNzEuNDM4IDI1Ni45OTkgMzcyLjE2NCAyNTYuMjk0IDM3Mi41NDZMMjExLjcwMSAzOTYuMjJDMjExLjM4NyAzOTYuMzg2IDIxMS4wNDQgMzk2LjQ3NCAyMTAuNzAxIDM5Ni40ODRDMjEwLjI2IDM5Ni40OTQgMjA5LjgxOCAzOTYuMzc2IDIwOS40MzYgMzk2LjE0MVpNMjUzLjc1NSAzNDcuNzY0TDIxMy43NzkgMzY4Ljk4N0wyMTMuMDM0IDM5MC4zNzdMMjUzLjAxIDM2OS4xNTRMMjUzLjc1NSAzNDcuNzY0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjYuOTQ1IDQzOS45NTJMMjcuOTc2MiAzNzcuNzQ0QzI3LjI5IDM3Ny4zMTMgMjYuODg4MSAzNzYuNTU4IDI2LjkxNzUgMzc1Ljc0NEwyNy44MzkgMzQ5LjIyOEMyNy44Njg0IDM0OC40MTQgMjguMzI5MSAzNDcuNjg4IDI5LjA0NDcgMzQ3LjMwNkMyOS43NjAzIDM0Ni45MjQgMzAuNjIzIDM0Ni45NTMgMzEuMzA5MiAzNDcuMzg1TDEzMC4yNzggNDA5LjYwM0MxMzAuOTY0IDQxMC4wMzQgMTMxLjM2NiA0MTAuNzg5IDEzMS4zMzcgNDExLjYwM0wxMzAuNDE1IDQzOC4xMUMxMzAuMzg2IDQzOC45MjMgMTI5LjkyNSA0MzkuNjQ5IDEyOS4yMSA0NDAuMDMxQzEyOC44OTYgNDQwLjE5NyAxMjguNTUzIDQ0MC4yODYgMTI4LjIxIDQ0MC4yOTZDMTI3Ljc2OSA0NDAuMzA1IDEyNy4zMjggNDQwLjE4OCAxMjYuOTQ1IDQzOS45NTJaTTMyLjIzMDYgMzUzLjMyNUwzMS40OTU0IDM3NC42MDdMMTI2LjAzNCA0MzQuMDMyTDEyNi43NjkgNDEyLjc1OUwzMi4yMzA2IDM1My4zMzVWMzUzLjMyNVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTI4LjU4MyA0MjkuODgzQzEyOS4zMjggNDI5Ljg2NCAxMzAuMDUzIDQyOS40NzEgMTMwLjQ2NSA0MjguNzc1QzEzMS4xMDIgNDI3LjY5NyAxMzAuNzQ5IDQyNi4zMTUgMTI5LjY3MSA0MjUuNjc4TDg3LjMyMjkgNDAwLjU0M0M4Ni4yNDQ2IDM5OS45MDYgODQuODYyNCA0MDAuMjU5IDg0LjIyNTIgNDAxLjMzN0M4My41ODggNDAyLjQxNiA4My45NDA5IDQwMy43OTggODUuMDE5MiA0MDQuNDM1TDEyNy4zNjcgNDI5LjU3QzEyNy43NSA0MjkuNzk1IDEyOC4xNzEgNDI5Ljg5MyAxMjguNTgzIDQyOS44ODNaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI1NS42MDcgMzYzLjk0MUMyNTUuOTUgMzYzLjk0MSAyNTYuMjkzIDM2My44NDMgMjU2LjYxNyAzNjMuNjc2TDMxMC41NDIgMzM0LjY0MUMzMTEuNjQgMzM0LjA0MyAzMTIuMDUxIDMzMi42NyAzMTEuNDYzIDMzMS41NzJDMzEwLjg3NSAzMzAuNDc0IDMwOS40OTMgMzMwLjA2MyAzMDguMzk1IDMzMC42NTFMMjU0LjQ3IDM1OS42ODdDMjUzLjM3MiAzNjAuMjg1IDI1Mi45NiAzNjEuNjU3IDI1My41NDggMzYyLjc1NUMyNTMuOTcgMzYzLjUzOSAyNTQuNzg0IDM2My45NyAyNTUuNjA3IDM2My45NDFaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIxMi44MjggMjAzLjIzOEwzMTEuNzk3IDI2NS40NDdMMzExLjY0IDI2OS43MzFMMzExLjYxMSAyNzAuNjAzTDMxMS40OTMgMjc0LjE3MUwzMTEuNDY0IDI3NS4wMzRMMzExLjMzNiAyNzguNjAyTDMxMS4zMDcgMjc5LjQ3NUwzMTEuMTc5IDI4My4wMzNMMzExLjE1IDI4My45MDVMMzExLjAzMiAyODcuNDY0TDMxMC45OTMgMjg4LjMzNkwzMTAuODc1IDI5MS45NTNMMTAxLjIzMyA0MDMuNDdMMi4yNjM2NyAzNDEuMjYyTDIuMzkxMTEgMzM3LjY0NEwyLjQyMDUyIDMzNi43NzJMMi41MzgxNSAzMzMuMjEzTDIuNTc3MzYgMzMyLjM0MUwyLjY5NSAzMjguNzczTDIuNzI0NCAzMjcuOUwyLjg1MTg0IDMyNC4zNDJMMi44ODEyNSAzMjMuNDY5TDMuMDA4NjggMzE5LjkxMUwzLjAzODA5IDMxOS4wMzlMMy4xODUxMyAzMTQuNzQ1TDIxMi44MjggMjAzLjIzOFoiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuMyI+PHBhdGggZD0iTTIxMi44MjggMjAzLjIzOEwzMTEuNzk3IDI2NS40NDdMMzExLjY0IDI2OS43MzFMMzExLjYxMSAyNzAuNjAzTDMxMS40OTMgMjc0LjE3MUwzMTEuNDY0IDI3NS4wMzRMMzExLjMzNiAyNzguNjAyTDMxMS4zMDcgMjc5LjQ3NUwzMTEuMTc5IDI4My4wMzNMMzExLjE1IDI4My45MDVMMzExLjAzMiAyODcuNDY0TDMxMC45OTMgMjg4LjMzNkwzMTAuODc1IDI5MS45NTNMMTAxLjIzMyA0MDMuNDdMMi4yNjM2NyAzNDEuMjYyTDIuMzkxMTEgMzM3LjY0NEwyLjQyMDUyIDMzNi43NzJMMi41MzgxNSAzMzMuMjEzTDIuNTc3MzYgMzMyLjM0MUwyLjY5NSAzMjguNzczTDIuNzI0NCAzMjcuOUwyLjg1MTg0IDMyNC4zNDJMMi44ODEyNSAzMjMuNDY5TDMuMDA4NjggMzE5LjkxMUwzLjAzODA5IDMxOS4wMzlMMy4xODUxMyAzMTQuNzQ1TDIxMi44MjggMjAzLjIzOFoiIGZpbGw9IiMzNDU0QUMiPjwvcGF0aD48L2c+PHBhdGggZD0iTTEwMi4xNTQgMzc2Ljk2TDEwMS4yMzMgNDAzLjQ2N0wyLjI2MzY3IDM0MS4yNTlMMy4xODUxMyAzMTQuNzQyTDEwMi4xNTQgMzc2Ljk2WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yNi44Mzk4IDMxNC4zMDJMMjE0Ljk1NiAyMTUuNTc4TDI5MC41NTUgMjY0LjE2MUwxMDQuMTk0IDM2Mi44NzVMMjYuODM5OCAzMTQuMzAyWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMTAyLjk4OCAzNjQuNzk4TDI1LjYzNDQgMzE2LjIxNUMyNC45NDgyIDMxNS43ODQgMjQuNTQ2MyAzMTUuMDIgMjQuNTc1NyAzMTQuMjE2QzI0LjYwNTEgMzEzLjQwMiAyNS4wNjU5IDMxMi42NzcgMjUuNzgxNSAzMTIuMjk0TDIxMy44OTcgMjEzLjU3QzIxNC42MTMgMjEzLjE5OCAyMTUuNDg1IDIxMy4yMjcgMjE2LjE3MSAyMTMuNjY4TDI5MS43NzEgMjYyLjI1MUMyOTIuNDQ3IDI2Mi42ODIgMjkyLjgzOSAyNjMuNDQ3IDI5Mi44MSAyNjQuMjUxQzI5Mi43OCAyNjUuMDU1IDI5Mi4zMiAyNjUuNzggMjkxLjYwNCAyNjYuMTUzTDEwNS4yNDMgMzY0Ljg2N0MxMDQuOTI5IDM2NS4wMzMgMTA0LjU4NiAzNjUuMTIyIDEwNC4yNDMgMzY1LjEzMUMxMDMuODAyIDM2NS4xNDEgMTAzLjM2MSAzNjUuMDI0IDEwMi45NzkgMzY0Ljc4OEwxMDIuOTg4IDM2NC43OThaTTIxNC44MzggMjE4LjE5N0wzMS4zNjkxIDMxNC40OEwxMDQuMjgyIDM2MC4yNjlMMjg2LjA2NSAyNjMuOTc2TDIxNC44MjggMjE4LjE5N0gyMTQuODM4WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMDAuOTQ5IDM3OC44ODZMMS45ODAxMyAzMTYuNjc4QzEuMjkzOTQgMzE2LjI0NiAwLjg5MjAyMyAzMTUuNDgyIDAuOTIxNDMyIDMxNC42NzhDMC45NTA4NCAzMTMuODc0IDEuNDExNTcgMzEzLjEzOSAyLjExNzM3IDMxMi43NTZMMjExLjc2IDIwMS4yNEMyMTIuNDc2IDIwMC44NTcgMjEzLjMzOCAyMDAuODg3IDIxNC4wMjQgMjAxLjMxOEwzMTIuOTkzIDI2My41MjdDMzEzLjY4IDI2My45NTggMzE0LjA4MiAyNjQuNzIzIDMxNC4wNTIgMjY1LjUyN0MzMTQuMDIzIDI2Ni4zMyAzMTMuNTYyIDI2Ny4wNjYgMzEyLjg1NiAyNjcuNDQ4TDEwMy4yMTQgMzc4Ljk2NEMxMDIuOSAzNzkuMTMxIDEwMi41NTcgMzc5LjIxOSAxMDIuMjE0IDM3OS4yMjlDMTAxLjc3MyAzNzkuMjM5IDEwMS4zMzEgMzc5LjEyMSAxMDAuOTQ5IDM3OC44ODZaTTIxMi43MyAyMDUuODU3TDcuNjk1MTYgMzE0LjkyM0wxMDIuMjQzIDM3NC4zNTdMMzA3LjI3OCAyNjUuMjkxTDIxMi43MyAyMDUuODU3WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjcuOTg1IDI3MS41NjVDMTQ1LjA2MSAyNjIuNDg4IDE3Mi4xMDcgMjYzLjQxOSAxODguNCAyNzMuNjYzQzIwNC42OTIgMjgzLjkwNyAyMDQuMDU1IDI5OS41NzIgMTg2Ljk4OCAzMDguNjQ5QzE2OS45MTIgMzE3LjcyNyAxNDIuODY2IDMxNi43OTUgMTI2LjU3MyAzMDYuNTUxQzExMC4yODEgMjk2LjMwNyAxMTAuOTE4IDI4MC42NDMgMTI3Ljk4NSAyNzEuNTY1WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjUuMzY3IDMwOC40NjJDMTE2Ljc5OSAzMDMuMDggMTEyLjIzMSAyOTYuMDIyIDExMi41MDYgMjg4LjU5MkMxMTIuNzggMjgxLjEyMiAxMTcuODk3IDI3NC4zNTggMTI2LjkyNiAyNjkuNTU1QzE0NC42MSAyNjAuMTU0IDE3Mi43MjQgMjYxLjEyNCAxODkuNjA1IDI3MS43MzFDMTk4LjE3MiAyNzcuMTEzIDIwMi43NDEgMjg0LjE3MSAyMDIuNDY2IDI5MS42MDFDMjAyLjE5MiAyOTkuMDcxIDE5Ny4wNzUgMzA1LjgzNSAxODguMDQ2IDMxMC42MzhDMTgwLjQ2OSAzMTQuNjY3IDE3MC45OCAzMTYuNzk0IDE2MS4yNzUgMzE3LjA2OUMxNDguMzM1IDMxNy40NDEgMTM1LjAxMyAzMTQuNTIgMTI1LjM2NyAzMDguNDUyVjMwOC40NjJaTTEyOS4wNDMgMjczLjU1NEMxMjEuNTA1IDI3Ny41NjQgMTE3LjIzMSAyODIuOTY1IDExNy4wMjUgMjg4Ljc1OEMxMTYuODE5IDI5NC41MDMgMTIwLjYzMiAzMDAuMTM5IDEyNy43NjkgMzA0LjYyOUMxNDMuNDI0IDMxNC40NzEgMTY5LjUwOSAzMTUuMzczIDE4NS45MDkgMzA2LjY0OEMxOTMuNDQ4IDMwMi42MzkgMTk3LjcyMiAyOTcuMjM4IDE5Ny45MjcgMjkxLjQ0NEMxOTguMTMzIDI4NS43IDE5NC4zMiAyODAuMDYzIDE4Ny4xNzQgMjc1LjU3NEMxNzguMjI0IDI2OS45NDcgMTY1Ljg4MiAyNjcuMjQxIDE1My44NzQgMjY3LjU4NEMxNDQuODc1IDI2Ny44MzkgMTM2LjA2MiAyNjkuODEgMTI5LjAzMyAyNzMuNTU0SDEyOS4wNDNaIiBmaWxsPSIjMzQ1NEFDIj48L3BhdGg+PHBhdGggZD0iTTIwNC4xNjIgMjQ1LjM1M0MyMTQuMTAyIDI0MC4wNjkgMjI5Ljg1NSAyNDAuNjA4IDIzOS4zNDQgMjQ2LjU2OEMyNDguODMzIDI1Mi41MjkgMjQ4LjQ2IDI2MS42NTUgMjM4LjUyIDI2Ni45NDlDMjI4LjU4IDI3Mi4yMzIgMjEyLjgyNyAyNzEuNjgzIDIwMy4zMzggMjY1LjcyM0MxOTMuODQ5IDI1OS43NjMgMTk0LjIyMiAyNTAuNjQ2IDIwNC4xNjIgMjQ1LjM1M1oiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMjAyLjEzMyAyNjcuNjM0QzE5Ni44NDkgMjY0LjMxIDE5NC4wMzYgMjU5LjkwOSAxOTQuMjAyIDI1NS4yMzNDMTk0LjM2OSAyNTAuNTI4IDE5Ny41MzUgMjQ2LjMxMiAyMDMuMTAzIDI0My4zNTJDMjEzLjg0NyAyMzcuNjM3IDIzMC4yOTYgMjM4LjIwNiAyNDAuNTUgMjQ0LjY0NkMyNDUuODM0IDI0Ny45NjkgMjQ4LjY0NyAyNTIuMzcxIDI0OC40OCAyNTcuMDU2QzI0OC4zMTQgMjYxLjc2MiAyNDUuMTQ3IDI2NS45ODcgMjM5LjU3OSAyNjguOTQ3QzIzNC45NjIgMjcxLjM5OCAyMjkuMjk2IDI3Mi42OTIgMjIzLjUxMyAyNzIuODU4QzIxNS44NDcgMjczLjA3NCAyMDcuOTg1IDI3MS4zMSAyMDIuMTMzIDI2Ny42MzRaTTIwNS4yMjEgMjQ3LjM1MkMyMDEuMTQzIDI0OS41MjggMTk4LjgyOSAyNTIuMzggMTk4LjcyMSAyNTUuNEMxOTguNjE0IDI1OC4zODkgMjAwLjY4MiAyNjEuMzc5IDIwNC41MzQgMjYzLjgwMUMyMTMuMzk2IDI2OS4zNjkgMjI4LjE1OSAyNjkuODg4IDIzNy40NDIgMjY0Ljk0OEMyNDEuNTIgMjYyLjc3MSAyNDMuODM0IDI1OS45MTkgMjQzLjk0MiAyNTYuODlDMjQ0LjA1IDI1My44OSAyNDEuOTgxIDI1MC45MSAyMzguMTI5IDI0OC40NzlDMjMzLjA3IDI0NS4zMDMgMjI2LjA4MSAyNDMuNzY0IDIxOS4yODggMjQzLjk2QzIxNC4xOSAyNDQuMTA3IDIwOS4yMDEgMjQ1LjIyNCAyMDUuMjIxIDI0Ny4zNDJWMjQ3LjM1MloiIGZpbGw9IiMzNDU0QUMiPjwvcGF0aD48cGF0aCBkPSJNNzYuNDYxNCAzMTMuMjcxQzg2LjQwMTQgMzA3Ljk4NyAxMDIuMTU1IDMwOC41MjYgMTExLjY0NCAzMTQuNDg2QzEyMS4xMzMgMzIwLjQ0NyAxMjAuNzYgMzI5LjU3MyAxMTAuODIgMzM0Ljg2NkMxMDAuODggMzQwLjE1IDg1LjEyNzEgMzM5LjYwMSA3NS42Mzc5IDMzMy42NDFDNjYuMTQ4OCAzMjcuNjgxIDY2LjUyMTMgMzE4LjU2NCA3Ni40NjE0IDMxMy4yNzFaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTc0LjQ0MjIgMzM1LjU2M0M2OS4xNTg1IDMzMi4yNCA2Ni4zMzUzIDMyNy44MzkgNjYuNTExNyAzMjMuMTYzQzY2LjY3ODQgMzE4LjQ1NyA2OS44NDQ3IDMxNC4yNDIgNzUuNDEyNiAzMTEuMjgyQzg2LjE1NjUgMzA1LjU2NyAxMDIuNjA2IDMwNi4xMzUgMTEyLjg1OSAzMTIuNTc2QzExOC4xNDMgMzE1Ljg5OSAxMjAuOTY2IDMyMC4zIDEyMC43OSAzMjQuOTg2QzEyMC42MjMgMzI5LjY5MSAxMTcuNDU3IDMzMy45MTYgMTExLjg4OSAzMzYuODc3QzEwNy4yNzIgMzM5LjMyNyAxMDEuNjA2IDM0MC42MjEgOTUuODIyMSAzNDAuNzg4Qzg4LjE1NjMgMzQxLjAwNCA4MC4yOTQ0IDMzOS4yMzkgNzQuNDQyMiAzMzUuNTYzWk03Ny41MyAzMTUuMjgxQzczLjQ1MjEgMzE3LjQ1NyA3MS4xMzg2IDMyMC4zMSA3MS4wMzA4IDMyMy4zMjlDNzAuOTIzIDMyNi4zMTkgNzIuOTkxNCAzMjkuMzA5IDc2Ljg0MzkgMzMxLjczQzg1LjcwNTYgMzM3LjI5OCAxMDAuNDY5IDMzNy44MTggMTA5Ljc1MiAzMzIuODc3QzExMy44MyAzMzAuNzAxIDExNi4xNDMgMzI3Ljg0OCAxMTYuMjUxIDMyNC44MTlDMTE2LjM1OSAzMjEuODIgMTE0LjI5MSAzMTguODQgMTEwLjQzOCAzMTYuNDA5QzEwNS4zOCAzMTMuMjMyIDk4LjM5MDQgMzExLjY5MyA5MS41OTcxIDMxMS44ODlDODYuNDk5NiAzMTIuMDM3IDgxLjUxIDMxMy4xNTQgNzcuNTMgMzE1LjI3MVYzMTUuMjgxWiIgZmlsbD0iIzM0NTRBQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMDAuMDI3IDQwNS4zOTFMMS4wNTgyNiAzNDMuMTgyQzAuMzcyMDYzIDM0Mi43NTEgLTAuMDI5ODUxOCAzNDEuOTk2IC0wLjAwMDQ0MzQxIDM0MS4xODNMMC45MjEwMiAzMTQuNjY2QzAuOTUwNDI4IDMxMy44NjIgMS40MTExNiAzMTMuMTI3IDIuMTE2OTYgMzEyLjc0NUwyMTEuNzYgMjAxLjIyOEMyMTIuNDc1IDIwMC44NDYgMjEzLjMzOCAyMDAuODc1IDIxNC4wMjQgMjAxLjMwNkwzMTIuOTkzIDI2My41MTVDMzEzLjY3OSAyNjMuOTQ2IDMxNC4wODEgMjY0LjcwMSAzMTQuMDUyIDI2NS41MTVMMzEzLjEzIDI5Mi4wMzFDMzEzLjEwMSAyOTIuODQ1IDMxMi42NCAyOTMuNTcgMzExLjkzNCAyOTMuOTUzTDEwMi4yOTIgNDA1LjQ2OUMxMDEuOTc4IDQwNS42MzYgMTAxLjYzNSA0MDUuNzI0IDEwMS4yOTIgNDA1LjczNEMxMDAuODUxIDQwNS43NDQgMTAwLjQxIDQwNS42MjYgMTAwLjAyNyA0MDUuMzkxWk0zMDkuNDg0IDI2Ni42NzJMMjEyLjczIDIwNS44NTVMNS40MDA5IDMxNi4xMzZMNC41Njc2NiAzNDAuMDQ1TDEwMS4zMjEgNDAwLjg2MkwzMDguNjUgMjkwLjU4MUwzMDkuNDg0IDI2Ni42NzJaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIyOS4yMjggMzA5LjM2NUwxMzAuMjU5IDI0Ny4xNTZMODUuNzQ0MSAyNzAuODRMMTg0LjcxMyAzMzMuMDQ4TDIyOS4yMjggMzA5LjM2NVoiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48cGF0aCBkPSJNMTgzLjUwOCAzMzQuOTY3TDg0LjUzODcgMjcyLjc1OUM4My44NTI1IDI3Mi4zMjcgODMuNDUwNiAyNzEuNTYzIDgzLjQ4IDI3MC43NTlDODMuNTA5NCAyNjkuOTU1IDgzLjk3MDIgMjY5LjIyIDg0LjY3NiAyNjguODM3TDEyOS4xOSAyNDUuMTU0QzEyOS45MDYgMjQ0Ljc3MiAxMzAuNzY5IDI0NC44MDEgMTMxLjQ1NSAyNDUuMjMyTDIzMC40MjQgMzA3LjQ0MUMyMzEuMTEgMzA3Ljg3MiAyMzEuNTEyIDMwOC42MzcgMjMxLjQ4MyAzMDkuNDQxQzIzMS40NTMgMzEwLjI0NCAyMzAuOTkzIDMxMC45OCAyMzAuMjg3IDMxMS4zNjJMMTg1Ljc3MiAzMzUuMDQ1QzE4NS40NTkgMzM1LjIxMiAxODUuMTE1IDMzNS4zIDE4NC43NzIgMzM1LjMxQzE4NC4zMzEgMzM1LjMyIDE4My44OSAzMzUuMjAyIDE4My41MDggMzM0Ljk2N1pNMTMwLjE2MSAyNDkuNzcxTDkwLjI1MzggMjcxLjAwNEwxODQuODAyIDMzMC40MzhMMjI0LjcwOSAzMDkuMjA1TDEzMC4xNjEgMjQ5Ljc3MVoiIGZpbGw9IiMzNDU0QUMiPjwvcGF0aD48cGF0aCBkPSJNMTgzLjcxNCAzNTkuNjYxTDIyOC4zMDcgMzM1Ljk4N0wyMjkuMjI4IDMwOS4zNjNMMTg0LjY0NSAzMzMuMDQ3TDE4My43MTQgMzU5LjY2MVoiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuMyI+PHBhdGggZD0iTTE4My43MTQgMzU5LjY2MUwyMjguMzA3IDMzNS45ODdMMjI5LjIyOCAzMDkuMzYzTDE4NC42NDUgMzMzLjA0N0wxODMuNzE0IDM1OS42NjFaIiBmaWxsPSIjMzQ1NEFDIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0xODIuNTE4IDM2MS41ODNDMTgxLjgzMiAzNjEuMTUxIDE4MS40MyAzNjAuMzg3IDE4MS40NiAzNTkuNTgzTDE4Mi4zODEgMzMyLjk2OEMxODIuNDEgMzMyLjE1NSAxODIuODcxIDMzMS40MjkgMTgzLjU3NyAzMzEuMDQ3TDIyOC4xNyAzMDcuMzczQzIyOC44ODUgMzA3LjAwMSAyMjkuNzQ4IDMwNy4wMyAyMzAuNDM0IDMwNy40NTJDMjMxLjEyIDMwNy44ODMgMjMxLjUyMiAzMDguNjQ3IDIzMS40OTMgMzA5LjQ1MUwyMzAuNTcyIDMzNi4wNjZDMjMwLjU0MiAzMzYuODc5IDIzMC4wODEgMzM3LjYwNSAyMjkuMzc2IDMzNy45ODdMMTg0Ljc4MyAzNjEuNjYxQzE4NC40NjkgMzYxLjgyOCAxODQuMTI2IDM2MS45MTYgMTgzLjc4MyAzNjEuOTI2QzE4My4zNDIgMzYxLjkzNSAxODIuOTAxIDM2MS44MTggMTgyLjUxOCAzNjEuNTgzWk0yMjYuODM3IDMxMy4yMDZMMTg2Ljg2MSAzMzQuNDI5TDE4Ni4xMTYgMzU1LjgyOEwyMjYuMDkyIDMzNC42MDVMMjI2LjgzNyAzMTMuMjE2VjMxMy4yMDZaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTEwMC4wMjcgNDA1LjM5TDEuMDU4MjYgMzQzLjE4MUMwLjM3MjA2MyAzNDIuNzUgLTAuMDI5ODUxOCAzNDEuOTk1IC0wLjAwMDQ0MzQxIDM0MS4xODJMMC45MjEwMTkgMzE0LjY2NUMwLjk1MDQyOCAzMTMuODUxIDEuNDExMTYgMzEzLjEyNiAyLjEyNjc2IDMxMi43NDRDMi44NDIzNyAzMTIuMzYxIDMuNzA1MDEgMzEyLjM5MSA0LjM5MTIxIDMxMi44MjJMMTAzLjM2IDM3NS4wNEMxMDQuMDQ2IDM3NS40NzIgMTA0LjQ0OCAzNzYuMjI3IDEwNC40MTkgMzc3LjA0TDEwMy40OTcgNDAzLjU0N0MxMDMuNDY4IDQwNC4zNjEgMTAzLjAwNyA0MDUuMDg2IDEwMi4yOTIgNDA1LjQ2OEMxMDEuOTc4IDQwNS42MzUgMTAxLjYzNSA0MDUuNzIzIDEwMS4yOTIgNDA1LjczM0MxMDAuODUxIDQwNS43NDMgMTAwLjQxIDQwNS42MjUgMTAwLjAyNyA0MDUuMzlaTTUuMzEyNjcgMzE4Ljc2M0w0LjU3NzQ2IDM0MC4wNDRMOTkuMTE1NiAzOTkuNDY5TDk5Ljg1MDggMzc4LjE5N0w1LjMxMjY3IDMxOC43NjNaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTMwLjMwOTYgMzQ1Ljc2OEMzMS4wNDQ4IDM0NS43NDkgMzEuNzYwNSAzNDUuMzY3IDMyLjE4MiAzNDQuNjlDMzIuODI5IDM0My42MjIgMzIuNDk1NyAzNDIuMjMgMzEuNDI3MiAzNDEuNTczTDMuOTQwMTEgMzI0Ljc5QzIuODcxNjEgMzI0LjE0MyAxLjQ3OTYxIDMyNC40NzcgMC44MjI4MjMgMzI1LjU0NUMwLjE3NTgzOSAzMjYuNjE0IDAuNTA5MTM0IDMyOC4wMDYgMS41Nzc2NCAzMjguNjYzTDI5LjA2NDcgMzQ1LjQ0NUMyOS40NTY4IDM0NS42OCAyOS44ODgxIDM0NS43ODggMzAuMzA5NiAzNDUuNzc4VjM0NS43NjhaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI0My42ODcgMTcwLjU1OEwzNDIuNjU2IDIzMi43NjdMMzQyLjUwOSAyMzcuMDYxTDM0Mi40OCAyMzcuOTIzTDM0Mi4zNTIgMjQxLjQ5MkwzNDIuMzIzIDI0Mi4zNjRMMzQyLjIwNSAyNDUuOTIyTDM0Mi4xNzYgMjQ2Ljc5NUwzNDIuMDQ4IDI1MC4zNTNMMzQyLjAxOSAyNTEuMjI2TDM0MS44OTIgMjU0Ljc5NEwzNDEuODYyIDI1NS42NTdMMzQxLjczNSAyNTkuMjg0TDEzMi4xMDIgMzcwLjc5TDMzLjEzMjggMzA4LjU4MkwzMy4yNjAyIDMwNC45NjVMMzMuMjg5NyAzMDQuMDkyTDMzLjQwNzMgMzAwLjUzNEwzMy40MzY3IDI5OS42NjFMMzMuNTY0MSAyOTYuMTAzTDMzLjU5MzUgMjk1LjIzTDMzLjcyMSAyOTEuNjYyTDMzLjc1MDQgMjkwLjc5TDMzLjg2OCAyODcuMjMxTDMzLjg5NzQgMjg2LjM1OUwzNC4wNTQzIDI4Mi4wNzVMMjQzLjY4NyAxNzAuNTU4WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC4zIj48cGF0aCBkPSJNMzQyLjY1NiAyMzIuNzY2TDM0Mi41MDkgMjM3LjA1OUwzNDIuNDggMjM3LjkyMkwzNDIuMzUyIDI0MS40OUwzNDIuMzIzIDI0Mi4zNjJMMzQyLjIwNSAyNDUuOTIxTDM0Mi4xNzYgMjQ2Ljc5M0wzNDIuMDQ4IDI1MC4zNTJMMzQyLjAxOSAyNTEuMjI0TDM0MS44OTIgMjU0Ljc5MkwzNDEuODYyIDI1NS42NTVMMzQxLjczNSAyNTkuMjgyTDEzMy43MTkgMzY4LjcxMUwxMzMuMDIzIDM0NC4yODJMMzQyLjY1NiAyMzIuNzY2WiIgZmlsbD0iIzM0NTRBQyI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTMzLjAyMyAzNDQuMjgzTDEzMi4xMDIgMzcwLjc4OUwzMy4xMzI4IDMwOC41ODFMMzQuMDU0MyAyODIuMDc0TDEzMy4wMjMgMzQ0LjI4M1oiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNNTcuNjk5MiAyODEuNjIyTDI0NS44MjUgMTgyLjg5OEwzMjEuNDI0IDIzMS40ODFMMTM1LjA2MyAzMzAuMTk1TDU3LjY5OTIgMjgxLjYyMloiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggZD0iTTEzMy44NTcgMzMyLjExOEw1Ni41MDM2IDI4My41MzZDNTUuODE3NCAyODMuMTA0IDU1LjQxNTUgMjgyLjM0IDU1LjQ0NDkgMjgxLjUzNkM1NS40NzQzIDI4MC43MjIgNTUuOTM1IDI3OS45OTcgNTYuNjUwNiAyNzkuNjE1TDI0NC43NjYgMTgwLjg5MUMyNDUuNDgyIDE4MC41MTggMjQ2LjM1NCAxODAuNTQ4IDI0Ny4wNDEgMTgwLjk4OUwzMjIuNjQgMjI5LjU3MUMzMjMuMzE2IDIzMC4wMDMgMzIzLjcwOCAyMzAuNzY3IDMyMy42NzkgMjMxLjU3MUMzMjMuNjQ5IDIzMi4zNzUgMzIzLjE4OSAyMzMuMSAzMjIuNDczIDIzMy40NzNMMTM2LjExMiAzMzIuMTg3QzEzNS43OTggMzMyLjM1NCAxMzUuNDU1IDMzMi40NDIgMTM1LjExMiAzMzIuNDUyQzEzNC42NzEgMzMyLjQ2MiAxMzQuMjMgMzMyLjM0NCAxMzMuODQ4IDMzMi4xMDlMMTMzLjg1NyAzMzIuMTE4Wk0yNDUuNzA3IDE4NS41MThMNjIuMjM4MiAyODEuODAxTDEzNS4xNTEgMzI3LjU5TDMxNi45MzQgMjMxLjI5N0wyNDUuNjk4IDE4NS41MThIMjQ1LjcwN1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTMxLjgxOCAzNDYuMjA2TDMyLjg0OTMgMjgzLjk5OEMzMi4xNjMxIDI4My41NjYgMzEuNzYxMiAyODIuODAyIDMxLjc5MDYgMjgxLjk5OEMzMS44MiAyODEuMTk0IDMyLjI4MDcgMjgwLjQ1OSAzMi45ODY1IDI4MC4wNzdMMjQyLjYyOSAxNjguNTZDMjQzLjM0NSAxNjguMTc4IDI0NC4yMDcgMTY4LjIwNyAyNDQuODk0IDE2OC42MzlMMzQzLjg2MyAyMzAuODQ3QzM0NC41NDkgMjMxLjI3OCAzNDQuOTUxIDIzMi4wNDMgMzQ0LjkyMSAyMzIuODQ3QzM0NC44OTIgMjMzLjY1MSAzNDQuNDMxIDIzNC4zODYgMzQzLjcyNSAyMzQuNzY4TDEzNC4wODMgMzQ2LjI4NUMxMzMuNzY5IDM0Ni40NTEgMTMzLjQyNiAzNDYuNTQgMTMzLjA4MyAzNDYuNTQ5QzEzMi42NDIgMzQ2LjU1OSAxMzIuMjAxIDM0Ni40NDIgMTMxLjgxOCAzNDYuMjA2Wk0yNDMuNiAxNzMuMTc3TDM4LjU2NDMgMjgyLjI0M0wxMzMuMTEyIDM0MS42NzdMMzM4LjE0OCAyMzIuNjEyTDI0My42IDE3My4xNzdaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTE1OC44NTMgMjM4Ljg4NUMxNzUuOTMgMjI5LjgwOCAyMDIuOTc2IDIzMC43MzkgMjE5LjI2OCAyNDAuOTgzQzIzNS41NiAyNTEuMjI3IDIzNC45MjMgMjY2Ljg5MiAyMTcuODU2IDI3NS45NjlDMjAwLjc4IDI4NS4wNDcgMTczLjczNCAyODQuMTE2IDE1Ny40NDIgMjczLjg3MkMxNDEuMTQ5IDI2My42MjggMTQxLjc4NiAyNDcuOTYzIDE1OC44NTMgMjM4Ljg4NVoiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMTU2LjIzNiAyNzUuNzgyQzE0Ny42NjkgMjcwLjQwMSAxNDMuMSAyNjMuMzQzIDE0My4zNzUgMjU1LjkxMkMxNDMuNjQ5IDI0OC40NDIgMTQ4Ljc2NyAyNDEuNjc4IDE1Ny43OTUgMjM2Ljg3NUMxNzUuNDc5IDIyNy40NzQgMjAzLjU5NCAyMjguNDQ1IDIyMC40NzQgMjM5LjA1MUMyMjkuMDQyIDI0NC40MzMgMjMzLjYxIDI1MS40OTEgMjMzLjMzNSAyNTguOTIxQzIzMy4wNjEgMjY2LjM5MSAyMjcuOTQ0IDI3My4xNTUgMjE4LjkxNSAyNzcuOTU5QzIxMS4zMzggMjgxLjk4NyAyMDEuODQ5IDI4NC4xMTUgMTkyLjE0NCAyODQuMzg5QzE3OS4yMDQgMjg0Ljc2MiAxNjUuODgyIDI4MS44NCAxNTYuMjM2IDI3NS43NzNWMjc1Ljc4MlpNMTU5LjkxMiAyNDAuODc1QzE1Mi4zNzQgMjQ0Ljg4NCAxNDguMSAyNTAuMjg1IDE0Ny44OTQgMjU2LjA3OUMxNDcuNjg4IDI2MS44MjMgMTUxLjUwMSAyNjcuNDYgMTU4LjYzOCAyNzEuOTQ5QzE3NC4yOTMgMjgxLjc5MSAyMDAuMzc4IDI4Mi42OTMgMjE2Ljc3OCAyNzMuOTY5QzIyNC4zMTcgMjY5Ljk1OSAyMjguNTkxIDI2NC41NTggMjI4Ljc5NyAyNTguNzY1QzIyOS4wMDIgMjUzLjAyIDIyNS4xODkgMjQ3LjM4NCAyMTguMDQzIDI0Mi44OTRDMjA5LjA5MyAyMzcuMjY3IDE5Ni43NTEgMjM0LjU2MiAxODQuNzQzIDIzNC45MDVDMTc1Ljc0NCAyMzUuMTYgMTY2LjkzMSAyMzcuMTMgMTU5LjkwMiAyNDAuODc1SDE1OS45MTJaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIzNS4wMzIgMjEyLjY3M0MyNDQuOTcyIDIwNy4zOSAyNjAuNzI1IDIwNy45MjkgMjcwLjIxNCAyMTMuODg5QzI3OS43MDMgMjE5Ljg0OSAyNzkuMzMxIDIyOC45NzUgMjY5LjM5MSAyMzQuMjY5QzI1OS40NSAyMzkuNTUzIDI0My42OTcgMjM5LjAwNCAyMzQuMjA4IDIzMy4wNDNDMjI0LjcxOSAyMjcuMDgzIDIyNS4wOTIgMjE3Ljk2NyAyMzUuMDMyIDIxMi42NzNaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTIzMy4wMDMgMjM0Ljk1NEMyMjcuNzE5IDIzMS42MzEgMjI0LjkwNiAyMjcuMjI5IDIyNS4wNzIgMjIyLjU1M0MyMjUuMjM5IDIxNy44NDggMjI4LjQwNSAyMTMuNjMzIDIzMy45NzMgMjEwLjY3MkMyNDQuNzE3IDIwNC45NTcgMjYxLjE2NiAyMDUuNTI2IDI3MS40MiAyMTEuOTY2QzI3Ni43MDQgMjE1LjI4OSAyNzkuNTE3IDIxOS42OTEgMjc5LjM1MSAyMjQuMzc3QzI3OS4xODQgMjI5LjA4MiAyNzYuMDE4IDIzMy4zMDcgMjcwLjQ1IDIzNi4yNjdDMjY1LjgzMiAyMzguNzE4IDI2MC4xNjYgMjQwLjAxMiAyNTQuMzgzIDI0MC4xNzlDMjQ2LjcxNyAyNDAuMzk0IDIzOC44NTUgMjM4LjYzIDIzMy4wMDMgMjM0Ljk1NFpNMjM2LjA5MSAyMTQuNjcyQzIzMi4wMTMgMjE2Ljg0OCAyMjkuNjk5IDIxOS43MDEgMjI5LjU5MiAyMjIuNzJDMjI5LjQ4NCAyMjUuNzEgMjMxLjU1MiAyMjguNyAyMzUuNDA1IDIzMS4xMjFDMjQ0LjI2NiAyMzYuNjg5IDI1OS4wMjkgMjM3LjIwOCAyNjguMzEzIDIzMi4yNjhDMjcyLjM5MSAyMzAuMDkyIDI3NC43MDQgMjI3LjIzOSAyNzQuODEyIDIyNC4yMUMyNzQuOTIgMjIxLjIxIDI3Mi44NTEgMjE4LjIzIDI2OC45OTkgMjE1Ljc5OUMyNjMuOTQxIDIxMi42MjMgMjU2Ljk1MSAyMTEuMDg0IDI1MC4xNTggMjExLjI4QzI0NS4wNiAyMTEuNDI3IDI0MC4wNzEgMjEyLjU0NSAyMzYuMDkxIDIxNC42NjJWMjE0LjY3MloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTA3LjMzMSAyODAuNjAzQzExNy4yNzEgMjc1LjMxOSAxMzMuMDI0IDI3NS44NTggMTQyLjUxMyAyODEuODE4QzE1Mi4wMDIgMjg3Ljc3OSAxNTEuNjI5IDI5Ni45MDUgMTQxLjY4OSAzMDIuMTk4QzEzMS43NDkgMzA3LjQ4MiAxMTUuOTk2IDMwNi45MzMgMTA2LjUwNyAzMDAuOTczQzk3LjAxOCAyOTUuMDEzIDk3LjM5MDUgMjg1Ljg5NiAxMDcuMzMxIDI4MC42MDNaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTEwNS4zMDIgMzAyLjg4NEMxMDAuMDE4IDI5OS41NiA5Ny4xOTQ2IDI5NS4xNTkgOTcuMzcxMSAyOTAuNDgzQzk3LjUzNzcgMjg1Ljc3OCAxMDAuNzA0IDI4MS41NjIgMTA2LjI3MiAyNzguNjAyQzExNy4wMTYgMjcyLjg4NyAxMzMuNDY1IDI3My40NTYgMTQzLjcxOSAyNzkuODk2QzE0OS4wMDIgMjgzLjIxOSAxNTEuODI2IDI4Ny42MjEgMTUxLjY0OSAyOTIuMzA2QzE1MS40ODMgMjk3LjAxMiAxNDguMzE2IDMwMS4yMzcgMTQyLjc0OCAzMDQuMTk3QzEzOC4xMzEgMzA2LjY0OCAxMzIuNDY1IDMwNy45NDIgMTI2LjY4MSAzMDguMTA4QzExOS4wMTYgMzA4LjMyNCAxMTEuMTU0IDMwNi41NiAxMDUuMzAyIDMwMi44ODRaTTEwOC4zODkgMjgyLjYwMkMxMDQuMzExIDI4NC43NzggMTAxLjk5OCAyODcuNjMgMTAxLjg5IDI5MC42NUMxMDEuNzgyIDI5My42MzkgMTAzLjg1MSAyOTYuNjI5IDEwNy43MDMgMjk5LjA1MUMxMTYuNTY1IDMwNC42MTkgMTMxLjMyOCAzMDUuMTM4IDE0MC42MTEgMzAwLjE5OEMxNDQuNjg5IDI5OC4wMjEgMTQ3LjAwMyAyOTUuMTY5IDE0Ny4xMSAyOTIuMTRDMTQ3LjIxOCAyODkuMTQgMTQ1LjE1IDI4Ni4xNiAxNDEuMjk3IDI4My43MjlDMTM2LjIzOSAyODAuNTUzIDEyOS4yNSAyNzkuMDE0IDEyMi40NTYgMjc5LjIxQzExNy4zNTkgMjc5LjM1NyAxMTIuMzY5IDI4MC40NzQgMTA4LjM4OSAyODIuNTkyVjI4Mi42MDJaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTEzMC44OTYgMzcyLjcxMUwzMS45Mjc0IDMxMC41MDNDMzEuMjQxMiAzMTAuMDcxIDMwLjgzOTMgMzA5LjMxNyAzMC44Njg3IDMwOC41MDNMMzEuNzkwMiAyODEuOTg2QzMxLjgxOTYgMjgxLjE4MyAzMi4yODAzIDI4MC40NDcgMzIuOTg2MSAyODAuMDY1TDI0Mi42MjkgMTY4LjU0OEMyNDMuMzQ0IDE2OC4xNjYgMjQ0LjIwNyAxNjguMTk1IDI0NC44OTMgMTY4LjYyN0wzNDMuODYyIDIzMC44MzVDMzQ0LjU0OCAyMzEuMjY3IDM0NC45NSAyMzIuMDIxIDM0NC45MjEgMjMyLjgzNUwzNDMuOTk5IDI1OS4zNTJDMzQzLjk3IDI2MC4xNjUgMzQzLjUwOSAyNjAuODkxIDM0Mi44MDQgMjYxLjI3M0wxMzMuMTYxIDM3Mi43OUMxMzIuODQ3IDM3Mi45NTYgMTMyLjUwNCAzNzMuMDQ1IDEzMi4xNjEgMzczLjA1NEMxMzEuNzIgMzczLjA2NCAxMzEuMjc5IDM3Mi45NDYgMTMwLjg5NiAzNzIuNzExWk0zNDAuMzUzIDIzMy45OTJMMjQzLjU5OSAxNzMuMTc1TDM2LjI3IDI4My40NTdMMzUuNDM2OCAzMDcuMzY2TDEzMi4xOSAzNjguMTgyTDMzOS41MiAyNTcuOTAxTDM0MC4zNTMgMjMzLjk5MloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjYwLjA5NyAyNzYuNjkzTDE2MS4xMjggMjE0LjQ4NEwxMTYuNjEzIDIzOC4xNThMMjE1LjU4MiAzMDAuMzY3TDI2MC4wOTcgMjc2LjY5M1oiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48cGF0aCBkPSJNMjE0LjM3NyAzMDIuMjg3TDExNS40MDggMjQwLjA3OUMxMTQuNzIyIDIzOS42NDggMTE0LjMyIDIzOC44ODMgMTE0LjM0OSAyMzguMDc5QzExNC4zNzkgMjM3LjI3NSAxMTQuODM5IDIzNi41NCAxMTUuNTQ1IDIzNi4xNThMMTYwLjA2IDIxMi40NzRDMTYwLjc3NSAyMTIuMDkyIDE2MS42MzggMjEyLjEyMSAxNjIuMzI0IDIxMi41NTNMMjYxLjI5MyAyNzQuNzYxQzI2MS45NzkgMjc1LjE5MiAyNjIuMzgxIDI3NS45NTcgMjYyLjM1MiAyNzYuNzYxQzI2Mi4zMjIgMjc3LjU2NSAyNjEuODYyIDI3OC4zIDI2MS4xNTYgMjc4LjY4MkwyMTYuNjQxIDMwMi4zNjZDMjE2LjMyOCAzMDIuNTMyIDIxNS45ODUgMzAyLjYyMSAyMTUuNjQxIDMwMi42M0MyMTUuMiAzMDIuNjQgMjE0Ljc1OSAzMDIuNTIzIDIxNC4zNzcgMzAyLjI4N1pNMTYxLjAzIDIxNy4wOTFMMTIxLjEyMyAyMzguMzI0TDIxNS42NzEgMjk3Ljc1OEwyNTUuNTc4IDI3Ni41MjZMMTYxLjAzIDIxNy4wOTFaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIxNC41ODMgMzI2Ljk4TDI1OS4xNzYgMzAzLjMwNkwyNjAuMDk3IDI3Ni42OTFMMjE1LjUwNCAzMDAuMzY1TDIxNC41ODMgMzI2Ljk4WiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC4zIj48cGF0aCBkPSJNMjE0LjU4MyAzMjYuOThMMjU5LjE3NiAzMDMuMzA2TDI2MC4wOTcgMjc2LjY5MUwyMTUuNTA0IDMwMC4zNjVMMjE0LjU4MyAzMjYuOThaIiBmaWxsPSIjMzQ1NEFDIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0yMTMuMzg3IDMyOC45MDNDMjEyLjcwMSAzMjguNDcyIDIxMi4yOTkgMzI3LjcwNyAyMTIuMzI5IDMyNi45MDNMMjEzLjI1IDMwMC4yODhDMjEzLjI4IDI5OS40NzUgMjEzLjc0IDI5OC43NDkgMjE0LjQ0NiAyOTguMzY3TDI1OS4wMzkgMjc0LjY5M0MyNTkuNzU1IDI3NC4zMjEgMjYwLjYxNyAyNzQuMzUgMjYxLjMwMyAyNzQuNzcyQzI2MS45OSAyNzUuMjAzIDI2Mi4zOTIgMjc1Ljk2OCAyNjIuMzYyIDI3Ni43NzJMMjYxLjQ0MSAzMDMuMzg2QzI2MS40MTEgMzA0LjIgMjYwLjk1MSAzMDQuOTI1IDI2MC4yNDUgMzA1LjMwOEwyMTUuNjUyIDMyOC45ODFDMjE1LjMzOCAzMjkuMTQ4IDIxNC45OTUgMzI5LjIzNiAyMTQuNjUyIDMyOS4yNDZDMjE0LjIxMSAzMjkuMjU2IDIxMy43NyAzMjkuMTM4IDIxMy4zODcgMzI4LjkwM1pNMjU3LjcwNiAyODAuNTI2TDIxNy43MyAzMDEuNzQ5TDIxNi45ODUgMzIzLjE0OUwyNTYuOTYxIDMwMS45MjZMMjU3LjcwNiAyODAuNTM2VjI4MC41MjZaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTEzMC44OTYgMzcyLjcxTDMxLjkyNzQgMzEwLjUwMkMzMS4yNDEyIDMxMC4wNyAzMC44MzkzIDMwOS4zMTYgMzAuODY4NyAzMDguNTAyTDMxLjc5MDIgMjgxLjk4NUMzMS44MTk2IDI4MS4xNzIgMzIuMjgwMyAyODAuNDQ2IDMyLjk5NTkgMjgwLjA2NEMzMy43MTE1IDI3OS42ODIgMzQuNTc0MiAyNzkuNzExIDM1LjI2MDQgMjgwLjE0MkwxMzQuMjI5IDM0Mi4zNjFDMTM0LjkxNiAzNDIuNzkyIDEzNS4zMTcgMzQzLjU0NyAxMzUuMjg4IDM0NC4zNjFMMTM0LjM2NyAzNzAuODY3QzEzNC4zMzcgMzcxLjY4MSAxMzMuODc2IDM3Mi40MDYgMTMzLjE2MSAzNzIuNzg5QzEzMi44NDcgMzcyLjk1NSAxMzIuNTA0IDM3My4wNDQgMTMyLjE2MSAzNzMuMDUzQzEzMS43MiAzNzMuMDYzIDEzMS4yNzkgMzcyLjk0NSAxMzAuODk2IDM3Mi43MVpNMzYuMTgxOCAyODYuMDgzTDM1LjQ0NjYgMzA3LjM2NUwxMjkuOTg1IDM2Ni43ODlMMTMwLjcyIDM0NS41MTdMMzYuMTgxOCAyODYuMDkzVjI4Ni4wODNaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTYxLjE3ODggMzEzLjA4OUM2MS45MTQgMzEzLjA2OSA2Mi42Mjk2IDMxMi42ODcgNjMuMDUxMSAzMTIuMDFDNjMuNjk4MSAzMTAuOTQyIDYzLjM2NDggMzA5LjU1IDYyLjI5NjMgMzA4Ljg5M0wzNC44MDkzIDI5Mi4xMTFDMzMuNzQwNyAyOTEuNDY0IDMyLjM0ODggMjkxLjc5NyAzMS42OTIgMjkyLjg2NkMzMS4wNDUgMjkzLjkzNCAzMS4zNzgzIDI5NS4zMjYgMzIuNDQ2OCAyOTUuOTgzTDU5LjkzMzggMzEyLjc2NUM2MC4zMjU5IDMxMy4wMDEgNjAuNzU3MyAzMTMuMTA4IDYxLjE3ODggMzEzLjA5OVYzMTMuMDg5WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMzIuNTI0IDM2Mi42NDFDMTMzLjI2OSAzNjIuNjIxIDEzMy45OTUgMzYyLjIyOSAxMzQuNDA2IDM2MS41MzNDMTM1LjA0NCAzNjAuNDU1IDEzNC42OTEgMzU5LjA3MyAxMzMuNjEyIDM1OC40MzZMOTEuMjY0MyAzMzMuMzAxQzkwLjE4NiAzMzIuNjY0IDg4LjgwMzggMzMzLjAxNyA4OC4xNjY2IDMzNC4wOTVDODcuNTI5NCAzMzUuMTc0IDg3Ljg4MjMgMzM2LjU1NiA4OC45NjA2IDMzNy4xOTNMMTMxLjMwOSAzNjIuMzI3QzEzMS42OTEgMzYyLjU1MyAxMzIuMTEzIDM2Mi42NTEgMTMyLjUyNCAzNjIuNjQxWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNzEuMjU1IDMzNS44NTJDMTcxLjU3OSAzMzUuODUyIDE3MS44OTIgMzM1Ljc2NCAxNzIuMTk2IDMzNS42MTdMMjE2LjEyMiAzMTMuNjk4QzIxNy4yNCAzMTMuMTM5IDIxNy42OTEgMzExLjc3NyAyMTcuMTQyIDMxMC42NTlDMjE2LjU4MyAzMDkuNTQyIDIxNS4yMyAzMDkuMDkxIDIxNC4xMDMgMzA5LjY0TDE3MC4xNzcgMzMxLjU1OUMxNjkuMDU5IDMzMi4xMTcgMTY4LjYwOCAzMzMuNDggMTY5LjE1NyAzMzQuNTk3QzE2OS41NTkgMzM1LjQxMSAxNzAuMzkyIDMzNS44NzIgMTcxLjI0NSAzMzUuODUySDE3MS4yNTVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI1OS41NDggMjk2LjcxMUMyNTkuODkxIDI5Ni43MTEgMjYwLjIzNSAyOTYuNjEzIDI2MC41NTggMjk2LjQ0NkwzMTQuNDgzIDI2Ny40MUMzMTUuNTgxIDI2Ni44MTIgMzE1Ljk5MyAyNjUuNDQgMzE1LjQwNSAyNjQuMzQyQzMxNC44MDcgMjYzLjI0NCAzMTMuNDM0IDI2Mi44MzIgMzEyLjMzNiAyNjMuNDJMMjU4LjQxMSAyOTIuNDU2QzI1Ny4zMTMgMjkzLjA1NCAyNTYuOTAyIDI5NC40MjcgMjU3LjQ5IDI5NS41MjRDMjU3LjkxMSAyOTYuMzA5IDI1OC43MjUgMjk2Ljc0IDI1OS41NDggMjk2LjcxMVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuNSI+PHBhdGggZD0iTTE0MC41ODEgMjMzLjUxNkMxNDAuNTgxIDIzMy41MTYgMTExLjQzOCAyNTAuMDIzIDE2MS40MzIgMjg1Ljc2NEMxODkuNjc0IDMwNS45NDggMjAzLjk1NyAzMDkuMzc5IDIwNS41OTQgMzIzLjkwN0MyMDYuMjQxIDMyOS42MTIgMjAwLjE1MyAzOTcuMTczIDIwMC4xNTMgMzk3LjE3M0MyMDAuMTUzIDM5Ny4xNzMgMjM3LjUwMiAzNzguNDAxIDIzNy41NiAzNzQuNTY4QzIzNy42MTkgMzcwLjczNSAyMzAuNjQgMjkyLjc5MyAyMzAuNjQgMjkyLjc5M0wxOTMuMjUyIDIzNy4xMTNMMTQwLjU4MSAyMzMuNTI1VjIzMy41MTZaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC41Ij48cGF0aCBkPSJNMjIwLjc5NyAyMjMuOTkyQzIyMC43OTcgMjIzLjk5MiAyMTEuMjg4IDI2NC4wMzYgMjM5LjY4NyAyNzMuOTU3QzI2OC4wODYgMjgzLjg3NyAyODEuMDk0IDI4NS44NjcgMjgxLjA5NCAyODUuODY3TDI4Mi4yMTIgMzUzLjUxNkwzMTMuNjg4IDMzNi43NzNMMzExLjIyOCAyNjMuMzIxQzMxMS4yMjggMjYzLjMyMSAzMTUuOTYzIDI1Mi44NzEgMzA2LjQyNSAyNTEuMjA1QzI5Ni44ODYgMjQ5LjUzOCAyMjAuODA3IDIyMy45OTIgMjIwLjgwNyAyMjMuOTkySDIyMC43OTdaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxnIG9wYWNpdHk9IjAuNSI+PHBhdGggZD0iTTMyMi42OTggMzU3LjQ5N0MzMjIuNjk4IDM1Ny40OTcgMzIxLjYxIDM2Ni43NDIgMzI0LjcwOCAzNzMuNzMxQzMyNy44MDUgMzgwLjcyIDMyMy44MTUgMzg3LjUyMyAzMTIuMjc4IDM4NC4yNzlMMjk5Ljg0OCAzNzcuMDkzQzI5OS44NDggMzc3LjA5MyAzMDMuNTUzIDM2Ny44NzkgMzAzLjc4OCAzNTYuOTk4QzMwNC4wMjQgMzQ2LjExNiAzMTIuMjg3IDM0OC4xNDYgMzEyLjI4NyAzNDguMTQ2TDMyMi42OTggMzU3LjQ5N1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48L2c+PHBhdGggZD0iTTMxMS43MTkgMzg2LjI1TDI5Ny4yNzkgMzc3Ljk2N0wyOTcuOTM2IDM3Ni4zMkMyOTcuOTc1IDM3Ni4yMzIgMzAxLjUxNCAzNjcuMzAxIDMwMS43MyAzNTYuOTQ5QzMwMS44MjggMzUyLjYxNyAzMDMuMDkyIDM0OS40ODkgMzA1LjUwNCAzNDcuNjM3QzMwOC43IDM0NS4xODYgMzEyLjYwMSAzNDYuMTE3IDMxMi43NjggMzQ2LjE0N0wzMTMuMjY4IDM0Ni4yNjRMMzI0Ljg0NSAzNTYuNjc1TDMyNC43MjcgMzU3LjczNEMzMjQuNzI3IDM1Ny44MjIgMzIzLjczNyAzNjYuNDk3IDMyNi41OCAzNzIuODk5QzMyOC40MzMgMzc3LjA3NSAzMjguMTA5IDM4MS4yMTEgMzI1LjcwNyAzODMuOTg2QzMyNC41MzEgMzg1LjM0OCAzMjIuMDkgMzg3LjIwMSAzMTcuNTYxIDM4Ny4xNzFDMzE1LjkwNSAzODcuMTYyIDMxMy45NzMgMzg2Ljg5NyAzMTEuNzE5IDM4Ni4yNlYzODYuMjVaTTMxMS4zNjYgMzUwLjA2OEMzMTAuNjMxIDM0OS45OTkgMzA5LjE2IDM0OS45ODkgMzA3Ljk4NCAzNTAuOTExQzMwNi4yOTggMzUyLjIzNCAzMDUuODg2IDM1NC45NjkgMzA1Ljg0NyAzNTcuMDM4QzMwNS42NjEgMzY1LjUzNyAzMDMuNDY1IDM3Mi45NTcgMzAyLjM2NyAzNzYuMTczTDMxMy4wODEgMzgyLjM2OEMzMTcuNTEyIDM4My41NjQgMzIwLjk5MiAzODMuMTgyIDMyMi42MiAzODEuM0MzMjMuOTUzIDM3OS43NjEgMzI0LjAzMSAzNzcuMjQxIDMyMi44NDUgMzc0LjU2NUMzMjAuMTU5IDM2OC41MTcgMzIwLjM3NSAzNjEuMDk2IDMyMC41NzEgMzU4LjM0MUwzMTEuMzc2IDM1MC4wNzhMMzExLjM2NiAzNTAuMDY4WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yNDMuNjU4IDQwOC44MTVDMjQzLjY1OCA0MDguODE1IDI0Mi42NTggNDE3LjM1MyAyNDUuNTIxIDQyMy44MDRDMjQ4LjM4MyA0MzAuMjU0IDI0NC4yMjcgNDM4LjMyMiAyMzMuNTcxIDQzNS4zMjJMMjIyLjU2MiA0MjYuOTAxQzIyMi41NjIgNDI2LjkwMSAyMjUuOTg0IDQxOC4zOTMgMjI2LjE5OSA0MDguMzQ1QzIyNi40MTUgMzk4LjI5NyAyMzQuMDUxIDQwMC4xNjkgMjM0LjA1MSA0MDAuMTY5TDI0My42NTggNDA4LjgwNVY0MDguODE1WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxwYXRoIGQ9Ik0zMjAuOTgzIDM1OS4wNzVDMzIwLjk4MyAzNTkuMDc1IDMyMC4wODEgMzY2LjcxMSAzMjIuNjQ5IDM3Mi40ODVDMzI1LjIwOCAzNzguMjU5IDMyMS45MTQgMzgzLjg3NiAzMTIuMzc2IDM4MS4yTDMwMi4xMTIgMzc1LjI1OUMzMDIuMTEyIDM3NS4yNTkgMzA1LjE4MSAzNjcuNjUyIDMwNS4zNjcgMzU4LjY2M0MzMDUuNTYzIDM0OS42NzQgMzEyLjM4NiAzNTEuMzUgMzEyLjM4NiAzNTEuMzVMMzIwLjk4MyAzNTkuMDc1WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxnIG9wYWNpdHk9IjAuNiI+PHBhdGggZD0iTTMyMC45ODMgMzU5LjA3NUMzMjAuOTgzIDM1OS4wNzUgMzIwLjA4MSAzNjYuNzExIDMyMi42NDkgMzcyLjQ4NUMzMjUuMjA4IDM3OC4yNTkgMzIxLjkxNCAzODMuODc2IDMxMi4zNzYgMzgxLjJMMzAyLjExMiAzNzUuMjU5QzMwMi4xMTIgMzc1LjI1OSAzMDUuMTgxIDM2Ny42NTIgMzA1LjM2NyAzNTguNjYzQzMwNS41NjMgMzQ5LjY3NCAzMTIuMzg2IDM1MS4zNSAzMTIuMzg2IDM1MS4zNUwzMjAuOTgzIDM1OS4wNzVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PC9nPjxnIG9wYWNpdHk9IjAuNSI+PHBhdGggZD0iTTI0My42NTggNDA4LjgxNUMyNDMuNjU4IDQwOC44MTUgMjQyLjY1OCA0MTcuMzUzIDI0NS41MjEgNDIzLjgwNEMyNDguMzgzIDQzMC4yNTQgMjQ0LjIyNyA0MzguMzIyIDIzMy41NzEgNDM1LjMyMkwyMjIuNTYyIDQyNi45MDFDMjIyLjU2MiA0MjYuOTAxIDIyNS45ODQgNDE4LjM5MyAyMjYuMTk5IDQwOC4zNDVDMjI2LjQxNSAzOTguMjk3IDIzNC4wNTEgNDAwLjE2OSAyMzQuMDUxIDQwMC4xNjlMMjQzLjY1OCA0MDguODA1VjQwOC44MTVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0yMzMuMDIyIDQzNy4yOTFMMjIwLjA4MiA0MjcuNTg2TDIyMC42NiA0MjYuMTM1QzIyMC43IDQyNi4wNTcgMjIzLjk1NCA0MTcuODIyIDIyNC4xNSA0MDguMjk0QzIyNC4yMzggNDA0LjI0NiAyMjUuNDM0IDQwMS4zMTUgMjI3LjY5OSAzOTkuNTc5QzIzMC43MTggMzk3LjI2NiAyMzQuMzg0IDM5OC4xMzggMjM0LjU0MSAzOTguMTc4TDIzNS4wNDEgMzk4LjI5NUwyNDUuODI0IDQwNy45OUwyNDUuNzA3IDQwOS4wNDlDMjQ1LjY5NyA0MDkuMTI3IDI0NC43OTUgNDE3LjA5NyAyNDcuNDAyIDQyMi45NjlDMjQ5LjE5NiA0MjcuMDA4IDI0OC42NjcgNDMxLjU2NiAyNDYuMDU5IDQzNC41ODVDMjQ0LjA4OSA0MzYuODU5IDI0MS4xNzggNDM4LjAyNiAyMzcuNzQ3IDQzNy45OTdDMjM2LjI2NiA0MzcuOTg3IDIzNC42NzggNDM3Ljc1MiAyMzMuMDMyIDQzNy4yOTFIMjMzLjAyMlpNMjMzLjEzOSA0MDIuMDk5QzIzMi40NzMgNDAyLjA0IDIzMS4yMDggNDAyLjA2IDIzMC4xOTkgNDAyLjgzNEMyMjguNjY5IDQwNC4wMSAyMjguMjk3IDQwNi41IDIyOC4yNTggNDA4LjM4MkMyMjguMDkxIDQxNi4zMjMgMjI2LjAyMyA0MjMuMjUzIDIyNS4wMTMgNDI2LjE4NEwyMzQuNTAyIDQzMy40MzhDMjM4LjI3NiA0MzQuNDA5IDI0MS4yNDYgNDMzLjg2IDI0Mi45NTIgNDMxLjg5OUMyNDQuNTMgNDMwLjA3NiAyNDQuODA1IDQyNy4yMjMgMjQzLjY0OCA0MjQuNjI2QzI0MS4xNzggNDE5LjA2NyAyNDEuMzQ0IDQxMi4yNTQgMjQxLjUzMSA0MDkuNjQ3TDIzMy4xMyA0MDIuMDk5SDIzMy4xMzlaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTMyMC45MDQgMzY5Ljc5M0MzMjMuMDk5IDM2OS4xNjYgMzI1LjQ0MiAzNzAuMjg0IDMyNi40ODEgMzcyLjMyM0MzMjguODU0IDM3Ni45OTggMzM1LjUxIDM4OC42MjUgMzQ1LjMyMiAzOTMuODk5QzM1Ny43NjIgNDAwLjU5NCAzNTAuNTE4IDQwOC4wMzQgMzQ0LjQ5OSA0MDkuMzA5QzM0MC44MTMgNDEwLjA4MyAzMzMuOTUxIDQwNy40NDYgMzI4LjYxOCA0MDQuOTY2QzMyNC45MjMgNDAzLjI1IDMyMS41OCA0MDAuODg4IDMxOC40NTMgMzk4LjI4QzMxNi42NTkgMzk2Ljc5IDMxMy45NDQgMzk1LjE3MyAzMTAuMjQ4IDM5NC42MzRDMzA0LjU1MyAzOTMuOCAyOTguMTUxIDM5MC4xOTMgMjk1LjUwNSAzODguNTc2QzI5NC43MiAzODguMDk1IDI5NC4yODkgMzg3LjIzMyAyOTQuMzU4IDM4Ni4zMTFDMjk0LjY5MSAzODEuOTg4IDI5NS44MzggMzY5LjUyOSAyOTcuOTU1IDM2Ny45NDFDMzAwLjUyNCAzNjYuMDE5IDMwMy40MzUgMzY2LjA1OSAzMDMuODU3IDM3MS4zMDNDMzA0LjI3OCAzNzYuNTQ4IDMxMi42NCAzNzguOTEgMzEzLjcwOCAzNzUuNDVDMzE0LjM5NSAzNzMuMjU0IDMxNy43NzcgMzcwLjY3NiAzMjAuOTEzIDM2OS43ODRMMzIwLjkwNCAzNjkuNzkzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0zMjcuNzQ2IDQwNi44MjhDMzI0LjI3NiA0MDUuMjIxIDMyMC45MDQgNDAzLjAwNSAzMTcuMTMgMzk5Ljg1OUMzMTUuMDQyIDM5OC4xMzMgMzEyLjYzIDM5Ny4wNTUgMzA5LjkzNCAzOTYuNjYzQzMwMy44MjcgMzk1Ljc3MSAyOTcuMDQ0IDM5MS45MzggMjk0LjQxNyAzOTAuMzNDMjkyLjk4NSAzODkuNDQ4IDI5Mi4xNzIgMzg3Ljg2IDI5Mi4yOTkgMzg2LjE2NEMyOTMuNjcyIDM2OC41OTggMjk1Ljg3NyAzNjYuOTQxIDI5Ni43MSAzNjYuMzEzQzI5OC43ODkgMzY0Ljc2NSAzMDAuODk2IDM2NC4zNDMgMzAyLjY1MSAzNjUuMTI3QzMwNC41NDMgMzY1Ljk4IDMwNS42MzEgMzY4LjAwOSAzMDUuODg2IDM3MS4xNDZDMzA2LjAzMyAzNzIuOTUgMzA3Ljc2OCAzNzQuMTk1IDMwOS4yMDkgMzc0LjcxNEMzMTAuNjAxIDM3NS4yMTQgMzExLjU4MSAzNzUuMDE4IDMxMS43MzggMzc0Ljg1MkMzMTIuNzE4IDM3MS43MDUgMzE2Ljg3NSAzNjguODEzIDMyMC4zNDUgMzY3LjgyM0MzMjMuNDUyIDM2Ni45MzEgMzI2LjgwNSAzNjguNDMxIDMyOC4zMDUgMzcxLjM5MUMzMzAuNjE4IDM3NS45NSAzMzcuMDEgMzg3LjA5NSAzNDYuMjkzIDM5Mi4wOTVDMzUzLjQ4OCAzOTUuOTY3IDM1NC41MTggNDAwLjExNCAzNTQuMTE2IDQwMi45MDdDMzUzLjQ4OCA0MDcuMjg5IDM0OS4wMTggNDEwLjQ1NSAzNDQuOTIxIDQxMS4zMThDMzQ0LjM0MiA0MTEuNDQ2IDM0My42OTUgNDExLjQ5NSAzNDIuOTggNDExLjQ5NUMzMzkuNDcgNDExLjQ2NSAzMzQuMzczIDQwOS45MDcgMzI3Ljc1NiA0MDYuODI4SDMyNy43NDZaTTMyMS40NjIgMzcxLjc3NEMzMTguNzQ3IDM3Mi41NDggMzE2LjA2MSAzNzQuNzY0IDMxNS42NDkgMzc2LjA3N0MzMTQuOTczIDM3OC4yNDQgMzEyLjgyNiAzNzkuNCAzMTAuMDAzIDM3OS4wOTZDMzA2LjIzOSAzNzguNjc1IDMwMi4xNDEgMzc1LjcyNCAzMDEuNzk4IDM3MS40OEMzMDEuNjUxIDM2OS41NzggMzAxLjE0MSAzNjguOTQxIDMwMC45NjUgMzY4Ljg2MkMzMDAuNzg4IDM2OC43ODQgMzAwLjEzMiAzNjguODYyIDI5OS4yNTkgMzY5LjUwOUMyOTguNDM2IDM3MC40OCAyOTcuMTkxIDM3Ni4yMDUgMjk2LjM4NyAzODYuNDY4QzI5Ni4zODcgMzg2LjU3NiAyOTYuNDA3IDM4Ni43MzMgMjk2LjU2MyAzODYuODMxQzI5OC45NzUgMzg4LjMxMSAzMDUuMTcgMzkxLjgzIDMxMC41MzIgMzkyLjYwNUMzMTMuOTI0IDM5My4xMDUgMzE3LjEyIDM5NC41MTYgMzE5Ljc1NyAzOTYuNzAyQzMyMy4yNTYgMzk5LjYxNCAzMjYuMzQ0IDQwMS42NDMgMzI5LjQ4MSA0MDMuMTAzQzMzOS4yMDYgNDA3LjYyMiAzNDIuOTMxIDQwNy41NDQgMzQ0LjA3OCA0MDcuMjk5QzM0Ni42ODUgNDA2Ljc1IDM0OS43MTQgNDA0LjY4MiAzNTAuMDU3IDQwMi4zMTlDMzUwLjM2MSA0MDAuMjAyIDM0OC4zMzIgMzk3Ljg0OSAzNDQuMzUyIDM5NS43MDJDMzM0LjA0OSAzOTAuMTU0IDMyNy4xNDggMzc4LjE0NSAzMjQuNjU4IDM3My4yNDRDMzI0LjE2OCAzNzIuMjc0IDMyMy4xNzggMzcxLjY3NiAzMjIuMTY4IDM3MS42NjZDMzIxLjkzMyAzNzEuNjY2IDMyMS43MDggMzcxLjY5NSAzMjEuNDcyIDM3MS43NjRMMzIxLjQ2MiAzNzEuNzc0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0zMDMuODU3IDM3MS4zMTNDMzAzLjkzNSAzNzIuMzEzIDMwNC4zMDcgMzczLjIwNSAzMDQuODU2IDM3My45NjlDMzAzLjQwNiAzODAuNjQ1IDMwNC45NzQgMzg2LjczMyAzMDcuMzM3IDM4Ny4yNzJDMzA5LjY5OSAzODcuODExIDMxNy4zMDYgMzg5LjQ0OCAzMjEuNDkyIDM5Mi4zNjlDMzI1LjY3OCAzOTUuMjkxIDMzNy42OTYgNDAzLjUzNSAzNDMuNzQ0IDQwNC4xMDNDMzQ5LjcyNCA0MDQuNjcyIDM1MC4zOSA0MDEuOTc2IDM1MS4yNzMgNDAwLjUwNkMzNTMuMjE0IDQwNS4xNDIgMzQ4Ljc4MyA0MDguNDA3IDM0NC41MTkgNDA5LjMwOUMzNDAuODMzIDQxMC4wODMgMzMzLjk3MSA0MDcuNDQ2IDMyOC42MzggNDA0Ljk2NkMzMjQuOTQyIDQwMy4yNSAzMjEuNiA0MDAuODg4IDMxOC40NjMgMzk4LjI4QzMxNi42NjkgMzk2Ljc5IDMxMy45NjMgMzk1LjE3MyAzMTAuMjU4IDM5NC42MzRDMzA0LjU2MiAzOTMuOCAyOTguMTYxIDM5MC4xOTMgMjk1LjUxNCAzODguNTc2QzI5NC43MyAzODguMDk1IDI5NC4yOTkgMzg3LjIzMyAyOTQuMzY3IDM4Ni4zMTFDMjk0LjcwMSAzODEuOTg4IDI5NS44NDggMzY5LjUyOSAyOTcuOTY1IDM2Ny45NDFDMzAwLjUzMyAzNjYuMDE5IDMwMy40NDUgMzY2LjA1OSAzMDMuODY2IDM3MS4zMDNMMzAzLjg1NyAzNzEuMzEzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0zMjcuNzY2IDQwNi44MjhDMzI0LjI5NSA0MDUuMjIxIDMyMC45MjMgNDAzLjAwNSAzMTcuMTQ5IDM5OS44NTlDMzE1LjA2MSAzOTguMTMzIDMxMi42NSAzOTcuMDU1IDMwOS45NjQgMzk2LjY2M0MzMDQuMDgyIDM5NS44MSAyOTcuNzIgMzkyLjMzIDI5NC40NDYgMzkwLjMzQzI5My4wMDUgMzg5LjQ0OCAyOTIuMTkxIDM4Ny44NSAyOTIuMzI4IDM4Ni4xNjRDMjkzLjY5MSAzNjguNTk4IDI5NS45MDYgMzY2Ljk0MSAyOTYuNzQgMzY2LjMxM0MyOTguODE4IDM2NC43NjUgMzAwLjkyNiAzNjQuMzQzIDMwMi42OCAzNjUuMTI3QzMwNC41NzIgMzY1Ljk4IDMwNS42NiAzNjguMDA5IDMwNS45MTUgMzcxLjE0NkMzMDUuOTY0IDM3MS43MTUgMzA2LjE3IDM3Mi4yNjQgMzA2LjUzMyAzNzIuNzc0TDMwNy4wNjIgMzczLjUxOUwzMDYuODY2IDM3NC40MTFDMzA1LjU4MiAzODAuMzMxIDMwNy4wMTMgMzg0Ljc5MiAzMDcuNzk3IDM4NS4yODJMMzA4LjE3IDM4NS4zN0MzMTAuOTU0IDM4Ni4wMDcgMzE4LjM1NSAzODcuNjkzIDMyMi42NjggMzkwLjcwM0MzMzYuMTQ3IDQwMC4xMjMgMzQxLjc4NCA0MDEuODY4IDM0My45NCA0MDIuMDc0QzM0Ny44OTEgNDAyLjQ0NyAzNDguNTE4IDQwMS4zIDM0OS4xNzUgNDAwLjA3NEMzNDkuMjkzIDM5OS44NTkgMzQ5LjQgMzk5LjY1MyAzNDkuNTE4IDM5OS40NjdMMzUxLjU5NiAzOTUuOTk2TDM1My4xNjUgMzk5LjczMUMzNTQuMDU3IDQwMS44NjggMzUzLjk5OCA0MDQuMDE1IDM1Mi45ODggNDA1Ljk0NkMzNTEuMzkgNDA4Ljk5NSAzNDcuNzgzIDQxMC43MyAzNDQuOTQgNDExLjMyOEMzNDQuMzYyIDQxMS40NTUgMzQzLjcwNSA0MTEuNTE0IDM0Mi45ODkgNDExLjUwNEMzMzkuNDggNDExLjQ3NSAzMzQuMzczIDQwOS45MTYgMzI3Ljc2NiA0MDYuODM4VjQwNi44MjhaTTM0My41NDggNDA2LjE0MkMzMzkgNDA1LjcxMSAzMzEuMTg3IDQwMS42NDMgMzIwLjMxNSAzOTQuMDU1QzMxNi42NTkgMzkxLjQ5NyAzMDkuODI2IDM4OS45NDggMzA3LjI1OCAzODkuMzZMMzA2Ljg3NiAzODkuMjcyQzMwMi44MTcgMzg4LjM0IDMwMS40ODQgMzgwLjk3OCAzMDIuNjkgMzc0LjM3MUMzMDIuMTkgMzczLjQ3IDMwMS44OTYgMzcyLjQ5OSAzMDEuODE4IDM3MS40OEMzMDEuNjYxIDM2OS41NjggMzAxLjE2MSAzNjguOTQxIDMwMC45ODQgMzY4Ljg2MkMzMDAuODE4IDM2OC43ODQgMzAwLjE2MSAzNjguODYyIDI5OS4yNzkgMzY5LjUwOUMyOTguNTkyIDM3MC4zMjMgMjk3LjI1OSAzNzUuNTA5IDI5Ni40MDYgMzg2LjQ3OEMyOTYuMzk3IDM4Ni41ODYgMjk2LjQxNiAzODYuNzMzIDI5Ni41NzMgMzg2LjgzMUMyOTguOTg1IDM4OC4zMTEgMzA1LjE5IDM5MS44MyAzMTAuNTQyIDM5Mi42MDVDMzEzLjkzNCAzOTMuMTA1IDMxNy4xMiAzOTQuNTE2IDMxOS43NTcgMzk2LjcwMkMzMjMuMjU2IDM5OS42MTQgMzI2LjM0NCA0MDEuNjQzIDMyOS40ODEgNDAzLjEwM0MzMzYuMzIzIDQwNi4yODkgMzQxLjY0NiA0MDcuODA5IDM0NC4wNzcgNDA3LjI5OUMzNDUuMjU0IDQwNy4wNTQgMzQ2LjM1MiA0MDYuNjEzIDM0Ny4yNTQgNDA2LjA2NEMzNDYuMjI0IDQwNi4yMyAzNDQuOTk5IDQwNi4yNzkgMzQzLjUyOCA0MDYuMTMyTDM0My41NDggNDA2LjE0MloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjM4LjMyNCA0MjIuMDM3QzIzNC44MTUgNDIzLjMxMiAyMzMuNDIzIDQyNi44OTkgMjMyLjg4NCA0MjkuOTU4QzIzMi41NTEgNDMxLjg0IDIzMC4xOTggNDMyLjUxNiAyMjguOTA0IDQzMS4xMDVDMjI2LjMzNiA0MjguMjkxIDIyMy40MzQgNDI0LjYxNSAyMjMuODk1IDQyMi44MjFDMjI0LjcwOCA0MTkuNjc1IDIyNS4zNjUgNDE2LjQyIDIyNS4zNjUgNDE2LjQyQzIyNS4zNjUgNDE2LjQyIDIyMi4xMiA0MTIuNjk1IDIxOS4wMzIgNDE4Ljk3OUMyMTUuOTU0IDQyNS4yNjIgMjE3LjU5MSA0MzIuNTU2IDIxNy41NzIgNDM1LjU5NUMyMTcuNTUyIDQzOC42MzMgMjI0LjA3MSA0NDIuOTI3IDIyOS4xMzkgNDQ2Ljg0OEMyMzQuMjA3IDQ1MC43NjkgMjM4LjUxMSA0NTguNjIxIDI0NC44NjMgNDY0LjU4MUMyNTEuMDc4IDQ3MC40MTQgMjY4Ljg5OSA0NjguNjMgMjYyLjMzMSA0NTQuOTk0QzI1NS43NjQgNDQxLjM0OSAyNTMuNzE1IDQzOS41MTYgMjUyLjc3NCA0MzUuMTQ0QzI1MS44MzMgNDMwLjc3MiAyNDguODIzIDQxOC4wOTcgMjQzLjg4MyA0MTguMDA4QzI0My44ODMgNDE4LjAwOCAyNDMuODI0IDQyMC43NjMgMjQ1LjcxNiA0MjQuMzUxQzI0NS43MTYgNDI0LjM1MSAyNDMuNTM5IDQyMC4xNDUgMjM4LjMwNSA0MjIuMDQ3TDIzOC4zMjQgNDIyLjAzN1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjQzLjQ4MSA0NjYuMDczQzI0MC4zMTUgNDYzLjExMyAyMzcuNzM3IDQ1OS44IDIzNS4yMzcgNDU2LjYxNEMyMzIuNzE4IDQ1My4zOTggMjMwLjM0NSA0NTAuMzU5IDIyNy45MDUgNDQ4LjQ2N0MyMjcuMDgxIDQ0Ny44MyAyMjYuMjE5IDQ0Ny4xODMgMjI1LjM0NiA0NDYuNTI3QzIyMC4wNzIgNDQyLjU2NiAyMTUuNTE0IDQzOS4xNDUgMjE1LjUzMyA0MzUuNTc3QzIxNS41MzMgNDM0Ljk1OSAyMTUuNDY1IDQzNC4xNTUgMjE1LjM4NiA0MzMuMjI0QzIxNS4wNTMgNDI5LjM1MiAyMTQuNTQzIDQyMy41IDIxNy4yIDQxOC4wNzlDMjE4LjYyMSA0MTUuMTg3IDIyMC4zODYgNDEzLjU3OSAyMjIuNDU0IDQxMy4zMTVDMjI1LjAxMyA0MTIuOTkxIDIyNi43MjggNDE0Ljg2NCAyMjYuOTE0IDQxNS4wNzlMMjI3LjU4MSA0MTUuODQ0TDIyNy4zNzUgNDE2LjgzNEMyMjcuMzc1IDQxNi44MzQgMjI2LjY5OSA0MjAuMTQ3IDIyNS44OTUgNDIzLjI0NUMyMjUuODk1IDQyMy4yNjUgMjMwLjg1NSA0MjkuNjA3IDIzMC44NTUgNDI5LjYwN0MyMzEuNzE4IDQyNC42OTYgMjM0LjA2MSA0MjEuNDEyIDIzNy42MDkgNDIwLjExOEMyMzkuMjQ2IDQxOS41MiAyNDAuNzA3IDQxOS4zOTIgMjQxLjk2MiA0MTkuNTY5QzI0MS44MjUgNDE4LjY2NyAyNDEuODM0IDQxOC4wOTggMjQxLjgzNCA0MTcuOTYxTDI0MS44ODMgNDE1LjkyMkwyNDMuOTIyIDQxNS45NjFDMjQ1LjYxOCA0MTUuOTkxIDI1MC43NzUgNDE2LjA3OSAyNTQuNzg0IDQzNC43MTRDMjU1LjI2NCA0MzYuOTM5IDI1Ni4wMzkgNDM4LjM5IDI1Ny45MzEgNDQxLjlDMjU5LjM4MSA0NDQuNTc2IDI2MS4zNTIgNDQ4LjI1MiAyNjQuMTc1IDQ1NC4xMDRDMjY4LjAwOCA0NjIuMDU0IDI2NC4xMjYgNDY2LjA1NCAyNjIuMjgzIDQ2Ny40MDdDMjYwLjA5NyA0NjkuMDE0IDI1Ny4wMzggNDY5Ljc3OSAyNTMuOTExIDQ2OS43NDlDMjUwLjAxIDQ2OS43MiAyNDUuOTkxIDQ2OC40NTUgMjQzLjQ1MiA0NjYuMDczSDI0My40ODFaTTI0My45MjIgNDI1LjMwM0MyNDMuOTIyIDQyNS4zMDMgMjQzLjkxMyA0MjUuMjg0IDI0My45MDMgNDI1LjI3NEMyNDMuNzg1IDQyNS4wNTggMjQyLjQzMiA0MjIuNzI1IDIzOS4wMjEgNDIzLjk3QzIzNi44OTQgNDI0Ljc0NSAyMzUuNTAyIDQyNi44ODIgMjM0LjkwNCA0MzAuMzEzQzIzNC42MiA0MzEuOTYgMjMzLjQ0MyA0MzMuMjYzIDIzMS44MzYgNDMzLjczNEMyMzAuMjI4IDQzNC4xOTUgMjI4LjUyMiA0MzMuNzM0IDIyNy4zOTUgNDMyLjQ4OUMyMjEuNzk3IDQyNi4zNTIgMjIxLjUyMyA0MjMuODMzIDIyMS45MTUgNDIyLjMxNEMyMjIuMzk1IDQyMC40NzEgMjIyLjgxNyA0MTguNTk4IDIyMy4wNzIgNDE3LjM3M0MyMjMuMDQyIDQxNy4zNzMgMjIzLjAwMyA0MTcuMzczIDIyMi45NzQgNDE3LjM3M0MyMjIuODE3IDQxNy4zOTMgMjIxLjk4NCA0MTcuNjI4IDIyMC44ODYgNDE5Ljg3M0MyMTguNzI5IDQyNC4yNzQgMjE5LjE3IDQyOS40NCAyMTkuNDc0IDQzMi44NjFDMjE5LjU3MiA0MzMuOTUgMjE5LjY1MSA0MzQuODkxIDIxOS42NDEgNDM1LjYwNkMyMTkuNjMxIDQzNy4xMDYgMjI0Ljk0NCA0NDEuMTA2IDIyNy44MDcgNDQzLjI1MkMyMjguNjg5IDQ0My45MTkgMjI5LjU3MSA0NDQuNTc2IDIzMC40MDQgNDQ1LjIyM0MyMzMuMjQ3IDQ0Ny40MTkgMjM1Ljc3NiA0NTAuNjU0IDIzOC40NTIgNDU0LjA4NUMyNDAuODU0IDQ1Ny4xNTMgMjQzLjM0NCA0NjAuMzI5IDI0Ni4yNzUgNDYzLjA4M0MyNDkuNDEyIDQ2Ni4wMjQgMjU2LjUxOSA0NjYuNTU0IDI1OS44NzIgNDY0LjEwM0MyNjIuMTE2IDQ2Mi40NTYgMjYyLjMzMiA0NTkuNjkyIDI2MC40OTkgNDU1Ljg3OEMyNTcuNzE1IDQ1MC4xMDUgMjU1Ljc2NCA0NDYuNDc4IDI1NC4zMzMgNDQzLjgzMUMyNTIuMzYzIDQ0MC4xODQgMjUxLjM4MiA0MzguMzUxIDI1MC43ODQgNDM1LjU1N0MyNDkuNTQ5IDQyOS44MTMgMjQ4LjIyNiA0MjYuMDQ5IDI0Ny4wNCA0MjMuNjY2TDI0My45MjIgNDI1LjI5NFY0MjUuMzAzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMjUuMzg2IDQxNi40MzJDMjI1LjM4NiA0MTYuNDMyIDIyNC43MTkgNDE5LjY4NiAyMjMuOTE1IDQyMi44MzNDMjIzLjg5NSA0MjIuOTIxIDIyMy45MTUgNDIzLjAzOSAyMjMuOTE1IDQyMy4xMzdDMjIzLjcwOSA0MjMuNjk2IDIyMy40OTQgNDI0LjI0NSAyMjMuMzQ3IDQyNC44MTNDMjIzLjA4MiA0MjUuODMzIDIyMi45NjQgNDI2Ljg5MSAyMjIuOTQ1IDQyNy45NEMyMjIuODI3IDQzMy4yNTMgMjI1LjQ5MyA0MzguMjUzIDIyOS42MyA0NDEuNTg2QzIzNC4yMzcgNDQ1LjMxMSAyNDEuNDUyIDQ1MS43NzEgMjQ2LjE4NyA0NTkuMDg0QzI1My4zNjMgNDcwLjE2MSAyNjIuMDc3IDQ2NC41MTUgMjYyLjA3NyA0NjQuNTE1QzI2Mi4wNTggNDY3LjM3NyAyNDkuMjc1IDQ2OC42OTEgMjQ0LjkwMyA0NjQuNTkzQzIzOC41NTEgNDU4LjYzMyAyMzQuMjQ3IDQ1MC43ODEgMjI5LjE3OSA0NDYuODZDMjI0LjExMSA0NDIuOTM5IDIxNy41OTIgNDM4LjY0NSAyMTcuNjEyIDQzNS42MDZDMjE3LjYzMiA0MzIuNTY3IDIxNS45OTQgNDI1LjI3NCAyMTkuMDczIDQxOC45OUMyMjIuMTUxIDQxMi43MDcgMjI1LjQwNSA0MTYuNDMyIDIyNS40MDUgNDE2LjQzMkgyMjUuMzg2WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yNDMuNDgxIDQ2Ni4wODNDMjQwLjMxNSA0NjMuMTIzIDIzNy43MzcgNDU5LjgwOSAyMzUuMjM3IDQ1Ni42MjNDMjMyLjcxOCA0NTMuNDA4IDIzMC4zNDUgNDUwLjM2OSAyMjcuOTA1IDQ0OC40NzdDMjI3LjA4MSA0NDcuODQgMjI2LjIxOCA0NDcuMTkzIDIyNS4zNTYgNDQ2LjU0NkMyMjAuMDcyIDQ0Mi41ODYgMjE1LjUxNCA0MzkuMTY1IDIxNS41NDMgNDM1LjU4N0MyMTUuNTQzIDQzNC45NjkgMjE1LjQ3NSA0MzQuMTY1IDIxNS4zOTYgNDMzLjIzNEMyMTUuMDYzIDQyOS4zNjIgMjE0LjU1MyA0MjMuNTEgMjE3LjIxIDQxOC4wODlDMjE4LjYzMSA0MTUuMTk3IDIyMC4zOTYgNDEzLjU4OSAyMjIuNDY0IDQxMy4zMjRDMjI1LjAyMyA0MTIuOTkxIDIyNi43MzggNDE0Ljg3MyAyMjYuOTI0IDQxNS4wODlMMjI3LjU5MSA0MTUuODU0TDIyNy4zODUgNDE2Ljg0NEMyMjcuMzg1IDQxNi44NDQgMjI2LjczOCA0MjAuMDEgMjI1Ljk0NCA0MjMuMTI3VjQyMy4xNzZMMjI1Ljc4NyA0MjMuOTQxQzIyNS42MTEgNDI0LjQwMiAyMjUuNDM0IDQyNC44NjIgMjI1LjMwNyA0MjUuMzMzQzIyNS4xMDEgNDI2LjEzNyAyMjQuOTgzIDQyNy4wMzkgMjI0Ljk2NCA0MjcuOTk5QzIyNC44NjYgNDMyLjQ1IDIyNy4wODEgNDM2LjkzOSAyMzAuODg1IDQ0MC4wMDhDMjM2LjAwMiA0NDQuMTM1IDI0My4wOTkgNDUwLjYxNCAyNDcuODczIDQ1Ny45ODZDMjUzLjY5NiA0NjYuOTg1IDI2MC4yMTUgNDYzLjI2IDI2MC45MiA0NjIuODA5TDI2NC4xMTYgNDYwLjc0MUwyNjQuMDg3IDQ2NC41NDRDMjY0LjA4NyA0NjUuNTczIDI2My41NjcgNDY3LjAyNCAyNjEuMTc1IDQ2OC4wNDRDMjU5LjM1MiA0NjguODI4IDI1Ni42NDYgNDY5LjI3OSAyNTMuODIzIDQ2OS4yNDlDMjQ5LjkzMSA0NjkuMjIgMjQ1LjgwNCA0NjguMjg5IDI0My40NjIgNDY2LjA5M0wyNDMuNDgxIDQ2Ni4wODNaTTIyMS45MjUgNDIyLjMxNEMyMjIuNDA1IDQyMC40OCAyMjIuODI3IDQxOC41OTggMjIzLjA4MiA0MTcuMzgzQzIyMy4wNjIgNDE3LjM4MyAyMjMuMDIzIDQxNy4zODMgMjIyLjk5MyA0MTcuMzgzQzIyMi41NjIgNDE3LjQ0MiAyMjEuNzQ4IDQxOC4xMjggMjIwLjg4NiA0MTkuODkyQzIxOC43MjkgNDI0LjI5NCAyMTkuMTcgNDI5LjQ2IDIxOS40NzQgNDMyLjg4MUMyMTkuNTcyIDQzMy45NjkgMjE5LjY1MSA0MzQuOTEgMjE5LjY0MSA0MzUuNjI2QzIxOS42MzEgNDM3LjEyNiAyMjQuOTU0IDQ0MS4xMjUgMjI3LjgxNiA0NDMuMjcyQzIyOC42OTkgNDQzLjkzOSAyMjkuNTgxIDQ0NC41OTUgMjMwLjQxNCA0NDUuMjQyQzIzMy4yNTcgNDQ3LjQzOCAyMzUuNzg2IDQ1MC42NzMgMjM4LjQ2MiA0NTQuMTA0QzI0MC44NjQgNDU3LjE3MiAyNDMuMzU0IDQ2MC4zNDggMjQ2LjI4NSA0NjMuMTAzQzI0Ni41ODkgNDYzLjM4NyAyNDYuOTYxIDQ2My42NDIgMjQ3LjM3MyA0NjMuODY4QzI0Ni4zODMgNDYyLjg3OCAyNDUuNDAzIDQ2MS42ODIgMjQ0LjQ1MiA0NjAuMjExQzIzOS45NzIgNDUzLjI5IDIzMy4yMDggNDQ3LjEzNCAyMjguMzI2IDQ0My4xOTRDMjIzLjU0MiA0MzkuMzMxIDIyMC43NTggNDMzLjYxNiAyMjAuODc2IDQyNy45MDFDMjIwLjkwNSA0MjYuNjM3IDIyMS4wNjIgNDI1LjQzMSAyMjEuMzQ2IDQyNC4zMTNDMjIxLjQ3NCA0MjMuODA0IDIyMS42NSA0MjMuMzA0IDIyMS44NDYgNDIyLjc3NEwyMjEuOTI1IDQyMi4zMzNWNDIyLjMxNFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjQ2Ljk2OSA0MjMuMTc4TDI0NC4wNzIgNDI0LjQzM0wyNDYuMjk0IDQyOS41NkwyNDkuMTkgNDI4LjMwNUwyNDYuOTY5IDQyMy4xNzhaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI0Ny45MzEgNDA4LjM1OUMyNDcuOTMxIDQwOC4zNTkgMjQ1LjYwOCAzNzMuNDAyIDI0OC43MzUgMzQxLjYyMUMyNTAuMTM3IDMyNy4zODcgMjUwLjg4MiAzMTcuMTA0IDI1MS4yNjQgMzEwLjA4NUMyNTEuNjk2IDMwMi4zMjIgMjQ5LjUzOSAyOTQuNjM2IDI0NS4xMDggMjg4LjI0NUwyMjQuMzQ2IDI1OC4yMzhDMjI0LjA3MSAyNTcuODM3IDIyNC40OTMgMjU3LjMzNyAyMjQuOTM0IDI1Ny41MzNDMjMxLjE1OSAyNjAuMzE3IDI1NC44NzIgMjcwLjExIDI3OS4yMzIgMjY5Ljg0NUwyOTkuNjkgMjcyLjI3NkMzMDAuMDczIDI3Mi4zMjUgMzAwLjI4OCAyNzIuNzE3IDMwMC4xMDIgMjczLjA1MUMyOTguNzM5IDI3NS41MjEgMjk0LjQ1NiAyODQuNjg2IDI5NS44OTcgMjk5Ljc5M0MyOTcuNjAyIDMxNy42NzMgMzAxLjU2MyAzMzEuNzY5IDMwMS45NzQgMzU1LjY4OEMzMDEuOTc0IDM1NS42ODggMzEzLjcxOCAzNjYuMDMgMzI1Ljg5MyAzNTUuMDhDMzI1Ljg5MyAzNTUuMDggMzI1LjUzIDI5OC4zMTIgMzI2LjQ5MSAyNzUuNzE3QzMyNy40NTIgMjUzLjEyMSAzMjcuMjI2IDI0Ny44NjcgMzA5LjY5OSAyMzYuOTU3QzI5Mi4xNzEgMjI2LjA0NiAyNTIgMjIxLjUzNyAyMzMuMzQ1IDIyMS4xMzVDMjE0LjY5IDIyMC43MzMgMTgxLjIyMyAyMzIuNTY1IDE4MS4yMjMgMjMyLjU2NUwxNjguMDE5IDI0MS4zOTdDMTY4LjAxOSAyNDEuMzk3IDE1NS45OTEgMjY4LjExIDE5MS41NjUgMjkwLjE5NkMxOTEuNTY1IDI5MC4xOTYgMjEyLjI1OSAzMDYuMzUxIDIyMC4xNyAzMTIuNDQ4QzIyMC4zOTUgMzEyLjYyNCAyMjAuNDU0IDMxMi45MTggMjIwLjI5NyAzMTMuMTY0QzIxOS4xMjEgMzE1LjA2NSAyMTQuNDc1IDMyMy43NDEgMjE0LjU2MyAzNDEuODc2QzIxNC42NzEgMzYyLjYzOCAyMjAuNTkxIDM3OC43MTUgMjIyLjI2OCA0MDAuMjcxTDIyMi43MzggNDA3LjYzM0MyMjIuNzM4IDQwNy42MzMgMjMyLjYyOSA0MTUuODM4IDI0Ny45MjIgNDA4LjMzOUwyNDcuOTMxIDQwOC4zNTlaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjMiPjxwYXRoIGQ9Ik0yMzAuNjM5IDI2OC44NjlMMjE4LjQ2NCAyNzYuNDI3TDE3OS45ODggMjUyLjQ0TDE4NS4zMjEgMjQ4LjIzNEwyMTYuNTYzIDI2Ny4yODFMMjI0Ljk3MyAyNjIuNDc4TDIzMC42MzkgMjY4Ljg2OVoiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48L2c+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjMiPjxwYXRoIGQ9Ik0yNDAuMTE5IDI2My41NDhMMjkyLjMwOSAyMzAuMzY2TDI4NS4zMSAyMjguMTQxTDIyOS4xMSAyNjEuNTA5TDI0MC4xMTkgMjYzLjU0OFoiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48L2c+PHBhdGggZD0iTTIyMS40MzUgNDA5LjIyOEwyMjAuNzU4IDQwOC42NkwyMjAuMjI5IDQwMC40NDVDMjE5LjUwNCAzOTEuMDU0IDIxNy45MzUgMzgyLjYzMyAyMTYuNDM1IDM3NC40ODdDMjE0LjQ1NSAzNjMuNzkyIDIxMi41ODMgMzUzLjY5NiAyMTIuNTI0IDM0MS44OTNDMjEyLjQ0NiAzMjUuNzQ4IDIxNi4wMzQgMzE2LjgwOCAyMTcuODk2IDMxMy4yNzlDMjA5LjM5NyAzMDYuNzExIDE5MC40ODcgMjkxLjk1OCAxOTAuNDk3IDI5MS45NDhDMTUzLjgyNSAyNjkuMTg2IDE2Ni4wMzkgMjQwLjg0NiAxNjYuMTY3IDI0MC41NzFMMTY2LjQxMiAyNDAuMDMyTDE4MC4xMDYgMjMwLjg2N0wxODAuNTU3IDIzMC42NDFDMTgxLjkzOSAyMzAuMTUxIDIxNC42NzEgMjE4Ljc1IDIzMy40MDQgMjE5LjA5M0MyNTQuMDE5IDIxOS41NDQgMjkzLjI3IDIyNC4zMDggMzEwLjc5NyAyMzUuMjI5QzMyOS4wNzkgMjQ2LjYxIDMyOS41NCAyNTIuNTMxIDMyOC41NSAyNzUuODEyQzMyNy42MDkgMjk4LjEwNCAzMjcuOTQyIDM1NC41MDkgMzI3Ljk1MiAzNTUuMDc4VjM1NS45OTlMMzI3LjI3NiAzNTYuNjE3QzMxMy45MTQgMzY4LjYzNSAzMDAuNzY5IDM1Ny4zNTIgMzAwLjYzMiAzNTcuMjM0TDI5OS45NTUgMzU2LjYzNlYzNTUuNzM1QzI5OS42ODEgMzQwLjU2IDI5Ny45NzUgMzI5LjM5NCAyOTYuMzI4IDMxOC41ODJDMjk1LjM3NyAzMTIuMzY3IDI5NC40ODUgMzA2LjQ5NSAyOTMuODY4IDI5OS45OTZDMjkyLjYzMyAyODcuMDM3IDI5NS40OTUgMjc4LjIwNCAyOTcuMzM4IDI3NC4wNThMMjc5LjI3MSAyNzEuODkxQzI1OS4wMjkgMjcyLjExNyAyMzkuMTc4IDI2NS41MSAyMjkuMTIgMjYxLjVMMjQ2LjgxNCAyODcuMDY2QzI1MS40NzEgMjkzLjgwMSAyNTMuNzg0IDMwMi4wMDUgMjUzLjMzMyAzMTAuMTkxQzI1Mi44NDMgMzE5LjA5MiAyNTEuOTggMzI5LjcyOCAyNTAuNzk0IDM0MS44MTVDMjQ3LjcxNiAzNzMuMDQ2IDI0OS45NzEgNDA3Ljg2NiAyNDkuOTkgNDA4LjIwOUwyNTAuMDc5IDQwOS41ODFMMjQ4Ljg0MyA0MTAuMTg5QzI0My42MDkgNDEyLjc1NyAyMzguOTcyIDQxMy42MSAyMzUuMDUxIDQxMy41ODFDMjI2Ljc1OCA0MTMuNTIyIDIyMS43NDkgNDA5LjQ3NCAyMjEuNDQ1IDQwOS4yMTlMMjIxLjQzNSA0MDkuMjI4Wk0yNDYuNjk3IDM0MS40MjNDMjQ3Ljg4MyAzMjkuMzk0IDI0OC43MzYgMzE4LjgxNyAyNDkuMjI2IDMwOS45NzVDMjQ5LjYyOCAzMDIuNzAxIDI0Ny41NzkgMjk1LjM5OCAyNDMuNDMyIDI4OS40MDlMMjIyLjY3IDI1OS40MTJDMjIyLjAxMyAyNTguNDcxIDIyMi4wNjIgMjU3LjI0NiAyMjIuNzk3IDI1Ni4zNTRDMjIzLjUzMyAyNTUuNDcyIDIyNC43MTkgMjU1LjE4NyAyMjUuNzc3IDI1NS42NThDMjMyLjI5NiAyNTguNTY5IDI1NS41MTkgMjY3Ljk5IDI3OS40ODcgMjY3LjgwNEwyOTkuOTQ1IDI3MC4yMzVDMzAwLjgwOCAyNzAuMzMzIDMwMS41NTMgMjcwLjg1MiAzMDEuOTQ1IDI3MS42MjdDMzAyLjMzNyAyNzIuMzkxIDMwMi4zMTggMjczLjI5MyAzMDEuOTA2IDI3NC4wMzhDMzAwLjYyMiAyNzYuMzYxIDI5Ni41NTQgMjg1LjA2NiAyOTcuOTQ2IDI5OS42MDRDMjk4LjU1MyAzMDUuOTg1IDI5OS40MzYgMzExLjc5OCAzMDAuMzc3IDMxNy45NTVDMzAyLjAxNCAzMjguNjU5IDMwMy43IDMzOS43MjcgMzA0LjAxNCAzNTQuNjc2QzMwNi40NDUgMzU2LjQ2IDMxNC45MDUgMzYxLjU1NyAzMjMuODQ1IDM1NC4xNDdDMzIzLjgwNSAzNDYuNjE4IDMyMy41NyAyOTYuNDE4IDMyNC40NTIgMjc1LjYyNkMzMjUuNDEzIDI1My4wMDEgMzI1LjEwOSAyNDguOTUzIDMwOC42MzEgMjM4LjY5OUMyOTEuMTcyIDIyNy44MjggMjUwLjM0MyAyMjMuNTU0IDIzMy4zMTYgMjIzLjE5MUMyMTYuMTAyIDIyMi43ODkgMTg1LjE5NCAyMzMuMzY2IDE4Mi4xNTUgMjM0LjQyNUwxNjkuNjk2IDI0Mi43NTdDMTY4LjM2MyAyNDYuNDI0IDE2MS42NTcgMjY5LjIyNSAxOTIuODMgMjg4LjU5NUMxOTIuODMgMjg4LjU5NSAyMTMuNTI0IDMwNC43NCAyMjEuNDI1IDMxMC44MzhDMjIyLjQ4NCAzMTEuNjUxIDIyMi43NDggMzEzLjEyMiAyMjIuMDQzIDMxNC4yNTlDMjIxLjEyMSAzMTUuNzQ5IDIxNi41MjQgMzI0LjA5MSAyMTYuNjEyIDM0MS44ODNDMjE2LjY3MSAzNTMuMzEzIDIxOC41MDQgMzYzLjI0NCAyMjAuNDU1IDM3My43NTJDMjIxLjk4NCAzODEuOTk2IDIyMy41NjIgMzkwLjUzNSAyMjQuMzA3IDQwMC4xNjFMMjI0LjcxOSA0MDYuNTYyQzIyNi45ODMgNDA4LjA0MiAyMzQuNjI5IDQxMi4wMjIgMjQ1Ljc5NSA0MDcuMDkxQzI0NS40MDMgNDAwLjIyIDI0My45MzIgMzY5LjQyOSAyNDYuNjg3IDM0MS40MjNIMjQ2LjY5N1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMzAxLjUyNCAyNzQuODQyQzMwNC4yNzggMjcwLjQxMSAzMDguNDk0IDI2OC4yODQgMzA4LjUzMyAyNjguMjY0TDMwNy4xMzEgMjY1LjQ0MUMzMDYuOTI1IDI2NS41MzkgMzAyLjA2MyAyNjggMjk4LjgzOCAyNzMuMTc2TDMwMS41MTQgMjc0Ljg0MkgzMDEuNTI0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMjEuNDg0IDMxNC43MTdDMjI0Ljg1NiAzMTAuNTcxIDIzMC4wNzEgMzEwLjk1MyAyMzAuMjg3IDMxMC45NzNMMjMwLjYwMSAzMDcuNDgzQzIzMC4yOTcgMzA3LjQ1NCAyMjMuMzM3IDMwNi44NzUgMjE4Ljc1OSAzMTIuNTAyTDIyMS40NzQgMzE0LjcxN0gyMjEuNDg0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xODQuMjI0IDI4MS4xNDZDMTk5LjMxIDI3Mi43NzQgMTkyLjg0IDI1Ny4yNzYgMTkyLjc3MiAyNTcuMTI5TDE4OS44OCAyNTguMzc0QzE5MC4xMDUgMjU4LjkwMyAxOTUuMjYxIDI3MS40MTEgMTgyLjcwNCAyNzguMzkxTDE4NC4yMzMgMjgxLjE0NkgxODQuMjI0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMjYuNjQ5IDEzMy4wNTZDMjI2LjY0OSAxMzMuMDU2IDIyNy4wMDIgMTM0LjA3NiAyMjcuNTcgMTM1Ljg0QzIzMS44NjQgMTQ5LjI5IDIzNC4zMjUgMTYzLjI2OCAyMzUuMDExIDE3Ny4zNjVMMjM1LjE5NyAxODEuMTg4QzIzNS4yMTcgMTgxLjU5IDIzNS40NzIgMTgxLjkyMyAyMzUuODY0IDE4Mi4wMjFDMjM4LjMzNCAxODIuNjM5IDI0NC43OTQgMTg1LjIzNiAyNTIuMzEzIDE5MC40NzFDMjU5LjE3NSAxOTUuMjU1IDI3Ny4xODIgMjExLjk0OSAyNzcuMTgyIDIxMS45NDlMMjU0LjY0NiAyMjEuMzAxTDIwNS43NTkgMTk1LjQ0MUwxOTcuMTQzIDE2Mi4yNTlMMjA5Ljk0NSAxNDIuNjQzTDIyMS42MiAxMzEuMTA1TDIyNi42NTkgMTMzLjA0NkwyMjYuNjQ5IDEzMy4wNTZaIiBmaWxsPSIjOUI4MzY1Ij48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjMiPjxwYXRoIGQ9Ik0yMjEuNjIxIDEzMS4xMTdDMjIxLjYyMSAxMzEuMTE3IDIyOC43MjggMTYzLjU5NCAyMjkuNDgzIDE3MS44NThDMjMwLjIzOCAxODAuMTIxIDIyOS45MzQgMTg2LjYzIDIzNS4yMTggMTg5LjA3MUMyNDAuNTAxIDE5MS41MTIgMjUxLjAzOSAyMDEuOTIzIDI1MS4wMzkgMjAxLjkyM0MyNTEuMDM5IDIwMS45MjMgMjEyLjUyNCAyMDAuODg0IDIxMS45NzUgMTk4Ljk0M0MyMTEuNDI2IDE5Ny4wMDIgMjA2LjE2MiAxNzkuNDI1IDIwNi4zIDE3NS41NTNDMjA2LjQzNyAxNzEuNjgxIDIxMy43ODkgMTM1LjE0NiAyMTMuNzg5IDEzNS4xNDZMMjIxLjYzMSAxMzEuMTE3SDIyMS42MjFaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0yMDMuOTk1IDE5Ni44MzJMMTk0LjkyOCAxNjEuOTA1TDIwOC4yMiAxNDEuNTM1TDIyMS4xMjEgMTI4LjcyM0wyMjguMjc3IDEzMS40ODdMMjI4LjU5MSAxMzIuMzg5QzIyOC41OTEgMTMyLjM4OSAyMjguOTUzIDEzMy40MjggMjI5LjUyMiAxMzUuMjIyQzIzMy44MTUgMTQ4LjY4MSAyMzYuMzQ1IDE2Mi44MzYgMjM3LjA2IDE3Ny4yNzZMMjM3LjIwNyAxODAuMjc2QzI0MC4xMzggMTgxLjE4NyAyNDYuMzE0IDE4My44MDUgMjUzLjQ4IDE4OC43OTRDMjYwLjM5MSAxOTMuNjA3IDI3Ny44MyAyMDkuNzYyIDI3OC41NzUgMjEwLjQ0OUwyODAuOTE4IDIxMi42MjVMMjU0LjUyOSAyMjMuNTY1TDIwMy45OTUgMTk2LjgzMlpNMjUxLjEzNyAxOTIuMTU3QzI0NC4yMTYgMTg3LjMzNCAyMzcuOTEzIDE4NC42NDggMjM1LjM2NCAxODQuMDFDMjM0LjEgMTgzLjY5NyAyMzMuMTk4IDE4Mi41OTkgMjMzLjEzOSAxODEuMjg1TDIzMi45NTMgMTc3LjQ3MkMyMzIuMjY3IDE2My4zODUgMjI5Ljc5NiAxNDkuNTkzIDIyNS42MSAxMzYuNDY3QzIyNS4zNjUgMTM1LjcwMiAyMjUuMTY5IDEzNS4wNzUgMjI1LjAxMyAxMzQuNjI0TDIyMi4xMTEgMTMzLjUwNkwyMTEuNTM0IDE0My45NjZMMTk5LjM0OSAxNjIuNjRMMjA3LjUxNSAxOTQuMDY4TDI1NC43NDQgMjE5LjA1NUwyNzMuNDI5IDIxMS4zMDFDMjY4LjM0MSAyMDYuNjM1IDI1Ni4zNTIgMTk1LjgwMyAyNTEuMTM3IDE5Mi4xNjZWMTkyLjE1N1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjEzLjkxNiAxNDEuODk3QzIxNC43IDE0Mi41NjMgMjIyLjY3IDEzNy4zNjggMjI4LjYxIDEzMS4xMDRDMjI4LjYxIDEzMS4xMDQgMjE3Ljg1NiA5Ni43MjUzIDIwMS4yMjEgOTUuNDgwM0MxODQuNTg2IDk0LjIzNTQgMTk0LjczMiAxMTIuMDI3IDE5NC43MzIgMTEyLjAyN0wyMTMuOTE2IDE0MS44OTdaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC4xNSI+PHBhdGggZD0iTTIxMy45MTYgMTQxLjg5N0MyMTQuNyAxNDIuNTYzIDIyMi42NyAxMzcuMzY4IDIyOC42MSAxMzEuMTA0QzIyOC42MSAxMzEuMTA0IDIxNy44NTYgOTYuNzI1MyAyMDEuMjIxIDk1LjQ4MDNDMTg0LjU4NiA5NC4yMzU0IDE5NC43MzIgMTEyLjAyNyAxOTQuNzMyIDExMi4wMjdMMjEzLjkxNiAxNDEuODk3WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMjEyLjU5MiAxNDMuNDU0TDE5Mi45NTcgMTEzLjAzNkMxOTIuMzY5IDExMi4wMDcgMTg3LjMyMSAxMDIuODIyIDE5MC44NzkgOTcuMTg1MUMxOTIuNzAyIDk0LjMwMyAxOTYuMjIyIDkzLjAyODcgMjAxLjM3OCA5My40MjA4QzIxOS4xOTkgOTQuNzU0IDIzMC4xMSAxMjkuMDE1IDIzMC41NzEgMTMwLjQ3NUwyMzAuNjEgMTMwLjYxM0MyMzAuODA2IDEzMS4yNCAyMzAuNjQ5IDEzMS45MTYgMjMwLjE5OCAxMzIuMzk3TDIzMC4xIDEzMi41MDVDMjI5Ljk3MyAxMzIuNjMyIDIxOC43NDggMTQzLjkyNSAyMTMuOTE2IDE0My44OTVDMjEzLjM5NiAxNDMuODk1IDIxMi45NDUgMTQzLjc1OCAyMTIuNTkyIDE0My40NTRaTTIwMS4wNjQgOTcuNTE4NEMxOTcuNTQ1IDk3LjI2MzUgMTk1LjI5IDk3Ljg4MTEgMTk0LjMzOSA5OS4zODA5QzE5Mi40MjggMTAyLjQgMTk1LjMzOSAxMDguOTU4IDE5Ni40NTcgMTEwLjkxOUwyMTQuODI3IDEzOS41MjNDMjE2Ljg5NiAxMzguNDM1IDIyMS4zOTUgMTM1LjI5OCAyMjUuNTQyIDEzMS4yNjlDMjI1Ljk5MyAxMzAuODI4IDIyNi4xNCAxMzAuMTcxIDIyNS45MzQgMTI5LjU3NEMyMjIuMzI2IDExOS4yNjEgMjEyLjY5IDk4LjM4MSAyMDEuMDU0IDk3LjUxODRIMjAxLjA2NFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTk5LjQwOCA5Ni42NDI5QzE5OS40MDggOTYuNjQyOSAyMTIuNTE1IDEwMS4wNDQgMjE1LjA5MyAxMjQuMzI2QzIxNy42NzEgMTQ3LjYwOCAyMjguMjA5IDE5Ny4xOSAyMzkuMzE2IDIxMy44MjZDMjM5LjMxNiAyMTMuODI2IDI0NS4xNTggMjIzLjMzNCAyMjguNzU4IDIyOC43MjZDMjEyLjM1OCAyMzQuMTE3IDIwMS4xMzQgMjM1LjQzMSAxODUuMzIyIDI0OC4yMzNDMTY5LjY1NyAyNjAuOTI4IDE2MS4wMDEgMjY1Ljg0OSAxNTguMTY4IDI0OS44N0MxNTUuMzM1IDIzMy44ODIgMTQ0LjQ1NCAxOTUuOTU1IDEzNy44NTcgMTgxLjUxNUMxMzYuMDIzIDE3Ny41MDYgMTM0LjQ3NSAxNzAuNzUyIDEzMy4xOSAxNjMuMDc2QzEyOS44NDggMTQzLjExOCAxMjguMjk5IDExNi45NjQgMTI4LjI5OSAxMTYuOTY0QzEyOC4yOTkgMTE2Ljk2NCAxMzYuOTM1IDEwNC4xMDMgMTYwLjAwMSA5NS4xNTI5QzE3NS4zNzIgODkuMTgzIDE5OS40MDggOTYuNjMzMSAxOTkuNDA4IDk2LjYzMzFWOTYuNjQyOVoiIGZpbGw9IndoaXRlIj48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjE1Ij48cGF0aCBkPSJNMjAxLjkyOCAyMzguMDg4QzIwMS45MjggMjM4LjA4OCAxNzMuNzY0IDIxNi4wMzIgMTYxLjYzOCAxOTMuMzU4QzE1Mi4wNDEgMTc1LjQxOSAxNTEuMjY3IDE0Ny40MjIgMTUwLjk2MyAxNDcuMDVDMTUwLjM4NCAxNDYuMzI0IDEzMy4zMzcgMTQ5LjU5OSAxMzMuMzM3IDE0OS41OTlDMTMzLjMzNyAxNDkuNTk5IDEyMS45MzcgMTYzLjE2NiAxMjMuNTI1IDE2NS4xNDZDMTI1LjExMyAxNjcuMTI2IDE0NS45NTQgMjE3Ljk5MyAxNDYuMTUgMjE4LjQxNEMxNDYuMzQ2IDIxOC44MzYgMTYwLjA0IDI1OS43MDQgMTY1LjU4OSAyNTkuOTQ5QzE2Ny44MTQgMjYwLjA0NyAyMDEuOTI4IDIzOC4wODggMjAxLjkyOCAyMzguMDg4WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTYyLjgwNSAyNjEuNTI5QzE1OS40MDMgMjYwLjI2NCAxNTcuMjk2IDI1Ni42NjcgMTU2LjE0OSAyNTAuMjI2QzE1My4zMDYgMjM0LjIwOSAxNDIuNDA1IDE5Ni40MDkgMTM1Ljk5NCAxODIuMzcxQzEyOS4zMTggMTY3Ljc1NSAxMjYuMzc4IDExOS4xNjMgMTI2LjI1IDExNy4wOTRMMTI2LjIxMSAxMTYuNDA4TDEyNi41OTMgMTE1LjgzQzEyNi45NTYgMTE1LjI4MSAxMzUuODU3IDEwMi4zMzEgMTU5LjI1NiA5My4yNDQzQzE3NS4xMDcgODcuMDg4MSAxOTkuMDA3IDk0LjM3MTYgMjAwLjAxNiA5NC42ODUzSDIwMC4wNjVDMjAwLjY1MyA5NC45MDEgMjE0LjQ0NiA5OS44MDI0IDIxNy4xNDIgMTI0LjEwM0MyMTkuNTkyIDE0Ni4yMDkgMjI5Ljk1NCAxOTYuMTA1IDI0MS4wNyAyMTIuNzZDMjQxLjE2OCAyMTIuOTE3IDI0My40MzMgMjE2LjY4MSAyNDEuNzg2IDIyMS4xNjFDMjQwLjI3NiAyMjUuMjY4IDIzNi4xMSAyMjguNDc0IDIyOS40MDUgMjMwLjY4QzIyNi4wOTIgMjMxLjc2OCAyMjIuOTk0IDIzMi42ODkgMjIwLjAyNCAyMzMuNTgxQzIwOC4yNDEgMjM3LjA5MSAxOTguOTM4IDIzOS44NTUgMTg2LjYxNiAyNDkuODQ0QzE3Ni44OTEgMjU3LjcyNSAxNzAuNSAyNjIuMDY4IDE2NS40OTEgMjYyLjAyOUMxNjQuNTU5IDI2Mi4wMjkgMTYzLjY2NyAyNjEuODYyIDE2Mi44MTUgMjYxLjU0OUwxNjIuODA1IDI2MS41MjlaTTE2MC43NDYgOTcuMDY3NEMxNDEuMjY4IDEwNC42MzUgMTMyLjI5OCAxMTUuMTM0IDEzMC4zOTcgMTE3LjU5NEMxMzAuNzk5IDEyMy44MzkgMTMzLjc5OCAxNjcuNjc3IDEzOS43MjkgMTgwLjY2NkMxNDYuNDI0IDE5NS4zMzEgMTU3LjI3NiAyMzMuMDgxIDE2MC4xODcgMjQ5LjUxMUMxNjEuMDMgMjU0LjI0NSAxNjIuMzkzIDI1NyAxNjQuMjM2IDI1Ny42ODZDMTY4LjEwOCAyNTkuMTM3IDE3Ni40ODkgMjUyLjc0NiAxODQuMDI4IDI0Ni42MzhDMTk2Ljk4NyAyMzYuMTQgMjA3LjExMyAyMzMuMTMgMjE4Ljg0NyAyMjkuNjMxQzIyMS43NzggMjI4Ljc1OCAyMjQuODQ3IDIyNy44NDYgMjI4LjEyMSAyMjYuNzY4QzIzMy40NzMgMjI1LjAwNCAyMzYuODU1IDIyMi41OTIgMjM3LjkxNCAyMTkuNzg5QzIzOC44OTQgMjE3LjE4MSAyMzcuNjIgMjE0Ljk2NiAyMzcuNjIgMjE0Ljk1NkMyMjYuMDIzIDE5Ny41ODUgMjE1LjYzMiAxNDcuNjMgMjEzLjA2NCAxMjQuNTQ1QzIxMC43MTEgMTAzLjMxMiAxOTkuNTI2IDk4Ljg2MTMgMTk4Ljc3MSA5OC41NzdDMTk3LjcyMiA5OC4yNjMzIDE3NS4wMTkgOTEuNTA5MiAxNjAuNzQ2IDk3LjA1NzZWOTcuMDY3NFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTc2LjExNyA5NC4zQzE4Mi41MDggOTkuMTcyIDE5Mi4zNCA5OS42NjIxIDE5Ny41NTUgOTkuNTM0N0MxOTkuNzEyIDk5LjQ4NTcgMjAxLjcxMiA5OC4yODk4IDIwMi43MjIgOTYuMzc4MkMyMTYuMjc5IDcwLjY3NTMgMjA4LjEyMyA0Ny43NTYzIDIwOC4xMjMgNDcuNzU2M0wxNzMuNjQ2IDQzLjk5MjFMMTY1LjgxNCA1NS4xODY5QzE2My42MzggNTguMjk0MyAxNjIuODE0IDYyLjE1NjYgMTYzLjYzOCA2NS44NjIxQzE2NC40NDIgNjkuNDc5MyAxNjQuMzE0IDc1LjIxNCAxNjAuMDAxIDgzLjA5NTRDMTQ3Ljg5NCAxMDUuMTcxIDE1My41NDEgMTEwLjA0MyAxNjkuNjQ3IDEyMi45NTRDMTgxLjA3NyAxMzIuMTE5IDIwMC4zMyAxMjUuMjY3IDE4OC4wMjcgOTguOTI2OUwxNzYuMTE3IDk0LjMwOThWOTQuM1oiIGZpbGw9IiM5QjgzNjUiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuMyI+PHBhdGggZD0iTTE3Ni43NDQgOTcuMTk1NkMxNzcuMDc3IDk3LjM5MTYgMTkxLjI3MiAxMDkuMTk0IDE4OC4xNDUgMTIyLjI2MUMxODguMTQ1IDEyMi4yNjEgMTkxLjkwOSAxMTYuNzgyIDE5MC45OTcgMTExLjU2NkMxOTAuMDg2IDEwNi4zNTEgMTkwLjE2NCAxMDEuMjc0IDE4OS42MTUgMTAxLjA4N0MxODkuMDY2IDEwMC45MDEgMTgxLjk4OSA5Ni41NzggMTgxLjk4OSA5Ni41NzhMMTc2LjczNCA5Ny4xOTU2SDE3Ni43NDRaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0xNjguMzYzIDEyNC41NTRDMTUyLjQyMyAxMTEuNzcxIDE0NS4xNCAxMDUuOTM4IDE1OC4yMDcgODIuMTE3NUMxNjIuMjk1IDc0LjY1NzYgMTYyLjMzNCA2OS40MDMzIDE2MS42NDggNjYuMzE1NEMxNjAuNzE2IDYyLjExIDE2MS42MTggNTcuNjIwMyAxNjQuMTQ3IDU0LjAxMjlMMTcyLjY3NiA0MS44MjhMMjA5LjYzMiA0NS44NjY4TDIxMC4wNjQgNDcuMDgyM0MyMTAuNDA3IDQ4LjA1MjggMjE4LjM2NyA3MS4xNDgyIDIwNC41NDUgOTcuMzUxQzIwMy4yMDIgOTkuODk5OCAyMDAuNTQ1IDEwMS41MjcgMTk3LjYxNCAxMDEuNTk2QzE5NS44OTkgMTAxLjY0NSAxOTMuNzIzIDEwMS42MTUgMTkxLjMzMSAxMDEuNDA5QzE5Ny40NDggMTE2LjkzNyAxOTEuNzQyIDEyMy43NCAxODguODQxIDEyNi4wMTRDMTg2LjM4IDEyNy45NDYgMTgzLjI3MyAxMjguODg3IDE4MC4wMjggMTI4Ljg2N0MxNzYuMDY4IDEyOC44MzggMTcxLjg5MiAxMjcuMzg3IDE2OC4zODIgMTI0LjU2NEwxNjguMzYzIDEyNC41NTRaTTE3NC44NzIgOTUuOTI5NkwxNzcuMzUyIDkyLjY2NTNDMTgzLjIzNCA5Ny4xNDUyIDE5Mi40OTcgOTcuNjA1OSAxOTcuNTA2IDk3LjQ3ODVDMTk4Ljk1NyA5Ny40MzkzIDIwMC4yNjEgOTYuNjU1IDIwMC45MDggOTUuNDE5OUMyMTIuMTMyIDc0LjEyODIgMjA3LjkyNyA1NC42MDEgMjA2LjU1NCA0OS42NDA4TDE3NC42MzYgNDYuMTUxTDE2Ny41IDU2LjM0NTlDMTY1LjYzNyA1OS4wMTIzIDE2NC45NjEgNjIuMzE1OSAxNjUuNjQ3IDY1LjQwMzdDMTY2LjQ5IDY5LjE4NzYgMTY2LjUgNzUuNTAwNiAxNjEuODA1IDg0LjA2ODNDMTUwLjQwNCAxMDQuODcgMTU1LjE1OCAxMDguNjkzIDE3MC45MzEgMTIxLjMzOEMxNzUuODYyIDEyNS4yODkgMTgyLjMyMiAxMjUuODk3IDE4Ni4zMDIgMTIyLjc3QzE5MS4wODYgMTE5LjAxNSAxOTEuMTg0IDExMS4wMTYgMTg2LjYxNSAxMDAuNzMzQzE4Mi41MjggOTkuOTQ4OCAxNzguMjgzIDk4LjUwNzggMTc0Ljg4MiA5NS45MTk4TDE3NC44NzIgOTUuOTI5NloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTczLjA3OSA4Mi4wNTgxQzE2OS44ODMgODEuNDQwNiAxNjcuMDg5IDc5LjUxOTIgMTY1LjQwMyA3Ni43MzUyQzE2NC4wNSA3NC41MDAyIDE2Mi45MTMgNzEuNzY1MiAxNjMuMzc0IDY5LjMwNDdDMTY0LjM3NCA2My45ODE4IDE2OS41ODkgNjUuMzA1MiAxNzEuNzk0IDY4LjYxODVMMTczLjY4NiA3MS42MTgyTDE3My4wNzkgODIuMDU4MVoiIGZpbGw9IiM5QjgzNjUiPjwvcGF0aD48cGF0aCBkPSJNMTcyLjY5NiA4NC4wNzY4TDE3My40NyA4MC4wNDc5QzE3MC44MzMgNzkuNTM4MSAxNjguNTM5IDc3Ljk1MDEgMTY3LjE1NyA3NS42NzU4QzE2NS43MTYgNzMuMjkzNyAxNjUuMDk4IDcxLjIyNTMgMTY1LjM5MyA2OS42ODYzQzE2NS42MDggNjguNTU5IDE2Ni4wMyA2Ny45MjE4IDE2Ni42MzcgNjcuODA0MkMxNjcuNTQ5IDY3LjYzNzUgMTY5LjEyNyA2OC4zMTM5IDE3MC4wOTggNjkuNzY0N0wxNzEuOTcgNzIuNzI1MkMxNzEuOTcgNzIuNzI1MiAxNzQuNjE3IDcxLjE0NjkgMTc1LjQ0IDcwLjUyOTNDMTc4Ljc1NCA2OC4wNjg4IDE3OS40ODkgNjQuNzk0NyAxNzkuNDg5IDY0Ljc5NDdDMTc3LjY0NiA2Mi4wMjA1IDE2OC41MzkgNjMuMjI2MyAxNjUuODM0IDYzLjc4NUMxNjMuNTIgNjQuMjU1NiAxNjEuOTAzIDY2LjEyNzkgMTYxLjM3MyA2OC45MzE1QzE2MC44OTMgNzEuNTE5NCAxNjEuNjU4IDc0LjQ5OTUgMTYzLjY2NyA3Ny44MDNDMTY1LjY0NyA4MS4wNjc0IDE2OC45NDEgODMuMzUxNCAxNzIuNzA1IDg0LjA3NjhIMTcyLjY5NloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjIyLjA4MiA0My44ODc1QzIyMi4zNDcgNDEuNDA3NCAyMjEuMTkgMzkuMTIzNCAyMTkuMjg5IDM3Ljc4MDRWMzcuMjMxNEMyMjAuOTE2IDM2LjE3MjcgMjIyLjA3MiAzNC40NTcyIDIyMi4yODggMzIuMzg4OEMyMjIuNjYxIDI4LjgyMDYgMjIwLjEzMiAyNS42MjQ5IDIxNi42MDMgMjUuMTM0OEMyMTYuNDQ2IDI0Ljg1MDUgMjE2LjI5OSAyNC41NTY0IDIxNi4xMzIgMjQuMjcyMUMyMTYuMzg3IDIzLjY3NDIgMjE2LjU5MyAyMy4wMzcgMjE2LjY2MSAyMi4zNjA2QzIxNy4wNDQgMTguNzEzOSAyMTQuMzk3IDE1LjQzOTggMjEwLjc1IDE1LjA1NzVDMjA5Ljk5NSAxNC45NzkxIDIwOS4yNiAxNS4wNTc1IDIwOC41NTQgMTUuMjI0MUMyMDguMzY4IDE1LjA0NzcgMjA4LjE4MiAxNC44ODEgMjA3Ljk4NiAxNC43MDQ2QzIwOC4zMjkgMTEuMDc3NiAyMDUuNzAyIDcuODQyNjQgMjAyLjA3NSA3LjQ2MDMzQzIwMC43NjEgNy4zMjMwOSAxOTkuNTA2IDcuNTg3NzcgMTk4LjQwOSA4LjEzNjczQzE5Ny45MjggNy44ODE4NSAxOTcuNzcxIDcuNzkzNjMgMTk3LjI5MSA3LjUzODc1QzE5Ni45MjggNC41MzkxIDE5NC41MzYgMi4wNjg3OSAxOTEuNCAxLjczNTVDMTg5LjA2NiAxLjQ5MDQzIDE4Ni45IDIuNDkwMzEgMTg1LjUyOCA0LjE4NjJDMTg1LjM3MSA0LjE4NjIgMTg1LjMzMiA0LjE4NjIgMTg1LjE3NSA0LjE4NjJDMTg0LjEwNiAyLjcxNTc4IDE4Mi40NTkgMS42NzY2OCAxODAuNTA5IDEuNDcwODJDMTc3LjgyMyAxLjE4NjU0IDE3NS4zNjIgMi41NDkxMyAxNzQuMDc4IDQuNzM1MTVDMTczLjM0MyA0Ljg4MjIgMTcyLjYwOCA1LjA1ODY1IDE3MS44NzIgNS4yNTQ3QzE3MC45NDEgNC41NDg5IDE2OS44MjQgNC4wNjg1NiAxNjguNTg4IDMuOTMxMzNDMTY0Ljk2MSAzLjU0OTAyIDE2MS43MTcgNi4xNzYxNyAxNjEuMzA1IDkuNzkzNEMxNjAuNjk3IDEwLjA2NzkgMTYwLjQ4MiAxMC4xNjU5IDE1OS44NzQgMTAuNDUwMkMxNTguNDcyIDkuNTM4NTMgMTU2LjczNyA5LjA2Nzk5IDE1NC43MzcgOS41NDgzM0MxNTIuNzU3IDEwLjAxODkgMTUxLjA1MSAxMS40MjA3IDE1MC4yMTggMTMuMjczNEMxNDkuMzg1IDE1LjEyNjEgMTQ5LjUxMiAxNy4wNjcxIDE1MC4yMTggMTguNjY0OUMxNDkuOTE0IDE4Ljk5ODIgMTQ5LjYzIDE5LjM1MTEgMTQ5LjMzNiAxOS42OTQyQzE0OS4xMiAxOS42NTUgMTQ4LjkyNCAxOS41ODY0IDE0OC42OTkgMTkuNTY2OEMxNDUuMDUyIDE5LjE4NDUgMTQxLjc3OCAyMS44MzEyIDE0MS4zOTUgMjUuNDc3OUMxNDEuMjc4IDI2LjYzNDYgMTQxLjQ4NCAyNy43NDIzIDE0MS45MDUgMjguNzQyMkMxMzkuNDQ1IDI5LjUwNjggMTM3LjU0MyAzMS42NzMyIDEzNy4yNTkgMzQuMzk4NEMxMzcuMDgyIDM2LjEwNDEgMTM3LjU4MiAzNy43MjE2IDEzOC41MjMgMzkuMDA1N0MxMzYuNDg0IDM5Ljk1NjYgMTM0Ljk2NSA0MS45MDc0IDEzNC43MiA0NC4zMDlDMTM0LjQxNiA0Ny4xODEzIDEzNi4wMDQgNDkuNzk4NiAxMzguNDc0IDUwLjk3NDlDMTM4LjQ5NCA1MS4yNzg4IDEzOC41MDQgNTEuMzE4IDEzOC41MjMgNTEuNjIxOUMxMzYuNTgyIDUyLjYwMjIgMTM1LjE1MSA1NC41MTM4IDEzNC45MDYgNTYuODQ2OEMxMzQuNTI0IDYwLjQ5MzUgMTM3LjE3IDYzLjc2NzYgMTQwLjgxNyA2NC4xNDk5QzE0MC44NDcgNjQuMTQ5OSAxNDAuODc2IDY0LjE0OTkgMTQwLjkwNSA2NC4xNDk5QzE0MC44MjcgNjQuNDQ0IDE0MC43NDggNjQuNzM4MSAxNDAuNzE5IDY1LjA1MThDMTQwLjMzNyA2OC42OTg0IDE0Mi45ODQgNzEuOTcyNSAxNDYuNjMgNzIuMzU0OEMxNDcuMjk3IDcyLjQyMzUgMTQ3Ljk0NCA3Mi4zNTQ4IDE0OC41NzEgNzIuMjQ3QzE0OC41MjIgNzUuNjQ4NiAxNTEuMDQxIDc4LjU4OTQgMTU0LjQ5MiA3OC45NTIxQzE1Ni4wMzEgNzkuMTE4OCAxNTcuNDkyIDc4LjcxNjkgMTU4LjcwNyA3Ny45NDI0QzE2MS4yNjYgNzguODYzOSAxNjMuNDgxIDc5LjMyNDYgMTY0LjkwMyA3OS41NTAxQzE2NS40MTIgNzkuNjI4NSAxNjUuNzY1IDc5LjA0MDQgMTY1LjQ0MiA3OC42Mzg0QzE2NC42MjggNzcuNjI4OCAxNjMuNDQyIDc1Ljc3NiAxNjIuMTM4IDcyLjUwMTlDMTYxLjk3MiA3Mi4wOTAyIDE2MS44NzQgNzEuNzI3NSAxNjEuNzQ2IDcxLjMzNTRDMTYxLjY1OCA3MC43NjY4IDE2MS41MDEgNzAuMjI3NiAxNjEuMjc2IDY5LjcxNzlDMTYwLjIzNiA2NS4yNzcyIDE2MC45NjIgNjQuMjE4NSAxNjMuNTg5IDYxLjg0NjJDMTY1LjE1NyA2MC40MjQ4IDE2NC42ODcgNjAuNDkzNSAxNjYuMzczIDYxLjQ3MzdDMTY3Ljc3NSA2Mi4yODc0IDE3MC41ODggNTguNjYwMyAxNzEuMjM1IDU3LjE3MDNDMTcyLjQ4IDU0LjI2ODcgMTc3LjU0OCA0OC40OTQ4IDE4NC45IDQ2LjE5MTJDMTkyLjk0OCA0My42NjIxIDE5OS4zMDEgNDkuOTE2MiAyMDMuMjUxIDUyLjcxQzIwMy44NzkgNTUuNzM5MSAyMDYuNTY0IDU4LjEwMTYgMjA5Ljk1NiA1OC4wMDM1QzIxMS44MjkgNTcuOTQ0NyAyMTMuNTgzIDU2Ljk2NDUgMjE0Ljc3OSA1NS41MjM0QzIxNi40NzUgNTMuNDg0NSAyMTYuNTkzIDUxLjU1MzMgMjE2LjE3MSA0OS44MTgyQzIxOS4yMzkgNDkuNTE0MyAyMjEuNzg4IDQ3LjA5MyAyMjIuMTIyIDQzLjg5NzNMMjIyLjA4MiA0My44ODc1WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNzIuNDYxIDY4LjUyODdDMTc3LjEyMiA2OC41Mjg3IDE4MC45MDEgNjQuNzQ5OSAxODAuOTAxIDYwLjA4ODVDMTgwLjkwMSA1NS40MjcxIDE3Ny4xMjIgNTEuNjQ4MyAxNzIuNDYxIDUxLjY0ODNDMTY3Ljc5OSA1MS42NDgzIDE2NC4wMjEgNTUuNDI3MSAxNjQuMDIxIDYwLjA4ODVDMTY0LjAyMSA2NC43NDk5IDE2Ny43OTkgNjguNTI4NyAxNzIuNDYxIDY4LjUyODdaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTE4My44OCA1OS43NTA2QzE4OS4wNTYgNTkuNzUwNiAxOTMuMjUyIDU1LjU1NDkgMTkzLjI1MiA1MC4zNzkyQzE5My4yNTIgNDUuMjAzNCAxODkuMDU2IDQxLjAwNzcgMTgzLjg4IDQxLjAwNzdDMTc4LjcwNSA0MS4wMDc3IDE3NC41MDkgNDUuMjAzNCAxNzQuNTA5IDUwLjM3OTJDMTc0LjUwOSA1NS41NTQ5IDE3OC43MDUgNTkuNzUwNiAxODMuODggNTkuNzUwNloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTc1Ljg5MSA1OS4yMzk0QzE3OS42ODEgNTkuMjM5NCAxODIuNzUzIDU2LjE2NzIgMTgyLjc1MyA1Mi4zNzc1QzE4Mi43NTMgNDguNTg3NyAxNzkuNjgxIDQ1LjUxNTUgMTc1Ljg5MSA0NS41MTU1QzE3Mi4xMDIgNDUuNTE1NSAxNjkuMDI5IDQ4LjU4NzcgMTY5LjAyOSA1Mi4zNzc1QzE2OS4wMjkgNTYuMTY3MiAxNzIuMTAyIDU5LjIzOTQgMTc1Ljg5MSA1OS4yMzk0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMDkuMzY4IDU4LjA1MTlDMjEzLjE1OCA1OC4wNTE5IDIxNi4yMyA1NC45Nzk3IDIxNi4yMyA1MS4xOUMyMTYuMjMgNDcuNDAwMiAyMTMuMTU4IDQ0LjMyOCAyMDkuMzY4IDQ0LjMyOEMyMDUuNTc4IDQ0LjMyOCAyMDIuNTA2IDQ3LjQwMDIgMjAyLjUwNiA1MS4xOUMyMDIuNTA2IDU0Ljk3OTcgMjA1LjU3OCA1OC4wNTE5IDIwOS4zNjggNTguMDUxOVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTk4LjM4OCA1NC45ODU4QzIwMy42MTggNTQuOTg1OCAyMDcuODU4IDUwLjc0NjEgMjA3Ljg1OCA0NS41MTYzQzIwNy44NTggNDAuMjg2NCAyMDMuNjE4IDM2LjA0NjggMTk4LjM4OCAzNi4wNDY4QzE5My4xNTkgMzYuMDQ2OCAxODguOTE5IDQwLjI4NjQgMTg4LjkxOSA0NS41MTYzQzE4OC45MTkgNTAuNzQ2MSAxOTMuMTU5IDU0Ljk4NTggMTk4LjM4OCA1NC45ODU4WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNTQuMzI1IDgwLjM4M0MxNTAuNjk4IDgwLjAwMDcgMTQ3Ljg4NSA3Ny4yOTUyIDE0Ny4yNTcgNzMuODI1QzE0Mi40ODMgNzMuODU0NCAxMzguOTc0IDY5LjgxNTYgMTM5LjI0OCA2NS4yNzY5QzEzNS41MTMgNjQuMTY5MiAxMzMuMDUzIDYwLjYxMDggMTMzLjQ2NSA1Ni42OTk1QzEzMy42OSA1NC41NzIzIDEzNC43MjkgNTIuNjcwNSAxMzYuMzM3IDUxLjMzNzRDMTM0LjE4IDQ5LjY1MTMgMTMyLjk4NCA0Ni45NDU3IDEzMy4yNzggNDQuMTYxN0MxMzMuNTIzIDQxLjg1OCAxMzQuNzEgMzkuODI4OSAxMzYuNTUzIDM4LjUwNTVDMTM1LjkyNSAzNy4xODIxIDEzNS42NyAzNS43MTE3IDEzNS44MjcgMzQuMjUxMUMxMzYuMTExIDMxLjUyNTkgMTM3Ljc1OCAyOS4xNjM0IDE0MC4xMzEgMjcuOTI4M0MxMzkuOTI1IDI3LjA2NTYgMTM5Ljg3NiAyNi4xOTMyIDEzOS45NjQgMjUuMzIwN0MxNDAuNDE1IDIxLjAwNzUgMTQ0LjE5OSAxNy44NDEyIDE0OC40ODMgMTguMTA1OUMxNDguMjA4IDE3LjEzNTQgMTQ4LjEyIDE2LjE0NTMgMTQ4LjIyOCAxNS4xNTUyQzE0OC42OTggMTAuNzI0NCAxNTIuNjc4IDcuNDk5MjQgMTU3LjEwOSA3Ljk2OTc4QzE1OC4wOCA4LjA2NzgxIDE1OS4wMjEgOC4zNjE4OSAxNTkuOTAzIDguODIyNjJDMTU5Ljk0MiA4LjgwMzAyIDE1OS45ODEgOC43ODM0MSAxNjAuMDIgOC43NTRDMTYwLjkxMyA0Ljc3NDA3IDE2NC42MDggMi4wNzgzIDE2OC43MjUgMi41MDk2MkMxNjkuOTMxIDIuNjM3MDYgMTcxLjA4OCAzLjA0ODc3IDE3Mi4xMzcgMy43MDU1NkMxNzIuNDkgMy42MTczNCAxNzIuODMzIDMuNTM4OTEgMTczLjE4NiAzLjQ2MDQ5QzE3NC44NjIgMS4wNjg2MSAxNzcuNzE1IC0wLjI2NDU3MSAxODAuNjQ2IDAuMDQ5MTE4NUMxODIuNDMgMC4yMzUzNzIgMTg0LjA5NiAxLjAyOTQgMTg1LjM4IDIuMjc0MzVDMTg3LjA1NyAwLjgwMzkzNCAxODkuMjcyIDAuMDg4MzI5NyAxOTEuNTI3IDAuMzIzNTk3QzE5NC45NDggMC42ODYzIDE5Ny43NzEgMy4yMjUyMiAxOTguNTQ1IDYuNTE4OTZDMTk5LjcyMiA2LjA3Nzg0IDIwMC45NjcgNS45MTExOSAyMDIuMjEyIDYuMDM4NjNDMjA2LjE5MiA2LjQ2MDE1IDIwOS4yMTEgOS43NDQwOCAyMDkuNDI3IDEzLjYyNkMyMTQuNTI0IDEzLjE1NTUgMjE4LjYwMiAxNy41OTYxIDIxOC4wODIgMjIuNTE3MUMyMTguMDMzIDIyLjk3NzkgMjE3LjkzNSAyMy40NDg0IDIxNy43ODggMjMuOTI4N0MyMjEuNTgyIDI0Ljk0ODIgMjI0LjE0MSAyOC41NTU3IDIyMy43MTkgMzIuNTU1MkMyMjMuNTEzIDM0LjQ3NjUgMjIyLjYyMSAzNi4yNDEgMjIxLjIxOSAzNy41NTQ2QzIyMi45MDUgMzkuMjYwMyAyMjMuNzY4IDQxLjY0MjQgMjIzLjUxMyA0NC4wNDQxQzIyMy4xNyA0Ny4zMjggMjIwLjgzNyA1MC4wMzM2IDIxNy43NTkgNTAuOTQ1MkMyMTcuNzg4IDUxLjM2NjggMjE3Ljc3OSA1MS43Nzg1IDIxNy43MyA1Mi4yQzIxNy4yNTkgNTYuNjMwOSAyMTQuMzU3IDU4LjQ2NCAyMDkuOTI2IDU4LjAwMzNDMjA2LjY0MyA1Ny42NjAyIDIwNy4yMzEgNTIuMjE5NiAyMDYuMzI5IDQ5LjA1MzNDMjAyLjc0MSA0Ni42NDE4IDE4OS42NTQgMzguNTU0NSAxODIuMzkgNDAuODI4OEMxNzMuOTg5IDQzLjQ2NTcgMTY5LjYyNyA1Mi41NTI5IDE2Ny4xMjcgNTcuNjg5NkMxNjYuMjk0IDU5LjQwNTEgMTY1LjY2NyA2MC42Nzk0IDE2NS4xNjcgNjEuMTQwMUMxNjIuNTU5IDYzLjQ5MjggMTYxLjgzNCA2NS44ODQ3IDE2Mi42NTcgNjkuMzk0MUMxNjIuODUzIDY5Ljc4NjIgMTYzLjA0IDcwLjQ0MyAxNjMuMTQ4IDcxLjExOTRMMTYzLjIxNiA3MS4yNjY0QzE2My4yOTUgNzEuNDkxOSAxNjMuMzYzIDcxLjcyNzIgMTYzLjQ2MSA3MS45NzIyQzE2NC43MTYgNzUuMTM4NSAxNjUuODM0IDc2Ljg1NCAxNjYuNTM5IDc3LjczNjNDMTY3LjA2OSA3OC4zOTMxIDE2Ny4xMzcgNzkuMjg1MSAxNjYuNzI2IDgwLjAxMDVDMTY2LjMxNCA4MC43MzU5IDE2OS4zMjMgODIuMTg2OCAxNjguNSA4Mi4wNzg5QzE2Ny4xNDcgODEuODYzMyAxNjAuOTQyIDg0LjA4ODUgMTU4Ljg1NCA3OS41MzAyQzE1Ny40NTIgODAuMjU1NiAxNTUuOTAzIDgwLjU1OTUgMTU0LjM0NSA4MC4zOTI4TDE1NC4zMjUgODAuMzgzWk0xNTAuMDIyIDcwLjUxMTZMMTQ5Ljk5MiA3Mi4yNjYzQzE0OS45NTMgNzQuOTgxNyAxNTEuOTQzIDc3LjI0NjEgMTU0LjYyOSA3Ny41MzA0QzE1NS43NzYgNzcuNjQ4MSAxNTYuOTEzIDc3LjM3MzYgMTU3LjkzMiA3Ni43MzY0TDE1OC41MjEgNzYuMzYzOUwxNTkuMTc3IDc2LjU5OTJDMTYwLjYxOCA3Ny4xMTg3IDE2MS45NDIgNzcuNDgxNCAxNjMuMDU5IDc3LjczNjNDMTYyLjI3NSA3Ni40NDIzIDE2MS41MiA3NC44NjQxIDE2MC43ODUgNzMuMDIxMUMxNjAuNjU4IDcyLjcxNzIgMTYwLjU2IDcyLjQyMzIgMTYwLjQ3MSA3Mi4xMjkxTDE2MC4zNjQgNzEuNzg2QzE2MC4yMzYgNzEuMTE5NCAxNjAuMTE4IDcwLjY4ODEgMTU5Ljk0MiA3MC4yODYyQzE1OC44MDUgNjUuNTUxNCAxNTkuODgzIDYyLjA1MTggMTYzLjIzNiA1OS4wMTI5QzE2My4yMzYgNTkuMDEyOSAxNjQuNzc1IDU5LjkzNDQgMTY3LjIzNSA2MS43MzgxQzE2OC4yMjUgNTguNTEzIDE3Mi45OSA1MC4xMjE4IDE4Mi4wMzggNDcuMjc5QzE5MC43MjMgNDQuNTQ0IDIwMC4xMDQgNTAuMjk4MyAyMDQuMTgyIDUzLjE5MDFMMjA0Ljc1MSA1NC4wNjI1TDIwNC42MTMgNTIuMzk2MUMyMDUuMDg0IDU0LjYzMTEgMjA2LjkwNyA1Ni4yOTc2IDIwOS4xNDIgNTYuNTMyOEMyMTIuMDA1IDU2LjgzNjcgMjE0LjU3MyA1NC43NDg3IDIxNC44NzcgNTEuODk2MUMyMTQuOTM2IDUxLjM0NzIgMjE0Ljg5NyA1MC43Njg4IDIxNC43NCA1MC4xNDE0TDIxNC4zNTcgNDguNTQzNkwyMTUuOTk0IDQ4LjM3NjlDMjE4LjQ0NSA0OC4xMzE4IDIyMC40MDYgNDYuMTgxMSAyMjAuNjYxIDQzLjczMDRDMjIwLjg1NyA0MS44Nzc3IDIyMC4wMTQgNDAuMDQ0NSAyMTguNDU1IDM4Ljk0NjZMMjE3Ljc2OSAzOC40NjYzTDIxNy45MjYgMzYuNDE3NUwyMTguNTI0IDM2LjAyNTRDMjE5Ljg0NyAzNS4xNTI5IDIyMC43IDMzLjc3MDcgMjIwLjg2NiAzMi4yNDE1QzIyMS4xNjEgMjkuNDQ3NyAyMTkuMiAyNi45NDggMjE2LjQwNiAyNi41NDYxTDIxNS42OTEgMjYuNDQ4TDIxNS4zNDcgMjUuODAxMUMyMTUuMiAyNS41MjY2IDIxNS4wNTMgMjUuMjUyMSAyMTQuODk3IDI0Ljk3NzZMMjE0LjUzNCAyNC4zNjAxTDIxNC44MTggMjMuNzAzM0MyMTUuMDUzIDIzLjE0NDUgMjE1LjE5MSAyMi42NjQyIDIxNS4yNCAyMi4yMDM0QzIxNS41NDQgMTkuMzQxIDIxMy40NTYgMTYuNzcyNyAyMTAuNjAzIDE2LjQ2ODhDMjEwLjA3NCAxNi40MSAyMDkuNTA1IDE2LjQ1OSAyMDguODc4IDE2LjYwNkwyMDguMTUyIDE2Ljc3MjdMMjA2LjQ4NiAxNS4yODI3TDIwNi41NTQgMTQuNTU3M0MyMDYuODI5IDExLjcyNDIgMjA0Ljc0MSA5LjE2NTcyIDIwMS45MTggOC44NzE2NEMyMDAuOTM3IDguNzczNjEgMTk5Ljk0NyA4Ljk1MDA2IDE5OS4wNDUgOS40MTA3OUwxOTguMzk4IDkuNzM0MjhMMTk3Ljc1MSA5LjQxMDc5QzE5Ny41NDYgOS4zMDI5NiAxOTcuMzMgOS4yMTQ3MyAxOTcuMTI0IDkuMTE2NzFMMTk1Ljk1OCA4LjU2Nzc1TDE5NS44NjkgNy43NzM3MkMxOTUuNjA1IDUuMzYyMjMgMTkzLjY1NCAzLjQyMTI4IDE5MS4yNDIgMy4xNjY0MUMxODkuNDc4IDIuOTgwMTUgMTg3Ljc1MyAzLjcwNTU2IDE4Ni42MjUgNS4xMDczNkwxODYuMTI1IDUuNzI0OTRMMTg0LjcxNCA1LjU1ODI5TDE4NC4wMDggNS4wMjg5NEMxODMuMTE2IDMuODAzNTkgMTgxLjgyMiAzLjA0ODc3IDE4MC4zNTEgMi44OTE5M0MxNzguMzIyIDIuNjc2MjcgMTc2LjM0MiAzLjY4NTk2IDE3NS4zMTMgNS40NjAyNkwxNzQuOTg5IDYuMDA5MjJMMTc0LjM2MiA2LjEzNjY2QzE3My42NDYgNi4yODM3IDE3Mi45NDEgNi40NTAzNCAxNzIuMjM1IDYuNjM2NkwxNzEuNTY4IDYuODEzMDVMMTcxLjAxOSA2LjM5MTUzQzE3MC4yMzUgNS44MDMzNiAxNjkuMzcyIDUuNDUwNDYgMTY4LjQ0MSA1LjM1MjQzQzE2NS42MjggNS4wNTgzNSAxNjMuMTI4IDcuMDI4NzEgMTYyLjc0NiA5Ljg0MjExTDE2Mi42NDggMTAuNTM4MUwxNjIuMDUgMTAuODkxQzE2MS41OTkgMTEuMTU1NyAxNjEuMTQ4IDExLjQyMDQgMTYwLjcwNyAxMS43MDQ2TDE1OS45MjIgMTIuMjA0NkwxNTkuMTQ4IDExLjY5NDhDMTU1LjgyNSA5LjQ2OTYxIDE1MS40ODIgMTEuODAyNyAxNTEuMSAxNS40Njg5QzE1MS4wMTIgMTYuMzQxNCAxNTEuMTU5IDE3LjIzMzQgMTUxLjU0MSAxOC4wOTYxTDE1MS45MTQgMTguOTQ4OUwxNTEuMjg2IDE5LjYzNTFDMTUxLjEgMTkuODQxIDE1MC45MjMgMjAuMDQ2OCAxNTAuNzQ3IDIwLjI1MjdMMTQ5Ljg3NSAyMS4yNjI0TDE0OC41NjEgMjAuOTg3OUMxNDUuNjk5IDIwLjY4NCAxNDMuMTMgMjIuNzcyIDE0Mi44MjYgMjUuNjI0NkMxNDIuNzM4IDI2LjQ2NzcgMTQyLjg3NSAyNy4zMzAzIDE0My4yMzggMjguMTgzMUwxNDMuODU2IDI5LjY0MzhMMTQyLjM0NiAzMC4xMTQzQzE0MC4zNDYgMzAuNzMxOSAxMzguOTE1IDMyLjQ3NjggMTM4LjY5OSAzNC41NTVDMTM4LjU2MiAzNS44MTk1IDEzOC45MjUgMzcuMTAzNyAxMzkuNjk5IDM4LjE2MjRMMTQwLjcyOSAzOS41NjQyTDEzOS4xNiA0MC4yOTk0QzEzNy40NzQgNDEuMDgzNiAxMzYuMzU3IDQyLjY0MjMgMTM2LjE3IDQ0LjQ1NThDMTM1Ljk0NSA0Ni42MzIgMTM3LjEzMSA0OC43Mjk4IDEzOS4xMjEgNDkuNjkwNUwxMzkuODU2IDUwLjA0MzRMMTQwLjA4MiA1Mi40NTQ5TDEzOS4xOTkgNTIuODk2QzEzNy42MDEgNTMuNjk5OCAxMzYuNTMzIDU1LjIzODkgMTM2LjM1NyA1Ny4wMDM0QzEzNi4wNTMgNTkuODY1OCAxMzguMTQxIDYyLjQzNDEgMTQwLjk5MyA2Mi43MzhMMTQyLjcwOSA2Mi44MzZMMTQyLjMyNiA2NC41MDI1QzE0Mi4yNDggNjQuODI2IDE0Mi4xODkgNjUuMDEyMyAxNDIuMTcgNjUuMjE4MUMxNDEuODY2IDY4LjA4MDUgMTQzLjk1NCA3MC42NDg5IDE0Ni44MTYgNzAuOTUyN0MxNDcuMjY3IDcxLjAwMTggMTQ3Ljc1NyA3MC45NzI0IDE0OC4zMzYgNzAuODY0NUwxNTAuMDYxIDcwLjUzMTJMMTUwLjAyMiA3MC41MTE2WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNzcuNDYgMTI2Ljc0MkwxNzIuMzkyIDEzNS4wMTZDMTcyLjAyOSAxMzUuNjA0IDE3MS4yOTQgMTM1LjgxIDE3MC42OTYgMTM1LjQ2N0MxNjcuNSAxMzMuNjUzIDE1Ny43OTYgMTI3LjcxMyAxNTEuOTA0IDExOS4yMDRDMTQ0Ljc3NyAxMDguOTAxIDE0MS45ODQgOTUuNzM2MSAxNTUuOTcyIDg4LjA5QzE1NS45NzIgODguMDkgMTU0Ljg3NCA5OC45OTA3IDE1OS42NjggMTA3LjQ0MUMxNjQuNDYxIDExNS44OTEgMTc3LjQ1IDEyNi43NDIgMTc3LjQ1IDEyNi43NDJIMTc3LjQ2WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNjkuNjg2IDEzNy4yNjFDMTY1LjgzNCAxMzUuMDg1IDE1Ni4yMzcgMTI5LjA4NSAxNTAuMjE4IDEyMC4zOEMxNDUuMDAzIDExMi44NDIgMTQyLjk1NCAxMDUuMjE1IDE0NC40NTQgOTguOTIyQzE0NS42OTkgOTMuNjg3MyAxNDkuMjM3IDg5LjQ0MjcgMTU0Ljk5MiA4Ni4yOTZMMTU4LjQwMyA4NC40MzM1TDE1OC4wMTEgODguMzA1NkMxNTguMDAxIDg4LjQxMzQgMTU3LjAzMSA5OC42NDc1IDE2MS40NTIgMTA2LjQzMUMxNjYuMDEgMTE0LjQ1IDE3OC42MzYgMTI1LjA2NiAxNzguNzYzIDEyNS4xNjRMMTgwLjExNiAxMjYuMzAxTDE3NC4xMjcgMTM2LjA4NEMxNzMuNDk5IDEzNy4xMjQgMTcyLjQwMSAxMzcuNjkyIDE3MS4yNzQgMTM3LjY4MkMxNzAuNzM1IDEzNy42ODIgMTcwLjE4NiAxMzcuNTM1IDE2OS42NzYgMTM3LjI1MUwxNjkuNjg2IDEzNy4yNjFaTTE1Ny44OTMgMTA4LjQ2QzE1NC42NDkgMTAyLjc0NSAxNTMuOTEzIDk2LjA5ODggMTUzLjgyNSA5MS45MzI2QzE1MC45NzMgOTQuMTU3OCAxNDkuMTY5IDk2LjgxNDQgMTQ4LjQ0MyA5OS44NzI5QzE0Ny4yMTggMTA1LjAxOSAxNDkuMDUxIDExMS40NzkgMTUzLjYgMTE4LjA0N0MxNTguODkzIDEyNS43MTMgMTY3LjYwOCAxMzEuMjkxIDE3MS4wMzkgMTMzLjNMMTc0Ljc5MyAxMjcuMTY0QzE3MS4yODQgMTI0LjA5NiAxNjEuOTMyIDExNS41NzcgMTU3Ljg5MyAxMDguNDZaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTE5Ny45NjggMTIzLjQyOUMxOTYuNDU4IDEyMi41OTYgMTkzLjIyMyAxMjAuOTQ5IDE5MC42MTYgMTIwLjU1N0MxOTAuNjE2IDEyMC41NTcgMTkzLjUxNyAxMDcuMTg2IDE4Ni44ODEgOTguNzI2NEMxODYuODgxIDk4LjcyNjQgMTkyLjMyMSAxMDAuMjg1IDE5Ni45NTggOTkuODUzOEMxOTYuOTU4IDk5Ljg1MzggMjAzLjA2NSAxMTAuMjg0IDE5OS4xMjUgMTIyLjk1OUMxOTguOTc4IDEyMy40MzkgMTk4LjQwOSAxMjMuNjc1IDE5Ny45NjggMTIzLjQyOVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTk2Ljk2NyAxMjUuMjEyQzE5NS43NDIgMTI0LjUzNiAxOTIuNjM1IDEyMi45MTggMTkwLjMxMSAxMjIuNTc1TDE4OC4xNDUgMTIyLjI2MUwxODguNjA2IDEyMC4xMTVDMTg4LjYzNSAxMTkuOTg3IDE5MS4yMzMgMTA3LjU5NiAxODUuMjYzIDk5Ljk3OTdMMTgxLjM2MSA5NC45OTk5TDE4Ny40MzkgOTYuNzQ0OEMxODcuNDM5IDk2Ljc0NDggMTkyLjU0NiA5OC4xOTU2IDE5Ni43NjIgOTcuODAzNUwxOTguMDY1IDk3LjY3NkwxOTguNzIyIDk4LjgwMzRDMTk4Ljk4NyA5OS4yNjQxIDIwNS4yNDEgMTEwLjE2NSAyMDEuMDc1IDEyMy41NDZDMjAwLjgyIDEyNC4zNjkgMjAwLjIxMiAxMjUuMDM2IDE5OS40MDggMTI1LjM1OUMxOTkuMDU1IDEyNS40OTYgMTk4LjY4MyAxMjUuNTc1IDE5OC4zMiAxMjUuNTY1QzE5Ny44NSAxMjUuNTY1IDE5Ny4zODkgMTI1LjQ0NyAxOTYuOTY3IDEyNS4yMTJaTTE5MC45OTcgMTAxLjY0NkMxOTMuODk5IDEwOC4xNDUgMTkzLjQwOSAxMTUuNTE3IDE5Mi45NDggMTE4Ljk4N0MxOTQuNjA1IDExOS40ODcgMTk2LjI2MiAxMjAuMjMyIDE5Ny41NzUgMTIwLjg4OUMxOTkuNzcxIDExMi4xNDUgMTk2Ljk3NyAxMDQuNjc1IDE5NS43MzIgMTAxLjk2QzE5NC4wOTUgMTAxLjk4OSAxOTIuNDQ4IDEwMS44NDIgMTkwLjk5NyAxMDEuNjQ2WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xOTIuOTA5IDE0OS45OTJMMTk2Ljk4NyAxNDkuNTQxQzE5NS40NjggMTM1Ljg5NiAxOTAuNzMzIDEyMy4yNiAxOTAuNTM3IDEyMi43M0wxODYuNzA0IDEyNC4xODFDMTg2Ljc1MyAxMjQuMzA5IDE5MS40NTggMTM2Ljg4NiAxOTIuOTE5IDE1MC4wMDJMMTkyLjkwOSAxNDkuOTkyWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0yOTAuNTQ1IDIyNS4zMTRMMjE2LjIzIDI2Ny40NzZDMjE2LjA3MyAyNjcuNTY0IDIxNS44ODcgMjY3LjU2NCAyMTUuNzQgMjY3LjQ3NkwxNjUuMTU3IDIzNi44MjNDMTY0Ljg0MyAyMzYuNjM3IDE2NC44NDMgMjM2LjE3NiAxNjUuMTU3IDIzNS45OUwyMzguOTIzIDE5My4yNjlDMjM5LjA4IDE5My4xODEgMjM5LjI2NiAxOTMuMTgxIDIzOS40MTMgMTkzLjI2OUwyOTAuNTU1IDIyNC40ODFDMjkwLjg2OCAyMjQuNjc3IDI5MC44NTggMjI1LjEyOCAyOTAuNTQ1IDIyNS4zMTRaIiBmaWxsPSIjOEI5OUE3Ij48L3BhdGg+PHBhdGggZD0iTTIxNC42NzEgMjY5LjIyNEwxNjQuMDc5IDIzOC41NzFDMTYzLjMxNCAyMzguMTEgMTYyLjg1NCAyMzcuMjY3IDE2Mi44NjMgMjM2LjM3NUMxNjIuODczIDIzNS40ODMgMTYzLjM2MyAyMzQuNjU5IDE2NC4xMjggMjM0LjIwOUwyMzcuOTA0IDE5MS40NzhDMjM4LjY5OCAxOTEuMDI3IDIzOS42ODggMTkxLjAzNyAyNDAuNDgyIDE5MS41MTdMMjkxLjYxMyAyMjIuNzI5QzI5Mi4zNzggMjIzLjE5IDI5Mi44NDkgMjI0LjAzMyAyOTIuODI5IDIyNC45MzVDMjkyLjgxOSAyMjUuODI3IDI5Mi4zMTkgMjI2LjY2IDI5MS41NDUgMjI3LjEwMUwyMTcuMjMgMjY5LjI2M0MyMTYuODM4IDI2OS40ODkgMjE2LjM5NyAyNjkuNTk3IDIxNS45NTUgMjY5LjU5N0MyMTUuNTE0IDI2OS41OTcgMjE1LjA2MyAyNjkuNDY5IDIxNC42NjEgMjY5LjIzNEwyMTQuNjcxIDI2OS4yMjRaTTIzOS4xNDkgMTk1LjUwN0wxNjguNDggMjM2LjQzNEwyMTYuMDE0IDI2NS4yNDRMMjg3LjIyMiAyMjQuODQ3TDIzOS4xNDkgMTk1LjUwN1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTQ3Ljk2NCAxNjYuNzU1QzE0Ny45NjQgMTY2Ljc1NSAxNTEuMTExIDE3Ni4yNTQgMTUyLjgwNiAxOTEuNjM1QzE1NC4xODkgMjA0LjE5MiAxNTMuOTczIDIxNS4xMTIgMTUzLjk2MyAyMTUuMzA4QzE1NC4xODkgMjE1LjI2OSAxNzAuMTY3IDIxMi40NDYgMTgzLjk0IDIxNi44MzhDMTk3LjgxMSAyMjEuMjU5IDIxNi41OTMgMjE5LjI5OCAyMTYuNTkzIDIxOS4yOThDMjE2LjU5MyAyMTkuMjk4IDIyNi4yNTkgMjEyLjI2IDIzMC40NTQgMjEyLjY5MUMyMzQuNjYgMjEzLjEyMiAyMzIuNTIzIDIxNy4yIDIzMi41MjMgMjE3LjJDMjMyLjUyMyAyMTcuMiAyNTIuNDQyIDIyNC4xOCAyNDUuMDQxIDIzMC40OTNDMjM3LjYzIDIzNi44MDYgMjE2LjQ5NSAyMzIuNDgzIDIxNi40OTUgMjMyLjQ4M0MyMTYuNDk1IDIzMi40ODMgMTY2LjgyNCAyMzcuNDczIDE0MC41ODIgMjMzLjUxMkMxMzkuNDU1IDIzMy4zNDYgMTM4LjQ5NCAyMzIuNjQgMTM3Ljk2NSAyMzEuNjNDMTM1LjEwMyAyMjYuMTYgMTI0LjUyNSAyMDUuODQ5IDEyMS43MTIgMTY5LjIxNkMxMTguMzQgMTI1LjM5NyAxNDguMDcyIDE2Mi4wMTEgMTQ4LjA3MiAxNjIuMDExTDE0Ny45NzQgMTY2Ljc0NUwxNDcuOTY0IDE2Ni43NTVaIiBmaWxsPSIjOUI4MzY1Ij48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjMiPjxwYXRoIGQ9Ik0yMTYuMzU3IDIyOS4zMzVDMjA2LjQ5NSAyMjcuOTYzIDE2OC40NyAyMzEuNjk4IDE1MC4zMzUgMjI3LjI3N0MxNDEuMjU4IDIyNS4wNjEgMTMzLjE3IDIxMy4yMjkgMTI4Ljk3NSAyMDkuNDA2QzEzMS4zNDcgMjE1LjUxMyAxMzYuOTE1IDIyOS42MjkgMTM3Ljk2NCAyMzEuNjM5QzEzOC40OTMgMjMyLjY0OSAxMzkuNDU0IDIzMy4zNDUgMTQwLjU4MSAyMzMuNTIxQzE2Ni44MjMgMjM3LjQ4MSAyMjMuNzY4IDIzMy40MDQgMjIzLjc2OCAyMzMuNDA0QzIyMy43NjggMjMzLjQwNCAyMzIuMjU3IDIzMS41NjEgMjE2LjM1NyAyMjkuMzQ1VjIyOS4zMzVaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0xNDAuMjc4IDIzNS41NDJDMTM4LjUxMyAyMzUuMjc4IDEzNi45NzQgMjM0LjE3IDEzNi4xNTEgMjMyLjU4MkMxMjQuODk3IDIxMS4wODQgMTIwLjk3NiAxODYuMzUyIDExOS42NzIgMTY5LjM4M0MxMTguNjIzIDE1NS44MDYgMTIwLjYxMyAxNDguMjA5IDEyNS43NSAxNDYuMTZDMTM0LjYyMiAxNDIuNjMxIDE0OC4xNDkgMTU4Ljg2NSAxNDkuNjU5IDE2MC43MjdMMTUwLjEzOSAxNjEuMzE2TDE1MC4wMzIgMTY2LjQ1MkMxNTAuNjIgMTY4LjMyNSAxNTMuMzE2IDE3Ny40MjIgMTU0Ljg1NSAxOTEuNEMxNTUuODg0IDIwMC43MjMgMTU2LjA0MSAyMDguOTY3IDE1Ni4wNDEgMjEyLjkzN0MxNjEuMTc3IDIxMi4zMSAxNzMuNTA5IDIxMS4zNDkgMTg0LjU2NyAyMTQuODg4QzE5Ni41ODUgMjE4LjcyMSAyMTIuNzMgMjE3LjU4NCAyMTUuODU3IDIxNy4zMDlDMjE4LjMyOCAyMTUuNTU0IDIyNi4yMzkgMjEwLjIzMSAyMzAuNjY5IDIxMC42NjNDMjMzLjAzMiAyMTAuOTA4IDIzNC4xMiAyMTIuMDU1IDIzNC42MiAyMTIuOTg2QzIzNS4xNTkgMjEzLjk5NiAyMzUuMTk4IDIxNS4wNjQgMjM1LjA2MSAyMTUuOTc2QzIzOS4yMTcgMjE3LjYyMyAyNDcuNzI2IDIyMS41NjQgMjQ4LjY1OCAyMjYuNTYzQzI0OC45MjIgMjI3Ljk2NSAyNDguNzM2IDIzMC4wNTMgMjQ2LjM3MyAyMzIuMDYyQzIzOC43MTggMjM4LjU4MSAyMTkuNzY5IDIzNS4yMTkgMjE2LjM5NyAyMzQuNTYyQzIxMy4wNTQgMjM0Ljg4NiAxODcuODggMjM3LjI3NyAxNjQuNjA4IDIzNy4xMDFDMTU1Ljc5NiAyMzcuMDMyIDE0Ny4yNTcgMjM2LjYwMSAxNDAuMjc4IDIzNS41NTJWMjM1LjU0MlpNMjE2LjkwNiAyMzAuNDg0QzIyMi41MTMgMjMxLjYzMSAyMzguMjc2IDIzMy41ODIgMjQzLjcwNyAyMjguOTQ1QzI0NC43NTYgMjI4LjA1MyAyNDQuNjU4IDIyNy41MTQgMjQ0LjYxOSAyMjcuMzE4QzI0NC4xMTkgMjI0LjYzMiAyMzYuNjk4IDIyMC44NTggMjMxLjg0NiAyMTkuMTUyTDIzMC41NTIgMjE4LjY5MUMyMzAuMDcxIDIxOC41MTUgMjI5Ljg1NiAyMTcuOTY2IDIzMC4wODEgMjE3LjUxNUwyMzAuNjk5IDIxNi4yOUMyMzAuOTI0IDIxNS44MzkgMjMxLjE5OSAyMTUuMzY4IDIzMS4wMTMgMjE0Ljk2NkMyMzEuMDEzIDIxNC45NjYgMjMwLjg2NSAyMTQuNzAyIDIzMC4yMzggMjE0Ljc2QzIyNy44MjcgMjE0Ljk3NiAyMjEuNTQzIDIxOC4yNSAyMTcuNzg5IDIyMC45ODVMMjE3LjM0NyAyMjEuMzA5TDIxNi43OTggMjIxLjM2N0MyMTYuMDE0IDIyMS40NTYgMTk3LjQxOCAyMjMuMzE4IDE4My4zMTIgMjE4LjgxOUMxNzAuMTQ3IDIxNC42MjMgMTU0LjQ4MiAyMTcuMzE5IDE1NC4zMTUgMjE3LjM0OEwxNTEuODE2IDIxNy43N0wxNTEuOTA0IDIxNS4yMzFDMTUxLjkwNCAyMTUuMTMzIDE1Mi4xMjkgMjA0LjI2MiAxNTAuNzU3IDE5MS44NzFDMTQ5LjEgMTc2LjkyMiAxNDYuMDMyIDE2Ny41MTEgMTQ2LjAwMyAxNjcuNDEzTDE0NS44OTUgMTY3LjA4TDE0NS45ODMgMTYyLjc1N0MxNDAuNTYyIDE1Ni4yNjcgMTMxLjQ5NSAxNDguMjg4IDEyNy4yNSAxNDkuOTg0QzEyNS43OTkgMTUwLjU2MiAxMjIuNTQ1IDE1My41ODEgMTIzLjczMSAxNjkuMDg5QzEyNS4wMDUgMTg1LjY3NiAxMjguODI4IDIwOS44MyAxMzkuNzU4IDIzMC43MUMxMzkuOTg0IDIzMS4xNDEgMTQwLjM4NiAyMzEuNDM1IDE0MC44NjYgMjMxLjUxM0MxNjYuNTU5IDIzNS4zODUgMjE1Ljc3OSAyMzAuNTIzIDIxNi4yNzkgMjMwLjQ3NEwyMTYuNTgzIDIzMC40NDVMMjE2Ljg4NyAyMzAuNTA0TDIxNi45MDYgMjMwLjQ4NFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTUwLjYxIDE2Ni43NzhDMTUyLjI4NiAxNjQuNzE5IDE1My4wNSAxNjIuMDYzIDE1Mi45ODIgMTU5LjQwNkMxNTIuNzE3IDE0OS4yNyAxNTAuODM1IDExOC4wNzggMTM3LjkyNSAxMTIuMjc1QzEyMi40NzYgMTA1LjMyNCAxMTYuODU5IDE1MS44MTkgMTE3LjU2NCAxNjMuNTA0QzExOC4yNiAxNzUuMTk5IDE0NC41MTIgMTY5Ljk4NCAxNDcuOTE0IDE2OC44NDZDMTQ4Ljk0MyAxNjguNTAzIDE0OS44NTUgMTY3LjY5IDE1MC42MSAxNjYuNzY4VjE2Ni43NzhaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMTkuMzQ4IDE3MC4yNDZDMTE3LjAwNiAxNjguNjY4IDExNS42ODIgMTY2LjM3NCAxMTUuNTI1IDE2My42MjlDMTE1LjAyNSAxNTUuMjM4IDExOC4yNyAxMTkuMTQ0IDEyOS44MTggMTExLjE3NEMxMzIuNTcyIDEwOS4yNzMgMTM1LjY3IDEwOS4wMTggMTM4Ljc2OCAxMTAuNDFDMTUyLjQzMyAxMTYuNTU2IDE1NC42OTcgMTQ2LjY5IDE1NS4wMzEgMTU5LjM1NUMxNTUuMTE5IDE2Mi42MjkgMTU0LjEwOSAxNjUuNzE3IDE1Mi4xOTggMTY4LjA3QzE1MS4wNyAxNjkuNDUyIDE0OS44NTUgMTcwLjM3MyAxNDguNTcxIDE3MC43OTVDMTQ3LjA4MSAxNzEuMjk1IDEzOS4yMTkgMTczLjExOCAxMzEuNTMzIDE3My4wNTlDMTI2LjkzNiAxNzMuMDIgMTIyLjQwNyAxNzIuMzE0IDExOS4zNDggMTcwLjI0NlpNMTMyLjE1MSAxMTQuNTQ2QzEyMy4xNDIgMTIwLjc2MSAxMTkuMDI1IDE1My40NjQgMTE5LjYxMyAxNjMuMzg0QzExOS43MDEgMTY0Ljg3NCAxMjAuMzQ4IDE2NS45NzIgMTIxLjY0MiAxNjYuODU0QzEyNy41MzQgMTcwLjgyNCAxNDMuNzU3IDE2OC4wOCAxNDcuMjU3IDE2Ni45MTNDMTQ3Ljc3NyAxNjYuNzM3IDE0OC4zOTQgMTY2LjIyNyAxNDkuMDEyIDE2NS40ODJDMTUwLjMwNiAxNjMuODk0IDE1MC45OTIgMTYxLjc1NyAxNTAuOTMzIDE1OS40NjNDMTUwLjQyMyAxNDAuMzM4IDE0Ni41MTIgMTE4LjM4OSAxMzcuMDgyIDExNC4xNDVDMTM2LjMxNyAxMTMuODAxIDEzNS42MDEgMTEzLjYyNSAxMzQuOTA1IDExMy42MjVDMTMzLjk1NSAxMTMuNjI1IDEzMy4wNTMgMTEzLjkxOSAxMzIuMTQxIDExNC41NDZIMTMyLjE1MVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjE2LjI1IDI2Ni45OTlMMjQxLjg0NSAyMDkuNjkyQzI0MS44NDUgMjA5LjY5MiAyNDEuODk0IDIwOS42MTQgMjQxLjkzMyAyMDkuNTk0TDMxOC4yOTcgMTY1LjA3QzMxOC40ODMgMTY0Ljk2MiAzMTguNjk5IDE2NS4xNTggMzE4LjYxMSAxNjUuMzU0TDI5MS4yOSAyMjQuODU3QzI5MS4yOSAyMjQuODU3IDI5MS4yNDEgMjI0LjkzNSAyOTEuMjAyIDIyNC45NTVMMjE2LjU3MyAyNjcuMjkzQzIxNi4zODcgMjY3LjQwMSAyMTYuMTcxIDI2Ny4yMDUgMjE2LjI2IDI2Ny4wMDlMMjE2LjI1IDI2Ni45OTlaIiBmaWxsPSIjOEI5OUE3Ij48L3BhdGg+PHBhdGggZD0iTTIxMy43NzkgMjY3LjUxOUwyMzkuOTcyIDIwOC44NjlMMjQwLjMzNSAyMDguMTUzTDMxNy4yNjcgMTYzLjI5NkMzMTguMTMgMTYyLjc4NiAzMTkuMjA4IDE2Mi44OTQgMzE5Ljk0NCAxNjMuNTdMMzIxLjExIDE2NC44MzVMMjkzLjE3MiAyMjUuNjcxTDI5Mi44MDkgMjI2LjM5NkwyMTcuNTgzIDI2OS4wNjhMMjE2LjAzNCAyNjkuNzY0TDIxMy43ODkgMjY3LjUwOUwyMTMuNzc5IDI2Ny41MTlaTTMxNC4zMzYgMTY5Ljc0NkwyNDMuNDgyIDIxMS4wNjVMMjIwLjM5NiAyNjIuNzU1TDI4OS42NzMgMjIzLjQ1NUwzMTQuMzM2IDE2OS43NDZaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI3MS41NTcgMjIwLjEyN0MyNjguMzUxIDIyNC4xMzYgMjY0LjI3MyAyMjYuMjA1IDI2Mi40NSAyMjQuNzQ0QzI2MC42MjcgMjIzLjI4NCAyNjEuNzU0IDIxOC44NTMgMjY0Ljk1OSAyMTQuODQzQzI2OC4xNjUgMjEwLjgzNCAyNzIuMjQzIDIwOC43NjYgMjc0LjA2NiAyMTAuMjI2QzI3NS44ODkgMjExLjY4NyAyNzQuNzYyIDIxNi4xMTggMjcxLjU1NyAyMjAuMTI3WiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMjYxLjE3NSAyMjYuMzQ5QzI1Ny45NiAyMjMuNzcxIDI1OS44NDIgMjE3Ljk2OCAyNjMuMzcxIDIxMy41NjZDMjY2LjkgMjA5LjE2NSAyNzIuMTQ0IDIwNi4wNTcgMjc1LjM2IDIwOC42MjZDMjc2LjI1MiAyMDkuMzQxIDI3Ny42MjQgMjExLjA4NiAyNzYuNjkzIDIxNC43MjNDMjc2LjE1NCAyMTYuODcgMjc0Ljg4OSAyMTkuMjQyIDI3My4xNjQgMjIxLjQwOUMyNzAuNTA3IDIyNC43MjIgMjY2Ljg4IDIyNy4zIDI2My44ODEgMjI3LjI4QzI2Mi44OTEgMjI3LjI4IDI2MS45NjkgMjI2Ljk4NiAyNjEuMTc1IDIyNi4zNDlaTTI2OS45NTggMjE4Ljg1QzI3Mi43MzMgMjE1LjM4IDI3My4xOTMgMjEyLjM1MSAyNzIuODAxIDIxMS44NDFDMjcyLjIwMyAyMTEuNTU3IDI2OS4zNDEgMjEyLjY2NCAyNjYuNTY3IDIxNi4xMzVDMjYzLjc5MiAyMTkuNjA1IDI2My4zMzIgMjIyLjYzNCAyNjMuNzI0IDIyMy4xNDRDMjY0LjMyMiAyMjMuNDI4IDI2Ny4xODQgMjIyLjMyIDI2OS45NTggMjE4Ljg1WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0zMTkuMTY5IDIwMi4xNjFMMzM3LjU1OSAyMDEuNDE2QzMzOC4xMzcgMjAxLjM5NyAzMzguNjY2IDIwMS4xMjIgMzM5LjAxOSAyMDAuNjcxQzMzOS4zNzIgMjAwLjIyIDMzOS41MSAxOTkuNjMyIDMzOS4zOTIgMTk5LjA3M0wzMzYuODUzIDE4Ni43ODFDMzM2LjcxNiAxODYuMTE0IDMzNi4yMzUgMTg1LjU2NSAzMzUuNTg4IDE4NS4zNEMzMzUuMDIgMTg1LjE0NCAzMzQuNDAyIDE4NS4yMTIgMzMzLjg5MiAxODUuNTM2QzMzMy44MjQgMTg1LjU3NSAzMzMuNzY1IDE4NS42MjQgMzMzLjY5NiAxODUuNjgzTDMxNy44NTUgMTk4LjcyMUMzMTcuNiAxOTguOTI2IDMxNy40MTQgMTk5LjE5MSAzMTcuMjk2IDE5OS40NzVDMzE3LjExIDE5OS45MjYgMzE3LjA5MSAyMDAuNDQ2IDMxNy4yNzcgMjAwLjkyNkMzMTcuNTgxIDIwMS43MSAzMTguMzM1IDIwMi4yMSAzMTkuMTc5IDIwMi4xODFMMzE5LjE2OSAyMDIuMTYxWk0zMjQuODE1IDE5OC4wMjVMMzMzLjY3NyAxOTAuNzMxTDMzNS4wOTggMTk3LjYxM0wzMjQuODE1IDE5OC4wMjVaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PHBhdGggZD0iTTExOC43MzEgMjE5LjIyOEwxMDIuMTI1IDIxMS4yODhDMTAxLjYwNSAyMTEuMDQzIDEwMS4wMDcgMjExLjAzMyAxMDAuNDg4IDIxMS4yNjhDOTkuOTY4MiAyMTEuNTAzIDk5LjU3NjEgMjExLjk1NCA5OS40MDk0IDIxMi41MDNMOTUuOTA5OCAyMjQuNTYxQzk1LjcyMzYgMjI1LjIxNyA5NS44OTAyIDIyNS45MzMgOTYuMzUwOSAyMjYuNDMzQzk2Ljc2MjcgMjI2Ljg3NCA5Ny4zNDEgMjI3LjEgOTcuOTM5IDIyNy4wNTFDOTguMDE3NCAyMjcuMDUxIDk4LjA5NTggMjI3LjAzMSA5OC4xODQxIDIyNy4wMjFMMTE4LjI4IDIyMi44OTRDMTE4LjYwMyAyMjIuODI2IDExOC44ODggMjIyLjY4OCAxMTkuMTMzIDIyMi40OTJDMTE5LjUwNSAyMjIuMTc5IDExOS43NyAyMjEuNzI4IDExOS44MjkgMjIxLjIyOEMxMTkuOTI3IDIyMC4zOTQgMTE5LjQ5NSAyMTkuNTkxIDExOC43MzEgMjE5LjIyOFpNMTExLjgxIDIyMC4yNDdMMTAwLjU2NiAyMjIuNTUxTDEwMi41MjcgMjE1LjgwN0wxMTEuODEgMjIwLjI0N1oiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMzM4LjUxOSAxNzUuMTQ4QzM0MS42ODUgMTc0Ljc5NSAzNDMuOTY5IDE3MS45MzIgMzQzLjYwNyAxNjguNzY2QzM0My4yNDQgMTY1LjYgMzQwLjM5MSAxNjMuMzE2IDMzNy4yMjUgMTYzLjY3OEMzMzQuMDU5IDE2NC4wNDEgMzMxLjc3NSAxNjYuODk0IDMzMi4xMzcgMTcwLjA2QzMzMi41IDE3My4yMjYgMzM1LjM1MyAxNzUuNTEgMzM4LjUxOSAxNzUuMTQ4Wk0zMzcuNjA3IDE2Ny4wNDFDMzM4LjkyMSAxNjYuODk0IDM0MC4xMDcgMTY3Ljg0NSAzNDAuMjU0IDE2OS4xNDhDMzQwLjQwMSAxNzAuNDUyIDMzOS40NSAxNzEuNjQ4IDMzOC4xNDcgMTcxLjc5NUMzMzYuODQzIDE3MS45NDIgMzM1LjY0NyAxNzEuMDAxIDMzNS41IDE2OS42ODdDMzM1LjM1MyAxNjguMzc0IDMzNi4zMDQgMTY3LjE4OCAzMzcuNjA3IDE2Ny4wNDFaIiBmaWxsPSIjRkY2MDAwIj48L3BhdGg+PHBhdGggZD0iTTEwOC40ODcgMjAxLjI0MUMxMTEuNjUzIDIwMC44ODggMTEzLjkzNyAxOTguMDI2IDExMy41NzUgMTk0Ljg2QzExMy4yMTIgMTkxLjY5MyAxMTAuMzU5IDE4OS40MDkgMTA3LjE5MyAxODkuNzcyQzEwNC4wMjcgMTkwLjEzNSAxMDEuNzQzIDE5Mi45ODcgMTAyLjEwNSAxOTYuMTU0QzEwMi40NjggMTk5LjMyIDEwNS4zMjEgMjAxLjYwNCAxMDguNDg3IDIwMS4yNDFaTTEwNy41NzUgMTkzLjEzNEMxMDguODg5IDE5Mi45ODcgMTEwLjA3NSAxOTMuOTM4IDExMC4yMjIgMTk1LjI0MkMxMTAuMzY5IDE5Ni41NDYgMTA5LjQxOCAxOTcuNzQyIDEwOC4xMTQgMTk3Ljg4OUMxMDYuODExIDE5OC4wMzYgMTA1LjYxNSAxOTcuMDk1IDEwNS40NjggMTk1Ljc4MUMxMDUuMzIxIDE5NC40NjggMTA2LjI3MSAxOTMuMjgyIDEwNy41NzUgMTkzLjEzNFoiIGZpbGw9IndoaXRlIj48L3BhdGg+PHBhdGggZD0iTTI0OC4wMSAxMzQuNTkzQzI1MS4xNzcgMTM0LjI0IDI1My40NjEgMTMxLjM3OCAyNTMuMDk4IDEyOC4yMTFDMjUyLjc0NSAxMjUuMDQ1IDI0OS44ODMgMTIyLjc2MSAyNDYuNzE2IDEyMy4xMjRDMjQzLjU1IDEyMy40ODYgMjQxLjI2NiAxMjYuMzM5IDI0MS42MjkgMTI5LjUwNUMyNDEuOTkxIDEzMi42NzIgMjQ0Ljg0NCAxMzQuOTU2IDI0OC4wMSAxMzQuNTkzWk0yNDcuMDk5IDEyNi40ODZDMjQ4LjQxMiAxMjYuMzM5IDI0OS41OTggMTI3LjI5IDI0OS43NDUgMTI4LjU5NEMyNDkuODkyIDEyOS44OTcgMjQ4Ljk0MiAxMzEuMDkzIDI0Ny42MzggMTMxLjI0QzI0Ni4zMzQgMTMxLjM4NyAyNDUuMTM4IDEzMC40NDYgMjQ0Ljk5MSAxMjkuMTMzQzI0NC44NDQgMTI3LjgxOSAyNDUuNzk1IDEyNi42MzMgMjQ3LjA5OSAxMjYuNDg2WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxwYXRoIGQ9Ik0zNTIuNTc3IDE4My4xMjRDMzUzLjkxNCAxODMuMTI0IDM1NC45OTggMTgyLjA0IDM1NC45OTggMTgwLjcwMkMzNTQuOTk4IDE3OS4zNjUgMzUzLjkxNCAxNzguMjgxIDM1Mi41NzcgMTc4LjI4MUMzNTEuMjM5IDE3OC4yODEgMzUwLjE1NSAxNzkuMzY1IDM1MC4xNTUgMTgwLjcwMkMzNTAuMTU1IDE4Mi4wNCAzNTEuMjM5IDE4My4xMjQgMzUyLjU3NyAxODMuMTI0WiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMjY3LjQyOSAxNDguMDgxQzI2OC43NjYgMTQ4LjA4MSAyNjkuODUgMTQ2Ljk5NyAyNjkuODUgMTQ1LjY1OUMyNjkuODUgMTQ0LjMyMiAyNjguNzY2IDE0My4yMzggMjY3LjQyOSAxNDMuMjM4QzI2Ni4wOTIgMTQzLjIzOCAyNjUuMDA4IDE0NC4zMjIgMjY1LjAwOCAxNDUuNjU5QzI2NS4wMDggMTQ2Ljk5NyAyNjYuMDkyIDE0OC4wODEgMjY3LjQyOSAxNDguMDgxWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNODUuNzQ0NSAxOTkuOTU2Qzg3LjA4MTggMTk5Ljk1NiA4OC4xNjU4IDE5OC44NzIgODguMTY1OCAxOTcuNTM0Qzg4LjE2NTggMTk2LjE5NyA4Ny4wODE4IDE5NS4xMTMgODUuNzQ0NSAxOTUuMTEzQzg0LjQwNzMgMTk1LjExMyA4My4zMjMyIDE5Ni4xOTcgODMuMzIzMiAxOTcuNTM0QzgzLjMyMzIgMTk4Ljg3MiA4NC40MDczIDE5OS45NTYgODUuNzQ0NSAxOTkuOTU2WiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yNDkuMzcyIDE1OC42QzI1MC43MSAxNTguNiAyNTEuNzk0IDE1Ny41MTYgMjUxLjc5NCAxNTYuMTc5QzI1MS43OTQgMTU0Ljg0MiAyNTAuNzEgMTUzLjc1OCAyNDkuMzcyIDE1My43NThDMjQ4LjAzNSAxNTMuNzU4IDI0Ni45NTEgMTU0Ljg0MiAyNDYuOTUxIDE1Ni4xNzlDMjQ2Ljk1MSAxNTcuNTE2IDI0OC4wMzUgMTU4LjYgMjQ5LjM3MiAxNTguNloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNNzUuNzE2NyAxNzcuMjA2Qzc1LjM2MzggMTc3LjIwNiA3NS4wMTA5IDE3Ny4xMDggNzQuNjk3MiAxNzYuOTMxQzc0LjIyNjcgMTc2LjY1NyA3My44OTM0IDE3Ni4yMjUgNzMuNzQ2NCAxNzUuNjk2QzczLjYwOTEgMTc1LjE2NyA3My42Nzc3IDE3NC42MTggNzMuOTUyMiAxNzQuMTQ3TDgxLjcwNjIgMTYwLjcyN0M4MS45ODA3IDE2MC4yNTcgODIuNDIxOCAxNTkuOTIzIDgyLjk0MTQgMTU5Ljc3NkM4My4xMTc4IDE1OS43MjcgODMuMjk0MyAxNTkuNzA4IDgzLjQ3MDcgMTU5LjcwOEM4My44MjM2IDE1OS43MDggODQuMTc2NSAxNTkuODA2IDg0LjQ5MDIgMTU5Ljk4Mkw5Mi4wNzc2IDE2NC4zNjRMMTAwLjE0NSAxNTAuMzk1QzEwMC41MDggMTQ5Ljc2OCAxMDEuMTg0IDE0OS4zNzYgMTAxLjkxIDE0OS4zNzZDMTAyLjI2MyAxNDkuMzc2IDEwMi42MTYgMTQ5LjQ3NCAxMDIuOTE5IDE0OS42NUwxMTAuMjQyIDE1My44NzVMMTE2LjQzOCAxNDMuMTQxQzExNi44IDE0Mi41MTQgMTE3LjQ3NyAxNDIuMTIxIDExOC4yMDIgMTQyLjEyMUMxMTguNTU1IDE0Mi4xMjEgMTE4LjkwOCAxNDIuMjIgMTE5LjIxMiAxNDIuMzk2TDEyNS43MzEgMTQ2LjE2TDEzMy43OTggMTMyLjE5MUMxMzQuMDczIDEzMS43MjEgMTM0LjUxNCAxMzEuMzg3IDEzNS4wMzMgMTMxLjI0QzEzNS4yMSAxMzEuMTkxIDEzNS4zODYgMTMxLjE3MiAxMzUuNTYzIDEzMS4xNzJDMTM1LjkxNiAxMzEuMTcyIDEzNi4yNjkgMTMxLjI3IDEzNi41ODIgMTMxLjQ0NkMxMzcuNTUzIDEzMi4wMDUgMTM3Ljg4NiAxMzMuMjYgMTM3LjMyNyAxMzQuMjNMMTI4LjI0IDE0OS45NzRDMTI3Ljg3NyAxNTAuNjAxIDEyNy4yMDEgMTUwLjk5MyAxMjYuNDc2IDE1MC45OTNDMTI2LjEyMyAxNTAuOTkzIDEyNS43NyAxNTAuODk1IDEyNS40NjYgMTUwLjcxOUwxMTguOTQ3IDE0Ni45NTRMMTEyLjc1MiAxNTcuNjg4QzExMi4zODkgMTU4LjMxNiAxMTEuNzEzIDE1OC43MDggMTEwLjk4NyAxNTguNzA4QzExMC42MzQgMTU4LjcwOCAxMTAuMjgxIDE1OC42MSAxMDkuOTY4IDE1OC40MzNMMTAyLjY0NSAxNTQuMjA4TDk0LjU3NzMgMTY4LjE3N0M5NC4zMDI4IDE2OC42NDggOTMuODYxNyAxNjguOTgxIDkzLjM0MjEgMTY5LjEyOEM5My4xNjU3IDE2OS4xNzcgOTIuOTg5MiAxNjkuMTk3IDkyLjgxMjggMTY5LjE5N0M5Mi40NTk5IDE2OS4xOTcgOTIuMTA3IDE2OS4wOTkgOTEuODAzMSAxNjguOTIyTDg0LjIxNTcgMTY0LjU0TDc3LjQ4MTIgMTc2LjE5NkM3Ny4xMTg1IDE3Ni44MjMgNzYuNDQyMSAxNzcuMjE1IDc1LjcxNjcgMTc3LjIxNVYxNzcuMjA2WiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwXzIzODdfMjkwODQiPjxyZWN0IHdpZHRoPSIzNTUiIGhlaWdodD0iNDQwIiBmaWxsPSJ3aGl0ZSI+PC9yZWN0PjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPiA="}},"time_used":116,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/floatbox/floatbox.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.818Z","timestamp":1785145403818,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/floatbox/floatbox.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-2147\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":8519,"size_decoded":4105,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (8519), with no line terminators","md5":"7b29b4799fab9900d5c5058d83a85f07","sha1":"4af4d14e4768c8bd921460aa8a5c5f187681f65d","sha256":"b507d035bb7c0e0d06f4245d4b48321216f291abc57739a5013ea1c67b9a1c7f","sha512":"54728b7b07e071c4056f1d45231dfd5ebea173c32b022b17e8525140bc121ac1a54adfd4bd214dcee063fd82b26ef243e4a7c67a7d623b8415433364c0109509","ssdeep":"192:Sq3z9uRZFsifNi3fkojH/LqnPjRpciJni8:WRZF3FdqfLqnPjRpcuni8","tlshash":"b0020ce53784b429e36718fa90df440f7239aa456c4e4901b569f15c3438abb42bfeac","first_seen":"2026-05-20T00:20:36.573463Z","last_seen":"2026-07-27T14:04:41.077156Z","times_seen":7,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7dmFyIGw9d2luZG93LHA9bC5kb2N1bWVudCxhPWwucGFyZW50IT1sJiZLKGwucGFyZW50KXx8e30saD1sLmZifHx7fSxtPWguZGF0YXx8e30sZz1bXSxzPUFycmF5LmlzQXJyYXksYz1EYXRlLm5vdyxkPXZvaWQgMCx2PWZ1bmN0aW9uKCl7dmFyIGUsdD1hLmZiJiZhLmZiLnNtYWxsU2NyZWVuLG49d2luZG93Lm1hdGNoTWVkaWE7ISF0PT09dD9lPXQ6biYmd2luZG93LmlubmVyV2lkdGgmJihlPSFuKCIobWluLXdpZHRoOjUxMnB4KSIpLm1hdGNoZXN8fCFuKCIobWluLWhlaWdodDo1MTJweCkiKS5tYXRjaGVzKTtyZXR1cm4hIWV9KCksZT1sLmZiT3B0aW9uc3x8e30sYj17fSxuPVtdLHQ9W10scj1zKGUucmVhZHkpP2UucmVhZHk6W10sdT17fSx5PXt9LG89e30saT1GKGwubG9jYXRpb24uaHJlZiksZj1GKGUuc2NyaXB0UGF0aHx8KEQoJ3NjcmlwdFtzcmMqPSJmbG9hdGJveC5qcyJdJylbMF18fEQoInNjcmlwdCIsMCwtMSkpLnNyYykseD1mLiQsdz0vXHMrL2csJD0iZmxvYXRib3giLEU9ITE7ZnVuY3Rpb24gTChlKXtpZih0LnB1c2goZSksRT1FfHwibG9hZGluZyIhPXAucmVhZHlTdGF0ZSlmb3IoO3QubGVuZ3RoOylYKHQuc2hpZnQoKSl9ZnVuY3Rpb24gTyhlLHQpe2lmKCh0P246cikucHVzaChlKSxtLlomJkUpZm9yKHI9bi5jb25jYXQociksbi5sZW5ndGg9MDtyLmxlbmd0aDspWChyLnNoaWZ0KCkpfWZ1bmN0aW9uIE4oKXt2YXIgZSx0LG4scj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksbz0xPHIubGVuZ3RoJiZyLnNoaWZ0KCl8fHt9O2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspZm9yKHQgaW4gZT1yW25dKWVbdF0hPT1kJiYob1t0XT1lW3RdKTtyZXR1cm4gb31mdW5jdGlvbiBqKGUsdCl7dmFyIG4scixvPXR5cGVvZiBlO3RyeXshIWU9PT1lfHwrZT09PWV8fCIiK2U9PT1lP249bzplP2U9PWUud2luZG93P249IndpbmRvdyI6KHI9SyhlKSkmJihuPWU9PXIuZG9jdW1lbnQ/ImRvY3VtZW50Ijoibm9kZSIpOm49IiIrZX1jYXRjaChlKXt9cmV0dXJuIG49bnx8L1xzKFx3KykvLmV4ZWMoe30udG9TdHJpbmcuY2FsbChlKSlbMV0udG9Mb3dlckNhc2UoKSx0JiYobj0tMTwocyh0KT90Olt0XSkuaW5kZXhPZihuKSksbn1mdW5jdGlvbiBDKGUsdCl7dmFyIG4scixvPWUsaT1bXTtpZihlJiYic3RyaW5nIj09dHlwZW9mIGUpe2lmKGU9cmUoZSwiIyIsIiIpLG89bnVsbCx0KWkucHVzaCh0KTtlbHNlIGZvcihpLnB1c2gocCksYS5kb2N1bWVudCYmaS5wdXNoKGEuZG9jdW1lbnQpLG49RCgiaWZyYW1lIikscj0wO3I8bi5sZW5ndGg7cisrKSh0PW5bcl0uY29udGVudERvY3VtZW50KSYmaS5wdXNoKHQpO2ZvcihyPTA7cjxpLmxlbmd0aCYmIW87cisrKW89aVtyXS5nZXRFbGVtZW50QnlJZChlKX1yZXR1cm4gb31mdW5jdGlvbiBEKGUsdCxuKXtlPXMoZSk/ZS5qb2luKCIsIik6IiIrZTt2YXIgcixvLGksYSxmPShLKHQ9Qyh0KSl8fGwpLmRvY3VtZW50O25lKHQpJiYoYT0oaT1IKHQsImlkIikpfHwiZmIiK2MoKSxlPShvPSIjIisodC5pZD1hKSsiICIpK3JlKGUsLywvZywiLCIrbykpO3RyeXtyPVtdLnNsaWNlLmNhbGwoZi5xdWVyeVNlbGVjdG9yQWxsKGUpKX1jYXRjaChlKXtyPVtdfXJldHVybiBvJiZIKHQsImlkIixpKSwrbj09PW4mJihyPXJbbjwwP24rci5sZW5ndGg6bl0pLHJ9ZnVuY3Rpb24gTShlLHQsbil7dmFyIHIsbyxpLGEsZjtpZihzKGUpKXtmb3IoZj0wO2Y8ZS5sZW5ndGg7ZisrKU0oZVtmXSxkLG4pO00oZCx0KX1lbHNlKHI9QygiZmIiK2UscCkpPyh0ZShyKSxYKHVbZV0pLGxlKHUsZSkpOiFlfHwrZT09PWV8fCFuJiZ5W2VdP3QmJigiIit0PT09dD9vPSJ0ZXh0IjpYKHQpKToobz0ic3JjIix5W2VdPSEwKTtvJiYoaT1jKCksKHI9ZWUoInNjcmlwdCIpKS5pZD0iZmIiK2ksInNyYyI9PW8/KHIuYXN5bmM9ITEsYT1UKHIsWyJsb2FkIiwiZXJyb3IiXSxmdW5jdGlvbigpe1MoYSksTShpKX0pLHVbaV09dCk6ZT10KyI7ZmIucmVxdWlyZSgiK2krIikiLHJbb109ZSx0ZShyLHAuaGVhZCkpfWZ1bmN0aW9uIFQoZSx0LG4scixvKXt2YXIgaTtpZihlPUMoZSl8fEQoZSkpaWYobz1vfHxbZSx0LG4scl0scyhlKSlmb3IoaT1lLmxlbmd0aDtpLS07KVQoZVtpXSx0LG4scixvKTtlbHNlIGlmKHModCkpZm9yKGk9dC5sZW5ndGg7aS0tOylUKGUsdFtpXSxuLHIsbyk7ZWxzZSBlLmFkZEV2ZW50TGlzdGVuZXImJiEvXm9uLy50ZXN0KHQpP2UuYWRkRXZlbnRMaXN0ZW5lcih0LG4scik6ZVt0XT1uO3JldHVybiBvfWZ1bmN0aW9uIFMoZSx0LG4scil7dmFyIG87aWYoZT1DKGUpfHxEKGUpKWlmKG4paWYocyhlKSlmb3Iobz1lLmxlbmd0aDtvLS07KVMoZVtvXSx0LG4scik7ZWxzZSBpZihzKHQpKWZvcihvPXQubGVuZ3RoO28tLTspUyhlLHRbb10sbixyKTtlbHNlIGUucmVtb3ZlRXZlbnRMaXN0ZW5lciYmIS9eb24vLnRlc3QodCk/ZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbixyKTplW3RdPWQ7ZWxzZSBpZihzKGUpKWlmKCFlWzJdfHxzKGVbMl0pKWZvcihvPWUubGVuZ3RoO2UubGVuZ3RoOylTKGUucG9wKCkpO2Vsc2UgUy5hcHBseShsLGUpfWZ1bmN0aW9uIF8oZSx0LG4pe2UmJih0JiZlLnN0b3BQcm9wYWdhdGlvbiYmZS5zdG9wUHJvcGFnYXRpb24oKSwhMSE9PW4mJmUucHJldmVudERlZmF1bHQmJmUucHJldmVudERlZmF1bHQoKSl9ZnVuY3Rpb24geihlKXt2YXIgdD1bXTtyZXR1cm4oZT1DKGUpKSYmKGUuY2xhc3NMaXN0P3Q9W10uc2xpY2UuY2FsbChlLmNsYXNzTGlzdCk6ZS5jbGFzc05hbWUmJih0PWUuY2xhc3NOYW1lLnNwbGl0KHcpKSksdH1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuISF0JiYtMTx6KGUpLmluZGV4T2YodCl9ZnVuY3Rpb24gcShlLHQsbil7dmFyIHIsbztpZigoZT1DKGUpfHxEKGUpKSYmdCYmKHQuc3BsaXQmJih0PXQuc3BsaXQodykpLHModCkpKWlmKHMoZSkpZm9yKG89ZS5sZW5ndGg7by0tOylxKGVbb10sdCxuKTtlbHNlIGZvcihvPTA7bzx0Lmxlbmd0aDtvKyspKHI9dFtvXSkmJihlLmNsYXNzTGlzdD9lLmNsYXNzTGlzdFtuPyJhZGQiOiJyZW1vdmUiXShyKTpuP1IoZSxyKXx8KGUuY2xhc3NOYW1lPXNlKChlLmNsYXNzTmFtZXx8IiIpKyIgIityKSk6ZS5jbGFzc05hbWUmJihlLmNsYXNzTmFtZT1zZShyZShlLmNsYXNzTmFtZSx3LCIgICIsUmVnRXhwKCIoXnwgKSgiK3IrIikoIHwkKSIsImciKSwiJDEkMyIpKSkpfWZ1bmN0aW9uIFAoZSx0KXtxKGUsdCwhMCl9ZnVuY3Rpb24gQShlLHQpe3EoZSx0LCExKX1mdW5jdGlvbiBIKGUsdCxuKXt2YXIgcixvO2lmKGU9QyhlKXx8RChlKSxzKGUpKWZvcihvPTA7bzxlLmxlbmd0aDtvKyspcj1IKGVbb10sdCxuKTtlbHNlIGlmKGoodCwib2JqZWN0IikpZm9yKG8gaW4gdClIKGUsbyx0W29dKTtlbHNlIHQmJihyPWVbKG51bGw9PT1uPyJyZW1vdmUiOm49PT1kPyJnZXQiOiJzZXQiKSsiQXR0cmlidXRlIl0odCxuKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gayhlLHQpe2U9QyhlKTt2YXIgbixyLG8saSxhLGYsbCxzLGMsdT1bXTtmdW5jdGlvbiBkKGUpe18oZSksaC5zdGFydCh0aGlzKX1pZihpPWIuXyl7Zm9yKG5lKGUpfHwoZT1wLmJvZHksZy5sZW5ndGg9MCksIVIoZSwkKSYmITE9PT1pLmFjdGl2YXRlTWVkaWF8fCh1PVtlXSksdT11LmNvbmNhdChEKCIuIiskLGUpKSxzPTA7czx1Lmxlbmd0aDtzKyspaWYoIW5lKG49dVtzXSxbImEiLCJhcmVhIl0pKXtmb3IoUChmPUoobiksSChuLCJjbGFzcyIpKSxBKGYsJCksZi5jbGFzc05hbWV8fGxlKGYsImNsYXNzTmFtZSIpLGE9eihmKSxjPTA7YzxhLmxlbmd0aDtjKyspZj1OKHt9LGIuJFthW2NdXSxmKTtmb3Iocj1EKFsiYSIsImFyZWEiXSxuKSxjPTA7YzxyLmxlbmd0aDtjKyspbD1IKG89cltjXSwiaHJlZiIpfHxIKG8sInhsaW5rOmhyZWYiKSxSKG8sIm5vZmxvYXRib3giKXx8L15tYWlsdG86Ly50ZXN0KGwpfHwhUihuLCQpJiYhRihsKS5ZfHwoSChvLCJkYXRhLWZiLWluaGVyaXQiLFEoTihKKEgobywiZGF0YS1mYi1pbmhlcml0IikpLGYpKXx8bnVsbCksUChvLCQpKX1mb3Iocj1EKCJhLiIrJCsiLGFyZWEuIiskLGUpLHM9MDtzPHIubGVuZ3RoO3MrKylvPXJbc10sZ1tvLmZieF18fChtLiQobyx0KSxvLm9uY2xpY2t8fFQobywib25jbGljayIsZCkpfX1mdW5jdGlvbiBCKGUsdCl7dmFyIG4scj1lKyIiLG89WyImIiwiJmFtcDsiLCciJywiJnF1b3Q7IiwiPiIsIiZndDsiLCI8IiwiJmx0OyJdO2Zvcih0JiZvLnJldmVyc2UoKSxuPTA7bjxvLmxlbmd0aDtuKz0yKXI9cmUocixSZWdFeHAob1tuXSwiZyIpLG9bbisxXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gSShlKXtyZXR1cm4gQihlLCEwKX1mdW5jdGlvbiBWKGUsdCl7cmV0dXJuIGU9QihJKGUpKSx0JiYoZT1CKGUpKSxlfWZ1bmN0aW9uIFkoZSl7dmFyIHQsbixyLG89W107aWYobmUoZT1wLmZvcm1zW2VdfHxDKGUpLCJmb3JtIikmJihlPW0uWj9oLmdldEZvcm1WYWx1ZXMoZSk6e30pLGooZSwib2JqZWN0IikpZm9yKHQgaW4gZSlmb3Iobj1lW3RdLHMobil8fChuPVtuXSkscj0wO3I8bi5sZW5ndGg7cisrKW8ucHVzaChhZSh0KSsiPSIrYWUobltyXSE9PWQ/cmUoIiIrbltyXSwvXHI/XG4vZywiXHJcbiIpOiIiKSk7cmV0dXJuIHJlKG8uam9pbigiJiIpLC8lMjAvZywiKyIpfWZ1bmN0aW9uIFooZSl7dmFyIHQsbixyPXt9LG89cmUoSShlPSIiK2U9PT1lP2U6IiIpLC9eXD8vLCIiLC9cKy9nLCIlMjAiLC8lMjUvZywiJSIpLnNwbGl0KCImIik7Zm9yKG49MDtuPG8ubGVuZ3RoO24rKylvZShyLGZlKCh0PS8oW149XSopPT8oLiopLy5leGVjKG9bbl0pKVsxXSksZmUodFsyXSkpO3JldHVybiByfWZ1bmN0aW9uIEcoZSx0KXt0cnl7QyhlKS5pbm5lckhUTUw9dHx8IiJ9Y2F0Y2goZSl7fX1mdW5jdGlvbiBVKGUsdCxuLHIpe1cobixyPXJ8fG8pLHJbbl09c2V0VGltZW91dChmdW5jdGlvbigpe1cobixyKSxYKGUpfSx0fHwxMyl9ZnVuY3Rpb24gVyhlLHQpe2UmJih0PXR8fG8sY2xlYXJUaW1lb3V0KHRbZV0pLGxlKHQsZSkpfWZ1bmN0aW9uIFgoZSx0KXt2YXIgbixyPWooZT1sW2VdfHxlKTtyZXR1cm4gZSYmKG49ImZ1bmN0aW9uIj09cj9lLmFwcGx5KGwscyh0KT90Olt0XSk6cyhlKT9YKGUuc2hpZnQoKSxlKToic3RyaW5nIj09ciYmTShkLGUpKSxufWZ1bmN0aW9uIEYoZSx0KXtlPWVlKCJkaXYiLCc8YSBocmVmPSInK1YoZSkrJyI+PC9hPicpLmZpcnN0Q2hpbGQuaHJlZix0PXR8fHt9O3ZhciBuLHIsbz0vKFtePyNdKikoXD8/W14jXSopKCM/LiopLy5leGVjKGUpLGk9b1sxXSxhPW9bMl0sZj1vWzNdLGw9aS5zcGxpdCgiLyIpLHM9bFtsLmxlbmd0aC0xXS5zcGxpdCgiLiIpLGM9KDE8cy5sZW5ndGgmJnMucG9wKCl8fCIiKS50b0xvd2VyQ2FzZSgpLHU9L1wvXC9cLy8udGVzdChlKT8yOjEsZD1sWzErdV18fCIiLHA9WihhKSxoPXtaOmwuc2xpY2UoMCwyK3UpLmpvaW4oIi8iKSwkOmwuc2xpY2UoMCwtMSkuam9pbigiLyIpKyIvIix5OnMuam9pbigiLiIpLHo6Zix3Oml9O2ZvcihuIGluIHApbGUodCxuKTtyZXR1cm4ocj1ZKHQpKSYmKGErPShhLmxlbmd0aD8iJiI6Ij8iKStyKSxOKGgse1g6aSs9YSxfOmkrZix4OlooYSksWTovanBlP2d8cG5nfGdpZnx3ZWJwLy50ZXN0KGMpPyJpbWFnZSI6Im1wNCI9PWN8fC9cYih5b3V0dVwuP2JlfHZpbWVvKVxiL2kudGVzdChkKT8idmlkZW8iOiJwZGYiPT1jPyJwZGYiOiIifSksaH1mdW5jdGlvbiBKKGUpe3ZhciB0LG4scixvLGksYT17fSxmPWooZSksbD1bXSxzPS8oYHx+KShbXHNcU10qPylcMS9nLGM9e3RydWU6ITAsZmFsc2U6ITEsbnVsbDpudWxsLGRlZmF1bHQ6ZCxhdXRvOmQseWVzOiEwLG5vOiExLG1heDoiMTAwJSJ9O2Z1bmN0aW9uIHUoZSl7dmFyIHQ9K3JlKGUsL3B4JC8sIiIpO3JldHVybiBlIGluIGM/Y1tlXTp0IT10P2U6dH1pZigic3RyaW5nIj09Zil7Zm9yKGU9SShlKTtyPXMuZXhlYyhlKTspbC5wdXNoKHJbMl0pO2ZvcihpPSh0PShlPXNlKHJlKGUscywiYGBgIiwvXHMqWzo9XVxzKi9nLCI6IiwvWzsmLF0vZywiICIpKSkuc3BsaXQodykpLmxlbmd0aDtpLS07KShuPXRbaV0uc3BsaXQoIjoiKSlbMF0mJm5bMV0mJihhW25bMF1dPSJgYGAiPT1uWzFdP2wucG9wKCl8fCIiOnUocmUoblsxXSwvXihbJyJdKSguKylcMSQvLCIkMiIpKSl9ZWxzZSBpZigib2JqZWN0Ij09Zilmb3IobyBpbiBlKWFbb109dShlW29dKTtlbHNlIm5vZGUiPT1mJiZOKGEsSihIKGUsImRhdGEtZmItaW5oZXJpdCIpKSxKKEgoZSwicmV2IikpLEooSChlLCJkYXRhLWZiLW9wdGlvbnMiKSkpO3JldHVybih0PXYmJmEubW9iaWxlKSYmTihhLEoodCkpLGxlKGEsIm1vYmlsZSIpLGF9ZnVuY3Rpb24gUShlKXt2YXIgdCxuLHIsbz0iIjtmb3IodCBpbiBlKWoobj1lW3RdLCJvYmplY3QiKSYmKG49UShuKSksL1s6PSY7LFxzXS8udGVzdChuKSYmKG49KHI9L2AvLnRlc3Qobik/In4iOiJgIikrbityKSxvKz10KyI6IituKyI7IjtyZXR1cm4gVihvKX1mdW5jdGlvbiBLKGUpe3RyeXtyZXR1cm4oZT1lLmRvY3VtZW50fHwoZS5kb2N1bWVudEVsZW1lbnR8fGUpLm93bmVyRG9jdW1lbnQpLmRlZmF1bHRWaWV3fWNhdGNoKGUpe319ZnVuY3Rpb24gZWUoZSx0KXt2YXIgbj1wLmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuImEiPT1lJiZQKG4sIm5vZmxvYXRib3giKSx0JiZHKG4sdCksbn1mdW5jdGlvbiB0ZShlLHQsbil7aWYoZSlpZih0KXRyeXtyZXR1cm4gZS5vd25lckRvY3VtZW50IT10Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5hZG9wdE5vZGUoZSksdC5pbnNlcnRCZWZvcmUoZSxufHxudWxsKX1jYXRjaChlKXt9ZWxzZSBlLnBhcmVudEVsZW1lbnQmJmUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlKX1mdW5jdGlvbiBuZShlLHQpe3ZhciBuPShlJiZlLnRhZ05hbWV8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYocyh0KT90Olt0XSkuaW5kZXhPZihuKTwwJiYobj0iIiksbn1mdW5jdGlvbiByZSgpe3ZhciBlPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSx0PWUuc2hpZnQoKSxuPTA7aWYoIiIrdD09PXQpZm9yKDtuPGUubGVuZ3RoO24rPTIpdD10LnJlcGxhY2UoZVtuXSxlW24rMV0pO3JldHVybiB0fWZ1bmN0aW9uIG9lKGUsdCxuKXt0IGluIGU/KHMoZVt0XSl8fChlW3RdPVtlW3RdXSksZVt0XS5wdXNoKG4pKTp0JiYoZVt0XT1uKX1mdW5jdGlvbiBpZShlLHQpe3RyeXtlPWxbKHQ/ImVuIjoiZGUiKSsiY29kZVVSSUNvbXBvbmVudCJdKGUpfWNhdGNoKGUpe31yZXR1cm4gZX1mdW5jdGlvbiBhZShlKXtyZXR1cm4gaWUoZSwhMCl9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGllKGUsITEpfWZ1bmN0aW9uIGxlKGUsdCl7ZGVsZXRlKGV8fHt9KVt0XX1mdW5jdGlvbiBzZShlKXtyZXR1cm4gcmUoZS50cmltKCksdywiICIpfWZ1bmN0aW9uIGNlKHIsbyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtPKGZ1bmN0aW9uKCl7KG98fGgpW3JdKGUsdCxuKX0sITApfX1mdW5jdGlvbiB1ZSgpe3ZhciBlPWguZmJPcHRpb25zfHx7fSx0PWwuZmJPcHRpb25zfHx7fSxuPU4oSihlLmdsb2JhbCksSihsLmZiUGFnZU9wdGlvbnMpLEoodC5nbG9iYWwpLHYmJkooZS5tb2JpbGUpLHYmJkoodC5tb2JpbGUpKSxyPWkoTihKKGUudHlwZSksSihsLmZiVHlwZU9wdGlvbnMpLEoodC50eXBlKSkpLG89aShOKEooZS5jbGFzc05hbWUpLEoobC5mYkNsYXNzT3B0aW9ucyksSih0LmNsYXNzTmFtZSkpKTtmdW5jdGlvbiBpKGUpe3ZhciB0LG49e307Zm9yKHQgaW4gZSluW3RdPUooZVt0XSk7cmV0dXJuIG59ITEhPT1uLmF1dG9HYWxsZXJ5JiYoci5pbWFnZT1OKHt9LHIuaW1hZ2Use2dyb3VwOiJhdXRvR2FsbGVyeSJ9KSksTihiLHtfOm4sejpyLCQ6b30pLEEocC5kb2N1bWVudEVsZW1lbnQsJCksJD1uLmZsb2F0Ym94Q2xhc3N8fCQsaygpLE0oIW0ueiYmcmUoZi5fLGYuJCtmLnksZi4kKyJjb3JlIiksZnVuY3Rpb24oKXttLnooKX0pfVAocC5kb2N1bWVudEVsZW1lbnQsJCksbC5mYj1OKGgse2RhdGE6bSx2ZXJzaW9uOiI4LjUuMiIsYnVpbGQ6IjIwMjEtMDUtMDQiLHBhdGg6eCxkb2NSZWFkeTpMLHJlYWR5Ok8sJDpDLHNlbGVjdDpELHJlcXVpcmU6TSxleHRlbmQ6TixhZGRFdmVudDpULHJlbW92ZUV2ZW50OlMsc3RvcEV2ZW50Ol8sc2VyaWFsaXplOlksZGVzZXJpYWxpemU6WixnZXRDbGFzczp6LGhhc0NsYXNzOlIsYWRkQ2xhc3M6UCxyZW1vdmVDbGFzczpBLGF0dHI6SCx0eXBlT2Y6aixlbmNvZGVIVE1MOlYsZGVjb2RlSFRNTDpJLHNtYWxsU2NyZWVuOnYsc3RhcnQ6Y2UoInN0YXJ0IiksYWpheDpjZSgiYWpheCIpLGFuaW1hdGU6Y2UoImFuaW1hdGUiKSxwcmVsb2FkOmNlKCJwcmVsb2FkIiksc2V0SW5uZXJIVE1MOkcsRE9NUmVhZHk6TCxleGVjdXRlSlM6TSxnZXRCeVRhZzpEfSksTihtLHskOmNlKCIkIixtKSx0OmssVDpVLHM6VyxTOlgscjpGLFI6SixxOlEsUTpLLHA6ZWUsUDp0ZSxvOm5lLE86cmUsbjpvZSxOOmxlLHc6W10sVzpnLHY6W10sVjp7fSx1Ont9LFU6e30sWTpiLG06byxYOmksTTpmLl8sXzphfSksTChbUyxUKHAsIkRPTUNvbnRlbnRMb2FkZWQiLEwpXSksVShmdW5jdGlvbigpe00oIWguZmJPcHRpb25zJiZyZShmLl8sZi4kK2YueSxmLiQrImZiT3B0aW9ucyIpLFtMLHVlXSl9KX0oKTs="}},"time_used":511,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":511,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.870Z","timestamp":1785145403870,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-b5e0\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":46560,"size_decoded":13366,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (46560), with no line terminators","md5":"ba8f3f237e7289599b94e317bf264ec4","sha1":"e502dc0c21a717791b0cd40a06723d940be9d003","sha256":"dd45232cd4d47ce120725b041e6319792e16dc9af8e362456a18cc6e177257f6","sha512":"72294026a374eca173e38cc5f01c41b76065198bde762a18abb0faf71f4ce749219e43cfd828df5014c6aa2a727928930802b50b4f3911b83b0e467ac84886f5","ssdeep":"768:XcHgp3hoNS7TVN156ui+QneYGgjUvz6TLRfy1/ph1bdEOrZTFZzrXrlYnuLXTJAj:XcSiNS7r10+Q+wfyLh1bdEOrZTFZHXrs","tlshash":"1623f98472e074e643bb15b2a4ff221673325a24ff0650c4e225e0e67a7de854267f6e","first_seen":"2023-03-14T00:45:17Z","last_seen":"2026-08-11T19:51:03.097754Z","times_seen":505,"resource_available":true,"data":"dmFyIGdmb3JtPXdpbmRvdy5nZm9ybXx8e307ZnVuY3Rpb24gYW5ub3VuY2VBSkFYVmFsaWRhdGlvbkVycm9ycygpe3ZhciBlO2pRdWVyeSgiLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3JzIikubGVuZ3RoJiYoKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtanM9Imdmb3JtLWZvY3VzLXZhbGlkYXRpb24tZXJyb3IiXScpKSYmKGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksZS5mb2N1cygpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d3AuYTExeS5zcGVhayhqUXVlcnkoIi5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyA+IGgyIikudGV4dCgpKX0sMWUzKSl9ZnVuY3Rpb24gZ2Zvcm1CaW5kRm9ybWF0UHJpY2luZ0ZpZWxkcygpe2pRdWVyeSgiLmdpbnB1dF9hbW91bnQsIC5naW5wdXRfZG9uYXRpb25fYW1vdW50Iikub2ZmKCJjaGFuZ2UuZ2Zvcm0iKS5vbigiY2hhbmdlLmdmb3JtIixmdW5jdGlvbigpe2dmb3JtRm9ybWF0UHJpY2luZ0ZpZWxkKHRoaXMpfSksalF1ZXJ5KCIuZ2lucHV0X2Ftb3VudCwgLmdpbnB1dF9kb25hdGlvbl9hbW91bnQiKS5lYWNoKGZ1bmN0aW9uKCl7Z2Zvcm1Gb3JtYXRQcmljaW5nRmllbGQodGhpcyl9KX1mdW5jdGlvbiBDdXJyZW5jeShlKXt0aGlzLmN1cnJlbmN5PWUsdGhpcy50b051bWJlcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pc051bWVyaWMoZSk/cGFyc2VGbG9hdChlKTpnZm9ybUNsZWFuTnVtYmVyKGUsdGhpcy5jdXJyZW5jeS5zeW1ib2xfcmlnaHQsdGhpcy5jdXJyZW5jeS5zeW1ib2xfbGVmdCx0aGlzLmN1cnJlbmN5LmRlY2ltYWxfc2VwYXJhdG9yKX0sdGhpcy50b01vbmV5PWZ1bmN0aW9uKGUsdCl7aWYoITE9PT0oZT0odD10fHwhMSk/ZTpnZm9ybUNsZWFuTnVtYmVyKGUsdGhpcy5jdXJyZW5jeS5zeW1ib2xfcmlnaHQsdGhpcy5jdXJyZW5jeS5zeW1ib2xfbGVmdCx0aGlzLmN1cnJlbmN5LmRlY2ltYWxfc2VwYXJhdG9yKSkpcmV0dXJuIiI7Ii0iPT0oZSs9bmVnYXRpdmU9IiIpWzBdJiYoZT1wYXJzZUZsb2F0KGUuc3Vic3RyKDEpKSxuZWdhdGl2ZT0iLSIpLCIwLjAwIj09KG1vbmV5PXRoaXMubnVtYmVyRm9ybWF0KGUsdGhpcy5jdXJyZW5jeS5kZWNpbWFscyx0aGlzLmN1cnJlbmN5LmRlY2ltYWxfc2VwYXJhdG9yLHRoaXMuY3VycmVuY3kudGhvdXNhbmRfc2VwYXJhdG9yKSkmJihuZWdhdGl2ZT0iIik7dD10aGlzLmN1cnJlbmN5LnN5bWJvbF9sZWZ0P3RoaXMuY3VycmVuY3kuc3ltYm9sX2xlZnQrdGhpcy5jdXJyZW5jeS5zeW1ib2xfcGFkZGluZzoiIixlPXRoaXMuY3VycmVuY3kuc3ltYm9sX3JpZ2h0P3RoaXMuY3VycmVuY3kuc3ltYm9sX3BhZGRpbmcrdGhpcy5jdXJyZW5jeS5zeW1ib2xfcmlnaHQ6IiI7cmV0dXJuIG1vbmV5PW5lZ2F0aXZlK3RoaXMuaHRtbERlY29kZSh0KSttb25leSt0aGlzLmh0bWxEZWNvZGUoZSl9LHRoaXMubnVtYmVyRm9ybWF0PWZ1bmN0aW9uKGUsdCxyLGksbil7bj12b2lkIDA9PT1ufHxuLGU9KGUrIiIpLnJlcGxhY2UoIiwiLCIiKS5yZXBsYWNlKCIgIiwiIik7dmFyIGU9aXNGaW5pdGUoK2UpPytlOjAsbz1pc0Zpbml0ZSgrdCk/TWF0aC5hYnModCk6MCxpPXZvaWQgMD09PWk/IiwiOmkscj12b2lkIDA9PT1yPyIuIjpyLGE9IiI7cmV0dXJuIDM8KGE9KCIwIj09dD8oZSs9MWUtMTAsIiIrTWF0aC5yb3VuZChlKSk6LTE9PXQ/IiIrZTpmdW5jdGlvbihlLHQpe3Q9TWF0aC5wb3coMTAsdCk7cmV0dXJuIiIrTWF0aC5yb3VuZChlKnQpL3R9KGUrPTFlLTEwLG8pKS5zcGxpdCgiLiIpKVswXS5sZW5ndGgmJihhWzBdPWFbMF0ucmVwbGFjZSgvXEIoPz0oPzpcZHszfSkrKD8hXGQpKS9nLGkpKSxuJiYoYVsxXXx8IiIpLmxlbmd0aDxvJiYoYVsxXT1hWzFdfHwiIixhWzFdKz1uZXcgQXJyYXkoby1hWzFdLmxlbmd0aCsxKS5qb2luKCIwIikpLGEuam9pbihyKX0sdGhpcy5pc051bWVyaWM9ZnVuY3Rpb24oZSl7cmV0dXJuIGdmb3JtSXNOdW1iZXIoZSl9LHRoaXMuaHRtbERlY29kZT1mdW5jdGlvbihlKXt2YXIgdCxyLGk9ZSxuPWkubWF0Y2goLyYjWzAtOV17MSw1fTsvZyk7aWYobnVsbCE9bilmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylpPS0zMjc2ODw9KHQ9KHI9bltvXSkuc3Vic3RyaW5nKDIsci5sZW5ndGgtMSkpJiZ0PD02NTUzNT9pLnJlcGxhY2UocixTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTppLnJlcGxhY2UociwiIik7cmV0dXJuIGl9LHRoaXMuZ2V0Q29kZT1mdW5jdGlvbigpe3JldHVybiJjb2RlImluIHRoaXMuY3VycmVuY3kmJiIiIT09dGhpcy5jdXJyZW5jeS5jb2RlJiZ0aGlzLmN1cnJlbmN5LmNvZGV9fWZ1bmN0aW9uIGdmb3JtQ2xlYW5OdW1iZXIoZSx0LHIsaSl7dmFyIG49IiIsbz0iIixhPSIiLGw9ITE7ZT0oZT0oZT0oZSs9IiAiKS5yZXBsYWNlKC8mLio/Oy9nLCIiKSkucmVwbGFjZSh0LCIiKSkucmVwbGFjZShyLCIiKTtmb3IodmFyIHM9MDtzPGUubGVuZ3RoO3MrKylhPWUuc3Vic3RyKHMsMSksMDw9cGFyc2VJbnQoYSwxMCkmJnBhcnNlSW50KGEsMTApPD05fHxhPT1pP24rPWE6Ii0iPT1hJiYobD0hMCk7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrKykiMCI8PShhPW4uc3Vic3RyKHMsMSkpJiZhPD0iOSI/bys9YTphPT1pJiYobys9Ii4iKTtyZXR1cm4hIWdmb3JtSXNOdW1iZXIobz1sPyItIitvOm8pJiZwYXJzZUZsb2F0KG8pfWZ1bmN0aW9uIGdmb3JtR2V0RGVjaW1hbFNlcGFyYXRvcihlKXtzd2l0Y2goZSl7Y2FzZSJjdXJyZW5jeSI6dmFyIHQ9bmV3IEN1cnJlbmN5KGdmX2dsb2JhbC5nZl9jdXJyZW5jeV9jb25maWcpLmN1cnJlbmN5LmRlY2ltYWxfc2VwYXJhdG9yO2JyZWFrO2Nhc2UiZGVjaW1hbF9jb21tYSI6dD0iLCI7YnJlYWs7ZGVmYXVsdDp0PSIuIn1yZXR1cm4gdH1mdW5jdGlvbiBnZm9ybUlzTnVtYmVyKGUpe3JldHVybiFpc05hTihwYXJzZUZsb2F0KGUpKSYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gZ2Zvcm1Jc051bWVyaWMoZSx0KXtzd2l0Y2godCl7Y2FzZSJkZWNpbWFsX2RvdCI6cmV0dXJuIG5ldyBSZWdFeHAoIl4oLT9bMC05XXsxLDN9KD86LD9bMC05XXszfSkqKD86LlswLTldKyk/KSQiKS50ZXN0KGUpO2Nhc2UiZGVjaW1hbF9jb21tYSI6cmV0dXJuIG5ldyBSZWdFeHAoIl4oLT9bMC05XXsxLDN9KD86Lj9bMC05XXszfSkqKD86LFswLTldKyk/KSQiKS50ZXN0KGUpfXJldHVybiExfWZ1bmN0aW9uIGdmb3JtRGVsZXRlVXBsb2FkZWRGaWxlKGUsdCxyKXt2YXIgaSxuPWpRdWVyeSgiI2ZpZWxkXyIrZSsiXyIrdCkscj1qUXVlcnkocikucGFyZW50KCkuaW5kZXgoKSxvPShuLmZpbmQoIi5naW5wdXRfcHJldmlldyIpLmVxKHIpLnJlbW92ZSgpLG4uZmluZCgnaW5wdXRbdHlwZT0iZmlsZSJdLC52YWxpZGF0aW9uX21lc3NhZ2UsI2V4dGVuc2lvbnNfbWVzc2FnZV8nK2UrIl8iK3QpLnJlbW92ZUNsYXNzKCJnZm9ybV9oaWRkZW4iKSxuLmZpbmQoIi5naW5wdXRfcG9zdF9pbWFnZV9maWxlIikuc2hvdygpLG4uZmluZCgnaW5wdXRbdHlwZT0idGV4dCJdJykudmFsKCIiKSxqUXVlcnkoIiNnZm9ybV91cGxvYWRlZF9maWxlc18iK2UpLnZhbCgpKTtvJiYobz1qUXVlcnkuc2VjdXJlRXZhbEpTT04obykpJiYoaT0iaW5wdXRfIit0LDA8KG49bi5maW5kKCIjZ2Zvcm1fbXVsdGlmaWxlX3VwbG9hZF8iK2UrIl8iK3QpKS5sZW5ndGg/KG9baV0uc3BsaWNlKHIsMSkscj0odD1uLmRhdGEoInNldHRpbmdzIikpLmdmX3ZhcnMubWF4X2ZpbGVzLGpRdWVyeSgiIyIrdC5nZl92YXJzLm1lc3NhZ2VfaWQpLmh0bWwoIiIpLG9baV0ubGVuZ3RoPHImJmdmTXVsdGlGaWxlVXBsb2FkZXIudG9nZ2xlRGlzYWJsZWQodCwhMSkpOm9baV09bnVsbCxqUXVlcnkoIiNnZm9ybV91cGxvYWRlZF9maWxlc18iK2UpLnZhbChqUXVlcnkudG9KU09OKG8pKSl9dm9pZCAwPT09alF1ZXJ5LmZuLnByb3AmJihqUXVlcnkuZm4ucHJvcD1qUXVlcnkuZm4uYXR0ciksalF1ZXJ5KGRvY3VtZW50KS5vbigiZ2Zvcm1fcG9zdF9yZW5kZXIiLGFubm91bmNlQUpBWFZhbGlkYXRpb25FcnJvcnMpLGpRdWVyeShkb2N1bWVudCkuYmluZCgiZ2Zvcm1fcG9zdF9yZW5kZXIiLGdmb3JtQmluZEZvcm1hdFByaWNpbmdGaWVsZHMpLGdmb3JtLmluc3RhbmNlcz17fSxnZm9ybS5jb25zb2xlPXtlcnJvcjpmdW5jdGlvbihlKXt3aW5kb3cuY29uc29sZSYmY29uc29sZS5lcnJvcihlKX0saW5mbzpmdW5jdGlvbihlKXt3aW5kb3cuY29uc29sZSYmY29uc29sZS5pbmZvKGUpfSxsb2c6ZnVuY3Rpb24oZSl7d2luZG93LmNvbnNvbGUmJmNvbnNvbGUubG9nKGUpfX0sZ2Zvcm0uYWRtaW5VdGlscz17aGFuZGxlVW5zYXZlZENoYW5nZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbDtqUXVlcnkoZSkuZmluZCgiaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEiKS5vbigiY2hhbmdlIGtleXVwIixmdW5jdGlvbigpe3ZvaWQgMD09PWpRdWVyeSh0aGlzKS5hdHRyKCJvbkNoYW5nZSIpJiZ2b2lkIDA9PT1qUXVlcnkodGhpcykuYXR0cigib25DbGljayIpJiYodD0hMCksImVuYWJsZS1hcGkiPT09KGpRdWVyeSh0aGlzKS5uZXh0KCkuZGF0YSgianNCdXR0b24iKXx8alF1ZXJ5KHRoaXMpLmRhdGEoImpzQnV0dG9uIikpJiYodD1udWxsKX0pLCJncmF2aXR5Zm9ybXN3ZWJhcGkiPT09dGhpcy5nZXRVcmxQYXJhbWV0ZXIoInN1YnZpZXciKSYmZ2Zfd2ViYXBpX3ZhcnMuYXBpX2VuYWJsZWQhPT1nZl93ZWJhcGlfdmFycy5lbmFibGVfYXBpX2NoZWNrYm94X2NoZWNrZWQmJih0PSEwKSxqUXVlcnkoZSkub24oInN1Ym1pdCIsZnVuY3Rpb24oKXt0PW51bGx9KSx3aW5kb3cub25iZWZvcmV1bmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdH19LGdldFVybFBhcmFtZXRlcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQoIiYiKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl0uc3BsaXQoIj0iKTtpZihpWzBdPT1lKXJldHVybiBpWzFdfX0saGFuZGxlSUVEaXNwbGF5OmZ1bmN0aW9uKCl7dmFyIGU9IWdmb3JtLnRvb2xzLmlzSUUoKSx0PWdmb3JtLnRvb2xzLmdldE5vZGVzKCJzaG93LWlmLWllIiwhMCkscj1nZm9ybS50b29scy5nZXROb2RlcygiaGlkZS1pZi1pZSIsITApLGk9Z2Zvcm0udG9vbHMuZ2V0Tm9kZXMoInNob3ctaWYtbm90LWllIiwhMCksbj1nZm9ybS50b29scy5nZXROb2RlcygiaGlkZS1pZi1ub3QtaWUiLCEwKTtlPyh0LmZvckVhY2goZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX0pLHIuZm9yRWFjaChmdW5jdGlvbihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfSkpOihpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX0pLG4uZm9yRWFjaChmdW5jdGlvbihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfSkpfX0sd2luZG93LkhhbmRsZVVuc2F2ZWRDaGFuZ2VzPWdmb3JtLmFkbWluVXRpbHMuaGFuZGxlVW5zYXZlZENoYW5nZXMsZ2Zvcm0udG9vbHM9e2RlYm91bmNlOmZ1bmN0aW9uKGksbixvKXt2YXIgYSxsLHM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cyxyPW8mJiFhO3Q9PT1sJiYiIitzPT0iIitpJiZjbGVhclRpbWVvdXQoYSk7YT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YT1udWxsLG98fGkuYXBwbHkoZSx0KX0sbikscz1pLGw9dCxyJiZpLmFwcGx5KGUsdCl9fSxkZWZhdWx0Rm9yOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMCE9PWU/ZTp0fSxnZXRGb2N1c2FibGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhpcy5kZWZhdWx0Rm9yKGUsZG9jdW1lbnQpLHRoaXMuY29udmVydEVsZW1lbnRzKGUucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pJykpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy52aXNpYmxlKGUpfS5iaW5kKHRoaXMpKX0saHRtbFRvRWxlbWVudDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBlPWUudHJpbSgpLHQuaW5uZXJIVE1MPWUsdC5jb250ZW50LmZpcnN0Q2hpbGR9LGVsZW1lbnRUb0hUTUw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUub3V0ZXJIVE1MfSxjb252ZXJ0RWxlbWVudHM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9ZS5sZW5ndGg7ci0tO3QudW5zaGlmdChlW3JdKSk7cmV0dXJuIHR9LGRlbGVnYXRlOmZ1bmN0aW9uKGUscixpLG4pe2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKTtbXS5mb3JFYWNoLmNhbGwoZSxmdW5jdGlvbihlLHQpe2UuYWRkRXZlbnRMaXN0ZW5lcihyLGZ1bmN0aW9uKGUpe3ZhciB0OygodD1lLnRhcmdldCkubWF0Y2hlc3x8dC5tc01hdGNoZXNTZWxlY3RvcikuY2FsbCh0LGkpJiZuKGUpfSl9KX0sZ2V0Q2xvc2VzdDpmdW5jdGlvbihlLHQpe3ZhciByLGk7Zm9yKFsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRvY3VtZW50LmJvZHlbZV0mJihyPWUsITApfSk7ZTspe2lmKChpPWUucGFyZW50RWxlbWVudCkmJmlbcl0odCkpcmV0dXJuIGk7ZT1pfXJldHVybiBudWxsfSxnZXROb2RlczpmdW5jdGlvbihlLHQscixpKXtyZXR1cm4gZT8ocj0ocj10aGlzLmRlZmF1bHRGb3Iocixkb2N1bWVudCkpLnF1ZXJ5U2VsZWN0b3JBbGwoaT9lOidbZGF0YS1qcz0iJytlKyciXScpLHQ/dGhpcy5jb252ZXJ0RWxlbWVudHMocik6cik6KGdmb3JtLmNvbnNvbGUuZXJyb3IoIlBsZWFzZSBwYXNzIGEgc2VsZWN0b3IgdG8gZ2Zvcm0udG9vbHMuZ2V0Tm9kZXMiKSxbXSl9LG1lcmdlT2JqZWN0czpmdW5jdGlvbigpe2Zvcih2YXIgZT17fSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrPTEpZm9yKHZhciByPWFyZ3VtZW50c1t0XSxpPU9iamVjdC5rZXlzKHIpLG49MDtuPGkubGVuZ3RoO24rPTEpZVtpW25dXT1yW2lbbl1dO3JldHVybiBlfSxzZXRBdHRyOmZ1bmN0aW9uKGUsdCxyLGksbil7aWYoIWV8fCF0fHwhcilyZXR1cm4gZ2Zvcm0uY29uc29sZS5lcnJvcigiUGxlYXNlIHBhc3MgYSBzZWxlY3RvciwgYXR0cmlidXRlIGFuZCB2YWx1ZSB0byBnZm9ybS50b29scy5zZXRBdHRyIiksW107aT10aGlzLmRlZmF1bHRGb3IoaSxkb2N1bWVudCksbj10aGlzLmRlZmF1bHRGb3IobiwwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Z2Zvcm0udG9vbHMuZ2V0Tm9kZXMoZSwhMCxpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uuc2V0QXR0cmlidXRlKHQscil9KX0sbil9LGlzUnRsOmZ1bmN0aW9uKCl7aWYoInJ0bCI9PT1qUXVlcnkoImh0bWwiKS5hdHRyKCJkaXIiKSlyZXR1cm4hMH0saXNJRTpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRNb2RlfSx0cmlnZ2VyOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBuO2lmKHQ9dGhpcy5kZWZhdWx0Rm9yKHQsIiIpLGU9dGhpcy5kZWZhdWx0Rm9yKGUsZG9jdW1lbnQpLHI9dGhpcy5kZWZhdWx0Rm9yKHIsITEpLGk9dGhpcy5kZWZhdWx0Rm9yKGkse30pLHIpKG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKSkuaW5pdEV2ZW50KHQsITAsITEpO2Vsc2UgdHJ5e249bmV3IEN1c3RvbUV2ZW50KHQse2RldGFpbDppfSl9Y2F0Y2goZSl7KG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IikpLmluaXRDdXN0b21FdmVudCh0LCEwLCEwLGkpfWUuZGlzcGF0Y2hFdmVudChuKX0sdW5pcXVlSWQ6ZnVuY3Rpb24oZSl7cmV0dXJuKGU9dGhpcy5kZWZhdWx0Rm9yKGUsImlkIikpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX0sdmlzaWJsZTpmdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LHN0cmlwU2xhc2hlczpmdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSgvXFwoLj8pL2csZnVuY3Rpb24oZSx0KXtzd2l0Y2godCl7Y2FzZSJcXCI6cmV0dXJuIlxcIjtjYXNlIjAiOnJldHVybiJcMCI7Y2FzZSIiOnJldHVybiIiO2RlZmF1bHQ6cmV0dXJuIHR9fSl9LGdldENvb2tpZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iikscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdLnNwbGl0KCI9Iik7aWYoZT09aVswXS50cmltKCkpcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChpWzFdKX1yZXR1cm4gbnVsbH0sc2V0Q29va2llOmZ1bmN0aW9uKGUsdCxyLGkpe3ZhciBuLG89IiIsYT10O3ImJigobj1uZXcgRGF0ZSkuc2V0VGltZShuLmdldFRpbWUoKSsyNCpyKjYwKjYwKjFlMyksbz0iIGV4cGlyZXM9IituLnRvVVRDU3RyaW5nKCkpLGkmJihhPSIiIT09KHI9Z2Zvcm0udG9vbHMuZ2V0Q29va2llKGUpKSYmbnVsbCE9PXI/cisiLCIrdDp0KSxkb2N1bWVudC5jb29raWU9ZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYSkrIjsiK299LHJlbW92ZUNvb2tpZTpmdW5jdGlvbihlKXtnZm9ybS50b29scy5zZXRDb29raWUoZSwiIiwtMSl9fSxnZm9ybS5hMTF5PXt9LGdmb3JtLm9wdGlvbnM9e2pxRWRpdG9yQWNjb3JkaW9uczp7aGVhZGVyOiJidXR0b24ucGFuZWwtYmxvY2stdGFic19fdG9nZ2xlIixoZWlnaHRTdHlsZToiY29udGVudCIsY29sbGFwc2libGU6ITAsYW5pbWF0ZTohMSxjcmVhdGU6ZnVuY3Rpb24oZSl7Z2Zvcm0udG9vbHMuc2V0QXR0cigiLnVpLWFjY29yZGlvbi1oZWFkZXIiLCJ0YWJpbmRleCIsIjAiLGUudGFyZ2V0LDEwMCl9LGFjdGl2YXRlOmZ1bmN0aW9uKGUpe2dmb3JtLnRvb2xzLnNldEF0dHIoIi51aS1hY2NvcmRpb24taGVhZGVyIiwidGFiaW5kZXgiLCIwIixlLnRhcmdldCwxMDApfSxiZWZvcmVBY3RpdmF0ZTpmdW5jdGlvbihlKXsiYWR2YW5jZWRfdGFiX3RvZ2dsZSI9PT1lLmN1cnJlbnRUYXJnZXQuaWQmJndpbmRvdy5maWVsZCYmd2luZG93LmZpZWxkLnR5cGUmJiJhZGRyZXNzIj09PXdpbmRvdy5maWVsZC50eXBlJiZDcmVhdGVBdXRvY29tcGxldGVVSSh3aW5kb3cuZmllbGQpfX0sanFBZGRGaWVsZEFjY29yZGlvbnM6e2hlaWdodFN0eWxlOiJjb250ZW50Iixjb2xsYXBzaWJsZTohMCxhbmltYXRlOiExLGNyZWF0ZTpmdW5jdGlvbihlKXtnZm9ybS50b29scy5zZXRBdHRyKCIudWktYWNjb3JkaW9uLWhlYWRlciIsInRhYmluZGV4IiwiMCIsZS50YXJnZXQsMTAwKX0sYWN0aXZhdGU6ZnVuY3Rpb24oZSl7Z2Zvcm0udG9vbHMuc2V0QXR0cigiLnVpLWFjY29yZGlvbi1oZWFkZXIiLCJ0YWJpbmRleCIsIjAiLGUudGFyZ2V0LDEwMCl9fX07dmFyIF9nZm9ybVByaWNlRmllbGRzPW5ldyBBcnJheSxfYW55UHJvZHVjdFNlbGVjdGVkO2Z1bmN0aW9uIGdmb3JtSXNIaWRkZW4oZSl7cmV0dXJuIm5vbmUiPT1lLnBhcmVudHMoIi5nZmllbGQiKS5ub3QoIi5nZmllbGRfaGlkZGVuX3Byb2R1Y3QiKS5jc3MoImRpc3BsYXkiKX12YXIgZ2Zvcm1DYWxjdWxhdGVUb3RhbFByaWNlPWdmb3JtLnRvb2xzLmRlYm91bmNlKGZ1bmN0aW9uKGUpe2lmKF9nZm9ybVByaWNlRmllbGRzW2VdKXt2YXIgdD0wO19hbnlQcm9kdWN0U2VsZWN0ZWQ9ITE7Zm9yKHZhciByPTA7cjxfZ2Zvcm1QcmljZUZpZWxkc1tlXS5sZW5ndGg7cisrKXQrPWdmb3JtQ2FsY3VsYXRlUHJvZHVjdFByaWNlKGUsX2dmb3JtUHJpY2VGaWVsZHNbZV1bcl0pO19hbnlQcm9kdWN0U2VsZWN0ZWQmJih0Kz1nZm9ybUdldFNoaXBwaW5nUHJpY2UoZSkpLHdpbmRvdy5nZm9ybV9wcm9kdWN0X3RvdGFsJiYodD13aW5kb3cuZ2Zvcm1fcHJvZHVjdF90b3RhbChlLHQpKSxnZm9ybVVwZGF0ZVRvdGFsRmllbGRQcmljZShlLHQ9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9wcm9kdWN0X3RvdGFsIix0LGUpKX19LDUwLCExKTtmdW5jdGlvbiBnZm9ybVVwZGF0ZVRvdGFsRmllbGRQcmljZShlLHQpe3ZhciByLGksbj1qUXVlcnkoIi5naW5wdXRfdG90YWxfIitlKTswPCFuLmxlbmd0aHx8KHI9KGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2dmb3JtX3dyYXBwZXJfIitlKyIuZ2Zvcm1fbGVnYWN5X21hcmt1cF93cmFwcGVyIikpP24ubmV4dCgpOm4sdD17Y3VycmVudDpTdHJpbmcoci52YWwoKSksbmV3OlN0cmluZyh0KSxuZXdGb3JtYXR0ZWQ6Z2Zvcm1Gb3JtYXRNb25leShTdHJpbmcodCksITApfSxpPXQsKGU/aS5jdXJyZW50IT09aS5uZXc6aS5jdXJyZW50IT09aS5uZXdGb3JtYXR0ZWQpJiYoZT8oci52YWwodC5uZXcpLnRyaWdnZXIoImNoYW5nZSIpLG4uaHRtbCh0Lm5ld0Zvcm1hdHRlZCkpOihyLnZhbCh0Lm5ldykudHJpZ2dlcigiY2hhbmdlIiksci52YWwodC5uZXdGb3JtYXR0ZWQpKSkpfWZ1bmN0aW9uIGdmb3JtR2V0U2hpcHBpbmdQcmljZShlKXt2YXIgZT1qUXVlcnkoIi5nZmllbGRfc2hpcHBpbmdfIitlKyIgaW5wdXRbcmVhZG9ubHldLCAuZ2ZpZWxkX3NoaXBwaW5nXyIrZSsiIHNlbGVjdCwgLmdmaWVsZF9zaGlwcGluZ18iK2UrIiBpbnB1dDpjaGVja2VkIiksdD0wO3JldHVybiBnZm9ybVRvTnVtYmVyKHQ9MSE9ZS5sZW5ndGh8fGdmb3JtSXNIaWRkZW4oZSk/dDplLmF0dHIoInJlYWRvbmx5Iik/ZS52YWwoKTpnZm9ybUdldFByaWNlKGUudmFsKCkpKX1mdW5jdGlvbiBnZm9ybUdldEZpZWxkSWQoZSl7ZT1qUXVlcnkoZSkuYXR0cigiaWQiKS5zcGxpdCgiXyIpO3JldHVybiBlLmxlbmd0aDw9MD8wOmVbZS5sZW5ndGgtMV19ZnVuY3Rpb24gZ2Zvcm1DYWxjdWxhdGVQcm9kdWN0UHJpY2UobixlKXt2YXIgdD0iXyIrbisiXyIrZSxyPShqUXVlcnkoIi5nZmllbGRfb3B0aW9uIit0KyIsIC5nZmllbGRfc2hpcHBpbmdfIituKS5maW5kKCJzZWxlY3QiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9alF1ZXJ5KHRoaXMpLHI9Z2Zvcm1HZXRQcmljZShlLnZhbCgpKSxpPWUuYXR0cigiaWQiKS5zcGxpdCgiXyIpWzJdO2UuY2hpbGRyZW4oIm9wdGlvbiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1qUXVlcnkodGhpcyksdD1nZm9ybUdldE9wdGlvbkxhYmVsKGUsZS52YWwoKSxyLG4saSk7ZS5odG1sKHQpfSl9KSxqUXVlcnkoIi5nZmllbGRfb3B0aW9uIit0KS5maW5kKCIuZ2ZpZWxkX2NoZWNrYm94IikuZmluZCgiaW5wdXQ6Y2hlY2tib3giKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9alF1ZXJ5KHRoaXMpLHQ9ZS5hdHRyKCJpZCIpLHI9dC5zcGxpdCgiXyIpWzJdLHQ9dC5yZXBsYWNlKCJjaG9pY2VfIiwiI2xhYmVsXyIpLHQ9alF1ZXJ5KHQpLGU9Z2Zvcm1HZXRPcHRpb25MYWJlbCh0LGUudmFsKCksMCxuLHIpO3QuaHRtbChlKX0pLGpRdWVyeSgiLmdmaWVsZF9vcHRpb24iK3QrIiwgLmdmaWVsZF9zaGlwcGluZ18iK24pLmZpbmQoIi5nZmllbGRfcmFkaW8iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHI9MCxlPWpRdWVyeSh0aGlzKSxpPWUuYXR0cigiaWQiKS5zcGxpdCgiXyIpWzJdLHQ9ZS5maW5kKCJpbnB1dDpyYWRpbzpjaGVja2VkIikudmFsKCk7dCYmKHI9Z2Zvcm1HZXRQcmljZSh0KSksZS5maW5kKCJpbnB1dDpyYWRpbyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1qUXVlcnkodGhpcyksdD1lLmF0dHIoImlkIikucmVwbGFjZSgiY2hvaWNlXyIsIiNsYWJlbF8iKSx0PWpRdWVyeSh0KTt0JiYoZT1nZm9ybUdldE9wdGlvbkxhYmVsKHQsZS52YWwoKSxyLG4saSksdC5odG1sKGUpKX0pfSksZ2Zvcm1HZXRCYXNlUHJpY2UobixlKSksZT1nZm9ybUdldFByb2R1Y3RRdWFudGl0eShuLGUpO3JldHVybiAwPGUmJihqUXVlcnkoIi5nZmllbGRfb3B0aW9uIit0KS5maW5kKCJpbnB1dDpjaGVja2VkLCBzZWxlY3QiKS5lYWNoKGZ1bmN0aW9uKCl7Z2Zvcm1Jc0hpZGRlbihqUXVlcnkodGhpcykpfHwocis9Z2Zvcm1HZXRQcmljZShqUXVlcnkodGhpcykudmFsKCkpKX0pLF9hbnlQcm9kdWN0U2VsZWN0ZWQ9ITApLHI9Z2Zvcm1Sb3VuZFByaWNlKHIqPWUpfWZ1bmN0aW9uIGdmb3JtR2V0UHJvZHVjdFF1YW50aXR5KGUsdCl7dmFyIHIsaSxuO3JldHVybiBnZm9ybUlzUHJvZHVjdFNlbGVjdGVkKGUsdCkmJiFnZm9ybUlzSGlkZGVuKG49KG49alF1ZXJ5KCIjZ2lucHV0X3F1YW50aXR5XyIrZSsiXyIrdCkpLmxlbmd0aD9uOmpRdWVyeSgiI2lucHV0XyIrZSsiXyIrdCsiXzEiKSkmJigwPG4ubGVuZ3RoP3I9bi52YWwoKToocj0xLDA8KG49alF1ZXJ5KCIuZ2ZpZWxkX3F1YW50aXR5XyIrZSsiXyIrdCsiIDppbnB1dCIpKS5sZW5ndGgmJihyPW4udmFsKCksaT1nZl9nZXRfZmllbGRfbnVtYmVyX2Zvcm1hdChnZl9nZXRfaW5wdXRfaWRfYnlfaHRtbF9pZChuLmF0dHIoImlkIikpLGUsInZhbHVlIikpKSxnZm9ybUNsZWFuTnVtYmVyKHIsIiIsIiIsZ2Zvcm1HZXREZWNpbWFsU2VwYXJhdG9yKGk9aXx8ImN1cnJlbmN5IikpKXx8MH1mdW5jdGlvbiBnZm9ybUlzUHJvZHVjdFNlbGVjdGVkKGUsdCl7ZT0iXyIrZSsiXyIrdCx0PWpRdWVyeSgiI2dpbnB1dF9iYXNlX3ByaWNlIitlKyIsIC5nZmllbGRfZG9uYXRpb24iK2UrJyBpbnB1dFt0eXBlPSJ0ZXh0Il0sIC5nZmllbGRfcHJvZHVjdCcrZSsiIC5naW5wdXRfYW1vdW50Iik7cmV0dXJuISghdC52YWwoKXx8Z2Zvcm1Jc0hpZGRlbih0KSl8fCEoISh0PWpRdWVyeSgiLmdmaWVsZF9wcm9kdWN0IitlKyIgc2VsZWN0LCAuZ2ZpZWxkX3Byb2R1Y3QiK2UrIiBpbnB1dDpjaGVja2VkLCAuZ2ZpZWxkX2RvbmF0aW9uIitlKyIgc2VsZWN0LCAuZ2ZpZWxkX2RvbmF0aW9uIitlKyIgaW5wdXQ6Y2hlY2tlZCIpKS52YWwoKXx8Z2Zvcm1Jc0hpZGRlbih0KSl9ZnVuY3Rpb24gZ2Zvcm1HZXRCYXNlUHJpY2UoZSx0KXt2YXIgZT0iXyIrZSsiXyIrdCx0PTAscj1qUXVlcnkoIiNnaW5wdXRfYmFzZV9wcmljZSIrZSsiLCAuZ2ZpZWxkX2RvbmF0aW9uIitlKycgaW5wdXRbdHlwZT0idGV4dCJdLCAuZ2ZpZWxkX3Byb2R1Y3QnK2UrIiAuZ2lucHV0X2Ftb3VudCIpO3JldHVybiAwPHIubGVuZ3RoP3Q9ci52YWwoKTooZT0ocj1qUXVlcnkoIi5nZmllbGRfcHJvZHVjdCIrZSsiIHNlbGVjdCwgLmdmaWVsZF9wcm9kdWN0IitlKyIgaW5wdXQ6Y2hlY2tlZCwgLmdmaWVsZF9kb25hdGlvbiIrZSsiIHNlbGVjdCwgLmdmaWVsZF9kb25hdGlvbiIrZSsiIGlucHV0OmNoZWNrZWQiKSkudmFsKCkpJiYodD0xPChlPWUuc3BsaXQoInwiKSkubGVuZ3RoP2VbMV06MCksZ2Zvcm1Jc0hpZGRlbihyKSYmKHQ9MCksITE9PT0odD1uZXcgQ3VycmVuY3koZ2ZfZ2xvYmFsLmdmX2N1cnJlbmN5X2NvbmZpZykudG9OdW1iZXIodCkpPzA6dH1mdW5jdGlvbiBnZm9ybUZvcm1hdE1vbmV5KGUsdCl7cmV0dXJuIGdmX2dsb2JhbC5nZl9jdXJyZW5jeV9jb25maWc/bmV3IEN1cnJlbmN5KGdmX2dsb2JhbC5nZl9jdXJyZW5jeV9jb25maWcpLnRvTW9uZXkoZSx0KTplfWZ1bmN0aW9uIGdmb3JtRm9ybWF0UHJpY2luZ0ZpZWxkKGUpe3ZhciB0O2dmX2dsb2JhbC5nZl9jdXJyZW5jeV9jb25maWcmJih0PW5ldyBDdXJyZW5jeShnZl9nbG9iYWwuZ2ZfY3VycmVuY3lfY29uZmlnKS50b01vbmV5KGpRdWVyeShlKS52YWwoKSksalF1ZXJ5KGUpLnZhbCh0KSl9ZnVuY3Rpb24gZ2Zvcm1Ub051bWJlcihlKXtyZXR1cm4gbmV3IEN1cnJlbmN5KGdmX2dsb2JhbC5nZl9jdXJyZW5jeV9jb25maWcpLnRvTnVtYmVyKGUpfWZ1bmN0aW9uIGdmb3JtR2V0UHJpY2VEaWZmZXJlbmNlKGUsdCl7dD1wYXJzZUZsb2F0KHQpLXBhcnNlRmxvYXQoZSk7cmV0dXJuIHByaWNlPWdmb3JtRm9ybWF0TW9uZXkodCwhMCkscHJpY2U9MDx0PyIrIitwcmljZTpwcmljZX1mdW5jdGlvbiBnZm9ybUdldE9wdGlvbkxhYmVsKGUsdCxyLGksbil7ZT1qUXVlcnkoZSk7dmFyIHQ9Z2Zvcm1HZXRQcmljZSh0KSxvPWUuYXR0cigicHJpY2UiKSxvPWUuaHRtbCgpLnJlcGxhY2UoLzxzcGFuKC4qKTxcL3NwYW4+L2ksIiIpLnJlcGxhY2UobywiIiksYT0wPT1nZm9ybVRvTnVtYmVyKGE9Z2Zvcm1HZXRQcmljZURpZmZlcmVuY2Uocix0KSk/IiI6IiAiK2EsZT0oZS5hdHRyKCJwcmljZSIsYSksIm9wdGlvbiI9PWVbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpP2E6IjxzcGFuIGNsYXNzPSdnaW5wdXRfcHJpY2UnPiIrYSsiPC9zcGFuPiIpLGE9bytlO3JldHVybiBhPXdpbmRvdy5nZm9ybV9mb3JtYXRfb3B0aW9uX2xhYmVsP2dmb3JtX2Zvcm1hdF9vcHRpb25fbGFiZWwoYSxvLGUscix0LGksbik6YX1mdW5jdGlvbiBnZm9ybUdldFByb2R1Y3RJZHMoZSx0KXtmb3IodmFyIHI9KGpRdWVyeSh0KS5oYXNDbGFzcyhlKT9qUXVlcnkodCk6alF1ZXJ5KHQpLnBhcmVudHMoIi4iK2UpKS5hdHRyKCJjbGFzcyIpLnNwbGl0KCIgIiksaT0wO2k8ci5sZW5ndGg7aSsrKWlmKHJbaV0uc3Vic3RyKDAsZS5sZW5ndGgpPT1lJiZyW2ldIT1lKXJldHVybntmb3JtSWQ6cltpXS5zcGxpdCgiXyIpWzJdLHByb2R1Y3RGaWVsZElkOnJbaV0uc3BsaXQoIl8iKVszXX07cmV0dXJue2Zvcm1JZDowLGZpZWxkSWQ6MH19ZnVuY3Rpb24gZ2Zvcm1HZXRQcmljZShlKXt2YXIgZT1lLnNwbGl0KCJ8IiksdD1uZXcgQ3VycmVuY3koZ2ZfZ2xvYmFsLmdmX2N1cnJlbmN5X2NvbmZpZyk7cmV0dXJuIDE8ZS5sZW5ndGgmJiExIT09dC50b051bWJlcihlWzFdKT90LnRvTnVtYmVyKGVbMV0pOjB9ZnVuY3Rpb24gZ2Zvcm1Sb3VuZFByaWNlKGUpe3ZhciB0PW5ldyBDdXJyZW5jeShnZl9nbG9iYWwuZ2ZfY3VycmVuY3lfY29uZmlnKSxlPXQubnVtYmVyRm9ybWF0KGUsdC5jdXJyZW5jeS5kZWNpbWFscywiLiIsIiIpO3JldHVybiBwYXJzZUZsb2F0KGUpfWZ1bmN0aW9uIGdmb3JtUmVnaXN0ZXJQcmljZUZpZWxkKGUpe19nZm9ybVByaWNlRmllbGRzW2UuZm9ybUlkXXx8KF9nZm9ybVByaWNlRmllbGRzW2UuZm9ybUlkXT1uZXcgQXJyYXkpO2Zvcih2YXIgdD0wO3Q8X2dmb3JtUHJpY2VGaWVsZHNbZS5mb3JtSWRdLmxlbmd0aDt0KyspaWYoX2dmb3JtUHJpY2VGaWVsZHNbZS5mb3JtSWRdW3RdPT1lLnByb2R1Y3RGaWVsZElkKXJldHVybjtfZ2Zvcm1QcmljZUZpZWxkc1tlLmZvcm1JZF0ucHVzaChlLnByb2R1Y3RGaWVsZElkKX1mdW5jdGlvbiBnZm9ybUluaXRQcmljZUZpZWxkcygpe2Zvcihmb3JtSWQgaW4galF1ZXJ5KCIuZ2ZpZWxkX3ByaWNlIikuZWFjaChmdW5jdGlvbigpe2dmb3JtUmVnaXN0ZXJQcmljZUZpZWxkKGdmb3JtR2V0UHJvZHVjdElkcygiZ2ZpZWxkX3ByaWNlIix0aGlzKSksalF1ZXJ5KHRoaXMpLm9uKCJpbnB1dCBjaGFuZ2UiLCdpbnB1dFt0eXBlPSJ0ZXh0Il0sIGlucHV0W3R5cGU9Im51bWJlciJdLCBzZWxlY3QnLGZ1bmN0aW9uKCl7dmFyIGU9Z2Zvcm1HZXRQcm9kdWN0SWRzKCJnZmllbGRfcHJpY2UiLHRoaXMpOzA9PWUuZm9ybUlkJiYoZT1nZm9ybUdldFByb2R1Y3RJZHMoImdmaWVsZF9zaGlwcGluZyIsdGhpcykpLGpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigiZ2Zvcm1fcHJpY2VfY2hhbmdlIixbZSx0aGlzXSksZ2Zvcm1DYWxjdWxhdGVUb3RhbFByaWNlKGUuZm9ybUlkKX0pLGpRdWVyeSh0aGlzKS5vbigiY2xpY2siLCdpbnB1dFt0eXBlPSJyYWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdJyxmdW5jdGlvbigpe3ZhciBlPWdmb3JtR2V0UHJvZHVjdElkcygiZ2ZpZWxkX3ByaWNlIix0aGlzKTswPT1lLmZvcm1JZCYmKGU9Z2Zvcm1HZXRQcm9kdWN0SWRzKCJnZmllbGRfc2hpcHBpbmciLHRoaXMpKSxqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoImdmb3JtX3ByaWNlX2NoYW5nZSIsW2UsdGhpc10pLGdmb3JtQ2FsY3VsYXRlVG90YWxQcmljZShlLmZvcm1JZCl9KX0pLF9nZm9ybVByaWNlRmllbGRzKV9nZm9ybVByaWNlRmllbGRzLmhhc093blByb3BlcnR5KGZvcm1JZCkmJmdmb3JtQ2FsY3VsYXRlVG90YWxQcmljZShmb3JtSWQpfWZ1bmN0aW9uIGdmb3JtU2hvd1Bhc3N3b3JkU3RyZW5ndGgoZSl7dmFyIHQ9Z2Zvcm1QYXNzd29yZFN0cmVuZ3RoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpLnZhbHVlLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUrIl8yIik/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSsiXzIiKS52YWx1ZToiIikscj13aW5kb3cuZ2ZfdGV4dFsicGFzc3dvcmRfIit0XSxpPSJ1bmtub3duIj09PXQ/ImJsYW5rIjp0O2pRdWVyeSgiIyIrZSsiX3N0cmVuZ3RoIikudmFsKHQpLGpRdWVyeSgiIyIrZSsiX3N0cmVuZ3RoX2luZGljYXRvciIpLnJlbW92ZUNsYXNzKCJibGFuayBtaXNtYXRjaCBzaG9ydCBnb29kIGJhZCBzdHJvbmciKS5hZGRDbGFzcyhpKS5odG1sKHIpfWZ1bmN0aW9uIGdmb3JtUGFzc3dvcmRTdHJlbmd0aChlLHQpe2lmKGUubGVuZ3RoPD0wKXJldHVybiJibGFuayI7dmFyIHI9d3AucGFzc3dvcmRTdHJlbmd0aC5oYXNPd25Qcm9wZXJ0eSgidXNlcklucHV0RGlzYWxsb3dlZExpc3QiKT93cC5wYXNzd29yZFN0cmVuZ3RoLnVzZXJJbnB1dERpc2FsbG93ZWRMaXN0KCk6d3AucGFzc3dvcmRTdHJlbmd0aC51c2VySW5wdXRCbGFja2xpc3QoKTtzd2l0Y2god3AucGFzc3dvcmRTdHJlbmd0aC5tZXRlcihlLHIsdCkpe2Nhc2UtMTpyZXR1cm4idW5rbm93biI7Y2FzZSAyOnJldHVybiJiYWQiO2Nhc2UgMzpyZXR1cm4iZ29vZCI7Y2FzZSA0OnJldHVybiJzdHJvbmciO2Nhc2UgNTpyZXR1cm4ibWlzbWF0Y2giO2RlZmF1bHQ6cmV0dXJuInNob3J0In19ZnVuY3Rpb24gZ2Zvcm1Ub2dnbGVTaG93UGFzc3dvcmQoZSl7dmFyIHQ9alF1ZXJ5KCIjIitlKSxyPXQucGFyZW50KCkuZmluZCgiYnV0dG9uIiksaT1yLmZpbmQoInNwYW4iKTtzd2l0Y2godC5hdHRyKCJ0eXBlIikpe2Nhc2UicGFzc3dvcmQiOnQuYXR0cigidHlwZSIsInRleHQiKSxyLmF0dHIoImFyaWEtbGFiZWwiLHIuYXR0cigiZGF0YS1sYWJlbC1oaWRlIikpLGkucmVtb3ZlQ2xhc3MoImRhc2hpY29ucy1oaWRkZW4iKS5hZGRDbGFzcygiZGFzaGljb25zLXZpc2liaWxpdHkiKTticmVhaztjYXNlInRleHQiOnQuYXR0cigidHlwZSIsInBhc3N3b3JkIiksci5hdHRyKCJhcmlhLWxhYmVsIixyLmF0dHIoImRhdGEtbGFiZWwtc2hvdyIpKSxpLnJlbW92ZUNsYXNzKCJkYXNoaWNvbnMtdmlzaWJpbGl0eSIpLmFkZENsYXNzKCJkYXNoaWNvbnMtaGlkZGVuIil9fWZ1bmN0aW9uIGdmb3JtVG9nZ2xlQ2hlY2tib3hlcyhlKXt2YXIgdCxyPWpRdWVyeShlKSxpPXIuaXMoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKSxuPWk/ci5wYXJlbnQoKTpyLnByZXYoKSxvPW4uZmluZCgibGFiZWwiKSxhPW4ucGFyZW50KCkuZmluZCgiLmdjaG9pY2U6bm90KCAuZ2Nob2ljZV9zZWxlY3RfYWxsICkiKSxuPWdmX2dldF9mb3JtX2lkX2J5X2h0bWxfaWQobi5wYXJlbnRzKCIuZ2ZpZWxkIikuYXR0cigiaWQiKSksbD1yZ2Fycyh3aW5kb3csImdmX2dsb2JhbC9nZmNhbGMvIituKTt0PWk/ZS5jaGVja2VkOiJib29sZWFuIj09dHlwZW9mKGU9ci5kYXRhKCJjaGVja2VkIikpPyFlOiEoMT09PXBhcnNlSW50KGUpKSxhLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nLHRoaXMpLnByb3AoImNoZWNrZWQiLHQpLnRyaWdnZXIoImNoYW5nZSIpLCJmdW5jdGlvbiI9PXR5cGVvZiBqUXVlcnkoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nLHRoaXMpWzBdLm9uY2xpY2smJmpRdWVyeSgnaW5wdXRbdHlwZT0iY2hlY2tib3giXScsdGhpcylbMF0ub25jbGljaygpfSksaT9vLmh0bWwodD9vLmRhdGEoImxhYmVsLWRlc2VsZWN0Iik6by5kYXRhKCJsYWJlbC1zZWxlY3QiKSk6KHIuaHRtbCh0P3IuZGF0YSgibGFiZWwtZGVzZWxlY3QiKTpyLmRhdGEoImxhYmVsLXNlbGVjdCIpKSxyLmRhdGEoImNoZWNrZWQiLHQpKSx3cC5hMTF5LnNwZWFrKHQ/Z2ZfZmllbGRfY2hlY2tib3guc3RyaW5ncy5zZWxlY3RlZDpnZl9maWVsZF9jaGVja2JveC5zdHJpbmdzLmRlc2VsZWN0ZWQpLGwmJmwucnVuQ2FsY3MobixsLmZvcm11bGFGaWVsZHMpfWZ1bmN0aW9uIGdmb3JtVG9nZ2xlUmFkaW9PdGhlcihlKXt2YXIgdD1lLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJ0ZXh0Il0nKTt0JiYodC5kaXNhYmxlZD0iZ2Zfb3RoZXJfY2hvaWNlIiE9PWUudmFsdWUpfWZ1bmN0aW9uIGdmb3JtQWRkTGlzdEl0ZW0oZSx0KXt2YXIgcixpLG4sZT1qUXVlcnkoZSk7ZS5oYXNDbGFzcygiZ2ZpZWxkX2ljb25fZGlzYWJsZWQiKXx8KHI9KGU9ZS5wYXJlbnRzKCIuZ2ZpZWxkX2xpc3RfZ3JvdXAiKSkuY2xvbmUoKSxpPWUucGFyZW50cygiLmdmaWVsZF9saXN0X2NvbnRhaW5lciIpLG49ci5maW5kKCI6aW5wdXQ6bGFzdCIpLmF0dHIoInRhYmluZGV4Iiksci5maW5kKCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSIpLmF0dHIoInRhYmluZGV4IixuKS5ub3QoIjpjaGVja2JveCwgOnJhZGlvIikudmFsKCIiKSxyLmZpbmQoIjpjaGVja2JveCwgOnJhZGlvIikucHJvcCgiY2hlY2tlZCIsITEpLHI9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9saXN0X2l0ZW1fcHJlX2FkZCIscixlKSxlLmFmdGVyKHIpLGdmb3JtVG9nZ2xlSWNvbnMoaSx0KSxnZm9ybUFkanVzdENsYXNzZXMoaSksZ2Zvcm1BZGp1c3RSb3dBdHRyaWJ1dGVzKGkpLGdmb3JtLmRvQWN0aW9uKCJnZm9ybV9saXN0X3Bvc3RfaXRlbV9hZGQiLHIsaSksd3AuYTExeS5zcGVhayh3aW5kb3cuZ2ZfZ2xvYmFsLnN0cmluZ3MubmV3Um93QWRkZWQpKX1mdW5jdGlvbiBnZm9ybURlbGV0ZUxpc3RJdGVtKGUsdCl7dmFyIGU9alF1ZXJ5KGUpLnBhcmVudHMoIi5nZmllbGRfbGlzdF9ncm91cCIpLHI9ZS5wYXJlbnRzKCIuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIik7ZS5yZW1vdmUoKSxnZm9ybVRvZ2dsZUljb25zKHIsdCksZ2Zvcm1BZGp1c3RDbGFzc2VzKHIpLGdmb3JtQWRqdXN0Um93QXR0cmlidXRlcyhyKSxnZm9ybS5kb0FjdGlvbigiZ2Zvcm1fbGlzdF9wb3N0X2l0ZW1fZGVsZXRlIixyKSx3cC5hMTF5LnNwZWFrKHdpbmRvdy5nZl9nbG9iYWwuc3RyaW5ncy5yb3dSZW1vdmVkKX1mdW5jdGlvbiBnZm9ybUFkanVzdENsYXNzZXMoZSl7ZS5maW5kKCIuZ2ZpZWxkX2xpc3RfZ3JvdXAiKS5lYWNoKGZ1bmN0aW9uKGUpe2U9KGUrMSklMj09MD8iZ2ZpZWxkX2xpc3Rfcm93X2V2ZW4iOiJnZmllbGRfbGlzdF9yb3dfb2RkIjtqUXVlcnkodGhpcykucmVtb3ZlQ2xhc3MoImdmaWVsZF9saXN0X3Jvd19vZGQgZ2ZpZWxkX2xpc3Rfcm93X2V2ZW4iKS5hZGRDbGFzcyhlKX0pfWZ1bmN0aW9uIGdmb3JtQWRqdXN0Um93QXR0cmlidXRlcyhlKXtlLnBhcmVudHMoIi5nZm9ybV93cmFwcGVyIikuaGFzQ2xhc3MoImdmb3JtX2xlZ2FjeV9tYXJrdXBfd3JhcHBlciIpfHxlLmZpbmQoIi5nZmllbGRfbGlzdF9ncm91cCIpLmVhY2goZnVuY3Rpb24ocil7alF1ZXJ5KHRoaXMpLmZpbmQoImlucHV0LCBzZWxlY3QsIHRleHRhcmVhIikuZWFjaChmdW5jdGlvbihlLHQpe3Q9alF1ZXJ5KHQpO3QuYXR0cigiYXJpYS1sYWJlbCIsdC5kYXRhKCJhcmlhLWxhYmVsLXRlbXBsYXRlIikuZ2Zvcm1Gb3JtYXQocisxKSl9KTt2YXIgZT1qUXVlcnkodGhpcykuZmluZCgiLmRlbGV0ZV9saXN0X2l0ZW0iKTtlLmF0dHIoImFyaWEtbGFiZWwiLGUuZGF0YSgiYXJpYS1sYWJlbC10ZW1wbGF0ZSIpLmdmb3JtRm9ybWF0KHIrMSkpfSl9ZnVuY3Rpb24gZ2Zvcm1Ub2dnbGVJY29ucyhlLHQpe3ZhciByPWUuZmluZCgiLmdmaWVsZF9saXN0X2dyb3VwIikubGVuZ3RoLGk9ZS5maW5kKCIuYWRkX2xpc3RfaXRlbSIpLG49InVuZGVmaW5lZCIhPXR5cGVvZiBnZl9sZWdhY3kmJmdmX2xlZ2FjeS5pc19sZWdhY3k7ZS5maW5kKCIuZGVsZXRlX2xpc3RfaXRlbSIpLmNzcygidmlzaWJpbGl0eSIsMT09cj8iaGlkZGVuIjoidmlzaWJsZSIpLDA8dCYmdDw9cj8oaS5kYXRhKCJ0aXRsZSIsZS5maW5kKCIuYWRkX2xpc3RfaXRlbSIpLmF0dHIoInRpdGxlIikpLGkuYWRkQ2xhc3MoImdmaWVsZF9pY29uX2Rpc2FibGVkIikuYXR0cigidGl0bGUiLCIiKSxufHxpLnByb3AoImRpc2FibGVkIiwhMCkpOjA8dCYmKGkucmVtb3ZlQ2xhc3MoImdmaWVsZF9pY29uX2Rpc2FibGVkIiksbnx8aS5wcm9wKCJkaXNhYmxlZCIsITEpLGkuZGF0YSgidGl0bGUiKSkmJmkuYXR0cigidGl0bGUiLGkuZGF0YSgidGl0bGUiKSl9ZnVuY3Rpb24gZ2Zvcm1BZGRSZXBlYXRlckl0ZW0oZSx0KXt2YXIgcixpLG4sZT1qUXVlcnkoZSk7ZS5oYXNDbGFzcygiZ2ZpZWxkX2ljb25fZGlzYWJsZWQiKXx8KHI9KGU9ZS5jbG9zZXN0KCIuZ2ZpZWxkX3JlcGVhdGVyX2l0ZW0iKSkuY2xvbmUoKSxpPWUuY2xvc2VzdCgiLmdmaWVsZF9yZXBlYXRlcl9jb250YWluZXIiKSxuPXIuZmluZCgiOmlucHV0Omxhc3QiKS5hdHRyKCJ0YWJpbmRleCIpLHIuZmluZCgnaW5wdXRbdHlwZSE9ImhpZGRlbiJdLCBzZWxlY3QsIHRleHRhcmVhJykuYXR0cigidGFiaW5kZXgiLG4pLm5vdCgiOmNoZWNrYm94LCA6cmFkaW8iKS52YWwoIiIpLHIuZmluZCgiOmNoZWNrYm94LCA6cmFkaW8iKS5wcm9wKCJjaGVja2VkIiwhMSksci5maW5kKCIudmFsaWRhdGlvbl9tZXNzYWdlIikucmVtb3ZlKCkscj1nZm9ybS5hcHBseUZpbHRlcnMoImdmb3JtX3JlcGVhdGVyX2l0ZW1fcHJlX2FkZCIscixlKSxlLmFmdGVyKHIpLHIuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfY2VsbCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1qUXVlcnkodGhpcykuZmluZCgiLmdmaWVsZF9yZXBlYXRlcl9jb250YWluZXIiKS5maXJzdCgpOzA8ZS5sZW5ndGgmJihyZXNldENvbnRhaW5lckl0ZW1zPWZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfaXRlbXMiKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtIikuZWFjaChmdW5jdGlvbihlKXtqUXVlcnkodGhpcykuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfY2VsbCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1qUXVlcnkodGhpcykuZmluZCgiLmdmaWVsZF9yZXBlYXRlcl9jb250YWluZXIiKS5maXJzdCgpOzA8ZS5sZW5ndGgmJnJlc2V0Q29udGFpbmVySXRlbXMoZSl9KX0pLGUuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfaXRlbXMiKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtIikubm90KCI6Zmlyc3QiKS5yZW1vdmUoKX0pKGUpfSksZ2Zvcm1SZXNldFJlcGVhdGVyQXR0cmlidXRlcyhpKSwiZnVuY3Rpb24iPT10eXBlb2YgZ2Zvcm1Jbml0RGF0ZXBpY2tlciYmKGkuZmluZCgiLnVpLWRhdGVwaWNrZXItdHJpZ2dlciIpLnJlbW92ZSgpLGkuZmluZCgiLmhhc0RhdGVwaWNrZXIiKS5yZW1vdmVDbGFzcygiaGFzRGF0ZXBpY2tlciIpLGdmb3JtSW5pdERhdGVwaWNrZXIoKSksZ2Zvcm1CaW5kRm9ybWF0UHJpY2luZ0ZpZWxkcygpLGdmb3JtVG9nZ2xlUmVwZWF0ZXJCdXR0b25zKGksdCksZ2Zvcm0uZG9BY3Rpb24oImdmb3JtX3JlcGVhdGVyX3Bvc3RfaXRlbV9hZGQiLHIsaSkpfWZ1bmN0aW9uIGdmb3JtRGVsZXRlUmVwZWF0ZXJJdGVtKGUsdCl7dmFyIGU9alF1ZXJ5KGUpLmNsb3Nlc3QoIi5nZmllbGRfcmVwZWF0ZXJfaXRlbSIpLHI9ZS5jbG9zZXN0KCIuZ2ZpZWxkX3JlcGVhdGVyX2NvbnRhaW5lciIpO2UucmVtb3ZlKCksZ2Zvcm1SZXNldFJlcGVhdGVyQXR0cmlidXRlcyhyKSxnZm9ybVRvZ2dsZVJlcGVhdGVyQnV0dG9ucyhyLHQpLGdmb3JtLmRvQWN0aW9uKCJnZm9ybV9yZXBlYXRlcl9wb3N0X2l0ZW1fZGVsZXRlIixyKX1mdW5jdGlvbiBnZm9ybVJlc2V0UmVwZWF0ZXJBdHRyaWJ1dGVzKGUsZyxtKXt2YXIgXz1udWxsO3ZvaWQgMD09PWcmJihnPTApLHZvaWQgMD09PW0mJihtPTApLGUuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfaXRlbXMiKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtIikuZWFjaChmdW5jdGlvbigpe2pRdWVyeSh0aGlzKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9jZWxsIikuZWFjaChmdW5jdGlvbigpe3ZhciB1PWpRdWVyeSh0aGlzKSxlPWpRdWVyeSh0aGlzKS5maW5kKCIuZ2ZpZWxkX3JlcGVhdGVyX2NvbnRhaW5lciIpLmZpcnN0KCk7MDxlLmxlbmd0aD9nZm9ybVJlc2V0UmVwZWF0ZXJBdHRyaWJ1dGVzKGUsZysxLG0pOmpRdWVyeSh0aGlzKS5maW5kKCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgOmNoZWNrYm94LCA6cmFkaW8iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9alF1ZXJ5KHRoaXMpLHQ9ZS5hdHRyKCJuYW1lIik7aWYodm9pZCAwIT09dCl7dmFyIHI9L14oaW5wdXRfW15cW10qKSgoXFtbMC05XStcXSkrKS8uZXhlYyh0KTtpZihyKXtyWzFdO2Zvcih2YXIgaT1yWzJdLG49L1xbKFswLTldKylcXS9nLG89W10sYT1uLmV4ZWMoaSk7bnVsbCE9YTspby5wdXNoKGFbMV0pLGE9bi5leGVjKGkpO2Zvcih2YXIgbD1yWzFdLHM9IiIsYz0obz1vLnJldmVyc2UoKSkubGVuZ3RoLTE7MDw9YztjLS0pYz09Zz8obCs9IlsiK20rIl0iLHMrPSItIittKToobCs9IlsiK29bY10rIl0iLHMrPSItIitvW2NdKTt2YXIgZj1lLmF0dHIoImlkIiksZD11LmZpbmQoImxhYmVsW2Zvcj0nIitmKyInXSIpLGY9KGYmJihmPWYubWF0Y2goLygoY2hvaWNlfGlucHV0KV9bMC05fF9dKiktLykpJiZmWzJdJiYocz1mWzFdK3MsZC5hdHRyKCJmb3IiLHMpLGUuYXR0cigiaWQiLHMpKSx0LnJlcGxhY2UoclswXSxsKSksZD1qUXVlcnkoJ2lucHV0W25hbWU9IicrZisnIl0nKS5pcygiOmNoZWNrZWQiKTtlLmlzKCI6cmFkaW8iKSYmZS5pcygiOmNoZWNrZWQiKSYmdCE9PWYmJmQmJihudWxsIT09XyYmXy5wcm9wKCJjaGVja2VkIiwhMCksZS5wcm9wKCJjaGVja2VkIiwhMSksXz1lKSxlLmF0dHIoIm5hbWUiLGYpfX19KX0pLDA9PT1nJiZtKyt9KSxudWxsIT09XyYmKF8ucHJvcCgiY2hlY2tlZCIsITApLF89bnVsbCl9ZnVuY3Rpb24gZ2Zvcm1Ub2dnbGVSZXBlYXRlckJ1dHRvbnMoZSl7dmFyIHQ9ZS5jbG9zZXN0KCIuZ2ZpZWxkX3JlcGVhdGVyX3dyYXBwZXIiKS5kYXRhKCJtYXhfaXRlbXMiKSxyPWUuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfaXRlbXMiKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtIikubGVuZ3RoLGk9ZS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtcyIpLmNoaWxkcmVuKCIuZ2ZpZWxkX3JlcGVhdGVyX2l0ZW0iKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zIiksbj1pLmNoaWxkcmVuKCIuYWRkX3JlcGVhdGVyX2l0ZW0iKTtpLmNoaWxkcmVuKCIucmVtb3ZlX3JlcGVhdGVyX2l0ZW0iKS5jc3MoInZpc2liaWxpdHkiLDE9PXI/ImhpZGRlbiI6InZpc2libGUiKSwwPHQmJnQ8PXI/KG4uZGF0YSgidGl0bGUiLGkuY2hpbGRyZW4oIi5hZGRfcmVwZWF0ZXJfaXRlbSIpLmF0dHIoInRpdGxlIikpLG4uYWRkQ2xhc3MoImdmaWVsZF9pY29uX2Rpc2FibGVkIikuYXR0cigidGl0bGUiLCIiKSk6MDx0JiYobi5yZW1vdmVDbGFzcygiZ2ZpZWxkX2ljb25fZGlzYWJsZWQiKSxuLmRhdGEoInRpdGxlIikpJiZuLmF0dHIoInRpdGxlIixuLmRhdGEoInRpdGxlIikpLGUuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfaXRlbXMiKS5jaGlsZHJlbigiLmdmaWVsZF9yZXBlYXRlcl9pdGVtIikuY2hpbGRyZW4oIi5nZmllbGRfcmVwZWF0ZXJfY2VsbCIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9alF1ZXJ5KHRoaXMpLmZpbmQoIi5nZmllbGRfcmVwZWF0ZXJfY29udGFpbmVyIikuZmlyc3QoKTswPHQubGVuZ3RoJiZnZm9ybVRvZ2dsZVJlcGVhdGVyQnV0dG9ucyh0KX0pfWZ1bmN0aW9uIGdmb3JtTWF0Y2hDYXJkKGUpe3ZhciB0PWdmb3JtRmluZENhcmRUeXBlKGpRdWVyeSgiIyIrZSkudmFsKCkpLGU9alF1ZXJ5KCIjIitlKS5wYXJlbnRzKCIuZ2ZpZWxkIikuZmluZCgiLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIiKTt0PyhqUXVlcnkoZSkuZmluZCgiLmdmb3JtX2NhcmRfaWNvbiIpLnJlbW92ZUNsYXNzKCJnZm9ybV9jYXJkX2ljb25fc2VsZWN0ZWQiKS5hZGRDbGFzcygiZ2Zvcm1fY2FyZF9pY29uX2luYWN0aXZlIiksalF1ZXJ5KGUpLmZpbmQoIi5nZm9ybV9jYXJkX2ljb25fIit0KS5yZW1vdmVDbGFzcygiZ2Zvcm1fY2FyZF9pY29uX2luYWN0aXZlIikuYWRkQ2xhc3MoImdmb3JtX2NhcmRfaWNvbl9zZWxlY3RlZCIpKTpqUXVlcnkoZSkuZmluZCgiLmdmb3JtX2NhcmRfaWNvbiIpLnJlbW92ZUNsYXNzKCJnZm9ybV9jYXJkX2ljb25fc2VsZWN0ZWQgZ2Zvcm1fY2FyZF9pY29uX2luYWN0aXZlIil9ZnVuY3Rpb24gZ2Zvcm1GaW5kQ2FyZFR5cGUoZSl7aWYoZS5sZW5ndGg8NClyZXR1cm4hMTt2YXIgdD13aW5kb3cuZ2ZfY2NfcnVsZXMscj1uZXcgQXJyYXk7Zm9yKHR5cGUgaW4gdClpZih0Lmhhc093blByb3BlcnR5KHR5cGUpKWZvcihpIGluIHRbdHlwZV0paWYodFt0eXBlXS5oYXNPd25Qcm9wZXJ0eShpKSYmMD09PXRbdHlwZV1baV0uaW5kZXhPZihlLnN1YnN0cmluZygwLHRbdHlwZV1baV0ubGVuZ3RoKSkpe3Jbci5sZW5ndGhdPXR5cGU7YnJlYWt9cmV0dXJuIDE9PXIubGVuZ3RoJiZyWzBdLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZ2Zvcm1Ub2dnbGVDcmVkaXRDYXJkKCl7alF1ZXJ5KCIjZ2Zvcm1fcGF5bWVudF9tZXRob2RfY3JlZGl0Y2FyZCIpLmlzKCI6Y2hlY2tlZCIpP2pRdWVyeSgiLmdmb3JtX2NhcmRfZmllbGRzX2NvbnRhaW5lciIpLnNsaWRlRG93bigpOmpRdWVyeSgiLmdmb3JtX2NhcmRfZmllbGRzX2NvbnRhaW5lciIpLnNsaWRlVXAoKX1mdW5jdGlvbiBnZm9ybUluaXRDaG9zZW5GaWVsZHMoZSxyKXtyZXR1cm4galF1ZXJ5KGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PWpRdWVyeSh0aGlzKTsicnRsIj09alF1ZXJ5KCJodG1sIikuYXR0cigiZGlyIikmJnQuYWRkQ2xhc3MoImNob3Nlbi1ydGwgY2h6bi1ydGwiKSx0LmlzKCI6dmlzaWJsZSIpJiYwPT10LnNpYmxpbmdzKCIuY2hvc2VuLWNvbnRhaW5lciIpLmxlbmd0aCYmKGU9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9jaG9zZW5fb3B0aW9ucyIse25vX3Jlc3VsdHNfdGV4dDpyfSx0KSx0LmNob3NlbihlKSl9KX1mdW5jdGlvbiBnZm9ybUluaXRDdXJyZW5jeUZvcm1hdEZpZWxkcyhlKXtqUXVlcnkoZSkuZWFjaChmdW5jdGlvbigpe2pRdWVyeSh0aGlzKS52YWwoZ2Zvcm1Gb3JtYXRNb25leShqUXVlcnkodGhpcykudmFsKCkpKX0pLmNoYW5nZShmdW5jdGlvbihlKXtqUXVlcnkodGhpcykudmFsKGdmb3JtRm9ybWF0TW9uZXkoalF1ZXJ5KHRoaXMpLnZhbCgpKSl9KX12YXIgR0ZNZXJnZVRhZz1mdW5jdGlvbigpe0dGTWVyZ2VUYWcuZ2V0TWVyZ2VUYWdWYWx1ZT1mdW5jdGlvbihlLHQscil7cj0ocj12b2lkIDA9PT1yPyIiOnIpLnJlcGxhY2UoIjoiLCIiKTt2YXIgaT1wYXJzZUludCh0LDEwKSxuPSgwPGpRdWVyeSgiI2lucHV0XyIrZSsiXyIraSsiX2NvcHlfdmFsdWVzX2FjdGl2YXRlZDpjaGVja2VkIikubGVuZ3RoJiYoYT1qUXVlcnkoIiNpbnB1dF8iK2UrIl8iK2krIl9jb3B5X3ZhbHVlc19hY3RpdmF0ZWQiKS5kYXRhKCJzb3VyY2VfZmllbGRfaWQiKSx0PXQ9PWk/YTp0LnRvU3RyaW5nKCkucmVwbGFjZShpKyIuIixhKyIuIiksaT1hKSxqUXVlcnkoIiNmaWVsZF8iK2UrIl8iK2kpKSxvPW4uZmluZCgoaT09dD8naW5wdXRbbmFtZV49ImlucHV0XycraSsnIl0nOidpbnB1dFtuYW1lPSJpbnB1dF8nK3QrJyJdJykrJywgc2VsZWN0W25hbWVePSJpbnB1dF8nK3QrJyJdLCB0ZXh0YXJlYVtuYW1lPSJpbnB1dF8nK3QrJyJdJyk7aWYoISghd2luZG93LmdmX2NoZWNrX2ZpZWxkX3J1bGV8fCJzaG93Ij09Z2ZfY2hlY2tfZmllbGRfcnVsZShlLGksITAsIiIpKSlyZXR1cm4iIjtuLmZpbmQoIi5naW5wdXRfY29udGFpbmVyX2VtYWlsIikuaGFzQ2xhc3MoImdpbnB1dF9jb21wbGV4IikmJihvPW8uZmlyc3QoKSk7dmFyIGE9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV92YWx1ZV9tZXJnZV90YWdfIitlKyJfIitpLCExLG8scik7aWYoITE9PT1hKXtzd2l0Y2goYT0iIixyKXtjYXNlImxhYmVsIjp2YXIgbD1uLmZpbmQoIi5nZmllbGRfbGFiZWwiKTtyZXR1cm4gbC5maW5kKCIuc2NyZWVuLXJlYWRlci10ZXh0IikucmVtb3ZlKCksbC50ZXh0KCk7Y2FzZSJxdHkiOmlmKG4uaGFzQ2xhc3MoImdmaWVsZF9wcmljZSIpKXJldHVybiExPT09KGQ9Z2Zvcm1HZXRQcm9kdWN0UXVhbnRpdHkoZSxpKSl8fCIiPT09ZD8wOmR9aWYoMT09PShvPSJjaGVja2JveCIhPT1vLnByb3AoInR5cGUiKSYmInJhZGlvIiE9PW8ucHJvcCgidHlwZSIpP286by5maWx0ZXIoIjpjaGVja2VkIikpLmxlbmd0aCl7aWYoIW8uaXMoInNlbGVjdCIpJiYicmFkaW8iIT09by5wcm9wKCJ0eXBlIikmJiJjaGVja2JveCIhPT1vLnByb3AoInR5cGUiKXx8IiIhPT1yKXZvaWQgMD09PWQmJihkPW8udmFsKCkpO2Vsc2UgaWYoKGQ9by5pcygic2VsZWN0Iik/by5maW5kKCJvcHRpb246c2VsZWN0ZWQiKTooInJhZGlvIj09PW8ucHJvcCgidHlwZSIpJiZvLnBhcmVudCgpLmhhc0NsYXNzKCJnY2hvaWNlX2J1dHRvbiIpP28ucGFyZW50KCkuc2libGluZ3MoIi5nY2hvaWNlX2xhYmVsIikuZmluZCgibGFiZWwiKTpvLm5leHQoImxhYmVsIikpLmNsb25lKCkpLmZpbmQoInNwYW4iKS5yZW1vdmUoKSwxPT09ZC5sZW5ndGgpZD1kLnRleHQoKTtlbHNle2Zvcih2YXIgcz1bXSxjPTA7YzxkLmxlbmd0aDtjKyspc1tjXT1qUXVlcnkoZFtjXSkudGV4dCgpO2Q9c31hPWpRdWVyeS5pc0FycmF5KGQpP2Quam9pbigiLCAiKToic3RyaW5nIj09dHlwZW9mIGQ/R0ZNZXJnZVRhZy5mb3JtYXRWYWx1ZShkLHIpOiIifWVsc2UgaWYoMTxvLmxlbmd0aCl7Zm9yKHZhciBmLGQ9W10sYz0wO2M8by5sZW5ndGg7YysrKSJjaGVja2JveCI9PT1vLnByb3AoInR5cGUiKSYmIiI9PT1yPygoZj1qUXVlcnkob1tjXSkubmV4dCgibGFiZWwiKS5jbG9uZSgpKS5maW5kKCJzcGFuIikucmVtb3ZlKCksZFtjXT1HRk1lcmdlVGFnLmZvcm1hdFZhbHVlKGYudGV4dCgpLHIpLGYucmVtb3ZlKCkpOmRbY109R0ZNZXJnZVRhZy5mb3JtYXRWYWx1ZShqUXVlcnkob1tjXSkudmFsKCkscik7YT1kLmpvaW4oIiwgIil9fXJldHVybiBhfSxHRk1lcmdlVGFnLnJlcGxhY2VNZXJnZVRhZ3M9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLG89R0ZNZXJnZVRhZy5wYXJzZU1lcmdlVGFncyh0KTtmb3IoaSBpbiBvKW8uaGFzT3duUHJvcGVydHkoaSkmJihuPW9baV1bMV0scGFyc2VJbnQobiwxMCkscj1udWxsPT1vW2ldWzNdPyIiOm9baV1bM10ucmVwbGFjZSgiOiIsIiIpLG49R0ZNZXJnZVRhZy5nZXRNZXJnZVRhZ1ZhbHVlKGUsbixyKSx0PXQucmVwbGFjZShvW2ldWzBdLG4pKTtyZXR1cm4gdH0sR0ZNZXJnZVRhZy5mb3JtYXRWYWx1ZT1mdW5jdGlvbihlLHQpe3ZhciByPSIiLHI9MTwoZT1lLnNwbGl0KCJ8IikpLmxlbmd0aCYmKCJwcmljZSI9PT10fHwiY3VycmVuY3kiPT09dCk/Z2Zvcm1Ub051bWJlcihlWzFdKTplWzBdO3N3aXRjaCh0KXtjYXNlInByaWNlIjpyPSExPT09KHI9Z2Zvcm1Ub051bWJlcihyKSk/IiI6cjticmVhaztjYXNlImN1cnJlbmN5IjpyPSExPT09KHI9Z2Zvcm1Gb3JtYXRNb25leShyLCExKSk/IiI6cjticmVhaztjYXNlIm51bWVyaWMiOnJldHVybiExPT09KHI9Z2Zvcm1Ub051bWJlcihyKSk/MDpyO2RlZmF1bHQ6cj1yLnRyaW0oKX1yZXR1cm4gcn0sR0ZNZXJnZVRhZy5wYXJzZU1lcmdlVGFncz1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PS97W157XSo/OihcZCsoXC5cZCspPykoOiguKj8pKT99L2kpO2Zvcih2YXIgcj1bXTt0LnRlc3QoZSk7KXt2YXIgaT1yLmxlbmd0aDtyW2ldPXQuZXhlYyhlKSxlPWUucmVwbGFjZSgiIityW2ldWzBdLCIiKX1yZXR1cm4gcn19LEdGQ2FsYz0obmV3IEdGTWVyZ2VUYWcsZnVuY3Rpb24oZm9ybUlkLGZvcm11bGFGaWVsZHMpe3RoaXMuZm9ybUlkPWZvcm1JZCx0aGlzLmZvcm11bGFGaWVsZHM9Zm9ybXVsYUZpZWxkcyx0aGlzLmV4cHJQYXR0PS9eWzAtOSAtLypcKFwpXSskL2ksdGhpcy5pc0NhbGN1bGF0aW5nPXt9LHRoaXMuaW5pdD1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7alF1ZXJ5KGRvY3VtZW50KS5vZmYoImdmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMuZ2ZDYWxjX3swfSIuZ2Zvcm1Gb3JtYXQoZSkpLm9uKCJnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljLmdmQ2FsY197MH0iLmdmb3JtRm9ybWF0KGUpLGZ1bmN0aW9uKCl7ci5ydW5DYWxjcyhlLHQpfSk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPWpRdWVyeS5leHRlbmQoe30sdFtpXSk7dGhpcy5ydW5DYWxjKG4sZSksdGhpcy5iaW5kQ2FsY0V2ZW50cyhuLGUpfX0sdGhpcy5ydW5DYWxjPWZ1bmN0aW9uKGZvcm11bGFGaWVsZCxmb3JtSWQpe3ZhciBjYWxjT2JqPXRoaXMsZmllbGQ9alF1ZXJ5KCIjZmllbGRfIitmb3JtSWQrIl8iK2Zvcm11bGFGaWVsZC5maWVsZF9pZCksZm9ybXVsYUlucHV0PWZpZWxkLmhhc0NsYXNzKCJnZmllbGRfcHJpY2UiKT9qUXVlcnkoIiNnaW5wdXRfYmFzZV9wcmljZV8iK2Zvcm1JZCsiXyIrZm9ybXVsYUZpZWxkLmZpZWxkX2lkKTpqUXVlcnkoIiNpbnB1dF8iK2Zvcm1JZCsiXyIrZm9ybXVsYUZpZWxkLmZpZWxkX2lkKSxwcmV2aW91c192YWw9Zm9ybXVsYUlucHV0LnZhbCgpLGZvcm11bGE9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9jYWxjdWxhdGlvbl9mb3JtdWxhIixmb3JtdWxhRmllbGQuZm9ybXVsYSxmb3JtdWxhRmllbGQsZm9ybUlkLGNhbGNPYmopLGV4cHI9Y2FsY09iai5yZXBsYWNlRmllbGRUYWdzKGZvcm1JZCxmb3JtdWxhLGZvcm11bGFGaWVsZCkucmVwbGFjZSgvKFxyXG58XG58XHIpL2dtLCIiKSxyZXN1bHQ9IiI7aWYoY2FsY09iai5leHByUGF0dC50ZXN0KGV4cHIpKXt0cnl7cmVzdWx0PWV2YWwoZXhwcil9Y2F0Y2goZSl7fWlzRmluaXRlKHJlc3VsdCl8fChyZXN1bHQ9MCksd2luZG93Lmdmb3JtX2NhbGN1bGF0aW9uX3Jlc3VsdCYmKHJlc3VsdD13aW5kb3cuZ2Zvcm1fY2FsY3VsYXRpb25fcmVzdWx0KHJlc3VsdCxmb3JtdWxhRmllbGQsZm9ybUlkLGNhbGNPYmopLHdpbmRvdy5jb25zb2xlKSYmY29uc29sZS5sb2coJyJnZm9ybV9jYWxjdWxhdGlvbl9yZXN1bHQiIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxLjghIFVzZSAiZ2Zvcm1fY2FsY3VsYXRpb25fcmVzdWx0IiBKUyBob29rIGluc3RlYWQuJyk7dmFyIHJlc3VsdD1nZm9ybS5hcHBseUZpbHRlcnMoImdmb3JtX2NhbGN1bGF0aW9uX3Jlc3VsdCIscmVzdWx0LGZvcm11bGFGaWVsZCxmb3JtSWQsY2FsY09iaiksZm9ybWF0dGVkUmVzdWx0PWdmb3JtLmFwcGx5RmlsdGVycygiZ2Zvcm1fY2FsY3VsYXRpb25fZm9ybWF0X3Jlc3VsdCIsITEscmVzdWx0LGZvcm11bGFGaWVsZCxmb3JtSWQsY2FsY09iaiksbnVtYmVyRm9ybWF0PWdmX2dldF9maWVsZF9udW1iZXJfZm9ybWF0KGZvcm11bGFGaWVsZC5maWVsZF9pZCxmb3JtSWQpLGRlY2ltYWxTZXBhcmF0b3IsdGhvdXNhbmRTZXBhcmF0b3I7cmVzdWx0PSExIT09Zm9ybWF0dGVkUmVzdWx0P2Zvcm1hdHRlZFJlc3VsdDpmaWVsZC5oYXNDbGFzcygiZ2ZpZWxkX3ByaWNlIil8fCJjdXJyZW5jeSI9PW51bWJlckZvcm1hdD9nZm9ybUZvcm1hdE1vbmV5KHJlc3VsdHx8MCwhMCk6KGRlY2ltYWxTZXBhcmF0b3I9Ii4iLHRob3VzYW5kU2VwYXJhdG9yPSIsIiwiZGVjaW1hbF9jb21tYSI9PW51bWJlckZvcm1hdCYmKGRlY2ltYWxTZXBhcmF0b3I9IiwiLHRob3VzYW5kU2VwYXJhdG9yPSIuIiksZ2Zvcm1Gb3JtYXROdW1iZXIocmVzdWx0LGdmb3JtSXNOdW1iZXIoZm9ybXVsYUZpZWxkLnJvdW5kaW5nKT9mb3JtdWxhRmllbGQucm91bmRpbmc6LTEsZGVjaW1hbFNlcGFyYXRvcix0aG91c2FuZFNlcGFyYXRvcikpLHJlc3VsdCE9cHJldmlvdXNfdmFsJiYoZmllbGQuaGFzQ2xhc3MoImdmaWVsZF9wcmljZSIpPyhqUXVlcnkoIiNpbnB1dF8iK2Zvcm1JZCsiXyIrZm9ybXVsYUZpZWxkLmZpZWxkX2lkKS50ZXh0KHJlc3VsdCksZm9ybXVsYUlucHV0LnZhbChyZXN1bHQpLnRyaWdnZXIoImNoYW5nZSIpLGpRdWVyeSgiLmdmaWVsZF9sYWJlbF9wcm9kdWN0IikubGVuZ3RoJiYhalF1ZXJ5KCIuZ2lucHV0X3RvdGFsIikubGVuZ3RoJiYocmVzdWx0PWpRdWVyeSgibGFiZWxbIGZvcj1pbnB1dF8iK2Zvcm1JZCsiXyIrZm9ybXVsYUZpZWxkLmZpZWxkX2lkKyJfMSBdIikuZmluZCgiLmdmaWVsZF9sYWJlbF9wcm9kdWN0IikudGV4dCgpKyIgIityZXN1bHQsd3AuYTExeS5zcGVhayhyZXN1bHQpKSxnZm9ybUNhbGN1bGF0ZVRvdGFsUHJpY2UoZm9ybUlkKSk6Zm9ybXVsYUlucHV0LnZhbChyZXN1bHQpLnRyaWdnZXIoImNoYW5nZSIpKX19LHRoaXMucnVuQ2FsY3M9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9alF1ZXJ5LmV4dGVuZCh7fSx0W3JdKTt0aGlzLnJ1bkNhbGMoaSxlKX19LHRoaXMuYmluZENhbGNFdmVudHM9ZnVuY3Rpb24oZSx0KXt2YXIgcixpLG4sbz10aGlzLGE9ZS5maWVsZF9pZCxsPUdGTWVyZ2VUYWcucGFyc2VNZXJnZVRhZ3MoZS5mb3JtdWxhKTtmb3IociBpbiBvLmlzQ2FsY3VsYXRpbmdbYV09ITEsbClsLmhhc093blByb3BlcnR5KHIpJiYoaT1sW3JdWzFdLG49cGFyc2VJbnQoaSwxMCksImNoZWNrYm94Ij09KG49alF1ZXJ5KCIjZmllbGRfIit0KyJfIituKS5maW5kKCdpbnB1dFtuYW1lPSJpbnB1dF8nK2krJyJdLCBzZWxlY3RbbmFtZT0iaW5wdXRfJytpKyciXScpKS5wcm9wKCJ0eXBlIil8fCJyYWRpbyI9PW4ucHJvcCgidHlwZSIpP2pRdWVyeShuKS5jbGljayhmdW5jdGlvbigpe28uYmluZENhbGNFdmVudChpLGUsdCwwKX0pOihuLmlzKCJzZWxlY3QiKXx8ImhpZGRlbiI9PW4ucHJvcCgidHlwZSIpP2pRdWVyeShuKTpqUXVlcnkobikua2V5ZG93bihmdW5jdGlvbigpe28uYmluZENhbGNFdmVudChpLGUsdCl9KSkuY2hhbmdlKGZ1bmN0aW9uKCl7by5iaW5kQ2FsY0V2ZW50KGksZSx0LDApfSksZ2Zvcm0uZG9BY3Rpb24oImdmb3JtX3Bvc3RfY2FsY3VsYXRpb25fZXZlbnRzIixsW3JdLGUsdCxvKSl9LHRoaXMuYmluZENhbGNFdmVudD1mdW5jdGlvbihlLHQscixpKXt2YXIgbj10aGlzLG89dC5maWVsZF9pZDtpPW51bGw9PWk/MzQ1Omksbi5pc0NhbGN1bGF0aW5nW29dW2VdJiZjbGVhclRpbWVvdXQobi5pc0NhbGN1bGF0aW5nW29dW2VdKSxuLmlzQ2FsY3VsYXRpbmdbb11bZV09d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJ1bkNhbGModCxyKX0saSl9LHRoaXMucmVwbGFjZUZpZWxkVGFncz1mdW5jdGlvbihlLHQscil7dmFyIG4sbyxhLGwscyxjLGY9R0ZNZXJnZVRhZy5wYXJzZU1lcmdlVGFncyh0KTtmb3IoaSBpbiBmKWYuaGFzT3duUHJvcGVydHkoaSkmJihuPWZbaV1bMV0sKG89cGFyc2VJbnQobiwxMCkpPT1yLmZpZWxkX2lkJiZvPT1ufHwoYT0idmFsdWUiLGZbaV1bM10/YT1mW2ldWzNdOihjPWpRdWVyeSgiLmdmaWVsZF9wcmljZSBpbnB1dFtuYW1lPWlucHV0XyIrbysiXSIpLmlzKCJpbnB1dFt0eXBlPXJhZGlvXSIpLHM9MDxqUXVlcnkoIi5nZmllbGRfcHJpY2Ugc2VsZWN0W25hbWU9aW5wdXRfIitvKyJdIikubGVuZ3RoLGw9alF1ZXJ5KCcuZ2ZpZWxkX3ByaWNlIGlucHV0W25hbWU9ImlucHV0XycrbisnIl0nKS5pcygiaW5wdXRbdHlwZT1jaGVja2JveF0iKSwoc3x8Y3x8bCkmJihhPSJwcmljZSIpKSxjPShzPSF3aW5kb3cuZ2ZfY2hlY2tfZmllbGRfcnVsZXx8InNob3ciPT1nZl9jaGVja19maWVsZF9ydWxlKGUsbywhMCwiIikpP0dGTWVyZ2VUYWcuZ2V0TWVyZ2VUYWdWYWx1ZShlLG4sYSk6MCxjPWdmb3JtLmFwcGx5RmlsdGVycygiZ2Zvcm1fbWVyZ2VfdGFnX3ZhbHVlX3ByZV9jYWxjdWxhdGlvbiIsYyxmW2ldLHMscixlKSxjPXRoaXMuY2xlYW5OdW1iZXIoYyxlLG8sciksdD10LnJlcGxhY2UoZltpXVswXSxjKSkpO3JldHVybiB0fSx0aGlzLmNsZWFuTnVtYmVyPWZ1bmN0aW9uKGUsdCxyLGkpe3JldHVybiBlPShlPWdmb3JtQ2xlYW5OdW1iZXIoZSwiIiwiIixnZm9ybUdldERlY2ltYWxTZXBhcmF0b3IoZ2ZfZ2V0X2ZpZWxkX251bWJlcl9mb3JtYXQocix0KXx8Z2ZfZ2V0X2ZpZWxkX251bWJlcl9mb3JtYXQoaS5maWVsZF9pZCx0KSkpKXx8MH0sdGhpcy5pbml0KGZvcm1JZCxmb3JtdWxhRmllbGRzKX0pLF9fZ2Zfa2V5dXBfdGltZW91dDtmdW5jdGlvbiBnZm9ybUZvcm1hdE51bWJlcihlLHQscixpKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9d2luZG93LmdmX2dsb2JhbD9uZXcgQ3VycmVuY3koZ2ZfZ2xvYmFsLmdmX2N1cnJlbmN5X2NvbmZpZykuY3VycmVuY3kuZGVjaW1hbF9zZXBhcmF0b3I6Ii4iKSx2b2lkIDA9PT1pJiYoaT13aW5kb3cuZ2ZfZ2xvYmFsP25ldyBDdXJyZW5jeShnZl9nbG9iYWwuZ2ZfY3VycmVuY3lfY29uZmlnKS5jdXJyZW5jeS50aG91c2FuZF9zZXBhcmF0b3I6IiwiKSwobmV3IEN1cnJlbmN5KS5udW1iZXJGb3JtYXQoZSx0LHIsaSwhMSl9ZnVuY3Rpb24gZ2V0TWF0Y2hHcm91cHMoZSx0KXtmb3IodmFyIHI9bmV3IEFycmF5O3QudGVzdChlKTspe3ZhciBpPXIubGVuZ3RoO3JbaV09dC5leGVjKGUpLGU9ZS5yZXBsYWNlKCIiK3JbaV1bMF0sIiIpfXJldHVybiByfWZ1bmN0aW9uIGdmX2dldF9maWVsZF9udW1iZXJfZm9ybWF0KGUsdCxyKXt0PXJnYXJzKHdpbmRvdywiZ2ZfZ2xvYmFsL251bWJlcl9mb3JtYXRzL3swfS97MX0iLmdmb3JtRm9ybWF0KHQsZSkpLGU9ITE7cmV0dXJuIGU9IiIhPT10P3ZvaWQgMD09PXI/ITEhPT10LnByaWNlP3QucHJpY2U6dC52YWx1ZTp0W3JdOmV9ZnVuY3Rpb24gZ2Zvcm1WYWxpZGF0ZUZpbGVTaXplKGUsdCl7dmFyIHI9KDA8alF1ZXJ5KGUpLmNsb3Nlc3QoImRpdiIpLnNpYmxpbmdzKCIudmFsaWRhdGlvbl9tZXNzYWdlIikubGVuZ3RoP2pRdWVyeShlKS5jbG9zZXN0KCJkaXYiKTpqUXVlcnkoZSkpLnNpYmxpbmdzKCIudmFsaWRhdGlvbl9tZXNzYWdlIik7d2luZG93LkZpbGVSZWFkZXImJndpbmRvdy5GaWxlJiZ3aW5kb3cuRmlsZUxpc3QmJndpbmRvdy5CbG9iJiYoKGU9ZS5maWxlc1swXSkmJmUuc2l6ZT50PyhyLnRleHQoZS5uYW1lKyIgLSAiK2dmb3JtX2dyYXZpdHlmb3Jtcy5zdHJpbmdzLmZpbGVfZXhjZWVkc19saW1pdCksd3AuYTExeS5zcGVhayhlLm5hbWUrIiAtICIrZ2Zvcm1fZ3Jhdml0eWZvcm1zLnN0cmluZ3MuZmlsZV9leGNlZWRzX2xpbWl0KSk6ci5yZW1vdmUoKSl9ZnVuY3Rpb24gZ2Zvcm1Jbml0U3Bpbm5lcih0LHIsaT0hMCl7Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9zcGlubmVyX3VybCIscix0KSE9ciYmKGk9ITApLGpRdWVyeSgiI2dmb3JtXyIrdCkuc3VibWl0KGZ1bmN0aW9uKCl7dmFyIGU7aT9nZm9ybUFkZFNwaW5uZXIodCxyKTooZT1nZm9ybS5hcHBseUZpbHRlcnMoImdmb3JtX3NwaW5uZXJfdGFyZ2V0X2VsZW0iLGpRdWVyeSgiI2dmb3JtX3N1Ym1pdF9idXR0b25fIit0KyIsICNnZm9ybV93cmFwcGVyXyIrdCsiIC5nZm9ybV9uZXh0X2J1dHRvbiwgI2dmb3JtX3NlbmRfcmVzdW1lX2xpbmtfYnV0dG9uXyIrdCksdCksZ2Zvcm1Jbml0aWFsaXplU3Bpbm5lcih0LGUpKX0pfWZ1bmN0aW9uIGdmb3JtSW5pdGlhbGl6ZVNwaW5uZXIoZSx0LHI9Imdmb3JtLWFqYXgtc3Bpbm5lciIpezA9PWpRdWVyeSgiI2dmb3JtX2FqYXhfc3Bpbm5lcl8iK2UpLmxlbmd0aCYmKHI9JzxzcGFuIGRhdGEtanMtc3Bpbm5lci1pZD0iJytyKyciIGlkPSJnZm9ybV9hamF4X3NwaW5uZXJfJytlKyciIGNsYXNzPSJnZm9ybS1sb2FkZXIiPjwvc3Bhbj4nLCh0IGluc3RhbmNlb2YgalF1ZXJ5P3Q6alF1ZXJ5KHQpKS5hZnRlcihyKSl9ZnVuY3Rpb24gZ2Zvcm1SZW1vdmVTcGlubmVyKGU9Imdmb3JtLWFqYXgtc3Bpbm5lciIpe2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtanMtc3Bpbm5lci1pZD0iJytlKyciXScpO2UmJmUucmVtb3ZlKCl9ZnVuY3Rpb24gZ2Zvcm1BZGRTcGlubmVyKGUsdCl7dm9pZCAwIT09dCYmdHx8KHQ9Z2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9zcGlubmVyX3VybCIsZ2ZfZ2xvYmFsLnNwaW5uZXJVcmwsZSkpLDA9PWpRdWVyeSgiI2dmb3JtX2FqYXhfc3Bpbm5lcl8iK2UpLmxlbmd0aCYmZ2Zvcm0uYXBwbHlGaWx0ZXJzKCJnZm9ybV9zcGlubmVyX3RhcmdldF9lbGVtIixqUXVlcnkoIiNnZm9ybV9zdWJtaXRfYnV0dG9uXyIrZSsiLCAjZ2Zvcm1fd3JhcHBlcl8iK2UrIiAuZ2Zvcm1fbmV4dF9idXR0b24sICNnZm9ybV9zZW5kX3Jlc3VtZV9saW5rX2J1dHRvbl8iK2UpLGUpLmFmdGVyKCc8aW1nIGlkPSJnZm9ybV9hamF4X3NwaW5uZXJfJytlKyciICBjbGFzcz0iZ2Zvcm1fYWpheF9zcGlubmVyIiBzcmM9IicrdCsnIiBhbHQ9IiIgLz4nKX1mdW5jdGlvbiBnZm9ybVJlSW5pdFRpbnltY2VJbnN0YW5jZShlLHQpe3ZhciByLGksbjtlJiZ0PyhyPXdpbmRvdy50aW55bWNlKT8oaT1yLmdldCgiaW5wdXRfIitlKyJfIit0KSk/KG49alF1ZXJ5LmV4dGVuZCh7fSxpLnNldHRpbmdzKSxpLnJlbW92ZSgpLHIuaW5pdChuKSxnZm9ybS5jb25zb2xlLmxvZygiZ2Zvcm1SZUluaXRUaW55bWNlSW5zdGFuY2UgcmVpbml0aWFsaXplZCBUaW55TUNFIG9uIGlucHV0XyIrZSsiXyIrdCsiLiIpKTpnZm9ybS5jb25zb2xlLmVycm9yKCJnZm9ybVJlSW5pdFRpbnltY2VJbnN0YW5jZSBkaWQgbm90IGZpbmQgYW4gaW5zdGFuY2UgZm9yIGlucHV0XyIrZSsiXyIrdCsiLiIpOmdmb3JtLmNvbnNvbGUuZXJyb3IoImdmb3JtUmVJbml0VGlueW1jZUluc3RhbmNlIHJlcXVpcmVzIHRpbnltY2UgdG8gYmUgYXZhaWxhYmxlLiIpOmdmb3JtLmNvbnNvbGUuZXJyb3IoImdmb3JtUmVJbml0VGlueW1jZUluc3RhbmNlIHJlcXVpcmVzIGEgZm9ybSBhbmQgZmllbGQgaWQuIil9ZnVuY3Rpb24gZ2ZfcmF3X2lucHV0X2NoYW5nZShlLHQpe2NsZWFyVGltZW91dChfX2dmX2tleXVwX3RpbWVvdXQpO3ZhciByPWpRdWVyeSh0KSxpPXIuYXR0cigiaWQiKSxuPWdmX2dldF9pbnB1dF9pZF9ieV9odG1sX2lkKGkpLG89Z2ZfZ2V0X2Zvcm1faWRfYnlfaHRtbF9pZChpKSxpPWdmb3JtLmFwcGx5RmlsdGVycygiZ2Zvcm1fZmllbGRfbWV0YV9yYXdfaW5wdXRfY2hhbmdlIix7ZmllbGRJZDpuLGZvcm1JZDpvfSxyLGUpLG49aS5maWVsZElkLG89aS5mb3JtSWQ7biYmKHI9IShpPXIuaXMoIjpjaGVja2JveCIpfHxyLmlzKCI6cmFkaW8iKXx8ci5pcygic2VsZWN0IikpfHxyLmlzKCJ0ZXh0YXJlYSIpLCJrZXl1cCI9PWUudHlwZSYmIXJ8fCJjaGFuZ2UiPT1lLnR5cGUmJiFpJiYhcnx8KCJrZXl1cCI9PWUudHlwZT9fX2dmX2tleXVwX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2dmX2lucHV0X2NoYW5nZSh0LG8sbil9LDMwMCk6Z2ZfaW5wdXRfY2hhbmdlKHQsbyxuKSkpfWZ1bmN0aW9uIGdmX2dldF9pbnB1dF9pZF9ieV9odG1sX2lkKGUpe3ZhciBlPWdmX2dldF9pZHNfYnlfaHRtbF9pZChlKSx0PWVbZS5sZW5ndGgtMV07cmV0dXJuIDM9PWUubGVuZ3RoJiYoZS5zaGlmdCgpLHQ9ZS5qb2luKCIuIikpLHR9ZnVuY3Rpb24gZ2ZfZ2V0X2Zvcm1faWRfYnlfaHRtbF9pZChlKXtyZXR1cm4gZ2ZfZ2V0X2lkc19ieV9odG1sX2lkKGUpWzBdfWZ1bmN0aW9uIGdmX2dldF9pZHNfYnlfaHRtbF9pZChlKXtmb3IodmFyIHQ9ZT9lLnNwbGl0KCJfIik6W10scj10Lmxlbmd0aC0xOzA8PXI7ci0tKWdmb3JtSXNOdW1iZXIodFtyXSl8fHQuc3BsaWNlKHIsMSk7cmV0dXJuIHR9ZnVuY3Rpb24gZ2ZfaW5wdXRfY2hhbmdlKGUsdCxyKXtnZm9ybS5kb0FjdGlvbigiZ2Zvcm1faW5wdXRfY2hhbmdlIixlLHQscil9ZnVuY3Rpb24gZ2Zvcm1FeHRyYWN0RmllbGRJZChlKXt2YXIgdD1wYXJzZUludChlLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVswXSwxMCk7cmV0dXJuIHR8fGV9ZnVuY3Rpb24gZ2Zvcm1FeHRyYWN0SW5wdXRJbmRleChlKXtlPXBhcnNlSW50KGUudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzFdLDEwKTtyZXR1cm4gZXx8ITF9Z2Zvcm0ucmVjYXB0Y2hhPXtyZW5kZXJSZWNhcHRjaGE6ZnVuY3Rpb24oKXtqUXVlcnkoIi5naW5wdXRfcmVjYXB0Y2hhOm5vdCguZ2Zvcm0taW5pdGlhbGl6ZWQpIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWpRdWVyeSh0aGlzKSxlPXtzaXRla2V5OnQuZGF0YSgic2l0ZWtleSIpLHRoZW1lOnQuZGF0YSgidGhlbWUiKSx0YWJpbmRleDp0LmRhdGEoInRhYmluZGV4Iil9LHI9KHQuZGF0YSgic3Rva2VuIikmJihlLnN0b2tlbj10LmRhdGEoInN0b2tlbiIpKSwhMSk7ImludmlzaWJsZSI9PXQuZGF0YSgic2l6ZSIpJiYocj1mdW5jdGlvbihlKXtlJiZ0LmNsb3Nlc3QoImZvcm0iKS5zdWJtaXQoKX0pLChyPWdmb3JtLmFwcGx5RmlsdGVycygiZ2Zvcm1fcmVjYXB0Y2hhX2NhbGxiYWNrIixyLHQpKSYmKGUuY2FsbGJhY2s9ciksdC5kYXRhKCJ3aWRnZXQtaWQiLGdyZWNhcHRjaGEucmVuZGVyKHRoaXMuaWQsZSkpLGUudGFiaW5kZXgmJnQuZmluZCgiaWZyYW1lIikuYXR0cigidGFiaW5kZXgiLGUudGFiaW5kZXgpLHQuYWRkQ2xhc3MoImdmb3JtLWluaXRpYWxpemVkIiksZ2Zvcm0uZG9BY3Rpb24oImdmb3JtX3Bvc3RfcmVjYXB0Y2hhX3JlbmRlciIsdCl9KX0sZ2Zvcm1Jc1JlY2FwdGNoYVBlbmRpbmc6ZnVuY3Rpb24oZSl7dmFyIGU9ZS5maW5kKCIuZ2lucHV0X3JlY2FwdGNoYSIpO3JldHVybiEoIWUubGVuZ3RofHwiaW52aXNpYmxlIiE9PWUuZGF0YSgic2l6ZSIpfHwoZT1lLmZpbmQoIi5nLXJlY2FwdGNoYS1yZXNwb25zZSIpKS5sZW5ndGgmJmUudmFsKCkpfSxuZWVkc1JlbmRlcjpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZ2lucHV0X3JlY2FwdGNoYTpub3QoLmdmb3JtLWluaXRpYWxpemVkKSIpWzBdfSxyZW5kZXJPblJlY2FwdGNoYUxvYWRlZDpmdW5jdGlvbigpe3ZhciBlO2dmb3JtLnJlY2FwdGNoYS5uZWVkc1JlbmRlcigpJiYoZT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3dpbmRvdy5ncmVjYXB0Y2hhJiZ3aW5kb3cuZ3JlY2FwdGNoYS5yZW5kZXImJih0aGlzLnJlbmRlclJlY2FwdGNoYSgpLGNsZWFySW50ZXJ2YWwoZSkpfSwxMDApKX19LGdmb3JtLmluaXRpYWxpemVPbkxvYWRlZChnZm9ybS5yZWNhcHRjaGEucmVuZGVyT25SZWNhcHRjaGFMb2FkZWQpLGpRdWVyeShkb2N1bWVudCkub24oImdmb3JtX3Bvc3RfcmVuZGVyIixnZm9ybS5yZWNhcHRjaGEucmVuZGVyT25SZWNhcHRjaGFMb2FkZWQpLHdpbmRvdy5yZW5kZXJSZWNhcHRjaGE9Z2Zvcm0ucmVjYXB0Y2hhLnJlbmRlclJlY2FwdGNoYSx3aW5kb3cuZ2Zvcm1Jc1JlY2FwdGNoYVBlbmRpbmc9Z2Zvcm0ucmVjYXB0Y2hhLmdmb3JtSXNSZWNhcHRjaGFQZW5kaW5nLCFmdW5jdGlvbihnLG0pe2cudXBsb2FkZXJzPXt9O3ZhciBfPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2Zvcm1fZ3Jhdml0eWZvcm1zP2dmb3JtX2dyYXZpdHlmb3Jtcy5zdHJpbmdzOnt9LHA9InVuZGVmaW5lZCIhPXR5cGVvZiBnZm9ybV9ncmF2aXR5Zm9ybXM/Z2Zvcm1fZ3Jhdml0eWZvcm1zLnZhcnMuaW1hZ2VzX3VybDoiIjtmdW5jdGlvbiBpKG8pe3ZhciBmLHIsZT1tKG8pLmRhdGEoInNldHRpbmdzIiksdD1uZXcgcGx1cGxvYWQuVXBsb2FkZXIoZSk7ZnVuY3Rpb24gZChlLHQpe20oIiMiK2UpLnByZXBlbmQoIjxsaSBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uIGdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UnPiIraCh0KSsiPC9saT4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d3AuYTExeS5zcGVhayhtKCIjIitlKS50ZXh0KCkpfSwxZTMpfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9cGFyc2VJbnQoZS5nZl92YXJzLm1heF9maWxlcywxMCk7MDx0JiYodD10PD1pKGUubXVsdGlwYXJ0X3BhcmFtcy5maWVsZF9pZCksZy50b2dnbGVEaXNhYmxlZChlLHQpLHR8fCh0PWUuZ2ZfdmFycy5tZXNzYWdlX2lkLGU9Xy5tYXhfcmVhY2hlZCxtKCIjIit0KyIgbGk6Y29udGFpbnMoJyIrZSsiJykiKS5yZW1vdmUoKSkpfWZ1bmN0aW9uIHMoKXt2YXIgZT1tKCIjZ2Zvcm1fdXBsb2FkZWRfZmlsZXNfIitmKS52YWwoKTtyZXR1cm4gdm9pZCAwPT09ZXx8IiI9PT1lP3t9Om0ucGFyc2VKU09OKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cygpLGU9dShlKTtyZXR1cm4gdm9pZCAwPT09dFtlXSYmKHRbZV09W10pLHRbZV19ZnVuY3Rpb24gaShlKXtyZXR1cm4gYyhlKS5sZW5ndGh9ZnVuY3Rpb24gdShlKXtyZXR1cm4iaW5wdXRfIitlfWZ1bmN0aW9uIG4oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfWY9dC5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zLmZvcm1faWQsKGcudXBsb2FkZXJzW2UuY29udGFpbmVyXT10KS5iaW5kKCJJbml0IixmdW5jdGlvbihlLHQpe3ZhciByLGksbjtlLmZlYXR1cmVzLmRyYWdkcm9wfHxtKCIuZ2Zvcm1fZHJvcF9pbnN0cnVjdGlvbnMiKS5oaWRlKCkscj1lLnNldHRpbmdzLmNvbnRhaW5lcixpPXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0iZmlsZSJdJylbMF0scj1yLnF1ZXJ5U2VsZWN0b3JBbGwoIi5nZm9ybV9idXR0b25fc2VsZWN0X2ZpbGVzIilbMF0sbj1tKG8pLmNsb3Nlc3QoIi5nZmllbGQiKS5maW5kKCIuZ2ZpZWxkX2xhYmVsIilbMF0saSYmbiYmciYmKG4uc2V0QXR0cmlidXRlKCJmb3IiLGkuaWQpLHIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixyLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpKyIsICIrbi5pbm5lclRleHQudG9Mb3dlckNhc2UoKSksaS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSxpLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIikpLGwoZS5zZXR0aW5ncyl9KSxnLnRvZ2dsZURpc2FibGVkPWZ1bmN0aW9uKGUsdCl7KCJzdHJpbmciPT10eXBlb2YgZS5icm93c2VfYnV0dG9uP20oIiMiK2UuYnJvd3NlX2J1dHRvbik6bShlLmJyb3dzZV9idXR0b24pKS5wcm9wKCJkaXNhYmxlZCIsdCl9LHQuaW5pdCgpLHQuYmluZCgiQmVmb3JlVXBsb2FkIixmdW5jdGlvbihlLHQpe2Uuc2V0dGluZ3MubXVsdGlwYXJ0X3BhcmFtcy5vcmlnaW5hbF9maWxlbmFtZT10Lm5hbWV9KSx0LmJpbmQoIkZpbGVzQWRkZWQiLGZ1bmN0aW9uKG8sZSl7dmFyIGEsdCxsPXBhcnNlSW50KG8uc2V0dGluZ3MuZ2ZfdmFycy5tYXhfZmlsZXMsMTApLHM9aShvLnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMuZmllbGRfaWQpLGM9by5zZXR0aW5ncy5nZl92YXJzLmRpc2FsbG93ZWRfZXh0ZW5zaW9uczswPGwmJmw8PXM/bS5lYWNoKGUsZnVuY3Rpb24oZSx0KXtvLnJlbW92ZUZpbGUodCl9KToobS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2YXIgcixpLG47YT10Lm5hbWUuc3BsaXQoIi4iKS5wb3AoKSwtMTxtLmluQXJyYXkoYSxjKT8oZChvLnNldHRpbmdzLmdmX3ZhcnMubWVzc2FnZV9pZCx0Lm5hbWUrIiAtICIrXy5pbGxlZ2FsX2V4dGVuc2lvbiksby5yZW1vdmVGaWxlKHQpKTp0LnN0YXR1cz09cGx1cGxvYWQuRkFJTEVEfHwwPGwmJmw8PXM/by5yZW1vdmVGaWxlKHQpOihyPXZvaWQgMCE9PXQuc2l6ZT9wbHVwbG9hZC5mb3JtYXRTaXplKHQuc2l6ZSk6Xy5pbl9wcm9ncmVzcyxpPSIkdGhpcz1qUXVlcnkodGhpcyk7IHZhciB1cGxvYWRlciA9IGdmTXVsdGlGaWxlVXBsb2FkZXIudXBsb2FkZXJzLiIrby5zZXR0aW5ncy5jb250YWluZXIuaWQrIjt1cGxvYWRlci5zdG9wKCk7dXBsb2FkZXIucmVtb3ZlRmlsZSh1cGxvYWRlci5nZXRGaWxlKCciK3QuaWQrIicpKTskdGhpcy5hZnRlcignIitfLmNhbmNlbGxlZCsiJyk7IHVwbG9hZGVyLnN0YXJ0KCk7JHRoaXMucmVtb3ZlKCk7IixuPWdmb3JtLmFwcGx5RmlsdGVycygiZ2Zvcm1fZmlsZV91cGxvYWRfc3RhdHVzX21hcmt1cCIsbj0nPGRpdiBpZD0iezB9IiBjbGFzcz0iZ2lucHV0X3ByZXZpZXciPjxzcGFuIGNsYXNzPSJnZmllbGRfZmlsZXVwbG9hZF9maWxlbmFtZSI+ezF9PC9zcGFuPjxzcGFuIGNsYXNzPSJnZmllbGRfZmlsZXVwbG9hZF9maWxlc2l6ZSI+ezJ9PC9zcGFuPjxzcGFuIGNsYXNzPSJnZmllbGRfZmlsZXVwbG9hZF9wcm9ncmVzcyI+PHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyIj48c3BhbiBjbGFzcz0iZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3MiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX3BlcmNlbnQiPjwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX2NhbmNlbCBnZm9ybS10aGVtZS1idXR0b24gZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9InszfSIgb25jbGljaz0iezR9IiBvbmtleXByZXNzPSJ7NH0iPns1fTwvYT4nLHQscixfLGksbykuZ2Zvcm1Gb3JtYXQodC5pZCxoKHQubmFtZSkscixfLmNhbmNlbF91cGxvYWQsaSxfLmNhbmNlbCksbSgiIyIrby5zZXR0aW5ncy5maWxlbGlzdCkucHJlcGVuZChuKSxzKyspfSksby5yZWZyZXNoKCksMD09KHQ9bSgiZm9ybSNnZm9ybV8iK2YrIiAiKyhlPSJpbnB1dDpoaWRkZW5bbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJ10iKSkpLmxlbmd0aCYmKHQ9bShlKSksIiI9PT0ocj10LnZhbCgpKSYmKHI9Inh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZnVuY3Rpb24oZSl7dmFyIHQ9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PWU/dDozJnR8OCkudG9TdHJpbmcoMTYpfSksdC52YWwocikpLDA8bCYmbDw9cyYmKGcudG9nZ2xlRGlzYWJsZWQoby5zZXR0aW5ncywhMCksZChvLnNldHRpbmdzLmdmX3ZhcnMubWVzc2FnZV9pZCxfLm1heF9yZWFjaGVkKSksby5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zLmdmb3JtX3VuaXF1ZV9pZD1yLG8uc3RhcnQoKSl9KSx0LmJpbmQoIlVwbG9hZFByb2dyZXNzIixmdW5jdGlvbihlLHQpe3ZhciByPXQucGVyY2VudCsiJSI7bSgiIyIrdC5pZCsiIHNwYW4uZ2ZpZWxkX2ZpbGV1cGxvYWRfcGVyY2VudCIpLmh0bWwociksbSgiIyIrdC5pZCsiIHNwYW4uZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3MiKS5jc3MoIndpZHRoIix0LnBlcmNlbnQrIiUiKX0pLHQuYmluZCgiRXJyb3IiLGZ1bmN0aW9uKGUsdCl7dmFyIHI7dC5jb2RlPT09cGx1cGxvYWQuRklMRV9FWFRFTlNJT05fRVJST1I/KHI9KHZvaWQgMCE9PWUuc2V0dGluZ3MuZmlsdGVycy5taW1lX3R5cGVzP2Uuc2V0dGluZ3MuZmlsdGVycy5taW1lX3R5cGVzOmUuc2V0dGluZ3MuZmlsdGVycylbMF0uZXh0ZW5zaW9ucyxkKGUuc2V0dGluZ3MuZ2ZfdmFycy5tZXNzYWdlX2lkLHQuZmlsZS5uYW1lKyIgLSAiK18uaW52YWxpZF9maWxlX2V4dGVuc2lvbisiICIrcikpOnQuY29kZT09PXBsdXBsb2FkLkZJTEVfU0laRV9FUlJPUj9kKGUuc2V0dGluZ3MuZ2ZfdmFycy5tZXNzYWdlX2lkLHQuZmlsZS5uYW1lKyIgLSAiK18uZmlsZV9leGNlZWRzX2xpbWl0KToocj0iRXJyb3I6ICIrdC5jb2RlKyIsIE1lc3NhZ2U6ICIrdC5tZXNzYWdlKyh0LmZpbGU/IiwgRmlsZTogIit0LmZpbGUubmFtZToiIiksZChlLnNldHRpbmdzLmdmX3ZhcnMubWVzc2FnZV9pZCxyKSksbSgiIyIrdC5maWxlLmlkKS5odG1sKCIiKSxlLnJlZnJlc2goKX0pLHQuYmluZCgiQ2h1bmtVcGxvYWRlZCIsZnVuY3Rpb24oZSx0LHIpe3I9bS5zZWN1cmVFdmFsSlNPTihyLnJlc3BvbnNlKTsiZXJyb3IiPT1yLnN0YXR1cz8oZS5yZW1vdmVGaWxlKHQpLGQoZS5zZXR0aW5ncy5nZl92YXJzLm1lc3NhZ2VfaWQsdC5uYW1lKyIgLSAiK3IuZXJyb3IubWVzc2FnZSksbSgiIyIrdC5pZCkuaHRtbCgiIikpOmUuc2V0dGluZ3MubXVsdGlwYXJ0X3BhcmFtc1t0LnRhcmdldF9uYW1lXT1yLmRhdGF9KSx0LmJpbmQoIkZpbGVVcGxvYWRlZCIsZnVuY3Rpb24oZSx0LHIpe3ZhciBpLG4sbyxhO2UuZ2V0RmlsZSh0LmlkKSYmKCJlcnJvciI9PShyPW0uc2VjdXJlRXZhbEpTT04oci5yZXNwb25zZSkpLnN0YXR1cz8oZChlLnNldHRpbmdzLmdmX3ZhcnMubWVzc2FnZV9pZCx0Lm5hbWUrIiAtICIrci5lcnJvci5tZXNzYWdlKSxtKCIjIit0LmlkKS5odG1sKCIiKSxsKGUuc2V0dGluZ3MpKTooYT0nPHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX2ZpbGVuYW1lIj4nK2gobz1yZ2FycyhyLCJkYXRhL3VwbG9hZGVkX2ZpbGVuYW1lIikpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX2ZpbGVzaXplIj4nK3BsdXBsb2FkLmZvcm1hdFNpemUodC5zaXplKSsiPC9zcGFuPiIsYSs9JzxzcGFuIGNsYXNzPSJnZmllbGRfZmlsZXVwbG9hZF9wcm9ncmVzcyBnZmllbGRfZmlsZXVwbG9hZF9wcm9ncmVzc19jb21wbGV0ZSI+PHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyIj48c3BhbiBjbGFzcz0iZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3MiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImdmaWVsZF9maWxldXBsb2FkX3BlcmNlbnQiPicrdC5wZXJjZW50KyIlPC9zcGFuPjwvc3Bhbj4iLG49ZS5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zLmZvcm1faWQsaT1lLnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMuZmllbGRfaWQsYT0idW5kZWZpbmVkIiE9dHlwZW9mIGdmX2xlZ2FjeSYmZ2ZfbGVnYWN5LmlzX2xlZ2FjeT8iPGltZyBjbGFzcz0nZ2Zvcm1fZGVsZXRlJyBzcmM9JyIrcCsiL2RlbGV0ZS5wbmcnIG9uY2xpY2s9J2dmb3JtRGVsZXRlVXBsb2FkZWRGaWxlKCIrbisiLCIraSsiLCB0aGlzKTsnIG9ua2V5cHJlc3M9J2dmb3JtRGVsZXRlVXBsb2FkZWRGaWxlKCIrbisiLCIraSsiLCB0aGlzKTsnIGFsdD0nIitfLmRlbGV0ZV9maWxlKyInIHRpdGxlPSciK18uZGVsZXRlX2ZpbGUrIicgLz4gIithOmErIjxidXR0b24gY2xhc3M9J2dmb3JtX2RlbGV0ZV9maWxlIGdmb3JtLXRoZW1lLWJ1dHRvbiBnZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZScgb25jbGljaz0nZ2Zvcm1EZWxldGVVcGxvYWRlZEZpbGUoIituKyIsIitpKyIsIHRoaXMpOyc+PHNwYW4gY2xhc3M9J2Rhc2hpY29ucyBkYXNoaWNvbnMtdHJhc2gnIGFyaWEtaGlkZGVuPSd0cnVlJz48L3NwYW4+PHNwYW4gY2xhc3M9J3NjcmVlbi1yZWFkZXItdGV4dCc+IitfLmRlbGV0ZV9maWxlKyI6ICIraChvKSsiPC9zcGFuPjwvYnV0dG9uPiIsYT1nZm9ybS5hcHBseUZpbHRlcnMoImdmb3JtX2ZpbGVfdXBsb2FkX21hcmt1cCIsYSx0LGUsXyxwLHIpLG0oIiMiK3QuaWQpLmh0bWwoYSksbSgiIyIrdC5pZCsiIHNwYW4uZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3MiKS5jc3MoIndpZHRoIix0LnBlcmNlbnQrIiUiKSwxMDA9PXQucGVyY2VudCYmKHIuc3RhdHVzJiYib2siPT1yLnN0YXR1cz8obj1pLG89ci5kYXRhLChhPWMobikpLnVuc2hpZnQobyksaT1uLHI9YSxvPXMoKSxuPW0oIiNnZm9ybV91cGxvYWRlZF9maWxlc18iK2YpLGk9dShpKSxvW2ldPXIsbi52YWwobS50b0pTT04obykpKTpkKGUuc2V0dGluZ3MuZ2ZfdmFycy5tZXNzYWdlX2lkLF8udW5rbm93bl9lcnJvcisiOiAiK3QubmFtZSkpKSl9KSx0LmJpbmQoIkZpbGVzUmVtb3ZlZCIsZnVuY3Rpb24oZSx0KXtsKGUuc2V0dGluZ3MpfSksbSgiIyIrZS5kcm9wX2VsZW1lbnQpLm9uKHtkcmFnZW50ZXI6bixkcmFnb3ZlcjpufSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gbSgiPGRpdi8+IikudGV4dChlKS5odG1sKCl9bShkb2N1bWVudCkuYmluZCgiZ2Zvcm1fcG9zdF9yZW5kZXIiLGZ1bmN0aW9uKGUsdCl7bSgiZm9ybSNnZm9ybV8iK3QrIiAuZ2Zvcm1fZmlsZXVwbG9hZF9tdWx0aWZpbGUiKS5lYWNoKGZ1bmN0aW9uKCl7aSh0aGlzKX0pO3ZhciByPW0oImZvcm0jZ2Zvcm1fIit0KTswPHIubGVuZ3RoJiZyLnN1Ym1pdChmdW5jdGlvbigpe3ZhciByPSExO2lmKG0uZWFjaChnLnVwbG9hZGVycyxmdW5jdGlvbihlLHQpe2lmKDA8dC50b3RhbC5xdWV1ZWQpcmV0dXJuIShyPSEwKX0pLHIpcmV0dXJuIGFsZXJ0KF8uY3VycmVudGx5X3VwbG9hZGluZyksd2luZG93WyJnZl9zdWJtaXR0aW5nXyIrdF09ITEsbSgiI2dmb3JtX2FqYXhfc3Bpbm5lcl8iK3QpLnJlbW92ZSgpLCExfSl9KSxtKGRvY3VtZW50KS5iaW5kKCJnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljIixmdW5jdGlvbihlLHQscixpKXtpfHxtLmVhY2goZy51cGxvYWRlcnMsZnVuY3Rpb24oZSx0KXt0LnJlZnJlc2goKX0pfSksbShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGFkbWlucGFnZSYmInRvcGxldmVsX3BhZ2VfZ2ZfZWRpdF9mb3JtcyI9PT1hZG1pbnBhZ2V8fCJ1bmRlZmluZWQiPT10eXBlb2YgcGx1cGxvYWQ/bSgiLmdmb3JtX2J1dHRvbl9zZWxlY3RfZmlsZXMiKS5wcm9wKCJkaXNhYmxlZCIsITApOiJ1bmRlZmluZWQiIT10eXBlb2YgYWRtaW5wYWdlJiYtMTxhZG1pbnBhZ2UuaW5kZXhPZigiX3BhZ2VfZ2ZfZW50cmllcyIpJiZtKCIuZ2Zvcm1fZmlsZXVwbG9hZF9tdWx0aWZpbGUiKS5lYWNoKGZ1bmN0aW9uKCl7aSh0aGlzKX0pfSksZy5zZXR1cD1mdW5jdGlvbihlKXtpKGUpfX0od2luZG93LmdmTXVsdGlGaWxlVXBsb2FkZXI9d2luZG93LmdmTXVsdGlGaWxlVXBsb2FkZXJ8fHt9LGpRdWVyeSksalF1ZXJ5KGRvY3VtZW50KS5vbigiY2hhbmdlIGtleXVwIiwiLmdmaWVsZCBpbnB1dCwgLmdmaWVsZCBzZWxlY3QsIC5nZmllbGQgdGV4dGFyZWEiLGZ1bmN0aW9uKGUpe2dmX3Jhd19pbnB1dF9jaGFuZ2UoZSx0aGlzKX0pLGpRdWVyeShkb2N1bWVudCkub24oInN1Ym1pdC5ncmF2aXR5Zm9ybXMiLCIuZ2Zvcm1fd3JhcHBlciBmb3JtIixmdW5jdGlvbihlKXt2YXIgdD1qUXVlcnkodGhpcykuY2xvc2VzdCgiLmdmb3JtX3dyYXBwZXIiKSxyPXQuYXR0cigiaWQiKS5zcGxpdCgiXyIpWzJdLGk9MDx0LmZpbmQoIi5nZm9ybV9wYWdlIikubGVuZ3RoLG49cGFyc2VJbnQodC5maW5kKCdpbnB1dFtuYW1lXj0iZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXyJdJykudmFsKCksMTApLG89cGFyc2VJbnQodC5maW5kKCdpbnB1dFtuYW1lXj0iZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXyJdJykudmFsKCksMTApLGE9MD09PW8sbj0hYSYmbjxvLG89IjEiPT09alF1ZXJ5KCIjZ2Zvcm1fc2F2ZV8iK3IpLnZhbCgpLGw9KGk9aT90LmZpbmQoIi5nZm9ybV9wYWdlOnZpc2libGUiKS5maW5kKCcuZ2Zvcm1fcGFnZV9mb290ZXIgW2lkXj0iZ2Zvcm1fJysobj8ibmV4dCI6InN1Ym1pdCIpKydfYnV0dG9uXyJdJyk6dC5maW5kKCIjZ2Zvcm1fc3VibWl0X2J1dHRvbl8iK3IpLG8mJndwLmExMXkuc3BlYWsod2luZG93LmdmX2dsb2JhbC5zdHJpbmdzLmZvcm1TYXZlZCksIWkuaXMoIjp2aXNpYmxlIikpLGk9aS5pcygiOmRpc2FibGVkIik7IW8mJihhfHxuKSYmKGx8fGkpPyh3aW5kb3dbImdmX3N1Ym1pdHRpbmdfIityXT0hMSx0LmZpbmQoIi5nZm9ybV9hamF4X3NwaW5uZXIiKS5yZW1vdmUoKSxlLnByZXZlbnREZWZhdWx0KCkpOmEmJjAhPT0obz10LmZpbmQoIi5naW5wdXRfcmVjYXB0Y2hhIikpLmxlbmd0aCYmImludmlzaWJsZSI9PT1vLmRhdGEoInNpemUiKSYmIShuPTA9PT0obj10LmZpbmQoJ2lucHV0W25hbWU9ImctcmVjYXB0Y2hhLXJlc3BvbnNlIl0nKSkubGVuZ3RoP28uZmluZCgiLmctcmVjYXB0Y2hhLXJlc3BvbnNlIik6bikudmFsKCkmJihncmVjYXB0Y2hhLmV4ZWN1dGUoby5kYXRhKCJ3aWRnZXQtaWQiKSksc2V0VGltZW91dChmdW5jdGlvbigpe3dpbmRvd1siZ2Zfc3VibWl0dGluZ18iK3JdPSExfSw0ZTMpLGUucHJldmVudERlZmF1bHQoKSl9KTt7ZnVuY3Rpb24gcmdhcnMoZSx0KXtmb3IodmFyIHI9dC5zcGxpdCgiLyIpLGk9ZSxuPTA7bjxyLmxlbmd0aDtuKyspaT1yZ2FyKGkscltuXSk7cmV0dXJuIGl9d2luZG93LnJnYXJzfXtmdW5jdGlvbiByZ2FyKGUsdCl7cmV0dXJuIHZvaWQgMCE9PWVbdF0/ZVt0XToiIn13aW5kb3cucmdhcn1TdHJpbmcucHJvdG90eXBlLmdmb3JtRm9ybWF0fHwoU3RyaW5nLnByb3RvdHlwZS5nZm9ybUZvcm1hdD1mdW5jdGlvbigpe3ZhciByPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5yZXBsYWNlKC97KFxkKyl9L2csZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwIT09clt0XT9yW3RdOmV9KX0pLFN0cmluZy5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKCl7dmFyIHI9YXJndW1lbnRzO3JldHVybiBjb25zb2xlLndhcm4oIlN0cmluZy5mb3JtYXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIFN0cmluZy5nZm9ybUZvcm1hdCBpbiBHcmF2aXR5IEZvcm1zIHZlcnNpb24gMi44LiIpLHRoaXMucmVwbGFjZSgveyhcZCspfS9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMCE9PXJbdF0/clt0XTplfSl9LGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoIiNnZm9ybS1mb3JtLXRvb2xiYXJfX21lbnUgPiBsaSIpLmhvdmVyKGZ1bmN0aW9uKCl7alF1ZXJ5KHRoaXMpLmZpbmQoIi5nZm9ybS1mb3JtLXRvb2xiYXJfX3N1Ym1lbnUiKS50b2dnbGVDbGFzcygib3BlbiIpLGpRdWVyeSh0aGlzKS5maW5kKCIuaGFzX3N1Ym1lbnUiKS50b2dnbGVDbGFzcygic3VibWVudS1vcGVuIil9LGZ1bmN0aW9uKCl7alF1ZXJ5KCIuZ2Zvcm0tZm9ybS10b29sYmFyX19zdWJtZW51Lm9wZW4iKS5yZW1vdmVDbGFzcygib3BlbiIpLGpRdWVyeSgiLmhhc19zdWJtZW51LnN1Ym1lbnUtb3BlbiIpLnJlbW92ZUNsYXNzKCJzdWJtZW51LW9wZW4iKX0pLGpRdWVyeSgiI2dmb3JtLWZvcm0tdG9vbGJhcl9fbWVudSAuaGFzX3N1Ym1lbnUiKS5jbGljayhmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9KX0pLGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoIi5nZm9ybS1zZXR0aW5ncy1maWVsZCIpLmVhY2goZnVuY3Rpb24oKXsxPGpRdWVyeSh0aGlzKS5maW5kKCI+IC5nZm9ybS1zZXR0aW5ncy1pbnB1dF9fY29udGFpbmVyIikubGVuZ3RoJiZqUXVlcnkodGhpcykuYWRkQ2xhc3MoImdmb3JtLXNldHRpbmdzLWZpZWxkLS1tdWx0aXBsZS1pbnB1dHMiKX0pfSksalF1ZXJ5KGZ1bmN0aW9uKCl7Z2Zvcm0udG9vbHMudHJpZ2dlcigiZ2Zvcm1fbWFpbl9zY3JpcHRzX2xvYWRlZCIpfSk7"}},"time_used":463,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":463,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-500.woff2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.657Z","timestamp":1785145404657,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-500.woff2 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 11256\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-2bf8\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":11256,"size_decoded":11507,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 11256, version 1.0","md5":"a05480922bb4a21537064bdab36a39b7","sha1":"9c87dac49ea017667217bddc449cba5624948527","sha256":"54f5da9ca82afcd94c12375f821d6a6dada1d82d47d20be9ef1be3f1a94d15f6","sha512":"f052ee1d6270bc175475da369f92077fc3ae88e42328521c432711f37a3d309d9462405d073c09f3a28775cf993daf4824749988249c8895c3a0cab7a3163752","ssdeep":"192:In7tFKhQpCvwnGOX+AlV+kG2Ods/a0LDWGv1UzH1pAFi0YItzJQ:cTnZu6VF8H0Pdv1UL1pei0httQ","tlshash":"0b32a0237259e0bdc71d2475d1702150c0773edf1a564f48b67aca9389cb9c3e26a1b4","first_seen":"2023-07-08T17:47:51Z","last_seen":"2026-08-08T03:45:54.809303Z","times_seen":38,"resource_available":false,"data":"d09GMgABAAAAACv4ABAAAAAAXwgAACuYAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEOG5RUHIYIBmA/U1RBVEQAhG4RCAr+ROQMC4QWAAE2AiQDiCgEIAWFBgeIYgwHG6BONWOcnhk2DgQ87B1KFMHGscMwc0j2/39LoHK4lacGPJAEwglBQmA8ghppjuSYrMouuVdMxOk+kLSsKxw7r+RPPrHOC/uGu88ev94tS6H5CkHDQxgHCgStR9J0uheyUIOWR3bm3EqvUglbgXzhOGm7Q8kRkszyPLS/53/tOfcB0reT20tfIVPVjrBmCObWbYwcVWNjG2ysMtkYsCBKKsWob+Nb+5XvZMYnfhj5Rn/avOCH+kI9/ZBaz/u7eyfMabKyISoUjuzIHps9EiURDqcoHN//V+eXZCcDul8/Q8iLpPeeIwXY+cluRWh3c+R6uSMolyugotozf+3XHibdF/MQ76uxQ9OvcmZbMjDdUoWk7QbnrORk8+cIUD2w+uIhC3NKANGI23XA7SBNnflFN5GkWAahiPg/vXbcO54FAKpwUR0eAA7IJchtpWYCASrroM6PVjeLehujqYO92fP0egpyhccDGpWaXbJ38vf/2/StfU/vv5yxPj47oP9DclAJK9A7DpY66VLvFiU9vTuCO09jz9j+oJH8gUcKjZw9xxSQQpJCtAQwshfkoJYYimZTbVNuUZRE3RZlt0TVquk8wHMO2w4lkP4+VTxCPa96XnnITyPFP7iVG0gUUuMQzmEyVPOJZTuQpXeVvqwQivk1/t8v83PJNhutqSdlUsoYQhBRkSCuE6mfSbq891kRUGgA9AQQEEB7EEBRCEKT4YpAlCgRZTCiCkUw8IWQUIhphZ5RmNmFU60Ii4gGraJTl+g2IIYMiRGL8UqmkE8E6AiPA7r6TZsP5J73yWA3yAUDGKPmnftFfzfIAPBaMNBPEpp7ZIFaDAZktf0ypQFQ//Gyoc7ijXU+2fyLiMzdGmTfIM0Pluyver3gJpbtA13kynuLQ5aFRaiAmASCjAHSKUUC101Q1SXT1GtH191ZYtAYKahirGkqlIAQVJVCL1KAUDnYdC11iqhW7HDJEIOGpBhOTjViTIqPBcynAmZawMwImO8FzI8+zEGHNnHSzyWoPBtYKoNSqKSLUrDxzWEpl6TQMnhaWSLSRRlEpxnCYCzj4oKBaPurwLRnN55JnrGeVjxFnwKPycdtDzceLOfFU7Guteye1YPudKMr3P1znYTvH+6HklV74AcQTBDFSqBh4FAxsIwm/Xt9iaSWRmcwWa4T5yu+QCgSS6QyucqCccko/bfEqw+fvv1bZQNwALgAMgAlgKrUBNAC0AbQAdAFQAAsmYJoEB0CEIQIiAExIRZk9g4VOmy48BEiRY4SNVr0GDFjBcduOsyNZ+NDIBSJJdJkfUVKSUWaWto6ukhrxlP/c/UFZ1M+ipYHhv/Wu6rWNAzgK1M507qZHp5806rHWbJVFDrv0rtMMRqLwxNIZAqVRmcwWXDZhcMdF3kMgVAklkiT9RUpJRVpamnr6Favu29oZNwiHbveXdSExuLwBBKZQqXRGUwWzOMLhCKxRKqoXk/f0Mi4dUVNq9WpCY3F4QkkMoVKozOYLLjsONx4xBcIReIkkCaDIqWkIk0tbR3d6rX6hkbGIXTzjFriMJ7UGhShsTg8gUSmUGl0BpMFl93rcOMRXyAUiZNAmgyKlJKKNLW0dXSRqTt5lTHQWByeQCJTqDQ6g8mCx4ACSZIkBAC4u/vyjOPDBsvhqqobHZUAAAAAMMYAABjMmDW1tHV0kd8+rZSy3kW4Dqu1tgUuZQw0FocnkMgUKo3OYLLgO8ZWERERWcqac39/3CAj5+hD+tbK1fxtvx2HuY+8LiwBgKFe+jA0Mg5ptfahXdKDk7CoW9Al7BZ3imt91ITG4vAEEplCpdEZTBbM4wuEIrFEqvDmZji53yStUjf/IvQ96Ss+1mPBplVqXxGPrvLEht9Th2NNH9p00ipeTPWRx6oZgWck7fXKkCkLPDF8+vBpw6cODxs+hUOzoW8kNYNffvZpX/csAuv/4zNzwJrzehJdYNmejbNB1s3aWHxG5OuhRf0g8G3wgOtH0BZ9uhBYActiMJbCMhiUQVgqBaVGdpBYADOEja3ZLWVJFsOsC77zmSlXjHDgIgESiE6EtJqzGD+t/g0qz/+I9QCiisXSAAVBlhRjJyEYYtEdtLrBJoBPUbyQdRObTdG0vlyQ/jM5dPcTFCsWjkOriklrsrwSFCqEGw23BwrxoPAGgQBrC8KYehmwOyTOWJ5VfHy89OXjlUrTCjHNrUJ8DsoXEBgTa6BEIyYgQJ3pOhWCbrDSq3kzH5STqwVsIi8/R3GiiU5/LTAOcC71b/Z/XsA+OSNfpHxy04DmbRcAtwDk1yUBw6WAOKUE9N6T0XOu/KptEAIB7j8wDsl0q4ZJDULTEbATV6WVXxO00EaS2igiYOWgPxsWzHy1czCJLbEAWWbk3Xc7s3MvF2MrsGhsNZaAlWB12EHsW1XVVRuqnqkurC5ZWAC6wGKR2KHAPYcXYcuxqDMTf1/sAGwBqJBbBfy/7OH58LhkAIAP/7y09tLmS7FLokujFz0Xmy82XTh14RiAAGYCtjoJkBtFj1ROttYP630+dlLSr+467WffmTHtqvd96T27feBDt910y6dOgcgClyNPsRKlyqCgYWBVwaGiY2BiYc9z7lvqB3v8aM63pZDRzc6TzRycXNxYF2l9NapNB0iIHoM4HP+ejdvvku/d8a5PXPG7X/zhsrNBnTPhqL985XwZLpr1hjcDM++Mz5PpdYsd86pXvOYzaaBgMqRKlylbkXwFCiGVQ6iQqxoRXg0ygutI+Di4eCRoFlGRU9BQUtMysM/cFg/y8vEzadQ0e8OWRG90GtCrT79R7TSXotVhR/w015XkQ0DqQi4D2uIfvvQGcivQ/SUA+v4DQGsu0AwGUKSA1WhHmhRVDyY1znDKKaCtW9E025CkBWMUPysDyhoqCVsFZqQAWFCqL47DMCXmuACZYtTWTCoGtEZSM5I5ERRIUxDCjYsFBDi3y1hkirIa6lRuqEZXq3Z7IGITFfIG8jlbwKkDEBALEuc2FJrlUigcsmaDUgHiwBiYiYkMskVCCQDn7BvV2VF0iq1KZGhDO9tAlA/DRB++N0ATPcKBRBAhunRAdjZ8lcAo5H2T7pJrRKqtEGJvmPhxN8tjWPNeyTfoIF+AqtJZJtddp88AimQ3W204q2Mqt6w+RyL56EceLb49YFnu3aX9eDu7TATts4TUAJoNZlnYNNa0IV3TpY/AghVJ5R2yrIOilEFMNU0Izsw+fJz3mfsRthyya/1HlDkR8moGUjyh/9I2VlaqmFyUrzDmCQW1BYFaT0NkNjOIP/1efsut+Nvl5JkDMywtzjEVbRU9ciZwQGJ/oY6aB528d9CodFgSxmiqNA0UGFNGJFvLcvvI1n4k5Lmo6yhu6nXvuwQqYgwKCfliUzcZyM3Xs8oq3R7R4GmoZ9J5jaigrcrECNHGMIgbs9bAkqsaX2fQBTvds7IGSqGk3Psbx+3FNCqtikM6AvdmfIblS37+J1A8UhR3etMpEkUuk7eUn5bQYYqkwFef5xwv5d12ImOzAsPJ1R+ro12aig9cngnxxkyWni+6mqW68qmqWpxRTaXrrpVImfg8xat4SUe7xctYkJp/fFkZ8DC609Ufbe5ZkVu/MJafo0EeOP2VrhqokAK/R7Pt1ktTeYpcJmfatzbnfeeftMHGq3Tv6tKXU4OkoFxbnumGf0fgT4rKWorExkvOMTUzLDW6aC120DZCbRfkAaPM+gma45wVp2OO96eZwnN6STfUK7y4ZV0ShYrRDv7IFb6DyVw0ZBaUiUlQpCqhippc5k+lrMDq9oFaQTNryb/4T29Kkm2Hm7rpVW2u5d0FR/XUlKpH6Gb1OqR383lu31tFVK4M0V5ULOYtpbaAvG4nnPwfvUIwOcF3Lppuf6YnByQdEVVXe0ON7v7e73wFNd8BA/Ei2XOGDmV7yU3hTJuOOqghlYRrIz40AYzcNAYBWTe6/A24e6Se5RMfEYk30bMTf8sXd68I1lErMMtAJ6WjdfDS9JGCkh8GcZtBjrcHqARw5tUZdpNA/3pJUI4RifPsmie6Nt5/jtjlWLZ8jSzWBbWBi61pfl7tFk6DLEVCkWSr5Gg4uxiWrqELPY+kjOM48UxxDj4QyhjXTWmWfhpTRn9B3hygg44kVw04dpWrw6VgHUnhDZWHZnq0DDAByymSAfu60GKDxy1Ipb3ysW88mg2xF6iF+MMMgsyBPahJMdwkd1ZUuctlGq3vcZLvziPhnEb6oRHsHd8f+OPzZyreFvCH2jGJwlTpydMaER4cMm06SDbGS19lb5rXnwt296IZr79IqO3kGf3TY3vH5UU0HzBM8UuinhK+UJzz130tGRgtHcLIVk28xQbSrJNgXZhyHL5/qWFxrPrIyWuVEs6fsazs6nuGW69L3rqfedkfqIWnrVpgZPyJqOqD6zSuMix7o+5Z6slkj5h73hXmNO1oq1zFV7H3MkU8vwQKv+aweoFSt7crAnXpjclT+TzusIExtYE6DBxgu4M02pnLWF/N6zSza1yyHqfTnRC8/kJtf8aDp7n8ENvlQfyIuKY4SvgkkGgDodLI47uPj4x+CCrMpSrZaynl8tnmJ/R3Xcyt6K7NVFTUMd57S4VHw3UBXrTApTuQF2LcVyZHztTa1xQX4aEMw104EAvKtT9Yb2+9dW/zz5oNF6qR8tc3x8p0kMzXDQlm52x0EvnfJ0Nv7ewUy9FKvO2+O6vT1qw/TRqKnLs4LUnl56fmmNI4+vyswAW2WaD1vPTIC4hH5kQ7mibIRlOcXdP80H9+uFUJN8AWSt8sjuGGdP/fnpLV46nlVMu3RkHPNJaMSIybFsvsdmLsyRBd55ss86RcH+B4usQhd6hPkm0XrYE0XI/6WfQmXuubNzDlTU51Q6V6raIJ+jOHyS/4fSheTyYYLX/GHyt/WlfumwO1AR2pHzz4Y3wyEpmsv3YFrDs072Be1iLxDVXod/ONTjTSP4s6HG1dh+FrlpIwuxzK1KDIaNR5sOuMgHb93DCSvQ2CoZmnC1I2WcItL/RqM6SAYQnW0BFeoubbDsyFfcp5loyEhdzwu4vzSPr9/Ny4PIgiLJVG8YZaadIwfyubvsyacLeeV1Bk+p2ZeoTHQSTZciwDq9BdjXjvuEyOUoOVCktliMPtsuqvdMckUCp4p3aqvJeVyx478sbQefs8SjNcYQ/Uj2yQqA8ttnduZsquXNlmJMMzK3nFjPU3tKze7p84hEtRZUDx2kBUY5RG9dLpa82L/uIwuzB93KatakpAWM4PCmFeiAqBZUAdKBp0LnX1xtDHFquGeeM5nGu3XHsV5ll55rH5Vz5bZqZBkeH4OWoyckvJvVJVcqahf8JnkqHnQ9PPhFmOZbO2lPOs0q/mqmFWleZR+by3ONd3jEHiuPqAUkiYmTFkp9I2nw/X7Pz8GYeBDmiYNZw8N+49mz9Dm13o1jwFiq97M5DgUOmB7udmu+qrAY+OVLgAqiEaahhdrrJvny+V1wpzoTu6Y+d7XlR9VOMUJ9ezmjw8Xz8S/uoEo3ahjmRdsjz1UGW7mk/4rQFYylF9xt3YNX4P29mzedvUQU97GbrJc6G2e/7xiMO8Gs2faN3UNGyeQV2Bm7N+kAVHuc52IkNMjlB8cyRsE1zvsPxwT3O+geLV0VdFFbDkt1uqqpXbEnNiPuE8Pa3GSfl4ei7Q3mtrOrtnjdbD9G2bfNtk/boblc6ml+VvpP9So3f/3gXXQ/fKZvdZ6SaXF1H+m+Bx8ExtolsBdWBycNkkyHxpun3TtDn8SQrX0r4I+8OvJZuTBeJabu2PxPCNMHg2tFuhk3BEDrkBvOEeBZE1VGNIJxcEEjTDw2QsSRQGPxNc5fKNYhWYcr8KMbXQRH6lSOEfYDrBCnjT5khwZ0dHcOfGSJN6iBHxrAkSSWqpp4puWKSXj7lciolunZHhxqtU4iDh0brgMAuwI9wgQWPA1wsEHK4xBAncSNOm2uDW1pap46bQ3ciGyKlkPFnR6KYBncCutlcIhgdrCWpDjSQpWEtDmtnfA4kkEkNfV8kP+8M++wiHeK/m49SyVQOTA0snucFsapgcJvEvIeB5eMdUJLKzvZOlfDk6JB34gOp1B1exYMuJ9mG9dszt1IyN6h3KOFdUr2jIqHc99pSVjPNkmhCAl4wn5diZJwm/Vhi8Toz+7oGanERZ6ULpG71tv0IVeIBbduZn/SCcrCorzX/RQSS8S8UtkC3y7+JXhQSPRuRHghfPo1qbhiZh08nGpASV0Mg9L2leqiwcCYNX92jPbaCXbVuKqrbe2MOs/7yNvsy/JX0+gOX0Krvg9EqFMNkMdXesSyaS4BF4y9a62l0dHbU7N0daWupuyq5NdU0hk7emOxXj3XqTqUcvr9VOl3KsV39+KOzF0cnhVZOAEJtO3F8pAG/ZUhdSpYFhmiWPKvMjuXsjtVOdnZD4MJob1gVcO/v7XbueCkbq9G1KyVgwKB3rUOqOSzguF0vsZtmSiRru59SyP1Lw4X91u/hai5Qku7JsfXg9MHSIZU1atbA5LlY9/O/iBD5dU7eTr+muo11ZvzahUyRt1mhI7Okgq5PNrnoXLs7KuugSnq1ly/bN9QHy/sP/7/0fEFy0kA/h4U34ZSS8yF4rzX+S9KBDKIuplKpYj8BwBZ6MJ2terrRzv3MDCVwURmhon65tQP/ple6z+CRsull00FX8wMGkm3nRxZ3DugRFpT/dgMl2C2RKk5RHW3vfVRQr6+jWiEXhbh74Y0VihTwWRoRBQ657XKMddcZ5NKeDyuM5qVQnL+HUjS7WxLP2xfdF9yX2AU75dDt6ehF6CymbBmuOTSdOTmdOCzUdmvZ/P12/f1r4zSIUZOUuPScdzuy+aBu8y1Ovw+elOUtBorq26spwf2TalXBFq++/2Le7N/C8tqPsi4qO0prGCC6CeftTDAZhgXeE5aYaCvHdKj+mYMiB5hka+IwO4AB51+ChuMtkb3FFnrD26ccJOAOT/HIukd5SPwyG3k4LGEsspQzydqwXndEk1jc3jw/FL35eG3OarTFn7Xv6F+QT5JoQU2EIW+2wvoFVeEu/Rj1kt6uGejVmc6tWOBmol1XWHecwdcwan1hEdhkpdK6RVerCkdViP/rOnLHXCDTJxkZY5DW4MqJmDzmc7EEJUWqb1aJBp0M0JGEhP11LIzh4vBqHvBd0soqGc3J5OMcDUAO3DmhUeX1p+jUW86D2oB+HN5AZdD2V6OByiXYjjc4wMsoC1Sj1oBm8lxJpbEhC4LomtWjI4RQNwtLlFx90OthDtSQ/5QHOwdPqUGmZ1lDCpwRUwk29SkWfxSLt61IZ0csrTa/pV9kUAz1qo5+uIddY2Gyu0VHoNC2FEsJnkPzdjBM9oY30KN0FBR537rjcV8vrK1ttTclYaKtvATTc3KNRDtntykv0Z13XppMsCTTmYYM3aEwtBe8Q88k2I4XBVtFxPoLgXgAz+xewdzvAINVpddnLGpLVJvOf8Kp79KpPp5waJ8g/znEXjpzC2WbmHxIZRjzJLv+m8auAarBX6jmra1KIei12UV+TUqeIKDn9dgunNyKvcVLO4WwcDs56jULTUGqsHA7BpqEBLfiuceYBqK9E1y/oGkMnVqH1O0hOem9AKqtr6Qb9wASZawBzYG9TSV5J6X3vQmnJwsvL2yspe1haequs5DZoOjljY315YVl5QTk9XMsKMwb41HG8w/RfltKNayC6nF5AOZl497Y+L1GlIQc3zyUbkxc+LZCrr3uBRjsDzXwote7F+6ChEn3/1zLQn5K6jyVnZEMefuUG7lXqMIY6zm1Av+INN6SqAhzc2teG1iiH+jZa+vzimAKX49AIdh6PIJUSKfFXAIiP5iIfz70Ft6Q6j9kqzAEGnIkGaAMFeGs1zCRDqXXRXdMN/aWsnlnVuOrtrfPNmUZYJJSETLf4/88nst3y5hhbEKa7Kmi8hrz5xnkwD+d7MKuPuHEP/yFSl1aito9d1xfarCxzvTNCtyCcO5y43VuIpKOYgu5QBD77oIrO0vhwQHNfJapLsNSqOFMQlFNRBq0NxSJ70gX3X8JzdDK+UKcW3K8L0RR6EYuvl8iorjxvL00S0Mj4ngRNB6Bwq9tmSm/8r8aAyxqB48zrb2e+7dF4wPOpdS82zH96At0IgBZtnMDWanhPP7g4M5c4PBc9NBd7LAiyX5trfH3u3ZfnArsWsejU3P/54PanAGT9hF57vHdf/otX7j5/5av83nXHf0CDJcdKnclqeygzC0F9Tfzo+x+03GDTydqvecfOzDV/9D5KDboKtAL3ZpXw6bfMM7XuZ3e6nzF+Dy6uS3kx+4UpZMm772pLOXdpOoNF+/KWNP67NPo7/DjbLKMUPF2KMWJ/U0qM4JNHGQYi0cBgRFl8uj4Q1KdQPZFmqN5OILxbXf2uC9sLVHD3ZMSws6ODY4sjHo82UlmHuUN8j54+5nLRxyXG57v1Cv0r7NaBo2DNqiCY/u9ByPX23naZusgstlWBF6nRagxKI1DXrUn0dkXLsfPbSIQnG8ebCt9WOhMspamNJ47IJIrY24vrvznyeNTpNGdM1II8uCCI+XTWR9h6tKxGaTEKyZ/5KuUIS5miDekUUO0chSLSxt4QMyI8dUJu5a0uQvnByEk3HnbMjWQoY0yRl0+n6KyMeJkYdH9lpEgP/Dx2xf757eAfO5Z1tiRBNZwWrrALOjw1/1jxZLXTrlbanUq8Gl1aW4Qbmgj3ZwTilFFt6jePRFVFWGVMKIqr9PLWTgkgw00xviSCGNMHcU/pm5sFGn4r9kme4a65FNvYvAP2Cmu8xWDQtUrFLVq1tLlLbPCT5/AqMoXzc8FR4ZJDIZOUDx34zcPRTHnXplj4tNOXBdhwRx9LEZDIFZE+rh04QJTFkUsq2eju8OkDGr4woNXT9ZVteFyL60ZL17cyRB6hSORvZeoNURZHJLSyfq/1aqlFxuJZVFKJWcVjmWUgd8Yc5UtLG8Ov1TXFtfwWzFOx38xlVWtfSn1FZRi1CZIWjVbaRIxrVTgnxVXhA8W7FCcebENwffAfyJrBIJj+90FIVcPE+vDo/cpIER/4eeSK/fWbwd92LOtsTgJKnuAiBavvmgAAqCxiIMrhcGE/5nPtAlpMpaZGZROXa9N4VK2ixv6HwzZRuC6liuemkLhulZLnAkvLxsf0YNcU1qTyBqsMRhroMzkyC2vDy1QMeloRgolFMX3unPoVt0h6p1FM3GS5efVNpEsmnf7NCD7KF1nZr5pK1v2AxHCQhdSlVQhBKctZ+QeR2KxCRQ7yEOQ3K0oeIosKnzMWP/nIAIZ4jlNdc8VWTgW+J7Z/nnf/aoP6a5r+Oc/oE/4p8EU+6oO7X5hKv1aXYIcxmDZs4cKTD+WV/3rDfDlL78T8+ckkx1TNNxpFKq8TfJ4v0vHQISG7yEdWq3A0rKpw+RhtuoDJ90Bq7x1+IJJOMEgSj02jRT+CwTyKxoxisMNAUfZ2wgd7o20ibCZKnTngy3yrR8kTufU2q0cv4nmUFnXVSxWVu6qqn6ms2FCVrHSWV6gqK1UV5c4DOquczbEqdTqrksO2ycGWfOydDWO06XwWzw1C9w4fkEjHmSSJ26YXafnoWiGr0EdWz6MvYMbQmBHMt4RHwTuXpgMnB105CG1FhRZBKn5VgO8Xn271ngYrRzk1ZeMVugoESLtDB5aPHNEVJyf6r8mGtR6BXW1Nucq4VMF7afOk5n6LSbnWCrvGuPizRhz/zII3yMDw9GGHViYw62UUFentIELSaXJoW/jiBoVcHG7m6PKESG5FBRdZsf+wTAcgu2JgF2DPQAwbDjt1UqFVJ6H+sydQQen6EtEskBDJLrY2X/QkQZHdwFQUTIHZd9A5+9DofXC2kORDqATSkYZnL3c/doRxrufRIxlv0MrNu1TWzPfsa5gkbUpRagLORdOWKb52T4aaM/7jHmbN4+9nSiwBcr0FWmVjAU4Jlntjbws1AtGC9/QC4CVsiK17ode33gfOJs5Z11K3B4LUbdLruehF6wbqFq+HutW6nq4CTySiDJVlvXE83kaYZcPt6A3LWuq2YGBUyocGRB4m8bm7nEBeT48WIXBjPblBjx5tdaK++0TwlNyT1xPg3H2OyAxHWwzu3FoPFlg8FpcJseo9OcE41s3XDdBckjpW8Jtql1q3odLiRlmYxOdSOYHXXXt0CFCbWPVW0HfSFwSziUd370lv8C3wzrT4dKvn9KzkdMucZaYDJbn/ue97n+1dJ/sPDBwCA4BFfuF779R8H0n/4wE1+fhe3dmM25F7KIAea3tLO7lY91pLCzuTE3rptsat2oEJhe3B5ec+Vd+6TGgPrBO2tYqe8vtJSo/rRAFCbfHFxc93o2JXVHGZsFNvELZLTKWMymIGvbDzvzOCm6om4g10Ro1WQ6TS1IQaHYNOMGiIgp6aru9qvFDEeBEWggyKXQ72SFD3/ih0MNgPIDmyCIPv5VOx2ra0Zn3P0WwUnkysvl+Foq2dfP4f2uDBfydfWMLGVtDpBgeJxfcSmUYWiawzK2dNHLumE0s/xWEHsRpZTVAQqQ+sf8ENZv9TxcTCZrVW2BQTqQRfVdnzXfmsfGf+io/DijBAhUT+quBaZ8U7Z9/j/4DHij9X5S2xGqWWmCfMMWH/3mEoO6QjkqjIGszT5ao8U4HTx9VGg43/cKy4/5YO9bu5KNZj1VjRF7NrrQaFHng2TMkOB2Lvq3SGhYDZWbZgjsTfNRYEz2bZVgriccEKm02wkqRKWCtYupKsICum7RR62YxaqZQ/lR62kBXghL/XIL75DoVky3QioVzPRlZdXa4v/3RRUMis8y41m1b6/OaVFPN4lpkdvw8SoYD/iihOtljIcZEYWy3mOAUSCWYzJS4WOWZLO+RxZQOfH1Wo+I3kKhUab1Qp+NFvIaIR38l4hoI6u1nbp5S0Mtq28IufLyp+pZQD6icP0C3fTN1ZMJTO5QfCZruZH55yTa1oJlp23Tn+y/rslHMKfPYR4S5BRSAsmudtKlw3IUk7XY8Mo1ABJKIFS3WA2rN3XHdAov4z12dOsX/rAxAwrYJMI2K/5E2rfJPrZjGcbP5z7HAzODwXg+lgsZlOF+tgZUu47rmjlBQapZBCKqTQisybovWjscZDaq9vjccXPvNcJDQKsKXaJqJcPRVAHjXzhLMWHoWo5tiMBdMGGlHLDPTGOuQhwvaPgpUnzCye8BcaCTFmLggWNzbLeFx3nNk7OeAdAMvh/pUR886ODvPOFRGfME63uvU+4h+SWZzQp2eNuVyscb9OjJ9D/+knGG2BOPPVbNkXss8n6VsRjL2QUPHqGlgKWR2TF9Y2ZnLPstgKtSCw7okUVcmximg2pUFdrS0PXwtfrfQMe4Ae78N8s7RH8Y0r7rr1mWpCNd6pnFDePL+9+9uloOrytCNOA/n6/e792V9QD24wCjxLPeDbhMcz6vF6hCN0H6NgAHge93wzVXyguPgnNONAkbD4fFHJuV2nkqIDoLfJvd69boZCwJP1oYatAWjD5rRtG/jlbzL8kD9W4YbtwCd37HfM8Az7DfAnt7m3ARnW0+lxd+z27AZPHsVcZhw13S9E/uxyVuLM10hUdbX7EK4IeVLtouPNX4DHBl8y1G8xPLfJENlqABlwa6gH9P0/qV90JLSKNJ1s3OUqT5sJ+nsGjbPTbXPTj+UxjFSilcUhWowUBsNAEYfDsqEGKt2A/45CmcHjf87eyQYd17JJEANnok0lyEnvJB637x2sHfo752QmiTTjW+k7/9uJu7k0N1irp7if15ycb42vZG9Jo8hXFUBvKl2Y+Tqlt5fz3s6fBkT1ZYVl5flrHswfChTcFa5YNTC8CvwpHFw5sGwlgGpXLYUtGlsZv//MLYKtXgreZnEc1YdI4cpfa2p+rQyT9tqrwbME5LVpJGr6GhJ17U0U8s1rSXwNAY8n1AAHC62v4+fm5emM9B1nMZX8CX1uwa9VxogSpEp8Ih/IPFJ85hD+n+ycwt3F5QIdyvD5F7abSFIx+JKA0rcChTTewkmk8RBQQlYlCKCd/73uQyb1gZ2p/3o19Z7m1Ie+GlgAYQr32yb7RDtPGxvjeWwJz2NSVvb4D+oJNHCvvshQg/eFvcGqBhfAcm/bOO3sMMexExzX/AwMLIBHbbY+qgEADewtzmbvczbrscUqDEpll7R1/yV09YO1Kf7dtPpehxQPz4wuPIzo+5O/IuYU939Y9eBcZdCtenGj96ZqD1rx3zIw7fGqAboTD56SGLhXV9shedbGGqILiOaoGUOjZ4zy6FXQIQs4YMDcZ6znVvc/p6senKL02K0IgI6ZMCLd9C4d+/fIPjr5X3TpG9Flo6MrBkRXDo6umthpdVsAbWcz8P9XiW6hX/Kt9jYe327vYO2XgO/kuyJTYwg6uhjn5SAA7WzN/EBjzsD2fMK38ThZcJc2hk0b28q2ke3pwt7rf89RWVbk5XWKQhxYfyq72JdkXH/pCP0+yK3wBLPsq/hTxS/91vU6rhIdd2BJjxfH+tnRdoXVDi3MaAn2U22gUO4Z3Q5wpxsL7tchqY3AsJ97fUSVjHhloq5qAsw+Uc9Pl1L+fa7+y8YBLPkbAB2ActvpIXyCr+S9fFunftTL2PvbL5TRqIn4DcGL7ikgC4jAHb/aOdLr/KinZenfe7pQgZd6JuEreW+wn/P+tUFnAp/gK01T8HgvT3C7OrQk4fv5Yb6b36B7BxmDFtJhxteYiL/A35AIVwIeLEcwgfQbSbjfAhmX5Rn3X8fHuNTdf8mJe300+M/3Vqo2WidHczRFAzFlEs6+ATDX7ZYzEd/PD59+t4xKW8mSsoXVhM4RXw2UUZIkbCHjQuguRkToyg2UicRE/dH3XqO9hQh4tSlFQFb3JkKLtpBALgsR2+5elt1yIyvhE6XzkvtfRh3HzfwliYkIH1+6rxFb7MDBKpJGukNEaCitBGkz2BL61DPvnbl10wS3J4/c+x4abeLuiAbVa8QByOl51dynfKdVLvXlTiroSt4l9Xn/w2eLLi2/knWuyv2Eueae22GgzHdtu0EEr44Es8rqurYf320zqtvee2/SOFsnqzIclQYCKMBjF//74ObJ/jVTmi8B3v2D3wYAH/yyWLbgufgH29kGaAsKIMBtUb82aJ15Pf93w2wgot/hdCzPaNq7MmOj+f5U5VShHUXFD1XWQj9nQ0Srcb5Pbo9XDEQTuKdCytcqvHSRDvGLhZbdd9w87fzhqF4BAhgPre4s475L3ckFHenchDW27PIU577loV/Fd8tsnj9VuUpWOUvmo+JqtMEQBnXPIsTtNEMDUBvVU/wwhECjkHMiyKYxSwlqIsy++m3hfvJy9d+K7v4yID5P4xfjPKFUAM5fh+BpIYh7zmvJw2gO0R+jepqOooRe+WUKxiaIT14osxkqK98eUgbL+DDyJXJ2FXWp2ErUdhCNBznceOdexKkIJ0YdWkULro9ev2oqbaAWRuZi5CbuK+l56BCIdSoqjtBjkPXatLQSVIZYBX+zlMgkOHs9p9E9SsZH0Uj+cVYL+BV1fwfTdTVlMZSHtGU2EEMoEpa6p7IjcgOs7Berp1PKNyQrN8lbUN+9j353tI14kTAC0NqclEcV1UZwOK1VxMIstJjeRTV55ebEIqwCe+VWweTYJaofe7W4EJnjPc4F1K3GHV3ZGFyHjJ9ehHAaZeRStCBClWsaAmFClrGxtl3BDJhjyCyXqAK/MQMG9XnK6s/9/UM+L/GY7P6/dRAY+1YYVoD6cLbJpfCVBtNyVs+9s7vzDeZmTC1IrpCVi9TVLJnsus7JAgHSUZ00elJwG4hIN6zX1TuHy7U6AO4Ia3skBKkMhPb5vSNTyOwZCjsyVYWpI9MQLDkyl4CJ5nPGEQWyVbsJeGlzi0c78CzsmJcCduqxSEw3s0FJ7tIuIai52KqtRrtiU8KhEW3gDA7q17wZy/YGsYyJvQZIMNOCCYftFQ4mZLBU7BLsaWBr74U4Gdh0XXXTSi8QA6r7lYs9uqnCwcDaXfWQLOXg5KC/DjRSD7bixe0S029VK1ZhqlaPXmM4K9IcI5Dj0FfR5oaa0PVe7NGRdELaUxtyFzgCB2x7kutKrdqFxSHxrBMeKjE1F+l3atKpg926NeNYs7WlsB1kUNEjqltwfJPTETDa90HNiHtbwjvWq0HQhOgqkmb7/eBHZBRUND854KBD6KXcvlpqwblZ84FbHbPBu97DdRMP/8bWzsed0OYkMQlpnHqdnE77EjvSfS+yg55BD6NrTHpdMdr3yJ+H/tmgYSPBDLGXmrY3xH5zR3mMmbDYuJdMep/XLT5+AY8JqrXEMsstFRJWJ+KGL9Tbapui23LNW1r/U0ZClZ726ZCO6ZTO6ZKu6ZbuFVRYUcWVVFpZ5SGqCBmqytBhwlZVdbjwkubd9XdqIkSMFFlKJiqQpxLam2B2qbbT1x6RI00hZdRo8qP7wIc04LI1iFJQ+ca3PvKxT3zqdW/YY69UWXAyPWqNJzzuSSs1+tMqu6VnqtWeD1Ou22Z9BqsKxjOm3NR3sWTEjhM3XvwECRMlTpI0mbWCnzhtdvF08f7m4Wb4UHc7i8VTs7gsdmY7o6sn0eXzWNM5ZQ5XKGACK/2fvKsZbEnr6W7+LgZHenTGg9PSyUq/oxqQ8fZhUf9A+yjcOU4heAiceu3vbu/WmbrUXRMwo5jvCivQWRiwzsTwAhhkFAYAbP4AbJ6lMICJ1T0WFMC7AgATAAPACwCAAnjJAGAAAAB4ATdNsjRiwjkR7mU5LCEPqvV8LKtZpfeSsxMPEARHPxtatQ95TP0PcjLpxnSw330K2U1y2PzspZwq1t/fMzLUm6keHgfcSS5LBLcVZv7Pf1qb/xs6sl9KDA3iDHCOLSCvQJ052N7V9LaMN5sj/KxWG+AB"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/gusid?r_c_id=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.539Z","timestamp":1785145406539,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"OPTIONS /v1/lst/gusid?r_c_id=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434 HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: fp,fp-data,product-id,ref-url\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:26 GMT\r\nContent-Length: 0\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS\r\nAccess-Control-Allow-Headers: fp, fp-data, product-id, ref-url\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nAccess-Control-Max-Age: 86400\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":544,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":95,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":95,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-10854757526\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.431Z","timestamp":1785145405431,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=AW-10854757526\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:25 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 09:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 155547\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":450200,"size_decoded":156177,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (5422)","md5":"95bc8ac262143be8430535f5831f7caa","sha1":"870f365a97b2d40220fad1848c1241777e28202f","sha256":"b79a7c28774208207f6c6083fa6d8af0f7b80ace8edb8b4282cc131cde10859b","sha512":"c7437617d0e39862efc10eb5aee6924894d335bf69397528f56038679e3cf910f1d81e1949e2ed4c14f0e307359fa48faf7609c32f4f578a6f9cdf62c7b89beb","ssdeep":"6144:9iGcU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+TGa1oXxH:9iGpYqP69V3KqX1OxH","tlshash":"9ba409cdb3d670629392f478503f018ba57a29e2f448c899f189dce42e7465a8277f7c","first_seen":"2026-07-27T09:44:08.326795Z","last_seen":"2026-07-27T14:04:41.079693Z","times_seen":4,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiNSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifV0sCiAgInRhZ3MiOlt7ImZ1bmN0aW9uIjoiX19vZ3RfYXV0b19ldmVudHMiLCJwcmlvcml0eSI6MTcsInZ0cF9lbmFibGVPdXRib3VuZENsaWNrIjp0cnVlLCJ2dHBfZW5hYmxlU2Nyb2xsIjp0cnVlLCJ2dHBfZW5hYmxlRG93bmxvYWQiOnRydWUsInZ0cF9lbmFibGVIaXN0b3J5RXZlbnRzIjp0cnVlLCJ2dHBfZW5hYmxlRm9ybSI6dHJ1ZSwidnRwX2VuYWJsZVZpZGVvIjp0cnVlLCJ2dHBfZW5hYmxlUGFnZVZpZXciOnRydWUsInRhZ19pZCI6MTZ9LHsiZnVuY3Rpb24iOiJfX29ndF9jcm9zc19kb21haW4iLCJwcmlvcml0eSI6MTcsInRhZ19pZCI6MTd9LHsiZnVuY3Rpb24iOiJfX29ndF9hZHNfZGF0YXRvcyIsInByaW9yaXR5IjoxNywidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTEwODU0NzU3NTI2IiwidGFnX2lkIjoyMX0seyJmdW5jdGlvbiI6Il9fb2d0X2Fkc19kYXRhdG9zIiwicHJpb3JpdHkiOjE3LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTY4MzAzNDU5MTUiLCJ0YWdfaWQiOjI4fSx7ImZ1bmN0aW9uIjoiX19vZ3RfMXBfZGF0YV92MiIsInByaW9yaXR5Ijo3LCJ2dHBfaXNBdXRvRW5hYmxlZCI6dHJ1ZSwidnRwX2lzTWFudWFsRW5hYmxlZCI6ZmFsc2UsInZ0cF9hdXRvUGhvbmVFbmFibGVkIjpmYWxzZSwidnRwX2F1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIjpbImxpc3QiLFsibWFwIiwiZXhjbHVzaW9uU2VsZWN0b3IiLCIiXV0sInZ0cF9pc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvQWRkcmVzc0VuYWJsZWQiOmZhbHNlLCJ2dHBfYXV0b0VtYWlsRW5hYmxlZCI6dHJ1ZSwidnRwX2lzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyI6dHJ1ZSwidGFnX2lkIjoxNH0seyJmdW5jdGlvbiI6Il9fY2NkX2Fkc19maXJzdCIsInByaW9yaXR5Ijo2LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTY4MzAzNDU5MTUiLCJ0YWdfaWQiOjI5fSx7ImZ1bmN0aW9uIjoiX19jY2RfYWRzX2ZpcnN0IiwicHJpb3JpdHkiOjQsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDg1NDc1NzUyNiIsInRhZ19pZCI6MjJ9LHsiZnVuY3Rpb24iOiJfX2NjZF9wcmVfYXV0b19waWkiLCJwcmlvcml0eSI6NCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTE2ODMwMzQ1OTE1IiwidGFnX2lkIjoyN30seyJmdW5jdGlvbiI6Il9fY2NkX2VtX2Zvcm0iLCJwcmlvcml0eSI6MywidnRwX2luY2x1ZGVQYXJhbXMiOmZhbHNlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTY4MzAzNDU5MTUiLCJ0YWdfaWQiOjI2fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5IjoyLCJ2dHBfaW5jbHVkZVBhcmFtcyI6ZmFsc2UsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMDg1NDc1NzUyNiIsInRhZ19pZCI6MjB9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5IjoyLCJ2dHBfYWNjZXB0QXV0b21hdGljIjp0cnVlLCJ2dHBfYWNjZXB0Q29kZSI6dHJ1ZSwidnRwX2FjY2VwdE1hbnVhbFNlbGVjdG9yIjp0cnVlLCJ2dHBfYWNjZXB0VXNlckRhdGEiOnRydWUsInZ0cF9tYXRjaGluZ1J1bGVzIjoie1widHlwZVwiOjIsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInVzZXJfZGF0YV9sZWFkXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJtZXRhZGF0YVwiLFwiaGl0X3R5cGVcIl19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJmb3JtX3N1Ym1pdFwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfX1dfSIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xNjgzMDM0NTkxNSIsInRhZ19pZCI6MjV9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5IjoxLCJ2dHBfYWNjZXB0QXV0b21hdGljIjp0cnVlLCJ2dHBfYWNjZXB0Q29kZSI6dHJ1ZSwidnRwX2FjY2VwdE1hbnVhbFNlbGVjdG9yIjp0cnVlLCJ2dHBfYWNjZXB0VXNlckRhdGEiOnRydWUsInZ0cF9tYXRjaGluZ1J1bGVzIjoie1widHlwZVwiOjEsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNvbnZlcnNpb25cIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19LHtcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInVzZXJfZGF0YV93ZWJcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19XX0iLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA4NTQ3NTc1MjYiLCJ0YWdfaWQiOjE5fSx7ImZ1bmN0aW9uIjoiX19jY2RfYWRkXzFwX2RhdGEiLCJwcmlvcml0eSI6MSwidnRwX2FjY2VwdEF1dG9tYXRpYyI6dHJ1ZSwidnRwX2FjY2VwdENvZGUiOnRydWUsInZ0cF9hY2NlcHRNYW51YWxTZWxlY3RvciI6dHJ1ZSwidnRwX2FjY2VwdFVzZXJEYXRhIjp0cnVlLCJ2dHBfbWF0Y2hpbmdSdWxlcyI6IntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJjb252ZXJzaW9uXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJtZXRhZGF0YVwiLFwiaGl0X3R5cGVcIl19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJ1c2VyX2RhdGFfd2ViXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJtZXRhZGF0YVwiLFwiaGl0X3R5cGVcIl19fV19fV19IiwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTE2ODMwMzQ1OTE1IiwidGFnX2lkIjoyNH0seyJmdW5jdGlvbiI6Il9fcmVwIiwidnRwX2NvbnRhaW5lcklkIjoiQVctMTA4NTQ3NTc1MjYiLCJ2dHBfcmVtb3RlQ29uZmlnIjpbIm1hcCJdLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19yZXAiLCJ2dHBfY29udGFpbmVySWQiOiJBVy0xNjgzMDM0NTkxNSIsInZ0cF9yZW1vdGVDb25maWciOlsibWFwIl0sInRhZ19pZCI6MTJ9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZHNfbGFzdCIsInByaW9yaXR5IjowLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTA4NTQ3NTc1MjYiLCJ0YWdfaWQiOjE4fSx7ImZ1bmN0aW9uIjoiX19jY2RfYWRzX2xhc3QiLCJwcmlvcml0eSI6MCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTE2ODMwMzQ1OTE1IiwidGFnX2lkIjoyM31dLAogICJwcmVkaWNhdGVzIjpbeyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmpzIn0seyJmdW5jdGlvbiI6Il9lcSIsImFyZzAiOlsibWFjcm8iLDBdLCJhcmcxIjoiZ3RtLmluaXQifV0sCiAgInJ1bGVzIjpbW1siaWYiLDBdLFsiYWRkIiwxMywxNF1dLFtbImlmIiwxXSxbImFkZCIsNCwwLDEsMTUsMTEsOSwyLDYsMTYsMTIsMTAsOCw3LDMsNV1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fY2NkX2FkZF8xcF9kYXRhIixbNDYsImEiXSxbNTAsInciLFs0NiwiYUIiXSxbMjIsWzMwLFsyMCxbMTUsImFCIl0sWzQ0XV0sWzIwLFsxNSwiYUIiXSxbNDVdXV0sWzQ2LFszNixbN11dXV0sWzIyLFsyMCxbImciLFsxNSwiYUIiXV0sImFycmF5Il0sWzQ2LFszNixbMTUsImFCIl1dXV0sWzM2LFs3LFsxNSwiYUIiXV1dXSxbNTAsIngiLFs0NiwiYUIiLCJhQyJdLFsyMixbMSxbMTUsImFCIl0sWzE2LFsxNSwiYUIiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzM4LFsxNixbMTUsImFCIl0sWzE1LCJtIl1dLFs0NixbMTUsIm8iXSxbMTUsInAiXV0sWzQ2LFs1LFs0NixbMzYsWzE1LCJsIl1dXV0sWzUsWzQ2LFszNixbMTUsImsiXV1dXSxbOSxbNDYsWzM2LFsxNSwiaiJdXV1dXV1dXV0sWzM2LFsxNSwiYUMiXV1dLFs1MCwieSIsWzQ2LCJhQiIsImFDIiwiYUQiXSxbMjIsWzE1LCJhQiJdLFs0NixbMzYsWyJ4IixbMTUsImFCIl0sWzE1LCJqIl1dXV1dLFsyMixbMTUsImFDIl0sWzQ2LFszNixbMTUsImsiXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbMzYsWzE1LCJsIl1dXV0sWzM2LFs0NF1dXSxbNTAsInoiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsyOCxbMTUsImFDIl1dLFs0NixbMzYsZmFsc2VdXV0sWzQxLCJhRSJdLFszLCJhRSIsZmFsc2VdLFs1MiwiYUYiLFsieCIsWzE1LCJhQyJdLFsxNSwiYUQiXV1dLFs2NSwiYUciLFsyLFsxNSwiZiJdLCJrZXlzIixbNyxbMTUsImFDIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRyJdLFsxNSwibiJdXSxbNDYsWzZdXV0sWzUyLCJhSCIsWyJ3IixbMTYsWzE1LCJhQyJdLFsxNSwiYUciXV1dXSxbNTIsImFJIixbMSxbMTYsWzE1LCJhQyJdLFsxNSwibiJdXSxbMTYsWzE2LFsxNSwiYUMiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXV1dLFs1MiwiYUoiLFsidyIsWzE1LCJhSSJdXV0sWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFIIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbMTYsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzZdXV0sWzQzLFsxNSwiYUIiXSxbMTUsImFHIl0sWzMwLFsxNixbMTUsImFCIl0sWzE1LCJhRyJdXSxbN11dXSxbNDMsWzE1LCJhQiJdLFsxNSwibiJdLFszMCxbMTYsWzE1LCJhQiJdLFsxNSwibiJdXSxbOF1dXSxbNDMsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdLFszMCxbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSxbN11dXSxbNTIsImFNIixbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sImluZGV4T2YiLFs3LFsxNSwiYUwiXV1dXSxbMjIsWzIxLFsxNSwiYU0iXSxbMjcsMV1dLFs0NixbNl1dXSxbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sInB1c2giLFs3LFsxNSwiYUwiXV1dLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzgsIm1vZGUiLFsxNSwiYUYiXV1dXSxbMixbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSwicHVzaCIsWzcsWzE1LCJhTiJdXV0sWzMsImFFIix0cnVlXV1dXV1dXV0sWzM2LFsxNSwiYUUiXV1dLFs1MCwiYUEiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsxLFsxLFsyOCxbMTUsImFCIl1dLFsyOCxbMTUsImFDIl1dXSxbMjgsWzE1LCJhRCJdXV0sWzQ2LFs1MyxbMzYsWzgsInVzZXJEYXRhIixbNDRdLCJkaWRCbGVuZCIsZmFsc2VdXV1dXSxbNTIsImFFIixbOF1dLFs1MiwiYUYiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUIiXSxbMTUsImoiXV1dLFs1MiwiYUciLFsieiIsWzE1LCJhRSJdLFsxNSwiYUMiXSxbMTUsImsiXV1dLFs1MiwiYUgiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUQiXSxbMTUsImwiXV1dLFsyMixbMSxbMSxbMjgsWzE1LCJhRiJdXSxbMjgsWzE1LCJhRyJdXV0sWzI4LFsxNSwiYUgiXV1dLFs0NixbNTMsWzM2LFs4LCJ1c2VyRGF0YSIsWzQ0XSwiZGlkQmxlbmQiLGZhbHNlXV1dXV0sWzUyLCJhSSIsWzE5LFswLFswLFszOSxbMTUsImFGIl0sMSwwXSxbMzksWzE1LCJhRyJdLDEsMF1dLFszOSxbMTUsImFIIl0sMSwwXV0sMl1dLFszNixbOCwidXNlckRhdGEiLFsxNSwiYUUiXSwiZGlkQmxlbmQiLFsxNSwiYUkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50cmFja1VzYWdlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyJdXSxbNTIsImoiLCJjIl0sWzUyLCJrIiwibSJdLFs1MiwibCIsImEiXSxbNTIsIm0iLCJfdGFnX21vZGUiXSxbNTIsIm4iLCJfdGFnX21ldGFkYXRhIl0sWzUyLCJvIiwiQVVUTyJdLFs1MiwicCIsIk1BTlVBTCJdLFs1MiwicSIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsInIiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbInEiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFsicyIsWzE1LCJyIl0sImNjZF9hZGRfMXBfZGF0YSIsdHJ1ZV0sWzIyLFszMCxbMzAsWzI4LFsxNyxbMTUsImEiXSwibWF0Y2hpbmdSdWxlcyJdXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRVc2VyRGF0YSJdXV0sWzEsWzEsWzI4LFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl1dLFsyOCxbMTcsWzE1LCJhIl0sImFjY2VwdE1hbnVhbFNlbGVjdG9yIl1dXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRDb2RlIl1dXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwidSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsInYiLFs1MSwiIixbNywiYUIiXSxbMjIsWzI4LFsidSIsWzE3LFsxNSwiYSJdLCJtYXRjaGluZ1J1bGVzIl0sWzgsInByZUhpdCIsWzE1LCJhQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJCTyJdXV0sWzQ2LFs1MyxbMixbMTUsImFCIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNOIl0sdHJ1ZV1dLFszNl1dXV0sWzQxLCJhQyJdLFs0MSwiYUQiXSxbNTIsImFFIixbImQiLFsxNyxbMTUsImUiXSwiQ0siXV1dLFs1MiwiYUYiLFsxLFsxNSwiciJdLFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dLFs1MiwiYUciLFsxLFsxNSwiYUUiXSxbMTUsImFGIl1dXSxbMjIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhSCIsWzM5LFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1oiXV1dLFs0NF1dXSxbNTIsImFJIixbMzksWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiREEiXV1dLFs0NF1dXSxbNDEsImFKIl0sWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl0sWzQ2LFs1MyxbNTIsImFMIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNZIl1dXV0sWzIyLFsxNSwiYUwiXSxbNDYsWzUzLFszLCJhSiIsWyJhTCIsWzE1LCJhQiJdXV1dXV1dXV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyMCxbMTUsImFIIl0sWzQ1XV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFLIixbImFBIixbMTUsImFIIl0sWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFszLCJhRCIsWzE3LFsxNSwiYUsiXSwidXNlckRhdGEiXV0sWzIyLFsxNyxbMTUsImFLIl0sImRpZEJsZW5kIl0sWzQ2LFs1MyxbImgiLCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsWzE3LFsxNSwiaSJdLCJBRSJdXV1dXSxbMywiYUMiLFsieSIsWzE1LCJhSCJdLFsxNSwiYUkiXSxbMTUsImFKIl1dXV1dLFs0NixbNTMsWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFs0NixbNTMsWzMsImFEIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNaIl1dXV0sWzIyLFsyMCxbMTUsImFEIl0sWzQ1XV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJhQyIsWyJ4IixbMTUsImFEIl0sWzE1LCJqIl1dXV1dXSxbMjIsWzEsWzI4LFsxNSwiYUQiXV0sWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdXSxbNDYsWzUzLFszLCJhRCIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJEQSJdXV1dLFszLCJhQyIsWzE1LCJrIl1dXV1dLFsyMixbMSxbMjgsWzE1LCJhRCJdXSxbMTcsWzE1LCJhIl0sImFjY2VwdEF1dG9tYXRpYyJdXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1kiXV1dXSxbMjIsWzE1LCJhSCJdLFs0NixbNTMsWzMsImFEIixbImFIIixbMTUsImFCIl1dXSxbMywiYUMiLFsxNSwibCJdXV1dXV1dXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbNTMsWzIsWzE1LCJhQiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDVyJdLFsxNSwiYUQiXV1dLFsyLFsxNSwiYUIiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKUCJdLFsxNSwiYUMiXV1dXV1dLFsyLFsxNSwiYUIiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ04iXSx0cnVlXV1dXSxbInQiLFsxNSwiciJdLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2ZpcnN0IixbNDYsImEiXSxbNTAsImYiLFs0NiwiZyJdLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZCJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImciXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiZyJdLFsiZiIsWzE1LCJnIl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2Fkc19sYXN0IixbNDYsImEiXSxbNTAsImciLFs0NiwiaCJdLFsyLFsxNSwiZiJdLCJBIixbNyxbMTUsImgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfdGFza0VuYWJsZUVuY3J5cHRpb24iXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaCJdLFsiZyIsWzE1LCJoIl1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIkFRIl1dXV0sWzIyLFsyMSxbMTUsImkiXSxbMTcsWzE1LCJlIl0sIkQiXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJLSSJdLFs0NF1dXV1dXSxbMjIsWzEsWzIwLFsxNSwiaSJdLFsxNyxbMTUsImUiXSwiRCJdXSxbMjgsWzIsWzE1LCJoIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiS0ciXV1dXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwiYWJvcnQiLFs3XV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fZm9ybSIsWzQ2LCJhIl0sWzUwLCJ4IixbNDYsImFMIl0sWzUyLCJhTSIsWzMwLFsxNixbMTUsImFMIl0sWzE1LCJyIl1dLFs4XV1dLFs0MyxbMTUsImFNIl0sImV2ZW50X3VzYWdlIixbNyxbMTcsWzE1LCJnIl0sIkgiXV1dLFs0MyxbMTUsImFMIl0sWzE1LCJyIl0sWzE1LCJhTSJdXV0sWzUwLCJ5IixbNDYsImFMIiwiYU0iXSxbNTIsImFOIixbMzAsWzE2LFsxNSwiYUwiXSxbMTUsInIiXV0sWzhdXV0sWzIyLFsxNixbMTUsImFNIl0sImd0bS5mb3JtQ2FuY2VsZWQiXSxbNDYsWzUzLFs0MyxbMTUsImFOIl0sWzE3LFsxNSwiaSJdLCJBSiJdLHRydWVdXV1dLFsyLFsxNSwidSJdLCJCIixbNyxbMTUsImFMIl0sWzE1LCJhTiJdXV1dLFs1MCwieiIsWzQ2LCJhTCIsImFNIiwiYU4iXSxbNTIsImFPIixbMixbMTUsInciXSwiZmlsdGVyIixbNyxbNTEsIiIsWzcsImFRIl0sWzM2LFsyMCxbMixbMTUsImFRIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFPIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWyJ2IixbMTUsImFPIl0sWzE1LCJhTCJdLFsxNSwiYU0iXSxbMTUsImFOIl1dXV1dLFs1MiwiYVAiLFsyLFsxNSwidyJdLCJmaWx0ZXIiLFs3LFs1MSwiIixbNywiYVEiXSxbMzYsWzIxLFsyLFsxNSwiYVEiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJhTiJdLCJkZWZlcnJhYmxlIix0cnVlXSxbInYiLFsxNSwiYVAiXSxbMTUsImFMIl0sWzE1LCJhTSJdLFsxNSwiYU4iXV1dXV1dLFs1MCwiYUsiLFs0Nl0sWzUyLCJhTCIsWyJtIixbImwiLDAsMi4xNDc0ODM2NDdFOV1dXSxbNDEsImFNIl0sWzMsImFNIiwwXSxbMzYsWzUxLCIiLFs3LCJhTiJdLFsyMixbMjAsWzE1LCJhTiJdLFsxNSwicyJdXSxbNDYsWzUzLFszLCJhTSIsWyJrIl1dLFszNixbMCxbIm0iLFsxNSwiYU0iXV0sWzE1LCJhTCJdXV1dXSxbNDYsWzIyLFsyMCxbMTUsImFOIl0sWzE1LCJvIl1dLFs0NixbNTMsWzIyLFsyMCxbMTUsImFNIl0sMF0sWzQ2LFs1MyxbMzYsWzAsWyJtIixbImsiXV0sWzE1LCJhTCJdXV1dXV0sWzUyLCJhTyIsWyJrIl1dLFsyMixbMjMsWzM3LFsxNSwiYU8iXSxbMTUsImFNIl1dLDIwMF0sWzQ2LFs1MyxbNTIsImFQIixbMTUsImFNIl1dLFszLCJhTSIsMF0sWzM2LFswLFsibSIsWzE1LCJhUCJdXSxbMTUsImFMIl1dXV1dXSxbMywiYU0iLDBdLFszNixbMCxbIm0iLFsxNSwiYU8iXV0sWzE1LCJhTCJdXV1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2NjZEVtRm9ybUFjdGl2aXR5Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImwiLFsicmVxdWlyZSIsImdlbmVyYXRlUmFuZG9tIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm4iLFsxNyxbMTUsImgiXSwiQiJdXSxbNTIsIm8iLCJmb3JtX3N1Ym1pdCJdLFs1MiwicCIsImZvcm1fc3RhcnQiXSxbNTIsInEiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsInIiLCJldmVudE1ldGFkYXRhIl0sWzUyLCJzIiwiY2xpY2siXSxbNTIsInQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImQiLFsxNSwidCJdLFsxNSwibiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWzE1LCJhIl0sInNraXBWYWxpZGF0aW9uIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwicSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LFsxNSwicSJdLHRydWVdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsInYiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJ3IixbMixbMTUsInUiXSwiQSIsWzcsImZvcm0iXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzIyLFsxNSwiYU0iXSxbNDYsWyJhTSJdXV0sWzUyLCJhTiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRJZCJdXSxbMjIsWzE2LFsxNSwiYUEiXSxbMTUsImFOIl1dLFs0NixbMzZdXV0sWzQzLFsxNSwiYUEiXSxbMTUsImFOIl0sdHJ1ZV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNSwiYU4iXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZmlyc3RfZmllbGRfaWQiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkSWQiXSwiZmlyc3RfZmllbGRfbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl0sImZpcnN0X2ZpZWxkX3R5cGUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdLCJmaXJzdF9maWVsZF9wb3NpdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRQb3NpdGlvbiJdXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N0YXJ0Il0sWyJ6IixbMTUsInAiXSxbMTUsImFPIl0sWzE1LCJhUCJdXV1dLFs1MiwiYUMiLFsiYUsiXV0sWzUyLCJhRCIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzUyLCJhTiIsWyJhQyIsWzE1LCJvIl1dXSxbImFCIixbMTUsImFMIl0sWzQ0XV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50SWQiXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZm9ybV9zdWJtaXRfdGV4dCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmZvcm1TdWJtaXRFbGVtZW50VGV4dCJdXV0sWzQzLFsxNSwiYU8iXSwiZXZlbnRfY2FsbGJhY2siLFsxNSwiYU0iXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N1Ym1pdCJdLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIlMiXSxbMTUsImFOIl1dLFsieiIsWzE1LCJvIl0sWzE1LCJhTyJdLFsxNSwiYVAiXV1dXSxbNTIsImFFIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiYUYiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCJdXSxbNTIsImFHIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiJdXSxbNTIsImFIIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIl1dLFs1MiwiYUkiLFsiYUciXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsiYUUiLCJndG0uZm9ybUludGVyYWN0IixbMTUsImFCIl0sWzE1LCJhSSJdXSxbNTIsImFKIixbImFGIixbOCwiY2hlY2tWYWxpZGF0aW9uIixmYWxzZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJhSiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbImFFIiwiZ3RtLmZvcm1TdWJtaXQiLFsxNSwiYUQiXSxbMTUsImFKIl1dLFsyMixbImUiLFsxNyxbMTUsImIiXSwiQ1AiXV0sWzQ2LFs1MyxbNTIsImFMIixbImFIIixbOCwidXNlVjJFdmVudE5hbWUiLHRydWUsImNzc1NlbGVjdG9yIixbMCxbMCxbMCxbMCxbMCxbMCxbMCwiZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSwgIiwiZm9ybSBidXR0b246bm90KFt0eXBlXSksIl0sImZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgIl0sImZvcm0gaW5wdXRbdHlwZT1cImltYWdlXCJdLCAiXSwiYnV0dG9uW2Zvcm1dW3R5cGU9XCJzdWJtaXRcIl0sICJdLCJidXR0b25bZm9ybV06bm90KFt0eXBlXSksICJdLCJpbnB1dFt0eXBlPVwic3VibWl0XCJdW2Zvcm1dLCAiXSwiaW5wdXRbdHlwZT1cImltYWdlXCJdW2Zvcm1dIl1dXV0sWzUwLCJhTSIsWzQ2LCJhTiIsImFPIl0sWzUyLCJhUCIsWzgsImV2ZW50X2NhbGxiYWNrIixbMTUsImFPIl1dXSxbNTIsImFRIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYU4iXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUSJdXSxbInkiLFsxNSwiYVEiXSxbMTUsImFOIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFSIl0sWzE3LFsxNSwiaiJdLCJLIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImNsaWNrIl0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiUyJdLFsiYUMiLFsxNSwicyJdXV0sWyJ6IixbMTUsIm8iXSxbMTUsImFQIl0sWzE1LCJhUSJdXV0sWyJhRSIsImd0bS5jbGljay12MiIsWzE1LCJhTSJdLFsxNSwiYUwiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX3ByZV9hdXRvX3BpaSIsWzQ2LCJhIl0sWzUwLCJsIixbNDYsIm4iXSxbNTIsIm8iLFsxNixbMTUsIm4iXSwidXNlckRhdGEiXV0sWzUyLCJwIixbMzAsWzE4LFsyLFsxNSwibyJdLCJpbmRleE9mIixbNywiQGdtYWlsLiJdXSxbMjcsMV1dLFsxOCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkBnb29nbGVtYWlsLiJdXSxbMjcsMV1dXV0sWzM2LFswLFswLFswLFswLFswLFswLFsxNixbMTUsIm4iXSwidGFnTmFtZSJdLCI6Il0sWzE2LFsxNSwibiJdLCJpc1Zpc2libGUiXV0sIjoiXSxbMTcsWzE1LCJvIl0sImxlbmd0aCJdXSwiOiJdLFsxNSwicCJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJkIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbImMiLFsxNSwiZCJdLCJoYXNQcmVBdXRvUGlpQ2NkUnVsZSIsdHJ1ZV0sWzIyLFsyOCxbImIiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiZ2V0VGltZXN0YW1wTWlsbGlzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImgiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsIm0iLFs4LCJlbWFpbCIsIjEiLCJwaG9uZV9udW1iZXIiLCIyIiwiZmlyc3RfbmFtZSIsIjMiLCJsYXN0X25hbWUiLCI0IiwiY291bnRyeSIsIjUiLCJwb3N0YWxfY29kZSIsIjYiLCJzdHJlZXQiLCI3IiwiY2l0eSIsIjgiLCJyZWdpb24iLCI5Il1dLFsiZSIsWzE1LCJkIl0sWzUxLCIiLFs3LCJuIl0sWzIyLFsyMSxbMixbMTUsIm4iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVEiXV1dLFsxNyxbMTUsImkiXSwiRCJdXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsyOCxbImciLFsxNyxbMTUsImsiXSwiQiJdXV0sWzQ2LFszNl1dXSxbNTIsIm8iLFsiZiJdXSxbNTIsInAiLFsicmVxdWlyZSIsImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiXV0sWzQxLCJxIl0sWzY4LCIiLFs1MyxbMywicSIsWyJwIixbOCwiaW5jbHVkZVNlbGVjdG9yIix0cnVlLCJpbmNsdWRlVmlzaWJpbGl0eSIsdHJ1ZSwic2VsZWN0TXVsdGlwbGVFbGVtZW50cyIsdHJ1ZSwicmVhZEZyb21EYXRhTGF5ZXIiLGZhbHNlXV1dXSxbNDZdXSxbMjIsWzMwLFszMCxbMjgsWzE1LCJxIl1dLFsyOCxbMTYsWzE1LCJxIl0sImVsZW1lbnRzIl1dXSxbMjAsWzE3LFsxNixbMTUsInEiXSwiZWxlbWVudHMiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInIiLFsxNixbMTUsInEiXSwiZWxlbWVudHMiXV0sWzUyLCJzIixbN11dLFs2NSwidiIsWzE1LCJyIl0sWzQ2LFs1MyxbNTIsInciLFsibCIsWzE1LCJ2Il1dXSxbNTIsIngiLFszMCxbMTYsWzE1LCJtIl0sWzE2LFsxNSwidiJdLCJ0eXBlIl1dLCIiXV0sWzIsWzE1LCJzIl0sInB1c2giLFs3LFswLFswLFswLFswLFsxNixbMTUsInYiXSwicXVlcnlTZWxlY3RvciJdLCIqIl0sWzE1LCJ3Il1dLCIqIl0sWzE1LCJ4Il1dXV1dXV0sWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSk0iXSxbMixbMTUsInMiXSwiam9pbiIsWzcsIn4iXV1dXSxbNTIsInQiLFsxNixbMTUsInEiXSwicHJlZmVycmVkRW1haWxFbGVtZW50Il1dLFsyMixbMTUsInQiXSxbNDYsWzUzLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpOIl0sWzE2LFsxNSwidCJdLCJxdWVyeVNlbGVjdG9yIl1dXSxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKTCJdLFsibCIsWzE1LCJ0Il1dXV1dXV0sWzUyLCJ1IixbImYiXV0sWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSksiXSxbImgiLFszNyxbMTUsInUiXSxbMTUsIm8iXV1dXV0sWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSk8iXSxbMTYsWzE1LCJxIl0sInN0YXR1cyJdXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19lIixbNDYsImEiXSxbMzYsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsicmVxdWlyZSIsImludGVybmFsLmdldEV2ZW50RGF0YSJdXSxbIiQwIiwiZXZlbnQiXV1dXQogLFs1MCwiX19vZ3RfMXBfZGF0YV92MiIsWzQ2LCJhIl0sWzUwLCJwIixbNDYsInIiLCJzIiwidCIsInUiXSxbMjIsWzIwLFsxNixbMTUsInMiXSwidHlwZSJdLFsxNSwidCJdXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJyIl1dLFs0NixbNTMsWzMsInIiLFs4XV1dXV0sWzIyLFsyOCxbMTYsWzE1LCJyIl0sWzE1LCJ0Il1dXSxbNDYsWzUzLFs0MyxbMTUsInIiXSxbMTUsInQiXSxbMTYsWzE1LCJzIl0sInVzZXJEYXRhIl1dLFs1MiwidiIsWzgsIm1vZGUiLCJhIl1dLFsyMixbMTYsWzE1LCJzIl0sInRhZ05hbWUiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwibG9jYXRpb24iLFsxNixbMTUsInMiXSwidGFnTmFtZSJdXV1dXSxbMjIsWzE2LFsxNSwicyJdLCJxdWVyeVNlbGVjdG9yIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInNlbGVjdG9yIixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXV1dXV0sWzQzLFsxNSwidSJdLFsxNSwidCJdLFsxNSwidiJdXV1dXV1dXSxbMzYsWzE1LCJyIl1dXSxbNTAsInEiLFs0NiwiciIsInMiLCJ0Il0sWzIyLFsyOCxbMTYsWzE1LCJhIl0sWzE1LCJ0Il1dXSxbNDYsWzM2XV1dLFs0MyxbMTUsInIiXSxbMTUsInMiXSxbOCwidmFsdWUiLFsxNixbMTUsImEiXSxbMTUsInQiXV1dXV0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImlzRW5hYmxlZCJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsIm0iLFsiYyIsWzE3LFsxNSwiZSJdLCJBVCJdXV0sWzUyLCJuIixbMzAsWyJmIl0sWzddXV0sWzUyLCJvIixbOCwiZW5hYmxlX2NvZGUiLHRydWVdXSxbMjIsWzE3LFsxNSwiYSJdLCJpc0F1dG9FbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs3XV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSxbMTcsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLCJsZW5ndGgiXV0sWzQ2LFs1MyxbNTMsWzQxLCJ1Il0sWzMsInUiLDBdLFs2MyxbNywidSJdLFsyMyxbMTUsInUiXSxbMTcsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidSJdLFszLCJ1IixbMCxbMTUsInUiXSwxXV1dLFs0NixbNTMsWzUyLCJ2IixbMTcsWzE2LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSxbMTUsInUiXV0sImV4Y2x1c2lvblNlbGVjdG9yIl1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFsyLFsxNSwiciJdLCJwdXNoIixbNyxbMTUsInYiXV1dXV1dXV1dXV1dXSxbNTIsInMiLFsxNyxbMTUsImEiXSwiaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIl1dLFs1MiwidCIsWzM5LFsxNyxbMTUsImEiXSwiaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIl0sWzE3LFsxNSwiYSJdLCJhdXRvRW1haWxFbmFibGVkIl0sdHJ1ZV1dLFs0MyxbMTUsIm8iXSwiYXV0b19kZXRlY3QiLFs4LCJlbWFpbCIsWzE1LCJ0Il0sInBob25lIixbMSxbMTUsInMiXSxbMTcsWzE1LCJhIl0sImF1dG9QaG9uZUVuYWJsZWQiXV0sImFkZHJlc3MiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b0FkZHJlc3NFbmFibGVkIl1dLCJleGNsdWRlX2VsZW1lbnRfc2VsZWN0b3JzIixbMTUsInIiXV1dXV1dLFsyMixbMTcsWzE1LCJhIl0sImlzTWFudWFsRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJyIixbOF1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEVtYWlsRW5hYmxlZCJdLFs0NixbNTMsWyJxIixbMTUsInIiXSwiZW1haWwiLCJlbWFpbFZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsUGhvbmVFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJwaG9uZSIsInBob25lVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxBZGRyZXNzRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJzIixbOF1dLFsicSIsWzE1LCJzIl0sImZpcnN0X25hbWUiLCJmaXJzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sImxhc3RfbmFtZSIsImxhc3ROYW1lVmFsdWUiXSxbInEiLFsxNSwicyJdLCJzdHJlZXQiLCJzdHJlZXRWYWx1ZSJdLFsicSIsWzE1LCJzIl0sImNpdHkiLCJjaXR5VmFsdWUiXSxbInEiLFsxNSwicyJdLCJyZWdpb24iLCJyZWdpb25WYWx1ZSJdLFsicSIsWzE1LCJzIl0sImNvdW50cnkiLCJjb3VudHJ5VmFsdWUiXSxbInEiLFsxNSwicyJdLCJwb3N0YWxfY29kZSIsInBvc3RhbENvZGVWYWx1ZSJdLFs0MyxbMTUsInIiXSwibmFtZV9hbmRfYWRkcmVzcyIsWzcsWzE1LCJzIl1dXV1dXSxbNDMsWzE1LCJvIl0sInNlbGVjdG9ycyIsWzE1LCJyIl1dXV1dLFs2NSwiciIsWzE1LCJuIl0sWzQ2LFs1MyxbImkiLFsxNSwiciJdLCJ1c2VyX2RhdGFfc2V0dGluZ3MiLFsxNSwibyJdXSxbNTIsInMiLFsxNixbMTUsIm8iXSwiYXV0b19kZXRlY3QiXV0sWzIyLFsyOCxbMTUsInMiXV0sWzQ2LFs1MyxbNl1dXV0sWzUyLCJ0IixbNTEsIiIsWzcsInUiXSxbNTIsInYiLFsyLFsxNSwidSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWCJdXV1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFszNixbMTUsInYiXV1dXV0sWzUyLCJ3IixbImMiLFsxNyxbMTUsImUiXSwiQlYiXV1dLFs1MiwieCIsWyJjIixbMTcsWzE1LCJlIl0sIkNJIl1dXSxbNDEsInkiXSxbMjIsWyJoIiwiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iXSxbNDYsWzUzLFszLCJ5IixbImciLFs4LCJleGNsdWRlRWxlbWVudFNlbGVjdG9ycyIsWzE2LFsxNSwicyJdLCJleGNsdWRlX2VsZW1lbnRfc2VsZWN0b3JzIl0sImZpZWxkRmlsdGVycyIsWzgsImVtYWlsIixbMTYsWzE1LCJzIl0sImVtYWlsIl0sInBob25lIixbMTYsWzE1LCJzIl0sInBob25lIl0sImFkZHJlc3MiLFsxNixbMTUsInMiXSwiYWRkcmVzcyJdXSwiaW5jbHVkZVNlbGVjdG9yIixbMTUsInciXSwicmVhZEZyb21EYXRhTGF5ZXIiLFsxNSwieCJdXV1dXV1dLFs1MiwieiIsWzEsWzE1LCJ5Il0sWzE2LFsxNSwieSJdLCJlbGVtZW50cyJdXV0sWzUyLCJhQSIsWzhdXSxbNTIsImFCIixbOF1dLFsyMixbMSxbMTUsInoiXSxbMTgsWzE3LFsxNSwieiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbNDEsImFDIl0sWzQxLCJhRCJdLFszLCJhRCIsWzhdXSxbNTMsWzQxLCJhRSJdLFszLCJhRSIsMF0sWzYzLFs3LCJhRSJdLFsyMyxbMTUsImFFIl0sWzE3LFsxNSwieiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYUUiXSxbMywiYUUiLFswLFsxNSwiYUUiXSwxXV1dLFs0NixbNTMsWzUyLCJhRiIsWzE2LFsxNSwieiJdLFsxNSwiYUUiXV1dLFsicCIsWzE1LCJhQSJdLFsxNSwiYUYiXSwiZW1haWwiLFsxNSwiYUIiXV0sWzIyLFsiYyIsWzE3LFsxNSwiZSJdLCJCTyJdXSxbNDYsWzUzLFsicCIsWzE1LCJhQSJdLFsxNSwiYUYiXSwicGhvbmVfbnVtYmVyIixbMTUsImFCIl1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJmaXJzdF9uYW1lIixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwibGFzdF9uYW1lIixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwiY291bnRyeSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sInBvc3RhbF9jb2RlIixbMTUsImFEIl1dXV1dXV1dXV0sWzIyLFsxLFsxNSwiYUMiXSxbMjgsWzE2LFsxNSwiYUEiXSwiYWRkcmVzcyJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJhQSJdLCJhZGRyZXNzIixbMTUsImFDIl1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFs0MyxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwiYUQiXV1dXV1dXV1dXV0sWzIyLFsxLFsxNSwieSJdLFsxNSwieCJdXSxbNDYsWzUzLFs1MiwiYUMiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoVGltZSJdXSxbNTIsImFEIixbMTYsWzE1LCJ5Il0sImRhdGFMYXllclNlYXJjaENvdW50Il1dLFsyLFsxNSwidSJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImwiXSwiRlQiXSxbOCwiZGxzdCIsWzE1LCJhQyJdLCJkbHNjIixbMTUsImFEIl1dXV1dXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzIyLFszMCxbMTYsWzE1LCJhQSJdLCJlbWFpbCJdLFsxNixbMTUsImFBIl0sInBob25lX251bWJlciJdXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sIl90YWdfbWV0YWRhdGEiLFsxNSwiYUIiXV1dXV1dXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl0sWzE1LCJhQSJdXV0sWzM2LFsxNSwiYUEiXV1dXSxbImoiLFsxNSwiciJdLFs1MSwiIixbNywidSJdLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWSJdLFsxNSwidCJdXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19vZ3RfYWRzX2RhdGF0b3MiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWyJiIixbMTUsImMiXSwiYWRzX2N1c3RvbWVyX2RhdGFfdGVybXMiLHRydWVdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9hdXRvX2V2ZW50cyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzQxLCJlIl0sWzMsImUiLFszMCxbImIiXSxbN11dXSxbNTIsImYiLFs1MSwiIixbNywiZyIsImgiXSxbMjIsWzE1LCJnIl0sWzQ2LFszNl1dXSxbNjUsImkiLFsxNSwiZSJdLFs0NixbNTMsWyJjIixbMTUsImkiXSxbMTUsImgiXSx0cnVlXV1dXV1dLFsiZiIsWzE3LFsxNSwiYSJdLCJlbmFibGVIaXN0b3J5RXZlbnRzIl0sWzE3LFsxNSwiZCJdLCJDIl1dLFsiZiIsWzE3LFsxNSwiYSJdLCJlbmFibGVTY3JvbGwiXSxbMTcsWzE1LCJkIl0sIkUiXV0sWyJmIixbMTcsWzE1LCJhIl0sImVuYWJsZU91dGJvdW5kQ2xpY2siXSxbMTcsWzE1LCJkIl0sIkQiXV0sWyJmIixbMTcsWzE1LCJhIl0sImVuYWJsZUZvcm0iXSxbMTcsWzE1LCJkIl0sIkIiXV0sWyJmIixbMTcsWzE1LCJhIl0sImVuYWJsZVZpZGVvIl0sWzE3LFsxNSwiZCJdLCJGIl1dLFsiZiIsWzE3LFsxNSwiYSJdLCJlbmFibGVEb3dubG9hZCJdLFsxNyxbMTUsImQiXSwiQSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19vZ3RfY3Jvc3NfZG9tYWluIixbNDYsImEiXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfY29udmVydERvbWFpbkNvbmRpdGlvbnMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbMjIsWzE3LFsxNSwiYSJdLCJydWxlcyJdLFs0NixbNTMsWzQxLCJlIl0sWzMsImUiLFszMCxbImMiXSxbN11dXSxbNjUsImYiLFsxNSwiZSJdLFs0NixbNTMsWzQxLCJnIl0sWzMsImciLFsxNyxbMTUsImEiXSwicnVsZXMiXV0sWyJkIixbMTUsImYiXSwiY3Jvc3NfZG9tYWluX2NvbmRpdGlvbnMiLFsxNyxbMTUsImEiXSwicnVsZXMiXV0sWzIyLFsxNyxbMTUsImciXSwibGVuZ3RoIl0sWzQ2LFs1MyxbMywiZyIsWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwiZyJdXV1dLFsiZCIsWzE1LCJmIl0sImxpbmtlciIsWzgsImRvbWFpbnMiLFsxNSwiZyJdLCJkZWNvcmF0ZV9mb3JtcyIsdHJ1ZSwiYWNjZXB0X2luY29taW5nIix0cnVlLCJ1cmxfcG9zaXRpb24iLCJxdWVyeSJdXV1dXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19yZXAiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiJdXSxbMjIsWzI4LFsiYiIsWzE3LFsxNSwiYSJdLCJjb250YWluZXJJZCJdLFsxNyxbMTUsImEiXSwicmVtb3RlQ29uZmlnIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb252ZXJzaW9uIl0sWzUyLCJjIiwiZmxvb2RsaWdodCJdLFs1MiwiZCIsImdhX2NvbnZlcnNpb24iXSxbNTIsImUiLCJwYWdlX3ZpZXciXSxbNTIsImYiLCJyZW1hcmtldGluZyJdLFs1MiwiZyIsInVzZXJfZGF0YV9sZWFkIl0sWzUyLCJoIiwidXNlcl9kYXRhX3dlYiJdLFszNixbOCwiRCIsWzE1LCJiIl0sIkUiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiSCIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJjIiwiYWRfc3RvcmFnZSJdLFs1MiwiZCIsImFkX3VzZXJfZGF0YSJdLFs1MiwiZSIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZiIsImFwcF9yZW1vdmUiXSxbNTIsImciLCJhcHBfc3RvcmVfcmVmdW5kIl0sWzUyLCJoIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiXSxbNTIsImkiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiXSxbNTIsImoiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Il0sWzUyLCJrIiwiY29udmVyc2lvbiJdLFs1MiwibCIsInB1cmNoYXNlIl0sWzUyLCJtIiwiZmlyc3Rfb3BlbiJdLFs1MiwibiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJvIiwiZ3RhZy5jb25maWciXSxbNTIsInAiLCJpbl9hcHBfcHVyY2hhc2UiXSxbNTIsInEiLCJwYWdlX3ZpZXciXSxbNTIsInIiLCJzZXNzaW9uX3N0YXJ0Il0sWzUyLCJzIiwidXNlcl9lbmdhZ2VtZW50Il0sWzUyLCJ0IiwiYWRzX2RhdGFfcmVkYWN0aW9uIl0sWzUyLCJ1IiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiXSxbNTIsInYiLCJhbGxvd19jdXN0b21fc2NyaXB0cyJdLFs1MiwidyIsImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIl0sWzUyLCJ4IiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiXSxbNTIsInkiLCJhdWlkIl0sWzUyLCJ6IiwiYXdfcmVtYXJrZXRpbmdfb25seSJdLFs1MiwiYUEiLCJkaXNjb3VudCJdLFs1MiwiYUIiLCJhd19mZWVkX2NvdW50cnkiXSxbNTIsImFDIiwiYXdfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYUQiLCJpdGVtcyJdLFs1MiwiYUUiLCJhd19tZXJjaGFudF9pZCJdLFs1MiwiYUYiLCJhd19iYXNrZXRfdHlwZSJdLFs1MiwiYUciLCJjbGllbnRfaWQiXSxbNTIsImFIIiwiY29udmVyc2lvbl9jb29raWVfcHJlZml4Il0sWzUyLCJhSSIsImNvbnZlcnNpb25faWQiXSxbNTIsImFKIiwiY29udmVyc2lvbl9saW5rZXIiXSxbNTIsImFLIiwiY29udmVyc2lvbl9hcGkiXSxbNTIsImFMIiwiY29va2llX2RlcHJlY2F0aW9uIl0sWzUyLCJhTSIsImNvb2tpZV9leHBpcmVzIl0sWzUyLCJhTiIsImNvb2tpZV9wcmVmaXgiXSxbNTIsImFPIiwiY29va2llX3VwZGF0ZSJdLFs1MiwiYVAiLCJjb3VudHJ5Il0sWzUyLCJhUSIsImN1cnJlbmN5Il0sWzUyLCJhUiIsImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIl0sWzUyLCJhUyIsImN1c3RvbWVyX3R5cGUiXSxbNTIsImFUIiwiZGVidWdfbW9kZSJdLFs1MiwiYVUiLCJzaGlwcGluZyJdLFs1MiwiYVYiLCJlbmdhZ2VtZW50X3RpbWVfbXNlYyJdLFs1MiwiYVciLCJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSJdLFs1MiwiYVgiLCJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJhWSIsImV2ZW50X2lkIl0sWzUyLCJhWiIsImV2ZW50Il0sWzUyLCJiQSIsIl8mYWUiXSxbNTIsImJCIiwiZXZlbnRfdGltZW91dCJdLFs1MiwiYkMiLCJleHRfY2xpZW50X2lkIl0sWzUyLCJiRCIsImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iXSxbNTIsImJFIiwibWF0Y2hfaWQiXSxbNTIsImJGIiwiZ2Rwcl9hcHBsaWVzIl0sWzUyLCJiRyIsIl9ndF9tZXRhZGF0YSJdLFs1MiwiYkgiLCJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIl0sWzUyLCJiSSIsIl9nb29nbGVfbmciXSxbNTIsImJKIiwiX29ubyJdLFs1MiwiYksiLCJncHBfc2lkIl0sWzUyLCJiTCIsImdwcF9zdHJpbmciXSxbNTIsImJNIiwiZ3NhX2V4cGVyaW1lbnRfaWQiXSxbNTIsImJOIiwiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIl0sWzUyLCJiTyIsImlmcmFtZV9zdGF0ZSJdLFs1MiwiYlAiLCJpZ25vcmVfcmVmZXJyZXIiXSxbNTIsImJRIiwiaXNfcGFzc3Rocm91Z2giXSxbNTIsImJSIiwibGFuZ3VhZ2UiXSxbNTIsImJTIiwibWVyY2hhbnRfZmVlZF9sYWJlbCJdLFs1MiwiYlQiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIl0sWzUyLCJiVSIsIm1lcmNoYW50X2lkIl0sWzUyLCJiViIsIm5ld19jdXN0b21lciJdLFs1MiwiYlciLCJwYWdlX2hvc3RuYW1lIl0sWzUyLCJiWCIsInBhZ2VfcGF0aCJdLFs1MiwiYlkiLCJwYWdlX3JlZmVycmVyIl0sWzUyLCJiWiIsInBhZ2VfdGl0bGUiXSxbNTIsImNBIiwiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIl0sWzUyLCJjQiIsInF1YW50aXR5Il0sWzUyLCJjQyIsInJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIl0sWzUyLCJjRCIsInNjcmVlbl9yZXNvbHV0aW9uIl0sWzUyLCJjRSIsInNlbmRfcGFnZV92aWV3Il0sWzUyLCJjRiIsInNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCJdLFs1MiwiY0ciLCJzZXJ2ZXJfY29udGFpbmVyX3VybCJdLFs1MiwiY0giLCJzZXNzaW9uX2R1cmF0aW9uIl0sWzUyLCJjSSIsInNlc3Npb25fZW5nYWdlZF90aW1lIl0sWzUyLCJjSiIsInNlc3Npb25faWQiXSxbNTIsImNLIiwiX3NoYXJlZF91c2VyX2lkIl0sWzUyLCJjTCIsImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIl0sWzUyLCJjTSIsInRlc3Rvbmx5Il0sWzUyLCJjTiIsInRvcG1vc3RfdXJsIl0sWzUyLCJjTyIsInRyYW5zYWN0aW9uX2lkIl0sWzUyLCJjUCIsInRyYW5zYWN0aW9uX2lkX3NvdXJjZSJdLFs1MiwiY1EiLCJ0cmFuc3BvcnRfdXJsIl0sWzUyLCJjUiIsInVwZGF0ZSJdLFs1MiwiY1MiLCJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiXSxbNTIsImNUIiwiX3VzZXJfYWdlbnRfYml0bmVzcyJdLFs1MiwiY1UiLCJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCJdLFs1MiwiY1YiLCJfdXNlcl9hZ2VudF9tb2JpbGUiXSxbNTIsImNXIiwiX3VzZXJfYWdlbnRfbW9kZWwiXSxbNTIsImNYIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm0iXSxbNTIsImNZIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiJdLFs1MiwiY1oiLCJfdXNlcl9hZ2VudF93b3c2NCJdLFs1MiwiZEEiLCJ1c2VyX2RhdGEiXSxbNTIsImRCIiwidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSJdLFs1MiwiZEMiLCJ1c2VyX2RhdGFfYXV0b19tZXRhIl0sWzUyLCJkRCIsInVzZXJfZGF0YV9hdXRvX211bHRpIl0sWzUyLCJkRSIsInVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyJdLFs1MiwiZEYiLCJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiXSxbNTIsImRHIiwidXNlcl9kYXRhX21vZGUiXSxbNTIsImRIIiwidXNlcl9pZCJdLFs1MiwiZEkiLCJ1c2VyX3Byb3BlcnRpZXMiXSxbNTIsImRKIiwidXNfcHJpdmFjeV9zdHJpbmciXSxbNTIsImRLIiwidmFsdWUiXSxbNTIsImRMIiwiX2ZwbV9wYXJhbWV0ZXJzIl0sWzUyLCJkTSIsIl9ob3N0X25hbWUiXSxbNTIsImROIiwiX2luX3BhZ2VfY29tbWFuZCJdLFs1MiwiZE8iLCJfbWVhc3VyZW1lbnRfdHlwZSJdLFs1MiwiZFAiLCJub25fcGVyc29uYWxpemVkX2FkcyJdLFs1MiwiZFEiLCJjb252ZXJzaW9uX2xhYmVsIl0sWzUyLCJkUiIsInBhZ2VfbG9jYXRpb24iXSxbNTIsImRTIiwiX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJkVCIsImdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJkVSIsInRjX3ByaXZhY3lfc3RyaW5nIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXSwiTCIsWzE1LCJpIl0sIk0iLFsxNSwiaiJdLCJPIixbMTUsImsiXSwiQUEiLFsxNSwibCJdLCJBRiIsWzE1LCJtIl0sIkFHIixbMTUsIm4iXSwiQUgiLFsxNSwibyJdLCJBSiIsWzE1LCJwIl0sIkFLIixbMTUsInEiXSwiQU0iLFsxNSwiciJdLCJBUSIsWzE1LCJzIl0sIkJDIixbMTUsInQiXSwiQkoiLFsxNSwidSJdLCJCSyIsWzE1LCJ2Il0sIkJNIixbMTUsInciXSwiQk4iLFsxNSwieCJdLCJCVCIsWzE1LCJ5Il0sIkJYIixbMTUsInoiXSwiQlkiLFsxNSwiYUEiXSwiQloiLFsxNSwiYUIiXSwiQ0EiLFsxNSwiYUMiXSwiQ0IiLFsxNSwiYUQiXSwiQ0MiLFsxNSwiYUUiXSwiQ0QiLFsxNSwiYUYiXSwiQ0wiLFsxNSwiYUciXSwiQ1EiLFsxNSwiYUgiXSwiQ1IiLFsxNSwiYUkiXSwiS0ciLFsxNSwiZFEiXSwiQ1MiLFsxNSwiYUoiXSwiQ1UiLFsxNSwiYUsiXSwiQ1ciLFsxNSwiYUwiXSwiQ1kiLFsxNSwiYU0iXSwiREMiLFsxNSwiYU4iXSwiREQiLFsxNSwiYU8iXSwiREUiLFsxNSwiYVAiXSwiREYiLFsxNSwiYVEiXSwiREciLFsxNSwiYVIiXSwiREgiLFsxNSwiYVMiXSwiRE4iLFsxNSwiYVQiXSwiRUEiLFsxNSwiYVUiXSwiRUMiLFsxNSwiYVYiXSwiRUciLFsxNSwiYVciXSwiRUoiLFsxNSwiYVgiXSwiRUsiLFsxNSwiYVkiXSwiRU4iLFsxNSwiYVoiXSwiRU8iLFsxNSwiYkEiXSwiRVEiLFsxNSwiYkIiXSwiS0kiLFsxNSwiZFMiXSwiRVUiLFsxNSwiYkMiXSwiRVciLFsxNSwiYkQiXSwiRkUiLFsxNSwiYkUiXSwiRk8iLFsxNSwiYkYiXSwiRlAiLFsxNSwiYkciXSwiS0oiLFsxNSwiZFQiXSwiRlQiLFsxNSwiYkgiXSwiRlUiLFsxNSwiYkkiXSwiRlYiLFsxNSwiYkoiXSwiRlkiLFsxNSwiYksiXSwiRloiLFsxNSwiYkwiXSwiR0IiLFsxNSwiYk0iXSwiR0MiLFsxNSwiYk4iXSwiR0UiLFsxNSwiYk8iXSwiR0YiLFsxNSwiYlAiXSwiR0siLFsxNSwiYlEiXSwiR00iLFsxNSwiYlIiXSwiR1QiLFsxNSwiYlMiXSwiR1UiLFsxNSwiYlQiXSwiR1YiLFsxNSwiYlUiXSwiR1oiLFsxNSwiYlYiXSwiSEMiLFsxNSwiYlciXSwiS0giLFsxNSwiZFIiXSwiSEQiLFsxNSwiYlgiXSwiSEUiLFsxNSwiYlkiXSwiSEYiLFsxNSwiYloiXSwiSE4iLFsxNSwiY0EiXSwiSFAiLFsxNSwiY0IiXSwiSFQiLFsxNSwiY0MiXSwiSFgiLFsxNSwiY0QiXSwiSUEiLFsxNSwiY0UiXSwiSUMiLFsxNSwiY0YiXSwiSUQiLFsxNSwiY0ciXSwiSUYiLFsxNSwiY0giXSwiSUgiLFsxNSwiY0kiXSwiSUkiLFsxNSwiY0oiXSwiSUsiLFsxNSwiY0siXSwiSUwiLFsxNSwiY0wiXSwiS0siLFsxNSwiZFUiXSwiSVAiLFsxNSwiY00iXSwiSVIiLFsxNSwiY04iXSwiSVUiLFsxNSwiY08iXSwiSVYiLFsxNSwiY1AiXSwiSVciLFsxNSwiY1EiXSwiSVkiLFsxNSwiY1IiXSwiSkIiLFsxNSwiY1MiXSwiSkMiLFsxNSwiY1QiXSwiSkQiLFsxNSwiY1UiXSwiSkUiLFsxNSwiY1YiXSwiSkYiLFsxNSwiY1ciXSwiSkciLFsxNSwiY1giXSwiSkgiLFsxNSwiY1kiXSwiSkkiLFsxNSwiY1oiXSwiSkoiLFsxNSwiZEEiXSwiSksiLFsxNSwiZEIiXSwiSkwiLFsxNSwiZEMiXSwiSk0iLFsxNSwiZEQiXSwiSk4iLFsxNSwiZEUiXSwiSk8iLFsxNSwiZEYiXSwiSlAiLFsxNSwiZEciXSwiSlIiLFsxNSwiZEgiXSwiSlMiLFsxNSwiZEkiXSwiSlUiLFsxNSwiZEoiXSwiSlYiLFsxNSwiZEsiXSwiSlgiLFsxNSwiZEwiXSwiSlkiLFsxNSwiZE0iXSwiSloiLFsxNSwiZE4iXSwiS0MiLFsxNSwiZE8iXSwiS0QiLFsxNSwiZFAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWJvcnRfd2l0aG91dF9mYWlsIl0sWzUyLCJjIiwiYWNjZXB0X2J5X2RlZmF1bHQiXSxbNTIsImQiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImUiLCJjb25zZW50X3N0YXRlIl0sWzUyLCJmIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJnIiwiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCJdLFs1MiwiaCIsImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiXSxbNTIsImkiLCJjb29raWVfb3B0aW9ucyJdLFs1MiwiaiIsImRlZHVwZV9pZCJdLFs1MiwiayIsImVtX2V2ZW50Il0sWzUyLCJsIiwiZXZlbnRfcHJvdmVuYW5jZSJdLFs1MiwibSIsImV2ZW50X3NvdXJjZSJdLFs1MiwibiIsImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyJdLFs1MiwibyIsImV2ZW50X3VzYWdlIl0sWzUyLCJwIiwiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIl0sWzUyLCJxIiwiZm9ybV9ldmVudF9jYW5jZWxlZCJdLFs1MiwiciIsImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiJdLFs1MiwicyIsImd0bV9leHRyYWN0ZWRfZGF0YSJdLFs1MiwidCIsImhhbmRsZV9pbnRlcm5hbGx5Il0sWzUyLCJ1IiwiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiXSxbNTIsInYiLCJoaXRfdHlwZSJdLFs1MiwidyIsImhpdF90eXBlX292ZXJyaWRlIl0sWzUyLCJ4IiwiaWdub3JlX2R1cGVfY29uZmlnIl0sWzUyLCJ5IiwiaXNfY29udmVyc2lvbiJdLFs1MiwieiIsImlzX2V4dGVybmFsX2V2ZW50Il0sWzUyLCJhQSIsImlzX2ZpcnN0X3Zpc2l0Il0sWzUyLCJhQiIsImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iXSxbNTIsImFDIiwiaXNfZnBtX2VuY3J5cHRpb24iXSxbNTIsImFEIiwiaXNfZnBtX3NwbGl0Il0sWzUyLCJhRSIsImlzX2djcF9icm93c2VyIl0sWzUyLCJhRiIsImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIl0sWzUyLCJhRyIsImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIl0sWzUyLCJhSCIsImlzX3Nlc3Npb25fc3RhcnQiXSxbNTIsImFJIiwiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIl0sWzUyLCJhSiIsImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCJdLFs1MiwiYUsiLCJpc19zZ3RtX3ByZWhpdCJdLFs1MiwiYUwiLCJpc19zcGxpdF9jb252ZXJzaW9uIl0sWzUyLCJhTSIsImlzX3N5biJdLFs1MiwiYU4iLCJpc190ZXN0X2V2ZW50Il0sWzUyLCJhTyIsInByZWhpdF9mb3JfcmV0cnkiXSxbNTIsImFQIiwicmVkYWN0X2Fkc19kYXRhIl0sWzUyLCJhUSIsInJlZGFjdF9jbGlja19pZHMiXSxbNTIsImFSIiwic2VuZF9jY21fcGFyYWxsZWxfcGluZyJdLFs1MiwiYVMiLCJzZW5kX3VzZXJfZGF0YV9oaXQiXSxbNTIsImFUIiwic3BlY3VsYXRpdmUiXSxbNTIsImFVIiwic3luX29yX21vZCJdLFs1MiwiYVYiLCJ0cmFuc2llbnRfZWNzaWQiXSxbNTIsImFXIiwidXNlcl9kYXRhIl0sWzUyLCJhWCIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyJdLFs1MiwiYVkiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIl0sWzUyLCJhWiIsInVzZXJfZGF0YV9mcm9tX2NvZGUiXSxbNTIsImJBIiwidXNlcl9kYXRhX2Zyb21fbWFudWFsIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJNIixbMTUsImUiXSwiTiIsWzE1LCJmIl0sIk8iLFsxNSwiZyJdLCJQIixbMTUsImgiXSwiUSIsWzE1LCJpIl0sIlMiLFsxNSwiaiJdLCJUIixbMTUsImsiXSwiWiIsWzE1LCJsIl0sIkFBIixbMTUsIm0iXSwiQUIiLFsxNSwibiJdLCJBQyIsWzE1LCJvIl0sIkFEIixbMTUsInAiXSwiQUoiLFsxNSwicSJdLCJBSyIsWzE1LCJyIl0sIkFOIixbMTUsInMiXSwiQU8iLFsxNSwidCJdLCJBUCIsWzE1LCJ1Il0sIkFRIixbMTUsInYiXSwiQVIiLFsxNSwidyJdLCJBUyIsWzE1LCJ4Il0sIkFWIixbMTUsInkiXSwiQVkiLFsxNSwieiJdLCJBWiIsWzE1LCJhQSJdLCJCQSIsWzE1LCJhQiJdLCJCQyIsWzE1LCJhQyJdLCJCRCIsWzE1LCJhRCJdLCJCRSIsWzE1LCJhRSJdLCJCRiIsWzE1LCJhRiJdLCJCSyIsWzE1LCJhRyJdLCJCTCIsWzE1LCJhSCJdLCJCTSIsWzE1LCJhSSJdLCJCTiIsWzE1LCJhSiJdLCJCTyIsWzE1LCJhSyJdLCJCUSIsWzE1LCJhTCJdLCJCUiIsWzE1LCJhTSJdLCJCUyIsWzE1LCJhTiJdLCJCWSIsWzE1LCJhTyJdLCJDQiIsWzE1LCJhUCJdLCJDQyIsWzE1LCJhUSJdLCJDRSIsWzE1LCJhUiJdLCJDTiIsWzE1LCJhUyJdLCJDUSIsWzE1LCJhVCJdLCJDVCIsWzE1LCJhVSJdLCJDVSIsWzE1LCJhViJdLCJDVyIsWzE1LCJhVyJdLCJDWCIsWzE1LCJhWCJdLCJDWSIsWzE1LCJhWSJdLCJDWiIsWzE1LCJhWiJdLCJEQSIsWzE1LCJiQSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0NV0sWzUyLCJjIiw0Nl0sWzUyLCJkIiw0N10sWzUyLCJlIiwxNzRdLFs1MiwiZiIsMjc2XSxbMzYsWzgsIkYiLFsxNSwiYiJdLCJHIixbMTUsImMiXSwiSCIsWzE1LCJkIl0sIlYiLFsxNSwiZSJdLCJBRCIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lY1R5cGVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiZnNyYyJdLFs1MiwiYyIsImZlaWQiXSxbNTIsImQiLCIwIl0sWzUyLCJlIiwiMSJdLFs1MiwiZiIsIjIiXSxbNTIsImciLCIzIl0sWzUyLCJoIiwiNCJdLFszNixbOCwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZyJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkMiLFsxNSwiZCJdLCJHIixbMTUsImgiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDI1XSxbNTIsImMiLDQzNV0sWzUyLCJkIiw0ODhdLFs1MiwiZSIsNDg5XSxbNTIsImYiLDQ5OF0sWzUyLCJnIiw1MDNdLFs1MiwiaCIsNTA0XSxbNTIsImkiLDUwNl0sWzUyLCJqIiw1MjNdLFs1MiwiayIsNTMyXSxbNTIsImwiLDU1M10sWzUyLCJtIiw1NjhdLFs1MiwibiIsNTc3XSxbNTIsIm8iLDU4MV0sWzUyLCJwIiw1ODNdLFs1MiwicSIsNTkyXSxbNTIsInIiLDU5NF0sWzUyLCJzIiw1OTldLFszNixbOCwiQVYiLFsxNSwiayJdLCJBRCIsWzE1LCJkIl0sIkNJIixbMTUsInEiXSwiQlYiLFsxNSwibiJdLCJCTyIsWzE1LCJtIl0sIkNLIixbMTUsInIiXSwiQ1AiLFsxNSwicyJdLCJBTSIsWzE1LCJnIl0sIkJaIixbMTUsIm8iXSwiQVQiLFsxNSwiaiJdLCJBRSIsWzE1LCJlIl0sIkFOIixbMTUsImgiXSwiTCIsWzE1LCJjIl0sIkJDIixbMTUsImwiXSwiQU8iLFsxNSwiaSJdLCJDQiIsWzE1LCJwIl0sIkFJIixbMTUsImYiXSwiSSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCJdLFs1MiwiYyIsInBsZCJdLFs1MiwiZCIsInNoYXJlZF91c2VyX2lkIl0sWzUyLCJlIiwic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIl0sWzUyLCJmIiwic2hhcmVkX3VzZXJfaWRfc291cmNlIl0sWzM2LFs4LCJCIixbMTUsImIiXSwiTiIsWzE1LCJjIl0sIlMiLFsxNSwiZCJdLCJUIixbMTUsImUiXSwiVSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDNdLFs1MiwiZSIsNF0sWzUyLCJmIiw1XSxbNTIsImciLDZdLFszNixbOCwiQSIsWzE1LCJiIl0sIkYiLFsxNSwiZyJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiw1XSxbNTIsImUiLDZdLFs1MiwiZiIsN10sWzUyLCJnIiw4XSxbNTIsImgiLDldLFs1MiwiaSIsMTFdLFs1MiwiaiIsMTVdLFs1MiwiayIsMTZdLFs1MiwibCIsMjBdLFs1MiwibSIsMjFdLFs1MiwibiIsMjNdLFs1MiwibyIsMjRdLFs1MiwicCIsMjddLFs1MiwicSIsNDBdLFs1MiwiciIsNDFdLFszNixbOCwiTyIsWzE1LCJqIl0sIlciLFsxNSwibiJdLCJQIixbMTUsImsiXSwiWCIsWzE1LCJvIl0sIksiLFsxNSwiaSJdLCJBIixbMTUsImIiXSwiVCIsWzE1LCJsIl0sIkUiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiQiIsWzE1LCJjIl0sIkgiLFsxNSwiZyJdLCJBTiIsWzE1LCJxIl0sIkkiLFsxNSwiaCJdLCJHIixbMTUsImYiXSwiVSIsWzE1LCJtIl0sIkFPIixbMTUsInIiXSwiQUEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZV9ibG9ja19kb3dubG9hZHMiXSxbNTIsImMiLCJhZV9ibG9ja19mb3JtIl0sWzUyLCJkIiwiYWVfYmxvY2tfaGlzdG9yeSJdLFs1MiwiZSIsImFlX2Jsb2NrX291dGJvdW5kX2NsaWNrIl0sWzUyLCJmIiwiYWVfYmxvY2tfc2Nyb2xsIl0sWzUyLCJnIiwiYWVfYmxvY2tfdmlkZW8iXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXSwiRiIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jb252ZXJ0RG9tYWluQ29uZGl0aW9ucyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzM2LFsyLFsxNSwiZyJdLCJyZXBsYWNlIixbNyxbMTUsImQiXSwiXFwkJiJdXV1dLFs1MCwiZiIsWzQ2LCJnIl0sWzUyLCJoIixbN11dLFs1MyxbNDEsImkiXSxbMywiaSIsMF0sWzYzLFs3LCJpIl0sWzIzLFsxNSwiaSJdLFsxNyxbMTUsImciXSwibGVuZ3RoIl1dLFszMyxbMTUsImkiXSxbMywiaSIsWzAsWzE1LCJpIl0sMV1dXSxbNDYsWzUzLFs0MSwiaiJdLFsyMixbMjAsWyJjIixbMTYsWzE1LCJnIl0sWzE1LCJpIl1dXSwib2JqZWN0Il0sWzQ2LFs1MyxbNTIsImwiLFsxNixbMTYsWzE1LCJnIl0sWzE1LCJpIl1dLCJtYXRjaFR5cGUiXV0sWzUyLCJtIixbMTYsWzE2LFsxNSwiZyJdLFsxNSwiaSJdXSwibWF0Y2hWYWx1ZSJdXSxbMzgsWzE1LCJsIl0sWzQ2LCJCRUdJTlNfV0lUSCIsIkVORFNfV0lUSCIsIkVRVUFMUyIsIlJFR0VYIiwiQ09OVEFJTlMiXSxbNDYsWzUsWzQ2LFszLCJqIixbMCwiXiIsWyJlIixbMTUsIm0iXV1dXSxbNF1dXSxbNSxbNDYsWzMsImoiLFswLFsiZSIsWzE1LCJtIl1dLCIkIl1dLFs0XV1dLFs1LFs0NixbMywiaiIsWzAsWzAsIl4iLFsiZSIsWzE1LCJtIl1dXSwiJCJdXSxbNF1dXSxbNSxbNDYsWzMsImoiLFsxNSwibSJdXSxbNF1dXSxbNSxbNDZdXSxbOSxbNDYsWzMsImoiLFsiZSIsWzE1LCJtIl1dXSxbNF1dXV1dXV0sWzQ2LFs1MyxbMywiaiIsWzE2LFsxNSwiZyJdLFsxNSwiaSJdXV1dXV0sWzQxLCJrIl0sWzIyLFsxNSwiaiJdLFs0NixbNTMsWzMsImsiLFsiYiIsWzE1LCJqIl1dXV1dXSxbMjIsWzE1LCJrIl0sWzQ2LFs1MyxbMixbMTUsImgiXSwicHVzaCIsWzcsWzE1LCJrIl1dXV1dXV1dXV0sWzM2LFsxNSwiaCJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jcmVhdGVSZWdleCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJkIixbImIiLCJbLiorXFwtP14ke30oKXxbXFxdXFxcXF0iLCJnIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMzJdLFszNixbOCwiQUUiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0Nl0sWzY4LCJ3IixbNTMsWzIyLFsxLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiQUkiXV1dLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV1dLFs0NixbNTMsWzM2LFs3XV1dXV0sWzUyLCJ3IixbImIiLFsxNyxbMTUsImciXSwiTiJdXV0sWzIyLFsibiIsWzE1LCJ3Il1dLFs0NixbNTMsWzM2LFsxNSwidyJdXV1dXSxbNTIsIngiLFs3XV0sWzIyLFsicCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJBIl1dXV1dLFsyMixbInEiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQiJdXV1dXSxbMjIsWyJyIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkYiXV1dXV0sWzIyLFsidSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJEIl1dXV1dLFsyMixbInMiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRSJdXV1dXSxbMjIsWyJ0Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkMiXV1dXV0sWzIyLFsibCJdLFs0NixbNTMsWyJmIixbMTcsWzE1LCJnIl0sIk4iXSxbMTUsIngiXSx0cnVlXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNDZdXSxbMzYsWzddXV0sWzUwLCJwIixbNDZdLFs2OCwidyIsWzUzLFszNixbMjgsWzI4LFsiYyIsInNjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePVwibWFnZS9cIl0iXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJxIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjXj1cIi8vIixbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJyIixbNDZdLFsyMixbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsImMyaHZjR2xtZVM1amIyMD0iXV0sWzUyLCJ4IixbIm0iLCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSJdXSxbMjIsWzMwLFsyOCxbMTUsInciXV0sWzI4LFsxNSwieCJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLCJzY3JpcHRbc3JjKj1cImNkbi4iLFsxNSwidyJdXSwiXCJdLCJdLCJtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl1bY29udGVudCo9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiZm9udHMuIl0sWzE1LCJ4Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cIml0ZXJhYmxlLXNob3BpZnlcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cInYuIl0sWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicyIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsiZCIsInByb3RvY29sIl1dLFs1MiwieCIsWyJkIiwiaG9zdCJdXSxbNTIsInkiLFszOSxbMSxbMTUsInciXSxbMTUsIngiXV0sWzAsWzAsWzAsWzAsIltzcmNePVwiIixbMTUsInciXV0sIjovLyJdLFsxNSwieCJdXSwiL3dwLWNvbnRlbnRcIl0sIl0sIiJdXSxbNTIsInoiLFsibSIsIkxuZHZjbVJ3Y21WemN5NWpiMjA9Il1dLFs1MiwiYUEiLFsibSIsIkx5OXpMbmN1YjNKbiJdXSxbMjIsWzMwLFsyOCxbMTUsInoiXV0sWzI4LFsxNSwiYUEiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFszMCxbInYiLFsxNSwieCJdLFsxNSwieiJdXSxbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzE1LCJ5Il0sIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvcmRQcmVzcyBcIl0sIl0sImxpbmtbcmVsPVwiZG5zLXByZWZldGNoXCJdW2hyZWY9XCIiXSxbMTUsImFBIl1dLCJcIl0iXV1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInQiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsIltjbGFzcyo9XCJ3b29jb21tZXJjZVwiXSwiLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb29Db21tZXJjZSBcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ1IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjKj1cIndvb2NvbW1lcmNlXCJdLCIsImxpbmtbaHJlZio9XCJ3b29jb21tZXJjZVwiXSwiXSwiW2NsYXNzfD1cIndvb2NvbW1lcmNlXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMSxbMTksWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMjAsWzIsWzE1LCJ3Il0sInN1YnN0cmluZyIsWzcsWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV1dLFsxNSwieCJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmlzRG9tUmVhZHkiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJmcm9tQmFzZTY0Il1dLFs1MiwibiIsWzUxLCIiLFs3LCJ3Il0sWzM2LFsyMCxbImsiLFsxNSwidyJdXSwiYXJyYXkiXV1dXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzUyLCJoIixbImIiXV0sWzUyLCJpIixbN11dLFs1MyxbNDEsImoiXSxbMywiaiIsMF0sWzYzLFs3LCJqIl0sWzIzLFsxNSwiaiJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImoiXSxbMywiaiIsWzAsWzE1LCJqIl0sMV1dXSxbNDYsWzUzLFs1MiwiayIsWzE2LFsxNSwiaCJdLFsxNSwiaiJdXV0sWzIyLFsiZCIsWzE1LCJnIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJpIl0sInB1c2giLFs3LFsxNSwiayJdXV1dXV1dXV1dLFszNixbMTUsImkiXV1dLFs1MCwiZiIsWzQ2LCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsxNSwiaCJdLFs4XV1dLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJDUSJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIloiXSwiYSJdLFs0MyxbMTUsImciXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJpIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNsYWltRGVzdGluYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXSwiQiIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbUZvcm1BY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibiIsWzQ2LCJvIiwicCIsInEiXSxbNTIsInIiLFsyMCxbMixbMTUsIm8iXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV0sWzIyLFsyMCxbMTUsInAiXSxbNDRdXSxbNDYsWzUzLFszLCJwIixbMTUsInIiXV1dXV0sWyJjIixbMTUsIm8iXSxbNTEsIiIsWzcsInMiXSxbNTIsInQiLFsyLFsxNSwicyJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwidSIsWzMwLFsyMCxbMTUsInQiXSxbMTUsImwiXV0sWzIwLFsxNSwidCJdLFsxNSwiayJdXV1dLFsyMixbMzAsWzI4LFsxNSwidSJdXSxbMjgsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwibyJdLFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMSxbMjgsWzE1LCJwIl1dLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJBSiJdXV1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXV0sWzUyLCJ2IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQUEiXV1dXSxbMjIsWzEsWzI4LFsxNSwiciJdXSxbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWyJoIixbMTcsWzE1LCJpIl0sIkJaIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdLFs0NF1dXV1dXV1dXV1dLFsyLFsxNSwicyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsxLFsxNSwidiJdLFsxNSwiciJdXSxbNDYsWzUzLFs0MSwidyJdLFszLCJ3IixbMTcsWzE1LCJnIl0sIkMiXV0sWzQxLCJ4Il0sWzIyLFsyMCxbMTUsInYiXSxbMTUsImwiXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJEIl1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJrIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRSJdXSxbMywieCIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXV1dXV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwibSJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkYiXV0sWzMsIngiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl1dXV1dXV1dXV1dLFs1MiwieSIsWzhdXSxbNDMsWzE1LCJ5Il0sWzE3LFsxNSwiZyJdLCJBIl0sWzE1LCJ3Il1dLFsyMixbMTUsIngiXSxbNDYsWzUzLFs0MyxbMTUsInkiXSxbMTcsWzE1LCJnIl0sIkIiXSxbMTUsIngiXV1dXV0sWzIsWzE1LCJzIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiZiJdLCJGVCJdLFsxNSwieSJdXV1dXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1faWQiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9kZXN0aW5hdGlvbiIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9sZW5ndGgiLFs0NF1dXSxbMjIsWzIwLFsxNSwidCJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9zdWJtaXRfdGV4dCIsWzQ0XV1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ0Il0sWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF9pZCIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfbmFtZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfdHlwZSIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfcG9zaXRpb24iLFs0NF1dXV1dXV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9lY1R5cGVzIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJqIixbMTcsWzE1LCJlIl0sIkIiXV0sWzUyLCJrIiwiZm9ybV9zdWJtaXQiXSxbNTIsImwiLCJmb3JtX3N0YXJ0Il0sWzUyLCJtIiwiY2xpY2siXSxbMzYsWzgsIkEiLFsxNSwibiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEdwcFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzIyLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZaIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiRloiXSxbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWiJdXV1dXV1dLFsyMixbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWSJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkZZIl0sWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRlkiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFsyMixbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQlMiXV1dLFs0NixbNTMsWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSVAiXSwiMSJdXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tFbmFibGVFbmNyeXB0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImoiXSxbNTIsImsiLFsyLFsxNSwiaiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJBUSJdXV1dLFsyMixbMSxbMzAsWzIwLFsxNSwiayJdLFsxNyxbMTUsImIiXSwiSyJdXSxbMjAsWzE1LCJrIl0sWzE3LFsxNSwiYiJdLCJKIl1dXSxbImkiLFsxNSwiaiJdXV0sWzQ2LFs1MyxbMixbMTUsImoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQkMiXSx0cnVlXV1dXV1dLFs1MCwiaSIsWzQ2LCJqIl0sWzIyLFsyOCxbMixbMTUsImoiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQ1ciXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzM2LFsiYyJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGcGZlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbMixbMTUsImMiXSwiQSIsWzddXV0sWzIyLFsxLFsxNSwiZiJdLFsxOCxbMTcsWzE1LCJmIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImIiXSwiRlQiXSxbOCwicGxmIixbMixbMTUsImYiXSwiam9pbiIsWzcsIi4iXV1dXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9wbGF0Zm9ybURldGVjdGlvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogCl0KLCJlbnRpdGllcyI6ewoiX19jY2RfYWRkXzFwX2RhdGEiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYWRzX2ZpcnN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2Fkc19sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Zvcm0iOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfcHJlX2F1dG9fcGlpIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2Fkc19kYXRhdG9zIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2F1dG9fZXZlbnRzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2Nyb3NzX2RvbWFpbiI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3JlcCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQoKCn0KLCJibG9iIjp7IjEiOiI1IiwiMTAiOiJBVy0xMDg1NDc1NzUyNnxBVy0xNjgzMDM0NTkxNXxHVC01N1ZCVFA3OSIsIjExIjp0cnVlLCIxNCI6IjY3bTAiLCIxNSI6IjAiLCIxNiI6IkNoRUk4SU9jMHdZUWdPbXNrdnVseEtxUkFSSWZBTDJQWVpiTnMzNTF3LzF6N1dpWnRMZVBiYU56c1ZsdUY1NmpVWTBFZFJvQ3MvST0iLCIxNyI6ImMiLCIxOSI6ImRhdGFMYXllciIsIjIwIjoiIiwiMjEiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIyMiI6ImV5SXdJam9pVGs4aUxDSXhJam9pVGs4dE1ETWlMQ0l5SWpwbVlXeHpaU3dpTXlJNkltZHZiMmRzWlM1dWJ5SXNJalFpT2lKeVpXZHBiMjR4SWl3aU5TSTZabUZzYzJVc0lqWWlPblJ5ZFdVc0lqY2lPaUpoWkY5emRHOXlZV2RsZkdGdVlXeDVkR2xqYzE5emRHOXlZV2RsZkdGa1gzVnpaWEpmWkdGMFlYeGhaRjl3WlhKemIyNWhiR2w2WVhScGIyNGlMQ0k1SWpwMGNuVmxmUSIsIjIzIjoiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiLCIyNCI6InRhZ2Fzc2lzdGFudC5nb29nbGUuY29tIiwiMjciOjAuMDA1LCIzIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMzAiOiJOTyIsIjMxIjoiTk8tMDMiLCIzMiI6ZmFsc2UsIjMzIjoicmVnaW9uMSIsIjM0IjoiQVctMTA4NTQ3NTc1MjYiLCIzNSI6IkFXIiwiMzYiOiJodHRwczovL2Fkc2VydmljZS5nb29nbGUuY29tL3BhZ2VhZC9yZWdjbGsiLCIzNyI6Il9fVEFHR1lfSU5TVEFMTEVEIiwiMzgiOiJjY3QuZ29vZ2xlIiwiMzkiOiJnb29nVGFnZ3lSZWZlcnJlciIsIjQwIjoiaHR0cHM6Ly9jY3QuZ29vZ2xlL3RhZ2d5L2FnZW50LmpzIiwiNDEiOiJnb29nbGUudGFnbWFuYWdlci50YS5wcm9kcXVldWUiLCI0MiI6MC4wMSwiNDMiOiJ7XCJrZXlzXCI6W3tcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCS2x5VFgyanlvYnBRQ21mVXlCYmhCeVFIazlaMkhkTjVsSHhwQkF0SUtHTWNtencwZ0UrZWJsWUNtbTFHYTdiWWVUZHlkb0ptZTZJcGFTb0NVMElVVW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiZGVlNGIzNTEtYjBmNS00YzI3LWE4YzgtZWQ2NjA0NzdhNDRjXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRHRZQlJuUEJTMWc2bWVYTzFyUTVhNTJCNUZibmg3REM1anF2MDJpeEpzc24wazFKOXJjSENhVmMvenpSc25zSEJ6U29GS3M2SjhwSDdDY25RUDNFanc9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiYWQxOTNiMmEtNGE5MC00YzFhLWI3OWUtZGUzN2FjMzkxYmQyXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCTVowVU11ZEFlNFBvYWZTVHBVeFB0SWtmQmVDTWJGQlh2dHlSWXZITENTUS9FVXZFSnNtc1Y0dDZOQi9CRVZwcUwzSHY4Z05TUWg3SytTVW9vZjI1YW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDhjNGVmZTEtZmRkMC00MzZhLWFjOGYtOTIzZjExOTE4Nzg3XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRmZsdlVsK3hwSGFGVkNJWU8xS1BMeGt2K0FqZGw0ZDhydnJYaEk2emZwbmJCRHFJNTFERGt0SEhiM1pXSVM1N29EaDBLaXI5QXVDT29uMk1PeE5WOVk9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDMyYmMyNzAtOTllYS00MjIwLWI1NjItZTJjNWFlNzdkNGQ5XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCQVE4VGt5NERMV09KYkhPSGJWWURiUVpFZkVlbGI0RlRCOEVZTVFlUlFpTDFtMUx0QWQwcjN6ZXlMamdaMy9XMjRSOFZmYjIyelkyaXg2Vy9UZkNqakE9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiMDUwYTZlMTEtMzhhYi00ZjgwLTg5Y2ItN2IzMTliOTcwNGMwXCJ9XX0iLCI0NCI6IjExODg5NzkyMH4xMTg4OTc5MzAiLCI0NSI6dHJ1ZSwiNDYiOnsiMSI6IjEwMDAiLCIxMCI6IjY2dTAiLCIxMSI6IjY2ZzAiLCIxNCI6IjEwMDAiLCIxNiI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMTciOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjIiOiI5IiwiMjAiOiI1MDAwIiwiMjEiOiI1MDAwIiwiMjIiOiI0LjQuMCIsIjIzIjoiMC4wLjAiLCIyNSI6IjEiLCIyNiI6IjQwMDAiLCIyNyI6IjEwMCIsIjMiOiI1IiwiNCI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhfGFkX3BlcnNvbmFsaXphdGlvbiIsIjQ0IjoiMTUwMDAiLCI0OCI6IjMwMDAwIiwiNSI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhIiwiNiI6IjEiLCI2MSI6IjEwMDAiLCI2MiI6IkE2T05IUlk3L2J2QnJvK0lNWmQvYTZMTmpuN1NTdjk5OVNrTi9oRkFFOUw2dk1yMzRkTmdmZFNWZFltdjRVK05IWmcxc3hkMzhSdGNpUnBSVXRJUlBnUUFBQUNDZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdWMFlXZHRZVzVoWjJWeUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lVMmhoY21Wa1YyOXlhMlZ5UlhoMFpXNWtaV1JNYVdabGRHbHRaU0lzSW1WNGNHbHllU0k2TVRjM05qY3lPVFl3TUN3aWFYTlVhR2x5WkZCaGNuUjVJanAwY25WbGZRPT0iLCI2MyI6IjEwMDAiLCI2NiI6IjEwMCIsIjciOiIxMCJ9LCI0OCI6dHJ1ZSwiNSI6IkFXLTEwODU0NzU3NTI2IiwiNTEiOnRydWUsIjU1IjpbIkFXLTEwODU0NzU3NTI2IiwiQVctMTY4MzAzNDU5MTUiXSwiNTYiOlt7IjEiOjQwMywiMyI6MC41LCI0IjoxMTU5Mzg0NjUsIjUiOjExNTkzODQ2NiwiNiI6MCwiNyI6Mn0seyIxIjo0MDQsIjMiOjAuNSwiNCI6MTE1OTM4NDY4LCI1IjoxMTU5Mzg0NjksIjYiOjAsIjciOjF9LHsiMSI6NjAyLCIzIjowLjAxLCI0IjoxMjAxMjQ0NTUsIjUiOjEyMDEyNDQ1MywiNiI6MTIwMTI0NDU0LCI3IjozfSx7IjEiOjU2OSwiMiI6dHJ1ZX0seyIxIjo0NzUsIjIiOnRydWV9LHsiMSI6NTAyLCIyIjp0cnVlfSx7IjEiOjU3NywiMiI6dHJ1ZX0seyIxIjo1NjgsIjMiOjAuMDEsIjQiOjExOTc5MTc0OSwiNSI6MTE5NzkxNzQ4LCI2IjowLCI3IjoxfSx7IjEiOjQ5MCwiMiI6dHJ1ZX0seyIxIjo0OTEsIjMiOjAuMDEsIjQiOjExODAxMjAwNywiNSI6MTE4MDEyMDA4LCI2IjoxMTgwMTIwMDksIjciOjF9LHsiMSI6NDgwLCIyIjp0cnVlfSx7IjEiOjU5NCwiMyI6MC4wMSwiNCI6MTE5NzkzOTc0LCI1IjoxMTk3OTM5NzIsIjYiOjExOTc5Mzk3MywiNyI6MX0seyIxIjo1OTksIjIiOnRydWV9LHsiMSI6NTgwLCIzIjowLjEsIjQiOjExOTUyNzAyMCwiNSI6MTE5NTI3MDE5LCI2IjowLCI3IjoxfSx7IjEiOjUyMywiMiI6dHJ1ZX0seyIxIjo1ODEsIjMiOjAuMDEsIjQiOjExOTk0ODg1NCwiNSI6MTE5OTQ4ODUyLCI2IjoxMTk5NDg4NTMsIjciOjN9LHsiMSI6NTU1LCIzIjowLjAxLCI0IjoxMTkyNTk2MDYsIjUiOjExOTI1OTYwNSwiNiI6MCwiNyI6Mn0seyIxIjo1MDQsIjIiOnRydWV9LHsiMSI6NDYyLCIzIjowLjA1LCI0IjoxMTg4MDY1MjQsIjUiOjExODgwNjUyNSwiNiI6MTE4ODA2NTI2LCI3IjoxfSx7IjEiOjQxMywiMiI6dHJ1ZX0seyIxIjo1OTMsIjIiOnRydWV9LHsiMSI6NTA2LCIyIjp0cnVlfSx7IjEiOjUwMCwiMiI6dHJ1ZX0seyIxIjo1NjEsIjMiOjAuMDAxLCI0IjoxMTk0MDQ3MDMsIjUiOjExOTQwNDcwMiwiNiI6MCwiNyI6MX0seyIxIjo0ODEsIjMiOjAuMDAxLCI0IjoxMTk0MDQ3MDEsIjUiOjExOTQwNDcwMCwiNiI6MCwiNyI6MX0seyIxIjo0NTAsIjMiOjAuMDEsIjQiOjExNzIyNzcxNCwiNSI6MTE3MjI3NzE1LCI2IjoxMTcyMjc3MTYsIjciOjN9LHsiMSI6NTgzLCIzIjowLjUsIjQiOjExOTg5NjgwMywiNSI6MTE5ODk2ODAyLCI2IjowLCI3IjoxfSx7IjEiOjQ1OCwiMiI6dHJ1ZX0seyIxIjo1ODIsIjMiOjAuMDEsIjQiOjExOTM4MTY2NCwiNSI6MTE5MzgxNjYyLCI2IjoxMTkzODE2NjMsIjciOjF9LHsiMSI6NTcwLCIyIjp0cnVlfSx7IjEiOjQ5OCwiMyI6MC4yLCI0IjoxMTU2MTY5ODUsIjUiOjExNTYxNjk4NiwiNiI6MCwiNyI6MX0seyIxIjo1OTUsIjIiOnRydWV9LHsiMSI6NTg5LCIzIjowLjAxLCI0IjoxMjAwODQyMTUsIjUiOjEyMDA4NDIxNCwiNiI6MCwiNyI6MX0seyIxIjo0OTUsIjMiOjAuMDUsIjQiOjExODEzMTgxMCwiNSI6MTE4MTMxODA4LCI2IjoxMTgxMzE4MDksIjciOjN9LHsiMSI6NTg3LCIzIjowLjEsIjQiOjExOTczMjE3MSwiNSI6MTE5NzMyMTcwLCI2IjowLCI3IjozfSx7IjEiOjU4NCwiMiI6dHJ1ZX0seyIxIjo1NjQsIjMiOjAuMDAwMSwiNCI6MTE5MjA1MzE3LCI1IjoxMTkyMDUzMTUsIjYiOjExOTIwNTMxNiwiNyI6MX0seyIxIjo1NTcsIjIiOnRydWV9LHsiMSI6NDI3LCIzIjowLjEsIjQiOjExOTcyNDMyMiwiNSI6MTE5NzI0MzIwLCI2IjoxMTk3MjQzMjEsIjciOjJ9LHsiMSI6NTc2LCIzIjowLjAxLCI0IjoxMTkzMTc4MTAsIjUiOjExOTMxNzgxMSwiNiI6MTE5MzE4MTc3LCI3IjozfSx7IjEiOjU3MywiMiI6dHJ1ZX0seyIxIjo0OTksIjIiOnRydWV9LHsiMSI6NTE2LCIzIjowLjEsIjQiOjExODM5NTMzNSwiNSI6MTE4Mzk1MzMzLCI2IjoxMTgzOTUzMzQsIjciOjF9LHsiMSI6NTI0LCIyIjp0cnVlfV0sIjU5IjpbIkFXLTEwODU0NzU3NTI2IiwiQVctMTY4MzAzNDU5MTUiXSwiNiI6IjE3NDAxMjY0MyIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fY2NkX2FkZF8xcF9kYXRhIjp7InJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2NjZF9hZHNfZmlyc3QiOnsicmVhZF9kb21fZWxlbWVudHMiOnsiYWxsb3dlZENzc1NlbGVjdG9ycyI6ImFueSJ9LCJnZXRfdXJsIjp7InVybFBhcnRzIjoic3BlY2lmaWMiLCJwcm90b2NvbCI6dHJ1ZSwiaG9zdCI6dHJ1ZX19CiwKIl9fY2NkX2Fkc19sYXN0Ijp7fQosCiJfX2NjZF9lbV9mb3JtIjp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uZm9ybUludGVyYWN0IiwiZ3RtLmZvcm1TdWJtaXQiLCJndG0uY2xpY2stdjIiXX0sImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9LCJkZXRlY3RfY2xpY2tfZXZlbnRzIjp7fSwiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjp7fX0KLAoiX19jY2RfcHJlX2F1dG9fcGlpIjp7ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiOnsibGltaXREYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dBdXRvRGF0YVNvdXJjZXMiOnRydWUsImFsbG93TWFudWFsRGF0YVNvdXJjZXMiOmZhbHNlLCJhbGxvd0NvZGVEYXRhU291cmNlcyI6ZmFsc2V9LCJhY2Nlc3NfY29uc2VudCI6eyJjb25zZW50VHlwZXMiOlt7ImNvbnNlbnRUeXBlIjoiYWRfc3RvcmFnZSIsInJlYWQiOnRydWUsIndyaXRlIjpmYWxzZX0seyJjb25zZW50VHlwZSI6ImFuYWx5dGljc19zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19fQosCiJfX2UiOnsicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6InNwZWNpZmljIiwia2V5UGF0dGVybnMiOlsiZXZlbnQiXX19CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fb2d0X2Fkc19kYXRhdG9zIjp7fQosCiJfX29ndF9hdXRvX2V2ZW50cyI6e30KLAoiX19vZ3RfY3Jvc3NfZG9tYWluIjp7fQosCiJfX3JlcCI6e30KCgp9CgoKCiwic2VjdXJpdHlfZ3JvdXBzIjp7CiJnb29nbGUiOlsKIl9fY2NkX2FkZF8xcF9kYXRhIgosCiJfX2NjZF9hZHNfZmlyc3QiCiwKIl9fY2NkX2Fkc19sYXN0IgosCiJfX2NjZF9lbV9mb3JtIgosCiJfX2NjZF9wcmVfYXV0b19waWkiCiwKIl9fZSIKLAoiX19vZ3RfMXBfZGF0YV92MiIKLAoiX19vZ3RfYWRzX2RhdGF0b3MiCiwKIl9fb2d0X2F1dG9fZXZlbnRzIgosCiJfX29ndF9jcm9zc19kb21haW4iCiwKIl9fcmVwIgoKXQoKCn0KCgoKCgp9OwoKCgoKdmFyIGssYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9LGJhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9LGNhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpOwp9LGhhPWNhKHRoaXMpLGlhPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCJ4Iik9PT0ic3ltYm9sIixrYT17fSxsYT17fSxuYT1mdW5jdGlvbihhLGIsYyl7aWYoIWN8fGEhPW51bGwpe3ZhciBkPWxhW2JdO2lmKGQ9PW51bGwpcmV0dXJuIGFbYl07dmFyIGU9YVtkXTtyZXR1cm4gZSE9PXZvaWQgMD9lOmFbYl19fSxvYT1mdW5jdGlvbihhLGIsYyl7aWYoYilhOnt2YXIgZD1hLnNwbGl0KCIuIiksZT1kLmxlbmd0aD09PTEsZj1kWzBdLGc7IWUmJmYgaW4ga2E/Zz1rYTpnPWhhO2Zvcih2YXIgaD0wO2g8ZC5sZW5ndGgtMTtoKyspe3ZhciBsPWRbaF07aWYoIShsIGluIGcpKWJyZWFrIGE7Zz1nW2xdfXZhciBuPWRbZC5sZW5ndGgtMV0scD1pYSYmYz09PSJlczYiP2dbbl06bnVsbCxxPWIocCk7aWYocSE9bnVsbClpZihlKWJhKGthLG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSk7ZWxzZSBpZihxIT09cCl7aWYobGFbbl09PT12b2lkIDApe3ZhciByPQpNYXRoLnJhbmRvbSgpKjFFOT4+PjA7bGFbbl09aWE/aGEuU3ltYm9sKG4pOiIkanNjcCQiK3IrIiQiK259YmEoZyxsYVtuXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX19fSxwYTtpZihpYSYmdHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilwYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcmE7YTp7dmFyIHRhPXthOiEwfSx1YT17fTt0cnl7dWEuX19wcm90b19fPXRhO3JhPXVhLmE7YnJlYWsgYX1jYXRjaChhKXt9cmE9ITF9cGE9cmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsfQp2YXIgdmE9cGEsd2E9ZnVuY3Rpb24oYSxiKXthLnByb3RvdHlwZT1hYShiLnByb3RvdHlwZSk7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTtpZih2YSl2YShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuRnQ9Yi5wcm90b3R5cGV9LHhhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSxtPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDp4YShhKX07CnRocm93IEVycm9yKFN0cmluZyhhKSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9LHlhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO3JldHVybiBjfSx3PWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgQXJyYXk/YTp5YShtKGEpKX0sQWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHphKGEsYSl9LHphPWZ1bmN0aW9uKGEsYil7YS5yYXc9YjtPYmplY3QuZnJlZXplJiYoT2JqZWN0LmZyZWV6ZShhKSxPYmplY3QuZnJlZXplKGIpKTtyZXR1cm4gYX0sQmE9aWEmJnR5cGVvZiBuYShPYmplY3QsImFzc2lnbiIpPT0iZnVuY3Rpb24iP25hKE9iamVjdCwiYXNzaWduIik6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG51bGxpc2ggYXJnIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdOwppZihkKWZvcih2YXIgZSBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07b2EoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxCYX0sImVzNiIpO3ZhciBDYT1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fSxEYT1mdW5jdGlvbigpe3RoaXMuZmE9ITE7dGhpcy5SPW51bGw7dGhpcy5qYT12b2lkIDA7dGhpcy5IPTE7dGhpcy5OPXRoaXMuWj0wO3RoaXMuTGE9dGhpcy5LPW51bGx9LEVhPWZ1bmN0aW9uKGEpe2lmKGEuZmEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2EuZmE9ITB9O0RhLnByb3RvdHlwZS55YT1mdW5jdGlvbihhKXt0aGlzLmphPWF9Owp2YXIgR2E9ZnVuY3Rpb24oYSxiKXthLks9e2FvOmIsaXNFeGNlcHRpb246ITB9O2EuSD1hLlp8fGEuTn07RGEucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07RGEucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuamF9O0RhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5LPXtyZXR1cm46YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlWyJyZXR1cm4iXT1EYS5wcm90b3R5cGUucmV0dXJuO0RhLnByb3RvdHlwZS5Baj1mdW5jdGlvbihhKXt0aGlzLks9e25kOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLkFqO0RhLnByb3RvdHlwZS5hYz1mdW5jdGlvbihhLGIpe3RoaXMuSD1iO3JldHVybnt2YWx1ZTphfX07RGEucHJvdG90eXBlLnlpZWxkPURhLnByb3RvdHlwZS5hYzsKRGEucHJvdG90eXBlLnhzPWZ1bmN0aW9uKGEsYil7dmFyIGM9bShhKSxkPWMubmV4dCgpO0NhKGQpO2lmKGQuZG9uZSl0aGlzLmphPWQudmFsdWUsdGhpcy5IPWI7ZWxzZSByZXR1cm4gdGhpcy5SPWMsdGhpcy5hYyhkLnZhbHVlLGIpfTtEYS5wcm90b3R5cGUueWllbGRBbGw9RGEucHJvdG90eXBlLnhzO0RhLnByb3RvdHlwZS5uZD1mdW5jdGlvbihhKXt0aGlzLkg9YX07RGEucHJvdG90eXBlLmp1bXBUbz1EYS5wcm90b3R5cGUubmQ7RGEucHJvdG90eXBlLkRqPWZ1bmN0aW9uKCl7dGhpcy5IPTB9O0RhLnByb3RvdHlwZS5qdW1wVG9FbmQ9RGEucHJvdG90eXBlLkRqO0RhLnByb3RvdHlwZS5Oaj1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO2IhPXZvaWQgMCYmKHRoaXMuTj1iKX07RGEucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuTmo7RGEucHJvdG90eXBlLnZnPWZ1bmN0aW9uKGEpe3RoaXMuWj0wO3RoaXMuTj1hfHwwfTsKRGEucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUudmc7RGEucHJvdG90eXBlLklqPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5aPWJ8fDB9O0RhLnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPURhLnByb3RvdHlwZS5JajtEYS5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oYSl7dGhpcy5aPWF8fDA7dmFyIGI9dGhpcy5LLmFvO3RoaXMuSz1udWxsO3JldHVybiBifTtEYS5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPURhLnByb3RvdHlwZS5QaDtEYS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oYSxiLGMpe2M/dGhpcy5MYVtjXT10aGlzLks6dGhpcy5MYT1bdGhpcy5LXTt0aGlzLlo9YXx8MDt0aGlzLk49Ynx8MH07RGEucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5rZDsKRGEucHJvdG90eXBlLmhlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYS5zcGxpY2UoYnx8MClbMF0sZD10aGlzLks9dGhpcy5LfHxjO2Q/ZC5pc0V4Y2VwdGlvbj90aGlzLkg9dGhpcy5afHx0aGlzLk46ZC5uZCE9dm9pZCAwJiZ0aGlzLk48ZC5uZD8odGhpcy5IPWQubmQsdGhpcy5LPW51bGwpOnRoaXMuSD10aGlzLk46dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUuaGU7RGEucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSGEoYSl9O0RhLnByb3RvdHlwZS5mb3JJbj1EYS5wcm90b3R5cGUuZmU7dmFyIEhhPWZ1bmN0aW9uKGEpe3RoaXMuSz1hO3RoaXMuSD1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLkgucHVzaChiKTt0aGlzLkgucmV2ZXJzZSgpfTtIYS5wcm90b3R5cGUuaG89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuSC5sZW5ndGg+MDspe3ZhciBhPXRoaXMuSC5wb3AoKTtpZihhIGluIHRoaXMuSylyZXR1cm4gYX1yZXR1cm4gbnVsbH07CkhhLnByb3RvdHlwZS5nZXROZXh0PUhhLnByb3RvdHlwZS5obzsKdmFyIElhPWZ1bmN0aW9uKGEpe3RoaXMuSD1uZXcgRGE7dGhpcy5LPWF9LExhPWZ1bmN0aW9uKGEsYil7RWEoYS5IKTt2YXIgYz1hLkguUjtpZihjKXJldHVybiBKYShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkgucmV0dXJuKTthLkgucmV0dXJuKGIpO3JldHVybiBLYShhKX0sSmE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkguUixjKTtDYShlKTtpZighZS5kb25lKXJldHVybiBhLkguZmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkguUj1udWxsLEdhKGEuSCxnKSxLYShhKX1hLkguUj1udWxsO2QuY2FsbChhLkgsZik7cmV0dXJuIEthKGEpfSxLYT1mdW5jdGlvbihhKXtmb3IoO2EuSC5IOyl0cnl7dmFyIGI9YS5LKGEuSCk7aWYoYilyZXR1cm4gYS5ILmZhPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGQpe2EuSC5qYT12b2lkIDAsR2EoYS5ILApkKX1hLkguZmE9ITE7aWYoYS5ILkspe3ZhciBjPWEuSC5LO2EuSC5LPW51bGw7aWYoYy5pc0V4Y2VwdGlvbil0aHJvdyBjLmFvO3JldHVybnt2YWx1ZTpjLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSxNYT1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlIubmV4dCxiLGEuSC55YSk6KGEuSC55YShiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy50aHJvdz1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUlsidGhyb3ciXSxiLGEuSC55YSk6KEdhKGEuSCxiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIExhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX0sTmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTWEobmV3IElhKGIpKTt2YSYmYS5wcm90b3R5cGUmJnZhKGMsCmEucHJvdG90eXBlKTtyZXR1cm4gY30sT2E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0sUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9Oy8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBSYT10aGlzfHxzZWxmLFNhPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkZ0PWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5udj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19O3ZhciBUYT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuZGF0YT1ifTt2YXIgVWE9ZnVuY3Rpb24oKXt0aGlzLm1hcD17fTt0aGlzLkg9e319O1VhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwWyJkdXN0LiIrYV19O1VhLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGMpfHwodGhpcy5tYXBbY109Yil9O1VhLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KCJkdXN0LiIrYSl9O1VhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7dmFyIGI9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShiKXx8ZGVsZXRlIHRoaXMubWFwW2JdfTsKdmFyIFZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLm1hcClpZihhLm1hcC5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7c3dpdGNoKGIpe2Nhc2UgMTpjLnB1c2goZSk7YnJlYWs7Y2FzZSAyOmMucHVzaChhLm1hcFtkXSk7YnJlYWs7Y2FzZSAzOmMucHVzaChbZSxhLm1hcFtkXV0pfX1yZXR1cm4gY307VWEucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMSl9O1VhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDIpfTtVYS5wcm90b3R5cGUuZmM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywzKX07dmFyIFdhPWZ1bmN0aW9uKCl7fTtXYS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBYYT1mdW5jdGlvbigpe3RoaXMudmFsdWU9e307dGhpcy5wcmVmaXg9Imd0bS4ifTtrPVhhLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXT1ifTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByZWZpeCtTdHJpbmcoYSkpfTtrLmRlbGV0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnByZWZpeCtTdHJpbmcoYSk7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkoYik/KGRlbGV0ZSB0aGlzLnZhbHVlW2JdLCEwKTohMX07ay5jbGVhcj1mdW5jdGlvbigpe3RoaXMudmFsdWU9e319OwprLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uIGMoKXt2YXIgZCxlLGY7cmV0dXJuIE5hKGMsZnVuY3Rpb24oZyl7c3dpdGNoKGcuSCl7Y2FzZSAxOmcudmcoMiksZT1nLmZlKGEudmFsdWUpO2Nhc2UgNDppZigoZD1lLmhvKCkpPT1udWxsKXtnLm5kKDIpO2JyZWFrfWlmKCFhLnZhbHVlLmhhc093blByb3BlcnR5KGQpKXtnLm5kKDQpO2JyZWFrfWY9UWE7cmV0dXJuIGcuYWMoYS52YWx1ZVtkXSw4KTtjYXNlIDg6ZihnLmphKTtnLm5kKDQpO2JyZWFrO2Nhc2UgMjpnLmtkKCksZy5oZSgwKX19KX0oKX07aGEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWGEucHJvdG90eXBlLHtzaXplOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RofX19KTsKZnVuY3Rpb24gWWEoKXt0cnl7aWYoTWFwKXJldHVybiBuZXcgTWFwfWNhdGNoKGEpe31yZXR1cm4gbmV3IFhhfTt2YXIgWmE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlcz1bXX07WmEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlcy5pbmRleE9mKGEpPT09LTEmJnRoaXMudmFsdWVzLnB1c2goYSl9O1phLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmluZGV4T2YoYSk+LTF9O3ZhciAkYT1mdW5jdGlvbihhLGIpe3RoaXMuZmE9YTt0aGlzLnBhcmVudD1iO3RoaXMuUj10aGlzLks9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5OPWZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZC5hcHBseShlLGYpfTt0aGlzLkg9WWEoKTt2YXIgYzthOnt0cnl7aWYoU2V0KXtjPW5ldyBTZXQ7YnJlYWsgYX19Y2F0Y2goZCl7fWM9bmV3IFphfXRoaXMuWj1jfTskYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITEpfTskYS5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMCl9O3ZhciBhYj1mdW5jdGlvbihhLGIsYyxkKXthLkhifHxhLlouaGFzKGIpfHwoZCYmYS5aLmFkZChiKSxhLkguc2V0KGIsYykpfTtrPSRhLnByb3RvdHlwZTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMuSC5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy5aLmhhcyhhKXx8dGhpcy5ILnNldChhLGIpKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5oYXMoYSk/dGhpcy5ILmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuSC5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyAkYSh0aGlzLmZhLHRoaXMpO3RoaXMuSyYmYS5RYih0aGlzLkspO2Euc2QodGhpcy5OKTthLnVlKHRoaXMuUik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYX07ay5RYj1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9OwprLnNkPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5SPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTt2YXIgYmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGEubWVzc2FnZSk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy52bz1hO3RoaXMuU249Yz09PXZvaWQgMD8hMTpjO3RoaXMuSz1bXTt0aGlzLkg9Yn07d2EoYmIsRXJyb3IpO3ZhciBjYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGJiP2E6bmV3IGJiKGEsdm9pZCAwLCEwKX07dmFyIGRiPVlhKCk7ZnVuY3Rpb24gZWIoYSxiKXtmb3IodmFyIGMsZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZSYmIShjPWZiKGEsZS52YWx1ZSksYyBpbnN0YW5jZW9mIFRhKTtlPWQubmV4dCgpKTtyZXR1cm4gY31mdW5jdGlvbiBmYihhLGIpe3RyeXt2YXIgYz1iWzBdLGQ9Yi5zbGljZSgxKSxlPVN0cmluZyhjKSxmPWRiLmhhcyhlKT9kYi5nZXQoZSk6YS5nZXQoZSk7aWYoIWZ8fHR5cGVvZiBmLmludm9rZSE9PSJmdW5jdGlvbiIpdGhyb3cgY2IoRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBub24tZnVuY3Rpb24gIitiWzBdKyIuIikpO3JldHVybiBmLmFwcGx5KGEsZCl9Y2F0Y2goaCl7dmFyIGc9YS5mbygpO2cmJmcoaCxiLmNvbnRleHQ/e2lkOmJbMF0sbGluZTpiLmNvbnRleHQubGluZX06bnVsbCk7dGhyb3cgaDt9fTt2YXIgZ2I9ZnVuY3Rpb24oKXt0aGlzLks9bmV3IFdhO3RoaXMuSD1uZXcgJGEodGhpcy5LKX07az1nYi5wcm90b3R5cGU7ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07ay5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJrKFthXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2sucms9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj1tKE9hLmFwcGx5KDAsYXJndW1lbnRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYT1mYih0aGlzLkgsYy52YWx1ZSk7cmV0dXJuIGF9O2suSnE9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9dGhpcy5ILndiKCk7Yy51ZShhKTtmb3IodmFyIGQsZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQ9ZmIoYyxmLnZhbHVlKTtyZXR1cm4gZH07ay5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTt2YXIgaGI9ZnVuY3Rpb24oYSxiKXt0aGlzLlI9YTt0aGlzLnBhcmVudD1iO3RoaXMuTj10aGlzLkg9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5LPWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYy5hcHBseShkLGUpfTt0aGlzLnZhbHVlcz1uZXcgVWF9O2hiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMSl9O2hiLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCEwKX07dmFyIGpiPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhLkhiKWlmKGQpe3ZhciBlPWEudmFsdWVzO2Uuc2V0KGIsYyk7ZS5IWyJkdXN0LiIrYl09ITB9ZWxzZSBhLnZhbHVlcy5zZXQoYixjKX07az1oYi5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMudmFsdWVzLmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLnZhbHVlcy5zZXQoYSxiKSl9OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGEpP3RoaXMudmFsdWVzLmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMudmFsdWVzLmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGhiKHRoaXMuUix0aGlzKTt0aGlzLkgmJmEuUWIodGhpcy5IKTthLnNkKHRoaXMuSyk7YS51ZSh0aGlzLk4pO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07ay5RYj1mdW5jdGlvbihhKXt0aGlzLkg9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLk49YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O3ZhciBrYj1mdW5jdGlvbigpe3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWF9O2s9a2IucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBsYigpe2Zvcih2YXIgYT1tYixiPXt9LGM9MDtjPGEubGVuZ3RoOysrYyliW2FbY11dPWM7cmV0dXJuIGJ9ZnVuY3Rpb24gbmIoKXt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO2ErPWEudG9Mb3dlckNhc2UoKSsiMDEyMzQ1Njc4OS1fIjtyZXR1cm4gYSsiLiJ9dmFyIG1iLG9iO2Z1bmN0aW9uIHBiKGEpe21iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKz0zKXt2YXIgZD1jKzE8YS5sZW5ndGgsZT1jKzI8YS5sZW5ndGgsZj1hLmNoYXJDb2RlQXQoYyksZz1kP2EuY2hhckNvZGVBdChjKzEpOjAsaD1lP2EuY2hhckNvZGVBdChjKzIpOjAsbD1mPj4yLG49KGYmMyk8PDR8Zz4+NCxwPShnJjE1KTw8MnxoPj42LHE9aCY2MztlfHwocT02NCxkfHwocD02NCkpO2IucHVzaChtYltsXSxtYltuXSxtYltwXSxtYltxXSl9cmV0dXJuIGIuam9pbigiIil9CmZ1bmN0aW9uIHFiKGEpe2Z1bmN0aW9uIGIobCl7Zm9yKDtkPGEubGVuZ3RoOyl7dmFyIG49YS5jaGFyQXQoZCsrKSxwPW9iW25dO2lmKHAhPW51bGwpcmV0dXJuIHA7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChuKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIituKTt9cmV0dXJuIGx9bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBjPSIiLGQ9MDs7KXt2YXIgZT1iKC0xKSxmPWIoMCksZz1iKDY0KSxoPWIoNjQpO2lmKGg9PT02NCYmZT09PS0xKXJldHVybiBjO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUoZTw8MnxmPj40KTtnIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGY8PDQmMjQwfGc+PjIpLGghPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZzw8NiYxOTJ8aCkpKX19O3ZhciByYj17fTtmdW5jdGlvbiBzYihhLGIpe3ZhciBjPXJiW2FdO2N8fChjPXJiW2FdPVtdKTtjW2JdPSEwfWZ1bmN0aW9uIHRiKCl7ZGVsZXRlIHJiLkdBNF9FVkVOVH1mdW5jdGlvbiB1Yigpe3ZhciBhPXZiLkguc2xpY2UoKTtyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTD1hfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKWQlOD09PTAmJmQ+MCYmKGIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSxjPTApLGFbZF0mJihjfD0xPDxkJTgpO2M+MCYmYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO3JldHVybiBwYihiLmpvaW4oIiIpKS5yZXBsYWNlKC9cLiskLywiIil9O2Z1bmN0aW9uIHhiKCl7fWZ1bmN0aW9uIHliKGEpe3JldHVybiB0eXBlb2YgYT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gemIoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKX1mdW5jdGlvbiBCYihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX1mdW5jdGlvbiBDYihhLGIpe2lmKGEmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmYihhW2NdKSlyZXR1cm4gYVtjXX1mdW5jdGlvbiBEYihhLGIpe2lmKCFBYihhKXx8IUFiKGIpfHxhPmIpYT0wLGI9MjE0NzQ4MzY0NztyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihiLWErMSkrYSl9CmZ1bmN0aW9uIEViKGEsYil7Zm9yKHZhciBjPW5ldyBGYixkPTA7ZDxhLmxlbmd0aDtkKyspYy5zZXQoYVtkXSwhMCk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5nZXQoYltlXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2IoYSxiKXtmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihjLGFbY10pfWZ1bmN0aW9uIEhiKGEpe3JldHVybiEhYSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEFyZ3VtZW50c10ifHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiY2FsbGVlIikpfWZ1bmN0aW9uIEliKGEpe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihhKSl8fDB9ZnVuY3Rpb24gSmIoYSl7cmV0dXJuImZhbHNlIj09PVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpPyExOiEhYX0KZnVuY3Rpb24gS2IoYSl7dmFyIGI9W107aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2goU3RyaW5nKGFbY10pKTtyZXR1cm4gYn1mdW5jdGlvbiBMYihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToiIn1mdW5jdGlvbiBNYigpe3JldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpKX1mdW5jdGlvbiBOYigpe3JldHVybiBNYigpLmdldFRpbWUoKX12YXIgRmI9ZnVuY3Rpb24oKXt0aGlzLnByZWZpeD0iZ3RtLiI7dGhpcy52YWx1ZXM9e319O0ZiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXT1ifTtGYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXX07RmIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldChhKSE9PXZvaWQgMH07CmZ1bmN0aW9uIE9iKGEsYixjKXtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOmN9ZnVuY3Rpb24gUGIoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9dm9pZCAwO3RyeXtjKCl9Y2F0Y2goZCl7fX19fWZ1bmN0aW9uIFFiKGEsYil7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YltjXSl9ZnVuY3Rpb24gUmIoYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdKSxjLnB1c2guYXBwbHkoYyxiW2FbZF1dfHxbXSk7cmV0dXJuIGN9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZygwLGIubGVuZ3RoKT09PWJ9ZnVuY3Rpb24gVGIoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZyhhLmxlbmd0aC1iLmxlbmd0aCxhLmxlbmd0aCk9PT1ifQpmdW5jdGlvbiBVYihhLGIsYyl7Yz1jfHxbXTtmb3IodmFyIGQ9YSxlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7aWYoIWQuaGFzT3duUHJvcGVydHkoYltlXSkpcmV0dXJuO2Q9ZFtiW2VdXTtpZihjLmluZGV4T2YoZCk+PTApcmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjPXt9LGQ9YyxlPWEuc3BsaXQoIi4iKSxmPTA7ZjxlLmxlbmd0aC0xO2YrKylkPWRbZVtmXV09e307ZFtlW2UubGVuZ3RoLTFdXT1iO3JldHVybiBjfXZhciBXYj0vXlx3ezEsOX0kLztmdW5jdGlvbiBZYihhLGIpe2E9YXx8e307Yj1ifHwiLCI7dmFyIGM9W107R2IoYSxmdW5jdGlvbihkLGUpe1diLnRlc3QoZCkmJmUmJmMucHVzaChkKX0pO3JldHVybiBjLmpvaW4oYil9CmZ1bmN0aW9uIFpiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTtkPDEyOD9iLnB1c2goZCk6ZDwyMDQ4P2IucHVzaCgxOTJ8ZD4+NiwxMjh8ZCY2Myk6ZDw1NTI5Nnx8ZD49NTczNDQ/Yi5wdXNoKDIyNHxkPj4xMiwxMjh8ZD4+NiY2MywxMjh8ZCY2Myk6KGQ9NjU1MzYrKChkJjEwMjMpPDwxMHxhLmNoYXJDb2RlQXQoKytjKSYxMDIzKSxiLnB1c2goMjQwfGQ+PjE4LDEyOHxkPj4xMiY2MywxMjh8ZD4+NiY2MywxMjh8ZCY2MykpfXJldHVybiBuZXcgVWludDhBcnJheShiKX1mdW5jdGlvbiAkYihhKXtpZighYSlyZXR1cm4gYTt2YXIgYj1hO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChkKXt9dmFyIGM9Yi5zcGxpdCgiLCIpO3JldHVybiBjLmxlbmd0aD09PTImJmNbMF09PT1jWzFdP2NbMF06YX0KZnVuY3Rpb24gYWMoYSxiLGMpe2Z1bmN0aW9uIGQobil7dmFyIHA9bi5zcGxpdCgiPSIpWzBdO2lmKGEuaW5kZXhPZihwKTwwKXJldHVybiBuO2lmKGMhPT12b2lkIDApcmV0dXJuIHArIj0iK2N9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5zcGxpdCgiJiIpLm1hcChkKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT12b2lkIDB9KS5qb2luKCImIil9dmFyIGY9Yi5ocmVmLnNwbGl0KC9bPyNdLylbMF0sZz1iLnNlYXJjaCxoPWIuaGFzaDtnWzBdPT09Ij8iJiYoZz1nLnN1YnN0cmluZygxKSk7aFswXT09PSIjIiYmKGg9aC5zdWJzdHJpbmcoMSkpO2c9ZShnKTtoPWUoaCk7ZyE9PSIiJiYoZz0iPyIrZyk7aCE9PSIiJiYoaD0iIyIraCk7dmFyIGw9IiIrZitnK2g7bFtsLmxlbmd0aC0xXT09PSIvIiYmKGw9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0xKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGJjKGEpe2Zvcih2YXIgYj0wO2I8MzsrK2IpdHJ5e3ZhciBjPWRlY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoYz09PWEpYnJlYWs7YT1jfWNhdGNoKGQpe3JldHVybiIifXJldHVybiBhfWZ1bmN0aW9uIGNjKCl7dmFyIGE9QSxiO2E6e3ZhciBjPWEuY3J5cHRvfHxhLm1zQ3J5cHRvO2lmKGMmJmMuZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgZD1uZXcgVWludDhBcnJheSgyNSk7Yy5nZXRSYW5kb21WYWx1ZXMoZCk7Yj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZCkpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2JyZWFrIGF9Y2F0Y2goZSl7fWI9dm9pZCAwfXJldHVybiBifTsvKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgZGM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsZWM7ZnVuY3Rpb24gZmMoKXt2YXIgYT1udWxsO2lmKCFkYylyZXR1cm4gYTt0cnl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2E9ZGMuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9ZnVuY3Rpb24gaGMoKXtlYz09PXZvaWQgMCYmKGVjPWZjKCkpO3JldHVybiBlY307dmFyIGljPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtpYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTtmdW5jdGlvbiBqYyhhKXt2YXIgYj1hLGM9aGMoKSxkPWM/Yy5jcmVhdGVTY3JpcHRVUkwoYik6YjtyZXR1cm4gbmV3IGljKGQpfWZ1bmN0aW9uIGtjKGEpe2lmKGEgaW5zdGFuY2VvZiBpYylyZXR1cm4gYS5IO3Rocm93IEVycm9yKCIiKTt9O3ZhciBsYz1BYShbIiJdKSxtYz16YShbIlx4MDAiXSxbIlxcMCJdKSxuYz16YShbIlxuIl0sWyJcXG4iXSksb2M9emEoWyJceDAwIl0sWyJcXHUwMDAwIl0pO2Z1bmN0aW9uIHBjKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobGMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG1jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShuYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEob2MpfSk7dmFyIHFjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtxYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTt2YXIgcmM9ZnVuY3Rpb24oYSl7dGhpcy5Kcz1hfTtmdW5jdGlvbiBzYyhhKXtyZXR1cm4gbmV3IHJjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciB0Yz1bc2MoImRhdGEiKSxzYygiaHR0cCIpLHNjKCJodHRwcyIpLHNjKCJtYWlsdG8iKSxzYygiZnRwIiksbmV3IHJjKGZ1bmN0aW9uKGEpe3JldHVybi9eW146XSooWy8/I118JCkvLnRlc3QoYSl9KV07ZnVuY3Rpb24gdWMoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP3RjOmI7aWYoYSBpbnN0YW5jZW9mIHFjKXJldHVybiBhO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiByYyYmZC5KcyhhKSlyZXR1cm4gbmV3IHFjKGEpfX12YXIgdmM9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTsKZnVuY3Rpb24gd2MoYSl7dmFyIGI7aWYoYSBpbnN0YW5jZW9mIHFjKWlmKGEgaW5zdGFuY2VvZiBxYyliPWEuSDtlbHNlIHRocm93IEVycm9yKCIiKTtlbHNlIGI9dmMudGVzdChhKT9hOnZvaWQgMDtyZXR1cm4gYn07ZnVuY3Rpb24geGMoYSxiKXt2YXIgYz13YyhiKTtjIT09dm9pZCAwJiYoYS5hY3Rpb249Yyl9O2Z1bmN0aW9uIHljKGEsYil7dGhyb3cgRXJyb3IoYj09PXZvaWQgMD8idW5leHBlY3RlZCB2YWx1ZSAiK2ErIiEiOmIpO307dmFyIHpjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTt6Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTt2YXIgQmM9ZnVuY3Rpb24oKXt0aGlzLkg9QWNbMF0udG9Mb3dlckNhc2UoKX07QmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1bbmV3IEJjXTtpZihjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO3ZhciBkPWMubWFwKGZ1bmN0aW9uKGYpe3ZhciBnO2lmKGYgaW5zdGFuY2VvZiBCYylnPWYuSDtlbHNlIHRocm93IEVycm9yKCIiKTtyZXR1cm4gZ30pLGU9Yi50b0xvd2VyQ2FzZSgpO2lmKGQuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGUuaW5kZXhPZihmKSE9PTB9KSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInK2IrJyIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpO2Euc2V0QXR0cmlidXRlKGIsInRydWUiKX07dmFyIERjPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07IkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLAoiSU5QVVQiXSk7ZnVuY3Rpb24gRWMoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmF9O3ZhciBBPXdpbmRvdyxGYz1bXSxHYz13aW5kb3cuaGlzdG9yeSxCPWRvY3VtZW50LEhjPW5hdmlnYXRvcjtmdW5jdGlvbiBJYygpe3ZhciBhO3RyeXthPUhjLnNlcnZpY2VXb3JrZXJ9Y2F0Y2goYil7cmV0dXJufXJldHVybiBhfXZhciBKYz1CLmN1cnJlbnRTY3JpcHQsS2M9SmMmJkpjLnNyYztmdW5jdGlvbiBNYyhhLGIpe3ZhciBjPUEsZD1jW2FdO2NbYV09ZD09PXZvaWQgMD9iOmQ7cmV0dXJuIGNbYV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuKEhjLnVzZXJBZ2VudHx8IiIpLmluZGV4T2YoYSkhPT0tMX1mdW5jdGlvbiBPYygpe3JldHVybiBOYygiRmlyZWZveCIpfHxOYygiRnhpT1MiKX1mdW5jdGlvbiBQYygpe3JldHVybihOYygiR1NBIil8fE5jKCJHb29nbGVBcHAiKSkmJihOYygiaVBob25lIil8fE5jKCJpUGFkIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIE5jKCJFZGcvIil8fE5jKCJFZGdBLyIpfHxOYygiRWRnaU9TLyIpfQp2YXIgUmM9e2FzeW5jOjEsbm9uY2U6MSxvbmVycm9yOjEsb25sb2FkOjEsc3JjOjEsdHlwZToxfSxTYz17aGVpZ2h0OjEsb25sb2FkOjEsc3JjOjEsc3R5bGU6MSx3aWR0aDoxfTtmdW5jdGlvbiBUYyhhLGIsYyl7YiYmR2IoYixmdW5jdGlvbihkLGUpe2Q9ZC50b0xvd2VyQ2FzZSgpO2MuaGFzT3duUHJvcGVydHkoZCl8fGEuc2V0QXR0cmlidXRlKGQsZSl9KX0KZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXt2YXIgZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1RjKGYsZCxSYyk7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2YuYXN5bmM9ZCYmZC5hc3luYz09PSExPyExOiEwO3ZhciBnO2c9amMoRWMoYSkpO2Yuc3JjPWtjKGcpO3ZhciBoLGw9Zi5vd25lckRvY3VtZW50O2w9bD09PXZvaWQgMD9kb2N1bWVudDpsO3ZhciBuLHAscT0ocD0obj1sKS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6cC5jYWxsKG4sInNjcmlwdFtub25jZV0iKTsoaD1xPT1udWxsPyIiOnEubm9uY2V8fHEuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmYuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7YiYmKGYub25sb2FkPWIpO2MmJihmLm9uZXJyb3I9Yyk7ZT9lLmFwcGVuZENoaWxkKGYpOlZjLkJzKGYpO3JldHVybiBmfQpmdW5jdGlvbiBXYygpe2lmKEtjKXt2YXIgYT1LYy50b0xvd2VyQ2FzZSgpO2lmKGEuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTApcmV0dXJuIDI7aWYoYS5pbmRleE9mKCJodHRwOi8vIik9PT0wKXJldHVybiAzfXJldHVybiAxfWZ1bmN0aW9uIFhjKGEsYixjLGQsZSxmKXtmPWY9PT12b2lkIDA/ITA6Zjt2YXIgZz1lLGg9ITE7Z3x8KGc9Qi5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxoPSEwKTtUYyhnLGMsU2MpO2QmJkdiKGQsZnVuY3Rpb24obixwKXtnLmRhdGFzZXRbbl09cH0pO2YmJihnLmhlaWdodD0iMCIsZy53aWR0aD0iMCIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixnLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2EhPT12b2lkIDAmJihnLnNyYz1hKTtpZihoKXt2YXIgbD1CLmJvZHkmJkIuYm9keS5sYXN0Q2hpbGR8fEIuYm9keXx8Qi5oZWFkO2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxsKX1iJiYoZy5vbmxvYWQ9Yik7cmV0dXJuIGd9CmZ1bmN0aW9uIFpjKCl7cmV0dXJuIFZjLkVyLmFwcGx5KFZjLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9ZnVuY3Rpb24gJGMoYSxiLGMsZCl7YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEhZCl9ZnVuY3Rpb24gYWQoYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gYmQoYSl7QS5zZXRUaW1lb3V0KGEsMCl9ZnVuY3Rpb24gY2QoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZCxlPShkPUEpLnNldEludGVydmFsLmFwcGx5KGQsW2EsYl0uY29uY2F0KHcoYykpKTtGYy5wdXNoKGUpO3JldHVybiBlfQpmdW5jdGlvbiBkZChhKXt2YXIgYj1BO3liKGIucXVldWVNaWNyb3Rhc2spP2IucXVldWVNaWNyb3Rhc2soYSk6eWIoYi5Qcm9taXNlKSYmYi5Qcm9taXNlLnJlc29sdmU/Yi5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7YSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTpiZChhKX1mdW5jdGlvbiBlZChhLGIpe3JldHVybiBhJiZiJiZhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlc1tiXT9hLmF0dHJpYnV0ZXNbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBmZChhKXt2YXIgYj1hLmlubmVyVGV4dHx8YS50ZXh0Q29udGVudHx8IiI7YiYmYiE9PSIgIiYmKGI9Yi5yZXBsYWNlKC9eW1xzXHhhMF0rL2csIiIpLGI9Yi5yZXBsYWNlKC9bXHNceGEwXSskL2csIiIpKTtiJiYoYj1iLnJlcGxhY2UoLyhceGEwK3xcc3syLH18XG58XHJcdCkvZywiICIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gZ2QoYSl7dmFyIGI9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWIsZCxlPUVjKCJBPGRpdj4iK2ErIjwvZGl2PiIpLGY9aGMoKSxnPWY/Zi5jcmVhdGVIVE1MKGUpOmU7ZD1uZXcgemMoZyk7aWYoYy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChjLnRhZ05hbWUpKXRocm93IEVycm9yKCIiKTt2YXIgaDtpZihkIGluc3RhbmNlb2YgemMpaD1kLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7Yy5pbm5lckhUTUw9aDtiPWIubGFzdENoaWxkO2Zvcih2YXIgbD1bXTtiJiZiLmZpcnN0Q2hpbGQ7KWwucHVzaChiLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCkpO3JldHVybiBsfQpmdW5jdGlvbiBoZChhLGIsYyl7Yz1jfHwxMDA7Zm9yKHZhciBkPXt9LGU9MDtlPGIubGVuZ3RoO2UrKylkW2JbZV1dPSEwO2Zvcih2YXIgZj1hLGc9MDtmJiZnPD1jO2crKyl7aWYoZFtTdHJpbmcoZi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4gZjtmPWYucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpZChhLGIsYyl7dmFyIGQ7dHJ5e2Q9SGMuc2VuZEJlYWNvbiYmSGMuc2VuZEJlYWNvbihhKX1jYXRjaChlKXtzYigiVEFHR0lORyIsMTUpfWQ/Yj09bnVsbHx8YigpOlpjKGEsYixjKX1mdW5jdGlvbiBqZChhLGIpe3RyeXtpZihIYy5zZW5kQmVhY29uIT09dm9pZCAwKXJldHVybiBIYy5zZW5kQmVhY29uKGEsYil9Y2F0Y2goYyl7c2IoIlRBR0dJTkciLDE1KX1yZXR1cm4hMX1mdW5jdGlvbiBrZCgpe3JldHVybiBIYy5zZW5kQmVhY29uIT09dm9pZCAwfQp2YXIgbGQ9e2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGtlZXBhbGl2ZTohMCxtZXRob2Q6IlBPU1QiLG1vZGU6Im5vLWNvcnMiLHJlZGlyZWN0OiJmb2xsb3cifTsKZnVuY3Rpb24gbWQoYSxiLGMsZCxlKXtpZihuZCgpKXt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtiJiYoZi5ib2R5PWIpO2MmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nJiYoZi5hdHRyaWJ1dGlvblJlcG9ydGluZz1jLmF0dHJpYnV0aW9uUmVwb3J0aW5nKSxjLmJyb3dzaW5nVG9waWNzIT09dm9pZCAwJiYoZi5icm93c2luZ1RvcGljcz1jLmJyb3dzaW5nVG9waWNzKSxjLmNyZWRlbnRpYWxzJiYoZi5jcmVkZW50aWFscz1jLmNyZWRlbnRpYWxzKSxjLmtlZXBhbGl2ZSE9PXZvaWQgMCYmKGYua2VlcGFsaXZlPWMua2VlcGFsaXZlKSxjLm1ldGhvZCYmKGYubWV0aG9kPWMubWV0aG9kKSxjLm1vZGUmJihmLm1vZGU9Yy5tb2RlKSk7dHJ5e3ZhciBnPUEuZmV0Y2goYSxmKTtpZihnKXJldHVybiBnLnRoZW4oZnVuY3Rpb24obCl7bCYmKGwub2t8fGwuc3RhdHVzPT09MCk/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09Cm51bGx8fGUoKX0pLCEwfWNhdGNoKGwpe319aWYoKGM9PW51bGw/MDpjLlFnKXx8KGM9PW51bGw/MDpjLmNyZWRlbnRpYWxzKSYmYy5jcmVkZW50aWFscyE9PSJpbmNsdWRlIilyZXR1cm4gZT09bnVsbHx8ZSgpLCExO2lmKGIpe3ZhciBoPWpkKGEsYik7aD9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpO3JldHVybiBofVZjLnd0KGEsZCxlKTtyZXR1cm4hMH1mdW5jdGlvbiBuZCgpe3JldHVybiB5YihBLmZldGNoKX1mdW5jdGlvbiBvZChhLGIpe3ZhciBjPWFbYl07YyYmdHlwZW9mIGMuYW5pbVZhbD09PSJzdHJpbmciJiYoYz1jLmFuaW1WYWwpO3JldHVybiBjfWZ1bmN0aW9uIHBkKCl7dmFyIGE9QS5wZXJmb3JtYW5jZTtpZihhJiZ5YihhLm5vdykpcmV0dXJuIGEubm93KCl9CmZ1bmN0aW9uIHFkKCl7dmFyIGEsYj1BLnBlcmZvcm1hbmNlO2lmKGImJmIuZ2V0RW50cmllc0J5VHlwZSl0cnl7dmFyIGM9Yi5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7YyYmYy5sZW5ndGg+MCYmKGE9Y1swXS50eXBlKX1jYXRjaChkKXtyZXR1cm4iZSJ9aWYoIWEpcmV0dXJuInUiO3N3aXRjaChhKXtjYXNlICJuYXZpZ2F0ZSI6cmV0dXJuIm4iO2Nhc2UgImJhY2tfZm9yd2FyZCI6cmV0dXJuImgiO2Nhc2UgInJlbG9hZCI6cmV0dXJuInIiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuInAiO2RlZmF1bHQ6cmV0dXJuIngifX1mdW5jdGlvbiByZCgpe3JldHVybiBBLnBlcmZvcm1hbmNlfHx2b2lkIDB9ZnVuY3Rpb24gc2QoKXt2YXIgYT1BLndlYlBpeGVsc01hbmFnZXI7cmV0dXJuIGE/YS5jcmVhdGVTaG9waWZ5RXh0ZW5kIT09dm9pZCAwOiExfQp2YXIgVmM9e0VyOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJbWFnZSgxLDEpO1RjKGUsZCx7fSk7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD1udWxsO2ImJmIoKX07ZS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5vbmVycm9yPW51bGw7YyYmYygpfTtlLnNyYz1hO3JldHVybiBlfSxCczpmdW5jdGlvbihhKXt2YXIgYj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXXx8Qi5ib2R5fHxCLmhlYWQ7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSx3dDppZH07ZnVuY3Rpb24gdGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB1ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPT09dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB2ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHdkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7cmV0dXJuIFN0cmluZyhjKS5pbmRleE9mKFN0cmluZyhkKSk+LTF9ZnVuY3Rpb24geGQoYSxiKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhKSksZD1TdHJpbmcodGhpcy5ldmFsdWF0ZShiKSk7cmV0dXJuIGMuc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT09ZH0KZnVuY3Rpb24geWQoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtzd2l0Y2goYyl7Y2FzZSAicGFnZUxvY2F0aW9uIjp2YXIgZT1BLmxvY2F0aW9uLmhyZWY7ZCBpbnN0YW5jZW9mIGtiJiZkLmdldCgic3RyaXBQcm90b2NvbCIpJiYoZT1lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpKTtyZXR1cm4gZX19Oy8qCiBqUXVlcnkgKGMpIDIwMDUsIDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4ganF1ZXJ5Lm9yZy9saWNlbnNlLgoqLwp2YXIgemQ9L1xbb2JqZWN0IChCb29sZWFufE51bWJlcnxTdHJpbmd8RnVuY3Rpb258QXJyYXl8RGF0ZXxSZWdFeHApXF0vLEFkPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIFN0cmluZyhhKTt2YXIgYj16ZC5leGVjKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChPYmplY3QoYSkpKTtyZXR1cm4gYj9iWzFdLnRvTG93ZXJDYXNlKCk6Im9iamVjdCJ9LEJkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoYSksYil9LENkPWZ1bmN0aW9uKGEpe2lmKCFhfHxBZChhKSE9Im9iamVjdCJ8fGEubm9kZVR5cGV8fGE9PWEud2luZG93KXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhQmQoYSwiY29uc3RydWN0b3IiKSYmIUJkKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9Zm9yKHZhciBiIGluIGEpO3JldHVybiBiPT09dm9pZCAwfHwKQmQoYSxiKX0sRWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwoQWQoYSk9PSJhcnJheSI/W106e30pLGQ7Zm9yKGQgaW4gYSlpZihCZChhLGQpKXt2YXIgZT1hW2RdO0FkKGUpPT0iYXJyYXkiPyhBZChjW2RdKSE9ImFycmF5IiYmKGNbZF09W10pLGNbZF09RWQoZSxjW2RdKSk6Q2QoZSk/KENkKGNbZF0pfHwoY1tkXT17fSksY1tkXT1FZChlLGNbZF0pKTpjW2RdPWV9cmV0dXJuIGN9O2Z1bmN0aW9uIEZkKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiZhPj0wJiZpc0Zpbml0ZShhKSYmYSUxPT09MHx8dHlwZW9mIGE9PT0ic3RyaW5nIiYmYVswXSE9PSItIiYmYT09PSIiK3BhcnNlSW50KGEpfTt2YXIgR2Q9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7dGhpcy5sYT1uZXcgVWE7dGhpcy52YWx1ZXM9W107dGhpcy5OYT0hMTtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoRmQoYik/dGhpcy52YWx1ZXNbTnVtYmVyKGIpXT1hW051bWJlcihiKV06dGhpcy5sYS5zZXQoYixhW2JdKSl9O2s9R2QucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oYSl7aWYoYSYmYS5pbmRleE9mKHRoaXMpPj0wKXJldHVybiIiO2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLnZhbHVlcy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnZhbHVlc1tjXTtkPT09bnVsbHx8ZD09PXZvaWQgMD9iLnB1c2goIiIpOmQgaW5zdGFuY2VvZiBHZD8oYT1hfHxbXSxhLnB1c2godGhpcyksYi5wdXNoKGQudG9TdHJpbmcoYSkpLGEucG9wKCkpOmIucHVzaChTdHJpbmcoZCkpfXJldHVybiBiLmpvaW4oIiwiKX07Cmsuc2V0PWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuTmEpaWYoYT09PSJsZW5ndGgiKXtpZighRmQoYikpdGhyb3cgY2IoRXJyb3IoIlJhbmdlRXJyb3I6IExlbmd0aCBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlci4iKSk7dGhpcy52YWx1ZXMubGVuZ3RoPU51bWJlcihiKX1lbHNlIEZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV09Yjp0aGlzLmxhLnNldChhLGIpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJsZW5ndGgiP3RoaXMubGVuZ3RoKCk6RmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLmxhLmdldChhKX07ay5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RofTtrLkZhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuRmEoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goU3RyaW5nKGIpKTtyZXR1cm4gYX07CmsuaGM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5oYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaCh0aGlzLnZhbHVlc1tiXSk7cmV0dXJuIGF9O2suZmM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5mYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChbU3RyaW5nKGIpLHRoaXMudmFsdWVzW2JdXSk7cmV0dXJuIGF9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe0ZkKGEpP2RlbGV0ZSB0aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wb3AoKX07ay5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5zaGlmdCgpfTsKay5zcGxpY2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyk7cmV0dXJuIGI9PT12b2lkIDAmJmMubGVuZ3RoPT09MD9uZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlKGEpKTpuZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlLmFwcGx5KHRoaXMudmFsdWVzLFthLGJ8fDBdLmNvbmNhdCh3KGMpKSkpfTtrLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMudW5zaGlmdC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gRmQoYSkmJnRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGEpfHx0aGlzLmxhLmhhcyhhKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITA7T2JqZWN0LmZyZWV6ZSh0aGlzLnZhbHVlcyl9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07CmZ1bmN0aW9uIEhkKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aCgpO2MrKylhLmhhcyhjKSYmKGJbY109YS5nZXQoYykpO3JldHVybiBifTt2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmZ1bmN0aW9uTmFtZT1hO3RoaXMuaWU9Yjt0aGlzLmxhPW5ldyBVYTt0aGlzLk5hPSExfTtrPUlkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0S2V5cz1mdW5jdGlvbigpe3JldHVybiBuZXcgR2QodGhpcy5GYSgpKX07ay5pbnZva2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWUuY2FsbC5hcHBseSh0aGlzLmllLFtuZXcgSmQodGhpcyxhKV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLmFwcGx5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaWUuYXBwbHkobmV3IEpkKHRoaXMsYSksYil9O2suTmM9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO3RyeXtyZXR1cm4gdGhpcy5pbnZva2UuYXBwbHkodGhpcyxbYV0uY29uY2F0KHcoYikpKX1jYXRjaChjKXt9fTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O3ZhciBLZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShLZCxJZCk7dmFyIExkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKExkLElkKTt2YXIgSmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmllPWE7dGhpcy5UPWJ9OwpKZC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5UO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2ZiKGIsYSk6YX07SmQucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZS5nZXROYW1lKCl9O0pkLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlQuamUoKX07dmFyIE1kPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IE1hcH07TWQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMubWFwLnNldChhLGIpfTtNZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5nZXQoYSl9O3ZhciBOZD1mdW5jdGlvbigpe3RoaXMua2V5cz1bXTt0aGlzLnZhbHVlcz1bXX07TmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMua2V5cy5wdXNoKGEpO3RoaXMudmFsdWVzLnB1c2goYil9O05kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoYj4tMSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19O2Z1bmN0aW9uIE9kKCl7dHJ5e3JldHVybiBNYXA/bmV3IE1kOm5ldyBOZH1jYXRjaChhKXtyZXR1cm4gbmV3IE5kfX07dmFyIFBkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQZClyZXR1cm4gYTt2YXIgYjthOmlmKGE9PXZvaWQgMHx8QXJyYXkuaXNBcnJheShhKXx8Q2QoYSkpYj0hMDtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgImZ1bmN0aW9uIjpiPSEwO2JyZWFrIGF9Yj0hMX1pZihiKXRocm93IEVycm9yKCJUeXBlIG9mIGdpdmVuIHZhbHVlIGhhcyBhbiBlcXVpdmFsZW50IFBpeGllIHR5cGUuIik7dGhpcy52YWx1ZT1hfTtQZC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07UGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX07dmFyIFNkPWZ1bmN0aW9uKGEpe3RoaXMucHJvbWlzZT1hO3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWE7dGhpcy5sYS5zZXQoInRoZW4iLFJkKHRoaXMpKTt0aGlzLmxhLnNldCgiY2F0Y2giLFJkKHRoaXMsITApKTt0aGlzLmxhLnNldCgiZmluYWxseSIsUmQodGhpcywhMSwhMCkpfTtrPVNkLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07CnZhciBSZD1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihkLGUpe2ImJihlPWQsZD12b2lkIDApO2MmJihlPWQpO2QgaW5zdGFuY2VvZiBLZHx8KGQ9dm9pZCAwKTtlIGluc3RhbmNlb2YgS2R8fChlPXZvaWQgMCk7dmFyIGY9dGhpcy5ULndiKCksZz1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e3JldHVybiBjPyhsLmludm9rZShmKSxhLnByb21pc2UpOmwuaW52b2tlKGYsbil9Y2F0Y2gocCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHAgaW5zdGFuY2VvZiBFcnJvcj9uZXcgUGQocCk6U3RyaW5nKHApKX19fSxoPWEucHJvbWlzZS50aGVuKGQmJmcoZCksZSYmZyhlKSk7cmV0dXJuIG5ldyBTZChoKX0pfTtTZC5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtTZC5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gVGQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbD1nLkZhKCksbj0wO248bC5sZW5ndGg7bisrKWhbbFtuXV09ZihnLmdldChsW25dKSl9LGY9ZnVuY3Rpb24oZyl7aWYoZz09PW51bGx8fGc9PT12b2lkIDApcmV0dXJuIGc7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihnIGluc3RhbmNlb2YgR2Qpe3ZhciBsPVtdO2Quc2V0KGcsbCk7Zm9yKHZhciBuPWcuRmEoKSxwPTA7cDxuLmxlbmd0aDtwKyspbFtuW3BdXT1mKGcuZ2V0KG5bcF0pKTtyZXR1cm4gbH1pZihnIGluc3RhbmNlb2YgU2QpcmV0dXJuIGcucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBUZCh1LGIsMSl9LGZ1bmN0aW9uKHUpe3JldHVybiBQcm9taXNlLnJlamVjdChUZCh1LGIsMSkpfSk7aWYoZyBpbnN0YW5jZW9mIGtiKXt2YXIgcT17fTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX1pZihnIGluc3RhbmNlb2YgS2Qpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PQpbXSx2PTA7djxhcmd1bWVudHMubGVuZ3RoO3YrKyl1W3ZdPVVkKGFyZ3VtZW50c1t2XSxiLGMpO3ZhciB4PW5ldyBoYihiP2IuamUoKTpuZXcgV2EpO2ImJngudWUoYi54YigpKTtyZXR1cm4gZihnLmFwcGx5KHgsdSkpfTtkLnNldChnLHIpO2UoZyxyKTtyZXR1cm4gcn12YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7Y2FzZSAzOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyBpbnN0YW5jZW9mIFBkJiZ0KXJldHVybiBnLmdldFZhbHVlKCk7c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAidW5kZWZpbmVkIjpyZXR1cm4gZztjYXNlICJvYmplY3QiOmlmKGc9PT0KbnVsbClyZXR1cm4gbnVsbH19O3JldHVybiBmKGEpfQpmdW5jdGlvbiBVZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShsKSYmaC5zZXQobCxmKGdbbF0pKX0sZj1mdW5jdGlvbihnKXt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKEFycmF5LmlzQXJyYXkoZyl8fEhiKGcpKXt2YXIgbD1uZXcgR2Q7ZC5zZXQoZyxsKTtmb3IodmFyIG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZsLnNldChuLGYoZ1tuXSkpO3JldHVybiBsfWlmKENkKGcpKXt2YXIgcD1uZXcga2I7ZC5zZXQoZyxwKTtlKGcscCk7cmV0dXJuIHB9aWYodHlwZW9mIGc9PT0iZnVuY3Rpb24iKXt2YXIgcT1uZXcgS2QoIiIsZnVuY3Rpb24oKXtmb3IodmFyIHU9T2EuYXBwbHkoMCxhcmd1bWVudHMpLHY9W10seD0wO3g8dS5sZW5ndGg7eCsrKXZbeF09VGQodGhpcy5ldmFsdWF0ZSh1W3hdKSxiLGMpO3JldHVybiBmKHRoaXMuVC5QaigpKGcsZyx2KSl9KTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX12YXIgcj10eXBlb2YgZztpZihnPT09bnVsbHx8cj09PSJzdHJpbmcifHxyPT09Im51bWJlciJ8fHI9PT0iYm9vbGVhbiIpcmV0dXJuIGc7dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGchPT12b2lkIDAmJnQpcmV0dXJuIG5ldyBQZChnKX07cmV0dXJuIGYoYSl9O3ZhciBWZD17c3VwcG9ydGVkTWV0aG9kczoiY29uY2F0IGV2ZXJ5IGZpbHRlciBmb3JFYWNoIGhhc093blByb3BlcnR5IGluZGV4T2Ygam9pbiBsYXN0SW5kZXhPZiBtYXAgcG9wIHB1c2ggcmVkdWNlIHJlZHVjZVJpZ2h0IHJldmVyc2Ugc2hpZnQgc2xpY2Ugc29tZSBzb3J0IHNwbGljZSB1bnNoaWZ0IHRvU3RyaW5nIi5zcGxpdCgiICIpLGNvbmNhdDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy5sZW5ndGgoKTtjKyspYi5wdXNoKHRoaXMuZ2V0KGMpKTtmb3IodmFyIGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKWlmKGFyZ3VtZW50c1tkXWluc3RhbmNlb2YgR2QpZm9yKHZhciBlPWFyZ3VtZW50c1tkXSxmPTA7ZjxlLmxlbmd0aCgpO2YrKyliLnB1c2goZS5nZXQoZikpO2Vsc2UgYi5wdXNoKGFyZ3VtZW50c1tkXSk7cmV0dXJuIG5ldyBHZChiKX0sZXZlcnk6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiYKZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmIWIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMTtyZXR1cm4hMH0sZmlsdGVyOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiZiLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykmJmQucHVzaCh0aGlzLmdldChlKSk7cmV0dXJuIG5ldyBHZChkKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspdGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKX0saGFzT3duUHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5oYXMoYil9LGluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1jPT09dm9pZCAwPzA6TnVtYmVyKGMpO2U8MCYmKGU9TWF0aC5tYXgoZCtlLDApKTtmb3IodmFyIGY9CmU7ZjxkO2YrKylpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxqb2luOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPHRoaXMubGVuZ3RoKCk7ZCsrKWMucHVzaCh0aGlzLmdldChkKSk7cmV0dXJuIGMuam9pbihiKX0sbGFzdEluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1kLTE7YyE9PXZvaWQgMCYmKGU9YzwwP2QrYzpNYXRoLm1pbihjLGUpKTtmb3IodmFyIGY9ZTtmPj0wO2YtLSlpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxtYXA6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJihkW2VdPWIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSk7cmV0dXJuIG5ldyBHZChkKX0scG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wKCl9LHB1c2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLAp3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfSxyZWR1Y2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPTA7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTtmb3IodmFyIGc9MDtnPGQ7ZysrKWlmKHRoaXMuaGFzKGcpKXtlPXRoaXMuZ2V0KGcpO2Y9ZysxO2JyZWFrfWlmKGc9PT1kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPGQ7aCsrKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj1kLTE7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpOwpmb3IodmFyIGc9MTtnPD1kO2crKylpZih0aGlzLmhhcyhkLWcpKXtlPXRoaXMuZ2V0KGQtZyk7Zj1kLShnKzEpO2JyZWFrfWlmKGc+ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPj0wO2gtLSl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPUhkKHRoaXMpLGI9YS5sZW5ndGgtMSxjPTA7Yj49MDtiLS0sYysrKWEuaGFzT3duUHJvcGVydHkoYik/dGhpcy5zZXQoYyxhW2JdKTp0aGlzLnJlbW92ZShjKTtyZXR1cm4gdGhpc30sc2hpZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGlmdCgpfSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKTtiPT09dm9pZCAwJiYoYj0wKTtiPWI8MD9NYXRoLm1heChkK2IsMCk6TWF0aC5taW4oYixkKTtjPWM9PT0Kdm9pZCAwP2Q6YzwwP01hdGgubWF4KGQrYywwKTpNYXRoLm1pbihjLGQpO2M9TWF0aC5tYXgoYixjKTtmb3IodmFyIGU9W10sZj1iO2Y8YztmKyspZS5wdXNoKHRoaXMuZ2V0KGYpKTtyZXR1cm4gbmV3IEdkKGUpfSxzb21lOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiEwO3JldHVybiExfSxzb3J0OmZ1bmN0aW9uKGEsYil7dmFyIGM9SGQodGhpcyk7Yj09PXZvaWQgMD9jLnNvcnQoKTpjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gTnVtYmVyKGIuaW52b2tlKGEsZSxmKSl9KTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljLmhhc093blByb3BlcnR5KGQpP3RoaXMuc2V0KGQsY1tkXSk6dGhpcy5yZW1vdmUoZCk7cmV0dXJuIHRoaXN9LHNwbGljZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuc3BsaWNlLmFwcGx5KHRoaXMsCltiLGNdLmNvbmNhdCh3KE9hLmFwcGx5KDMsYXJndW1lbnRzKSkpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1bnNoaWZ0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuc2hpZnQuYXBwbHkodGhpcyx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfX07dmFyIFdkPXtjaGFyQXQ6MSxjb25jYXQ6MSxpbmRleE9mOjEsbGFzdEluZGV4T2Y6MSxtYXRjaDoxLHJlcGxhY2U6MSxzZWFyY2g6MSxzbGljZToxLHNwbGl0OjEsc3Vic3RyaW5nOjEsdG9Mb3dlckNhc2U6MSx0b0xvY2FsZUxvd2VyQ2FzZToxLHRvU3RyaW5nOjEsdG9VcHBlckNhc2U6MSx0b0xvY2FsZVVwcGVyQ2FzZToxLHRyaW06MX0sWGQ9bmV3IFRhKCJicmVhayIpLFlkPW5ldyBUYSgiY29udGludWUiKTtmdW5jdGlvbiBaZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpK3RoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gYWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBBcHBseSBpbnN0cnVjdGlvbi4iKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCByZWFkIHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTt2YXIgZz10eXBlb2YgZD09PSJudW1iZXIiO2lmKHR5cGVvZiBkPT09ImJvb2xlYW4ifHxnKXtpZihlPT09InRvU3RyaW5nIil7aWYoZyYmZi5sZW5ndGgoKSl7dmFyIGg9VGQoZi5nZXQoMCkpO3RyeXtyZXR1cm4gZC50b1N0cmluZyhoKX1jYXRjaCh1KXt9fXJldHVybiBkLnRvU3RyaW5nKCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitkKyIuIitlKyIgaXMgbm90IGEgZnVuY3Rpb24uIikpO31pZih0eXBlb2YgZD09PQoic3RyaW5nIil7aWYoV2QuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBsPVRkKGYsdm9pZCAwLDEpO3JldHVybiBVZChkW2VdLmFwcGx5KGQsbCksdGhpcy5UKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZCBpbnN0YW5jZW9mIEdkKXtpZihkLmhhcyhlKSl7dmFyIG49ZC5nZXQoU3RyaW5nKGUpKTtpZihuIGluc3RhbmNlb2YgS2Qpe3ZhciBwPUhkKGYpO3JldHVybiBuLmFwcGx5KHRoaXMuVCxwKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoVmQuc3VwcG9ydGVkTWV0aG9kcy5pbmRleE9mKGUpPj0wKXt2YXIgcT1IZChmKTtyZXR1cm4gVmRbZV0uY2FsbC5hcHBseShWZFtlXSxbZCx0aGlzLlRdLmNvbmNhdCh3KHEpKSl9fWlmKGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2Qpe2lmKGQuaGFzKGUpKXt2YXIgcj1kLmdldChlKTsKaWYociBpbnN0YW5jZW9mIEtkKXt2YXIgdD1IZChmKTtyZXR1cm4gci5hcHBseSh0aGlzLlQsdCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGU9PT0idG9TdHJpbmciKXJldHVybiBkIGluc3RhbmNlb2YgS2Q/ZC5nZXROYW1lKCk6ZC50b1N0cmluZygpO2lmKGU9PT0iaGFzT3duUHJvcGVydHkiKXJldHVybiBkLmhhcyhmLmdldCgwKSl9aWYoZCBpbnN0YW5jZW9mIFBkJiZlPT09InRvU3RyaW5nIilyZXR1cm4gZC50b1N0cmluZygpO3Rocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IE9iamVjdCBoYXMgbm8gJyIrZSsiJyBwcm9wZXJ0eS4iKSk7fQpmdW5jdGlvbiBiZShhLGIpe2E9dGhpcy5ldmFsdWF0ZShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSBuYW1lIGdpdmVuIGZvciBhc3NpZ25tZW50LiIpO3ZhciBjPXRoaXMuVDtpZighYy5oYXMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXNzaWduIHRvIHVuZGVmaW5lZCB2YWx1ZSAiK2IpO3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7Yy5zZXQoYSxkKTtyZXR1cm4gZH1mdW5jdGlvbiBjZSgpe3ZhciBhPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxiPXRoaXMuVC53YigpLGM9ZWIoYixhKTtpZihjIGluc3RhbmNlb2YgVGEpcmV0dXJuIGN9ZnVuY3Rpb24gZGUoKXtyZXR1cm4gWGR9ZnVuY3Rpb24gZWUoYSl7Zm9yKHZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD10aGlzLmV2YWx1YXRlKGJbY10pO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH19CmZ1bmN0aW9uIGZlKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9YXJndW1lbnRzW2JdO2lmKHR5cGVvZiBjPT09InN0cmluZyIpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2EuUWgoYyxkKX19fWZ1bmN0aW9uIGdlKCl7cmV0dXJuIFlkfWZ1bmN0aW9uIGhlKGEsYil7cmV0dXJuIG5ldyBUYShhLHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGllKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7ZD1uZXcgR2Q7Zm9yKHZhciBlPXRoaXMuZXZhbHVhdGUoYiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWQucHVzaChlW2ZdKTt2YXIgZz1bNTEsYSxkXS5jb25jYXQodyhjKSk7dGhpcy5ULmFkZChhLHRoaXMuZXZhbHVhdGUoZykpfWZ1bmN0aW9uIGplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkvdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24ga2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKSxlPWMgaW5zdGFuY2VvZiBQZCxmPWQgaW5zdGFuY2VvZiBQZDtyZXR1cm4gZXx8Zj9lJiZmP2MuZ2V0VmFsdWUoKT09PWQuZ2V0VmFsdWUoKTohMTpjPT1kfWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBhLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWE9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8YigpO2UrKyl7dmFyIGY9YShjKGUpKSxnPWViKGYsZCk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfX19CmZ1bmN0aW9uIG5lKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihmKXtyZXR1cm4gZn0sYyk7aWYoYiBpbnN0YW5jZW9mIGtifHxiIGluc3RhbmNlb2YgU2R8fGIgaW5zdGFuY2VvZiBHZHx8YiBpbnN0YW5jZW9mIEtkKXt2YXIgZD1iLkZhKCksZT1kLmxlbmd0aDtyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBlfSxmdW5jdGlvbihmKXtyZXR1cm4gZFtmXX0sYyl9fWZ1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHBlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcmUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gdGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiB1ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX0KZnVuY3Rpb24gc2UoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdfSxjKTtpZihiIGluc3RhbmNlb2YgR2QpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGgoKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGIuZ2V0KGQpfSxjKTt0aHJvdyBjYihFcnJvcigiVGhlIHZhbHVlIGlzIG5vdCBpdGVyYWJsZS4iKSk7fQpmdW5jdGlvbiB2ZShhLGIsYyxkKXtmdW5jdGlvbiBlKHEscil7Zm9yKHZhciB0PTA7dDxmLmxlbmd0aCgpO3QrKyl7dmFyIHU9Zi5nZXQodCk7ci5hZGQodSxxLmdldCh1KSl9fXZhciBmPXRoaXMuZXZhbHVhdGUoYSk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJUeXBlRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEZvckxldCBpbnN0cnVjdGlvbi4iKTt2YXIgZz10aGlzLlQsaD10aGlzLmV2YWx1YXRlKGQpLGw9Zy53YigpO2ZvcihlKGcsbCk7ZmIobCxiKTspe3ZhciBuPWViKGwsaCk7aWYobiBpbnN0YW5jZW9mIFRhKXtpZihuLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKG4udHlwZT09PSJyZXR1cm4iKXJldHVybiBufXZhciBwPWcud2IoKTtlKGwscCk7ZmIocCxjKTtsPXB9fQpmdW5jdGlvbiB3ZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPXRoaXMuVCxlPXRoaXMuZXZhbHVhdGUoYik7aWYoIShlIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogbm9uLUxpc3QgdmFsdWUgZ2l2ZW4gZm9yIEZuIGFyZ3VtZW50IG5hbWVzLiIpO3JldHVybiBuZXcgS2QoYSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPWQud2IoKTtnLnhiKCk9PT12b2lkIDAmJmcudWUodGhpcy5ULnhiKCkpO2Zvcih2YXIgaD1bXSxsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBuPXRoaXMuZXZhbHVhdGUoZltsXSk7aFtsXT1ufWZvcih2YXIgcD1lLmdldCgibGVuZ3RoIikscT0wO3E8cDtxKyspcTxoLmxlbmd0aD9nLmFkZChlLmdldChxKSxoW3FdKTpnLmFkZChlLmdldChxKSx2b2lkIDApO2cuYWRkKCJhcmd1bWVudHMiLG5ldyBHZChoKSk7dmFyIHI9ZWIoZyxjKTtpZihyIGluc3RhbmNlb2YgVGEpcmV0dXJuIHIudHlwZT09PQoicmV0dXJuIj9yLmRhdGE6cn19KCkpfWZ1bmN0aW9uIHhlKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz10aGlzLlQ7aWYoeWUmJiFjLmhhcyhiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYisiIGlzIG5vdCBkZWZpbmVkLiIpO3JldHVybiBjLmdldChiKX0KZnVuY3Rpb24gemUoYSxiKXt2YXIgYyxkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgIitkKyIgKHJlYWRpbmcgJyIrZSsiJykiKSk7aWYoZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIEtkKWM9ZC5nZXQoZSk7ZWxzZSBpZih0eXBlb2YgZD09PSJzdHJpbmciKWU9PT0ibGVuZ3RoIj9jPWQubGVuZ3RoOkZkKGUpJiYoYz1kW2VdKTtlbHNlIGlmKGQgaW5zdGFuY2VvZiBQZClyZXR1cm47cmV0dXJuIGN9ZnVuY3Rpb24gQWUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT50aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEJlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+PXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIENlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7YyBpbnN0YW5jZW9mIFBkJiYoYz1jLmdldFZhbHVlKCkpO2QgaW5zdGFuY2VvZiBQZCYmKGQ9ZC5nZXRWYWx1ZSgpKTtyZXR1cm4gYz09PWR9ZnVuY3Rpb24gRGUoYSxiKXtyZXR1cm4hQ2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gRWUoYSxiLGMpe3ZhciBkPVtdO3RoaXMuZXZhbHVhdGUoYSk/ZD10aGlzLmV2YWx1YXRlKGIpOmMmJihkPXRoaXMuZXZhbHVhdGUoYykpO3ZhciBlPWViKHRoaXMuVCxkKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGV9dmFyIHllPSExOwpmdW5jdGlvbiBGZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTw9dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBIZSgpe2Zvcih2YXIgYT1uZXcgR2QsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTthLnB1c2goYyl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoKXtmb3IodmFyIGE9bmV3IGtiLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pKSxkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2Euc2V0KGMsZCl9cmV0dXJuIGF9ZnVuY3Rpb24gSmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSV0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBLZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpKnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gTGUoYSl7cmV0dXJuLXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTmUoYSxiKXtyZXR1cm4ha2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gT2UoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKTt0aGlzLmV2YWx1YXRlKGIpO3JldHVybiBjfWZ1bmN0aW9uIFJlKGEpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIE9hLmFwcGx5KDAsYXJndW1lbnRzKX1mdW5jdGlvbiBUZShhKXtyZXR1cm4gbmV3IFRhKCJyZXR1cm4iLHRoaXMuZXZhbHVhdGUoYSkpfQpmdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHNldCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7KGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2Yga2IpJiZkLnNldChTdHJpbmcoZSksZik7cmV0dXJuIGZ9ZnVuY3Rpb24gVmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigiRXJyb3I6IE1hbGZvcm1lZCBzd2l0Y2ggaW5zdHJ1Y3Rpb24uIik7Zm9yKHZhciBnLGg9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKGh8fGQ9PT10aGlzLmV2YWx1YXRlKGVbbF0pKWlmKGc9dGhpcy5ldmFsdWF0ZShmW2xdKSxnIGluc3RhbmNlb2YgVGEpe3ZhciBuPWcudHlwZTtpZihuPT09ImJyZWFrIilyZXR1cm47aWYobj09PSJyZXR1cm4ifHxuPT09ImNvbnRpbnVlIilyZXR1cm4gZ31lbHNlIGg9ITA7aWYoZi5sZW5ndGg9PT1lLmxlbmd0aCsxJiYoZz10aGlzLmV2YWx1YXRlKGZbZi5sZW5ndGgtMV0pLGcgaW5zdGFuY2VvZiBUYSYmKGcudHlwZT09PSJyZXR1cm4ifHxnLnR5cGU9PT0iY29udGludWUiKSkpcmV0dXJuIGd9CmZ1bmN0aW9uIFhlKGEsYixjKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT90aGlzLmV2YWx1YXRlKGIpOnRoaXMuZXZhbHVhdGUoYyl9ZnVuY3Rpb24gWWUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKTtyZXR1cm4gYiBpbnN0YW5jZW9mIEtkPyJmdW5jdGlvbiI6dHlwZW9mIGJ9ZnVuY3Rpb24gWmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz1hcmd1bWVudHNbYl07dHlwZW9mIGMhPT0ic3RyaW5nInx8YS5hZGQoYyx2b2lkIDApfX0KZnVuY3Rpb24gJGUoYSxiLGMsZCl7dmFyIGU9dGhpcy5ldmFsdWF0ZShkKTtpZih0aGlzLmV2YWx1YXRlKGMpKXt2YXIgZj1lYih0aGlzLlQsZSk7aWYoZiBpbnN0YW5jZW9mIFRhKXtpZihmLnR5cGU9PT0iYnJlYWsiKXJldHVybjtpZihmLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZn19Zm9yKDt0aGlzLmV2YWx1YXRlKGEpOyl7dmFyIGc9ZWIodGhpcy5ULGUpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ310aGlzLmV2YWx1YXRlKGIpfX1mdW5jdGlvbiBhZihhKXtyZXR1cm5+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfWZ1bmN0aW9uIGJmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKTw8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGNmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfQpmdW5jdGlvbiBkZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZWYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpJk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBmZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSleTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGdmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKXxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaGYoKXt9CmZ1bmN0aW9uIGtmKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9Y2F0Y2goaCl7aWYoIShoIGluc3RhbmNlb2YgYmImJmguU24pKXRocm93IGg7dmFyIGU9dGhpcy5ULndiKCk7YSE9PSIiJiYoaCBpbnN0YW5jZW9mIGJiJiYoaD1oLnZvKSxlLmFkZChhLG5ldyBQZChoKSkpO3ZhciBmPXRoaXMuZXZhbHVhdGUoYyksZz1lYihlLGYpO2lmKGcgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZ319ZnVuY3Rpb24gbGYoYSxiKXt2YXIgYyxkO3RyeXtkPXRoaXMuZXZhbHVhdGUoYSl9Y2F0Y2goZil7aWYoIShmIGluc3RhbmNlb2YgYmImJmYuU24pKXRocm93IGY7Yz1mfXZhciBlPXRoaXMuZXZhbHVhdGUoYik7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlO2lmKGMpdGhyb3cgYztpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9O3ZhciBuZj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgZ2I7bWYodGhpcyl9O25mLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkgucmsoYSl9O3ZhciBtZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPW5ldyBMZChTdHJpbmcoYyksZCk7ZS5aYSgpO3ZhciBmPVN0cmluZyhjKTthLkguSC5zZXQoZixlKTtkYi5zZXQoZixlKX07YigibWFwIixJZSk7YigiYW5kIix0ZCk7YigiY29udGFpbnMiLHdkKTtiKCJlcXVhbHMiLHVkKTtiKCJvciIsdmQpO2IoInN0YXJ0c1dpdGgiLHhkKTtiKCJ2YXJpYWJsZSIseWQpfTtuZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTt2YXIgcGY9ZnVuY3Rpb24oKXt0aGlzLks9ITE7dGhpcy5IPW5ldyBnYjtvZih0aGlzKTt0aGlzLks9ITB9O3BmLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiBxZih0aGlzLkgucmsoYSkpfTt2YXIgcmY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBxZihhLkguSnEoYixjKSl9O3BmLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTsKdmFyIG9mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9U3RyaW5nKGMpLGY9bmV3IExkKGUsZCk7Zi5aYSgpO2EuSC5ILnNldChlLGYpO2RiLnNldChlLGYpfTtiKDAsWmQpO2IoMSwkZCk7YigyLGFlKTtiKDMsYmUpO2IoNTYsZWYpO2IoNTcsYmYpO2IoNTgsYWYpO2IoNTksZ2YpO2IoNjAsY2YpO2IoNjEsZGYpO2IoNjIsZmYpO2IoNTMsY2UpO2IoNCxkZSk7Yig1LGVlKTtiKDY4LGtmKTtiKDUyLGZlKTtiKDYsZ2UpO2IoNDksaGUpO2IoNyxIZSk7Yig4LEllKTtiKDksZWUpO2IoNTAsaWUpO2IoMTAsamUpO2IoMTIsa2UpO2IoMTMsbGUpO2IoNjcsbGYpO2IoNTEsd2UpO2IoNDcsb2UpO2IoNTQscGUpO2IoNTUscWUpO2IoNjMsdmUpO2IoNjQscmUpO2IoNjUsdGUpO2IoNjYsdWUpO2IoMTUseGUpO2IoMTYsemUpO2IoMTcsemUpO2IoMTgsQWUpO2IoMTksQmUpO2IoMjAsQ2UpO2IoMjEsRGUpO2IoMjIsRWUpO2IoMjMsRmUpO2IoMjQsR2UpO2IoMjUsSmUpO2IoMjYsCktlKTtiKDI3LExlKTtiKDI4LE1lKTtiKDI5LE5lKTtiKDQ1LE9lKTtiKDMwLFBlKTtiKDMyLFFlKTtiKDMzLFFlKTtiKDM0LFJlKTtiKDM1LFJlKTtiKDQ2LFNlKTtiKDM2LFRlKTtiKDQzLFVlKTtiKDM3LFZlKTtiKDM4LFdlKTtiKDM5LFhlKTtiKDQwLFllKTtiKDQ0LGhmKTtiKDQxLFplKTtiKDQyLCRlKX07cGYucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5qZSgpfTtwZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtwZi5wcm90b3R5cGUuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTsKZnVuY3Rpb24gcWYoYSl7aWYoYSBpbnN0YW5jZW9mIFRhfHxhIGluc3RhbmNlb2YgS2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBQZHx8YT09PW51bGx8fGE9PT12b2lkIDB8fHR5cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im51bWJlciJ8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhfTt2YXIgc2Y9ZnVuY3Rpb24oYSl7dGhpcy5tZXNzYWdlPWF9O2Z1bmN0aW9uIHRmKGEpe2EucXY9ITA7cmV0dXJuIGF9O3ZhciB1Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLHZmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksd2Y9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7ZnVuY3Rpb24geGYoYSl7dmFyIGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2FdO3JldHVybiBiPT09dm9pZCAwP25ldyBzZigiVmFsdWUgIithKyIgY2FuIG5vdCBiZSBlbmNvZGVkIGluIHdlYi1zYWZlIGJhc2U2NCBkaWN0aW9uYXJ5LiIpOmJ9O2Z1bmN0aW9uIHlmKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIjEiO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIjAiO2RlZmF1bHQ6cmV0dXJuIi0ifX07dmFyIHpmPS9eWzEtOWEtekEtWl8tXVsxLTlhLWNdWzEtOWEtdl1cZCQvO2Z1bmN0aW9uIEFmKGEsYil7Zm9yKHZhciBjPSIiLGQ9ITA7YT43Oyl7dmFyIGU9YSYzMTthPj49NTtkP2Q9ITE6ZXw9MzI7Yz0iIit4ZihlKStjfWE8PD0yO2R8fChhfD0zMik7cmV0dXJuIGM9IiIreGYoYXxiKStjfWZ1bmN0aW9uIEJmKGEsYil7cmV0dXJuIGI9PT12b2lkIDB8fGI9PT0wPyIiOiIiK0FmKGEsMSkreGYoYil9CmZ1bmN0aW9uIENmKGEsYil7dmFyIGM7dmFyIGQ9YS5oaSxlPWEuYms7ZD09PXZvaWQgMD9jPSIiOihlfHwoZT0wKSxjPSIiK0FmKDEsMSkreGYoZDw8MnxlKSk7dmFyIGY9IjQiK2MrQmYoMixhLnFyKSxnLGg9YS5JbztnPWgmJnpmLnRlc3QoaCk/IiIrQWYoMywyKStoOiIiO3ZhciBsO3ZhciBuPWEuY3RpZDtpZihuJiZiKXt2YXIgcD1BZig1LDMpLHE9bi5zcGxpdCgiLSIpLHI9cVswXS50b1VwcGVyQ2FzZSgpO2lmKHIhPT0iR1RNIiYmciE9PSJPUFQiKWw9IiI7ZWxzZXt2YXIgdD1xWzFdO2w9IiIrcCt4ZigxK3QubGVuZ3RoKSsoYS5Mc3x8MCkrdH19ZWxzZSBsPSIiO3ZhciB1PWEuY2Fub25pY2FsSWQsdj1hLm1jLHg9YS56dix5PWYrZytCZig0LGEuRG8pK2wrQmYoNixhLkR0KSsodT8iIitBZig3LDMpK3hmKHUubGVuZ3RoKSt1OiIiKSsodj8iIitBZig4LDMpK3hmKHYubGVuZ3RoKSt2OiIiKSsoeD8iIitBZig5LDMpK3hmKHgubGVuZ3RoKSt4OiIiKSx6O3ZhciBDPWEuenI7Qz0KQz09PXZvaWQgMD97fTpDO2Zvcih2YXIgRD1bXSxJPW0oT2JqZWN0LmtleXMoQykpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXt2YXIgTj1HLnZhbHVlO0RbTnVtYmVyKE4pXT1DW05dfWlmKEQubGVuZ3RoKXt2YXIgUz1BZigxMCwzKSxXO2lmKEQubGVuZ3RoPT09MClXPXhmKDApO2Vsc2V7Zm9yKHZhciBlYT1bXSxqYT0wLGZhPSExLHNhPTA7c2E8RC5sZW5ndGg7c2ErKyl7ZmE9ITA7dmFyIGRhPXNhJTY7RFtzYV0mJihqYXw9MTw8ZGEpO2RhPT09NSYmKGVhLnB1c2goeGYoamEpKSxqYT0wLGZhPSExKX1mYSYmZWEucHVzaCh4ZihqYSkpO1c9ZWEuam9pbigiIil9dmFyIG1hPVc7ej0iIitTK3hmKG1hLmxlbmd0aCkrbWF9ZWxzZSB6PSIiO3ZhciBQYT1hLlVzLEZhPWEubnQ7cmV0dXJuIHkreisoUGE/IiIrQWYoMTEsMykreGYoUGEubGVuZ3RoKStQYToiIikrKEZhPyIiK0FmKDEzLDMpK3hmKEZhLmxlbmd0aCkrRmE6IiIpK0JmKDE0LGEuRXQpK0JmKDE1LGEucnYpK0JmKDE2LAphLkF2KX07ZnVuY3Rpb24gRGYoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07ZnVuY3Rpb24gRWYoYSxiKXtmb3IodmFyIGM9cWIoYiksZD1uZXcgVWludDhBcnJheShjLmxlbmd0aCksZT0wO2U8Yy5sZW5ndGg7ZSsrKWRbZV09Yy5jaGFyQ29kZUF0KGUpO2lmKGQubGVuZ3RoIT09MzIpdGhyb3cgRXJyb3IoIktleSBpcyBub3QgMzIgYnl0ZXMuIik7cmV0dXJuIEZmKGEsZCl9ZnVuY3Rpb24gRmYoYSxiKXtpZihhPT09IiIpcmV0dXJuIiI7dmFyIGM9WmIoYSksZD1iLnNsaWNlKC0yKSxlPVtdLmNvbmNhdCh3KGQpLHcoYykpLm1hcChmdW5jdGlvbihnLGgpe3JldHVybiBnXmJbaCViLmxlbmd0aF19KSxmPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGUpLHcoZCkpKTtyZXR1cm4gcGIoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhmKSkpLnJlcGxhY2UoL1wuKyQvLCIiKX07dmFyIEdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtyZXR1cm57dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYn19fXJldHVybntjcDphKCJjb25zZW50IiksWms6YSgiY29udmVydF9jYXNlX3RvIiksYWw6YSgiY29udmVydF9mYWxzZV90byIpLGJsOmEoImNvbnZlcnRfbnVsbF90byIpLGVwOmEoImNvbnZlcnRfdG9fYm9vbGVhbiIpLGFoOmEoImNvbnZlcnRfdG9fbnVtYmVyIiksZmw6YSgiY29udmVydF90cnVlX3RvIiksaWw6YSgiY29udmVydF91bmRlZmluZWRfdG8iKSxZdDphKCJkZWJ1Z19tb2RlX21ldGFkYXRhIiksWWI6YSgiZnVuY3Rpb24iKSxSbTphKCJpbnN0YW5jZV9uYW1lIiksTnE6YSgibGl2ZV9vbmx5IiksT3E6YSgibWFsd2FyZV9kaXNhYmxlZCIpLE1FVEFEQVRBOmEoIm1ldGFkYXRhIiksUnE6YSgib3JpZ2luYWxfYWN0aXZpdHlfaWQiKSxUdTphKCJvcmlnaW5hbF92ZW5kb3JfdGVtcGxhdGVfaWQiKSxTdTphKCJvbmNlX29uX2xvYWQiKSxRcTphKCJvbmNlX3Blcl9ldmVudCIpLAprbjphKCJvbmNlX3Blcl9sb2FkIiksVnU6YSgicHJpb3JpdHlfb3ZlcnJpZGUiKSxZdTphKCJyZXNwZWN0ZWRfY29uc2VudF90eXBlcyIpLHRuOmEoInNldHVwX3RhZ3MiKSx5ajphKCJ0YWdfaWQiKSxEbjphKCJ0ZWFyZG93bl90YWdzIikscGw6YSgiZGlzYWJsZWRfaW5fZ29vZ2xlX21vZGUiKSxGcTphKCJnZW5lcmF0ZWRfdGFnZ2luZ19tZXRhZGF0YSIpfX0oKTtmdW5jdGlvbiBIZihhLGIpe3ZhciBjPXt9O2NbR2YuWWJdPSJfXyIrYTtmb3IodmFyIGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1sidnRwXyIrZF09YltkXSk7cmV0dXJuIGN9O2Z1bmN0aW9uIElmKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/ISFkYXRhLmJsb2JbYV06Yn1mdW5jdGlvbiBFKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhkYXRhLmJsb2JbYV0pOmJ9ZnVuY3Rpb24gSmYoYSl7dmFyIGIsYztyZXR1cm4oKGI9ZGF0YSk9PW51bGw/MDooYz1iLmJsb2IpPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGRhdGEuYmxvYlthXSk6MH1mdW5jdGlvbiBLZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/W106Yjt2YXIgYyxkLGU9KGM9ZGF0YSk9PW51bGw/dm9pZCAwOihkPWMuYmxvYik9PW51bGw/dm9pZCAwOmRbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpifQpmdW5jdGlvbiBMZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGNbYV0pOmJ9ZnVuY3Rpb24gTmYoYSxiKXt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGNbYV0pOmJ9ZnVuY3Rpb24gTWYoYSl7dmFyIGIsYztyZXR1cm4oYj1kYXRhKT09bnVsbD92b2lkIDA6KGM9Yi5ibG9iKT09bnVsbD92b2lkIDA6Y1thXX07dmFyIE9mPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxjKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnBlcm1pc3Npb25JZD1hO3RoaXMucGFyYW1ldGVycz1iO3RoaXMubmFtZT0iUGVybWlzc2lvbkVycm9yIn07d2EoT2YsRXJyb3IpO09mLnByb3RvdHlwZS5nZXRNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07ZnVuY3Rpb24gUGYoYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY29udGV4dCIse3ZhbHVlOntsaW5lOmJbMF19fSk7Zm9yKHZhciBjPTE7YzxhLmxlbmd0aDtjKyspUGYoYVtjXSxiW2NdKX19O2Z1bmN0aW9uIFFmKCl7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM7dmFyIGQ9UmY7YSBpbnN0YW5jZW9mIGJiPyhhLkg9ZCxjPWEpOmM9bmV3IGJiKGEsZCk7dmFyIGU9YztiJiZlLksucHVzaChiKTt0aHJvdyBlO319ZnVuY3Rpb24gUmYoYSl7aWYoIWEubGVuZ3RoKXJldHVybiBhO2EucHVzaCh7aWQ6Im1haW4iLGxpbmU6MH0pO2Zvcih2YXIgYj1hLmxlbmd0aC0xO2I+MDtiLS0pQWIoYVtiXS5pZCkmJmEuc3BsaWNlKGIrKywxKTtmb3IodmFyIGM9YS5sZW5ndGgtMTtjPjA7Yy0tKWFbY10ubGluZT1hW2MtMV0ubGluZTthLnNwbGljZSgwLDEpO3JldHVybiBhfTt2YXIgU2Y9UmVnRXhwKCJbXjAtOVxcListXSIsImciKSxUZj1SZWdFeHAoIlteMC05XFwsKy1dIiwiZyIpLFVmPVJlZ0V4cCgiW14wLTkrLV0iLCJnIik7CmZ1bmN0aW9uIFZmKGEsYil7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTt2YXIgYz1TdHJpbmcoYSksZDtpZihiPT09IkFVVE9NQVRJQyIpe3ZhciBlPShjLm1hdGNoKC9cLi9nKXx8W10pLmxlbmd0aCxmPShjLm1hdGNoKC8sL2cpfHxbXSkubGVuZ3RoLGc9Ik5PTkUiO2lmKGU+MCYmZj4wKXt2YXIgaD1jLmxhc3RJbmRleE9mKCIuIik+Yy5sYXN0SW5kZXhPZigiLCIpO2gmJmU9PT0xP2c9IlBFUklPRCI6aHx8ZiE9PTF8fChnPSJDT01NQSIpfWVsc2UgZT09PTE/Zz0oYy5zcGxpdCgiLiIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IlBFUklPRCI6Ik5PTkUiOmY9PT0xJiYoZz0oYy5zcGxpdCgiLCIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IkNPTU1BIjoiTk9ORSIpO2Q9Z31lbHNlIGQ9Yj09PSJDT01NQSI/IkNPTU1BIjoiUEVSSU9EIjt2YXIgbCxuO2Q9PT0iUEVSSU9EIj8obD0iLiIsbj1TZik6ZD09PSJDT01NQSI/KGw9IiwiLApuPVRmKToobD0iIixuPVVmKTt2YXIgcD1jLnJlcGxhY2UobiwiIik7aWYobCE9PSIiJiZwLnNwbGl0KGwpLmxlbmd0aD4yKXJldHVybiBhO3ZhciBxPXAucmVwbGFjZSgvLC9nLCIuIik7aWYocT09PSIiKXJldHVybiBhO3ZhciByPU51bWJlcihxKTtyZXR1cm4gaXNOYU4ocik/YTpyfTt2YXIgV2Y9W10sWGY9e307ZnVuY3Rpb24gWWYoYSl7cmV0dXJuIFdmW2FdPT09dm9pZCAwPyExOldmW2FdfTt2YXIgWmY9ZnVuY3Rpb24oKXt0aGlzLkg9e319LCRmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7YS5IW2JdLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShudWxsLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9KX07ZnVuY3Rpb24gYWcoYSxiLGMsZCl7aWYoYSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9dm9pZCAwLGc9IkEgcG9saWN5IGZ1bmN0aW9uIGRlbmllZCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0Ijt0cnl7Zj1hW2VdKGIsYyxkKSxnKz0iLiJ9Y2F0Y2goaCl7Zz10eXBlb2YgaD09PSJzdHJpbmciP2crKCI6ICIraCk6aCBpbnN0YW5jZW9mIEVycm9yP2crKCI6ICIraC5tZXNzYWdlKTpnKyIuIn1pZighZil0aHJvdyBuZXcgT2YoYyxkLGcpO319CmZ1bmN0aW9uIGJnKGEsYil7dmFyIGM9Y2coZGcuSCxiLGZ1bmN0aW9uKCl7cmV0dXJue319KTt0cnl7cmV0dXJuIGMoYSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fWZ1bmN0aW9uIGNnKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGU9YS5IW2RdLGY9YS5ILmFsbDtpZihlfHxmKXt2YXIgZz1jLmFwcGx5KHZvaWQgMCxbZF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpO2FnKGUsYixkLGcpO2FnKGYsYixkLGcpfX19fTt2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD1uZXcgWmY7dmFyIGU9e30sZj17fSxnPWNnKHRoaXMuSCxhLGZ1bmN0aW9uKGgpe3JldHVybiBoJiZlW2hdP2VbaF0uYXBwbHkodm9pZCAwLFtoXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk6e319KTtHYihiLGZ1bmN0aW9uKGgsbCl7ZnVuY3Rpb24gbihxKXt2YXIgcj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoIXBbcV0pdGhyb3cgZWcocSx7fSwiVGhlIHJlcXVlc3RlZCBhZGRpdGlvbmFsIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7Zy5hcHBseShudWxsLFtxXS5jb25jYXQodyhyKSkpfXZhciBwPXt9O0diKGwsZnVuY3Rpb24ocSxyKXt2YXIgdD1mZyhxLHIsYyk7cFtxXT10LmFzc2VydDtlW3FdfHwoZVtxXT10LmFhKTt0Lk9uJiYhZltxXSYmKGZbcV09dC5Pbil9KTtkLktbaF09ZnVuY3Rpb24ocSxyKXt2YXIgdD1wW3FdO2lmKCF0KXRocm93IGVnKHEsCnt9LCJUaGUgcmVxdWVzdGVkIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3QuYXBwbHkodm9pZCAwLHUpO2cuYXBwbHkodm9pZCAwLHUpO3ZhciB2PWZbcV07diYmdi5hcHBseShudWxsLFtuXS5jb25jYXQodyh1LnNsaWNlKDEpKSkpfX0pfSxoZz1mdW5jdGlvbihhKXtyZXR1cm4gZGcuS1thXXx8ZnVuY3Rpb24oKXt9fTsKZnVuY3Rpb24gZmcoYSxiLGMpe3RyeXt2YXIgZD1jWyJfXyIrYV07aWYoIWQpdGhyb3cgRXJyb3IoIk5vIGZ1bmN0aW9uIGZvdW5kIGZvciBwZXJtaXNzaW9uOiAiK2ErIi4iKTt2YXIgZT1IZihhLGIpO2UudnRwX3Blcm1pc3Npb25OYW1lPWE7ZS52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yPWVnO2RlbGV0ZSBlW0dmLlliXTtyZXR1cm4gZChlKX1jYXRjaChmKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGcpe3Rocm93IG5ldyBPZihnLHt9LCJQZXJtaXNzaW9uICIrZysiIGlzIHVua25vd24uIik7fSxhYTpmdW5jdGlvbigpe3Rocm93IG5ldyBPZihhLHt9LCJQZXJtaXNzaW9uICIrYSsiIGlzIHVua25vd24uIik7fX19fWZ1bmN0aW9uIGVnKGEsYixjKXtyZXR1cm4gbmV3IE9mKGEsYixjKX07dmFyIGlnPUUoNSksamc9RSgyMCksa2c9RSgxKSxsZz0hMTt2YXIgbWc9e307bWcuUG89SWYoMjkpO21nLktyPUlmKDI4KTtmdW5jdGlvbiBuZyhhKXt2YXIgYj0xLGMsZCxlO2lmKGEpZm9yKGI9MCxkPWEubGVuZ3RoLTE7ZD49MDtkLS0pZT1hLmNoYXJDb2RlQXQoZCksYj0oYjw8NiYyNjg0MzU0NTUpK2UrKGU8PDE0KSxjPWImMjY2MzM4MzA0LGI9YyE9PTA/Yl5jPj4yMTpiO3JldHVybiBifTt2YXIgb2c9ZnVuY3Rpb24oYSl7dGhpcy5jYWNoZT1hfTtvZy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPW5nKGEpLGM9dGhpcy5jYWNoZS5nZXQoYik7aWYoIWMpcmV0dXJue3Byb21pc2U6dm9pZCAwLEtqOjB9O2lmKERhdGUubm93KCk+PWMudGltZXN0YW1wKzlFNSlyZXR1cm4gdGhpcy5jYWNoZS5kZWxldGUoYikse3Byb21pc2U6dm9pZCAwLEtqOjN9O3ZhciBkPWMucmVzb2x2ZWRWYWx1ZT8yOjE7cmV0dXJue3Byb21pc2U6Yy5yZXNvbHZlZFZhbHVlP1Byb21pc2UucmVzb2x2ZShjLnJlc29sdmVkVmFsdWUpOmMucHJvbWlzZSxLajpkfX07b2cucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXtwcm9taXNlOmIscmVzb2x2ZWRWYWx1ZTp2b2lkIDAsdGltZXN0YW1wOkRhdGUubm93KCl9O3RoaXMuY2FjaGUuc2V0KG5nKGEpLGMpO2IudGhlbihmdW5jdGlvbihkKXtjLnJlc29sdmVkVmFsdWU9ZH0pfTtmdW5jdGlvbiBwZyhhKXtzd2l0Y2goYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTpyZXR1cm4iZTQiO2Nhc2UgNjpyZXR1cm4iZTUiO2Nhc2UgMTQ6cmV0dXJuImU2IjtkZWZhdWx0OnJldHVybiJlNyJ9fTt2YXIgRj17RDp7WGE6ImFkX3BlcnNvbmFsaXphdGlvbiIsa2E6ImFkX3N0b3JhZ2UiLG1hOiJhZF91c2VyX2RhdGEiLHJhOiJhbmFseXRpY3Nfc3RvcmFnZSIsbmM6InJlZ2lvbiIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsWWc6IndhaXRfZm9yX3VwZGF0ZSIsZWg6ImVuZHBvaW50X3R5cGUiLHFwOiJhcHBfcmVtb3ZlIixycDoiYXBwX3N0b3JlX3JlZnVuZCIsdHA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIix1cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Iix2cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyIsd3A6ImNvbnNlbnRfdXBkYXRlIix4cDoiY29udmVyc2lvbiIsdmw6ImFkZF9wYXltZW50X2luZm8iLHdsOiJhZGRfc2hpcHBpbmdfaW5mbyIseGU6ImFkZF90b19jYXJ0Iix5ZToicmVtb3ZlX2Zyb21fY2FydCIseGw6InZpZXdfY2FydCIsQWQ6ImJlZ2luX2NoZWNrb3V0IixldToiZ2VuZXJhdGVfbGVhZCIsemU6InNlbGVjdF9pdGVtIixvYzoidmlld19pdGVtX2xpc3QiLApRYzoic2VsZWN0X3Byb21vdGlvbiIscWM6InZpZXdfcHJvbW90aW9uIixJYjoicHVyY2hhc2UiLEFlOiJyZWZ1bmQiLHJjOiJ2aWV3X2l0ZW0iLHlsOiJhZGRfdG9fd2lzaGxpc3QiLHlwOiJleGNlcHRpb24iLHpwOiJmaXJzdF9vcGVuIixBcDoiZmlyc3RfdmlzaXQiLHdhOiJndGFnLmNvbmZpZyIsSmI6Imd0YWcuZ2V0IixCcDoiaW5fYXBwX3B1cmNoYXNlIixzYzoicGFnZV92aWV3IixDcDoic2NyZWVuX3ZpZXciLERwOiJzZXNzaW9uX3N0YXJ0IixFcDoic291cmNlX3VwZGF0ZSIsRnA6InRpbWluZ19jb21wbGV0ZSIsR3A6InRyYWNrX3NvY2lhbCIseWY6InVzZXJfZW5nYWdlbWVudCIsSHA6InVzZXJfaWRfdXBkYXRlIixmaDoiYnJhaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsZ2g6ImJyYWlkX3N0b3JhZ2Vfc291cmNlIixCZDoiZ2NsaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQ2Q6ImdjbGlkX3N0b3JhZ2Vfc291cmNlIixTYjoiZ2NsZ2IiLGxiOiJnY2xpZCIsemw6ImdjbGlkX2xlbiIsCkJlOiJnY2xncyIsQ2U6ImdjbGxwIixEZToiZ2Nsc3QiLG1iOiJhZHNfZGF0YV9yZWRhY3Rpb24iLHpmOiJnYWRfc291cmNlIixBZjoiZ2FkX3NvdXJjZV9zcmMiLERkOiJnY2xpZF91cmwiLEFsOiJnY2xzcmMiLEJmOiJnYnJhaWQiLEVlOiJ3YnJhaWQiLFJjOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyIscmk6ImFsbG93X2N1c3RvbV9zY3JpcHRzIixoaDoiYWxsb3dfZGlzcGxheV9mZWF0dXJlcyIsc2k6ImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIixTYzoiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLHVpOiJhbGxvd19pbnRlcmVzdF9ncm91cHMiLElwOiJhcHBfaWQiLEpwOiJhcHBfaW5zdGFsbGVyX2lkIixLcDoiYXBwX25hbWUiLExwOiJhcHBfdmVyc2lvbiIsRWQ6ImF1aWQiLGZ1OiJhdXRvX2RldGVjdGlvbl9lbmFibGVkIixCbDoiYXV0b19ldmVudCIsQ2w6ImF3X3JlbWFya2V0aW5nIixpaDoiYXdfcmVtYXJrZXRpbmdfb25seSIsQ2Y6ImRpc2NvdW50IixEZjoiYXdfZmVlZF9jb3VudHJ5IiwKRWY6ImF3X2ZlZWRfbGFuZ3VhZ2UiLEhhOiJpdGVtcyIsRmY6ImF3X21lcmNoYW50X2lkIix3aToiYXdfYmFza2V0X3R5cGUiLEdmOiJjYW1wYWlnbl9jb250ZW50IixIZjoiY2FtcGFpZ25faWQiLElmOiJjYW1wYWlnbl9tZWRpdW0iLEpmOiJjYW1wYWlnbl9uYW1lIixLZjoiY2FtcGFpZ24iLExmOiJjYW1wYWlnbl9zb3VyY2UiLE1mOiJjYW1wYWlnbl90ZXJtIixLYjoiY2xpZW50X2lkIixEbDoicm5kIix4aToiY29uc2VudF91cGRhdGVfdHlwZSIsTXA6ImNvbnRlbnRfZ3JvdXAiLE5wOiJjb250ZW50X3R5cGUiLEZkOiJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiLHlpOiJjb252ZXJzaW9uX2lkIix1YzoiY29udmVyc2lvbl9saW5rZXIiLEhkOiJjb252ZXJzaW9uX2xpbmtlcl9kaXNhYmxlZCIsRmU6ImNvbnZlcnNpb25fYXBpIix6aToiXyZyY2IiLGpoOiJjb29raWVfZGVwcmVjYXRpb24iLExiOiJjb29raWVfZG9tYWluIixDYjoiY29va2llX2V4cGlyZXMiLFRiOiJjb29raWVfZmxhZ3MiLApJZDoiY29va2llX25hbWUiLHZjOiJjb29raWVfcGF0aCIsbmI6ImNvb2tpZV9wcmVmaXgiLEpkOiJjb29raWVfdXBkYXRlIixUYzoiY291bnRyeSIsZWI6ImN1cnJlbmN5IixHZToiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiLGtoOiJjdXN0b21lcl90eXBlIixIZToiY3VzdG9tX21hcCIsQWk6ImdjbGRjX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLEJpOiJnY2xkY19zdG9yYWdlX3NvdXJjZSIsTmY6ImdjbGRjIixLZDoiZGNsaWQiLEVsOiJkZWJ1Z19tb2RlIixPYToiZGV2ZWxvcGVyX2lkIixPcDoiZGlzYWJsZV9tZXJjaGFudF9yZXBvcnRlZF9wdXJjaGFzZXMiLFVjOiJkY19jdXN0b21fcGFyYW1zIixQcDoiZGNfbmF0dXJhbF9zZWFyY2giLFFwOiJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixGbDoiYWZmaWxpYXRpb24iLG1oOiJjaGVja291dF9vcHRpb24iLENpOiJjaGVja291dF9zdGVwIixHbDoiY291cG9uIixPZjoiaXRlbV9saXN0X25hbWUiLERpOiJsaXN0X25hbWUiLFJwOiJwcm9tb3Rpb25zIiwKTGQ6InNoaXBwaW5nIixIbDoidGF4IixuaDoiZW5nYWdlbWVudF90aW1lX21zZWMiLG9oOiJlbmhhbmNlZF9jbGllbnRfaWQiLFNwOiJlbmhhbmNlZF9jb252ZXJzaW9ucyIsZ3U6ImVuaGFuY2VkX2NvbnZlcnNpb25zX2F1dG9tYXRpY19zZXR0aW5ncyIsSWU6ImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIixQZjoiZXZlbnRfY2FsbGJhY2siLFRwOiJldmVudF9jYXRlZ29yeSIsVmM6ImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciLE1kOiJldmVudF9pZCIsRWk6Il9ldmVudF9qb2luX2lkIixVcDoiZXZlbnRfbGFiZWwiLFViOiJldmVudCIsSWw6Il8mYWUiLEZpOiJldmVudF9zZXR0aW5ncyIscGg6ImV2ZW50X3RpbWVvdXQiLFZwOiJkZXNjcmlwdGlvbiIsV3A6ImZhdGFsIixYcDoiZXhwZXJpbWVudHMiLE5kOiJleHRfY2xpZW50X2lkIixHaToiZmlyZWJhc2VfaWQiLFFmOiJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIixSZjoiX3hfMjAiLFZiOiJfeF8xOSIsWXA6ImZsaWdodF9lcnJvcl9jb2RlIiwKWnA6ImZsaWdodF9lcnJvcl9tZXNzYWdlIixIaToiZmxfYWN0aXZpdHlfY2F0ZWdvcnkiLElpOiJmbF9hY3Rpdml0eV9ncm91cCIscWg6ImZsX2FkdmVydGlzZXJfaWQiLEppOiJtYXRjaF9pZCIsSmw6ImZsX3JhbmRvbV9udW1iZXIiLEtsOiJ0cmFuIixMbDoidSIscmg6ImdhY19nY2xpZCIsSmU6ImdhY193YnJhaWQiLE1sOiJnYWNfd2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixhcToiZ2FfcmVzdHJpY3RfZG9tYWluIixObDoiZ2FfdGVtcF9jbGllbnRfaWQiLGJxOiJnYV90ZW1wX2VjaWQiLEtlOiJnZHByX2FwcGxpZXMiLHNoOiJfZ3RfbWV0YWRhdGEiLE9sOiJnZW9fZ3JhbnVsYXJpdHkiLFNmOiJ2YWx1ZV9jYWxsYmFjayIsVGY6InZhbHVlX2tleSIsVGE6Imdvb2dsZV9hbmFseXNpc19wYXJhbXMiLExlOiJfZ29vZ2xlX25nIixjcToiX29ubyIsVWY6Imdvb2dsZV9zaWduYWxzIixmcToiZ29vZ2xlX3RsZCIsdGg6ImdwcF9zaWQiLHVoOiJncHBfc3RyaW5nIixPZDoiZ3JvdXBzIiwKUGw6ImdzYV9leHBlcmltZW50X2lkIixWZjoiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIixRbDoiZ3RtX3VwIixNZToiaWZyYW1lX3N0YXRlIixXZjoiaWdub3JlX3JlZmVycmVyIixSbDoiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixTbDoiX2lzX2ZwbSIsWWM6ImlzX2xlZ2FjeV9jb252ZXJ0ZWQiLFpjOiJpc19sZWdhY3lfbG9hZGVkIixLaToiaXNfcGFzc3Rocm91Z2giLFBkOiJfbHBzIix0YjoibGFuZ3VhZ2UiLExpOiJsZWdhY3lfZGV2ZWxvcGVyX2lkX3N0cmluZyIsRGI6ImxpbmtlciIsWGY6ImFjY2VwdF9pbmNvbWluZyIsd2M6ImRlY29yYXRlX2Zvcm1zIixBYToiZG9tYWlucyIsYWQ6InVybF9wb3NpdGlvbiIsUWQ6Im1lcmNoYW50X2ZlZWRfbGFiZWwiLFJkOiJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIixTZDoibWVyY2hhbnRfaWQiLFRsOiJtZXRob2QiLGdxOiJuYW1lIixVbDoibmF2aWdhdGlvbl90eXBlIixOZToibmV3X2N1c3RvbWVyIixNaToibm9uX2ludGVyYWN0aW9uIiwKaHE6Im9wdGltaXplX2lkIixWbDoicGFnZV9ob3N0bmFtZSIsWWY6InBhZ2VfcGF0aCIsVWE6InBhZ2VfcmVmZXJyZXIiLE1iOiJwYWdlX3RpdGxlIixpcToicGFzc2VuZ2VycyIsV2w6InBob25lX2NvbnZlcnNpb25fY2FsbGJhY2siLGpxOiJwaG9uZV9jb252ZXJzaW9uX2NvdW50cnlfY29kZSIsWGw6InBob25lX2NvbnZlcnNpb25fY3NzX2NsYXNzIixrcToicGhvbmVfY29udmVyc2lvbl9pZHMiLFlsOiJwaG9uZV9jb252ZXJzaW9uX251bWJlciIsWmw6InBob25lX2NvbnZlcnNpb25fb3B0aW9ucyIsbHE6Il9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyIsbXE6Il9wcm90ZWN0ZWRfYXVkaWVuY2VfZW5hYmxlZCIsd2g6InF1YW50aXR5Iix4aDoicmVkYWN0X2RldmljZV9pbmZvIixhbToicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLGh1OiJfcmVxdWVzdF9zdGFydF90aW1lIixXYjoicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciLG5xOiJyZXRva2VuIixvcToic2FtcGxlX3JhdGUiLApOaToic2NyZWVuX25hbWUiLGJkOiJzY3JlZW5fcmVzb2x1dGlvbiIsYm06Il9zY3JpcHRfc291cmNlIixwcToic2VhcmNoX3Rlcm0iLFRkOiJzZW5kX3BhZ2VfdmlldyIsWGI6InNlbmRfdG8iLE9pOiJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiLGRkOiJzZXJ2ZXJfY29udGFpbmVyX3VybCIscXE6InNlc3Npb25fYXR0cmlidXRlc19lbmNvZGVkIix5aDoic2Vzc2lvbl9kdXJhdGlvbiIsemg6InNlc3Npb25fZW5nYWdlZCIsUGk6InNlc3Npb25fZW5nYWdlZF90aW1lIix4Yzoic2Vzc2lvbl9pZCIsQWg6InNlc3Npb25fbnVtYmVyIixaZjoiX3NoYXJlZF91c2VyX2lkIixVZDoiZGVsaXZlcnlfcG9zdGFsX2NvZGUiLGl1OiJfdGFnX2ZpcmluZ19kZWxheSIsanU6Il90YWdfZmlyaW5nX3RpbWUiLGt1OiJ0ZW1wb3JhcnlfY2xpZW50X2lkIixRaToidGVzdG9ubHkiLHJxOiJfdGltZXpvbmUiLFBlOiJ0b3Btb3N0X3VybCIsUWU6InRyYWNraW5nX2lkIixSaToidHJhZmZpY190eXBlIiwKUGE6InRyYW5zYWN0aW9uX2lkIixkbToidHJhbnNhY3Rpb25faWRfc291cmNlIix5YzoidHJhbnNwb3J0X3VybCIsc3E6InRyaXBfdHlwZSIsVmQ6InVwZGF0ZSIsemM6InVybF9wYXNzdGhyb3VnaCIsZm06InVwdGdzIixjZzoiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIixkZzoiX3VzZXJfYWdlbnRfYml0bmVzcyIsZWc6Il91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0IixmZzoiX3VzZXJfYWdlbnRfbW9iaWxlIixnZzoiX3VzZXJfYWdlbnRfbW9kZWwiLGhnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybSIsaWc6Il91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iLGpnOiJfdXNlcl9hZ2VudF93b3c2NCIsQWM6InVzZXJfZGF0YSIsZ206InVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiLGhtOiJ1c2VyX2RhdGFfYXV0b19tZXRhIixpbToidXNlcl9kYXRhX2F1dG9fbXVsdGkiLGptOiJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiLGttOiJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiLEJjOiJ1c2VyX2RhdGFfbW9kZSIsCmxtOiJ1c2VyX2RhdGFfc2V0dGluZ3MiLGZiOiJ1c2VyX2lkIixXZDoidXNlcl9wcm9wZXJ0aWVzIixvbToiX3VzZXJfcmVnaW9uIixrZzoidXNfcHJpdmFjeV9zdHJpbmciLFFhOiJ2YWx1ZSIscW06IndicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsZWQ6Il9mcG1fcGFyYW1ldGVycyIsV2k6Il9ob3N0X25hbWUiLFZtOiJfaW5fcGFnZV9jb21tYW5kIixZaToiX2lwX292ZXJyaWRlIixabToiX2lzX3Bhc3N0aHJvdWdoX2NpZCIsSmg6Il9tZWFzdXJlbWVudF90eXBlIixkZToibm9uX3BlcnNvbmFsaXplZF9hZHMiLG9qOiJfc3N0X3BhcmFtZXRlcnMiLFlxOiJzZ3RtX2dlb191c2VyX2NvdW50cnkiLEdkOiJjb252ZXJzaW9uX2xhYmVsIix6YToicGFnZV9sb2NhdGlvbiIsV2M6Il9leHRyYWN0ZWRfZGF0YSIsWGM6Imdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIixPZToidGNfcHJpdmFjeV9zdHJpbmcifX07dmFyIEg9e0o6e1NvOiJhYm9ydF93aXRob3V0X2ZhaWwiLGtpOiJhY2NlcHRfYnlfZGVmYXVsdCIsQms6ImFkZF90YWdfdGltaW5nIixEazoiYWRzX2NvbnNlbnRfZ3JhbnRlZCIsdmQ6ImFkc19ldmVudF9wYWdlX3ZpZXciLHdkOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iLFF0OiJhdXRvX2V2ZW50IixLazoiYmF0Y2hfb25fbmF2aWdhdGlvbiIsWGc6ImJpc2NvdHRpX2pvaW5faWQiLFBrOiJjbGllbnRfaWRfc291cmNlIix1ZjoiY29uc2VudF9ldmVudF9pZCIsdmY6ImNvbnNlbnRfcHJpb3JpdHlfaWQiLFN0OiJjb25zZW50X3N0YXRlIixzYToiY29uc2VudF91cGRhdGVkIix3ZjoiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCIsVHQ6ImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiLEdhOiJjb29raWVfb3B0aW9ucyIsb2w6ImRjX3JhbmRvbSIsWnQ6ImRlZHVwZV9pZCIsUGM6ImVtX2V2ZW50IixidToiZW5kcG9pbnRfZm9yX2RlYnVnIix0bDoiZW5oYW5jZWRfY2xpZW50X2lkX3NvdXJjZSIsCnBwOiJlbmhhbmNlZF9tYXRjaF9yZXN1bHQiLHJtOiJldWlkX2xvZ2dlZF9pbl9zdGF0ZSIsbGc6ImV1aWRfbW9kZV9lbmFibGVkIix0cToiZXZlbnRfcHJvdmVuYW5jZSIsbXU6ImV2ZW50X3NvdXJjZSIsRWI6ImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyIsd206ImV2ZW50X3VzYWdlIixDaDoiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIixwdToiYWRkX3BhcmFtZXRlciIsVWk6ImNvdW50aW5nX21ldGhvZCIsRGg6InNlbmRfYXNfaWZyYW1lIixxdToicGFyYW1ldGVyX29yZGVyIixFaDoicGFyc2VkX3RhcmdldCIsc3U6ImZvcm1fZXZlbnRfY2FuY2VsZWQiLEFxOiJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iLFZpOiJnYTRfcmVxdWVzdF9mbGFncyIsTm06ImdicmFpZF9jb29raWVfbWFya2VkIixRbToiZ3RtX2V4dHJhY3RlZF9kYXRhIixDYzoiaGFuZGxlX2ludGVybmFsbHkiLHV1OiJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyIsZGE6ImhpdF90eXBlIixEYzoiaGl0X3R5cGVfb3ZlcnJpZGUiLApIcToiaWdub3JlX2R1cGVfY29uZmlnIixPdToiaXNfY29uZmlnX2NvbW1hbmQiLEdoOiJpc19jb25zZW50X3VwZGF0ZSIsbWc6ImlzX2NvbnZlcnNpb24iLFdtOiJpc19lY29tbWVyY2UiLFhtOiJpc19lY19jbV9zcGxpdCIsYWU6ImlzX2V4dGVybmFsX2V2ZW50IixuZzoiaXNfZmlyc3RfdmlzaXQiLFltOiJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIixaaToiaXNfZmxfZmFsbGJhY2tfY29udmVyc2lvbl9mbG93X2FsbG93ZWQiLGZkOiJpc19mcG1fZW5jcnlwdGlvbiIsYWo6ImlzX2ZwbV9zcGxpdCIsb2I6ImlzX2djcF9icm93c2VyIixiajoiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiLGNqOiJpc19nb29nbGVfc2lnbmFsc19lbmFibGVkIixiZToiaXNfbWVyY2hhbnRfY2VudGVyIixIaDoiaXNfbmV3X3RvX3NpdGUiLEVjOiJpc19wZXJzb25hbGl6YXRpb24iLGRqOiJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiIsVGU6ImlzX3Nlc3Npb25fc3RhcnQiLGJuOiJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iLApQdToiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIixRdToiaXNfc2d0bV9wcmVoaXQiLGRuOiJpc19zZ3RtX3NlcnZpY2Vfd29ya2VyIixJaDoiaXNfc3BsaXRfY29udmVyc2lvbiIsSXE6ImlzX3N5biIsRmM6ImlzX3Rlc3RfZXZlbnQiLG9nOiJqb2luX2lkIixlajoiam9pbl9lbGFwc2VkIixwZzoiam9pbl90aW1lcl9zZWMiLGduOiJsb2NhbF9zdG9yYWdlX2F3X2NvbnZlcnNpb25fY291bnRlcnMiLFdlOiJ0dW5uZWxfdXBkYXRlZCIsVXU6InByZWhpdF9mb3JfcmV0cnkiLFd1OiJwcm9taXNlcyIsWHU6InJlY29yZF9hd19sYXRlbmN5IixYZToicmVkYWN0X2Fkc19kYXRhIixZZToicmVkYWN0X2NsaWNrX2lkcyIscG46InJlbWFya2V0aW5nX29ubHkiLGxqOiJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIixoZDoic2VuZF9kb3VibGVjbGlja19qb2luIixNaDoic2VuZF9mcG1fZ2VvX2pvaW4iLE5oOiJzZW5kX2ZwbV9nb29nbGVfam9pbiIsWnU6InNlbmRfY2NtX3BhcmFsbGVsX3Rlc3RfcGluZyIsCnJuOiJzZW5kX2dvb2dsZV9tZWFzdXJlbWVudCIscmc6InNlbmRfdGxkX2pvaW4iLHNnOiJzZW5kX3RvX2Rlc3RpbmF0aW9ucyIsbWo6InNlbmRfdG9fdGFyZ2V0cyIsc246InNlbmRfdXNlcl9kYXRhX2hpdCIscGo6InNlcnZpY2Vfd29ya2VyX2NvbnRleHQiLE5iOiJzb3VyY2VfY2Fub25pY2FsX2lkIixKYToic3BlY3VsYXRpdmUiLHluOiJzcGVjdWxhdGl2ZV9pbl9tZXNzYWdlIixBbjoic3VwcHJlc3Nfc2NyaXB0X2xvYWQiLEJuOiJzeW5fb3JfbW9kIix6ajoidHJhbnNpZW50X2Vjc2lkIix0ZzoidHJhbnNtaXNzaW9uX3R5cGUiLFlhOiJ1c2VyX2RhdGEiLGd2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiLGh2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIixHbjoidXNlcl9kYXRhX2Zyb21fY29kZSIsaXI6InVzZXJfZGF0YV9mcm9tX21hbnVhbCIsanY6InVzZXJfZGF0YV9tb2RlIix1ZzoidXNlcl9pZF91cGRhdGVkIn19O3ZhciBKPXtVOntrcDoxLG1wOjIsRW46Myxubjo0LHFsOjUscmw6NixFcTo3LG5wOjgsRHE6OSxqcDoxMCxocDoxMSx4bjoxMix2bjoxMyxOazoxNCxVbzoxNSxXbzoxNixobjoxNyxzbDoxOCxmbjoxOSxscDoyMCxQcToyMSxhcDoyMixWbzoyMyxYbzoyNCxubDoyNSxMazoyNixlcjoyNyxKbToyOCxVbToyOSxUbTozMCxTbTozMSxNbTozMixLbTozMyxMbTozNCxHbTozNSxGbTozNixIbTozNyxJbTozOCxCcTozOSxDcTo0MCxVcTo0MX19O0ouVVtKLlUua3BdPSJDUkVBVEVfRVZFTlRfU09VUkNFIjtKLlVbSi5VLm1wXT0iRURJVF9FVkVOVCI7Si5VW0ouVS5Fbl09IlRSQUZGSUNfVFlQRSI7Si5VW0ouVS5ubl09IlJFRkVSUkFMX0VYQ0xVU0lPTiI7Si5VW0ouVS5xbF09IkVDT01NRVJDRV9GUk9NX0dUTV9UQUciO0ouVVtKLlUucmxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVUFfU0NIRU1BIjtKLlVbSi5VLkVxXT0iR0FfU0VORCI7Si5VW0ouVS5ucF09IkVNX0ZPUk0iOwpKLlVbSi5VLkRxXT0iR0FfR0FNX0xJTksiO0ouVVtKLlUuanBdPSJDUkVBVEVfRVZFTlRfQVVUT19QQUdFX1BBVEgiO0ouVVtKLlUuaHBdPSJDUkVBVEVEX0VWRU5UIjtKLlVbSi5VLnhuXT0iU0lERUxPQURFRCI7Si5VW0ouVS52bl09IlNHVE1fTEVHQUNZX0NPTkZJR1VSQVRJT04iO0ouVVtKLlUuTmtdPSJDQ0RfRU1fRVZFTlQiO0ouVVtKLlUuVW9dPSJBVVRPX1JFREFDVF9FTUFJTCI7Si5VW0ouVS5Xb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNIjtKLlVbSi5VLmhuXT0iTVVMVElQTEVfUEFHRVZJRVdfRlJPTV9DT05GSUciO0ouVVtKLlUuc2xdPSJFTV9FVkVOVF9TRU5UX0JFRk9SRV9DT05GSUciO0ouVVtKLlUuZm5dPSJMT0FERURfVklBX0NTVF9PUl9TSURFTE9BRElORyI7Si5VW0ouVS5scF09IkRFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuUHFdPSJOT05fREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5hcF09IkNDRF9FVkVOVF9TR1RNIjsKSi5VW0ouVS5Wb109IkFVVE9fUkVEQUNUX0VNQUlMX1NHVE0iO0ouVVtKLlUuWG9dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTV9TR1RNIjtKLlVbSi5VLm5sXT0iREFJTFlfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5Ma109IkJVUlNUX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuZXJdPSJTSEFSRURfVVNFUl9JRF9TRVRfQUZURVJfUkVRVUVTVCI7Si5VW0ouVS5KbV09IkdBNF9NVUxUSVBMRV9TRVNTSU9OX0NPT0tJRVMiO0ouVVtKLlUuVW1dPSJJTlZBTElEX0dBNF9TRVNTSU9OX0NPVU5UIjtKLlVbSi5VLlRtXT0iSU5WQUxJRF9HQTRfTEFTVF9FVkVOVF9USU1FU1RBTVAiO0ouVVtKLlUuU21dPSJJTlZBTElEX0dBNF9KT0lOX1RJTUVSIjtKLlVbSi5VLk1tXT0iR0E0X1NUQUxFX1NFU1NJT05fQ09PS0lFX1NFTEVDVEVEIjtKLlVbSi5VLkttXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMV9SRUFEIjtKLlVbSi5VLkxtXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMl9SRUFEIjsKSi5VW0ouVS5HbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BVkFJTEFCTEUiO0ouVVtKLlUuRm1dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVBQTElFRCI7Si5VW0ouVS5IbV09IkdBNF9HT09HTEVfTUVBU1VSRU1FTlRfQUxMT1dFRCI7Si5VW0ouVS5JbV09IkdBNF9HT09HTEVfU0lHTkFMU19FTkFCTEVEIjtKLlVbSi5VLkJxXT0iR0E0X0ZBTExCQUNLX1JFUVVFU1QiO0ouVVtKLlUuQ3FdPSJHQV9BRFNfTElOS19CRUZPUkVfQ09OVkVSU0lPTl9NQVJLSU5HIjtKLlVbSi5VLlVxXT0iUExBVElOVU1fRUxJR0lCTEUiO3ZhciB4Zz17fSx5Zz0oeGcudWFhPSEwLHhnLnVhYj0hMCx4Zy51YWZ2bD0hMCx4Zy51YW1iPSEwLHhnLnVhbT0hMCx4Zy51YXA9ITAseGcudWFwdj0hMCx4Zy51YXc9ITAseGcpOwp2YXIgRWc9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YSxlPWJbY107aWYoIUNnLmV4ZWMoZSkpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IHdpbGRjYXJkIik7dmFyIGY9ZS5pbmRleE9mKCIuKiIpLGc9ZiE9PS0xJiZmPT09ZS5sZW5ndGgtMixoPWc/ZS5zbGljZSgwLGUubGVuZ3RoLTIpOmUsbDthOmlmKGQubGVuZ3RoPT09MClsPSExO2Vsc2V7Zm9yKHZhciBuPWQuc3BsaXQoIi4iKSxwPTA7cDxuLmxlbmd0aDtwKyspaWYoIURnLmV4ZWMobltwXSkpe2w9ITE7YnJlYWsgYX1sPSEwfWlmKCFsfHxoLmxlbmd0aD5kLmxlbmd0aHx8IWcmJmQubGVuZ3RoIT09ZS5sZW5ndGg/MDpnP1NiKGQsaCkmJihkPT09aHx8ZC5jaGFyQXQoaC5sZW5ndGgpPT09Ii4iKTpkPT09aClyZXR1cm4hMH1yZXR1cm4hMX0sRGc9L15bYS16JF9dW1x3LSRdKiQvaSxDZz0vXig/OlthLXpfJF1bYS16LV8kMC05XSpcLikqW2Etel8kXVthLXotXyQwLTldKig/OlwuXCopPyQvaTsKdmFyIEZnPVsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdO2Z1bmN0aW9uIEdnKGEsYil7aWYoIWEpcmV0dXJuITE7dHJ5e2Zvcih2YXIgYz0wO2M8RmcubGVuZ3RoO2MrKyl7dmFyIGQ9RmdbY107aWYoYVtkXSE9bnVsbClyZXR1cm4gYVtkXShiKX19Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEhnKGEsYil7dmFyIGM9U3RyaW5nKGEpLGQ9U3RyaW5nKGIpLGU9Yy5sZW5ndGgtZC5sZW5ndGg7cmV0dXJuIGU+PTAmJmMuaW5kZXhPZihkLGUpPT09ZX1mdW5jdGlvbiBJZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuc3BsaXQoIiwiKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9CmZ1bmN0aW9uIEpnKGEsYixjLGQpe3ZhciBlPWM/ImkiOnZvaWQgMDt0cnl7dmFyIGY9U3RyaW5nKGIpK1N0cmluZyhlKSxnPWQ9PW51bGw/dm9pZCAwOmQuZ2V0KGYpO2d8fChnPW5ldyBSZWdFeHAoYixlKSxkPT1udWxsfHxkLnNldChmLGcpKTtyZXR1cm4gZy50ZXN0KGEpfWNhdGNoKGgpe3JldHVybiExfX1mdW5jdGlvbiBLZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuaW5kZXhPZihTdHJpbmcoYikpPj0wfWZ1bmN0aW9uIExnKGEsYil7cmV0dXJuIFN0cmluZyhhKT09PVN0cmluZyhiKX1mdW5jdGlvbiBNZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+PU51bWJlcihiKX1mdW5jdGlvbiBOZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8PU51bWJlcihiKX1mdW5jdGlvbiBPZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+TnVtYmVyKGIpfWZ1bmN0aW9uIFBnKGEsYil7cmV0dXJuIE51bWJlcihhKTxOdW1iZXIoYil9CmZ1bmN0aW9uIFFnKGEsYil7cmV0dXJuIFNiKFN0cmluZyhhKSxTdHJpbmcoYikpfTtmdW5jdGlvbiBYZyhhKXt2YXIgYj1hLnNlYXJjaDtyZXR1cm4gYS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYS5wYXRobmFtZSsoYj9iKyImcmljaHNzdHNzZSI6Ij9yaWNoc3N0c3NlIil9O3ZhciBZZz1mdW5jdGlvbigpe3RoaXMuUj0iIn0sJGc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1iLmZhbGxiYWNrX3VybCxkPWIuZmFsbGJhY2tfdXJsX21ldGhvZDtpZihjJiZkKXt2YXIgZT17fTtaZyhhLChlW2RdPVtjXSxlLm9wdGlvbnM9e30sZSkpfX19LGFoPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO3R5cGVvZiBmPT09InN0cmluZyImJmMoZixiKX19LFpnPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9Q2QoYi5vcHRpb25zKT9iLm9wdGlvbnM6e30sZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWJbZl07c3dpdGNoKGYpe2Nhc2UgInNlbmRfcGl4ZWwiOmFoKGcsYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSyhoLGwpfSk7YnJlYWs7Y2FzZSAiZmV0Y2giOmFoKGcsCmMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLkgoaCxsKX0pfX19O3ZhciBiaD0vXihbYS16XVthLXowLTldKik6KCF8XD8pKFwqfHN0cmluZ3xib29sZWFufG51bWJlcnxGbnxQaXhpZU1hcHxMaXN0fE9wYXF1ZVZhbHVlKSQvaSxjaD17Rm46ImZ1bmN0aW9uIixQaXhpZU1hcDoiT2JqZWN0IixMaXN0OiJBcnJheSJ9OwpmdW5jdGlvbiBkaChhLGIpe2Zvcih2YXIgYz1bImlucHV0OiEqIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1iaC5leGVjKGNbZF0pO2lmKCFlKXRocm93IEVycm9yKCJJbnRlcm5hbCBFcnJvciBpbiAiK2EpO3ZhciBmPWVbMV0sZz1lWzJdPT09IiEiLGg9ZVszXSxsPWJbZF07aWYobD09bnVsbCl7aWYoZyl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIFJlcXVpcmVkIGFyZ3VtZW50ICIrZisiIG5vdCBzdXBwbGllZC4iKTt9ZWxzZSBpZihoIT09IioiKXt2YXIgbj10eXBlb2YgbDtsIGluc3RhbmNlb2YgS2Q/bj0iRm4iOmwgaW5zdGFuY2VvZiBHZD9uPSJMaXN0IjpsIGluc3RhbmNlb2Yga2I/bj0iUGl4aWVNYXAiOmwgaW5zdGFuY2VvZiBTZD9uPSJQaXhpZVByb21pc2UiOmwgaW5zdGFuY2VvZiBQZCYmKG49Ik9wYXF1ZVZhbHVlIik7aWYobiE9PWgpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBBcmd1bWVudCAiK2YrIiBoYXMgdHlwZSAiKygoY2hbbl18fG4pKyIsIHdoaWNoIGRvZXMgbm90IG1hdGNoIHJlcXVpcmVkIHR5cGUgIikrCigoY2hbaF18fGgpKyIuIikpO319fWZ1bmN0aW9uIEsoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyBpbnN0YW5jZW9mIEtkP2QucHVzaCgiZnVuY3Rpb24iKTpnIGluc3RhbmNlb2YgR2Q/ZC5wdXNoKCJBcnJheSIpOmcgaW5zdGFuY2VvZiBrYj9kLnB1c2goIk9iamVjdCIpOmcgaW5zdGFuY2VvZiBTZD9kLnB1c2goIlByb21pc2UiKTpnIGluc3RhbmNlb2YgUGQ/ZC5wdXNoKCJPcGFxdWVWYWx1ZSIpOmQucHVzaCh0eXBlb2YgZyl9cmV0dXJuIEVycm9yKCJBcmd1bWVudCBlcnJvciBpbiAiK2ErIi4gRXhwZWN0ZWQgYXJndW1lbnQgdHlwZXMgWyIrKGIuam9pbigiLCIpKyJdLCBidXQgcmVjZWl2ZWQgWyIpKyhkLmpvaW4oIiwiKSsiXS4iKSl9ZnVuY3Rpb24gZWgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBrYn1mdW5jdGlvbiBmaChhKXtyZXR1cm4gZWgoYSl8fGE9PT1udWxsfHxnaChhKX0KZnVuY3Rpb24gaGgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBLZH1mdW5jdGlvbiBpaChhKXtyZXR1cm4gaGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBqaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEdkfWZ1bmN0aW9uIGtoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgUGR9ZnVuY3Rpb24gbGgoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gbWgoYSl7cmV0dXJuIGxoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gbmgoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifWZ1bmN0aW9uIG9oKGEpe3JldHVybiBuaChhKXx8Z2goYSl9ZnVuY3Rpb24gcGgoYSl7cmV0dXJuIG5oKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gcWgoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9ZnVuY3Rpb24gZ2goYSl7cmV0dXJuIGE9PT12b2lkIDB9O2Z1bmN0aW9uIHJoKGEpe3JldHVybiIiK2F9CmZ1bmN0aW9uIHNoKGEsYil7dmFyIGM9W107cmV0dXJuIGN9O2Z1bmN0aW9uIHRoKGEsYil7dmFyIGM9bmV3IEtkKGEsZnVuY3Rpb24oKXtmb3IodmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdPXRoaXMuZXZhbHVhdGUoZFtlXSk7dHJ5e3JldHVybiBiLmFwcGx5KHRoaXMsZCl9Y2F0Y2goZyl7dGhyb3cgY2IoZyk7fX0pO2MuWmEoKTtyZXR1cm4gY30KZnVuY3Rpb24gdWgoYSxiKXt2YXIgYz1uZXcga2IsZDtmb3IoZCBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWJbZF07eWIoZSk/Yy5zZXQoZCx0aChhKyJfIitkLGUpKTpDZChlKT9jLnNldChkLHVoKGErIl8iK2QsZSkpOihBYihlKXx8emIoZSl8fHR5cGVvZiBlPT09ImJvb2xlYW4iKSYmYy5zZXQoZCxlKX1jLlphKCk7cmV0dXJuIGN9O2Z1bmN0aW9uIHdoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0QXBpU3ViamVjdCIsCmMpfTtmdW5jdGlvbiB4aChhLGIpe2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgU2QpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IGFjdHVhbCBjYW5ub3QgaGF2ZSB0eXBlIFByb21pc2UuIEFzc2VydGlvbnMgb24gYXN5bmNocm9ub3VzIGNvZGUgYXJlbid0IHN1cHBvcnRlZC4iKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0VGhhdFN1YmplY3QiLGMpfTtmdW5jdGlvbiB5aChhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGI9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGM9W10sZD10aGlzLlQsZT0wO2U8Yi5sZW5ndGg7KytlKWMucHVzaChUZChiW2VdLGQpKTtyZXR1cm4gVWQoYS5hcHBseShudWxsLGMpKX19ZnVuY3Rpb24gemgoKXtmb3IodmFyIGE9TWF0aCxiPUFoLGM9e30sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2EuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPXloKGFbZV0uYmluZChhKSkpfXJldHVybiBjfTtmdW5jdGlvbiBCaChhKXtyZXR1cm4gYSE9bnVsbCYmU2IoYSwiX19jdnRfIil9O2Z1bmN0aW9uIENoKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBEaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRWgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUkkoYSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gRmgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGEpKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBHaChhLGIpe3ZhciBjPSExO3ZhciBkPUpTT04ucGFyc2UoYSk7aWYoIWQpdGhyb3cgRXJyb3IoIkludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIHN0cmluZyB3YXMgZ2l2ZW4uIik7Yz1IaChkLGIpO3JldHVybiBjfQp2YXIgSWg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7aWYoYT09PXZvaWQgMClyZXR1cm47YT1hW2JbY11dfXJldHVybiBhfSxKaD1mdW5jdGlvbihhLGIpe3ZhciBjPWIucHJlSGl0O2lmKGMpe3ZhciBkPWFbMF07c3dpdGNoKGQpe2Nhc2UgImhpdERhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldEhpdERhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAibWV0YWRhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldE1ldGFkYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgImV2ZW50TmFtZSI6cmV0dXJuIGMuZ2V0RXZlbnROYW1lKCk7Y2FzZSAiZGVzdGluYXRpb25JZCI6cmV0dXJuIGMuZ2V0RGVzdGluYXRpb25JZCgpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoZCsiIGlzIG5vdCBhIHZhbGlkIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkXG4gICAgICAgICAgICAgICAgICAgICAgZnJvbSBQcmVIaXQgZGF0YS4iKTt9fX0sCktoPWZ1bmN0aW9uKGEsYil7aWYoYSl7aWYoYS5jb250ZXh0VmFsdWUhPT12b2lkIDApe3ZhciBjO2E6e3ZhciBkPWEuY29udGV4dFZhbHVlLGU9ZC5rZXlQYXJ0cztpZihlJiZlLmxlbmd0aCE9PTApe3ZhciBmPWQubmFtZXNwYWNlVHlwZTtzd2l0Y2goZil7Y2FzZSAxOmM9SmgoZSxiKTticmVhayBhO2Nhc2UgMjp2YXIgZz1iLm1hY3JvO2M9Zz9nW2VbMF1dOnZvaWQgMDticmVhayBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlIFR5cGUgdXNlZDogIitmKTt9fWM9dm9pZCAwfXJldHVybiBjfWlmKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSE9PXZvaWQgMClyZXR1cm4gSGgoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlLGIpO2lmKGEuYm9vbGVhblZhbHVlIT09dm9pZCAwKXJldHVybiEhYS5ib29sZWFuVmFsdWU7aWYoYS5zdHJpbmdWYWx1ZSE9PXZvaWQgMClyZXR1cm4gU3RyaW5nKGEuc3RyaW5nVmFsdWUpO2lmKGEuaW50ZWdlclZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5pbnRlZ2VyVmFsdWUpOwppZihhLmRvdWJsZVZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5kb3VibGVWYWx1ZSk7dGhyb3cgRXJyb3IoIlVua25vd24gZmllbGQgdXNlZCBmb3IgdmFyaWFibGUgb2YgdHlwZSBFeHByZXNzaW9uVmFsdWU6IithKTt9fSxIaD1mdW5jdGlvbihhLGIpe3ZhciBjPWEuYXJncztpZighQXJyYXkuaXNBcnJheShjKXx8Yy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJhcmdzIjonK2MrIiBwcm9wZXJ0eSB0b1xuICAgICAgICAgYmUgbm9uLWVtcHR5IGFycmF5LiIpO3ZhciBkPWZ1bmN0aW9uKGcpe3JldHVybiBLaChnLGIpfTtzd2l0Y2goYS50eXBlKXtjYXNlIDE6Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspaWYoZChjW2VdKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlIDI6Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoIWQoY1tmXSkpcmV0dXJuITE7cmV0dXJuIGMubGVuZ3RoPjA7Y2FzZSAzOnJldHVybiFkKGNbMF0pOwpjYXNlIDQ6cmV0dXJuIEpnKGQoY1swXSksZChjWzFdKSwhMSxiLnJlZ2V4Q2FjaGUpO2Nhc2UgNTpyZXR1cm4gTGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDY6cmV0dXJuIFFnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA3OnJldHVybiBIZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgODpyZXR1cm4gS2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDk6cmV0dXJuIFBnKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMDpyZXR1cm4gTmcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDExOnJldHVybiBPZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTI6cmV0dXJuIE1nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMzpyZXR1cm4gSWcoZChjWzBdKSxTdHJpbmcoZChjWzFdKSkpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgInR5cGUiIHByb3BlcnR5IHRvYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIGxlc3MgdGhhbiAxNC4nKTt9fTsKZnVuY3Rpb24gTGgoYSl7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt9O2Z1bmN0aW9uIE1oKGEpe3ZhciBiPVRkKGEpO3JldHVybiBuZyhiPyIiK2I6IiIpfTtmdW5jdGlvbiBOaChhLGIpe2lmKCFxaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiLCJudW1iZXIiXSxhcmd1bWVudHMpO3JldHVybiBEYihhLGIpfTtmdW5jdGlvbiBPaCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTtmdW5jdGlvbiBQaChhKXtpZihhPT09bnVsbClyZXR1cm4ibnVsbCI7aWYoYSBpbnN0YW5jZW9mIEdkKXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIEtkKXJldHVybiJmdW5jdGlvbiI7aWYoYSBpbnN0YW5jZW9mIFBkKXt2YXIgYj1hLmdldFZhbHVlKCk7aWYoKGI9PW51bGw/dm9pZCAwOmIuY29uc3RydWN0b3IpPT09dm9pZCAwfHxiLmNvbnN0cnVjdG9yLm5hbWU9PT12b2lkIDApe3ZhciBjPVN0cmluZyhiKTtyZXR1cm4gYy5zdWJzdHJpbmcoOCxjLmxlbmd0aC0xKX1yZXR1cm4gU3RyaW5nKGIuY29uc3RydWN0b3IubmFtZSl9cmV0dXJuIHR5cGVvZiBhfTtmdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGMpe3JldHVybiBmdW5jdGlvbihkKXt0cnl7cmV0dXJuIGMoZCl9Y2F0Y2goZSl7KGxnfHxtZy5QbykmJmEuY2FsbCh0aGlzLGUubWVzc2FnZSl9fX1yZXR1cm57cGFyc2U6YihmdW5jdGlvbihjKXtyZXR1cm4gVWQoSlNPTi5wYXJzZShjKSl9KSxzdHJpbmdpZnk6YihmdW5jdGlvbihjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVGQoYykpfSkscHVibGljTmFtZToiSlNPTiJ9fTtmdW5jdGlvbiBSaChhKXtyZXR1cm4gSWIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gU2goYSl7cmV0dXJuIE51bWJlcihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBUaChhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBVaChhLGIsYyl7dmFyIGQ9bnVsbCxlPSExO3JldHVybiBlP2Q6bnVsbH07dmFyIEFoPSJmbG9vciBjZWlsIHJvdW5kIG1heCBtaW4gYWJzIHBvdyBzcXJ0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFZoKCl7dmFyIGE9e307cmV0dXJue1dyOmZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpP2FbYl06dm9pZCAwfSxLbzpmdW5jdGlvbihiLGMpe2FbYl09Y30scmVzZXQ6ZnVuY3Rpb24oKXthPXt9fX19ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2QucHJvdG90eXBlLmludm9rZS5hcHBseShhLFtiXS5jb25jYXQodyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKSl9fQpmdW5jdGlvbiBYaChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt9CmZ1bmN0aW9uIFloKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIlBpeGllTWFwIl0sYXJndW1lbnRzKTt9O3ZhciBaaD17fTt2YXIgJGg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2lmKGEgaW5zdGFuY2VvZiBHZClmb3IodmFyIGM9YS5GYSgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTthLmhhcyhlKSYmYi5zZXQoZSxhLmdldChlKSl9ZWxzZSBpZihhIGluc3RhbmNlb2YgS2QpZm9yKHZhciBmPWEuRmEoKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107Yi5zZXQoaCxhLmdldChoKSl9ZWxzZSBmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyliLnNldChsLGFbbF0pO3JldHVybiBifTsKWmgua2V5cz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLkZhKCkpO3JldHVybiBuZXcgR2R9OwpaaC52YWx1ZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5oYygpKTtyZXR1cm4gbmV3IEdkfTsKWmguZW50cmllcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmZjKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBuZXcgR2QoYil9KSk7cmV0dXJuIG5ldyBHZH07ClpoLmZyZWV6ZT1mdW5jdGlvbihhKXsoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkKSYmYS5aYSgpO3JldHVybiBhfTtaaC5kZWxldGU9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2Yga2ImJiFhLkhiKCkpcmV0dXJuIGEucmVtb3ZlKGIpLCEwO3JldHVybiExfTtmdW5jdGlvbiBMKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9YS5ULnhiKCk7aWYoIWQpdGhyb3cgRXJyb3IoIk1pc3NpbmcgcHJvZ3JhbSBzdGF0ZS4iKTtpZihkLml0KXt0cnl7ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfWNhdGNoKGUpe3Rocm93IHNiKCJUQUdHSU5HIiwyMSksZTt9cmV0dXJufWQuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX07dmFyIGFpPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49ITA7fTthaS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250YWlucyhhKT90aGlzLktbYV06dm9pZCAwO3JldHVybiBjfTthaS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSy5oYXNPd25Qcm9wZXJ0eShhKX07CmFpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKHRoaXMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYW4gQVBJIHdpdGggYW4gZXhpc3RpbmcgcHJpdmF0ZSBBUEkgbmFtZTogIithKyIuIik7dGhpcy5LW2FdPWM/dm9pZCAwOnliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9O2Z1bmN0aW9uIGNpKCl7dmFyIGE9e307CnJldHVybiBhfTt2YXIgZGk9e30sZWk9KGRpW0YuRC5zYV09ImdjdSIsZGlbRi5ELmVoXT0iZXB0IixkaVtGLkQuU2JdPSJnY2xnYiIsZGlbRi5ELmxiXT0iZ2NsYXciLGRpW0YuRC56bF09ImdjbGlkX2xlbiIsZGlbRi5ELkJlXT0iZ2NsZ3MiLGRpW0YuRC5DZV09ImdjbGxwIixkaVtGLkQuRGVdPSJnY2xzdCIsZGlbRi5ELkVkXT0iYXVpZCIsZGlbRi5ELkJsXT0iYWUiLGRpW0YuRC5DZl09ImRzY250IixkaVtGLkQuRGZdPSJmY250ciIsZGlbRi5ELkVmXT0iZmxuZyIsZGlbRi5ELkZmXT0ibWlkIixkaVtGLkQud2ldPSJidHR5cGUiLGRpW0YuRC5LYl09ImdhY2lkIixkaVtGLkQuR2RdPSJsYWJlbCIsZGlbRi5ELkZlXT0iY2FwaSIsZGlbRi5ELmpoXT0icHNjZGwiLGRpW0YuRC5lYl09ImN1cnJlbmN5X2NvZGUiLGRpW0YuRC5HZV09InZkbHR2IixkaVtGLkQua2hdPSJjbG9jdCIsZGlbRi5ELkVsXT0iX2RiZyIsZGlbRi5ELkllXT0ib2VkZWxkIixkaVtGLkQuVmNdPSJlZGlkIixkaVtGLkQuTWRdPSJldm5pZCIsCmRpW0YuRC5FaV09ImV2amlkIixkaVtGLkQuTmRdPSJleGNpZCIsZGlbRi5ELnJoXT0iZ2FjIixkaVtGLkQuSmVdPSJnYWNnYiIsZGlbRi5ELk1sXT0iZ2FjbWNvdiIsZGlbRi5ELktlXT0iZ2RwciIsZGlbRi5ELlhjXT0iZ2RpZCIsZGlbRi5ELkxlXT0iX25nIixkaVtGLkQuY3FdPSJfb25vIixkaVtGLkQudGhdPSJncHBfc2lkIixkaVtGLkQudWhdPSJncHAiLGRpW0YuRC5QbF09ImdzYWV4cCIsZGlbRi5ELlZmXT0iX3R1IixkaVtGLkQuTWVdPSJmcm0iLGRpW0YuRC5LaV09Imd0bV91cCIsZGlbRi5ELlBkXT0ibHBzIixkaVtGLkQuTGldPSJkaWQiLGRpW0YuRC5RZF09ImZjbnRyIixkaVtGLkQuUmRdPSJmbG5nIixkaVtGLkQuU2RdPSJtaWQiLGRpW0YuRC5OZV09dm9pZCAwLGRpW0YuRC5NYl09InRpYmEiLGRpW0YuRC5XYl09InJkcCIsZGlbRi5ELnhjXT0iZWNzaWQiLGRpW0YuRC5aZl09ImdhX3VpZCIsZGlbRi5ELlVkXT0iZGVsb3BjIixkaVtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLApkaVtGLkQuUGFdPSJvaWQiLGRpW0YuRC5kbV09Im9pZHNyYyIsZGlbRi5ELmZtXT0idXB0Z3MiLGRpW0YuRC5jZ109InVhYSIsZGlbRi5ELmRnXT0idWFiIixkaVtGLkQuZWddPSJ1YWZ2bCIsZGlbRi5ELmZnXT0idWFtYiIsZGlbRi5ELmdnXT0idWFtIixkaVtGLkQuaGddPSJ1YXAiLGRpW0YuRC5pZ109InVhcHYiLGRpW0YuRC5qZ109InVhdyIsZGlbRi5ELmdtXT0iZWNfbGF0IixkaVtGLkQuaG1dPSJlY19tZXRhIixkaVtGLkQuaW1dPSJlY19tIixkaVtGLkQuam1dPSJlY19zZWwiLGRpW0YuRC5rbV09ImVjX3MiLGRpW0YuRC5CY109ImVjX21vZGUiLGRpW0YuRC5mYl09InVzZXJJZCIsZGlbRi5ELmtnXT0idXNfcHJpdmFjeSIsZGlbRi5ELlFhXT0idmFsdWUiLGRpW0YuRC5xbV09Im1jb3YiLGRpW0YuRC5XaV09ImhuIixkaVtGLkQuVm1dPSJndG1fZWUiLGRpW0YuRC5ZaV09InVpcCIsZGlbRi5ELkpoXT0ibXQiLGRpW0YuRC5kZV09Im5wYSIsZGlbRi5ELllxXT0ic2dfdWMiLGRpW0YuRC55aV09Cm51bGwsZGlbRi5ELmJkXT1udWxsLGRpW0YuRC50Yl09bnVsbCxkaVtGLkQuSGFdPW51bGwsZGlbRi5ELnphXT1udWxsLGRpW0YuRC5VYV09bnVsbCxkaVtGLkQuUGVdPW51bGwsZGlbRi5ELmVkXT1udWxsLGRpW0YuRC5zaF09bnVsbCxkaVtGLkQuQmRdPW51bGwsZGlbRi5ELkNkXT1udWxsLGRpW0YuRC5maF09bnVsbCxkaVtGLkQuZ2hdPW51bGwsZGlbRi5ELlRhXT1udWxsLGRpW0YuRC5XY109bnVsbCxkaSk7ZnVuY3Rpb24gZmkoYSxiKXtpZihhKXt2YXIgYz1hLnNwbGl0KCJ4Iik7Yy5sZW5ndGg9PT0yJiYoZ2koYiwidV93IixjWzBdKSxnaShiLCJ1X2giLGNbMV0pKX19ZnVuY3Rpb24gaGkoYSl7dmFyIGI9aWk7Yj1iPT09dm9pZCAwP2ppOmI7cmV0dXJuIGtpKGxpKGEsYikpfWZ1bmN0aW9uIGtpKGEpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4iKCIrW21pKGIudmFsdWUpLG1pKGIucXVhbnRpdHkpLG1pKGIuaXRlbV9pZCksbWkoYi5zdGFydF9kYXRlKSxtaShiLmVuZF9kYXRlKV0uam9pbigiKiIpKyIpIn0pLmpvaW4oIiIpfQpmdW5jdGlvbiBsaShhLGIpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXtyZXR1cm57aXRlbV9pZDpiKGMpLHF1YW50aXR5OmMucXVhbnRpdHksdmFsdWU6Yy5wcmljZSxzdGFydF9kYXRlOmMuc3RhcnRfZGF0ZSxlbmRfZGF0ZTpjLmVuZF9kYXRlfX0pfWZ1bmN0aW9uIGppKGEpe3JldHVyblthLml0ZW1faWQsYS5pZCxhLml0ZW1fbmFtZV0uZmluZChmdW5jdGlvbihiKXtyZXR1cm4gYiE9bnVsbH0pfWZ1bmN0aW9uIG5pKGEpe2lmKGEmJmEubGVuZ3RoKXJldHVybiBhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYiYmYi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZT9iLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlOiIifSkuam9pbigiLCIpfWZ1bmN0aW9uIGdpKGEsYixjKXtjPT09dm9pZCAwfHxjPT09bnVsbHx8Yz09PSIiJiYheWdbYl18fChhW2JdPWMpfQpmdW5jdGlvbiBtaShhKXtyZXR1cm4gdHlwZW9mIGEhPT0ibnVtYmVyIiYmdHlwZW9mIGEhPT0ic3RyaW5nIj8iIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIG9pKCl7dGhpcy5ibG9ja1NpemU9LTF9O2Z1bmN0aW9uIHBpKGEsYil7dGhpcy5ibG9ja1NpemU9LTE7dGhpcy5ibG9ja1NpemU9NjQ7dGhpcy5OPVJhLlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLlI9dGhpcy5LPTA7dGhpcy5IPVtdO3RoaXMuZmE9YTt0aGlzLlo9Yjt0aGlzLmphPVJhLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KDY0KTtxaT09PXZvaWQgMCYmKFJhLkludDMyQXJyYXk/cWk9bmV3IEludDMyQXJyYXkocmkpOnFpPXJpKTt0aGlzLnJlc2V0KCl9U2EocGksb2kpO2Zvcih2YXIgc2k9W10sdGk9MDt0aTw2Mzt0aSsrKXNpW3RpXT0wO3ZhciB1aT1bXS5jb25jYXQoMTI4LHNpKTsKcGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSz0wO3ZhciBhO2lmKFJhLkludDMyQXJyYXkpYT1uZXcgSW50MzJBcnJheSh0aGlzLlopO2Vsc2V7dmFyIGI9dGhpcy5aLGM9Yi5sZW5ndGg7aWYoYz4wKXtmb3IodmFyIGQ9QXJyYXkoYyksZT0wO2U8YztlKyspZFtlXT1iW2VdO2E9ZH1lbHNlIGE9W119dGhpcy5IPWF9Owp2YXIgdmk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuTixjPWEuamEsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2Zvcih2YXIgZj0xNjtmPDY0O2YrKyl7dmFyIGc9Y1tmLTE1XXwwLGg9Y1tmLTJdfDA7Y1tmXT0oKGNbZi0xNl18MCkrKChnPj4+N3xnPDwyNSleKGc+Pj4xOHxnPDwxNCleZz4+PjMpfDApKygoY1tmLTddfDApKygoaD4+PjE3fGg8PDE1KV4oaD4+PjE5fGg8PDEzKV5oPj4+MTApfDApfDB9Zm9yKHZhciBsPWEuSFswXXwwLG49YS5IWzFdfDAscD1hLkhbMl18MCxxPWEuSFszXXwwLHI9YS5IWzRdfDAsdD1hLkhbNV18MCx1PWEuSFs2XXwwLHY9YS5IWzddfDAseD0wO3g8NjQ7eCsrKXt2YXIgeT0oKGw+Pj4yfGw8PDMwKV4obD4+PjEzfGw8PDE5KV4obD4+PjIyfGw8PDEwKSkrKGwmbl5sJnBebiZwKXwwLHo9KHYrKChyPj4+NnxyPDwyNileKHI+Pj4xMXxyPDwyMSleKHI+Pj4yNXxyPDw3KSl8CjApKygoKHImdF5+ciZ1KSsocWlbeF18MCl8MCkrKGNbeF18MCl8MCl8MDt2PXU7dT10O3Q9cjtyPXErenwwO3E9cDtwPW47bj1sO2w9eit5fDB9YS5IWzBdPWEuSFswXStsfDA7YS5IWzFdPWEuSFsxXStufDA7YS5IWzJdPWEuSFsyXStwfDA7YS5IWzNdPWEuSFszXStxfDA7YS5IWzRdPWEuSFs0XStyfDA7YS5IWzVdPWEuSFs1XSt0fDA7YS5IWzZdPWEuSFs2XSt1fDA7YS5IWzddPWEuSFs3XSt2fDB9OwpwaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLks7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5OW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApO2Vsc2V7dmFyIGUsZj10eXBlb2YgYTtlPWYhPSJvYmplY3QiP2Y6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6ZjoibnVsbCI7aWYoZT09ImFycmF5Inx8ZT09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKDtjPGI7KXt2YXIgZz1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGcmJjA8PWcmJjI1NT49ZyYmZz09KGd8MCkpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dGhpcy5OW2QrK109ZztkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIHN0cmluZyBvciBhcnJheSIpOwp9dGhpcy5LPWQ7dGhpcy5SKz1ifTtwaS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLlIqODt0aGlzLks8NTY/dGhpcy51cGRhdGUodWksNTYtdGhpcy5LKTp0aGlzLnVwZGF0ZSh1aSx0aGlzLmJsb2NrU2l6ZS0odGhpcy5LLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLk5bY109YiYyNTUsYi89MjU2O3ZpKHRoaXMpO2Zvcih2YXIgZD0wLGU9MDtlPHRoaXMuZmE7ZSsrKWZvcih2YXIgZj0yNDtmPj0wO2YtPTgpYVtkKytdPXRoaXMuSFtlXT4+ZiYyNTU7cmV0dXJuIGF9Owp2YXIgcmk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHFpO2Z1bmN0aW9uIHdpKCl7cGkuY2FsbCh0aGlzLDgseGkpfVNhKHdpLHBpKTt2YXIgeGk9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTt2YXIgeWk9L15bMC05QS1GYS1mXXs2NH0kLztmdW5jdGlvbiB6aShhKXt0cnl7cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpfWNhdGNoKGIpe3JldHVybiBaYihhKX19ZnVuY3Rpb24gQWkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAiKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dmFyIGM7aWYoKGM9Yi5jcnlwdG8pPT1udWxsPzA6Yy5zdWJ0bGUpe2lmKHlpLnRlc3QoYSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt0cnl7dmFyIGQ9emkoYSk7cmV0dXJuIGIuY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIEJpKGUsYil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiJlMiJ9KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMiIpfX1lbHNlIHJldHVybiBQcm9taXNlLnJlc29sdmUoImUxIil9CmZ1bmN0aW9uIENpKGEpe3RyeXt2YXIgYj1uZXcgd2k7Yi51cGRhdGUoemkoYSkpO3JldHVybiBiLmRpZ2VzdCgpfWNhdGNoKGMpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIERpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwInx8eWkudGVzdChhKSlyZXR1cm4gYTt2YXIgYz1DaShhKTtpZihjPT09ImUyIilyZXR1cm4iZTIiO3RyeXtyZXR1cm4gQmkoYyxiKX1jYXRjaChkKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBCaShhLGIpe3ZhciBjPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkKX0pLmpvaW4oIiIpO3JldHVybiBiLmJ0b2EoYykucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX07ZnVuY3Rpb24gRWkoKXtmb3IodmFyIGE9ITEsYj0hMSxjPTA7YT09PWI7KWlmKGE9RGIoMCwxKT09PTAsYj1EYigwLDEpPT09MCxjKyssYz4zMClyZXR1cm47cmV0dXJuIGF9dmFyIEdpPXtzazpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEZpLnNrKGEsYixjKX19LEhpPWZ1bmN0aW9uKCl7dGhpcy5zdHVkaWVzPXt9O3RoaXMuSD1FaX07CkhpLnByb3RvdHlwZS5zaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zdHVkaWVzW2JdO2lmKCEoKGM9PT12b2lkIDA/RGIoMCw5OTk5KTpjJTFFNCk8ZC5wcm9iYWJpbGl0eSooZC5jb250cm9sSWQyPzQ6MikqMUU0KSlyZXR1cm4gYTthOnt2YXIgZT1kLnN0dWR5SWQsZj1kLmV4cGVyaW1lbnRJZCxnPWQuY29udHJvbElkLGg9ZC5jb250cm9sSWQyO2lmKCEoKGEuZXhwfHx7fSlbZl18fChhLmV4cHx8e30pW2ddfHxoJiYoYS5leHB8fHt9KVtoXSkpe3ZhciBsPWMhPT12b2lkIDA/YyUyPT09MDp0aGlzLkgoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sPzA6MTtpZihoKXt2YXIgcD1jIT09dm9pZCAwPyhjPj4xKSUyPT09MDp0aGlzLkgoKTtpZihwPT09dm9pZCAwKWJyZWFrIGE7bnw9KHA/MDoxKTw8MX1uPT09MD9JaShhLGYsZSk6bj09PTE/SWkoYSxnLGUpOm49PT0yJiZJaShhLGgsZSl9fX1yZXR1cm4gYX07CnZhciBLaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0/SmkoYyxiKXx8ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uZXhwZXJpbWVudElkXTohMX0sTGk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWRdOiExfSxNaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQyJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWQyXTohMX0sTmk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5leHB8fHt9LGQ9bShPYmplY3Qua2V5cyhjKS5tYXAoTnVtYmVyKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoY1tmXT09PWIpcmV0dXJuIGZ9fSxKaT1mdW5jdGlvbihhLApiKXtyZXR1cm4hIWEuc3R1ZGllc1tiXS5hY3RpdmV8fGEuc3R1ZGllc1tiXS5wcm9iYWJpbGl0eT4uNX0sSWk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZXhwfHx7fTtkW2JdPWM7YS5leHA9ZH0sRmk9bmV3IEhpO3ZhciBpaj1mdW5jdGlvbigpe3RoaXMuSD1BLmdvb2dsZV90YWdfbWFuYWdlcj1BLmdvb2dsZV90YWdfbWFuYWdlcnx8e319LGpqO2Z1bmN0aW9uIGtqKGEsYil7bGooKTt2YXIgYz1qajtyZXR1cm4gYy5IW2FdPWMuSFthXXx8YigpfWZ1bmN0aW9uIG1qKGEpe2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gbmooYSxiKXtsaigpO2pqLkhbYV09Yn1mdW5jdGlvbiBvaihhKXt2YXIgYj1FKDUpO2xqKCk7dmFyIGM9amo7Yy5IW2JdPWMuSFtiXXx8YX1mdW5jdGlvbiBwaigpe3ZhciBhPUUoMTkpO2xqKCk7dmFyIGI9amo7cmV0dXJuIGIuSFthXT1iLkhbYV18fHt9fWZ1bmN0aW9uIHFqKCl7dmFyIGE9RSgxOSk7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiByaigpe2xqKCk7dmFyIGE9amosYj1hLkguc2VxdWVuY2V8fDE7YS5ILnNlcXVlbmNlPWIrMTtyZXR1cm4gYn1mdW5jdGlvbiBsaigpe2pqfHwoamo9bmV3IGlqKX07dmFyIHNqPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSA0OTE6cmV0dXJuIDEyO2Nhc2UgNDgwOnJldHVybiAxMTtjYXNlIDQ5OTpyZXR1cm4gMTA7Y2FzZSA1MDA6cmV0dXJuIDY7Y2FzZSA0MjE6cmV0dXJuIDk7Y2FzZSA1NjE6cmV0dXJuIDE3O2Nhc2UgNDgyOnJldHVybiAxNTtjYXNlIDU3MDpyZXR1cm4gMTk7Y2FzZSA0OTU6cmV0dXJuIDEzO2Nhc2UgNTE0OnJldHVybiAxNjtjYXNlIDU3MzpyZXR1cm4gMTg7Y2FzZSAyMzU6cmV0dXJuIDg7Y2FzZSA1MzpyZXR1cm4gMTtjYXNlIDU0OnJldHVybiAyO2Nhc2UgNTI6cmV0dXJuIDQ7Y2FzZSA3NTpyZXR1cm4gM319LHRqPWZ1bmN0aW9uKGEsYil7YS5OW2JdPSEwO3ZhciBjPXNqKGIpO2MhPT12b2lkIDAmJihXZltjXT0hMCl9LE09ZnVuY3Rpb24oYSl7cmV0dXJuISF1ai5OW2FdfSx1aj1uZXcgZnVuY3Rpb24oKXt0aGlzLk49W107dGhpcy5LPVtdO3RoaXMuSD1bXTsKdGoodGhpcywxMzIpO3ZhciBhPU5mKDYsNkU0KTtYZlsxXT1hO3ZhciBiPU5mKDcsMSk7WGZbM109Yjt2YXIgYz1OZigzNSw1MCk7WGZbMl09Yzt2YXIgZD1OZig2OSwxNzc2NDQ4OTIwKTtYZls0XT1kOwp0aih0aGlzLDQzNSk7dGoodGhpcywxNDEpOwp9O3ZhciB2aj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgU2V0O3RoaXMuSz1uZXcgU2V0fSx4aj1mdW5jdGlvbihhKXt2YXIgYj13ai5IO2E9YT09PXZvaWQgMD9bXTphO3ZhciBjPVtdLmNvbmNhdCh3KGIuSCkpLmNvbmNhdChbXS5jb25jYXQodyhiLkspKSkuY29uY2F0KGEpO2Muc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gY30seWo9ZnVuY3Rpb24oKXt2YXIgYT1bXS5jb25jYXQodyh3ai5ILkgpKTthLnNvcnQoZnVuY3Rpb24oYixjKXtyZXR1cm4gYi1jfSk7cmV0dXJuIGF9LHpqPWZ1bmN0aW9uKCl7dmFyIGE9d2ouSCxiPUUoNDQpO2EuSD1uZXcgU2V0O2lmKGIhPT0iIilmb3IodmFyIGM9bShiLnNwbGl0KCJ+IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1OdW1iZXIoZC52YWx1ZSk7aXNOYU4oZSl8fGEuSC5hZGQoZSl9fTt2YXIgQWo9e30sQmo9e19fY2w6MSxfX2VjbDoxLF9fZWhsOjEsX19ldmw6MSxfX2ZhbDoxLF9fZmlsOjEsX19mc2w6MSxfX2hsOjEsX19qZWw6MSxfX2xjbDoxLF9fc2RsOjEsX190bDoxLF9feXRsOjF9LENqPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se19fcGF1c2VkOjEsX190ZzoxfSxCaiksRGosRWo9ITE7RGo9RWo7dmFyIEZqPSIiO0FqLnFqPUZqO3ZhciB3aj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9bmV3IHZqfTt2YXIgR2o9LzpbMC05XSskLyxIaj0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC87ZnVuY3Rpb24gSWooYSxiLGMsZCl7dmFyIGU9SmooYSwhIWQsYiksZixnO3JldHVybiBjPyhnPWVbYl0pIT1udWxsP2c6W106KGY9ZVtiXSk9PW51bGw/dm9pZCAwOmZbMF19ZnVuY3Rpb24gSmooYSxiLGMpe2Zvcih2YXIgZD17fSxlPW0oYS5zcGxpdCgiJiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlLnNwbGl0KCI9IikpLGg9Zy5uZXh0KCkudmFsdWUsbD15YShnKSxuPWRlY29kZVVSSUNvbXBvbmVudChoLnJlcGxhY2UoL1wrL2csIiAiKSk7aWYoYz09PXZvaWQgMHx8bj09PWMpe3ZhciBwPWwuam9pbigiPSIpO2Rbbl18fChkW25dPVtdKTtkW25dLnB1c2goYj9wOmRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csIiAiKSkpfX1yZXR1cm4gZH0KZnVuY3Rpb24gS2ooYSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBMaihhLGIsYyxkLGUpe2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtpZihiPT09InByb3RvY29sInx8Yj09PSJwb3J0IilhLnByb3RvY29sPU1qKGEucHJvdG9jb2wpfHxNaihBLmxvY2F0aW9uLnByb3RvY29sKTtiPT09InBvcnQiP2EucG9ydD1TdHJpbmcoTnVtYmVyKGEuaG9zdG5hbWU/YS5wb3J0OkEubG9jYXRpb24ucG9ydCl8fChhLnByb3RvY29sPT09Imh0dHAiPzgwOmEucHJvdG9jb2w9PT0iaHR0cHMiPzQ0MzoiIikpOmI9PT0iaG9zdCImJihhLmhvc3RuYW1lPShhLmhvc3RuYW1lfHxBLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gTmooYSxiLGMsZCxlKX0KZnVuY3Rpb24gTmooYSxiLGMsZCxlKXt2YXIgZixnPU1qKGEucHJvdG9jb2wpO2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtzd2l0Y2goYil7Y2FzZSAidXJsX25vX2ZyYWdtZW50IjpmPU9qKGEpO2JyZWFrO2Nhc2UgInByb3RvY29sIjpmPWc7YnJlYWs7Y2FzZSAiaG9zdCI6Zj1hLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCk7aWYoYyl7dmFyIGg9L153d3dcZCpcLi8uZXhlYyhmKTtoJiZoWzBdJiYoZj1mLnN1YnN0cmluZyhoWzBdLmxlbmd0aCkpfWJyZWFrO2Nhc2UgInBvcnQiOmY9U3RyaW5nKE51bWJlcihhLnBvcnQpfHwoZz09PSJodHRwIj84MDpnPT09Imh0dHBzIj80NDM6IiIpKTticmVhaztjYXNlICJwYXRoIjphLnBhdGhuYW1lfHxhLmhvc3RuYW1lfHxzYigiVEFHR0lORyIsMSk7Zj1hLnBhdGhuYW1lLnN1YnN0cmluZygwLDEpPT09Ii8iP2EucGF0aG5hbWU6Ii8iK2EucGF0aG5hbWU7dmFyIGw9Zi5zcGxpdCgiLyIpOyhkfHxbXSkuaW5kZXhPZihsW2wubGVuZ3RoLQoxXSk+PTAmJihsW2wubGVuZ3RoLTFdPSIiKTtmPWwuam9pbigiLyIpO2JyZWFrO2Nhc2UgInF1ZXJ5IjpmPWEuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKTtlJiYoZj1JaihmLGUsITEpKTticmVhaztjYXNlICJleHRlbnNpb24iOnZhciBuPWEucGF0aG5hbWUuc3BsaXQoIi4iKTtmPW4ubGVuZ3RoPjE/bltuLmxlbmd0aC0xXToiIjtmPWYuc3BsaXQoIi8iKVswXTticmVhaztjYXNlICJmcmFnbWVudCI6Zj1hLmhhc2gucmVwbGFjZSgiIyIsIiIpO2JyZWFrO2RlZmF1bHQ6Zj1hJiZhLmhyZWZ9cmV0dXJuIGZ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKCI6IiwiIikudG9Mb3dlckNhc2UoKToiIn1mdW5jdGlvbiBPaihhKXt2YXIgYj0iIjtpZihhJiZhLmhyZWYpe3ZhciBjPWEuaHJlZi5pbmRleE9mKCIjIik7Yj1jPDA/YS5ocmVmOmEuaHJlZi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4gYn12YXIgUGo9e30sUWo9MDsKZnVuY3Rpb24gUmooYSl7dmFyIGI9UGpbYV07aWYoIWIpe3ZhciBjPUIuY3JlYXRlRWxlbWVudCgiYSIpO2EmJihjLmhyZWY9YSk7dmFyIGQ9Yy5wYXRobmFtZTtkWzBdIT09Ii8iJiYoYXx8c2IoIlRBR0dJTkciLDEpLGQ9Ii8iK2QpO3ZhciBlPWMuaG9zdG5hbWUucmVwbGFjZShHaiwiIik7Yj17aHJlZjpjLmhyZWYscHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxob3N0bmFtZTplLHBhdGhuYW1lOmQsc2VhcmNoOmMuc2VhcmNoLGhhc2g6Yy5oYXNoLHBvcnQ6Yy5wb3J0fTtRajw1JiYoUGpbYV09YixRaisrKX1yZXR1cm4gYn1mdW5jdGlvbiBTaihhLGIsYyl7dmFyIGQ9UmooYSk7cmV0dXJuIGFjKGIsZCxjKX0KZnVuY3Rpb24gVGooYSl7dmFyIGI9UmooQS5sb2NhdGlvbi5ocmVmKSxjPUxqKGIsImhvc3QiLCExKTtpZihjJiZjLm1hdGNoKEhqKSl7dmFyIGQ9TGooYiwicGF0aCIpO2lmKGQpe3ZhciBlPWQuc3BsaXQoYSsiPSIpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIGVbMV0uc3BsaXQoIjsiKVswXS5zcGxpdCgiPyIpWzBdfX19O3ZhciBVaj17Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iOiIvZyIsImh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIjoiL2FzIiwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI6Ii9ncyJ9LFZqPVsiL2FzL2QvY2NtL2NvbnZlcnNpb24iLCIvZy9kL2NjbS9jb252ZXJzaW9uIiwiL2dzL2NjbS9jb252ZXJzaW9uIiwiL2QvY2NtL2Zvcm0tZGF0YSJdO2Z1bmN0aW9uIFdqKCl7cmV0dXJuIElmKDQ3KT9KZig1NCkhPT0xOiExfWZ1bmN0aW9uIFhqKCl7dmFyIGE9RSgxOCksYj1hLmxlbmd0aDtyZXR1cm4gYVtiLTFdPT09Ii8iP2Euc3Vic3RyaW5nKDAsYi0xKTphfQpmdW5jdGlvbiBZaihhLGIpe2lmKGEpe3ZhciBjPSIiK2E7Yy5pbmRleE9mKCJodHRwOi8vIikhPT0wJiZjLmluZGV4T2YoImh0dHBzOi8vIikhPT0wJiYoYz0iaHR0cHM6Ly8iK2MpO2NbYy5sZW5ndGgtMV09PT0iLyImJihjPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSkpO3JldHVybiBSaigiIitjK2IpLmhyZWZ9fWZ1bmN0aW9uIFpqKGEpe2lmKGFrKCkpcmV0dXJuIFlqKGEsIi9hbmFseXRpY3MuanMiKX1mdW5jdGlvbiBiayhhKXtyZXR1cm4gYT09PTJ8fGE9PT0zfWZ1bmN0aW9uIGNrKGEpe3JldHVybiBNKDU4OCkmJmE9PT0zfWZ1bmN0aW9uIGFrKCl7cmV0dXJuIFdqKCl8fElmKDUwKX1mdW5jdGlvbiBkaygpe3JldHVybiEhQWoucWomJkFqLnFqLnNwbGl0KCJAQCIpLmpvaW4oIiIpIT09IlNHVE1fVE9LRU4ifQpmdW5jdGlvbiBlayhhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1PKGEsYy52YWx1ZSk7aWYoZClyZXR1cm4gZH19ZnVuY3Rpb24gZmsoYSxiLGMpe2M9Yz09PXZvaWQgMD8iIjpjO2lmKCFXaigpKXJldHVybiBhO3ZhciBkPWI/VWpbYV18fCIiOiIiO2Q9PT0iL2dzIiYmKGM9IiIpO3JldHVybiIiK1hqKCkrZCtjfWZ1bmN0aW9uIGdrKGEpe2lmKFdqKCkpZm9yKHZhciBiPW0oVmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKFNiKGEsIiIrWGooKStkKSlyZXR1cm4iOjoifX0KZnVuY3Rpb24gaGsoKXt2YXIgYT1BO2lmKCFhKXJldHVybiExO3RyeXtpZihhPT09YS50b3ApcmV0dXJuITE7dmFyIGI9YS5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYi5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlci8iKSE9PS0xJiZUYihiLCIvc3dfaWZyYW1lLmh0bWwiKX1jYXRjaChjKXtyZXR1cm4hMX19O3ZhciBpaz0vZ3RhZ1suXC9danMvLGprPS9ndG1bLlwvXWpzLyxsaz1mdW5jdGlvbihhKXt2YXIgYj1raztpZigoYS5zY3JpcHRDb250YWluZXJJZHx8IiIpLmluZGV4T2YoIkdUTS0iKT49MCl7dmFyIGM7YTp7dmFyIGQsZT0oZD1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkLnNyYztpZihlKXtmb3IodmFyIGY9SWYoNDcpLGc9UmooZSksaD1mP2cucGF0aG5hbWU6IiIrZy5ob3N0bmFtZStnLnBhdGhuYW1lLGw9Qi5zY3JpcHRzLG49IiIscD0wO3A8bC5sZW5ndGg7KytwKXt2YXIgcT1sW3BdO2lmKCEocS5pbm5lckhUTUwubGVuZ3RoPT09MHx8IWYmJnEuaW5uZXJIVE1MLmluZGV4T2YoYS5zY3JpcHRDb250YWluZXJJZHx8IlNIT1VMRF9OT1RfQkVfU0VUIik8MHx8cS5pbm5lckhUTUwuaW5kZXhPZihoKTwwKSl7aWYocS5pbm5lckhUTUwuaW5kZXhPZigiKGZ1bmN0aW9uKHcsZCxzLGwsaSkiKT49MCl7Yz1TdHJpbmcocCk7YnJlYWsgYX1uPVN0cmluZyhwKX19aWYobil7Yz0KbjticmVhayBhfX1jPXZvaWQgMH12YXIgcj1jO2lmKHIpcmV0dXJuIGIuSD0hMCxyfXZhciB0PVtdLnNsaWNlLmNhbGwoQi5zY3JpcHRzKTtyZXR1cm4gYS5zY3JpcHRFbGVtZW50P1N0cmluZyh0LmluZGV4T2YoYS5zY3JpcHRFbGVtZW50KSk6Ii0xIn0sbWs9ZnVuY3Rpb24oYSl7aWYoa2suSClyZXR1cm4iMSI7dmFyIGIsYz0oYj1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpiLnNyYztpZihjKXtpZihpay50ZXN0KGMpKXJldHVybiIzIjtpZihqay50ZXN0KGMpKXJldHVybiIyIn1yZXR1cm4iMCJ9LGtrPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07ZnVuY3Rpb24gUChhKXtzYigiR1RNIixhKX07ZnVuY3Rpb24gbmsoYSl7dmFyIGI9b2soKS5kZXN0aW5hdGlvbkFycmF5W2FdLGM9b2soKS5kZXN0aW5hdGlvblthXTtyZXR1cm4gYiYmYi5sZW5ndGg+MD9iWzBdOmN9ZnVuY3Rpb24gcGsoYSxiKXt2YXIgYz1vaygpO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Q2IoYy5wZW5kaW5nLGZ1bmN0aW9uKGQpe3JldHVybiBkLnRhcmdldC5jdGlkPT09YS5jdGlkJiZkLnRhcmdldC5pc0Rlc3RpbmF0aW9uPT09YS5pc0Rlc3RpbmF0aW9ufSl8fGMucGVuZGluZy5wdXNoKHt0YXJnZXQ6YSxvbkxvYWQ6Yn0pfWZ1bmN0aW9uIHFrKCl7dmFyIGE9QS5nb29nbGVfdGFnc19maXJzdF9wYXJ0eTtBcnJheS5pc0FycmF5KGEpfHwoYT1bXSk7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBPYmplY3QuZnJlZXplKGIpfQp2YXIgcms9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLmRlc3RpbmF0aW9uPXt9O3RoaXMuZGVzdGluYXRpb25BcnJheT17fTt0aGlzLmNhbm9uaWNhbD17fTt0aGlzLnBlbmRpbmc9W107dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXt9O3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpfTsKZnVuY3Rpb24gb2soKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLnRpZHI7YiYmdHlwZW9mIGI9PT0ib2JqZWN0Inx8KGI9bmV3IHJrLGEudGlkcj1iKTt2YXIgYz1iO2MuY29udGFpbmVyfHwoYy5jb250YWluZXI9e30pO2MuZGVzdGluYXRpb258fChjLmRlc3RpbmF0aW9uPXt9KTtjLmRlc3RpbmF0aW9uQXJyYXl8fChjLmRlc3RpbmF0aW9uQXJyYXk9e30pO2MuY2Fub25pY2FsfHwoYy5jYW5vbmljYWw9e30pO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Yy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzfHwoYy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCkpO3JldHVybiBjfTtmdW5jdGlvbiBzaygpe3JldHVybiBJZig3KSYmdGsoKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09RSg1KX0pfWZ1bmN0aW9uIHVrKCl7dmFyIGE7cmV0dXJuKGE9S2YoNTUpKSE9bnVsbD9hOltdfWZ1bmN0aW9uIHZrKCl7cmV0dXJuIEUoNil8fCJfIitFKDUpfWZ1bmN0aW9uIHdrKCl7dmFyIGE9RSgxMCk7cmV0dXJuIGE/YS5zcGxpdCgifCIpOltFKDUpXX1mdW5jdGlvbiB0aygpe3ZhciBhPUtmKDU5KTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIn0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5pbmRleE9mKCJHVE0tIikhPT0wfSk6W119ZnVuY3Rpb24geGsoKXt2YXIgYT15ayh6aygpKSxiPWEmJmEucGFyZW50O2lmKGIpcmV0dXJuIHlrKGIpfQpmdW5jdGlvbiBBaygpe3ZhciBhPXlrKHprKCkpO2lmKGEpe2Zvcig7YS5wYXJlbnQ7KXt2YXIgYj15ayhhLnBhcmVudCk7aWYoIWIpYnJlYWs7YT1ifXJldHVybiBhfX1mdW5jdGlvbiB5ayhhKXt2YXIgYj1vaygpO3JldHVybiBhLmlzRGVzdGluYXRpb24/bmsoYS5jdGlkKTpiLmNvbnRhaW5lclthLmN0aWRdfWZ1bmN0aW9uIEJrKCl7dmFyIGE9b2soKTtpZihhLnBlbmRpbmcpe2Zvcih2YXIgYixjPVtdLGQ9ITEsZT13aygpLGY9dGsoKSxnPXt9LGg9MDtoPGEucGVuZGluZy5sZW5ndGg7Zz17Umc6dm9pZCAwfSxoKyspZy5SZz1hLnBlbmRpbmdbaF0sQ2IoZy5SZy50YXJnZXQuaXNEZXN0aW5hdGlvbj9mOmUsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuPT09bC5SZy50YXJnZXQuY3RpZH19KGcpKT9kfHwoYj1nLlJnLm9uTG9hZCxkPSEwKTpjLnB1c2goZy5SZyk7YS5wZW5kaW5nPWM7aWYoYil0cnl7Yih2aygpKX1jYXRjaChsKXt9fX0KZnVuY3Rpb24gQ2soKXtmb3IodmFyIGE9RSg1KSxiPXdrKCksYz10aygpLGQ9dWsoKSxlPWZ1bmN0aW9uKHEscil7dmFyIHQ9e2Nhbm9uaWNhbENvbnRhaW5lcklkOkUoNiksc2NyaXB0Q29udGFpbmVySWQ6YSxzdGF0ZToyLGNvbnRhaW5lcnM6Yi5zbGljZSgpLGRlc3RpbmF0aW9uczpjLnNsaWNlKCl9O0pjJiYodC5zY3JpcHRFbGVtZW50PUpjKTtLYyYmKHQuc2NyaXB0U291cmNlPUtjKTt4aygpPT09dm9pZCAwJiYodC5odG1sTG9hZE9yZGVyPWxrKHQpLHQubG9hZFNjcmlwdFR5cGU9bWsodCkpO3ZhciB1LHY7c3dpdGNoKHIpe2Nhc2UgMDp1PWZ1bmN0aW9uKHope2YuY29udGFpbmVyW3FdPXp9O3Y9Zi5jb250YWluZXJbcV07YnJlYWs7Y2FzZSAxOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnVuc2hpZnQoeil9O3ZhciB4LHk9KCh4PWYuZGVzdGluYXRpb25BcnJheVtxXSk9PQpudWxsP3ZvaWQgMDp4WzBdKXx8Zi5kZXN0aW5hdGlvbltxXTsheXx8eS5zdGF0ZSE9PTAmJnkuc3RhdGUhPT0xfHwodj15KTticmVhaztjYXNlIDI6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0ucHVzaCh6KX0sdj12b2lkIDB9dSYmKHY/KHYuc3RhdGU9PT0wJiZQKDkzKSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHYsdCkpOnUodCkpfSxmPW9rKCksZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWUoaC52YWx1ZSwwKTtmb3IodmFyIGw9bShjKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtkLmluY2x1ZGVzKHApP2UocCwxKTplKHAsMil9Zi5jYW5vbmljYWxbdmsoKV09e307QmsoKX1mdW5jdGlvbiBEaygpe3ZhciBhPXZrKCk7cmV0dXJuISFvaygpLmNhbm9uaWNhbFthXX0KZnVuY3Rpb24gRWsoYSl7cmV0dXJuISFvaygpLmNvbnRhaW5lclthXX1mdW5jdGlvbiBGaygpe3ZhciBhPXprKCksYj15ayhhKTtyZXR1cm4gYiYmYi5jb250ZXh0fWZ1bmN0aW9uIEdrKGEpe3ZhciBiPW5rKGEpO3JldHVybiBiP2Iuc3RhdGUhPT0wOiExfWZ1bmN0aW9uIHprKCl7cmV0dXJue2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOklmKDcpfX1mdW5jdGlvbiBIayhhLGIsYyl7dmFyIGQ9emsoKSxlPW9rKCkuY29udGFpbmVyW2FdO2UmJmUuc3RhdGUhPT0zfHwob2soKS5jb250YWluZXJbYV09e3N0YXRlOjEsY29udGV4dDpiLHBhcmVudDpkfSxwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITF9LGMpKX1mdW5jdGlvbiBJayhhLGIsYyl7dmFyIGQ9b2soKSxlPW5rKGEpO2U/ZS5zdGF0ZT0xOihlPXtjb250ZXh0OmIsc3RhdGU6MSxwYXJlbnQ6emsoKX0sZC5kZXN0aW5hdGlvbkFycmF5W2FdPVtlXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxjKX0KZnVuY3Rpb24gSmsoYSxiLGMsZCl7dmFyIGU9b2soKSxmPW5rKGEpO2Y/Zi5zdGF0ZT0wOihmPXtzdGF0ZTowLHRyYW5zcG9ydFVybDpiLGNvbnRleHQ6YyxwYXJlbnQ6emsoKX0sZS5kZXN0aW5hdGlvbkFycmF5W2FdPVtmXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxkKTtQKDkxKX1mdW5jdGlvbiBLaygpe3ZhciBhPW9rKCkuY29udGFpbmVyLGI7Zm9yKGIgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGIpJiZhW2JdLnN0YXRlPT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMaygpe3ZhciBhPXt9O0diKG9rKCkuZGVzdGluYXRpb24sZnVuY3Rpb24oYixjKXsoYz09bnVsbD92b2lkIDA6Yy5zdGF0ZSk9PT0wJiYoYVtiXT1jKX0pO0diKG9rKCkuZGVzdGluYXRpb25BcnJheSxmdW5jdGlvbihiLGMpe3ZhciBkPWNbMF07KGQ9PW51bGw/dm9pZCAwOmQuc3RhdGUpPT09MCYmKGFbYl09ZCl9KTtyZXR1cm4gYX0KZnVuY3Rpb24gTWsoYSl7cmV0dXJuISEoYSYmYS5wYXJlbnQmJmEuY29udGV4dCYmYS5jb250ZXh0LnNvdXJjZT09PTEmJmEucGFyZW50LmN0aWQuaW5kZXhPZigiR1RNLSIpIT09MCl9ZnVuY3Rpb24gTmsoKXtmb3IodmFyIGE9b2soKSxiPW0od2soKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYS5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzW2MudmFsdWVdKXJldHVybiEwO3JldHVybiExfTt2YXIgT2s9ZnVuY3Rpb24oKXt9O09rLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQifTt2YXIgUGs9bmV3IE9rO3ZhciBYaz1mdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1ZYSgpfTtYay5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5zdG9yYWdlLnNldChTdHJpbmcoYSksYil9O1hrLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07dmFyIFlrO2Z1bmN0aW9uIFprKGEsYil7WWt8fChZaz1uZXcgWGspO1lrLnNldChhLGIpfWZ1bmN0aW9uICRrKGEpe1lrfHwoWWs9bmV3IFhrKTtyZXR1cm4gWWsuZ2V0KGEpfWZ1bmN0aW9uIGFsKGEsYil7WWt8fChZaz1uZXcgWGspO3ZhciBjPVlrO2Muc3RvcmFnZS5oYXMoU3RyaW5nKGEpKXx8Yy5zdG9yYWdlLnNldChTdHJpbmcoYSksYigpKTtyZXR1cm4gYy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTtmdW5jdGlvbiBibChhLGIpe2Z1bmN0aW9uIGMoZyl7dmFyIGg9UmooZyksbD1MaihoLCJwcm90b2NvbCIpLG49TGooaCwiaG9zdCIsITApLHA9TGooaCwicG9ydCIpLHE9TGooaCwicGF0aCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXC8kLywiIik7aWYobD09PXZvaWQgMHx8bD09PSJodHRwIiYmcD09PSI4MCJ8fGw9PT0iaHR0cHMiJiZwPT09IjQ0MyIpbD0id2ViIixwPSJkZWZhdWx0IjtyZXR1cm5bbCxuLHAscV19Zm9yKHZhciBkPWMoU3RyaW5nKGEpKSxlPWMoU3RyaW5nKGIpKSxmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXSE9PWVbZl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gY2woYSl7cmV0dXJuIGRsKGEpPzE6MH0KZnVuY3Rpb24gZGwoYSl7dmFyIGI9YS5hcmcwLGM9YS5hcmcxO2lmKGEuYW55X29mJiZBcnJheS5pc0FycmF5KGMpKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9RWQoYSx7fSk7RWQoe2FyZzE6Y1tkXSxhbnlfb2Y6dm9pZCAwfSxlKTtpZihjbChlKSlyZXR1cm4hMH1yZXR1cm4hMX1zd2l0Y2goYVsiZnVuY3Rpb24iXSl7Y2FzZSAiX2NuIjpyZXR1cm4gS2coYixjKTtjYXNlICJfY3NzIjpyZXR1cm4gR2coYixjKTtjYXNlICJfZXciOnJldHVybiBIZyhiLGMpO2Nhc2UgIl9lcSI6cmV0dXJuIExnKGIsYyk7Y2FzZSAiX2dlIjpyZXR1cm4gTWcoYixjKTtjYXNlICJfZ3QiOnJldHVybiBPZyhiLGMpO2Nhc2UgIl9sYyI6cmV0dXJuIElnKGIsYyk7Y2FzZSAiX2xlIjpyZXR1cm4gTmcoYixjKTtjYXNlICJfbHQiOnJldHVybiBQZyhiLGMpO2Nhc2UgIl9yZSI6cmV0dXJuIEpnKGIsYyxhLmlnbm9yZV9jYXNlLGFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pKTtjYXNlICJfc3ciOnJldHVybiBRZyhiLApjKTtjYXNlICJfdW0iOnJldHVybiBibChiLGMpfXJldHVybiExfTtmdW5jdGlvbiBlbChhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBmO3N3aXRjaChhWzBdKXtjYXNlICJmdW5jdGlvbl9pZCI6cmV0dXJuIGFbMV07Y2FzZSAibGlzdCI6Zj1bXTtmb3IodmFyIGc9MTtnPGEubGVuZ3RoO2crKylmLnB1c2goZWwoYVtnXSxiLGMsZCxlKSk7cmV0dXJuIGY7Y2FzZSAibWFjcm8iOnZhciBoPWRbYVsxXV07cmV0dXJuIGg/aC5ldmFsdWF0ZShiLGUpOnZvaWQgMDtjYXNlICJtYXAiOmY9e307Zm9yKHZhciBsPTE7bDxhLmxlbmd0aDtsKz0yKWZbZWwoYVtsXSxiLGMsZCxlKV09ZWwoYVtsKzFdLGIsYyxkLGUpO3JldHVybiBmO2Nhc2UgInRlbXBsYXRlIjpmPVtdO2Zvcih2YXIgbj0hMSxwPTE7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWVsKGFbcF0sYixjLGQsZSk7Zi5wdXNoKHEpfXJldHVybiBmLmpvaW4oIiIpO2Nhc2UgImVzY2FwZSI6Zj1lbChhWzFdLGIsYyxkLGUpO2Y9U3RyaW5nKGYpO2Zvcih2YXIgeT0yO3k8YS5sZW5ndGg7eSsrKVVpW2FbeV1dJiYoZj1VaVthW3ldXShmKSk7cmV0dXJuIGY7Y2FzZSAidGFnIjp2YXIgej1hWzFdO2lmKCFjW3pdKXRocm93IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSB0YWcgcmVmZXJlbmNlICIrCnorIi4iKTtyZXR1cm57Ym86YVsyXSxpbmRleDp6fTtjYXNlICJ6YiI6dmFyIEM9e30sRD0oQ1tHZi5ZYl09YVsxXSxDLmFyZzA9ZWwoYVsyXSxiLGMsZCxlKSxDLmFyZzE9ZWwoYVszXSxiLGMsZCxlKSxDLmlnbm9yZV9jYXNlPWVsKGFbNV0sYixjLGQsZSksQyksST1jbChEKSxHPSEhYVs0XTtyZXR1cm4gR3x8SSE9PTI/RyE9PShJPT09MSk6bnVsbDtkZWZhdWx0OnRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4cGFuZCB1bmtub3duIFZhbHVlIHR5cGU6ICIrYVswXSsiLiIpO319cmV0dXJuIGF9O2Z1bmN0aW9uIGZsKGEpe3JldHVybiBhJiZhLmluZGV4T2YoInBlbmRpbmc6Iik9PT0wP2dsKGEuc3Vic3RyKDgpKTohMX1mdW5jdGlvbiBnbChhKXtpZihhPT1udWxsfHxhLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGI9TnVtYmVyKGEpLGM9TmIoKTtyZXR1cm4gYjxjKzNFNSYmYj5jLTlFNX07dmFyIGhsPSExLGlsPSExLGpsPSExLGtsPTAsbGw9ITEsbWw9dm9pZCAwLG5sPVtdO2Z1bmN0aW9uIG9sKGEpe2lmKGtsPT09MClsbCYmbmwmJihubC5sZW5ndGg+PTEwMCYmbmwuc2hpZnQoKSxubC5wdXNoKGEpKTtlbHNlIGlmKHBsKCkpe3ZhciBiPUUoNDEpLGM9TWMoYixbXSk7Yy5sZW5ndGg+PTUwJiZjLnNoaWZ0KCk7Yy5wdXNoKGEpfX1mdW5jdGlvbiBxbCgpe2lsfHwocmwoKSxzbChrbCkpfWZ1bmN0aW9uIHNsKGEpe2lmKCFpbHx8a2w9PT0yJiZhPT09MSlpZihpbD0hMCxqbCYmKGFkKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCksamw9ITEpLG1sIT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQobWwpLG1sPXZvaWQgMCksa2w9YSxhPT09MSl7dmFyIGI9bmw7bmw9dm9pZCAwO2I9PW51bGx8fGIuZm9yRWFjaChmdW5jdGlvbihjKXtvbChjKX0pfX0KZnVuY3Rpb24gcmwoKXt2YXIgYT1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcm9kLXByZXNlbnQiKTtnbChhKT9rbD0xOiFmbChhKXx8aGx8fGpsP2tsPTI6KGpsPSEwLCRjKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCwhMSksbWw9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWx8fChybCgpLHNsKGtsKSk7aGw9ITB9LDIwMCkpfWZ1bmN0aW9uIHBsKCl7aWYoIWxsKXJldHVybiExO3N3aXRjaChrbCl7Y2FzZSAxOmNhc2UgMDpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHRsKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pO3JldHVybiBhLmljcz1hLmljc3x8bmV3IHVsfXZhciB1bD1mdW5jdGlvbigpe3RoaXMuZW50cmllcz17fTt0aGlzLndhaXRQZXJpb2RUaW1lZE91dD10aGlzLndhc1NldExhdGU9dGhpcy5hY2Nlc3NlZEFueT10aGlzLmFjY2Vzc2VkRGVmYXVsdD10aGlzLnVzZWRJbXBsaWNpdD10aGlzLnVzZWRVcGRhdGU9dGhpcy51c2VkRGVmYXVsdD10aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSExO3RoaXMuSD1bXX07CnVsLnByb3RvdHlwZS5kZWZhdWx0PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fCF0aGlzLmFjY2Vzc2VkRGVmYXVsdCYmIXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZERlZmF1bHQ9dGhpcy5hY3RpdmU9ITA7c2IoIlRBR0dJTkciLDE5KTtiPT1udWxsP3NiKCJUQUdHSU5HIiwxOCk6dmwodGhpcyxhLGI9PT0iZ3JhbnRlZCIsYyxkLGUsZixnKX07dWwucHJvdG90eXBlLndhaXRGb3JVcGRhdGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXZsKHRoaXMsYVtkXSx2b2lkIDAsdm9pZCAwLCIiLCIiLGIsYyl9Owp2YXIgdmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1hLmVudHJpZXMsbj1sW2JdfHx7fSxwPW4ucmVnaW9uLHE9ZCYmemIoZCk/ZC50b1VwcGVyQ2FzZSgpOnZvaWQgMDtlPWUudG9VcHBlckNhc2UoKTtmPWYudG9VcHBlckNhc2UoKTtpZihlPT09IiJ8fHE9PT1mfHwocT09PWU/cCE9PWY6IXEmJiFwKSl7dmFyIHI9ISEoZyYmZz4wJiZuLnVwZGF0ZT09PXZvaWQgMCksdD17cmVnaW9uOnEsZGVjbGFyZV9yZWdpb246bi5kZWNsYXJlX3JlZ2lvbixpbXBsaWNpdDpuLmltcGxpY2l0LGRlZmF1bHQ6YyE9PXZvaWQgMD9jOm4uZGVmYXVsdCxkZWNsYXJlOm4uZGVjbGFyZSx1cGRhdGU6bi51cGRhdGUscXVpZXQ6cn07aWYoZSE9PSIifHxuLmRlZmF1bHQhPT0hMSlsW2JdPXQ7ciYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bFtiXT09PXQmJnQucXVpZXQmJihzYigiVEFHR0lORyIsMiksYS53YWl0UGVyaW9kVGltZWRPdXQ9ITAsYS5jbGVhclRpbWVvdXQoYix2b2lkIDAsaCksCmEubm90aWZ5TGlzdGVuZXJzKCkpfSxnKX19O2s9dWwucHJvdG90eXBlO2suY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bYV0sZT1jLmRlbGVnYXRlZENvbnNlbnRUeXBlcyxmO2ZvcihmIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShmKSYmZVtmXT09PWEmJmQucHVzaChmKTt2YXIgZz10aGlzLmVudHJpZXNbYV18fHt9LGg9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKTtpZihnLnF1aWV0KXtnLnF1aWV0PSExO2Zvcih2YXIgbD1tKGQpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXdsKHRoaXMsbi52YWx1ZSl9ZWxzZSBpZihiIT09dm9pZCAwJiZoIT09Yilmb3IodmFyIHA9bShkKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl3bCh0aGlzLHEudmFsdWUpfTsKay51cGRhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fHRoaXMudXNlZFVwZGF0ZXx8IXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZFVwZGF0ZT10aGlzLmFjdGl2ZT0hMDtpZihiIT1udWxsKXt2YXIgZD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpLGU9dGhpcy5lbnRyaWVzOyhlW2FdPWVbYV18fHt9KS51cGRhdGU9Yj09PSJncmFudGVkIjt0aGlzLmNsZWFyVGltZW91dChhLGQsYyl9fTsKay5kZWNsYXJlPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMDt2YXIgZj10aGlzLmVudHJpZXMsZz1mW2FdfHx7fSxoPWcuZGVjbGFyZV9yZWdpb24sbD1jJiZ6YihjKT9jLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2Q9ZC50b1VwcGVyQ2FzZSgpO2U9ZS50b1VwcGVyQ2FzZSgpO2lmKGQ9PT0iInx8bD09PWV8fChsPT09ZD9oIT09ZTohbCYmIWgpKXt2YXIgbj17cmVnaW9uOmcucmVnaW9uLGRlY2xhcmVfcmVnaW9uOmwsZGVjbGFyZTpiPT09ImdyYW50ZWQiLGltcGxpY2l0OmcuaW1wbGljaXQsZGVmYXVsdDpnLmRlZmF1bHQsdXBkYXRlOmcudXBkYXRlLHF1aWV0OmcucXVpZXR9O2lmKGQhPT0iInx8Zy5kZWNsYXJlIT09ITEpZlthXT1ufX07CmsuaW1wbGljaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnVzZWRJbXBsaWNpdD0hMDt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdPWNbYV18fHt9O2QuaW1wbGljaXQhPT0hMSYmKGQuaW1wbGljaXQ9Yj09PSJncmFudGVkIil9OwprLmdldENvbnNlbnRTdGF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV18fHt9LGU9ZC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBmPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYV07aWYoZj09PTMpcmV0dXJuIDE7aWYoZj09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPWQuZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiPT1udWxsPzA6Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBnPWIuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2FdLGg9Y1tnXXx8e307ZT1oLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGw9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1tnXTtpZihsPT09MylyZXR1cm4gMTtpZihsPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9CmguZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6Mn1lPWQuZGVjbGFyZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtlPWQuaW1wbGljaXQ7cmV0dXJuIGUhPT12b2lkIDA/ZT8zOjQ6MH07ay5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3RoaXMuSC5wdXNoKHtjb25zZW50VHlwZXM6YSxpZTpifSl9O3ZhciB3bD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5ILmxlbmd0aDsrK2Mpe3ZhciBkPWEuSFtjXTtBcnJheS5pc0FycmF5KGQuY29uc2VudFR5cGVzKSYmZC5jb25zZW50VHlwZXMuaW5kZXhPZihiKSE9PS0xJiYoZC54bz0hMCl9fTt1bC5wcm90b3R5cGUubm90aWZ5TGlzdGVuZXJzPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yzx0aGlzLkgubGVuZ3RoOysrYyl7dmFyIGQ9dGhpcy5IW2NdO2lmKGQueG8pe2QueG89ITE7dHJ5e2QuaWUoe2NvbnNlbnRFdmVudElkOmEsY29uc2VudFByaW9yaXR5SWQ6Yn0pfWNhdGNoKGUpe319fX07dmFyIHhsPSExLHlsPSExLHpsPXt9LEFsPXtkZWxlZ2F0ZWRDb25zZW50VHlwZXM6e30sY29yZVBsYXRmb3JtU2VydmljZXM6e30sdXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLHNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsY29udGFpbmVyU2NvcGVkRGVmYXVsdHM6KHpsLmFkX3N0b3JhZ2U9MSx6bC5hbmFseXRpY3Nfc3RvcmFnZT0xLHpsLmFkX3VzZXJfZGF0YT0xLHpsLmFkX3BlcnNvbmFsaXphdGlvbj0xLHpsKSx1c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM6ITF9O2Z1bmN0aW9uIEJsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4oemIoYSk/W2FdOmEpLmV2ZXJ5KGZ1bmN0aW9uKGMpe3N3aXRjaChiLmdldENvbnNlbnRTdGF0ZShjLEFsKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6Y2FzZSA0OnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSl9CmZ1bmN0aW9uIENsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4gYi5nZXRDb25zZW50U3RhdGUoYSxBbCl9ZnVuY3Rpb24gRGwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiEoYi5lbnRyaWVzW2FdfHx7fSkucXVpZXR9ZnVuY3Rpb24gRWwoKXtpZighWWYoNSkpcmV0dXJuITE7dmFyIGE9dGwoKTthLmFjY2Vzc2VkQW55PSEwO2lmKGEuYWN0aXZlKXJldHVybiEwO2lmKCFBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpcmV0dXJuITE7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tjLnZhbHVlXSE9PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRmwoYSxiKXt0bCgpLmFkZExpc3RlbmVyKGEsYil9CmZ1bmN0aW9uIEdsKGEsYil7dGwoKS5ub3RpZnlMaXN0ZW5lcnMoYSxiKX1mdW5jdGlvbiBIbChhLGIpe2lmKGIuZXZlcnkoRGwpKWEoe30pO2Vsc2V7dmFyIGM9ITE7RmwoYixmdW5jdGlvbihkKXshYyYmYi5ldmVyeShEbCkmJihjPSEwLGEoZCkpfSl9fQpmdW5jdGlvbiBJbChhLGIpe3ZhciBjPXpiKGIpP1tiXTpiLGQ9e30sZT1mdW5jdGlvbigpe3JldHVybiBjLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gQmwoaCkmJiFkW2hdfSl9LGY9ZSgpO2lmKGYubGVuZ3RoIT09Yy5sZW5ndGgpe3ZhciBnPWZ1bmN0aW9uKGgpe2Zvcih2YXIgbD1tKGgpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWRbbi52YWx1ZV09ITB9O2coZik7RmwoYyxmdW5jdGlvbihoKXtmdW5jdGlvbiBsKHEpe3EubGVuZ3RoIT09MCYmKGcocSksaC5jb25zZW50VHlwZXM9cSxhKGgpKX12YXIgbj1lKCk7aWYobi5sZW5ndGghPT0wKXt2YXIgcD1PYmplY3Qua2V5cyhkKS5sZW5ndGg7bi5sZW5ndGgrcD49Yy5sZW5ndGg/bChuKTpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGUoKSl9LDUwMCl9fSl9fTt2YXIgSmw9ITE7ZnVuY3Rpb24gS2woYSxiKXt2YXIgYz13aygpLGQ9dGsoKTtFKDI2KTt2YXIgZT1JZig0Nyk/MDpJZig1MCk/MTozLGY9WGooKTtpZihwbCgpKXt2YXIgZz1MbCgiSU5JVCIpO2cuY29udGFpbmVyTG9hZFNvdXJjZT1hIT1udWxsP2E6MDtiJiYoZy5wYXJlbnRUYXJnZXRSZWZlcmVuY2U9Yik7Zy5hbGlhc2VzPWM7Zy5kZXN0aW5hdGlvbnM9ZDtlIT09dm9pZCAwJiYoZy5ndGc9e3NvdXJjZTplLG1QYXRoOmYhPW51bGw/ZjoiIn0pO29sKGcpfX0KZnVuY3Rpb24gTWwoYSl7dmFyIGIsYyxkLGU7Yj1hLnRhcmdldElkO2M9YS5yZXF1ZXN0O2Q9YS5xYjtlPWEuaXNCYXRjaGVkO3ZhciBmO2lmKGY9cGwoKSl7dmFyIGc7YTpzd2l0Y2goYy5lbmRwb2ludCl7Y2FzZSA2ODpjYXNlIDY5OmNhc2UgMTk6Y2FzZSA2MjpjYXNlIDQ3Omc9ITA7YnJlYWsgYTtkZWZhdWx0Omc9ITF9Zj0hZ31pZihmKXt2YXIgaD1MbCgiR1RBR19ISVQiLHtldmVudElkOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQucHJpb3JpdHlJZH0pO2gudGFyZ2V0PWI7aC51cmw9Yy51cmw7Yy5wb3N0Qm9keSYmKGgucG9zdEJvZHk9Yy5wb3N0Qm9keSk7aC5wYXJhbWV0ZXJFbmNvZGluZz1jLnBhcmFtZXRlckVuY29kaW5nO2guZW5kcG9pbnQ9Yy5lbmRwb2ludDtlIT09dm9pZCAwJiYoaC5pc0JhdGNoZWQ9ZSk7b2woaCl9fWZ1bmN0aW9uIE5sKGEpe3BsKCkmJk1sKGEoKSl9CmZ1bmN0aW9uIExsKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Yi5ncm91cElkPU9sO3ZhciBjLGQ9YixlPVBsLGY9e3B1YmxpY0lkOlFsfTtkLmV2ZW50SWQhPW51bGwmJihmLmV2ZW50SWQ9ZC5ldmVudElkKTtkLnByaW9yaXR5SWQhPW51bGwmJihmLnByaW9yaXR5SWQ9ZC5wcmlvcml0eUlkKTtkLmV2ZW50TmFtZSYmKGYuZXZlbnROYW1lPWQuZXZlbnROYW1lKTtkLmdyb3VwSWQmJihmLmdyb3VwSWQ9ZC5ncm91cElkKTtkLnRhZ05hbWUmJihmLnRhZ05hbWU9ZC50YWdOYW1lKTtjPXtjb250YWluZXJQcm9kdWN0OiJHVE0iLGtleTpmLHZlcnNpb246ZSxtZXNzYWdlVHlwZTphfTtjLmNvbnRhaW5lclByb2R1Y3Q9Smw/Ik9HVCI6IkdUTSI7Yy5rZXkudGFyZ2V0UmVmPVJsO3JldHVybiBjfXZhciBRbD0iIixQbD0iIixSbD17Y3RpZDoiIixpc0Rlc3RpbmF0aW9uOiExfSxPbDsKZnVuY3Rpb24gU2woYSl7dmFyIGI9RSg1KSxjPUlmKDQ1KSxkPXNrKCksZT1FKDYpLGY9RSgxKTtFKDIzKTtrbD0wO2xsPSEwO3JsKCk7T2w9YTtRbD1iO1BsPWY7Smw9YztSbD17Y3RpZDpiLGlzRGVzdGluYXRpb246ZCxjYW5vbmljYWxJZDplfX07ZnVuY3Rpb24gVGwoYSxiLGMsZCl7aWYocGwoKSl7dmFyIGU9Yi5NO01sKHt0YXJnZXRJZDpkfHxbYi50YXJnZXQuZGVzdGluYXRpb25JZF0scmVxdWVzdDp7dXJsOmEscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDpjfSxxYjp7ZXZlbnRJZDplLmV2ZW50SWQscHJpb3JpdHlJZDplLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fTtmdW5jdGlvbiBVbChhLGIsYyl7dmFyIGQ9Imh0dHBzOi8vIithK2I7cmV0dXJuIGM/ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKT9YaigpK2MrYjpkfTpmdW5jdGlvbigpe3JldHVybiBkfX07dmFyIFZsPXt9LFdsPShWbFsyMl09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9hcy9kIiksVmxbNjBdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9ncyIpLFZsWzIzXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZy9kIiksVmwpO3ZhciBYbD17fSxZbD0oWGxbNV09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzY2XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3Vjb252ZXJzaW9uIiksWGxbNjNdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2NF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbNjVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzc0XT1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvYXMvcC9jIn0sWGwpO3ZhciBabD17fSwkbD0oWmxbNDVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29sbGVjdCIpLFpsWzQ2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbGxlY3QiLCIvZ3MiKSxabFs2OV09VWwoImFkLmRvdWJsZWNsaWNrLm5ldCIsIi9jY20vcy9jb2xsZWN0IiksWmxbNThdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsWzU3XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmwpO3ZhciBhbT17fSxibT0oYW1bOV09VWwoImdvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldCIsIi9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uIiksYW1bNjhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9ybWt0L2NvbGxlY3QiKSxhbSk7dmFyIGNtPXt9LGRtPShjbVsxMV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzIxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY21bNzJdPVVsKCJnb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzczXT1VbCgiZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbSk7dmFyIGVtPXt9LGZtPShlbVs1MV09VWwoInd3dy5nb29nbGUuY29tIiwiL3RyYXZlbC9mbGlnaHRzL2NsaWNrL2NvbnZlcnNpb24iKSxlbSk7dmFyIGdtPXt9LGhtPShnbVsxXT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eTsifSxnbVsyXT1mdW5jdGlvbigpe3JldHVybihXaigpP1hqKCk6Imh0dHBzOi8vYWRlLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIpKyIvZGRtL2FjdGl2aXR5IisoTSg0NjcpPyI7IjoiLyIpfSxnbVszXT1mdW5jdGlvbihhKXtyZXR1cm4iaHR0cHM6Ly8iK2EubHIrIi5mbHMuZG91YmxlY2xpY2submV0L2FjdGl2aXR5aTsifSxnbSk7ZnVuY3Rpb24gaW0oYSl7c2IoIkhFQUxUSCIsYSl9O3ZhciBqbT17YmE6e1B0OiJhd191c2VyX2RhdGFfY2FjaGUiLG9pOiJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiLGJoOiJkaWFnbm9zdGljc19wYWdlX2lkIixvcDoiZW1lbW8iLGR1OiJlbV9yZWdpc3RyeSIsU2k6ImVhYiIscnU6ImZsX3VzZXJfZGF0YV9jYWNoZSIsdHU6ImdhNF91c2VyX2RhdGFfY2FjaGUiLEx1OiJpZGNfcHZfY2xhaW0iLFNlOiJpcF9nZW9fZGF0YV9jYWNoZSIsWGk6ImlwX2dlb19mZXRjaF9pbl9wcm9ncmVzcyIsam46Im5iX2RhdGEiLFRxOiJwYWdlX2V4cGVyaW1lbnRfaWRzIixsbjoicGxkIixWZToicHRfZGF0YSIsbW46InB0X2xpc3RlbmVyX3NldCIsa2o6InJldHJ5X2NvbnRhaW5lcnMiLE9oOiJzZXJ2aWNlX3dvcmtlcl9lbmRwb2ludCIsWnE6InNoYXJlZF91c2VyX2lkIixhcjoic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIixzajoic2hhcmVkX3VzZXJfaWRfc291cmNlIixidjoiYXdoIixocjoidW5pdmVyc2FsX2NsYWltX3JlZ2lzdHJ5In19O3ZhciBrbT1mdW5jdGlvbihhKXtyZXR1cm4gdGYoZnVuY3Rpb24oYil7Zm9yKHZhciBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX0oam0uYmEpOwpmdW5jdGlvbiBsbShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO2lmKGttKGEpKXt2YXIgYyxkLGU9KGQ9KGM9TWMoImdvb2dsZV90YWdfZGF0YSIse30pKS54Y2QpIT1udWxsP2Q6Yy54Y2Q9e307aWYoZVthXSlyZXR1cm4gZVthXTtpZihiKXt2YXIgZj12b2lkIDAsZz0xLGg9e30sbD17c2V0OmZ1bmN0aW9uKG4pe2Y9bjtsLm5vdGlmeSgpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe2hbU3RyaW5nKGcpXT1uO3JldHVybiBnKyt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3ZhciBwPVN0cmluZyhuKTtyZXR1cm4gaC5oYXNPd25Qcm9wZXJ0eShwKT8oZGVsZXRlIGhbcF0sITApOiExfSxub3RpZnk6ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyhoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7dHJ5e2hbcV0oYSxmKX1jYXRjaChyKXt9fX19O3JldHVybiBlW2FdPWx9fX0KZnVuY3Rpb24gbW0oYSxiKXt2YXIgYz1sbShhLCEwKTtjJiZjLnNldChiKX1mdW5jdGlvbiBubShhKXt2YXIgYjtyZXR1cm4oYj1sbShhKSk9PW51bGw/dm9pZCAwOmIuZ2V0KCl9ZnVuY3Rpb24gb20oYSxiKXt2YXIgYz1sbShhKTtpZighYyl7Yz1sbShhLCEwKTtpZighYylyZXR1cm47Yy5zZXQoYil9cmV0dXJuIGMuZ2V0KCl9ZnVuY3Rpb24gcG0oYSxiKXtpZih0eXBlb2YgYj09PSJmdW5jdGlvbiIpe3ZhciBjO3JldHVybihjPWxtKGEsITApKT09bnVsbD92b2lkIDA6Yy5zdWJzY3JpYmUoYil9fWZ1bmN0aW9uIHFtKGEsYil7dmFyIGM9bG0oYSk7cmV0dXJuIGM/Yy51bnN1YnNjcmliZShiKTohMX07dmFyIHNtPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz0hMX07c20ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLkt8fCh0aGlzLkg9dG0oKSx0aGlzLkhbIjAiXSYmb20oam0uYmEuU2UsSlNPTi5zdHJpbmdpZnkodGhpcy5IKSkpfTsKdmFyIHhtPWZ1bmN0aW9uKCl7dmFyIGE9dW0sYj12bSxjPXZvaWQgMCxkPWZ1bmN0aW9uKCl7YyE9PXZvaWQgMCYmcW0oam0uYmEuU2UsYyk7dHJ5e3ZhciBmPW5tKGptLmJhLlNlKTtiLkg9SlNPTi5wYXJzZShmKX1jYXRjaChnKXtQKDEyMyksaW0oMiksYi5IPXt9fWIuSz0hMDthKCl9LGU9bm0oam0uYmEuU2UpO2U/ZChlKTooYz1wbShqbS5iYS5TZSxkKSx3bSgpKX0sd209ZnVuY3Rpb24oKXtpZighbm0oam0uYmEuWGkpKXttbShqbS5iYS5YaSwhMCk7dmFyIGE9ZnVuY3Rpb24oYil7bW0oam0uYmEuU2UsYnx8Int9Iik7bW0oam0uYmEuWGksITEpfTt0cnl7QS5mZXRjaCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9jY20vZ2VvIix7bWV0aG9kOiJHRVQiLGNhY2hlOiJuby1zdG9yZSIsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6Im9taXQifSkudGhlbihmdW5jdGlvbihiKXtiLm9rP2IudGV4dCgpLnRoZW4oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oKXthKCl9KTphKCl9LGZ1bmN0aW9uKCl7YSgpfSl9Y2F0Y2goYil7YSgpfX19LAp0bT1mdW5jdGlvbigpe3ZhciBhPUUoMjIpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShxYihhKSl9Y2F0Y2goYil7cmV0dXJuIFAoMTIzKSxpbSgyKSx7fX19LHltPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjAiXXx8IiJ9LHptPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjEiXXx8IiJ9LEFtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7CnZhciBocD1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtiW2dwW2VdfHxlXT1hW2VdfXJldHVybiBifSxpcD1mdW5jdGlvbihhKXtyZXR1cm4hIVEoYSxILkoudmQpJiZSKGEsRi5ELlBkKT09PSIxIiYmUihhLEYuRC5IZCkhPT0iMSImJlhvKGZwKX0sanA9ZnVuY3Rpb24oYSxiKXtpZighaXAoYSkpcmV0dXJuITE7dmFyIGM9UWMoKXx8T2MoKT81ODo1NyxkPU5tKGMsaHAoYikpO1RsKGQsYSxjKTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKyImZm10PTgiLHZvaWQgMCx7UWc6ITAsbWV0aG9kOiJHRVQifSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhkKyImZm10PTMiKX0pO3JldHVybiEwfSxrcD17fSxncD0oa3AuZGw9InVybCIsa3AuZHI9CiJyZWYiLGtwLnVpZD0idXNlcklkIixrcCk7dmFyIGxwPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZD1mdW5jdGlvbihlKXtiW2VdIT1udWxsJiZiW2VdIT09IiImJihjW2VdPWJbZV0pfTtNKDQ3NCkmJmQoIl9nc2lkIik7UihhLEYuRC5IZCkhPT0iMSImJihkKCJnY2xpZCIpLGQoImdjbHNyYyIpLGQoImF1aWQiKSxkKCJkY2xpZCIpKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGgpcmV0dXJuIGQoImd0bSIpLGN9Owp2YXIgbXA9e30sbnA9KG1wW0YuRC5zYV09ImdjdSIsbXBbRi5ELlNiXT0iZ2NsZ2IiLG1wW0YuRC5sYl09ImdjbGF3IixtcFtGLkQuemZdPSJnYWRfc291cmNlIixtcFtGLkQuQWZdPSJnYWRfc291cmNlX3NyYyIsbXBbRi5ELkRkXT0iZ2NsaWQiLG1wW0YuRC5BbF09ImdjbHNyYyIsbXBbRi5ELkJmXT0iZ2JyYWlkIixtcFtGLkQuRWVdPSJ3YnJhaWQiLG1wW0YuRC5FZF09ImF1aWQiLG1wW0YuRC5CbF09ImFlIixtcFtGLkQuSGFdPW51bGwsbXBbRi5ELkRsXT0icm5kIixtcFtGLkQuSGRdPSJuY2wiLG1wW0YuRC5OZl09ImdjbGRjIixtcFtGLkQuS2RdPSJkY2xpZCIsbXBbRi5ELlZjXT0iZWRpZCIsbXBbRi5ELlViXT0iZW4iLG1wW0YuRC5LZV09ImdkcHIiLG1wW0YuRC5YY109ImdkaWQiLG1wW0YuRC5UYV09bnVsbCxtcFtGLkQuTGVdPSJfbmciLG1wW0YuRC50aF09ImdwcF9zaWQiLG1wW0YuRC51aF09ImdwcCIsbXBbRi5ELlZmXT0iX3R1IixtcFtGLkQuUWxdPSJndG1fdXAiLG1wW0YuRC5NZV09CiJmcm0iLG1wW0YuRC5QZF09ImxwcyIsbXBbRi5ELkxpXT0iZGlkIixtcFtGLkQuVWxdPSJuYXZ0IixtcFtGLkQuemFdPSJkbCIsbXBbRi5ELlVhXT0iZHIiLG1wW0YuRC5NYl09ImR0IixtcFtGLkQuYm1dPSJzY3JzcmMiLG1wW0YuRC5aZl09ImdhX3VpZCIsbXBbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IixtcFtGLkQuUWldPSJ0ZXN0b25seSIsbXBbRi5ELnJxXT0idV90eiIsbXBbRi5ELlBlXT0idG9wIixtcFtGLkQuUWVdPSJ0aWQiLG1wW0YuRC5mYl09InVpZCIsbXBbRi5ELmtnXT0idXNfcHJpdmFjeSIsbXBbRi5ELmVkXT1udWxsLG1wW0YuRC5kZV09Im5wYSIsbXApO2Z1bmN0aW9uIG9wKGEsYil7aWYoYiE9bnVsbCYmYiE9PSIiKXt2YXIgYz1iPT09ITA/IjEiOmI9PT0hMT8iMCI6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSk7aWYoU2IoYSwiXyYiKSlyZXR1cm57a2V5OmEuc3Vic3RyaW5nKDIpLHZhbHVlOmN9O3ZhciBkPW5wW2FdO2lmKGQhPT1udWxsKXJldHVybiBkP3trZXk6ZCx2YWx1ZTpjfTp7a2V5OkFiKGIpPyJlcG4uIithOiJlcC4iK2EsdmFsdWU6Y319fTtmdW5jdGlvbiBwcChhKXthPWE9PT12b2lkIDA/W106YTtyZXR1cm4geGooYSkuam9pbigifiIpfTtmdW5jdGlvbiBxcCgpe3ZhciBhPVtdLGI9TnVtYmVyKCcnKXx8MCxjPU51bWJlcignJyl8fDA7Y3x8KGM9Yi8xMDApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMjgsc3R1ZHlJZDoyMjgsZXhwZXJpbWVudElkOjEwNTE3NzE1NCxjb250cm9sSWQ6MTA1MTc3MTU1LGNvbnRyb2xJZDI6MTA1MjU1MjQ1LHByb2JhYmlsaXR5OmMsYWN0aXZlOmQsWmU6MH0pO3ZhciBlPU51bWJlcignJyl8fAowLGY9TnVtYmVyKCcnKXx8MDtmfHwoZj1lLzEwMCk7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIzNSxzdHVkeUlkOjIzNSxleHBlcmltZW50SWQ6MTA1MzU3MTUwLGNvbnRyb2xJZDoxMDUzNTcxNTEsY29udHJvbElkMjowLHByb2JhYmlsaXR5OmYsYWN0aXZlOmcsWmU6MX0pO3ZhciBoPU51bWJlcignJyl8fDAsbD1OdW1iZXIoJycpfHwKMDtsfHwobD1oLzEwMCk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NixzdHVkeUlkOjI2NixleHBlcmltZW50SWQ6MTE1NzE4NTI5LGNvbnRyb2xJZDoxMTU3MTg1MzAsY29udHJvbElkMjoxMTU3MTg1MzEscHJvYmFiaWxpdHk6bCxhY3RpdmU6bixaZTowfSk7dmFyIHA9TnVtYmVyKCcnKXx8MCxxPU51bWJlcignJyl8fAowO3F8fChxPXAvMTAwKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY3LHN0dWR5SWQ6MjY3LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjYsY29udHJvbElkOjExNTcxODUyNyxjb250cm9sSWQyOjExNTcxODUyOCxwcm9iYWJpbGl0eTpxLGFjdGl2ZTpyLFplOjB9KTtyZXR1cm4gYX07dmFyIHJwPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPW5ldyBTZXR9LHhwPWZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWI9YS5OW2Muc3R1ZHlJZF0/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHthY3RpdmU6ITB9KTpjLGU9Rmk7ZC5jb250cm9sSWQyJiZkLnByb2JhYmlsaXR5PD0uMjV8fChkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCx7Y29udHJvbElkMjowfSkpO2Uuc3R1ZGllc1tkLnN0dWR5SWRdPWQ7Yi5mb2N1c2VkJiYoYS5LW2Iuc3R1ZHlJZF09ITApO2lmKGIuWmU9PT0xKXt2YXIgZj1iLnN0dWR5SWQ7c3AoYSx0cCgpLGYpO3VwKGEsZik/dGoodWosZik6dnAoYSxmKT91ai5LW2ZdPSEwOndwKGEsZikmJih1ai5IW2ZdPSEwKX1lbHNlIGlmKGIuWmU9PT0wKXt2YXIgZz1iLnN0dWR5SWQ7c3AoYSxhLkgsZyk7dXAoYSxnKT90aih1aixnKTp2cChhLGcpP3VqLktbZ109ITA6d3AoYSxnKSYmCih1ai5IW2ddPSEwKX19LHNwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUZpO2lmKGUuc3R1ZGllc1tjXSl7dmFyIGY9ZS5zdHVkaWVzW2NdLGc9Zi5leHBlcmltZW50SWQsaD1mLnByb2JhYmlsaXR5O2lmKCEoYi5zdHVkaWVzfHx7fSlbY10pe3ZhciBsPWIuc3R1ZGllc3x8e307bFtjXT0hMDtiLnN0dWRpZXM9bDtpZighZS5zdHVkaWVzW2NdLmFjdGl2ZSlpZihlLnN0dWRpZXNbY10ucHJvYmFiaWxpdHk+LjUpSWkoYixnLGMpO2Vsc2UgaWYoIShoPD0wfHxoPjEpKXt2YXIgbj12b2lkIDA7aWYoZCl7dmFyIHA9Q2koZCsifiIrYyk7aWYocD09PSJlMiIpbj0tMTtlbHNle2Zvcih2YXIgcT1uZXcgVWludDhBcnJheShwKSxyPUJpZ0ludCgwKSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpcj1yPDxCaWdJbnQoOCl8QmlnSW50KHUudmFsdWUpO249TnVtYmVyKHIlQmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl9fUdpLnNrKGIsYyxuKX19fWlmKCFhLktbY10pe3ZhciB2PQpOaShiLGMpO3YmJndqLkguSy5hZGQodil9fSx0cD1mdW5jdGlvbigpe3JldHVybiBvbShqbS5iYS5UcSx7fSl9LHVwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gS2koYyxiKXx8S2koYS5ILGIpfSx2cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIExpKGMsYil8fExpKGEuSCxiKX0sd3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBNaShjLGIpfHxNaShhLkgsYil9LHlwOwpmdW5jdGlvbiB6cCgpe2lmKCF5cCl7dmFyIGE9eXA9bmV3IHJwLGIsYyxkPSgoYj1BKT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaGFzaCl8fCIiO2lmKGRbMF09PT0iIyImJmRbMV09PT0iXyImJmRbMl09PT0idCImJmRbM109PT0iZSImJmRbNF09PT0iPSIpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO2lmKGUpZm9yKHZhciBmPW0oZS5zcGxpdCgifiIpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9TnVtYmVyKGcudmFsdWUpO2gmJihhLk5baF09ITAsdGoodWosaCkpfX1mb3IodmFyIGw9bShxcCgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl4cChhLG4udmFsdWUpO2Zvcih2YXIgcD1bXSxxPW0oTWYoNTYpfHxbXSkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT17c3R1ZHlJZDp0WzFdLGFjdGl2ZTohIXRbMl0scHJvYmFiaWxpdHk6dFszXXx8MCxleHBlcmltZW50SWQ6dFs0XXx8CjAsY29udHJvbElkOnRbNV18fDAsY29udHJvbElkMjp0WzZdfHwwfSx2PTA7c3dpdGNoKHRbN10pe2Nhc2UgMjp2PTE7YnJlYWs7Y2FzZSAzOnY9MjticmVhaztjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDA6dj0wfXZhciB4O2E6c3dpdGNoKHUuc3R1ZHlJZCl7Y2FzZSA1Njc6Y2FzZSA0NjI6eD0hMDticmVhayBhO2RlZmF1bHQ6eD0hMX12YXIgeT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHUse1plOnYsZm9jdXNlZDp4fSk7KHkuYWN0aXZlfHx5LnByb2JhYmlsaXR5Pi41JiZ5LmV4cGVyaW1lbnRJZHx8eS5leHBlcmltZW50SWQmJnkuY29udHJvbElkKSYmcC5wdXNoKHkpfWZvcih2YXIgej1tKHApLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXhwKGEsQy52YWx1ZSl9fQpmdW5jdGlvbiBBcChhLGIpe3pwKCk7dmFyIGM9eXA7c3AoYyx0cCgpLGEsYik7dXAoYyxhKT90aih1aixhKTp2cChjLGEpP3VqLktbYV09ITA6d3AoYyxhKSYmKHVqLkhbYV09ITApfWZ1bmN0aW9uIEJwKCl7enAoKTt2YXIgYT15cCxiPXVwKGEsNTY3KTtpZihhLktbNTY3XSl7dmFyIGMsZD10cCgpOyhjPU5pKGQsNTY3KXx8TmkoYS5ILDU2NykpJiZhLlIuYWRkKGMpfXJldHVybiBifWZ1bmN0aW9uIENwKGEpe3pwKCk7dmFyIGI9bmV3IFNldCh5cC5SKTtpZihhKWZvcih2YXIgYz1RKGEsSC5KLkNoKXx8W10sZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWIuYWRkKGUudmFsdWUpO3JldHVybiBwcChbXS5jb25jYXQodyhiKSkpfTtmdW5jdGlvbiBEcChhKXt2YXIgYj1hLmxvY2F0aW9uLmhyZWY7aWYoYT09PWEudG9wKXJldHVybnt1cmw6YixJczohMH07dmFyIGM9ITEsZD1hLmRvY3VtZW50O2QmJmQucmVmZXJyZXImJihiPWQucmVmZXJyZXIsYS5wYXJlbnQ9PT1hLnRvcCYmKGM9ITApKTt2YXIgZT1hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihlKXt2YXIgZj1lW2UubGVuZ3RoLTFdLGc7ZiYmKChnPWIpPT1udWxsP3ZvaWQgMDpnLmluZGV4T2YoZikpPT09LTEmJihjPSExLGI9Zil9cmV0dXJue3VybDpiLElzOmN9fWZ1bmN0aW9uIEVwKGEpe3RyeXt2YXIgYjtpZihiPSEhYSYmYS5sb2NhdGlvbi5ocmVmIT1udWxsKWE6e3RyeXtIbihhLmZvbyk7Yj0hMDticmVhayBhfWNhdGNoKGMpe31iPSExfXJldHVybiBifWNhdGNoKGMpe3JldHVybiExfX1mdW5jdGlvbiBGcCgpe2Zvcih2YXIgYT1BLGI9YTthJiZhIT09YS5wYXJlbnQ7KWE9YS5wYXJlbnQsRXAoYSkmJihiPWEpO3JldHVybiBifTt2YXIgR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU7dmFyIGQ9bmV3IGM7YS5hcHBseShkLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7cmV0dXJuIGR9LEhwPWZ1bmN0aW9uKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPW51bGw7YygpfX19O2Z1bmN0aW9uIElwKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9O2Z1bmN0aW9uIEpwKGEpe3ZhciBiPWEuc3BsaXQoL1s/I10vKSxjPS9bP10vLnRlc3QoYSk/Ij8iK2JbMV06IiI7cmV0dXJue3prOmJbMF0scGFyYW1zOmMsZnJhZ21lbnQ6L1sjXS8udGVzdChhKT8iIyIrKGM/YlsyXTpiWzFdKToiIn19ZnVuY3Rpb24gS3AoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gamMoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGpjKGMpfQpmdW5jdGlvbiBMcChhLGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7ZyE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZyk/Zy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBlKGwsaCl9KTooYis9ZitlbmNvZGVVUklDb21wb25lbnQoaCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChnKSxmPSImIikpfXZhciBmPWIubGVuZ3RoPyImIjoiPyI7ZC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQ9T2JqZWN0LmVudHJpZXMoZCkpO0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3JldHVybiBlKGdbMV0sZ1swXSl9KTpkLmZvckVhY2goZSk7cmV0dXJuIGpjKGErYitjKX1mdW5jdGlvbiBNcChhLGIpe3ZhciBjPUpwKGtjKGEpLnRvU3RyaW5nKCkpLGQ9Yy56ay5zbGljZSgtMSk9PT0iLyI/IiI6Ii8iLGU9Yy56aytkK2VuY29kZVVSSUNvbXBvbmVudChiKTtyZXR1cm4gamMoZStjLnBhcmFtcytjLmZyYWdtZW50KX07dmFyIE5wPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEsZD0wO2Q8NTA7KytkKXt2YXIgZTt0cnl7ZT0hKCFjLmZyYW1lc3x8IWMuZnJhbWVzW2JdKX1jYXRjaChoKXtlPSExfWlmKGUpcmV0dXJuIGM7dmFyIGY7YTp7dHJ5e3ZhciBnPWMucGFyZW50O2lmKGcmJmchPT1jKXtmPWc7YnJlYWsgYX19Y2F0Y2goaCl7fWY9bnVsbH1pZighKGM9ZikpYnJlYWt9cmV0dXJuIG51bGx9LE9wPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi50b3A9PWIpcmV0dXJuIDA7aWYoYT09PXZvaWQgMD8wOmEpe3ZhciBjPWIubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGMpcmV0dXJuIGNbYy5sZW5ndGgtMV09PWIubG9jYXRpb24ub3JpZ2luPzE6Mn1yZXR1cm4gRXAoYi50b3ApPzE6Mn0sUHA9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiaW1nIil9O2Z1bmN0aW9uIFFwKGEpe2Zvcih2YXIgYj1bXSxjPUIuY29va2llLnNwbGl0KCI7IiksZD1uZXcgUmVnRXhwKCJeXFxzKiIrKGF8fCJfZ2FjIikrIl8oVUEtXFxkKy1cXGQrKT1cXHMqKC4rPylcXHMqJCIpLGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS5tYXRjaChkKTtmJiZiLnB1c2goe3VkOmZbMV0sdmFsdWU6ZlsyXSx0aW1lc3RhbXA6TnVtYmVyKGZbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1iLnNvcnQoZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gYn0KZnVuY3Rpb24gUnAoYSxiKXt2YXIgYz1RcChhKSxkPXt9O2lmKCFjfHwhYy5sZW5ndGgpcmV0dXJuIGQ7Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0udmFsdWUuc3BsaXQoIi4iKTtpZighKGZbMF0hPT0iMSJ8fGImJmYubGVuZ3RoPDN8fCFiJiZmLmxlbmd0aCE9PTMpJiZOdW1iZXIoZlsxXSkpe2RbY1tlXS51ZF18fChkW2NbZV0udWRdPVtdKTt2YXIgZz17dmVyc2lvbjpmWzBdLHRpbWVzdGFtcDpOdW1iZXIoZlsxXSkqMUUzLGdjbGlkOmZbMl19O2ImJmYubGVuZ3RoPjMmJihnLmxhYmVscz1mLnNsaWNlKDMpKTtkW2NbZV0udWRdLnB1c2goZyl9fXJldHVybiBkfTtmdW5jdGlvbiBTcChhKXtyZXR1cm4gYS5vcmlnaW4hPT0ibnVsbCJ9O3ZhciBUcD17fSxVcD0oVHAuaz17bmE6L15bXHctXSskL30sVHAuYj17bmE6L15bXHctXSskLyxuazohMH0sVHAuaT17bmE6L15bMS05XVxkKiQvfSxUcC5oPXtuYTovXlxkKyQvfSxUcC50PXtuYTovXlsxLTldXGQqJC99LFRwLmQ9e25hOi9eW0EtWmEtejAtOV8tXSskL30sVHAuaj17bmE6L15cZCskL30sVHAudT17bmE6L15bMS05XVxkKiQvfSxUcC5sPXtuYTovXlswMV0kL30sVHAubz17bmE6L15bMS05XVxkKiQvfSxUcC5nPXtuYTovXlswMV0kL30sVHAucz17bmE6L14uKyQvfSxUcC5tPXtuYTovXlswMV0kL30sVHApO3ZhciBWcD17fSxacD0oVnBbNV09e2ppOnsyOldwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJ1Il19LFZwWzRdPXtqaTp7MjpXcCxHQ0w6WHB9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsIm0iXX0sVnBbMl09e2ppOntHUzI6V3AsR1MxOllwfSxaajoiR1MyIixSaDoic29ndGpsaGQiLnNwbGl0KCIiKX0sVnApO2Z1bmN0aW9uICRwKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF07Yz09bnVsbHx8YyhlKTtpZihlKXt2YXIgZj1kLmppW2VdO2lmKGYpcmV0dXJuIGYoYSxiKX19fQpmdW5jdGlvbiBXcChhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpe3ZhciBkPWNbMl07aWYoZC5pbmRleE9mKCIkIik9PT0tMSYmZC5pbmRleE9mKCIlMjQiKSE9PS0xKXRyeXtkPWRlY29kZVVSSUNvbXBvbmVudChkKX1jYXRjaCh0KXt9dmFyIGU9e30sZj1acFtiXTtpZihmKXtmb3IodmFyIGc9Zi5SaCxoPW0oZC5zcGxpdCgiJCIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPW5bMF07aWYoZy5pbmRleE9mKHApIT09LTEpdHJ5e3ZhciBxPWRlY29kZVVSSUNvbXBvbmVudChuLnN1YnN0cmluZygxKSkscj1VcFtwXTtyJiYoci5uaz8oZVtwXT1lW3BdfHxbXSxlW3BdLnB1c2gocSkpOmVbcF09cSl9Y2F0Y2godCl7fX1yZXR1cm4gZX19fWZ1bmN0aW9uIGFxKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXJldHVybltkLlpqLGN8fCIxIixicShhLGIpXS5qb2luKCIuIil9CmZ1bmN0aW9uIGJxKGEsYil7dmFyIGM9WnBbYl07aWYoYyl7Zm9yKHZhciBkPVtdLGU9bShjLlJoKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVVwW2ddO2lmKGgpe3ZhciBsPWFbZ107aWYobCE9PXZvaWQgMClpZihoLm5rJiZBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytwLnZhbHVlKSk7ZWxzZSBkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crbCkpfX1yZXR1cm4gZC5qb2luKCIkIil9fWZ1bmN0aW9uIFhwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtiLnNoaWZ0KCk7dmFyIGM9Yi5zaGlmdCgpLGQ9Yi5zaGlmdCgpLGU9e307cmV0dXJuIGUuaz1kLGUuaT1jLGUuYj1iLGV9CmZ1bmN0aW9uIFlwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKS5zbGljZSgyKTtpZighKGIubGVuZ3RoPDV8fGIubGVuZ3RoPjcpKXt2YXIgYz17fTtyZXR1cm4gYy5zPWJbMF0sYy5vPWJbMV0sYy5nPWJbMl0sYy50PWJbM10sYy5qPWJbNF0sYy5sPWJbNV0sYy5oPWJbNl0sY319O2Z1bmN0aW9uIGNxKGEsYixjLGQpe3ZhciBlO3JldHVybihlPWRxKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09YX0sYixjLGQpW2FdKSE9bnVsbD9lOltdfWZ1bmN0aW9uIGRxKGEsYixjLGQpe3ZhciBlO2lmKGVxKGQpKXtmb3IodmFyIGY9e30sZz1TdHJpbmcoYnx8ZnEoKSkuc3BsaXQoIjsiKSxoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBsPWdbaF0uc3BsaXQoIj0iKSxuPWxbMF0udHJpbSgpO2lmKG4mJmEobikpe3ZhciBwPWwuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtwJiZjJiYocD1kZWNvZGVVUklDb21wb25lbnQocCkpO3ZhciBxPXZvaWQgMCxyPXZvaWQgMDsoKHE9Zilbcj1uXXx8KHFbcl09W10pKS5wdXNoKHApfX1lPWZ9ZWxzZSBlPXt9O3JldHVybiBlfQpmdW5jdGlvbiBncShhLGIsYyxkLGUpe2lmKGVxKGUpKXt2YXIgZj1ocShhLGQsZSk7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2lmKGYubGVuZ3RoIT09MCl7Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLkpyfSxiKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLldzfSxjKTtyZXR1cm4gZlswXX19fWZ1bmN0aW9uIGpxKGEsYixjLGQpe3ZhciBlPWZxKCksZj1BO1NwKGYpJiYoZi5kb2N1bWVudC5jb29raWU9YSk7dmFyIGc9ZnEoKTtyZXR1cm4gZSE9PWd8fGMhPT12b2lkIDAmJmNxKGIsZywhMSxkKS5pbmRleE9mKGMpPj0wfQpmdW5jdGlvbiBrcShhLGIsYyxkKXtmdW5jdGlvbiBlKHgseSx6KXtpZih6PT1udWxsKXJldHVybiBkZWxldGUgaFt5XSx4O2hbeV09ejtyZXR1cm4geCsiOyAiK3krIj0iK3p9ZnVuY3Rpb24gZih4LHkpe2lmKHk9PW51bGwpcmV0dXJuIHg7aFt5XT0hMDtyZXR1cm4geCsiOyAiK3l9aWYoIWVxKGMuTWMpKXJldHVybiAyO3ZhciBnO2I9PW51bGw/Zz1hKyI9ZGVsZXRlZDsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKTooYy5lbmNvZGUmJihiPWVuY29kZVVSSUNvbXBvbmVudChiKSksYj1scShiKSxnPWErIj0iK2IpO3ZhciBoPXt9O2c9ZShnLCJwYXRoIixjLnBhdGgpO3ZhciBsO2MuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGU/bD1jLmV4cGlyZXMudG9VVENTdHJpbmcoKTpjLmV4cGlyZXMhPW51bGwmJihsPSIiK2MuZXhwaXJlcyk7Zz1lKGcsImV4cGlyZXMiLGwpO2c9ZShnLCJtYXgtYWdlIixjLk9zKTtnPWUoZywic2FtZXNpdGUiLGMucnQpO2Muc2VjdXJlJiYKKGc9ZihnLCJzZWN1cmUiKSk7dmFyIG49Yy5kb21haW47aWYobiYmbi50b0xvd2VyQ2FzZSgpPT09ImF1dG8iKXtmb3IodmFyIHA9bXEoKSxxPXZvaWQgMCxyPSExLHQ9MDt0PHAubGVuZ3RoOysrdCl7dmFyIHU9cFt0XSE9PSJub25lIj9wW3RdOnZvaWQgMCx2PWUoZywiZG9tYWluIix1KTt2PWYodixjLmZsYWdzKTt0cnl7ZCYmZChhLGgpfWNhdGNoKHgpe3E9eDtjb250aW51ZX1yPSEwO2lmKCFucSh1LGMucGF0aCkmJmpxKHYsYSxiLGMuTWMpKXJldHVybiAwfWlmKHEmJiFyKXRocm93IHE7cmV0dXJuIDF9biYmbi50b0xvd2VyQ2FzZSgpIT09Im5vbmUiJiYoZz1lKGcsImRvbWFpbiIsbikpO2c9ZihnLGMuZmxhZ3MpO2QmJmQoYSxoKTtyZXR1cm4gbnEobixjLnBhdGgpPzE6anEoZyxhLGIsYy5NYyk/MDoxfWZ1bmN0aW9uIG9xKGEsYixjKXtjLnBhdGg9PW51bGwmJihjLnBhdGg9Ii8iKTtjLmRvbWFpbnx8KGMuZG9tYWluPSJhdXRvIik7cmV0dXJuIGtxKGEsYixjKX0KZnVuY3Rpb24gaXEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPVtdLGYsZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGw9YihoKTtsPT09Yz9kLnB1c2goaCk6Zj09PXZvaWQgMHx8bDxmPyhlPVtoXSxmPWwpOmw9PT1mJiZlLnB1c2goaCl9cmV0dXJuIGQubGVuZ3RoPjA/ZDplfWZ1bmN0aW9uIGhxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsYyksZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdLnNwbGl0KCIuIiksaD1nLnNoaWZ0KCk7aWYoIWJ8fCFofHxiLmluZGV4T2YoaCkhPT0tMSl7dmFyIGw9Zy5zaGlmdCgpO2lmKGwpe3ZhciBuPWwuc3BsaXQoIi0iKTtkLnB1c2goe0JyOmVbZl0sQ3I6Zy5qb2luKCIuIiksSnI6TnVtYmVyKG5bMF0pfHwxLFdzOk51bWJlcihuWzFdKXx8MX0pfX19cmV0dXJuIGR9ZnVuY3Rpb24gbHEoYSl7YSYmYS5sZW5ndGg+MTIwMCYmKGE9YS5zdWJzdHJpbmcoMCwxMjAwKSk7cmV0dXJuIGF9CnZhciBwcT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn0pPyQvLHFxPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pO2Z1bmN0aW9uIG5xKGEsYil7cmV0dXJuIGEhPT12b2lkIDAmJihxcS50ZXN0KEEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpfHxiPT09Ii8iJiZwcS50ZXN0KGEpKX1mdW5jdGlvbiBycShhKXtpZighYSlyZXR1cm4gMTt2YXIgYj1hO1lmKDQpJiZhPT09Im5vbmUiJiYoYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTtiPWIuaW5kZXhPZigiLiIpPT09MD9iLnN1YnN0cmluZygxKTpiO3JldHVybiBiLnNwbGl0KCIuIikubGVuZ3RofWZ1bmN0aW9uIHNxKGEpe2lmKCFhfHxhPT09Ii8iKXJldHVybiAxO2FbMF0hPT0iLyImJihhPSIvIithKTthW2EubGVuZ3RoLTFdIT09Ii8iJiYoYSs9Ii8iKTtyZXR1cm4gYS5zcGxpdCgiLyIpLmxlbmd0aC0xfQpmdW5jdGlvbiB0cShhLGIpe3ZhciBjPSIiK3JxKGEpLGQ9c3EoYik7ZD4xJiYoYys9Ii0iK2QpO3JldHVybiBjfQp2YXIgZnE9ZnVuY3Rpb24oKXt2YXIgYT1BO3JldHVybiBTcChhKT9hLmRvY3VtZW50LmNvb2tpZToiIn0sZXE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJllmKDUpPyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gRGwoYikmJkJsKGIpfSk6ITB9LG1xPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoYi5sZW5ndGg9PT00KXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKE51bWJlcihjKS50b1N0cmluZygpPT09YylyZXR1cm5bIm5vbmUiXX1mb3IodmFyIGQ9Yi5sZW5ndGgtMjtkPj0wO2QtLSlhLnB1c2goYi5zbGljZShkKS5qb2luKCIuIikpO3ZhciBlPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7cXEudGVzdChlKXx8cHEudGVzdChlKXx8YS5wdXNoKCJub25lIik7cmV0dXJuIGF9O2Z1bmN0aW9uIHVxKGEsYixjLGQpe3ZhciBlLGY9TnVtYmVyKGEucGQhPW51bGw/YS5wZDp2b2lkIDApO2YhPT0wJiYoZT1uZXcgRGF0ZSgoYnx8TmIoKSkrMUUzKihmfHw3Nzc2RTMpKSk7cmV0dXJue3BhdGg6YS5wYXRoLGRvbWFpbjphLmRvbWFpbixmbGFnczphLmZsYWdzLGVuY29kZTohIWMsZXhwaXJlczplLE1jOmR9fTt2YXIgdnE9bmV3IE1hcChbWzUsImFkX3N0b3JhZ2UiXSxbNCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV0sWzIsImFuYWx5dGljc19zdG9yYWdlIl1dKTtmdW5jdGlvbiB3cShhLGIsYyl7aWYoWnBbYl0pe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoYikpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9JHAoZy52YWx1ZSxiLGMpO2gmJmQucHVzaCh4cShoKSl9cmV0dXJuIGR9fQpmdW5jdGlvbiB5cShhKXt2YXIgYj16cTtpZihacFsyXSl7Zm9yKHZhciBjPXt9LGQ9ZHEoYSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSksZT1PYmplY3Qua2V5cyhkKS5zb3J0KCksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9bShkW2hdKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9JHAobi52YWx1ZSwyLGIpO3AmJihjW2hdfHwoY1toXT1bXSksY1toXS5wdXNoKHhxKHApKSl9cmV0dXJuIGN9fWZ1bmN0aW9uIEFxKGEsYixjLGQsZSl7ZD1kfHx7fTt2YXIgZj10cShkLmRvbWFpbixkLnBhdGgpLGc9YXEoYixjLGYpO2lmKCFnKXJldHVybiAxO3ZhciBoPXVxKGQsZSx2b2lkIDAsdnEuZ2V0KGMpKTtyZXR1cm4gb3EoYSxnLGgpfWZ1bmN0aW9uIEJxKGEsYil7dmFyIGM9Yi5uYTtyZXR1cm4gdHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoYSk6Yy50ZXN0KGEpfQpmdW5jdGlvbiB4cShhKXtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhKSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17QWc6dm9pZCAwfSxjPWIubmV4dCgpKXt2YXIgZT1jLnZhbHVlLGY9YVtlXTtkLkFnPVVwW2VdO2QuQWc/ZC5BZy5uaz9hW2VdPUFycmF5LmlzQXJyYXkoZik/Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBCcShoLGcuQWcpfX0oZCkpOnZvaWQgMDp0eXBlb2YgZj09PSJzdHJpbmciJiZCcShmLGQuQWcpfHwoYVtlXT12b2lkIDApOmFbZV09dm9pZCAwfXJldHVybiBhfTt2YXIgQ3E7ZnVuY3Rpb24gRHEoKXtmdW5jdGlvbiBhKGcpe2MoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfWZ1bmN0aW9uIGIoZyl7ZChnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9dmFyIGM9RXEsZD1GcSxlPUdxKCk7aWYoIWUuaW5pdCl7JGMoQiwibW91c2Vkb3duIixhKTskYyhCLCJrZXl1cCIsYSk7JGMoQiwic3VibWl0IixiKTt2YXIgZj1IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdDtIVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdD1mdW5jdGlvbigpe2QodGhpcyk7Zi5jYWxsKHRoaXMpfTtlLmluaXQ9ITB9fWZ1bmN0aW9uIEhxKGEsYixjLGQsZSl7dmFyIGY9e2NhbGxiYWNrOmEsZG9tYWluczpiLGZyYWdtZW50OmM9PT0yLHBsYWNlbWVudDpjLGZvcm1zOmQsc2FtZUhvc3Q6ZX07R3EoKS5kZWNvcmF0b3JzLnB1c2goZil9CmZ1bmN0aW9uIElxKGEsYixjKXtmb3IodmFyIGQ9R3EoKS5kZWNvcmF0b3JzLGU9e30sZj0wO2Y8ZC5sZW5ndGg7KytmKXt2YXIgZz1kW2ZdLGg7aWYoaD0hY3x8Zy5mb3JtcylhOnt2YXIgbD1nLmRvbWFpbnMsbj1hLHA9ISFnLnNhbWVIb3N0O2lmKGwmJihwfHxuIT09Qi5sb2NhdGlvbi5ob3N0bmFtZSkpZm9yKHZhciBxPTA7cTxsLmxlbmd0aDtxKyspaWYobFtxXWluc3RhbmNlb2YgUmVnRXhwKXtpZihsW3FdLnRlc3Qobikpe2g9ITA7YnJlYWsgYX19ZWxzZSBpZihuLmluZGV4T2YobFtxXSk+PTB8fHAmJmxbcV0uaW5kZXhPZihuKT49MCl7aD0hMDticmVhayBhfWg9ITF9aWYoaCl7dmFyIHI9Zy5wbGFjZW1lbnQ7cj09PXZvaWQgMCYmKHI9Zy5mcmFnbWVudD8yOjEpO3I9PT1iJiZRYihlLGcuY2FsbGJhY2soKSl9fXJldHVybiBlfQpmdW5jdGlvbiBHcSgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEuZ2w7YiYmYi5kZWNvcmF0b3JzfHwoYj17ZGVjb3JhdG9yczpbXX0sYS5nbD1iKTtyZXR1cm4gYn07dmFyIEpxPS8oLio/KVwqKC4qPylcKiguKikvLEtxPS9eaHR0cHM/OlwvXC8oW15cL10qPylcLj9jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyguKikvLExxPS9eKD86d3d3XC58bVwufGFtcFwuKSsvLE1xPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIE5xKGEpe3ZhciBiPU1xLmV4ZWMoYSk7aWYoYilyZXR1cm57aGs6YlsxXSxxdWVyeTpiWzJdLGZyYWdtZW50OmJbM119fWZ1bmN0aW9uIE9xKGEpe3JldHVybiBuZXcgUmVnRXhwKCIoLio/KShefCYpIithKyI9KFteJl0qKSY/KC4qKSIpfQpmdW5jdGlvbiBQcShhLGIpe3ZhciBjPVtIYy51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLEhjLnVzZXJMYW5ndWFnZXx8SGMubGFuZ3VhZ2UsTWF0aC5mbG9vcihOYigpLzYwLzFFMyktKGI9PT12b2lkIDA/MDpiKSxhXS5qb2luKCIqIiksZDtpZighKGQ9Q3EpKXtmb3IodmFyIGU9QXJyYXkoMjU2KSxmPTA7ZjwyNTY7ZisrKXtmb3IodmFyIGc9ZixoPTA7aDw4O2grKylnPWcmMT9nPj4+MV4zOTg4MjkyMzg0Omc+Pj4xO2VbZl09Z31kPWV9Q3E9ZDtmb3IodmFyIGw9NDI5NDk2NzI5NSxuPTA7bjxjLmxlbmd0aDtuKyspbD1sPj4+OF5DcVsobF5jLmNoYXJDb2RlQXQobikpJjI1NV07cmV0dXJuKChsXi0xKT4+PjApLnRvU3RyaW5nKDM2KX0KZnVuY3Rpb24gUXEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPVJqKEEubG9jYXRpb24uaHJlZiksZD1jLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZT1JaihkLCJfZ2wiLCExLCEwKXx8IiI7Yi5xdWVyeT1ScShlKXx8e307dmFyIGY9TGooYywiZnJhZ21lbnQiKSxnO3ZhciBoPS0xO2lmKFNiKGYsIl9nbD0iKSloPTQ7ZWxzZXt2YXIgbD1mLmluZGV4T2YoIiZfZ2w9Iik7bD4wJiYoaD1sKzMrMil9aWYoaDwwKWc9dm9pZCAwO2Vsc2V7dmFyIG49Zi5pbmRleE9mKCImIixoKTtnPW48MD9mLnN1YnN0cmluZyhoKTpmLnN1YnN0cmluZyhoLG4pfWIuZnJhZ21lbnQ9UnEoZ3x8IiIpfHx7fTthJiZTcShjLGQsZil9fWZ1bmN0aW9uIFRxKGEsYil7dmFyIGM9T3EoYSkuZXhlYyhiKSxkPWI7aWYoYyl7dmFyIGU9Y1syXSxmPWNbNF07ZD1jWzFdO2YmJihkPWQrZStmKX1yZXR1cm4gZH0KZnVuY3Rpb24gU3EoYSxiLGMpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgbD1UcSgiX2dsIixnKTtsLmxlbmd0aCYmKGw9aCtsKTtyZXR1cm4gbH1pZihHYyYmR2MucmVwbGFjZVN0YXRlKXt2YXIgZT1PcSgiX2dsIik7aWYoZS50ZXN0KGIpfHxlLnRlc3QoYykpe3ZhciBmPUxqKGEsInBhdGgiKTtiPWQoYiwiPyIpO2M9ZChjLCIjIik7R2MucmVwbGFjZVN0YXRlKHt9LCIiLCIiK2YrYitjKX19fWZ1bmN0aW9uIFVxKGEsYil7dmFyIGM9UXEoISFiKSxkPUdxKCk7ZC5kYXRhfHwoZC5kYXRhPXtxdWVyeTp7fSxmcmFnbWVudDp7fX0sYyhkLmRhdGEpKTt2YXIgZT17fSxmPWQuZGF0YTtmJiYoUWIoZSxmLnF1ZXJ5KSxhJiZRYihlLGYuZnJhZ21lbnQpKTtyZXR1cm4gZX0KdmFyIFJxPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1WcShhLDMpO2lmKGIhPT12b2lkIDApe2Zvcih2YXIgYz17fSxkPWI/Yi5zcGxpdCgiKiIpOltdLGU9MDtlKzE8ZC5sZW5ndGg7ZSs9Mil7dmFyIGY9ZFtlXSxnPXFiKGRbZSsxXSk7Y1tmXT1nfXNiKCJUQUdHSU5HIiw2KTtyZXR1cm4gY319Y2F0Y2goaCl7c2IoIlRBR0dJTkciLDgpfX07ZnVuY3Rpb24gVnEoYSxiKXtpZihhKXt2YXIgYzthOntmb3IodmFyIGQ9YSxlPTA7ZTwzOysrZSl7dmFyIGY9SnEuZXhlYyhkKTtpZihmKXtjPWY7YnJlYWsgYX1kPUtqKGQpfHwiIn1jPXZvaWQgMH12YXIgZz1jO2lmKGcmJmdbMV09PT0iMSIpe3ZhciBoPWdbM10sbDthOntmb3IodmFyIG49Z1syXSxwPTA7cDxiOysrcClpZihuPT09UHEoaCxwKSl7bD0hMDticmVhayBhfWw9ITF9aWYobClyZXR1cm4gaDtzYigiVEFHR0lORyIsNyl9fX0KZnVuY3Rpb24gV3EoYSxiLGMsZCxlKXtmdW5jdGlvbiBmKHApe3A9VHEoYSxwKTt2YXIgcT1wLmNoYXJBdChwLmxlbmd0aC0xKTtwJiZxIT09IiYiJiYocCs9IiYiKTtyZXR1cm4gcCtufWQ9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBnPU5xKGMpO2lmKCFnKXJldHVybiIiO3ZhciBoPWcucXVlcnl8fCIiLGw9Zy5mcmFnbWVudHx8IiIsbj1hKyI9IitiO2Q/bC5zdWJzdHJpbmcoMSkubGVuZ3RoIT09MCYmZXx8KGw9IiMiK2YobC5zdWJzdHJpbmcoMSkpKTpoPSI/IitmKGguc3Vic3RyaW5nKDEpKTtyZXR1cm4iIitnLmhrK2grbH0KZnVuY3Rpb24gWHEoYSxiKXtmdW5jdGlvbiBjKG4scCxxKXt2YXIgcjthOntmb3IodmFyIHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpKXtyPSEwO2JyZWFrIGF9cj0hMX1pZihyKXt2YXIgdSx2PVtdLHg7Zm9yKHggaW4gbilpZihuLmhhc093blByb3BlcnR5KHgpKXt2YXIgeT1uW3hdO3khPT12b2lkIDAmJnk9PT15JiZ5IT09bnVsbCYmeS50b1N0cmluZygpIT09IltvYmplY3QgT2JqZWN0XSImJih2LnB1c2goeCksdi5wdXNoKHBiKFN0cmluZyh5KSkpKX12YXIgej12LmpvaW4oIioiKTt1PVsiMSIsUHEoeiksel0uam9pbigiKiIpO2Q/KFlmKDMpfHxZZigxKXx8IXApJiZZcSgiX2dsIix1LGEscCxxKTpacSgiX2dsIix1LGEscCxxKX19dmFyIGQ9KGEudGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk9PT0iRk9STSIsZT1JcShiLDEsZCksZj1JcShiLDIsZCksZz1JcShiLDQsZCksaD1JcShiLDMsZCk7YyhlLCExLCExKTtjKGYsITAsITEpO1lmKDEpJiZjKGcsITAsITApO2Zvcih2YXIgbCBpbiBoKWguaGFzT3duUHJvcGVydHkobCkmJgokcShsLGhbbF0sYSl9ZnVuY3Rpb24gJHEoYSxiLGMpe2MudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImEiP1pxKGEsYixjKTpjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJmb3JtIiYmWXEoYSxiLGMpfWZ1bmN0aW9uIFpxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY7aWYoZj1jLmhyZWYpe3ZhciBnO2lmKCEoZz1kKSl7dmFyIGg9QS5sb2NhdGlvbi5ocmVmLGw9TnEoYy5ocmVmKSxuPU5xKGgpO2c9IShsJiZuJiZsLmhrPT09bi5oayYmbC5xdWVyeT09PW4ucXVlcnkmJmwuZnJhZ21lbnQpfWY9Z31pZihmKXt2YXIgcD1XcShhLGIsYy5ocmVmLGQsZSk7dmMudGVzdChwKSYmKGMuaHJlZj1wKX19CmZ1bmN0aW9uIFlxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7aWYoYyl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpfHwiIjtpZihmKXt2YXIgZz0oYy5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKGchPT0iZ2V0Inx8ZCl7aWYoZz09PSJnZXQifHxnPT09InBvc3QiKXt2YXIgaD1XcShhLGIsZixkLGUpO3ZjLnRlc3QoaCkmJihjLmFjdGlvbj1oKX19ZWxzZXtmb3IodmFyIGw9Yy5jaGlsZE5vZGVzfHxbXSxuPSExLHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIHE9bFtwXTtpZihxLm5hbWU9PT1hKXtxLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO249ITA7YnJlYWt9fWlmKCFuKXt2YXIgcj1CLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7ci5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKTtyLnNldEF0dHJpYnV0ZSgibmFtZSIsYSk7ci5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtjLmFwcGVuZENoaWxkKHIpfX19fX0KZnVuY3Rpb24gRXEoYSl7dHJ5e3ZhciBiO2E6e2Zvcih2YXIgYz1hLGQ9MTAwO2MmJmQ+MDspe2lmKGMuaHJlZiYmYy5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe2I9YzticmVhayBhfWM9Yy5wYXJlbnROb2RlO2QtLX1iPW51bGx9dmFyIGU9YjtpZihlKXt2YXIgZj1lLnByb3RvY29sO2YhPT0iaHR0cDoiJiZmIT09Imh0dHBzOiJ8fFhxKGUsZS5ob3N0bmFtZSl9fWNhdGNoKGcpe319ZnVuY3Rpb24gRnEoYSl7dHJ5e3ZhciBiPWEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihiKXt2YXIgYz1MaihSaihiKSwiaG9zdCIpO1hxKGEsYyl9fWNhdGNoKGQpe319ZnVuY3Rpb24gYXIoYSxiLGMsZCl7RHEoKTt2YXIgZT1jPT09ImZyYWdtZW50Ij8yOjE7ZD0hIWQ7SHEoYSxiLGUsZCwhMSk7ZT09PTImJnNiKCJUQUdHSU5HIiwyMyk7ZCYmc2IoIlRBR0dJTkciLDI0KX0KZnVuY3Rpb24gYnIoYSxiKXtEcSgpO0hxKGEsW05qKEEubG9jYXRpb24sImhvc3QiLCEwKV0sYiwhMCwhMCl9ZnVuY3Rpb24gY3IoKXt2YXIgYT1CLmxvY2F0aW9uLmhvc3RuYW1lLGI9S3EuZXhlYyhCLnJlZmVycmVyKTtpZighYilyZXR1cm4hMTt2YXIgYz1iWzJdLGQ9YlsxXSxlPSIiO2lmKGMpe3ZhciBmPWMuc3BsaXQoIi8iKSxnPWZbMV07ZT1nPT09InMiP0tqKGZbMl0pfHwiIjpLaihnKXx8IiJ9ZWxzZSBpZihkKXtpZihkLmluZGV4T2YoInhuLS0iKT09PTApcmV0dXJuITE7ZT1kLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpfXZhciBoPWEucmVwbGFjZShMcSwiIiksbD1lLnJlcGxhY2UoTHEsIiIpO3JldHVybiBoPT09bHx8VGIoaCwiLiIrbCl9ZnVuY3Rpb24gZHIoYSxiKXtyZXR1cm4gYT09PSExPyExOmF8fGJ8fGNyKCl9O3ZhciBlcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPTA7dGhpcy52YWx1ZT1hPT09dm9pZCAwPzA6YX07ZXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXw9MTw8YX07dmFyIGZyPWZ1bmN0aW9uKGEsYil7Yjw9MHx8KGEudmFsdWV8PTE8PGItMSl9O2VyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07ZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWUmPX4oMTw8YSl9O2VyLnByb3RvdHlwZS5jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMudmFsdWU9MH07ZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZT09PWEudmFsdWV9O2Z1bmN0aW9uIGdyKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgVWludDhBcnJheShhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hhckNvZGVBdCgwKX0pKX1jYXRjaChiKXt9fWZ1bmN0aW9uIGhyKGEsYil7dmFyIGM9MCxkPTAsZSxmPWI7ZG97aWYoZj49YS5sZW5ndGgpcmV0dXJuO2U9YVtmKytdO2N8PShlJjEyNyk8PGQ7ZCs9N313aGlsZShlJjEyOCk7cmV0dXJuW2MsZl19O2Z1bmN0aW9uIGlyKCl7dmFyIGE9U3RyaW5nLGI9QS5sb2NhdGlvbi5ob3N0bmFtZSxjPUEubG9jYXRpb24ucGF0aG5hbWUsZD1iPWJjKGIpO2Quc3BsaXQoIi4iKS5sZW5ndGg+MiYmKGQ9ZC5yZXBsYWNlKC9eKHd3d1swLTldKnx3ZWJ8ZnRwfHdhcHxob21lfG18d3xhbXB8bW9iaWxlKVwuLywiIikpO2I9ZDtjPWJjKGMpO3ZhciBlPWMuc3BsaXQoIjsiKVswXTtlPWUucmVwbGFjZSgvXC8oYXJ8c2xwfHdlYnxpbmRleCk/XC8/JC8sIiIpO3JldHVybiBhKG5nKCgiIitiK2UpLnRvTG93ZXJDYXNlKCkpKX07dmFyIGpyPVsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdO2Z1bmN0aW9uIGtyKGEsYil7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMiksMTA7aWYoYj09PW51bGx8fGI9PT12b2lkIDB8fGI9PT0iIilyZXR1cm4gc2IoIlRBR0dJTkciLDMzKSwxMTt2YXIgYz1scighMSk7aWYoYy5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwzNCksYy5lcnJvcjtpZighYy52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDM1KSwyO2MudmFsdWVbYV09Yjt2YXIgZD1tcihjKTtkIT09MCYmc2IoIlRBR0dJTkciLDM2KTtyZXR1cm4gZH0KZnVuY3Rpb24gbnIoYSl7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwyNykse2Vycm9yOjEwfTt2YXIgYj1scigpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMjkpLGI7aWYoIWIudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMCkse2Vycm9yOjJ9O2lmKCEoYSBpbiBiLnZhbHVlKSlyZXR1cm4gc2IoIlRBR0dJTkciLDMxKSx7dmFsdWU6dm9pZCAwLGVycm9yOjE1fTt2YXIgYz1iLnZhbHVlW2FdO3JldHVybiBjPT09bnVsbHx8Yz09PXZvaWQgMHx8Yz09PSIiPyhzYigiVEFHR0lORyIsMjgpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTF9KTp7dmFsdWU6YyxlcnJvcjowfX0KZnVuY3Rpb24gb3IoYSl7aWYoYSl7dmFyIGI9bHIoITEpO2IuZXJyb3IhPT0wP3NiKCJUQUdHSU5HIiwzOCk6Yi52YWx1ZT9hIGluIGIudmFsdWU/KGRlbGV0ZSBiLnZhbHVlW2FdLG1yKGIpIT09MCYmc2IoIlRBR0dJTkciLDQxKSk6c2IoIlRBR0dJTkciLDQwKTpzYigiVEFHR0lORyIsMzkpfWVsc2Ugc2IoIlRBR0dJTkciLDM3KX0KZnVuY3Rpb24gbHIoYSl7YT1hPT09dm9pZCAwPyEwOmE7aWYoIUJsKGpyKSlyZXR1cm4gc2IoIlRBR0dJTkciLDQzKSx7ZXJyb3I6M307dHJ5e2lmKCFBLmxvY2FsU3RvcmFnZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQ0KSx7ZXJyb3I6MX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0NSkse2Vycm9yOjE0fX12YXIgYj17c2NoZW1hOiJnY2wiLHZlcnNpb246MX0sYz12b2lkIDA7dHJ5e2M9QS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX2djbF9scyIpfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDYpLHtlcnJvcjoxM319dHJ5e2lmKGMpe3ZhciBkPUpTT04ucGFyc2UoYyk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0IiliPWQ7ZWxzZSByZXR1cm4gc2IoIlRBR0dJTkciLDQ3KSx7ZXJyb3I6MTJ9fX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19aWYoYi5zY2hlbWEhPT0iZ2NsIilyZXR1cm4gc2IoIlRBR0dJTkciLDQ5KSx7ZXJyb3I6NH07CmlmKGIudmVyc2lvbiE9PTEpcmV0dXJuIHNiKCJUQUdHSU5HIiw1MCkse2Vycm9yOjV9O3RyeXt2YXIgZT1wcihiKTthJiZlJiZtcih7dmFsdWU6YixlcnJvcjowfSl9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fXJldHVybnt2YWx1ZTpiLGVycm9yOjB9fQpmdW5jdGlvbiBwcihhKXtpZighYXx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZigiZXhwaXJlcyJpbiBhJiYidmFsdWUiaW4gYSl7dmFyIGI7dHlwZW9mIGEuZXhwaXJlcz09PSJudW1iZXIiP2I9YS5leHBpcmVzOmI9dHlwZW9mIGEuZXhwaXJlcz09PSJzdHJpbmciP051bWJlcihhLmV4cGlyZXMpOk5hTjtpZihpc05hTihiKXx8IShEYXRlLm5vdygpPD1iKSlyZXR1cm4gYS52YWx1ZT1udWxsLGEuZXJyb3I9OSxzYigiVEFHR0lORyIsNTQpLCEwfWVsc2V7Zm9yKHZhciBjPSExLGQ9bShPYmplY3Qua2V5cyhhKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYz1wcihhW2UudmFsdWVdKXx8YztyZXR1cm4gY31yZXR1cm4hMX0KZnVuY3Rpb24gbXIoYSl7aWYoYS5lcnJvcilyZXR1cm4gYS5lcnJvcjtpZighYS52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQyKSwyO3ZhciBiPWEudmFsdWUsYzt0cnl7Yz1KU09OLnN0cmluZ2lmeShiKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUyKSw2fXRyeXtBLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJfZ2NsX2xzIixjKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUzKSw3fXJldHVybiAwfTt2YXIgcXI9e30scnI9KHFyLmdjbGlkPSEwLHFyLmRjbGlkPSEwLHFyLmdicmFpZD0hMCxxci53YnJhaWQ9ITAscXIpLHNyPS9eXHcrJC8sdHI9L15bXHctXSskLyx1cj17fSx2cj0odXIuYXc9IkZQR0NMQVciLHVyKSx3cj17fSx4cj0od3IuYWc9Il9hZyIsd3IuZ2I9Il9nYiIsd3IuYXc9Il9hdyIsd3IuZGM9Il9kYyIsd3IuZ2Y9Il9nZiIsd3IuaGE9Il9oYSIsd3IuZ3A9Il9ncCIsd3IuZ3M9Il9ncyIsd3IpLHlyPS9eKD86d3d3XC4pP2dvb2dsZSg/OlwuY29tPyk/KD86XC5bYS16XXsyfXQ/KT8kLyx6cj0vXnd3d1wuZ29vZ2xlYWRzZXJ2aWNlc1wuY29tJC87ZnVuY3Rpb24gQXIoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX1mdW5jdGlvbiBCcihhKXtyZXR1cm4hWWYoNSl8fEJsKGEpfWZ1bmN0aW9uIENyKGEsYil7ZnVuY3Rpb24gYygpe3ZhciBkPUJyKGIpO2QmJmEoKTtyZXR1cm4gZH1IbChmdW5jdGlvbigpe2MoKXx8SWwoYyxiKX0sYil9CmZ1bmN0aW9uIERyKGEpe3JldHVybiBFcihhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBGcihhKXtyZXR1cm4gR3IoYSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gR3IoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1IcihhLnByZWZpeCksZD1JcigiZ2IiLGMpLGU9SXIoImFnIixjKTtpZighZXx8IWQpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uemc9bDtyZXR1cm4gbn19LGc9RXIoZCxiKS5tYXAoZigiZ2IiKSksaD1KcihlKS5tYXAoZigiYWciKSk7cmV0dXJuIGcuY29uY2F0KGgpLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gS3IoYSxiLGMsZCxlKXt2YXIgZj1DYihhLGZ1bmN0aW9uKGcpe3JldHVybiBnLmdjbGlkPT09Yn0pO2Y/KGYudGltZXN0YW1wPGMmJihmLnRpbWVzdGFtcD1jLGYub2Q9ZSksZi5sYWJlbHM9THIoZi5sYWJlbHN8fFtdLGR8fFtdKSk6YS5wdXNoKHt2ZXJzaW9uOiIyIixnY2xpZDpiLHRpbWVzdGFtcDpjLGxhYmVsczpkLG9kOmV9KX1mdW5jdGlvbiBNcihhKXtmb3IodmFyIGI9d3EoYSw1KXx8W10sYz1bXSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1mLGg9TnIoZik7aCYmS3IoYyxnLmssaCxnLmJ8fFtdLGYudSl9cmV0dXJuIGMuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBFcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO09yKGMsYSwxKTtpZihiKWlmKFRiKGEsIl9hdyIpKXt2YXIgZD1QcigpO2QmJihkLm9kPXZvaWQgMCxkLm9hPWQub2F8fFsyXSxRcihjLGQpKTtPcihjLCJnY2xfYXciLDIpfWVsc2UgVGIoYSwiX2diIikmJllmKDYpJiZPcihjLCJnY2xfZ2IiLDIpO2Muc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBmLnRpbWVzdGFtcC1lLnRpbWVzdGFtcH0pO3JldHVybiBScihjKX1mdW5jdGlvbiBTcihhLGIpe2Zvcih2YXIgYz1bXSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Yy5pbmNsdWRlcyhmKXx8Yy5wdXNoKGYpfWZvcih2YXIgZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2MuaW5jbHVkZXMobCl8fGMucHVzaChsKX1yZXR1cm4gY30KZnVuY3Rpb24gUXIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZCxlLGY9bShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZihoLmdjbGlkPT09Yi5nY2xpZCl7ZD1oO2JyZWFrfWgucWEmJmIucWEmJmgucWEuZXF1YWxzKGIucWEpJiYoZT1oKX1pZihkKXt2YXIgbCxuLHA9KGw9ZC5xYSkhPW51bGw/bDpuZXcgZXIscT0obj1iLnFhKSE9bnVsbD9uOm5ldyBlcjtwLnZhbHVlfD1xLnZhbHVlO2QucWE9cDtkLnRpbWVzdGFtcDxiLnRpbWVzdGFtcCYmKGQudGltZXN0YW1wPWIudGltZXN0YW1wLGQub2Q9Yi5vZCk7ZC5sYWJlbHM9U3IoZC5sYWJlbHN8fFtdLGIubGFiZWxzfHxbXSk7ZC5vYT1TcihkLm9hfHxbXSxiLm9hfHxbXSl9ZWxzZSBjJiZlP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxiKTphLnB1c2goYil9CmZ1bmN0aW9uIFRyKGEpe2lmKCFhKXJldHVybiBuZXcgZXI7dmFyIGI9bmV3IGVyO2lmKGE9PT0xKXJldHVybiBmcihiLDIpLGZyKGIsMyksYjtmcihiLGEpO3JldHVybiBifQpmdW5jdGlvbiBQcigpe3ZhciBhPW5yKCJnY2xpZCIpO2lmKCFhfHxhLmVycm9yfHwhYS52YWx1ZXx8dHlwZW9mIGEudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYj1hLnZhbHVlO3RyeXtpZighKCJ2YWx1ZSJpbiBiJiZiLnZhbHVlKXx8dHlwZW9mIGIudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYz1iLnZhbHVlLGQ9Yy52YWx1ZTtpZighZHx8IWQubWF0Y2godHIpKXJldHVybiBudWxsO3ZhciBlPWMubGlua0RlY29yYXRpb25Tb3VyY2UsZj1jLmxpbmtEZWNvcmF0aW9uU291cmNlcyxnPW5ldyBlcjt0eXBlb2YgZT09PSJudW1iZXIiP2c9VHIoZSk6dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGcudmFsdWU9Zik7cmV0dXJue3ZlcnNpb246IiIsZ2NsaWQ6ZCx0aW1lc3RhbXA6TnVtYmVyKGMuY3JlYXRpb25UaW1lTXMpfHwwLGxhYmVsczpbXSxxYTpnLG9hOlsyXX19Y2F0Y2goaCl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBVcihhKXt2YXIgYj1ucihhKTtpZihiLmVycm9yIT09MClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGIudmFsdWUucmVkdWNlKGZ1bmN0aW9uKGMsZCl7aWYoIWQudmFsdWV8fHR5cGVvZiBkLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIGM7dmFyIGU9ZC52YWx1ZSxmPWUudmFsdWU7aWYoIWZ8fCFmLm1hdGNoKHRyKSlyZXR1cm4gYzt2YXIgZz1uZXcgZXIsaD1lLmxpbmtEZWNvcmF0aW9uU291cmNlczt0eXBlb2YgaD09PSJudW1iZXIiJiYoZy52YWx1ZT1oKTt2YXIgbDtjLnB1c2goe3ZlcnNpb246IiIsZ2NsaWQ6Zix0aW1lc3RhbXA6TnVtYmVyKGUuY3JlYXRpb25UaW1lTXMpfHwwLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl8fDAsbGFiZWxzOihsPWUubGFiZWxzKSE9bnVsbD9sOltdLHFhOmcsb2E6WzJdfSk7cmV0dXJuIGN9LFtdKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIE9yKGEsYixjKXtpZihjPT09MSlmb3IodmFyIGQ9Y3EoYixCLmNvb2tpZSx2b2lkIDAsQXIoKSksZT1tKGQpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1WcihmLnZhbHVlLnNwbGl0KCIuIikpLGg9Zy5sZW5ndGg9PT0wP251bGw6e3ZlcnNpb246Z1swXSxnY2xpZDpnWzJdLHRpbWVzdGFtcDooTnVtYmVyKGdbMV0pfHwwKSoxRTMsbGFiZWxzOmcuc2xpY2UoMyl9O2ghPW51bGwmJihoLm9kPXZvaWQgMCxoLnFhPW5ldyBlcixoLm9hPVtjXSxRcihhLGgpKX1lbHNlIGlmKGM9PT0yKXt2YXIgbD1VcihiKTtpZihsKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3Eub2Q9dm9pZCAwO3Eub2E9cS5vYTtRcihhLHEpfX19CmZ1bmN0aW9uIFpyKGEpe3ZhciBiPUVyKGEpLGM9VXIoImdjbF9kYyIpO2lmKGMpZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Zi5vZD12b2lkIDA7Zi5vYT1mLm9hfHxbMl07UXIoYixmKX1iLnNvcnQoZnVuY3Rpb24oZyxoKXt2YXIgbD1nLm9hJiZnLm9hLmluY2x1ZGVzKDEpLG49aC5vYSYmaC5vYS5pbmNsdWRlcygxKTtyZXR1cm4gbCYmIW4/LTE6IWwmJm4/MTpoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBScihiKX1mdW5jdGlvbiBKcihhKXtyZXR1cm4gTXIoYSkubWFwKGZ1bmN0aW9uKGIpe2IucWE9bmV3IGVyO2Iub2E9WzFdO3JldHVybiBifSl9CmZ1bmN0aW9uIExyKGEsYil7aWYoIWEubGVuZ3RoKXJldHVybiBiO2lmKCFiLmxlbmd0aClyZXR1cm4gYTt2YXIgYz17fTtyZXR1cm4gYS5jb25jYXQoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBjLmhhc093blByb3BlcnR5KGQpPyExOmNbZF09ITB9KX1mdW5jdGlvbiBIcihhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaChzcik/YToiX2djbCJ9ZnVuY3Rpb24gJHIoYSxiKXtpZihhKXt2YXIgYz17dmFsdWU6YSxxYTpuZXcgZXJ9O2ZyKGMucWEsYik7cmV0dXJuIGN9fQpmdW5jdGlvbiBhcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpO2lmKGImJighZnx8IWUpKXt2YXIgZz1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGcsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGcsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmKGU9PT12b2lkIDB8fGU9PT0iYXcifHxlPT09ImF3LmRzInx8WWYoOCkmJmU9PT0iYXcuZHYiKT9bZl06W119CmZ1bmN0aW9uIGJzKGEsYil7dmFyIGM9UmooYSksZD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGU9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJ3YnJhaWQiKTtmPSRiKGYpO3ZhciBnPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdicmFpZCIpLGg9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGw9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKTtpZihiJiYhKGQmJmUmJmYmJmcpKXt2YXIgbj1jLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Q9ZHx8SWoobiwiZ2NsaWQiLCExKTtlPWV8fElqKG4sImdjbHNyYyIsITEpO2Y9Znx8SWoobiwid2JyYWlkIiwhMSk7Zz1nfHxJaihuLCJnYnJhaWQiLCExKTtoPWh8fElqKG4sImdhZF9zb3VyY2UiLCExKX1yZXR1cm4gY3MoZCxlLGwsZixnLGgpfQpmdW5jdGlvbiBkcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpLGc9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKSxjPzQ6Mik7aWYoYiYmKCFlfHwhZikpe3ZhciBoPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooaCwiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooaCwiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiZlJiYoZT09PSJhdy5kcyJ8fGU9PT0iYXcuZHYifHxlPT09IjNwLmRzInx8ZT09PSJkcyIpP1tmXTpnP1tnXTpbXX1mdW5jdGlvbiBlcygpe3JldHVybiBicyhBLmxvY2F0aW9uLmhyZWYsITApfQpmdW5jdGlvbiBjcyhhLGIsYyxkLGUsZil7dmFyIGc9e30saD1mdW5jdGlvbihsLG4pe2dbbl18fChnW25dPVtdKTtnW25dLnB1c2gobCl9O2cuZ2NsaWQ9YTtnLmdjbHNyYz1iO2cuZGNsaWQ9YztpZihhIT09dm9pZCAwJiZhLm1hdGNoKHRyKSlzd2l0Y2goYil7Y2FzZSB2b2lkIDA6aChhLCJhdyIpO2JyZWFrO2Nhc2UgImF3LmRzIjpoKGEsImF3Iik7aChhLCJkYyIpO2JyZWFrO2Nhc2UgImF3LmR2IjpZZig4KSYmKGgoYSwiYXciKSxoKGEsImRjIikpO2JyZWFrO2Nhc2UgImRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiM3AuZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICJnZiI6aChhLCJnZiIpO2JyZWFrO2Nhc2UgImhhIjpoKGEsImhhIil9YyYmaChjLCJkYyIpO2QhPT12b2lkIDAmJnRyLnRlc3QoZCkmJihnLndicmFpZD1kLGgoZCwiZ2IiKSk7ZSE9PXZvaWQgMCYmdHIudGVzdChlKSYmKGcuZ2JyYWlkPWUsaChlLCJhZyIpKTtmIT09dm9pZCAwJiZ0ci50ZXN0KGYpJiYoZy5nYWRfc291cmNlPQpmLGgoZiwiZ3MiKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZnMoKXtmb3IodmFyIGE9ZXMoKSxiPSEwLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpaWYoYVtkLnZhbHVlXSE9PXZvaWQgMCl7Yj0hMTticmVha31iJiYoYT1icyhBLmRvY3VtZW50LnJlZmVycmVyLCExKSxhLmdhZF9zb3VyY2U9dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBncyhhKXt2YXIgYj1mcygpO2hzKGIsITEsYSl9CmZ1bmN0aW9uIGlzKGEpe3ZhciBiPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7Yi5sZW5ndGh8fChiPWFzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTthPWF8fHt9O2pzKGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1iWzBdLGQ9TmIoKSxlPXVxKGEsZCwhMCksZj1BcigpLGc9ZnVuY3Rpb24oKXtCcihmKSYmZS5leHBpcmVzIT09dm9pZCAwJiZrcigiZ2NsaWQiLHt2YWx1ZTp7dmFsdWU6Yy52YWx1ZSxjcmVhdGlvblRpbWVNczpkLGxpbmtEZWNvcmF0aW9uU291cmNlczpjLnFhLmdldCgpfSxleHBpcmVzOk51bWJlcihlLmV4cGlyZXMpfSl9O0hsKGZ1bmN0aW9uKCl7ZygpO0JyKGYpfHxJbChnLGYpfSxmKX19CmZ1bmN0aW9uIGpzKGEpe3ZhciBiPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjtpZih5ci50ZXN0KGIpfHx6ci50ZXN0KGIpfHxrcygpKXt2YXIgYzthOntmb3IodmFyIGQ9UmooQS5sb2NhdGlvbi5ocmVmKSxlPUpqKExqKGQsInF1ZXJ5IikpLGY9bShPYmplY3Qua2V5cyhlKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoIXJyW2hdKXt2YXIgbD1lW2hdWzBdfHwiIixuO2lmKCFsfHxsLmxlbmd0aDw1MHx8bC5sZW5ndGg+MjAwKW49ITE7ZWxzZXt2YXIgcD1ncihsKSxxO2lmKHApYzp7dmFyIHI9cDtpZihyJiZyLmxlbmd0aCE9PTApe3ZhciB0PTA7dHJ5e2Zvcih2YXIgdT0xMDt0PHIubGVuZ3RoJiYhKHUtLTw9MCk7KXt2YXIgdj1ocihyLHQpO2lmKHY9PT12b2lkIDApYnJlYWs7dmFyIHg9bSh2KSx5PXgubmV4dCgpLnZhbHVlLHo9eC5uZXh0KCkudmFsdWUsQz15LEQ9eixJPUMmNztpZihDPj4zPT09MTYzODIpe2lmKEkhPT0KMClicmVhazt2YXIgRz1ocihyLEQpO2lmKEc9PT12b2lkIDApYnJlYWs7cT1tKEcpLm5leHQoKS52YWx1ZT09PTE7YnJlYWsgY312YXIgTjtkOnt2YXIgUz12b2lkIDAsVz1yLGVhPUQ7c3dpdGNoKEkpe2Nhc2UgMDpOPShTPWhyKFcsZWEpKT09bnVsbD92b2lkIDA6U1sxXTticmVhayBkO2Nhc2UgMTpOPWVhKzg7YnJlYWsgZDtjYXNlIDI6dmFyIGphPWhyKFcsZWEpO2lmKGphPT09dm9pZCAwKWJyZWFrO3ZhciBmYT1tKGphKSxzYT1mYS5uZXh0KCkudmFsdWU7Tj1mYS5uZXh0KCkudmFsdWUrc2E7YnJlYWsgZDtjYXNlIDU6Tj1lYSs0O2JyZWFrIGR9Tj12b2lkIDB9aWYoTj09PXZvaWQgMHx8Tj5yLmxlbmd0aHx8Tjw9dClicmVhazt0PU59fWNhdGNoKG1hKXt9fXE9ITF9ZWxzZSBxPSExO249cX1pZihuKXtjPWw7YnJlYWsgYX19fWM9dm9pZCAwfXZhciBkYT1jO2RhJiZscygiZ2NsX2F3IixkYSw3LGEpfX0KZnVuY3Rpb24gbHMoYSxiLGMsZCl7bXMoYSxbe3ZlcnNpb246IiIsZ2NsaWQ6Yix0aW1lc3RhbXA6TmIoKSxxYTpUcihjKX1dLGQpfQpmdW5jdGlvbiBtcyhhLGIsYyl7Yz1jfHx7fTt2YXIgZD1BcigpLGU9ZnVuY3Rpb24oKXtpZihCcihkKSYmYi5sZW5ndGg+MCl7dmFyIGY9VXIoYSl8fFtdO2IuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaD11cShjLGcudGltZXN0YW1wLCEwKTtoLmV4cGlyZXMhPT12b2lkIDAmJlFyKGYse3ZlcnNpb246IiIsZ2NsaWQ6Zy5nY2xpZCx0aW1lc3RhbXA6Zy50aW1lc3RhbXAsZXhwaXJlczpOdW1iZXIoaC5leHBpcmVzKSxxYTpnLnFhLGxhYmVsczpnLmxhYmVsc30sITApfSk7Zi5sZW5ndGgmJmtyKGEsZi5tYXAoZnVuY3Rpb24oZyl7dmFyIGg9e3ZhbHVlOmcuZ2NsaWQsY3JlYXRpb25UaW1lTXM6Zy50aW1lc3RhbXAsbGlua0RlY29yYXRpb25Tb3VyY2VzOmcucWE/Zy5xYS5nZXQoKTowfSxsO2lmKChsPWcubGFiZWxzKT09bnVsbD8wOmwubGVuZ3RoKWgubGFiZWxzPWcubGFiZWxzO3JldHVybnt2YWx1ZTpoLGV4cGlyZXM6TnVtYmVyKGcuZXhwaXJlcyl9fSkpfX07SGwoZnVuY3Rpb24oKXtCcihkKT8KZSgpOklsKGUsZCl9LGQpfQpmdW5jdGlvbiBocyhhLGIsYyxkLGUpe2M9Y3x8e307ZT1lfHxbXTt2YXIgZj1IcihjLnByZWZpeCksZz1kfHxOYigpLGg9TWF0aC5yb3VuZChnLzFFMyksbD1BcigpLG49ITEscD0hMSxxPVlmKDkpLHI9ZnVuY3Rpb24oKXtpZihCcihsKSl7dmFyIHQ9dXEoYyxnLCEwKTt0Lk1jPWw7Zm9yKHZhciB1PWZ1bmN0aW9uKFcsZWEpe3ZhciBqYT1JcihXLGYpO2phJiYob3EoamEsZWEsdCksVyE9PSJnYiImJihuPSEwKSl9LHY9ZnVuY3Rpb24oVyl7dmFyIGVhPVsiR0NMIixoLFddO2UubGVuZ3RoPjAmJmVhLnB1c2goZS5qb2luKCIuIikpO3JldHVybiBlYS5qb2luKCIuIil9LHg9bShbImF3IiwiZGMiLCJnZiIsImhhIiwiZ3AiXSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7YVt6XSYmdSh6LHYoYVt6XVswXSkpfWlmKCghbnx8cSkmJmEuZ2Ipe3ZhciBDPWEuZ2JbMF0sRD1JcigiZ2IiLGYpOyFiJiZFcihEKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09QyYmClcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pfHx1KCJnYiIsdihDKSl9fWlmKCFwJiZhLmdicmFpZCYmQnIoImFkX3N0b3JhZ2UiKSYmKHA9ITAsIW58fHEpKXt2YXIgST1hLmdicmFpZCxHPUlyKCJhZyIsZik7aWYoYnx8IUpyKEcpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1JJiZXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KSl7dmFyIE49e30sUz0oTi5rPUksTi5pPSIiK2gsTi5iPWUsTik7QXEoRyxTLDUsYyxnKX19bnMoYSxmLGcsYyl9O0hsKGZ1bmN0aW9uKCl7cigpO0JyKGwpfHxJbChyLGwpfSxsKX0KZnVuY3Rpb24gbnMoYSxiLGMsZCl7aWYoYS5nYWRfc291cmNlIT09dm9pZCAwJiZCcigiYWRfc3RvcmFnZSIpKXt2YXIgZT1xZCgpO2lmKGUhPT0iciImJmUhPT0iaCIpe3ZhciBmPWEuZ2FkX3NvdXJjZSxnPUlyKCJncyIsYik7aWYoZyl7dmFyIGg9TWF0aC5mbG9vcigoTmIoKS0ocGQoKXx8MCkpLzFFMyksbCxuPWlyKCkscD17fTtsPShwLms9ZixwLmk9IiIraCxwLnU9bixwKTtBcShnLGwsNSxkLGMpfX19fWZ1bmN0aW9uIG9zKGEsYixjKXtmb3IodmFyIGQ9d3EoYixjKSxlPTA7ZTxkLmxlbmd0aDsrK2UpaWYoTnIoZFtlXSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gcHMoYSl7dmFyIGI9cXMsYz1ycyhhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWNbZ107aWYoaCl7dmFyIGw9TWF0aC5taW4oc3MoaCksTmIoKSksbj11cShhLGwsITApO24uTWM9QXIoKTt2YXIgcD1JcihnLGQpO3AmJm9xKHAsaCxuKX19dmFyIHE9VXEoITApO2hzKGNzKHEuZ2NsaWQscS5nY2xzcmMpLCExLGEpfSxBcigpKX0KZnVuY3Rpb24gcnMoYSl7dmFyIGI9VXEoITApLGM9SHIoYSksZD17fSxlO2ZvcihlIGluIHhyKWlmKHhyLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1lLGc9SXIoZixjKTtpZihnIT09dm9pZCAwKXt2YXIgaD1iW2ddO2lmKGgpe3ZhciBsPXNzKGgpLG47YTp7Zm9yKHZhciBwPU1hdGgubWluKGwsTmIoKSl8fE5iKCkscT1jcShnLEIuY29va2llLHZvaWQgMCxBcigpKSxyPTA7cjxxLmxlbmd0aDsrK3IpaWYoc3MocVtyXSk+cCl7bj0hMDticmVhayBhfW49ITF9bnx8KGRbZl09aCl9fX1yZXR1cm4gZH0KZnVuY3Rpb24gdHMoYSl7dmFyIGI9WyJhZyJdLGM9VXEoITApLGQ9SHIoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoZil7dmFyIGc9Y1tmXTtpZihnKXt2YXIgaD0kcChnLDUpO2lmKGgpe3ZhciBsPU5yKGgpO2x8fChsPU5iKCkpO2lmKG9zKGwsZiw1KSlicmVhaztoLmk9IiIrTWF0aC5yb3VuZChsLzFFMyk7QXEoZixoLDUsYSxsKX19fX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiBJcihhLGIpe3ZhciBjPXhyW2FdO2lmKGMhPT12b2lkIDApcmV0dXJuIGIrY31mdW5jdGlvbiBzcyhhKXtyZXR1cm4gVnIoYS5zcGxpdCgiLiIpKS5sZW5ndGghPT0wPyhOdW1iZXIoYS5zcGxpdCgiLiIpWzFdKXx8MCkqMUUzOjB9ZnVuY3Rpb24gTnIoYSl7cmV0dXJuIGE/KE51bWJlcihhLmkpfHwwKSoxRTM6MH0KZnVuY3Rpb24gVnIoYSl7cmV0dXJuIGEubGVuZ3RoPDN8fGFbMF0hPT0iR0NMIiYmYVswXSE9PSIxInx8IS9eXGQrJC8udGVzdChhWzFdKXx8IXRyLnRlc3QoYVsyXSk/W106YX1mdW5jdGlvbiB1cyhhLGIsYyxkKXt2YXIgZT1xcztpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYobil7dmFyIHA9Y3EobixCLmNvb2tpZSx2b2lkIDAsQXIoKSk7cC5sZW5ndGgmJihoW25dPXAuc29ydCgpW3AubGVuZ3RoLTFdKX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gdnMoYSxiLGMpe3ZhciBkPXFzO2lmKFlmKDEzKSYmQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPXt9LGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIGg9dnJbZFtnXV07aWYoaCl7dmFyIGw9Y3EoaCxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aWYobC5sZW5ndGgpe2Zvcih2YXIgbj12b2lkIDAscD0wLHE9bShsKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PSRwKHQsNCk7aWYodSYmKHUubT09PSIxInx8WWYoMTYpKSl7dmFyIHY9TnIodSk7dj49cCYmKHA9dixuPXQpfX1uJiYoZltoXT1uKX19fXJldHVybiBmfTtDcihmdW5jdGlvbigpe2FyKGUsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHdzKGEsYixjLGQpe2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1bImFnIl0sZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZighbilyZXR1cm57fTt2YXIgcD13cShuLDUpO2lmKHAubGVuZ3RoKXt2YXIgcT1wLnNvcnQoZnVuY3Rpb24ocix0KXtyZXR1cm4gTnIodCktTnIocil9KVswXTtoW25dPWFxKHEsNSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxbImFkX3N0b3JhZ2UiXSl9fWZ1bmN0aW9uIFJyKGEpe3JldHVybiBhLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHIudGVzdChiLmdjbGlkKX0pfQpmdW5jdGlvbiB4cyhhLGIpe2lmKFNwKEEpKXtmb3IodmFyIGM9SHIoYi5wcmVmaXgpLGQ9e30sZT0wO2U8YS5sZW5ndGg7ZSsrKXhyW2FbZV1dJiYoZFthW2VdXT14clthW2VdXSk7Q3IoZnVuY3Rpb24oKXtHYihkLGZ1bmN0aW9uKGYsZyl7dmFyIGg9Y3EoYytnLEIuY29va2llLHZvaWQgMCxBcigpKTtoLnNvcnQoZnVuY3Rpb24odCx1KXtyZXR1cm4gc3ModSktc3ModCl9KTtpZihoLmxlbmd0aCl7dmFyIGw9aFswXSxuPXNzKGwpLHA9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKS5zbGljZSgzKTpbXSxxPXt9LHI7cj1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpWzJdOnZvaWQgMDtxW2ZdPVtyXTtocyhxLCEwLGIsbixwKX19KX0sQXIoKSl9fQpmdW5jdGlvbiB5cyhhKXt2YXIgYj1bImFnIl0sYz1bImdicmFpZCJdO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoIWYpYnJlYWs7dmFyIGc9d3EoZiw1KTtpZihnLmxlbmd0aCl7dmFyIGg9Zy5zb3J0KGZ1bmN0aW9uKHEscil7cmV0dXJuIE5yKHIpLU5yKHEpfSlbMF0sbD1OcihoKSxuPWguYixwPXt9O3BbY1tlXV09aC5rO2hzKHAsITAsYSxsLG4pfX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiB6cyhhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWlmKGFbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIEFzKGEpe2Z1bmN0aW9uIGIoaCxsLG4pe24mJihoW2xdPW4pfWlmKEVsKCkpe3ZhciBjPWVzKCksZDthLmluY2x1ZGVzKCJnYWRfc291cmNlIikmJihkPWMuZ2FkX3NvdXJjZSE9PXZvaWQgMD9jLmdhZF9zb3VyY2U6VXEoITEpLl9ncyk7aWYoenMoYyxhKXx8ZCl7dmFyIGU9e307YihlLCJnY2xpZCIsYy5nY2xpZCk7YihlLCJkY2xpZCIsYy5kY2xpZCk7YihlLCJnY2xzcmMiLGMuZ2Nsc3JjKTtiKGUsIndicmFpZCIsYy53YnJhaWQpO2IoZSwiZ2JyYWlkIixjLmdicmFpZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZX0sMyk7dmFyIGY9e30sZz0oZi5fdXA9IjEiLGYpO2IoZywiX2dzIixkKTticihmdW5jdGlvbigpe3JldHVybiBnfSwxKX19fWZ1bmN0aW9uIGtzKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gTGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpfQpmdW5jdGlvbiBCcyhhKXtpZighWWYoMSkpcmV0dXJuIG51bGw7dmFyIGI9VXEoITApLmdhZF9zb3VyY2U7aWYoYiE9bnVsbClyZXR1cm4gQS5sb2NhdGlvbi5oYXNoPSIiLGI7aWYoWWYoMikpe2I9a3MoKTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPWVzKCk7aWYoenMoYyxhKSlyZXR1cm4iMCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3MoYSl7dmFyIGI9QnMoYSk7YiE9bnVsbCYmYnIoZnVuY3Rpb24oKXt2YXIgYz17fTtyZXR1cm4gYy5nYWRfc291cmNlPWIsY30sNCl9CmZ1bmN0aW9uIERzKGEsYixjKXt2YXIgZD1bXTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGQ7Zm9yKHZhciBlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXSxoPWcuemc/Zy56ZzoiZ2NsIjtpZigoZy5sYWJlbHN8fFtdKS5pbmRleE9mKGMpPT09LTEpe2EucHVzaCgwKTt2YXIgbD0hMSxuPXZvaWQgMDtpZigobj1nLm9hKT09bnVsbD8wOm4uaW5jbHVkZXMoMikpbD0hMDt2YXIgcD12b2lkIDA7KChwPWcub2EpPT1udWxsPzA6cC5pbmNsdWRlcygxKSkmJiFlW2hdJiYobD0hMCxlW2hdPSEwKTtsJiZkLnB1c2goZyl9ZWxzZXthLnB1c2goMSk7dmFyIHE9dm9pZCAwO2lmKChxPWcub2EpPT1udWxsPzA6cS5pbmNsdWRlcygxKSllW2hdPSEwfX1yZXR1cm4gZH0KZnVuY3Rpb24gRXMoYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZj1bXTtjPWN8fHt9O2lmKCFCcihBcigpKSlyZXR1cm4gZjt2YXIgZz1FcihhLGUpLGg9RHMoZixnLGIpO2lmKGgubGVuZ3RoJiYhZCl7Zm9yKHZhciBsPVtdLG49ITEscD1tKGgpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlLHQ9cix1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej0odC5sYWJlbHN8fFtdKS5jb25jYXQoW2JdKSxDPXZvaWQgMDtpZigoKEM9eSk9PW51bGw/MDpDLmluY2x1ZGVzKDEpKSYmIW4pe3ZhciBEPVt1LE1hdGgucm91bmQoeC8xRTMpLHZdLmNvbmNhdCh6KS5qb2luKCIuIiksST11cShjLHgsITApO0kuTWM9QXIoKTtvcShhLEQsSSk7bj0hMH12YXIgRz12b2lkIDA7ZSYmKChHPXkpPT1udWxsPzA6Ry5pbmNsdWRlcygyKSkmJmwucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHIse2xhYmVsczp6fSkpfWwubGVuZ3RoJiYKbXMoImdjbF9nYiIsbCxjKX1yZXR1cm4gZn0KZnVuY3Rpb24gRnMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBkPVtdO2I9Ynx8e307dmFyIGU9R3IoYixjKSxmPURzKGQsZSxhKTtpZihmLmxlbmd0aCl7Zm9yKHZhciBnPVtdLGg9e30sbD1tKGYpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlLHE9SHIoYi5wcmVmaXgpLHI9SXIocC56ZyxxKTtpZighcilyZXR1cm4gZDt2YXIgdD1wLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PU1hdGgucm91bmQoeC8xRTMpLEM9THIodC5sYWJlbHN8fFtdLFthXSksRD12b2lkIDA7aWYoKEQ9eSk9PW51bGw/MDpELmluY2x1ZGVzKDEpKWlmKHAuemc9PT0iYWciJiYhaC5hZyl7dmFyIEk9e30sRz0oSS5rPXYsSS5pPSIiK3osSS5iPUMsSSk7QXEocixHLDUsYix4KTtoLmFnPSEwfWVsc2UgaWYocC56Zz09PSJnYiImJiFoLmdiKXt2YXIgTj1bdSx6LHZdLmNvbmNhdChDKS5qb2luKCIuIiksUz11cShiLHgsITApO1MuTWM9CkFyKCk7b3EocixOLFMpO2guZ2I9ITB9dmFyIFc9dm9pZCAwO2MmJigoVz15KT09bnVsbD8wOlcuaW5jbHVkZXMoMikpJiZnLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxwLHtsYWJlbHM6Q30pKX1nLmxlbmd0aCYmbXMoImdjbF9nYiIsZyxiKX1yZXR1cm4gZH1mdW5jdGlvbiBHcyhhLGIpe3ZhciBjPUhyKGIpLGQ9SXIoYSxjKTtpZighZClyZXR1cm4gMDt2YXIgZTtlPWE9PT0iYWciP0pyKGQpOkVyKGQpO2Zvcih2YXIgZj0wLGc9MDtnPGUubGVuZ3RoO2crKylmPU1hdGgubWF4KGYsZVtnXS50aW1lc3RhbXApO3JldHVybiBmfWZ1bmN0aW9uIEhzKGEpe2Zvcih2YXIgYj0wLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZm9yKHZhciBlPWFbZC52YWx1ZV0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWI9TWF0aC5tYXgoYixOdW1iZXIoZVtmXS50aW1lc3RhbXApKTtyZXR1cm4gYn0KZnVuY3Rpb24gSXMoYSl7dmFyIGI9TWF0aC5tYXgoR3MoImF3IixhKSxIcyhCcihBcigpKT9ScCgpOnt9KSksYz1NYXRoLm1heChHcygiZ2IiLGEpLEhzKEJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30pKTtjPU1hdGgubWF4KGMsR3MoImFnIixhKSk7cmV0dXJuIGM+Yn07dmFyIEpzPVJlZ0V4cCgiXlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSooPzolM0JVQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKSokIiksS3M9L15+P1tcdy1dKyg/Olwufj9bXHctXSspKiQvLExzPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLyxNcz0vO2dhYz0oW147P10rKS8sTnM9LztnYWNnYj0oW147P10rKS87CmZ1bmN0aW9uIE9zKGEsYil7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgYz1CLmxvY2F0aW9uLmhyZWYubWF0Y2goYik7cmV0dXJuIGMmJmMubGVuZ3RoPT09MiYmY1sxXS5tYXRjaChKcyk/S2ooY1sxXSl8fCIiOiIifWZvcih2YXIgZD1bXSxlPW0oT2JqZWN0LmtleXMoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZSxoPVtdLGw9YVtnXSxuPTA7bjxsLmxlbmd0aDtuKyspaC5wdXNoKGxbbl0uZ2NsaWQpO2QucHVzaChnKyI6IitoLmpvaW4oIiwiKSl9cmV0dXJuIGQubGVuZ3RoPjA/ZC5qb2luKCI7Iik6IiJ9CmZ1bmN0aW9uIFBzKGEsYixjKXtmb3IodmFyIGQ9QnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSxlPVtdLGY9ITEsZz1tKE9iamVjdC5rZXlzKGQpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPUVzKCJfZ2FjX2diXyIrbCxhLGIsYyk7Zj1mfHxuLmxlbmd0aCE9PTAmJm4uc29tZShmdW5jdGlvbihwKXtyZXR1cm4gcD09PTF9KTtlLnB1c2gobCsiOiIrbi5qb2luKCIsIikpfXJldHVybntScjpmP2Uuam9pbigiOyIpOiIiLFFyOk9zKGQsTnMpfX1mdW5jdGlvbiBRcyhhKXt2YXIgYj1CLmxvY2F0aW9uLmhyZWYubWF0Y2gobmV3IFJlZ0V4cCgiOyIrYSsiPShbXjs/XSspIikpO3JldHVybiBiJiZiLmxlbmd0aD09PTImJmJbMV0ubWF0Y2goS3MpP2JbMV06dm9pZCAwfQpmdW5jdGlvbiBScyhhKXt2YXIgYj17fSxjLGQsZTtMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkmJihjPVFzKCJnY2xncyIpLGQ9UXMoImdjbHN0IiksZT1RcygiZ2NsbHAiKSk7aWYoYyYmZCYmZSliLkVnPWMsYi5XaD1kLGIuVWg9ZTtlbHNle3ZhciBmPU5iKCksZz1NcigoYXx8Il9nY2wiKSsiX2dzIiksaD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5nY2xpZH0pLGw9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGYtcC50aW1lc3RhbXB9KSxuPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm9kfSk7aC5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmbi5sZW5ndGg+MCYmKGIuRWc9aC5qb2luKCIuIiksYi5XaD1sLmpvaW4oIi4iKSxiLlVoPW4uam9pbigiLiIpKX1yZXR1cm4gYn0KZnVuY3Rpb24gU3MoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1iP2Iuc3BsaXQoIi4iKTpbXSxlPWQubGVuZ3RoPT09Yy5sZW5ndGg/ZDp2b2lkIDA7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGYsZyl7dmFyIGg9e2djbGlkOmZ9O2lmKGUpe3ZhciBsPWVbZ10uc3BsaXQoIl8iKTtpZihsLmxlbmd0aD09PTIpe2gucWE9bmV3IGVyKE51bWJlcihsWzBdKSk7dmFyIG47dmFyIHA9TnVtYmVyKGxbMV0pO2lmKHA9PT0wKW49WzBdO2Vsc2V7dmFyIHE9W107cCYxJiZxLnB1c2goMSk7cCYyJiZxLnB1c2goMik7cCY0JiZxLnB1c2goMyk7cCY4JiZxLnB1c2goNCk7cCYxNiYmcS5wdXNoKDUpO249cX1oLm9hPW59fXJldHVybiBofSl9CmZ1bmN0aW9uIFRzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9UXMoYyk7aWYoZSl7aWYoWWYoMTcpKXt2YXIgZj1RcyhjKyJfc3JjIik7cmV0dXJuIFNzKGUsZil9aWYoZCl7dmFyIGc9bmV3IGVyO2ZyKGcsMik7ZnIoZywzKTtyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpnLG9hOlsxXX19KX1yZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpuZXcgZXIsb2E6WzFdfX0pfX1lbHNle2lmKGI9PT0iZ2NsaWQiKXtmb3IodmFyIGg9RXIoKGF8fCJfZ2NsIikrIl9hdyIsZCksbD1OdW1iZXIoWGZbNF09PT12b2lkIDA/MDpYZls0XSksbj1tKFVzKCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3EudGltZXN0YW1wPmwmJlFyKGgscSl9cmV0dXJuIGh9aWYoYj09PSJ3YnJhaWQiKXJldHVybiBFcigoYXx8CiJfZ2NsIikrIl9nYiIsZCk7aWYoYj09PSJicmFpZHMiKXJldHVybiBHcih7cHJlZml4OmF9LGQpfXJldHVybltdfWZ1bmN0aW9uIFVzKCl7cmV0dXJuKHdxKHZyLmF3LDQpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm09PT0iMSJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJue2djbGlkOmEuayx0aW1lc3RhbXA6TnVtYmVyKGEuaSksdmVyc2lvbjoiIixvYTpbNV19fSl9ZnVuY3Rpb24gVnMoYSl7Zm9yKHZhciBiPTAsYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2U+MCYmKGJ8PTE8PGUtMSl9cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBXcyhhKXtyZXR1cm4gTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpPyEoUXMoImdjbGF3Iil8fFFzKCJnYWMiKSk6SXMoYSl9CmZ1bmN0aW9uIFhzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlO2U9Yz9GcyhhLGIsZCk6RXMoKGImJmIucHJlZml4fHwiX2djbCIpKyJfZ2IiLGEsYix2b2lkIDAsZCk7cmV0dXJuIGUubGVuZ3RoPT09MHx8ZS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZj09PTB9KT8iIjplLmpvaW4oIi4iKX07CnZhciBZcz1mdW5jdGlvbihhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1raigiYWRzX3BhZ2V2aWV3IixmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoY1thXSlyZXR1cm4hMTtifHwoY1thXT0hMCk7cmV0dXJuITB9LFpzPWZ1bmN0aW9uKGEpe3JldHVybiBTaihhLCJnY2xpZCBkY2xpZCBnYnJhaWQgd2JyYWlkIGdjbGF3IGdjbGRjIGdjbGhhIGdjbGdmIGdjbGdiIF9nbCIuc3BsaXQoIiAiKSwiMCIpfSxhdD1mdW5jdGlvbigpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZiksYj12b2lkIDAsYz12b2lkIDAsZD1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksZT1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfY2FtcGFpZ25pZCIpLGYsZz1hLmhhc2gucmVwbGFjZSgiIyIsIiIpLm1hdGNoKCRzKTtmPWc/Z1sxXTp2b2lkIDA7ZCYmZj8oYj1kLGM9MSk6ZD8oYj1kLGM9Mik6ZiYmKGI9ZixjPTMpO3JldHVybntEZzpiLFNyOmMsVGg6ZX19LGJ0PWZ1bmN0aW9uKGEpe3ZhciBiPQpPcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmO3JldHVybiBhKGIpfSxjdD1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZD1ScihkKTtmb3IodmFyIGU9W10sZj0wO2Y8ZC5sZW5ndGg7ZisrKWUucHVzaChkW2ZdLmdjbGlkKTtlLmxlbmd0aCYmYi5wdXNoKGMrIjoiK2Uuam9pbigiLCIpKX0pO3JldHVybiBiLmpvaW4oIjsiKX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWR0KGEpO2lmKGQpcmV0dXJuIGQ7dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnPVtdO2E9PT0iYXciP2c9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTphPT09ImRjIiYmKGc9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKSk7aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9be3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6IjAifV06Zy5tYXAoZnVuY3Rpb24obCl7cmV0dXJue3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsCmdjbGlkOmwudmFsdWUscWE6bC5xYSxvYTpbMV19fSl9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9hPT09ImF3Ij9FcihoLE0oNTYyKSk6WnIoaCk6W119LGR0PWZ1bmN0aW9uKGEpe3ZhciBiPVRqKCJnY2wiK2EpLGM9YT09PSJkYyJ8fGE9PT0iYXciP1RqKCJnY2wiK2ErIl9zcmMiKTp2b2lkIDA7aWYoYilyZXR1cm4gU3MoYixjKX0sZnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PT0iYXcifHxhPT09ImRjInx8YT09PSJnYiIpe3ZhciBkPVRqKCJnY2wiK2EpO2lmKGQpcmV0dXJuIGQuc3BsaXQoIi4iKX12YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc7Zz1lcygpW2FdfHxbXTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1siMCJdOmd9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9EcihoKTpbXX0sZ3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFSKGEsYil8fCFSKGEsYykpcmV0dXJuIiI7dmFyIGQ9UihhLGIpLnNwbGl0KCIuIiksZT1SKGEsYykuc3BsaXQoIi4iKTtyZXR1cm4gZC5sZW5ndGgmJgplLmxlbmd0aCYmZC5sZW5ndGg9PT1lLmxlbmd0aCYmZFswXSYmZVswXT9kLm1hcChmdW5jdGlvbihmLGcpe3JldHVybiBmKyJfIitlW2ddfSkuam9pbigiLiIpOiIifSwkcz0vXmdhZF9zb3VyY2VbXz1dKFxkKykkLztmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9Owp2YXIgZnU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1SKGEsZSksZz1RKGEsSC5KLlllKTtNKDU4OSkmJmcmJihlPT09Ri5ELnphfHxlPT09Ri5ELlVhfHxlPT09Ri5ELlBlKSYmdHlwZW9mIGY9PT0ic3RyaW5nIiYmKGY9WnMoZikpO3ZhciBoPW9wKGUsZik7aCYmKCFnfHxlIT09Ri5ELkRkJiZlIT09Ri5ELktkJiZlIT09Ri5ELkVlJiZlIT09Ri5ELkJmfHwoaC52YWx1ZT0iMCIpLE0oNTA0KSYmKGU9PT1GLkQuTWQ/aC5rZXk9ImV2bmlkIjplPT09Ri5ELk5kJiYoaC5rZXk9ImV4Y2lkIikpLGJbaC5rZXldPWgudmFsdWUpfWIuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO1R0KCkmJihiLmdjcz1iLmdjc3x8VXQoKSk7Yi5nY2Q9Yi5nY2R8fFl0KGEuTSk7YXUoKSYmKGIuZG1hX2Nwcz1adCgpKTtiLmRtYT0kdCgpO3Z0KEV0KCkpJiYKKGIudGNmZD1idSgpKTt2YXIgbD1DcChhKTtsJiYoYi50YWdfZXhwPWwpO2lmKFEoYSxILkouQmspKXtiLnRmdD1TdHJpbmcoTmIoKSk7dmFyIG49cGQoKTtuIT09dm9pZCAwJiYoYi50ZmQ9U3RyaW5nKE1hdGgucm91bmQobikpKX1iLmFwdmU9IjEiO2IuYXB2Zj1uZCgpPyJmIjoibmYiO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGIubGltaXRlZF9hZHM9IjEiKTt2YXIgcD1RKGEsSC5KLlhnKTtNKDQ3NCkmJnAhPW51bGwmJnAhPT0iIiYmKGIuX2dzaWQ9cCk7aHQoYSxiLGZ1bmN0aW9uKHEscil7YltxXT1lbmNvZGVVUklDb21wb25lbnQocil9KTtyZXR1cm4gYn07dmFyIGd1PWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5lbmRwb2ludD1hO3RoaXMuZmE9Yzt0aGlzLmphPWQ7dGhpcy5wYXJhbWV0ZXJFbmNvZGluZz1lO3RoaXMuWj1iLnNsaWNlKCl9O2d1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIFhvKHRoaXMuWil9O2d1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtndS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3ZhciBhPU1tW3RoaXMuZW5kcG9pbnRdKHZvaWQgMCk7cmV0dXJuIFNiKGEsImh0dHBzOi8vIik/YS5zdWJzdHJpbmcoOCk6U2IoYSwiaHR0cDovLyIpP2Euc3Vic3RyaW5nKDcpOmF9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMubWV0aG9kTmFtZT1hO3RoaXMuUj1ifTtodS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuaXNTdXBwb3J0ZWQoKSlpZigoYz09bnVsbD92b2lkIDA6Yy5ib2R5KT09PXZvaWQgMHx8dGhpcy5IKCkpdHJ5e3RoaXMuSyhhLGIsYyl9Y2F0Y2goZCl7YS5yZChkKX1lbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgZG9lcyBub3Qgc3VwcG9ydCBhIHJlcXVlc3QgYm9keS4iKTtlbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgaXMgbm90IHN1cHBvcnRlZC4iKX07dmFyIGl1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbWFnZVBpeGVsIiwzKX07d2EoaXUsaHUpO2l1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtpdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTsKaXUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe1pjKGIsZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKCl7YS5vbkZhaWx1cmUodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBqdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiU2VuZEJlYWNvbiIsMSl9O3dhKGp1LGh1KTtqdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2QoKX07anUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07anUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2pkKGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5KT9hLmpmKCk6YS5yZCh2b2lkIDApfTt2YXIga3U9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkZldGNoIiwxKX07d2Eoa3UsaHUpO2t1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07a3UucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Cmt1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtBLmZldGNoKGIsYz09bnVsbD92b2lkIDA6Yy5HYikudGhlbihmdW5jdGlvbihkKXtpZihkLm9rKWEucGUoZCk7ZWxzZSBpZihkLnN0YXR1cz09PTApYS5qZigpO2Vsc2UgYS5vbkZhaWx1cmUoIkZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZC5zdGF0dXMrIi4iKX0pLmNhdGNoKGZ1bmN0aW9uKGQpe2EucmQoZCl9KX07dmFyIGx1PW5ldyBpdSxtdT1uZXcganUsbnU9bmV3IGt1O3ZhciBvdT1mdW5jdGlvbigpe307b3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm5bXX07CnZhciBwdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTpiO2d1LmNhbGwodGhpcyxhLGIsMSwhMCwyKX07d2EocHUsZ3UpO3B1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKHRoaXMuWi5sZW5ndGgpe3ZhciBiPVEoYSxILkouRGspO2lmKGIhPT12b2lkIDApcmV0dXJuIGJ9cmV0dXJuIGd1LnByb3RvdHlwZS5LLmNhbGwodGhpcyxhKX07cHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKTthLnRhcmdldC5kZXN0aW5hdGlvbklkJiYoYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCk7Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT9jLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9jLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGMuZm10PSIzIik7cmV0dXJuIGN9O3B1LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTihhLGIpO3JldHVybiI/IitPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrCiI9IitjW2RdfSkuam9pbigiJiIpfTtwdS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy55YShhLGIpLGU9e307aWYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdSl7ZS5HYj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtpZih0aGlzLmVuZHBvaW50PT09NTh8fHRoaXMuZW5kcG9pbnQ9PT01NyllLkdiLm1ldGhvZD0iR0VUIjt0aGlzLmVuZHBvaW50IT09NDV8fHF1LksoYSl8fChlLkdiLmNyZWRlbnRpYWxzPSJvbWl0IixkKz0iJmdhcC51Y2ZiPTEiKX1jKGQsZSl9O3ZhciBxdT1uZXcgcHUoNDUpLHJ1PW5ldyBwdSg0NSxbXSksc3U9bmV3IHB1KDQ2LFtdKSx0dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw2OSl9O3dhKHR1LHB1KTt0dS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NzQpJiYoISFSKGEsIl9nc2lkIil8fCEhUShhLEguSi5YZykpLGM9UihhLEYuRC5IZCkhPT0iMSImJighIVIoYSwiZ2NsaWQiKXx8CiEhUihhLCJkY2xpZCIpfHwhIVIoYSwiZ2Nsc3JjIil8fCEhUihhLCJhdWlkIikpO3JldHVybiBifHxjfTt0dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpLGQ9bHAoYSxjKXx8e307T2JqZWN0LmtleXMoZCkubGVuZ3RoPjAmJihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2QuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2QuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoZC5mbXQ9IjMiKSk7cmV0dXJuIGR9O3ZhciB1dT1uZXcgdHUsdnU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNDUpfTt3YSh2dSxwdSk7dnUucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdCJ9O3Z1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7Y1siZ2FwLjFwZmIiXT0iMSI7cmV0dXJuIGN9O3ZhciB3dT1mdW5jdGlvbihhKXtwdS5jYWxsKHRoaXMsYSxbImFkX3N0b3JhZ2UiLAoiYWRfdXNlcl9kYXRhIl0pfTt3YSh3dSxwdSk7d3UucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtyZXR1cm4gaHAoYyl9O3ZhciB4dT1uZXcgd3UoNTgpLHl1PW5ldyB3dSg1NyksenU9ZnVuY3Rpb24oKXt9O3dhKHp1LG91KTt6dS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1xdS5LKGEpLGM9Yj9xdTpzdSxkPVt7ZW5kcG9pbnQ6YyxtZXRob2Q6bmQoKT9udTptdX0se2VuZHBvaW50OmMsbWV0aG9kOmx1fV07Yj9NKDUxNykmJklmKDQ3KSYmZC5wdXNoKHtlbmRwb2ludDpuZXcgdnUsbWV0aG9kOm51fSk6TSg2MDApJiZkLnB1c2goe2VuZHBvaW50OnJ1LG1ldGhvZDpudX0pO3JldHVybiBkfTt6dS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSEhUShhLEguSi52ZCksZD1SKGEsRi5ELlBkKT09PSIxIixlPVIoYSxGLkQuSGQpPT09IjEiLGY9cXUuSyhhKSxnPWMmJmQmJiFlJiZmO2lmKGcpe3ZhciBoPQpRYygpfHxPYygpP3h1Onl1O2IucHVzaChbe2VuZHBvaW50OmgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6aCxtZXRob2Q6bHV9XSl9ZiYmKGd8fFEoYSxILkouaGQpKSYmYi5wdXNoKFt7ZW5kcG9pbnQ6dXUsbWV0aG9kOm5kKCk/bnU6bHV9XSk7cmV0dXJuIGJ9O3ZhciBBdT1uZXcgenU7dmFyIFQ9e1c6e0prOjEsbmo6MixGazozLG1sOjQsR2s6NSx5ZDo2LGtsOjcsTXE6OCxxbjo5LEhrOjEwLElrOjExLEZoOjEyLERtOjEzLEFtOjE0LENtOjE1LHptOjE2LEJtOjE3LHltOjE4LFRvOjE5LHhxOjIwLHlxOjIxLGZqOjIyLHVuOjI0LE9tOjI1LFNrOjI2LFRrOjI3LFJrOjI4LFVrOjI5LHJqOjMwLE9rOjMxLFpvOjMyfX07VC5XW1QuVy5Ka109IkFMTE9XX0lOVEVSRVNUX0dST1VQUyI7VC5XW1QuVy5ual09IlNFUlZFUl9DT05UQUlORVJfVVJMIjtULldbVC5XLkZrXT0iQURTX0RBVEFfUkVEQUNUSU9OIjtULldbVC5XLm1sXT0iQ1VTVE9NRVJfTElGRVRJTUVfVkFMVUUiO1QuV1tULlcuR2tdPSJBTExPV19DVVNUT01fU0NSSVBUUyI7VC5XW1QuVy55ZF09IkFOWV9DT09LSUVfUEFSQU1TIjtULldbVC5XLmtsXT0iQ09PS0lFX0VYUElSRVMiO1QuV1tULlcuTXFdPSJMRUdBQ1lfRU5IQU5DRURfQ09OVkVSU0lPTl9KU19WQVJJQUJMRSI7VC5XW1QuVy5xbl09IlJFU1RSSUNURURfREFUQV9QUk9DRVNTSU5HIjsKVC5XW1QuVy5Ia109IkFMTE9XX0RJU1BMQVlfRkVBVFVSRVMiO1QuV1tULlcuSWtdPSJBTExPV19HT09HTEVfU0lHTkFMUyI7VC5XW1QuVy5GaF09IkdFTkVSQVRFRF9UUkFOU0FDVElPTl9JRCI7VC5XW1QuVy5EbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOS05PV04iO1QuV1tULlcuQW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9TVEFOREFSRCI7VC5XW1QuVy5DbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOSVFVRSI7VC5XW1QuVy56bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1BFUl9TRVNTSU9OIjtULldbVC5XLkJtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVFJBTlNBQ1RJT05TIjtULldbVC5XLnltXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfSVRFTVNfU09MRCI7VC5XW1QuVy5Ub109IkFEU19PR1RfVjFfVVNBR0UiO1QuV1tULlcueHFdPSJGT1JNX0lOVEVSQUNUSU9OX1BFUk1JU1NJT05fREVOSUVEIjsKVC5XW1QuVy55cV09IkZPUk1fU1VCTUlUX1BFUk1JU1NJT05fREVOSUVEIjtULldbVC5XLmZqXT0iTUlDUk9UQVNLX05PVF9TVVBQT1JURUQiO1QuV1tULlcudW5dPSJTRVRfRU5DUllQVEVEX0RBVEFfVE9fQ0FDSEUiO1QuV1tULlcuT21dPSJHRVRfRU5DUllQVEVEX0RBVEFfRlJPTV9DQUNIRSI7VC5XW1QuVy5Ta109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX05PX1BBUkFNIjtULldbVC5XLlRrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfUEFSQU0iO1QuV1tULlcuUmtdPSJDT05GSUdfQ09OU0VOVF9TRVRfQkVGT1JFIjtULldbVC5XLlVrXT0iQ09ORklHX1NFVF9VU0VEX0JFRk9SRSI7VC5XW1QuVy5yal09IlNIQURPV19ET01fQVVUT19QSUkiO1QuV1tULlcuT2tdPSJDQ0RfVVNFUl9EQVRBX1dFQl9PTl9DT05GSUciO1QuV1tULlcuWm9dPSJCTEVOREVEX1VTRVJfREFUQSI7dmFyIEJ1PXt9LEN1PShCdVtGLkQudWldPVQuVy5KayxCdVtGLkQuZGRdPVQuVy5uaixCdVtGLkQueWNdPVQuVy5uaixCdVtGLkQubWJdPVQuVy5GayxCdVtGLkQuR2VdPVQuVy5tbCxCdVtGLkQucmldPVQuVy5HayxCdVtGLkQuSmRdPVQuVy55ZCxCdVtGLkQubmJdPVQuVy55ZCxCdVtGLkQuTGJdPVQuVy55ZCxCdVtGLkQuSWRdPVQuVy55ZCxCdVtGLkQudmNdPVQuVy55ZCxCdVtGLkQuVGJdPVQuVy55ZCxCdVtGLkQuQ2JdPVQuVy5rbCxCdVtGLkQuV2JdPVQuVy5xbixCdVtGLkQuaGhdPVQuVy5IayxCdVtGLkQuU2NdPVQuVy5JayxCdSksRHU9e30sRXU9KER1LnVua25vd249VC5XLkRtLER1LnN0YW5kYXJkPVQuVy5BbSxEdS51bmlxdWU9VC5XLkNtLER1LnBlcl9zZXNzaW9uPVQuVy56bSxEdS50cmFuc2FjdGlvbnM9VC5XLkJtLER1Lml0ZW1zX3NvbGQ9VC5XLnltLER1KTt2YXIgRnU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3NiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsYik7YyYmKGEuSFtiXT0hMCl9LHZiPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1bXX07ZnVuY3Rpb24gR3UoYSl7RnUodmIsYSwhMSl9ZnVuY3Rpb24gSHUoYSxiKXt2YXIgYz1iPT09dm9pZCAwPyExOmIsZD12YjtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGU9T2JqZWN0LmtleXMoYSksZj1tKE9iamVjdC5rZXlzKEN1KSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5pbmNsdWRlcyhoKSYmRnUoZCxDdVtoXSxjKX19O2Z1bmN0aW9uIEl1KGEsYil7YT9hLnRoZW4oYik6Yih2b2lkIDApfWZ1bmN0aW9uIEp1KGEpe3JldHVybiBQcm9taXNlLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc3RhdHVzPT09ImZ1bGZpbGxlZCJ9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudmFsdWV9KX0pfWZ1bmN0aW9uIEt1KCl7dmFyIGEsYjtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe2E9YztiPWR9KSxyZXNvbHZlOmEscmVqZWN0OmJ9fTtmdW5jdGlvbiBMdShhLGIsYyxkLGUsZil7dmFyIGc9Yy5zbGljZSgpLGg7ZD09bnVsbHx8KGg9ZC51dik9PW51bGx8fGguY2FsbChkLGEsYixjLGUpO3ZhciBsPUt1KCksbj1sLnByb21pc2UscD1sLnJlc29sdmUscT1bXSxyPWZ1bmN0aW9uKCl7cChxKTt2YXIgdTtkPT1udWxsfHwodT1kLlJzKT09bnVsbHx8dS5jYWxsKGQsYSxiLGMsZSxxKX0sdD1mdW5jdGlvbigpe3ZhciB1PWcuc2hpZnQoKTt1P3UubWV0aG9kLmlzU3VwcG9ydGVkKCk/TXUoYSxiLHUuZW5kcG9pbnQsZCxxLHUubWV0aG9kLGUsZix0LHIpOnQoKTpyKCl9O3QoKTtyZXR1cm4gbn0KZnVuY3Rpb24gTXUoYSxiLGMsZCxlLGYsZyxoLGwsbil7dmFyIHA9Yy5SKGEpLHE9e3RrOmIsZW5kcG9pbnQ6Yyxpc1ByaW1hcnk6ZyxzYjp2b2lkIDAscGs6ZixqdDp7fX0scj0hMSx0PWZ1bmN0aW9uKHosQyl7aWYocilQKDE4Nyk7ZWxzZSBpZihyPSEwLCF1KXt2YXIgRD1DfHx7fSxJPUQuYm9keSxHPUQuR2IsTj1ELmFmO0M9T2JqZWN0LmZyZWV6ZShuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LEk/e2JvZHk6SX06e30sRz97R2I6R306e30sTj97YWY6Tn06e30pKTtpZihJJiYhZi5IKCkpeCgpLGwoKTtlbHNle3ZhciBTPU51KHopLFc9cFswXT09PSIvIj8iIitwK1M6Imh0dHBzOi8vIitwK1M7cS5zYj1XO3EuanQ9Qzt2YXIgZWE7ZD09bnVsbHx8KGVhPWQuU3MpPT1udWxsfHxlYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpKTt2YXIgamE9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLmVuZHBvaW50LApldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9O2YuUj09PXZvaWQgMHx8Yy5mYSE9PTImJihjLmZhIT09MXx8ZS5sZW5ndGgpfHxrbi5yZWdpc3RlcihqYSxmLlIsVyk7dmFyIGZhPWZ1bmN0aW9uKGRhLG1hKXt4KCk7aWYocS5zdGF0dXMhPT12b2lkIDApcmV0dXJuIFAoMTkyKSwhMTtxLnN0YXR1cz1kYTtlLnB1c2gocSk7dmFyIFBhO2Q9PW51bGx8fChQYT1kLnVvKT09bnVsbHx8UGEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSxtYSk7cmV0dXJuITB9LHNhPXtGbzpqYSxyZDpmdW5jdGlvbigpe2ZhKDIpJiZsKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2ZhKDMpJiZsKCl9LHBlOmZ1bmN0aW9uKGRhKXtmYShkYS5zdGF0dXM9PT0wPzE6ZGEub2s/MDozLGRhKSYmbigpfSxqZjpmdW5jdGlvbigpe2ZhKDEpJiZuKCl9fTtPdShjLGEsVyxTLEkpO2Yuc2VuZFJlcXVlc3Qoc2EsVyxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LAp7fSxJJiZ7Ym9keTpJfSxHJiZ7R2I6R30sTiYme2FmOk59KSl9fX0sdT0hMSx2LHg9ZnVuY3Rpb24oKXt2IT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQodiksdj12b2lkIDApfTtNKDU3NCkmJih2PUEuc2V0VGltZW91dChmdW5jdGlvbigpe3Y9dm9pZCAwO3U9ITA7aWYocS5zdGF0dXM9PT12b2lkIDApe3Euc3RhdHVzPTQ7cS5zYj09PXZvaWQgMCYmKHEuc2I9IltmYWlsZWQgdG8gYnVpbGRdICIrcCk7ZS5wdXNoKHEpO3ZhciB6O2Q9PW51bGx8fCh6PWQudW8pPT1udWxsfHx6LmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksdm9pZCAwKTtsKCl9fSw1RTMpKTt2YXIgeT17SWM6cCxtZXRob2Q6Zix5djplLGlzUHJpbWFyeTpnLEN0Omh9O3RyeXtjLkgoYSx5LHQpfWNhdGNoKHope3goKSxQKDE4OCksbCgpfX0KZnVuY3Rpb24gT3UoYSxiLGMsZCxlKXtpZihhLmphKXt2YXIgZj1iLnRhcmdldC5kZXN0aW5hdGlvbklkLGc9YS5lbmRwb2ludDtpZihnPT09NDV8fGc9PT00Nnx8Zz09PTY5fHxnPT09NTh8fGc9PT01Nyl7dmFyIGg9L1s/Jl10aWRzPShbXiZdKykvLmV4ZWMoZCk7Zj1oP2RlY29kZVVSSUNvbXBvbmVudChoWzFdKS5zcGxpdCgifiIpOltmXX1NbCh7dGFyZ2V0SWQ6ZixyZXF1ZXN0Om5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se3VybDpjLHBhcmFtZXRlckVuY29kaW5nOmEucGFyYW1ldGVyRW5jb2RpbmcsZW5kcG9pbnQ6YS5lbmRwb2ludH0sZT97cG9zdEJvZHk6ZX06e30pLHFiOntldmVudElkOmIuTS5ldmVudElkLHByaW9yaXR5SWQ6Yi5NLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fQpmdW5jdGlvbiBOdShhKXtyZXR1cm4gYSYmYSE9PSI/Ij9hWzBdIT09Ij8iPyI/Ii5jb25jYXQoYSk6YToiIn07ZnVuY3Rpb24gUHUoYSxiLGMsZCxlKXt2YXIgZjtlPT1udWxsfHwoZj1lLnZ2KT09bnVsbHx8Zi5jYWxsKGUsYSxiKTtpZighYy5sZW5ndGgpe3ZhciBnO2U9PW51bGx8fChnPWUuVHMpPT1udWxsfHxnLmNhbGwoZSxhLGIsW10pO3JldHVybiBQcm9taXNlLnJlc29sdmUoW10pfXZhciBoPVtdLGw9e3RrOmIsbWs6YyxqazpkfTtoLnB1c2goTHUoYSxiLGMsZSwhMCxsKSk7Zm9yKHZhciBuPW0oZCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpaC5wdXNoKEx1KGEsYixwLnZhbHVlLGUsITEsbCkpO3JldHVybiBKdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7ZT09bnVsbHx8KHY9ZS5Ucyk9PW51bGx8fHYuY2FsbChlLGEsYixyKTtyZXR1cm4gcn0pfTtmdW5jdGlvbiBRdShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2I9PW51bGx8fChkPWIud3YpPT1udWxsfHxkLmNhbGwoYixhLGMpO2Zvcih2YXIgZT1bXSxmPW0oYyksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZS5wdXNoKFJ1KGEsZy52YWx1ZSkpO2Zvcih2YXIgaD1bXSxsPW0oZSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aC5wdXNoKFB1KGEscC50ayxwLm1rLHAuamssYikpfUp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtiPT1udWxsfHwodj1iLlFzKT09bnVsbHx8di5jYWxsKGIsYSxjLHIpfSl9CmZ1bmN0aW9uIFJ1KGEsYil7dmFyIGM9ZnVuY3Rpb24oZil7cmV0dXJuIGYubWV0aG9kLmlzU3VwcG9ydGVkKCkmJmYuZW5kcG9pbnQuaXNTdXBwb3J0ZWQoYSkmJmYuZW5kcG9pbnQuSyhhKX0sZD0oYi5IKGEpfHxbXSkuZmlsdGVyKGMpLGU9W107ZC5sZW5ndGgmJihlPShiLksoYSl8fFtdKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuZmlsdGVyKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmxlbmd0aD4wfSkpO3JldHVybnt0azpiLG1rOmQsams6ZX19Owp2YXIgU3U9ZnVuY3Rpb24oYSxiKXtpZihNKDUxNykmJklmKDQ3KSYmYT09PTQ1KXJldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0PyIrYi5zcGxpdCgiPyIpWzFdKyImZ2FwLjFwZmI9MSJ9LFd1PWZ1bmN0aW9uKCl7dmFyIGE9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGEubGVuZ3RoKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9VHUoZS5rZSwiYXB2YyIpLGc9VHUoZS5rZSwidGZ0IiksaD1UdShlLmtlLCJ0ZmQiKSxsPVR1KGUua2UsInRpZCIpLG49Tm0oZS5lbmRwb2ludCxlLmtlKSxwPWJbbl09YltuXXx8e3hrOltdLFpoOltdfTtwLlpoLnB1c2goZSk7bD8ocC54ay5wdXNoKGwpLHAudWR8fChwLnVkPWwpKTpwLnhrLnB1c2goIiIpO2Y9PT0iMSImJihwLlFuPSEwKTtpZihnfHxoKXAuTm49ITB9YS5sZW5ndGg9MDtmb3IodmFyIHE9bShPYmplY3Qua2V5cyhiKSkscj1xLm5leHQoKSx0PXt9OyFyLmRvbmU7dD0Ke3lrOnZvaWQgMH0scj1xLm5leHQoKSl7dmFyIHU9ci52YWx1ZSx2PWJbdV07dC55az12LnhrO3ZhciB4PXQueWsuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihJLEcpe3JldHVybiBELnlrLmluZGV4T2YoSSk9PT1HfX0odCkpLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4hIUR9KTtpZihNKDQyNykpe3ZhciB5PVV1KHYseCk7UXUoeSx2b2lkIDAsQXUpfWVsc2V7dmFyIHo9dSsiJmFwdmM9Iisodi5Rbj8iMSI6IjAiKTt4Lmxlbmd0aCYmKHorPSImdGlkcz0iK3guam9pbigifiIpKTt2LnVkJiYoeis9IiZ0aWQ9Iit2LnVkKTtpZih2Lk5uKXt6Kz0iJnRmdD0iK1N0cmluZyhOYigpKTt2YXIgQz1wZCgpO0MhPT12b2lkIDAmJih6Kz0iJnRmZD0iK1N0cmluZyhNYXRoLnJvdW5kKEMpKSl9VnUodi5aaFswXS5ldmVudCx6LHYuWmhbMF0uZW5kcG9pbnQseC5sZW5ndGg/eDpbIiJdKX19fX0sVHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMhPT12b2lkIDApcmV0dXJuIGRlbGV0ZSBhW2JdLApjfSxWdT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPWZ1bmN0aW9uKGwsbil7dmFyIHA9YitYdShsKTtUbChwLGEsYyxkKTtyZXR1cm4gbihwKX07aWYobmQoKSl7dmFyIGc9ZnVuY3Rpb24oKXt9LGg9U3UoYyxiKTtoIT09dm9pZCAwJiYoZz1mdW5jdGlvbigpe1luKGUsaCtYdSg4KSx2b2lkIDAse1FnOiEwfSl9KTtmKDgsZnVuY3Rpb24obCl7WW4oZSxsLHZvaWQgMCx7UWc6ITB9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGIrWHUoMyksZnVuY3Rpb24oKXt9LGcpfSl9KX1lbHNlIGYoNSxmdW5jdGlvbihsKXtyZXR1cm4gV24oZSxsKX0pfHxaYyhiK1h1KDMpKX0sVXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlpoWzBdLGQ9eyJfJmFwdmMiOmEuUW4/IjEiOiIwIn07Yi5sZW5ndGg+MCYmKGRbIl8mdGlkcyJdPQpiLmpvaW4oIn4iKSk7aWYoYS5Obil7ZFsiXyZ0ZnQiXT1TdHJpbmcoTmIoKSk7dmFyIGU9cGQoKTtlIT09dm9pZCAwJiYoZFsiXyZ0ZmQiXT1TdHJpbmcoTWF0aC5yb3VuZChlKSkpfXJldHVybiBZdShjLmV2ZW50LGEudWR8fCIiLGQpfSxZdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLnRhcmdldCx7ZGVzdGluYXRpb25JZDpifSksZT1adShhLHt0YXJnZXQ6ZH0pO2J8fFUoZSxGLkQuUWUpO2Zvcih2YXIgZj1tKE9iamVjdC5rZXlzKGMpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtVKGUsaCxjW2hdKX1yZXR1cm4gZX0sWHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgODpjYXNlIDM6Y2FzZSA1OnJldHVybiImZm10PSIrYTtkZWZhdWx0OnJldHVybiIifX0sJHU9ZnVuY3Rpb24oYSxiKXthPVp1KGEpO1YoYSxILkouRGssWG8oZnApKTtUdCgpJiZVKGEsIl8mZ2NzIixVdCgpKTsKVShhLCJfJmdjZCIsWXQoYS5NKSk7dmFyIGM9WG8oZnApPzQ1OjQ2LGQ9ZnVuY3Rpb24oKXt2YXIgZj1iLnRpZDtpZihNKDQyNykpe3ZhciBnPVl1KGEsZixiKTtRdShnLHZvaWQgMCxBdSl9ZWxzZXt2YXIgaD1ObShjLGIpO1Z1KGEsaCxjLFtmXSl9fTtpZih5YihBLnF1ZXVlTWljcm90YXNrKSl7dmFyIGU9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGUubGVuZ3RoPT09MCl0cnl7QS5xdWV1ZU1pY3JvdGFzayhXdSl9Y2F0Y2goZil7R3UoVC5XLmZqKTtkKCk7cmV0dXJufWI9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiKTtlLnB1c2goe2V2ZW50OmEsa2U6YixlbmRwb2ludDpjfSl9ZWxzZSBHdShULlcuZmopLGQoKX07dmFyIGF2PWZ1bmN0aW9uKGEsYixjLGQpe2d1LmNhbGwodGhpcyxhLGIsYz09PXZvaWQgMD8xOmMsZD09PXZvaWQgMD8hMTpkLDMsdm9pZCAwKX07d2EoYXYsZ3UpO2F2LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQueWkpO3JldHVybiBiKyIvIitjKyIvIn07YXYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMueWEoYSxndS5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkpfTt2YXIgWD17Vjp7TWs6ImNhbGxfY29udmVyc2lvbiIsemQ6ImNjbV9jb252ZXJzaW9uIixRazoiY29tbW9uX2F3Iix4YToiY29udmVyc2lvbiIsd3E6ImZsb29kbGlnaHQiLFlkOiJnYV9jb252ZXJzaW9uIixaZDoiZ2NwX3JlbWFya2V0aW5nIixLYToicGFnZV92aWV3Iix1YjoicmVtYXJrZXRpbmciLE9iOiJ1c2VyX2RhdGFfbGVhZCIsRmI6InVzZXJfZGF0YV93ZWIifX07ZnVuY3Rpb24gYnYoYSxiKXtiJiZHYihiLGZ1bmN0aW9uKGMsZCl7dHlwZW9mIGQhPT0ib2JqZWN0IiYmZCE9PXZvaWQgMCYmKGFbIjFwLiIrY109U3RyaW5nKGQpKX0pfTsKdmFyIGN2PWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC5zaCk7aWYoYylmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhjKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1jW2ZdO2chPW51bGwmJihiWyJndG1kLiIrZl09U3RyaW5nKGcpKX19LGd2PWZ1bmN0aW9uKGEpe3ZhciBiPWR2KGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1ldihhKS5WbixkPWZ2KGMpfHwiIjtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9ZnYoZSk7cmV0dXJuIiIrZCsoZCYmZj8iOyI6IiIpK2Z9KX19LGR2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1odihhKSxjPXt9LGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPXZvaWQgMDtpZihmLmhhc093blByb3BlcnR5KCJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiKSl7Zz1mLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbDt2YXIgaD17fTtjW2ddPWNbZ118fChoLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD0KZyxoKX1lbHNlIGc9IiIsYy5oYXNPd25Qcm9wZXJ0eShnKXx8KGNbZ109e30pO3ZhciBsPWNbZ10sbjtmb3IobiBpbiBmKW4hPT0iZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIiYmKG4gaW4gbHx8KGxbbl09W10pLGxbbl0ucHVzaChmW25dKSl9cmV0dXJuIE9iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gY1twXX0pfSxodj1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELkhhKTtyZXR1cm4gYiYmYi5sZW5ndGg/Yi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkPXt9O3JldHVybiBkLmlkPWlpKGMpLGQub3JpZ2luPWMub3JpZ2luLGQuZGVzdGluYXRpb249Yy5kZXN0aW5hdGlvbixkLnN0YXJ0X2RhdGU9Yy5zdGFydF9kYXRlLGQuZW5kX2RhdGU9Yy5lbmRfZGF0ZSxkLmxvY2F0aW9uX2lkPWMubG9jYXRpb25faWQsZC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9Yy5nb29nbGVfYnVzaW5lc3NfdmVydGljYWwsZH0pOltdfSwKaWk9ZnVuY3Rpb24oYSl7YS5pdGVtX2lkIT1udWxsJiYoYS5pZCE9bnVsbD8oUCgxMzgpLGEuaWQhPT1hLml0ZW1faWQmJlAoMTQ4KSk6UCgxNTMpKTtyZXR1cm4gamkoYSl9LGZ2PWZ1bmN0aW9uKGEpe2lmKGEmJnR5cGVvZiBhPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGEpKXJldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9aXYoYik7aWYoYyl7dmFyIGQ9YVtiXSxlPUFycmF5LmlzQXJyYXkoZCk/anYoZCk6aXYoZCk7aWYoZSE9PXZvaWQgMClyZXR1cm4gYysiPSIrZX19KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIhPT12b2lkIDB9KS5qb2luKCI7Iil9LGp2PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWFwKGl2KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMhPT12b2lkIDB9KTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIsIik6dm9pZCAwfSxpdj1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj10eXBlb2YgYTtpZihiIT09Im9iamVjdCImJgpiIT09ImZ1bmN0aW9uIilyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLywvZywiXFwsIikucmVwbGFjZSgvOy9nLCJcXDsiKS5yZXBsYWNlKC89L2csIlxcPSIpfX0sa3Y9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1hW2JdO2lmKGMhPW51bGwmJihjIT09IiJ8fHlnW2JdKSlyZXR1cm4gYz09PSEwfHxjPT09ITE/YisiPSIrKGM/MTowKTpiKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkuam9pbigiJiIpfSxsdj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPXt9LGQ9UShhLEguSi5FYik7aWYoYj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi5ZZHx8Yj09PVguVi56ZHx8Yj09PVguVi5aZCljLnJhbmRvbT0iIitkO2I9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQ/KGMuY3Y9IjExIixjLmZzdD0iIitkLGMuZm10PSIzIiwKYy5iZz0iZmZmZmZmIixjLmd1aWQ9Ik9OIixjLmFzeW5jPSIxIixjLmVuPWEuZXZlbnROYW1lKTpiPT09WC5WLllkJiYoYy5jdj0iMTEiLGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYy5mc3Q9IiIrZCxjLmZtdD0iOCIsYy5lbj1hLmV2ZW50TmFtZSk7dmFyIGU9QnMoWyJhdyIsImRjIl0pO2UhPW51bGwmJihjLmdhZF9zb3VyY2U9ZSk7Yy5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7YiE9PVguVi51YiYmVHQoKSYmKGMuZ2NzPVV0KCkpO2MuZ2NkPVl0KGEuTSk7YXUoKSYmKGMuZG1hX2Nwcz1adCgpKTtjLmRtYT0kdCgpO3Z0KEV0KCkpJiYoYy50Y2ZkPWJ1KCkpO3ZhciBmPUNwKGEpO2YmJihjLnRhZ19leHA9Zik7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYy5saW1pdGVkX2Fkcz0iMSIpO1IoYSxGLkQuYmQpJiZmaShSKGEsRi5ELmJkKSxjKTtpZihSKGEsCkYuRC50Yikpe3ZhciBnPVIoYSxGLkQudGIpO2cmJihnLmxlbmd0aD09PTI/Z2koYywiaGwiLGcpOmcubGVuZ3RoPT09NSYmKGdpKGMsImhsIixnLnN1YnN0cmluZygwLDIpKSxnaShjLCJnbCIsZy5zdWJzdHJpbmcoMyw1KSkpKX12YXIgaD1RKGEsSC5KLlllKSxsPWZ1bmN0aW9uKEksRyl7dmFyIE49UihhLEcpO04mJihjW0ldPWg/WnMoTik6Til9O2woInVybCIsRi5ELnphKTtsKCJyZWYiLEYuRC5VYSk7bCgidG9wIixGLkQuUGUpO3ZhciBuPWd0KGEsRi5ELkJkLEYuRC5DZCk7biYmKGMuZ2NsYXdfc3JjPW4pO3ZhciBwPWd0KGEsRi5ELmZoLEYuRC5naCk7cCYmKGMuZ2NsZ2Jfc3JjPXApO3ZhciBxPWZ1bmN0aW9uKEksRyl7Zm9yKHZhciBOPW0oT2JqZWN0LmtleXMoSSkpLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlO2VpW1ddJiZ0eXBlb2YgSVtXXT09PSJzdHJpbmciJiYoR1siZXh0LiIrZWlbV11dPUlbV10pfX0scj1SKGEsRi5ELldjKTtyJiYKcShyLGMpO3ZhciB0PWV2KGEpLHU9dC5WbjtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsdC5rZSk7YnYoYyxSKGEsRi5ELmVkKSk7dmFyIHY9UihhLEYuRC5OZSk7diE9PXZvaWQgMCYmdiE9PSIiJiYoYy52ZG5jPVN0cmluZyh2KSk7dmFyIHg9UihhLEYuRC5MZCk7eCE9PXZvaWQgMCYmKGMuc2hmPXgpO3ZhciB5PVIoYSxGLkQuVGMpO3khPT12b2lkIDAmJihjLmRlbGM9eSk7aWYoYiE9PVguVi5ZZCl7dmFyIHo9ZnYodSk7eiYmKGMuZGF0YT16KX12YXIgQz1SKGEsRi5ELkhhKTtpZihDJiYoYj09PVguVi54YXx8Yj09PVguVi5ZZHx8Yj09PVguVi5aZHx8Yj09PVguVi56ZCkpe3ZhciBEPW5pKEMpO0QhPT12b2lkIDAmJihjLmllZGVsZD1EKTtjLml0ZW09aGkoQyl9aHQoYSxjKTtjdihhLGMpO1EoYSxILkouSWgpJiYoYy5hZWNzPSIxIik7YiE9PVguVi54YXx8UShhLEguSi5FYyl8fFEoYSxILkoub2IpfHwoYy5jYXRlZ29yeT0iYWNyY3BfdjFfNTEyIik7cmV0dXJuIGN9LApldj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz17fSxkPVEoYSxILkouZGEpLGU9bShldShhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1SKGEsZyk7aWYoaCE9PXZvaWQgMClpZihTYihnLCJfJiIpKWJbZy5zdWJzdHJpbmcoMildPWg7ZWxzZSBpZihlaS5oYXNPd25Qcm9wZXJ0eShnKSl7aWYoZyE9PUYuRC5FaXx8ZD09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgbD1laVtnXTtsJiYoZyE9PUYuRC5OZCYmZyE9PUYuRC5NZHx8TSg1MDQpP2JbbF09aDpjW2ddPWgpfX1lbHNlIGNbZ109aH1yZXR1cm57a2U6YixWbjpjfX07dmFyIG12PXtOZzoidmFsdWUiLHBiOiJjb252ZXJzaW9uQ291bnQiLE9nOjF9LG52PXtOZzoidGltZW91dHMiLHBiOiJ0aW1lb3V0cyIsT2c6MH0sb3Y9e05nOiJlb3BDb3VudCIscGI6ImVuZE9mUGFnZUNvdW50IixPZzowfSxwdj17Tmc6ImVycm9ycyIscGI6ImVycm9ycyIsT2c6MH0scXY9W212LG52LHB2LG92XTtmdW5jdGlvbiBydihhLGIpe2I9Yj09PXZvaWQgMD8xOmI7aWYoIXN2KGEpKXJldHVybnt9O3ZhciBjPXR2KHF2KSxkPWNbYS5wYl07aWYoZD09PXZvaWQgMHx8ZD09PS0xKXJldHVybiBjO3ZhciBlPXt9LGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLChlW2EucGJdPWQrYixlKSk7cmV0dXJuIHV2KGYpP2Y6Y30KZnVuY3Rpb24gdHYoYSl7dmFyIGI7YTp7dmFyIGM9bnIoImdjbF9jdHIiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTt0cnl7Yj0idmFsdWUiaW4gZCYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Ij9kLnZhbHVlOnZvaWQgMDticmVhayBhfWNhdGNoKHApe319Yj12b2lkIDB9Zm9yKHZhciBlPWIsZj17fSxnPW0oYSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7aWYoZSYmc3YobCkpe3ZhciBuPWVbbC5OZ107bj09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKG4pP2ZbbC5wYl09LTE6ZltsLnBiXT1OdW1iZXIobil9ZWxzZSBmW2wucGJdPS0xfXJldHVybiBmfQpmdW5jdGlvbiB1dihhLGIpe2I9Ynx8e307Zm9yKHZhciBjPU5iKCksZD11cShiLGMsITApLGU9e30sZj1tKHF2KSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZSxsPWFbaC5wYl07bCE9PXZvaWQgMCYmbCE9PS0xJiYoZVtoLk5nXT1sKX1lLmNyZWF0aW9uVGltZU1zPWM7cmV0dXJuIGtyKCJnY2xfY3RyIix7dmFsdWU6ZSxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfSk9PT0wPyEwOiExfWZ1bmN0aW9uIHN2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuZnR8fFlmKGEuZnQpOiExfWZ1bmN0aW9uIHZ2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuQXN8fFlmKGEuQXMpOiExfTtmdW5jdGlvbiB3digpe2lmKHh2KCkpe3ZhciBhPW5yKCJsYXN0X2NvbnZzIik7aWYoYS5lcnJvcj09PTAmJmEudmFsdWUmJnR5cGVvZiBhLnZhbHVlPT09Im9iamVjdCIpe3ZhciBiPWEudmFsdWU7aWYoYi52YWx1ZSYmQXJyYXkuaXNBcnJheShiLnZhbHVlKSl7dmFyIGM9Yi52YWx1ZTtpZighKGMubGVuZ3RoPjEpKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKHR5cGVvZiBnIT09Im9iamVjdCJ8fGc9PT1udWxsfHx0eXBlb2YgZy5yYW5kb20hPT0ibnVtYmVyInx8dHlwZW9mIGcubGFiZWwhPT0ic3RyaW5nInx8Zy5sYWJlbC5sZW5ndGg+MjAwKXJldHVybjtkLnB1c2goe3JhbmRvbTpnLnJhbmRvbSxsYWJlbDpnLmxhYmVsfSl9cmV0dXJuIGR9fX19fQpmdW5jdGlvbiB5dihhLGIpeyF4digpfHxhLmxlbmd0aD4xfHxhLmxlbmd0aD09PTEmJmFbMF0ubGFiZWwubGVuZ3RoPjIwMHx8KGI9Ynx8e30sa3IoImxhc3RfY29udnMiLHt2YWx1ZTphLGV4cGlyZXM6TnVtYmVyKHVxKGIpLmV4cGlyZXMpfSkpfWZ1bmN0aW9uIHh2KCl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSYmWWYoMTEpfTtmdW5jdGlvbiB6dihhKXt2YXIgYj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7cmV0dXJuIGE/U3RyaW5nKGJebmcoYSkmMjE0NzQ4MzY0Nyk6U3RyaW5nKGIpfWZ1bmN0aW9uIEF2KGEpe3JldHVyblt6dihhKSxNYXRoLnJvdW5kKE5iKCkvMUUzKV0uam9pbigiLiIpfWZ1bmN0aW9uIEJ2KGEsYixjLGQsZSl7dmFyIGY9cnEoYiksZztyZXR1cm4oZz1ncShhLGYsc3EoYyksZCxlKSk9PW51bGw/dm9pZCAwOmcuQ3J9O3ZhciBDdj1bIjEiXSxEdj17fSxFdj17fTtmdW5jdGlvbiBGdihhKXtyZXR1cm4gRXZbR3YoYSldfWZ1bmN0aW9uIEh2KGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9R3YoYS5wcmVmaXgpO2lmKER2W2NdKUl2KGEpLEp2KGEpO2Vsc2UgaWYoS3YoYyxhLnBhdGgsYS5kb21haW4pKXt2YXIgZD1GdihhLnByZWZpeCl8fHtpZDp2b2lkIDAsa2M6dm9pZCAwfTtiJiZMdihhLGQpO0l2KGEpO0p2KGEpfWVsc2V7dmFyIGU9VGooImF1aWRkYyIpO2lmKGUpc2IoIlRBR0dJTkciLDE3KSxEdltjXT1lO2Vsc2UgaWYoYil7dmFyIGY9R3YoYS5wcmVmaXgpLGc9QXYoKTtNdihmLGcsYSk7S3YoYyxhLnBhdGgsYS5kb21haW4pO0l2KGEsITApO0p2KGEsITApfX19CmZ1bmN0aW9uIEl2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmc3YobXYpJiZvcigiZ2NsX2N0ciIpO2lmKHZ2KG12KSYmdHYoW212XSlbbXYucGJdPT09LTEpe2Zvcih2YXIgYz17fSxkPShjW212LnBiXT0wLGMpLGU9bShxdiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyE9PW12JiZ2dihnKSYmKGRbZy5wYl09MCl9dXYoZCxhKX19ZnVuY3Rpb24gSnYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZ4digpJiZvcigibGFzdF9jb252cyIpOyFCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSl8fCFZZigxMil8fHd2KCl8fHl2KFtdLGEpfQpmdW5jdGlvbiBMdihhLGIpe3ZhciBjPUd2KGEucHJlZml4KSxkPUR2W2NdO2lmKGQpe3ZhciBlPWQuc3BsaXQoIi4iKTtpZihlLmxlbmd0aD09PTIpe3ZhciBmPU51bWJlcihlWzFdKXx8MDtpZihmKXt2YXIgZz1kO1lmKDE5KSYmYi5maT9nPWQrIi4iKyhiLnNlc3Npb25JZHx8Ii0uLSIpKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSsiLiIrYi5maSsiLiIrKGIuTGM/Yi5MYzpNYXRoLmZsb29yKE5iKCkvMUUzKSk6Yi5zZXNzaW9uSWQmJihnPWQrIi4iK2Iuc2Vzc2lvbklkKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSk7TXYoYyxnLGEsZioxRTMpfX19fWZ1bmN0aW9uIE12KGEsYixjLGQpe3ZhciBlO2U9WyIxIix0cShjLmRvbWFpbixjLnBhdGgpLGJdLmpvaW4oIi4iKTt2YXIgZj11cShjLGQpO2YuTWM9TnYoKTtvcShhLGUsZil9CmZ1bmN0aW9uIEt2KGEsYixjKXt2YXIgZD1CdihhLGIsYyxDdixOdigpKTtpZighZClyZXR1cm4hMTtPdihhLGQpO3JldHVybiEwfWZ1bmN0aW9uIE92KGEsYil7dmFyIGM9Yi5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09MylFdlthXT17c2Vzc2lvbklkOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2Vsc2UgaWYoYy5sZW5ndGg+PTImJihEdlthXT1jWzBdKyIuIitjWzFdLGMuc2hpZnQoKSxjLnNoaWZ0KCksYy5sZW5ndGg+PTMpKXt2YXIgZD17c2Vzc2lvbklkOmNbMF09PT0iLSI/dm9pZCAwOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2lmKFlmKDE5KSYmYy5sZW5ndGg+PTYpe3ZhciBlPWNbM10rIi4iK2NbNF0sZj1OdW1iZXIoY1s1XSl8fDA7ZSYmZiE9PTAmJihkLmZpPWUsZC5MYz1mKX1FdlthXT1kfX1mdW5jdGlvbiBHdihhKXtyZXR1cm4oYXx8Il9nY2wiKSsiX2F1In0KZnVuY3Rpb24gUHYoYSl7ZnVuY3Rpb24gYigpe0JsKGMpJiZhKCl9dmFyIGM9TnYoKTtIbChmdW5jdGlvbigpe2IoKTtCbChjKXx8SWwoYixjKX0sYyl9ZnVuY3Rpb24gUXYoYSl7dmFyIGI9VXEoITApLGM9R3YoYS5wcmVmaXgpO1B2KGZ1bmN0aW9uKCl7dmFyIGQ9YltjXTtpZihkKXtPdihjLGQpO3ZhciBlPU51bWJlcihEdltjXS5zcGxpdCgiLiIpWzFdKSoxRTM7aWYoZSl7c2IoIlRBR0dJTkciLDE2KTt2YXIgZj11cShhLGUpO2YuTWM9TnYoKTt2YXIgZz1bIjEiLHRxKGEuZG9tYWluLGEucGF0aCksZF0uam9pbigiLiIpO29xKGMsZyxmKX19fSl9ZnVuY3Rpb24gUnYoYSxiLGMsZCxlKXtlPWV8fHt9O3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGc9e30saD1CdihhLGUucGF0aCxlLmRvbWFpbixDdixOdigpKTtoJiYoZ1thXT1oKTtyZXR1cm4gZ307UHYoZnVuY3Rpb24oKXthcihmLGIsYyxkKX0pfQpmdW5jdGlvbiBOdigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfTsKdmFyIFR2PWZ1bmN0aW9uKGEpe3JldHVybiBTdihhLHtPajohMH0pLlNofSxTdj1mdW5jdGlvbihhLGIpe2E9YXx8e307aWYoIVhvKEYuRC5rYSkpcmV0dXJue307dmFyIGM9VXYoYSksZD1jLlNoLGU9Yy5paztiLk9qJiYhZCYmKGQ9QXYoKSk7Yi5YaCYmIWUmJihlPUF2KCkpO3ZhciBmPXt9O2QmJihmLnNlc3Npb25JZD1kKTtlJiYoZi5maT1lKTt2YXIgZz1GdihIcihhLnByZWZpeCkpO2cmJihiLk9qJiYhYi5YaD9nLkxjJiYoZi5MYz1nLkxjKTpiLlhoJiYhYi5PaiYmZy5rYyYmKGYua2M9Zy5rYykpO2lmKGR8fGUpe3ZhciBoPWEsbD1HdihoLnByZWZpeCk7THYoaCxmKTtkZWxldGUgRHZbbF07ZGVsZXRlIEV2W2xdO0t2KGwsaC5wYXRoLGguZG9tYWluKX1yZXR1cm4gVXYoYSl9LFV2PWZ1bmN0aW9uKGEpe2lmKCFYbyhGLkQua2EpKXJldHVybnt9O2E9YXx8e307SHYoYSwhMSk7dmFyIGI9RnYoSHIoYS5wcmVmaXgpKTtpZighYilyZXR1cm57fTt2YXIgYz1OYigpLGQ9e307aWYoYy0KYi5rYyoxRTM8PShNKDQ1MCl8fE0oNDQzKT84NjRFNToxOEU1KSl7dmFyIGU9Yi5zZXNzaW9uSWQ7aWYoZSl7dmFyIGY9ZS5zcGxpdCgiLiIpO2YubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGZbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5TaD1lKX19aWYoYi5MYyYmYy1iLkxjKjFFMzw9ODY0RTUpe3ZhciBnPWIuZmk7aWYoZyl7dmFyIGg9Zy5zcGxpdCgiLiIpO2gubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGhbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5paz1nKX19cmV0dXJuIGR9O3ZhciBWdj0iZW1haWwgZW1haWxfYWRkcmVzcyBzaGEyNTZfZW1haWxfYWRkcmVzcyBwaG9uZV9udW1iZXIgc2hhMjU2X3Bob25lX251bWJlciBmaXJzdF9uYW1lIGxhc3RfbmFtZSIuc3BsaXQoIiAiKSxXdj0iZmlyc3RfbmFtZSBzaGEyNTZfZmlyc3RfbmFtZSBsYXN0X25hbWUgc2hhMjU2X2xhc3RfbmFtZSBzdHJlZXQgc2hhMjU2X3N0cmVldCBjaXR5IHJlZ2lvbiBjb3VudHJ5IHBvc3RhbF9jb2RlIi5zcGxpdCgiICIpO2Z1bmN0aW9uIFh2KGEsYil7aWYoIWIuX3RhZ19tZXRhZGF0YSl7Zm9yKHZhciBjPXt9LGQ9MCxlPTA7ZTxhLmxlbmd0aDtlKyspZCs9WXYoYVtlXSxiLGMpPzE6MDtkPjAmJihiLl90YWdfbWV0YWRhdGE9Yyl9fQpmdW5jdGlvbiBZdihhLGIsYyl7dmFyIGQ9YlthXTtpZihkPT09dm9pZCAwfHxkPT09bnVsbClyZXR1cm4hMTtjW2FdPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToiYyJ9fSk6e21vZGU6ImMifTtyZXR1cm4hMH1mdW5jdGlvbiBadihhKXtpZihNKDUyMykmJmEpe1h2KFZ2LGEpO2Zvcih2YXIgYj1CYihhLmFkZHJlc3MpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkJiZYdihXdixkKX12YXIgZT1hLmhvbWVfYWRkcmVzcztlJiZYdihXdixlKX19CmZ1bmN0aW9uICR2KGEsYixjKXtmdW5jdGlvbiBkKGYsZyl7Zz1TdHJpbmcoZykuc3Vic3RyaW5nKDAsMTAwKTtlLnB1c2goIiIrZitlbmNvZGVVUklDb21wb25lbnQoZykpfWlmKCFjKXJldHVybiIiO3ZhciBlPVtdO2QoImkiLFN0cmluZyhhKSk7ZCgiZiIsYik7Yy5tb2RlJiZkKCJtIixjLm1vZGUpO2MuaXNQcmVIYXNoZWQmJmQoInAiLCIxIik7Yy5yYXdMZW5ndGgmJmQoInIiLFN0cmluZyhjLnJhd0xlbmd0aCkpO2Mubm9ybWFsaXplZExlbmd0aCYmZCgibiIsU3RyaW5nKGMubm9ybWFsaXplZExlbmd0aCkpO2MubG9jYXRpb24mJmQoImwiLGMubG9jYXRpb24pO2Muc2VsZWN0b3ImJmQoInMiLGMuc2VsZWN0b3IpO3JldHVybiBlLmpvaW4oIi4iKX07dmFyIGF3PXZvaWQgMDtmdW5jdGlvbiBidygpe2lmKCFhdyl7dmFyIGE9b20oam0uYmEub3AsbmV3IE1hcCk7YXc9bmV3IG9nKGEpfXJldHVybiBhd307CnZhciBjdz1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gYTtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlIT09ImFkZHJlc3MiJiZlIT09InBob25lX251bWJlciImJmUhPT0ic2hhMjU2X3Bob25lX251bWJlciImJihiW2VdPWFbZV0pfXJldHVybiBifSxmdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1bInR2LjEiXSxkPVsidHZkLjEiXSxlPWR3KGEpO2lmKGUpcmV0dXJuIGMucHVzaChlKSx7aGFzVXBkOiExLE9vOmMuam9pbigifiIpLFluOmMuam9pbigifiIpLGVuY3J5cHRpb25LZXlTdHJpbmc6dm9pZCAwLGlpOnt9LG1ldGFkYXRhUGFyYW06Yj9kLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBmPXt9LGc9MDt2YXIgaD0wLGw9ZXcoYSxmdW5jdGlvbihxLHIsdCl7aCsrO3ZhciB1PXEudmFsdWUsdjsKaWYodCl7dmFyIHg9cisiX18iK2crKzt2PSIke3VzZXJEYXRhLiIreCsifHNoYTI1Nn0iO2ZbeF09dX1lbHNlIHY9ZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1KSk7cS5pbmRleCE9PXZvaWQgMCYmKHIrPXEuaW5kZXgpO2MucHVzaChyKyIuIit2KTtpZihiKXt2YXIgeT0kdihoLHIscS5tZXRhZGF0YSk7eSYmZC5wdXNoKHkpfX0pLmhhc1VwZCxuPWQuam9pbigifiIpO3ZhciBwPWMuam9pbigifiIpO3JldHVybntoYXNVcGQ6bCxPbzpwLGlpOnt1c2VyRGF0YTpmfSxZbjoidHYuMX4keyIrKHArInwiKyhNKDU1NSk/ImVuY3J5cHRfd2l0aF9tZW1vIjoiZW5jcnlwdCIpKyJ9IiksZW5jcnlwdGlvbktleVN0cmluZzpFKDQzKSxtZXRhZGF0YVBhcmFtOmI/bjp2b2lkIDB9fSxodz1mdW5jdGlvbihhKXtpZighKGEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKSlyZXR1cm4hMTsKdmFyIGI9Z3coYSk7cmV0dXJuIGV3KGIsZnVuY3Rpb24oKXt9KS5oYXNVcGR9LGV3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpiO2Zvcih2YXIgYz0hMSxkPSExLGU9bShhKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnLnZhbHVlKXt2YXIgaD1pd1tnLm5hbWVdO2lmKGgpe3ZhciBsPWp3KGcpO2wmJihjPSEwKTtkPSEwO2IoZyxoLGwpfX19cmV0dXJue2hhc1VwZDpkLGhhc1VwZFRvSGFzaDpjfX0sanc9ZnVuY3Rpb24oYSl7dmFyIGI9a3coYS5uYW1lKSxjPS9eZVxkKyQvLnRlc3QoYS52YWx1ZSksZDtpZihkPWImJiFjKXt2YXIgZT1hLnZhbHVlO2Q9IShsdy50ZXN0KGUpfHx5aS50ZXN0KGUpKX1yZXR1cm4gZH0sa3c9ZnVuY3Rpb24oYSl7cmV0dXJuIG13LmluZGV4T2YoYSkhPT0tMX0sc3c9ZnVuY3Rpb24oYSxiLGMpe2lmKHliKEEuUHJvbWlzZSkpdHJ5e3ZhciBkPSExO3ZhciBlPWd3KGEsZCksZj1udyhlKS50aGVuKGZ1bmN0aW9uKGgpe3ZhciBsPWgueWIsbj1sLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hU2IocS5uYW1lLCJyYXciKX0pLHA9b3coe3liOm59KTtyZXR1cm57cmVzdWx0OntwYXJhbTpwLnBhcmFtLGhhc1VwZFRvSGFzaDpwLmhhc1VwZFRvSGFzaCxoYXNVcGQ6cC5oYXNVcGQsaGFkRXJyb3I6cC5oYWRFcnJvcixtZXRhZGF0YVBhcmFtOnAubWV0YWRhdGFQYXJhbX0seWI6bH19KTtyZXR1cm4gZi50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBoLnJlc3VsdH0pfWNhdGNoKGgpe319LHF3PWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn0sb3c9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9YS55YixkPVsidHYuMSJdLGU9WyJ0dmQuMSJdLGY9ZHcoYyk7aWYoZilyZXR1cm4gZC5wdXNoKGYpLHtwYXJhbTpkLmpvaW4oIn4iKSxoYXNVcGRUb0hhc2g6ITEsaGFzVXBkOiExLGhhZEVycm9yOiEwLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBnPWMuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFqdyhxKX0pLGg9MCxsPWV3KGcsZnVuY3Rpb24ocSxyKXtoKys7dmFyIHQ9cS52YWx1ZSx1PXEuaW5kZXg7dSE9PXZvaWQgMCYmKHIrPXUpO2QucHVzaChyKyIuIit0KTtpZihiKXt2YXIgdj0kdihoLHIscS5tZXRhZGF0YSk7diYmZS5wdXNoKHYpfX0pLG49bC5oYXNVcGRUb0hhc2gscD1sLmhhc1VwZDtyZXR1cm57cGFyYW06ZW5jb2RlVVJJQ29tcG9uZW50KGQuam9pbigifiIpKSwKaGFzVXBkVG9IYXNoOm4saGFzVXBkOnAsaGFkRXJyb3I6ITEsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH19LGR3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiBpdy5lcnJvcl9jb2RlKyIuIithWzBdLnZhbHVlfSxwdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4hMTtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihpd1tkLm5hbWVdJiZkLnZhbHVlKXJldHVybiEwfXJldHVybiExfSxndz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO2lmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iaHR0cHM6IilyZXR1cm4gYy5wdXNoKHtuYW1lOiJlcnJvcl9jb2RlIix2YWx1ZToiZTMiLGluZGV4OnZvaWQgMH0pLGM7dmFyIGQ9Yy5wdXNoLGU9ZC5hcHBseSxmPVtdLApnPWYuY29uY2F0LGgsbD1hLl90YWdfbWV0YWRhdGF8fHt9O2g9W10uY29uY2F0KHcodHcoe25hbWU6ImVtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzLGFiOmwuZW1haWwsbWQ6bC5zaGEyNTZfZW1haWxfYWRkcmVzc30sdXcpKSx3KHR3KHtuYW1lOiJwaG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXIsYWI6bC5waG9uZV9udW1iZXIsbWQ6bC5zaGEyNTZfcGhvbmVfbnVtYmVyfSx2dykpKTt2YXIgbj13KGgpLHAscT1hLl90YWdfbWV0YWRhdGF8fHt9LHI9YS5ob21lX2FkZHJlc3N8fHt9LHQ9ci5fdGFnX21ldGFkYXRhfHx7fTtwPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWUsYWI6cS5maXJzdF9uYW1lLG1kOnEuc2hhMjU2X2ZpcnN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLApTYTphLnNoYTI1Nl9sYXN0X25hbWUsYWI6cS5sYXN0X25hbWUsbWQ6cS5zaGEyNTZfbGFzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzpyLnN0cmVldCxTYTpyLnNoYTI1Nl9zdHJlZXQsYWI6dC5zdHJlZXQsbWQ6dC5zaGEyNTZfc3RyZWV0fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ci5jaXR5LGFiOnQuY2l0eX0sd3coeXcpKSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzpyLnBvc3RhbF9jb2RlLGFiOnQucG9zdGFsX2NvZGV9LHd3KHp3KSkpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnIucmVnaW9uLGFiOnQucmVnaW9ufSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ci5jb3VudHJ5LGFiOnQuY291bnRyeX0sd3coencpKSkpO2Zvcih2YXIgdT13KHApLHY9W10seD1CYihhLmFkZHJlc3N8fHt9KSx5PTA7eTx4Lmxlbmd0aDt5Kyspe2Zvcih2YXIgej14W3ldLEM9ei5fdGFnX21ldGFkYXRhfHx7fSxEPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIiwKcmF3OnouZmlyc3RfbmFtZSxTYTp6LnNoYTI1Nl9maXJzdF9uYW1lLGFiOkMuZmlyc3RfbmFtZSxtZDpDLnNoYTI1Nl9maXJzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OnoubGFzdF9uYW1lLFNhOnouc2hhMjU2X2xhc3RfbmFtZSxhYjpDLmxhc3RfbmFtZSxtZDpDLnNoYTI1Nl9sYXN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ei5zdHJlZXQsU2E6ei5zaGEyNTZfc3RyZWV0LGFiOkMuc3RyZWV0LG1kOkMuc2hhMjU2X3N0cmVldH0seXcpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ei5jaXR5LGFiOkMuY2l0eX0seXcpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnoucG9zdGFsX2NvZGUsYWI6Qy5wb3N0YWxfY29kZX0sencpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzp6LnJlZ2lvbixhYjpDLnJlZ2lvbn0seXcpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ei5jb3VudHJ5LGFiOkMuY291bnRyeX0sencpKSksST0wO0k8CkQubGVuZ3RoO0krKylEW0ldLmluZGV4PXk7di5wdXNoLmFwcGx5KHYsdyhEKSl9ZS5jYWxsKGQsYyxnLmNhbGwoZixuLHUsdyh2KSkpO2lmKGImJkJwKCkpe3ZhciBHPWMucHVzaCxOPUcuYXBwbHksUz1bXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2VtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSkpLHcoQXcoe25hbWU6InJhd19waG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXJ9KSkpKTtmb3IodmFyIFc9QmIoYS5hZGRyZXNzfHx7fSksZWE9MDtlYTxXLmxlbmd0aDtlYSsrKXt2YXIgamE9V1tlYV07Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6amEuZmlyc3RfbmFtZSxTYTpqYS5zaGEyNTZfZmlyc3RfbmFtZX0sZWEpKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6amEubGFzdF9uYW1lLFNhOmphLnNoYTI1Nl9sYXN0X25hbWV9LAplYSkpLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpqYS5zdHJlZXQsU2E6amEuc2hhMjU2X3N0cmVldH0sZWEpKSkpfWlmKGEuZmlyc3RfbmFtZXx8YS5ob21lX2FkZHJlc3Mpe1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lfSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSxTYTphLnNoYTI1Nl9sYXN0X25hbWV9KSkpKTt2YXIgZmE9YS5ob21lX2FkZHJlc3N8fHt9O1MucHVzaC5hcHBseShTLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpmYS5zdHJlZXQsU2E6ZmEuc2hhMjU2X3N0cmVldH0pKSl9Ti5jYWxsKEcsYyx3KFMpKX1yZXR1cm4gY30sd3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe1AoNjQpO3JldHVybiBhKGIpfX0sQXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihhLlNhKXJldHVybiBjO2Zvcih2YXIgZD0KQmIoYS5yYXcpLGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9QncoZFtlXSk7aWYoZiYmIXlpLnRlc3QoZikpaWYoL15lXGQrJC8udGVzdChmKSljLnB1c2goe25hbWU6YS5uYW1lLHZhbHVlOmYsaW5kZXg6Yn0pO2Vsc2V7dmFyIGc9YyxoPWcucHVzaCxsPWEubmFtZSxuO3ZhciBwPUE7dHJ5e249QmkoQXJyYXkuZnJvbShaYihmKSkscCl9Y2F0Y2gocSl7bj0iZTAifWguY2FsbChnLHtuYW1lOmwsdmFsdWU6bixpbmRleDpifSl9fXJldHVybiBjfSx0dz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9TSg1MjMpLGU9YS5yYXcsZj1kP2EuYWI6dm9pZCAwO0N3KGUsITEpO2EuU2EmJihlJiZQKDkwKSxlPWEuU2EsZj1kP2EubWQ6dm9pZCAwLEN3KGUsITApKTtmb3IodmFyIGc9QmIoZSksaD1CYihmKSxsPTA7bDxnLmxlbmd0aDsrK2wpe3ZhciBuO3ZhciBwPWEubmFtZSxxPWIscj1oW2xdLHQ9QncoZ1tsXSk7aWYodCE9PSIiKWlmKHlpLnRlc3QodCkpe3ImJihyLmlzUHJlSGFzaGVkPSEwKTsKdmFyIHU9e25hbWU6cCx2YWx1ZTp0LGluZGV4OnZvaWQgMH07ciYmKHUubWV0YWRhdGE9cik7bj11fWVsc2V7dmFyIHY9cSh0KSx4PXtuYW1lOnAsdmFsdWU6dixpbmRleDp2b2lkIDB9O3ImJih4Lm1ldGFkYXRhPXIsdiYmKHIucmF3TGVuZ3RoPVN0cmluZyh0KS5sZW5ndGgsci5ub3JtYWxpemVkTGVuZ3RoPXYubGVuZ3RoKSk7bj14fWVsc2Ugbj12b2lkIDA7dmFyIHk9bjt5JiZjLnB1c2goeSl9cmV0dXJuIGN9LEN3PWZ1bmN0aW9uKGEsYil7aWYoemIoYSl8fEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPUJiKGEpLGQ9MDtkPGMubGVuZ3RoOysrZCl7dmFyIGU9QncoY1tkXSksZj15aS50ZXN0KGUpO2ImJiFmJiZQKDg5KTshYiYmZiYmUCg4OCl9fSxEdz1mdW5jdGlvbihhKXt2YXIgYj1hP2d3KGEpOltdO3JldHVybiBvdyh7eWI6Yn0pfSxFdz1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjAmJnliKEEuUHJvbWlzZSk/Z3coYSkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYmCmt3KGIubmFtZSkmJiF5aS50ZXN0KGIudmFsdWUpfSk6ITF9LEJ3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOnpiKGEpP0xiKFN0cmluZyhhKSk6ImUwIn0senc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShGdywiIil9LHh3PWZ1bmN0aW9uKGEpe3JldHVybiB5dyhhLnJlcGxhY2UoL1xzL2csIiIpKX0seXc9ZnVuY3Rpb24oYSl7cmV0dXJuIExiKGEucmVwbGFjZShHdywiIikudG9Mb3dlckNhc2UoKSl9LHZ3PWZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC9bXHMtKCkvLl0vZywiIik7YS5jaGFyQXQoMCkhPT0iKyImJihhPSIrIithKTtyZXR1cm4oTSg1OTcpP0h3Okl3KS50ZXN0KGEpP2E6ImUwIn0sdXc9ZnVuY3Rpb24oYSl7dmFyIGI9YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCJAIik7aWYoYi5sZW5ndGg9PT0yKXt2YXIgYz1iWzBdOy9eKGdtYWlsfGdvb2dsZW1haWwpXC4vLnRlc3QoYlsxXSkmJihjPWMucmVwbGFjZSgvXC4vZywiIikpO2M9YysiQCIrYlsxXTtpZihKdy50ZXN0KGMpKXJldHVybiBjfXJldHVybiJlMCJ9LApLdz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihiKXtiLnZhbHVlJiZrdyhiLm5hbWUpJiYoYi52YWx1ZT1EaShiLnZhbHVlKSl9KSx7eWI6YX19Y2F0Y2goYil7cmV0dXJue3liOltdfX19LG53PWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSl9KT95YihBLlByb21pc2UpP1Byb21pc2UuYWxsKGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpP0FpKGIudmFsdWUpLnRoZW4oZnVuY3Rpb24oYyl7Yi52YWx1ZT1jfSk6UHJvbWlzZS5yZXNvbHZlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybnt5YjphfX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue3liOltdfX0pOnt0aGVuOmZ1bmN0aW9uKGIpe2Ioe3liOltdfSl9fTpQcm9taXNlLnJlc29sdmUoe3liOmF9KX0sR3c9L1swLTlgfiFAIyQlXiYqKClfXC0rPTo7PD4sLj98L1xcW1xdXS9nLEp3PS9eXFMrQFxTK1wuXFMrJC8sCkl3PS9eXCtcZHsxMCwxNX0kLyxIdz0vXlwrXGR7NywxNX0kLyxGdz0vWy5+XS9nLGx3PS9eWzAtOUEtWmEtel8tXXs0M30kLyxMdz1bInJlbSIsInJwbiIsInJmbiIsInJsbiIsInJzYSJdLE13PXt9LGl3PShNdy5lbWFpbD0iZW0iLE13LnBob25lX251bWJlcj0icG4iLE13LmZpcnN0X25hbWU9ImZuIixNdy5sYXN0X25hbWU9ImxuIixNdy5zdHJlZXQ9InNhIixNdy5jaXR5PSJjdCIsTXcucmVnaW9uPSJyZyIsTXcuY291bnRyeT0iY28iLE13LnBvc3RhbF9jb2RlPSJwYyIsTXcuZXJyb3JfY29kZT0iZWMiLE13LnJhd19lbWFpbD0icmVtIixNdy5yYXdfcGhvbmVfbnVtYmVyPSJycG4iLE13LnJhd19maXJzdF9uYW1lPSJyZm4iLE13LnJhd19sYXN0X25hbWU9InJsbiIsTXcucmF3X3N0cmVldD0icnNhIixNdyk7dmFyIG13PU9iamVjdC5mcmVlemUoWyJlbWFpbCIsCiJwaG9uZV9udW1iZXIiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwic3RyZWV0Il0pOwp2YXIgUXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1sdihhKSxkPWZ1bmN0aW9uKHApe3ZhciBxPUNwKGEpO3EmJihjLnRhZ19leHA9cSk7YihwKX0sZT1RKGEsSC5KLmRhKSxmPVEoYSxILkouWWEpLGc9WG8oW0YuRC5tYSxGLkQua2FdKSxoO2E6c3dpdGNoKGUpe2Nhc2UgWC5WLnhhOmNhc2UgWC5WLnpkOmNhc2UgWC5WLlpkOmNhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmg9ITA7YnJlYWsgYTtkZWZhdWx0Omg9ITF9aWYoaCYmZiYmZylpZihRKGEsSC5KLmZkKSlpZihOdyhhKSlkKGMpO2Vsc2V7dmFyIGw9c3coZiwhMCk7T3cobCxhLGMsZCl9ZWxzZXt2YXIgbjthOnt0cnl7bj1vdyhLdyhndyhmKSkpO2JyZWFrIGF9Y2F0Y2gocCl7fW49dm9pZCAwfWlmKG4pdHJ5e1B3KGMsYSkobil9Y2F0Y2gocCl7fWQoYyl9ZWxzZSBkZWxldGUgYy5lY19tb2RlLGQoYyl9LE53PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO3JldHVybiBiPT09WC5WLkZifHxiPT09WC5WLk9ifSxSdz1mdW5jdGlvbihhLApiKXtyZXR1cm4gYSE9PTF8fFEoYixILkouZGEpPT09WC5WLk9iJiYhTSg0NDUpPyExOiEhUShiLEguSi5mZCl9LFB3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe1J3KGMuZW5jcnlwdGlvblJlc3VsdD8xOjAsYil8fChhLmVtPWMucGFyYW0pO2lmKGMuaGFzVXBkKXt2YXIgZD1TdyhiKTtkJiYoYS5lY3NpZD1kKX1NKDUyMykmJmMubWV0YWRhdGFQYXJhbSYmKGEuZW1kPWMubWV0YWRhdGFQYXJhbSk7fX0sU3c9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuRmImJgohTSg0NDMpKXt2YXIgYj1RKGEsSC5KLkdhKTtyZXR1cm4gUShhLEguSi56ail8fFR2KGIpfX0sT3c9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSl0cnl7YS50aGVuKFB3KGMsYikpLnRoZW4oZnVuY3Rpb24oKXtkKGMpfSk7cmV0dXJufWNhdGNoKGUpe31kKGMpfTt2YXIgVHc9T2JqZWN0LmZyZWV6ZSh7Z2NwOiIxIixzc2N0ZToiMSIsY3RfY29va2llX3ByZXNlbnQ6IjEifSk7CnZhciBVdz1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMSwhMSl9O3dhKFV3LGF2KTtVdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7UXcoYSxmdW5jdGlvbihkKXtRKGEsSC5KLmFqKSYmZGVsZXRlIGQuaXRlbTtRKGEsSC5KLm9iKSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLFR3KTt2YXIgZT1nayhiLkljKTtlJiYoZC5fdWlwPWUpO3ZhciBmPSI/IitrdihkKTtjKGYpfSl9O3ZhciBWdz1uZXcgVXcoMjIsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFd3PW5ldyBVdygyMyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksWHc9bmV3IFV3KDYwLFtdKSxZdz1mdW5jdGlvbigpe307d2EoWXcsb3UpO1l3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi56ZCYmUShhLEguSi5saik/W3tlbmRwb2ludDpYbyhmcCk/UShhLEguSi5vYik/V3c6Vnc6WHcsbWV0aG9kOmx1fV06W119O3ZhciBadz1uZXcgWXc7Cgp2YXIgJHc9ZnVuY3Rpb24oYSl7aWYoT3AoKT09PTIpcmV0dXJuITE7dmFyIGI9UShhLEguSi5kYSksYz1bWC5WLnhhLFguVi51Yl07TSg1OTMpJiZjLnB1c2goWC5WLllkKTtyZXR1cm4gYy5pbmNsdWRlcyhiKT8hMDohMX0sYXg9ZnVuY3Rpb24oYSl7cmV0dXJuIE0oNTAwKSYmT3AoKSE9PTImJlEoYSxILkouZGEpPT09WC5WLnhhfSxieD1mdW5jdGlvbihhKXt2YXIgYj1IcihhLnByZWZpeCk7Yj09PSJfZ2NsIiYmKGI9IiIpO3JldHVybiBifSxjeD1mdW5jdGlvbihhKXtpZihSKGEsRi5ELlNiKXx8UihhLEYuRC5KZSkpe3ZhciBiPVIoYSxGLkQuR2QpLGM9RWQoUShhLEguSi5HYSksbnVsbCksZD1IcihjLnByZWZpeCk7Yy5wcmVmaXg9ZD09PSJfZ2NsIj8iIjpkO2lmKFIoYSxGLkQuU2IpKXt2YXIgZT1YcyhiLGMsIVEoYSxILkouTm0pLGF4KGEpKTtWKGEsSC5KLk5tLCEwKTtlJiZVKGEsRi5ELnFtLGUpfWlmKFIoYSxGLkQuSmUpKXt2YXIgZj1QcyhiLGMpLlJyO2YmJlUoYSxGLkQuTWwsCmYpfX19LGl4PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBkeDtzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLnhhOlUoYSxGLkQuZm0sVXEoITEpLl9ncyk7ZXgoYSk7ZngoYSxiKTtneChhLGIpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGM9bm0oam0uYmEuVmUpLGQ9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZihjJiZjLmdjbGlkJiYhZCYmIVEoYSxILkouWGUpKXt2YXIgZT1TdHJpbmcoYy5nY2xpZCksZj1uZXcgZXI7ZnIoZiw2KTtiLkNqKHt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOmUscWE6ZixvYTpbNF19KX19YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6ZXgoYSk7ZngoYSxiKTticmVhaztjYXNlIFguVi51YjppZihNKDQ1OCkmJlhvKEYuRC5rYSkmJlEoYSxILkoud2YpKXt2YXIgZz1RKGEsSC5KLkdhKTtoeChhLGIsYngoZykpfWJyZWFrO2Nhc2UgWC5WLllkOmV4KGEpLGZ4KGEsYiksZ3goYSxiKX1iLk90KGEpfSxmeD1mdW5jdGlvbihhLGIpe2lmKFhvKEYuRC5rYSkmJgpRKGEsSC5KLndmKSl7dmFyIGM9UShhLEguSi5HYSksZD1ieChjKSxlPVJzKGQpO1UoYSxGLkQuQmUsZS5FZyk7VShhLEYuRC5EZSxlLldoKTtVKGEsRi5ELkNlLGUuVWgpO00oNDIxKT8oangoYSxiLGMsZCksaHgoYSxiLGQpKTpXcyhkKT9qeChhLGIsYyxkKTpoeChhLGIsZCl9fSxoeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JHcoYSk7VHMoYywiZ2NsaWQiLCJnY2xhdyIsZCkuZm9yRWFjaChmdW5jdGlvbihmKXtiLkNqKGYpfSk7Yi5MbygpO2lmKCFjKXt2YXIgZT1PcyhCcihBcigpKT9ScCgpOnt9LE1zKTtlJiZVKGEsRi5ELnJoLGUpfX0sang9ZnVuY3Rpb24oYSxiLGMsZCl7VHMoZCwiYnJhaWRzIiwiZ2NsZ2IiLGF4KGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2IuanIoZyl9KTtpZighZCl7dmFyIGU9UihhLEYuRC5HZCk7Yz1FZChjLG51bGwpO2MucHJlZml4PWQ7dmFyIGY9UHMoZSxjLCEwKS5RcjtmJiZVKGEsRi5ELkplLGYpfX0sZXg9ZnVuY3Rpb24oYSl7aWYoTSgxNikpe3ZhciBiPQpPKGEuTSxGLkQuemEpO2J8fChiPU9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO3ZhciBjLGQ9UmooYiksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpO2lmKCFlKXt2YXIgZj1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2U9ZXx8SWooZiwiZ2NsaWQiLCExKX0oYz1lP2UubGVuZ3RoOnZvaWQgMCkmJlUoYSxGLkQuemwsYyl9fSxneD1mdW5jdGlvbihhLGIpe3ZhciBjPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgZDt2YXIgZTtiOnt2YXIgZixnPUEsaD1bXTt0cnl7Zy5uYXZpZ2F0aW9uJiZnLm5hdmlnYXRpb24uZW50cmllcyYmKGg9Zy5uYXZpZ2F0aW9uLmVudHJpZXMoKSl9Y2F0Y2goQyl7fWY9aDt2YXIgbD17fTt0cnl7Zm9yKHZhciBuPWYubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBwPWZbbl0mJmZbbl0udXJsO2lmKHApe3ZhciBxPShuZXcgVVJMKHApKS5zZWFyY2hQYXJhbXMscj1xLmdldCgiZ2NsaWQiKXx8CnZvaWQgMCx0PXEuZ2V0KCJnY2xzcmMiKXx8dm9pZCAwO2lmKHIpe2wuZ2NsaWQ9cjt0JiYobC5WaD10KTtlPWw7YnJlYWsgYn19fX1jYXRjaChDKXt9ZT1sfXZhciB1PWUsdj11LmdjbGlkLHg9dS5WaCx5O2lmKHYmJih4PT09dm9pZCAwfHx4PT09ImF3Inx8eD09PSJhdy5kcyJ8fFlmKDgpJiZ4PT09ImF3LmR2IikpaWYodiE9PXZvaWQgMCl7dmFyIHo9bmV3IGVyO2ZyKHosMik7ZnIoeiwzKTt5PXt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOnYscWE6eixvYTpbM119fWVsc2UgeT12b2lkIDA7ZWxzZSB5PXZvaWQgMDtkPXk7ZCYmKCFjJiZRKGEsSC5KLlhlKSYmKGQuZ2NsaWQ9IjAiKSxiLkNqKGQpLGIuTG8oKSl9fSxkeD1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLks9W107dGhpcy5OPXZvaWQgMH07az1keC5wcm90b3R5cGU7ay5Daj1mdW5jdGlvbihhKXtRcih0aGlzLkgsYSl9O2suanI9ZnVuY3Rpb24oYSl7UXIodGhpcy5LLGEpfTtrLmpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSy5sZW5ndGg+CjB9O2suTG89ZnVuY3Rpb24oKXt0aGlzLk4hPT0hMSYmKHRoaXMuTj0hMSl9O2sueW89ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYS5sZW5ndGgpe3ZhciBlPVtdLGY9W10sZz1bXTthLmZvckVhY2goZnVuY3Rpb24oaCl7ZS5wdXNoKGguZ2NsaWQpO3ZhciBsLG47Zi5wdXNoKChuPShsPWgucWEpPT1udWxsP3ZvaWQgMDpsLmdldCgpKSE9bnVsbD9uOjApO2cucHVzaChWcyhoLm9hfHxbMF0pKX0pO2UubGVuZ3RoJiZVKGIsYy5pZCxlLmpvaW4oIi4iKSk7ZHx8KGYubGVuZ3RoJiZVKGIsYy5xYSxmLmpvaW4oIi4iKSksZy5sZW5ndGgmJlUoYixjLm9hLGcuam9pbigiLiIpKSl9fTtrLk90PWZ1bmN0aW9uKGEpe3RoaXMuSC5sZW5ndGg+MCYmdGhpcy55byh0aGlzLkgsYSx7aWQ6Ri5ELmxiLHFhOkYuRC5CZCxvYTpGLkQuQ2R9LHRoaXMuTik7KHRoaXMuSC5sZW5ndGg9PT0wfHxNKDQyMSkpJiZ0aGlzLnlvKHRoaXMuSyxhLHtpZDpGLkQuU2IscWE6Ri5ELmZoLApvYTpGLkQuZ2h9KX07dmFyIGt4PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbmplY3RBZHNTY3JpcHQiKX07d2Eoa3gsaHUpO2t4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtreC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtreC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7YW8oYS5GbyxBLEIsYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfHxYbihhLkZvLGIucmVwbGFjZSgiJmZtdD00JiIsIiZmbXQ9MyYiKSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIgbHg9bmV3IGt4O3ZhciBteD1PYmplY3QuZnJlZXplKHthdHRyaWJ1dGlvbnNyYzoiIn0pLG54PU9iamVjdC5mcmVlemUoe2V2ZW50U291cmNlRWxpZ2libGU6ITEsdHJpZ2dlckVsaWdpYmxlOiEwfSk7ZnVuY3Rpb24gb3goKXt2YXIgYT1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU7cmV0dXJuIGEmJnliKGEuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcpfTt2YXIgcHg9T2JqZWN0LmZyZWV6ZSh7Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJHRVQiLGtlZXBhbGl2ZTohMCxyZWRpcmVjdDoiZm9sbG93In0pOwpmdW5jdGlvbiBxeChhLGIsYyxkLGUsZil7aWYoIXliKEEuZmV0Y2gpKXJldHVybiBmPT1udWxsfHxmKHZvaWQgMCx2b2lkIDApLCExO3ZhciBnPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scHgpO2ImJihnLmJvZHk9YixnLm1ldGhvZD0iUE9TVCIpO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZyxkKTtBLmZldGNoKGEsZykudGhlbihmdW5jdGlvbihoKXtpZihoLm9rKXtpZihoLmJvZHkpe3ZhciBsPWguYm9keS5nZXRSZWFkZXIoKSxuPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocCl7ZnVuY3Rpb24gcSgpe2wucmVhZCgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIHQ7dD1yLmRvbmU7dmFyIHU9bi5kZWNvZGUoci52YWx1ZSx7c3RyZWFtOiF0fSk7dT1jLlIrdTtmb3IodmFyIHY9dS5pbmRleE9mKCJcblxuIik7diE9PS0xOyl7dmFyIHg9WmcseTthOnt2YXIgej1tKHUuc3Vic3RyaW5nKDAsdikuc3BsaXQoIlxuIikpLEM9CnoubmV4dCgpLnZhbHVlLEQ9ei5uZXh0KCkudmFsdWU7aWYoU2IoQywiZXZlbnQ6IG1lc3NhZ2UiKSYmU2IoRCwiZGF0YTogIikpe3ZhciBJPUQuc3Vic3RyaW5nKDYpO3RyeXt5PUpTT04ucGFyc2UoSSk7YnJlYWsgYX1jYXRjaChHKXt9fXk9dm9pZCAwfXgoYyx5KTt1PXUuc3Vic3RyaW5nKHYrMik7dj11LmluZGV4T2YoIlxuXG4iKX1jLlI9dTt0PyhlPT1udWxsfHxlKGgpLHAoKSk6cSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT1udWxsfHxlKGgpO3AoKX0pfXEoKX0pfWU9PW51bGx8fGUoaCl9ZWxzZSBmPT1udWxsfHxmKGgsdm9pZCAwKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2Y9PW51bGx8fGYodm9pZCAwLGgpfSk7cmV0dXJuITB9O3ZhciByeD1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIkZldGNoUmljaFJlc3BvbnNlIiwxKTt0aGlzLk49YX07d2EocngsaHUpO3J4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07cngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07cngucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe3F4KGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5LHRoaXMuTixjPT1udWxsP3ZvaWQgMDpjLkdiLGEucGUsZnVuY3Rpb24oZCxlKXthLm9uRmFpbHVyZShlKX0pfTsKdmFyIHN4PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwO2EgaW5zdGFuY2VvZiBrdT9jPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpOmEgaW5zdGFuY2VvZiByeCYmKGM9e30sb3goKSYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmc9bngpKTshYiYmYyYmKGMuY3JlZGVudGlhbHM9Im9taXQiLGMubW9kZT0iY29ycyIpO3JldHVybiBjfSx0eD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iLm1ldGhvZDtRdyhhLGZ1bmN0aW9uKGYpe3ZhciBnPVEoYSxILkoub2IpLGg9WG8oZnApLGw9ZSBpbnN0YW5jZW9mIGl1PzM6ZSBpbnN0YW5jZW9mIGt4P2M9PT01fHxjPT09OD8zOjQ6ZSBpbnN0YW5jZW9mIGt1PyFnJiZoPzM6ODplIGluc3RhbmNlb2Ygcng/NzotMTtlIGluc3RhbmNlb2Yga3gmJmw9PT0zPyhmLmZtdD00LGYucmZtdD0zKTpmLmZtdD1sO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZixjPT09NjY/e2djcDoiNCJ9Omd8fGM9PT04fHxjPT09NjU/ClR3Ont9KTt2YXIgbj1laVtGLkQuZWhdO24mJihmW25dPWMpO2lmKE0oNTY5KSl7dmFyIHA9Yi5DdCxxPXAuamsuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdLmVuZHBvaW50LmVuZHBvaW50fSk7cS5sZW5ndGg+MCYmKHEucHVzaChwLm1rWzBdLmVuZHBvaW50LmVuZHBvaW50KSxmLmVwcD1xLnNvcnQoZnVuY3Rpb24odix4KXtyZXR1cm4gdi14fSkuam9pbigifiIpKX12YXIgcj0iPyIra3YoZiksdD1zeChlLGgpLHU7dT0oZSBpbnN0YW5jZW9mIGl1fHxlIGluc3RhbmNlb2Yga3gpJiZYbygiYWRfdXNlcl9kYXRhIik/bXg6dm9pZCAwO2Qocix7R2I6dCxhZjp1fSl9KX07dmFyIHV4PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwyKX07d2EodXgsYXYpO3V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt0eChhLGIsdGhpcy5lbmRwb2ludCxjKX07dmFyIHZ4PW5ldyB1eCg1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx3eD1uZXcgdXgoNixbXSkseHg9bmV3IHV4KDYzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx5eD1uZXcgdXgoNjUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHp4PW5ldyB1eCg4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxBeD1uZXcgdXgoNjYsW10pLEJ4PW5ldyB1eCg3NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk7dmFyIEN4PWZ1bmN0aW9uKCl7WWcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShDeCxZZyk7Q3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXtaYyhhLHZvaWQgMCwkZyh0aGlzLGIpLGIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP214Ont9KX07Q3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT97YXR0cmlidXRpb25SZXBvcnRpbmc6bnh9Ont9LGQ9JGcodGhpcyxiKTtiLnByb2Nlc3NfcmVzcG9uc2U/cXgoYSx2b2lkIDAsdGhpcyxjLHZvaWQgMCxkKTptZChhLHZvaWQgMCxjLHZvaWQgMCxkKX07dmFyIER4PWZ1bmN0aW9uKCl7Q3guYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShEeCxDeCk7RHgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIse3Byb2Nlc3NfcmVzcG9uc2U6ITF9KSl9O3ZhciBFeD1mdW5jdGlvbigpe307d2EoRXgsb3UpO0V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpIT09WC5WLnhhKXJldHVybltdO3ZhciBiPVhvKGZwKSxjPSEhUShhLEguSi5vYiksZD0hIVEoYSxILkouRWMpLGU9W3tlbmRwb2ludDpiP2Q/Yz95eDp4eDpjP3p4OnZ4Ond4LG1ldGhvZDpuZCgpP2I/TSg0OTApP2M/bnU6bmV3IHJ4KG5ldyBEeCk6bHg6bnU6bHV9XSxmPWI/Yz92b2lkIDA6eng6QXg7ZiYmZS5wdXNoKHtlbmRwb2ludDpmLG1ldGhvZDpudX0pO3JldHVybiBlfTtFeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYueGEmJldqKCkmJiFRKGEsSC5KLkVjKSYmTSg1NjkpJiZYbyhmcCk/W1t7ZW5kcG9pbnQ6QngsbWV0aG9kOm51fV1dOltdfTt2YXIgRng9bmV3IEV4O3ZhciBHeD1mdW5jdGlvbihhLGIpe2d1LmNhbGwodGhpcyxhLGIsMSwhMSwzKX07d2EoR3gsZ3UpO0d4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKSxlPSI/IitrdihkKTtjKGUse0diOmxkfSl9O3ZhciBIeD1uZXcgR3goNTQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEl4PW5ldyBHeCg1NSxbXSksSng9ZnVuY3Rpb24oKXt9O3dhKEp4LG91KTtKeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm5be2VuZHBvaW50Okh4LksoYSk/SHg6SXgsbWV0aG9kOm51fV19O3ZhciBLeD1uZXcgSng7CnZhciBMeD1mdW5jdGlvbigpe2F2LmNhbGwodGhpcyw5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLDEpfTt3YShMeCxhdik7THgucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi5aZH07THgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1laVtGLkQuZWhdO2YmJihlW2ZdPWQuZW5kcG9pbnQpO2UuZ2NwPTE7ZS5jdF9jb29raWVfcHJlc2VudD0xO2UuZm10PWIubWV0aG9kIGluc3RhbmNlb2Yga3U/ODozO3ZhciBnPSI/IitrdihlKTtjKGcse0diOmxkfSl9KX07dmFyIE14PW5ldyBMeCxOeD1mdW5jdGlvbigpe307d2EoTngsb3UpO054LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuW3tlbmRwb2ludDpNeCxtZXRob2Q6bnV9LHtlbmRwb2ludDpNeCxtZXRob2Q6bHV9XX07dmFyIE94PW5ldyBOeDt2YXIgUHg9WzY4XTt2YXIgUXg9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLnRpbWVvdXRNcz1iO3RoaXMuUmI9dm9pZCAwfSxSeD1mdW5jdGlvbihhKXthLlJifHwoYS5SYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5IKCk7YS5SYj12b2lkIDB9LGEudGltZW91dE1zKSl9LFRuPWZ1bmN0aW9uKGEpe2EuUmImJihjbGVhclRpbWVvdXQoYS5SYiksYS5SYj12b2lkIDApfTt2YXIgU3g9ZnVuY3Rpb24oKXt2YXIgYT1OZig2NiwwKTt0aGlzLks9W107dGhpcy5SPWE7dGhpcy5IPVlhKCl9LFV4PWZ1bmN0aW9uKGEpe3ZhciBiPVR4O2IuSy5wdXNoKGEpO2IuTnx8KGIuTj1mdW5jdGlvbigpe2Zvcih2YXIgYz1tKGIuSyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7dHJ5e2UoKX1jYXRjaChsKXt9fWZvcih2YXIgZj1tKGIuSC52YWx1ZXMoKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPXZvaWQgMDsoaD1nLnZhbHVlLndlKT09bnVsbHx8VG4oaCl9Yi5ILmNsZWFyKCl9LCRjKEEsInBhZ2VoaWRlIixiLk4pKX0sVng9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaChNbilbM118fG51bGwsYz0oYj9kZWNvZGVVUkkoYik6Yil8fCIiLGQ9UG4oYSwibGFiZWwiKXx8IiIsZT1QbihhLCJyYW5kb20iKXx8IiI7cmV0dXJuIGMrIjoiK0xuKGQpKyI6IitMbihlKX0sV3g9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVR4LAplPVZ4KGEpO2lmKCEoZC5ILmhhcyhlKXx8ZC5ILnNpemU+PWQuUikpe3ZhciBmPXt9O2ImJmI+MCYmYyYmKGYud2U9bmV3IFF4KGMsYikpO2QuSC5zZXQoZSxmKTt2YXIgZzsoZz1mLndlKT09bnVsbHx8UngoZyl9fSxVbj1mdW5jdGlvbihhLGIpe3ZhciBjPVZ4KGIpLGQsZTsoZD1hLkguZ2V0KGMpKT09bnVsbHx8KGU9ZC53ZSk9PW51bGx8fFRuKGUpO2EuSC5kZWxldGUoYyl9O1N4LnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5zaXplfTsKdmFyIFh4PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1RKGEsSC5KLmduKSk9PW51bGw/dm9pZCAwOmNbYi5wYl07cmV0dXJuIGQhPT12b2lkIDAmJmQ+PWIuT2d9LFl4PWZ1bmN0aW9uKGEsYil7aWYoUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxudikmJiEoYjw9MCkpcmV0dXJuIG5ldyBReChmdW5jdGlvbigpe3J2KG52KX0sYil9LFp4PWZ1bmN0aW9uKGEsYixjKXtRKGIsSC5KLmRhKSE9PVguVi54YXx8UShiLEguSi5FYyl8fChUeHx8KFR4PW5ldyBTeCxYeChiLG92KSYmVXgoZnVuY3Rpb24oKXt2YXIgZDtydihvdiwoZD1UeCk9PW51bGw/dm9pZCAwOmQuZ2V0U2l6ZSgpKX0pKSxYeChiLG52KT9XeChhLGMsZnVuY3Rpb24oKXtydihudik7dmFyIGQ7KGQ9VHgpPT1udWxsfHxVbihkLGEpfSk6V3goYSkpfSxUeDsKdmFyICR4PWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPzA6ZTtpZihkKXt2YXIgZj1RKGEsSC5KLkViKTtiPWIuTGEoe3JhbmRvbTpmK2UsZGF0YTpkfSl9cmV0dXJuW3tlbmRwb2ludDpiLG1ldGhvZDpjfSx7ZW5kcG9pbnQ6YixtZXRob2Q6bHV9XX0sYXk9ZnVuY3Rpb24oYSxiLGMsZCl7YXYuY2FsbCh0aGlzLGEsYiwxLGMpO3RoaXMuTj1kfTt3YShheSxhdik7YXkucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVuZHBvaW50PT09NjgmJlEoYSxILkoub2IpPyExOiEwfTtheS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSk7dGhpcy5OJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsdGhpcy5OKTt2YXIgZT1laVtGLkQuZWhdO2UmJihkW2VdPXRoaXMuZW5kcG9pbnQpO3RoaXMuZW5kcG9pbnQhPT02OCYmKGRlbGV0ZSBkLmdjbGF3LGRlbGV0ZSBkLmdjbGF3X3NyYyk7dmFyIGY9dm9pZCAwO1EoYSwKSC5KLm9iKT8oZC5nY3A9MSxkLmN0X2Nvb2tpZV9wcmVzZW50PTEpOnRoaXMuZW5kcG9pbnQ9PT02OCYmKGQuZ2NwPTUsYi5tZXRob2QgaW5zdGFuY2VvZiBrdSYmKGQuZm10PTgsZj1sZCkpO3ZhciBnPSI/IitrdihkKTtjKGcsZj97R2I6Zn06e30pfTtheS5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBheSh0aGlzLmVuZHBvaW50LHRoaXMuWix0aGlzLmphLGEpfTt2YXIgYnk9bmV3IGF5KDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITApLGN5PW5ldyBheSg2OCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMSksZHk9ZnVuY3Rpb24oKXt9O3dhKGR5LG91KTtkeS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1ndihhKTtyZXR1cm4gJHgoYSxieSxRKGEsSC5KLm9iKT9udTpseCxiPT1udWxsP3ZvaWQgMDpiWzBdKX07ZHkucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSksYz1bXTtNKDQ1OCkmJiFRKGEsSC5KLm9iKSYmCmMucHVzaCgkeChhLGN5LG51LGI9PW51bGw/dm9pZCAwOmJbMF0pKTtpZihiJiZiLmxlbmd0aD4xKWZvcih2YXIgZD1RKGEsSC5KLm9iKT9udTpseCxlPTE7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKCR4KGEsYnksZCxiW2VdLGUpKTtyZXR1cm4gY307dmFyIGV5PW5ldyBkeTsKdmFyIGd5PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuc3BsaXQoIn4iKS5maWx0ZXIoZnVuY3Rpb24oeCl7dmFyIHk9eC5zcGxpdCgiLiIpWzBdO3JldHVybiFMdy5zb21lKGZ1bmN0aW9uKHope3JldHVybiBTYih5LHopfSl9KS5qb2luKCJ+Iil9aWYoTncoYSkmJlEoYSxILkouZmQpKXt2YXIgYz1RKGEsSC5KLllhKSxkPUJwKCksZT1ndyhjLGQpLGY9ZS5zb21lKGZ1bmN0aW9uKHYpe3JldHVybiBTYih2Lm5hbWUsInJhdyIpfSksZz1mdyhlKSxoPWcuT28sbD1nLmlpLG49Zy5oYXNVcGQscD1nLlluLHE9Zy5lbmNyeXB0aW9uS2V5U3RyaW5nLHI9Zy5tZXRhZGF0YVBhcmFtLHQ9W107UncoMSxhKXx8dC5wdXNoKCImZW09IitiKGgpKTt0LnB1c2goIiZlbWU9IitwKTt2YXIgdTtyZXR1cm4gdT17aWk6bCxJdDp0LHN2OmUsWG46cixlbmNyeXB0aW9uS2V5U3RyaW5nOnEsVnI6ZnVuY3Rpb24odil7dmFyIHg9ZnkoYSx1KSx5PXN3KFEoYSxILkouWWEpLCEwLCEwKTtJdSh5LApmdW5jdGlvbih6KXtpZighUncoMSxhKSl7dmFyIEM9KHo9PW51bGw/dm9pZCAwOnoucGFyYW0pfHxvdyh7eWI6W119KS5wYXJhbTt4LmVtPUN9dih4KX0pfSxoYXNVcGQ6bixwZjp2b2lkIDAscmF3UGlpQWRkZWQ6Zn19fSxmeT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9Yi5wZikhPW51bGw/YzozLGU9e2d0bTpkdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYykscGY6ZH0pfTtiLlhuJiYoZS5lbWQ9Yi5Ybik7aWYoYi5oYXNVcGQpe3ZhciBmPQpTdyhhKTtmJiYoZS5lY3NpZD1mKX1iLnJhd1BpaUFkZGVkJiYoZVsiZ2FwLnJwIl09IjEiKTtyZXR1cm4gZX07dmFyIGRnO2Z1bmN0aW9uIGh5KGEsYil7dmFyIGM7KGM9ZGcpPT1udWxsfHwkZihjLkgsYSxiKX07dmFyIGl5PUFhKFsiLyJdKSxqeT1mdW5jdGlvbihhKXt0aGlzLkg9YTt0aGlzLmZhaWx1cmVUeXBlPXZvaWQgMH07ankucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ILmFjdGl2ZTtkPyhkLnBvc3RNZXNzYWdlKHt0eXBlOjEsY29tbWFuZDphfSksYih7ZGF0YToiIn0pKTpjKHtmYWlsdXJlVHlwZToxMyxkYXRhOiIifSl9Y2F0Y2goZSl7Yyh7ZmFpbHVyZVR5cGU6MTEsZGF0YTplLm1lc3NhZ2V9KX19O3ZhciBreT1mdW5jdGlvbihhLGIpe3RoaXMuZmFpbHVyZVR5cGU9YTt0aGlzLkg9Yn07a3kucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXtjKHtmYWlsdXJlVHlwZTp0aGlzLmZhaWx1cmVUeXBlLGRhdGE6ImYiK3RoaXMuZmFpbHVyZVR5cGUrKCJ0IisoKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5IKSl9KX07CnZhciBueT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuaW5pdFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5IPW5ldyBreSgxNSx0aGlzLmluaXRUaW1lKTt2YXIgYz1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKCl9LDIwKX0pLGQ9bHkoYSkudGhlbihmdW5jdGlvbihlKXtiLkg9bmV3IGp5KGUpO215KGIsZSl9KS5jYXRjaChmdW5jdGlvbigpe2IuSD1uZXcga3koNCxiLmluaXRUaW1lKX0pO3RoaXMuSz1Qcm9taXNlLnJhY2UoW2MsZF0pfSxteT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGQpe2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZC5zdGF0ZT09PSJyZWR1bmRhbnQiKXt2YXIgZT1iLmFjdGl2ZTtlJiZlLnN0YXRlIT09InJlZHVuZGFudCJ8fChhLkg9bmV3IGt5KDEwLGEuaW5pdFRpbWUpKX19KX07YyhiLmFjdGl2ZSk7YyhiLndhaXRpbmcpO2MoYi5pbnN0YWxsaW5nKTsKYi5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmb3VuZCIsZnVuY3Rpb24oKXtjKGIuaW5zdGFsbGluZyl9KX07bnkucHJvdG90eXBlLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSy50aGVuKGZ1bmN0aW9uKCl7ZC5ILmlvKGEsYixjKX0pfTtueS5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gMn07CnZhciBseT1mdW5jdGlvbihhKXt2YXIgYixjPUxmKDExKTtjPUxmKDEwKTtiPWM7dmFyIGQ9e3Njb3BlOihUYihhLmhyZWYsIi8iKT9hLmhyZWYuc2xpY2UoMCwtMSk6YS5ocmVmKSsiL18vc2VydmljZV93b3JrZXIifTtiJiYoZC51cGRhdGVWaWFDYWNoZT0iYWxsIik7dmFyIGUsZj1veShhLGIpLGc9bmV3IE1hcChbWyJwYXRoIixhLnBhdGhuYW1lXV0pLGg9SnAoa2MoZikudG9TdHJpbmcoKSk7ZT1McChoLnprLGgucGFyYW1zLGguZnJhZ21lbnQsZyk7dmFyIGw9SWMoKSxuPWtjKGUpO3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLGQpfWNhdGNoKHApe3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLnRvU3RyaW5nKCksZCl9Y2F0Y2gocSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHEpfX19OwpmdW5jdGlvbiBveShhLGIpe2Zvcih2YXIgYz1LcChpeSksZD1hLnBhdGhuYW1lLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wfSksZT1bXS5jb25jYXQodyhkKSxbIl8iLCJzZXJ2aWNlX3dvcmtlciIsYiwic3cuanMiXSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWM9TXAoYyxnLnZhbHVlKTtyZXR1cm4gY307ZnVuY3Rpb24gcHkoYSl7dmFyIGI9bm0oam0uYmEuT2gpLGM9Yj09bnVsbD92b2lkIDA6YlthXTtjfHxhIT09ImxpdGUifHwoYz1iPT1udWxsP3ZvaWQgMDpiLmZ1bGwpO3JldHVybiBjfXZhciBxeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cHkoImZ1bGwiKTtkP2QuZGVsZWdhdGUoYSxiLGMpOmMoe2ZhaWx1cmVUeXBlOjE2fSl9O2Z1bmN0aW9uIHJ5KGEsYixjLGQsZSl7cXkoe2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6MSx0ZW1wbGF0ZXM6Yixib2R5OiIiLHByb2Nlc3NSZXNwb25zZTohMSxlbmNyeXB0aW9uS2V5U3RyaW5nOmUsc29SZWZlcnJlcjpBLmxvY2F0aW9uLmhyZWZ9fSxjLGZ1bmN0aW9uKGYpe2QoZi5mYWlsdXJlVHlwZSxmLmRhdGEpfSl9O3ZhciBzeT1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIlNlcnZpY2VXb3JrZXJGcmFtZWxlc3MiKTt0aGlzLk49YX07d2Eoc3ksaHUpO3N5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtzeS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtzeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7cnkoYix0aGlzLk4uaWksZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKGQpe2MuTi5wZj1kO2EucmQodm9pZCAwKX0sdGhpcy5OLmVuY3J5cHRpb25LZXlTdHJpbmcpfTsKdmFyIHR5PWZ1bmN0aW9uKGEpe2F2LmNhbGwodGhpcyxhLFsiYWRfdXNlcl9kYXRhIiwiYWRfc3RvcmFnZSJdLDEsITEpfTt3YSh0eSxhdik7dHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1RKGEsSC5KLnBqKSxnPWZ1bmN0aW9uKCl7dmFyIG49a3YoZSk7ZiYmYi5tZXRob2QgaW5zdGFuY2VvZiBzeSYmKG4rPWYuSXQuam9pbigiIikpO2Mobix7R2I6bGR9KX07aWYoZC5lbmRwb2ludD09PTIxfHxkLmVuZHBvaW50PT09NzMpe3ZhciBoPWdrKGIuSWMpO2gmJihlLl91aXA9aCl9aWYoZiYmKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxmeShhLGYpKSwhKGIubWV0aG9kIGluc3RhbmNlb2Ygc3kpKSl7dmFyIGw7Zi5wZj0obD1mLnBmKSE9bnVsbD9sOjE3O2YuVnIoZnVuY3Rpb24obil7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLG4pO2coKX0pO3JldHVybn1nKCl9KX07dHkucHJvdG90eXBlLlI9CmZ1bmN0aW9uKGEpe3JldHVybiBhdi5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkuc2xpY2UoMCwtMSl9O3ZhciB1eT1uZXcgdHkoMTEpLHZ5PW5ldyB0eSg3Miksd3k9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTt0aGlzLlI9Yn07d2Eod3ksb3UpO3d5LnByb3RvdHlwZS5mYT1mdW5jdGlvbigpe3JldHVybiBNKDU2Myk/W3RoaXMuWix0aGlzLlJdOk0oMTQxKT9bdGhpcy5aXTpbdGhpcy5SXX07d3kucHJvdG90eXBlLmphPWZ1bmN0aW9uKCl7cmV0dXJuIG51LmlzU3VwcG9ydGVkKCk/W251XTpbbXUsbHVdfTt3eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5mYSgpLGQ9Yy5mbGF0TWFwKGZ1bmN0aW9uKGYpe3JldHVybiBiLmphKCkubWFwKGZ1bmN0aW9uKGcpe3JldHVybntlbmRwb2ludDpmLG1ldGhvZDpnfX0pfSk7aWYodGhpcy5OKCkpe3ZhciBlPVEoYSxILkoucGopO2UmJmUuaGFzVXBkJiZkLnVuc2hpZnQoe2VuZHBvaW50OmNbMF0sbWV0aG9kOm5ldyBzeShlKX0pfXJldHVybiBkfTsKdmFyIHh5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHV5LHZ5KX07d2EoeHksd3kpO3h5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3ZhciB5eT1uZXcgeHksenk9bmV3IHR5KDIxKSxBeT1uZXcgdHkoNzMpLEJ5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHp5LEF5KX07d2EoQnksd3kpO0J5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTg3KX07dmFyIEN5PW5ldyBCeTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEd5PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkthKXt2YXIgYj1mdShhKTtpZighTSg0MjcpJiYoanAoYSxiKXx8UShhLEguSi5oZCkpJiZYbyhmcCkpe3ZhciBjPWxwKGEsYik7aWYoYyl7dmFyIGQ9Tm0oNjksYyk7VGwoZCxhLDY5KTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OjY5LGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCl9fXZhciBlPXliKGEuTS5vblN1Y2Nlc3MpP2EuTS5vblN1Y2Nlc3M6eGI7JHUoYSxiKTtlKCl9fTt2YXIgSHk9e1g6e1dxOjAsRWs6MSxaZzoyLFhrOjMsbWk6NCxWazo1LFdrOjYsWWs6NyxuaTo4LHRtOjksc206MTAsVGk6MTEsdm06MTIsQmg6MTMsRW06MTQsaWo6MTUsU3E6MTYsamQ6MTcsdWo6MTgsdmo6MTksd2o6MjAsQ246MjEseGo6MjJ9fTtIeS5YW0h5LlguV3FdPSJSRVNFUlZFRF9aRVJPIjtIeS5YW0h5LlguRWtdPSJBRFNfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5aZ109IkNPTlRBSU5FUl9FWEVDVVRFX1NUQVJUIjtIeS5YW0h5LlguWGtdPSJDT05UQUlORVJfU0VUVVBfRU5EIjtIeS5YW0h5LlgubWldPSJDT05UQUlORVJfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5Wa109IkNPTlRBSU5FUl9CTE9DS0lOR19FTkQiO0h5LlhbSHkuWC5Xa109IkNPTlRBSU5FUl9FWEVDVVRFX0VORCI7SHkuWFtIeS5YLllrXT0iQ09OVEFJTkVSX1lJRUxEX0VORCI7SHkuWFtIeS5YLm5pXT0iQ09OVEFJTkVSX1lJRUxEX1NUQVJUIjtIeS5YW0h5LlgudG1dPSJFVkVOVF9FWEVDVVRFX0VORCI7Ckh5LlhbSHkuWC5zbV09IkVWRU5UX0VWQUxVQVRJT05fRU5EIjtIeS5YW0h5LlguVGldPSJFVkVOVF9FVkFMVUFUSU9OX1NUQVJUIjtIeS5YW0h5Llgudm1dPSJFVkVOVF9TRVRVUF9FTkQiO0h5LlhbSHkuWC5CaF09IkVWRU5UX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguRW1dPSJHQTRfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5pal09IlBBR0VfTE9BRCI7SHkuWFtIeS5YLlNxXT0iUEFHRVZJRVciO0h5LlhbSHkuWC5qZF09IlNOSVBQRVRfTE9BRCI7SHkuWFtIeS5YLnVqXT0iVEFHX0NBTExCQUNLX0VSUk9SIjtIeS5YW0h5LlgudmpdPSJUQUdfQ0FMTEJBQ0tfRkFJTFVSRSI7SHkuWFtIeS5YLndqXT0iVEFHX0NBTExCQUNLX1NVQ0NFU1MiO0h5LlhbSHkuWC5Dbl09IlRBR19FWEVDVVRFX0VORCI7SHkuWFtIeS5YLnhqXT0iVEFHX0VYRUNVVEVfU1RBUlQiO3ZhciBJeT17fTtJeS5YPUh5Llg7dmFyIEp5PXtSdToiTCIsWHE6IlMiLGt2OiJZIixSdDoiQiIsbnU6IkUiLE51OiJJIixmdjoiVEMiLHZ1OiJIVEMiLG91OiJGIixNdToiQyJ9LEt5PXtYcToiUyIsbHU6IlYiLGF1OiJFIixkdjoidGFnIn0sTHk9e30sTXk9KEx5W0l5LlgudmpdPSI2IixMeVtJeS5YLndqXT0iNSIsTHlbSXkuWC51al09IjciLEx5KTtmdW5jdGlvbiBOeShhKXt2YXIgYj1FKDUpLGM9TnVtYmVyKGEuZXZlbnRJZCksZD1OdW1iZXIoYS50YWdJZCk7cmV0dXJuKFNiKGIsIkdUTS0iKT9iOiJHVE0tIitiKSsiOiIrKEFiKGMpP2MrIjoiOiIiKSsoQWIoZCk/ZCsiOiI6IiIpK2Euc3RhZ2V9O2Z1bmN0aW9uIE95KCl7dmFyIGE9cmQoKTtyZXR1cm4hIShhJiZhLm1hcmsgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5tZWFzdXJlIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNZWFzdXJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWFya3MgaW5zdGFuY2VvZiBGdW5jdGlvbil9O3ZhciBQeT1mdW5jdGlvbigpe3RoaXMuSD17fX0sUXk7ZnVuY3Rpb24gUnkoKXtReXx8KFF5PW5ldyBQeSk7cmV0dXJuIFF5fWZ1bmN0aW9uIFN5KGEpe3ZhciBiPVJ5KCksYz1OeShhKTtyZXR1cm4gYi5IW2NdfWZ1bmN0aW9uIFR5KGEsYil7dmFyIGM7YTp7dmFyIGQ9UnkoKTtpZihPeSgpKXt2YXIgZT1OeShhKSxmLGc7aWYoZj0oZz1yZCgpKT09bnVsbD92b2lkIDA6Zy5tYXJrKGUsYikpe2M9ZC5IW2VdPWY7YnJlYWsgYX19Yz12b2lkIDB9cmV0dXJuIGN9O2Z1bmN0aW9uIFV5KGEsYil7aWYoT3koKSl7YS5lbnRyeT1OeShhKTt2YXIgYz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpO2Muc3RhZ2U9YjtkZWxldGUgYy5zZW50O3ZhciBkPVN5KGI9PT1JeS5YLmpkP3tzdGFnZTpJeS5YLmpkfTpjKSxlPVN5KGEpO2lmKGQmJmUmJiEoZC5zdGFydFRpbWU+ZS5zdGFydFRpbWUpKXtjLnN0YWdlPWIrIjoiK2Euc3RhZ2U7dmFyIGY9TnkoYyksZz17c3RhcnQ6ZC5uYW1lLGVuZDplLm5hbWV9LGgsbDtyZXR1cm4obD0oaD1yZCgpKT09bnVsbD92b2lkIDA6aC5tZWFzdXJlKGYsZykpPT1udWxsP3ZvaWQgMDpsLmR1cmF0aW9ufX19O3ZhciBXeT1mdW5jdGlvbigpe3ZhciBhPTU7VnkuUm8+MCYmKGE9VnkuUm8pO3RoaXMuSz1hO3RoaXMuSD0wO3RoaXMuTj1bXX0sWHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSDxhLks/ITE6TmIoKS1hLk5bYS5IJWEuS108MUUzfSxZeT1mdW5jdGlvbihhKXt2YXIgYj1hLkgrKyVhLks7YS5OW2JdPU5iKCl9O3ZhciBWeT17Um86TmYoMywwKX0sJHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMueWE9W107dGhpcy5IPXZvaWQgMDt0aGlzLlo9e307dGhpcy5LPXZvaWQgMDt0aGlzLmphPW5ldyBXeTt0aGlzLkxhPTFFMzt0aGlzLlI9dGhpcy5OPSExO3RoaXMuZmE9RGIoKTtaeSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGI9W1sidiIsIjMiXSxbInQiLCJ0Il0sWyJwaWQiLFN0cmluZyhhLmZhKV1dLGM9ZHUoKTtjJiZiLnB1c2goWyJndG0iLGNdKTtyZXR1cm4gYn0pO2NkKGZ1bmN0aW9uKCl7YS5mYT1EYigpfSw4NjRFNSl9LFp5PWZ1bmN0aW9uKGEsYil7YS55YS5wdXNoKGIpfSxhej1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5IO2lmKGQ9PT12b2lkIDApaWYoYylkPXJqKCk7ZWxzZSByZXR1cm4iIjtmb3IodmFyIGU9W2ZrKCJodHRwczovLyIrRSgyMSkpLCIvYSIsIj9pZD0iK0UoNSldLGY9bShhLnlhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPQpoKHtldmVudElkOmQsdGY6ISFifSksbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1tKHAudmFsdWUpLHI9cS5uZXh0KCkudmFsdWUsdD1xLm5leHQoKS52YWx1ZTtlLnB1c2goIiYiK3IrIj0iK3QpfWUucHVzaCgiJno9MCIpO3JldHVybiBlLmpvaW4oIiIpfSxiej1mdW5jdGlvbihhKXtpZigkaygyNikmJihhLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApLGEuSCE9PXZvaWQgMCYmYS5SKSl7dmFyIGI9bG8oY28uaWEuWmIpO2lmKGdvKGIpKWEuTnx8KGEuTj0hMCxpbyhiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9KSk7ZWxzZSBpZihhLlpbYS5IXXx8WHkoYS5qYSl8fGEuTGEtLTw9MClQKDEpLGEuWlthLkhdPSEwO2Vsc2V7WXkoYS5qYSk7dmFyIGM9YXooYSwhMCk7WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmEuSH0sYyk7YS5SPSExO2EuTj0hMX19fSxjej1mdW5jdGlvbihhKXthLkt8fChhLks9CkEuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSw1MDApKX0sZXo9ZnVuY3Rpb24oYSl7dmFyIGI9ZHo7Yi5aW2FdfHwoYSE9PWIuSCYmKGJ6KGIpLGIuSD1hKSxiLlI9ITAsY3ooYiksYXooYikubGVuZ3RoPj0yMDIyJiZieihiKSl9LGR6O2Z1bmN0aW9uIGZ6KGEpe2d6KCk7WnkoZHosYSl9ZnVuY3Rpb24gaHooKXt2YXIgYTthPWE9PT12b2lkIDA/ITE6YTtneigpO3ZhciBiPWEsYz1kejtiPWI9PT12b2lkIDA/ITE6YjtpZihmbi5OJiYkaygyNikpe3ZhciBkPWF6KGMsITAsITApO2I/Vm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCk6WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCl9fWZ1bmN0aW9uIGd6KCl7ZHp8fChkej1uZXcgJHkpfTtmdW5jdGlvbiBpeigpe2Z1bmN0aW9uIGEoYyxkKXt2YXIgZT13YihyYltkXXx8W10pO2UmJmIucHVzaChbYyxlXSl9dmFyIGI9W107YSgidSIsIkdUTSIpO2EoInV0IiwiVEFHR0lORyIpO2EoImgiLCJIRUFMVEgiKTtyZXR1cm4gYn07dmFyIGp6PSJodHRwczovLyIrRSgyMSksa3o9ZnVuY3Rpb24oKXt0aGlzLk49ITE7dGhpcy5SPVtdO3RoaXMuWj1bXTt0aGlzLkg9e1RDOjAsSFRDOjB9O3RoaXMuSz17fX0sbHo9ZnVuY3Rpb24oYSxiLGMsZCl7YS5LW2JdfHwoYS5LW2JdPXt9KTthLktbYl1bY109ZH0sb3o9ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0iIixkPW16KCk7QWIoZCkmJihhLkguST1NYXRoLmZsb29yKGQpKTtjPW56KGEuSCxKeSkudG9TdHJpbmcoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhhLkspKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWEuS1tnXS5uYW1lLGw9IiIsbj1ueihhLktbZ10sS3kpO24mJihsPWgrIi4iK24udG9TdHJpbmcoKSxiKz0ifiIrbCl9dmFyIHA9In5BV0NUIithLlIuam9pbigiLiIpLHE9In5HQSIrYS5aLmpvaW4oIi4iKSxyPSImY2NpZD0iK3ZrKCkudG9TdHJpbmcoKSsiJmNpZD0iK0UoNSkudG9TdHJpbmcoKSsiJmw9IitjK2IrKGEuUi5sZW5ndGg/CnA6IiIpKyhhLloubGVuZ3RoP3E6IiIpO2lmKE0oMjE0KSl7dmFyIHQsdT0odD1yZCgpKT09bnVsbD92b2lkIDA6dC5nZXRFbnRyaWVzQnlOYW1lKEtjKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIFN0cmluZyh2LmR1cmF0aW9uKX0pLmpvaW4oIi4iKTt1JiYocis9In5TUyIrdSl9cmV0dXJuIHJ9LHB6PWZ1bmN0aW9uKGEsYil7aWYoIWIuc3RhZ2V8fGEuTnx8IU95KCl8fFN5KGIpKXJldHVybiExO3ZhciBjLGQ9KGM9cmQoKSk9PW51bGw/dm9pZCAwOmMudGltZU9yaWdpbjtpZighQWIoZCkpYS5OPSEwO2Vsc2UgaWYoQWIoJGsoMjUpKSYmIVN5KHtzdGFnZTpJeS5YLmpkfSkmJiFhLk4mJk95KCkpdHJ5e3ZhciBlPU51bWJlcigkaygyNSkpO1R5KHtzdGFnZTpJeS5YLmpkfSx7c3RhcnRUaW1lOk1hdGgubWF4KGUtZCwwKX0pO1R5KHtzdGFnZTpJeS5YLmlqfSx7c3RhcnRUaW1lOjB9KTt2YXIgZj1VeSh7c3RhZ2U6SXkuWC5qZH0sSXkuWC5paik7ZiYmKGEuSC5MPU1hdGguZmxvb3IoZikpfWNhdGNoKGcpe2EuTj0KITB9aWYoYS5OKXJldHVybiExO3RyeXtpZighVHkoYikpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuIGEuTj0hMCwhMX1yZXR1cm4hMH0scXo9ZnVuY3Rpb24oYSxiLGMpe2lmKHB6KGEsYikpdHJ5e3ZhciBkPVV5KGIsYyk7aWYoZClyZXR1cm4gTWF0aC5mbG9vcihkKX1jYXRjaChlKXthLk49ITB9fSxzej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5taX0pfSx0ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCksYj1xeihhLHtzdGFnZTpJeS5YLlhrfSxJeS5YLm1pKTtiIT09dm9pZCAwJiYoYS5ILlM9Yil9LHV6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm5pfSl9LHZ6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLkJoLGV2ZW50SWQ6YX0pO2MuS1thXSYmYy5LW2FdLm5hbWV8fGx6KGMsYSwibmFtZSIsU2IoYiwiZ3RtLiIpP2I6IioiKX0sd3o9ZnVuY3Rpb24oYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llgudm0sCmV2ZW50SWQ6YX0sSXkuWC5CaCk7YyE9PXZvaWQgMCYmbHooYixhLCJTIixjKX0seXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpLGQ9cXooYyx7c3RhZ2U6SXkuWC50bSxldmVudElkOmF9LEl5LlguQmgpO2QhPT12b2lkIDAmJmx6KGMsYSwiRSIsZCk7aWYoYj09PSJndG0ubG9hZCIpe3ZhciBlPXF6KGMse3N0YWdlOkl5LlguV2t9LEl5LlguWmcpO2UhPT12b2lkIDAmJihjLkguRT1lKTtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtpZighYy5OJiZPeSgpJiZFKDUpKXt2YXIgZj14eigpO2YhPT12b2lkIDAmJihjLkguRj1NYXRoLmZsb29yKGYpKTt0cnl7Zm9yKHZhciBnPWl6KHtldmVudElkOjAsdGY6ITF9KSxoPVtdLGw9bShnKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bShuLnZhbHVlKSxxPXAubmV4dCgpLnZhbHVlLHI9cC5uZXh0KCkudmFsdWU7aC5wdXNoKCImIitxKyI9IityKX12YXIgdD1DcCgpLHU9W1tmayhqeiksIi9hP3Y9MyZ0PWwiLCImcGlkPSIrCkRiKCkudG9TdHJpbmcoKSwiJnJ2PSIrRSgxNCksdD8iJnRhZ19leHA9Iit0OiIiLGguam9pbigiIildLmpvaW4oIiIpLCImZ3RtPSIsZHUoKSxveihjKV0uam9pbigiIik7aWYodS5sZW5ndGg+MjAyMil7dmFyIHY9TWF0aC5tYXgodS5sYXN0SW5kZXhPZigiLlRTIiwyMDIyKSx1Lmxhc3RJbmRleE9mKCJ+IiwyMDIyKSk7dT11LnNsaWNlKDAsdil9WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1Nn0sdSl9Y2F0Y2goeCl7fX19KX19LHp6O2Z1bmN0aW9uIHJ6KCl7enp8fCh6ej1uZXcga3opO3JldHVybiB6en1mdW5jdGlvbiBteigpe3RyeXt2YXIgYTtyZXR1cm4oKGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdKS5kb21JbnRlcmFjdGl2ZX1jYXRjaChiKXt9fQpmdW5jdGlvbiBueihhLGIpe3JldHVybiBPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGJbY119KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY10hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuKCIiKyhjPT09InRhZyI/IiI6YykpLmNvbmNhdChhW2NdLnRvU3RyaW5nKCkpfSkuam9pbigiLiIpfWZ1bmN0aW9uIEF6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVtLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5aLnB1c2goYyl9ZnVuY3Rpb24gQnooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRWssZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLlIucHVzaChjKX1mdW5jdGlvbiBDeihhKXt2YXIgYj1yeigpO3B6KGIse3N0YWdlOkl5LlguVGksZXZlbnRJZDphfSl9CmZ1bmN0aW9uIER6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnNtLGV2ZW50SWQ6YX0sSXkuWC5UaSk7YyE9PXZvaWQgMCYmbHooYixhLCJWIixjKX1mdW5jdGlvbiB4eigpe3RyeXt2YXIgYSxiO3JldHVybihiPShhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoInBhaW50IikuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQifSkpPT1udWxsP3ZvaWQgMDpiLnN0YXJ0VGltZX1jYXRjaChjKXt9fWZ1bmN0aW9uIEV6KGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLnhqLGV2ZW50SWQ6YS5pZCx0YWdJZDpOdW1iZXIoYltHZi55al0pfSl9CmZ1bmN0aW9uIEZ6KGEsYixjKXt2YXIgZD1yeigpLGU9ZG4oYiksZj1OdW1iZXIoYltHZi55al0pLGc9cXooZCx7c3RhZ2U6YyxldmVudElkOmEuaWQsdGFnSWQ6Zn0sSXkuWC54aik7aWYoZyE9PXZvaWQgMCYmZC5LW2EuaWRdKXt2YXIgaD1kLktbYS5pZF0udGFnfHwiIixsLG49KGw9TXlbY10pIT1udWxsP2w6IjEiLHA9bmV3IFJlZ0V4cCgiVFNcXGQiK2UrIi5USSIrZikscT0iVFMiK24rZSsiLlRJIitmKyIuVEUiK2c7aC5zZWFyY2gocCk+PTA/biE9PSIxIiYmbHooZCxhLmlkLCJ0YWciLGgucmVwbGFjZShwLHEucmVwbGFjZSgiLlRFIitnLCIiKSkpOihseihkLGEuaWQsInRhZyIsKGg/aCsiLiI6IiIpK3EpLGU9PT0iaHRtbCImJihkLkguSFRDKz0xKSxkLkguVEMrPTEpfX07CnZhciBHej1mdW5jdGlvbihhKXtRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLHB2KSYmcnYocHYpfSxJej1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtpZihiPT09WC5WLkthKUd5KGEpO2Vsc2V7dmFyIGM9SHpbYl07aWYoYylmbi5IJiZiPT09WC5WLnhhJiZCeihhLk0uZXZlbnRJZCksUXcoYSxmdW5jdGlvbihkKXt2YXIgZT1neShhKTtWKGEsSC5KLnBqLGUpO2UmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxmeShhLGUpKTtGeSgzLGEuZXZlbnROYW1lKTt2YXIgZj17fSxnPXt9O1F1KGEse1FzOmZ1bmN0aW9uKGgsbCxuKXtpZihuLmZpbmQoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNQcmltYXJ5JiYocC5zdGF0dXM9PT0wfHxwLnN0YXR1cz09PTEpfSkpaC5NLm9uU3VjY2VzcygpO2Vsc2UgR3ooaCksaC5NLm9uRmFpbHVyZSgpfSxTczpmdW5jdGlvbihoLGwpe3ZhciBuO3ZhciBwPWwuc2IscT1sLmVuZHBvaW50LmVuZHBvaW50LApyO3N3aXRjaChsLnBrIGluc3RhbmNlb2Yga3g/MjpsLnBrIGluc3RhbmNlb2Ygcng/NDpsLnBrIGluc3RhbmNlb2Yga3U/MzoxKXtjYXNlIDI6cj0yMTticmVhaztjYXNlIDM6UShoLEguSi5kYSk9PT1YLlYueGEmJlEoaCxILkoub2IpJiZxIT09OSYmKHI9MjApO2JyZWFrO2Nhc2UgNDpyPTIwfWlmKHIpe3ZhciB0O3ZhciB1PU5mKHIsLTEpO1h4KGgsb3YpPyhaeChwLGgsdSksdD17TXQ6VHh9KTp0PXt3ZTpZeChoLHUpfTt2YXIgdj10LHg9di53ZSx5PXYuTXQ7eD09bnVsbHx8UngoeCk7bj17d2U6eCxrdDp5fX1lbHNlIG49e307dmFyIHo9bixDPXoud2UsRD16Lmt0O0MmJihmW2wuc2JdPUMpO0QmJihnW2wuc2JdPUQpfSx1bzpmdW5jdGlvbihoLGwpe2ZbbC5zYl0mJihUbihmW2wuc2JdKSxkZWxldGUgZltsLnNiXSk7Z1tsLnNiXSYmKFVuKGdbbC5zYl0sbC5zYiksZGVsZXRlIGdbbC5zYl0pfSxSczpmdW5jdGlvbihoLGwsbixwLHEpe2lmKHEubGVuZ3RoJiZiIT09WC5WLnViKXt2YXIgcj0KcVtxLmxlbmd0aC0xXSx0PXIuc2IsdT1yLmVuZHBvaW50LmVuZHBvaW50O2lmKCFQeC5pbmNsdWRlcyh1KSl7dmFyIHY9aC5NO01sKHt0YXJnZXRJZDpoLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDp0LHBhcmFtZXRlckVuY29kaW5nOjMsZW5kcG9pbnQ6dX0scWI6e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGgsSC5KLnVmKSxwcmlvcml0eUlkOlEoaCxILkoudmYpfX0pO1EoaCxILkouZGEpfX19fSxjKX0pO2Vsc2UgYS5NLm9uRmFpbHVyZSgpfX0sSno9e30sSHo9KEp6W1guVi56ZF09WncsSnpbWC5WLnhhXT1GeCxKeltYLlYuWWRdPUt4LEp6W1guVi5aZF09T3gsSnpbWC5WLnViXT1leSxKeltYLlYuT2JdPXl5LEp6W1guVi5GYl09Q3ksSnopO3ZhciBLej17Z2o6e2JwOiIxIix1cToiMiIsVnE6IjMifX07CnZhciBMej17fSxNej1PYmplY3QuZnJlZXplKChMeltGLkQuZmhdPTEsTHpbRi5ELmdoXT0xLEx6W0YuRC5CZF09MSxMeltGLkQuQ2RdPTEsTHpbRi5ELlJjXT0xLEx6W0YuRC5zaV09MSxMeltGLkQudWldPTEsTHpbRi5ELkNsXT0xLEx6W0YuRC5paF09MSxMeltGLkQuQ2ZdPTEsTHpbRi5ELkRmXT0xLEx6W0YuRC5FZl09MSxMeltGLkQuSGFdPTEsTHpbRi5ELkZmXT0xLEx6W0YuRC5GZF09MSxMeltGLkQudWNdPTEsTHpbRi5ELkhkXT0xLEx6W0YuRC5MYl09MSxMeltGLkQuQ2JdPTEsTHpbRi5ELlRiXT0xLEx6W0YuRC5uYl09MSxMeltGLkQuZWJdPTEsTHpbRi5ELkdlXT0xLEx6W0YuRC5raF09MSxMeltGLkQuT2FdPTEsTHpbRi5ELk9wXT0xLEx6W0YuRC5TcF09MSxMeltGLkQuSWVdPTEsTHpbRi5ELkdpXT0xLEx6W0YuRC5RZl09MSxMeltGLkQuVGFdPTEsTHpbRi5ELlljXT0xLEx6W0YuRC5aY109MSxMeltGLkQudGJdPTEsTHpbRi5ELlFkXT0xLEx6W0YuRC5SZF09MSxMeltGLkQuU2RdPQoxLEx6W0YuRC5OZV09MSxMeltGLkQuemFdPTEsTHpbRi5ELlVhXT0xLEx6W0YuRC5XbF09MSxMeltGLkQuWGxdPTEsTHpbRi5ELllsXT0xLEx6W0YuRC5abF09MSxMeltGLkQuV2JdPTEsTHpbRi5ELlRkXT0xLEx6W0YuRC5YYl09MSxMeltGLkQuZGRdPTEsTHpbRi5ELlVkXT0xLEx6W0YuRC5RZV09MSxMeltGLkQuUGFdPTEsTHpbRi5ELnljXT0xLEx6W0YuRC5WZF09MSxMeltGLkQuemNdPTEsTHpbRi5ELkFjXT0xLEx6W0YuRC5mYl09MSxMeltGLkQuUWFdPTEsTHopKSxOej17fSxPej0oTnpbRi5ELlVjXT0xLE56W0YuRC5QcF09MSxOeltGLkQuSGVdPTEsTnpbRi5ELnJpXT0xLE56Lm9yZWY9MSxOeik7dmFyIFB6LFF6OwpmdW5jdGlvbiBSeihhLGIpe3ZhciBjPWFbR2YuWWJdLGQ9YiYmYi5ldmVudDtpZighYyl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGU9UXpbY10sZj17fSxnO2ZvcihnIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShnKSYmKFNiKGcsInZ0cF8iKT9mW2UhPT12b2lkIDA/ZzpnLnN1YnN0cmluZyg0KV09YVtnXTpnPT09R2YuRnEudG9TdHJpbmcoKSYmKGZbZSE9PXZvaWQgMD8idnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSI6Z109YVtnXSkpO0lmKDYxKSYmZSYmKGYudnRwX2V4dHJhRXhwZXJpbWVudElkcz0hMCk7ZSYmZCYmZC5jYWNoZWRNb2RlbFZhbHVlcyYmKGYudnRwX2d0bUNhY2hlZFZhbHVlcz1kLmNhY2hlZE1vZGVsVmFsdWVzKTtiJiZlJiYoZi52dHBfZ3RtRW50aXR5SW5kZXg9Yi5pbmRleCxmLnZ0cF9ndG1FbnRpdHlOYW1lPWIubmFtZSk7cmV0dXJuIGUhPT12b2lkIDA/ZShmKTpQeihjLGYsCmIpfXZhciBUej1mdW5jdGlvbigpe3ZhciBhPVN6O2lmKE0oNTg1KSYmZm4uSyl7dmFyIGI9RSg1KS5pbmRleE9mKCJHVE0tIik9PT0wJiZJZig2MiksYyxkPSgoYz1GaygpKT09bnVsbD92b2lkIDA6Yy5zb3VyY2UpPT09MTtiJiYhZHx8YS5IfHwoYS5IPSEwLFVtKCJhYmwiLCIxIiksdG8oKSl9fSxTej1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBVej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSFtHZi5SbV18fCIiKX07ClV6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe2lmKCFiW3RoaXMuaW5kZXhdJiYhYS5pc0Jsb2NrZWQodGhpcy5IKSl7Ylt0aGlzLmluZGV4XT0hMDt0aGlzLkhbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7dmFyIGM9dGhpcy5uYW1lLGQ7dHJ5e3ZhciBlPXt9LGY7Zm9yKGYgaW4gdGhpcy5IKXRoaXMuSC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpKTtlLnZ0cF9ndG1FdmVudElkPWEuaWQ7YS5wcmlvcml0eUlkJiYoZS52dHBfZ3RtUHJpb3JpdHlJZD1hLnByaW9yaXR5SWQpO3ZhciBnPWQ9UnooZSx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MixuYW1lOmN9KTtlW0dmLlprXSYmdHlwZW9mIGc9PT0ic3RyaW5nIiYmKGc9ZVtHZi5aa109PT0xP2cudG9Mb3dlckNhc2UoKTpnLnRvVXBwZXJDYXNlKCkpO2UuaGFzT3duUHJvcGVydHkoR2YuYWgpJiYoZz1ZZigxOCk/ZVtHZi5haF09PT0xPwpWZihnLCJQRVJJT0QiKTplW0dmLmFoXT09PTI/VmYoZywiQ09NTUEiKTpWZihnLCJBVVRPTUFUSUMiKTplW0dmLmFoXT09PTE/VmYoZywiUEVSSU9EIik6VmYoZywiQ09NTUEiKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5ibCkmJmc9PT1udWxsJiYoZz1lW0dmLmJsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5pbCkmJmc9PT12b2lkIDAmJihnPWVbR2YuaWxdKTtlLmhhc093blByb3BlcnR5KEdmLmVwKSYmKGc9SmIoZykpO2UuaGFzT3duUHJvcGVydHkoR2YuZmwpJiZnPT09ITAmJihnPWVbR2YuZmxdKTtlLmhhc093blByb3BlcnR5KEdmLmFsKSYmZz09PSExJiYoZz1lW0dmLmFsXSk7ZD1nfWNhdGNoKGgpe2EubG9nTWFjcm9FcnJvciYmYS5sb2dNYWNyb0Vycm9yKGgsTnVtYmVyKHRoaXMuaW5kZXgpLGMpLGQ9ITF9Ylt0aGlzLmluZGV4XT0hMTtyZXR1cm4gZH19O1V6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBWej1mdW5jdGlvbihhLGIsYyl7dGhpcy5IPWE7dGhpcy50YWdzPWI7dGhpcy5tYWNyb3M9Y307VnoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcih2YXIgYz17fSxkPW0oT2JqZWN0LmtleXModGhpcy5IKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Y1tmXT1mPT09ImZ1bmN0aW9uIj90aGlzLkhbZl06ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpfXJldHVybiBjbChjKX1jYXRjaChnKXtKU09OLnN0cmluZ2lmeSh0aGlzLkgpfXJldHVybiAyfTtWei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgV3o9ZnVuY3Rpb24oYSxiKXt0aGlzLmluZGV4PWI7dGhpcy5OPVtdO3RoaXMuUj1bXTt0aGlzLks9W107dGhpcy5IPVtdO3RoaXMubmFtZT0iIjtmb3IodmFyIGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9bShkLnZhbHVlKSxmPWUubmV4dCgpLnZhbHVlLGc9eWEoZSksaD1mLGw9ZztoPT09ImlmIj90aGlzLk49bDpoPT09InVubGVzcyI/dGhpcy5SPWw6aD09PSJhZGQiP3RoaXMuSz1sOmg9PT0iYmxvY2siP3RoaXMuSD1sOmg9PT0icnVsZU5hbWUiJiYodGhpcy5uYW1lPWxbMF0pfX07Cld6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPVh6KHRoaXMsYiksZD1bXSxlPVtdO2M/KGQucHVzaC5hcHBseShkLHcodGhpcy5LKSksZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKSk6Yz09PW51bGwmJmUucHVzaC5hcHBseShlLHcodGhpcy5IKSk7cmV0dXJue2ZpcmluZ1RhZ3M6ZCxibG9ja2luZ1RhZ3M6ZX19Owp2YXIgWHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bShhLk4pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1iKGQudmFsdWUpO2lmKGU9PT0wKXJldHVybiExO2lmKGU9PT0yKXJldHVybiBudWxsfWZvcih2YXIgZj1tKGEuUiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWIoZy52YWx1ZSk7aWYoaD09PTIpcmV0dXJuIG51bGw7aWYoaD09PTEpcmV0dXJuITF9cmV0dXJuITB9O1d6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFl6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSWE9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLk89U3RyaW5nKHRoaXMuSWFbR2YuWWJdKTt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSWFbR2YuUm1dfHwiIik7dGhpcy50YWdJZD1OdW1iZXIodGhpcy5JYVtHZi55al0pfTsKWXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/e306Yzt2YXIgZCxlPWM7ZT1lPT09dm9pZCAwP3t9OmU7dmFyIGY9e30sZztmb3IoZyBpbiB0aGlzLklhKXRoaXMuSWEuaGFzT3duUHJvcGVydHkoZykmJihmW2ddPWVsKHRoaXMuSWFbZ10sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pKTtkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixlKTtkLnZ0cF9ndG1UYWdJZD10aGlzLnRhZ0lkO3RoaXMuSWFbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7UnooZCx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MSxuYW1lOnRoaXMubmFtZX0pfTtZei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLklhKX07CnZhciBaej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YudG5dKXJldHVybiBlbChhLklhW0dmLnRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LCR6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi5Ebl0pcmV0dXJuIGVsKGEuSWFbR2YuRG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sYUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLklhW0dmLmNwXTtpZihjKXJldHVybiBlbChjLGIsYS50YWdzLGEubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBlbCh0aGlzLklhW0dmLk1FVEFEQVRBXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIGJBPWZ1bmN0aW9uKCl7dGhpcy5tYWNyb3M9W107dGhpcy5ydWxlcz1bXTt0aGlzLnByZWRpY2F0ZXM9W107dGhpcy50YWdzPVtdO3RoaXMudms9W119O2JBLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfTt2YXIgY0E9bmV3IGJBO2Z1bmN0aW9uIGRBKGEsYixjLGQpe3ZhciBlPVdjKCksZjtpZihlPT09MSlhOnt2YXIgZz1FKDMpO2c9Zy50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaD0iaHR0cHM6Ly8iK2csbD0iaHR0cDovLyIrZyxuPTEscD1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxxPTA7cTxwLmxlbmd0aCYmcTwxMDA7cSsrKXt2YXIgcj1wW3FdLnNyYztpZihyKXtyPXIudG9Mb3dlckNhc2UoKTtpZihyLmluZGV4T2YobCk9PT0wKXtmPTM7YnJlYWsgYX1uPT09MSYmci5pbmRleE9mKGgpPT09MCYmKG49Mil9fWY9bn1lbHNlIGY9ZTtyZXR1cm4oZj09PTJ8fGR8fCJodHRwOiIhPT1BLmxvY2F0aW9uLnByb3RvY29sP2E6YikrY307dmFyIGVBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkssZCkmJmMucHVzaChkKyJ+IithLktbZF0pO3ZhciBlPVtdLGY7Zm9yKGYgaW4gYS5IKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkgsZikmJmUucHVzaChmKyJ+IithLkhbZl0pO2IudGYmJihhLks9e30sYS5IPXt9KTt2YXIgZz1bXTtjLmxlbmd0aD4wJiZnLnB1c2goWyJiY3MiLGMuam9pbigiLiIpXSk7ZS5sZW5ndGg+MCYmZy5wdXNoKFsiYmV0IixlLmpvaW4oIi4iKV0pO3JldHVybiBnfSl9LGZBO2Z1bmN0aW9uIGdBKCl7ZkF8fChmQT1uZXcgZUEpfTtmdW5jdGlvbiBoQShhLGIsYyxkLGUpe2lmKCFFayhhKSl7ZC5sb2FkRXhwZXJpbWVudHM9eWooKTtIayhhLGQsZSk7dmFyIGY9aUEoYSksZz1mdW5jdGlvbigpe29rKCkuY29udGFpbmVyW2FdJiYob2soKS5jb250YWluZXJbYV0uc3RhdGU9Myk7akEoKX0saD17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBsPVhqKCksbj1sKyIvIitrQShmLGEpO1puKGgsbix2b2lkIDAsZnVuY3Rpb24oKXtsQShhLG4sbCsiLyIrZixoLGcpfSl9ZWxzZXt2YXIgcD1TYihhLCJHVE0tIikscT1kaygpLHI9Yz8iL2d0YWcvanMiOiIvZ3RtLmpzIix0PW1BKGIscitmLGEpO2lmKCF0KXt2YXIgdT1FKDMpK3I7cSYmS2MmJnAmJih1PUtjLnJlcGxhY2UoL14oPzpodHRwcz86XC9cLyk/L2ksIiIpLnNwbGl0KC9bPyNdLylbMF0pO3Q9ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsdStmKX1abihoLHQsdm9pZCAwLGcpfX19CmZ1bmN0aW9uIGpBKCl7S2soKXx8R2IoTGsoKSxmdW5jdGlvbihhLGIpe25BKGEsYi50cmFuc3BvcnRVcmwsYi5jb250ZXh0KTtQKDkyKX0pfWZ1bmN0aW9uIG5BKGEsYixjLGQpe2lmKCFHayhhKSlpZihjLmxvYWRFeHBlcmltZW50c3x8KGMubG9hZEV4cGVyaW1lbnRzPXlqKCkpLEtrKCkpSmsoYSxiLGMsZCk7ZWxzZXtJayhhLGMsZCk7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgZj1YaigpLGc9Imd0ZCIraUEoYSwhMCksaD1mKyIvIitrQShnLGEpO1puKGUsaCx2b2lkIDAsZnVuY3Rpb24oKXtsQShhLGgsZisiLyIrZyxlKX0pfWVsc2V7dmFyIGw9Ii9ndGFnL2Rlc3RpbmF0aW9uIitpQShhLCEwKSxuPW1BKGIsbCxhKTtufHwobj1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixFKDMpK2wpKTtabihlLG4pfX19CmZ1bmN0aW9uIGxBKGEsYixjLGQsZSl7aWYoTSg0MTMpKXtnQSgpO3ZhciBmPWZBO2lmKGZuLk4pe3ZhciBnPUEucGVyZm9ybWFuY2UsaD0tMTtpZihnJiZnLmdldEVudHJpZXNCeVR5cGUpe3ZhciBsPVJqKGIpLmhyZWYsbj1nLmdldEVudHJpZXNCeU5hbWUobCkucG9wKCk7aWYoIW4pZm9yKHZhciBwPWcuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXBbcV07aWYoci5uYW1lJiZyLm5hbWUuaW5kZXhPZihiKSE9PS0xKXtuPXI7YnJlYWt9fW4mJm4ucmVzcG9uc2VTdGF0dXMhPT12b2lkIDAmJihoPW4ucmVzcG9uc2VTdGF0dXMpfWYuS1thXT1ofVAoMTkwKTt2YXIgdD1ubShqbS5iYS5rail8fHt9O3RbYV09ITA7bW0oam0uYmEua2osdCk7dmFyIHU9YysoYy5pbmRleE9mKCI/Iik9PT0tMT8iP2Y9MSI6IiZmPTEiKTtlP1puKGQsdSx2b2lkIDAsZSk6Wm4oZCx1KX1lbHNlIGUmJmUoKX0KZnVuY3Rpb24gaUEoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iP2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLGQ9RSgxOSk7ZCE9PSJkYXRhTGF5ZXIiJiYoYys9IiZsPSIrZCk7dmFyIGU9U2IoYSwiR1RNLSIpO2lmKCFlfHxiKWMrPSImY3g9YyI7ZSYmSWYoNjIpJiYoYys9IiZnb29nbGVfb25seT10cnVlIik7dmFyIGY9YyxnLGg9e0RvOkpmKDE1KSxJbzpFKDE0KX07Zz1DZihoKTtjPWYrKCImZ3RtPSIrZyk7ZGsoKSYmKGMrPSImc2lnbj0iK0FqLnFqKTt2YXIgbD1jLG49SmYoNTQpO2lmKG49PT0xKXtsKz0iJmZwcz1mYyI7dmFyIHA9RSg2MCk7cCYmKGwrPSImZ2Rldj0iK3ApfWVsc2Ugbj09PTImJihsKz0iJmZwcz1mZSIpO3JldHVybiBsfQpmdW5jdGlvbiBrQShhLGIpe2lmKCFNKDQxMyl8fCFYaigpKXJldHVybiBhO3ZhciBjPUUoNTgpO2lmKCFjKXJldHVybiBQKDE4MiksYTt0cnl7dmFyIGQ9TmIoKSxlPUVmKGEsYyksZj1OYigpLWQ7Z0EoKTt2YXIgZz1mQTtmbi5OJiYoZy5IW2JdPWYpO3JldHVybiBlfWNhdGNoKGgpe3JldHVybiBQKDE4MyksYX19ZnVuY3Rpb24gbUEoYSxiLGMpe2lmKGFrKCkmJmEpe3ZhciBkPUUoNTgpLGU9WGooKTtpZihkJiZlKXRyeXt2YXIgZj1OYigpO2I9ZSsiLyIrRWYoYixkKTt2YXIgZz1OYigpLWY7Z0EoKTt2YXIgaD1mQTtmbi5OJiYoaC5IW2NdPWcpfWNhdGNoKGwpe1AoMTgzKX1yZXR1cm4gWWooYSxiKX19O3ZhciBwQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPW5ldyBGYjt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj17bmFtZTpFKDE5KSxzZXQ6ZnVuY3Rpb24oYixjKXtFZChWYihiLGMpLGEuSCk7b0EoYSl9LGdldDpmdW5jdGlvbihiKXtyZXR1cm4gYS5nZXQoYiwyKX0scmVzZXQ6ZnVuY3Rpb24oKXthLks9bmV3IEZiO2EuSD17fTtvQShhKX19fTtwQS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIhPTI/dGhpcy5LLmdldChhKTpxQSh0aGlzLGEpfTt2YXIgcUE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuc3BsaXQoIi4iKTtjPWN8fFtdO2Zvcih2YXIgZT1hLkgsZj0wO2Y8ZC5sZW5ndGg7ZisrKXtpZihlPT09bnVsbClyZXR1cm4hMTtpZihlPT09dm9pZCAwKWJyZWFrO2U9ZVtkW2ZdXTtpZihjLmluZGV4T2YoZSkhPT0tMSlyZXR1cm59cmV0dXJuIGV9OwpwQS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OLmhhc093blByb3BlcnR5KGEpfHwodGhpcy5LLnNldChhLGIpLEVkKFZiKGEsYiksdGhpcy5IKSxvQSh0aGlzKSl9O3ZhciBzQT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bImd0bS5hbGxvd2xpc3QiLCJndG0uYmxvY2tsaXN0IiwiZ3RtLndoaXRlbGlzdCIsImd0bS5ibGFja2xpc3QiLCJ0YWdUeXBlQmxhY2tsaXN0Il0sYj1yQSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iLmdldChkLDEpO2lmKEFycmF5LmlzQXJyYXkoZSl8fENkKGUpKWU9RWQoZSxudWxsKTtiLk5bZF09ZX19LG9BPWZ1bmN0aW9uKGEsYil7R2IoYS5OLGZ1bmN0aW9uKGMsZCl7YS5LLnNldChjLGQpO0VkKFZiKGMpLGEuSCk7RWQoVmIoYyxkKSxhLkgpO2ImJmRlbGV0ZSBhLk5bY119KX0sckE9bmV3IHBBLHRBPXJBLlI7ZnVuY3Rpb24gdUEoYSxiKXtyZXR1cm4gckEuZ2V0KGEsYil9CmZ1bmN0aW9uIHZBKGEsYil7dmFyIGM9Yj09PXZvaWQgMD8yOmIsZD1yQSxlLGY9KGM9PT12b2lkIDA/MjpjKSE9PTE/cUEoZCxhKTpkLksuZ2V0KGEpO0FkKGYpPT09ImFycmF5Inx8QWQoZik9PT0ib2JqZWN0Ij9lPUVkKGYsbnVsbCk6ZT1mO3JldHVybiBlfTt2YXIgd0E9bmV3IFJlZ0V4cCgvXiguKlwuKT8oZ29vZ2xlfHlvdXR1YmV8YmxvZ2dlcnx3aXRoZ29vZ2xlKShcLmNvbT8pPyhcLlthLXpdezJ9KT9cLj8kLykseEE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsibm9uR29vZ2xlUGl4ZWxzIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVQaXhlbHM6W10sbm9uR29vZ2xlU2NyaXB0czpbIm5vbkdvb2dsZVBpeGVscyJdLG5vbkdvb2dsZUlmcmFtZXM6WyJub25Hb29nbGVQaXhlbHMiXX0seUE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsiY3VzdG9tU2NyaXB0cyIsCiJodG1sIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCJdLG5vbkdvb2dsZVBpeGVsczpbImN1c3RvbVBpeGVscyIsImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVTY3JpcHRzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiXSxub25Hb29nbGVJZnJhbWVzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIl19LHpBPSJnb29nbGUgY3VzdG9tUGl4ZWxzIGN1c3RvbVNjcmlwdHMgaHRtbCBub25Hb29nbGVQaXhlbHMgbm9uR29vZ2xlU2NyaXB0cyBub25Hb29nbGVJZnJhbWVzIi5zcGxpdCgiICIpOwpmdW5jdGlvbiBBQSgpe3ZhciBhPXVBKCJndG0uYWxsb3dsaXN0Iil8fHVBKCJndG0ud2hpdGVsaXN0Iik7YSYmUCg5KTtJZig2MikmJihhPXZvaWQgMCk7QkEoKSYmKElmKDYyKT9QKDExNik6KFAoMTE3KSxJZig0OCkmJihhPVtdLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR1RNIGJsb2NrZWQuIFNlZSBnby8xMzY4NzcyOC4iKSkpKTt2YXIgYj1hJiZSYihLYihhKSx4QSksYz11QSgiZ3RtLmJsb2NrbGlzdCIpfHx1QSgiZ3RtLmJsYWNrbGlzdCIpO2N8fChjPXVBKCJ0YWdUeXBlQmxhY2tsaXN0IikpJiZQKDMpO2M/UCg4KTpjPVtdO0JBKCkmJihjPUtiKGMpLGMucHVzaCgibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsInNhbmRib3hlZFNjcmlwdHMiKSk7S2IoYykuaW5kZXhPZigiZ29vZ2xlIik+PTAmJlAoMik7dmFyIGQ9YyYmUmIoS2IoYykseUEpLGU9e307cmV0dXJuIGZ1bmN0aW9uKGYpe3ZhciBnPWYmJgpmW0dmLlliXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4hMDtnPWcucmVwbGFjZSgvXl8qLywiIik7aWYoZVtnXSE9PXZvaWQgMClyZXR1cm4gZVtnXTt2YXIgaD1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZ118fFtdLGw9ITA7YSYmKGw9bCYmQ0EoZyxoLGIpKTt2YXIgbj0hMTtjJiYobj1EQShnLGgsZCkpO3ZhciBwPSFsfHxuOyFwJiYoaC5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIik9PT0tMXx8YiYmYi5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIikhPT0tMT8wOkViKGQsekEpKSYmKHA9ITApO3JldHVybiBlW2ddPXB9fWZ1bmN0aW9uIENBKGEsYixjKXtpZihjLmluZGV4T2YoYSk8MClpZihiJiZiLmxlbmd0aD4wKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtpZihjLmluZGV4T2YoYltkXSk8MClyZXR1cm4gUCgxMSksITF9ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH0KZnVuY3Rpb24gREEoYSxiLGMpe3ZhciBkPWMuaW5kZXhPZihhKT49MDtpZihkKXJldHVybiBkO3ZhciBlPUViKGMsYnx8W10pO2UmJlAoMTApO3JldHVybiBlfWZ1bmN0aW9uIEJBKCl7cmV0dXJuIHdBLnRlc3QoQS5sb2NhdGlvbiYmQS5sb2NhdGlvbi5ob3N0bmFtZSl9O2Z1bmN0aW9uIEVBKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9RkEoYSksZT1tKGNBLmdldFJ1bGVzKCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZS5ldmFsdWF0ZShhLGQpLGg9Zy5maXJpbmdUYWdzLGw9Zy5ibG9ja2luZ1RhZ3Msbj0wO248aC5sZW5ndGg7bisrKWJbaFtuXV09ITA7Zm9yKHZhciBwPTA7cDxsLmxlbmd0aDtwKyspY1tsW3BdXT0hMH1mb3IodmFyIHE9W10scj0wO3I8Y0EudGFncy5sZW5ndGg7cisrKWJbcl0mJiFjW3JdJiYocVtyXT0hMCk7cmV0dXJuIHF9ZnVuY3Rpb24gRkEoYSl7dmFyIGI9W107cmV0dXJuIGZ1bmN0aW9uKGMpe2JbY109PT12b2lkIDAmJihiW2NdPWNBLnByZWRpY2F0ZXNbY10uZXZhbHVhdGUoYSxbXSkpO3JldHVybiBiW2NdfX07dmFyIEdBPWZ1bmN0aW9uKCl7dGhpcy5LPTA7dGhpcy5IPXt9fTtHQS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSsrdGhpcy5LO3RoaXMuSFthXT10aGlzLkhbYV18fHt9O3RoaXMuSFthXVtTdHJpbmcoZCldPXtsaXN0ZW5lcjpiLHJmOmN9O3JldHVybiBkfTtHQS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV0sZD1TdHJpbmcoYik7aWYoIWN8fCFjW2RdKXJldHVybiExO2RlbGV0ZSBjW2RdO3JldHVybiEwfTt2YXIgSUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtHYihIQS5IW2FdLGZ1bmN0aW9uKGQsZSl7Yy5pbmRleE9mKGUubGlzdGVuZXIpPDAmJihlLnJmPT09dm9pZCAwfHxiLmluZGV4T2YoZS5yZik+PTApJiZjLnB1c2goZS5saXN0ZW5lcil9KTtyZXR1cm4gY307ZnVuY3Rpb24gSkEoYSxiLGMpe3JldHVybntlbnRpdHlUeXBlOmEsaW5kZXhJbk9yaWdpbkNvbnRhaW5lcjpiLG5hbWVJbk9yaWdpbkNvbnRhaW5lcjpjLG9yaWdpbkNvbnRhaW5lcklkOkUoNSksb3JpZ2luQ0lkOnZrKCl9fTtmdW5jdGlvbiBLQShhLGIpe2lmKGRhdGEuZW50aXRpZXMpe3ZhciBjPWRhdGEuZW50aXRpZXNbYV07aWYoYylyZXR1cm4gY1tiXX19O3ZhciBNQT1mdW5jdGlvbihhLGIpe3RoaXMuSD0hMTt0aGlzLlI9W107dGhpcy5ldmVudERhdGE9e3RhZ3M6W119O3RoaXMuWj0hMTt0aGlzLks9dGhpcy5OPTA7TEEodGhpcyxhLGIpfSxOQT1mdW5jdGlvbihhLGIsYyxkKXtpZihDai5oYXNPd25Qcm9wZXJ0eShiKXx8Yj09PSJfX3pvbmUiKXJldHVybi0xO3ZhciBlPXt9O0NkKGQpJiYoZT1FZChkLGUpKTtlLmlkPWM7ZS5zdGF0dXM9InRpbWVvdXQiO3JldHVybiBhLmV2ZW50RGF0YS50YWdzLnB1c2goZSktMX0sT0E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5ldmVudERhdGEudGFnc1tiXTtlJiYoZS5zdGF0dXM9YyxlLmV4ZWN1dGlvblRpbWU9ZCl9LFBBPWZ1bmN0aW9uKGEpe2lmKCFhLkgpe2Zvcih2YXIgYj1hLlIsYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10oKTthLkg9ITA7YS5SLmxlbmd0aD0wfX0sTEE9ZnVuY3Rpb24oYSxiLGMpe2IhPT12b2lkIDAmJmEud2coYik7YyYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UEEoYSl9LApOdW1iZXIoYykpfTtNQS5wcm90b3R5cGUud2c9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBiKGZ1bmN0aW9uKCl7YmQoZnVuY3Rpb24oKXthKEUoNSksYi5ldmVudERhdGEpfSl9KTt0aGlzLkg/YygpOnRoaXMuUi5wdXNoKGMpfTt2YXIgUUE9ZnVuY3Rpb24oYSl7YS5OKys7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7YS5LKys7YS5aJiZhLks+PWEuTiYmUEEoYSl9KX0sUkE9ZnVuY3Rpb24oYSl7YS5aPSEwO2EuSz49YS5OJiZQQShhKX07ZnVuY3Rpb24gU0EoKXtyZXR1cm4gQVtUQSgpXX0KZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBMRj1mdW5jdGlvbihhKXtpeChhKX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO2lmKCFsaChhKXx8IWhoKGIpfHwhbWgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChkLCJsaXN0ZW5fZGF0YV9sYXllciIsYSl9XSk7ZT15QigpLmFkZExpc3RlbmVyKGEsVGQoYix2b2lkIDAsMSksYz09PW51bGw/dm9pZCAwOmMpO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTt2YXIgaEc9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLmVsZW1lbnRzKXJldHVybiAwO2Zvcih2YXIgZD1iLmRhdGFzZXRbY10sZT0wLGY9MTtlPGEuZWxlbWVudHMubGVuZ3RoO2UrKyl7dmFyIGc9YS5lbGVtZW50c1tlXSxoPWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoZkcuaW5kZXhPZihoKTwwfHxoPT09ImlucHV0IiYmZ0cuaW5kZXhPZihnLnR5cGUudG9Mb3dlckNhc2UoKSk+PTApKXtpZihnLmRhdGFzZXRbY109PT1kKXJldHVybiBmO2YrK319cmV0dXJuIDB9LGZHPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGdHPVsiYnV0dG9uIiwiaGlkZGVuIiwiaW1hZ2UiLCJyZXNldCIsInN1Ym1pdCJdOwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dHJ5e3ZhciBkPShifHwiIikuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iaWciLmluZGV4T2YoZSk+PTB9KS5qb2luKCIiKTtjPW5ldyBQZChuZXcgUmVnRXhwKGEsZCkpfWNhdGNoKGUpe31yZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciBKST1mdW5jdGlvbihhKXt2YXIgYixjPShiPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVNlbGVjdG9yKSE9bnVsbD9iOiEwLGQsZT0oZD1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVWaXNpYmlsaXR5KSE9bnVsbD9kOiEwLGYsZz0oZj1hPT1udWxsP3ZvaWQgMDphLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpIT1udWxsP2Y6ITEsaD0oYT09bnVsbD92b2lkIDA6YS5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyl8fFtdLGw9KGE9PW51bGw/dm9pZCAwOmEuZmllbGRGaWx0ZXJzKXx8e2VtYWlsOiEwLHBob25lOiExLGFkZHJlc3M6ITF9LG49YWwoNixmdW5jdGlvbigpe3JldHVybnt9fSkscD16SSh7aW5jbHVkZVNlbGVjdG9yOmMsaW5jbHVkZVZpc2liaWxpdHk6ZSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpoLGZpZWxkRmlsdGVyczpsfSkscT1uW3BdO2lmKHEmJk5iKCktcS50aW1lc3RhbXA8MjAwKXt2YXIgcj1xLnJlc3VsdCx0OyhyLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwKKCh0PXIuZ2kpPT1udWxsPzA6dC5kaSkpJiZHdShULlcucmopO3JldHVybiByfXZhciB1PUFJKCksdj11LnN0YXR1cyx4PVtdLHkseixDPVtdO2lmKE0oNTY4KSl7dmFyIEQ9QkkobCksST1DSSh1LmVsZW1lbnRzLEQpLEc9REkoSSksTj1FSShHLGgpLFM9RkkoTik7eT1TLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIHFhLkRhPT09RkQuQmJ9KVswXTtmb3IodmFyIFc9W10sZWE9e0lnOjB9O2VhLklnPEQubGVuZ3RoO2VhPXtJZzplYS5JZ30sZWEuSWcrKyl7dmFyIGphPU4uZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gZnVuY3Rpb24oaWIpe3JldHVybiBpYi5EYT09PURbcWEuSWddfX0oZWEpKTtqYS5sZW5ndGg+MTAmJih2PSIzIixqYT1qYS5zbGljZSgwLDEwKSk7Vz1XLmNvbmNhdChqYSl9Tj1XOyFnJiZTJiYoTj1TKTtmb3IodmFyIGZhPTA7ZmE8Ti5sZW5ndGg7ZmErKyl7dmFyIHNhPU5bZmFdO3NhLkRhIT09RkQuS2gmJkMucHVzaChHSShzYSxjLGUpKX19ZWxzZXtpZihsLmVtYWlsKXt2YXIgZGE9CkhJKHUuZWxlbWVudHMpO3g9RUkoZGEsaCk7eT1JSSh4KTtkYS5sZW5ndGg+MTAmJih2PSIzIil9IWcmJnkmJih4PVt5XSk7Zm9yKHZhciBtYT0wO21hPHgubGVuZ3RoO21hKyspQy5wdXNoKEdJKHhbbWFdLGMsZSkpO0M9Qy5zbGljZSgwLDEwKX15JiYoej1HSSh5LGMsZSkpO3ZhciBQYT17ZWxlbWVudHM6QyxnaTp6LHN0YXR1czp2fTtuW3BdPXt0aW1lc3RhbXA6TmIoKSxyZXN1bHQ6UGF9O3ZhciBGYTsoUGEuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fCgoRmE9UGEuZ2kpPT1udWxsPzA6RmEuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gUGF9LERJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuS2h9KSxjPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuWGR9KTtpZihhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmNlfSkubGVuZ3RoPT09MCYmYy5sZW5ndGg9PT0KMClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWUuQ2Euc3BsaXQoIiAiKTtmLmxlbmd0aD4xJiZhLnB1c2goe0NhOmZbMF0sRGE6RkQuWGQsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30se0NhOmYuc2xpY2UoMSkuam9pbigiICIpLERhOkZELmNlLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9KX1mb3IodmFyIGcsaD0wLGwsbj1mdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmVlJiZ1LkNhLmxlbmd0aD49MyYmdS5DYS5sZW5ndGg8PTR9LHA9MDtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9YVtwXTtpZihuKHEpJiZnJiZxLmVsZW1lbnQucGFyZW50RWxlbWVudD09PWcmJmg8Myl7aWYoaCs9MSxsKz1xLkNhLGg9PT0zKXt2YXIgcj1wLWgrMTtpZihsPUtJW0ZELmVlXS5uYShsKSlhW3JdLkNhPWx9fWVsc2UgaWYoaD0wLGw9IiIsZz12b2lkIDAsbihxKSl7aCsrO2w9cS5DYTt2YXIgdD12b2lkIDA7Zz0odD1xLmVsZW1lbnQucGFyZW50RWxlbWVudCkhPW51bGw/CnQ6dm9pZCAwfX1yZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIW4odSl9KX0sT0k9ZnVuY3Rpb24oYSxiKXtpZihhLnZhbHVlJiZMSS5pbmRleE9mKChhLnR5cGV8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKSkhPT0tMSl7dmFyIGM9YS5hdXRvY29tcGxldGU7aWYoYylmb3IodmFyIGQ9Yy5zcGxpdCgiICIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9TUkoYS52YWx1ZSxiLGRbZV0pO2lmKGYpcmV0dXJuIGZ9dmFyIGcsaD1bYS5uYW1lLGEuaWQsKGc9YS5hcmlhTGFiZWwpIT1udWxsP2c6dm9pZCAwLGEucGxhY2Vob2xkZXJdLGw9YS5wYXJlbnRFbGVtZW50O2wmJmwudGFnTmFtZT09PSJMQUJFTCImJmgucHVzaChsLmlubmVyVGV4dCk7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO24mJm4udGFnTmFtZT09PSJMQUJFTCImJiFuLmh0bWxGb3ImJmgucHVzaChuLmlubmVyVGV4dCk7aWYoYS5pZCl7dmFyIHA9W107dHJ5e3A9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbFtmb3I9IicrCmEuaWQrJyJdJyl9Y2F0Y2goRCl7fWZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWgucHVzaChwW3FdLmlubmVyVGV4dCl9aD1oLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gRCYmRC50cmltKCl9KTtmb3IodmFyIHIsdD0wLHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIHY9TkkoYSxiLGhbdV0pO2lmKHYpe3ZhciB4PXYseT14LkNhLHo9eC5EYSxDPXguWHM7Qz50JiYodD1DLHI9e0NhOnksRGE6en0pfX1yZXR1cm4gcn19LE5JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5uZSl7dmFyIGY9S0lbZV0ubmUuZXhlYyhjLnRyaW0oKSk7aWYoZil7dmFyIGc9YSxoPVtdLGw9Zy52YWx1ZS50cmltKCk7bCYmaC5wdXNoKGwpO2lmKGcudGFnTmFtZT09PSJTRUxFQ1QiKXRyeXt2YXIgbj1nLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT0iJytnLnZhbHVlKyciXScpLHA9biYmbi5pbm5lclRleHQudHJpbSgpO3AmJmgucHVzaChwKX1jYXRjaCh1KXt9Zm9yKHZhciBxPQpoLHI9dm9pZCAwLHQ9MDt0PHEubGVuZ3RoJiYhcjt0Kyspcj1LSVtlXS5uYShxW3RdKTtpZihyKXJldHVybntEYTplLENhOnIsWHM6ZlswXS5sZW5ndGgvYy50cmltKCkubGVuZ3RofX19fX0sTUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLmF1dG9jb21wbGV0ZSYmS0lbZV0uYXV0b2NvbXBsZXRlLmluZGV4T2YoYyk+PTApe3ZhciBmPUtJW2VdLm5hKGEudHJpbSgpKTtpZihmKXJldHVybntEYTplLENhOmZ9fX19LEJJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuZW1haWwmJmIucHVzaChGRC5CYik7YS5waG9uZSYmYi5wdXNoKEZELmVlKTthLmFkZHJlc3MmJmIucHVzaChGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC5LaCk7cmV0dXJuIGJ9LENJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWUuZWxlbWVudCxnPWUuT2MsaDthOnt2YXIgbD1mLG49YiwKcD1sLmlubmVySFRNTDtQSS5pbmRleE9mKGwudGFnTmFtZSk+PTAmJihwPWwudmFsdWV8fHApO2lmKHApe3ZhciBxO2I6e2Zvcih2YXIgcj1wLHQ9bix1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciB2PXRbdV07aWYoIUtJW3ZdLm1lKXt2YXIgeD1LSVt2XS5uYShyLnRyaW0oKSk7aWYoeCl7cT17RGE6dixDYTp4fTticmVhayBifX19cT12b2lkIDB9aWYocSl7aD1xO2JyZWFrIGF9aWYoUEkuaW5kZXhPZihsLnRhZ05hbWUpIT09LTEpe2g9T0kobCxuKTticmVhayBhfX1oPXZvaWQgMH12YXIgeT1oO2lmKHkpe3ZhciB6PXk7Yy5wdXNoKHtDYTp6LkNhLERhOnouRGEsZWxlbWVudDpmLE9jOmd9KX19cmV0dXJuIGN9LEZJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gYjt2YXIgYz17fSxkO2ZvcihkIGluIEZEKWlmKGM9e1ZnOmMuVmd9LGMuVmc9ZCxGRC5oYXNPd25Qcm9wZXJ0eShjLlZnKSl7dmFyIGU9YS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLkRhPT09CkZEW2YuVmddfX0oYykpO2UubGVuZ3RoIT09MCYmKEZEW2MuVmddPT09RkQuQmImJihlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIVJJLnRlc3QoZi5DYSl9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIGYuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFySShmLmVsZW1lbnQpfSkpLGIucHVzaChlWzBdKSl9cmV0dXJuIGJ9LEdJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmVsZW1lbnQsZT1hLk9jLGY9e0NhOmEuQ2EsdHlwZTphLkRhLHRhZ05hbWU6ZC50YWdOYW1lfTtpZihiKXt2YXIgZyxoPVNJKGQpO2lmKGc9KGU/ZSsifCIraDpoKS5zbGljZSgwLFRJKSlmLnF1ZXJ5U2VsZWN0b3I9Z31jJiYoZi5pc1Zpc2libGU9IXJJKGQpKTtlJiYoZi5kaT0hMCk7cmV0dXJuIGZ9LHpJPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO2I9YS5pbmNsdWRlU2VsZWN0b3I7Yz1hLmluY2x1ZGVWaXNpYmlsaXR5O2Q9YS5leGNsdWRlRWxlbWVudFNlbGVjdG9yczsKZT1hLmZpZWxkRmlsdGVyczt2YXIgZj0hIWIrIi4iKyEhYztkLmxlbmd0aCYmKGYrPSIuIitkLmpvaW4oIi4iKSk7cmV0dXJuIGYrPSIuIitlLmVtYWlsKyIuIitlLnBob25lKyIuIitlLmFkZHJlc3N9LElJPWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT09MCl7dmFyIGI7Yj1RSShhLGZ1bmN0aW9uKGMpe3JldHVybiFSSS50ZXN0KGMuQ2EpfSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiBjLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4hckkoYy5lbGVtZW50KX0pO3JldHVybiBiWzBdfX0sRUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdO2lmKGcmJnBJKGFbZF0uZWxlbWVudCxnKSl7ZT0hMTticmVha319YVtkXS5EYT09PUZELkJiJiZNKDYwMikmJihSSS50ZXN0KGFbZF0uQ2EpfHxhW2RdLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09CiJBIiYmYVtkXS5lbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiZhW2RdLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJocmVmIikuaW5kZXhPZigibWFpbHRvOiIpIT09LTE/ZT0hMTphW2RdLmVsZW1lbnQuY2xvc2VzdCgiZm9vdGVyIikhPT1udWxsJiYoZT0hMSkpO2UmJmMucHVzaChhW2RdKX1yZXR1cm4gY30sUUk9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aDw9MSlyZXR1cm4gYTt2YXIgYz1hLmZpbHRlcihiKTtyZXR1cm4gYy5sZW5ndGg9PT0wP2E6Y30sU0k9ZnVuY3Rpb24oYSl7aWYoYT09PUIuYm9keSlyZXR1cm4iYm9keSI7aWYoYS5pZClyZXR1cm4iIyIrYS5pZDt2YXIgYj1hLnBhcmVudEVsZW1lbnQ7aWYoYil7dmFyIGM9U0koYiksZD1VSShhLGIpLGU9VkkoYSkrIjpudGgtY2hpbGQoIitkKyIpIjtyZXR1cm4gYz9jKyI+IitlOmV9dmFyIGY9YS5wYXJlbnROb2RlO2lmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KXt2YXIgZz1VSShhLGYpO3JldHVybiBWSShhKSsiOm50aC1jaGlsZCgiKwpnKyIpIn1yZXR1cm4gYS50YWdOYW1lP2EudGFnTmFtZS50b0xvd2VyQ2FzZSgpOiIifSxWST1mdW5jdGlvbihhKXtpZihhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QubGVuZ3RoPjApe3ZhciBiPUFycmF5LmZyb20oYS5jbGFzc0xpc3QsZnVuY3Rpb24oYyl7cmV0dXJuIENTUy5lc2NhcGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubGVuZ3RoPjB9KTtpZihiLmxlbmd0aD4wKXJldHVybiIuIitiLmpvaW4oIi4iKX1yZXR1cm4iIn0sVUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZHJlbixkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXT09PWEpcmV0dXJuIGQrMTtyZXR1cm4gMX0sSEk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZWxlbWVudCxmPWQuT2MsZz1lLnRleHRDb250ZW50O2UudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIiYmZS52YWx1ZSYmKGc9ZS52YWx1ZSk7aWYoZyl7dmFyIGg9CmcubWF0Y2goS0QpO2lmKGgpe3ZhciBsPWhbMF07TEQobCl8fGIucHVzaCh7ZWxlbWVudDplLENhOmwsRGE6RkQuQmIsT2M6Zn0pfX19cmV0dXJuIGJ9LEFJPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1CLmJvZHk7aWYoIWIpcmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOiI0In07dmFyIGM9V0koYiwwLCIiLGEpO3JldHVybntlbGVtZW50czphLHN0YXR1czpjfX0sV0k9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWEucXVlcnlTZWxlY3RvckFsbCgiKiIpLGY9ZS5sZW5ndGg+MUU0PyIyIjoiMSIsZz0wO2c8TWF0aC5taW4oZS5sZW5ndGgsMUU0KTtnKyspe3ZhciBoPWVbZ107aWYoIShYSS5pbmRleE9mKGgudGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkmJmguY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbil7dmFyIGw9ITE7aWYoTSg1ODIpJiZoLnNoYWRvd1Jvb3QmJmI8MSl7dmFyIG49U0koaCk7V0koaC5zaGFkb3dSb290LGIrMSxjP2MrInwiK246bixkKT09PSIyIiYmCihmPSIyIik7bD0hMH12YXIgcD0hMTtpZighbClmb3IodmFyIHE9MDtxPE1hdGgubWluKGguY2hpbGRFbGVtZW50Q291bnQsMUU0KTtxKyspaWYoIShZSS5pbmRleE9mKGguY2hpbGRyZW5bcV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkpe3A9ITA7YnJlYWt9KCFwJiYhbHx8TSg1NjgpJiZQSS5pbmRleE9mKGgudGFnTmFtZSkhPT0tMSkmJmQucHVzaCh7ZWxlbWVudDpoLE9jOmI+MD9jOnZvaWQgMH0pfX1yZXR1cm4gZn0sUkk9L3N1cHBvcnR8bm9yZXBseS9pLFhJPSJTQ1JJUFQgU1RZTEUgSU1HIFNWRyBQQVRIIEJSIE5PU0NSSVBUIFRFWFRBUkVBIi5zcGxpdCgiICIpLFlJPVsiQlIiXSxUST1OZig3MCw1MCksUEk9WyJJTlBVVCIsIlNFTEVDVCJdLExJPSJ0ZXh0IHRlbCBzZWFyY2ggbnVtYmVyIGhpZGRlbiBlbWFpbCBzZWxlY3Qtb25lIi5zcGxpdCgiICIpLFpJPVJlZ0V4cCgicGhvbmV8bW9iaWxlfGNvbnRhY3QuP251bWJlcnx0ZWxlZm9ubnVtbWVyfHRlbGVmb25vfHRlbFx1MDBlOWZvbm98dGVsZml4ZXxcdTk2ZmJcdThhNzF8dGVsZWZvbmV8dGVsZW1vdmVsfFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQ0NFx1MDQzZVx1MDQzZHxcdTA5MmVcdTA5NGJcdTA5MmNcdTA5M2VcdTA5MDdcdTA5MzJ8XHU3NTM1XHU4YmRkfFx1NjI0Ylx1NjczYVx1NTNmN3xcdTBkMmVcdTBkNGFcdTBkMmNcdTBkNDhcdTBkMzJcdTBkNGRcdTIwMGR8KF58Wy1fXSl0ZWxbLV9dPyhcXGQrKSooXFxbLipcXF0pKiR8KD86XHVjODA0XHVkNjU0fFx1ZDU3OFx1YjRkY1x1ZDNmMHxcdWQ3MzRcdWIzMDBcdWQzZjB8XHVkNzM0XHViMzAwXHVjODA0XHVkNjU0KSg/Oi4/XHViYzg4XHVkNjM4KT98KFxcYnxffFxcKil0ZWxlZm9uKFxcYnxffFxcKil8dGVsZXBvbnxwb25zZWx8KG5vbW9yfG5vXFwuPykuPyhocHxoYW5kcGhvbmUpIiwKImkiKSwkST1SZWdFeHAoIl5uYW1lfGZ1bGwuP25hbWV8eW91ci4/bmFtZXxjdXN0b21lci4/bmFtZXxiaWxsLj9uYW1lfHNoaXAuP25hbWV8bmFtZS4qZmlyc3QuKmxhc3R8Zmlyc3RhbmRsYXN0bmFtZXxjb250YWN0Lj8obmFtZXxwZXJzb24pfG5vbWJyZS4qeS4qYXBlbGxpZG9zfF5ub20oPyFbYS16QS1aXSl8XHUzMDRhXHU1NDBkXHU1MjRkfFx1NmMwZlx1NTQwZHxebm9tZXxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1NTlkM1xccypcdTU0MGR8XHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDMwXHUwNDNhXHUwNDQyXHUwNDNkXHUwNDNlXHUwNDM1Lj9cdTA0M2JcdTA0MzhcdTA0NDZcdTA0M2V8KFxcYnxffFxcKilhZFtcdTAxMzFdPyBzb3lhZFtcdTAxMzFdPyhcXGJ8X3xcXCopfFx1YzEzMVx1YmE4NXxuYW1hLj8obGVuZ2thcHxwZW5lcmltYXxrYW11KSIsCiJpIiksYUo9UmVnRXhwKCJmaXJzdC4qbmFtZXxpbml0aWFsc3xmbmFtZXxmaXJzdCR8Z2l2ZW4uKm5hbWV8dm9ybmFtZXxub21icmV8Zm9yZW5hbWV8cHJcdTAwZTlub218cHJlbm9tfFx1NTQwZHxub21lfFx1MDQxOFx1MDQzY1x1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDV8XHVjNzc0XHViOTg0fFx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShpc2ltfGFkfGFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcdTA5MjhcdTA5M2VcdTA5MmV8bmFtYSBkZXBhbiIsImkiKSxiSj1SZWdFeHAoImxhc3QuKm5hbWV8bG5hbWV8c3VybmFtZSg/IVxcZCl8bGFzdCR8c2Vjb25kbmFtZXxmYW1pbHkuKm5hbWV8bmFjaG5hbWV8YXBlbGxpZG9zP3xmYW1pbGxlfF5ub20oPyFbYS16QS1aXSl8Y29nbm9tZXxcdTU5ZDN8YXBlbGlkb3N8c3VyZW5hbWV8c29icmVub21lfFx1MDQyNFx1MDQzMFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzOFx1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTA5MDlcdTA5MmFcdTA5MjhcdTA5M2VcdTA5MmV8XHUwZDJlXHUwZDMxXHUwZDQxXHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKHNveWlzaW18c295YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFxcYlx1YzEzMSg/OlteXHViYTg1XXxcXGIpfG5hbWEgYmVsYWthbmciLAoiaSIpLGNKPVJlZ0V4cCgiY291bnRyeXxjb3VudHJpZXN8cGFcdTAwZWRzfHBhaXN8KFxcYnxfKWxhbmQoXFxifF8pKD8hLioobWFyay4qKSl8KF58W14oXHU1MTY1fFx1NTFmYSldKVx1NTZmZHxcdTU2ZmRcdTViYjZ8XHVhZDZkXHVhYzAwfFx1YjA5OFx1Yjc3Y3woXFxifF8pKFx1MDBmY2xrZXx1bGNlfHVsa2UpKFxcYnxfKXxcdTA2YTlcdTA2MzRcdTA2NDhcdTA2MzF8bmVnYXJhIiwiaSIpLGRKPVJlZ0V4cCgiKF58W14uXSl6aXB8cG9zdGFsfHBvc3QuKmNvZGV8cGNvZGV8cGluLj9jb2RlfHBvc3RsZWl0emFobHxcXGJjcFxcYnxcXGJjZHBcXGJ8XFxiY2FwXFxifFx1OTBmNVx1NGZiZlx1NzU2YVx1NTNmN3xjb2RpZ298Y29kcG9zfFxcYmNlcFxcYnxcdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkuP1x1MDQxOFx1MDQzZFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ0MXxcdTA5MmFcdTA5M2ZcdTA5MjguP1x1MDkxNVx1MDk0Ylx1MDkyMXxcdTBkMmFcdTBkM2ZcdTBkMjhcdTBkNGRcdTIwMGRcdTBkMTVcdTBkNGJcdTBkMjFcdTBkNGR8XHU5MGFlXHU2NTNmXHU3ZjE2XHU3ODAxfFx1OTBhZVx1N2YxNnxcdTkwZjVcdTkwNWVcdTUzNDBcdTg2NWZ8KFxcYnxfKXBvc3RhIGtvZHUoXFxifF8pfFx1YzZiMFx1ZDNiOC4/XHViYzg4XHVkNjM4fGtvZGUuP3BvcyIsCiJpIiksZUo9e30sS0k9KGVKW0ZELkJiXT17bWU6ITEsbmE6TUR9LGVKW0ZELmVlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsidGVsIiwidGVsLW5hdGlvbmFsIiwidGVsLWxvY2FsIl0sbmU6WkksbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITApfX0sZUpbRkQuS2hdPXttZTohMCxhdXRvY29tcGxldGU6WyJuYW1lIiwiY2MtbmFtZSJdLG5lOiRJLG5hOk5EfSxlSltGRC5YZF09e21lOiEwLGF1dG9jb21wbGV0ZTpbImdpdmVuLW5hbWUiLCJjYy1naXZlbi1uYW1lIl0sbmU6YUosbmE6TkR9LGVKW0ZELmNlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZmFtaWx5LW5hbWUiLCJjYy1mYW1pbHktbmFtZSJdLG5lOmJKLG5hOk5EfSxlSltGRC54Zl09e21lOiEwLGF1dG9jb21wbGV0ZTpbImNvdW50cnkiLCJjb3VudHJ5LW5hbWUiXSxuZTpjSixuYTpORH0sZUpbRkQucWddPXttZTohMCxhdXRvY29tcGxldGU6WyJwb3N0YWwtY29kZSJdLG5lOmRKLG5hOklEfSxlSik7ZnVuY3Rpb24gZkooYSl7dmFyIGI7TCh0aGlzLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byIpO3ZhciBjPVRkKGEpfHx7fSxkPUpJKHtpbmNsdWRlU2VsZWN0b3I6ISFjLmluY2x1ZGVTZWxlY3RvcixpbmNsdWRlVmlzaWJpbGl0eTohIWMuaW5jbHVkZVZpc2liaWxpdHksZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6Yy5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyxmaWVsZEZpbHRlcnM6Yy5maWVsZEZpbHRlcnMsc2VsZWN0TXVsdGlwbGVFbGVtZW50czohIWMuc2VsZWN0TXVsdGlwbGVFbGVtZW50c30pO2I9bmV3IGtiO3ZhciBlPW5ldyBHZDtiLnNldCgiZWxlbWVudHMiLGUpO2Zvcih2YXIgZj1kLmVsZW1lbnRzLGc9MDtnPGYubGVuZ3RoO2crKyllLnB1c2goZ0ooZltnXSkpO2QuZ2khPT12b2lkIDAmJmIuc2V0KCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiLApnSihkLmdpKSk7Yi5zZXQoInN0YXR1cyIsZC5zdGF0dXMpO2lmKGMucmVhZEZyb21EYXRhTGF5ZXIpe2hKKGUsYyk7dmFyIGg9UEQoKSxsPWguc3Q7Yi5zZXQoImRhdGFMYXllclNlYXJjaFRpbWUiLGgudnQpO2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hDb3VudCIsbCl9cmV0dXJuIGJ9CnZhciBpSj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSBGRC5CYjpyZXR1cm4iZW1haWwiO2Nhc2UgRkQuZWU6cmV0dXJuInBob25lX251bWJlciI7Y2FzZSBGRC5YZDpyZXR1cm4iZmlyc3RfbmFtZSI7Y2FzZSBGRC5jZTpyZXR1cm4ibGFzdF9uYW1lIjtjYXNlIEZELnRqOnJldHVybiJzdHJlZXQiO2Nhc2UgRkQubGk6cmV0dXJuImNpdHkiO2Nhc2UgRkQuamo6cmV0dXJuInJlZ2lvbiI7Y2FzZSBGRC5xZzpyZXR1cm4icG9zdGFsX2NvZGUiO2Nhc2UgRkQueGY6cmV0dXJuImNvdW50cnkifX0sako9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiLGM9aUooYS5EYSk7YyE9PXZvaWQgMCYmYi5zZXQoInR5cGUiLGMpO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLCJETFlSIik7cmV0dXJuIGJ9LGhKPWZ1bmN0aW9uKGEsYil7dmFyIGM9UUQoKTtpZihNKDU2OCkpZm9yKHZhciBkPW5ldyBTZXQoYS5oYygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5nZXQoInR5cGUiKX0pKSwKZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUpLGg9Zy5uZXh0KCkudmFsdWUsbD1nLm5leHQoKS52YWx1ZSxuPWgscD1sO2lmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50cylhLnB1c2goakoocCkpO2Vsc2V7dmFyIHE9aUoobik7cSYmIWQuaGFzKHEpJiZhLnB1c2goakoocCkpfX1lbHNlIGMuaGFzKEZELkJiKSYmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50c3x8YS5sZW5ndGgoKT09PTApJiZhLnB1c2goakooYy5nZXQoRkQuQmIpKSl9LGdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIixhLnRhZ05hbWUpO2EucXVlcnlTZWxlY3RvciE9PXZvaWQgMCYmYi5zZXQoInF1ZXJ5U2VsZWN0b3IiLGEucXVlcnlTZWxlY3Rvcik7YS5pc1Zpc2libGUhPT12b2lkIDAmJmIuc2V0KCJpc1Zpc2libGUiLGEuaXNWaXNpYmxlKTtpZihNKDU2OCkpe3ZhciBjPWlKKGEudHlwZSk7YyE9PQp2b2lkIDAmJmIuc2V0KCJ0eXBlIixjKX1lbHNlIHN3aXRjaChhLnR5cGUpe2Nhc2UgRkQuQmI6Yi5zZXQoInR5cGUiLCJlbWFpbCIpfXJldHVybiBifTtmSi5QPSJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIjsKdmFyIGtKPWZ1bmN0aW9uKGEpe3ZhciBiPWhkKGEsWyJidXR0b24iLCJpbnB1dCJdLDUwKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1TdHJpbmcoYi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpO2lmKGM9PT0iYnV0dG9uIilyZXR1cm4gYjtpZihjPT09ImlucHV0Iil7dmFyIGQ9ZWQoYiwidHlwZSIpO2lmKGQ9PT0iYnV0dG9uInx8ZD09PSJzdWJtaXQifHxkPT09ImltYWdlInx8ZD09PSJmaWxlInx8ZD09PSJyZXNldCIpcmV0dXJuIGJ9cmV0dXJuIG51bGx9LGxKPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLnRhcmdldDtpZihkKXt2YXIgZT0kRihhLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsW10pO2lmKGUubGVuZ3RoPjApe3ZhciBmPWVHKGQsYixlKTt1RShmKX12YXIgZz0hMSxoPSRGKGEsImNvbW1vbkJ1dHRvbklkcyIsW10pO2lmKGgubGVuZ3RoPjApe3ZhciBsPWtKKGQpO2lmKGwpe3ZhciBuPWVHKGwsYixoKTt1RShuKTtnPSEwfX12YXIgcD0kRihhLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCnt9KSxxO2ZvcihxIGluIHApaWYocC5oYXNPd25Qcm9wZXJ0eShxKSl7dmFyIHI9Zz9wW3FdLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gaC5pbmRleE9mKHYpPT09LTF9KTpwW3FdO2lmKHIubGVuZ3RoIT09MCl7dmFyIHQ9cEkoZCxxKTtpZih0KXt2YXIgdT1lRyh0LGIscik7dUUodSl9fX19fTsKZnVuY3Rpb24gbUooYSxiKXtpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBjPWE/VGQoYSk6e30sZD1KYihjLm1hdGNoQ29tbW9uQnV0dG9ucyksZT0hIWMuY3NzU2VsZWN0b3IsZj1aRihiKTtMKHRoaXMsImRldGVjdF9jbGlja19ldmVudHMiLGMubWF0Y2hDb21tb25CdXR0b25zLGMuY3NzU2VsZWN0b3IpO3ZhciBnPWMudXNlVjJFdmVudE5hbWU/Imd0bS5jbGljay12MiI6Imd0bS5jbGljayIsaD1jLnVzZVYyRXZlbnROYW1lPyJlY2wiOiJjbCIsbD1mdW5jdGlvbihwKXtwLnB1c2goZik7cmV0dXJuIHB9O2lmKGV8fGQpe2lmKGQmJmRHKGgsImNvbW1vbkJ1dHRvbklkcyIsbCxbXSksZSl7dmFyIG49TGIoU3RyaW5nKGMuY3NzU2VsZWN0b3IpKTtkRyhoLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCmZ1bmN0aW9uKHApe3AuaGFzT3duUHJvcGVydHkobil8fChwW25dPVtdKTtsKHBbbl0pO3JldHVybiBwfSx7fSl9fWVsc2UgZEcoaCwiaW5kaXZpZHVhbEVsZW1lbnRJZHMiLGwsW10pO2JHKGgsZnVuY3Rpb24oKXskYyhCLCJjbGljayIsZnVuY3Rpb24ocCl7bEooaCxnLHApfSwhMCl9KTtyZXR1cm4gZn1tSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKdmFyIHdKPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPWJbY107ZSYmR2IoZCxmdW5jdGlvbihmLGcpe3ZKKGcsZSl9KX0pfSx6Sj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0iIitiO2lmKGNbaF0pY1toXS5wdXNoKGEpO2Vsc2V7dmFyIGw9W2FdO2NbaF09bDt2YXIgbj1kW2hdO258fChuPXt9LGRbaF09bik7ZS5wdXNoKGZ1bmN0aW9uKHApe3ZhciBxPXAudGFyZ2V0O2lmKHEpe3ZhciByPWlHKHEpO2lmKHIpe3ZhciB0PXhKKHIsImd0bUZvcm1JbnRlcmFjdElkIixmKSx1PXhKKHEsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiLGcpO2lmKHQhPT1udWxsJiZ1IT09bnVsbCl7dmFyIHY9blt0XTt2Pyh2LlJiJiYoQS5jbGVhclRpbWVvdXQodi5SYiksdi5kZi5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLWZvcm0taW50ZXJhY3QtZmllbGQtaWQiKSE9PXUmJnZKKHYsbCkpLHYuZGY9cSx5Sih2LGwsYikpOihuW3RdPXtmb3JtOnIsZGY6cSxzZXF1ZW5jZU51bWJlcjowLApSYjpudWxsfSx5SihuW3RdLGwsYikpfX19fSl9fSx2Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZm9ybSxkPWEuZGYsZT1lRyhjLCJndG0uZm9ybUludGVyYWN0IixiKSxmPWMuYWN0aW9uO2YmJmYudGFnTmFtZSYmKGY9Yy5jbG9uZU5vZGUoITEpLmFjdGlvbik7ZVsiZ3RtLmVsZW1lbnRVcmwiXT1mO2VbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1jLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2MuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdPWMubGVuZ3RoO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkIl09ZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZElkIl09ZC5pZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZE5hbWUiXT1kLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2QuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkUG9zaXRpb24iXT1oRyhjLGQsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiKTsKZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRUeXBlIl09ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgidHlwZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RTZXF1ZW5jZU51bWJlciJdPWEuc2VxdWVuY2VOdW1iZXI7dUUoZSk7YS5zZXF1ZW5jZU51bWJlcisrO2EuUmI9bnVsbH0seUo9ZnVuY3Rpb24oYSxiLGMpe2M/YS5SYj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2SihhLGIpfSxjKTp2SihhLGIpfSx4Sj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7dHJ5e2lmKGQ9YS5kYXRhc2V0W2JdKXJldHVybiBkO2Q9U3RyaW5nKGMoKSk7YS5kYXRhc2V0W2JdPWR9Y2F0Y2goZSl7ZD1udWxsfXJldHVybiBkfTsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiKX1dKTt2YXIgZD1aRihiKSxlPWEmJk51bWJlcihhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7aWYoJEYoImZpbCIsImluaXQiLCExKSl7dmFyIGY9JEYoImZpbCIsInJlZyIpO2lmKGYpZihkLGUpO2Vsc2UgdGhyb3cgRXJyb3IoIkZhaWxlZCB0byByZWdpc3RlciB0cmlnZ2VyOiAiK2QpO31lbHNle3ZhciBnPXt9LGg9W10sbD17fSxuPTAscD1mdW5jdGlvbigpe3JldHVybiBuKyt9LHE9MCxyPWZ1bmN0aW9uKCl7cmV0dXJuIHErK307JGMoQiwiY2hhbmdlIiwKZnVuY3Rpb24odCl7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1KyspaFt1XSh0KX0pOyRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3dKKGwsZyl9KTt6SihkLGUsZyxsLGgscCxyKTthRygiZmlsIiwicmVnIixmdW5jdGlvbih0LHUpe3pKKHQsdSxnLGwsaCxwLHIpfSk7YUcoImZpbCIsImluaXQiLCEwKX1yZXR1cm4gZH1BSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiI7CnZhciBCSj1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSRGKCJmc2wiLGM/Im52Lm13dCI6Im13dCIsMCksZztnPWM/JEYoImZzbCIsIm52LmlkcyIsW10pOiRGKCJmc2wiLCJpZHMiLFtdKTtpZighZy5sZW5ndGgpcmV0dXJuITA7dmFyIGg9ZUcoYSwiZ3RtLmZvcm1TdWJtaXQiLGcpLGw9YS5hY3Rpb247bCYmbC50YWdOYW1lJiYobD1hLmNsb25lTm9kZSghMSkuYWN0aW9uKTtQKDEyMSk7aWYobD09PSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHIvIilyZXR1cm4gUCgxMjIpLCEwO2hbImd0bS5lbGVtZW50VXJsIl09bDtoWyJndG0uZm9ybUNhbmNlbGVkIl09YzthLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsJiYoaFsiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdPWEuZ2V0QXR0cmlidXRlKCJuYW1lIikpO2UmJihoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnQiXT1lLGhbImd0bS5mb3JtU3VibWl0RWxlbWVudFRleHQiXT1lLnZhbHVlKTtpZihkJiZmKXtpZighc0UoaCxqRShiLApmKSxmKSlyZXR1cm4hMX1lbHNlIEZ5KDEsImd0bS5mb3JtU3VibWl0Iiksc0UoaCxmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH0sQ0o9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPWZ1bmN0aW9uKGMpe3JldHVybiBDYihhLGZ1bmN0aW9uKGQpe3JldHVybiBkLmZvcm09PT1jfSl9O3JldHVybntzdG9yZTpmdW5jdGlvbihjLGQpe3ZhciBlPWIoYyk7ZT9lLmJ1dHRvbj1kOmEucHVzaCh7Zm9ybTpjLGJ1dHRvbjpkfSl9LGdldDpmdW5jdGlvbihjKXt2YXIgZD1iKGMpO2lmKGQpcmV0dXJuIGQuYnV0dG9ufX19LERKPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiBiJiZiIT09Il9zZWxmIiYmYiE9PSJfcGFyZW50IiYmYiE9PSJfdG9wIj8hMTohMH0sRUo9ZnVuY3Rpb24oKXt2YXIgYT1DSigpLGI9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPWhkKGQsWyJidXR0b24iLAoiaW5wdXQiXSwxMDApO2lmKGUmJihlLnR5cGU9PT0ic3VibWl0Inx8ZS50eXBlPT09ImltYWdlIikmJmUubmFtZSYmZWQoZSwidmFsdWUiKSl7dmFyIGY9aUcoZSk7ZiYmYS5zdG9yZShmLGUpfX19LCExKTskYyhCLCJzdWJtaXQiLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKCFkKXJldHVybiBjLnJldHVyblZhbHVlO3ZhciBlPWMuZGVmYXVsdFByZXZlbnRlZHx8Yy5yZXR1cm5WYWx1ZT09PSExLGY9REooZCkmJiFlLGc9YS5nZXQoZCksaD0hMDtpZihCSihkLGZ1bmN0aW9uKCl7aWYoaCl7dmFyIGw9bnVsbCxuPXt9O2cmJihsPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxsLnR5cGU9ImhpZGRlbiIsbC5uYW1lPWcubmFtZSxsLnZhbHVlPWcudmFsdWUsZC5hcHBlbmRDaGlsZChsKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWFjdGlvbiIpJiYobi5hY3Rpb249ZC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpLHhjKGQsZy5nZXRBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtZW5jdHlwZSIpJiYKKG4uZW5jdHlwZT1kLmdldEF0dHJpYnV0ZSgiZW5jdHlwZSIpLGQuc2V0QXR0cmlidXRlKCJlbmN0eXBlIixnLmdldEF0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtbWV0aG9kIikmJihuLm1ldGhvZD1kLmdldEF0dHJpYnV0ZSgibWV0aG9kIiksZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsZy5nZXRBdHRyaWJ1dGUoImZvcm1tZXRob2QiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtdmFsaWRhdGUiKSYmKG4udmFsaWRhdGU9ZC5nZXRBdHRyaWJ1dGUoInZhbGlkYXRlIiksZC5zZXRBdHRyaWJ1dGUoInZhbGlkYXRlIixnLmdldEF0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXRhcmdldCIpJiYobi50YXJnZXQ9ZC5nZXRBdHRyaWJ1dGUoInRhcmdldCIpLGQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLGcuZ2V0QXR0cmlidXRlKCJmb3JtdGFyZ2V0IikpKSk7Yi5jYWxsKGQpO2wmJihkLnJlbW92ZUNoaWxkKGwpLG4uaGFzT3duUHJvcGVydHkoImFjdGlvbiIpJiYKeGMoZCxuLmFjdGlvbiksbi5oYXNPd25Qcm9wZXJ0eSgiZW5jdHlwZSIpJiZkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsbi5lbmN0eXBlKSxuLmhhc093blByb3BlcnR5KCJtZXRob2QiKSYmZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsbi5tZXRob2QpLG4uaGFzT3duUHJvcGVydHkoInZhbGlkYXRlIikmJmQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsbi52YWxpZGF0ZSksbi5oYXNPd25Qcm9wZXJ0eSgidGFyZ2V0IikmJmQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLG4udGFyZ2V0KSl9fSxlLGYsZykpaD0hMTtlbHNlIHJldHVybiBlfHwoYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITEpLCExO3JldHVybiBjLnJldHVyblZhbHVlfSwhMSk7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXt2YXIgYz10aGlzLGQ9ITA7QkooYyxmdW5jdGlvbigpe2QmJmIuY2FsbChjKX0sITEsREooYykpJiYoYi5jYWxsKGMpLGQ9CiExKX19OwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD1hJiZhLmdldCgid2FpdEZvclRhZ3MiKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLHt3YWl0Rm9yVGFnczohIWR9KX1dKTt2YXIgZT1hJiZhLmdldCgiY2hlY2tWYWxpZGF0aW9uIiksZj1aRihiKTtpZihkKXt2YXIgZz1OdW1iZXIoYS5nZXQoIndhaXRGb3JUYWdzVGltZW91dCIpKTtnPjAmJmlzRmluaXRlKGcpfHwoZz0yRTMpO3ZhciBoPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLm1heChnLG4pfTtkRygiZnNsIiwibXd0IixoLDApO2V8fGRHKCJmc2wiLCJudi5td3QiLGgsMCl9dmFyIGw9ZnVuY3Rpb24obil7bi5wdXNoKGYpOwpyZXR1cm4gbn07ZEcoImZzbCIsImlkcyIsbCxbXSk7ZXx8ZEcoImZzbCIsIm52LmlkcyIsbCxbXSk7JEYoImZzbCIsImluaXQiLCExKXx8KEVKKCksYUcoImZzbCIsImluaXQiLCEwKSk7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CmZ1bmN0aW9uIFJKKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwpmdW5jdGlvbiBXSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGd9Z0suUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiO2Z1bmN0aW9uIGhLKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEubGltaXQmJmEuZ2s+PWEubGltaXQpYS5haSYmQS5jbGVhckludGVydmFsKGEuYWkpO2Vsc2V7YS5naysrO3ZhciBiPU5iKCk7dUUoe2V2ZW50OmEuZXZlbnROYW1lLCJndG0udGltZXJJZCI6YS5haSwiZ3RtLnRpbWVyRXZlbnROdW1iZXIiOmEuZ2ssImd0bS50aW1lckludGVydmFsIjphLmludGVydmFsLCJndG0udGltZXJMaW1pdCI6YS5saW1pdCwiZ3RtLnRpbWVyU3RhcnRUaW1lIjphLk1vLCJndG0udGltZXJDdXJyZW50VGltZSI6YiwiZ3RtLnRpbWVyRWxhcHNlZFRpbWUiOmItYS5NbywiZ3RtLnRyaWdnZXJzIjphLkx0fSl9fX0KZnVuY3Rpb24gaUsoYSxiKXsKcmV0dXJuIGZ9aUsuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25UaW1lciI7dmFyIEFjPUFhKFsiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSJdKSxrSz1bInd3dy55b3V0dWJlLmNvbSIsInd3dy55b3V0dWJlLW5vY29va2llLmNvbSJdLGxLOwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGV9dksuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiO2Z1bmN0aW9uIHdLKGEsYil7aWYoIWxoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPWI/VGQoYik6e307Yy5yZWdleENhY2hlPWFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pO3JldHVybiBHaChhLGMpfXdLLlA9ImludGVybmFsLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iO2Z1bmN0aW9uIHhLKGEpe3ZhciBiPSExO3JldHVybiBifXhLLlA9ImludGVybmFsLmV2YWx1YXRlTWF0Y2hpbmdSdWxlcyI7dmFyIHlLPW5ldyBNYXAoW1siYXciLDRdXSk7ZnVuY3Rpb24geksoYSl7dmFyIGI9dnJbYV0sYz15Sy5nZXQoYSk7cmV0dXJuIGM/KHdxKGIsYyl8fFtdKS5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiBkLm09PT0iMCJ8fGQubT09PXZvaWQgMH0pOiExfQpmdW5jdGlvbiBBSyhhLGIpe2lmKE0oNDk1KSl7Zm9yKHZhciBjPW5ldyBNYXAsZD1tKHlLKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9bShlLnZhbHVlKSxnPWYubmV4dCgpLnZhbHVlLGg9Zi5uZXh0KCkudmFsdWUsbD1nLG49YVtsXSxwPUFycmF5LmlzQXJyYXkobik/blswXTpuO2lmKHAhPT12b2lkIDApe3ZhciBxPXt9LHI9KHEuaz1wLHEuaT1TdHJpbmcoTWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMykpLHEuYj1bXSxxLm09IjEiLHEpLHQ9YXEocixoKTt0JiYoeksobCl8fGMuc2V0KGwsdCkpfX1pZihjLnNpemUpe3ZhciB1LHY9W10seD1iLnBhdGh8fCIvIjt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJwIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh4KSk7Yi5BciYmdi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiY2UiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiLkFyKSkpO3ZhciB5PWIuZG9tYWluJiZiLmRvbWFpbiE9PSJhdXRvIj8KYi5kb21haW46ImF1dG86IitBLmxvY2F0aW9uLmhvc3RuYW1lO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoImQiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKTtmb3IodmFyIHo9bShjKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl7dmFyIEQ9bShDLnZhbHVlKSxJPUQubmV4dCgpLnZhbHVlLEc9RC5uZXh0KCkudmFsdWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEcpKX11PSJfL3NldF9jb29raWU/Iit2LmpvaW4oIiYiKTt2YXIgTixTPUUoNTgpO049RWYodSxTKTt2YXIgVz1YaigpKyIvIitOO21kKFcpfX19O2Z1bmN0aW9uIEJLKGEpe3JldHVybiJDV1ZXZWJWaWV3TWVzc2FnZSJpbiBhfWZ1bmN0aW9uIENLKGEpe3ZhciBiPUEsYz1iLndlYmtpdDtkZWxldGUgYi53ZWJraXQ7YShiLndlYmtpdCk7Yi53ZWJraXQ9Y31mdW5jdGlvbiBESyhhLGIpe3ZhciBjPXthY3Rpb246ImdjbF9zZXR1cCJ9O2lmKEJLKGEubWVzc2FnZUhhbmRsZXJzKSlyZXR1cm4gYS5tZXNzYWdlSGFuZGxlcnMuQ1dWV2ViVmlld01lc3NhZ2UucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6YixwYXlsb2FkOmN9KSwhMDt2YXIgZD1hLm1lc3NhZ2VIYW5kbGVyc1tiXTtyZXR1cm4gZD8oZC5wb3N0TWVzc2FnZShjKSwhMCk6ITF9O3ZhciBFSz17fSxGSz0oRUsuYXdiPXtub3RGb3VuZDoxNzh9LEVLLnl0Yj17bm90Rm91bmQ6MTk0fSxFSyk7ZnVuY3Rpb24gR0soYSl7dmFyIGIsYz0oYj1GS1thXSk9PW51bGw/dm9pZCAwOmIubm90Rm91bmQ7YyYmUChjKX0KZnVuY3Rpb24gSEsoYSl7aWYoIW5tKGptLmJhLmpuKSYmIndlYmtpdCJpbiBBJiZBLndlYmtpdC5tZXNzYWdlSGFuZGxlcnMpe3ZhciBiPWZ1bmN0aW9uKCl7dHJ5e0NLKGZ1bmN0aW9uKGMpe2lmKGMpe3ZhciBkO2Q9QksoYy5tZXNzYWdlSGFuZGxlcnMpfHwiYXdiImluIGMubWVzc2FnZUhhbmRsZXJzP3tjb21tYW5kOiJhd2IiLHNvdXJjZTo1fTooQksoYy5tZXNzYWdlSGFuZGxlcnMpfHwieXRiImluIGMubWVzc2FnZUhhbmRsZXJzKSYmTSg0OTkpP3tjb21tYW5kOiJ5dGIiLHNvdXJjZTo4fTp2b2lkIDA7ZCYmKG1tKGptLmJhLmpuLGZ1bmN0aW9uKGUpe3ZhciBmPWQuc291cmNlO2UuZ2NsaWQmJmxzKCJnY2xfYXciLGUuZ2NsaWQsZixhKTtlLndicmFpZCYmbHMoImdjbF9nYiIsZS53YnJhaWQsZixhKX0pLERLKGMsZC5jb21tYW5kKXx8R0soZC5jb21tYW5kKSl9fSl9Y2F0Y2goYyl7UCgxOTMpfX07SGwoZnVuY3Rpb24oKXtCcihmcCk/YigpOklsKGIsZnApfSxmcCl9fTt2YXIgSUs9WyJodHRwczovL3d3dy5nb29nbGUuY29tIiwiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCJodHRwczovL20ueW91dHViZS5jb20iXTtmdW5jdGlvbiBKSyhhKXtyZXR1cm4gYS5kYXRhLmFjdGlvbiE9PSJnY2xfdHJhbnNmZXIiPyhQKDE3MyksITApOmEuZGF0YS5nYWRTb3VyY2U/YS5kYXRhLmdjbGlkPyExOihQKDE4MSksITApOihQKDE4MCksITApfQpmdW5jdGlvbiBLSyhhLGIpe2lmKCFhfHxNKGEpKXtpZihubShqbS5iYS5WZSkpcmV0dXJuIFAoMTc2KSxqbS5iYS5WZTtpZihubShqbS5iYS5tbikpcmV0dXJuIFAoMTcwKSxqbS5iYS5WZTt2YXIgYz1GcCgpO2lmKCFjKVAoMTcxKTtlbHNlIGlmKGMub3BlbmVyKXt2YXIgZD1mdW5jdGlvbihnKXtpZighSUsuaW5jbHVkZXMoZy5vcmlnaW4pKVAoMTcyKTtlbHNlIGlmKCFKSyhnKSl7dmFyIGg9e2dhZFNvdXJjZTpnLmRhdGEuZ2FkU291cmNlfTtoLmdjbGlkPWcuZGF0YS5nY2xpZDttbShqbS5iYS5WZSxoKTtiJiZnLmRhdGEuZ2NsaWQmJmxzKCJnY2xfYXciLFN0cmluZyhnLmRhdGEuZ2NsaWQpLDYsYik7dmFyIGw7KGw9Zy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24pPT1udWxsfHxsLmNhbGwoZyk7bnQoYywibWVzc2FnZSIsZCl9fTtpZihtdChjLCJtZXNzYWdlIixkKSl7bW0oam0uYmEubW4sITApO2Zvcih2YXIgZT1tKElLKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSljLm9wZW5lci5wb3N0TWVzc2FnZSh7YWN0aW9uOiJnY2xfc2V0dXAifSwKZi52YWx1ZSk7UCgxNzQpO3JldHVybiBqbS5iYS5WZX1QKDE3NSl9fX07CnZhciBMSz1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4Ok8oYS5NLEYuRC5GZCl8fE8oYS5NLEYuRC5uYiksZG9tYWluOk8oYS5NLEYuRC5MYikscGQ6TyhhLk0sRi5ELkNiKSxmbGFnczpPKGEuTSxGLkQuVGIpfTthLk0uaXNHdG1FdmVudCYmKGIucGF0aD1PKGEuTSxGLkQudmMpKTtyZXR1cm4gYn0sTUs9ZnVuY3Rpb24oYSxiKXtpZighUShhLEguSi5XZSkpe3ZhciBjPUtLKDExOSk7aWYoYyl7dmFyIGQ9bm0oYyksZT1mdW5jdGlvbihnKXtWKGEsSC5KLldlLCEwKTt2YXIgaD1SKGEsRi5ELnpmKSxsPVIoYSxGLkQuQWYpO1UoYSxGLkQuemYsU3RyaW5nKGcuZ2FkU291cmNlKSk7VShhLEYuRC5BZiw2KTtWKGEsSC5KLnNhKTtWKGEsSC5KLnVnKTtVKGEsRi5ELnNhKTtiKCk7VShhLEYuRC56ZixoKTtVKGEsRi5ELkFmLGwpO1YoYSxILkouV2UsITEpfTtpZihkKWUoZCk7ZWxzZXt2YXIgZj12b2lkIDA7Zj1wbShjLGZ1bmN0aW9uKGcsaCl7ZShoKTtxbShjLGYpfSl9fX19LFBLPWZ1bmN0aW9uKGEpe3ZhciBiLApjLGQsZTtiPWEuVG47Yz1hLm1vO2Q9YS5RbztlPWEuVW47aWYoYil7aWYoZHIoY1tGLkQuWGZdLCEhY1tGLkQuQWFdKSl7aWYoV2ooKSYmQnIoQXIoKSkpe2Zvcih2YXIgZj1VcSghMCksZz17fSxoPW0oT2JqZWN0LmtleXModnIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPXZyW25dLHE9ZltwXTtpZihxKXt2YXIgcj0kcChxLDQpO3ImJihvcyhNYXRoLm1pbihOcihyKSxOYigpKXx8TmIoKSxwLDQpfHwoZ1tuXT1xKSl9fWZvcih2YXIgdD17fSx1PW0oT2JqZWN0LmtleXMoZykpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PXUubmV4dCgpKXt2YXIgeD12LnZhbHVlLHk9Z1t4XTtpZih5IT09dm9pZCAwKXt2YXIgej0kcCh5LDQpO3omJnoubT09PSIxIiYmKHRbeF09ei5rKX19QUsodCxlKX1wcyhlKTt0cyhlKTtRdihlKX1pZihPcCgpIT09Mil7Z3MoZSk7aXMoZSk7aWYoWWYoMTUpKXt2YXIgQz1lLEQ9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTsKRC5sZW5ndGh8fChEPWRzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTtpZihELmxlbmd0aCl7Qz1DfHx7fTt2YXIgST1EWzBdO0kudmFsdWUmJm1zKCJnY2xfZGMiLFt7dmVyc2lvbjoiIixnY2xpZDpJLnZhbHVlLHRpbWVzdGFtcDpOYigpLHFhOkkucWF9XSxDKX19SEsoZSk7S0sodm9pZCAwLGUpfWVsc2UgZ3MoZSk7aWYoV2ooKSYmQnIoQXIoKSkpe3ZhciBHPWZzKCk7QUsoRyxlKX14cyhxcyxlKTt5cyhlKX1jW0YuRC5BYV0mJih2cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdKSx1cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSx3cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSxSdihHdihlLnByZWZpeCksY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSxSdigiRlBBVSIsY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSk7ZCYmQXMoTkspO0NzKE9LKX0scXM9WyJhdyIsImRjIiwKImdiIl0sT0s9WyJhdyIsImRjIiwiZ2IiLCJhZyJdLE5LPVsiYXciLCJkYyIsImdiIiwiYWciLCJnYWRfc291cmNlIl07CnZhciBRSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkdhKSxjPVEoYSxILkouc24pLGQ9TSg0NDMpJiZjP1R2KGIpOlV2KGIpLlNoLGU9dm9pZCAwO00oNTcwKSYmYyYmKGU9U3YoYix7WGg6ITB9KS5payk7dmFyIGY7YTp7aWYoSWYoNDcpJiZYbyhmcCkpe3ZhciBnPWRJKGEsImNjZF9lbmFibGVfY20iLCExKSxoPVEoYSxILkouWWEpO1YoYSxILkouYWosITApO1YoYSxILkouZmQsITApO2lmKGh3KGgpKXtWKGEsSC5KLkloLCEwKTt2YXIgbD1kfHxBdigpLG49e30scD17ZXZlbnRNZXRhZGF0YToobltILkouRGNdPVguVi5GYixuW0guSi5ZYV09aCxuW0guSi56al09bCxuW0guSi5mZF09ITAsbltILkouYWpdPSEwLG5bSC5KLkloXT0hMCxuW0guSi5YbV09ZyYmSWYoNDcpLG4pLG5vR3RtRXZlbnQ6ITB9LHE9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLmV2ZW50TmFtZSxhLk0uRWEpO21EKHEsYS5NLmV2ZW50SWQscCk7ZyYmUShhLEguSi53ZCl8fFYoYSxILkouWWEpO2Y9bDsKYnJlYWsgYX19Zj12b2lkIDB9dmFyIHI9ZHx8ZjtpZihyfHxlKXt2YXIgdCx1O3Q9UihhLEYuRC5QYSk7dT1Lei5nai5icDt2YXIgdj1SKGEsRi5ELldjKTshdCYmdiYmKHQ9dltGLkQuUGFdLHU9S3ouZ2oudXEpO3R8fCh0PUF2KFIoYSxGLkQuR2QpKSxzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLFQuVy5GaCksdT1Lei5nai5WcSk7VShhLEYuRC5QYSx0KTtVKGEsRi5ELmRtLHUpO3ImJlUoYSxGLkQueGMscik7ZSYmVShhLCJfJmVjc2lkMiIsZSk7VihhLEguSi5saiwhMCl9fTsKdmFyIFJLPWZ1bmN0aW9uKGEpe1EoYSxILkoueW4pfHxWKGEsSC5KLkphLCExKX0sU0s9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz1YbyhmcCksZD1RKGEsSC5KLnNhKSxlPVIoYSxGLkQuR2QpLGY9UShhLEguSi5wbik7c3dpdGNoKGIpe2Nhc2UgWC5WLnhhOiFmJiZlJiZSSyhhKTthLmV2ZW50TmFtZT09PUYuRC53YSYmVihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6aWYoIWN8fGR8fCFmJiZlKWEuaXNBYm9ydGVkPSEwO2JyZWFrO2Nhc2UgWC5WLnViOmN8fChhLmlzQWJvcnRlZD0hMCk7IWYmJmV8fFJLKGEpO1EoYSxILkoud2QpfHwoYS5pc0Fib3J0ZWQ9ITApO2EuZXZlbnROYW1lIT09Ri5ELndhfHxPKGEuTSxGLkQuQ2wpIT09ITEmJk8oYS5NLEYuRC5UZCkhPT0hMXx8VihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuS2E6YS5ldmVudE5hbWUhPT1GLkQuc2MmJlEoYSxILkouUGMpJiYoYS5pc0Fib3J0ZWQ9ITApLGEudGFyZ2V0Lmlkc1tkQ1sxXV0mJgpPKGEuTSxGLkQuaWgpIT09ITAmJihhLmlzQWJvcnRlZD0hMCl9fTt2YXIgVEs9ZnVuY3Rpb24oYSl7dmFyIGIsYz1NKDU3Nik7aWYoUShhLEguSi5zbikpc3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi5GYjppZighKGEuZXZlbnROYW1lIT09Ri5ELndhfHxjJiZodyhRKGEsSC5KLllhKSkpKWJyZWFrO2I9OTc7YS5ldmVudE5hbWU9PT1GLkQud2EmJkd1KFQuVy5Payk7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLk9iOmlmKGEuZXZlbnROYW1lPT09Ri5ELndhKWJyZWFrO2I9OTg7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLnhhOmI9OTl9IVEoYSxILkouSmEpJiZiJiZQKGIpO1EoYSxILkouSmEpPT09ITAmJihhLmlzQWJvcnRlZD0hMCl9Owp2YXIgVUs9ZnVuY3Rpb24oYSl7aWYoTSg1NjkpJiZXaigpJiZRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgYj1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxjPW5ldyBVaW50OEFycmF5KFtiJjI1NSxiPj44JjI1NV0pLGQsZT15bSgpfHwiWFgiLGY9em0oKXx8IjAwIjtkPW5ldyBVaW50OEFycmF5KFtlLmNoYXJDb2RlQXQoMCksZS5jaGFyQ29kZUF0KDEpLGYuY2hhckNvZGVBdCgwKSxmLmNoYXJDb2RlQXQoMSldKTt2YXIgZz1uZXcgVWludDhBcnJheSg3KSxoO2lmKChoPUEuY3J5cHRvKT09bnVsbHx8IWguZ2V0UmFuZG9tVmFsdWVzKGcpKWZvcih2YXIgbD0wO2w8NztsKyspZ1tsXT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU2KTt2YXIgbj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhjKSx3KGQpLHcoZykpKSxwO3RyeXtwPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhuKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLAoiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWNhdGNoKHEpe3A9IiJ9VShhLEYuRC5FaSxwKX19O2Z1bmN0aW9uIFZLKCl7cmV0dXJuIE10KDcpJiZNdCg5KSYmTXQoMTApfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO3JldHVybiBifUlPLlA9ImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiO2Z1bmN0aW9uIEpPKGEpe3ZhciBiPXt9O3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBjfVZPLlA9ImludGVybmFsLmdldEVsZW1lbnRBdHRyaWJ1dGUiO2Z1bmN0aW9uIFdPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9V08uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudEJ5SWQiO2Z1bmN0aW9uIFhPKGEpe3ZhciBiPSIiO3JldHVybiBifVhPLlA9ImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiO2Z1bmN0aW9uIFlPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9WU8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFBhcmVudCI7ZnVuY3Rpb24gWk8oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1aTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJldmlvdXNTaWJsaW5nIjtmdW5jdGlvbiAkTyhhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7cmV0dXJuIGJ9YVAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZhbHVlIjtmdW5jdGlvbiBiUChhKXt2YXIgYj0wO3JldHVybiBifWJQLlA9ImludGVybmFsLmdldEVsZW1lbnRWaXNpYmlsaXR5UmF0aW8iO2Z1bmN0aW9uIGNQKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Y1AuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudHNCeUNzc1NlbGVjdG9yIjsKZnVuY3Rpb24gZFAoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9ldmVudF9kYXRhIixhKTt2YXIgYzthOnt2YXIgZD1hLGU9WEYodGhpcykub3JpZ2luYWxFdmVudERhdGE7aWYoZSl7Zm9yKHZhciBmPWUsZz17fSxoPXt9LGw9e30sbj1bXSxwPWQuc3BsaXQoIlxcXFwiKSxxPTA7cTxwLmxlbmd0aDtxKyspe2Zvcih2YXIgcj1wW3FdLnNwbGl0KCJcXC4iKSx0PTA7dDxyLmxlbmd0aDt0Kyspe2Zvcih2YXIgdT1yW3RdLnNwbGl0KCIuIiksdj0wO3Y8dS5sZW5ndGg7disrKW4ucHVzaCh1W3ZdKSx2IT09dS5sZW5ndGgtMSYmbi5wdXNoKGwpO3QhPT1yLmxlbmd0aC0xJiZuLnB1c2goaCl9cSE9PXAubGVuZ3RoLTEmJm4ucHVzaChnKX1mb3IodmFyIHg9W10seT0iIix6PW0obiksQz16Lm5leHQoKTshQy5kb25lO0M9CnoubmV4dCgpKXt2YXIgRD1DLnZhbHVlO0Q9PT1sPyh4LnB1c2goeSkseT0iIik6eT1EPT09Zz95KyJcXCI6RD09PWg/eSsiLiI6eStEfXkmJngucHVzaCh5KTtmb3IodmFyIEk9bSh4KSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7aWYoZj09bnVsbCl7Yz12b2lkIDA7YnJlYWsgYX1mPWZbRy52YWx1ZV19Yz1mfWVsc2UgYz12b2lkIDB9Yj1VZChjLHRoaXMuVCwxKTtyZXR1cm4gYn1kUC5QPSJpbnRlcm5hbC5nZXRFdmVudERhdGEiO2Z1bmN0aW9uIGVQKGEpe3ZhciBiPW51bGw7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9kb21fZWxlbWVudHMiLCJjc3MiLGEpO3RyeXt2YXIgYz1CLnF1ZXJ5U2VsZWN0b3IoYSk7YyYmKGI9bmV3IFBkKGMpKX1jYXRjaChkKXtyZXR1cm4gbnVsbH1yZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO3JldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtyZXR1cm4gVWQoYyl9aVAuUD0iaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iO2Z1bmN0aW9uIGpQKCl7dmFyIGE9bmV3IGtiO2lmKGFyZ3VtZW50cy5sZW5ndGghPT0wKXRocm93IEsodGhpcy5nZXROYW1lKCksW10sYXJndW1lbnRzKTt2YXIgYj1WTSgpO2IhPT12b2lkIDAmJmEuc2V0KEYuRC5rZyxifHwiZXJyb3IiKTt2YXIgYz1MdCgpO2MmJmEuc2V0KEYuRC5LZSxjKTt2YXIgZD1LdCgpO2QmJmEuc2V0KEYuRC5PZSxkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmYS5zZXQoRi5ELnVoLGUpO3ZhciBmPWtGLkg7ZiYmYS5zZXQoRi5ELnRoLGYpO3JldHVybiBhfWpQLlA9ImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIjtmdW5jdGlvbiBrUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPSRIKGEpfHx7fTtjPVVkKGRbYl0sdGhpcy5UKTtyZXR1cm4gY31rUC5QPSJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIGxQKGEsYil7dmFyIGM7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7cmV0dXJuIGF9clAuUD0iaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyI7ZnVuY3Rpb24gc1AoKXt2YXIgYT0iIjtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO3JldHVybiBhfXRQLlA9ImludGVybmFsLmdldFRvcFdpbmRvd1VybCI7ZnVuY3Rpb24gdVAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiLGEpO2I9TGooUmooQS5sb2NhdGlvbi5ocmVmKSxhKTtyZXR1cm4gYn11UC5wdWJsaWNOYW1lPSJnZXRVcmwiO2Z1bmN0aW9uIHZQKCl7TCh0aGlzLCJnZXRfdXNlcl9hZ2VudCIpO3JldHVybiBIYy51c2VyQWdlbnR9dlAucHVibGljTmFtZT0iZ2V0VXNlckFnZW50Ijt2UC5QPSJpbnRlcm5hbC5nZXRVc2VyQWdlbnQiO2Z1bmN0aW9uIHdQKCl7dmFyIGE7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O2Z1bmN0aW9uIHZSKGEpe3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiEhYyYmYy5jb252ZXJzaW9ufTtWKGEsSC5KLm1nLGIoWEsoYSkpKTtRKGEsSC5KLm5nKSYmVihhLEguSi5ZbSxiKFhLKGEsImZpcnN0X3Zpc2l0IikpKTtRKGEsSC5KLlRlKSYmVihhLEguSi5ibixiKFhLKGEsInNlc3Npb25fc3RhcnQiKSkpfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIFBSPVtGLkQucmEsRi5ELmthXSxRUj1bRi5ELnJhLEYuRC5rYSxGLkQubWFdOwpmdW5jdGlvbiBSUihhKXt2YXIgYixjPU0oNTA2KSYmIWRJKGEsImNjZF9nYV9hZHNfaWRzX29wdF9vdXQiLCExKSxkPSEhZEkoYSwiZ29vZ2xlX25nIiwhMSksZT1YbyhjP2Q/UVI6ZnA6UFIpLGY7Zj1kSShhLEYuRC5VZixPKGEuTSxGLkQuVWYpKXx8ISFkSShhLCJnb29nbGVfbmciLCExKTtiPXtoZjpjLEVzOmQsR286ZSxmZjpmLExnOiEhZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSxiaTpBbSgpLEdqOiFWSygpLEZzOmJrKFpLKGEpKSxEczohIVEoYSxILkouYmUpLEdzOiEhUShhLEguSi5UZSksdXM6ISFPKGEuTSxGLkQuTmwpLEtzOiEhUShhLEguSi5laikseGc6TyhhLk0sRi5ELlNjKSxucjpPKGEuTSxGLkQuU2Msdm9pZCAwLDQpLEhzOiEhUShhLEguSi5GYyl9O1YoYSxILkouY2osYi5mZik7VihhLEguSi5iaixTUihiKSk7Yi5oZiYmIWIuZmYmJmIuTGcmJlNSKGIpJiZVKGEsIl8maWJ0IiwiMSIpO1NSKGIpJiZiLkdvJiYoYi5oZj9iLnhnIT09ITF8fGIuTGc6MSkmJlYoYSwKSC5KLnJuLCEwKTtiLkVzJiYhYi5iaSYmVShhLEYuRC5MZSwxKTsoYi5oZj9iLnhnOmIubnIpPT09ITEmJlUoYSwiXyZuZ3MiLCIxIik7VihhLEguSi5oZCxUUihiKSYmKGIuR3N8fGIudXMpKTtWKGEsSC5KLnJnLFRSKGIpJiZiLktzJiYhYi5iaSl9ZnVuY3Rpb24gU1IoYSl7cmV0dXJuIGEuaGY/KGEuTGd8fGEuZmYpJiYhYS5iaSYmIWEuR2o6YS5mZiYmYS54ZyE9PSExJiYhYS5HaiYmIWEuYml9ZnVuY3Rpb24gVFIoYSl7aWYoYS5IcylyZXR1cm4hMTtpZihhLmhmKXtpZighYS5mZiYmIWEuTGcpcmV0dXJuITF9ZWxzZSBpZighYS5mZilyZXR1cm4hMTtyZXR1cm4gYS5Gc3x8YS5Ec3x8YS5Hanx8KGEuaGY/YS54Zz09PSExJiYhYS5MZzphLnhnPT09ITEpfHwhYS5Hbz8hMTohMH07dmFyIGJTPWZ1bmN0aW9uKGEpe3ZhciBiPSEwO2I9Yj09PXZvaWQgMD8hMTpiO2lmKE0oNDI1KSYmIShwbCgpfHxiJiZRKGEsSC5KLmRqKXx8YS5ldmVudE5hbWUhPT1GLkQud2F8fFEoYSxILkouRmMpKSl7dmFyIGM9e30sZD17fSxlPXtldmVudE1ldGFkYXRhOm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS5NLmV2ZW50TWV0YWRhdGEsKGNbSC5KLkZjXT0hMCxjKSxiP3t9OihkW0guSi5EY109WC5WLkthLGQpKSxub0d0bUV2ZW50OiEwfSxmPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsInN0cnVjdHVyZWRfZGF0YSIsYS5NLkVhKTttRChmLGEuTS5ldmVudElkLGUpfX07ZnVuY3Rpb24gaFMoYSl7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtyZXR1cm4gYn0KZnVuY3Rpb24galMoYSxiKXt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9ZnVuY3Rpb24gb1MoYSxiLGMpe3ZhciBkPXRoaXM7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O3JldHVybiBhfTtmdW5jdGlvbiB0UyhhKXt9dFMuUD0iaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiO2Z1bmN0aW9uIHVTKGEsYil7fXVTLnB1YmxpY05hbWU9ImluamVjdEhpZGRlbklmcmFtZSI7ZnVuY3Rpb24gdlMoYSxiLGMsZCxlKXt9dlMuUD0iaW50ZXJuYWwuaW5qZWN0SHRtbCI7dmFyIEFTPXtkbDoxLGlkOjF9OwpmdW5jdGlvbiBCUyhhLGIsYyxkKXt9QlMucHVibGljTmFtZT0iaW5qZWN0U2NyaXB0IjtmdW5jdGlvbiBDUygpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiNSJdO3JldHVybiBifUNTLlA9ImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIjtmdW5jdGlvbiBEUyhhKXt2YXIgYj0hMDtpZighbGgoYSkmJiFqaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEpO2lmKHpiKGMpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGMsInJlYWQiKTtlbHNlIGZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGUudmFsdWUsInJlYWQiKTtiPVhvKGMpO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO2E9SWYoNDcpO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307ZFtiXT1UZChjLHRoaXMuVCk7dmFyIGU9YSxmPVpIO2YuS3x8WUgoZik7Zi5zZXR0aW5nc1tlXT1kO316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO3JldHVybiBjfUlULlA9ImludGVybmFsLnRlc3RSZWdleCI7ZnVuY3Rpb24gSlQoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEtUKGEsYil7aWYoIWxoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIm51bWJlciJdLGFyZ3VtZW50cyk7c2IoYSxiKTt9S1QuUD0iaW50ZXJuYWwudHJhY2tVc2FnZSI7ZnVuY3Rpb24gTFQoYSxiKXt2YXIgYztyZXR1cm4gY31MVC5QPSJpbnRlcm5hbC51bnN1YnNjcmliZUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIE1UKGEpe31NVC5wdWJsaWNOYW1lPSJ1cGRhdGVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIE5UKGEpe3ZhciBiPSExO3JldHVybiBifU5ULlA9ImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIjt2YXIgT1Q9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGFpfSxRVD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjt2YXIgYz1QVC5IO2lmKGMuY29udGFpbnMoYSkpYj1jLmdldChhLHRoaXMpO2Vsc2V7dmFyIGQ7aWYoZD1jLkguaGFzT3duUHJvcGVydHkoYSkpe3ZhciBlPXRoaXMuVC54YigpO2lmKGUpe3ZhciBmPSExLGc9ZS5QYigpO2lmKGcpe0JoKGcpfHwoZj0hMCk7fWQ9Zn1lbHNlIGQ9ITB9aWYoZCl7dmFyIGg9Yy5ILmhhc093blByb3BlcnR5KGEpP2MuSFthXTp2b2lkIDA7Yj1ofWVsc2UgdGhyb3cgRXJyb3IoYSsiIGlzIG5vdCBhIHZhbGlkIEFQSSBuYW1lLiIpO31yZXR1cm4gYn19LFBUO2Z1bmN0aW9uIFJUKGEsYixjKXtQVHx8KFBUPW5ldyBPVCk7UFQuSC5hZGQoYSxiLGMpfWZ1bmN0aW9uIFNUKGEsYil7UFR8fChQVD1uZXcgT1QpO3ZhciBjPVBULkg7aWYoYy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKGMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aXRoIGFuIGV4aXN0aW5nIEFQSSBuYW1lOiAiK2ErIi4iKTtjLkhbYV09eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBUVChhLGIpe2Z1bmN0aW9uIGMoZCl7aWYoIWVoKGQpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGQsdGhpcy5ULDEpLnJiKCk7YShlKX1jLlA9ImludGVybmFsLiIrYjtyZXR1cm4gY307ZnVuY3Rpb24gVVQoKXt2YXIgYT1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBTVChjLlAsYyl9LGI9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgUlQoYy5wdWJsaWNOYW1lLGMpfTtiKFJGKTtiKFlGKTtiKFJHKTtiKFRHKTtiKFVHKTtiKGRIKTtiKGZIKTtiKGhJKTtiKFBTKCkpO2IoakkpO2IoT08pO2IoUE8pO2IobFApO2IobVApO2IoblApO2IodVApO2IodlApO2IoclMpO2IodVMpO2IoQlMpO2IoRFMpO2IoVFMpO2IoV1MpO2IoWlMpO2IoYVQpO2IoYlQpO2IoZFQpO2Iob1QpO2IoclQpO2IodVQpO2IoeVQpO2IoQ1QpO2IoSFQpO2IoTVQpO1JUKCJNYXRoIix6aCgpKTtSVCgiT2JqZWN0IixaaCk7UlQoIlRlc3RIZWxwZXIiLGNpKCkpO1JUKCJhc3NlcnRBcGkiLHdoKTtSVCgiYXNzZXJ0VGhhdCIseGgpO1JUKCJkZWNvZGVVcmkiLENoKTtSVCgiZGVjb2RlVXJpQ29tcG9uZW50IixEaCk7UlQoImVuY29kZVVyaSIsRWgpO1JUKCJlbmNvZGVVcmlDb21wb25lbnQiLEZoKTtSVCgiZmFpbCIsCkxoKTtSVCgiZ2VuZXJhdGVSYW5kb20iLE5oKTtSVCgiZ2V0VGltZXN0YW1wIixPaCk7UlQoImdldFRpbWVzdGFtcE1pbGxpcyIsT2gpO1JUKCJnZXRUeXBlIixQaCk7UlQoIm1ha2VJbnRlZ2VyIixSaCk7UlQoIm1ha2VOdW1iZXIiLFNoKTtSVCgibWFrZVN0cmluZyIsVGgpO1JUKCJtYWtlVGFibGVNYXAiLFVoKTtSVCgibW9jayIsWGgpO1JUKCJtb2NrT2JqZWN0IixZaCk7UlQoImZyb21CYXNlNjQiLEhPLCEoImF0b2IiaW4gQSkpO1JUKCJsb2NhbFN0b3JhZ2UiLFNTLCFSUygpKTtSVCgidG9CYXNlNjQiLEpULCEoImJ0b2EiaW4gQSkpO2EoUUYpO2EoVUYpO2EobkcpO2Eoc0cpO2EoSUcpO2EoUEcpO2EoU0cpO2EoVkcpO2EoV0cpO2EoWkcpO2EoJEcpO2EoYUgpO2EoYkgpO2EoY0gpO2EoZUgpO2EoZ0gpO2EoZ0kpO2EoaUkpO2Eoa0kpO2EobEkpO2EobUkpO2EobkkpO2Eob0kpO2EoZkopO2EobUopO2EodEopO2EodUopO2EoQUopO2EoRkopO2EoS0opO2EoUkopO2EoV0opO2EoZ0spOwphKGlLKTthKHZLKTthKHdLKTthKHhLKTthKEZPKTthKEdPKTthKElPKTthKEpPKTthKEtPKTthKExPKTthKE1PKTthKE5PKTthKFFPKTthKFJPKTthKFNPKTthKFRPKTthKFVPKTthKFZPKTthKFdPKTthKFhPKTthKFlPKTthKFpPKTthKCRPKTthKGFQKTthKGJQKTthKGNQKTthKGRQKTthKGVQKTthKGZQKTthKGdQKTthKGhQKTthKGlQKTthKGpQKTthKGtQKTthKG9QKTthKHBQKTthKHFQKTthKHJQKTthKHNQKTthKHRQKTthKHdQKTthKG9TKTthKHBTKTthKHRTKTthKHZTKTthKENTKTthKEVTKTthKEZTKTthKEdTKTthKEhTKTthKElTKTthKEpTKTthKEtTKTthKExTKTthKE1TKTthKE5TKTthKE9TKTthKFFTKTthKEdHKTthKFVTKTthKFZTKTthKFhTKTthKFlTKTthKCRTKTthKGNUKTthKGVUKTthKGZUKTthKGhUKTthKGlUKTthKGpUKTthKGxUKTthKG1UKTthKG5UKTthKHBUKTthKHFUKTthKHNUKTthKHRUKTthKHZUKTthKHdUKTthKHhUKTthKHpUKTthKEFUKTthKEJUKTthKERUKTsKYShFVCk7YShGVCk7YShHVCk7YShJVCk7YShLVCk7YShMVCk7YShOVCk7U1QoImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiLHNTKCkpO1NUKCJpbnRlcm5hbC5xdWlja0hhc2giLE1oKTthKFRUKE1GLCJ0YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSIpKSxhKFRUKFBGLCJ0YXNrU2V0VW5pdmVyc2FsUGFyYW1zIikpO2EoVFQoTEYsInRhc2tBZGRBZHNDbGlja0lkcyIpKTtQVHx8KFBUPW5ldyBPVCk7cmV0dXJuIFFUKCl9O3ZhciBKRjtmdW5jdGlvbiBWVCgpe0pGLnNkKGZ1bmN0aW9uKGEsYixjKXtsaigpO3ZhciBkPWpqO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPWQuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFfHwwO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFKys7dHJ5e3JldHVybiBhLmFwcGx5KGIsYyl9ZmluYWxseXtsaigpLGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRS0tfX0pfWZ1bmN0aW9uIFdUKGEpe2lmKGEmJmEubGVuZ3RoKWZvcih2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnJlcGxhY2UoL15fKi8sIiIpO2JbZF09WyJzYW5kYm94ZWRTY3JpcHRzIl19fQpmdW5jdGlvbiBYVChhKXtpZihhKXt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7R2IoYSxmdW5jdGlvbihjLGQpe2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdLnJlcGxhY2UoL15fKi8sIiIpO2JbZl09YltmXXx8W107YltmXS5wdXNoKGMpfX0pfX07ZnVuY3Rpb24gWlQoYSl7bUQocEMoImRldmVsb3Blcl9pZC4iK2EsITApLDAse30pfTtmdW5jdGlvbiAkVChhLGIpe3JldHVybiBFZChhLGJ8fG51bGwpfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoYSl9ZnVuY3Rpb24gYVUoYSl7WmMoYSx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBiVShhKXt2YXIgYj1bInZlaW50ZXJhY3RpdmUuY29tIiwidmUtaW50ZXJhY3RpdmUuY24iXTtpZighYSlyZXR1cm4hMTt2YXIgYz1MaihSaihhKSwiaG9zdCIpO2lmKCFjKXJldHVybiExO2Zvcih2YXIgZD0wO2ImJmQ8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdJiZiW2RdLnRvTG93ZXJDYXNlKCk7aWYoZSl7dmFyIGY9Yy5sZW5ndGgtZS5sZW5ndGg7Zj4wJiZlLmNoYXJBdCgwKSE9PSIuIiYmKGYtLSxlPSIuIitlKTtpZihmPj0wJiZjLmluZGV4T2YoZSxmKT09PWYpcmV0dXJuITB9fXJldHVybiExfQpmdW5jdGlvbiBjVShhLGIsYyl7Zm9yKHZhciBkPXt9LGU9ITEsZj0wO2EmJmY8YS5sZW5ndGg7ZisrKWFbZl0mJmFbZl0uaGFzT3duUHJvcGVydHkoYikmJmFbZl0uaGFzT3duUHJvcGVydHkoYykmJihkW2FbZl1bYl1dPWFbZl1bY10sZT0hMCk7cmV0dXJuIGU/ZDpudWxsfWZ1bmN0aW9uIGRVKGEsYil7dmFyIGM9e307aWYoYSlmb3IodmFyIGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1hW2RdKTtpZihiKXt2YXIgZT1jVShiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIpO2UmJihjPSRUKGUsYykpfXJldHVybiBjfWZ1bmN0aW9uIGVVKGEsYixjKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PWM/YjphfWZ1bmN0aW9uIGZVKGEsYixjKXtyZXR1cm4gVWMoYSxiLGMsdm9pZCAwKX1mdW5jdGlvbiBnVShhLGIpe0FbYV09Yn1mdW5jdGlvbiBoVShhLGIsYyl7dmFyIGQ9QTtiJiYoZFthXT09PXZvaWQgMHx8YyYmIWRbYV0pJiYoZFthXT1iKTtyZXR1cm4gZFthXX12YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKCgoKCgoKCgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9YjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5PPSJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93V2FpdEZvclRhZ3MsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7CnJldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSxmKXtpZighYyYmZiYmZi53YWl0Rm9yVGFncyl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uIHdhaXRGb3JUYWdzLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2NvbnRhaW5lcl9kYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLk89InJlYWRfY29udGFpbmVyX2RhdGEiLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjUiXT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmxpc3Rlbl9kYXRhX2xheWVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2V2ZW50TmFtZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyPWI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLk89Imxpc3Rlbl9kYXRhX2xheWVyIjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNSJdPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWNjZXNzVHlwZSxkPWIudnRwX2FsbG93ZWRFdmVudHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sCiJFdmVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShjPT09ImFueSJ8fGM9PT0ic3BlY2lmaWMiJiZkLmluZGV4T2YoZyk+PTApKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LCJQcm9oaWJpdGVkIGxpc3RlbiBvbiBkYXRhIGxheWVyIGV2ZW50LiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2NvbnNlbnQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtjb25zZW50VHlwZTpjLHJlYWQ6ITEsd3JpdGU6ITF9O3N3aXRjaChkKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrZCk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2NvbnNlbnQ9YjtaLl9fYWNjZXNzX2NvbnNlbnQuTz0iYWNjZXNzX2NvbnNlbnQiO1ouX19hY2Nlc3NfY29uc2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfY29uc2VudC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19jb25zZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI1Il09ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9CmIudnRwX2NvbnNlbnRUeXBlc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIGg9Y1tnXSxsPWguY29uc2VudFR5cGU7aC5yZWFkJiZlLnB1c2gobCk7aC53cml0ZSYmZi5wdXNoKGwpfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24obixwLHEpe2lmKCF6YihwKSl0aHJvdyBkKG4se30sIkNvbnNlbnQgdHlwZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwiQWNjZXNzIHR5cGUgbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCBvciAnd3JpdGUnLCB3YXMgIitxKTt0aHJvdyBkKG4se30sIlByb2hpYml0ZWQgIitxKyIgb24gY29uc2VudCB0eXBlOiAiK3ArIi4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9kb21fZWxlbWVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0eXBlOmMsdmFsdWU6ZH19KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2RvbV9lbGVtZW50cz1iO1ouX19yZWFkX2RvbV9lbGVtZW50cy5PPSJyZWFkX2RvbV9lbGVtZW50cyI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRFbGVtZW50SWRzfHwibm9uZSIsZD1iLnZ0cF9hbGxvd2VkQ3NzU2VsZWN0b3JzfHwibm9uZSIsZT1iLnZ0cF9lbGVtZW50SWRzfHxbXSxmPWIudnRwX2Nzc1NlbGVjdG9yc3x8W10sZz0KYi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oaCxsLG4pe3N3aXRjaChsKXtjYXNlICJpZCI6aWYoYz09PSJub25lIilicmVhaztpZihjPT09ImFueSJ8fGUuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7Y2FzZSAiY3NzIjppZihkPT09Im5vbmUiKWJyZWFrO2lmKGQ9PT0iYW55Inx8Zi5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztkZWZhdWx0OnRocm93IGcoaCx7fSwiVW5rbm93biBzZWxlY3RvciB0eXBlICIrbCsiLiIpO310aHJvdyBnKGgse30sIlByb2hpYml0ZWQgc2VsZWN0b3IgdmFsdWUgIituKyIgZm9yIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9jbGlja19ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnttYXRjaENvbW1vbkJ1dHRvbnM6Yyxjc3NTZWxlY3RvcjpkfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5PPSJkZXRlY3RfY2xpY2tfZXZlbnRzIjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9jbGlja19ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsZSxmKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9PQoiYm9vbGVhbiIpdGhyb3cgYyhkLHt9LCJtYXRjaENvbW1vbkJ1dHRvbnMgbXVzdCBiZSBhIGJvb2xlYW4uIik7aWYoZiE9PXZvaWQgMCYmdHlwZW9mIGYhPT0ic3RyaW5nIil0aHJvdyBjKGQse30sImNzc1NlbGVjdG9yIG11c3QgYmUgYSBzdHJpbmcuIik7fSxhYTphfX0pfSgpOwoKCgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzPWI7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5PPSJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sCmFhOmF9fSl9KCk7CmZ1bmN0aW9uIGtVKCl7dmFyIGE9e30sYj17ZGF0YUxheWVyOnRBLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2EuaGFzT3duUHJvcGVydHkoYykmJnliKGFbY10pJiZhW2NdKCk7ZGVsZXRlIGFbY119LGJvb3RzdHJhcDowfTtyZXR1cm4gYn0KZnVuY3Rpb24gbFUoKXt2YXIgYT1rVSgpO29qKGEpO0NrKCk7akEoKTt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7UWIoYixaLnNlY3VyaXR5R3JvdXBzKTt2YXIgYz15ayh6aygpKSxkLGU9Yz09bnVsbD92b2lkIDA6KGQ9Yy5jb250ZXh0KT09bnVsbD92b2lkIDA6ZC5zb3VyY2U7S2woZSxjPT1udWxsP3ZvaWQgMDpjLnBhcmVudCk7ZSE9PTImJmUhPT00JiZlIT09M3x8UCgxNDIpO3JldHVybiBhfWZ1bmN0aW9uIG1VKCl7dmFyIGE9RSg2MCk7aWYoYSlmb3IodmFyIGI9YS5zcGxpdCgiLiIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPVRMO2QmJihlLkhbZF09ITApfX0KZnVuY3Rpb24gblUoKXt6cCgpO2xqKCk7Zm9yKHZhciBhPWRhdGEucmVzb3VyY2V8fHt9LGI9Y0EsYz1hLm1hY3Jvc3x8W10sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWIubWFjcm9zLnB1c2gobmV3IFV6KGNbZF0sZCxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGU9YS50YWdzfHxbXSxmPTA7ZjxlLmxlbmd0aDtmKyspYi50YWdzLnB1c2gobmV3IFl6KGVbZl0sZixiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGc9YS5wcmVkaWNhdGVzfHxbXSxoPTA7aDxnLmxlbmd0aDtoKyspYi5wcmVkaWNhdGVzLnB1c2gobmV3IFZ6KGdbaF0sYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBsPWEucnVsZXN8fFtdLG49MDtuPGwubGVuZ3RoO24rKyliLnJ1bGVzLnB1c2gobmV3IFd6KGxbbl0sbikpO1F6PVo7dmFyIHA9ZGF0YS5wZXJtaXNzaW9uc3x8e30scT1aO2RnPW5ldyBnZyhFKDUpLHAscSk7dmFyIHI9ZGF0YS5zYW5kYm94ZWRfc2NyaXB0cyx0PWRhdGEuc2VjdXJpdHlfZ3JvdXBzLHU9ZGF0YS5ydW50aW1lfHwKW10sdj1kYXRhLnJ1bnRpbWVfbGluZXM7SkY9bmV3IHBmO1ZUKCk7UHo9SUYoKTt2YXIgeD1KRix5PVVUKCksej1uZXcgTGQoInJlcXVpcmUiLHkpO3ouWmEoKTt4LkguSC5zZXQoInJlcXVpcmUiLHopO2RiLnNldCgicmVxdWlyZSIseik7Zm9yKHZhciBDPTA7Qzx1Lmxlbmd0aDtDKyspe3ZhciBEPXVbQ107aWYoIUFycmF5LmlzQXJyYXkoRCl8fEQubGVuZ3RoPDMpe2lmKEQubGVuZ3RoPT09MCljb250aW51ZTticmVha312JiZ2W0NdJiZ2W0NdLmxlbmd0aCYmUGYoRCx2W0NdKTt0cnl7SkYuZXhlY3V0ZShEKX1jYXRjaChvVSl7fX1XVChyKTtYVCh0KTt2YXIgST1sVSgpO2lGKCk7dm0uYmluZCgpO2lmKCFEailmb3IodmFyIEc9Qm0oKT9lcChMZig1KSk6ZXAoTGYoNCkpLE49bShSbyksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWUsZWE9VyxqYT1HW1ddPyJncmFudGVkIjoiZGVuaWVkIjt0bCgpLmltcGxpY2l0KGVhLGphKX1oRS5iaW5kKCk7VEIoKTsKT0IoKTtmbi5OJiYoZ3ooKSxmeihBRiksZ0EoKSxjQj1uZXcgYkIsZnooaXopLE9DKCksREZ8fChERj1uZXcgQkYpLGZCfHwoZkI9bmV3IGVCKSxGRj1uZXcgRUYpO2lmKGZuLkspe0RFLmJpbmQoKTttQy5iaW5kKCk7d0UuYmluZCgpO3ZhciBmYT1BaygpO2lmKGZhKXt2YXIgc2E7YTp7dmFyIGRhLG1hPShkYT1mYS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZGEuc3JjO2lmKG1hKXt2YXIgUGE7dHJ5e3ZhciBGYTtQYT0oRmE9cmQoKSk9PW51bGw/dm9pZCAwOkZhLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIil9Y2F0Y2gob1Upe31pZihQYSl7Zm9yKHZhciBxYT0tMSxpYj1tKFBhKSxYYj1pYi5uZXh0KCk7IVhiLmRvbmU7WGI9aWIubmV4dCgpKXt2YXIgTGM9WGIudmFsdWU7aWYoTGMuaW5pdGlhdG9yVHlwZT09PQoic2NyaXB0IiYmKHFhKz0xLExjLm5hbWUucmVwbGFjZShORSwiIik9PT1tYS5yZXBsYWNlKE5FLCIiKSkpe3NhPXFhO2JyZWFrIGF9fVAoMTQ2KX1lbHNlIFAoMTQ1KX1zYT12b2lkIDB9dmFyIFFkPXNhO1FkIT09dm9pZCAwJiYoZmEuY2Fub25pY2FsQ29udGFpbmVySWQmJlVtKCJydGciLFN0cmluZyhmYS5jYW5vbmljYWxDb250YWluZXJJZCkpLFVtKCJzbG8iLFN0cmluZyhRZCkpLFVtKCJobG8iLGZhLmh0bWxMb2FkT3JkZXJ8fCItMSIpLFVtKCJsc3QiLFN0cmluZyhmYS5sb2FkU2NyaXB0VHlwZXx8IjAiKSkpfWVsc2UgUCgxNDQpO3ZhciBZYzt2YXIgRGQ9eGsoKTtpZihEZClpZihEZC5jYW5vbmljYWxDb250YWluZXJJZClZYz1EZC5jYW5vbmljYWxDb250YWluZXJJZDtlbHNle3ZhciBqZix2aD1EZC5zY3JpcHRDb250YWluZXJJZHx8KChqZj1EZC5kZXN0aW5hdGlvbnMpPT1udWxsP3ZvaWQgMDpqZlswXSk7WWM9dmg/Il8iK3ZoOnZvaWQgMH1lbHNlIFljPXZvaWQgMDt2YXIgSkU9ClljO0pFJiZVbSgicGNpZCIsSkUpO1VtKCJidCIsU3RyaW5nKElmKDQ3KT8yOklmKDUwKT8xOjApKTtVbSgiY3QiLFN0cmluZyhJZig0Nyk/MDpJZig1MCk/MTozKSk7QUUuYmluZCgpO2Zvcih2YXIgV3I9W10sWHI9W10sS0U9bShPYmplY3Qua2V5cyhHRSkpLFlyPUtFLm5leHQoKTshWXIuZG9uZTtZcj1LRS5uZXh0KCkpe3ZhciBybT1Zci52YWx1ZTtpZih3aW5kb3cuaXNTZWN1cmVDb250ZXh0fHwhSUVbcm1dKXt2YXIgTEU9R0Vbcm1dKCk7aWYoeWIoTEUpKXt2YXIgTUU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTEUpO1RiKE1FLCJ7IFtuYXRpdmUgY29kZV0gfSIpfHxUYihNRSwie1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKXx8WHIucHVzaChybSl9ZWxzZSBXci5wdXNoKHJtKX19V3IubGVuZ3RoPjAmJlVtKCJqc20iLFdyLmpvaW4oIn4iKSk7WHIubGVuZ3RoPjAmJlVtKCJqc3AiLFhyLmpvaW4oIn4iKSk7RXl8fChFeT1uZXcgRHkpfWhGKCk7aW0oMSk7RUcoKTtyZXR1cm4gSX0KZnVuY3Rpb24gdW0oKXt0cnl7aWYoIWhrKCkmJihJZig0Nyl8fCFOaygpKSl7SWYoNjQpJiZ3ai5ILksuYWRkKDExODUxNzkxNyk7emooKTtmbi5IJiZzeigpO1dmWzVdPSEwO3ZhciBhPWtqKCJkZWJ1Z0dyb3VwSWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKX0pO1NsKGEpO2t0KCk7ekYoKTtGdCgpO1BCKCk7aWYoRGsoKSl7RSg1KTtERygpO2lCKCkucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnModmsoKSk7fWVsc2V7Rk0uUigpO25VKCkuYm9vdHN0cmFwPU5iKCk7SWYoNTEpJiZwRSgpOwpmbi5IJiZ0eigpO3R5cGVvZiBBLm5hbWU9PT0ic3RyaW5nIiYmU2IoQS5uYW1lLCJ3ZWItcGl4ZWwtc2FuZGJveC1DVVNUT00iKSYmc2QoKT9aVCgiZE1EZzBZeiIpOkEuU2hvcGlmeSYmKFpUKCJkTjJaa01qIiksc2QoKSYmWlQoImROVFUwWXoiKSk7bVUoKX19fWNhdGNoKGIpe2ltKDUpLGh6KCl9fQooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe249Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJlc2VudCIpO2dsKG4pJiYobD1oLnhtKX1mdW5jdGlvbiBjKCl7bCYmS2M/ZyhsKTphKCl9aWYoIUFbRSgzNyldKXt2YXIgZD0hMTtpZihCLnJlZmVycmVyKXt2YXIgZT1SaihCLnJlZmVycmVyKTtkPU5qKGUsImhvc3QiKT09PUUoMzgpfWlmKCFkKXt2YXIgZj1jcShFKDM5KSk7ZD0hKCFmLmxlbmd0aHx8IWZbMF0ubGVuZ3RoKX1kJiYoQVtFKDM3KV09ITAsVWMoRSg0MCkpKX12YXIgZz1mdW5jdGlvbih1KXt2YXIgdj0iR1RNIix4PSJHVE0iO0lmKDQ1KSYmKHY9Ik9HVCIseD0iR1RBRyIpO3ZhciB5PUUoMjMpLHo9QVt5XTt6fHwoej1bXSxBW3ldPXosVWMoImh0dHBzOi8vIitFKDMpKyIvZGVidWcvYm9vdHN0cmFwP2lkPSIrRSg1KSsiJnNyYz0iK3grIiZjb25kPSIrU3RyaW5nKHUpKyImZ3RtPSIrZHUoKSkpO3ZhciBDPXttZXNzYWdlVHlwZToiQ09OVEFJTkVSX1NUQVJUSU5HIiwKZGF0YTp7c2NyaXB0U291cmNlOktjLGNvbnRhaW5lclByb2R1Y3Q6dixkZWJ1ZzohMSxpZDpFKDUpLHRhcmdldFJlZjp7Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246c2soKSxjYW5vbmljYWxJZDpFKDYpfSxhbGlhc2VzOndrKCksZGVzdGluYXRpb25zOnRrKCl9fSxEPUMuZGF0YTtELnJlc3VtZT1mdW5jdGlvbigpe2EoKX07RC5yZXN1bWVXaXRoTWVtb3M9ZnVuY3Rpb24oKXtzbCgxKTthKCl9O0lmKDIpJiYoQy5kYXRhLmluaXRpYWxQdWJsaXNoPSEwKTt6LnB1c2goQyl9LGg9e0dxOjEsUG06MixvbjozLGpsOjQseG06NX07aFtoLkdxXT0iR1RNX0RFQlVHX0xFR0FDWV9QQVJBTSI7aFtoLlBtXT0iR1RNX0RFQlVHX1BBUkFNIjtoW2gub25dPSJSRUZFUlJFUiI7aFtoLmpsXT0iQ09PS0lFIjtoW2gueG1dPSJFWFRFTlNJT05fUEFSQU0iO3ZhciBsPXZvaWQgMCxuPXZvaWQgMCxwPUxqKEEubG9jYXRpb24sInF1ZXJ5IiwhMSx2b2lkIDAsImd0bV9kZWJ1ZyIpO2dsKHApJiYobD1oLlBtKTsKaWYoIWwmJkIucmVmZXJyZXIpe3ZhciBxPVJqKEIucmVmZXJyZXIpO05qKHEsImhvc3QiKT09PUUoMjQpJiYobD1oLm9uKX1pZighbCl7dmFyIHI9Y3EoIl9fVEFHX0FTU0lTVEFOVCIpO3IubGVuZ3RoJiZyWzBdLmxlbmd0aCYmKGw9aC5qbCl9bHx8YigpO2lmKCFsJiZmbChuKSl7dmFyIHQ9ITE7JGMoQiwiVEFEZWJ1Z1NpZ25hbCIsZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sITEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwyMDApfWVsc2UgYygpfSkoZnVuY3Rpb24oKXshSWYoNDcpfHx0bSgpWyIwIl0/dW0oKTp4bSgpfSk7Cgp9KSgpCgo="}},"time_used":107,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":42,"receive":65,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:31.947Z","timestamp":1785145411947,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/shared-kb1yqHaA.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:31 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-42705\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k1TNDSF90h1GtukZP3y6RYe8Vgq4JyU3omdeeAPMuaoSgWZEwvOHM2gpqLphpTw4URob/9Q\r\nx-77-nzt-ray: fdb54123991870604328676a9a7da038\r\nage: 19\r\nx-77-cache: HIT\r\nx-77-age: 8151\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":272133,"size_decoded":92600,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (44710)","md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-29T06:17:50.104199Z","times_seen":1066,"resource_available":true,"data":"dmFyIGU9T2JqZWN0LmNyZWF0ZSx0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpLHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpdChyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8dChyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLGksbyxzKT0+e2lmKGkmJnR5cGVvZiBpPT1gb2JqZWN0YHx8dHlwZW9mIGk9PWBmdW5jdGlvbmApZm9yKHZhciBjPXIoaSksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhYS5jYWxsKGUsZCkmJmQhPT1vJiZ0KGUsZCx7Z2V0OihlPT5pW2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9bihpLGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KG4scixhKT0+KGE9bj09bnVsbD97fTplKGkobikpLGwocnx8IW58fCFuLl9fZXNNb2R1bGU/dChhLGBkZWZhdWx0YCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6YSxuKSksZD1lPT5hLmNhbGwoZSxgbW9kdWxlLmV4cG9ydHNgKT9lW2Btb2R1bGUuZXhwb3J0c2BdOmwodCh7fSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZSksZj1BcnJheS5pc0FycmF5LHA9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsbT1BcnJheS5wcm90b3R5cGUuaW5jbHVkZXMsaD1BcnJheS5mcm9tLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHk9T2JqZWN0LnByb3RvdHlwZSxlZT1BcnJheS5wcm90b3R5cGUsYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdGU9T2JqZWN0LmlzRXh0ZW5zaWJsZTtmdW5jdGlvbiBuZShlKXtyZXR1cm4gdHlwZW9mIGU9PWBmdW5jdGlvbmB9dmFyIHg9KCk9Pnt9O2Z1bmN0aW9uIHJlKGUpe3JldHVybiBlKCl9ZnVuY3Rpb24gaWUoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWZ1bmN0aW9uIGFlKCl7dmFyIGUsdDtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgobixyKT0+e2U9bix0PXJ9KSxyZXNvbHZlOmUscmVqZWN0OnR9fXZhciBvZT0xPDwyNCxzZT0xMDI0LGNlPTIwNDgsbGU9NDA5Nix1ZT04MTkyLGRlPTE2Mzg0LGZlPTMyNzY4LHBlPTE8PDI1LG1lPTY1NTM2LGhlPTE8PDE5LGdlPTE8PDIwLF9lPTE8PDI1LHZlPTY1NTM2LHllPTE8PDIxLGJlPTE8PDIyLHhlPTE8PDIzLFNlPVN5bWJvbChgJHN0YXRlYCksQ2U9U3ltYm9sKGBsZWdhY3kgcHJvcHNgKSx3ZT1TeW1ib2woYGApLFRlPW5ldyBjbGFzcyBleHRlbmRzIEVycm9ye25hbWU9YFN0YWxlUmVhY3Rpb25FcnJvcmA7bWVzc2FnZT0iVGhlIHJlYWN0aW9uIHRoYXQgY2FsbGVkIGBnZXRBYm9ydFNpZ25hbCgpYCB3YXMgcmUtcnVuIG9yIGRlc3Ryb3llZCJ9LEVlPSEhZ2xvYmFsVGhpcy5kb2N1bWVudD8uY29udGVudFR5cGUmJmdsb2JhbFRoaXMuZG9jdW1lbnQuY29udGVudFR5cGUuaW5jbHVkZXMoYHhtbGApO2Z1bmN0aW9uIERlKGUpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9saWZlY3ljbGVfb3V0c2lkZV9jb21wb25lbnRgKX1mdW5jdGlvbiBPZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9hc3luY19kZXJpdmVkX29ycGhhbmApfWZ1bmN0aW9uIGtlKGUsdCxuKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWFjaF9rZXlfZHVwbGljYXRlYCl9ZnVuY3Rpb24gQWUoZSl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl90ZWFyZG93bmApfWZ1bmN0aW9uIGplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl91bm93bmVkX2Rlcml2ZWRgKX1mdW5jdGlvbiBNZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWZmZWN0X29ycGhhbmApfWZ1bmN0aW9uIE5lKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF91cGRhdGVfZGVwdGhfZXhjZWVkZWRgKX1mdW5jdGlvbiBQZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvcHJvcHNfaW52YWxpZF92YWx1ZWApfWZ1bmN0aW9uIEZlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3NldF9jb250ZXh0X2FmdGVyX2luaXRgKX1mdW5jdGlvbiBJZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9zdGF0ZV9kZXNjcmlwdG9yc19maXhlZGApfWZ1bmN0aW9uIExlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Byb3RvdHlwZV9maXhlZGApfWZ1bmN0aW9uIFJlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Vuc2FmZV9tdXRhdGlvbmApfWZ1bmN0aW9uIHplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N2ZWx0ZV9ib3VuZGFyeV9yZXNldF9vbmVycm9yYCl9dmFyIEJlPXt9LFM9U3ltYm9sKCksVmU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxgLEhlPWBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsVWU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxgO2Z1bmN0aW9uIFdlKCl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9kZXJpdmVkX2luZXJ0YCl9ZnVuY3Rpb24gR2UoZSl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9oeWRyYXRpb25fbWlzbWF0Y2hgKX1mdW5jdGlvbiBLZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc2VsZWN0X211bHRpcGxlX2ludmFsaWRfdmFsdWVgKX1mdW5jdGlvbiBxZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc3ZlbHRlX2JvdW5kYXJ5X3Jlc2V0X25vb3BgKX12YXIgQz0hMTtmdW5jdGlvbiBKZShlKXtDPWV9dmFyIHc7ZnVuY3Rpb24gVChlKXtpZihlPT09bnVsbCl0aHJvdyBHZSgpLEJlO3JldHVybiB3PWV9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gVChCbih3KSl9ZnVuY3Rpb24gWGUoZSl7aWYoQyl7aWYoQm4odykhPT1udWxsKXRocm93IEdlKCksQmU7dz1lfX1mdW5jdGlvbiBaZShlPTEpe2lmKEMpe2Zvcih2YXIgdD1lLG49dzt0LS07KW49Qm4obik7dz1ufX1mdW5jdGlvbiBRZShlPSEwKXtmb3IodmFyIHQ9MCxuPXc7Oyl7aWYobi5ub2RlVHlwZT09PTgpe3ZhciByPW4uZGF0YTtpZihyPT09YF1gKXtpZih0PT09MClyZXR1cm4gbjstLXR9ZWxzZSAocj09PWBbYHx8cj09PWBbIWB8fHJbMF09PT1gW2AmJiFpc05hTihOdW1iZXIoci5zbGljZSgxKSkpKSYmKHQrPTEpfXZhciBpPUJuKG4pO2UmJm4ucmVtb3ZlKCksbj1pfX1mdW5jdGlvbiAkZShlKXtpZighZXx8ZS5ub2RlVHlwZSE9PTgpdGhyb3cgR2UoKSxCZTtyZXR1cm4gZS5kYXRhfWZ1bmN0aW9uIGV0KGUpe3JldHVybiBlPT09dGhpcy52fWZ1bmN0aW9uIHR0KGUsdCl7cmV0dXJuIGU9PWU/ZSE9PXR8fHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfHx0eXBlb2YgZT09YGZ1bmN0aW9uYDp0PT10fWZ1bmN0aW9uIG50KGUpe3JldHVybiF0dChlLHRoaXMudil9dmFyIHJ0PSExLGl0PSExO2Z1bmN0aW9uIGF0KCl7aXQ9ITB9dmFyIEU9bnVsbDtmdW5jdGlvbiBvdChlKXtFPWV9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIGZ0KGBnZXRDb250ZXh0YCkuZ2V0KGUpfWZ1bmN0aW9uIGN0KGUsdCl7bGV0IG49ZnQoYHNldENvbnRleHRgKTtpZihydCl7dmFyIHI9SS5mOyFGJiZyJjMyJiYhRS5pfHxGZSgpfXJldHVybiBuLnNldChlLHQpLHR9ZnVuY3Rpb24gbHQoZSx0PSExLG4pe0U9e3A6RSxpOiExLGM6bnVsbCxlOm51bGwsczplLHg6bnVsbCxyOkksbDppdCYmIXQ/e3M6bnVsbCx1Om51bGwsJDpbXX06bnVsbH19ZnVuY3Rpb24gdXQoZSl7dmFyIHQ9RSxuPXQuZTtpZihuIT09bnVsbCl7dC5lPW51bGw7Zm9yKHZhciByIG9mIG4pc3Iocil9cmV0dXJuIGUhPT12b2lkIDAmJih0Lng9ZSksdC5pPSEwLEU9dC5wLGU/P3t9fWZ1bmN0aW9uIGR0KCl7cmV0dXJuIWl0fHxFIT09bnVsbCYmRS5sPT09bnVsbH1mdW5jdGlvbiBmdChlKXtyZXR1cm4gRT09PW51bGwmJkRlKGUpLEUuYz8/PW5ldyBNYXAocHQoRSl8fHZvaWQgMCl9ZnVuY3Rpb24gcHQoZSl7bGV0IHQ9ZS5wO2Zvcig7dCE9PW51bGw7KXtsZXQgZT10LmM7aWYoZSE9PW51bGwpcmV0dXJuIGU7dD10LnB9cmV0dXJuIG51bGx9dmFyIG10PVtdO2Z1bmN0aW9uIGh0KCl7dmFyIGU9bXQ7bXQ9W10saWUoZSl9ZnVuY3Rpb24gZ3QoZSl7aWYobXQubGVuZ3RoPT09MCYmIXp0KXt2YXIgdD1tdDtxdWV1ZU1pY3JvdGFzaygoKT0+e3Q9PT1tdCYmaHQoKX0pfW10LnB1c2goZSl9ZnVuY3Rpb24gX3QoKXtmb3IoO210Lmxlbmd0aD4wOylodCgpfWZ1bmN0aW9uIHZ0KGUpe3ZhciB0PUk7aWYodD09PW51bGwpcmV0dXJuIEYuZnw9eGUsZTtpZighKHQuZiYzMjc2OCkmJiEodC5mJjQpKXRocm93IGU7eXQoZSx0KX1mdW5jdGlvbiB5dChlLHQpe2Zvcig7dCE9PW51bGw7KXtpZih0LmYmMTI4KXtpZighKHQuZiYzMjc2OCkpdGhyb3cgZTt0cnl7dC5iLmVycm9yKGUpO3JldHVybn1jYXRjaCh0KXtlPXR9fXQ9dC5wYXJlbnR9dGhyb3cgZX12YXIgYnQ9fihjZXxsZXxzZSk7ZnVuY3Rpb24gRChlLHQpe2UuZj1lLmYmYnR8dH1mdW5jdGlvbiB4dChlKXtlLmYmNTEyfHxlLmRlcHM9PT1udWxsP0QoZSxzZSk6RChlLGxlKX1mdW5jdGlvbiBTdChlKXtpZihlIT09bnVsbClmb3IobGV0IHQgb2YgZSkhKHQuZiYyKXx8ISh0LmYmNjU1MzYpfHwodC5mXj12ZSxTdCh0LmRlcHMpKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5mJjIwNDg/dC5hZGQoZSk6ZS5mJjQwOTYmJm4uYWRkKGUpLFN0KGUuZGVwcyksRChlLHNlKX1mdW5jdGlvbiB3dChlLHQsbil7aWYoZT09bnVsbClyZXR1cm4gdCh2b2lkIDApLG4mJm4odm9pZCAwKSx4O2xldCByPSRyKCgpPT5lLnN1YnNjcmliZSh0LG4pKTtyZXR1cm4gci51bnN1YnNjcmliZT8oKT0+ci51bnN1YnNjcmliZSgpOnJ9dmFyIFR0PVtdO2Z1bmN0aW9uIEV0KGUsdCl7cmV0dXJue3N1YnNjcmliZTpPKGUsdCkuc3Vic2NyaWJlfX1mdW5jdGlvbiBPKGUsdD14KXtsZXQgbj1udWxsLHI9bmV3IFNldDtmdW5jdGlvbiBpKHQpe2lmKHR0KGUsdCkmJihlPXQsbikpe2xldCB0PSFUdC5sZW5ndGg7Zm9yKGxldCB0IG9mIHIpdFsxXSgpLFR0LnB1c2godCxlKTtpZih0KXtmb3IobGV0IGU9MDtlPFR0Lmxlbmd0aDtlKz0yKVR0W2VdWzBdKFR0W2UrMV0pO1R0Lmxlbmd0aD0wfX19ZnVuY3Rpb24gYSh0KXtpKHQoZSkpfWZ1bmN0aW9uIG8obyxzPXgpe2xldCBjPVtvLHNdO3JldHVybiByLmFkZChjKSxyLnNpemU9PT0xJiYobj10KGksYSl8fHgpLG8oZSksKCk9PntyLmRlbGV0ZShjKSxyLnNpemU9PT0wJiZuJiYobigpLG49bnVsbCl9fXJldHVybntzZXQ6aSx1cGRhdGU6YSxzdWJzY3JpYmU6b319ZnVuY3Rpb24gayhlLHQsbil7bGV0IHI9IUFycmF5LmlzQXJyYXkoZSksaT1yP1tlXTplO2lmKCFpLmV2ZXJ5KEJvb2xlYW4pKXRocm93IEVycm9yKGBkZXJpdmVkKCkgZXhwZWN0cyBzdG9yZXMgYXMgaW5wdXQsIGdvdCBhIGZhbHN5IHZhbHVlYCk7bGV0IGE9dC5sZW5ndGg8MjtyZXR1cm4gRXQobiwoZSxuKT0+e2xldCBvPSExLHM9W10sYz0wLGw9eCx1PSgpPT57aWYoYylyZXR1cm47bCgpO2xldCBpPXQocj9zWzBdOnMsZSxuKTthP2UoaSk6bD10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOnh9LGQ9aS5tYXAoKGUsdCk9Pnd0KGUsZT0+e3NbdF09ZSxjJj1+KDE8PHQpLG8mJnUoKX0sKCk9PntjfD0xPDx0fSkpO3JldHVybiBvPSEwLHUoKSxmdW5jdGlvbigpe2llKGQpLGwoKSxvPSExfX0pfWZ1bmN0aW9uIEEoZSl7bGV0IHQ7cmV0dXJuIHd0KGUsZT0+dD1lKSgpLHR9dmFyIER0PSExLE90PSExLGt0PVN5bWJvbCgpO2Z1bmN0aW9uIEF0KGUsdCxuKXtsZXQgcj1uW3RdPz89e3N0b3JlOm51bGwsc291cmNlOnduKHZvaWQgMCksdW5zdWJzY3JpYmU6eH07aWYoci5zdG9yZSE9PWUmJiEoa3QgaW4gbikpaWYoci51bnN1YnNjcmliZSgpLHIuc3RvcmU9ZT8/bnVsbCxlPT1udWxsKXIuc291cmNlLnY9dm9pZCAwLHIudW5zdWJzY3JpYmU9eDtlbHNle3ZhciBpPSEwO3IudW5zdWJzY3JpYmU9d3QoZSxlPT57aT9yLnNvdXJjZS52PWU6VG4oci5zb3VyY2UsZSl9KSxpPSExfXJldHVybiBlJiZrdCBpbiBuP0EoZSk6UihyLnNvdXJjZSl9ZnVuY3Rpb24ganQoZSx0KXtyZXR1cm4gTnQoZSx0KSx0fWZ1bmN0aW9uIE10KCl7bGV0IGU9e307ZnVuY3Rpb24gdCgpe2FyKCgpPT57Zm9yKHZhciB0IGluIGUpZVt0XS51bnN1YnNjcmliZSgpO2coZSxrdCx7ZW51bWVyYWJsZTohMSx2YWx1ZTohMH0pfSl9cmV0dXJuW2UsdF19ZnVuY3Rpb24gTnQoZSx0KXtEdD0hMDt0cnl7ZS5zZXQodCl9ZmluYWxseXtEdD0hMX19ZnVuY3Rpb24gUHQoZSx0LG4pe3JldHVybiBOdChlLG4pLHR9ZnVuY3Rpb24gRnQoZSl7dmFyIHQ9T3Q7dHJ5e3JldHVybiBPdD0hMSxbZSgpLE90XX1maW5hbGx5e090PXR9fXZhciBJdD1uZXcgU2V0LGo9bnVsbCxMdD1udWxsLE09bnVsbCxSdD1udWxsLHp0PSExLEJ0PSExLFZ0PW51bGwsSHQ9bnVsbCxVdD0wLFd0PTEsR3Q9Y2xhc3MgZXtpZD1XdCsrO2N1cnJlbnQ9bmV3IE1hcDtwcmV2aW91cz1uZXcgTWFwOyNlPW5ldyBTZXQ7I3Q9bmV3IFNldDsjbj1uZXcgU2V0OyNyPW5ldyBNYXA7I2k9bmV3IE1hcDsjYT1udWxsOyNvPVtdOyNzPVtdOyNjPW5ldyBTZXQ7I2w9bmV3IFNldDsjdT1uZXcgTWFwOyNkPW5ldyBTZXQ7aXNfZm9yaz0hMTsjZj0hMTsjcD1uZXcgU2V0OyNtKCl7cmV0dXJuIHRoaXMuaXNfZm9ya3x8dGhpcy4jaS5zaXplPjB9I2goKXtmb3IobGV0IG4gb2YgdGhpcy4jcClmb3IobGV0IHIgb2Ygbi4jaS5rZXlzKCkpe2Zvcih2YXIgZT0hMSx0PXI7dC5wYXJlbnQhPT1udWxsOyl7aWYodGhpcy4jdS5oYXModCkpe2U9ITA7YnJlYWt9dD10LnBhcmVudH1pZighZSlyZXR1cm4hMH1yZXR1cm4hMX1za2lwX2VmZmVjdChlKXt0aGlzLiN1LmhhcyhlKXx8dGhpcy4jdS5zZXQoZSx7ZDpbXSxtOltdfSksdGhpcy4jZC5kZWxldGUoZSl9dW5za2lwX2VmZmVjdChlLHQ9ZT0+dGhpcy5zY2hlZHVsZShlKSl7dmFyIG49dGhpcy4jdS5nZXQoZSk7aWYobil7dGhpcy4jdS5kZWxldGUoZSk7Zm9yKHZhciByIG9mIG4uZClEKHIsY2UpLHQocik7Zm9yKHIgb2Ygbi5tKUQocixsZSksdChyKX10aGlzLiNkLmFkZChlKX0jZygpe2lmKFV0Kys+MWUzJiYoSXQuZGVsZXRlKHRoaXMpLHF0KCkpLCF0aGlzLiNtKCkpe2ZvcihsZXQgZSBvZiB0aGlzLiNjKXRoaXMuI2wuZGVsZXRlKGUpLEQoZSxjZSksdGhpcy5zY2hlZHVsZShlKTtmb3IobGV0IGUgb2YgdGhpcy4jbClEKGUsbGUpLHRoaXMuc2NoZWR1bGUoZSl9bGV0IHQ9dGhpcy4jbzt0aGlzLiNvPVtdLHRoaXMuYXBwbHkoKTt2YXIgbj1WdD1bXSxyPVtdLGk9SHQ9W107Zm9yKGxldCBlIG9mIHQpdHJ5e3RoaXMuI18oZSxuLHIpfWNhdGNoKHQpe3Rocm93IGVuKGUpLHR9aWYoaj1udWxsLGkubGVuZ3RoPjApe3ZhciBhPWUuZW5zdXJlKCk7Zm9yKGxldCBlIG9mIGkpYS5zY2hlZHVsZShlKX1pZihWdD1udWxsLEh0PW51bGwsdGhpcy4jbSgpfHx0aGlzLiNoKCkpe3RoaXMuI3YociksdGhpcy4jdihuKTtmb3IobGV0W2UsdF1vZiB0aGlzLiN1KSR0KGUsdCl9ZWxzZXt0aGlzLiNyLnNpemU9PT0wJiZJdC5kZWxldGUodGhpcyksdGhpcy4jYy5jbGVhcigpLHRoaXMuI2wuY2xlYXIoKTtmb3IobGV0IGUgb2YgdGhpcy4jZSllKHRoaXMpO3RoaXMuI2UuY2xlYXIoKSxMdD10aGlzLFl0KHIpLFl0KG4pLEx0PW51bGwsdGhpcy4jYT8ucmVzb2x2ZSgpfXZhciBvPWo7aWYodGhpcy4jby5sZW5ndGg+MCl7bGV0IGU9bz8/PXRoaXM7ZS4jby5wdXNoKC4uLnRoaXMuI28uZmlsdGVyKHQ9PiFlLiNvLmluY2x1ZGVzKHQpKSl9byE9PW51bGwmJihJdC5hZGQobyksby4jZygpKSxydCYmIUl0Lmhhcyh0aGlzKSYmdGhpcy4jeSgpfSNfKGUsdCxuKXtlLmZePXNlO2Zvcih2YXIgcj1lLmZpcnN0O3IhPT1udWxsOyl7dmFyIGk9ci5mLGE9KGkmOTYpIT0wO2lmKCEoYSYmaSYxMDI0fHxpJjgxOTJ8fHRoaXMuI3UuaGFzKHIpKSYmci5mbiE9PW51bGwpe2E/ci5mXj1zZTppJjQ/dC5wdXNoKHIpOnJ0JiZpJjE2Nzc3MjI0P24ucHVzaChyKTpXcihyKSYmKGkmMTYmJnRoaXMuI2wuYWRkKHIpLFlyKHIpKTt2YXIgbz1yLmZpcnN0O2lmKG8hPT1udWxsKXtyPW87Y29udGludWV9fWZvcig7ciE9PW51bGw7KXt2YXIgcz1yLm5leHQ7aWYocyE9PW51bGwpe3I9czticmVha31yPXIucGFyZW50fX19I3YoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kz0xKUN0KGVbdF0sdGhpcy4jYyx0aGlzLiNsKX1jYXB0dXJlKGUsdCxuPSExKXtlLnYhPT1TJiYhdGhpcy5wcmV2aW91cy5oYXMoZSkmJnRoaXMucHJldmlvdXMuc2V0KGUsZS52KSxlLmYmODM4ODYwOHx8KHRoaXMuY3VycmVudC5zZXQoZSxbdCxuXSksTT8uc2V0KGUsdCkpLHRoaXMuaXNfZm9ya3x8KGUudj10KX1hY3RpdmF0ZSgpe2o9dGhpc31kZWFjdGl2YXRlKCl7aj1udWxsLE09bnVsbH1mbHVzaCgpe3RyeXtCdD0hMCxqPXRoaXMsdGhpcy4jZygpfWZpbmFsbHl7VXQ9MCxSdD1udWxsLFZ0PW51bGwsSHQ9bnVsbCxCdD0hMSxqPW51bGwsTT1udWxsLGJuLmNsZWFyKCl9fWRpc2NhcmQoKXtmb3IobGV0IGUgb2YgdGhpcy4jdCllKHRoaXMpO3RoaXMuI3QuY2xlYXIoKSx0aGlzLiNuLmNsZWFyKCksSXQuZGVsZXRlKHRoaXMpfXJlZ2lzdGVyX2NyZWF0ZWRfZWZmZWN0KGUpe3RoaXMuI3MucHVzaChlKX0jeSgpe2ZvcihsZXQgbCBvZiBJdCl7dmFyIGU9bC5pZDx0aGlzLmlkLHQ9W107Zm9yKGxldFtyLFtpLGFdXW9mIHRoaXMuY3VycmVudCl7aWYobC5jdXJyZW50LmhhcyhyKSl7dmFyIG49bC5jdXJyZW50LmdldChyKVswXTtpZihlJiZpIT09bilsLmN1cnJlbnQuc2V0KHIsW2ksYV0pO2Vsc2UgY29udGludWV9dC5wdXNoKHIpfXZhciByPVsuLi5sLmN1cnJlbnQua2V5cygpXS5maWx0ZXIoZT0+IXRoaXMuY3VycmVudC5oYXMoZSkpO2lmKHIubGVuZ3RoPT09MCllJiZsLmRpc2NhcmQoKTtlbHNlIGlmKHQubGVuZ3RoPjApe2lmKGUpZm9yKGxldCBlIG9mIHRoaXMuI2QpbC51bnNraXBfZWZmZWN0KGUsZT0+e2UuZiY0MTk0MzIwP2wuc2NoZWR1bGUoZSk6bC4jdihbZV0pfSk7bC5hY3RpdmF0ZSgpO3ZhciBpPW5ldyBTZXQsYT1uZXcgTWFwO2Zvcih2YXIgbyBvZiB0KVh0KG8scixpLGEpO2E9bmV3IE1hcDt2YXIgcz1bLi4ubC5jdXJyZW50LmtleXMoKV0uZmlsdGVyKGU9PnRoaXMuY3VycmVudC5oYXMoZSk/dGhpcy5jdXJyZW50LmdldChlKVswXSE9PWU6ITApO2ZvcihsZXQgZSBvZiB0aGlzLiNzKSEoZS5mJjE1NTY0OCkmJlp0KGUscyxhKSYmKGUuZiY0MTk0MzIwPyhEKGUsY2UpLGwuc2NoZWR1bGUoZSkpOmwuI2MuYWRkKGUpKTtpZihsLiNvLmxlbmd0aD4wKXtsLmFwcGx5KCk7Zm9yKHZhciBjIG9mIGwuI28pbC4jXyhjLFtdLFtdKTtsLiNvPVtdfWwuZGVhY3RpdmF0ZSgpfX1mb3IobGV0IGUgb2YgSXQpZS4jcC5oYXModGhpcykmJihlLiNwLmRlbGV0ZSh0aGlzKSxlLiNwLnNpemU9PT0wJiYhZS4jbSgpJiYoZS5hY3RpdmF0ZSgpLGUuI2coKSkpfWluY3JlbWVudChlLHQpe2xldCBuPXRoaXMuI3IuZ2V0KHQpPz8wO2lmKHRoaXMuI3Iuc2V0KHQsbisxKSxlKXtsZXQgZT10aGlzLiNpLmdldCh0KT8/MDt0aGlzLiNpLnNldCh0LGUrMSl9fWRlY3JlbWVudChlLHQsbil7bGV0IHI9dGhpcy4jci5nZXQodCk/PzA7aWYocj09PTE/dGhpcy4jci5kZWxldGUodCk6dGhpcy4jci5zZXQodCxyLTEpLGUpe2xldCBlPXRoaXMuI2kuZ2V0KHQpPz8wO2U9PT0xP3RoaXMuI2kuZGVsZXRlKHQpOnRoaXMuI2kuc2V0KHQsZS0xKX10aGlzLiNmfHxufHwodGhpcy4jZj0hMCxndCgoKT0+e3RoaXMuI2Y9ITEsdGhpcy5mbHVzaCgpfSkpfXRyYW5zZmVyX2VmZmVjdHMoZSx0KXtmb3IobGV0IHQgb2YgZSl0aGlzLiNjLmFkZCh0KTtmb3IobGV0IGUgb2YgdCl0aGlzLiNsLmFkZChlKTtlLmNsZWFyKCksdC5jbGVhcigpfW9uY29tbWl0KGUpe3RoaXMuI2UuYWRkKGUpfW9uZGlzY2FyZChlKXt0aGlzLiN0LmFkZChlKX1vbl9mb3JrX2NvbW1pdChlKXt0aGlzLiNuLmFkZChlKX1ydW5fZm9ya19jb21taXRfY2FsbGJhY2tzKCl7Zm9yKGxldCBlIG9mIHRoaXMuI24pZSh0aGlzKTt0aGlzLiNuLmNsZWFyKCl9c2V0dGxlZCgpe3JldHVybih0aGlzLiNhPz89YWUoKSkucHJvbWlzZX1zdGF0aWMgZW5zdXJlKCl7aWYoaj09PW51bGwpe2xldCB0PWo9bmV3IGU7QnR8fChJdC5hZGQoaiksenR8fGd0KCgpPT57aj09PXQmJnQuZmx1c2goKX0pKX1yZXR1cm4gan1hcHBseSgpe2lmKCFydHx8IXRoaXMuaXNfZm9yayYmSXQuc2l6ZT09PTEpe009bnVsbDtyZXR1cm59TT1uZXcgTWFwO2ZvcihsZXRbZSxbdF1db2YgdGhpcy5jdXJyZW50KU0uc2V0KGUsdCk7Zm9yKGxldCBuIG9mIEl0KWlmKCEobj09PXRoaXN8fG4uaXNfZm9yaykpe3ZhciBlPSExLHQ9ITE7aWYobi5pZDx0aGlzLmlkKWZvcihsZXRbcixbLGldXW9mIG4uY3VycmVudClpfHwoZXx8PXRoaXMuY3VycmVudC5oYXMociksdHx8PSF0aGlzLmN1cnJlbnQuaGFzKHIpKTtpZihlJiZ0KXRoaXMuI3AuYWRkKG4pO2Vsc2UgZm9yKGxldFtlLHRdb2Ygbi5wcmV2aW91cylNLmhhcyhlKXx8TS5zZXQoZSx0KX19c2NoZWR1bGUoZSl7aWYoUnQ9ZSxlLmI/LmlzX3BlbmRpbmcmJmUuZiYxNjc3NzIyOCYmIShlLmYmMzI3NjgpKXtlLmIuZGVmZXJfZWZmZWN0KGUpO3JldHVybn1mb3IodmFyIHQ9ZTt0LnBhcmVudCE9PW51bGw7KXt0PXQucGFyZW50O3ZhciBuPXQuZjtpZihWdCE9PW51bGwmJnQ9PT1JJiYocnR8fChGPT09bnVsbHx8IShGLmYmMikpJiYhRHQpKXJldHVybjtpZihuJjk2KXtpZighKG4mMTAyNCkpcmV0dXJuO3QuZl49c2V9fXRoaXMuI28ucHVzaCh0KX19O2Z1bmN0aW9uIEt0KGUpe3ZhciB0PXp0O3p0PSEwO3RyeXt2YXIgbjtmb3IoZSYmKGohPT1udWxsJiYhai5pc19mb3JrJiZqLmZsdXNoKCksbj1lKCkpOzspe2lmKF90KCksaj09PW51bGwpcmV0dXJuIG47ai5mbHVzaCgpfX1maW5hbGx5e3p0PXR9fWZ1bmN0aW9uIHF0KCl7dHJ5e05lKCl9Y2F0Y2goZSl7eXQoZSxSdCl9fXZhciBKdD1udWxsO2Z1bmN0aW9uIFl0KGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQhPT0wKXtmb3IodmFyIG49MDtuPHQ7KXt2YXIgcj1lW24rK107aWYoIShyLmYmMjQ1NzYpJiZXcihyKSYmKEp0PW5ldyBTZXQsWXIociksci5kZXBzPT09bnVsbCYmci5maXJzdD09PW51bGwmJnIubm9kZXM9PT1udWxsJiZyLnRlYXJkb3duPT09bnVsbCYmci5hYz09PW51bGwmJnhyKHIpLEp0Py5zaXplPjApKXtibi5jbGVhcigpO2ZvcihsZXQgZSBvZiBKdCl7aWYoZS5mJjI0NTc2KWNvbnRpbnVlO2xldCB0PVtlXSxuPWUucGFyZW50O2Zvcig7biE9PW51bGw7KUp0LmhhcyhuKSYmKEp0LmRlbGV0ZShuKSx0LnB1c2gobikpLG49bi5wYXJlbnQ7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBuPXRbZV07bi5mJjI0NTc2fHxZcihuKX19SnQuY2xlYXIoKX19SnQ9bnVsbH19ZnVuY3Rpb24gWHQoZSx0LG4scil7aWYoIW4uaGFzKGUpJiYobi5hZGQoZSksZS5yZWFjdGlvbnMhPT1udWxsKSlmb3IobGV0IGkgb2YgZS5yZWFjdGlvbnMpe2xldCBlPWkuZjtlJjI/WHQoaSx0LG4scik6ZSY0MTk0MzIwJiYhKGUmMjA0OCkmJlp0KGksdCxyKSYmKEQoaSxjZSksUXQoaSkpfX1mdW5jdGlvbiBadChlLHQsbil7bGV0IHI9bi5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtpZihlLmRlcHMhPT1udWxsKWZvcihsZXQgciBvZiBlLmRlcHMpe2lmKG0uY2FsbCh0LHIpKXJldHVybiEwO2lmKHIuZiYyJiZadChyLHQsbikpcmV0dXJuIG4uc2V0KHIsITApLCEwfXJldHVybiBuLnNldChlLCExKSwhMX1mdW5jdGlvbiBRdChlKXtqLnNjaGVkdWxlKGUpfWZ1bmN0aW9uICR0KGUsdCl7aWYoIShlLmYmMzImJmUuZiYxMDI0KSl7ZS5mJjIwNDg/dC5kLnB1c2goZSk6ZS5mJjQwOTYmJnQubS5wdXNoKGUpLEQoZSxzZSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KSR0KG4sdCksbj1uLm5leHR9fWZ1bmN0aW9uIGVuKGUpe0QoZSxzZSk7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KWVuKHQpLHQ9dC5uZXh0fWZ1bmN0aW9uIHRuKGUpe2xldCB0PTAsbj1TbigwKSxyO3JldHVybigpPT57aXIoKSYmKFIobiksZnIoKCk9Pih0PT09MCYmKHI9JHIoKCk9PmUoKCk9PmtuKG4pKSkpLHQrPTEsKCk9PntndCgoKT0+ey0tdCx0PT09MCYmKHI/LigpLHI9dm9pZCAwLGtuKG4pKX0pfSkpKX19dmFyIG5uPW1lfGhlO2Z1bmN0aW9uIHJuKGUsdCxuLHIpe25ldyBhbihlLHQsbixyKX12YXIgYW49Y2xhc3N7cGFyZW50O2lzX3BlbmRpbmc9ITE7dHJhbnNmb3JtX2Vycm9yOyNlOyN0PUM/dzpudWxsOyNuOyNyOyNpOyNhPW51bGw7I289bnVsbDsjcz1udWxsOyNjPW51bGw7I2w9MDsjdT0wOyNkPSExOyNmPW5ldyBTZXQ7I3A9bmV3IFNldDsjbT1udWxsOyNoPXRuKCgpPT4odGhpcy4jbT1Tbih0aGlzLiNsKSwoKT0+e3RoaXMuI209bnVsbH0pKTtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLiNlPWUsdGhpcy4jbj10LHRoaXMuI3I9ZT0+e3ZhciB0PUk7dC5iPXRoaXMsdC5mfD0xMjgsbihlKX0sdGhpcy5wYXJlbnQ9SS5iLHRoaXMudHJhbnNmb3JtX2Vycm9yPXI/P3RoaXMucGFyZW50Py50cmFuc2Zvcm1fZXJyb3I/PyhlPT5lKSx0aGlzLiNpPW1yKCgpPT57aWYoQyl7bGV0IGU9dGhpcy4jdDtZZSgpO2xldCB0PWUuZGF0YT09PWBbIWA7aWYoZS5kYXRhLnN0YXJ0c1dpdGgoYFs/YCkpe2xldCB0PUpTT04ucGFyc2UoZS5kYXRhLnNsaWNlKDIpKTt0aGlzLiNfKHQpfWVsc2UgdD90aGlzLiN2KCk6dGhpcy4jZygpfWVsc2UgdGhpcy4jeSgpfSxubiksQyYmKHRoaXMuI2U9dyl9I2coKXt0cnl7dGhpcy4jYT1ncigoKT0+dGhpcy4jcih0aGlzLiNlKSl9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I18oZSl7bGV0IHQ9dGhpcy4jbi5mYWlsZWQ7dCYmKHRoaXMuI3M9Z3IoKCk9Pnt0KHRoaXMuI2UsKCk9PmUsKCk9PigpPT57fSl9KSl9I3YoKXtsZXQgZT10aGlzLiNuLnBlbmRpbmc7ZSYmKHRoaXMuaXNfcGVuZGluZz0hMCx0aGlzLiNvPWdyKCgpPT5lKHRoaXMuI2UpKSxndCgoKT0+e3ZhciBlPXRoaXMuI2M9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9em4oKTtlLmFwcGVuZCh0KSx0aGlzLiNhPXRoaXMuI3goKCk9PmdyKCgpPT50aGlzLiNyKHQpKSksdGhpcy4jdT09PTAmJih0aGlzLiNlLmJlZm9yZShlKSx0aGlzLiNjPW51bGwsU3IodGhpcy4jbywoKT0+e3RoaXMuI289bnVsbH0pLHRoaXMuI2IoaikpfSkpfSN5KCl7dHJ5e2lmKHRoaXMuaXNfcGVuZGluZz10aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSx0aGlzLiN1PTAsdGhpcy4jbD0wLHRoaXMuI2E9Z3IoKCk9Pnt0aGlzLiNyKHRoaXMuI2UpfSksdGhpcy4jdT4wKXt2YXIgZT10aGlzLiNjPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtFcih0aGlzLiNhLGUpO2xldCB0PXRoaXMuI24ucGVuZGluZzt0aGlzLiNvPWdyKCgpPT50KHRoaXMuI2UpKX1lbHNlIHRoaXMuI2Ioail9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I2IoZSl7dGhpcy5pc19wZW5kaW5nPSExLGUudHJhbnNmZXJfZWZmZWN0cyh0aGlzLiNmLHRoaXMuI3ApfWRlZmVyX2VmZmVjdChlKXtDdChlLHRoaXMuI2YsdGhpcy4jcCl9aXNfcmVuZGVyZWQoKXtyZXR1cm4hdGhpcy5pc19wZW5kaW5nJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5pc19yZW5kZXJlZCgpKX1oYXNfcGVuZGluZ19zbmlwcGV0KCl7cmV0dXJuISF0aGlzLiNuLnBlbmRpbmd9I3goZSl7dmFyIHQ9SSxuPUYscj1FO05yKHRoaXMuI2kpLE1yKHRoaXMuI2kpLG90KHRoaXMuI2kuY3R4KTt0cnl7cmV0dXJuIEd0LmVuc3VyZSgpLGUoKX1jYXRjaChlKXtyZXR1cm4gdnQoZSksbnVsbH1maW5hbGx5e05yKHQpLE1yKG4pLG90KHIpfX0jUyhlLHQpe2lmKCF0aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSl7dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LiNTKGUsdCk7cmV0dXJufXRoaXMuI3UrPWUsdGhpcy4jdT09PTAmJih0aGlzLiNiKHQpLHRoaXMuI28mJlNyKHRoaXMuI28sKCk9Pnt0aGlzLiNvPW51bGx9KSx0aGlzLiNjJiY9KHRoaXMuI2UuYmVmb3JlKHRoaXMuI2MpLG51bGwpKX11cGRhdGVfcGVuZGluZ19jb3VudChlLHQpe3RoaXMuI1MoZSx0KSx0aGlzLiNsKz1lLCEoIXRoaXMuI218fHRoaXMuI2QpJiYodGhpcy4jZD0hMCxndCgoKT0+e3RoaXMuI2Q9ITEsdGhpcy4jbSYmRW4odGhpcy4jbSx0aGlzLiNsKX0pKX1nZXRfZWZmZWN0X3BlbmRpbmcoKXtyZXR1cm4gdGhpcy4jaCgpLFIodGhpcy4jbSl9ZXJyb3IoZSl7aWYoIXRoaXMuI24ub25lcnJvciYmIXRoaXMuI24uZmFpbGVkKXRocm93IGU7aj8uaXNfZm9yaz8odGhpcy4jYSYmai5za2lwX2VmZmVjdCh0aGlzLiNhKSx0aGlzLiNvJiZqLnNraXBfZWZmZWN0KHRoaXMuI28pLHRoaXMuI3MmJmouc2tpcF9lZmZlY3QodGhpcy4jcyksai5vbl9mb3JrX2NvbW1pdCgoKT0+e3RoaXMuI0MoZSl9KSk6dGhpcy4jQyhlKX0jQyhlKXt0aGlzLiNhJiY9KFAodGhpcy4jYSksbnVsbCksdGhpcy4jbyYmPShQKHRoaXMuI28pLG51bGwpLHRoaXMuI3MmJj0oUCh0aGlzLiNzKSxudWxsKSxDJiYoVCh0aGlzLiN0KSxaZSgpLFQoUWUoKSkpO3ZhciB0PXRoaXMuI24ub25lcnJvcjtsZXQgbj10aGlzLiNuLmZhaWxlZDt2YXIgcj0hMSxpPSExO2xldCBhPSgpPT57aWYocil7cWUoKTtyZXR1cm59cj0hMCxpJiZ6ZSgpLHRoaXMuI3MhPT1udWxsJiZTcih0aGlzLiNzLCgpPT57dGhpcy4jcz1udWxsfSksdGhpcy4jeCgoKT0+e3RoaXMuI3koKX0pfSxvPWU9Pnt0cnl7aT0hMCx0Py4oZSxhKSxpPSExfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpfW4mJih0aGlzLiNzPXRoaXMuI3goKCk9Pnt0cnl7cmV0dXJuIGdyKCgpPT57dmFyIHQ9STt0LmI9dGhpcyx0LmZ8PTEyOCxuKHRoaXMuI2UsKCk9PmUsKCk9PmEpfSl9Y2F0Y2goZSl7cmV0dXJuIHl0KGUsdGhpcy4jaS5wYXJlbnQpLG51bGx9fSkpfTtndCgoKT0+e3ZhciB0O3RyeXt0PXRoaXMudHJhbnNmb3JtX2Vycm9yKGUpfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpO3JldHVybn10eXBlb2YgdD09YG9iamVjdGAmJnQmJnR5cGVvZiB0LnRoZW49PWBmdW5jdGlvbmA/dC50aGVuKG8sZT0+eXQoZSx0aGlzLiNpJiZ0aGlzLiNpLnBhcmVudCkpOm8odCl9KX19O2Z1bmN0aW9uIG9uKGUsdCxuLHIpe2xldCBpPWR0KCk/dW46cG47dmFyIGE9ZS5maWx0ZXIoZT0+IWUuc2V0dGxlZCk7aWYobi5sZW5ndGg9PT0wJiZhLmxlbmd0aD09PTApe3IodC5tYXAoaSkpO3JldHVybn12YXIgbz1JLHM9c24oKSxjPWEubGVuZ3RoPT09MT9hWzBdLnByb21pc2U6YS5sZW5ndGg+MT9Qcm9taXNlLmFsbChhLm1hcChlPT5lLnByb21pc2UpKTpudWxsO2Z1bmN0aW9uIGwoZSl7cygpO3RyeXtyKGUpfWNhdGNoKGUpe28uZiYxNjM4NHx8eXQoZSxvKX1jbigpfWlmKG4ubGVuZ3RoPT09MCl7Yy50aGVuKCgpPT5sKHQubWFwKGkpKSk7cmV0dXJufXZhciB1PWxuKCk7ZnVuY3Rpb24gZCgpe1Byb21pc2UuYWxsKG4ubWFwKGU9PmRuKGUpKSkudGhlbihlPT5sKFsuLi50Lm1hcChpKSwuLi5lXSkpLmNhdGNoKGU9Pnl0KGUsbykpLmZpbmFsbHkoKCk9PnUoKSl9Yz9jLnRoZW4oKCk9PntzKCksZCgpLGNuKCl9KTpkKCl9ZnVuY3Rpb24gc24oKXt2YXIgZT1JLHQ9RixuPUUscj1qO3JldHVybiBmdW5jdGlvbihpPSEwKXtOcihlKSxNcih0KSxvdChuKSxpJiYhKGUuZiYxNjM4NCkmJihyPy5hY3RpdmF0ZSgpLHI/LmFwcGx5KCkpfX1mdW5jdGlvbiBjbihlPSEwKXtOcihudWxsKSxNcihudWxsKSxvdChudWxsKSxlJiZqPy5kZWFjdGl2YXRlKCl9ZnVuY3Rpb24gbG4oKXt2YXIgZT1JLHQ9ZS5iLG49aixyPXQuaXNfcmVuZGVyZWQoKTtyZXR1cm4gdC51cGRhdGVfcGVuZGluZ19jb3VudCgxLG4pLG4uaW5jcmVtZW50KHIsZSksKGk9ITEpPT57dC51cGRhdGVfcGVuZGluZ19jb3VudCgtMSxuKSxuLmRlY3JlbWVudChyLGUsaSl9fWZ1bmN0aW9uIHVuKGUpe3ZhciB0PTJ8Y2U7cmV0dXJuIEkhPT1udWxsJiYoSS5mfD1oZSkse2N0eDpFLGRlcHM6bnVsbCxlZmZlY3RzOm51bGwsZXF1YWxzOmV0LGY6dCxmbjplLHJlYWN0aW9uczpudWxsLHJ2OjAsdjpTLHd2OjAscGFyZW50OkksYWM6bnVsbH19ZnVuY3Rpb24gZG4oZSx0LG4pe2xldCByPUk7cj09PW51bGwmJk9lKCk7dmFyIGk9dm9pZCAwLGE9U24oUyksbz0hRixzPW5ldyBNYXA7cmV0dXJuIGRyKCgpPT57dmFyIHQ9SSxuPWFlKCk7aT1uLnByb21pc2U7dHJ5e1Byb21pc2UucmVzb2x2ZShlKCkpLnRoZW4obi5yZXNvbHZlLG4ucmVqZWN0KS5maW5hbGx5KGNuKX1jYXRjaChlKXtuLnJlamVjdChlKSxjbigpfXZhciBjPWo7aWYobyl7aWYodC5mJjMyNzY4KXZhciBsPWxuKCk7aWYoci5iLmlzX3JlbmRlcmVkKCkpcy5nZXQoYyk/LnJlamVjdChUZSkscy5kZWxldGUoYyk7ZWxzZXtmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSk7cy5jbGVhcigpfXMuc2V0KGMsbil9bGV0IHU9KGUsbj12b2lkIDApPT57aWYobCYmbChuPT09VGUpLCEobj09PVRlfHx0LmYmMTYzODQpKXtpZihjLmFjdGl2YXRlKCksbilhLmZ8PXhlLEVuKGEsbik7ZWxzZXthLmYmODM4ODYwOCYmKGEuZl49eGUpLEVuKGEsZSk7Zm9yKGxldFtlLHRdb2Ygcyl7aWYocy5kZWxldGUoZSksZT09PWMpYnJlYWs7dC5yZWplY3QoVGUpfX1jLmRlYWN0aXZhdGUoKX19O24ucHJvbWlzZS50aGVuKHUsZT0+dShudWxsLGV8fGB1bmtub3duYCkpfSksYXIoKCk9Pntmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSl9KSxuZXcgUHJvbWlzZShlPT57ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiByKCl7bj09PWk/ZShhKTp0KGkpfW4udGhlbihyLHIpfXQoaSl9KX1mdW5jdGlvbiBmbihlKXtsZXQgdD11bihlKTtyZXR1cm4gcnR8fEZyKHQpLHR9ZnVuY3Rpb24gcG4oZSl7bGV0IHQ9dW4oZSk7cmV0dXJuIHQuZXF1YWxzPW50LHR9ZnVuY3Rpb24gbW4oZSl7dmFyIHQ9ZS5lZmZlY3RzO2lmKHQhPT1udWxsKXtlLmVmZmVjdHM9bnVsbDtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTEpUCh0W25dKX19ZnVuY3Rpb24gaG4oZSl7dmFyIHQsbj1JLHI9ZS5wYXJlbnQ7aWYoIWtyJiZyIT09bnVsbCYmci5mJjI0NTc2KXJldHVybiBXZSgpLGUudjtOcihyKTt0cnl7ZS5mJj1+dmUsbW4oZSksdD1LcihlKX1maW5hbGx5e05yKG4pfXJldHVybiB0fWZ1bmN0aW9uIGduKGUpe3ZhciB0PWhuKGUpO2lmKCFlLmVxdWFscyh0KSYmKGUud3Y9VXIoKSwoIWo/LmlzX2Zvcmt8fGUuZGVwcz09PW51bGwpJiYoaj09PW51bGw/ZS52PXQ6ai5jYXB0dXJlKGUsdCwhMCksZS5kZXBzPT09bnVsbCkpKXtEKGUsc2UpO3JldHVybn1rcnx8KE09PT1udWxsP3h0KGUpOihpcigpfHxqPy5pc19mb3JrKSYmTS5zZXQoZSx0KSl9ZnVuY3Rpb24gX24oZSl7aWYoZS5lZmZlY3RzIT09bnVsbClmb3IobGV0IHQgb2YgZS5lZmZlY3RzKSh0LnRlYXJkb3dufHx0LmFjKSYmKHQudGVhcmRvd24/LigpLHQuYWM/LmFib3J0KFRlKSx0LnRlYXJkb3duPXgsdC5hYz1udWxsLEpyKHQsMCksdnIodCkpfWZ1bmN0aW9uIHZuKGUpe2lmKGUuZWZmZWN0cyE9PW51bGwpZm9yKGxldCB0IG9mIGUuZWZmZWN0cyl0LnRlYXJkb3duJiZZcih0KX12YXIgeW49bmV3IFNldCxibj1uZXcgTWFwLHhuPSExO2Z1bmN0aW9uIFNuKGUsdCl7cmV0dXJue2Y6MCx2OmUscmVhY3Rpb25zOm51bGwsZXF1YWxzOmV0LHJ2OjAsd3Y6MH19ZnVuY3Rpb24gQ24oZSx0KXtsZXQgbj1TbihlLHQpO3JldHVybiBGcihuKSxufWZ1bmN0aW9uIHduKGUsdD0hMSxuPSEwKXtsZXQgcj1TbihlKTtyZXR1cm4gdHx8KHIuZXF1YWxzPW50KSxpdCYmbiYmRSE9PW51bGwmJkUubCE9PW51bGwmJihFLmwucz8/PVtdKS5wdXNoKHIpLHJ9ZnVuY3Rpb24gVG4oZSx0LG49ITEpe3JldHVybiBGIT09bnVsbCYmKCFqcnx8Ri5mJjEzMTA3MikmJmR0KCkmJkYuZiY0MzI1Mzk0JiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSYmUmUoKSxFbihlLG4/am4odCk6dCxIdCl9ZnVuY3Rpb24gRW4oZSx0LG49bnVsbCl7aWYoIWUuZXF1YWxzKHQpKXtibi5zZXQoZSxrcj90OmUudik7dmFyIHI9R3QuZW5zdXJlKCk7aWYoci5jYXB0dXJlKGUsdCksZS5mJjIpe2xldCB0PWU7ZS5mJjIwNDgmJmhuKHQpLE09PT1udWxsJiZ4dCh0KX1lLnd2PVVyKCksQW4oZSxjZSxuKSxkdCgpJiZJIT09bnVsbCYmSS5mJjEwMjQmJiEoSS5mJjk2KSYmKExyPT09bnVsbD9ScihbZV0pOkxyLnB1c2goZSkpLCFyLmlzX2ZvcmsmJnluLnNpemU+MCYmIXhuJiZEbigpfXJldHVybiB0fWZ1bmN0aW9uIERuKCl7eG49ITE7Zm9yKGxldCBlIG9mIHluKWUuZiYxMDI0JiZEKGUsbGUpLFdyKGUpJiZZcihlKTt5bi5jbGVhcigpfWZ1bmN0aW9uIE9uKGUsdD0xKXt2YXIgbj1SKGUpLHI9dD09PTE/bisrOm4tLTtyZXR1cm4gVG4oZSxuKSxyfWZ1bmN0aW9uIGtuKGUpe1RuKGUsZS52KzEpfWZ1bmN0aW9uIEFuKGUsdCxuKXt2YXIgcj1lLnJlYWN0aW9ucztpZihyIT09bnVsbClmb3IodmFyIGk9ZHQoKSxhPXIubGVuZ3RoLG89MDtvPGE7bysrKXt2YXIgcz1yW29dLGM9cy5mO2lmKCEoIWkmJnM9PT1JKSl7dmFyIGw9KGMmY2UpPT09MDtpZihsJiZEKHMsdCksYyYyKXt2YXIgdT1zO00/LmRlbGV0ZSh1KSxjJjY1NTM2fHwoYyY1MTImJihJPT09bnVsbHx8IShJLmYmMjA5NzE1MikpJiYocy5mfD12ZSksQW4odSxsZSxuKSl9ZWxzZSBpZihsKXt2YXIgZD1zO2MmMTYmJkp0IT09bnVsbCYmSnQuYWRkKGQpLG49PT1udWxsP1F0KGQpOm4ucHVzaChkKX19fX1mdW5jdGlvbiBqbihlKXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxTZSBpbiBlKXJldHVybiBlO2xldCB0PWIoZSk7aWYodCE9PXkmJnQhPT1lZSlyZXR1cm4gZTt2YXIgbj1uZXcgTWFwLHI9ZihlKSxpPUNuKDApLGE9bnVsbCxvPVZyLHM9ZT0+e2lmKFZyPT09bylyZXR1cm4gZSgpO3ZhciB0PUYsbj1WcjtNcihudWxsKSxIcihvKTt2YXIgcj1lKCk7cmV0dXJuIE1yKHQpLEhyKG4pLHJ9O3JldHVybiByJiZuLnNldChgbGVuZ3RoYCxDbihlLmxlbmd0aCxhKSksbmV3IFByb3h5KGUse2RlZmluZVByb3BlcnR5KGUsdCxyKXsoIShgdmFsdWVgaW4gcil8fHIuY29uZmlndXJhYmxlPT09ITF8fHIuZW51bWVyYWJsZT09PSExfHxyLndyaXRhYmxlPT09ITEpJiZJZSgpO3ZhciBpPW4uZ2V0KHQpO3JldHVybiBpPT09dm9pZCAwP3MoKCk9Pnt2YXIgZT1DbihyLnZhbHVlLGEpO3JldHVybiBuLnNldCh0LGUpLGV9KTpUbihpLHIudmFsdWUsITApLCEwfSxkZWxldGVQcm9wZXJ0eShlLHQpe3ZhciByPW4uZ2V0KHQpO2lmKHI9PT12b2lkIDApe2lmKHQgaW4gZSl7bGV0IGU9cygoKT0+Q24oUyxhKSk7bi5zZXQodCxlKSxrbihpKX19ZWxzZSBUbihyLFMpLGtuKGkpO3JldHVybiEwfSxnZXQodCxyLGkpe2lmKHI9PT1TZSlyZXR1cm4gZTt2YXIgbz1uLmdldChyKSxjPXIgaW4gdDtpZihvPT09dm9pZCAwJiYoIWN8fF8odCxyKT8ud3JpdGFibGUpJiYobz1zKCgpPT5DbihqbihjP3Rbcl06UyksYSkpLG4uc2V0KHIsbykpLG8hPT12b2lkIDApe3ZhciBsPVIobyk7cmV0dXJuIGw9PT1TP3ZvaWQgMDpsfXJldHVybiBSZWZsZWN0LmdldCh0LHIsaSl9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe3ZhciByPVJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYociYmYHZhbHVlYGluIHIpe3ZhciBpPW4uZ2V0KHQpO2kmJihyLnZhbHVlPVIoaSkpfWVsc2UgaWYocj09PXZvaWQgMCl7dmFyIGE9bi5nZXQodCksbz1hPy52O2lmKGEhPT12b2lkIDAmJm8hPT1TKXJldHVybntlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvLHdyaXRhYmxlOiEwfX1yZXR1cm4gcn0saGFzKGUsdCl7aWYodD09PVNlKXJldHVybiEwO3ZhciByPW4uZ2V0KHQpLGk9ciE9PXZvaWQgMCYmci52IT09U3x8UmVmbGVjdC5oYXMoZSx0KTtyZXR1cm4ociE9PXZvaWQgMHx8SSE9PW51bGwmJighaXx8XyhlLHQpPy53cml0YWJsZSkpJiYocj09PXZvaWQgMCYmKHI9cygoKT0+Q24oaT9qbihlW3RdKTpTLGEpKSxuLnNldCh0LHIpKSxSKHIpPT09Uyk/ITE6aX0sc2V0KGUsdCxvLGMpe3ZhciBsPW4uZ2V0KHQpLHU9dCBpbiBlO2lmKHImJnQ9PT1gbGVuZ3RoYClmb3IodmFyIGQ9bztkPGwudjtkKz0xKXt2YXIgZj1uLmdldChkK2BgKTtmPT09dm9pZCAwP2QgaW4gZSYmKGY9cygoKT0+Q24oUyxhKSksbi5zZXQoZCtgYCxmKSk6VG4oZixTKX1pZihsPT09dm9pZCAwKSghdXx8XyhlLHQpPy53cml0YWJsZSkmJihsPXMoKCk9PkNuKHZvaWQgMCxhKSksVG4obCxqbihvKSksbi5zZXQodCxsKSk7ZWxzZXt1PWwudiE9PVM7dmFyIHA9cygoKT0+am4obykpO1RuKGwscCl9dmFyIG09UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZihtPy5zZXQmJm0uc2V0LmNhbGwoYyxvKSwhdSl7aWYociYmdHlwZW9mIHQ9PWBzdHJpbmdgKXt2YXIgaD1uLmdldChgbGVuZ3RoYCksZz1OdW1iZXIodCk7TnVtYmVyLmlzSW50ZWdlcihnKSYmZz49aC52JiZUbihoLGcrMSl9a24oaSl9cmV0dXJuITB9LG93bktleXMoZSl7UihpKTt2YXIgdD1SZWZsZWN0Lm93bktleXMoZSkuZmlsdGVyKGU9Pnt2YXIgdD1uLmdldChlKTtyZXR1cm4gdD09PXZvaWQgMHx8dC52IT09U30pO2Zvcih2YXJbcixhXW9mIG4pYS52IT09UyYmIShyIGluIGUpJiZ0LnB1c2gocik7cmV0dXJuIHR9LHNldFByb3RvdHlwZU9mKCl7TGUoKX19KX1mdW5jdGlvbiBNbihlKXt0cnl7aWYodHlwZW9mIGU9PWBvYmplY3RgJiZlJiZTZSBpbiBlKXJldHVybiBlW1NlXX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gTm4oZSx0KXtyZXR1cm4gT2JqZWN0LmlzKE1uKGUpLE1uKHQpKX12YXIgUG4sRm4sSW4sTG47ZnVuY3Rpb24gUm4oKXtpZihQbj09PXZvaWQgMCl7UG49d2luZG93LEZuPS9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO3ZhciBlPUVsZW1lbnQucHJvdG90eXBlLHQ9Tm9kZS5wcm90b3R5cGUsbj1UZXh0LnByb3RvdHlwZTtJbj1fKHQsYGZpcnN0Q2hpbGRgKS5nZXQsTG49Xyh0LGBuZXh0U2libGluZ2ApLmdldCx0ZShlKSYmKGUuX19jbGljaz12b2lkIDAsZS5fX2NsYXNzTmFtZT12b2lkIDAsZS5fX2F0dHJpYnV0ZXM9bnVsbCxlLl9fc3R5bGU9dm9pZCAwLGUuX19lPXZvaWQgMCksdGUobikmJihuLl9fdD12b2lkIDApfX1mdW5jdGlvbiB6bihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9ZnVuY3Rpb24gTihlKXtyZXR1cm4gSW4uY2FsbChlKX1mdW5jdGlvbiBCbihlKXtyZXR1cm4gTG4uY2FsbChlKX1mdW5jdGlvbiBWbihlLHQpe2lmKCFDKXJldHVybiBOKGUpO3ZhciBuPU4odyk7aWYobj09PW51bGwpbj13LmFwcGVuZENoaWxkKHpuKCkpO2Vsc2UgaWYodCYmbi5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIG4/LmJlZm9yZShyKSxUKHIpLHJ9cmV0dXJuIHQmJkpuKG4pLFQobiksbn1mdW5jdGlvbiBIbihlLHQ9ITEpe2lmKCFDKXt2YXIgbj1OKGUpO3JldHVybiBuIGluc3RhbmNlb2YgQ29tbWVudCYmbi5kYXRhPT09YGA/Qm4obik6bn1pZih0KXtpZih3Py5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIHc/LmJlZm9yZShyKSxUKHIpLHJ9Sm4odyl9cmV0dXJuIHd9ZnVuY3Rpb24gVW4oZSx0PTEsbj0hMSl7bGV0IHI9Qz93OmU7Zm9yKHZhciBpO3QtLTspaT1yLHI9Qm4ocik7aWYoIUMpcmV0dXJuIHI7aWYobil7aWYocj8ubm9kZVR5cGUhPT0zKXt2YXIgYT16bigpO3JldHVybiByPT09bnVsbD9pPy5hZnRlcihhKTpyLmJlZm9yZShhKSxUKGEpLGF9Sm4ocil9cmV0dXJuIFQocikscn1mdW5jdGlvbiBXbihlKXtlLnRleHRDb250ZW50PWBgfWZ1bmN0aW9uIEduKCl7cmV0dXJuIXJ0fHxKdCE9PW51bGw/ITE6KEkuZiZmZSkhPT0wfWZ1bmN0aW9uIEtuKGUsdCxuKXtsZXQgcj1uP3tpczpufTp2b2lkIDA7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0Pz9gaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbGAsZSxyKX1mdW5jdGlvbiBxbihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlKX1mdW5jdGlvbiBKbihlKXtpZihlLm5vZGVWYWx1ZS5sZW5ndGg8NjU1MzYpcmV0dXJuO2xldCB0PWUubmV4dFNpYmxpbmc7Zm9yKDt0IT09bnVsbCYmdC5ub2RlVHlwZT09PTM7KXQucmVtb3ZlKCksZS5ub2RlVmFsdWUrPXQubm9kZVZhbHVlLHQ9ZS5uZXh0U2libGluZ31mdW5jdGlvbiBZbihlLHQpe2lmKHQpe2xldCB0PWRvY3VtZW50LmJvZHk7ZS5hdXRvZm9jdXM9ITAsZ3QoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dCYmZS5mb2N1cygpfSl9fWZ1bmN0aW9uIFhuKGUpe0MmJk4oZSkhPT1udWxsJiZXbihlKX12YXIgWm49ITE7ZnVuY3Rpb24gUW4oKXtabnx8KFpuPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2V0YCxlPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2lmKCFlLmRlZmF1bHRQcmV2ZW50ZWQpZm9yKGxldCB0IG9mIGUudGFyZ2V0LmVsZW1lbnRzKXQuX19vbl9yPy4oKX0pfSx7Y2FwdHVyZTohMH0pKX1mdW5jdGlvbiAkbihlKXt2YXIgdD1GLG49STtNcihudWxsKSxOcihudWxsKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e01yKHQpLE5yKG4pfX1mdW5jdGlvbiBlcihlLHQsbixyPW4pe2UuYWRkRXZlbnRMaXN0ZW5lcih0LCgpPT4kbihuKSk7bGV0IGk9ZS5fX29uX3I7aT9lLl9fb25fcj0oKT0+e2koKSxyKCEwKX06ZS5fX29uX3I9KCk9PnIoITApLFFuKCl9ZnVuY3Rpb24gdHIoZSl7ST09PW51bGwmJihGPT09bnVsbCYmTWUoZSksamUoKSksa3ImJkFlKGUpfWZ1bmN0aW9uIG5yKGUsdCl7dmFyIG49dC5sYXN0O249PT1udWxsP3QubGFzdD10LmZpcnN0PWU6KG4ubmV4dD1lLGUucHJldj1uLHQubGFzdD1lKX1mdW5jdGlvbiBycihlLHQpe3ZhciBuPUk7biE9PW51bGwmJm4uZiY4MTkyJiYoZXw9dWUpO3ZhciByPXtjdHg6RSxkZXBzOm51bGwsbm9kZXM6bnVsbCxmOmV8Y2V8NTEyLGZpcnN0Om51bGwsZm46dCxsYXN0Om51bGwsbmV4dDpudWxsLHBhcmVudDpuLGI6biYmbi5iLHByZXY6bnVsbCx0ZWFyZG93bjpudWxsLHd2OjAsYWM6bnVsbH07aj8ucmVnaXN0ZXJfY3JlYXRlZF9lZmZlY3Qocik7dmFyIGk9cjtpZihlJjQpVnQ9PT1udWxsP0d0LmVuc3VyZSgpLnNjaGVkdWxlKHIpOlZ0LnB1c2gocik7ZWxzZSBpZih0IT09bnVsbCl7dHJ5e1lyKHIpfWNhdGNoKGUpe3Rocm93IFAociksZX1pLmRlcHM9PT1udWxsJiZpLnRlYXJkb3duPT09bnVsbCYmaS5ub2Rlcz09PW51bGwmJmkuZmlyc3Q9PT1pLmxhc3QmJiEoaS5mJjUyNDI4OCkmJihpPWkuZmlyc3QsZSYxNiYmZSY2NTUzNiYmaSE9PW51bGwmJihpLmZ8PW1lKSl9aWYoaSE9PW51bGwmJihpLnBhcmVudD1uLG4hPT1udWxsJiZucihpLG4pLEYhPT1udWxsJiZGLmYmMiYmIShlJjY0KSkpe3ZhciBhPUY7KGEuZWZmZWN0cz8/PVtdKS5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGlyKCl7cmV0dXJuIEYhPT1udWxsJiYhanJ9ZnVuY3Rpb24gYXIoZSl7bGV0IHQ9cnIoOCxudWxsKTtyZXR1cm4gRCh0LHNlKSx0LnRlYXJkb3duPWUsdH1mdW5jdGlvbiBvcihlKXt0cihgJGVmZmVjdGApO3ZhciB0PUkuZjtpZighRiYmdCYzMiYmISh0JjMyNzY4KSl7dmFyIG49RTsobi5lPz89W10pLnB1c2goZSl9ZWxzZSByZXR1cm4gc3IoZSl9ZnVuY3Rpb24gc3IoZSl7cmV0dXJuIHJyKDR8Z2UsZSl9ZnVuY3Rpb24gY3IoZSl7cmV0dXJuIHRyKGAkZWZmZWN0LnByZWApLHJyKDh8Z2UsZSl9ZnVuY3Rpb24gbHIoZSl7R3QuZW5zdXJlKCk7bGV0IHQ9cnIoNjR8aGUsZSk7cmV0dXJuKGU9e30pPT5uZXcgUHJvbWlzZShuPT57ZS5vdXRybz9Tcih0LCgpPT57UCh0KSxuKHZvaWQgMCl9KTooUCh0KSxuKHZvaWQgMCkpfSl9ZnVuY3Rpb24gdXIoZSl7cmV0dXJuIHJyKDQsZSl9ZnVuY3Rpb24gZHIoZSl7cmV0dXJuIHJyKGJlfGhlLGUpfWZ1bmN0aW9uIGZyKGUsdD0wKXtyZXR1cm4gcnIoOHx0LGUpfWZ1bmN0aW9uIHByKGUsdD1bXSxuPVtdLHI9W10pe29uKHIsdCxuLHQ9Pntycig4LCgpPT5lKC4uLnQubWFwKFIpKSl9KX1mdW5jdGlvbiBtcihlLHQ9MCl7cmV0dXJuIHJyKDE2fHQsZSl9ZnVuY3Rpb24gaHIoZSx0PTApe3JldHVybiBycihvZXx0LGUpfWZ1bmN0aW9uIGdyKGUpe3JldHVybiBycigzMnxoZSxlKX1mdW5jdGlvbiBfcihlKXt2YXIgdD1lLnRlYXJkb3duO2lmKHQhPT1udWxsKXtsZXQgZT1rcixuPUY7QXIoITApLE1yKG51bGwpO3RyeXt0LmNhbGwobnVsbCl9ZmluYWxseXtBcihlKSxNcihuKX19fWZ1bmN0aW9uIHZyKGUsdD0hMSl7dmFyIG49ZS5maXJzdDtmb3IoZS5maXJzdD1lLmxhc3Q9bnVsbDtuIT09bnVsbDspe2xldCBlPW4uYWM7ZSE9PW51bGwmJiRuKCgpPT57ZS5hYm9ydChUZSl9KTt2YXIgcj1uLm5leHQ7bi5mJjY0P24ucGFyZW50PW51bGw6UChuLHQpLG49cn19ZnVuY3Rpb24geXIoZSl7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KXt2YXIgbj10Lm5leHQ7dC5mJjMyfHxQKHQpLHQ9bn19ZnVuY3Rpb24gUChlLHQ9ITApe3ZhciBuPSExOyh0fHxlLmYmMjYyMTQ0KSYmZS5ub2RlcyE9PW51bGwmJmUubm9kZXMuZW5kIT09bnVsbCYmKGJyKGUubm9kZXMuc3RhcnQsZS5ub2Rlcy5lbmQpLG49ITApLEQoZSxwZSksdnIoZSx0JiYhbiksSnIoZSwwKTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpZS5zdG9wKCk7X3IoZSksZS5mXj1wZSxlLmZ8PWRlO3ZhciBpPWUucGFyZW50O2khPT1udWxsJiZpLmZpcnN0IT09bnVsbCYmeHIoZSksZS5uZXh0PWUucHJldj1lLnRlYXJkb3duPWUuY3R4PWUuZGVwcz1lLmZuPWUubm9kZXM9ZS5hYz1lLmI9bnVsbH1mdW5jdGlvbiBicihlLHQpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lPT09dD9udWxsOkJuKGUpO2UucmVtb3ZlKCksZT1ufX1mdW5jdGlvbiB4cihlKXt2YXIgdD1lLnBhcmVudCxuPWUucHJldixyPWUubmV4dDtuIT09bnVsbCYmKG4ubmV4dD1yKSxyIT09bnVsbCYmKHIucHJldj1uKSx0IT09bnVsbCYmKHQuZmlyc3Q9PT1lJiYodC5maXJzdD1yKSx0Lmxhc3Q9PT1lJiYodC5sYXN0PW4pKX1mdW5jdGlvbiBTcihlLHQsbj0hMCl7dmFyIHI9W107Q3IoZSxyLCEwKTt2YXIgaT0oKT0+e24mJlAoZSksdCYmdCgpfSxhPXIubGVuZ3RoO2lmKGE+MCl7dmFyIG89KCk9Pi0tYXx8aSgpO2Zvcih2YXIgcyBvZiByKXMub3V0KG8pfWVsc2UgaSgpfWZ1bmN0aW9uIENyKGUsdCxuKXtpZighKGUuZiY4MTkyKSl7ZS5mXj11ZTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpKGUuaXNfZ2xvYmFsfHxuKSYmdC5wdXNoKGUpO2Zvcih2YXIgaT1lLmZpcnN0O2khPT1udWxsOyl7dmFyIGE9aS5uZXh0O2lmKCEoaS5mJjY0KSl7dmFyIG89KGkuZiY2NTUzNikhPTB8fChpLmYmMzIpIT0wJiYoZS5mJjE2KSE9MDtDcihpLHQsbz9uOiExKX1pPWF9fX1mdW5jdGlvbiB3cihlKXtUcihlLCEwKX1mdW5jdGlvbiBUcihlLHQpe2lmKGUuZiY4MTkyKXtlLmZePXVlLGUuZiYxMDI0fHwoRChlLGNlKSxHdC5lbnN1cmUoKS5zY2hlZHVsZShlKSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KXt2YXIgcj1uLm5leHQsaT0obi5mJjY1NTM2KSE9MHx8KG4uZiYzMikhPTA7VHIobixpP3Q6ITEpLG49cn12YXIgYT1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYoYSE9PW51bGwpZm9yKGxldCBlIG9mIGEpKGUuaXNfZ2xvYmFsfHx0KSYmZS5pbigpfX1mdW5jdGlvbiBFcihlLHQpe2lmKGUubm9kZXMpZm9yKHZhciBuPWUubm9kZXMuc3RhcnQscj1lLm5vZGVzLmVuZDtuIT09bnVsbDspe3ZhciBpPW49PT1yP251bGw6Qm4obik7dC5hcHBlbmQobiksbj1pfX12YXIgRHI9bnVsbCxPcj0hMSxrcj0hMTtmdW5jdGlvbiBBcihlKXtrcj1lfXZhciBGPW51bGwsanI9ITE7ZnVuY3Rpb24gTXIoZSl7Rj1lfXZhciBJPW51bGw7ZnVuY3Rpb24gTnIoZSl7ST1lfXZhciBQcj1udWxsO2Z1bmN0aW9uIEZyKGUpe0YhPT1udWxsJiYoIXJ0fHxGLmYmMikmJihQcj09PW51bGw/UHI9W2VdOlByLnB1c2goZSkpfXZhciBMPW51bGwsSXI9MCxMcj1udWxsO2Z1bmN0aW9uIFJyKGUpe0xyPWV9dmFyIHpyPTEsQnI9MCxWcj1CcjtmdW5jdGlvbiBIcihlKXtWcj1lfWZ1bmN0aW9uIFVyKCl7cmV0dXJuKyt6cn1mdW5jdGlvbiBXcihlKXt2YXIgdD1lLmY7aWYodCYyMDQ4KXJldHVybiEwO2lmKHQmMiYmKGUuZiY9fnZlKSx0JjQwOTYpe2Zvcih2YXIgbj1lLmRlcHMscj1uLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIGE9bltpXTtpZihXcihhKSYmZ24oYSksYS53dj5lLnd2KXJldHVybiEwfXQmNTEyJiZNPT09bnVsbCYmRChlLHNlKX1yZXR1cm4hMX1mdW5jdGlvbiBHcihlLHQsbj0hMCl7dmFyIHI9ZS5yZWFjdGlvbnM7aWYociE9PW51bGwmJiEoIXJ0JiZQciE9PW51bGwmJm0uY2FsbChQcixlKSkpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07YS5mJjI/R3IoYSx0LCExKTp0PT09YSYmKG4/RChhLGNlKTphLmYmMTAyNCYmRChhLGxlKSxRdChhKSl9fWZ1bmN0aW9uIEtyKGUpe3ZhciB0PUwsbj1JcixyPUxyLGk9RixhPVByLG89RSxzPWpyLGM9VnIsbD1lLmY7TD1udWxsLElyPTAsTHI9bnVsbCxGPWwmOTY/bnVsbDplLFByPW51bGwsb3QoZS5jdHgpLGpyPSExLFZyPSsrQnIsZS5hYyE9PW51bGwmJigkbigoKT0+e2UuYWMuYWJvcnQoVGUpfSksZS5hYz1udWxsKTt0cnl7ZS5mfD15ZTt2YXIgdT1lLmZuLGQ9dSgpO2UuZnw9ZmU7dmFyIGY9ZS5kZXBzLHA9aj8uaXNfZm9yaztpZihMIT09bnVsbCl7dmFyIG07aWYocHx8SnIoZSxJciksZiE9PW51bGwmJklyPjApZm9yKGYubGVuZ3RoPUlyK0wubGVuZ3RoLG09MDttPEwubGVuZ3RoO20rKylmW0lyK21dPUxbbV07ZWxzZSBlLmRlcHM9Zj1MO2lmKGlyKCkmJmUuZiY1MTIpZm9yKG09SXI7bTxmLmxlbmd0aDttKyspKGZbbV0ucmVhY3Rpb25zPz89W10pLnB1c2goZSl9ZWxzZSAhcCYmZiE9PW51bGwmJklyPGYubGVuZ3RoJiYoSnIoZSxJciksZi5sZW5ndGg9SXIpO2lmKGR0KCkmJkxyIT09bnVsbCYmIWpyJiZmIT09bnVsbCYmIShlLmYmNjE0NikpZm9yKG09MDttPExyLmxlbmd0aDttKyspR3IoTHJbbV0sZSk7aWYoaSE9PW51bGwmJmkhPT1lKXtpZihCcisrLGkuZGVwcyE9PW51bGwpZm9yKGxldCBlPTA7ZTxuO2UrPTEpaS5kZXBzW2VdLnJ2PUJyO2lmKHQhPT1udWxsKWZvcihsZXQgZSBvZiB0KWUucnY9QnI7THIhPT1udWxsJiYocj09PW51bGw/cj1McjpyLnB1c2goLi4uTHIpKX1yZXR1cm4gZS5mJjgzODg2MDgmJihlLmZePXhlKSxkfWNhdGNoKGUpe3JldHVybiB2dChlKX1maW5hbGx5e2UuZl49eWUsTD10LElyPW4sTHI9cixGPWksUHI9YSxvdChvKSxqcj1zLFZyPWN9fWZ1bmN0aW9uIHFyKGUsdCl7bGV0IG49dC5yZWFjdGlvbnM7aWYobiE9PW51bGwpe3ZhciByPXAuY2FsbChuLGUpO2lmKHIhPT0tMSl7dmFyIGk9bi5sZW5ndGgtMTtpPT09MD9uPXQucmVhY3Rpb25zPW51bGw6KG5bcl09bltpXSxuLnBvcCgpKX19aWYobj09PW51bGwmJnQuZiYyJiYoTD09PW51bGx8fCFtLmNhbGwoTCx0KSkpe3ZhciBhPXQ7YS5mJjUxMiYmKGEuZl49NTEyLGEuZiY9fnZlKSxhLnYhPT1TJiZ4dChhKSxfbihhKSxKcihhLDApfX1mdW5jdGlvbiBKcihlLHQpe3ZhciBuPWUuZGVwcztpZihuIT09bnVsbClmb3IodmFyIHI9dDtyPG4ubGVuZ3RoO3IrKylxcihlLG5bcl0pfWZ1bmN0aW9uIFlyKGUpe3ZhciB0PWUuZjtpZighKHQmMTYzODQpKXtEKGUsc2UpO3ZhciBuPUkscj1PcjtJPWUsT3I9ITA7dHJ5e3QmMTY3NzcyMzI/eXIoZSk6dnIoZSksX3IoZSk7dmFyIGk9S3IoZSk7ZS50ZWFyZG93bj10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOm51bGwsZS53dj16cn1maW5hbGx5e09yPXIsST1ufX19YXN5bmMgZnVuY3Rpb24gWHIoKXtpZihydClyZXR1cm4gbmV3IFByb21pc2UoZT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ZSgpKSxzZXRUaW1lb3V0KCgpPT5lKCkpfSk7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksS3QoKX1mdW5jdGlvbiBSKGUpe3ZhciB0PShlLmYmMikhPTA7aWYoRHI/LmFkZChlKSxGIT09bnVsbCYmIWpyJiYhKEkhPT1udWxsJiZJLmYmMTYzODQpJiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSl7dmFyIG49Ri5kZXBzO2lmKEYuZiYyMDk3MTUyKWUucnY8QnImJihlLnJ2PUJyLEw9PT1udWxsJiZuIT09bnVsbCYmbltJcl09PT1lP0lyKys6TD09PW51bGw/TD1bZV06TC5wdXNoKGUpKTtlbHNleyhGLmRlcHM/Pz1bXSkucHVzaChlKTt2YXIgcj1lLnJlYWN0aW9ucztyPT09bnVsbD9lLnJlYWN0aW9ucz1bRl06bS5jYWxsKHIsRil8fHIucHVzaChGKX19aWYoa3ImJmJuLmhhcyhlKSlyZXR1cm4gYm4uZ2V0KGUpO2lmKHQpe3ZhciBpPWU7aWYoa3Ipe3ZhciBhPWkudjtyZXR1cm4oIShpLmYmMTAyNCkmJmkucmVhY3Rpb25zIT09bnVsbHx8UXIoaSkpJiYoYT1obihpKSksYm4uc2V0KGksYSksYX12YXIgbz0oaS5mJjUxMik9PTAmJiFqciYmRiE9PW51bGwmJihPcnx8KEYuZiY1MTIpIT0wKSxzPShpLmYmZmUpPT09MDtXcihpKSYmKG8mJihpLmZ8PTUxMiksZ24oaSkpLG8mJiFzJiYodm4oaSksWnIoaSkpfWlmKE0/LmhhcyhlKSlyZXR1cm4gTS5nZXQoZSk7aWYoZS5mJjgzODg2MDgpdGhyb3cgZS52O3JldHVybiBlLnZ9ZnVuY3Rpb24gWnIoZSl7aWYoZS5mfD01MTIsZS5kZXBzIT09bnVsbClmb3IobGV0IHQgb2YgZS5kZXBzKSh0LnJlYWN0aW9ucz8/PVtdKS5wdXNoKGUpLHQuZiYyJiYhKHQuZiY1MTIpJiYodm4odCksWnIodCkpfWZ1bmN0aW9uIFFyKGUpe2lmKGUudj09PVMpcmV0dXJuITA7aWYoZS5kZXBzPT09bnVsbClyZXR1cm4hMTtmb3IobGV0IHQgb2YgZS5kZXBzKWlmKGJuLmhhcyh0KXx8dC5mJjImJlFyKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWpyO3RyeXtyZXR1cm4ganI9ITAsZSgpfWZpbmFsbHl7anI9dH19ZnVuY3Rpb24gZWkoZSl7aWYoISh0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxlIGluc3RhbmNlb2YgRXZlbnRUYXJnZXQpKXtpZihTZSBpbiBlKXRpKGUpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCB0IGluIGUpe2xldCBuPWVbdF07dHlwZW9mIG49PWBvYmplY3RgJiZuJiZTZSBpbiBuJiZ0aShuKX19fWZ1bmN0aW9uIHRpKGUsdD1uZXcgU2V0KXtpZih0eXBlb2YgZT09YG9iamVjdGAmJmUmJiEoZSBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSYmIXQuaGFzKGUpKXt0LmFkZChlKSxlIGluc3RhbmNlb2YgRGF0ZSYmZS5nZXRUaW1lKCk7Zm9yKGxldCBuIGluIGUpdHJ5e3RpKGVbbl0sdCl9Y2F0Y2h7fWxldCBuPWIoZSk7aWYobiE9PU9iamVjdC5wcm90b3R5cGUmJm4hPT1BcnJheS5wcm90b3R5cGUmJm4hPT1NYXAucHJvdG90eXBlJiZuIT09U2V0LnByb3RvdHlwZSYmbiE9PURhdGUucHJvdG90eXBlKXtsZXQgdD12KG4pO2ZvcihsZXQgbiBpbiB0KXtsZXQgcj10W25dLmdldDtpZihyKXRyeXtyLmNhbGwoZSl9Y2F0Y2h7fX19fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZS5lbmRzV2l0aChgY2FwdHVyZWApJiZlIT09YGdvdHBvaW50ZXJjYXB0dXJlYCYmZSE9PWBsb3N0cG9pbnRlcmNhcHR1cmVgfXZhciByaT1bYGJlZm9yZWlucHV0YCxgY2xpY2tgLGBjaGFuZ2VgLGBkYmxjbGlja2AsYGNvbnRleHRtZW51YCxgZm9jdXNpbmAsYGZvY3Vzb3V0YCxgaW5wdXRgLGBrZXlkb3duYCxga2V5dXBgLGBtb3VzZWRvd25gLGBtb3VzZW1vdmVgLGBtb3VzZW91dGAsYG1vdXNlb3ZlcmAsYG1vdXNldXBgLGBwb2ludGVyZG93bmAsYHBvaW50ZXJtb3ZlYCxgcG9pbnRlcm91dGAsYHBvaW50ZXJvdmVyYCxgcG9pbnRlcnVwYCxgdG91Y2hlbmRgLGB0b3VjaG1vdmVgLGB0b3VjaHN0YXJ0YF07ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIHJpLmluY2x1ZGVzKGUpfXZhciBhaT1gYWxsb3dmdWxsc2NyZWVuLmFzeW5jLmF1dG9mb2N1cy5hdXRvcGxheS5jaGVja2VkLmNvbnRyb2xzLmRlZmF1bHQuZGlzYWJsZWQuZm9ybW5vdmFsaWRhdGUuaW5kZXRlcm1pbmF0ZS5pbmVydC5pc21hcC5sb29wLm11bHRpcGxlLm11dGVkLm5vbW9kdWxlLm5vdmFsaWRhdGUub3Blbi5wbGF5c2lubGluZS5yZWFkb25seS5yZXF1aXJlZC5yZXZlcnNlZC5zZWFtbGVzcy5zZWxlY3RlZC53ZWJraXRkaXJlY3RvcnkuZGVmZXIuZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUuZGlzYWJsZXJlbW90ZXBsYXliYWNrYC5zcGxpdChgLmApLG9pPXtmb3Jtbm92YWxpZGF0ZTpgZm9ybU5vVmFsaWRhdGVgLGlzbWFwOmBpc01hcGAsbm9tb2R1bGU6YG5vTW9kdWxlYCxwbGF5c2lubGluZTpgcGxheXNJbmxpbmVgLHJlYWRvbmx5OmByZWFkT25seWAsZGVmYXVsdHZhbHVlOmBkZWZhdWx0VmFsdWVgLGRlZmF1bHRjaGVja2VkOmBkZWZhdWx0Q2hlY2tlZGAsc3Jjb2JqZWN0OmBzcmNPYmplY3RgLG5vdmFsaWRhdGU6YG5vVmFsaWRhdGVgLGFsbG93ZnVsbHNjcmVlbjpgYWxsb3dGdWxsc2NyZWVuYCxkaXNhYmxlcGljdHVyZWlucGljdHVyZTpgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVgLGRpc2FibGVyZW1vdGVwbGF5YmFjazpgZGlzYWJsZVJlbW90ZVBsYXliYWNrYH07ZnVuY3Rpb24gc2koZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLG9pW2VdPz9lfVsuLi5haV07dmFyIGNpPVtgdG91Y2hzdGFydGAsYHRvdWNobW92ZWBdO2Z1bmN0aW9uIGxpKGUpe3JldHVybiBjaS5pbmNsdWRlcyhlKX12YXIgdWk9U3ltYm9sKGBldmVudHNgKSxkaT1uZXcgU2V0LGZpPW5ldyBTZXQ7ZnVuY3Rpb24gcGkoZSl7aWYoIUMpcmV0dXJuO2UucmVtb3ZlQXR0cmlidXRlKGBvbmxvYWRgKSxlLnJlbW92ZUF0dHJpYnV0ZShgb25lcnJvcmApO2xldCB0PWUuX19lO3QhPT12b2lkIDAmJihlLl9fZT12b2lkIDAscXVldWVNaWNyb3Rhc2soKCk9PntlLmlzQ29ubmVjdGVkJiZlLmRpc3BhdGNoRXZlbnQodCl9KSl9ZnVuY3Rpb24gbWkoZSx0LG4scj17fSl7ZnVuY3Rpb24gaShlKXtpZihyLmNhcHR1cmV8fHlpLmNhbGwodCxlKSwhZS5jYW5jZWxCdWJibGUpcmV0dXJuICRuKCgpPT5uPy5jYWxsKHRoaXMsZSkpfXJldHVybiBlLnN0YXJ0c1dpdGgoYHBvaW50ZXJgKXx8ZS5zdGFydHNXaXRoKGB0b3VjaGApfHxlPT09YHdoZWVsYD9ndCgoKT0+e3QuYWRkRXZlbnRMaXN0ZW5lcihlLGkscil9KTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpLGl9ZnVuY3Rpb24gaGkoZSx0LG4scixpKXt2YXIgYT17Y2FwdHVyZTpyLHBhc3NpdmU6aX0sbz1taShlLHQsbixhKTsodD09PWRvY3VtZW50LmJvZHl8fHQ9PT13aW5kb3d8fHQ9PT1kb2N1bWVudHx8dCBpbnN0YW5jZW9mIEhUTUxNZWRpYUVsZW1lbnQpJiZhcigoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG8sYSl9KX1mdW5jdGlvbiBnaShlLHQsbil7KHRbdWldPz89e30pW2VdPW59ZnVuY3Rpb24gX2koZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZGkuYWRkKGVbdF0pO2Zvcih2YXIgbiBvZiBmaSluKGUpfXZhciB2aT1udWxsO2Z1bmN0aW9uIHlpKGUpe3ZhciB0PXRoaXMsbj10Lm93bmVyRG9jdW1lbnQscj1lLnR5cGUsaT1lLmNvbXBvc2VkUGF0aD8uKCl8fFtdLGE9aVswXXx8ZS50YXJnZXQ7dmk9ZTt2YXIgbz0wLHM9dmk9PT1lJiZlW3VpXTtpZihzKXt2YXIgYz1pLmluZGV4T2Yocyk7aWYoYyE9PS0xJiYodD09PWRvY3VtZW50fHx0PT09d2luZG93KSl7ZVt1aV09dDtyZXR1cm59dmFyIGw9aS5pbmRleE9mKHQpO2lmKGw9PT0tMSlyZXR1cm47Yzw9bCYmKG89Yyl9aWYoYT1pW29dfHxlLnRhcmdldCxhIT09dCl7ZyhlLGBjdXJyZW50VGFyZ2V0YCx7Y29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiBhfHxufX0pO3ZhciB1PUYsZD1JO01yKG51bGwpLE5yKG51bGwpO3RyeXtmb3IodmFyIGYscD1bXTthIT09bnVsbDspe3ZhciBtPWEuYXNzaWduZWRTbG90fHxhLnBhcmVudE5vZGV8fGEuaG9zdHx8bnVsbDt0cnl7dmFyIGg9YVt1aV0/LltyXTtoIT1udWxsJiYoIWEuZGlzYWJsZWR8fGUudGFyZ2V0PT09YSkmJmguY2FsbChhLGUpfWNhdGNoKGUpe2Y/cC5wdXNoKGUpOmY9ZX1pZihlLmNhbmNlbEJ1YmJsZXx8bT09PXR8fG09PT1udWxsKWJyZWFrO2E9bX1pZihmKXtmb3IobGV0IGUgb2YgcClxdWV1ZU1pY3JvdGFzaygoKT0+e3Rocm93IGV9KTt0aHJvdyBmfX1maW5hbGx5e2VbdWldPXQsZGVsZXRlIGUuY3VycmVudFRhcmdldCxNcih1KSxOcihkKX19fXZhciBiaT1nbG9iYWxUaGlzPy53aW5kb3c/LnRydXN0ZWRUeXBlcyYmZ2xvYmFsVGhpcy53aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShgc3ZlbHRlLXRydXN0ZWQtaHRtbGAse2NyZWF0ZUhUTUw6ZT0+ZX0pO2Z1bmN0aW9uIHhpKGUpe3JldHVybiBiaT8uY3JlYXRlSFRNTChlKT8/ZX1mdW5jdGlvbiBTaShlKXt2YXIgdD1LbihgdGVtcGxhdGVgKTtyZXR1cm4gdC5pbm5lckhUTUw9eGkoZS5yZXBsYWNlQWxsKGA8IT5gLGA8IS0tLS0+YCkpLHQuY29udGVudH1mdW5jdGlvbiBDaShlLHQpe3ZhciBuPUk7bi5ub2Rlcz09PW51bGwmJihuLm5vZGVzPXtzdGFydDplLGVuZDp0LGE6bnVsbCx0Om51bGx9KX1mdW5jdGlvbiB3aShlLHQpe3ZhciBuPSh0JjEpIT0wLHI9KHQmMikhPTAsaSxhPSFlLnN0YXJ0c1dpdGgoYDwhPmApO3JldHVybigpPT57aWYoQylyZXR1cm4gQ2kodyxudWxsKSx3O2k9PT12b2lkIDAmJihpPVNpKGE/ZTpgPCE+YCtlKSxufHwoaT1OKGkpKSk7dmFyIHQ9cnx8Rm4/ZG9jdW1lbnQuaW1wb3J0Tm9kZShpLCEwKTppLmNsb25lTm9kZSghMCk7aWYobil7dmFyIG89Tih0KSxzPXQubGFzdENoaWxkO0NpKG8scyl9ZWxzZSBDaSh0LHQpO3JldHVybiB0fX1mdW5jdGlvbiBUaShlLHQsbj1gc3ZnYCl7dmFyIHI9IWUuc3RhcnRzV2l0aChgPCE+YCksaT0odCYxKSE9MCxhPWA8JHtufT4ke3I/ZTpgPCE+YCtlfTwvJHtufT5gLG87cmV0dXJuKCk9PntpZihDKXJldHVybiBDaSh3LG51bGwpLHc7aWYoIW8pe3ZhciBlPU4oU2koYSkpO2lmKGkpZm9yKG89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO04oZSk7KW8uYXBwZW5kQ2hpbGQoTihlKSk7ZWxzZSBvPU4oZSl9dmFyIHQ9by5jbG9uZU5vZGUoITApO2lmKGkpe3ZhciBuPU4odCkscj10Lmxhc3RDaGlsZDtDaShuLHIpfWVsc2UgQ2kodCx0KTtyZXR1cm4gdH19ZnVuY3Rpb24gRWkoZSx0KXtyZXR1cm4gVGkoZSx0LGBzdmdgKX1mdW5jdGlvbiBEaShlPWBgKXtpZighQyl7dmFyIHQ9em4oZStgYCk7cmV0dXJuIENpKHQsdCksdH12YXIgbj13O3JldHVybiBuLm5vZGVUeXBlPT09Mz9KbihuKToobi5iZWZvcmUobj16bigpKSxUKG4pKSxDaShuLG4pLG59ZnVuY3Rpb24gT2koKXtpZihDKXJldHVybiBDaSh3LG51bGwpLHc7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChgYCksbj16bigpO3JldHVybiBlLmFwcGVuZCh0LG4pLENpKHQsbiksZX1mdW5jdGlvbiBraShlLHQpe2lmKEMpe3ZhciBuPUk7KCEobi5mJjMyNzY4KXx8bi5ub2Rlcy5lbmQ9PT1udWxsKSYmKG4ubm9kZXMuZW5kPXcpLFllKCk7cmV0dXJufWUhPT1udWxsJiZlLmJlZm9yZSh0KX12YXIgQWk9ITA7ZnVuY3Rpb24gamkoZSx0KXt2YXIgbj10PT1udWxsP2BgOnR5cGVvZiB0PT1gb2JqZWN0YD9gJHt0fWA6dDtuIT09KGUuX190Pz89ZS5ub2RlVmFsdWUpJiYoZS5fX3Q9bixlLm5vZGVWYWx1ZT1gJHtufWApfWZ1bmN0aW9uIE1pKGUsdCl7cmV0dXJuIFBpKGUsdCl9dmFyIE5pPW5ldyBNYXA7ZnVuY3Rpb24gUGkoZSx7dGFyZ2V0OnQsYW5jaG9yOm4scHJvcHM6cj17fSxldmVudHM6aSxjb250ZXh0OmEsaW50cm86bz0hMCx0cmFuc2Zvcm1FcnJvcjpzfSl7Um4oKTt2YXIgYz12b2lkIDAsbD1scigoKT0+e3ZhciBsPW4/P3QuYXBwZW5kQ2hpbGQoem4oKSk7cm4obCx7cGVuZGluZzooKT0+e319LHQ9PntsdCh7fSk7dmFyIG49RTtpZihhJiYobi5jPWEpLGkmJihyLiQkZXZlbnRzPWkpLEMmJkNpKHQsbnVsbCksQWk9byxjPWUodCxyKXx8e30sQWk9ITAsQyYmKEkubm9kZXMuZW5kPXcsdz09PW51bGx8fHcubm9kZVR5cGUhPT04fHx3LmRhdGEhPT1gXWApKXRocm93IEdlKCksQmU7dXQoKX0scyk7dmFyIHU9bmV3IFNldCxkPWU9Pntmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtpZighdS5oYXMocikpe3UuYWRkKHIpO3ZhciBpPWxpKHIpO2ZvcihsZXQgZSBvZlt0LGRvY3VtZW50XSl7dmFyIGE9TmkuZ2V0KGUpO2E9PT12b2lkIDAmJihhPW5ldyBNYXAsTmkuc2V0KGUsYSkpO3ZhciBvPWEuZ2V0KHIpO289PT12b2lkIDA/KGUuYWRkRXZlbnRMaXN0ZW5lcihyLHlpLHtwYXNzaXZlOml9KSxhLnNldChyLDEpKTphLnNldChyLG8rMSl9fX19O3JldHVybiBkKGgoZGkpKSxmaS5hZGQoZCksKCk9Pntmb3IodmFyIGUgb2YgdSlmb3IobGV0IG4gb2ZbdCxkb2N1bWVudF0pe3ZhciByPU5pLmdldChuKSxpPXIuZ2V0KGUpOy0taT09MD8obi5yZW1vdmVFdmVudExpc3RlbmVyKGUseWkpLHIuZGVsZXRlKGUpLHIuc2l6ZT09PTAmJk5pLmRlbGV0ZShuKSk6ci5zZXQoZSxpKX1maS5kZWxldGUoZCksbCE9PW4mJmwucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobCl9fSk7cmV0dXJuIEZpLnNldChjLGwpLGN9dmFyIEZpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIElpKGUsdCl7bGV0IG49RmkuZ2V0KGUpO3JldHVybiBuPyhGaS5kZWxldGUoZSksbih0KSk6UHJvbWlzZS5yZXNvbHZlKCl9dmFyIExpPWNsYXNze2FuY2hvcjsjZT1uZXcgTWFwOyN0PW5ldyBNYXA7I249bmV3IE1hcDsjcj1uZXcgU2V0OyNpPSEwO2NvbnN0cnVjdG9yKGUsdD0hMCl7dGhpcy5hbmNob3I9ZSx0aGlzLiNpPXR9I2E9ZT0+e2lmKHRoaXMuI2UuaGFzKGUpKXt2YXIgdD10aGlzLiNlLmdldChlKSxuPXRoaXMuI3QuZ2V0KHQpO2lmKG4pd3IobiksdGhpcy4jci5kZWxldGUodCk7ZWxzZXt2YXIgcj10aGlzLiNuLmdldCh0KTtyJiYodGhpcy4jdC5zZXQodCxyLmVmZmVjdCksdGhpcy4jbi5kZWxldGUodCksci5mcmFnbWVudC5sYXN0Q2hpbGQucmVtb3ZlKCksdGhpcy5hbmNob3IuYmVmb3JlKHIuZnJhZ21lbnQpLG49ci5lZmZlY3QpfWZvcihsZXRbdCxuXW9mIHRoaXMuI2Upe2lmKHRoaXMuI2UuZGVsZXRlKHQpLHQ9PT1lKWJyZWFrO2xldCByPXRoaXMuI24uZ2V0KG4pO3ImJihQKHIuZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShuKSl9Zm9yKGxldFtlLHJdb2YgdGhpcy4jdCl7aWYoZT09PXR8fHRoaXMuI3IuaGFzKGUpKWNvbnRpbnVlO2xldCBpPSgpPT57aWYoQXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKS5pbmNsdWRlcyhlKSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO0VyKHIsdCksdC5hcHBlbmQoem4oKSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OnIsZnJhZ21lbnQ6dH0pfWVsc2UgUChyKTt0aGlzLiNyLmRlbGV0ZShlKSx0aGlzLiN0LmRlbGV0ZShlKX07dGhpcy4jaXx8IW4/KHRoaXMuI3IuYWRkKGUpLFNyKHIsaSwhMSkpOmkoKX19fTsjbz1lPT57dGhpcy4jZS5kZWxldGUoZSk7bGV0IHQ9QXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKTtmb3IobGV0W2Usbl1vZiB0aGlzLiNuKXQuaW5jbHVkZXMoZSl8fChQKG4uZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShlKSl9O2Vuc3VyZShlLHQpe3ZhciBuPWoscj1HbigpO2lmKHQmJiF0aGlzLiN0LmhhcyhlKSYmIXRoaXMuI24uaGFzKGUpKWlmKHIpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxhPXpuKCk7aS5hcHBlbmQoYSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OmdyKCgpPT50KGEpKSxmcmFnbWVudDppfSl9ZWxzZSB0aGlzLiN0LnNldChlLGdyKCgpPT50KHRoaXMuYW5jaG9yKSkpO2lmKHRoaXMuI2Uuc2V0KG4sZSkscil7Zm9yKGxldFt0LHJdb2YgdGhpcy4jdCl0PT09ZT9uLnVuc2tpcF9lZmZlY3Qocik6bi5za2lwX2VmZmVjdChyKTtmb3IobGV0W3Qscl1vZiB0aGlzLiNuKXQ9PT1lP24udW5za2lwX2VmZmVjdChyLmVmZmVjdCk6bi5za2lwX2VmZmVjdChyLmVmZmVjdCk7bi5vbmNvbW1pdCh0aGlzLiNhKSxuLm9uZGlzY2FyZCh0aGlzLiNvKX1lbHNlIEMmJih0aGlzLmFuY2hvcj13KSx0aGlzLiNhKG4pfX07ZnVuY3Rpb24gUmkoZSx0LG49ITEpe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpLGE9bj9tZTowO2Z1bmN0aW9uIG8oZSx0KXtpZihDKXt2YXIgbj0kZShyKTtpZihlIT09cGFyc2VJbnQobi5zdWJzdHJpbmcoMSkpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSx0KSxKZSghMCk7cmV0dXJufX1pLmVuc3VyZShlLHQpfW1yKCgpPT57dmFyIGU9ITE7dCgodCxuPTApPT57ZT0hMCxvKG4sdCl9KSxlfHxvKC0xLG51bGwpfSxhKX12YXIgemk9U3ltYm9sKGBOYU5gKTtmdW5jdGlvbiBCaShlLHQsbil7QyYmWWUoKTt2YXIgcj1uZXcgTGkoZSksaT0hZHQoKTttcigoKT0+e3ZhciBlPXQoKTtlIT09ZSYmKGU9emkpLGkmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmKGU9e30pLHIuZW5zdXJlKGUsbil9KX1mdW5jdGlvbiBWaShlLHQpe3JldHVybiB0fWZ1bmN0aW9uIEhpKGUsdCxuKXtmb3IodmFyIHI9W10saT10Lmxlbmd0aCxhLG89dC5sZW5ndGgscz0wO3M8aTtzKyspe2xldCBuPXRbc107U3IobiwoKT0+e2lmKGEpe2lmKGEucGVuZGluZy5kZWxldGUobiksYS5kb25lLmFkZChuKSxhLnBlbmRpbmcuc2l6ZT09PTApe3ZhciB0PWUub3V0cm9ncm91cHM7VWkoZSxoKGEuZG9uZSkpLHQuZGVsZXRlKGEpLHQuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfX1lbHNlIC0tb30sITEpfWlmKG89PT0wKXt2YXIgYz1yLmxlbmd0aD09PTAmJm4hPT1udWxsO2lmKGMpe3ZhciBsPW4sdT1sLnBhcmVudE5vZGU7V24odSksdS5hcHBlbmQobCksZS5pdGVtcy5jbGVhcigpfVVpKGUsdCwhYyl9ZWxzZSBhPXtwZW5kaW5nOm5ldyBTZXQodCksZG9uZTpuZXcgU2V0fSwoZS5vdXRyb2dyb3Vwcz8/PW5ldyBTZXQpLmFkZChhKX1mdW5jdGlvbiBVaShlLHQsbj0hMCl7dmFyIHI7aWYoZS5wZW5kaW5nLnNpemU+MCl7cj1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlLnBlbmRpbmcudmFsdWVzKCkpZm9yKGxldCBuIG9mIHQpci5hZGQoZS5pdGVtcy5nZXQobikuZSl9Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07cj8uaGFzKGEpPyhhLmZ8PV9lLEVyKGEsZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSk6UCh0W2ldLG4pfX12YXIgV2k7ZnVuY3Rpb24gR2koZSx0LG4scixpLGE9bnVsbCl7dmFyIG89ZSxzPW5ldyBNYXA7aWYodCY0KXt2YXIgYz1lO289Qz9UKE4oYykpOmMuYXBwZW5kQ2hpbGQoem4oKSl9QyYmWWUoKTt2YXIgbD1udWxsLHU9cG4oKCk9Pnt2YXIgZT1uKCk7cmV0dXJuIGYoZSk/ZTplPT1udWxsP1tdOmgoZSl9KSxkLHA9bmV3IE1hcCxtPSEwO2Z1bmN0aW9uIGcoZSl7di5lZmZlY3QuZiYxNjM4NHx8KHYucGVuZGluZy5kZWxldGUoZSksdi5mYWxsYmFjaz1sLHFpKHYsZCxvLHQsciksbCE9PW51bGwmJihkLmxlbmd0aD09PTA/bC5mJjMzNTU0NDMyPyhsLmZePV9lLFlpKGwsbnVsbCxvKSk6d3IobCk6U3IobCwoKT0+e2w9bnVsbH0pKSl9ZnVuY3Rpb24gXyhlKXt2LnBlbmRpbmcuZGVsZXRlKGUpfXZhciB2PXtlZmZlY3Q6bXIoKCk9PntkPVIodSk7dmFyIGU9ZC5sZW5ndGg7bGV0IGM9ITE7QyYmJGUobyk9PT1gWyFgIT0oZT09PTApJiYobz1RZSgpLFQobyksSmUoITEpLGM9ITApO2Zvcih2YXIgZj1uZXcgU2V0LGg9aix2PUduKCkseT0wO3k8ZTt5Kz0xKXtDJiZ3Lm5vZGVUeXBlPT09OCYmdy5kYXRhPT09YF1gJiYobz13LGM9ITAsSmUoITEpKTt2YXIgZWU9ZFt5XSxiPXIoZWUseSksdGU9bT9udWxsOnMuZ2V0KGIpO3RlPyh0ZS52JiZFbih0ZS52LGVlKSx0ZS5pJiZFbih0ZS5pLHkpLHYmJmgudW5za2lwX2VmZmVjdCh0ZS5lKSk6KHRlPUppKHMsbT9vOldpPz89em4oKSxlZSxiLHksaSx0LG4pLG18fCh0ZS5lLmZ8PV9lKSxzLnNldChiLHRlKSksZi5hZGQoYil9aWYoZT09PTAmJmEmJiFsJiYobT9sPWdyKCgpPT5hKG8pKToobD1ncigoKT0+YShXaT8/PXpuKCkpKSxsLmZ8PV9lKSksZT5mLnNpemUmJmtlKGBgLGBgLGBgKSxDJiZlPjAmJlQoUWUoKSksIW0paWYocC5zZXQoaCxmKSx2KXtmb3IobGV0W2UsdF1vZiBzKWYuaGFzKGUpfHxoLnNraXBfZWZmZWN0KHQuZSk7aC5vbmNvbW1pdChnKSxoLm9uZGlzY2FyZChfKX1lbHNlIGcoaCk7YyYmSmUoITApLFIodSl9KSxmbGFnczp0LGl0ZW1zOnMscGVuZGluZzpwLG91dHJvZ3JvdXBzOm51bGwsZmFsbGJhY2s6bH07bT0hMSxDJiYobz13KX1mdW5jdGlvbiBLaShlKXtmb3IoO2UhPT1udWxsJiYhKGUuZiYzMik7KWU9ZS5uZXh0O3JldHVybiBlfWZ1bmN0aW9uIHFpKGUsdCxuLHIsaSl7dmFyIGE9KHImOCkhPTAsbz10Lmxlbmd0aCxzPWUuaXRlbXMsYz1LaShlLmVmZmVjdC5maXJzdCksbCx1PW51bGwsZCxmPVtdLHA9W10sbSxnLF8sdjtpZihhKWZvcih2PTA7djxvO3YrPTEpbT10W3ZdLGc9aShtLHYpLF89cy5nZXQoZykuZSxfLmYmMzM1NTQ0MzJ8fChfLm5vZGVzPy5hPy5tZWFzdXJlKCksKGQ/Pz1uZXcgU2V0KS5hZGQoXykpO2Zvcih2PTA7djxvO3YrPTEpe2lmKG09dFt2XSxnPWkobSx2KSxfPXMuZ2V0KGcpLmUsZS5vdXRyb2dyb3VwcyE9PW51bGwpZm9yKGxldCB0IG9mIGUub3V0cm9ncm91cHMpdC5wZW5kaW5nLmRlbGV0ZShfKSx0LmRvbmUuZGVsZXRlKF8pO2lmKF8uZiY4MTkyJiYod3IoXyksYSYmKF8ubm9kZXM/LmE/LnVuZml4KCksKGQ/Pz1uZXcgU2V0KS5kZWxldGUoXykpKSxfLmYmMzM1NTQ0MzIpaWYoXy5mXj1fZSxfPT09YylZaShfLG51bGwsbik7ZWxzZXt2YXIgeT11P3UubmV4dDpjO189PT1lLmVmZmVjdC5sYXN0JiYoZS5lZmZlY3QubGFzdD1fLnByZXYpLF8ucHJldiYmKF8ucHJldi5uZXh0PV8ubmV4dCksXy5uZXh0JiYoXy5uZXh0LnByZXY9Xy5wcmV2KSxYaShlLHUsXyksWGkoZSxfLHkpLFlpKF8seSxuKSx1PV8sZj1bXSxwPVtdLGM9S2kodS5uZXh0KTtjb250aW51ZX1pZihfIT09Yyl7aWYobCE9PXZvaWQgMCYmbC5oYXMoXykpe2lmKGYubGVuZ3RoPHAubGVuZ3RoKXt2YXIgZWU9cFswXSxiO3U9ZWUucHJldjt2YXIgdGU9ZlswXSxuZT1mW2YubGVuZ3RoLTFdO2ZvcihiPTA7YjxmLmxlbmd0aDtiKz0xKVlpKGZbYl0sZWUsbik7Zm9yKGI9MDtiPHAubGVuZ3RoO2IrPTEpbC5kZWxldGUocFtiXSk7WGkoZSx0ZS5wcmV2LG5lLm5leHQpLFhpKGUsdSx0ZSksWGkoZSxuZSxlZSksYz1lZSx1PW5lLC0tdixmPVtdLHA9W119ZWxzZSBsLmRlbGV0ZShfKSxZaShfLGMsbiksWGkoZSxfLnByZXYsXy5uZXh0KSxYaShlLF8sdT09PW51bGw/ZS5lZmZlY3QuZmlyc3Q6dS5uZXh0KSxYaShlLHUsXyksdT1fO2NvbnRpbnVlfWZvcihmPVtdLHA9W107YyE9PW51bGwmJmMhPT1fOykobD8/PW5ldyBTZXQpLmFkZChjKSxwLnB1c2goYyksYz1LaShjLm5leHQpO2lmKGM9PT1udWxsKWNvbnRpbnVlfV8uZiYzMzU1NDQzMnx8Zi5wdXNoKF8pLHU9XyxjPUtpKF8ubmV4dCl9aWYoZS5vdXRyb2dyb3VwcyE9PW51bGwpe2ZvcihsZXQgdCBvZiBlLm91dHJvZ3JvdXBzKXQucGVuZGluZy5zaXplPT09MCYmKFVpKGUsaCh0LmRvbmUpKSxlLm91dHJvZ3JvdXBzPy5kZWxldGUodCkpO2Uub3V0cm9ncm91cHMuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfWlmKGMhPT1udWxsfHxsIT09dm9pZCAwKXt2YXIgeD1bXTtpZihsIT09dm9pZCAwKWZvcihfIG9mIGwpXy5mJjgxOTJ8fHgucHVzaChfKTtmb3IoO2MhPT1udWxsOykhKGMuZiY4MTkyKSYmYyE9PWUuZmFsbGJhY2smJngucHVzaChjKSxjPUtpKGMubmV4dCk7dmFyIHJlPXgubGVuZ3RoO2lmKHJlPjApe3ZhciBpZT1yJjQmJm89PT0wP246bnVsbDtpZihhKXtmb3Iodj0wO3Y8cmU7dis9MSl4W3ZdLm5vZGVzPy5hPy5tZWFzdXJlKCk7Zm9yKHY9MDt2PHJlO3YrPTEpeFt2XS5ub2Rlcz8uYT8uZml4KCl9SGkoZSx4LGllKX19YSYmZ3QoKCk9PntpZihkIT09dm9pZCAwKWZvcihfIG9mIGQpXy5ub2Rlcz8uYT8uYXBwbHkoKX0pfWZ1bmN0aW9uIEppKGUsdCxuLHIsaSxhLG8scyl7dmFyIGM9byYxP28mMTY/U24obik6d24obiwhMSwhMSk6bnVsbCxsPW8mMj9TbihpKTpudWxsO3JldHVybnt2OmMsaTpsLGU6Z3IoKCk9PihhKHQsYz8/bixsPz9pLHMpLCgpPT57ZS5kZWxldGUocil9KSl9fWZ1bmN0aW9uIFlpKGUsdCxuKXtpZihlLm5vZGVzKWZvcih2YXIgcj1lLm5vZGVzLnN0YXJ0LGk9ZS5ub2Rlcy5lbmQsYT10JiYhKHQuZiYzMzU1NDQzMik/dC5ub2Rlcy5zdGFydDpuO3IhPT1udWxsOyl7dmFyIG89Qm4ocik7aWYoYS5iZWZvcmUocikscj09PWkpcmV0dXJuO3I9b319ZnVuY3Rpb24gWGkoZSx0LG4pe3Q9PT1udWxsP2UuZWZmZWN0LmZpcnN0PW46dC5uZXh0PW4sbj09PW51bGw/ZS5lZmZlY3QubGFzdD10Om4ucHJldj10fWZ1bmN0aW9uIFppKGUsdCxuPSExLHI9ITEsaT0hMSxhPSExKXt2YXIgbz1lLHM9YGA7aWYobil7dmFyIGM9ZTtDJiYobz1UKE4oYykpKX1wcigoKT0+e3ZhciBlPUk7aWYocz09PShzPXQoKT8/YGApKXtDJiZZZSgpO3JldHVybn1pZihuJiYhQyl7ZS5ub2Rlcz1udWxsLGMuaW5uZXJIVE1MPXMscyE9PWBgJiZDaShOKGMpLGMubGFzdENoaWxkKTtyZXR1cm59aWYoZS5ub2RlcyE9PW51bGwmJihicihlLm5vZGVzLnN0YXJ0LGUubm9kZXMuZW5kKSxlLm5vZGVzPW51bGwpLHMhPT1gYCl7aWYoQyl7Zm9yKHZhciBhPXcuZGF0YSxsPVllKCksdT1sO2whPT1udWxsJiYobC5ub2RlVHlwZSE9PTh8fGwuZGF0YSE9PWBgKTspdT1sLGw9Qm4obCk7aWYobD09PW51bGwpdGhyb3cgR2UoKSxCZTtDaSh3LHUpLG89VChsKTtyZXR1cm59dmFyIGQ9S24ocj9gc3ZnYDppP2BtYXRoYDpgdGVtcGxhdGVgLHI/SGU6aT9VZTp2b2lkIDApO2QuaW5uZXJIVE1MPXM7dmFyIGY9cnx8aT9kOmQuY29udGVudDtpZihDaShOKGYpLGYubGFzdENoaWxkKSxyfHxpKWZvcig7TihmKTspby5iZWZvcmUoTihmKSk7ZWxzZSBvLmJlZm9yZShmKX19KX1mdW5jdGlvbiBRaShlLHQsLi4ubil7dmFyIHI9bmV3IExpKGUpO21yKCgpPT57bGV0IGU9dCgpPz9udWxsO3IuZW5zdXJlKGUsZSYmKHQ9PmUodCwuLi5uKSkpfSxtZSl9ZnVuY3Rpb24gJGkoZSx0LG4pe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpO21yKCgpPT57dmFyIGU9dCgpPz9udWxsO2lmKEMmJiRlKHIpPT09YFtgIT0oZSE9PW51bGwpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSxlJiYodD0+bih0LGUpKSksSmUoITApO3JldHVybn1pLmVuc3VyZShlLGUmJih0PT5uKHQsZSkpKX0sbWUpfXZhciBlYT0oKT0+cGVyZm9ybWFuY2Uubm93KCksdGE9e3RpY2s6ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLG5vdzooKT0+ZWEoKSx0YXNrczpuZXcgU2V0fTtmdW5jdGlvbiBuYSgpe2xldCBlPXRhLm5vdygpO3RhLnRhc2tzLmZvckVhY2godD0+e3QuYyhlKXx8KHRhLnRhc2tzLmRlbGV0ZSh0KSx0LmYoKSl9KSx0YS50YXNrcy5zaXplIT09MCYmdGEudGljayhuYSl9ZnVuY3Rpb24gcmEoZSl7bGV0IHQ7cmV0dXJuIHRhLnRhc2tzLnNpemU9PT0wJiZ0YS50aWNrKG5hKSx7cHJvbWlzZTpuZXcgUHJvbWlzZShuPT57dGEudGFza3MuYWRkKHQ9e2M6ZSxmOm59KX0pLGFib3J0KCl7dGEudGFza3MuZGVsZXRlKHQpfX19ZnVuY3Rpb24gaWEoZSx0KXskbigoKT0+e2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQodCkpfSl9ZnVuY3Rpb24gYWEoZSl7aWYoZT09PWBmbG9hdGApcmV0dXJuYGNzc0Zsb2F0YDtpZihlPT09YG9mZnNldGApcmV0dXJuYGNzc09mZnNldGA7aWYoZS5zdGFydHNXaXRoKGAtLWApKXJldHVybiBlO2xldCB0PWUuc3BsaXQoYC1gKTtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF06dFswXSt0LnNsaWNlKDEpLm1hcChlPT5lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbihgYCl9ZnVuY3Rpb24gb2EoZSl7bGV0IHQ9e30sbj1lLnNwbGl0KGA7YCk7Zm9yKGxldCBlIG9mIG4pe2xldFtuLHJdPWUuc3BsaXQoYDpgKTtpZighbnx8cj09PXZvaWQgMClicmVhaztsZXQgaT1hYShuLnRyaW0oKSk7dFtpXT1yLnRyaW0oKX1yZXR1cm4gdH12YXIgc2E9ZT0+ZTtmdW5jdGlvbiBjYShlLHQsbixyKXt2YXIgaT0oZSYxKSE9MCxhPShlJjIpIT0wLG89aSYmYSxzPShlJjQpIT0wLGM9bz9gYm90aGA6aT9gaW5gOmBvdXRgLGwsdT10LmluZXJ0LGQ9dC5zdHlsZS5vdmVyZmxvdyxmLHA7ZnVuY3Rpb24gbSgpe3JldHVybiAkbigoKT0+bD8/PW4oKSh0LHI/LigpPz97fSx7ZGlyZWN0aW9uOmN9KSl9dmFyIGg9e2lzX2dsb2JhbDpzLGluKCl7aWYodC5pbmVydD11LCFpKXtwPy5hYm9ydCgpLHA/LnJlc2V0Py4oKTtyZXR1cm59YXx8Zj8uYWJvcnQoKSxmPWxhKHQsbSgpLHAsMSwoKT0+e2lhKHQsYGludHJvc3RhcnRgKX0sKCk9PntpYSh0LGBpbnRyb2VuZGApLGY/LmFib3J0KCksZj1sPXZvaWQgMCx0LnN0eWxlLm92ZXJmbG93PWR9KX0sb3V0KGUpe2lmKCFhKXtlPy4oKSxsPXZvaWQgMDtyZXR1cm59dC5pbmVydD0hMCxwPWxhKHQsbSgpLGYsMCwoKT0+e2lhKHQsYG91dHJvc3RhcnRgKX0sKCk9PntpYSh0LGBvdXRyb2VuZGApLGU/LigpfSl9LHN0b3A6KCk9PntmPy5hYm9ydCgpLHA/LmFib3J0KCl9fSxnPUk7aWYoKGcubm9kZXMudD8/PVtdKS5wdXNoKGgpLGkmJkFpKXt2YXIgXz1zO2lmKCFfKXtmb3IodmFyIHY9Zy5wYXJlbnQ7diYmdi5mJjY1NTM2Oylmb3IoOyh2PXYucGFyZW50KSYmISh2LmYmMTYpOyk7Xz0hdnx8KHYuZiYzMjc2OCkhPTB9XyYmdXIoKCk9PnskcigoKT0+aC5pbigpKX0pfX1mdW5jdGlvbiBsYShlLHQsbixyLGksYSl7dmFyIG89cj09PTE7aWYobmUodCkpe3ZhciBzLGM9ITE7cmV0dXJuIGd0KCgpPT57Y3x8KHM9bGEoZSx0KHtkaXJlY3Rpb246bz9gaW5gOmBvdXRgfSksbixyLGksYSkpfSkse2Fib3J0OigpPT57Yz0hMCxzPy5hYm9ydCgpfSxkZWFjdGl2YXRlOigpPT5zLmRlYWN0aXZhdGUoKSxyZXNldDooKT0+cy5yZXNldCgpLHQ6KCk9PnMudCgpfX1pZihuPy5kZWFjdGl2YXRlKCksIXQ/LmR1cmF0aW9uJiYhdD8uZGVsYXkpcmV0dXJuIGkoKSxhKCkse2Fib3J0OngsZGVhY3RpdmF0ZTp4LHJlc2V0OngsdDooKT0+cn07bGV0e2RlbGF5Omw9MCxjc3M6dSx0aWNrOmQsZWFzaW5nOmY9c2F9PXQ7dmFyIHA9W107aWYobyYmbj09PXZvaWQgMCYmKGQmJmQoMCwxKSx1KSl7dmFyIG09b2EodSgwLDEpKTtwLnB1c2gobSxtKX12YXIgaD0oKT0+MS1yLGc9ZS5hbmltYXRlKHAse2R1cmF0aW9uOmwsZmlsbDpgZm9yd2FyZHNgfSk7cmV0dXJuIGcub25maW5pc2g9KCk9PntnLmNhbmNlbCgpLGkoKTt2YXIgbz1uPy50KCk/PzEtcjtuPy5hYm9ydCgpO3ZhciBzPXItbyxjPXQuZHVyYXRpb24qTWF0aC5hYnMocyksbD1bXTtpZihjPjApe3ZhciBwPSExO2lmKHUpZm9yKHZhciBtPU1hdGguY2VpbChjLygxZTMvNjApKSxfPTA7Xzw9bTtfKz0xKXt2YXIgdj1vK3MqZihfL20pLHk9b2EodSh2LDEtdikpO2wucHVzaCh5KSxwfHw9eS5vdmVyZmxvdz09PWBoaWRkZW5gfXAmJihlLnN0eWxlLm92ZXJmbG93PWBoaWRkZW5gKSxoPSgpPT57dmFyIGU9Zy5jdXJyZW50VGltZTtyZXR1cm4gbytzKmYoZS9jKX0sZCYmcmEoKCk9PntpZihnLnBsYXlTdGF0ZSE9PWBydW5uaW5nYClyZXR1cm4hMTt2YXIgZT1oKCk7cmV0dXJuIGQoZSwxLWUpLCEwfSl9Zz1lLmFuaW1hdGUobCx7ZHVyYXRpb246YyxmaWxsOmBmb3J3YXJkc2B9KSxnLm9uZmluaXNoPSgpPT57aD0oKT0+cixkPy4ociwxLXIpLGEoKX19LHthYm9ydDooKT0+e2cmJihnLmNhbmNlbCgpLGcuZWZmZWN0PW51bGwsZy5vbmZpbmlzaD14KX0sZGVhY3RpdmF0ZTooKT0+e2E9eH0scmVzZXQ6KCk9PntyPT09MCYmZD8uKDEsMCl9LHQ6KCk9PmgoKX19ZnVuY3Rpb24gdWEoZSx0LG4pe3VyKCgpPT57dmFyIHI9JHIoKCk9PnQoZSxuPy4oKSl8fHt9KTtpZihuJiZyPy51cGRhdGUpe3ZhciBpPSExLGE9e307ZnIoKCk9Pnt2YXIgZT1uKCk7ZWkoZSksaSYmdHQoYSxlKSYmKGE9ZSxyLnVwZGF0ZShlKSl9KSxpPSEwfWlmKHI/LmRlc3Ryb3kpcmV0dXJuKCk9PnIuZGVzdHJveSgpfSl9ZnVuY3Rpb24gZGEoZSx0KXt2YXIgbj12b2lkIDAscjtocigoKT0+e24hPT0obj10KCkpJiYociYmPShQKHIpLG51bGwpLG4mJihyPWdyKCgpPT57dXIoKCk9Pm4oZSkpfSkpKX0pfWZ1bmN0aW9uIGZhKGUpe3ZhciB0LG4scj1gYDtpZih0eXBlb2YgZT09YHN0cmluZ2B8fHR5cGVvZiBlPT1gbnVtYmVyYClyKz1lO2Vsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBpPWUubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKyllW3RdJiYobj1mYShlW3RdKSkmJihyJiYocis9YCBgKSxyKz1uKX1lbHNlIGZvcihuIGluIGUpZVtuXSYmKHImJihyKz1gIGApLHIrPW4pO3JldHVybiByfWZ1bmN0aW9uIHBhKCl7Zm9yKHZhciBlLHQsbj0wLHI9YGAsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9ZmEoZSkpJiYociYmKHIrPWAgYCkscis9dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YD9wYShlKTplPz9gYH12YXIgaGE9Wy4uLmAgCQpcclxmXHhBMFx277u/YF07ZnVuY3Rpb24gZ2EoZSx0LG4pe3ZhciByPWU9PW51bGw/YGA6YGArZTtpZih0JiYocj1yP3IrYCBgK3Q6dCksbil7Zm9yKHZhciBpIG9mIE9iamVjdC5rZXlzKG4pKWlmKG5baV0pcj1yP3IrYCBgK2k6aTtlbHNlIGlmKHIubGVuZ3RoKWZvcih2YXIgYT1pLmxlbmd0aCxvPTA7KG89ci5pbmRleE9mKGksbykpPj0wOyl7dmFyIHM9bythOyhvPT09MHx8aGEuaW5jbHVkZXMocltvLTFdKSkmJihzPT09ci5sZW5ndGh8fGhhLmluY2x1ZGVzKHJbc10pKT9yPShvPT09MD9gYDpyLnN1YnN0cmluZygwLG8pKStyLnN1YnN0cmluZyhzKzEpOm89c319cmV0dXJuIHI9PT1gYD9udWxsOnJ9ZnVuY3Rpb24gX2EoZSx0PSExKXt2YXIgbj10P2AgIWltcG9ydGFudDtgOmA7YCxyPWBgO2Zvcih2YXIgaSBvZiBPYmplY3Qua2V5cyhlKSl7dmFyIGE9ZVtpXTthIT1udWxsJiZhIT09YGAmJihyKz1gIGAraStgOiBgK2Erbil9cmV0dXJuIHJ9ZnVuY3Rpb24gdmEoZSl7cmV0dXJuIGVbMF0hPT1gLWB8fGVbMV0hPT1gLWA/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24geWEoZSx0KXtpZih0KXt2YXIgbj1gYCxyLGk7aWYoQXJyYXkuaXNBcnJheSh0KT8ocj10WzBdLGk9dFsxXSk6cj10LGUpe2U9U3RyaW5nKGUpLnJlcGxhY2VBbGwoL1xzKlwvXCouKj9cKlwvXHMqL2csYGApLnRyaW0oKTt2YXIgYT0hMSxvPTAscz0hMSxjPVtdO3ImJmMucHVzaCguLi5PYmplY3Qua2V5cyhyKS5tYXAodmEpKSxpJiZjLnB1c2goLi4uT2JqZWN0LmtleXMoaSkubWFwKHZhKSk7dmFyIGw9MCx1PS0xO2xldCB0PWUubGVuZ3RoO2Zvcih2YXIgZD0wO2Q8dDtkKyspe3ZhciBmPWVbZF07aWYocz9mPT09YC9gJiZlW2QtMV09PT1gKmAmJihzPSExKTphP2E9PT1mJiYoYT0hMSk6Zj09PWAvYCYmZVtkKzFdPT09YCpgP3M9ITA6Zj09PWAiYHx8Zj09PWAnYD9hPWY6Zj09PWAoYD9vKys6Zj09PWApYCYmby0tLCFzJiZhPT09ITEmJm89PT0wKXtpZihmPT09YDpgJiZ1PT09LTEpdT1kO2Vsc2UgaWYoZj09PWA7YHx8ZD09PXQtMSl7aWYodSE9PS0xKXt2YXIgcD12YShlLnN1YnN0cmluZyhsLHUpLnRyaW0oKSk7aWYoIWMuaW5jbHVkZXMocCkpe2YhPT1gO2AmJmQrKzt2YXIgbT1lLnN1YnN0cmluZyhsLGQpLnRyaW0oKTtuKz1gIGArbStgO2B9fWw9ZCsxLHU9LTF9fX19cmV0dXJuIHImJihuKz1fYShyKSksaSYmKG4rPV9hKGksITApKSxuPW4udHJpbSgpLG49PT1gYD9udWxsOm59cmV0dXJuIGU9PW51bGw/bnVsbDpTdHJpbmcoZSl9ZnVuY3Rpb24gYmEoZSx0LG4scixpLGEpe3ZhciBvPWUuX19jbGFzc05hbWU7aWYoQ3x8byE9PW58fG89PT12b2lkIDApe3ZhciBzPWdhKG4scixhKTsoIUN8fHMhPT1lLmdldEF0dHJpYnV0ZShgY2xhc3NgKSkmJihzPT1udWxsP2UucmVtb3ZlQXR0cmlidXRlKGBjbGFzc2ApOnQ/ZS5jbGFzc05hbWU9czplLnNldEF0dHJpYnV0ZShgY2xhc3NgLHMpKSxlLl9fY2xhc3NOYW1lPW59ZWxzZSBpZihhJiZpIT09YSlmb3IodmFyIGMgaW4gYSl7dmFyIGw9ISFhW2NdOyhpPT1udWxsfHxsIT09ISFpW2NdKSYmZS5jbGFzc0xpc3QudG9nZ2xlKGMsbCl9cmV0dXJuIGF9ZnVuY3Rpb24geGEoZSx0PXt9LG4scil7Zm9yKHZhciBpIGluIG4pe3ZhciBhPW5baV07dFtpXSE9PWEmJihuW2ldPT1udWxsP2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk6ZS5zdHlsZS5zZXRQcm9wZXJ0eShpLGEscikpfX1mdW5jdGlvbiBTYShlLHQsbixyKXt2YXIgaT1lLl9fc3R5bGU7aWYoQ3x8aSE9PXQpe3ZhciBhPXlhKHQscik7KCFDfHxhIT09ZS5nZXRBdHRyaWJ1dGUoYHN0eWxlYCkpJiYoYT09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZShgc3R5bGVgKTplLnN0eWxlLmNzc1RleHQ9YSksZS5fX3N0eWxlPXR9ZWxzZSByJiYoQXJyYXkuaXNBcnJheShyKT8oeGEoZSxuPy5bMF0sclswXSkseGEoZSxuPy5bMV0sclsxXSxgaW1wb3J0YW50YCkpOnhhKGUsbixyKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQ2EoZSx0LG49ITEpe2lmKGUubXVsdGlwbGUpe2lmKHQ9PW51bGwpcmV0dXJuO2lmKCFmKHQpKXJldHVybiBLZSgpO2Zvcih2YXIgciBvZiBlLm9wdGlvbnMpci5zZWxlY3RlZD10LmluY2x1ZGVzKEVhKHIpKTtyZXR1cm59Zm9yKHIgb2YgZS5vcHRpb25zKWlmKE5uKEVhKHIpLHQpKXtyLnNlbGVjdGVkPSEwO3JldHVybn0oIW58fHQhPT12b2lkIDApJiYoZS5zZWxlY3RlZEluZGV4PS0xKX1mdW5jdGlvbiB3YShlKXt2YXIgdD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e0NhKGUsZS5fX3ZhbHVlKX0pO3Qub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbYHZhbHVlYF19KSxhcigoKT0+e3QuZGlzY29ubmVjdCgpfSl9ZnVuY3Rpb24gVGEoZSx0LG49dCl7dmFyIHI9bmV3IFdlYWtTZXQsaT0hMDtlcihlLGBjaGFuZ2VgLHQ9Pnt2YXIgaT10P2Bbc2VsZWN0ZWRdYDpgOmNoZWNrZWRgLGE7aWYoZS5tdWx0aXBsZSlhPVtdLm1hcC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbChpKSxFYSk7ZWxzZXt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoaSk/P2UucXVlcnlTZWxlY3Rvcihgb3B0aW9uOm5vdChbZGlzYWJsZWRdKWApO2E9byYmRWEobyl9bihhKSxlLl9fdmFsdWU9YSxqIT09bnVsbCYmci5hZGQoail9KSx1cigoKT0+e3ZhciBhPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIG89cnQ/THQ6ajtpZihyLmhhcyhvKSlyZXR1cm59aWYoQ2EoZSxhLGkpLGkmJmE9PT12b2lkIDApe3ZhciBzPWUucXVlcnlTZWxlY3RvcihgOmNoZWNrZWRgKTtzIT09bnVsbCYmKGE9RWEocyksbihhKSl9ZS5fX3ZhbHVlPWEsaT0hMX0pLHdhKGUpfWZ1bmN0aW9uIEVhKGUpe3JldHVybmBfX3ZhbHVlYGluIGU/ZS5fX3ZhbHVlOmUudmFsdWV9dmFyIERhPVN5bWJvbChgY2xhc3NgKSxPYT1TeW1ib2woYHN0eWxlYCksa2E9U3ltYm9sKGBpcyBjdXN0b20gZWxlbWVudGApLEFhPVN5bWJvbChgaXMgaHRtbGApLGphPUVlP2BsaW5rYDpgTElOS2AsTWE9RWU/YGlucHV0YDpgSU5QVVRgLE5hPUVlP2BvcHRpb25gOmBPUFRJT05gLFBhPUVlP2BzZWxlY3RgOmBTRUxFQ1RgLEZhPUVlP2Bwcm9ncmVzc2A6YFBST0dSRVNTYDtmdW5jdGlvbiBJYShlKXtpZihDKXt2YXIgdD0hMSxuPSgpPT57aWYoIXQpe2lmKHQ9ITAsZS5oYXNBdHRyaWJ1dGUoYHZhbHVlYCkpe3ZhciBuPWUudmFsdWU7emEoZSxgdmFsdWVgLG51bGwpLGUudmFsdWU9bn1pZihlLmhhc0F0dHJpYnV0ZShgY2hlY2tlZGApKXt2YXIgcj1lLmNoZWNrZWQ7emEoZSxgY2hlY2tlZGAsbnVsbCksZS5jaGVja2VkPXJ9fX07ZS5fX29uX3I9bixndChuKSxRbigpfX1mdW5jdGlvbiBMYShlLHQpe3ZhciBuPUhhKGUpO24udmFsdWU9PT0obi52YWx1ZT10Pz92b2lkIDApfHxlLnZhbHVlPT09dCYmKHQhPT0wfHxlLm5vZGVOYW1lIT09RmEpfHwoZS52YWx1ZT10Pz9gYCl9ZnVuY3Rpb24gUmEoZSx0KXt0P2UuaGFzQXR0cmlidXRlKGBzZWxlY3RlZGApfHxlLnNldEF0dHJpYnV0ZShgc2VsZWN0ZWRgLGBgKTplLnJlbW92ZUF0dHJpYnV0ZShgc2VsZWN0ZWRgKX1mdW5jdGlvbiB6YShlLHQsbixyKXt2YXIgaT1IYShlKTtDJiYoaVt0XT1lLmdldEF0dHJpYnV0ZSh0KSx0PT09YHNyY2B8fHQ9PT1gc3Jjc2V0YHx8dD09PWBocmVmYCYmZS5ub2RlTmFtZT09PWphKXx8aVt0XSE9PShpW3RdPW4pJiYodD09PWBsb2FkaW5nYCYmKGVbd2VdPW4pLG49PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6dHlwZW9mIG4hPWBzdHJpbmdgJiZXYShlKS5pbmNsdWRlcyh0KT9lW3RdPW46ZS5zZXRBdHRyaWJ1dGUodCxuKSl9ZnVuY3Rpb24gQmEoZSx0LG4scixpPSExLGE9ITEpe2lmKEMmJmkmJmUubm9kZU5hbWU9PT1NYSl7dmFyIG89ZTsoby50eXBlPT09YGNoZWNrYm94YD9gZGVmYXVsdENoZWNrZWRgOmBkZWZhdWx0VmFsdWVgKWluIG58fElhKG8pfXZhciBzPUhhKGUpLGM9c1trYV0sbD0hc1tBYV07bGV0IHU9QyYmYzt1JiZKZSghMSk7dmFyIGQ9dHx8e30sZj1lLm5vZGVOYW1lPT09TmE7Zm9yKHZhciBwIGluIHQpcCBpbiBufHwobltwXT1udWxsKTtuLmNsYXNzP24uY2xhc3M9bWEobi5jbGFzcyk6KHJ8fG5bRGFdKSYmKG4uY2xhc3M9bnVsbCksbltPYV0mJihuLnN0eWxlPz89bnVsbCk7dmFyIG09V2EoZSk7Zm9yKGxldCBpIGluIG4pe2xldCBvPW5baV07aWYoZiYmaT09PWB2YWx1ZWAmJm89PW51bGwpe2UudmFsdWU9ZS5fX3ZhbHVlPWBgLGRbaV09bztjb250aW51ZX1pZihpPT09YGNsYXNzYCl7YmEoZSxlLm5hbWVzcGFjZVVSST09PWBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sYCxvLHIsdD8uW0RhXSxuW0RhXSksZFtpXT1vLGRbRGFdPW5bRGFdO2NvbnRpbnVlfWlmKGk9PT1gc3R5bGVgKXtTYShlLG8sdD8uW09hXSxuW09hXSksZFtpXT1vLGRbT2FdPW5bT2FdO2NvbnRpbnVlfXZhciBoPWRbaV07aWYoIShvPT09aCYmIShvPT09dm9pZCAwJiZlLmhhc0F0dHJpYnV0ZShpKSkpKXtkW2ldPW87dmFyIGc9aVswXStpWzFdO2lmKGchPT1gJCRgKWlmKGc9PT1gb25gKXtsZXQgdD17fSxuPWAkJGAraSxyPWkuc2xpY2UoMik7dmFyIF89aWkocik7aWYobmkocikmJihyPXIuc2xpY2UoMCwtNyksdC5jYXB0dXJlPSEwKSwhXyYmaCl7aWYobyE9bnVsbCljb250aW51ZTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocixkW25dLHQpLGRbbl09bnVsbH1pZihfKWdpKHIsZSxvKSxfaShbcl0pO2Vsc2UgaWYobyE9bnVsbCl7ZnVuY3Rpb24gYShlKXtkW2ldLmNhbGwodGhpcyxlKX1kW25dPW1pKHIsZSxhLHQpfX1lbHNlIGlmKGk9PT1gc3R5bGVgKXphKGUsaSxvKTtlbHNlIGlmKGk9PT1gYXV0b2ZvY3VzYClZbihlLCEhbyk7ZWxzZSBpZighYyYmKGk9PT1gX192YWx1ZWB8fGk9PT1gdmFsdWVgJiZvIT1udWxsKSllLnZhbHVlPWUuX192YWx1ZT1vO2Vsc2UgaWYoaT09PWBzZWxlY3RlZGAmJmYpUmEoZSxvKTtlbHNle3ZhciB2PWk7bHx8KHY9c2kodikpO3ZhciB5PXY9PT1gZGVmYXVsdFZhbHVlYHx8dj09PWBkZWZhdWx0Q2hlY2tlZGA7aWYobz09bnVsbCYmIWMmJiF5KWlmKHNbaV09bnVsbCx2PT09YHZhbHVlYHx8dj09PWBjaGVja2VkYCl7bGV0IG49ZSxyPXQ9PT12b2lkIDA7aWYodj09PWB2YWx1ZWApe2xldCBlPW4uZGVmYXVsdFZhbHVlO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdFZhbHVlPWUsbi52YWx1ZT1uLl9fdmFsdWU9cj9lOm51bGx9ZWxzZXtsZXQgZT1uLmRlZmF1bHRDaGVja2VkO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdENoZWNrZWQ9ZSxuLmNoZWNrZWQ9cj9lOiExfX1lbHNlIGUucmVtb3ZlQXR0cmlidXRlKGkpO2Vsc2UgeXx8bS5pbmNsdWRlcyh2KSYmKGN8fHR5cGVvZiBvIT1gc3RyaW5nYCk/KGVbdl09byx2IGluIHMmJihzW3ZdPVMpKTp0eXBlb2YgbyE9YGZ1bmN0aW9uYCYmemEoZSx2LG8sYSl9fX1yZXR1cm4gdSYmSmUoITApLGR9ZnVuY3Rpb24gVmEoZSx0LG49W10scj1bXSxpPVtdLGEsbz0hMSxzPSExKXtvbihpLG4scixuPT57dmFyIHI9dm9pZCAwLGk9e30sYz1lLm5vZGVOYW1lPT09UGEsbD0hMTtpZihocigoKT0+e3ZhciB1PXQoLi4ubi5tYXAoUikpLGQ9QmEoZSxyLHUsYSxvLHMpO2wmJmMmJmB2YWx1ZWBpbiB1JiZDYShlLHUudmFsdWUpO2ZvcihsZXQgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGkpKXVbZV18fFAoaVtlXSk7Zm9yKGxldCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSkpe3ZhciBmPXVbdF07dC5kZXNjcmlwdGlvbj09PWBAYXR0YWNoYCYmKCFyfHxmIT09clt0XSkmJihpW3RdJiZQKGlbdF0pLGlbdF09Z3IoKCk9PmRhKGUsKCk9PmYpKSksZFt0XT1mfXI9ZH0pLGMpe3ZhciB1PWU7dXIoKCk9PntDYSh1LHIudmFsdWUsITApLHdhKHUpfSl9bD0hMH0pfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLl9fYXR0cmlidXRlcz8/PXtba2FdOmUubm9kZU5hbWUuaW5jbHVkZXMoYC1gKSxbQWFdOmUubmFtZXNwYWNlVVJJPT09VmV9fXZhciBVYT1uZXcgTWFwO2Z1bmN0aW9uIFdhKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKGBpc2ApfHxlLm5vZGVOYW1lLG49VWEuZ2V0KHQpO2lmKG4pcmV0dXJuIG47VWEuc2V0KHQsbj1bXSk7Zm9yKHZhciByLGk9ZSxhPUVsZW1lbnQucHJvdG90eXBlO2EhPT1pOyl7Zm9yKHZhciBvIGluIHI9dihpKSxyKXJbb10uc2V0JiZuLnB1c2gobyk7aT1iKGkpfXJldHVybiBufXZhciBHYT1udWxsO2Z1bmN0aW9uIEthKCl7aWYoR2E9PT1udWxsKXt2YXIgZT1Lbihgc2VsZWN0YCk7ZS5pbm5lckhUTUw9eGkoYDxvcHRpb24+PHNwYW4+dDwvc3Bhbj48L29wdGlvbj5gKSxHYT1lLmZpcnN0Q2hpbGQ/LmZpcnN0Q2hpbGQ/Lm5vZGVUeXBlPT09MX1yZXR1cm4gR2F9ZnVuY3Rpb24gcWEoZSx0KXt2YXIgbj1DO0thKCl8fChKZSghMSksZS50ZXh0Q29udGVudD1gYCxlLmFwcGVuZChxbihgYCkpKTt0cnl7dCgpfWZpbmFsbHl7biYmKEM/WGUoZSk6KEplKCEwKSxUKGUpKSl9fWZ1bmN0aW9uIEphKGUsdCxuPXQpe3ZhciByPW5ldyBXZWFrU2V0O2VyKGUsYGlucHV0YCxhc3luYyBpPT57dmFyIGE9aT9lLmRlZmF1bHRWYWx1ZTplLnZhbHVlO2lmKGE9WGEoZSk/WmEoYSk6YSxuKGEpLGohPT1udWxsJiZyLmFkZChqKSxhd2FpdCBYcigpLGEhPT0oYT10KCkpKXt2YXIgbz1lLnNlbGVjdGlvblN0YXJ0LHM9ZS5zZWxlY3Rpb25FbmQsYz1lLnZhbHVlLmxlbmd0aDtpZihlLnZhbHVlPWE/P2BgLHMhPT1udWxsKXt2YXIgbD1lLnZhbHVlLmxlbmd0aDtvPT09cyYmcz09PWMmJmw+Yz8oZS5zZWxlY3Rpb25TdGFydD1sLGUuc2VsZWN0aW9uRW5kPWwpOihlLnNlbGVjdGlvblN0YXJ0PW8sZS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4ocyxsKSl9fX0pLChDJiZlLmRlZmF1bHRWYWx1ZSE9PWUudmFsdWV8fCRyKHQpPT1udWxsJiZlLnZhbHVlKSYmKG4oWGEoZSk/WmEoZS52YWx1ZSk6ZS52YWx1ZSksaiE9PW51bGwmJnIuYWRkKGopKSxmcigoKT0+e3ZhciBuPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIGk9cnQ/THQ6ajtpZihyLmhhcyhpKSlyZXR1cm59WGEoZSkmJm49PT1aYShlLnZhbHVlKXx8ZS50eXBlPT09YGRhdGVgJiYhbiYmIWUudmFsdWV8fG4hPT1lLnZhbHVlJiYoZS52YWx1ZT1uPz9gYCl9KX1mdW5jdGlvbiBZYShlLHQsbj10KXtlcihlLGBjaGFuZ2VgLHQ9PntuKHQ/ZS5kZWZhdWx0Q2hlY2tlZDplLmNoZWNrZWQpfSksKEMmJmUuZGVmYXVsdENoZWNrZWQhPT1lLmNoZWNrZWR8fCRyKHQpPT1udWxsKSYmbihlLmNoZWNrZWQpLGZyKCgpPT57ZS5jaGVja2VkPSEhdCgpfSl9ZnVuY3Rpb24gWGEoZSl7dmFyIHQ9ZS50eXBlO3JldHVybiB0PT09YG51bWJlcmB8fHQ9PT1gcmFuZ2VgfWZ1bmN0aW9uIFphKGUpe3JldHVybiBlPT09YGA/bnVsbDorZX1mdW5jdGlvbiBRYShlLHQpe3JldHVybiBlPT09dHx8ZT8uW1NlXT09PXR9ZnVuY3Rpb24gJGEoZT17fSx0LG4scil7dmFyIGk9RS5yLGE9STtyZXR1cm4gdXIoKCk9Pnt2YXIgbyxzO3JldHVybiBmcigoKT0+e289cyxzPXI/LigpfHxbXSwkcigoKT0+e2UhPT1uKC4uLnMpJiYodChlLC4uLnMpLG8mJlFhKG4oLi4ubyksZSkmJnQobnVsbCwuLi5vKSl9KX0pLCgpPT57bGV0IHI9YTtmb3IoO3IhPT1pJiZyLnBhcmVudCE9PW51bGwmJnIucGFyZW50LmYmMzM1NTQ0MzI7KXI9ci5wYXJlbnQ7bGV0IG89KCk9PntzJiZRYShuKC4uLnMpLGUpJiZ0KG51bGwsLi4ucyl9LGM9ci50ZWFyZG93bjtyLnRlYXJkb3duPSgpPT57bygpLGM/LigpfX19KSxlfWZ1bmN0aW9uIGVvKGU9ITEpe2xldCB0PUUsbj10LmwudTtpZighbilyZXR1cm47bGV0IHI9KCk9PmVpKHQucyk7aWYoZSl7bGV0IGU9MCxuPXt9LGk9dW4oKCk9PntsZXQgcj0hMSxpPXQucztmb3IobGV0IGUgaW4gaSlpW2VdIT09bltlXSYmKG5bZV09aVtlXSxyPSEwKTtyZXR1cm4gciYmZSsrLGV9KTtyPSgpPT5SKGkpfW4uYi5sZW5ndGgmJmNyKCgpPT57dG8odCxyKSxpZShuLmIpfSksb3IoKCk9PntsZXQgZT0kcigoKT0+bi5tLm1hcChyZSkpO3JldHVybigpPT57Zm9yKGxldCB0IG9mIGUpdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJnQoKX19KSxuLmEubGVuZ3RoJiZvcigoKT0+e3RvKHQsciksaWUobi5hKX0pfWZ1bmN0aW9uIHRvKGUsdCl7aWYoZS5sLnMpZm9yKGxldCB0IG9mIGUubC5zKVIodCk7dCgpfXZhciBubz17Z2V0KGUsdCl7aWYoIWUuZXhjbHVkZS5pbmNsdWRlcyh0KSlyZXR1cm4gZS5wcm9wc1t0XX0sc2V0KGUsdCl7cmV0dXJuITF9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe2lmKCFlLmV4Y2x1ZGUuaW5jbHVkZXModCkmJnQgaW4gZS5wcm9wcylyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ZS5wcm9wc1t0XX19LGhhcyhlLHQpe3JldHVybiBlLmV4Y2x1ZGUuaW5jbHVkZXModCk/ITE6dCBpbiBlLnByb3BzfSxvd25LZXlzKGUpe3JldHVybiBSZWZsZWN0Lm93bktleXMoZS5wcm9wcykuZmlsdGVyKHQ9PiFlLmV4Y2x1ZGUuaW5jbHVkZXModCkpfX07ZnVuY3Rpb24gcm8oZSx0LG4pe3JldHVybiBuZXcgUHJveHkoe3Byb3BzOmUsZXhjbHVkZTp0fSxubyl9dmFyIGlvPXtnZXQoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpcmV0dXJuIHJbdF19fSxzZXQoZSx0LG4pe2xldCByPWUucHJvcHMubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IGk9ZS5wcm9wc1tyXTtuZShpKSYmKGk9aSgpKTtsZXQgYT1fKGksdCk7aWYoYSYmYS5zZXQpcmV0dXJuIGEuc2V0KG4pLCEwfXJldHVybiExfSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpe2xldCBlPV8ocix0KTtyZXR1cm4gZSYmIWUuY29uZmlndXJhYmxlJiYoZS5jb25maWd1cmFibGU9ITApLGV9fX0saGFzKGUsdCl7aWYodD09PVNlfHx0PT09Q2UpcmV0dXJuITE7Zm9yKGxldCBuIG9mIGUucHJvcHMpaWYobmUobikmJihuPW4oKSksbiE9bnVsbCYmdCBpbiBuKXJldHVybiEwO3JldHVybiExfSxvd25LZXlzKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlLnByb3BzKWlmKG5lKG4pJiYobj1uKCkpLG4pe2ZvcihsZXQgZSBpbiBuKXQuaW5jbHVkZXMoZSl8fHQucHVzaChlKTtmb3IobGV0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKSl0LmluY2x1ZGVzKGUpfHx0LnB1c2goZSl9cmV0dXJuIHR9fTtmdW5jdGlvbiBhbyguLi5lKXtyZXR1cm4gbmV3IFByb3h5KHtwcm9wczplfSxpbyl9ZnVuY3Rpb24gb28oZSx0LG4scil7dmFyIGk9IWl0fHwobiYyKSE9MCxhPShuJjgpIT0wLG89KG4mMTYpIT0wLHM9cixjPSEwLGw9KCk9PihjJiYoYz0hMSxzPW8/JHIocik6cikscyk7bGV0IHU7aWYoYSl7dmFyIGQ9U2UgaW4gZXx8Q2UgaW4gZTt1PV8oZSx0KT8uc2V0Pz8oZCYmdCBpbiBlP249PmVbdF09bjp2b2lkIDApfXZhciBmLHA9ITE7YT9bZixwXT1GdCgoKT0+ZVt0XSk6Zj1lW3RdLGY9PT12b2lkIDAmJnIhPT12b2lkIDAmJihmPWwoKSx1JiYoaSYmUGUodCksdShmKSkpO3ZhciBtPWk/KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuPT09dm9pZCAwP2woKTooYz0hMCxuKX06KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuIT09dm9pZCAwJiYocz12b2lkIDApLG49PT12b2lkIDA/czpufTtpZihpJiYhKG4mNCkpcmV0dXJuIG07aWYodSl7dmFyIGg9ZS4kJGxlZ2FjeTtyZXR1cm4oZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wPygoIWl8fCF0fHxofHxwKSYmdSh0P20oKTplKSxlKTptKCl9KX12YXIgZz0hMSx2PShuJjE/dW46cG4pKCgpPT4oZz0hMSxtKCkpKTthJiZSKHYpO3ZhciB5PUk7cmV0dXJuKGZ1bmN0aW9uKGUsdCl7aWYoYXJndW1lbnRzLmxlbmd0aD4wKXtsZXQgbj10P1Iodik6aSYmYT9qbihlKTplO3JldHVybiBUbih2LG4pLGc9ITAscyE9PXZvaWQgMCYmKHM9biksZX1yZXR1cm4ga3ImJmd8fHkuZiYxNjM4ND92LnY6Uih2KX0pfWZ1bmN0aW9uIHNvKGUpe0U9PT1udWxsJiZEZShgb25Nb3VudGApLGl0JiZFLmwhPT1udWxsP2xvKEUpLm0ucHVzaChlKTpvcigoKT0+e2xldCB0PSRyKGUpO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gKXJldHVybiB0fSl9ZnVuY3Rpb24gY28oZSl7RT09PW51bGwmJkRlKGBvbkRlc3Ryb3lgKSxzbygoKT0+KCk9PiRyKGUpKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmw7cmV0dXJuIHQudT8/PXthOltdLGI6W10sbTpbXX19dmFyIHo9KCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7b246KHQsbik9PntsZXQgcj1lLmdldCh0KTtyP3IucHVzaChuKTplLnNldCh0LFtuXSl9LG9mZjoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJmUuc2V0KHQsci5maWx0ZXIoZT0+ZSE9PW4pKX0sZW1pdDoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJnIuZm9yRWFjaChlPT5lKG4pKX19KX0pKCksdW89YGRhdGEtc21hcnRzdXBwLWlkYCxmbz0oKT0+d2luZG93LnRvcD8/d2luZG93LnBhcmVudCxCPSgpPT53aW5kb3cucGFyZW50LHBvPSgpPT5CKCkuZG9jdW1lbnQsbW89ZT0+ZSYmZS5vd25lckRvY3VtZW50fHxkb2N1bWVudCxobz0oe3ZpZDplfSk9PntsZXQgdD1CKCkuc21hcnRzdXBwfHx7fTt0LnZpZD1lLEIoKS5zbWFydHN1cHA9dH0sZ289YGRlYnVnYCxfbz1lPT57dHJ5e2xldCB0PUIoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShnbyk7aWYoIXQpcmV0dXJuITE7aWYodD09PWV8fHQ9PT1gKmApcmV0dXJuITA7bGV0IG49ZS5tYXRjaCgvXlx3KzovZyk7cmV0dXJuIG4/dD09PWAke25bMF19KmA6ITF9Y2F0Y2h7cmV0dXJuITF9fSx2bz0oKGUsdCk9PihuLC4uLnIpPT57X28oZSkmJmNvbnNvbGUuZGVidWcoYCVjJHtlfWAsYGNvbG9yOiAke3R9O2AsbiwuLi5yKX0pKGBzbWFydHN1cHA6d2lkZ2V0YCxgIzEyMzNkZmApLFY9KCgpPT57bGV0IGU9bnVsbCx0PVtdO3JldHVybiBPYmplY3QuZnJlZXplKHtpbml0Om49PntlPW4sdm8oYHdpZGdldCBvcHRpb25zYCxuKSx0LmZvckVhY2goZT0+ZShuKSl9LGdldE9wdGlvbnM6KCk9PntpZighZSl0aHJvdyBFcnJvcihgV2lkZ2V0IG9wdGlvbnMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LGF3YWl0T3B0aW9uczphc3luYygpPT5lfHxuZXcgUHJvbWlzZShlPT57dC5wdXNoKGUpfSksdXBkYXRlT3B0aW9uczp0PT57ZT17Li4uZSwuLi50fX19KX0pKCkseW89ZT0+e2xldCB0PWUuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYGJvZHlgKVswXS5nZXRBdHRyaWJ1dGUodW8pO2lmKCF0KXRocm93IEVycm9yKGBNaXNzaW5nIGNoYXQgSUQgYXR0cmlidXRlIG9uIGJvZHkgZWxlbWVudC5gKTtpZighZS5wYXJlbnQuJHNtYXJ0c3VwcCl0aHJvdyBFcnJvcihgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFNlZW1zIGxpa2UgbG9hZGVyLmpzIGRpZCBub3QgaW5pdGlhbGl6ZSB3aWRnZXQuYCk7aWYoIWUucGFyZW50LiRzbWFydHN1cHAuZ2V0V2lkZ2V0KXRocm93IEVycm9yKGBHZXQgd2lkZ2V0IGZ1bmN0aW9uIHdhcyBub3Qgc3VwcGxpZWQgYnkgbG9hZGVyLmpzLmApO3JldHVybiBlLnBhcmVudC4kc21hcnRzdXBwLmdldFdpZGdldCh0KX07ZnVuY3Rpb24gYm8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX12YXIgeG89e3JlYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT1gImAmJihlPWUuc2xpY2UoMSwtMSkpLGUucmVwbGFjZSgvKCVbXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX07ZnVuY3Rpb24gU28oZSx0KXtmdW5jdGlvbiBuKG4scixpKXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWApKXtpPWJvKHt9LHQsaSksdHlwZW9mIGkuZXhwaXJlcz09YG51bWJlcmAmJihpLmV4cGlyZXM9bmV3IERhdGUoRGF0ZS5ub3coKStpLmV4cGlyZXMqODY0ZTUpKSxpLmV4cGlyZXMmJj1pLmV4cGlyZXMudG9VVENTdHJpbmcoKSxuPWVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1gYDtmb3IodmFyIG8gaW4gaSlpW29dJiYoYSs9YDsgYCtvLGlbb10hPT0hMCYmKGErPWA9YCtpW29dLnNwbGl0KGA7YClbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPW4rYD1gK2Uud3JpdGUocixuKSthfX1mdW5jdGlvbiByKHQpe2lmKCEodHlwZW9mIGRvY3VtZW50PmB1YHx8YXJndW1lbnRzLmxlbmd0aCYmIXQpKXtmb3IodmFyIG49ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChgOyBgKTpbXSxyPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXS5zcGxpdChgPWApLG89YS5zbGljZSgxKS5qb2luKGA9YCk7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChhWzBdKTtpZihyW3NdPWUucmVhZChvLHMpLHQ9PT1zKWJyZWFrfWNhdGNoe319cmV0dXJuIHQ/clt0XTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0Om4sZ2V0OnIscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7bihlLGBgLGJvKHt9LHQse2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBTbyh0aGlzLmNvbnZlcnRlcixibyh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBTbyhibyh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX12YXIgQ289U28oeG8se3BhdGg6YC9gfSksd289YHNzdXBwYCxUbz0oZT0xODIpPT4oe2V4cGlyZXM6ZSxkb21haW46Vi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluLHBhdGg6Vi5nZXRPcHRpb25zKCkuY29va2llUGF0aHx8YC9gLHNhbWVTaXRlOmBzdHJpY3RgLHNlY3VyZTpCKCkubG9jYXRpb24ucHJvdG9jb2w9PT1gaHR0cHM6YH0pLEVvPWU9PmAke1YuZ2V0T3B0aW9ucygpLmNvb2tpZVByZWZpeHx8YGB9JHt3b30uJHtlfWAsRG89KHtuYW1lOmUsdmFsdWU6dCxleHBpcmF0aW9uSW5EYXlzOm49MTgyLG9wdGlvbnM6cn0pPT57Q28uc2V0KEVvKGUpLHQsey4uLlRvKG4pLC4uLnJ9KX0sT289ZT0+Q28uZ2V0KEVvKGUpKSxrbz1lPT57bGV0IHQ9RW8oZSk7aWYoQ28uZ2V0KHQpKXtsZXR7cGF0aDplLGRvbWFpbjpufT1UbygpO0NvLnJlbW92ZSh0LHtwYXRoOmUsZG9tYWluOm59KX19LEFvPWU9Pih0LC4uLm4pPT57ZShgW1NtYXJ0c3VwcF0gJHt0fWAsLi4ubil9LEg9QW8oY29uc29sZS53YXJuKSxqbz1Bbyhjb25zb2xlLmVycm9yKSxNbz0oKT0+e2xldHtrZXk6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7QigpLlNNQVJUU1VQUF9BVVRPQ1JFQVRFPT09ITE/YCR7eW8od2luZG93KS5pZH1fJHt3b31gOndvfV8ke2V9YH0sTm89ZT0+YCR7TW8oKX0ke2U/YF8ke2V9YDpgYH1gLFBvPWU9Pnt0cnl7bGV0IHQ9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKE5vKGUpKT8/YHt9YDtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaHtyZXR1cm57fX19LEZvPShlLHQpPT57dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShObyh0KSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7SChgU2V0IHRvIGxvY2FsIHN0b3JhZ2UgZmFpbGVkYCxlKX19LElvPShlLHQpPT57Rm8oey4uLlBvKCksW2VdOlN0cmluZyh0KX0pfSxMbz1lPT57bGV0IHQ9UG8oKTt0W2VdJiYoZGVsZXRlIHRbZV0sRm8odCkpfSxSbz0oKT0+e3dpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShObygpKSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oTm8oYGNhcmRzYCkpfSxVPWZ1bmN0aW9uKGUpe3JldHVybiBlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuQXV0aEZvcm09YGF1dGhGb3JtYCxlLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZD1gaXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkYCxlLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQ9YG9wZW5lZGAsZS5NYXJrZXRpbmdDb25zZW50PWBtYXJrZXRpbmdDb25zZW50YCxlLk1lc3NhZ2U9YG1lc3NhZ2VgLGUuUG9wdXBDbG9zZWRBdD1gcG9wdXBDbG9zZWRBdGAsZS5SYXRpbmdUZXh0PWByYXRpbmdUZXh0YCxlLlNvdW5kc0VuYWJsZWQ9YGVuYWJsZVNvdW5kc2AsZS5WaXNpdG9ySWQ9YHZpZGAsZS5WaXNpdHM9YHZpc2l0c2AsZS5UaWNrZXRGb3JtPWB0aWNrZXRGb3JtYCxlLlNlc3Npb25JZD1gc2Vzc2lvbklkYCxlfSh7fSksem89ZT0+e2xldCB0PWBgO3JldHVybiBlPT09VS5WaXNpdG9ySWQmJlYuZ2V0T3B0aW9ucygpLmNvb2tpZURvbWFpbiYmKHQ9T28oZSkpLHR8fFBvKClbZV19LEJvPSh7bmFtZTplLHZhbHVlOnR9KT0+e2U9PT1VLlZpc2l0b3JJZCYmVi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluJiZEbyh7bmFtZTplLHZhbHVlOnR9KSxJbyhlLHQpfSxWbz1lPT57TG8oZSl9O3oub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxlPT57Qm8oe25hbWU6VS5BbmFseXRpY3NDb25zZW50LHZhbHVlOlN0cmluZyhlKX0pfSksei5vbihgbWFya2V0aW5nQ29uc2VudENoYW5nZWRgLGU9PntCbyh7bmFtZTpVLk1hcmtldGluZ0NvbnNlbnQsdmFsdWU6U3RyaW5nKGUpfSl9KTt2YXIgSG89KCk9PiEhVi5nZXRPcHRpb25zKCkuY29uc2VudE1vZGVFbmFibGVkLFVvPSgpPT57bGV0IGU9em8oVS5BbmFseXRpY3NDb25zZW50KT09PWB0cnVlYDtyZXR1cm4hKEhvKCkmJiFlKX0sV289KCk9PntsZXQgZT16byhVLk1hcmtldGluZ0NvbnNlbnQpPT09YHRydWVgO3JldHVybiEoSG8oKSYmIWUpfSxHbz1gbW9kdWxlcHJlbG9hZGAsS289ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFVSTChlLHQpLmhyZWZ9LHFvPXt9LEpvPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtpZih0JiZ0Lmxlbmd0aD4wKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgbGlua2ApLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdYCksYT1pPy5ub25jZXx8aT8uZ2V0QXR0cmlidXRlKGBub25jZWApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGU9PlByb21pc2UucmVzb2x2ZShlKS50aGVuKGU9Pih7c3RhdHVzOmBmdWxmaWxsZWRgLHZhbHVlOmV9KSxlPT4oe3N0YXR1czpgcmVqZWN0ZWRgLHJlYXNvbjplfSkpKSl9cj1vKHQubWFwKHQ9PntpZih0PUtvKHQsbiksdCBpbiBxbylyZXR1cm47cW9bdF09ITA7bGV0IHI9dC5lbmRzV2l0aChgLmNzc2ApLGk9cj9gW3JlbD0ic3R5bGVzaGVldCJdYDpgYDtpZihuKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgaT1lW25dO2lmKGkuaHJlZj09PXQmJighcnx8aS5yZWw9PT1gc3R5bGVzaGVldGApKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt0fSJdJHtpfWApKXJldHVybjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBsaW5rYCk7aWYoby5yZWw9cj9gc3R5bGVzaGVldGA6R28scnx8KG8uYXM9YHNjcmlwdGApLG8uY3Jvc3NPcmlnaW49YGAsby5ocmVmPXQsYSYmby5zZXRBdHRyaWJ1dGUoYG5vbmNlYCxhKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLHIpcmV0dXJuIG5ldyBQcm9taXNlKChlLG4pPT57by5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxlKSxvLmFkZEV2ZW50TGlzdGVuZXIoYGVycm9yYCwoKT0+bihFcnJvcihgVW5hYmxlIHRvIHByZWxvYWQgQ1NTIGZvciAke3R9YCkpKX0pfSkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQ9bmV3IEV2ZW50KGB2aXRlOnByZWxvYWRFcnJvcmAse2NhbmNlbGFibGU6ITB9KTtpZih0LnBheWxvYWQ9ZSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSwhdC5kZWZhdWx0UHJldmVudGVkKXRocm93IGV9cmV0dXJuIHIudGhlbih0PT57Zm9yKGxldCBlIG9mIHR8fFtdKWUuc3RhdHVzPT09YHJlamVjdGVkYCYmaShlLnJlYXNvbik7cmV0dXJuIGUoKS5jYXRjaChpKX0pfSxZbz0oKT0+ISFWLmdldE9wdGlvbnMoKS5jcm9zc0RvbWFpbkVuYWJsZWQsWG89KCk9PlYuZ2V0T3B0aW9ucygpLmFsbG93ZWREb21haW5zLmxlbmd0aD4wLFpvPWFzeW5jKCk9Pnt0cnl7bGV0IGU9YXdhaXQgbmV3KGF3YWl0KEpvKCgpPT5pbXBvcnQoYC4vdGh1bWJtYXJrLmVzbS1DUDRDVTB5TC5qc2ApLFtdLGltcG9ydC5tZXRhLnVybCkpKS5UaHVtYm1hcmsoKS5nZXQoKTtyZXR1cm4gdm8oYFZpc2l0b3IgZmluZ2VycHJpbnQgY3JlYXRlZGAsZS50aHVtYm1hcmspLGUudGh1bWJtYXJrfWNhdGNoKGUpe0goYEZhaWxlZCB0byBnZW5lcmF0ZSBmaW5nZXJwcmludDpgLGUpfX0sUW89YXN5bmMoKT0+e2lmKCEoIVlvKCl8fCFYbygpKSlyZXR1cm4gWm8oKX0sJG89KCk9PnpvKFUuVmlzaXRvcklkKXx8bnVsbCxlcz1lPT5Cbyh7bmFtZTpVLlZpc2l0b3JJZCx2YWx1ZTpTdHJpbmcoZSl9KSx0cz0oKT0+e2lmKFdvKCkpcmV0dXJuIHpvKFUuVmlzaXRzKT9OdW1iZXIoem8oVS5WaXNpdHMpKTowfSxucz1lPT57V28oKSYmQm8oe25hbWU6VS5WaXNpdHMsdmFsdWU6U3RyaW5nKGUpfSl9O3oub24oYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCxlPT57ZXx8Vm8oVS5WaXNpdHMpfSk7dmFyIHJzPShlLHQsbik9PntsZXR7c2V0OnIsc3Vic2NyaWJlOml9PU8odCx0PT57bGV0IHI9em8oZSk7ciYmdChuP24ocik6cil9KSxhPXQ9PntCbyh7bmFtZTplLHZhbHVlOlN0cmluZyh0KX0pfTtyZXR1cm57c2V0OmU9PnthKGUpLHIoZSl9LHN1YnNjcmliZTppfX0saXM9KCk9PmBvbnRvdWNoc3RhcnRgaW4gd2luZG93fHxuYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLGFzPSgpPT5bYGlQYWQgU2ltdWxhdG9yYCxgaVBob25lIFNpbXVsYXRvcmAsYGlQb2QgU2ltdWxhdG9yYCxgaVBhZGAsYGlQaG9uZWAsYGlQb2RgXS5pbmNsdWRlcyhuYXZpZ2F0b3IucGxhdGZvcm0pfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKGBNYWNgKSYmYG9udG91Y2hlbmRgaW4gZG9jdW1lbnQsb3M9TyhudWxsKSxzcz1rKFtvcyxPKHt3aWR0aDpCKCkuaW5uZXJXaWR0aCxoZWlnaHQ6QigpLmlubmVySGVpZ2h0fSldLChbZSx0XSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOm59PVYuZ2V0T3B0aW9ucygpO2lmKG4/LmVuZm9yY2VEZXNrdG9wTW9kZSlyZXR1cm4hMTtpZihlKXtsZXR7aXNNb2JpbGU6dCxpc1RhYmxldDpufT1lO2lmKG4pcmV0dXJuITE7aWYodClyZXR1cm4hMH1yZXR1cm4gdC53aWR0aDw0NTB8fHQuaGVpZ2h0PDUwMH0pLGNzPWsoW3NzXSwoW2VdKT0+e2xldHtmdWxsU2NyZWVuRW5hYmxlZDp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4hIShlfHx0KX0pLGxzPWsoW29zXSwoW2VdKT0+ZT8hIWU/LmlzRGVza3RvcCYmIWFzKCk6IWlzKCkpLHVzPWsoW2xzLGNzXSwoW2UsdF0pPT5lJiYhdCk7ayhbb3NdLChbZV0pPT4hIWU/LmlzVGFibGV0KTt2YXIgZHM9KCgpPT57bGV0IGU9Tyh7fSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lO3JldHVybntzdWJzY3JpYmU6dCxhZGQ6ZT0+e24odD0+KHsuLi50LFtlLmlkXTplfSkpfSxyZW1vdmU6ZT0+e24odD0+e2xldHtbZV06biwuLi5yfT10O3JldHVybiByfSl9LGZpbmQ6dD0+QShlKVt0XXx8bnVsbH19KSgpLGZzPWsoW2RzXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKSkscHM9ZT0+KHQsbj0zZTMpPT57bGV0IHI9YGZtLSR7ZX0tJHt0fWAsaT1kcy5maW5kKHIpLGE9MTtpJiYoY2xlYXJUaW1lb3V0KGkudGltZW91dCksYT1pLnJlY3VycmVuY2UrMSk7bGV0IG87cmV0dXJuIG4+MCYmKG89d2luZG93LnNldFRpbWVvdXQoKCk9PnttcyhyKX0sbikpLGRzLmFkZCh7aWQ6cix0eXBlOmUsdGV4dDp0LHRpbWVvdXQ6byxyZWN1cnJlbmNlOmF9KSwoKT0+bXMocil9LG1zPWU9Pntkcy5yZW1vdmUoZSl9LGhzPXBzKGBzdWNjZXNzYCksZ3M9cHMoYGVycm9yYCksX3M9cHMoYHdhcm5pbmdgKSx2cz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkdvb2Q9NV09YEdvb2RgLGVbZS5Ob3JtYWw9M109YE5vcm1hbGAsZVtlLkJhZD0xXT1gQmFkYCxlfSh7fSkseXM9e1t2cy5Hb29kXTp7dmFsdWU6dnMuR29vZCx0ZXh0OmBhZ2VudFJhdGluZy5nb29kLmZvcm1UZXh0YCxuYW1lOmBnb29kYH0sW3ZzLk5vcm1hbF06e3ZhbHVlOnZzLk5vcm1hbCx0ZXh0OmBhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHRgLG5hbWU6YG5ldXRyYWxgfSxbdnMuQmFkXTp7dmFsdWU6dnMuQmFkLHRleHQ6YGFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dGAsbmFtZTpgYmFkYH19LGJzPU9iamVjdC52YWx1ZXMoeXMpLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZSkseHM9YHJhdGVfZm9ybV9pZGAsU3M9e2lkOnhzLHR5cGU6YG1lc3NhZ2VgLHN1YlR5cGU6YHN5c3RlbWAsY2hhbm5lbDp7dHlwZTpgZGVmYXVsdGAsaWQ6bnVsbH0sY2hhdElkOmBgLHZpc2l0b3JJZDpgYCxncm91cElkOm51bGwsYWdlbnRJZDpudWxsLHRyaWdnZXI6bnVsbCxjcmVhdGVkQXQ6YGAsY29udGVudDp7dHlwZTpgcmF0ZV9mb3JtYCxkYXRhOnt9fSxhdHRhY2htZW50czpbXSxzdWJqZWN0Om51bGwsZm9yd2FyZGVkTWVzc2FnZUlkOm51bGwscGFydGljaXBhbnRzOltdLHJlcGx5VG9NZXNzYWdlSWQ6bnVsbCxkZWxldGVkQXQ6bnVsbCx3aWRnZXRPcHRpb25zOntkaXNhYmxlSW5wdXQ6ITEsZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiExLGRpc2FibGVBdHRhY2htZW50czohMX19LENzPU8obnVsbCksd3M9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjcscz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBjKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNGaW5pdGUoZSkpcmV0dXJuIHQubG9uZz91KGUpOmwoZSk7dGhyb3cgRXJyb3IoYHZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9YCtKU09OLnN0cmluZ2lmeShlKSl9O2Z1bmN0aW9uIGMoZSl7aWYoZT1TdHJpbmcoZSksIShlLmxlbmd0aD4xMDApKXt2YXIgdD0vXigtPyg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8d2Vla3M/fHd8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIGM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIGMqcztjYXNlYHdlZWtzYDpjYXNlYHdlZWtgOmNhc2Vgd2A6cmV0dXJuIGMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBjKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gYyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIGMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBjKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIGM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gbChlKXt2YXIgdD1NYXRoLmFicyhlKTtyZXR1cm4gdD49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOnQ+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDp0Pj1yP01hdGgucm91bmQoZS9yKStgbWA6dD49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiB1KGUpe3ZhciB0PU1hdGguYWJzKGUpO3JldHVybiB0Pj1hP2QoZSx0LGEsYGRheWApOnQ+PWk/ZChlLHQsaSxgaG91cmApOnQ+PXI/ZChlLHQscixgbWludXRlYCk6dD49bj9kKGUsdCxuLGBzZWNvbmRgKTplK2AgbXNgfWZ1bmN0aW9uIGQoZSx0LG4scil7dmFyIGk9dD49bioxLjU7cmV0dXJuIE1hdGgucm91bmQoZS9uKStgIGArcisoaT9gc2A6YGApfX0pKSxUcz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7bi5kZWJ1Zz1uLG4uZGVmYXVsdD1uLG4uY29lcmNlPWMsbi5kaXNhYmxlPW8sbi5lbmFibGU9aSxuLmVuYWJsZWQ9cyxuLmh1bWFuaXplPXdzKCksbi5kZXN0cm95PWwsT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57blt0XT1lW3RdfSksbi5uYW1lcz1bXSxuLnNraXBzPVtdLG4uZm9ybWF0dGVycz17fTtmdW5jdGlvbiB0KGUpe2xldCB0PTA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gbi5jb2xvcnNbTWF0aC5hYnModCklbi5jb2xvcnMubGVuZ3RoXX1uLnNlbGVjdENvbG9yPXQ7ZnVuY3Rpb24gbihlKXtsZXQgdCxpPW51bGwsYSxvO2Z1bmN0aW9uIHMoLi4uZSl7aWYoIXMuZW5hYmxlZClyZXR1cm47bGV0IHI9cyxpPU51bWJlcihuZXcgRGF0ZSk7ci5kaWZmPWktKHR8fGkpLHIucHJldj10LHIuY3Vycj1pLHQ9aSxlWzBdPW4uY29lcmNlKGVbMF0pLHR5cGVvZiBlWzBdIT1gc3RyaW5nYCYmZS51bnNoaWZ0KGAlT2ApO2xldCBhPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCh0LGkpPT57aWYodD09PWAlJWApcmV0dXJuYCVgO2ErKztsZXQgbz1uLmZvcm1hdHRlcnNbaV07aWYodHlwZW9mIG89PWBmdW5jdGlvbmApe2xldCBuPWVbYV07dD1vLmNhbGwocixuKSxlLnNwbGljZShhLDEpLGEtLX1yZXR1cm4gdH0pLG4uZm9ybWF0QXJncy5jYWxsKHIsZSksKHIubG9nfHxuLmxvZykuYXBwbHkocixlKX1yZXR1cm4gcy5uYW1lc3BhY2U9ZSxzLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLHMuY29sb3I9bi5zZWxlY3RDb2xvcihlKSxzLmV4dGVuZD1yLHMuZGVzdHJveT1uLmRlc3Ryb3ksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYGVuYWJsZWRgLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9Pmk9PT1udWxsPyhhIT09bi5uYW1lc3BhY2VzJiYoYT1uLm5hbWVzcGFjZXMsbz1uLmVuYWJsZWQoZSkpLG8pOmksc2V0OmU9PntpPWV9fSksdHlwZW9mIG4uaW5pdD09YGZ1bmN0aW9uYCYmbi5pbml0KHMpLHN9ZnVuY3Rpb24gcihlLHQpe2xldCByPW4odGhpcy5uYW1lc3BhY2UrKHQ9PT12b2lkIDA/YDpgOnQpK2UpO3JldHVybiByLmxvZz10aGlzLmxvZyxyfWZ1bmN0aW9uIGkoZSl7bi5zYXZlKGUpLG4ubmFtZXNwYWNlcz1lLG4ubmFtZXM9W10sbi5za2lwcz1bXTtsZXQgdD0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnRyaW0oKS5yZXBsYWNlKC9ccysvZyxgLGApLnNwbGl0KGAsYCkuZmlsdGVyKEJvb2xlYW4pO2ZvcihsZXQgZSBvZiB0KWVbMF09PT1gLWA/bi5za2lwcy5wdXNoKGUuc2xpY2UoMSkpOm4ubmFtZXMucHVzaChlKX1mdW5jdGlvbiBhKGUsdCl7bGV0IG49MCxyPTAsaT0tMSxhPTA7Zm9yKDtuPGUubGVuZ3RoOylpZihyPHQubGVuZ3RoJiYodFtyXT09PWVbbl18fHRbcl09PT1gKmApKXRbcl09PT1gKmA/KGk9cixhPW4scisrKToobisrLHIrKyk7ZWxzZSBpZihpIT09LTEpcj1pKzEsYSsrLG49YTtlbHNlIHJldHVybiExO2Zvcig7cjx0Lmxlbmd0aCYmdFtyXT09PWAqYDspcisrO3JldHVybiByPT09dC5sZW5ndGh9ZnVuY3Rpb24gbygpe2xldCBlPVsuLi5uLm5hbWVzLC4uLm4uc2tpcHMubWFwKGU9PmAtYCtlKV0uam9pbihgLGApO3JldHVybiBuLmVuYWJsZShgYCksZX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBuLnNraXBzKWlmKGEoZSx0KSlyZXR1cm4hMTtmb3IobGV0IHQgb2Ygbi5uYW1lcylpZihhKGUsdCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfWZ1bmN0aW9uIGwoKXtjb25zb2xlLndhcm4oIkluc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4iKX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksRXM9cygoKGUsdCk9PntlLmZvcm1hdEFyZ3M9cixlLnNhdmU9aSxlLmxvYWQ9YSxlLnVzZUNvbG9ycz1uLGUuc3RvcmFnZT1vKCksZS5kZXN0cm95PSgoKT0+e2xldCBlPSExO3JldHVybigpPT57ZXx8KGU9ITAsY29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIikpfX0pKCksZS5jb2xvcnM9YCMwMDAwQ0MuIzAwMDBGRi4jMDAzM0NDLiMwMDMzRkYuIzAwNjZDQy4jMDA2NkZGLiMwMDk5Q0MuIzAwOTlGRi4jMDBDQzAwLiMwMENDMzMuIzAwQ0M2Ni4jMDBDQzk5LiMwMENDQ0MuIzAwQ0NGRi4jMzMwMENDLiMzMzAwRkYuIzMzMzNDQy4jMzMzM0ZGLiMzMzY2Q0MuIzMzNjZGRi4jMzM5OUNDLiMzMzk5RkYuIzMzQ0MwMC4jMzNDQzMzLiMzM0NDNjYuIzMzQ0M5OS4jMzNDQ0NDLiMzM0NDRkYuIzY2MDBDQy4jNjYwMEZGLiM2NjMzQ0MuIzY2MzNGRi4jNjZDQzAwLiM2NkNDMzMuIzk5MDBDQy4jOTkwMEZGLiM5OTMzQ0MuIzk5MzNGRi4jOTlDQzAwLiM5OUNDMzMuI0NDMDAwMC4jQ0MwMDMzLiNDQzAwNjYuI0NDMDA5OS4jQ0MwMENDLiNDQzAwRkYuI0NDMzMwMC4jQ0MzMzMzLiNDQzMzNjYuI0NDMzM5OS4jQ0MzM0NDLiNDQzMzRkYuI0NDNjYwMC4jQ0M2NjMzLiNDQzk5MDAuI0NDOTkzMy4jQ0NDQzAwLiNDQ0NDMzMuI0ZGMDAwMC4jRkYwMDMzLiNGRjAwNjYuI0ZGMDA5OS4jRkYwMENDLiNGRjAwRkYuI0ZGMzMwMC4jRkYzMzMzLiNGRjMzNjYuI0ZGMzM5OS4jRkYzM0NDLiNGRjMzRkYuI0ZGNjYwMC4jRkY2NjMzLiNGRjk5MDAuI0ZGOTkzMy4jRkZDQzAwLiNGRkNDMzNgLnNwbGl0KGAuYCk7ZnVuY3Rpb24gbigpe2lmKHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmKGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSYmcGFyc2VJbnQoZVsxXSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZS5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pO2Z1bmN0aW9uIGkodCl7dHJ5e3Q/ZS5zdG9yYWdlLnNldEl0ZW0oYGRlYnVnYCx0KTplLnN0b3JhZ2UucmVtb3ZlSXRlbShgZGVidWdgKX1jYXRjaHt9fWZ1bmN0aW9uIGEoKXtsZXQgdDt0cnl7dD1lLnN0b3JhZ2UuZ2V0SXRlbShgZGVidWdgKXx8ZS5zdG9yYWdlLmdldEl0ZW0oYERFQlVHYCl9Y2F0Y2h7fXJldHVybiF0JiZ0eXBlb2YgcHJvY2VzczxgdWAmJmBlbnZgaW4gcHJvY2VzcyYmKHQ9e30uREVCVUcpLHR9ZnVuY3Rpb24gbygpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoe319dC5leHBvcnRzPVRzKCkoZSk7dmFye2Zvcm1hdHRlcnM6c309dC5leHBvcnRzO3Muaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVybmBbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogYCtlLm1lc3NhZ2V9fX0pKSxEcz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuY3JlYXRlRW1pdHRlcj1lLmNyZWF0ZUNhbGxiYWNrPWUuYm91bmQ9ZS5jcmVhdGVTb2NrZXRFcnJvcj1lLlNvY2tldEVycm9yPWUuZGVidWc9dm9pZCAwLGUuZGVidWc9bigpO2Z1bmN0aW9uIG4oKXt0cnl7cmV0dXJuIEVzKCkoYHNtYXJ0c3VwcDpjbGllbnRgKX1jYXRjaHtyZXR1cm4gZnVuY3Rpb24oKXt9fX12YXIgcj1mdW5jdGlvbihlKXt0KG4sZSk7ZnVuY3Rpb24gbih0LHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxuLnByb3RvdHlwZSksaS5uYW1lPWkuY29uc3RydWN0b3IubmFtZSxpLmNvZGU9ci5jb2RlLGkudHlwZT1yLnR5cGUsaS5ldmVudD1yLmV2ZW50LHImJnIuc3RhY2smJihpLnN0YWNrPWAke2kuc3RhY2t9CkNhdXNlZCBCeTogJHtyLnN0YWNrfWApLGl9cmV0dXJuIG59KEVycm9yKTtlLlNvY2tldEVycm9yPXI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbmV3IHIoZS5tZXNzYWdlLGUpfWUuY3JlYXRlU29ja2V0RXJyb3I9aTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Wy4uLmFyZ3VtZW50c107ZVt0XS5hcHBseShlLG4pfX1lLmJvdW5kPWE7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe24/dChpKG4pKTplKHIpfX1lLmNyZWF0ZUNhbGxiYWNrPW87ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBmdW5jdGlvbihuKXtlLmVtaXQodCxuKX19ZS5jcmVhdGVFbWl0dGVyPXN9KSksT3M9cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9YH5gO2Z1bmN0aW9uIGkoKXt9T2JqZWN0LmNyZWF0ZSYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobnVsbCksbmV3IGkoKS5fX3Byb3RvX198fChyPSExKSk7ZnVuY3Rpb24gYShlLHQsbil7dGhpcy5mbj1lLHRoaXMuY29udGV4dD10LHRoaXMub25jZT1ufHwhMX1mdW5jdGlvbiBvKGUsdCxuLGksbyl7aWYodHlwZW9mIG4hPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBUaGUgbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uYCk7dmFyIHM9bmV3IGEobixpfHxlLG8pLGM9cj9yK3Q6dDtyZXR1cm4gZS5fZXZlbnRzW2NdP2UuX2V2ZW50c1tjXS5mbj9lLl9ldmVudHNbY109W2UuX2V2ZW50c1tjXSxzXTplLl9ldmVudHNbY10ucHVzaChzKTooZS5fZXZlbnRzW2NdPXMsZS5fZXZlbnRzQ291bnQrKyksZX1mdW5jdGlvbiBzKGUsdCl7LS1lLl9ldmVudHNDb3VudD09PTA/ZS5fZXZlbnRzPW5ldyBpOmRlbGV0ZSBlLl9ldmVudHNbdF19ZnVuY3Rpb24gYygpe3RoaXMuX2V2ZW50cz1uZXcgaSx0aGlzLl9ldmVudHNDb3VudD0wfWMucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0LGk7aWYodGhpcy5fZXZlbnRzQ291bnQ9PT0wKXJldHVybiBlO2ZvcihpIGluIHQ9dGhpcy5fZXZlbnRzKW4uY2FsbCh0LGkpJiZlLnB1c2gocj9pLnNsaWNlKDEpOmkpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2UuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpOmV9LGMucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO2lmKCFuKXJldHVybltdO2lmKG4uZm4pcmV0dXJuW24uZm5dO2Zvcih2YXIgaT0wLGE9bi5sZW5ndGgsbz1BcnJheShhKTtpPGE7aSsrKW9baV09bltpXS5mbjtyZXR1cm4gb30sYy5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO3JldHVybiBuP24uZm4/MTpuLmxlbmd0aDowfSxjLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUsdCxuLGksYSxvKXt2YXIgcz1yP3IrZTplO2lmKCF0aGlzLl9ldmVudHNbc10pcmV0dXJuITE7dmFyIGM9dGhpcy5fZXZlbnRzW3NdLGw9YXJndW1lbnRzLmxlbmd0aCx1LGQ7aWYoYy5mbil7c3dpdGNoKGMub25jZSYmdGhpcy5yZW1vdmVMaXN0ZW5lcihlLGMuZm4sdm9pZCAwLCEwKSxsKXtjYXNlIDE6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQpLCEwO2Nhc2UgMjpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0KSwhMDtjYXNlIDM6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuKSwhMDtjYXNlIDQ6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGkpLCEwO2Nhc2UgNTpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0LG4saSxhKSwhMDtjYXNlIDY6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGksYSxvKSwhMH1mb3IoZD0xLHU9QXJyYXkobC0xKTtkPGw7ZCsrKXVbZC0xXT1hcmd1bWVudHNbZF07Yy5mbi5hcHBseShjLmNvbnRleHQsdSl9ZWxzZXt2YXIgZj1jLmxlbmd0aCxwO2ZvcihkPTA7ZDxmO2QrKylzd2l0Y2goY1tkXS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsY1tkXS5mbix2b2lkIDAsITApLGwpe2Nhc2UgMTpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0KTticmVhaztjYXNlIDI6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0KTticmVhaztjYXNlIDM6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0LG4pO2JyZWFrO2Nhc2UgNDpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0LHQsbixpKTticmVhaztkZWZhdWx0OmlmKCF1KWZvcihwPTEsdT1BcnJheShsLTEpO3A8bDtwKyspdVtwLTFdPWFyZ3VtZW50c1twXTtjW2RdLmZuLmFwcGx5KGNbZF0uY29udGV4dCx1KX19cmV0dXJuITB9LGMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyh0aGlzLGUsdCxuLCExKX0sYy5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8odGhpcyxlLHQsbiwhMCl9LGMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBhPXI/citlOmU7aWYoIXRoaXMuX2V2ZW50c1thXSlyZXR1cm4gdGhpcztpZighdClyZXR1cm4gcyh0aGlzLGEpLHRoaXM7dmFyIG89dGhpcy5fZXZlbnRzW2FdO2lmKG8uZm4pby5mbj09PXQmJighaXx8by5vbmNlKSYmKCFufHxvLmNvbnRleHQ9PT1uKSYmcyh0aGlzLGEpO2Vsc2V7Zm9yKHZhciBjPTAsbD1bXSx1PW8ubGVuZ3RoO2M8dTtjKyspKG9bY10uZm4hPT10fHxpJiYhb1tjXS5vbmNlfHxuJiZvW2NdLmNvbnRleHQhPT1uKSYmbC5wdXNoKG9bY10pO2wubGVuZ3RoP3RoaXMuX2V2ZW50c1thXT1sLmxlbmd0aD09PTE/bFswXTpsOnModGhpcyxhKX1yZXR1cm4gdGhpc30sYy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlPyh0PXI/citlOmUsdGhpcy5fZXZlbnRzW3RdJiZzKHRoaXMsdCkpOih0aGlzLl9ldmVudHM9bmV3IGksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpc30sYy5wcm90b3R5cGUub2ZmPWMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLGMucHJvdG90eXBlLmFkZExpc3RlbmVyPWMucHJvdG90eXBlLm9uLGMucHJlZml4ZWQ9cixjLkV2ZW50RW1pdHRlcj1jLHQhPT12b2lkIDAmJih0LmV4cG9ydHM9Yyl9KSksa3M9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsaT1lLmluZGV4T2YoYFtgKSxhPWUuaW5kZXhPZihgXWApO2khPS0xJiZhIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxpKStlLnN1YnN0cmluZyhpLGEpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKGEsZS5sZW5ndGgpKTtmb3IodmFyIG89bi5leGVjKGV8fGBgKSxzPXt9LGM9MTQ7Yy0tOylzW3JbY11dPW9bY118fGBgO3JldHVybiBpIT0tMSYmYSE9LTEmJihzLnNvdXJjZT10LHMuaG9zdD1zLmhvc3Quc3Vic3RyaW5nKDEscy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxzLmF1dGhvcml0eT1zLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLHMuaXB2NnVyaT0hMCksc319KSksQXM9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe24uZGVidWc9bixuLmRlZmF1bHQ9bixuLmNvZXJjZT1sLG4uZGlzYWJsZT1vLG4uZW5hYmxlPWEsbi5lbmFibGVkPXMsbi5odW1hbml6ZT13cygpLE9iamVjdC5rZXlzKGUpLmZvckVhY2godD0+e25bdF09ZVt0XX0pLG4uaW5zdGFuY2VzPVtdLG4ubmFtZXM9W10sbi5za2lwcz1bXSxuLmZvcm1hdHRlcnM9e307ZnVuY3Rpb24gdChlKXtsZXQgdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQ9KHQ8PDUpLXQrZS5jaGFyQ29kZUF0KG4pLHR8PTA7cmV0dXJuIG4uY29sb3JzW01hdGguYWJzKHQpJW4uY29sb3JzLmxlbmd0aF19bi5zZWxlY3RDb2xvcj10O2Z1bmN0aW9uIG4oZSl7bGV0IGE7ZnVuY3Rpb24gbyguLi5lKXtpZighby5lbmFibGVkKXJldHVybjtsZXQgdD1vLHI9TnVtYmVyKG5ldyBEYXRlKTt0LmRpZmY9ci0oYXx8ciksdC5wcmV2PWEsdC5jdXJyPXIsYT1yLGVbMF09bi5jb2VyY2UoZVswXSksdHlwZW9mIGVbMF0hPWBzdHJpbmdgJiZlLnVuc2hpZnQoYCVPYCk7bGV0IGk9MDtlWzBdPWVbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKHIsYSk9PntpZihyPT09YCUlYClyZXR1cm4gcjtpKys7bGV0IG89bi5mb3JtYXR0ZXJzW2FdO2lmKHR5cGVvZiBvPT1gZnVuY3Rpb25gKXtsZXQgbj1lW2ldO3I9by5jYWxsKHQsbiksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIHJ9KSxuLmZvcm1hdEFyZ3MuY2FsbCh0LGUpLCh0LmxvZ3x8bi5sb2cpLmFwcGx5KHQsZSl9cmV0dXJuIG8ubmFtZXNwYWNlPWUsby5lbmFibGVkPW4uZW5hYmxlZChlKSxvLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLG8uY29sb3I9dChlKSxvLmRlc3Ryb3k9cixvLmV4dGVuZD1pLHR5cGVvZiBuLmluaXQ9PWBmdW5jdGlvbmAmJm4uaW5pdChvKSxuLmluc3RhbmNlcy5wdXNoKG8pLG99ZnVuY3Rpb24gcigpe2xldCBlPW4uaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7cmV0dXJuIGU9PT0tMT8hMToobi5pbnN0YW5jZXMuc3BsaWNlKGUsMSksITApfWZ1bmN0aW9uIGkoZSx0KXtsZXQgcj1uKHRoaXMubmFtZXNwYWNlKyh0PT09dm9pZCAwP2A6YDp0KStlKTtyZXR1cm4gci5sb2c9dGhpcy5sb2cscn1mdW5jdGlvbiBhKGUpe24uc2F2ZShlKSxuLm5hbWVzPVtdLG4uc2tpcHM9W107bGV0IHQscj0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnNwbGl0KC9bXHMsXSsvKSxpPXIubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKylyW3RdJiYoZT1yW3RdLnJlcGxhY2UoL1wqL2csYC4qP2ApLGVbMF09PT1gLWA/bi5za2lwcy5wdXNoKFJlZ0V4cChgXmArZS5zdWJzdHIoMSkrYCRgKSk6bi5uYW1lcy5wdXNoKFJlZ0V4cChgXmArZStgJGApKSk7Zm9yKHQ9MDt0PG4uaW5zdGFuY2VzLmxlbmd0aDt0Kyspe2xldCBlPW4uaW5zdGFuY2VzW3RdO2UuZW5hYmxlZD1uLmVuYWJsZWQoZS5uYW1lc3BhY2UpfX1mdW5jdGlvbiBvKCl7bGV0IGU9Wy4uLm4ubmFtZXMubWFwKGMpLC4uLm4uc2tpcHMubWFwKGMpLm1hcChlPT5gLWArZSldLmpvaW4oYCxgKTtyZXR1cm4gbi5lbmFibGUoYGApLGV9ZnVuY3Rpb24gcyhlKXtpZihlW2UubGVuZ3RoLTFdPT09YCpgKXJldHVybiEwO2xldCB0LHI7Zm9yKHQ9MCxyPW4uc2tpcHMubGVuZ3RoO3Q8cjt0KyspaWYobi5za2lwc1t0XS50ZXN0KGUpKXJldHVybiExO2Zvcih0PTAscj1uLm5hbWVzLmxlbmd0aDt0PHI7dCsrKWlmKG4ubmFtZXNbdF0udGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsZS50b1N0cmluZygpLmxlbmd0aC0yKS5yZXBsYWNlKC9cLlwqXD8kLyxgKmApfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksanM9cygoKGUsdCk9PntlLmxvZz1pLGUuZm9ybWF0QXJncz1yLGUuc2F2ZT1hLGUubG9hZD1vLGUudXNlQ29sb3JzPW4sZS5zdG9yYWdlPXMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpPyEwOnR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pPyExOnR5cGVvZiBkb2N1bWVudDxgdWAmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZnVuY3Rpb24gaSguLi5lKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coLi4uZSl9ZnVuY3Rpb24gYSh0KXt0cnl7dD9lLnN0b3JhZ2Uuc2V0SXRlbShgZGVidWdgLHQpOmUuc3RvcmFnZS5yZW1vdmVJdGVtKGBkZWJ1Z2ApfWNhdGNoe319ZnVuY3Rpb24gbygpe2xldCB0O3RyeXt0PWUuc3RvcmFnZS5nZXRJdGVtKGBkZWJ1Z2ApfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaHt9fXQuZXhwb3J0cz1BcygpKGUpO3Zhcntmb3JtYXR0ZXJzOmN9PXQuZXhwb3J0cztjLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5gW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IGArZS5tZXNzYWdlfX19KSksTXM9cygoKGUsdCk9Pnt2YXIgbj1rcygpLHI9anMoKShgc29ja2V0LmlvLWNsaWVudDp1cmxgKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUsdCl7dmFyIGk9ZTt0fHw9dHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24sZT8/PXQucHJvdG9jb2wrYC8vYCt0Lmhvc3QsdHlwZW9mIGU9PWBzdHJpbmdgJiYoZS5jaGFyQXQoMCk9PT1gL2AmJihlPWUuY2hhckF0KDEpPT09YC9gP3QucHJvdG9jb2wrZTp0Lmhvc3QrZSksL14oaHR0cHM/fHdzcz8pOlwvXC8vLnRlc3QoZSl8fChyKGBwcm90b2NvbC1sZXNzIHVybCAlc2AsZSksZT10PT09dm9pZCAwP2BodHRwczovL2ArZTp0LnByb3RvY29sK2AvL2ArZSkscihgcGFyc2UgJXNgLGUpLGk9bihlKSksaS5wb3J0fHwoL14oaHR0cHx3cykkLy50ZXN0KGkucHJvdG9jb2wpP2kucG9ydD1gODBgOi9eKGh0dHB8d3MpcyQvLnRlc3QoaS5wcm90b2NvbCkmJihpLnBvcnQ9YDQ0M2ApKSxpLnBhdGg9aS5wYXRofHxgL2A7dmFyIGE9aS5ob3N0LmluZGV4T2YoYDpgKT09PS0xP2kuaG9zdDpgW2AraS5ob3N0K2BdYDtyZXR1cm4gaS5pZD1pLnByb3RvY29sK2A6Ly9gK2ErYDpgK2kucG9ydCxpLmhyZWY9aS5wcm90b2NvbCtgOi8vYCthKyh0JiZ0LnBvcnQ9PT1pLnBvcnQ/YGA6YDpgK2kucG9ydCksaX19KSksTnM9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBzKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNOYU4oZSk9PT0hMSlyZXR1cm4gdC5sb25nP2woZSk6YyhlKTt0aHJvdyBFcnJvcihgdmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1gK0pTT04uc3RyaW5naWZ5KGUpKX07ZnVuY3Rpb24gcyhlKXtpZihlPVN0cmluZyhlKSwhKGUubGVuZ3RoPjEwMCkpe3ZhciB0PS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIHM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIHMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBzKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gcyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIHMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBzKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIHM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZT49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOmU+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDplPj1yP01hdGgucm91bmQoZS9yKStgbWA6ZT49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiBsKGUpe3JldHVybiB1KGUsYSxgZGF5YCl8fHUoZSxpLGBob3VyYCl8fHUoZSxyLGBtaW51dGVgKXx8dShlLG4sYHNlY29uZGApfHxlK2AgbXNgfWZ1bmN0aW9uIHUoZSx0LG4pe2lmKCEoZTx0KSlyZXR1cm4gZTx0KjEuNT9NYXRoLmZsb29yKGUvdCkrYCBgK246TWF0aC5jZWlsKGUvdCkrYCBgK24rYHNgfX0pKSxQcz1zKCgoZSx0KT0+e2U9dC5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIsZS5jb2VyY2U9YyxlLmRpc2FibGU9byxlLmVuYWJsZT1hLGUuZW5hYmxlZD1zLGUuaHVtYW5pemU9TnMoKSxlLmluc3RhbmNlcz1bXSxlLm5hbWVzPVtdLGUuc2tpcHM9W10sZS5mb3JtYXR0ZXJzPXt9O2Z1bmN0aW9uIG4odCl7dmFyIG49MCxyO2ZvcihyIGluIHQpbj0objw8NSktbit0LmNoYXJDb2RlQXQociksbnw9MDtyZXR1cm4gZS5jb2xvcnNbTWF0aC5hYnMobiklZS5jb2xvcnMubGVuZ3RoXX1mdW5jdGlvbiByKHQpe3ZhciByO2Z1bmN0aW9uIGEoKXtpZihhLmVuYWJsZWQpe3ZhciB0PWEsbj0rbmV3IERhdGU7dC5kaWZmPW4tKHJ8fG4pLHQucHJldj1yLHQuY3Vycj1uLHI9bjtmb3IodmFyIGk9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksbz0wO288aS5sZW5ndGg7bysrKWlbb109YXJndW1lbnRzW29dO2lbMF09ZS5jb2VyY2UoaVswXSksdHlwZW9mIGlbMF0hPWBzdHJpbmdgJiZpLnVuc2hpZnQoYCVPYCk7dmFyIHM9MDtpWzBdPWlbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csZnVuY3Rpb24obixyKXtpZihuPT09YCUlYClyZXR1cm4gbjtzKys7dmFyIGE9ZS5mb3JtYXR0ZXJzW3JdO2lmKHR5cGVvZiBhPT1gZnVuY3Rpb25gKXt2YXIgbz1pW3NdO249YS5jYWxsKHQsbyksaS5zcGxpY2UocywxKSxzLS19cmV0dXJuIG59KSxlLmZvcm1hdEFyZ3MuY2FsbCh0LGkpLChhLmxvZ3x8ZS5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkpLmFwcGx5KHQsaSl9fXJldHVybiBhLm5hbWVzcGFjZT10LGEuZW5hYmxlZD1lLmVuYWJsZWQodCksYS51c2VDb2xvcnM9ZS51c2VDb2xvcnMoKSxhLmNvbG9yPW4odCksYS5kZXN0cm95PWksdHlwZW9mIGUuaW5pdD09YGZ1bmN0aW9uYCYmZS5pbml0KGEpLGUuaW5zdGFuY2VzLnB1c2goYSksYX1mdW5jdGlvbiBpKCl7dmFyIHQ9ZS5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4gdD09PS0xPyExOihlLmluc3RhbmNlcy5zcGxpY2UodCwxKSwhMCl9ZnVuY3Rpb24gYSh0KXtlLnNhdmUodCksZS5uYW1lcz1bXSxlLnNraXBzPVtdO3ZhciBuLHI9KHR5cGVvZiB0PT1gc3RyaW5nYD90OmBgKS5zcGxpdCgvW1xzLF0rLyksaT1yLmxlbmd0aDtmb3Iobj0wO248aTtuKyspcltuXSYmKHQ9cltuXS5yZXBsYWNlKC9cKi9nLGAuKj9gKSx0WzBdPT09YC1gP2Uuc2tpcHMucHVzaChSZWdFeHAoYF5gK3Quc3Vic3RyKDEpK2AkYCkpOmUubmFtZXMucHVzaChSZWdFeHAoYF5gK3QrYCRgKSkpO2ZvcihuPTA7bjxlLmluc3RhbmNlcy5sZW5ndGg7bisrKXt2YXIgYT1lLmluc3RhbmNlc1tuXTthLmVuYWJsZWQ9ZS5lbmFibGVkKGEubmFtZXNwYWNlKX19ZnVuY3Rpb24gbygpe2UuZW5hYmxlKGBgKX1mdW5jdGlvbiBzKHQpe2lmKHRbdC5sZW5ndGgtMV09PT1gKmApcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9ZS5za2lwcy5sZW5ndGg7bjxyO24rKylpZihlLnNraXBzW25dLnRlc3QodCkpcmV0dXJuITE7Zm9yKG49MCxyPWUubmFtZXMubGVuZ3RoO248cjtuKyspaWYoZS5uYW1lc1tuXS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX19KSksRnM9cygoKGUsdCk9PntlPXQuZXhwb3J0cz1QcygpLGUubG9nPWksZS5mb3JtYXRBcmdzPXIsZS5zYXZlPWEsZS5sb2FkPW8sZS51c2VDb2xvcnM9bixlLnN0b3JhZ2U9dHlwZW9mIGNocm9tZTxgdWAmJmNocm9tZS5zdG9yYWdlIT09dm9pZCAwP2Nocm9tZS5zdG9yYWdlLmxvY2FsOnMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudHlwZT09PWByZW5kZXJlcmA/ITA6dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcLyhcZCspLyk/ITE6dHlwZW9mIGRvY3VtZW50PGB1YCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHx0eXBlb2Ygd2luZG93PGB1YCYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSYmcGFyc2VJbnQoUmVnRXhwLiQxLDEwKT49MzF8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfWUuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuYFtVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiBgK2UubWVzc2FnZX19O2Z1bmN0aW9uIHIodCl7dmFyIG49dGhpcy51c2VDb2xvcnM7aWYodFswXT0obj9gJWNgOmBgKSt0aGlzLm5hbWVzcGFjZSsobj9gICVjYDpgIGApK3RbMF0rKG4/YCVjIGA6YCBgKStgK2ArZS5odW1hbml6ZSh0aGlzLmRpZmYpLG4pe3ZhciByPWBjb2xvcjogYCt0aGlzLmNvbG9yO3Quc3BsaWNlKDEsMCxyLGBjb2xvcjogaW5oZXJpdGApO3ZhciBpPTAsYT0wO3RbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLGZ1bmN0aW9uKGUpe2UhPT1gJSVgJiYoaSsrLGU9PT1gJWNgJiYoYT1pKSl9KSx0LnNwbGljZShhLDAscil9fWZ1bmN0aW9uIGkoKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZS5sb2csY29uc29sZSxhcmd1bWVudHMpfWZ1bmN0aW9uIGEodCl7dHJ5e3Q9PW51bGw/ZS5zdG9yYWdlLnJlbW92ZUl0ZW0oYGRlYnVnYCk6ZS5zdG9yYWdlLmRlYnVnPXR9Y2F0Y2h7fX1mdW5jdGlvbiBvKCl7dmFyIHQ7dHJ5e3Q9ZS5zdG9yYWdlLmRlYnVnfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWUuZW5hYmxlKG8oKSk7ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9fX0pKSxJcz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gbi5sZW5ndGg9PT0wJiZkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzfSxuLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O2Zvcih2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO2lmKG4pe249bi5zbGljZSgwKTtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTsrK3IpbltyXS5hcHBseSh0aGlzLHQpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LHRoaXMuX2NhbGxiYWNrc1tgJGArZV18fFtdfSxuLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxpc3RlbmVycyhlKS5sZW5ndGh9fSkpLExzPXMoKChlLHQpPT57dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSk9PWBbb2JqZWN0IEFycmF5XWB9fSkpLFJzPXMoKChlLHQpPT57dC5leHBvcnRzPWE7dmFyIG49dHlwZW9mIEJ1ZmZlcj09YGZ1bmN0aW9uYCYmdHlwZW9mIEJ1ZmZlci5pc0J1ZmZlcj09YGZ1bmN0aW9uYCxyPXR5cGVvZiBBcnJheUJ1ZmZlcj09YGZ1bmN0aW9uYCxpPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3PT1gZnVuY3Rpb25gP0FycmF5QnVmZmVyLmlzVmlldyhlKTplLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTtmdW5jdGlvbiBhKGUpe3JldHVybiBuJiZCdWZmZXIuaXNCdWZmZXIoZSl8fHImJihlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkoZSkpfX0pKSx6cz1zKChlPT57dmFyIHQ9THMoKSxuPVJzKCkscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9dHlwZW9mIEJsb2I9PWBmdW5jdGlvbmB8fHR5cGVvZiBCbG9iPGB1YCYmci5jYWxsKEJsb2IpPT09YFtvYmplY3QgQmxvYkNvbnN0cnVjdG9yXWAsYT10eXBlb2YgRmlsZT09YGZ1bmN0aW9uYHx8dHlwZW9mIEZpbGU8YHVgJiZyLmNhbGwoRmlsZSk9PT1gW29iamVjdCBGaWxlQ29uc3RydWN0b3JdYDtlLmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49ZS5kYXRhLHI9ZTtyZXR1cm4gci5kYXRhPW8obix0KSxyLmF0dGFjaG1lbnRzPXQubGVuZ3RoLHtwYWNrZXQ6cixidWZmZXJzOnR9fTtmdW5jdGlvbiBvKGUscil7aWYoIWUpcmV0dXJuIGU7aWYobihlKSl7dmFyIGk9e19wbGFjZWhvbGRlcjohMCxudW06ci5sZW5ndGh9O3JldHVybiByLnB1c2goZSksaX1lbHNlIGlmKHQoZSkpe2Zvcih2YXIgYT1BcnJheShlLmxlbmd0aCkscz0wO3M8ZS5sZW5ndGg7cysrKWFbc109byhlW3NdLHIpO3JldHVybiBhfWVsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgJiYhKGUgaW5zdGFuY2VvZiBEYXRlKSl7dmFyIGE9e307Zm9yKHZhciBjIGluIGUpYVtjXT1vKGVbY10scik7cmV0dXJuIGF9cmV0dXJuIGV9ZS5yZWNvbnN0cnVjdFBhY2tldD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmRhdGE9cyhlLmRhdGEsdCksZS5hdHRhY2htZW50cz12b2lkIDAsZX07ZnVuY3Rpb24gcyhlLG4pe2lmKCFlKXJldHVybiBlO2lmKGUmJmUuX3BsYWNlaG9sZGVyPT09ITApe2lmKHR5cGVvZiBlLm51bT09YG51bWJlcmAmJmUubnVtPj0wJiZlLm51bTxuLmxlbmd0aClyZXR1cm4gbltlLm51bV07dGhyb3cgRXJyb3IoYGlsbGVnYWwgYXR0YWNobWVudHNgKX1lbHNlIGlmKHQoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXT1zKGVbcl0sbik7ZWxzZSBpZih0eXBlb2YgZT09YG9iamVjdGApZm9yKHZhciBpIGluIGUpZVtpXT1zKGVbaV0sbik7cmV0dXJuIGV9ZS5yZW1vdmVCbG9icz1mdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG8oZSxsLHUpe2lmKCFlKXJldHVybiBlO2lmKGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSl7cysrO3ZhciBkPW5ldyBGaWxlUmVhZGVyO2Qub25sb2FkPWZ1bmN0aW9uKCl7dT91W2xdPXRoaXMucmVzdWx0OmM9dGhpcy5yZXN1bHQsLS1zfHxyKGMpfSxkLnJlYWRBc0FycmF5QnVmZmVyKGUpfWVsc2UgaWYodChlKSlmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKylvKGVbZl0sZixlKTtlbHNlIGlmKHR5cGVvZiBlPT1gb2JqZWN0YCYmIW4oZSkpZm9yKHZhciBwIGluIGUpbyhlW3BdLHAsZSl9dmFyIHM9MCxjPWU7byhjKSxzfHxyKGMpfX0pKSxCcz1zKChlPT57dmFyIHQ9RnMoKShgc29ja2V0LmlvLXBhcnNlcmApLG49SXMoKSxyPXpzKCksaT1McygpLGE9UnMoKTtlLnByb3RvY29sPTQsZS50eXBlcz1bYENPTk5FQ1RgLGBESVNDT05ORUNUYCxgRVZFTlRgLGBBQ0tgLGBFUlJPUmAsYEJJTkFSWV9FVkVOVGAsYEJJTkFSWV9BQ0tgXSxlLkNPTk5FQ1Q9MCxlLkRJU0NPTk5FQ1Q9MSxlLkVWRU5UPTIsZS5BQ0s9MyxlLkVSUk9SPTQsZS5CSU5BUllfRVZFTlQ9NSxlLkJJTkFSWV9BQ0s9NixlLkVuY29kZXI9byxlLkRlY29kZXI9ZDtmdW5jdGlvbiBvKCl7fXZhciBzPWUuRVJST1IrYCJlbmNvZGUgZXJyb3IiYDtvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obixyKXt0KGBlbmNvZGluZyBwYWNrZXQgJWpgLG4pLGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGU/dShuLHIpOnIoW2MobildKX07ZnVuY3Rpb24gYyhuKXt2YXIgcj1gYCtuLnR5cGU7aWYoKGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGUpJiYocis9bi5hdHRhY2htZW50cytgLWApLG4ubnNwJiZuLm5zcCE9PWAvYCYmKHIrPW4ubnNwK2AsYCksbi5pZCE9bnVsbCYmKHIrPW4uaWQpLG4uZGF0YSE9bnVsbCl7dmFyIGk9bChuLmRhdGEpO2lmKGkhPT0hMSlyKz1pO2Vsc2UgcmV0dXJuIHN9cmV0dXJuIHQoYGVuY29kZWQgJWogYXMgJXNgLG4scikscn1mdW5jdGlvbiBsKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHUoZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXIuZGVjb25zdHJ1Y3RQYWNrZXQoZSksaT1jKG4ucGFja2V0KSxhPW4uYnVmZmVyczthLnVuc2hpZnQoaSksdChhKX1yLnJlbW92ZUJsb2JzKGUsbil9ZnVuY3Rpb24gZCgpe3RoaXMucmVjb25zdHJ1Y3Rvcj1udWxsfW4oZC5wcm90b3R5cGUpLGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgbjtpZih0eXBlb2YgdD09YHN0cmluZ2Ape2lmKHRoaXMucmVjb25zdHJ1Y3Rvcil0aHJvdyBFcnJvcihgZ290IHBsYWludGV4dCBkYXRhIHdoZW4gcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtuPWYodCksZS5CSU5BUllfRVZFTlQ9PT1uLnR5cGV8fGUuQklOQVJZX0FDSz09PW4udHlwZT8odGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBtKG4pLHRoaXMucmVjb25zdHJ1Y3Rvci5yZWNvblBhY2suYXR0YWNobWVudHM9PT0wJiZ0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTp0aGlzLmVtaXQoYGRlY29kZWRgLG4pfWVsc2UgaWYoYSh0KXx8dC5iYXNlNjQpaWYodGhpcy5yZWNvbnN0cnVjdG9yKW49dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKHQpLG4mJih0aGlzLnJlY29uc3RydWN0b3I9bnVsbCx0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTtlbHNlIHRocm93IEVycm9yKGBnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtlbHNlIHRocm93IEVycm9yKGBVbmtub3duIHR5cGU6IGArdCl9O2Z1bmN0aW9uIGYobil7dmFyIHI9MCxhPXt0eXBlOk51bWJlcihuLmNoYXJBdCgwKSl9O2lmKGUudHlwZXNbYS50eXBlXT09bnVsbClyZXR1cm4gaChgdW5rbm93biBwYWNrZXQgdHlwZSBgK2EudHlwZSk7aWYoZS5CSU5BUllfRVZFTlQ9PT1hLnR5cGV8fGUuQklOQVJZX0FDSz09PWEudHlwZSl7Zm9yKHZhciBvPXIrMTtuLmNoYXJBdCgrK3IpIT09YC1gJiZyIT1uLmxlbmd0aDspO3ZhciBzPW4uc3Vic3RyaW5nKG8scik7aWYocyE9TnVtYmVyKHMpfHxuLmNoYXJBdChyKSE9PWAtYCl0aHJvdyBFcnJvcihgSWxsZWdhbCBhdHRhY2htZW50c2ApO2EuYXR0YWNobWVudHM9TnVtYmVyKHMpfWlmKG4uY2hhckF0KHIrMSk9PT1gL2Ape2Zvcih2YXIgbz1yKzE7KytyOyl7dmFyIGM9bi5jaGFyQXQocik7aWYoYz09PWAsYHx8cj09PW4ubGVuZ3RoKWJyZWFrfWEubnNwPW4uc3Vic3RyaW5nKG8scil9ZWxzZSBhLm5zcD1gL2A7dmFyIGw9bi5jaGFyQXQocisxKTtpZihsIT09YGAmJk51bWJlcihsKT09bCl7Zm9yKHZhciBvPXIrMTsrK3I7KXt2YXIgYz1uLmNoYXJBdChyKTtpZihjPT1udWxsfHxOdW1iZXIoYykhPWMpey0tcjticmVha31pZihyPT09bi5sZW5ndGgpYnJlYWt9YS5pZD1OdW1iZXIobi5zdWJzdHJpbmcobyxyKzEpKX1pZihuLmNoYXJBdCgrK3IpKXt2YXIgdT1wKG4uc3Vic3RyKHIpKTtpZih1IT09ITEmJihhLnR5cGU9PT1lLkVSUk9SfHxpKHUpKSlhLmRhdGE9dTtlbHNlIHJldHVybiBoKGBpbnZhbGlkIHBheWxvYWRgKX1yZXR1cm4gdChgZGVjb2RlZCAlcyBhcyAlamAsbixhKSxhfWZ1bmN0aW9uIHAoZSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiExfX1kLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5yZWNvbnN0cnVjdG9yJiZ0aGlzLnJlY29uc3RydWN0b3IuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpfTtmdW5jdGlvbiBtKGUpe3RoaXMucmVjb25QYWNrPWUsdGhpcy5idWZmZXJzPVtdfW0ucHJvdG90eXBlLnRha2VCaW5hcnlEYXRhPWZ1bmN0aW9uKGUpe2lmKHRoaXMuYnVmZmVycy5wdXNoKGUpLHRoaXMuYnVmZmVycy5sZW5ndGg9PT10aGlzLnJlY29uUGFjay5hdHRhY2htZW50cyl7dmFyIHQ9ci5yZWNvbnN0cnVjdFBhY2tldCh0aGlzLnJlY29uUGFjayx0aGlzLmJ1ZmZlcnMpO3JldHVybiB0aGlzLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSx0fXJldHVybiBudWxsfSxtLnByb3RvdHlwZS5maW5pc2hlZFJlY29uc3RydWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5yZWNvblBhY2s9bnVsbCx0aGlzLmJ1ZmZlcnM9W119O2Z1bmN0aW9uIGgodCl7cmV0dXJue3R5cGU6ZS5FUlJPUixkYXRhOmBwYXJzZXIgZXJyb3I6IGArdH19fSkpLFZzPXMoKChlLHQpPT57dHJ5e3QuZXhwb3J0cz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiZgd2l0aENyZWRlbnRpYWxzYGluIG5ldyBYTUxIdHRwUmVxdWVzdH1jYXRjaHt0LmV4cG9ydHM9ITF9fSkpLEhzPXMoKChlLHQpPT57dC5leHBvcnRzPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygc2VsZjxgdWA/c2VsZjp0eXBlb2Ygd2luZG93PGB1YD93aW5kb3c6RnVuY3Rpb24oYHJldHVybiB0aGlzYCkoKX0pKCl9KSksVXM9cygoKGUsdCk9Pnt2YXIgbj1WcygpLHI9SHMoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS54ZG9tYWluLGk9ZS54c2NoZW1lLGE9ZS5lbmFibGVzWERSO3RyeXtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiYoIXR8fG4pKXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2h7fXRyeXtpZih0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhaSYmYSlyZXR1cm4gbmV3IFhEb21haW5SZXF1ZXN0fWNhdGNoe31pZighdCl0cnl7cmV0dXJuIG5ldyByW1tgQWN0aXZlYCxgT2JqZWN0YF0uam9pbihgWGApXShgTWljcm9zb2Z0LlhNTEhUVFBgKX1jYXRjaHt9fX0pKSxXcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgciBpbiBlKW4uY2FsbChlLHIpJiZ0LnB1c2gocik7cmV0dXJuIHR9fSkpLEdzPXMoKChlLHQpPT57dmFyIG49THMoKSxyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT10eXBlb2YgQmxvYj09YGZ1bmN0aW9uYHx8dHlwZW9mIEJsb2I8YHVgJiZyLmNhbGwoQmxvYik9PT1gW29iamVjdCBCbG9iQ29uc3RydWN0b3JdYCxhPXR5cGVvZiBGaWxlPT1gZnVuY3Rpb25gfHx0eXBlb2YgRmlsZTxgdWAmJnIuY2FsbChGaWxlKT09PWBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl1gO3QuZXhwb3J0cz1vO2Z1bmN0aW9uIG8oZSl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4hMTtpZihuKGUpKXtmb3IodmFyIHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYobyhlW3RdKSlyZXR1cm4hMDtyZXR1cm4hMX1pZih0eXBlb2YgQnVmZmVyPT1gZnVuY3Rpb25gJiZCdWZmZXIuaXNCdWZmZXImJkJ1ZmZlci5pc0J1ZmZlcihlKXx8dHlwZW9mIEFycmF5QnVmZmVyPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSlyZXR1cm4hMDtpZihlLnRvSlNPTiYmdHlwZW9mIGUudG9KU09OPT1gZnVuY3Rpb25gJiZhcmd1bWVudHMubGVuZ3RoPT09MSlyZXR1cm4gbyhlLnRvSlNPTigpLCEwKTtmb3IodmFyIHMgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmbyhlW3NdKSlyZXR1cm4hMDtyZXR1cm4hMX19KSksS3M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYnl0ZUxlbmd0aDtpZih0fHw9MCxufHw9cixlLnNsaWNlKXJldHVybiBlLnNsaWNlKHQsbik7aWYodDwwJiYodCs9ciksbjwwJiYobis9ciksbj5yJiYobj1yKSx0Pj1yfHx0Pj1ufHxyPT09MClyZXR1cm4gbmV3IEFycmF5QnVmZmVyKDApO2Zvcih2YXIgaT1uZXcgVWludDhBcnJheShlKSxhPW5ldyBVaW50OEFycmF5KG4tdCksbz10LHM9MDtvPG47bysrLHMrKylhW3NdPWlbb107cmV0dXJuIGEuYnVmZmVyfX0pKSxxcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1uO2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPSExO3JldHVybiBufHw9cixhLmNvdW50PWUsZT09PTA/dCgpOmE7ZnVuY3Rpb24gYShlLHIpe2lmKGEuY291bnQ8PTApdGhyb3cgRXJyb3IoYGFmdGVyIGNhbGxlZCB0b28gbWFueSB0aW1lc2ApOy0tYS5jb3VudCxlPyhpPSEwLHQoZSksdD1uKTphLmNvdW50PT09MCYmIWkmJnQobnVsbCxyKX19ZnVuY3Rpb24gcigpe319KSksSnM9cygoKGUsdCk9Pnt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PVtdLG49MCxyPWUubGVuZ3RoLGksYTtuPHI7KWk9ZS5jaGFyQ29kZUF0KG4rKyksaT49NTUyOTYmJmk8PTU2MzE5JiZuPHI/KGE9ZS5jaGFyQ29kZUF0KG4rKyksKGEmNjQ1MTIpPT01NjMyMD90LnB1c2goKChpJjEwMjMpPDwxMCkrKGEmMTAyMykrNjU1MzYpOih0LnB1c2goaSksbi0tKSk6dC5wdXNoKGkpO3JldHVybiB0fWZ1bmN0aW9uIGkoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI9LTEsaSxhPWBgOysrcjx0OylpPWVbcl0saT42NTUzNSYmKGktPTY1NTM2LGErPW4oaT4+PjEwJjEwMjN8NTUyOTYpLGk9NTYzMjB8aSYxMDIzKSxhKz1uKGkpO3JldHVybiBhfWZ1bmN0aW9uIGEoZSx0KXtpZihlPj01NTI5NiYmZTw9NTczNDMpe2lmKHQpdGhyb3cgRXJyb3IoYExvbmUgc3Vycm9nYXRlIFUrYCtlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK2AgaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBuKGU+PnQmNjN8MTI4KX1mdW5jdGlvbiBzKGUsdCl7aWYoIShlJjQyOTQ5NjcxNjgpKXJldHVybiBuKGUpO3ZhciByPWBgO3JldHVybiBlJjQyOTQ5NjUyNDg/ZSY0Mjk0OTAxNzYwP2UmNDI5Mjg3MDE0NHx8KHI9bihlPj4xOCY3fDI0MCkscis9byhlLDEyKSxyKz1vKGUsNikpOihhKGUsdCl8fChlPTY1NTMzKSxyPW4oZT4+MTImMTV8MjI0KSxyKz1vKGUsNikpOnI9bihlPj42JjMxfDE5Mikscis9bihlJjYzfDEyOCkscn1mdW5jdGlvbiBjKGUsdCl7dHx8PXt9O2Zvcih2YXIgbj0hMSE9PXQuc3RyaWN0LGk9cihlKSxhPWkubGVuZ3RoLG89LTEsYyxsPWBgOysrbzxhOyljPWlbb10sbCs9cyhjLG4pO3JldHVybiBsfWZ1bmN0aW9uIGwoKXtpZihwPj1mKXRocm93IEVycm9yKGBJbnZhbGlkIGJ5dGUgaW5kZXhgKTt2YXIgZT1kW3BdJjI1NTtpZihwKyssKGUmMTkyKT09MTI4KXJldHVybiBlJjYzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9ZnVuY3Rpb24gdShlKXt2YXIgdCxuLHIsaSxvO2lmKHA+Zil0aHJvdyBFcnJvcihgSW52YWxpZCBieXRlIGluZGV4YCk7aWYocD09ZilyZXR1cm4hMTtpZih0PWRbcF0mMjU1LHArKywhKHQmMTI4KSlyZXR1cm4gdDtpZigodCYyMjQpPT0xOTIpe2lmKG49bCgpLG89KHQmMzEpPDw2fG4sbz49MTI4KXJldHVybiBvO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQwKT09MjI0KXtpZihuPWwoKSxyPWwoKSxvPSh0JjE1KTw8MTJ8bjw8NnxyLG8+PTIwNDgpcmV0dXJuIGEobyxlKT9vOjY1NTMzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQ4KT09MjQwJiYobj1sKCkscj1sKCksaT1sKCksbz0odCY3KTw8MTh8bjw8MTJ8cjw8NnxpLG8+PTY1NTM2JiZvPD0xMTE0MTExKSlyZXR1cm4gbzt0aHJvdyBFcnJvcihgSW52YWxpZCBVVEYtOCBkZXRlY3RlZGApfXZhciBkLGYscDtmdW5jdGlvbiBtKGUsdCl7dHx8PXt9O3ZhciBuPSExIT09dC5zdHJpY3Q7ZD1yKGUpLGY9ZC5sZW5ndGgscD0wO2Zvcih2YXIgYT1bXSxvOyhvPXUobikpIT09ITE7KWEucHVzaChvKTtyZXR1cm4gaShhKX10LmV4cG9ydHM9e3ZlcnNpb246YDIuMS4yYCxlbmNvZGU6YyxkZWNvZGU6bX19KSksWXM9cygoZT0+eyhmdW5jdGlvbih0KXtlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgbj1uZXcgVWludDhBcnJheShlKSxyLGk9bi5sZW5ndGgsYT1gYDtmb3Iocj0wO3I8aTtyKz0zKWErPXRbbltyXT4+Ml0sYSs9dFsobltyXSYzKTw8NHxuW3IrMV0+PjRdLGErPXRbKG5bcisxXSYxNSk8PDJ8bltyKzJdPj42XSxhKz10W25bcisyXSY2M107cmV0dXJuIGklMz09Mj9hPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkrYD1gOmklMz09MSYmKGE9YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0yKStgPT1gKSxhfSxlLmRlY29kZT1mdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCouNzUscj1lLmxlbmd0aCxpLGE9MCxvLHMsYyxsO2VbZS5sZW5ndGgtMV09PT1gPWAmJihuLS0sZVtlLmxlbmd0aC0yXT09PWA9YCYmbi0tKTt2YXIgdT1uZXcgQXJyYXlCdWZmZXIobiksZD1uZXcgVWludDhBcnJheSh1KTtmb3IoaT0wO2k8cjtpKz00KW89dC5pbmRleE9mKGVbaV0pLHM9dC5pbmRleE9mKGVbaSsxXSksYz10LmluZGV4T2YoZVtpKzJdKSxsPXQuaW5kZXhPZihlW2krM10pLGRbYSsrXT1vPDwyfHM+PjQsZFthKytdPShzJjE1KTw8NHxjPj4yLGRbYSsrXT0oYyYzKTw8NnxsJjYzO3JldHVybiB1fX0pKGBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCl9KSksWHM9cygoKGUsdCk9Pnt2YXIgbj1uPT09dm9pZCAwP3R5cGVvZiBXZWJLaXRCbG9iQnVpbGRlcjxgdWA/V2ViS2l0QmxvYkJ1aWxkZXI6dHlwZW9mIE1TQmxvYkJ1aWxkZXI8YHVgP01TQmxvYkJ1aWxkZXI6dHlwZW9mIE1vekJsb2JCdWlsZGVyPGB1YD9Nb3pCbG9iQnVpbGRlcjohMTpuLHI9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYihbYGhpYF0pLnNpemU9PT0yfWNhdGNoe3JldHVybiExfX0pKCksaT1yJiYoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShbMSwyXSldKS5zaXplPT09Mn1jYXRjaHtyZXR1cm4hMX19KSgpLGE9biYmbi5wcm90b3R5cGUuYXBwZW5kJiZuLnByb3RvdHlwZS5nZXRCbG9iO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PWUuYnVmZmVyO2lmKGUuYnl0ZUxlbmd0aCE9PXQuYnl0ZUxlbmd0aCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoZS5ieXRlTGVuZ3RoKTtuLnNldChuZXcgVWludDhBcnJheSh0LGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpKSx0PW4uYnVmZmVyfXJldHVybiB0fXJldHVybiBlfSl9ZnVuY3Rpb24gcyhlLHQpe3R8fD17fTt2YXIgcj1uZXcgbjtyZXR1cm4gbyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IuYXBwZW5kKGUpfSksdC50eXBlP3IuZ2V0QmxvYih0LnR5cGUpOnIuZ2V0QmxvYigpfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbmV3IEJsb2IobyhlKSx0fHx7fSl9dHlwZW9mIEJsb2I8YHVgJiYocy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUsYy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUpLHQuZXhwb3J0cz0oZnVuY3Rpb24oKXtpZihyKXJldHVybiBpP0Jsb2I6YztpZihhKXJldHVybiBzfSkoKX0pKSxacz1zKChlPT57dmFyIHQ9V3MoKSxuPUdzKCkscj1LcygpLGk9cXMoKSxhPUpzKCksbzt0eXBlb2YgQXJyYXlCdWZmZXI8YHVgJiYobz1ZcygpKTt2YXIgcz10eXBlb2YgbmF2aWdhdG9yPGB1YCYmL0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGM9dHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGw9c3x8YztlLnByb3RvY29sPTM7dmFyIHU9ZS5wYWNrZXRzPXtvcGVuOjAsY2xvc2U6MSxwaW5nOjIscG9uZzozLG1lc3NhZ2U6NCx1cGdyYWRlOjUsbm9vcDo2fSxkPXQodSksZj17dHlwZTpgZXJyb3JgLGRhdGE6YHBhcnNlciBlcnJvcmB9LHA9WHMoKTtlLmVuY29kZVBhY2tldD1mdW5jdGlvbihlLHQsbixyKXt0eXBlb2YgdD09YGZ1bmN0aW9uYCYmKHI9dCx0PSExKSx0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpPWUuZGF0YT09PXZvaWQgMD92b2lkIDA6ZS5kYXRhLmJ1ZmZlcnx8ZS5kYXRhO2lmKHR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJmkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gaChlLHQscik7aWYocCE9PXZvaWQgMCYmaSBpbnN0YW5jZW9mIHApcmV0dXJuIF8oZSx0LHIpO2lmKGkmJmkuYmFzZTY0KXJldHVybiBtKGUscik7dmFyIG89dVtlLnR5cGVdO3JldHVybiBlLmRhdGEhPT12b2lkIDAmJihvKz1uP2EuZW5jb2RlKFN0cmluZyhlLmRhdGEpLHtzdHJpY3Q6ITF9KTpTdHJpbmcoZS5kYXRhKSkscihgYCtvKX07ZnVuY3Rpb24gbSh0LG4pe3JldHVybiBuKGBiYCtlLnBhY2tldHNbdC50eXBlXSt0LmRhdGEuZGF0YSl9ZnVuY3Rpb24gaCh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7dmFyIGk9dC5kYXRhLGE9bmV3IFVpbnQ4QXJyYXkoaSksbz1uZXcgVWludDhBcnJheSgxK2kuYnl0ZUxlbmd0aCk7b1swXT11W3QudHlwZV07Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspb1tzKzFdPWFbc107cmV0dXJuIHIoby5idWZmZXIpfWZ1bmN0aW9uIGcodCxuLHIpe2lmKCFuKXJldHVybiBlLmVuY29kZUJhc2U2NFBhY2tldCh0LHIpO3ZhciBpPW5ldyBGaWxlUmVhZGVyO3JldHVybiBpLm9ubG9hZD1mdW5jdGlvbigpe2UuZW5jb2RlUGFja2V0KHt0eXBlOnQudHlwZSxkYXRhOmkucmVzdWx0fSxuLCEwLHIpfSxpLnJlYWRBc0FycmF5QnVmZmVyKHQuZGF0YSl9ZnVuY3Rpb24gXyh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7aWYobClyZXR1cm4gZyh0LG4scik7dmFyIGk9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuIGlbMF09dVt0LnR5cGVdLHIobmV3IHAoW2kuYnVmZmVyLHQuZGF0YV0pKX1lLmVuY29kZUJhc2U2NFBhY2tldD1mdW5jdGlvbih0LG4pe3ZhciByPWBiYCtlLnBhY2tldHNbdC50eXBlXTtpZihwIT09dm9pZCAwJiZ0LmRhdGEgaW5zdGFuY2VvZiBwKXt2YXIgaT1uZXcgRmlsZVJlYWRlcjtyZXR1cm4gaS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT1pLnJlc3VsdC5zcGxpdChgLGApWzFdO24ocitlKX0saS5yZWFkQXNEYXRhVVJMKHQuZGF0YSl9dmFyIGE7dHJ5e2E9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KHQuZGF0YSkpfWNhdGNoe2Zvcih2YXIgbz1uZXcgVWludDhBcnJheSh0LmRhdGEpLHM9QXJyYXkoby5sZW5ndGgpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW2NdPW9bY107YT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscyl9cmV0dXJuIHIrPWJ0b2EoYSksbihyKX0sZS5kZWNvZGVQYWNrZXQ9ZnVuY3Rpb24odCxuLGkpe2lmKHQ9PT12b2lkIDApcmV0dXJuIGY7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXtpZih0LmNoYXJBdCgwKT09PWBiYClyZXR1cm4gZS5kZWNvZGVCYXNlNjRQYWNrZXQodC5zdWJzdHIoMSksbik7aWYoaSYmKHQ9dih0KSx0PT09ITEpKXJldHVybiBmO3ZhciBhPXQuY2hhckF0KDApO3JldHVybiBOdW1iZXIoYSkhPWF8fCFkW2FdP2Y6dC5sZW5ndGg+MT97dHlwZTpkW2FdLGRhdGE6dC5zdWJzdHJpbmcoMSl9Ont0eXBlOmRbYV19fXZhciBhPW5ldyBVaW50OEFycmF5KHQpWzBdLG89cih0LDEpO3JldHVybiBwJiZuPT09YGJsb2JgJiYobz1uZXcgcChbb10pKSx7dHlwZTpkW2FdLGRhdGE6b319O2Z1bmN0aW9uIHYoZSl7dHJ5e2U9YS5kZWNvZGUoZSx7c3RyaWN0OiExfSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuIGV9ZS5kZWNvZGVCYXNlNjRQYWNrZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kW2UuY2hhckF0KDApXTtpZighbylyZXR1cm57dHlwZTpuLGRhdGE6e2Jhc2U2NDohMCxkYXRhOmUuc3Vic3RyKDEpfX07dmFyIHI9by5kZWNvZGUoZS5zdWJzdHIoMSkpO3JldHVybiB0PT09YGJsb2JgJiZwJiYocj1uZXcgcChbcl0pKSx7dHlwZTpuLGRhdGE6cn19LGUuZW5jb2RlUGF5bG9hZD1mdW5jdGlvbih0LHIsaSl7dHlwZW9mIHI9PWBmdW5jdGlvbmAmJihpPXIscj1udWxsKTt2YXIgYT1uKHQpO2lmKHImJmEpcmV0dXJuIHAmJiFsP2UuZW5jb2RlUGF5bG9hZEFzQmxvYih0LGkpOmUuZW5jb2RlUGF5bG9hZEFzQXJyYXlCdWZmZXIodCxpKTtpZighdC5sZW5ndGgpcmV0dXJuIGkoYDA6YCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5sZW5ndGgrYDpgK2V9ZnVuY3Rpb24gcyh0LG4pe2UuZW5jb2RlUGFja2V0KHQsYT9yOiExLCExLGZ1bmN0aW9uKGUpe24obnVsbCxvKGUpKX0pfXkodCxzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodC5qb2luKGBgKSl9KX07ZnVuY3Rpb24geShlLHQsbil7Zm9yKHZhciByPUFycmF5KGUubGVuZ3RoKSxhPWkoZS5sZW5ndGgsbiksbz1mdW5jdGlvbihlLG4saSl7dChuLGZ1bmN0aW9uKHQsbil7cltlXT1uLGkodCxyKX0pfSxzPTA7czxlLmxlbmd0aDtzKyspbyhzLGVbc10sYSl9ZS5kZWNvZGVQYXlsb2FkPWZ1bmN0aW9uKHQsbixyKXtpZih0eXBlb2YgdCE9YHN0cmluZ2ApcmV0dXJuIGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5KHQsbixyKTt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpO2lmKHQ9PT1gYClyZXR1cm4gcihmLDAsMSk7Zm9yKHZhciBhPWBgLG8scyxjPTAsbD10Lmxlbmd0aDtjPGw7YysrKXt2YXIgdT10LmNoYXJBdChjKTtpZih1IT09YDpgKXthKz11O2NvbnRpbnVlfWlmKGE9PT1gYHx8YSE9KG89TnVtYmVyKGEpKXx8KHM9dC5zdWJzdHIoYysxLG8pLGEhPXMubGVuZ3RoKSlyZXR1cm4gcihmLDAsMSk7aWYocy5sZW5ndGgpe2lmKGk9ZS5kZWNvZGVQYWNrZXQocyxuLCExKSxmLnR5cGU9PT1pLnR5cGUmJmYuZGF0YT09PWkuZGF0YSlyZXR1cm4gcihmLDAsMSk7aWYoITE9PT1yKGksYytvLGwpKXJldHVybn1jKz1vLGE9YGB9aWYoYSE9PWBgKXJldHVybiByKGYsMCwxKX0sZS5lbmNvZGVQYXlsb2FkQXNBcnJheUJ1ZmZlcj1mdW5jdGlvbih0LG4pe2lmKCF0Lmxlbmd0aClyZXR1cm4gbihuZXcgQXJyYXlCdWZmZXIoMCkpO2Z1bmN0aW9uIHIodCxuKXtlLmVuY29kZVBhY2tldCh0LCEwLCEwLGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KX15KHQscixmdW5jdGlvbihlLHQpe3ZhciByPXQucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ9PWBzdHJpbmdgP3QubGVuZ3RoOnQuYnl0ZUxlbmd0aDtyZXR1cm4gZStuLnRvU3RyaW5nKCkubGVuZ3RoK24rMn0sMCksaT1uZXcgVWludDhBcnJheShyKSxhPTA7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZT09YHN0cmluZ2Asbj1lO2lmKHQpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbz0wO288ZS5sZW5ndGg7bysrKXJbb109ZS5jaGFyQ29kZUF0KG8pO249ci5idWZmZXJ9dD9pW2ErK109MDppW2ErK109MTtmb3IodmFyIHM9bi5ieXRlTGVuZ3RoLnRvU3RyaW5nKCksbz0wO288cy5sZW5ndGg7bysrKWlbYSsrXT1wYXJzZUludChzW29dKTtpW2ErK109MjU1O2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShuKSxvPTA7bzxyLmxlbmd0aDtvKyspaVthKytdPXJbb119KSxuKGkuYnVmZmVyKX0pfSxlLmVuY29kZVBheWxvYWRBc0Jsb2I9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiByKHQsbil7ZS5lbmNvZGVQYWNrZXQodCwhMCwhMCxmdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtpZih0WzBdPTEsdHlwZW9mIGU9PWBzdHJpbmdgKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLGk9MDtpPGUubGVuZ3RoO2krKylyW2ldPWUuY2hhckNvZGVBdChpKTtlPXIuYnVmZmVyLHRbMF09MH1mb3IodmFyIGE9KGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9lLmJ5dGVMZW5ndGg6ZS5zaXplKS50b1N0cmluZygpLG89bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgrMSksaT0wO2k8YS5sZW5ndGg7aSsrKW9baV09cGFyc2VJbnQoYVtpXSk7b1thLmxlbmd0aF09MjU1LHAmJm4obnVsbCxuZXcgcChbdC5idWZmZXIsby5idWZmZXIsZV0pKX0pfXkodCxyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4obmV3IHAodCkpfSl9LGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5PWZ1bmN0aW9uKHQsbixpKXt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKGk9bixuPW51bGwpO2Zvcih2YXIgYT10LG89W107YS5ieXRlTGVuZ3RoPjA7KXtmb3IodmFyIHM9bmV3IFVpbnQ4QXJyYXkoYSksYz1zWzBdPT09MCxsPWBgLHU9MTtzW3VdIT09MjU1O3UrKyl7aWYobC5sZW5ndGg+MzEwKXJldHVybiBpKGYsMCwxKTtsKz1zW3VdfWE9cihhLDIrbC5sZW5ndGgpLGw9cGFyc2VJbnQobCk7dmFyIGQ9cihhLDAsbCk7aWYoYyl0cnl7ZD1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoZCkpfWNhdGNoe3ZhciBwPW5ldyBVaW50OEFycmF5KGQpO2Q9YGA7Zm9yKHZhciB1PTA7dTxwLmxlbmd0aDt1KyspZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3VdKX1vLnB1c2goZCksYT1yKGEsbCl9dmFyIG09by5sZW5ndGg7by5mb3JFYWNoKGZ1bmN0aW9uKHQscil7aShlLmRlY29kZVBhY2tldCh0LG4sITApLHIsbSl9KX19KSksUXM9cygoKGUsdCk9Pnt2YXIgbj1acygpLHI9SXMoKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUpe3RoaXMucGF0aD1lLnBhdGgsdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lLHRoaXMucG9ydD1lLnBvcnQsdGhpcy5zZWN1cmU9ZS5zZWN1cmUsdGhpcy5xdWVyeT1lLnF1ZXJ5LHRoaXMudGltZXN0YW1wUGFyYW09ZS50aW1lc3RhbXBQYXJhbSx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPWUudGltZXN0YW1wUmVxdWVzdHMsdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMuYWdlbnQ9ZS5hZ2VudHx8ITEsdGhpcy5zb2NrZXQ9ZS5zb2NrZXQsdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLndpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFscyx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5mb3JjZU5vZGU9ZS5mb3JjZU5vZGUsdGhpcy5pc1JlYWN0TmF0aXZlPWUuaXNSZWFjdE5hdGl2ZSx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0aGlzLmxvY2FsQWRkcmVzcz1lLmxvY2FsQWRkcmVzc31yKGkucHJvdG90eXBlKSxpLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49RXJyb3IoZSk7cmV0dXJuIG4udHlwZT1gVHJhbnNwb3J0RXJyb3JgLG4uZGVzY3JpcHRpb249dCx0aGlzLmVtaXQoYGVycm9yYCxuKSx0aGlzfSxpLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgfHx0aGlzLnJlYWR5U3RhdGU9PT1gYCkmJih0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuZG9PcGVuKCkpLHRoaXN9LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKSYmKHRoaXMuZG9DbG9zZSgpLHRoaXMub25DbG9zZSgpKSx0aGlzfSxpLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYCl0aGlzLndyaXRlKGUpO2Vsc2UgdGhyb3cgRXJyb3IoYFRyYW5zcG9ydCBub3Qgb3BlbmApfSxpLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0KGBvcGVuYCl9LGkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1uLmRlY29kZVBhY2tldChlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO3RoaXMub25QYWNrZXQodCl9LGkucHJvdG90eXBlLm9uUGFja2V0PWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0saS5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCl9fSkpLCRzPXMoKGU9PntlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdD1gYDtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodC5sZW5ndGgmJih0Kz1gJmApLHQrPWVuY29kZVVSSUNvbXBvbmVudChuKStgPWArZW5jb2RlVVJJQ29tcG9uZW50KGVbbl0pKTtyZXR1cm4gdH0sZS5kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49ZS5zcGxpdChgJmApLHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBhPW5bcl0uc3BsaXQoYD1gKTt0W2RlY29kZVVSSUNvbXBvbmVudChhWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pfXJldHVybiB0fX0pKSxlYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbixlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfX0pKSx0Yz1zKCgoZSx0KT0+e3ZhciBuPWAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fYC5zcGxpdChgYCkscj02NCxpPXt9LGE9MCxvPTAscztmdW5jdGlvbiBjKGUpe3ZhciB0PWBgO2RvIHQ9bltlJXJdK3QsZT1NYXRoLmZsb29yKGUvcik7d2hpbGUoZT4wKTtyZXR1cm4gdH1mdW5jdGlvbiBsKGUpe3ZhciB0PTA7Zm9yKG89MDtvPGUubGVuZ3RoO28rKyl0PXQqcitpW2UuY2hhckF0KG8pXTtyZXR1cm4gdH1mdW5jdGlvbiB1KCl7dmFyIGU9YygrbmV3IERhdGUpO3JldHVybiBlPT09cz9lK2AuYCtjKGErKyk6KGE9MCxzPWUpfWZvcig7bzxyO28rKylpW25bb11dPW87dS5lbmNvZGU9Yyx1LmRlY29kZT1sLHQuZXhwb3J0cz11fSkpLG5jPXMoKChlLHQpPT57dmFyIG49UXMoKSxyPSRzKCksaT1acygpLGE9ZWMoKSxvPXRjKCkscz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmdgKTt0LmV4cG9ydHM9bDt2YXIgYz0oZnVuY3Rpb24oKXtyZXR1cm4gbmV3KFVzKCkpKHt4ZG9tYWluOiExfSkucmVzcG9uc2VUeXBlIT1udWxsfSkoKTtmdW5jdGlvbiBsKGUpe3ZhciB0PWUmJmUuZm9yY2VCYXNlNjQ7KCFjfHx0KSYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLG4uY2FsbCh0aGlzLGUpfWEobCxuKSxsLnByb3RvdHlwZS5uYW1lPWBwb2xsaW5nYCxsLnByb3RvdHlwZS5kb09wZW49ZnVuY3Rpb24oKXt0aGlzLnBvbGwoKX0sbC5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnJlYWR5U3RhdGU9YHBhdXNpbmdgO2Z1bmN0aW9uIG4oKXtzKGBwYXVzZWRgKSx0LnJlYWR5U3RhdGU9YHBhdXNlZGAsZSgpfWlmKHRoaXMucG9sbGluZ3x8IXRoaXMud3JpdGFibGUpe3ZhciByPTA7dGhpcy5wb2xsaW5nJiYocyhgd2UgYXJlIGN1cnJlbnRseSBwb2xsaW5nIC0gd2FpdGluZyB0byBwYXVzZWApLHIrKyx0aGlzLm9uY2UoYHBvbGxDb21wbGV0ZWAsZnVuY3Rpb24oKXtzKGBwcmUtcGF1c2UgcG9sbGluZyBjb21wbGV0ZWApLC0tcnx8bigpfSkpLHRoaXMud3JpdGFibGV8fChzKGB3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlYCkscisrLHRoaXMub25jZShgZHJhaW5gLGZ1bmN0aW9uKCl7cyhgcHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVgKSwtLXJ8fG4oKX0pKX1lbHNlIG4oKX0sbC5wcm90b3R5cGUucG9sbD1mdW5jdGlvbigpe3MoYHBvbGxpbmdgKSx0aGlzLnBvbGxpbmc9ITAsdGhpcy5kb1BvbGwoKSx0aGlzLmVtaXQoYHBvbGxgKX0sbC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cyhgcG9sbGluZyBnb3QgZGF0YSAlc2AsZSksaS5kZWNvZGVQYXlsb2FkKGUsdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSxmdW5jdGlvbihlLG4scil7aWYodC5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0Lm9uT3BlbigpLGUudHlwZT09PWBjbG9zZWApcmV0dXJuIHQub25DbG9zZSgpLCExO3Qub25QYWNrZXQoZSl9KSx0aGlzLnJlYWR5U3RhdGUhPT1gY2xvc2VkYCYmKHRoaXMucG9sbGluZz0hMSx0aGlzLmVtaXQoYHBvbGxDb21wbGV0ZWApLHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD90aGlzLnBvbGwoKTpzKGBpZ25vcmluZyBwb2xsIC0gdHJhbnNwb3J0IHN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSkpfSxsLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztmdW5jdGlvbiB0KCl7cyhgd3JpdGluZyBjbG9zZSBwYWNrZXRgKSxlLndyaXRlKFt7dHlwZTpgY2xvc2VgfV0pfXRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD8ocyhgdHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nYCksdCgpKToocyhgdHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlYCksdGhpcy5vbmNlKGBvcGVuYCx0KSl9LGwucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy53cml0YWJsZT0hMTt2YXIgbj1mdW5jdGlvbigpe3Qud3JpdGFibGU9ITAsdC5lbWl0KGBkcmFpbmApfTtpLmVuY29kZVBheWxvYWQoZSx0aGlzLnN1cHBvcnRzQmluYXJ5LGZ1bmN0aW9uKGUpe3QuZG9Xcml0ZShlLG4pfSl9LGwucHJvdG90eXBlLnVyaT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnl8fHt9LHQ9dGhpcy5zZWN1cmU/YGh0dHBzYDpgaHR0cGAsbj1gYDshMSE9PXRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksIXRoaXMuc3VwcG9ydHNCaW5hcnkmJiFlLnNpZCYmKGUuYjY0PTEpLGU9ci5lbmNvZGUoZSksdGhpcy5wb3J0JiYodD09PWBodHRwc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YGh0dHBgJiZOdW1iZXIodGhpcy5wb3J0KSE9PTgwKSYmKG49YDpgK3RoaXMucG9ydCksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgaT10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhpP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfX0pKSxyYz1zKCgoZSx0KT0+e3ZhciBuPVVzKCkscj1uYygpLGk9SXMoKSxhPWVjKCksbz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmcteGhyYCkscz1IcygpO3QuZXhwb3J0cz1sLHQuZXhwb3J0cy5SZXF1ZXN0PXU7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe2lmKHIuY2FsbCh0aGlzLGUpLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0eXBlb2YgbG9jYXRpb248YHVgKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgLG49bG9jYXRpb24ucG9ydDtufHw9dD80NDM6ODAsdGhpcy54ZD10eXBlb2YgbG9jYXRpb248YHVgJiZlLmhvc3RuYW1lIT09bG9jYXRpb24uaG9zdG5hbWV8fG4hPT1lLnBvcnQsdGhpcy54cz1lLnNlY3VyZSE9PXR9fWEobCxyKSxsLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxsLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiBlfHw9e30sZS51cmk9dGhpcy51cmkoKSxlLnhkPXRoaXMueGQsZS54cz10aGlzLnhzLGUuYWdlbnQ9dGhpcy5hZ2VudHx8ITEsZS5zdXBwb3J0c0JpbmFyeT10aGlzLnN1cHBvcnRzQmluYXJ5LGUuZW5hYmxlc1hEUj10aGlzLmVuYWJsZXNYRFIsZS53aXRoQ3JlZGVudGlhbHM9dGhpcy53aXRoQ3JlZGVudGlhbHMsZS5wZng9dGhpcy5wZngsZS5rZXk9dGhpcy5rZXksZS5wYXNzcGhyYXNlPXRoaXMucGFzc3BocmFzZSxlLmNlcnQ9dGhpcy5jZXJ0LGUuY2E9dGhpcy5jYSxlLmNpcGhlcnM9dGhpcy5jaXBoZXJzLGUucmVqZWN0VW5hdXRob3JpemVkPXRoaXMucmVqZWN0VW5hdXRob3JpemVkLGUucmVxdWVzdFRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCxlLmV4dHJhSGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyxuZXcgdShlKX0sbC5wcm90b3R5cGUuZG9Xcml0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlIT1gc3RyaW5nYCYmZSE9PXZvaWQgMCxyPXRoaXMucmVxdWVzdCh7bWV0aG9kOmBQT1NUYCxkYXRhOmUsaXNCaW5hcnk6bn0pLGk9dGhpcztyLm9uKGBzdWNjZXNzYCx0KSxyLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7aS5vbkVycm9yKGB4aHIgcG9zdCBlcnJvcmAsZSl9KSx0aGlzLnNlbmRYaHI9cn0sbC5wcm90b3R5cGUuZG9Qb2xsPWZ1bmN0aW9uKCl7byhgeGhyIHBvbGxgKTt2YXIgZT10aGlzLnJlcXVlc3QoKSx0PXRoaXM7ZS5vbihgZGF0YWAsZnVuY3Rpb24oZSl7dC5vbkRhdGEoZSl9KSxlLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7dC5vbkVycm9yKGB4aHIgcG9sbCBlcnJvcmAsZSl9KSx0aGlzLnBvbGxYaHI9ZX07ZnVuY3Rpb24gdShlKXt0aGlzLm1ldGhvZD1lLm1ldGhvZHx8YEdFVGAsdGhpcy51cmk9ZS51cmksdGhpcy54ZD0hIWUueGQsdGhpcy54cz0hIWUueHMsdGhpcy5hc3luYz0hMSE9PWUuYXN5bmMsdGhpcy5kYXRhPWUuZGF0YT09PXZvaWQgMD9udWxsOmUuZGF0YSx0aGlzLmFnZW50PWUuYWdlbnQsdGhpcy5pc0JpbmFyeT1lLmlzQmluYXJ5LHRoaXMuc3VwcG9ydHNCaW5hcnk9ZS5zdXBwb3J0c0JpbmFyeSx0aGlzLmVuYWJsZXNYRFI9ZS5lbmFibGVzWERSLHRoaXMud2l0aENyZWRlbnRpYWxzPWUud2l0aENyZWRlbnRpYWxzLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdGhpcy5jcmVhdGUoKX1pZihpKHUucHJvdG90eXBlKSx1LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT17YWdlbnQ6dGhpcy5hZ2VudCx4ZG9tYWluOnRoaXMueGQseHNjaGVtZTp0aGlzLnhzLGVuYWJsZXNYRFI6dGhpcy5lbmFibGVzWERSfTtlLnBmeD10aGlzLnBmeCxlLmtleT10aGlzLmtleSxlLnBhc3NwaHJhc2U9dGhpcy5wYXNzcGhyYXNlLGUuY2VydD10aGlzLmNlcnQsZS5jYT10aGlzLmNhLGUuY2lwaGVycz10aGlzLmNpcGhlcnMsZS5yZWplY3RVbmF1dGhvcml6ZWQ9dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ7dmFyIHQ9dGhpcy54aHI9bmV3IG4oZSkscj10aGlzO3RyeXtvKGB4aHIgb3BlbiAlczogJXNgLHRoaXMubWV0aG9kLHRoaXMudXJpKSx0Lm9wZW4odGhpcy5tZXRob2QsdGhpcy51cmksdGhpcy5hc3luYyk7dHJ5e2lmKHRoaXMuZXh0cmFIZWFkZXJzKWZvcih2YXIgaSBpbiB0LnNldERpc2FibGVIZWFkZXJDaGVjayYmdC5zZXREaXNhYmxlSGVhZGVyQ2hlY2soITApLHRoaXMuZXh0cmFIZWFkZXJzKXRoaXMuZXh0cmFIZWFkZXJzLmhhc093blByb3BlcnR5KGkpJiZ0LnNldFJlcXVlc3RIZWFkZXIoaSx0aGlzLmV4dHJhSGVhZGVyc1tpXSl9Y2F0Y2h7fWlmKHRoaXMubWV0aG9kPT09YFBPU1RgKXRyeXt0aGlzLmlzQmluYXJ5P3Quc2V0UmVxdWVzdEhlYWRlcihgQ29udGVudC10eXBlYCxgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYCk6dC5zZXRSZXF1ZXN0SGVhZGVyKGBDb250ZW50LXR5cGVgLGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgKX1jYXRjaHt9dHJ5e3Quc2V0UmVxdWVzdEhlYWRlcihgQWNjZXB0YCxgKi8qYCl9Y2F0Y2h7fWB3aXRoQ3JlZGVudGlhbHNgaW4gdCYmKHQud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSx0aGlzLnJlcXVlc3RUaW1lb3V0JiYodC50aW1lb3V0PXRoaXMucmVxdWVzdFRpbWVvdXQpLHRoaXMuaGFzWERSKCk/KHQub25sb2FkPWZ1bmN0aW9uKCl7ci5vbkxvYWQoKX0sdC5vbmVycm9yPWZ1bmN0aW9uKCl7ci5vbkVycm9yKHQucmVzcG9uc2VUZXh0KX0pOnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYodC5yZWFkeVN0YXRlPT09Mil0cnl7dmFyIGU9dC5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCk7KHIuc3VwcG9ydHNCaW5hcnkmJmU9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8ZT09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmKHQucmVzcG9uc2VUeXBlPWBhcnJheWJ1ZmZlcmApfWNhdGNoe310LnJlYWR5U3RhdGU9PT00JiYodC5zdGF0dXM9PT0yMDB8fHQuc3RhdHVzPT09MTIyMz9yLm9uTG9hZCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uRXJyb3IodHlwZW9mIHQuc3RhdHVzPT1gbnVtYmVyYD90LnN0YXR1czowKX0sMCkpfSxvKGB4aHIgZGF0YSAlc2AsdGhpcy5kYXRhKSx0LnNlbmQodGhpcy5kYXRhKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbkVycm9yKGUpfSwwKTtyZXR1cm59dHlwZW9mIGRvY3VtZW50PGB1YCYmKHRoaXMuaW5kZXg9dS5yZXF1ZXN0c0NvdW50KyssdS5yZXF1ZXN0c1t0aGlzLmluZGV4XT10aGlzKX0sdS5wcm90b3R5cGUub25TdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KGBzdWNjZXNzYCksdGhpcy5jbGVhbnVwKCl9LHUucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt0aGlzLmVtaXQoYGRhdGFgLGUpLHRoaXMub25TdWNjZXNzKCl9LHUucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5jbGVhbnVwKCEwKX0sdS5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbihlKXtpZighKHRoaXMueGhyPT09dm9pZCAwfHx0aGlzLnhocj09PW51bGwpKXtpZih0aGlzLmhhc1hEUigpP3RoaXMueGhyLm9ubG9hZD10aGlzLnhoci5vbmVycm9yPWM6dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPWMsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaHt9dHlwZW9mIGRvY3VtZW50PGB1YCYmZGVsZXRlIHUucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19LHUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe3ZhciBlO3RyeXt2YXIgdDt0cnl7dD10aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCl9Y2F0Y2h7fWU9KHQ9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8dD09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmdGhpcy54aHIucmVzcG9uc2V8fHRoaXMueGhyLnJlc3BvbnNlVGV4dH1jYXRjaChlKXt0aGlzLm9uRXJyb3IoZSl9ZSE9bnVsbCYmdGhpcy5vbkRhdGEoZSl9LHUucHJvdG90eXBlLmhhc1hEUj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhdGhpcy54cyYmdGhpcy5lbmFibGVzWERSfSx1LnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuY2xlYW51cCgpfSx1LnJlcXVlc3RzQ291bnQ9MCx1LnJlcXVlc3RzPXt9LHR5cGVvZiBkb2N1bWVudDxgdWApe2lmKHR5cGVvZiBhdHRhY2hFdmVudD09YGZ1bmN0aW9uYClhdHRhY2hFdmVudChgb251bmxvYWRgLGYpO2Vsc2UgaWYodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmApe3ZhciBkPWBvbnBhZ2VoaWRlYGluIHM/YHBhZ2VoaWRlYDpgdW5sb2FkYDthZGRFdmVudExpc3RlbmVyKGQsZiwhMSl9fWZ1bmN0aW9uIGYoKXtmb3IodmFyIGUgaW4gdS5yZXF1ZXN0cyl1LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGUpJiZ1LnJlcXVlc3RzW2VdLmFib3J0KCl9fSkpLGljPXMoKChlLHQpPT57dmFyIG49bmMoKSxyPWVjKCksaT1IcygpO3QuZXhwb3J0cz1sO3ZhciBhPS9cbi9nLG89L1xcbi9nLHM7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe24uY2FsbCh0aGlzLGUpLHRoaXMucXVlcnk9dGhpcy5xdWVyeXx8e30sc3x8PWkuX19fZWlvPWkuX19fZWlvfHxbXSx0aGlzLmluZGV4PXMubGVuZ3RoO3ZhciB0PXRoaXM7cy5wdXNoKGZ1bmN0aW9uKGUpe3Qub25EYXRhKGUpfSksdGhpcy5xdWVyeS5qPXRoaXMuaW5kZXgsdHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmAmJmFkZEV2ZW50TGlzdGVuZXIoYGJlZm9yZXVubG9hZGAsZnVuY3Rpb24oKXt0LnNjcmlwdCYmKHQuc2NyaXB0Lm9uZXJyb3I9Yyl9LCExKX1yKGwsbiksbC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITEsbC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3RoaXMuc2NyaXB0JiY9KHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpLG51bGwpLHRoaXMuZm9ybSYmKHRoaXMuZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZm9ybSksdGhpcy5mb3JtPW51bGwsdGhpcy5pZnJhbWU9bnVsbCksbi5wcm90b3R5cGUuZG9DbG9zZS5jYWxsKHRoaXMpfSxsLnByb3RvdHlwZS5kb1BvbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dGhpcy5zY3JpcHQmJj0odGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCksbnVsbCksdC5hc3luYz0hMCx0LnNyYz10aGlzLnVyaSgpLHQub25lcnJvcj1mdW5jdGlvbih0KXtlLm9uRXJyb3IoYGpzb25wIHBvbGwgZXJyb3JgLHQpfTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgc2NyaXB0YClbMF07bj9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsbik6KGRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHQpLHRoaXMuc2NyaXB0PXQsdHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9nZWNrby9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9LDEwMCl9LGwucHJvdG90eXBlLmRvV3JpdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCF0aGlzLmZvcm0pe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGZvcm1gKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHRleHRhcmVhYCkscz10aGlzLmlmcmFtZUlkPWBlaW9faWZyYW1lX2ArdGhpcy5pbmRleCxjO3IuY2xhc3NOYW1lPWBzb2NrZXRpb2Asci5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHIuc3R5bGUudG9wPWAtMTAwMHB4YCxyLnN0eWxlLmxlZnQ9YC0xMDAwcHhgLHIudGFyZ2V0PXMsci5tZXRob2Q9YFBPU1RgLHIuc2V0QXR0cmlidXRlKGBhY2NlcHQtY2hhcnNldGAsYHV0Zi04YCksaS5uYW1lPWBkYCxyLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksdGhpcy5mb3JtPXIsdGhpcy5hcmVhPWl9dGhpcy5mb3JtLmFjdGlvbj10aGlzLnVyaSgpO2Z1bmN0aW9uIGwoKXt1KCksdCgpfWZ1bmN0aW9uIHUoKXtpZihuLmlmcmFtZSl0cnl7bi5mb3JtLnJlbW92ZUNoaWxkKG4uaWZyYW1lKX1jYXRjaChlKXtuLm9uRXJyb3IoYGpzb25wIHBvbGxpbmcgaWZyYW1lIHJlbW92YWwgZXJyb3JgLGUpfXRyeXt2YXIgZT1gPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6MCIgbmFtZT0iYCtuLmlmcmFtZUlkK2AiPmA7Yz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpfWNhdGNoe2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaWZyYW1lYCksYy5uYW1lPW4uaWZyYW1lSWQsYy5zcmM9YGphdmFzY3JpcHQ6MGB9Yy5pZD1uLmlmcmFtZUlkLG4uZm9ybS5hcHBlbmRDaGlsZChjKSxuLmlmcmFtZT1jfXUoKSxlPWUucmVwbGFjZShvLGBcXApgKSx0aGlzLmFyZWEudmFsdWU9ZS5yZXBsYWNlKGEsYFxcbmApO3RyeXt0aGlzLmZvcm0uc3VibWl0KCl9Y2F0Y2h7fXRoaXMuaWZyYW1lLmF0dGFjaEV2ZW50P3RoaXMuaWZyYW1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe24uaWZyYW1lLnJlYWR5U3RhdGU9PT1gY29tcGxldGVgJiZsKCl9OnRoaXMuaWZyYW1lLm9ubG9hZD1sfX0pKSxhYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz17fX0pKSxvYz1zKCgoZSx0KT0+e3ZhciBuPVFzKCkscj1acygpLGk9JHMoKSxhPWVjKCksbz10YygpLHM9RnMoKShgZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRgKSxjLGw7aWYodHlwZW9mIFdlYlNvY2tldDxgdWA/Yz1XZWJTb2NrZXQ6dHlwZW9mIHNlbGY8YHVgJiYoYz1zZWxmLldlYlNvY2tldHx8c2VsZi5Nb3pXZWJTb2NrZXQpLHR5cGVvZiB3aW5kb3c+YHVgKXRyeXtsPWFjKCl9Y2F0Y2h7fXZhciB1PWN8fGw7dC5leHBvcnRzPWQ7ZnVuY3Rpb24gZChlKXtlJiZlLmZvcmNlQmFzZTY0JiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT1lLnBlck1lc3NhZ2VEZWZsYXRlLHRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0PWMmJiFlLmZvcmNlTm9kZSx0aGlzLnByb3RvY29scz1lLnByb3RvY29scyx0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldHx8KHU9bCksbi5jYWxsKHRoaXMsZSl9YShkLG4pLGQucHJvdG90eXBlLm5hbWU9YHdlYnNvY2tldGAsZC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITAsZC5wcm90b3R5cGUuZG9PcGVuPWZ1bmN0aW9uKCl7aWYodGhpcy5jaGVjaygpKXt2YXIgZT10aGlzLnVyaSgpLHQ9dGhpcy5wcm90b2NvbHMsbj17fTt0aGlzLmlzUmVhY3ROYXRpdmV8fChuLmFnZW50PXRoaXMuYWdlbnQsbi5wZXJNZXNzYWdlRGVmbGF0ZT10aGlzLnBlck1lc3NhZ2VEZWZsYXRlLG4ucGZ4PXRoaXMucGZ4LG4ua2V5PXRoaXMua2V5LG4ucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2Usbi5jZXJ0PXRoaXMuY2VydCxuLmNhPXRoaXMuY2Esbi5jaXBoZXJzPXRoaXMuY2lwaGVycyxuLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZCksdGhpcy5leHRyYUhlYWRlcnMmJihuLmhlYWRlcnM9dGhpcy5leHRyYUhlYWRlcnMpLHRoaXMubG9jYWxBZGRyZXNzJiYobi5sb2NhbEFkZHJlc3M9dGhpcy5sb2NhbEFkZHJlc3MpO3RyeXt0aGlzLndzPXRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0JiYhdGhpcy5pc1JlYWN0TmF0aXZlP3Q/bmV3IHUoZSx0KTpuZXcgdShlKTpuZXcgdShlLHQsbil9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuZW1pdChgZXJyb3JgLGUpfXRoaXMud3MuYmluYXJ5VHlwZT09PXZvaWQgMCYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLHRoaXMud3Muc3VwcG9ydHMmJnRoaXMud3Muc3VwcG9ydHMuYmluYXJ5Pyh0aGlzLnN1cHBvcnRzQmluYXJ5PSEwLHRoaXMud3MuYmluYXJ5VHlwZT1gbm9kZWJ1ZmZlcmApOnRoaXMud3MuYmluYXJ5VHlwZT1gYXJyYXlidWZmZXJgLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKX19LGQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLndzLm9ub3Blbj1mdW5jdGlvbigpe2Uub25PcGVuKCl9LHRoaXMud3Mub25jbG9zZT1mdW5jdGlvbigpe2Uub25DbG9zZSgpfSx0aGlzLndzLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtlLm9uRGF0YSh0LmRhdGEpfSx0aGlzLndzLm9uZXJyb3I9ZnVuY3Rpb24odCl7ZS5vbkVycm9yKGB3ZWJzb2NrZXQgZXJyb3JgLHQpfX0sZC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLndyaXRhYmxlPSExO2Zvcih2YXIgbj1lLmxlbmd0aCxpPTAsYT1uO2k8YTtpKyspKGZ1bmN0aW9uKGUpe3IuZW5jb2RlUGFja2V0KGUsdC5zdXBwb3J0c0JpbmFyeSxmdW5jdGlvbihyKXtpZighdC51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpe3ZhciBpPXt9O2Uub3B0aW9ucyYmKGkuY29tcHJlc3M9ZS5vcHRpb25zLmNvbXByZXNzKSx0LnBlck1lc3NhZ2VEZWZsYXRlJiYodHlwZW9mIHI9PWBzdHJpbmdgP0J1ZmZlci5ieXRlTGVuZ3RoKHIpOnIubGVuZ3RoKTx0LnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCYmKGkuY29tcHJlc3M9ITEpfXRyeXt0LnVzaW5nQnJvd3NlcldlYlNvY2tldD90LndzLnNlbmQocik6dC53cy5zZW5kKHIsaSl9Y2F0Y2h7cyhgd2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudGApfS0tbnx8bygpfSl9KShlW2ldKTtmdW5jdGlvbiBvKCl7dC5lbWl0KGBmbHVzaGApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndyaXRhYmxlPSEwLHQuZW1pdChgZHJhaW5gKX0sMCl9fSxkLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKCl7bi5wcm90b3R5cGUub25DbG9zZS5jYWxsKHRoaXMpfSxkLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy53cyE9PXZvaWQgMCYmdGhpcy53cy5jbG9zZSgpfSxkLnByb3RvdHlwZS51cmk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnF1ZXJ5fHx7fSx0PXRoaXMuc2VjdXJlP2B3c3NgOmB3c2Asbj1gYDt0aGlzLnBvcnQmJih0PT09YHdzc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YHdzYCYmTnVtYmVyKHRoaXMucG9ydCkhPT04MCkmJihuPWA6YCt0aGlzLnBvcnQpLHRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8KGUuYjY0PTEpLGU9aS5lbmNvZGUoZSksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgcj10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhyP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfSxkLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiEhdSYmIShgX19pbml0aWFsaXplYGluIHUmJnRoaXMubmFtZT09PWQucHJvdG90eXBlLm5hbWUpfX0pKSxzYz1zKChlPT57dmFyIHQ9VXMoKSxuPXJjKCkscj1pYygpLGk9b2MoKTtlLnBvbGxpbmc9YSxlLndlYnNvY2tldD1pO2Z1bmN0aW9uIGEoZSl7dmFyIGksYT0hMSxvPSExLHM9ITEhPT1lLmpzb25wO2lmKHR5cGVvZiBsb2NhdGlvbjxgdWApe3ZhciBjPWxvY2F0aW9uLnByb3RvY29sPT09YGh0dHBzOmAsbD1sb2NhdGlvbi5wb3J0O2x8fD1jPzQ0Mzo4MCxhPWUuaG9zdG5hbWUhPT1sb2NhdGlvbi5ob3N0bmFtZXx8bCE9PWUucG9ydCxvPWUuc2VjdXJlIT09Y31pZihlLnhkb21haW49YSxlLnhzY2hlbWU9byxpPW5ldyB0KGUpLGBvcGVuYGluIGkmJiFlLmZvcmNlSlNPTlApcmV0dXJuIG5ldyBuKGUpO2lmKCFzKXRocm93IEVycm9yKGBKU09OUCBkaXNhYmxlZGApO3JldHVybiBuZXcgcihlKX19KSksY2M9cygoKGUsdCk9Pnt2YXIgbj1bXS5pbmRleE9mO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKG4pcmV0dXJuIGUuaW5kZXhPZih0KTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4tMX19KSksbGM9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsbz1lLmluZGV4T2YoYFtgKSxzPWUuaW5kZXhPZihgXWApO28hPS0xJiZzIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxvKStlLnN1YnN0cmluZyhvLHMpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKHMsZS5sZW5ndGgpKTtmb3IodmFyIGM9bi5leGVjKGV8fGBgKSxsPXt9LHU9MTQ7dS0tOylsW3JbdV1dPWNbdV18fGBgO3JldHVybiBvIT0tMSYmcyE9LTEmJihsLnNvdXJjZT10LGwuaG9zdD1sLmhvc3Quc3Vic3RyaW5nKDEsbC5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxsLmF1dGhvcml0eT1sLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLGwuaXB2NnVyaT0hMCksbC5wYXRoTmFtZXM9aShsLGwucGF0aCksbC5xdWVyeUtleT1hKGwsbC5xdWVyeSksbH07ZnVuY3Rpb24gaShlLHQpe3ZhciBuPXQucmVwbGFjZSgvXC97Miw5fS9nLGAvYCkuc3BsaXQoYC9gKTtyZXR1cm4odC5zdWJzdHIoMCwxKT09YC9gfHx0Lmxlbmd0aD09PTApJiZuLnNwbGljZSgwLDEpLHQuc3Vic3RyKHQubGVuZ3RoLTEsMSk9PWAvYCYmbi5zcGxpY2Uobi5sZW5ndGgtMSwxKSxufWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj17fTtyZXR1cm4gdC5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZyxmdW5jdGlvbihlLHQscil7dCYmKG5bdF09cil9KSxufX0pKSx1Yz1zKCgoZSx0KT0+e3ZhciBuPXNjKCkscj1JcygpLGk9RnMoKShgZW5naW5lLmlvLWNsaWVudDpzb2NrZXRgKSxhPWNjKCksbz1acygpLHM9bGMoKSxjPSRzKCk7dC5leHBvcnRzPWw7ZnVuY3Rpb24gbChlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbChlLHQpO3R8fD17fSxlJiZ0eXBlb2YgZT09YG9iamVjdGAmJih0PWUsZT1udWxsKSxlPyhlPXMoZSksdC5ob3N0bmFtZT1lLmhvc3QsdC5zZWN1cmU9ZS5wcm90b2NvbD09PWBodHRwc2B8fGUucHJvdG9jb2w9PT1gd3NzYCx0LnBvcnQ9ZS5wb3J0LGUucXVlcnkmJih0LnF1ZXJ5PWUucXVlcnkpKTp0Lmhvc3QmJih0Lmhvc3RuYW1lPXModC5ob3N0KS5ob3N0KSx0aGlzLnNlY3VyZT10LnNlY3VyZT09bnVsbD90eXBlb2YgbG9jYXRpb248YHVgJiZsb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgOnQuc2VjdXJlLHQuaG9zdG5hbWUmJiF0LnBvcnQmJih0LnBvcnQ9dGhpcy5zZWN1cmU/YDQ0M2A6YDgwYCksdGhpcy5hZ2VudD10LmFnZW50fHwhMSx0aGlzLmhvc3RuYW1lPXQuaG9zdG5hbWV8fCh0eXBlb2YgbG9jYXRpb248YHVgP2xvY2F0aW9uLmhvc3RuYW1lOmBsb2NhbGhvc3RgKSx0aGlzLnBvcnQ9dC5wb3J0fHwodHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24ucG9ydD9sb2NhdGlvbi5wb3J0OnRoaXMuc2VjdXJlPzQ0Mzo4MCksdGhpcy5xdWVyeT10LnF1ZXJ5fHx7fSx0eXBlb2YgdGhpcy5xdWVyeT09YHN0cmluZ2AmJih0aGlzLnF1ZXJ5PWMuZGVjb2RlKHRoaXMucXVlcnkpKSx0aGlzLnVwZ3JhZGU9ITEhPT10LnVwZ3JhZGUsdGhpcy5wYXRoPSh0LnBhdGh8fGAvZW5naW5lLmlvYCkucmVwbGFjZSgvXC8kLyxgYCkrYC9gLHRoaXMuZm9yY2VKU09OUD0hIXQuZm9yY2VKU09OUCx0aGlzLmpzb25wPSExIT09dC5qc29ucCx0aGlzLmZvcmNlQmFzZTY0PSEhdC5mb3JjZUJhc2U2NCx0aGlzLmVuYWJsZXNYRFI9ISF0LmVuYWJsZXNYRFIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEhPT10LndpdGhDcmVkZW50aWFscyx0aGlzLnRpbWVzdGFtcFBhcmFtPXQudGltZXN0YW1wUGFyYW18fGB0YCx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPXQudGltZXN0YW1wUmVxdWVzdHMsdGhpcy50cmFuc3BvcnRzPXQudHJhbnNwb3J0c3x8W2Bwb2xsaW5nYCxgd2Vic29ja2V0YF0sdGhpcy50cmFuc3BvcnRPcHRpb25zPXQudHJhbnNwb3J0T3B0aW9uc3x8e30sdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTAsdGhpcy5wb2xpY3lQb3J0PXQucG9saWN5UG9ydHx8ODQzLHRoaXMucmVtZW1iZXJVcGdyYWRlPXQucmVtZW1iZXJVcGdyYWRlfHwhMSx0aGlzLmJpbmFyeVR5cGU9bnVsbCx0aGlzLm9ubHlCaW5hcnlVcGdyYWRlcz10Lm9ubHlCaW5hcnlVcGdyYWRlcyx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPSExPT09dC5wZXJNZXNzYWdlRGVmbGF0ZT8hMTp0LnBlck1lc3NhZ2VEZWZsYXRlfHx7fSwhMD09PXRoaXMucGVyTWVzc2FnZURlZmxhdGUmJih0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPXt9KSx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlJiZ0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZD09bnVsbCYmKHRoaXMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkPTEwMjQpLHRoaXMucGZ4PXQucGZ4fHxudWxsLHRoaXMua2V5PXQua2V5fHxudWxsLHRoaXMucGFzc3BocmFzZT10LnBhc3NwaHJhc2V8fG51bGwsdGhpcy5jZXJ0PXQuY2VydHx8bnVsbCx0aGlzLmNhPXQuY2F8fG51bGwsdGhpcy5jaXBoZXJzPXQuY2lwaGVyc3x8bnVsbCx0aGlzLnJlamVjdFVuYXV0aG9yaXplZD10LnJlamVjdFVuYXV0aG9yaXplZD09PXZvaWQgMD8hMDp0LnJlamVjdFVuYXV0aG9yaXplZCx0aGlzLmZvcmNlTm9kZT0hIXQuZm9yY2VOb2RlLHRoaXMuaXNSZWFjdE5hdGl2ZT10eXBlb2YgbmF2aWdhdG9yPGB1YCYmdHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0PT1gc3RyaW5nYCYmbmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKT09PWByZWFjdG5hdGl2ZWAsKHR5cGVvZiBzZWxmPmB1YHx8dGhpcy5pc1JlYWN0TmF0aXZlKSYmKHQuZXh0cmFIZWFkZXJzJiZPYmplY3Qua2V5cyh0LmV4dHJhSGVhZGVycykubGVuZ3RoPjAmJih0aGlzLmV4dHJhSGVhZGVycz10LmV4dHJhSGVhZGVycyksdC5sb2NhbEFkZHJlc3MmJih0aGlzLmxvY2FsQWRkcmVzcz10LmxvY2FsQWRkcmVzcykpLHRoaXMuaWQ9bnVsbCx0aGlzLnVwZ3JhZGVzPW51bGwsdGhpcy5waW5nSW50ZXJ2YWw9bnVsbCx0aGlzLnBpbmdUaW1lb3V0PW51bGwsdGhpcy5waW5nSW50ZXJ2YWxUaW1lcj1udWxsLHRoaXMucGluZ1RpbWVvdXRUaW1lcj1udWxsLHRoaXMub3BlbigpfWwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExLHIobC5wcm90b3R5cGUpLGwucHJvdG9jb2w9by5wcm90b2NvbCxsLlNvY2tldD1sLGwuVHJhbnNwb3J0PVFzKCksbC50cmFuc3BvcnRzPXNjKCksbC5wYXJzZXI9WnMoKSxsLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aShgY3JlYXRpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXUodGhpcy5xdWVyeSk7dC5FSU89by5wcm90b2NvbCx0LnRyYW5zcG9ydD1lO3ZhciByPXRoaXMudHJhbnNwb3J0T3B0aW9uc1tlXXx8e307cmV0dXJuIHRoaXMuaWQmJih0LnNpZD10aGlzLmlkKSxuZXcgbltlXSh7cXVlcnk6dCxzb2NrZXQ6dGhpcyxhZ2VudDpyLmFnZW50fHx0aGlzLmFnZW50LGhvc3RuYW1lOnIuaG9zdG5hbWV8fHRoaXMuaG9zdG5hbWUscG9ydDpyLnBvcnR8fHRoaXMucG9ydCxzZWN1cmU6ci5zZWN1cmV8fHRoaXMuc2VjdXJlLHBhdGg6ci5wYXRofHx0aGlzLnBhdGgsZm9yY2VKU09OUDpyLmZvcmNlSlNPTlB8fHRoaXMuZm9yY2VKU09OUCxqc29ucDpyLmpzb25wfHx0aGlzLmpzb25wLGZvcmNlQmFzZTY0OnIuZm9yY2VCYXNlNjR8fHRoaXMuZm9yY2VCYXNlNjQsZW5hYmxlc1hEUjpyLmVuYWJsZXNYRFJ8fHRoaXMuZW5hYmxlc1hEUix3aXRoQ3JlZGVudGlhbHM6ci53aXRoQ3JlZGVudGlhbHN8fHRoaXMud2l0aENyZWRlbnRpYWxzLHRpbWVzdGFtcFJlcXVlc3RzOnIudGltZXN0YW1wUmVxdWVzdHN8fHRoaXMudGltZXN0YW1wUmVxdWVzdHMsdGltZXN0YW1wUGFyYW06ci50aW1lc3RhbXBQYXJhbXx8dGhpcy50aW1lc3RhbXBQYXJhbSxwb2xpY3lQb3J0OnIucG9saWN5UG9ydHx8dGhpcy5wb2xpY3lQb3J0LHBmeDpyLnBmeHx8dGhpcy5wZngsa2V5OnIua2V5fHx0aGlzLmtleSxwYXNzcGhyYXNlOnIucGFzc3BocmFzZXx8dGhpcy5wYXNzcGhyYXNlLGNlcnQ6ci5jZXJ0fHx0aGlzLmNlcnQsY2E6ci5jYXx8dGhpcy5jYSxjaXBoZXJzOnIuY2lwaGVyc3x8dGhpcy5jaXBoZXJzLHJlamVjdFVuYXV0aG9yaXplZDpyLnJlamVjdFVuYXV0aG9yaXplZHx8dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQscGVyTWVzc2FnZURlZmxhdGU6ci5wZXJNZXNzYWdlRGVmbGF0ZXx8dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSxleHRyYUhlYWRlcnM6ci5leHRyYUhlYWRlcnN8fHRoaXMuZXh0cmFIZWFkZXJzLGZvcmNlTm9kZTpyLmZvcmNlTm9kZXx8dGhpcy5mb3JjZU5vZGUsbG9jYWxBZGRyZXNzOnIubG9jYWxBZGRyZXNzfHx0aGlzLmxvY2FsQWRkcmVzcyxyZXF1ZXN0VGltZW91dDpyLnJlcXVlc3RUaW1lb3V0fHx0aGlzLnJlcXVlc3RUaW1lb3V0LHByb3RvY29sczpyLnByb3RvY29sc3x8dm9pZCAwLGlzUmVhY3ROYXRpdmU6dGhpcy5pc1JlYWN0TmF0aXZlfSl9O2Z1bmN0aW9uIHUoZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9bC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlO2lmKHRoaXMucmVtZW1iZXJVcGdyYWRlJiZsLnByaW9yV2Vic29ja2V0U3VjY2VzcyYmdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoYHdlYnNvY2tldGApIT09LTEpZT1gd2Vic29ja2V0YDtlbHNlIGlmKHRoaXMudHJhbnNwb3J0cy5sZW5ndGg9PT0wKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVtaXQoYGVycm9yYCxgTm8gdHJhbnNwb3J0cyBhdmFpbGFibGVgKX0sMCk7cmV0dXJufWVsc2UgZT10aGlzLnRyYW5zcG9ydHNbMF07dGhpcy5yZWFkeVN0YXRlPWBvcGVuaW5nYDt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaHt0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKSx0aGlzLm9wZW4oKTtyZXR1cm59ZS5vcGVuKCksdGhpcy5zZXRUcmFuc3BvcnQoZSl9LGwucHJvdG90eXBlLnNldFRyYW5zcG9ydD1mdW5jdGlvbihlKXtpKGBzZXR0aW5nIHRyYW5zcG9ydCAlc2AsZS5uYW1lKTt2YXIgdD10aGlzO3RoaXMudHJhbnNwb3J0JiYoaShgY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzYCx0aGlzLnRyYW5zcG9ydC5uYW1lKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSksdGhpcy50cmFuc3BvcnQ9ZSxlLm9uKGBkcmFpbmAsZnVuY3Rpb24oKXt0Lm9uRHJhaW4oKX0pLm9uKGBwYWNrZXRgLGZ1bmN0aW9uKGUpe3Qub25QYWNrZXQoZSl9KS5vbihgZXJyb3JgLGZ1bmN0aW9uKGUpe3Qub25FcnJvcihlKX0pLm9uKGBjbG9zZWAsZnVuY3Rpb24oKXt0Lm9uQ2xvc2UoYHRyYW5zcG9ydCBjbG9zZWApfSl9LGwucHJvdG90eXBlLnByb2JlPWZ1bmN0aW9uKGUpe2koYHByb2JpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXRoaXMuY3JlYXRlVHJhbnNwb3J0KGUse3Byb2JlOjF9KSxuPSExLHI9dGhpcztsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMTtmdW5jdGlvbiBhKCl7aWYoci5vbmx5QmluYXJ5VXBncmFkZXMpe3ZhciBhPSF0aGlzLnN1cHBvcnRzQmluYXJ5JiZyLnRyYW5zcG9ydC5zdXBwb3J0c0JpbmFyeTtufHw9YX1ufHwoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgb3BlbmVkYCxlKSx0LnNlbmQoW3t0eXBlOmBwaW5nYCxkYXRhOmBwcm9iZWB9XSksdC5vbmNlKGBwYWNrZXRgLGZ1bmN0aW9uKGEpe2lmKCFuKWlmKGEudHlwZT09PWBwb25nYCYmYS5kYXRhPT09YHByb2JlYCl7aWYoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgcG9uZ2AsZSksci51cGdyYWRpbmc9ITAsci5lbWl0KGB1cGdyYWRpbmdgLHQpLCF0KXJldHVybjtsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz10Lm5hbWU9PT1gd2Vic29ja2V0YCxpKGBwYXVzaW5nIGN1cnJlbnQgdHJhbnNwb3J0ICIlcyJgLHIudHJhbnNwb3J0Lm5hbWUpLHIudHJhbnNwb3J0LnBhdXNlKGZ1bmN0aW9uKCl7bnx8ci5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJihpKGBjaGFuZ2luZyB0cmFuc3BvcnQgYW5kIHNlbmRpbmcgdXBncmFkZSBwYWNrZXRgKSxmKCksci5zZXRUcmFuc3BvcnQodCksdC5zZW5kKFt7dHlwZTpgdXBncmFkZWB9XSksci5lbWl0KGB1cGdyYWRlYCx0KSx0PW51bGwsci51cGdyYWRpbmc9ITEsci5mbHVzaCgpKX0pfWVsc2V7aShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkYCxlKTt2YXIgbz1FcnJvcihgcHJvYmUgZXJyb3JgKTtvLnRyYW5zcG9ydD10Lm5hbWUsci5lbWl0KGB1cGdyYWRlRXJyb3JgLG8pfX0pKX1mdW5jdGlvbiBvKCl7bnx8KG49ITAsZigpLHQuY2xvc2UoKSx0PW51bGwpfWZ1bmN0aW9uIHMobil7dmFyIGE9RXJyb3IoYHByb2JlIGVycm9yOiBgK24pO2EudHJhbnNwb3J0PXQubmFtZSxvKCksaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkIGJlY2F1c2Ugb2YgZXJyb3I6ICVzYCxlLG4pLHIuZW1pdChgdXBncmFkZUVycm9yYCxhKX1mdW5jdGlvbiBjKCl7cyhgdHJhbnNwb3J0IGNsb3NlZGApfWZ1bmN0aW9uIHUoKXtzKGBzb2NrZXQgY2xvc2VkYCl9ZnVuY3Rpb24gZChlKXt0JiZlLm5hbWUhPT10Lm5hbWUmJihpKGAiJXMiIHdvcmtzIC0gYWJvcnRpbmcgIiVzImAsZS5uYW1lLHQubmFtZSksbygpKX1mdW5jdGlvbiBmKCl7dC5yZW1vdmVMaXN0ZW5lcihgb3BlbmAsYSksdC5yZW1vdmVMaXN0ZW5lcihgZXJyb3JgLHMpLHQucmVtb3ZlTGlzdGVuZXIoYGNsb3NlYCxjKSxyLnJlbW92ZUxpc3RlbmVyKGBjbG9zZWAsdSksci5yZW1vdmVMaXN0ZW5lcihgdXBncmFkaW5nYCxkKX10Lm9uY2UoYG9wZW5gLGEpLHQub25jZShgZXJyb3JgLHMpLHQub25jZShgY2xvc2VgLGMpLHRoaXMub25jZShgY2xvc2VgLHUpLHRoaXMub25jZShgdXBncmFkaW5nYCxkKSx0Lm9wZW4oKX0sbC5wcm90b3R5cGUub25PcGVuPWZ1bmN0aW9uKCl7aWYoaShgc29ja2V0IG9wZW5gKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLGwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPXRoaXMudHJhbnNwb3J0Lm5hbWU9PT1gd2Vic29ja2V0YCx0aGlzLmVtaXQoYG9wZW5gKSx0aGlzLmZsdXNoKCksdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gJiZ0aGlzLnVwZ3JhZGUmJnRoaXMudHJhbnNwb3J0LnBhdXNlKXtpKGBzdGFydGluZyB1cGdyYWRlIHByb2Jlc2ApO2Zvcih2YXIgZT0wLHQ9dGhpcy51cGdyYWRlcy5sZW5ndGg7ZTx0O2UrKyl0aGlzLnByb2JlKHRoaXMudXBncmFkZXNbZV0pfX0sbC5wcm90b3R5cGUub25QYWNrZXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYClzd2l0Y2goaShgc29ja2V0IHJlY2VpdmU6IHR5cGUgIiVzIiwgZGF0YSAiJXMiYCxlLnR5cGUsZS5kYXRhKSx0aGlzLmVtaXQoYHBhY2tldGAsZSksdGhpcy5lbWl0KGBoZWFydGJlYXRgKSxlLnR5cGUpe2Nhc2Vgb3BlbmA6dGhpcy5vbkhhbmRzaGFrZShKU09OLnBhcnNlKGUuZGF0YSkpO2JyZWFrO2Nhc2VgcG9uZ2A6dGhpcy5zZXRQaW5nKCksdGhpcy5lbWl0KGBwb25nYCk7YnJlYWs7Y2FzZWBlcnJvcmA6dmFyIHQ9RXJyb3IoYHNlcnZlciBlcnJvcmApO3QuY29kZT1lLmRhdGEsdGhpcy5vbkVycm9yKHQpO2JyZWFrO2Nhc2VgbWVzc2FnZWA6dGhpcy5lbWl0KGBkYXRhYCxlLmRhdGEpLHRoaXMuZW1pdChgbWVzc2FnZWAsZS5kYXRhKTticmVha31lbHNlIGkoYHBhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSl9LGwucHJvdG90eXBlLm9uSGFuZHNoYWtlPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgaGFuZHNoYWtlYCxlKSx0aGlzLmlkPWUuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD1lLnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXMoZS51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9ZS5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD1lLnBpbmdUaW1lb3V0LHRoaXMub25PcGVuKCksdGhpcy5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJih0aGlzLnNldFBpbmcoKSx0aGlzLnJlbW92ZUxpc3RlbmVyKGBoZWFydGJlYXRgLHRoaXMub25IZWFydGJlYXQpLHRoaXMub24oYGhlYXJ0YmVhdGAsdGhpcy5vbkhlYXJ0YmVhdCkpfSxsLnByb3RvdHlwZS5vbkhlYXJ0YmVhdD1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTt2YXIgdD10aGlzO3QucGluZ1RpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJnQub25DbG9zZShgcGluZyB0aW1lb3V0YCl9LGV8fHQucGluZ0ludGVydmFsK3QucGluZ1RpbWVvdXQpfSxsLnByb3RvdHlwZS5zZXRQaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQoZS5waW5nSW50ZXJ2YWxUaW1lciksZS5waW5nSW50ZXJ2YWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aShgd3JpdGluZyBwaW5nIHBhY2tldCAtIGV4cGVjdGluZyBwb25nIHdpdGhpbiAlc21zYCxlLnBpbmdUaW1lb3V0KSxlLnBpbmcoKSxlLm9uSGVhcnRiZWF0KGUucGluZ1RpbWVvdXQpfSxlLnBpbmdJbnRlcnZhbCl9LGwucHJvdG90eXBlLnBpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2VuZFBhY2tldChgcGluZ2AsZnVuY3Rpb24oKXtlLmVtaXQoYHBpbmdgKX0pfSxsLnByb3RvdHlwZS5vbkRyYWluPWZ1bmN0aW9uKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPT09MD90aGlzLmVtaXQoYGRyYWluYCk6dGhpcy5mbHVzaCgpfSxsLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZSE9PWBjbG9zZWRgJiZ0aGlzLnRyYW5zcG9ydC53cml0YWJsZSYmIXRoaXMudXBncmFkaW5nJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCYmKGkoYGZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0YCx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCksdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKSx0aGlzLnByZXZCdWZmZXJMZW49dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgsdGhpcy5lbWl0KGBmbHVzaGApKX0sbC5wcm90b3R5cGUud3JpdGU9bC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChgbWVzc2FnZWAsZSx0LG4pLHRoaXN9LGwucHJvdG90eXBlLnNlbmRQYWNrZXQ9ZnVuY3Rpb24oZSx0LG4scil7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmAmJihyPXQsdD12b2lkIDApLHR5cGVvZiBuPT1gZnVuY3Rpb25gJiYocj1uLG49bnVsbCksISh0aGlzLnJlYWR5U3RhdGU9PT1gY2xvc2luZ2B8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgKSl7bnx8PXt9LG4uY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO3ZhciBpPXt0eXBlOmUsZGF0YTp0LG9wdGlvbnM6bn07dGhpcy5lbWl0KGBwYWNrZXRDcmVhdGVgLGkpLHRoaXMud3JpdGVCdWZmZXIucHVzaChpKSxyJiZ0aGlzLm9uY2UoYGZsdXNoYCxyKSx0aGlzLmZsdXNoKCl9fSxsLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKXt0aGlzLnJlYWR5U3RhdGU9YGNsb3NpbmdgO3ZhciBlPXRoaXM7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5vbmNlKGBkcmFpbmAsZnVuY3Rpb24oKXt0aGlzLnVwZ3JhZGluZz9yKCk6dCgpfSk6dGhpcy51cGdyYWRpbmc/cigpOnQoKX1mdW5jdGlvbiB0KCl7ZS5vbkNsb3NlKGBmb3JjZWQgY2xvc2VgKSxpKGBzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlYCksZS50cmFuc3BvcnQuY2xvc2UoKX1mdW5jdGlvbiBuKCl7ZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZWAsbiksZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZUVycm9yYCxuKSx0KCl9ZnVuY3Rpb24gcigpe2Uub25jZShgdXBncmFkZWAsbiksZS5vbmNlKGB1cGdyYWRlRXJyb3JgLG4pfXJldHVybiB0aGlzfSxsLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUpe2koYHNvY2tldCBlcnJvciAlamAsZSksbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITEsdGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5vbkNsb3NlKGB0cmFuc3BvcnQgZXJyb3JgLGUpfSxsLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYCl7aShgc29ja2V0IGNsb3NlIHdpdGggcmVhc29uOiAiJXMiYCxlKTt2YXIgbj10aGlzO2NsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoYGNsb3NlYCksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5pZD1udWxsLHRoaXMuZW1pdChgY2xvc2VgLGUsdCksbi53cml0ZUJ1ZmZlcj1bXSxuLnByZXZCdWZmZXJMZW49MH19LGwucHJvdG90eXBlLmZpbHRlclVwZ3JhZGVzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKX5hKHRoaXMudHJhbnNwb3J0cyxlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fX0pKSxkYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz11YygpLHQuZXhwb3J0cy5wYXJzZXI9WnMoKX0pKSxmYz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXMuX2NhbGxiYWNrc1tgJGArZV07aWYobil7bj1uLnNsaWNlKDApO2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpOysrciluW3JdLmFwcGx5KHRoaXMsdCl9cmV0dXJuIHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW2AkYCtlXXx8W119LG4ucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKGUpLmxlbmd0aH19KSkscGM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUsdCl7dmFyIG49W107dHx8PTA7Zm9yKHZhciByPXR8fDA7cjxlLmxlbmd0aDtyKyspbltyLXRdPWVbcl07cmV0dXJuIG59fSkpLG1jPXMoKChlLHQpPT57dC5leHBvcnRzPW47ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuIGUub24odCxuKSx7ZGVzdHJveTpmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIodCxuKX19fX0pKSxoYz1zKCgoZSx0KT0+e3ZhciBuPVtdLnNsaWNlO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYCYmKHQ9ZVt0XSksdHlwZW9mIHQhPWBmdW5jdGlvbmApdGhyb3cgRXJyb3IoYGJpbmQoKSByZXF1aXJlcyBhIGZ1bmN0aW9uYCk7dmFyIHI9bi5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLHIuY29uY2F0KG4uY2FsbChhcmd1bWVudHMpKSl9fX0pKSxnYz1zKChlPT57ZS5lbmNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9YGA7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHQubGVuZ3RoJiYodCs9YCZgKSx0Kz1lbmNvZGVVUklDb21wb25lbnQobikrYD1gK2VuY29kZVVSSUNvbXBvbmVudChlW25dKSk7cmV0dXJuIHR9LGUuZGVjb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPWUuc3BsaXQoYCZgKSxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdLnNwbGl0KGA9YCk7dFtkZWNvZGVVUklDb21wb25lbnQoYVswXSldPWRlY29kZVVSSUNvbXBvbmVudChhWzFdKX1yZXR1cm4gdH19KSksX2M9cygoKGUsdCk9Pnt2YXIgbj1CcygpLHI9ZmMoKSxpPXBjKCksYT1tYygpLG89aGMoKSxzPWpzKCkoYHNvY2tldC5pby1jbGllbnQ6c29ja2V0YCksYz1nYygpLGw9R3MoKTt0LmV4cG9ydHM9ZT1mO3ZhciB1PXtjb25uZWN0OjEsY29ubmVjdF9lcnJvcjoxLGNvbm5lY3RfdGltZW91dDoxLGNvbm5lY3Rpbmc6MSxkaXNjb25uZWN0OjEsZXJyb3I6MSxyZWNvbm5lY3Q6MSxyZWNvbm5lY3RfYXR0ZW1wdDoxLHJlY29ubmVjdF9mYWlsZWQ6MSxyZWNvbm5lY3RfZXJyb3I6MSxyZWNvbm5lY3Rpbmc6MSxwaW5nOjEscG9uZzoxfSxkPXIucHJvdG90eXBlLmVtaXQ7ZnVuY3Rpb24gZihlLHQsbil7dGhpcy5pbz1lLHRoaXMubnNwPXQsdGhpcy5qc29uPXRoaXMsdGhpcy5pZHM9MCx0aGlzLmFja3M9e30sdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlcj1bXSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLmZsYWdzPXt9LG4mJm4ucXVlcnkmJih0aGlzLnF1ZXJ5PW4ucXVlcnkpLHRoaXMuaW8uYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXIoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnN1YkV2ZW50cz1mdW5jdGlvbigpe2lmKCF0aGlzLnN1YnMpe3ZhciBlPXRoaXMuaW87dGhpcy5zdWJzPVthKGUsYG9wZW5gLG8odGhpcyxgb25vcGVuYCkpLGEoZSxgcGFja2V0YCxvKHRoaXMsYG9ucGFja2V0YCkpLGEoZSxgY2xvc2VgLG8odGhpcyxgb25jbG9zZWApKV19fSxmLnByb3RvdHlwZS5vcGVuPWYucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWQ/dGhpczoodGhpcy5zdWJFdmVudHMoKSx0aGlzLmlvLm9wZW4oKSx0aGlzLmlvLnJlYWR5U3RhdGU9PT1gb3BlbmAmJnRoaXMub25vcGVuKCksdGhpcy5lbWl0KGBjb25uZWN0aW5nYCksdGhpcyl9LGYucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1pKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdChgbWVzc2FnZWApLHRoaXMuZW1pdC5hcHBseSh0aGlzLGUpLHRoaXN9LGYucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSl7aWYodS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpczt2YXIgdD1pKGFyZ3VtZW50cykscj17dHlwZToodGhpcy5mbGFncy5iaW5hcnk9PT12b2lkIDA/bCh0KTp0aGlzLmZsYWdzLmJpbmFyeSk/bi5CSU5BUllfRVZFTlQ6bi5FVkVOVCxkYXRhOnR9O3JldHVybiByLm9wdGlvbnM9e30sci5vcHRpb25zLmNvbXByZXNzPSF0aGlzLmZsYWdzfHwhMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsdHlwZW9mIHRbdC5sZW5ndGgtMV09PWBmdW5jdGlvbmAmJihzKGBlbWl0dGluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWRgLHRoaXMuaWRzKSx0aGlzLmFja3NbdGhpcy5pZHNdPXQucG9wKCksci5pZD10aGlzLmlkcysrKSx0aGlzLmNvbm5lY3RlZD90aGlzLnBhY2tldChyKTp0aGlzLnNlbmRCdWZmZXIucHVzaChyKSx0aGlzLmZsYWdzPXt9LHRoaXN9LGYucHJvdG90eXBlLnBhY2tldD1mdW5jdGlvbihlKXtlLm5zcD10aGlzLm5zcCx0aGlzLmlvLnBhY2tldChlKX0sZi5wcm90b3R5cGUub25vcGVuPWZ1bmN0aW9uKCl7aWYocyhgdHJhbnNwb3J0IGlzIG9wZW4gLSBjb25uZWN0aW5nYCksdGhpcy5uc3AhPT1gL2ApaWYodGhpcy5xdWVyeSl7dmFyIGU9dHlwZW9mIHRoaXMucXVlcnk9PWBvYmplY3RgP2MuZW5jb2RlKHRoaXMucXVlcnkpOnRoaXMucXVlcnk7cyhgc2VuZGluZyBjb25uZWN0IHBhY2tldCB3aXRoIHF1ZXJ5ICVzYCxlKSx0aGlzLnBhY2tldCh7dHlwZTpuLkNPTk5FQ1QscXVlcnk6ZX0pfWVsc2UgdGhpcy5wYWNrZXQoe3R5cGU6bi5DT05ORUNUfSl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7cyhgY2xvc2UgKCVzKWAsZSksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITAsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxlKX0sZi5wcm90b3R5cGUub25wYWNrZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uc3A9PT10aGlzLm5zcCxyPWUudHlwZT09PW4uRVJST1ImJmUubnNwPT09YC9gO2lmKCEoIXQmJiFyKSlzd2l0Y2goZS50eXBlKXtjYXNlIG4uQ09OTkVDVDp0aGlzLm9uY29ubmVjdCgpO2JyZWFrO2Nhc2Ugbi5FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkJJTkFSWV9FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkFDSzp0aGlzLm9uYWNrKGUpO2JyZWFrO2Nhc2Ugbi5CSU5BUllfQUNLOnRoaXMub25hY2soZSk7YnJlYWs7Y2FzZSBuLkRJU0NPTk5FQ1Q6dGhpcy5vbmRpc2Nvbm5lY3QoKTticmVhaztjYXNlIG4uRVJST1I6dGhpcy5lbWl0KGBlcnJvcmAsZS5kYXRhKTticmVha319LGYucHJvdG90eXBlLm9uZXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhfHxbXTtzKGBlbWl0dGluZyBldmVudCAlamAsdCksZS5pZCE9bnVsbCYmKHMoYGF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnRgKSx0LnB1c2godGhpcy5hY2soZS5pZCkpKSx0aGlzLmNvbm5lY3RlZD9kLmFwcGx5KHRoaXMsdCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2godCl9LGYucHJvdG90eXBlLmFjaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXIpe3I9ITA7dmFyIGE9aShhcmd1bWVudHMpO3MoYHNlbmRpbmcgYWNrICVqYCxhKSx0LnBhY2tldCh7dHlwZTpsKGEpP24uQklOQVJZX0FDSzpuLkFDSyxpZDplLGRhdGE6YX0pfX19LGYucHJvdG90eXBlLm9uYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWNrc1tlLmlkXTt0eXBlb2YgdD09YGZ1bmN0aW9uYD8ocyhgY2FsbGluZyBhY2sgJXMgd2l0aCAlamAsZS5pZCxlLmRhdGEpLHQuYXBwbHkodGhpcyxlLmRhdGEpLGRlbGV0ZSB0aGlzLmFja3NbZS5pZF0pOnMoYGJhZCBhY2sgJXNgLGUuaWQpfSxmLnByb3RvdHlwZS5vbmNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3RlZD0hMCx0aGlzLmRpc2Nvbm5lY3RlZD0hMSx0aGlzLmVtaXQoYGNvbm5lY3RgKSx0aGlzLmVtaXRCdWZmZXJlZCgpfSxmLnByb3RvdHlwZS5lbWl0QnVmZmVyZWQ9ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT0wO2U8dGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aDtlKyspZC5hcHBseSh0aGlzLHRoaXMucmVjZWl2ZUJ1ZmZlcltlXSk7Zm9yKHRoaXMucmVjZWl2ZUJ1ZmZlcj1bXSxlPTA7ZTx0aGlzLnNlbmRCdWZmZXIubGVuZ3RoO2UrKyl0aGlzLnBhY2tldCh0aGlzLnNlbmRCdWZmZXJbZV0pO3RoaXMuc2VuZEJ1ZmZlcj1bXX0sZi5wcm90b3R5cGUub25kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cyhgc2VydmVyIGRpc2Nvbm5lY3QgKCVzKWAsdGhpcy5uc3ApLHRoaXMuZGVzdHJveSgpLHRoaXMub25jbG9zZShgaW8gc2VydmVyIGRpc2Nvbm5lY3RgKX0sZi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuc3Vicyl7Zm9yKHZhciBlPTA7ZTx0aGlzLnN1YnMubGVuZ3RoO2UrKyl0aGlzLnN1YnNbZV0uZGVzdHJveSgpO3RoaXMuc3Vicz1udWxsfXRoaXMuaW8uZGVzdHJveSh0aGlzKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3RlZCYmKHMoYHBlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpYCx0aGlzLm5zcCksdGhpcy5wYWNrZXQoe3R5cGU6bi5ESVNDT05ORUNUfSkpLHRoaXMuZGVzdHJveSgpLHRoaXMuY29ubmVjdGVkJiZ0aGlzLm9uY2xvc2UoYGlvIGNsaWVudCBkaXNjb25uZWN0YCksdGhpc30sZi5wcm90b3R5cGUuY29tcHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuY29tcHJlc3M9ZSx0aGlzfSxmLnByb3RvdHlwZS5iaW5hcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuYmluYXJ5PWUsdGhpc319KSksdmM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUpe2V8fD17fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1uLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqdGhpcy5mYWN0b3IqKisgdGhpcy5hdHRlbXB0cysrO2lmKHRoaXMuaml0dGVyKXt2YXIgdD1NYXRoLnJhbmRvbSgpLG49TWF0aC5mbG9vcih0KnRoaXMuaml0dGVyKmUpO2U9TWF0aC5mbG9vcih0KjEwKSYxP2UrbjplLW59cmV0dXJuIE1hdGgubWluKGUsdGhpcy5tYXgpfDB9LG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hdHRlbXB0cz0wfSxuLnByb3RvdHlwZS5zZXRNaW49ZnVuY3Rpb24oZSl7dGhpcy5tcz1lfSxuLnByb3RvdHlwZS5zZXRNYXg9ZnVuY3Rpb24oZSl7dGhpcy5tYXg9ZX0sbi5wcm90b3R5cGUuc2V0Sml0dGVyPWZ1bmN0aW9uKGUpe3RoaXMuaml0dGVyPWV9fSkpLHljPXMoKChlLHQpPT57dmFyIG49ZGMoKSxyPV9jKCksaT1mYygpLGE9QnMoKSxvPW1jKCkscz1oYygpLGM9anMoKShgc29ja2V0LmlvLWNsaWVudDptYW5hZ2VyYCksbD1jYygpLHU9dmMoKSxkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWY7ZnVuY3Rpb24gZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGYpKXJldHVybiBuZXcgZihlLHQpO2UmJnR5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9LHQucGF0aD10LnBhdGh8fGAvc29ja2V0LmlvYCx0aGlzLm5zcHM9e30sdGhpcy5zdWJzPVtdLHRoaXMub3B0cz10LHRoaXMucmVjb25uZWN0aW9uKHQucmVjb25uZWN0aW9uIT09ITEpLHRoaXMucmVjb25uZWN0aW9uQXR0ZW1wdHModC5yZWNvbm5lY3Rpb25BdHRlbXB0c3x8MS8wKSx0aGlzLnJlY29ubmVjdGlvbkRlbGF5KHQucmVjb25uZWN0aW9uRGVsYXl8fDFlMyksdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCh0LnJlY29ubmVjdGlvbkRlbGF5TWF4fHw1ZTMpLHRoaXMucmFuZG9taXphdGlvbkZhY3Rvcih0LnJhbmRvbWl6YXRpb25GYWN0b3J8fC41KSx0aGlzLmJhY2tvZmY9bmV3IHUoe21pbjp0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksbWF4OnRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoKSxqaXR0ZXI6dGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKCl9KSx0aGlzLnRpbWVvdXQodC50aW1lb3V0PT1udWxsPzJlNDp0LnRpbWVvdXQpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLnVyaT1lLHRoaXMuY29ubmVjdGluZz1bXSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5lbmNvZGluZz0hMSx0aGlzLnBhY2tldEJ1ZmZlcj1bXTt2YXIgbj10LnBhcnNlcnx8YTt0aGlzLmVuY29kZXI9bmV3IG4uRW5jb2Rlcix0aGlzLmRlY29kZXI9bmV3IG4uRGVjb2Rlcix0aGlzLmF1dG9Db25uZWN0PXQuYXV0b0Nvbm5lY3QhPT0hMSx0aGlzLmF1dG9Db25uZWN0JiZ0aGlzLm9wZW4oKX1mLnByb3RvdHlwZS5lbWl0QWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuZW1pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJnRoaXMubnNwc1tlXS5lbWl0LmFwcGx5KHRoaXMubnNwc1tlXSxhcmd1bWVudHMpfSxmLnByb3RvdHlwZS51cGRhdGVTb2NrZXRJZHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJih0aGlzLm5zcHNbZV0uaWQ9dGhpcy5nZW5lcmF0ZUlkKGUpKX0sZi5wcm90b3R5cGUuZ2VuZXJhdGVJZD1mdW5jdGlvbihlKXtyZXR1cm4oZT09PWAvYD9gYDplK2AjYCkrdGhpcy5lbmdpbmUuaWR9LGkoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnJlY29ubmVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uPSEhZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb259LGYucHJvdG90eXBlLnJlY29ubmVjdGlvbkF0dGVtcHRzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cz1lLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzfSxmLnByb3RvdHlwZS5yZWNvbm5lY3Rpb25EZWxheT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uRGVsYXk9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRNaW4oZSksdGhpcyk6dGhpcy5fcmVjb25uZWN0aW9uRGVsYXl9LGYucHJvdG90eXBlLnJhbmRvbWl6YXRpb25GYWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JhbmRvbWl6YXRpb25GYWN0b3I9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRKaXR0ZXIoZSksdGhpcyk6dGhpcy5fcmFuZG9taXphdGlvbkZhY3Rvcn0sZi5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXlNYXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4PWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0TWF4KGUpLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4fSxmLnByb3RvdHlwZS50aW1lb3V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl90aW1lb3V0PWUsdGhpcyk6dGhpcy5fdGltZW91dH0sZi5wcm90b3R5cGUubWF5YmVSZWNvbm5lY3RPbk9wZW49ZnVuY3Rpb24oKXshdGhpcy5yZWNvbm5lY3RpbmcmJnRoaXMuX3JlY29ubmVjdGlvbiYmdGhpcy5iYWNrb2ZmLmF0dGVtcHRzPT09MCYmdGhpcy5yZWNvbm5lY3QoKX0sZi5wcm90b3R5cGUub3Blbj1mLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGUsdCl7aWYoYyhgcmVhZHlTdGF0ZSAlc2AsdGhpcy5yZWFkeVN0YXRlKSx+dGhpcy5yZWFkeVN0YXRlLmluZGV4T2YoYG9wZW5gKSlyZXR1cm4gdGhpcztjKGBvcGVuaW5nICVzYCx0aGlzLnVyaSksdGhpcy5lbmdpbmU9bih0aGlzLnVyaSx0aGlzLm9wdHMpO3ZhciByPXRoaXMuZW5naW5lLGk9dGhpczt0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuc2tpcFJlY29ubmVjdD0hMTt2YXIgYT1vKHIsYG9wZW5gLGZ1bmN0aW9uKCl7aS5vbm9wZW4oKSxlJiZlKCl9KSxzPW8ocixgZXJyb3JgLGZ1bmN0aW9uKHQpe2lmKGMoYGNvbm5lY3RfZXJyb3JgKSxpLmNsZWFudXAoKSxpLnJlYWR5U3RhdGU9YGNsb3NlZGAsaS5lbWl0QWxsKGBjb25uZWN0X2Vycm9yYCx0KSxlKXt2YXIgbj1FcnJvcihgQ29ubmVjdGlvbiBlcnJvcmApO24uZGF0YT10LGUobil9ZWxzZSBpLm1heWJlUmVjb25uZWN0T25PcGVuKCl9KTtpZighMSE9PXRoaXMuX3RpbWVvdXQpe3ZhciBsPXRoaXMuX3RpbWVvdXQ7YyhgY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZGAsbCk7dmFyIHU9c2V0VGltZW91dChmdW5jdGlvbigpe2MoYGNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQgYWZ0ZXIgJWRgLGwpLGEuZGVzdHJveSgpLHIuY2xvc2UoKSxyLmVtaXQoYGVycm9yYCxgdGltZW91dGApLGkuZW1pdEFsbChgY29ubmVjdF90aW1lb3V0YCxsKX0sbCk7dGhpcy5zdWJzLnB1c2goe2Rlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSl9fSl9cmV0dXJuIHRoaXMuc3Vicy5wdXNoKGEpLHRoaXMuc3Vicy5wdXNoKHMpLHRoaXN9LGYucHJvdG90eXBlLm9ub3Blbj1mdW5jdGlvbigpe2MoYG9wZW5gKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMuZW1pdChgb3BlbmApO3ZhciBlPXRoaXMuZW5naW5lO3RoaXMuc3Vicy5wdXNoKG8oZSxgZGF0YWAscyh0aGlzLGBvbmRhdGFgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcGluZ2Ascyh0aGlzLGBvbnBpbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcG9uZ2Ascyh0aGlzLGBvbnBvbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgZXJyb3JgLHModGhpcyxgb25lcnJvcmApKSksdGhpcy5zdWJzLnB1c2gobyhlLGBjbG9zZWAscyh0aGlzLGBvbmNsb3NlYCkpKSx0aGlzLnN1YnMucHVzaChvKHRoaXMuZGVjb2RlcixgZGVjb2RlZGAscyh0aGlzLGBvbmRlY29kZWRgKSkpfSxmLnByb3RvdHlwZS5vbnBpbmc9ZnVuY3Rpb24oKXt0aGlzLmxhc3RQaW5nPW5ldyBEYXRlLHRoaXMuZW1pdEFsbChgcGluZ2ApfSxmLnByb3RvdHlwZS5vbnBvbmc9ZnVuY3Rpb24oKXt0aGlzLmVtaXRBbGwoYHBvbmdgLG5ldyBEYXRlLXRoaXMubGFzdFBpbmcpfSxmLnByb3RvdHlwZS5vbmRhdGE9ZnVuY3Rpb24oZSl7dGhpcy5kZWNvZGVyLmFkZChlKX0sZi5wcm90b3R5cGUub25kZWNvZGVkPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0sZi5wcm90b3R5cGUub25lcnJvcj1mdW5jdGlvbihlKXtjKGBlcnJvcmAsZSksdGhpcy5lbWl0QWxsKGBlcnJvcmAsZSl9LGYucHJvdG90eXBlLnNvY2tldD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMubnNwc1tlXTtpZighbil7bj1uZXcgcih0aGlzLGUsdCksdGhpcy5uc3BzW2VdPW47dmFyIGk9dGhpcztuLm9uKGBjb25uZWN0aW5nYCxhKSxuLm9uKGBjb25uZWN0YCxmdW5jdGlvbigpe24uaWQ9aS5nZW5lcmF0ZUlkKGUpfSksdGhpcy5hdXRvQ29ubmVjdCYmYSgpfWZ1bmN0aW9uIGEoKXt+bChpLmNvbm5lY3Rpbmcsbil8fGkuY29ubmVjdGluZy5wdXNoKG4pfXJldHVybiBufSxmLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKGUpe3ZhciB0PWwodGhpcy5jb25uZWN0aW5nLGUpO350JiZ0aGlzLmNvbm5lY3Rpbmcuc3BsaWNlKHQsMSksIXRoaXMuY29ubmVjdGluZy5sZW5ndGgmJnRoaXMuY2xvc2UoKX0sZi5wcm90b3R5cGUucGFja2V0PWZ1bmN0aW9uKGUpe2MoYHdyaXRpbmcgcGFja2V0ICVqYCxlKTt2YXIgdD10aGlzO2UucXVlcnkmJmUudHlwZT09PTAmJihlLm5zcCs9YD9gK2UucXVlcnkpLHQuZW5jb2Rpbmc/dC5wYWNrZXRCdWZmZXIucHVzaChlKToodC5lbmNvZGluZz0hMCx0aGlzLmVuY29kZXIuZW5jb2RlKGUsZnVuY3Rpb24obil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspdC5lbmdpbmUud3JpdGUobltyXSxlLm9wdGlvbnMpO3QuZW5jb2Rpbmc9ITEsdC5wcm9jZXNzUGFja2V0UXVldWUoKX0pKX0sZi5wcm90b3R5cGUucHJvY2Vzc1BhY2tldFF1ZXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5wYWNrZXRCdWZmZXIubGVuZ3RoPjAmJiF0aGlzLmVuY29kaW5nKXt2YXIgZT10aGlzLnBhY2tldEJ1ZmZlci5zaGlmdCgpO3RoaXMucGFja2V0KGUpfX0sZi5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbigpe2MoYGNsZWFudXBgKTtmb3IodmFyIGU9dGhpcy5zdWJzLmxlbmd0aCx0PTA7dDxlO3QrKyl0aGlzLnN1YnMuc2hpZnQoKS5kZXN0cm95KCk7dGhpcy5wYWNrZXRCdWZmZXI9W10sdGhpcy5lbmNvZGluZz0hMSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe2MoYGRpc2Nvbm5lY3RgKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5yZWNvbm5lY3Rpbmc9ITEsdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7Yyhgb25jbG9zZWApLHRoaXMuY2xlYW51cCgpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCxlKSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9LGYucHJvdG90eXBlLnJlY29ubmVjdD1mdW5jdGlvbigpe2lmKHRoaXMucmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztpZih0aGlzLmJhY2tvZmYuYXR0ZW1wdHM+PXRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKWMoYHJlY29ubmVjdCBmYWlsZWRgKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRBbGwoYHJlY29ubmVjdF9mYWlsZWRgKSx0aGlzLnJlY29ubmVjdGluZz0hMTtlbHNle3ZhciB0PXRoaXMuYmFja29mZi5kdXJhdGlvbigpO2MoYHdpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdGAsdCksdGhpcy5yZWNvbm5lY3Rpbmc9ITA7dmFyIG49c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2tpcFJlY29ubmVjdHx8KGMoYGF0dGVtcHRpbmcgcmVjb25uZWN0YCksZS5lbWl0QWxsKGByZWNvbm5lY3RfYXR0ZW1wdGAsZS5iYWNrb2ZmLmF0dGVtcHRzKSxlLmVtaXRBbGwoYHJlY29ubmVjdGluZ2AsZS5iYWNrb2ZmLmF0dGVtcHRzKSwhZS5za2lwUmVjb25uZWN0JiZlLm9wZW4oZnVuY3Rpb24odCl7dD8oYyhgcmVjb25uZWN0IGF0dGVtcHQgZXJyb3JgKSxlLnJlY29ubmVjdGluZz0hMSxlLnJlY29ubmVjdCgpLGUuZW1pdEFsbChgcmVjb25uZWN0X2Vycm9yYCx0LmRhdGEpKTooYyhgcmVjb25uZWN0IHN1Y2Nlc3NgKSxlLm9ucmVjb25uZWN0KCkpfSkpfSx0KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19KX19LGYucHJvdG90eXBlLm9ucmVjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMucmVjb25uZWN0aW5nPSExLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMudXBkYXRlU29ja2V0SWRzKCksdGhpcy5lbWl0QWxsKGByZWNvbm5lY3RgLGUpfX0pKSxiYz1zKCgoZSx0KT0+e3ZhciBuPU1zKCkscj1CcygpLGk9eWMoKSxhPWpzKCkoYHNvY2tldC5pby1jbGllbnRgKTt0LmV4cG9ydHM9ZT1zO3ZhciBvPWUubWFuYWdlcnM9e307ZnVuY3Rpb24gcyhlLHQpe3R5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9O3ZhciByPW4oZSkscz1yLnNvdXJjZSxjPXIuaWQsbD1yLnBhdGgsdT1vW2NdJiZsIGluIG9bY10ubnNwcyxkPXQuZm9yY2VOZXd8fHRbYGZvcmNlIG5ldyBjb25uZWN0aW9uYF18fCExPT09dC5tdWx0aXBsZXh8fHUsZjtyZXR1cm4gZD8oYShgaWdub3Jpbmcgc29ja2V0IGNhY2hlIGZvciAlc2AscyksZj1pKHMsdCkpOihvW2NdfHwoYShgbmV3IGlvIGluc3RhbmNlIGZvciAlc2Ascyksb1tjXT1pKHMsdCkpLGY9b1tjXSksci5xdWVyeSYmIXQucXVlcnkmJih0LnF1ZXJ5PXIucXVlcnkpLGYuc29ja2V0KHIucGF0aCx0KX1lLnByb3RvY29sPXIucHJvdG9jb2wsZS5jb25uZWN0PXMsZS5NYW5hZ2VyPXljKCksZS5Tb2NrZXQ9X2MoKX0pKSx4Yz1jKHtkZWZhdWx0OigpPT5TY30pO2Z1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHR8fD17fSxuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdCxhPVtdLG89W10scz17fSxjPWZ1bmN0aW9uKCl7cmV0dXJue29rOihpLnN0YXR1cy8xMDB8MCk9PTIsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsc3RhdHVzOmkuc3RhdHVzLHVybDppLnJlc3BvbnNlVVJMLHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkucmVzcG9uc2VUZXh0KX0sanNvbjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoaS5yZXNwb25zZVRleHQpLnRoZW4oSlNPTi5wYXJzZSl9LGJsb2I6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFtpLnJlc3BvbnNlXSkpfSxjbG9uZTpjLGhlYWRlcnM6e2tleXM6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBvfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXX0saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKClpbiBzfX19fTtmb3IodmFyIGwgaW4gaS5vcGVuKHQubWV0aG9kfHxgZ2V0YCxlLCEwKSxpLm9ubG9hZD1mdW5jdGlvbigpe2kuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkucmVwbGFjZSgvXiguKj8pOlteXFNcbl0qKFtcc1xTXSo/KSQvZ20sZnVuY3Rpb24oZSx0LG4pe2EucHVzaCh0PXQudG9Mb3dlckNhc2UoKSksby5wdXNoKFt0LG5dKSxzW3RdPXNbdF0/c1t0XStgLGArbjpufSksbihjKCkpfSxpLm9uZXJyb3I9cixpLndpdGhDcmVkZW50aWFscz10LmNyZWRlbnRpYWxzPT1gaW5jbHVkZWAsdC5oZWFkZXJzKWkuc2V0UmVxdWVzdEhlYWRlcihsLHQuaGVhZGVyc1tsXSk7aS5zZW5kKHQuYm9keXx8bnVsbCl9KX12YXIgQ2M9bygoKCk9Pnt9KSksd2M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9c2VsZi5mZXRjaHx8KHNlbGYuZmV0Y2g9KENjKCksZCh4YykpLmRlZmF1bHR8fChDYygpLGQoeGMpKSl9KSksVGM9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLmZldGNoQmFsYW5jZXJDb25maWc9dm9pZCAwO3ZhciBuPURzKCkscj10KHdjKCkpO2UuZmV0Y2hCYWxhbmNlckNvbmZpZz1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmRlYnVnKShgdXNpbmcgYmFsYW5jZXIgJHtlfSB0byBnZXQgd2Vic29ja2V0IHVybGApLCgwLHIuZGVmYXVsdCkoYCR7ZX1gKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGU/LnVybCYmZT8udG9rZW4/KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIHVybCAke2U/LnVybH0gYW5kIHRva2VuICR7ZT8udG9rZW59YCksZSk6KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIGludmFsaWQgcmVzcG9uc2VgKSxudWxsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLG4uZGVidWcpKGBmYWlsZWQgdG8gcmVzb2x2ZSB1cmw6ICR7ZS5tZXNzYWdlfWApLG51bGx9KX19KSksRWM9cygoZT0+e3ZhciB0PWUmJmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0LG4pe3JldHVybiBlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0sZSh0LG4pfTtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZih0eXBlb2YgbiE9YGZ1bmN0aW9uYCYmbiE9PW51bGwpdGhyb3cgVHlwZUVycm9yKGBDbGFzcyBleHRlbmRzIHZhbHVlIGArU3RyaW5nKG4pK2AgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbGApO2UodCxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KSgpLG49ZSYmZS5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT10Lmxlbmd0aCxhO3I8aTtyKyspKGF8fCEociBpbiB0KSkmJihhfHw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLHIpLGFbcl09dFtyXSk7cmV0dXJuIGUuY29uY2F0KGF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0scj1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRNb2NrPXZvaWQgMDt2YXIgaT1EcygpO2UuU29ja2V0TW9jaz1mdW5jdGlvbihlKXt0KHIsZSk7ZnVuY3Rpb24gcih0KXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ub3B0aW9ucz10LG4uaWQ9YG1vY2tgLG4uY29ubmVjdGVkPSExLG4uZGlzY29ubmVjdGVkPSEwLG4uYmluYXJ5VHlwZT1gYmxvYmAsbn1yZXR1cm4gci5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuKDAsaS5kZWJ1ZykoYFNvY2tldElPTW9jazogY29ubmVjdGApLHRoaXMub25jZShgdmlzaXRvci5jb25uZWN0YCxmdW5jdGlvbih0LG4pe24obnVsbCxlLm9wdGlvbnMuY29ubmVjdERhdGEpfSksdGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBjb25uZWN0YCksdGhpc30sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmRlYnVnKShgU29ja2V0SU9Nb2NrOiBkaXNjb25uZWN0YCksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxgaW8gY2xpZW50IGRpc2Nvbm5lY3RgKSx0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHQpe3ZhciByPVsuLi5hcmd1bWVudHNdLnNsaWNlKDEpO3JldHVybiBpLmRlYnVnLmFwcGx5KHZvaWQgMCxuKFtgU29ja2V0SU9Nb2NrOiBlbWl0YF0sciwhMSkpLCh0PT09YGNvbm5lY3RgfHx0PT09YGRpc2Nvbm5lY3RgfHx0PT09YHZpc2l0b3IuY29ubmVjdGApJiZlLnByb3RvdHlwZS5lbWl0LmFwcGx5KHRoaXMsbihbdF0sciwhMSkpLHRoaXN9LHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1bLi4uYXJndW1lbnRzXTtyZXR1cm4gdGhpcy5lbWl0LmFwcGx5KHRoaXMsbihbZVswXV0sZS5zbGljZSgxKSwhMSkpfSxyLnByb3RvdHlwZS5jb21wcmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BlbigpfSxyLnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2UoKX0sci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVyQ291bnQoZSk9PT0wfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0KSx0aGlzfSxyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KSx0aGlzfSxyfShyKE9zKCkpLmRlZmF1bHQpfSkpLERjPXMoKGU9Pnt2YXIgdD1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1lJiZlLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIWl8fChgZ2V0YGluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSkpJiYoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfSk6KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pLGVbcl09dFtuXX0pKSxyPWUmJmUuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT1gZGVmYXVsdGAmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmbih0LGUscil9LGk9ZSYmZS5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pfXJldHVybiBuZXcobnx8PVByb21pc2UpKGZ1bmN0aW9uKG4sYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXtlLmRvbmU/bihlLnZhbHVlKTppKGUudmFsdWUpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX0sYT1lJiZlLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihhWzBdJjEpdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LHIsaSxhLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT1gZnVuY3Rpb25gP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYyhbZSx0XSl9fWZ1bmN0aW9uIGMocyl7aWYocil0aHJvdyBUeXBlRXJyb3IoYEdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5gKTtmb3IoO28mJihvPTAsc1swXSYmKG49MCkpLG47KXRyeXtpZihyPTEsaSYmKGE9c1swXSYyP2kucmV0dXJuOnNbMF0/aS50aHJvd3x8KChhPWkucmV0dXJuKSYmYS5jYWxsKGkpLDApOmkubmV4dCkmJiEoYT1hLmNhbGwoaSxzWzFdKSkuZG9uZSlyZXR1cm4gYTtzd2l0Y2goaT0wLGEmJihzPVtzWzBdJjIsYS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6YT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gbi5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTpuLmxhYmVsKyssaT1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPW4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKChhPW4udHJ5cywhKGE9YS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXSkpJiYoc1swXT09PTZ8fHNbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWF8fHNbMV0+YVswXSYmc1sxXTxhWzNdKSl7bi5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPXM7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChzKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxuKX1jYXRjaChlKXtzPVs2LGVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKHNbMF0mNSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fX0sbz1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj12b2lkIDA7dmFyIHM9RHMoKSxjPW8oT3MoKSksbD1vKGJjKCkpLHU9VGMoKSxkPXt0cmFuc3BvcnRzOltgd2Vic29ja2V0YF0scGF0aDpgL3NvY2tldGAscmVjb25uZWN0aW9uOiEwLHJlY29ubmVjdGlvbkRlbGF5OjFlMyxyZWNvbm5lY3Rpb25EZWxheU1heDo1ZTMscmVjb25uZWN0aW9uQXR0ZW1wdHM6MS8wfTtlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5mb3JjZVJlY29ubmVjdD0hMSx0aGlzLmlkZW50aXR5PW51bGwsdGhpcy5jb25uZWN0aW9uPW51bGwsdGhpcy5jb25uZWN0Q2FsbGJhY2s9bnVsbCx0aGlzLmRpc2Nvbm5lY3RDYWxsYmFjaz1udWxsLHRoaXMuaW5pdERhdGE9bnVsbCx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITEsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9MCx0aGlzLmVtaXR0ZXI9bmV3IGMuZGVmYXVsdCx0aGlzLnNlbmRCdWZmZXI9W10sdGhpcy5vcHRpb25zLm9wdGlvbnM9dCh0KHQoe30sZCksdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMX0pfXJldHVybiBlLnByb3RvdHlwZS5pbml0Q29ubmVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBhKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppZih0aGlzLmNvbm5lY3Rpb24pdGhyb3cgRXJyb3IoYENvbm5lY3Rpb24gYWxyZWFkeSBleGlzdHNgKTtyZXR1cm4gdGhpcy5vcHRpb25zLnNvY2tldD8oKDAscy5kZWJ1ZykoYHVzaW5nIHNvY2tldCAke3RoaXMub3B0aW9ucy5zb2NrZXQuaWR9YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMSx0aGlzLnNldENvbm5lY3Rpb24odGhpcy5vcHRpb25zLnNvY2tldCksWzMsNF0pOlszLDFdO2Nhc2UgMTpyZXR1cm4gdGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsP1s0LCgwLHUuZmV0Y2hCYWxhbmNlckNvbmZpZykodGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsKV06WzMsM107Y2FzZSAyOnJldHVybiBlPW4uc2VudCgpLCgwLHMuZGVidWcpKGBjcmVhdGluZyBzb2NrZXQgdG8gJHtlLnVybH0gd2l0aCB0b2tlbiAke2UudG9rZW59YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMCx0aGlzLnNldENvbm5lY3Rpb24oKDAsbC5kZWZhdWx0KShlLnVybCx0KHQoe30sdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITEscXVlcnk6e3Rva2VuOmUudG9rZW59fSkpLCEwKSxbMyw0XTtjYXNlIDM6aWYodGhpcy5vcHRpb25zLnVybCkoMCxzLmRlYnVnKShgY3JlYXRpbmcgc29ja2V0IHRvICR7dGhpcy5vcHRpb25zLnVybH1gKSx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuc2V0Q29ubmVjdGlvbigoMCxsLmRlZmF1bHQpKHRoaXMub3B0aW9ucy51cmwsdCh0KHt9LHRoaXMub3B0aW9ucy5vcHRpb25zKSx7YXV0b0Nvbm5lY3Q6ITF9KSkpO2Vsc2UgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHVybGApO24ubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUucHJvdG90eXBlLnNldENvbm5lY3Rpb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO249PT12b2lkIDAmJihuPSExKSx0aGlzLmNvbm5lY3Rpb249ZSx0aGlzLmZvcmNlUmVjb25uZWN0PSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpb249bixlLm9uKGBjb25uZWN0X2Vycm9yYCxmdW5jdGlvbihlKXtyLmludGVybmFsUmVjb25uZWN0aW9uJiYoci5jb25uZWN0Q2FsbGJhY2s9bnVsbCwoMCxzLmRlYnVnKShgY29ubmVjdGlvbiB3YXMgbm90IHJlY29ubmVjdGVkYCksci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdF9lcnJvcmAsZSksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uQXR0ZW1wdHM+ci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQrMT9yLnJlY29ubmVjdChyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdCsxKTpyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGAsci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQpKX0pLGUub24oYGNvbm5lY3RgLGZ1bmN0aW9uKCl7KDAscy5kZWJ1ZykoYHNvY2tldCB3YXMgY29ubmVjdGVkYCksci5pbml0aWFsaXplZD0hMSxyLmludGVybmFsUmVjb25uZWN0aW5nPygoMCxzLmRlYnVnKShgY29ubmVjdGlvbiBpcyByZWNvbm5lY3RlZGApLHIuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RgKSxyLmludGVybmFsUmVjb25uZWN0aW5nPSExLHIuaW50ZXJuYWxSZWNvbm5lY3RpbmdBdHRlbXB0PTApOnIuZW1pdHRlci5lbWl0KGBjb25uZWN0YCksci5pbml0aWFsaXplKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlYnVnKShgc29ja2V0IHdhcyBpbml0aWFsaXplZGApLHIub25Jbml0aWFsaXplZChlKSxyLmNvbm5lY3RDYWxsYmFjayYmPShyLmNvbm5lY3RDYWxsYmFjayhudWxsLGUpLG51bGwpLGV9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBub3QgaW5pdGlhbGl6ZWQgYCx0KHt9LGUpKSxyLm9uSW5pdGlhbGl6ZUVycm9yKGUpLHIuY29ubmVjdENhbGxiYWNrJiY9KHIuY29ubmVjdENhbGxiYWNrKGUpLG51bGwpfSl9KSxlLm9uKGBkaXNjb25uZWN0YCxmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBkaXNjb25uZWN0ZWQgcmVhc29uPScke2V9J2ApLHIuaW5pdGlhbGl6ZWQ9ITEsKCFyLmludGVybmFsUmVjb25uZWN0aW5nfHxyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdD09PTEpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYGRpc2Nvbm5lY3RgLGUpLHIuZGlzY29ubmVjdENhbGxiYWNrJiY9KHIuZGlzY29ubmVjdENhbGxiYWNrKCksbnVsbCl9LDEwMCksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uJiZyLmludGVybmFsUmVjb25uZWN0aW9uJiYhci5pbnRlcm5hbFJlY29ubmVjdGluZyYmKHIuZm9yY2VSZWNvbm5lY3R8fGUhPT1gaW8gc2VydmVyIGRpc2Nvbm5lY3RgKSYmci5yZWNvbm5lY3QoKX0pLGUub24oYHJlY29ubmVjdGluZ2AsZnVuY3Rpb24oZSl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGluZ2AsZSl9KSxlLm9uKGByZWNvbm5lY3RgLGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGApfSksZS5vbihgcmVjb25uZWN0X2F0dGVtcHRgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSl9KSxlLm9uKGByZWNvbm5lY3RfZXJyb3JgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfZXJyb3JgLGUpfSksZS5vbihgcmVjb25uZWN0X2ZhaWxlZGAsZnVuY3Rpb24oKXtyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGApfSksZS5vbihgZm9yY2VfcmVjb25uZWN0YCxmdW5jdGlvbigpeygwLHMuZGVidWcpKGByZWNlaXZlZCBldmVudCBmb3JjZV9yZWNvbm5lY3QsIHNldHRpbmcgZmxhZyBmb3JjZVJlY29ubmVjdCA9IHRydWVgKSxyLmZvcmNlUmVjb25uZWN0PSEwfSl9LGUucHJvdG90eXBlLmdldENvbm5lY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0aW9ufSxlLnByb3RvdHlwZS5pc0Nvbm5lY3RlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3Rpb24/LmNvbm5lY3RlZHx8ITF9LGUucHJvdG90eXBlLmlzSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0aWFsaXplZH0sZS5wcm90b3R5cGUuZ2V0SW5pdERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0RGF0YX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGEodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbm5lY3Rpb24/WzMsMl06WzQsdGhpcy5pbml0Q29ubmVjdGlvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2UuaW5pdGlhbGl6ZWQ/dChlLmluaXREYXRhKTooKDAscy5kZWJ1ZykoYHN0YXJ0aW5nIGNvbm5lY3RpbmdgKSxlLmNvbm5lY3RDYWxsYmFjaz0oMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pLGUuY29ubmVjdGlvbi5vcGVuKCkpfSldfX0pfSl9LGUucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4peyFlLmNvbm5lY3Rpb258fGUuY29ubmVjdGlvbi5kaXNjb25uZWN0ZWQ/KGUuY29ubmVjdGlvbj1udWxsLHQoKSk6KCgwLHMuZGVidWcpKGBzdGFydGluZyBkaXNjb25uZWN0aW5nYCksZS5kaXNjb25uZWN0Q2FsbGJhY2s9KDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSxlLmNvbm5lY3Rpb24uY2xvc2UoKSxlLmNvbm5lY3Rpb249bnVsbCl9KX0sZS5wcm90b3R5cGUucmVjb25uZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9PT12b2lkIDAmJihlPTEpLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITAsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9ZSx0aGlzLmRpc2Nvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheU1heC10Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheSkrdC5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uRGVsYXkpO3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIHdpbGwgcmVjb25uZWN0IGluICR7bn1tc2ApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RpbmdgLGUpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSxuKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIGlzIHN0YXJ0aW5nIHJlY29ubmVjdGApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSksdC5jb25uZWN0KCl9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtlKHt9KX0pfSxlLnByb3RvdHlwZS5vbkluaXRpYWxpemVkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbml0RGF0YT1lLCgwLHMuZGVidWcpKGBlbWl0IGluaXRpYWxpemVkYCksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVkYCxlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5zZW5kQnVmZmVyLmxlbmd0aD4wKXsoMCxzLmRlYnVnKShgc2VuZGluZyBidWZmZXJlZCAke3Quc2VuZEJ1ZmZlci5sZW5ndGh9IGV2ZW50c2ApO2Zvcih2YXIgZT0wO2U8dC5zZW5kQnVmZmVyLmxlbmd0aDtlKyspe3ZhciBuPXQuc2VuZEJ1ZmZlcltlXTt0LmNvbm5lY3Rpb24uZW1pdChuLm5hbWUsbi5kYXRhLG4uY2FsbGJhY2spfXQuc2VuZEJ1ZmZlcj1bXX19LDEpKX0sZS5wcm90b3R5cGUub25Jbml0aWFsaXplRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5kaXNjb25uZWN0KCksKDAscy5kZWJ1ZykoYGVtaXQgaW5pdGlhbGl6ZV9lcnJvcmAsdCh7fSxlKSksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVfZXJyb3JgLGUpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmluaXRpYWxpemVkP3RoaXMuY29ubmVjdGlvbi5lbWl0KGUsdCxuKTp0aGlzLnNlbmRCdWZmZXIucHVzaCh7bmFtZTplLGRhdGE6dCxjYWxsYmFjazpufSl9LGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oZT10aGlzLmVtaXR0ZXIpLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseShlLHQpLHRoaXN9LGV9KCk7dmFyIGY9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmLlNvY2tldEVycm9yfX0pLHIoRWMoKSxlKX0pKSxPYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCksbj1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scj1lJiZlLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSl9cmV0dXJuIG5ldyhufHw9UHJvbWlzZSkoZnVuY3Rpb24obixhKXtmdW5jdGlvbiBvKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaChlKXthKGUpfX1mdW5jdGlvbiBjKGUpe2UuZG9uZT9uKGUudmFsdWUpOmkoZS52YWx1ZSkudGhlbihvLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfSxpPWUmJmUuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG49e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKGFbMF0mMSl0aHJvdyBhWzFdO3JldHVybiBhWzFdfSx0cnlzOltdLG9wczpbXX0scixpLGEsbz1PYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3I9PWBmdW5jdGlvbmA/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBvLm5leHQ9cygwKSxvLnRocm93PXMoMSksby5yZXR1cm49cygyKSx0eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBjKFtlLHRdKX19ZnVuY3Rpb24gYyhzKXtpZihyKXRocm93IFR5cGVFcnJvcihgR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLmApO2Zvcig7byYmKG89MCxzWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1zWzBdJjI/aS5yZXR1cm46c1swXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLHNbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKHM9W3NbMF0mMixhLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTphPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoKGE9bi50cnlzLCEoYT1hLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdKSkmJihzWzBdPT09Nnx8c1swXT09PTIpKXtuPTA7Y29udGludWV9aWYoc1swXT09PTMmJighYXx8c1sxXT5hWzBdJiZzWzFdPGFbM10pKXtuLmxhYmVsPXNbMV07YnJlYWt9aWYoc1swXT09PTYmJm4ubGFiZWw8YVsxXSl7bi5sYWJlbD1hWzFdLGE9czticmVha31pZihhJiZuLmxhYmVsPGFbMl0pe24ubGFiZWw9YVsyXSxuLm9wcy5wdXNoKHMpO2JyZWFrfWFbMl0mJm4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLG4pfWNhdGNoKGUpe3M9WzYsZV0saT0wfWZpbmFsbHl7cj1hPTB9aWYoc1swXSY1KXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19fSxhPWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLldlYnNvY2tldFZpc2l0b3JDbGllbnQ9dm9pZCAwO3ZhciBvPWEoRGMoKSkscz1EcygpLGM9ZnVuY3Rpb24oZSl7dChhLGUpO2Z1bmN0aW9uIGEodCl7dmFyIG49ZS5jYWxsKHRoaXMsdC5jb25uZWN0aW9uKXx8dGhpcztyZXR1cm4gbi5zZXJ2ZXJWZXJzaW9uPW51bGwsbi51cGRhdGVkVmFsdWVzPXt9LG4uY29ubmVjdERhdGE9dC5kYXRhLG4uaWRlbnRpdHk9bnVsbCxufXJldHVybiBhLnByb3RvdHlwZS5zZXRDb25uZWN0aW9uPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnNldENvbm5lY3Rpb24uY2FsbCh0aGlzLHQpLHQub24oYHNlcnZlci5lcnJvcmAsKDAscy5ib3VuZCkodGhpcyxgb25TZXJ2ZXJFcnJvcmApKSx0Lm9uKGBhY2NvdW50LnVwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhY2NvdW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQudXBkYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGFnZW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQuc3RhdHVzX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhZ2VudC5zdGF0dXNfdXBkYXRlZGApKSx0Lm9uKGBhZ2VudC5yZW1vdmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgYWdlbnQucmVtb3ZlZGApKSx0Lm9uKGB2aXNpdG9yLnVwZGF0ZWRgLCgwLHMuYm91bmQpKHRoaXMsYG9uVmlzaXRvclVwZGF0ZWRgKSksdC5vbihgY2hhdC51cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC51cGRhdGVkYCkpLHQub24oYGNoYXQuYWdlbnRfam9pbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF9qb2luZWRgKSksdC5vbihgY2hhdC5hZ2VudF9hc3NpZ25lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfYXNzaWduZWRgKSksdC5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCkpLHQub24oYGNoYXQuYWdlbnRfbGVmdGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfbGVmdGApKSx0Lm9uKGBjaGF0Lm9wZW5lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQub3BlbmVkYCkpLHQub24oYGNoYXQuc2VydmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5zZXJ2ZWRgKSksdC5vbihgY2hhdC5jbG9zZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LmNsb3NlZGApKSx0Lm9uKGBjaGF0LnZpc2l0b3JfY2xvc2VkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC52aXNpdG9yX2Nsb3NlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgKSksdC5vbihgY2hhdC5tZXNzYWdlX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQubWVzc2FnZV9kZWxldGVkYCkpLHQub24oYGNoYXQuYWdlbnRfdHlwaW5nYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF90eXBpbmdgKSksdC5vbihgY2hhdC5yYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0ZWRgKSksdC5vbihgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCkpLHQub24oYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGApKSx0Lm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuY29udGFjdF9yZWFkYCkpLHQub24oYGNoYXQuZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuZGVsZXRlZGApKSx0Lm9uKGBjaGF0LnRpY2tldF9mb3JtX2ZpbmlzaGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCkpLHQub24oYGNoYXQudHJhbnNjcmlwdF9wZGZgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LnRyYW5zY3JpcHRfcGRmYCkpLHQub24oYGNvbnRhY3QuYWNxdWlyZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjb250YWN0LmFjcXVpcmVkYCkpLHQub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgaWRlbnRpdHkuc3RhdHVzX3VwZGF0ZWRgKSl9LGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGEucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxhLnByb3RvdHlwZS5nZXRJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlkZW50aXR5P3RoaXMuaWRlbnRpdHkuaWQ6bnVsbH0sYS5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZGVudGl0eX0sYS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5jb25uZWN0LmNhbGwodGhpcyl9LGEucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cyx2b2lkIDAsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLGkodGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiB0P1s0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5zZW5kKGB2aXNpdG9yLmxvZ291dGAse30sKDAscy5jcmVhdGVDYWxsYmFjaykoZSx0KSl9KV06WzMsMl07Y2FzZSAxOnIuc2VudCgpLHIubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5wcm90b3R5cGUuZGlzY29ubmVjdC5jYWxsKHRoaXMpXX19KX0pfSxhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGU9PT12b2lkIDAmJihlPXt9KSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLGUpdGhpcy5pZGVudGl0eVt0XT1lW3RdLHRoaXMudXBkYXRlZFZhbHVlc1t0XT1lW3RdO3RoaXMuc2F2ZVZpc2l0b3JWYWx1ZXMoKX0sYS5wcm90b3R5cGUuYXV0aGVudGljYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYHZpc2l0b3IuYXV0aGVudGljYXRlYCx7dmFsdWVzOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHQ9PT12b2lkIDAmJih0PW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24ocixpKXtuLnNlbmQoYHZpc2l0b3Iubm90aWZ5YCx7bmFtZTplLHZhbHVlOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRSZWFkPWZ1bmN0aW9uKCl7dGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSx0aGlzLnNlbmQoYGNoYXQucmVhZGAsbnVsbCl9LGEucHJvdG90eXBlLmNoYXRUeXBpbmc9ZnVuY3Rpb24oZSx0KXt0PT09dm9pZCAwJiYodD1udWxsKSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLHRoaXMuc2VuZChgY2hhdC50eXBpbmdgLHt0eXBpbmc6e2lzOmUsdGV4dDp0fX0pfSxhLnByb3RvdHlwZS5jaGF0TWVzc2FnZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lm1lc3NhZ2VgLGUsKDAscy5jcmVhdGVDYWxsYmFjaykobixyKSl9KX0sYS5wcm90b3R5cGUuY2hhdENsb3NlPWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksdGhpcy5zZW5kKGBjaGF0LmNsb3NlYCx7dHlwZTplfSl9LGEucHJvdG90eXBlLmNoYXRVcGxvYWRJbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uuc2VuZChgY2hhdC51cGxvYWRfaW5pdGAsbnVsbCwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5jaGF0VXBsb2FkRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudXBsb2FkX2ZpbmlzaGAse3VwbG9hZFRva2VuOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRUcmFuc2NyaXB0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24uc2VuZChgY2hhdC50cmFuc2NyaXB0YCx7ZW1haWw6ZSxsYW5nOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRUaWNrZXRGb3JtRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlSW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQucmF0ZV9pbml0YCxudWxsLCgwLHMuY3JlYXRlQ2FsbGJhY2spKHQsbikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQucmF0ZWAsZSwoMCxzLmNyZWF0ZUNhbGxiYWNrKShuLHIpKX0pfSxhLnByb3RvdHlwZS5jaGF0VHJhbnNjcmlwdFBkZj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQudHJhbnNjcmlwdF9wZGZgLG51bGwsKDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSl9KX0sYS5wcm90b3R5cGUubGlua09wZW5lZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lmxpbmtfb3BlbmVkYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JDb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PW4oe3ZlcnNpb246YS5DTElFTlRfVkVSU0lPTn0sdGhpcy5jb25uZWN0RGF0YSk7Zm9yKHZhciByIGluIHRoaXMudXBkYXRlZFZhbHVlcyl0W3JdPXRoaXMudXBkYXRlZFZhbHVlc1tyXTtpZih0aGlzLnVwZGF0ZWRWYWx1ZXM9e30sdGhpcy5pZGVudGl0eSlmb3IodmFyIHIgaW4gdGhpcy5pZGVudGl0eSlbYGJhbm5lZEF0YCxgY2hhdElkYCxgc3RhdHVzYF0uaW5jbHVkZXMocil8fCh0W3JdPXRoaXMuaWRlbnRpdHlbcl0pO3JldHVybiB0aGlzLmVtaXR0ZXIuZW1pdChgaW5pdGlhbGl6ZWAsdCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5jb25uZWN0YCx0LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JEaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5kaXNjb25uZWN0YCx7fSwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5vblZpc2l0b3JVcGRhdGVkPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLmNoYW5nZXMpYS5pZGVudGl0eVByb3BlcnRpZXMuaW5jbHVkZXMobikmJih0aGlzLmlkZW50aXR5JiYodGhpcy5pZGVudGl0eVtuXT1lLmNoYW5nZXNbbl0pLHRbbl09ZS5jaGFuZ2VzW25dKTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5sZW5ndGg+MCYmdGhpcy5lbWl0dGVyLmVtaXQoYHZpc2l0b3IudXBkYXRlZGAsdCl9LGEucHJvdG90eXBlLm9uU2VydmVyRXJyb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jcmVhdGVTb2NrZXRFcnJvcikoZSk7dGhpcy5lbWl0dGVyLmVtaXQoYGVycm9yYCx0KX0sYS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMudmlzaXRvckNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLnNlcnZlclZlcnNpb249dC5zZXJ2ZXJWZXJzaW9uLGUuaWRlbnRpdHk9bihuKHt9LHQudmlzaXRvcikse3ZhcmlhYmxlczpuKHt9LHQudmlzaXRvci52YXJpYWJsZXMpfSksdH0pfSxhLnByb3RvdHlwZS5zYXZlVmlzaXRvclZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5pbml0aWFsaXplZCYmc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEoIWUuaW5pdGlhbGl6ZWR8fE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUudXBkYXRlZFZhbHVlcykubGVuZ3RoPT09MCkpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLnVwZGF0ZWRWYWx1ZXMpdFtuXT1lLnVwZGF0ZWRWYWx1ZXNbbl07ZS5zZW5kKGB2aXNpdG9yLnVwZGF0ZWAse3ZhbHVlczp0fSksZS51cGRhdGVkVmFsdWVzPXt9fX0sMSl9LGEucHJvdG90eXBlLmNoZWNrU2VydmVyVmVyc2lvbj1mdW5jdGlvbigpe2lmKHRoaXMuc2VydmVyVmVyc2lvbj09PW51bGwpdGhyb3cgRXJyb3IoYENsaWVudCBub3QgeWV0IGNvbm5lY3RlZCB0byBzZXJ2ZXJgKX0sYS5DTElFTlRfVkVSU0lPTj02LGEuaWRlbnRpdHlQcm9wZXJ0aWVzPVtgaWRgLGBuYW1lYCxgZW1haWxgLGBwaG9uZWAsYGNoYXRJZGAsYHZhcmlhYmxlc2AsYGxhbmdgLGBncm91cGAsYGJhbm5lZEF0YCxgdHJpZ2dlcmFibGVgLGB2aXNpdHNgLGBnZHByQXBwcm92ZWRgXSxhfShvLmRlZmF1bHQpO2UuV2Vic29ja2V0VmlzaXRvckNsaWVudD1jLChmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7ZS5XaWRnZXRPcGVuPWB3aWRnZXRfb3BlbmAsZS5XaWRnZXRTaG93PWB3aWRnZXRfc2hvd2AsZS5WaXNpdG9yQWN0aXZlPWB2aXNpdG9yX2FjdGl2ZWAsZS5WaXNpdG9ySW5hY3RpdmU9YHZpc2l0b3JfaW5hY3RpdmVgfSkoZS5FdmVudE5hbWV8fD17fSl9KShjfHwoZS5XZWJzb2NrZXRWaXNpdG9yQ2xpZW50PWM9e30pKX0pKSxrYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLEFjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5SYXRpbmdUYXJnZXQ9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLkFnZW50PWBhZ2VudGAsZS5BaT1gYWlgfSkodHx8KGUuUmF0aW5nVGFyZ2V0PXQ9e30pKX0pKSxqYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj1lLk1lc3NhZ2VEZWxpdmVyeVN0YXR1cz1lLkFnZW50RGV2aWNlUGxhdGZvcm09ZS5BZ2VudERldmljZVR5cGU9ZS5WaXNpdG9yU3RhdHVzPWUuQ2hhdFJlYWRJbmZvVHlwZT1lLkNoYXRTdGF0dXM9ZS5BZ2VudFN0YXR1cz1lLkFjY291bnRTdGF0dXM9dm9pZCAwLGUuQWNjb3VudFN0YXR1cz17T25saW5lOmBvbmxpbmVgLE9mZmxpbmU6YG9mZmxpbmVgLE9mZmxpbmVXaXRoQUk6YG9mZmxpbmVXaXRoQWlgfSxlLkFnZW50U3RhdHVzPXtPbmxpbmU6YG9ubGluZWAsT2ZmbGluZTpgb2ZmbGluZWB9LGUuQ2hhdFN0YXR1cz17UGVuZGluZzpgcGVuZGluZ2AsT3Blbjpgb3BlbmAsQ2xvc2VkOmBjbG9zZWRgLFNlcnZlZDpgc2VydmVkYH0sZS5DaGF0UmVhZEluZm9UeXBlPXtBZ2VudDpgYWdlbnRgLENvbnRhY3Q6YGNvbnRhY3RgfSxlLlZpc2l0b3JTdGF0dXM9e0FjdGl2ZTpgYWN0aXZlYCxDbGlja2VkOmBjbGlja2VkYCxJZGxlOmBpZGxlYCxTZXJ2ZWQ6YHNlcnZlZGAsVW5zZXJ2ZWQ6YHVuc2VydmVkYCxUcmlnZ2VyZWQ6YHRyaWdnZXJlZGB9LGUuQWdlbnREZXZpY2VUeXBlPXtCcm93c2VyOmBicm93c2VyYCxNb2JpbGU6YG1vYmlsZWAsWG1wcDpgeG1wcGAsT3RoZXI6YG90aGVyYH0sZS5BZ2VudERldmljZVBsYXRmb3JtPXtJT1M6YGlvc2AsQU5EUk9JRDpgYW5kcm9pZGB9LGUuTWVzc2FnZURlbGl2ZXJ5U3RhdHVzPXtPazpgb2tgLFBlcm1hbmVudEZhaWw6YHBlcm1hbmVudF9mYWlsYCxUZW1wb3JhcnlGYWlsOmB0ZW1wb3JhcnlfZmFpbGAsQ29tcGxhaW5lZDpgY29tcGxhaW5lZGAsU2Vlbjpgc2VlbmB9LGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj17RmFjZWJvb2syNGhXaW5kb3c6YGZhY2Vib29rLm91dHNpZGVfYWxsb3dlZF93aW5kb3dgLEluc3RhZ3JhbUV4Y2VlZGVkRmlsZVNpemU6YGluc3RhZ3JhbS5leGNlZWRlZF9maWxlX3NpemVgLEluc3RhZ3JhbVVua25vd246YGluc3RhZ3JhbS51bmtub3duYCxJbnN0YWdyYW1VbnN1cHBvcnRlZEZpbGVUeXBlOmBpbnN0YWdyYW0udW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVuc3VwcG9ydGVkRmlsZTpgd2hhdHNhcHAudW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVua25vd246YHdoYXRzYXBwLnVua25vd25gfX0pKSxNYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj1lLmRlZmF1bHQ9dm9pZCAwO3ZhciByPU9jKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYGRlZmF1bHRgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLldlYnNvY2tldFZpc2l0b3JDbGllbnR9fSksbihPYygpLGUpLG4oa2MoKSxlKSxuKEFjKCksZSk7dmFyIGk9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLlNvY2tldEVycm9yfX0pLG4oamMoKSxlKX0pKSxOYz1PKG51bGwpLFBjPU8oITEpLEZjPU8oW10pLEljPWU9PntGYy51cGRhdGUodD0+Wy4uLnQsZV0pfSxMYz0oKT0+e2xldCBlO3JldHVybiBGYy51cGRhdGUodD0+KGU9dC5wb3AoKSx0KSksZT8/bnVsbH0sUmM9KCk9PkEoRmMpLmxlbmd0aD09PTAsemM9ayhOYyxlPT5lIT09bnVsbCksQmM9KGUse3VzZVN0YWNrOnQ9ITF9PXt9KT0+e05jLnVwZGF0ZShuPT4odCYmbiYmSWMobiksUGMuc2V0KG4hPT1udWxsKSxlKSl9LFZjPSgpPT57bGV0IGU9bnVsbDtSYygpfHwoZT1MYygpKSxOYy5zZXQoZSl9LEhjPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3B0aW9ucz0wXT1gT3B0aW9uc2AsZVtlLkdkcHJBbmRQcml2YWN5PTFdPWBHZHByQW5kUHJpdmFjeWAsZVtlLkF1dGhGb3JtPTJdPWBBdXRoRm9ybWAsZVtlLkNsb3NlQ2hhdD0zXT1gQ2xvc2VDaGF0YCxlW2UuQ2hhdFJhdGluZz00XT1gQ2hhdFJhdGluZ2AsZVtlLlRpY2tldEZvcm09NV09YFRpY2tldEZvcm1gLGV9KHt9KSxVYz0xZTMsV2M9U3ltYm9sKGBjb250ZW50TGlzdEl0ZW1gKSxHYz1TeW1ib2woYGNvbnRlbnRNZXNzYWdlQXR0YWNobWVudGApLEtjPWAtcmVwbGllc2AscWM9LjM1LEpjPTVlMyxZYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLFhjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5DYXJkQWN0aW9uVHlwZT1lLkNhcmRzTGF5b3V0PXZvaWQgMCxlLkNhcmRzTGF5b3V0PXtDYXJvdXNlbDpgY2Fyb3VzZWxgfSxlLkNhcmRBY3Rpb25UeXBlPXtPcGVuVXJsOmBvcGVuX3VybGB9fSkpLFpjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSl9KSksUWM9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLlJhdGluZ1RhcmdldD1lLkdyb3VwVHlwZT1lLkNoYW5uZWxUeXBlPWUuTWVzc2FnZVN1YlR5cGU9ZS5NZXNzYWdlVHlwZT1lLkF0dGFjaG1lbnRJbnZhbGlkUmVhc29uPWUuQXR0YWNobWVudFR5cGU9ZS5NZXNzYWdlQWN0aW9uVHlwZT12b2lkIDAsZS5NZXNzYWdlQWN0aW9uVHlwZT17VGV4dDpgdGV4dGAsT3BlblVybDpgb3Blbl91cmxgfSxlLkF0dGFjaG1lbnRUeXBlPXtDYXJkczpgY2FyZHNgLEZpbGU6YGZpbGVgLEltYWdlOmBpbWFnZWAsTWVkaWE6YG1lZGlhYCxJbnZhbGlkOmBpbnZhbGlkYH0sZS5BdHRhY2htZW50SW52YWxpZFJlYXNvbj17SW52YWxpZFNpemU6YGludmFsaWRfc2l6ZWAsSW52YWxpZFR5cGU6YGludmFsaWRfdHlwZWB9LGUuTWVzc2FnZVR5cGU9e01lc3NhZ2U6YG1lc3NhZ2VgLE5vdGU6YG5vdGVgLEV2ZW50OmBldmVudGAsSGVscDpgaGVscGB9LGUuTWVzc2FnZVN1YlR5cGU9e0FnZW50OmBhZ2VudGAsQ29udGFjdDpgY29udGFjdGAsVHJpZ2dlcjpgdHJpZ2dlcmAsQm90OmBib3RgLFN5c3RlbTpgc3lzdGVtYCxBZ2VudEV4dGVybmFsOmBhZ2VudF9leHRlcm5hbGAsRm91bmRFbWFpbDpgZm91bmRfZW1haWxgLENoYXRSZXNvbHZlOmBjaGF0X3Jlc29sdmVgLEVtYWlsOmBlbWFpbGB9LGUuQ2hhbm5lbFR5cGU9e0RlZmF1bHQ6YGRlZmF1bHRgLEVtYWlsOmBlbWFpbGAsRW1haWxJbnRlZ3JhdGlvbjpgZW1haWxfaW50ZWdyYXRpb25gLEZhY2Vib29rTWVzc2VuZ2VyOmBmYWNlYm9va19tZXNzZW5nZXJgLEdtYWlsOmBnbWFpbGAsU21hcnRzdXBwOmBzbWFydHN1cHBgLEluc3RhZ3JhbTpgaW5zdGFncmFtYCxXaGF0c2FwcDpgd2hhdHNhcHBgfTt2YXIgdDsoZnVuY3Rpb24oZSl7ZS5haT1gYWlgLGUuY2hhdGJvdD1gY2hhdGJvdGAsZS5tZXNzYWdlPWBtZXNzYWdlYH0pKHR8fChlLkdyb3VwVHlwZT10PXt9KSk7dmFyIG47KGZ1bmN0aW9uKGUpe2UuQWdlbnQ9YGFnZW50YCxlLkFpPWBhaWB9KShufHwoZS5SYXRpbmdUYXJnZXQ9bj17fSkpfSkpLCRjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5QYXJ0aWNpcGFudFR5cGU9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLmZyb209YGZyb21gLGUudG89YHRvYCxlLmNjPWBjY2AsZS5iY2M9YGJjY2B9KSh0fHwoZS5QYXJ0aWNpcGFudFR5cGU9dD17fSkpfSkpLGVsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5NZXNzYWdlQ29udGVudFR5cGU9ZS5NZXNzYWdlQ29udGVudD12b2lkIDA7dmFyIHQ7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLFVwbG9hZDpgdXBsb2FkYCxSYXRlRm9ybTpgcmF0ZV9mb3JtYCxUaWNrZXRGb3JtOmB0aWNrZXRfZm9ybWAsRW1haWw6YGVtYWlsYH19KShlLk1lc3NhZ2V8fD17fSksKGZ1bmN0aW9uKGUpe2UuVHlwZT17QWdlbnRKb2luOmBhZ2VudF9qb2luYCxBZ2VudEFzc2lnbjpgYWdlbnRfYXNzaWduYCxBZ2VudFVuYXNzaWduOmBhZ2VudF91bmFzc2lnbmAsQWdlbnRMZWF2ZTpgYWdlbnRfbGVhdmVgLENoYXRDbG9zZTpgY2hhdF9jbG9zZWAsQ2hhdFZpc2l0b3JDbG9zZTpgY2hhdF92aXNpdG9yX2Nsb3NlYH19KShlLkV2ZW50fHw9e30pLChmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLEZvdW5kRW1haWw6YGZvdW5kX2VtYWlsYH19KShlLkhlbHB8fD17fSl9KSh0fHwoZS5NZXNzYWdlQ29udGVudD10PXt9KSksZS5NZXNzYWdlQ29udGVudFR5cGU9ey4uLnQuTWVzc2FnZS5UeXBlLC4uLnQuRXZlbnQuVHlwZSwuLi50LkhlbHAuVHlwZX19KSksdGw9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KX0pKSxubD1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksbihZYygpLGUpLG4oWGMoKSxlKSxuKFpjKCksZSksbihRYygpLGUpLG4oJGMoKSxlKSxuKGVsKCksZSksbih0bCgpLGUpfSkpLHJsPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIG9mIHQpe2xldCB0PVN0cmluZyhyW2VdKTtuW3RdPXJ9cmV0dXJuIG59LGlsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09Tyh7fSk7cmV0dXJue3N1YnNjcmliZTplLHNldEdyb3VwczplPT57dChybChga2V5YCxlKSl9fX0pKCksYWw9ayhbaWxdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpKSxvbD17YXV0aEZvcm1EcmF3ZXI6YGF1dGhGb3JtRHJhd2VyYCxhdXRoRm9ybVByaXZhY3lOb3RpY2U6YGF1dGhGb3JtUHJpdmFjeU5vdGljZWAsYXV0aEZvcm1Qcml2YWN5Tm90aWNlU3dpdGNoOmBhdXRoRm9ybVByaXZhY3lOb3RpY2VTd2l0Y2hgLGF1dGhGb3JtU3VibWl0QnV0dG9uOmBhdXRoRm9ybVN1Ym1pdEJ1dHRvbmAsYXZhdGFyQWdlbnQ6YGF2YXRhckFnZW50YCxhdmF0YXJCb3Q6YGF2YXRhckJvdGAsYXZhdGFyR3JvdXA6YGF2YXRhckdyb3VwYCxhdmF0YXJJbmZvOmBhdmF0YXJJbmZvYCxidXR0b25BdHRhY2htZW50OmBidXR0b25BdHRhY2htZW50YCxidXR0b25DbG9zZUNoYXQ6YGJ1dHRvbkNsb3NlQ2hhdGAsYnV0dG9uQ2xvc2VEcmF3ZXI6YGJ1dHRvbkNsb3NlRHJhd2VyYCxidXR0b25Db2xsYXBzZUNoYXQ6YGJ1dHRvbkNvbGxhcHNlQ2hhdGAsYnV0dG9uRW1vamk6YGJ1dHRvbkVtb2ppYCxidXR0b25FeHBhbmRDaGF0OmBidXR0b25FeHBhbmRDaGF0YCxidXR0b25NaW5pbWl6ZUNoYXQ6YGJ1dHRvbk1pbmltaXplQ2hhdGAsYnV0dG9uT3B0aW9uczpgYnV0dG9uT3B0aW9uc2AsYnV0dG9uU2VuZDpgYnV0dG9uU2VuZGAsY2hhdFJhdGluZ0RyYXdlcjpgY2hhdFJhdGluZ0RyYXdlcmAsY2hhdFJhdGluZ0Vtb2ppQnV0dG9uOmBjaGF0UmF0aW5nRW1vamlgLGNoYXRSYXRpbmdTZW5kQnV0dG9uOmBjaGF0UmF0aW5nU2VuZEJ1dHRvbmAsY2hhdFJhdGluZ1RleHRhcmVhOmBjaGF0UmF0aW5nVGV4dGFyZWFgLGNoYXRSYXRpbmdGZWVkYmFja0J1dHRvbjpgY2hhdFJhdGluZ0ZlZWRiYWNrQnV0dG9uYCxjaGF0UmF0aW5nQnV0dG9uQWk6YGNoYXRSYXRpbmdCdXR0b25BaWAsY2hhdFJhdGluZ0J1dHRvbkFnZW50OmBjaGF0UmF0aW5nQnV0dG9uQWdlbnRgLGNsb3NlQ2hhdENvbmZpcm1CdXR0b246YGNsb3NlQ2hhdENvbmZpcm1CdXR0b25gLGNsb3NlQ2hhdERlY2xpbmVCdXR0b246YGNsb3NlQ2hhdERlY2xpbmVCdXR0b25gLGNsb3NlQ2hhdERyYXdlcjpgY2xvc2VDaGF0RHJhd2VyYCxmbGFzaE1lc3NhZ2U6YGZsYXNoTWVzc2FnZWAsZ2RwckRyYXdlcjpgZ2RwckRyYXdlcmAsaGVhZGVyVGl0bGU6YGhlYWRlclRpdGxlYCxoZWFkZXJTdGF0dXM6YGhlYWRlclN0YXR1c2AsaGVhZGVyQmFkZ2U6YGhlYWRlckJhZGdlYCxpbmxpbmVFbW9qaVBpY2tlcjpgaW5saW5lRW1vamlQaWNrZXJgLG1lc3NhZ2VBdHRhY2htZW50OmBtZXNzYWdlQXR0YWNobWVudGAsbWVzc2FnZUFnZW50OmBtZXNzYWdlQWdlbnRgLG1lc3NhZ2VCb3Q6YG1lc3NhZ2VCb3RgLG1lc3NhZ2VCb3RSZXBseTpgbWVzc2FnZUJvdFJlcGx5YCxtZXNzYWdlQm90QmFjazpgbWVzc2FnZUJvdEJhY2tgLG1lc3NhZ2VDb250YWN0OmBtZXNzYWdlQ29udGFjdGAsbWVzc2FnZUZpbGU6YG1lc3NhZ2VGaWxlYCxtZXNzYWdlR3JvdXA6YG1lc3NhZ2VHcm91cGAsbWVzc2FnZUltYWdlOmBtZXNzYWdlSW1hZ2VgLG9wdGlvbnNBY2Nlc3NpYmlsaXR5OmBvcHRpb25zQWNjZXNzaWJpbGl0eWAsb3B0aW9uc0RyYXdlcjpgb3B0aW9uc0RyYXdlcmAsb3B0aW9uc0V4cGFuZENoYXQ6YG9wdGlvbnNFeHBhbmRDaGF0YCxvcHRpb25zUHJpdmFjeU5vdGljZTpgb3B0aW9uc1ByaXZhY3lOb3RpY2VgLG9wdGlvbnNTb3VuZHM6YG9wdGlvbnNTb3VuZHNgLG9wdGlvbnNUcmFuc2NyaXB0OmBvcHRpb25zVHJhbnNjcmlwdGAscG9wdXA6YHBvcHVwYCxwb3B1cE1lc3NhZ2U6YHBvcHVwTWVzc2FnZWAscG9wdXBCdXR0b246YHBvcHVwQnV0dG9uYCxwb3B1cEJ1dHRvbkNsb3NlOmBwb3B1cEJ1dHRvbkNsb3NlYCxwcm9kdWN0Q2FyZDpgcHJvZHVjdENhcmRgLHByb2R1Y3RDYXJkQXJyb3dMZWZ0OmBwcm9kdWN0Q2FyZEFycm93TGVmdGAscHJvZHVjdENhcmRBcnJvd1JpZ2h0OmBwcm9kdWN0Q2FyZEFycm93UmlnaHRgLHByb2R1Y3RDYXJkQnV0dG9uOmBwcm9kdWN0Q2FyZEJ1dHRvbmAscHJvZHVjdENhcmRDYXJvdXNlbDpgcHJvZHVjdENhcmRDYXJvdXNlbGAscHJvZHVjdENhcmREZXNjcmlwdGlvbjpgcHJvZHVjdENhcmREZXNjcmlwdGlvbmAscHJvZHVjdENhcmRJbWFnZTpgcHJvZHVjdENhcmRJbWFnZWAscHJvZHVjdENhcmRJbmZvOmBwcm9kdWN0Q2FyZEluZm9gLHByb2R1Y3RDYXJkVGl0bGU6YHByb2R1Y3RDYXJkVGl0bGVgLHN5c3RlbU1lc3NhZ2U6YHN5c3RlbU1lc3NhZ2VgLHRleHRhcmVhOmB0ZXh0YXJlYWAsdGV4dGFyZWFQcmV2aWV3RmlsZTpgdGV4dGFyZWFQcmV2aWV3RmlsZWAsdGV4dGFyZWFQcmV2aWV3SW1hZ2U6YHRleHRhcmVhUHJldmlld0ltYWdlYCx0cmFuc2NyaXB0SW5wdXQ6YHRyYW5zY3JpcHRJbnB1dGAsdHJhbnNjcmlwdFNlbmRCdXR0b246YHRyYW5zY3JpcHRTZW5kYCx0aWNrZXRGb3JtRHJhd2VyOmB0aWNrZXRGb3JtRHJhd2VyYCx0aWNrZXRGb3JtU3VibWl0QnV0dG9uOmB0aWNrZXRGb3JtU3VibWl0QnV0dG9uYCx3aWRnZXRCdXR0b246YHdpZGdldEJ1dHRvbmAsd2lkZ2V0QnV0dG9uRnJhbWU6YHdpZGdldEJ1dHRvbkZyYW1lYCx3aWRnZXRCdXR0b25UZXh0OmB3aWRnZXRCdXR0b250ZXh0YCx3aWRnZXRJbWFnZVByZXZpZXc6YHdpZGdldEltYWdlUHJldmlld2Asd2lkZ2V0TWVzc2VuZ2VyOmB3aWRnZXRNZXNzZW5nZXJgLHdpZGdldE1lc3NlbmdlckZyYW1lOmB3aWRnZXRNZXNzZW5nZXJGcmFtZWAsd2lkZ2V0T25saW5lQmFkZ2U6YHdpZGdldE9ubGluZUJhZGdlYCx3aWRnZXRQb3B1cEZyYW1lOmB3aWRnZXRQb3B1cEZyYW1lYCx3aWRnZXRUeXBpbmdGcmFtZTpgd2lkZ2V0VHlwaW5nRnJhbWVgLHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2U6YHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2VgLHdpZGdldEhlYWRlcjpgd2lkZ2V0SGVhZGVyYH0sc2w9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb21gLGNsPWAvcG93ZXJlZC1ieS1zbWFydHN1cHBgLGxsPVtgY3NgLGBlc2AsYGZyYCxgaHVgLGBpdGAsYGRlYCxgbmxgLGBwbGBdLHVsPWBodHRwczovL3d3dy5zbWFydHN1cHAuY29tL215LWRhdGEtYW5kLWdkcHJgLGRsPU8oITEpLGZsPXJzKFUuU2Vzc2lvbklkLGBgKSxwbD0oKT0+e2xldHtwcm90b2NvbDplLGhvc3Q6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7ZT09PWBodHRwYD9gaHR0cGA6YGh0dHBzYH06Ly8ke3R9YH0sbWw9KCk9PntsZXR7bW9iaWxlU2RrOmUsdmlzaXRvcklkOnR9PVYuZ2V0T3B0aW9ucygpO2lmKGUmJnQpcmV0dXJuIHQ7dHJ5e3JldHVybiAkbygpfWNhdGNoKGUpe3JldHVybiBIKFN0cmluZyhlKSksbnVsbH19LGhsPShlLHQpPT57bGV0IG49Zm8oKS5sb2NhdGlvbi5ocmVmO3JldHVybiBlJiZ0JiYobj1gJHtufSR7bi5pbmNsdWRlcyhgP2ApP2AmYDpgP2B9c3MtYm90LXJ1bj0ke3R9YCksbn0sZ2w9KCk9PntKLmNsZWFyTWVzc2FnZXMoKSxtZCgpLEd1LmNsZWFyQXNzaWduZWRBZ2VudElkcygpLFJvKCksa28oVS5WaXNpdG9ySWQpfSxfbD1lPT57dHJ5e2VzKGUpfWNhdGNoKGUpe0goU3RyaW5nKGUpKX19LHZsPWFzeW5jKGU9ITEpPT57bGV0e2tleTp0LGxhbmc6bixpc1ByZXZpZXdNb2RlOnIscHJldmlld1dpdGhvdXRSZXNldDppLHNpdGVQbGF0Zm9ybTphLHRyaWdnZXJhYmxlOm8sX2NoYXRNYXhSZW9wZW5UaW1lOnMsYm90SWQ6Y309Vi5nZXRPcHRpb25zKCk7KHImJiFpfHxlKSYmZ2woKTtsZXQgbD1tbCgpLHU9QShsYik7cmV0dXJue2tleTp0LGlkOmwsY2xpZW50RmluZ2VycHJpbnQ6YXdhaXQgUW8oKSxpc1ByZXZpZXdNb2RlOnIsc2l0ZVBsYXRmb3JtOmEsdHJpZ2dlcmFibGU6byxfY2hhdE1heFJlb3BlblRpbWU6cyxuYW1lOnUubmFtZSxlbWFpbDp1LmVtYWlsLHBob25lOnUucGhvbmUsZ3JvdXA6dS5ncm91cCxsYW5nOnUubGFuZz8/bix2YXJpYWJsZXM6dS52YXJpYWJsZXMsd2lkZ2V0VmVyc2lvbjpgMy4wYCx2aXNpdHM6dHMoKSxpc1dpZGdldFZpc2libGU6QShSXyksaXNXaWRnZXRPcGVuOkEoWCkscGFnZVVybDpobChyLGMpLHBhZ2VUaXRsZTpmbygpLmRvY3VtZW50LnRpdGxlLGRvbWFpbjpmbygpLmxvY2F0aW9uLmhvc3RuYW1lfHxgdW5rbm93bmAscmVmZXJlcjpmbygpLmRvY3VtZW50LnJlZmVycmVyLGJ1bmRsZVZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgfX0seWw9KGUsdCk9PntsZXR7aXNQcmV2aWV3TW9kZTpufT1WLmdldE9wdGlvbnMoKTshZSYmdCE9PUEoZmwpJiYhbiYmKGdsKCksQShYKSYmWC5zZXQoITEpKSxmbC5zZXQodCl9LGJsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09TygpO3JldHVybntzdWJzY3JpYmU6ZSxpbml0aWFsaXplOmU9PnQoZSl9fSkoKSx4bD1gRklMRWAsU2w9MmUzLENsPWU9PmUuc3BsaXQoYC9gKVswXT09PWBpbWFnZWAsd2w9ZT0+ISFlLm1hdGNoKC9edmlkZW9cLyg/Om1wNHx3ZWJtfG9nZyl7MX0kLyk7YXN5bmMgZnVuY3Rpb24gVGwoZSl7aWYoIUZpbGVSZWFkZXIpcmV0dXJuIGpvKGBGaWxlUmVhZGVyIG5vdCBzdXBwb3J0ZWRgKSxudWxsO2xldCB0PW5ldyBGaWxlUmVhZGVyO3JldHVybiBuZXcgUHJvbWlzZShuPT57dC5vbmxvYWQ9KCk9PntpZighdC5yZXN1bHQpe24obnVsbCk7cmV0dXJufW4odHlwZW9mIHQucmVzdWx0PT1gc3RyaW5nYCYmdC5yZXN1bHQuc3RhcnRzV2l0aChgZGF0YTppbWFnZWApP3QucmVzdWx0Om51bGwpfSx0Lm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIGxvYWQgaW1hZ2UgZGF0YWApLG4obnVsbCl9LHQucmVhZEFzRGF0YVVSTChlKX0pfWFzeW5jIGZ1bmN0aW9uIEVsKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaW1nYCk7bi5vbmxvYWQ9KCk9Pnt0KHt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0pfSxuLm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIG9idGFpbiBpbWFnZSBkaW1lbnNpb25zYCksdChudWxsKX0sbi5zcmM9ZX0pfWZ1bmN0aW9uIERsKGUpe3JldHVybntob3Jpem9udGFsOmUud2lkdGg+ZS5oZWlnaHQsdmVydGljYWw6ZS5oZWlnaHQ+ZS53aWR0aH19dmFyIE9sPWBhci5hei5iZy5ici5icy5jYS5jbi5jcy5kYS5kZS5lbC5lbi5lcy5ldC5mYS5maS5maWwuZnIuaGUuaGkuaHIuaHUuaXMuaXQuamEua2EubHQubHYubWsubmwubm8ucGwucHQucm8ucnUuc2suc2wuc3Iuc3YudGgudHIudHcudWtgLnNwbGl0KGAuYCksa2w9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLkZldGNoQWRhcHRlcj12b2lkIDA7dmFyIG49dChhYygpKTtlLkZldGNoQWRhcHRlcj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17fSx0aGlzLm9wdGlvbnM9ZX1hc3luYyByZXF1ZXN0KGUsdCxyLGksYSl7bGV0IG89ey4uLnRoaXMub3B0aW9ucywuLi5hfSxzPWk/YD9gK24uZGVmYXVsdC5zdHJpbmdpZnkoaSk6YGA7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGAke28uYmFzZVVSTHx8YGB9JHt0fSR7c31gLHttZXRob2Q6ZSxib2R5OnI/SlNPTi5zdHJpbmdpZnkocik6bnVsbCwuLi5vfSk7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxzdGF0dXNUZXh0Om4uc3RhdHVzVGV4dCxkYXRhOmF3YWl0IG4uanNvbigpLGhlYWRlcnM6Wy4uLm4uaGVhZGVycy5lbnRyaWVzKCldLnJlZHVjZSgoZSxbdCxuXSk9PihlW3RdPW4sZSkse30pfX1jYXRjaChlKXt0aHJvdyBlLmlzT3BlbkFwaUVycm9yPSEwLGV9fXdpdGhPcHRpb25zKHQpe3JldHVybiBuZXcgZSh0KX19fSkpLEFsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Qcm9qZWN0TmFtZT1lLkVycm9yQ29kZT12b2lkIDAsZS5FcnJvckNvZGU9e0JhZFJlcXVlc3Q6YGJhZF9yZXF1ZXN0YCxOb3RBbGxvd2VkOmBub3RfYWxsb3dlZGAsTm90Rm91bmQ6YG5vdF9mb3VuZGAsRm9yYmlkZGVuOmBmb3JiaWRkZW5gLFRvb01hbnlSZXF1ZXN0czpgdG9vX21hbnlfcmVxdWVzdHNgLFVuYXV0aG9yaXplZDpgdW5hdXRob3JpemVkYCxVbnByb2Nlc3NhYmxlOmB1bnByb2Nlc3NhYmxlYH0sZS5Qcm9qZWN0TmFtZT17V2lkZ2V0OmB3aWRnZXRgLENoYXRib3Q6YGNoYXRib3RgfX0pKSxqbD1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuVHJhbnNsYXRpb25zQ2xpZW50UmF3PWUuVHJhbnNsYXRpb25zQ2xpZW50PXZvaWQgMCxlLlRyYW5zbGF0aW9uc0NsaWVudD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFkYXB0ZXI9ZSx0aGlzLnJhdz1uZXcgdCh0aGlzLmFkYXB0ZXIpfWdldERlZmF1bHRzKGUsdCxyKXtyZXR1cm4gdGhpcy5hZGFwdGVyLnJlcXVlc3QoYGdldGAsYC8ke2V9L3RyYW5zbGF0aW9ucy9sYW5nLyR7dH0vZGVmYXVsdHNgLG51bGwsbnVsbCxyKS50aGVuKG4pfX07dmFyIHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5hZGFwdGVyPWV9Z2V0RGVmYXVsdHMoZSx0LG4pe3JldHVybiB0aGlzLmFkYXB0ZXIucmVxdWVzdChgZ2V0YCxgLyR7ZX0vdHJhbnNsYXRpb25zL2xhbmcvJHt0fS9kZWZhdWx0c2AsbnVsbCxudWxsLG4pfX07ZS5UcmFuc2xhdGlvbnNDbGllbnRSYXc9dDtmdW5jdGlvbiBuKGUpe3JldHVybiBlLmRhdGF9fSkpLE1sPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBUcmFuc2xhdGlvbnNDbGllbnRBcGk9dm9pZCAwO3ZhciB0PWpsKCksbj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMuYWRhcHRlcj1lLHRoaXMudHJhbnNsYXRpb25zPW5ldyB0LlRyYW5zbGF0aW9uc0NsaWVudChlKX13aXRoT3B0aW9ucyh0KXtyZXR1cm4gbmV3IGUodGhpcy5hZGFwdGVyLndpdGhPcHRpb25zKHQpKX19O2UuU21hcnRzdXBwVHJhbnNsYXRpb25zQ2xpZW50QXBpPW4sZS5kZWZhdWx0PW59KSksTmw9cygoZT0+e3ZhciB0PWUmJmUuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOyghaXx8KGBnZXRgaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKSkmJihpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9KTooZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9biksZVtyXT10W25dfSkpLG49ZSYmZS5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsbil7Zm9yKHZhciByIGluIGUpciE9PWBkZWZhdWx0YCYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiZ0KG4sZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLG4oQWwoKSxlKSxuKE1sKCksZSksbihqbCgpLGUpLGUuZGVmYXVsdD1NbCgpLlNtYXJ0c3VwcFRyYW5zbGF0aW9uc0NsaWVudEFwaX0pKSxQbD1rbCgpLEZsPU5sKCksSWw9ZT0+T2wuaW5jbHVkZXMoZSksTGw9ZT0+SWwoZSk/ZTpgZW5gLFJsPSgpPT57bGV0e2xhbmc6ZX09Vi5nZXRPcHRpb25zKCkse2xhbmc6dH09QShsYik7cmV0dXJuIExsKHQ/P2UpfTtmdW5jdGlvbiB6bCgpe3JldHVybiBuZXcgRmwuVHJhbnNsYXRpb25zQ2xpZW50KG5ldyBQbC5GZXRjaEFkYXB0ZXIoe2Jhc2VVUkw6YCR7Vi5nZXRPcHRpb25zKCkudHJhbnNsYXRpb25zQmFzZVVybH0vYXBpL3YxYH0pKX12YXIgQmw9YXN5bmMgZT0+emwoKS5nZXREZWZhdWx0cyhGbC5Qcm9qZWN0TmFtZS5XaWRnZXQsZSksVmw9KGUsdCk9PntsZXR7dHJhbnNsYXRlczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm57Li4uZSwuLi5uW3RdJiZuW3RdfX0sSGw9TyhgZW5gKSxVbD1PKHt9KSxXbD1hc3luYyBlPT57dHJ5e2xldCB0PVZsKGF3YWl0IEJsKGUpLGUpO1VsLnVwZGF0ZShuPT4oey4uLm4sW2VdOnR9KSl9Y2F0Y2h7am8oYEZldGNoIHRyYW5zbGF0aW9ucyBvZiAnJHtlfScgbGFuZ3VhZ2UgZmFpbGVkLmApfX0sR2w9YXN5bmMgZT0+e0EoVWwpW2VdfHxhd2FpdCBXbChlKSxIbC5zZXQoZSl9LEtsPWFzeW5jKCk9PntsZXQgZT1SbCgpO0hsLnNldChlKSxhd2FpdCBXbChlKX0scWw9ZT0+e2xldCB0PUEoSGwpLG49ey4uLkEoVWwpW3RdLC4uLmV9O1VsLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LEpsPShlLHQsbik9PntsZXQgcj1BKFVsKSxpPWB8JHt0fXxgO2lmKE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTApcmV0dXJuIGk7bGV0IGE9cltlXT8uW3RdfHxpO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoZT0+e2xldCB0PVJlZ0V4cChgeyR7ZX19YCxgZ2ApO2E9YS5yZXBsYWNlKHQsbltlXSl9KSxhfSxXPWsoW0hsLFVsXSwoW2VdKT0+KHQsbj17fSk9PkpsKGUsdCxuKSksWWw9KCgpPT57bGV0IGU9TyhbXSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lLHI9KCk9PkEoZSkubWFwKGU9PmUuZmlsZSksaT0odCxuKT0+KG58fEEoZSkpLmZpbmQoZT0+ZS5maWxlLm5hbWU9PT10KXx8bnVsbCxhPWU9Pih7ZmlsZTplLHByZXZpZXc6e30scHJldmlld1N0YXRlOmBub25lYCx1cGxvYWRTdGF0dXM6YG5vbmVgfSksbz1lPT57bGV0IHQ9QXJyYXkuaXNBcnJheShlKT9lOltlXTtuKGU9PmUubGVuZ3RoK3QubGVuZ3RoPjU/KGdzKGAke0EoVykoYGZpbGVVcGxvYWQudG9vTWFueUZpbGVzYCl9IDVgKSxlKTpbLi4uZSwuLi50Lm1hcChhKV0pLG0odCl9LHM9ZT0+e24odD0+dC5maWx0ZXIodD0+dC5maWxlIT09ZSkpfSxjPSgpPT5BKGUpLmxlbmd0aCxsPSgpPT5jKCk+PTUsdT0oKT0+ZS5zZXQoW10pLGQ9KCk9PntlLnVwZGF0ZShlPT4oZS5mb3JFYWNoKGU9PmUudXBsb2FkU3RhdHVzPWBpbi1wcm9ncmVzc2ApLGUpKX0sZj10PT57ZS51cGRhdGUoZT0+e2xldCBuPWkodCxlKTtyZXR1cm4gbiYmKG4udXBsb2FkU3RhdHVzPWBkb25lYCksZX0pfSxwPWU9PmkoZS5uYW1lKT8ucHJldmlld1N0YXRlIT09YG5vbmVgLG09ZT0+e2UuZm9yRWFjaChlPT52b2lkIGgoZSkpfSxoPWFzeW5jIHQ9PntpZihwKHQpKXJldHVybjtsZXQgbj1hd2FpdCBUbCh0KSxyPW4/YXdhaXQgRWwobik6bnVsbCxhPXI/RGwocik6bnVsbDtlLnVwZGF0ZShlPT57bGV0IG89aSh0Lm5hbWUsZSk7cmV0dXJuIG8/KG8ucHJldmlld1N0YXRlPWByZWFkeWAsby5wcmV2aWV3PXtkYXRhOm4sZGltZW5zaW9uczpyLG9yaWVudGF0aW9uOmF9LFsuLi5lXSk6ZX0pfTtyZXR1cm57c3Vic2NyaWJlOnQsZ2V0RmlsZXM6cixmaW5kOmksYWRkOm8scmVtb3ZlOnMsY291bnQ6Yyxpc0xpbWl0UmVhY2hlZDpsLGNsZWFyOnUsc2V0VXBsb2FkaW5nU3RhdHVzOmQsc2V0RmlsZVVwbG9hZGVkOmZ9fSkoKSxYbD0oKCk9PntsZXQgZT1bXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cHVzaDp0PT57ZS5wdXNoKHQpfSxleGVjdXRlQWxsOigpPT57Zm9yKDtlLmxlbmd0aD4wOyl7bGV0IHQ9ZS5zaGlmdCgpO3QmJnQoKX19fSl9KSgpLFpsPSgpPT57bGV0e3dpZGdldFYzVXJsOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke2V9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1haS1pZGVudGl0eS5wbmdgfSxRbD1lPT4oey4uLmUsYXZhdGFyVXJsOmUuYXZhdGFyVXJsfHxabCgpfSksJGw9KCgpPT57bGV0e3VwZGF0ZTplLHN1YnNjcmliZTp0LHNldDpufT1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0SWRlbnRpdGllczplPT57bihybChgaWRgLGUubWFwKFFsKSkpfSxhZGRJZGVudGl0eTp0PT57ZShlPT4oey4uLmUsW3QuaWRdOnR9KSl9LHVwZGF0ZUlkZW50aXR5Oih0LG4pPT57ZShlPT5lW3RdP3suLi5lLFt0XTp7Li4uZVt0XSwuLi5ufX06ZSl9fX0pKCksRz1ubCgpLEs9dShNYygpLDEpLGV1PWU9Pnt2byhgaW5pdCBkYXRhYCxlKSxkbC5zZXQoITApLHlsKGUuY2hhdCxlLnNlc3Npb25JZCk7bGV0IHQ9ZS52aXNpdG9yLmlkO19sKHQpLG5zKGUudmlzaXRvci52aXNpdHMpLE11LnNldFZpc2l0b3JEYXRhKGUudmlzaXRvciksaG8oe3ZpZDp0fSksYmwuaW5pdGlhbGl6ZShlLmZpbGVVcGxvYWQpLG9zLnNldChlLmJyb3dzZXIpLEJ1LnNldEFnZW50cyhlLmFjY291bnQuYWdlbnRzKSwkbC5zZXRJZGVudGl0aWVzKGUuYWNjb3VudC5ib3RJZGVudGl0aWVzKSxlLmNoYXQ/LnZpcnR1YWxBZ2VudCE9PXZvaWQgMCYmQnUuc2V0VmlydHVhbEFnZW50KGUuY2hhdD8udmlydHVhbEFnZW50KSxpbC5zZXRHcm91cHMoZS5hY2NvdW50Lmdyb3VwcyksaGQoZS5hY2NvdW50LnN0YXR1cyksZS5jaGF0JiYocXAoKSYmaWQuc2V0KGUuY2hhdC5yYXRpbmdTdWdnZXN0ZWRUYXJnZXR8fG51bGwpLGVkLnNldChlLmNoYXQuc3RhdHVzKSxkZChlLmNoYXQuaXNDbG9zZWQpLHJkLnNldChlLmNoYXQudW5yZWFkSW5mby5sYXN0UmVhZEF0KSxKLnNldE1lc3NhZ2VzKGUuY2hhdC5tZXNzYWdlcy5maWx0ZXIoZT0+IVpmKGUpKSksR3Uuc2V0QXNzaWduZWRBZ2VudElkcyhlLmNoYXQuYXNzaWduZWRJZHM/P1tdKSxlLmNoYXQud2lkZ2V0T3B0aW9ucyYmWHUudXBkYXRlR2VuZXJhbE9wdGlvbnMoZS5jaGF0LndpZGdldE9wdGlvbnMpKSxDXy5zZXQoITApLHouZW1pdChgd2lkZ2V0SW5pdGAsITApLFhsLmV4ZWN1dGVBbGwoKX0sdHU9ZT0+e2NvbnNvbGUuZXJyb3IoZSl9LG51PSgpPT57ZGwuc2V0KCExKX0scnU9KHtjaGF0SWQ6ZX0pPT57TXAuc2V0KCExKSxhZC5zZXQoZSksZWQuc2V0KEsuQ2hhdFN0YXR1cy5PcGVuKSxYdS5zZXRNZXNzYWdlT3B0aW9ucyh7ZGlzYWJsZUF0dGFjaG1lbnRzOiExfSl9LGl1PSgpPT57ZWQuc2V0KEsuQ2hhdFN0YXR1cy5TZXJ2ZWQpLGRkKCExKX0sYXU9KHttZXNzYWdlOmV9KT0+e2xldHtjbG9zZVR5cGU6dCxhZ2VudElkOm59PWUuY29udGVudC5kYXRhOyh0PT09YGFnZW50X2Nsb3NlYHx8dD09PWBib3RfY2xvc2VgKSYmKEd1LnNldEFzc2lnbmVkQWdlbnRJZHMoW10pLGVkLnNldChLLkNoYXRTdGF0dXMuQ2xvc2VkKSxKLmFkZE1lc3NhZ2UoZSksei5lbWl0KGBjaGF0Q2xvc2VkYCxlKSx0PT09YGFnZW50X2Nsb3NlYCYmUW0obj9BKFZ1KG4pKT8uZnVsbG5hbWU6dm9pZCAwKSl9LG91PSh7bWVzc2FnZTplfSk9PntxcCgpJiZZcCh4cyksZGQoITAse2J5VmlzaXRvcjohMH0pLEouYWRkTWVzc2FnZShlKSx6LmVtaXQoYGNoYXRWaXNpdG9yQ2xvc2VkYCxlKSxabSgpfSxzdT0oe2NoYW5nZXM6ZX0pPT57ZS53aWRnZXRPcHRpb25zJiZYdS51cGRhdGVHZW5lcmFsT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLGUuaXNDbG9zZWQhPT12b2lkIDAmJmRkKGUuaXNDbG9zZWQpLGUudmlydHVhbEFnZW50IT09dm9pZCAwJiZCdS5zZXRWaXJ0dWFsQWdlbnQoZS52aXJ0dWFsQWdlbnQpfSxjdT1hc3luYyh7bWVzc2FnZTplfSk9PntpZihaZihlKSlyZXR1cm47bGV0IHQ9QSh6XykmJllmKGUpOyFBKFgpJiZRZihlKSYmIXQ/QXAoZSk6YXdhaXQgSi5hZGRNZXNzYWdlKGUpLF9kKCksZS53aWRnZXRPcHRpb25zJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLHQmJlVfKCksei5lbWl0KGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxsdT1lPT57Y3UoZSl9LHV1PSh7bWVzc2FnZUlkOmUsZGVsZXRlZEF0OnR9KT0+e0EoSilbZV0/LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNoYXRSZXNvbHZlP0ouZGVsZXRlTWVzc2FnZShlKTpKLm1hcmtNZXNzYWdlQXNEZWxldGVkKGUsdCl9LGR1PSh7bWVzc2FnZTplfSk9PntKLnJlcGxhY2VNZXNzYWdlKGUpLGUud2lkZ2V0T3B0aW9ucyYmZS5pZD09PUEoQnApJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpfSxmdT0oe21lc3NhZ2U6ZSxhZ2VudDp0fSk9PntHdS5hZGRBc3NpZ25lZEFnZW50SWQoZS5jb250ZW50LmRhdGEuYWdlbnRJZCksSi5hZGRNZXNzYWdlKGUpLHouZW1pdChgYWdlbnRKb2luZWRgLHQpfSxwdT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLmFnZW50SWQpLEouYWRkTWVzc2FnZShlKX0sbXU9KHttZXNzYWdlOmV9KT0+e0d1LmFkZEFzc2lnbmVkQWdlbnRJZChlLmNvbnRlbnQuZGF0YS5hc3NpZ25lZCksSi5hZGRNZXNzYWdlKGUpfSxodT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLnVuYXNzaWduZWQpLEouYWRkTWVzc2FnZShlKX0sZ3U9ZT0+eyFlLnR5cGluZy5pcyYmQShNcCl8fG5kLnNldChlLnR5cGluZy5pcyl9LF91PWU9PntyZC5zZXQoZS5sYXN0UmVhZEF0KX0sdnU9KHttZXNzYWdlOmUscmF0aW5nOnR9KT0+e0oudXBkYXRlTWVzc2FnZVJhdGluZyhlKSx6LmVtaXQoYGNoYXRSYXRlZGAsdCl9LHl1PWU9Pnt6LmVtaXQoYHRyYW5zY3JpcHRQZGZgLGUpfSxidT0oe2lkOmUsY2hhbmdlczp0fSk9PntCdS51cGRhdGVBZ2VudChlLHQpfSx4dT0oe2lkOmUsc3RhdHVzOnR9KT0+e0J1LnVwZGF0ZUFnZW50KGUse3N0YXR1czp0fSl9LFN1PSh7c3RhdHVzOmV9KT0+e2hkKGUpfSxDdT1lPT57TXUudXBkYXRlVmlzaXRvckRhdGEoZSl9LHd1PWU9Pnt6LmVtaXQoYGNvbnRhY3RBY3F1aXJlZGAsZSl9LFR1PWU9PnsocXAoKXx8SnAoKSkmJmlkLnNldChlLnJhdGluZ1N1Z2dlc3RlZFRhcmdldCl9LEV1PSgpPT57QShpZCkmJmlkLnNldChudWxsKX0sRHU9KHtpZDplLGlzQWN0aXZlOnR9KT0+eyRsLnVwZGF0ZUlkZW50aXR5KGUse2lzQWN0aXZlOnR9KX0sT3U9RGMoKSxrdT1hc3luYyBlPT57bGV0IHQ9YXdhaXQgVi5hd2FpdE9wdGlvbnMoKTtyZXR1cm4gbmV3IEsuV2Vic29ja2V0VmlzaXRvckNsaWVudCh7ZGF0YTplLGNvbm5lY3Rpb246e3VybDpwbCgpLHNvY2tldDp0Lm1vY2s/bmV3IE91LlNvY2tldE1vY2sodC5tb2NrKTp2b2lkIDAsYmFsYW5jZXJVcmw6dC5iYWxhbmNlclVybCxvcHRpb25zOntwYXRoOmAvc29ja2V0YCxhdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITB9fX0pfSxBdT0oKT0+e2xldCBlPW51bGwsdD0oKT0+ISFlLG49KCk9PntpZighZSl0aHJvdyBFcnJvcihgVmlzaXRvciBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LHI9YXN5bmMgdD0+e2U9YXdhaXQga3UoYXdhaXQgdmwodCkpLGUmJihqdShlKSxhd2FpdCBlLmNvbm5lY3QoKS5jYXRjaChlPT57am8oYEZhaWxlZCBjb25uZWN0IHRvIHNlcnZlci5gLGUpfSkpfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Z2V0Q2xpZW50Om4saW5pdENsaWVudDpyLHJlbG9hZENsaWVudDphc3luYyh0LG4pPT57YXdhaXQgZT8uZGlzY29ubmVjdCgpLHQmJlYudXBkYXRlT3B0aW9ucyh7bW9jazp0fSksYXdhaXQgcihuKX0saXNJbml0aWFsaXplZDp0fSl9LGp1PWU9PntlLm9uKGBpbml0aWFsaXplZGAsZXUpLGUub24oYGVycm9yYCx0dSksZS5vbihgZGlzY29ubmVjdGAsbnUpLGUub24oYGNoYXQub3BlbmVkYCxydSksZS5vbihgY2hhdC5zZXJ2ZWRgLGl1KSxlLm9uKGBjaGF0LmNsb3NlZGAsYXUpLGUub24oYGNoYXQudmlzaXRvcl9jbG9zZWRgLG91KSxlLm9uKGBjaGF0LnVwZGF0ZWRgLHN1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLGx1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGAsZHUpLGUub24oYGNoYXQubWVzc2FnZV9kZWxldGVkYCx1dSksZS5vbihgY2hhdC5hZ2VudF9qb2luZWRgLGZ1KSxlLm9uKGBjaGF0LmFnZW50X2xlZnRgLHB1KSxlLm9uKGBjaGF0LmFnZW50X2Fzc2lnbmVkYCxtdSksZS5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCxodSksZS5vbihgY2hhdC5hZ2VudF90eXBpbmdgLGd1KSxlLm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsX3UpLGUub24oYGNoYXQucmF0ZWRgLHZ1KSxlLm9uKGBjaGF0LnJhdGluZ19zdWdnZXN0ZWRgLFR1KSxlLm9uKGBjaGF0LnJhdGluZ19jYW5jZWxsZWRgLEV1KSxlLm9uKGBjaGF0LnRyYW5zY3JpcHRfcGRmYCx5dSksZS5vbihgYWdlbnQudXBkYXRlZGAsYnUpLGUub24oYGFnZW50LnN0YXR1c191cGRhdGVkYCx4dSksZS5vbihgYWNjb3VudC51cGRhdGVkYCxTdSksZS5vbihgdmlzaXRvci51cGRhdGVkYCxDdSksZS5vbihgY29udGFjdC5hY3F1aXJlZGAsd3UpLGUub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCxEdSl9LHE9QXUoKSxNdT0oKCk9PntsZXQgZT1PKG51bGwpLHtzdWJzY3JpYmU6dCxzZXQ6bix1cGRhdGU6cn09ZSxpPWU9PntuKGUpfSxhPWU9PntyKHQ9PnQ/ey4uLnQsLi4uZX06bnVsbCl9LG89KGUsdCk9Pnt0cnl7cS5nZXRDbGllbnQoKS51cGRhdGUoe1tlXTp0fSl9Y2F0Y2godCl7am8oYFVwZGF0ZSBvZiB2aXNpdG9yIHByb3BlcnR5ICcke2V9JyBmYWlsZWQuYCxTdHJpbmcodCkpfX07cmV0dXJue3N1YnNjcmliZTp0LHNldFZpc2l0b3JEYXRhOmksdXBkYXRlVmlzaXRvckRhdGE6YSx1cGRhdGVWaXNpdG9yUHJvcGVydHk6KGUsdCk9PntpZighQShDXykpe3ViKGUsdCk7cmV0dXJufWEoe1tlXTp0fSksbyhlLHQpfSx1cGRhdGVWaXNpdG9yVmFyaWFibGVzOnQ9PntpZighQShDXykpe3ViKGB2YXJpYWJsZXNgLHQpO3JldHVybn1sZXQgbj1BKGUpO2lmKCFuKXJldHVybjtsZXQgcj1uLnZhcmlhYmxlczthKHt2YXJpYWJsZXM6ey4uLnIsLi4udH19KTtsZXQgaT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGU9Pnt0W2VdIT09cltlXSYmKGk9ey4uLmksW2VdOnRbZV19KX0pLE9iamVjdC5rZXlzKGkpLmxlbmd0aCE9PTAmJm8oYHZhcmlhYmxlc2AsaSl9LHVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YTp0PT57aWYoIUEoQ18pKXt1YihgY29udGFjdERhdGFgLHtwcm9wZXJ0aWVzOnR9KTtyZXR1cm59bGV0IG49QShlKTtpZighbilyZXR1cm47bGV0IHI9bj8uY29udGFjdERhdGE/LnByb3BlcnRpZXM7YSh7dmFyaWFibGVzOnsuLi5yLC4uLnR9fSk7bGV0IGk9e307T2JqZWN0LmtleXModCkuZm9yRWFjaChlPT57KCFyfHx0W2VdIT09cltlXSkmJihpPXsuLi5pLFtlXTp0W2VdfSl9KSxPYmplY3Qua2V5cyhpKS5sZW5ndGghPT0wJiZvKGBjb250YWN0RGF0YWAse3Byb3BlcnRpZXM6dH0pfX19KSgpLE51PShlLHQpPT5lLmhhc093blByb3BlcnR5KHQpLFB1PWU9PnR5cGVvZiBlPT1gYm9vbGVhbmAsRnU9ZT0+dHlwZW9mIGU9PWBudW1iZXJgLEl1PWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiYhQXJyYXkuaXNBcnJheShlKSxMdT1lPT50eXBlb2YgZT09YHN0cmluZ2B8fGUgaW5zdGFuY2VvZiBTdHJpbmcsUnU9ZT0+THUoZSl8fEZ1KGUpfHxQdShlKSx6dT1lPT57bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2xldCByPWVbbl07UnUocik/dFtuXT1yOkl1KHIpJiZOdShyLGB2YWx1ZWApJiZSdShyLnZhbHVlKSYmKHRbbl09ci52YWx1ZSl9KSx0fSxCdT0oKCk9PntsZXR7dXBkYXRlOmUsc3Vic2NyaWJlOnQsc2V0Om59PU8oe30pO3JldHVybntzdWJzY3JpYmU6dCxzZXRBZ2VudHM6ZT0+e24ocmwoYGlkYCxlKSl9LGFkZEFnZW50OnQ9PntlKGU9Pih7Li4uZSxbdC5pZF06dH0pKX0sdXBkYXRlQWdlbnQ6KHQsbik9PntlKGU9PmVbdF0/ey4uLmUsW3RdOnsuLi5lW3RdLC4uLm59fTplKX0sc2V0VmlydHVhbEFnZW50OnQ9PntsZXR7ZGVzY3JpcHRpb246bixhdmF0YXI6cixuYW1lOml9PXQsYT17fTtuJiYoYS5kZXNjcmlwdGlvbj1uKSxyJiYoYS5hdmF0YXI9ciksaSYmKGEuZnVsbG5hbWU9aSksZShlPT4oT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57ZVt0XT17Li4uZVt0XSwuLi5hfX0pLGUpKX19fSkoKSxWdT1lPT5rKFtCdV0sKFt0XSk9PnRbZV0/P251bGwpLEh1PWsoW2soW0J1XSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+IWUuZGlzYWJsZWQpKSxNdV0sKFtlLHRdKT0+e2xldCBuPXQ/Lmdyb3VwO3JldHVybiFufHxuPT09YGRlZmF1bHRgP2U6ZS5maWx0ZXIoZT0+ZS5ncm91cHMubGVuZ3RoPT09MHx8ZS5ncm91cHMuaW5jbHVkZXMobikpfSksVXU9ayhbSHVdLChbZV0pPT5lLmZpbHRlcihlPT5lLnN0YXR1cz09PUsuQWdlbnRTdGF0dXMuT25saW5lKSksV3U9ZT0+e2lmKGUpcmV0dXJuYCR7ZX0/c2l6ZT04MGA7bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1hdmF0YXIucG5nYH0sR3U9KCgpPT57bGV0e3N1YnNjcmliZTplLHNldDp0LHVwZGF0ZTpufT1PKFtdKTtyZXR1cm57c3Vic2NyaWJlOmUsc2V0QXNzaWduZWRBZ2VudElkczplPT57dChlKX0sYWRkQXNzaWduZWRBZ2VudElkOmU9PntuKHQ9PlsuLi5uZXcgU2V0KFsuLi50LGVdKV0pfSxyZW1vdmVBc3NpZ25lZEFnZW50SWQ6ZT0+e24odD0+dC5maWx0ZXIodD0+dCE9PWUpKX0sY2xlYXJBc3NpZ25lZEFnZW50SWRzOigpPT57dChbXSl9fX0pKCksS3U9ayhbR3UsQnVdLChbZSx0XSk9PmUubWFwKGU9PnRbZV0pLmZpbHRlcihCb29sZWFuKSkscXU9ayhbS3VdLChbZV0pPT5lLmxlbmd0aD4wKSxKdT1rKFtLdV0sKFtlXSk9PmUuZmlsdGVyKGU9PiFlLmRpc2FibGVkKSksWXU9ayhbS3VdLChbZV0pPT5lLnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLFh1PSgoKT0+e2xldCBlPU8oe2Rpc2FibGVBdHRhY2htZW50czohMSxkaXNhYmxlQXV0aGVudGljYXRpb246ITEsZGlzYWJsZUlucHV0OiExfSksdD1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOmsoW2UsdF0sKFtlLHRdKT0+KHsuLi5lLC4uLnR9KSkuc3Vic2NyaWJlLHVwZGF0ZUdlbmVyYWxPcHRpb25zOnQ9PntlLnVwZGF0ZShlPT4oey4uLmUsLi4udH0pKX0sc2V0TWVzc2FnZU9wdGlvbnM6ZT0+e3Quc2V0KGUpfX19KSgpLFp1PWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXR0YWNobWVudHMpLFF1PWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3Blbj0wXT1gT3BlbmAsZVtlLkNsb3NlZD0xXT1gQ2xvc2VkYCxlW2UuQ2xvc2VkQnlWaXNpdG9yPTJdPWBDbG9zZWRCeVZpc2l0b3JgLGV9KHt9KSwkdT1PKEsuQWNjb3VudFN0YXR1cy5PZmZsaW5lKSxlZD1PKG51bGwpLHRkPU8oUXUuT3BlbiksbmQ9TyghMSkscmQ9TyhudWxsKSxpZD1PKG51bGwpLGFkPU8oYGApLG9kPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5QZW5kaW5nKTtrKFtlZF0sKFtlXSk9PmUhPT1udWxsKTt2YXIgc2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLlNlcnZlZCksY2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLk9wZW4pLGxkPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5DbG9zZWQpLHVkPWsoW3NkLHRkXSwoW2UsdF0pPT5lJiZ0PT09UXUuT3BlbiksZGQ9KGUse2J5VmlzaXRvcjp0PSExfT17fSk9PntlP3RkLnNldCh0P1F1LkNsb3NlZEJ5VmlzaXRvcjpRdS5DbG9zZWQpOnRkLnNldChRdS5PcGVuKX0sZmQ9ayhbJHUsSnVdLChbZSx0XSk9PnQubGVuZ3RoPT09MD9lPT09Sy5BY2NvdW50U3RhdHVzLk9ubGluZTp0LnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLHBkPWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXV0aGVudGljYXRpb24pLG1kPSgpPT57bmQuc2V0KCExKSxlZC5zZXQobnVsbCksZGQoITEpLHJkLnNldChudWxsKX0saGQ9ZT0+e2U9PT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZVdpdGhBST8kdS5zZXQoSy5BY2NvdW50U3RhdHVzLk9ubGluZSk6JHUuc2V0KGUpfSxnZD0oKT0+e3JkLnNldChuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLHEuZ2V0Q2xpZW50KCkuY2hhdFJlYWQoKX0sX2Q9KCk9PntsZXQgZT1wbygpLnZpc2liaWxpdHlTdGF0ZT09PWB2aXNpYmxlYDshQShMcCl8fCFBKFgpfHwhZXx8IUEoTl8pfHxnZCgpfSx2ZD1lPT4oey4uLlNzLGNoYXRJZDpBKGFkKSxjcmVhdGVkQXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGNvbnRlbnQ6ey4uLlNzLmNvbnRlbnQsZGF0YTp7dGFyZ2V0OmV9fX0pLHlkPSgpPT57ZGQoITAse2J5VmlzaXRvcjohMH0pLHEuZ2V0Q2xpZW50KCkuY2hhdENsb3NlKCksVmMoKSxxcCgpfHxXXygpfSxiZD1hc3luYyBlPT57YXdhaXQgSi5hZGRNZXNzYWdlKHZkKGUpKX0seGQ9KCk9PntKLmRlbGV0ZU1lc3NhZ2UoeHMpfTtmdW5jdGlvbiBTZChlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP251bGw6ZVtlLmxlbmd0aC0xXX12YXIgQ2Q9ZT0+ZS5zbGljZSgoZS5sYXN0SW5kZXhPZihgLmApLTE+Pj4wKSsyKS50b0xvd2VyQ2FzZSgpLHdkPWU9PntsZXQgdD1lLG49MCxyPVtgQmAsYEtCYCxgTUJgLGBHQmBdO2Zvcig7dD49MTAyNCYmbjxyLmxlbmd0aC0xOyl0Lz0xMDI0LG4rKztyZXR1cm57c2l6ZTpNYXRoLmZsb29yKHQpLHVuaXQ6cltuXX19LFRkPWU9PntsZXQgdD1TZChlLnNwbGl0KGAuYCkpO3JldHVybiB0P3QudG9VcHBlckNhc2UoKTp4bH0sRWQ9KGUsdCk9PmAke2V9P25hbWU9JHt0fWAsRGQ9YXN5bmMoZSx0KT0+e2xldCBuPXEuZ2V0Q2xpZW50KCkscj1bXTtmb3IobGV0e2ZpbGU6aX1vZiBlKXtsZXQgZT1hd2FpdCBuLmNoYXRVcGxvYWRJbml0KCksYT1uZXcgRm9ybURhdGE7YS5hcHBlbmQoYGZpbGVgLGksaS5uYW1lKTt0cnl7aWYoIShhd2FpdCBmZXRjaChlLnVybCx7bWV0aG9kOmBwb3N0YCxib2R5OmF9KSkub2spdGhyb3cgRXJyb3IoYFVwbG9hZCBmYWlsZWRgKTtyLnB1c2goZS50b2tlbil9Y2F0Y2h7am8oYEZpbGUgWyR7aS5uYW1lfV0gdXBsb2FkIGZhaWxlZGApLGdzKEEoVykoYGZpbGVVcGxvYWQuZmlsZXNXZXJlbnRQcm9jZXNzZWRgKSl9ZmluYWxseXt0KGkpfX1yZXR1cm4gcn0sT2Q9YXN5bmMgZT0+e2xldCB0PXEuZ2V0Q2xpZW50KCk7dHJ5e2F3YWl0IHQuY2hhdFVwbG9hZEZpbmlzaChlKX1jYXRjaHtqbyhgRmFpbGVkIHRvIGZpbmlzaCBmaWxlIHVwbG9hZCBmb3IgJHtlfWApfX0sa2Q9MWUzLEFkPTZlNCxqZD0zNmU1LE1kPTg2NGU1LE5kPTI2MjhlNixQZD0zMTUzNmU2LEZkPWU9Pk1hdGguZmxvb3IoZS9BZCkqQWQsSWQ9KGUsdCk9PkZkKG5ldyBEYXRlKGUpLmdldFRpbWUoKSk9PT1GZChuZXcgRGF0ZSh0KS5nZXRUaW1lKCkpLExkPShlLHQpPT57bGV0IG49bmV3IERhdGUoZSkscj1uZXcgRGF0ZSh0KTtyZXR1cm4gbi5nZXREYXRlKCk9PT1yLmdldERhdGUoKSYmbi5nZXRNb250aCgpPT09ci5nZXRNb250aCgpJiZuLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9LFJkPShlLHQpPT5lLmdldFRpbWUoKS10LmdldFRpbWUoKSx6ZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse2hvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxCZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse3llYXI6YG51bWVyaWNgLG1vbnRoOmBudW1lcmljYCxkYXk6YG51bWVyaWNgLGhvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxWZD1lPT5MZChuZXcgRGF0ZSxlKT96ZDpCZCxIZD0oKT0+dHlwZW9mIEludGw8YHVgJiZgUmVsYXRpdmVUaW1lRm9ybWF0YGluIEludGwsVWQ9ZT0+SGQoKT9uZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQoZSx7bnVtZXJpYzpgYXV0b2B9KTpudWxsLFdkPVt7dW5pdDpgeWVhcmAsYW1vdW50OlBkfSx7dW5pdDpgbW9udGhgLGFtb3VudDpOZH0se3VuaXQ6YGRheWAsYW1vdW50Ok1kfSx7dW5pdDpgaG91cmAsYW1vdW50OmpkfSx7dW5pdDpgbWludXRlYCxhbW91bnQ6QWR9LHt1bml0OmBzZWNvbmRgLGFtb3VudDprZH1dLEdkPShlLHQpPT57bGV0IG49VWQodCk7aWYoIW4pcmV0dXJuIEgoYFJlbGF0aXZlIHRpbWUgZm9ybWF0IG5vdCBzdXBwb3J0ZWRgKSxgYDtmb3IobGV0e3VuaXQ6dCxhbW91bnQ6cn1vZiBXZCl7aWYodD09PWBzZWNvbmRgKXJldHVybiBuLmZvcm1hdCgwLGBzZWNvbmRgKTtpZihNYXRoLmFicyhlKT5yKXJldHVybiBuLmZvcm1hdChNYXRoLnJvdW5kKGUvciksdCl9cmV0dXJuYGB9LEtkPShlLHQ9MzAwKT0+e2xldCBuO3JldHVybiguLi5yKT0+e258fD0oZSguLi5yKSxzZXRUaW1lb3V0KCgpPT5uPW51bGwsdCkpfX0scWQ9L1tcMC1cdUQ3RkZcdUUwMDAtXHVGRkZGXXxbXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxKZD0vW1wwLVx4MUZceDdGLVx4OUZdLyxZZD0vWyEtIyUtXCosLVwvOjtcP0BcWy1cXV9ce1x9XHhBMVx4QTdceEFCXHhCNlx4QjdceEJCXHhCRlx1MDM3RVx1MDM4N1x1MDU1QS1cdTA1NUZcdTA1ODlcdTA1OEFcdTA1QkVcdTA1QzBcdTA1QzNcdTA1QzZcdTA1RjNcdTA1RjRcdTA2MDlcdTA2MEFcdTA2MENcdTA2MERcdTA2MUJcdTA2MUQtXHUwNjFGXHUwNjZBLVx1MDY2RFx1MDZENFx1MDcwMC1cdTA3MERcdTA3RjctXHUwN0Y5XHUwODMwLVx1MDgzRVx1MDg1RVx1MDk2NFx1MDk2NVx1MDk3MFx1MDlGRFx1MEE3Nlx1MEFGMFx1MEM3N1x1MEM4NFx1MERGNFx1MEU0Rlx1MEU1QVx1MEU1Qlx1MEYwNC1cdTBGMTJcdTBGMTRcdTBGM0EtXHUwRjNEXHUwRjg1XHUwRkQwLVx1MEZENFx1MEZEOVx1MEZEQVx1MTA0QS1cdTEwNEZcdTEwRkJcdTEzNjAtXHUxMzY4XHUxNDAwXHUxNjZFXHUxNjlCXHUxNjlDXHUxNkVCLVx1MTZFRFx1MTczNVx1MTczNlx1MTdENC1cdTE3RDZcdTE3RDgtXHUxN0RBXHUxODAwLVx1MTgwQVx1MTk0NFx1MTk0NVx1MUExRVx1MUExRlx1MUFBMC1cdTFBQTZcdTFBQTgtXHUxQUFEXHUxQjVBLVx1MUI2MFx1MUI3RFx1MUI3RVx1MUJGQy1cdTFCRkZcdTFDM0ItXHUxQzNGXHUxQzdFXHUxQzdGXHUxQ0MwLVx1MUNDN1x1MUNEM1x1MjAxMC1cdTIwMjdcdTIwMzAtXHUyMDQzXHUyMDQ1LVx1MjA1MVx1MjA1My1cdTIwNUVcdTIwN0RcdTIwN0VcdTIwOERcdTIwOEVcdTIzMDgtXHUyMzBCXHUyMzI5XHUyMzJBXHUyNzY4LVx1Mjc3NVx1MjdDNVx1MjdDNlx1MjdFNi1cdTI3RUZcdTI5ODMtXHUyOTk4XHUyOUQ4LVx1MjlEQlx1MjlGQ1x1MjlGRFx1MkNGOS1cdTJDRkNcdTJDRkVcdTJDRkZcdTJENzBcdTJFMDAtXHUyRTJFXHUyRTMwLVx1MkU0Rlx1MkU1Mi1cdTJFNURcdTMwMDEtXHUzMDAzXHUzMDA4LVx1MzAxMVx1MzAxNC1cdTMwMUZcdTMwMzBcdTMwM0RcdTMwQTBcdTMwRkJcdUE0RkVcdUE0RkZcdUE2MEQtXHVBNjBGXHVBNjczXHVBNjdFXHVBNkYyLVx1QTZGN1x1QTg3NC1cdUE4NzdcdUE4Q0VcdUE4Q0ZcdUE4RjgtXHVBOEZBXHVBOEZDXHVBOTJFXHVBOTJGXHVBOTVGXHVBOUMxLVx1QTlDRFx1QTlERVx1QTlERlx1QUE1Qy1cdUFBNUZcdUFBREVcdUFBREZcdUFBRjBcdUFBRjFcdUFCRUJcdUZEM0VcdUZEM0ZcdUZFMTAtXHVGRTE5XHVGRTMwLVx1RkU1Mlx1RkU1NC1cdUZFNjFcdUZFNjNcdUZFNjhcdUZFNkFcdUZFNkJcdUZGMDEtXHVGRjAzXHVGRjA1LVx1RkYwQVx1RkYwQy1cdUZGMEZcdUZGMUFcdUZGMUJcdUZGMUZcdUZGMjBcdUZGM0ItXHVGRjNEXHVGRjNGXHVGRjVCXHVGRjVEXHVGRjVGLVx1RkY2NV18XHVEODAwW1x1REQwMC1cdUREMDJcdURGOUZcdURGRDBdfFx1RDgwMVx1REQ2RnxcdUQ4MDJbXHVEQzU3XHVERDFGXHVERDNGXHVERTUwLVx1REU1OFx1REU3Rlx1REVGMC1cdURFRjZcdURGMzktXHVERjNGXHVERjk5LVx1REY5Q118XHVEODAzW1x1REVBRFx1REY1NS1cdURGNTlcdURGODYtXHVERjg5XXxcdUQ4MDRbXHVEQzQ3LVx1REM0RFx1RENCQlx1RENCQ1x1RENCRS1cdURDQzFcdURENDAtXHVERDQzXHVERDc0XHVERDc1XHVEREM1LVx1RERDOFx1RERDRFx1REREQlx1RERERC1cdUREREZcdURFMzgtXHVERTNEXHVERUE5XXxcdUQ4MDVbXHVEQzRCLVx1REM0Rlx1REM1QVx1REM1Qlx1REM1RFx1RENDNlx1RERDMS1cdURERDdcdURFNDEtXHVERTQzXHVERTYwLVx1REU2Q1x1REVCOVx1REYzQy1cdURGM0VdfFx1RDgwNltcdURDM0JcdURENDQtXHVERDQ2XHVEREUyXHVERTNGLVx1REU0Nlx1REU5QS1cdURFOUNcdURFOUUtXHVERUEyXHVERjAwLVx1REYwOV18XHVEODA3W1x1REM0MS1cdURDNDVcdURDNzBcdURDNzFcdURFRjdcdURFRjhcdURGNDMtXHVERjRGXHVERkZGXXxcdUQ4MDlbXHVEQzcwLVx1REM3NF18XHVEODBCW1x1REZGMVx1REZGMl18XHVEODFBW1x1REU2RVx1REU2Rlx1REVGNVx1REYzNy1cdURGM0JcdURGNDRdfFx1RDgxQltcdURFOTctXHVERTlBXHVERkUyXXxcdUQ4MkZcdURDOUZ8XHVEODM2W1x1REU4Ny1cdURFOEJdfFx1RDgzQVtcdURENUVcdURENUZdLyxYZD0vWyBceEEwXHUxNjgwXHUyMDAwLVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMF0vO2Z1bmN0aW9uIFpkKGUpe2xldCB0PXt9O2V8fD17fSx0LnNyY19Bbnk9cWQuc291cmNlLHQuc3JjX0NjPUpkLnNvdXJjZSx0LnNyY19aPVhkLnNvdXJjZSx0LnNyY19QPVlkLnNvdXJjZSx0LnNyY19aUENjPVt0LnNyY19aLHQuc3JjX1AsdC5zcmNfQ2NdLmpvaW4oYHxgKSx0LnNyY19aQ2M9W3Quc3JjX1osdC5zcmNfQ2NdLmpvaW4oYHxgKTtsZXQgbj1gWz48772cXWA7cmV0dXJuIHQuc3JjX3BzZXVkb19sZXR0ZXI9YCg/Oig/IWArbitgfGArdC5zcmNfWlBDYytgKWArdC5zcmNfQW55K2ApYCx0LnNyY19pcDQ9YCg/OigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pYCx0LnNyY19hdXRoPWAoPzooPzooPyFgK3Quc3JjX1pDYytgfFtAL1xcW1xcXSgpXSkuKStAKT9gLHQuc3JjX3BvcnQ9YCg/OjooPzo2KD86WzAtNF1cXGR7M318NSg/OlswLTRdXFxkezJ9fDUoPzpbMC0yXVxcZHwzWzAtNV0pKSl8WzEtNV0/XFxkezEsNH0pKT9gLHQuc3JjX2hvc3RfdGVybWluYXRvcj1gKD89JHxgK24rYHxgK3Quc3JjX1pQQ2MrYCkoPyFgKyhlW2AtLS1gXT9gLSg/IS0tKXxgOmAtfGApK2BffDpcXGR8XFwuLXxcXC4oPyEkfGArdC5zcmNfWlBDYytgKSlgLHQuc3JjX3BhdGg9YCg/OlsvPyNdKD86KD8hYCt0LnNyY19aQ2MrYHxbPjzvvZxdfFsoKVtcXF17fS4sIic/IVxcLTtdKS58XFxbKD86KD8hYCt0LnNyY19aQ2MrYHxcXF0pLikqXFxdfFxcKCg/Oig/IWArdC5zcmNfWkNjK2B8WyldKS4pKlxcKXxcXHsoPzooPyFgK3Quc3JjX1pDYytgfFt9XSkuKSpcXH18XFwiKD86KD8hYCt0LnNyY19aQ2MrYHxbIl0pLikrXFwifFxcJyg/Oig/IWArdC5zcmNfWkNjK2B8WyddKS4pK1xcJ3xcXCcoPz1gK3Quc3JjX3BzZXVkb19sZXR0ZXIrYHxbLV0pfFxcLnsyLH1bYS16QS1aMC05JS8mXXxcXC4oPyFgK3Quc3JjX1pDYytgfFsuXXwkKXxgKyhlW2AtLS1gXT9gXFwtKD8hLS0oPzpbXi1dfCQpKSg/Oi0qKXxgOmBcXC0rfGApK2AsKD8hYCt0LnNyY19aQ2MrYHwkKXw7KD8hYCt0LnNyY19aQ2MrYHwkKXxcXCErKD8hYCt0LnNyY19aQ2MrYHxbIV18JCl8XFw/KD8hYCt0LnNyY19aQ2MrYHxbP118JCkpK3xcXC8pP2AsdC5zcmNfZW1haWxfbmFtZT1gW1xcLTs6Jj1cXCtcXCQsXFwuYS16QS1aMC05X11bXFwtOzomPVxcK1xcJCxcXCJcXC5hLXpBLVowLTlfXSpgLHQuc3JjX3huPWB4bi0tW2EtejAtOVxcLV17MSw1OX1gLHQuc3JjX2RvbWFpbl9yb290PWAoPzpgK3Quc3JjX3huK2B8YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2B7MSw2M30pYCx0LnNyY19kb21haW49YCg/OmArdC5zcmNfeG4rYHwoPzpgK3Quc3JjX3BzZXVkb19sZXR0ZXIrYCl8KD86YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2AoPzotfGArdC5zcmNfcHNldWRvX2xldHRlcitgKXswLDYxfWArdC5zcmNfcHNldWRvX2xldHRlcitgKSlgLHQuc3JjX2hvc3Q9YCg/Oig/Oig/Oig/OmArdC5zcmNfZG9tYWluK2ApXFwuKSpgK3Quc3JjX2RvbWFpbitgKSlgLHQudHBsX2hvc3RfZnV6enk9YCg/OmArdC5zcmNfaXA0K2B8KD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpKWAsdC50cGxfaG9zdF9ub19pcF9mdXp6eT1gKD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpYCx0LnNyY19ob3N0X3N0cmljdD10LnNyY19ob3N0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnNyY19ob3N0X3BvcnRfc3RyaWN0PXQuc3JjX2hvc3QrdC5zcmNfcG9ydCt0LnNyY19ob3N0X3Rlcm1pbmF0b3IsdC50cGxfaG9zdF9wb3J0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX3BvcnQrdC5zcmNfaG9zdF90ZXJtaW5hdG9yLHQudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3Q9dC50cGxfaG9zdF9ub19pcF9mdXp6eSt0LnNyY19wb3J0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3Rlc3Q9YGxvY2FsaG9zdHx3d3dcXC58XFwuXFxkezEsM31cXC58KD86XFwuKD86JVRMRFMlKSg/OmArdC5zcmNfWlBDYytgfD58JCkpYCx0LnRwbF9lbWFpbF9mdXp6eT1gKF58YCtuK2B8InxcXCh8YCt0LnNyY19aQ2MrYCkoYCt0LnNyY19lbWFpbF9uYW1lK2BAYCt0LnRwbF9ob3N0X2Z1enp5X3N0cmljdCtgKWAsdC50cGxfbGlua19mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdC50cGxfbGlua19ub19pcF9mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdH1mdW5jdGlvbiBRZChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLmZvckVhY2goZnVuY3Rpb24odCl7dCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KX0pLGV9ZnVuY3Rpb24gJGQoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBlZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBTdHJpbmddYH1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBPYmplY3RdYH1mdW5jdGlvbiBuZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBSZWdFeHBdYH1mdW5jdGlvbiByZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBGdW5jdGlvbl1gfWZ1bmN0aW9uIGFmKGUpe3JldHVybiBlLnJlcGxhY2UoL1suPyorXiRbXF1cXCgpe318LV0vZyxgXFwkJmApfXZhciBvZj17ZnV6enlMaW5rOiEwLGZ1enp5RW1haWw6ITAsZnV6enlJUDohMX07ZnVuY3Rpb24gc2YoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8b2YuaGFzT3duUHJvcGVydHkodCl9LCExKX12YXIgY2Y9eyJodHRwOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLmh0dHB8fChuLnJlLmh0dHA9UmVnRXhwKGBeXFwvXFwvYCtuLnJlLnNyY19hdXRoK24ucmUuc3JjX2hvc3RfcG9ydF9zdHJpY3Qrbi5yZS5zcmNfcGF0aCxgaWApKSxuLnJlLmh0dHAudGVzdChyKT9yLm1hdGNoKG4ucmUuaHR0cClbMF0ubGVuZ3RoOjB9fSwiaHR0cHM6IjpgaHR0cDpgLCJmdHA6IjpgaHR0cDpgLCIvLyI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm5vX2h0dHB8fChuLnJlLm5vX2h0dHA9UmVnRXhwKGBeYCtuLnJlLnNyY19hdXRoK2AoPzpsb2NhbGhvc3R8KD86KD86YCtuLnJlLnNyY19kb21haW4rYClcXC4pK2Arbi5yZS5zcmNfZG9tYWluX3Jvb3QrYClgK24ucmUuc3JjX3BvcnQrbi5yZS5zcmNfaG9zdF90ZXJtaW5hdG9yK24ucmUuc3JjX3BhdGgsYGlgKSksbi5yZS5ub19odHRwLnRlc3Qocik/dD49MyYmZVt0LTNdPT09YDpgfHx0Pj0zJiZlW3QtM109PT1gL2A/MDpyLm1hdGNoKG4ucmUubm9faHR0cClbMF0ubGVuZ3RoOjB9fSwibWFpbHRvOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm1haWx0b3x8KG4ucmUubWFpbHRvPVJlZ0V4cChgXmArbi5yZS5zcmNfZW1haWxfbmFtZStgQGArbi5yZS5zcmNfaG9zdF9zdHJpY3QsYGlgKSksbi5yZS5tYWlsdG8udGVzdChyKT9yLm1hdGNoKG4ucmUubWFpbHRvKVswXS5sZW5ndGg6MH19fSxsZj1gYVtjZGVmZ2lsbW5vcXJzdHV3eHpdfGJbYWJkZWZnaGlqbW5vcnN0dnd5el18Y1thY2RmZ2hpa2xtbm9ydXZ3eHl6XXxkW2Vqa21vel18ZVtjZWdyc3R1XXxmW2lqa21vcl18Z1thYmRlZmdoaWxtbnBxcnN0dXd5XXxoW2ttbnJ0dV18aVtkZWxtbm9xcnN0XXxqW2Vtb3BdfGtbZWdoaW1ucHJ3eXpdfGxbYWJjaWtyc3R1dnldfG1bYWNkZWdoa2xtbm9wcXJzdHV2d3h5el18blthY2VmZ2lsb3BydXpdfG9tfHBbYWVmZ2hrbG1ucnN0d3ldfHFhfHJbZW9zdXddfHNbYWJjZGVnaGlqa2xtbm9ydHV2eHl6XXx0W2NkZmdoamtsbW5vcnR2d3pdfHVbYWdrc3l6XXx2W2FjZWdpbnVdfHdbZnNdfHlbZXRdfHpbYW13XWAsdWY9YGJpenxjb218ZWR1fGdvdnxuZXR8b3JnfHByb3x3ZWJ8eHh4fGFlcm98YXNpYXxjb29wfGluZm98bXVzZXVtfG5hbWV8c2hvcHzRgNGEYC5zcGxpdChgfGApO2Z1bmN0aW9uIGRmKGUpe2UuX19pbmRleF9fPS0xLGUuX190ZXh0X2NhY2hlX189YGB9ZnVuY3Rpb24gZmYoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7bGV0IHI9dC5zbGljZShuKTtyZXR1cm4gZS50ZXN0KHIpP3IubWF0Y2goZSlbMF0ubGVuZ3RoOjB9fWZ1bmN0aW9uIHBmKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dC5ub3JtYWxpemUoZSl9fWZ1bmN0aW9uIG1mKGUpe2xldCB0PWUucmU9WmQoZS5fX29wdHNfXyksbj1lLl9fdGxkc19fLnNsaWNlKCk7ZS5vbkNvbXBpbGUoKSxlLl9fdGxkc19yZXBsYWNlZF9ffHxuLnB1c2gobGYpLG4ucHVzaCh0LnNyY194biksdC5zcmNfdGxkcz1uLmpvaW4oYHxgKTtmdW5jdGlvbiByKGUpe3JldHVybiBlLnJlcGxhY2UoYCVUTERTJWAsdC5zcmNfdGxkcyl9dC5lbWFpbF9mdXp6eT1SZWdFeHAocih0LnRwbF9lbWFpbF9mdXp6eSksYGlgKSx0LmxpbmtfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19mdXp6eSksYGlgKSx0Lmxpbmtfbm9faXBfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19ub19pcF9mdXp6eSksYGlgKSx0Lmhvc3RfZnV6enlfdGVzdD1SZWdFeHAocih0LnRwbF9ob3N0X2Z1enp5X3Rlc3QpLGBpYCk7bGV0IGk9W107ZS5fX2NvbXBpbGVkX189e307ZnVuY3Rpb24gYShlLHQpe3Rocm93IEVycm9yKGAoTGlua2lmeUl0KSBJbnZhbGlkIHNjaGVtYSAiYCtlK2AiOiBgK3QpfU9iamVjdC5rZXlzKGUuX19zY2hlbWFzX18pLmZvckVhY2goZnVuY3Rpb24odCl7bGV0IG49ZS5fX3NjaGVtYXNfX1t0XTtpZihuPT09bnVsbClyZXR1cm47bGV0IHI9e3ZhbGlkYXRlOm51bGwsbGluazpudWxsfTtpZihlLl9fY29tcGlsZWRfX1t0XT1yLHRmKG4pKXtuZihuLnZhbGlkYXRlKT9yLnZhbGlkYXRlPWZmKG4udmFsaWRhdGUpOnJmKG4udmFsaWRhdGUpP3IudmFsaWRhdGU9bi52YWxpZGF0ZTphKHQsbikscmYobi5ub3JtYWxpemUpP3Iubm9ybWFsaXplPW4ubm9ybWFsaXplOm4ubm9ybWFsaXplP2EodCxuKTpyLm5vcm1hbGl6ZT1wZigpO3JldHVybn1pZihlZihuKSl7aS5wdXNoKHQpO3JldHVybn1hKHQsbil9KSxpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0mJihlLl9fY29tcGlsZWRfX1t0XS52YWxpZGF0ZT1lLl9fY29tcGlsZWRfX1tlLl9fc2NoZW1hc19fW3RdXS52YWxpZGF0ZSxlLl9fY29tcGlsZWRfX1t0XS5ub3JtYWxpemU9ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0ubm9ybWFsaXplKX0pLGUuX19jb21waWxlZF9fW2BgXT17dmFsaWRhdGU6bnVsbCxub3JtYWxpemU6cGYoKX07bGV0IG89T2JqZWN0LmtleXMoZS5fX2NvbXBpbGVkX18pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MCYmZS5fX2NvbXBpbGVkX19bdF19KS5tYXAoYWYpLmpvaW4oYHxgKTtlLnJlLnNjaGVtYV90ZXN0PVJlZ0V4cChgKF58KD8hXykoPzpbPjzvvZxdfGArdC5zcmNfWlBDYytgKSkoYCtvK2ApYCxgaWApLGUucmUuc2NoZW1hX3NlYXJjaD1SZWdFeHAoYChefCg/IV8pKD86Wz48772cXXxgK3Quc3JjX1pQQ2MrYCkpKGArbytgKWAsYGlnYCksZS5yZS5zY2hlbWFfYXRfc3RhcnQ9UmVnRXhwKGBeYCtlLnJlLnNjaGVtYV9zZWFyY2guc291cmNlLGBpYCksZS5yZS5wcmV0ZXN0PVJlZ0V4cChgKGArZS5yZS5zY2hlbWFfdGVzdC5zb3VyY2UrYCl8KGArZS5yZS5ob3N0X2Z1enp5X3Rlc3Quc291cmNlK2ApfEBgLGBpYCksZGYoZSl9ZnVuY3Rpb24gaGYoZSx0KXtsZXQgbj1lLl9faW5kZXhfXyxyPWUuX19sYXN0X2luZGV4X18saT1lLl9fdGV4dF9jYWNoZV9fLnNsaWNlKG4scik7dGhpcy5zY2hlbWE9ZS5fX3NjaGVtYV9fLnRvTG93ZXJDYXNlKCksdGhpcy5pbmRleD1uK3QsdGhpcy5sYXN0SW5kZXg9cit0LHRoaXMucmF3PWksdGhpcy50ZXh0PWksdGhpcy51cmw9aX1mdW5jdGlvbiBnZihlLHQpe2xldCBuPW5ldyBoZihlLHQpO3JldHVybiBlLl9fY29tcGlsZWRfX1tuLnNjaGVtYV0ubm9ybWFsaXplKG4sZSksbn1mdW5jdGlvbiBfZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIF9mKSlyZXR1cm4gbmV3IF9mKGUsdCk7dHx8c2YoZSkmJih0PWUsZT17fSksdGhpcy5fX29wdHNfXz1RZCh7fSxvZix0KSx0aGlzLl9faW5kZXhfXz0tMSx0aGlzLl9fbGFzdF9pbmRleF9fPS0xLHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9fdGV4dF9jYWNoZV9fPWBgLHRoaXMuX19zY2hlbWFzX189UWQoe30sY2YsZSksdGhpcy5fX2NvbXBpbGVkX189e30sdGhpcy5fX3RsZHNfXz11Zix0aGlzLl9fdGxkc19yZXBsYWNlZF9fPSExLHRoaXMucmU9e30sbWYodGhpcyl9X2YucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9fc2NoZW1hc19fW2VdPXQsbWYodGhpcyksdGhpc30sX2YucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX29wdHNfXz1RZCh0aGlzLl9fb3B0c19fLGUpLHRoaXN9LF9mLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX190ZXh0X2NhY2hlX189ZSx0aGlzLl9faW5kZXhfXz0tMSwhZS5sZW5ndGgpcmV0dXJuITE7bGV0IHQsbixyLGksYSxvLHMsYyxsO2lmKHRoaXMucmUuc2NoZW1hX3Rlc3QudGVzdChlKSl7Zm9yKHM9dGhpcy5yZS5zY2hlbWFfc2VhcmNoLHMubGFzdEluZGV4PTA7KHQ9cy5leGVjKGUpKSE9PW51bGw7KWlmKGk9dGhpcy50ZXN0U2NoZW1hQXQoZSx0WzJdLHMubGFzdEluZGV4KSxpKXt0aGlzLl9fc2NoZW1hX189dFsyXSx0aGlzLl9faW5kZXhfXz10LmluZGV4K3RbMV0ubGVuZ3RoLHRoaXMuX19sYXN0X2luZGV4X189dC5pbmRleCt0WzBdLmxlbmd0aCtpO2JyZWFrfX1yZXR1cm4gdGhpcy5fX29wdHNfXy5mdXp6eUxpbmsmJnRoaXMuX19jb21waWxlZF9fW2BodHRwOmBdJiYoYz1lLnNlYXJjaCh0aGlzLnJlLmhvc3RfZnV6enlfdGVzdCksYz49MCYmKHRoaXMuX19pbmRleF9fPDB8fGM8dGhpcy5fX2luZGV4X18pJiYobj1lLm1hdGNoKHRoaXMuX19vcHRzX18uZnV6enlJUD90aGlzLnJlLmxpbmtfZnV6enk6dGhpcy5yZS5saW5rX25vX2lwX2Z1enp5KSkhPT1udWxsJiYoYT1uLmluZGV4K25bMV0ubGVuZ3RoLCh0aGlzLl9faW5kZXhfXzwwfHxhPHRoaXMuX19pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9faW5kZXhfXz1hLHRoaXMuX19sYXN0X2luZGV4X189bi5pbmRleCtuWzBdLmxlbmd0aCkpKSx0aGlzLl9fb3B0c19fLmZ1enp5RW1haWwmJnRoaXMuX19jb21waWxlZF9fW2BtYWlsdG86YF0mJihsPWUuaW5kZXhPZihgQGApLGw+PTAmJihyPWUubWF0Y2godGhpcy5yZS5lbWFpbF9mdXp6eSkpIT09bnVsbCYmKGE9ci5pbmRleCtyWzFdLmxlbmd0aCxvPXIuaW5kZXgrclswXS5sZW5ndGgsKHRoaXMuX19pbmRleF9fPDB8fGE8dGhpcy5fX2luZGV4X198fGE9PT10aGlzLl9faW5kZXhfXyYmbz50aGlzLl9fbGFzdF9pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gbWFpbHRvOmAsdGhpcy5fX2luZGV4X189YSx0aGlzLl9fbGFzdF9pbmRleF9fPW8pKSksdGhpcy5fX2luZGV4X18+PTB9LF9mLnByb3RvdHlwZS5wcmV0ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlLnByZXRlc3QudGVzdChlKX0sX2YucHJvdG90eXBlLnRlc3RTY2hlbWFBdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuX19jb21waWxlZF9fW3QudG9Mb3dlckNhc2UoKV0/dGhpcy5fX2NvbXBpbGVkX19bdC50b0xvd2VyQ2FzZSgpXS52YWxpZGF0ZShlLG4sdGhpcyk6MH0sX2YucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKGUpe2xldCB0PVtdLG49MDt0aGlzLl9faW5kZXhfXz49MCYmdGhpcy5fX3RleHRfY2FjaGVfXz09PWUmJih0LnB1c2goZ2YodGhpcyxuKSksbj10aGlzLl9fbGFzdF9pbmRleF9fKTtsZXQgcj1uP2Uuc2xpY2Uobik6ZTtmb3IoO3RoaXMudGVzdChyKTspdC5wdXNoKGdmKHRoaXMsbikpLHI9ci5zbGljZSh0aGlzLl9fbGFzdF9pbmRleF9fKSxuKz10aGlzLl9fbGFzdF9pbmRleF9fO3JldHVybiB0Lmxlbmd0aD90Om51bGx9LF9mLnByb3RvdHlwZS5tYXRjaEF0U3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fX3RleHRfY2FjaGVfXz1lLHRoaXMuX19pbmRleF9fPS0xLCFlLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnJlLnNjaGVtYV9hdF9zdGFydC5leGVjKGUpO2lmKCF0KXJldHVybiBudWxsO2xldCBuPXRoaXMudGVzdFNjaGVtYUF0KGUsdFsyXSx0WzBdLmxlbmd0aCk7cmV0dXJuIG4/KHRoaXMuX19zY2hlbWFfXz10WzJdLHRoaXMuX19pbmRleF9fPXQuaW5kZXgrdFsxXS5sZW5ndGgsdGhpcy5fX2xhc3RfaW5kZXhfXz10LmluZGV4K3RbMF0ubGVuZ3RoK24sZ2YodGhpcywwKSk6bnVsbH0sX2YucHJvdG90eXBlLnRsZHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdLHQ/KHRoaXMuX190bGRzX189dGhpcy5fX3RsZHNfXy5jb25jYXQoZSkuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUhPT1uW3QtMV19KS5yZXZlcnNlKCksbWYodGhpcyksdGhpcyk6KHRoaXMuX190bGRzX189ZS5zbGljZSgpLHRoaXMuX190bGRzX3JlcGxhY2VkX189ITAsbWYodGhpcyksdGhpcyl9LF9mLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7ZS5zY2hlbWF8fChlLnVybD1gaHR0cDovL2ArZS51cmwpLGUuc2NoZW1hPT09YG1haWx0bzpgJiYhL15tYWlsdG86L2kudGVzdChlLnVybCkmJihlLnVybD1gbWFpbHRvOmArZS51cmwpfSxfZi5wcm90b3R5cGUub25Db21waWxlPWZ1bmN0aW9uKCl7fTt2YXIgdmY9SlNPTi5wYXJzZShgWyJhYWEiLCJhYXJwIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjIiwiYWNhZGVteSIsImFjY2VudHVyZSIsImFjY291bnRhbnQiLCJhY2NvdW50YW50cyIsImFjbyIsImFjdG9yIiwiYWQiLCJhZHMiLCJhZHVsdCIsImFlIiwiYWVnIiwiYWVybyIsImFldG5hIiwiYWYiLCJhZmwiLCJhZnJpY2EiLCJhZyIsImFnYWtoYW4iLCJhZ2VuY3kiLCJhaSIsImFpZyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0YXRlIiwiYWxseSIsImFsc2FjZSIsImFsc3RvbSIsImFtIiwiYW1hem9uIiwiYW1lcmljYW5leHByZXNzIiwiYW1lcmljYW5mYW1pbHkiLCJhbWV4IiwiYW1mYW0iLCJhbWljYSIsImFtc3RlcmRhbSIsImFuYWx5dGljcyIsImFuZHJvaWQiLCJhbnF1YW4iLCJhbnoiLCJhbyIsImFvbCIsImFwYXJ0bWVudHMiLCJhcHAiLCJhcHBsZSIsImFxIiwiYXF1YXJlbGxlIiwiYXIiLCJhcmFiIiwiYXJhbWNvIiwiYXJjaGkiLCJhcm15IiwiYXJwYSIsImFydCIsImFydGUiLCJhcyIsImFzZGEiLCJhc2lhIiwiYXNzb2NpYXRlcyIsImF0IiwiYXRobGV0YSIsImF0dG9ybmV5IiwiYXUiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJhdXRvIiwiYXV0b3MiLCJhdyIsImF3cyIsImF4IiwiYXhhIiwiYXoiLCJhenVyZSIsImJhIiwiYmFieSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMiLCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmIiLCJiYmMiLCJiYnQiLCJiYnZhIiwiYmNnIiwiYmNuIiwiYmQiLCJiZSIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlcmxpbiIsImJlc3QiLCJiZXN0YnV5IiwiYmV0IiwiYmYiLCJiZyIsImJoIiwiYmhhcnRpIiwiYmkiLCJiaWJsZSIsImJpZCIsImJpa2UiLCJiaW5nIiwiYmluZ28iLCJiaW8iLCJiaXoiLCJiaiIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJibG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm0iLCJibXMiLCJibXciLCJibiIsImJucHBhcmliYXMiLCJibyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9vayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRpcXVlIiwiYm94IiwiYnIiLCJicmFkZXNjbyIsImJyaWRnZXN0b25lIiwiYnJvYWR3YXkiLCJicm9rZXIiLCJicm90aGVyIiwiYnJ1c3NlbHMiLCJicyIsImJ0IiwiYnVpbGQiLCJidWlsZGVycyIsImJ1c2luZXNzIiwiYnV5IiwiYnV6eiIsImJ2IiwiYnciLCJieSIsImJ6IiwiYnpoIiwiY2EiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbm9uIiwiY2FwZXRvd24iLCJjYXBpdGFsIiwiY2FwaXRhbG9uZSIsImNhciIsImNhcmF2YW4iLCJjYXJkcyIsImNhcmUiLCJjYXJlZXIiLCJjYXJlZXJzIiwiY2FycyIsImNhc2EiLCJjYXNlIiwiY2FzaCIsImNhc2lubyIsImNhdCIsImNhdGVyaW5nIiwiY2F0aG9saWMiLCJjYmEiLCJjYm4iLCJjYnJlIiwiY2MiLCJjZCIsImNlbnRlciIsImNlbyIsImNlcm4iLCJjZiIsImNmYSIsImNmZCIsImNnIiwiY2giLCJjaGFuZWwiLCJjaGFubmVsIiwiY2hhcml0eSIsImNoYXNlIiwiY2hhdCIsImNoZWFwIiwiY2hpbnRhaSIsImNocmlzdG1hcyIsImNocm9tZSIsImNodXJjaCIsImNpIiwiY2lwcmlhbmkiLCJjaXJjbGUiLCJjaXNjbyIsImNpdGFkZWwiLCJjaXRpIiwiY2l0aWMiLCJjaXR5IiwiY2siLCJjbCIsImNsYWltcyIsImNsZWFuaW5nIiwiY2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNtIiwiY24iLCJjbyIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbSIsImNvbW1iYW5rIiwiY29tbXVuaXR5IiwiY29tcGFueSIsImNvbXBhcmUiLCJjb21wdXRlciIsImNvbXNlYyIsImNvbmRvcyIsImNvbnN0cnVjdGlvbiIsImNvbnN1bHRpbmciLCJjb250YWN0IiwiY29udHJhY3RvcnMiLCJjb29raW5nIiwiY29vbCIsImNvb3AiLCJjb3JzaWNhIiwiY291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3IiLCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3UiLCJjdWlzaW5lbGxhIiwiY3YiLCJjdyIsImN4IiwiY3kiLCJjeW1ydSIsImN5b3UiLCJjeiIsImRhZCIsImRhbmNlIiwiZGF0YSIsImRhdGUiLCJkYXRpbmciLCJkYXRzdW4iLCJkYXkiLCJkY2xrIiwiZGRzIiwiZGUiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRqIiwiZGsiLCJkbSIsImRucCIsImRvIiwiZG9jcyIsImRvY3RvciIsImRvZyIsImRvbWFpbnMiLCJkb3QiLCJkb3dubG9hZCIsImRyaXZlIiwiZHR2IiwiZHViYWkiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwiZHZyIiwiZHoiLCJlYXJ0aCIsImVhdCIsImVjIiwiZWNvIiwiZWRla2EiLCJlZHUiLCJlZHVjYXRpb24iLCJlZSIsImVnIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIsImVxdWlwbWVudCIsImVyIiwiZXJpY3Nzb24iLCJlcm5pIiwiZXMiLCJlc3EiLCJlc3RhdGUiLCJldCIsImV1IiwiZXVyb3Zpc2lvbiIsImV1cyIsImV2ZW50cyIsImV4Y2hhbmdlIiwiZXhwZXJ0IiwiZXhwb3NlZCIsImV4cHJlc3MiLCJleHRyYXNwYWNlIiwiZmFnZSIsImZhaWwiLCJmYWlyd2luZHMiLCJmYWl0aCIsImZhbWlseSIsImZhbiIsImZhbnMiLCJmYXJtIiwiZmFybWVycyIsImZhc2hpb24iLCJmYXN0IiwiZmVkZXgiLCJmZWVkYmFjayIsImZlcnJhcmkiLCJmZXJyZXJvIiwiZmkiLCJmaWRlbGl0eSIsImZpZG8iLCJmaWxtIiwiZmluYWwiLCJmaW5hbmNlIiwiZmluYW5jaWFsIiwiZmlyZSIsImZpcmVzdG9uZSIsImZpcm1kYWxlIiwiZmlzaCIsImZpc2hpbmciLCJmaXQiLCJmaXRuZXNzIiwiZmoiLCJmayIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmbSIsImZvIiwiZm9vIiwiZm9vZCIsImZvb3RiYWxsIiwiZm9yZCIsImZvcmV4IiwiZm9yc2FsZSIsImZvcnVtIiwiZm91bmRhdGlvbiIsImZveCIsImZyIiwiZnJlZSIsImZyZXNlbml1cyIsImZybCIsImZyb2dhbnMiLCJmcm9udGllciIsImZ0ciIsImZ1aml0c3UiLCJmdW4iLCJmdW5kIiwiZnVybml0dXJlIiwiZnV0Ym9sIiwiZnlpIiwiZ2EiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYiIsImdiaXoiLCJnZCIsImdkbiIsImdlIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZiIsImdnIiwiZ2dlZSIsImdoIiwiZ2kiLCJnaWZ0IiwiZ2lmdHMiLCJnaXZlcyIsImdpdmluZyIsImdsIiwiZ2xhc3MiLCJnbGUiLCJnbG9iYWwiLCJnbG9ibyIsImdtIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ24iLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJnb3YiLCJncCIsImdxIiwiZ3IiLCJncmFpbmdlciIsImdyYXBoaWNzIiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlwZSIsImdyb2NlcnkiLCJncm91cCIsImdzIiwiZ3QiLCJndSIsImd1Y2NpIiwiZ3VnZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJndyIsImd5IiwiaGFpciIsImhhbWJ1cmciLCJoYW5nb3V0IiwiaGF1cyIsImhibyIsImhkZmMiLCJoZGZjYmFuayIsImhlYWx0aCIsImhlYWx0aGNhcmUiLCJoZWxwIiwiaGVsc2lua2kiLCJoZXJlIiwiaGVybWVzIiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrIiwiaGt0IiwiaG0iLCJobiIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJociIsImhzYmMiLCJodCIsImh1IiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImlkIiwiaWUiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbCIsImltIiwiaW1hbWF0IiwiaW1kYiIsImltbW8iLCJpbW1vYmlsaWVuIiwiaW4iLCJpbmMiLCJpbmR1c3RyaWVzIiwiaW5maW5pdGkiLCJpbmZvIiwiaW5nIiwiaW5rIiwiaW5zdGl0dXRlIiwiaW5zdXJhbmNlIiwiaW5zdXJlIiwiaW50IiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1lbnRzIiwiaW8iLCJpcGlyYW5nYSIsImlxIiwiaXIiLCJpcmlzaCIsImlzIiwiaXNtYWlsaSIsImlzdCIsImlzdGFuYnVsIiwiaXQiLCJpdGF1IiwiaXR2IiwiamFndWFyIiwiamF2YSIsImpjYiIsImplIiwiamVlcCIsImpldHp0IiwiamV3ZWxyeSIsImppbyIsImpsbCIsImptIiwiam1wIiwiam5qIiwiam8iLCJqb2JzIiwiam9idXJnIiwiam90Iiwiam95IiwianAiLCJqcG1vcmdhbiIsImpwcnMiLCJqdWVnb3MiLCJqdW5pcGVyIiwia2F1ZmVuIiwia2RkaSIsImtlIiwia2Vycnlob3RlbHMiLCJrZXJyeXByb3BlcnRpZXMiLCJrZmgiLCJrZyIsImtoIiwia2kiLCJraWEiLCJraWRzIiwia2ltIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrbSIsImtuIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3AiLCJrcG1nIiwia3BuIiwia3IiLCJrcmQiLCJrcmVkIiwia3Vva2dyb3VwIiwia3ciLCJreSIsImt5b3RvIiwia3oiLCJsYSIsImxhY2FpeGEiLCJsYW1ib3JnaGluaSIsImxhbWVyIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxiIiwibGMiLCJsZHMiLCJsZWFzZSIsImxlY2xlcmMiLCJsZWZyYWsiLCJsZWdhbCIsImxlZ28iLCJsZXh1cyIsImxnYnQiLCJsaSIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluayIsImxpdmUiLCJsaXZpbmciLCJsayIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9sIiwibG9uZG9uIiwibG90dGUiLCJsb3R0byIsImxvdmUiLCJscGwiLCJscGxmaW5hbmNpYWwiLCJsciIsImxzIiwibHQiLCJsdGQiLCJsdGRhIiwibHUiLCJsdW5kYmVjayIsImx1eGUiLCJsdXh1cnkiLCJsdiIsImx5IiwibWEiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWF0dGVsIiwibWJhIiwibWMiLCJtY2tpbnNleSIsIm1kIiwibWUiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2ttc2QiLCJtZyIsIm1oIiwibWlhbWkiLCJtaWNyb3NvZnQiLCJtaWwiLCJtaW5pIiwibWludCIsIm1pdCIsIm1pdHN1YmlzaGkiLCJtayIsIm1sIiwibWxiIiwibWxzIiwibW0iLCJtbWEiLCJtbiIsIm1vIiwibW9iaSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5Y2xlcyIsIm1vdiIsIm1vdmllIiwibXAiLCJtcSIsIm1yIiwibXMiLCJtc2QiLCJtdCIsIm10biIsIm10ciIsIm11IiwibXVzZXVtIiwibXVzaWMiLCJtdiIsIm13IiwibXgiLCJteSIsIm16IiwibmEiLCJuYWIiLCJuYWdveWEiLCJuYW1lIiwibmF2eSIsIm5iYSIsIm5jIiwibmUiLCJuZWMiLCJuZXQiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZiIsIm5mbCIsIm5nIiwibmdvIiwibmhrIiwibmkiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJubCIsIm5vIiwibm9raWEiLCJub3J0b24iLCJub3ciLCJub3dydXoiLCJub3d0diIsIm5wIiwibnIiLCJucmEiLCJucnciLCJudHQiLCJudSIsIm55YyIsIm56Iiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGxvIiwib20iLCJvbWVnYSIsIm9uZSIsIm9uZyIsIm9ubCIsIm9ubGluZSIsIm9vbyIsIm9wZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJvcmciLCJvcmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGEiLCJwYWdlIiwicGFuYXNvbmljIiwicGFyaXMiLCJwYXJzIiwicGFydG5lcnMiLCJwYXJ0cyIsInBhcnR5IiwicGF5IiwicGNjdyIsInBlIiwicGV0IiwicGYiLCJwZml6ZXIiLCJwZyIsInBoIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBpbmsiLCJwaW9uZWVyIiwicGl6emEiLCJwayIsInBsIiwicGxhY2UiLCJwbGF5IiwicGxheXN0YXRpb24iLCJwbHVtYmluZyIsInBsdXMiLCJwbSIsInBuIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwb3N0IiwicHIiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm8iLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsInByb3RlY3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHMiLCJwdCIsInB1YiIsInB3IiwicHdjIiwicHkiLCJxYSIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInJhY2luZyIsInJhZGlvIiwicmUiLCJyZWFkIiwicmVhbGVzdGF0ZSIsInJlYWx0b3IiLCJyZWFsdHkiLCJyZWNpcGVzIiwicmVkIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpbCIsInJpbyIsInJpcCIsInJvIiwicm9ja3MiLCJyb2RlbyIsInJvZ2VycyIsInJvb20iLCJycyIsInJzdnAiLCJydSIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3IiwicndlIiwicnl1a3l1Iiwic2EiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHkiLCJzYWt1cmEiLCJzYWxlIiwic2Fsb24iLCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2IiLCJzYmkiLCJzYnMiLCJzYyIsInNjYiIsInNjaGFlZmZsZXIiLCJzY2htaWR0Iiwic2Nob2xhcnNoaXBzIiwic2Nob29sIiwic2NodWxlIiwic2Nod2FyeiIsInNjaWVuY2UiLCJzY290Iiwic2QiLCJzZSIsInNlYXJjaCIsInNlYXQiLCJzZWN1cmUiLCJzZWN1cml0eSIsInNlZWsiLCJzZWxlY3QiLCJzZW5lciIsInNlcnZpY2VzIiwic2V2ZW4iLCJzZXciLCJzZXgiLCJzZXh5Iiwic2ZyIiwic2ciLCJzaCIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hlbGwiLCJzaGlhIiwic2hpa3NoYSIsInNob2VzIiwic2hvcCIsInNob3BwaW5nIiwic2hvdWppIiwic2hvdyIsInNpIiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNqIiwic2siLCJza2kiLCJza2luIiwic2t5Iiwic2t5cGUiLCJzbCIsInNsaW5nIiwic20iLCJzbWFydCIsInNtaWxlIiwic24iLCJzbmNmIiwic28iLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNyIiwic3JsIiwic3MiLCJzdCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdSIsInN1Y2tzIiwic3VwcGxpZXMiLCJzdXBwbHkiLCJzdXBwb3J0Iiwic3VyZiIsInN1cmdlcnkiLCJzdXp1a2kiLCJzdiIsInN3YXRjaCIsInN3aXNzIiwic3giLCJzeSIsInN5ZG5leSIsInN5c3RlbXMiLCJzeiIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0b28iLCJ0YXgiLCJ0YXhpIiwidGMiLCJ0Y2kiLCJ0ZCIsInRkayIsInRlYW0iLCJ0ZWNoIiwidGVjaG5vbG9neSIsInRlbCIsInRlbWFzZWsiLCJ0ZW5uaXMiLCJ0ZXZhIiwidGYiLCJ0ZyIsInRoIiwidGhkIiwidGhlYXRlciIsInRoZWF0cmUiLCJ0aWFhIiwidGlja2V0cyIsInRpZW5kYSIsInRpcHMiLCJ0aXJlcyIsInRpcm9sIiwidGoiLCJ0am1heHgiLCJ0angiLCJ0ayIsInRrbWF4eCIsInRsIiwidG0iLCJ0bWFsbCIsInRuIiwidG8iLCJ0b2RheSIsInRva3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0ciIsInRyYWRlIiwidHJhZGluZyIsInRyYWluaW5nIiwidHJhdmVsIiwidHJhdmVsZXJzIiwidHJhdmVsZXJzaW5zdXJhbmNlIiwidHJ1c3QiLCJ0cnYiLCJ0dCIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHYiLCJ0dnMiLCJ0dyIsInR6IiwidWEiLCJ1YmFuayIsInVicyIsInVnIiwidWsiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidXMiLCJ1eSIsInV6IiwidmEiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2YyIsInZlIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVybcO2Z2Vuc2JlcmF0ZXIiLCJ2ZXJtw7ZnZW5zYmVyYXR1bmciLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2ZyIsInZpIiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm4iLCJ2b2RrYSIsInZvbHZvIiwidm90ZSIsInZvdGluZyIsInZvdG8iLCJ2b3lhZ2UiLCJ2dSIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2ViY2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkIiwid2VkZGluZyIsIndlaWJvIiwid2VpciIsIndmIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsIndzIiwid3RjIiwid3RmIiwieGJveCIsInhlcm94IiwieGlodWFuIiwieGluIiwieHh4IiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwieWFuZGV4IiwieWUiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXQiLCJ5dW4iLCJ6YSIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem0iLCJ6b25lIiwienVlcmljaCIsInp3IiwizrXOuyIsIs61z4UiLCLQsdCzIiwi0LHQtdC7Iiwi0LTQtdGC0LgiLCLQtdGOIiwi0LrQsNGC0L7Qu9C40LoiLCLQutC+0LwiLCLQvNC60LQiLCLQvNC+0L0iLCLQvNC+0YHQutCy0LAiLCLQvtC90LvQsNC50L0iLCLQvtGA0LMiLCLRgNGD0YEiLCLRgNGEIiwi0YHQsNC50YIiLCLRgdGA0LEiLCLRg9C60YAiLCLSm9Cw0LciLCLVsNWh1bUiLCLXmdep16jXkNecIiwi16fXldedIiwi2KfYqNmI2LjYqNmKIiwi2KfYsdin2YXZg9mIIiwi2KfZhNin2LHYr9mGIiwi2KfZhNio2K3YsdmK2YYiLCLYp9mE2KzYstin2KbYsSIsItin2YTYs9i52YjYr9mK2KkiLCLYp9mE2LnZhNmK2KfZhiIsItin2YTZhdi62LHYqCIsItin2YXYp9ix2KfYqiIsItin24zYsdin2YYiLCLYqNin2LHYqiIsItio2KfYstin2LEiLCLYqNmK2KrZgyIsItio2r7Yp9ix2KoiLCLYqtmI2YbYsyIsItiz2YjYr9in2YYiLCLYs9mI2LHZitipIiwi2LTYqNmD2KkiLCLYudix2KfZgiIsIti52LHYqCIsIti52YXYp9mGIiwi2YHZhNiz2LfZitmGIiwi2YLYt9ixIiwi2YPYp9ir2YjZhNmK2YMiLCLZg9mI2YUiLCLZhdi12LEiLCLZhdmE2YrYs9mK2KciLCLZhdmI2LHZitiq2KfZhtmK2KciLCLZhdmI2YLYuSIsItmH2YXYsdin2YciLCLZvtin2qnYs9iq2KfZhiIsItqA2KfYsdiqIiwi4KSV4KWJ4KSuIiwi4KSo4KWH4KSfIiwi4KSt4KS+4KSw4KSkIiwi4KSt4KS+4KSw4KSk4KSu4KWNIiwi4KSt4KS+4KSw4KWL4KSkIiwi4KS44KSC4KSX4KSg4KSoIiwi4Kas4Ka+4KaC4Kay4Ka+Iiwi4Kat4Ka+4Kaw4KakIiwi4Kat4Ka+4Kew4KakIiwi4Kit4Ki+4Kiw4KikIiwi4Kqt4Kq+4Kqw4KqkIiwi4Kyt4Ky+4Kyw4KykIiwi4K6H4K6o4K+N4K6k4K6/4K6v4K6+Iiwi4K6H4K6y4K6Z4K+N4K6V4K+IIiwi4K6a4K6/4K6Z4K+N4K6V4K6q4K+N4K6q4K+C4K6w4K+NIiwi4LCt4LC+4LCw4LCk4LGNIiwi4LKt4LK+4LKw4LKkIiwi4LSt4LS+4LSw4LSk4LSCIiwi4La94LaC4Laa4LePIiwi4LiE4Lit4LihIiwi4LmE4LiX4LiiIiwi4Lql4Lqy4LqnIiwi4YOS4YOUIiwi44G/44KT44GqIiwi44Ki44Oe44K+44OzIiwi44Kv44Op44Km44OJIiwi44Kw44O844Kw44OrIiwi44Kz44OgIiwi44K544OI44KiIiwi44K744O844OrIiwi44OV44Kh44OD44K344On44OzIiwi44Od44Kk44Oz44OIIiwi5LiW55WMIiwi5Lit5L+hIiwi5Lit5Zu9Iiwi5Lit5ZyLIiwi5Lit5paH572RIiwi5Lqa6ams6YCKIiwi5LyB5LiaIiwi5L2b5bGxIiwi5L+h5oGvIiwi5YGl5bq3Iiwi5YWr5Y2mIiwi5YWs5Y+4Iiwi5YWs55uKIiwi5Y+w5rm+Iiwi5Y+w54GjIiwi5ZWG5Z+OIiwi5ZWG5bqXIiwi5ZWG5qCHIiwi5ZiJ6YeMIiwi5ZiJ6YeM5aSn6YWS5bqXIiwi5Zyo57q/Iiwi5aSn5ou/Iiwi5aSp5Li75pWZIiwi5aix5LmQIiwi5a626Zu7Iiwi5bm/5LicIiwi5b6u5Y2aIiwi5oWI5ZaEIiwi5oiR54ix5L2gIiwi5omL5py6Iiwi5oub6IGYIiwi5pS/5YqhIiwi5pS/5bqcIiwi5paw5Yqg5Z2hIiwi5paw6Ze7Iiwi5pe25bCaIiwi5pu457GNIiwi5py65p6EIiwi5reh6ams6ZShIiwi5ri45oiPIiwi5r6z6ZaAIiwi54K555yLIiwi56e75YqoIiwi57uE57uH5py65p6EIiwi572R5Z2AIiwi572R5bqXIiwi572R56uZIiwi572R57ucIiwi6IGU6YCaIiwi6LC35q2MIiwi6LSt54mpIiwi6YCa6LKpIiwi6ZuG5ZuiIiwi6Zu76KiK55uI56eRIiwi6aOe5Yip5rWmIiwi6aOf5ZOBIiwi6aSQ5Y6FIiwi6aaZ5qC86YeM5ouJIiwi6aaZ5rivIiwi64u364S3Iiwi64u37Lu0Iiwi7IK87ISxIiwi7ZWc6rWtIl1gKSx5Zj0vXlstISMkJSYnKisvMC05PT9BLVpeX2EtemB7fH1+XShcLj9bLSEjJCUmJyorLzAtOT0/QS1aXl9hLXpge3x9fl0pKkBbYS16QS1aMC05XSgtKlwuP1thLXpBLVowLTldKSpcLlthLXpBLVpdKC0/W2EtekEtWjAtOV0pKyQvLGJmPS8oKD86d3d3Lik/W15ccy5dK1wuW15ccy9dK1wvW15ccy5dKykvLHhmPS9bJjw+IiddL2csU2Y9ZT0+e2xldCB0PXsiJiI6YCZhbXA7YCwiPCI6YCZsdDtgLCI+IjpgJmd0O2AsJyInOmAmcXVvdDtgLCInIjpgJiMzOTtgfSxuPVJlZ0V4cCh4Zi5zb3VyY2UpO3JldHVybiBlJiZuLnRlc3QoZSk/ZS5yZXBsYWNlKHhmLGU9PnRbZV0pOmV8fGBgfSxDZj1gb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94OyAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOyAtd2Via2l0LWxpbmUtY2xhbXA6IDE7IGxpbmUtY2xhbXA6IDE7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtgLHdmPW5ldyBfZigpLnRsZHModmYpLnNldCh7ZnV6enlJUDohMH0pLFRmPW5ldyBfZigpLnRsZHModmYpLEVmPShlLHQsbik9PntsZXQgcj1CKCkubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuYDxhIGhyZWY9IiR7ZX0iIHRhcmdldD0iJHtyLmxlbmd0aD4wJiZlLmluY2x1ZGVzKHIpP2BfcGFyZW50YDpgX2JsYW5rYH0iIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgdGl0bGU9IiR7ZX0iIHN0eWxlPSIke24/LmNsYW1wJiYhbj8ucmVwbGFjZVRleHQ/Q2Y6YGB9Ij4ke3R9PC9hPmB9LERmPShlLHQpPT57aWYoZT09PWBgKXJldHVybiBlO2xldCBuPXdmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBTZihlKTtsZXQgcj1gYCxpPTA7cmV0dXJuIG4uZm9yRWFjaChuPT57bGV0IGE9YGAsbz1gYCxzPU9mKGUsbiksYz10Py5jbGFtcCYmbi50ZXh0Lmxlbmd0aD4zMCYmIXM7bi5pbmRleD5pJiYoYT1lLnN1YnN0cmluZyhpLG4uaW5kZXgpKSxvPUVmKG4udXJsLG4udGV4dCx7Li4udCxjbGFtcDpjfSksaT1uLmxhc3RJbmRleCxzJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpLGkrPTEpLGMmJiFrZihlLG4pJiYobz1gXG4ke299XG5gLGE9YS50cmltRW5kKCksZVtpXT8ubWF0Y2goL1xzLykmJihpKz0xKSkscis9U2YoYSkrb30pLGUubGVuZ3RoPmkmJihyKz1TZihlLnN1YnN0cmluZyhpKSkpLHJ9LE9mPShlLHQpPT5lW3QuaW5kZXgtMV09PT1gImAmJmVbdC5sYXN0SW5kZXhdPT09YCJgLGtmPShlLHQpPT4hISh0LmluZGV4PD0xJiZlLnN1YnN0cmluZyh0Lmxhc3RJbmRleCx0Lmxhc3RJbmRleCszKS5tYXRjaCgvW1xuXHJdKy8pfHxlLnN1YnN0cmluZyh0LmluZGV4LTMsdC5pbmRleCkubWF0Y2goL1tcblxyXSsvKSYmZS5zdWJzdHJpbmcodC5sYXN0SW5kZXgsdC5sYXN0SW5kZXgrMykubWF0Y2goL1tcblxyXSsvKXx8ZS5zdWJzdHJpbmcodC5pbmRleC0zLHQuaW5kZXgpLm1hdGNoKC9bXG5ccl0rLykmJnQubGFzdEluZGV4PmUubGVuZ3RoLTN8fHQuaW5kZXg8PTEmJnQubGFzdEluZGV4Pj1lLmxlbmd0aC0yKSxBZj1lPT5lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sYGApLnJlcGxhY2UoL153d3dcLi8sYGApLnJlcGxhY2UoL1wvKyQvLGBgKS50b0xvd2VyQ2FzZSgpLGpmPWU9PntsZXQgdD1bYG1haWx0bzpgLGBmdHA6YCxgLy9gXSxuPVRmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCByPW5ldyBTZXQ7cmV0dXJuIG4uZmlsdGVyKGU9PntpZih0LmluY2x1ZGVzKGUuc2NoZW1hKSlyZXR1cm4hMTtsZXQgbj1BZihlLnVybCk7cmV0dXJuIHIuaGFzKG4pPyExOihyLmFkZChuKSwhMCl9KX0sTWY9KCk9PlBvKGBjYXJkc2ApLE5mPWU9PntGbyh7Li4uZX0sYGNhcmRzYCl9LFBmPWFzeW5jIGU9PntsZXQgdD1uZXcgSGVhZGVycyx7d2lkZ2V0QXBpVXJsOm59PVYuZ2V0T3B0aW9ucygpO3QuYXBwZW5kKGBDb250ZW50LVR5cGVgLGBhcHBsaWNhdGlvbi9qc29uYCk7bGV0IHI9SlNPTi5zdHJpbmdpZnkoe2xpbmtzOmV9KTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7bn0vbGlua3MvcHJldmlld2Ase21ldGhvZDpgUE9TVGAsaGVhZGVyczp0LGJvZHk6cn0pO3JldHVybiBlLm9rJiZlLmpzb24/YXdhaXQgZS5qc29uKCk6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19LEZmPWU9PmUuZmluZChlPT5lLnR5cGU9PT1gb3Blbl91cmxgKT8udmFsdWV8fGBgLElmPWU9PntsZXQgdD1lLmZpbHRlcihlPT5lLnRpdGxlJiZlLmltYWdlJiYhUmYoRmYoZS5hY3Rpb25zKSkpO3JldHVybiB0Lmxlbmd0aCYmZS5sZW5ndGg+MT9lOnQubGVuZ3RoPT09MT90OltdfSxMZj1lPT57bGV0IHQ9bmV3IERhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+eyghZVtuXS5leHBpcmF0aW9ufHxlW25dLmV4cGlyYXRpb24mJmVbbl0uZXhwaXJhdGlvbjx0KSYmZGVsZXRlIGVbbl19KSxlfSxSZj1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dH09QShibCksbj1lLm1hdGNoKC8oXC4pKFteLl17Myw0fSkkL20pO3JldHVybiBuJiZuWzJdJiZ0LmluY2x1ZGVzKG5bMl0pfSx6Zj1hc3luYyBlPT57dHJ5e2F3YWl0IHEuZ2V0Q2xpZW50KCkubGlua09wZW5lZCh7dXJsOmV9KX1jYXRjaChlKXtqbyhgU2VuZGluZyBsaW5rIG9wZW5lZCBhbmFseXRpY3MgZXZlbnQgZmFpbGVkYCxTdHJpbmcoZSkpfX0sQmY9KGUsdCk9PntpZighdClyZXR1cm47bGV0IG49YXN5bmMgbj0+e2xldCByPW4udGFyZ2V0LmNsb3Nlc3QoYGFgKTtyJiZlLmNvbnRhaW5zKHIpJiZ0JiZhd2FpdCB6ZihyLmhyZWYpfSxyPWU9PnZvaWQgbihlKSxpPWU9PntlLmJ1dHRvbiE9PTImJm4oZSl9LGE9ZT0+dm9pZCBuKGUpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCxyKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGF1eGNsaWNrYCxpKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGNvbnRleHRtZW51YCxhKSx7ZGVzdHJveSgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYXV4Y2xpY2tgLGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY29udGV4dG1lbnVgLGEpfX19LFZmPSExLEhmPU8oKSxVZj1PKCExKSxXZj1PKCExKSxHZj0oZSx0LG4pPT57bGV0IHI9e30saT1uZXcgRGF0ZSgpLmdldFRpbWUoKStNZDtlLmZvckVhY2goKGUsbik9PnJbZV09e2V4cGlyYXRpb246aSxjYXJkOnRbbl19KTtsZXQgYT17Li4ubiwuLi5yfTtIZi5zZXQoYSksTmYoYSl9LEtmPWFzeW5jKGUsdCxuPSExKT0+e2xldCByPVtdLGk9e3R5cGU6YGNhcmRzYCxsYXlvdXQ6YGNhcm91c2VsYCxpdGVtczpbXX07VmZ8fD0oSGYuc2V0KE1mKCkpLCEwKTtsZXQgYT1qZihlKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1MZihBKEhmKSkscz1bXTtpZihhLmZvckVhY2godD0+e09mKGUsdCl8fChvW3QudXJsXT9yLnB1c2gob1t0LnVybF0uY2FyZCk6cy5wdXNoKHQudXJsKSl9KSxzLmxlbmd0aD4wKXt0JiZVZi5zZXQoITApLG4mJldmLnNldCghMCk7bGV0IGU9YXdhaXQgUGYocyk7ZSYmKEdmKHMsZSxvKSxyPVsuLi5yLC4uLmVdKX1yZXR1cm4gaS5pdGVtcz1JZihyKSxVZi5zZXQoITEpLFdmLnNldCghMSksaS5pdGVtcy5sZW5ndGg+MD9pOm51bGx9LHFmPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbnRhY3RNZXNzYWdlPWBjb250YWN0LW1lc3NhZ2VgLGUuQWdlbnRNZXNzYWdlPWBhZ2VudC1tZXNzYWdlYCxlLkJvdE1lc3NhZ2U9YGJvdC1tZXNzYWdlYCxlLkJvdFJlcGxpZXM9YGJvdC1yZXBsaWVzYCxlfSh7fSksSmY9YXN5bmMoe3RleHQ6ZSxxdWlja1JlcGx5OnR9KT0+e3RyeXtsZXQgbj1CKCkubG9jYXRpb24uaHJlZjtyZXR1cm4gYXdhaXQgcS5nZXRDbGllbnQoKS5jaGF0TWVzc2FnZSh7Y29udGVudDp7dHlwZTpHLk1lc3NhZ2VDb250ZW50VHlwZS5UZXh0LHRleHQ6ZX0scXVpY2tSZXBseTp0LHBhZ2VVcmw6bn0pPz9udWxsfWNhdGNoe3JldHVybiBudWxsfX0sWWY9ZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3R8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuVHJpZ2dlcixYZj1lPT5lLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlN5c3RlbSxaZj1lPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk5vdGUsUWY9ZT0+IWUuZGVsZXRlZEF0JiYhWmYoZSkmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxZZihlKSksJGY9ZT0+YGh0bWxgaW4gZSYmISFlLmh0bWwsZXA9ZT0+YHRleHRgaW4gZSYmISFlLnRleHQsdHA9KGUsdCk9Pm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCktbmV3IERhdGUodC5jcmVhdGVkQXQpLmdldFRpbWUoKSxucD0oZSx0KT0+dD09PXFmLkJvdFJlcGxpZXM/YCR7ZS5pZH0tcmVwbGllc2A6ZS5pZCxycD1lPT57bGV0IHQ9e2lzUmlnaHQ6ITEsaXNMZWZ0OiExfSxuPXtpc1ByaW1hcnk6ITEsaXNTZWNvbmRhcnk6ITF9O3N3aXRjaChlKXtjYXNlIHFmLkNvbnRhY3RNZXNzYWdlOnQuaXNSaWdodD0hMCxuLmlzUHJpbWFyeT0hMDticmVhaztkZWZhdWx0OnQuaXNMZWZ0PSEwLG4uaXNTZWNvbmRhcnk9ITB9cmV0dXJue2FsaWduOnQsdmFyaWFudDpufX0saXA9ZT0+ISFlLmFnZW50SWR8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiZlLmNvbnRlbnQudHlwZSE9PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlRpY2tldEZvcm0sYXA9KGUsdCk9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuU3lzdGVtfHx0PT09cWYuQm90UmVwbGllc3x8ZS5jb250ZW50LnR5cGU9PT1HLk1lc3NhZ2VDb250ZW50VHlwZS5UaWNrZXRGb3JtLG9wPWU9PntsZXQgdD1bXSxuPW51bGwscj1udWxsO2ZvcihsZXQgaSBvZiBlKXtpZihpLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiYoaS5jb250ZW50LmRhdGEudGFyZ2V0PT09Ry5SYXRpbmdUYXJnZXQuQWkmJiFKcCgpfHxpLmNvbnRlbnQuZGF0YS50YXJnZXQ9PT1HLlJhdGluZ1RhcmdldC5BZ2VudCYmIXFwKCkpKWNvbnRpbnVlO24mJiFocChpLG4pJiYodC5wdXNoKG4pLG49bnVsbCxyPW51bGwpLG58fD1zcChpKTtsZXQgZT1scChpLG4pO2lmKHIpe2xldCB0PV9wKHIpLG49ZHAocik7ZS5uZWlnaGJvcnMuaGFzVG9wPXQsbi5hbnkubmVpZ2hib3JzLmhhc0JvdHRvbT10LG4uYXR0YWNobWVudENvbnRleHQmJihuLmF0dGFjaG1lbnRDb250ZXh0LmV4dHJhU3BhY2VzLmhhc0JvdHRvbT15cChuLmF0dGFjaG1lbnRDb250ZXh0LmF0dGFjaG1lbnQpKX1sZXQgYT1mcChpKTtpZihhJiZ1cChhLGUsciksbi5tZXNzYWdlc0NvbnRleHQucHVzaChlKSxyPWUsKFlmKGkpfHxYZihpKSkmJlRwKGkpKXt0LnB1c2gobik7bGV0IGU9Y3AoaSk7ZS5tZXNzYWdlc0NvbnRleHQucHVzaChscChpLGUpKSx0LnB1c2goZSksbj1udWxsfX1yZXR1cm4gbiYmdC5wdXNoKG4pLHR9LHNwPWU9PntsZXQgdD1ncChlKSxuPWUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXIse2FsaWduOnIsdmFyaWFudDppfT1ycCh0KTtyZXR1cm57dHlwZTp0LGlzQm90Om4saWQ6bnAoZSx0KSxkYXRlOmUuY3JlYXRlZEF0LGFnZW50SWQ6ZS5hZ2VudElkLGFsaWduOnIsdmFyaWFudDppLG1lc3NhZ2VzQ29udGV4dDpbXSxzaG93QXZhdGFyOmlwKGUpLHVzZUZ1bGxXaWR0aDphcChlLHQpfX0sY3A9ZT0+e2xldCB0PXFmLkJvdFJlcGxpZXMse2FsaWduOm4sdmFyaWFudDpyfT1ycCh0KTtyZXR1cm57dHlwZTpxZi5Cb3RSZXBsaWVzLGlzQm90OiEwLGlkOm5wKGUsdCksZGF0ZTplLmNyZWF0ZWRBdCxhZ2VudElkOmUuYWdlbnRJZCxhbGlnbjpuLHZhcmlhbnQ6cixtZXNzYWdlc0NvbnRleHQ6W10sc2hvd0F2YXRhcjohMSx1c2VGdWxsV2lkdGg6YXAoZSx0KX19LGxwPShlLHQpPT4oe2dyb3VwOnQsbWVzc2FnZTplLG5laWdoYm9yczp7aGFzVG9wOiExLGhhc0JvdHRvbTohMX0sYXR0YWNobWVudHNDb250ZXh0OltdfSksdXA9KGUsdCxuKT0+e2xldCByPW51bGw7Zm9yKGxldCBpIG9mIGUpe2xldCBlPXZwKGkpLGE9e2hhc1RvcDohMSxoYXNCb3R0b206ITF9LG89eXAoaSkscz17aGFzVG9wOm8saGFzQm90dG9tOiExfTtpZihyKXtsZXQgdD12cChyLmF0dGFjaG1lbnQpLG49eXAoci5hdHRhY2htZW50KTtyLm5laWdoYm9ycy5oYXNCb3R0b209dCYmZSxhLmhhc1RvcD10JiZlLHIuZXh0cmFTcGFjZXMuaGFzQm90dG9tPSFvJiZufWVsc2UgaWYodC5uZWlnaGJvcnMuaGFzQm90dG9tPWUsYS5oYXNUb3A9ZSxwcCh0Lm1lc3NhZ2UpKWlmKGEuaGFzVG9wPSExLHQubmVpZ2hib3JzLmhhc1RvcD0hMSx0Lm5laWdoYm9ycy5oYXNCb3R0b209ITEsbil7bGV0IHQ9X3Aobikscj1kcChuKTthLmhhc1RvcD10JiZlLHIuYW55Lm5laWdoYm9ycy5oYXNCb3R0b209dCYmZTtsZXQgaT1yLmF0dGFjaG1lbnRDb250ZXh0O2kmJihpLmV4dHJhU3BhY2VzLmhhc0JvdHRvbT0hbyYmeXAoaS5hdHRhY2htZW50KSl9ZWxzZSBzLmhhc1RvcD0hMTtsZXQgYz17YXR0YWNobWVudDppLG5laWdoYm9yczphLGV4dHJhU3BhY2VzOnMsbWVzc2FnZUNvbnRleHQ6dH07dC5hdHRhY2htZW50c0NvbnRleHQucHVzaChjKSxyPXsuLi5jfX19LGRwPWU9PntsZXQgdD1TZChlLmF0dGFjaG1lbnRzQ29udGV4dCl8fHZvaWQgMDtyZXR1cm57YXR0YWNobWVudENvbnRleHQ6dCxhbnk6dHx8ZX19LGZwPWU9PmU/ZS5jb250ZW50Py50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuVXBsb2FkP1tlLmNvbnRlbnQuZGF0YV06ZS5hdHRhY2htZW50czpbXSxwcD1lPT4hZS5jb250ZW50LnRleHQsbXA9ZT0+e3RyeXtsZXQgdD1CKCkubG9jYXRpb24uaG9zdG5hbWUsbj1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsYHRleHQvaHRtbGApO3JldHVybiBuLnF1ZXJ5U2VsZWN0b3JBbGwoYGFbaHJlZl1gKS5mb3JFYWNoKGU9PntsZXQgbj1lLmdldEF0dHJpYnV0ZShgaHJlZmApfHxgYDtuPW4ucmVwbGFjZSgvXmh0dHBzPzpcL1wvIj9odHRwcz86XC9cLy8sYGh0dHBzOi8vYCksbj1uLnJlcGxhY2UoL14iK3wiKyQvZyxgYCksZS5zZXRBdHRyaWJ1dGUoYGhyZWZgLG4pO2xldCByPXQubGVuZ3RoPjAmJm4uaW5jbHVkZXModCk7ZS5oYXNBdHRyaWJ1dGUoYHRhcmdldGApfHxlLnNldEF0dHJpYnV0ZShgdGFyZ2V0YCxyP2BfcGFyZW50YDpgX2JsYW5rYCksZS5oYXNBdHRyaWJ1dGUoYHJlbGApfHxlLnNldEF0dHJpYnV0ZShgcmVsYCxgbm9vcGVuZXIgbm9yZWZlcnJlcmApfSksbi5ib2R5LmlubmVySFRNTH1jYXRjaHtyZXR1cm4gZX19LGhwPShlLHQpPT57bGV0IG49Z3AoZSkscj1uPT09cWYuQWdlbnRNZXNzYWdlJiZlLmFnZW50SWQ9PT10LmFnZW50SWQsaT1uPT09cWYuQ29udGFjdE1lc3NhZ2UsYT1lLnN1YlR5cGUhPT1HLk1lc3NhZ2VTdWJUeXBlLkJvdHx8KGUuY29udGVudC5xdWlja1JlcGxpZXN8fFtdKS5sZW5ndGg9PT0wO3JldHVybiB0LnR5cGU9PT1uJiYocnx8aSkmJmEmJklkKHQuZGF0ZSxlLmNyZWF0ZWRBdCl9LGdwPWU9Pntzd2l0Y2goZS5zdWJUeXBlKXtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQWdlbnQ6cmV0dXJuIHFmLkFnZW50TWVzc2FnZTtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdDpyZXR1cm4gcWYuQ29udGFjdE1lc3NhZ2U7Y2FzZSBHLk1lc3NhZ2VTdWJUeXBlLkJvdDpyZXR1cm4gcWYuQm90TWVzc2FnZX1yZXR1cm4gbnVsbH0sX3A9ZT0+e2xldCB0PWUuYXR0YWNobWVudHNDb250ZXh0Lmxlbmd0aDtyZXR1cm4hKHQ+MCYmZS5hdHRhY2htZW50c0NvbnRleHRbdC0xXS5hdHRhY2htZW50LnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUpfSx2cD1lPT5lLnR5cGUhPT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUmJmUudHlwZSE9PUcuQXR0YWNobWVudFR5cGUuQ2FyZHMseXA9ZT0+ISFlJiYoZS50eXBlPT09Ry5BdHRhY2htZW50VHlwZS5GaWxlfHxlLnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkNhcmRzKSxicD0oKT0+e2xldCBlPWdfKCk7ZS52b2x1bWU9cWMsZS5hZGRFdmVudExpc3RlbmVyKGBjYW5wbGF5dGhyb3VnaGAsKCk9PntlLnBsYXkoKS5jYXRjaChlPT5IKGBDb3VsZCBub3QgcGxheSBtZXNzYWdlIHNvdW5kLmAsZSkpfSl9LHhwPUtkKGJwLEpjKSxTcD1lPT5lLmZpbHRlcihlPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk1lc3NhZ2UmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QpKSxDcD0oZSx0PSEwKT0+e2xldCBuPWUucmVkdWNlKChlLHQpPT4oZS5wdXNoKHQpLHQuY29udGVudC50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuQ2hhdENsb3NlfHx0LmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLkNoYXRWaXNpdG9yQ2xvc2U/W106ZSksW10pO3JldHVybiB0P24uZmlsdGVyKGU9PmUudHlwZT09PUcuTWVzc2FnZVR5cGUuTWVzc2FnZSYmZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5TeXN0ZW0pOm59LHdwPWU9PntsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKGU9PntlLnRyaWdnZXImJih0W2UudHJpZ2dlci5pZF09e3NlbnQ6ITB9KX0pLHR9LFRwPWU9PiEhKGUuY29udGVudC5xdWlja1JlcGxpZXMmJmUuY29udGVudC5xdWlja1JlcGxpZXMubGVuZ3RoPjApLEVwPWFzeW5jKGUsdD0hMSk9PntsZXQgbj1RZihlKSxyPSF0JiZuO2lmKGBodG1sYGluIGUuY29udGVudCYmZS5jb250ZW50Lmh0bWwmJihlLmNvbnRlbnQuaHRtbD1tcChlLmNvbnRlbnQuaHRtbCkpLGUuY29udGVudD8udGV4dCYmVi5nZXRPcHRpb25zKCkudXJsQ2FyZHNFbmFibGVkJiZlLmF0dGFjaG1lbnRzLmxlbmd0aD09PTApe2xldCB0PWF3YWl0IEtmKGUuY29udGVudC50ZXh0LGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCxyKTt0JiZ0Lml0ZW1zLmxlbmd0aD4wJiZlLmF0dGFjaG1lbnRzLnB1c2godCl9cmV0dXJuIG5kLnNldCghMSksZX0sRHA9YXN5bmMgZT0+KFYuZ2V0T3B0aW9ucygpLnVybENhcmRzRW5hYmxlZCYmYXdhaXQgUHJvbWlzZS5hbGwoZS5tYXAoYXN5bmMgZT0+YXdhaXQgRXAoZSkpKSxlKSxPcD1lPT5lLmZpbmRJbmRleChlPT5lLm1lc3NhZ2UuY2hhbm5lbC50eXBlPT09YGVtYWlsYCk+LTEsa3A9ZT0+ZS5maW5kKGU9PmUubWVzc2FnZT8udHJpZ2dlcj8uaWRlbnRpdHlJZCk/Lm1lc3NhZ2U/LnRyaWdnZXI/LmlkZW50aXR5SWQsSj0oKCk9PntsZXQgZT1PKHt9KSx7c3Vic2NyaWJlOnQsdXBkYXRlOm4sc2V0OnJ9PWUsaT1hc3luYyBlPT57cihybChgaWRgLGF3YWl0IERwKGUpKSl9LGE9YXN5bmMgZT0+e2xldCB0PWF3YWl0IEVwKGUpO1lmKGUpJiZNcC5zZXQoITEpLG4obj0+KHsuLi5uLFtlLmlkXTp0fSkpLGpwKHQpfSxvPWFzeW5jIGU9PntpZighQShScCkuc29tZSh0PT50LmlkPT09ZS5pZCkpcmV0dXJuO2xldCB0PUEoQnApPT09ZS5pZD9hd2FpdCBFcChlLCEwKTplO24obj0+KHsuLi5uLFtlLmlkXTp0fSkpfTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0TWVzc2FnZXM6aSxhZGRNZXNzYWdlOmEsZGVsZXRlTWVzc2FnZTplPT57bih0PT57bGV0e1tlXTpuLC4uLnJ9PXQ7cmV0dXJuIHJ9KX0sbWFya01lc3NhZ2VBc0RlbGV0ZWQ6KHQscik9PntsZXQgaT1BKGUpW3RdO2kmJm4oZT0+KHsuLi5lLFtpLmlkXTp7Li4uaSxkZWxldGVkQXQ6cj8/bmV3IERhdGUoKS50b0lTT1N0cmluZygpfX0pKX0scmVwbGFjZU1lc3NhZ2U6byx1cGRhdGVNZXNzYWdlUmF0aW5nOmU9PntBKGlkKT09PWUuY29udGVudC5kYXRhPy50YXJnZXQmJnhkKCksbih0PT4hZXx8ZS5jb250ZW50LnR5cGUhPT1HLk1lc3NhZ2VDb250ZW50VHlwZS5SYXRlRm9ybT97Li4udH06KHRbZS5pZF18fFlwKGUuaWQpLHsuLi50LFtlLmlkXTplfSkpfSxzZW5kTWVzc2FnZTphc3luYyhlLHQpPT57S3Auc2V0KGUpO2xldCBuPWF3YWl0IEpmKHt0ZXh0OmV9KTtuJiYoS3Auc2V0KG51bGwpLGF3YWl0IGEobiksei5lbWl0KGBtZXNzYWdlU2VudGAsbiksd2goQSgkdSkpKSxhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChlPT5PZChlKSkpfSxzZW5kQm90UmVwbHk6YXN5bmMoZSx0LG4pPT57bGV0IHI9YXdhaXQgSmYoe3RleHQ6dCxxdWlja1JlcGx5OntyZXBseVRvOmUscGF5bG9hZDpufX0pO24uaXNHb0JhY2tCdXR0b258fEptKHQpLHImJmF3YWl0IG8ocil9LGNsZWFyTWVzc2FnZXM6KCk9PntyKHt9KX19fSkoKSxBcD1lPT57QShSXyl8fElfKCksUV8oKSxzZXRUaW1lb3V0KCgpPT57Si5hZGRNZXNzYWdlKGUpLCRfKCl9LDE2MDApfSxqcD1lPT57ZSYmQShEXykmJkEoUl8pJiYhKEEoa18pJiZBKFgpKSYmX18oZSkmJnhwKCl9LE1wPU8oITEpLE5wPWsoW0pdLChbZV0pPT57bGV0IHQ9T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoUWYpO3JldHVybiB0P1NkKHQuc29ydCgoZSx0KT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpLmdldFRpbWUoKS1uZXcgRGF0ZSh0LmNyZWF0ZWRBdCkuZ2V0VGltZSgpKSk6bnVsbH0pLFBwPWsoW0oscmRdLChbZSx0XSk9PntsZXQgbj1PYmplY3QudmFsdWVzKGUpLmZpbHRlcihRZik7cmV0dXJuIHQ/bi5maWx0ZXIoZT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpPm5ldyBEYXRlKHQpKTpufSksRnA9ayhbUHBdLChbZV0pPT5TZChlKSksSXA9ayhbUHBdLChbZV0pPT5lLmxlbmd0aCksTHA9ayhbSXBdLChbZV0pPT5lPjApLFJwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLnNvcnQodHApKSx6cD1rKFtScF0sKFtlXSk9Pm9wKGUpKSxCcD1rKFtScF0sKFtlXSk9PlNkKGUpPy5pZD8/bnVsbCksVnA9ayhbSl0sKFtlXSk9PlNkKE9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKGU9PnR5cGVvZiBlLndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD09YGJvb2xlYW5gKSk/LndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD8/ITEpLEhwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLmZpbHRlcihlPT5lLnN1YlR5cGU9PT1gY29udGFjdGB8fGUuc3ViVHlwZT09PWBhZ2VudGApLmxlbmd0aD4wKSxVcD1rKFtKXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KS5sZW5ndGg+MCksV3A9ayhbSixDc10sKFtlLHRdLG4pPT57aWYodCl7bGV0IHI9ZVt0XTtyJiZyLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiZuKHttZXNzYWdlSWQ6ci5pZCx2YWx1ZTpyLmNvbnRlbnQuZGF0YT8udmFsdWUsdGV4dDpyLmNvbnRlbnQuZGF0YT8udGV4dCx0YXJnZXQ6ci5jb250ZW50LmRhdGE/LnRhcmdldH0pfWVsc2UgbihudWxsKX0pLEdwPWsoW1JwXSwoW2VdKT0+ZS5zbGljZSgpLnJldmVyc2UoKS5maW5kKGU9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCl8fG51bGwpLEtwPU8obnVsbCkscXA9KCk9PiEhVi5nZXRPcHRpb25zKCkucmF0aW5nRW5hYmxlZCxKcD0oKT0+ISFWLmdldE9wdGlvbnMoKS5haVJhdGluZ0VuYWJsZWQsWXA9ZT0+e0NzLnNldChlKSxCYyhIYy5DaGF0UmF0aW5nKX0sWHA9YXN5bmMoe21lc3NhZ2VJZDplLHJhdGluZzp7dGV4dDp0LHZhbHVlOm59LG9uU3VjY2VzczpyfSk9PntsZXQgaT1BKEopW2VdLGE9ZT09PWByYXRlX2Zvcm1faWRgP3ZvaWQgMDplO3RyeXthd2FpdCBxLmdldENsaWVudCgpLmNoYXRSYXRlKHttZXNzYWdlSWQ6YSx2YWx1ZTpuLHRleHQ6dD8/dm9pZCAwfSksciYmcigpfWNhdGNoKGUpe2kmJmF3YWl0IEoucmVwbGFjZU1lc3NhZ2UoaSksam8oYENoYXQgcmF0aW5nIGZhaWxlZC5gLFN0cmluZyhlKSksZ3MoQShXKShgZm9ybS5zdWJtaXQuZXJyb3JgKSl9fSxacD1lPT57bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvcmF0aW5nLyR7ZX0uc3ZnYH0sUXA9LyhHLShbQS1aLDAtOV0qKSkvZywkcD1bXSxlbT0hMSx0bSxubT0hMSxybSxpbT1lPT5lLm1hdGNoKFFwKSxhbT0oKT0+e2xldHtnb29nbGVBbmFseXRpY3NFbmFibGVkOmV9PVYuZ2V0T3B0aW9ucygpO3RtPXdpbmRvdy50b3B8fHdpbmRvdyxlJiYodG0uZ3RhZyYmKHJtPXRtLmd0YWcsbm09ITApLHoub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxvbSksIWVtJiZVbygpJiZzbSgpKX0sb209ZT0+eyFlbSYmZSYmc20oKX0sc209KCk9PntsZXR7Z2FLZXk6ZSxnYU9wdGlvbnM6dCxnb29nbGVBbmFseXRpY3NNYW51YWw6bixnb29nbGVBbmFseXRpY3NNZWFzdXJlbWVudElkczpyfT1WLmdldE9wdGlvbnMoKSxpPXR8fHtjb29raWVEb21haW46YGF1dG9gfTtpZihlKWltKGUpJiYkcC5wdXNoKHtrZXk6ZSxvcHRpb25zOml9KTtlbHNlIGlmKG4mJnIpci5mb3JFYWNoKGU9PntpbShlKSYmJHAucHVzaCh7a2V5OmUsb3B0aW9uczppfSl9KTtlbHNlIHRyeXskcC5wdXNoKC4uLmNtKCkpfWNhdGNoKGUpe3ZvKGBFcnJvciBkdXJpbmcgZ2V0dGluZyBHQSB0b3AgdHJhY2tlcnNgLGUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZSl9JHAubGVuZ3RoPjAmJiFubSYmbG0oKSwkcC5sZW5ndGg9PT0wP3ZvKGBObyBHQSB0byBzZXR1cGApOihkbSgpLGVtPSEwLHZvKGBHQSBpbml0aWFsaXplZGApKX0sY209KCk9PntsZXQgZT1bXTtyZXR1cm4gdG0uZ29vZ2xlX3RhZ19tYW5hZ2VyJiZPYmplY3Qua2V5cyh0bS5nb29nbGVfdGFnX21hbmFnZXIpLmZvckVhY2godD0+e2ltKHQpJiZlLnB1c2goe2tleTp0LG9wdGlvbnM6e2Nvb2tpZURvbWFpbjpgYXV0b2B9fSl9KSxlfSxsbT0oKT0+e2xldCBlPXRtLmRvY3VtZW50LHtoZWFkOnR9PWUsbj1lLmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO24uaWQ9YGd0YWdgLG4udHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxuLmFzeW5jPSEwLG4uc3JjPWBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzYCx0Lmluc2VydEJlZm9yZShuLHQuZmlyc3RDaGlsZCksdG0uZGF0YUxheWVyPXRtLmRhdGFMYXllcnx8W10sdG0uZ3RhZz1mdW5jdGlvbigpe3RtLmRhdGFMYXllci5wdXNoKGFyZ3VtZW50cyl9LHJtPXRtLmd0YWcscm0oYGpzYCxuZXcgRGF0ZSl9LHVtPSgpPT57bGV0IGU9W107aWYobm0pe2xldCB0PWNtKCk7JHAuZm9yRWFjaChuPT57dC5maW5kKCh7a2V5OmV9KT0+ZT09PW4ua2V5KXx8ZS5wdXNoKG4pfSl9ZWxzZSBlPVsuLi4kcF07cmV0dXJuIGV9LGRtPSgpPT57dW0oKS5mb3JFYWNoKGU9PntsZXR7a2V5OnQsb3B0aW9uczpufT1lLHI9e307bj8ocj17Y29va2llX2RvbWFpbjpuLmNvb2tpZURvbWFpbn0sbi5uYW1lJiYoci5uYW1lPW4ubmFtZSkpOnI9e2Nvb2tpZV9kb21haW46dG0/LmxvY2F0aW9uLmhvc3RuYW1lfHxgYH0sci5zZW5kX3BhZ2Vfdmlldz0hMSxybShgY29uZmlnYCx0LHIpfSl9LGZtPShlLHQpPT57bGV0e2dvb2dsZUFuYWx5dGljc0VuYWJsZWQ6bn09Vi5nZXRPcHRpb25zKCk7aWYoISghbnx8IXRtLmd0YWd8fCFVbygpfHx0bS5kb2N1bWVudC5oaWRkZW4pKXRyeXskcC5mb3JFYWNoKG49Pnt0LnNlbmRfdG89bi5rZXkscm0oYGV2ZW50YCxlLHQpLHZvKGBTbWFydHN1cHA6IEdBIGV2ZW50ICR7ZX0gLSAke0pTT04uc3RyaW5naWZ5KHQpfWApfSl9Y2F0Y2goZSl7dm8oYFNtYXJ0c3VwcDogR0EgZXJyb3I6YCxlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpfX0scG09YFZpc2l0b3Jfc3RhcnRlZF9jb252ZXJzYXRpb25gLG1tPWBWaXNpdG9yX2Nsb3NlZF9jb252ZXJzYXRpb25gLGhtPWBUcmlnZ2VyX21lc3NhZ2Vfc2VudGAsZ209YFRyaWdnZXJfbWVzc2FnZV92aWV3ZWRgLF9tPWBUcmlnZ2VyX3Zpc2l0b3JfcmVhY3Rpb25gLHZtPWBBdXRvX21lc3NhZ2Vfc2VudGAseW09YEF1dG9fbWVzc2FnZV92aWV3ZWRgLGJtPWBBdXRvX21lc3NhZ2VfdmlzaXRvcl9yZWFjdGlvbmAseG09YENoYXRib3Rfc2VudGAsU209YENoYXRib3Rfdmlld2VkYCxDbT1gQ2hhdGJvdF9pbnRlcmFjdGlvbmAsd209YENoYXRib3RfYnV0dG9uX2ludGVyYWN0aW9uYCxUbT1gQ2hhdGJvdF92aXNpdG9yX3JlYWN0aW9uYCxFbT1gQWlfY2hhdGJvdF9zZW50YCxEbT1gQWlfY2hhdGJvdF9pbnRlcmFjdGlvbmAsT209YEFpX2NoYXRib3RfdmlzaXRvcl9yZWFjdGlvbmAsa209YEFnZW50X3NlcnZlZF9jb252ZXJzYXRpb25gLEFtPWBBZ2VudF9jbG9zZWRfY29udmVyc2F0aW9uYCxqbT1gQ29udGFjdF9hY3F1aXJlZGAsTW09YEF1dGhfZm9ybV9maWxsZWRgLE5tPWBPZmZsaW5lX21lc3NhZ2Vfc2VudGAsUG09YEZlZWRiYWNrX3NlbnRgLEZtPWBGZWVkYmFja190ZXh0X3NlbnRgLEltPWBVcmxfY2FyZF9vcGVuZWRgLExtPWBDaGF0Ym94X29wZW5lZGAsUm09e2V2ZW50X2NhdGVnb3J5OmBTbWFydHN1cHBfdjNgLG5vbl9pbnRlcmFjdGlvbjohMH0sWT0oZSx0KT0+e2ZtKGUsey4uLlJtLC4uLnR9KX0sem09KGU9YGApPT5ZKGhtLHtldmVudF9sYWJlbDplfSksQm09ZT0+WShnbSx7ZXZlbnRfbGFiZWw6ZX0pLFZtPShlPWBgKT0+WShfbSx7ZXZlbnRfbGFiZWw6ZX0pLEhtPShlPWBgKT0+WSh2bSx7ZXZlbnRfbGFiZWw6ZX0pLFVtPWU9PlkoeW0se2V2ZW50X2xhYmVsOmV9KSxXbT0oZT1gYCk9PlkoYm0se2V2ZW50X2xhYmVsOmV9KSxHbT0oZT1gYCk9PlkoeG0se2V2ZW50X2xhYmVsOmV9KSxLbT1lPT5ZKFNtLHtldmVudF9sYWJlbDplfSkscW09KGU9YGApPT5ZKENtLHtldmVudF9sYWJlbDplfSksSm09KGU9YGApPT5ZKHdtLHtldmVudF9sYWJlbDplfSksWW09KGU9YGApPT5ZKFRtLHtldmVudF9sYWJlbDplfSksWG09KCk9PlkocG0pLFptPSgpPT5ZKG1tKSxRbT1lPT5ZKEFtLHtldmVudF9sYWJlbDplfSksJG09ZT0+WShrbSx7ZXZlbnRfbGFiZWw6ZX0pLGVoPSgpPT5ZKE1tKSx0aD0oKT0+WShObSksbmg9KGUsdCk9PntsZXQgbj17ZXZlbnRfbGFiZWw6dHx8dnNbZV18fGBgLHZhbHVlOmV9O1kodD9GbTpQbSxuKX0scmg9ZT0+WShqbSx7ZXZlbnRfbGFiZWw6ZX0pLGloPWU9PlkoSW0se2V2ZW50X2xhYmVsOmV9KSxhaD0oZT1gYCk9PlkoRW0se2V2ZW50X2xhYmVsOmV9KSxvaD0oZT1gYCk9PlkoRG0se2V2ZW50X2xhYmVsOmV9KSxzaD0oZT1gYCk9PlkoT20se2V2ZW50X2xhYmVsOmV9KSxjaD0oKT0+WShMbSksbGg9ITEsdWg9e30sZGg9KCk9PntsaD0hMX0sZmg9KCk9Pnt1aD13cChBKFJwKSl9LHBoPShlLHQpPT5saD8hMTpDcChlKS5sZW5ndGg9PT0xJiZ0PT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0PyhsaD0hMCwhMCk6ITEsbWg9KGUsdCk9PntsZXQgbj1lLnRyaWdnZXI/LmlkfHxgYDtyZXR1cm4gdC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiZlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJiF1aFtuXT8udmlzaXRvclJlc3BvbmRlZD8odWhbbl0udmlzaXRvclJlc3BvbmRlZD0hMCwhMCk6ITF9LGhoPShlLHQpPT57bGV0IG49ZS50cmlnZ2VyPy5pZHx8YGA7cmV0dXJuIHQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCYmISh0LmNvbnRlbnQucXVpY2tSZXBsaWVzfHx0LmNvbnRlbnQucXVpY2tSZXBseSkmJmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiYhdWhbbl0/LnZpc2l0b3JSZXNwb25kZWQmJm4/KHVoW25dLnZpc2l0b3JSZXNwb25kZWQ9ITAsITApOiExfSxnaD0oZSx0KT0+e2xldCBuPWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiB0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QmJmUudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmIXVoW25dPy5yZWFjdGVkPyh1aFtuXS5yZWFjdGVkPSEwLCEwKTohMX0sX2g9ZT0+e2xldCB0PWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiBlLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYhdWhbdF0/LnJlYWN0ZWQ/KHVoW3RdLnJlYWN0ZWQ9ITAsITApOiExfSx2aD0oZSx0LG49ITEpPT57aWYoZS5sZW5ndGg+MCYmIW4pe2xldCB0PWUuc2xpY2UoLTIpLmZpbHRlcihlPT5lLnRyaWdnZXIpO3JldHVybiB0P3RbdC5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZTpgYH1lbHNlIHJldHVybiB0LnRyaWdnZXI/dC50cmlnZ2VyLm5hbWU6YGB9LHloPWU9PntsZXQgdD1BKFJwKTt4aCh0LGUpLFNoKHQsZSkscGgodCxlLnN1YlR5cGUpJiZYbSgpfSxiaD1lPT57bGV0IHQ9ZSxuPUEoUnApLmZpbHRlcihlPT5lLnRyaWdnZXIpO24mJm4ubGVuZ3RoPjAmJih0PW5bbi5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZT8/ZSkscmgodCl9LHhoPShlLHQpPT57bGV0IG49dC50cmlnZ2VyPy5pZHx8YGA7dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJiF1aFtuXT8uc2VudCYmKHQudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmKEdtKHZoKGUsdCwhMCkpLHVoW25dPXtzZW50OiEwfSksdC50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5tZXNzYWdlJiYoSG0odmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSx0LnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYoYWgodmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSk7bGV0IHI9ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtyJiYoaGgocix0KT8oci50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5jaGF0Ym90JiZZbSh2aChlLHQpKSxyLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLm1lc3NhZ2UmJldtKHZoKGUsdCkpLHIudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuYWkmJnNoKHZoKGUsdCkpKTpnaChyLHQpP3FtKHZoKGUsdCkpOl9oKHQpJiZvaCh2aChlLHQpKSl9LFNoPShlLHQpPT57dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5UcmlnZ2VyJiYoem0odD8udHJpZ2dlcj8ubmFtZSksdWhbdC50cmlnZ2VyPy5pZHx8YGBdPXtzZW50OiEwfSk7bGV0IG49ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtuJiZtaChuLHQpJiZWbSh2aChlLHQpKX0sQ2g9KCk9PntsZXQgZT1BKFBwKS5maWx0ZXIoZT0+ZS50cmlnZ2VyKSx0PWVbZS5sZW5ndGgtMV07dCYmdC50cmlnZ2VyJiYodC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJnQuY29udGVudC5xdWlja1JlcGxpZXM/S20odC50cmlnZ2VyLm5hbWUpOnQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90P1VtKHQudHJpZ2dlci5uYW1lKTp0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJkJtKHQudHJpZ2dlci5uYW1lKSl9LHdoPWU9PntlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJnRoKCl9O3oub24oYG1lc3NhZ2VSZWNlaXZlZGAseWgpLHoub24oYGFnZW50Sm9pbmVkYCxlPT57JG0oZS5mdWxsbmFtZSl9KSx6Lm9uKGBjaGF0UmF0ZWRgLGU9PntuaChlLnZhbHVlLGUudGV4dCl9KSx6Lm9uKGBjaGF0Q2xvc2VkYCwoKT0+e2RoKCl9KSx6Lm9uKGBjaGF0VmlzaXRvckNsb3NlZGAsKCk9PntkaCgpfSksei5vbihgY29udGFjdEFjcXVpcmVkYCwoe2FjcXVpcmVkQnk6ZX0pPT57YmgoZSl9KSxYbC5wdXNoKGZoKTt2YXIgVGg9e0Fycm93RG93bjpgQXJyb3dEb3duYCxBcnJvd1VwOmBBcnJvd1VwYCxFbnRlcjpgRW50ZXJgLEVzY2FwZTpgRXNjYXBlYCxUYWI6YFRhYmB9LEVoPTJlMyxEaD0yZTMsT2g9ZT0+ZS5maWx0ZXIoZT0+IWUuaXNIaWRkZW4pLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbHVlLGUpLHt9KSxraD1lPT5lLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbGlkYXRvcnMsZSkse30pLEFoPShlLHQsbik9PntlLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LGpoPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIGluIGUpbltyXT10O3JldHVybiBufSxNaD0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNiksTmg9ZT0+e2lmKCFlKXJldHVybiExO2xldCB0PWUuc3BsaXQoYEBgKTtpZih0Lmxlbmd0aCE9PTIpcmV0dXJuITE7bGV0IG49dFswXSxyPXRbMV07cmV0dXJuIG4ubGVuZ3RoPjY0fHxyLmxlbmd0aD4yNTV8fHIuc3BsaXQoYC5gKS5zb21lKGU9PmUubGVuZ3RoPjYzKT8hMTp5Zi50ZXN0KGUpfSxQaD1udWxsLEZoPWU9PntsZXQgdD1lLmluaXRpYWxWYWx1ZXN8fHt9LHt2YWxpZGF0b3JzOm4sb25DaGFuZ2U6cixvblN1Ym1pdDppfT1lLGE9KCk9Pih7Li4udH0pLG89amgodCxQaCkscz1PKGEoKSksYz1PKG8pLGw9TyhqaCh0LCExKSksdT1PKCExKSxkPWsoYyxlPT5PYmplY3QudmFsdWVzKGUpLmV2ZXJ5KGU9PmU9PT1QaCkpLGY9KCk9PntPYmplY3QuZW50cmllcyhBKHMpKS5mb3JFYWNoKChbZSx0XSk9PntlZShlLHQpfSl9LHA9ZT0+e2xldCB0PWUudGFyZ2V0O3QmJl8odC5uYW1lfHx0LmlkLHQudmFsdWUpfSxtPWFzeW5jIGU9PntpZihlJiZlLnByZXZlbnREZWZhdWx0JiZlLnByZXZlbnREZWZhdWx0KCksdS5zZXQoITApLGYoKSwhQShkKSl7dS5zZXQoITEpO3JldHVybn1jLnNldChvKSxhd2FpdCBpKEEocykpLHUuc2V0KCExKX0saD0oZSx7c2hvdWxkVmFsaWRhdGU6dD0hMX09e30pPT57cy51cGRhdGUodD0+KHsuLi50LC4uLmV9KSksdCYmZigpfSxnPShlLHQpPT57XyhlLHQpfSxfPShlLHQpPT57dihlLHQpLGVlKGUsdCksciYmcihlLHQpfSx2PShlLHQpPT57QWgocyxlLHQpfSx5PShlLHQpPT57QWgobCxlLHQpfSxlZT0oZSx0KT0+e3koZSx0KTtsZXQgcj1uW2VdO2lmKHIpZm9yKGxldCBuIG9mIHIpe2xldHt0eXBlOnIsaXNWYWxpZDppfT1uKHQpO2lmKEFoKGMsZSxpP1BoOnIpLCFpKXJldHVybn19O3JldHVybntmb3JtOnMsZXJyb3JzOmMsaXNWYWxpZDpkLGlzU3VibWl0dGluZzp1LGhhbmRsZUNoYW5nZTpwLGhhbmRsZVN1Ym1pdDptLHNldEZpZWxkVmFsdWU6ZyxzZXRWYWx1ZXM6aH19LEloPWZ1bmN0aW9uKGUpe3JldHVybiBlLlRleHQ9YHRleHRgLGUuQ2hlY2tib3g9YGNoZWNrYm94YCxlLlNlbGVjdD1gc2VsZWN0YCxlfSh7fSksTGg9KCk9PmU9PntsZXQgdD0hMDtyZXR1cm4gZT8/KHQ9ITEpLEx1KGUpJiYodD1lLnRyaW0oKS5sZW5ndGg+MCkse3R5cGU6YHJlcXVpcmVkYCxpc1ZhbGlkOnR9fSxSaD0oKT0+ZT0+KHt0eXBlOmBjaGVja2VkYCxpc1ZhbGlkOkx1KGUpP2U9PT1gdHJ1ZWA6ZT09PSEwfSksemg9KCk9PmU9Pih7dHlwZTpgZW1haWxgLGlzVmFsaWQ6TmgoU3RyaW5nKGUpKX0pLEJoPSgpPT5lPT4oe3R5cGU6YHBob25lYCxpc1ZhbGlkOi9eWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1zLi8wLTldKiQvLnRlc3QoU3RyaW5nKGUpKX0pLFZoPU8odm9pZCAwKSxIaD1lPT57bGV0e2VtYWlsQ29udHJvbDp0fT1WLmdldE9wdGlvbnMoKSxuPSEhZT8uZW1haWw7cmV0dXJuIHQmJiFufSxVaD1lPT57bGV0e25hbWVDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5uYW1lO3JldHVybiB0JiYhbn0sV2g9ZT0+e2xldHtudW1iZXJDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5waG9uZTtyZXR1cm4hIXQmJiFufSxHaD0oKT0+e2xldHtncm91cFNlbGVjdEVuYWJsZWQ6ZX09Vi5nZXRPcHRpb25zKCksdD1BKGFsKTtyZXR1cm4hIWUmJnQubGVuZ3RoPjB9LEtoPSgpPT57bGV0e3ByaXZhY3lOb3RpY2VFbmFibGVkOmUscHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1jZygpO3JldHVybiEhZSYmdCYmIW59LHFoPWU9PntsZXR7cHJpdmFjeU5vdGljZUVuYWJsZWQ6dH09Vi5nZXRPcHRpb25zKCksbj0hIWU/LnZhcmlhYmxlcz8ucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ7cmV0dXJuISF0JiYhbn0sSmg9KCk9Pih7dHlwZTpJaC5UZXh0LHN1YlR5cGU6YGVtYWlsYCxuYW1lOmBlbWFpbGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmVtYWlsYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0ueW91ckVtYWlsYCx2YWx1ZTpgYCx2YWxpZGF0b3JzOltMaCgpLHpoKCldLG1heExlbmd0aDoyNTV9KSxZaD0oKT0+KHt0eXBlOkloLlRleHQsc3ViVHlwZTpgdGV4dGAsbmFtZTpgbmFtZWAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLm5hbWVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyTmFtZWAsdmFsdWU6YGAsdmFsaWRhdG9yczpbTGgoKV0sbWF4TGVuZ3RoOjI1NX0pLFhoPSgpPT4oe3R5cGU6SWguVGV4dCxzdWJUeXBlOmB0ZWxgLG5hbWU6YHBob25lYCxsYWJlbDpgYXV0aEZvcm0ubGFiZWwucGhvbmVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyUGhvbmVgLHZhbHVlOmBgLHZhbGlkYXRvcnM6W0xoKCksQmgoKV0sbWF4TGVuZ3RoOjMyfSksWmg9ZT0+e2xldCB0PUEoYWwpO3JldHVybnt0eXBlOkloLlNlbGVjdCxuYW1lOmBncm91cGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmdyb3VwYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0uZ3JvdXBgLHZhbHVlOmU/Lmdyb3VwPz9gYCx2YWxpZGF0b3JzOltMaCgpXSxvcHRpb25zOnQubWFwKGU9Pih7dGV4dDplLm5hbWUsdmFsdWU6ZS5rZXl9KSl9fSxRaD0oKT0+KHt0eXBlOkloLkNoZWNrYm94LG5hbWU6YHBlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50YCxsYWJlbDpgYXV0aEZvcm0uYWNjZXB0VGVybXNgLHZhbHVlOiExLHZhbGlkYXRvcnM6W1JoKCldfSksJGg9KCk9Pih7dHlwZTpJaC5DaGVja2JveCxuYW1lOmBwZXJzb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudGAsbGFiZWw6YHRvcEJhci5nZHByVGl0bGVgLHZhbHVlOiExLHZhbGlkYXRvcnM6W10saXNIaWRkZW46ITB9KSxlZz1lPT4oe3Nob3dFbWFpbDpIaChlKSxzaG93TmFtZTpVaChlKSxzaG93UGhvbmU6V2goZSksc2hvd0dyb3VwczpHaCgpLHNob3dDb25zZW50OktoKCl9KSx0Zz1lPT4oe3Nob3dFbWFpbDohIWUuZW1haWxDb250cm9sLHNob3dOYW1lOiEhZS5uYW1lQ29udHJvbCxzaG93UGhvbmU6ISFlLm51bWJlckNvbnRyb2wsc2hvd0dyb3VwczohIWUuZ3JvdXBTZWxlY3RFbmFibGVkLHNob3dDb25zZW50OiEhZS5wcml2YWN5Tm90aWNlRW5hYmxlZCYmZS5wcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZH0pLG5nPWU9Pk9iamVjdC52YWx1ZXMoZWcoZSkpLnNvbWUoZT0+ZSkscmc9KGUsdCk9PntsZXQgbj1bXSx7c2hvd0VtYWlsOnIsc2hvd05hbWU6aSxzaG93UGhvbmU6YSxzaG93R3JvdXBzOm8sc2hvd0NvbnNlbnQ6c309dD90Zyh0KTplZyhlKTtyZXR1cm4gaSYmbi5wdXNoKFloKCkpLHImJm4ucHVzaChKaCgpKSxhJiZuLnB1c2goWGgoKSksbyYmbi5wdXNoKFpoKGUpKSxzP24ucHVzaChRaCgpKTpuLmxlbmd0aD4wJiYodD90Py5wcml2YWN5Tm90aWNlRW5hYmxlZDpxaChlKSkmJm4ucHVzaCgkaCgpKSxufSxpZz0oKT0+e2xldCBlPXpvKFUuQXV0aEZvcm0pO2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHtyZXR1cm4gbnVsbH19LGFnPShlLHQpPT57bGV0IG49aWcoKSxyPXtbZV06dH0saT1uP3suLi5uLC4uLnJ9OnI7Qm8oe25hbWU6VS5BdXRoRm9ybSx2YWx1ZTpKU09OLnN0cmluZ2lmeShpKX0pfSxvZz0oKT0+e0xvKFUuQXV0aEZvcm0pfSxzZz0oKT0+ISFBKE11KT8udmFyaWFibGVzPy5hdXRoZW50aWNhdGVkLGNnPSgpPT5BKE11KT8uZ2RwckFwcHJvdmVkfHwhMSxsZz0oKT0+e2xldHtpc1ByZXZpZXdNb2RlOmV9PVYuZ2V0T3B0aW9ucygpO2lmKGV8fEEocGQpfHxzZygpfHwhbmcoQShNdSkpKXJldHVybiExO2xldHtyZXF1aXJlTG9naW46dH09Vi5nZXRPcHRpb25zKCksbj1BKCR1KT09PUsuQWNjb3VudFN0YXR1cy5PZmZsaW5lLHI9QShVdSkubGVuZ3RoPjA7cmV0dXJuISF0fHxufHwhbiYmIXJ9LHVnPWFzeW5jIGU9PntsZXR7cHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1BKE11KSxyPW4/Lm5hbWU/P2UubmFtZSxpPW4/LmVtYWlsPz9lLmVtYWlsLGE9bj8ucGhvbmU/P2UucGhvbmUsbz1lLmdyb3VwPz9uPy5ncm91cCxzPWUucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQsYz17Li4uciYme25hbWU6cn0sLi4uaSYme2VtYWlsOml9LC4uLmEmJntwaG9uZTphfSwuLi5vJiZ7Z3JvdXA6b30sLi4ucyYmdCYme3BlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50OnN9fTthd2FpdCBxLmdldENsaWVudCgpLmF1dGhlbnRpY2F0ZShjKSxlaCgpLGF3YWl0IHVfKCksVmMoKX0sZGc9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGVtb2ppLW1hcnQvZGF0YWAsZmc9UmVnRXhwKGA6KFthLXpBLVowLTlfLV0rKTpgLGBnYCkscGc9bnVsbCxtZz1udWxsLGhnPW51bGwsZ2c9TyhbXSksX2c9YXN5bmMoKT0+cGd8fGhnfHwoaGc9ZmV0Y2goZGcpLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+KHBnPWUsZSkpLmNhdGNoKGU9Pnt0aHJvdyB2byhgRmFpbGVkIHRvIGxvYWQgZW1vamkgZGF0YWAsZSksaGc9bnVsbCxlfSksaGcpLHZnPWU9Pk9iamVjdC52YWx1ZXMoZS5lbW9qaXMpLm1hcChlPT4oe2lkOmUuaWQsbmFtZTplLm5hbWUsbmF0aXZlOmUuc2tpbnNbMF0/Lm5hdGl2ZT8/YGAsa2V5d29yZHM6ZS5rZXl3b3Jkcz8/W119KSkseWc9e3N1YnNjcmliZTpnZy5zdWJzY3JpYmUsYXN5bmMgbG9hZFJhd0RhdGEoKXtyZXR1cm4gX2coKX0sYXN5bmMgbG9hZERhdGEoKXtyZXR1cm4gbWd8fChtZz12Zyhhd2FpdCBfZygpKSxnZy5zZXQobWcpLG1nKX0sZ2V0QnlJZChlKXtsZXQgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG1nPy5maW5kKGU9PmUuaWQudG9Mb3dlckNhc2UoKT09PXQpfSxpc0xvYWRlZCgpe3JldHVybiBtZyE9PW51bGx9fSxiZz1lPT55Zy5pc0xvYWRlZCgpP2UucmVwbGFjZShmZywoZSx0KT0+e2xldCBuPXlnLmdldEJ5SWQodCk7cmV0dXJuIG4/bi5uYXRpdmU6ZX0pOmUseGc9MjAsU2c9eyI6KSI6YPCfmYJgLCI6LSkiOmDwn5mCYCwiOkQiOmDwn5iAYCwiOi1EIjpg8J+YgGAsIjspIjpg8J+YiWAsIjstKSI6YPCfmIlgLCI8MyI6YOKdpO+4j2AsIjooIjpg8J+YnmAsIjotKCI6YPCfmJ5gLCI6UCI6YPCfmJtgLCI6LVAiOmDwn5ibYCwiOi1vIjpg8J+YrmAsIjpPIjpg8J+YrmAsIjovIjpg8J+YlWAsIjotLyI6YPCfmJVgfSxDZz1lPT57bGV0IHQ9YCgke2U/YCR8YDpgYH0gKWA7cmV0dXJuIG5ldyBSZWdFeHAoT2JqZWN0LmtleXMoU2cpLm1hcChlPT5gJHtlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLGBcXCQmYCl9JHt0fWApLmpvaW4oYHxgKSxgZ2lgKX0sd2c9KGUsdD0hMSk9PntsZXQgbj1DZyh0KTtyZXR1cm4gZS5yZXBsYWNlKG4sZT0+e2xldCB0PU9iamVjdC5rZXlzKFNnKS5maW5kKHQ9PmUudG9VcHBlckNhc2UoKS5pbmNsdWRlcyh0KSk7aWYoIXQpcmV0dXJuIGU7bGV0IG49ZS5lbmRzV2l0aChgIGApP2AgYDpgYDtyZXR1cm5gJHtTZ1t0XX0ke259YH0pfSxUZz0oZSx0LG49eGcpPT57aWYoIWV8fGUubGVuZ3RoPDIpcmV0dXJuW107bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLGk9W10sYT1bXSxvPVtdLHM9W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWUuaWQudG9Mb3dlckNhc2UoKSxuPWUubmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQuc3RhcnRzV2l0aChyKSl7aS5wdXNoKGUpO2NvbnRpbnVlfWlmKHQuaW5jbHVkZXMocikpe2EucHVzaChlKTtjb250aW51ZX1pZihuLmluY2x1ZGVzKHIpKXtvLnB1c2goZSk7Y29udGludWV9ZS5rZXl3b3Jkcy5zb21lKGU9PmUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkmJnMucHVzaChlKX1yZXR1cm5bLi4uaSwuLi5hLC4uLm8sLi4uc10uc2xpY2UoMCxuKX0sRWc9KGUsdCk9PntsZXQgbj1lLnNsaWNlKDAsdCkscj1uLmxhc3RJbmRleE9mKGA6YCk7aWYocj09PS0xKXJldHVybiBudWxsO2xldCBpPW4uc2xpY2UocisxKTtyZXR1cm4gUmVnRXhwKGBeW2EtekEtWjAtOV8tXSokYCkudGVzdChpKSYmaS5sZW5ndGg+PTI/aTpudWxsfSxEZz0oZSx0LG4pPT57bGV0IHI9ZS5zbGljZSgwLHQpLGk9ZS5zbGljZSh0KSxhPXIubGFzdEluZGV4T2YoYDpgKTtpZihhPT09LTEpcmV0dXJue25ld1RleHQ6ZSxuZXdDdXJzb3JQb3NpdGlvbjp0fTtsZXQgbz1lLnNsaWNlKDAsYSkscz1pLmxlbmd0aD09PTA/bitgIGA6bjtyZXR1cm57bmV3VGV4dDpvK3MraSxuZXdDdXJzb3JQb3NpdGlvbjphK3MubGVuZ3RofX0sT2c9KGUsdD0zMDApPT57bGV0IG47cmV0dXJuKC4uLnIpPT57Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoKT0+ZSguLi5yKSx0KX19LGtnPTNlMyxBZz1bYHNtYXJ0c3VwcC5kZXZgLGBzbWFydHN1cHBjaGF0LmxvY2BdLGpnPWZ1bmN0aW9uKGUpe3JldHVybiBlLkRlZmF1bHQ9YGJsYWNrYmVycnkyLm1wM2AsZX0oe30pLE1nPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbm5lY3Rpbmc9YGNvbm5lY3RpbmdgLGUuQ29ubmVjdGVkPWBjb25uZWN0ZWRgLGUuRGlzY29ubmVjdGVkPWBkaXNjb25uZWN0ZWRgLGV9KHt9KSxOZz1mdW5jdGlvbihlKXtyZXR1cm4gZS5JbWFnZT1gaW1hZ2VgLGUuVmlkZW89YHZpZGVvYCxlfSh7fSksUGc9TyghMSksRmc9TyghMSksSWc9TyghMSk7QigpLmFkZEV2ZW50TGlzdGVuZXIoYG9mZmxpbmVgLCgpPT5QZy5zZXQoITApKSxCKCkuYWRkRXZlbnRMaXN0ZW5lcihgb25saW5lYCwoKT0+UGcuc2V0KCExKSk7dmFyIExnPWsoW2RsLFBnLElnXSwoW2UsdCxuXSk9Pm4/TWcuQ29ubmVjdGVkOiFlfHx0P01nLkRpc2Nvbm5lY3RlZDpNZy5Db25uZWN0ZWQsTWcuQ29ubmVjdGluZyksUmcsemc9T2coZT0+e2UmJiFSZyYmKFJnPV9zKEEoVykoYGVycm9yLm5vSW50ZXJuZXRgKSwwKSksIWUmJlJnJiYoUmcoKSxSZz12b2lkIDApfSxrZyk7TGcuc3Vic2NyaWJlKGU9PntlPT09TWcuRGlzY29ubmVjdGVkJiYoRmcuc2V0KCEwKSx6ZyghMCkpLGU9PT1NZy5Db25uZWN0ZWQmJihGZy5zZXQoITEpLHpnKCExKSl9KTt2YXIgQmc9KGUsdCxuKT0+ZT09PU1nLkRpc2Nvbm5lY3RlZHx8IXR8fG4sVmc9KCk9PkJnKEEoTGcpLEEoSHApLEEoWHUpLmRpc2FibGVBdHRhY2htZW50cyksSGc9TyghMSksVWc9ZT0+e2lmKEEoSGcpKXtIKGBUaGVyZSBpcyBhbHJlYWR5IGZpbGUgdXBsb2FkIGluIHByb2dyZXNzYCk7cmV0dXJufWlmKGUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9V2coZSk7dC5sZW5ndGg+MCYmWWwuYWRkKHQpfSxXZz1lPT5lLmxlbmd0aD41PyhncyhgJHtBKFcpKGBmaWxlVXBsb2FkLnRvb01hbnlGaWxlc2ApfSA1YCksW10pOmUuZmlsdGVyKGU9PkdnKGUpKSxHZz1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dCxhY2NlcHRlZEZpbGVUeXBlczpuLG1heEZpbGVTaXplOnJ9PUEoYmwpO2lmKCFlKXJldHVybiExO2xldCBpPXQuaW5jbHVkZXMoQ2QoZS5uYW1lKSksYT1uLnNvbWUodD0+dD09PWUudHlwZSk7aWYoVmcoKSlyZXR1cm4gSChgRmlsZSB1cGxvYWQgaXMgZGlzYWJsZWRgKSwhMTtpZighQShIcCkpcmV0dXJuIGdzKEEoVykoYHdhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0YCkpLCExO2lmKGUuc2l6ZT5yKXtsZXQgZT13ZChyKTtyZXR1cm4gZ3MoYCR7QShXKShgZmlsZVVwbG9hZC5maWxlVG9vQmlnYCl9ICR7ZS5zaXplfSAke2UudW5pdH1gKSwhMX1yZXR1cm4gaXx8YT8hMDooZ3MoQShXKShgZmlsZVVwbG9hZC5iYWRGaWxlVHlwZWApKSwhMSl9LEtnPSgpPT5ZbC5jb3VudCgpPT09MD9bXTooWWwuc2V0VXBsb2FkaW5nU3RhdHVzKCksRGQoQShZbCksZT0+WWwuc2V0RmlsZVVwbG9hZGVkKGUubmFtZSkpKSxxZz0xMCxKZz0xZTQsWWc9M2U0LFhnPTIwLFpnPWU9PntpZihlLmxlbmd0aD4wJiZlLmxlbmd0aCVxZz09PTApe2xldCB0PWUuc2xpY2UoLXFnKSxuPW5ldyBEYXRlKGVbZS5sZW5ndGgtMV0uY3JlYXRlZEF0KS5nZXRUaW1lKCk7aWYobmV3IERhdGUoKS5nZXRUaW1lKCktbj5ZZ3x8IXQuZXZlcnkoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KSlyZXR1cm4hMTtpZihuLW5ldyBEYXRlKHRbMF0uY3JlYXRlZEF0KS5nZXRUaW1lKCk8SmcpcmV0dXJuITB9cmV0dXJuITF9LFFnPWU9PntsZXQgdD1qZihlKTtyZXR1cm4gdD90Lmxlbmd0aD5YZzohMX0sJGc9TygpLGVfPU8oITEpLHRfPU8oKSxuXz0yMDAscl89TyghMSksaV89ayhbJGddLChbZV0pPT5lPT09dm9pZCAwP3pvKFUuTWVzc2FnZSk/P2BgOmUpLGFfPWsoW2lfXSwoW2VdKT0+ZS50cmltKCkubGVuZ3RoPT09MCksb189ZT0+eyRnLnNldChiZyh3ZyhlKSkpfSxzXz0oZSx0KT0+e2xldCBuPUEoaV8pPz9gYCxyPWAke24uc2xpY2UoMCx0KX0ke2V9JHtuLnNsaWNlKHQpfWA7JGcuc2V0KHIpfSxjXz0oKT0+e0EoZV8pfHwocS5nZXRDbGllbnQoKS5jaGF0VHlwaW5nKCEwKSxlXy5zZXQoITApKX0sbF89KCk9PntBKGVfKSYmKHEuZ2V0Q2xpZW50KCkuY2hhdFR5cGluZyghMSksZV8uc2V0KCExKSl9LHVfPWFzeW5jKGU9W10pPT57aWYoQShhXykmJmUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9Ymcod2coQShpXyksITApKS50cmltKCk7YXdhaXQgSi5zZW5kTWVzc2FnZSh0LGUpLG9fKGBgKSxsXygpLHJfLnNldCghMCksZ2QoKX0sZF89T2coYXN5bmMoKT0+e2xldCBlPVlsLmNvdW50KCk+MDtpZihBKGFfKSYmIWUpcmV0dXJuO2lmKCFBKFgpJiZsZygpJiZVXygpLGZfKCkmJiFlKXtfcyhBKFcpKGB3YXJuaW5nQmFyLnNhbWVNZXNzYWdlVHdpY2VgKSk7cmV0dXJufWlmKFpnKEEoUnApKSl7X3MoQShXKShgd2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbmApKTtyZXR1cm59aWYoQShIZykpe2pvKEEoVykoYGNoYXQuZmlsZVVwbG9hZC5lcnJvci5zdGlsbFVwbG9hZGluZ2ApKTtyZXR1cm59aWYoQShVZikpe19zKEEoVykoYGNhcmQuc2VuZGluZ0luUHJvZ3Jlc3NgKSk7cmV0dXJufWlmKFFnKEEoaV8pKSl7X3MoQShXKShgY2FyZC5saW5rc0xpbWl0UmVhY2hlZGApKTtyZXR1cm59aWYobGcoKSl7QmMoSGMuQXV0aEZvcm0pO3JldHVybn1sZXQgdD1bXTtlJiYoSGcuc2V0KCEwKSx0PWF3YWl0IEtnKCksWWwuY2xlYXIoKSxIZy5zZXQoITEpKSxhd2FpdCB1Xyh0KX0sbl8pLGZfPSgpPT57bGV0IGU9QShHcCksdD1BKEtwKSxuPUEoaV8pLnRyaW0oKTtyZXR1cm4gZSYmbj09PWUuY29udGVudC50ZXh0fHx0JiZuPT09dH0scF89ZT0+e2xldCB0PSgpPT57X2QoKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpKSl9LG1fPWU9PntsZXQgdD0oKT0+e0EoWCkmJldfKCEwKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCx0KSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAsdCkpKX0saF89KCk9PntsZXQgZT1CKCkuX3NtYXJ0c3VwcHx8e307ZS5hcHBWZXJzaW9uPWAwLjAuMWAsZS5jb21taXRIYXNoPWBlMDdjMjA4YTM4ZTZmNTA4NGM4ZWI0NjBiOTU4YTQyZjc3OGE1OTY1YCxlLmNvbW1pdEluZm89YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjUgLSBNZXJnZSBwdWxsIHJlcXVlc3QgIzQ1NyBmcm9tIHNtYXJ0c3VwcC9kZXZlbG9wIC0gMjAyNi0wNy0yNyAwOToxOTozMiArMDIwMGAsQigpLl9zbWFydHN1cHA9ZX0sZ189KGU9amcuRGVmYXVsdCk9PntsZXR7d2lkZ2V0VjNVcmw6dH09Vi5nZXRPcHRpb25zKCksbj1uZXcgQXVkaW8oYCR7dH0vYXNzZXRzL3NvdW5kcy8ke2V9YCk7cmV0dXJuIG4uY3Jvc3NPcmlnaW49YGFub255bW91c2Asbi5sb2FkKCksbn0sX189ZT0+ZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiYhW0cuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50Sm9pbixHLk1lc3NhZ2VDb250ZW50VHlwZS5BZ2VudExlYXZlLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50QXNzaWduLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50VW5hc3NpZ25dLmluY2x1ZGVzKGUuY29udGVudC50eXBlKSx2Xz1lPT57cS5pc0luaXRpYWxpemVkKCkmJnEuZ2V0Q2xpZW50KCkubm90aWZ5KGUpfSx5Xz0oKT0+e1YuZ2V0T3B0aW9ucygpLmlzUHJldmlld01vZGV8fHZfKEsuV2Vic29ja2V0VmlzaXRvckNsaWVudC5FdmVudE5hbWUuV2lkZ2V0T3Blbil9LGJfPSgpPT52XyhLLldlYnNvY2tldFZpc2l0b3JDbGllbnQuRXZlbnROYW1lLldpZGdldFNob3cpLHhfPSgpPT5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gdmlzaWJsZWAsU189KCk9PntpZihBKHNzKSl7VF8uc2V0KCEwKTtsZXQgZT1CKCk7ZS5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLGUubG9jYXRpb24uaHJlZil9fSxDXz1PKCExKSx3Xz1PKCExKSxUXz1PKCExKSxFXz1lPT4hIUFnLmZpbmQodD0+ZS5pbmNsdWRlcyh0KSksRF89TyghMCk7Vi5hd2FpdE9wdGlvbnMoKS50aGVuKGU9PntsZXQgdD16byhVLlNvdW5kc0VuYWJsZWQpO3Q/RF8uc2V0KHQ9PT1gdHJ1ZWApOnR5cGVvZiBlLmVuYWJsZVNvdW5kcz09YGJvb2xlYW5gJiZEXy5zZXQoZS5lbmFibGVTb3VuZHMpLHdfLnNldChFXyhlLmJvb3RzdHJhcFVybCkpfSk7dmFyIE9fPWU9PntEXy5zZXQoZSksQm8oe25hbWU6VS5Tb3VuZHNFbmFibGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLGUmJmJwKCl9LGtfPU8oeF8oKSksQV89T2coKCk9PmtfLnNldCh4XygpKSw1MDApO0IoKS5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCwoKT0+e0FfKCl9KTt2YXIgal89TygwKSxNXz0oKT0+al8udXBkYXRlKGU9PmUrMSksTl89TyghMCksUF89KGUsdCk9Pih2byhgd2lkZ2V0IHZpc2libGU6ICR7U3RyaW5nKHQpfSA9PiByZWFzb246ICR7ZX1gKSx0JiZ0IT09QShSXykmJmJfKCksdCksRl89TygpLElfPSgpPT5GXy5zZXQoITApLExfPSgpPT5GXy5zZXQoITEpLFJfPWsoW011LHNzLEZfLGVkLG9kLGsoWyR1LFJwLGFfLG9kXSwoW2UsdCxuLHJdKT0+e2xldHtoaWRlT2ZmbGluZUNoYXQ6aSxpc1ByZXZpZXdNb2RlOmF9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJiEhaSYmU3AodCkubGVuZ3RoPT09MCYmbiYmIXImJiFhfSldLChbZSx0LG4scixpLGFdKT0+e2xldHtoaWRlTW9iaWxlV2lkZ2V0Om8saGlkZVdpZGdldDpzfT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZT8uYmFubmVkQXQ/UF8oYHZpc2l0b3IgaXMgYmFubmVkYCwhMSk6dCYmbz9QXyhgb3B0aW9uICdoaWRlTW9iaWxlV2lkZ2V0JyBpcyB0cnVlYCwhMSk6dHlwZW9mIG49PWBib29sZWFuYD9QXyhgc2V0IGJ5IEFQSSBjb21tYW5kYCxuKTpyJiYhaT9QXyhgY2hhdCBzdGF0dXMgaXMgbm90IHBlbmRpbmdgLCEwKTphP1BfKGBvcHRpb24gJ2hpZGVPZmZsaW5lQ2hhdCcgaXMgdHJ1ZWAsITEpOlBfKGBvcHRpb24gJ2hpZGVXaWRnZXQnIGlzICR7U3RyaW5nKHMpfWAsIXMpfSksel89ayhbc3NdLChbZV0pPT57bGV0e29wZW5PblRyaWdnZXI6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIHQmJiFlfSksQl89W10sVl89ZT0+KEJfLnB1c2goZSksKCk9PntsZXQgdD1CXy5pbmRleE9mKGUpO3QhPT0tMSYmQl8uc3BsaWNlKHQsMSl9KSxIXz0oKT0+Ql8ubGVuZ3RoPT09MD8hMTooQl8ucG9wKCkoKSwhMCksWD1ycyhVLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQsITEsZT0+IUEoc3MpJiZlPT09YHRydWVgKSxVXz0oZT0hMSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpO3Q/LmRpc2FibGVPcGVuTWVzc2VuZ2VyJiYhZXx8KGNoKCksU18oKSxYLnNldCghMCksZXYoKSxDaCgpLHlfKCkpfSxXXz1lPT57aWYoQShzcykmJkEoVF8pJiYhZSlyZXR1cm4gVF8uc2V0KCExKSxCKCkuaGlzdG9yeS5iYWNrKCk7ei5lbWl0KGBtZXNzZW5nZXJDbG9zZWAsITApLFguc2V0KCExKX0sR189ZT0+e2lmKCFlKXJldHVybjtsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpLG49ZT0+e2lmKGUua2V5PT09VGguRXNjYXBlKXtpZihIXygpfHx0Py5kaXNhYmxlQ2xvc2VCdXR0b24pcmV0dXJuO1dfKCl9fSxyPWUub3duZXJEb2N1bWVudDtyZXR1cm4gci5hZGRFdmVudExpc3RlbmVyKGBrZXlkb3duYCxuLCEwKSx7ZGVzdHJveSgpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsbiwhMCl9fX0sS189ayhbQ18sUl8sWF0sKFtlLHQsbl0pPT5lJiZ0JiZuKTtmdW5jdGlvbiBxXygpe2xldCBlPU8oITEpLHtzdWJzY3JpYmU6dH09ZSxuPW51bGw7cmV0dXJue3N1YnNjcmliZTp0LGhhbmRsZURyYWdPdmVyOih0LHI9ITApPT57ciYmdC5wcmV2ZW50RGVmYXVsdCgpLEEoZSl8fGUuc2V0KCEwKSxuJiZjbGVhclRpbWVvdXQobiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2Uuc2V0KCExKX0sMjAwKX0saGFuZGxlRHJvcDp0PT57dC5wcmV2ZW50RGVmYXVsdCgpLG4mJmNsZWFyVGltZW91dChuKSxlLnNldCghMSk7bGV0IHI9dC5kYXRhVHJhbnNmZXI/LmZpbGVzP1suLi50LmRhdGFUcmFuc2Zlci5maWxlc106W107cmV0dXJuIHIubGVuZ3RoPT09MCYmX3MoYERyb3BwZWQgaXRlbShzKSBhcmUgbm90IHByb2Nlc3NhYmxlIGZpbGVzYCkse2Ryb3BwZWRGaWxlczpyfX19fXZhciBKXz1xXygpLFlfPWsoW0NfLFJfLFhdLChbZSx0LG5dKT0+ZSYmdCYmIW4pLFhfPU8oITEpLFpfPU8oITEpLFFfPSgpPT57WF8uc2V0KCEwKSxaXy5zZXQoITEpfSwkXz0oKT0+e1pfLnNldCghMCksWF8uc2V0KCExKX0sZXY9KGU9ITEpPT57Wl8uc2V0KCExKSxlJiZCbyh7bmFtZTpVLlBvcHVwQ2xvc2VkQXQsdmFsdWU6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSl9LHR2PWsoW3NzXSwoW2VdKT0+e2xldHttb2JpbGVQb3B1cHNFbmFibGVkOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPyEhdDohMH0pLG52PWsoW05wXSwoW2VdKT0+e2xldCB0PXpvKFUuUG9wdXBDbG9zZWRBdCk/P251bGw7cmV0dXJuIXR8fCFlPyEwOm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCk+bmV3IERhdGUodCkuZ2V0VGltZSgpfSkscnY9ayhbQ18sUl8sWF8sWCx0dl0sKFtlLHQsbixyLGldKT0+ZSYmdCYmbiYmIXImJmkpLGl2PWsoW0NfLFJfLFpfLFgsTnAsbnYsdHYsV2ZdLChbZSx0LG4scixpLGEsbyxzXSk9PmUmJnQmJm4mJmkmJmEmJiFyJiZvJiYhcyksYXY9e3doaXRlOmAjZmZmZmZmYCxzbGF0ZTEwMDpgI2YxZjVmOWAsc2xhdGUyMDA6YCNlMmU4ZjBgLHNsYXRlMzAwOmAjY2JkNWUxYCxzbGF0ZTkwMDpgIzBmMTcyYWAsYmx1ZTcwMDpgIzFkNGVkOGAsc21hcnRzdXBwQmx1ZTpgIzEyMzNkZmB9O2Z1bmN0aW9uIFooZSx0KXtzdihlKSYmKGU9YDEwMCVgKTtsZXQgbj1jdihlKTtyZXR1cm4gZT10PT09MzYwP2U6TWF0aC5taW4odCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoZSkpKSxuJiYoZT1wYXJzZUludChTdHJpbmcoZSp0KSwxMCkvMTAwKSxNYXRoLmFicyhlLXQpPDFlLTY/MTooZT10PT09MzYwPyhlPDA/ZSV0K3Q6ZSV0KS9wYXJzZUZsb2F0KFN0cmluZyh0KSk6ZSV0L3BhcnNlRmxvYXQoU3RyaW5nKHQpKSxlKX1mdW5jdGlvbiBvdihlKXtyZXR1cm4gTWF0aC5taW4oMSxNYXRoLm1heCgwLGUpKX1mdW5jdGlvbiBzdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYC5gKSE9PS0xJiZwYXJzZUZsb2F0KGUpPT09MX1mdW5jdGlvbiBjdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYCVgKSE9PS0xfWZ1bmN0aW9uIGx2KGUpe3JldHVybiBlPXBhcnNlRmxvYXQoZSksKGlzTmFOKGUpfHxlPDB8fGU+MSkmJihlPTEpLGV9ZnVuY3Rpb24gdXYoZSl7cmV0dXJuIE51bWJlcihlKTw9MT9gJHtOdW1iZXIoZSkqMTAwfSVgOmV9ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIGUubGVuZ3RoPT09MT9gMGArZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZnYoZSx0LG4pe3JldHVybntyOlooZSwyNTUpKjI1NSxnOloodCwyNTUpKjI1NSxiOloobiwyNTUpKjI1NX19ZnVuY3Rpb24gcHYoZSx0LG4pe2U9WihlLDI1NSksdD1aKHQsMjU1KSxuPVoobiwyNTUpO2xldCByPU1hdGgubWF4KGUsdCxuKSxpPU1hdGgubWluKGUsdCxuKSxhPTAsbz0wLHM9KHIraSkvMjtpZihyPT09aSlvPTAsYT0wO2Vsc2V7bGV0IGM9ci1pO3N3aXRjaChvPXM+LjU/Yy8oMi1yLWkpOmMvKHIraSkscil7Y2FzZSBlOmE9KHQtbikvYysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvYysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL2MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOm8sbDpzfX1mdW5jdGlvbiBtdihlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmLS1uLG48MS82P2UrKHQtZSkqKDYqbik6bjwxLzI/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIGh2KGUsdCxuKXtsZXQgcixpLGE7aWYoZT1aKGUsMzYwKSx0PVoodCwxMDApLG49WihuLDEwMCksdD09PTApaT1uLGE9bixyPW47ZWxzZXtsZXQgbz1uPC41P24qKDErdCk6bit0LW4qdCxzPTIqbi1vO3I9bXYocyxvLGUrMS8zKSxpPW12KHMsbyxlKSxhPW12KHMsbyxlLTEvMyl9cmV0dXJue3I6cioyNTUsZzppKjI1NSxiOmEqMjU1fX1mdW5jdGlvbiBndihlLHQsbil7ZT1aKGUsMjU1KSx0PVoodCwyNTUpLG49WihuLDI1NSk7bGV0IHI9TWF0aC5tYXgoZSx0LG4pLGk9TWF0aC5taW4oZSx0LG4pLGE9MCxvPXIscz1yLWksYz1yPT09MD8wOnMvcjtpZihyPT09aSlhPTA7ZWxzZXtzd2l0Y2gocil7Y2FzZSBlOmE9KHQtbikvcysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvcysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL3MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOmMsdjpvfX1mdW5jdGlvbiBfdihlLHQsbil7ZT1aKGUsMzYwKSo2LHQ9Wih0LDEwMCksbj1aKG4sMTAwKTtsZXQgcj1NYXRoLmZsb29yKGUpLGk9ZS1yLGE9biooMS10KSxvPW4qKDEtaSp0KSxzPW4qKDEtKDEtaSkqdCksYz1yJTYsbD1bbixvLGEsYSxzLG5dW2NdLHU9W3MsbixuLG8sYSxhXVtjXSxkPVthLGEscyxuLG4sb11bY107cmV0dXJue3I6bCoyNTUsZzp1KjI1NSxiOmQqMjU1fX1mdW5jdGlvbiB2dihlLHQsbixyKXtsZXQgaT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSldO3JldHVybiByJiZpWzBdLnN0YXJ0c1dpdGgoaVswXS5jaGFyQXQoMSkpJiZpWzFdLnN0YXJ0c1dpdGgoaVsxXS5jaGFyQXQoMSkpJiZpWzJdLnN0YXJ0c1dpdGgoaVsyXS5jaGFyQXQoMSkpP2lbMF0uY2hhckF0KDApK2lbMV0uY2hhckF0KDApK2lbMl0uY2hhckF0KDApOmkuam9pbihgYCl9ZnVuY3Rpb24geXYoZSx0LG4scixpKXtsZXQgYT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSksZHYoU3YocikpXTtyZXR1cm4gaSYmYVswXS5zdGFydHNXaXRoKGFbMF0uY2hhckF0KDEpKSYmYVsxXS5zdGFydHNXaXRoKGFbMV0uY2hhckF0KDEpKSYmYVsyXS5zdGFydHNXaXRoKGFbMl0uY2hhckF0KDEpKSYmYVszXS5zdGFydHNXaXRoKGFbM10uY2hhckF0KDEpKT9hWzBdLmNoYXJBdCgwKSthWzFdLmNoYXJBdCgwKSthWzJdLmNoYXJBdCgwKSthWzNdLmNoYXJBdCgwKTphLmpvaW4oYGApfWZ1bmN0aW9uIGJ2KGUsdCxuLHIpe2xldCBpPWUvMTAwLGE9dC8xMDAsbz1uLzEwMCxzPXIvMTAwO3JldHVybntyOjI1NSooMS1pKSooMS1zKSxnOjI1NSooMS1hKSooMS1zKSxiOjI1NSooMS1vKSooMS1zKX19ZnVuY3Rpb24geHYoZSx0LG4pe2xldCByPTEtZS8yNTUsaT0xLXQvMjU1LGE9MS1uLzI1NSxvPU1hdGgubWluKHIsaSxhKTtyZXR1cm4gbz09PTE/KHI9MCxpPTAsYT0wKToocj0oci1vKS8oMS1vKSoxMDAsaT0oaS1vKS8oMS1vKSoxMDAsYT0oYS1vKS8oMS1vKSoxMDApLG8qPTEwMCx7YzpNYXRoLnJvdW5kKHIpLG06TWF0aC5yb3VuZChpKSx5Ok1hdGgucm91bmQoYSksazpNYXRoLnJvdW5kKG8pfX1mdW5jdGlvbiBTdihlKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGUpKjI1NSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEN2KGUpe3JldHVybiB3dihlKS8yNTV9ZnVuY3Rpb24gd3YoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIFR2KGUpe3JldHVybntyOmU+PjE2LGc6KGUmNjUyODApPj44LGI6ZSYyNTV9fXZhciBFdj17YWxpY2VibHVlOmAjZjBmOGZmYCxhbnRpcXVld2hpdGU6YCNmYWViZDdgLGFxdWE6YCMwMGZmZmZgLGFxdWFtYXJpbmU6YCM3ZmZmZDRgLGF6dXJlOmAjZjBmZmZmYCxiZWlnZTpgI2Y1ZjVkY2AsYmlzcXVlOmAjZmZlNGM0YCxibGFjazpgIzAwMDAwMGAsYmxhbmNoZWRhbG1vbmQ6YCNmZmViY2RgLGJsdWU6YCMwMDAwZmZgLGJsdWV2aW9sZXQ6YCM4YTJiZTJgLGJyb3duOmAjYTUyYTJhYCxidXJseXdvb2Q6YCNkZWI4ODdgLGNhZGV0Ymx1ZTpgIzVmOWVhMGAsY2hhcnRyZXVzZTpgIzdmZmYwMGAsY2hvY29sYXRlOmAjZDI2OTFlYCxjb3JhbDpgI2ZmN2Y1MGAsY29ybmZsb3dlcmJsdWU6YCM2NDk1ZWRgLGNvcm5zaWxrOmAjZmZmOGRjYCxjcmltc29uOmAjZGMxNDNjYCxjeWFuOmAjMDBmZmZmYCxkYXJrYmx1ZTpgIzAwMDA4YmAsZGFya2N5YW46YCMwMDhiOGJgLGRhcmtnb2xkZW5yb2Q6YCNiODg2MGJgLGRhcmtncmF5OmAjYTlhOWE5YCxkYXJrZ3JlZW46YCMwMDY0MDBgLGRhcmtncmV5OmAjYTlhOWE5YCxkYXJra2hha2k6YCNiZGI3NmJgLGRhcmttYWdlbnRhOmAjOGIwMDhiYCxkYXJrb2xpdmVncmVlbjpgIzU1NmIyZmAsZGFya29yYW5nZTpgI2ZmOGMwMGAsZGFya29yY2hpZDpgIzk5MzJjY2AsZGFya3JlZDpgIzhiMDAwMGAsZGFya3NhbG1vbjpgI2U5OTY3YWAsZGFya3NlYWdyZWVuOmAjOGZiYzhmYCxkYXJrc2xhdGVibHVlOmAjNDgzZDhiYCxkYXJrc2xhdGVncmF5OmAjMmY0ZjRmYCxkYXJrc2xhdGVncmV5OmAjMmY0ZjRmYCxkYXJrdHVycXVvaXNlOmAjMDBjZWQxYCxkYXJrdmlvbGV0OmAjOTQwMGQzYCxkZWVwcGluazpgI2ZmMTQ5M2AsZGVlcHNreWJsdWU6YCMwMGJmZmZgLGRpbWdyYXk6YCM2OTY5NjlgLGRpbWdyZXk6YCM2OTY5NjlgLGRvZGdlcmJsdWU6YCMxZTkwZmZgLGZpcmVicmljazpgI2IyMjIyMmAsZmxvcmFsd2hpdGU6YCNmZmZhZjBgLGZvcmVzdGdyZWVuOmAjMjI4YjIyYCxmdWNoc2lhOmAjZmYwMGZmYCxnYWluc2Jvcm86YCNkY2RjZGNgLGdob3N0d2hpdGU6YCNmOGY4ZmZgLGdvbGRlbnJvZDpgI2RhYTUyMGAsZ29sZDpgI2ZmZDcwMGAsZ3JheTpgIzgwODA4MGAsZ3JlZW46YCMwMDgwMDBgLGdyZWVueWVsbG93OmAjYWRmZjJmYCxncmV5OmAjODA4MDgwYCxob25leWRldzpgI2YwZmZmMGAsaG90cGluazpgI2ZmNjliNGAsaW5kaWFucmVkOmAjY2Q1YzVjYCxpbmRpZ286YCM0YjAwODJgLGl2b3J5OmAjZmZmZmYwYCxraGFraTpgI2YwZTY4Y2AsbGF2ZW5kZXJibHVzaDpgI2ZmZjBmNWAsbGF2ZW5kZXI6YCNlNmU2ZmFgLGxhd25ncmVlbjpgIzdjZmMwMGAsbGVtb25jaGlmZm9uOmAjZmZmYWNkYCxsaWdodGJsdWU6YCNhZGQ4ZTZgLGxpZ2h0Y29yYWw6YCNmMDgwODBgLGxpZ2h0Y3lhbjpgI2UwZmZmZmAsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6YCNmYWZhZDJgLGxpZ2h0Z3JheTpgI2QzZDNkM2AsbGlnaHRncmVlbjpgIzkwZWU5MGAsbGlnaHRncmV5OmAjZDNkM2QzYCxsaWdodHBpbms6YCNmZmI2YzFgLGxpZ2h0c2FsbW9uOmAjZmZhMDdhYCxsaWdodHNlYWdyZWVuOmAjMjBiMmFhYCxsaWdodHNreWJsdWU6YCM4N2NlZmFgLGxpZ2h0c2xhdGVncmF5OmAjNzc4ODk5YCxsaWdodHNsYXRlZ3JleTpgIzc3ODg5OWAsbGlnaHRzdGVlbGJsdWU6YCNiMGM0ZGVgLGxpZ2h0eWVsbG93OmAjZmZmZmUwYCxsaW1lOmAjMDBmZjAwYCxsaW1lZ3JlZW46YCMzMmNkMzJgLGxpbmVuOmAjZmFmMGU2YCxtYWdlbnRhOmAjZmYwMGZmYCxtYXJvb246YCM4MDAwMDBgLG1lZGl1bWFxdWFtYXJpbmU6YCM2NmNkYWFgLG1lZGl1bWJsdWU6YCMwMDAwY2RgLG1lZGl1bW9yY2hpZDpgI2JhNTVkM2AsbWVkaXVtcHVycGxlOmAjOTM3MGRiYCxtZWRpdW1zZWFncmVlbjpgIzNjYjM3MWAsbWVkaXVtc2xhdGVibHVlOmAjN2I2OGVlYCxtZWRpdW1zcHJpbmdncmVlbjpgIzAwZmE5YWAsbWVkaXVtdHVycXVvaXNlOmAjNDhkMWNjYCxtZWRpdW12aW9sZXRyZWQ6YCNjNzE1ODVgLG1pZG5pZ2h0Ymx1ZTpgIzE5MTk3MGAsbWludGNyZWFtOmAjZjVmZmZhYCxtaXN0eXJvc2U6YCNmZmU0ZTFgLG1vY2Nhc2luOmAjZmZlNGI1YCxuYXZham93aGl0ZTpgI2ZmZGVhZGAsbmF2eTpgIzAwMDA4MGAsb2xkbGFjZTpgI2ZkZjVlNmAsb2xpdmU6YCM4MDgwMDBgLG9saXZlZHJhYjpgIzZiOGUyM2Asb3JhbmdlOmAjZmZhNTAwYCxvcmFuZ2VyZWQ6YCNmZjQ1MDBgLG9yY2hpZDpgI2RhNzBkNmAscGFsZWdvbGRlbnJvZDpgI2VlZThhYWAscGFsZWdyZWVuOmAjOThmYjk4YCxwYWxldHVycXVvaXNlOmAjYWZlZWVlYCxwYWxldmlvbGV0cmVkOmAjZGI3MDkzYCxwYXBheWF3aGlwOmAjZmZlZmQ1YCxwZWFjaHB1ZmY6YCNmZmRhYjlgLHBlcnU6YCNjZDg1M2ZgLHBpbms6YCNmZmMwY2JgLHBsdW06YCNkZGEwZGRgLHBvd2RlcmJsdWU6YCNiMGUwZTZgLHB1cnBsZTpgIzgwMDA4MGAscmViZWNjYXB1cnBsZTpgIzY2MzM5OWAscmVkOmAjZmYwMDAwYCxyb3N5YnJvd246YCNiYzhmOGZgLHJveWFsYmx1ZTpgIzQxNjllMWAsc2FkZGxlYnJvd246YCM4YjQ1MTNgLHNhbG1vbjpgI2ZhODA3MmAsc2FuZHlicm93bjpgI2Y0YTQ2MGAsc2VhZ3JlZW46YCMyZThiNTdgLHNlYXNoZWxsOmAjZmZmNWVlYCxzaWVubmE6YCNhMDUyMmRgLHNpbHZlcjpgI2MwYzBjMGAsc2t5Ymx1ZTpgIzg3Y2VlYmAsc2xhdGVibHVlOmAjNmE1YWNkYCxzbGF0ZWdyYXk6YCM3MDgwOTBgLHNsYXRlZ3JleTpgIzcwODA5MGAsc25vdzpgI2ZmZmFmYWAsc3ByaW5nZ3JlZW46YCMwMGZmN2ZgLHN0ZWVsYmx1ZTpgIzQ2ODJiNGAsdGFuOmAjZDJiNDhjYCx0ZWFsOmAjMDA4MDgwYCx0aGlzdGxlOmAjZDhiZmQ4YCx0b21hdG86YCNmZjYzNDdgLHR1cnF1b2lzZTpgIzQwZTBkMGAsdmlvbGV0OmAjZWU4MmVlYCx3aGVhdDpgI2Y1ZGViM2Asd2hpdGU6YCNmZmZmZmZgLHdoaXRlc21va2U6YCNmNWY1ZjVgLHllbGxvdzpgI2ZmZmYwMGAseWVsbG93Z3JlZW46YCM5YWNkMzJgfTtmdW5jdGlvbiBEdihlKXtsZXQgdD17cjowLGc6MCxiOjB9LG49MSxyPW51bGwsaT1udWxsLGE9bnVsbCxvPSExLHM9ITE7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYCYmKGU9TXYoZSkpLHR5cGVvZiBlPT1gb2JqZWN0YCYmKE52KGUucikmJk52KGUuZykmJk52KGUuYik/KHQ9ZnYoZS5yLGUuZyxlLmIpLG89ITAscz1TdHJpbmcoZS5yKS5zdWJzdHIoLTEpPT09YCVgP2BwcmdiYDpgcmdiYCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS52KT8ocj11dihlLnMpLGk9dXYoZS52KSx0PV92KGUuaCxyLGkpLG89ITAscz1gaHN2YCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS5sKT8ocj11dihlLnMpLGE9dXYoZS5sKSx0PWh2KGUuaCxyLGEpLG89ITAscz1gaHNsYCk6TnYoZS5jKSYmTnYoZS5tKSYmTnYoZS55KSYmTnYoZS5rKSYmKHQ9YnYoZS5jLGUubSxlLnksZS5rKSxvPSEwLHM9YGNteWtgKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgYWApJiYobj1lLmEpKSxuPWx2KG4pLHtvazpvLGZvcm1hdDplLmZvcm1hdHx8cyxyOk1hdGgubWluKDI1NSxNYXRoLm1heCh0LnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHQuZywwKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgodC5iLDApKSxhOm59fXZhciBPdj1gKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pYCxrdj1gW1xcc3xcXChdKyhgK092K2ApWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlcXHMqXFwpP2AsQXY9YFtcXHN8XFwoXSsoYCtPditgKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlbLHxcXHNdKygoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykpWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVxccypcXCk/YCxqdj17Q1NTX1VOSVQ6bmV3IFJlZ0V4cChPdikscmdiOlJlZ0V4cChgcmdiYCtrdikscmdiYTpSZWdFeHAoYHJnYmFgK0F2KSxoc2w6UmVnRXhwKGBoc2xgK2t2KSxoc2xhOlJlZ0V4cChgaHNsYWArQXYpLGhzdjpSZWdFeHAoYGhzdmAra3YpLGhzdmE6UmVnRXhwKGBoc3ZhYCtBdiksY215azpSZWdFeHAoYGNteWtgK0F2KSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfTtmdW5jdGlvbiBNdihlKXtpZihlPWUudHJpbSgpLnRvTG93ZXJDYXNlKCksZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCB0PSExO2lmKEV2W2VdKWU9RXZbZV0sdD0hMDtlbHNlIGlmKGU9PT1gdHJhbnNwYXJlbnRgKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OmBuYW1lYH07bGV0IG49anYucmdiLmV4ZWMoZSk7cmV0dXJuIG4/e3I6blsxXSxnOm5bMl0sYjpuWzNdfToobj1qdi5yZ2JhLmV4ZWMoZSksbj97cjpuWzFdLGc6blsyXSxiOm5bM10sYTpuWzRdfToobj1qdi5oc2wuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLGw6blszXX06KG49anYuaHNsYS5leGVjKGUpLG4/e2g6blsxXSxzOm5bMl0sbDpuWzNdLGE6bls0XX06KG49anYuaHN2LmV4ZWMoZSksbj97aDpuWzFdLHM6blsyXSx2Om5bM119OihuPWp2LmhzdmEuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLHY6blszXSxhOm5bNF19OihuPWp2LmNteWsuZXhlYyhlKSxuP3tjOm5bMV0sbTpuWzJdLHk6blszXSxrOm5bNF19OihuPWp2LmhleDguZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxhOkN2KG5bNF0pLGZvcm1hdDp0P2BuYW1lYDpgaGV4OGB9OihuPWp2LmhleDYuZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxmb3JtYXQ6dD9gbmFtZWA6YGhleGB9OihuPWp2LmhleDQuZXhlYyhlKSxuP3tyOnd2KG5bMV0rblsxXSksZzp3dihuWzJdK25bMl0pLGI6d3YoblszXStuWzNdKSxhOkN2KG5bNF0rbls0XSksZm9ybWF0OnQ/YG5hbWVgOmBoZXg4YH06KG49anYuaGV4My5leGVjKGUpLG4/e3I6d3YoblsxXStuWzFdKSxnOnd2KG5bMl0rblsyXSksYjp3dihuWzNdK25bM10pLGZvcm1hdDp0P2BuYW1lYDpgaGV4YH06ITEpKSkpKSkpKSkpfWZ1bmN0aW9uIE52KGUpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmA/IU51bWJlci5pc05hTihlKTpqdi5DU1NfVU5JVC50ZXN0KGUpfXZhciBQdj1jbGFzcyBle2NvbnN0cnVjdG9yKHQ9YGAsbj17fSl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuIHQ7dHlwZW9mIHQ9PWBudW1iZXJgJiYodD1Udih0KSksdGhpcy5vcmlnaW5hbElucHV0PXQ7bGV0IHI9RHYodCk7dGhpcy5vcmlnaW5hbElucHV0PXQsdGhpcy5yPXIucix0aGlzLmc9ci5nLHRoaXMuYj1yLmIsdGhpcy5hPXIuYSx0aGlzLnJvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLmEpLzEwMCx0aGlzLmZvcm1hdD1uLmZvcm1hdD8/ci5mb3JtYXQsdGhpcy5ncmFkaWVudFR5cGU9bi5ncmFkaWVudFR5cGUsdGhpcy5yPDEmJih0aGlzLnI9TWF0aC5yb3VuZCh0aGlzLnIpKSx0aGlzLmc8MSYmKHRoaXMuZz1NYXRoLnJvdW5kKHRoaXMuZykpLHRoaXMuYjwxJiYodGhpcy5iPU1hdGgucm91bmQodGhpcy5iKSksdGhpcy5pc1ZhbGlkPXIub2t9aXNEYXJrKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH1pc0xpZ2h0KCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9Z2V0QnJpZ2h0bmVzcygpe2xldCBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oZS5yKjI5OStlLmcqNTg3K2UuYioxMTQpLzFlM31nZXRMdW1pbmFuY2UoKXtsZXQgZT10aGlzLnRvUmdiKCksdCxuLHIsaT1lLnIvMjU1LGE9ZS5nLzI1NSxvPWUuYi8yNTU7cmV0dXJuIHQ9aTw9LjAzOTI4P2kvMTIuOTI6KChpKy4wNTUpLzEuMDU1KSoqMi40LG49YTw9LjAzOTI4P2EvMTIuOTI6KChhKy4wNTUpLzEuMDU1KSoqMi40LHI9bzw9LjAzOTI4P28vMTIuOTI6KChvKy4wNTUpLzEuMDU1KSoqMi40LC4yMTI2KnQrLjcxNTIqbisuMDcyMipyfWdldEFscGhhKCl7cmV0dXJuIHRoaXMuYX1zZXRBbHBoYShlKXtyZXR1cm4gdGhpcy5hPWx2KGUpLHRoaXMucm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuYSkvMTAwLHRoaXN9aXNNb25vY2hyb21lKCl7bGV0e3M6ZX09dGhpcy50b0hzbCgpO3JldHVybiBlPT09MH10b0hzdigpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLHY6ZS52LGE6dGhpcy5hfX10b0hzdlN0cmluZygpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLnYqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHN2KCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc3ZhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hzbCgpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLGw6ZS5sLGE6dGhpcy5hfX10b0hzbFN0cmluZygpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLmwqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHNsKCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc2xhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hleChlPSExKXtyZXR1cm4gdnYodGhpcy5yLHRoaXMuZyx0aGlzLmIsZSl9dG9IZXhTdHJpbmcoZT0hMSl7cmV0dXJuYCNgK3RoaXMudG9IZXgoZSl9dG9IZXg4KGU9ITEpe3JldHVybiB5dih0aGlzLnIsdGhpcy5nLHRoaXMuYix0aGlzLmEsZSl9dG9IZXg4U3RyaW5nKGU9ITEpe3JldHVybmAjYCt0aGlzLnRvSGV4OChlKX10b0hleFNob3J0U3RyaW5nKGU9ITEpe3JldHVybiB0aGlzLmE9PT0xP3RoaXMudG9IZXhTdHJpbmcoZSk6dGhpcy50b0hleDhTdHJpbmcoZSl9dG9SZ2IoKXtyZXR1cm57cjpNYXRoLnJvdW5kKHRoaXMuciksZzpNYXRoLnJvdW5kKHRoaXMuZyksYjpNYXRoLnJvdW5kKHRoaXMuYiksYTp0aGlzLmF9fXRvUmdiU3RyaW5nKCl7bGV0IGU9TWF0aC5yb3VuZCh0aGlzLnIpLHQ9TWF0aC5yb3VuZCh0aGlzLmcpLG49TWF0aC5yb3VuZCh0aGlzLmIpO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlfSwgJHt0fSwgJHtufSlgOmByZ2JhKCR7ZX0sICR7dH0sICR7bn0sICR7dGhpcy5yb3VuZEF9KWB9dG9QZXJjZW50YWdlUmdiKCl7bGV0IGU9ZT0+YCR7TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApfSVgO3JldHVybntyOmUodGhpcy5yKSxnOmUodGhpcy5nKSxiOmUodGhpcy5iKSxhOnRoaXMuYX19dG9QZXJjZW50YWdlUmdiU3RyaW5nKCl7bGV0IGU9ZT0+TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlKHRoaXMucil9JSwgJHtlKHRoaXMuZyl9JSwgJHtlKHRoaXMuYil9JSlgOmByZ2JhKCR7ZSh0aGlzLnIpfSUsICR7ZSh0aGlzLmcpfSUsICR7ZSh0aGlzLmIpfSUsICR7dGhpcy5yb3VuZEF9KWB9dG9DbXlrKCl7cmV0dXJuey4uLnh2KHRoaXMucix0aGlzLmcsdGhpcy5iKX19dG9DbXlrU3RyaW5nKCl7bGV0e2M6ZSxtOnQseTpuLGs6cn09eHYodGhpcy5yLHRoaXMuZyx0aGlzLmIpO3JldHVybmBjbXlrKCR7ZX0sICR7dH0sICR7bn0sICR7cn0pYH10b05hbWUoKXtpZih0aGlzLmE9PT0wKXJldHVybmB0cmFuc3BhcmVudGA7aWYodGhpcy5hPDEpcmV0dXJuITE7bGV0IGU9YCNgK3Z2KHRoaXMucix0aGlzLmcsdGhpcy5iLCExKTtmb3IobGV0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhFdikpaWYoZT09PW4pcmV0dXJuIHQ7cmV0dXJuITF9dG9TdHJpbmcoZSl7bGV0IHQ9ISFlO2U/Pz10aGlzLmZvcm1hdDtsZXQgbj0hMSxyPXRoaXMuYTwxJiZ0aGlzLmE+PTA7cmV0dXJuIXQmJnImJihlLnN0YXJ0c1dpdGgoYGhleGApfHxlPT09YG5hbWVgKT9lPT09YG5hbWVgJiZ0aGlzLmE9PT0wP3RoaXMudG9OYW1lKCk6dGhpcy50b1JnYlN0cmluZygpOihlPT09YHJnYmAmJihuPXRoaXMudG9SZ2JTdHJpbmcoKSksZT09PWBwcmdiYCYmKG49dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksKGU9PT1gaGV4YHx8ZT09PWBoZXg2YCkmJihuPXRoaXMudG9IZXhTdHJpbmcoKSksZT09PWBoZXgzYCYmKG49dGhpcy50b0hleFN0cmluZyghMCkpLGU9PT1gaGV4NGAmJihuPXRoaXMudG9IZXg4U3RyaW5nKCEwKSksZT09PWBoZXg4YCYmKG49dGhpcy50b0hleDhTdHJpbmcoKSksZT09PWBuYW1lYCYmKG49dGhpcy50b05hbWUoKSksZT09PWBoc2xgJiYobj10aGlzLnRvSHNsU3RyaW5nKCkpLGU9PT1gaHN2YCYmKG49dGhpcy50b0hzdlN0cmluZygpKSxlPT09YGNteWtgJiYobj10aGlzLnRvQ215a1N0cmluZygpKSxufHx0aGlzLnRvSGV4U3RyaW5nKCkpfXRvTnVtYmVyKCl7cmV0dXJuKE1hdGgucm91bmQodGhpcy5yKTw8MTYpKyhNYXRoLnJvdW5kKHRoaXMuZyk8PDgpK01hdGgucm91bmQodGhpcy5iKX1jbG9uZSgpe3JldHVybiBuZXcgZSh0aGlzLnRvU3RyaW5nKCkpfWxpZ2h0ZW4odD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLmwrPXQvMTAwLG4ubD1vdihuLmwpLG5ldyBlKG4pfWJyaWdodGVuKHQ9MTApe2xldCBuPXRoaXMudG9SZ2IoKTtyZXR1cm4gbi5yPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LG4uci1NYXRoLnJvdW5kKDI1NSotKHQvMTAwKSkpKSxuLmc9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsbi5nLU1hdGgucm91bmQoMjU1Ki0odC8xMDApKSkpLG4uYj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxuLmItTWF0aC5yb3VuZCgyNTUqLSh0LzEwMCkpKSksbmV3IGUobil9ZGFya2VuKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9b3Yobi5sKSxuZXcgZShuKX10aW50KGU9MTApe3JldHVybiB0aGlzLm1peChgd2hpdGVgLGUpfXNoYWRlKGU9MTApe3JldHVybiB0aGlzLm1peChgYmxhY2tgLGUpfWRlc2F0dXJhdGUodD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLnMtPXQvMTAwLG4ucz1vdihuLnMpLG5ldyBlKG4pfXNhdHVyYXRlKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5zKz10LzEwMCxuLnM9b3Yobi5zKSxuZXcgZShuKX1ncmV5c2NhbGUoKXtyZXR1cm4gdGhpcy5kZXNhdHVyYXRlKDEwMCl9c3Bpbih0KXtsZXQgbj10aGlzLnRvSHNsKCkscj0obi5oK3QpJTM2MDtyZXR1cm4gbi5oPXI8MD8zNjArcjpyLG5ldyBlKG4pfW1peCh0LG49NTApe2xldCByPXRoaXMudG9SZ2IoKSxpPW5ldyBlKHQpLnRvUmdiKCksYT1uLzEwMDtyZXR1cm4gbmV3IGUoe3I6KGkuci1yLnIpKmErci5yLGc6KGkuZy1yLmcpKmErci5nLGI6KGkuYi1yLmIpKmErci5iLGE6KGkuYS1yLmEpKmErci5hfSl9YW5hbG9nb3VzKHQ9NixuPTMwKXtsZXQgcj10aGlzLnRvSHNsKCksaT0zNjAvbixhPVt0aGlzXTtmb3Ioci5oPShyLmgtKGkqdD4+MSkrNzIwKSUzNjA7LS10OylyLmg9KHIuaCtpKSUzNjAsYS5wdXNoKG5ldyBlKHIpKTtyZXR1cm4gYX1jb21wbGVtZW50KCl7bGV0IHQ9dGhpcy50b0hzbCgpO3JldHVybiB0Lmg9KHQuaCsxODApJTM2MCxuZXcgZSh0KX1tb25vY2hyb21hdGljKHQ9Nil7bGV0IG49dGhpcy50b0hzdigpLHtoOnJ9PW4se3M6aX09bix7djphfT1uLG89W10scz0xL3Q7Zm9yKDt0LS07KW8ucHVzaChuZXcgZSh7aDpyLHM6aSx2OmF9KSksYT0oYStzKSUxO3JldHVybiBvfXNwbGl0Y29tcGxlbWVudCgpe2xldCB0PXRoaXMudG9Ic2woKSx7aDpufT10O3JldHVyblt0aGlzLG5ldyBlKHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxuZXcgZSh7aDoobisyMTYpJTM2MCxzOnQucyxsOnQubH0pXX1vbkJhY2tncm91bmQodCl7bGV0IG49dGhpcy50b1JnYigpLHI9bmV3IGUodCkudG9SZ2IoKSxpPW4uYStyLmEqKDEtbi5hKTtyZXR1cm4gbmV3IGUoe3I6KG4ucipuLmErci5yKnIuYSooMS1uLmEpKS9pLGc6KG4uZypuLmErci5nKnIuYSooMS1uLmEpKS9pLGI6KG4uYipuLmErci5iKnIuYSooMS1uLmEpKS9pLGE6aX0pfXRyaWFkKCl7cmV0dXJuIHRoaXMucG9seWFkKDMpfXRldHJhZCgpe3JldHVybiB0aGlzLnBvbHlhZCg0KX1wb2x5YWQodCl7bGV0IG49dGhpcy50b0hzbCgpLHtoOnJ9PW4saT1bdGhpc10sYT0zNjAvdDtmb3IobGV0IG89MTtvPHQ7bysrKWkucHVzaChuZXcgZSh7aDoocitvKmEpJTM2MCxzOm4ucyxsOm4ubH0pKTtyZXR1cm4gaX1lcXVhbHModCl7bGV0IG49bmV3IGUodCk7cmV0dXJuIHRoaXMuZm9ybWF0PT09YGNteWtgfHxuLmZvcm1hdD09PWBjbXlrYD90aGlzLnRvQ215a1N0cmluZygpPT09bi50b0NteWtTdHJpbmcoKTp0aGlzLnRvUmdiU3RyaW5nKCk9PT1uLnRvUmdiU3RyaW5nKCl9fTtmdW5jdGlvbiBGdihlLHQpe2xldCBuPW5ldyBQdihlKSxyPW5ldyBQdih0KTtyZXR1cm4oTWF0aC5tYXgobi5nZXRMdW1pbmFuY2UoKSxyLmdldEx1bWluYW5jZSgpKSsuMDUpLyhNYXRoLm1pbihuLmdldEx1bWluYW5jZSgpLHIuZ2V0THVtaW5hbmNlKCkpKy4wNSl9dmFyIEl2PS4yOTksTHY9LjU4NyxSdj0uMTE0LHp2PTE4MCxCdj0tMjAsVnY9LS4yNSxIdj0uMixVdj0tNSxXdj0uMDMsR3Y9LjUsS3Y9NSxxdj0oZSx0KT0+bmV3IFB2KGUpLmRhcmtlbih0KS50b0hleFN0cmluZygpLEp2PWU9PntsZXQgdD1uZXcgUHYoZSkudG9SZ2IoKTtyZXR1cm5gJHt0LnJ9LCAke3QuZ30sICR7dC5ifWB9LFl2PWU9Pi9eI1swLTlBLUZdezZ9JC9pLnRlc3QoZSksWHY9ZT0+e2xldHtyOnQsZzpuLGI6cn09bmV3IFB2KGUpLnRvUmdiKCk7cmV0dXJuIE1hdGguc3FydCh0KnQqSXYrbipuKkx2K3IqcipSdik+enZ9LFp2PWU9PntsZXQgdD1uZXcgUHYoZSkse3M6bixsOnJ9PXQudG9Ic2woKTtyZXR1cm4gdC5zcGluKEJ2KS5kZXNhdHVyYXRlKG4qVnYpLmxpZ2h0ZW4ocipIdikudG9IZXhTdHJpbmcoKX0sUXY9KGUsdD1Hdik9PntsZXQgbj1uZXcgUHYoZSkse3M6cixsOml9PW4udG9Ic2woKTtyZXR1cm4gbi5zcGluKFV2KS5zYXR1cmF0ZShyKld2KS5kYXJrZW4oaSp0KS50b0hleFN0cmluZygpfSwkdj1lPT57bGV0e2NvbG9yOnQsY29sb3IyOm4sY29sb3JHcmFkaWVudDpyfT1lO3JldHVybiByP24/e2Zyb206dCx0bzpufTpYdih0KT97ZnJvbTp0LHRvOlF2KHQpfTp7ZnJvbTpadih0KSx0bzp0fTp7ZnJvbTp0LHRvOnR9fSxleT1lPT5YdihlKT9hdi5zbGF0ZTkwMDphdi53aGl0ZSx0eT1lPT5YdihlKT8uMTouMixueT1lPT57aWYoWHYoZSkpe2xldCB0PW5ldyBQdihlKS5nZXRMdW1pbmFuY2UoKTtyZXR1cm4gdD4uOD9xdihlLCgxMCp0KSoqdCk6ZX1yZXR1cm4gZX0scnk9KGUsdCk9PntsZXQgbj10Py5iYWNrZ3JvdW5kQ29sb3I/P2Uscj0wLGk9bmV3IFB2KGUpLGE9RnYobixpKSxvPXQ/LmZvcmNlTGlnaHRCZz8/bmV3IFB2KG4pLmlzTGlnaHQoKTtmb3IoO2E8My43NSYmcjwyMDspaT1vP2kuZGFya2VuKDUpOmkubGlnaHRlbig1KSxhPUZ2KG4saSkscisrO3JldHVybiBpLnRvSGV4U3RyaW5nKCl9LGl5PShlLHQpPT57bGV0IG49cnkoZSx7YmFja2dyb3VuZENvbG9yOmF2LndoaXRlfSkscj1yeShlKSxpPW5ldyBQdihlKS5pc0xpZ2h0KCksYT1uZXcgUHYodCkuaXNMaWdodCgpO3JldHVybiBpJiZhP3I9cnkodCk6IWkmJiFhP3I9cnkoZSk6aSYmIWE/cj1yeSh0LHtmb3JjZUxpZ2h0Qmc6ITB9KTohaSYmYSYmKHI9cnkoZSx7Zm9yY2VMaWdodEJnOiExfSkpLHtwcmltYXJ5Om4sc2Vjb25kYXJ5OnJ9fSxRPShlLHQsbik9PntlLmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSxheT0oZSx0KT0+e2xldHtjb2xvcjpufT10LHI9JHYodCksaT1yLmZyb209PT1gI2ZmZmZmZmAmJnIuZnJvbT09PXIudG8/e2Zyb206YXYuc2xhdGUzMDAsdG86YXYuc2xhdGUzMDB9OnIsYT1leShuKTtRKGUsYC0tY29sb3ItcHJpbWFyeWAsbiksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudGAsYSksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudC1yZ2JgLEp2KGEpKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1mcm9tYCxyLmZyb20pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvYCxyLnRvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tZnJvbWAsaS5mcm9tKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tdG9gLGkudG8pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLWZyb21gLHF2KHIuZnJvbSxLdikpLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLXRvYCxxdihyLnRvLEt2KSk7bGV0IG89bnkobik7UShlLGAtLWNvbG9yLXByaW1hcnktYnV0dG9uYCxvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24taG92ZXJgLHF2KG8sMTApKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudGAsYSksUShlLGAtLW9wYWNpdHktcHJpbWFyeS1jb250ZW50YCxTdHJpbmcodHkobikpKTtsZXQgcz1peShyLmZyb20sci50byk7UShlLGAtLWNvbG9yLXByaW1hcnktZm9jdXNgLHMucHJpbWFyeSksUShlLGAtLWNvbG9yLXNlY29uZGFyeS1mb2N1c2Ascy5zZWNvbmRhcnkpfSxveT0oKCk9PntsZXR7c3Vic2NyaWJlOmUsc2V0OnR9PU8oe2NvbG9yOmF2LnNtYXJ0c3VwcEJsdWUsY29sb3IyOm51bGwsY29sb3JHcmFkaWVudDohMH0pO3JldHVybntzdWJzY3JpYmU6ZSxzZXRUaGVtZUNvbG9yOmU9PntsZXR7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9PWU7aWYoIVl2KG4pKXtIKGBQcm92aWRlZCBjb2xvciAnJHtufScgaXMgbm90IHZhbGlkLiBEZWZhdWx0IGNvbG9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLmApO3JldHVybn1lbHNlIGlmKGkmJnImJiFZdihyKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7cn0nIGlzIG5vdCB2YWxpZC4gRGVmYXVsdCBjb2xvciB3aWxsIGJlIHVzZWQgaW5zdGVhZC5gKTtyZXR1cm59dCh7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9KX19fSkoKSxzeT0yNCxjeT0xMixseT03Mix1eT0zODAsZHk9NjcyLGZ5PTU2MCxweT04NDAsbXk9ZT0+YCR7ZX1weGAsaHk9ZT0+e2lmKGUpcmV0dXJuIEx1KGUpP3BhcnNlSW50KGUsMTApOmV9LGd5PShlLHQpPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8bj8uaGVhZGxlc3NNb2RlP3t3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH06dD97d2lkdGg6ZnksaGVpZ2h0OnB5fTp7d2lkdGg6dXksaGVpZ2h0OmR5fX0sX3k9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS5ib3JkZXJSYWRpdXM9bXkoMjApLHQ/LmhlYWRsZXNzTW9kZT9lLnN0eWxlLmJveFNoYWRvdz1gbm9uZWA6dD8ubGltaXRTaGFkb3c/ZS5zdHlsZS5ib3hTaGFkb3c9YHJnYmEoMCwgMCwgMCwgMC4yNSkgMHB4IDVweCAxMnB4YDplLnN0eWxlLmJveFNoYWRvdz1gcmdiYSgwLCAwLCAwLCAwLjE2KSAwcHggNXB4IDQwcHhgfSx2eT0oKT0+e2xldHtvZmZzZXRZOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBoeShlKT8/c3l9LHl5PSgpPT57bGV0e29mZnNldFg6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGh5KGUpPz9jeX0sYnk9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGV8fHQ/LmhlYWRsZXNzTW9kZT8wOnN5fSx4eT1lPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8dD8uaGVhZGxlc3NNb2RlPzA6Y3l9LFN5PSgpPT57bGV0e3Bvc2l0aW9uOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09YGZpeGVkYH0sQ3k9ZT0+e1N5KCkmJihlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGApfSx3eT0oZSx0KT0+e1N5KCkmJihlLnN0eWxlLmJvdHRvbT1teSh0KSl9LFR5PShlLHQpPT57aWYoU3koKSl7bGV0e29yaWVudGF0aW9uOm59PVYuZ2V0T3B0aW9ucygpO249PT1gcmlnaHRgPyhlLnN0eWxlLmxlZnQ9YGluaXRpYWxgLGUuc3R5bGUucmlnaHQ9bXkodCkpOihlLnN0eWxlLmxlZnQ9bXkodCksZS5zdHlsZS5yaWdodD1gaW5pdGlhbGApfX0sRXk9ZT0+e2xldHt6SW5kZXg6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS56SW5kZXg9U3RyaW5nKHQ/P2BhdXRvYCl9LER5PWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHQuc3R5bGUud2lkdGg9YDEwMCVgLHQuc3R5bGUuaGVpZ2h0PWAxMDAlYCx0LnN0eWxlLmJvcmRlcj1gbm9uZWAsdC5zdHlsZS5kaXNwbGF5PWBibG9ja2AsdC5zdHlsZS50ZXh0QWxpZ249YGxlZnRgLHQuc3R5bGUubWFyZ2luPWAwYCx0LnN0eWxlLnBhZGRpbmc9YDBgLHQuc3R5bGUudG9wPWAwYCx0LnN0eWxlLmxlZnQ9YDBgLHQuc3R5bGUub3BhY2l0eT1gMWAsZSYmZSh0KSx0LmdldEF0dHJpYnV0ZShgc3R5bGVgKT8/YGB9LE95PWU9PntDeShlKSx3eShlLHZ5KCkpLFR5KGUseXkoKSksRXkoZSl9LGt5PShlLHQpPT57Q3koZSksd3koZSxieSh0KSksVHkoZSx4eSh0KSksRXkoZSksdHx8X3koZSl9LEF5PWU9PntDeShlKSx3eShlLHZ5KCkrbHkpLFR5KGUseXkoKSksRXkoZSl9LGp5PWU9PntlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGAsZS5zdHlsZS53aWR0aD1gMTAwJWAsZS5zdHlsZS5oZWlnaHQ9YDEwMCVgLHd5KGUsMCksVHkoZSwwKSxFeShlKX0sTXk9ZT0+e095KGUpfSxOeT0oZSx0KT0+e2t5KGUsdCl9LFB5PWU9PntBeShlKX0sRnk9ZT0+e0F5KGUpfSxJeT1lPT57ankoZSl9LEx5PU8oMzAwKSxSeT1PKDE2Niksenk9TyghMSksQnk9Tyh2b2lkIDApLFZ5PWsoW3NzLEJ5XSwoW2UsdF0pPT57bGV0e2J1dHRvblN0eWxlOm59PVYuZ2V0T3B0aW9ucygpO3JldHVybiB0P3Q9PT1gYnViYmxlYDplfHxuPT09YGJ1YmJsZWB9KSxIeT1rKFtWeSxMeV0sKFtlLHRdKT0+ZT81Njp0KSxVeT1PKHZvaWQgMCksV3k9ayhbY3MsVXldLChbZSx0XSk9PmU/ITA6KHQ/P1YuZ2V0T3B0aW9ucygpLmhlYWRlclN0eWxlKT09PWBjb21wYWN0YCksR3k9ayhbV3ldLChbZV0pPT5lPzc2OjExNCksS3k9TygpLHF5PWsoW0t5XSwoW2VdKT0+ZT09PXZvaWQgMD96byhVLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZCk9PT1gdHJ1ZWA6ZSksSnk9ZT0+e0JvKHtuYW1lOlUuSXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLEt5LnNldChlKX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gZS5OYW1lPWBuYW1lYCxlLkdyb3VwPWBncm91cGAsZS5FbWFpbD1gZW1haWxgLGUuUGhvbmU9YHBob25lYCxlLlZhcmlhYmxlcz1gdmFyaWFibGVzYCxlLkNvbnRhY3REYXRhPWBjb250YWN0RGF0YWAsZS5MYW5ndWFnZT1gbGFuZ3VhZ2VgLGUuQ2hhdENsb3NlPWBjaGF0OmNsb3NlYCxlLkNoYXRPcGVuPWBjaGF0Om9wZW5gLGUuQ2hhdFNob3c9YGNoYXQ6c2hvd2AsZS5DaGF0SGlkZT1gY2hhdDpoaWRlYCxlLlRoZW1lQ29sb3I9YHRoZW1lOmNvbG9yYCxlLkNoYXRNZXNzYWdlPWBjaGF0Om1lc3NhZ2VgLGUuQ2hhdFNlbmQ9YGNoYXQ6c2VuZGAsZS5IdG1sQXBwbHk9YGh0bWw6YXBwbHlgLGUuT249YG9uYCxlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuTWFya2V0aW5nQ29uc2VudD1gbWFya2V0aW5nQ29uc2VudGAsZS5PcGVuUmF0ZUZvcm09YG9wZW5SYXRlRm9ybWAsZS5PcGVuQXV0aEZvcm09YG9wZW5BdXRoRm9ybWAsZS5XaWRnZXRTdGF0dXM9YHdpZGdldFN0YXR1c2AsZS5UcmFuc2xhdGlvbnM9YHRyYW5zbGF0aW9uc2AsZS5BdXRoRm9ybUZpZWxkcz1gYXV0aEZvcm1GaWVsZHNgLGUuQnV0dG9uU3R5bGU9YGJ1dHRvblN0eWxlYCxlLkhlYWRlclN0eWxlPWBoZWFkZXJTdHlsZWAsZS5QcmV2aWV3VHJhbnNsYXRlPWBwcmV2aWV3VHJhbnNsYXRlYCxlLkRpc2FibGVDb25uZWN0aW9uU3RhdHVzPWBkaXNhYmxlQ29ubmVjdGlvblN0YXR1c2AsZS5SZWxvYWRXaXRoTW9ja0RhdGE9YHJlbG9hZFdpdGhNb2NrRGF0YWAsZS5SZWxvYWQ9YHJlbG9hZGAsZS5Cb3RJZGVudGl0eVVwZGF0ZT1gYm90SWRlbnRpdHk6dXBkYXRlYCxlfSh7fSksWXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuTWVzc2FnZVNlbnQ9YG1lc3NhZ2Vfc2VudGAsZS5NZXNzYWdlUmVjZWl2ZWQ9YG1lc3NhZ2VfcmVjZWl2ZWRgLGUuTWVzc2VuZ2VyQ2xvc2U9YG1lc3Nlbmdlcl9jbG9zZWAsZS5XaWRnZXRJbml0PWB3aWRnZXRfaW5pdGAsZX0oe30pLFh5PWU9Pnt6Lm9uKGBtZXNzYWdlU2VudGAsZSl9LFp5PWU9Pnt6Lm9uKGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxReT1lPT57ei5vbihgbWVzc2VuZ2VyQ2xvc2VgLGUpfSwkeT1lPT57ei5vbihgd2lkZ2V0SW5pdGAsZSl9LGViPXtbWXkuTWVzc2FnZVNlbnRdOlh5LFtZeS5NZXNzYWdlUmVjZWl2ZWRdOlp5LFtZeS5NZXNzZW5nZXJDbG9zZV06UXksW1l5LldpZGdldEluaXRdOiR5fSx0Yj0oZSx0KT0+e2xldCBuPWViW2VdO24mJm4odCl9LG5iPWBodHRwczovL2RvY3Muc21hcnRzdXBwLmNvbS9jaGF0LWJveC9gLHJiPWAke25ifWxvY2FsaXphdGlvbi8jc3VwcG9ydGVkLWxhbmd1YWdlc2AsaWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLXZpc2l0b3ItZGF0YWAsYWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLWNvbnRhY3QtZGF0YWAsb2I9YCR7bmJ9amF2YXNjcmlwdC1hcGkvZXZlbnRzL2Asc2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vaGVscC9jb29raWUtY29uc2VudC8jd2hlcmUtdG8tZW5hYmxlLWNvb2tpZS1jb25zZW50LWluLXNtYXJ0c3VwcGAsY2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vcHJpY2luZ2AsbGI9Tyh7fSksdWI9KGUsdCk9PntsYi51cGRhdGUobj0+KHsuLi5uLFtlXTp0fSkpfSxkYj1lPT5PYmplY3QudmFsdWVzKCQpLnNvbWUodD0+dD09PWUpLGZiPShlLHQpPT5MdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgc3RyaW5nLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLHBiPShlLHQpPT5QdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgYm9vbGVhbi4gU2VlICR7bmJ9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKSxtYj0oZSx0KT0+dHlwZW9mIHQ9PWBmdW5jdGlvbmA/ITA6KEgoYFBhcmFtZXRlciBvZiAnJHtlfScgQVBJIGNvbW1hbmQgbXVzdCBiZSB0eXBlIGZ1bmN0aW9uLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGhiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHtpYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGdiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHthYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLF9iPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LmApLCExKSx2Yj0oZSx0KT0+IUl1KHQpfHwhKGBpZGBpbiB0KXx8IUx1KHQuaWQpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgYmUgdHlwZSBvYmplY3QgYW5kIGhhcyBhIHZhbGlkICdpZCcgcHJvcGVydHkuYCksITEpOmBuYW1lYGluIHQmJiFMdSh0Lm5hbWUpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICduYW1lJyBwcm9wZXJ0eS5gKSwhMSk6YGF2YXRhclVybGBpbiB0JiYhTHUodC5hdmF0YXJVcmwpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICdhdmF0YXJVcmwnIHByb3BlcnR5LmApLCExKTohMCx5Yj0oZSx0KT0+e2xldCBuPU9iamVjdC52YWx1ZXMoWXkpO3JldHVybiBuLmluY2x1ZGVzKHQpPyEwOihIKGBVbmtub3duIGV2ZW50OiAnJHt0fScuIEF2YWlsYWJsZSBldmVudCBuYW1lcyBhcmU6ICR7bi5qb2luKGAsIGApfS4gU2VlICR7b2J9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKX0sYmI9ZT0+e0goYFVua25vd24gQVBJIGNvbW1hbmQ6ICcke2V9Jy4gU2VlICR7bmJ9IHRvIGNoZWNrIGF2YWlsYWJsZSBBUEkgY29tbWFuZHMuYCl9LHhiPSgpPT4hIVYuZ2V0T3B0aW9ucygpLmZlYXR1cmVzPy5hcGksU2I9KCk9PiEhVi5nZXRPcHRpb25zKCkuZmVhdHVyZXM/Lmdyb3VwcyxDYj0oKT0+Vi5nZXRPcHRpb25zKCkuaXNQcmV2aWV3TW9kZSx3Yj0oKT0+IXhiKCkmJiFDYigpPyhIKGBDaGF0IGJveCBBUEkgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxUYj0oKT0+IXhiKCl8fCFTYigpPyhIKGBDaGF0IGJveCBHcm91cHMgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxFYj0oKT0+e0hvKCl8fEgoYEVuYWJsZSBtYW5hZ2luZyBjb29raWUgY29uc2VudCBpbiB3aWRnZXQgc2V0dGluZ3MgdG8gYWxsb3cgdGhpcyBjb21tYW5kLiBTZWUgJHtzYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCl9LERiPSgpPT57bGV0IGU9KCk9PntVXyghMCksSV8oKX07aWYoIUEoQ18pKXtYbC5wdXNoKGUpO3JldHVybn1lKCl9LE9iPSgpPT57aWYod2IoKSl7aWYoIUEoQ18pKXtYbC5wdXNoKFdfKTtyZXR1cm59V18oKX19LGtiPSgpPT57d2IoKSYmSV8oKX0sQWI9KCk9Pnt3YigpJiZMXygpfSxqYj0oZSx0KT0+e2lmKHdiKCkmJmU9PT0kLkxhbmd1YWdlJiZmYihlLHQpKXtpZighSWwodCkpe0goYFByb3ZpZGVkIGxhbmd1YWdlICcke3R9JyBpcyBub3Qgc3VwcG9ydGVkLiBTZWUgJHtyYn0gdG8gY2hlY2sgc3VwcG9ydGVkIGxhbmd1YWdlcy5gKTtyZXR1cm59aWYoIUEoQ18pKXt1YihgbGFuZ2AsdCk7cmV0dXJufUdsKHQpfX0sTWI9KGUsdCk9PntsZXQgbixyPW51bGwsaT0hMDtpZih3YigpKXtpZih0eXBlb2YgdD09YHN0cmluZ2AmJmZiKGUsdCkpbj10O2Vsc2UgaWYoaGIoZSx0KSl7aWYobj10LmNvbG9yLHI9dC5jb2xvcjIsaT10LmNvbG9yR3JhZGllbnQsIXBiKGUsaSkpcmV0dXJufWVsc2UgcmV0dXJuO2lmKCFZdihuKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7bn0nIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHVzZSBoZXggY29sb3IgY29kZS5gKTtyZXR1cm59ZWxzZSBpZihpJiZyJiYhWXYocikpe0goYFByb3ZpZGVkIGNvbG9yICcke3J9JyBpcyBub3QgdmFsaWQuIERlZmF1bHQgY29sb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuYCk7cmV0dXJufW95LnNldFRoZW1lQ29sb3Ioe2NvbG9yOm4sY29sb3IyOnIsY29sb3JHcmFkaWVudDppfSl9fSxOYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJm9fKHQpfSxQYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJihvXyh0KSxkXygpKX0sRmI9KGUsdCxuKT0+e2ZiKGUsdCkmJnliKGUsdCkmJm1iKGUsbikmJnRiKHQsbil9LEliPShlLHQpPT57aGIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclZhcmlhYmxlcyh6dSh0KSl9LExiPShlLHQpPT57ZSE9PSQuTmFtZSYmZSE9PSQuRW1haWwmJmUhPT0kLlBob25lJiZlIT09JC5Hcm91cHx8ZmIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclByb3BlcnR5KGUsdCl9LFJiPShlLHQpPT57aWYoIVRiKCl8fCFmYihlLHQpKXJldHVybjtsZXQgbj1BKGlsKVt0XTtpZihBKENfKSYmIW4pe0goYEdyb3VwIHdpdGgga2V5ICcke3R9JyBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBncm91cCBrZXkgZnJvbSB5b3VyIGdyb3VwIHNldHRpbmdzLmApO3JldHVybn1MYihlLHQpfSx6Yj0oZSx0KT0+e2diKGUsdCkmJk11LnVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YSh0KX0sQmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sVmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sSGI9KCk9PntZcChBKEJwKXx8YGApfSxVYj0oKT0+e0JjKEhjLkF1dGhGb3JtKX0sV2I9KGUsdCk9PntmYihlLHQpJiYodCE9PUsuQWNjb3VudFN0YXR1cy5PbmxpbmUmJnQhPT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZXx8JHUuc2V0KHQpKX0sR2I9KGUsdCk9PntoYihlLHQpJiZxbCh0KX0sS2I9KGUsdCk9PntoYihlLHQpJiYoQShWaCl8fFZoLnNldChWLmdldE9wdGlvbnMoKSksVmgudXBkYXRlKGU9Pih7Li4uZSwuLi50fSkpKX0scWI9KGUsdCk9PntmYihlLHQpJiZCeS5zZXQodCl9LEpiPShlLHQpPT57aWYoZT09PSQuSGVhZGVyU3R5bGUmJmZiKGUsdCkpe2lmKHQhPT1gY29tcGFjdGAmJnQhPT1gc3RhbmRhcmRgKXtIKGBQcm92aWRlZCBoZWFkZXIgc3R5bGUgJyR7dH0nIGlzIG5vdCB2YWxpZC4gVXNlICdjb21wYWN0JyBvciAnc3RhbmRhcmQnLmApO3JldHVybn1VeS5zZXQodCl9fSxZYj0oKT0+e2xldCBlPSgpPT57fTtlPUhsLnN1YnNjcmliZSgoKT0+e0EoUnApLmZvckVhY2goZT0+e2xldCB0PWUuY29udGVudD8uZGF0YXx8YGA7dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0Lm1hdGNoKC93aWRnZXRQcmV2aWV3XC4uKi8pJiYoZS5jb250ZW50LnRleHQ9QShXKSh0KSxKLnJlcGxhY2VNZXNzYWdlKGUpKX0pLGUoKX0pfSxYYj0oZSx0KT0+e3BiKGUsdCkmJklnLnNldCh0KX0sWmI9KGUsdCk9PntfYihlLHQpJiZxLnJlbG9hZENsaWVudCh0KX0sUWI9KGUsdCk9PntwYihlLHQpJiZxLnJlbG9hZENsaWVudCh2b2lkIDAsdCl9LCRiPShlLHQpPT57aWYoIXZiKGUsdCkpcmV0dXJuO2xldHtpZDpuLC4uLnJ9PXQ7JGwudXBkYXRlSWRlbnRpdHkobixyKX0sZXg9e3ZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgLGV4ZWN1dGU6ZT0+e2xldCB0PWVbMF07aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3J4KHQpO3JldHVybn1pZighZGIodCkpe2JiKFN0cmluZyh0KSk7cmV0dXJufW54KHQsZVsxXSwuLi5lLnNsaWNlKDIpKX0sZXhlYzpmdW5jdGlvbiguLi5lKXt0aGlzLmV4ZWN1dGUoZSl9fSx0eD17WyQuQ2hhdE9wZW5dOkRiLFskLkNoYXRDbG9zZV06T2IsWyQuQ2hhdFNob3ddOmtiLFskLkNoYXRIaWRlXTpBYixbJC5DaGF0TWVzc2FnZV06TmIsWyQuQ2hhdFNlbmRdOlBiLFskLkxhbmd1YWdlXTpqYixbJC5UaGVtZUNvbG9yXTpNYixbJC5IZWFkZXJTdHlsZV06SmIsWyQuT25dOkZiLFskLlZhcmlhYmxlc106SWIsWyQuQ29udGFjdERhdGFdOnpiLFskLk5hbWVdOkxiLFskLkdyb3VwXTpSYixbJC5FbWFpbF06TGIsWyQuUGhvbmVdOkxiLFskLkFuYWx5dGljc0NvbnNlbnRdOkJiLFskLk1hcmtldGluZ0NvbnNlbnRdOlZiLFskLkh0bWxBcHBseV06bnVsbCxbJC5PcGVuUmF0ZUZvcm1dOkhiLFskLk9wZW5BdXRoRm9ybV06VWIsWyQuV2lkZ2V0U3RhdHVzXTpXYixbJC5UcmFuc2xhdGlvbnNdOkdiLFskLkF1dGhGb3JtRmllbGRzXTpLYixbJC5CdXR0b25TdHlsZV06cWIsWyQuUHJldmlld1RyYW5zbGF0ZV06WWIsWyQuRGlzYWJsZUNvbm5lY3Rpb25TdGF0dXNdOlhiLFskLlJlbG9hZFdpdGhNb2NrRGF0YV06WmIsWyQuUmVsb2FkXTpRYixbJC5Cb3RJZGVudGl0eVVwZGF0ZV06JGJ9LG54PShlLHQsLi4ubik9PntsZXQgcj10eFtlXTtpZihyPT09dm9pZCAwKXtiYihlKTtyZXR1cm59ciE9PW51bGwmJihyKGUsdCwuLi5uKSx2byhg8J+nmeKAjeKZgu+4j1tBUEldICR7ZX0ke3Q/YDpgOmBgfWAsdD8/YGApKX0scng9ZT0+e0EoQ18pP2UoKTpYbC5wdXNoKGUpfTt0eXBlb2Ygd2luZG93PGB1YCYmKCh3aW5kb3cuX19zdmVsdGU/Pz17fSkudj8/PW5ldyBTZXQpLmFkZChgNWApO3ZhciBpeD1lPT5lO2Z1bmN0aW9uIGF4KGUpe2xldCB0PWUtMTtyZXR1cm4gdCp0KnQrMX1mdW5jdGlvbiBveChlKXtsZXQgdD10eXBlb2YgZT09YHN0cmluZ2AmJmUubWF0Y2goL15ccyooLT9bXGQuXSspKFteXHNdKilccyokLyk7cmV0dXJuIHQ/W3BhcnNlRmxvYXQodFsxXSksdFsyXXx8YHB4YF06W2UsYHB4YF19ZnVuY3Rpb24gc3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWl4fT17fSl7bGV0IGk9K2dldENvbXB1dGVkU3R5bGUoZSkub3BhY2l0eTtyZXR1cm57ZGVsYXk6dCxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczplPT5gb3BhY2l0eTogJHtlKml9YH19ZnVuY3Rpb24gY3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHg6aT0wLHk6YT0wLG9wYWNpdHk6bz0wfT17fSl7bGV0IHM9Z2V0Q29tcHV0ZWRTdHlsZShlKSxjPStzLm9wYWNpdHksbD1zLnRyYW5zZm9ybT09PWBub25lYD9gYDpzLnRyYW5zZm9ybSx1PWMqKDEtbyksW2QsZl09b3goaSksW3AsbV09b3goYSk7cmV0dXJue2RlbGF5OnQsZHVyYXRpb246bixlYXNpbmc6cixjc3M6KGUsdCk9PmAKCQkJdHJhbnNmb3JtOiAke2x9IHRyYW5zbGF0ZSgkeygxLWUpKmR9JHtmfSwgJHsoMS1lKSpwfSR7bX0pOwoJCQlvcGFjaXR5OiAke2MtdSp0fWB9fWZ1bmN0aW9uIGx4KGUse2RlbGF5OnQ9MCxkdXJhdGlvbjpuPTQwMCxlYXNpbmc6cj1heCxheGlzOmk9YHlgfT17fSl7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPSthLm9wYWNpdHkscz1pPT09YHlgP2BoZWlnaHRgOmB3aWR0aGAsYz1wYXJzZUZsb2F0KGFbc10pLGw9aT09PWB5YD9bYHRvcGAsYGJvdHRvbWBdOltgbGVmdGAsYHJpZ2h0YF0sdT1sLm1hcChlPT5gJHtlWzBdLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWApLGQ9cGFyc2VGbG9hdChhW2BwYWRkaW5nJHt1WzBdfWBdKSxmPXBhcnNlRmxvYXQoYVtgcGFkZGluZyR7dVsxXX1gXSkscD1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVswXX1gXSksbT1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVsxXX1gXSksaD1wYXJzZUZsb2F0KGFbYGJvcmRlciR7dVswXX1XaWR0aGBdKSxnPXBhcnNlRmxvYXQoYVtgYm9yZGVyJHt1WzFdfVdpZHRoYF0pO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOmU9PmBvdmVyZmxvdzogaGlkZGVuO29wYWNpdHk6ICR7TWF0aC5taW4oZSoyMCwxKSpvfTske3N9OiAke2UqY31weDtwYWRkaW5nLSR7bFswXX06ICR7ZSpkfXB4O3BhZGRpbmctJHtsWzFdfTogJHtlKmZ9cHg7bWFyZ2luLSR7bFswXX06ICR7ZSpwfXB4O21hcmdpbi0ke2xbMV19OiAke2UqbX1weDtib3JkZXItJHtsWzBdfS13aWR0aDogJHtlKmh9cHg7Ym9yZGVyLSR7bFsxXX0td2lkdGg6ICR7ZSpnfXB4O21pbi0ke3N9OiAwYH19ZnVuY3Rpb24gdXgoZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHN0YXJ0Omk9MCxvcGFjaXR5OmE9MH09e30pe2xldCBvPWdldENvbXB1dGVkU3R5bGUoZSkscz0rby5vcGFjaXR5LGM9by50cmFuc2Zvcm09PT1gbm9uZWA/YGA6by50cmFuc2Zvcm0sbD0xLWksdT1zKigxLWEpO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOihlLHQpPT5gCgkJCXRyYW5zZm9ybTogJHtjfSBzY2FsZSgkezEtbCp0fSk7CgkJCW9wYWNpdHk6ICR7cy11KnR9CgkJYH19YXQoKTt2YXIgZHg9d2koYDxkaXY+PC9kaXY+YCk7ZnVuY3Rpb24gZngoZSx0KXtsdCh0LCEwKTtsZXQgbj1vbyh0LGBoZWlnaHRgLDMsMjApLHI9b28odCxgd2lkdGhgLDMsYDEwMCVgKSxpPW9vKHQsYGNvbG9yU2NoZW1lYCwzLGBncmF5YCksYT1vbyh0LGByb3VuZGVkU3R5bGVgLDMsYHJvdW5kZWQtZnVsbGApLG89Zm4oKCk9PmAke2EoKX0gYW5pbWF0ZS1wdWxzZWApO3ZhciBzPWR4KCk7bGV0IGM7cHIoZT0+e2JhKHMsMSxtYShbUihvKSxpKCk9PT1gZ3JheWAmJmBiZy1ncmF5LTIwMGAsaSgpPT09YGRhcmtHcmF5YCYmYGJnLWdyYXktMzAwYF0pKSxjPVNhKHMsYGAsYyxlKX0sWygpPT4oe2hlaWdodDpteShuKCkpLHdpZHRoOkZ1KHIoKSk/bXkocigpKTpyKCl9KV0pLGtpKGUscyksdXQoKX1mdW5jdGlvbiBweChlLHQpe2xldCBuPW9vKHQsYHNpemVgLDMsMjApO2Z4KGUse2NvbG9yU2NoZW1lOmBkYXJrR3JheWAsZ2V0IHdpZHRoKCl7cmV0dXJuIG4oKX0sZ2V0IGhlaWdodCgpe3JldHVybiBuKCl9fSl9dmFyIG14PUVpKGA8c3ZnPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE4IDZMNiAxOE02IDZsMTIgMTIiPjwvcGF0aD48L3N2Zz5gKTtmdW5jdGlvbiBoeChlLHQpe2xldCBuPXJvKHQsW2AkJHNsb3RzYCxgJCRldmVudHNgLGAkJGxlZ2FjeWBdKTt2YXIgcj1teCgpO1ZhKHIsKCk9Pih7dmlld0JveDpgMCAwIDI0IDI0YCx3aWR0aDpgMS4yZW1gLGhlaWdodDpgMS4yZW1gLC4uLm59KSksa2koZSxyKX12YXIgZ3g9d2koYDxidXR0b24gdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdj48IT48L2Rpdj48L2J1dHRvbj5gKTtmdW5jdGlvbiBfeChlLHQpe2x0KHQsITApO2xldCBuPW9vKHQsYGljb25PcmllbnRhdGlvbmAsMyxgcmlnaHRgKSxyPW9vKHQsYGljb25BbmltYXRpb25gLDMsYG5vbmVgKSxpPW9vKHQsYGljb25TY2FsZWAsMywhMSksYT1vbyh0LGBzaXplYCwzLGBtZGApLG89b28odCxgdmFyaWFudGAsMyxgZ2hvc3RgKSxzPW9vKHQsYGZvY3VzYCwzLGBwcmltYXJ5YCksYz1mbigoKT0+bigpPT09YHJpZ2h0YD8xOi0xKSxsPWZuKCgpPT5pKCk/MS40OjEuMiksdT1mbigoKT0+dC5pY29uKSxkPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQub25DbGljayYmdC5vbkNsaWNrKGUpfTt2YXIgZj1neCgpLHA9Vm4oZik7JGkoVm4ocCksKCk9PlIodSksKGUsdCk9Pnt0KGUse3dpZHRoOmAxZW1gLGhlaWdodDpgMWVtYH0pfSksWGUocCksWGUoZikscHIoZT0+e2JhKGYsMSxlLGBzdmVsdGUteXdvZm1sYCksZi5kaXNhYmxlZD10LmRpc2FibGVkLHphKGYsYGRhdGEtdGVzdGlkYCx0LnRlc3RJZCksemEoZixgYXJpYS1sYWJlbGAsdC5pY29uRGVzY3JpcHRpb24pLHphKGYsYGFyaWEtZGlzYWJsZWRgLHQuZGlzYWJsZWQpLGJhKHAsMSxtYShbYHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJgLHIoKT09PWBzcGluYCYmYGFuaW1hdGUtc3BpbmBdKSksU2EocCxgdHJhbnNmb3JtOiBzY2FsZSgke1IobCl9KSBzY2FsZVgoJHtSKGMpfSk7YCl9LFsoKT0+bWEoW2BidG4gYnRuLSR7bygpfSBidG4tJHthKCl9YCwhIXQuZGlzYWJsZWQmJmBidG4tZGlzYWJsZWRgLGlzKCk/YGN1cnNvci1hdXRvYDpgY3Vyc29yLXBvaW50ZXJgLHMoKT09PWBwcmltYXJ5YCYmYGJ1dHRvbi1mb2N1c2AscygpPT09YHNlY29uZGFyeWAmJmBidXR0b24tZm9jdXMtc2Vjb25kYXJ5YF0pXSksZ2koYGNsaWNrYCxmLGQpLGtpKGUsZiksdXQoKX1faShbYGNsaWNrYF0pO2V4cG9ydHtkXyBhcyAkLGp0IGFzICRpLFNsIGFzICRuLGFvIGFzICRyLCRmIGFzICR0LCRfIGFzIEEsZ2kgYXMgQWksc2QgYXMgQW4sc3MgYXMgQXIsVGggYXMgQXQsS18gYXMgQixWbiBhcyBCaSxVdSBhcyBCbixqbyBhcyBCcixIcCBhcyBCdCxGeSBhcyBDLElpIGFzIENpLF9kIGFzIENuLGJzIGFzIENyLHpoIGFzIEN0LG95IGFzIEQsRWkgYXMgRGksbmQgYXMgRG4sX3MgYXMgRHIsTWggYXMgRHQsbXkgYXMgRSx3aSBhcyBFaSxlZCBhcyBFbixocyBhcyBFcixGaCBhcyBFdCxKXyBhcyBGLCRyIGFzIEZpLEt1IGFzIEZuLHpvIGFzIEZyLFpwIGFzIEZ0LE9fIGFzIEcsVG4gYXMgR2ksJGwgYXMgR24scG8gYXMgR3IsenAgYXMgR3QsTl8gYXMgSCxVbiBhcyBIaSxMdSBhcyBIbix5byBhcyBIcixNcCBhcyBIdCxYIGFzIEkscHIgYXMgSWksWXUgYXMgSW4sVm8gYXMgSXIsWXAgYXMgSXQsbV8gYXMgSixwbiBhcyBKaSxIbCBhcyBKbix6IGFzIEpyLFJwIGFzIEp0LGdfIGFzIEssQ24gYXMgS2ksWWwgYXMgS24sQiBhcyBLcixKIGFzIEt0LEdfIGFzIEwsb3IgYXMgTGkscXUgYXMgTG4sQm8gYXMgTHIsWHAgYXMgTHQscnYgYXMgTSxwaSBhcyBNaSxpZCBhcyBNbixhcyBhcyBNcixFaCBhcyBNdCxZXyBhcyBOLFIgYXMgTmksWnUgYXMgTm4saXMgYXMgTnIsaWggYXMgTnQsYXkgYXMgTyxEaSBhcyBPaSxsZCBhcyBPbixscyBhcyBPcixraCBhcyBPdCxXXyBhcyBQLFhyIGFzIFBpLEd1IGFzIFBuLEpvIGFzIFByLGFtIGFzIFB0LGlfIGFzIFEsUHQgYXMgUWksd2wgYXMgUW4scm8gYXMgUXIsT3AgYXMgUXQsVV8gYXMgUixjciBhcyBSaSxXdSBhcyBSbixVIGFzIFJyLFdwIGFzIFJ0LFB5IGFzIFMsamkgYXMgU2ksZ2QgYXMgU24seXMgYXMgU3IsYWcgYXMgU3QsZ3kgYXMgVCxPaSBhcyBUaSx1ZCBhcyBUbixmcyBhcyBUcixJaCBhcyBUdCxqXyBhcyBVLGpuIGFzIFVpLE11IGFzIFVuLFYgYXMgVXIsQnAgYXMgVXQsTV8gYXMgVixIbiBhcyBWaSxWdSBhcyBWbixIIGFzIFZyLFZwIGFzIFZ0LERfIGFzIFcsd24gYXMgV2kscSBhcyBXbix2byBhcyBXcixGcCBhcyBXdCxzXyBhcyBYLE10IGFzIFhpLFJsIGFzIFhuLHNvIGFzIFhyLElwIGFzIFh0LHBfIGFzIFksZm4gYXMgWWksVyBhcyBZbixjbyBhcyBZcixQcCBhcyBZdCxhXyBhcyBaLEF0IGFzIFppLENsIGFzIFpuLG9vIGFzIFpyLGtwIGFzIFp0LFJ5IGFzIF8sR2kgYXMgX2ksVGQgYXMgX24sTmMgYXMgX3IsdWcgYXMgX3Qsc3ggYXMgYSxsdCBhcyBhYSxWYSBhcyBhaSxCZiBhcyBhbixsbCBhcyBhcixVZyBhcyBhdCxOeSBhcyBiLFJpIGFzIGJpLHlkIGFzIGJuLENzIGFzIGJyLGlnIGFzIGJ0LGx4IGFzIGMsWGUgYXMgY2EsVGEgYXMgY2ksU2YgYXMgY24sUWMgYXMgY3IsVmcgYXMgY3QsSHkgYXMgZCxtYSBhcyBkaSxHZCBhcyBkbixXYyBhcyBkcixOZyBhcyBkdCxrIGFzIGVhLGVvIGFzIGVpLGVwIGFzIGVuLGJsIGFzIGVyLG9fIGFzIGV0LHp5IGFzIGYsdWEgYXMgZmksVmQgYXMgZm4sR2MgYXMgZnIsT2cgYXMgZnQsR3kgYXMgZyxaaSBhcyBnaSx3ZCBhcyBnbixCYyBhcyBncix5ZyBhcyBndCxWeSBhcyBoLFFpIGFzIGhpLEVkIGFzIGhuLHpjIGFzIGhyLFRnIGFzIGh0LGZ4IGFzIGksdXQgYXMgaWEscWEgYXMgaWksRmYgYXMgaW4sc2wgYXMgaXIsdF8gYXMgaXQsaXYgYXMgaixoaSBhcyBqaSxmZCBhcyBqbix1cyBhcyBqcixEaCBhcyBqdCxldiBhcyBrLF9pIGFzIGtpLGNkIGFzIGtuLGNzIGFzIGtyLE9oIGFzIGt0LGV4IGFzIGwseCBhcyBsYSxTYSBhcyBsaSxiZiBhcyBsbixVYyBhcyBscixMZyBhcyBsdCxxeSBhcyBtLCRpIGFzIG1pLHpkIGFzIG1uLFZjIGFzIG1yLERnIGFzIG10LGh4IGFzIG4sTyBhcyBuYSxZYSBhcyBuaSxxZiBhcyBubix1bCBhcyBucixjXyBhcyBudCxjeCBhcyBvLGN0IGFzIG9hLHphIGFzIG9pLHpmIGFzIG9uLG9sIGFzIG9yLEhnIGFzIG90LFd5IGFzIHAsY2EgYXMgcGksSGQgYXMgcG4sSGMgYXMgcHIsRWcgYXMgcHQsaF8gYXMgcSxPbiBhcyBxaSxLbCBhcyBxbixtbyBhcyBxcixOcCBhcyBxdCxweCBhcyByLHN0IGFzIHJhLEphIGFzIHJpLFVmIGFzIHJuLGNsIGFzIHJyLGxfIGFzIHJ0LHV4IGFzIHMsWmUgYXMgc2EsTGEgYXMgc2ksRGYgYXMgc24sbmwgYXMgc3IsQmcgYXMgc3QsX3ggYXMgdCxBIGFzIHRhLCRhIGFzIHRpLFRwIGFzIHRuLGRsIGFzIHRyLHJfIGFzIHR0LEx5IGFzIHUsdSBhcyB1YSxiYSBhcyB1aSxSZCBhcyB1bixLYyBhcyB1cixGZyBhcyB1dCxKeSBhcyB2LFZpIGFzIHZpLFNkIGFzIHZuLFBjIGFzIHZyLHJnIGFzIHZ0LER5IGFzIHcsa2kgYXMgd2ksJHUgYXMgd24sZ3MgYXMgd3IsTGggYXMgd3QsSXkgYXMgeCxNaSBhcyB4aSx4ZCBhcyB4bix4cyBhcyB4cixvZyBhcyB4dCxNeSBhcyB5LEJpIGFzIHlpLGJkIGFzIHluLE1jIGFzIHlyLFZoIGFzIHl0LFZfIGFzIHosWG4gYXMgemksSHUgYXMgem4sTG8gYXMgenIsVXAgYXMgenR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGFyZWQta2IxeXFIYUEuanMubWFw"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://websocket-visitors.smartsupp.com/socket/?EIO=3\u0026transport=websocket","fqdn":"websocket-visitors.smartsupp.com","domain":"smartsupp.com","tld":"com"},"ip":{"addr":"3.73.30.134","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:32.135Z","timestamp":1785145412135,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsupp.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Wed, 24 Jun 2026 00:00:00 GMT","end":"Thu, 07 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"4F:1A:3B:79:00:E3:DC:1F:92:62:7C:DC:85:3A:BE:8C:D1:68:F2:57","sha256":"7F:93:E6:29:5D:CA:78:BD:30:0D:25:11:3B:E2:01:C9:DC:80:3C:80:90:3F:84:D2:72:1B:0D:42:F1:20:13:D9"}}},"request":{"raw":"GET /socket/?EIO=3\u0026transport=websocket HTTP/1.1\r\nHost: websocket-visitors.smartsupp.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-WebSocket-Version: 13\r\nOrigin: https://autolitefinances.pro\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: snpb3TSny/rRjZvMxcQTYg==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 27 Jul 2026 09:43:32 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: cV23ePw1RlvJrEEG9qIwIiPWoAI=\r\nSec-WebSocket-Version: 13\r\nWebSocket-Server: uWebSockets\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":224,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":207,"timings":{"blocked":0,"dns":71,"connect":89,"send":0,"wait":23,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/slick.min.css?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.795Z","timestamp":1785145403795,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/slick.min.css?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-49f\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":1183,"size_decoded":608,"mime_type":"text/css","magic":"ASCII text, with very long lines (1183), with no line terminators","md5":"e604b36469a31ba8ee500fb0dba1bae2","sha1":"d37061caa5128c33c7d179ec545b99e733dd33e4","sha256":"bf1313169f7c72406a7e854d919cd8f89d70b26225fddaa8c5e5042f54dc40b0","sha512":"c02e388c4f034ffc8afa0184db21f8809ed7b6254cc58e04666a703328f187188ada698a49cd1d8b81bc1215ad6fc3e7e6fffa94f58a6b6d67aafdaaccf9f2e8","ssdeep":"","tlshash":"de216b55019b161b4027e7122de3ea8a38d7f5525c3603d9fa80c308cd8fbad1de29ea","first_seen":"2023-04-06T18:31:04Z","last_seen":"2026-08-11T09:26:56.675799Z","times_seen":1690,"resource_available":false,"data":"LnNsaWNrLXNsaWRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tcy10b3VjaC1hY3Rpb246cGFuLXk7dG91Y2gtYWN0aW9uOnBhbi15Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uc2xpY2stbGlzdCwuc2xpY2stc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2t9LnNsaWNrLWxpc3R7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3BhZGRpbmc6MH0uc2xpY2stbGlzdDpmb2N1c3tvdXRsaW5lOm5vbmV9LnNsaWNrLWxpc3QuZHJhZ2dpbmd7Y3Vyc29yOnBvaW50ZXI7Y3Vyc29yOmhhbmR9LnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCwuc2xpY2stc2xpZGVyIC5zbGljay10cmFja3t0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uc2xpY2stdHJhY2t7cG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30uc2xpY2stdHJhY2s6YWZ0ZXIsLnNsaWNrLXRyYWNrOmJlZm9yZXtkaXNwbGF5OnRhYmxlO2NvbnRlbnQ6IiJ9LnNsaWNrLXRyYWNrOmFmdGVye2NsZWFyOmJvdGh9LnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNre3Zpc2liaWxpdHk6aGlkZGVufS5zbGljay1zbGlkZXtkaXNwbGF5Om5vbmU7ZmxvYXQ6bGVmdDtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjFweH1bZGlyPXJ0bF0gLnNsaWNrLXNsaWRle2Zsb2F0OnJpZ2h0fS5zbGljay1zbGlkZSBpbWd7ZGlzcGxheTpibG9ja30uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWd7ZGlzcGxheTpub25lfS5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWd7cG9pbnRlci1ldmVudHM6bm9uZX0uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRle2Rpc3BsYXk6YmxvY2t9LnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRle3Zpc2liaWxpdHk6aGlkZGVufS5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGV7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5zbGljay1hcnJvdy5zbGljay1oaWRkZW57ZGlzcGxheTpub25lfQ=="}},"time_used":220,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":220,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.811Z","timestamp":1785145403811,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-3509\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":13577,"size_decoded":4919,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (13479)","md5":"9ffeb32e2d9efbf8f70caabded242267","sha1":"3ad0c10e501ac2a9bfa18f9cd7e700219b378738","sha256":"5274f11e6fb32ae0cf2dfb9f8043272865c397a7c4223b4cfa7d50ea52fbde89","sha512":"8d6be545508a1c38278b8ad780c3758ae48a25e4e12eee443375aa56031d9b356f8c90f22d4f251140fa3f65603af40523165e33cae2e2d62fc78ec106e3d731","ssdeep":"192:5rprDN+sag6ifKIUpQI99P1tLm9kdgyq1+J3aCJQ+h4MPLORq:5rprxaefKI0LP19m4q1WW+h4Mjp","tlshash":"9952c8adb56679724eb721b8f03bd24f71b205de560d8940d19cc4f6282dc6e812bf78","first_seen":"2023-05-09T19:21:05Z","last_seen":"2026-08-12T03:58:48.191704Z","times_seen":929737,"resource_available":true,"data":"LyohIGpRdWVyeSBNaWdyYXRlIHYzLjQuMSB8IChjKSBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiJ1bmRlZmluZWQiPT10eXBlb2YgalF1ZXJ5Lm1pZ3JhdGVNdXRlJiYoalF1ZXJ5Lm1pZ3JhdGVNdXRlPSEwKSxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihlKXtyZXR1cm4gdChlLHdpbmRvdyl9KToib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9dChyZXF1aXJlKCJqcXVlcnkiKSx3aW5kb3cpOnQoalF1ZXJ5LHdpbmRvdyl9KGZ1bmN0aW9uKHMsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIDA8PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPS9eKFxkKylcLihcZCspXC4oXGQrKS8sbj1yLmV4ZWMoZSl8fFtdLG89ci5leGVjKHQpfHxbXSxhPTE7YTw9MzthKyspe2lmKCtvW2FdPCtuW2FdKXJldHVybiAxO2lmKCtuW2FdPCtvW2FdKXJldHVybi0xfXJldHVybiAwfShzLmZuLmpxdWVyeSxlKX1zLm1pZ3JhdGVWZXJzaW9uPSIzLjQuMSI7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtzLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcz1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFthcmd1bWVudHNbZV1dPSEwfSxzLm1pZ3JhdGVFbmFibGVQYXRjaGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylkZWxldGUgdFthcmd1bWVudHNbZV1dfSxzLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZD1mdW5jdGlvbihlKXtyZXR1cm4hdFtlXX0sbi5jb25zb2xlJiZuLmNvbnNvbGUubG9nJiYocyYmZSgiMy4wLjAiKSYmIWUoIjUuMC4wIil8fG4uY29uc29sZS5sb2coIkpRTUlHUkFURTogalF1ZXJ5IDMueC00LnggUkVRVUlSRUQiKSxzLm1pZ3JhdGVXYXJuaW5ncyYmbi5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIHBsdWdpbiBsb2FkZWQgbXVsdGlwbGUgdGltZXMiKSxuLmNvbnNvbGUubG9nKCJKUU1JR1JBVEU6IE1pZ3JhdGUgaXMgaW5zdGFsbGVkIisocy5taWdyYXRlTXV0ZT8iIjoiIHdpdGggbG9nZ2luZyBhY3RpdmUiKSsiLCB2ZXJzaW9uICIrcy5taWdyYXRlVmVyc2lvbikpO3ZhciBvPXt9O2Z1bmN0aW9uIHUoZSx0KXt2YXIgcj1uLmNvbnNvbGU7IXMubWlncmF0ZUlzUGF0Y2hFbmFibGVkKGUpfHxzLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzJiZvW3RdfHwob1t0XT0hMCxzLm1pZ3JhdGVXYXJuaW5ncy5wdXNoKHQrIiBbIitlKyJdIiksciYmci53YXJuJiYhcy5taWdyYXRlTXV0ZSYmKHIud2FybigiSlFNSUdSQVRFOiAiK3QpLHMubWlncmF0ZVRyYWNlJiZyLnRyYWNlJiZyLnRyYWNlKCkpKX1mdW5jdGlvbiByKGUsdCxyLG4sbyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUobixvKSxyfSxzZXQ6ZnVuY3Rpb24oZSl7dShuLG8pLHI9ZX19KX1mdW5jdGlvbiBhKGUsdCxyLG4sbyl7dmFyIGE9ZVt0XTtlW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIG8mJnUobixvKSwocy5taWdyYXRlSXNQYXRjaEVuYWJsZWQobik/cjphfHxzLm5vb3ApLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYyhlLHQscixuLG8pe2lmKCFvKXRocm93IG5ldyBFcnJvcigiTm8gd2FybmluZyBtZXNzYWdlIHByb3ZpZGVkIik7cmV0dXJuIGEoZSx0LHIsbixvKSwwfWZ1bmN0aW9uIGkoZSx0LHIsbil7cmV0dXJuIGEoZSx0LHIsbiksMH1zLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzPSEwLHMubWlncmF0ZVdhcm5pbmdzPVtdLHZvaWQgMD09PXMubWlncmF0ZVRyYWNlJiYocy5taWdyYXRlVHJhY2U9ITApLHMubWlncmF0ZVJlc2V0PWZ1bmN0aW9uKCl7bz17fSxzLm1pZ3JhdGVXYXJuaW5ncy5sZW5ndGg9MH0sIkJhY2tDb21wYXQiPT09bi5kb2N1bWVudC5jb21wYXRNb2RlJiZ1KCJxdWlya3MiLCJqUXVlcnkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBRdWlya3MgTW9kZSIpO3ZhciBkLGwscCxmPXt9LG09cy5mbi5pbml0LHk9cy5maW5kLGg9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdLyxnPS9cWyhccypbLVx3XStccyopKFt+fF4kKl0/PSlccyooWy1cdyNdKj8jWy1cdyNdKilccypcXS9nLHY9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7Zm9yKGQgaW4gaShzLmZuLCJpbml0IixmdW5jdGlvbihlKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBzLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZCgic2VsZWN0b3ItZW1wdHktaWQiKSYmInN0cmluZyI9PXR5cGVvZiBlJiYiIyI9PT1lJiYodSgic2VsZWN0b3ItZW1wdHktaWQiLCJqUXVlcnkoICcjJyApIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIiksdFswXT1bXSksbS5hcHBseSh0aGlzLHQpfSwic2VsZWN0b3ItZW1wdHktaWQiKSxzLmZuLmluaXQucHJvdG90eXBlPXMuZm4saShzLCJmaW5kIixmdW5jdGlvbih0KXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmaC50ZXN0KHQpKXRyeXtuLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCl9Y2F0Y2goZSl7dD10LnJlcGxhY2UoZyxmdW5jdGlvbihlLHQscixuKXtyZXR1cm4iWyIrdCtyKyciJytuKyciXSd9KTt0cnl7bi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpLHUoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgbXVzdCBiZSBxdW90ZWQ6ICIrclswXSksclswXT10fWNhdGNoKGUpe3UoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgd2FzIG5vdCBmaXhlZDogIityWzBdKX19cmV0dXJuIHkuYXBwbHkodGhpcyxyKX0sInNlbGVjdG9yLWhhc2giKSx5KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh5LGQpJiYocy5maW5kW2RdPXlbZF0pO2Mocy5mbiwic2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LCJzaXplIiwialF1ZXJ5LmZuLnNpemUoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkOyB1c2UgdGhlIC5sZW5ndGggcHJvcGVydHkiKSxjKHMsInBhcnNlSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCJwYXJzZUpTT04iLCJqUXVlcnkucGFyc2VKU09OIGlzIGRlcHJlY2F0ZWQ7IHVzZSBKU09OLnBhcnNlIiksYyhzLCJob2xkUmVhZHkiLHMuaG9sZFJlYWR5LCJob2xkUmVhZHkiLCJqUXVlcnkuaG9sZFJlYWR5IGlzIGRlcHJlY2F0ZWQiKSxjKHMsInVuaXF1ZSIscy51bmlxdWVTb3J0LCJ1bmlxdWUiLCJqUXVlcnkudW5pcXVlIGlzIGRlcHJlY2F0ZWQ7IHVzZSBqUXVlcnkudW5pcXVlU29ydCIpLHIocy5leHByLCJmaWx0ZXJzIixzLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByLmZpbHRlcnMgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKSxyKHMuZXhwciwiOiIscy5leHByLnBzZXVkb3MsImV4cHItcHJlLXBzZXVkb3MiLCJqUXVlcnkuZXhwclsnOiddIGlzIGRlcHJlY2F0ZWQ7IHVzZSBqUXVlcnkuZXhwci5wc2V1ZG9zIiksZSgiMy4xLjEiKSYmYyhzLCJ0cmltIixmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT8iIjooZSsiIikucmVwbGFjZSh2LCIkMSIpfSwidHJpbSIsImpRdWVyeS50cmltIGlzIGRlcHJlY2F0ZWQ7IHVzZSBTdHJpbmcucHJvdG90eXBlLnRyaW0iKSxlKCIzLjIuMCIpJiYoYyhzLCJub2RlTmFtZSIsZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dC50b0xvd2VyQ2FzZSgpfSwibm9kZU5hbWUiLCJqUXVlcnkubm9kZU5hbWUgaXMgZGVwcmVjYXRlZCIpLGMocywiaXNBcnJheSIsQXJyYXkuaXNBcnJheSwiaXNBcnJheSIsImpRdWVyeS5pc0FycmF5IGlzIGRlcHJlY2F0ZWQ7IHVzZSBBcnJheS5pc0FycmF5IikpLGUoIjMuMy4wIikmJihjKHMsImlzTnVtZXJpYyIsZnVuY3Rpb24oZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuKCJudW1iZXIiPT10fHwic3RyaW5nIj09dCkmJiFpc05hTihlLXBhcnNlRmxvYXQoZSkpfSwiaXNOdW1lcmljIiwialF1ZXJ5LmlzTnVtZXJpYygpIGlzIGRlcHJlY2F0ZWQiKSxzLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7ZlsiW29iamVjdCAiK3QrIl0iXT10LnRvTG93ZXJDYXNlKCl9KSxjKHMsInR5cGUiLGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9mW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfSwidHlwZSIsImpRdWVyeS50eXBlIGlzIGRlcHJlY2F0ZWQiKSxjKHMsImlzRnVuY3Rpb24iLGZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfSwiaXNGdW5jdGlvbiIsImpRdWVyeS5pc0Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCIpLGMocywiaXNXaW5kb3ciLGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LCJpc1dpbmRvdyIsImpRdWVyeS5pc1dpbmRvdygpIGlzIGRlcHJlY2F0ZWQiKSkscy5hamF4JiYobD1zLmFqYXgscD0vKD0pXD8oPz0mfCQpfFw/XD8vLGkocywiYWpheCIsZnVuY3Rpb24oKXt2YXIgZT1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5wcm9taXNlJiYoYyhlLCJzdWNjZXNzIixlLmRvbmUsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5zdWNjZXNzIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSxjKGUsImVycm9yIixlLmZhaWwsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5lcnJvciBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYyhlLCJjb21wbGV0ZSIsZS5hbHdheXMsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5jb21wbGV0ZSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIikpLGV9LCJqcVhIUi1tZXRob2RzIiksZSgiNC4wLjAiKXx8cy5hamF4UHJlZmlsdGVyKCIranNvbiIsZnVuY3Rpb24oZSl7ITEhPT1lLmpzb25wJiYocC50ZXN0KGUudXJsKXx8InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZwLnRlc3QoZS5kYXRhKSkmJnUoImpzb25wLXByb21vdGlvbiIsIkpTT04tdG8tSlNPTlAgYXV0by1wcm9tb3Rpb24gaXMgZGVwcmVjYXRlZCIpfSkpO3ZhciBqPXMuZm4ucmVtb3ZlQXR0cixiPXMuZm4udG9nZ2xlQ2xhc3Msdz0vXFMrL2c7ZnVuY3Rpb24geChlKXtyZXR1cm4gZS5yZXBsYWNlKC8tKFthLXpdKS9nLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pfWkocy5mbiwicmVtb3ZlQXR0ciIsZnVuY3Rpb24oZSl7dmFyIHI9dGhpcyxuPSExO3JldHVybiBzLmVhY2goZS5tYXRjaCh3KSxmdW5jdGlvbihlLHQpe3MuZXhwci5tYXRjaC5ib29sLnRlc3QodCkmJnIuZWFjaChmdW5jdGlvbigpe2lmKCExIT09cyh0aGlzKS5wcm9wKHQpKXJldHVybiEobj0hMCl9KSxuJiYodSgicmVtb3ZlQXR0ci1ib29sIiwialF1ZXJ5LmZuLnJlbW92ZUF0dHIgbm8gbG9uZ2VyIHNldHMgYm9vbGVhbiBwcm9wZXJ0aWVzOiAiK3QpLHIucHJvcCh0LCExKSl9KSxqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sInJlbW92ZUF0dHItYm9vbCIpLGkocy5mbiwidG9nZ2xlQ2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYiYm9vbGVhbiIhPXR5cGVvZiB0P2IuYXBwbHkodGhpcyxhcmd1bWVudHMpOih1KCJ0b2dnbGVDbGFzcy1ib29sIiwialF1ZXJ5LmZuLnRvZ2dsZUNsYXNzKCBib29sZWFuICkgaXMgZGVwcmVjYXRlZCIpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0QXR0cmlidXRlJiZ0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7ZSYmcy5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCFlJiYhMSE9PXQmJnMuZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pKX0sInRvZ2dsZUNsYXNzLWJvb2wiKTt2YXIgUSxBLFI9ITEsQz0vXlthLXpdLyxOPS9eKD86Qm9yZGVyKD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT8oPzpXaWR0aHwpfCg/Ok1hcmdpbnxQYWRkaW5nKT8oPzpUb3B8UmlnaHR8Qm90dG9tfExlZnQpP3woPzpNaW58TWF4KT8oPzpXaWR0aHxIZWlnaHQpKSQvO3Muc3dhcCYmcy5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiLCJyZWxpYWJsZU1hcmdpblJpZ2h0Il0sZnVuY3Rpb24oZSx0KXt2YXIgcj1zLmNzc0hvb2tzW3RdJiZzLmNzc0hvb2tzW3RdLmdldDtyJiYocy5jc3NIb29rc1t0XS5nZXQ9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gUj0hMCxlPXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLFI9ITEsZX0pfSksaShzLCJzd2FwIixmdW5jdGlvbihlLHQscixuKXt2YXIgbyxhLGk9e307Zm9yKGEgaW4gUnx8dSgic3dhcCIsImpRdWVyeS5zd2FwKCkgaXMgdW5kb2N1bWVudGVkIGFuZCBkZXByZWNhdGVkIiksdClpW2FdPWUuc3R5bGVbYV0sZS5zdHlsZVthXT10W2FdO2ZvcihhIGluIG89ci5hcHBseShlLG58fFtdKSx0KWUuc3R5bGVbYV09aVthXTtyZXR1cm4gb30sInN3YXAiKSxlKCIzLjQuMCIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiYocy5jc3NQcm9wcz1uZXcgUHJveHkocy5jc3NQcm9wc3x8e30se3NldDpmdW5jdGlvbigpe3JldHVybiB1KCJjc3NQcm9wcyIsImpRdWVyeS5jc3NQcm9wcyBpcyBkZXByZWNhdGVkIiksUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pKSxlKCI0LjAuMCIpPyhBPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsZ3JpZEFyZWE6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TdGFydDohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1N0YXJ0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sInVuZGVmaW5lZCIhPXR5cGVvZiBQcm94eT9zLmNzc051bWJlcj1uZXcgUHJveHkoQSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKSxSZWZsZWN0LmdldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNldDpmdW5jdGlvbigpe3JldHVybiB1KCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIiksUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOnMuY3NzTnVtYmVyPUEpOkE9cy5jc3NOdW1iZXIsUT1zLmZuLmNzcyxpKHMuZm4sImNzcyIsZnVuY3Rpb24oZSx0KXt2YXIgcixuLG89dGhpcztyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYhQXJyYXkuaXNBcnJheShlKT8ocy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtzLmZuLmNzcy5jYWxsKG8sZSx0KX0pLHRoaXMpOigibnVtYmVyIj09dHlwZW9mIHQmJihyPXgoZSksbj1yLEMudGVzdChuKSYmTi50ZXN0KG5bMF0udG9VcHBlckNhc2UoKStuLnNsaWNlKDEpKXx8QVtyXXx8dSgiY3NzLW51bWJlciIsJ051bWJlci10eXBlZCB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgZm9yIGpRdWVyeS5mbi5jc3MoICInK2UrJyIsIHZhbHVlICknKSksUS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSwiY3NzLW51bWJlciIpO3ZhciBTLFAsayxILEU9cy5kYXRhO2kocywiZGF0YSIsZnVuY3Rpb24oZSx0LHIpe3ZhciBuLG8sYTtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQmJjI9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoYSBpbiBuPXMuaGFzRGF0YShlKSYmRS5jYWxsKHRoaXMsZSksbz17fSx0KWEhPT14KGEpPyh1KCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK2EpLG5bYV09dFthXSk6b1thXT10W2FdO3JldHVybiBFLmNhbGwodGhpcyxlLG8pLHR9cmV0dXJuIHQmJiJzdHJpbmciPT10eXBlb2YgdCYmdCE9PXgodCkmJihuPXMuaGFzRGF0YShlKSYmRS5jYWxsKHRoaXMsZSkpJiZ0IGluIG4/KHUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIrdCksMjxhcmd1bWVudHMubGVuZ3RoJiYoblt0XT1yKSxuW3RdKTpFLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImRhdGEtY2FtZWxDYXNlIikscy5meCYmKGs9cy5Ud2Vlbi5wcm90b3R5cGUucnVuLEg9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGkocy5Ud2Vlbi5wcm90b3R5cGUsInJ1biIsZnVuY3Rpb24oKXsxPHMuZWFzaW5nW3RoaXMuZWFzaW5nXS5sZW5ndGgmJih1KCJlYXNpbmctb25lLWFyZyIsIidqUXVlcnkuZWFzaW5nLiIrdGhpcy5lYXNpbmcudG9TdHJpbmcoKSsiJyBzaG91bGQgdXNlIG9ubHkgb25lIGFyZ3VtZW50Iikscy5lYXNpbmdbdGhpcy5lYXNpbmddPUgpLGsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiZWFzaW5nLW9uZS1hcmciKSxTPXMuZnguaW50ZXJ2YWwsUD0ialF1ZXJ5LmZ4LmludGVydmFsIGlzIGRlcHJlY2F0ZWQiLG4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocy5meCwiaW50ZXJ2YWwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5kb2N1bWVudC5oaWRkZW58fHUoImZ4LWludGVydmFsIixQKSxzLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZCgiZngtaW50ZXJ2YWwiKSYmdm9pZCAwPT09Uz8xMzpTfSxzZXQ6ZnVuY3Rpb24oZSl7dSgiZngtaW50ZXJ2YWwiLFApLFM9ZX19KSk7dmFyIE09cy5mbi5sb2FkLHE9cy5ldmVudC5hZGQsTz1zLmV2ZW50LmZpeDtzLmV2ZW50LnByb3BzPVtdLHMuZXZlbnQuZml4SG9va3M9e30scihzLmV2ZW50LnByb3BzLCJjb25jYXQiLHMuZXZlbnQucHJvcHMuY29uY2F0LCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQucHJvcHMuY29uY2F0KCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGkocy5ldmVudCwiZml4IixmdW5jdGlvbihlKXt2YXIgdCxyPWUudHlwZSxuPXRoaXMuZml4SG9va3Nbcl0sbz1zLmV2ZW50LnByb3BzO2lmKG8ubGVuZ3RoKXt1KCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQucHJvcHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIrby5qb2luKCkpO3doaWxlKG8ubGVuZ3RoKXMuZXZlbnQuYWRkUHJvcChvLnBvcCgpKX1pZihuJiYhbi5fbWlncmF0ZWRfJiYobi5fbWlncmF0ZWRfPSEwLHUoImV2ZW50LW9sZC1wYXRjaCIsImpRdWVyeS5ldmVudC5maXhIb29rcyBhcmUgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDogIityKSwobz1uLnByb3BzKSYmby5sZW5ndGgpKXdoaWxlKG8ubGVuZ3RoKXMuZXZlbnQuYWRkUHJvcChvLnBvcCgpKTtyZXR1cm4gdD1PLmNhbGwodGhpcyxlKSxuJiZuLmZpbHRlcj9uLmZpbHRlcih0LGUpOnR9LCJldmVudC1vbGQtcGF0Y2giKSxpKHMuZXZlbnQsImFkZCIsZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PW4mJiJsb2FkIj09PXQmJiJjb21wbGV0ZSI9PT1uLmRvY3VtZW50LnJlYWR5U3RhdGUmJnUoImxvYWQtYWZ0ZXItZXZlbnQiLCJqUXVlcnkod2luZG93KS5vbignbG9hZCcuLi4pIGNhbGxlZCBhZnRlciBsb2FkIGV2ZW50IG9jY3VycmVkIikscS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJsb2FkLWFmdGVyLWV2ZW50Iikscy5lYWNoKFsibG9hZCIsInVubG9hZCIsImVycm9yIl0sZnVuY3Rpb24oZSx0KXtpKHMuZm4sdCxmdW5jdGlvbigpe3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4ibG9hZCI9PT10JiYic3RyaW5nIj09dHlwZW9mIGVbMF0/TS5hcHBseSh0aGlzLGUpOih1KCJzaG9ydGhhbmQtcmVtb3ZlZC12MyIsImpRdWVyeS5mbi4iK3QrIigpIGlzIGRlcHJlY2F0ZWQiKSxlLnNwbGljZSgwLDAsdCksYXJndW1lbnRzLmxlbmd0aD90aGlzLm9uLmFwcGx5KHRoaXMsZSk6KHRoaXMudHJpZ2dlckhhbmRsZXIuYXBwbHkodGhpcyxlKSx0aGlzKSl9LCJzaG9ydGhhbmQtcmVtb3ZlZC12MyIpfSkscy5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUscil7YyhzLmZuLHIsZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24ocixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKHIpfSwic2hvcnRoYW5kLWRlcHJlY2F0ZWQtdjMiLCJqUXVlcnkuZm4uIityKyIoKSBldmVudCBzaG9ydGhhbmQgaXMgZGVwcmVjYXRlZCIpfSkscyhmdW5jdGlvbigpe3Mobi5kb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9KSxzLmV2ZW50LnNwZWNpYWwucmVhZHk9e3NldHVwOmZ1bmN0aW9uKCl7dGhpcz09PW4uZG9jdW1lbnQmJnUoInJlYWR5LWV2ZW50IiwiJ3JlYWR5JyBldmVudCBpcyBkZXByZWNhdGVkIil9fSxjKHMuZm4sImJpbmQiLGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdGhpcy5vbihlLG51bGwsdCxyKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmJpbmQoKSBpcyBkZXByZWNhdGVkIiksYyhzLmZuLCJ1bmJpbmQiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub2ZmKGUsbnVsbCx0KX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLnVuYmluZCgpIGlzIGRlcHJlY2F0ZWQiKSxjKHMuZm4sImRlbGVnYXRlIixmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gdGhpcy5vbih0LGUscixuKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpLGMocy5mbiwidW5kZWxlZ2F0ZSIsZnVuY3Rpb24oZSx0LHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihlLCIqKiIpOnRoaXMub2ZmKHQsZXx8IioqIixyKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLnVuZGVsZWdhdGUoKSBpcyBkZXByZWNhdGVkIiksYyhzLmZuLCJob3ZlciIsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsZSkub24oIm1vdXNlbGVhdmUiLHR8fGUpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uaG92ZXIoKSBpcyBkZXByZWNhdGVkIik7ZnVuY3Rpb24gVChlKXt2YXIgdD1uLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIHQuYm9keS5pbm5lckhUTUw9ZSx0LmJvZHkmJnQuYm9keS5pbm5lckhUTUx9dmFyIEY9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpO3MuVU5TQUZFX3Jlc3RvcmVMZWdhY3lIdG1sUHJlZmlsdGVyPWZ1bmN0aW9uKCl7cy5taWdyYXRlRW5hYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpfSxpKHMsImh0bWxQcmVmaWx0ZXIiLGZ1bmN0aW9uKGUpe3ZhciB0LHI7cmV0dXJuKHI9KHQ9ZSkucmVwbGFjZShGLCI8JDE+PC8kMj4iKSkhPT10JiZUKHQpIT09VChyKSYmdSgic2VsZi1jbG9zZWQtdGFncyIsIkhUTUwgdGFncyBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZCBhbmQgY2xvc2VkOiAiK3QpLGUucmVwbGFjZShGLCI8JDE+PC8kMj4iKX0sInNlbGYtY2xvc2VkLXRhZ3MiKSxzLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpO3ZhciBELFcsXyxJPXMuZm4ub2Zmc2V0O3JldHVybiBpKHMuZm4sIm9mZnNldCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzWzBdO3JldHVybiFlfHxlLm5vZGVUeXBlJiZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdD9JLmFwcGx5KHRoaXMsYXJndW1lbnRzKToodSgib2Zmc2V0LXZhbGlkLWVsZW0iLCJqUXVlcnkuZm4ub2Zmc2V0KCkgcmVxdWlyZXMgYSB2YWxpZCBET00gZWxlbWVudCIpLGFyZ3VtZW50cy5sZW5ndGg/dGhpczp2b2lkIDApfSwib2Zmc2V0LXZhbGlkLWVsZW0iKSxzLmFqYXgmJihEPXMucGFyYW0saShzLCJwYXJhbSIsZnVuY3Rpb24oZSx0KXt2YXIgcj1zLmFqYXhTZXR0aW5ncyYmcy5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWw7cmV0dXJuIHZvaWQgMD09PXQmJnImJih1KCJwYXJhbS1hamF4LXRyYWRpdGlvbmFsIiwialF1ZXJ5LnBhcmFtKCkgbm8gbG9uZ2VyIHVzZXMgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCIpLHQ9ciksRC5jYWxsKHRoaXMsZSx0KX0sInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiKSksYyhzLmZuLCJhbmRTZWxmIixzLmZuLmFkZEJhY2ssImFuZFNlbGYiLCJqUXVlcnkuZm4uYW5kU2VsZigpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQsIHVzZSBqUXVlcnkuZm4uYWRkQmFjaygpIikscy5EZWZlcnJlZCYmKFc9cy5EZWZlcnJlZCxfPVtbInJlc29sdmUiLCJkb25lIixzLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxzLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLHMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLHMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLHMuQ2FsbGJhY2tzKCJtZW1vcnkiKSxzLkNhbGxiYWNrcygibWVtb3J5IildXSxpKHMsIkRlZmVycmVkIixmdW5jdGlvbihlKXt2YXIgYT1XKCksaT1hLnByb21pc2UoKTtmdW5jdGlvbiB0KCl7dmFyIG89YXJndW1lbnRzO3JldHVybiBzLkRlZmVycmVkKGZ1bmN0aW9uKG4pe3MuZWFjaChfLGZ1bmN0aW9uKGUsdCl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIG9bZV0mJm9bZV07YVt0WzFdXShmdW5jdGlvbigpe3ZhciBlPXImJnIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnByb21pc2U/ZS5wcm9taXNlKCkuZG9uZShuLnJlc29sdmUpLmZhaWwobi5yZWplY3QpLnByb2dyZXNzKG4ubm90aWZ5KTpuW3RbMF0rIldpdGgiXSh0aGlzPT09aT9uLnByb21pc2UoKTp0aGlzLHI/W2VdOmFyZ3VtZW50cyl9KX0pLG89bnVsbH0pLnByb21pc2UoKX1yZXR1cm4gYyhhLCJwaXBlIix0LCJkZWZlcnJlZC1waXBlIiwiZGVmZXJyZWQucGlwZSgpIGlzIGRlcHJlY2F0ZWQiKSxjKGksInBpcGUiLHQsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpLGUmJmUuY2FsbChhLGEpLGF9LCJkZWZlcnJlZC1waXBlIikscy5EZWZlcnJlZC5leGNlcHRpb25Ib29rPVcuZXhjZXB0aW9uSG9vayksc30pOwo="}},"time_used":519,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":519,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/bootstrap/v5/tp.widget.bootstrap.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.813Z","timestamp":1785145403813,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /bootstrap/v5/tp.widget.bootstrap.min.js?ver=1.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:14 GMT\r\netag: W/\"65a77ac2-55dc\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":21980,"size_decoded":6625,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (21924)","md5":"d827e4237edcfe58a530cf8021154f67","sha1":"b139e7ded09584e6b17dc8dce930350223865ace","sha256":"02e5bf47b2473c1da7a39a25b14f0f5d9857142842d33def047e492f9f610cb9","sha512":"e7778f10cb8745a720290df0b4b50aa35dc3c5f63b714a9dce9d8925304d794a5be732d0aaff20b0c2e71f2a8536b7b44836cb93849ef3778eb2cadf78f42aea","ssdeep":"384:BzP7G3iA2VmwqU3o+Vxfz3y2uyeVdPkmsuyqAGB+WVYJv5Uep/FR69f:BzP75A/wqU3o+bz3y2uyKAqAxJvCoTYf","tlshash":"c9a2d5e931a1f476428a6169543f7209b2b2346979c5d488b53dc8f26fa0c9e7133fbc","first_seen":"2023-10-26T16:44:23Z","last_seen":"2026-08-10T18:53:32.489113Z","times_seen":7803,"resource_available":true,"data":"IWZ1bmN0aW9uIG4obyxzLHIpe2Z1bmN0aW9uIGEodCxlKXtpZighc1t0XSl7aWYoIW9bdF0pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZpKXJldHVybiBpKHQsITApO2lmKGwpcmV0dXJuIGwodCwhMCk7dGhyb3coZT1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIit0KyInIikpLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGV9aT1zW3RdPXtleHBvcnRzOnt9fSxvW3RdWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3JldHVybiBhKG9bdF1bMV1bZV18fGUpfSxpLGkuZXhwb3J0cyxuLG8scyxyKX1yZXR1cm4gc1t0XS5leHBvcnRzfWZvcih2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxlPTA7ZTxyLmxlbmd0aDtlKyspYShyW2VdKTtyZXR1cm4gYX0oezE6W2Z1bmN0aW9uKGUsdCxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2kuRU1QVFlfV0lER0VUX0lEPSIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLGkuTEFaWV9MT0FERURfV0lER0VUUz1bIjU0ZDM5Njk1NzY0ZWE5MDdjMGYzNDgyNSIsIjU3NzI1OGZiMzFmMDIzMDZlNGUzYWFmOSJdfSx7fV0sMjpbZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPXRbaV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLmtleSxuKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pOyhmdW5jdGlvbihlLHQsaSl7dCYmbihlLnByb3RvdHlwZSx0KSxpJiZuKGUsaSl9KShzLFt7a2V5OiJtdXRhdGlvbkhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKGQpe3ZhciBlPSEwLHQ9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbixvPWRbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0obj1vLm5leHQoKSkuZG9uZSk7ZT0hMCl7dmFyIHM9bi52YWx1ZTtpZigiY2hpbGRMaXN0Ij09PXMudHlwZSl7dmFyIHI9ITAsYT0hMSxsPXZvaWQgMDt0cnl7Zm9yKHZhciBjLHU9cy5hZGRlZE5vZGVzW1N5bWJvbC5pdGVyYXRvcl0oKTshKHI9KGM9dS5uZXh0KCkpLmRvbmUpO3I9ITApMT09PWMudmFsdWUubm9kZVR5cGUmJnRoaXMuaGFuZGxlTXV0YXRpb25zKCl9Y2F0Y2goZSl7YT0hMCxsPWV9ZmluYWxseXt0cnl7IXImJnUucmV0dXJuJiZ1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBsfX19fX1jYXRjaChlKXt0PSEwLGk9ZX1maW5hbGx5e3RyeXshZSYmby5yZXR1cm4mJm8ucmV0dXJuKCl9ZmluYWxseXtpZih0KXRocm93IGl9fX19LHtrZXk6ImRlYm91bmNlIix2YWx1ZTpmdW5jdGlvbihuLG8pe3ZhciBzPXZvaWQgMDtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KGUpLGk9MDtpPGU7aSsrKXRbaV09YXJndW1lbnRzW2ldO3dpbmRvdy5jbGVhclRpbWVvdXQocykscz13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe24uYXBwbHkobnVsbCx0KX0sbyl9fX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZG9jdW1lbnQuYm9keSx7YXR0cmlidXRlczohMSxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfX0se2tleToic3RvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9ic2VydmVyLnRha2VSZWNvcmRzKCk7dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksMDxlLmxlbmd0aCYmdGhpcy5tdXRhdGlvbkhhbmRsZXIoZSl9fV0pO3ZhciBvPXM7ZnVuY3Rpb24gcyhlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpO3RoaXMuZG9jdW1lbnQ9ZSx0aGlzLm9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMubXV0YXRpb25IYW5kbGVyLmJpbmQodGhpcykpLHRoaXMuaGFuZGxlTXV0YXRpb25zPXRoaXMuZGVib3VuY2UodCwyMDApLHRoaXMuc3RhcnQ9dGhpcy5zdGFydC5iaW5kKHRoaXMpLHRoaXMuc3RvcD10aGlzLnN0b3AuYmluZCh0aGlzKX1pLmRlZmF1bHQ9b30se31dLDM6W2Z1bmN0aW9uKGUsdCxpKXsidXNlIHN0cmljdCI7dmFyIGM9ITE7ZnVuY3Rpb24gaChlKXt0cnl7aWYoYylyZXR1cm47dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJhcHBsaWNhdGlvbi9sZCtqc29uIiksdC5pbm5lckhUTUw9SlNPTi5zdHJpbmdpZnkoZSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVDb21tZW50KCJBZGRlZCBieSBUcnVzdHBpbG90IikpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVDb21tZW50KCIvQWRkZWQgYnkgVHJ1c3RwaWxvdCIpKSxjPSEwfWNhdGNoKGUpe319dmFyIGY9ZSgiLi94aHIuanMiKTt2YXIgbT17cHJvZHVjdFJldmlld3NNdWx0aVNvdXJjZVNFTzoiNTc2M2JjY2FlMGEwNmQwOGU4MDllY2JiIixwcm9kdWN0UmV2aWV3c1NFTzoiNTcxNzc5NjgxNmY2MzAwNDM4NjhlMmU4Iixwcm9kdWN0UmV2aWV3c0Nhcm91c2VsOiI2MGY1MzdiNWIwZjE2MzlkZTFmZTA0OGMifTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoYylyZXR1cm4hMTtpZihlLnNjaGVtYVR5cGUmJmUubG9jYXRpb24pcmV0dXJuIGE9KHI9ZSkuYnVzaW5lc3N1bml0SWQsbD1yLmxvY2F0aW9uLHU9ci5sb2NhbGUscj1yLnRlbXBsYXRlSWQscj1bInVybD0iK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZiksInRlbXBsYXRlSWQ9IityLCJsb2NhbGU9Iit1XS5qb2luKCImIiksZi54aHJHZXQoe3VybDoiaHR0cHM6Ly93aWRnZXQudHJ1c3RwaWxvdC5jb20iKygiL2RhdGEvanNvbmxkL2J1c2luZXNzLXVuaXQvIithKyIvbG9jYXRpb24vIitsKSsiPyIrcixzdWNjZXNzOmZ1bmN0aW9uKGUpe2UudXJsPWRvY3VtZW50LmxvY2F0aW9uLmhyZWYsZVsiQGlkIl09ZG9jdW1lbnQubG9jYXRpb24uaHJlZixoKGUpfSxlcnJvcjpmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfX0pLCEwO2lmKGUuc2t1KXt1PWUudGVtcGxhdGVJZD09PW0ucHJvZHVjdFJldmlld3NDYXJvdXNlbDtpZigoZS50ZW1wbGF0ZUlkPT09bS5wcm9kdWN0UmV2aWV3c1NFT3x8ZS50ZW1wbGF0ZUlkPT09bS5wcm9kdWN0UmV2aWV3c011bHRpU291cmNlU0VPKSYmZS5uYW1lfHx1JiYiUHJvZHVjdCI9PT1lLnNjaGVtYVR5cGUpcmV0dXJuIGw9KGE9ZSkuYnVzaW5lc3N1bml0SWQscj1hLmxvY2FsZSxlPWEudGVtcGxhdGVJZCx0PWEubmFtZSxpPWEuc2t1LGQ9YS5yZXZpZXdudW1iZXIsbj1hLnByaWNlLG89YS5wcmljZUN1cnJlbmN5LGE9YS5hdmFpbGFiaWxpdHkscj1yJiZyLnNwbGl0KCItIilbMF0sbD0iaHR0cHM6Ly93aWRnZXQudHJ1c3RwaWxvdC5jb20iKyhlPT09bS5wcm9kdWN0UmV2aWV3c011bHRpU291cmNlU0VPPyIvZGF0YS9qc29ubGQvYnVzaW5lc3MtdW5pdC8iK2wrIi9wcm9kdWN0LWltcG9ydGVkIjoiL2RhdGEvanNvbmxkL2J1c2luZXNzLXVuaXQvIitsKyIvcHJvZHVjdCIpKyI/c2t1PSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpKyImbnVtYmVyT2ZSZXZpZXdzPSIrKGR8fDEwKSsodD8iJnByb2R1Y3ROYW1lPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpOiIiKSsiJmxhbmd1YWdlPSIrcisiJnRlbXBsYXRlSWQ9IitlKyImdXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4rd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxzPW4mJm8mJmE/eyJAdHlwZSI6Ik9mZmVyIixwcmljZUN1cnJlbmN5Om8scHJpY2U6bixhdmFpbGFiaWxpdHk6YX06bnVsbCxmLnhockdldCh7dXJsOmwsc3VjY2VzczpmdW5jdGlvbihlKXtzJiYoZS5vZmZlcnM9cyksKGUub2ZmZXJzfHxlLnJldmlld3x8ZS5hZ2dyZWdhdGVSYXRpbmcpJiZoKGUpfSxlcnJvcjpmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfX0pLCEwfXZhciB0LGksZCxuLG8scyxyLGEsbCx1O3JldHVybiExfX0seyIuL3hoci5qcyI6OH1dLDQ6W2Z1bmN0aW9uKGUsdSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdCYmbihlLnByb3RvdHlwZSx0KSxpJiZuKGUsaSksZX07ZnVuY3Rpb24gbihlLHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbi5rZXksbil9fXZhciBvPWEoZSgiLi9zbmlwcGV0cyIpKSxzPWEoZSgiLi93aWRnZXQiKSkscj1hKGUoIi4vb2JzZXJ2ZXIiKSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19aShsLFt7a2V5OiJpbml0aWFsaXplT25QYWdlTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0hKCFkb2N1bWVudC5jdXJyZW50U2NyaXB0fHwhZG9jdW1lbnQuY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUoImRhdGEtZHluYW1pYyIpKTsibG9hZGluZyIhPT10aGlzLmRvY3VtZW50LnJlYWR5U3RhdGU/KHRoaXMuZmluZEFuZEFwcGx5V2lkZ2V0cygpLGUmJnRoaXMub2JzZXJ2ZXIuc3RhcnQoKSk6KHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdGhpcy5maW5kQW5kQXBwbHlXaWRnZXRzLmJpbmQodGhpcykpLGUmJnRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdGhpcy5vYnNlcnZlci5zdGFydCkpfX0se2tleToiYXBwbHlXaWRnZXRGcm9tRG9tRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtCb29sZWFuKHQuZmlyc3RDaGlsZCYmIklGUkFNRSI9PT10LmZpcnN0Q2hpbGQudGFnTmFtZXx8LTE8dGhpcy53aWRnZXRzLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWluZXI9PT10fSkpJiYhZXx8dGhpcy5jcmVhdGVXaWRnZXQodCl9fSx7a2V5OiJmaW5kQW5kQXBwbHlXaWRnZXRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT0hKDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLGU9KHRoaXMuc3RhdHMuZmluZEFuZEFwcGx5Q2FsbHMrPTEsdGhpcy53aWRnZXRFbGVtZW50cyk7ZSYmMCE9PWUubGVuZ3RoJiYodGhpcy5zdGF0cy5lbGVtZW50cz1lLmxlbmd0aCxlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHlXaWRnZXRGcm9tRG9tRWxlbWVudChlLGkpfSkpfX0se2tleToiY3JlYXRlV2lkZ2V0Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGk9KHRoaXMucmVtb3ZlV2lkZ2V0KGUpLGUuZGF0YXNldCk7KDAsby5kZWZhdWx0KShpKTt2YXIgbj1uZXcgcy5kZWZhdWx0KHtjb250YWluZXI6ZSxkYXRhc2V0Oml9KTtyZXR1cm4gbi5pbml0aWFsaXplKCksdGhpcy5zdGF0cy5hcHBsaWVkKz0xLHRoaXMuc3RhdHMuYXBwbHlGcm9tRG9tQ2FsbHMrPTEsdGhpcy53aWRnZXRzLnB1c2gobiksdGhpcy5vblJlbW92ZShlLGZ1bmN0aW9uKCl7dC53aWRnZXRzPXQud2lkZ2V0cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuX2lkIT09bi5faWR9KX0pLG59fSx7a2V5OiJyZW1vdmVXaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcig7dC5maXJzdENoaWxkOyl0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCk7dGhpcy53aWRnZXRzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pc0xhenlMb2FkZWQmJmUuaXNTYW1lTm9kZUFzKHQpfSkuZm9yRWFjaChmdW5jdGlvbihlKXtlLmRlc3Ryb3koKX0pfX0se2tleToiY2xvc2VQb3B1cHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy53aWRnZXRzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xvc2VQb3B1cCgpfSl9fSx7a2V5OiJvblJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLG49bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtpLmlzRGV0YWNoZWQoZSkmJihuLmRpc2Nvbm5lY3QoKSx0KCkpfSk7bi5vYnNlcnZlKHRoaXMuZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMX0pfX0se2tleToiaXNEZXRhY2hlZCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSE9PWRvY3VtZW50JiYobnVsbD09PWUucGFyZW50Tm9kZXx8dGhpcy5pc0RldGFjaGVkKGUucGFyZW50Tm9kZSkpfX0se2tleToiYnVzaW5lc3NVbml0SWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndpZGdldEVsZW1lbnRzWzBdLmRhdGFzZXQuYnVzaW5lc3N1bml0SWR9fSx7a2V5OiJ3aWRnZXRFbGVtZW50cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW10uc2xpY2UuY2FsbCh0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRydXN0cGlsb3Qtd2lkZ2V0IikpfX1dKTtlPWw7ZnVuY3Rpb24gbChlLHQsaSl7dmFyIG49dGhpcztpZighKHRoaXMgaW5zdGFuY2VvZiBsKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKTt0aGlzLndpbmRvdz1lLHRoaXMuZG9jdW1lbnQ9dCx0aGlzLndpZGdldHM9W10sdGhpcy5zdGF0cz17YXBwbGllZDowLGZpbmRBbmRBcHBseUNhbGxzOjAsYXBwbHlGcm9tRG9tQ2FsbHM6MCxlbGVtZW50czowfSx0aGlzLnZlcnNpb249aSx0aGlzLm9ic2VydmVyPW5ldyByLmRlZmF1bHQodCxmdW5jdGlvbigpe3JldHVybiBuLmZpbmRBbmRBcHBseVdpZGdldHMoITEpfSl9dC5kZWZhdWx0PWV9LHsiLi9vYnNlcnZlciI6MiwiLi9zbmlwcGV0cyI6MywiLi93aWRnZXQiOjZ9XSw1OltmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgaSxuPWFyZ3VtZW50c1t0XTtmb3IoaSBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpJiYoZVtpXT1uW2ldKX1yZXR1cm4gZX0sbz1mdW5jdGlvbihlLHQsaSl7cmV0dXJuIHQmJnMoZS5wcm90b3R5cGUsdCksaSYmcyhlLGkpLGV9O2Z1bmN0aW9uIHMoZSx0KXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG49dFtpXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4ua2V5LG4pfX12YXIgcj0iNTNhYTg5MTJkZWM3ZTEwZDM4ZjU5ZjM2LDUzOWFkYmQ2ZGVjN2UxMGU2ODZkZWJlZSw1MzlhZDYwZGVmYjk2MDBiOTRkN2RmMmMsNTM5YWQ5OThkZWM3ZTEwZTY4NmRlYmUwLDUzOWFkMGZmZGVjN2UxMGU2ODZkZWJkNyw1NGQwZTFkODc2NGVhOTA3OGM3OWU2ZWUsNTRhZDVkZWZjNjQ1NGYwNjVjMjhhZjhiIi5zcGxpdCgiLCIpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9IiI7cmV0dXJuIGUmJjA8ZS5sZW5ndGgmJihlPWUudG9Mb3dlckNhc2UoKSx0PS8ocHh8XCUpL2kudGVzdChlKT9lOmUrInB4IiksdH1vKGwsW3trZXk6ImdldElmcmFtZU9wdGlvbnNGcm9tRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmlmcmFtZURhdGF8fHtzdHlsZXM6e319O3JldHVybiBuKHt9LHRoaXMuZGVmYXVsdElmcmFtZU9wdGlvbnMse3Bvc2l0aW9uOmUuc3R5bGVzLnBvc2l0aW9ufHwiIix6aW5kZXg6ZS5zdHlsZXMuemluZGV4fHwiIixtYXJnaW46ZS5zdHlsZXMubWFyZ2lufHwiIix0b3A6ZS5zdHlsZXMudG9wfHwiIixib3R0b206ZS5zdHlsZXMuYm90dG9tfHwiIixsZWZ0OmUuc3R5bGVzLmxlZnR8fCIiLHJpZ2h0OmUuc3R5bGVzLnJpZ2h0fHwiIixoZWlnaHQ6ZS5zdHlsZXMuaGVpZ2h0fHwiIix3aWR0aDplLnN0eWxlcy53aWR0aHx8dGhpcy5kZWZhdWx0SWZyYW1lT3B0aW9ucy5zdHlsZXMud2lkdGh8fCIiLG1pbldpZHRoOmUuc3R5bGVzLm1pbldpZHRofHwiIixtaW5IZWlnaHQ6ZS5zdHlsZXMubWluSGVpZ2h0fHwiIixkaXNwbGF5OmUuc2hvdz8iYmxvY2siOiJub25lIixzcmM6dGhpcy5iYXNlVXJsK2Uuc291cmNlK3RoaXMucXVlcnlTdHJpbmcsYm9yZGVyU3R5bGU6dGhpcy5kZWZhdWx0SWZyYW1lT3B0aW9ucy5zdHlsZXMuYm9yZGVyU3R5bGUsb3ZlcmZsb3c6dGhpcy5kZWZhdWx0SWZyYW1lT3B0aW9ucy5zdHlsZXMub3ZlcmZsb3csbG9hZGluZzp0aGlzLmRhdGFzZXQubG9hZGluZyxhbGxvdzplLmFsbG93fSl9fSx7a2V5OiJpbml0aWFsaXplIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBpLG47dGhpcy5faWZyYW1lPShpPXRoaXMuZ2V0SWZyYW1lT3B0aW9uc0Zyb21EYXRhKCksKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLnN0eWxlLnBvc2l0aW9uPWkucG9zaXRpb24sbi5zdHlsZS56SW5kZXg9aS56aW5kZXgsbi5zdHlsZS5tYXJnaW49aS5tYXJnaW4sbi5zdHlsZS50b3A9aS50b3Asbi5zdHlsZS5ib3R0b209aS5ib3R0b20sbi5zdHlsZS5sZWZ0PWkubGVmdCxuLnN0eWxlLnJpZ2h0PWkucmlnaHQsbi5zdHlsZS5oZWlnaHQ9aS5oZWlnaHQsbi5zdHlsZS53aWR0aD1pLndpZHRoLG4uc3R5bGUubWluSGVpZ2h0PWkubWluSGVpZ2h0LG4uc3R5bGUubWluV2lkdGg9aS5taW5XaWR0aCxuLnN0eWxlLmJvcmRlclN0eWxlPWkuYm9yZGVyU3R5bGUsbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9aS5iYWNrZ3JvdW5kQ29sb3Isbi5zdHlsZS5kaXNwbGF5PWkuZGlzcGxheSxuLnN0eWxlLm92ZXJmbG93PWkub3ZlcmZsb3csbi5hbGxvd1RyYW5zcGFyZW5jeT1pLmFsbG93VHJhbnNwYXJlbmN5LG4udGl0bGU9IkN1c3RvbWVyIHJldmlld3MgcG93ZXJlZCBieSBUcnVzdHBpbG90IixuLmxvYWRpbmc9aS5sb2FkaW5nfHwiYXV0byIsbi5zcmM9aS5zcmMsaS5hbGxvdyYmKG4uYWxsb3c9aS5hbGxvdyksbiksZS5hcHBlbmRDaGlsZCh0aGlzLl9pZnJhbWUpLHRoaXMuX2lmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIix0KX19LHtrZXk6InNlbmRNZXNzYWdlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9pZnJhbWUuY29udGVudFdpbmRvdyYmKGU9SlNPTi5zdHJpbmdpZnkoZSksdGhpcy5faWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoZSwiaHR0cHM6Ly93aWRnZXQudHJ1c3RwaWxvdC5jb20iKSl9fSx7a2V5OiJpc0luVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lmcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQud2lkdGh8fHRoaXMuX2lmcmFtZS5vZmZzZXRXaWR0aCxuPXQuaGVpZ2h0fHx0aGlzLl9pZnJhbWUub2Zmc2V0SGVpZ2h0O3JldHVybiAwPD10LnRvcCYmMDw9dC5sZWZ0JiZ0LmJvdHRvbS1uKmU8PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZ0LnJpZ2h0LWkqZTw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfX0se2tleToic2V0V2lkZ2V0SWQiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuc2VuZE1lc3NhZ2Uoe2NvbW1hbmQ6InNldElkIix3aWRnZXRJZDplfSl9fSx7a2V5OiJzZXRTdHlsZSIsdmFsdWU6ZnVuY3Rpb24oaSl7dmFyIG49dGhpcztPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZV07bi5faWZyYW1lLnN0eWxlW2VdPXR9KX19LHtrZXk6ImlzU2Nyb2xsQmxvY2tpbmdQb3B1cCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4icG9wdXAiPT09dGhpcy5uYW1lJiZ0aGlzLmlzU2Nyb2xsQmxvY2tpbmd9fSx7a2V5OiJkaXNhYmxlUGFnZVNjcm9sbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRPdmVyZmxvd1Byb3BlcnRpZXM9dGhpcy5PVkVSRkxPV19QUk9QRVJUSUVTLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPWRvY3VtZW50LmJvZHkuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0KSxlfSx7fSksZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIn19LHtrZXk6InJlc3RvcmVQYWdlU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPSEwLHQ9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbixvPXRoaXMuT1ZFUkZMT1dfUFJPUEVSVElFU1tTeW1ib2wuaXRlcmF0b3JdKCk7IShlPShuPW8ubmV4dCgpKS5kb25lKTtlPSEwKXt2YXIgcz1uLnZhbHVlO2RvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkocyksdGhpcy5kZWZhdWx0T3ZlcmZsb3dQcm9wZXJ0aWVzW3NdJiZkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KHMsdGhpcy5kZWZhdWx0T3ZlcmZsb3dQcm9wZXJ0aWVzW3NdKX19Y2F0Y2goZSl7dD0hMCxpPWV9ZmluYWxseXt0cnl7IWUmJm8ucmV0dXJuJiZvLnJldHVybigpfWZpbmFsbHl7aWYodCl0aHJvdyBpfX19fSx7a2V5OiJzaG93Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNTY3JvbGxCbG9ja2luZ1BvcHVwKCkmJiF0aGlzLmlzVmlzaWJsZSYmdGhpcy5kaXNhYmxlUGFnZVNjcm9sbCgpLHRoaXMuX2lmcmFtZS5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5pc1Zpc2libGU9ITB9fSx7a2V5OiJoaWRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNTY3JvbGxCbG9ja2luZ1BvcHVwKCkmJnRoaXMuaXNWaXNpYmxlJiZ0aGlzLnJlc3RvcmVQYWdlU2Nyb2xsKCksdGhpcy5faWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaXNWaXNpYmxlPSExfX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faWZyYW1lLmNvbnRlbnRXaW5kb3cuZm9jdXMoKX19LHtrZXk6InJlc2l6ZUhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oZSl7Im51bWJlciI9PXR5cGVvZiBlJiYwIT09ZSYmKHRoaXMuX2lmcmFtZS5zdHlsZS5oZWlnaHQ9ZSsicHgiKX19LHtrZXk6Il9zaG91bGRBbGxvd1JvYm90cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4idHJ1ZSI9PT10aGlzLmRhdGFzZXQuYWxsb3dSb2JvdHMmJnRoaXMuZGF0YXNldC5sb2NhdGlvbiYmLTE8ci5pbmRleE9mKHRoaXMudGVtcGxhdGVJZCl9fSx7a2V5OiJkaW1lbnNpb25zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aGVpZ2h0OmEodGhpcy5kYXRhc2V0LnN0eWxlSGVpZ2h0KSx3aWR0aDphKHRoaXMuZGF0YXNldC5zdHlsZVdpZHRoKX19fSx7a2V5OiJxdWVyeVN0cmluZyIsZ2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtyZXR1cm4gZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkuZGF0YXNldFtlXSl9ZnVuY3Rpb24gZShlKXtyZXR1cm4gT2JqZWN0LmtleXMoaS5kYXRhc2V0KS5maWx0ZXIoZSkubWFwKHQpfXZhciBpPXRoaXMsbj1bImJ1c2luZXNzdW5pdElkIiwidGVtcGxhdGVJZCJdLG89ZShmdW5jdGlvbihlKXtyZXR1cm4tMSE9PW4uaW5kZXhPZihlKX0pLHM9ZShmdW5jdGlvbihlKXtyZXR1cm4tMT09PW4uaW5kZXhPZihlKSYmImFsbG93Um9ib3RzIiE9PWV9KTtyZXR1cm4iPyIrby5qb2luKCImIikrIiMiK3Muam9pbigiJiIpfX0se2tleToidGVtcGxhdGVJZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YXNldC50ZW1wbGF0ZUlkfX0se2tleToiYmFzZVVybCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vd2lkZ2V0LnRydXN0cGlsb3QuY29tL3RydXN0Ym94ZXMvIit0aGlzLnRlbXBsYXRlSWQrIi8ifX0se2tleToiZGVmYXVsdElmcmFtZU9wdGlvbnMiLGdldDpmdW5jdGlvbigpe3JldHVybntzb3VyY2U6dGhpcy5fc2hvdWxkQWxsb3dSb2JvdHMoKT8iaW5kZXhfYWxsb3dfcm9ib3RzLmh0bWwiOiJpbmRleC5odG1sIixhbGxvd1RyYW5zcGFyZW5jeToidHJ1ZSIsc3R5bGVzOntib3JkZXJTdHlsZToibm9uZSIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsZGlzcGxheToiYmxvY2siLG92ZXJmbG93OiJoaWRkZW4iLGhlaWdodDp0aGlzLmRpbWVuc2lvbnMuaGVpZ2h0LHdpZHRoOnRoaXMuZGltZW5zaW9ucy53aWR0aCxwb3NpdGlvbjoicmVsYXRpdmUifSxzaG93OiEwfX19XSk7bz1sO2Z1bmN0aW9uIGwoZSx0LGkpe3ZhciBuPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10sbz10aGlzLHM9bDtpZighKG8gaW5zdGFuY2VvZiBzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKTt0aGlzLk9WRVJGTE9XX1BST1BFUlRJRVM9WyJvdmVyZmxvdyIsIm92ZXJmbG93LXgiLCJvdmVyZmxvdy15Il0sdGhpcy5uYW1lPWUsdGhpcy5kYXRhc2V0PXQsdGhpcy5pZnJhbWVEYXRhPWl8fHRoaXMuZGVmYXVsdElmcmFtZU9wdGlvbnMsdGhpcy5kZWZhdWx0T3ZlcmZsb3dQcm9wZXJ0aWVzPXt9LHRoaXMuaXNWaXNpYmxlPSExLHRoaXMuaXNTY3JvbGxCbG9ja2luZz1ufWkuZGVmYXVsdD1vfSx7fV0sNjpbZnVuY3Rpb24oZSxyLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB0JiZuKGUucHJvdG90eXBlLHQpLGkmJm4oZSxpKSxlfTtmdW5jdGlvbiBuKGUsdCl7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPXRbaV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLmtleSxuKX19dmFyIGw9byhlKCIuL3RyYWNraW5nIikpLHM9byhlKCIuL2lmcmFtZSIpKSx1PWUoIi4vLi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19aShkLG51bGwsW3trZXk6ImdlbmVyYXRlSWQiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMudXNlZElkcyx0PXZvaWQgMDt0PU1hdGgucmFuZG9tKCksLTEhPT1lLmluZGV4T2YodCk7KTtyZXR1cm4gdGhpcy51c2VkSWRzLnB1c2godCl9fV0pLGkoZCxbe2tleToiaXNDb250YWluZXJJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToyMDAsdD10aGlzLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQud2lkdGh8fHRoaXMuY29udGFpbmVyLm9mZnNldFdpZHRoLG49dC5oZWlnaHR8fHRoaXMuY29udGFpbmVyLm9mZnNldEhlaWdodDtyZXR1cm4gMDw9dC50b3AmJjA8PXQubGVmdCYmdC5ib3R0b20tbi1lPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmdC5yaWdodC1pLWU8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19LHtrZXk6ImluaXRpYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuaXNMYXp5TG9hZGVkfHx0aGlzLmlzQ29udGFpbmVySW5WaWV3cG9ydCgpPyh0aGlzLl93aWRnZXRJRnJhbWVPcmlnaW49Imh0dHBzOi8vd2lkZ2V0LnRydXN0cGlsb3QuY29tIix0aGlzLmNyZWF0ZUlGcmFtZSgibWFpbiIpLHRoaXMuYXR0YWNoTWVzc2FnZUxpc3RlbmVyKCkpOnRoaXMubGF6eUxvYWRUaW1lb3V0PXNldFRpbWVvdXQodGhpcy5pbml0aWFsaXplLDUwMCl9fSx7a2V5OiJoYW5kbGVDb21tYW5kIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmRhdGEsZT1lLm9yaWdpbjt0cnl7dmFyIGk9InN0cmluZyI9PXR5cGVvZiB0P0pTT04ucGFyc2UodCk6dDtyZXR1cm4gZT09PXRoaXMuX3dpZGdldElGcmFtZU9yaWdpbiYmaS53aWRnZXRJZD09PXRoaXMuaWQ/dGhpcy53aWRnZXRJZnJhbWVNZXNzYWdlSGFuZGxlcihpKTohMX1jYXRjaChlKXtyZXR1cm4hMX19fSx7a2V5OiJhdHRhY2hNZXNzYWdlTGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuaGFuZGxlQ29tbWFuZC5iaW5kKHRoaXMpLCExKX19LHtrZXk6IndpZGdldElmcmFtZU1lc3NhZ2VIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGk9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmZ1bmN0aW9uKCl7fSxuPSh0aGlzLnN0YXRzLmV2ZW50c1tlLmNvbW1hbmRdPSh0aGlzLnN0YXRzLmV2ZW50c1tlLmNvbW1hbmRdfHwwKSsxLGUubmFtZSksbz1lLnN0eWxlLHM9ZS5oZWlnaHQscj1lLnRhcmdldHMsdT1lLmF0dGFjaFRvQm9keSxhPXRoaXMuaWZyYW1lc1tuXSxsPXtjcmVhdGVJRnJhbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdC5jcmVhdGVJRnJhbWUobixlLHUpfSxzZXRTdHlsZTpmdW5jdGlvbigpe3JldHVybiBhLnNldFN0eWxlKG8pfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIGEuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaGlkZSgpfSxmb2N1czpmdW5jdGlvbigpe3JldHVybiBhLmZvY3VzKCl9LGxvYWRlZDpmdW5jdGlvbigpe3JldHVybiB0LmlmcmFtZXMubWFpbi5zZW5kTWVzc2FnZSgibG9hZGVkIil9LG1lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gYS5zZW5kTWVzc2FnZShlKX0scGluZzpmdW5jdGlvbigpe3QuaWZyYW1lcy5tYWluLnNlbmRNZXNzYWdlKHtjb21tYW5kOiJwb25nIn0pLHQuc3RhdHMucG9uZ1NlbnQ9ITB9LCJyZXNpemUtaGVpZ2h0IjpmdW5jdGlvbigpe3JldHVybiB0LmdldElmcmFtZU9yTWFpbihuKS5yZXNpemVIZWlnaHQocyl9LGltcHJlc3Npb246ZnVuY3Rpb24oKXtyZXR1cm4gdC50cmFja2luZy5pbml0aWFsaXplKCl9LHNjcm9sbFRvOmZ1bmN0aW9uKCl7cmV0dXJuIHQuc2Nyb2xsVG9UcnVzdEJveChyKX19W2UuY29tbWFuZF07cmV0dXJuIGw/KGwoKSwhMCk6KGkoKSwhMSl9fSx7a2V5OiJjcmVhdGVJRnJhbWUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcyxuPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sbz1uZXcgcy5kZWZhdWx0KGUsdGhpcy5kYXRhc2V0LHQsbik7dGhpcy5pZnJhbWVzW2VdPW8sdGhpcy5zdGF0cy5jcmVhdGVJRnJhbWVDYWxscys9MSxvLmluaXRpYWxpemUobj9kb2N1bWVudC5ib2R5OnRoaXMuY29udGFpbmVyLGZ1bmN0aW9uKCl7by5zZXRXaWRnZXRJZChpLmlkKSxpLnN0YXRzLmlmcmFtZUxvYWRFdmVudHMrPTF9KX19LHtrZXk6ImdldElmcmFtZU9yTWFpbiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaWZyYW1lc1tlXXx8dGhpcy5pZnJhbWVzLm1haW59fSx7a2V5OiJpc0luVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlmcmFtZXMubWFpbi5pc0luVmlld3BvcnQoZSl9fSx7a2V5OiJpc1NhbWVOb2RlQXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdGhpcy5jb250YWluZXIuaXNTYW1lTm9kZShlKX1jYXRjaChlKXtyZXR1cm4hMX19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubGF6eUxvYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5sYXp5TG9hZFRpbWVvdXQpfX0se2tleToiY2xvc2VQb3B1cCIsdmFsdWU6ZnVuY3Rpb24oKXsicG9wdXAiaW4gdGhpcy5pZnJhbWVzJiYodGhpcy5pZnJhbWVzLm1haW4uc2VuZE1lc3NhZ2Uoe25hbWU6Im1haW4iLGNvbW1hbmQ6Im1lc3NhZ2UiLG1lc3NhZ2U6InBvcHVwIHRvZ2dsZWQiLHZpc2libGU6ITF9KSx0aGlzLmlmcmFtZXMucG9wdXAuaGlkZSgpKX19LHtrZXk6InNjcm9sbFRvVHJ1c3RCb3giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiJbZGF0YS10ZW1wbGF0ZS1pZD0nIitlKyInXSJ9KS5qb2luKCIsIikpOyF0fHwoZT10LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpKSYmKHQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgifSksZS5jb250ZW50V2luZG93LmZvY3VzKCkpfX0se2tleToiaWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pZHx8KHRoaXMuX2lkPXRoaXMuY29uc3RydWN0b3IuZ2VuZXJhdGVJZCgpKSx0aGlzLl9pZH19XSk7ZT1kO2Z1bmN0aW9uIGQoZSl7dmFyIHQ9dGhpcyxpPWUuY29udGFpbmVyLG49ZS5kYXRhc2V0LG89ZS5zZXNzaW9uLHM9ZS5hbm9ueW1vdXNJZCxyPWUudGVzdElkLGU9ZS5zZXNzaW9uRXhwaXJ5O2lmKCEodGhpcyBpbnN0YW5jZW9mIGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpO3ZhciBhPXtjb250YWluZXI6aSxkYXRhc2V0Om4sdGVtcGxhdGVJZDpuLnRlbXBsYXRlSWQsYnVzaW5lc3NVbml0SWQ6bi5idXNpbmVzc3VuaXRJZCxsb2NhbGU6bi5sb2NhbGV9O09iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoIWFbZV0pdGhyb3ciTm8gIitlKyIgc3VwcGxpZWQgZm9yIFRydXN0Qm94In0pLHRoaXMuY29udGFpbmVyPWksdGhpcy5jb250YWluZXIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix0aGlzLmRhdGFzZXQ9bix0aGlzLmlmcmFtZXM9e30sdGhpcy50cmFja2luZz1uZXcgbC5kZWZhdWx0KGZ1bmN0aW9uKGUpe3JldHVybiB0LmlmcmFtZXMubWFpbi5zZW5kTWVzc2FnZShlKX0sZnVuY3Rpb24oKXtyZXR1cm4gdC5pc0luVmlld3BvcnQoLjUpfSx7c2Vzc2lvbjpvLGdyb3VwOm4uZ3JvdXAsc2Vzc2lvbkV4cGlyeTplLGFub255bW91c0lkOnMsdGVzdElkOnIsdGVtcGxhdGVJZDpuLnRlbXBsYXRlSWR9KSx0aGlzLmlzTGF6eUxvYWRlZD0tMTx1LkxBWllfTE9BREVEX1dJREdFVFMuaW5kZXhPZihuLnRlbXBsYXRlSWQpLHRoaXMubGF6eUxvYWRUaW1lb3V0PW51bGwsdGhpcy5pc1NhbWVOb2RlQXM9dGhpcy5pc1NhbWVOb2RlQXMuYmluZCh0aGlzKSx0aGlzLmRlc3Ryb3k9dGhpcy5kZXN0cm95LmJpbmQodGhpcyksdGhpcy5zdGF0cz17Y3JlYXRlSUZyYW1lQ2FsbHM6MCxpZnJhbWVMb2FkRXZlbnRzOjAsZXZlbnRzOnt9LHBvbmdTZW50OiExfSx0aGlzLmluaXRpYWxpemU9dGhpcy5pbml0aWFsaXplLmJpbmQodGhpcyl9ZS51c2VkSWRzPVtdLHQuZGVmYXVsdD1lfSx7Ii4vLi4vY29uc3RhbnRzIjoxLCIuL2lmcmFtZSI6NSwiLi90cmFja2luZyI6N31dLDc6W2Z1bmN0aW9uKGUsdCxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPWZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdCYmbyhlLnByb3RvdHlwZSx0KSxpJiZvKGUsaSksZX07ZnVuY3Rpb24gbyhlLHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbi5rZXksbil9fXZhciB1PWUoIi4uL2NvbnN0YW50cyIpO24obCxbe2tleToiaW5pdGlhbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbmRJbXByZXNzaW9uRGF0YSgpLHRoaXMuYXR0YWNoTGlzdGVuZXIoKSx0aGlzLnNob3VsZERldGFjaExpc3RlbmVyKCl9fSx7a2V5OiJnZXRUcmFja2luZ0RhdGEiLHZhbHVlOmZ1bmN0aW9uKGUpe2U9e2NvbW1hbmQ6ZSx1cmw6d2luZG93LmRvY3VtZW50LlVSTCxyZWZlcnJlcjp3aW5kb3cuZG9jdW1lbnQucmVmZXJyZXIsdXNlckFnZW50OndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LGxhbmd1YWdlOndpbmRvdy5uYXZpZ2F0b3IudXNlckxhbmd1YWdlfHx3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlLHBsYXRmb3JtOndpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm19O3JldHVybiB0aGlzLnNlc3Npb24mJnRoaXMuZ3JvdXAmJihlLnNlc3Npb249dGhpcy5zZXNzaW9uLGUuc2Vzc2lvbkV4cGlyeT10aGlzLnNlc3Npb25FeHBpcnkpLHRoaXMuYW5vbnltb3VzSWQmJihlLmFub255bW91c0lkPXRoaXMuYW5vbnltb3VzSWQpLHRoaXMudGVzdElkJiYoZS50ZXN0SWQ9dGhpcy50ZXN0SWQpLGV9fSx7a2V5OiJzZW5kSW1wcmVzc2lvbkRhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5oYXNTZW50SW1wcmVzc2lvbnx8KHRoaXMuaGFzU2VudEltcHJlc3Npb249ITAsZT10aGlzLmdldFRyYWNraW5nRGF0YSgiaW1wcmVzc2lvbi1yZWNlaXZlZCIpLHRoaXMuc2VuZE1lc3NhZ2UoZSkpfX0se2tleToic2VuZFZpc2liaWxpdHlEYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlO3RoaXMuaGFzU2VudFZpZXdUcmFja2luZ3x8KHRoaXMuaGFzU2VudFZpZXdUcmFja2luZz0hMCxlPXRoaXMuZ2V0VHJhY2tpbmdEYXRhKCJ0cnVzdGJveC1pbi12aWV3cG9ydCIpLHRoaXMuc2VuZE1lc3NhZ2UoZSkpfX0se2tleToiYXR0YWNoTGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsaSxuLG89YXJndW1lbnRzLGU9dGhpcyxzPSh0PWZ1bmN0aW9uKCl7ZS50ZW1wbGF0ZUlkIT09dS5FTVBUWV9XSURHRVRfSUQmJiFlLnNob3VsZERldGFjaExpc3RlbmVyKCl8fCh3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixhLHIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGwscikpfSxmdW5jdGlvbigpe3ZhciBlPW87Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dChmdW5jdGlvbigpe249bnVsbCx0KGUpfSxpKX0pLHI9e3Bhc3NpdmU6IShuPXZvaWQgMCksY2FwdHVyZTohKGk9MTAwKX0sYT13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixzLHIpLGw9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIscyxyKTtzKCl9fSx7a2V5OiJzaG91bGREZXRhY2hMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaGFzU2VudFZpZXdUcmFja2luZ3x8KHRoaXMuaGFzQmVlblZpc2libGU/KHRoaXMuaGFzU2VudEltcHJlc3Npb24mJnRoaXMuc2VuZFZpc2liaWxpdHlEYXRhKCksITApOiEhdGhpcy5pc1RydXN0Qm94VmlzaWJsZSgpJiYodGhpcy5oYXNTZW50SW1wcmVzc2lvbj8odGhpcy5zZW5kVmlzaWJpbGl0eURhdGEoKSwhMCk6dGhpcy5oYXNCZWVuVmlzaWJsZT0hMCkpfX1dKTtlPWw7ZnVuY3Rpb24gbChlLHQsaSl7dmFyIG49aS5zZXNzaW9uLG89aS5zZXNzaW9uRXhwaXJ5LHM9aS5ncm91cCxyPWkuYW5vbnltb3VzSWQsYT1pLnRlc3RJZCxpPWkudGVtcGxhdGVJZDtpZighKHRoaXMgaW5zdGFuY2VvZiBsKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKTt0aGlzLmhhc1NlbnRJbXByZXNzaW9uPSExLHRoaXMuaGFzU2VudFZpZXdUcmFja2luZz0hMSx0aGlzLnNlbmRNZXNzYWdlPWUsdGhpcy5pc1RydXN0Qm94VmlzaWJsZT10LHRoaXMuc2Vzc2lvbj1uLHRoaXMuZ3JvdXA9cyx0aGlzLnNlc3Npb25FeHBpcnk9byx0aGlzLmFub255bW91c0lkPXIsdGhpcy50ZXN0SWQ9YSx0aGlzLnRlbXBsYXRlSWQ9aX1pLmRlZmF1bHQ9ZX0seyIuLi9jb25zdGFudHMiOjF9XSw4OltmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1jYXRjaChlKXtyZXR1cm4gdC5yZXNwb25zZVRleHR9fXQuZXhwb3J0cz17eGhyR2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7dC5vcGVuKCJHRVQiLGUudXJsLCEwKSx0LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLHQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXQucmVhZHlTdGF0ZSYmKDIwMDw9dC5zdGF0dXMmJnQuc3RhdHVzPDMwMD9lLnN1Y2Nlc3Mobih0KSk6ZS5lcnJvciYmZS5lcnJvcihuKHQpKSl9LHQuc2VuZCgpfX19LHt9XSw5OltmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO3ZhciBuLG8scz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0scj0iMS40NDQuMCI7dHJ5e249ZSgiLi9saWIvd2lkZ2V0LW1hbmFnZW1lbnQuanMiKS5kZWZhdWx0LG89d2luZG93LlRydXN0cGlsb3QmJjA8T2JqZWN0LmtleXMod2luZG93LlRydXN0cGlsb3QpLmxlbmd0aCx3aW5kb3cuVHJ1c3RwaWxvdD1vP3dpbmRvdy5UcnVzdHBpbG90Ontsb2FkRnJvbUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXtpZihlKXJldHVybiB0aGlzLk1vZHVsZXMuV2lkZ2V0TWFuYWdlbWVudCYmdGhpcy5Nb2R1bGVzLldpZGdldE1hbmFnZW1lbnQuYXBwbHlXaWRnZXRGcm9tRG9tRWxlbWVudChlLHQpO2NvbnNvbGUuZXJyb3IoJ05vIGVsZW1lbnQgc3VwcGxpZWQgdG8gIlRydXN0cGlsb3QubG9hZEZyb21FbGVtZW50IicpfX0sd2luZG93LlRydXN0cGlsb3QuTW9kdWxlcz13aW5kb3cuVHJ1c3RwaWxvdC5Nb2R1bGVzfHx7fSx3aW5kb3cuVHJ1c3RwaWxvdC5Nb2R1bGVzLldpZGdldE1hbmFnZW1lbnQ/d2luZG93LlRydXN0cGlsb3QuTW9kdWxlcy5XaWRnZXRNYW5hZ2VtZW50LnZlcnNpb24hPT1yJiZjb25zb2xlLmxvZygiRGV0ZWN0ZWQgbGVnYWN5IFRydXN0Qm94IGJvb3RzdHJhcCB3aXRoIHZlcnNpb246Iix3aW5kb3cuVHJ1c3RwaWxvdC5Nb2R1bGVzLldpZGdldE1hbmFnZW1lbnQudmVyc2lvbiwiLCBjdXJyZW50OiIscik6KHdpbmRvdy5UcnVzdHBpbG90Lk1vZHVsZXMuV2lkZ2V0TWFuYWdlbWVudD1uZXcgbih3aW5kb3csZG9jdW1lbnQsciksd2luZG93LlRydXN0cGlsb3QuTW9kdWxlcy5XaWRnZXRNYW5hZ2VtZW50LmluaXRpYWxpemVPblBhZ2VMb2FkKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dHJ5e2Zvcih2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0cnVzdHBpbG90LXdpZGdldCIpLHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIGk9ZVt0XSxuPWkuZmlyc3RDaGlsZCYmaS5maXJzdENoaWxkLnRhZ05hbWU7biYmIklGUkFNRSIhPT1uJiZ3aW5kb3cuVHJ1c3RwaWxvdC5sb2FkRnJvbUVsZW1lbnQoaSl9fWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGxvYWRpbmcgdHJ1c3Rib3hlcyAiK2UpfX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d2luZG93LlRydXN0cGlsb3QuTW9kdWxlcy5XaWRnZXRNYW5hZ2VtZW50LmNsb3NlUG9wdXBzKCl9KX1jYXRjaChlKXtmdW5jdGlvbiBhKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIG9uIGJvb3RzdHJhcDoiK2UpO2U9WyJlcnJvcj0iK2VuY29kZVVSSUNvbXBvbmVudChlKSwidXJpPSIrZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCksImJvb3RzdHJhcFZlcnNpb249IityXS5qb2luKCImIik7ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikuc3JjPSJodHRwczovL3dpZGdldC50cnVzdHBpbG90LmNvbS9mZWVkYmFjay9yZXBvcnQtZXJyb3I/IitlfXRyeXsib2JqZWN0Ij09PSh2b2lkIDA9PT1lPyJ1bmRlZmluZWQiOnMoZSkpP2EoZS5tZXNzYWdlKTphKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIkVycm9yIG9uIGVycm9yIHJlcG9ydGluZyBtZXRob2Q6IitlKX19fSx7Ii4vbGliL3dpZGdldC1tYW5hZ2VtZW50LmpzIjo0fV19LHt9LFs5XSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXRwLndpZGdldC5ib290c3RyYXAubWluLmpzLm1hcAo="}},"time_used":518,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":518,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=13\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9166295735za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2843\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.726Z","timestamp":1785145405726,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=13\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9166295735za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10784971490\u0026tid=AW-10784971490\u0026tft=1785145405722\u0026tfd=2843\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\ncache-control: no-cache, no-store, must-revalidate\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\ncontent-type: text/plain\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":549,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":23,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"lg.hyr.so/v1/lst/session","fqdn":"lg.hyr.so","domain":"hyr.so","tld":"so"},"ip":{"addr":"44.196.240.170","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.755Z","timestamp":1785145406755,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","key_group_name":"P256","signature_name":"RSA-PKCS1-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"hyr.so","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Tue, 11 Nov 2025 00:00:00 GMT","end":"Wed, 09 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"36:4E:F8:B1:CC:08:30:0C:DE:87:2C:0C:4B:93:AF:AF:5D:0D:D0:2B","sha256":"58:6D:57:2B:AE:C5:62:6D:69:A9:88:0D:FC:EE:6A:BE:C0:C2:54:B6:6F:94:3D:53:3D:18:EF:36:3E:7D:C0:14"}}},"request":{"raw":"OPTIONS /v1/lst/session HTTP/1.1\r\nHost: lg.hyr.so\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: access-control-allow-headers,access-control-allow-origin,content-type\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:27 GMT\r\ncontent-length: 0\r\nvary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-allow-methods: GET,POST,PUT,DELETE,OPTIONS\r\naccess-control-allow-headers: access-control-allow-headers, access-control-allow-origin, content-type\r\naccess-control-expose-headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":540,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":469,"timings":{"blocked":0,"dns":2,"connect":93,"send":0,"wait":94,"receive":0,"ssl":280},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/lazyload/lazyload.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.858Z","timestamp":1785145403858,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/lazyload/lazyload.min.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-2244\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":8772,"size_decoded":3104,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (8771)","md5":"806627ba781d7a849351f719773bda6d","sha1":"820f1b7d31e1ce73d83b77e5ea370440ac72fbcf","sha256":"a8c41ff83876c02fa1984586295a99e68f98e302a41ed6c9cbb6ee791690ad54","sha512":"dea0769f542dd82540b031ffad8646c39dbd3fdb9f11918210d93b5bba74d5907d3fe219d9b1bbcbe0df543481a1aeb1a0805f67c6ca7c053a7f84b788ed0f12","ssdeep":"192:pDDu5/25c7ZTV8fJYeFt827TSWmAT/iCIicgGBoTkjeGlZ1eaQEBOK:pXw/s0ViPRTQQIiDGBoTIlV","tlshash":"2c0243487d46746b3973f0f6219f02ca353b28426ced6950a5a1f8f82d7854d1863fbd","first_seen":"2023-03-08T09:12:26Z","last_seen":"2026-07-27T14:04:41.080813Z","times_seen":209,"resource_available":true,"data":"IWZ1bmN0aW9uKG4sdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KG49InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6bnx8c2VsZikuTGF6eUxvYWQ9dCgpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7cmV0dXJuIG49T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24obil7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIGU9YXJndW1lbnRzW3RdO2Zvcih2YXIgbyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiYobltvXT1lW29dKX1yZXR1cm4gbn0sbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3csZT10JiYhKCJvbnNjcm9sbCJpbiB3aW5kb3cpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmLyhnbGV8aW5nfHJvKWJvdHxjcmF3bHxzcGlkZXIvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG89dCYmIkludGVyc2VjdGlvbk9ic2VydmVyImluIHdpbmRvdyxpPXQmJiJjbGFzc0xpc3QiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpLGE9dCYmd2luZG93LmRldmljZVBpeGVsUmF0aW8+MSxyPXtlbGVtZW50c19zZWxlY3RvcjoiLmxhenkiLGNvbnRhaW5lcjplfHx0P2RvY3VtZW50Om51bGwsdGhyZXNob2xkOjMwMCx0aHJlc2hvbGRzOm51bGwsZGF0YV9zcmM6InNyYyIsZGF0YV9zcmNzZXQ6InNyY3NldCIsZGF0YV9zaXplczoic2l6ZXMiLGRhdGFfYmc6ImJnIixkYXRhX2JnX2hpZHBpOiJiZy1oaWRwaSIsZGF0YV9iZ19tdWx0aToiYmctbXVsdGkiLGRhdGFfYmdfbXVsdGlfaGlkcGk6ImJnLW11bHRpLWhpZHBpIixkYXRhX2JnX3NldDoiYmctc2V0IixkYXRhX3Bvc3RlcjoicG9zdGVyIixjbGFzc19hcHBsaWVkOiJhcHBsaWVkIixjbGFzc19sb2FkaW5nOiJsb2FkaW5nIixjbGFzc19sb2FkZWQ6ImxvYWRlZCIsY2xhc3NfZXJyb3I6ImVycm9yIixjbGFzc19lbnRlcmVkOiJlbnRlcmVkIixjbGFzc19leGl0ZWQ6ImV4aXRlZCIsdW5vYnNlcnZlX2NvbXBsZXRlZDohMCx1bm9ic2VydmVfZW50ZXJlZDohMSxjYW5jZWxfb25fZXhpdDohMCxjYWxsYmFja19lbnRlcjpudWxsLGNhbGxiYWNrX2V4aXQ6bnVsbCxjYWxsYmFja19hcHBsaWVkOm51bGwsY2FsbGJhY2tfbG9hZGluZzpudWxsLGNhbGxiYWNrX2xvYWRlZDpudWxsLGNhbGxiYWNrX2Vycm9yOm51bGwsY2FsbGJhY2tfZmluaXNoOm51bGwsY2FsbGJhY2tfY2FuY2VsOm51bGwsdXNlX25hdGl2ZTohMSxyZXN0b3JlX29uX2Vycm9yOiExfSxjPWZ1bmN0aW9uKHQpe3JldHVybiBuKHt9LHIsdCl9LHU9ZnVuY3Rpb24obix0KXt2YXIgZSxvPSJMYXp5TG9hZDo6SW5pdGlhbGl6ZWQiLGk9bmV3IG4odCk7dHJ5e2U9bmV3IEN1c3RvbUV2ZW50KG8se2RldGFpbDp7aW5zdGFuY2U6aX19KX1jYXRjaChuKXsoZT1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSkuaW5pdEN1c3RvbUV2ZW50KG8sITEsITEse2luc3RhbmNlOml9KX13aW5kb3cuZGlzcGF0Y2hFdmVudChlKX0sbD0ic3JjIixzPSJzcmNzZXQiLGY9InNpemVzIixkPSJwb3N0ZXIiLF89ImxsT3JpZ2luYWxBdHRycyIsZz0iZGF0YSIsdj0ibG9hZGluZyIsYj0ibG9hZGVkIixwPSJhcHBsaWVkIixtPSJlcnJvciIsaD0ibmF0aXZlIixFPSJkYXRhLSIsST0ibGwtc3RhdHVzIix5PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4uZ2V0QXR0cmlidXRlKEUrdCl9LGs9ZnVuY3Rpb24obil7cmV0dXJuIHkobixJKX0sQT1mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihuLHQsZSl7dmFyIG89ImRhdGEtbGwtc3RhdHVzIjtudWxsIT09ZT9uLnNldEF0dHJpYnV0ZShvLGUpOm4ucmVtb3ZlQXR0cmlidXRlKG8pfShuLDAsdCl9LHc9ZnVuY3Rpb24obil7cmV0dXJuIEEobixudWxsKX0sTD1mdW5jdGlvbihuKXtyZXR1cm4gbnVsbD09PWsobil9LE89ZnVuY3Rpb24obil7cmV0dXJuIGsobik9PT1ofSx4PVt2LGIscCxtXSxDPWZ1bmN0aW9uKG4sdCxlLG8pe24mJih2b2lkIDA9PT1vP3ZvaWQgMD09PWU/bih0KTpuKHQsZSk6bih0LGUsbykpfSxOPWZ1bmN0aW9uKG4sdCl7aT9uLmNsYXNzTGlzdC5hZGQodCk6bi5jbGFzc05hbWUrPShuLmNsYXNzTmFtZT8iICI6IiIpK3R9LE09ZnVuY3Rpb24obix0KXtpP24uY2xhc3NMaXN0LnJlbW92ZSh0KTpuLmNsYXNzTmFtZT1uLmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihefFxccyspIit0KyIoXFxzK3wkKSIpLCIgIikucmVwbGFjZSgvXlxzKy8sIiIpLnJlcGxhY2UoL1xzKyQvLCIiKX0sej1mdW5jdGlvbihuKXtyZXR1cm4gbi5sbFRlbXBJbWFnZX0sVD1mdW5jdGlvbihuLHQpe2lmKHQpe3ZhciBlPXQuX29ic2VydmVyO2UmJmUudW5vYnNlcnZlKG4pfX0sUj1mdW5jdGlvbihuLHQpe24mJihuLmxvYWRpbmdDb3VudCs9dCl9LEc9ZnVuY3Rpb24obix0KXtuJiYobi50b0xvYWRDb3VudD10KX0saj1mdW5jdGlvbihuKXtmb3IodmFyIHQsZT1bXSxvPTA7dD1uLmNoaWxkcmVuW29dO28rPTEpIlNPVVJDRSI9PT10LnRhZ05hbWUmJmUucHVzaCh0KTtyZXR1cm4gZX0sRD1mdW5jdGlvbihuLHQpe3ZhciBlPW4ucGFyZW50Tm9kZTtlJiYiUElDVFVSRSI9PT1lLnRhZ05hbWUmJmooZSkuZm9yRWFjaCh0KX0sVj1mdW5jdGlvbihuLHQpe2oobikuZm9yRWFjaCh0KX0sRj1bbF0sQj1bbCxkXSxKPVtsLHMsZl0sUD1bZ10sUz1mdW5jdGlvbihuKXtyZXR1cm4hIW5bX119LFU9ZnVuY3Rpb24obil7cmV0dXJuIG5bX119LCQ9ZnVuY3Rpb24obil7cmV0dXJuIGRlbGV0ZSBuW19dfSxxPWZ1bmN0aW9uKG4sdCl7aWYoIVMobikpe3ZhciBlPXt9O3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT1uLmdldEF0dHJpYnV0ZSh0KX0pKSxuW19dPWV9fSxIPWZ1bmN0aW9uKG4sdCl7aWYoUyhuKSl7dmFyIGU9VShuKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyFmdW5jdGlvbihuLHQsZSl7ZT9uLnNldEF0dHJpYnV0ZSh0LGUpOm4ucmVtb3ZlQXR0cmlidXRlKHQpfShuLHQsZVt0XSl9KSl9fSxLPWZ1bmN0aW9uKG4sdCxlKXtOKG4sdC5jbGFzc19hcHBsaWVkKSxBKG4scCksZSYmKHQudW5vYnNlcnZlX2NvbXBsZXRlZCYmVChuLHQpLEModC5jYWxsYmFja19hcHBsaWVkLG4sZSkpfSxRPWZ1bmN0aW9uKG4sdCxlKXtOKG4sdC5jbGFzc19sb2FkaW5nKSxBKG4sdiksZSYmKFIoZSwxKSxDKHQuY2FsbGJhY2tfbG9hZGluZyxuLGUpKX0sVz1mdW5jdGlvbihuLHQsZSl7ZSYmbi5zZXRBdHRyaWJ1dGUodCxlKX0sWD1mdW5jdGlvbihuLHQpe1cobixmLHkobix0LmRhdGFfc2l6ZXMpKSxXKG4scyx5KG4sdC5kYXRhX3NyY3NldCkpLFcobixsLHkobix0LmRhdGFfc3JjKSl9LFk9e0lNRzpmdW5jdGlvbihuLHQpe0QobiwoZnVuY3Rpb24obil7cShuLEopLFgobix0KX0pKSxxKG4sSiksWChuLHQpfSxJRlJBTUU6ZnVuY3Rpb24obix0KXtxKG4sRiksVyhuLGwseShuLHQuZGF0YV9zcmMpKX0sVklERU86ZnVuY3Rpb24obix0KXtWKG4sKGZ1bmN0aW9uKG4pe3EobixGKSxXKG4sbCx5KG4sdC5kYXRhX3NyYykpfSkpLHEobixCKSxXKG4sZCx5KG4sdC5kYXRhX3Bvc3RlcikpLFcobixsLHkobix0LmRhdGFfc3JjKSksbi5sb2FkKCl9LE9CSkVDVDpmdW5jdGlvbihuLHQpe3EobixQKSxXKG4sZyx5KG4sdC5kYXRhX3NyYykpfX0sWj1bIklNRyIsIklGUkFNRSIsIlZJREVPIiwiT0JKRUNUIl0sbm49ZnVuY3Rpb24obix0KXshdHx8ZnVuY3Rpb24obil7cmV0dXJuIG4ubG9hZGluZ0NvdW50PjB9KHQpfHxmdW5jdGlvbihuKXtyZXR1cm4gbi50b0xvYWRDb3VudD4wfSh0KXx8QyhuLmNhbGxiYWNrX2ZpbmlzaCx0KX0sdG49ZnVuY3Rpb24obix0LGUpe24uYWRkRXZlbnRMaXN0ZW5lcih0LGUpLG4ubGxFdkxpc25yc1t0XT1lfSxlbj1mdW5jdGlvbihuLHQsZSl7bi5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl9LG9uPWZ1bmN0aW9uKG4pe3JldHVybiEhbi5sbEV2TGlzbnJzfSxhbj1mdW5jdGlvbihuKXtpZihvbihuKSl7dmFyIHQ9bi5sbEV2TGlzbnJzO2Zvcih2YXIgZSBpbiB0KXt2YXIgbz10W2VdO2VuKG4sZSxvKX1kZWxldGUgbi5sbEV2TGlzbnJzfX0scm49ZnVuY3Rpb24obix0LGUpeyFmdW5jdGlvbihuKXtkZWxldGUgbi5sbFRlbXBJbWFnZX0obiksUihlLC0xKSxmdW5jdGlvbihuKXtuJiYobi50b0xvYWRDb3VudC09MSl9KGUpLE0obix0LmNsYXNzX2xvYWRpbmcpLHQudW5vYnNlcnZlX2NvbXBsZXRlZCYmVChuLGUpfSxjbj1mdW5jdGlvbihuLHQsZSl7dmFyIG89eihuKXx8bjtvbihvKXx8ZnVuY3Rpb24obix0LGUpe29uKG4pfHwobi5sbEV2TGlzbnJzPXt9KTt2YXIgbz0iVklERU8iPT09bi50YWdOYW1lPyJsb2FkZWRkYXRhIjoibG9hZCI7dG4obixvLHQpLHRuKG4sImVycm9yIixlKX0obywoZnVuY3Rpb24oaSl7IWZ1bmN0aW9uKG4sdCxlLG8pe3ZhciBpPU8odCk7cm4odCxlLG8pLE4odCxlLmNsYXNzX2xvYWRlZCksQSh0LGIpLEMoZS5jYWxsYmFja19sb2FkZWQsdCxvKSxpfHxubihlLG8pfSgwLG4sdCxlKSxhbihvKX0pLChmdW5jdGlvbihpKXshZnVuY3Rpb24obix0LGUsbyl7dmFyIGk9Tyh0KTtybih0LGUsbyksTih0LGUuY2xhc3NfZXJyb3IpLEEodCxtKSxDKGUuY2FsbGJhY2tfZXJyb3IsdCxvKSxlLnJlc3RvcmVfb25fZXJyb3ImJkgodCxKKSxpfHxubihlLG8pfSgwLG4sdCxlKSxhbihvKX0pKX0sdW49ZnVuY3Rpb24obix0LGUpeyFmdW5jdGlvbihuKXtyZXR1cm4gWi5pbmRleE9mKG4udGFnTmFtZSk+LTF9KG4pP2Z1bmN0aW9uKG4sdCxlKXshZnVuY3Rpb24obil7bi5sbFRlbXBJbWFnZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKX0obiksY24obix0LGUpLGZ1bmN0aW9uKG4pe1Mobil8fChuW19dPXtiYWNrZ3JvdW5kSW1hZ2U6bi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2V9KX0obiksZnVuY3Rpb24obix0LGUpe3ZhciBvPXkobix0LmRhdGFfYmcpLGk9eShuLHQuZGF0YV9iZ19oaWRwaSkscj1hJiZpP2k6bztyJiYobi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybCgiJy5jb25jYXQociwnIiknKSx6KG4pLnNldEF0dHJpYnV0ZShsLHIpLFEobix0LGUpKX0obix0LGUpLGZ1bmN0aW9uKG4sdCxlKXt2YXIgbz15KG4sdC5kYXRhX2JnX211bHRpKSxpPXkobix0LmRhdGFfYmdfbXVsdGlfaGlkcGkpLHI9YSYmaT9pOm87ciYmKG4uc3R5bGUuYmFja2dyb3VuZEltYWdlPXIsSyhuLHQsZSkpfShuLHQsZSksZnVuY3Rpb24obix0LGUpe3ZhciBvPXkobix0LmRhdGFfYmdfc2V0KTtpZihvKXt2YXIgaT1vLnNwbGl0KCJ8IiksYT1pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuImltYWdlLXNldCgiLmNvbmNhdChuLCIpIil9KSk7bi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YS5qb2luKCksIiI9PT1uLnN0eWxlLmJhY2tncm91bmRJbWFnZSYmKGE9aS5tYXAoKGZ1bmN0aW9uKG4pe3JldHVybiItd2Via2l0LWltYWdlLXNldCgiLmNvbmNhdChuLCIpIil9KSksbi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YS5qb2luKCkpLEsobix0LGUpfX0obix0LGUpfShuLHQsZSk6ZnVuY3Rpb24obix0LGUpe2NuKG4sdCxlKSxmdW5jdGlvbihuLHQsZSl7dmFyIG89WVtuLnRhZ05hbWVdO28mJihvKG4sdCksUShuLHQsZSkpfShuLHQsZSl9KG4sdCxlKX0sbG49ZnVuY3Rpb24obil7bi5yZW1vdmVBdHRyaWJ1dGUobCksbi5yZW1vdmVBdHRyaWJ1dGUocyksbi5yZW1vdmVBdHRyaWJ1dGUoZil9LHNuPWZ1bmN0aW9uKG4pe0QobiwoZnVuY3Rpb24obil7SChuLEopfSkpLEgobixKKX0sZm49e0lNRzpzbixJRlJBTUU6ZnVuY3Rpb24obil7SChuLEYpfSxWSURFTzpmdW5jdGlvbihuKXtWKG4sKGZ1bmN0aW9uKG4pe0gobixGKX0pKSxIKG4sQiksbi5sb2FkKCl9LE9CSkVDVDpmdW5jdGlvbihuKXtIKG4sUCl9fSxkbj1mdW5jdGlvbihuLHQpeyhmdW5jdGlvbihuKXt2YXIgdD1mbltuLnRhZ05hbWVdO3Q/dChuKTpmdW5jdGlvbihuKXtpZihTKG4pKXt2YXIgdD1VKG4pO24uc3R5bGUuYmFja2dyb3VuZEltYWdlPXQuYmFja2dyb3VuZEltYWdlfX0obil9KShuKSxmdW5jdGlvbihuLHQpe0wobil8fE8obil8fChNKG4sdC5jbGFzc19lbnRlcmVkKSxNKG4sdC5jbGFzc19leGl0ZWQpLE0obix0LmNsYXNzX2FwcGxpZWQpLE0obix0LmNsYXNzX2xvYWRpbmcpLE0obix0LmNsYXNzX2xvYWRlZCksTShuLHQuY2xhc3NfZXJyb3IpKX0obix0KSx3KG4pLCQobil9LF9uPVsiSU1HIiwiSUZSQU1FIiwiVklERU8iXSxnbj1mdW5jdGlvbihuKXtyZXR1cm4gbi51c2VfbmF0aXZlJiYibG9hZGluZyJpbiBIVE1MSW1hZ2VFbGVtZW50LnByb3RvdHlwZX0sdm49ZnVuY3Rpb24obix0LGUpe24uZm9yRWFjaCgoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuLmlzSW50ZXJzZWN0aW5nfHxuLmludGVyc2VjdGlvblJhdGlvPjB9KG4pP2Z1bmN0aW9uKG4sdCxlLG8pe3ZhciBpPWZ1bmN0aW9uKG4pe3JldHVybiB4LmluZGV4T2YoayhuKSk+PTB9KG4pO0EobiwiZW50ZXJlZCIpLE4obixlLmNsYXNzX2VudGVyZWQpLE0obixlLmNsYXNzX2V4aXRlZCksZnVuY3Rpb24obix0LGUpe3QudW5vYnNlcnZlX2VudGVyZWQmJlQobixlKX0obixlLG8pLEMoZS5jYWxsYmFja19lbnRlcixuLHQsbyksaXx8dW4obixlLG8pfShuLnRhcmdldCxuLHQsZSk6ZnVuY3Rpb24obix0LGUsbyl7TChuKXx8KE4obixlLmNsYXNzX2V4aXRlZCksZnVuY3Rpb24obix0LGUsbyl7ZS5jYW5jZWxfb25fZXhpdCYmZnVuY3Rpb24obil7cmV0dXJuIGsobik9PT12fShuKSYmIklNRyI9PT1uLnRhZ05hbWUmJihhbihuKSxmdW5jdGlvbihuKXtEKG4sKGZ1bmN0aW9uKG4pe2xuKG4pfSkpLGxuKG4pfShuKSxzbihuKSxNKG4sZS5jbGFzc19sb2FkaW5nKSxSKG8sLTEpLHcobiksQyhlLmNhbGxiYWNrX2NhbmNlbCxuLHQsbykpfShuLHQsZSxvKSxDKGUuY2FsbGJhY2tfZXhpdCxuLHQsbykpfShuLnRhcmdldCxuLHQsZSl9KSl9LGJuPWZ1bmN0aW9uKG4pe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKX0scG49ZnVuY3Rpb24obil7cmV0dXJuIG4uY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwobi5lbGVtZW50c19zZWxlY3Rvcil9LG1uPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gayhuKT09PW19KG4pfSxobj1mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gYm4obikuZmlsdGVyKEwpfShufHxwbih0KSl9LEVuPWZ1bmN0aW9uKG4sZSl7dmFyIGk9YyhuKTt0aGlzLl9zZXR0aW5ncz1pLHRoaXMubG9hZGluZ0NvdW50PTAsZnVuY3Rpb24obix0KXtvJiYhZ24obikmJih0Ll9vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUpe3ZuKGUsbix0KX0pLGZ1bmN0aW9uKG4pe3JldHVybntyb290Om4uY29udGFpbmVyPT09ZG9jdW1lbnQ/bnVsbDpuLmNvbnRhaW5lcixyb290TWFyZ2luOm4udGhyZXNob2xkc3x8bi50aHJlc2hvbGQrInB4In19KG4pKSl9KGksdGhpcyksZnVuY3Rpb24obixlKXt0JiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIiwoZnVuY3Rpb24oKXshZnVuY3Rpb24obix0KXt2YXIgZTsoZT1wbihuKSxibihlKS5maWx0ZXIobW4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtNKHQsbi5jbGFzc19lcnJvciksdyh0KX0pKSx0LnVwZGF0ZSgpfShuLGUpfSkpfShpLHRoaXMpLHRoaXMudXBkYXRlKGUpfTtyZXR1cm4gRW4ucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24obil7dmFyIHQsaSxhPXRoaXMuX3NldHRpbmdzLHI9aG4obixhKTtHKHRoaXMsci5sZW5ndGgpLCFlJiZvP2duKGEpP2Z1bmN0aW9uKG4sdCxlKXtuLmZvckVhY2goKGZ1bmN0aW9uKG4pey0xIT09X24uaW5kZXhPZihuLnRhZ05hbWUpJiZmdW5jdGlvbihuLHQsZSl7bi5zZXRBdHRyaWJ1dGUoImxvYWRpbmciLCJsYXp5IiksY24obix0LGUpLGZ1bmN0aW9uKG4sdCl7dmFyIGU9WVtuLnRhZ05hbWVdO2UmJmUobix0KX0obix0KSxBKG4saCl9KG4sdCxlKX0pKSxHKGUsMCl9KHIsYSx0aGlzKTooaT1yLGZ1bmN0aW9uKG4pe24uZGlzY29ubmVjdCgpfSh0PXRoaXMuX29ic2VydmVyKSxmdW5jdGlvbihuLHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5vYnNlcnZlKHQpfSkpfSh0LGkpKTp0aGlzLmxvYWRBbGwocil9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZlciYmdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHBuKHRoaXMuX3NldHRpbmdzKS5mb3JFYWNoKChmdW5jdGlvbihuKXskKG4pfSkpLGRlbGV0ZSB0aGlzLl9vYnNlcnZlcixkZWxldGUgdGhpcy5fc2V0dGluZ3MsZGVsZXRlIHRoaXMubG9hZGluZ0NvdW50LGRlbGV0ZSB0aGlzLnRvTG9hZENvdW50fSxsb2FkQWxsOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT10aGlzLl9zZXR0aW5ncztobihuLGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe1Qobix0KSx1bihuLGUsdCl9KSl9LHJlc3RvcmVBbGw6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLl9zZXR0aW5ncztwbihuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtkbih0LG4pfSkpfX0sRW4ubG9hZD1mdW5jdGlvbihuLHQpe3ZhciBlPWModCk7dW4obixlKX0sRW4ucmVzZXRTdGF0dXM9ZnVuY3Rpb24obil7dyhuKX0sdCYmZnVuY3Rpb24obix0KXtpZih0KWlmKHQubGVuZ3RoKWZvcih2YXIgZSxvPTA7ZT10W29dO28rPTEpdShuLGUpO2Vsc2UgdShuLHQpfShFbix3aW5kb3cubGF6eUxvYWRPcHRpb25zKSxFbn0pKTsK"}},"time_used":247,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":247,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.863Z","timestamp":1785145403863,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-1c1b7\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":115127,"size_decoded":34422,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65533), with no line terminators","md5":"9a98016751e498c06d434cc022ca1a44","sha1":"6aa9af5fe436eab9c313de9f0bea072c04637624","sha256":"da9ed5720b674f0d297fe621ac2d8d518c4e622bef1e9b0d4ae489dee9aa43f8","sha512":"de3bf5e595ed42258fcde6d93ad40c0d9dc8e523f8e01fcc93ca6588588fad07a26d7115c6583486be286a6cd7fa35720091876afb0aaa2de4de58c370151e3d","ssdeep":"1536:ruFT4Dz18VoHGwkbrhhE87DbkI0c9cEpgqXjaDMf:i4DzjHGwkbfRDbn0czpyE","tlshash":"afb3648cfa81b4da47e775b0105f500ba1b65b45f84e8980f365e9c86c7e88ea037f6d","first_seen":"2023-11-03T09:26:42Z","last_seen":"2026-08-11T19:15:39.184203Z","times_seen":17060,"resource_available":true,"data":"IWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgcixlLG47ZT17fSwobj1mdW5jdGlvbih0KXtpZihlW3RdKXJldHVybiBlW3RdLmV4cG9ydHM7dmFyIG89ZVt0XT17aTp0LGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIHJbdF0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsbiksby5sPSEwLG8uZXhwb3J0c30pLm09cj1bZnVuY3Rpb24odCxyLGUpe2UoMSksZSg3MSksZSg3OCksZSg4MSksZSg4MiksZSg4NCksZSg4NyksZSg5MSksZSg5MiksZSgxMDApLGUoMTAxKSxlKDEwNCksZSgxMDkpLGUoMTI1KSxlKDEyOSksZSgxMzApLGUoMTMyKSxlKDEzNCksZSgxMzcpLGUoMTM4KSxlKDEzOSksZSgxNDApLGUoMTQxKSxlKDE0NSksZSgxNDgpLGUoMTU1KSxlKDE1NiksZSgxNTkpLGUoMTYwKSxlKDE2NiksZSgxNjcpLGUoMTcwKSxlKDE3MSksZSgxNzIpLGUoMTczKSxlKDE3NSksZSgxNzYpLGUoMTc4KSxlKDE3OSksZSgxODApLGUoMTgxKSxlKDE4MiksZSgxODMpLGUoMTg0KSxlKDE4OSksZSgyMTIpLGUoMjEzKSxlKDIxNCksZSgyMTYpLGUoMjE3KSxlKDIxOCksZSgyMTkpLGUoMjIwKSxlKDIyMSksZSgyMjYpLGUoMjI3KSxlKDIyOCksZSgyMjkpLGUoMjMwKSxlKDIzMSksZSgyMzMpLGUoMjM0KSxlKDIzNSksZSgyMzYpLGUoMjM3KSxlKDIzOCksZSgyMzkpLGUoMjQwKSxlKDI0MSksZSgyNDIpLGUoMjQzKSxlKDI0NiksZSgyNDgpLGUoMjUwKSxlKDI1MiksZSgyNTMpLGUoMjU0KSxlKDI1NSksZSgyNTYpLGUoMjU3KSxlKDI2MCksZSgyNjEpLGUoMjYzKSxlKDI2NCksZSgyNjUpLGUoMjY2KSxlKDI2NyksZSgyNjgpLGUoMjcxKSxlKDI3MiksZSgyNzMpLGUoMjc0KSxlKDI3NiksZSgyNzcpLGUoMjc4KSxlKDI3OSksZSgyODApLGUoMjg0KSxlKDI4NSksZSgyODYpLGUoMjg3KSxlKDI4OCksZSgyODkpLGUoMjkwKSxlKDI5MiksZSgyOTMpLGUoMjk0KSxlKDI5OCksZSgyOTkpLGUoMzAxKSxlKDMwMiksZSgzMDMpLGUoMzA0KSxlKDMxMCksZSgzMTIpLGUoMzEzKSxlKDMxNSksZSgzMTYpLGUoMzE3KSxlKDMxOCksZSgzMTkpLGUoMzIwKSxlKDMyMSksZSgzMjIpLGUoMzIzKSxlKDMyNiksZSgzMjcpLGUoMzM0KSxlKDMzNyksZSgzMzgpLGUoMzM5KSxlKDM0MCksZSgzNDEpLGUoMzQzKSxlKDM0NCksZSgzNDYpLGUoMzQ3KSxlKDM0OSksZSgzNTApLGUoMzUyKSxlKDM1MyksZSgzNTQpLGUoMzU1KSxlKDM1NiksZSgzNTcpLGUoMzU4KSxlKDM2MCksZSgzNjEpLGUoMzYzKSxlKDM2NCksZSgzNjYpLGUoMzY4KSxlKDM2OSksZSgzNzEpLGUoMzc1KSxlKDM3NiksZSgzNzgpLGUoMzc5KSxlKDM4MSksZSgzODIpLGUoMzgzKSxlKDM4NCksZSgzODUpLGUoMzg2KSxlKDM4NyksZSgzODgpLGUoMzg5KSxlKDM5MyksZSgzOTQpLGUoMzk1KSxlKDM5NiksZSgzOTcpLGUoNDAwKSxlKDQwMSksZSg0MDIpLGUoNDAzKSxlKDQwNCksZSg0MDcpLGUoNDA4KSxlKDQwOSksZSg0MTApLGUoNDEyKSxlKDQxNSksZSg0MTcpLGUoNDE4KSx0LmV4cG9ydHM9ZSg0MTkpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzkpLGk9ZSg2MyksYT1lKDY4KSx1PWUoNzApO24oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOmUoNikoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pKXx8IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpfSx7cHVzaDpmdW5jdGlvbih0KXt2YXIgcj1vKHRoaXMpLGU9aShyKSxuPWFyZ3VtZW50cy5sZW5ndGg7dShlK24pO2Zvcih2YXIgYz0wO2M8bjtjKyspcltlXT1hcmd1bWVudHNbY10sZSsrO3JldHVybiBhKHIsZSksZX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMyksaT1uKDQpLmYsYT1uKDQzKSx1PW4oNDcpLGM9bigzNyksZj1uKDU1KSxzPW4oNjcpO3IuZXhwb3J0cz1mdW5jdGlvbihyLGUpe3ZhciBuLHAsbCxoPXIudGFyZ2V0LHY9ci5nbG9iYWwseT1yLnN0YXQsZD12P286eT9vW2hdfHxjKGgse30pOihvW2hdfHx7fSkucHJvdG90eXBlO2lmKGQpZm9yKG4gaW4gZSl7aWYocD1lW25dLGw9ci5kb250Q2FsbEdldFNldD8obD1pKGQsbikpJiZsLnZhbHVlOmRbbl0sIXModj9uOmgrKHk/Ii4iOiIjIikrbixyLmZvcmNlZCkmJmwhPT10KXtpZih0eXBlb2YgcD09dHlwZW9mIGwpY29udGludWU7ZihwLGwpfShyLnNoYW18fGwmJmwuc2hhbSkmJmEocCwic2hhbSIsITApLHUoZCxuLHAscil9fX0sZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9dC5leHBvcnRzPWUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8ZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxlKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHx0aGlzfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg1KSxvPWUoNyksaT1lKDkpLGE9ZSgxMCksdT1lKDExKSxjPWUoMTcpLGY9ZSgzOCkscz1lKDQxKSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ci5mPW4/cDpmdW5jdGlvbih0LHIpe2lmKHQ9dSh0KSxyPWMocikscyl0cnl7cmV0dXJuIHAodCxyKX1jYXRjaCh0KXt9aWYoZih0LHIpKXJldHVybiBhKCFvKGkuZix0LHIpLHRbcl0pfX0sZnVuY3Rpb24odCxyLGUpe2U9ZSg2KSx0LmV4cG9ydHM9IWUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX19LGZ1bmN0aW9uKHQscixlKXtlPWUoOCk7dmFyIG49RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPWU/bi5iaW5kKG4pOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixhcmd1bWVudHMpfX0sZnVuY3Rpb24odCxyLGUpe2U9ZSg2KSx0LmV4cG9ydHM9IWUoKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdHx8dC5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaT1vJiYhbi5jYWxsKHsxOjJ9LDEpO3IuZj1pP2Z1bmN0aW9uKHQpe3JldHVybiEhKHQ9byh0aGlzLHQpKSYmdC5lbnVtZXJhYmxlfTpufSxmdW5jdGlvbih0LHIpe3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTpyfX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEyKSxvPWUoMTUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbihvKHQpKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKSxvPWUoNiksaT1lKDE0KSxhPU9iamVjdCx1PW4oIiIuc3BsaXQpO3QuZXhwb3J0cz1vKChmdW5jdGlvbigpe3JldHVybiFhKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PWkodCk/dSh0LCIiKTphKHQpfTphfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg4KSxvPShlPUZ1bmN0aW9uLnByb3RvdHlwZSkuY2FsbDtlPW4mJmUuYmluZC5iaW5kKG8sbyk7dC5leHBvcnRzPW4/ZTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0LGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPShlPWUoMTMpKSh7fS50b1N0cmluZyksbz1lKCIiLnNsaWNlKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG8obih0KSw4LC0xKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDE2KSxvPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYobih0KSl0aHJvdyBvKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fX0sZnVuY3Rpb24ocixlKXtyLmV4cG9ydHM9ZnVuY3Rpb24ocil7cmV0dXJuIG51bGw9PT1yfHxyPT09dH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDE4KSxvPWUoMjIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD1uKHQsInN0cmluZyIpLG8odCk/dDp0KyIifX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNyksaT1uKDE5KSxhPW4oMjIpLHU9bigyOSksYz1uKDMyKSxmPShuPW4oMzMpLFR5cGVFcnJvcikscz1uKCJ0b1ByaW1pdGl2ZSIpO3IuZXhwb3J0cz1mdW5jdGlvbihyLGUpe2lmKCFpKHIpfHxhKHIpKXJldHVybiByO3ZhciBuPXUocixzKTtpZihuKXtpZihuPW8obixyLGU9ZT09PXQ/ImRlZmF1bHQiOmUpLCFpKG4pfHxhKG4pKXJldHVybiBuO3Rocm93IGYoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiBjKHIsZT1lPT09dD8ibnVtYmVyIjplKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIwKSxvPShlPWUoMjEpKS5hbGw7dC5leHBvcnRzPWUuSVNfSFRNTEREQT9mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6bih0KXx8dD09PW99OmZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdD9udWxsIT09dDpuKHQpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPShlPWUoMjEpKS5hbGw7dC5leHBvcnRzPWUuSVNfSFRNTEREQT9mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8dD09PW59OmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fX0sZnVuY3Rpb24ocixlKXt2YXIgbj0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGw7ci5leHBvcnRzPXthbGw6bixJU19IVE1MRERBOnZvaWQgMD09PW4mJm4hPT10fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMjMpLG89ZSgyMCksaT1lKDI0KSxhPShlPWUoMjUpLE9iamVjdCk7dC5leHBvcnRzPWU/ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fTpmdW5jdGlvbih0KXt2YXIgcj1uKCJTeW1ib2wiKTtyZXR1cm4gbyhyKSYmaShyLnByb3RvdHlwZSxhKHQpKX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDMpLGk9bigyMCk7ci5leHBvcnRzPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj8obj1vW3JdLGkobik/bjp0KTpvW3JdJiZvW3JdW2VdO3ZhciBufX0sZnVuY3Rpb24odCxyLGUpe2U9ZSgxMyksdC5leHBvcnRzPWUoe30uaXNQcm90b3R5cGVPZil9LGZ1bmN0aW9uKHQscixlKXtlPWUoMjYpLHQuZXhwb3J0cz1lJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyNyksbz1lKDYpLGk9ZSgzKS5TdHJpbmc7dC5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIW8oKGZ1bmN0aW9uKCl7dmFyIHQ9U3ltYm9sKCk7cmV0dXJuIWkodCl8fCEoT2JqZWN0KHQpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJm4mJm48NDF9KSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbixvLGk9ZSgzKSxhPWUoMjgpO2U9aS5wcm9jZXNzLGk9aS5EZW5vOyEobz0oaT0oaT1lJiZlLnZlcnNpb25zfHxpJiZpLnZlcnNpb24pJiZpLnY4KT8wPChuPWkuc3BsaXQoIi4iKSlbMF0mJm5bMF08ND8xOisoblswXStuWzFdKTpvKSYmYSYmKCEobj1hLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8NzQ8PW5bMV0pJiYobj1hLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYobz0rblsxXSksdC5leHBvcnRzPW99LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZTdHJpbmcobmF2aWdhdG9yLnVzZXJBZ2VudCl8fCIifSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigzMCksaT1uKDE2KTtyLmV4cG9ydHM9ZnVuY3Rpb24ocixlKXtyZXR1cm4gZT1yW2VdLGkoZSk/dDpvKGUpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMjApLG89ZSgzMSksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpcmV0dXJuIHQ7dGhyb3cgaShvKHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKX19LGZ1bmN0aW9uKHQscil7dmFyIGU9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGUodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNyksbz1lKDIwKSxpPWUoMTkpLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe3ZhciBlLHU7aWYoInN0cmluZyI9PT1yJiZvKGU9dC50b1N0cmluZykmJiFpKHU9bihlLHQpKSlyZXR1cm4gdTtpZihvKGU9dC52YWx1ZU9mKSYmIWkodT1uKGUsdCkpKXJldHVybiB1O2lmKCJzdHJpbmciIT09ciYmbyhlPXQudG9TdHJpbmcpJiYhaSh1PW4oZSx0KSkpcmV0dXJuIHU7dGhyb3cgYSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKSxvPWUoMzQpLGk9ZSgzOCksYT1lKDQwKSx1PWUoMjYpLGM9KGU9ZSgyNSksbi5TeW1ib2wpLGY9bygid2tzIikscz1lP2MuZm9yfHxjOmMmJmMud2l0aG91dFNldHRlcnx8YTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkoZix0KXx8KGZbdF09dSYmaShjLHQpP2NbdF06cygiU3ltYm9sLiIrdCkpLGZbdF19fSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigzNSksaT1uKDM2KTsoci5leHBvcnRzPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIGlbcl18fChpW3JdPWUhPT10P2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4zMS4wIixtb2RlOm8/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDIzIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjMxLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9ITF9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMpLG89ZSgzNyk7ZT1uW2U9Il9fY29yZS1qc19zaGFyZWRfXyJdfHxvKGUse30pO3QuZXhwb3J0cz1lfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXt0cnl7byhuLHQse3ZhbHVlOnIsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2goZSl7blt0XT1yfXJldHVybiByfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTMpLG89ZSgzOSksaT1uKHt9Lmhhc093blByb3BlcnR5KTt0LmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxyKXtyZXR1cm4gaShvKHQpLHIpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTUpLG89T2JqZWN0O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbyhuKHQpKX19LGZ1bmN0aW9uKHIsZSxuKXtuPW4oMTMpO3ZhciBvPTAsaT1NYXRoLnJhbmRvbSgpLGE9bigxLi50b1N0cmluZyk7ci5leHBvcnRzPWZ1bmN0aW9uKHIpe3JldHVybiJTeW1ib2woIisocj09PXQ/IiI6cikrIilfIithKCsrbytpLDM2KX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSg2KSxpPWUoNDIpO3QuZXhwb3J0cz0hbiYmIW8oKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShpKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMpLG89KGU9ZSgxOSksbi5kb2N1bWVudCksaT1lKG8pJiZlKG8uY3JlYXRlRWxlbWVudCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpP28uY3JlYXRlRWxlbWVudCh0KTp7fX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSg0NCksaT1lKDEwKTt0LmV4cG9ydHM9bj9mdW5jdGlvbih0LHIsZSl7cmV0dXJuIG8uZih0LHIsaSgxLGUpKX06ZnVuY3Rpb24odCxyLGUpe3JldHVybiB0W3JdPWUsdH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSg0MSksaT1lKDQ1KSxhPWUoNDYpLHU9ZSgxNyksYz1UeXBlRXJyb3IsZj1PYmplY3QuZGVmaW5lUHJvcGVydHkscz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHA9ImVudW1lcmFibGUiLGw9ImNvbmZpZ3VyYWJsZSIsaD0id3JpdGFibGUiO3IuZj1uP2k/ZnVuY3Rpb24odCxyLGUpe3ZhciBuO3JldHVybiBhKHQpLHI9dShyKSxhKGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYicHJvdG90eXBlIj09PXImJiJ2YWx1ZSJpbiBlJiZoIGluIGUmJiFlW2hdJiYobj1zKHQscikpJiZuW2hdJiYodFtyXT1lLnZhbHVlLGU9e2NvbmZpZ3VyYWJsZToobCBpbiBlP2U6bilbbF0sZW51bWVyYWJsZToocCBpbiBlP2U6bilbcF0sd3JpdGFibGU6ITF9KSxmKHQscixlKX06ZjpmdW5jdGlvbih0LHIsZSl7aWYoYSh0KSxyPXUociksYShlKSxvKXRyeXtyZXR1cm4gZih0LHIsZSl9Y2F0Y2godCl7fWlmKCJnZXQiaW4gZXx8InNldCJpbiBlKXRocm93IGMoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIGUmJih0W3JdPWUudmFsdWUpLHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg1KTtlPWUoNik7dC5leHBvcnRzPW4mJmUoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxOSksbz1TdHJpbmcsaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpcmV0dXJuIHQ7dGhyb3cgaShvKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMjApLGk9big0NCksYT1uKDQ4KSx1PW4oMzcpO3IuZXhwb3J0cz1mdW5jdGlvbihyLGUsbixjKXt2YXIgZj0oYz1jfHx7fSkuZW51bWVyYWJsZSxzPWMubmFtZSE9PXQ/Yy5uYW1lOmU7aWYobyhuKSYmYShuLHMsYyksYy5nbG9iYWwpZj9yW2VdPW46dShlLG4pO2Vsc2V7dHJ5e2MudW5zYWZlP3JbZV0mJihmPSEwKTpkZWxldGUgcltlXX1jYXRjaChyKXt9Zj9yW2VdPW46aS5mKHIsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohYy5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IWMubm9uV3JpdGFibGV9KX1yZXR1cm4gcn19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDEzKSxpPW4oNiksYT1uKDIwKSx1PW4oMzgpLGM9big1KSxmPW4oNDkpLkNPTkZJR1VSQUJMRSxzPW4oNTApLHA9KG49big1MSkpLmVuZm9yY2UsbD1uLmdldCxoPVN0cmluZyx2PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx5PW8oIiIuc2xpY2UpLGQ9bygiIi5yZXBsYWNlKSxnPW8oW10uam9pbiksYj1jJiYhaSgoZnVuY3Rpb24oKXtyZXR1cm4gOCE9PXYoKGZ1bmN0aW9uKCl7fSksImxlbmd0aCIse3ZhbHVlOjh9KS5sZW5ndGh9KSksbT1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7cj1yLmV4cG9ydHM9ZnVuY3Rpb24ocixlLG4peyJTeW1ib2woIj09PXkoaChlKSwwLDcpJiYoZT0iWyIrZChoKGUpLC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksbiYmbi5nZXR0ZXImJihlPSJnZXQgIitlKSxuJiZuLnNldHRlciYmKGU9InNldCAiK2UpLCghdShyLCJuYW1lIil8fGYmJnIubmFtZSE9PWUpJiYoYz92KHIsIm5hbWUiLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pOnIubmFtZT1lKSxiJiZuJiZ1KG4sImFyaXR5IikmJnIubGVuZ3RoIT09bi5hcml0eSYmdihyLCJsZW5ndGgiLHt2YWx1ZTpuLmFyaXR5fSk7dHJ5e24mJnUobiwiY29uc3RydWN0b3IiKSYmbi5jb25zdHJ1Y3Rvcj9jJiZ2KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSk6ci5wcm90b3R5cGUmJihyLnByb3RvdHlwZT10KX1jYXRjaChyKXt9cmV0dXJuIG49cChyKSx1KG4sInNvdXJjZSIpfHwobi5zb3VyY2U9ZyhtLCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKSkscn07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXIoKGZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcykmJmwodGhpcykuc291cmNlfHxzKHRoaXMpfSksInRvU3RyaW5nIil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSgzOCksaT1GdW5jdGlvbi5wcm90b3R5cGUsYT1uJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO289KGU9byhpLCJuYW1lIikpJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLGk9ZSYmKCFufHxuJiZhKGksIm5hbWUiKS5jb25maWd1cmFibGUpO3QuZXhwb3J0cz17RVhJU1RTOmUsUFJPUEVSOm8sQ09ORklHVVJBQkxFOml9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMyksbz1lKDIwKSxpPShlPWUoMzYpLG4oRnVuY3Rpb24udG9TdHJpbmcpKTtvKGUuaW5zcGVjdFNvdXJjZSl8fChlLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCl9KSx0LmV4cG9ydHM9ZS5pbnNwZWN0U291cmNlfSxmdW5jdGlvbih0LHIsZSl7dmFyIG4sbyxpLGEsdT1lKDUyKSxjPWUoMyksZj1lKDE5KSxzPWUoNDMpLHA9ZSgzOCksbD1lKDM2KSxoPWUoNTMpLHY9KGU9ZSg1NCksIk9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIikseT1jLlR5cGVFcnJvcixkPShjPWMuV2Vha01hcCx1fHxsLnN0YXRlPygoaT1sLnN0YXRlfHwobC5zdGF0ZT1uZXcgYykpLmdldD1pLmdldCxpLmhhcz1pLmhhcyxpLnNldD1pLnNldCxuPWZ1bmN0aW9uKHQscil7aWYoaS5oYXModCkpdGhyb3cgeSh2KTtyZXR1cm4gci5mYWNhZGU9dCxpLnNldCh0LHIpLHJ9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0KHQpfHx7fX0sZnVuY3Rpb24odCl7cmV0dXJuIGkuaGFzKHQpfSk6KGVbYT1oKCJzdGF0ZSIpXT0hMCxuPWZ1bmN0aW9uKHQscil7aWYocCh0LGEpKXRocm93IHkodik7cmV0dXJuIHIuZmFjYWRlPXQscyh0LGEscikscn0sbz1mdW5jdGlvbih0KXtyZXR1cm4gcCh0LGEpP3RbYV06e319LGZ1bmN0aW9uKHQpe3JldHVybiBwKHQsYSl9KSk7dC5leHBvcnRzPXtzZXQ6bixnZXQ6byxoYXM6ZCxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBkKHQpP28odCk6bih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgZTtpZighZihyKXx8KGU9byhyKSkudHlwZSE9PXQpdGhyb3cgeSgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBlfX19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKTtlPWUoMjApLG49bi5XZWFrTWFwO3QuZXhwb3J0cz1lKG4pJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKG4pKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMzQpLG89ZSg0MCksaT1uKCJrZXlzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpW3RdfHwoaVt0XT1vKHQpKX19LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPXt9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzOCksbz1lKDU2KSxpPWUoNCksYT1lKDQ0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe2Zvcih2YXIgdT1vKHIpLGM9YS5mLGY9aS5mLHM9MDtzPHUubGVuZ3RoO3MrKyl7dmFyIHA9dVtzXTtuKHQscCl8fGUmJm4oZSxwKXx8Yyh0LHAsZihyLHApKX19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyMyksbz1lKDEzKSxpPWUoNTcpLGE9ZSg2NiksdT1lKDQ2KSxjPW8oW10uY29uY2F0KTt0LmV4cG9ydHM9bigiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIHI9aS5mKHUodCkpLGU9YS5mO3JldHVybiBlP2MocixlKHQpKTpyfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNTgpLG89ZSg2NSkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtyLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBuKHQsbyl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMyksbz1lKDM4KSxpPWUoMTEpLGE9ZSg1OSkuaW5kZXhPZix1PWUoNTQpLGM9bihbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXt2YXIgZSxuPWkodCksZj0wLHM9W107Zm9yKGUgaW4gbikhbyh1LGUpJiZvKG4sZSkmJmMocyxlKTtmb3IoO3IubGVuZ3RoPmY7KW8obixlPXJbZisrXSkmJih+YShzLGUpfHxjKHMsZSkpO3JldHVybiBzfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTEpLG89ZSg2MCksaT1lKDYzKTtlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUsYSl7dmFyIHUsYz1uKHIpLGY9aShjKSxzPW8oYSxmKTtpZih0JiZlIT1lKXtmb3IoO3M8ZjspaWYoKHU9Y1tzKytdKSE9dSlyZXR1cm4hMH1lbHNlIGZvcig7czxmO3MrKylpZigodHx8cyBpbiBjKSYmY1tzXT09PWUpcmV0dXJuIHR8fHN8fDA7cmV0dXJuIXQmJi0xfX07dC5leHBvcnRzPXtpbmNsdWRlczplKCEwKSxpbmRleE9mOmUoITEpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNjEpLG89TWF0aC5tYXgsaT1NYXRoLm1pbjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtyZXR1cm4odD1uKHQpKTwwP28odCtyLDApOmkodCxyKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDYyKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT10fHwwPT10PzA6bih0KX19LGZ1bmN0aW9uKHQscil7dmFyIGU9TWF0aC5jZWlsLG49TWF0aC5mbG9vcjt0LmV4cG9ydHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24odCl7cmV0dXJuKDA8KHQ9K3QpP246ZSkodCl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg2NCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQubGVuZ3RoKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDYxKSxvPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gMDx0P28obih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sZnVuY3Rpb24odCxyKXtyLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNiksbz1lKDIwKSxpPS8jfFwucHJvdG90eXBlXC4vLGE9KGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4odD11W2EodCldKT09Znx8dCE9YyYmKG8ocik/bihyKTohIXIpfSxlLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UoaSwiLiIpLnRvTG93ZXJDYXNlKCl9KSx1PWUuZGF0YT17fSxjPWUuTkFUSVZFPSJOIixmPWUuUE9MWUZJTEw9IlAiO3QuZXhwb3J0cz1lfSxmdW5jdGlvbihyLGUsbil7dmFyIG89big1KSxpPW4oNjkpLGE9VHlwZUVycm9yLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtvPW8mJiFmdW5jdGlvbigpe2lmKHRoaXMhPT10KXJldHVybiAxO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3IuZXhwb3J0cz1vP2Z1bmN0aW9uKHQscil7aWYoaSh0KSYmIXUodCwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgYSgiQ2Fubm90IHNldCByZWFkIG9ubHkgLmxlbmd0aCIpO3JldHVybiB0Lmxlbmd0aD1yfTpmdW5jdGlvbih0LHIpe3JldHVybiB0Lmxlbmd0aD1yfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTQpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1uKHQpfX0sZnVuY3Rpb24odCxyKXt2YXIgZT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKDkwMDcxOTkyNTQ3NDA5OTE8dCl0aHJvdyBlKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gdH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3MiksaT1lKDExKSxhPShlPWUoNzMpLEFycmF5KTtuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se3RvUmV2ZXJzZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbyhpKHRoaXMpLGEpfX0pLGUoInRvUmV2ZXJzZWQiKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNjMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT1uKHQpLG89bmV3IHIoZSksaT0wO2k8ZTtpKyspb1tpXT10W2UtaS0xXTtyZXR1cm4gb319LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDMzKSxpPW4oNzQpLGE9KG49big0NCkuZixvKCJ1bnNjb3BhYmxlcyIpKSx1PUFycmF5LnByb3RvdHlwZTt1W2FdPT10JiZuKHUsYSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmkobnVsbCl9KSxyLmV4cG9ydHM9ZnVuY3Rpb24odCl7dVthXVt0XT0hMH19LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKCl7fWZ1bmN0aW9uIGkodCl7cmV0dXJuIjxzY3JpcHQ+Iit0KyI8LyIrdisiPiJ9dmFyIGEsdT1uKDQ2KSxjPW4oNzUpLGY9big2NSkscz1uKDU0KSxwPW4oNzcpLGw9big0MiksaD0obj1uKDUzKSwicHJvdG90eXBlIiksdj0ic2NyaXB0Iix5PW4oIklFX1BST1RPIiksZD1mdW5jdGlvbigpe3RyeXthPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKHQpe312YXIgdDtkPSJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnR8fGRvY3VtZW50LmRvbWFpbiYmYT9mdW5jdGlvbih0KXt0LndyaXRlKGkoIiIpKSx0LmNsb3NlKCk7dmFyIHI9dC5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiB0PW51bGwscn0oYSk6KCh0PWwoImlmcmFtZSIpKS5zdHlsZS5kaXNwbGF5PSJub25lIixwLmFwcGVuZENoaWxkKHQpLHQuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSwodD10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKGkoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgcj1mLmxlbmd0aDtyLS07KWRlbGV0ZSBkW2hdW2Zbcl1dO3JldHVybiBkKCl9O3NbeV09ITAsci5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHIsZSl7dmFyIG47cmV0dXJuIG51bGwhPT1yPyhvW2hdPXUociksbj1uZXcgbyxvW2hdPW51bGwsblt5XT1yKTpuPWQoKSxlPT09dD9uOmMuZihuLGUpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNSksbz1lKDQ1KSxpPWUoNDQpLGE9ZSg0NiksdT1lKDExKSxjPWUoNzYpO3IuZj1uJiYhbz9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LHIpe2EodCk7Zm9yKHZhciBlLG49dShyKSxvPWMociksZj1vLmxlbmd0aCxzPTA7czxmOylpLmYodCxlPW9bcysrXSxuW2VdKTtyZXR1cm4gdH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDU4KSxvPWUoNjUpO3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIG4odCxvKX19LGZ1bmN0aW9uKHQscixlKXtlPWUoMjMpLHQuZXhwb3J0cz1lKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTMpLGE9bigzMCksdT1uKDExKSxjPW4oNzkpLGY9big4MCkscz0obj1uKDczKSxBcnJheSkscD1pKGYoIkFycmF5Iikuc29ydCk7byh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHt0b1NvcnRlZDpmdW5jdGlvbihyKXtyIT09dCYmYShyKTt2YXIgZT11KHRoaXMpO2U9YyhzLGUpO3JldHVybiBwKGUscil9fSksbigidG9Tb3J0ZWQiKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNjMpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0wLG89bihyKSxpPW5ldyB0KG8pO2U8bzspaVtlXT1yW2UrK107cmV0dXJuIGl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF0ucHJvdG90eXBlfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDczKSxpPWUoNzApLGE9ZSg2MyksdT1lKDYwKSxjPWUoMTEpLGY9ZSg2MSkscz1BcnJheSxwPU1hdGgubWF4LGw9TWF0aC5taW47bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHt0b1NwbGljZWQ6ZnVuY3Rpb24odCxyKXt2YXIgZSxuLG8saCx2PWModGhpcykseT1hKHYpLGQ9dSh0LHkpLGc9MDtmb3IoMD09PSh0PWFyZ3VtZW50cy5sZW5ndGgpP2U9bj0wOm49MT09PXQ/KGU9MCx5LWQpOihlPXQtMixsKHAoZihyKSwwKSx5LWQpKSxvPWkoeStlLW4pLGg9cyhvKTtnPGQ7ZysrKWhbZ109dltnXTtmb3IoO2c8ZCtlO2crKyloW2ddPWFyZ3VtZW50c1tnLWQrMl07Zm9yKDtnPG87ZysrKWhbZ109dltnK24tZV07cmV0dXJuIGh9fSksbygidG9TcGxpY2VkIil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg4MyksaT1lKDExKSxhPUFycmF5O24oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7d2l0aDpmdW5jdGlvbih0LHIpe3JldHVybiBvKGkodGhpcyksYSx0LHIpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg2Myksbz1lKDYxKSxpPVJhbmdlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlLGEpe3ZhciB1PW4odCksYz0oZT1vKGUpKTwwP3UrZTplO2lmKHU8PWN8fGM8MCl0aHJvdyBpKCJJbmNvcnJlY3QgaW5kZXgiKTtmb3IodmFyIGY9bmV3IHIodSkscz0wO3M8dTtzKyspZltzXT1zPT09Yz9hOnRbc107cmV0dXJuIGZ9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKSxvPWUoNSksaT1lKDg1KSxhPWUoODYpLHU9KGU9ZSg2KSxuLlJlZ0V4cCksYz11LnByb3RvdHlwZTtvJiZlKChmdW5jdGlvbigpe3ZhciB0PSEwO3RyeXt1KCIuIiwiZCIpfWNhdGNoKHIpe3Q9ITF9dmFyIHIsZT17fSxuPSIiLG89dD8iZGdpbXN5IjoiZ2ltc3kiLGk9e2RvdEFsbDoicyIsZ2xvYmFsOiJnIixpZ25vcmVDYXNlOiJpIixtdWx0aWxpbmU6Im0iLHN0aWNreToieSJ9O2ZvcihyIGluIHQmJihpLmhhc0luZGljZXM9ImQiKSxpKSFmdW5jdGlvbih0LHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiBuKz1yLCEwfX0pfShyLGlbcl0pO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImZsYWdzIikuZ2V0LmNhbGwoZSkhPT1vfHxuIT09b30pKSYmaShjLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6YX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg0OCksbz1lKDQ0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBlLmdldCYmbihlLmdldCxyLHtnZXR0ZXI6ITB9KSxlLnNldCYmbihlLnNldCxyLHtzZXR0ZXI6ITB9KSxvLmYodCxyLGUpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNDYpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW4odGhpcykscj0iIjtyZXR1cm4gdC5oYXNJbmRpY2VzJiYocis9ImQiKSx0Lmdsb2JhbCYmKHIrPSJnIiksdC5pZ25vcmVDYXNlJiYocis9ImkiKSx0Lm11bHRpbGluZSYmKHIrPSJtIiksdC5kb3RBbGwmJihyKz0icyIpLHQudW5pY29kZSYmKHIrPSJ1IiksdC51bmljb2RlU2V0cyYmKHIrPSJ2IiksdC5zdGlja3kmJihyKz0ieSIpLHJ9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMTMpLGk9ZSgxNSksYT1lKDg4KSx1PW8oIiIuY2hhckNvZGVBdCk7bih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7aXNXZWxsRm9ybWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWEoaSh0aGlzKSkscj10Lmxlbmd0aCxlPTA7ZTxyO2UrKyl7dmFyIG49dSh0LGUpO2lmKDU1Mjk2PT0oNjM0ODgmbikmJig1NjMyMDw9bnx8KytlPj1yfHw1NjMyMCE9KDY0NTEyJnUodCxlKSkpKXJldHVybiExfXJldHVybiEwfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg4OSksbz1TdHJpbmc7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09bih0KSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIG8odCl9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big5MCksaT1uKDIwKSxhPW4oMTQpLHU9bigzMykoInRvU3RyaW5nVGFnIiksYz1PYmplY3QsZj0iQXJndW1lbnRzIj09YShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3IuZXhwb3J0cz1vP2E6ZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIHI9PT10PyJVbmRlZmluZWQiOm51bGw9PT1yPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKHI9ZnVuY3Rpb24odCxyKXt0cnl7cmV0dXJuIHRbcl19Y2F0Y2godCl7fX0oZT1jKHIpLHUpKT9yOmY/YShlKToiT2JqZWN0Ij09KHI9YShlKSkmJmkoZS5jYWxsZWUpPyJBcmd1bWVudHMiOnJ9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49e307bltlKDMzKSgidG9TdHJpbmdUYWciKV09InoiLHQuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcobil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3KSxpPWUoMTMpLGE9ZSgxNSksdT1lKDg4KSxjPShlPWUoNiksQXJyYXkpLGY9aSgiIi5jaGFyQXQpLHM9aSgiIi5jaGFyQ29kZUF0KSxwPWkoW10uam9pbiksbD0iIi50b1dlbGxGb3JtZWQsaD1sJiZlKChmdW5jdGlvbigpe3JldHVybiIxIiE9PW8obCwxKX0pKTtuKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmh9LHt0b1dlbGxGb3JtZWQ6ZnVuY3Rpb24oKXt2YXIgdD11KGEodGhpcykpO2lmKGgpcmV0dXJuIG8obCx0KTtmb3IodmFyIHI9dC5sZW5ndGgsZT1jKHIpLG49MDtuPHI7bisrKXt2YXIgaT1zKHQsbik7NTUyOTYhPSg2MzQ4OCZpKT9lW25dPWYodCxuKTo1NjMyMDw9aXx8cjw9bisxfHw1NjMyMCE9KDY0NTEyJnModCxuKzEpKT9lW25dPSLvv70iOihlW25dPWYodCxuKSxlWysrbl09Zih0LG4pKX1yZXR1cm4gcChlLCIiKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNzIpLG89ZSg5MyksaT1vLmFUeXBlZEFycmF5LGE9KGU9by5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG8uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKTtlKCJ0b1JldmVyc2VkIiwoZnVuY3Rpb24oKXtyZXR1cm4gbihpKHRoaXMpLGEodGhpcykpfSkpfSxmdW5jdGlvbihyLGUsbil7ZnVuY3Rpb24gbyh0KXtyZXR1cm4hIWwodCkmJih0PXYodCksaChDLHQpfHxoKF8sdCkpfXZhciBpLGEsdSxjPW4oOTQpLGY9big1KSxzPW4oMykscD1uKDIwKSxsPW4oMTkpLGg9bigzOCksdj1uKDg5KSx5PW4oMzEpLGQ9big0MyksZz1uKDQ3KSxiPW4oODUpLG09bigyNCkseD1uKDk1KSx3PW4oOTcpLFM9bigzMyksQT1uKDQwKSxFPShJPW4oNTEpKS5lbmZvcmNlLE89SS5nZXQsUj0obj1zLkludDhBcnJheSkmJm4ucHJvdG90eXBlLEk9KEk9cy5VaW50OENsYW1wZWRBcnJheSkmJkkucHJvdG90eXBlLGs9biYmeChuKSxUPVImJngoUiksTT0obj1PYmplY3QucHJvdG90eXBlLHMuVHlwZUVycm9yKSxqPShTPVMoInRvU3RyaW5nVGFnIiksQSgiVFlQRURfQVJSQVlfVEFHIikpLFA9IlR5cGVkQXJyYXlDb25zdHJ1Y3RvciIsRD1jJiYhIXcmJiJPcGVyYSIhPT12KHMub3BlcmEpLEM9KGM9ITEse0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSksXz17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LE49ZnVuY3Rpb24odCl7dmFyIHI9eCh0KTtpZihsKHIpKXJldHVybih0PU8ocikpJiZoKHQsUCk/dFtQXTpOKHIpfTtmb3IoaSBpbiBDKSh1PShhPXNbaV0pJiZhLnByb3RvdHlwZSk/RSh1KVtQXT1hOkQ9ITE7Zm9yKGkgaW4gXykodT0oYT1zW2ldKSYmYS5wcm90b3R5cGUpJiYoRSh1KVtQXT1hKTtpZigoIUR8fCFwKGspfHxrPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKGs9ZnVuY3Rpb24oKXt0aHJvdyBNKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxEKSlmb3IoaSBpbiBDKXNbaV0mJncoc1tpXSxrKTtpZigoIUR8fCFUfHxUPT09bikmJihUPWsucHJvdG90eXBlLEQpKWZvcihpIGluIEMpc1tpXSYmdyhzW2ldLnByb3RvdHlwZSxUKTtpZihEJiZ4KEkpIT09VCYmdyhJLFQpLGYmJiFoKFQsUykpZm9yKGkgaW4gYihULFMse2NvbmZpZ3VyYWJsZTpjPSEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsKHRoaXMpP3RoaXNbal06dH19KSxDKXNbaV0mJmQoc1tpXSxqLGkpO3IuZXhwb3J0cz17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpELFRZUEVEX0FSUkFZX1RBRzpjJiZqLGFUeXBlZEFycmF5OmZ1bmN0aW9uKHQpe2lmKG8odCkpcmV0dXJuIHQ7dGhyb3cgTSgiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24odCl7aWYocCh0KSYmKCF3fHxtKGssdCkpKXJldHVybiB0O3Rocm93IE0oeSh0KSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9LGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q6ZnVuY3Rpb24odCxyLGUsbil7aWYoZil7aWYoZSlmb3IodmFyIG8gaW4gQylpZigobz1zW29dKSYmaChvLnByb3RvdHlwZSx0KSl0cnl7ZGVsZXRlIG8ucHJvdG90eXBlW3RdfWNhdGNoKGUpe3RyeXtvLnByb3RvdHlwZVt0XT1yfWNhdGNoKGUpe319VFt0XSYmIWV8fGcoVCx0LCFlJiZEJiZSW3RdfHxyLG4pfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbih0LHIsZSl7dmFyIG4sbztpZihmKXtpZih3KXtpZihlKWZvcihuIGluIEMpaWYoKG89c1tuXSkmJmgobyx0KSl0cnl7ZGVsZXRlIG9bdF19Y2F0Y2godCl7fWlmKGtbdF0mJiFlKXJldHVybjt0cnl7cmV0dXJuIGcoayx0LCFlJiZEJiZrW3RdfHxyKX1jYXRjaCh0KXt9fWZvcihuIGluIEMpIShvPXNbbl0pfHxvW3RdJiYhZXx8ZyhvLHQscil9fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I6Tixpc1ZpZXc6ZnVuY3Rpb24odCl7cmV0dXJuISFsKHQpJiYoIkRhdGFWaWV3Ij09PSh0PXYodCkpfHxoKEMsdCl8fGgoXyx0KSl9LGlzVHlwZWRBcnJheTpvLFR5cGVkQXJyYXk6ayxUeXBlZEFycmF5UHJvdG90eXBlOlR9fSxmdW5jdGlvbih0LHIpe3QuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzOCksbz1lKDIwKSxpPWUoMzkpLGE9ZSg1MyksdT0oZT1lKDk2KSxhKCJJRV9QUk9UTyIpKSxjPU9iamVjdCxmPWMucHJvdG90eXBlO3QuZXhwb3J0cz1lP2MuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7dmFyIHI9aSh0KTtyZXR1cm4gbihyLHUpP3JbdV06KHQ9ci5jb25zdHJ1Y3RvcixvKHQpJiZyIGluc3RhbmNlb2YgdD90LnByb3RvdHlwZTpyIGluc3RhbmNlb2YgYz9mOm51bGwpfX0sZnVuY3Rpb24odCxyLGUpe2U9ZSg2KSx0LmV4cG9ydHM9IWUoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDk4KSxpPW4oNDYpLGE9big5OSk7ci5leHBvcnRzPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciB0LHI9ITEsZT17fTt0cnl7KHQ9byhPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKSkoZSxbXSkscj1lIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goZSl7fXJldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBpKGUpLGEobikscj90KGUsbik6ZS5fX3Byb3RvX189bixlfX0oKTp0KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTMpLG89ZSgzMCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlKXt0cnl7cmV0dXJuIG4obyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscilbZV0pKX1jYXRjaCh0KXt9fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMjApLG89U3RyaW5nLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHR8fG4odCkpcmV0dXJuIHQ7dGhyb3cgaSgiQ2FuJ3Qgc2V0ICIrbyh0KSsiIGFzIGEgcHJvdG90eXBlIil9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big5MyksaT1uKDEzKSxhPW4oMzApLHU9big3OSksYz1vLmFUeXBlZEFycmF5LGY9by5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3Iscz0obj1vLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsaShvLlR5cGVkQXJyYXlQcm90b3R5cGUuc29ydCkpO24oInRvU29ydGVkIiwoZnVuY3Rpb24ocil7ciE9PXQmJmEocik7dmFyIGU9Yyh0aGlzKTtlPXUoZihlKSxlKTtyZXR1cm4gcyhlLHIpfSkpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg4Myksbz1lKDkzKSxpPWUoMTAyKSxhPWUoNjEpLHU9ZSgxMDMpLGM9by5hVHlwZWRBcnJheSxmPW8uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yOygwLG8uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoIndpdGgiLChmdW5jdGlvbih0LHIpe3ZhciBlPWModGhpcyk7dD1hKHQpLHI9aShlKT91KHIpOityO3JldHVybiBuKGUsZihlKSx0LHIpfSksIWZ1bmN0aW9uKCl7dHJ5e25ldyBJbnQ4QXJyYXkoMSkud2l0aCgyLHt2YWx1ZU9mOmZ1bmN0aW9uKCl7dGhyb3cgOH19KX1jYXRjaCh0KXtyZXR1cm4gOD09PXR9fSgpKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoODkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4iQmlnSW50NjRBcnJheSI9PSh0PW4odCkpfHwiQmlnVWludDY0QXJyYXkiPT10fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTgpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mKHQ9bih0LCJudW1iZXIiKSkpdGhyb3cgbygiQ2FuJ3QgY29udmVydCBudW1iZXIgdG8gYmlnaW50Iik7cmV0dXJuIEJpZ0ludCh0KX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigyNCksYT1uKDk1KSx1PW4oOTcpLGM9big1NSksZj1uKDc0KSxzPW4oNDMpLHA9bigxMCksbD1uKDEwNSksaD1uKDEwOCksdj1uKDMzKSgidG9TdHJpbmdUYWciKSx5PUVycm9yLGQ9ZnVuY3Rpb24ocixlLG4pe3ZhciBvLGM9aShnLHRoaXMpO3JldHVybiB1P289dSh5KCksYz9hKHRoaXMpOmcpOihvPWM/dGhpczpmKGcpLHMobyx2LCJFcnJvciIpKSxuIT09dCYmcyhvLCJtZXNzYWdlIixoKG4pKSxsKG8sZCxvLnN0YWNrLDEpLHMobywiZXJyb3IiLHIpLHMobywic3VwcHJlc3NlZCIsZSksb307dT91KGQseSk6YyhkLHkse25hbWU6ITB9KTt2YXIgZz1kLnByb3RvdHlwZT1mKHkucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpwKDEsZCksbWVzc2FnZTpwKDEsIiIpLG5hbWU6cCgxLCJTdXBwcmVzc2VkRXJyb3IiKX0pO28oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eTozfSx7U3VwcHJlc3NlZEVycm9yOmR9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNDMpLG89ZSgxMDYpLGk9ZSgxMDcpLGE9RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlLHUpe2kmJihhP2EodCxyKTpuKHQsInN0YWNrIixvKGUsdSkpKX19LGZ1bmN0aW9uKHQscixlKXtlPWUoMTMpO3ZhciBuPUVycm9yLG89ZSgiIi5yZXBsYWNlKSxpPShlPVN0cmluZyhuKCJ6eGNhc2QiKS5zdGFjayksL1xuXHMqYXQgW146XSo6W15cbl0qLyksYT1pLnRlc3QoZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQscil7aWYoYSYmInN0cmluZyI9PXR5cGVvZiB0JiYhbi5wcmVwYXJlU3RhY2tUcmFjZSlmb3IoO3ItLTspdD1vKHQsaSwiIik7cmV0dXJuIHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg2KSxvPWUoMTApO3QuZXhwb3J0cz0hbigoZnVuY3Rpb24oKXt2YXIgdD1FcnJvcigiYSIpO3JldHVybiEoInN0YWNrImluIHQpfHwoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInN0YWNrIixvKDEsNykpLDchPT10LnN0YWNrKX0pKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oODgpO3IuZXhwb3J0cz1mdW5jdGlvbihyLGUpe3JldHVybiByPT09dD9hcmd1bWVudHMubGVuZ3RoPDI/IiI6ZTpvKHIpfX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITB9LHtmcm9tQXN5bmM6ZSgxMTApfSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBTKHRoaXMpfXZhciBpPW4oMTExKSxhPW4oMTMpLHU9bigzOSksYz1uKDExMyksZj1uKDExNCkscz1uKDExOSkscD1uKDEyMiksbD1uKDEyMCksaD1uKDI5KSx2PW4oODApLHk9bigyMyksZD1uKDMzKSxnPW4oMTE1KSxiPW4oMTIzKS50b0FycmF5LG09ZCgiYXN5bmNJdGVyYXRvciIpLHg9YSh2KCJBcnJheSIpLnZhbHVlcyksdz1hKHgoW10pLm5leHQpLFM9ZnVuY3Rpb24odCl7dGhpcy5pdGVyYXRvcj14KHQpfTtTLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHcodGhpcy5pdGVyYXRvcil9LHIuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT10aGlzLG49YXJndW1lbnRzLmxlbmd0aCxhPTE8bj9hcmd1bWVudHNbMV06dCx2PTI8bj9hcmd1bWVudHNbMl06dDtyZXR1cm4gbmV3KHkoIlByb21pc2UiKSkoKGZ1bmN0aW9uKG4pe3ZhciB5PXUocik7YSE9PXQmJihhPWkoYSx2KSk7dmFyIGQ9aCh5LG0pLHg9ZD90OmwoeSl8fG8sdz1jKGUpP25ldyBlOltdO3g9ZD9mKHksZCk6bmV3IGcocChzKHkseCkpKTtuKGIoeCxhLHcpKX0pKX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDExMiksaT1uKDMwKSxhPW4oOCksdT1vKG8uYmluZCk7ci5leHBvcnRzPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIGkociksZT09PXQ/cjphP3UocixlKTpmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KGUsYXJndW1lbnRzKX19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxNCksbz1lKDEzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIkZ1bmN0aW9uIj09PW4odCkpcmV0dXJuIG8odCl9fSxmdW5jdGlvbih0LHIsZSl7ZnVuY3Rpb24gbigpe31mdW5jdGlvbiBvKHQpe2lmKCF1KHQpKXJldHVybiExO3RyeXtyZXR1cm4gbChuLHAsdCksITB9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBpPWUoMTMpLGE9ZSg2KSx1PWUoMjApLGM9ZSg4OSksZj1lKDIzKSxzPWUoNTApLHA9W10sbD1mKCJSZWZsZWN0IiwiY29uc3RydWN0IiksaD0vXlxzKig/OmNsYXNzfGZ1bmN0aW9uKVxiLyx2PWkoaC5leGVjKSx5PSFoLmV4ZWMobik7aT1mdW5jdGlvbih0KXtpZighdSh0KSlyZXR1cm4hMTtzd2l0Y2goYyh0KSl7Y2FzZSJBc3luY0Z1bmN0aW9uIjpjYXNlIkdlbmVyYXRvckZ1bmN0aW9uIjpjYXNlIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iOnJldHVybiExfXRyeXtyZXR1cm4geXx8ISF2KGgscyh0KSl9Y2F0Y2godCl7cmV0dXJuITB9fTtpLnNoYW09ITAsdC5leHBvcnRzPSFsfHxhKChmdW5jdGlvbigpe3ZhciB0O3JldHVybiBvKG8uY2FsbCl8fCFvKE9iamVjdCl8fCFvKChmdW5jdGlvbigpe3Q9ITB9KSl8fHR9KSk/aTpvfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg3KSxvPWUoMTE1KSxpPWUoNDYpLGE9ZSgxMTkpLHU9ZSgxMjIpLGM9ZSgyOSksZj1lKDMzKSgiYXN5bmNJdGVyYXRvciIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe3JldHVybihyPWFyZ3VtZW50cy5sZW5ndGg8Mj9jKHQsZik6cik/aShuKHIsdCkpOm5ldyBvKHUoYSh0KSkpfX0sZnVuY3Rpb24ocixlLG4pe2Z1bmN0aW9uIG8odCxyLGUpe3ZhciBuPXQuZG9uZTt2LnJlc29sdmUodC52YWx1ZSkudGhlbigoZnVuY3Rpb24odCl7cihoKHQsbikpfSksZSl9dmFyIGk9big3KSxhPW4oNDYpLHU9big3NCksYz1uKDI5KSxmPW4oMTE2KSxzPW4oNTEpLHA9bigyMyksbD1uKDExNyksaD1uKDExOCksdj1wKCJQcm9taXNlIikseT0iQXN5bmNGcm9tU3luY0l0ZXJhdG9yIixkPXMuc2V0LGc9cy5nZXR0ZXJGb3IoeSk7cz1mdW5jdGlvbih0KXt0LnR5cGU9eSxkKHRoaXMsdCl9O3MucHJvdG90eXBlPWYodShsKSx7bmV4dDpmdW5jdGlvbigpe3ZhciB0PWcodGhpcyk7cmV0dXJuIG5ldyB2KChmdW5jdGlvbihyLGUpe28oYShpKHQubmV4dCx0Lml0ZXJhdG9yKSkscixlKX0pKX0scmV0dXJuOmZ1bmN0aW9uKCl7dmFyIHI9Zyh0aGlzKS5pdGVyYXRvcjtyZXR1cm4gbmV3IHYoKGZ1bmN0aW9uKGUsbil7dmFyIHU9YyhyLCJyZXR1cm4iKTtpZih1PT09dClyZXR1cm4gZShoKHQsITApKTtvKHU9YShpKHUscikpLGUsbil9KSl9fSksci5leHBvcnRzPXN9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDQ3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe2Zvcih2YXIgbyBpbiByKW4odCxvLHJbb10sZSk7cmV0dXJuIHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG4sbyxpPWUoMyksYT1lKDM2KSx1PWUoMjApLGM9ZSg3NCksZj1lKDk1KSxzPWUoNDcpLHA9ZSgzMyksbD1lKDM1KSxoPSJVU0VfRlVOQ1RJT05fQ09OU1RSVUNUT1IiLHY9cCgiYXN5bmNJdGVyYXRvciIpO2U9aS5Bc3luY0l0ZXJhdG9yO2lmKHA9YS5Bc3luY0l0ZXJhdG9yUHJvdG90eXBlKW49cDtlbHNlIGlmKHUoZSkpbj1lLnByb3RvdHlwZTtlbHNlIGlmKGFbaF18fGlbaF0pdHJ5e289ZihmKGYoRnVuY3Rpb24oInJldHVybiBhc3luYyBmdW5jdGlvbiooKXt9KCkiKSgpKSkpLGYobyk9PT1PYmplY3QucHJvdG90eXBlJiYobj1vKX1jYXRjaCh0KXt9bj9sJiYobj1jKG4pKTpuPXt9LHUoblt2XSl8fHMobix2LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLHQuZXhwb3J0cz1ufSxmdW5jdGlvbih0LHIpe3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe3JldHVybnt2YWx1ZTp0LGRvbmU6cn19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg3KSxvPWUoMzApLGk9ZSg0NiksYT1lKDMxKSx1PWUoMTIwKSxjPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtpZihyPWFyZ3VtZW50cy5sZW5ndGg8Mj91KHQpOnIsbyhyKSlyZXR1cm4gaShuKHIsdCkpO3Rocm93IGMoYSh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoODkpLG89ZSgyOSksaT1lKDE2KSxhPWUoMTIxKSx1PWUoMzMpKCJpdGVyYXRvciIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighaSh0KSlyZXR1cm4gbyh0LHUpfHxvKHQsIkBAaXRlcmF0b3IiKXx8YVtuKHQpXX19LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPXt9fSxmdW5jdGlvbih0LHIpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm57aXRlcmF0b3I6dCxuZXh0OnQubmV4dCxkb25lOiExfX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDcpLGk9bigzMCksYT1uKDQ2KSx1PW4oMTkpLGM9big3MCksZj1uKDIzKSxzPW4oMTIyKSxwPW4oMTI0KTtuPWZ1bmN0aW9uKHIpe3ZhciBlPTA9PXIsbj0xPT1yLGw9Mj09cixoPTM9PXI7cmV0dXJuIGZ1bmN0aW9uKHIsdix5KXthKHIpO3ZhciBkPXYhPT10OyFkJiZlfHxpKHYpO3I9cyhyKTt2YXIgZz1mKCJQcm9taXNlIiksYj1yLml0ZXJhdG9yLG09ci5uZXh0LHg9MDtyZXR1cm4gbmV3IGcoKGZ1bmN0aW9uKHIsaSl7ZnVuY3Rpb24gZih0KXtwKGIsaSx0LGkpfXZhciBzPWZ1bmN0aW9uKCl7dHJ5e2lmKGQpdHJ5e2MoeCl9Y2F0Y2godCl7Zih0KX1nLnJlc29sdmUoYShvKG0sYikpKS50aGVuKChmdW5jdGlvbihvKXt0cnl7aWYoYShvKS5kb25lKWU/KHkubGVuZ3RoPXgscih5KSk6cighaCYmKGx8fHQpKTtlbHNle3ZhciBjLG0sdz1vLnZhbHVlO3RyeXtkPyhjPXYodyx4KSxtPWZ1bmN0aW9uKHQpe2lmKG4pcygpO2Vsc2UgaWYobCl0P3MoKTpwKGIsciwhMSxpKTtlbHNlIGlmKGUpdHJ5e3lbeCsrXT10LHMoKX1jYXRjaCh0KXtmKHQpfWVsc2UgdD9wKGIscixofHx3LGkpOnMoKX0sdShjKT9nLnJlc29sdmUoYykudGhlbihtLGYpOm0oYykpOih5W3grK109dyxzKCkpfWNhdGNoKG8pe2Yobyl9fX1jYXRjaChvKXtpKG8pfX0pLGkpfWNhdGNoKHQpe2kodCl9fTtzKCl9KSl9fTtyLmV4cG9ydHM9e3RvQXJyYXk6bigwKSxmb3JFYWNoOm4oMSksZXZlcnk6bigyKSxzb21lOm4oMyksZmluZDpuKDQpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNyksbz1lKDIzKSxpPWUoMjkpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIsZSxhKXt0cnl7dmFyIHU9aSh0LCJyZXR1cm4iKTtpZih1KXJldHVybiBvKCJQcm9taXNlIikucmVzb2x2ZShuKHUsdCkpLnRoZW4oKGZ1bmN0aW9uKCl7cihlKX0pLChmdW5jdGlvbih0KXthKHQpfSkpfWNhdGNoKHQpe3JldHVybiBhKHQpfXIoZSl9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTI2KS5maWx0ZXJSZWplY3Q7bj1uKDczKTtvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6ITB9LHtmaWx0ZXJPdXQ6ZnVuY3Rpb24ocil7cmV0dXJuIGkodGhpcyxyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCl9fSksbigiZmlsdGVyT3V0Iil9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDExMSksaT1uKDEzKSxhPW4oMTIpLHU9bigzOSksYz1uKDYzKSxmPW4oMTI3KSxzPWkoW10ucHVzaCk7aT1mdW5jdGlvbihyKXt2YXIgZT0xPT1yLG49Mj09cixpPTM9PXIscD00PT1yLGw9Nj09cixoPTc9PXIsdj01PT1yfHxsO3JldHVybiBmdW5jdGlvbih5LGQsZyxiKXtmb3IodmFyIG0seCx3PXUoeSksUz1hKHcpLEE9byhkLGcpLEU9YyhTKSxPPTAsUj0oYj1ifHxmLGU/Yih5LEUpOm58fGg/Yih5LDApOnQpO088RTtPKyspaWYoKHZ8fE8gaW4gUykmJih4PUEobT1TW09dLE8sdykscikpaWYoZSlSW09dPXg7ZWxzZSBpZih4KXN3aXRjaChyKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBtO2Nhc2UgNjpyZXR1cm4gTztjYXNlIDI6cyhSLG0pfWVsc2Ugc3dpdGNoKHIpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6cyhSLG0pfXJldHVybiBsPy0xOml8fHA/cDpSfX07ci5leHBvcnRzPXtmb3JFYWNoOmkoMCksbWFwOmkoMSksZmlsdGVyOmkoMiksc29tZTppKDMpLGV2ZXJ5OmkoNCksZmluZDppKDUpLGZpbmRJbmRleDppKDYpLGZpbHRlclJlamVjdDppKDcpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTI4KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtyZXR1cm4gbmV3KG4odCkpKDA9PT1yPzA6cil9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big2OSksaT1uKDExMyksYT1uKDE5KSx1PW4oMzMpKCJzcGVjaWVzIiksYz1BcnJheTtyLmV4cG9ydHM9ZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIG8ocikmJihlPXIuY29uc3RydWN0b3IsKGkoZSkmJihlPT09Y3x8byhlLnByb3RvdHlwZSkpfHxhKGUpJiZudWxsPT09KGU9ZVt1XSkpJiYoZT10KSksZT09PXQ/YzplfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDEyNikuZmlsdGVyUmVqZWN0O249big3Myk7byh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiEwfSx7ZmlsdGVyUmVqZWN0OmZ1bmN0aW9uKHIpe3JldHVybiBpKHRoaXMsciwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnQpfX0pLG4oImZpbHRlclJlamVjdCIpfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTMxKTtuPW4oNzMpO28oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7Z3JvdXA6ZnVuY3Rpb24ocil7cmV0dXJuIGkodGhpcyxyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCl9fSksbigiZ3JvdXAiKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTExKSxvPWUoMTMpLGk9ZSgxMiksYT1lKDM5KSx1PWUoMTcpLGM9ZSg2MyksZj1lKDc0KSxzPWUoNzkpLHA9QXJyYXksbD1vKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIsZSxvKXtmb3IodmFyIGgsdix5LGQ9YSh0KSxnPWkoZCksYj1uKHIsZSksbT1mKG51bGwpLHg9YyhnKSx3PTA7dzx4O3crKyl5PWdbd10sKHY9dShiKHksdyxkKSkpaW4gbT9sKG1bdl0seSk6bVt2XT1beV07aWYobyYmKGg9byhkKSkhPT1wKWZvcih2IGluIG0pbVt2XT1zKGgsbVt2XSk7cmV0dXJuIG19fSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTMxKSxhPW4oMTMzKTtuPW4oNzMpO28oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohYSgiZ3JvdXBCeSIpfSx7Z3JvdXBCeTpmdW5jdGlvbihyKXtyZXR1cm4gaSh0aGlzLHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KX19KSxuKCJncm91cEJ5Iil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDYpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe3ZhciBlPVtdW3RdO3JldHVybiEhZSYmbigoZnVuY3Rpb24oKXtlLmNhbGwobnVsbCxyfHxmdW5jdGlvbigpe3JldHVybiAxfSwxKX0pKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxMzMpLGk9ZSg3MyksYT1lKDEzNSk7bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsbmFtZToiZ3JvdXBUb01hcCIsZm9yY2VkOmUoMzUpfHwhbygiZ3JvdXBCeVRvTWFwIil9LHtncm91cEJ5VG9NYXA6YX0pLGkoImdyb3VwQnlUb01hcCIpfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigxMTEpLGk9bigxMyksYT1uKDEyKSx1PW4oMzkpLGM9big2MyksZj0obj1uKDEzNikpLk1hcCxzPW4uZ2V0LHA9bi5oYXMsbD1uLnNldCxoPWkoW10ucHVzaCk7ci5leHBvcnRzPWZ1bmN0aW9uKHIpe2Zvcih2YXIgZSxuLGk9dSh0aGlzKSx2PWEoaSkseT1vKHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxkPW5ldyBmLGc9Yyh2KSxiPTA7YjxnO2IrKyllPXkobj12W2JdLGIsaSkscChkLGUpP2gocyhkLGUpLG4pOmwoZCxlLFtuXSk7cmV0dXJuIGR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMyk7ZT1NYXAucHJvdG90eXBlO3QuZXhwb3J0cz17TWFwOk1hcCxzZXQ6bihlLnNldCksZ2V0Om4oZS5nZXQpLGhhczpuKGUuaGFzKSxyZW1vdmU6bihlLmRlbGV0ZSkscHJvdG86ZX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3MyksaT1lKDEzNSk7bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmUoMzUpfSx7Z3JvdXBUb01hcDppfSksbygiZ3JvdXBUb01hcCIpfSxmdW5jdGlvbihyLGUsbil7ZnVuY3Rpb24gbyhyLGUpe2lmKCF1fHwhYShyKXx8IXUocikpcmV0dXJuITE7Zm9yKHZhciBuLG89MCxpPXIubGVuZ3RoO288aTspaWYoISgic3RyaW5nIj09dHlwZW9mKG49cltvKytdKXx8ZSYmbj09PXQpKXJldHVybiExO3JldHVybiAwIT09aX12YXIgaT1uKDIpLGE9big2OSksdT1PYmplY3QuaXNGcm96ZW47aSh7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxzaGFtOiEwLGZvcmNlZDohMH0se2lzVGVtcGxhdGVPYmplY3Q6ZnVuY3Rpb24odCl7aWYoIW8odCwhMCkpcmV0dXJuITE7dmFyIHI9dC5yYXc7cmV0dXJuIHIubGVuZ3RoPT09dC5sZW5ndGgmJm8ociwhMSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSg3MyksaT1lKDM5KSxhPWUoNjMpO2U9ZSg4NSk7biYmKGUoQXJyYXkucHJvdG90eXBlLCJsYXN0SW5kZXgiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9aSh0aGlzKTtyZXR1cm4gMD09KHQ9YSh0KSk/MDp0LTF9fSksbygibGFzdEluZGV4IikpfSxmdW5jdGlvbihyLGUsbil7dmFyIG89big1KSxpPW4oNzMpLGE9bigzOSksdT1uKDYzKTtuPW4oODUpO28mJihuKEFycmF5LnByb3RvdHlwZSwibGFzdEl0ZW0iLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHI9YSh0aGlzKSxlPXUocik7cmV0dXJuIDA9PWU/dDpyW2UtMV19LHNldDpmdW5jdGlvbih0KXt2YXIgcj1hKHRoaXMpLGU9dShyKTtyZXR1cm4gclswPT1lPzA6ZS0xXT10fX0pLGkoImxhc3RJdGVtIikpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNzMpO24oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohMH0se3VuaXF1ZUJ5OmUoMTQyKX0pLG8oInVuaXF1ZUJ5Iil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKSxvPWUoMzApLGk9ZSgxNiksYT1lKDYzKSx1PWUoMzkpLGM9ZSgxMzYpLGY9ZSgxNDMpLHM9Yy5NYXAscD1jLmhhcyxsPWMuc2V0LGg9bihbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciByLGUsbj11KHRoaXMpLGM9YShuKSx2PVtdLHk9bmV3IHMsZD1pKHQpP2Z1bmN0aW9uKHQpe3JldHVybiB0fTpvKHQpLGc9MDtnPGM7ZysrKWU9ZChyPW5bZ10pLHAoeSxlKXx8bCh5LGUscik7cmV0dXJuIGYoeSwoZnVuY3Rpb24odCl7aCh2LHQpfSkpLHZ9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG4sbz1lKDEzKSxpPWUoMTQ0KSxhPShlPShuPWUoMTM2KSkuTWFwLG8oKG49bi5wcm90bykuZm9yRWFjaCkpLHU9byhuLmVudHJpZXMpLGM9dShuZXcgZSkubmV4dDt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBlP2kodSh0KSwoZnVuY3Rpb24odCl7cmV0dXJuIHIodFsxXSx0WzBdKX0pLGMpOmEodCxyKX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDcpO3IuZXhwb3J0cz1mdW5jdGlvbihyLGUsbil7Zm9yKHZhciBpLGE9bnx8ci5uZXh0OyEoaT1vKGEscikpLmRvbmU7KWlmKChpPWUoaS52YWx1ZSkpIT09dClyZXR1cm4gaX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSg4NSksaT1lKDE0Nik7ZT1BcnJheUJ1ZmZlci5wcm90b3R5cGU7IW58fCJkZXRhY2hlZCJpbiBlfHxvKGUsImRldGFjaGVkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMyksbz1lKDE0NyksaT1uKEFycmF5QnVmZmVyLnByb3RvdHlwZS5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKDAhPT1vKHQpKXJldHVybiExO3RyeXtyZXR1cm4gaSh0LDAsMCksITF9Y2F0Y2godCl7cmV0dXJuITB9fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoOTgpLG89ZSgxNCksaT1UeXBlRXJyb3I7dC5leHBvcnRzPW4oQXJyYXlCdWZmZXIucHJvdG90eXBlLCJieXRlTGVuZ3RoIiwiZ2V0Iil8fGZ1bmN0aW9uKHQpe2lmKCJBcnJheUJ1ZmZlciIhPW8odCkpdGhyb3cgaSgiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gdC5ieXRlTGVuZ3RofX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDE0OSk7aSYmbyh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86ITB9LHt0cmFuc2ZlcjpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dCwhMCl9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDMpLGk9bigxMyksYT1uKDk4KSx1PW4oMTUwKSxjPW4oMTQ2KSxmPW4oMTQ3KSxzPW4oMTUxKSxwPW8uVHlwZUVycm9yLGw9by5zdHJ1Y3R1cmVkQ2xvbmUsaD1vLkFycmF5QnVmZmVyLHY9by5EYXRhVmlldyx5PU1hdGgubWluLGQ9KG49aC5wcm90b3R5cGUsbz12LnByb3RvdHlwZSxpKG4uc2xpY2UpKSxnPWEobiwicmVzaXphYmxlIiwiZ2V0IiksYj1hKG4sIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxtPWkoby5nZXRJbnQ4KSx4PWkoby5zZXRJbnQ4KTtyLmV4cG9ydHM9cyYmZnVuY3Rpb24ocixlLG4pe3ZhciBvPWYociksaT1lPT09dD9vOnUoZSk7ZT0hZ3x8IWcocik7aWYoYyhyKSl0aHJvdyBwKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO2lmKHI9bChyLHt0cmFuc2Zlcjpbcl19KSxvPT1pJiYobnx8ZSkpcmV0dXJuIHI7aWYoaTw9byYmKCFufHxlKSlyZXR1cm4gZChyLDAsaSk7ZT1uJiYhZSYmYj97bWF4Qnl0ZUxlbmd0aDpiKHIpfTp0LGU9bmV3IGgoaSxlKTtmb3IodmFyIGE9bmV3IHYocikscz1uZXcgdihlKSx3PXkoaSxvKSxTPTA7Uzx3O1MrKyl4KHMsUyxtKGEsUykpO3JldHVybiBlfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNjEpLGk9big2NCksYT1SYW5nZUVycm9yO3IuZXhwb3J0cz1mdW5jdGlvbihyKXtpZihyPT09dClyZXR1cm4gMDt2YXIgZT1vKHIpO2lmKGUhPT0ocj1pKGUpKSl0aHJvdyBhKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gcn19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMpLG89ZSg2KSxpPWUoMjcpLGE9ZSgxNTIpLHU9ZSgxNTMpLGM9ZSgxNTQpLGY9bi5zdHJ1Y3R1cmVkQ2xvbmU7dC5leHBvcnRzPSEhZiYmIW8oKGZ1bmN0aW9uKCl7aWYodSYmOTI8aXx8YyYmOTQ8aXx8YSYmOTc8aSlyZXR1cm4hMTt2YXIgdD1uZXcgQXJyYXlCdWZmZXIoOCkscj1mKHQse3RyYW5zZmVyOlt0XX0pO3JldHVybiAwIT10LmJ5dGVMZW5ndGh8fDghPXIuYnl0ZUxlbmd0aH0pKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTUzKTtlPWUoMTU0KTt0LmV4cG9ydHM9IW4mJiFlJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmIm9iamVjdCI9PXR5cGVvZiBkb2N1bWVudH0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBEZW5vJiZEZW5vJiYib2JqZWN0Ij09dHlwZW9mIERlbm8udmVyc2lvbn0sZnVuY3Rpb24odCxyLGUpe2U9ZSgxNCksdC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmInByb2Nlc3MiPT1lKHByb2Nlc3MpfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTQ5KTtpJiZvKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMH0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dCwhMSl9fSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHQpe2lmKCh0PVModCkpLnN0YXRlPT1FKXRocm93IG0oeCsiIGFscmVhZHkgZGlzcG9zZWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBpKCl7dyhzKHRoaXMsTykse3R5cGU6eCxzdGF0ZToicGVuZGluZyIsc3RhY2s6W119KSx1fHwodGhpcy5kaXNwb3NlZD0hMSl9dmFyIGE9bigyKSx1PW4oNSksYz1uKDIzKSxmPW4oMzApLHM9bigxNTcpLHA9big0NyksbD1uKDExNiksaD1uKDg1KSx2PW4oMzMpLHk9big1MSksZD1uKDE1OCksZz1jKCJQcm9taXNlIiksYj1jKCJTdXBwcmVzc2VkRXJyb3IiKSxtPVJlZmVyZW5jZUVycm9yLHg9KGM9digiYXN5bmNEaXNwb3NlIiksdj12KCJ0b1N0cmluZ1RhZyIpLCJBc3luY0Rpc3Bvc2FibGVTdGFjayIpLHc9eS5zZXQsUz15LmdldHRlckZvcih4KSxBPSJhc3luYy1kaXNwb3NlIixFPSJkaXNwb3NlZCIsTz1pLnByb3RvdHlwZTtsKE8se2Rpc3Bvc2VBc3luYzpmdW5jdGlvbigpe3ZhciByPXRoaXM7cmV0dXJuIG5ldyBnKChmdW5jdGlvbihlLG4pe3ZhciBvPVMocik7aWYoby5zdGF0ZT09RSlyZXR1cm4gZSh0KTtmdW5jdGlvbiBpKHQpe2E9cz9uZXcgYih0LGEpOihzPSEwLHQpLHAoKX1vLnN0YXRlPUUsdXx8KHIuZGlzcG9zZWQ9ITApO3ZhciBhLGM9by5zdGFjayxmPWMubGVuZ3RoLHM9ITEscD1mdW5jdGlvbigpe2lmKGYpe3ZhciByPWNbLS1mXTtjW2ZdPW51bGw7dHJ5e2cucmVzb2x2ZShyKCkpLnRoZW4ocCxpKX1jYXRjaChyKXtpKHIpfX1lbHNlIG8uc3RhY2s9bnVsbCxzP24oYSk6ZSh0KX07cCgpfSkpfSx1c2U6ZnVuY3Rpb24odCl7cmV0dXJuIGQobyh0aGlzKSx0LEEpLHR9LGFkb3B0OmZ1bmN0aW9uKHIsZSl7dmFyIG49byh0aGlzKTtyZXR1cm4gZihlKSxkKG4sdCxBLChmdW5jdGlvbigpe3JldHVybiBlKHIpfSkpLHJ9LGRlZmVyOmZ1bmN0aW9uKHIpe3ZhciBlPW8odGhpcyk7ZihyKSxkKGUsdCxBLHIpfSxtb3ZlOmZ1bmN0aW9uKCl7dmFyIHQ9byh0aGlzKSxyPW5ldyBpO3JldHVybiBTKHIpLnN0YWNrPXQuc3RhY2ssdC5zdGFjaz1bXSx0LnN0YXRlPUUsdXx8KHRoaXMuZGlzcG9zZWQ9ITApLHJ9fSksdSYmaChPLCJkaXNwb3NlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUyh0aGlzKS5zdGF0ZT09RX19KSxwKE8sYyxPLmRpc3Bvc2VBc3luYyx7bmFtZToiZGlzcG9zZUFzeW5jIn0pLHAoTyx2LHgse25vbldyaXRhYmxlOiEwfSksYSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohMH0se0FzeW5jRGlzcG9zYWJsZVN0YWNrOml9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMjQpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2lmKG4ocix0KSlyZXR1cm4gdDt0aHJvdyBvKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfX0sZnVuY3Rpb24ocixlLG4pe2Z1bmN0aW9uIG8odCxyLGUpe3JldHVybiBhKGV8fChlPXQsImFzeW5jLWRpc3Bvc2UiPT1yJiZmKGUscyl8fGYoZSxwKSksdCl9dmFyIGk9bigxMyksYT1uKDExMSksdT1uKDQ2KSxjPW4oMTYpLGY9bigyOSkscz0obj1uKDMzKSkoImFzeW5jRGlzcG9zZSIpLHA9bigiZGlzcG9zZSIpLGw9aShbXS5wdXNoKTtyLmV4cG9ydHM9ZnVuY3Rpb24ocixlLG4saSl7dmFyIGE7aWYoaSlhPW8odCxuLGkpO2Vsc2V7aWYoYyhlKSlyZXR1cm47YT1vKHUoZSksbil9bChyLnN0YWNrLGEpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDE1NyksaT1lKDQzKSxhPWUoMzgpLHU9ZSgzMyksYz1lKDExNyksZj1lKDM1KTtlPXUoInRvU3RyaW5nVGFnIik7YSgodT1mdW5jdGlvbigpe28odGhpcyxjKX0pLnByb3RvdHlwZT1jLGUpfHxpKGMsZSwiQXN5bmNJdGVyYXRvciIpLCFmJiZhKGMsImNvbnN0cnVjdG9yIikmJmMuY29uc3RydWN0b3IhPT1PYmplY3R8fGkoYywiY29uc3RydWN0b3IiLHUpLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6Zn0se0FzeW5jSXRlcmF0b3I6dX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixuYW1lOiJpbmRleGVkIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2FzSW5kZXhlZFBhaXJzOmUoMTYxKX0pfSxmdW5jdGlvbih0LHIsZSl7ZnVuY3Rpb24gbih0LHIpe3JldHVybltyLHRdfXZhciBvPWUoNyksaT1lKDE2Mik7dC5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oaSx0aGlzLG4pfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNyksaT1uKDMwKSxhPW4oNDYpLHU9bigxOSksYz1uKDEyMiksZj1uKDE2Mykscz1uKDExOCkscD1uKDEyNCksbD1mKChmdW5jdGlvbihyKXt2YXIgZT10aGlzLG49ZS5pdGVyYXRvcixpPWUubWFwcGVyO3JldHVybiBuZXcgcigoZnVuY3Rpb24oYyxmKXtmdW5jdGlvbiBsKHQpe2UuZG9uZT0hMCxmKHQpfWZ1bmN0aW9uIGgodCl7cChuLGwsdCxsKX1yLnJlc29sdmUoYShvKGUubmV4dCxuKSkpLnRoZW4oKGZ1bmN0aW9uKG4pe3RyeXtpZihhKG4pLmRvbmUpZS5kb25lPSEwLGMocyh0LCEwKSk7ZWxzZXt2YXIgbz1uLnZhbHVlO3RyeXt2YXIgZj1pKG8sZS5jb3VudGVyKyspLHA9ZnVuY3Rpb24odCl7YyhzKHQsITEpKX07dShmKT9yLnJlc29sdmUoZikudGhlbihwLGgpOnAoZil9Y2F0Y2gobil7aChuKX19fWNhdGNoKG4pe2wobil9fSksbCl9KSl9KSk7ci5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLGkodCksbmV3IGwoYyh0aGlzKSx7bWFwcGVyOnR9KX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDcpLGk9bigxNjQpLGE9big0NiksdT1uKDc0KSxjPW4oNDMpLGY9bigxMTYpLHM9bigzMykscD1uKDUxKSxsPW4oMjMpLGg9bigyOSksdj1uKDExNykseT1uKDExOCksZD1uKDE2NSksZz1sKCJQcm9taXNlIiksYj0obD1zKCJ0b1N0cmluZ1RhZyIpLCJBc3luY0l0ZXJhdG9ySGVscGVyIiksbT0iV3JhcEZvclZhbGlkQXN5bmNJdGVyYXRvciIseD1wLnNldCx3PShzPWZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGUocil7dmFyIGU9KG89aSgoZnVuY3Rpb24oKXtyZXR1cm4gYyhyKX0pKSkuZXJyb3Isbz1vLnZhbHVlO3JldHVybiBlfHxuJiZvLmRvbmU/e2V4aXQ6ITAsdmFsdWU6ZT9nLnJlamVjdChvKTpnLnJlc29sdmUoeSh0LCEwKSl9OntleGl0OiExLHZhbHVlOm99fXZhciBuPSFyLGM9cC5nZXR0ZXJGb3Iocj9tOmIpO3JldHVybiBmKHUodikse25leHQ6ZnVuY3Rpb24oKXt2YXIgdD0ocj1lKHRoaXMpKS52YWx1ZTtpZihyLmV4aXQpcmV0dXJuIHQ7dmFyIHI9KG49aSgoZnVuY3Rpb24oKXtyZXR1cm4gYSh0Lm5leHRIYW5kbGVyKGcpKX0pKSkuZXJyb3Isbj1uLnZhbHVlO3JldHVybiByJiYodC5kb25lPSEwKSxyP2cucmVqZWN0KG4pOmcucmVzb2x2ZShuKX0scmV0dXJuOmZ1bmN0aW9uKCl7dmFyIG49ZSh0aGlzKSx1PW4udmFsdWU7aWYobi5leGl0KXJldHVybiB1O3UuZG9uZT0hMDt2YXIgYz11Lml0ZXJhdG9yLGY9aSgoZnVuY3Rpb24oKXtpZih1LmlubmVyKXRyeXtkKHUuaW5uZXIuaXRlcmF0b3IsIm5vcm1hbCIpfWNhdGNoKHQpe3JldHVybiBkKGMsInRocm93Iix0KX1yZXR1cm4gaChjLCJyZXR1cm4iKX0pKSxzPW49Zi52YWx1ZTtyZXR1cm4gZi5lcnJvcj9nLnJlamVjdChuKTpzPT09dD9nLnJlc29sdmUoeSh0LCEwKSk6KG49KGY9aSgoZnVuY3Rpb24oKXtyZXR1cm4gbyhzLGMpfSkpKS52YWx1ZSxmLmVycm9yP2cucmVqZWN0KG4pOnI/Zy5yZXNvbHZlKG4pOmcucmVzb2x2ZShuKS50aGVuKChmdW5jdGlvbihyKXtyZXR1cm4gYShyKSx5KHQsITApfSkpKX19KX0scyghMCkpLFM9cyghMSk7YyhTLGwsIkFzeW5jIEl0ZXJhdG9yIEhlbHBlciIpLHIuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGUoZSxuKXtuPyhuLml0ZXJhdG9yPWUuaXRlcmF0b3Isbi5uZXh0PWUubmV4dCk6bj1lLG4udHlwZT1yP206YixuLm5leHRIYW5kbGVyPXQsbi5jb3VudGVyPTAsbi5kb25lPSExLHgodGhpcyxuKX1yZXR1cm4gZS5wcm90b3R5cGU9cj93OlMsZX19LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6dCgpfX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6dH19fX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNyksbz1lKDQ2KSxpPWUoMjkpO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIsZSl7dmFyIGEsdTtvKHQpO3RyeXtpZighKGE9aSh0LCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1yKXRocm93IGU7cmV0dXJuIGV9YT1uKGEsdCl9Y2F0Y2godCl7dT0hMCxhPXR9aWYoInRocm93Ij09PXIpdGhyb3cgZTtpZih1KXRocm93IGE7cmV0dXJuIG8oYSksZX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDcpLGk9big0NyksYT1uKDIzKSx1PW4oMjkpLGM9bigzOCksZj1uKDMzKSxzPShuPW4oMTE3KSxmPWYoImFzeW5jRGlzcG9zZSIpLGEoIlByb21pc2UiKSk7YyhuLGYpfHxpKG4sZiwoZnVuY3Rpb24oKXt2YXIgcj10aGlzO3JldHVybiBuZXcgcygoZnVuY3Rpb24oZSxuKXt2YXIgaT11KHIsInJldHVybiIpO2k/cy5yZXNvbHZlKG8oaSxyKSkudGhlbigoZnVuY3Rpb24oKXtlKHQpfSksbik6ZSh0KX0pKX0pKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDcpLGE9big0NiksdT1uKDEyMiksYz1uKDE2OCksZj1uKDE2OSkscz1uKDE2MykscD1uKDExOCksbD1zKChmdW5jdGlvbihyKXt2YXIgZT10aGlzO3JldHVybiBuZXcgcigoZnVuY3Rpb24obixvKXtmdW5jdGlvbiB1KHQpe2UuZG9uZT0hMCxvKHQpfXZhciBjPWZ1bmN0aW9uKCl7dHJ5e3IucmVzb2x2ZShhKGkoZS5uZXh0LGUuaXRlcmF0b3IpKSkudGhlbigoZnVuY3Rpb24ocil7dHJ5e2EocikuZG9uZT8oZS5kb25lPSEwLG4ocCh0LCEwKSkpOmUucmVtYWluaW5nPyhlLnJlbWFpbmluZy0tLGMoKSk6bihwKHIudmFsdWUsITEpKX1jYXRjaChyKXt1KHIpfX0pLHUpfWNhdGNoKHQpe3UodCl9fTtjKCl9KSl9KSk7byh7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZHJvcDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0aGlzKSx0PWYoYygrdCkpLG5ldyBsKHUodGhpcykse3JlbWFpbmluZzp0fSl9fSl9LGZ1bmN0aW9uKHQscil7dmFyIGU9UmFuZ2VFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD09dClyZXR1cm4gdDt0aHJvdyBlKCJOYU4gaXMgbm90IGFsbG93ZWQiKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDYxKSxvPVJhbmdlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCh0PW4odCkpPDApdGhyb3cgbygiVGhlIGFyZ3VtZW50IGNhbid0IGJlIGxlc3MgdGhhbiAwIik7cmV0dXJuIHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMTIzKS5ldmVyeTtuKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtldmVyeTpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oNyksYT1uKDMwKSx1PW4oNDYpLGM9bigxOSksZj1uKDEyMikscz1uKDE2MykscD1uKDExOCksbD1uKDEyNCksaD1zKChmdW5jdGlvbihyKXt2YXIgZT10aGlzLG49ZS5pdGVyYXRvcixvPWUucHJlZGljYXRlO3JldHVybiBuZXcgcigoZnVuY3Rpb24oYSxmKXtmdW5jdGlvbiBzKHQpe2UuZG9uZT0hMCxmKHQpfWZ1bmN0aW9uIGgodCl7bChuLHMsdCxzKX12YXIgdj1mdW5jdGlvbigpe3RyeXtyLnJlc29sdmUodShpKGUubmV4dCxuKSkpLnRoZW4oKGZ1bmN0aW9uKG4pe3RyeXtpZih1KG4pLmRvbmUpZS5kb25lPSEwLGEocCh0LCEwKSk7ZWxzZXt2YXIgaT1uLnZhbHVlO3RyeXt2YXIgZj1vKGksZS5jb3VudGVyKyspLGw9ZnVuY3Rpb24odCl7dD9hKHAoaSwhMSkpOnYoKX07YyhmKT9yLnJlc29sdmUoZikudGhlbihsLGgpOmwoZil9Y2F0Y2gobil7aChuKX19fWNhdGNoKG4pe3Mobil9fSkscyl9Y2F0Y2godCl7cyh0KX19O3YoKX0pKX0pKTtvKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHUodGhpcyksYSh0KSxuZXcgaChmKHRoaXMpLHtwcmVkaWNhdGU6dH0pfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMTIzKS5maW5kO24oe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZpbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0KX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDcpLGE9bigzMCksdT1uKDQ2KSxjPW4oMTkpLGY9bigxMjIpLHM9bigxNjMpLHA9bigxMTgpLGw9bigxNzQpLGg9bigxMjQpLHY9cygoZnVuY3Rpb24ocil7dmFyIGU9dGhpcyxuPWUuaXRlcmF0b3Isbz1lLm1hcHBlcjtyZXR1cm4gbmV3IHIoKGZ1bmN0aW9uKGEsZil7ZnVuY3Rpb24gcyh0KXtlLmRvbmU9ITAsZih0KX1mdW5jdGlvbiB2KHQpe2gobixzLHQscyl9ZnVuY3Rpb24geSgpe3RyeXtyLnJlc29sdmUodShpKGUubmV4dCxuKSkpLnRoZW4oKGZ1bmN0aW9uKG4pe3RyeXtpZih1KG4pLmRvbmUpZS5kb25lPSEwLGEocCh0LCEwKSk7ZWxzZXt2YXIgaT1uLnZhbHVlO3RyeXt2YXIgZj1vKGksZS5jb3VudGVyKyspLGg9ZnVuY3Rpb24odCl7dHJ5e2UuaW5uZXI9bCh0KSxkKCl9Y2F0Y2godCl7dih0KX19O2MoZik/ci5yZXNvbHZlKGYpLnRoZW4oaCx2KTpoKGYpfWNhdGNoKG4pe3Yobil9fX1jYXRjaChuKXtzKG4pfX0pLHMpfWNhdGNoKHQpe3ModCl9fXZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5pbm5lcjtpZih0KXRyeXtyLnJlc29sdmUodShpKHQubmV4dCx0Lml0ZXJhdG9yKSkpLnRoZW4oKGZ1bmN0aW9uKHQpe3RyeXt1KHQpLmRvbmU/KGUuaW5uZXI9bnVsbCx5KCkpOmEocCh0LnZhbHVlLCExKSl9Y2F0Y2godCl7dih0KX19KSx2KX1jYXRjaCh0KXt2KHQpfWVsc2UgeSgpfTtkKCl9KSl9KSk7byh7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmxhdE1hcDpmdW5jdGlvbih0KXtyZXR1cm4gdSh0aGlzKSxhKHQpLG5ldyB2KGYodGhpcykse21hcHBlcjp0LGlubmVyOm51bGx9KX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNyksaT1uKDIwKSxhPW4oNDYpLHU9bigxMjIpLGM9bigxMjApLGY9bigyOSkscz1uKDMzKSxwPW4oMTE1KSxsPXMoImFzeW5jSXRlcmF0b3IiKTtyLmV4cG9ydHM9ZnVuY3Rpb24ocil7dmFyIGUsbj1hKHIpLHM9ITA7cj1mKG4sbCk7cmV0dXJuIGkocil8fChyPWMobikscz0hMSksciE9PXQ/ZT1vKHIsbik6KGU9bixzPSEwKSxhKGUpLHUocz9lOm5ldyBwKHUoZSkpKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxMjMpLmZvckVhY2g7bih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7Zm9yRWFjaDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzkpLGk9ZSgyNCksYT1lKDE3NCksdT1lKDExNyksYz1lKDE3Nyk7bih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixzdGF0OiEwfSx7ZnJvbTpmdW5jdGlvbih0KXtyZXR1cm4gdD1hKCJzdHJpbmciPT10eXBlb2YgdD9vKHQpOnQpLGkodSx0Lml0ZXJhdG9yKT90Lml0ZXJhdG9yOm5ldyBjKHQpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg3KTtlPWUoMTYzKTt0LmV4cG9ydHM9ZSgoZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLm5leHQsdGhpcy5pdGVyYXRvcil9KSwhMCl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IkFzeW5jSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aW5kZXhlZDplKDE2MSl9KX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se21hcDplKDE2Mil9KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDcpLGE9bigzMCksdT1uKDQ2KSxjPW4oMTkpLGY9bigyMykscz1uKDEyMikscD1uKDEyNCksbD1mKCJQcm9taXNlIiksaD1UeXBlRXJyb3I7byh7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKHIpe3UodGhpcyksYShyKTt2YXIgZT1zKHRoaXMpLG49ZS5pdGVyYXRvcixvPWUubmV4dCxmPWFyZ3VtZW50cy5sZW5ndGg8Mix2PWY/dDphcmd1bWVudHNbMV0seT0wO3JldHVybiBuZXcgbCgoZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBhKHQpe3AobixlLHQsZSl9dmFyIHM9ZnVuY3Rpb24oKXt0cnl7bC5yZXNvbHZlKHUoaShvLG4pKSkudGhlbigoZnVuY3Rpb24obil7dHJ5e2lmKHUobikuZG9uZSlmP2UoaCgiUmVkdWNlIG9mIGVtcHR5IGl0ZXJhdG9yIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpKTp0KHYpO2Vsc2V7dmFyIG89bi52YWx1ZTtpZihmKWY9ITEsdj1vLHMoKTtlbHNlIHRyeXt2YXIgaT1yKHYsbyx5KSxwPWZ1bmN0aW9uKHQpe3Y9dCxzKCl9O2MoaSk/bC5yZXNvbHZlKGkpLnRoZW4ocCxhKTpwKGkpfWNhdGNoKG4pe2Eobil9fXkrK31jYXRjaChuKXtlKG4pfX0pLGUpfWNhdGNoKHQpe2UodCl9fTtzKCl9KSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxMjMpLnNvbWU7bih7dGFyZ2V0OiJBc3luY0l0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7c29tZTpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oNyksYT1uKDQ2KSx1PW4oMTIyKSxjPW4oMTY4KSxmPW4oMTY5KSxzPW4oMTYzKSxwPW4oMTE4KSxsPXMoKGZ1bmN0aW9uKHIpe3ZhciBlLG49dGhpcyxvPW4uaXRlcmF0b3I7aWYobi5yZW1haW5pbmctLSlyZXR1cm4gci5yZXNvbHZlKGkobi5uZXh0LG8pKS50aGVuKChmdW5jdGlvbihyKXtyZXR1cm4gYShyKS5kb25lPyhuLmRvbmU9ITAscCh0LCEwKSk6cChyLnZhbHVlLCExKX0pKS50aGVuKG51bGwsKGZ1bmN0aW9uKHQpe3Rocm93IG4uZG9uZT0hMCx0fSkpO3ZhciB1PXAodCwhMCk7cmV0dXJuIG4uZG9uZT0hMCwoZT1vLnJldHVybikhPT10P3IucmVzb2x2ZShpKGUsbyx0KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKTp1fSkpO28oe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3Rha2U6ZnVuY3Rpb24odCl7cmV0dXJuIGEodGhpcyksdD1mKGMoK3QpKSxuZXcgbCh1KHRoaXMpLHtyZW1haW5pbmc6dH0pfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTIzKS50b0FycmF5O28oe3RhcmdldDoiQXN5bmNJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3RvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLHQsW10pfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMTg1KTsiZnVuY3Rpb24iPT10eXBlb2YgQmlnSW50JiZuKHt0YXJnZXQ6IkJpZ0ludCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtyYW5nZTpmdW5jdGlvbih0LHIsZSl7cmV0dXJuIG5ldyBvKHQscixlLCJiaWdpbnQiLEJpZ0ludCgwKSxCaWdJbnQoMSkpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89big1MSksaT1uKDE4NiksYT1uKDExOCksdT1uKDE2KSxjPW4oMTkpLGY9big4NSkscz1uKDUpLHA9IkluY29ycmVjdCBJdGVyYXRvci5yYW5nZSBhcmd1bWVudHMiLGw9Ik51bWVyaWNSYW5nZUl0ZXJhdG9yIixoPW8uc2V0LHY9by5nZXR0ZXJGb3IobCkseT1SYW5nZUVycm9yLGQ9VHlwZUVycm9yLGc9aSgoZnVuY3Rpb24ocixlLG4sbyxpLGEpe2lmKHR5cGVvZiByIT1vfHxlIT09MS8wJiZlIT09LTEvMCYmdHlwZW9mIGUhPW8pdGhyb3cgZChwKTtpZihyPT09MS8wfHxyPT09LTEvMCl0aHJvdyB5KHApO3ZhciBmLHY9cjxlLGc9ITE7aWYobj09PXQpZj10O2Vsc2UgaWYoYyhuKSlmPW4uc3RlcCxnPSEhbi5pbmNsdXNpdmU7ZWxzZXtpZih0eXBlb2YgbiE9byl0aHJvdyBkKHApO2Y9bn1pZih0eXBlb2YoZj11KGYpP3Y/YTotYTpmKSE9byl0aHJvdyBkKHApO2lmKGY9PT0xLzB8fGY9PT0tMS8wfHxmPT09aSYmciE9PWUpdGhyb3cgeShwKTtoKHRoaXMse3R5cGU6bCxzdGFydDpyLGVuZDplLHN0ZXA6ZixpbmNsdXNpdmU6ZyxoaXRzRW5kOnIhPXJ8fGUhPWV8fGYhPWZ8fHI8ZSE9aTxmLGN1cnJlbnRDb3VudDppLHplcm86aX0pLHN8fCh0aGlzLnN0YXJ0PXIsdGhpcy5lbmQ9ZSx0aGlzLnN0ZXA9Zix0aGlzLmluY2x1c2l2ZT1nKX0pLGwsKGZ1bmN0aW9uKCl7dmFyIHI9dih0aGlzKTtpZihyLmhpdHNFbmQpcmV0dXJuIGEodCwhMCk7dmFyIGU9ci5zdGFydCxuPXIuZW5kLG89ZStyLnN0ZXAqci5jdXJyZW50Q291bnQrKztvPT09biYmKHIuaGl0c0VuZD0hMCk7dmFyIGk9ci5pbmNsdXNpdmU7cmV0dXJuKG49ZTxuP2k/bjxvOm48PW86aT9vPG46bzw9bik/KHIuaGl0c0VuZD0hMCxhKHQsITApKTphKG8sITEpfSkpO2k9ZnVuY3Rpb24odCl7ZihnLnByb3RvdHlwZSx0LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdih0aGlzKVt0XX0sc2V0OmZ1bmN0aW9uKCl7fSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMX0pfTtzJiYoaSgic3RhcnQiKSxpKCJlbmQiKSxpKCJpbmNsdXNpdmUiKSxpKCJzdGVwIikpLHIuZXhwb3J0cz1nfSxmdW5jdGlvbih0LHIsZSl7ZnVuY3Rpb24gbigpe3JldHVybiB0aGlzfXZhciBvPWUoMTg3KS5JdGVyYXRvclByb3RvdHlwZSxpPWUoNzQpLGE9ZSgxMCksdT1lKDE4OCksYz1lKDEyMSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlLGYpe3JldHVybiByKz0iIEl0ZXJhdG9yIix0LnByb3RvdHlwZT1pKG8se25leHQ6YSgrIWYsZSl9KSx1KHQsciwhMSwhMCksY1tyXT1uLHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG4sbz1lKDYpLGk9ZSgyMCksYT1lKDE5KSx1PWUoNzQpLGM9ZSg5NSksZj1lKDQ3KSxzPWUoMzMpLHA9ZSgzNSksbD1zKCJpdGVyYXRvciIpO2U9ITE7W10ua2V5cyYmKCJuZXh0ImluKHM9W10ua2V5cygpKT8ocz1jKGMocykpKSE9PU9iamVjdC5wcm90b3R5cGUmJihuPXMpOmU9ITApLCFhKG4pfHxvKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiBuW2xdLmNhbGwodCkhPT10fSkpP249e306cCYmKG49dShuKSksaShuW2xdKXx8ZihuLGwsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpuLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6ZX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDQ0KS5mLG89ZSgzOCksaT1lKDMzKSgidG9TdHJpbmdUYWciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpeyh0PXQmJiFlP3QucHJvdG90eXBlOnQpJiYhbyh0LGkpJiZuKHQsaSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnJ9KX19LGZ1bmN0aW9uKHQscixlKXtmdW5jdGlvbiBuKCl7dmFyIHQ9dSgiT2JqZWN0IiwiZnJlZXplIik7cmV0dXJuIHQ/dChjKG51bGwpKTpjKG51bGwpfXZhciBvPWUoMiksaT1lKDE5MCksYT1lKDE5MSksdT1lKDIzKSxjPWUoNzQpLGY9T2JqZWN0O28oe2dsb2JhbDohMCxmb3JjZWQ6ITB9LHtjb21wb3NpdGVLZXk6ZnVuY3Rpb24oKXtyZXR1cm4gaShhLGYsYXJndW1lbnRzKS5nZXQoIm9iamVjdCIsbil9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDgpLG89KGU9RnVuY3Rpb24ucHJvdG90eXBlKS5hcHBseSxpPWUuY2FsbDt0LmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwobj9pLmJpbmQobyk6ZnVuY3Rpb24oKXtyZXR1cm4gaS5hcHBseShvLGFyZ3VtZW50cyl9KX0sZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIG4oKXt0aGlzLm9iamVjdD1udWxsLHRoaXMuc3ltYm9sPW51bGwsdGhpcy5wcmltaXRpdmVzPW51bGwsdGhpcy5vYmplY3RzQnlJbmRleD1pKG51bGwpfWUoMTkyKSxlKDIwOSk7dmFyIG89ZSgyMyksaT1lKDc0KSxhPWUoMTkpLHU9T2JqZWN0LGM9VHlwZUVycm9yLGY9bygiTWFwIikscz1vKCJXZWFrTWFwIik7bi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXNbdF18fCh0aGlzW3RdPXIoKSl9LG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCxyLGUpe3JldHVybih0PShlPWU/dGhpcy5vYmplY3RzQnlJbmRleFt0XXx8KHRoaXMub2JqZWN0c0J5SW5kZXhbdF09bmV3IHMpOnRoaXMucHJpbWl0aXZlc3x8KHRoaXMucHJpbWl0aXZlcz1uZXcgZikpLmdldChyKSl8fGUuc2V0KHIsdD1uZXcgbiksdH07dmFyIHA9bmV3IG47dC5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LHI9cCxlPWFyZ3VtZW50cy5sZW5ndGgsbj0wO248ZTtuKyspYSh0PWFyZ3VtZW50c1tuXSkmJihyPXIubmV4dChuLHQsITApKTtpZih0aGlzPT09dSYmcj09PXApdGhyb3cgYygiQ29tcG9zaXRlIGtleXMgbXVzdCBjb250YWluIGEgbm9uLXByaW1pdGl2ZSBjb21wb25lbnQiKTtmb3Iobj0wO248ZTtuKyspYSh0PWFyZ3VtZW50c1tuXSl8fChyPXIubmV4dChuLHQsITEpKTtyZXR1cm4gcn19LGZ1bmN0aW9uKHQscixlKXtlKDE5Myl9LGZ1bmN0aW9uKHIsZSxuKXtuKDE5NCkoIk1hcCIsKGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dCl9fSksbigyMDYpKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDMpLGE9bigxMyksdT1uKDY3KSxjPW4oNDcpLGY9bigxOTUpLHM9bigyMDIpLHA9bigxNTcpLGw9bigyMCksaD1uKDE2KSx2PW4oMTkpLHk9big2KSxkPW4oMjA0KSxnPW4oMTg4KSxiPW4oMjA1KTtyLmV4cG9ydHM9ZnVuY3Rpb24ocixlLG4pe2Z1bmN0aW9uIG0ocil7dmFyIGU9YShUW3JdKTtjKFQsciwiYWRkIj09cj9mdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLDA9PT10PzA6dCksdGhpc306ImRlbGV0ZSI9PXI/ZnVuY3Rpb24odCl7cmV0dXJuIShSJiYhdih0KSkmJmUodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09cj9mdW5jdGlvbihyKXtyZXR1cm4gUiYmIXYocik/dDplKHRoaXMsMD09PXI/MDpyKX06ImhhcyI9PXI/ZnVuY3Rpb24odCl7cmV0dXJuIShSJiYhdih0KSkmJmUodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LHIpe3JldHVybiBlKHRoaXMsMD09PXQ/MDp0LHIpLHRoaXN9KX12YXIgeCx3LFMsQSxFLE89LTEhPT1yLmluZGV4T2YoIk1hcCIpLFI9LTEhPT1yLmluZGV4T2YoIldlYWsiKSxJPU8/InNldCI6ImFkZCIsaz1pW3JdLFQ9ayYmay5wcm90b3R5cGUsTT1rLGo9e307cmV0dXJuIHUociwhbChrKXx8IShSfHxULmZvckVhY2gmJiF5KChmdW5jdGlvbigpeyhuZXcgaykuZW50cmllcygpLm5leHQoKX0pKSkpPyhNPW4uZ2V0Q29uc3RydWN0b3IoZSxyLE8sSSksZi5lbmFibGUoKSk6dShyLCEwKSYmKHc9KHg9bmV3IE0pW0ldKFI/e306LTAsMSkhPXgsUz15KChmdW5jdGlvbigpe3guaGFzKDEpfSkpLEE9ZCgoZnVuY3Rpb24odCl7bmV3IGsodCl9KSksRT0hUiYmeSgoZnVuY3Rpb24oKXtmb3IodmFyIHQ9bmV3IGsscj01O3ItLTspdFtJXShyLHIpO3JldHVybiF0LmhhcygtMCl9KSksQXx8KCgoTT1lKChmdW5jdGlvbih0LHIpe3JldHVybiBwKHQsVCksdD1iKG5ldyBrLHQsTSksaChyKXx8cyhyLHRbSV0se3RoYXQ6dCxBU19FTlRSSUVTOk99KSx0fSkpKS5wcm90b3R5cGU9VCkuY29uc3RydWN0b3I9TSksKFN8fEUpJiYobSgiZGVsZXRlIiksbSgiaGFzIiksTyYmbSgiZ2V0IikpLChFfHx3KSYmbShJKSxSJiZULmNsZWFyJiZkZWxldGUgVC5jbGVhciksaltyXT1NLG8oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6TSE9a30saiksZyhNLHIpLFJ8fG4uc2V0U3Ryb25nKE0scixPKSxNfX0sZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIG4odCl7Zih0LGQse3ZhbHVlOntvYmplY3RJRDoiTyIrZysrLHdlYWtEYXRhOnt9fX0pfXZhciBvPWUoMiksaT1lKDEzKSxhPWUoNTQpLHU9ZSgxOSksYz1lKDM4KSxmPWUoNDQpLmYscz1lKDU3KSxwPWUoMTk2KSxsPWUoMTk5KSxoPWUoNDApLHY9ZSgyMDEpLHk9ITEsZD1oKCJtZXRhIiksZz0wLGI9dC5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXtiLmVuYWJsZT1mdW5jdGlvbigpe30seT0hMDt2YXIgdD1zLmYscj1pKFtdLnNwbGljZSksZT17fTtlW2RdPTEsdChlKS5sZW5ndGgmJihzLmY9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPXQoZSksbz0wLGk9bi5sZW5ndGg7bzxpO28rKylpZihuW29dPT09ZCl7cihuLG8sMSk7YnJlYWt9cmV0dXJuIG59LG8oe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2dldE93blByb3BlcnR5TmFtZXM6cC5mfSkpfSxmYXN0S2V5OmZ1bmN0aW9uKHQscil7aWYoIXUodCkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6KCJzdHJpbmciPT10eXBlb2YgdD8iUyI6IlAiKSt0O2lmKCFjKHQsZCkpe2lmKCFsKHQpKXJldHVybiJGIjtpZighcilyZXR1cm4iRSI7bih0KX1yZXR1cm4gdFtkXS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxyKXtpZighYyh0LGQpKXtpZighbCh0KSlyZXR1cm4hMDtpZighcilyZXR1cm4hMTtuKHQpfXJldHVybiB0W2RdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdiYmeSYmbCh0KSYmIWModCxkKSYmbih0KSx0fX07YVtkXT0hMH0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTQpLG89ZSgxMSksaT1lKDU3KS5mLGE9ZSgxOTcpLHU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gdSYmIldpbmRvdyI9PW4odCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBpKHQpfWNhdGNoKHQpe3JldHVybiBhKHUpfX0odCk6aShvKHQpKX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDYwKSxpPW4oNjMpLGE9bigxOTgpLHU9QXJyYXksYz1NYXRoLm1heDtyLmV4cG9ydHM9ZnVuY3Rpb24ocixlLG4pe2Zvcih2YXIgZj1pKHIpLHM9byhlLGYpLHA9byhuPT09dD9mOm4sZiksbD11KGMocC1zLDApKSxoPTA7czxwO3MrKyxoKyspYShsLGgscltzXSk7cmV0dXJuIGwubGVuZ3RoPWgsbH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDE3KSxvPWUoNDQpLGk9ZSgxMCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlKXsocj1uKHIpKWluIHQ/by5mKHQscixpKDAsZSkpOnRbcl09ZX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDYpLG89ZSgxOSksaT1lKDE0KSxhPWUoMjAwKSx1PU9iamVjdC5pc0V4dGVuc2libGU7bj1uKChmdW5jdGlvbigpe3UoMSl9KSk7dC5leHBvcnRzPW58fGE/ZnVuY3Rpb24odCl7cmV0dXJuISFvKHQpJiYoIWF8fCJBcnJheUJ1ZmZlciIhPWkodCkpJiYoIXV8fHUodCkpfTp1fSxmdW5jdGlvbih0LHIsZSl7ZT1lKDYpLHQuZXhwb3J0cz1lKChmdW5jdGlvbigpe3ZhciB0OyJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IEFycmF5QnVmZmVyKDgpLE9iamVjdC5pc0V4dGVuc2libGUodCkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhIix7dmFsdWU6OH0pKX0pKX0sZnVuY3Rpb24odCxyLGUpe2U9ZSg2KSx0LmV4cG9ydHM9IWUoKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KSl9LGZ1bmN0aW9uKHQscixlKXtmdW5jdGlvbiBuKHQscil7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9cn12YXIgbz1lKDExMSksaT1lKDcpLGE9ZSg0NiksdT1lKDMxKSxjPWUoMjAzKSxmPWUoNjMpLHM9ZSgyNCkscD1lKDExOSksbD1lKDEyMCksaD1lKDE2NSksdj1UeXBlRXJyb3IseT1uLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIGQodCl7cmV0dXJuIGImJmgoYiwibm9ybWFsIix0KSxuZXcgbighMCx0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBPPyhhKHQpLGs/VCh0WzBdLHRbMV0sZCk6VCh0WzBdLHRbMV0pKTprP1QodCxkKTpUKHQpfXZhciBiLG0seCx3LFMsQSxFPWUmJmUudGhhdCxPPSEoIWV8fCFlLkFTX0VOVFJJRVMpLFI9ISghZXx8IWUuSVNfUkVDT1JEKSxJPSEoIWV8fCFlLklTX0lURVJBVE9SKSxrPSEoIWV8fCFlLklOVEVSUlVQVEVEKSxUPW8ocixFKTtpZihSKWI9dC5pdGVyYXRvcjtlbHNlIGlmKEkpYj10O2Vsc2V7aWYoIShJPWwodCkpKXRocm93IHYodSh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKGMoSSkpe2ZvcihtPTAseD1mKHQpO208eDttKyspaWYoKHc9Zyh0W21dKSkmJnMoeSx3KSlyZXR1cm4gdztyZXR1cm4gbmV3IG4oITEpfWI9cCh0LEkpfWZvcihTPShSP3Q6YikubmV4dDshKEE9aShTLGIpKS5kb25lOyl7dHJ5e3c9ZyhBLnZhbHVlKX1jYXRjaCh0KXtoKGIsInRocm93Iix0KX1pZigib2JqZWN0Ij09dHlwZW9mIHcmJncmJnMoeSx3KSlyZXR1cm4gd31yZXR1cm4gbmV3IG4oITEpfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMzMpLGk9bigxMjEpLGE9bygiaXRlcmF0b3IiKSx1PUFycmF5LnByb3RvdHlwZTtyLmV4cG9ydHM9ZnVuY3Rpb24ocil7cmV0dXJuIHIhPT10JiYoaS5BcnJheT09PXJ8fHVbYV09PT1yKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMzKSgiaXRlcmF0b3IiKSxvPSExO3RyeXt2YXIgaT0wLGE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWkrK319LHJldHVybjpmdW5jdGlvbigpe289ITB9fTthW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oYSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKHQpe310LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtpZighciYmIW8pcmV0dXJuITE7dmFyIGU9ITE7dHJ5e3ZhciBpPXt9O2lbbl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOmU9ITB9fX19LHQoaSl9Y2F0Y2godCl7fXJldHVybiBlfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMjApLG89ZSgxOSksaT1lKDk3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUpe3ZhciBhLHU7cmV0dXJuIGkmJm4oYT1yLmNvbnN0cnVjdG9yKSYmYSE9PWUmJm8odT1hLnByb3RvdHlwZSkmJnUhPT1lLnByb3RvdHlwZSYmaSh0LHUpLHR9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big3NCksaT1uKDg1KSxhPW4oMTE2KSx1PW4oMTExKSxjPW4oMTU3KSxmPW4oMTYpLHM9bigyMDIpLHA9bigyMDcpLGw9bigxMTgpLGg9bigyMDgpLHY9big1KSx5PW4oMTk1KS5mYXN0S2V5LGQ9KG49big1MSkpLnNldCxnPW4uZ2V0dGVyRm9yO3IuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24ocixlLG4scCl7ZnVuY3Rpb24gbChyLGUsbil7dmFyIG8saT1iKHIpLGE9bShyLGUpO3JldHVybiBhP2EudmFsdWU9bjooaS5sYXN0PWE9e2luZGV4Om89eShlLCEwKSxrZXk6ZSx2YWx1ZTpuLHByZXZpb3VzOm49aS5sYXN0LG5leHQ6dCxyZW1vdmVkOiExfSxpLmZpcnN0fHwoaS5maXJzdD1hKSxuJiYobi5uZXh0PWEpLHY/aS5zaXplKys6ci5zaXplKyssIkYiIT09byYmKGkuaW5kZXhbb109YSkpLHJ9cj1yKChmdW5jdGlvbihyLGkpe2MocixoKSxkKHIse3R5cGU6ZSxpbmRleDpvKG51bGwpLGZpcnN0OnQsbGFzdDp0LHNpemU6MH0pLHZ8fChyLnNpemU9MCksZihpKXx8cyhpLHJbcF0se3RoYXQ6cixBU19FTlRSSUVTOm59KX0pKTt2YXIgaD1yLnByb3RvdHlwZSxiPWcoZSksbT1mdW5jdGlvbih0LHIpe3ZhciBlLG49Yih0KTtpZigiRiIhPT0odD15KHIpKSlyZXR1cm4gbi5pbmRleFt0XTtmb3IoZT1uLmZpcnN0O2U7ZT1lLm5leHQpaWYoZS5rZXk9PXIpcmV0dXJuIGV9O3JldHVybiBhKGgse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciByPWIodGhpcyksZT1yLmluZGV4LG49ci5maXJzdDtuOyluLnJlbW92ZWQ9ITAsbi5wcmV2aW91cyYmKG4ucHJldmlvdXM9bi5wcmV2aW91cy5uZXh0PXQpLGRlbGV0ZSBlW24uaW5kZXhdLG49bi5uZXh0O3IuZmlyc3Q9ci5sYXN0PXQsdj9yLnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciByLGU9Yih0aGlzKSxuPW0odGhpcyx0KTtyZXR1cm4gbiYmKHI9bi5uZXh0LHQ9bi5wcmV2aW91cyxkZWxldGUgZS5pbmRleFtuLmluZGV4XSxuLnJlbW92ZWQ9ITAsdCYmKHQubmV4dD1yKSxyJiYoci5wcmV2aW91cz10KSxlLmZpcnN0PT1uJiYoZS5maXJzdD1yKSxlLmxhc3Q9PW4mJihlLmxhc3Q9dCksdj9lLnNpemUtLTp0aGlzLnNpemUtLSksISFufSxmb3JFYWNoOmZ1bmN0aW9uKHIpe2Zvcih2YXIgZSxuPWIodGhpcyksbz11KHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KTtlPWU/ZS5uZXh0Om4uZmlyc3Q7KWZvcihvKGUudmFsdWUsZS5rZXksdGhpcyk7ZSYmZS5yZW1vdmVkOyllPWUucHJldmlvdXN9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIW0odGhpcyx0KX19KSxhKGgsbj97Z2V0OmZ1bmN0aW9uKHQpe3JldHVybih0PW0odGhpcyx0KSkmJnQudmFsdWV9LHNldDpmdW5jdGlvbih0LHIpe3JldHVybiBsKHRoaXMsMD09PXQ/MDp0LHIpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gbCh0aGlzLHQ9MD09PXQ/MDp0LHQpfX0pLHYmJmkoaCwic2l6ZSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYih0aGlzKS5zaXplfX0pLHJ9LHNldFN0cm9uZzpmdW5jdGlvbihyLGUsbil7dmFyIG89ZSsiIEl0ZXJhdG9yIixpPWcoZSksYT1nKG8pO3AocixlLChmdW5jdGlvbihyLGUpe2QodGhpcyx7dHlwZTpvLHRhcmdldDpyLHN0YXRlOmkociksa2luZDplLGxhc3Q6dH0pfSksKGZ1bmN0aW9uKCl7Zm9yKHZhciByPWEodGhpcyksZT1yLmtpbmQsbj1yLmxhc3Q7biYmbi5yZW1vdmVkOyluPW4ucHJldmlvdXM7cmV0dXJuIHIudGFyZ2V0JiYoci5sYXN0PW49bj9uLm5leHQ6ci5zdGF0ZS5maXJzdCk/bCgia2V5cyI9PWU/bi5rZXk6InZhbHVlcyI9PWU/bi52YWx1ZTpbbi5rZXksbi52YWx1ZV0sITEpOihyLnRhcmdldD10LGwodCwhMCkpfSksbj8iZW50cmllcyI6InZhbHVlcyIsIW4sITApLGgoZSl9fX0sZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gdGhpc312YXIgbz1lKDIpLGk9ZSg3KSxhPWUoMzUpLHU9ZSg0OSksYz1lKDIwKSxmPWUoMTg2KSxzPWUoOTUpLHA9ZSg5NyksbD1lKDE4OCksaD1lKDQzKSx2PWUoNDcpLHk9ZSgzMyksZD1lKDEyMSksZz0oZT1lKDE4NyksdS5QUk9QRVIpLGI9dS5DT05GSUdVUkFCTEUsbT1lLkl0ZXJhdG9yUHJvdG90eXBlLHg9ZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLHc9eSgiaXRlcmF0b3IiKSxTPSJ2YWx1ZXMiLEE9ImVudHJpZXMiO3QuZXhwb3J0cz1mdW5jdGlvbih0LHIsZSx1LHksRSxPKXtmdW5jdGlvbiBSKHQpe2lmKHQ9PT15JiZDKXJldHVybiBDO2lmKCF4JiZ0IGluIFApcmV0dXJuIFBbdF07c3dpdGNoKHQpe2Nhc2Uia2V5cyI6Y2FzZSBTOmNhc2UgQTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUodGhpcyx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMpfX1mKGUscix1KTt2YXIgSSxrLFQsTT1yKyIgSXRlcmF0b3IiLGo9ITEsUD10LnByb3RvdHlwZSxEPVBbd118fFBbIkBAaXRlcmF0b3IiXXx8eSYmUFt5XSxDPSF4JiZEfHxSKHkpO2lmKCh1PSJBcnJheSI9PXImJlAuZW50cmllc3x8RCkmJihJPXModS5jYWxsKG5ldyB0KSkpIT09T2JqZWN0LnByb3RvdHlwZSYmSS5uZXh0JiYoYXx8cyhJKT09PW18fChwP3AoSSxtKTpjKElbd10pfHx2KEksdyxuKSksbChJLE0sITAsITApLGEmJihkW01dPW4pKSxnJiZ5PT1TJiZEJiZELm5hbWUhPT1TJiYoIWEmJmI/aChQLCJuYW1lIixTKTooaj0hMCxDPWZ1bmN0aW9uKCl7cmV0dXJuIGkoRCx0aGlzKX0pKSx5KWlmKGs9e3ZhbHVlczpSKFMpLGtleXM6RT9DOlIoImtleXMiKSxlbnRyaWVzOlIoQSl9LE8pZm9yKFQgaW4gaykheCYmIWomJlQgaW4gUHx8dihQLFQsa1tUXSk7ZWxzZSBvKHt0YXJnZXQ6cixwcm90bzohMCxmb3JjZWQ6eHx8an0sayk7cmV0dXJuIGEmJiFPfHxQW3ddPT09Q3x8dihQLHcsQyx7bmFtZTp5fSksZFtyXT1DLGt9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyMyksbz1lKDg1KSxpPWUoMzMpLGE9ZSg1KSx1PWkoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dD1uKHQpLGEmJnQmJiF0W3VdJiZvKHQsdSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX0sZnVuY3Rpb24odCxyLGUpe2UoMjEwKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvLGksYSx1LGM9bigyMDEpLGY9bigzKSxzPW4oMTMpLHA9bigxMTYpLGw9bigxOTUpLGg9bigxOTQpLHY9bigyMTEpLHk9bigxOSksZD1uKDUxKS5lbmZvcmNlLGc9big2KSxiPW4oNTIpLG09KG49T2JqZWN0LEFycmF5LmlzQXJyYXkpLHg9bi5pc0V4dGVuc2libGUsdz1uLmlzRnJvemVuLFM9bi5pc1NlYWxlZCxBPW4uZnJlZXplLEU9bi5zZWFsLE89e30sUj17fSxJPShuPSFmLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIGYsZj1mdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnQpfX0saCgiV2Vha01hcCIsZix2KSksaz1zKChoPUkucHJvdG90eXBlKS5zZXQpO2ImJihuPyhvPXYuZ2V0Q29uc3RydWN0b3IoZiwiV2Vha01hcCIsITApLGwuZW5hYmxlKCksaT1zKGguZGVsZXRlKSxhPXMoaC5oYXMpLHU9cyhoLmdldCkscChoLHtkZWxldGU6ZnVuY3Rpb24odCl7aWYoIXkodCl8fHgodCkpcmV0dXJuIGkodGhpcyx0KTt2YXIgcj1kKHRoaXMpO3JldHVybiByLmZyb3plbnx8KHIuZnJvemVuPW5ldyBvKSxpKHRoaXMsdCl8fHIuZnJvemVuLmRlbGV0ZSh0KX0saGFzOmZ1bmN0aW9uKHQpe2lmKCF5KHQpfHx4KHQpKXJldHVybiBhKHRoaXMsdCk7dmFyIHI9ZCh0aGlzKTtyZXR1cm4gci5mcm96ZW58fChyLmZyb3plbj1uZXcgbyksYSh0aGlzLHQpfHxyLmZyb3plbi5oYXModCl9LGdldDpmdW5jdGlvbih0KXtpZigheSh0KXx8eCh0KSlyZXR1cm4gdSh0aGlzLHQpO3ZhciByPWQodGhpcyk7cmV0dXJuIHIuZnJvemVufHwoci5mcm96ZW49bmV3IG8pLGEodGhpcyx0KT91KHRoaXMsdCk6ci5mcm96ZW4uZ2V0KHQpfSxzZXQ6ZnVuY3Rpb24odCxyKXt2YXIgZTtyZXR1cm4geSh0KSYmIXgodCk/KChlPWQodGhpcykpLmZyb3plbnx8KGUuZnJvemVuPW5ldyBvKSxhKHRoaXMsdCk/ayh0aGlzLHQscik6ZS5mcm96ZW4uc2V0KHQscikpOmsodGhpcyx0LHIpLHRoaXN9fSkpOmMmJmcoKGZ1bmN0aW9uKCl7dmFyIHQ9QShbXSk7cmV0dXJuIGsobmV3IEksdCwxKSwhdyh0KX0pKSYmcChoLHtzZXQ6ZnVuY3Rpb24odCxyKXt2YXIgZTtyZXR1cm4gbSh0KSYmKHcodCk/ZT1POlModCkmJihlPVIpKSxrKHRoaXMsdCxyKSxlPT1PJiZBKHQpLGU9PVImJkUodCksdGhpc319KSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHQpe3JldHVybiB0LmZyb3plbnx8KHQuZnJvemVuPW5ldyBTKX1mdW5jdGlvbiBpKHQscil7cmV0dXJuIGIodC5lbnRyaWVzLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PXJ9KSl9dmFyIGE9bigxMyksdT1uKDExNiksYz1uKDE5NSkuZ2V0V2Vha0RhdGEsZj1uKDE1Nykscz1uKDQ2KSxwPW4oMTYpLGw9bigxOSksaD1uKDIwMiksdj1uKDEyNikseT1uKDM4KSxkPShuPW4oNTEpKS5zZXQsZz1uLmdldHRlckZvcixiPXYuZmluZCxtPXYuZmluZEluZGV4LHg9YShbXS5zcGxpY2UpLHc9MCxTPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPVtdfTtTLnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHQpe2lmKHQ9aSh0aGlzLHQpKXJldHVybiB0WzFdfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISFpKHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LHIpe3ZhciBlPWkodGhpcyx0KTtlP2VbMV09cjp0aGlzLmVudHJpZXMucHVzaChbdCxyXSl9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgcj1tKHRoaXMuZW50cmllcywoZnVuY3Rpb24ocil7cmV0dXJuIHJbMF09PT10fSkpO3JldHVybn5yJiZ4KHRoaXMuZW50cmllcyxyLDEpLCEhfnJ9fSxyLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHIsZSxuLGkpe2Z1bmN0aW9uIGEodCxyLGUpe3ZhciBuPWIodCksaT1jKHMociksITApO3JldHVybiEwPT09aT9vKG4pLnNldChyLGUpOmlbbi5pZF09ZSx0fXI9cigoZnVuY3Rpb24ocixvKXtmKHIsdiksZChyLHt0eXBlOmUsaWQ6dysrLGZyb3plbjp0fSkscChvKXx8aChvLHJbaV0se3RoYXQ6cixBU19FTlRSSUVTOm59KX0pKTt2YXIgdj1yLnByb3RvdHlwZSxiPWcoZSk7cmV0dXJuIHUodix7ZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciByPWIodGhpcyk7aWYoIWwodCkpcmV0dXJuITE7dmFyIGU9Yyh0KTtyZXR1cm4hMD09PWU/byhyKS5kZWxldGUodCk6ZSYmeShlLHIuaWQpJiZkZWxldGUgZVtyLmlkXX0saGFzOmZ1bmN0aW9uKHQpe3ZhciByPWIodGhpcyk7aWYoIWwodCkpcmV0dXJuITE7dmFyIGU9Yyh0KTtyZXR1cm4hMD09PWU/byhyKS5oYXModCk6ZSYmeShlLHIuaWQpfX0pLHUodixuP3tnZXQ6ZnVuY3Rpb24ocil7dmFyIGU9Yih0aGlzKTtpZihsKHIpKXt2YXIgbj1jKHIpO3JldHVybiEwPT09bj9vKGUpLmdldChyKTpuP25bZS5pZF06dH19LHNldDpmdW5jdGlvbih0LHIpe3JldHVybiBhKHRoaXMsdCxyKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEodGhpcyx0LCEwKX19KSxyfX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxOTEpLGk9ZSgyMyksYT1lKDE5MCk7bih7Z2xvYmFsOiEwLGZvcmNlZDohMH0se2NvbXBvc2l0ZVN5bWJvbDpmdW5jdGlvbigpe3JldHVybiAxPT1hcmd1bWVudHMubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGFyZ3VtZW50c1swXT9pKCJTeW1ib2wiKS5mb3IoYXJndW1lbnRzWzBdKTphKG8sbnVsbCxhcmd1bWVudHMpLmdldCgic3ltYm9sIixpKCJTeW1ib2wiKSl9fSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHQpe2lmKCh0PXcodCkpLnN0YXRlPT1BKXRocm93IGIobSsiIGFscmVhZHkgZGlzcG9zZWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBpKCl7eChzKHRoaXMsRSkse3R5cGU6bSxzdGF0ZToicGVuZGluZyIsc3RhY2s6W119KSx1fHwodGhpcy5kaXNwb3NlZD0hMSl9dmFyIGE9bigyKSx1PW4oNSksYz1uKDIzKSxmPW4oMzApLHM9bigxNTcpLHA9big0NyksbD1uKDExNiksaD1uKDg1KSx2PW4oMzMpLHk9big1MSksZD1uKDE1OCksZz1jKCJTdXBwcmVzc2VkRXJyb3IiKSxiPVJlZmVyZW5jZUVycm9yLG09KGM9digiZGlzcG9zZSIpLHY9digidG9TdHJpbmdUYWciKSwiRGlzcG9zYWJsZVN0YWNrIikseD15LnNldCx3PXkuZ2V0dGVyRm9yKG0pLFM9InN5bmMtZGlzcG9zZSIsQT0iZGlzcG9zZWQiLEU9aS5wcm90b3R5cGU7bChFLHtkaXNwb3NlOmZ1bmN0aW9uKCl7dmFyIHQ9dyh0aGlzKTtpZih0LnN0YXRlIT1BKXt0LnN0YXRlPUEsdXx8KHRoaXMuZGlzcG9zZWQ9ITApO2Zvcih2YXIgcixlPXQuc3RhY2ssbj1lLmxlbmd0aCxvPSExO247KXt2YXIgaT1lWy0tbl07ZVtuXT1udWxsO3RyeXtpKCl9Y2F0Y2godCl7cj1vP25ldyBnKHQscik6KG89ITAsdCl9fWlmKHQuc3RhY2s9bnVsbCxvKXRocm93IHJ9fSx1c2U6ZnVuY3Rpb24odCl7cmV0dXJuIGQobyh0aGlzKSx0LFMpLHR9LGFkb3B0OmZ1bmN0aW9uKHIsZSl7dmFyIG49byh0aGlzKTtyZXR1cm4gZihlKSxkKG4sdCxTLChmdW5jdGlvbigpe2Uocil9KSkscn0sZGVmZXI6ZnVuY3Rpb24ocil7dmFyIGU9byh0aGlzKTtmKHIpLGQoZSx0LFMscil9LG1vdmU6ZnVuY3Rpb24oKXt2YXIgdD1vKHRoaXMpLHI9bmV3IGk7cmV0dXJuIHcocikuc3RhY2s9dC5zdGFjayx0LnN0YWNrPVtdLHQuc3RhdGU9QSx1fHwodGhpcy5kaXNwb3NlZD0hMCkscn19KSx1JiZoKEUsImRpc3Bvc2VkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3KHRoaXMpLnN0YXRlPT1BfX0pLHAoRSxjLEUuZGlzcG9zZSx7bmFtZToiZGlzcG9zZSJ9KSxwKEUsdixtLHtub25Xcml0YWJsZTohMH0pLGEoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMH0se0Rpc3Bvc2FibGVTdGFjazppfSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IkZ1bmN0aW9uIixwcm90bzohMCxmb3JjZWQ6ITB9LHtkZW1ldGhvZGl6ZTplKDIxNSl9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTMpLG89ZSgzMCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4obyh0aGlzKSl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMTMpLGk9ZSgyMCksYT1lKDUwKSx1PWUoMzgpLGM9ZSg1KSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscz0vXlxzKmNsYXNzXGIvLHA9byhzLmV4ZWMpO24oe3RhcmdldDoiRnVuY3Rpb24iLHN0YXQ6ITAsc2hhbTohMCxmb3JjZWQ6ITB9LHtpc0NhbGxhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiBpKHQpJiYhZnVuY3Rpb24odCl7dHJ5e2lmKCFjfHwhcChzLGEodCkpKXJldHVybiExfWNhdGNoKHQpe31yZXR1cm4hISh0PWYodCwicHJvdG90eXBlIikpJiZ1KHQsIndyaXRhYmxlIikmJiF0LndyaXRhYmxlfSh0KX19KX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiRnVuY3Rpb24iLHN0YXQ6ITAsZm9yY2VkOiEwfSx7aXNDb25zdHJ1Y3RvcjplKDExMyl9KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMzMpLGk9big0NCkuZjtuPW8oIm1ldGFkYXRhIik7KG89RnVuY3Rpb24ucHJvdG90eXBlKVtuXT09PXQmJmkobyxuLHt2YWx1ZTpudWxsfSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IkZ1bmN0aW9uIixwcm90bzohMCxmb3JjZWQ6ITAsbmFtZToiZGVtZXRob2RpemUifSx7dW5UaGlzOmUoMjE1KX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMyksaT1lKDE1NyksYT1lKDIwKSx1PWUoNDMpLGM9ZSg2KSxmPWUoMzgpLHM9ZSgzMykscD1lKDE4NykuSXRlcmF0b3JQcm90b3R5cGUsbD0oZT1lKDM1KSxzPXMoInRvU3RyaW5nVGFnIiksby5JdGVyYXRvcik7YT1lfHwhYShsKXx8bC5wcm90b3R5cGUhPT1wfHwhYygoZnVuY3Rpb24oKXtsKHt9KX0pKSxjPWZ1bmN0aW9uKCl7aSh0aGlzLHApfTtmKHAscyl8fHUocCxzLCJJdGVyYXRvciIpLCFhJiZmKHAsImNvbnN0cnVjdG9yIikmJnAuY29uc3RydWN0b3IhPT1PYmplY3R8fHUocCwiY29uc3RydWN0b3IiLGMpLGMucHJvdG90eXBlPXAsbih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDphfSx7SXRlcmF0b3I6Y30pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJJdGVyYXRvciIsbmFtZToiaW5kZXhlZCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHthc0luZGV4ZWRQYWlyczplKDIyMil9KX0sZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIG4odCxyKXtyZXR1cm5bcix0XX12YXIgbz1lKDcpLGk9ZSgyMjMpO3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBvKGksdGhpcyxuKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDcpLG89ZSgzMCksaT1lKDQ2KSxhPWUoMTIyKSx1PWUoMjI0KSxjPWUoMjI1KSxmPXUoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pdGVyYXRvcixyPWkobih0aGlzLm5leHQsdCkpO2lmKCEodGhpcy5kb25lPSEhci5kb25lKSlyZXR1cm4gYyh0LHRoaXMubWFwcGVyLFtyLnZhbHVlLHRoaXMuY291bnRlcisrXSwhMCl9KSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMpLG8odCksbmV3IGYoYSh0aGlzKSx7bWFwcGVyOnR9KX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDcpLGk9big3NCksYT1uKDQzKSx1PW4oMTE2KSxjPW4oMzMpLGY9big1MSkscz1uKDI5KSxwPW4oMTg3KS5JdGVyYXRvclByb3RvdHlwZSxsPW4oMTE4KSxoPW4oMTY1KSx2PShuPWMoInRvU3RyaW5nVGFnIiksIkl0ZXJhdG9ySGVscGVyIikseT0iV3JhcEZvclZhbGlkSXRlcmF0b3IiLGQ9Zi5zZXQsZz0oYz1mdW5jdGlvbihyKXt2YXIgZT1mLmdldHRlckZvcihyP3k6dik7cmV0dXJuIHUoaShwKSx7bmV4dDpmdW5jdGlvbigpe3ZhciBuPWUodGhpcyk7aWYocilyZXR1cm4gbi5uZXh0SGFuZGxlcigpO3RyeXt2YXIgbz1uLmRvbmU/dDpuLm5leHRIYW5kbGVyKCk7cmV0dXJuIGwobyxuLmRvbmUpfWNhdGNoKG8pe3Rocm93IG4uZG9uZT0hMCxvfX0scmV0dXJuOmZ1bmN0aW9uKCl7dmFyIG49ZSh0aGlzKSxpPW4uaXRlcmF0b3I7aWYobi5kb25lPSEwLHIpe3ZhciBhPXMoaSwicmV0dXJuIik7cmV0dXJuIGE/byhhLGkpOmwodCwhMCl9aWYobi5pbm5lcil0cnl7aChuLmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaChuKXtyZXR1cm4gaChpLCJ0aHJvdyIsbil9cmV0dXJuIGgoaSwibm9ybWFsIiksbCh0LCEwKX19KX0sYyghMCkpLGI9YyghMSk7YShiLG4sIkl0ZXJhdG9yIEhlbHBlciIpLHIuZXhwb3J0cz1mdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGUoZSxuKXtuPyhuLml0ZXJhdG9yPWUuaXRlcmF0b3Isbi5uZXh0PWUubmV4dCk6bj1lLG4udHlwZT1yP3k6dixuLm5leHRIYW5kbGVyPXQsbi5jb3VudGVyPTAsbi5kb25lPSExLGQodGhpcyxuKX1yZXR1cm4gZS5wcm90b3R5cGU9cj9nOmIsZX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDQ2KSxvPWUoMTY1KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLGUsaSl7dHJ5e3JldHVybiBpP3IobihlKVswXSxlWzFdKTpyKGUpfWNhdGNoKHIpe28odCwidGhyb3ciLHIpfX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDcpLG89ZSg0NyksaT1lKDI5KSxhPWUoMzgpLHU9ZSgzMyk7YShlPWUoMTg3KS5JdGVyYXRvclByb3RvdHlwZSx1PXUoImRpc3Bvc2UiKSl8fG8oZSx1LChmdW5jdGlvbigpe3ZhciB0PWkodGhpcywicmV0dXJuIik7dCYmbih0LHRoaXMpfSkpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDQ2KSxhPWUoMTIyKSx1PWUoMTY4KSxjPWUoMTY5KSxmPWUoMjI0KSgoZnVuY3Rpb24oKXtmb3IodmFyIHQscj10aGlzLml0ZXJhdG9yLGU9dGhpcy5uZXh0O3RoaXMucmVtYWluaW5nOylpZih0aGlzLnJlbWFpbmluZy0tLHQ9aShvKGUscikpLHRoaXMuZG9uZT0hIXQuZG9uZSlyZXR1cm47aWYodD1pKG8oZSxyKSksISh0aGlzLmRvbmU9ISF0LmRvbmUpKXJldHVybiB0LnZhbHVlfSkpO24oe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtkcm9wOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMpLHQ9Yyh1KCt0KSksbmV3IGYoYSh0aGlzKSx7cmVtYWluaW5nOnR9KX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDIwMiksaT1lKDMwKSxhPWUoNDYpLHU9ZSgxMjIpO24oe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtldmVyeTpmdW5jdGlvbih0KXthKHRoaXMpLGkodCk7dmFyIHI9dSh0aGlzKSxlPTA7cmV0dXJuIW8ociwoZnVuY3Rpb24ocixuKXtpZighdChyLGUrKykpcmV0dXJuIG4oKX0pLHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMwKSxhPWUoNDYpLHU9ZSgxMjIpLGM9ZSgyMjQpLGY9ZSgyMjUpLHM9YygoZnVuY3Rpb24oKXtmb3IodmFyIHQscj10aGlzLml0ZXJhdG9yLGU9dGhpcy5wcmVkaWNhdGUsbj10aGlzLm5leHQ7Oyl7aWYodD1hKG8obixyKSksdGhpcy5kb25lPSEhdC5kb25lKXJldHVybjtpZih0PXQudmFsdWUsZihyLGUsW3QsdGhpcy5jb3VudGVyKytdLCEwKSlyZXR1cm4gdH19KSk7bih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gYSh0aGlzKSxpKHQpLG5ldyBzKHUodGhpcykse3ByZWRpY2F0ZTp0fSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgyMDIpLGk9ZSgzMCksYT1lKDQ2KSx1PWUoMTIyKTtuKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbih0KXthKHRoaXMpLGkodCk7dmFyIHI9dSh0aGlzKSxlPTA7cmV0dXJuIG8ociwoZnVuY3Rpb24ocixuKXtpZih0KHIsZSsrKSlyZXR1cm4gbihyKX0pLHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3KSxpPWUoMzApLGE9ZSg0NiksdT1lKDEyMiksYz1lKDIzMiksZj1lKDIyNCkscz1lKDE2NSkscD1mKChmdW5jdGlvbigpe2Zvcih2YXIgdCxyLGU9dGhpcy5pdGVyYXRvcixuPXRoaXMubWFwcGVyOzspe2lmKHI9dGhpcy5pbm5lcil0cnl7aWYoISh0PWEobyhyLm5leHQsci5pdGVyYXRvcikpKS5kb25lKXJldHVybiB0LnZhbHVlO3RoaXMuaW5uZXI9bnVsbH1jYXRjaCh0KXtzKGUsInRocm93Iix0KX1pZih0PWEobyh0aGlzLm5leHQsZSkpLHRoaXMuZG9uZT0hIXQuZG9uZSlyZXR1cm47dHJ5e3RoaXMuaW5uZXI9YyhuKHQudmFsdWUsdGhpcy5jb3VudGVyKyspKX1jYXRjaCh0KXtzKGUsInRocm93Iix0KX19fSkpO24oe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtmbGF0TWFwOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLGkodCksbmV3IHAodSh0aGlzKSx7bWFwcGVyOnQsaW5uZXI6bnVsbH0pfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89big3KSxpPW4oNDYpLGE9bigxMjIpLHU9bigxMjApO3IuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT1pKHIpO3I9dShlKTtyZXR1cm4gYShpKHIhPT10P28ocixlKTplKSl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMjAyKSxpPWUoMzApLGE9ZSg0NiksdT1lKDEyMik7bih7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZvckVhY2g6ZnVuY3Rpb24odCl7YSh0aGlzKSxpKHQpO3ZhciByPXUodGhpcyksZT0wO28ociwoZnVuY3Rpb24ocil7dChyLGUrKyl9KSx7SVNfUkVDT1JEOiEwfSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3KSxpPWUoMzkpLGE9ZSgyNCksdT1lKDE4NykuSXRlcmF0b3JQcm90b3R5cGUsYz1lKDIyNCksZj1lKDIzMikscz1jKChmdW5jdGlvbigpe3JldHVybiBvKHRoaXMubmV4dCx0aGlzLml0ZXJhdG9yKX0pLCEwKTtuKHt0YXJnZXQ6Ikl0ZXJhdG9yIixzdGF0OiEwfSx7ZnJvbTpmdW5jdGlvbih0KXtyZXR1cm4gdD1mKCJzdHJpbmciPT10eXBlb2YgdD9pKHQpOnQpLGEodSx0Lml0ZXJhdG9yKT90Lml0ZXJhdG9yOm5ldyBzKHQpfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtpbmRleGVkOmUoMjIyKX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se21hcDplKDIyMyl9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDE4NSksaT1UeXBlRXJyb3I7bih7dGFyZ2V0OiJJdGVyYXRvciIsc3RhdDohMCxmb3JjZWQ6ITB9LHtyYW5nZTpmdW5jdGlvbih0LHIsZSl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiBuZXcgbyh0LHIsZSwibnVtYmVyIiwwLDEpO2lmKCJiaWdpbnQiPT10eXBlb2YgdClyZXR1cm4gbmV3IG8odCxyLGUsImJpZ2ludCIsQmlnSW50KDApLEJpZ0ludCgxKSk7dGhyb3cgaSgiSW5jb3JyZWN0IEl0ZXJhdG9yLnJhbmdlIGFyZ3VtZW50cyIpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMjAyKSxhPW4oMzApLHU9big0NiksYz1uKDEyMiksZj1UeXBlRXJyb3I7byh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3JlZHVjZTpmdW5jdGlvbihyKXt1KHRoaXMpLGEocik7dmFyIGU9Yyh0aGlzKSxuPWFyZ3VtZW50cy5sZW5ndGg8MixvPW4/dDphcmd1bWVudHNbMV0scz0wO2lmKGkoZSwoZnVuY3Rpb24odCl7bz1uPyhuPSExLHQpOnIobyx0LHMpLHMrK30pLHtJU19SRUNPUkQ6ITB9KSxuKXRocm93IGYoIlJlZHVjZSBvZiBlbXB0eSBpdGVyYXRvciB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtyZXR1cm4gb319KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDIwMiksaT1lKDMwKSxhPWUoNDYpLHU9ZSgxMjIpO24oe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtzb21lOmZ1bmN0aW9uKHQpe2EodGhpcyksaSh0KTt2YXIgcj11KHRoaXMpLGU9MDtyZXR1cm4gbyhyLChmdW5jdGlvbihyLG4pe2lmKHQocixlKyspKXJldHVybiBuKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDcpLGE9big0NiksdT1uKDEyMiksYz1uKDE2OCksZj1uKDE2OSkscz1uKDIyNCkscD1uKDE2NSksbD1zKChmdW5jdGlvbigpe3ZhciByPXRoaXMuaXRlcmF0b3I7cmV0dXJuIHRoaXMucmVtYWluaW5nLS0/KHI9YShpKHRoaXMubmV4dCxyKSksKHRoaXMuZG9uZT0hIXIuZG9uZSk/dm9pZCAwOnIudmFsdWUpOih0aGlzLmRvbmU9ITAscChyLCJub3JtYWwiLHQpKX0pKTtvKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7dGFrZTpmdW5jdGlvbih0KXtyZXR1cm4gYSh0aGlzKSx0PWYoYygrdCkpLG5ldyBsKHUodGhpcykse3JlbWFpbmluZzp0fSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg0NiksaT1lKDIwMiksYT1lKDEyMiksdT1bXS5wdXNoO24oe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHt0b0FycmF5OmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIGkoYShvKHRoaXMpKSx1LHt0aGF0OnQsSVNfUkVDT1JEOiEwfSksdH19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDQ2KSxpPWUoMTE1KSxhPWUoMTc3KSx1PWUoMTIyKTtuKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7dG9Bc3luYzpmdW5jdGlvbigpe3JldHVybiBuZXcgYSh1KG5ldyBpKHUobyh0aGlzKSkpKSl9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IkpTT04iLHN0YXQ6ITAsZm9yY2VkOiFlKDI0NCl9LHtpc1Jhd0pTT046ZSgyNDUpfSl9LGZ1bmN0aW9uKHQscixlKXtlPWUoNiksdC5leHBvcnRzPSFlKChmdW5jdGlvbigpe3ZhciB0PSI5MDA3MTk5MjU0NzQwOTkzIixyPUpTT04ucmF3SlNPTih0KTtyZXR1cm4hSlNPTi5pc1Jhd0pTT04ocil8fEpTT04uc3RyaW5naWZ5KHIpIT09dH0pKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTkpLG89ZSg1MSkuZ2V0O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hIW4odCkmJighISh0PW8odCkpJiYiUmF3SlNPTiI9PT10LnR5cGUpfX0sZnVuY3Rpb24ocixlLG4pe2Z1bmN0aW9uIG8odCxyLGUsbil7dGhpcy52YWx1ZT10LHRoaXMuZW5kPXIsdGhpcy5zb3VyY2U9ZSx0aGlzLm5vZGVzPW59dmFyIGk9bigyKSxhPW4oNSksdT1uKDMpLGM9bigyMyksZj1uKDEzKSxzPW4oNykscD1uKDIwKSxsPW4oMTkpLGg9big2OSksdj1uKDM4KSx5PW4oODgpLGQ9big2MyksZz1uKDE5OCksYj1uKDYpLG09bigyNDcpLHg9bigyNiksdz0obj11LkpTT04sdS5OdW1iZXIpLFM9dS5TeW50YXhFcnJvcixBPW4mJm4ucGFyc2UsRT1jKCJPYmplY3QiLCJrZXlzIiksTz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFI9ZigiIi5jaGFyQXQpLEk9ZigiIi5zbGljZSksaz1mKC8uLy5leGVjKSxUPWYoW10ucHVzaCksTT0vXlxkJC8saj0vXlsxLTldJC8sUD0vXigtfFxkKSQvLEQ9L15bXHRcblxyIF0kLyxDPWZ1bmN0aW9uKHIsZSxuLG8pe3ZhciBpLGEsdSxjLGYscD1yW2VdLHk9byYmcD09PW8udmFsdWUsZz15JiYic3RyaW5nIj09dHlwZW9mIG8uc291cmNlP3tzb3VyY2U6by5zb3VyY2V9Ont9O2lmKGwocCkpe3ZhciBiPWgocCksbT15P28ubm9kZXM6Yj9bXTp7fTtpZihiKWZvcihpPW0ubGVuZ3RoLHU9ZChwKSxjPTA7Yzx1O2MrKylfKHAsYyxDKHAsIiIrYyxuLGM8aT9tW2NdOnQpKTtlbHNlIGZvcihhPUUocCksdT1kKGEpLGM9MDtjPHU7YysrKWY9YVtjXSxfKHAsZixDKHAsZixuLHYobSxmKT9tW2ZdOnQpKX1yZXR1cm4gcyhuLHIsZSxwLGcpfSxfPWZ1bmN0aW9uKHIsZSxuKXtpZihhKXt2YXIgbz1PKHIsZSk7aWYobyYmIW8uY29uZmlndXJhYmxlKXJldHVybn1uPT09dD9kZWxldGUgcltlXTpnKHIsZSxuKX0sTj1mdW5jdGlvbih0LHIpe3RoaXMuc291cmNlPXQsdGhpcy5pbmRleD1yfTtOLnByb3RvdHlwZT17Zm9yazpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IE4odGhpcy5zb3VyY2UsdCl9LHBhcnNlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zb3VyY2Uscj10aGlzLnNraXAoRCx0aGlzLmluZGV4KSxlPXRoaXMuZm9yayhyKTt0PVIodCxyKTtpZihrKFAsdCkpcmV0dXJuIGUubnVtYmVyKCk7c3dpdGNoKHQpe2Nhc2UieyI6cmV0dXJuIGUub2JqZWN0KCk7Y2FzZSJbIjpyZXR1cm4gZS5hcnJheSgpO2Nhc2UnIic6cmV0dXJuIGUuc3RyaW5nKCk7Y2FzZSJ0IjpyZXR1cm4gZS5rZXl3b3JkKCEwKTtjYXNlImYiOnJldHVybiBlLmtleXdvcmQoITEpO2Nhc2UibiI6cmV0dXJuIGUua2V5d29yZChudWxsKX10aHJvdyBTKCdVbmV4cGVjdGVkIGNoYXJhY3RlcjogIicrdCsnIiBhdDogJytyKX0sbm9kZTpmdW5jdGlvbih0LHIsZSxuLGkpe3JldHVybiBuZXcgbyhyLG4sdD9udWxsOkkodGhpcy5zb3VyY2UsZSxuKSxpKX0sb2JqZWN0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuc291cmNlLHI9dGhpcy5pbmRleCsxLGU9ITEsbj17fSxvPXt9O3I8dC5sZW5ndGg7KXtpZihyPXRoaXMudW50aWwoWyciJywifSJdLHIpLCJ9Ij09Uih0LHIpJiYhZSl7cisrO2JyZWFrfXZhciBpPXRoaXMuZm9yayhyKS5zdHJpbmcoKSxhPWkudmFsdWU7cj1pLmVuZDtpZihyPXRoaXMudW50aWwoWyI6Il0scikrMSxyPXRoaXMuc2tpcChELHIpLGk9dGhpcy5mb3JrKHIpLnBhcnNlKCksZyhvLGEsaSksZyhuLGEsaS52YWx1ZSkscj10aGlzLnVudGlsKFsiLCIsIn0iXSxpLmVuZCksIiwiPT0oaT1SKHQscikpKWU9ITAscisrO2Vsc2UgaWYoIn0iPT1pKXtyKys7YnJlYWt9fXJldHVybiB0aGlzLm5vZGUoMSxuLHRoaXMuaW5kZXgscixvKX0sYXJyYXk6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zb3VyY2Uscj10aGlzLmluZGV4KzEsZT0hMSxuPVtdLG89W107cjx0Lmxlbmd0aDspe2lmKHI9dGhpcy5za2lwKEQsciksIl0iPT1SKHQscikmJiFlKXtyKys7YnJlYWt9dmFyIGk9dGhpcy5mb3JrKHIpLnBhcnNlKCk7aWYoVChvLGkpLFQobixpLnZhbHVlKSxyPXRoaXMudW50aWwoWyIsIiwiXSJdLGkuZW5kKSwiLCI9PVIodCxyKSllPSEwLHIrKztlbHNlIGlmKCJdIj09Uih0LHIpKXtyKys7YnJlYWt9fXJldHVybiB0aGlzLm5vZGUoMSxuLHRoaXMuaW5kZXgscixvKX0sc3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pbmRleCxyPW0odGhpcy5zb3VyY2UsdGhpcy5pbmRleCsxKTtyZXR1cm4gdGhpcy5ub2RlKDAsci52YWx1ZSx0LHIuZW5kKX0sbnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zb3VyY2Uscj10aGlzLmluZGV4LGU9cjtpZigiLSI9PVIodCxlKSYmZSsrLCIwIj09Uih0LGUpKWUrKztlbHNle2lmKCFrKGosUih0LGUpKSl0aHJvdyBTKCJGYWlsZWQgdG8gcGFyc2UgbnVtYmVyIGF0OiAiK2UpO2U9dGhpcy5za2lwKE0sKytlKX1pZighKCIuIj09Uih0LGUpJiYoZT10aGlzLnNraXAoTSwrK2UpKSwiZSIhPVIodCxlKSYmIkUiIT1SKHQsZSl8fCgiKyIhPVIodCwrK2UpJiYiLSIhPVIodCxlKXx8ZSsrLGUhPShlPXRoaXMuc2tpcChNLGUpKSkpKXRocm93IFMoIkZhaWxlZCB0byBwYXJzZSBudW1iZXIncyBleHBvbmVudCB2YWx1ZSBhdDogIitlKTtyZXR1cm4gdGhpcy5ub2RlKDAsdyhJKHQscixlKSkscixlKX0sa2V5d29yZDpmdW5jdGlvbih0KXt2YXIgcj0iIit0LGU9dGhpcy5pbmRleCxuPWUrci5sZW5ndGg7aWYoSSh0aGlzLnNvdXJjZSxlLG4pIT1yKXRocm93IFMoIkZhaWxlZCB0byBwYXJzZSB2YWx1ZSBhdDogIitlKTtyZXR1cm4gdGhpcy5ub2RlKDAsdCxlLG4pfSxza2lwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuc291cmNlO3I8ZS5sZW5ndGgmJmsodCxSKGUscikpO3IrKyk7cmV0dXJuIHJ9LHVudGlsOmZ1bmN0aW9uKHQscil7cj10aGlzLnNraXAoRCxyKTtmb3IodmFyIGU9Uih0aGlzLnNvdXJjZSxyKSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXT09ZSlyZXR1cm4gcjt0aHJvdyBTKCdVbmV4cGVjdGVkIGNoYXJhY3RlcjogIicrZSsnIiBhdDogJytyKX19O2Y9YigoZnVuY3Rpb24oKXt2YXIgdCxyPSI5MDA3MTk5MjU0NzQwOTkzIjtyZXR1cm4gQShyLChmdW5jdGlvbihyLGUsbil7dD1uLnNvdXJjZX0pKSx0IT09cn0pKTt2YXIgRj14JiYhYigoZnVuY3Rpb24oKXtyZXR1cm4gMS9BKCItMCBcdCIpIT0tMS8wfSkpO2koe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6Zn0se3BhcnNlOmZ1bmN0aW9uKHQscil7cmV0dXJuIEYmJiFwKHIpP0EodCk6ZnVuY3Rpb24odCxyKXt0PXkodCk7dmFyIGUsbj0oZT1uZXcgTih0LDAsIiIpKS5wYXJzZSgpLG89bi52YWx1ZTtpZigoZT1lLnNraXAoRCxuLmVuZCkpPHQubGVuZ3RoKXRocm93IFMoJ1VuZXhwZWN0ZWQgZXh0cmEgY2hhcmFjdGVyOiAiJytSKHQsZSkrJyIgYWZ0ZXIgdGhlIHBhcnNlZCBkYXRhIGF0OiAnK2UpO3JldHVybiBwKHIpP0MoeyIiOm99LCIiLHIsbik6b30odCxyKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTMpLG89ZSgzOCksaT1TeW50YXhFcnJvcixhPXBhcnNlSW50LHU9U3RyaW5nLmZyb21DaGFyQ29kZSxjPW4oIiIuY2hhckF0KSxmPW4oIiIuc2xpY2UpLHM9bigvLi8uZXhlYykscD17J1xcIic6JyInLCJcXFxcIjoiXFwiLCJcXC8iOiIvIiwiXFxiIjoiXGIiLCJcXGYiOiJcZiIsIlxcbiI6IlxuIiwiXFxyIjoiXHIiLCJcXHQiOiJcdCJ9LGw9L15bXGRhLWZdezR9JC9pLGg9L15bXHUwMDAwLVx1MDAxRl0kLzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9ITAsbj0iIjtyPHQubGVuZ3RoOyl7dmFyIHY9Yyh0LHIpO2lmKCJcXCI9PXYpe3ZhciB5PWYodCxyLHIrMik7aWYobyhwLHkpKW4rPXBbeV0scis9MjtlbHNle2lmKCJcXHUiIT15KXRocm93IGkoJ1Vua25vd24gZXNjYXBlIHNlcXVlbmNlOiAiJyt5KyciJyk7aWYoeT1mKHQscis9MixyKzQpLCFzKGwseSkpdGhyb3cgaSgiQmFkIFVuaWNvZGUgZXNjYXBlIGF0OiAiK3IpO24rPXUoYSh5LDE2KSkscis9NH19ZWxzZXtpZignIic9PXYpe2U9ITEscisrO2JyZWFrfWlmKHMoaCx2KSl0aHJvdyBpKCJCYWQgY29udHJvbCBjaGFyYWN0ZXIgaW4gc3RyaW5nIGxpdGVyYWwgYXQ6ICIrcik7bis9dixyKyt9fWlmKGUpdGhyb3cgaSgiVW50ZXJtaW5hdGVkIHN0cmluZyBhdDogIityKTtyZXR1cm57dmFsdWU6bixlbmQ6cn19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMjAxKSxpPWUoMjQ0KSxhPWUoMjMpLHU9ZSg3KSxjPWUoMTMpLGY9ZSgyMCkscz1lKDI0NSkscD1lKDg4KSxsPWUoMTk4KSxoPWUoMjQ3KSx2PWUoMjQ5KSx5PWUoNDApLGQ9ZSg1MSkuc2V0LGc9U3RyaW5nLGI9U3ludGF4RXJyb3IsbT1hKCJKU09OIiwicGFyc2UiKSx4PWEoIkpTT04iLCJzdHJpbmdpZnkiKSx3PWEoIk9iamVjdCIsImNyZWF0ZSIpLFM9YSgiT2JqZWN0IiwiZnJlZXplIiksQT1jKCIiLmNoYXJBdCksRT1jKCIiLnNsaWNlKSxPPWMoLy4vLmV4ZWMpLFI9YyhbXS5wdXNoKSxJPXkoKSxrPUkubGVuZ3RoLFQ9IlVuYWNjZXB0YWJsZSBhcyByYXcgSlNPTiIsTT0vXltcdFxuXHIgXSQvO24oe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6IWl9LHtyYXdKU09OOmZ1bmN0aW9uKHQpe3ZhciByPXAodCk7aWYoIiI9PXJ8fE8oTSxBKHIsMCkpfHxPKE0sQShyLHIubGVuZ3RoLTEpKSl0aHJvdyBiKFQpO2lmKCJvYmplY3QiPT10eXBlb2YodD1tKHIpKSYmbnVsbCE9PXQpdGhyb3cgYihUKTtyZXR1cm4gdD13KG51bGwpLGQodCx7dHlwZToiUmF3SlNPTiJ9KSxsKHQsInJhd0pTT04iLHIpLG8/Uyh0KTp0fX0pLHgmJm4oe3RhcmdldDoiSlNPTiIsc3RhdDohMCxhcml0eTozLGZvcmNlZDohaX0se3N0cmluZ2lmeTpmdW5jdGlvbih0LHIsZSl7dmFyIG49dihyKSxvPVtdLGk9eCh0LChmdW5jdGlvbih0LHIpe3JldHVybiByPWYobik/dShuLHRoaXMsZyh0KSxyKTpyLHMocik/SSsoUihvLHIucmF3SlNPTiktMSk6cn0pLGUpO2lmKCJzdHJpbmciIT10eXBlb2YgaSlyZXR1cm4gaTtmb3IodmFyIGE9IiIsYz1pLmxlbmd0aCxwPTA7cDxjO3ArKyl7dmFyIGwseSxkPUEoaSxwKTsnIic9PWQ/KGw9aChpLCsrcCkuZW5kLTEseT1FKGkscCxsKSxhKz1FKHksMCxrKT09ST9vW0UoeSxrKV06JyInK3krJyInLHA9bCk6YSs9ZH1yZXR1cm4gYX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTMpLG89ZSg2OSksaT1lKDIwKSxhPWUoMTQpLHU9ZSg4OCksYz1uKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihpKHQpKXJldHVybiB0O2lmKG8odCkpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLG49MDtuPHI7bisrKXt2YXIgZj10W25dOyJzdHJpbmciPT10eXBlb2YgZj9jKGUsZik6Im51bWJlciIhPXR5cGVvZiBmJiYiTnVtYmVyIiE9YShmKSYmIlN0cmluZyIhPWEoZil8fGMoZSx1KGYpKX12YXIgcz1lLmxlbmd0aCxwPSEwO3JldHVybiBmdW5jdGlvbih0LHIpe2lmKHApcmV0dXJuIHA9ITEscjtpZihvKHRoaXMpKXJldHVybiByO2Zvcih2YXIgbj0wO248cztuKyspaWYoZVtuXT09PXQpcmV0dXJuIHJ9fX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgyNTEpLGk9ZSgxMzYpLnJlbW92ZTtuKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHQscj1vKHRoaXMpLGU9ITAsbj0wLGE9YXJndW1lbnRzLmxlbmd0aDtuPGE7bisrKXQ9aShyLGFyZ3VtZW50c1tuXSksZT1lJiZ0O3JldHVybiEhZX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMTM2KS5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQpLHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMjUxKSxpPShlPWUoMTM2KSkuZ2V0LGE9ZS5oYXMsdT1lLnNldDtuKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtlbXBsYWNlOmZ1bmN0aW9uKHQscil7dmFyIGUsbj1vKHRoaXMpO3JldHVybiBhKG4sdCk/KGU9aShuLHQpLCJ1cGRhdGUiaW4gciYmKGU9ci51cGRhdGUoZSx0LG4pLHUobix0LGUpKSxlKToocj1yLmluc2VydCh0LG4pLHUobix0LHIpLHIpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTExKSxhPW4oMjUxKSx1PW4oMTQzKTtvKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtldmVyeTpmdW5jdGlvbihyKXt2YXIgZT1hKHRoaXMpLG49aShyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCk7cmV0dXJuITEhPT11KGUsKGZ1bmN0aW9uKHQscil7aWYoIW4odCxyLGUpKXJldHVybiExfSksITApfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTExKSxhPW4oMjUxKSx1PW4oMTM2KSxjPW4oMTQzKSxmPXUuTWFwLHM9dS5zZXQ7byh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmlsdGVyOmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1pKHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxvPW5ldyBmO3JldHVybiBjKGUsKGZ1bmN0aW9uKHQscil7bih0LHIsZSkmJnMobyxyLHQpfSkpLG99fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigyNTEpLHU9bigxNDMpO28oe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2ZpbmQ6ZnVuY3Rpb24ocil7dmFyIGU9YSh0aGlzKSxuPWkociwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnQpO3I9dShlLChmdW5jdGlvbih0LHIpe2lmKG4odCxyLGUpKXJldHVybnt2YWx1ZTp0fX0pLCEwKTtyZXR1cm4gciYmci52YWx1ZX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDExMSksYT1uKDI1MSksdT1uKDE0Myk7byh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmluZEtleTpmdW5jdGlvbihyKXt2YXIgZT1hKHRoaXMpLG49aShyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCk7cj11KGUsKGZ1bmN0aW9uKHQscil7aWYobih0LHIsZSkpcmV0dXJue2tleTpyfX0pLCEwKTtyZXR1cm4gciYmci5rZXl9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6Ik1hcCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tOmUoMjU4KX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigxMTEpLGk9big3KSxhPW4oMzApLHU9bigyNTkpLGM9bigxNiksZj1uKDIwMikscz1bXS5wdXNoO3IuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZSxuLHAsbCxoPWFyZ3VtZW50cy5sZW5ndGgsdj0xPGg/YXJndW1lbnRzWzFdOnQ7cmV0dXJuIHUodGhpcyksKGU9diE9PXQpJiZhKHYpLGMocik/bmV3IHRoaXM6KG49W10sZT8ocD0wLGw9byh2LDI8aD9hcmd1bWVudHNbMl06dCksZihyLChmdW5jdGlvbih0KXtpKHMsbixsKHQscCsrKSl9KSkpOmYocixzLHt0aGF0Om59KSxuZXcgdGhpcyhuKSl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMTMpLG89ZSgzMSksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG4odCkpcmV0dXJuIHQ7dGhyb3cgaShvKHQpKyIgaXMgbm90IGEgY29uc3RydWN0b3IiKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxMyksaT1lKDMwKSxhPWUoMTUpLHU9ZSgyMDIpLGM9KGU9ZSgxMzYpKS5NYXAsZj1lLmhhcyxzPWUuZ2V0LHA9ZS5zZXQsbD1vKFtdLnB1c2gpO24oe3RhcmdldDoiTWFwIixzdGF0OiEwLGZvcmNlZDohMH0se2dyb3VwQnk6ZnVuY3Rpb24odCxyKXthKHQpLGkocik7dmFyIGU9bmV3IGMsbj0wO3JldHVybiB1KHQsKGZ1bmN0aW9uKHQpe3ZhciBvPXIodCxuKyspO2YoZSxvKT9sKHMoZSxvKSx0KTpwKGUsbyxbdF0pfSkpLGV9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgyNjIpLGk9ZSgyNTEpLGE9ZSgxNDMpO24oe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiEwPT09YShpKHRoaXMpLChmdW5jdGlvbihyKXtpZihvKHIsdCkpcmV0dXJuITB9KSwhMCl9fSl9LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPWZ1bmN0aW9uKHQscil7cmV0dXJuIHQ9PT1yfHx0IT10JiZyIT1yfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDcpLGk9ZSgyMDIpLGE9ZSgyMCksdT1lKDMwKSxjPWUoMTM2KS5NYXA7bih7dGFyZ2V0OiJNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7a2V5Qnk6ZnVuY3Rpb24odCxyKXt2YXIgZT1uZXcoYSh0aGlzKT90aGlzOmMpO3Uocik7dmFyIG49dShlLnNldCk7cmV0dXJuIGkodCwoZnVuY3Rpb24odCl7byhuLGUscih0KSx0KX0pKSxlfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMjUxKSxpPWUoMTQzKTtuKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHtrZXlPZjpmdW5jdGlvbih0KXt2YXIgcj1pKG8odGhpcyksKGZ1bmN0aW9uKHIsZSl7aWYocj09PXQpcmV0dXJue2tleTplfX0pLCEwKTtyZXR1cm4gciYmci5rZXl9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigyNTEpLHU9bigxMzYpLGM9bigxNDMpLGY9dS5NYXAscz11LnNldDtvKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBLZXlzOmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1pKHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxvPW5ldyBmO3JldHVybiBjKGUsKGZ1bmN0aW9uKHQscil7cyhvLG4odCxyLGUpLHQpfSkpLG99fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigyNTEpLHU9bigxMzYpLGM9bigxNDMpLGY9dS5NYXAscz11LnNldDtvKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXBWYWx1ZXM6ZnVuY3Rpb24ocil7dmFyIGU9YSh0aGlzKSxuPWkociwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnQpLG89bmV3IGY7cmV0dXJuIGMoZSwoZnVuY3Rpb24odCxyKXtzKG8scixuKHQscixlKSl9KSksb319KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDI1MSksaT1lKDIwMiksYT1lKDEzNikuc2V0O24oe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGFyaXR5OjEsZm9yY2VkOiEwfSx7bWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPW8odGhpcyksZT1hcmd1bWVudHMubGVuZ3RoLG49MDtuPGU7KWkoYXJndW1lbnRzW24rK10sKGZ1bmN0aW9uKHQsZSl7YShyLHQsZSl9KSx7QVNfRU5UUklFUzohMH0pO3JldHVybiByfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6ZSgyNjkpfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDI3MCk7dC5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzKG4oYXJndW1lbnRzKSl9fSxmdW5jdGlvbih0LHIsZSl7ZT1lKDEzKSx0LmV4cG9ydHM9ZShbXS5zbGljZSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzMCksYT1uKDI1MSksdT1uKDE0MyksYz1UeXBlRXJyb3I7byh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1hcmd1bWVudHMubGVuZ3RoPDIsbz1uP3Q6YXJndW1lbnRzWzFdO2lmKGkociksdShlLChmdW5jdGlvbih0LGkpe289bj8obj0hMSx0KTpyKG8sdCxpLGUpfSkpLG4pdGhyb3cgYygiUmVkdWNlIG9mIGVtcHR5IG1hcCB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtyZXR1cm4gb319KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDExMSksYT1uKDI1MSksdT1uKDE0Myk7byh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7c29tZTpmdW5jdGlvbihyKXt2YXIgZT1hKHRoaXMpLG49aShyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCk7cmV0dXJuITA9PT11KGUsKGZ1bmN0aW9uKHQscil7aWYobih0LHIsZSkpcmV0dXJuITB9KSwhMCl9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzMCksYT1uKDI1MSksdT0obj1uKDEzNiksVHlwZUVycm9yKSxjPW4uZ2V0LGY9bi5oYXMscz1uLnNldDtvKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1cGRhdGU6ZnVuY3Rpb24ocixlKXt2YXIgbj1hKHRoaXMpLG89YXJndW1lbnRzLmxlbmd0aDtpKGUpO3ZhciBwPWYobixyKTtpZighcCYmbzwzKXRocm93IHUoIlVwZGF0aW5nIGFic2VudCB2YWx1ZSIpO3JldHVybiBvPXA/YyhuLHIpOmkoMjxvP2FyZ3VtZW50c1syXTp0KShyLG4pLHMobixyLGUobyxyLG4pKSxufX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsbmFtZToidXBzZXJ0Iixmb3JjZWQ6ITB9LHt1cGRhdGVPckluc2VydDplKDI3NSl9KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNyksaT1uKDMwKSxhPW4oMjApLHU9big0NiksYz1UeXBlRXJyb3I7ci5leHBvcnRzPWZ1bmN0aW9uKHIsZSl7dmFyIG4sZj11KHRoaXMpLHM9aShmLmdldCkscD1pKGYuaGFzKSxsPWkoZi5zZXQpLGg9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp0O2lmKCFhKGUpJiYhYShoKSl0aHJvdyBjKCJBdCBsZWFzdCBvbmUgY2FsbGJhY2sgcmVxdWlyZWQiKTtyZXR1cm4gbyhwLGYscik/KG49byhzLGYsciksYShlKSYmKG49ZShuKSxvKGwsZixyLG4pKSk6YShoKSYmKG49aCgpLG8obCxmLHIsbikpLG59fSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7dXBzZXJ0OmUoMjc1KX0pfSxmdW5jdGlvbih0LHIsZSl7ZT1lKDIpO3ZhciBuPU1hdGgubWluLG89TWF0aC5tYXg7ZSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se2NsYW1wOmZ1bmN0aW9uKHQscixlKXtyZXR1cm4gbihlLG8ocix0KSl9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsbm9uQ29uZmlndXJhYmxlOiEwLG5vbldyaXRhYmxlOiEwfSx7REVHX1BFUl9SQUQ6TWF0aC5QSS8xODB9KX0sZnVuY3Rpb24odCxyLGUpe2U9ZSgyKTt2YXIgbj0xODAvTWF0aC5QSTtlKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZGVncmVlczpmdW5jdGlvbih0KXtyZXR1cm4gdCpufX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMjgxKSxpPWUoMjgyKTtuKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnNjYWxlOmZ1bmN0aW9uKHQscixlLG4sYSl7cmV0dXJuIGkobyh0LHIsZSxuLGEpKX19KX0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9TWF0aC5zY2FsZXx8ZnVuY3Rpb24odCxyLGUsbixvKXtyZXR1cm4gcj0rcixlPStlLG49K24sbz0rbywodD0rdCkhPXR8fHIhPXJ8fGUhPWV8fG4hPW58fG8hPW8/TmFOOnQ9PTEvMHx8dD09LTEvMD90Oih0LXIpKihvLW4pLyhlLXIpK259fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyODMpLG89TWF0aC5hYnMsaT0oZT1NYXRoLnBvdykoMiwtNTIpLGE9ZSgyLC0yMyksdT1lKDIsMTI3KSooMi1hKSxjPWUoMiwtMTI2KTt0LmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKHQpe3ZhciByPSt0LGU9byhyKTt0PW4ocik7cmV0dXJuIGU8Yz90KihlL2MvYSsxL2ktMS9pKSpjKmE6dTwoZT0ocj0oMSthL2kpKmUpLShyLWUpKXx8ZSE9ZT90KigxLzApOnQqZX19LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIDA9PSh0PSt0KXx8dCE9dD90OnQ8MD8tMToxfX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpYWRkaDpmdW5jdGlvbih0LHIsZSxuKXtyZXR1cm4ocj4+PjApKyhuPj4+MCkrKCgodD4+Pj0wKSYoZT4+Pj0wKXwodHxlKSZ+KHQrZT4+PjApKT4+PjMxKXwwfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se2ltdWxoOmZ1bmN0aW9uKHQscil7dmFyIGUsbjt0PTY1NTM1JihlPSt0KSxyPTY1NTM1JihuPStyKTtyZXR1cm4oZT1lPj4xNikqKG49bj4+MTYpKygocj0oZSpyPj4+MCkrKHQqcj4+PjE2KSk+PjE2KSsoKHQqbj4+PjApKyg2NTUzNSZyKT4+MTYpfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se2lzdWJoOmZ1bmN0aW9uKHQscixlLG4pe3JldHVybihyPj4+MCktKG4+Pj4wKS0oKH4odD4+Pj0wKSYoZT4+Pj0wKXx+KHReZSkmdC1lPj4+MCk+Pj4zMSl8MH19KX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiTWF0aCIsc3RhdDohMCxub25Db25maWd1cmFibGU6ITAsbm9uV3JpdGFibGU6ITB9LHtSQURfUEVSX0RFRzoxODAvTWF0aC5QSX0pfSxmdW5jdGlvbih0LHIsZSl7ZT1lKDIpO3ZhciBuPU1hdGguUEkvMTgwO2Uoe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtyYWRpYW5zOmZ1bmN0aW9uKHQpe3JldHVybiB0Km59fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7c2NhbGU6ZSgyODEpfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg0NiksaT1lKDI5MSksYT1lKDE4NiksdT1lKDExOCksYz1lKDUxKSxmPShlPSJTZWVkZWQgUmFuZG9tIikrIiBHZW5lcmF0b3IiLHM9Yy5zZXQscD1jLmdldHRlckZvcihmKSxsPVR5cGVFcnJvcixoPWEoKGZ1bmN0aW9uKHQpe3ModGhpcyx7dHlwZTpmLHNlZWQ6dCUyMTQ3NDgzNjQ3fSl9KSxlLChmdW5jdGlvbigpe3ZhciB0PSh0PXAodGhpcykpLnNlZWQ9KDExMDM1MTUyNDUqdC5zZWVkKzEyMzQ1KSUyMTQ3NDgzNjQ3O3JldHVybiB1KCgxMDczNzQxODIzJnQpLzEwNzM3NDE4MjMsITEpfSkpO24oe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtzZWVkZWRQUk5HOmZ1bmN0aW9uKHQpe2lmKHQ9byh0KS5zZWVkLCFpKHQpKXRocm93IGwoJ01hdGguc2VlZGVkUFJORygpIGFyZ3VtZW50IHNob3VsZCBoYXZlIGEgInNlZWQiIGZpZWxkIHdpdGggYSBmaW5pdGUgdmFsdWUuJyk7cmV0dXJuIG5ldyBoKHQpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKS5pc0Zpbml0ZTt0LmV4cG9ydHM9TnVtYmVyLmlzRmluaXRlfHxmdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJm4odCl9fSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohMH0se3NpZ25iaXQ6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpPT10JiYwPT10PzEvdD09LTEvMDp0PDB9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7dW11bGg6ZnVuY3Rpb24odCxyKXt2YXIgZSxuO3Q9NjU1MzUmKGU9K3QpLHI9NjU1MzUmKG49K3IpO3JldHVybihlPWU+Pj4xNikqKG49bj4+PjE2KSsoKHI9KGUqcj4+PjApKyh0KnI+Pj4xNikpPj4+MTYpKygodCpuPj4+MCkrKDY1NTM1JnIpPj4+MTYpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTMpLGE9big2MSksdT1uKDI5NSksYz0iSW52YWxpZCBudW1iZXIgcmVwcmVzZW50YXRpb24iLGY9UmFuZ2VFcnJvcixzPVN5bnRheEVycm9yLHA9VHlwZUVycm9yLGw9L15bXGRhLXpdKyQvLGg9aSgiIi5jaGFyQXQpLHY9aShsLmV4ZWMpLHk9aSgxLi50b1N0cmluZyksZD1pKCIiLnNsaWNlKTtvKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMCxmb3JjZWQ6ITB9LHtmcm9tU3RyaW5nOmZ1bmN0aW9uKHIsZSl7dmFyIG4sbz0xO2lmKCJzdHJpbmciIT10eXBlb2Ygcil0aHJvdyBwKGMpO2lmKCFyLmxlbmd0aCl0aHJvdyBzKGMpO2lmKCItIj09aChyLDApJiYobz0tMSwhKHI9ZChyLDEpKS5sZW5ndGgpKXRocm93IHMoYyk7aWYoKGU9ZT09PXQ/MTA6YShlKSk8Mnx8MzY8ZSl0aHJvdyBmKCJJbnZhbGlkIHJhZGl4Iik7aWYoIXYobCxyKXx8eShuPXUocixlKSxlKSE9PXIpdGhyb3cgcyhjKTtyZXR1cm4gbypufX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzKSxvPWUoNiksaT1lKDEzKSxhPWUoODgpLHU9ZSgyOTYpLnRyaW0sYz0oZT1lKDI5Nyksbi5wYXJzZUludCksZj0obj1uLlN5bWJvbCkmJm4uaXRlcmF0b3Iscz0vXlsrLV0/MHgvaSxwPWkocy5leGVjKTtvPTghPT1jKGUrIjA4Iil8fDIyIT09YyhlKyIweDE2Iil8fGYmJiFvKChmdW5jdGlvbigpe2MoT2JqZWN0KGYpKX0pKTt0LmV4cG9ydHM9bz9mdW5jdGlvbih0LHIpe3JldHVybiB0PXUoYSh0KSksYyh0LHI+Pj4wfHwocChzLHQpPzE2OjEwKSl9OmN9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKSxvPWUoMTUpLGk9ZSg4OCksYT0oZT1lKDI5NyksbigiIi5yZXBsYWNlKSksdT1SZWdFeHAoIl5bIitlKyJdKyIpLGM9UmVnRXhwKCIoXnxbXiIrZSsiXSlbIitlKyJdKyQiKTtlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gcj1pKG8ocikpLDEmdCYmKHI9YShyLHUsIiIpKSwyJnQ/YShyLGMsIiQxIik6cn19O3QuZXhwb3J0cz17c3RhcnQ6ZSgxKSxlbmQ6ZSgyKSx0cmltOmUoMyl9fSxmdW5jdGlvbih0LHIpe3QuZXhwb3J0cz0iXHRcblx2XGZcciDCoOGagOKAgOKAgeKAguKAg+KAhOKAheKAhuKAh+KAiOKAieKAiuKAr+KBn+OAgFx1MjAyOFx1MjAyOVx1ZmVmZiJ9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgxODUpO24oe3RhcmdldDoiTnVtYmVyIixzdGF0OiEwLGZvcmNlZDohMH0se3JhbmdlOmZ1bmN0aW9uKHQscixlKXtyZXR1cm4gbmV3IG8odCxyLGUsIm51bWJlciIsMCwxKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDMwMCk7bih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7aXRlcmF0ZUVudHJpZXM6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvKHQsImVudHJpZXMiKX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNTEpLGk9bigxODYpLGE9bigxMTgpLHU9bigzOCksYz1uKDc2KSxmPW4oMzkpLHM9Ik9iamVjdCBJdGVyYXRvciIscD1vLnNldCxsPW8uZ2V0dGVyRm9yKHMpO3IuZXhwb3J0cz1pKChmdW5jdGlvbih0LHIpe3Q9Zih0KSxwKHRoaXMse3R5cGU6cyxtb2RlOnIsb2JqZWN0OnQsa2V5czpjKHQpLGluZGV4OjB9KX0pLCJPYmplY3QiLChmdW5jdGlvbigpe2Zvcih2YXIgcj1sKHRoaXMpLGU9ci5rZXlzOzspe2lmKG51bGw9PT1lfHxyLmluZGV4Pj1lLmxlbmd0aClyZXR1cm4gci5vYmplY3Q9ci5rZXlzPW51bGwsYSh0LCEwKTt2YXIgbj1lW3IuaW5kZXgrK10sbz1yLm9iamVjdDtpZih1KG8sbikpe3N3aXRjaChyLm1vZGUpe2Nhc2Uia2V5cyI6cmV0dXJuIGEobiwhMSk7Y2FzZSJ2YWx1ZXMiOnJldHVybiBhKG9bbl0sITEpfXJldHVybiBhKFtuLG9bbl1dLCExKX19fSkpfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzAwKTtuKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpdGVyYXRlS2V5czpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8odCwia2V5cyIpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzAwKTtuKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtpdGVyYXRlVmFsdWVzOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbyh0LCJ2YWx1ZXMiKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDIzKSxpPWUoMTMpLGE9ZSgzMCksdT1lKDE1KSxjPWUoMTcpLGY9ZSgyMDIpLHM9bygiT2JqZWN0IiwiY3JlYXRlIikscD1pKFtdLnB1c2gpO24oe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2dyb3VwQnk6ZnVuY3Rpb24odCxyKXt1KHQpLGEocik7dmFyIGU9cyhudWxsKSxuPTA7cmV0dXJuIGYodCwoZnVuY3Rpb24odCl7dmFyIG89YyhyKHQsbisrKSk7byBpbiBlP3AoZVtvXSx0KTplW29dPVt0XX0pKSxlfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgzMDUpLGUoMzA4KSxlKDMwOSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHIpe3RoaXMub2JzZXJ2ZXI9cyhyKSx0aGlzLmNsZWFudXA9dCx0aGlzLnN1YnNjcmlwdGlvbk9ic2VydmVyPXR9dmFyIGk9bigyKSxhPW4oNyksdT1uKDUpLGM9bigyMDgpLGY9bigzMCkscz1uKDQ2KSxwPW4oMTU3KSxsPW4oMjApLGg9bigxNiksdj1uKDE5KSx5PW4oMjkpLGQ9big0NyksZz1uKDExNiksYj1uKDg1KSxtPW4oMzA2KSx4PW4oMzMpLHc9big1MSksUz1uKDMwNyksQT14KCJvYnNlcnZhYmxlIiksRT0iT2JzZXJ2YWJsZSIsTz0obj0iU3Vic2NyaXB0aW9uIiwiU3Vic2NyaXB0aW9uT2JzZXJ2ZXIiKSxSPSh4PXcuZ2V0dGVyRm9yLHcuc2V0KSxJPXgoRSksaz14KG4pLFQ9eChPKTtmdW5jdGlvbiBNKHQscil7dmFyIGUsbj1SKHRoaXMsbmV3IG8odCkpO3V8fCh0aGlzLmNsb3NlZD0hMSk7dHJ5eyhlPXkodCwic3RhcnQiKSkmJmEoZSx0LHRoaXMpfWNhdGNoKHIpe20ocil9aWYoIW4uaXNDbG9zZWQoKSl7dD1uLnN1YnNjcmlwdGlvbk9ic2VydmVyPW5ldyBqKG4pO3RyeXt2YXIgaT1yKHQpLGM9aTtoKGkpfHwobi5jbGVhbnVwPWwoaS51bnN1YnNjcmliZSk/ZnVuY3Rpb24oKXtjLnVuc3Vic2NyaWJlKCl9OmYoaSkpfWNhdGNoKHIpe3JldHVybiB2b2lkIHQuZXJyb3Iocil9bi5pc0Nsb3NlZCgpJiZuLmNsZWFuKCl9fW8ucHJvdG90eXBlPXt0eXBlOm4sY2xlYW46ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmNsZWFudXA7aWYocil7dGhpcy5jbGVhbnVwPXQ7dHJ5e3IoKX1jYXRjaChyKXttKHIpfX19LGNsb3NlOmZ1bmN0aW9uKCl7dmFyIHIsZTt1fHwocj10aGlzLmZhY2FkZSxlPXRoaXMuc3Vic2NyaXB0aW9uT2JzZXJ2ZXIsci5jbG9zZWQ9ITAsZSYmKGUuY2xvc2VkPSEwKSksdGhpcy5vYnNlcnZlcj10fSxpc0Nsb3NlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9ic2VydmVyPT09dH19LE0ucHJvdG90eXBlPWcoe30se3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7dmFyIHQ9ayh0aGlzKTt0LmlzQ2xvc2VkKCl8fCh0LmNsb3NlKCksdC5jbGVhbigpKX19KSx1JiZiKE0ucHJvdG90eXBlLCJjbG9zZWQiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcykuaXNDbG9zZWQoKX19KTt2YXIgaj1mdW5jdGlvbih0KXtSKHRoaXMse3R5cGU6TyxzdWJzY3JpcHRpb25TdGF0ZTp0fSksdXx8KHRoaXMuY2xvc2VkPSExKX07ai5wcm90b3R5cGU9Zyh7fSx7bmV4dDpmdW5jdGlvbih0KXt2YXIgcj1UKHRoaXMpLnN1YnNjcmlwdGlvblN0YXRlO2lmKCFyLmlzQ2xvc2VkKCkpe3I9ci5vYnNlcnZlcjt0cnl7dmFyIGU9eShyLCJuZXh0Iik7ZSYmYShlLHIsdCl9Y2F0Y2godCl7bSh0KX19fSxlcnJvcjpmdW5jdGlvbih0KXt2YXIgcj1UKHRoaXMpLnN1YnNjcmlwdGlvblN0YXRlO2lmKCFyLmlzQ2xvc2VkKCkpe3ZhciBlPXIub2JzZXJ2ZXI7ci5jbG9zZSgpO3RyeXt2YXIgbj15KGUsImVycm9yIik7bj9hKG4sZSx0KTptKHQpfWNhdGNoKHQpe20odCl9ci5jbGVhbigpfX0sY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgdD1UKHRoaXMpLnN1YnNjcmlwdGlvblN0YXRlO2lmKCF0LmlzQ2xvc2VkKCkpe3ZhciByPXQub2JzZXJ2ZXI7dC5jbG9zZSgpO3RyeXt2YXIgZT15KHIsImNvbXBsZXRlIik7ZSYmYShlLHIpfWNhdGNoKHQpe20odCl9dC5jbGVhbigpfX19KSx1JiZiKGoucHJvdG90eXBlLCJjbG9zZWQiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFQodGhpcykuc3Vic2NyaXB0aW9uU3RhdGUuaXNDbG9zZWQoKX19KTtiPWZ1bmN0aW9uKHQpe3AodGhpcyxQKSxSKHRoaXMse3R5cGU6RSxzdWJzY3JpYmVyOmYodCl9KX07dmFyIFA9Yi5wcm90b3R5cGU7ZyhQLHtzdWJzY3JpYmU6ZnVuY3Rpb24ocil7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gbmV3IE0obChyKT97bmV4dDpyLGVycm9yOjE8ZT9hcmd1bWVudHNbMV06dCxjb21wbGV0ZToyPGU/YXJndW1lbnRzWzJdOnR9OnYocik/cjp7fSxJKHRoaXMpLnN1YnNjcmliZXIpfX0pLGQoUCxBLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGkoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6U30se09ic2VydmFibGU6Yn0pLGMoRSl9LGZ1bmN0aW9uKHQscil7dC5leHBvcnRzPWZ1bmN0aW9uKHQscil7dHJ5ezE9PWFyZ3VtZW50cy5sZW5ndGg/Y29uc29sZS5lcnJvcih0KTpjb25zb2xlLmVycm9yKHQscil9Y2F0Y2godCl7fX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMpLG89ZSgyMCksaT1lKDMzKSgib2JzZXJ2YWJsZSIpO249KGU9bi5PYnNlcnZhYmxlKSYmZS5wcm90b3R5cGU7dC5leHBvcnRzPSEobyhlKSYmbyhlLmZyb20pJiZvKGUub2YpJiZvKG4uc3Vic2NyaWJlKSYmbyhuW2ldKSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgyMyksaT1lKDcpLGE9ZSg0NiksdT1lKDExMyksYz1lKDExOSksZj1lKDI5KSxzPWUoMjAyKSxwPWUoMzMpLGw9KGU9ZSgzMDcpLHAoIm9ic2VydmFibGUiKSk7bih7dGFyZ2V0OiJPYnNlcnZhYmxlIixzdGF0OiEwLGZvcmNlZDplfSx7ZnJvbTpmdW5jdGlvbih0KXt2YXIgcj11KHRoaXMpP3RoaXM6bygiT2JzZXJ2YWJsZSIpLGU9ZihhKHQpLGwpO2lmKGUpe3ZhciBuPWEoaShlLHQpKTtyZXR1cm4gbi5jb25zdHJ1Y3Rvcj09PXI/bjpuZXcgcigoZnVuY3Rpb24odCl7cmV0dXJuIG4uc3Vic2NyaWJlKHQpfSkpfXZhciBwPWModCk7cmV0dXJuIG5ldyByKChmdW5jdGlvbih0KXtzKHAsKGZ1bmN0aW9uKHIsZSl7aWYodC5uZXh0KHIpLHQuY2xvc2VkKXJldHVybiBlKCl9KSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KSx0LmNvbXBsZXRlKCl9KSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgyMyksaT1lKDExMyksYT0oZT1lKDMwNyksbygiQXJyYXkiKSk7bih7dGFyZ2V0OiJPYnNlcnZhYmxlIixzdGF0OiEwLGZvcmNlZDplfSx7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9aSh0aGlzKT90aGlzOm8oIk9ic2VydmFibGUiKSxyPWFyZ3VtZW50cy5sZW5ndGgsZT1hKHIpLG49MDtuPHI7KWVbbl09YXJndW1lbnRzW24rK107cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0KXtmb3IodmFyIG49MDtuPHI7bisrKWlmKHQubmV4dChlW25dKSx0LmNsb3NlZClyZXR1cm47dC5jb21wbGV0ZSgpfSkpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzExKSxpPWUoMTY0KTtuKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7dHJ5OmZ1bmN0aW9uKHQpe3ZhciByPW8uZih0aGlzKTtyZXR1cm4oKHQ9aSh0KSkuZXJyb3I/ci5yZWplY3Q6ci5yZXNvbHZlKSh0LnZhbHVlKSxyLnByb21pc2V9fSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHIpe3ZhciBlLG47dGhpcy5wcm9taXNlPW5ldyByKChmdW5jdGlvbihyLG8pe2lmKGUhPT10fHxuIT09dCl0aHJvdyBhKCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvciIpO2U9cixuPW99KSksdGhpcy5yZXNvbHZlPWkoZSksdGhpcy5yZWplY3Q9aShuKX12YXIgaT1uKDMwKSxhPVR5cGVFcnJvcjtyLmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8odCl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzExKTtuKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7d2l0aFJlc29sdmVyczpmdW5jdGlvbigpe3ZhciB0PW8uZih0aGlzKTtyZXR1cm57cHJvbWlzZTp0LnByb21pc2UscmVzb2x2ZTp0LnJlc29sdmUscmVqZWN0OnQucmVqZWN0fX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDMxNCksYT1uKDQ2KSx1PWkudG9LZXksYz1pLnNldDtvKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHtkZWZpbmVNZXRhZGF0YTpmdW5jdGlvbihyLGUsbil7dmFyIG89YXJndW1lbnRzLmxlbmd0aDw0P3Q6dShhcmd1bWVudHNbM10pO2MocixlLGEobiksbyl9fSl9LGZ1bmN0aW9uKHIsZSxuKXtmdW5jdGlvbiBvKHQscixlKXt2YXIgbj1mLmdldCh0KTtpZighbil7aWYoIWUpcmV0dXJuO2Yuc2V0KHQsbj1uZXcgdSl9aWYoISh0PW4uZ2V0KHIpKSl7aWYoIWUpcmV0dXJuO24uc2V0KHIsdD1uZXcgdSl9cmV0dXJuIHR9bigxOTIpLG4oMjA5KTt2YXIgaT1uKDIzKSxhPW4oMTMpLHU9KG49bigzNCksaSgiTWFwIikpLGM9KGk9aSgiV2Vha01hcCIpLGEoW10ucHVzaCkpLGY9KG49bigibWV0YWRhdGEiKSkuc3RvcmV8fChuLnN0b3JlPW5ldyBpKTtyLmV4cG9ydHM9e3N0b3JlOmYsZ2V0TWFwOm8saGFzOmZ1bmN0aW9uKHIsZSxuKXtyZXR1cm4obj1vKGUsbiwhMSkpIT09dCYmbi5oYXMocil9LGdldDpmdW5jdGlvbihyLGUsbil7cmV0dXJuKG49byhlLG4sITEpKT09PXQ/dDpuLmdldChyKX0sc2V0OmZ1bmN0aW9uKHQscixlLG4pe28oZSxuLCEwKS5zZXQodCxyKX0sa2V5czpmdW5jdGlvbih0LHIpe3I9byh0LHIsITEpO3ZhciBlPVtdO3JldHVybiByJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQscil7YyhlLHIpfSkpLGV9LHRvS2V5OmZ1bmN0aW9uKHIpe3JldHVybiByPT09dHx8InN5bWJvbCI9PXR5cGVvZiByP3I6U3RyaW5nKHIpfX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzMTQpLGE9big0NiksdT1pLnRvS2V5LGM9aS5nZXRNYXAsZj1pLnN0b3JlO28oe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2RlbGV0ZU1ldGFkYXRhOmZ1bmN0aW9uKHIsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aDwzP3Q6dShhcmd1bWVudHNbMl0pLG89YyhhKGUpLG4sITEpO3JldHVybiEobz09PXR8fCFvLmRlbGV0ZShyKSkmJighIW8uc2l6ZXx8KChvPWYuZ2V0KGUpKS5kZWxldGUobiksISFvLnNpemV8fGYuZGVsZXRlKGUpKSl9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzMTQpLGE9big0NiksdT1uKDk1KSxjPWkuaGFzLGY9aS5nZXQscz1pLnRvS2V5LHA9ZnVuY3Rpb24ocixlLG4pe3JldHVybiBjKHIsZSxuKT9mKHIsZSxuKTpudWxsIT09KGU9dShlKSk/cChyLGUsbik6dH07byh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0TWV0YWRhdGE6ZnVuY3Rpb24ocixlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDM/dDpzKGFyZ3VtZW50c1syXSk7cmV0dXJuIHAocixhKGUpLG4pfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTMpLGE9bigzMTQpLHU9big0NiksYz1uKDk1KSxmPWkobigxNDIpKSxzPWkoW10uY29uY2F0KSxwPWEua2V5cyxsPWEudG9LZXksaD1mdW5jdGlvbih0LHIpe3ZhciBlPXAodCxyKTtyZXR1cm4gbnVsbD09PSh0PWModCkpP2U6KHI9aCh0LHIpKS5sZW5ndGg/ZS5sZW5ndGg/ZihzKGUscikpOnI6ZX07byh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0TWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHIpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj90OmwoYXJndW1lbnRzWzFdKTtyZXR1cm4gaCh1KHIpLGUpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMzE0KSxhPW4oNDYpLHU9aS5nZXQsYz1pLnRvS2V5O28oe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKHIsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aDwzP3Q6Yyhhcmd1bWVudHNbMl0pO3JldHVybiB1KHIsYShlKSxuKX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDMxNCksYT1uKDQ2KSx1PWkua2V5cyxjPWkudG9LZXk7byh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHIpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj90OmMoYXJndW1lbnRzWzFdKTtyZXR1cm4gdShhKHIpLGUpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMzE0KSxhPW4oNDYpLHU9big5NSksYz1pLmhhcyxmPWkudG9LZXkscz1mdW5jdGlvbih0LHIsZSl7cmV0dXJuISFjKHQscixlKXx8bnVsbCE9PShyPXUocikpJiZzKHQscixlKX07byh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7aGFzTWV0YWRhdGE6ZnVuY3Rpb24ocixlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDM/dDpmKGFyZ3VtZW50c1syXSk7cmV0dXJuIHMocixhKGUpLG4pfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMzE0KSxhPW4oNDYpLHU9aS5oYXMsYz1pLnRvS2V5O28oe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2hhc093bk1ldGFkYXRhOmZ1bmN0aW9uKHIsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aDwzP3Q6Yyhhcmd1bWVudHNbMl0pO3JldHVybiB1KHIsYShlKSxuKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDMxNCksaT1lKDQ2KSxhPW8udG9LZXksdT1vLnNldDtuKHt0YXJnZXQ6IlJlZmxlY3QiLHN0YXQ6ITB9LHttZXRhZGF0YTpmdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihlLG4pe3UodCxyLGkoZSksYShuKSl9fX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzI0KSxpPWUoMzI1KS5hZGQ7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7YWRkQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW8odGhpcykscj0wLGU9YXJndW1lbnRzLmxlbmd0aDtyPGU7cisrKWkodCxhcmd1bWVudHNbcl0pO3JldHVybiB0fX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzMjUpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCksdH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKTtlPVNldC5wcm90b3R5cGU7dC5leHBvcnRzPXtTZXQ6U2V0LGFkZDpuKGUuYWRkKSxoYXM6bihlLmhhcykscmVtb3ZlOm4oZS5kZWxldGUpLHByb3RvOmV9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzI0KSxpPWUoMzI1KS5yZW1vdmU7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LHI9byh0aGlzKSxlPSEwLG49MCxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKyl0PWkocixhcmd1bWVudHNbbl0pLGU9ZSYmdDtyZXR1cm4hIWV9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgzMjgpO24oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohZSgzMzMpKCJkaWZmZXJlbmNlIil9LHtkaWZmZXJlbmNlOm99KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMzI0KSxvPWUoMzI1KSxpPWUoMzI5KSxhPWUoMzMxKSx1PWUoMzMyKSxjPWUoMzMwKSxmPWUoMTQ0KSxzPW8uaGFzLHA9by5yZW1vdmU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciByPW4odGhpcyksZT11KHQpLG89aShyKTtyZXR1cm4gYShyKTw9ZS5zaXplP2MociwoZnVuY3Rpb24odCl7ZS5pbmNsdWRlcyh0KSYmcChvLHQpfSkpOmYoZS5nZXRJdGVyYXRvcigpLChmdW5jdGlvbih0KXtzKHIsdCkmJnAobyx0KX0pKSxvfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMzI1KSxvPWUoMzMwKSxpPW4uU2V0LGE9bi5hZGQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciByPW5ldyBpO3JldHVybiBvKHQsKGZ1bmN0aW9uKHQpe2Eocix0KX0pKSxyfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuLG89ZSgxMyksaT1lKDE0NCksYT0oZT0obj1lKDMyNSkpLlNldCxvKChuPW4ucHJvdG8pLmZvckVhY2gpKSx1PW8obi5rZXlzKSxjPXUobmV3IGUpLm5leHQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gZT9pKHUodCkscixjKTphKHQscil9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSg5OCk7ZT1lKDMyNSk7dC5leHBvcnRzPW4oZS5wcm90bywic2l6ZSIsImdldCIpfHxmdW5jdGlvbih0KXtyZXR1cm4gdC5zaXplfX0sZnVuY3Rpb24odCxyLGUpe2Z1bmN0aW9uIG4odCxyLGUsbil7dGhpcy5zZXQ9dCx0aGlzLnNpemU9cix0aGlzLmhhcz1lLHRoaXMua2V5cz1ufXZhciBvPWUoMzApLGk9ZSg0NiksYT1lKDcpLHU9ZSg2MSksYz1UeXBlRXJyb3IsZj1NYXRoLm1heDtuLnByb3RvdHlwZT17Z2V0SXRlcmF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gaShhKHRoaXMua2V5cyx0aGlzLnNldCkpfSxpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4gYSh0aGlzLmhhcyx0aGlzLnNldCx0KX19LHQuZXhwb3J0cz1mdW5jdGlvbih0KXtpKHQpO3ZhciByPSt0LnNpemU7aWYociE9cil0aHJvdyBjKCJJbnZhbGlkIHNpemUiKTtyZXR1cm4gbmV3IG4odCxmKHUociksMCksbyh0Lmhhcyksbyh0LmtleXMpKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIzKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybihuZXcobigiU2V0IikpKVt0XSh7c2l6ZTowLGhhczpmdW5jdGlvbigpe3JldHVybiExfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX19KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDMyOCk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGlmZmVyZW5jZTpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIzKSxvPWUoMjApLGk9ZSgzMzYpLGE9ZSgxOSksdT1uKCJTZXQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEocj10KSYmIm51bWJlciI9PXR5cGVvZiByLnNpemUmJm8oci5oYXMpJiZvKHIua2V5cyl8fCFpKHQpP3Q6bmV3IHUodCk7dmFyIHJ9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big4OSksaT1uKDM4KSxhPW4oMTYpLHU9bigzMyksYz1uKDEyMSksZj11KCJpdGVyYXRvciIpLHM9T2JqZWN0O3IuZXhwb3J0cz1mdW5jdGlvbihyKXtyZXR1cm4hYShyKSYmKChyPXMocikpW2ZdIT09dHx8IkBAaXRlcmF0b3IiaW4gcnx8aShjLG8ocikpKX19LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigzMjQpLHU9bigzMzApO28oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2V2ZXJ5OmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1pKHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KTtyZXR1cm4hMSE9PXUoZSwoZnVuY3Rpb24odCl7aWYoIW4odCx0LGUpKXJldHVybiExfSksITApfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyKSxpPW4oMTExKSxhPW4oMzI0KSx1PW4oMzI1KSxjPW4oMzMwKSxmPXUuU2V0LHM9dS5hZGQ7byh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmlsdGVyOmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1pKHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxvPW5ldyBmO3JldHVybiBjKGUsKGZ1bmN0aW9uKHQpe24odCx0LGUpJiZzKG8sdCl9KSksb319KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDExMSksYT1uKDMyNCksdT1uKDMzMCk7byh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZmluZDpmdW5jdGlvbihyKXt2YXIgZT1hKHRoaXMpLG49aShyLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dCk7cmV0dXJuKHI9dShlLChmdW5jdGlvbih0KXtpZihuKHQsdCxlKSlyZXR1cm57dmFsdWU6dH19KSwhMCkpJiZyLnZhbHVlfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJTZXQiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTplKDI1OCl9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDYpLGk9ZSgzNDIpO24oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohZSgzMzMpKCJpbnRlcnNlY3Rpb24iKXx8bygoZnVuY3Rpb24oKXtyZXR1cm4iMywyIiE9QXJyYXkuZnJvbShuZXcgU2V0KFsxLDIsM10pLmludGVyc2VjdGlvbihuZXcgU2V0KFszLDJdKSkpfSkpfSx7aW50ZXJzZWN0aW9uOml9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMzI0KSxvPWUoMzI1KSxpPWUoMzMxKSxhPWUoMzMyKSx1PWUoMzMwKSxjPWUoMTQ0KSxmPW8uU2V0LHM9by5hZGQscD1vLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIHI9bih0aGlzKSxlPWEodCksbz1uZXcgZjtyZXR1cm4gaShyKT5lLnNpemU/YyhlLmdldEl0ZXJhdG9yKCksKGZ1bmN0aW9uKHQpe3Aocix0KSYmcyhvLHQpfSkpOnUociwoZnVuY3Rpb24odCl7ZS5pbmNsdWRlcyh0KSYmcyhvLHQpfSkpLG99fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDM0Mik7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aW50ZXJzZWN0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEsdGhpcyxpKHQpKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDM0NSk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFlKDMzMykoImlzRGlzam9pbnRGcm9tIil9LHtpc0Rpc2pvaW50RnJvbTpvfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMyNCksbz1lKDMyNSkuaGFzLGk9ZSgzMzEpLGE9ZSgzMzIpLHU9ZSgzMzApLGM9ZSgxNDQpLGY9ZSgxNjUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgcj1uKHRoaXMpLGU9YSh0KTtpZihpKHIpPD1lLnNpemUpcmV0dXJuITEhPT11KHIsKGZ1bmN0aW9uKHQpe2lmKGUuaW5jbHVkZXModCkpcmV0dXJuITF9KSwhMCk7dmFyIHM9ZS5nZXRJdGVyYXRvcigpO3JldHVybiExIT09YyhzLChmdW5jdGlvbih0KXtpZihvKHIsdCkpcmV0dXJuIGYocywibm9ybWFsIiwhMSl9KSl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDM0NSk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNEaXNqb2ludEZyb206ZnVuY3Rpb24odCl7cmV0dXJuIG8oYSx0aGlzLGkodCkpfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzQ4KTtuKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IWUoMzMzKSgiaXNTdWJzZXRPZiIpfSx7aXNTdWJzZXRPZjpvfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMyNCksbz1lKDMzMSksaT1lKDMzMCksYT1lKDMzMik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciByPW4odGhpcyksZT1hKHQpO3JldHVybiEobyhyKT5lLnNpemUpJiYhMSE9PWkociwoZnVuY3Rpb24odCl7aWYoIWUuaW5jbHVkZXModCkpcmV0dXJuITF9KSwhMCl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDM0OCk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNTdWJzZXRPZjpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgzNTEpO24oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohZSgzMzMpKCJpc1N1cGVyc2V0T2YiKX0se2lzU3VwZXJzZXRPZjpvfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDMyNCksbz1lKDMyNSkuaGFzLGk9ZSgzMzEpLGE9ZSgzMzIpLHU9ZSgxNDQpLGM9ZSgxNjUpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgcj1uKHRoaXMpO3Q9YSh0KTtpZihpKHIpPHQuc2l6ZSlyZXR1cm4hMTt2YXIgZT10LmdldEl0ZXJhdG9yKCk7cmV0dXJuITEhPT11KGUsKGZ1bmN0aW9uKHQpe2lmKCFvKHIsdCkpcmV0dXJuIGMoZSwibm9ybWFsIiwhMSl9KSl9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDM1MSk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7aXNTdXBlcnNldE9mOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEsdGhpcyxpKHQpKX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDEzKSxhPW4oMzI0KSx1PW4oMzMwKSxjPW4oODgpLGY9aShbXS5qb2luKSxzPWkoW10ucHVzaCk7byh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7am9pbjpmdW5jdGlvbihyKXt2YXIgZT1hKHRoaXMpLG49KHI9cj09PXQ/IiwiOmMociksW10pO3JldHVybiB1KGUsKGZ1bmN0aW9uKHQpe3Mobix0KX0pKSxmKG4scil9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigzMjQpLHU9bigzMjUpLGM9bigzMzApLGY9dS5TZXQscz11LmFkZDtvKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHttYXA6ZnVuY3Rpb24ocil7dmFyIGU9YSh0aGlzKSxuPWkociwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnQpLG89bmV3IGY7cmV0dXJuIGMoZSwoZnVuY3Rpb24odCl7cyhvLG4odCx0LGUpKX0pKSxvfX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJTZXQiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7b2Y6ZSgyNjkpfSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzMCksYT1uKDMyNCksdT1uKDMzMCksYz1UeXBlRXJyb3I7byh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7cmVkdWNlOmZ1bmN0aW9uKHIpe3ZhciBlPWEodGhpcyksbj1hcmd1bWVudHMubGVuZ3RoPDIsbz1uP3Q6YXJndW1lbnRzWzFdO2lmKGkociksdShlLChmdW5jdGlvbih0KXtvPW4/KG49ITEsdCk6cihvLHQsdCxlKX0pKSxuKXRocm93IGMoIlJlZHVjZSBvZiBlbXB0eSBzZXQgd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIG99fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigxMTEpLGE9bigzMjQpLHU9bigzMzApO28oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se3NvbWU6ZnVuY3Rpb24ocil7dmFyIGU9YSh0aGlzKSxuPWkociwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnQpO3JldHVybiEwPT09dShlLChmdW5jdGlvbih0KXtpZihuKHQsdCxlKSlyZXR1cm4hMH0pLCEwKX19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDM1OSk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFlKDMzMykoInN5bW1ldHJpY0RpZmZlcmVuY2UiKX0se3N5bW1ldHJpY0RpZmZlcmVuY2U6b30pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzMjQpLG89ZSgzMjUpLGk9ZSgzMjkpLGE9ZSgzMzIpLHU9ZSgxNDQpLGM9by5hZGQsZj1vLmhhcyxzPW8ucmVtb3ZlO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgcj1uKHRoaXMpLGU9KHQ9YSh0KS5nZXRJdGVyYXRvcigpLGkocikpO3JldHVybiB1KHQsKGZ1bmN0aW9uKHQpeyhmKHIsdCk/czpjKShlLHQpfSkpLGV9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNyksaT1lKDMzNSksYT1lKDM1OSk7bih7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSgzNjIpO24oe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohZSgzMzMpKCJ1bmlvbiIpfSx7dW5pb246b30pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzMjQpLG89ZSgzMjUpLmFkZCxpPWUoMzI5KSxhPWUoMzMyKSx1PWUoMTQ0KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIHI9bih0aGlzKSxlPSh0PWEodCkuZ2V0SXRlcmF0b3IoKSxpKHIpKTtyZXR1cm4gdSh0LChmdW5jdGlvbih0KXtvKGUsdCl9KSksZX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg3KSxpPWUoMzM1KSxhPWUoMzYyKTtuKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6ITB9LHt1bmlvbjpmdW5jdGlvbih0KXtyZXR1cm4gbyhhLHRoaXMsaSh0KSl9fSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDIpLGk9bigzNjUpLmNoYXJBdCxhPW4oMTUpLHU9big2MSksYz1uKDg4KTtvKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEwfSx7YXQ6ZnVuY3Rpb24ocil7dmFyIGU9YyhhKHRoaXMpKSxuPWUubGVuZ3RoO3JldHVybihyPTA8PShyPXUocikpP3I6bityKTwwfHxuPD1yP3Q6aShlLHIpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigxMyksaT1uKDYxKSxhPW4oODgpLHU9bigxNSksYz1vKCIiLmNoYXJBdCksZj1vKCIiLmNoYXJDb2RlQXQpLHM9bygiIi5zbGljZSk7bz1mdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgbyxwPWEodShlKSksbD1pKG4pO2U9cC5sZW5ndGg7cmV0dXJuIGw8MHx8ZTw9bD9yPyIiOnQ6KG49ZihwLGwpKTw1NTI5Nnx8NTYzMTk8bnx8bCsxPT09ZXx8KG89ZihwLGwrMSkpPDU2MzIwfHw1NzM0MzxvP3I/YyhwLGwpOm46cj9zKHAsbCxsKzIpOm8tNTYzMjArKG4tNTUyOTY8PDEwKSs2NTUzNn19O3IuZXhwb3J0cz17Y29kZUF0Om8oITEpLGNoYXJBdDpvKCEwKX19LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IlN0cmluZyIsc3RhdDohMCxmb3JjZWQ6ITB9LHtjb29rZWQ6ZSgzNjcpfSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDEzKSxpPW4oMTEpLGE9big4OCksdT1uKDYzKSxjPVR5cGVFcnJvcixmPW8oW10ucHVzaCkscz1vKFtdLmpvaW4pO3IuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT1pKHIpLG49dShlKTtpZighbilyZXR1cm4iIjtmb3IodmFyIG89YXJndW1lbnRzLmxlbmd0aCxwPVtdLGw9MDs7KXt2YXIgaD1lW2wrK107aWYoaD09PXQpdGhyb3cgYygiSW5jb3JyZWN0IHRlbXBsYXRlIik7aWYoZihwLGEoaCkpLGw9PT1uKXJldHVybiBzKHAsIiIpO2w8byYmZihwLGEoYXJndW1lbnRzW2xdKSl9fX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDE4NiksYT1uKDExOCksdT1uKDE1KSxjPW4oODgpLGY9big1MSkscz0obj1uKDM2NSkpLmNvZGVBdCxwPW4uY2hhckF0LGw9IlN0cmluZyBJdGVyYXRvciIsaD1mLnNldCx2PWYuZ2V0dGVyRm9yKGwpLHk9aSgoZnVuY3Rpb24odCl7aCh0aGlzLHt0eXBlOmwsc3RyaW5nOnQsaW5kZXg6MH0pfSksIlN0cmluZyIsKGZ1bmN0aW9uKCl7dmFyIHI9dih0aGlzKSxlPXIuc3RyaW5nLG49ci5pbmRleDtyZXR1cm4gbj49ZS5sZW5ndGg/YSh0LCEwKTooZT1wKGUsbiksci5pbmRleCs9ZS5sZW5ndGgsYSh7Y29kZVBvaW50OnMoZSwwKSxwb3NpdGlvbjpufSwhMSkpfSkpO28oe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6ITB9LHtjb2RlUG9pbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB5KGModSh0aGlzKSkpfX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyMDEpLGk9bigyKSxhPW4oMzQpLHU9bigyMyksYz1uKDQ4KSxmPW4oMTMpLHM9bigxOTApLHA9big0NiksbD1uKDM5KSxoPW4oMjApLHY9big2MykseT1uKDQ0KS5mLGQ9bigxOTcpLGc9bigzNjcpLGI9bigzNzApLG09KG49bigyOTcpLGEoIkdsb2JhbERlZGVudFJlZ2lzdHJ5IixuZXcodSgiV2Vha01hcCIpKSkpO2Z1bmN0aW9uIHgodCl7cmV0dXJuIGMoKGZ1bmN0aW9uKHIpe3ZhciBlPWQoYXJndW1lbnRzKTtyZXR1cm4gZVswXT1mdW5jdGlvbih0KXt2YXIgcj10LnJhdztpZihvJiYhRShyKSl0aHJvdyBTKCJSYXcgdGVtcGxhdGUgc2hvdWxkIGJlIGZyb3plbiIpO2lmKG0uaGFzKHIpKXJldHVybiBtLmdldChyKTt2YXIgZT1DKHIpO3Q9TihlKTtyZXR1cm4geSh0LCJyYXciLHt2YWx1ZTpBKGUpfSksQSh0KSxtLnNldChyLHQpLHR9KHAocikpLHModCx0aGlzLGUpfSksIiIpfW0uaGFzPW0uaGFzLG0uZ2V0PW0uZ2V0LG0uc2V0PW0uc2V0O3ZhciB3PUFycmF5LFM9VHlwZUVycm9yLEE9T2JqZWN0LmZyZWV6ZXx8T2JqZWN0LEU9T2JqZWN0LmlzRnJvemVuLE89TWF0aC5taW4sUj1mKCIiLmNoYXJBdCksST1mKCIiLnNsaWNlKSxrPWYoIiIuc3BsaXQpLFQ9ZigvLi8uZXhlYyksTT0vKFtcblx1MjAyOFx1MjAyOV18XHJcbj8pL2csaj1SZWdFeHAoIl5bIituKyJdKiIpLFA9UmVnRXhwKCJbXiIrbisiXSIpLEQ9IkludmFsaWQgdGFnIixDPWZ1bmN0aW9uKHQpe3ZhciByLGU9bCh0KSxuPXYoZSksbz13KG4pLGk9dyhuKSxhPTA7aWYoIW4pdGhyb3cgUyhEKTtmb3IoO2E8bjthKyspe3ZhciB1PWVbYV07aWYoInN0cmluZyIhPXR5cGVvZiB1KXRocm93IFMoRCk7b1thXT1rKHUsTSl9Zm9yKGE9MDthPG47YSsrKXt2YXIgYz1hKzE9PT1uLGY9b1thXTtpZigwPT09YSl7aWYoMT09PWYubGVuZ3RofHwwPGZbMF0ubGVuZ3RoKXRocm93IFMoIkludmFsaWQgb3BlbmluZyBsaW5lIik7ZlsxXT0iIn1pZihjKXtpZigxPT09Zi5sZW5ndGh8fFQoUCxmW2YubGVuZ3RoLTFdKSl0aHJvdyBTKCJJbnZhbGlkIGNsb3NpbmcgbGluZSIpO2ZbZi5sZW5ndGgtMl09IiIsZltmLmxlbmd0aC0xXT0iIn1mb3IodmFyIHM9MjtzPGYubGVuZ3RoO3MrPTIpe3ZhciBwPWZbc10saD1zKzE9PT1mLmxlbmd0aCYmIWMseT1UKGoscClbMF07aHx8eS5sZW5ndGghPT1wLmxlbmd0aD9yPV8oeSxyKTpmW3NdPSIifX12YXIgZD1yP3IubGVuZ3RoOjA7Zm9yKGE9MDthPG47YSsrKXtmb3IodmFyIGc9KGY9b1thXSlbMF0sYj0xO2I8Zi5sZW5ndGg7Yis9MilnKz1mW2JdK0koZltiKzFdLGQpO2lbYV09Z31yZXR1cm4gaX0sXz1mdW5jdGlvbihyLGUpe2lmKGU9PT10fHxyPT09ZSlyZXR1cm4gcjtmb3IodmFyIG49MCxvPU8oci5sZW5ndGgsZS5sZW5ndGgpO248byYmUihyLG4pPT09UihlLG4pO24rKyk7cmV0dXJuIEkociwwLG4pfSxOPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0wLGU9dC5sZW5ndGgsbj13KGUpO3I8ZTtyKyspbltyXT1iKHRbcl0pO3JldHVybiBufSxGPXgoZyk7aSh7dGFyZ2V0OiJTdHJpbmciLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZGVkZW50OmZ1bmN0aW9uKHQpe3JldHVybiBwKHQpLGgodCk/eCh0KTpzKEYsdGhpcyxhcmd1bWVudHMpfX0pfSxmdW5jdGlvbih0LHIsZSl7ZnVuY3Rpb24gbih0LHIpe3JldHVybiA0ODw9KHI9Zih0LHIpKSYmcjw9NTd9ZnVuY3Rpb24gbyh0LHIsZSl7aWYoZT49dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBuPTA7cjxlO3IrKyl7dmFyIG89bChmKHQscikpO2lmKC0xPT09bylyZXR1cm4tMTtuPTE2Km4rb31yZXR1cm4gbn12YXIgaT1lKDIzKSxhPShlPWUoMTMpLFN0cmluZy5mcm9tQ2hhckNvZGUpLHU9aSgiU3RyaW5nIiwiZnJvbUNvZGVQb2ludCIpLGM9ZSgiIi5jaGFyQXQpLGY9ZSgiIi5jaGFyQ29kZUF0KSxzPWUoIiIuaW5kZXhPZikscD1lKCIiLnNsaWNlKSxsPWZ1bmN0aW9uKHQpe3JldHVybiA0ODw9dCYmdDw9NTc/dC00ODo5Nzw9dCYmdDw9MTAyP3QtOTcrMTA6NjU8PXQmJnQ8PTcwP3QtNjUrMTA6LTF9O3QuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIHIsZT0iIixpPTAsZj0wOy0xPChmPXModCwiXFwiLGYpKTspe2lmKGUrPXAodCxpLGYpLCsrZj09PXQubGVuZ3RoKXJldHVybjt2YXIgbD1jKHQsZisrKTtzd2l0Y2gobCl7Y2FzZSJiIjplKz0iXGIiO2JyZWFrO2Nhc2UidCI6ZSs9Ilx0IjticmVhaztjYXNlIm4iOmUrPSJcbiI7YnJlYWs7Y2FzZSJ2IjplKz0iXHYiO2JyZWFrO2Nhc2UiZiI6ZSs9IlxmIjticmVhaztjYXNlInIiOmUrPSJcciI7YnJlYWs7Y2FzZSJcciI6Zjx0Lmxlbmd0aCYmIlxuIj09PWModCxmKSYmKytmO2Nhc2UiXG4iOmNhc2UiXHUyMDI4IjpjYXNlIlx1MjAyOSI6YnJlYWs7Y2FzZSIwIjppZihuKHQsZikpcmV0dXJuO2UrPSJcMCI7YnJlYWs7Y2FzZSJ4IjppZigtMT09PShyPW8odCxmLGYrMikpKXJldHVybjtmKz0yLGUrPWEocik7YnJlYWs7Y2FzZSJ1IjppZihmPHQubGVuZ3RoJiYieyI9PT1jKHQsZikpe3ZhciBoPXModCwifSIsKytmKTtpZigtMT09PWgpcmV0dXJuO3I9byh0LGYsaCksZj1oKzF9ZWxzZSByPW8odCxmLGYrNCksZis9NDtpZigtMT09PXJ8fDExMTQxMTE8cilyZXR1cm47ZSs9dShyKTticmVhaztkZWZhdWx0OmlmKG4obCwwKSlyZXR1cm47ZSs9bH1pPWZ9cmV0dXJuIGUrcCh0LGkpfX0sZnVuY3Rpb24odCxyLGUpe2UoMzcyKSgiYXN5bmNEaXNwb3NlIil9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDM3Myksbz1lKDM4KSxpPWUoMzc0KSxhPWUoNDQpLmY7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciByPW4uU3ltYm9sfHwobi5TeW1ib2w9e30pO28ocix0KXx8YShyLHQse3ZhbHVlOmkuZih0KX0pfX0sZnVuY3Rpb24odCxyLGUpe2U9ZSgzKSx0LmV4cG9ydHM9ZX0sZnVuY3Rpb24odCxyLGUpe2U9ZSgzMyksci5mPWV9LGZ1bmN0aW9uKHQscixlKXtlKDM3MikoImRpc3Bvc2UiKX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwfSx7aXNSZWdpc3RlcmVkU3ltYm9sOmUoMzc3KX0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89bigyMyksaT0obj1uKDEzKSwobz1vKCJTeW1ib2wiKSkua2V5Rm9yKSxhPW4oby5wcm90b3R5cGUudmFsdWVPZik7ci5leHBvcnRzPW8uaXNSZWdpc3RlcmVkU3ltYm9sfHxmdW5jdGlvbihyKXt0cnl7cmV0dXJuIGkoYShyKSkhPT10fWNhdGNoKHIpe3JldHVybiExfX19LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IlN5bWJvbCIsc3RhdDohMCxuYW1lOiJpc1JlZ2lzdGVyZWRTeW1ib2wifSx7aXNSZWdpc3RlcmVkOmUoMzc3KX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7aXNXZWxsS25vd25TeW1ib2w6ZSgzODApfSl9LGZ1bmN0aW9uKHQscixlKXtmb3IodmFyIG49ZSgzNCksbz1lKDIzKSxpPWUoMTMpLGE9ZSgyMiksdT1lKDMzKSxjPW8oIlN5bWJvbCIpLGY9Yy5pc1dlbGxLbm93blN5bWJvbCxzPW8oIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiKSxwPWkoYy5wcm90b3R5cGUudmFsdWVPZiksbD1uKCJ3a3MiKSxoPTAsdj1zKGMpLHk9di5sZW5ndGg7aDx5O2grKyl0cnl7dmFyIGQ9dltoXTthKGNbZF0pJiZ1KGQpfWNhdGNoKHQpe310LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoZiYmZih0KSlyZXR1cm4hMDt0cnl7Zm9yKHZhciByPXAodCksZT0wLG49cyhsKSxvPW4ubGVuZ3RoO2U8bztlKyspaWYobFtuW2VdXT09cilyZXR1cm4hMH1jYXRjaCh0KXt9cmV0dXJuITF9fSxmdW5jdGlvbih0LHIsZSl7ZSgyKSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsbmFtZToiaXNXZWxsS25vd25TeW1ib2wiLGZvcmNlZDohMH0se2lzV2VsbEtub3duOmUoMzgwKX0pfSxmdW5jdGlvbih0LHIsZSl7ZSgzNzIpKCJtYXRjaGVyIil9LGZ1bmN0aW9uKHQscixlKXtlKDM3MikoIm1ldGFkYXRhIil9LGZ1bmN0aW9uKHQscixlKXtlKDM3MikoIm1ldGFkYXRhS2V5Iil9LGZ1bmN0aW9uKHQscixlKXtlKDM3MikoIm9ic2VydmFibGUiKX0sZnVuY3Rpb24odCxyLGUpe2UoMzcyKSgicGF0dGVybk1hdGNoIil9LGZ1bmN0aW9uKHQscixlKXtlKDM3MikoInJlcGxhY2VBbGwiKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMjMpLGk9bigyNTkpLGE9bigxMTApLHU9big5MyksYz1uKDc5KSxmPXUuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCx1LmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QpKCJmcm9tQXN5bmMiLChmdW5jdGlvbihyKXt2YXIgZT10aGlzLG49YXJndW1lbnRzLmxlbmd0aCx1PTE8bj9hcmd1bWVudHNbMV06dCxzPTI8bj9hcmd1bWVudHNbMl06dDtyZXR1cm4gbmV3KG8oIlByb21pc2UiKSkoKGZ1bmN0aW9uKHQpe2koZSksdChhKHIsdSxzKSl9KSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGMoZihlKSx0KX0pKX0pLCEwKX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oOTMpLGk9bigxMjYpLmZpbHRlclJlamVjdCxhPW4oMzkwKSx1PW8uYVR5cGVkQXJyYXk7KDAsby5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyT3V0IiwoZnVuY3Rpb24ocil7cmV0dXJuIHI9aSh1KHRoaXMpLHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxhKHRoaXMscil9KSwhMCl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDc5KSxvPWUoMzkxKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxyKXtyZXR1cm4gbihvKHQpLHIpfX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoOTMpLG89ZSgzOTIpLGk9bi5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGE9bi5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG8odCxhKHQpKSl9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big0NiksaT1uKDI1OSksYT1uKDE2KSx1PW4oMzMpKCJzcGVjaWVzIik7ci5leHBvcnRzPWZ1bmN0aW9uKHIsZSl7dmFyIG47cmV0dXJuKHI9byhyKS5jb25zdHJ1Y3Rvcik9PT10fHxhKG49byhyKVt1XSk/ZTppKG4pfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oOTMpLGk9bigxMjYpLmZpbHRlclJlamVjdCxhPW4oMzkwKSx1PW8uYVR5cGVkQXJyYXk7KDAsby5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyUmVqZWN0IiwoZnVuY3Rpb24ocil7cmV0dXJuIHI9aSh1KHRoaXMpLHIsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp0KSxhKHRoaXMscil9KSwhMCl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbz1uKDkzKSxpPW4oMTMxKSxhPW4oMzkxKSx1PW8uYVR5cGVkQXJyYXk7KDAsby5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZ3JvdXBCeSIsKGZ1bmN0aW9uKHIpe3ZhciBlPTE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dDtyZXR1cm4gaSh1KHRoaXMpLHIsZSxhKX0pLCEwKX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoOTMpLG89ZSg2MyksaT1lKDEwMiksYT1lKDYwKSx1PWUoMTAzKSxjPWUoNjEpLGY9KGU9ZSg2KSxuLmFUeXBlZEFycmF5KSxzPW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLHA9KG49bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLE1hdGgubWF4KSxsPU1hdGgubWluO24oInRvU3BsaWNlZCIsKGZ1bmN0aW9uKHQscil7dmFyIGUsbixoLHYseSxkPWYodGhpcyksZz1zKGQpLGI9byhkKSxtPWEodCxiKSx4PWFyZ3VtZW50cy5sZW5ndGgsdz0wO2lmKDA9PT14KWU9bj0wO2Vsc2UgaWYoMT09PXgpZT0wLG49Yi1tO2Vsc2UgaWYobj1sKHAoYyhyKSwwKSxiLW0pLGU9eC0yKWZvcih2YXIgUz1uZXcgZyhlKSxBPWkoUyksRT0yO0U8eDtFKyspaD1hcmd1bWVudHNbRV0sU1tFLTJdPUE/dShoKToraDtmb3IoeT1uZXcgZyh2PWIrZS1uKTt3PG07dysrKXlbd109ZFt3XTtmb3IoO3c8bStlO3crKyl5W3ddPVNbdy1tXTtmb3IoO3c8djt3KyspeVt3XT1kW3crbi1lXTtyZXR1cm4geX0pLCEhZSgoZnVuY3Rpb24oKXt2YXIgdD1uZXcgSW50OEFycmF5KFsxXSkscj10LnRvU3BsaWNlZCgxLDAse3ZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdFswXT0yLDN9fSk7cmV0dXJuIDIhPT1yWzBdfHwzIT09clsxXX0pKSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKSxvPWUoOTMpLGk9ZSg3OSksYT0oZT1lKDE0Miksby5hVHlwZWRBcnJheSksdT1vLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcixjPShvPW8uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxuKGUpKTtvKCJ1bmlxdWVCeSIsKGZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMpLGkodSh0aGlzKSxjKHRoaXMsdCkpfSksITApfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoMzk4KSxpPWUoMzk5KS5yZW1vdmU7bih7dGFyZ2V0OiJXZWFrTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe2Zvcih2YXIgdCxyPW8odGhpcyksZT0hMCxuPTAsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspdD1pKHIsYXJndW1lbnRzW25dKSxlPWUmJnQ7cmV0dXJuISFlfX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgzOTkpLmhhczt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCksdH19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDEzKTtlPVdlYWtNYXAucHJvdG90eXBlO3QuZXhwb3J0cz17V2Vha01hcDpXZWFrTWFwLHNldDpuKGUuc2V0KSxnZXQ6bihlLmdldCksaGFzOm4oZS5oYXMpLHJlbW92ZTpuKGUuZGVsZXRlKX19LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IldlYWtNYXAiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTplKDI1OCl9KX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiV2Vha01hcCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtvZjplKDI2OSl9KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoMiksbz1lKDM5OCksaT0oZT1lKDM5OSkpLmdldCxhPWUuaGFzLHU9ZS5zZXQ7bih7dGFyZ2V0OiJXZWFrTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2VtcGxhY2U6ZnVuY3Rpb24odCxyKXt2YXIgZSxuPW8odGhpcyk7cmV0dXJuIGEobix0KT8oZT1pKG4sdCksInVwZGF0ZSJpbiByJiYoZT1yLnVwZGF0ZShlLHQsbiksdShuLHQsZSkpLGUpOihyPXIuaW5zZXJ0KHQsbiksdShuLHQscikscil9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IldlYWtNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7dXBzZXJ0OmUoMjc1KX0pfSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgyKSxvPWUoNDA1KSxpPWUoNDA2KS5hZGQ7bih7dGFyZ2V0OiJXZWFrU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohMH0se2FkZEFsbDpmdW5jdGlvbigpe2Zvcih2YXIgdD1vKHRoaXMpLHI9MCxlPWFyZ3VtZW50cy5sZW5ndGg7cjxlO3IrKylpKHQsYXJndW1lbnRzW3JdKTtyZXR1cm4gdH19KX0sZnVuY3Rpb24odCxyLGUpe3ZhciBuPWUoNDA2KS5oYXM7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQpLHR9fSxmdW5jdGlvbih0LHIsZSl7dmFyIG49ZSgxMyk7ZT1XZWFrU2V0LnByb3RvdHlwZTt0LmV4cG9ydHM9e1dlYWtTZXQ6V2Vha1NldCxhZGQ6bihlLmFkZCksaGFzOm4oZS5oYXMpLHJlbW92ZTpuKGUuZGVsZXRlKX19LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDIpLG89ZSg0MDUpLGk9ZSg0MDYpLnJlbW92ZTtuKHt0YXJnZXQ6IldlYWtTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEwfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LHI9byh0aGlzKSxlPSEwLG49MCxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKyl0PWkocixhcmd1bWVudHNbbl0pLGU9ZSYmdDtyZXR1cm4hIWV9fSl9LGZ1bmN0aW9uKHQscixlKXtlKDIpKHt0YXJnZXQ6IldlYWtTZXQiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7ZnJvbTplKDI1OCl9KX0sZnVuY3Rpb24odCxyLGUpe2UoMikoe3RhcmdldDoiV2Vha1NldCIsc3RhdDohMCxmb3JjZWQ6ITB9LHtvZjplKDI2OSl9KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDMpLGE9bigyMyksdT1uKDEwKSxjPW4oNDQpLmYsZj1uKDM4KSxzPW4oMTU3KSxwPW4oMjA1KSxsPW4oMTA4KSxoPW4oNDExKSx2PW4oMTA2KSx5PW4oNSksZD1uKDM1KSxnPSJET01FeGNlcHRpb24iLGI9YSgiRXJyb3IiKSxtPWEoZykseD1mdW5jdGlvbigpe3ModGhpcyx3KTt2YXIgcj1sKChlPWFyZ3VtZW50cy5sZW5ndGgpPDE/dDphcmd1bWVudHNbMF0pLGU9bChlPDI/dDphcmd1bWVudHNbMV0sIkVycm9yIik7ZT1uZXcgbShyLGUpO3JldHVybihyPWIocikpLm5hbWU9ZyxjKGUsInN0YWNrIix1KDEsdihyLnN0YWNrLDEpKSkscChlLHRoaXMseCksZX0sdz14LnByb3RvdHlwZT1tLnByb3RvdHlwZSxTPSJzdGFjayJpbiBiKGcpO249InN0YWNrImluIG5ldyBtKDEsMiksaT0hKCEoaT1tJiZ5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZykpfHxpLndyaXRhYmxlJiZpLmNvbmZpZ3VyYWJsZSksbj1TJiYhaSYmIW47byh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpkfHxufSx7RE9NRXhjZXB0aW9uOm4/eDptfSk7dmFyIEEsRT1hKGcpO2lmKChhPUUucHJvdG90eXBlKS5jb25zdHJ1Y3RvciE9PUUpZm9yKHZhciBPIGluIGR8fGMoYSwiY29uc3RydWN0b3IiLHUoMSxFKSksaClmKGgsTykmJihmKEUsTz0oQT1oW09dKS5zKXx8YyhFLE8sdSg2LEEuYykpKX0sZnVuY3Rpb24odCxyKXt0LmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSxmdW5jdGlvbihyLGUsbil7ZnVuY3Rpb24gbyh0KXt0aHJvdyBuZXcgSigiVW5jbG9uZWFibGUgdHlwZTogIit0LHV0KX1mdW5jdGlvbiBpKHQscil7dGhyb3cgbmV3IEooKHJ8fCJDbG9uaW5nIikrIiBvZiAiK3QrIiBjYW5ub3QgYmUgcHJvcGVybHkgcG9seWZpbGxlZCBpbiB0aGlzIGVuZ2luZSIsdXQpfWZ1bmN0aW9uIGEodCxyKXtyZXR1cm4gc3R8fGkociksc3QodCl9dmFyIHUsYz1uKDM1KSxmPW4oMikscz1uKDMpLHA9bigyMyksbD1uKDEzKSxoPW4oNiksdj1uKDQwKSx5PW4oMjApLGQ9bigxMTMpLGc9bigxNiksYj1uKDE5KSxtPW4oMjIpLHg9bigyMDIpLHc9big0NiksUz1uKDg5KSxBPW4oMzgpLEU9bigxOTgpLE89big0MyksUj1uKDYzKSxJPW4oNDEzKSxrPW4oNDE0KSxUPW4oMTM2KSxNPW4oMzI1KSxqPW4oMTA3KSxQPW4oMTUxKSxEPXMuT2JqZWN0LEM9cy5BcnJheSxfPXMuRGF0ZSxOPXMuRXJyb3IsRj1zLkV2YWxFcnJvcixCPXMuUmFuZ2VFcnJvcix6PXMuUmVmZXJlbmNlRXJyb3IsVT1zLlN5bnRheEVycm9yLEw9cy5UeXBlRXJyb3IsVz1zLlVSSUVycm9yLEs9cy5QZXJmb3JtYW5jZU1hcmssVj0obj1zLldlYkFzc2VtYmx5KSYmbi5Db21waWxlRXJyb3J8fE4sRz1uJiZuLkxpbmtFcnJvcnx8TixIPW4mJm4uUnVudGltZUVycm9yfHxOLEo9cCgiRE9NRXhjZXB0aW9uIiksWT1ULk1hcCwkPVQuaGFzLHE9VC5nZXQsWD1ULnNldCxRPU0uU2V0LFo9TS5hZGQsdHQ9cCgiT2JqZWN0Iiwia2V5cyIpLHJ0PWwoW10ucHVzaCksZXQ9bCgoITApLnZhbHVlT2YpLG50PWwoMS4udmFsdWVPZiksb3Q9bCgiIi52YWx1ZU9mKSxpdD1sKF8ucHJvdG90eXBlLmdldFRpbWUpLGF0PXYoInN0cnVjdHVyZWRDbG9uZSIpLHV0PSJEYXRhQ2xvbmVFcnJvciIsY3Q9IlRyYW5zZmVycmluZyIsZnQ9KGw9ZnVuY3Rpb24odCl7cmV0dXJuIWgoKGZ1bmN0aW9uKCl7dmFyIHI9bmV3IHMuU2V0KFs3XSksZT10KHIpLG49dChEKDcpKTtyZXR1cm4gZT09cnx8IWUuaGFzKDcpfHwib2JqZWN0IiE9dHlwZW9mIG58fDchPW59KSkmJnR9LHY9ZnVuY3Rpb24odCxyKXtyZXR1cm4haCgoZnVuY3Rpb24oKXt2YXIgZT1uZXcgcixuPXQoe2E6ZSxiOmV9KTtyZXR1cm4hKG4mJm4uYT09PW4uYiYmbi5hIGluc3RhbmNlb2YgciYmbi5hLnN0YWNrPT09ZS5zdGFjayl9KSl9LHMuc3RydWN0dXJlZENsb25lKSxzdD0oYz1jfHwhdihmdCxOKXx8IXYoZnQsSil8fCh1PWZ0LCEhaCgoZnVuY3Rpb24oKXt2YXIgdD11KG5ldyBzLkFnZ3JlZ2F0ZUVycm9yKFsxXSxhdCx7Y2F1c2U6M30pKTtyZXR1cm4iQWdncmVnYXRlRXJyb3IiIT10Lm5hbWV8fDEhPXQuZXJyb3JzWzBdfHx0Lm1lc3NhZ2UhPWF0fHwzIT10LmNhdXNlfSkpKSx2PSFmdCYmbCgoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBLKGF0LHtkZXRhaWw6dH0pLmRldGFpbH0pKSxsKGZ0KXx8dikscHQ9ZnVuY3Rpb24ocixlKXtpZihtKHIpJiZvKCJTeW1ib2wiKSwhYihyKSlyZXR1cm4gcjtpZihlKXtpZigkKGUscikpcmV0dXJuIHEoZSxyKX1lbHNlIGU9bmV3IFk7dmFyIG4sdSxjLGYsbCxoLHYsZCxnLHgsdyxJPVMociksVD0hMTtzd2l0Y2goSSl7Y2FzZSJBcnJheSI6Yz1DKFIocikpLFQ9ITA7YnJlYWs7Y2FzZSJPYmplY3QiOmM9e30sVD0hMDticmVhaztjYXNlIk1hcCI6Yz1uZXcgWSxUPSEwO2JyZWFrO2Nhc2UiU2V0IjpjPW5ldyBRLFQ9ITA7YnJlYWs7Y2FzZSJSZWdFeHAiOmM9bmV3IFJlZ0V4cChyLnNvdXJjZSxrKHIpKTticmVhaztjYXNlIkVycm9yIjpzd2l0Y2godT1yLm5hbWUpe2Nhc2UiQWdncmVnYXRlRXJyb3IiOmM9cCgiQWdncmVnYXRlRXJyb3IiKShbXSk7YnJlYWs7Y2FzZSJFdmFsRXJyb3IiOmM9RigpO2JyZWFrO2Nhc2UiUmFuZ2VFcnJvciI6Yz1CKCk7YnJlYWs7Y2FzZSJSZWZlcmVuY2VFcnJvciI6Yz16KCk7YnJlYWs7Y2FzZSJTeW50YXhFcnJvciI6Yz1VKCk7YnJlYWs7Y2FzZSJUeXBlRXJyb3IiOmM9TCgpO2JyZWFrO2Nhc2UiVVJJRXJyb3IiOmM9VygpO2JyZWFrO2Nhc2UiQ29tcGlsZUVycm9yIjpjPVYoKTticmVhaztjYXNlIkxpbmtFcnJvciI6Yz1HKCk7YnJlYWs7Y2FzZSJSdW50aW1lRXJyb3IiOmM9SCgpO2JyZWFrO2RlZmF1bHQ6Yz1OKCl9VD0hMDticmVhaztjYXNlIkRPTUV4Y2VwdGlvbiI6Yz1uZXcgSihyLm1lc3NhZ2Usci5uYW1lKSxUPSEwO2JyZWFrO2Nhc2UiRGF0YVZpZXciOmNhc2UiSW50OEFycmF5IjpjYXNlIlVpbnQ4QXJyYXkiOmNhc2UiVWludDhDbGFtcGVkQXJyYXkiOmNhc2UiSW50MTZBcnJheSI6Y2FzZSJVaW50MTZBcnJheSI6Y2FzZSJJbnQzMkFycmF5IjpjYXNlIlVpbnQzMkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQmlnSW50NjRBcnJheSI6Y2FzZSJCaWdVaW50NjRBcnJheSI6bj1zW0ldLGIobil8fGkoSSksYz1uZXcgbihwdChyLmJ1ZmZlcixlKSxyLmJ5dGVPZmZzZXQsIkRhdGFWaWV3Ij09PUk/ci5ieXRlTGVuZ3RoOnIubGVuZ3RoKTticmVhaztjYXNlIkRPTVF1YWQiOnRyeXtjPW5ldyBET01RdWFkKHB0KHIucDEsZSkscHQoci5wMixlKSxwdChyLnAzLGUpLHB0KHIucDQsZSkpfWNhdGNoKG4pe2M9YShyLEkpfWJyZWFrO2Nhc2UiRmlsZSI6aWYoc3QpdHJ5e2M9c3QociksUyhjKSE9PUkmJihjPXQpfWNhdGNoKG4pe31pZighYyl0cnl7Yz1uZXcgRmlsZShbcl0sci5uYW1lLHIpfWNhdGNoKG4pe31jfHxpKEkpO2JyZWFrO2Nhc2UiRmlsZUxpc3QiOmlmKGY9ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD1uZXcgcy5EYXRhVHJhbnNmZXJ9Y2F0Y2gocil7dHJ5e3Q9bmV3IHMuQ2xpcGJvYXJkRXZlbnQoIiIpLmNsaXBib2FyZERhdGF9Y2F0Y2godCl7fX1yZXR1cm4gdCYmdC5pdGVtcyYmdC5maWxlcz90Om51bGx9KCkpe2ZvcihsPTAsaD1SKHIpO2w8aDtsKyspZi5pdGVtcy5hZGQocHQocltsXSxlKSk7Yz1mLmZpbGVzfWVsc2UgYz1hKHIsSSk7YnJlYWs7Y2FzZSJJbWFnZURhdGEiOnRyeXtjPW5ldyBJbWFnZURhdGEocHQoci5kYXRhLGUpLHIud2lkdGgsci5oZWlnaHQse2NvbG9yU3BhY2U6ci5jb2xvclNwYWNlfSl9Y2F0Y2gobil7Yz1hKHIsSSl9YnJlYWs7ZGVmYXVsdDppZihzdCljPXN0KHIpO2Vsc2Ugc3dpdGNoKEkpe2Nhc2UiQmlnSW50IjpjPUQoci52YWx1ZU9mKCkpO2JyZWFrO2Nhc2UiQm9vbGVhbiI6Yz1EKGV0KHIpKTticmVhaztjYXNlIk51bWJlciI6Yz1EKG50KHIpKTticmVhaztjYXNlIlN0cmluZyI6Yz1EKG90KHIpKTticmVhaztjYXNlIkRhdGUiOmM9bmV3IF8oaXQocikpO2JyZWFrO2Nhc2UiQXJyYXlCdWZmZXIiOihuPXMuRGF0YVZpZXcpfHwiZnVuY3Rpb24iPT10eXBlb2Ygci5zbGljZXx8aShJKTt0cnl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIuc2xpY2V8fHIucmVzaXphYmxlKXtoPXIuYnl0ZUxlbmd0aCx3PSJtYXhCeXRlTGVuZ3RoImluIHI/e21heEJ5dGVMZW5ndGg6ci5tYXhCeXRlTGVuZ3RofTp0LGM9bmV3IEFycmF5QnVmZmVyKGgsdyksZz1uZXcgbihyKSx4PW5ldyBuKGMpO2ZvcihsPTA7bDxoO2wrKyl4LnNldFVpbnQ4KGwsZy5nZXRVaW50OChsKSl9ZWxzZSBjPXIuc2xpY2UoMCl9Y2F0Y2gobil7dGhyb3cgbmV3IEooIkFycmF5QnVmZmVyIGlzIGRldGFjaGVkIix1dCl9YnJlYWs7Y2FzZSJTaGFyZWRBcnJheUJ1ZmZlciI6Yz1yO2JyZWFrO2Nhc2UiQmxvYiI6dHJ5e2M9ci5zbGljZSgwLHIuc2l6ZSxyLnR5cGUpfWNhdGNoKG4pe2koSSl9YnJlYWs7Y2FzZSJET01Qb2ludCI6Y2FzZSJET01Qb2ludFJlYWRPbmx5IjpuPXNbSV07dHJ5e2M9bi5mcm9tUG9pbnQ/bi5mcm9tUG9pbnQocik6bmV3IG4oci54LHIueSxyLnosci53KX1jYXRjaChuKXtpKEkpfWJyZWFrO2Nhc2UiRE9NUmVjdCI6Y2FzZSJET01SZWN0UmVhZE9ubHkiOm49c1tJXTt0cnl7Yz1uLmZyb21SZWN0P24uZnJvbVJlY3Qocik6bmV3IG4oci54LHIueSxyLndpZHRoLHIuaGVpZ2h0KX1jYXRjaChuKXtpKEkpfWJyZWFrO2Nhc2UiRE9NTWF0cml4IjpjYXNlIkRPTU1hdHJpeFJlYWRPbmx5IjpuPXNbSV07dHJ5e2M9bi5mcm9tTWF0cml4P24uZnJvbU1hdHJpeChyKTpuZXcgbihyKX1jYXRjaChuKXtpKEkpfWJyZWFrO2Nhc2UiQXVkaW9EYXRhIjpjYXNlIlZpZGVvRnJhbWUiOnkoci5jbG9uZSl8fGkoSSk7dHJ5e2M9ci5jbG9uZSgpfWNhdGNoKG4pe28oSSl9YnJlYWs7Y2FzZSJDcm9wVGFyZ2V0IjpjYXNlIkNyeXB0b0tleSI6Y2FzZSJGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlIjpjYXNlIkZpbGVTeXN0ZW1GaWxlSGFuZGxlIjpjYXNlIkZpbGVTeXN0ZW1IYW5kbGUiOmNhc2UiR1BVQ29tcGlsYXRpb25JbmZvIjpjYXNlIkdQVUNvbXBpbGF0aW9uTWVzc2FnZSI6Y2FzZSJJbWFnZUJpdG1hcCI6Y2FzZSJSVENDZXJ0aWZpY2F0ZSI6Y2FzZSJXZWJBc3NlbWJseS5Nb2R1bGUiOmkoSSk7ZGVmYXVsdDpvKEkpfX1pZihYKGUscixjKSxUKXN3aXRjaChJKXtjYXNlIkFycmF5IjpjYXNlIk9iamVjdCI6Zm9yKHY9dHQociksbD0wLGg9Uih2KTtsPGg7bCsrKWQ9dltsXSxFKGMsZCxwdChyW2RdLGUpKTticmVhaztjYXNlIk1hcCI6ci5mb3JFYWNoKChmdW5jdGlvbih0LHIpe1goYyxwdChyLGUpLHB0KHQsZSkpfSkpO2JyZWFrO2Nhc2UiU2V0IjpyLmZvckVhY2goKGZ1bmN0aW9uKHQpe1ooYyxwdCh0LGUpKX0pKTticmVhaztjYXNlIkVycm9yIjpPKGMsIm1lc3NhZ2UiLHB0KHIubWVzc2FnZSxlKSksQShyLCJjYXVzZSIpJiZPKGMsImNhdXNlIixwdChyLmNhdXNlLGUpKSwiQWdncmVnYXRlRXJyb3IiPT11JiYoYy5lcnJvcnM9cHQoci5lcnJvcnMsZSkpO2Nhc2UiRE9NRXhjZXB0aW9uIjpqJiZPKGMsInN0YWNrIixwdChyLnN0YWNrLGUpKX1yZXR1cm4gY307Zih7Z2xvYmFsOiEwLGVudW1lcmFibGU6ITAsc2hhbTohUCxmb3JjZWQ6Y30se3N0cnVjdHVyZWRDbG9uZTpmdW5jdGlvbihyKXt2YXIgZSxuO3JldHVybihuPShuPTE8SShhcmd1bWVudHMubGVuZ3RoLDEpJiYhZyhhcmd1bWVudHNbMV0pP3coYXJndW1lbnRzWzFdKTp0KT9uLnRyYW5zZmVyOnQpIT09dCYmZnVuY3Rpb24ocixlKXtpZighYihyKSl0aHJvdyBMKCJUcmFuc2ZlciBvcHRpb24gY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIHNlcXVlbmNlIik7dmFyIG49W107eChyLChmdW5jdGlvbih0KXtydChuLHcodCkpfSkpO3ZhciBvLGEsdSxjLGYscCxsPTAsaD1SKG4pO2lmKFApZm9yKGM9ZnQobix7dHJhbnNmZXI6bn0pO2w8aDspWChlLG5bbF0sY1tsKytdKTtlbHNlIGZvcig7bDxoOyl7aWYobz1uW2wrK10sJChlLG8pKXRocm93IG5ldyBKKCJEdXBsaWNhdGUgdHJhbnNmZXJhYmxlIix1dCk7c3dpdGNoKGE9UyhvKSl7Y2FzZSJJbWFnZUJpdG1hcCI6dT1zLk9mZnNjcmVlbkNhbnZhcyxkKHUpfHxpKGEsY3QpO3RyeXsocD1uZXcgdShvLndpZHRoLG8uaGVpZ2h0KSkuZ2V0Q29udGV4dCgiYml0bWFwcmVuZGVyZXIiKS50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChvKSxmPXAudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9Y2F0Y2gocil7fWJyZWFrO2Nhc2UiQXVkaW9EYXRhIjpjYXNlIlZpZGVvRnJhbWUiOnkoby5jbG9uZSkmJnkoby5jbG9zZSl8fGkoYSxjdCk7dHJ5e2Y9by5jbG9uZSgpLG8uY2xvc2UoKX1jYXRjaChyKXt9YnJlYWs7Y2FzZSJBcnJheUJ1ZmZlciI6eShvLnRyYW5zZmVyKXx8aShhLGN0KSxmPW8udHJhbnNmZXIoKTticmVhaztjYXNlIk1lZGlhU291cmNlSGFuZGxlIjpjYXNlIk1lc3NhZ2VQb3J0IjpjYXNlIk9mZnNjcmVlbkNhbnZhcyI6Y2FzZSJSZWFkYWJsZVN0cmVhbSI6Y2FzZSJUcmFuc2Zvcm1TdHJlYW0iOmNhc2UiV3JpdGFibGVTdHJlYW0iOmkoYSxjdCl9aWYoZj09PXQpdGhyb3cgbmV3IEooIlRoaXMgb2JqZWN0IGNhbm5vdCBiZSB0cmFuc2ZlcnJlZDogIithLHV0KTtYKGUsbyxmKX19KG4sZT1uZXcgWSkscHQocixlKX19KX0sZnVuY3Rpb24odCxyKXt2YXIgZT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQscil7aWYodDxyKXRocm93IGUoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7cmV0dXJuIHR9fSxmdW5jdGlvbihyLGUsbil7dmFyIG89big3KSxpPW4oMzgpLGE9bigyNCksdT1uKDg2KSxjPVJlZ0V4cC5wcm90b3R5cGU7ci5leHBvcnRzPWZ1bmN0aW9uKHIpe3ZhciBlPXIuZmxhZ3M7cmV0dXJuIGUhPT10fHwiZmxhZ3MiaW4gY3x8aShyLCJmbGFncyIpfHwhYShjLHIpP2U6byh1LHIpfX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oMiksaT1uKDIzKSxhPW4oNiksdT1uKDQxMyksYz1uKDg4KSxmPShuPW4oNDE2KSxpKCJVUkwiKSk7byh7dGFyZ2V0OiJVUkwiLHN0YXQ6ITAsZm9yY2VkOiEobiYmYSgoZnVuY3Rpb24oKXtmLmNhblBhcnNlKCl9KSkpfSx7Y2FuUGFyc2U6ZnVuY3Rpb24ocil7dmFyIGU9dShhcmd1bWVudHMubGVuZ3RoLDEpO3I9YyhyKSxlPWU8Mnx8YXJndW1lbnRzWzFdPT09dD90OmMoYXJndW1lbnRzWzFdKTt0cnl7cmV0dXJuISFuZXcgZihyLGUpfWNhdGNoKHIpe3JldHVybiExfX19KX0sZnVuY3Rpb24ocixlLG4pe3ZhciBvPW4oNiksaT1uKDMzKSxhPW4oNSksdT1uKDM1KSxjPWkoIml0ZXJhdG9yIik7ci5leHBvcnRzPSFvKChmdW5jdGlvbigpe3ZhciByPW5ldyBVUkwoImI/YT0xJmI9MiZjPTMiLCJodHRwOi8vYSIpLGU9ci5zZWFyY2hQYXJhbXMsbj1uZXcgVVJMU2VhcmNoUGFyYW1zKCJhPTEmYT0yIiksbz0iIjtyZXR1cm4gci5wYXRobmFtZT0iYyUyMGQiLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlLmRlbGV0ZSgiYiIpLG8rPXIrdH0pKSxuLmRlbGV0ZSgiYSIsMiksdSYmKCFyLnRvSlNPTnx8IW4uaGFzKCJhIiwxKXx8bi5oYXMoImEiLDIpKXx8IWUuc2l6ZSYmKHV8fCFhKXx8IWUuc29ydHx8Imh0dHA6Ly9hL2MlMjBkP2E9MSZjPTMiIT09ci5ocmVmfHwiMyIhPT1lLmdldCgiYyIpfHwiYT0xIiE9PVN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKCI/YT0xIikpfHwhZVtjXXx8ImEiIT09bmV3IFVSTCgiaHR0cHM6Ly9hQGIiKS51c2VybmFtZXx8ImIiIT09bmV3IFVSTFNlYXJjaFBhcmFtcyhuZXcgVVJMU2VhcmNoUGFyYW1zKCJhPWIiKSkuZ2V0KCJhIil8fCJ4bi0tZTFheWJjIiE9PW5ldyBVUkwoImh0dHA6Ly/RgtC10YHRgiIpLmhvc3R8fCIjJUQwJUIxIiE9PW5ldyBVUkwoImh0dHA6Ly9hI9CxIikuaGFzaHx8ImExYzMiIT09b3x8IngiIT09bmV3IFVSTCgiaHR0cDovL3giLHQpLmhvc3R9KSl9LGZ1bmN0aW9uKHIsZSxuKXt2YXIgbyxpPW4oNDcpLGE9bigxMyksdT1uKDg4KSxjPW4oNDEzKSxmPWEoKG49KG89VVJMU2VhcmNoUGFyYW1zKS5wcm90b3R5cGUpLmFwcGVuZCkscz1hKG4uZGVsZXRlKSxwPWEobi5mb3JFYWNoKSxsPWEoW10ucHVzaCk7KG89bmV3IG8oImE9MSZhPTIiKSkuZGVsZXRlKCJhIiwxKSxvKyIiIT0iYT0yIiYmaShuLCJkZWxldGUiLChmdW5jdGlvbihyKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49ZTwyP3Q6YXJndW1lbnRzWzFdO2lmKGUmJm49PT10KXJldHVybiBzKHRoaXMscik7dmFyIG89W107cCh0aGlzLChmdW5jdGlvbih0LHIpe2wobyx7a2V5OnIsdmFsdWU6dH0pfSkpLGMoZSwxKTtmb3IodmFyIGksYT11KHIpLGg9dShuKSx2PTAseT0wLGQ9ITEsZz1vLmxlbmd0aDt2PGc7KWk9b1t2KytdLGR8fGkua2V5PT09YT8oZD0hMCxzKHRoaXMsaS5rZXkpKTp5Kys7Zm9yKDt5PGc7KShpPW9beSsrXSkua2V5PT09YSYmaS52YWx1ZT09PWh8fGYodGhpcyxpLmtleSxpLnZhbHVlKX0pLHtlbnVtZXJhYmxlOiEwLHVuc2FmZTohMH0pfSxmdW5jdGlvbihyLGUsbil7dmFyIG89big0NyksaT1uKDEzKSxhPW4oODgpLHU9big0MTMpLGM9VVJMU2VhcmNoUGFyYW1zLGY9aSgobj1jLnByb3RvdHlwZSkuZ2V0QWxsKSxzPWkobi5oYXMpO25ldyBjKCJhPTEiKS5oYXMoImEiLDIpJiZvKG4sImhhcyIsKGZ1bmN0aW9uKHIpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1lPDI/dDphcmd1bWVudHNbMV07aWYoZSYmbj09PXQpcmV0dXJuIHModGhpcyxyKTt2YXIgbz1mKHRoaXMscik7dShlLDEpO2Zvcih2YXIgaT1hKG4pLGM9MDtjPG8ubGVuZ3RoOylpZihvW2MrK109PT1pKXJldHVybiEwO3JldHVybiExfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LGZ1bmN0aW9uKHQscixlKXt2YXIgbj1lKDUpLG89ZSgxMyksaT1lKDg1KSxhPW8oKGU9VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSkuZm9yRWFjaCk7IW58fCJzaXplImluIGV8fGkoZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGEodGhpcywoZnVuY3Rpb24oKXt0Kyt9KSksdH0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KX1dLG4uYz1lLG4uZD1mdW5jdGlvbih0LHIsZSl7bi5vKHQscil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse2VudW1lcmFibGU6ITAsZ2V0OmV9KX0sbi5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbih0LHIpe2lmKDEmciYmKHQ9bih0KSksOCZyKXJldHVybiB0O2lmKDQmciYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIoZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KSwyJnImJiJzdHJpbmciIT10eXBlb2YgdClmb3IodmFyIG8gaW4gdCluLmQoZSxvLGZ1bmN0aW9uKHIpe3JldHVybiB0W3JdfS5iaW5kKG51bGwsbykpO3JldHVybiBlfSxuLm49ZnVuY3Rpb24odCl7dmFyIHI9dCYmdC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gdH07cmV0dXJuIG4uZChyLCJhIixyKSxyfSxuLm89ZnVuY3Rpb24odCxyKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscil9LG4ucD0iIixuKG4ucz0wKX0oKTs="}},"time_used":470,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":470,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T09:43:22.899Z","timestamp":1785145402899,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/html\r\nlast-modified: Fri, 10 Jul 2026 14:33:52 GMT\r\netag: W/\"6a5102d0-3a1bd\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"Elementor:3.17.3","description":"Elementor is a website builder platform for professionals on WordPress.","website":"https://elementor.com","common_platform_enumeration":"","icon":"Elementor.svg","categories":["Page builders","WordPress plugins"]},{"name":"jQuery Migrate:3.4.1","description":"Query Migrate is a javascript library that allows you to preserve the compatibility of your jQuery code developed for versions of jQuery older than 1.9.","website":"https://github.com/jquery/jquery-migrate","common_platform_enumeration":"","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Gravity Forms","description":"","website":"https://gravityforms.com","common_platform_enumeration":"","icon":"gravityforms.svg","categories":["WordPress plugins","Form builders"]},{"name":"WordPress:6.4.1","description":"WordPress is a free and open-source content management system written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system.","website":"https://wordpress.org","common_platform_enumeration":"cpe:2.3:a:wordpress:wordpress:*:*:*:*:*:*:*:*","icon":"WordPress.svg","categories":["CMS","Blogs"]},{"name":"MySQL","description":"MySQL is an open-source relational database management system.","website":"https://mysql.com","common_platform_enumeration":"cpe:2.3:a:mysql:mysql:*:*:*:*:*:*:*:*","icon":"MySQL.svg","categories":["Databases"]},{"name":"Bootstrap:5","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"Google Tag Manager","description":"Google Tag Manager is a tag management system (TMS) that allows you to quickly and easily update measurement codes and related code fragments collectively known as tags on your website or mobile app.","website":"https://www.google.com/tagmanager","common_platform_enumeration":"","icon":"Google Tag Manager.svg","categories":["Tag managers"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Modernizr","description":"Modernizr is a JavaScript library that detects the features available in a user's browser.","website":"https://modernizr.com","common_platform_enumeration":"","icon":"Modernizr.svg","categories":["JavaScript libraries"]},{"name":"PHP","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"ZURB Foundation","description":"Zurb Foundation is used to prototype in the browser. Allows rapid creation of websites or applications while leveraging mobile and responsive technology. The front end framework is the collection of HTML, CSS, and Javascript containing design patterns.","website":"https://foundation.zurb.com","common_platform_enumeration":"","icon":"ZURB Foundation.png","categories":["UI frameworks"]}],"data":{"size":238013,"size_decoded":39377,"mime_type":"text/html","magic":"HTML document, ASCII text, with very long lines (25686)","md5":"73c53393f7d64fcd13c1a33cfb29d575","sha1":"499d631622c94351751a9194c609951e4e5e5117","sha256":"799bcfc40a013786df6e82b2f08ae62828a3aba31b1916f6c342e341ffe07577","sha512":"a36e1ffd3c92bf7f3c074007965d6e959fa99fbb86ba0c0fc13b03de642e33bad9a495f14b2d60f18fb75410a1b50737201491d923cf39de9428f492f724503b","ssdeep":"3072:1hnCMjiVmx6syWYAIbEPO8/wGsIpSeFZU6J5IiTnZI89d/G:koOz","tlshash":"f33461b26115113b09d346e4f335af2f79a0da2eef839085a3f487ac93d6dd1ed15288","first_seen":"2026-07-27T07:14:06.773781Z","last_seen":"2026-07-27T14:04:41.065312Z","times_seen":5,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuLVVTIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKiA8IVtDREFUQVsgKi8KIHZhciBnZm9ybTtnZm9ybXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLGZ1bmN0aW9uKCl7Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLmRvbUxvYWRlZD0hMH0pLGdmb3JtPXtkb21Mb2FkZWQ6ITEsc2NyaXB0c0xvYWRlZDohMSxpbml0aWFsaXplT25Mb2FkZWQ6ZnVuY3Rpb24obyl7Z2Zvcm0uZG9tTG9hZGVkJiZnZm9ybS5zY3JpcHRzTG9hZGVkP28oKTohZ2Zvcm0uZG9tTG9hZGVkJiZnZm9ybS5zY3JpcHRzTG9hZGVkP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixvKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnZm9ybV9tYWluX3NjcmlwdHNfbG9hZGVkIixvKX0saG9va3M6e2FjdGlvbjp7fSxmaWx0ZXI6e319LGFkZEFjdGlvbjpmdW5jdGlvbihvLG4scix0KXtnZm9ybS5hZGRIb29rKCJhY3Rpb24iLG8sbixyLHQpfSxhZGRGaWx0ZXI6ZnVuY3Rpb24obyxuLHIsdCl7Z2Zvcm0uYWRkSG9vaygiZmlsdGVyIixvLG4scix0KX0sZG9BY3Rpb246ZnVuY3Rpb24obyl7Z2Zvcm0uZG9Ib29rKCJhY3Rpb24iLG8sYXJndW1lbnRzKX0sYXBwbHlGaWx0ZXJzOmZ1bmN0aW9uKG8pe3JldHVybiBnZm9ybS5kb0hvb2soImZpbHRlciIsbyxhcmd1bWVudHMpfSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24obyxuKXtnZm9ybS5yZW1vdmVIb29rKCJhY3Rpb24iLG8sbil9LHJlbW92ZUZpbHRlcjpmdW5jdGlvbihvLG4scil7Z2Zvcm0ucmVtb3ZlSG9vaygiZmlsdGVyIixvLG4scil9LGFkZEhvb2s6ZnVuY3Rpb24obyxuLHIsdCxpKXtudWxsPT1nZm9ybS5ob29rc1tvXVtuXSYmKGdmb3JtLmhvb2tzW29dW25dPVtdKTt2YXIgZT1nZm9ybS5ob29rc1tvXVtuXTtudWxsPT1pJiYoaT1uKyJfIitlLmxlbmd0aCksZ2Zvcm0uaG9va3Nbb11bbl0ucHVzaCh7dGFnOmksY2FsbGFibGU6cixwcmlvcml0eTp0PW51bGw9PXQ/MTA6dH0pfSxkb0hvb2s6ZnVuY3Rpb24obixvLHIpe3ZhciB0O2lmKHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociwxKSxudWxsIT1nZm9ybS5ob29rc1tuXVtvXSYmKChvPWdmb3JtLmhvb2tzW25dW29dKS5zb3J0KGZ1bmN0aW9uKG8sbil7cmV0dXJuIG8ucHJpb3JpdHktbi5wcmlvcml0eX0pLG8uZm9yRWFjaChmdW5jdGlvbihvKXsiZnVuY3Rpb24iIT10eXBlb2YodD1vLmNhbGxhYmxlKSYmKHQ9d2luZG93W3RdKSwiYWN0aW9uIj09bj90LmFwcGx5KG51bGwscik6clswXT10LmFwcGx5KG51bGwscil9KSksImZpbHRlciI9PW4pcmV0dXJuIHJbMF19LHJlbW92ZUhvb2s6ZnVuY3Rpb24obyxuLHQsaSl7dmFyIHI7bnVsbCE9Z2Zvcm0uaG9va3Nbb11bbl0mJihyPShyPWdmb3JtLmhvb2tzW29dW25dKS5maWx0ZXIoZnVuY3Rpb24obyxuLHIpe3JldHVybiEhKG51bGwhPWkmJmkhPW8udGFnfHxudWxsIT10JiZ0IT1vLnByaW9yaXR5KX0pLGdmb3JtLmhvb2tzW29dW25dPXIpfX0pOyAKLyogXV0+ICovCjwvc2NyaXB0Pgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8dGl0bGU+CiAgICAgICAgVG9wVGllciBQcm9wcmlldGFyeSBUcmFkaW5nLiBHZXQgRnVuZGVkIHdpdGggVG9wVGllciBUcmFkZXIgICAgPC90aXRsZT4KPGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tIj4KCjxsaW5rIHJlbD0icHJvZmlsZSIgaHJlZj0iaHR0cDovL2dtcGcub3JnL3hmbi8xMSI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iZGlqMGtwZS5jc3MiPgoKPHNjcmlwdCBkYXRhLWNmYXN5bmM9ImZhbHNlIiBkYXRhLW5vLWRlZmVyPSIxIiBkYXRhLW5vLW1pbmlmeT0iMSIgZGF0YS1uby1vcHRpbWl6ZT0iMSI+dmFyIGV3d3dfd2VicF9zdXBwb3J0ZWQ9ITE7ZnVuY3Rpb24gY2hlY2tfd2VicF9mZWF0dXJlKEEsZSl7dmFyIHc7ZT12b2lkIDAhPT1lP2U6ZnVuY3Rpb24oKXt9LGV3d3dfd2VicF9zdXBwb3J0ZWQ/ZShld3d3X3dlYnBfc3VwcG9ydGVkKTooKHc9bmV3IEltYWdlKS5vbmxvYWQ9ZnVuY3Rpb24oKXtld3d3X3dlYnBfc3VwcG9ydGVkPTA8dy53aWR0aCYmMDx3LmhlaWdodCxlJiZlKGV3d3dfd2VicF9zdXBwb3J0ZWQpfSx3Lm9uZXJyb3I9ZnVuY3Rpb24oKXtlJiZlKCExKX0sdy5zcmM9ImRhdGE6aW1hZ2Uvd2VicDtiYXNlNjQsIit7YWxwaGE6IlVrbEdSa29BQUFCWFJVSlFWbEE0V0FvQUFBQVFBQUFBQUFBQUFBQUFRVXhRU0F3QUFBQVJCeEFSL1E5RVJQOERBQUJXVURnZ0dBQUFBQlFCQUowQktnRUFBUUFBQVA0QUFBM0FBUDdtdFFBQUFBPT0ifVtBXSl9Y2hlY2tfd2VicF9mZWF0dXJlKCJhbHBoYSIpOzwvc2NyaXB0PjxzY3JpcHQgZGF0YS1jZmFzeW5jPSJmYWxzZSIgZGF0YS1uby1kZWZlcj0iMSIgZGF0YS1uby1taW5pZnk9IjEiIGRhdGEtbm8tb3B0aW1pemU9IjEiPnZhciBBcnJpdmU9ZnVuY3Rpb24oYyx3KXsidXNlIHN0cmljdCI7aWYoYy5NdXRhdGlvbk9ic2VydmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxFbGVtZW50KXt2YXIgcixhPTAsdT0ocj1IVE1MRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8SFRNTEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8SFRNTEVsZW1lbnQucHJvdG90eXBlLm1vek1hdGNoZXNTZWxlY3Rvcnx8SFRNTEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yLHttYXRjaGVzU2VsZWN0b3I6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZyLmNhbGwoZSx0KX0sYWRkTWV0aG9kOmZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1lW3RdO2VbdF09ZnVuY3Rpb24oKXtyZXR1cm4gci5sZW5ndGg9PWFyZ3VtZW50cy5sZW5ndGg/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0sY2FsbENhbGxiYWNrczpmdW5jdGlvbihlLHQpe3QmJnQub3B0aW9ucy5vbmNlT25seSYmMT09dC5maXJlZEVsZW1zLmxlbmd0aCYmKGU9W2VbMF1dKTtmb3IodmFyIHIsYT0wO3I9ZVthXTthKyspciYmci5jYWxsYmFjayYmci5jYWxsYmFjay5jYWxsKHIuZWxlbSxyLmVsZW0pO3QmJnQub3B0aW9ucy5vbmNlT25seSYmMT09dC5maXJlZEVsZW1zLmxlbmd0aCYmdC5tZS51bmJpbmRFdmVudFdpdGhTZWxlY3RvckFuZENhbGxiYWNrLmNhbGwodC50YXJnZXQsdC5zZWxlY3Rvcix0LmNhbGxiYWNrKX0sY2hlY2tDaGlsZE5vZGVzUmVjdXJzaXZlbHk6ZnVuY3Rpb24oZSx0LHIsYSl7Zm9yKHZhciBpLG49MDtpPWVbbl07bisrKXIoaSx0LGEpJiZhLnB1c2goe2NhbGxiYWNrOnQuY2FsbGJhY2ssZWxlbTppfSksMDxpLmNoaWxkTm9kZXMubGVuZ3RoJiZ1LmNoZWNrQ2hpbGROb2Rlc1JlY3Vyc2l2ZWx5KGkuY2hpbGROb2Rlcyx0LHIsYSl9LG1lcmdlQXJyYXlzOmZ1bmN0aW9uKGUsdCl7dmFyIHIsYT17fTtmb3IociBpbiBlKWUuaGFzT3duUHJvcGVydHkocikmJihhW3JdPWVbcl0pO2ZvcihyIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShyKSYmKGFbcl09dFtyXSk7cmV0dXJuIGF9LHRvRWxlbWVudHNBcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gZT12b2lkIDAhPT1lJiYoIm51bWJlciIhPXR5cGVvZiBlLmxlbmd0aHx8ZT09PWMpP1tlXTplfX0pLGU9KGwucHJvdG90eXBlLmFkZEV2ZW50PWZ1bmN0aW9uKGUsdCxyLGEpe2E9e3RhcmdldDplLHNlbGVjdG9yOnQsb3B0aW9uczpyLGNhbGxiYWNrOmEsZmlyZWRFbGVtczpbXX07cmV0dXJuIHRoaXMuX2JlZm9yZUFkZGluZyYmdGhpcy5fYmVmb3JlQWRkaW5nKGEpLHRoaXMuX2V2ZW50c0J1Y2tldC5wdXNoKGEpLGF9LGwucHJvdG90eXBlLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPXRoaXMuX2V2ZW50c0J1Y2tldC5sZW5ndGgtMTt0PXRoaXMuX2V2ZW50c0J1Y2tldFtyXTtyLS0pZSh0KSYmKHRoaXMuX2JlZm9yZVJlbW92aW5nJiZ0aGlzLl9iZWZvcmVSZW1vdmluZyh0KSwodD10aGlzLl9ldmVudHNCdWNrZXQuc3BsaWNlKHIsMSkpJiZ0Lmxlbmd0aCYmKHRbMF0uY2FsbGJhY2s9bnVsbCkpfSxsLnByb3RvdHlwZS5iZWZvcmVBZGRpbmc9ZnVuY3Rpb24oZSl7dGhpcy5fYmVmb3JlQWRkaW5nPWV9LGwucHJvdG90eXBlLmJlZm9yZVJlbW92aW5nPWZ1bmN0aW9uKGUpe3RoaXMuX2JlZm9yZVJlbW92aW5nPWV9LGwpLHQ9ZnVuY3Rpb24oaSxuKXt2YXIgbz1uZXcgZSxsPXRoaXMscz17ZmlyZU9uQXR0cmlidXRlc01vZGlmaWNhdGlvbjohMX07cmV0dXJuIG8uYmVmb3JlQWRkaW5nKGZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0O2UhPT1jLmRvY3VtZW50JiZlIT09Y3x8KGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXSk7dmFyIHI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSl7bi5jYWxsKHRoaXMsZSx0KX0pLGE9aSh0Lm9wdGlvbnMpO3Iub2JzZXJ2ZShlLGEpLHQub2JzZXJ2ZXI9cix0Lm1lPWx9KSxvLmJlZm9yZVJlbW92aW5nKGZ1bmN0aW9uKGUpe2Uub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfSksdGhpcy5iaW5kRXZlbnQ9ZnVuY3Rpb24oZSx0LHIpe3Q9dS5tZXJnZUFycmF5cyhzLHQpO2Zvcih2YXIgYT11LnRvRWxlbWVudHNBcnJheSh0aGlzKSxpPTA7aTxhLmxlbmd0aDtpKyspby5hZGRFdmVudChhW2ldLGUsdCxyKX0sdGhpcy51bmJpbmRFdmVudD1mdW5jdGlvbigpe3ZhciByPXUudG9FbGVtZW50c0FycmF5KHRoaXMpO28ucmVtb3ZlRXZlbnQoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDt0KyspaWYodGhpcz09PXd8fGUudGFyZ2V0PT09clt0XSlyZXR1cm4hMDtyZXR1cm4hMX0pfSx0aGlzLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yT3JDYWxsYmFjaz1mdW5jdGlvbihyKXt2YXIgYT11LnRvRWxlbWVudHNBcnJheSh0aGlzKSxpPXIsZT0iZnVuY3Rpb24iPT10eXBlb2Ygcj9mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGEubGVuZ3RoO3QrKylpZigodGhpcz09PXd8fGUudGFyZ2V0PT09YVt0XSkmJmUuY2FsbGJhY2s9PT1pKXJldHVybiEwO3JldHVybiExfTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGEubGVuZ3RoO3QrKylpZigodGhpcz09PXd8fGUudGFyZ2V0PT09YVt0XSkmJmUuc2VsZWN0b3I9PT1yKXJldHVybiEwO3JldHVybiExfTtvLnJlbW92ZUV2ZW50KGUpfSx0aGlzLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yQW5kQ2FsbGJhY2s9ZnVuY3Rpb24ocixhKXt2YXIgaT11LnRvRWxlbWVudHNBcnJheSh0aGlzKTtvLnJlbW92ZUV2ZW50KGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8aS5sZW5ndGg7dCsrKWlmKCh0aGlzPT09d3x8ZS50YXJnZXQ9PT1pW3RdKSYmZS5zZWxlY3Rvcj09PXImJmUuY2FsbGJhY2s9PT1hKXJldHVybiEwO3JldHVybiExfSl9LHRoaXN9LGk9bmV3IGZ1bmN0aW9uKCl7dmFyIHM9e2ZpcmVPbkF0dHJpYnV0ZXNNb2RpZmljYXRpb246ITEsb25jZU9ubHk6ITEsZXhpc3Rpbmc6ITF9O2Z1bmN0aW9uIG4oZSx0LHIpe3JldHVybiEoIXUubWF0Y2hlc1NlbGVjdG9yKGUsdC5zZWxlY3Rvcil8fChlLl9pZD09PXcmJihlLl9pZD1hKyspLC0xIT10LmZpcmVkRWxlbXMuaW5kZXhPZihlLl9pZCkpKSYmKHQuZmlyZWRFbGVtcy5wdXNoKGUuX2lkKSwhMCl9dmFyIGM9KGk9bmV3IHQoZnVuY3Rpb24oZSl7dmFyIHQ9e2F0dHJpYnV0ZXM6ITEsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9O3JldHVybiBlLmZpcmVPbkF0dHJpYnV0ZXNNb2RpZmljYXRpb24mJih0LmF0dHJpYnV0ZXM9ITApLHR9LGZ1bmN0aW9uKGUsaSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWRkZWROb2RlcyxyPWUudGFyZ2V0LGE9W107bnVsbCE9PXQmJjA8dC5sZW5ndGg/dS5jaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseSh0LGksbixhKToiYXR0cmlidXRlcyI9PT1lLnR5cGUmJm4ocixpKSYmYS5wdXNoKHtjYWxsYmFjazppLmNhbGxiYWNrLGVsZW06cn0pLHUuY2FsbENhbGxiYWNrcyhhLGkpfSl9KSkuYmluZEV2ZW50O3JldHVybiBpLmJpbmRFdmVudD1mdW5jdGlvbihlLHQscil7dD12b2lkIDA9PT1yPyhyPXQscyk6dS5tZXJnZUFycmF5cyhzLHQpO3ZhciBhPXUudG9FbGVtZW50c0FycmF5KHRoaXMpO2lmKHQuZXhpc3Rpbmcpe2Zvcih2YXIgaT1bXSxuPTA7bjxhLmxlbmd0aDtuKyspZm9yKHZhciBvPWFbbl0ucXVlcnlTZWxlY3RvckFsbChlKSxsPTA7bDxvLmxlbmd0aDtsKyspaS5wdXNoKHtjYWxsYmFjazpyLGVsZW06b1tsXX0pO2lmKHQub25jZU9ubHkmJmkubGVuZ3RoKXJldHVybiByLmNhbGwoaVswXS5lbGVtLGlbMF0uZWxlbSk7c2V0VGltZW91dCh1LmNhbGxDYWxsYmFja3MsMSxpKX1jLmNhbGwodGhpcyxlLHQscil9LGl9LG89bmV3IGZ1bmN0aW9uKCl7dmFyIGE9e307ZnVuY3Rpb24gaShlLHQpe3JldHVybiB1Lm1hdGNoZXNTZWxlY3RvcihlLHQuc2VsZWN0b3IpfXZhciBuPShvPW5ldyB0KGZ1bmN0aW9uKCl7cmV0dXJue2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfX0sZnVuY3Rpb24oZSxyKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZW1vdmVkTm9kZXMsZT1bXTtudWxsIT09dCYmMDx0Lmxlbmd0aCYmdS5jaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseSh0LHIsaSxlKSx1LmNhbGxDYWxsYmFja3MoZSxyKX0pfSkpLmJpbmRFdmVudDtyZXR1cm4gby5iaW5kRXZlbnQ9ZnVuY3Rpb24oZSx0LHIpe3Q9dm9pZCAwPT09cj8ocj10LGEpOnUubWVyZ2VBcnJheXMoYSx0KSxuLmNhbGwodGhpcyxlLHQscil9LG99O2QoSFRNTEVsZW1lbnQucHJvdG90eXBlKSxkKE5vZGVMaXN0LnByb3RvdHlwZSksZChIVE1MQ29sbGVjdGlvbi5wcm90b3R5cGUpLGQoSFRNTERvY3VtZW50LnByb3RvdHlwZSksZChXaW5kb3cucHJvdG90eXBlKTt2YXIgbj17fTtyZXR1cm4gcyhpLG4sInVuYmluZEFsbEFycml2ZSIpLHMobyxuLCJ1bmJpbmRBbGxMZWF2ZSIpLG59ZnVuY3Rpb24gbCgpe3RoaXMuX2V2ZW50c0J1Y2tldD1bXSx0aGlzLl9iZWZvcmVBZGRpbmc9bnVsbCx0aGlzLl9iZWZvcmVSZW1vdmluZz1udWxsfWZ1bmN0aW9uIHMoZSx0LHIpe3UuYWRkTWV0aG9kKHQscixlLnVuYmluZEV2ZW50KSx1LmFkZE1ldGhvZCh0LHIsZS51bmJpbmRFdmVudFdpdGhTZWxlY3Rvck9yQ2FsbGJhY2spLHUuYWRkTWV0aG9kKHQscixlLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yQW5kQ2FsbGJhY2spfWZ1bmN0aW9uIGQoZSl7ZS5hcnJpdmU9aS5iaW5kRXZlbnQscyhpLGUsInVuYmluZEFycml2ZSIpLGUubGVhdmU9by5iaW5kRXZlbnQscyhvLGUsInVuYmluZExlYXZlIil9fSh3aW5kb3csdm9pZCAwKSxld3d3X3dlYnBfc3VwcG9ydGVkPSExO2Z1bmN0aW9uIGNoZWNrX3dlYnBfZmVhdHVyZShlLHQpe3ZhciByO2V3d3dfd2VicF9zdXBwb3J0ZWQ/dChld3d3X3dlYnBfc3VwcG9ydGVkKTooKHI9bmV3IEltYWdlKS5vbmxvYWQ9ZnVuY3Rpb24oKXtld3d3X3dlYnBfc3VwcG9ydGVkPTA8ci53aWR0aCYmMDxyLmhlaWdodCx0KGV3d3dfd2VicF9zdXBwb3J0ZWQpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KCExKX0sci5zcmM9ImRhdGE6aW1hZ2Uvd2VicDtiYXNlNjQsIit7YWxwaGE6IlVrbEdSa29BQUFCWFJVSlFWbEE0V0FvQUFBQVFBQUFBQUFBQUFBQUFRVXhRU0F3QUFBQVJCeEFSL1E5RVJQOERBQUJXVURnZ0dBQUFBQlFCQUowQktnRUFBUUFBQVA0QUFBM0FBUDdtdFFBQUFBPT0iLGFuaW1hdGlvbjoiVWtsR1JsSUFBQUJYUlVKUVZsQTRXQW9BQUFBU0FBQUFBQUFBQUFBQVFVNUpUUVlBQUFELy8vLy9BQUJCVGsxR0pnQUFBQUFBQUFBQUFBQUFBQUFBQUdRQUFBQldVRGhNRFFBQUFDOEFBQUFRQnhBUkVZaUkvZ2NBIn1bZV0pfWZ1bmN0aW9uIGV3d3dMb2FkSW1hZ2VzKGUpe2lmKGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYmF0Y2gtaW1hZ2UgaW1nLCAuaW1hZ2Utd3JhcHBlciBhLCAubmdnLXByby1tYXNvbnJ5LWl0ZW0gYSwgLm5nZy1nYWxsZXJpYS1vZmZzY3JlZW4tc2VvLXdyYXBwZXIgYSIpLHI9MCxhPXQubGVuZ3RoO3I8YTtyKyspZXd3d0F0dHIodFtyXSwiZGF0YS1zcmMiLHRbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAiKSksZXd3d0F0dHIodFtyXSwiZGF0YS10aHVtYm5haWwiLHRbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAtdGh1bWJuYWlsIikpO2Zvcih2YXIgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucmV2X3NsaWRlciB1bCBsaSIpLHI9MCxhPWkubGVuZ3RoO3I8YTtyKyspe2V3d3dBdHRyKGlbcl0sImRhdGEtdGh1bWIiLGlbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAtdGh1bWIiKSk7Zm9yKHZhciBuPTE7bjwxMTspZXd3d0F0dHIoaVtyXSwiZGF0YS1wYXJhbSIrbixpW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS13ZWJwLXBhcmFtIituKSksbisrfWZvcihyPTAsYT0oaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucmV2X3NsaWRlciBpbWciKSkubGVuZ3RoO3I8YTtyKyspZXd3d0F0dHIoaVtyXSwiZGF0YS1sYXp5bG9hZCIsaVtyXS5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicC1sYXp5bG9hZCIpKTtmb3IodmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2Lndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2UiKSxyPTAsYT1vLmxlbmd0aDtyPGE7cisrKWV3d3dBdHRyKG9bcl0sImRhdGEtdGh1bWIiLG9bcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAtdGh1bWIiKSl9Zm9yKHZhciBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInZpZGVvIikscj0wLGE9bC5sZW5ndGg7cjxhO3IrKylld3d3QXR0cihsW3JdLCJwb3N0ZXIiLGU/bFtyXS5nZXRBdHRyaWJ1dGUoImRhdGEtcG9zdGVyLXdlYnAiKTpsW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1wb3N0ZXItaW1hZ2UiKSk7Zm9yKHZhciBzLGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaW1nLmV3d3dfd2VicF9sYXp5X2xvYWQiKSxyPTAsYT1jLmxlbmd0aDtyPGE7cisrKWUmJihld3d3QXR0cihjW3JdLCJkYXRhLWxhenktc3Jjc2V0IixjW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1sYXp5LXNyY3NldC13ZWJwIikpLGV3d3dBdHRyKGNbcl0sImRhdGEtc3Jjc2V0IixjW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmNzZXQtd2VicCIpKSxld3d3QXR0cihjW3JdLCJkYXRhLWxhenktc3JjIixjW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1sYXp5LXNyYy13ZWJwIikpLGV3d3dBdHRyKGNbcl0sImRhdGEtc3JjIixjW3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMtd2VicCIpKSxld3d3QXR0cihjW3JdLCJkYXRhLW9yaWctZmlsZSIsY1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicC1vcmlnLWZpbGUiKSksZXd3d0F0dHIoY1tyXSwiZGF0YS1tZWRpdW0tZmlsZSIsY1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicC1tZWRpdW0tZmlsZSIpKSxld3d3QXR0cihjW3JdLCJkYXRhLWxhcmdlLWZpbGUiLGNbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAtbGFyZ2UtZmlsZSIpKSxudWxsIT0ocz1jW3JdLmdldEF0dHJpYnV0ZSgic3Jjc2V0IikpJiYhMSE9PXMmJnMuaW5jbHVkZXMoIlIwbEdPRCIpJiZld3d3QXR0cihjW3JdLCJzcmMiLGNbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLWxhenktc3JjLXdlYnAiKSkpLGNbcl0uY2xhc3NOYW1lPWNbcl0uY2xhc3NOYW1lLnJlcGxhY2UoL1xiZXd3d193ZWJwX2xhenlfbG9hZFxiLywiIik7Zm9yKHZhciB3PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ld3d3X3dlYnAiKSxyPTAsYT13Lmxlbmd0aDtyPGE7cisrKWU/KGV3d3dBdHRyKHdbcl0sInNyY3NldCIsd1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0LXdlYnAiKSksZXd3d0F0dHIod1tyXSwic3JjIix3W3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMtd2VicCIpKSxld3d3QXR0cih3W3JdLCJkYXRhLW9yaWctZmlsZSIsd1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicC1vcmlnLWZpbGUiKSksZXd3d0F0dHIod1tyXSwiZGF0YS1tZWRpdW0tZmlsZSIsd1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicC1tZWRpdW0tZmlsZSIpKSxld3d3QXR0cih3W3JdLCJkYXRhLWxhcmdlLWZpbGUiLHdbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXdlYnAtbGFyZ2UtZmlsZSIpKSxld3d3QXR0cih3W3JdLCJkYXRhLWxhcmdlX2ltYWdlIix3W3JdLmdldEF0dHJpYnV0ZSgiZGF0YS13ZWJwLWxhcmdlX2ltYWdlIikpLGV3d3dBdHRyKHdbcl0sImRhdGEtc3JjIix3W3JdLmdldEF0dHJpYnV0ZSgiZGF0YS13ZWJwLXNyYyIpKSk6KGV3d3dBdHRyKHdbcl0sInNyY3NldCIsd1tyXS5nZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0LWltZyIpKSxld3d3QXR0cih3W3JdLCJzcmMiLHdbcl0uZ2V0QXR0cmlidXRlKCJkYXRhLXNyYy1pbWciKSkpLHdbcl0uY2xhc3NOYW1lPXdbcl0uY2xhc3NOYW1lLnJlcGxhY2UoL1xiZXd3d193ZWJwXGIvLCJld3d3X3dlYnBfbG9hZGVkIik7d2luZG93LmpRdWVyeSYmalF1ZXJ5LmZuLmlzb3RvcGUmJmpRdWVyeS5mbi5pbWFnZXNMb2FkZWQmJihqUXVlcnkoIi5mdXNpb24tcG9zdHMtY29udGFpbmVyLWluZmluaXRlIikuaW1hZ2VzTG9hZGVkKGZ1bmN0aW9uKCl7alF1ZXJ5KCIuZnVzaW9uLXBvc3RzLWNvbnRhaW5lci1pbmZpbml0ZSIpLmhhc0NsYXNzKCJpc290b3BlIikmJmpRdWVyeSgiLmZ1c2lvbi1wb3N0cy1jb250YWluZXItaW5maW5pdGUiKS5pc290b3BlKCl9KSxqUXVlcnkoIi5mdXNpb24tcG9ydGZvbGlvOm5vdCguZnVzaW9uLXJlY2VudC13b3JrcykgLmZ1c2lvbi1wb3J0Zm9saW8td3JhcHBlciIpLmltYWdlc0xvYWRlZChmdW5jdGlvbigpe2pRdWVyeSgiLmZ1c2lvbi1wb3J0Zm9saW86bm90KC5mdXNpb24tcmVjZW50LXdvcmtzKSAuZnVzaW9uLXBvcnRmb2xpby13cmFwcGVyIikuaXNvdG9wZSgpfSkpfWZ1bmN0aW9uIGV3d3dXZWJQSW5pdChlKXtld3d3TG9hZEltYWdlcyhlKSxld3d3TmdnTG9hZEdhbGxlcmllcyhlKSxkb2N1bWVudC5hcnJpdmUoIi5ld3d3X3dlYnAiLGZ1bmN0aW9uKCl7ZXd3d0xvYWRJbWFnZXMoZSl9KSxkb2N1bWVudC5hcnJpdmUoIi5ld3d3X3dlYnBfbGF6eV9sb2FkIixmdW5jdGlvbigpe2V3d3dMb2FkSW1hZ2VzKGUpfSksZG9jdW1lbnQuYXJyaXZlKCJ2aWRlb3MiLGZ1bmN0aW9uKCl7ZXd3d0xvYWRJbWFnZXMoZSl9KSwibG9hZGluZyI9PWRvY3VtZW50LnJlYWR5U3RhdGU/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZXd3d0pTT05QYXJzZXJJbml0KTooInVuZGVmaW5lZCIhPXR5cGVvZiBnYWxsZXJpZXMmJmV3d3dOZ2dQYXJzZUdhbGxlcmllcyhlKSxld3d3V29vUGFyc2VWYXJpYXRpb25zKGUpKX1mdW5jdGlvbiBld3d3QXR0cihlLHQscil7bnVsbCE9ciYmITEhPT1yJiZlLnNldEF0dHJpYnV0ZSh0LHIpfWZ1bmN0aW9uIGV3d3dKU09OUGFyc2VySW5pdCgpeyJ1bmRlZmluZWQiIT10eXBlb2YgZ2FsbGVyaWVzJiZjaGVja193ZWJwX2ZlYXR1cmUoImFscGhhIixld3d3TmdnUGFyc2VHYWxsZXJpZXMpLGNoZWNrX3dlYnBfZmVhdHVyZSgiYWxwaGEiLGV3d3dXb29QYXJzZVZhcmlhdGlvbnMpfWZ1bmN0aW9uIGV3d3dXb29QYXJzZVZhcmlhdGlvbnMoZSl7aWYoZSlmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZm9ybS52YXJpYXRpb25zX2Zvcm0iKSxyPTAsYT10Lmxlbmd0aDtyPGE7cisrKXt2YXIgaT10W3JdLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9kdWN0X3ZhcmlhdGlvbnMiKSxuPSExO3RyeXtmb3IodmFyIG8gaW4gaT1KU09OLnBhcnNlKGkpKXZvaWQgMCE9PWlbb10mJnZvaWQgMCE9PWlbb10uaW1hZ2UmJih2b2lkIDAhPT1pW29dLmltYWdlLnNyY193ZWJwJiYoaVtvXS5pbWFnZS5zcmM9aVtvXS5pbWFnZS5zcmNfd2VicCxuPSEwKSx2b2lkIDAhPT1pW29dLmltYWdlLnNyY3NldF93ZWJwJiYoaVtvXS5pbWFnZS5zcmNzZXQ9aVtvXS5pbWFnZS5zcmNzZXRfd2VicCxuPSEwKSx2b2lkIDAhPT1pW29dLmltYWdlLmZ1bGxfc3JjX3dlYnAmJihpW29dLmltYWdlLmZ1bGxfc3JjPWlbb10uaW1hZ2UuZnVsbF9zcmNfd2VicCxuPSEwKSx2b2lkIDAhPT1pW29dLmltYWdlLmdhbGxlcnlfdGh1bWJuYWlsX3NyY193ZWJwJiYoaVtvXS5pbWFnZS5nYWxsZXJ5X3RodW1ibmFpbF9zcmM9aVtvXS5pbWFnZS5nYWxsZXJ5X3RodW1ibmFpbF9zcmNfd2VicCxuPSEwKSx2b2lkIDAhPT1pW29dLmltYWdlLnRodW1iX3NyY193ZWJwJiYoaVtvXS5pbWFnZS50aHVtYl9zcmM9aVtvXS5pbWFnZS50aHVtYl9zcmNfd2VicCxuPSEwKSk7biYmZXd3d0F0dHIodFtyXSwiZGF0YS1wcm9kdWN0X3ZhcmlhdGlvbnMiLEpTT04uc3RyaW5naWZ5KGkpKX1jYXRjaChlKXt9fX1mdW5jdGlvbiBld3d3TmdnUGFyc2VHYWxsZXJpZXMoZSl7aWYoZSlmb3IodmFyIHQgaW4gZ2FsbGVyaWVzKXt2YXIgcj1nYWxsZXJpZXNbdF07Z2FsbGVyaWVzW3RdLmltYWdlc19saXN0PWV3d3dOZ2dQYXJzZUltYWdlTGlzdChyLmltYWdlc19saXN0KX19ZnVuY3Rpb24gZXd3d05nZ0xvYWRHYWxsZXJpZXMoZSl7ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibmdnLmdhbGxlcmlhLnRoZW1lYWRkZWQiLGZ1bmN0aW9uKGUsdCl7d2luZG93Lm5nZ19nYWxsZXJpYS5fY3JlYXRlX2JhY2t1cD13aW5kb3cubmdnX2dhbGxlcmlhLmNyZWF0ZSx3aW5kb3cubmdnX2dhbGxlcmlhLmNyZWF0ZT1mdW5jdGlvbihlLHQpe3ZhciByPSQoZSkuZGF0YSgiaWQiKTtyZXR1cm4gZ2FsbGVyaWVzWyJnYWxsZXJ5XyIrcl0uaW1hZ2VzX2xpc3Q9ZXd3d05nZ1BhcnNlSW1hZ2VMaXN0KGdhbGxlcmllc1siZ2FsbGVyeV8iK3JdLmltYWdlc19saXN0KSx3aW5kb3cubmdnX2dhbGxlcmlhLl9jcmVhdGVfYmFja3VwKGUsdCl9fSl9ZnVuY3Rpb24gZXd3d05nZ1BhcnNlSW1hZ2VMaXN0KGUpe2Zvcih2YXIgdCBpbiBlKXt2YXIgcj1lW3RdO2lmKHZvaWQgMCE9PXJbImltYWdlLXdlYnAiXSYmKGVbdF0uaW1hZ2U9clsiaW1hZ2Utd2VicCJdLGRlbGV0ZSBlW3RdWyJpbWFnZS13ZWJwIl0pLHZvaWQgMCE9PXJbInRodW1iLXdlYnAiXSYmKGVbdF0udGh1bWI9clsidGh1bWItd2VicCJdLGRlbGV0ZSBlW3RdWyJ0aHVtYi13ZWJwIl0pLHZvaWQgMCE9PXIuZnVsbF9pbWFnZV93ZWJwJiYoZVt0XS5mdWxsX2ltYWdlPXIuZnVsbF9pbWFnZV93ZWJwLGRlbGV0ZSBlW3RdLmZ1bGxfaW1hZ2Vfd2VicCksdm9pZCAwIT09ci5zcmNzZXRzKWZvcih2YXIgYSBpbiByLnNyY3NldHMpbmdnU3Jjc2V0PXIuc3Jjc2V0c1thXSx2b2lkIDAhPT1yLnNyY3NldHNbYSsiLXdlYnAiXSYmKGVbdF0uc3Jjc2V0c1thXT1yLnNyY3NldHNbYSsiLXdlYnAiXSxkZWxldGUgZVt0XS5zcmNzZXRzW2ErIi13ZWJwIl0pO2lmKHZvaWQgMCE9PXIuZnVsbF9zcmNzZXRzKWZvcih2YXIgaSBpbiByLmZ1bGxfc3Jjc2V0cyluZ2dGU3Jjc2V0PXIuZnVsbF9zcmNzZXRzW2ldLHZvaWQgMCE9PXIuZnVsbF9zcmNzZXRzW2krIi13ZWJwIl0mJihlW3RdLmZ1bGxfc3Jjc2V0c1tpXT1yLmZ1bGxfc3Jjc2V0c1tpKyItd2VicCJdLGRlbGV0ZSBlW3RdLmZ1bGxfc3Jjc2V0c1tpKyItd2VicCJdKX1yZXR1cm4gZX1jaGVja193ZWJwX2ZlYXR1cmUoImFscGhhIixld3d3V2ViUEluaXQpOzwvc2NyaXB0PjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdywgbWF4LWltYWdlLXByZXZpZXc6bGFyZ2UsIG1heC1zbmlwcGV0Oi0xLCBtYXgtdmlkZW8tcHJldmlldzotMSI+CjxtZXRhIG5hbWU9InVyaS10cmFuc2xhdGlvbiIgY29udGVudD0ib24iPgoKPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9ImF1dG90cmFkZXJzIGNhcGl0YWwgaXMgYW4gZXZhbHVhdGlvbiBjb21wYW55IHRoYXQgaXMgc2VhcmNoaW5nIGZvciBleHBlcmllbmNlZCB0cmFkZXJzLiBHZXQgRnVuZGVkIGFuZCBzdGFydCB5b3VyIGpvdXJuZXkgdG9kYXkhIj4KPGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9ImluZGV4Lmh0bSI+CjxtZXRhIHByb3BlcnR5PSJvZzpsb2NhbGUiIGNvbnRlbnQ9ImVuX1VTIj4KPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9ImF1dG9saXRlZmluYW5jZSBQcm9wcmlldGFyeSBUcmFkaW5nLiBHZXQgRnVuZGVkIHdpdGggVG9wVGllciBUcmFkZXIiPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9ImF1dG90cmFkZXJzIGNhcGl0YWwgaXMgYW4gZXZhbHVhdGlvbiBjb21wYW55IHRoYXQgaXMgc2VhcmNoaW5nIGZvciBleHBlcmllbmNlZCB0cmFkZXJzLiBHZXQgRnVuZGVkIGFuZCBzdGFydCB5b3VyIGpvdXJuZXkgdG9kYXkhIj4KPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iIj4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iYXV0b3RyYWRlcnMgY2FwaXRhbCAtIEZ1bmRpbmcgRm9yIERyaXZlbiBUcmFkZXJzIj4KPG1ldGEgcHJvcGVydHk9ImFydGljbGU6cHVibGlzaGVyIiBjb250ZW50PSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vVG9wVGllci5UcmFkZXIiPgo8bWV0YSBwcm9wZXJ0eT0iYXJ0aWNsZTptb2RpZmllZF90aW1lIiBjb250ZW50PSIyMDIzLTEwLTA2VDE0OjU5OjU2KzAwOjAwIj4KPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJhZmZpbGlhdGVmeC5qcGciPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjEyMDAiPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6aGVpZ2h0IiBjb250ZW50PSI2MzAiPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6dHlwZSIgY29udGVudD0iaW1hZ2UvanBlZyI+CjxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSI+CjxtZXRhIG5hbWU9InR3aXR0ZXI6c2l0ZSIgY29udGVudD0iQF90b3B0aWVydHJhZGVyIj4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIiBjbGFzcz0ieW9hc3Qtc2NoZW1hLWdyYXBoIj57IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQGdyYXBoIjpbeyJAdHlwZSI6IldlYlBhZ2UiLCJAaWQiOiIiLCJ1cmwiOiIiLCJuYW1lIjoiVG9wVGllciBQcm9wcmlldGFyeSBUcmFkaW5nLiBHZXQgRnVuZGVkIHdpdGggYXV0b3RyYWRlcnMgY2FwaXRhbCIsImlzUGFydE9mIjp7IkBpZCI6IiN3ZWJzaXRlIn0sImFib3V0Ijp7IkBpZCI6IiNvcmdhbml6YXRpb24ifSwiZGF0ZVB1Ymxpc2hlZCI6IjIwMjItMDktMTVUMTg6Mzk6MzArMDA6MDAiLCJkYXRlTW9kaWZpZWQiOiIyMDIzLTEwLTA2VDE0OjU5OjU2KzAwOjAwIiwiZGVzY3JpcHRpb24iOiJUb3BUaWVyIFRyYWRlciBpcyBhbiBldmFsdWF0aW9uIGNvbXBhbnkgdGhhdCBpcyBzZWFyY2hpbmcgZm9yIGV4cGVyaWVuY2VkIHRyYWRlcnMuIEdldCBGdW5kZWQgYW5kIHN0YXJ0IHlvdXIgam91cm5leSB0b2RheSEiLCJicmVhZGNydW1iIjp7IkBpZCI6IiNicmVhZGNydW1iIn0sImluTGFuZ3VhZ2UiOiJlbi1VUyIsInBvdGVudGlhbEFjdGlvbiI6W3siQHR5cGUiOiJSZWFkQWN0aW9uIiwidGFyZ2V0IjpbIiJdfV19LHsiQHR5cGUiOiJCcmVhZGNydW1iTGlzdCIsIkBpZCI6IiNicmVhZGNydW1iIiwiaXRlbUxpc3RFbGVtZW50IjpbeyJAdHlwZSI6Ikxpc3RJdGVtIiwicG9zaXRpb24iOjEsIm5hbWUiOiJIb21lIn1dfSx7IkB0eXBlIjoiV2ViU2l0ZSIsIkBpZCI6IiN3ZWJzaXRlIiwidXJsIjoiIiwibmFtZSI6IlRvcHRpZXIgVHJhZGVyIC0gRnVuZGluZyBGb3IgRHJpdmVuIFRyYWRlcnMiLCJkZXNjcmlwdGlvbiI6IlByb3ZpZGluZyBUb3BUaWVyIGZ1bmRpbmcgc29sdXRpb25zIHRvIGNsaWVudHMgc2luY2UgMjAyMSIsInB1Ymxpc2hlciI6eyJAaWQiOiIjb3JnYW5pemF0aW9uIn0sInBvdGVudGlhbEFjdGlvbiI6W3siQHR5cGUiOiJTZWFyY2hBY3Rpb24iLCJ0YXJnZXQiOnsiQHR5cGUiOiJFbnRyeVBvaW50IiwidXJsVGVtcGxhdGUiOiI/cz17c2VhcmNoX3Rlcm1fc3RyaW5nfSJ9LCJxdWVyeS1pbnB1dCI6InJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIn1dLCJpbkxhbmd1YWdlIjoiZW4tVVMifSx7IkB0eXBlIjoiT3JnYW5pemF0aW9uIiwiQGlkIjoiI29yZ2FuaXphdGlvbiIsIm5hbWUiOiJUb3B0aWVyIFRyYWRlciAtIEZ1bmRpbmcgRm9yIERyaXZlbiBUcmFkZXJzIiwidXJsIjoiIiwibG9nbyI6eyJAdHlwZSI6IkltYWdlT2JqZWN0IiwiaW5MYW5ndWFnZSI6ImVuLVVTIiwiQGlkIjoiIy9zY2hlbWEvbG9nby9pbWFnZS8iLCJ1cmwiOiJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS90b3B0aWVydHJhZGVyLmpwZyIsImNvbnRlbnRVcmwiOiJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS90b3B0aWVydHJhZGVyLmpwZyIsIndpZHRoIjoxMjAwLCJoZWlnaHQiOjYzMCwiY2FwdGlvbiI6IlRvcHRpZXIgVHJhZGVyIC0gRnVuZGluZyBGb3IgRHJpdmVuIFRyYWRlcnMifSwiaW1hZ2UiOnsiQGlkIjoiIy9zY2hlbWEvbG9nby9pbWFnZS8ifSwic2FtZUFzIjpbImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9Ub3BUaWVyLlRyYWRlciIsImh0dHBzOi8vdHdpdHRlci5jb20vX3RvcHRpZXJ0cmFkZXIiLCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3RvcHRpZXIudHJhZGVyLyIsImh0dHBzOi8vZGlzY29yZC5jb20vaW52aXRlL1dyQzJ4ZFpabmciLCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDMW91eWk1aFphbzk1Q01wb1ZNeFFkUSIsImh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQHRvcHRpZXIudHJhZGVyIiwiaHR0cHM6Ly90Lm1lL2pvaW5jaGF0X1RvcFRpZXJUcmFkZXIiXX1dfTwvc2NyaXB0PgoKPGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Ii8vd2lkZ2V0LnRydXN0cGlsb3QuY29tIj4KPGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0id3AtYmxvY2stbGlicmFyeS1jc3MiIGhyZWY9IndwLWluY2x1ZGVzL2Nzcy9kaXN0L2Jsb2NrLWxpYnJhcnkvc3R5bGUubWluLmNzcz92ZXI9Ni40LjEiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSd3cC1ibG9jay1saWJyYXJ5LWNzcycgaHJlZj0nd3AtaW5jbHVkZXMvY3NzL2Rpc3QvYmxvY2stbGlicmFyeS9zdHlsZS5taW4uY3NzP3Zlcj02LjQuMScgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnPgo8L25vc2NyaXB0PjxzdHlsZSBpZD0ic2FmZS1zdmctc3ZnLWljb24tc3R5bGUtaW5saW5lLWNzcyIgdHlwZT0idGV4dC9jc3MiPgouc2FmZS1zdmctY292ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnNhZmUtc3ZnLWNvdmVyIC5zYWZlLXN2Zy1pbnNpZGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCV9LnNhZmUtc3ZnLWNvdmVyIHN2Z3toZWlnaHQ6MTAwJTttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0KCjwvc3R5bGU+CjxzdHlsZSBpZD0iY2xhc3NpYy10aGVtZS1zdHlsZXMtaW5saW5lLWNzcyIgdHlwZT0idGV4dC9jc3MiPgovKiEgVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkICovCi53cC1ibG9jay1idXR0b25fX2xpbmt7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMjM3M2M7Ym9yZGVyLXJhZGl1czo5OTk5cHg7Ym94LXNoYWRvdzpub25lO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6Y2FsYyguNjY3ZW0gKyAycHgpIGNhbGMoMS4zMzNlbSArIDJweCk7Zm9udC1zaXplOjEuMTI1ZW19LndwLWJsb2NrLWZpbGVfX2J1dHRvbntiYWNrZ3JvdW5kOiMzMjM3M2M7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0KPC9zdHlsZT4KPGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZXhhZC1zbGljay1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9leGNsdXNpdmUtYWRkb25zLWZvci1lbGVtZW50b3IvYXNzZXRzL3ZlbmRvci9jc3Mvc2xpY2subWluLmNzcz92ZXI9Ni40LjEiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdleGFkLXNsaWNrLWNzcycgaHJlZj0nd3AtY29udGVudC9wbHVnaW5zL2V4Y2x1c2l2ZS1hZGRvbnMtZm9yLWVsZW1lbnRvci9hc3NldHMvdmVuZG9yL2Nzcy9zbGljay5taW4uY3NzP3Zlcj02LjQuMScgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnPgo8L25vc2NyaXB0PjxsaW5rIHJlbD0icHJlbG9hZCIgaWQ9ImV4YWQtc2xpY2stdGhlbWUtY3NzIiBocmVmPSJ3cC1jb250ZW50L3BsdWdpbnMvZXhjbHVzaXZlLWFkZG9ucy1mb3ItZWxlbWVudG9yL2Fzc2V0cy92ZW5kb3IvY3NzL3NsaWNrLXRoZW1lLm1pbi5jc3M/dmVyPTYuNC4xIiBhcz0ic3R5bGUiIG9ubG9hZD0idGhpcy5vbmxvYWQ9bnVsbDt0aGlzLnJlbD0nc3R5bGVzaGVldCciPgo8bm9zY3JpcHQ+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nZXhhZC1zbGljay10aGVtZS1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9leGNsdXNpdmUtYWRkb25zLWZvci1lbGVtZW50b3IvYXNzZXRzL3ZlbmRvci9jc3Mvc2xpY2stdGhlbWUubWluLmNzcz92ZXI9Ni40LjEnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJleGFkLWltYWdlLWhvdmVyLWNzcyIgaHJlZj0id3AtY29udGVudC9wbHVnaW5zL2V4Y2x1c2l2ZS1hZGRvbnMtZm9yLWVsZW1lbnRvci9hc3NldHMvdmVuZG9yL2Nzcy9pbWFnZWhvdmVyLmNzcz92ZXI9Ni40LjEiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdleGFkLWltYWdlLWhvdmVyLWNzcycgaHJlZj0nd3AtY29udGVudC9wbHVnaW5zL2V4Y2x1c2l2ZS1hZGRvbnMtZm9yLWVsZW1lbnRvci9hc3NldHMvdmVuZG9yL2Nzcy9pbWFnZWhvdmVyLmNzcz92ZXI9Ni40LjEnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJleGFkLW1haW4tc3R5bGUtY3NzIiBocmVmPSJ3cC1jb250ZW50L3BsdWdpbnMvZXhjbHVzaXZlLWFkZG9ucy1mb3ItZWxlbWVudG9yL2Fzc2V0cy9jc3MvZXhhZC1zdHlsZXMubWluLmNzcz92ZXI9Ni40LjEiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdleGFkLW1haW4tc3R5bGUtY3NzJyBocmVmPSd3cC1jb250ZW50L3BsdWdpbnMvZXhjbHVzaXZlLWFkZG9ucy1mb3ItZWxlbWVudG9yL2Fzc2V0cy9jc3MvZXhhZC1zdHlsZXMubWluLmNzcz92ZXI9Ni40LjEnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InN0eWxlc2hlZXQiIGlkPSJkcy1zaXRlLWNyaXRpY2FsLWNzcyIgaHJlZj0id3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvX2Rpc3QvY3NzL2NyaXRpY2FsLmNzcz92ZXI9MS44IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCI+CjxsaW5rIHJlbD0icHJlbG9hZCIgaWQ9Im1haW4tY3NzLWNzcyIgaHJlZj0id3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvX2Rpc3QvY3NzL21haW4uY3NzP3Zlcj0xLjgiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdtYWluLWNzcy1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL19kaXN0L2Nzcy9tYWluLmNzcz92ZXI9MS44JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iYW9zLWNzcy1jc3MiIGhyZWY9IndwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL3ZlbmRvcnMvYW9zL2Fvcy5jc3M/dmVyPTEuOCIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2Fvcy1jc3MtY3NzJyBocmVmPSd3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy92ZW5kb3JzL2Fvcy9hb3MuY3NzP3Zlcj0xLjgnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJzd2lwZXItY3NzLWNzcyIgaHJlZj0id3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvdmVuZG9ycy9zd2lwZXIvc3dpcGVyLWJ1bmRsZS5taW4uY3NzP3Zlcj0xLjgiIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdzd2lwZXItY3NzLWNzcycgaHJlZj0nd3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvdmVuZG9ycy9zd2lwZXIvc3dpcGVyLWJ1bmRsZS5taW4uY3NzP3Zlcj0xLjgnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJjc3MtZmxvYXRib3gtY3NzIiBocmVmPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy92ZW5kb3JzL2Zsb2F0Ym94L2Zsb2F0Ym94LmNzcz92ZXI9MS44IiBhcz0ic3R5bGUiIG9ubG9hZD0idGhpcy5vbmxvYWQ9bnVsbDt0aGlzLnJlbD0nc3R5bGVzaGVldCciPgo8bm9zY3JpcHQ+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nY3NzLWZsb2F0Ym94LWNzcycgaHJlZj0nd3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvdmVuZG9ycy9mbG9hdGJveC9mbG9hdGJveC5jc3M/dmVyPTEuOCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnPgo8L25vc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0ianF1ZXJ5LWNvcmUtanMtZXh0cmEiPgovKiA8IVtDREFUQVsgKi8KdmFyIGRzID0geyJhamF4X3VybCI6Imh0dHBzOlwvXC9hdXRvbGl0ZWZpbmFuY2VzLnByb1wvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwicXVlcnkiOiJ7XCJlcnJvclwiOlwiXCIsXCJtXCI6XCJcIixcInBcIjpcIjI4NjUzOTY4XCIsXCJwb3N0X3BhcmVudFwiOlwiXCIsXCJzdWJwb3N0XCI6XCJcIixcInN1YnBvc3RfaWRcIjpcIlwiLFwiYXR0YWNobWVudFwiOlwiXCIsXCJhdHRhY2htZW50X2lkXCI6MCxcIm5hbWVcIjpcIlwiLFwicGFnZW5hbWVcIjpcIlwiLFwicGFnZV9pZFwiOlwiMjg2NTM5NjhcIixcInNlY29uZFwiOlwiXCIsXCJtaW51dGVcIjpcIlwiLFwiaG91clwiOlwiXCIsXCJkYXlcIjowLFwibW9udGhudW1cIjowLFwieWVhclwiOjAsXCJ3XCI6MCxcImNhdGVnb3J5X25hbWVcIjpcIlwiLFwidGFnXCI6XCJcIixcImNhdFwiOlwiXCIsXCJ0YWdfaWRcIjpcIlwiLFwiYXV0aG9yXCI6XCJcIixcImF1dGhvcl9uYW1lXCI6XCJcIixcImZlZWRcIjpcIlwiLFwidGJcIjpcIlwiLFwicGFnZWRcIjowLFwibWV0YV9rZXlcIjpcIlwiLFwibWV0YV92YWx1ZVwiOlwiXCIsXCJwcmV2aWV3XCI6XCJcIixcInNcIjpcIlwiLFwic2VudGVuY2VcIjpcIlwiLFwidGl0bGVcIjpcIlwiLFwiZmllbGRzXCI6XCJcIixcIm1lbnVfb3JkZXJcIjpcIlwiLFwiZW1iZWRcIjpcIlwiLFwiY2F0ZWdvcnlfX2luXCI6W10sXCJjYXRlZ29yeV9fbm90X2luXCI6W10sXCJjYXRlZ29yeV9fYW5kXCI6W10sXCJwb3N0X19pblwiOltdLFwicG9zdF9fbm90X2luXCI6W10sXCJwb3N0X25hbWVfX2luXCI6W10sXCJ0YWdfX2luXCI6W10sXCJ0YWdfX25vdF9pblwiOltdLFwidGFnX19hbmRcIjpbXSxcInRhZ19zbHVnX19pblwiOltdLFwidGFnX3NsdWdfX2FuZFwiOltdLFwicG9zdF9wYXJlbnRfX2luXCI6W10sXCJwb3N0X3BhcmVudF9fbm90X2luXCI6W10sXCJhdXRob3JfX2luXCI6W10sXCJhdXRob3JfX25vdF9pblwiOltdLFwic2VhcmNoX2NvbHVtbnNcIjpbXSxcImlnbm9yZV9zdGlja3lfcG9zdHNcIjpmYWxzZSxcInN1cHByZXNzX2ZpbHRlcnNcIjpmYWxzZSxcImNhY2hlX3Jlc3VsdHNcIjp0cnVlLFwidXBkYXRlX3Bvc3RfdGVybV9jYWNoZVwiOnRydWUsXCJ1cGRhdGVfbWVudV9pdGVtX2NhY2hlXCI6ZmFsc2UsXCJsYXp5X2xvYWRfdGVybV9tZXRhXCI6dHJ1ZSxcInVwZGF0ZV9wb3N0X21ldGFfY2FjaGVcIjp0cnVlLFwicG9zdF90eXBlXCI6XCJcIixcInBvc3RzX3Blcl9wYWdlXCI6OSxcIm5vcGFnaW5nXCI6ZmFsc2UsXCJjb21tZW50c19wZXJfcGFnZVwiOlwiNTBcIixcIm5vX2ZvdW5kX3Jvd3NcIjpmYWxzZSxcIm9yZGVyXCI6XCJERVNDXCJ9In07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0id3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5taW4uanM/dmVyPTMuNy4xIiBpZD0ianF1ZXJ5LWNvcmUtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LW1pZ3JhdGUubWluLmpzP3Zlcj0zLjQuMSIgaWQ9ImpxdWVyeS1taWdyYXRlLWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJ0cC1qcy1qcy1leHRyYSI+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgdHJ1c3RwaWxvdF9zZXR0aW5ncyA9IHsia2V5IjoienczWldpSGVENnlGU3NmQiIsIlRydXN0cGlsb3RTY3JpcHRVcmwiOiJodHRwczpcL1wvaW52aXRlanMudHJ1c3RwaWxvdC5jb21cL3RwLm1pbi5qcyIsIkludGVncmF0aW9uQXBwVXJsIjoiXC9cL2Vjb21tc2NyaXB0LWludGVncmF0aW9uYXBwLnRydXN0cGlsb3QuY29tIiwiUHJldmlld1NjcmlwdFVybCI6IlwvXC9lY29tbXBsdWdpbnMtc2NyaXB0cy50cnVzdHBpbG90LmNvbVwvdjIuMVwvanNcL3ByZXZpZXcubWluLmpzIiwiUHJldmlld0Nzc1VybCI6IlwvXC9lY29tbXBsdWdpbnMtc2NyaXB0cy50cnVzdHBpbG90LmNvbVwvdjIuMVwvY3NzXC9wcmV2aWV3Lm1pbi5jc3MiLCJQcmV2aWV3V1BDc3NVcmwiOiJcL1wvZWNvbW1wbHVnaW5zLXNjcmlwdHMudHJ1c3RwaWxvdC5jb21cL3YyLjFcL2Nzc1wvcHJldmlld193cC5jc3MiLCJXaWRnZXRTY3JpcHRVcmwiOiJcL1wvd2lkZ2V0LnRydXN0cGlsb3QuY29tXC9ib290c3RyYXBcL3Y1XC90cC53aWRnZXQuYm9vdHN0cmFwLm1pbi5qcyJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvcGx1Z2lucy90cnVzdHBpbG90LXJldmlld3MvcmV2aWV3L2Fzc2V0cy9qcy9oZWFkZXJTY3JpcHQubWluLmpzP3Zlcj0xLjAiIGFzeW5jIGlkPSJ0cC1qcy1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9ImJvb3RzdHJhcC92NS90cC53aWRnZXQuYm9vdHN0cmFwLm1pbi5qcz92ZXI9MS4wIiBhc3luYyBpZD0id2lkZ2V0LWJvb3RzdHJhcC1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0idHJ1c3Rib3gtanMtZXh0cmEiPgovKiA8IVtDREFUQVsgKi8KdmFyIHRydXN0Ym94X3NldHRpbmdzID0geyJwYWdlIjoibGFuZGluZyIsInNrdSI6bnVsbCwibmFtZSI6bnVsbH07CnZhciB0cnVzdHBpbG90X3RydXN0Ym94X3NldHRpbmdzID0geyJ0cnVzdGJveGVzIjpbeyJlbmFibGVkIjoiZW5hYmxlZCIsInNuaXBwZXQiOiJQR1JwZGlCamJHRnpjejBpZEhKMWMzUndhV3h2ZEMxM2FXUm5aWFFpSUdSaGRHRXRiRzlqWVd4bFBTSmxiaTFWVXlJZ1pHRjBZUzEwWlcxd2JHRjBaUzFwWkQwaU5UUXhPV0kyWm1aaU1HUXdOR0V3TnpZME5EWmhPV0ZtSWlCa1lYUmhMV0oxYzJsdVpYTnpkVzVwZEMxcFpEMGlOakUwWVRNeFpHTXlNbUZqTWpFd01ERmtZakV4WkRKaUlpQmtZWFJoTFhOMGVXeGxMV2hsYVdkb2REMGlNakJ3ZUNJZ1pHRjBZUzF6ZEhsc1pTMTNhV1IwYUQwaU1UQXdKU0lnWkdGMFlTMTBhR1Z0WlQwaWJHbG5hSFFpSUhCdmMybDBhVzl1UFNKaFpuUmxjaUkrQ2lBZ1BHRWdhSEpsWmowaWFIUjBjSE02THk5M2QzY3VkSEoxYzNSd2FXeHZkQzVqYjIwdmNtVjJhV1YzTDNSdmNIUnBaWEowY21Ga1pYSXVZMjl0SWlCMFlYSm5aWFE5SWw5aWJHRnVheUlnY21Wc1BTSnViMjl3Wlc1bGNpSStWSEoxYzNSd2FXeHZkRHd2WVQ0S1BDOWthWFkrIiwiY3VzdG9taXphdGlvbnMiOiJleUozYVdSMGFDSTZleUpoZEhSeWFXSjFkR1ZPWVcxbElqb2laR0YwWVMxemRIbHNaUzEzYVdSMGFDSjlMQ0pvWldsbmFIUWlPbnNpWVhSMGNtbGlkWFJsVG1GdFpTSTZJbVJoZEdFdGMzUjViR1V0YUdWcFoyaDBJbjBzSW5OMFlYSnpJanBtWVd4elpTd2lkR2hsYldVaU9uc2lZWFIwY21saWRYUmxUbUZ0WlNJNkltUmhkR0V0ZEdobGJXVWlMQ0p2Y0hScGIyNXpJanBiSW14cFoyaDBJaXdpWkdGeWF5SmRmU3dpYkc5allXeGxjeUk2ZXlKaGRIUnlhV0oxZEdWT1lXMWxJam9pWkdGMFlTMXNiMk5oYkdVaUxDSnZjSFJwYjI1eklqcGJJbVJoTFVSTElpd2laR1V0UVZRaUxDSmtaUzFEU0NJc0ltUmxMVVJGSWl3aVpXNHRRVlVpTENKbGJpMURRU0lzSW1WdUxVZENJaXdpWlc0dFNVVWlMQ0psYmkxT1dpSXNJbVZ1TFZWVElpd2laWE10UlZNaUxDSm1hUzFHU1NJc0ltWnlMVUpGSWl3aVpuSXRSbElpTENKcGRDMUpWQ0lzSW1waExVcFFJaXdpYm1JdFRrOGlMQ0p1YkMxQ1JTSXNJbTVzTFU1TUlpd2ljR3d0VUV3aUxDSndkQzFDVWlJc0luQjBMVkJVSWl3aWNuVXRVbFVpTENKemRpMVRSU0lzSW5wb0xVTk9JbDE5TENKMFlXZHpJanBtWVd4elpTd2ljSEp2WkhWamRFNWhiV1VpT21aaGJITmxMQ0p6YTNVaU9tWmhiSE5sTENKeWFXTm9VMjVwY0hCbGRITWlPbVpoYkhObExDSnlaWFpwWlhkTVlXNW5kV0ZuWlhNaU9tWmhiSE5sTENKMFpYaDBRMjlzYjNJaU9uc2lZWFIwY21saWRYUmxUbUZ0WlNJNkltUmhkR0V0ZEdWNGRDMWpiMnh2Y2lKOUxDSm1iMjUwUm1GdGFXeDVJanA3SW1GMGRISnBZblYwWlU1aGJXVWlPaUprWVhSaExXWnZiblF0Wm1GdGFXeDVJaXdpYjNCMGFXOXVjeUk2V3lKU2IySnZkRzhpTENKUGNHVnVJRk5oYm5NaUxDSk9iM1J2SUZOaGJuTWdTbEFpTENKTVlYUnZJaXdpVFc5dWRITmxjbkpoZENJc0lsSnZZbTkwYnlCRGIyNWtaVzV6WldRaUxDSlRiM1Z5WTJVZ1UyRnVjeUJRY204aUxDSlNZV3hsZDJGNUlpd2lVRzl3Y0dsdWN5SXNJazV2ZEc4Z1UyRnVjeUlzSWxKdlltOTBieUJUYkdGaUlpd2lUV1Z5Y21sM1pXRjBhR1Z5SWl3aVVGUWdVMkZ1Y3lJc0lsQnNZWGxtWVdseUlFUnBjM0JzWVhraUxDSlZZblZ1ZEhVaUxDSk5kV3QwWVNJc0lrMTFiR2tpTENKUVZDQlRaWEpwWmlJc0lreHZjbUVpTENKT2RXNXBkRzhpTENKWGIzSnJJRk5oYm5NaUxDSlNkV0pwYXlJc0lrWnBjbUVnVTJGdWN5SXNJbFJwZEdsc2JHbDFiU0JYWldJaUxDSk9iM1J2SUZOaGJuTWdWRU1pTENKT2IzUnZJRk5sY21sbUlpd2lUbTkwYnlCVFlXNXpJRXRTSWl3aVRtRnVkVzBnUjI5MGFHbGpJaXdpVVhWcFkydHpZVzVrSWl3aVNHbHVaQ0JUYVd4cFozVnlhU0lzSWs1MWJtbDBieUJUWVc1eklpd2lTR1ZsWW04aUxDSkJjbWx0YnlJc0lrOTRlV2RsYmlJc0lrUnZjMmx6SWl3aVFtRnliRzkzSWl3aVMyRnliR0VpTENKVGJHRmlieUF5TjNCNElpd2lUR2xpY21VZ1FtRnphMlZ5ZG1sc2JHVWlMQ0pKYm1OdmJuTnZiR0YwWVNJc0lreHBZbkpsSUVaeVlXNXJiR2x1SWl3aVEzSnBiWE52YmlCVVpYaDBJaXdpU205elpXWnBiaUJUWVc1eklsMTlMQ0p6ZEdGeVEyOXNiM0lpT21aaGJITmxMQ0ppYjNKa1pYSkRiMnh2Y2lJNlptRnNjMlVzSW14cGJtdERiMnh2Y2lJNlptRnNjMlVzSW5GMWIzUmxRMjlzYjNJaU9tWmhiSE5sTENKaWRYUjBiMjVEYjJ4dmNpSTZabUZzYzJVc0ltNXZVbVYyYVdWM2N5STZabUZzYzJVc0luTmpjbTlzYkZSdlRHbHpkQ0k2Wm1Gc2MyVXNJbUZzYkc5M1VtOWliM1J6SWpwbVlXeHpaU3dpYldsdVVtVjJhV1YzUTI5MWJuUWlPbVpoYkhObExDSnBiWEJ2Y25SbFpGSmxkbWxsZDNNaU9tWmhiSE5sTENKM2FYUm9iM1YwVW1WMmFXVjNjMUJ5WldabGNuSmxaRk4wY21sdVowbGtJanBtWVd4elpTd2lZV3hwWjI1dFpXNTBJanBtWVd4elpTd2lablZzYkZkcFpIUm9JanBtWVd4elpYMD0iLCJkZWZhdWx0cyI6ImV5SjNhV1IwYUNJNklqRXdNQ1VpTENKb1pXbG5hSFFpT2lJeU1IQjRJaXdpZEdWNGRFTnZiRzl5SWpwN0lteHBaMmgwSWpvaUl6RTVNVGt4T1NJc0ltUmhjbXNpT2lJalptWm1abVptSW4wc0ltWnZiblJHWVcxcGJIa2lPaUpjSWxObFoyOWxJRlZKWENJc1hDSklaV3gyWlhScFkyRWdUbVYxWlZ3aUxGd2lTR1ZzZG1WMGFXTmhYQ0lzWENKQmNtbGhiRndpTEZ3aWMyRnVjeTF6WlhKcFpsd2lJbjA9IiwicGFnZSI6ImxhbmRpbmciLCJwb3NpdGlvbiI6ImFmdGVyIiwiY29ybmVyIjoidG9wOiAje1l9cHg7IGxlZnQ6ICN7WH1weDsiLCJwYWRkaW5neCI6IjAiLCJwYWRkaW5neSI6IjAiLCJ6aW5kZXgiOiIxMDAwIiwiY2xlYXIiOiJib3RoIiwieHBhdGhzIjoiV3lJdkwwSlBSRmt2UkVsV1d6TmRMMDFCU1U1Yk1WMHZSRWxXV3pGZEwwUkpWbHN4WFM5RVNWWmJNVjB2UkVsV1d6RmRJaXdpTHk5RVNWWmJRR05zWVhOelBWd2ljeTFvWlhKdkxXaHZiV1ZmWDJOdmJuUmhhVzVsY2w5ZmRHbDBiR1ZjSWwwaUxDSXZTRlJOVEZzeFhTOUNUMFJaV3pGZEwwUkpWbHN6WFM5TlFVbE9XekZkTDBSSlZsc3hYUzlFU1ZaYk1WMHZSRWxXV3pGZEwwUkpWbHN4WFNKZCIsInNrdSI6IiIsIm5hbWUiOiIiLCJ3aWRnZXROYW1lIjoiTWljcm8gQ29tYm8iLCJyZXBlYXRhYmxlIjpmYWxzZSwidXVpZCI6IjBiYjc1YzUzLWUzZTEtNDQ1Mi05ODIzLWZkZDAzZTY3ZjNhMSIsImVycm9yIjpudWxsLCJyZXBlYXRYcGF0aCI6eyJ4cGF0aEJ5SWQiOnsicHJlZml4IjoiIiwic3VmZml4IjoiIn0sInhwYXRoRnJvbVJvb3QiOnsicHJlZml4IjoiIiwic3VmZml4IjoiIn19LCJ3aWR0aCI6IjEwMCUiLCJoZWlnaHQiOiIyMHB4IiwibG9jYWxlIjoiZW4tVVMiLCJ0aGVtZSI6ImxpZ2h0IiwidGV4dENvbG9yIjpudWxsfSx7ImVuYWJsZWQiOiJlbmFibGVkIiwic25pcHBldCI6IlBHUnBkaUJqYkdGemN6MGlkSEoxYzNSd2FXeHZkQzEzYVdSblpYUWlJR1JoZEdFdGJHOWpZV3hsUFNKbGJpMVZVeUlnWkdGMFlTMTBaVzF3YkdGMFpTMXBaRDBpTlROaFlUZzVNVEprWldNM1pURXdaRE00WmpVNVpqTTJJaUJrWVhSaExXSjFjMmx1WlhOemRXNXBkQzFwWkQwaU5qRTBZVE14WkdNeU1tRmpNakV3TURGa1lqRXhaREppSWlCa1lYUmhMWE4wZVd4bExXaGxhV2RvZEQwaU1UUXdjSGdpSUdSaGRHRXRjM1I1YkdVdGQybGtkR2c5SWpFd01DVWlJR1JoZEdFdGMzUmhjbk05SWpVaUlHUmhkR0V0ZEdobGJXVTlJbXhwWjJoMElpQmtZWFJoTFhSbGVIUXRZMjlzYjNJOUlpTXhPVEU1TVRraUlIQnZjMmwwYVc5dVBTSmhablJsY2lJK0NpQWdQR0VnYUhKbFpqMGlhSFIwY0hNNkx5OTNkM2N1ZEhKMWMzUndhV3h2ZEM1amIyMHZjbVYyYVdWM0wzUnZjSFJwWlhKMGNtRmtaWEl1WTI5dElpQjBZWEpuWlhROUlsOWliR0Z1YXlJZ2NtVnNQU0p1YjI5d1pXNWxjaUkrVkhKMWMzUndhV3h2ZER3dllUNEtQQzlrYVhZKyIsImN1c3RvbWl6YXRpb25zIjoiZXlKM2FXUjBhQ0k2ZXlKaGRIUnlhV0oxZEdWT1lXMWxJam9pWkdGMFlTMXpkSGxzWlMxM2FXUjBhQ0o5TENKb1pXbG5hSFFpT25zaVlYUjBjbWxpZFhSbFRtRnRaU0k2SW1SaGRHRXRjM1I1YkdVdGFHVnBaMmgwSW4wc0luTjBZWEp6SWpwN0ltRjBkSEpwWW5WMFpVNWhiV1VpT2lKa1lYUmhMWE4wWVhKeklpd2liM0IwYVc5dWN5STZXekVzTWl3ekxEUXNOVjE5TENKMGFHVnRaU0k2ZXlKaGRIUnlhV0oxZEdWT1lXMWxJam9pWkdGMFlTMTBhR1Z0WlNJc0ltOXdkR2x2Ym5NaU9sc2liR2xuYUhRaUxDSmtZWEpySWwxOUxDSnNiMk5oYkdWeklqcDdJbUYwZEhKcFluVjBaVTVoYldVaU9pSmtZWFJoTFd4dlkyRnNaU0lzSW05d2RHbHZibk1pT2xzaVpHRXRSRXNpTENKa1pTMUJWQ0lzSW1SbExVTklJaXdpWkdVdFJFVWlMQ0psYmkxQlZTSXNJbVZ1TFVOQklpd2laVzR0UjBJaUxDSmxiaTFKUlNJc0ltVnVMVTVhSWl3aVpXNHRWVk1pTENKbGN5MUZVeUlzSW1acExVWkpJaXdpWm5JdFFrVWlMQ0ptY2kxR1VpSXNJbWwwTFVsVUlpd2lhbUV0U2xBaUxDSnVZaTFPVHlJc0ltNXNMVUpGSWl3aWJtd3RUa3dpTENKd2JDMVFUQ0lzSW5CMExVSlNJaXdpY0hRdFVGUWlMQ0p5ZFMxU1ZTSXNJbk4yTFZORklpd2llbWd0UTA0aVhYMHNJblJoWjNNaU9uc2lZWFIwY21saWRYUmxUbUZ0WlNJNkltUmhkR0V0ZEdGbmN5SjlMQ0p3Y205a2RXTjBUbUZ0WlNJNlptRnNjMlVzSW5OcmRTSTZabUZzYzJVc0luSnBZMmhUYm1sd2NHVjBjeUk2ZXlKaGRIUnlhV0oxZEdWT1lXMWxJam9pWkdGMFlTMXpZMmhsYldFdGRIbHdaU0o5TENKeVpYWnBaWGRNWVc1bmRXRm5aWE1pT25zaVlYUjBjbWxpZFhSbFRtRnRaU0k2SW1SaGRHRXRjbVYyYVdWM0xXeGhibWQxWVdkbGN5SXNJbTl3ZEdsdmJuTWlPbHNpWkdFaUxDSmtaU0lzSW1WdUlpd2laWE1pTENKbWFTSXNJbVp5SWl3aWFYUWlMQ0pxWVNJc0ltNWlJaXdpYm13aUxDSndiQ0lzSW5CMElpd2ljblVpTENKemRpSXNJbnBvSWwxOUxDSjBaWGgwUTI5c2IzSWlPbnNpWVhSMGNtbGlkWFJsVG1GdFpTSTZJbVJoZEdFdGRHVjRkQzFqYjJ4dmNpSjlMQ0ptYjI1MFJtRnRhV3g1SWpwN0ltRjBkSEpwWW5WMFpVNWhiV1VpT2lKa1lYUmhMV1p2Ym5RdFptRnRhV3g1SWl3aWIzQjBhVzl1Y3lJNld5SlNiMkp2ZEc4aUxDSlBjR1Z1SUZOaGJuTWlMQ0pPYjNSdklGTmhibk1nU2xBaUxDSk1ZWFJ2SWl3aVRXOXVkSE5sY25KaGRDSXNJbEp2WW05MGJ5QkRiMjVrWlc1elpXUWlMQ0pUYjNWeVkyVWdVMkZ1Y3lCUWNtOGlMQ0pTWVd4bGQyRjVJaXdpVUc5d2NHbHVjeUlzSWs1dmRHOGdVMkZ1Y3lJc0lsSnZZbTkwYnlCVGJHRmlJaXdpVFdWeWNtbDNaV0YwYUdWeUlpd2lVRlFnVTJGdWN5SXNJbEJzWVhsbVlXbHlJRVJwYzNCc1lYa2lMQ0pWWW5WdWRIVWlMQ0pOZFd0MFlTSXNJazExYkdraUxDSlFWQ0JUWlhKcFppSXNJa3h2Y21FaUxDSk9kVzVwZEc4aUxDSlhiM0pySUZOaGJuTWlMQ0pTZFdKcGF5SXNJa1pwY21FZ1UyRnVjeUlzSWxScGRHbHNiR2wxYlNCWFpXSWlMQ0pPYjNSdklGTmhibk1nVkVNaUxDSk9iM1J2SUZObGNtbG1JaXdpVG05MGJ5QlRZVzV6SUV0U0lpd2lUbUZ1ZFcwZ1IyOTBhR2xqSWl3aVVYVnBZMnR6WVc1a0lpd2lTR2x1WkNCVGFXeHBaM1Z5YVNJc0lrNTFibWwwYnlCVFlXNXpJaXdpU0dWbFltOGlMQ0pCY21sdGJ5SXNJazk0ZVdkbGJpSXNJa1J2YzJseklpd2lRbUZ5Ykc5M0lpd2lTMkZ5YkdFaUxDSlRiR0ZpYnlBeU4zQjRJaXdpVEdsaWNtVWdRbUZ6YTJWeWRtbHNiR1VpTENKSmJtTnZibk52YkdGMFlTSXNJa3hwWW5KbElFWnlZVzVyYkdsdUlpd2lRM0pwYlhOdmJpQlVaWGgwSWl3aVNtOXpaV1pwYmlCVFlXNXpJbDE5TENKemRHRnlRMjlzYjNJaU9tWmhiSE5sTENKaWIzSmtaWEpEYjJ4dmNpSTZabUZzYzJVc0lteHBibXREYjJ4dmNpSTZabUZzYzJVc0luRjFiM1JsUTI5c2IzSWlPbVpoYkhObExDSmlkWFIwYjI1RGIyeHZjaUk2Wm1Gc2MyVXNJbTV2VW1WMmFXVjNjeUk2Wm1Gc2MyVXNJbk5qY205c2JGUnZUR2x6ZENJNlptRnNjMlVzSW1Gc2JHOTNVbTlpYjNSeklqcDdJbUYwZEhKcFluVjBaVTVoYldVaU9pSmtZWFJoTFdGc2JHOTNMWEp2WW05MGN5SjlMQ0p0YVc1U1pYWnBaWGREYjNWdWRDSTZabUZzYzJVc0ltbHRjRzl5ZEdWa1VtVjJhV1YzY3lJNlptRnNjMlVzSW5kcGRHaHZkWFJTWlhacFpYZHpVSEpsWm1WeWNtVmtVM1J5YVc1blNXUWlPbVpoYkhObExDSmhiR2xuYm0xbGJuUWlPbVpoYkhObExDSm1kV3hzVjJsa2RHZ2lPbVpoYkhObGZRPT0iLCJkZWZhdWx0cyI6ImV5SjNhV1IwYUNJNklqRXdNQ1VpTENKb1pXbG5hSFFpT2lJeE5EQndlQ0lzSW5SbGVIUkRiMnh2Y2lJNmV5SnNhV2RvZENJNklpTXhPVEU1TVRraUxDSmtZWEpySWpvaUkyWm1abVptWmlKOUxDSm1iMjUwUm1GdGFXeDVJam9pWENKVFpXZHZaU0JWU1Z3aUxGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpeGNJa2hsYkhabGRHbGpZVndpTEZ3aVFYSnBZV3hjSWl4Y0luTmhibk10YzJWeWFXWmNJaUo5IiwicGFnZSI6ImxhbmRpbmciLCJwb3NpdGlvbiI6ImFmdGVyIiwiY29ybmVyIjoidG9wOiAje1l9cHg7IGxlZnQ6ICN7WH1weDsiLCJwYWRkaW5neCI6IjAiLCJwYWRkaW5neSI6IjAiLCJ6aW5kZXgiOiIxMDAwIiwiY2xlYXIiOiJib3RoIiwieHBhdGhzIjoiV3lKcFpDaGNJbTFoYVc0dFkyOXVkR1Z1ZEZ3aUtTOVRSVU5VU1U5T1d6RXdYUzlFU1ZaYk1WMHZSRWxXV3pGZEwwUkpWbHN4WFNJc0lpOHZSRWxXVzBCamJHRnpjejFjSW1NdGFHVmhaR2x1WjE5ZmNISmxYQ0pkSWl3aUwwaFVUVXhiTVYwdlFrOUVXVnN4WFM5RVNWWmJNbDB2VFVGSlRsc3hYUzlUUlVOVVNVOU9XekV3WFM5RVNWWmJNVjB2UkVsV1d6RmRMMFJKVmxzeFhTSmQiLCJza3UiOiIiLCJuYW1lIjoiIiwid2lkZ2V0TmFtZSI6IkNhcm91c2VsIiwicmVwZWF0YWJsZSI6ZmFsc2UsInV1aWQiOiIwNGI2MDU2YS1hZjRkLWFmYjUtZWRhNi00NGRhNGE4NzA2OTEiLCJlcnJvciI6bnVsbCwicmVwZWF0WHBhdGgiOnsieHBhdGhCeUlkIjp7InByZWZpeCI6IiIsInN1ZmZpeCI6IiJ9LCJ4cGF0aEZyb21Sb290Ijp7InByZWZpeCI6IiIsInN1ZmZpeCI6IiJ9fSwid2lkdGgiOiIxMDAlIiwiaGVpZ2h0IjoiMTQwcHgiLCJsb2NhbGUiOiJlbi1VUyIsInN0YXJzIjpbNV19XX07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC9wbHVnaW5zL3RydXN0cGlsb3QtcmV2aWV3cy9yZXZpZXcvYXNzZXRzL2pzL3RydXN0Qm94U2NyaXB0Lm1pbi5qcz92ZXI9MS4wIiBhc3luYyBpZD0idHJ1c3Rib3gtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy92ZW5kb3JzL2Nzc3JlbHByZWxvYWQuanMiIGlkPSJsb2FkQ1NTLWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvdmVuZG9ycy9tb2Rlcm5penItY3VzdG9tLmpzIiBpZD0ibW9kZXJuaXpyLXdlYnAtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy92ZW5kb3JzL2Zsb2F0Ym94L2Zsb2F0Ym94LmpzP3Zlcj0xIiBpZD0ianMtZmxvYXRib3gtanMiPjwvc2NyaXB0Pgo8bGluayByZWw9Imh0dHBzOi8vYXBpLncub3JnLyIgaHJlZj0id3AtanNvbi9pbmRleC5odG0iPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIiBocmVmPSJ3cC1qc29uL3dwL3YyL3BhZ2VzLzI4NjUzOTY4Ij48bGluayByZWw9IkVkaXRVUkkiIHR5cGU9ImFwcGxpY2F0aW9uL3JzZCt4bWwiIHRpdGxlPSJSU0QiIGhyZWY9InhtbHJwYy5waHA/cnNkIj4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJXb3JkUHJlc3MgNi40LjEiPgo8bGluayByZWw9InNob3J0bGluayIgaHJlZj0iaW5kZXguaHRtIj4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24rb2VtYmVkIiBocmVmPSJ3cC1qc29uL29lbWJlZC8xLjAvZW1iZWQ/dXJsPWh0dHBzJTNBJTJGJTJGYXV0b2xpdGVmaW5hbmNlcy5wcm8lMkYiPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0idGV4dC94bWwrb2VtYmVkIiBocmVmPSJ3cC1qc29uL29lbWJlZC8xLjAvZW1iZWQtMT91cmw9aHR0cHMlM0ElMkYlMkZhdXRvbGl0ZWZpbmFuY2VzLnBybyUyRiYjMDM4O2Zvcm1hdD14bWwiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkVsZW1lbnRvciAzLjE3LjM7IGZlYXR1cmVzOiBlX2RvbV9vcHRpbWl6YXRpb24sIGVfb3B0aW1pemVkX2Fzc2V0c19sb2FkaW5nLCBlX29wdGltaXplZF9jc3NfbG9hZGluZywgYWRkaXRpb25hbF9jdXN0b21fYnJlYWtwb2ludHM7IHNldHRpbmdzOiBjc3NfcHJpbnRfbWV0aG9kLWV4dGVybmFsLCBnb29nbGVfZm9udC1lbmFibGVkLCBmb250X2Rpc3BsYXktc3dhcCI+Cjxub3NjcmlwdD48c3R5bGU+Lmxhenlsb2FkW2RhdGEtc3JjXXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9PC9zdHlsZT48L25vc2NyaXB0PjxzdHlsZT4ubGF6eWxvYWR7YmFja2dyb3VuZC1pbWFnZTpub25lICFpbXBvcnRhbnQ7fS5sYXp5bG9hZDpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTpub25lICFpbXBvcnRhbnQ7fTwvc3R5bGU+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9mYXZpY29uLnN2ZyIgc2l6ZXM9IjMyeDMyIj4KPGxpbmsgcmVsPSJpY29uIiBocmVmPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9mYXZpY29uLnN2ZyIgc2l6ZXM9IjE5MngxOTIiPgo8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2Zhdmljb24uc3ZnIj4KPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1UaWxlSW1hZ2UiIGNvbnRlbnQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2Zhdmljb24uc3ZnIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIiBpZD0id3AtY3VzdG9tLWNzcyI+CgkJCS8qTGFuZGluZyBQYWdlIEFuZHJlcyovCgpAbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Ci5jYXJkLWdpZnQgLmVsZW1lbnRvci1pY29uewoJICBtYXJnaW4tdG9wOiAtNjBweCAhaW1wb3J0YW50OwogICAgbWFyZ2luLWJvdHRvbTogLTUwcHggIWltcG9ydGFudDsKfQoJCgkuY29udGVuZWRvci1oZWlnaHR7CgkJbWluLWhlaWdodDozMnB4OwoJfQoJCgkuY29udGVuZWRvci1oZWlnaDIgLmVsZW1lbnRvci1pY29uLWJveC10aXRsZXsKCQltaW4taGVpZ2h0OjYwcHg7Cgl9Cn0KCgpAbWVkaWEgKG1pbi13aWR0aDozNTBweCkgYW5kIChtYXgtd2lkdGg6NTAwcHgpewoJLm1lanMtY29udHJvbHN7CgkJd2lkdGg6MTMwJSAhaW1wb3J0YW50OwoJfQp9CgoubWVqcy1jb250YWluZXIgLm1lanMtY29udHJvbHN7CgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Cn0KCi5tZWpzLWNvbnRhaW5lcnsKCWJhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudDsKfQoKLm1lanMtYnV0dG9uPmJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwod3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbWVqcy1jb250cm9scy0xLnN2ZykgIWltcG9ydGFudDsKfQoKLm1lanMtbXV0ZT5idXR0b24gewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggMCAhaW1wb3J0YW50Owp9CgoubWVqcy1wYXVzZT5idXR0b24gewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwcHggMCAhaW1wb3J0YW50Owp9CgoubWVqcy1yZXBsYXk+YnV0dG9uIHsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAwICFpbXBvcnRhbnQ7Cn0KCi5tZWpzLWNvbnRyb2xzIC5tZWpzLXRpbWUtcmFpbCAubWVqcy10aW1lLWxvYWRlZCB7CiAgICBiYWNrZ3JvdW5kOiAjMjEzNTc5ICFpbXBvcnRhbnQ7Cn0KCi5tZWpzLWNvbnRyb2xzIC5tZWpzLXRpbWUtcmFpbCBzcGFuIHsKICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4ICFpbXBvcnRhbnQ7Cn0KCi5tZWpzLWNvbnRyb2xzIC5tZWpzLXRpbWUtcmFpbCAubWVqcy10aW1lLWN1cnJlbnQgewogICAgYmFja2dyb3VuZDogIzY4Q0RFRCAhaW1wb3J0YW50Owp9CgoKQG1lZGlhIChtaW4td2lkdGg6OTAwcHgpewoJLmVsZW1lbnRvci1lbGVtZW50LTliYzE4NTcsIC5lbGVtZW50b3ItZWxlbWVudC1hNjIwNGRkewoJCW1heC13aWR0aDoxNDAlICFpbXBvcnRhbnQ7CgkJLS1jb250YWluZXItbWF4LXdpZHRoOiAxNDAlICFpbXBvcnRhbnQ7Cgl9CgkKCS5jdGwtd3JhcHBlciB7CgkJbWF4LXdpZHRoOmluaGVyaXQgIWltcG9ydGFudDsKCX0KfQoKLypQb3BVcCovCiNzcC13cC10YWJzLXdyYXBwZXJfMjg2OTE2NTUuc3AtdGFiX19sYXktZGVmYXVsdCA+IC5zcC10YWJfX3RhYi1jb250ZW50IC5zcC10YWJfX3RhYi1wYW5lewoJYmFja2dyb3VuZC1jb2xvcjojM0I1M0E3OwoJYm9yZGVyOm5vbmU7Cn0KCi5zcC10YWJfX25hdi1saW5rLCAuc3AtdGFiX19uYXYtaXRlbXsKCWJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDsKCWJvcmRlcjpub25lICFpbXBvcnRhbnQ7Cn0KCmxhYmVsLnNwLXRhYl9fYWN0aXZlewoJYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjRkY1MzJEOwogIGJvcmRlci1ib3R0b206OHB4IHNvbGlkICNGRjUzMkQgIWltcG9ydGFudDsKfQoKLnNwLXRhYl9fdGFiX3RpdGxlewoJZm9udC1mYW1pbHk6ICJGaWd0cmVlIiwgU2Fucy1zZXJpZiAhaW1wb3J0YW50OwoJY29sb3I6ICNGRkYgIWltcG9ydGFudDsKCWZvbnQtd2VpZ2h0OiA4MDA7Cglmb250LXNpemU6MjBweCAhaW1wb3J0YW50Owp9Cgojc3Atd3AtdGFicy13cmFwcGVyXzI4NjkxNjU1IC5zcC10YWJfX25hdnsKCWFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgY29sdW1uLWdhcDogODBweDsKfQoKCi5leGFkLW1vZGFsLWVsZW1lbnQtYm9keSBoMnsKCWNvbG9yOiAjRkZGOwoJdGV4dC1hbGlnbjogY2VudGVyOwoJZm9udC1mYW1pbHk6ICJGaWd0cmVlIiwgU2Fucy1zZXJpZjsKCWZvbnQtc2l6ZTogM2VtOwoJZm9udC1zdHlsZTogbm9ybWFsOwoJZm9udC13ZWlnaHQ6IDgwMDsKfQoKLmV4YWQtbW9kYWwtZWxlbWVudCB7Cglib3JkZXItcmFkaXVzOjE1cHg7Cn0KCi5lbGVtZW50b3ItZWxlbWVudC1mNGY4OTliIC5lbGVtZW50b3Itd2lkZ2V0LWNvbnRhaW5lcnsKfQoKLypGb3JtdWxhcmlvKi8KLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtdGhpcmR7CgkJZ3JpZC1jb2x1bW46IHNwYW4gNiAhaW1wb3J0YW50OwoJfQoJCgkjaW5wdXRfNF8xNnsKCQlmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IAoJfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzewoJZmxleC1kaXJlY3Rpb246IGNvbHVtbiFpbXBvcnRhbnQ7Cn0KCi5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT10ZXh0XXsKCWJvcmRlci1yYWRpdXM6IDEycHg7CmJvcmRlcjogMXB4IHNvbGlkICM2MTdBRDA7Cn0KCi5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZCBpbnB1dC5sYXJnZXsKCQlib3JkZXItcmFkaXVzOiAxMnB4Owpib3JkZXI6IDFweCBzb2xpZCAjNjE3QUQwOwoJCn0KCi5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4IHNlbGVjdHsKCWJvcmRlci1yYWRpdXM6IDEycHg7Cglib3JkZXI6IDFweCBzb2xpZCAjNjE3QUQwOwp9CgouZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgc2VsZWN0LmxhcmdlewoJYm9yZGVyLXJhZGl1czogMTJweDsKCWJvcmRlcjogMXB4IHNvbGlkICM2MTdBRDA7CgltaW4taGVpZ2h0OiA0MnB4Owp9CgouZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCBsYWJlbHsKCWZvbnQtc2l6ZToyMHB4ICFpbXBvcnRhbnQ7Cgljb2xvcjojZmZmOwoJZm9udC13ZWlnaHQ6NTAwOwoJbWFyZ2luLWJvdHRvbTo4cHg7CglwYWRkaW5nLXRvcDowcHggIWltcG9ydGFudDsKfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xhYmVsewoJZm9udC1zaXplOjIwcHggIWltcG9ydGFudDsKCWNvbG9yOiNmZmY7Cglmb250LXdlaWdodDo1MDAgIWltcG9ydGFudDsKfQoKLmdmb3JtX3JlcXVpcmVkX2xlZ2VuZCwgIC5nZm9ybV90aXRsZXsKCWRpc3BsYXk6bm9uZTsKfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggc2VsZWN0ewoJbWluLWhlaWdodDogNDJweDsKfQoKLmdmb3JtX2J1dHRvbnsKCWJhY2tncm91bmQtY29sb3I6I0ZGNTMyRDsKfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyewoJYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoKLmFjdGl2ZSAuZXhhZC10YWItdGl0bGUgewoJYm9yZGVyLXN0eWxlOiBzb2xpZDsKICBib3JkZXItd2lkdGg6IDBweCAwcHggOHB4IDBweDsKICBib3JkZXItY29sb3I6ICNGRjUzMkQ7CglwYWRkaW5nLWJvdHRvbTogMTRweDsKfQoKLmFjdGl2ZSAuZXhhZC10YWItdGl0bGU6aG92ZXIgewoJYm9yZGVyLXN0eWxlOiBzb2xpZDsKICBib3JkZXItd2lkdGg6IDBweCAwcHggOHB4IDBweDsKICBib3JkZXItY29sb3I6ICNGRjUzMkQ7Cn0KCi5leGFkLWFkdmFuY2UtdGFiIC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLXJpZ2h0ewoJYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzIHNwYW4gewoJZmxleDogMCAwIDEwMCUgIWltcG9ydGFudDsKfQoKLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXggbGFiZWx7CgltYXJnaW4tYm90dG9tOjBweCAhaW1wb3J0YW50Owp9CgouZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5maWVsZF9zdWJsYWJlbF9hYm92ZSAuZ2lucHV0X2NvbXBsZXggewogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Cn0KCi5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5naW5wdXRfY29tcGxleCB7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50Owp9CgouZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHN7Cgl0ZXh0LWFsaWduOmxlZnQ7Cn0KCi5zcC10YWJfX2xheS1kZWZhdWx0Pi5zcC10YWJfX3RhYi1jb250ZW50IGxhYmVsOm5vdCguc3AtdGFiX19uYXYtbGluaykgewoJcGFkZGluZy1sZWZ0OiA4cHg7Cn0KCiNzcC13cC10YWJzLXdyYXBwZXJfMjg2OTE2NTUuc3AtdGFiX19sYXktZGVmYXVsdCA+IC5zcC10YWJfX3RhYi1jb250ZW50IC5zcC10YWJfX3RhYi1wYW5lewoJY29sb3I6I2ZmZiAhaW1wb3J0YW50Owp9CgpAbWVkaWEgKG1heC13aWR0aDogOTkxcHgpewouZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIHsKICAgIHdpZHRoOiA4MCU7Cn0KCQoJCS5nZm9ybS1ib2R5ewoJCXBhZGRpbmctbGVmdDoxMHB4OwoJCXBhZGRpbmctcmlnaHQ6MTBweDsKCX0KCQoJLmV4YWQtYWR2YW5jZS10YWIgLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5hY3RpdmUuZXhhZC10YWItaW1hZ2UtcmlnaHR7CgkJcGFkZGluZzowcHggIWltcG9ydGFudDsKCX0KfQoKQG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpewouY2FyZC1naWZ0IC5lbGVtZW50b3ItaWNvbnsKCSAgbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKICAgIG1hcmdpbi1ib3R0b206IC00MHB4ICFpbXBvcnRhbnQ7Cn0KCQoJLmVsZW1lbnRvci0yODY5MDg5NiAuZWxlbWVudG9yLWVsZW1lbnQuZWxlbWVudG9yLWVsZW1lbnQtNDYwOTdlMCAuZWxlbWVudG9yLWljb257CgkJbWFyZ2luLXRvcDogLTYwcHggIWltcG9ydGFudDsKCX0KCQoJLmVsZW1lbnRvci1lbGVtZW50LWI1YmVmZDEgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyewoJCWJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDsKCQlib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDsKCX0KCQoJLmVsZW1lbnRvci1lbGVtZW50LTQ2MDk3ZTAgLmVsZW1lbnRvci1pY29uLWJveC1jb250ZW50ewoJCWFsaWduLXNlbGY6Y2VudGVyOwoJfQoJCgkuZXhhZC1hZHZhbmNlLXRhYi1uYXYgbGkuYWN0aXZlewoJCSAgICBib3JkZXItd2lkdGg6IDBweCAwcHggOHB4IDBweCAhaW1wb3J0YW50OwoJCQkJICAgIGJvcmRlci1jb2xvcjogI0ZGNTMyRCAhaW1wb3J0YW50OwoJfQoJCgkuYWN0aXZlIC5leGFkLXRhYi10aXRsZSB7CiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDBweCAwcHggIWltcG9ydGFudDsKfQoJCgkuZXhhZC1tb2RhbC1pdGVtLmFjdGl2ZS5tb2RhbC12aW1lb3sKCQl3aWR0aDo4NSUgIWltcG9ydGFudDsKCX0KCQoJCgkuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleCBsYWJlbHsKCQlmb250LXNpemU6MTRweCAhaW1wb3J0YW50OwoJfQoJCgkuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGFiZWx7CgkJZm9udC1zaXplOjE0cHggIWltcG9ydGFudDsKCX0KCQoJLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXRleHRdewoJCWZvbnQtc2l6ZToxM3B4ICFpbXBvcnRhbnQ7Cgl9CgkKCS5nZm9ybV9idXR0b257CglwYWRkaW5nLXRvcDo4cHg7CgkJcGFkZGluZy1ib3R0b206OHB4OwoJfQoJCgkuZXhhZC1tb2RhbC1lbGVtZW50LWJvZHkgaDIgewoJCWZvbnQtc2l6ZToxLjVlbTsKCX0KCQp9CgpAbWVkaWEgKG1pbi13aWR0aDo3MDBweCkgYW5kIChtYXgtd2lkdGg6OTkwcHgpewoJLmV4YWQtbW9kYWwtaXRlbSB7CiAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsKICAgIHRvcDogNjUlOwp9CgkjaW5wdXRfNF8yMF8zX2xhYmVsewoJCW1pbi1oZWlnaHQ6NTBweDsKCX0KfQoKQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KXsKCSNzcC13cC10YWJzLXdyYXBwZXJfMjg2OTE2NTUuc3AtdGFiX19sYXktZGVmYXVsdCA+IHVsIGxpLnNwLXRhYl9fbmF2LWl0ZW0gewoJCXdpZHRoOjUwJTsKCX0KCSNzcC13cC10YWJzLXdyYXBwZXJfMjg2OTE2NTUgLnNwLXRhYl9fbmF2ewoJCWNvbHVtbi1nYXA6MHB4OwoJfQoJCgkuc3AtdGFiX190YWJfdGl0bGV7CgkJZm9udC1zaXplOjE0cHggIWltcG9ydGFudDsKCX0KCQoJI3NwLXdwLXRhYnMtd3JhcHBlcl8yODY5MTY1NS5zcC10YWJfX2xheS1kZWZhdWx0ID4gdWwgPiBsaSA+IGxhYmVsewoJCXBhZGRpbmctbGVmdDowcHg7CgkJcGFkZGluZy1yaWdodDowcHg7Cgl9CgkKCS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcyBzcGFuIHsKCWZsZXg6IDAgMCA1MCUgIWltcG9ydGFudDsKfQoJCgkuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC10aGlyZCB7CiAgICBncmlkLWNvbHVtbjogc3BhbiAxMiAhaW1wb3J0YW50Owp9Cgl9CgpAbWVkaWEgKG1pbi13aWR0aDoxMDI1cHgpIGFuZCAobWF4LXdpZHRoOjE0MDNweCl7CgkuZWxlbWVudG9yLTI4NjkwODk2IC5lbGVtZW50b3ItZWxlbWVudC5lbGVtZW50b3ItZWxlbWVudC0yZmQwOGFhID4gLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyIHsKICAgIG1hcmdpbjogLTZlbSAwIDBlbSAwICFpbXBvcnRhbnQ7Cn0KCQoJLmVsZW1lbnRvci0yODY5MDg5NiAuZWxlbWVudG9yLWVsZW1lbnQuZWxlbWVudG9yLWVsZW1lbnQtZGFjOWE3NCA+IC5lbGVtZW50b3Itd2lkZ2V0LWNvbnRhaW5lciB7CiAgICBtYXJnaW46IC0xMmVtIDBlbSAwZW0gMGVtOwp9Cn0KCkBtZWRpYSAobWluLXdpZHRoOjE3MDBweCl7CgkuZWxlbWVudG9yLTI4NjkwODk2IC5lbGVtZW50b3ItZWxlbWVudC5lbGVtZW50b3ItZWxlbWVudC03YzBhZDY1ewoJCW1hcmdpbi10b3A6LTUyZW07Cgl9Cn0JCTwvc3R5bGU+CjxkaXYgY2xhc3M9InN2Zy1zcHJpdGUiPjxzdmcgd2lkdGg9IjAiIGhlaWdodD0iMCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlIj48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAzNyAyMSIgaWQ9ImFuZHJvaWQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI2LjgyOCAxNS40NDJhMS40NzUgMS40NzUgMCAwMS0xLjQ0OS0xLjc2NiAxLjQ3OCAxLjQ3OCAwIDExMS40NSAxLjc2NnptLTE2LjMyMyAwYTEuNDc2IDEuNDc2IDAgMDEtMS40NDktMS43NjYgMS40NzggMS40NzggMCAxMTEuNDUgMS43NjZ6TTI3LjM1OCA2LjU0bDIuOTUxLTUuMTE2YS42MTUuNjE1IDAgMDAtMS4wNjMtLjYxNmwtMi45ODkgNS4xODFjLTIuMjg1LTEuMDQ0LTQuODUyLTEuNjI1LTcuNTktMS42MjUtMi43NCAwLTUuMzA2LjU4Mi03LjU5MSAxLjYyNUw4LjA4OC44MDhhLjYxNC42MTQgMCAxMC0xLjA2NC42MTRsMi45NTIgNS4xMTdDNC45MDggOS4yOTggMS40NCAxNC40MzMuOTM0IDIwLjVIMzYuNGMtLjUwNy02LjA2Ny0zLjk3My0xMS4yMDItOS4wNDEtMTMuOTYxeiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Ym94PSIwIDAgMTIuNDI4IDI0LjI0IiBpZD0iYXJyb3ciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZGF0YS1uYW1lPSJQYXRoIDMzODAiIGQ9Ik0wIDBsMTIuNDI4IDExLjkxMUwwIDI0LjI0di02LjUzM2w1LjYzMS01LjhMMCA3eiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld2JveD0iMCAwIDI1LjgwOSAyMC40OSIgaWQ9ImFycm93LW9yYW5nZS1yaWdodCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkYXRhLW5hbWU9IlBhdGggMzM0MSIgZD0iTTAgNS43MDNoMTUuNTY0di01LjdsMTAuMjQ0IDEwLjI0NC0xMC4yNDQgMTAuMjQ2di02LjExN0gweiIgZmlsbD0iI2U1NWIyYiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDIxIDE5IiBpZD0iYnRuLWFycm93IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUuOTk1IDEwLjY3SDBWOC4zM2gxNS45OTZsLTUuOTItNi4yMTZMMTEuNzcxLjVsOC41NzIgOS04LjU3MiA5LTEuNjk1LTEuNjE0IDUuOTItNi4yMTV6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdib3g9IjAgMCA1MTIgNTEyIiBpZD0iY2FsZW5kYXIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMzg2IiBjeT0iMjEwIiByPSIyMCI+PC9jaXJjbGU+PHBhdGggZD0iTTQzMiA0MGgtMjZWMjBjMC0xMS4wNDYtOC45NTQtMjAtMjAtMjBzLTIwIDguOTU0LTIwIDIwdjIwaC05MVYyMGMwLTExLjA0Ni04Ljk1NC0yMC0yMC0yMHMtMjAgOC45NTQtMjAgMjB2MjBoLTkwVjIwYzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMHYyMEg4MEMzNS44ODggNDAgMCA3NS44ODggMCAxMjB2MzEyYzAgNDQuMTEyIDM1Ljg4OCA4MCA4MCA4MGgxNTNjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBzLTguOTU0LTIwLTIwLTIwSDgwYy0yMi4wNTYgMC00MC0xNy45NDQtNDAtNDBWMTIwYzAtMjIuMDU2IDE3Ljk0NC00MCA0MC00MGgyNXYyMGMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMHMyMC04Ljk1NCAyMC0yMFY4MGg5MHYyMGMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMHMyMC04Ljk1NCAyMC0yMFY4MGg5MXYyMGMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMHMyMC04Ljk1NCAyMC0yMFY4MGgyNmMyMi4wNTYgMCA0MCAxNy45NDQgNDAgNDB2MTE0YzAgMTEuMDQ2IDguOTU0IDIwIDIwIDIwczIwLTguOTU0IDIwLTIwVjEyMGMwLTQ0LjExMi0zNS44ODgtODAtODAtODB6Ij48L3BhdGg+PHBhdGggZD0iTTM5MSAyNzBjLTY2LjcyIDAtMTIxIDU0LjI4LTEyMSAxMjFzNTQuMjggMTIxIDEyMSAxMjEgMTIxLTU0LjI4IDEyMS0xMjEtNTQuMjgtMTIxLTEyMS0xMjF6bTAgMjAyYy00NC42NjMgMC04MS0zNi4zMzYtODEtODFzMzYuMzM3LTgxIDgxLTgxIDgxIDM2LjMzNiA4MSA4MS0zNi4zMzcgODEtODEgODF6Ij48L3BhdGg+PHBhdGggZD0iTTQyMCAzNzFoLTl2LTIxYzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMHY0MWMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMGgyOWMxMS4wNDYgMCAyMC04Ljk1NCAyMC0yMHMtOC45NTQtMjAtMjAtMjB6Ij48L3BhdGg+PGNpcmNsZSBjeD0iMjk5IiBjeT0iMjEwIiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMjEyIiBjeT0iMjk3IiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTI1IiBjeT0iMjEwIiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTI1IiBjeT0iMjk3IiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMTI1IiBjeT0iMzg0IiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMjEyIiBjeT0iMzg0IiByPSIyMCI+PC9jaXJjbGU+PGNpcmNsZSBjeD0iMjEyIiBjeT0iMjEwIiByPSIyMCI+PC9jaXJjbGU+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMjcgMjAiIGlkPSJkaXNjb3JkIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMi43MDggMS42NzVBMjEuMDQzIDIxLjA0MyAwIDAwMTcuMzc4IDBjLS4yMy40MTUtLjQ5OC45NzMtLjY4MyAxLjQxOGExOS41NzIgMTkuNTcyIDAgMDAtNS45MDcgMEExNS4xNCAxNS4xNCAwIDAwMTAuMDk3IDBhMjAuOTczIDIwLjk3MyAwIDAwLTUuMzM0IDEuNjhDMS4zODkgNi43NzYuNDc1IDExLjc0Ny45MzIgMTYuNjQ3YzIuMjM3IDEuNjcgNC40MDYgMi42ODYgNi41MzcgMy4zNS41MjctLjcyNC45OTYtMS40OTUgMS40LTIuMzA2YTEzLjc2IDEzLjc2IDAgMDEtMi4yMDQtMS4wNzNjLjE4NS0uMTM3LjM2NS0uMjguNTQtLjQyOCA0LjI1MSAxLjk4OSA4Ljg3IDEuOTg5IDEzLjA3IDAgLjE3OC4xNDguMzU5LjI5MS41NDEuNDI4LS42OTkuNDIxLTEuNDM4Ljc4Mi0yLjIwOCAxLjA3NS40MDQuODEuODcxIDEuNTgyIDEuNCAyLjMwNiAyLjEzMy0uNjY0IDQuMzA0LTEuNjggNi41NDEtMy4zNTIuNTM3LTUuNjgtLjkxNi0xMC42MDYtMy44NC0xNC45NzN6bS0xMy4yNiAxMS45NmMtMS4yNzYgMC0yLjMyMi0xLjE5Mi0yLjMyMi0yLjY0MyAwLTEuNDUgMS4wMjQtMi42NDQgMi4zMjMtMi42NDQgMS4yOTggMCAyLjM0NSAxLjE5MSAyLjMyMiAyLjY0NC4wMDIgMS40NS0xLjAyNCAyLjY0Mi0yLjMyMiAyLjY0MnptOC41ODQgMGMtMS4yNzYgMC0yLjMyMi0xLjE5Mi0yLjMyMi0yLjY0MyAwLTEuNDUgMS4wMjQtMi42NDQgMi4zMjItMi42NDQgMS4yOTkgMCAyLjM0NSAxLjE5MSAyLjMyMyAyLjY0NCAwIDEuNDUtMS4wMjQgMi42NDItMi4zMjMgMi42NDJ6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCA2MCA3MCIgaWQ9ImRvY3VtZW50LXBkZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU5LjI1IDE3LjJMNDIuODUuNyA0MS4xIDBIMi41TDAgMi41VjMwaDVWNWgzMHYxNy41bDIuNSAyLjVINTV2NWg1VjE5bC0uNzUtMS44ek00MCAyMFY1bDE1IDE1SDQwek0yLjUgMzVMMCAzNy41djMwTDIuNSA3MGg1NWwyLjUtMi41di0zMEw1Ny41IDM1aC01NXpNNTUgNjB2NUg1VjQwaDUwdjIwem0tNDAtNWgtMS42djVIMTBWNDVoNS4zYzMuNzUgMCA1LjY1IDEuOCA1LjY1IDVhNC43IDQuNyAwIDAxLTEuNiAzLjZBNi42NSA2LjY1IDAgMDExNSA1NXptLS4zLTcuMjVoLTEuM3Y0LjY1aDEuM2MxLjggMCAyLjctLjggMi43LTIuMzVzLS45LTIuMy0yLjctMi4zek0zNSA1Ny45YTcuNCA3LjQgMCAwMDIuMi01LjZjMC01LTIuNjUtNy4zLTgtNy4zaC01LjN2MTVoNS4zYTggOCAwIDAwNS44LTIuMXptLTcuNzUtLjY1di05LjVoMS42NUE0LjcgNC43IDAgMDEzMi40IDQ5YTQuNTUgNC41NSAwIDAxMS4yNSAzLjM1IDUgNSAwIDAxLTEuMjUgMy42IDQuNyA0LjcgMCAwMS0zLjQ1IDEuM2gtMS43ek00OS41IDU0LjJoLTQuODVWNjBoLTMuNFY0NWg4Ljd2Mi43NWgtNS4zdjMuN2g0Ljg1djIuNzV6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTYgMTYiIGlkPSJmYXEtaWNvbi1hcnJvdyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI3LjkwMSIgY3k9IjgiIHI9IjcuNDkzIiBmaWxsPSIjNjhDREVEIj48L2NpcmNsZT48cGF0aCBkPSJNMTAuMjk5IDhMNS44MDMgNC4xMDQgNy4zIDhsLTEuNDk4IDMuODk2TDEwLjI5OSA4eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTYgMTYiIGlkPSJpY29uLWNsb3NlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45MDIgOGw1LjcwNC01LjcwNUExLjM0NSAxLjM0NSAwIDEwMTMuNzA1LjM5NEw4IDYuMDk5IDIuMjk1LjM5NEExLjM0NSAxLjM0NSAwIDEwLjM5NCAyLjI5NUw2LjA5OCA4IC4zOTQgMTMuNzA1YTEuMzQ1IDEuMzQ1IDAgMDAxLjkwMSAxLjkwMUw4IDkuOTAxbDUuNzA1IDUuNzA1YTEuMzQ1IDEuMzQ1IDAgMDAxLjkwMS0xLjkwMUw5LjkwMiA4eiIgZmlsbD0iIzM2NTNBNyI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDI0IDE3IiBpZD0iaWNvbi1maWx0ZXJzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiMzRDNEM0QiIGQ9Ik0wIDRoMjR2Mi4yNUgwek0wIDExLjVoMjR2Mi4yNUgweiI+PC9wYXRoPjxjaXJjbGUgY3g9IjE2LjEyNSIgY3k9IjQuMzc1IiByPSIzLjM3NSIgZmlsbD0iIzNEM0QzRCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjcuMTI1IiBjeT0iMTIuNjI1IiByPSIzLjM3NSIgZmlsbD0iIzNEM0QzRCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiPjwvY2lyY2xlPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDYgOSIgaWQ9Imluc2lnaHQtaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS43MiA0LjVMLjYyLjA4bDEuNyA0LjQyLTEuNyA0LjQyIDUuMS00LjQyeiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMjEgMjUiIGlkPSJpb3MiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwLjE5NiA4LjUzYy0xLjY2NiAxLjAyOS0yLjY5NCAyLjc5My0yLjY5NCA0Ljc1NCAwIDIuMjA2IDEuMzIzIDQuMjE2IDMuMzMxIDUuMDVhMTMuMDkzIDEzLjA5MyAwIDAxLTEuNzE0IDMuNTI5Yy0xLjA3OCAxLjUyLTIuMjA1IDMuMDg4LTMuODcxIDMuMDg4cy0yLjE1Ni0uOTgtNC4xMTYtLjk4QzkuMjIyIDIzLjk3IDguNTM1IDI1IDYuOTY3IDI1Yy0xLjU2NyAwLTIuNjQ1LTEuNDIyLTMuODctMy4xODZDMS40OCAxOS4zNjMuNTQ5IDE2LjUyLjUgMTMuNTI5YzAtNC44NTMgMy4xMzYtNy40NSA2LjI3MS03LjQ1IDEuNjY2IDAgMy4wMzggMS4wNzggNC4wNjcgMS4wNzguOTggMCAyLjU0OC0xLjEyOCA0LjQxLTEuMTI4YTUuODQ5IDUuODQ5IDAgMDE0Ljk0OCAyLjV6bS01LjgzLTQuNTZjLjgzMy0uOTggMS4yNzQtMi4yMDUgMS4zMjMtMy40OCAwLS4xNDcgMC0uMzQzLS4wNS0uNDlhNS42MzIgNS42MzIgMCAwMC0zLjY3NCAxLjkxMiA1LjM1MSA1LjM1MSAwIDAwLTEuMzcyIDMuMzgyYzAgLjE0NyAwIC4yOTQuMDUuNDQxLjA5NyAwIC4yNDQuMDUuMzQyLjA1IDEuMzIzLS4wOTkgMi41NDgtLjc4NSAzLjM4LTEuODE0eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Ym94PSIwIDAgMTA0IDEwNCIgaWQ9ImxpYi1pY29uLTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MS42IDc1LjRMNzIuOCA1MiA0MS42IDI4LjZ2NDYuOHpNNTIgMEMyMy40IDAgMCAyMy40IDAgNTJzMjMuNCA1MiA1MiA1MiA1Mi0yMy40IDUyLTUyUzgwLjYgMCA1MiAwem0wIDkzLjZjLTIyLjg4IDAtNDEuNi0xOC43Mi00MS42LTQxLjYgMC0yMi44OCAxOC43Mi00MS42IDQxLjYtNDEuNiAyMi44OCAwIDQxLjYgMTguNzIgNDEuNiA0MS42IDAgMjIuODgtMTguNzIgNDEuNi00MS42IDQxLjZ6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Ym94PSIwIDAgMzAgMjkiIGlkPSJsaWItaWNvbi0zIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xLjU0MiAyOC40MTRjLjc4OC43OCAyLjA2OC43OCAyLjg1OCAwbDEwLjY0OC0xMC41NkwyNS42IDI4LjQwNmMuNzg4Ljc5IDIuMDY4Ljc5IDIuODU2IDBhMi4wMyAyLjAzIDAgMDAwLTIuODY0TDE3LjkyIDE1LjAwNGwxMC40NzYtMTAuMzlhMS45ODcgMS45ODcgMCAwMDAtMi44MjggMi4wMzIgMi4wMzIgMCAwMC0yLjg1NiAwTDE1LjA3OCAxMi4xNjIgNC40NiAxLjU0MmEyLjAxNyAyLjAxNyAwIDAwLTIuODU2IDAgMi4wMyAyLjAzIDAgMDAwIDIuODY0TDEyLjIwNiAxNS4wMSAxLjU0NCAyNS41ODRjLS43OS43ODItLjc5IDIuMDUtLjAwMiAyLjgzeiIgZmlsbD0iI2ZmZiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDIyIDIyIiBpZD0ibGliLWljb24tYXJyb3cxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xLjg0NyAxMS45OTd2LjE1SDE2LjYxMWwtNC40MDMgNC40MDQtLjEwNi4xMDYuMTA2LjEwNiAxLjQxNCAxLjQxNC4xMDYuMTA2LjEwNi0uMTA2IDcuMDcxLTcuMDcuMTA2LS4xMDctLjEwNi0uMTA2LTcuMDcxLTcuMDcxLS4xMDYtLjEwNi0uMTA2LjEwNi0xLjQxNCAxLjQxNC0uMTA2LjEwNi4xMDYuMTA2IDQuNDAzIDQuNDA0SDEuODQ3djIuMTQ0eiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iLjMiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDEzIDE2IiBpZD0ibGliLWljb24tYXJyb3cyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMi44MjMgOC4yODRMLjk1MyAxNS44OThjLS4yMzYuMTg2LS4zNDQuMTEtLjI0LS4xNjlsNC44ODMtNy4yNzZjLjEwNC0uMjguMTAzLS43MzItLjAwMi0xLjAxMUwuNzE0LjI3MkMuNjEtLjAwOS43MTktLjA4NS45NTYuMWwxMS44NjYgNy41MTJjLjIzOC4xODQuMjM5LjQ4NS4wMDIuNjd6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAxNiAxMiIgaWQ9ImxpYi1pY29uLWVudmVsb3AiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDBoMTJhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJIMmEyIDIgMCAwMS0yLTJWMmEyIDIgMCAwMTItMnptMCA1djVoMTJWNC44OTRMOCA4IDIgNXptMC0ybDYgMi45ODhMMTQgM1YySDJ2MXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDEyIDIiIGlkPSJsaWItaWNvbi1taW51cyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMlYwaDEydjJIMHoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDE2IDE2IiBpZD0ibGliLWljb24tcGhvbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjYxIDguMzg4Yy0uNTQxLS41NDItLjk4OS0xLjEyNy0xLjIyNi0xLjYwMmExLjgwMSAxLjgwMSAwIDAxLS4xNDgtLjM4bC40OC0uNDhjLjEwNS0uMTA2LjE1Ni0uMTU3LjIyMi0uMjI2YTQuNDUgNC40NSAwIDAwLjM1Ni0uNDE2Yy40NTctLjYxNy42MjctMS4yODguMDg2LTEuODkzQzYuMzU0IDEuOTU2IDUuNjY0IDEuMDcgNS4yMi42MzFjLS45MTItLjktMi40LS43OC0zLjE5MSAwLS4zODMuMzc3LS41MTMuNTA3LS45MDUuOTA1Qy0xLjE2NyAzLjgzLjIgOC41NzEgMy44MTIgMTIuMTg2YzMuNjEyIDMuNjE2IDguMzUzIDQuOTg0IDEwLjY1MiAyLjY4NC4zNi0uMzQ3LjY3LS42NTYuOTEzLS45MTQuNzcyLS44MTYuODg5LTIuMjQtLjAwNi0zLjE2OS0uNDI1LS40NDItMS4yNzEtMS4wOTktMi43NjgtMi4xNy0uNTQ4LS40ODUtMS4xODgtLjM4LTEuNzU3LS4wMDYtLjI1Ni4xNjgtLjQzNi4zMzItLjc3Ni42NzJsLS40OC40OGExLjc5OSAxLjc5OSAwIDAxLS4zOC0uMTQ4Yy0uNDczLS4yMzctMS4wNTktLjY4NS0xLjYtMS4yMjd6bTMuMjc4IDIuOTA1bC41OTYtLjU5N2MuMTAyLS4xMDIuMTgyLS4xOC4yNDktLjI0MiAxLjIwNy44NyAxLjkxMyAxLjQyMyAyLjE5OCAxLjcyLjA5Ny4xLjA4LjMxOC0uMDA2LjQwOC0uMjIuMjMzLS41MDguNTIxLS44NjIuODYyLTEuMzA1IDEuMzA1LTQuOTAyLjI2Ny03LjgzNy0yLjY3LTIuOTM2LTIuOTQtMy45NzQtNi41MzgtMi42ODItNy44My4zOS0uMzk2LjUxMy0uNTIuODg5LS44ODkuMDYtLjA1OS4zMDUtLjA3OC4zODQgMCAuMzA4LjMwNC44ODUgMS4wMzkgMS43MjggMi4yMDhhMTAuMiAxMC4yIDAgMDEtLjI0My4yNWwtLjU5Ni41OTVDMy41NiA2LjI1NSA0LjQ3IDguMDc0IDYuMTk2IDkuODAyYzEuNzI1IDEuNzI3IDMuNTQ1IDIuNjM4IDQuNjkyIDEuNDl6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAxMiAxNSIgaWQ9ImxpYi1pY29uLXBpbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQuOTcgMTQuMDhMNiAxNWwxLjAzLS45MkMxMC4zMjMgMTEuMTQ5IDEyIDguNTQzIDEyIDYuMTA0IDEyIDIuNjQgOS4zNDMgMCA2IDBTMCAyLjY0IDAgNi4xMDNjMCAyLjQ0IDEuNjc4IDUuMDQ1IDQuOTcgNy45Nzh6TTYgMmMyLjI0IDAgNCAxLjc0OCA0IDQuMTAzIDAgMS42Ny0xLjI5OCAzLjc0NC00IDYuMjE0LTIuNzAyLTIuNDctNC00LjU0NC00LTYuMjE0QzIgMy43NDggMy43NiAyIDYgMnptMCAxYTMgMyAwIDExMCA2IDMgMyAwIDAxMC02ek01IDZhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAweiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTIgMTIiIGlkPSJsaWItaWNvbi1wbHVzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNyA1aDV2Mkg3djVINVY3SDBWNWg1VjBoMnY1eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTQgMTQiIGlkPSJsaWItaWNvbi1zZWFyY2giIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjYxOCAxMC4wMzJhNS41IDUuNSAwIDExMS40MTQtMS40MTRsMy42NzUgMy42NzUtMS40MTQgMS40MTQtMy42NzUtMy42NzV6TTUuNSA5YTMuNSAzLjUgMCAxMDAtNyAzLjUgMy41IDAgMDAwIDd6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAxNSA5IiBpZD0ibGliLWljb24tc2xpZGVyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xIDFsNi41IDYuNUwxNCAxIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTIgMTIiIGlkPSJsaWItaWNvbi14IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNS43MDcgNy4xMjFsLTQuMjkzIDQuMjkzTDAgMTBsNC4yOTMtNC4yOTNMMCAxLjQxNCAxLjQxNCAwbDQuMjkzIDQuMjkzTDEwIDBsMS40MTQgMS40MTQtNC4yOTMgNC4yOTNMMTEuNDE0IDEwIDEwIDExLjQxNCA1LjcwNyA3LjEyMXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld2JveD0iMCAwIDE5LjU4NCAxOS41ODQiIGlkPSJtYWlsIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGRhdGEtbmFtZT0iUGF0aCA2IiBkPSJNMTcuOTY0IDYuNDQ4YTEuNjA3IDEuNjA3IDAgMDAtLjc2OS0xLjM3TDkuNzkyLjgwNmwtNy40IDQuMjcyYTEuNjE0IDEuNjE0IDAgMDAtLjc4IDEuMzd2OC4wNThhMS42MjQgMS42MjQgMCAwMDEuNjM2IDEuNjEyaDEzLjA4OGExLjYyNCAxLjYyNCAwIDAwMS42MzYtMS42MTJsLS4wMDgtOC4wNnptLTguMTcyIDQuMDNMMy4wMzUgNi4zMTVsNi43NTctMy45IDYuNzU3IDMuOXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjxwYXRoIGRhdGEtbmFtZT0iUGF0aCA3IiBkPSJNMCAwaDE5LjU4NHYxOS41ODRIMHoiIGZpbGw9Im5vbmUiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAzOCA0MSIgaWQ9InBhcGVyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxtYXNrIGlkPSJhemEiIG1hc2t1bml0cz0idXNlclNwYWNlT25Vc2UiIHg9Ii0uMTQ2IiB5PSIwIiB3aWR0aD0iMzgiIGhlaWdodD0iNDEiIGZpbGw9IiMwMDAiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTS0uMTQ2IDBoMzh2NDFoLTM4eiI+PC9wYXRoPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzcuMDQzIDExLjI4OGMuMDgzLjA3NS4xNjUuMTUuMTY1LjIyNC4wODMuMTUuMDgzLjIyNC4wODMuMjI0VjM4LjVjMCAuODItLjc0NSAxLjQ5MS0xLjY1NiAxLjQ5MUgyLjUxMWMtLjkxMSAwLTEuNjU3LS42Ny0xLjY1Ny0xLjQ5VjIuNDlDLjg1NCAxLjY3MSAxLjYgMSAyLjUxMSAxaDIyLjc3M2MuMDk3IDAgLjE2NS4wMjYuMjIyLjA0Ny4wNC4wMTUuMDc1LjAyOC4xMDkuMDI4LjA4MyAwIC4xNjYuMDc0LjI0OC4xNDlsMTEuMTggMTAuMDY0em0tMTAuOTMxLS4yMjNoOC4zNjRsLTcuNjE5LTYuODYtLjc0NS0uNjd2Ny41M3pNMi41MSAyLjQ5djM1LjkzNWgzMy4xMjR2LTI1Ljg3aC05LjUyM2MtLjkxMSAwLTEuNjU2LS42NzEtMS42NTYtMS40OTFWMi40OUgyLjUxem01LjA1MyAxNC4xNjVoMjMuMDIyYy40MTQgMCAuODI4LjI5OS44MjguNzQ2cy0uMzMyLjc0NS0uODI4Ljc0NUg3LjU2NGMtLjQ5NyAwLS44MjgtLjI5OC0uODI4LS43NDUgMC0uNDQ4LjMzMS0uNzQ2LjgyOC0uNzQ2em0yMy4wMjIgNC4zOTlINy41NjRjLS40OTcgMC0uODI4LjI5OC0uODI4Ljc0NSAwIC40NDguMzMxLjc0Ni44MjguNzQ2aDIzLjAyMmMuNDk3IDAgLjgyOC0uMjk4LjgyOC0uNzQ2IDAtLjQ0Ny0uNDE0LS43NDUtLjgyOC0uNzQ1ek03LjU2NCAyNS41MjhoMjMuMDIyYy40MTQgMCAuODI4LjI5OC44MjguNzQ2IDAgLjQ0Ny0uMzMyLjc0NS0uODI4Ljc0NUg3LjU2NGMtLjQ5NyAwLS44MjgtLjI5OC0uODI4LS43NDUgMC0uNDQ4LjMzMS0uNzQ2LjgyOC0uNzQ2em0yMy4wMjIgNC4zOTlINy41NjRjLS40OTcgMC0uODI4LjI5OC0uODI4Ljc0NSAwIC40NDguMzMxLjc0Ni44MjguNzQ2aDIzLjAyMmMuNDk3IDAgLjgyOC0uMjk4LjgyOC0uNzQ2IDAtLjQ0Ny0uNDE0LS43NDUtLjgyOC0uNzQ1ek03LjU2NCAzNC4zMjVoMjMuMDIyYy40MTQgMCAuODI4LjI5OS44MjguNzQ2cy0uMzMyLjc0NS0uODI4Ljc0NUg3LjU2NGMtLjQ5NyAwLS44MjgtLjI5OC0uODI4LS43NDVzLjMzMS0uNzQ2LjgyOC0uNzQ2eiI+PC9wYXRoPjwvbWFzaz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM3LjA0MyAxMS4yODhjLjA4My4wNzUuMTY1LjE1LjE2NS4yMjQuMDgzLjE1LjA4My4yMjQuMDgzLjIyNFYzOC41YzAgLjgyLS43NDUgMS40OTEtMS42NTYgMS40OTFIMi41MTFjLS45MTEgMC0xLjY1Ny0uNjctMS42NTctMS40OVYyLjQ5Qy44NTQgMS42NzEgMS42IDEgMi41MTEgMWgyMi43NzNjLjA5NyAwIC4xNjUuMDI2LjIyMi4wNDcuMDQuMDE1LjA3NS4wMjguMTA5LjAyOC4wODMgMCAuMTY2LjA3NC4yNDguMTQ5bDExLjE4IDEwLjA2NHptLTEwLjkzMS0uMjIzaDguMzY0bC03LjYxOS02Ljg2LS43NDUtLjY3djcuNTN6TTIuNTEgMi40OXYzNS45MzVoMzMuMTI0di0yNS44N2gtOS41MjNjLS45MTEgMC0xLjY1Ni0uNjcxLTEuNjU2LTEuNDkxVjIuNDlIMi41MXptNS4wNTMgMTQuMTY1aDIzLjAyMmMuNDE0IDAgLjgyOC4yOTkuODI4Ljc0NnMtLjMzMi43NDUtLjgyOC43NDVINy41NjRjLS40OTcgMC0uODI4LS4yOTgtLjgyOC0uNzQ1IDAtLjQ0OC4zMzEtLjc0Ni44MjgtLjc0NnptMjMuMDIyIDQuMzk5SDcuNTY0Yy0uNDk3IDAtLjgyOC4yOTgtLjgyOC43NDUgMCAuNDQ4LjMzMS43NDYuODI4Ljc0NmgyMy4wMjJjLjQ5NyAwIC44MjgtLjI5OC44MjgtLjc0NiAwLS40NDctLjQxNC0uNzQ1LS44MjgtLjc0NXpNNy41NjQgMjUuNTI4aDIzLjAyMmMuNDE0IDAgLjgyOC4yOTguODI4Ljc0NiAwIC40NDctLjMzMi43NDUtLjgyOC43NDVINy41NjRjLS40OTcgMC0uODI4LS4yOTgtLjgyOC0uNzQ1IDAtLjQ0OC4zMzEtLjc0Ni44MjgtLjc0NnptMjMuMDIyIDQuMzk5SDcuNTY0Yy0uNDk3IDAtLjgyOC4yOTgtLjgyOC43NDUgMCAuNDQ4LjMzMS43NDYuODI4Ljc0NmgyMy4wMjJjLjQ5NyAwIC44MjgtLjI5OC44MjgtLjc0NiAwLS40NDctLjQxNC0uNzQ1LS44MjgtLjc0NXpNNy41NjQgMzQuMzI1aDIzLjAyMmMuNDE0IDAgLjgyOC4yOTkuODI4Ljc0NnMtLjMzMi43NDUtLjgyOC43NDVINy41NjRjLS40OTcgMC0uODI4LS4yOTgtLjgyOC0uNzQ1cy4zMzEtLjc0Ni44MjgtLjc0NnoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjxwYXRoIGQ9Ik0zNy4yMDggMTEuNTEyaC0uMXYuMDI2bC4wMTMuMDIzLjA4Ny0uMDQ5em0tLjE2NS0uMjI0bC4wNjctLjA3NC0uMDY3LjA3NHpNMjUuNTA2IDEuMDQ3bC0uMDM1LjA5NC4wMTMuMDAzLjAyMi0uMDk3em0wIDBsLjAzNS0uMDk1LS4wMTMtLjAwMy0uMDIyLjA5OHptLjM1Ny4xNzdsLjA2Ny0uMDc1LS4wNjcuMDc1em04LjYxMyA5Ljg0di4xaC4yNmwtLjE5NC0uMTc0LS4wNjYuMDc1em0tOC4zNjQgMGgtLjF2LjFoLjF2LS4xem0uNzQ1LTYuODU4bC4wNjctLjA3NS0uMDY3LjA3NXptLS43NDUtLjY3MWwuMDY3LS4wNzUtLjE2Ny0uMTV2LjIyNWguMXpNMi41MSAzOC40MjVoLS4xdi4xaC4xdi0uMXptMC0zNS45MzR2LS4xaC0uMXYuMWguMXptMzMuMTI0IDM1LjkzNXYuMWguMXYtLjFoLS4xem0wLTI1Ljg3aC4xdi0uMWgtLjF2LjF6TTI0LjQ1NSAyLjQ5aC4xdi0uMWgtLjF2LjF6bTEyLjg1MyA5LjAyMWEuMjguMjggMCAwMC0uMDc1LS4xNzZjLS4wMzYtLjA0NC0uMDgzLS4wODYtLjEyMy0uMTIybC0uMTM0LjE0OWMuMDQzLjAzOC4wNzguMDcuMTA0LjEwMS4wMjcuMDMzLjAyOC4wNDcuMDI4LjA0OGguMnptLS4wMTcuMjI0aC4xdi0uMDAxLS4wMDEtLjAwM2EuODguODggMCAwMC0uMDk1LS4yNjhsLS4xNzUuMDk4YS42ODcuNjg3IDAgMDEuMDcuMTc1djBoLjF6bS4xLjA3NHYtLjA3NGgtLjJ2LjA3NGguMnptMCAyNi42OVYxMS44MWgtLjJWMzguNWguMnptLTEuNzU2IDEuNTkxYy45NTYgMCAxLjc1Ni0uNzA2IDEuNzU2LTEuNTloLS4yYzAgLjc1NS0uNjkgMS4zOS0xLjU1NiAxLjM5di4yem0tMzMuMTI0IDBoMzMuMTI0di0uMkgyLjUxMXYuMnptLTEuNzU3LTEuNTljMCAuODg0LjggMS41OSAxLjc1NyAxLjU5di0uMmMtLjg2NiAwLTEuNTU3LS42MzUtMS41NTctMS4zOWgtLjJ6bTAtMzYuMDF2MzYuMDFoLjJWMi40OWgtLjJ6TTIuNTExLjlDMS41NTUuOS43NTQgMS42MDYuNzU0IDIuNDkxaC4yYzAtLjc1NS42OS0xLjM5MSAxLjU1Ny0xLjM5MVYuOXpNMjUuMi45SDIuNTF2LjJIMjUuMlYuOXptLjA4MyAwSDI1LjJ2LjJoLjA4M1YuOXptLjI1Ny4wNTNDMjUuNDgzLjkzMSAyNS40LjkgMjUuMjg0Ljl2LjJjLjA3OCAwIC4xMzIuMDIuMTg3LjA0bC4wNy0uMTg3ek0yNS41MjguOTVsLS4wNDQuMTk1LjA0NC0uMTk1em0uMDg3LjAyNmEuMjQ3LjI0NyAwIDAxLS4wNzQtLjAyMmwtLjA3LjE4N2MuMDM2LjAxNC4wODguMDM1LjE0NC4wMzV2LS4yem0uMzE1LjE3NGMtLjA0LS4wMzYtLjA4Ny0uMDc4LS4xMzUtLjExYS4zMjcuMzI3IDAgMDAtLjE4LS4wNjR2LjJjLjAxMiAwIC4wMzMuMDA1LjA2OC4wMjkuMDM1LjAyMy4wNy4wNTYuMTEzLjA5NGwuMTM0LS4xNDl6bTExLjE4IDEwLjA2NUwyNS45MyAxLjE0OWwtLjEzNC4xNDkgMTEuMTggMTAuMDY1LjEzNC0uMTQ5em0tMi42MzQtLjI1aC04LjM2NHYuMmg4LjM2NHYtLjJ6TTI2Ljc5IDQuMjhsNy42MTkgNi44NTkuMTMzLS4xNDktNy42MTgtNi44NTktLjEzNC4xNXptLS43NDUtLjY3bC43NDUuNjcuMTM0LS4xNDktLjc0NS0uNjctLjEzNC4xNDh6bS4xNjcgNy40NTV2LTcuNTNoLS4ydjcuNTNoLjJ6TTIuNjEgMzguNDI1VjIuNDkyaC0uMnYzNS45MzVoLjJ6bTMzLjAyNC0uMUgyLjUxMXYuMmgzMy4xMjR2LS4yem0tLjEtMjUuNzd2MjUuODdoLjJ2LTI1Ljg3aC0uMnptLTkuNDIzLjFoOS41MjN2LS4yaC05LjUyM3YuMnptLTEuNzU2LTEuNTljMCAuODg1LjggMS41OSAxLjc1NiAxLjU5di0uMmMtLjg2NiAwLTEuNTU2LS42MzUtMS41NTYtMS4zOWgtLjJ6bTAtOC41NzR2OC41NzRoLjJWMi40OWgtLjJ6bS0yMS44NDUuMWgyMS45NDV2LS4ySDIuNTF2LjJ6bTI4LjA3NSAxMy45NjVINy41NjR2LjJoMjMuMDIydi0uMnptLjkyOC44NDZjMC0uNTE4LS40NzYtLjg0Ni0uOTI4LS44NDZ2LjJjLjM3NSAwIC43MjguMjcuNzI4LjY0NmguMnptLS45MjguODQ1Yy4yNjggMCAuNS0uMDguNjY3LS4yM2EuODA2LjgwNiAwIDAwLjI2LS42MTVoLS4yYS42MDcuNjA3IDAgMDEtLjE5NC40NjZjLS4xMjMuMTEtLjMwNS4xOC0uNTMzLjE4di4yem0tMjMuMDIyIDBoMjMuMDIydi0uMkg3LjU2NHYuMnptLS45MjgtLjg0NWMwIC4yNS4wOTMuNDY0LjI2LjYxNS4xNjguMTUuNC4yMy42NjguMjN2LS4yYy0uMjI4IDAtLjQxLS4wNjgtLjUzMy0uMThhLjYwNy42MDcgMCAwMS0uMTk1LS40NjVoLS4yem0uOTI4LS44NDZjLS4yNjggMC0uNS4wOC0uNjY3LjIzYS44MDYuODA2IDAgMDAtLjI2LjYxNmguMmMwLS4xOTguMDcxLS4zNTYuMTk0LS40NjYuMTIzLS4xMTEuMzA1LS4xOC41MzMtLjE4di0uMnptMCA0LjU5OWgyMy4wMjJ2LS4ySDcuNTY0di4yem0tLjcyOC42NDVjMC0uMTk3LjA3Mi0uMzU2LjE5NS0uNDY2LjEyMy0uMTEuMzA1LS4xOC41MzMtLjE4di0uMmMtLjI2OCAwLS41LjA4MS0uNjY3LjIzMmEuODA2LjgwNiAwIDAwLS4yNi42MTRoLjJ6bS43MjguNjQ2Yy0uMjI4IDAtLjQxLS4wNjktLjUzMy0uMThhLjYwNy42MDcgMCAwMS0uMTk1LS40NjZoLS4yYzAgLjI1LjA5My40NjQuMjYuNjE1LjE2OC4xNS40LjIzMS42NjguMjMxdi0uMnptMjMuMDIyIDBINy41NjR2LjJoMjMuMDIydi0uMnptLjcyOC0uNjQ2YS42MDcuNjA3IDAgMDEtLjE5NS40NjdjLS4xMjMuMTEtLjMwNS4xNzktLjUzMy4xNzl2LjJjLjI2OCAwIC41LS4wOC42NjctLjIzYS44MDYuODA2IDAgMDAuMjYtLjYxNmgtLjJ6bS0uNzI4LS42NDVjLjM3NSAwIC43MjguMjY5LjcyOC42NDVoLjJjMC0uNTE4LS40NzYtLjg0NS0uOTI4LS44NDV2LjJ6bTAgNC4yNzNINy41NjR2LjJoMjMuMDIydi0uMnptLjkyOC44NDZjMC0uNTE5LS40NzYtLjg0Ni0uOTI4LS44NDZ2LjJjLjM3NSAwIC43MjguMjcuNzI4LjY0NmguMnptLS45MjguODQ1Yy4yNjggMCAuNS0uMDguNjY3LS4yM2EuODA2LjgwNiAwIDAwLjI2LS42MTVoLS4yYS42MDcuNjA3IDAgMDEtLjE5NC40NjZjLS4xMjMuMTEtLjMwNS4xOC0uNTMzLjE4di4yem0tMjMuMDIyIDBoMjMuMDIydi0uMkg3LjU2NHYuMnptLS45MjgtLjg0NWMwIC4yNS4wOTMuNDY0LjI2LjYxNC4xNjguMTUuNC4yMzEuNjY4LjIzMXYtLjJjLS4yMjggMC0uNDEtLjA2OC0uNTMzLS4xOGEuNjA3LjYwNyAwIDAxLS4xOTUtLjQ2NWgtLjJ6bS45MjgtLjg0NmMtLjI2OCAwLS41LjA4LS42NjcuMjNhLjgwNy44MDcgMCAwMC0uMjYuNjE2aC4yYzAtLjE5OC4wNzEtLjM1Ny4xOTQtLjQ2Ny4xMjMtLjExLjMwNS0uMTc5LjUzMy0uMTc5di0uMnptMCA0LjU5OWgyMy4wMjJ2LS4ySDcuNTY0di4yem0tLjcyOC42NDVjMC0uMTk3LjA3Mi0uMzU2LjE5NS0uNDY2LjEyMy0uMTEuMzA1LS4xOC41MzMtLjE4di0uMmMtLjI2OCAwLS41LjA4MS0uNjY3LjIzMWEuODA2LjgwNiAwIDAwLS4yNi42MTVoLjJ6bS43MjguNjQ2Yy0uMjI4IDAtLjQxLS4wNjktLjUzMy0uMThhLjYwNy42MDcgMCAwMS0uMTk1LS40NjZoLS4yYzAgLjI1LjA5My40NjQuMjYuNjE1LjE2OC4xNS40LjIzLjY2OC4yM3YtLjJ6bTIzLjAyMiAwSDcuNTY0di4yaDIzLjAyMnYtLjJ6bS43MjgtLjY0NmEuNjA3LjYwNyAwIDAxLS4xOTUuNDY2Yy0uMTIzLjExMS0uMzA1LjE4LS41MzMuMTh2LjJjLjI2OCAwIC41LS4wOC42NjctLjIzYS44MDYuODA2IDAgMDAuMjYtLjYxNmgtLjJ6bS0uNzI4LS42NDVjLjM3NSAwIC43MjguMjY5LjcyOC42NDVoLjJjMC0uNTE4LS40NzYtLjg0NS0uOTI4LS44NDV2LjJ6bTAgNC4xOThINy41NjR2LjJoMjMuMDIydi0uMnptLjkyOC44NDZjMC0uNTE4LS40NzYtLjg0Ni0uOTI4LS44NDZ2LjJjLjM3NSAwIC43MjguMjcuNzI4LjY0NmguMnptLS45MjguODQ1Yy4yNjggMCAuNS0uMDguNjY3LS4yM2EuODA2LjgwNiAwIDAwLjI2LS42MTVoLS4yYS42MDcuNjA3IDAgMDEtLjE5NC40NjZjLS4xMjMuMTExLS4zMDUuMTgtLjUzMy4xOHYuMnptLTIzLjAyMiAwaDIzLjAyMnYtLjJINy41NjR2LjJ6bS0uOTI4LS44NDVjMCAuMjUuMDkzLjQ2NC4yNi42MTUuMTY4LjE1LjQuMjMuNjY4LjIzdi0uMmMtLjIyOCAwLS40MS0uMDY4LS41MzMtLjE3OWEuNjA3LjYwNyAwIDAxLS4xOTUtLjQ2NmgtLjJ6bS45MjgtLjg0NmMtLjI2OCAwLS41LjA4MS0uNjY3LjIzMWEuODA2LjgwNiAwIDAwLS4yNi42MTVoLjJjMC0uMTk4LjA3MS0uMzU2LjE5NC0uNDY2LjEyMy0uMTExLjMwNS0uMTguNTMzLS4xOHYtLjJ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIG1hc2s9InVybCgjYXphKSI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld2JveD0iMCAwIDE5LjU4NiAxOS41ODYiIGlkPSJwaG9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkYXRhLW5hbWU9IlBhdGggMiIgZD0iTTAgMGgxOS41ODZ2MTkuNTg2SDB6IiBmaWxsPSJub25lIj48L3BhdGg+PHBhdGggZGF0YS1uYW1lPSJQYXRoIDMiIGQ9Ik01LjM2MSA4LjhhMTIuNDE4IDEyLjQxOCAwIDAwNS40MzQgNS40M2wxLjgxNC0xLjgxOGEuODI3LjgyNyAwIDAxLjgzNy0uMiA5LjM4NyA5LjM4NyAwIDAwMi45NDQuNDcuODIyLjgyMiAwIDAxLjgyNS44MjV2Mi44ODZhLjgyMi44MjIgMCAwMS0uODI1LjgyNUExNC4wMTcgMTQuMDE3IDAgMDEyLjM3MiAzLjE5N2EuODI0LjgyNCAwIDAxLjgyNS0uODI1aDIuODg2YS44MjIuODIyIDAgMDEuODI1LjgyNSA5LjM4NyA5LjM4NyAwIDAwLjQ3IDIuOTQ0LjgyNy44MjcgMCAwMS0uMi44Mzd6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAxOCAxOSIgaWQ9InBob25lMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMy42MjUgOC41NzVjMS40NCAyLjc1MyAzLjc1NSA1LjAwNSA2LjU5IDYuNDA2bDIuMi0yLjE0NWMuMjc1LS4yNjguNjctLjM0NiAxLjAxNS0uMjM5IDEuMTIuMzYgMi4zMjUuNTU1IDMuNTcuNTU1LjU1NSAwIDEgLjQzMyAxIC45NzN2My40MDRjMCAuNTQtLjQ0NS45NzMtMSAuOTczLTkuMzkgMC0xNy03LjQwMy0xNy0xNi41MzcgMC0uNTQuNDUtLjk3MyAxLS45NzNoMy41Yy41NTUgMCAxIC40MzMgMSAuOTczIDAgMS4yMTEuMiAyLjM4My41NyAzLjQ3My4xMS4zMzUuMDMuNzItLjI0NS45ODdsLTIuMiAyLjE1eiIgZmlsbD0iIzBGMjk1RiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDM4IDQ0IiBpZD0icGluIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xLjM3NSAxNi4yMzZjMC04LjA3MSA3LjcwNi0xNC44OTMgMTcuNDk2LTE0Ljg5M3MxNy40OTcgNi44MjIgMTcuNDk3IDE0Ljg5M2MwIDUuNzY2LTIuNjEgOS41OTYtNS45OCAxMy4yMTYtLjc0Mi43OTctMS41MjUgMS41OTQtMi4zMjkgMi40MTQtMi44MzYgMi44ODktNS45NDMgNi4wNTQtOC41MTUgMTAuNDc0YS41OTUuNTk1IDAgMDEtLjIzOS4yMTQuOTM3LjkzNyAwIDAxLS40MzQuMTAzLjkzNi45MzYgMCAwMS0uNDM0LS4xMDMuNTk1LjU5NSAwIDAxLS4yMzgtLjIxNGMtMi41NzItNC40Mi01LjY4LTcuNTg1LTguNTE1LTEwLjQ3NC0uODA1LS44Mi0xLjU4Ny0xLjYxNy0yLjMzLTIuNDE0LTMuMzctMy42Mi01Ljk3OS03LjQ1LTUuOTc5LTEzLjIxNnoiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjwvcGF0aD48Y2lyY2xlIGN4PSIxOC44NzEiIGN5PSIxNy4zNDkiIHI9IjYuNDczIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48L2NpcmNsZT48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAzNSA0OSIgaWQ9InBsYXkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMzLjY5NiAyMi44NjhMMy4xNTYgMS4yMzZDMS44MzIuMjk3IDAgMS4yNDQgMCAyLjg2OHY0My4yNjRjMCAxLjYyNCAxLjgzMiAyLjU3IDMuMTU2IDEuNjMzbDMwLjU0LTIxLjYzM2EyIDIgMCAwMDAtMy4yNjR6IiBmaWxsPSIjZmZmIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMjQgMjEiIGlkPSJwcmludCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjIuMzc3IDMuNjQzaC0yLjc0NlYxLjE3YS45MTUuOTE1IDAgMDAtLjkxNS0uOTE1SDUuNDQ0YS45MTUuOTE1IDAgMDAtLjkxNi45MTV2Mi40NzJIMS43ODJhLjkxNS45MTUgMCAwMC0uOTE1LjkxNXY4Ljk3YzAgLjUwNi40MS45MTUuOTE2LjkxNWgyLjc0NnY0LjgyNGMwIC4zMDYuMDYxLjUzMy4yOTcuNzQ5LjExLjEuMjI3LjE2Ni4zNy4yMDYuMTMzLjAzNy4yNjQuMDM0LjM5OC4wMzRoMTIuOTcxYy4xMzQgMCAuMjY2LjAwMy4zOTgtLjAzNGEuODgxLjg4MSAwIDAwLjM3MS0uMjA3Yy4yMzYtLjIxNi4yOTctLjQ0NC4yOTctLjc0OXYtMS41ODItMy4yNGgyLjc0NmMuNTA2IDAgLjkxNi0uNDEuOTE2LS45MTZ2LTguOTdhLjkxNS45MTUgMCAwMC0uOTE2LS45MTV6TTMuMTU2IDYuODY5YS44LjggMCAxMTAtMS42MDIuOC44IDAgMDEwIDEuNjAyem0xNS41NiAxMi40NzFINS40NDR2LTcuMjNoMTMuMjcydjcuMjN6bTAtMTUuNjk3SDUuNDQ0VjIuMDg3YzAtLjUwNi40MS0uOTE2LjkxNS0uOTE2aDExLjQ0MmMuNTA1IDAgLjkxNS40MS45MTUuOTE2djEuNTU2eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Ym94PSIwIDAgMTkuNTgyIDE5LjU4MiIgaWQ9InNlYXJjaCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkYXRhLW5hbWU9IlBhdGggOCIgZD0iTTEyLjY1NSAxMS40MjhoLS42NWwtLjIyNS0uMjI1YTUuMjc3IDUuMjc3IDAgMTAtLjU3Ni41ODFsLjIyNS4yMjV2LjY0Nmw0LjA4OCA0LjA4IDEuMjE3LTEuMjE4LTQuMDgtNC4wODh6bS00LjkwNiAwYTMuNjggMy42OCAwIDExMy42OC0zLjY4IDMuNjggMy42OCAwIDAxLTMuNjggMy42OHoiPjwvcGF0aD48cGF0aCBkYXRhLW5hbWU9IlBhdGggOSIgZD0iTTAgMGgxOS41ODJ2MTkuNTgySDB6IiBmaWxsPSJub25lIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB2aWV3Ym94PSIwIDAgNTc2IDUxMiIgZmlsbD0iY3VycmVudENvbG9yIiBpZD0ic2hvcHBpbmctY2FydCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTI4LjEyIDMwMS4zMTlsNDcuMjczLTIwOEM1NzguODA2IDc4LjMwMSA1NjcuMzkxIDY0IDU1MS45OSA2NEgxNTkuMjA4bC05LjE2Ni00NC44MUMxNDcuNzU4IDguMDIxIDEzNy45MyAwIDEyNi41MjkgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg2OS44ODNsNzAuMjQ4IDM0My40MzVDMTQ3LjMyNSA0MTcuMSAxMzYgNDM1LjIyMiAxMzYgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0xNS42NzQtNi40NDctMjkuODM1LTE2LjgyNC00MGgyMDkuNjQ3QzQzMC40NDcgNDI2LjE2NSA0MjQgNDQwLjMyNiA0MjQgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0yMi4xNzItMTIuODg4LTQxLjMzMi0zMS41NzktNTAuNDA1bDUuNTE3LTI0LjI3NmMzLjQxMy0xNS4wMTgtOC4wMDItMjkuMzE5LTIzLjQwMy0yOS4zMTlIMjE4LjExN2wtNi41NDUtMzJoMjkzLjE0NWMxMS4yMDYgMCAyMC45Mi03Ljc1NCAyMy40MDMtMTguNjgxeiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgdmlld2JveD0iMCAwIDUxMiA1MTIiIGZpbGw9ImN1cnJlbnRDb2xvciIgaWQ9InNpZ24taW4tYWx0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00MTYgNDQ4aC04NGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC04NGMtNi42IDAtMTItNS40LTEyLTEyVjc2YzAtNi42IDUuNC0xMiAxMi0xMmg4NGM1MyAwIDk2IDQzIDk2IDk2djE5MmMwIDUzLTQzIDk2LTk2IDk2em0tNDctMjAxTDIwMSA3OWMtMTUtMTUtNDEtNC41LTQxIDE3djk2SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMzZ2OTZjMCAyMS41IDI2IDMyIDQxIDE3bDE2OC0xNjhjOS4zLTkuNCA5LjMtMjQuNiAwLTM0eiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDE1IDI4IiBpZD0ic29jYWlsLWZhY2Vib29rIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05LjQwNyAyNy40NjNWMTUuMTA1aDQuMjAzbC42My00LjgxOEg5LjQwN1Y3LjIxMmMwLTEuMzk1LjM5MS0yLjM0NSAyLjQyLTIuMzQ1bDIuNTgzLS4wMDFWLjU1NkMxMy45NjMuNSAxMi40My4zNjkgMTAuNjQ1LjM2OWMtMy43MjcgMC02LjI4IDIuMjQ1LTYuMjggNi4zNjZ2My41NTNILjE1MnY0LjgxOGg0LjIxNXYxMi4zNThoNS4wNDF6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCA1OSA0NiIgaWQ9InNvY2lhbC1kaXNjb3JkIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00OS40NDYgNC4xM0E0Ny4xMiA0Ny4xMiAwIDAwMzcuNTEuMzc3Yy0uNTE0LjkzLTEuMTE0IDIuMTgtMS41MjkgMy4xNzUtNC40NS0uNjctOC44Ni0uNjctMTMuMjI4IDBBMzMuOTUgMzMuOTUgMCAwMDIxLjIwNi4zNzhhNDYuOTY0IDQ2Ljk2NCAwIDAwLTExLjk0NSAzLjc2QzEuNzA3IDE1LjU1My0uMzQxIDI2LjY4NS42ODMgMzcuNjU4YzUuMDEgMy43NDEgOS44NjYgNi4wMTQgMTQuNjQgNy41MDFhMzYuNDAyIDM2LjQwMiAwIDAwMy4xMzQtNS4xNjMgMzAuODMzIDMwLjgzMyAwIDAxLTQuOTM3LTIuNDAzYy40MTQtLjMwNy44Mi0uNjI4IDEuMjEtLjk1OCA5LjUyIDQuNDUzIDE5Ljg2MyA0LjQ1MyAyOS4yNyAwIC4zOTUuMzMuOC42NTEgMS4yMS45NThBMzAuNzU3IDMwLjc1NyAwIDAxNDAuMjYzIDQwYTM2LjI0MyAzNi4yNDMgMCAwMDMuMTM2IDUuMTY0YzQuNzc4LTEuNDg3IDkuNjM4LTMuNzYgMTQuNjQ4LTcuNTA2IDEuMjAxLTEyLjcyLTIuMDUyLTIzLjc1LTguNi0zMy41Mjl6TTE5Ljc1NCAzMC45MWMtMi44NTcgMC01LjItMi42NjgtNS4yLTUuOTE3IDAtMy4yNDkgMi4yOTMtNS45MjEgNS4yLTUuOTIxIDIuOTA4IDAgNS4yNTIgMi42NjcgNS4yMDIgNS45Mi4wMDQgMy4yNS0yLjI5NCA1LjkxNy01LjIwMiA1LjkxN3ptMTkuMjIyIDBjLTIuODU4IDAtNS4yMDItMi42NjgtNS4yMDItNS45MTcgMC0zLjI0OSAyLjI5NC01LjkyMSA1LjIwMi01LjkyMSAyLjkwNyAwIDUuMjUgMi42NjcgNS4yIDUuOTIgMCAzLjI1LTIuMjkzIDUuOTE3LTUuMiA1LjkxN3oiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDMwIDI4IiBpZD0ic29jaWFsLWZhY2Vib29rIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGNsaXAtcGF0aD0idXJsKCNia2NsaXAwKSI+PHBhdGggZD0iTTE3LjQyMyAyNy4xNDRWMTQuODI5aDQuNDM4bC42NjYtNC44aC01LjEwNFY2Ljk2M2MwLTEuMzkuNDEzLTIuMzM3IDIuNTU1LTIuMzM3bDIuNzI4LS4wMDFWLjMzMmMtLjQ3MS0uMDU3LTIuMDktLjE4OC0zLjk3Ni0uMTg4LTMuOTM2IDAtNi42MyAyLjIzNy02LjYzIDYuMzQ0djMuNTRINy42NDd2NC44MDFoNC40NTF2MTIuMzE1aDUuMzI0eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9nPjxkZWZzPjxjbGlwcGF0aCBpZD0iYmtjbGlwMCI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjY3NyAuMTQ0KSIgZD0iTTAgMGgyOXYyN0gweiI+PC9wYXRoPjwvY2xpcHBhdGg+PC9kZWZzPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDI2IDI2IiBpZD0ic29jaWFsLWluc3RhZ3JhbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTMuMTU1IDI1LjloLS4yNTZhODguODIyIDg4LjgyMiAwIDAxLTUuNjg1LS4xNThjLTEuNjU5LS4xMDItMy4xNzMtLjY3OC00LjM4LTEuNjY4QzEuNjcgMjMuMTE5Ljg3NSAyMS44MjguNDcyIDIwLjIzN2MtLjM1Mi0xLjM4NC0uMzctMi43NDQtLjM4OC00LjA2LS4wMTMtLjk0Mi0uMDI2LTIuMDYtLjAzLTMuMTk3LjAwNC0xLjE0Mi4wMTctMi4yNi4wMy0zLjIwNC4wMTgtMS4zMTUuMDM2LTIuNjc0LjM4OC00LjA2LjQwMy0xLjU5IDEuMTk4LTIuODgxIDIuMzYyLTMuODM2QzQuMDQxLjg5IDUuNTU1LjMxNCA3LjIxNC4yMTJjMS44MS0uMTEgMy42NzEtLjE2MiA1LjY5LS4xNTdhODkuMzcgODkuMzcgMCAwMTUuNjg0LjE1N2MxLjY2LjEwMiAzLjE3NC42NzkgNC4zOCAxLjY2OCAxLjE2NS45NTUgMS45NiAyLjI0NiAyLjM2MyAzLjgzNy4zNTEgMS4zODUuMzcgMi43NDQuMzg4IDQuMDYuMDEyLjk0My4wMjYgMi4wNi4wMjkgMy4xOTh2LjAwNWEyODAuMDMgMjgwLjAzIDAgMDEtLjAzIDMuMTk4Yy0uMDE3IDEuMzE1LS4wMzYgMi42NzQtLjM4NyA0LjA2LS40MDQgMS41OS0xLjE5OCAyLjg4MS0yLjM2MyAzLjgzNi0xLjIwNi45OS0yLjcyIDEuNTY2LTQuMzggMS42NjhhODguMzEyIDg4LjMxMiAwIDAxLTUuNDMzLjE1OHptLS4yNTYtMi4wMmMxLjk4MS4wMDUgMy44LS4wNDYgNS41NjctLjE1NCAxLjI1NS0uMDc2IDIuMzQzLS40ODYgMy4yMzQtMS4yMTcuODIzLS42NzUgMS4zOS0xLjYwOCAxLjY4Ni0yLjc3LjI5Mi0xLjE1NC4zMS0yLjM5Mi4zMjUtMy41ODkuMDEzLS45MzcuMDI3LTIuMDQ3LjAzLTMuMTczYTI4My41NTggMjgzLjU1OCAwIDAwLS4wMy0zLjE3M2MtLjAxNi0xLjE5Ny0uMDMzLTIuNDM1LS4zMjUtMy41ODgtLjI5NS0xLjE2My0uODYzLTIuMDk2LTEuNjg2LTIuNzcxLS44OTEtLjczMS0xLjk4LTEuMTQtMy4yMzQtMS4yMTdhODcuMjE2IDg3LjIxNiAwIDAwLTUuNTYzLS4xNTRjLTEuOTgtLjAwNS0zLjguMDQ1LTUuNTY3LjE1NC0xLjI1NC4wNzYtMi4zNDIuNDg2LTMuMjMzIDEuMjE3LS44MjQuNjc1LTEuMzkxIDEuNjA4LTEuNjg2IDIuNzctLjI5MyAxLjE1NC0uMzEgMi4zOTItLjMyNiAzLjU4OS0uMDEzLjkzOC0uMDI2IDIuMDQ5LS4wMjkgMy4xNzUuMDAzIDEuMTIyLjAxNiAyLjIzMy4wMyAzLjE3MS4wMTUgMS4xOTcuMDMyIDIuNDM1LjMyNSAzLjU4OC4yOTUgMS4xNjMuODYyIDIuMDk2IDEuNjg2IDIuNzcxLjg5LjczMSAxLjk3OSAxLjE0IDMuMjMzIDEuMjE3IDEuNzY3LjEwOCAzLjU4Ny4xNTkgNS41NjMuMTU0em0tLjA0OC00LjU5M2MtMy40NTkgMC02LjI3My0yLjgzLTYuMjczLTYuMzEgMC0zLjQ4IDIuODE0LTYuMzEgNi4yNzMtNi4zMSAzLjQ1OSAwIDYuMjczIDIuODMgNi4yNzMgNi4zMSAwIDMuNDgtMi44MTQgNi4zMS02LjI3MyA2LjMxem0wLTEwLjZjLTIuMzUyIDAtNC4yNjYgMS45MjQtNC4yNjYgNC4yOXMxLjkxNCA0LjI5IDQuMjY2IDQuMjljMi4zNTIgMCA0LjI2NS0xLjkyNCA0LjI2NS00LjI5cy0xLjkxMy00LjI5LTQuMjY1LTQuMjl6bTYuOTc1LTQuMDM5YTEuNTEgMS41MSAwIDAwLTEuNTA1IDEuNTE0IDEuNTEgMS41MSAwIDAwMS41MDUgMS41MTUgMS41MSAxLjUxIDAgMDAxLjUwNi0xLjUxNCAxLjUxIDEuNTEgMCAwMC0xLjUwNi0xLjUxNXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDE1IDE0IiBpZD0ic29jaWFsLWxpbmtlZGluIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zLjMyOCA0LjYySC4zMjR2OS4wMzdoMy4wMDRWNC42MnpNMS44NDcuMjY0Yy0xLjAyOCAwLTEuNy42NzQtMS43IDEuNTYgMCAuODY4LjY1MiAxLjU2MyAxLjY2IDEuNTYzaC4wMmMxLjA0OCAwIDEuNy0uNjk0IDEuNy0xLjU2MkMzLjUwNy45MzggMi44NzUuMjY0IDEuODQ3LjI2NHptOC44NTUgNC4xNDRjLTEuNTk1IDAtMi4zMDkuODc4LTIuNzA4IDEuNDkzdi4wM2gtLjAxOWwuMDItLjAzdi0xLjI4SDQuOTljLjA0Ljg0NyAwIDkuMDM2IDAgOS4wMzZoMy4wMDVWOC42MWMwLS4yNy4wMi0uNTQuMS0uNzMyLjIxNy0uNTQuNzEtMS4xIDEuNTQtMS4xIDEuMDg4IDAgMS41MjMuODMgMS41MjMgMi4wNDR2NC44MzVoMy4wMDRWOC40NzVjMC0yLjc3Ni0xLjQ4Mi00LjA2Ny0zLjQ2LTQuMDY3eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMjMgMjIiIGlkPSJzb2NpYWwtcGludGVyZXN0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGNsaXAtcGF0aD0idXJsKCNibmNsaXAwKSI+PHBhdGggZD0iTTExLjYuOTIyYy01LjYxMSAwLTguNDM4IDQuMDItOC40MzggNy4zNzQgMCAyLjAzMS43NyAzLjgzNiAyLjQxNyA0LjUxLjI3Mi4xMS41MS4wMDUuNTktLjI5My4wNTQtLjIwNS4xODQtLjcyOC4yNDMtLjk0Ni4wOC0uMjk3LjA1LS4zOTgtLjE3Mi0uNjU4LS40NzctLjU2LS43NzktMS4yODUtLjc3OS0yLjMxNSAwLTIuOTgyIDIuMjMyLTUuNjU0IDUuODEzLTUuNjU0IDMuMTcgMCA0LjkxMiAxLjk0IDQuOTEyIDQuNTIzIDAgMy40MDUtMS41MDggNi4yNzctMy43NDQgNi4yNzctMS4yMzUgMC0yLjE2LTEuMDIxLTEuODYzLTIuMjc0LjM1Ni0xLjQ5NSAxLjA0Mi0zLjExMSAxLjA0Mi00LjE5MSAwLS45NjgtLjUxOS0xLjc3Mi0xLjU5MS0xLjc3Mi0xLjI2IDAtMi4yNzggMS4zMDctMi4yNzggMy4wNTcgMCAxLjExNC4zNzcgMS44NjguMzc3IDEuODY4TDYuNjEzIDE2Ljg2Yy0uNDUyIDEuOTEtLjA2NyA0LjI1LS4wMzQgNC40ODUuMDIxLjE0My4yMDEuMTc2LjI4LjA2Ny4xMTgtLjE1IDEuNjIyLTIuMDEgMi4xMzItMy44NjUuMTQ3LS41MjQuODMtMy4yNDYuODMtMy4yNDYuNDEuNzg0IDEuNjA4IDEuNDcgMi44ODUgMS40NyAzLjc5NCAwIDYuMzctMy40NTkgNi4zNy04LjA5IDAtMy40OTctMi45NjYtNi43Ni03LjQ3Ni02Ljc2eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9nPjxkZWZzPjxjbGlwcGF0aCBpZD0iYm5jbGlwMCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSguNjgzIC40NjEpIiBkPSJNMCAwaDIxLjQ0djIxLjQ0SDB6Ij48L3BhdGg+PC9jbGlwcGF0aD48L2RlZnM+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgNjEgNTEiIGlkPSJzb2NpYWwtdGVsZWdyYW0iIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjgyNCAyMi4xOTdjMTUuOTg3LTcuMDExIDI2LjY3NC0xMS41NDIgMzIuMDYtMTMuNzY1QzUyLjEwMiAyLjEwNSA1NS4yNjYuOTk0IDU3LjMxOC45MDhjLjQyNyAwIDEuNDUzLjA4NiAyLjEzNy41OTkuNTEzLjQyNy42ODQgMS4wMjYuNzcgMS40NTMuMDg1LjQyOC4xNyAxLjM2OC4wODUgMi4xMzctLjg1NSA4LjYzNi00LjM2IDI5Ljc1My02LjI0MSAzOS40MTQtLjc3IDQuMTAzLTIuMzA5IDUuNDcxLTMuNzYyIDUuNjQyLTMuMTYzLjI1Ny01LjY0My0yLjEzNy04LjcyLTQuMTAzLTQuNzg4LTMuMTY0LTcuNTI0LTUuMTMtMTIuMjI2LTguMjA4LTUuMzg3LTMuNTktMS44ODEtNS41NTcgMS4xOTctOC43Mi43NjktLjg1NSAxNC44NzYtMTMuNTk0IDE1LjEzMi0xNC43OTEgMC0uMTcxLjA4Ni0uNjg0LS4yNTYtLjk0LS4zNDItLjI1Ny0uNzctLjE3MS0xLjExMi0uMDg2LS41MTMuMDg1LTguMjA3IDUuMjE1LTIzLjE2OSAxNS4zMDQtMi4yMjMgMS41MzgtNC4xOSAyLjIyMi01Ljk4NCAyLjIyMi0xLjk2NyAwLTUuNzI5LTEuMTExLTguNTUtMi4wNTEtMy40Mi0xLjExMi02LjE1Ni0xLjcxLTUuOS0zLjU5MS4xNzItLjk0IDEuNTQtMS45NjcgNC4xMDUtMi45OTJ6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCA1NyA2OSIgaWQ9InNvY2lhbC10aWt0b2siIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTU2Ljc4NyAyNy45MTRjLS41MzguMDU1LTEuMDc4LjA4My0xLjYxOS4wODYtMi45MiAwLTUuNzkzLS43NTUtOC4zNjEtMi4xOTdhMTcuODU0IDE3Ljg1NCAwIDAxLTYuMzUtNi4wNjN2MjguMTI2YzAgNC4xMTEtMS4xNzQgOC4xMy0zLjM3MiAxMS41NDktMi4xOTkgMy40MTktNS4zMjQgNi4wODMtOC45OCA3LjY1NmExOS4zMTYgMTkuMzE2IDAgMDEtMTEuNTYxIDEuMTgzYy0zLjg4Mi0uODAyLTcuNDQ3LTIuNzgyLTEwLjI0Ni01LjY4OUMzLjUgNTkuNjU4IDEuNTk0IDU1Ljk1NC44MjIgNTEuOTIxYTIxLjU0IDIxLjU0IDAgMDExLjEzOS0xMi4wMWMxLjUxNC0zLjc5OSA0LjA3OS03LjA0NSA3LjM3LTkuMzNhMTkuNDgxIDE5LjQ4MSAwIDAxMTEuMTE2LTMuNTAzYy40MTggMCAuODI2LjA0IDEuMjM3LjA2NnYxMC4yNDRjLS40MS0uMDUxLS44MTQtLjEzLTEuMjM3LS4xMy0yLjcwOCAwLTUuMzA2IDEuMTE4LTcuMjIxIDMuMTA4cy0yLjk5MSA0LjY4OC0yLjk5MSA3LjUwMiAxLjA3NiA1LjUxMyAyLjk5IDcuNTAyYzEuOTE2IDEuOTkgNC41MTQgMy4xMDggNy4yMjIgMy4xMDggNS42NDIgMCAxMC42MjMtNC42MTcgMTAuNjIzLTEwLjQ3OEwzMS4xNy4yMzJoOS40MzNjLjQzMSA0LjI1OSAyLjI5IDguMjI0IDUuMjUgMTEuMjAzIDIuOTYgMi45OCA2LjgzNCA0Ljc4MiAxMC45NDUgNS4wOTV2MTEuMzg0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAyNyAyMSIgaWQ9InNvY2lhbC10d2l0dGVyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yNi4wNCAyLjU2N2MtLjk2NC40MTYtMS45OS42OTItMy4wNjEuODI1QTUuMjExIDUuMjExIDAgMDAyNS4zMTYuNTA1YTEwLjczIDEwLjczIDAgMDEtMy4zNyAxLjI2NCA1LjM2OCA1LjM2OCAwIDAwLTMuODgtMS42NTNjLTIuOTQzIDAtNS4zMTEgMi4zNDgtNS4zMTEgNS4yMjYgMCAuNDE0LjAzNS44MTIuMTIzIDEuMTkxQTE1LjEyNyAxNS4xMjcgMCAwMTEuOTI1IDEuMDdhNS4xOTIgNS4xOTIgMCAwMC0uNzI3IDIuNjRjMCAxLjgxLjk0OCAzLjQxNCAyLjM2IDQuMzQyYTUuMzE3IDUuMzE3IDAgMDEtMi40LS42NDN2LjA1N2MwIDIuNTM5IDEuODQxIDQuNjQ4IDQuMjU3IDUuMTMzYTUuMzg4IDUuMzg4IDAgMDEtMS4zOTMuMTcyYy0uMzQgMC0uNjg0LS4wMTktMS4wMDYtLjA4OWE1LjM1MyA1LjM1MyAwIDAwNC45NjUgMy42NCAxMC43OTQgMTAuNzk0IDAgMDEtNi41ODkgMi4yMjhjLS40MzUgMC0uODUzLS4wMi0xLjI3MS0uMDcyYTE1LjE0NiAxNS4xNDYgMCAwMDguMTUxIDIuMzQ0YzkuNzc5IDAgMTUuMTI0LTcuOTYzIDE1LjEyNC0xNC44NjYgMC0uMjMtLjAwOC0uNDU0LS4wMTktLjY3NWExMC41MDQgMTAuNTA0IDAgMDAyLjY2My0yLjcxM3oiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDI2IDE4IiBpZD0ic29jaWFsLXlvdXR1YmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI1LjEgMi45NDhBMy4xNTIgMy4xNTIgMCAwMDIyLjg5Ni43MTlDMjAuOTM2LjE3OCAxMy4xMDIuMTc4IDEzLjEwMi4xNzhzLTcuODM0IDAtOS43OTMuNTJDMi4yNTguOTkgMS4zOTIgMS44NjYgMS4xMDMgMi45NDkuNTg4IDQuOTI2LjU4OCA5LjAyOS41ODggOS4wMjlzMCA0LjEyNC41MTUgNi4wODFBMy4xNTIgMy4xNTIgMCAwMDMuMzEgMTcuMzRjMS45OC41NDEgOS43OTMuNTQxIDkuNzkzLjU0MXM3LjgzNCAwIDkuNzkzLS41MkEzLjE1MiAzLjE1MiAwIDAwMjUuMSAxNS4xM2MuNTE1LTEuOTc4LjUxNS02LjA4MS41MTUtNi4wODFzLjAyMS00LjEyNC0uNTE1LTYuMTAyem0tMTQuNDkyIDkuODcxVjUuMjRsNi41MTQgMy43OS02LjUxNCAzLjc5eiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCBmaWxsPSJub25lIiB2aWV3Ym94PSIwIDAgMTUgMjEiIGlkPSJ0YWJfaWNvMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAxMy42MnYzLjg4NUEyLjk5NSAyLjk5NSAwIDAwMi45ODggMjAuNWg4LjE5OGEyLjk5NSAyLjk5NSAwIDAwMi45ODgtMi45OTV2LTMuODg0YTIuOTkyIDIuOTkyIDAgMDAtMi45ODgtMi45ODlIMi45ODhBMi45OTIgMi45OTIgMCAwMDAgMTMuNjIxem0xLjQyOSAwYzAtLjg2LjctMS41NTkgMS41Ni0xLjU1OWg4LjE5N2MuODYgMCAxLjU2LjcgMS41NiAxLjU2djMuODg0YzAgLjg2NC0uNyAxLjU2Ni0xLjU2IDEuNTY2SDIuOTg4Yy0uODYgMC0xLjU2LS43MDItMS41Ni0xLjU2NnYtMy44ODR6TTcuMDg3IDkuNDIzYTQuNDY3IDQuNDY3IDAgMDA0LjQ2MS00LjQ2MkE0LjQ2NiA0LjQ2NiAwIDAwNy4wODcuNWE0LjQ2NiA0LjQ2NiAwIDAwLTQuNDYyIDQuNDYyIDQuNDY3IDQuNDY3IDAgMDA0LjQ2MiA0LjQ2MXptMC03LjQ5NGEzLjAzNyAzLjAzNyAwIDAxMy4wMzMgMy4wMzMgMy4wMzcgMy4wMzcgMCAwMS0zLjAzMyAzLjAzMyAzLjAzNyAzLjAzNyAwIDAxLTMuMDMzLTMuMDMzIDMuMDM3IDMuMDM3IDAgMDEzLjAzMy0zLjAzM3oiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgZmlsbD0ibm9uZSIgdmlld2JveD0iMCAwIDI5IDIxIiBpZD0idGFiX2ljbzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI0Ljc4LjVhMy43MjUgMy43MjUgMCAwMC0zLjcyOCAzLjcyN2MwIDEuMDkxLjQ1NSAyLjA2IDEuMjEyIDIuNzI3bC0yLjg3OCAzLjYzN2MtLjI0My0uMDYxLS40ODUtLjA2MS0uNzU4LS4wNjEtLjM5NCAwLS43ODguMDYtMS4xNTEuMTgyTDEzLjkzIDguMzQ4Yy4yNDMtLjQ4NS4zOTQtMS4wNi4zOTQtMS42MzZhMy43MjUgMy43MjUgMCAwMC0zLjcyNy0zLjcyN0EzLjcyNSAzLjcyNSAwIDAwNi44NyA2LjcxMmMwIDEgLjM5NCAxLjkxIDEuMDMgMi41NzZsLTIuODE4IDMuOTRhMy43MTggMy43MTggMCAwMC0xLjE4Mi0uMTgyIDMuNzI1IDMuNzI1IDAgMDAtMy43MjcgMy43MjdBMy43MjUgMy43MjUgMCAwMDMuOSAyMC41YTMuNzI1IDMuNzI1IDAgMDAzLjcyNy0zLjcyN2MwLS43NTgtLjI0Mi0xLjQ1NS0uNjA2LTIuMDZsMy4wOTEtNC4zMzRjLjE1Mi4wMy4zMzMuMDMuNDg1LjAzLjU0NSAwIDEuMDktLjEyMSAxLjU0NS0uMzMzbDMuMzY0IDIuMjEyYTMuNzI1IDMuNzI1IDAgMDAzLjE4MiA1LjY2NyAzLjcyNSAzLjcyNSAwIDAwMy43MjctMy43MjhjMC0uOTA5LS4zMzQtMS43MjctLjg3OS0yLjM5NGwzLjA5MS0zLjkzOWguMjEyYTMuNzI1IDMuNzI1IDAgMDAzLjcyNy0zLjcyN0MyOC41MDcgMi4xNjcgMjYuODQuNSAyNC43OC41ek0xMC41OTcgNS40MDljLjcyNyAwIDEuMzAzLjU3NiAxLjMwMyAxLjMwM3MtLjU3NiAxLjMwMy0xLjMwMyAxLjMwM2ExLjI5MyAxLjI5MyAwIDAxLTEuMzAzLTEuMzAzYzAtLjcyNy41NzYtMS4zMDMgMS4zMDMtMS4zMDN6TTMuOTMgMTguMDE1YTEuMjkzIDEuMjkzIDAgMDEtMS4zMDMtMS4zMDNjMC0uNzI3LjU3Ni0xLjMwMyAxLjMwMy0xLjMwMy4yNDMgMCAuNDU1LjA2LjYzNy4xODIuMDYuMDYuMTIuMDkuMTgxLjE1Mi4wMy4wMy4wNjEuMDYuMTIyLjA2LjIxMi4yNDMuMzYzLjU0Ni4zNjMuOTEtLjAzLjcyNi0uNjA2IDEuMzAyLTEuMzAzIDEuMzAyem0xNC43MjctMi40ODVhMS4yOTMgMS4yOTMgMCAwMS0xLjMwMy0xLjMwM2MwLS43MjcuNTc2LTEuMzAzIDEuMzAzLTEuMzAzLjcyOCAwIDEuMzAzLjU3NiAxLjMwMyAxLjMwM3MtLjU3NSAxLjMwMy0xLjMwMyAxLjMwM3pNMjQuNzggNS41YTEuMjkzIDEuMjkzIDAgMDEtMS4zMDItMS4zMDNjMC0uNzI3LjU3NS0xLjMwMyAxLjMwMi0xLjMwMy43MjggMCAxLjMwMy41NzYgMS4zMDMgMS4zMDNTMjUuNTA4IDUuNSAyNC43OCA1LjV6IiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHZpZXdib3g9IjAgMCA0OTYgNTEyIiBmaWxsPSJjdXJyZW50Q29sb3IiIGlkPSJ1c2VyLWNpcmNsZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA5NmM0OC42IDAgODggMzkuNCA4OCA4OHMtMzkuNCA4OC04OCA4OC04OC0zOS40LTg4LTg4IDM5LjQtODggODgtODh6bTAgMzQ0Yy01OC43IDAtMTExLjMtMjYuNi0xNDYuNS02OC4yIDE4LjgtMzUuNCA1NS42LTU5LjggOTguNS01OS44IDIuNCAwIDQuOC40IDcuMSAxLjEgMTMgNC4yIDI2LjYgNi45IDQwLjkgNi45IDE0LjMgMCAyOC0yLjcgNDAuOS02LjkgMi4zLS43IDQuNy0xLjEgNy4xLTEuMSA0Mi45IDAgNzkuNyAyNC40IDk4LjUgNTkuOEMzNTkuMyA0MjEuNCAzMDYuNyA0NDggMjQ4IDQ0OHoiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIGZpbGw9Im5vbmUiIHZpZXdib3g9IjAgMCAyMSAyMSIgaWQ9IndpbmRvd3MiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0uNjY3IDEwLjAwM2g5LjUwNVYuNUguNjY3djkuNTAzem0xMC40OTUgMGg5LjUwNFYuNWgtOS41MDR2OS41MDN6bS0uOTkgMTAuNDk3SC42Njd2LTkuNTAzaDkuNTA1VjIwLjV6bS45OSAwaDkuNTA0di05LjUwM2gtOS41MDRWMjAuNXoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ltYm9sPjwvc3ZnPjwvZGl2PgoKPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdbbF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6CiAgICAgICAgICBuZXcgRGF0ZSgpLmdldFRpbWUoKSxldmVudDonZ3RtLmpzJ30pO3ZhciBmPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF0sCiAgICAgICAgaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CiAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0bS5qcz9pZD0nK2krZGw7Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqLGYpOwogICAgICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1UUjk3OUs5Jyk7PC9zY3JpcHQ+Cgo8bGluayByZWw9InByZWxvYWQiIGhyZWY9InZlbmRvci1tb2Rlcm4uNzA3Yjg0NjIuanMiIGFzPSJzY3JpcHQiPgo8bGluayByZWw9InByZWxvYWQiIGhyZWY9ImFwcC1tb2Rlcm4uYzE1YTVmMjQuanMiIGFzPSJzY3JpcHQiPgo8bGluayByZWw9InByZWxvYWQiIGhyZWY9ImxhdW5jaGVyLWRpc2NvdmVyeS1tb2Rlcm4uNzA4OGJlOWQuanMiIGFzPSJzY3JpcHQiPgo8L2hlYWQ+Cjxib2R5IGNsYXNzPSJob21lIHBhZ2UtdGVtcGxhdGUgcGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZXMgcGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1mbGV4aWJsZSBwYWdlLXRlbXBsYXRlLXRlbXBsYXRlc3RlbXBsYXRlLWZsZXhpYmxlLXBocCBwYWdlIHBhZ2UtaWQtMjg2NTM5NjggcGFnZS1wYXJlbnQgZXhjbHVzaXZlLWFkZG9ucy1lbGVtZW50b3IgZWxlbWVudG9yLWRlZmF1bHQgZWxlbWVudG9yLWtpdC0yODY5MDg5NSI+CjxzY3JpcHQgZGF0YS1jZmFzeW5jPSJmYWxzZSIgZGF0YS1uby1kZWZlcj0iMSIgZGF0YS1uby1taW5pZnk9IjEiIGRhdGEtbm8tb3B0aW1pemU9IjEiPmlmKHR5cGVvZiBld3d3X3dlYnBfc3VwcG9ydGVkPT09InVuZGVmaW5lZCIpe3ZhciBld3d3X3dlYnBfc3VwcG9ydGVkPSExfWlmKGV3d3dfd2VicF9zdXBwb3J0ZWQpe2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgid2VicC1zdXBwb3J0Iil9PC9zY3JpcHQ+Cgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw/aWQ9R1RNLVRSOTc5SzkiIGhlaWdodD0iMCIgd2lkdGg9IjAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpoaWRkZW4iPjwvaWZyYW1lPjwvbm9zY3JpcHQ+Cgo8YSBjbGFzcz0ic2tpcC1saW5rIiBocmVmPSIjbWFpbi1jb250ZW50Ij5Ta2lwIHRvIGNvbnRlbnQ8L2E+CjxkaXYgY2xhc3M9IndyYXBwZXIiPgo8aGVhZGVyIGNsYXNzPSJzaXRlLWhlYWRlciIgcm9sZT0iYmFubmVyIiBkYXRhLXN0aWNreT0ic3RpY2t5Ij4KPGRpdiBjbGFzcz0ic2l0ZS1oZWFkZXJfX21haW4iPgo8ZGl2IGNsYXNzPSJzaXRlLWhlYWRlcl9fcm93IGlubmVyLWZyYW1lIj4KPGRpdiBjbGFzcz0ic2l0ZS1oZWFkZXJfX2NvbCAtbGVmdCI+CjxhIGhyZWY9ImluZGV4Lmh0bSIgY2xhc3M9InNpdGUtaGVhZGVyX19sb2dvIj4gPGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBhbHQ9IlRvcHRpZXIgVHJhZGVyICYjODIxMTsgRnVuZGluZyBGb3IgRHJpdmVuIFRyYWRlcnMiIGNsYXNzPSJsb2dvLWltZyBsYXp5bG9hZCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L0xheWVyXzEuc3ZnIiBkZWNvZGluZz0iYXN5bmMiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvTGF5ZXJfMS5zdmciIGFsdD0iVG9wdGllciBUcmFkZXIgJiM4MjExOyBGdW5kaW5nIEZvciBEcml2ZW4gVHJhZGVycyIgY2xhc3M9ImxvZ28taW1nIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2l0ZS1oZWFkZXJfX2NvbCAtY2VudGVyIj4KPGRpdiBjbGFzcz0ibmF2LW1haW5fX3dyYXAiPgo8ZGl2IGNsYXNzPSJuYXYtbWFpbiI+CjxhIGhyZWY9ImluZGV4Lmh0bSIgY2xhc3M9InNpdGUtaGVhZGVyX19sb2dvIHNpdGUtaGVhZGVyX19sb2dvLW5hdiI+IDxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgYWx0PSJUb3B0aWVyIFRyYWRlciAmIzgyMTE7IEZ1bmRpbmcgRm9yIERyaXZlbiBUcmFkZXJzIiBjbGFzcz0ibG9nby1pbWcgbGF6eWxvYWQiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy9fc3JjL2ltYWdlcy9sb2dvX3doaXRlLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL19zcmMvaW1hZ2VzL2xvZ29fd2hpdGUuc3ZnIiBhbHQ9IlRvcHRpZXIgVHJhZGVyICYjODIxMTsgRnVuZGluZyBGb3IgRHJpdmVuIFRyYWRlcnMiIGNsYXNzPSJsb2dvLWltZyIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvYT4KPHVsIGlkPSJtZW51LW1haW4tbWVudS1uYXZpZ2F0aW9uLXRvcC1iYXIiIGNsYXNzPSJuYXYtbWFpbl9fbGlua3MiPjxsaSBpZD0ibWVudS1pdGVtLTI4NjkwMzE0IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLTI4NjkwMzE0IGpzLWl0ZW0iPjxhIGhyZWY9InByb2Nlc3MvaW5kZXguaHRtIj48c3BhbiBjbGFzcz0ibWVudS1pdGVtX190ZXh0IiBkYXRhLXRleHQ9IlByb2Nlc3MiPlByb2Nlc3M8L3NwYW4+PC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTI4NjkwNjU1IiBjbGFzcz0iY2hhbGxlbmdlcy1tZW51IG1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1jdXN0b20gbWVudS1pdGVtLW9iamVjdC1jdXN0b20gY3VycmVudC1tZW51LWl0ZW0gY3VycmVudF9wYWdlX2l0ZW0gbWVudS1pdGVtLTI4NjkwNjU1IGpzLWl0ZW0iPjxhIGhyZWY9ImluZGV4Lmh0bSNjaGFsbGVuZ2VzVGFibGUiIGFyaWEtY3VycmVudD0icGFnZSI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJDaGFsbGVuZ2VzIj5DaGFsbGVuZ2VzPC9zcGFuPjwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY4OTM0MyIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1jdXN0b20gbWVudS1pdGVtLW9iamVjdC1jdXN0b20gbWVudS1pdGVtLWhhcy1jaGlsZHJlbiBtZW51LWl0ZW0tMjg2ODkzNDMganMtaXRlbSI+PGEgY2xhc3M9ImpzLXN1Yi1tZW51LWhlYWRlciI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJDb21tdW5pdHkiPkNvbW11bml0eTwvc3Bhbj48L2E+Cjx1bCBjbGFzcz0ic3ViLW1lbnUiPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY4OTM0NCIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1jdXN0b20gbWVudS1pdGVtLW9iamVjdC1jdXN0b20gbWVudS1pdGVtLTI4Njg5MzQ0IGpzLWl0ZW0iPjxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbi9jb21wZXRpdGlvbnMtb3ZlcnZpZXciPjxzcGFuIGNsYXNzPSJtZW51LWl0ZW1fX3RleHQiIGRhdGEtdGV4dD0iQ29tcGV0aXRpb25zIj5Db21wZXRpdGlvbnM8L3NwYW4+PC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTI4NjkwMzQyIiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLWN1c3RvbSBtZW51LWl0ZW0tb2JqZWN0LWN1c3RvbSBtZW51LWl0ZW0tMjg2OTAzNDIganMtaXRlbSI+PGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luL2xlYWRlcmJvYXJkIj48c3BhbiBjbGFzcz0ibWVudS1pdGVtX190ZXh0IiBkYXRhLXRleHQ9IkxlYWRlcmJvYXJkIj5MZWFkZXJib2FyZDwvc3Bhbj48L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tMjg2OTAzNDMiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtY3VzdG9tIG1lbnUtaXRlbS1vYmplY3QtY3VzdG9tIG1lbnUtaXRlbS0yODY5MDM0MyBqcy1pdGVtIj48YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS9pbnZpdGUvV3JDMnhkWlpuZyI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJEaXNjb3JkIj5EaXNjb3JkPC9zcGFuPjwvYT48L2xpPgo8L3VsPgo8L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY5MDM5NSIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS0yODY5MDM5NSBqcy1pdGVtIj48YSBocmVmPSJpbnNpZ2h0cy9pbmRleC5odG0iPjxzcGFuIGNsYXNzPSJtZW51LWl0ZW1fX3RleHQiIGRhdGEtdGV4dD0iSW5zaWdodHMiPkluc2lnaHRzPC9zcGFuPjwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY5MDcwNyIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS0yODY5MDcwNyBqcy1pdGVtIj48YSBocmVmPSJmYXFzL2luZGV4Lmh0bSI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJGQVFzIj5GQVFzPC9zcGFuPjwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY5MDMxNSIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS0yODY5MDMxNSBqcy1pdGVtIj48YSBocmVmPSJhYm91dC9pbmRleC5odG0iPjxzcGFuIGNsYXNzPSJtZW51LWl0ZW1fX3RleHQiIGRhdGEtdGV4dD0iQWJvdXQiPkFib3V0PC9zcGFuPjwvYT48L2xpPgo8bGkgaWQ9Im1lbnUtaXRlbS0yODY5MDMxNiIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS0yODY5MDMxNiBqcy1pdGVtIj48YSBocmVmPSJjb250YWN0L2luZGV4Lmh0bSI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJDb250YWN0Ij5Db250YWN0PC9zcGFuPjwvYT48L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSJuYXYtbWFpbi1ib2R5IG5hdi1tYWluLWJvZHktbmF2Ij4KPGRpdiBjbGFzcz0iZ3RyYW5zbGF0ZV93cmFwcGVyIiBpZD0iZ3Qtd3JhcHBlci0xNTg4ODA5NSI+PC9kaXY+IDxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL3JlZ2lzdGVyIiB0aXRsZT0iU2lnbiBVcCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJoZWFkZXItYnRuIGhlYWRlci1idG4tbG9naW4iPgpTaWduIFVwIDwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4iIHRpdGxlPSJEYXNoYm9hcmQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iaGVhZGVyLWJ0biBoZWFkZXItYnRuLWRhc2hib2FyZCI+CkRhc2hib2FyZCA8L2E+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibmF2LW1haW5fX2J0biBqcy1tb2JpbGVOYXYgLW1vYmlsZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtbGFiZWw9Ik1lbnUiIGFyaWEtY29udHJvbHM9Im1haW5uYXYiPiAKPHNwYW4gY2xhc3M9ImJ1cmdlci1pY29uIj48c3Bhbj48L3NwYW4+PC9zcGFuPgo8L2J1dHRvbj4KPC9kaXY+CjxkaXYgY2xhc3M9InNpdGUtaGVhZGVyX19jb2wgLXJpZ2h0Ij4KPGRpdiBjbGFzcz0ibmF2LW1haW4tYm9keSI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL3JlZ2lzdGVyIiB0aXRsZT0iU2lnbiBVcCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJoZWFkZXItYnRuIGhlYWRlci1idG4tbG9naW4iPgpTaWduIFVwIDwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4iIHRpdGxlPSJEYXNoYm9hcmQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iaGVhZGVyLWJ0biBoZWFkZXItYnRuLWRhc2hib2FyZCI+CkRhc2hib2FyZCA8L2E+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2hlYWRlcj4KPG1haW4gY2xhc3M9InNpdGUtY29udGVudCIgcm9sZT0ibWFpbiIgaWQ9Im1haW4tY29udGVudCI+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIG9mZmVyX2NvdW50ZXJzIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KPGEgY2xhc3M9IiIgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/cHJvZHVjdF9pZD1jOWZmNWZiMC02YjI3LTQxMmItYjRjMy03YjA5NzgwNmM1M2YiIHRhcmdldD0iX2JsYW5rIj4KPGRpdiBjbGFzcz0iY291bnRlcnMiPgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLWl0ZW1zIj4KPGRpdiBjbGFzcz0ib2ZmZXItY291bnRlci1pdGVtIj4KPGRpdiBjbGFzcz0ib2ZmZXItY291bnRlci1pdGVtLXdyYXAiPgo8ZGl2IGNsYXNzPSJudW1iZXItb2ZmZXItY291bnRlciI+CjIwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJjb3VudGVyLWFmdGVyLXN5bWJvbCI+CiUgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLXRleHQiPgpPRkYgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLWl0ZW0iPgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLWl0ZW0td3JhcCI+CjxkaXYgY2xhc3M9ImJlZm9yZS1zeW1ib2wiPgorIDwvZGl2Pgo8ZGl2IGNsYXNzPSJudW1iZXItb2ZmZXItY291bnRlciI+Cjg1IDwvZGl2Pgo8ZGl2IGNsYXNzPSJjb3VudGVyLWFmdGVyLXN5bWJvbCI+CiUgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLXRleHQiPgpMaWZldGltZSA8YnI+IFBheW91dCA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Im9mZmVyLWNvdW50ZXItaXRlbSI+CjxkaXYgY2xhc3M9Im9mZmVyLWNvdW50ZXItaXRlbS13cmFwIj4KPGRpdiBjbGFzcz0iYmVmb3JlLXN5bWJvbCI+CisgPC9kaXY+CjxkaXYgY2xhc3M9Im51bWJlci1vZmZlci1jb3VudGVyIj4KMTI1IDwvZGl2Pgo8ZGl2IGNsYXNzPSJjb3VudGVyLWFmdGVyLXN5bWJvbCI+CiUgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvZmZlci1jb3VudGVyLXRleHQiPgpSZWZ1bmQgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ib2ZmZXItdGV4dCI+CjxwPkVuam95IDIwJSBvZmYsIDg1JSBQYXlvdXQgYW5kIDEyNSUgUmVmdW5kITwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InByb21vLWNvZGUiPgo8ZGl2IGNsYXNzPSJwcm9tby10ZXh0LXZlcnRpY2FsIj4KQ29kZSA8L2Rpdj4KPGRpdiBjbGFzcz0icHJvbW8tY29kZS10ZXh0Ij4KVFRERUNFTUJFUiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2E+CjwvZGl2Pgo8L3NlY3Rpb24+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIGhvbWVfaGVyb19zZWN0aW9uIGd0LWRlZmF1bHQgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImJnX2ltYWdlIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBaVVBQUFMeUFRTUFBQUEvbURZL0FBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFFcEpSRUZVZU5ydHdURUJBQUFBd3FEMVQyME5ENkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRCtETTRzQUFHRjI1K2NBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9IlVuaW9uICgxKSIgd2lkdGg9IjU0OSIgaGVpZ2h0PSI3NTQiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9Vbmlvbi0xLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iNTQ5IiBkYXRhLWVpby1yaGVpZ2h0PSI3NTQiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvVW5pb24tMS5zdmciIGFsdD0iVW5pb24gKDEpIiB3aWR0aD0iNTQ5IiBoZWlnaHQ9Ijc1NCIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJsLWJhbm5lciBsLWJhbm5lci1oZXJvIj4KPGRpdiBjbGFzcz0ibC1iYW5uZXJfX3RleHQiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgxICI+CjxoMSBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+CjxzcGFuIGNsYXNzPSItYy1hY2NlbnQiPkVhcm4gTGlrZSBhIFBybzwvc3Bhbj4gd2l0aCBUb3BUaWVyIFRyYWRlciA8L2gxPgo8L2Rpdj4KPGRpdiBjbGFzcz0iaGVyby1jdGEtYmxvY2siPgo8ZGl2IGNsYXNzPSJoZXJvLWN0YSI+CjxhIGhyZWY9ImluZGV4Lmh0bSNjaGFsbGVuZ2VzVGFibGUiIGNsYXNzPSJjLWJ0biAtcHJpbWFyeSI+U3RhcnQgVHJhZGluZyA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJoZXJvLWN0YS13cmFwIj4KPGRpdiBjbGFzcz0iaGVyby1pY29uIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRFVBQUFBeUFRTUFBQURHTFFHTEFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFBNUpSRUZVR05OallCZ0Znd2tBQUFHUUFBSEZtOXRKQUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJoZXJvLWljb24iIHdpZHRoPSI1MyIgaGVpZ2h0PSI1MCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2hlcm8taWNvbi5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjUzIiBkYXRhLWVpby1yaGVpZ2h0PSI1MCI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9oZXJvLWljb24uc3ZnIiBhbHQ9Imhlcm8taWNvbiIgd2lkdGg9IjUzIiBoZWlnaHQ9IjUwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9Imhlcm8tdGV4dCI+CkdldCB1cCB0byA8c3Bhbj4kNjAwazwvc3Bhbj4gaW4gU2ltdWxhdGVkIEZ1bmRpbmcsIFNjYWxlIHVwIHRvIDxzcGFuPiQyIE1pbGxpb248L3NwYW4+IGFuZCBLZWVwIHVwIHRvIDxzcGFuPjkwJTwvc3Bhbj4gb2YgdGhlIFZpcnR1YWwgUHJvZml0IcKgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJoZXJvLWNhcmRzLWNvbnRhaW5lciBsLWJhbm5lcl9fY2FyZHMiPgo8ZGl2IGNsYXNzPSJoZXJvLWNhcmQiPgo8ZGl2IGNsYXNzPSJoZXJvLWNhcmQtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNrQUFBQXBBUU1BQUFDU3JwSzFBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQTFKUkVGVUdOTmpZQmdGZUFBQUFSOEFBY2UrNitjQUFBQUFTVVZPUks1Q1lJST0iIGFsdD0iY2FyZC1pY29uLTEiIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi0xLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iNDEiIGRhdGEtZWlvLXJoZWlnaHQ9IjQxIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi0xLnN2ZyIgYWx0PSJjYXJkLWljb24tMSIgd2lkdGg9IjQxIiBoZWlnaHQ9IjQxIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9Imhlcm8tY2FyZC10ZXh0Ij4KRW1wb3dlcm1lbnQgZm9yIHRyYWRlcnMgd29ybGR3aWRlIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iaGVyby1jYXJkIj4KPGRpdiBjbGFzcz0iaGVyby1jYXJkLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDSUFBQUFwQVFNQUFBQnFUbWxDQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUF4SlJFRlVDTmRqWUJpSkFBQUE5Z0FCZVBucFZRQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9ImNhcmQtaWNvbi0zIiB3aWR0aD0iMzQiIGhlaWdodD0iNDEiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMy5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjM0IiBkYXRhLWVpby1yaGVpZ2h0PSI0MSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMy5zdmciIGFsdD0iY2FyZC1pY29uLTMiIHdpZHRoPSIzNCIgaGVpZ2h0PSI0MSIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJoZXJvLWNhcmQtdGV4dCI+Ck5vIGZpbmFuY2lhbCBiYXJyaWVycyB0byBhY2hpZXZpbmcgZnVsbCBwb3RlbnRpYWzigIvCoCA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Imhlcm8tY2FyZCI+CjxkaXYgY2xhc3M9Imhlcm8tY2FyZC1pY29uIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ2NBQUFBbkFRTUFBQUMyYmNOMkFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFBeEpSRUZVQ05kallCZ3BBQUFBNmdBQkttNWdMd0FBQUFCSlJVNUVya0pnZ2c9PSIgYWx0PSJjYXJkLWljb24tMiIgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvY2FyZC1pY29uLTIuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIzOSIgZGF0YS1laW8tcmhlaWdodD0iMzkiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvY2FyZC1pY29uLTIuc3ZnIiBhbHQ9ImNhcmQtaWNvbi0yIiB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iaGVyby1jYXJkLXRleHQiPgpBYmlsaXR5IHRvIGZvY3VzIG9uIHRyYWRpbmcgc3RyYXRlZ2llc+KAi8KgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iaGVyby1jYXJkIj4KPGRpdiBjbGFzcz0iaGVyby1jYXJkLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDVUFBQUFwQVFNQUFBQ0lrbkk3QUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUF4SlJFRlVDTmRqWUJpSkFBQUE5Z0FCZVBucFZRQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9ImNhcmQtaWNvbi00IiB3aWR0aD0iMzciIGhlaWdodD0iNDEiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tNC5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjM3IiBkYXRhLWVpby1yaGVpZ2h0PSI0MSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tNC5zdmciIGFsdD0iY2FyZC1pY29uLTQiIHdpZHRoPSIzNyIgaGVpZ2h0PSI0MSIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJoZXJvLWNhcmQtdGV4dCI+Ck9wcG9ydHVuaXR5IHRvIHRha2UgdHJhZGluZyBjYXJlZXIgdG8gdGhlIG5leHQgbGV2ZWzCoCA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJsLWJhbm5lcl9fbWVkaWEiPgo8ZGl2IGNsYXNzPSJhbmltYXRpb24iPgo8ZGl2IGNsYXNzPSJhbmltYXRlZC1pbWFnZS0xIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUlBQUFFc0FRTUFBQUExclBtVUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCdEpSRUZVV01QdHdRRUJBQUFBZ2lEL3IyNUlRQUVBQUFBQWZCa1ZHQUFCSTc4K0NRQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9Im1vYmlsZS1waG9uZS1oZXJvLTEiIHdpZHRoPSIxMzAiIGhlaWdodD0iMzAwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbW9iaWxlLXBob25lLWhlcm8tMS0xMzB4MzAwLnBuZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbW9iaWxlLXBob25lLWhlcm8tMS0xMzB4MzAwLnBuZyAxMzB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9tb2JpbGUtcGhvbmUtaGVyby0xLnBuZyAyODF3IiBjbGFzcz0ibGF6eWxvYWQgZXd3d193ZWJwX2xhenlfbG9hZCIgZGF0YS1laW8tcndpZHRoPSIxMzAiIGRhdGEtZWlvLXJoZWlnaHQ9IjMwMCIgZGF0YS1zcmMtd2VicD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbW9iaWxlLXBob25lLWhlcm8tMS0xMzB4MzAwLnBuZy53ZWJwIiBkYXRhLXNyY3NldC13ZWJwPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9tb2JpbGUtcGhvbmUtaGVyby0xLTEzMHgzMDAucG5nLndlYnAgMTMwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbW9iaWxlLXBob25lLWhlcm8tMS5wbmcgMjgxdyI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9tb2JpbGUtcGhvbmUtaGVyby0xLTEzMHgzMDAucG5nIiBzcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL21vYmlsZS1waG9uZS1oZXJvLTEtMTMweDMwMC5wbmcgMTMwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvbW9iaWxlLXBob25lLWhlcm8tMS5wbmcgMjgxdyIgYWx0PSJtb2JpbGUtcGhvbmUtaGVyby0xIiB3aWR0aD0iMTMwIiBoZWlnaHQ9IjMwMCIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJmaXJzdC1saW5lIiBkYXRhLXZhbHVlPSJBcmUgWW91IFRoZSBOZXh0IFRvcFRpZXIgVHJhZGVyPyI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJhbmltYXRlZC1idG4gcGxheS1idG4iPgo8YSBjbGFzcz0icGxheS1idG5fX2NpcmNsZSBmbG9hdGJveCIgZGF0YS1mYi1vcHRpb25zPSJ3aWR0aDo4MDAgaGVpZ2h0OjQ1MCBhZGRWaWRlb1RodW1iOmZhbHNlIGJveENvbG9yOiAjMzY1MmE3IHRleHRDb2xvcjogI2ZmZmZmZiBzaG93T3V0ZXJDbG9zZTp0cnVlCiAgICAgICAgICAgICBzaG93Q29udHJvbHNUZXh0OmZhbHNlICBzaG93Q2xvc2U6IGZhbHNlIiBocmVmPSIjdmlkZW8tcG9wdXAiPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tcGxheSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI3BsYXkiPjwvdXNlPjwvc3ZnPiA8L2E+CjxkaXYgY2xhc3M9InJvdW5kZWQtdGV4dCByb3RhdGluZyI+Cjxzdmcgdmlld2JveD0iMCAwIDIwMCAyMDAiPgo8cGF0aCBpZD0idGV4dFBhdGgiIGQ9Ik0gODUsMCBBIDg1LDg1IDAgMCAxIC04NSwwIEEgODUsODUgMCAwIDEgODUsMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAwLDEwMCkiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMCI+PC9wYXRoPgo8ZyBmb250LXNpemU9IjE1cHgiPgo8dGV4dCB0ZXh0LWFuY2hvcj0ic3RhcnQiPgo8dGV4dHBhdGggY2xhc3M9ImNvbG9yaW5nIiB4bGluazpocmVmPSIjdGV4dFBhdGgiIHN0YXJ0b2Zmc2V0PSIwJSI+PHRzcGFuIGNsYXNzPSJyb3VuZGVkLXRleHRfX2ZpcnN0Ij5BcmUgWW91IFRoZSBOZXh0IFRvcFRpZXIgVHJhZGVyPzwvdHNwYW4+PHRzcGFuIGR4PSIgNSAiIGNsYXNzPSJ0ZXh0UGF0aENpcmNsZSIgZmlsbD0iI2ZmMDAwMCI+IC4gPC90c3Bhbj48dHNwYW4gY2xhc3M9InJvdW5kZWQtdGV4dF9fc2Vjb25kIj5XYXRjaCBWaWRlbzogMzAgc2Vjb25kczwvdHNwYW4+PHRzcGFuIGR4PSIgNSAiIGNsYXNzPSJ0ZXh0UGF0aENpcmNsZSIgZmlsbD0iI2ZmMDAwMCI+IC4gPC90c3Bhbj48L3RleHRwYXRoPgo8L3RleHQ+CjwvZz4KPC9zdmc+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2Vjb25kLWxpbmUiIGRhdGEtdmFsdWU9IldhdGNoIFZpZGVvOiAzMCBzZWNvbmRzIj4KPC9kaXY+CjxkaXYgY2xhc3M9ImFuaW1hdGVkLWltYWdlLTIiPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJRUFBQUVzQVFNQUFBRGVtMEtYQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUJ0SlJFRlVXTVB0d1FFQkFBQUFnaUQvcjI1SVFBRUFBQUFBZkJrVkdBQUJJNzgrQ1FBQUFBQkpSVTVFcmtKZ2dnPT0iIGFsdD0iaG9tZS1oZXJvLXJpZ2h0IiB3aWR0aD0iMTI5IiBoZWlnaHQ9IjMwMCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2hvbWUtaGVyby1yaWdodC0xMjl4MzAwLnBuZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvaG9tZS1oZXJvLXJpZ2h0LTEyOXgzMDAucG5nIDEyOXcsIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2hvbWUtaGVyby1yaWdodC5wbmcgMjgwdyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjEyOSIgZGF0YS1laW8tcmhlaWdodD0iMzAwIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2hvbWUtaGVyby1yaWdodC0xMjl4MzAwLnBuZyIgc3Jjc2V0PSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9ob21lLWhlcm8tcmlnaHQtMTI5eDMwMC5wbmcgMTI5dywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvaG9tZS1oZXJvLXJpZ2h0LnBuZyAyODB3IiBhbHQ9ImhvbWUtaGVyby1yaWdodCIgd2lkdGg9IjEyOSIgaGVpZ2h0PSIzMDAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InZpZGVvLXBvcHVwIiBpZD0idmlkZW8tcG9wdXAiPgo8aWZyYW1lIHRpdGxlPSJBcmUgWU9VIHRoZSBuZXh0IFRvcFRpZXIgVHJhZGVyPyIgd2lkdGg9IjY0MCIgaGVpZ2h0PSIzNjAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlIiBhbGxvd2Z1bGxzY3JlZW49IiIgZGF0YS1zcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2VMWWxYX181Z0xNP2ZlYXR1cmU9b2VtYmVkIiBjbGFzcz0ibGF6eWxvYWQiPjwvaWZyYW1lPiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9zZWN0aW9uPgo8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBjb3VudGVyc19zZWN0aW9uIGd0LXNtYWxsIGdiLWJpZyI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImNvdW50ZXJzLWl0ZW1zIj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtIj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtX193cmFwIj4KPGRpdiBjbGFzcz0iY291bnRlci1udW1iZXIiPgoxMCA8L2Rpdj4KPGRpdiBjbGFzcz0iYWZ0ZXItc3ltYm9sIj4KKyA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNvdW50ZXItdGV4dCI+ClllYXJzIFByb3AgVHJhZGluZyBFeHBlcmllbmNlIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtIj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtX193cmFwIj4KPGRpdiBjbGFzcz0iY291bnRlci1udW1iZXIiPgo1MDAwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY291bnRlci10ZXh0Ij4KVHJhZGVycyBBcm91bmQgdGhlIFdvcmxkwqAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjb3VudGVyLWl0ZW0iPgo8ZGl2IGNsYXNzPSJjb3VudGVyLWl0ZW1fX3dyYXAiPgo8ZGl2IGNsYXNzPSJwcmUtc3ltYm9sIj4KJCA8L2Rpdj4KPGRpdiBjbGFzcz0iY291bnRlci1udW1iZXIiPgoxMDAgPC9kaXY+CjxkaXYgY2xhc3M9ImFmdGVyLXN5bWJvbCI+Ck0rIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY291bnRlci10ZXh0Ij4KaW4gU2ltdWxhdGVkIFRyYWRpbmcgQ2FwaXRhbMKgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtIj4KPGRpdiBjbGFzcz0iY291bnRlci1pdGVtX193cmFwIj4KPGRpdiBjbGFzcz0iY291bnRlci1udW1iZXIiPgo5NSA8L2Rpdj4KPGRpdiBjbGFzcz0iYWZ0ZXItc3ltYm9sIj4KJSA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNvdW50ZXItdGV4dCI+ClByb2ZpdGFibGUgVHJhZGVycyBpbiAxc3QgWWVhcsKgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L3NlY3Rpb24+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIHBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uIGd0LWRlZmF1bHQgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9InBhc3Npb25hdGVfdHJhZGVyc19zZWN0aW9uX19jb250ZW50Ij4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMiAiPgo8aDIgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPllvdXIgRXZhbHVhdGlvbiBDb21wYW55IGZvciA8c3BhbiBjbGFzcz0iLWMtYWNjZW50Ij5QYXNzaW9uYXRlIFRyYWRlcnM8L3NwYW4+PC9oMj4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgpPdXIgMi1UaWVyIGV2YWx1YXRpb24gcHJvY2VzcyBpZGVudGlmaWVzIHNraWxsZWQgdHJhZGVycyB0byBqb2luIG91ciBwcm9wcmlldGFyeSBmaXJtLiBNYW5hZ2UgdmlydHVhbCBmdW5kcyByZW1vdGVseSBhbmQgZ3JvdyB5b3VyIHNpbXVsYXRlZCBhY2NvdW50IHdpdGggb3VyIHNjYWxpbmcgcGxhbi4gPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXJkcy1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJjYXJkLWl0ZW0gZ3QtIGdiLSB0ZXh0LWRhcmsiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3ODJkIj4KPGRpdiBjbGFzcz0idGllci1udW1iZXIiPgpUaWVyIDEgPC9kaXY+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDMgIj4KPGgzIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5Qcm92ZSB5b3VyIHNraWxscyBhbmQgZGlzY2lwbGluZSBieSBvYnNlcnZpbmcgdGhlIFNpbXVsYXRlZCBUcmFkaW5nIE9iamVjdGl2ZXMuwqA8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC13cmFwcGVyIj4KPGRpdiBjbGFzcz0iY2FyZC1hZHZhbnRhZ2VzIj4KPGRpdiBjbGFzcz0iY2FyZC1hZHZhbnRhZ2UiPgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNrQUFBQXBBUU1BQUFDU3JwSzFBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQTFKUkVGVUdOTmpZQmdGZUFBQUFSOEFBY2UrNitjQUFBQUFTVVZPUks1Q1lJST0iIGFsdD0iY2FyZC1pY29uLTUiIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi01LnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iNDEiIGRhdGEtZWlvLXJoZWlnaHQ9IjQxIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi01LnN2ZyIgYWx0PSJjYXJkLWljb24tNSIgd2lkdGg9IjQxIiBoZWlnaHQ9IjQxIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImFkdmFudGFnZS10ZXh0Ij4KR3JvdyB5b3VyIHNpbXVsYXRlZCBhY2NvdW50IHRvIHRoZSBUYXJnZXQgQW1vdW50LiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtYWR2YW50YWdlIj4KPGRpdiBjbGFzcz0iYWR2YW50YWdlLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDVUFBQUFwQVFNQUFBQ0lrbkk3QUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUF4SlJFRlVDTmRqWUJpSkFBQUE5Z0FCZVBucFZRQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9ImNhcmQtaWNvbi02IiB3aWR0aD0iMzciIGhlaWdodD0iNDEiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tNi5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjM3IiBkYXRhLWVpby1yaGVpZ2h0PSI0MSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tNi5zdmciIGFsdD0iY2FyZC1pY29uLTYiIHdpZHRoPSIzNyIgaGVpZ2h0PSI0MSIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtdGV4dCI+CkFjaGlldmUgeW91ciBUYXJnZXQgd2l0aGluIHRoZSBzaW11bGF0ZWQgRHJhd2Rvd24gbGltaXQuIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1hZHZhbnRhZ2UiPgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNjQUFBQW5BUU1BQUFDMmJjTjJBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQXhKUkVGVUNOZGpZQmdwQUFBQTZnQUJLbTVnTHdBQUFBQkpSVTVFcmtKZ2dnPT0iIGFsdD0iY2FyZC1pY29uLTciIHdpZHRoPSIzOSIgaGVpZ2h0PSIzOSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi03LnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMzkiIGRhdGEtZWlvLXJoZWlnaHQ9IjM5Ij48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi03LnN2ZyIgYWx0PSJjYXJkLWljb24tNyIgd2lkdGg9IjM5IiBoZWlnaHQ9IjM5IiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImFkdmFudGFnZS10ZXh0Ij4KU3RpY2sgdG8gdGhlIFNpbXVsYXRlZCBUcmFkaW5nIFJ1bGVzLiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXJkLXByb2ZpdC13cmFwIj4KPGRpdiBjbGFzcz0iY2FyZC1wcm9maXQiPgo8c3Bhbj44IG9yIDEwJTwvc3Bhbj4KUHJvZml0IDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtaW1hZ2UiPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFXTUFBQUc0QVFNQUFBQ3E5UlJPQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUNwSlJFRlVlTnJ0d1RFQkFBQUF3cUQxVDIwTEw2QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0RzlQRUFBQjdUdzROd0FBQUFCSlJVNUVya0pnZ2c9PSIgYWx0PSJjYXJzLWltZy0xIiB3aWR0aD0iMzU1IiBoZWlnaHQ9IjQ0MCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcnMtaW1nLTEuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIzNTUiIGRhdGEtZWlvLXJoZWlnaHQ9IjQ0MCI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJzLWltZy0xLnN2ZyIgYWx0PSJjYXJzLWltZy0xIiB3aWR0aD0iMzU1IiBoZWlnaHQ9IjQ0MCIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1pdGVtIGd0LSBnYi0gdGV4dC1saWdodCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMzNjUzYTciPgo8ZGl2IGNsYXNzPSJ0aWVyLW51bWJlciI+ClRpZXIgMiA8L2Rpdj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMyAiPgo8aDMgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPlJlYWNoIHRoZSB0YXJnZXQgYW5kIG1haW50YWluIHlvdXIgdmlydHVhbCBwcm9maXQgbGV2ZWxzIHRocm91Z2hvdXQgeW91ciBmaW5hbCBldmFsdWF0aW9uIHBlcmlvZCB0byBnZXQgdmVyaWZpZWQuPC9oMz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtd3JhcHBlciI+CjxkaXYgY2xhc3M9ImNhcmQtYWR2YW50YWdlcyI+CjxkaXYgY2xhc3M9ImNhcmQtYWR2YW50YWdlIj4KPGRpdiBjbGFzcz0iYWR2YW50YWdlLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDa0FBQUFwQVFNQUFBQ1NycEsxQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUExSlJFRlVHTk5qWUJnRmVBQUFBUjhBQWNlKzYrY0FBQUFBU1VWT1JLNUNZSUk9IiBhbHQ9ImNhcmQtaWNvbi0xIiB3aWR0aD0iNDEiIGhlaWdodD0iNDEiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMS5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjQxIiBkYXRhLWVpby1yaGVpZ2h0PSI0MSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMS5zdmciIGFsdD0iY2FyZC1pY29uLTEiIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtdGV4dCI+Ck1haW50YWluIHByb2ZpdGFiaWxpdHkgJiBtaW5pbWl6ZSBsb3NzZXMuIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1hZHZhbnRhZ2UiPgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNVQUFBQXBBUU1BQUFDSWtuSTdBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQXhKUkVGVUNOZGpZQmlKQUFBQTlnQUJlUG5wVlFBQUFBQkpSVTVFcmtKZ2dnPT0iIGFsdD0iY2FyZC1pY29uLTQiIHdpZHRoPSIzNyIgaGVpZ2h0PSI0MSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi00LnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMzciIGRhdGEtZWlvLXJoZWlnaHQ9IjQxIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaWNvbi00LnN2ZyIgYWx0PSJjYXJkLWljb24tNCIgd2lkdGg9IjM3IiBoZWlnaHQ9IjQxIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImFkdmFudGFnZS10ZXh0Ij4KRW5zdXJlIHRyYWRpbmcgY29uc2lzdGVuY3kgJiBkaXNjaXBsaW5lLiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtYWR2YW50YWdlIj4KPGRpdiBjbGFzcz0iYWR2YW50YWdlLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDY0FBQUFuQVFNQUFBQzJiY04yQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUF4SlJFRlVDTmRqWUJncEFBQUE2Z0FCS201Z0x3QUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9ImNhcmQtaWNvbi0yIiB3aWR0aD0iMzkiIGhlaWdodD0iMzkiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMi5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjM5IiBkYXRhLWVpby1yaGVpZ2h0PSIzOSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9jYXJkLWljb24tMi5zdmciIGFsdD0iY2FyZC1pY29uLTIiIHdpZHRoPSIzOSIgaGVpZ2h0PSIzOSIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJhZHZhbnRhZ2UtdGV4dCI+CkZvbGxvdyBhbGwgdGhlIFNpbXVsYXRlZCBUcmFkaW5nIFJ1bGVzLsKgIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtcHJvZml0LXdyYXAiPgo8ZGl2IGNsYXNzPSJjYXJkLXByb2ZpdCI+CjxzcGFuPjUlPC9zcGFuPgpQcm9maXQgPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1pbWFnZSI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdNQUFBRzRBUU1BQUFDcTlSUk9BQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQ3BKUkVGVWVOcnR3VEVCQUFBQXdxRDFUMjBMTDZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRHOVBFQUFCN1R3NE53QUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9ImNhcmQtaW1nLTIiIHdpZHRoPSIzNTUiIGhlaWdodD0iNDQwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvY2FyZC1pbWctMi5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjM1NSIgZGF0YS1laW8tcmhlaWdodD0iNDQwIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L2NhcmQtaW1nLTIuc3ZnIiBhbHQ9ImNhcmQtaW1nLTIiIHdpZHRoPSIzNTUiIGhlaWdodD0iNDQwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InBhc3Npb25hdGUtdHJhZGVycyI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9InBhc3Npb25hdGUtdHJhZGVycy1jdGEiPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjLWJ0biAtcHJpbWFyeSI+Sm9pbiBOb3cgYW5kIFN0YXJ0IFRyYWRpbmcgPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gbGlzdF93aXRoX2ltYWdlX3NlY3Rpb24gZ3QtZGVmYXVsdCBnYi1ub25lIj4KPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibGlzdF93aXRoX2ltYWdlX193cmFwcGVyIj4KPGRpdiBjbGFzcz0ibGlzdF93aXRoX2ltYWdlX19jb250ZW50Ij4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMiAiPgo8aDIgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPlRoZSBQcm9jZXNzIG9mIDxzcGFuIGNsYXNzPSItYy1hY2NlbnQiPlNpbXVsYXRlZCBGdW5kaW5nPC9zcGFuPjwvaDI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZXh0Ij4KQWZ0ZXIgb3VyIGV2YWx1YXRpb24gJiBmaW5hbCB2ZXJpZmljYXRpb24sIHlvdSB3aWxsIHN1Y2Nlc3NmdWxseSBiZWNvbWUgcGFydCBvZiBvdXIgUHJvcHJpZXRhcnkgVHJhZGluZyBGaXJtLsKgIDwvZGl2Pgo8ZGl2IGNsYXNzPSJjdGEiPgo8YSBocmVmPSJpbmRleC5odG0jY2hhbGxlbmdlc1RhYmxlIiBjbGFzcz0iYy1idG4gLXByaW1hcnkiPkdldCBGdW5kZWQgVG9kYXkgPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImltYWdlIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTGNBQUFFc0FRTUFBQUM3ZHJEb0FBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCMUpSRUZVV01QdHdRRUJBQUFBZ2lEL3IyNUlRQUVBQUFBQUFBQXZCaHdnQUFGMnRUTXVBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9ImNlbGwtcGhvbmUiIHdpZHRoPSIxODMiIGhlaWdodD0iMzAwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvY2VsbC1waG9uZS0xODN4MzAwLnBuZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvY2VsbC1waG9uZS0xODN4MzAwLnBuZyAxODN3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9jZWxsLXBob25lLnBuZyAyMTl3IiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMTgzIiBkYXRhLWVpby1yaGVpZ2h0PSIzMDAiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvY2VsbC1waG9uZS0xODN4MzAwLnBuZyIgc3Jjc2V0PSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9jZWxsLXBob25lLTE4M3gzMDAucG5nIDE4M3csIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2NlbGwtcGhvbmUucG5nIDIxOXciIGFsdD0iY2VsbC1waG9uZSIgd2lkdGg9IjE4MyIgaGVpZ2h0PSIzMDAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPHVsIGNsYXNzPSJsaXN0LWNvbnRhaW5lciI+CjxsaSBjbGFzcz0ibGlzdC1pdGVtIj4KPHNwYW4gY2xhc3M9Iml0ZW0tbnVtYmVyIj4KMDEgPC9zcGFuPgo8ZGl2IGNsYXNzPSJpdGVtLXRleHQiPgo8cD5UaGUgc2lnbnVwIGZlZSBpcyA8c3Ryb25nPmZ1bGx5IHJlZnVuZGFibGU8L3N0cm9uZz4gdXBvbiByZWNlaXZpbmcgeW91ciBmaXJzdCBwYXlvdXQuPC9wPgo8L2Rpdj4KPC9saT4KPGxpIGNsYXNzPSJsaXN0LWl0ZW0iPgo8c3BhbiBjbGFzcz0iaXRlbS1udW1iZXIiPgowMiA8L3NwYW4+CjxkaXYgY2xhc3M9Iml0ZW0tdGV4dCI+CjxwPkNvbnRpbnVlIHRvIHRyYWRlIGNvbnNpc3RlbnRseSAmYW1wOyByZWNlaXZlIHVwIHRvIDxzdHJvbmc+OTAlPC9zdHJvbmc+IG9mIHlvdXIgdmlydHVhbCBlYXJuaW5ncy48L3A+CjwvZGl2Pgo8L2xpPgo8bGkgY2xhc3M9Imxpc3QtaXRlbSI+CjxzcGFuIGNsYXNzPSJpdGVtLW51bWJlciI+CjAzIDwvc3Bhbj4KPGRpdiBjbGFzcz0iaXRlbS10ZXh0Ij4KPHA+VHJhZGUgd2l0aCA8c3Ryb25nPm5vIHRpbWU8L3N0cm9uZz4gbGltaXRzIGFuZCB2aXJ0dWFsIHByb2ZpdCB0YXJnZXRzIGFzIGxvbmcgYXJlIHlvdSBhcmUgY29uc2lzdGVudCBhbmQgcmVzcG9uc2libGUuPC9wPgo8L2Rpdj4KPC9saT4KPC91bD4KPC9kaXY+CjwvZGl2Pgo8L3NlY3Rpb24+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIGNoYWxsZW5nZXNfc2VjdGlvbiBndC1kZWZhdWx0IGdiLWRlZmF1bHQiPgo8ZGl2IGNsYXNzPSJjb250YWluZXIiPgo8ZGl2IGNsYXNzPSJjaGFsbGVuZ2VzX3NlY3Rpb24taGVhZGluZyI+CjxkaXYgY2xhc3M9InByZXRpdGxlIj4KT3VyIFRyYWRpbmcgQWR2YW50YWdlIDwvZGl2Pgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyIj4KPGgyIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj4KR2FpbiBhIENvbXBldGl0aXZlIEVkZ2UgV2l0aCBPdXIgPHNwYW4gY2xhc3M9Ii1jLWFjY2VudCI+Q2hhbGxlbmdlczwvc3Bhbj4gPC9oMj4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgo8cD5TZWxlY3QgeW91ciBjaGFsbGVuZ2UsIGRlbW9uc3RyYXRlIHRoYXQgeW91IGhhdmUgc3VjY2Vzc2Z1bCB0cmFkaW5nIHRlY2huaXF1ZXMsIGFuZCBnZW5lcmF0ZSBzdWJzdGFudGlhbCB2aXJ0dWFsIHByb2ZpdHMgdG8gYnVpbGQgeW91ciBmdXR1cmUuPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgaWQ9ImNoYWxsZW5nZXNUYWJsZSIgY2xhc3M9ImNoc19jb250YWluZXIiPgo8ZGl2IGNsYXNzPSIiIGlkPSJ0YWJzIj4KPGRpdiBjbGFzcz0ibS10YWJzIGpzLXRhYnMtd3JhcHBlciI+CjxkaXYgY2xhc3M9ImwtdGJuYXYgbC10Ym5hdi12MSIgcm9sZT0idGFibGlzdCI+CjxkaXYgY2xhc3M9ImwtdGJuYXYtdjFfX3dyYXAiPgo8ZGl2IGNsYXNzPSJsLXRibmF2X19pdGVtIGMtdGJuYXYgIGlzLWFjdGl2ZSBqcy10YWJzLW5hdi1pdGVtIiBkYXRhLXRhYj0icHJvZHVjdC0xIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGFyaWEtY29udHJvbHM9ImRhdGEtdGFiLXByb2R1Y3QtMSI+CjxkaXYgY2xhc3M9ImMtdGJuYXZfX2xhYmVsIj5UT1AgVElFUiBDSEFMTEVOR0U8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImwtdGJuYXZfX2l0ZW0gYy10Ym5hdiAgIGpzLXRhYnMtbmF2LWl0ZW0iIGRhdGEtdGFiPSJwcm9kdWN0LTIiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImRhdGEtdGFiLXByb2R1Y3QtMiI+CjxkaXYgY2xhc3M9ImMtdGJuYXZfX2xhYmVsIj5UT1AgVElFUiBDSEFMTEVOR0UgUExVUzwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJsLXRicGFuZWwgbC10YnBhbmVsLXYxIj4KPGRpdiBjbGFzcz0ibC10YnBhbmVsX19pdGVtIGpzLXRhYnMtcGFuZWwgbC1kY2JsIGlzLWFjdGl2ZSIgYXJpYS1oaWRkZW49ImZhbHNlIiBhcmlhLWxhYmVsbGVkYnk9ImRhdGEtdGFiLXByb2R1Y3QtMSIgaWQ9ImRhdGEtdGFiLXByb2R1Y3QtMSIgcm9sZT0idGFicGFuZWwiPgo8ZGl2IGNsYXNzPSJsLXRicGFuZWxfX2xhYmVsIGpzLXRhYnMtbGFiZWwiPlRPUCBUSUVSIENIQUxMRU5HRTwvZGl2PiAKPGRpdiBjbGFzcz0iYy1ibG9jayBqcy10YS1jb250ZW50IGlzLWFjdGl2ZSI+CjxkaXYgY2xhc3M9ImMtYmxvY2tfX2NvbCBjLWJsb2NrX19jb250ZW50Ij4KPGRpdiBjbGFzcz0iYy1ibG9ja19faW5uZXIiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmdfX2Rlc2NyaXB0aW9uIGlzLXd5c2l3eWciPgo8ZGl2IGNsYXNzPSJ0YWJzIj4KPGRpdiBjbGFzcz0ibC10Ym5hdiBsLXRibmF2LXYyIiByb2xlPSJ0YWJsaXN0Ij4KPGRpdiBjbGFzcz0ibC10Ym5hdi12Ml9fd3JhcCI+CjxkaXYgY2xhc3M9ImwtdGJuYXZfX2l0ZW0gYy10Ym5hdiBqcy1zZWNvbmRUYWJzIGlzLWFjdGl2ZSAiIGRhdGEtdGFiPSJhY2NvdW50VHlwZS1yZWd1bGFyLTEiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSIgYXJpYS1jb250cm9scz0iZGF0YS10YWItYWNjb3VudFR5cGUtcmVndWxhci0xIj4KUmVndWxhciBBY2NvdW50cyA8L2Rpdj4KPGRpdiBjbGFzcz0ibC10Ym5hdl9faXRlbSBjLXRibmF2IGpzLXNlY29uZFRhYnMgICIgZGF0YS10YWI9ImFjY291bnRUeXBlLXN3aW5nLTEiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImRhdGEtdGFiLWFjY291bnRUeXBlLXN3aW5nLTEiPgpTd2luZyBBY2NvdW50cyA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJsLXRicGFuZWwgbC10YnBhbmVsLXYyIj4KPGRpdiBjbGFzcz0ibC10YnBhbmVsX19pdGVtIGpzLXNlY29uZFRhYnNQYW5lbCBsLWRjYmwgaXMtYWN0aXZlIiBhcmlhLWhpZGRlbj0iZmFsc2UiIGFyaWEtbGFiZWxsZWRieT0iZGF0YS10YWItYWNjb3VudFR5cGUtcmVndWxhci0xIiBpZD0iZGF0YS10YWItYWNjb3VudFR5cGUtcmVndWxhci0xIiByb2xlPSJ0YWJwYW5lbCI+CjxkaXYgY2xhc3M9ImMtYmxvY2sgaXMtYWN0aXZlIj4KPGRpdiBjbGFzcz0iaXMtd3lzaXd5ZyI+CjxkaXYgaWQ9InR0X3JlZ3VsYXIiIGNsYXNzPSJzd2lwZXItY29udGFpbmVyLXdyYXBwZXIganMtc3dpcGVyLXByb2R1Y3Qgc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSIgZGF0YS1pZD0iMSIgZGF0YS10eXBlPSJyZWd1bGFyIj4KPGRpdiBjbGFzcz0ic3dpcGVyLW5hdiI+CjxpIGNsYXNzPSJzd2lwZXItbmF2LXRpdGxlIj5TZWxlY3QgdGhlIEFtb3VudDwvaT4KPHNwYW4gY2xhc3M9InNlbGVjdC1wb2ludCI+NUs8L3NwYW4+CjxkaXYgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXJlZ3VsYXItMSBzd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciBzd2lwZXItcGFnaW5hdGlvbi1ob3Jpem9udGFsIj48L2Rpdj4KPHVsIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1jdXN0b20tcmVndWxhci0xIHN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSI+CjxsaSBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLXJlZ3VsYXItMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggYWN0aXZlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj41Szwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1yZWd1bGFyLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MTBLPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLXJlZ3VsYXItMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj4yNUs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtcmVndWxhci0xIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjUwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1yZWd1bGFyLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MTAwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1yZWd1bGFyLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MjAwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1yZWd1bGFyLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MzAwSzwvc3Bhbj48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXRyYWRpbmctcmVndWxhci0xIHN3aXBlci1zbGlkZXItdHJhZGluZyBzd2lwZXItY29udGFpbmVyIHN3aXBlci1jb250YWluZXItLXRpbWVsaW5lIj4KPGRpdiBjbGFzcz0ic3dpcGVyLXdyYXBwZXIiPgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfNUsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDAgPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoMTAlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gMTAlIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNTAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjUwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDUlIGZyb20gdGhlIGRheSdzIHN0YXJ0aW5nIGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlJlZ3VsYXIgYWNjb3VudHMgZG8gbm90IGFsbG93IHlvdSB0byBob2xkIG9uIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUEncyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNzA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPWYyNjcyZmRlLTM2NTEtNDJhMi05OTc1LTc4MjE0MGEzNGZhZCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQ1Szwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMTBLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NaW5pbXVtIFRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmUgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMSwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMDAwICgxMCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiAxMCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gNSUgZnJvbSB0aGUgZGF5J3Mgc3RhcnRpbmcgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5SZWd1bGFyIGFjY291bnRzIGRvIG5vdCBhbGxvdyB5b3UgdG8gaG9sZCBvbiB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTMwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9MGZiMWEwMjItMDk2Zi00YjgwLTk4MTUtZDBlNjZjYTQzZmU3IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDEwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMjVLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NaW5pbXVtIFRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmUgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGlzIGlzIHRoZSB0cmFkZXLigJlzIGF2YWlsYWJsZSBsZXZlcmFnZSBmb3IgYm90aCB0aGUgZXZhbHVhdGlvbiBhbmQgbGl2ZSB0aWVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMiw1MDAgKDEwJSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDEwJSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA1JSBmcm9tIHRoZSBkYXkncyBzdGFydGluZyBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMiw1MDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMjUwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBkbyBub3QgYWxsb3cgeW91IHRvIGhvbGQgb24gdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlJlZ3VsYXIgYWNjb3VudHMgYXJlIG5vdCBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI1MDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9OWQ0MmFkYjItMTAzZC00MmVlLTk5NTgtMDMzNmQ4MmNjOTdjIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDI1Szwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfNTBLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NaW5pbXVtIFRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGVyZSBpcyBhIG1pbmltdW0gb2YgNCBkYXlzIHRoYXQgbXVzdCBiZSB0cmFkZWQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5DaGFsbGVuZ2UgTGV2ZXJhZ2U8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDAgPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGlzIGlzIHRoZSB0cmFkZXLigJlzIGF2YWlsYWJsZSBsZXZlcmFnZSBmb3IgYm90aCB0aGUgZXZhbHVhdGlvbiBhbmQgbGl2ZSB0aWVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDEwJSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDEwJSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA1JSBmcm9tIHRoZSBkYXkncyBzdGFydGluZyBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBkbyBub3QgYWxsb3cgeW91IHRvIGhvbGQgb24gdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlJlZ3VsYXIgYWNjb3VudHMgYXJlIG5vdCBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDM1MDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9ZGViZjQ5YzEtZDQzNS00YTdmLTk4NzctNzUzZWNhMjUyZTIzIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDUwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMTAwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDAgPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEwLDAwMCAoMTAlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gMTAlIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDUlIGZyb20gdGhlIGRheSdzIHN0YXJ0aW5nIGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObyA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm8gPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBkbyBub3QgYWxsb3cgeW91IHRvIGhvbGQgb24gdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObyA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm8gPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTYwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD00ZmYxZjgyYi05YWJmLTQxYmMtYWU5Ni04NTIyMzFiN2M0YTkiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMTAwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMjAwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjAsMDAwICgxMCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiAxMCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEwLDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gNSUgZnJvbSB0aGUgZGF5J3Mgc3RhcnRpbmcgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBkbyBub3QgYWxsb3cgeW91IHRvIGhvbGQgb24gdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlJlZ3VsYXIgYWNjb3VudHMgYXJlIG5vdCBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDk3OTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9MTQxYWVlNTEtMmY0OC00M2ZiLWFmNDUtNmM4ZWFjNDNmOGE3IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDIwMEs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzMwMEsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMzAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQzMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDMwLDAwMCAoMTAlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gMTAlIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNSwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTUsMDAwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDUlIGZyb20gdGhlIGRheSdzIHN0YXJ0aW5nIGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQzMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlJlZ3VsYXIgYWNjb3VudHMgZG8gbm90IGFsbG93IHlvdSB0byBob2xkIG9uIHRoZSB3ZWVrZW5kLjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UmVndWxhciBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMSwzOTk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPTNmZGM1ODBiLTUwNmYtNGIxNy05ODYwLTMwYjQ1MjY4MTkxMyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQzMDBLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImwtdGJwYW5lbF9faXRlbSBqcy1zZWNvbmRUYWJzUGFuZWwgbC1kY2JsICIgYXJpYS1oaWRkZW49InRydWUiIGFyaWEtbGFiZWxsZWRieT0iZGF0YS10YWItYWNjb3VudFR5cGUtc3dpbmctMSIgaWQ9ImRhdGEtdGFiLWFjY291bnRUeXBlLXN3aW5nLTEiIHJvbGU9InRhYnBhbmVsIj4KPGRpdiBjbGFzcz0iYy1ibG9jayBpcy1hY3RpdmUiPgo8ZGl2IGNsYXNzPSJpcy13eXNpd3lnIj4KPGRpdiBpZD0idHRfc3dpbmciIGNsYXNzPSJzd2lwZXItY29udGFpbmVyLXdyYXBwZXIganMtc3dpcGVyLXByb2R1Y3Qgc3dpcGVyLWNvbnRhaW5lci13cmFwcGVyLS10aW1lbGluZSIgZGF0YS1pZD0iMSIgZGF0YS10eXBlPSJzd2luZyI+CjxkaXYgY2xhc3M9InN3aXBlci1uYXYiPgo8aSBjbGFzcz0ic3dpcGVyLW5hdi10aXRsZSI+U2VsZWN0IHRoZSBBbW91bnQ8L2k+CjxzcGFuIGNsYXNzPSJzZWxlY3QtcG9pbnQiPjVLPC9zcGFuPgo8ZGl2IGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2luZy0xIHN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwiPjwvZGl2Pgo8dWwgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbS1zd2luZy0xIHN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSI+CjxsaSBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLXN3aW5nLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoIGFjdGl2ZSI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+NUs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtc3dpbmctMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj4xMEs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtc3dpbmctMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj4yNUs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtc3dpbmctMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj41MEs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtc3dpbmctMSBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj4xMDBLPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLXN3aW5nLTEgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MjAwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC1zd2luZy0xIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjMwMEs8L3NwYW4+PC9saT4KPC91bD4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci10cmFkaW5nLXN3aW5nLTEgc3dpcGVyLXNsaWRlci10cmFkaW5nIHN3aXBlci1jb250YWluZXIgc3dpcGVyLWNvbnRhaW5lci0tdGltZWxpbmUiPgo8ZGl2IGNsYXNzPSJzd2lwZXItd3JhcHBlciI+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ181SyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5cyA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBEYXlzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MzA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MTozMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTAwICgxMCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiAxMCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjUwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNTAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gNSUgZnJvbSB0aGUgZGF5J3Mgc3RhcnRpbmcgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjUwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUEncyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+U3dpbmcgYWNjb3VudHMgYXJlIG5vdCBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDcwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD04NDBjOGY5Ny04MzA5LTRiMTEtYmFiMS0zZTZlNDAwZGZhNTgiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kNUs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzEwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MzA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MTozMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMSwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMDAwICgxMCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiAxMCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gNSUgZnJvbSB0aGUgZGF5J3Mgc3RhcnRpbmcgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUHigJlzIEVuYWJsZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTMwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD03MGQyMDQ5NS1iNjA0LTQ2NWUtODJmYi0zYzkxMjdjMDhhYmMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMTBLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ18yNUsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMiw1MDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoMTAlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gMTAlIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMjUwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMjUwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMjUwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDUlIGZyb20gdGhlIGRheSdzIHN0YXJ0aW5nIGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMSwyNTAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUHigJlzIEVuYWJsZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjUwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD1mN2ZlNWM4OC1iOTdjLTRiNWEtOGJlMC04NjI1Yjg1YTZmYjMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMjVLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ181MEsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoMTAlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gMTAlIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIsNTAwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDUlIGZyb20gdGhlIGRheSdzIHN0YXJ0aW5nIGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMiw1MDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUHigJlzIEVuYWJsZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMzUwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD01ODAyYTMxYS00NTc4LTRiMzUtOWI2OC03MDdkZGI2MTc3YjMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kNTBLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ18xMDBLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NaW5pbXVtIFRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGVyZSBpcyBhIG1pbmltdW0gb2YgNCBkYXlzIHRoYXQgbXVzdCBiZSB0cmFkZWQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5DaGFsbGVuZ2UgTGV2ZXJhZ2U8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MTozMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MzA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGlzIGlzIHRoZSB0cmFkZXLigJlzIGF2YWlsYWJsZSBsZXZlcmFnZSBmb3IgYm90aCB0aGUgZXZhbHVhdGlvbiBhbmQgbGl2ZSB0aWVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDEwJSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDEwJSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA1JSBmcm9tIHRoZSBkYXkncyBzdGFydGluZyBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlN3aW5nIGFjY291bnRzIGFyZSBhbGxvd2VkIHRvIGhvbGQgdHJhZGVzIG92ZXIgdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ObzwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlN3aW5nIGFjY291bnRzIGFyZSBub3QgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1NjA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPTgxMGVkMzE0LTg1ODktNGUxZi1iZWEwLTFhNmJmNjdhNjdjZSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQxMDBLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ18yMDBLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NaW5pbXVtIFRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGVyZSBpcyBhIG1pbmltdW0gb2YgNCBkYXlzIHRoYXQgbXVzdCBiZSB0cmFkZWQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5DaGFsbGVuZ2UgTGV2ZXJhZ2U8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MTozMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MzA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGlzIGlzIHRoZSB0cmFkZXLigJlzIGF2YWlsYWJsZSBsZXZlcmFnZSBmb3IgYm90aCB0aGUgZXZhbHVhdGlvbiBhbmQgbGl2ZSB0aWVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDIwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyMCwwMDAgKDEwJSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDEwJSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEwLDAwMCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA1JSBmcm9tIHRoZSBkYXkncyBzdGFydGluZyBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjAsMDAwICgxMCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUHigJlzIEVuYWJsZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm88L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5Td2luZyBhY2NvdW50cyBhcmUgbm90IGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kOTc5PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD0yYjBiMzBjNS1jMTkyLTRjYTUtYWQxMC1jZDYyNTAwMGY2NDkiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMjAwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMzAwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MzA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MTozMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjMwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQzMCwwMDAgKDEwJSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDMwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMzAsMDAwICgxMCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiAxMCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNSwwMDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gNSUgZnJvbSB0aGUgZGF5J3Mgc3RhcnRpbmcgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDMwLDAwMCAoMTAlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+U3dpbmcgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gaG9sZCB0cmFkZXMgb3ZlciB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+U3dpbmcgYWNjb3VudHMgYXJlIG5vdCBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEsMzk5PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD03MGM5ZGIwMC0xNzZiLTQyOTMtYWY0NC0wNGNjMjBjMmQ5NjIiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMzAwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibC10YnBhbmVsX19pdGVtIGpzLXRhYnMtcGFuZWwgbC1kY2JsICIgYXJpYS1oaWRkZW49InRydWUiIGFyaWEtbGFiZWxsZWRieT0iZGF0YS10YWItcHJvZHVjdC0yIiBpZD0iZGF0YS10YWItcHJvZHVjdC0yIiByb2xlPSJ0YWJwYW5lbCI+CjxkaXYgY2xhc3M9ImwtdGJwYW5lbF9fbGFiZWwganMtdGFicy1sYWJlbCI+VE9QIFRJRVIgQ0hBTExFTkdFIFBMVVM8L2Rpdj4gCjxkaXYgY2xhc3M9ImMtYmxvY2sganMtdGEtY29udGVudCAiPgo8ZGl2IGNsYXNzPSJjLWJsb2NrX19jb2wgYy1ibG9ja19fY29udGVudCI+CjxkaXYgY2xhc3M9ImMtYmxvY2tfX2lubmVyIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nX19kZXNjcmlwdGlvbiBpcy13eXNpd3lnIj4KPGRpdiBpZD0idHRfc2ltcGxlIiBjbGFzcz0ic3dpcGVyLWNvbnRhaW5lci13cmFwcGVyIGpzLXN3aXBlci1wcm9kdWN0IHN3aXBlci1jb250YWluZXItd3JhcHBlci0tdGltZWxpbmUiIGRhdGEtaWQ9IjIiIGRhdGEtdHlwZT0ic2ltcGxlIj4KPGRpdiBjbGFzcz0ic3dpcGVyLW5hdiI+CjxpIGNsYXNzPSJzd2lwZXItbmF2LXRpdGxlIj5TZWxlY3QgdGhlIEFtb3VudDwvaT4KPHNwYW4gY2xhc3M9InNlbGVjdC1wb2ludCI+NUs8L3NwYW4+CjxkaXYgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLTIgc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIgc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbCI+PC9kaXY+Cjx1bCBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLTIgc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tIj4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtMiBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggYWN0aXZlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj41Szwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC0yIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjEwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC0yIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjI1Szwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC0yIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjUwSzwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaC0yIHN3aXBlci1wYWdpbmF0aW9uLXN3aXRjaCAiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtdGl0bGUiPjEwMEs8L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtMiBzd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2ggIj48c3BhbiBjbGFzcz0ic3dpdGNoLXRpdGxlIj4yMDBLPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLTIgc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoICI+PHNwYW4gY2xhc3M9InN3aXRjaC10aXRsZSI+MzAwSzwvc3Bhbj48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXRyYWRpbmctMiBzd2lwZXItc2xpZGVyLXRyYWRpbmcgc3dpcGVyLWNvbnRhaW5lciBzd2lwZXItY29udGFpbmVyLS10aW1lbGluZSI+CjxkaXYgY2xhc3M9InN3aXBlci13cmFwcGVyIj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzVLIj4KPGRpdiBjbGFzcz0idGFibGUiPgo8ZGl2IGNsYXNzPSJ0aGVhZGVyIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQiPiZuYnNwOzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMSA8L3NwYW4+PGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRpZXIgMiA8L3NwYW4+IDxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5Ub3AgPC9zcGFuPiA8Ym9sZD5UaWVyIFRyYWRlcjwvYm9sZD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0Ym9keSI+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+VHJhZGluZyBEYXlzIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IERheXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGVyZSBpcyBhIG1pbmltdW0gb2YgNCBkYXlzIHRoYXQgbXVzdCBiZSB0cmFkZWQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5DaGFsbGVuZ2UgTGV2ZXJhZ2U8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5UaGlzIGlzIHRoZSB0cmFkZXLigJlzIGF2YWlsYWJsZSBsZXZlcmFnZSBmb3IgYm90aCB0aGUgZXZhbHVhdGlvbiBhbmQgbGl2ZSB0aWVyLjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ0MDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNDAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDQwMCAoJSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGRyb3AgbW9yZSB0aGFuIDglIGZyb20gdGhlIGluaXRpYWwgYWNjb3VudCBiYWxhbmNlPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWF4IERhaWx5IExvc3M8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNTAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjUwICg1JSk8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BIHRyYWRlcuKAmXMgZXF1aXR5IG11c3Qgbm90IGV4Y2VlZCBtb3JlIHRoYW4gNSUgdGhlIGRhaWx5IHN0YXJ0aW5nIGFjY291bnQgZXF1aXR5IG9yIGJhbGFuY2Ugd2hpY2hldmVyIGlzIGhpZ2hlcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlByb2ZpdCBUYXJnZXQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDQwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNTAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmcgPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUEncyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ4MDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9YjIzZWU2ZGEtN2U4Ny00MWRhLWFhNWEtNWM0ZDI4M2Y5YzA0IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDVLPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+CjxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPgo8L3NwYW4+Cjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InN3aXBlci1zbGlkZSAiIGlkPSJ0dF9yZ18xMEsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kODAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDgwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ4MDAgKDglKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gOCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ1MDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZXhjZWVkIG1vcmUgdGhhbiA1JSB0aGUgZGFpbHkgc3RhcnRpbmcgYWNjb3VudCBlcXVpdHkgb3IgYmFsYW5jZSB3aGljaGV2ZXIgaXMgaGlnaGVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kODAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlBsdXMgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gaG9sZCB0cmFkZXMgb3ZlciB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNDA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPTE4NTI3N2U3LTEzZDMtNDg1NS1iYjA2LTRjNGJmN2M0MTE4NiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQxMEs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzI1SyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDAwMCAoOCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA4JSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBleGNlZWQgbW9yZSB0aGFuIDUlIHRoZSBkYWlseSBzdGFydGluZyBhY2NvdW50IGVxdWl0eSBvciBiYWxhbmNlIHdoaWNoZXZlciBpcyBoaWdoZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDI1MCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlBsdXMgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gaG9sZCB0cmFkZXMgb3ZlciB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNTU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPWJjYjBmNzNlLWYyNDQtNGIyZi1iY2NlLTlkMTA3ZGM1NTdmYiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQyNUs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzUwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ0LDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ0LDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ0LDAwMCAoOCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA4JSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBleGNlZWQgbW9yZSB0aGFuIDUlIHRoZSBkYWlseSBzdGFydGluZyBhY2NvdW50IGVxdWl0eSBvciBiYWxhbmNlIHdoaWNoZXZlciBpcyBoaWdoZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQ0LDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyLDUwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlBsdXMgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gaG9sZCB0cmFkZXMgb3ZlciB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQzNzU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+RnJlZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5SZWZ1bmQ8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5BbGwgZmVlcyBhcmUgcmVmdW5kZWQgd2l0aCB0aGUgdHJhZGVy4oCZcyBmaXJzdCBwcm9maXQgd2l0aGRyYXdhbCBmcm9tIHRoZWlyIGZ1bmRlZCBhY2NvdW50PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2hzX2J0biI+CjxhIGhyZWY9Imh0dHBzOi8vYXBwLmF1dG9saXRlZmluYW5jZXMucHJvL2xvZ2luP2lkPTQ0OTQyZTE4LTllMDMtNGI0Yi04ZTYyLTRjNTNjOTUyNWMzOCIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjaHNfYnRuX2xuayBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij4KR2V0IDxzcGFuPiQ1MEs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzEwMEsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMCA8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+MToxMDAgPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kOCwwMDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kOCwwMDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kOCwwMDAgKDglKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gOCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZXhjZWVkIG1vcmUgdGhhbiA1JSB0aGUgZGFpbHkgc3RhcnRpbmcgYWNjb3VudCBlcXVpdHkgb3IgYmFsYW5jZSB3aGljaGV2ZXIgaXMgaGlnaGVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kOCwwMDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNSwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5XZWVrZW5kIEhvbGRpbmc8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5QbHVzIGFjY291bnRzIGFyZSBhbGxvd2VkIHRvIGhvbGQgdHJhZGVzIG92ZXIgdGhlIHdlZWtlbmQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5FQeKAmXMgRW5hYmxlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlBsdXMgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gdXNlIGV4cGVydCBhZHZpc29yczwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPlJlZnVuZGFibGUgRmVlczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kNTk5PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPkZyZWU8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+UmVmdW5kPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QWxsIGZlZXMgYXJlIHJlZnVuZGVkIHdpdGggdGhlIHRyYWRlcuKAmXMgZmlyc3QgcHJvZml0IHdpdGhkcmF3YWwgZnJvbSB0aGVpciBmdW5kZWQgYWNjb3VudDwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNoc19idG4iPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbj9pZD1jZmIwOTk3YS0xMzdkLTQzMDQtYjMxYS0wZjM2NWE4ZWFmYWYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iY2hzX2J0bl9sbmsgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+CkdldCA8c3Bhbj4kMTAwSzwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPgo8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz4KPC9zcGFuPgo8L3NwYW4+CjwvYT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUgIiBpZD0idHRfcmdfMjAwSyI+CjxkaXYgY2xhc3M9InRhYmxlIj4KPGRpdiBjbGFzcz0idGhlYWRlciI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4mbmJzcDs8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDEgPC9zcGFuPjxib2xkPkNoYWxsZW5nZTwvYm9sZD48L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+PHNwYW4gY2xhc3M9InRpZXItdGFiIj5UaWVyIDIgPC9zcGFuPiA8Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VG9wIDwvc3Bhbj4gPGJvbGQ+VGllciBUcmFkZXI8L2JvbGQ+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGJvZHkiPgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCAiPlRyYWRpbmcgRGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+TWluaW11bSBUcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+NCBkYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5Ob25lPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhlcmUgaXMgYSBtaW5pbXVtIG9mIDQgZGF5cyB0aGF0IG11c3QgYmUgdHJhZGVkPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+Q2hhbGxlbmdlIExldmVyYWdlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjE6MTAwPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+VGhpcyBpcyB0aGUgdHJhZGVy4oCZcyBhdmFpbGFibGUgbGV2ZXJhZ2UgZm9yIGJvdGggdGhlIGV2YWx1YXRpb24gYW5kIGxpdmUgdGllcjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNiwwMDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTYsMDAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE2LDAwMCAoOCUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBkcm9wIG1vcmUgdGhhbiA4JSBmcm9tIHRoZSBpbml0aWFsIGFjY291bnQgYmFsYW5jZTwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1heCBEYWlseSBMb3NzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxMCwwMDAgKDUlKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDEwLDAwMCAoNSUpPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+QSB0cmFkZXLigJlzIGVxdWl0eSBtdXN0IG5vdCBleGNlZWQgbW9yZSB0aGFuIDUlIHRoZSBkYWlseSBzdGFydGluZyBhY2NvdW50IGVxdWl0eSBvciBiYWxhbmNlIHdoaWNoZXZlciBpcyBoaWdoZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5Qcm9maXQgVGFyZ2V0PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNiwwMDAgKDglKTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTAsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+V2Vla2VuZCBIb2xkaW5nPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byBob2xkIHRyYWRlcyBvdmVyIHRoZSB3ZWVrZW5kPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+RUHigJlzIEVuYWJsZWQ8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRyb3cgdG9nZ2xlX21lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8cD5QbHVzIGFjY291bnRzIGFyZSBhbGxvd2VkIHRvIHVzZSBleHBlcnQgYWR2aXNvcnM8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5SZWZ1bmRhYmxlIEZlZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDk5OTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9MzRkMzhjYTAtZDEzMy00NjBlLWEyNzMtZWQwNGViMGVkYWY5IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDIwMEs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlICIgaWQ9InR0X3JnXzMwMEsiPgo8ZGl2IGNsYXNzPSJ0YWJsZSI+CjxkaXYgY2xhc3M9InRoZWFkZXIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCI+Jm5ic3A7PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAxIDwvc3Bhbj48Ym9sZD5DaGFsbGVuZ2U8L2JvbGQ+PC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjxzcGFuIGNsYXNzPSJ0aWVyLXRhYiI+VGllciAyIDwvc3Bhbj4gPGJvbGQ+Q2hhbGxlbmdlPC9ib2xkPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij48c3BhbiBjbGFzcz0idGllci10YWIiPlRvcCA8L3NwYW4+IDxib2xkPlRpZXIgVHJhZGVyPC9ib2xkPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRib2R5Ij4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgIj5UcmFkaW5nIERheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+VW5saW1pdGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlVubGltaXRlZDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5VbmxpbWl0ZWQ8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPk1pbmltdW0gVHJhZGluZyBEYXlzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPjQgZGF5czwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij40IGRheXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+Tm9uZTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoZXJlIGlzIGEgbWluaW11bSBvZiA0IGRheXMgdGhhdCBtdXN0IGJlIHRyYWRlZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkNoYWxsZW5nZSBMZXZlcmFnZTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4xOjEwMDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlRoaXMgaXMgdGhlIHRyYWRlcuKAmXMgYXZhaWxhYmxlIGxldmVyYWdlIGZvciBib3RoIHRoZSBldmFsdWF0aW9uIGFuZCBsaXZlIHRpZXI8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjQsMDAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDI0LDAwMCAoOCUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQyNCwwMDAgKDglKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZHJvcCBtb3JlIHRoYW4gOCUgZnJvbSB0aGUgaW5pdGlhbCBhY2NvdW50IGJhbGFuY2U8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idGFiIj4KPGRpdiBjbGFzcz0idHJvdyI+CjxkaXYgY2xhc3M9InRkYXQgdGRhdC1pbmZvIj5NYXggRGFpbHkgTG9zczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMTUsMDAwICg1JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxNSwwMDAgKDUlKTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkEgdHJhZGVy4oCZcyBlcXVpdHkgbXVzdCBub3QgZXhjZWVkIG1vcmUgdGhhbiA1JSB0aGUgZGFpbHkgc3RhcnRpbmcgYWNjb3VudCBlcXVpdHkgb3IgYmFsYW5jZSB3aGljaGV2ZXIgaXMgaGlnaGVyPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0ICI+UHJvZml0IFRhcmdldDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij4kMjQsMDAwICg4JSk8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+JDE1LDAwMCAoNSUpPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPk5vbmU8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPldlZWtlbmQgSG9sZGluZzwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPlBsdXMgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gaG9sZCB0cmFkZXMgb3ZlciB0aGUgd2Vla2VuZDwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWIiPgo8ZGl2IGNsYXNzPSJ0cm93Ij4KPGRpdiBjbGFzcz0idGRhdCB0ZGF0LWluZm8iPkVB4oCZcyBFbmFibGVkPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0idGRhdCI+WWVzPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0cm93IHRvZ2dsZV9tZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KPHA+UGx1cyBhY2NvdW50cyBhcmUgYWxsb3dlZCB0byB1c2UgZXhwZXJ0IGFkdmlzb3JzPC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRhYiI+CjxkaXYgY2xhc3M9InRyb3ciPgo8ZGl2IGNsYXNzPSJ0ZGF0IHRkYXQtaW5mbyI+UmVmdW5kYWJsZSBGZWVzPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPiQxLDQ4OTwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZGF0Ij5GcmVlPC9kaXY+CjxkaXYgY2xhc3M9InRkYXQiPlJlZnVuZDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJvdyB0b2dnbGVfbWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CjxwPkFsbCBmZWVzIGFyZSByZWZ1bmRlZCB3aXRoIHRoZSB0cmFkZXLigJlzIGZpcnN0IHByb2ZpdCB3aXRoZHJhd2FsIGZyb20gdGhlaXIgZnVuZGVkIGFjY291bnQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjaHNfYnRuIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4/aWQ9MTIzNGFjNmItZjNmNS00NjhlLThmMGItNDM2MzlkNTJkYzMwIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImNoc19idG5fbG5rIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPgpHZXQgPHNwYW4+JDMwMEs8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4KPHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLWFycm93MSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLWFycm93MSI+PC91c2U+PC9zdmc+Cjwvc3Bhbj4KPC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4gPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIGd0LWRlZmF1bHQgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImwtYmxvY2siPgo8ZGl2IGNsYXNzPSJsLWJsb2NrX19jb2wiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyICI+CjxoMiBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+WW91ciBQYXRoIHRvIDxzcGFuIGNsYXNzPSItYy1hY2NlbnQiPkZpbmFuY2lhbCBJbmRlcGVuZGVuY2U8L3NwYW4+IHRocm91Z2ggVHJhZGluZzwvaDI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZXh0Ij4KRGlzY292ZXIgdGhlIGJlbmVmaXRzIG9mIHRyYWRpbmcgd2l0aCBUb3BUaWVyIFRyYWRlciBhbmQgaG93IHdlIGNhbiBoZWxwIHlvdSBhY2hpZXZlIHlvdXIgZmluYW5jaWFsIGdvYWxzLsKgIDwvZGl2Pgo8ZGl2IGNsYXNzPSJjdGEiPgo8YSBocmVmPSJodHRwczovL2FwcC5hdXRvbGl0ZWZpbmFuY2VzLnByby9sb2dpbiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJjLWJ0biAtcHJpbWFyeSI+U3RhcnQgVHJhZGluZyBUb2RheSA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibC1ibG9ja19fY29sIj4KPHVsIGNsYXNzPSJjYXJkcy1saXN0Ij4KPGxpIGNsYXNzPSJjYXJkIHRleHQtbGlnaHQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMzY1M2E3Ij4KPGRpdiBjbGFzcz0iY2FyZC1pY29uIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRTRBQUFCa0FRTUFBQUFTVTVRT0FBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCSkpSRUZVT010allCZ0ZvMkFVakFMS0FRQUVUQUFCY0VjZ29RQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9InBhdGgtMSIgd2lkdGg9Ijc4IiBoZWlnaHQ9IjEwMCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3BhdGgtMS5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9Ijc4IiBkYXRhLWVpby1yaGVpZ2h0PSIxMDAiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvcGF0aC0xLnN2ZyIgYWx0PSJwYXRoLTEiIHdpZHRoPSI3OCIgaGVpZ2h0PSIxMDAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1kZXNjIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMyAiPgo8aDMgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPlNjYWxpbmcgUGxhbnM8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0idGV4dCI+CjxwPlByb3ZlIHlvdSYjODIxNztyZSBhIGNvbnNpc3RlbnQgdHJhZGVyICZhbXA7IHdlIHdpbGwgdXBncmFkZSB5b3VyIHZpcnR1YWwgcHJvZml0IHNoYXJlIGZyb20gPHN0cm9uZz44MCU8L3N0cm9uZz4gdG8gPHN0cm9uZz45MCU8L3N0cm9uZz4uPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CjxsaSBjbGFzcz0iY2FyZCB0ZXh0LWRhcmsiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhMTZjIj4KPGRpdiBjbGFzcz0iY2FyZC1pY29uIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR2dBQUFCa0FRTUFBQUJRRU9lWkFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCUkpSRUZVT010allCZ0ZvMkFVaklKUlFFOEFBQVY0QUFFcGNibjhBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9InBhdGgtMiIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIxMDAiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTIuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIxMDQiIGRhdGEtZWlvLXJoZWlnaHQ9IjEwMCI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTIuc3ZnIiBhbHQ9InBhdGgtMiIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIxMDAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1kZXNjIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMyAiPgo8aDMgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPkJ1aWx0IGZvciBQZXJmb3JtYW5jZcKgPC9oMz4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgo8cD5HZXQgaW5zdGFudCBhY2Nlc3MgdG8geW91ciBhY2NvdW50ICZhbXA7IHRyYWNrIGFsbCBvZiB5b3VyIGFuYWx5dGljcyBvbiBvbmUgZWFzeSB0byB1c2UgZGFzaGJvYXJkLjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgo8bGkgY2xhc3M9ImNhcmQgdGV4dC1kYXJrIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzM2NTNhNyI+CjxkaXYgY2xhc3M9ImNhcmQtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUU4QUFBQmtBUU1BQUFEOWtmOHdBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQkpKUkVGVU9NdGpZQmdGbzJBVWpBTEtBUUFFVEFBQmNFY2dvUUFBQUFCSlJVNUVya0pnZ2c9PSIgYWx0PSJwYXRoLTMiIHdpZHRoPSI3OSIgaGVpZ2h0PSIxMDAiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTMuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSI3OSIgZGF0YS1laW8tcmhlaWdodD0iMTAwIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3BhdGgtMy5zdmciIGFsdD0icGF0aC0zIiB3aWR0aD0iNzkiIGhlaWdodD0iMTAwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtZGVzYyI+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDMgIj4KPGgzIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5ObyBSZXN0cmljdGlvbnM8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0idGV4dCI+CjxwPkJ1aWxkIGEgd2lubmluZyBzdHJhdGVneSB0aGF0IHN1aXRzIHlvdXIgdHJhZGluZyBzdHlsZS4gVGhlcmUgYXJlIG5vIHJlc3RyaWN0aW9ucyBvbiB0ZWNobmlxdWVzLjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgo8bGkgY2xhc3M9ImNhcmQgdGV4dC1kYXJrIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmYTE2YyI+CjxkaXYgY2xhc3M9ImNhcmQtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdFQUFBQmtBUU1BQUFDc0JjeFRBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQlJKUkVGVU9NdGpZQmdGbzJBVWpJSlJRRThBQUFWNEFBRXBjYm44QUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJwYXRoLTQiIHdpZHRoPSI5NyIgaGVpZ2h0PSIxMDAiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTQuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSI5NyIgZGF0YS1laW8tcmhlaWdodD0iMTAwIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3BhdGgtNC5zdmciIGFsdD0icGF0aC00IiB3aWR0aD0iOTciIGhlaWdodD0iMTAwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtZGVzYyI+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDMgIj4KPGgzIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5SaXNrLUZyZWUgU2ltdWxhdGVkIFRyYWRpbmc8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0idGV4dCI+CjxwPkJlY29tZSBvbmUgb2YgdGhlIGVsaXRlIGFuZCBidWlsZCBjb25zaXN0ZW50IHZpcnR1YWwgcHJvZml0cyB3aXRob3V0IHJpc2tpbmcgeW91ciBvd24gY2FwaXRhbC48L3A+CjwvZGl2Pgo8L2Rpdj4KPC9saT4KPGxpIGNsYXNzPSJjYXJkIHRleHQtZGFyayIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMzNjUzYTciPgo8ZGl2IGNsYXNzPSJjYXJkLWljb24iPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHRUFBQUJrQVFNQUFBQ3NCY3hUQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUJSSlJFRlVPTXRqWUJnRm8yQVVqSUpSUUU4QUFBVjRBQUVwY2JuOEFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0icGF0aC01IiB3aWR0aD0iOTciIGhlaWdodD0iMTAwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvcGF0aC01LnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iOTciIGRhdGEtZWlvLXJoZWlnaHQ9IjEwMCI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTUuc3ZnIiBhbHQ9InBhdGgtNSIgd2lkdGg9Ijk3IiBoZWlnaHQ9IjEwMCIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJjYXJkLWRlc2MiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgzICI+CjxoMyBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+UmVhbGlzdGljIFNpbXVsYXRlZCBQcm9maXQgVGFyZ2V0czwvaDM+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0ZXh0Ij4KPHA+V2UgZG9uJiM4MjE3O3QgYmVsaWV2ZSBpbiBsaW1pdHMuIEJ1aWxkIHZpcnR1YWwgcHJvZml0cyB3aXRob3V0IHVucmVhbGlzdGljIHZpcnR1YWwgcHJvZml0IHRhcmdldHMuPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+CjxsaSBjbGFzcz0iY2FyZCB0ZXh0LWRhcmsiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhMTZjIj4KPGRpdiBjbGFzcz0iY2FyZC1pY29uIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR0lBQUFCa0FRTUFBQUJITW5kUUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCUkpSRUZVT010allCZ0ZvMkFVaklKUlFFOEFBQVY0QUFFcGNibjhBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9InBhdGgtNiIgd2lkdGg9Ijk4IiBoZWlnaHQ9IjEwMCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3BhdGgtNi5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9Ijk4IiBkYXRhLWVpby1yaGVpZ2h0PSIxMDAiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvcGF0aC02LnN2ZyIgYWx0PSJwYXRoLTYiIHdpZHRoPSI5OCIgaGVpZ2h0PSIxMDAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iY2FyZC1kZXNjIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMyAiPgo8aDMgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPlByb2Zlc3Npb25hbCBTdXBwb3J0PC9oMz4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgo8cD5XZSBoYXZlIGEgdGVhbSB0aGlzIGlzPHNwYW4gc3R5bGU9ImNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTsiPsKgYXZhaWxhYmxlIDI0LzcgdG8gaGVscCB5b3UgYWNoaWV2ZSByZWFsIHJlc3VsdHMuPC9zcGFuPjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2xpPgo8bGkgY2xhc3M9ImNhcmQgdGV4dC1kYXJrIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogIzM2NTNhNyI+CjxkaXYgY2xhc3M9ImNhcmQtaWNvbiI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdjQUFBQmNBUU1BQUFCSk1qblVBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQkpKUkVGVU9NdGpZQmdGbzJBVWpJS1JEUUFGQ0FBQnVrT2FOQUFBQUFCSlJVNUVya0pnZ2c9PSIgYWx0PSJwYXRoLTciIHdpZHRoPSIxMDMiIGhlaWdodD0iOTIiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLTcuc3ZnIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIxMDMiIGRhdGEtZWlvLXJoZWlnaHQ9IjkyIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3BhdGgtNy5zdmciIGFsdD0icGF0aC03IiB3aWR0aD0iMTAzIiBoZWlnaHQ9IjkyIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImNhcmQtZGVzYyI+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDMgIj4KPGgzIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5GZWUgUmVmdW5kPC9oMz4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgo8cD5SZWNlaXZlIGEgcmVmdW5kIG9mIHlvdXIgcHVyY2hhc2Ugd2hlbiB5b3UgYmVhdCB0aGUgZXZhbHVhdGlvbiBjaGFsbGVuZ2UuPC9wPgo8L2Rpdj4KPC9kaXY+CjwvbGk+Cgo8bGkgY2xhc3M9ImNhcmQgbGFzdC1jYXJkIHRleHQtbGlnaHQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1MzJkIj4KPGRpdiBjbGFzcz0ibGFzdC1jYXJkLWNvbnRlbnQiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyICI+CjxoMiBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+U3RhcnQgVHJhZGluZyBUb2RheTwvaDI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJsYXN0LWNhcmQtY3RhIj4KPGEgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYy1idG4gLXNlY29uZGFyeSI+VGhpcyB3YXkgPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9Imxhc3QtY2FyZC1iZy1pbWciPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFYWUFBQUUwQVFNQUFBQUNBSXBCQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUNWSlJFRlVhTjd0d1RFQkFBQUF3cUQxVDIwSlQ2QUFBQUFBQUFBQUFBQUFBQUFBQUhnYU9jQUFBVGU4NmlRQUFBQUFTVVZPUks1Q1lJST0iIGFsdD0icGF0aC11bmlvbiIgd2lkdGg9IjM3NCIgaGVpZ2h0PSIzMDgiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9wYXRoLXVuaW9uLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMzc0IiBkYXRhLWVpby1yaGVpZ2h0PSIzMDgiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvcGF0aC11bmlvbi5zdmciIGFsdD0icGF0aC11bmlvbiIgd2lkdGg9IjM3NCIgaGVpZ2h0PSIzMDgiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0ibGFzdC1jYXJkLWltZyI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUxjQUFBRXNBUU1BQUFDN2RyRG9BQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQjFKUkVGVVdNUHR3UUVCQUFBQWdpRC9yMjVJUUFFQUFBQUFBQUF2Qmh3Z0FBRjJ0VE11QUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJjZWxsLXBob25lIiB3aWR0aD0iMTgzIiBoZWlnaHQ9IjMwMCIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2NlbGwtcGhvbmUtMTgzeDMwMC5wbmciIGRlY29kaW5nPSJhc3luYyIgZGF0YS1zcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2NlbGwtcGhvbmUtMTgzeDMwMC5wbmcgMTgzdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvY2VsbC1waG9uZS5wbmcgMjE5dyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjE4MyIgZGF0YS1laW8tcmhlaWdodD0iMzAwIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2NlbGwtcGhvbmUtMTgzeDMwMC5wbmciIHNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvY2VsbC1waG9uZS0xODN4MzAwLnBuZyAxODN3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9jZWxsLXBob25lLnBuZyAyMTl3IiBhbHQ9ImNlbGwtcGhvbmUiIHdpZHRoPSIxODMiIGhlaWdodD0iMzAwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gd2h5X3RyYWRlX3dpdGhfdXNfc2VjdGlvbiBndC1iaWcgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImJnLWltYWdlIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBaVVBQUFMeUFRTUFBQUEvbURZL0FBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFFcEpSRUZVZU5ydHdURUJBQUFBd3FEMVQyME5ENkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRCtETTRzQUFHRjI1K2NBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9IlVuaW9uICgxKSIgd2lkdGg9IjU0OSIgaGVpZ2h0PSI3NTQiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9Vbmlvbi0xLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iNTQ5IiBkYXRhLWVpby1yaGVpZ2h0PSI3NTQiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvVW5pb24tMS5zdmciIGFsdD0iVW5pb24gKDEpIiB3aWR0aD0iNTQ5IiBoZWlnaHQ9Ijc1NCIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJjb250YWluZXIiPgo8ZGl2IGNsYXNzPSJiYWNrdGl0bGUiPgpXaHkgVHJhZGUgd2l0aCBVcz8gPHNwYW4+CldoeSBUcmFkZSB3aXRoIFVzPyA8L3NwYW4+CldoeSBUcmFkZSB3aXRoIFVzPyA8c3Bhbj4KV2h5IFRyYWRlIHdpdGggVXM/IDwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDIgIj4KPGgyIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5TZWUgd2h5IDxzcGFuIGNsYXNzPSItYy1hY2NlbnQiPlRvcFRpZXIgVHJhZGVyPC9zcGFuPiBpcyBZb3VyIDxzcGFuIGNsYXNzPSJzZWNvbmRTcGFuIj5CZXN0IE9wdGlvbjwvc3Bhbj48L2gyPgo8L2Rpdj4KPGRpdiBjbGFzcz0idHJhZGUtdXMtd3JhcHBlciI+Cjx0YWJsZSBjbGFzcz0idHJhZGUtdXMiPgo8dGhlYWQ+Cjx0cj4KPHRoPgpJbmRpY2F0b3JzIDwvdGg+Cjx0aD4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTEFBQUFBMUFRTUFBQURiQlBOMkFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCSkpSRUZVT010allCZ0ZvMkFVaklJaEN3QUV3d0FCYVNrb1RRQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9IkxheWVyXzEiIHdpZHRoPSIxNzYiIGhlaWdodD0iNTMiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9MYXllcl8xLnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMTc2IiBkYXRhLWVpby1yaGVpZ2h0PSI1MyI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9MYXllcl8xLnN2ZyIgYWx0PSJMYXllcl8xIiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjUzIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC90aD4KPHRoPgpGVE1PIDwvdGg+Cjx0aD4Kc3VyZ2UgdHJhZGVyIDwvdGg+Cjx0aD4KdGhlIGZ1bmRlZCB0cmFkZXIgPC90aD4KPC90cj4KPC90aGVhZD4KPHRib2R5Pgo8dHI+Cjx0ZD4KU2ltdWxhdGVkIEFjY291bnQgc2l6ZSAmIG1vZGVsIDwvdGQ+Cjx0ZD4KMTAwayBTdGFuZGFyZCBDaGFsbGVuZ2UgPC90ZD4KPHRkPgoxMDBrIEV2YWx1YXRpb24gPC90ZD4KPHRkPgoxMDBrIEV2YWx1YXRpb24gPC90ZD4KPHRkPgoxMDBrIEV2YWx1YXRpb24gPC90ZD4KPC90cj4KPHRyPgo8dGQ+ClByaWNlIChVU0QpIDwvdGQ+Cjx0ZD4KJDQ3NiogKFdpdGggQ291cG9uKSA8L3RkPgo8dGQ+CiQ1NDAgPC90ZD4KPHRkPgokNzAwIDwvdGQ+Cjx0ZD4KJDQ5OSA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KTWF4aW11bSBzaW11bGF0ZWQgZHJhd2Rvd24gPC90ZD4KPHRkPgo1JSBEYWlseSB8IDEwJSBUb3RhbCA8L3RkPgo8dGQ+CjUlIERhaWx5IHwgMTAlIFRvdGFsIDwvdGQ+Cjx0ZD4KNSUgRGFpbHkgfCAxMCUgVG90YWwgPC90ZD4KPHRkPgo1JSBEYWlseSB8IDEwJSBUb3RhbCA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KUGF5b3V0IHNwbGl0ICh0cmFkZXIvZmlybSkgPC90ZD4KPHRkPgo4MC8yMCA8L3RkPgo8dGQ+CjgwLzIwIDwvdGQ+Cjx0ZD4KODAvMjAgPC90ZD4KPHRkPgo4MC8yMCA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KTWluaW11bSBTaW11bGF0ZWQgVHJhZGluZyBEYXlzIDwvdGQ+Cjx0ZD4KNCBkYXlzIDwvdGQ+Cjx0ZD4KNCBkYXlzIDwvdGQ+Cjx0ZD4KMyBkYXlzIDwvdGQ+Cjx0ZD4KNSBkYXlzIDwvdGQ+CjwvdHI+Cjx0cj4KPHRkPgpFdmFsdWF0aW9uIDwvdGQ+Cjx0ZD4KMiBQaGFzZSA8L3RkPgo8dGQ+CjIgUGhhc2UgPC90ZD4KPHRkPgoyIFBoYXNlIDwvdGQ+Cjx0ZD4KMiBQaGFzZSA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KU2ltdWxhdGVkIFRhcmdldHMgPC90ZD4KPHRkPgoxMCUgJiA1JSA8L3RkPgo8dGQ+CjEwJSAmIDUlIDwvdGQ+Cjx0ZD4KMTAlICYgNSUgPC90ZD4KPHRkPgoxMCUgJiA1JSA8L3RkPgo8L3RyPgo8dHI+Cjx0ZD4KSG9sZCB0cmFkZSBvbiB3ZWVrZW5kcyA8L3RkPgo8dGQ+ClllcyA8L3RkPgo8dGQ+ClllcyA8L3RkPgo8dGQ+ClllcyA8L3RkPgo8dGQ+ClllcyA8L3RkPgo8L3RyPgo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gdGV4dC1jZW50ZXIgam9pbl91c19zZWN0aW9uIGd0LWRlZmF1bHQgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImJnLWltZyI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQkFBQUFBRTdBUU1BQUFCNVZtRUpBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBRDVKUkVGVWVOcnR3VEVCQUFBQXdxRDFUMjBNSDZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRHNTY3QUFINEJZejBBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9ImpvaW4tdXMtYmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjMxNSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2pvaW4tdXMtYmctMTAyNHgzMTUucG5nIiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtc3Jjc2V0PSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9qb2luLXVzLWJnLTEwMjR4MzE1LnBuZyAxMDI0dywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvam9pbi11cy1iZy0zMDB4OTIucG5nIDMwMHcsIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2pvaW4tdXMtYmcucG5nIDE5MjB3IiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMTAyNCIgZGF0YS1laW8tcmhlaWdodD0iMzE1Ij48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2pvaW4tdXMtYmctMTAyNHgzMTUucG5nIiBzcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5L2pvaW4tdXMtYmctMTAyNHgzMTUucG5nIDEwMjR3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS9qb2luLXVzLWJnLTMwMHg5Mi5wbmcgMzAwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvam9pbi11cy1iZy5wbmcgMTkyMHciIGFsdD0iam9pbi11cy1iZyIgd2lkdGg9IjEwMjQiIGhlaWdodD0iMzE1IiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDIgIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nX19wcmUiPkdldCBQYWlkIHRvIFRyYWRlPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyICI+CjxoMiBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+Sm9pbiBvdXIgRWxpdGUgQ29tbXVuaXR5IG9mIFRyYWRlcnM8L2gyPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9vdGVyLWNvbCBzb2NpYWwtbGlzdCI+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS90b3B0aWVyLnRyYWRlci8iIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwtaW5zdGFncmFtICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjc29jaWFsLWluc3RhZ3JhbSI+PC91c2U+PC9zdmc+PC9zcGFuPjwvYT4gPC9kaXY+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS9pbnZpdGUvV3JDMnhkWlpuZyIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbGlzdF9fbGluayI+IDxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4gPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXNvY2lhbC1kaXNjb3JkICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjc29jaWFsLWRpc2NvcmQiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJzb2NpYWwtbGlzdF9faXRlbSI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUMxb3V5aTVoWmFvOTVDTXBvVk14UWRRIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1saXN0X19saW5rIj4gPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tc29jaWFsLXlvdXR1YmUgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNzb2NpYWwteW91dHViZSI+PC91c2U+PC9zdmc+PC9zcGFuPjwvYT4gPC9kaXY+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9pL2Zsb3cvbG9naW4/cmVkaXJlY3RfYWZ0ZXJfbG9naW49JTJGX3RvcHRpZXJ0cmFkZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwtdHdpdHRlciAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI3NvY2lhbC10d2l0dGVyIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPGRpdiBjbGFzcz0ic29jaWFsLWxpc3RfX2l0ZW0iPgo8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vVG9wVGllci5UcmFkZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwtZmFjZWJvb2sgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNzb2NpYWwtZmFjZWJvb2siPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJzb2NpYWwtbGlzdF9faXRlbSI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQHRvcHRpZXIudHJhZGVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1saXN0X19saW5rIj4gPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tc29jaWFsLXRpa3RvayAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI3NvY2lhbC10aWt0b2siPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJzb2NpYWwtbGlzdF9faXRlbSI+CjxhIGhyZWY9Imh0dHBzOi8vdC5tZS9qb2luY2hhdF9Ub3BUaWVyVHJhZGVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1saXN0X19saW5rIj4gPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tc29jaWFsLXRlbGVncmFtICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjc29jaWFsLXRlbGVncmFtIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L3NlY3Rpb24+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIHBheW1lbnRfb3B0aW9uc19zZWN0aW9uIGd0LWRlZmF1bHQgZ2ItZGVmYXVsdCI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9InBheW1lbnRfb3B0aW9uc19zZWN0aW9uX193cmFwcGVyIj4KPGRpdiBjbGFzcz0iYmctaW1nIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBMTBBQUFJc0FRTUFBQUF6dkZITUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFGRkpSRUZVZU5ydHdRRUJBQUFBZ2lEL3IyNUlRQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEQWh3SHN2QUFCamEwUS9RQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9Ikdyb3VwIDE0MDE0MTM3IiB3aWR0aD0iODYxIiBoZWlnaHQ9IjU1NiIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L0dyb3VwLTE0MDE0MTM3LnN2ZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iODYxIiBkYXRhLWVpby1yaGVpZ2h0PSI1NTYiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvR3JvdXAtMTQwMTQxMzcuc3ZnIiBhbHQ9Ikdyb3VwIDE0MDE0MTM3IiB3aWR0aD0iODYxIiBoZWlnaHQ9IjU1NiIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJwYXltZW50X29wdGlvbnNfc2VjdGlvbl9fY29udGVudCI+CjxkaXYgY2xhc3M9ImMtaGVhZGluZyAtaDIgIj4KPGgyIGNsYXNzPSJjLWhlYWRpbmdfX3RpdGxlIj5Db252ZW5pZW50IFBheW1lbnQgT3B0aW9uc8KgPC9oMj4KPC9kaXY+CjxkaXYgY2xhc3M9InRleHQiPgpXZSBvZmZlciBzZWN1cmUgYW5kIGNvbnZlbmllbnQgcGF5bWVudCBvcHRpb25zIHRvIGVuc3VyZSBhIHNtb290aCBhbmQgaGFzc2xlLWZyZWUgZXhwZXJpZW5jZSBmb3Igb3VyIHBhc3Npb25hdGUgdHJhZGVyc8KgIDwvZGl2Pgo8ZGl2IGNsYXNzPSJwYXltZW50LW9wdGlvbnMiPgo8dWw+CjxsaT4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRWdBQUFBbEFRTUFBQURiU1QyQUFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFBMUpSRUZVR05OallCZ0Y5QVVBQVhJQUFaaktvcUVBQUFBQVNVVk9SSzVDWUlJPSIgYWx0PSJ2aXNhLWNhcmQgMSIgd2lkdGg9IjcyIiBoZWlnaHQ9IjM3IiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvdmlzYS1jYXJkLTEucG5nIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSI3MiIgZGF0YS1laW8tcmhlaWdodD0iMzciPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvdmlzYS1jYXJkLTEucG5nIiBhbHQ9InZpc2EtY2FyZCAxIiB3aWR0aD0iNzIiIGhlaWdodD0iMzciIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2xpPgo8bGk+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVRQUFBQXRBUU1BQUFBdEpsOWpBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQTVKUkVGVUdOTmpZQmdGUXhzQUFBSENBQUVnUk90SEFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0ibWFzdGVyY2FyZCIgd2lkdGg9IjY4IiBoZWlnaHQ9IjQ1IiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvbWFzdGVyY2FyZC5wbmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjY4IiBkYXRhLWVpby1yaGVpZ2h0PSI0NSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9tYXN0ZXJjYXJkLnBuZyIgYWx0PSJtYXN0ZXJjYXJkIiB3aWR0aD0iNjgiIGhlaWdodD0iNDUiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2xpPgo8bGk+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURRQUFBQTBBUU1BQUFEL3RvbW9BQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQTVKUkVGVUdOTmpZQmdGZ3hrQUFBR2dBQUdHTHFJWEFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0iYml0Y29pbi1jYXNoIiB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNy9iaXRjb2luLWNhc2gucG5nIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSI1MiIgZGF0YS1laW8tcmhlaWdodD0iNTIiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvYml0Y29pbi1jYXNoLnBuZyIgYWx0PSJiaXRjb2luLWNhc2giIHdpZHRoPSI1MiIgaGVpZ2h0PSI1MiIgZGF0YS1laW89ImwiPjwvbm9zY3JpcHQ+IDwvbGk+CjxsaT4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRFFBQUFBMEFRTUFBQUQvdG9tb0FBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFBNUpSRUZVR05OallCZ0ZneGtBQUFHZ0FBR0dMcUlYQUFBQUFFbEZUa1N1UW1DQyIgYWx0PSJldGhlcmV1bSIgd2lkdGg9IjUyIiBoZWlnaHQ9IjUyIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvZXRoZXJldW0ucG5nIiBkZWNvZGluZz0iYXN5bmMiIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSI1MiIgZGF0YS1laW8tcmhlaWdodD0iNTIiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDcvZXRoZXJldW0ucG5nIiBhbHQ9ImV0aGVyZXVtIiB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2xpPgo8bGk+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURRQUFBQTBBUU1BQUFEL3RvbW9BQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQTVKUkVGVUdOTmpZQmdGZ3hrQUFBR2dBQUdHTHFJWEFBQUFBRWxGVGtTdVFtQ0MiIGFsdD0idXNkLWNvaW4iIHdpZHRoPSI1MiIgaGVpZ2h0PSI1MiIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3VzZC1jb2luLnBuZyIgZGVjb2Rpbmc9ImFzeW5jIiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iNTIiIGRhdGEtZWlvLXJoZWlnaHQ9IjUyIj48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA3L3VzZC1jb2luLnBuZyIgYWx0PSJ1c2QtY29pbiIgd2lkdGg9IjUyIiBoZWlnaHQ9IjUyIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9saT4KPC91bD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYXlvdXQtb3B0aW9ucyI+CjxkaXYgY2xhc3M9InBheW91dC1vcHRpb25zX19jb250ZW50Ij4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nIC1oMyAiPgo8aDMgY2xhc3M9ImMtaGVhZGluZ19fdGl0bGUiPkNvbnZlbmllbnQgUGF5b3V0IE9wdGlvbnM8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGF5b3V0LXRleHQiPgpBbGwgcGF5b3V0cyBjYW4gYmUgcmVxdWVzdGVkIHRocm91Z2ggV2lzZSB3aGljaCBhbGxvd3MgdG8gdXNlIHVwIHRvIDE1IHBheW1lbnQgb3B0aW9ucy4gPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzdHlsaXplZC10ZXh0Ij4KPGRpdiBjbGFzcz0ic3R5bGl6ZWQtdGV4dF9fd3JhcCI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUpZQUFBQ1dBUU1BQUFBR3orT2hBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQnBKUkVGVVNNZnR3VEVCQUFBQXdxRDFUMjBORDZBQUFJQjNBd3U0QUFGZGtlT1pBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9Indpc2UgbmV3IGxvZ28iIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvNDcwNDUzLUZyYW1lMjAzOTI2NC0wYzc1MmEtb3JpZ2luYWwtMTY3NzY1NzY4NC0xNTB4MTUwLnBuZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvNDcwNDUzLUZyYW1lMjAzOTI2NC0wYzc1MmEtb3JpZ2luYWwtMTY3NzY1NzY4NC0xNTB4MTUwLnBuZyAxNTB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS80NzA0NTMtRnJhbWUyMDM5MjY0LTBjNzUyYS1vcmlnaW5hbC0xNjc3NjU3Njg0LWUxNjk0ODEzMzE1NDQzLnBuZyAyMDB3IiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMTUwIiBkYXRhLWVpby1yaGVpZ2h0PSIxNTAiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDkvNDcwNDUzLUZyYW1lMjAzOTI2NC0wYzc1MmEtb3JpZ2luYWwtMTY3NzY1NzY4NC0xNTB4MTUwLnBuZyIgc3Jjc2V0PSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wOS80NzA0NTMtRnJhbWUyMDM5MjY0LTBjNzUyYS1vcmlnaW5hbC0xNjc3NjU3Njg0LTE1MHgxNTAucG5nIDE1MHcsIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA5LzQ3MDQ1My1GcmFtZTIwMzkyNjQtMGM3NTJhLW9yaWdpbmFsLTE2Nzc2NTc2ODQtZTE2OTQ4MTMzMTU0NDMucG5nIDIwMHciIGFsdD0id2lzZSBuZXcgbG9nbyIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gdHJ1c3RwaWxvdF9yZXZld3Nfc2VjdGlvbiBndC1kZWZhdWx0IGdiLW5vbmUiPgo8ZGl2IGNsYXNzPSJjb250YWluZXIiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyIj4KPGRpdiBjbGFzcz0iYy1oZWFkaW5nX19wcmUiPldoeSBUcmFkZXJzIGFyZSB1c2luZyBUb3BUaWVyIFRyYWRlcj88L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L3NlY3Rpb24+CjxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIGluc2lnaHRzX3NlY3Rpb24gZ3QtZGVmYXVsdCBnYi1kZWZhdWx0IG0tc2xpZGVyICI+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CjxkaXYgY2xhc3M9Imluc2lnaHRzX3NlY3Rpb25fX2NvbnRlbnQiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgyICI+CjxoMiBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+VHJhZGluZyA8c3BhbiBjbGFzcz0iLWMtYWNjZW50Ij5JbnNpZ2h0czwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJzZWNvbmRTcGFuIj5UaXBzPC9zcGFuPsKgPC9oMj4KPC9kaXY+CjxkaXYgY2xhc3M9ImN0YSBkZXNrdG9wLWN0YSI+CjxhIGhyZWY9Imluc2lnaHRzL2luZGV4Lmh0bSIgY2xhc3M9ImMtYnRuIC1wcmltYXJ5Ij5FeHBsb3JlIFJlc291cmNlIENlbnRlciA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1saWItaWNvbi1hcnJvdzEgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNsaWItaWNvbi1hcnJvdzEiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ic3dpcGVyIGluc2lnaHRzLXN3aXBlciBqcy1zbGlkZXItbW9iaWxlIG0tc2xpZGVyIGMtc2xpZGVyIiBkYXRhLXNsaWRlci1uYXZpZ2F0aW9uPSJvdXRlci1hcnJvd3MiPgo8ZGl2IGNsYXNzPSJ0LWluc2lnaHRzIHN3aXBlci13cmFwcGVyIj4KPGFydGljbGUgY2xhc3M9InBvc3RfMjg2NTEwMDYgdC1pbnNpZ2h0c19fcG9zdCBzd2lwZXItc2xpZGUgbS1zbGlkZXJfX3NsaWRlIj4KPGRpdiBjbGFzcz0icG9zdF8yODY1MTAwNl9pbWcgdC1pbnNpZ2h0c19faW1nIj4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBU3dBQUFDV0FRTUFBQUJlbFNlUkFBQUFCbEJNVkVVQUFBRC8vLytsMlovZEFBQUFBWFJTVGxNQVFPYllaZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFCMUpSRUZVV01QdHdRRU5BQUFBd3FEM1QyME9ONkFBQUFBQUFPREpBQmJhQUFHbmxkTzJBQUFBQUVsRlRrU3VRbUNDIiBhbHQ9IndoaXRlLW1pbmltYWxpc3QtZmFzaGlvbi1iYWJ5LWJhbm5lciIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIxNTAiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOC93aGl0ZS1taW5pbWFsaXN0LWZhc2hpb24tYmFieS1iYW5uZXItMzAweDE1MC5qcGciIGRlY29kaW5nPSJhc3luYyIgZGF0YS1zcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA4L3doaXRlLW1pbmltYWxpc3QtZmFzaGlvbi1iYWJ5LWJhbm5lci0zMDB4MTUwLmpwZyAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOC93aGl0ZS1taW5pbWFsaXN0LWZhc2hpb24tYmFieS1iYW5uZXItMTAyNHg1MTIuanBnIDEwMjR3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOC93aGl0ZS1taW5pbWFsaXN0LWZhc2hpb24tYmFieS1iYW5uZXIuanBnIDE5MjB3IiBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtZWlvLXJ3aWR0aD0iMzAwIiBkYXRhLWVpby1yaGVpZ2h0PSIxNTAiPjxub3NjcmlwdD48aW1nIHNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjIvMDgvd2hpdGUtbWluaW1hbGlzdC1mYXNoaW9uLWJhYnktYmFubmVyLTMwMHgxNTAuanBnIiBzcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA4L3doaXRlLW1pbmltYWxpc3QtZmFzaGlvbi1iYWJ5LWJhbm5lci0zMDB4MTUwLmpwZyAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOC93aGl0ZS1taW5pbWFsaXN0LWZhc2hpb24tYmFieS1iYW5uZXItMTAyNHg1MTIuanBnIDEwMjR3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wOC93aGl0ZS1taW5pbWFsaXN0LWZhc2hpb24tYmFieS1iYW5uZXIuanBnIDE5MjB3IiBhbHQ9IndoaXRlLW1pbmltYWxpc3QtZmFzaGlvbi1iYWJ5LWJhbm5lciIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIxNTAiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iY2F0ZWdvcnkiPgpGWCBTdW1taXQgPC9kaXY+CjxkaXYgY2xhc3M9InBvc3RfdGl0bGUiPgo8aDMgY2xhc3M9IiI+CjIwMjIgRlggU3VtbWl0IFJlY2FwIDwvaDM+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwb3N0X2N0YSI+CjxhIGhyZWY9IjIwMjItZngtc3VtbWl0LXJlY2FwL2luZGV4Lmh0bSIgY2xhc3M9InQtaW5zaWdodHNfX2N0YSBjLWJ0biAtbGluayI+CjxzcGFuIGNsYXNzPSJjLWJ0bl9fdHh0Ij5WaWV3IEZ1bGwgQXJ0aWNsZTwvc3Bhbj4KPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPjxzdmcgY2xhc3M9Imljb24gaWNvbi1pbnNpZ2h0LWljb24gIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNpbnNpZ2h0LWljb24iPjwvdXNlPjwvc3ZnPjwvc3Bhbj4KPC9hPgo8L2Rpdj4KPC9hcnRpY2xlPgo8YXJ0aWNsZSBjbGFzcz0icG9zdF8yODY3NDMyNCB0LWluc2lnaHRzX19wb3N0IHN3aXBlci1zbGlkZSBtLXNsaWRlcl9fc2xpZGUiPgo8ZGl2IGNsYXNzPSJwb3N0XzI4Njc0MzI0X2ltZyB0LWluc2lnaHRzX19pbWciPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFTd0FBQURJQVFNQUFBQm9FVTRXQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUI1SlJFRlVXTVB0d1RFQkFBQUF3cUQxVDIwSGI2QUFBQUFBQUFBQTREY2VlQUFCRnlqZG1RQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9Imphc29uLWJyaXNjb2UtR3dfc0ZlbjhWaFUtdW5zcGxhc2giIHdpZHRoPSIzMDAiIGhlaWdodD0iMjAwIiBkYXRhLXNyYz0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDMvamFzb24tYnJpc2NvZS1Hd19zRmVuOFZoVS11bnNwbGFzaC0zMDB4MjAwLmpwZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMDMvamFzb24tYnJpc2NvZS1Hd19zRmVuOFZoVS11bnNwbGFzaC0zMDB4MjAwLmpwZyAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wMy9qYXNvbi1icmlzY29lLUd3X3NGZW44VmhVLXVuc3BsYXNoLTEwMjR4NjgzLmpwZyAxMDI0dywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDMvamFzb24tYnJpc2NvZS1Hd19zRmVuOFZoVS11bnNwbGFzaC5qcGcgMTkyMHciIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIzMDAiIGRhdGEtZWlvLXJoZWlnaHQ9IjIwMCI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wMy9qYXNvbi1icmlzY29lLUd3X3NGZW44VmhVLXVuc3BsYXNoLTMwMHgyMDAuanBnIiBzcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzAzL2phc29uLWJyaXNjb2UtR3dfc0ZlbjhWaFUtdW5zcGxhc2gtMzAweDIwMC5qcGcgMzAwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDMvamFzb24tYnJpc2NvZS1Hd19zRmVuOFZoVS11bnNwbGFzaC0xMDI0eDY4My5qcGcgMTAyNHcsIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzAzL2phc29uLWJyaXNjb2UtR3dfc0ZlbjhWaFUtdW5zcGxhc2guanBnIDE5MjB3IiBhbHQ9Imphc29uLWJyaXNjb2UtR3dfc0ZlbjhWaFUtdW5zcGxhc2giIHdpZHRoPSIzMDAiIGhlaWdodD0iMjAwIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjxkaXYgY2xhc3M9ImNhdGVnb3J5Ij4KVHJhZGVycyA8L2Rpdj4KPGRpdiBjbGFzcz0icG9zdF90aXRsZSI+CjxoMyBjbGFzcz0iIj4KRXhwbG9yaW5nIHRoZSBGb3JleCBNYXJrZXQ6IDQgTWFpbiBQbGF5ZXJzIFlvdSBOZWVkIHRvIEtub3cgPC9oMz4KPC9kaXY+CjxkaXYgY2xhc3M9InBvc3RfY3RhIj4KPGEgaHJlZj0iZXhwbG9yaW5nLXRoZS1mb3JleC1tYXJrZXQvaW5kZXguaHRtIiBjbGFzcz0idC1pbnNpZ2h0c19fY3RhIGMtYnRuIC1saW5rIj4KPHNwYW4gY2xhc3M9ImMtYnRuX190eHQiPlZpZXcgRnVsbCBBcnRpY2xlPC9zcGFuPgo8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+PHN2ZyBjbGFzcz0iaWNvbiBpY29uLWluc2lnaHQtaWNvbiAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2luc2lnaHQtaWNvbiI+PC91c2U+PC9zdmc+PC9zcGFuPgo8L2E+CjwvZGl2Pgo8L2FydGljbGU+CjxhcnRpY2xlIGNsYXNzPSJwb3N0XzI4NjU5MzU5IHQtaW5zaWdodHNfX3Bvc3Qgc3dpcGVyLXNsaWRlIG0tc2xpZGVyX19zbGlkZSI+CjxkaXYgY2xhc3M9InBvc3RfMjg2NTkzNTlfaW1nIHQtaW5zaWdodHNfX2ltZyI+CjxpbWcgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVN3QUFBQ2xBUU1BQUFEY2UxS1NBQUFBQmxCTVZFVUFBQUQvLy8rbDJaL2RBQUFBQVhSU1RsTUFRT2JZWmdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQnhKUkVGVVdNUHR3UUVCQUFBQWdpRC9yMjVJUUFFQUFBQUFBTndaR1NNQUFlaExya1VBQUFBQVNVVk9SSzVDWUlJPSIgYWx0PSJUb3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcyIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIxNjUiIGRhdGEtc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9Ub3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcy0zMDB4MTY1LmpwZyIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLXNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjIvMTEvVG9wVGllci1UcmFkZXItQ2hhbGxlbmdlLVVwZGF0ZXMtMzAweDE2NS5qcGcgMzAwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjIvMTEvVG9wVGllci1UcmFkZXItQ2hhbGxlbmdlLVVwZGF0ZXMtMTAyNHg1NjMuanBnIDEwMjR3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9Ub3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcy5qcGcgMTkyMHciIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1laW8tcndpZHRoPSIzMDAiIGRhdGEtZWlvLXJoZWlnaHQ9IjE2NSI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9Ub3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcy0zMDB4MTY1LmpwZyIgc3Jjc2V0PSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9Ub3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcy0zMDB4MTY1LmpwZyAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMi8xMS9Ub3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcy0xMDI0eDU2My5qcGcgMTAyNHcsIHdwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzExL1RvcFRpZXItVHJhZGVyLUNoYWxsZW5nZS1VcGRhdGVzLmpwZyAxOTIwdyIgYWx0PSJUb3BUaWVyLVRyYWRlci1DaGFsbGVuZ2UtVXBkYXRlcyIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIxNjUiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPGRpdiBjbGFzcz0iY2F0ZWdvcnkiPgpVcGRhdGVzIDwvZGl2Pgo8ZGl2IGNsYXNzPSJwb3N0X3RpdGxlIj4KPGgzIGNsYXNzPSIiPgpUb3BUaWVyIFRyYWRlciBDaGFsbGVuZ2UgVXBkYXRlcyA8L2gzPgo8L2Rpdj4KPGRpdiBjbGFzcz0icG9zdF9jdGEiPgo8YSBocmVmPSJ0b3B0aWVyLXRyYWRlci1jaGFsbGVuZ2UtdXBkYXRlcy9pbmRleC5odG0iIGNsYXNzPSJ0LWluc2lnaHRzX19jdGEgYy1idG4gLWxpbmsiPgo8c3BhbiBjbGFzcz0iYy1idG5fX3R4dCI+VmlldyBGdWxsIEFydGljbGU8L3NwYW4+CjxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj48c3ZnIGNsYXNzPSJpY29uIGljb24taW5zaWdodC1pY29uICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjaW5zaWdodC1pY29uIj48L3VzZT48L3N2Zz48L3NwYW4+CjwvYT4KPC9kaXY+CjwvYXJ0aWNsZT4KPC9kaXY+CjxkaXYgY2xhc3M9Im0tc2xpZGVyX19uYXYgaXMtcm91bmQgbmF2LWZsZXgiPgo8YnV0dG9uIGNsYXNzPSJtLXNsaWRlcl9fYXJyb3dzIC1wcmV2ICBtb2ItYnV0dG9uLXByZXYgc3dpcGVyLWJ1dHRvbi1wcmV2Ij48c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tc2xpZGVyICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tc2xpZGVyIj48L3VzZT48L3N2Zz48L2J1dHRvbj4KPGRpdiBjbGFzcz0ibS1zbGlkZXJfX3BhZ2luYXRpb24iPjwvZGl2Pgo8YnV0dG9uIGNsYXNzPSJtLXNsaWRlcl9fYXJyb3dzIC1uZXh0ICBtb2ItYnV0dG9uLW5leHQgIHN3aXBlci1idXR0b24tbmV4dCI+PHN2ZyBjbGFzcz0iaWNvbiBpY29uLWxpYi1pY29uLXNsaWRlciAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI2xpYi1pY29uLXNsaWRlciI+PC91c2U+PC9zdmc+PC9idXR0b24+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY3RhIG1vYmlsZS1jdGEiPgo8YSBocmVmPSJpbnNpZ2h0cy9pbmRleC5odG0iIGNsYXNzPSJjLWJ0biAtcHJpbWFyeSI+RXhwbG9yZSBSZXNvdXJjZSBDZW50ZXIgPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tbGliLWljb24tYXJyb3cxICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjbGliLWljb24tYXJyb3cxIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPC9kaXY+Cjwvc2VjdGlvbj4KPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gcGFnZS1iYW5uZXIgcGFnZV9oZXJvX3YyX3NlY3Rpb24gZ3QtZGVmYXVsdCBnYi1kZWZhdWx0Ij4KPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibC1iYW5uZXIgbC1iYW5uZXItY3VzdG9tIj4KPGRpdiBjbGFzcz0ibC1iYW5uZXJfX3RleHQiPgo8ZGl2IGNsYXNzPSJjLWhlYWRpbmcgLWgxICI+CjxoMSBjbGFzcz0iYy1oZWFkaW5nX190aXRsZSI+RXZlbiB0aGUgcHJlc3MgaXMgdGFsa2luZzxicj5hYm91dCA8c3BhbiBjbGFzcz0iLWMtYWNjZW50Ij4gVG9wVGllciBUcmFkZXI8L3NwYW4+PC9oMT4KPC9kaXY+CjxkaXYgY2xhc3M9ImZpcnN0LXRleHQiPgpDaGVjayBvdXQgc29tZSBvZiBvdXIgbGF0ZXN0IHByZXNzIHJlbGVhc2VzIG9uIHlvdXIgZmF2b3JpdGUgcGxhdGZvcm1zPGJyPmxpa2UgQmxvb21iZXJnLCBNYXJrZXQgSW5zaWRlciwgQmVuemluZ2EsIFlhaG9vIEZpbmFuY2UgYW5kIG1vcmUhIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibC1iYW5uZXJfX21lZGlhIj4KPGRpdiBjbGFzcz0iaGVyby1pbWciPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFTd0FBQUREQVFNQUFBQUMxcjdWQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUI1SlJFRlVXTVB0d1RFQkFBQUF3cUQxVDIwTUg2QUFBQUFBQUFBQXVCa2R0UUFCWGtHZGlnQUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9IlRvdGFsIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjE5NSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL1RvdGFsLTEtMzAweDE5NS5wbmciIGRlY29kaW5nPSJhc3luYyIgZGF0YS1zcmNzZXQ9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL1RvdGFsLTEtMzAweDE5NS5wbmcgMzAwdywgd3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvVG90YWwtMS5wbmcgMTAwMHciIGNsYXNzPSJsYXp5bG9hZCBld3d3X3dlYnBfbGF6eV9sb2FkIiBkYXRhLWVpby1yd2lkdGg9IjMwMCIgZGF0YS1laW8tcmhlaWdodD0iMTk1IiBkYXRhLXNyYy13ZWJwPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9Ub3RhbC0xLTMwMHgxOTUucG5nLndlYnAiIGRhdGEtc3Jjc2V0LXdlYnA9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL1RvdGFsLTEtMzAweDE5NS5wbmcud2VicCAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9Ub3RhbC0xLnBuZy53ZWJwIDEwMDB3Ij48bm9zY3JpcHQ+PGltZyBzcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL1RvdGFsLTEtMzAweDE5NS5wbmciIHNyY3NldD0id3AtY29udGVudC91cGxvYWRzLzIwMjMvMTAvVG90YWwtMS0zMDB4MTk1LnBuZyAzMDB3LCB3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9Ub3RhbC0xLnBuZyAxMDAwdyIgYWx0PSJUb3RhbCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSIxOTUiIGRhdGEtZWlvPSJsIj48L25vc2NyaXB0PiA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9zZWN0aW9uPgo8L21haW4+Cjxmb290ZXIgY2xhc3M9InNpdGUtZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+CjxkaXYgY2xhc3M9ImZvb3Rlci10b3AiPgo8ZGl2IGNsYXNzPSJmb290ZXItdG9wX19pbm5lciI+CjxkaXYgY2xhc3M9Im5ld3NsZXR0ZXItY29udGFpbmVyIj4KPGRpdiBjbGFzcz0ibmV3c2xldHRlci1jb250YWluZXJfX2JvZHkiPgo8ZGl2IGNsYXNzPSJud3MtdGl0bGUiPgpTdGFydCA8c3BhbiBjbGFzcz0iLWMtYWNjZW50Ij5FYXJuaW5nIExpa2UgdGhlIFByb3M8L3NwYW4+IHdpdGggVG9wVGllciBUcmFkZXIgPC9kaXY+CjxkaXYgY2xhc3M9Im53cy1zdWJ0aXRsZSI+ClN0YXkgaW4gdGhlIExvb3AgPC9kaXY+CjxkaXYgY2xhc3M9Im53cy10ZXh0Ij4KV2l0aCBleGNsdXNpdmUgdXBkYXRlcywgaW5kdXN0cnkgaW5zaWdodHMsIGFuZCBleGNpdGluZyBvZmZlcnMuIEpvaW4gMTAwLDAwMCsgb3RoZXIgY3VzdG9tZXJzIHN0YXlpbmcgYWx3YXlzIHVwZGF0ZWQuIDwvZGl2Pgo8ZGl2IGNsYXNzPSJud3MtZm9ybSI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KPGRpdiBjbGFzcz0iZ2ZfYnJvd3Nlcl91bmtub3duIGdmb3JtX3dyYXBwZXIgZ3Jhdml0eS10aGVtZSBnZm9ybS10aGVtZS0tbm8tZnJhbWV3b3JrIiBkYXRhLWZvcm0tdGhlbWU9ImdyYXZpdHktdGhlbWUiIGRhdGEtZm9ybS1pbmRleD0iMCIgaWQ9Imdmb3JtX3dyYXBwZXJfMSI+PHN0eWxlPiNnZm9ybV93cmFwcGVyXzFbZGF0YS1mb3JtLWluZGV4PSIwIl0uZ2Zvcm0tdGhlbWUsW2RhdGEtcGFyZW50LWZvcm09IjFfMCJdey0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeTogIzIwNGNlNTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktcmdiOiAzMiwgNzYsIDIyOTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktY29udHJhc3Q6ICNmZmY7LS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0LXJnYjogMjU1LCAyNTUsIDI1NTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktZGFya2VyOiAjMDAxQUIzOy0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeS1saWdodGVyOiAjNTI3RUZGOy0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5OiAjZmZmOy0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LXJnYjogMjU1LCAyNTUsIDI1NTstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdDogIzExMjMzNzstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdC1yZ2I6IDE3LCAzNSwgNTU7LS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnktZGFya2VyOiAjRjVGNUY1Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LWxpZ2h0ZXI6ICNGRkZGRkY7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQ6IHJnYmEoMTcsIDM1LCA1NSwgMC4xKTstLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1saWdodC1yZ2I6IDE3LCAzNSwgNTU7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQtZGFya2VyOiByZ2JhKDEwNCwgMTEwLCAxMTksIDAuMzUpOy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0LWxpZ2h0ZXI6ICNGNUY1RjU7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyazogIzU4NWU2YTstLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1kYXJrLXJnYjogODgsIDk0LCAxMDY7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyay1kYXJrZXI6ICMxMTIzMzc7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyay1saWdodGVyOiByZ2JhKDE3LCAzNSwgNTUsIDAuNjUpOy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2w6ICNmZmY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1yZ2I6IDI1NSwgMjU1LCAyNTU7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1jb250cmFzdDogIzExMjMzNzstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWNvbnRyYXN0LXJnYjogMTcsIDM1LCA1NTstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcmtlcjogI0Y1RjVGNTstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWxpZ2h0ZXI6ICNGRkZGRkY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1wcmltYXJ5OiAjMjA0Y2U1Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtcHJpbWFyeS1yZ2I6IDMyLCA3NiwgMjI5Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtcHJpbWFyeS1jb250cmFzdDogI2ZmZjstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLXByaW1hcnktY29udHJhc3QtcmdiOiAyNTUsIDI1NSwgMjU1Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtcHJpbWFyeS1kYXJrZXI6ICMwMDFBQjM7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1wcmltYXJ5LWxpZ2h0ZXI6ICM1MjdFRkY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodDogcmdiYSgxNywgMzUsIDU1LCAwLjEpOy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtcmdiOiAxNywgMzUsIDU1Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtZGFya2VyOiByZ2JhKDEwNCwgMTEwLCAxMTksIDAuMzUpOy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtbGlnaHRlcjogI0Y1RjVGNTstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcms6ICM1ODVlNmE7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1kYXJrLXJnYjogODgsIDk0LCAxMDY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1kYXJrLWRhcmtlcjogIzExMjMzNzstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcmstbGlnaHRlcjogcmdiYSgxNywgMzUsIDU1LCAwLjY1KTstLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXM6IDNweDstLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS1zZWNvbmRhcnk6IDE0cHg7LS1nZm9ybS10aGVtZS1mb250LXNpemUtdGVydGlhcnk6IDEzcHg7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtbnVtYmVyOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzgnIGhlaWdodD0nMTQnIHZpZXdCb3g9JzAgMCA4IDE0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTQgMEM0LjI2NTIyIDUuOTYwNDZlLTA4IDQuNTE5NTcgMC4xMDUzNTcgNC43MDcxMSAwLjI5Mjg5M0w3LjcwNzExIDMuMjkyODlDOC4wOTc2MyAzLjY4MzQyIDguMDk3NjMgNC4zMTY1OCA3LjcwNzExIDQuNzA3MTFDNy4zMTY1OCA1LjA5NzYzIDYuNjgzNDIgNS4wOTc2MyA2LjI5Mjg5IDQuNzA3MTFMNCAyLjQxNDIxTDEuNzA3MTEgNC43MDcxMUMxLjMxNjU4IDUuMDk3NjMgMC42ODM0MTcgNS4wOTc2MyAwLjI5Mjg5MyA0LjcwNzExQy0wLjA5NzYzMTEgNC4zMTY1OCAtMC4wOTc2MzEgMy42ODM0MiAwLjI5Mjg5MyAzLjI5Mjg5TDMuMjkyODkgMC4yOTI4OTNDMy40ODA0MyAwLjEwNTM1NyAzLjczNDc4IDAgNCAwWk0wLjI5Mjg5MyA5LjI5Mjg5QzAuNjgzNDE3IDguOTAyMzcgMS4zMTY1OCA4LjkwMjM3IDEuNzA3MTEgOS4yOTI4OUw0IDExLjU4NThMNi4yOTI4OSA5LjI5Mjg5QzYuNjgzNDIgOC45MDIzNyA3LjMxNjU4IDguOTAyMzcgNy43MDcxMSA5LjI5Mjg5QzguMDk3NjMgOS42ODM0MiA4LjA5NzYzIDEwLjMxNjYgNy43MDcxMSAxMC43MDcxTDQuNzA3MTEgMTMuNzA3MUM0LjMxNjU4IDE0LjA5NzYgMy42ODM0MiAxNC4wOTc2IDMuMjkyODkgMTMuNzA3MUwwLjI5Mjg5MyAxMC43MDcxQy0wLjA5NzYzMTEgMTAuMzE2NiAtMC4wOTc2MzExIDkuNjgzNDIgMC4yOTI4OTMgOS4yOTI4OVonIGZpbGw9J3JnYmEoMTcsIDM1LCA1NSwgMC42NSknLyUzRSUzQy9zdmclM0UiKTstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWxlY3Q6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTAnIGhlaWdodD0nNicgdmlld0JveD0nMCAwIDEwIDYnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMC4yOTI4OTMgMC4yOTI4OTNDMC42ODM0MTcgLTAuMDk3NjMxIDEuMzE2NTggLTAuMDk3NjMxIDEuNzA3MTEgMC4yOTI4OTNMNSAzLjU4NTc5TDguMjkyODkgMC4yOTI4OTNDOC42ODM0MiAtMC4wOTc2MzExIDkuMzE2NTggLTAuMDk3NjMxMSA5LjcwNzExIDAuMjkyODkzQzEwLjA5NzYgMC42ODM0MTcgMTAuMDk3NiAxLjMxNjU4IDkuNzA3MTEgMS43MDcxMUw1LjcwNzExIDUuNzA3MTFDNS4zMTY1OCA2LjA5NzYzIDQuNjgzNDIgNi4wOTc2MyA0LjI5Mjg5IDUuNzA3MTFMMC4yOTI4OTMgMS43MDcxMUMtMC4wOTc2MzExIDEuMzE2NTggLTAuMDk3NjMxMSAwLjY4MzQxOCAwLjI5Mjg5MyAwLjI5Mjg5M1onIGZpbGw9J3JnYmEoMTcsIDM1LCA1NSwgMC42NSknLyUzRSUzQy9zdmclM0UiKTstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWFyY2g6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzY0MCcgaGVpZ2h0PSc2NDAnJTNFJTNDcGF0aCBkPSdNMjU2IDEyOGMtNzAuNjkyIDAtMTI4IDU3LjMwOC0xMjggMTI4IDAgNzAuNjkxIDU3LjMwOCAxMjggMTI4IDEyOCA3MC42OTEgMCAxMjgtNTcuMzA5IDEyOC0xMjggMC03MC42OTItNTcuMzA5LTEyOC0xMjgtMTI4ek02NCAyNTZjMC0xMDYuMDM5IDg1Ljk2MS0xOTIgMTkyLTE5MnMxOTIgODUuOTYxIDE5MiAxOTJjMCA0MS40NjYtMTMuMTQ2IDc5Ljg2My0zNS40OTggMTExLjI0OGwxNTQuMTI1IDE1NC4xMjVjMTIuNDk2IDEyLjQ5NiAxMi40OTYgMzIuNzU4IDAgNDUuMjU0cy0zMi43NTggMTIuNDk2LTQ1LjI1NCAwTDM2Ny4yNDggNDEyLjUwMkMzMzUuODYyIDQzNC44NTQgMjk3LjQ2NyA0NDggMjU2IDQ0OGMtMTA2LjAzOSAwLTE5Mi04NS45NjItMTkyLTE5MnonIGZpbGw9J3JnYmEoMTcsIDM1LCA1NSwgMC42NSknLyUzRSUzQy9zdmclM0UiKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yOiAjNjg2ZTc3Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplOiB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUtbWQpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci1wcmltYXJ5OiAjMTEyMzM3Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci1zZWNvbmRhcnk6ICMxMTIzMzc7LS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplOiB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hlY2tib3gtY2hlY2stc2l6ZTogdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaGVja2JveC1jaGVjay1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZTogdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tZm9udC1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1wYWRkaW5nLWlubGluZS1tZCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplOiB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1zZWNvbmRhcnk6ICM2ODZlNzc7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6ICNFQkVCRUI7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1jb2xvcjogcmdiYSgxNywgMzUsIDU1LCAwLjgpO308L3N0eWxlPjxkaXYgaWQ9ImdmXzEiIGNsYXNzPSJnZm9ybV9hbmNob3IiIHRhYmluZGV4PSItMSI+PC9kaXY+PGZvcm0gbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiB0YXJnZXQ9Imdmb3JtX2FqYXhfZnJhbWVfMSIgaWQ9Imdmb3JtXzEiIGFjdGlvbj0iLyNnZl8xIiBkYXRhLWZvcm1pZD0iMSIgbm92YWxpZGF0ZT0iIj4KPGRpdiBjbGFzcz0iZ2Zvcm0tYm9keSBnZm9ybV9ib2R5Ij48ZGl2IGlkPSJnZm9ybV9maWVsZHNfMSIgY2xhc3M9Imdmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyI+PGRpdiBpZD0iZmllbGRfMV8xIiBjbGFzcz0iZ2ZpZWxkIGdmaWVsZC0tdHlwZS1lbWFpbCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBoaWRkZW5fbGFiZWwgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZSIgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzFfMSI+PGxhYmVsIGNsYXNzPSJnZmllbGRfbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwiIGZvcj0iaW5wdXRfMV8xIj5FbWFpbDxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQgZ2ZpZWxkX3JlcXVpcmVkX3RleHQiPihSZXF1aXJlZCk8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0iZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2VtYWlsIj4KPGlucHV0IG5hbWU9ImlucHV0XzEiIGlkPSJpbnB1dF8xXzEiIHR5cGU9ImVtYWlsIiB2YWx1ZT0iIiBjbGFzcz0ibGFyZ2UiIHBsYWNlaG9sZGVyPSJZb3VyIGVtYWlsIGhlcmUiIGFyaWEtcmVxdWlyZWQ9InRydWUiIGFyaWEtaW52YWxpZD0iZmFsc2UiPgo8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWVsZF8xXzIiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLWhvbmV5cG90IGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0taGFzLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiIGRhdGEtanMtcmVsb2FkPSJmaWVsZF8xXzIiPjxsYWJlbCBjbGFzcz0iZ2ZpZWxkX2xhYmVsIGdmb3JtLWZpZWxkLWxhYmVsIiBmb3I9ImlucHV0XzFfMiI+Q29tbWVudHM8L2xhYmVsPjxkaXYgY2xhc3M9ImdpbnB1dF9jb250YWluZXIiPjxpbnB1dCBuYW1lPSJpbnB1dF8yIiBpZD0iaW5wdXRfMV8yIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCI+PC9kaXY+PGRpdiBjbGFzcz0iZ2ZpZWxkX2Rlc2NyaXB0aW9uIiBpZD0iZ2ZpZWxkX2Rlc2NyaXB0aW9uXzFfMiI+VGhpcyBmaWVsZCBpcyBmb3IgdmFsaWRhdGlvbiBwdXJwb3NlcyBhbmQgc2hvdWxkIGJlIGxlZnQgdW5jaGFuZ2VkLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJnZm9ybV9mb290ZXIgdG9wX2xhYmVsIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9Imdmb3JtX3N1Ym1pdF9idXR0b25fMSIgY2xhc3M9Imdmb3JtX2J1dHRvbiBidXR0b24iIHZhbHVlPSJTdWJtaXQiIG9uY2xpY2s9ImlmKHdpbmRvd1smcXVvdDtnZl9zdWJtaXR0aW5nXzEmcXVvdDtdKXtyZXR1cm4gZmFsc2U7fSAgaWYoICFqUXVlcnkoJnF1b3Q7I2dmb3JtXzEmcXVvdDspWzBdLmNoZWNrVmFsaWRpdHkgfHwgalF1ZXJ5KCZxdW90OyNnZm9ybV8xJnF1b3Q7KVswXS5jaGVja1ZhbGlkaXR5KCkpe3dpbmRvd1smcXVvdDtnZl9zdWJtaXR0aW5nXzEmcXVvdDtdPXRydWU7fSAgIiBvbmtleXByZXNzPSJpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbJnF1b3Q7Z2Zfc3VibWl0dGluZ18xJnF1b3Q7XSl7cmV0dXJuIGZhbHNlO30gaWYoICFqUXVlcnkoJnF1b3Q7I2dmb3JtXzEmcXVvdDspWzBdLmNoZWNrVmFsaWRpdHkgfHwgalF1ZXJ5KCZxdW90OyNnZm9ybV8xJnF1b3Q7KVswXS5jaGVja1ZhbGlkaXR5KCkpe3dpbmRvd1smcXVvdDtnZl9zdWJtaXR0aW5nXzEmcXVvdDtdPXRydWU7fSAgalF1ZXJ5KCZxdW90OyNnZm9ybV8xJnF1b3Q7KS50cmlnZ2VyKCZxdW90O3N1Ym1pdCZxdW90OyxbdHJ1ZV0pOyB9Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ2Zvcm1fYWpheCIgdmFsdWU9ImZvcm1faWQ9MSZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTAmYW1wO3RoZW1lPWRhdGEtZm9ybS10aGVtZT0mIzAzOTtncmF2aXR5LXRoZW1lJiMwMzk7Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Imdmb3JtX2hpZGRlbiIgbmFtZT0iaXNfc3VibWl0XzEiIHZhbHVlPSIxIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Imdmb3JtX2hpZGRlbiIgbmFtZT0iZ2Zvcm1fc3VibWl0IiB2YWx1ZT0iMSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJnZm9ybV9oaWRkZW4iIG5hbWU9Imdmb3JtX3VuaXF1ZV9pZCIgdmFsdWU9IiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJnZm9ybV9oaWRkZW4iIG5hbWU9InN0YXRlXzEiIHZhbHVlPSJXeUpiWFNJc0ltUmlPVEEwWmprMFpUWTBaVFkwT1dVelpqRXlPVEkzTTJOaFltWXdORFExSWwwPSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJnZm9ybV9oaWRkZW4iIG5hbWU9Imdmb3JtX3RhcmdldF9wYWdlX251bWJlcl8xIiBpZD0iZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzEiIHZhbHVlPSIwIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Imdmb3JtX2hpZGRlbiIgbmFtZT0iZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzEiIGlkPSJnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMSIgdmFsdWU9IjEiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnZm9ybV9maWVsZF92YWx1ZXMiIHZhbHVlPSIiPgo8L2Rpdj4KPHAgc3R5bGU9ImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsiPjxsYWJlbD4mIzkxNjs8dGV4dGFyZWEgbmFtZT0iYWtfaHBfdGV4dGFyZWEiIGNvbHM9IjQ1IiByb3dzPSI4IiBtYXhsZW5ndGg9IjEwMCI+PC90ZXh0YXJlYT48L2xhYmVsPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJha19qc18xIiBuYW1lPSJha19qcyIgdmFsdWU9IjEyMyI+PHNjcmlwdD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCggImFrX2pzXzEiICkuc2V0QXR0cmlidXRlKCAidmFsdWUiLCAoIG5ldyBEYXRlKCkgKS5nZXRUaW1lKCkgKTs8L3NjcmlwdD48L3A+PC9mb3JtPgo8L2Rpdj4KPGlmcmFtZSBzdHlsZT0iZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4OyIgc3JjPSJhYm91dDpibGFuayIgbmFtZT0iZ2Zvcm1fYWpheF9mcmFtZV8xIiBpZD0iZ2Zvcm1fYWpheF9mcmFtZV8xIiB0aXRsZT0iVGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBamF4IHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy4iPjwvaWZyYW1lPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8qIDwhW0NEQVRBWyAqLwogZ2Zvcm0uaW5pdGlhbGl6ZU9uTG9hZGVkKCBmdW5jdGlvbigpIHtnZm9ybUluaXRTcGlubmVyKCAxLCAnd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5zdmcnLCB0cnVlICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8xJykub24oJ2xvYWQnLGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzEnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzEnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjt2YXIgbXQgPSBwYXJzZUludChqUXVlcnkoJ2h0bWwnKS5jc3MoJ21hcmdpbi10b3AnKSwgMTApICsgcGFyc2VJbnQoalF1ZXJ5KCdib2R5JykuY3NzKCdtYXJnaW4tdG9wJyksIDEwKSArIDEwMDtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzEnKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzEnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8xJykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8xJykub2Zmc2V0KCkudG9wIC0gbXQpOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzEnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCAxLCAnd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5zdmcnLCB0cnVlICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFsxLCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzEnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfMScpLm9mZnNldCgpLnRvcCAtIG10KTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbMV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18xJ10gPSBmYWxzZTt3cC5hMTF5LnNwZWFrKGpRdWVyeSgnI2dmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzEnKS50ZXh0KCkpO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV8xJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMSwgY3VycmVudF9wYWdlXSk7Z2Zvcm0udXRpbHMudHJpZ2dlcih7IGV2ZW50OiAnZ2Zvcm0vcG9zdFJlbmRlcicsIG5hdGl2ZTogZmFsc2UsIGRhdGE6IHsgZm9ybUlkOiAxLCBjdXJyZW50UGFnZTogY3VycmVudF9wYWdlIH0gfSk7fSApO30gKTsgCi8qIF1dPiAqLwo8L3NjcmlwdD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJiZy1pbWciPgo8aW1nIHNyYz0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJQUUFBQUxKQVFNQUFBQUpRKzlsQUFBQUJsQk1WRVVBQUFELy8vK2wyWi9kQUFBQUFYUlNUbE1BUU9iWVpnQUFBQWx3U0ZsekFBQU94QUFBRHNRQmxTc09Hd0FBQUlWSlJFRlVlTnJ0d1lFQUFBQUF3NkQ1VTEvaEFGVUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTUJ2dmE4QUFSbzljTWtBQUFBQVNVVk9SSzVDWUlJPSIgYWx0PSJUb3BUaWVyIFRyYWRlciBCcmFuZCBFY29zeXN0ZW0iIHdpZHRoPSIxMjY4LjA2IiBoZWlnaHQ9IjcxMy4zMSIgZGF0YS1zcmM9IndwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzEwL1RvcFRpZXItVHJhZGVyLUJyYW5kLUVjb3N5c3RlbS5zdmciIGRlY29kaW5nPSJhc3luYyIgY2xhc3M9Imxhenlsb2FkIiBkYXRhLWVpby1yd2lkdGg9IjEyNjgiIGRhdGEtZWlvLXJoZWlnaHQ9IjcxMyI+PG5vc2NyaXB0PjxpbWcgc3JjPSJ3cC1jb250ZW50L3VwbG9hZHMvMjAyMy8xMC9Ub3BUaWVyLVRyYWRlci1CcmFuZC1FY29zeXN0ZW0uc3ZnIiBhbHQ9IlRvcFRpZXIgVHJhZGVyIEJyYW5kIEVjb3N5c3RlbSIgd2lkdGg9IjEyNjguMDYiIGhlaWdodD0iNzEzLjMxIiBkYXRhLWVpbz0ibCI+PC9ub3NjcmlwdD4gPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgo8ZGl2IGNsYXNzPSJmb290ZXItYm90dG9tX19pbm5lciBjb250YWluZXIiPgo8ZGl2IGNsYXNzPSJmb290ZXItY29sIHNvY2lhbC1saXN0Ij4KPGRpdiBjbGFzcz0ic29jaWFsLWxpc3RfX2l0ZW0iPgo8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3RvcHRpZXIudHJhZGVyLyIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbGlzdF9fbGluayI+IDxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4gPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXNvY2lhbC1pbnN0YWdyYW0gIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNzb2NpYWwtaW5zdGFncmFtIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPGRpdiBjbGFzcz0ic29jaWFsLWxpc3RfX2l0ZW0iPgo8YSBocmVmPSJodHRwczovL2Rpc2NvcmQuY29tL2ludml0ZS9XckMyeGRaWm5nIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1saXN0X19saW5rIj4gPHNwYW4gY2xhc3M9ImMtYnRuX19pY28iPiA8c3ZnIGNsYXNzPSJpY29uIGljb24tc29jaWFsLWRpc2NvcmQgIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNzb2NpYWwtZGlzY29yZCI+PC91c2U+PC9zdmc+PC9zcGFuPjwvYT4gPC9kaXY+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQzFvdXlpNWhaYW85NUNNcG9WTXhRZFEiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwteW91dHViZSAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI3NvY2lhbC15b3V0dWJlIj48L3VzZT48L3N2Zz48L3NwYW4+PC9hPiA8L2Rpdj4KPGRpdiBjbGFzcz0ic29jaWFsLWxpc3RfX2l0ZW0iPgo8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2kvZmxvdy9sb2dpbj9yZWRpcmVjdF9hZnRlcl9sb2dpbj0lMkZfdG9wdGllcnRyYWRlciIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbGlzdF9fbGluayI+IDxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4gPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXNvY2lhbC10d2l0dGVyICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjc29jaWFsLXR3aXR0ZXIiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJzb2NpYWwtbGlzdF9faXRlbSI+CjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9Ub3BUaWVyLlRyYWRlciIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbGlzdF9fbGluayI+IDxzcGFuIGNsYXNzPSJjLWJ0bl9faWNvIj4gPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXNvY2lhbC1mYWNlYm9vayAiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjx1c2UgeGxpbms6aHJlZj0iI3NvY2lhbC1mYWNlYm9vayI+PC91c2U+PC9zdmc+PC9zcGFuPjwvYT4gPC9kaXY+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly93d3cudGlrdG9rLmNvbS9AdG9wdGllci50cmFkZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwtdGlrdG9rICIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PHVzZSB4bGluazpocmVmPSIjc29jaWFsLXRpa3RvayI+PC91c2U+PC9zdmc+PC9zcGFuPjwvYT4gPC9kaXY+CjxkaXYgY2xhc3M9InNvY2lhbC1saXN0X19pdGVtIj4KPGEgaHJlZj0iaHR0cHM6Ly90Lm1lL2pvaW5jaGF0X1RvcFRpZXJUcmFkZXIiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ic29jaWFsLWxpc3RfX2xpbmsiPiA8c3BhbiBjbGFzcz0iYy1idG5fX2ljbyI+IDxzdmcgY2xhc3M9Imljb24gaWNvbi1zb2NpYWwtdGVsZWdyYW0gIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48dXNlIHhsaW5rOmhyZWY9IiNzb2NpYWwtdGVsZWdyYW0iPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L2E+IDwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b21fX2lubmVyIGNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImZvb3Rlci1kaXNjbGFpbWVyIj4KQWxsIGNvbnRlbnQgcHVibGlzaGVkIGFuZCBkaXN0cmlidXRlZCBieSBUb3BUaWVyIFRyYWRlciwgTExDIGFuZCBpdHMgYWZmaWxpYXRlcyAoY29sbGVjdGl2ZWx5LCB0aGUgQ29tcGFueSkgaXMgdG8gYmUgdHJlYXRlZCBhcyBnZW5lcmFsIGluZm9ybWF0aW9uIG9ubHkuIE5vbmUgb2YgdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBDb21wYW55IG9yIGNvbnRhaW5lZCBoZXJlaW4gaXMgaW50ZW5kZWQgYXMgaW52ZXN0bWVudCBhZHZpY2UsIGFuIG9mZmVyIG9yIHNvbGljaXRhdGlvbiBvZiBhbiBvZmZlciB0byBidXkgb3Igc2VsbCwgb3IgYSByZWNvbW1lbmRhdGlvbiwgZW5kb3JzZW1lbnQsIG9yIHNwb25zb3JzaGlwIG9mIGFueSBzZWN1cml0eSwgY29tcGFueSwgb3IgZnVuZC4KVXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgb24gdGhlIENvbXBhbnnigJlzIHdlYnNpdGVzIGlzIGF0IHlvdXIgb3duIHJpc2sgYW5kIHRoZSBDb21wYW55IGFuZCBhc3N1bWVzIG5vIHJlc3BvbnNpYmlsaXR5IG9yIGxpYWJpbGl0eSBmb3IgYW55IHVzZSBvciBtaXN1c2Ugb2Ygc3VjaCBpbmZvcm1hdGlvbi4gTm90aGluZyBjb250YWluZWQgaGVyZWluIGlzIGEgc29saWNpdGF0aW9uIG9yIGFuIG9mZmVyIHRvIGJ1eSBvciBzZWxsIGZ1dHVyZXMsIG9wdGlvbnMsIG9yIGZvcmV4LiBQYXN0IHBlcmZvcm1hbmNlIGlzIG5vdCBuZWNlc3NhcmlseSBpbmRpY2F0aXZlIG9mIGZ1dHVyZSByZXN1bHRzLgpIeXBvdGhldGljYWwgb3Igc2ltdWxhdGVkIHBlcmZvcm1hbmNlIHJlc3VsdHMgaGF2ZSBjZXJ0YWluIGxpbWl0YXRpb25zLiBVbmxpa2UgYW4gYWN0dWFsIHBlcmZvcm1hbmNlIHJlY29yZCwgc2ltdWxhdGVkIHJlc3VsdHMgZG8gbm90IHJlcHJlc2VudCBhY3R1YWwgdHJhZGluZy4gQWxzbywgYmVjYXVzZSB0aGUgdHJhZGVzIGhhdmUgbm90IGFjdHVhbGx5IGJlZW4gZXhlY3V0ZWQsIHRoZSByZXN1bHRzIG1heSBoYXZlIHVuZGVyLW9yLW92ZXIgY29tcGVuc2F0ZWQgZm9yIHRoZSBpbXBhY3QsIGlmIGFueSwgb2YgY2VydGFpbiBtYXJrZXQgZmFjdG9ycywgc3VjaCBhcyBsYWNrIG9mIGxpcXVpZGl0eS4gU2ltdWxhdGVkIHRyYWRpbmcgcHJvZ3JhbXMsIGluIGdlbmVyYWwsIGFyZSBhbHNvIHN1YmplY3QgdG8gdGhlIGZhY3QgdGhhdCB0aGV5IGFyZSBkZXNpZ25lZCB3aXRoIHRoZSBiZW5lZml0IG9mIGhpbmRzaWdodC4gTm8gcmVwcmVzZW50YXRpb24gaXMgYmVpbmcgbWFkZSB0aGF0IGFueSBhY2NvdW50IHdpbGwgb3IgaXMgbGlrZWx5IHRvIGFjaGlldmUgcHJvZml0IG9yIGxvc3NlcyBzaW1pbGFyIHRvIHRob3NlIHNob3duLiA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b21fX2lubmVyIGNvbnRhaW5lciI+CjxkaXYgY2xhc3M9ImZvb3Rlci1jb2wiPgo8dWwgaWQ9Im1lbnUtZm9vdGVyLWxpbmtzIiBjbGFzcz0iZm9vdGVyLW5hdiI+PGxpIGlkPSJtZW51LWl0ZW0tMjg2OTA0ODgiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtY3VzdG9tIG1lbnUtaXRlbS1vYmplY3QtY3VzdG9tIG1lbnUtaXRlbS0yODY5MDQ4OCBqcy1pdGVtIj48YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgaHJlZj0iaHR0cHM6Ly9hcHAuYXV0b2xpdGVmaW5hbmNlcy5wcm8vbG9naW4vYWZmaWxpYXRlL2Rhc2hib2FyZCI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJBZmZpbGlhdGUgUHJvZ3JhbSI+QWZmaWxpYXRlIFByb2dyYW08L3NwYW4+PC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTI2MSIgY2xhc3M9Im1lbnUtaXRlbSBtZW51LWl0ZW0tdHlwZS1wb3N0X3R5cGUgbWVudS1pdGVtLW9iamVjdC1wYWdlIG1lbnUtaXRlbS0yNjEganMtaXRlbSI+PGEgaHJlZj0iY29udGFjdC9pbmRleC5odG0iPjxzcGFuIGNsYXNzPSJtZW51LWl0ZW1fX3RleHQiIGRhdGEtdGV4dD0iQ29udGFjdCBVcyI+Q29udGFjdCBVczwvc3Bhbj48L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tMjg2OTA0ODciIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tMjg2OTA0ODcganMtaXRlbSI+PGEgaHJlZj0idGVybXMtb2YtdXNlL2luZGV4Lmh0bSI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJUZXJtcyBvZiBVc2UiPlRlcm1zIG9mIFVzZTwvc3Bhbj48L2E+PC9saT4KPGxpIGlkPSJtZW51LWl0ZW0tMjg2OTA0ODUiIGNsYXNzPSJtZW51LWl0ZW0gbWVudS1pdGVtLXR5cGUtcG9zdF90eXBlIG1lbnUtaXRlbS1vYmplY3QtcGFnZSBtZW51LWl0ZW0tcHJpdmFjeS1wb2xpY3kgbWVudS1pdGVtLTI4NjkwNDg1IGpzLWl0ZW0iPjxhIHJlbD0icHJpdmFjeS1wb2xpY3kiIGhyZWY9InByaXZhY3ktcG9saWN5L2luZGV4Lmh0bSI+PHNwYW4gY2xhc3M9Im1lbnUtaXRlbV9fdGV4dCIgZGF0YS10ZXh0PSJQcml2YWN5IFBvbGljeSI+UHJpdmFjeSBQb2xpY3k8L3NwYW4+PC9hPjwvbGk+CjxsaSBpZD0ibWVudS1pdGVtLTI4NjkwNDg2IiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtaXRlbS10eXBlLXBvc3RfdHlwZSBtZW51LWl0ZW0tb2JqZWN0LXBhZ2UgbWVudS1pdGVtLTI4NjkwNDg2IGpzLWl0ZW0iPjxhIGhyZWY9InJlZnVuZC1wb2xpY3kvaW5kZXguaHRtIj48c3BhbiBjbGFzcz0ibWVudS1pdGVtX190ZXh0IiBkYXRhLXRleHQ9IlJlZnVuZCBQb2xpY3kiPlJlZnVuZCBQb2xpY3k8L3NwYW4+PC9hPjwvbGk+CjwvdWw+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJmb290ZXItY29sIGZvb3Rlci1ieSI+V2ViIERlc2lnbiBieSA8YSBocmVmPSJodHRwczovL2RpZ2l0YWxzaWxrLmNvbSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPjxzdHJvbmc+RGlnaXRhbCBTaWxrPC9zdHJvbmc+PC9hPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZm9vdGVyPgo8L2Rpdj4KPGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ3Jhdml0eV9mb3Jtc190aGVtZV9yZXNldC1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2dyYXZpdHktZm9ybXMtdGhlbWUtcmVzZXQubWluLmNzcz92ZXI9Mi43LjE3IiBhcz0ic3R5bGUiIG9ubG9hZD0idGhpcy5vbmxvYWQ9bnVsbDt0aGlzLnJlbD0nc3R5bGVzaGVldCciPgo8bm9zY3JpcHQ+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nZ3Jhdml0eV9mb3Jtc190aGVtZV9yZXNldC1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2dyYXZpdHktZm9ybXMtdGhlbWUtcmVzZXQubWluLmNzcz92ZXI9Mi43LjE3JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ3Jhdml0eV9mb3Jtc190aGVtZV9mb3VuZGF0aW9uLWNzcyIgaHJlZj0id3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9hc3NldHMvY3NzL2Rpc3QvZ3Jhdml0eS1mb3Jtcy10aGVtZS1mb3VuZGF0aW9uLm1pbi5jc3M/dmVyPTIuNy4xNyIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2dyYXZpdHlfZm9ybXNfdGhlbWVfZm91bmRhdGlvbi1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2dyYXZpdHktZm9ybXMtdGhlbWUtZm91bmRhdGlvbi5taW4uY3NzP3Zlcj0yLjcuMTcnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJncmF2aXR5X2Zvcm1zX3RoZW1lX2ZyYW1ld29yay1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2dyYXZpdHktZm9ybXMtdGhlbWUtZnJhbWV3b3JrLm1pbi5jc3M/dmVyPTIuNy4xNyIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2dyYXZpdHlfZm9ybXNfdGhlbWVfZnJhbWV3b3JrLWNzcycgaHJlZj0nd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9hc3NldHMvY3NzL2Rpc3QvZ3Jhdml0eS1mb3Jtcy10aGVtZS1mcmFtZXdvcmsubWluLmNzcz92ZXI9Mi43LjE3JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ3Jhdml0eV9mb3Jtc19vcmJpdGFsX3RoZW1lLWNzcyIgaHJlZj0id3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9hc3NldHMvY3NzL2Rpc3QvZ3Jhdml0eS1mb3Jtcy1vcmJpdGFsLXRoZW1lLm1pbi5jc3M/dmVyPTIuNy4xNyIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2dyYXZpdHlfZm9ybXNfb3JiaXRhbF90aGVtZS1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2dyYXZpdHktZm9ybXMtb3JiaXRhbC10aGVtZS5taW4uY3NzP3Zlcj0yLjcuMTcnIHR5cGU9J3RleHQvY3NzJyBtZWRpYT0nYWxsJz4KPC9ub3NjcmlwdD48bGluayByZWw9InByZWxvYWQiIGlkPSJnZm9ybV9iYXNpYy1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L2Jhc2ljLm1pbi5jc3M/dmVyPTIuNy4xNyIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J2dmb3JtX2Jhc2ljLWNzcycgaHJlZj0nd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9hc3NldHMvY3NzL2Rpc3QvYmFzaWMubWluLmNzcz92ZXI9Mi43LjE3JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ2Zvcm1fdGhlbWVfY29tcG9uZW50cy1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L3RoZW1lLWNvbXBvbmVudHMubWluLmNzcz92ZXI9Mi43LjE3IiBhcz0ic3R5bGUiIG9ubG9hZD0idGhpcy5vbmxvYWQ9bnVsbDt0aGlzLnJlbD0nc3R5bGVzaGVldCciPgo8bm9zY3JpcHQ+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nZ2Zvcm1fdGhlbWVfY29tcG9uZW50cy1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L3RoZW1lLWNvbXBvbmVudHMubWluLmNzcz92ZXI9Mi43LjE3JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ2Zvcm1fdGhlbWVfaWUxMS1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L3RoZW1lLWllMTEubWluLmNzcz92ZXI9Mi43LjE3IiBhcz0ic3R5bGUiIG9ubG9hZD0idGhpcy5vbmxvYWQ9bnVsbDt0aGlzLnJlbD0nc3R5bGVzaGVldCciPgo8bm9zY3JpcHQ+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBpZD0nZ2Zvcm1fdGhlbWVfaWUxMS1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L3RoZW1lLWllMTEubWluLmNzcz92ZXI9Mi43LjE3JyB0eXBlPSd0ZXh0L2NzcycgbWVkaWE9J2FsbCc+Cjwvbm9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBpZD0iZ2Zvcm1fdGhlbWUtY3NzIiBocmVmPSJ3cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2Fzc2V0cy9jc3MvZGlzdC90aGVtZS5taW4uY3NzP3Zlcj0yLjcuMTciIGFzPSJzdHlsZSIgb25sb2FkPSJ0aGlzLm9ubG9hZD1udWxsO3RoaXMucmVsPSdzdHlsZXNoZWV0JyI+Cjxub3NjcmlwdD48bGluayByZWw9J3N0eWxlc2hlZXQnIGlkPSdnZm9ybV90aGVtZS1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2Nzcy9kaXN0L3RoZW1lLm1pbi5jc3M/dmVyPTIuNy4xNycgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnPgo8L25vc2NyaXB0PjxsaW5rIHJlbD0icHJlbG9hZCIgaWQ9IndwYy1nZi1zZy1hZG1pbi1zdHlsZS1jc3MiIGhyZWY9IndwLWNvbnRlbnQvcGx1Z2lucy93cGNvbm5lY3QtZ2Ytc2VuZGdyaWQvYXNzZXRzL2Nzcy9hZG1pbi5taW4uY3NzP3Zlcj0xLjIuMCIgYXM9InN0eWxlIiBvbmxvYWQ9InRoaXMub25sb2FkPW51bGw7dGhpcy5yZWw9J3N0eWxlc2hlZXQnIj4KPG5vc2NyaXB0PjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaWQ9J3dwYy1nZi1zZy1hZG1pbi1zdHlsZS1jc3MnIGhyZWY9J3dwLWNvbnRlbnQvcGx1Z2lucy93cGNvbm5lY3QtZ2Ytc2VuZGdyaWQvYXNzZXRzL2Nzcy9hZG1pbi5taW4uY3NzP3Zlcj0xLjIuMCcgdHlwZT0ndGV4dC9jc3MnIG1lZGlhPSdhbGwnPgo8L25vc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iZWlvLWxhenktbG9hZC1qcy1iZWZvcmUiPgovKiA8IVtDREFUQVsgKi8KdmFyIGVpb19sYXp5X3ZhcnMgPSB7ImV4YWN0ZG5fZG9tYWluIjoiIiwic2tpcF9hdXRvc2NhbGUiOjAsInRocmVzaG9sZCI6MH07Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC9wbHVnaW5zL2V3d3ctaW1hZ2Utb3B0aW1pemVyL2luY2x1ZGVzL2xhenlzaXplcy5taW4uanM/dmVyPTcyMSIgaWQ9ImVpby1sYXp5LWxvYWQtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3BsdWdpbnMvZXhjbHVzaXZlLWFkZG9ucy1mb3ItZWxlbWVudG9yL2Fzc2V0cy92ZW5kb3IvanMvanF1ZXJ5LnN0aWNreS1zaWRlYmFyLmpzP3Zlcj0yLjYuOCIgaWQ9ImV4YWQtc3RpY2t5LWpxdWVyeS1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iZXhhZC1tYWluLXNjcmlwdC1qcy1leHRyYSI+Ci8qIDwhW0NEQVRBWyAqLwp2YXIgZXhhZF9hamF4X29iamVjdCA9IHsiYWpheF91cmwiOiJodHRwczpcL1wvYXV0b2xpdGVmaW5hbmNlcy5wcm9cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsIm5vbmNlIjoiMWE4NzQ1NzMyMyJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvcGx1Z2lucy9leGNsdXNpdmUtYWRkb25zLWZvci1lbGVtZW50b3IvYXNzZXRzL2pzL2V4YWQtc2NyaXB0cy5taW4uanM/dmVyPTIuNi44IiBpZD0iZXhhZC1tYWluLXNjcmlwdC1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL3ZlbmRvcnMvYW9zL2Fvcy5qcz92ZXI9MSIgaWQ9ImFvcy1qcy1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL3ZlbmRvcnMvc3dpcGVyL3N3aXBlci1idW5kbGUubWluLmpzP3Zlcj0xIiBpZD0ic3dpcGVyLWpzLWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC90aGVtZXMvZHNfdG9wdGllci9hc3NldHMvdmVuZG9ycy9nc2FwLm1pbi5qcz92ZXI9MSIgaWQ9ImdzYXAtanMtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy92ZW5kb3JzL1Njcm9sbFRyaWdnZXIubWluLmpzP3Zlcj0xIiBpZD0iU2Nyb2xsVHJpZ2dlci1qcy1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvdGhlbWVzL2RzX3RvcHRpZXIvYXNzZXRzL3ZlbmRvcnMvbGF6eWxvYWQvbGF6eWxvYWQubWluLmpzP3Zlcj0xIiBpZD0ianMtbGF6eWxvYWQtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3RoZW1lcy9kc190b3B0aWVyL2Fzc2V0cy9fZGlzdC9qcy9hcHAuanM/dmVyPTEiIGlkPSJtYWluLWpzLWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJndF93aWRnZXRfc2NyaXB0XzE1ODg4MDk1LWpzLWJlZm9yZSI+Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuZ3RyYW5zbGF0ZVNldHRpbmdzID0gLyogZG9jdW1lbnQud3JpdGUgKi8gd2luZG93Lmd0cmFuc2xhdGVTZXR0aW5ncyB8fCB7fTt3aW5kb3cuZ3RyYW5zbGF0ZVNldHRpbmdzWycxNTg4ODA5NSddID0geyJkZWZhdWx0X2xhbmd1YWdlIjoiZW4iLCJsYW5ndWFnZXMiOlsiZW4iLCJmciIsImRlIiwicHQiLCJlcyJdLCJ1cmxfc3RydWN0dXJlIjoic3ViX2RpcmVjdG9yeSIsImZsYWdfc3R5bGUiOiIzZCIsImZsYWdfc2l6ZSI6MjQsIndyYXBwZXJfc2VsZWN0b3IiOiIjZ3Qtd3JhcHBlci0xNTg4ODA5NSIsImFsdF9mbGFncyI6eyJlbiI6InVzYSIsInB0IjoiYnJhemlsIn0sInN3aXRjaGVyX29wZW5fZGlyZWN0aW9uIjoidG9wIiwic3dpdGNoZXJfaG9yaXpvbnRhbF9wb3NpdGlvbiI6ImlubGluZSIsInN3aXRjaGVyX3RleHRfY29sb3IiOiIjNjY2Iiwic3dpdGNoZXJfYXJyb3dfY29sb3IiOiIjNjY2Iiwic3dpdGNoZXJfYm9yZGVyX2NvbG9yIjoiI2NjYyIsInN3aXRjaGVyX2JhY2tncm91bmRfY29sb3IiOiIjZmZmIiwic3dpdGNoZXJfYmFja2dyb3VuZF9zaGFkb3dfY29sb3IiOiIjZWZlZmVmIiwic3dpdGNoZXJfYmFja2dyb3VuZF9ob3Zlcl9jb2xvciI6IiNmZmYiLCJkcm9wZG93bl90ZXh0X2NvbG9yIjoiIzAwMCIsImRyb3Bkb3duX2hvdmVyX2NvbG9yIjoiI2ZmZiIsImRyb3Bkb3duX2JhY2tncm91bmRfY29sb3IiOiIjZWVlIiwiY3VzdG9tX2NzcyI6ImxpLm1lbnUtaXRlbS5tZW51LWl0ZW0tZ3RyYW5zbGF0ZSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuc2VsZWN0Lmd0X3NlbGVjdG9yLm5vdHJhbnNsYXRlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuLmd0X3N3aXRjaGVyX3dyYXBwZXIge1xyXG4gICAgcmlnaHQ6IDglICFpbXBvcnRhbnQ7XHJcbn0iLCJmbGFnc19sb2NhdGlvbiI6Ilwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3RyYW5zbGF0ZVwvZmxhZ3NcLyJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvcGx1Z2lucy9ndHJhbnNsYXRlL2pzL2R3Zi5qcz92ZXI9Ni40LjEiIGRhdGEtbm8tb3B0aW1pemU9IjEiIGRhdGEtbm8tbWluaWZ5PSIxIiBkYXRhLWd0LW9yaWctdXJsPSIvIiBkYXRhLWd0LW9yaWctZG9tYWluPSJhdXRvbGl0ZWZpbmFuY2VzLnBybyIgZGF0YS1ndC13aWRnZXQtaWQ9IjE1ODg4MDk1IiBkZWZlcj0iIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1pbmNsdWRlcy9qcy9kaXN0L3ZlbmRvci93cC1wb2x5ZmlsbC1pbmVydC5taW4uanM/dmVyPTMuMS4yIiBpZD0id3AtcG9seWZpbGwtaW5lcnQtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1pbmNsdWRlcy9qcy9kaXN0L3ZlbmRvci9yZWdlbmVyYXRvci1ydW50aW1lLm1pbi5qcz92ZXI9MC4xNC4wIiBpZD0icmVnZW5lcmF0b3ItcnVudGltZS1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iIiBzcmM9IndwLWluY2x1ZGVzL2pzL2Rpc3QvdmVuZG9yL3dwLXBvbHlmaWxsLm1pbi5qcz92ZXI9My4xNS4wIiBpZD0id3AtcG9seWZpbGwtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9IiIgc3JjPSJ3cC1pbmNsdWRlcy9qcy9kaXN0L2RvbS1yZWFkeS5taW4uanM/dmVyPTM5MmJkZDQzNzI2NzYwZDFmM2NhIiBpZD0id3AtZG9tLXJlYWR5LWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0id3AtaW5jbHVkZXMvanMvZGlzdC9ob29rcy5taW4uanM/dmVyPWM2YWVjOWE4ZDRlNWE1ZDU0M2ExIiBpZD0id3AtaG9va3MtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ3cC1pbmNsdWRlcy9qcy9kaXN0L2kxOG4ubWluLmpzP3Zlcj03NzAxYjBjMzg1N2Y5MTQyMTJlZiIgaWQ9IndwLWkxOG4tanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgaWQ9IndwLWkxOG4tanMtYWZ0ZXIiPgovKiA8IVtDREFUQVsgKi8Kd3AuaTE4bi5zZXRMb2NhbGVEYXRhKCB7ICd0ZXh0IGRpcmVjdGlvblx1MDAwNGx0cic6IFsgJ2x0cicgXSB9ICk7Ci8qIF1dPiAqLwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSIiIHNyYz0id3AtaW5jbHVkZXMvanMvZGlzdC9hMTF5Lm1pbi5qcz92ZXI9NzAzMjM0M2E5NDdjZmNjZjU2MDgiIGlkPSJ3cC1hMTF5LWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSJkZWZlciIgc3JjPSJ3cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2pzL2pxdWVyeS5qc29uLm1pbi5qcz92ZXI9Mi43LjE3IiBpZD0iZ2Zvcm1fanNvbi1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iZ2Zvcm1fZ3Jhdml0eWZvcm1zLWpzLWV4dHJhIj4KLyogPCFbQ0RBVEFbICovCnZhciBnZm9ybV9pMThuID0geyJkYXRlcGlja2VyIjp7ImRheXMiOnsibW9uZGF5IjoiTW8iLCJ0dWVzZGF5IjoiVHUiLCJ3ZWRuZXNkYXkiOiJXZSIsInRodXJzZGF5IjoiVGgiLCJmcmlkYXkiOiJGciIsInNhdHVyZGF5IjoiU2EiLCJzdW5kYXkiOiJTdSJ9LCJtb250aHMiOnsiamFudWFyeSI6IkphbnVhcnkiLCJmZWJydWFyeSI6IkZlYnJ1YXJ5IiwibWFyY2giOiJNYXJjaCIsImFwcmlsIjoiQXByaWwiLCJtYXkiOiJNYXkiLCJqdW5lIjoiSnVuZSIsImp1bHkiOiJKdWx5IiwiYXVndXN0IjoiQXVndXN0Iiwic2VwdGVtYmVyIjoiU2VwdGVtYmVyIiwib2N0b2JlciI6Ik9jdG9iZXIiLCJub3ZlbWJlciI6Ik5vdmVtYmVyIiwiZGVjZW1iZXIiOiJEZWNlbWJlciJ9LCJmaXJzdERheSI6MSwiaWNvblRleHQiOiJTZWxlY3QgZGF0ZSJ9fTsKdmFyIGdmX2xlZ2FjeV9tdWx0aSA9IFtdOwp2YXIgZ2Zvcm1fZ3Jhdml0eWZvcm1zID0geyJzdHJpbmdzIjp7ImludmFsaWRfZmlsZV9leHRlbnNpb24iOiJUaGlzIHR5cGUgb2YgZmlsZSBpcyBub3QgYWxsb3dlZC4gTXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoiLCJkZWxldGVfZmlsZSI6IkRlbGV0ZSB0aGlzIGZpbGUiLCJpbl9wcm9ncmVzcyI6ImluIHByb2dyZXNzIiwiZmlsZV9leGNlZWRzX2xpbWl0IjoiRmlsZSBleGNlZWRzIHNpemUgbGltaXQiLCJpbGxlZ2FsX2V4dGVuc2lvbiI6IlRoaXMgdHlwZSBvZiBmaWxlIGlzIG5vdCBhbGxvd2VkLiIsIm1heF9yZWFjaGVkIjoiTWF4aW11bSBudW1iZXIgb2YgZmlsZXMgcmVhY2hlZCIsInVua25vd25fZXJyb3IiOiJUaGVyZSB3YXMgYSBwcm9ibGVtIHdoaWxlIHNhdmluZyB0aGUgZmlsZSBvbiB0aGUgc2VydmVyIiwiY3VycmVudGx5X3VwbG9hZGluZyI6IlBsZWFzZSB3YWl0IGZvciB0aGUgdXBsb2FkaW5nIHRvIGNvbXBsZXRlIiwiY2FuY2VsIjoiQ2FuY2VsIiwiY2FuY2VsX3VwbG9hZCI6IkNhbmNlbCB0aGlzIHVwbG9hZCIsImNhbmNlbGxlZCI6IkNhbmNlbGxlZCJ9LCJ2YXJzIjp7ImltYWdlc191cmwiOiJodHRwczpcL1wvYXV0b2xpdGVmaW5hbmNlcy5wcm9cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzIn19Owp2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjIsImNvZGUiOiJVU0QifSwiYmFzZV91cmwiOiJodHRwczpcL1wvYXV0b2xpdGVmaW5hbmNlcy5wcm9cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC9hdXRvbGl0ZWZpbmFuY2VzLnByb1wvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuc3ZnIiwidmVyc2lvbl9oYXNoIjoiZDE0Yjk3NWNmMjM2MDY1Y2U4NDZkMGU0OTFiNzI5YjEiLCJzdHJpbmdzIjp7Im5ld1Jvd0FkZGVkIjoiTmV3IHJvdyBhZGRlZC4iLCJyb3dSZW1vdmVkIjoiUm93IHJlbW92ZWQiLCJmb3JtU2F2ZWQiOiJUaGUgZm9ybSBoYXMgYmVlbiBzYXZlZC4gIFRoZSBjb250ZW50IGNvbnRhaW5zIHRoZSBsaW5rIHRvIHJldHVybiBhbmQgY29tcGxldGUgdGhlIGZvcm0uIn19OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iZGVmZXIiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9qcy9ncmF2aXR5Zm9ybXMubWluLmpzP3Zlcj0yLjcuMTciIGlkPSJnZm9ybV9ncmF2aXR5Zm9ybXMtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9ImRlZmVyIiBzcmM9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvanMvcGxhY2Vob2xkZXJzLmpxdWVyeS5taW4uanM/dmVyPTIuNy4xNyIgaWQ9Imdmb3JtX3BsYWNlaG9sZGVyLWpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGRlZmVyPSJkZWZlciIgZGVmZXI9IiIgc3JjPSJ3cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2Fzc2V0cy9qcy9kaXN0L3V0aWxzLm1pbi5qcz92ZXI9NTlkOTUxYjc1ZDkzNGFlMjNlMGVhN2Y5Nzc2MjY0YWEiIGlkPSJnZm9ybV9ncmF2aXR5Zm9ybXNfdXRpbHMtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgZGVmZXI9ImRlZmVyIiBkZWZlcj0iIiBzcmM9IndwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvYXNzZXRzL2pzL2Rpc3QvdmVuZG9yLXRoZW1lLm1pbi5qcz92ZXI9NGVmNTNmZTQxYzE0YTQ4YjI5NDU0MWQ5ZmMzNzM4N2UiIGlkPSJnZm9ybV9ncmF2aXR5Zm9ybXNfdGhlbWVfdmVuZG9ycy1qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBpZD0iZ2Zvcm1fZ3Jhdml0eWZvcm1zX3RoZW1lLWpzLWV4dHJhIj4KLyogPCFbQ0RBVEFbICovCnZhciBnZm9ybV90aGVtZV9jb25maWcgPSB7ImNvbW1vbiI6eyJmb3JtIjp7ImhvbmV5cG90Ijp7InZlcnNpb25faGFzaCI6ImQxNGI5NzVjZjIzNjA2NWNlODQ2ZDBlNDkxYjcyOWIxIn19fSwiaG1yX2RldiI6IiIsInB1YmxpY19wYXRoIjoiaHR0cHM6XC9cL2F1dG9saXRlZmluYW5jZXMucHJvXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2Fzc2V0c1wvanNcL2Rpc3RcLyJ9OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBkZWZlcj0iZGVmZXIiIGRlZmVyPSIiIHNyYz0id3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9hc3NldHMvanMvZGlzdC9zY3JpcHRzLXRoZW1lLm1pbi5qcz92ZXI9ZjRkMTJhODg3YTIzYThjNTc1NWZkMmI5NTZiYzhmY2YiIGlkPSJnZm9ybV9ncmF2aXR5Zm9ybXNfdGhlbWUtanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8qIDwhW0NEQVRBWyAqLwogZ2Zvcm0uaW5pdGlhbGl6ZU9uTG9hZGVkKCBmdW5jdGlvbigpIHsgalF1ZXJ5KGRvY3VtZW50KS5vbignZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDEpIHtpZih0eXBlb2YgUGxhY2Vob2xkZXJzICE9ICd1bmRlZmluZWQnKXsKICAgICAgICAgICAgICAgICAgICAgICAgUGxhY2Vob2xkZXJzLmVuYWJsZSgpOwogICAgICAgICAgICAgICAgICAgIH19IH0gKTtqUXVlcnkoZG9jdW1lbnQpLm9uKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKSB9ICk7IAovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyogPCFbQ0RBVEFbICovCiBnZm9ybS5pbml0aWFsaXplT25Mb2FkZWQoIGZ1bmN0aW9uKCkge2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbMSwgMV0pO2dmb3JtLnV0aWxzLnRyaWdnZXIoeyBldmVudDogJ2dmb3JtL3Bvc3RSZW5kZXInLCBuYXRpdmU6IGZhbHNlLCBkYXRhOiB7IGZvcm1JZDogMSwgY3VycmVudFBhZ2U6IDEgfSB9KTt9ICk7IAovKiBdXT4gKi8KPC9zY3JpcHQ+CgoKCjwhLS0gU21hcnRzdXBwIExpdmUgQ2hhdCBzY3JpcHQgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KdmFyIF9zbWFydHN1cHAgPSBfc21hcnRzdXBwIHx8IHt9Owpfc21hcnRzdXBwLmtleSA9ICc1NDMyMGExNDQ5M2MzNDU4MGZmMjQ0NWJkM2RiZDQ3YjFhMTgwMTc2JzsKd2luZG93LnNtYXJ0c3VwcHx8KGZ1bmN0aW9uKGQpIHsKICB2YXIgcyxjLG89c21hcnRzdXBwPWZ1bmN0aW9uKCl7IG8uXy5wdXNoKGFyZ3VtZW50cyl9O28uXz1bXTsKICBzPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO2M9ZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICBjLnR5cGU9J3RleHQvamF2YXNjcmlwdCc7Yy5jaGFyc2V0PSd1dGYtOCc7Yy5hc3luYz10cnVlOwogIGMuc3JjPSdodHRwczovL3d3dy5zbWFydHN1cHBjaGF0LmNvbS9sb2FkZXIuanM/JztzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMscyk7Cn0pKGRvY3VtZW50KTsKPC9zY3JpcHQ+Cjxub3NjcmlwdD4gUG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5zbWFydHN1cHAuY29tIiB0YXJnZXQ9Il9ibGFuayI+U21hcnRzdXBwPC9hPjwvbm9zY3JpcHQ+Cgo8L2JvZHk+CgoKCjwvaHRtbD4="}},"time_used":705,"timings":{"blocked":-1,"dns":299,"connect":93,"send":0,"wait":201,"receive":0,"ssl":112},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/aos/aos.css?ver=1.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.806Z","timestamp":1785145403806,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/aos/aos.css?ver=1.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-65c5\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":26053,"size_decoded":1766,"mime_type":"text/css","magic":"ASCII text, with very long lines (26053), with no line terminators","md5":"847da8fca8060ca1a70f976aab1210b9","sha1":"0557d37454b67f42f2cb101e57e5070fb1193570","sha256":"1aa8845fd06e475aefe733d4e55b36a92fcd487975049c8172341827ac9cc03e","sha512":"d5c2bbf1ad68fa1b7625c696ea0f0e5d8c2aa5ebfdfba1aa3a4cfdc6604df625148489dd2adc7020b19660e4a26ce2a32ec11d8f28d9bd80eafdc67035e6a4d3","ssdeep":"768:CMJihoCcZCOud8G8tKS65wqsZQ1G+dM2cl6iCRotsV84sxIKcv4g01UeEPEQEB4D:CMJihoCcZCOud8G8tKS65wqsZCG+dM25","tlshash":"f0c24b5a7a4cd100bf831b4762df2a0859347588e5301986be3f35ca2cd5ce6b973fa9","first_seen":"2023-04-05T07:18:45Z","last_seen":"2026-08-12T04:07:28.386928Z","times_seen":44346,"resource_available":false,"data":"W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246NTBtc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSI1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjUwbXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjEwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjEwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjEwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6LjFzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxNTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246LjE1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouMTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyMDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246LjJzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi4yc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyNTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6LjI1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMzAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMzAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi4zc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMzAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMzAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjMwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjMwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouM3N9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjM1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjM1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouMzVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIzNTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIzNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMzUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMzUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi4zNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjQwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjQwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouNHN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjQwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjQwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI0MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSI0MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6LjRzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSI0NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSI0NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246LjQ1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNDUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iNDUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjQ1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjQ1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouNDVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSI1MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSI1MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246LjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI1MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSI1MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNTAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iNTAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi41c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iNTUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iNTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi41NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjU1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjU1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI1NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSI1NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6LjU1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iNjAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iNjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi42c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNjAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iNjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjYwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjYwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouNnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjY1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjY1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouNjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI2NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSI2NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNjUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iNjUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi42NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjcwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjcwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouN3N9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjcwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjcwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI3MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSI3MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6LjdzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSI3NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSI3NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Ljc1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iNzUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iNzUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9Ijc1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9Ijc1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouNzVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSI4MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSI4MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246LjhzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI4MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSI4MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iODAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iODAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi44c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iODUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iODUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi44NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9Ijg1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9Ijg1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI4NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSI4NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Ljg1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iOTAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iOTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOi45c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iOTAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iOTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjkwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjkwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheTouOXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249Ijk1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249Ijk1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjouOTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSI5NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSI5NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iOTUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iOTUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5Oi45NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjEwMDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxMDAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjFzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMDAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTAwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMDAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTAwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTA1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjEwNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS4wNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEwNTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMDUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEwNTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMDUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuMDVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxMTAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTEwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjFzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMTAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTEwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMTAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTEwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjFzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxMTUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTE1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjE1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTE1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjExNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTE1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjExNTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS4xNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjEyMDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxMjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuMnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEyMDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEyMDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMjAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuMnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjEyNTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxMjUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuMjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMjUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTI1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxMjUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTI1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjI1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTMwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjEzMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS4zc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTMwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjEzMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTMwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjEzMDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS4zc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTM1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjEzNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS4zNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEzNTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMzUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjEzNTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxMzUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuMzVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxNDAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTQwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjRzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNDAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTQwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNDAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTQwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjRzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxNDUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTQ1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjQ1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTQ1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE0NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTQ1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE0NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS40NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjE1MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxNTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE1MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxNTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE1MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxNTAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjE1NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxNTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuNTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNTUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTU1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNTUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTU1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjU1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTYwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjE2MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS42c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTYwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE2MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTYwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE2MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS42c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTY1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjE2NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS42NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE2NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxNjUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE2NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxNjUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuNjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxNzAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTcwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjdzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNzAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTcwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxNzAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTcwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjdzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIxNzUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMTc1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoxLjc1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTc1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE3NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTc1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE3NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS43NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjE4MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxODAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuOHN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE4MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxODAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE4MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxODAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuOHN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjE4NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIxODUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjEuODVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxODUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMTg1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIxODUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMTg1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToxLjg1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTkwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjE5MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS45c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTkwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE5MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMTkwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjE5MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MS45c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMTk1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjE5NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246MS45NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE5NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxOTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjE5NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIxOTUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjEuOTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyMDAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjAwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjAwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIwMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjAwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIwMDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6MnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjIwNTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyMDUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuMDVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMDUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjA1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMDUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjA1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjA1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjEwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjIxMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi4xc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjEwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIxMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjEwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIxMDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi4xc31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjE1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjIxNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi4xNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjIxNTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyMTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjIxNTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyMTUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuMTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyMjAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjIwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjJzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMjAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjIwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMjAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjIwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjJzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyMjUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjI1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjI1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjI1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIyNTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjI1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjIyNTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi4yNXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjIzMDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyMzAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuM3N9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjIzMDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyMzAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjIzMDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyMzAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuM3N9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjIzNTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyMzUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuMzVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMzUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjM1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyMzUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjM1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjM1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjQwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjI0MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi40c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjQwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI0MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjQwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI0MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi40c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjQ1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjI0NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi40NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI0NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNDUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI0NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNDUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuNDVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyNTAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjUwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyNTAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjUwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyNTAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjUwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyNTUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjU1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjU1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjU1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI1NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjU1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI1NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi41NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjI2MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyNjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuNnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI2MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNjAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI2MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNjAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuNnN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjI2NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyNjUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuNjVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyNjUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjY1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyNjUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjY1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjY1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjcwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjI3MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi43c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjcwMCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI3MDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjcwMCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI3MDAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi43c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMjc1MCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjI3NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246Mi43NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI3NTAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNzUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI3NTAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyNzUwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuNzVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyODAwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjgwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjhzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyODAwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjgwMCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyODAwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjgwMCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjhzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWR1cmF0aW9uPSIyODUwIl0sYm9keVtkYXRhLWFvcy1kdXJhdGlvbj0iMjg1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kdXJhdGlvbjoyLjg1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjg1MCJdLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI4NTAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZGVsYXk6MH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kZWxheT0iMjg1MCJdLmFvcy1hbmltYXRlLGJvZHlbZGF0YS1hb3MtZGVsYXk9IjI4NTAiXSBbZGF0YS1hb3NdLmFvcy1hbmltYXRle3RyYW5zaXRpb24tZGVsYXk6Mi44NXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjI5MDAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyOTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuOXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI5MDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyOTAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjI5MDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIyOTAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjIuOXN9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZHVyYXRpb249IjI5NTAiXSxib2R5W2RhdGEtYW9zLWR1cmF0aW9uPSIyOTUwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWR1cmF0aW9uOjIuOTVzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyOTUwIl0sYm9keVtkYXRhLWFvcy1kZWxheT0iMjk1MCJdIFtkYXRhLWFvc117dHJhbnNpdGlvbi1kZWxheTowfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWRlbGF5PSIyOTUwIl0uYW9zLWFuaW1hdGUsYm9keVtkYXRhLWFvcy1kZWxheT0iMjk1MCJdIFtkYXRhLWFvc10uYW9zLWFuaW1hdGV7dHJhbnNpdGlvbi1kZWxheToyLjk1c31bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1kdXJhdGlvbj0iMzAwMCJdLGJvZHlbZGF0YS1hb3MtZHVyYXRpb249IjMwMDAiXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tZHVyYXRpb246M3N9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjMwMDAiXSxib2R5W2RhdGEtYW9zLWRlbGF5PSIzMDAwIl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLWRlbGF5OjB9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZGVsYXk9IjMwMDAiXS5hb3MtYW5pbWF0ZSxib2R5W2RhdGEtYW9zLWRlbGF5PSIzMDAwIl0gW2RhdGEtYW9zXS5hb3MtYW5pbWF0ZXt0cmFuc2l0aW9uLWRlbGF5OjNzfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1saW5lYXJdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWxpbmVhcl0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjI1LC4yNSwuNzUsLjc1KX1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZV0sYm9keVtkYXRhLWFvcy1lYXNpbmc9ZWFzZV0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1lYXNlLWluXSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLWluXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0XSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLW91dF0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1vdXRdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0XSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0fVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1lYXNlLWluLWJhY2tdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tYmFja10gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjYsLS4yOCwuNzM1LC4wNDUpfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1lYXNlLW91dC1iYWNrXSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLW91dC1iYWNrXSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMjc1KX1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1vdXQtYmFja10sYm9keVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1vdXQtYmFja10gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjY4LC0uNTUsLjI2NSwxLjU1KX1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1zaW5lXSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLWluLXNpbmVdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40NywwLC43NDUsLjcxNSl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0LXNpbmVdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0LXNpbmVdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4zOSwuNTc1LC41NjUsMSl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LXNpbmVdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LXNpbmVdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40NDUsLjA1LC41NSwuOTUpfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1lYXNlLWluLXF1YWRdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tcXVhZF0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wODUsLjY4LC41Myl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0LXF1YWRdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0LXF1YWRdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yNSwuNDYsLjQ1LC45NCl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LXF1YWRdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LXF1YWRdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40NTUsLjAzLC41MTUsLjk1NSl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tY3ViaWNdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tY3ViaWNdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDg1LC42OCwuNTMpfVtkYXRhLWFvc11bZGF0YS1hb3NdW2RhdGEtYW9zLWVhc2luZz1lYXNlLW91dC1jdWJpY10sYm9keVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1vdXQtY3ViaWNdIFtkYXRhLWFvc117dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yNSwuNDYsLjQ1LC45NCl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LWN1YmljXSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLWluLW91dC1jdWJpY10gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQ1NSwuMDMsLjUxNSwuOTU1KX1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1xdWFydF0sYm9keVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1xdWFydF0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wODUsLjY4LC41Myl9W2RhdGEtYW9zXVtkYXRhLWFvc11bZGF0YS1hb3MtZWFzaW5nPWVhc2Utb3V0LXF1YXJ0XSxib2R5W2RhdGEtYW9zLWVhc2luZz1lYXNlLW91dC1xdWFydF0gW2RhdGEtYW9zXXt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjI1LC40NiwuNDUsLjk0KX1bZGF0YS1hb3NdW2RhdGEtYW9zXVtkYXRhLWFvcy1lYXNpbmc9ZWFzZS1pbi1vdXQtcXVhcnRdLGJvZHlbZGF0YS1hb3MtZWFzaW5nPWVhc2UtaW4tb3V0LXF1YXJ0XSBbZGF0YS1hb3Nde3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNDU1LC4wMywuNTE1LC45NTUpfVtkYXRhLWFvc149ZmFkZV1bZGF0YS1hb3NePWZhZGVde29wYWNpdHk6MDt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksdHJhbnNmb3JtfVtkYXRhLWFvc149ZmFkZV1bZGF0YS1hb3NePWZhZGVdLmFvcy1hbmltYXRle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX1bZGF0YS1hb3M9ZmFkZS11cF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwcHgsMCl9W2RhdGEtYW9zPWZhZGUtZG93bl17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMHB4LDApfVtkYXRhLWFvcz1mYWRlLXJpZ2h0XXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMHB4LDAsMCl9W2RhdGEtYW9zPWZhZGUtbGVmdF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMHB4LDAsMCl9W2RhdGEtYW9zPWZhZGUtdXAtcmlnaHRde3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwcHgsMTAwcHgsMCl9W2RhdGEtYW9zPWZhZGUtdXAtbGVmdF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMHB4LDEwMHB4LDApfVtkYXRhLWFvcz1mYWRlLWRvd24tcmlnaHRde3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwcHgsLTEwMHB4LDApfVtkYXRhLWFvcz1mYWRlLWRvd24tbGVmdF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMHB4LC0xMDBweCwwKX1bZGF0YS1hb3NePXpvb21dW2RhdGEtYW9zXj16b29tXXtvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5LHRyYW5zZm9ybX1bZGF0YS1hb3NePXpvb21dW2RhdGEtYW9zXj16b29tXS5hb3MtYW5pbWF0ZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGUoMSl9W2RhdGEtYW9zPXpvb20taW5de3RyYW5zZm9ybTpzY2FsZSguNil9W2RhdGEtYW9zPXpvb20taW4tdXBde3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMHB4LDApIHNjYWxlKC42KX1bZGF0YS1hb3M9em9vbS1pbi1kb3duXXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwcHgsMCkgc2NhbGUoLjYpfVtkYXRhLWFvcz16b29tLWluLXJpZ2h0XXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMHB4LDAsMCkgc2NhbGUoLjYpfVtkYXRhLWFvcz16b29tLWluLWxlZnRde3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDBweCwwLDApIHNjYWxlKC42KX1bZGF0YS1hb3M9em9vbS1vdXRde3RyYW5zZm9ybTpzY2FsZSgxLjIpfVtkYXRhLWFvcz16b29tLW91dC11cF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwcHgsMCkgc2NhbGUoMS4yKX1bZGF0YS1hb3M9em9vbS1vdXQtZG93bl17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMHB4LDApIHNjYWxlKDEuMil9W2RhdGEtYW9zPXpvb20tb3V0LXJpZ2h0XXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMHB4LDAsMCkgc2NhbGUoMS4yKX1bZGF0YS1hb3M9em9vbS1vdXQtbGVmdF17dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMHB4LDAsMCkgc2NhbGUoMS4yKX1bZGF0YS1hb3NePXNsaWRlXVtkYXRhLWFvc149c2xpZGVde3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfVtkYXRhLWFvc149c2xpZGVdW2RhdGEtYW9zXj1zbGlkZV0uYW9zLWFuaW1hdGV7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9W2RhdGEtYW9zPXNsaWRlLXVwXXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfVtkYXRhLWFvcz1zbGlkZS1kb3duXXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX1bZGF0YS1hb3M9c2xpZGUtcmlnaHRde3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfVtkYXRhLWFvcz1zbGlkZS1sZWZ0XXt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfVtkYXRhLWFvc149ZmxpcF1bZGF0YS1hb3NePWZsaXBde2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtfVtkYXRhLWFvcz1mbGlwLWxlZnRde3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgyNTAwcHgpIHJvdGF0ZVkoLTEwMGRlZyl9W2RhdGEtYW9zPWZsaXAtbGVmdF0uYW9zLWFuaW1hdGV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDI1MDBweCkgcm90YXRlWSgwKX1bZGF0YS1hb3M9ZmxpcC1yaWdodF17dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDI1MDBweCkgcm90YXRlWSgxMDBkZWcpfVtkYXRhLWFvcz1mbGlwLXJpZ2h0XS5hb3MtYW5pbWF0ZXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMjUwMHB4KSByb3RhdGVZKDApfVtkYXRhLWFvcz1mbGlwLXVwXXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMjUwMHB4KSByb3RhdGVYKC0xMDBkZWcpfVtkYXRhLWFvcz1mbGlwLXVwXS5hb3MtYW5pbWF0ZXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMjUwMHB4KSByb3RhdGVYKDApfVtkYXRhLWFvcz1mbGlwLWRvd25de3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgyNTAwcHgpIHJvdGF0ZVgoMTAwZGVnKX1bZGF0YS1hb3M9ZmxpcC1kb3duXS5hb3MtYW5pbWF0ZXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMjUwMHB4KSByb3RhdGVYKDApfQ=="}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/trustpilot-reviews/review/assets/js/trustBoxScript.min.js?ver=1.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.814Z","timestamp":1785145403814,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/trustpilot-reviews/review/assets/js/trustBoxScript.min.js?ver=1.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-40e\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1038,"size_decoded":584,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (990)","md5":"f55b4acc208912f1bdddb6c5c421f3db","sha1":"4e521c3de58da916caea37955018117321f8bc12","sha256":"5ba289dfbf51172e3319f61ad19e0fa4380b8eac16f38ff29c0370b964c286e4","sha512":"0713b983b4cd752ece54fff94989b96e12ac5f375d86cdf651760288eb8fa33cf44045f806ce9455700d59256c5e2c71ff3644b10111926864e6675de91eab70","ssdeep":"","tlshash":"ab1197e95c55fb949ac10274e45a07882b1ea8053033f4bc6c7a8ab074e468d31e2f5f","first_seen":"2023-03-07T12:03:30Z","last_seen":"2026-08-07T21:20:45.678079Z","times_seen":1237,"resource_available":true,"data":"ZnVuY3Rpb24gYWRkTmFtZXNBbmRTa3VzVG9UcnVzdGJveGVzKCl7Y29uc3QgdD10cnVzdGJveF9zZXR0aW5ncy5za3V8fCIiLHM9dHJ1c3Rib3hfc2V0dGluZ3MubmFtZXx8IiIsbz1bdF07Zm9yKHZhciBlIGluIHRydXN0cGlsb3RfdHJ1c3Rib3hfc2V0dGluZ3MudHJ1c3Rib3hlcyl0cnVzdHBpbG90X3RydXN0Ym94X3NldHRpbmdzLnRydXN0Ym94ZXNbZV0uc2t1PW8uam9pbigiLCIpLHRydXN0cGlsb3RfdHJ1c3Rib3hfc2V0dGluZ3MudHJ1c3Rib3hlc1tlXS5uYW1lPXN9ZnVuY3Rpb24gcmVuZGVyVHJ1c3Rib3hlcygpe2NvbnN0IHQ9dHJ1c3Rib3hfc2V0dGluZ3MucGFnZXx8IiI7InByb2R1Y3QiPT09dCYmYWRkTmFtZXNBbmRTa3VzVG9UcnVzdGJveGVzKCksdHJ1c3RwaWxvdF90cnVzdGJveF9zZXR0aW5ncy50cnVzdGJveGVzPXRydXN0cGlsb3RfdHJ1c3Rib3hfc2V0dGluZ3MudHJ1c3Rib3hlcy5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHQ9PT1zLnBhZ2V8fHRyaW1UcmFpbGluZ1NsYXNoZXMocy5wYWdlKT09PXRyaW1UcmFpbGluZ1NsYXNoZXMobG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lKXx8cy5wYWdlPT09YnRvYShsb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWUpLnRvTG93ZXJDYXNlKCl8fHMucGFnZT09PWJ0b2EodHJpbVRyYWlsaW5nU2xhc2hlcyhsb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWUpKS50b0xvd2VyQ2FzZSgpfSksImNvbXBsZXRlIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57dHAoInRydXN0Qm94Iix0cnVzdHBpbG90X3RydXN0Ym94X3NldHRpbmdzKX0pOnRwKCJ0cnVzdEJveCIsdHJ1c3RwaWxvdF90cnVzdGJveF9zZXR0aW5ncyl9ZnVuY3Rpb24gdHJpbVRyYWlsaW5nU2xhc2hlcyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5yZXBsYWNlKC9cLyskLywiIik6dH1yZW5kZXJUcnVzdGJveGVzKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXRydXN0Qm94U2NyaXB0Lm1pbi5qcy5tYXAK"}},"time_used":422,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":422,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/basic.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.844Z","timestamp":1785145403844,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/basic.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-bea3\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":48803,"size_decoded":6952,"mime_type":"text/css","magic":"ASCII text, with very long lines (48803), with no line terminators","md5":"532c05331e4bc129dcac12b1329e3318","sha1":"2562fc35ee6aca2cb1a37bc8996f146589fc1a6b","sha256":"7165002ee2e1659028ff9496e4786007473e379c8beb174bfc4e4b2a4ed715f4","sha512":"3031577d30bfb1158d765674145adbdb5f5227f33d5d29c66238e11d2122f5d9c626a143bad8da411e294c63e150d4cecc419fb81782deebc966e34ae8dfd05f","ssdeep":"768:2gP2z6tv2N+i+igPzb+bMVodIjxfHQwQwj6ScJg5uNwKa620u4awPcC+sACw+eJt:2SIQ1GUFl68jCa","tlshash":"2e23871667a1211d61bb863da3ced05a2330947deb853edde7c9b93fd3a44621321b2c","first_seen":"2026-07-27T07:14:06.830798Z","last_seen":"2026-07-27T14:04:41.094125Z","times_seen":5,"resource_available":false,"data":"Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBmaWVsZHNldCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGxlZ2VuZHtiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZzowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgZmllbGRzZXR7Ym9yZGVyOm5vbmU7ZGlzcGxheTpibG9jazttYXJnaW46MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGxlZ2VuZHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5Omdmb3JtLWljb25zLXRoZW1lO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC4uLy4uLy4uL2ZvbnRzL2dmb3JtLWljb25zLXRoZW1lLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uLy4uL2ZvbnRzL2dmb3JtLWljb25zLXRoZW1lLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCguLi8uLi8uLi9mb250cy9nZm9ybS1pY29ucy10aGVtZS53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLi4vLi4vLi4vZm9udHMvZ2Zvcm0taWNvbnMtdGhlbWUuc3ZnKSBmb3JtYXQoInN2ZyIpfS5nZm9ybS1pY29ue3NwZWFrOm5ldmVyO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7Zm9udC1mYW1pbHk6Z2Zvcm0taWNvbnMtdGhlbWUhaW1wb3J0YW50O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7dGV4dC10cmFuc2Zvcm06bm9uZX0uZ2Zvcm0taWNvbi0tbGVmdC1hcnJvdzpiZWZvcmV7Y29sb3I6IzJmNDA1NDtjb250ZW50OiJcZTkxMCJ9Lmdmb3JtLWljb24tLXJpZ2h0LWFycm93OmJlZm9yZXtjb2xvcjojMmY0MDU0O2NvbnRlbnQ6IlxlOTFiIn0uZ2Zvcm0taWNvbi0tY2lyY2xlLWVycm9yOmJlZm9yZXtjb250ZW50OiJcZTkxYSJ9Lmdmb3JtLWljb24tLWNsb3NlLXNtYWxsOmJlZm9yZXtjb250ZW50OiJcZTkwNSJ9Lmdmb3JtLWljb24tLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxlOTAwIn0uZ2Zvcm0taWNvbi0tdmVyaWZpZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlOTAxIn0uZ2Zvcm0taWNvbi0tY2lyY2xlLWNsb3NlOmJlZm9yZXtjb250ZW50OiJcZTkwMyJ9Lmdmb3JtLWljb24tLWNsb3NlLWJpZzpiZWZvcmV7Y29udGVudDoiXGU5MDQifS5nZm9ybS1pY29uLS1kb3duLWFycm93OmJlZm9yZXtjb250ZW50OiJcZTkwNiJ9Lmdmb3JtLWljb24tLWZvcm1hdC1ib2xkOmJlZm9yZXtjb250ZW50OiJcZTkwNyJ9Lmdmb3JtLWljb24tLWZvcm1hdC1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxlOTA4In0uZ2Zvcm0taWNvbi0tZm9ybWF0LWxpc3QtYnVsbGV0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlOTA5In0uZ2Zvcm0taWNvbi0tZm9ybWF0LWxpc3QtbnVtYmVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlOTBhIn0uZ2Zvcm0taWNvbi0taW5zZXJ0LWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxlOTBiIn0uZ2Zvcm0taWNvbi0tbGluZTpiZWZvcmV7Y29udGVudDoiXGU5MGMifS5nZm9ybS1pY29uLS1wYXNzd29yZC1leWU6YmVmb3Jle2NvbnRlbnQ6IlxlOTBkIn0uZ2Zvcm0taWNvbi0tcGFzc3dvcmQtZXllLWNsb3NlZDpiZWZvcmV7Y29udGVudDoiXGU5MGUifS5nZm9ybS1pY29uLS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZTkwZiJ9Lmdmb3JtLWljb24tLXNjaGVkdWxlOmJlZm9yZXtjb250ZW50OiJcZTkxMSJ9Lmdmb3JtLWljb24tLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZTkxMiJ9Lmdmb3JtLWljb24tLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGU5MTMifS5nZm9ybS1pY29uLS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZTkxNCJ9Lmdmb3JtLWljb24tLXN0YXItYm9yZGVyOmJlZm9yZXtjb250ZW50OiJcZTkxNSJ9Lmdmb3JtLWljb24tLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGU5MTYifS5nZm9ybS1pY29uLS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU5MTcifS5nZm9ybS1pY29uLS11bmRvOmJlZm9yZXtjb250ZW50OiJcZTkxOCJ9Lmdmb3JtLWljb24tLXVuZm9sZC1tb3JlOmJlZm9yZXtjb250ZW50OiJcZTkxOSJ9Lmdmb3JtLWljb24tLWNyZWF0ZTpiZWZvcmV7Y29udGVudDoiXGU5MWMifS5nZm9ybS1pY29uLS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxlOTFkIn0uZ2Zvcm0taWNvbi0tY2lyY2xlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTkwMiJ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm0tdWwtcmVzZXR7bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtLXRleHQtaW5wdXQtcmVzZXQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dC5nZm9ybS10ZXh0LWlucHV0LXJlc2V0LGJvZHlbY2xhc3MqPWF2YWRhXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPWZpbGVdKS5nZm9ybS10ZXh0LWlucHV0LXJlc2V0e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O291dGxpbmU6bm9uZTtwYWRkaW5nOmluaGVyaXR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZHJvcF9hcmVhe2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDIpO2JvcmRlcjoxcHggZGFzaGVkICNjY2M7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZzozMnB4O3RleHQtYWxpZ246Y2VudGVyfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Ryb3BfaW5zdHJ1Y3Rpb25ze2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZGVsZXRlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2RlbGV0ZV9maWxle2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9kZWxldGVfZmlsZXstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfZmlsZXVwbG9hZF9maWxlc2l6ZXtwYWRkaW5nOjAgNnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UgdWx7bWFyZ2luOjE2cHggMDtwYWRkaW5nLWxlZnQ6MjRweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlIHVsOmVtcHR5e2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfcHJldmlld3ttYXJnaW46MTZweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpbGV1cGxvYWRfcnVsZXN7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX3Bhc3N3b3JkPnNwYW57cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fc2hvd19wYXNzd29yZDpmb2N1c3tvdXRsaW5lOm5vbmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fc2hvd19wYXNzd29yZHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEwMCU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIwcHg7dG9wOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucGFzc3dvcmRfaW5wdXRfY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3Roe2JhY2tncm91bmQtY29sb3I6I2VlZTtib3JkZXI6c29saWQgI2RkZDtib3JkZXItd2lkdGg6MXB4IDFweCAzcHg7bWFyZ2luLXRvcDo4cHg7cGFkZGluZzo4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLm1pc21hdGNoLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aC5zaG9ydHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmEwYTA7Ym9yZGVyLWJvdHRvbTozcHggc29saWQ7Ym9yZGVyLWNvbG9yOiNmMDQwNDB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLmJhZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmI3OGM7Ym9yZGVyLWJvdHRvbTozcHggc29saWQ7Ym9yZGVyLWNvbG9yOiNmZjg1M2N9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLmdvb2R7YmFja2dyb3VuZC1jb2xvcjojZmZlYzhiO2JvcmRlci1ib3R0b206M3B4IHNvbGlkO2JvcmRlci1jb2xvcjojZmMwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aC5zdHJvbmd7YmFja2dyb3VuZC1jb2xvcjojYzNmZjg4O2JvcmRlci1ib3R0b206M3B4IHNvbGlkO2JvcmRlci1jb2xvcjojOGRmZjFjfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGh7bWFyZ2luLXRvcDoxNnB4fS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7Ym94LXNoYWRvdzowIDFweCA1cHggcmdiYSgwLDAsMCwuMSk7ZGlzcGxheTpub25lO21hcmdpbjoyLjRweDtwYWRkaW5nOjhweH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyW3N0eWxlXXt6LWluZGV4Ojk5OTkhaW1wb3J0YW50fS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO21hcmdpbjowIC04cHggOHB4O3BhZGRpbmc6MCA4cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCwuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXZ7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGV9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZSwuZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjE4ZW0gLjE4ZW0gMCAwO2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi41NWVtO2xlZnQ6LjE1ZW07cG9zaXRpb246cmVsYXRpdmU7dG9wOi4zZW07dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6LjU1ZW19LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IC51aS1pY29uLC5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiAudWktaWNvbntkaXNwbGF5Om5vbmV9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2e2xlZnQ6MTZweH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHR7cmlnaHQ6MTZweH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQ6YmVmb3Jle2xlZnQ6MDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxle3RleHQtYWxpZ246Y2VudGVyfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0e21hcmdpbjowIDRweH0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyIHRhYmxle2JvcmRlci1zcGFjaW5nOjA7bWFyZ2luOjB9LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlciB0aGVhZHtmb250LXNpemU6Ljg1ZW19LmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlciB0ZHtwYWRkaW5nOjA7d2lkdGg6MzUuMnB4fS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgYS51aS1zdGF0ZS1kZWZhdWx0e2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOiMyMjI7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDozNS4ycHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2lkdGg6MTAwJX0uZ3Jhdml0eS10aGVtZS51aS1kYXRlcGlja2VyIGEudWktc3RhdGUtZGVmYXVsdDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5ncmF2aXR5LXRoZW1lLnVpLWRhdGVwaWNrZXIgYS51aS1zdGF0ZS1hY3RpdmUsLmdyYXZpdHktdGhlbWUudWktZGF0ZXBpY2tlciBhLnVpLXN0YXRlLWFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzNDk4ZGI7Y29sb3I6I2ZmZn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIDo6LW1zLXJldmVhbHtkaXNwbGF5Om5vbmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIsYm9keSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lcixib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyLGJvZHkgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXJ7ZGlzcGxheTpub25lIWltcG9ydGFudDtsZWZ0Oi05MDAwcHg7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjE2cHg7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyICp7Ym94LXNpemluZzpib3JkZXItYm94fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1kcm9we2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNhYWE7Ym9yZGVyLXRvcDowO2JveC1zaGFkb3c6MCA0cHggNXB4IHJnYmEoMCwwLDAsLjE1KTtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7d2lkdGg6MTAwJTt6LWluZGV4OjEwMTB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tZHJvcHtkaXNwbGF5OmJsb2NrfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgYXtjdXJzb3I6cG9pbnRlcn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tc2luZ2xlIC5ncm91cC1uYW1lLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLnNlYXJjaC1jaG9pY2UgLmdyb3VwLW5hbWV7Y29sb3I6Izk5OTtmb250LXdlaWdodDo0MDA7bWFyZ2luLXJpZ2h0OjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXNpbmdsZSAuZ3JvdXAtbmFtZTphZnRlciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyIC5zZWFyY2gtY2hvaWNlIC5ncm91cC1uYW1lOmFmdGVye2NvbnRlbnQ6IjoiO3BhZGRpbmctbGVmdDoycHg7dmVydGljYWwtYWxpZ246dG9wfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KCNmZmYgMjAlLCNmNmY2ZjYgNTAlLCNlZWUgNTIlLCNmNGY0ZjQpO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6NXB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDNweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKTtjb2xvcjojNDQ0O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6MjRweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDAgMCA4cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2hpdGUtc3BhY2U6bm93cmFwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGlucHV0W3R5cGU9dGV4dF17Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1kZWZhdWx0e2NvbG9yOiM5OTl9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgc3BhbntkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjM4LjRweDttYXJnaW4tcmlnaHQ6MjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUtd2l0aC1kZXNlbGVjdCBzcGFue21hcmdpbi1yaWdodDozNnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnJ7YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vbGVnYWN5L2Nzcy9jaG9zZW4tc3ByaXRlLnBuZykgLTQycHggMXB4IG5vLXJlcGVhdDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxcHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjZweDt0b3A6NnB4O3dpZHRoOjEycHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgYWJicjpob3ZlciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1zaW5nbGUgYWJicjpob3ZlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MnB4IC0xMHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdntkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MThweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYntiYWNrZ3JvdW5kOnVybCguLi8uLi8uLi9sZWdhY3kvY3NzL2Nob3Nlbi1zcHJpdGUucG5nKSBuby1yZXBlYXQgMCAxMHB4O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaHttYXJnaW46MDtwYWRkaW5nOjNweCA0cHg7cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm93cmFwO3otaW5kZXg6MTAxMH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRde2JhY2tncm91bmQ6dXJsKC4uLy4uLy4uL2xlZ2FjeS9jc3MvY2hvc2VuLXNwcml0ZS5wbmcpIG5vLXJlcGVhdCAxMDAlIC0yMHB4O2JvcmRlcjoxcHggc29saWQgI2FhYTtib3JkZXItcmFkaXVzOjA7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MWVtO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MXB4IDA7b3V0bGluZTowO3BhZGRpbmc6NHB4IDIwcHggNHB4IDVweDt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tZHJvcHtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyLXJhZGl1czowIDAgNHB4IDRweDttYXJnaW4tdG9wOi0xcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUtbm9zZWFyY2ggLmNob3Nlbi1zZWFyY2h7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7Y29sb3I6IzQ0NDttYXJnaW46MCA0cHggNHB4IDA7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87cGFkZGluZzowIDAgMCA0cHg7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGl7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7ZGlzcGxheTpub25lO2xpbmUtaGVpZ2h0OjE1cHg7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6NXB4IDZweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5hY3RpdmUtcmVzdWx0e2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6bGlzdC1pdGVtfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmRpc2FibGVkLXJlc3VsdHtjb2xvcjojY2NjO2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6bGlzdC1pdGVtfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6IzM4NzVkNztiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjMzg3NWQ3IDIwJSwjMmE2MmJjIDkwJSk7Y29sb3I6I2ZmZn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5uby1yZXN1bHRze2JhY2tncm91bmQ6I2Y0ZjRmNDtjb2xvcjojNzc3O2Rpc3BsYXk6bGlzdC1pdGVtfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLmdyb3VwLXJlc3VsdHtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5Omxpc3QtaXRlbTtmb250LXdlaWdodDo3MDB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuZ3JvdXAtb3B0aW9ue3BhZGRpbmctbGVmdDoxNXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpIGVte2ZvbnQtc3R5bGU6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXN7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2FhYTtjdXJzb3I6dGV4dDtoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo4cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGR7bWFyZ2luOjA7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vd3JhcH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojOTk5O2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEwMCU7aGVpZ2h0OjI1cHg7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbjoxcHggMDtvdXRsaW5lOjA7cGFkZGluZzowO3dpZHRoOjI1cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZXtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7YmFja2dyb3VuZC1jb2xvcjojZWVlO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KCNmNGY0ZjQgMjAlLCNmMGYwZjAgNTAlLCNlOGU4ZTggNTIlLCNlZWUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtc2l6ZToxMDAlIDE5cHg7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDJweCAjZmZmLDAgMXB4IDAgcmdiYSgwLDAsMCwuMDUpO2NvbG9yOiMzMzM7Y3Vyc29yOmRlZmF1bHQ7bGluZS1oZWlnaHQ6MTNweDttYXJnaW46M3B4IDVweCAzcHggMDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjNweCAyMHB4IDNweCA1cHg7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSBzcGFue3dvcmQtd3JhcDpicmVhay13b3JkfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2V7YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vbGVnYWN5L2Nzcy9jaG9zZW4tc3ByaXRlLnBuZykgLTQycHggMXB4IG5vLXJlcGVhdDtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxcHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6M3B4O3RvcDo0cHg7d2lkdGg6MTJweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246LTQycHggLTEwcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlNGU0ZTQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoI2Y0ZjRmNCAyMCUsI2YwZjBmMCA1MCUsI2U4ZThlOCA1MiUsI2VlZSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiM2NjY7cGFkZGluZy1yaWdodDo1cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOiNkNGQ0ZDR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZS1mb2N1cyAuc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MnB4IC0xMHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1yZXN1bHRze21hcmdpbjowO3BhZGRpbmc6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tZHJvcCAucmVzdWx0LXNlbGVjdGVke2NvbG9yOiNjY2M7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpsaXN0LWl0ZW19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUgLmNob3Nlbi1zaW5nbGV7Ym9yZGVyOjFweCBzb2xpZCAjNTg5N2ZiO2JveC1zaGFkb3c6MCAwIDVweCByZ2JhKDAsMCwwLC4zKX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KCNlZWUgMjAlLCNmZmYgODAlKTtib3JkZXI6MXB4IHNvbGlkICNhYWE7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwICNmZmZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXZ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItbGVmdDpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItYWN0aXZlLmNob3Nlbi13aXRoLWRyb3AgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMThweCAxMHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM1ODk3ZmI7Ym94LXNoYWRvdzowIDAgNXB4IHJnYmEoMCwwLDAsLjMpfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XXtjb2xvcjojMjIyIWltcG9ydGFudH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQ7b3BhY2l0eTouNSFpbXBvcnRhbnR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWRpc2FibGVkIC5jaG9zZW4tY2hvaWNlcyAuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tZGlzYWJsZWQgLmNob3Nlbi1zaW5nbGV7Y3Vyc29yOmRlZmF1bHR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bHt0ZXh0LWFsaWduOnJpZ2h0fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGV7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjAgOHB4IDAgMH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIHNwYW57ZGlyZWN0aW9uOnJ0bDttYXJnaW4tbGVmdDoyNnB4O21hcmdpbi1yaWdodDowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1ydGwgLmNob3Nlbi1zaW5nbGUtd2l0aC1kZXNlbGVjdCBzcGFue21hcmdpbi1sZWZ0OjM4cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bCAuY2hvc2VuLXNpbmdsZSBkaXZ7bGVmdDozcHg7cmlnaHQ6YXV0b30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tc2luZ2xlIGFiYnJ7bGVmdDoyNnB4O3JpZ2h0OmF1dG99Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGl7ZmxvYXQ6cmlnaHR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bCAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWZpZWxkIGlucHV0W3R5cGU9dGV4dF17ZGlyZWN0aW9uOnJ0bH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNle21hcmdpbjozcHggNXB4IDNweCAwO3BhZGRpbmc6M3B4IDVweCAzcHggMTlweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3Nle2xlZnQ6NHB4O3JpZ2h0OmF1dG99Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXJlc3VsdHN7bWFyZ2luOjAgMCA0cHggNHB4O3BhZGRpbmc6MCA0cHggMCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1ydGwgLmNob3Nlbi1yZXN1bHRzIGxpLmdyb3VwLW9wdGlvbntwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjE1cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLXJ0bC5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xlIGRpdntib3JkZXItcmlnaHQ6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17YmFja2dyb3VuZDp1cmwoLi4vLi4vLi4vbGVnYWN5L2Nzcy9jaG9zZW4tc3ByaXRlLnBuZykgbm8tcmVwZWF0IC0zMHB4IC0yMHB4O2RpcmVjdGlvbjpydGw7cGFkZGluZzo0cHggNXB4IDRweCAyMHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1ydGwuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgZGl2IGJ7YmFja2dyb3VuZC1wb3NpdGlvbjo2cHggMnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1ydGwuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUuY2hvc2VuLXdpdGgtZHJvcCAuY2hvc2VuLXNpbmdsZSBkaXYgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMnB4IDJweH1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS41KSxvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjEuNWRwcHgpLG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246MTQ0ZHBpKXsuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cy1zY3JvbGwtZG93biBzcGFuLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzLXNjcm9sbC11cCBzcGFuLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIC5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgYWJiciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYiwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tcnRsIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vLi4vLi4vbGVnYWN5L2Nzcy9jaG9zZW4tc3ByaXRlQDJ4LnBuZykhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjUycHggMzdweCFpbXBvcnRhbnR9fWJvZHkgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lciBhLmNob3Nlbi1zaW5nbGV7Ym9yZGVyLXJhZGl1czppbmhlcml0fWJvZHkgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSB1bC5jaG9zZW4tcmVzdWx0cyBsaXtsaW5lLWhlaWdodDppbmhlcml0fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo2NDFweCl7Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9ZmlsZV0pe2xpbmUtaGVpZ2h0OjI7bWluLWhlaWdodDozMnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdGV4dGFyZWF7bGluZS1oZWlnaHQ6MS41fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGVbc3R5bGVde3dpZHRoOjEwMCUhaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xle2hlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjIuOH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNpbmdsZSBkaXYgYntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MTBweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGRpdi5jaG9zZW4tY29udGFpbmVyLmNob3Nlbi1jb250YWluZXItbXVsdGlbc3R5bGVde3dpZHRoOjEwMCUhaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSB1bC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSB1bC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGR7ZmxvYXQ6bm9uZTtsaW5lLWhlaWdodDppbmhlcml0O3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci5jaG9zZW4tY29udGFpbmVyLW11bHRpIHVsLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2Ugc3BhbnttYXJnaW4tYm90dG9tOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZXt0b3A6Y2FsYyg1MCUgLSA2cHgpfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmNob3Nlbi1jb250YWluZXIgc3Bhbjpub3QoLmdpbnB1dF9wcmljZSl7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGxpLmZpZWxkX3N1YmxhYmVsX2JlbG93IC5naW5wdXRfY29tcGxleHttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdWwuZ2ZpZWxkX2NoZWNrYm94IGxpIGxhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgdWwuZ2ZpZWxkX3JhZGlvIGxpIGxhYmVse2N1cnNvcjpwb2ludGVyO3dpZHRoOjg1JX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0MXB4KXtib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0Lm1lZGl1bS5nZmllbGRfc2VsZWN0K2Rpdi5jaG9zZW4tY29udGFpbmVyLW11bHRpW3N0eWxlXSxib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0Lm1lZGl1bS5nZmllbGRfc2VsZWN0K2Rpdi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZVtzdHlsZV17d2lkdGg6Y2FsYyg1MCUgLSA4cHgpIWltcG9ydGFudH1ib2R5IC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgc2VsZWN0LmxhcmdlLmdmaWVsZF9zZWxlY3QrZGl2LmNob3Nlbi1jb250YWluZXItbXVsdGlbc3R5bGVdLGJvZHkgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBzZWxlY3QubGFyZ2UuZ2ZpZWxkX3NlbGVjdCtkaXYuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGVbc3R5bGVde3dpZHRoOjEwMCUhaW1wb3J0YW50fWJvZHkgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBzZWxlY3Quc21hbGwuZ2ZpZWxkX3NlbGVjdCtkaXYuY2hvc2VuLWNvbnRhaW5lci1tdWx0aVtzdHlsZV0sYm9keSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIHNlbGVjdC5zbWFsbC5nZmllbGRfc2VsZWN0K2Rpdi5jaG9zZW4tY29udGFpbmVyLXNpbmdsZVtzdHlsZV17d2lkdGg6MjUlIWltcG9ydGFudH19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfaW52aXNpYmxlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF92aXNpYmlsaXR5X2hpZGRlbntsZWZ0Oi05OTk5cHg7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW59Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfaGlkZV9jaGFybGVmdCBkaXYuY2hhcmxlZnR7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9oaWRkZW4sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1faGlkZGVue2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5oaWRkZW5fbGFiZWwgLmdmaWVsZF9sYWJlbCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5oaWRkZW5fc3ViX2xhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnNjcmVlbi1yZWFkZXItdGV4dHtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTt3b3JkLXdyYXA6bm9ybWFsIWltcG9ydGFudDtib3JkZXI6MDstd2Via2l0LWNsaXAtcGF0aDppbnNldCg1MCUpO2NsaXAtcGF0aDppbnNldCg1MCUpO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBidXR0b24uc2NyZWVuLXJlYWRlci10ZXh0OmZvY3Vze2NsaXA6YXV0bztib3JkZXI6MDstd2Via2l0LWNsaXAtcGF0aDpub25lO2NsaXAtcGF0aDpub25lO2hlaWdodDphdXRvO21hcmdpbjowO3Bvc2l0aW9uOnN0YXRpYyFpbXBvcnRhbnQ7d2lkdGg6YXV0b31AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjQxcHgpey5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0XzJjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF8yY29sIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0XzNjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF8zY29sIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0XzRjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF80Y29sIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0XzVjb2wgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF81Y29sIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSwxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX3JhZGlve2Rpc3BsYXk6YmxvY2t9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmX2xpc3RfaW5saW5lIC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmX2xpc3RfaW5saW5lIC5nZmllbGRfcmFkaW8gLmdjaG9pY2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDoxNnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX2NoZWNrYm94IC5nY2hvaWNlIGxhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZl9saXN0X2lubGluZSAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNlIGxhYmVse21heC13aWR0aDpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX2xpc3RfMmNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX2xpc3RfMmNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX3JhZGlve2dyaWQtY29sdW1uLWdhcDoycmVtOy1tb3otY29sdW1uLWNvdW50OjI7Y29sdW1uLWNvdW50OjI7ZGlzcGxheTpibG9ja30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9saXN0XzNjb2xfdmVydGljYWwgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9saXN0XzNjb2xfdmVydGljYWwgLmdmaWVsZF9yYWRpb3tncmlkLWNvbHVtbi1nYXA6MnJlbTstbW96LWNvbHVtbi1jb3VudDozO2NvbHVtbi1jb3VudDozO2Rpc3BsYXk6YmxvY2t9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfbGlzdF80Y29sX3ZlcnRpY2FsIC5nZmllbGRfY2hlY2tib3gsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfbGlzdF80Y29sX3ZlcnRpY2FsIC5nZmllbGRfcmFkaW97Z3JpZC1jb2x1bW4tZ2FwOjJyZW07LW1vei1jb2x1bW4tY291bnQ6NDtjb2x1bW4tY291bnQ6NDtkaXNwbGF5OmJsb2NrfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX2xpc3RfNWNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX2NoZWNrYm94LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX2xpc3RfNWNvbF92ZXJ0aWNhbCAuZ2ZpZWxkX3JhZGlve2dyaWQtY29sdW1uLWdhcDoycmVtOy1tb3otY29sdW1uLWNvdW50OjU7Y29sdW1uLWNvdW50OjU7ZGlzcGxheTpibG9ja30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMjUgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMjUgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXtoZWlnaHQ6MjVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfNTAgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfNTAgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXtoZWlnaHQ6NTBweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfNzUgLmdmaWVsZF9jaGVja2JveCAuZ2Nob2ljZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfNzUgLmdmaWVsZF9yYWRpbyAuZ2Nob2ljZXtoZWlnaHQ6NzVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMTAwIC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzEwMCAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNle2hlaWdodDoxMDBweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMTI1IC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzEyNSAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNle2hlaWdodDoxMjVweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZfbGlzdF9oZWlnaHRfMTUwIC5nZmllbGRfY2hlY2tib3ggLmdjaG9pY2UsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmX2xpc3RfaGVpZ2h0XzE1MCAuZ2ZpZWxkX3JhZGlvIC5nY2hvaWNle2hlaWdodDoxNTBweH19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZfaGlkZV9hbXBtIC5nZmllbGRfdGltZV9hbXBte2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ3NlY3Rpb24uZ2Zfc2Nyb2xsX3RleHR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2NjYztoZWlnaHQ6MjQwcHg7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTpzY3JvbGw7cGFkZGluZzozMnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdzZWN0aW9uLmdmX3Njcm9sbF90ZXh0IC5nc2VjdGlvbl90aXRsZXttYXJnaW4tdG9wOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2JsdWUsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2dyYXksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2dyZWVuLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGRfaHRtbC5nZl9hbGVydF9yZWQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X3llbGxvd3tib3JkZXItcmFkaXVzOjNweDttYXJnaW46MjBweCAwIWltcG9ydGFudDtwYWRkaW5nOjIwcHghaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGRfaHRtbC5nZl9hbGVydF9ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiNjYmVjYTA7Ym9yZGVyOjFweCBzb2xpZCAjOTdiNDhhO2NvbG9yOiMwMzA7dGV4dC1zaGFkb3c6I2RmYiAxcHggMXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGRfaHRtbC5nZl9hbGVydF9yZWR7YmFja2dyb3VuZC1jb2xvcjojZmFmMmY1O2JvcmRlcjoxcHggc29saWQgI2NmYWRiMztjb2xvcjojODMyNTI1O3RleHQtc2hhZG93OiNmZmYgMXB4IDFweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfeWVsbG93e2JhY2tncm91bmQtY29sb3I6I2ZmZmJjYztib3JkZXI6MXB4IHNvbGlkICNlNmRiNTU7Y29sb3I6IzIyMjt0ZXh0LXNoYWRvdzojZmNmYWVhIDFweCAxcHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZF9odG1sLmdmX2FsZXJ0X2dyYXl7YmFja2dyb3VuZC1jb2xvcjojZWVlO2JvcmRlcjoxcHggc29saWQgI2NjYztjb2xvcjojNDI0MjQyO3RleHQtc2hhZG93OiNmZmYgMXB4IDFweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkX2h0bWwuZ2ZfYWxlcnRfYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkMWU0ZjM7Ym9yZGVyOjFweCBzb2xpZCAjYTdjMmU3O2NvbG9yOiMzMTQ0NzU7dGV4dC1zaGFkb3c6I2UwZjFmZiAxcHggMXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFse21hcmdpbjowIGF1dG87d2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2Zvb3Rlci50b3BfbGFiZWx7ZGlzcGxheTp0YWJsZS1jZWxsO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHl7bWF4LXdpZHRoOjc1JTt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5IC50b3BfbGFiZWx7ZGlzcGxheTp0YWJsZTt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5IC50b3BfbGFiZWwgLmdmaWVsZHtkaXNwbGF5OnRhYmxlLWNlbGw7aGVpZ2h0OmF1dG87cGFkZGluZy1yaWdodDoxZW19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHkgLnRvcF9sYWJlbCAuZ2ZpZWxkIC5sYXJnZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLm1lZGl1bSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsIC5nZmllbGQgLnNtYWxse3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmb3JtX2JvZHkgLnRvcF9sYWJlbCAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IC5nY2hvaWNlLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9ib2R5IC50b3BfbGFiZWwgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyAuZ2Nob2ljZXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6LjVlbX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsLmZvcm1fc3VibGFiZWxfYWJvdmUgLmdmaWVsZCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fYm9keSAudG9wX2xhYmVsLmZvcm1fc3VibGFiZWxfYmVsb3cgLmdmaWVsZHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmaWVsZCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2lucHV0X2NvbnRhaW5lcnttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9mb290ZXIudG9wX2xhYmVse21hcmdpbjowO21heC13aWR0aDoyNSU7cGFkZGluZzowO3RleHQtYWxpZ246bGVmdDt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmX3NpbXBsZV9ob3Jpem9udGFsIC5nZm9ybV9mb290ZXIudG9wX2xhYmVsIGlucHV0W3R5cGU9YnV0dG9uXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbCBpbnB1dFt0eXBlPWltYWdlXSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbCBpbnB1dFt0eXBlPXN1Ym1pdF17aGVpZ2h0OmF1dG99Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmaWVsZF9kZXNjcmlwdGlvbjpub3QoLnZhbGlkYXRpb25fbWVzc2FnZSksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zfc2ltcGxlX2hvcml6b250YWwgLmdmaWVsZF9sYWJlbCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZl9zaW1wbGVfaG9yaXpvbnRhbCAuZ2lucHV0X2NvbXBsZXggbGFiZWx7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2xlZnQ6LTkwMDBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MXB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgYm9keTpub3QoLnJ0bCkgLmdmb3JtX3dyYXBwZXIgZm9ybS5nZl9zaW1wbGVfaG9yaXpvbnRhbCBkaXYuZ2Zvcm1fZm9vdGVyLnRvcF9sYWJlbHt0ZXh0LWFsaWduOmxlZnR9Lmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl9zaW1wbGVfeWVsbG93e2JhY2tncm91bmQtY29sb3I6I2ZmZmJjYztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTZkYjU1O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmRiNTU7Y29sb3I6IzQyNDI0Mjtmb250LXNpemU6MjVweDttYXJnaW46MzBweCAwO21heC13aWR0aDo5OSU7cGFkZGluZzozMnB4fS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fc2ltcGxlX2dyYXl7YmFja2dyb3VuZC1jb2xvcjojZWFlYWVhO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztjb2xvcjojNDI0MjQyO2ZvbnQtc2l6ZToyNXB4O21hcmdpbjozMHB4IDA7bWF4LXdpZHRoOjk5JTtwYWRkaW5nOjMycHh9Lmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl95ZWxsb3dfZ3JhZGllbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmYmQyO2JvcmRlcjoxcHggc29saWQgI2U2ZGI1NTtib3gtc2hhZG93OjAgMCA1cHggaHNsYSg1Niw1NyUsNjklLC43NSk7bWFyZ2luOjMwcHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIuZ2ZfY29uZmlybWF0aW9uX3llbGxvd19ncmFkaWVudCAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2V7YmFja2dyb3VuZDojZmZmY2U1O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2U1IDAsI2ZmZjliZik7YmFja2dyb3VuZC1jb2xvcjojZmZmYmNjO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNmRiNTU7Ym9yZGVyLXRvcDoycHggc29saWQgI2ZmZjtjb2xvcjojNDI0MjQyO2ZvbnQtc2l6ZToyOHB4O21hcmdpbjowO21heC13aWR0aDo5OSU7cGFkZGluZzo0MHB4fS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fZ3JlZW5fZ3JhZGllbnR7YmFja2dyb3VuZC1jb2xvcjojZjFmY2RmO2JvcmRlcjoxcHggc29saWQgI2E3YzM3Yztib3gtc2hhZG93OjAgMCA1cHggcmdiYSg4NiwxMjIsODYsLjQpO21hcmdpbjozMHB4IDA7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl9ncmVlbl9ncmFkaWVudCAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2V7YmFja2dyb3VuZDojZGJmMmI3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZGJmMmI3IDAsI2I0ZDA4OCk7YmFja2dyb3VuZC1jb2xvcjojZmZmYmNjO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNhN2MzN2M7Ym9yZGVyLXRvcDoycHggc29saWQgI2VmZmFkZTtjb2xvcjojMDMwO2ZvbnQtc2l6ZToyOHB4O21hcmdpbjowO21heC13aWR0aDo5OSU7cGFkZGluZzo0MHB4O3RleHQtc2hhZG93OiNkZmIgMXB4IDFweH0uZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIuZ2ZfY29uZmlybWF0aW9uX2dyZWVuX2dyYWRpZW50OmFmdGVyLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fZ3JlZW5fZ3JhZGllbnQ6YmVmb3JlLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25feWVsbG93X2dyYWRpZW50OmFmdGVyLC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25feWVsbG93X2dyYWRpZW50OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjIpO2JvdHRvbToxNXB4O2JveC1zaGFkb3c6MCAxNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7Y29udGVudDoiIjtsZWZ0OjEwcHg7bWF4LXdpZHRoOjQwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6ODAlO3RyYW5zZm9ybTpyb3RhdGUoLTNkZWcpO3dpZHRoOjUwJTt6LWluZGV4Oi0xfS5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlci5nZl9jb25maXJtYXRpb25fZ3JlZW5fZ3JhZGllbnQ6YWZ0ZXIsLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyLmdmX2NvbmZpcm1hdGlvbl95ZWxsb3dfZ3JhZGllbnQ6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjEwcHg7dHJhbnNmb3JtOnJvdGF0ZSgzZGVnKX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgdGV4dGFyZWF7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgdGV4dGFyZWEuc21hbGx7aGVpZ2h0Ojk2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkIHRleHRhcmVhLm1lZGl1bXtoZWlnaHQ6MTkycHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkIHRleHRhcmVhLmxhcmdle2hlaWdodDoyODhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgaW5wdXQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkIHNlbGVjdHttYXgtd2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgaW5wdXQuc21hbGwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkIHNlbGVjdC5zbWFsbHt3aWR0aDpjYWxjKDI1JSAtIDEycHgpfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZCBpbnB1dC5tZWRpdW0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkIHNlbGVjdC5tZWRpdW17d2lkdGg6Y2FsYyg1MCUgLSA4cHgpfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZCBpbnB1dC5sYXJnZSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQgc2VsZWN0Lmxhcmdle3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHN7Z3JpZC1jb2x1bW4tZ2FwOjIlOy1tcy1ncmlkLWNvbHVtbnM6KDFmciAyJSkgWzEyXTtncmlkLXJvdy1nYXA6MTZweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxMiwxZnIpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoYXV0by1maWxsLGF1dG8pO3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxke2dyaWQtY29sdW1uOjEvLTE7bWluLXdpZHRoOjB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtZnVsbHstbXMtZ3JpZC1jb2x1bW4tc3BhbjoxMjtncmlkLWNvbHVtbjpzcGFuIDEyfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGQtLXdpZHRoLWVsZXZlbi10d2VsZnRoc3stbXMtZ3JpZC1jb2x1bW4tc3BhbjoxMTtncmlkLWNvbHVtbjpzcGFuIDExfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGQtLXdpZHRoLWZpdmUtc2l4dGhzey1tcy1ncmlkLWNvbHVtbi1zcGFuOjEwO2dyaWQtY29sdW1uOnNwYW4gMTB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtdGhyZWUtcXVhcnRlcnstbXMtZ3JpZC1jb2x1bW4tc3Bhbjo5O2dyaWQtY29sdW1uOnNwYW4gOX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC10d28tdGhpcmRzey1tcy1ncmlkLWNvbHVtbi1zcGFuOjg7Z3JpZC1jb2x1bW46c3BhbiA4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGQtLXdpZHRoLXNldmVuLXR3ZWxmdGhzey1tcy1ncmlkLWNvbHVtbi1zcGFuOjc7Z3JpZC1jb2x1bW46c3BhbiA3fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGQtLXdpZHRoLWhhbGZ7LW1zLWdyaWQtY29sdW1uLXNwYW46NjtncmlkLWNvbHVtbjpzcGFuIDZ9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtZml2ZS10d2VsZnRoc3stbXMtZ3JpZC1jb2x1bW4tc3Bhbjo1O2dyaWQtY29sdW1uOnNwYW4gNX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC10aGlyZHstbXMtZ3JpZC1jb2x1bW4tc3Bhbjo0O2dyaWQtY29sdW1uOnNwYW4gNH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC1xdWFydGVyey1tcy1ncmlkLWNvbHVtbi1zcGFuOjM7Z3JpZC1jb2x1bW46c3BhbiAzfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZC5nZmllbGQtLXdpZHRoLW9uZS1zaXh0aHstbXMtZ3JpZC1jb2x1bW4tc3BhbjoyO2dyaWQtY29sdW1uOnNwYW4gMn0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC1vbmUtdHdlbGZ0aHstbXMtZ3JpZC1jb2x1bW4tc3BhbjoxO2dyaWQtY29sdW1uOnNwYW4gMX1AbWVkaWEgKG1heC13aWR0aDo2NDBweCl7Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRze2dyaWQtY29sdW1uLWdhcDowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZDpub3QoLmdmaWVsZC0td2lkdGgtZnVsbCl7Z3JpZC1jb2x1bW46MS8tMX19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIC5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1mdWxse3dpZHRoOjEwMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIC5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1lbGV2ZW4tdHdlbGZ0aHN7d2lkdGg6OTEuNjY2NiV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIC5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1maXZlLXNpeHRoc3t3aWR0aDo4My4zMzMzJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXRocmVlLXF1YXJ0ZXJ7d2lkdGg6NzUlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciAuZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtdHdvLXRoaXJkc3t3aWR0aDo2Ni42NjY2JX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLXNldmVuLXR3ZWxmdGhze3dpZHRoOjU4LjMzMzMlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciAuZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtaGFsZnt3aWR0aDo1MCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIC5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1maXZlLXR3ZWxmdGhze3dpZHRoOjQxLjY2NjYlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2Zvb3RlciAuZ2Zvcm0tYnV0dG9uLS13aWR0aC1mdWxsLmdmaWVsZC0td2lkdGgtdGhpcmR7d2lkdGg6MzMuMzMzMyV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZm9vdGVyIC5nZm9ybS1idXR0b24tLXdpZHRoLWZ1bGwuZ2ZpZWxkLS13aWR0aC1xdWFydGVye3dpZHRoOjI1JX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLW9uZS1zaXh0aHt3aWR0aDoxNi42NjY2JX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9mb290ZXIgLmdmb3JtLWJ1dHRvbi0td2lkdGgtZnVsbC5nZmllbGQtLXdpZHRoLW9uZS10d2VsZnRoe3dpZHRoOjguMzMzMyV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCAuZ2ZpZWxkOm5vdCguZ3NlY3Rpb24pOm5vdCguZ2ZpZWxkX2h0bWwpOm5vdChmaWVsZHNldCksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdmaWVsZDpub3QoLmdzZWN0aW9uKTpub3QoLmdmaWVsZF9odG1sKTpub3QoZmllbGRzZXQpe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5sZWZ0X2xhYmVsIC5nZmllbGRfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdmaWVsZF9sYWJlbHttYXJnaW46MDtwYWRkaW5nOjA7d2lkdGg6MzAlfUBtZWRpYSAobWF4LXdpZHRoOjY0MHB4KXsuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5sZWZ0X2xhYmVsIC5nZmllbGRfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdmaWVsZF9sYWJlbHt3aWR0aDoxMDAlfX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMubGVmdF9sYWJlbCBmaWVsZHNldCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMucmlnaHRfbGFiZWwgZmllbGRzZXR7Y2xlYXI6Ym90aH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMubGVmdF9sYWJlbCBmaWVsZHNldCAuZ2lucHV0X2NvbnRhaW5lciwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMucmlnaHRfbGFiZWwgZmllbGRzZXQgLmdpbnB1dF9jb250YWluZXJ7ZmxvYXQ6bGVmdDt3aWR0aDo3MCV9QG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpey5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcy5sZWZ0X2xhYmVsIGZpZWxkc2V0IC5naW5wdXRfY29udGFpbmVyLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcy5sZWZ0X2xhYmVsIGZpZWxkc2V0Pi5naW5wdXRfY29tcGxleCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMucmlnaHRfbGFiZWwgZmllbGRzZXQgLmdpbnB1dF9jb250YWluZXIsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzLnJpZ2h0X2xhYmVsIGZpZWxkc2V0Pi5naW5wdXRfY29tcGxleHt3aWR0aDoxMDAlfX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMubGVmdF9sYWJlbCBsZWdlbmQuZ2ZpZWxkX2xhYmVsLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcy5yaWdodF9sYWJlbCBsZWdlbmQuZ2ZpZWxkX2xhYmVse2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjFlbTt3aWR0aDozMCV9QG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpey5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcy5sZWZ0X2xhYmVsIGxlZ2VuZC5nZmllbGRfbGFiZWwsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzLnJpZ2h0X2xhYmVsIGxlZ2VuZC5nZmllbGRfbGFiZWx7d2lkdGg6MTAwJX19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCAuZ2lucHV0X2NvbXBsZXggLmdpbnB1dF9jb250YWluZXIsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdpbnB1dF9jb21wbGV4IC5naW5wdXRfY29udGFpbmVye3dpZHRoOmF1dG99Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCBkaXYuZ2ZpZWxkPmRpdjpub3QoLnVpLXJlc2l6YWJsZS1oYW5kbGUpOm5vdCguZ2ZpZWxkLWFkbWluLWljb25zKSwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5yaWdodF9sYWJlbCBkaXYuZ2ZpZWxkPmRpdjpub3QoLnVpLXJlc2l6YWJsZS1oYW5kbGUpOm5vdCguZ2ZpZWxkLWFkbWluLWljb25zKXt3aWR0aDo3MCV9QG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpey5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwgZGl2LmdmaWVsZD5kaXY6bm90KC51aS1yZXNpemFibGUtaGFuZGxlKTpub3QoLmdmaWVsZC1hZG1pbi1pY29ucyksLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgZGl2LmdmaWVsZD5kaXY6bm90KC51aS1yZXNpemFibGUtaGFuZGxlKTpub3QoLmdmaWVsZC1hZG1pbi1pY29ucyl7d2lkdGg6MTAwJX19Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdmaWVsZF9sYWJlbHtwYWRkaW5nLXJpZ2h0OjFlbTt0ZXh0LWFsaWduOnJpZ2h0fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwuZ2Zvcm1fZmllbGRzLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsLmdmb3JtX2ZpZWxkc3twb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5sZWZ0X2xhYmVsIC5nZmllbGRfaHRtbF9mb3JtYXR0ZWQsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgLmdmaWVsZF9odG1sX2Zvcm1hdHRlZHttYXJnaW4tbGVmdDozMCV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCAjZmllbGRfc3VibWl0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsICNmaWVsZF9zdWJtaXR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCAjZmllbGRfc3VibWl0IGlucHV0LC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsICNmaWVsZF9zdWJtaXQgaW5wdXR7bWFyZ2luLWxlZnQ6MzAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2JlbG93IC5naW5wdXRfY29tcGxleHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5naW5wdXRfY29tcGxleHthbGlnbi1pdGVtczpmbGV4LWVuZH0ucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwgbGVnZW5kLmdmaWVsZF9sYWJlbCwucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsIGxlZ2VuZC5nZmllbGRfbGFiZWx7bWFyZ2luLWxlZnQ6MWVtO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwJX0ucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwgbGVnZW5kLmdmaWVsZF9sYWJlbHt3aWR0aDozMCV9LnJ0bCAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5sZWZ0X2xhYmVsIC5nZmllbGRfbGFiZWx7cGFkZGluZy1sZWZ0OjFlbTt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS5ydGwgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCBmaWVsZHNldC5nZmllbGQsLnJ0bCAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5yaWdodF9sYWJlbCBmaWVsZHNldC5nZmllbGR7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjMwJX0ucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsIC5nZmllbGRfbGFiZWwsLnJ0bCAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5yaWdodF9sYWJlbCBsZWdlbmQuZ2ZpZWxkX2xhYmVse3BhZGRpbmc6MDt0ZXh0LWFsaWduOnJpZ2h0fS5ydGwgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgbGFiZWwuZ2ZpZWxkX2xhYmVse3BhZGRpbmctcmlnaHQ6MH0ucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwgLmdmaWVsZF9odG1sX2Zvcm1hdHRlZCwucnRsIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnJpZ2h0X2xhYmVsIC5nZmllbGRfaHRtbF9mb3JtYXR0ZWR7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MzAlfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xhYmVsLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBjb2RlLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPWVtYWlsXSxodG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT10ZWxdLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSBpbnB1dFt0eXBlPXVybF17ZGlyZWN0aW9uOnJ0bH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9yZXF1aXJlZHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo0cHh9aHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcnt0ZXh0LWFsaWduOnJpZ2h0fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSA6Oi1tb3otcGxhY2Vob2xkZXJ7dGV4dC1hbGlnbjpyaWdodH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgOi1tcy1pbnB1dC1wbGFjZWhvbGRlcnt0ZXh0LWFsaWduOnJpZ2h0fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSA6LW1vei1wbGFjZWhvbGRlcnt0ZXh0LWFsaWduOnJpZ2h0fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGZpZWxkc2V0e2Rpc3BsYXk6YmxvY2t9aHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfaGVhZGVyX2l0ZW0rLmdmaWVsZF9oZWFkZXJfaXRlbTpub3QoOmxhc3QtY2hpbGQpLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbSsuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxNnB4fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIGZpZWxkc2V0Om5vdChbc3R5bGUqPSJkaXNwbGF5Om5vbmUiXSk6bm90KC5naW5wdXRfZnVsbCl+c3Bhbjpub3QoLmdpbnB1dF9mdWxsKSxodG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4Om5vdCguZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzKSBzcGFuOm5vdChbc3R5bGUqPSJkaXNwbGF5Om5vbmUiXSk6bm90KC5naW5wdXRfZnVsbCl+c3Bhbjpub3QoLmdpbnB1dF9mdWxsKXtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjE2cHh9QG1lZGlhIChtaW4td2lkdGg6NjQxcHgpe2h0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbXBsZXg6bm90KC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MpIHNwYW46bm90KFtzdHlsZSo9ImRpc3BsYXk6bm9uZSJdKTpub3QoLmdpbnB1dF9mdWxsKX5zcGFuOm5vdCguZ2lucHV0X2Z1bGwpe3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTZweH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcy5oYXNfc3RyZWV0Lmhhc19zdHJlZXQyIHNwYW46bm90KC5naW5wdXRfZnVsbCk6bnRoLW9mLXR5cGUob2RkKSxodG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcy5oYXNfc3RyZWV0Mjpub3QoLmhhc19zdHJlZXQpIHNwYW46bm90KC5naW5wdXRfZnVsbCk6bnRoLW9mLXR5cGUoMm4pLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzLmhhc19zdHJlZXQ6bm90KC5oYXNfc3RyZWV0Mikgc3Bhbjpub3QoLmdpbnB1dF9mdWxsKTpudGgtb2YtdHlwZSgybiksaHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3M6bm90KC5oYXNfc3RyZWV0KTpub3QoLmhhc19zdHJlZXQyKSBzcGFuOm5vdCguZ2lucHV0X2Z1bGwpOm50aC1vZi10eXBlKG9kZCl7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDowfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fc2hvd19wYXNzd29yZHtsZWZ0OjhweDtyaWdodDp1bnNldH19QG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpe2h0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCBmaWVsZHNldC5nZmllbGQsaHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5yaWdodF9sYWJlbCBmaWVsZHNldC5nZmllbGR7cGFkZGluZy1yaWdodDowfWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAubGVmdF9sYWJlbCBsZWdlbmQuZ2ZpZWxkX2xhYmVsLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAucmlnaHRfbGFiZWwgbGVnZW5kLmdmaWVsZF9sYWJlbHttYXJnaW46MDtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmxlZnRfbGFiZWwgLmdmaWVsZF9sYWJlbHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb21wbGV4Om5vdCguZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzKSBmaWVsZHNldDpub3QoW3N0eWxlKj0iZGlzcGxheTpub25lIl0pOm5vdCguZ2lucHV0X2Z1bGwpfnNwYW46bm90KC5naW5wdXRfZnVsbCksaHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29tcGxleDpub3QoLmdpbnB1dF9jb250YWluZXJfYWRkcmVzcykgc3Bhbjpub3QoW3N0eWxlKj0iZGlzcGxheTpub25lIl0pOm5vdCguZ2lucHV0X2Z1bGwpfnNwYW46bm90KC5naW5wdXRfZnVsbCl7cGFkZGluZy1yaWdodDowfX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY291bnRlcntjb2xvcjojNzY3Njc2O2ZvbnQtc2l6ZTouOGVtfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdpbnB1dF9jb3VudGVyX3RpbnltY2V7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VlZTtmb250LXNpemU6MTJweDtwYWRkaW5nOjJweCAxMHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLnZhbGlkYXRpb25fbWVzc2FnZS0taGlkZGVuLW9uLWVtcHR5OmVtcHR5e2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVye2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MzJweDttYXJnaW46OHB4IDAgNi40cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciBkaXYuZ2Zvcm1fY2FyZF9pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uLy4uLy4uL2ltYWdlcy9nZi1jcmVkaXRjYXJkcy5zdmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtoZWlnaHQ6MzJweDttYXJnaW4tcmlnaHQ6NC44cHg7dGV4dC1pbmRlbnQ6LTkwMDBweDt3aWR0aDo0MHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgZGl2Lmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25fYW1leHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjdweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgZGl2Lmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25fZGlzY292ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjIxcHggMH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIGRpdi5nZm9ybV9jYXJkX2ljb24uZ2Zvcm1fY2FyZF9pY29uX21hc3RlcmNhcmR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjc1cHggMH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9jYXJkX2ljb25fY29udGFpbmVyIGRpdi5nZm9ybV9jYXJkX2ljb24uZ2Zvcm1fY2FyZF9pY29uX3Zpc2F7YmFja2dyb3VuZC1wb3NpdGlvbjotNTlweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgZGl2Lmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25famNie2JhY2tncm91bmQtcG9zaXRpb246LTMyOXB4IDB9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciBkaXYuZ2Zvcm1fY2FyZF9pY29uLmdmb3JtX2NhcmRfaWNvbl9tYWVzdHJve2JhY2tncm91bmQtcG9zaXRpb246LTVweCAwfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2NhcmRfaWNvbl9jb250YWluZXIgZGl2Lmdmb3JtX2NhcmRfaWNvbi5nZm9ybV9jYXJkX2ljb25fc2VsZWN0ZWR7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fY2FyZF9pY29uX2NvbnRhaW5lciBkaXYuZ2Zvcm1fY2FyZF9pY29uLmdmb3JtX2NhcmRfaWNvbl9zZWxlY3RlZDphZnRlcntiYWNrZ3JvdW5kOnVybCguLi8uLi8uLi9pbWFnZXMvZ2YtY3JlZGl0Y2FyZHMtY2hlY2suc3ZnKSA1MCUgbm8tcmVwZWF0O2JvdHRvbTo0cHg7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7d2lkdGg6MTNweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2NyZWRpdGNhcmQgLmdpbnB1dF9jYXJkaW5mb19yaWdodHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9jcmVkaXRjYXJkIC5naW5wdXRfY2FyZGluZm9fcmlnaHQgbGFiZWx7d2lkdGg6MTAwJX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2NyZWRpdGNhcmQgLmdpbnB1dF9jYXJkX3NlY3VyaXR5X2NvZGVfaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCguLi8uLi8uLi9pbWFnZXMvZ2YtY3JlZGl0Y2FyZHMuc3ZnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zODJweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTpibG9jaztmbGV4Om5vbmU7aGVpZ2h0OjMycHg7bWFyZ2luLWxlZnQ6LjNlbTt3aWR0aDo0MHB4fWh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9jcmVkaXRjYXJkIC5naW5wdXRfY2FyZF9zZWN1cml0eV9jb2RlX2ljb257bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LjNlbX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9ncm91cCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO21hcmdpbi1ib3R0b206OHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9oZWFkZXJfaXRlbXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2hlYWRlcl9pdGVtLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW17ZmxleC1ncm93OjE7d2lkdGg6MH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfaGVhZGVyX2l0ZW0rLmdmaWVsZF9oZWFkZXJfaXRlbTpub3QoLmdmaWVsZF9oZWFkZXJfaXRlbS0taWNvbnMpLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW0rLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW17bWFyZ2luLWxlZnQ6MiV9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbSBpbnB1dCwuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtIHNlbGVjdHt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9oZWFkZXJfaXRlbS0taWNvbnMsLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfaWNvbnN7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4Om5vbmU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo0OHB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2ljb25zIGJ1dHRvbntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IHVybCguLi8uLi8uLi9pbWFnZXMvbGlzdC1hZGQuc3ZnKTtib3JkZXI6bm9uZTtmb250LXNpemU6MDtoZWlnaHQ6MTZweDtvcGFjaXR5Oi41O3BhZGRpbmc6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2Utb3V0O3dpZHRoOjE2cHh9Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfaWNvbnMgYnV0dG9uOmZvY3VzLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2ljb25zIGJ1dHRvbjpob3ZlcntvcGFjaXR5OjE7b3V0bGluZTpub25lfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2ljb25zIGJ1dHRvbi5kZWxldGVfbGlzdF9pdGVte2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uLy4uLy4uL2ltYWdlcy9saXN0LXJlbW92ZS5zdmcpO21hcmdpbi1sZWZ0OjVweH1AbWVkaWEgKG1heC13aWR0aDo2NDBweCl7Lmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfaGVhZGVye2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9ncm91cHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToxNnB4O3BhZGRpbmc6MTZweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfaGVhZGVyX2l0ZW0sLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbXt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjhweH0uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1sYWJlbCk7Zm9udC1zaXplOjE0Ljk5MnB4fS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2ljb25ze2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMSk7bGluZS1oZWlnaHQ6MDttYXJnaW46MTZweCAtMTZweCAtMTZweDtwYWRkaW5nOjEycHggMTZweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6YXV0b30uZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfaGVhZGVyX2l0ZW0rLmdmaWVsZF9oZWFkZXJfaXRlbTpub3QoLmdmaWVsZF9oZWFkZXJfaXRlbS0taWNvbnMpLC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW0rLmdmaWVsZF9saXN0X2dyb3VwX2l0ZW17bWFyZ2luLWxlZnQ6MH19aHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfaGVhZGVyX2l0ZW0rLmdmaWVsZF9oZWFkZXJfaXRlbTpub3QoLmdmaWVsZF9oZWFkZXJfaXRlbS0taWNvbnMpLGh0bWxbZGlyPXJ0bF0gLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbSsuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxNnB4fUBtZWRpYSAobWF4LXdpZHRoOjY0MHB4KXtodG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9oZWFkZXJfaXRlbSsuZ2ZpZWxkX2hlYWRlcl9pdGVtOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtLS1pY29ucyksaHRtbFtkaXI9cnRsXSAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtKy5nZmllbGRfbGlzdF9ncm91cF9pdGVte21hcmdpbi1yaWdodDowfX1odG1sW2Rpcj1ydGxdIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9saXN0X2ljb25zIGJ1dHRvbi5kZWxldGVfbGlzdF9pdGVte21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjVweH0uZ2Zvcm1fd3JhcHBlci5nZm9ybV9sZWdhY3lfbWFya3VwIHRhYmxlLmdmaWVsZF9saXN0LmdmaWVsZF9saXN0X2NvbnRhaW5lcnt3aWR0aDoxMDAlfS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRoZWFkIHRye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwfS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRoZWFkIHRyIHRkLC5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRoZWFkIHRyIHRoe2ZsZXgtZ3JvdzoxO3doaXRlLXNwYWNlOm5vcm1hbDt3aWR0aDowO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uZ2Zvcm1fd3JhcHBlci5nZm9ybV9sZWdhY3lfbWFya3VwIHRhYmxlLmdmaWVsZF9saXN0LmdmaWVsZF9saXN0X2NvbnRhaW5lciB0aGVhZCB0ciB0ZDpsYXN0LWNoaWxke2ZsZXgtZ3Jvdzp1bnNldDt3aWR0aDo0OHB4fS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRib2R5IHRkLC5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRib2R5IHRoe2ZsZXgtZ3JvdzoxO3doaXRlLXNwYWNlOm5vcm1hbDt3aWR0aDowO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uZ2Zvcm1fd3JhcHBlci5nZm9ybV9sZWdhY3lfbWFya3VwIHRhYmxlLmdmaWVsZF9saXN0LmdmaWVsZF9saXN0X2NvbnRhaW5lciB0Ym9keSB0ZC5nZmllbGRfbGlzdF9pY29uc3tmbGV4LWdyb3c6dW5zZXQ7d2lkdGg6NDhweH0uZ2Zvcm1fd3JhcHBlci5nZm9ybV9sZWdhY3lfbWFya3VwIHRhYmxlLmdmaWVsZF9saXN0LmdmaWVsZF9saXN0X2NvbnRhaW5lciB0Ym9keSB0cntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXB9Lmdmb3JtX3dyYXBwZXIuZ2Zvcm1fbGVnYWN5X21hcmt1cCB0YWJsZS5nZmllbGRfbGlzdC5nZmllbGRfbGlzdF9jb250YWluZXIgdGJvZHkgdHIgLmdmaWVsZF9saXN0X2NlbGx7ZmxleC1ncm93OjF9Lmdmb3JtX3dyYXBwZXIuZ2Zvcm1fbGVnYWN5X21hcmt1cCB0YWJsZS5nZmllbGRfbGlzdC5nZmllbGRfbGlzdF9jb250YWluZXIgdGJvZHkgdHIgLmdmaWVsZF9saXN0X2NlbGwgaW5wdXR7d2lkdGg6OTUlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjQwcHgpey5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRoe2Rpc3BsYXk6bm9uZX0uZ2Zvcm1fd3JhcHBlci5nZm9ybV9sZWdhY3lfbWFya3VwIHRhYmxlLmdmaWVsZF9saXN0LmdmaWVsZF9saXN0X2NvbnRhaW5lciB0Ym9keSB0cntmbGV4LWZsb3c6Y29sdW1ufS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRib2R5IHRyIHRkOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS1sYWJlbCk7Zm9udC1zaXplOjE0Ljk5MnB4fS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRib2R5IHRyIHRke2ZsZXgtZ3Jvdzp1bnNldDt3aWR0aDphdXRvfS5nZm9ybV93cmFwcGVyLmdmb3JtX2xlZ2FjeV9tYXJrdXAgdGFibGUuZ2ZpZWxkX2xpc3QuZ2ZpZWxkX2xpc3RfY29udGFpbmVyIHRib2R5IHRyIC5nZmllbGRfbGlzdF9pY29uc3toZWlnaHQ6MzVweDt3aWR0aDphdXRvfX0="}},"time_used":489,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":489,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/pc?ref_url=https%3A%2F%2Fautolitefinances.pro%2F\u0026u_agent=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:27.611Z","timestamp":1785145407611,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"OPTIONS /v1/lst/pc?ref_url=https%3A%2F%2Fautolitefinances.pro%2F\u0026u_agent=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0 HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: access-control-allow-headers,access-control-allow-origin,content-type,l-gen-id,product-id,session-id\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:27 GMT\r\nContent-Length: 0\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS\r\nAccess-Control-Allow-Headers: access-control-allow-headers, access-control-allow-origin, content-type, l-gen-id, product-id, session-id\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nAccess-Control-Max-Age: 86400\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":617,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":94,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":94,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/p.css","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.907Z","timestamp":1785145403907,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /p.css HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/dij0kpe.css\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\ncontent-length: 5\r\nx-accel-version: 0.01\r\nlast-modified: Wed, 17 Jan 2024 06:59:14 GMT\r\netag: \"5-60f1ec8e2b480\"\r\naccept-ranges: bytes\r\nx-powered-by: PleskLin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":5,"size_decoded":275,"mime_type":"text/css","magic":"ASCII text","md5":"83d24d4b43cc7eef2b61e66c95f3d158","sha1":"f0cafc285ee23bb6c28c5166f305493c4331c84d","sha256":"1c0ff118a4290c99f39c90abb38703a866e47251b23cca20266c69c812ccafeb","sha512":"e6e84563d3a55767f8e5f36c4e217a0768120d6e15ce4d01aa63d36af7ec8d20b600ce96dcc56de91ec7e55e83a8267baddd68b61447069b82abdb2e92c6acb6","ssdeep":"","tlshash":"e630000000000000000000000000000000000c00000000000000000000000000000000","first_seen":"2023-03-12T07:28:04Z","last_seen":"2026-08-12T04:07:32.27809Z","times_seen":176157,"resource_available":true,"data":"LyoqLwo="}},"time_used":513,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":513,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/modernizr-custom.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.817Z","timestamp":1785145403817,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/modernizr-custom.js HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-d47\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":3399,"size_decoded":1673,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (3356)","md5":"26120e08be7f8fe41e7e9f9ddce48e39","sha1":"c2dee2ddd76917ccbbf4ce9d99ae095659a18436","sha256":"5c25fb28f6f44215a4ccb741d6e9647bfc47392a942ae3a8c32e4b3868ee157a","sha512":"25712873ee57e98ac0cfaa40c9dfc3eab664d5fd77ca4c0be1b4d5214c5743ec03a888db886be3e46abbd4d3220ef1df24c2a1c9779d6f1865d974c197749cfd","ssdeep":"","tlshash":"716166b56a52f636467a74b0113f181d1c3b7d1b9d06c0a4f42ca3ad493c7d517abf24","first_seen":"2023-03-13T17:43:27Z","last_seen":"2026-07-27T14:04:41.076037Z","times_seen":10,"resource_available":true,"data":"LyohIG1vZGVybml6ciAzLjYuMCAoQ3VzdG9tIEJ1aWxkKSB8IE1JVCAqCiogaHR0cHM6Ly9tb2Rlcm5penIuY29tL2Rvd25sb2FkLz8td2VicC1zZXRjbGFzc2VzICEqLyFmdW5jdGlvbihlLG4sQSl7ZnVuY3Rpb24gbyhlLG4pe3JldHVybiB0eXBlb2YgZT09PW59ZnVuY3Rpb24gdCgpe3ZhciBlLG4sQSx0LGEsaSxsO2Zvcih2YXIgZiBpbiByKWlmKHIuaGFzT3duUHJvcGVydHkoZikpe2lmKGU9W10sbj1yW2ZdLG4ubmFtZSYmKGUucHVzaChuLm5hbWUudG9Mb3dlckNhc2UoKSksbi5vcHRpb25zJiZuLm9wdGlvbnMuYWxpYXNlcyYmbi5vcHRpb25zLmFsaWFzZXMubGVuZ3RoKSlmb3IoQT0wO0E8bi5vcHRpb25zLmFsaWFzZXMubGVuZ3RoO0ErKyllLnB1c2gobi5vcHRpb25zLmFsaWFzZXNbQV0udG9Mb3dlckNhc2UoKSk7Zm9yKHQ9byhuLmZuLCJmdW5jdGlvbiIpP24uZm4oKTpuLmZuLGE9MDthPGUubGVuZ3RoO2ErKylpPWVbYV0sbD1pLnNwbGl0KCIuIiksMT09PWwubGVuZ3RoP01vZGVybml6cltsWzBdXT10OighTW9kZXJuaXpyW2xbMF1dfHxNb2Rlcm5penJbbFswXV1pbnN0YW5jZW9mIEJvb2xlYW58fChNb2Rlcm5penJbbFswXV09bmV3IEJvb2xlYW4oTW9kZXJuaXpyW2xbMF1dKSksTW9kZXJuaXpyW2xbMF1dW2xbMV1dPXQpLHMucHVzaCgodD8iIjoibm8tIikrbC5qb2luKCItIikpfX1mdW5jdGlvbiBhKGUpe3ZhciBuPXUuY2xhc3NOYW1lLEE9TW9kZXJuaXpyLl9jb25maWcuY2xhc3NQcmVmaXh8fCIiO2lmKGMmJihuPW4uYmFzZVZhbCksTW9kZXJuaXpyLl9jb25maWcuZW5hYmxlSlNDbGFzcyl7dmFyIG89bmV3IFJlZ0V4cCgiKF58XFxzKSIrQSsibm8tanMoXFxzfCQpIik7bj1uLnJlcGxhY2UobywiJDEiK0ErImpzJDIiKX1Nb2Rlcm5penIuX2NvbmZpZy5lbmFibGVDbGFzc2VzJiYobis9IiAiK0ErZS5qb2luKCIgIitBKSxjP3UuY2xhc3NOYW1lLmJhc2VWYWw9bjp1LmNsYXNzTmFtZT1uKX1mdW5jdGlvbiBpKGUsbil7aWYoIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgQSBpbiBlKWYoZSxBKSYmaShBLGVbQV0pO2Vsc2V7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIG89ZS5zcGxpdCgiLiIpLHQ9TW9kZXJuaXpyW29bMF1dO2lmKDI9PW8ubGVuZ3RoJiYodD10W29bMV1dKSwidW5kZWZpbmVkIiE9dHlwZW9mIHQpcmV0dXJuIE1vZGVybml6cjtuPSJmdW5jdGlvbiI9PXR5cGVvZiBuP24oKTpuLDE9PW8ubGVuZ3RoP01vZGVybml6cltvWzBdXT1uOighTW9kZXJuaXpyW29bMF1dfHxNb2Rlcm5penJbb1swXV1pbnN0YW5jZW9mIEJvb2xlYW58fChNb2Rlcm5penJbb1swXV09bmV3IEJvb2xlYW4oTW9kZXJuaXpyW29bMF1dKSksTW9kZXJuaXpyW29bMF1dW29bMV1dPW4pLGEoWyhuJiYwIT1uPyIiOiJuby0iKStvLmpvaW4oIi0iKV0pLE1vZGVybml6ci5fdHJpZ2dlcihlLG4pfXJldHVybiBNb2Rlcm5penJ9dmFyIHM9W10scj1bXSxsPXtfdmVyc2lvbjoiMy42LjAiLF9jb25maWc6e2NsYXNzUHJlZml4OiIiLGVuYWJsZUNsYXNzZXM6ITAsZW5hYmxlSlNDbGFzczohMCx1c2VQcmVmaXhlczohMH0sX3E6W10sb246ZnVuY3Rpb24oZSxuKXt2YXIgQT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtuKEFbZV0pfSwwKX0sYWRkVGVzdDpmdW5jdGlvbihlLG4sQSl7ci5wdXNoKHtuYW1lOmUsZm46bixvcHRpb25zOkF9KX0sYWRkQXN5bmNUZXN0OmZ1bmN0aW9uKGUpe3IucHVzaCh7bmFtZTpudWxsLGZuOmV9KX19LE1vZGVybml6cj1mdW5jdGlvbigpe307TW9kZXJuaXpyLnByb3RvdHlwZT1sLE1vZGVybml6cj1uZXcgTW9kZXJuaXpyO3ZhciBmLHU9bi5kb2N1bWVudEVsZW1lbnQsYz0ic3ZnIj09PXUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTshZnVuY3Rpb24oKXt2YXIgZT17fS5oYXNPd25Qcm9wZXJ0eTtmPW8oZSwidW5kZWZpbmVkIil8fG8oZS5jYWxsLCJ1bmRlZmluZWQiKT9mdW5jdGlvbihlLG4pe3JldHVybiBuIGluIGUmJm8oZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbbl0sInVuZGVmaW5lZCIpfTpmdW5jdGlvbihuLEEpe3JldHVybiBlLmNhbGwobixBKX19KCksbC5fbD17fSxsLm9uPWZ1bmN0aW9uKGUsbil7dGhpcy5fbFtlXXx8KHRoaXMuX2xbZV09W10pLHRoaXMuX2xbZV0ucHVzaChuKSxNb2Rlcm5penIuaGFzT3duUHJvcGVydHkoZSkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtNb2Rlcm5penIuX3RyaWdnZXIoZSxNb2Rlcm5penJbZV0pfSwwKX0sbC5fdHJpZ2dlcj1mdW5jdGlvbihlLG4pe2lmKHRoaXMuX2xbZV0pe3ZhciBBPXRoaXMuX2xbZV07c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLG87Zm9yKGU9MDtlPEEubGVuZ3RoO2UrKykobz1BW2VdKShuKX0sMCksZGVsZXRlIHRoaXMuX2xbZV19fSxNb2Rlcm5penIuX3EucHVzaChmdW5jdGlvbigpe2wuYWRkVGVzdD1pfSksTW9kZXJuaXpyLmFkZEFzeW5jVGVzdChmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxuLEEpe2Z1bmN0aW9uIG8obil7dmFyIG89biYmImxvYWQiPT09bi50eXBlPzE9PXQud2lkdGg6ITEsYT0id2VicCI9PT1lO2koZSxhJiZvP25ldyBCb29sZWFuKG8pOm8pLEEmJkEobil9dmFyIHQ9bmV3IEltYWdlO3Qub25lcnJvcj1vLHQub25sb2FkPW8sdC5zcmM9bn12YXIgbj1be3VyaToiZGF0YTppbWFnZS93ZWJwO2Jhc2U2NCxVa2xHUmlRQUFBQlhSVUpRVmxBNElCZ0FBQUF3QVFDZEFTb0JBQUVBQXdBMEphUUFBM0FBL3Z1VUFBQT0iLG5hbWU6IndlYnAifSx7dXJpOiJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LFVrbEdSa29BQUFCWFJVSlFWbEE0V0FvQUFBQVFBQUFBQUFBQUFBQUFRVXhRU0F3QUFBQUJCeEFSL1E5RVJQOERBQUJXVURnZ0dBQUFBREFCQUowQktnRUFBUUFEQURRbHBBQURjQUQrKy8xUUFBPT0iLG5hbWU6IndlYnAuYWxwaGEifSx7dXJpOiJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LFVrbEdSbElBQUFCWFJVSlFWbEE0V0FvQUFBQVNBQUFBQUFBQUFBQUFRVTVKVFFZQUFBRC8vLy8vQUFCQlRrMUdKZ0FBQUFBQUFBQUFBQUFBQUFBQUFHUUFBQUJXVURoTURRQUFBQzhBQUFBUUJ4QVJFWWlJL2djQSIsbmFtZToid2VicC5hbmltYXRpb24ifSx7dXJpOiJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LFVrbEdSaDRBQUFCWFJVSlFWbEE0VEJFQUFBQXZBQUFBQUFmUS8vNzN2LytCaU9oL0FBQT0iLG5hbWU6IndlYnAubG9zc2xlc3MifV0sQT1uLnNoaWZ0KCk7ZShBLm5hbWUsQS51cmksZnVuY3Rpb24oQSl7aWYoQSYmImxvYWQiPT09QS50eXBlKWZvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKWUobltvXS5uYW1lLG5bb10udXJpKX0pfSksdCgpLGEocyksZGVsZXRlIGwuYWRkVGVzdCxkZWxldGUgbC5hZGRBc3luY1Rlc3Q7Zm9yKHZhciBwPTA7cDxNb2Rlcm5penIuX3EubGVuZ3RoO3ArKylNb2Rlcm5penIuX3FbcF0oKTtlLk1vZGVybml6cj1Nb2Rlcm5penJ9KHdpbmRvdyxkb2N1bWVudCk7"}},"time_used":513,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":513,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/launcher-discovery-modern.7088be9d.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.821Z","timestamp":1785145403821,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /launcher-discovery-modern.7088be9d.js HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:14 GMT\r\netag: W/\"65a77ac2-1593\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":5523,"size_decoded":1967,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (5523), with no line terminators","md5":"b24d4c84454e93baf8ffb96651142e64","sha1":"9391036c45dcb7dfef0c661de8683e463c4c3fe4","sha256":"b2318c17b1c91547ffb9c561c88e313f817bdf4bf1d525136cf09e86411ba360","sha512":"a1d877499c6a6cb6db27d78745938329cf2159cabbe5db3f96b45e29521d3f3720b372a79452e1d821d15e35ad9ce9313695671bdc19ba6b3162edb5568fdc25","ssdeep":"96:3cCxGatB8dJTjw8otkVm7eXDmMGSxQ2C0bn+jvq8Uoz8gFFC:sCxGyOrznO2HyjvpUoq","tlshash":"67b1b580f07f893da1f653c9d2ec45ac03a45f68e05216fd7c7c29ea86cc50a6b26378","first_seen":"2026-07-27T07:14:06.764422Z","last_seen":"2026-07-27T14:04:41.10441Z","times_seen":5,"resource_available":false,"data":"InVzZSBzdHJpY3QiOyhnbG9iYWxUaGlzLndlYnBhY2tDaHVua2ludGVyY29tX2pzPWdsb2JhbFRoaXMud2VicGFja0NodW5raW50ZXJjb21fanN8fFtdKS5wdXNoKFtbODA1Nl0sezE0MDczOihlLGksdCk9Pnt0LnIoaSksdC5kKGkse2RlZmF1bHQ6KCk9PkxhdW5jaGVyRGlzY292ZXJ5RnJhbWV9KTt2YXIgcz10KDY3Mjk0KSxuPXQoMzc0MjQpLG89dCg2NzU5Mikscj10KDExMzUzKSxhPXQoNTA3MDApO2NvbnN0IGg9KDAsYS5GNCkoIjAle29wYWNpdHk6MDt9MTAwJXtvcGFjaXR5OjE7fSIpLGM9KDAsYS5GNCkoIjAle29wYWNpdHk6MTt9MTAwJXtvcGFjaXR5OjA7fSIpLGw9KDAsYS5aUCkoImRpdiIse3RhcmdldDoiZTEwaDk0NjkwIn0pKCJwYWRkaW5nOjlweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsYS5yUykoIndoaXRlIiksIjtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7Zm9udC1mYW1pbHk6IiwoMCxhLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7Ym9yZGVyLXJhZGl1czozNXB4O291dGxpbmUtb2Zmc2V0Oi01cHg7KntjdXJzb3I6cG9pbnRlcjt9IiwoKHtpc09wZW46ZX0pPT5lJiYoMCxhLml2KSgiYW5pbWF0aW9uOiIsaCwiIDIwMG1zIGxpbmVhciBib3RoO2FuaW1hdGlvbi1kZWxheTozMjBtczsiKSksIiAiLCgoe2lzQ2xvc2luZzplfSk9PmUmJigwLGEuaXYpKCJhbmltYXRpb246IixjLCIgMjAwbXMgbGluZWFyIGJvdGg7IikpLCIgIiwoKHtpc0xlZnRBbGlnbmVkOmV9KT0+ZSYmKDAsYS5pdikocC5jbGFzc05hbWUsIntvcmRlcjoxO3BhZGRpbmctbGVmdDo1OHB4O3BhZGRpbmctcmlnaHQ6MTBweDt9IikpKSxkPSgwLGEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMGg5NDY5MSJ9KSgid2hpdGUtc3BhY2U6bm93cmFwO2JhY2tncm91bmQtY29sb3I6IiwoMCxhLnJTKSgid2hpdGUiKSwiO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7IikscD0oMCxhLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTBoOTQ2OTIifSkoe25hbWU6IjEyYXp0OXoiLHN0eWxlczoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo1MHB4O29yZGVyOjI7In0pLHU9KDAsYS5aUCkoImRpdiIse3RhcmdldDoiZTEwaDk0NjkzIn0pKHtuYW1lOiIxZDJraWplIixzdHlsZXM6ImZvbnQtc2l6ZToxNXB4O2NvbG9yOiMzYTNjNGM7Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctdG9wOjFweDsifSksZz0oMCxhLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTBoOTQ2OTQifSkoInBhZGRpbmctdG9wOjdweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiIsKDAsYS5yUykoImdyZXkiKSwiOyIpO2NsYXNzIExhdW5jaGVyRGlzY292ZXJ5Qm9keSBleHRlbmRzIHMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLm5vZGU9dm9pZCAwLHRoaXMuaGFuZGxlTW91c2VFbnRlcj0oKT0+dGhpcy5wcm9wcy5vbk1vdXNlRW50ZXIoKSx0aGlzLmhhbmRsZU1vdXNlTGVhdmU9KCk9PnRoaXMucHJvcHMub25Nb3VzZUxlYXZlKCksdGhpcy5hZGRMYXVuY2hlckNsaWNrTWV0cmljPWU9PnsoMCxyLldNKSgiY2xpY2tlZCIsImxhdW5jaGVyIiwiaW5fYXBwIiwiIix7aXNfbWVzc2VuZ2VyX29wZW46ZSxpc19jdXN0b21fbGF1bmNoZXI6ITF9KX0sdGhpcy5oYW5kbGVMYXVuY2hlckRpc2NvdmVyeUNsaWNrPSgpPT57Y29uc3R7b25DbGljazplLGlzTWVzc2VuZ2VyT3BlbjppfT10aGlzLnByb3BzO3RoaXMuYWRkTGF1bmNoZXJDbGlja01ldHJpYyhpKSxlKCl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5ub2RlJiZ0aGlzLnByb3BzLnNldFdpZHRoKHRoaXMubm9kZS5jbGllbnRXaWR0aCl9Y29tcG9uZW50RGlkVXBkYXRlKCl7dGhpcy5ub2RlJiZ0aGlzLnByb3BzLnNldFdpZHRoKHRoaXMubm9kZS5jbGllbnRXaWR0aCl9cmVuZGVyKCl7Y29uc3R7bGF1bmNoZXJFeHBlY3RlZFJlc3BvbnNlRGVsYXlUcmFuc2xhdGlvbktleTplLGlzT3BlbjppLGlzQ2xvc2luZzp0LGlzTGVmdEFsaWduZWQ6bn09dGhpcy5wcm9wcztyZXR1cm4gcy5jcmVhdGVFbGVtZW50KGwse29uTW91c2VFbnRlcjp0aGlzLmhhbmRsZU1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlOnRoaXMuaGFuZGxlTW91c2VMZWF2ZSxyZWY6ZT0+dGhpcy5ub2RlPWUsb25DbGljazp0aGlzLmhhbmRsZUxhdW5jaGVyRGlzY292ZXJ5Q2xpY2ssdGFiSW5kZXg6aT8wOi0xLCJhcmlhLWxhYmVsIjooMCxvLkl1KSgib3Blbl9pbnRlcmNvbV9tZXNzZW5nZXIiKSwiYXJpYS1oaWRkZW4iOiFpLGlzT3BlbjppLGlzQ2xvc2luZzp0LGlzTGVmdEFsaWduZWQ6bn0scy5jcmVhdGVFbGVtZW50KGQsbnVsbCxzLmNyZWF0ZUVsZW1lbnQocCxudWxsLHMuY3JlYXRlRWxlbWVudCh1LG51bGwsKDAsby5JdSkoImRpc2NvdmVyeV9tb2RlX2VudHJ5X3RleHQiKSkscy5jcmVhdGVFbGVtZW50KGcsbnVsbCwoMCxvLkl1KShlKSkpKSl9fWNvbnN0IG09KDAsbi5jb25uZWN0KSgoZT0+e2NvbnN0e2FwcDp7bGF1bmNoZXJFeHBlY3RlZFJlc3BvbnNlRGVsYXlUcmFuc2xhdGlvbktleTppLGlzTWVzc2VuZ2VyT3Blbjp0fX09ZTtyZXR1cm57aXNNZXNzZW5nZXJPcGVuOnQsbGF1bmNoZXJFeHBlY3RlZFJlc3BvbnNlRGVsYXlUcmFuc2xhdGlvbktleTppfX0pKShMYXVuY2hlckRpc2NvdmVyeUJvZHkpO3ZhciB5PXQoNzg3MTcpLHY9dCgzOTExMykseD17bmFtZToiMTNzc2pvcSIsc3R5bGVzOiJvcGFjaXR5OjE7d2lkdGg6NzBweDt0cmFuc2l0aW9uOndpZHRoIDQwMG1zIGVhc2UsdHJhbnNmb3JtIDQwMG1zIGVhc2UgNDAwbXM7In0sQz17bmFtZToiMWV4eHJuMSIsc3R5bGVzOiJvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpOyJ9O2NvbnN0IEw9KDAsYS5aUCkoeS5aUCx7dGFyZ2V0OiJlMW1xODNmbTAifSkoInotaW5kZXg6IiwoMCx2Llc1KSgtMSksIjtwb3NpdGlvbjpmaXhlZDtib3R0b206IiwoMCxhLnJTKSgiZGlzY292ZXJ5TGF1bmNoZXJWZXJ0aWNhbFBhZGRpbmdQeCIpLCJweDtyaWdodDoiLCgwLGEuclMpKCJkaXNjb3ZlcnlMYXVuY2hlckhvcml6b250YWxQYWRkaW5nUHgiKSwicHg7aGVpZ2h0OjcwcHg7dHJhbnNmb3JtOnNjYWxlKDAuOCk7Ym9yZGVyLXJhZGl1czozNXB4O2JhY2tncm91bmQtY29sb3I6IiwoMCxhLnJTKSgid2hpdGUiKSwiO29wYWNpdHk6MDtib3gtc2hhZG93OjAgMXB4IDZweCAwIHJnYmEoMCwwLDAsMC4wNiksMCAycHggMzJweCAwIHJnYmEoMCwwLDAsMC4xNik7dHJhbnNpdGlvbjp3aWR0aCA0MDBtcyBlYXNlLHRyYW5zZm9ybSA0MDBtcyBlYXNlO3dpZHRoOiIsKDAsYS5OUSkoIndpZHRoIiksInB4OyIsKCh7dGhlbWU6ZX0pPT5lLmlzTGVmdEFsaWduJiYoMCxhLml2KSgibGVmdDoiLGUuZGlzY292ZXJ5TGF1bmNoZXJIb3Jpem9udGFsUGFkZGluZ1B4LCJweDtyaWdodDphdXRvOyIpKSwiICIsKCh7b3BlbmluZzplfSk9PmUmJkMpLCIgIiwoKHtjbG9zaW5nOmV9KT0+ZSYmeCkpO2NsYXNzIExhdW5jaGVyRGlzY292ZXJ5RnJhbWUgZXh0ZW5kcyBzLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5pc0Nsb3NpbmdUaW1lb3V0PXZvaWQgMCx0aGlzLnN0YXRlPXt3aWR0aDpudWxsLGNoaWxkV2lkdGg6bnVsbCxpc0Nsb3Npbmc6ITF9LHRoaXMuc2V0Q2hpbGRXaWR0aD1lPT57dGhpcy5zZXRTdGF0ZSh7Y2hpbGRXaWR0aDplfSl9LHRoaXMuYWRkTGF1bmNoZXJPcGVuaW5nTWV0cmljPSgpPT57KDAsci5XTSkoIm9wZW5pbmciLCJsYXVuY2hlciIsImluX2FwcCIsIiIse2lzX2Rpc2NvdmVyeV9sYXVuY2hlcjohMH0pfSx0aGlzLmhhbmRsZU9wZW5pbmc9KCk9Pnt0aGlzLnN0YXRlLmNoaWxkV2lkdGgmJih0aGlzLmFkZExhdW5jaGVyT3BlbmluZ01ldHJpYygpLHRoaXMuc2V0U3RhdGUoe3dpZHRoOnRoaXMuc3RhdGUuY2hpbGRXaWR0aCsyMH0pKX0sdGhpcy5oYW5kbGVDbG9zaW5nPSgpPT57dGhpcy5zdGF0ZS5pc0Nsb3Npbmd8fCh0aGlzLnNldFN0YXRlKHtpc0Nsb3Npbmc6ITB9KSx0aGlzLnNldENsb3NpbmdUaW1lb3V0KCkpfSx0aGlzLmhhbmRsZUxhdW5jaGVyRGlzY292ZXJ5Q2xpY2s9KCk9Pnt0aGlzLmhhbmRsZUNsb3NpbmcoKSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5wcm9wcy5vbkxhdW5jaGVyRGlzY292ZXJ5Q2xpY2soKSksMjAwKX0sdGhpcy5oYW5kbGVNb3VzZUVudGVyPSgpPT57dGhpcy5jbGVhckNsb3NpbmdUaW1lb3V0KCksdGhpcy5wcm9wcy5vbkRpc2NvdmVyeUxhdW5jaGVyTW91c2VFbnRlcigpfSx0aGlzLmhhbmRsZU1vdXNlTGVhdmU9KCk9Pnt0aGlzLnByb3BzLm9uRGlzY292ZXJ5TGF1bmNoZXJNb3VzZU91dCgpfX1jb21wb25lbnREaWRVcGRhdGUoZSxpKXtjb25zdHtpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6dCxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc6c309dGhpcy5wcm9wcztlLmlzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlT3BlbmluZyYmdCYmaS5jaGlsZFdpZHRofHwoIWUuaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVDbG9zaW5nJiZzJiZ0aGlzLmhhbmRsZUNsb3NpbmcoKSx0JiZ0aGlzLmhhbmRsZU9wZW5pbmcoKSl9c2V0Q2xvc2luZ1RpbWVvdXQoKXt0aGlzLmlzQ2xvc2luZ1RpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLnNldFN0YXRlKHtpc0Nsb3Npbmc6ITEsd2lkdGg6bnVsbH0pfSksNDAwKX1jbGVhckNsb3NpbmdUaW1lb3V0KCl7dGhpcy5pc0Nsb3NpbmdUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5pc0Nsb3NpbmdUaW1lb3V0KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuY2xlYXJDbG9zaW5nVGltZW91dCgpfXJlbmRlcigpe2NvbnN0e2lzTGVmdEFsaWduZWQ6ZSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6aSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc6dCxzaG93RGlzY292ZXJ5TGF1bmNoZXI6bn09dGhpcy5wcm9wcztyZXR1cm4gbj9zLmNyZWF0ZUVsZW1lbnQoTCx7Y2xhc3NOYW1lOiJpbnRlcmNvbS1sYXVuY2hlci1kaXNjb3ZlcnktZnJhbWUiLGZyYW1lTmFtZToiaW50ZXJjb20tbGF1bmNoZXItZGlzY292ZXJ5LWZyYW1lIix0aXRsZTpgSW50ZXJjb20gbGl2ZSBjaGF0ICR7KDAsby5JdSkoImRpc2NvdmVyeV9sYXVuY2hlciIpfWAsYXJpYUxpdmVBc3NlcnRpdmU6ITEsd2lkdGg6dGhpcy5zdGF0ZS53aWR0aCxvcGVuaW5nOmksY2xvc2luZzp0aGlzLnN0YXRlLmlzQ2xvc2luZ30sKCgpPT5zLmNyZWF0ZUVsZW1lbnQobSx7c2V0V2lkdGg6dGhpcy5zZXRDaGlsZFdpZHRoLGlzT3BlbjppLGlzQ2xvc2luZzp0LGlzTGVmdEFsaWduZWQ6ZSxvbkNsaWNrOnRoaXMuaGFuZGxlTGF1bmNoZXJEaXNjb3ZlcnlDbGljayxvbk1vdXNlRW50ZXI6dGhpcy5oYW5kbGVNb3VzZUVudGVyLG9uTW91c2VMZWF2ZTp0aGlzLmhhbmRsZU1vdXNlTGVhdmV9KSkpOm51bGx9fX19XSk7"}},"time_used":508,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":508,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/theme-components.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.845Z","timestamp":1785145403845,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/theme-components.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\ncontent-length: 0\r\nx-accel-version: 0.01\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"0-60f1ec8f1f6c0\"\r\naccept-ranges: bytes\r\nx-powered-by: PleskLin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":0,"size_decoded":270,"mime_type":"text/css","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":487,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":487,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gtranslate/js/dwf.js?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.860Z","timestamp":1785145403860,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gtranslate/js/dwf.js?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-4854\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":18516,"size_decoded":5866,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (6709)","md5":"d5876bb3a13727dd5c3d1f376d438288","sha1":"9bc87e08a918f17b9184b07a2e0c256d063ae194","sha256":"cca48ecd2650cbc28b0008f22ddce42d8551866e942e2f2ca8534fed001c45c2","sha512":"241da2829901b277bdf3fd51db10327b54f022edd189ba2b5a2bc102650df48bd8cfa0f9c7768de84dd4766d7054f145552fe071833f618ed4a85a80f1744b5a","ssdeep":"384:3zCKMPZATN09S0mtJ+jqJ7+puDMwjUQvoW/i22fq:3VMhAh0M0sJ+jq5+pudN2C","tlshash":"67821a5612b6003f558703a6fcbe5f6c70bb13af8005a924ff6ecc47a999a84d737588","first_seen":"2023-05-16T22:18:58Z","last_seen":"2026-07-27T14:04:41.083464Z","times_seen":62,"resource_available":true,"data":"KGZ1bmN0aW9uKCl7dmFyIGd0PXdpbmRvdy5ndHJhbnNsYXRlU2V0dGluZ3N8fHt9O2d0PWd0W2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LXdpZGdldC1pZCcpXXx8Z3Q7dmFyIGxhbmdfYXJyYXlfZW5nbGlzaD17ImFmIjoiQWZyaWthYW5zIiwic3EiOiJBbGJhbmlhbiIsImFtIjoiQW1oYXJpYyIsImFyIjoiQXJhYmljIiwiaHkiOiJBcm1lbmlhbiIsImF6IjoiQXplcmJhaWphbmkiLCJldSI6IkJhc3F1ZSIsImJlIjoiQmVsYXJ1c2lhbiIsImJuIjoiQmVuZ2FsaSIsImJzIjoiQm9zbmlhbiIsImJnIjoiQnVsZ2FyaWFuIiwiY2EiOiJDYXRhbGFuIiwiY2ViIjoiQ2VidWFubyIsIm55IjoiQ2hpY2hld2EiLCJ6aC1DTiI6IkNoaW5lc2UgKFNpbXBsaWZpZWQpIiwiemgtVFciOiJDaGluZXNlIChUcmFkaXRpb25hbCkiLCJjbyI6IkNvcnNpY2FuIiwiaHIiOiJDcm9hdGlhbiIsImNzIjoiQ3plY2giLCJkYSI6IkRhbmlzaCIsIm5sIjoiRHV0Y2giLCJlbiI6IkVuZ2xpc2giLCJlbyI6IkVzcGVyYW50byIsImV0IjoiRXN0b25pYW4iLCJ0bCI6IkZpbGlwaW5vIiwiZmkiOiJGaW5uaXNoIiwiZnIiOiJGcmVuY2giLCJmeSI6IkZyaXNpYW4iLCJnbCI6IkdhbGljaWFuIiwia2EiOiJHZW9yZ2lhbiIsImRlIjoiR2VybWFuIiwiZWwiOiJHcmVlayIsImd1IjoiR3VqYXJhdGkiLCJodCI6IkhhaXRpYW4gQ3Jlb2xlIiwiaGEiOiJIYXVzYSIsImhhdyI6Ikhhd2FpaWFuIiwiaXciOiJIZWJyZXciLCJoaSI6IkhpbmRpIiwiaG1uIjoiSG1vbmciLCJodSI6Ikh1bmdhcmlhbiIsImlzIjoiSWNlbGFuZGljIiwiaWciOiJJZ2JvIiwiaWQiOiJJbmRvbmVzaWFuIiwiZ2EiOiJJcmlzaCIsIml0IjoiSXRhbGlhbiIsImphIjoiSmFwYW5lc2UiLCJqdyI6IkphdmFuZXNlIiwia24iOiJLYW5uYWRhIiwia2siOiJLYXpha2giLCJrbSI6IktobWVyIiwia28iOiJLb3JlYW4iLCJrdSI6Ikt1cmRpc2ggKEt1cm1hbmppKSIsImt5IjoiS3lyZ3l6IiwibG8iOiJMYW8iLCJsYSI6IkxhdGluIiwibHYiOiJMYXR2aWFuIiwibHQiOiJMaXRodWFuaWFuIiwibGIiOiJMdXhlbWJvdXJnaXNoIiwibWsiOiJNYWNlZG9uaWFuIiwibWciOiJNYWxhZ2FzeSIsIm1zIjoiTWFsYXkiLCJtbCI6Ik1hbGF5YWxhbSIsIm10IjoiTWFsdGVzZSIsIm1pIjoiTWFvcmkiLCJtciI6Ik1hcmF0aGkiLCJtbiI6Ik1vbmdvbGlhbiIsIm15IjoiTXlhbm1hciAoQnVybWVzZSkiLCJuZSI6Ik5lcGFsaSIsIm5vIjoiTm9yd2VnaWFuIiwicHMiOiJQYXNodG8iLCJmYSI6IlBlcnNpYW4iLCJwbCI6IlBvbGlzaCIsInB0IjoiUG9ydHVndWVzZSIsInBhIjoiUHVuamFiaSIsInJvIjoiUm9tYW5pYW4iLCJydSI6IlJ1c3NpYW4iLCJzbSI6IlNhbW9hbiIsImdkIjoiU2NvdHRpc2ggR2FlbGljIiwic3IiOiJTZXJiaWFuIiwic3QiOiJTZXNvdGhvIiwic24iOiJTaG9uYSIsInNkIjoiU2luZGhpIiwic2kiOiJTaW5oYWxhIiwic2siOiJTbG92YWsiLCJzbCI6IlNsb3ZlbmlhbiIsInNvIjoiU29tYWxpIiwiZXMiOiJTcGFuaXNoIiwic3UiOiJTdW5kYW5lc2UiLCJzdyI6IlN3YWhpbGkiLCJzdiI6IlN3ZWRpc2giLCJ0ZyI6IlRhamlrIiwidGEiOiJUYW1pbCIsInRlIjoiVGVsdWd1IiwidGgiOiJUaGFpIiwidHIiOiJUdXJraXNoIiwidWsiOiJVa3JhaW5pYW4iLCJ1ciI6IlVyZHUiLCJ1eiI6IlV6YmVrIiwidmkiOiJWaWV0bmFtZXNlIiwiY3kiOiJXZWxzaCIsInhoIjoiWGhvc2EiLCJ5aSI6IllpZGRpc2giLCJ5byI6IllvcnViYSIsInp1IjoiWnVsdSJ9O3ZhciBsYW5nX2FycmF5X25hdGl2ZT17ImFmIjoiQWZyaWthYW5zIiwic3EiOiJTaHFpcCIsImFtIjoiXHUxMmEwXHUxMjFiXHUxMjJkXHUxMjliIiwiYXIiOiJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjkiLCJoeSI6Ilx1MDU0MFx1MDU2MVx1MDU3NVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU3NiIsImF6IjoiQXpcdTAyNTlyYmF5Y2FuIGRpbGkiLCJldSI6IkV1c2thcmEiLCJiZSI6Ilx1MDQxMVx1MDQzNVx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0MVx1MDQzYVx1MDQzMFx1MDQ0ZiBcdTA0M2NcdTA0M2VcdTA0MzJcdTA0MzAiLCJibiI6Ilx1MDlhY1x1MDliZVx1MDk4Mlx1MDliMlx1MDliZSIsImJzIjoiQm9zYW5za2kiLCJiZyI6Ilx1MDQxMVx1MDQ0YVx1MDQzYlx1MDQzM1x1MDQzMFx1MDQ0MFx1MDQ0MVx1MDQzYVx1MDQzOCIsImNhIjoiQ2F0YWxcdTAwZTAiLCJjZWIiOiJDZWJ1YW5vIiwibnkiOiJDaGljaGV3YSIsInpoLUNOIjoiXHU3YjgwXHU0ZjUzXHU0ZTJkXHU2NTg3IiwiemgtVFciOiJcdTdlNDFcdTlhZDRcdTRlMmRcdTY1ODciLCJjbyI6IkNvcnN1IiwiaHIiOiJIcnZhdHNraSIsImNzIjoiXHUwMTBjZVx1MDE2MXRpbmFcdTIwMGUiLCJkYSI6IkRhbnNrIiwibmwiOiJOZWRlcmxhbmRzIiwiZW4iOiJFbmdsaXNoIiwiZW8iOiJFc3BlcmFudG8iLCJldCI6IkVlc3RpIiwidGwiOiJGaWxpcGlubyIsImZpIjoiU3VvbWkiLCJmciI6IkZyYW5cdTAwZTdhaXMiLCJmeSI6IkZyeXNrIiwiZ2wiOiJHYWxlZ28iLCJrYSI6Ilx1MTBlNVx1MTBkMFx1MTBlMFx1MTBkN1x1MTBlM1x1MTBkYVx1MTBkOCIsImRlIjoiRGV1dHNjaCIsImVsIjoiXHUwMzk1XHUwM2JiXHUwM2JiXHUwM2I3XHUwM2JkXHUwM2I5XHUwM2JhXHUwM2FjIiwiZ3UiOiJcdTBhOTdcdTBhYzFcdTBhOWNcdTBhYjBcdTBhYmVcdTBhYTRcdTBhYzAiLCJodCI6IktyZXlvbCBheWlzeWVuIiwiaGEiOiJIYXJzaGVuIEhhdXNhIiwiaGF3IjoiXHUwMTRjbGVsbyBIYXdhaVx1MDJiYmkiLCJpdyI6Ilx1MDVlMlx1MDViNFx1MDVkMVx1MDViMFx1MDVlOFx1MDViNFx1MDVkOVx1MDVlYSIsImhpIjoiXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUwOTI2XHUwOTQwIiwiaG1uIjoiSG1vbmciLCJodSI6Ik1hZ3lhciIsImlzIjoiXHUwMGNkc2xlbnNrYSIsImlnIjoiSWdibyIsImlkIjoiQmFoYXNhIEluZG9uZXNpYSIsImdhIjoiR2FlaWxnZSIsIml0IjoiSXRhbGlhbm8iLCJqYSI6Ilx1NjVlNVx1NjcyY1x1OGE5ZSIsImp3IjoiQmFzYSBKYXdhIiwia24iOiJcdTBjOTVcdTBjYThcdTBjY2RcdTBjYThcdTBjYTEiLCJrayI6Ilx1MDQ5YVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ5YiBcdTA0NDJcdTA0NTZcdTA0M2JcdTA0NTYiLCJrbSI6Ilx1MTc5N1x1MTdiNlx1MTc5Zlx1MTdiNlx1MTc4MVx1MTdkMlx1MTc5OFx1MTdjMlx1MTc5YSIsImtvIjoiXHVkNTVjXHVhZDZkXHVjNWI0Iiwia3UiOiJcdTA2NDNcdTA2NDhcdTA2MzFcdTA2MmZcdTA2Y2NcdTIwMGUiLCJreSI6Ilx1MDQxYVx1MDQ0Ylx1MDQ0MFx1MDQzM1x1MDQ0Ylx1MDQzN1x1MDQ0N1x1MDQzMCIsImxvIjoiXHUwZTllXHUwZWIyXHUwZWFhXHUwZWIyXHUwZWE1XHUwZWIyXHUwZWE3IiwibGEiOiJMYXRpbiIsImx2IjoiTGF0dmllXHUwMTYxdSB2YWxvZGEiLCJsdCI6IkxpZXR1dmlcdTAxNzMga2FsYmEiLCJsYiI6IkxcdTAwZWJ0emVidWVyZ2VzY2giLCJtayI6Ilx1MDQxY1x1MDQzMFx1MDQzYVx1MDQzNVx1MDQzNFx1MDQzZVx1MDQzZFx1MDQ0MVx1MDQzYVx1MDQzOCBcdTA0NThcdTA0MzBcdTA0MzdcdTA0MzhcdTA0M2EiLCJtZyI6Ik1hbGFnYXN5IiwibXMiOiJCYWhhc2EgTWVsYXl1IiwibWwiOiJcdTBkMmVcdTBkMzJcdTBkMmZcdTBkM2VcdTBkMzNcdTBkMDIiLCJtdCI6Ik1hbHRlc2UiLCJtaSI6IlRlIFJlbyBNXHUwMTAxb3JpIiwibXIiOiJcdTA5MmVcdTA5MzBcdTA5M2VcdTA5MjBcdTA5NDAiLCJtbiI6Ilx1MDQxY1x1MDQzZVx1MDQzZFx1MDQzM1x1MDQzZVx1MDQzYiIsIm15IjoiXHUxMDE3XHUxMDE5XHUxMDJjXHUxMDA1XHUxMDJjIiwibmUiOiJcdTA5MjhcdTA5NDdcdTA5MmFcdTA5M2VcdTA5MzJcdTA5NDAiLCJubyI6Ik5vcnNrIGJva21cdTAwZTVsIiwicHMiOiJcdTA2N2VcdTA2OWFcdTA2MmFcdTA2NDgiLCJmYSI6Ilx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjYyIsInBsIjoiUG9sc2tpIiwicHQiOiJQb3J0dWd1XHUwMGVhcyIsInBhIjoiXHUwYTJhXHUwYTcwXHUwYTFjXHUwYTNlXHUwYTJjXHUwYTQwIiwicm8iOiJSb21cdTAwZTJuXHUwMTAzIiwicnUiOiJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M2FcdTA0MzhcdTA0MzkiLCJzbSI6IlNhbW9hbiIsImdkIjoiR1x1MDBlMGlkaGxpZyIsInNyIjoiXHUwNDIxXHUwNDQwXHUwNDNmXHUwNDQxXHUwNDNhXHUwNDM4IFx1MDQ1OFx1MDQzNVx1MDQzN1x1MDQzOFx1MDQzYSIsInN0IjoiU2Vzb3RobyIsInNuIjoiU2hvbmEiLCJzZCI6Ilx1MDYzM1x1MDY0Nlx1MDY4Y1x1MDY0YSIsInNpIjoiXHUwZGMzXHUwZGQyXHUwZDgyXHUwZGM0XHUwZGJkIiwic2siOiJTbG92ZW5cdTAxMGRpbmEiLCJzbCI6IlNsb3Zlblx1MDE2MVx1MDEwZGluYSIsInNvIjoiQWZzb29tYWFsaSIsImVzIjoiRXNwYVx1MDBmMW9sIiwic3UiOiJCYXNhIFN1bmRhIiwic3ciOiJLaXN3YWhpbGkiLCJzdiI6IlN2ZW5za2EiLCJ0ZyI6Ilx1MDQyMlx1MDQzZVx1MDRiN1x1MDQzOFx1MDQzYVx1MDRlMyIsInRhIjoiXHUwYmE0XHUwYmFlXHUwYmJmXHUwYmI0XHUwYmNkIiwidGUiOiJcdTBjMjRcdTBjNDZcdTBjMzJcdTBjNDFcdTBjMTdcdTBjNDEiLCJ0aCI6Ilx1MGU0NFx1MGUxN1x1MGUyMiIsInRyIjoiVFx1MDBmY3JrXHUwMGU3ZSIsInVrIjoiXHUwNDIzXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDU3XHUwNDNkXHUwNDQxXHUwNDRjXHUwNDNhXHUwNDMwIiwidXIiOiJcdTA2MjdcdTA2MzFcdTA2MmZcdTA2NDgiLCJ1eiI6Ik9cdTIwMTh6YmVrY2hhIiwidmkiOiJUaVx1MWViZm5nIFZpXHUxZWM3dCIsImN5IjoiQ3ltcmFlZyIsInhoIjoiaXNpWGhvc2EiLCJ5aSI6Ilx1MDVkOVx1MDVkOVx1MDVkM1x1MDVkOVx1MDVlOSIsInlvIjoiWW9yXHUwMGY5Ylx1MDBlMSIsInp1IjoiWnVsdSJ9O3ZhciBkZWZhdWx0X2xhbmd1YWdlPWd0LmRlZmF1bHRfbGFuZ3VhZ2V8fCdhdXRvJzt2YXIgbGFuZ3VhZ2VzPWd0Lmxhbmd1YWdlc3x8T2JqZWN0LmtleXMobGFuZ19hcnJheV9lbmdsaXNoKTt2YXIgYWx0X2ZsYWdzPWd0LmFsdF9mbGFnc3x8e307dmFyIGZsYWdfc2l6ZT1ndC5mbGFnX3NpemV8fDMyO3ZhciBmbGFnX3N0eWxlPWd0LmZsYWdfc3R5bGV8fCcyZCc7dmFyIGZsYWdzX2xvY2F0aW9uPWd0LmZsYWdzX2xvY2F0aW9ufHwnaHR0cHM6Ly9jZG4uZ3RyYW5zbGF0ZS5uZXQvZmxhZ3MvJzt2YXIgdXJsX3N0cnVjdHVyZT1ndC51cmxfc3RydWN0dXJlfHwnbm9uZSc7dmFyIGN1c3RvbV9kb21haW5zPWd0LmN1c3RvbV9kb21haW5zfHx7fTt2YXIgc3dpdGNoZXJfaG9yaXpvbnRhbF9wb3NpdGlvbj1ndC5zd2l0Y2hlcl9ob3Jpem9udGFsX3Bvc2l0aW9ufHwnbGVmdCc7dmFyIHN3aXRjaGVyX3ZlcnRpY2FsX3Bvc2l0aW9uPWd0LnN3aXRjaGVyX3ZlcnRpY2FsX3Bvc2l0aW9ufHwnYm90dG9tJzt2YXIgc3dpdGNoZXJfb3Blbl9kaXJlY3Rpb249Z3Quc3dpdGNoZXJfb3Blbl9kaXJlY3Rpb258fCdib3R0b20nO3ZhciBuYXRpdmVfbGFuZ3VhZ2VfbmFtZXM9Z3QubmF0aXZlX2xhbmd1YWdlX25hbWVzfHxmYWxzZTt2YXIgZGV0ZWN0X2Jyb3dzZXJfbGFuZ3VhZ2U9Z3QuZGV0ZWN0X2Jyb3dzZXJfbGFuZ3VhZ2V8fGZhbHNlO3ZhciB3cmFwcGVyX3NlbGVjdG9yPWd0LndyYXBwZXJfc2VsZWN0b3J8fCcuZ3RyYW5zbGF0ZV93cmFwcGVyJzt2YXIgc3dpdGNoZXJfdGV4dF9jb2xvcj1ndC5zd2l0Y2hlcl90ZXh0X2NvbG9yfHwnIzY2Nic7dmFyIHN3aXRjaGVyX2Fycm93X2NvbG9yPWd0LnN3aXRjaGVyX2Fycm93X2NvbG9yfHwnIzY2Nic7dmFyIHN3aXRjaGVyX2JvcmRlcl9jb2xvcj1ndC5zd2l0Y2hlcl9ib3JkZXJfY29sb3J8fCcjY2NjJzt2YXIgc3dpdGNoZXJfYmFja2dyb3VuZF9jb2xvcj1ndC5zd2l0Y2hlcl9iYWNrZ3JvdW5kX2NvbG9yfHwnI2ZmZic7dmFyIHN3aXRjaGVyX2JhY2tncm91bmRfc2hhZG93X2NvbG9yPWd0LnN3aXRjaGVyX2JhY2tncm91bmRfc2hhZG93X2NvbG9yfHwnI2VmZWZlZic7dmFyIHN3aXRjaGVyX2JhY2tncm91bmRfaG92ZXJfY29sb3I9Z3Quc3dpdGNoZXJfYmFja2dyb3VuZF9ob3Zlcl9jb2xvcnx8JyNmZmYnO3ZhciBkcm9wZG93bl90ZXh0X2NvbG9yPWd0LmRyb3Bkb3duX3RleHRfY29sb3J8fCcjMDAwJzt2YXIgZHJvcGRvd25faG92ZXJfY29sb3I9Z3QuZHJvcGRvd25faG92ZXJfY29sb3J8fCcjZmZmJzt2YXIgZHJvcGRvd25fYmFja2dyb3VuZF9jb2xvcj1ndC5kcm9wZG93bl9iYWNrZ3JvdW5kX2NvbG9yfHwnI2VlZSc7dmFyIGN1c3RvbV9jc3M9Z3QuY3VzdG9tX2Nzc3x8Jyc7dmFyIGxhbmdfYXJyYXk9bmF0aXZlX2xhbmd1YWdlX25hbWVzJiZsYW5nX2FycmF5X25hdGl2ZXx8bGFuZ19hcnJheV9lbmdsaXNoO3ZhciB1X2NsYXNzPScuZ3RfY29udGFpbmVyLScrQXJyYXkuZnJvbSgnZHdmJyt3cmFwcGVyX3NlbGVjdG9yKS5yZWR1Y2UoZnVuY3Rpb24oaCxjKXtyZXR1cm4gMHwoMzEqaCtjLmNoYXJDb2RlQXQoMCkpfSwwKS50b1N0cmluZygzNik7dmFyIHdpZGdldF9jb2RlPSc8IS0tIEdUcmFuc2xhdGU6IGh0dHBzOi8vZ3RyYW5zbGF0ZS5jb20gLS0+Jzt2YXIgd2lkZ2V0X2Nzcz1jdXN0b21fY3NzO2ZsYWdzX2xvY2F0aW9uKz0oZmxhZ19zdHlsZT09JzNkJz9mbGFnX3NpemU6J3N2ZycpKycvJzt2YXIgZmxhZ19leHQ9ZmxhZ19zdHlsZT09JzNkJz8nLnBuZyc6Jy5zdmcnO2Z1bmN0aW9uIGdldF9mbGFnX3NyYyhsYW5nKXtpZighYWx0X2ZsYWdzW2xhbmddKQpyZXR1cm4gZmxhZ3NfbG9jYXRpb24rbGFuZytmbGFnX2V4dDtlbHNlIGlmKGFsdF9mbGFnc1tsYW5nXT09J3VzYScpCnJldHVybiBmbGFnc19sb2NhdGlvbisnZW4tdXMnK2ZsYWdfZXh0O2Vsc2UgaWYoYWx0X2ZsYWdzW2xhbmddPT0nY2FuYWRhJykKcmV0dXJuIGZsYWdzX2xvY2F0aW9uKydlbi1jYScrZmxhZ19leHQ7ZWxzZSBpZihhbHRfZmxhZ3NbbGFuZ109PSdicmF6aWwnKQpyZXR1cm4gZmxhZ3NfbG9jYXRpb24rJ3B0LWJyJytmbGFnX2V4dDtlbHNlIGlmKGFsdF9mbGFnc1tsYW5nXT09J21leGljbycpCnJldHVybiBmbGFnc19sb2NhdGlvbisnZXMtbXgnK2ZsYWdfZXh0O2Vsc2UgaWYoYWx0X2ZsYWdzW2xhbmddPT0nYXJnZW50aW5hJykKcmV0dXJuIGZsYWdzX2xvY2F0aW9uKydlcy1hcicrZmxhZ19leHQ7ZWxzZSBpZihhbHRfZmxhZ3NbbGFuZ109PSdjb2xvbWJpYScpCnJldHVybiBmbGFnc19sb2NhdGlvbisnZXMtY28nK2ZsYWdfZXh0O2Vsc2UgaWYoYWx0X2ZsYWdzW2xhbmddPT0ncXVlYmVjJykKcmV0dXJuIGZsYWdzX2xvY2F0aW9uKydmci1xYycrZmxhZ19leHQ7ZWxzZQpyZXR1cm4gYWx0X2ZsYWdzW2xhbmddO30KZnVuY3Rpb24gZ2V0X2xhbmdfaHJlZihsYW5nKXt2YXIgaHJlZj0nIyc7aWYodXJsX3N0cnVjdHVyZT09J3N1Yl9kaXJlY3RvcnknKXt2YXIgZ3RfcmVxdWVzdF91cmk9KGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LW9yaWctdXJsJyl8fChsb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKCcvJytjdXJyZW50X2xhbmcrJy8nKSYmJy8nK2xvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJykuc2xpY2UoMikuam9pbignLycpfHxsb2NhdGlvbi5wYXRobmFtZSkpK2xvY2F0aW9uLnNlYXJjaCtsb2NhdGlvbi5oYXNoO2hyZWY9KGxhbmc9PWRlZmF1bHRfbGFuZ3VhZ2UpJiZsb2NhdGlvbi5wcm90b2NvbCsnLy8nK2xvY2F0aW9uLmhvc3RuYW1lK2d0X3JlcXVlc3RfdXJpfHxsb2NhdGlvbi5wcm90b2NvbCsnLy8nK2xvY2F0aW9uLmhvc3RuYW1lKycvJytsYW5nK2d0X3JlcXVlc3RfdXJpO31lbHNlIGlmKHVybF9zdHJ1Y3R1cmU9PSdzdWJfZG9tYWluJyl7dmFyIGd0X3JlcXVlc3RfdXJpPShkb2N1bWVudC5jdXJyZW50U2NyaXB0LmdldEF0dHJpYnV0ZSgnZGF0YS1ndC1vcmlnLXVybCcpfHxsb2NhdGlvbi5wYXRobmFtZSkrbG9jYXRpb24uc2VhcmNoK2xvY2F0aW9uLmhhc2g7dmFyIGRvbWFpbj1kb2N1bWVudC5jdXJyZW50U2NyaXB0LmdldEF0dHJpYnV0ZSgnZGF0YS1ndC1vcmlnLWRvbWFpbicpfHxsb2NhdGlvbi5ob3N0bmFtZTtpZih0eXBlb2YgY3VzdG9tX2RvbWFpbnM9PSdvYmplY3QnJiZjdXN0b21fZG9tYWluc1tsYW5nXSkKaHJlZj0obGFuZz09ZGVmYXVsdF9sYW5ndWFnZSkmJmxvY2F0aW9uLnByb3RvY29sKycvLycrZG9tYWluK2d0X3JlcXVlc3RfdXJpfHxsb2NhdGlvbi5wcm90b2NvbCsnLy8nK2N1c3RvbV9kb21haW5zW2xhbmddK2d0X3JlcXVlc3RfdXJpO2Vsc2UKaHJlZj0obGFuZz09ZGVmYXVsdF9sYW5ndWFnZSkmJmxvY2F0aW9uLnByb3RvY29sKycvLycrZG9tYWluK2d0X3JlcXVlc3RfdXJpfHxsb2NhdGlvbi5wcm90b2NvbCsnLy8nK2xhbmcrJy4nK2RvbWFpbi5yZXBsYWNlKC9ed3d3XC4vLCcnKStndF9yZXF1ZXN0X3VyaTt9CnJldHVybiBocmVmO30KdmFyIGN1cnJlbnRfbGFuZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykuZ2V0QXR0cmlidXRlKCdsYW5nJyl8fGRlZmF1bHRfbGFuZ3VhZ2U7aWYodXJsX3N0cnVjdHVyZT09J25vbmUnKXt2YXIgZ29vZ3RyYW5zX21hdGNoZXM9ZG9jdW1lbnQuY29va2llLm1hdGNoKCcoXnw7KSA/Z29vZ3RyYW5zPShbXjtdKikoO3wkKScpO2N1cnJlbnRfbGFuZz1nb29ndHJhbnNfbWF0Y2hlcyYmZ29vZ3RyYW5zX21hdGNoZXNbMl0uc3BsaXQoJy8nKVsyXXx8Y3VycmVudF9sYW5nO30KaWYoIWxhbmdfYXJyYXlbY3VycmVudF9sYW5nXSkKY3VycmVudF9sYW5nPWRlZmF1bHRfbGFuZ3VhZ2U7aWYodXJsX3N0cnVjdHVyZT09J25vbmUnKXt3aWRnZXRfY29kZSs9JzxkaXYgaWQ9Imdvb2dsZV90cmFuc2xhdGVfZWxlbWVudDIiPjwvZGl2Pic7d2lkZ2V0X2Nzcys9ImRpdi5za2lwdHJhbnNsYXRlLCNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQye2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Ijt3aWRnZXRfY3NzKz0iYm9keXt0b3A6MCFpbXBvcnRhbnR9Ijt3aWRnZXRfY3NzKz0iZm9udCBmb250e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246aW5pdGlhbCFpbXBvcnRhbnR9Ijt9CnZhciBmb250X3NpemU9MTAsd2lkZ2V0X3dpZHRoPTE2MyxhcnJvd19zaXplPTc7aWYoZmxhZ19zaXplPT0yNCkKZm9udF9zaXplPTEyLHdpZGdldF93aWR0aD0xNzMsYXJyb3dfc2l6ZT0xMTtlbHNlIGlmKGZsYWdfc2l6ZT09MzIpCmZvbnRfc2l6ZT0xNCx3aWRnZXRfd2lkdGg9MTkzLGFycm93X3NpemU9MTI7ZWxzZSBpZihmbGFnX3NpemU9PTQ4KQpmb250X3NpemU9MTYsd2lkZ2V0X3dpZHRoPTIyMyxhcnJvd19zaXplPTE0O3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXJ7Zm9udC1mYW1pbHk6QXJpYWw7Zm9udC1zaXplOicrZm9udF9zaXplKydwdDt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOicrd2lkZ2V0X3dpZHRoKydweDtsaW5lLWhlaWdodDowfSc7d2lkZ2V0X2Nzcys9dV9jbGFzcysnIC5ndF9zd2l0Y2hlciBhe3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOicrZm9udF9zaXplKydwdDtib3gtc2l6aW5nOmNvbnRlbnQtYm94fSc7d2lkZ2V0X2Nzcys9dV9jbGFzcysnIC5ndF9zd2l0Y2hlciBhIGltZ3t3aWR0aDonK2ZsYWdfc2l6ZSsncHg7aGVpZ2h0OicrZmxhZ19zaXplKydweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmU7Ym9yZGVyOjA7cGFkZGluZzowO21hcmdpbjowO29wYWNpdHk6MC44fSc7d2lkZ2V0X2Nzcys9dV9jbGFzcysnIC5ndF9zd2l0Y2hlciBhOmhvdmVyIGltZ3tvcGFjaXR5OjF9Jzt3aWRnZXRfY3NzKz11X2NsYXNzKycgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZHtiYWNrZ3JvdW5kOicrc3dpdGNoZXJfYmFja2dyb3VuZF9jb2xvcisnIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICcrc3dpdGNoZXJfYmFja2dyb3VuZF9zaGFkb3dfY29sb3IrJyAwJSwgJytzd2l0Y2hlcl9iYWNrZ3JvdW5kX2NvbG9yKycgNzAlKTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTl9Jzt3aWRnZXRfY3NzKz11X2NsYXNzKycgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZCBhe2JvcmRlcjoxcHggc29saWQgJytzd2l0Y2hlcl9ib3JkZXJfY29sb3IrJztjb2xvcjonK3N3aXRjaGVyX3RleHRfY29sb3IrJztwYWRkaW5nOjNweCA1cHg7d2lkdGg6Jysod2lkZ2V0X3dpZHRoLTIqNS0yKjEpKydweH0nO3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgLmd0X3NlbGVjdGVkIGE6YWZ0ZXJ7aGVpZ2h0OicrZmxhZ19zaXplKydweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDonKyhmbGFnX3NpemU8MjA/NToxMCkrJ3B4O3dpZHRoOjE1cHg7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1zaXplOicrYXJyb3dfc2l6ZSsncHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wnIHdpZHRoPVwnMTZcJyBoZWlnaHQ9XCcxNlwnIHZpZXdCb3g9XCcwIDAgMjg1IDI4NVwnPjxwYXRoIGQ9XCdNMjgyIDc2LjVsLTE0LjItMTQuM2E5IDkgMCAwIDAtMTMuMSAwTDE0Mi41IDE3NC40IDMwLjMgNjIuMmE5IDkgMCAwIDAtMTMuMiAwTDMgNzYuNWE5IDkgMCAwIDAgMCAxMy4xbDEzMyAxMzNhOSA5IDAgMCAwIDEzLjEgMGwxMzMtMTMzYTkgOSAwIDAgMCAwLTEzelwnIHN0eWxlPVwnZmlsbDonK2VzY2FwZShzd2l0Y2hlcl9hcnJvd19jb2xvcikrJ1wnLz48L3N2Zz4iKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Y29udGVudDoiIiFpbXBvcnRhbnQ7dHJhbnNpdGlvbjphbGwgLjJzfSc7d2lkZ2V0X2Nzcys9dV9jbGFzcysnIC5ndF9zd2l0Y2hlciAuZ3Rfc2VsZWN0ZWQgYS5vcGVuOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyl9Jzt3aWRnZXRfY3NzKz11X2NsYXNzKycgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZCBhOmhvdmVye2JhY2tncm91bmQ6Jytzd2l0Y2hlcl9iYWNrZ3JvdW5kX2hvdmVyX2NvbG9yKyd9Jzt3aWRnZXRfY3NzKz11X2NsYXNzKycgLmd0X3N3aXRjaGVyIC5ndF9jdXJyZW50e2Rpc3BsYXk6bm9uZX0nO3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICcrc3dpdGNoZXJfYm9yZGVyX2NvbG9yKyc7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAnK3N3aXRjaGVyX2JvcmRlcl9jb2xvcisnO2JvcmRlci0nK3N3aXRjaGVyX29wZW5fZGlyZWN0aW9uKyc6MXB4IHNvbGlkICcrc3dpdGNoZXJfYm9yZGVyX2NvbG9yKyc7YmFja2dyb3VuZC1jb2xvcjonK2Ryb3Bkb3duX2JhY2tncm91bmRfY29sb3IrJztkaXNwbGF5Om5vbmU7d2lkdGg6Jysod2lkZ2V0X3dpZHRoLTIqMSkrJ3B4O21heC1oZWlnaHQ6MTk4cHg7aGVpZ2h0OjA7Ym94LXNpemluZzpjb250ZW50LWJveDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47dHJhbnNpdGlvbjpoZWlnaHQgMC41cyBlYXNlLWluLW91dH0nO3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbiBhe2NvbG9yOicrZHJvcGRvd25fdGV4dF9jb2xvcisnO3BhZGRpbmc6M3B4IDVweH0nO3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbiBhOmhvdmVye2JhY2tncm91bmQ6Jytkcm9wZG93bl9ob3Zlcl9jb2xvcisnfSc7d2lkZ2V0X2Nzcys9dV9jbGFzcysnIC5ndF9zd2l0Y2hlciAuZ3Rfb3B0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9Jzt3aWRnZXRfY3NzKz11X2NsYXNzKycgLmd0X3N3aXRjaGVyIC5ndF9vcHRpb246Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjVweH0nO3dpZGdldF9jc3MrPXVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojODg4fSc7d2lkZ2V0X2NvZGUrPSc8ZGl2IGNsYXNzPSJndF9zd2l0Y2hlciBub3RyYW5zbGF0ZSI+Jzt2YXIgZ3RfY3VycmVudF9kaXY9JzxkaXYgY2xhc3M9Imd0X3NlbGVjdGVkIj48YSBocmVmPSIjIj48aW1nIHNyYz0iJytnZXRfZmxhZ19zcmMoY3VycmVudF9sYW5nKSsnIiBoZWlnaHQ9IicrZmxhZ19zaXplKyciIHdpZHRoPSInK2ZsYWdfc2l6ZSsnIiBhbHQ9IicrY3VycmVudF9sYW5nKyciIC8+ICcrbGFuZ19hcnJheVtjdXJyZW50X2xhbmddKyc8L2E+PC9kaXY+Jzt2YXIgZ3Rfb3B0aW9uc19kaXY9JzxkaXYgY2xhc3M9Imd0X29wdGlvbiI+JztsYW5ndWFnZXMuZm9yRWFjaChmdW5jdGlvbihsYW5nKXt2YXIgZWxfYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7ZWxfYS5ocmVmPWdldF9sYW5nX2hyZWYobGFuZyk7ZWxfYS50aXRsZT1sYW5nX2FycmF5W2xhbmddO2VsX2EuY2xhc3NMaXN0LmFkZCgnbnR1cmwnKTtsYW5nPT1jdXJyZW50X2xhbmcmJmVsX2EuY2xhc3NMaXN0LmFkZCgnZ3RfY3VycmVudCcpO2VsX2Euc2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhbmcnLGxhbmcpO3ZhciBlbF9pbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7ZWxfaW1nLmhlaWdodD1lbF9pbWcud2lkdGg9ZmxhZ19zaXplO2VsX2ltZy5hbHQ9bGFuZztlbF9pbWcuc2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhenktc3JjJyxnZXRfZmxhZ19zcmMobGFuZykpO2VsX2EuYXBwZW5kQ2hpbGQoZWxfaW1nKTtlbF9hLmlubmVySFRNTCs9JyAnK2xhbmdfYXJyYXlbbGFuZ107Z3Rfb3B0aW9uc19kaXYrPWVsX2Eub3V0ZXJIVE1MO30pO2d0X29wdGlvbnNfZGl2Kz0nPC9kaXY+JztpZihzd2l0Y2hlcl9vcGVuX2RpcmVjdGlvbj09J3RvcCcpCndpZGdldF9jb2RlKz1ndF9vcHRpb25zX2RpditndF9jdXJyZW50X2RpdjtlbHNlCndpZGdldF9jb2RlKz1ndF9jdXJyZW50X2RpditndF9vcHRpb25zX2Rpdjt3aWRnZXRfY29kZSs9JzwvZGl2Pic7aWYoc3dpdGNoZXJfaG9yaXpvbnRhbF9wb3NpdGlvbiE9J2lubGluZScpCndpZGdldF9jb2RlPSc8ZGl2IGNsYXNzPSJndF9zd2l0Y2hlcl93cmFwcGVyIiBzdHlsZT0icG9zaXRpb246Zml4ZWQ7Jytzd2l0Y2hlcl92ZXJ0aWNhbF9wb3NpdGlvbisnOjA7Jytzd2l0Y2hlcl9ob3Jpem9udGFsX3Bvc2l0aW9uKyc6OCU7ei1pbmRleDo5OTk5OTk7Ij4nK3dpZGdldF9jb2RlKyc8L2Rpdj4nO3ZhciBhZGRfY3NzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7YWRkX2Nzcy5jbGFzc0xpc3QuYWRkKCdndHJhbnNsYXRlX2NzcycpO2FkZF9jc3MudGV4dENvbnRlbnQ9d2lkZ2V0X2Nzcztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGFkZF9jc3MpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwod3JhcHBlcl9zZWxlY3RvcikuZm9yRWFjaChmdW5jdGlvbihlKXtlLmNsYXNzTGlzdC5hZGQodV9jbGFzcy5zdWJzdHJpbmcoMSkpO2UuaW5uZXJIVE1MKz13aWRnZXRfY29kZX0pO2lmKHVybF9zdHJ1Y3R1cmU9PSdub25lJyl7ZnVuY3Rpb24gZ2V0X2N1cnJlbnRfbGFuZygpe3ZhciBrZXlWYWx1ZT1kb2N1bWVudC5jb29raWUubWF0Y2goJyhefDspID9nb29ndHJhbnM9KFteO10qKSg7fCQpJyk7cmV0dXJuIGtleVZhbHVlP2tleVZhbHVlWzJdLnNwbGl0KCcvJylbMl06bnVsbDt9CmZ1bmN0aW9uIGZpcmVfZXZlbnQoZWxlbWVudCxldmVudCl7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KXt2YXIgZXZ0PWRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7ZWxlbWVudC5maXJlRXZlbnQoJ29uJytldmVudCxldnQpfWVsc2V7dmFyIGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO2V2dC5pbml0RXZlbnQoZXZlbnQsdHJ1ZSx0cnVlKTtlbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZ0KX19Y2F0Y2goZSl7fX0KZnVuY3Rpb24gbG9hZF90bGliKCl7aWYoIXdpbmRvdy5ndF90cmFuc2xhdGVfc2NyaXB0KXt3aW5kb3cuZ3RfdHJhbnNsYXRlX3NjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtndF90cmFuc2xhdGVfc2NyaXB0LnNyYz0naHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbS90cmFuc2xhdGVfYS9lbGVtZW50LmpzP2NiPWdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0Mic7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChndF90cmFuc2xhdGVfc2NyaXB0KTt9fQp3aW5kb3cuZG9HVHJhbnNsYXRlPWZ1bmN0aW9uKGxhbmdfcGFpcil7aWYobGFuZ19wYWlyLnZhbHVlKWxhbmdfcGFpcj1sYW5nX3BhaXIudmFsdWU7aWYobGFuZ19wYWlyPT0nJylyZXR1cm47dmFyIGxhbmc9bGFuZ19wYWlyLnNwbGl0KCd8JylbMV07aWYoZ2V0X2N1cnJlbnRfbGFuZygpPT1udWxsJiZsYW5nPT1sYW5nX3BhaXIuc3BsaXQoJ3wnKVswXSlyZXR1cm47dmFyIHRlQ29tYm87dmFyIHNlbD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7Zm9yKHZhciBpPTA7aTxzZWwubGVuZ3RoO2krKylpZihzZWxbaV0uY2xhc3NOYW1lLmluZGV4T2YoJ2dvb2ctdGUtY29tYm8nKSE9LTEpe3RlQ29tYm89c2VsW2ldO2JyZWFrO31pZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MicpPT1udWxsfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50MicpLmlubmVySFRNTC5sZW5ndGg9PTB8fHRlQ29tYm8ubGVuZ3RoPT0wfHx0ZUNvbWJvLmlubmVySFRNTC5sZW5ndGg9PTApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkb0dUcmFuc2xhdGUobGFuZ19wYWlyKX0sNTAwKX1lbHNle3RlQ29tYm8udmFsdWU9bGFuZztmaXJlX2V2ZW50KHRlQ29tYm8sJ2NoYW5nZScpO2ZpcmVfZXZlbnQodGVDb21ibywnY2hhbmdlJyl9fQp3aW5kb3cuZ29vZ2xlVHJhbnNsYXRlRWxlbWVudEluaXQyPWZ1bmN0aW9uKCl7bmV3IGdvb2dsZS50cmFuc2xhdGUuVHJhbnNsYXRlRWxlbWVudCh7cGFnZUxhbmd1YWdlOmRlZmF1bHRfbGFuZ3VhZ2UsYXV0b0Rpc3BsYXk6ZmFsc2V9LCdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQyJyl9O2lmKGN1cnJlbnRfbGFuZyE9ZGVmYXVsdF9sYW5ndWFnZSkKbG9hZF90bGliKCk7ZWxzZQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHVfY2xhc3MpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLGxvYWRfdGxpYil9KTt9CnZhciBndF9zbGlkZXJfb3Blbj1mYWxzZTtmdW5jdGlvbiBndF9zaG93X3NsaWRlcihlbCl7Z3Rfc2xpZGVyX29wZW49dHJ1ZTtlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3Rfb3B0aW9uIGEgaW1nOm5vdChbc3JjXSknKS5mb3JFYWNoKGZ1bmN0aW9uKGltZyl7aW1nLnNldEF0dHJpYnV0ZSgnc3JjJyxpbWcuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhenktc3JjJykpO30pO2VsLnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5ndF9zZWxlY3RlZCBhJykuY2xhc3NMaXN0LmFkZCgnb3BlbicpO3ZhciBvcHRpb25fZWw9ZWwucXVlcnlTZWxlY3RvcignZGl2Lmd0X29wdGlvbicpO29wdGlvbl9lbC5zdHlsZS5kaXNwbGF5PSdibG9jayc7b3B0aW9uX2VsLnN0eWxlLm92ZXJmbG93WT0naGlkZGVuJztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYob3B0aW9uX2VsLnN0eWxlLmRpc3BsYXkhPSdibG9jaycpcmV0dXJuO29wdGlvbl9lbC5zdHlsZS5oZWlnaHQ9TWF0aC5taW4oMTk4LChNYXRoLm1pbihvcHRpb25fZWwuY2hpbGRFbGVtZW50Q291bnQtMSw2KSooZmxhZ19zaXplKzYpKzEpKSsncHgnO30sMTAwKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYob3B0aW9uX2VsLnN0eWxlLmRpc3BsYXkhPSdibG9jaycpcmV0dXJuO29wdGlvbl9lbC5zdHlsZS5vdmVyZmxvd1k9J2F1dG8nO30sNjAwKTt9CmZ1bmN0aW9uIGd0X2hpZGVfc2xpZGVyKCl7Z3Rfc2xpZGVyX29wZW49ZmFsc2U7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh1X2NsYXNzKycgZGl2Lmd0X3N3aXRjaGVyJykuZm9yRWFjaChmdW5jdGlvbihlKXtlLnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5ndF9zZWxlY3RlZCBhJykuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO3ZhciBvcHRpb25fZWw9ZS5xdWVyeVNlbGVjdG9yKCdkaXYuZ3Rfb3B0aW9uJyk7b3B0aW9uX2VsLnN0eWxlLmhlaWdodD0wO29wdGlvbl9lbC5zdHlsZS5vdmVyZmxvd1k9J2hpZGRlbic7c2V0VGltZW91dChmdW5jdGlvbigpe29wdGlvbl9lbC5zdHlsZS5kaXNwbGF5PSdub25lJztvcHRpb25fZWwuc3R5bGUub3ZlcmZsb3dZPSdhdXRvJzt9LDUwMCk7fSk7fQpmdW5jdGlvbiBndF91cGRhdGVfc2xpZGVyX2xhbmd1YWdlKGVsKXtlbC5wYXJlbnROb2RlLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcignZGl2Lmd0X3NlbGVjdGVkIGEnKS5pbm5lckhUTUw9ZWwuaW5uZXJIVE1MO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlbC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2EuZ3RfY3VycmVudCcpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKCdndF9jdXJyZW50Jyk7fSk7ZWwuY2xhc3NMaXN0LmFkZCgnZ3RfY3VycmVudCcpO30sNDAwKTt9CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2lmKGd0X3NsaWRlcl9vcGVuKWd0X2hpZGVfc2xpZGVyKCk7fSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh1X2NsYXNzKycgLmd0X3N3aXRjaGVyIGRpdi5ndF9zZWxlY3RlZCcpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZXZ0KXtldnQucHJldmVudERlZmF1bHQoKTtldnQuc3RvcFByb3BhZ2F0aW9uKCk7aWYoZ3Rfc2xpZGVyX29wZW4pZ3RfaGlkZV9zbGlkZXIoKTtlbHNlIGd0X3Nob3dfc2xpZGVyKGUucGFyZW50Tm9kZSk7fSk7ZS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLGZ1bmN0aW9uKGV2dCl7ZXZ0LnRhcmdldC5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ndF9vcHRpb24gaW1nOm5vdChbc3JjXSknKS5mb3JFYWNoKGZ1bmN0aW9uKGltZyl7aW1nLnNldEF0dHJpYnV0ZSgnc3JjJyxpbWcuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhenktc3JjJykpfSl9KTt9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHVfY2xhc3MrJyAuZ3Rfc3dpdGNoZXIgZGl2Lmd0X29wdGlvbiBhJykuZm9yRWFjaChmdW5jdGlvbihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldnQpe2lmKHVybF9zdHJ1Y3R1cmU9PSdub25lJyl7ZXZ0LnByZXZlbnREZWZhdWx0KCk7ZG9HVHJhbnNsYXRlKGRlZmF1bHRfbGFuZ3VhZ2UrJ3wnK2UuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhbmcnKSk7fQpndF91cGRhdGVfc2xpZGVyX2xhbmd1YWdlKGUpO30pfSk7aWYoZGV0ZWN0X2Jyb3dzZXJfbGFuZ3VhZ2UmJndpbmRvdy5zZXNzaW9uU3RvcmFnZSYmd2luZG93Lm5hdmlnYXRvciYmc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZ3RfYXV0b3N3aXRjaCcpPT1udWxsJiYhL2JvdHxzcGlkZXJ8c2x1cnB8ZmFjZWJvb2svaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgYWNjZXB0X2xhbmd1YWdlPShuYXZpZ2F0b3IubGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2UpLnRvTG93ZXJDYXNlKCk7c3dpdGNoKGFjY2VwdF9sYW5ndWFnZSl7Y2FzZSAnemgnOmNhc2UgJ3poLWNuJzp2YXIgcHJlZmVycmVkX2xhbmd1YWdlPSd6aC1DTic7YnJlYWs7Y2FzZSAnemgtdHcnOmNhc2UgJ3poLWhrJzp2YXIgcHJlZmVycmVkX2xhbmd1YWdlPSd6aC1UVyc7YnJlYWs7Y2FzZSAnaGUnOnZhciBwcmVmZXJyZWRfbGFuZ3VhZ2U9J2l3JzticmVhaztkZWZhdWx0OnZhciBwcmVmZXJyZWRfbGFuZ3VhZ2U9YWNjZXB0X2xhbmd1YWdlLnN1YnN0cigwLDIpO2JyZWFrO30KaWYoY3VycmVudF9sYW5nPT1kZWZhdWx0X2xhbmd1YWdlJiZwcmVmZXJyZWRfbGFuZ3VhZ2UhPWRlZmF1bHRfbGFuZ3VhZ2UmJmxhbmd1YWdlcy5pbmNsdWRlcyhwcmVmZXJyZWRfbGFuZ3VhZ2UpKXtpZih1cmxfc3RydWN0dXJlPT0nbm9uZScpe2xvYWRfdGxpYigpO3dpbmRvdy5ndF90cmFuc2xhdGVfc2NyaXB0Lm9ubG9hZD1mdW5jdGlvbigpe2RvR1RyYW5zbGF0ZShkZWZhdWx0X2xhbmd1YWdlKyd8JytwcmVmZXJyZWRfbGFuZ3VhZ2UpO3ZhciBlbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHVfY2xhc3MrJyBhW2RhdGEtZ3QtbGFuZz0iJytwcmVmZXJyZWRfbGFuZ3VhZ2UrJyJdJyk7ZWwucXVlcnlTZWxlY3RvckFsbCgnaW1nOm5vdChbc3JjXSknKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uuc2V0QXR0cmlidXRlKCdzcmMnLGUuZ2V0QXR0cmlidXRlKCdkYXRhLWd0LWxhenktc3JjJykpfSk7Z3RfdXBkYXRlX3NsaWRlcl9sYW5ndWFnZShlbCk7fTt9ZWxzZQpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHVfY2xhc3MrJyBhW2RhdGEtZ3QtbGFuZz0iJytwcmVmZXJyZWRfbGFuZ3VhZ2UrJyJdJykuZm9yRWFjaChmdW5jdGlvbihlKXtsb2NhdGlvbi5ocmVmPWUuaHJlZn0pO30Kc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZ3RfYXV0b3N3aXRjaCcsMSk7fX0pKCk7"}},"time_used":473,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":473,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/gusid?r_c_id=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.536Z","timestamp":1785145406536,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"GET /v1/lst/gusid?r_c_id=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434 HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://autolitefinances.pro\r\nProduct-ID: 183401\r\nRef-Url: https://autolitefinances.pro/\r\nfp: null\r\nfp-data: \r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: __mh_tt_s=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:26 GMT\r\nContent-Length: 0\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nStrict-Transport-Security: max-age=31536000; includeSubDomains\r\nETag: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nSet-Cookie: __mh_tt_disable_script=false;SameSite=None;Secure; Max-Age=0\n__mh_tt_s=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434;SameSite=None;Secure; Max-Age=400000000\r\nSession-ID: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":811,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":110,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/swiper/swiper-bundle.min.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.854Z","timestamp":1785145403854,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/swiper/swiper-bundle.min.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-211fc\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":135676,"size_decoded":35994,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65279)","md5":"62c6f89aad925efbdb3aa034c0a7ae69","sha1":"55cd3831254bcd17bad5b9c933d2bf36b05bec9c","sha256":"e43a5802d5ed9337da2e507c39c43080de4305db7e520e22fe3ec9fd83c1b72f","sha512":"bfea48cea1157f4f8ee742ecf6c730e830d94f93a7e86e709d72cb3128d895f249acd7be64258af38f4f0546100da81929cdb5db958a6096375ee80b370c0f7c","ssdeep":"3072:BJkI9s9zLjkTbkC75OrynIm1/T5W9D/EL74ami0lLHb:BJv9YzLjkTbkC9OrynImRT5W9D/iP0lP","tlshash":"ddd30a997320b5a552e726cb93a8c511a2b50800b40ad5e870bd4c6b6d7ec9c13feffd","first_seen":"2023-03-07T22:59:15Z","last_seen":"2026-08-07T20:31:30.055922Z","times_seen":234,"resource_available":true,"data":"LyoqCiAqIFN3aXBlciA3LjMuMQogKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9ucwogKiBodHRwczovL3N3aXBlcmpzLmNvbQogKgogKiBDb3B5cmlnaHQgMjAxNC0yMDIxIFZsYWRpbWlyIEtoYXJsYW1waWRpCiAqCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZQogKgogKiBSZWxlYXNlZCBvbjogTm92ZW1iZXIgMjQsIDIwMjEKICovCgohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczplfHxzZWxmKS5Td2lwZXI9dCgpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiY29uc3RydWN0b3IiaW4gZSYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdH1mdW5jdGlvbiB0KHM9e30sYT17fSl7T2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoaT0+e3ZvaWQgMD09PXNbaV0/c1tpXT1hW2ldOmUoYVtpXSkmJmUoc1tpXSkmJk9iamVjdC5rZXlzKGFbaV0pLmxlbmd0aD4wJiZ0KHNbaV0sYVtpXSl9KSl9Y29uc3Qgcz17Ym9keTp7fSxhZGRFdmVudExpc3RlbmVyKCl7fSxyZW1vdmVFdmVudExpc3RlbmVyKCl7fSxhY3RpdmVFbGVtZW50OntibHVyKCl7fSxub2RlTmFtZToiIn0scXVlcnlTZWxlY3RvcjooKT0+bnVsbCxxdWVyeVNlbGVjdG9yQWxsOigpPT5bXSxnZXRFbGVtZW50QnlJZDooKT0+bnVsbCxjcmVhdGVFdmVudDooKT0+KHtpbml0RXZlbnQoKXt9fSksY3JlYXRlRWxlbWVudDooKT0+KHtjaGlsZHJlbjpbXSxjaGlsZE5vZGVzOltdLHN0eWxlOnt9LHNldEF0dHJpYnV0ZSgpe30sZ2V0RWxlbWVudHNCeVRhZ05hbWU6KCk9PltdfSksY3JlYXRlRWxlbWVudE5TOigpPT4oe30pLGltcG9ydE5vZGU6KCk9Pm51bGwsbG9jYXRpb246e2hhc2g6IiIsaG9zdDoiIixob3N0bmFtZToiIixocmVmOiIiLG9yaWdpbjoiIixwYXRobmFtZToiIixwcm90b2NvbDoiIixzZWFyY2g6IiJ9fTtmdW5jdGlvbiBhKCl7Y29uc3QgZT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50Ont9O3JldHVybiB0KGUscyksZX1jb25zdCBpPXtkb2N1bWVudDpzLG5hdmlnYXRvcjp7dXNlckFnZW50OiIifSxsb2NhdGlvbjp7aGFzaDoiIixob3N0OiIiLGhvc3RuYW1lOiIiLGhyZWY6IiIsb3JpZ2luOiIiLHBhdGhuYW1lOiIiLHByb3RvY29sOiIiLHNlYXJjaDoiIn0saGlzdG9yeTp7cmVwbGFjZVN0YXRlKCl7fSxwdXNoU3RhdGUoKXt9LGdvKCl7fSxiYWNrKCl7fX0sQ3VzdG9tRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sYWRkRXZlbnRMaXN0ZW5lcigpe30scmVtb3ZlRXZlbnRMaXN0ZW5lcigpe30sZ2V0Q29tcHV0ZWRTdHlsZTooKT0+KHtnZXRQcm9wZXJ0eVZhbHVlOigpPT4iIn0pLEltYWdlKCl7fSxEYXRlKCl7fSxzY3JlZW46e30sc2V0VGltZW91dCgpe30sY2xlYXJUaW1lb3V0KCl7fSxtYXRjaE1lZGlhOigpPT4oe30pLHJlcXVlc3RBbmltYXRpb25GcmFtZTplPT4idW5kZWZpbmVkIj09dHlwZW9mIHNldFRpbWVvdXQ/KGUoKSxudWxsKTpzZXRUaW1lb3V0KGUsMCksY2FuY2VsQW5pbWF0aW9uRnJhbWUoZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRUaW1lb3V0JiZjbGVhclRpbWVvdXQoZSl9fTtmdW5jdGlvbiByKCl7Y29uc3QgZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e307cmV0dXJuIHQoZSxpKSxlfWNsYXNzIG4gZXh0ZW5kcyBBcnJheXtjb25zdHJ1Y3RvcihlKXtzdXBlciguLi5lfHxbXSksZnVuY3Rpb24oZSl7Y29uc3QgdD1lLl9fcHJvdG9fXztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19wcm90b19fIix7Z2V0OigpPT50LHNldChlKXt0Ll9fcHJvdG9fXz1lfX0pfSh0aGlzKX19ZnVuY3Rpb24gbChlPVtdKXtjb25zdCB0PVtdO3JldHVybiBlLmZvckVhY2goKGU9PntBcnJheS5pc0FycmF5KGUpP3QucHVzaCguLi5sKGUpKTp0LnB1c2goZSl9KSksdH1mdW5jdGlvbiBvKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLHQpfWZ1bmN0aW9uIGQoZSx0KXtjb25zdCBzPXIoKSxpPWEoKTtsZXQgbD1bXTtpZighdCYmZSBpbnN0YW5jZW9mIG4pcmV0dXJuIGU7aWYoIWUpcmV0dXJuIG5ldyBuKGwpO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3Qgcz1lLnRyaW0oKTtpZihzLmluZGV4T2YoIjwiKT49MCYmcy5pbmRleE9mKCI+Iik+PTApe2xldCBlPSJkaXYiOzA9PT1zLmluZGV4T2YoIjxsaSIpJiYoZT0idWwiKSwwPT09cy5pbmRleE9mKCI8dHIiKSYmKGU9InRib2R5IiksMCE9PXMuaW5kZXhPZigiPHRkIikmJjAhPT1zLmluZGV4T2YoIjx0aCIpfHwoZT0idHIiKSwwPT09cy5pbmRleE9mKCI8dGJvZHkiKSYmKGU9InRhYmxlIiksMD09PXMuaW5kZXhPZigiPG9wdGlvbiIpJiYoZT0ic2VsZWN0Iik7Y29uc3QgdD1pLmNyZWF0ZUVsZW1lbnQoZSk7dC5pbm5lckhUTUw9cztmb3IobGV0IGU9MDtlPHQuY2hpbGROb2Rlcy5sZW5ndGg7ZSs9MSlsLnB1c2godC5jaGlsZE5vZGVzW2VdKX1lbHNlIGw9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuW2VdO2NvbnN0IHM9W10sYT10LnF1ZXJ5U2VsZWN0b3JBbGwoZSk7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKz0xKXMucHVzaChhW2VdKTtyZXR1cm4gc30oZS50cmltKCksdHx8aSl9ZWxzZSBpZihlLm5vZGVUeXBlfHxlPT09c3x8ZT09PWkpbC5wdXNoKGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSl7aWYoZSBpbnN0YW5jZW9mIG4pcmV0dXJuIGU7bD1lfXJldHVybiBuZXcgbihmdW5jdGlvbihlKXtjb25zdCB0PVtdO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cys9MSktMT09PXQuaW5kZXhPZihlW3NdKSYmdC5wdXNoKGVbc10pO3JldHVybiB0fShsKSl9ZC5mbj1uLnByb3RvdHlwZTtjb25zdCBjPXthZGRDbGFzczpmdW5jdGlvbiguLi5lKXtjb25zdCB0PWwoZS5tYXAoKGU9PmUuc3BsaXQoIiAiKSkpKTtyZXR1cm4gdGhpcy5mb3JFYWNoKChlPT57ZS5jbGFzc0xpc3QuYWRkKC4uLnQpfSkpLHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKC4uLmUpe2NvbnN0IHQ9bChlLm1hcCgoZT0+ZS5zcGxpdCgiICIpKSkpO3JldHVybiB0aGlzLmZvckVhY2goKGU9PntlLmNsYXNzTGlzdC5yZW1vdmUoLi4udCl9KSksdGhpc30saGFzQ2xhc3M6ZnVuY3Rpb24oLi4uZSl7Y29uc3QgdD1sKGUubWFwKChlPT5lLnNwbGl0KCIgIikpKSk7cmV0dXJuIG8odGhpcywoZT0+dC5maWx0ZXIoKHQ9PmUuY2xhc3NMaXN0LmNvbnRhaW5zKHQpKSkubGVuZ3RoPjApKS5sZW5ndGg+MH0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oLi4uZSl7Y29uc3QgdD1sKGUubWFwKChlPT5lLnNwbGl0KCIgIikpKSk7dGhpcy5mb3JFYWNoKChlPT57dC5mb3JFYWNoKCh0PT57ZS5jbGFzc0xpc3QudG9nZ2xlKHQpfSkpfSkpfSxhdHRyOmZ1bmN0aW9uKGUsdCl7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gdGhpc1swXT90aGlzWzBdLmdldEF0dHJpYnV0ZShlKTp2b2lkIDA7Zm9yKGxldCBzPTA7czx0aGlzLmxlbmd0aDtzKz0xKWlmKDI9PT1hcmd1bWVudHMubGVuZ3RoKXRoaXNbc10uc2V0QXR0cmlidXRlKGUsdCk7ZWxzZSBmb3IoY29uc3QgdCBpbiBlKXRoaXNbc11bdF09ZVt0XSx0aGlzW3NdLnNldEF0dHJpYnV0ZSh0LGVbdF0pO3JldHVybiB0aGlzfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnJlbW92ZUF0dHJpYnV0ZShlKTtyZXR1cm4gdGhpc30sdHJhbnNmb3JtOmZ1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnN0eWxlLnRyYW5zZm9ybT1lO3JldHVybiB0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj0ic3RyaW5nIiE9dHlwZW9mIGU/YCR7ZX1tc2A6ZTtyZXR1cm4gdGhpc30sb246ZnVuY3Rpb24oLi4uZSl7bGV0W3QscyxhLGldPWU7ZnVuY3Rpb24gcihlKXtjb25zdCB0PWUudGFyZ2V0O2lmKCF0KXJldHVybjtjb25zdCBpPWUudGFyZ2V0LmRvbTdFdmVudERhdGF8fFtdO2lmKGkuaW5kZXhPZihlKTwwJiZpLnVuc2hpZnQoZSksZCh0KS5pcyhzKSlhLmFwcGx5KHQsaSk7ZWxzZXtjb25zdCBlPWQodCkucGFyZW50cygpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSlkKGVbdF0pLmlzKHMpJiZhLmFwcGx5KGVbdF0saSl9fWZ1bmN0aW9uIG4oZSl7Y29uc3QgdD1lJiZlLnRhcmdldCYmZS50YXJnZXQuZG9tN0V2ZW50RGF0YXx8W107dC5pbmRleE9mKGUpPDAmJnQudW5zaGlmdChlKSxhLmFwcGx5KHRoaXMsdCl9ImZ1bmN0aW9uIj09dHlwZW9mIGVbMV0mJihbdCxhLGldPWUscz12b2lkIDApLGl8fChpPSExKTtjb25zdCBsPXQuc3BsaXQoIiAiKTtsZXQgbztmb3IobGV0IGU9MDtlPHRoaXMubGVuZ3RoO2UrPTEpe2NvbnN0IHQ9dGhpc1tlXTtpZihzKWZvcihvPTA7bzxsLmxlbmd0aDtvKz0xKXtjb25zdCBlPWxbb107dC5kb203TGl2ZUxpc3RlbmVyc3x8KHQuZG9tN0xpdmVMaXN0ZW5lcnM9e30pLHQuZG9tN0xpdmVMaXN0ZW5lcnNbZV18fCh0LmRvbTdMaXZlTGlzdGVuZXJzW2VdPVtdKSx0LmRvbTdMaXZlTGlzdGVuZXJzW2VdLnB1c2goe2xpc3RlbmVyOmEscHJveHlMaXN0ZW5lcjpyfSksdC5hZGRFdmVudExpc3RlbmVyKGUscixpKX1lbHNlIGZvcihvPTA7bzxsLmxlbmd0aDtvKz0xKXtjb25zdCBlPWxbb107dC5kb203TGlzdGVuZXJzfHwodC5kb203TGlzdGVuZXJzPXt9KSx0LmRvbTdMaXN0ZW5lcnNbZV18fCh0LmRvbTdMaXN0ZW5lcnNbZV09W10pLHQuZG9tN0xpc3RlbmVyc1tlXS5wdXNoKHtsaXN0ZW5lcjphLHByb3h5TGlzdGVuZXI6bn0pLHQuYWRkRXZlbnRMaXN0ZW5lcihlLG4saSl9fXJldHVybiB0aGlzfSxvZmY6ZnVuY3Rpb24oLi4uZSl7bGV0W3QscyxhLGldPWU7ImZ1bmN0aW9uIj09dHlwZW9mIGVbMV0mJihbdCxhLGldPWUscz12b2lkIDApLGl8fChpPSExKTtjb25zdCByPXQuc3BsaXQoIiAiKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrPTEpe2NvbnN0IHQ9cltlXTtmb3IobGV0IGU9MDtlPHRoaXMubGVuZ3RoO2UrPTEpe2NvbnN0IHI9dGhpc1tlXTtsZXQgbjtpZighcyYmci5kb203TGlzdGVuZXJzP249ci5kb203TGlzdGVuZXJzW3RdOnMmJnIuZG9tN0xpdmVMaXN0ZW5lcnMmJihuPXIuZG9tN0xpdmVMaXN0ZW5lcnNbdF0pLG4mJm4ubGVuZ3RoKWZvcihsZXQgZT1uLmxlbmd0aC0xO2U+PTA7ZS09MSl7Y29uc3Qgcz1uW2VdO2EmJnMubGlzdGVuZXI9PT1hfHxhJiZzLmxpc3RlbmVyJiZzLmxpc3RlbmVyLmRvbTdwcm94eSYmcy5saXN0ZW5lci5kb203cHJveHk9PT1hPyhyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxzLnByb3h5TGlzdGVuZXIsaSksbi5zcGxpY2UoZSwxKSk6YXx8KHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHMucHJveHlMaXN0ZW5lcixpKSxuLnNwbGljZShlLDEpKX19fXJldHVybiB0aGlzfSx0cmlnZ2VyOmZ1bmN0aW9uKC4uLmUpe2NvbnN0IHQ9cigpLHM9ZVswXS5zcGxpdCgiICIpLGE9ZVsxXTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoO2krPTEpe2NvbnN0IHI9c1tpXTtmb3IobGV0IHM9MDtzPHRoaXMubGVuZ3RoO3MrPTEpe2NvbnN0IGk9dGhpc1tzXTtpZih0LkN1c3RvbUV2ZW50KXtjb25zdCBzPW5ldyB0LkN1c3RvbUV2ZW50KHIse2RldGFpbDphLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMH0pO2kuZG9tN0V2ZW50RGF0YT1lLmZpbHRlcigoKGUsdCk9PnQ+MCkpLGkuZGlzcGF0Y2hFdmVudChzKSxpLmRvbTdFdmVudERhdGE9W10sZGVsZXRlIGkuZG9tN0V2ZW50RGF0YX19fXJldHVybiB0aGlzfSx0cmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcztyZXR1cm4gZSYmdC5vbigidHJhbnNpdGlvbmVuZCIsKGZ1bmN0aW9uIHMoYSl7YS50YXJnZXQ9PT10aGlzJiYoZS5jYWxsKHRoaXMsYSksdC5vZmYoInRyYW5zaXRpb25lbmQiLHMpKX0pKSx0aGlzfSxvdXRlcldpZHRoOmZ1bmN0aW9uKGUpe2lmKHRoaXMubGVuZ3RoPjApe2lmKGUpe2NvbnN0IGU9dGhpcy5zdHlsZXMoKTtyZXR1cm4gdGhpc1swXS5vZmZzZXRXaWR0aCtwYXJzZUZsb2F0KGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXJpZ2h0IikpK3BhcnNlRmxvYXQoZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tbGVmdCIpKX1yZXR1cm4gdGhpc1swXS5vZmZzZXRXaWR0aH1yZXR1cm4gbnVsbH0sb3V0ZXJIZWlnaHQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5sZW5ndGg+MCl7aWYoZSl7Y29uc3QgZT10aGlzLnN0eWxlcygpO3JldHVybiB0aGlzWzBdLm9mZnNldEhlaWdodCtwYXJzZUZsb2F0KGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpKStwYXJzZUZsb2F0KGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWJvdHRvbSIpKX1yZXR1cm4gdGhpc1swXS5vZmZzZXRIZWlnaHR9cmV0dXJuIG51bGx9LHN0eWxlczpmdW5jdGlvbigpe2NvbnN0IGU9cigpO3JldHVybiB0aGlzWzBdP2UuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzWzBdLG51bGwpOnt9fSxvZmZzZXQ6ZnVuY3Rpb24oKXtpZih0aGlzLmxlbmd0aD4wKXtjb25zdCBlPXIoKSx0PWEoKSxzPXRoaXNbMF0saT1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49dC5ib2R5LGw9cy5jbGllbnRUb3B8fG4uY2xpZW50VG9wfHwwLG89cy5jbGllbnRMZWZ0fHxuLmNsaWVudExlZnR8fDAsZD1zPT09ZT9lLnNjcm9sbFk6cy5zY3JvbGxUb3AsYz1zPT09ZT9lLnNjcm9sbFg6cy5zY3JvbGxMZWZ0O3JldHVybnt0b3A6aS50b3ArZC1sLGxlZnQ6aS5sZWZ0K2Mtb319cmV0dXJuIG51bGx9LGNzczpmdW5jdGlvbihlLHQpe2NvbnN0IHM9cigpO2xldCBhO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpe2ZvcihhPTA7YTx0aGlzLmxlbmd0aDthKz0xKWZvcihjb25zdCB0IGluIGUpdGhpc1thXS5zdHlsZVt0XT1lW3RdO3JldHVybiB0aGlzfWlmKHRoaXNbMF0pcmV0dXJuIHMuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzWzBdLG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgZSl7Zm9yKGE9MDthPHRoaXMubGVuZ3RoO2ErPTEpdGhpc1thXS5zdHlsZVtlXT10O3JldHVybiB0aGlzfXJldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBlPyh0aGlzLmZvckVhY2goKCh0LHMpPT57ZS5hcHBseSh0LFt0LHNdKX0pKSx0aGlzKTp0aGlzfSxodG1sOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbMF0/dGhpc1swXS5pbm5lckhUTUw6bnVsbDtmb3IobGV0IHQ9MDt0PHRoaXMubGVuZ3RoO3QrPTEpdGhpc1t0XS5pbm5lckhUTUw9ZTtyZXR1cm4gdGhpc30sdGV4dDpmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzWzBdP3RoaXNbMF0udGV4dENvbnRlbnQudHJpbSgpOm51bGw7Zm9yKGxldCB0PTA7dDx0aGlzLmxlbmd0aDt0Kz0xKXRoaXNbdF0udGV4dENvbnRlbnQ9ZTtyZXR1cm4gdGhpc30saXM6ZnVuY3Rpb24oZSl7Y29uc3QgdD1yKCkscz1hKCksaT10aGlzWzBdO2xldCBsLG87aWYoIWl8fHZvaWQgMD09PWUpcmV0dXJuITE7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZihpLm1hdGNoZXMpcmV0dXJuIGkubWF0Y2hlcyhlKTtpZihpLndlYmtpdE1hdGNoZXNTZWxlY3RvcilyZXR1cm4gaS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoZSk7aWYoaS5tc01hdGNoZXNTZWxlY3RvcilyZXR1cm4gaS5tc01hdGNoZXNTZWxlY3RvcihlKTtmb3IobD1kKGUpLG89MDtvPGwubGVuZ3RoO28rPTEpaWYobFtvXT09PWkpcmV0dXJuITA7cmV0dXJuITF9aWYoZT09PXMpcmV0dXJuIGk9PT1zO2lmKGU9PT10KXJldHVybiBpPT09dDtpZihlLm5vZGVUeXBlfHxlIGluc3RhbmNlb2Ygbil7Zm9yKGw9ZS5ub2RlVHlwZT9bZV06ZSxvPTA7bzxsLmxlbmd0aDtvKz0xKWlmKGxbb109PT1pKXJldHVybiEwO3JldHVybiExfXJldHVybiExfSxpbmRleDpmdW5jdGlvbigpe2xldCBlLHQ9dGhpc1swXTtpZih0KXtmb3IoZT0wO251bGwhPT0odD10LnByZXZpb3VzU2libGluZyk7KTE9PT10Lm5vZGVUeXBlJiYoZSs9MSk7cmV0dXJuIGV9fSxlcTpmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzO2NvbnN0IHQ9dGhpcy5sZW5ndGg7aWYoZT50LTEpcmV0dXJuIGQoW10pO2lmKGU8MCl7Y29uc3Qgcz10K2U7cmV0dXJuIGQoczwwP1tdOlt0aGlzW3NdXSl9cmV0dXJuIGQoW3RoaXNbZV1dKX0sYXBwZW5kOmZ1bmN0aW9uKC4uLmUpe2xldCB0O2NvbnN0IHM9YSgpO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSs9MSl7dD1lW2FdO2ZvcihsZXQgZT0wO2U8dGhpcy5sZW5ndGg7ZSs9MSlpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGE9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYS5pbm5lckhUTUw9dDthLmZpcnN0Q2hpbGQ7KXRoaXNbZV0uYXBwZW5kQ2hpbGQoYS5maXJzdENoaWxkKX1lbHNlIGlmKHQgaW5zdGFuY2VvZiBuKWZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cys9MSl0aGlzW2VdLmFwcGVuZENoaWxkKHRbc10pO2Vsc2UgdGhpc1tlXS5hcHBlbmRDaGlsZCh0KX1yZXR1cm4gdGhpc30scHJlcGVuZDpmdW5jdGlvbihlKXtjb25zdCB0PWEoKTtsZXQgcyxpO2ZvcihzPTA7czx0aGlzLmxlbmd0aDtzKz0xKWlmKCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3QgYT10LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihhLmlubmVySFRNTD1lLGk9YS5jaGlsZE5vZGVzLmxlbmd0aC0xO2k+PTA7aS09MSl0aGlzW3NdLmluc2VydEJlZm9yZShhLmNoaWxkTm9kZXNbaV0sdGhpc1tzXS5jaGlsZE5vZGVzWzBdKX1lbHNlIGlmKGUgaW5zdGFuY2VvZiBuKWZvcihpPTA7aTxlLmxlbmd0aDtpKz0xKXRoaXNbc10uaW5zZXJ0QmVmb3JlKGVbaV0sdGhpc1tzXS5jaGlsZE5vZGVzWzBdKTtlbHNlIHRoaXNbc10uaW5zZXJ0QmVmb3JlKGUsdGhpc1tzXS5jaGlsZE5vZGVzWzBdKTtyZXR1cm4gdGhpc30sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5sZW5ndGg+MD9lP3RoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nJiZkKHRoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nKS5pcyhlKT9kKFt0aGlzWzBdLm5leHRFbGVtZW50U2libGluZ10pOmQoW10pOnRoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nP2QoW3RoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nXSk6ZChbXSk6ZChbXSl9LG5leHRBbGw6ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtsZXQgcz10aGlzWzBdO2lmKCFzKXJldHVybiBkKFtdKTtmb3IoO3MubmV4dEVsZW1lbnRTaWJsaW5nOyl7Y29uc3QgYT1zLm5leHRFbGVtZW50U2libGluZztlP2QoYSkuaXMoZSkmJnQucHVzaChhKTp0LnB1c2goYSkscz1hfXJldHVybiBkKHQpfSxwcmV2OmZ1bmN0aW9uKGUpe2lmKHRoaXMubGVuZ3RoPjApe2NvbnN0IHQ9dGhpc1swXTtyZXR1cm4gZT90LnByZXZpb3VzRWxlbWVudFNpYmxpbmcmJmQodC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKS5pcyhlKT9kKFt0LnByZXZpb3VzRWxlbWVudFNpYmxpbmddKTpkKFtdKTp0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc/ZChbdC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXSk6ZChbXSl9cmV0dXJuIGQoW10pfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9W107bGV0IHM9dGhpc1swXTtpZighcylyZXR1cm4gZChbXSk7Zm9yKDtzLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7KXtjb25zdCBhPXMucHJldmlvdXNFbGVtZW50U2libGluZztlP2QoYSkuaXMoZSkmJnQucHVzaChhKTp0LnB1c2goYSkscz1hfXJldHVybiBkKHQpfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtmb3IobGV0IHM9MDtzPHRoaXMubGVuZ3RoO3MrPTEpbnVsbCE9PXRoaXNbc10ucGFyZW50Tm9kZSYmKGU/ZCh0aGlzW3NdLnBhcmVudE5vZGUpLmlzKGUpJiZ0LnB1c2godGhpc1tzXS5wYXJlbnROb2RlKTp0LnB1c2godGhpc1tzXS5wYXJlbnROb2RlKSk7cmV0dXJuIGQodCl9LHBhcmVudHM6ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtmb3IobGV0IHM9MDtzPHRoaXMubGVuZ3RoO3MrPTEpe2xldCBhPXRoaXNbc10ucGFyZW50Tm9kZTtmb3IoO2E7KWU/ZChhKS5pcyhlKSYmdC5wdXNoKGEpOnQucHVzaChhKSxhPWEucGFyZW50Tm9kZX1yZXR1cm4gZCh0KX0sY2xvc2VzdDpmdW5jdGlvbihlKXtsZXQgdD10aGlzO3JldHVybiB2b2lkIDA9PT1lP2QoW10pOih0LmlzKGUpfHwodD10LnBhcmVudHMoZSkuZXEoMCkpLHQpfSxmaW5kOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBzPTA7czx0aGlzLmxlbmd0aDtzKz0xKXtjb25zdCBhPXRoaXNbc10ucXVlcnlTZWxlY3RvckFsbChlKTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrPTEpdC5wdXNoKGFbZV0pfXJldHVybiBkKHQpfSxjaGlsZHJlbjpmdW5jdGlvbihlKXtjb25zdCB0PVtdO2ZvcihsZXQgcz0wO3M8dGhpcy5sZW5ndGg7cys9MSl7Y29uc3QgYT10aGlzW3NdLmNoaWxkcmVuO2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cys9MSllJiYhZChhW3NdKS5pcyhlKXx8dC5wdXNoKGFbc10pfXJldHVybiBkKHQpfSxmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGQobyh0aGlzLGUpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKz0xKXRoaXNbZV0ucGFyZW50Tm9kZSYmdGhpc1tlXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXNbZV0pO3JldHVybiB0aGlzfX07ZnVuY3Rpb24gcChlLHQ9MCl7cmV0dXJuIHNldFRpbWVvdXQoZSx0KX1mdW5jdGlvbiB1KCl7cmV0dXJuIERhdGUubm93KCl9ZnVuY3Rpb24gaChlLHQ9IngiKXtjb25zdCBzPXIoKTtsZXQgYSxpLG47Y29uc3QgbD1mdW5jdGlvbihlKXtjb25zdCB0PXIoKTtsZXQgcztyZXR1cm4gdC5nZXRDb21wdXRlZFN0eWxlJiYocz10LmdldENvbXB1dGVkU3R5bGUoZSxudWxsKSksIXMmJmUuY3VycmVudFN0eWxlJiYocz1lLmN1cnJlbnRTdHlsZSksc3x8KHM9ZS5zdHlsZSksc30oZSk7cmV0dXJuIHMuV2ViS2l0Q1NTTWF0cml4PyhpPWwudHJhbnNmb3JtfHxsLndlYmtpdFRyYW5zZm9ybSxpLnNwbGl0KCIsIikubGVuZ3RoPjYmJihpPWkuc3BsaXQoIiwgIikubWFwKChlPT5lLnJlcGxhY2UoIiwiLCIuIikpKS5qb2luKCIsICIpKSxuPW5ldyBzLldlYktpdENTU01hdHJpeCgibm9uZSI9PT1pPyIiOmkpKToobj1sLk1velRyYW5zZm9ybXx8bC5PVHJhbnNmb3JtfHxsLk1zVHJhbnNmb3JtfHxsLm1zVHJhbnNmb3JtfHxsLnRyYW5zZm9ybXx8bC5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKS5yZXBsYWNlKCJ0cmFuc2xhdGUoIiwibWF0cml4KDEsIDAsIDAsIDEsIiksYT1uLnRvU3RyaW5nKCkuc3BsaXQoIiwiKSksIngiPT09dCYmKGk9cy5XZWJLaXRDU1NNYXRyaXg/bi5tNDE6MTY9PT1hLmxlbmd0aD9wYXJzZUZsb2F0KGFbMTJdKTpwYXJzZUZsb2F0KGFbNF0pKSwieSI9PT10JiYoaT1zLldlYktpdENTU01hdHJpeD9uLm00MjoxNj09PWEubGVuZ3RoP3BhcnNlRmxvYXQoYVsxM10pOnBhcnNlRmxvYXQoYVs1XSkpLGl8fDB9ZnVuY3Rpb24gbShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLmNvbnN0cnVjdG9yJiYiT2JqZWN0Ij09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKX1mdW5jdGlvbiBmKC4uLmUpe2NvbnN0IHQ9T2JqZWN0KGVbMF0pLHM9WyJfX3Byb3RvX18iLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSJdO2ZvcihsZXQgaT0xO2k8ZS5sZW5ndGg7aSs9MSl7Y29uc3Qgcj1lW2ldO2lmKG51bGwhPXImJihhPXIsISgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkhUTUxFbGVtZW50P2EgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDphJiYoMT09PWEubm9kZVR5cGV8fDExPT09YS5ub2RlVHlwZSkpKSl7Y29uc3QgZT1PYmplY3Qua2V5cyhPYmplY3QocikpLmZpbHRlcigoZT0+cy5pbmRleE9mKGUpPDApKTtmb3IobGV0IHM9MCxhPWUubGVuZ3RoO3M8YTtzKz0xKXtjb25zdCBhPWVbc10saT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsYSk7dm9pZCAwIT09aSYmaS5lbnVtZXJhYmxlJiYobSh0W2FdKSYmbShyW2FdKT9yW2FdLl9fc3dpcGVyX18/dFthXT1yW2FdOmYodFthXSxyW2FdKTohbSh0W2FdKSYmbShyW2FdKT8odFthXT17fSxyW2FdLl9fc3dpcGVyX18/dFthXT1yW2FdOmYodFthXSxyW2FdKSk6dFthXT1yW2FdKX19fXZhciBhO3JldHVybiB0fWZ1bmN0aW9uIGcoZSx0LHMpe2Uuc3R5bGUuc2V0UHJvcGVydHkodCxzKX1mdW5jdGlvbiB2KHtzd2lwZXI6ZSx0YXJnZXRQb3NpdGlvbjp0LHNpZGU6c30pe2NvbnN0IGE9cigpLGk9LWUudHJhbnNsYXRlO2xldCBuLGw9bnVsbDtjb25zdCBvPWUucGFyYW1zLnNwZWVkO2Uud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixhLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGUuY3NzTW9kZUZyYW1lSUQpO2NvbnN0IGQ9dD5pPyJuZXh0IjoicHJldiIsYz0oZSx0KT0+Im5leHQiPT09ZCYmZT49dHx8InByZXYiPT09ZCYmZTw9dCxwPSgpPT57bj0obmV3IERhdGUpLmdldFRpbWUoKSxudWxsPT09bCYmKGw9bik7Y29uc3Qgcj1NYXRoLm1heChNYXRoLm1pbigobi1sKS9vLDEpLDApLGQ9LjUtTWF0aC5jb3MocipNYXRoLlBJKS8yO2xldCB1PWkrZCoodC1pKTtpZihjKHUsdCkmJih1PXQpLGUud3JhcHBlckVsLnNjcm9sbFRvKHtbc106dX0pLGModSx0KSlyZXR1cm4gZS53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZS53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGU9IiIsc2V0VGltZW91dCgoKCk9PntlLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdz0iIixlLndyYXBwZXJFbC5zY3JvbGxUbyh7W3NdOnV9KX0pKSx2b2lkIGEuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZS5jc3NNb2RlRnJhbWVJRCk7ZS5jc3NNb2RlRnJhbWVJRD1hLnJlcXVlc3RBbmltYXRpb25GcmFtZShwKX07cCgpfWxldCB3LGIseDtmdW5jdGlvbiB5KCl7cmV0dXJuIHd8fCh3PWZ1bmN0aW9uKCl7Y29uc3QgZT1yKCksdD1hKCk7cmV0dXJue3Ntb290aFNjcm9sbDp0LmRvY3VtZW50RWxlbWVudCYmInNjcm9sbEJlaGF2aW9yImluIHQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLHRvdWNoOiEhKCJvbnRvdWNoc3RhcnQiaW4gZXx8ZS5Eb2N1bWVudFRvdWNoJiZ0IGluc3RhbmNlb2YgZS5Eb2N1bWVudFRvdWNoKSxwYXNzaXZlTGlzdGVuZXI6ZnVuY3Rpb24oKXtsZXQgdD0hMTt0cnl7Y29uc3Qgcz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQoKXt0PSEwfX0pO2UuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmVMaXN0ZW5lciIsbnVsbCxzKX1jYXRjaChlKXt9cmV0dXJuIHR9KCksZ2VzdHVyZXM6Im9uZ2VzdHVyZXN0YXJ0ImluIGV9fSgpKSx3fWZ1bmN0aW9uIEUoZT17fSl7cmV0dXJuIGJ8fChiPWZ1bmN0aW9uKHt1c2VyQWdlbnQ6ZX09e30pe2NvbnN0IHQ9eSgpLHM9cigpLGE9cy5uYXZpZ2F0b3IucGxhdGZvcm0saT1lfHxzLm5hdmlnYXRvci51c2VyQWdlbnQsbj17aW9zOiExLGFuZHJvaWQ6ITF9LGw9cy5zY3JlZW4ud2lkdGgsbz1zLnNjcmVlbi5oZWlnaHQsZD1pLm1hdGNoKC8oQW5kcm9pZCk7P1tcc1wvXSsoW1xkLl0rKT8vKTtsZXQgYz1pLm1hdGNoKC8oaVBhZCkuKk9TXHMoW1xkX10rKS8pO2NvbnN0IHA9aS5tYXRjaCgvKGlQb2QpKC4qT1NccyhbXGRfXSspKT8vKSx1PSFjJiZpLm1hdGNoKC8oaVBob25lXHNPU3xpT1MpXHMoW1xkX10rKS8pLGg9IldpbjMyIj09PWE7bGV0IG09Ik1hY0ludGVsIj09PWE7cmV0dXJuIWMmJm0mJnQudG91Y2gmJlsiMTAyNHgxMzY2IiwiMTM2NngxMDI0IiwiODM0eDExOTQiLCIxMTk0eDgzNCIsIjgzNHgxMTEyIiwiMTExMng4MzQiLCI3Njh4MTAyNCIsIjEwMjR4NzY4IiwiODIweDExODAiLCIxMTgweDgyMCIsIjgxMHgxMDgwIiwiMTA4MHg4MTAiXS5pbmRleE9mKGAke2x9eCR7b31gKT49MCYmKGM9aS5tYXRjaCgvKFZlcnNpb24pXC8oW1xkLl0rKS8pLGN8fChjPVswLDEsIjEzXzBfMCJdKSxtPSExKSxkJiYhaCYmKG4ub3M9ImFuZHJvaWQiLG4uYW5kcm9pZD0hMCksKGN8fHV8fHApJiYobi5vcz0iaW9zIixuLmlvcz0hMCksbn0oZSkpLGJ9ZnVuY3Rpb24gVCgpe3JldHVybiB4fHwoeD1mdW5jdGlvbigpe2NvbnN0IGU9cigpO3JldHVybntpc1NhZmFyaTpmdW5jdGlvbigpe2NvbnN0IHQ9ZS5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuaW5kZXhPZigic2FmYXJpIik+PTAmJnQuaW5kZXhPZigiY2hyb21lIik8MCYmdC5pbmRleE9mKCJhbmRyb2lkIik8MH0oKSxpc1dlYlZpZXc6LyhpUGhvbmV8aVBvZHxpUGFkKS4qQXBwbGVXZWJLaXQoPyEuKlNhZmFyaSkvaS50ZXN0KGUubmF2aWdhdG9yLnVzZXJBZ2VudCl9fSgpKSx4fU9iamVjdC5rZXlzKGMpLmZvckVhY2goKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5mbixlLHt2YWx1ZTpjW2VdLHdyaXRhYmxlOiEwfSl9KSk7dmFyIEM9e29uKGUsdCxzKXtjb25zdCBhPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpcmV0dXJuIGE7Y29uc3QgaT1zPyJ1bnNoaWZ0IjoicHVzaCI7cmV0dXJuIGUuc3BsaXQoIiAiKS5mb3JFYWNoKChlPT57YS5ldmVudHNMaXN0ZW5lcnNbZV18fChhLmV2ZW50c0xpc3RlbmVyc1tlXT1bXSksYS5ldmVudHNMaXN0ZW5lcnNbZV1baV0odCl9KSksYX0sb25jZShlLHQscyl7Y29uc3QgYT10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXJldHVybiBhO2Z1bmN0aW9uIGkoLi4ucyl7YS5vZmYoZSxpKSxpLl9fZW1pdHRlclByb3h5JiZkZWxldGUgaS5fX2VtaXR0ZXJQcm94eSx0LmFwcGx5KGEscyl9cmV0dXJuIGkuX19lbWl0dGVyUHJveHk9dCxhLm9uKGUsaSxzKX0sb25BbnkoZSx0KXtjb25zdCBzPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIHM7Y29uc3QgYT10PyJ1bnNoaWZ0IjoicHVzaCI7cmV0dXJuIHMuZXZlbnRzQW55TGlzdGVuZXJzLmluZGV4T2YoZSk8MCYmcy5ldmVudHNBbnlMaXN0ZW5lcnNbYV0oZSksc30sb2ZmQW55KGUpe2NvbnN0IHQ9dGhpcztpZighdC5ldmVudHNBbnlMaXN0ZW5lcnMpcmV0dXJuIHQ7Y29uc3Qgcz10LmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKGUpO3JldHVybiBzPj0wJiZ0LmV2ZW50c0FueUxpc3RlbmVycy5zcGxpY2UocywxKSx0fSxvZmYoZSx0KXtjb25zdCBzPXRoaXM7cmV0dXJuIHMuZXZlbnRzTGlzdGVuZXJzPyhlLnNwbGl0KCIgIikuZm9yRWFjaCgoZT0+e3ZvaWQgMD09PXQ/cy5ldmVudHNMaXN0ZW5lcnNbZV09W106cy5ldmVudHNMaXN0ZW5lcnNbZV0mJnMuZXZlbnRzTGlzdGVuZXJzW2VdLmZvckVhY2goKChhLGkpPT57KGE9PT10fHxhLl9fZW1pdHRlclByb3h5JiZhLl9fZW1pdHRlclByb3h5PT09dCkmJnMuZXZlbnRzTGlzdGVuZXJzW2VdLnNwbGljZShpLDEpfSkpfSkpLHMpOnN9LGVtaXQoLi4uZSl7Y29uc3QgdD10aGlzO2lmKCF0LmV2ZW50c0xpc3RlbmVycylyZXR1cm4gdDtsZXQgcyxhLGk7InN0cmluZyI9PXR5cGVvZiBlWzBdfHxBcnJheS5pc0FycmF5KGVbMF0pPyhzPWVbMF0sYT1lLnNsaWNlKDEsZS5sZW5ndGgpLGk9dCk6KHM9ZVswXS5ldmVudHMsYT1lWzBdLmRhdGEsaT1lWzBdLmNvbnRleHR8fHQpLGEudW5zaGlmdChpKTtyZXR1cm4oQXJyYXkuaXNBcnJheShzKT9zOnMuc3BsaXQoIiAiKSkuZm9yRWFjaCgoZT0+e3QuZXZlbnRzQW55TGlzdGVuZXJzJiZ0LmV2ZW50c0FueUxpc3RlbmVycy5sZW5ndGgmJnQuZXZlbnRzQW55TGlzdGVuZXJzLmZvckVhY2goKHQ9Pnt0LmFwcGx5KGksW2UsLi4uYV0pfSkpLHQuZXZlbnRzTGlzdGVuZXJzJiZ0LmV2ZW50c0xpc3RlbmVyc1tlXSYmdC5ldmVudHNMaXN0ZW5lcnNbZV0uZm9yRWFjaCgoZT0+e2UuYXBwbHkoaSxhKX0pKX0pKSx0fX07ZnVuY3Rpb24gJCh7c3dpcGVyOmUscnVuQ2FsbGJhY2tzOnQsZGlyZWN0aW9uOnMsc3RlcDphfSl7Y29uc3R7YWN0aXZlSW5kZXg6aSxwcmV2aW91c0luZGV4OnJ9PWU7bGV0IG49cztpZihufHwobj1pPnI/Im5leHQiOmk8cj8icHJldiI6InJlc2V0IiksZS5lbWl0KGB0cmFuc2l0aW9uJHthfWApLHQmJmkhPT1yKXtpZigicmVzZXQiPT09bilyZXR1cm4gdm9pZCBlLmVtaXQoYHNsaWRlUmVzZXRUcmFuc2l0aW9uJHthfWApO2UuZW1pdChgc2xpZGVDaGFuZ2VUcmFuc2l0aW9uJHthfWApLCJuZXh0Ij09PW4/ZS5lbWl0KGBzbGlkZU5leHRUcmFuc2l0aW9uJHthfWApOmUuZW1pdChgc2xpZGVQcmV2VHJhbnNpdGlvbiR7YX1gKX19ZnVuY3Rpb24gUyhlKXtjb25zdCB0PXRoaXMscz1hKCksaT1yKCksbj10LnRvdWNoRXZlbnRzRGF0YSx7cGFyYW1zOmwsdG91Y2hlczpvLGVuYWJsZWQ6Y309dDtpZighYylyZXR1cm47aWYodC5hbmltYXRpbmcmJmwucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKXJldHVybjshdC5hbmltYXRpbmcmJmwuY3NzTW9kZSYmbC5sb29wJiZ0Lmxvb3BGaXgoKTtsZXQgcD1lO3Aub3JpZ2luYWxFdmVudCYmKHA9cC5vcmlnaW5hbEV2ZW50KTtsZXQgaD1kKHAudGFyZ2V0KTtpZigid3JhcHBlciI9PT1sLnRvdWNoRXZlbnRzVGFyZ2V0JiYhaC5jbG9zZXN0KHQud3JhcHBlckVsKS5sZW5ndGgpcmV0dXJuO2lmKG4uaXNUb3VjaEV2ZW50PSJ0b3VjaHN0YXJ0Ij09PXAudHlwZSwhbi5pc1RvdWNoRXZlbnQmJiJ3aGljaCJpbiBwJiYzPT09cC53aGljaClyZXR1cm47aWYoIW4uaXNUb3VjaEV2ZW50JiYiYnV0dG9uImluIHAmJnAuYnV0dG9uPjApcmV0dXJuO2lmKG4uaXNUb3VjaGVkJiZuLmlzTW92ZWQpcmV0dXJuOyEhbC5ub1N3aXBpbmdDbGFzcyYmIiIhPT1sLm5vU3dpcGluZ0NsYXNzJiZwLnRhcmdldCYmcC50YXJnZXQuc2hhZG93Um9vdCYmZS5wYXRoJiZlLnBhdGhbMF0mJihoPWQoZS5wYXRoWzBdKSk7Y29uc3QgbT1sLm5vU3dpcGluZ1NlbGVjdG9yP2wubm9Td2lwaW5nU2VsZWN0b3I6YC4ke2wubm9Td2lwaW5nQ2xhc3N9YCxmPSEoIXAudGFyZ2V0fHwhcC50YXJnZXQuc2hhZG93Um9vdCk7aWYobC5ub1N3aXBpbmcmJihmP2Z1bmN0aW9uKGUsdD10aGlzKXtyZXR1cm4gZnVuY3Rpb24gdChzKXtyZXR1cm4gcyYmcyE9PWEoKSYmcyE9PXIoKT8ocy5hc3NpZ25lZFNsb3QmJihzPXMuYXNzaWduZWRTbG90KSxzLmNsb3Nlc3QoZSl8fHQocy5nZXRSb290Tm9kZSgpLmhvc3QpKTpudWxsfSh0KX0obSxwLnRhcmdldCk6aC5jbG9zZXN0KG0pWzBdKSlyZXR1cm4gdm9pZCh0LmFsbG93Q2xpY2s9ITApO2lmKGwuc3dpcGVIYW5kbGVyJiYhaC5jbG9zZXN0KGwuc3dpcGVIYW5kbGVyKVswXSlyZXR1cm47by5jdXJyZW50WD0idG91Y2hzdGFydCI9PT1wLnR5cGU/cC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYOnAucGFnZVgsby5jdXJyZW50WT0idG91Y2hzdGFydCI9PT1wLnR5cGU/cC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZOnAucGFnZVk7Y29uc3QgZz1vLmN1cnJlbnRYLHY9by5jdXJyZW50WSx3PWwuZWRnZVN3aXBlRGV0ZWN0aW9ufHxsLmlPU0VkZ2VTd2lwZURldGVjdGlvbixiPWwuZWRnZVN3aXBlVGhyZXNob2xkfHxsLmlPU0VkZ2VTd2lwZVRocmVzaG9sZDtpZih3JiYoZzw9Ynx8Zz49aS5pbm5lcldpZHRoLWIpKXtpZigicHJldmVudCIhPT13KXJldHVybjtlLnByZXZlbnREZWZhdWx0KCl9aWYoT2JqZWN0LmFzc2lnbihuLHtpc1RvdWNoZWQ6ITAsaXNNb3ZlZDohMSxhbGxvd1RvdWNoQ2FsbGJhY2tzOiEwLGlzU2Nyb2xsaW5nOnZvaWQgMCxzdGFydE1vdmluZzp2b2lkIDB9KSxvLnN0YXJ0WD1nLG8uc3RhcnRZPXYsbi50b3VjaFN0YXJ0VGltZT11KCksdC5hbGxvd0NsaWNrPSEwLHQudXBkYXRlU2l6ZSgpLHQuc3dpcGVEaXJlY3Rpb249dm9pZCAwLGwudGhyZXNob2xkPjAmJihuLmFsbG93VGhyZXNob2xkTW92ZT0hMSksInRvdWNoc3RhcnQiIT09cC50eXBlKXtsZXQgZT0hMDtoLmlzKG4uZm9jdXNhYmxlRWxlbWVudHMpJiYoZT0hMSkscy5hY3RpdmVFbGVtZW50JiZkKHMuYWN0aXZlRWxlbWVudCkuaXMobi5mb2N1c2FibGVFbGVtZW50cykmJnMuYWN0aXZlRWxlbWVudCE9PWhbMF0mJnMuYWN0aXZlRWxlbWVudC5ibHVyKCk7Y29uc3QgYT1lJiZ0LmFsbG93VG91Y2hNb3ZlJiZsLnRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDshbC50b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdCYmIWF8fGhbMF0uaXNDb250ZW50RWRpdGFibGV8fHAucHJldmVudERlZmF1bHQoKX10LmVtaXQoInRvdWNoU3RhcnQiLHApfWZ1bmN0aW9uIE0oZSl7Y29uc3QgdD1hKCkscz10aGlzLGk9cy50b3VjaEV2ZW50c0RhdGEse3BhcmFtczpyLHRvdWNoZXM6bixydGxUcmFuc2xhdGU6bCxlbmFibGVkOm99PXM7aWYoIW8pcmV0dXJuO2xldCBjPWU7aWYoYy5vcmlnaW5hbEV2ZW50JiYoYz1jLm9yaWdpbmFsRXZlbnQpLCFpLmlzVG91Y2hlZClyZXR1cm4gdm9pZChpLnN0YXJ0TW92aW5nJiZpLmlzU2Nyb2xsaW5nJiZzLmVtaXQoInRvdWNoTW92ZU9wcG9zaXRlIixjKSk7aWYoaS5pc1RvdWNoRXZlbnQmJiJ0b3VjaG1vdmUiIT09Yy50eXBlKXJldHVybjtjb25zdCBwPSJ0b3VjaG1vdmUiPT09Yy50eXBlJiZjLnRhcmdldFRvdWNoZXMmJihjLnRhcmdldFRvdWNoZXNbMF18fGMuY2hhbmdlZFRvdWNoZXNbMF0pLGg9InRvdWNobW92ZSI9PT1jLnR5cGU/cC5wYWdlWDpjLnBhZ2VYLG09InRvdWNobW92ZSI9PT1jLnR5cGU/cC5wYWdlWTpjLnBhZ2VZO2lmKGMucHJldmVudGVkQnlOZXN0ZWRTd2lwZXIpcmV0dXJuIG4uc3RhcnRYPWgsdm9pZChuLnN0YXJ0WT1tKTtpZighcy5hbGxvd1RvdWNoTW92ZSlyZXR1cm4gcy5hbGxvd0NsaWNrPSExLHZvaWQoaS5pc1RvdWNoZWQmJihPYmplY3QuYXNzaWduKG4se3N0YXJ0WDpoLHN0YXJ0WTptLGN1cnJlbnRYOmgsY3VycmVudFk6bX0pLGkudG91Y2hTdGFydFRpbWU9dSgpKSk7aWYoaS5pc1RvdWNoRXZlbnQmJnIudG91Y2hSZWxlYXNlT25FZGdlcyYmIXIubG9vcClpZihzLmlzVmVydGljYWwoKSl7aWYobTxuLnN0YXJ0WSYmcy50cmFuc2xhdGU8PXMubWF4VHJhbnNsYXRlKCl8fG0+bi5zdGFydFkmJnMudHJhbnNsYXRlPj1zLm1pblRyYW5zbGF0ZSgpKXJldHVybiBpLmlzVG91Y2hlZD0hMSx2b2lkKGkuaXNNb3ZlZD0hMSl9ZWxzZSBpZihoPG4uc3RhcnRYJiZzLnRyYW5zbGF0ZTw9cy5tYXhUcmFuc2xhdGUoKXx8aD5uLnN0YXJ0WCYmcy50cmFuc2xhdGU+PXMubWluVHJhbnNsYXRlKCkpcmV0dXJuO2lmKGkuaXNUb3VjaEV2ZW50JiZ0LmFjdGl2ZUVsZW1lbnQmJmMudGFyZ2V0PT09dC5hY3RpdmVFbGVtZW50JiZkKGMudGFyZ2V0KS5pcyhpLmZvY3VzYWJsZUVsZW1lbnRzKSlyZXR1cm4gaS5pc01vdmVkPSEwLHZvaWQocy5hbGxvd0NsaWNrPSExKTtpZihpLmFsbG93VG91Y2hDYWxsYmFja3MmJnMuZW1pdCgidG91Y2hNb3ZlIixjKSxjLnRhcmdldFRvdWNoZXMmJmMudGFyZ2V0VG91Y2hlcy5sZW5ndGg+MSlyZXR1cm47bi5jdXJyZW50WD1oLG4uY3VycmVudFk9bTtjb25zdCBmPW4uY3VycmVudFgtbi5zdGFydFgsZz1uLmN1cnJlbnRZLW4uc3RhcnRZO2lmKHMucGFyYW1zLnRocmVzaG9sZCYmTWF0aC5zcXJ0KGYqKjIrZyoqMik8cy5wYXJhbXMudGhyZXNob2xkKXJldHVybjtpZih2b2lkIDA9PT1pLmlzU2Nyb2xsaW5nKXtsZXQgZTtzLmlzSG9yaXpvbnRhbCgpJiZuLmN1cnJlbnRZPT09bi5zdGFydFl8fHMuaXNWZXJ0aWNhbCgpJiZuLmN1cnJlbnRYPT09bi5zdGFydFg/aS5pc1Njcm9sbGluZz0hMTpmKmYrZypnPj0yNSYmKGU9MTgwKk1hdGguYXRhbjIoTWF0aC5hYnMoZyksTWF0aC5hYnMoZikpL01hdGguUEksaS5pc1Njcm9sbGluZz1zLmlzSG9yaXpvbnRhbCgpP2U+ci50b3VjaEFuZ2xlOjkwLWU+ci50b3VjaEFuZ2xlKX1pZihpLmlzU2Nyb2xsaW5nJiZzLmVtaXQoInRvdWNoTW92ZU9wcG9zaXRlIixjKSx2b2lkIDA9PT1pLnN0YXJ0TW92aW5nJiYobi5jdXJyZW50WD09PW4uc3RhcnRYJiZuLmN1cnJlbnRZPT09bi5zdGFydFl8fChpLnN0YXJ0TW92aW5nPSEwKSksaS5pc1Njcm9sbGluZylyZXR1cm4gdm9pZChpLmlzVG91Y2hlZD0hMSk7aWYoIWkuc3RhcnRNb3ZpbmcpcmV0dXJuO3MuYWxsb3dDbGljaz0hMSwhci5jc3NNb2RlJiZjLmNhbmNlbGFibGUmJmMucHJldmVudERlZmF1bHQoKSxyLnRvdWNoTW92ZVN0b3BQcm9wYWdhdGlvbiYmIXIubmVzdGVkJiZjLnN0b3BQcm9wYWdhdGlvbigpLGkuaXNNb3ZlZHx8KHIubG9vcCYmIXIuY3NzTW9kZSYmcy5sb29wRml4KCksaS5zdGFydFRyYW5zbGF0ZT1zLmdldFRyYW5zbGF0ZSgpLHMuc2V0VHJhbnNpdGlvbigwKSxzLmFuaW1hdGluZyYmcy4kd3JhcHBlckVsLnRyaWdnZXIoIndlYmtpdFRyYW5zaXRpb25FbmQgdHJhbnNpdGlvbmVuZCIpLGkuYWxsb3dNb21lbnR1bUJvdW5jZT0hMSwhci5ncmFiQ3Vyc29yfHwhMCE9PXMuYWxsb3dTbGlkZU5leHQmJiEwIT09cy5hbGxvd1NsaWRlUHJldnx8cy5zZXRHcmFiQ3Vyc29yKCEwKSxzLmVtaXQoInNsaWRlckZpcnN0TW92ZSIsYykpLHMuZW1pdCgic2xpZGVyTW92ZSIsYyksaS5pc01vdmVkPSEwO2xldCB2PXMuaXNIb3Jpem9udGFsKCk/ZjpnO24uZGlmZj12LHYqPXIudG91Y2hSYXRpbyxsJiYodj0tdikscy5zd2lwZURpcmVjdGlvbj12PjA/InByZXYiOiJuZXh0IixpLmN1cnJlbnRUcmFuc2xhdGU9ditpLnN0YXJ0VHJhbnNsYXRlO2xldCB3PSEwLGI9ci5yZXNpc3RhbmNlUmF0aW87aWYoci50b3VjaFJlbGVhc2VPbkVkZ2VzJiYoYj0wKSx2PjAmJmkuY3VycmVudFRyYW5zbGF0ZT5zLm1pblRyYW5zbGF0ZSgpPyh3PSExLHIucmVzaXN0YW5jZSYmKGkuY3VycmVudFRyYW5zbGF0ZT1zLm1pblRyYW5zbGF0ZSgpLTErKC1zLm1pblRyYW5zbGF0ZSgpK2kuc3RhcnRUcmFuc2xhdGUrdikqKmIpKTp2PDAmJmkuY3VycmVudFRyYW5zbGF0ZTxzLm1heFRyYW5zbGF0ZSgpJiYodz0hMSxyLnJlc2lzdGFuY2UmJihpLmN1cnJlbnRUcmFuc2xhdGU9cy5tYXhUcmFuc2xhdGUoKSsxLShzLm1heFRyYW5zbGF0ZSgpLWkuc3RhcnRUcmFuc2xhdGUtdikqKmIpKSx3JiYoYy5wcmV2ZW50ZWRCeU5lc3RlZFN3aXBlcj0hMCksIXMuYWxsb3dTbGlkZU5leHQmJiJuZXh0Ij09PXMuc3dpcGVEaXJlY3Rpb24mJmkuY3VycmVudFRyYW5zbGF0ZTxpLnN0YXJ0VHJhbnNsYXRlJiYoaS5jdXJyZW50VHJhbnNsYXRlPWkuc3RhcnRUcmFuc2xhdGUpLCFzLmFsbG93U2xpZGVQcmV2JiYicHJldiI9PT1zLnN3aXBlRGlyZWN0aW9uJiZpLmN1cnJlbnRUcmFuc2xhdGU+aS5zdGFydFRyYW5zbGF0ZSYmKGkuY3VycmVudFRyYW5zbGF0ZT1pLnN0YXJ0VHJhbnNsYXRlKSxzLmFsbG93U2xpZGVQcmV2fHxzLmFsbG93U2xpZGVOZXh0fHwoaS5jdXJyZW50VHJhbnNsYXRlPWkuc3RhcnRUcmFuc2xhdGUpLHIudGhyZXNob2xkPjApe2lmKCEoTWF0aC5hYnModik+ci50aHJlc2hvbGR8fGkuYWxsb3dUaHJlc2hvbGRNb3ZlKSlyZXR1cm4gdm9pZChpLmN1cnJlbnRUcmFuc2xhdGU9aS5zdGFydFRyYW5zbGF0ZSk7aWYoIWkuYWxsb3dUaHJlc2hvbGRNb3ZlKXJldHVybiBpLmFsbG93VGhyZXNob2xkTW92ZT0hMCxuLnN0YXJ0WD1uLmN1cnJlbnRYLG4uc3RhcnRZPW4uY3VycmVudFksaS5jdXJyZW50VHJhbnNsYXRlPWkuc3RhcnRUcmFuc2xhdGUsdm9pZChuLmRpZmY9cy5pc0hvcml6b250YWwoKT9uLmN1cnJlbnRYLW4uc3RhcnRYOm4uY3VycmVudFktbi5zdGFydFkpfXIuZm9sbG93RmluZ2VyJiYhci5jc3NNb2RlJiYoKHIuZnJlZU1vZGUmJnIuZnJlZU1vZGUuZW5hYmxlZCYmcy5mcmVlTW9kZXx8ci53YXRjaFNsaWRlc1Byb2dyZXNzKSYmKHMudXBkYXRlQWN0aXZlSW5kZXgoKSxzLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSkscy5wYXJhbXMuZnJlZU1vZGUmJnIuZnJlZU1vZGUuZW5hYmxlZCYmcy5mcmVlTW9kZSYmcy5mcmVlTW9kZS5vblRvdWNoTW92ZSgpLHMudXBkYXRlUHJvZ3Jlc3MoaS5jdXJyZW50VHJhbnNsYXRlKSxzLnNldFRyYW5zbGF0ZShpLmN1cnJlbnRUcmFuc2xhdGUpKX1mdW5jdGlvbiBQKGUpe2NvbnN0IHQ9dGhpcyxzPXQudG91Y2hFdmVudHNEYXRhLHtwYXJhbXM6YSx0b3VjaGVzOmkscnRsVHJhbnNsYXRlOnIsc2xpZGVzR3JpZDpuLGVuYWJsZWQ6bH09dDtpZighbClyZXR1cm47bGV0IG89ZTtpZihvLm9yaWdpbmFsRXZlbnQmJihvPW8ub3JpZ2luYWxFdmVudCkscy5hbGxvd1RvdWNoQ2FsbGJhY2tzJiZ0LmVtaXQoInRvdWNoRW5kIixvKSxzLmFsbG93VG91Y2hDYWxsYmFja3M9ITEsIXMuaXNUb3VjaGVkKXJldHVybiBzLmlzTW92ZWQmJmEuZ3JhYkN1cnNvciYmdC5zZXRHcmFiQ3Vyc29yKCExKSxzLmlzTW92ZWQ9ITEsdm9pZChzLnN0YXJ0TW92aW5nPSExKTthLmdyYWJDdXJzb3ImJnMuaXNNb3ZlZCYmcy5pc1RvdWNoZWQmJighMD09PXQuYWxsb3dTbGlkZU5leHR8fCEwPT09dC5hbGxvd1NsaWRlUHJldikmJnQuc2V0R3JhYkN1cnNvcighMSk7Y29uc3QgZD11KCksYz1kLXMudG91Y2hTdGFydFRpbWU7aWYodC5hbGxvd0NsaWNrKXtjb25zdCBlPW8ucGF0aHx8by5jb21wb3NlZFBhdGgmJm8uY29tcG9zZWRQYXRoKCk7dC51cGRhdGVDbGlja2VkU2xpZGUoZSYmZVswXXx8by50YXJnZXQpLHQuZW1pdCgidGFwIGNsaWNrIixvKSxjPDMwMCYmZC1zLmxhc3RDbGlja1RpbWU8MzAwJiZ0LmVtaXQoImRvdWJsZVRhcCBkb3VibGVDbGljayIsbyl9aWYocy5sYXN0Q2xpY2tUaW1lPXUoKSxwKCgoKT0+e3QuZGVzdHJveWVkfHwodC5hbGxvd0NsaWNrPSEwKX0pKSwhcy5pc1RvdWNoZWR8fCFzLmlzTW92ZWR8fCF0LnN3aXBlRGlyZWN0aW9ufHwwPT09aS5kaWZmfHxzLmN1cnJlbnRUcmFuc2xhdGU9PT1zLnN0YXJ0VHJhbnNsYXRlKXJldHVybiBzLmlzVG91Y2hlZD0hMSxzLmlzTW92ZWQ9ITEsdm9pZChzLnN0YXJ0TW92aW5nPSExKTtsZXQgaDtpZihzLmlzVG91Y2hlZD0hMSxzLmlzTW92ZWQ9ITEscy5zdGFydE1vdmluZz0hMSxoPWEuZm9sbG93RmluZ2VyP3I/dC50cmFuc2xhdGU6LXQudHJhbnNsYXRlOi1zLmN1cnJlbnRUcmFuc2xhdGUsYS5jc3NNb2RlKXJldHVybjtpZih0LnBhcmFtcy5mcmVlTW9kZSYmYS5mcmVlTW9kZS5lbmFibGVkKXJldHVybiB2b2lkIHQuZnJlZU1vZGUub25Ub3VjaEVuZCh7Y3VycmVudFBvczpofSk7bGV0IG09MCxmPXQuc2xpZGVzU2l6ZXNHcmlkWzBdO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSs9ZTxhLnNsaWRlc1Blckdyb3VwU2tpcD8xOmEuc2xpZGVzUGVyR3JvdXApe2NvbnN0IHQ9ZTxhLnNsaWRlc1Blckdyb3VwU2tpcC0xPzE6YS5zbGlkZXNQZXJHcm91cDt2b2lkIDAhPT1uW2UrdF0/aD49bltlXSYmaDxuW2UrdF0mJihtPWUsZj1uW2UrdF0tbltlXSk6aD49bltlXSYmKG09ZSxmPW5bbi5sZW5ndGgtMV0tbltuLmxlbmd0aC0yXSl9Y29uc3QgZz0oaC1uW21dKS9mLHY9bTxhLnNsaWRlc1Blckdyb3VwU2tpcC0xPzE6YS5zbGlkZXNQZXJHcm91cDtpZihjPmEubG9uZ1N3aXBlc01zKXtpZighYS5sb25nU3dpcGVzKXJldHVybiB2b2lkIHQuc2xpZGVUbyh0LmFjdGl2ZUluZGV4KTsibmV4dCI9PT10LnN3aXBlRGlyZWN0aW9uJiYoZz49YS5sb25nU3dpcGVzUmF0aW8/dC5zbGlkZVRvKG0rdik6dC5zbGlkZVRvKG0pKSwicHJldiI9PT10LnN3aXBlRGlyZWN0aW9uJiYoZz4xLWEubG9uZ1N3aXBlc1JhdGlvP3Quc2xpZGVUbyhtK3YpOnQuc2xpZGVUbyhtKSl9ZWxzZXtpZighYS5zaG9ydFN3aXBlcylyZXR1cm4gdm9pZCB0LnNsaWRlVG8odC5hY3RpdmVJbmRleCk7dC5uYXZpZ2F0aW9uJiYoby50YXJnZXQ9PT10Lm5hdmlnYXRpb24ubmV4dEVsfHxvLnRhcmdldD09PXQubmF2aWdhdGlvbi5wcmV2RWwpP28udGFyZ2V0PT09dC5uYXZpZ2F0aW9uLm5leHRFbD90LnNsaWRlVG8obSt2KTp0LnNsaWRlVG8obSk6KCJuZXh0Ij09PXQuc3dpcGVEaXJlY3Rpb24mJnQuc2xpZGVUbyhtK3YpLCJwcmV2Ij09PXQuc3dpcGVEaXJlY3Rpb24mJnQuc2xpZGVUbyhtKSl9fWZ1bmN0aW9uIGsoKXtjb25zdCBlPXRoaXMse3BhcmFtczp0LGVsOnN9PWU7aWYocyYmMD09PXMub2Zmc2V0V2lkdGgpcmV0dXJuO3QuYnJlYWtwb2ludHMmJmUuc2V0QnJlYWtwb2ludCgpO2NvbnN0e2FsbG93U2xpZGVOZXh0OmEsYWxsb3dTbGlkZVByZXY6aSxzbmFwR3JpZDpyfT1lO2UuYWxsb3dTbGlkZU5leHQ9ITAsZS5hbGxvd1NsaWRlUHJldj0hMCxlLnVwZGF0ZVNpemUoKSxlLnVwZGF0ZVNsaWRlcygpLGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpLCgiYXV0byI9PT10LnNsaWRlc1BlclZpZXd8fHQuc2xpZGVzUGVyVmlldz4xKSYmZS5pc0VuZCYmIWUuaXNCZWdpbm5pbmcmJiFlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcz9lLnNsaWRlVG8oZS5zbGlkZXMubGVuZ3RoLTEsMCwhMSwhMCk6ZS5zbGlkZVRvKGUuYWN0aXZlSW5kZXgsMCwhMSwhMCksZS5hdXRvcGxheSYmZS5hdXRvcGxheS5ydW5uaW5nJiZlLmF1dG9wbGF5LnBhdXNlZCYmZS5hdXRvcGxheS5ydW4oKSxlLmFsbG93U2xpZGVQcmV2PWksZS5hbGxvd1NsaWRlTmV4dD1hLGUucGFyYW1zLndhdGNoT3ZlcmZsb3cmJnIhPT1lLnNuYXBHcmlkJiZlLmNoZWNrT3ZlcmZsb3coKX1mdW5jdGlvbiB6KGUpe2NvbnN0IHQ9dGhpczt0LmVuYWJsZWQmJih0LmFsbG93Q2xpY2t8fCh0LnBhcmFtcy5wcmV2ZW50Q2xpY2tzJiZlLnByZXZlbnREZWZhdWx0KCksdC5wYXJhbXMucHJldmVudENsaWNrc1Byb3BhZ2F0aW9uJiZ0LmFuaW1hdGluZyYmKGUuc3RvcFByb3BhZ2F0aW9uKCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSkpKX1mdW5jdGlvbiBPKCl7Y29uc3QgZT10aGlzLHt3cmFwcGVyRWw6dCxydGxUcmFuc2xhdGU6cyxlbmFibGVkOmF9PWU7aWYoIWEpcmV0dXJuO2xldCBpO2UucHJldmlvdXNUcmFuc2xhdGU9ZS50cmFuc2xhdGUsZS5pc0hvcml6b250YWwoKT9lLnRyYW5zbGF0ZT0tdC5zY3JvbGxMZWZ0OmUudHJhbnNsYXRlPS10LnNjcm9sbFRvcCwtMD09PWUudHJhbnNsYXRlJiYoZS50cmFuc2xhdGU9MCksZS51cGRhdGVBY3RpdmVJbmRleCgpLGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpO2NvbnN0IHI9ZS5tYXhUcmFuc2xhdGUoKS1lLm1pblRyYW5zbGF0ZSgpO2k9MD09PXI/MDooZS50cmFuc2xhdGUtZS5taW5UcmFuc2xhdGUoKSkvcixpIT09ZS5wcm9ncmVzcyYmZS51cGRhdGVQcm9ncmVzcyhzPy1lLnRyYW5zbGF0ZTplLnRyYW5zbGF0ZSksZS5lbWl0KCJzZXRUcmFuc2xhdGUiLGUudHJhbnNsYXRlLCExKX1sZXQgST0hMTtmdW5jdGlvbiBMKCl7fWNvbnN0IEE9KGUsdCk9Pntjb25zdCBzPWEoKSx7cGFyYW1zOmksdG91Y2hFdmVudHM6cixlbDpuLHdyYXBwZXJFbDpsLGRldmljZTpvLHN1cHBvcnQ6ZH09ZSxjPSEhaS5uZXN0ZWQscD0ib24iPT09dD8iYWRkRXZlbnRMaXN0ZW5lciI6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHU9dDtpZihkLnRvdWNoKXtjb25zdCB0PSEoInRvdWNoc3RhcnQiIT09ci5zdGFydHx8IWQucGFzc2l2ZUxpc3RlbmVyfHwhaS5wYXNzaXZlTGlzdGVuZXJzKSYme3Bhc3NpdmU6ITAsY2FwdHVyZTohMX07bltwXShyLnN0YXJ0LGUub25Ub3VjaFN0YXJ0LHQpLG5bcF0oci5tb3ZlLGUub25Ub3VjaE1vdmUsZC5wYXNzaXZlTGlzdGVuZXI/e3Bhc3NpdmU6ITEsY2FwdHVyZTpjfTpjKSxuW3BdKHIuZW5kLGUub25Ub3VjaEVuZCx0KSxyLmNhbmNlbCYmbltwXShyLmNhbmNlbCxlLm9uVG91Y2hFbmQsdCl9ZWxzZSBuW3BdKHIuc3RhcnQsZS5vblRvdWNoU3RhcnQsITEpLHNbcF0oci5tb3ZlLGUub25Ub3VjaE1vdmUsYyksc1twXShyLmVuZCxlLm9uVG91Y2hFbmQsITEpOyhpLnByZXZlbnRDbGlja3N8fGkucHJldmVudENsaWNrc1Byb3BhZ2F0aW9uKSYmbltwXSgiY2xpY2siLGUub25DbGljaywhMCksaS5jc3NNb2RlJiZsW3BdKCJzY3JvbGwiLGUub25TY3JvbGwpLGkudXBkYXRlT25XaW5kb3dSZXNpemU/ZVt1XShvLmlvc3x8by5hbmRyb2lkPyJyZXNpemUgb3JpZW50YXRpb25jaGFuZ2Ugb2JzZXJ2ZXJVcGRhdGUiOiJyZXNpemUgb2JzZXJ2ZXJVcGRhdGUiLGssITApOmVbdV0oIm9ic2VydmVyVXBkYXRlIixrLCEwKX07Y29uc3QgRD0oZSx0KT0+ZS5ncmlkJiZ0LmdyaWQmJnQuZ3JpZC5yb3dzPjE7dmFyIEc9e2luaXQ6ITAsZGlyZWN0aW9uOiJob3Jpem9udGFsIix0b3VjaEV2ZW50c1RhcmdldDoid3JhcHBlciIsaW5pdGlhbFNsaWRlOjAsc3BlZWQ6MzAwLGNzc01vZGU6ITEsdXBkYXRlT25XaW5kb3dSZXNpemU6ITAscmVzaXplT2JzZXJ2ZXI6ITAsbmVzdGVkOiExLGNyZWF0ZUVsZW1lbnRzOiExLGVuYWJsZWQ6ITAsZm9jdXNhYmxlRWxlbWVudHM6ImlucHV0LCBzZWxlY3QsIG9wdGlvbiwgdGV4dGFyZWEsIGJ1dHRvbiwgdmlkZW8sIGxhYmVsIix3aWR0aDpudWxsLGhlaWdodDpudWxsLHByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbjohMSx1c2VyQWdlbnQ6bnVsbCx1cmw6bnVsbCxlZGdlU3dpcGVEZXRlY3Rpb246ITEsZWRnZVN3aXBlVGhyZXNob2xkOjIwLGF1dG9IZWlnaHQ6ITEsc2V0V3JhcHBlclNpemU6ITEsdmlydHVhbFRyYW5zbGF0ZTohMSxlZmZlY3Q6InNsaWRlIixicmVha3BvaW50czp2b2lkIDAsYnJlYWtwb2ludHNCYXNlOiJ3aW5kb3ciLHNwYWNlQmV0d2VlbjowLHNsaWRlc1BlclZpZXc6MSxzbGlkZXNQZXJHcm91cDoxLHNsaWRlc1Blckdyb3VwU2tpcDowLHNsaWRlc1Blckdyb3VwQXV0bzohMSxjZW50ZXJlZFNsaWRlczohMSxjZW50ZXJlZFNsaWRlc0JvdW5kczohMSxzbGlkZXNPZmZzZXRCZWZvcmU6MCxzbGlkZXNPZmZzZXRBZnRlcjowLG5vcm1hbGl6ZVNsaWRlSW5kZXg6ITAsY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiExLHdhdGNoT3ZlcmZsb3c6ITAscm91bmRMZW5ndGhzOiExLHRvdWNoUmF0aW86MSx0b3VjaEFuZ2xlOjQ1LHNpbXVsYXRlVG91Y2g6ITAsc2hvcnRTd2lwZXM6ITAsbG9uZ1N3aXBlczohMCxsb25nU3dpcGVzUmF0aW86LjUsbG9uZ1N3aXBlc01zOjMwMCxmb2xsb3dGaW5nZXI6ITAsYWxsb3dUb3VjaE1vdmU6ITAsdGhyZXNob2xkOjAsdG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uOiExLHRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDohMCx0b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdDohMSx0b3VjaFJlbGVhc2VPbkVkZ2VzOiExLHVuaXF1ZU5hdkVsZW1lbnRzOiEwLHJlc2lzdGFuY2U6ITAscmVzaXN0YW5jZVJhdGlvOi44NSx3YXRjaFNsaWRlc1Byb2dyZXNzOiExLGdyYWJDdXJzb3I6ITEscHJldmVudENsaWNrczohMCxwcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb246ITAsc2xpZGVUb0NsaWNrZWRTbGlkZTohMSxwcmVsb2FkSW1hZ2VzOiEwLHVwZGF0ZU9uSW1hZ2VzUmVhZHk6ITAsbG9vcDohMSxsb29wQWRkaXRpb25hbFNsaWRlczowLGxvb3BlZFNsaWRlczpudWxsLGxvb3BGaWxsR3JvdXBXaXRoQmxhbms6ITEsbG9vcFByZXZlbnRzU2xpZGU6ITAsYWxsb3dTbGlkZVByZXY6ITAsYWxsb3dTbGlkZU5leHQ6ITAsc3dpcGVIYW5kbGVyOm51bGwsbm9Td2lwaW5nOiEwLG5vU3dpcGluZ0NsYXNzOiJzd2lwZXItbm8tc3dpcGluZyIsbm9Td2lwaW5nU2VsZWN0b3I6bnVsbCxwYXNzaXZlTGlzdGVuZXJzOiEwLGNvbnRhaW5lck1vZGlmaWVyQ2xhc3M6InN3aXBlci0iLHNsaWRlQ2xhc3M6InN3aXBlci1zbGlkZSIsc2xpZGVCbGFua0NsYXNzOiJzd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5rIixzbGlkZUFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtYWN0aXZlIixzbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlLWFjdGl2ZSIsc2xpZGVWaXNpYmxlQ2xhc3M6InN3aXBlci1zbGlkZS12aXNpYmxlIixzbGlkZUR1cGxpY2F0ZUNsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlIixzbGlkZU5leHRDbGFzczoic3dpcGVyLXNsaWRlLW5leHQiLHNsaWRlRHVwbGljYXRlTmV4dENsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlLW5leHQiLHNsaWRlUHJldkNsYXNzOiJzd2lwZXItc2xpZGUtcHJldiIsc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtcHJldiIsd3JhcHBlckNsYXNzOiJzd2lwZXItd3JhcHBlciIscnVuQ2FsbGJhY2tzT25Jbml0OiEwLF9lbWl0Q2xhc3NlczohMX07ZnVuY3Rpb24gTihlLHQpe3JldHVybiBmdW5jdGlvbihzPXt9KXtjb25zdCBhPU9iamVjdC5rZXlzKHMpWzBdLGk9c1thXTsib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPT1pPyhbIm5hdmlnYXRpb24iLCJwYWdpbmF0aW9uIiwic2Nyb2xsYmFyIl0uaW5kZXhPZihhKT49MCYmITA9PT1lW2FdJiYoZVthXT17YXV0bzohMH0pLGEgaW4gZSYmImVuYWJsZWQiaW4gaT8oITA9PT1lW2FdJiYoZVthXT17ZW5hYmxlZDohMH0pLCJvYmplY3QiIT10eXBlb2YgZVthXXx8ImVuYWJsZWQiaW4gZVthXXx8KGVbYV0uZW5hYmxlZD0hMCksZVthXXx8KGVbYV09e2VuYWJsZWQ6ITF9KSxmKHQscykpOmYodCxzKSk6Zih0LHMpfX1jb25zdCBCPXtldmVudHNFbWl0dGVyOkMsdXBkYXRlOnt1cGRhdGVTaXplOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzO2xldCB0LHM7Y29uc3QgYT1lLiRlbDt0PXZvaWQgMCE9PWUucGFyYW1zLndpZHRoJiZudWxsIT09ZS5wYXJhbXMud2lkdGg/ZS5wYXJhbXMud2lkdGg6YVswXS5jbGllbnRXaWR0aCxzPXZvaWQgMCE9PWUucGFyYW1zLmhlaWdodCYmbnVsbCE9PWUucGFyYW1zLmhlaWdodD9lLnBhcmFtcy5oZWlnaHQ6YVswXS5jbGllbnRIZWlnaHQsMD09PXQmJmUuaXNIb3Jpem9udGFsKCl8fDA9PT1zJiZlLmlzVmVydGljYWwoKXx8KHQ9dC1wYXJzZUludChhLmNzcygicGFkZGluZy1sZWZ0Iil8fDAsMTApLXBhcnNlSW50KGEuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApLHM9cy1wYXJzZUludChhLmNzcygicGFkZGluZy10b3AiKXx8MCwxMCktcGFyc2VJbnQoYS5jc3MoInBhZGRpbmctYm90dG9tIil8fDAsMTApLE51bWJlci5pc05hTih0KSYmKHQ9MCksTnVtYmVyLmlzTmFOKHMpJiYocz0wKSxPYmplY3QuYXNzaWduKGUse3dpZHRoOnQsaGVpZ2h0OnMsc2l6ZTplLmlzSG9yaXpvbnRhbCgpP3Q6c30pKX0sdXBkYXRlU2xpZGVzOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzO2Z1bmN0aW9uIHQodCl7cmV0dXJuIGUuaXNIb3Jpem9udGFsKCk/dDp7d2lkdGg6ImhlaWdodCIsIm1hcmdpbi10b3AiOiJtYXJnaW4tbGVmdCIsIm1hcmdpbi1ib3R0b20gIjoibWFyZ2luLXJpZ2h0IiwibWFyZ2luLWxlZnQiOiJtYXJnaW4tdG9wIiwibWFyZ2luLXJpZ2h0IjoibWFyZ2luLWJvdHRvbSIsInBhZGRpbmctbGVmdCI6InBhZGRpbmctdG9wIiwicGFkZGluZy1yaWdodCI6InBhZGRpbmctYm90dG9tIixtYXJnaW5SaWdodDoibWFyZ2luQm90dG9tIn1bdF19ZnVuY3Rpb24gcyhlLHMpe3JldHVybiBwYXJzZUZsb2F0KGUuZ2V0UHJvcGVydHlWYWx1ZSh0KHMpKXx8MCl9Y29uc3QgYT1lLnBhcmFtcyx7JHdyYXBwZXJFbDppLHNpemU6cixydGxUcmFuc2xhdGU6bix3cm9uZ1JUTDpsfT1lLG89ZS52aXJ0dWFsJiZhLnZpcnR1YWwuZW5hYmxlZCxkPW8/ZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGg6ZS5zbGlkZXMubGVuZ3RoLGM9aS5jaGlsZHJlbihgLiR7ZS5wYXJhbXMuc2xpZGVDbGFzc31gKSxwPW8/ZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGg6Yy5sZW5ndGg7bGV0IHU9W107Y29uc3QgaD1bXSxtPVtdO2xldCBmPWEuc2xpZGVzT2Zmc2V0QmVmb3JlOyJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZj1hLnNsaWRlc09mZnNldEJlZm9yZS5jYWxsKGUpKTtsZXQgdj1hLnNsaWRlc09mZnNldEFmdGVyOyJmdW5jdGlvbiI9PXR5cGVvZiB2JiYodj1hLnNsaWRlc09mZnNldEFmdGVyLmNhbGwoZSkpO2NvbnN0IHc9ZS5zbmFwR3JpZC5sZW5ndGgsYj1lLnNsaWRlc0dyaWQubGVuZ3RoO2xldCB4PWEuc3BhY2VCZXR3ZWVuLHk9LWYsRT0wLFQ9MDtpZih2b2lkIDA9PT1yKXJldHVybjsic3RyaW5nIj09dHlwZW9mIHgmJnguaW5kZXhPZigiJSIpPj0wJiYoeD1wYXJzZUZsb2F0KHgucmVwbGFjZSgiJSIsIiIpKS8xMDAqciksZS52aXJ0dWFsU2l6ZT0teCxuP2MuY3NzKHttYXJnaW5MZWZ0OiIiLG1hcmdpbkJvdHRvbToiIixtYXJnaW5Ub3A6IiJ9KTpjLmNzcyh7bWFyZ2luUmlnaHQ6IiIsbWFyZ2luQm90dG9tOiIiLG1hcmdpblRvcDoiIn0pLGEuY2VudGVyZWRTbGlkZXMmJmEuY3NzTW9kZSYmKGcoZS53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLCIiKSxnKGUud3JhcHBlckVsLCItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIiLCIiKSk7Y29uc3QgQz1hLmdyaWQmJmEuZ3JpZC5yb3dzPjEmJmUuZ3JpZDtsZXQgJDtDJiZlLmdyaWQuaW5pdFNsaWRlcyhwKTtjb25zdCBTPSJhdXRvIj09PWEuc2xpZGVzUGVyVmlldyYmYS5icmVha3BvaW50cyYmT2JqZWN0LmtleXMoYS5icmVha3BvaW50cykuZmlsdGVyKChlPT52b2lkIDAhPT1hLmJyZWFrcG9pbnRzW2VdLnNsaWRlc1BlclZpZXcpKS5sZW5ndGg+MDtmb3IobGV0IGk9MDtpPHA7aSs9MSl7JD0wO2NvbnN0IG49Yy5lcShpKTtpZihDJiZlLmdyaWQudXBkYXRlU2xpZGUoaSxuLHAsdCksIm5vbmUiIT09bi5jc3MoImRpc3BsYXkiKSl7aWYoImF1dG8iPT09YS5zbGlkZXNQZXJWaWV3KXtTJiYoY1tpXS5zdHlsZVt0KCJ3aWR0aCIpXT0iIik7Y29uc3Qgcj1nZXRDb21wdXRlZFN0eWxlKG5bMF0pLGw9blswXS5zdHlsZS50cmFuc2Zvcm0sbz1uWzBdLnN0eWxlLndlYmtpdFRyYW5zZm9ybTtpZihsJiYoblswXS5zdHlsZS50cmFuc2Zvcm09Im5vbmUiKSxvJiYoblswXS5zdHlsZS53ZWJraXRUcmFuc2Zvcm09Im5vbmUiKSxhLnJvdW5kTGVuZ3RocykkPWUuaXNIb3Jpem9udGFsKCk/bi5vdXRlcldpZHRoKCEwKTpuLm91dGVySGVpZ2h0KCEwKTtlbHNle2NvbnN0IGU9cyhyLCJ3aWR0aCIpLHQ9cyhyLCJwYWRkaW5nLWxlZnQiKSxhPXMociwicGFkZGluZy1yaWdodCIpLGk9cyhyLCJtYXJnaW4tbGVmdCIpLGw9cyhyLCJtYXJnaW4tcmlnaHQiKSxvPXIuZ2V0UHJvcGVydHlWYWx1ZSgiYm94LXNpemluZyIpO2lmKG8mJiJib3JkZXItYm94Ij09PW8pJD1lK2krbDtlbHNle2NvbnN0e2NsaWVudFdpZHRoOnMsb2Zmc2V0V2lkdGg6cn09blswXTskPWUrdCthK2krbCsoci1zKX19bCYmKG5bMF0uc3R5bGUudHJhbnNmb3JtPWwpLG8mJihuWzBdLnN0eWxlLndlYmtpdFRyYW5zZm9ybT1vKSxhLnJvdW5kTGVuZ3RocyYmKCQ9TWF0aC5mbG9vcigkKSl9ZWxzZSAkPShyLShhLnNsaWRlc1BlclZpZXctMSkqeCkvYS5zbGlkZXNQZXJWaWV3LGEucm91bmRMZW5ndGhzJiYoJD1NYXRoLmZsb29yKCQpKSxjW2ldJiYoY1tpXS5zdHlsZVt0KCJ3aWR0aCIpXT1gJHskfXB4YCk7Y1tpXSYmKGNbaV0uc3dpcGVyU2xpZGVTaXplPSQpLG0ucHVzaCgkKSxhLmNlbnRlcmVkU2xpZGVzPyh5PXkrJC8yK0UvMit4LDA9PT1FJiYwIT09aSYmKHk9eS1yLzIteCksMD09PWkmJih5PXktci8yLXgpLE1hdGguYWJzKHkpPC4wMDEmJih5PTApLGEucm91bmRMZW5ndGhzJiYoeT1NYXRoLmZsb29yKHkpKSxUJWEuc2xpZGVzUGVyR3JvdXA9PTAmJnUucHVzaCh5KSxoLnB1c2goeSkpOihhLnJvdW5kTGVuZ3RocyYmKHk9TWF0aC5mbG9vcih5KSksKFQtTWF0aC5taW4oZS5wYXJhbXMuc2xpZGVzUGVyR3JvdXBTa2lwLFQpKSVlLnBhcmFtcy5zbGlkZXNQZXJHcm91cD09MCYmdS5wdXNoKHkpLGgucHVzaCh5KSx5PXkrJCt4KSxlLnZpcnR1YWxTaXplKz0kK3gsRT0kLFQrPTF9fWlmKGUudmlydHVhbFNpemU9TWF0aC5tYXgoZS52aXJ0dWFsU2l6ZSxyKSt2LG4mJmwmJigic2xpZGUiPT09YS5lZmZlY3R8fCJjb3ZlcmZsb3ciPT09YS5lZmZlY3QpJiZpLmNzcyh7d2lkdGg6YCR7ZS52aXJ0dWFsU2l6ZSthLnNwYWNlQmV0d2Vlbn1weGB9KSxhLnNldFdyYXBwZXJTaXplJiZpLmNzcyh7W3QoIndpZHRoIildOmAke2UudmlydHVhbFNpemUrYS5zcGFjZUJldHdlZW59cHhgfSksQyYmZS5ncmlkLnVwZGF0ZVdyYXBwZXJTaXplKCQsdSx0KSwhYS5jZW50ZXJlZFNsaWRlcyl7Y29uc3QgdD1bXTtmb3IobGV0IHM9MDtzPHUubGVuZ3RoO3MrPTEpe2xldCBpPXVbc107YS5yb3VuZExlbmd0aHMmJihpPU1hdGguZmxvb3IoaSkpLHVbc108PWUudmlydHVhbFNpemUtciYmdC5wdXNoKGkpfXU9dCxNYXRoLmZsb29yKGUudmlydHVhbFNpemUtciktTWF0aC5mbG9vcih1W3UubGVuZ3RoLTFdKT4xJiZ1LnB1c2goZS52aXJ0dWFsU2l6ZS1yKX1pZigwPT09dS5sZW5ndGgmJih1PVswXSksMCE9PWEuc3BhY2VCZXR3ZWVuKXtjb25zdCBzPWUuaXNIb3Jpem9udGFsKCkmJm4/Im1hcmdpbkxlZnQiOnQoIm1hcmdpblJpZ2h0Iik7Yy5maWx0ZXIoKChlLHQpPT4hYS5jc3NNb2RlfHx0IT09Yy5sZW5ndGgtMSkpLmNzcyh7W3NdOmAke3h9cHhgfSl9aWYoYS5jZW50ZXJlZFNsaWRlcyYmYS5jZW50ZXJlZFNsaWRlc0JvdW5kcyl7bGV0IGU9MDttLmZvckVhY2goKHQ9PntlKz10KyhhLnNwYWNlQmV0d2Vlbj9hLnNwYWNlQmV0d2VlbjowKX0pKSxlLT1hLnNwYWNlQmV0d2Vlbjtjb25zdCB0PWUtcjt1PXUubWFwKChlPT5lPDA/LWY6ZT50P3QrdjplKSl9aWYoYS5jZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXMpe2xldCBlPTA7aWYobS5mb3JFYWNoKCh0PT57ZSs9dCsoYS5zcGFjZUJldHdlZW4/YS5zcGFjZUJldHdlZW46MCl9KSksZS09YS5zcGFjZUJldHdlZW4sZTxyKXtjb25zdCB0PShyLWUpLzI7dS5mb3JFYWNoKCgoZSxzKT0+e3Vbc109ZS10fSkpLGguZm9yRWFjaCgoKGUscyk9PntoW3NdPWUrdH0pKX19aWYoT2JqZWN0LmFzc2lnbihlLHtzbGlkZXM6YyxzbmFwR3JpZDp1LHNsaWRlc0dyaWQ6aCxzbGlkZXNTaXplc0dyaWQ6bX0pLGEuY2VudGVyZWRTbGlkZXMmJmEuY3NzTW9kZSYmIWEuY2VudGVyZWRTbGlkZXNCb3VuZHMpe2coZS53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLC11WzBdKyJweCIpLGcoZS53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlciIsZS5zaXplLzItbVttLmxlbmd0aC0xXS8yKyJweCIpO2NvbnN0IHQ9LWUuc25hcEdyaWRbMF0scz0tZS5zbGlkZXNHcmlkWzBdO2Uuc25hcEdyaWQ9ZS5zbmFwR3JpZC5tYXAoKGU9PmUrdCkpLGUuc2xpZGVzR3JpZD1lLnNsaWRlc0dyaWQubWFwKChlPT5lK3MpKX1wIT09ZCYmZS5lbWl0KCJzbGlkZXNMZW5ndGhDaGFuZ2UiKSx1Lmxlbmd0aCE9PXcmJihlLnBhcmFtcy53YXRjaE92ZXJmbG93JiZlLmNoZWNrT3ZlcmZsb3coKSxlLmVtaXQoInNuYXBHcmlkTGVuZ3RoQ2hhbmdlIikpLGgubGVuZ3RoIT09YiYmZS5lbWl0KCJzbGlkZXNHcmlkTGVuZ3RoQ2hhbmdlIiksYS53YXRjaFNsaWRlc1Byb2dyZXNzJiZlLnVwZGF0ZVNsaWRlc09mZnNldCgpfSx1cGRhdGVBdXRvSGVpZ2h0OmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcyxzPVtdLGE9dC52aXJ0dWFsJiZ0LnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7bGV0IGkscj0wOyJudW1iZXIiPT10eXBlb2YgZT90LnNldFRyYW5zaXRpb24oZSk6ITA9PT1lJiZ0LnNldFRyYW5zaXRpb24odC5wYXJhbXMuc3BlZWQpO2NvbnN0IG49ZT0+YT90LnNsaWRlcy5maWx0ZXIoKHQ9PnBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLDEwKT09PWUpKVswXTp0LnNsaWRlcy5lcShlKVswXTtpZigiYXV0byIhPT10LnBhcmFtcy5zbGlkZXNQZXJWaWV3JiZ0LnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpaWYodC5wYXJhbXMuY2VudGVyZWRTbGlkZXMpdC52aXNpYmxlU2xpZGVzLmVhY2goKGU9PntzLnB1c2goZSl9KSk7ZWxzZSBmb3IoaT0wO2k8TWF0aC5jZWlsKHQucGFyYW1zLnNsaWRlc1BlclZpZXcpO2krPTEpe2NvbnN0IGU9dC5hY3RpdmVJbmRleCtpO2lmKGU+dC5zbGlkZXMubGVuZ3RoJiYhYSlicmVhaztzLnB1c2gobihlKSl9ZWxzZSBzLnB1c2gobih0LmFjdGl2ZUluZGV4KSk7Zm9yKGk9MDtpPHMubGVuZ3RoO2krPTEpaWYodm9pZCAwIT09c1tpXSl7Y29uc3QgZT1zW2ldLm9mZnNldEhlaWdodDtyPWU+cj9lOnJ9ciYmdC4kd3JhcHBlckVsLmNzcygiaGVpZ2h0IixgJHtyfXB4YCl9LHVwZGF0ZVNsaWRlc09mZnNldDpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcyx0PWUuc2xpZGVzO2ZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cys9MSl0W3NdLnN3aXBlclNsaWRlT2Zmc2V0PWUuaXNIb3Jpem9udGFsKCk/dFtzXS5vZmZzZXRMZWZ0OnRbc10ub2Zmc2V0VG9wfSx1cGRhdGVTbGlkZXNQcm9ncmVzczpmdW5jdGlvbihlPXRoaXMmJnRoaXMudHJhbnNsYXRlfHwwKXtjb25zdCB0PXRoaXMscz10LnBhcmFtcyx7c2xpZGVzOmEscnRsVHJhbnNsYXRlOmksc25hcEdyaWQ6cn09dDtpZigwPT09YS5sZW5ndGgpcmV0dXJuO3ZvaWQgMD09PWFbMF0uc3dpcGVyU2xpZGVPZmZzZXQmJnQudXBkYXRlU2xpZGVzT2Zmc2V0KCk7bGV0IG49LWU7aSYmKG49ZSksYS5yZW1vdmVDbGFzcyhzLnNsaWRlVmlzaWJsZUNsYXNzKSx0LnZpc2libGVTbGlkZXNJbmRleGVzPVtdLHQudmlzaWJsZVNsaWRlcz1bXTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrPTEpe2NvbnN0IGw9YVtlXTtsZXQgbz1sLnN3aXBlclNsaWRlT2Zmc2V0O3MuY3NzTW9kZSYmcy5jZW50ZXJlZFNsaWRlcyYmKG8tPWFbMF0uc3dpcGVyU2xpZGVPZmZzZXQpO2NvbnN0IGQ9KG4rKHMuY2VudGVyZWRTbGlkZXM/dC5taW5UcmFuc2xhdGUoKTowKS1vKS8obC5zd2lwZXJTbGlkZVNpemUrcy5zcGFjZUJldHdlZW4pLGM9KG4tclswXSsocy5jZW50ZXJlZFNsaWRlcz90Lm1pblRyYW5zbGF0ZSgpOjApLW8pLyhsLnN3aXBlclNsaWRlU2l6ZStzLnNwYWNlQmV0d2VlbikscD0tKG4tbyksdT1wK3Quc2xpZGVzU2l6ZXNHcmlkW2VdOyhwPj0wJiZwPHQuc2l6ZS0xfHx1PjEmJnU8PXQuc2l6ZXx8cDw9MCYmdT49dC5zaXplKSYmKHQudmlzaWJsZVNsaWRlcy5wdXNoKGwpLHQudmlzaWJsZVNsaWRlc0luZGV4ZXMucHVzaChlKSxhLmVxKGUpLmFkZENsYXNzKHMuc2xpZGVWaXNpYmxlQ2xhc3MpKSxsLnByb2dyZXNzPWk/LWQ6ZCxsLm9yaWdpbmFsUHJvZ3Jlc3M9aT8tYzpjfXQudmlzaWJsZVNsaWRlcz1kKHQudmlzaWJsZVNsaWRlcyl9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcztpZih2b2lkIDA9PT1lKXtjb25zdCBzPXQucnRsVHJhbnNsYXRlPy0xOjE7ZT10JiZ0LnRyYW5zbGF0ZSYmdC50cmFuc2xhdGUqc3x8MH1jb25zdCBzPXQucGFyYW1zLGE9dC5tYXhUcmFuc2xhdGUoKS10Lm1pblRyYW5zbGF0ZSgpO2xldHtwcm9ncmVzczppLGlzQmVnaW5uaW5nOnIsaXNFbmQ6bn09dDtjb25zdCBsPXIsbz1uOzA9PT1hPyhpPTAscj0hMCxuPSEwKTooaT0oZS10Lm1pblRyYW5zbGF0ZSgpKS9hLHI9aTw9MCxuPWk+PTEpLE9iamVjdC5hc3NpZ24odCx7cHJvZ3Jlc3M6aSxpc0JlZ2lubmluZzpyLGlzRW5kOm59KSwocy53YXRjaFNsaWRlc1Byb2dyZXNzfHxzLmNlbnRlcmVkU2xpZGVzJiZzLmF1dG9IZWlnaHQpJiZ0LnVwZGF0ZVNsaWRlc1Byb2dyZXNzKGUpLHImJiFsJiZ0LmVtaXQoInJlYWNoQmVnaW5uaW5nIHRvRWRnZSIpLG4mJiFvJiZ0LmVtaXQoInJlYWNoRW5kIHRvRWRnZSIpLChsJiYhcnx8byYmIW4pJiZ0LmVtaXQoImZyb21FZGdlIiksdC5lbWl0KCJwcm9ncmVzcyIsaSl9LHVwZGF0ZVNsaWRlc0NsYXNzZXM6ZnVuY3Rpb24oKXtjb25zdCBlPXRoaXMse3NsaWRlczp0LHBhcmFtczpzLCR3cmFwcGVyRWw6YSxhY3RpdmVJbmRleDppLHJlYWxJbmRleDpyfT1lLG49ZS52aXJ0dWFsJiZzLnZpcnR1YWwuZW5hYmxlZDtsZXQgbDt0LnJlbW92ZUNsYXNzKGAke3Muc2xpZGVBY3RpdmVDbGFzc30gJHtzLnNsaWRlTmV4dENsYXNzfSAke3Muc2xpZGVQcmV2Q2xhc3N9ICR7cy5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzfSAke3Muc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3N9ICR7cy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzc31gKSxsPW4/ZS4kd3JhcHBlckVsLmZpbmQoYC4ke3Muc2xpZGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7aX0iXWApOnQuZXEoaSksbC5hZGRDbGFzcyhzLnNsaWRlQWN0aXZlQ2xhc3MpLHMubG9vcCYmKGwuaGFzQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9hLmNoaWxkcmVuKGAuJHtzLnNsaWRlQ2xhc3N9Om5vdCguJHtzLnNsaWRlRHVwbGljYXRlQ2xhc3N9KVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtyfSJdYCkuYWRkQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKTphLmNoaWxkcmVuKGAuJHtzLnNsaWRlQ2xhc3N9LiR7cy5zbGlkZUR1cGxpY2F0ZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtyfSJdYCkuYWRkQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKSk7bGV0IG89bC5uZXh0QWxsKGAuJHtzLnNsaWRlQ2xhc3N9YCkuZXEoMCkuYWRkQ2xhc3Mocy5zbGlkZU5leHRDbGFzcyk7cy5sb29wJiYwPT09by5sZW5ndGgmJihvPXQuZXEoMCksby5hZGRDbGFzcyhzLnNsaWRlTmV4dENsYXNzKSk7bGV0IGQ9bC5wcmV2QWxsKGAuJHtzLnNsaWRlQ2xhc3N9YCkuZXEoMCkuYWRkQ2xhc3Mocy5zbGlkZVByZXZDbGFzcyk7cy5sb29wJiYwPT09ZC5sZW5ndGgmJihkPXQuZXEoLTEpLGQuYWRkQ2xhc3Mocy5zbGlkZVByZXZDbGFzcykpLHMubG9vcCYmKG8uaGFzQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9hLmNoaWxkcmVuKGAuJHtzLnNsaWRlQ2xhc3N9Om5vdCguJHtzLnNsaWRlRHVwbGljYXRlQ2xhc3N9KVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtvLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9Il1gKS5hZGRDbGFzcyhzLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKTphLmNoaWxkcmVuKGAuJHtzLnNsaWRlQ2xhc3N9LiR7cy5zbGlkZUR1cGxpY2F0ZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtvLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9Il1gKS5hZGRDbGFzcyhzLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKSxkLmhhc0NsYXNzKHMuc2xpZGVEdXBsaWNhdGVDbGFzcyk/YS5jaGlsZHJlbihgLiR7cy5zbGlkZUNsYXNzfTpub3QoLiR7cy5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7ZC5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpfSJdYCkuYWRkQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcyk6YS5jaGlsZHJlbihgLiR7cy5zbGlkZUNsYXNzfS4ke3Muc2xpZGVEdXBsaWNhdGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7ZC5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpfSJdYCkuYWRkQ2xhc3Mocy5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcykpLGUuZW1pdFNsaWRlc0NsYXNzZXMoKX0sdXBkYXRlQWN0aXZlSW5kZXg6ZnVuY3Rpb24oZSl7Y29uc3QgdD10aGlzLHM9dC5ydGxUcmFuc2xhdGU/dC50cmFuc2xhdGU6LXQudHJhbnNsYXRlLHtzbGlkZXNHcmlkOmEsc25hcEdyaWQ6aSxwYXJhbXM6cixhY3RpdmVJbmRleDpuLHJlYWxJbmRleDpsLHNuYXBJbmRleDpvfT10O2xldCBkLGM9ZTtpZih2b2lkIDA9PT1jKXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrPTEpdm9pZCAwIT09YVtlKzFdP3M+PWFbZV0mJnM8YVtlKzFdLShhW2UrMV0tYVtlXSkvMj9jPWU6cz49YVtlXSYmczxhW2UrMV0mJihjPWUrMSk6cz49YVtlXSYmKGM9ZSk7ci5ub3JtYWxpemVTbGlkZUluZGV4JiYoYzwwfHx2b2lkIDA9PT1jKSYmKGM9MCl9aWYoaS5pbmRleE9mKHMpPj0wKWQ9aS5pbmRleE9mKHMpO2Vsc2V7Y29uc3QgZT1NYXRoLm1pbihyLnNsaWRlc1Blckdyb3VwU2tpcCxjKTtkPWUrTWF0aC5mbG9vcigoYy1lKS9yLnNsaWRlc1Blckdyb3VwKX1pZihkPj1pLmxlbmd0aCYmKGQ9aS5sZW5ndGgtMSksYz09PW4pcmV0dXJuIHZvaWQoZCE9PW8mJih0LnNuYXBJbmRleD1kLHQuZW1pdCgic25hcEluZGV4Q2hhbmdlIikpKTtjb25zdCBwPXBhcnNlSW50KHQuc2xpZGVzLmVxKGMpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil8fGMsMTApO09iamVjdC5hc3NpZ24odCx7c25hcEluZGV4OmQscmVhbEluZGV4OnAscHJldmlvdXNJbmRleDpuLGFjdGl2ZUluZGV4OmN9KSx0LmVtaXQoImFjdGl2ZUluZGV4Q2hhbmdlIiksdC5lbWl0KCJzbmFwSW5kZXhDaGFuZ2UiKSxsIT09cCYmdC5lbWl0KCJyZWFsSW5kZXhDaGFuZ2UiKSwodC5pbml0aWFsaXplZHx8dC5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0KSYmdC5lbWl0KCJzbGlkZUNoYW5nZSIpfSx1cGRhdGVDbGlja2VkU2xpZGU6ZnVuY3Rpb24oZSl7Y29uc3QgdD10aGlzLHM9dC5wYXJhbXMsYT1kKGUpLmNsb3Nlc3QoYC4ke3Muc2xpZGVDbGFzc31gKVswXTtsZXQgaSxyPSExO2lmKGEpZm9yKGxldCBlPTA7ZTx0LnNsaWRlcy5sZW5ndGg7ZSs9MSlpZih0LnNsaWRlc1tlXT09PWEpe3I9ITAsaT1lO2JyZWFrfWlmKCFhfHwhcilyZXR1cm4gdC5jbGlja2VkU2xpZGU9dm9pZCAwLHZvaWQodC5jbGlja2VkSW5kZXg9dm9pZCAwKTt0LmNsaWNrZWRTbGlkZT1hLHQudmlydHVhbCYmdC5wYXJhbXMudmlydHVhbC5lbmFibGVkP3QuY2xpY2tlZEluZGV4PXBhcnNlSW50KGQoYSkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwxMCk6dC5jbGlja2VkSW5kZXg9aSxzLnNsaWRlVG9DbGlja2VkU2xpZGUmJnZvaWQgMCE9PXQuY2xpY2tlZEluZGV4JiZ0LmNsaWNrZWRJbmRleCE9PXQuYWN0aXZlSW5kZXgmJnQuc2xpZGVUb0NsaWNrZWRTbGlkZSgpfX0sdHJhbnNsYXRlOntnZXRUcmFuc2xhdGU6ZnVuY3Rpb24oZT0odGhpcy5pc0hvcml6b250YWwoKT8ieCI6InkiKSl7Y29uc3R7cGFyYW1zOnQscnRsVHJhbnNsYXRlOnMsdHJhbnNsYXRlOmEsJHdyYXBwZXJFbDppfT10aGlzO2lmKHQudmlydHVhbFRyYW5zbGF0ZSlyZXR1cm4gcz8tYTphO2lmKHQuY3NzTW9kZSlyZXR1cm4gYTtsZXQgcj1oKGlbMF0sZSk7cmV0dXJuIHMmJihyPS1yKSxyfHwwfSxzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oZSx0KXtjb25zdCBzPXRoaXMse3J0bFRyYW5zbGF0ZTphLHBhcmFtczppLCR3cmFwcGVyRWw6cix3cmFwcGVyRWw6bixwcm9ncmVzczpsfT1zO2xldCBvLGQ9MCxjPTA7cy5pc0hvcml6b250YWwoKT9kPWE/LWU6ZTpjPWUsaS5yb3VuZExlbmd0aHMmJihkPU1hdGguZmxvb3IoZCksYz1NYXRoLmZsb29yKGMpKSxpLmNzc01vZGU/bltzLmlzSG9yaXpvbnRhbCgpPyJzY3JvbGxMZWZ0Ijoic2Nyb2xsVG9wIl09cy5pc0hvcml6b250YWwoKT8tZDotYzppLnZpcnR1YWxUcmFuc2xhdGV8fHIudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgke2R9cHgsICR7Y31weCwgMHB4KWApLHMucHJldmlvdXNUcmFuc2xhdGU9cy50cmFuc2xhdGUscy50cmFuc2xhdGU9cy5pc0hvcml6b250YWwoKT9kOmM7Y29uc3QgcD1zLm1heFRyYW5zbGF0ZSgpLXMubWluVHJhbnNsYXRlKCk7bz0wPT09cD8wOihlLXMubWluVHJhbnNsYXRlKCkpL3AsbyE9PWwmJnMudXBkYXRlUHJvZ3Jlc3MoZSkscy5lbWl0KCJzZXRUcmFuc2xhdGUiLHMudHJhbnNsYXRlLHQpfSxtaW5UcmFuc2xhdGU6ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5zbmFwR3JpZFswXX0sbWF4VHJhbnNsYXRlOmZ1bmN0aW9uKCl7cmV0dXJuLXRoaXMuc25hcEdyaWRbdGhpcy5zbmFwR3JpZC5sZW5ndGgtMV19LHRyYW5zbGF0ZVRvOmZ1bmN0aW9uKGU9MCx0PXRoaXMucGFyYW1zLnNwZWVkLHM9ITAsYT0hMCxpKXtjb25zdCByPXRoaXMse3BhcmFtczpuLHdyYXBwZXJFbDpsfT1yO2lmKHIuYW5pbWF0aW5nJiZuLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbilyZXR1cm4hMTtjb25zdCBvPXIubWluVHJhbnNsYXRlKCksZD1yLm1heFRyYW5zbGF0ZSgpO2xldCBjO2lmKGM9YSYmZT5vP286YSYmZTxkP2Q6ZSxyLnVwZGF0ZVByb2dyZXNzKGMpLG4uY3NzTW9kZSl7Y29uc3QgZT1yLmlzSG9yaXpvbnRhbCgpO2lmKDA9PT10KWxbZT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCJdPS1jO2Vsc2V7aWYoIXIuc3VwcG9ydC5zbW9vdGhTY3JvbGwpcmV0dXJuIHYoe3N3aXBlcjpyLHRhcmdldFBvc2l0aW9uOi1jLHNpZGU6ZT8ibGVmdCI6InRvcCJ9KSwhMDtsLnNjcm9sbFRvKHtbZT8ibGVmdCI6InRvcCJdOi1jLGJlaGF2aW9yOiJzbW9vdGgifSl9cmV0dXJuITB9cmV0dXJuIDA9PT10PyhyLnNldFRyYW5zaXRpb24oMCksci5zZXRUcmFuc2xhdGUoYykscyYmKHIuZW1pdCgiYmVmb3JlVHJhbnNpdGlvblN0YXJ0Iix0LGkpLHIuZW1pdCgidHJhbnNpdGlvbkVuZCIpKSk6KHIuc2V0VHJhbnNpdGlvbih0KSxyLnNldFRyYW5zbGF0ZShjKSxzJiYoci5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLHQsaSksci5lbWl0KCJ0cmFuc2l0aW9uU3RhcnQiKSksci5hbmltYXRpbmd8fChyLmFuaW1hdGluZz0hMCxyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZHx8KHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGUpe3ImJiFyLmRlc3Ryb3llZCYmZS50YXJnZXQ9PT10aGlzJiYoci4kd3JhcHBlckVsWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxyLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpLHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kPW51bGwsZGVsZXRlIHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kLHMmJnIuZW1pdCgidHJhbnNpdGlvbkVuZCIpKX0pLHIuJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksci4kd3JhcHBlckVsWzBdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSkpLCEwfX0sdHJhbnNpdGlvbjp7c2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe2NvbnN0IHM9dGhpcztzLnBhcmFtcy5jc3NNb2RlfHxzLiR3cmFwcGVyRWwudHJhbnNpdGlvbihlKSxzLmVtaXQoInNldFRyYW5zaXRpb24iLGUsdCl9LHRyYW5zaXRpb25TdGFydDpmdW5jdGlvbihlPSEwLHQpe2NvbnN0IHM9dGhpcyx7cGFyYW1zOmF9PXM7YS5jc3NNb2RlfHwoYS5hdXRvSGVpZ2h0JiZzLnVwZGF0ZUF1dG9IZWlnaHQoKSwkKHtzd2lwZXI6cyxydW5DYWxsYmFja3M6ZSxkaXJlY3Rpb246dCxzdGVwOiJTdGFydCJ9KSl9LHRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oZT0hMCx0KXtjb25zdCBzPXRoaXMse3BhcmFtczphfT1zO3MuYW5pbWF0aW5nPSExLGEuY3NzTW9kZXx8KHMuc2V0VHJhbnNpdGlvbigwKSwkKHtzd2lwZXI6cyxydW5DYWxsYmFja3M6ZSxkaXJlY3Rpb246dCxzdGVwOiJFbmQifSkpfX0sc2xpZGU6e3NsaWRlVG86ZnVuY3Rpb24oZT0wLHQ9dGhpcy5wYXJhbXMuc3BlZWQscz0hMCxhLGkpe2lmKCJudW1iZXIiIT10eXBlb2YgZSYmInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcihgVGhlICdpbmRleCcgYXJndW1lbnQgY2Fubm90IGhhdmUgdHlwZSBvdGhlciB0aGFuICdudW1iZXInIG9yICdzdHJpbmcnLiBbJHt0eXBlb2YgZX1dIGdpdmVuLmApO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3QgdD1wYXJzZUludChlLDEwKTtpZighaXNGaW5pdGUodCkpdGhyb3cgbmV3IEVycm9yKGBUaGUgcGFzc2VkLWluICdpbmRleCcgKHN0cmluZykgY291bGRuJ3QgYmUgY29udmVydGVkIHRvICdudW1iZXInLiBbJHtlfV0gZ2l2ZW4uYCk7ZT10fWNvbnN0IHI9dGhpcztsZXQgbj1lO248MCYmKG49MCk7Y29uc3R7cGFyYW1zOmwsc25hcEdyaWQ6byxzbGlkZXNHcmlkOmQscHJldmlvdXNJbmRleDpjLGFjdGl2ZUluZGV4OnAscnRsVHJhbnNsYXRlOnUsd3JhcHBlckVsOmgsZW5hYmxlZDptfT1yO2lmKHIuYW5pbWF0aW5nJiZsLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbnx8IW0mJiFhJiYhaSlyZXR1cm4hMTtjb25zdCBmPU1hdGgubWluKHIucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCxuKTtsZXQgZz1mK01hdGguZmxvb3IoKG4tZikvci5wYXJhbXMuc2xpZGVzUGVyR3JvdXApO2c+PW8ubGVuZ3RoJiYoZz1vLmxlbmd0aC0xKSwocHx8bC5pbml0aWFsU2xpZGV8fDApPT09KGN8fDApJiZzJiZyLmVtaXQoImJlZm9yZVNsaWRlQ2hhbmdlU3RhcnQiKTtjb25zdCB3PS1vW2ddO2lmKHIudXBkYXRlUHJvZ3Jlc3ModyksbC5ub3JtYWxpemVTbGlkZUluZGV4KWZvcihsZXQgZT0wO2U8ZC5sZW5ndGg7ZSs9MSl7Y29uc3QgdD0tTWF0aC5mbG9vcigxMDAqdykscz1NYXRoLmZsb29yKDEwMCpkW2VdKSxhPU1hdGguZmxvb3IoMTAwKmRbZSsxXSk7dm9pZCAwIT09ZFtlKzFdP3Q+PXMmJnQ8YS0oYS1zKS8yP249ZTp0Pj1zJiZ0PGEmJihuPWUrMSk6dD49cyYmKG49ZSl9aWYoci5pbml0aWFsaXplZCYmbiE9PXApe2lmKCFyLmFsbG93U2xpZGVOZXh0JiZ3PHIudHJhbnNsYXRlJiZ3PHIubWluVHJhbnNsYXRlKCkpcmV0dXJuITE7aWYoIXIuYWxsb3dTbGlkZVByZXYmJnc+ci50cmFuc2xhdGUmJnc+ci5tYXhUcmFuc2xhdGUoKSYmKHB8fDApIT09bilyZXR1cm4hMX1sZXQgYjtpZihiPW4+cD8ibmV4dCI6bjxwPyJwcmV2IjoicmVzZXQiLHUmJi13PT09ci50cmFuc2xhdGV8fCF1JiZ3PT09ci50cmFuc2xhdGUpcmV0dXJuIHIudXBkYXRlQWN0aXZlSW5kZXgobiksbC5hdXRvSGVpZ2h0JiZyLnVwZGF0ZUF1dG9IZWlnaHQoKSxyLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSwic2xpZGUiIT09bC5lZmZlY3QmJnIuc2V0VHJhbnNsYXRlKHcpLCJyZXNldCIhPT1iJiYoci50cmFuc2l0aW9uU3RhcnQocyxiKSxyLnRyYW5zaXRpb25FbmQocyxiKSksITE7aWYobC5jc3NNb2RlKXtjb25zdCBlPXIuaXNIb3Jpem9udGFsKCkscz11P3c6LXc7aWYoMD09PXQpe2NvbnN0IHQ9ci52aXJ0dWFsJiZyLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7dCYmKHIud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixyLl9pbW1lZGlhdGVWaXJ0dWFsPSEwKSxoW2U/InNjcm9sbExlZnQiOiJzY3JvbGxUb3AiXT1zLHQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntyLndyYXBwZXJFbC5zdHlsZS5zY3JvbGxTbmFwVHlwZT0iIixyLl9zd2lwZXJJbW1lZGlhdGVWaXJ0dWFsPSExfSkpfWVsc2V7aWYoIXIuc3VwcG9ydC5zbW9vdGhTY3JvbGwpcmV0dXJuIHYoe3N3aXBlcjpyLHRhcmdldFBvc2l0aW9uOnMsc2lkZTplPyJsZWZ0IjoidG9wIn0pLCEwO2guc2Nyb2xsVG8oe1tlPyJsZWZ0IjoidG9wIl06cyxiZWhhdmlvcjoic21vb3RoIn0pfXJldHVybiEwfXJldHVybiAwPT09dD8oci5zZXRUcmFuc2l0aW9uKDApLHIuc2V0VHJhbnNsYXRlKHcpLHIudXBkYXRlQWN0aXZlSW5kZXgobiksci51cGRhdGVTbGlkZXNDbGFzc2VzKCksci5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLHQsYSksci50cmFuc2l0aW9uU3RhcnQocyxiKSxyLnRyYW5zaXRpb25FbmQocyxiKSk6KHIuc2V0VHJhbnNpdGlvbih0KSxyLnNldFRyYW5zbGF0ZSh3KSxyLnVwZGF0ZUFjdGl2ZUluZGV4KG4pLHIudXBkYXRlU2xpZGVzQ2xhc3NlcygpLHIuZW1pdCgiYmVmb3JlVHJhbnNpdGlvblN0YXJ0Iix0LGEpLHIudHJhbnNpdGlvblN0YXJ0KHMsYiksci5hbmltYXRpbmd8fChyLmFuaW1hdGluZz0hMCxyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kfHwoci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZD1mdW5jdGlvbihlKXtyJiYhci5kZXN0cm95ZWQmJmUudGFyZ2V0PT09dGhpcyYmKHIuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxyLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZD1udWxsLGRlbGV0ZSByLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kLHIudHJhbnNpdGlvbkVuZChzLGIpKX0pLHIuJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixyLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxyLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsci5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCkpKSwhMH0sc2xpZGVUb0xvb3A6ZnVuY3Rpb24oZT0wLHQ9dGhpcy5wYXJhbXMuc3BlZWQscz0hMCxhKXtjb25zdCBpPXRoaXM7bGV0IHI9ZTtyZXR1cm4gaS5wYXJhbXMubG9vcCYmKHIrPWkubG9vcGVkU2xpZGVzKSxpLnNsaWRlVG8ocix0LHMsYSl9LHNsaWRlTmV4dDpmdW5jdGlvbihlPXRoaXMucGFyYW1zLnNwZWVkLHQ9ITAscyl7Y29uc3QgYT10aGlzLHthbmltYXRpbmc6aSxlbmFibGVkOnIscGFyYW1zOm59PWE7aWYoIXIpcmV0dXJuIGE7bGV0IGw9bi5zbGlkZXNQZXJHcm91cDsiYXV0byI9PT1uLnNsaWRlc1BlclZpZXcmJjE9PT1uLnNsaWRlc1Blckdyb3VwJiZuLnNsaWRlc1Blckdyb3VwQXV0byYmKGw9TWF0aC5tYXgoYS5zbGlkZXNQZXJWaWV3RHluYW1pYygiY3VycmVudCIsITApLDEpKTtjb25zdCBvPWEuYWN0aXZlSW5kZXg8bi5zbGlkZXNQZXJHcm91cFNraXA/MTpsO2lmKG4ubG9vcCl7aWYoaSYmbi5sb29wUHJldmVudHNTbGlkZSlyZXR1cm4hMTthLmxvb3BGaXgoKSxhLl9jbGllbnRMZWZ0PWEuJHdyYXBwZXJFbFswXS5jbGllbnRMZWZ0fXJldHVybiBhLnNsaWRlVG8oYS5hY3RpdmVJbmRleCtvLGUsdCxzKX0sc2xpZGVQcmV2OmZ1bmN0aW9uKGU9dGhpcy5wYXJhbXMuc3BlZWQsdD0hMCxzKXtjb25zdCBhPXRoaXMse3BhcmFtczppLGFuaW1hdGluZzpyLHNuYXBHcmlkOm4sc2xpZGVzR3JpZDpsLHJ0bFRyYW5zbGF0ZTpvLGVuYWJsZWQ6ZH09YTtpZighZClyZXR1cm4gYTtpZihpLmxvb3Ape2lmKHImJmkubG9vcFByZXZlbnRzU2xpZGUpcmV0dXJuITE7YS5sb29wRml4KCksYS5fY2xpZW50TGVmdD1hLiR3cmFwcGVyRWxbMF0uY2xpZW50TGVmdH1mdW5jdGlvbiBjKGUpe3JldHVybiBlPDA/LU1hdGguZmxvb3IoTWF0aC5hYnMoZSkpOk1hdGguZmxvb3IoZSl9Y29uc3QgcD1jKG8/YS50cmFuc2xhdGU6LWEudHJhbnNsYXRlKSx1PW4ubWFwKChlPT5jKGUpKSk7bGV0IGg9blt1LmluZGV4T2YocCktMV07aWYodm9pZCAwPT09aCYmaS5jc3NNb2RlKXtsZXQgZTtuLmZvckVhY2goKCh0LHMpPT57cD49dCYmKGU9cyl9KSksdm9pZCAwIT09ZSYmKGg9bltlPjA/ZS0xOmVdKX1sZXQgbT0wO3JldHVybiB2b2lkIDAhPT1oJiYobT1sLmluZGV4T2YoaCksbTwwJiYobT1hLmFjdGl2ZUluZGV4LTEpLCJhdXRvIj09PWkuc2xpZGVzUGVyVmlldyYmMT09PWkuc2xpZGVzUGVyR3JvdXAmJmkuc2xpZGVzUGVyR3JvdXBBdXRvJiYobT1tLWEuc2xpZGVzUGVyVmlld0R5bmFtaWMoInByZXZpb3VzIiwhMCkrMSxtPU1hdGgubWF4KG0sMCkpKSxhLnNsaWRlVG8obSxlLHQscyl9LHNsaWRlUmVzZXQ6ZnVuY3Rpb24oZT10aGlzLnBhcmFtcy5zcGVlZCx0PSEwLHMpe3JldHVybiB0aGlzLnNsaWRlVG8odGhpcy5hY3RpdmVJbmRleCxlLHQscyl9LHNsaWRlVG9DbG9zZXN0OmZ1bmN0aW9uKGU9dGhpcy5wYXJhbXMuc3BlZWQsdD0hMCxzLGE9LjUpe2NvbnN0IGk9dGhpcztsZXQgcj1pLmFjdGl2ZUluZGV4O2NvbnN0IG49TWF0aC5taW4oaS5wYXJhbXMuc2xpZGVzUGVyR3JvdXBTa2lwLHIpLGw9bitNYXRoLmZsb29yKChyLW4pL2kucGFyYW1zLnNsaWRlc1Blckdyb3VwKSxvPWkucnRsVHJhbnNsYXRlP2kudHJhbnNsYXRlOi1pLnRyYW5zbGF0ZTtpZihvPj1pLnNuYXBHcmlkW2xdKXtjb25zdCBlPWkuc25hcEdyaWRbbF07by1lPihpLnNuYXBHcmlkW2wrMV0tZSkqYSYmKHIrPWkucGFyYW1zLnNsaWRlc1Blckdyb3VwKX1lbHNle2NvbnN0IGU9aS5zbmFwR3JpZFtsLTFdO28tZTw9KGkuc25hcEdyaWRbbF0tZSkqYSYmKHItPWkucGFyYW1zLnNsaWRlc1Blckdyb3VwKX1yZXR1cm4gcj1NYXRoLm1heChyLDApLHI9TWF0aC5taW4ocixpLnNsaWRlc0dyaWQubGVuZ3RoLTEpLGkuc2xpZGVUbyhyLGUsdCxzKX0sc2xpZGVUb0NsaWNrZWRTbGlkZTpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcyx7cGFyYW1zOnQsJHdyYXBwZXJFbDpzfT1lLGE9ImF1dG8iPT09dC5zbGlkZXNQZXJWaWV3P2Uuc2xpZGVzUGVyVmlld0R5bmFtaWMoKTp0LnNsaWRlc1BlclZpZXc7bGV0IGkscj1lLmNsaWNrZWRJbmRleDtpZih0Lmxvb3Ape2lmKGUuYW5pbWF0aW5nKXJldHVybjtpPXBhcnNlSW50KGQoZS5jbGlja2VkU2xpZGUpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApLHQuY2VudGVyZWRTbGlkZXM/cjxlLmxvb3BlZFNsaWRlcy1hLzJ8fHI+ZS5zbGlkZXMubGVuZ3RoLWUubG9vcGVkU2xpZGVzK2EvMj8oZS5sb29wRml4KCkscj1zLmNoaWxkcmVuKGAuJHt0LnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2l9Il06bm90KC4ke3Quc2xpZGVEdXBsaWNhdGVDbGFzc30pYCkuZXEoMCkuaW5kZXgoKSxwKCgoKT0+e2Uuc2xpZGVUbyhyKX0pKSk6ZS5zbGlkZVRvKHIpOnI+ZS5zbGlkZXMubGVuZ3RoLWE/KGUubG9vcEZpeCgpLHI9cy5jaGlsZHJlbihgLiR7dC5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtpfSJdOm5vdCguJHt0LnNsaWRlRHVwbGljYXRlQ2xhc3N9KWApLmVxKDApLmluZGV4KCkscCgoKCk9PntlLnNsaWRlVG8ocil9KSkpOmUuc2xpZGVUbyhyKX1lbHNlIGUuc2xpZGVUbyhyKX19LGxvb3A6e2xvb3BDcmVhdGU6ZnVuY3Rpb24oKXtjb25zdCBlPXRoaXMsdD1hKCkse3BhcmFtczpzLCR3cmFwcGVyRWw6aX09ZSxyPWkuY2hpbGRyZW4oKS5sZW5ndGg+MD9kKGkuY2hpbGRyZW4oKVswXS5wYXJlbnROb2RlKTppO3IuY2hpbGRyZW4oYC4ke3Muc2xpZGVDbGFzc30uJHtzLnNsaWRlRHVwbGljYXRlQ2xhc3N9YCkucmVtb3ZlKCk7bGV0IG49ci5jaGlsZHJlbihgLiR7cy5zbGlkZUNsYXNzfWApO2lmKHMubG9vcEZpbGxHcm91cFdpdGhCbGFuayl7Y29uc3QgZT1zLnNsaWRlc1Blckdyb3VwLW4ubGVuZ3RoJXMuc2xpZGVzUGVyR3JvdXA7aWYoZSE9PXMuc2xpZGVzUGVyR3JvdXApe2ZvcihsZXQgYT0wO2E8ZTthKz0xKXtjb25zdCBlPWQodC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuYWRkQ2xhc3MoYCR7cy5zbGlkZUNsYXNzfSAke3Muc2xpZGVCbGFua0NsYXNzfWApO3IuYXBwZW5kKGUpfW49ci5jaGlsZHJlbihgLiR7cy5zbGlkZUNsYXNzfWApfX0iYXV0byIhPT1zLnNsaWRlc1BlclZpZXd8fHMubG9vcGVkU2xpZGVzfHwocy5sb29wZWRTbGlkZXM9bi5sZW5ndGgpLGUubG9vcGVkU2xpZGVzPU1hdGguY2VpbChwYXJzZUZsb2F0KHMubG9vcGVkU2xpZGVzfHxzLnNsaWRlc1BlclZpZXcsMTApKSxlLmxvb3BlZFNsaWRlcys9cy5sb29wQWRkaXRpb25hbFNsaWRlcyxlLmxvb3BlZFNsaWRlcz5uLmxlbmd0aCYmKGUubG9vcGVkU2xpZGVzPW4ubGVuZ3RoKTtjb25zdCBsPVtdLG89W107bi5lYWNoKCgodCxzKT0+e2NvbnN0IGE9ZCh0KTtzPGUubG9vcGVkU2xpZGVzJiZvLnB1c2godCksczxuLmxlbmd0aCYmcz49bi5sZW5ndGgtZS5sb29wZWRTbGlkZXMmJmwucHVzaCh0KSxhLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IixzKX0pKTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrPTEpci5hcHBlbmQoZChvW2VdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKHMuc2xpZGVEdXBsaWNhdGVDbGFzcykpO2ZvcihsZXQgZT1sLmxlbmd0aC0xO2U+PTA7ZS09MSlyLnByZXBlbmQoZChsW2VdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKHMuc2xpZGVEdXBsaWNhdGVDbGFzcykpfSxsb29wRml4OmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzO2UuZW1pdCgiYmVmb3JlTG9vcEZpeCIpO2NvbnN0e2FjdGl2ZUluZGV4OnQsc2xpZGVzOnMsbG9vcGVkU2xpZGVzOmEsYWxsb3dTbGlkZVByZXY6aSxhbGxvd1NsaWRlTmV4dDpyLHNuYXBHcmlkOm4scnRsVHJhbnNsYXRlOmx9PWU7bGV0IG87ZS5hbGxvd1NsaWRlUHJldj0hMCxlLmFsbG93U2xpZGVOZXh0PSEwO2NvbnN0IGQ9LW5bdF0tZS5nZXRUcmFuc2xhdGUoKTtpZih0PGEpe289cy5sZW5ndGgtMyphK3Qsbys9YTtlLnNsaWRlVG8obywwLCExLCEwKSYmMCE9PWQmJmUuc2V0VHJhbnNsYXRlKChsPy1lLnRyYW5zbGF0ZTplLnRyYW5zbGF0ZSktZCl9ZWxzZSBpZih0Pj1zLmxlbmd0aC1hKXtvPS1zLmxlbmd0aCt0K2Esbys9YTtlLnNsaWRlVG8obywwLCExLCEwKSYmMCE9PWQmJmUuc2V0VHJhbnNsYXRlKChsPy1lLnRyYW5zbGF0ZTplLnRyYW5zbGF0ZSktZCl9ZS5hbGxvd1NsaWRlUHJldj1pLGUuYWxsb3dTbGlkZU5leHQ9cixlLmVtaXQoImxvb3BGaXgiKX0sbG9vcERlc3Ryb3k6ZnVuY3Rpb24oKXtjb25zdHskd3JhcHBlckVsOmUscGFyYW1zOnQsc2xpZGVzOnN9PXRoaXM7ZS5jaGlsZHJlbihgLiR7dC5zbGlkZUNsYXNzfS4ke3Quc2xpZGVEdXBsaWNhdGVDbGFzc30sLiR7dC5zbGlkZUNsYXNzfS4ke3Quc2xpZGVCbGFua0NsYXNzfWApLnJlbW92ZSgpLHMucmVtb3ZlQXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKX19LGdyYWJDdXJzb3I6e3NldEdyYWJDdXJzb3I6ZnVuY3Rpb24oZSl7Y29uc3QgdD10aGlzO2lmKHQuc3VwcG9ydC50b3VjaHx8IXQucGFyYW1zLnNpbXVsYXRlVG91Y2h8fHQucGFyYW1zLndhdGNoT3ZlcmZsb3cmJnQuaXNMb2NrZWR8fHQucGFyYW1zLmNzc01vZGUpcmV0dXJuO2NvbnN0IHM9ImNvbnRhaW5lciI9PT10LnBhcmFtcy50b3VjaEV2ZW50c1RhcmdldD90LmVsOnQud3JhcHBlckVsO3Muc3R5bGUuY3Vyc29yPSJtb3ZlIixzLnN0eWxlLmN1cnNvcj1lPyItd2Via2l0LWdyYWJiaW5nIjoiLXdlYmtpdC1ncmFiIixzLnN0eWxlLmN1cnNvcj1lPyItbW96LWdyYWJiaW4iOiItbW96LWdyYWIiLHMuc3R5bGUuY3Vyc29yPWU/ImdyYWJiaW5nIjoiZ3JhYiJ9LHVuc2V0R3JhYkN1cnNvcjpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcztlLnN1cHBvcnQudG91Y2h8fGUucGFyYW1zLndhdGNoT3ZlcmZsb3cmJmUuaXNMb2NrZWR8fGUucGFyYW1zLmNzc01vZGV8fChlWyJjb250YWluZXIiPT09ZS5wYXJhbXMudG91Y2hFdmVudHNUYXJnZXQ/ImVsIjoid3JhcHBlckVsIl0uc3R5bGUuY3Vyc29yPSIiKX19LGV2ZW50czp7YXR0YWNoRXZlbnRzOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLHQ9YSgpLHtwYXJhbXM6cyxzdXBwb3J0Oml9PWU7ZS5vblRvdWNoU3RhcnQ9Uy5iaW5kKGUpLGUub25Ub3VjaE1vdmU9TS5iaW5kKGUpLGUub25Ub3VjaEVuZD1QLmJpbmQoZSkscy5jc3NNb2RlJiYoZS5vblNjcm9sbD1PLmJpbmQoZSkpLGUub25DbGljaz16LmJpbmQoZSksaS50b3VjaCYmIUkmJih0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLEwpLEk9ITApLEEoZSwib24iKX0sZGV0YWNoRXZlbnRzOmZ1bmN0aW9uKCl7QSh0aGlzLCJvZmYiKX19LGJyZWFrcG9pbnRzOntzZXRCcmVha3BvaW50OmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLHthY3RpdmVJbmRleDp0LGluaXRpYWxpemVkOnMsbG9vcGVkU2xpZGVzOmE9MCxwYXJhbXM6aSwkZWw6cn09ZSxuPWkuYnJlYWtwb2ludHM7aWYoIW58fG4mJjA9PT1PYmplY3Qua2V5cyhuKS5sZW5ndGgpcmV0dXJuO2NvbnN0IGw9ZS5nZXRCcmVha3BvaW50KG4sZS5wYXJhbXMuYnJlYWtwb2ludHNCYXNlLGUuZWwpO2lmKCFsfHxlLmN1cnJlbnRCcmVha3BvaW50PT09bClyZXR1cm47Y29uc3Qgbz0obCBpbiBuP25bbF06dm9pZCAwKXx8ZS5vcmlnaW5hbFBhcmFtcyxkPUQoZSxpKSxjPUQoZSxvKSxwPWkuZW5hYmxlZDtkJiYhYz8oci5yZW1vdmVDbGFzcyhgJHtpLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9Z3JpZCAke2kuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkLWNvbHVtbmApLGUuZW1pdENvbnRhaW5lckNsYXNzZXMoKSk6IWQmJmMmJihyLmFkZENsYXNzKGAke2kuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkYCksKG8uZ3JpZC5maWxsJiYiY29sdW1uIj09PW8uZ3JpZC5maWxsfHwhby5ncmlkLmZpbGwmJiJjb2x1bW4iPT09aS5ncmlkLmZpbGwpJiZyLmFkZENsYXNzKGAke2kuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkLWNvbHVtbmApLGUuZW1pdENvbnRhaW5lckNsYXNzZXMoKSk7Y29uc3QgdT1vLmRpcmVjdGlvbiYmby5kaXJlY3Rpb24hPT1pLmRpcmVjdGlvbixoPWkubG9vcCYmKG8uc2xpZGVzUGVyVmlldyE9PWkuc2xpZGVzUGVyVmlld3x8dSk7dSYmcyYmZS5jaGFuZ2VEaXJlY3Rpb24oKSxmKGUucGFyYW1zLG8pO2NvbnN0IG09ZS5wYXJhbXMuZW5hYmxlZDtPYmplY3QuYXNzaWduKGUse2FsbG93VG91Y2hNb3ZlOmUucGFyYW1zLmFsbG93VG91Y2hNb3ZlLGFsbG93U2xpZGVOZXh0OmUucGFyYW1zLmFsbG93U2xpZGVOZXh0LGFsbG93U2xpZGVQcmV2OmUucGFyYW1zLmFsbG93U2xpZGVQcmV2fSkscCYmIW0/ZS5kaXNhYmxlKCk6IXAmJm0mJmUuZW5hYmxlKCksZS5jdXJyZW50QnJlYWtwb2ludD1sLGUuZW1pdCgiX2JlZm9yZUJyZWFrcG9pbnQiLG8pLGgmJnMmJihlLmxvb3BEZXN0cm95KCksZS5sb29wQ3JlYXRlKCksZS51cGRhdGVTbGlkZXMoKSxlLnNsaWRlVG8odC1hK2UubG9vcGVkU2xpZGVzLDAsITEpKSxlLmVtaXQoImJyZWFrcG9pbnQiLG8pfSxnZXRCcmVha3BvaW50OmZ1bmN0aW9uKGUsdD0id2luZG93IixzKXtpZighZXx8ImNvbnRhaW5lciI9PT10JiYhcylyZXR1cm47bGV0IGE9ITE7Y29uc3QgaT1yKCksbj0id2luZG93Ij09PXQ/aS5pbm5lckhlaWdodDpzLmNsaWVudEhlaWdodCxsPU9iamVjdC5rZXlzKGUpLm1hcCgoZT0+e2lmKCJzdHJpbmciPT10eXBlb2YgZSYmMD09PWUuaW5kZXhPZigiQCIpKXtjb25zdCB0PXBhcnNlRmxvYXQoZS5zdWJzdHIoMSkpO3JldHVybnt2YWx1ZTpuKnQscG9pbnQ6ZX19cmV0dXJue3ZhbHVlOmUscG9pbnQ6ZX19KSk7bC5zb3J0KCgoZSx0KT0+cGFyc2VJbnQoZS52YWx1ZSwxMCktcGFyc2VJbnQodC52YWx1ZSwxMCkpKTtmb3IobGV0IGU9MDtlPGwubGVuZ3RoO2UrPTEpe2NvbnN0e3BvaW50OnIsdmFsdWU6bn09bFtlXTsid2luZG93Ij09PXQ/aS5tYXRjaE1lZGlhKGAobWluLXdpZHRoOiAke259cHgpYCkubWF0Y2hlcyYmKGE9cik6bjw9cy5jbGllbnRXaWR0aCYmKGE9cil9cmV0dXJuIGF8fCJtYXgifX0sY2hlY2tPdmVyZmxvdzp7Y2hlY2tPdmVyZmxvdzpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcyx7aXNMb2NrZWQ6dCxwYXJhbXM6c309ZSx7c2xpZGVzT2Zmc2V0QmVmb3JlOmF9PXM7aWYoYSl7Y29uc3QgdD1lLnNsaWRlcy5sZW5ndGgtMSxzPWUuc2xpZGVzR3JpZFt0XStlLnNsaWRlc1NpemVzR3JpZFt0XSsyKmE7ZS5pc0xvY2tlZD1lLnNpemU+c31lbHNlIGUuaXNMb2NrZWQ9MT09PWUuc25hcEdyaWQubGVuZ3RoOyEwPT09cy5hbGxvd1NsaWRlTmV4dCYmKGUuYWxsb3dTbGlkZU5leHQ9IWUuaXNMb2NrZWQpLCEwPT09cy5hbGxvd1NsaWRlUHJldiYmKGUuYWxsb3dTbGlkZVByZXY9IWUuaXNMb2NrZWQpLHQmJnQhPT1lLmlzTG9ja2VkJiYoZS5pc0VuZD0hMSksdCE9PWUuaXNMb2NrZWQmJmUuZW1pdChlLmlzTG9ja2VkPyJsb2NrIjoidW5sb2NrIil9fSxjbGFzc2VzOnthZGRDbGFzc2VzOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLHtjbGFzc05hbWVzOnQscGFyYW1zOnMscnRsOmEsJGVsOmksZGV2aWNlOnIsc3VwcG9ydDpufT1lLGw9ZnVuY3Rpb24oZSx0KXtjb25zdCBzPVtdO3JldHVybiBlLmZvckVhY2goKGU9Pnsib2JqZWN0Ij09dHlwZW9mIGU/T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoYT0+e2VbYV0mJnMucHVzaCh0K2EpfSkpOiJzdHJpbmciPT10eXBlb2YgZSYmcy5wdXNoKHQrZSl9KSksc30oWyJpbml0aWFsaXplZCIscy5kaXJlY3Rpb24seyJwb2ludGVyLWV2ZW50cyI6IW4udG91Y2h9LHsiZnJlZS1tb2RlIjplLnBhcmFtcy5mcmVlTW9kZSYmcy5mcmVlTW9kZS5lbmFibGVkfSx7YXV0b2hlaWdodDpzLmF1dG9IZWlnaHR9LHtydGw6YX0se2dyaWQ6cy5ncmlkJiZzLmdyaWQucm93cz4xfSx7ImdyaWQtY29sdW1uIjpzLmdyaWQmJnMuZ3JpZC5yb3dzPjEmJiJjb2x1bW4iPT09cy5ncmlkLmZpbGx9LHthbmRyb2lkOnIuYW5kcm9pZH0se2lvczpyLmlvc30seyJjc3MtbW9kZSI6cy5jc3NNb2RlfSx7Y2VudGVyZWQ6cy5jc3NNb2RlJiZzLmNlbnRlcmVkU2xpZGVzfV0scy5jb250YWluZXJNb2RpZmllckNsYXNzKTt0LnB1c2goLi4ubCksaS5hZGRDbGFzcyhbLi4udF0uam9pbigiICIpKSxlLmVtaXRDb250YWluZXJDbGFzc2VzKCl9LHJlbW92ZUNsYXNzZXM6ZnVuY3Rpb24oKXtjb25zdHskZWw6ZSxjbGFzc05hbWVzOnR9PXRoaXM7ZS5yZW1vdmVDbGFzcyh0LmpvaW4oIiAiKSksdGhpcy5lbWl0Q29udGFpbmVyQ2xhc3NlcygpfX0saW1hZ2VzOntsb2FkSW1hZ2U6ZnVuY3Rpb24oZSx0LHMsYSxpLG4pe2NvbnN0IGw9cigpO2xldCBvO2Z1bmN0aW9uIGMoKXtuJiZuKCl9ZChlKS5wYXJlbnQoInBpY3R1cmUiKVswXXx8ZS5jb21wbGV0ZSYmaT9jKCk6dD8obz1uZXcgbC5JbWFnZSxvLm9ubG9hZD1jLG8ub25lcnJvcj1jLGEmJihvLnNpemVzPWEpLHMmJihvLnNyY3NldD1zKSx0JiYoby5zcmM9dCkpOmMoKX0scHJlbG9hZEltYWdlczpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcztmdW5jdGlvbiB0KCl7bnVsbCE9ZSYmZSYmIWUuZGVzdHJveWVkJiYodm9pZCAwIT09ZS5pbWFnZXNMb2FkZWQmJihlLmltYWdlc0xvYWRlZCs9MSksZS5pbWFnZXNMb2FkZWQ9PT1lLmltYWdlc1RvTG9hZC5sZW5ndGgmJihlLnBhcmFtcy51cGRhdGVPbkltYWdlc1JlYWR5JiZlLnVwZGF0ZSgpLGUuZW1pdCgiaW1hZ2VzUmVhZHkiKSkpfWUuaW1hZ2VzVG9Mb2FkPWUuJGVsLmZpbmQoImltZyIpO2ZvcihsZXQgcz0wO3M8ZS5pbWFnZXNUb0xvYWQubGVuZ3RoO3MrPTEpe2NvbnN0IGE9ZS5pbWFnZXNUb0xvYWRbc107ZS5sb2FkSW1hZ2UoYSxhLmN1cnJlbnRTcmN8fGEuZ2V0QXR0cmlidXRlKCJzcmMiKSxhLnNyY3NldHx8YS5nZXRBdHRyaWJ1dGUoInNyY3NldCIpLGEuc2l6ZXN8fGEuZ2V0QXR0cmlidXRlKCJzaXplcyIpLCEwLHQpfX19fSxYPXt9O2NsYXNzIEh7Y29uc3RydWN0b3IoLi4uZSl7bGV0IHQscztpZigxPT09ZS5sZW5ndGgmJmVbMF0uY29uc3RydWN0b3ImJiJPYmplY3QiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVbMF0pLnNsaWNlKDgsLTEpP3M9ZVswXTpbdCxzXT1lLHN8fChzPXt9KSxzPWYoe30scyksdCYmIXMuZWwmJihzLmVsPXQpLHMuZWwmJmQocy5lbCkubGVuZ3RoPjEpe2NvbnN0IGU9W107cmV0dXJuIGQocy5lbCkuZWFjaCgodD0+e2NvbnN0IGE9Zih7fSxzLHtlbDp0fSk7ZS5wdXNoKG5ldyBIKGEpKX0pKSxlfWNvbnN0IGE9dGhpczthLl9fc3dpcGVyX189ITAsYS5zdXBwb3J0PXkoKSxhLmRldmljZT1FKHt1c2VyQWdlbnQ6cy51c2VyQWdlbnR9KSxhLmJyb3dzZXI9VCgpLGEuZXZlbnRzTGlzdGVuZXJzPXt9LGEuZXZlbnRzQW55TGlzdGVuZXJzPVtdLGEubW9kdWxlcz1bLi4uYS5fX21vZHVsZXNfX10scy5tb2R1bGVzJiZBcnJheS5pc0FycmF5KHMubW9kdWxlcykmJmEubW9kdWxlcy5wdXNoKC4uLnMubW9kdWxlcyk7Y29uc3QgaT17fTthLm1vZHVsZXMuZm9yRWFjaCgoZT0+e2Uoe3N3aXBlcjphLGV4dGVuZFBhcmFtczpOKHMsaSksb246YS5vbi5iaW5kKGEpLG9uY2U6YS5vbmNlLmJpbmQoYSksb2ZmOmEub2ZmLmJpbmQoYSksZW1pdDphLmVtaXQuYmluZChhKX0pfSkpO2NvbnN0IHI9Zih7fSxHLGkpO3JldHVybiBhLnBhcmFtcz1mKHt9LHIsWCxzKSxhLm9yaWdpbmFsUGFyYW1zPWYoe30sYS5wYXJhbXMpLGEucGFzc2VkUGFyYW1zPWYoe30scyksYS5wYXJhbXMmJmEucGFyYW1zLm9uJiZPYmplY3Qua2V5cyhhLnBhcmFtcy5vbikuZm9yRWFjaCgoZT0+e2Eub24oZSxhLnBhcmFtcy5vbltlXSl9KSksYS5wYXJhbXMmJmEucGFyYW1zLm9uQW55JiZhLm9uQW55KGEucGFyYW1zLm9uQW55KSxhLiQ9ZCxPYmplY3QuYXNzaWduKGEse2VuYWJsZWQ6YS5wYXJhbXMuZW5hYmxlZCxlbDp0LGNsYXNzTmFtZXM6W10sc2xpZGVzOmQoKSxzbGlkZXNHcmlkOltdLHNuYXBHcmlkOltdLHNsaWRlc1NpemVzR3JpZDpbXSxpc0hvcml6b250YWw6KCk9PiJob3Jpem9udGFsIj09PWEucGFyYW1zLmRpcmVjdGlvbixpc1ZlcnRpY2FsOigpPT4idmVydGljYWwiPT09YS5wYXJhbXMuZGlyZWN0aW9uLGFjdGl2ZUluZGV4OjAscmVhbEluZGV4OjAsaXNCZWdpbm5pbmc6ITAsaXNFbmQ6ITEsdHJhbnNsYXRlOjAscHJldmlvdXNUcmFuc2xhdGU6MCxwcm9ncmVzczowLHZlbG9jaXR5OjAsYW5pbWF0aW5nOiExLGFsbG93U2xpZGVOZXh0OmEucGFyYW1zLmFsbG93U2xpZGVOZXh0LGFsbG93U2xpZGVQcmV2OmEucGFyYW1zLmFsbG93U2xpZGVQcmV2LHRvdWNoRXZlbnRzOmZ1bmN0aW9uKCl7Y29uc3QgZT1bInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsInRvdWNoY2FuY2VsIl0sdD1bInBvaW50ZXJkb3duIiwicG9pbnRlcm1vdmUiLCJwb2ludGVydXAiXTtyZXR1cm4gYS50b3VjaEV2ZW50c1RvdWNoPXtzdGFydDplWzBdLG1vdmU6ZVsxXSxlbmQ6ZVsyXSxjYW5jZWw6ZVszXX0sYS50b3VjaEV2ZW50c0Rlc2t0b3A9e3N0YXJ0OnRbMF0sbW92ZTp0WzFdLGVuZDp0WzJdfSxhLnN1cHBvcnQudG91Y2h8fCFhLnBhcmFtcy5zaW11bGF0ZVRvdWNoP2EudG91Y2hFdmVudHNUb3VjaDphLnRvdWNoRXZlbnRzRGVza3RvcH0oKSx0b3VjaEV2ZW50c0RhdGE6e2lzVG91Y2hlZDp2b2lkIDAsaXNNb3ZlZDp2b2lkIDAsYWxsb3dUb3VjaENhbGxiYWNrczp2b2lkIDAsdG91Y2hTdGFydFRpbWU6dm9pZCAwLGlzU2Nyb2xsaW5nOnZvaWQgMCxjdXJyZW50VHJhbnNsYXRlOnZvaWQgMCxzdGFydFRyYW5zbGF0ZTp2b2lkIDAsYWxsb3dUaHJlc2hvbGRNb3ZlOnZvaWQgMCxmb2N1c2FibGVFbGVtZW50czphLnBhcmFtcy5mb2N1c2FibGVFbGVtZW50cyxsYXN0Q2xpY2tUaW1lOnUoKSxjbGlja1RpbWVvdXQ6dm9pZCAwLHZlbG9jaXRpZXM6W10sYWxsb3dNb21lbnR1bUJvdW5jZTp2b2lkIDAsaXNUb3VjaEV2ZW50OnZvaWQgMCxzdGFydE1vdmluZzp2b2lkIDB9LGFsbG93Q2xpY2s6ITAsYWxsb3dUb3VjaE1vdmU6YS5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsdG91Y2hlczp7c3RhcnRYOjAsc3RhcnRZOjAsY3VycmVudFg6MCxjdXJyZW50WTowLGRpZmY6MH0saW1hZ2VzVG9Mb2FkOltdLGltYWdlc0xvYWRlZDowfSksYS5lbWl0KCJfc3dpcGVyIiksYS5wYXJhbXMuaW5pdCYmYS5pbml0KCksYX1lbmFibGUoKXtjb25zdCBlPXRoaXM7ZS5lbmFibGVkfHwoZS5lbmFibGVkPSEwLGUucGFyYW1zLmdyYWJDdXJzb3ImJmUuc2V0R3JhYkN1cnNvcigpLGUuZW1pdCgiZW5hYmxlIikpfWRpc2FibGUoKXtjb25zdCBlPXRoaXM7ZS5lbmFibGVkJiYoZS5lbmFibGVkPSExLGUucGFyYW1zLmdyYWJDdXJzb3ImJmUudW5zZXRHcmFiQ3Vyc29yKCksZS5lbWl0KCJkaXNhYmxlIikpfXNldFByb2dyZXNzKGUsdCl7Y29uc3Qgcz10aGlzO2U9TWF0aC5taW4oTWF0aC5tYXgoZSwwKSwxKTtjb25zdCBhPXMubWluVHJhbnNsYXRlKCksaT0ocy5tYXhUcmFuc2xhdGUoKS1hKSplK2E7cy50cmFuc2xhdGVUbyhpLHZvaWQgMD09PXQ/MDp0KSxzLnVwZGF0ZUFjdGl2ZUluZGV4KCkscy51cGRhdGVTbGlkZXNDbGFzc2VzKCl9ZW1pdENvbnRhaW5lckNsYXNzZXMoKXtjb25zdCBlPXRoaXM7aWYoIWUucGFyYW1zLl9lbWl0Q2xhc3Nlc3x8IWUuZWwpcmV0dXJuO2NvbnN0IHQ9ZS5lbC5jbGFzc05hbWUuc3BsaXQoIiAiKS5maWx0ZXIoKHQ9PjA9PT10LmluZGV4T2YoInN3aXBlciIpfHwwPT09dC5pbmRleE9mKGUucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MpKSk7ZS5lbWl0KCJfY29udGFpbmVyQ2xhc3NlcyIsdC5qb2luKCIgIikpfWdldFNsaWRlQ2xhc3NlcyhlKXtjb25zdCB0PXRoaXM7cmV0dXJuIGUuY2xhc3NOYW1lLnNwbGl0KCIgIikuZmlsdGVyKChlPT4wPT09ZS5pbmRleE9mKCJzd2lwZXItc2xpZGUiKXx8MD09PWUuaW5kZXhPZih0LnBhcmFtcy5zbGlkZUNsYXNzKSkpLmpvaW4oIiAiKX1lbWl0U2xpZGVzQ2xhc3Nlcygpe2NvbnN0IGU9dGhpcztpZighZS5wYXJhbXMuX2VtaXRDbGFzc2VzfHwhZS5lbClyZXR1cm47Y29uc3QgdD1bXTtlLnNsaWRlcy5lYWNoKChzPT57Y29uc3QgYT1lLmdldFNsaWRlQ2xhc3NlcyhzKTt0LnB1c2goe3NsaWRlRWw6cyxjbGFzc05hbWVzOmF9KSxlLmVtaXQoIl9zbGlkZUNsYXNzIixzLGEpfSkpLGUuZW1pdCgiX3NsaWRlQ2xhc3NlcyIsdCl9c2xpZGVzUGVyVmlld0R5bmFtaWMoZT0iY3VycmVudCIsdD0hMSl7Y29uc3R7cGFyYW1zOnMsc2xpZGVzOmEsc2xpZGVzR3JpZDppLHNsaWRlc1NpemVzR3JpZDpyLHNpemU6bixhY3RpdmVJbmRleDpsfT10aGlzO2xldCBvPTE7aWYocy5jZW50ZXJlZFNsaWRlcyl7bGV0IGUsdD1hW2xdLnN3aXBlclNsaWRlU2l6ZTtmb3IobGV0IHM9bCsxO3M8YS5sZW5ndGg7cys9MSlhW3NdJiYhZSYmKHQrPWFbc10uc3dpcGVyU2xpZGVTaXplLG8rPTEsdD5uJiYoZT0hMCkpO2ZvcihsZXQgcz1sLTE7cz49MDtzLT0xKWFbc10mJiFlJiYodCs9YVtzXS5zd2lwZXJTbGlkZVNpemUsbys9MSx0Pm4mJihlPSEwKSl9ZWxzZSBpZigiY3VycmVudCI9PT1lKWZvcihsZXQgZT1sKzE7ZTxhLmxlbmd0aDtlKz0xKXsodD9pW2VdK3JbZV0taVtsXTxuOmlbZV0taVtsXTxuKSYmKG8rPTEpfWVsc2UgZm9yKGxldCBlPWwtMTtlPj0wO2UtPTEpe2lbbF0taVtlXTxuJiYobys9MSl9cmV0dXJuIG99dXBkYXRlKCl7Y29uc3QgZT10aGlzO2lmKCFlfHxlLmRlc3Ryb3llZClyZXR1cm47Y29uc3R7c25hcEdyaWQ6dCxwYXJhbXM6c309ZTtmdW5jdGlvbiBhKCl7Y29uc3QgdD1lLnJ0bFRyYW5zbGF0ZT8tMSplLnRyYW5zbGF0ZTplLnRyYW5zbGF0ZSxzPU1hdGgubWluKE1hdGgubWF4KHQsZS5tYXhUcmFuc2xhdGUoKSksZS5taW5UcmFuc2xhdGUoKSk7ZS5zZXRUcmFuc2xhdGUocyksZS51cGRhdGVBY3RpdmVJbmRleCgpLGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpfWxldCBpO3MuYnJlYWtwb2ludHMmJmUuc2V0QnJlYWtwb2ludCgpLGUudXBkYXRlU2l6ZSgpLGUudXBkYXRlU2xpZGVzKCksZS51cGRhdGVQcm9ncmVzcygpLGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpLGUucGFyYW1zLmZyZWVNb2RlJiZlLnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkPyhhKCksZS5wYXJhbXMuYXV0b0hlaWdodCYmZS51cGRhdGVBdXRvSGVpZ2h0KCkpOihpPSgiYXV0byI9PT1lLnBhcmFtcy5zbGlkZXNQZXJWaWV3fHxlLnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpJiZlLmlzRW5kJiYhZS5wYXJhbXMuY2VudGVyZWRTbGlkZXM/ZS5zbGlkZVRvKGUuc2xpZGVzLmxlbmd0aC0xLDAsITEsITApOmUuc2xpZGVUbyhlLmFjdGl2ZUluZGV4LDAsITEsITApLGl8fGEoKSkscy53YXRjaE92ZXJmbG93JiZ0IT09ZS5zbmFwR3JpZCYmZS5jaGVja092ZXJmbG93KCksZS5lbWl0KCJ1cGRhdGUiKX1jaGFuZ2VEaXJlY3Rpb24oZSx0PSEwKXtjb25zdCBzPXRoaXMsYT1zLnBhcmFtcy5kaXJlY3Rpb247cmV0dXJuIGV8fChlPSJob3Jpem9udGFsIj09PWE/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCIpLGU9PT1hfHwiaG9yaXpvbnRhbCIhPT1lJiYidmVydGljYWwiIT09ZXx8KHMuJGVsLnJlbW92ZUNsYXNzKGAke3MucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9JHthfWApLmFkZENsYXNzKGAke3MucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9JHtlfWApLHMuZW1pdENvbnRhaW5lckNsYXNzZXMoKSxzLnBhcmFtcy5kaXJlY3Rpb249ZSxzLnNsaWRlcy5lYWNoKCh0PT57InZlcnRpY2FsIj09PWU/dC5zdHlsZS53aWR0aD0iIjp0LnN0eWxlLmhlaWdodD0iIn0pKSxzLmVtaXQoImNoYW5nZURpcmVjdGlvbiIpLHQmJnMudXBkYXRlKCkpLHN9bW91bnQoZSl7Y29uc3QgdD10aGlzO2lmKHQubW91bnRlZClyZXR1cm4hMDtjb25zdCBzPWQoZXx8dC5wYXJhbXMuZWwpO2lmKCEoZT1zWzBdKSlyZXR1cm4hMTtlLnN3aXBlcj10O2NvbnN0IGk9KCk9PmAuJHsodC5wYXJhbXMud3JhcHBlckNsYXNzfHwiIikudHJpbSgpLnNwbGl0KCIgIikuam9pbigiLiIpfWA7bGV0IHI9KCgpPT57aWYoZSYmZS5zaGFkb3dSb290JiZlLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcil7Y29uc3QgdD1kKGUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGkoKSkpO3JldHVybiB0LmNoaWxkcmVuPWU9PnMuY2hpbGRyZW4oZSksdH1yZXR1cm4gcy5jaGlsZHJlbihpKCkpfSkoKTtpZigwPT09ci5sZW5ndGgmJnQucGFyYW1zLmNyZWF0ZUVsZW1lbnRzKXtjb25zdCBlPWEoKS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyPWQoZSksZS5jbGFzc05hbWU9dC5wYXJhbXMud3JhcHBlckNsYXNzLHMuYXBwZW5kKGUpLHMuY2hpbGRyZW4oYC4ke3QucGFyYW1zLnNsaWRlQ2xhc3N9YCkuZWFjaCgoZT0+e3IuYXBwZW5kKGUpfSkpfXJldHVybiBPYmplY3QuYXNzaWduKHQseyRlbDpzLGVsOmUsJHdyYXBwZXJFbDpyLHdyYXBwZXJFbDpyWzBdLG1vdW50ZWQ6ITAscnRsOiJydGwiPT09ZS5kaXIudG9Mb3dlckNhc2UoKXx8InJ0bCI9PT1zLmNzcygiZGlyZWN0aW9uIikscnRsVHJhbnNsYXRlOiJob3Jpem9udGFsIj09PXQucGFyYW1zLmRpcmVjdGlvbiYmKCJydGwiPT09ZS5kaXIudG9Mb3dlckNhc2UoKXx8InJ0bCI9PT1zLmNzcygiZGlyZWN0aW9uIikpLHdyb25nUlRMOiItd2Via2l0LWJveCI9PT1yLmNzcygiZGlzcGxheSIpfSksITB9aW5pdChlKXtjb25zdCB0PXRoaXM7aWYodC5pbml0aWFsaXplZClyZXR1cm4gdDtyZXR1cm4hMT09PXQubW91bnQoZSl8fCh0LmVtaXQoImJlZm9yZUluaXQiKSx0LnBhcmFtcy5icmVha3BvaW50cyYmdC5zZXRCcmVha3BvaW50KCksdC5hZGRDbGFzc2VzKCksdC5wYXJhbXMubG9vcCYmdC5sb29wQ3JlYXRlKCksdC51cGRhdGVTaXplKCksdC51cGRhdGVTbGlkZXMoKSx0LnBhcmFtcy53YXRjaE92ZXJmbG93JiZ0LmNoZWNrT3ZlcmZsb3coKSx0LnBhcmFtcy5ncmFiQ3Vyc29yJiZ0LmVuYWJsZWQmJnQuc2V0R3JhYkN1cnNvcigpLHQucGFyYW1zLnByZWxvYWRJbWFnZXMmJnQucHJlbG9hZEltYWdlcygpLHQucGFyYW1zLmxvb3A/dC5zbGlkZVRvKHQucGFyYW1zLmluaXRpYWxTbGlkZSt0Lmxvb3BlZFNsaWRlcywwLHQucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMSwhMCk6dC5zbGlkZVRvKHQucGFyYW1zLmluaXRpYWxTbGlkZSwwLHQucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMSwhMCksdC5hdHRhY2hFdmVudHMoKSx0LmluaXRpYWxpemVkPSEwLHQuZW1pdCgiaW5pdCIpLHQuZW1pdCgiYWZ0ZXJJbml0IikpLHR9ZGVzdHJveShlPSEwLHQ9ITApe2NvbnN0IHM9dGhpcyx7cGFyYW1zOmEsJGVsOmksJHdyYXBwZXJFbDpyLHNsaWRlczpufT1zO3JldHVybiB2b2lkIDA9PT1zLnBhcmFtc3x8cy5kZXN0cm95ZWR8fChzLmVtaXQoImJlZm9yZURlc3Ryb3kiKSxzLmluaXRpYWxpemVkPSExLHMuZGV0YWNoRXZlbnRzKCksYS5sb29wJiZzLmxvb3BEZXN0cm95KCksdCYmKHMucmVtb3ZlQ2xhc3NlcygpLGkucmVtb3ZlQXR0cigic3R5bGUiKSxyLnJlbW92ZUF0dHIoInN0eWxlIiksbiYmbi5sZW5ndGgmJm4ucmVtb3ZlQ2xhc3MoW2Euc2xpZGVWaXNpYmxlQ2xhc3MsYS5zbGlkZUFjdGl2ZUNsYXNzLGEuc2xpZGVOZXh0Q2xhc3MsYS5zbGlkZVByZXZDbGFzc10uam9pbigiICIpKS5yZW1vdmVBdHRyKCJzdHlsZSIpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IikpLHMuZW1pdCgiZGVzdHJveSIpLE9iamVjdC5rZXlzKHMuZXZlbnRzTGlzdGVuZXJzKS5mb3JFYWNoKChlPT57cy5vZmYoZSl9KSksITEhPT1lJiYocy4kZWxbMF0uc3dpcGVyPW51bGwsZnVuY3Rpb24oZSl7Y29uc3QgdD1lO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9Pnt0cnl7dFtlXT1udWxsfWNhdGNoKGUpe310cnl7ZGVsZXRlIHRbZV19Y2F0Y2goZSl7fX0pKX0ocykpLHMuZGVzdHJveWVkPSEwKSxudWxsfXN0YXRpYyBleHRlbmREZWZhdWx0cyhlKXtmKFgsZSl9c3RhdGljIGdldCBleHRlbmRlZERlZmF1bHRzKCl7cmV0dXJuIFh9c3RhdGljIGdldCBkZWZhdWx0cygpe3JldHVybiBHfXN0YXRpYyBpbnN0YWxsTW9kdWxlKGUpe0gucHJvdG90eXBlLl9fbW9kdWxlc19ffHwoSC5wcm90b3R5cGUuX19tb2R1bGVzX189W10pO2NvbnN0IHQ9SC5wcm90b3R5cGUuX19tb2R1bGVzX187ImZ1bmN0aW9uIj09dHlwZW9mIGUmJnQuaW5kZXhPZihlKTwwJiZ0LnB1c2goZSl9c3RhdGljIHVzZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8oZS5mb3JFYWNoKChlPT5ILmluc3RhbGxNb2R1bGUoZSkpKSxIKTooSC5pbnN0YWxsTW9kdWxlKGUpLEgpfX1mdW5jdGlvbiBZKGUsdCxzLGkpe2NvbnN0IHI9YSgpO3JldHVybiBlLnBhcmFtcy5jcmVhdGVFbGVtZW50cyYmT2JqZWN0LmtleXMoaSkuZm9yRWFjaCgoYT0+e2lmKCFzW2FdJiYhMD09PXMuYXV0byl7bGV0IG49ZS4kZWwuY2hpbGRyZW4oYC4ke2lbYV19YClbMF07bnx8KG49ci5jcmVhdGVFbGVtZW50KCJkaXYiKSxuLmNsYXNzTmFtZT1pW2FdLGUuJGVsLmFwcGVuZChuKSksc1thXT1uLHRbYV09bn19KSksc31mdW5jdGlvbiBXKGU9IiIpe3JldHVybmAuJHtlLnRyaW0oKS5yZXBsYWNlKC8oW1wuOiFcL10pL2csIlxcJDEiKS5yZXBsYWNlKC8gL2csIi4iKX1gfWZ1bmN0aW9uIFIoZSl7Y29uc3QgdD10aGlzLHskd3JhcHBlckVsOnMscGFyYW1zOmF9PXQ7aWYoYS5sb29wJiZ0Lmxvb3BEZXN0cm95KCksIm9iamVjdCI9PXR5cGVvZiBlJiYibGVuZ3RoImluIGUpZm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKWVbdF0mJnMuYXBwZW5kKGVbdF0pO2Vsc2Ugcy5hcHBlbmQoZSk7YS5sb29wJiZ0Lmxvb3BDcmVhdGUoKSxhLm9ic2VydmVyfHx0LnVwZGF0ZSgpfWZ1bmN0aW9uIGooZSl7Y29uc3QgdD10aGlzLHtwYXJhbXM6cywkd3JhcHBlckVsOmEsYWN0aXZlSW5kZXg6aX09dDtzLmxvb3AmJnQubG9vcERlc3Ryb3koKTtsZXQgcj1pKzE7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiYibGVuZ3RoImluIGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSllW3RdJiZhLnByZXBlbmQoZVt0XSk7cj1pK2UubGVuZ3RofWVsc2UgYS5wcmVwZW5kKGUpO3MubG9vcCYmdC5sb29wQ3JlYXRlKCkscy5vYnNlcnZlcnx8dC51cGRhdGUoKSx0LnNsaWRlVG8ociwwLCExKX1mdW5jdGlvbiBfKGUsdCl7Y29uc3Qgcz10aGlzLHskd3JhcHBlckVsOmEscGFyYW1zOmksYWN0aXZlSW5kZXg6cn09cztsZXQgbj1yO2kubG9vcCYmKG4tPXMubG9vcGVkU2xpZGVzLHMubG9vcERlc3Ryb3koKSxzLnNsaWRlcz1hLmNoaWxkcmVuKGAuJHtpLnNsaWRlQ2xhc3N9YCkpO2NvbnN0IGw9cy5zbGlkZXMubGVuZ3RoO2lmKGU8PTApcmV0dXJuIHZvaWQgcy5wcmVwZW5kU2xpZGUodCk7aWYoZT49bClyZXR1cm4gdm9pZCBzLmFwcGVuZFNsaWRlKHQpO2xldCBvPW4+ZT9uKzE6bjtjb25zdCBkPVtdO2ZvcihsZXQgdD1sLTE7dD49ZTt0LT0xKXtjb25zdCBlPXMuc2xpZGVzLmVxKHQpO2UucmVtb3ZlKCksZC51bnNoaWZ0KGUpfWlmKCJvYmplY3QiPT10eXBlb2YgdCYmImxlbmd0aCJpbiB0KXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTEpdFtlXSYmYS5hcHBlbmQodFtlXSk7bz1uPmU/bit0Lmxlbmd0aDpufWVsc2UgYS5hcHBlbmQodCk7Zm9yKGxldCBlPTA7ZTxkLmxlbmd0aDtlKz0xKWEuYXBwZW5kKGRbZV0pO2kubG9vcCYmcy5sb29wQ3JlYXRlKCksaS5vYnNlcnZlcnx8cy51cGRhdGUoKSxpLmxvb3A/cy5zbGlkZVRvKG8rcy5sb29wZWRTbGlkZXMsMCwhMSk6cy5zbGlkZVRvKG8sMCwhMSl9ZnVuY3Rpb24gVihlKXtjb25zdCB0PXRoaXMse3BhcmFtczpzLCR3cmFwcGVyRWw6YSxhY3RpdmVJbmRleDppfT10O2xldCByPWk7cy5sb29wJiYoci09dC5sb29wZWRTbGlkZXMsdC5sb29wRGVzdHJveSgpLHQuc2xpZGVzPWEuY2hpbGRyZW4oYC4ke3Muc2xpZGVDbGFzc31gKSk7bGV0IG4sbD1yO2lmKCJvYmplY3QiPT10eXBlb2YgZSYmImxlbmd0aCJpbiBlKXtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrPTEpbj1lW3NdLHQuc2xpZGVzW25dJiZ0LnNsaWRlcy5lcShuKS5yZW1vdmUoKSxuPGwmJihsLT0xKTtsPU1hdGgubWF4KGwsMCl9ZWxzZSBuPWUsdC5zbGlkZXNbbl0mJnQuc2xpZGVzLmVxKG4pLnJlbW92ZSgpLG48bCYmKGwtPTEpLGw9TWF0aC5tYXgobCwwKTtzLmxvb3AmJnQubG9vcENyZWF0ZSgpLHMub2JzZXJ2ZXJ8fHQudXBkYXRlKCkscy5sb29wP3Quc2xpZGVUbyhsK3QubG9vcGVkU2xpZGVzLDAsITEpOnQuc2xpZGVUbyhsLDAsITEpfWZ1bmN0aW9uIHEoKXtjb25zdCBlPXRoaXMsdD1bXTtmb3IobGV0IHM9MDtzPGUuc2xpZGVzLmxlbmd0aDtzKz0xKXQucHVzaChzKTtlLnJlbW92ZVNsaWRlKHQpfWZ1bmN0aW9uIEYoZSl7Y29uc3R7ZWZmZWN0OnQsc3dpcGVyOnMsb246YSxzZXRUcmFuc2xhdGU6aSxzZXRUcmFuc2l0aW9uOnIsb3ZlcndyaXRlUGFyYW1zOm4scGVyc3BlY3RpdmU6bH09ZTthKCJiZWZvcmVJbml0IiwoKCk9PntpZihzLnBhcmFtcy5lZmZlY3QhPT10KXJldHVybjtzLmNsYXNzTmFtZXMucHVzaChgJHtzLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzfSR7dH1gKSxsJiZsKCkmJnMuY2xhc3NOYW1lcy5wdXNoKGAke3MucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9M2RgKTtjb25zdCBlPW4/bigpOnt9O09iamVjdC5hc3NpZ24ocy5wYXJhbXMsZSksT2JqZWN0LmFzc2lnbihzLm9yaWdpbmFsUGFyYW1zLGUpfSkpLGEoInNldFRyYW5zbGF0ZSIsKCgpPT57cy5wYXJhbXMuZWZmZWN0PT09dCYmaSgpfSkpLGEoInNldFRyYW5zaXRpb24iLCgoZSxhKT0+e3MucGFyYW1zLmVmZmVjdD09PXQmJnIoYSl9KSl9ZnVuY3Rpb24gVShlLHQpe3JldHVybiBlLnRyYW5zZm9ybUVsP3QuZmluZChlLnRyYW5zZm9ybUVsKS5jc3MoeyJiYWNrZmFjZS12aXNpYmlsaXR5IjoiaGlkZGVuIiwiLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5IjoiaGlkZGVuIn0pOnR9ZnVuY3Rpb24gSyh7c3dpcGVyOmUsZHVyYXRpb246dCx0cmFuc2Zvcm1FbDpzLGFsbFNsaWRlczphfSl7Y29uc3R7c2xpZGVzOmksYWN0aXZlSW5kZXg6ciwkd3JhcHBlckVsOm59PWU7aWYoZS5wYXJhbXMudmlydHVhbFRyYW5zbGF0ZSYmMCE9PXQpe2xldCB0LGw9ITE7dD1hP3M/aS5maW5kKHMpOmk6cz9pLmVxKHIpLmZpbmQocyk6aS5lcShyKSx0LnRyYW5zaXRpb25FbmQoKCgpPT57aWYobClyZXR1cm47aWYoIWV8fGUuZGVzdHJveWVkKXJldHVybjtsPSEwLGUuYW5pbWF0aW5nPSExO2NvbnN0IHQ9WyJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwidHJhbnNpdGlvbmVuZCJdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MSluLnRyaWdnZXIodFtlXSl9KSl9fWZ1bmN0aW9uIFooZSx0LHMpe2NvbnN0IGE9InN3aXBlci1zbGlkZS1zaGFkb3ciKyhzP2AtJHtzfWA6IiIpLGk9ZS50cmFuc2Zvcm1FbD90LmZpbmQoZS50cmFuc2Zvcm1FbCk6dDtsZXQgcj1pLmNoaWxkcmVuKGAuJHthfWApO3JldHVybiByLmxlbmd0aHx8KHI9ZChgPGRpdiBjbGFzcz0ic3dpcGVyLXNsaWRlLXNoYWRvdyR7cz9gLSR7c31gOiIifSI+PC9kaXY+YCksaS5hcHBlbmQocikpLHJ9T2JqZWN0LmtleXMoQikuZm9yRWFjaCgoZT0+e09iamVjdC5rZXlzKEJbZV0pLmZvckVhY2goKHQ9PntILnByb3RvdHlwZVt0XT1CW2VdW3RdfSkpfSkpLEgudXNlKFtmdW5jdGlvbih7c3dpcGVyOmUsb246dCxlbWl0OnN9KXtjb25zdCBhPXIoKTtsZXQgaT1udWxsO2NvbnN0IG49KCk9PntlJiYhZS5kZXN0cm95ZWQmJmUuaW5pdGlhbGl6ZWQmJihzKCJiZWZvcmVSZXNpemUiKSxzKCJyZXNpemUiKSl9LGw9KCk9PntlJiYhZS5kZXN0cm95ZWQmJmUuaW5pdGlhbGl6ZWQmJnMoIm9yaWVudGF0aW9uY2hhbmdlIil9O3QoImluaXQiLCgoKT0+e2UucGFyYW1zLnJlc2l6ZU9ic2VydmVyJiZ2b2lkIDAhPT1hLlJlc2l6ZU9ic2VydmVyP2UmJiFlLmRlc3Ryb3llZCYmZS5pbml0aWFsaXplZCYmKGk9bmV3IFJlc2l6ZU9ic2VydmVyKCh0PT57Y29uc3R7d2lkdGg6cyxoZWlnaHQ6YX09ZTtsZXQgaT1zLHI9YTt0LmZvckVhY2goKCh7Y29udGVudEJveFNpemU6dCxjb250ZW50UmVjdDpzLHRhcmdldDphfSk9PnthJiZhIT09ZS5lbHx8KGk9cz9zLndpZHRoOih0WzBdfHx0KS5pbmxpbmVTaXplLHI9cz9zLmhlaWdodDoodFswXXx8dCkuYmxvY2tTaXplKX0pKSxpPT09cyYmcj09PWF8fG4oKX0pKSxpLm9ic2VydmUoZS5lbCkpOihhLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbiksYS5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsbCkpfSkpLHQoImRlc3Ryb3kiLCgoKT0+e2kmJmkudW5vYnNlcnZlJiZlLmVsJiYoaS51bm9ic2VydmUoZS5lbCksaT1udWxsKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbiksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsbCl9KSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzLGVtaXQ6YX0pe2NvbnN0IGk9W10sbj1yKCksbD0oZSx0PXt9KT0+e2NvbnN0IHM9bmV3KG4uTXV0YXRpb25PYnNlcnZlcnx8bi5XZWJraXRNdXRhdGlvbk9ic2VydmVyKSgoZT0+e2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gdm9pZCBhKCJvYnNlcnZlclVwZGF0ZSIsZVswXSk7Y29uc3QgdD1mdW5jdGlvbigpe2EoIm9ic2VydmVyVXBkYXRlIixlWzBdKX07bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCk6bi5zZXRUaW1lb3V0KHQsMCl9KSk7cy5vYnNlcnZlKGUse2F0dHJpYnV0ZXM6dm9pZCAwPT09dC5hdHRyaWJ1dGVzfHx0LmF0dHJpYnV0ZXMsY2hpbGRMaXN0OnZvaWQgMD09PXQuY2hpbGRMaXN0fHx0LmNoaWxkTGlzdCxjaGFyYWN0ZXJEYXRhOnZvaWQgMD09PXQuY2hhcmFjdGVyRGF0YXx8dC5jaGFyYWN0ZXJEYXRhfSksaS5wdXNoKHMpfTt0KHtvYnNlcnZlcjohMSxvYnNlcnZlUGFyZW50czohMSxvYnNlcnZlU2xpZGVDaGlsZHJlbjohMX0pLHMoImluaXQiLCgoKT0+e2lmKGUucGFyYW1zLm9ic2VydmVyKXtpZihlLnBhcmFtcy5vYnNlcnZlUGFyZW50cyl7Y29uc3QgdD1lLiRlbC5wYXJlbnRzKCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKz0xKWwodFtlXSl9bChlLiRlbFswXSx7Y2hpbGRMaXN0OmUucGFyYW1zLm9ic2VydmVTbGlkZUNoaWxkcmVufSksbChlLiR3cmFwcGVyRWxbMF0se2F0dHJpYnV0ZXM6ITF9KX19KSkscygiZGVzdHJveSIsKCgpPT57aS5mb3JFYWNoKChlPT57ZS5kaXNjb25uZWN0KCl9KSksaS5zcGxpY2UoMCxpLmxlbmd0aCl9KSl9XSk7Y29uc3QgSj1bZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXtsZXQgYTtmdW5jdGlvbiBpKHQscyl7Y29uc3QgYT1lLnBhcmFtcy52aXJ0dWFsO2lmKGEuY2FjaGUmJmUudmlydHVhbC5jYWNoZVtzXSlyZXR1cm4gZS52aXJ0dWFsLmNhY2hlW3NdO2NvbnN0IGk9YS5yZW5kZXJTbGlkZT9kKGEucmVuZGVyU2xpZGUuY2FsbChlLHQscykpOmQoYDxkaXYgY2xhc3M9IiR7ZS5wYXJhbXMuc2xpZGVDbGFzc30iIGRhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke3N9Ij4ke3R9PC9kaXY+YCk7cmV0dXJuIGkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKXx8aS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIscyksYS5jYWNoZSYmKGUudmlydHVhbC5jYWNoZVtzXT1pKSxpfWZ1bmN0aW9uIHIodCl7Y29uc3R7c2xpZGVzUGVyVmlldzpzLHNsaWRlc1Blckdyb3VwOmEsY2VudGVyZWRTbGlkZXM6cn09ZS5wYXJhbXMse2FkZFNsaWRlc0JlZm9yZTpuLGFkZFNsaWRlc0FmdGVyOmx9PWUucGFyYW1zLnZpcnR1YWwse2Zyb206byx0bzpkLHNsaWRlczpjLHNsaWRlc0dyaWQ6cCxvZmZzZXQ6dX09ZS52aXJ0dWFsO2UucGFyYW1zLmNzc01vZGV8fGUudXBkYXRlQWN0aXZlSW5kZXgoKTtjb25zdCBoPWUuYWN0aXZlSW5kZXh8fDA7bGV0IG0sZixnO209ZS5ydGxUcmFuc2xhdGU/InJpZ2h0IjplLmlzSG9yaXpvbnRhbCgpPyJsZWZ0IjoidG9wIixyPyhmPU1hdGguZmxvb3Iocy8yKSthK2wsZz1NYXRoLmZsb29yKHMvMikrYStuKTooZj1zKyhhLTEpK2wsZz1hK24pO2NvbnN0IHY9TWF0aC5tYXgoKGh8fDApLWcsMCksdz1NYXRoLm1pbigoaHx8MCkrZixjLmxlbmd0aC0xKSxiPShlLnNsaWRlc0dyaWRbdl18fDApLShlLnNsaWRlc0dyaWRbMF18fDApO2Z1bmN0aW9uIHgoKXtlLnVwZGF0ZVNsaWRlcygpLGUudXBkYXRlUHJvZ3Jlc3MoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSxlLmxhenkmJmUucGFyYW1zLmxhenkuZW5hYmxlZCYmZS5sYXp5LmxvYWQoKX1pZihPYmplY3QuYXNzaWduKGUudmlydHVhbCx7ZnJvbTp2LHRvOncsb2Zmc2V0OmIsc2xpZGVzR3JpZDplLnNsaWRlc0dyaWR9KSxvPT09diYmZD09PXcmJiF0KXJldHVybiBlLnNsaWRlc0dyaWQhPT1wJiZiIT09dSYmZS5zbGlkZXMuY3NzKG0sYCR7Yn1weGApLHZvaWQgZS51cGRhdGVQcm9ncmVzcygpO2lmKGUucGFyYW1zLnZpcnR1YWwucmVuZGVyRXh0ZXJuYWwpcmV0dXJuIGUucGFyYW1zLnZpcnR1YWwucmVuZGVyRXh0ZXJuYWwuY2FsbChlLHtvZmZzZXQ6Yixmcm9tOnYsdG86dyxzbGlkZXM6ZnVuY3Rpb24oKXtjb25zdCBlPVtdO2ZvcihsZXQgdD12O3Q8PXc7dCs9MSllLnB1c2goY1t0XSk7cmV0dXJuIGV9KCl9KSx2b2lkKGUucGFyYW1zLnZpcnR1YWwucmVuZGVyRXh0ZXJuYWxVcGRhdGUmJngoKSk7Y29uc3QgeT1bXSxFPVtdO2lmKHQpZS4kd3JhcHBlckVsLmZpbmQoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9YCkucmVtb3ZlKCk7ZWxzZSBmb3IobGV0IHQ9bzt0PD1kO3QrPTEpKHQ8dnx8dD53KSYmZS4kd3JhcHBlckVsLmZpbmQoYC4ke2UucGFyYW1zLnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke3R9Il1gKS5yZW1vdmUoKTtmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrPTEpZT49diYmZTw9dyYmKHZvaWQgMD09PWR8fHQ/RS5wdXNoKGUpOihlPmQmJkUucHVzaChlKSxlPG8mJnkucHVzaChlKSkpO0UuZm9yRWFjaCgodD0+e2UuJHdyYXBwZXJFbC5hcHBlbmQoaShjW3RdLHQpKX0pKSx5LnNvcnQoKChlLHQpPT50LWUpKS5mb3JFYWNoKCh0PT57ZS4kd3JhcHBlckVsLnByZXBlbmQoaShjW3RdLHQpKX0pKSxlLiR3cmFwcGVyRWwuY2hpbGRyZW4oIi5zd2lwZXItc2xpZGUiKS5jc3MobSxgJHtifXB4YCkseCgpfXQoe3ZpcnR1YWw6e2VuYWJsZWQ6ITEsc2xpZGVzOltdLGNhY2hlOiEwLHJlbmRlclNsaWRlOm51bGwscmVuZGVyRXh0ZXJuYWw6bnVsbCxyZW5kZXJFeHRlcm5hbFVwZGF0ZTohMCxhZGRTbGlkZXNCZWZvcmU6MCxhZGRTbGlkZXNBZnRlcjowfX0pLGUudmlydHVhbD17Y2FjaGU6e30sZnJvbTp2b2lkIDAsdG86dm9pZCAwLHNsaWRlczpbXSxvZmZzZXQ6MCxzbGlkZXNHcmlkOltdfSxzKCJiZWZvcmVJbml0IiwoKCk9PntlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJihlLnZpcnR1YWwuc2xpZGVzPWUucGFyYW1zLnZpcnR1YWwuc2xpZGVzLGUuY2xhc3NOYW1lcy5wdXNoKGAke2UucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9dmlydHVhbGApLGUucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsZS5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzPSEwLGUucGFyYW1zLmluaXRpYWxTbGlkZXx8cigpKX0pKSxzKCJzZXRUcmFuc2xhdGUiLCgoKT0+e2UucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCYmKGUucGFyYW1zLmNzc01vZGUmJiFlLl9pbW1lZGlhdGVWaXJ0dWFsPyhjbGVhclRpbWVvdXQoYSksYT1zZXRUaW1lb3V0KCgoKT0+e3IoKX0pLDEwMCkpOnIoKSl9KSkscygiaW5pdCB1cGRhdGUgcmVzaXplIiwoKCk9PntlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJmUucGFyYW1zLmNzc01vZGUmJmcoZS53cmFwcGVyRWwsIi0tc3dpcGVyLXZpcnR1YWwtc2l6ZSIsYCR7ZS52aXJ0dWFsU2l6ZX1weGApfSkpLE9iamVjdC5hc3NpZ24oZS52aXJ0dWFsLHthcHBlbmRTbGlkZTpmdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQmJiJsZW5ndGgiaW4gdClmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrPTEpdFtzXSYmZS52aXJ0dWFsLnNsaWRlcy5wdXNoKHRbc10pO2Vsc2UgZS52aXJ0dWFsLnNsaWRlcy5wdXNoKHQpO3IoITApfSxwcmVwZW5kU2xpZGU6ZnVuY3Rpb24odCl7Y29uc3Qgcz1lLmFjdGl2ZUluZGV4O2xldCBhPXMrMSxpPTE7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKz0xKXRbc10mJmUudmlydHVhbC5zbGlkZXMudW5zaGlmdCh0W3NdKTthPXMrdC5sZW5ndGgsaT10Lmxlbmd0aH1lbHNlIGUudmlydHVhbC5zbGlkZXMudW5zaGlmdCh0KTtpZihlLnBhcmFtcy52aXJ0dWFsLmNhY2hlKXtjb25zdCB0PWUudmlydHVhbC5jYWNoZSxzPXt9O09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9Pntjb25zdCBhPXRbZV0scj1hLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iik7ciYmYS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIscGFyc2VJbnQociwxMCkraSksc1twYXJzZUludChlLDEwKStpXT1hfSkpLGUudmlydHVhbC5jYWNoZT1zfXIoITApLGUuc2xpZGVUbyhhLDApfSxyZW1vdmVTbGlkZTpmdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybjtsZXQgcz1lLmFjdGl2ZUluZGV4O2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBhPXQubGVuZ3RoLTE7YT49MDthLT0xKWUudmlydHVhbC5zbGlkZXMuc3BsaWNlKHRbYV0sMSksZS5wYXJhbXMudmlydHVhbC5jYWNoZSYmZGVsZXRlIGUudmlydHVhbC5jYWNoZVt0W2FdXSx0W2FdPHMmJihzLT0xKSxzPU1hdGgubWF4KHMsMCk7ZWxzZSBlLnZpcnR1YWwuc2xpZGVzLnNwbGljZSh0LDEpLGUucGFyYW1zLnZpcnR1YWwuY2FjaGUmJmRlbGV0ZSBlLnZpcnR1YWwuY2FjaGVbdF0sdDxzJiYocy09MSkscz1NYXRoLm1heChzLDApO3IoITApLGUuc2xpZGVUbyhzLDApfSxyZW1vdmVBbGxTbGlkZXM6ZnVuY3Rpb24oKXtlLnZpcnR1YWwuc2xpZGVzPVtdLGUucGFyYW1zLnZpcnR1YWwuY2FjaGUmJihlLnZpcnR1YWwuY2FjaGU9e30pLHIoITApLGUuc2xpZGVUbygwLDApfSx1cGRhdGU6cn0pfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsb246cyxlbWl0Oml9KXtjb25zdCBuPWEoKSxsPXIoKTtmdW5jdGlvbiBvKHQpe2lmKCFlLmVuYWJsZWQpcmV0dXJuO2NvbnN0e3J0bFRyYW5zbGF0ZTpzfT1lO2xldCBhPXQ7YS5vcmlnaW5hbEV2ZW50JiYoYT1hLm9yaWdpbmFsRXZlbnQpO2NvbnN0IHI9YS5rZXlDb2RlfHxhLmNoYXJDb2RlLG89ZS5wYXJhbXMua2V5Ym9hcmQucGFnZVVwRG93bixkPW8mJjMzPT09cixjPW8mJjM0PT09cixwPTM3PT09cix1PTM5PT09cixoPTM4PT09cixtPTQwPT09cjtpZighZS5hbGxvd1NsaWRlTmV4dCYmKGUuaXNIb3Jpem9udGFsKCkmJnV8fGUuaXNWZXJ0aWNhbCgpJiZtfHxjKSlyZXR1cm4hMTtpZighZS5hbGxvd1NsaWRlUHJldiYmKGUuaXNIb3Jpem9udGFsKCkmJnB8fGUuaXNWZXJ0aWNhbCgpJiZofHxkKSlyZXR1cm4hMTtpZighKGEuc2hpZnRLZXl8fGEuYWx0S2V5fHxhLmN0cmxLZXl8fGEubWV0YUtleXx8bi5hY3RpdmVFbGVtZW50JiZuLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUmJigiaW5wdXQiPT09bi5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl8fCJ0ZXh0YXJlYSI9PT1uLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpKXtpZihlLnBhcmFtcy5rZXlib2FyZC5vbmx5SW5WaWV3cG9ydCYmKGR8fGN8fHB8fHV8fGh8fG0pKXtsZXQgdD0hMTtpZihlLiRlbC5wYXJlbnRzKGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfWApLmxlbmd0aD4wJiYwPT09ZS4kZWwucGFyZW50cyhgLiR7ZS5wYXJhbXMuc2xpZGVBY3RpdmVDbGFzc31gKS5sZW5ndGgpcmV0dXJuO2NvbnN0IGE9ZS4kZWwsaT1hWzBdLmNsaWVudFdpZHRoLHI9YVswXS5jbGllbnRIZWlnaHQsbj1sLmlubmVyV2lkdGgsbz1sLmlubmVySGVpZ2h0LGQ9ZS4kZWwub2Zmc2V0KCk7cyYmKGQubGVmdC09ZS4kZWxbMF0uc2Nyb2xsTGVmdCk7Y29uc3QgYz1bW2QubGVmdCxkLnRvcF0sW2QubGVmdCtpLGQudG9wXSxbZC5sZWZ0LGQudG9wK3JdLFtkLmxlZnQraSxkLnRvcCtyXV07Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKz0xKXtjb25zdCBzPWNbZV07aWYoc1swXT49MCYmc1swXTw9biYmc1sxXT49MCYmc1sxXTw9byl7aWYoMD09PXNbMF0mJjA9PT1zWzFdKWNvbnRpbnVlO3Q9ITB9fWlmKCF0KXJldHVybn1lLmlzSG9yaXpvbnRhbCgpPygoZHx8Y3x8cHx8dSkmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKSwoKGN8fHUpJiYhc3x8KGR8fHApJiZzKSYmZS5zbGlkZU5leHQoKSwoKGR8fHApJiYhc3x8KGN8fHUpJiZzKSYmZS5zbGlkZVByZXYoKSk6KChkfHxjfHxofHxtKSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpLChjfHxtKSYmZS5zbGlkZU5leHQoKSwoZHx8aCkmJmUuc2xpZGVQcmV2KCkpLGkoImtleVByZXNzIixyKX19ZnVuY3Rpb24gYygpe2Uua2V5Ym9hcmQuZW5hYmxlZHx8KGQobikub24oImtleWRvd24iLG8pLGUua2V5Ym9hcmQuZW5hYmxlZD0hMCl9ZnVuY3Rpb24gcCgpe2Uua2V5Ym9hcmQuZW5hYmxlZCYmKGQobikub2ZmKCJrZXlkb3duIixvKSxlLmtleWJvYXJkLmVuYWJsZWQ9ITEpfWUua2V5Ym9hcmQ9e2VuYWJsZWQ6ITF9LHQoe2tleWJvYXJkOntlbmFibGVkOiExLG9ubHlJblZpZXdwb3J0OiEwLHBhZ2VVcERvd246ITB9fSkscygiaW5pdCIsKCgpPT57ZS5wYXJhbXMua2V5Ym9hcmQuZW5hYmxlZCYmYygpfSkpLHMoImRlc3Ryb3kiLCgoKT0+e2Uua2V5Ym9hcmQuZW5hYmxlZCYmcCgpfSkpLE9iamVjdC5hc3NpZ24oZS5rZXlib2FyZCx7ZW5hYmxlOmMsZGlzYWJsZTpwfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzLGVtaXQ6YX0pe2NvbnN0IGk9cigpO2xldCBuO3Qoe21vdXNld2hlZWw6e2VuYWJsZWQ6ITEscmVsZWFzZU9uRWRnZXM6ITEsaW52ZXJ0OiExLGZvcmNlVG9BeGlzOiExLHNlbnNpdGl2aXR5OjEsZXZlbnRzVGFyZ2V0OiJjb250YWluZXIiLHRocmVzaG9sZERlbHRhOm51bGwsdGhyZXNob2xkVGltZTpudWxsfX0pLGUubW91c2V3aGVlbD17ZW5hYmxlZDohMX07bGV0IGwsbz11KCk7Y29uc3QgYz1bXTtmdW5jdGlvbiBoKCl7ZS5lbmFibGVkJiYoZS5tb3VzZUVudGVyZWQ9ITApfWZ1bmN0aW9uIG0oKXtlLmVuYWJsZWQmJihlLm1vdXNlRW50ZXJlZD0hMSl9ZnVuY3Rpb24gZih0KXtyZXR1cm4hKGUucGFyYW1zLm1vdXNld2hlZWwudGhyZXNob2xkRGVsdGEmJnQuZGVsdGE8ZS5wYXJhbXMubW91c2V3aGVlbC50aHJlc2hvbGREZWx0YSkmJighKGUucGFyYW1zLm1vdXNld2hlZWwudGhyZXNob2xkVGltZSYmdSgpLW88ZS5wYXJhbXMubW91c2V3aGVlbC50aHJlc2hvbGRUaW1lKSYmKHQuZGVsdGE+PTYmJnUoKS1vPDYwfHwodC5kaXJlY3Rpb248MD9lLmlzRW5kJiYhZS5wYXJhbXMubG9vcHx8ZS5hbmltYXRpbmd8fChlLnNsaWRlTmV4dCgpLGEoInNjcm9sbCIsdC5yYXcpKTplLmlzQmVnaW5uaW5nJiYhZS5wYXJhbXMubG9vcHx8ZS5hbmltYXRpbmd8fChlLnNsaWRlUHJldigpLGEoInNjcm9sbCIsdC5yYXcpKSxvPShuZXcgaS5EYXRlKS5nZXRUaW1lKCksITEpKSl9ZnVuY3Rpb24gZyh0KXtsZXQgcz10LGk9ITA7aWYoIWUuZW5hYmxlZClyZXR1cm47Y29uc3Qgcj1lLnBhcmFtcy5tb3VzZXdoZWVsO2UucGFyYW1zLmNzc01vZGUmJnMucHJldmVudERlZmF1bHQoKTtsZXQgbz1lLiRlbDtpZigiY29udGFpbmVyIiE9PWUucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0JiYobz1kKGUucGFyYW1zLm1vdXNld2hlZWwuZXZlbnRzVGFyZ2V0KSksIWUubW91c2VFbnRlcmVkJiYhb1swXS5jb250YWlucyhzLnRhcmdldCkmJiFyLnJlbGVhc2VPbkVkZ2VzKXJldHVybiEwO3Mub3JpZ2luYWxFdmVudCYmKHM9cy5vcmlnaW5hbEV2ZW50KTtsZXQgaD0wO2NvbnN0IG09ZS5ydGxUcmFuc2xhdGU/LTE6MSxnPWZ1bmN0aW9uKGUpe2xldCB0PTAscz0wLGE9MCxpPTA7cmV0dXJuImRldGFpbCJpbiBlJiYocz1lLmRldGFpbCksIndoZWVsRGVsdGEiaW4gZSYmKHM9LWUud2hlZWxEZWx0YS8xMjApLCJ3aGVlbERlbHRhWSJpbiBlJiYocz0tZS53aGVlbERlbHRhWS8xMjApLCJ3aGVlbERlbHRhWCJpbiBlJiYodD0tZS53aGVlbERlbHRhWC8xMjApLCJheGlzImluIGUmJmUuYXhpcz09PWUuSE9SSVpPTlRBTF9BWElTJiYodD1zLHM9MCksYT0xMCp0LGk9MTAqcywiZGVsdGFZImluIGUmJihpPWUuZGVsdGFZKSwiZGVsdGFYImluIGUmJihhPWUuZGVsdGFYKSxlLnNoaWZ0S2V5JiYhYSYmKGE9aSxpPTApLChhfHxpKSYmZS5kZWx0YU1vZGUmJigxPT09ZS5kZWx0YU1vZGU/KGEqPTQwLGkqPTQwKTooYSo9ODAwLGkqPTgwMCkpLGEmJiF0JiYodD1hPDE/LTE6MSksaSYmIXMmJihzPWk8MT8tMToxKSx7c3Bpblg6dCxzcGluWTpzLHBpeGVsWDphLHBpeGVsWTppfX0ocyk7aWYoci5mb3JjZVRvQXhpcylpZihlLmlzSG9yaXpvbnRhbCgpKXtpZighKE1hdGguYWJzKGcucGl4ZWxYKT5NYXRoLmFicyhnLnBpeGVsWSkpKXJldHVybiEwO2g9LWcucGl4ZWxYKm19ZWxzZXtpZighKE1hdGguYWJzKGcucGl4ZWxZKT5NYXRoLmFicyhnLnBpeGVsWCkpKXJldHVybiEwO2g9LWcucGl4ZWxZfWVsc2UgaD1NYXRoLmFicyhnLnBpeGVsWCk+TWF0aC5hYnMoZy5waXhlbFkpPy1nLnBpeGVsWCptOi1nLnBpeGVsWTtpZigwPT09aClyZXR1cm4hMDtyLmludmVydCYmKGg9LWgpO2xldCB2PWUuZ2V0VHJhbnNsYXRlKCkraCpyLnNlbnNpdGl2aXR5O2lmKHY+PWUubWluVHJhbnNsYXRlKCkmJih2PWUubWluVHJhbnNsYXRlKCkpLHY8PWUubWF4VHJhbnNsYXRlKCkmJih2PWUubWF4VHJhbnNsYXRlKCkpLGk9ISFlLnBhcmFtcy5sb29wfHwhKHY9PT1lLm1pblRyYW5zbGF0ZSgpfHx2PT09ZS5tYXhUcmFuc2xhdGUoKSksaSYmZS5wYXJhbXMubmVzdGVkJiZzLnN0b3BQcm9wYWdhdGlvbigpLGUucGFyYW1zLmZyZWVNb2RlJiZlLnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkKXtjb25zdCB0PXt0aW1lOnUoKSxkZWx0YTpNYXRoLmFicyhoKSxkaXJlY3Rpb246TWF0aC5zaWduKGgpfSxpPWwmJnQudGltZTxsLnRpbWUrNTAwJiZ0LmRlbHRhPD1sLmRlbHRhJiZ0LmRpcmVjdGlvbj09PWwuZGlyZWN0aW9uO2lmKCFpKXtsPXZvaWQgMCxlLnBhcmFtcy5sb29wJiZlLmxvb3BGaXgoKTtsZXQgbz1lLmdldFRyYW5zbGF0ZSgpK2gqci5zZW5zaXRpdml0eTtjb25zdCBkPWUuaXNCZWdpbm5pbmcsdT1lLmlzRW5kO2lmKG8+PWUubWluVHJhbnNsYXRlKCkmJihvPWUubWluVHJhbnNsYXRlKCkpLG88PWUubWF4VHJhbnNsYXRlKCkmJihvPWUubWF4VHJhbnNsYXRlKCkpLGUuc2V0VHJhbnNpdGlvbigwKSxlLnNldFRyYW5zbGF0ZShvKSxlLnVwZGF0ZVByb2dyZXNzKCksZS51cGRhdGVBY3RpdmVJbmRleCgpLGUudXBkYXRlU2xpZGVzQ2xhc3NlcygpLCghZCYmZS5pc0JlZ2lubmluZ3x8IXUmJmUuaXNFbmQpJiZlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSxlLnBhcmFtcy5mcmVlTW9kZS5zdGlja3kpe2NsZWFyVGltZW91dChuKSxuPXZvaWQgMCxjLmxlbmd0aD49MTUmJmMuc2hpZnQoKTtjb25zdCBzPWMubGVuZ3RoP2NbYy5sZW5ndGgtMV06dm9pZCAwLGE9Y1swXTtpZihjLnB1c2godCkscyYmKHQuZGVsdGE+cy5kZWx0YXx8dC5kaXJlY3Rpb24hPT1zLmRpcmVjdGlvbikpYy5zcGxpY2UoMCk7ZWxzZSBpZihjLmxlbmd0aD49MTUmJnQudGltZS1hLnRpbWU8NTAwJiZhLmRlbHRhLXQuZGVsdGE+PTEmJnQuZGVsdGE8PTYpe2NvbnN0IHM9aD4wPy44Oi4yO2w9dCxjLnNwbGljZSgwKSxuPXAoKCgpPT57ZS5zbGlkZVRvQ2xvc2VzdChlLnBhcmFtcy5zcGVlZCwhMCx2b2lkIDAscyl9KSwwKX1ufHwobj1wKCgoKT0+e2w9dCxjLnNwbGljZSgwKSxlLnNsaWRlVG9DbG9zZXN0KGUucGFyYW1zLnNwZWVkLCEwLHZvaWQgMCwuNSl9KSw1MDApKX1pZihpfHxhKCJzY3JvbGwiLHMpLGUucGFyYW1zLmF1dG9wbGF5JiZlLnBhcmFtcy5hdXRvcGxheURpc2FibGVPbkludGVyYWN0aW9uJiZlLmF1dG9wbGF5LnN0b3AoKSxvPT09ZS5taW5UcmFuc2xhdGUoKXx8bz09PWUubWF4VHJhbnNsYXRlKCkpcmV0dXJuITB9fWVsc2V7Y29uc3Qgcz17dGltZTp1KCksZGVsdGE6TWF0aC5hYnMoaCksZGlyZWN0aW9uOk1hdGguc2lnbihoKSxyYXc6dH07Yy5sZW5ndGg+PTImJmMuc2hpZnQoKTtjb25zdCBhPWMubGVuZ3RoP2NbYy5sZW5ndGgtMV06dm9pZCAwO2lmKGMucHVzaChzKSxhPyhzLmRpcmVjdGlvbiE9PWEuZGlyZWN0aW9ufHxzLmRlbHRhPmEuZGVsdGF8fHMudGltZT5hLnRpbWUrMTUwKSYmZihzKTpmKHMpLGZ1bmN0aW9uKHQpe2NvbnN0IHM9ZS5wYXJhbXMubW91c2V3aGVlbDtpZih0LmRpcmVjdGlvbjwwKXtpZihlLmlzRW5kJiYhZS5wYXJhbXMubG9vcCYmcy5yZWxlYXNlT25FZGdlcylyZXR1cm4hMH1lbHNlIGlmKGUuaXNCZWdpbm5pbmcmJiFlLnBhcmFtcy5sb29wJiZzLnJlbGVhc2VPbkVkZ2VzKXJldHVybiEwO3JldHVybiExfShzKSlyZXR1cm4hMH1yZXR1cm4gcy5wcmV2ZW50RGVmYXVsdD9zLnByZXZlbnREZWZhdWx0KCk6cy5yZXR1cm5WYWx1ZT0hMSwhMX1mdW5jdGlvbiB2KHQpe2xldCBzPWUuJGVsOyJjb250YWluZXIiIT09ZS5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQmJihzPWQoZS5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQpKSxzW3RdKCJtb3VzZWVudGVyIixoKSxzW3RdKCJtb3VzZWxlYXZlIixtKSxzW3RdKCJ3aGVlbCIsZyl9ZnVuY3Rpb24gdygpe3JldHVybiBlLnBhcmFtcy5jc3NNb2RlPyhlLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsZyksITApOiFlLm1vdXNld2hlZWwuZW5hYmxlZCYmKHYoIm9uIiksZS5tb3VzZXdoZWVsLmVuYWJsZWQ9ITAsITApfWZ1bmN0aW9uIGIoKXtyZXR1cm4gZS5wYXJhbXMuY3NzTW9kZT8oZS53cmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCxnKSwhMCk6ISFlLm1vdXNld2hlZWwuZW5hYmxlZCYmKHYoIm9mZiIpLGUubW91c2V3aGVlbC5lbmFibGVkPSExLCEwKX1zKCJpbml0IiwoKCk9PnshZS5wYXJhbXMubW91c2V3aGVlbC5lbmFibGVkJiZlLnBhcmFtcy5jc3NNb2RlJiZiKCksZS5wYXJhbXMubW91c2V3aGVlbC5lbmFibGVkJiZ3KCl9KSkscygiZGVzdHJveSIsKCgpPT57ZS5wYXJhbXMuY3NzTW9kZSYmdygpLGUubW91c2V3aGVlbC5lbmFibGVkJiZiKCl9KSksT2JqZWN0LmFzc2lnbihlLm1vdXNld2hlZWwse2VuYWJsZTp3LGRpc2FibGU6Yn0pfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsb246cyxlbWl0OmF9KXtmdW5jdGlvbiBpKHQpe2xldCBzO3JldHVybiB0JiYocz1kKHQpLGUucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzJiYic3RyaW5nIj09dHlwZW9mIHQmJnMubGVuZ3RoPjEmJjE9PT1lLiRlbC5maW5kKHQpLmxlbmd0aCYmKHM9ZS4kZWwuZmluZCh0KSkpLHN9ZnVuY3Rpb24gcih0LHMpe2NvbnN0IGE9ZS5wYXJhbXMubmF2aWdhdGlvbjt0JiZ0Lmxlbmd0aD4wJiYodFtzPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0oYS5kaXNhYmxlZENsYXNzKSx0WzBdJiYiQlVUVE9OIj09PXRbMF0udGFnTmFtZSYmKHRbMF0uZGlzYWJsZWQ9cyksZS5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmZS5lbmFibGVkJiZ0W2UuaXNMb2NrZWQ/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXShhLmxvY2tDbGFzcykpfWZ1bmN0aW9uIG4oKXtpZihlLnBhcmFtcy5sb29wKXJldHVybjtjb25zdHskbmV4dEVsOnQsJHByZXZFbDpzfT1lLm5hdmlnYXRpb247cihzLGUuaXNCZWdpbm5pbmcpLHIodCxlLmlzRW5kKX1mdW5jdGlvbiBsKHQpe3QucHJldmVudERlZmF1bHQoKSxlLmlzQmVnaW5uaW5nJiYhZS5wYXJhbXMubG9vcHx8ZS5zbGlkZVByZXYoKX1mdW5jdGlvbiBvKHQpe3QucHJldmVudERlZmF1bHQoKSxlLmlzRW5kJiYhZS5wYXJhbXMubG9vcHx8ZS5zbGlkZU5leHQoKX1mdW5jdGlvbiBjKCl7Y29uc3QgdD1lLnBhcmFtcy5uYXZpZ2F0aW9uO2lmKGUucGFyYW1zLm5hdmlnYXRpb249WShlLGUub3JpZ2luYWxQYXJhbXMubmF2aWdhdGlvbixlLnBhcmFtcy5uYXZpZ2F0aW9uLHtuZXh0RWw6InN3aXBlci1idXR0b24tbmV4dCIscHJldkVsOiJzd2lwZXItYnV0dG9uLXByZXYifSksIXQubmV4dEVsJiYhdC5wcmV2RWwpcmV0dXJuO2NvbnN0IHM9aSh0Lm5leHRFbCksYT1pKHQucHJldkVsKTtzJiZzLmxlbmd0aD4wJiZzLm9uKCJjbGljayIsbyksYSYmYS5sZW5ndGg+MCYmYS5vbigiY2xpY2siLGwpLE9iamVjdC5hc3NpZ24oZS5uYXZpZ2F0aW9uLHskbmV4dEVsOnMsbmV4dEVsOnMmJnNbMF0sJHByZXZFbDphLHByZXZFbDphJiZhWzBdfSksZS5lbmFibGVkfHwocyYmcy5hZGRDbGFzcyh0LmxvY2tDbGFzcyksYSYmYS5hZGRDbGFzcyh0LmxvY2tDbGFzcykpfWZ1bmN0aW9uIHAoKXtjb25zdHskbmV4dEVsOnQsJHByZXZFbDpzfT1lLm5hdmlnYXRpb247dCYmdC5sZW5ndGgmJih0Lm9mZigiY2xpY2siLG8pLHQucmVtb3ZlQ2xhc3MoZS5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzKSkscyYmcy5sZW5ndGgmJihzLm9mZigiY2xpY2siLGwpLHMucmVtb3ZlQ2xhc3MoZS5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzKSl9dCh7bmF2aWdhdGlvbjp7bmV4dEVsOm51bGwscHJldkVsOm51bGwsaGlkZU9uQ2xpY2s6ITEsZGlzYWJsZWRDbGFzczoic3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCIsaGlkZGVuQ2xhc3M6InN3aXBlci1idXR0b24taGlkZGVuIixsb2NrQ2xhc3M6InN3aXBlci1idXR0b24tbG9jayJ9fSksZS5uYXZpZ2F0aW9uPXtuZXh0RWw6bnVsbCwkbmV4dEVsOm51bGwscHJldkVsOm51bGwsJHByZXZFbDpudWxsfSxzKCJpbml0IiwoKCk9PntjKCksbigpfSkpLHMoInRvRWRnZSBmcm9tRWRnZSBsb2NrIHVubG9jayIsKCgpPT57bigpfSkpLHMoImRlc3Ryb3kiLCgoKT0+e3AoKX0pKSxzKCJlbmFibGUgZGlzYWJsZSIsKCgpPT57Y29uc3R7JG5leHRFbDp0LCRwcmV2RWw6c309ZS5uYXZpZ2F0aW9uO3QmJnRbZS5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0oZS5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpLHMmJnNbZS5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0oZS5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpfSkpLHMoImNsaWNrIiwoKHQscyk9Pntjb25zdHskbmV4dEVsOmksJHByZXZFbDpyfT1lLm5hdmlnYXRpb24sbj1zLnRhcmdldDtpZihlLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGVPbkNsaWNrJiYhZChuKS5pcyhyKSYmIWQobikuaXMoaSkpe2lmKGUucGFnaW5hdGlvbiYmZS5wYXJhbXMucGFnaW5hdGlvbiYmZS5wYXJhbXMucGFnaW5hdGlvbi5jbGlja2FibGUmJihlLnBhZ2luYXRpb24uZWw9PT1ufHxlLnBhZ2luYXRpb24uZWwuY29udGFpbnMobikpKXJldHVybjtsZXQgdDtpP3Q9aS5oYXNDbGFzcyhlLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGRlbkNsYXNzKTpyJiYodD1yLmhhc0NsYXNzKGUucGFyYW1zLm5hdmlnYXRpb24uaGlkZGVuQ2xhc3MpKSxhKCEwPT09dD8ibmF2aWdhdGlvblNob3ciOiJuYXZpZ2F0aW9uSGlkZSIpLGkmJmkudG9nZ2xlQ2xhc3MoZS5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcyksciYmci50b2dnbGVDbGFzcyhlLnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGRlbkNsYXNzKX19KSksT2JqZWN0LmFzc2lnbihlLm5hdmlnYXRpb24se3VwZGF0ZTpuLGluaXQ6YyxkZXN0cm95OnB9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnMsZW1pdDphfSl7Y29uc3QgaT0ic3dpcGVyLXBhZ2luYXRpb24iO2xldCByO3Qoe3BhZ2luYXRpb246e2VsOm51bGwsYnVsbGV0RWxlbWVudDoic3BhbiIsY2xpY2thYmxlOiExLGhpZGVPbkNsaWNrOiExLHJlbmRlckJ1bGxldDpudWxsLHJlbmRlclByb2dyZXNzYmFyOm51bGwscmVuZGVyRnJhY3Rpb246bnVsbCxyZW5kZXJDdXN0b206bnVsbCxwcm9ncmVzc2Jhck9wcG9zaXRlOiExLHR5cGU6ImJ1bGxldHMiLGR5bmFtaWNCdWxsZXRzOiExLGR5bmFtaWNNYWluQnVsbGV0czoxLGZvcm1hdEZyYWN0aW9uQ3VycmVudDplPT5lLGZvcm1hdEZyYWN0aW9uVG90YWw6ZT0+ZSxidWxsZXRDbGFzczpgJHtpfS1idWxsZXRgLGJ1bGxldEFjdGl2ZUNsYXNzOmAke2l9LWJ1bGxldC1hY3RpdmVgLG1vZGlmaWVyQ2xhc3M6YCR7aX0tYCxjdXJyZW50Q2xhc3M6YCR7aX0tY3VycmVudGAsdG90YWxDbGFzczpgJHtpfS10b3RhbGAsaGlkZGVuQ2xhc3M6YCR7aX0taGlkZGVuYCxwcm9ncmVzc2JhckZpbGxDbGFzczpgJHtpfS1wcm9ncmVzc2Jhci1maWxsYCxwcm9ncmVzc2Jhck9wcG9zaXRlQ2xhc3M6YCR7aX0tcHJvZ3Jlc3NiYXItb3Bwb3NpdGVgLGNsaWNrYWJsZUNsYXNzOmAke2l9LWNsaWNrYWJsZWAsbG9ja0NsYXNzOmAke2l9LWxvY2tgLGhvcml6b250YWxDbGFzczpgJHtpfS1ob3Jpem9udGFsYCx2ZXJ0aWNhbENsYXNzOmAke2l9LXZlcnRpY2FsYH19KSxlLnBhZ2luYXRpb249e2VsOm51bGwsJGVsOm51bGwsYnVsbGV0czpbXX07bGV0IG49MDtmdW5jdGlvbiBsKCl7cmV0dXJuIWUucGFyYW1zLnBhZ2luYXRpb24uZWx8fCFlLnBhZ2luYXRpb24uZWx8fCFlLnBhZ2luYXRpb24uJGVsfHwwPT09ZS5wYWdpbmF0aW9uLiRlbC5sZW5ndGh9ZnVuY3Rpb24gbyh0LHMpe2NvbnN0e2J1bGxldEFjdGl2ZUNsYXNzOmF9PWUucGFyYW1zLnBhZ2luYXRpb247dFtzXSgpLmFkZENsYXNzKGAke2F9LSR7c31gKVtzXSgpLmFkZENsYXNzKGAke2F9LSR7c30tJHtzfWApfWZ1bmN0aW9uIGMoKXtjb25zdCB0PWUucnRsLHM9ZS5wYXJhbXMucGFnaW5hdGlvbjtpZihsKCkpcmV0dXJuO2NvbnN0IGk9ZS52aXJ0dWFsJiZlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ/ZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGg6ZS5zbGlkZXMubGVuZ3RoLGM9ZS5wYWdpbmF0aW9uLiRlbDtsZXQgcDtjb25zdCB1PWUucGFyYW1zLmxvb3A/TWF0aC5jZWlsKChpLTIqZS5sb29wZWRTbGlkZXMpL2UucGFyYW1zLnNsaWRlc1Blckdyb3VwKTplLnNuYXBHcmlkLmxlbmd0aDtpZihlLnBhcmFtcy5sb29wPyhwPU1hdGguY2VpbCgoZS5hY3RpdmVJbmRleC1lLmxvb3BlZFNsaWRlcykvZS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApLHA+aS0xLTIqZS5sb29wZWRTbGlkZXMmJihwLT1pLTIqZS5sb29wZWRTbGlkZXMpLHA+dS0xJiYocC09dSkscDwwJiYiYnVsbGV0cyIhPT1lLnBhcmFtcy5wYWdpbmF0aW9uVHlwZSYmKHA9dStwKSk6cD12b2lkIDAhPT1lLnNuYXBJbmRleD9lLnNuYXBJbmRleDplLmFjdGl2ZUluZGV4fHwwLCJidWxsZXRzIj09PXMudHlwZSYmZS5wYWdpbmF0aW9uLmJ1bGxldHMmJmUucGFnaW5hdGlvbi5idWxsZXRzLmxlbmd0aD4wKXtjb25zdCBhPWUucGFnaW5hdGlvbi5idWxsZXRzO2xldCBpLGwsdTtpZihzLmR5bmFtaWNCdWxsZXRzJiYocj1hLmVxKDApW2UuaXNIb3Jpem9udGFsKCk/Im91dGVyV2lkdGgiOiJvdXRlckhlaWdodCJdKCEwKSxjLmNzcyhlLmlzSG9yaXpvbnRhbCgpPyJ3aWR0aCI6ImhlaWdodCIscioocy5keW5hbWljTWFpbkJ1bGxldHMrNCkrInB4Iikscy5keW5hbWljTWFpbkJ1bGxldHM+MSYmdm9pZCAwIT09ZS5wcmV2aW91c0luZGV4JiYobis9cC1lLnByZXZpb3VzSW5kZXgsbj5zLmR5bmFtaWNNYWluQnVsbGV0cy0xP249cy5keW5hbWljTWFpbkJ1bGxldHMtMTpuPDAmJihuPTApKSxpPXAtbixsPWkrKE1hdGgubWluKGEubGVuZ3RoLHMuZHluYW1pY01haW5CdWxsZXRzKS0xKSx1PShsK2kpLzIpLGEucmVtb3ZlQ2xhc3MoWyIiLCItbmV4dCIsIi1uZXh0LW5leHQiLCItcHJldiIsIi1wcmV2LXByZXYiLCItbWFpbiJdLm1hcCgoZT0+YCR7cy5idWxsZXRBY3RpdmVDbGFzc30ke2V9YCkpLmpvaW4oIiAiKSksYy5sZW5ndGg+MSlhLmVhY2goKGU9Pntjb25zdCB0PWQoZSksYT10LmluZGV4KCk7YT09PXAmJnQuYWRkQ2xhc3Mocy5idWxsZXRBY3RpdmVDbGFzcykscy5keW5hbWljQnVsbGV0cyYmKGE+PWkmJmE8PWwmJnQuYWRkQ2xhc3MoYCR7cy5idWxsZXRBY3RpdmVDbGFzc30tbWFpbmApLGE9PT1pJiZvKHQsInByZXYiKSxhPT09bCYmbyh0LCJuZXh0IikpfSkpO2Vsc2V7Y29uc3QgdD1hLmVxKHApLHI9dC5pbmRleCgpO2lmKHQuYWRkQ2xhc3Mocy5idWxsZXRBY3RpdmVDbGFzcykscy5keW5hbWljQnVsbGV0cyl7Y29uc3QgdD1hLmVxKGkpLG49YS5lcShsKTtmb3IobGV0IGU9aTtlPD1sO2UrPTEpYS5lcShlKS5hZGRDbGFzcyhgJHtzLmJ1bGxldEFjdGl2ZUNsYXNzfS1tYWluYCk7aWYoZS5wYXJhbXMubG9vcClpZihyPj1hLmxlbmd0aC1zLmR5bmFtaWNNYWluQnVsbGV0cyl7Zm9yKGxldCBlPXMuZHluYW1pY01haW5CdWxsZXRzO2U+PTA7ZS09MSlhLmVxKGEubGVuZ3RoLWUpLmFkZENsYXNzKGAke3MuYnVsbGV0QWN0aXZlQ2xhc3N9LW1haW5gKTthLmVxKGEubGVuZ3RoLXMuZHluYW1pY01haW5CdWxsZXRzLTEpLmFkZENsYXNzKGAke3MuYnVsbGV0QWN0aXZlQ2xhc3N9LXByZXZgKX1lbHNlIG8odCwicHJldiIpLG8obiwibmV4dCIpO2Vsc2Ugbyh0LCJwcmV2IiksbyhuLCJuZXh0Iil9fWlmKHMuZHluYW1pY0J1bGxldHMpe2NvbnN0IGk9TWF0aC5taW4oYS5sZW5ndGgscy5keW5hbWljTWFpbkJ1bGxldHMrNCksbj0ocippLXIpLzItdSpyLGw9dD8icmlnaHQiOiJsZWZ0IjthLmNzcyhlLmlzSG9yaXpvbnRhbCgpP2w6InRvcCIsYCR7bn1weGApfX1pZigiZnJhY3Rpb24iPT09cy50eXBlJiYoYy5maW5kKFcocy5jdXJyZW50Q2xhc3MpKS50ZXh0KHMuZm9ybWF0RnJhY3Rpb25DdXJyZW50KHArMSkpLGMuZmluZChXKHMudG90YWxDbGFzcykpLnRleHQocy5mb3JtYXRGcmFjdGlvblRvdGFsKHUpKSksInByb2dyZXNzYmFyIj09PXMudHlwZSl7bGV0IHQ7dD1zLnByb2dyZXNzYmFyT3Bwb3NpdGU/ZS5pc0hvcml6b250YWwoKT8idmVydGljYWwiOiJob3Jpem9udGFsIjplLmlzSG9yaXpvbnRhbCgpPyJob3Jpem9udGFsIjoidmVydGljYWwiO2NvbnN0IGE9KHArMSkvdTtsZXQgaT0xLHI9MTsiaG9yaXpvbnRhbCI9PT10P2k9YTpyPWEsYy5maW5kKFcocy5wcm9ncmVzc2JhckZpbGxDbGFzcykpLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlWCgke2l9KSBzY2FsZVkoJHtyfSlgKS50cmFuc2l0aW9uKGUucGFyYW1zLnNwZWVkKX0iY3VzdG9tIj09PXMudHlwZSYmcy5yZW5kZXJDdXN0b20/KGMuaHRtbChzLnJlbmRlckN1c3RvbShlLHArMSx1KSksYSgicGFnaW5hdGlvblJlbmRlciIsY1swXSkpOmEoInBhZ2luYXRpb25VcGRhdGUiLGNbMF0pLGUucGFyYW1zLndhdGNoT3ZlcmZsb3cmJmUuZW5hYmxlZCYmY1tlLmlzTG9ja2VkPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0ocy5sb2NrQ2xhc3MpfWZ1bmN0aW9uIHAoKXtjb25zdCB0PWUucGFyYW1zLnBhZ2luYXRpb247aWYobCgpKXJldHVybjtjb25zdCBzPWUudmlydHVhbCYmZS5wYXJhbXMudmlydHVhbC5lbmFibGVkP2UudmlydHVhbC5zbGlkZXMubGVuZ3RoOmUuc2xpZGVzLmxlbmd0aCxpPWUucGFnaW5hdGlvbi4kZWw7bGV0IHI9IiI7aWYoImJ1bGxldHMiPT09dC50eXBlKXtsZXQgYT1lLnBhcmFtcy5sb29wP01hdGguY2VpbCgocy0yKmUubG9vcGVkU2xpZGVzKS9lLnBhcmFtcy5zbGlkZXNQZXJHcm91cCk6ZS5zbmFwR3JpZC5sZW5ndGg7ZS5wYXJhbXMuZnJlZU1vZGUmJmUucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQmJiFlLnBhcmFtcy5sb29wJiZhPnMmJihhPXMpO2ZvcihsZXQgcz0wO3M8YTtzKz0xKXQucmVuZGVyQnVsbGV0P3IrPXQucmVuZGVyQnVsbGV0LmNhbGwoZSxzLHQuYnVsbGV0Q2xhc3MpOnIrPWA8JHt0LmJ1bGxldEVsZW1lbnR9IGNsYXNzPSIke3QuYnVsbGV0Q2xhc3N9Ij48LyR7dC5idWxsZXRFbGVtZW50fT5gO2kuaHRtbChyKSxlLnBhZ2luYXRpb24uYnVsbGV0cz1pLmZpbmQoVyh0LmJ1bGxldENsYXNzKSl9ImZyYWN0aW9uIj09PXQudHlwZSYmKHI9dC5yZW5kZXJGcmFjdGlvbj90LnJlbmRlckZyYWN0aW9uLmNhbGwoZSx0LmN1cnJlbnRDbGFzcyx0LnRvdGFsQ2xhc3MpOmA8c3BhbiBjbGFzcz0iJHt0LmN1cnJlbnRDbGFzc30iPjwvc3Bhbj4gLyA8c3BhbiBjbGFzcz0iJHt0LnRvdGFsQ2xhc3N9Ij48L3NwYW4+YCxpLmh0bWwocikpLCJwcm9ncmVzc2JhciI9PT10LnR5cGUmJihyPXQucmVuZGVyUHJvZ3Jlc3NiYXI/dC5yZW5kZXJQcm9ncmVzc2Jhci5jYWxsKGUsdC5wcm9ncmVzc2JhckZpbGxDbGFzcyk6YDxzcGFuIGNsYXNzPSIke3QucHJvZ3Jlc3NiYXJGaWxsQ2xhc3N9Ij48L3NwYW4+YCxpLmh0bWwocikpLCJjdXN0b20iIT09dC50eXBlJiZhKCJwYWdpbmF0aW9uUmVuZGVyIixlLnBhZ2luYXRpb24uJGVsWzBdKX1mdW5jdGlvbiB1KCl7ZS5wYXJhbXMucGFnaW5hdGlvbj1ZKGUsZS5vcmlnaW5hbFBhcmFtcy5wYWdpbmF0aW9uLGUucGFyYW1zLnBhZ2luYXRpb24se2VsOiJzd2lwZXItcGFnaW5hdGlvbiJ9KTtjb25zdCB0PWUucGFyYW1zLnBhZ2luYXRpb247aWYoIXQuZWwpcmV0dXJuO2xldCBzPWQodC5lbCk7MCE9PXMubGVuZ3RoJiYoZS5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMmJiJzdHJpbmciPT10eXBlb2YgdC5lbCYmcy5sZW5ndGg+MSYmKHM9ZS4kZWwuZmluZCh0LmVsKSxzLmxlbmd0aD4xJiYocz1zLmZpbHRlcigodD0+ZCh0KS5wYXJlbnRzKCIuc3dpcGVyIilbMF09PT1lLmVsKSkpKSwiYnVsbGV0cyI9PT10LnR5cGUmJnQuY2xpY2thYmxlJiZzLmFkZENsYXNzKHQuY2xpY2thYmxlQ2xhc3MpLHMuYWRkQ2xhc3ModC5tb2RpZmllckNsYXNzK3QudHlwZSkscy5hZGRDbGFzcyh0Lm1vZGlmaWVyQ2xhc3MrZS5wYXJhbXMuZGlyZWN0aW9uKSwiYnVsbGV0cyI9PT10LnR5cGUmJnQuZHluYW1pY0J1bGxldHMmJihzLmFkZENsYXNzKGAke3QubW9kaWZpZXJDbGFzc30ke3QudHlwZX0tZHluYW1pY2ApLG49MCx0LmR5bmFtaWNNYWluQnVsbGV0czwxJiYodC5keW5hbWljTWFpbkJ1bGxldHM9MSkpLCJwcm9ncmVzc2JhciI9PT10LnR5cGUmJnQucHJvZ3Jlc3NiYXJPcHBvc2l0ZSYmcy5hZGRDbGFzcyh0LnByb2dyZXNzYmFyT3Bwb3NpdGVDbGFzcyksdC5jbGlja2FibGUmJnMub24oImNsaWNrIixXKHQuYnVsbGV0Q2xhc3MpLChmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHM9ZCh0aGlzKS5pbmRleCgpKmUucGFyYW1zLnNsaWRlc1Blckdyb3VwO2UucGFyYW1zLmxvb3AmJihzKz1lLmxvb3BlZFNsaWRlcyksZS5zbGlkZVRvKHMpfSkpLE9iamVjdC5hc3NpZ24oZS5wYWdpbmF0aW9uLHskZWw6cyxlbDpzWzBdfSksZS5lbmFibGVkfHxzLmFkZENsYXNzKHQubG9ja0NsYXNzKSl9ZnVuY3Rpb24gaCgpe2NvbnN0IHQ9ZS5wYXJhbXMucGFnaW5hdGlvbjtpZihsKCkpcmV0dXJuO2NvbnN0IHM9ZS5wYWdpbmF0aW9uLiRlbDtzLnJlbW92ZUNsYXNzKHQuaGlkZGVuQ2xhc3MpLHMucmVtb3ZlQ2xhc3ModC5tb2RpZmllckNsYXNzK3QudHlwZSkscy5yZW1vdmVDbGFzcyh0Lm1vZGlmaWVyQ2xhc3MrZS5wYXJhbXMuZGlyZWN0aW9uKSxlLnBhZ2luYXRpb24uYnVsbGV0cyYmZS5wYWdpbmF0aW9uLmJ1bGxldHMucmVtb3ZlQ2xhc3MmJmUucGFnaW5hdGlvbi5idWxsZXRzLnJlbW92ZUNsYXNzKHQuYnVsbGV0QWN0aXZlQ2xhc3MpLHQuY2xpY2thYmxlJiZzLm9mZigiY2xpY2siLFcodC5idWxsZXRDbGFzcykpfXMoImluaXQiLCgoKT0+e3UoKSxwKCksYygpfSkpLHMoImFjdGl2ZUluZGV4Q2hhbmdlIiwoKCk9PnsoZS5wYXJhbXMubG9vcHx8dm9pZCAwPT09ZS5zbmFwSW5kZXgpJiZjKCl9KSkscygic25hcEluZGV4Q2hhbmdlIiwoKCk9PntlLnBhcmFtcy5sb29wfHxjKCl9KSkscygic2xpZGVzTGVuZ3RoQ2hhbmdlIiwoKCk9PntlLnBhcmFtcy5sb29wJiYocCgpLGMoKSl9KSkscygic25hcEdyaWRMZW5ndGhDaGFuZ2UiLCgoKT0+e2UucGFyYW1zLmxvb3B8fChwKCksYygpKX0pKSxzKCJkZXN0cm95IiwoKCk9PntoKCl9KSkscygiZW5hYmxlIGRpc2FibGUiLCgoKT0+e2NvbnN0eyRlbDp0fT1lLnBhZ2luYXRpb247dCYmdFtlLmVuYWJsZWQ/InJlbW92ZUNsYXNzIjoiYWRkQ2xhc3MiXShlLnBhcmFtcy5wYWdpbmF0aW9uLmxvY2tDbGFzcyl9KSkscygibG9jayB1bmxvY2siLCgoKT0+e2MoKX0pKSxzKCJjbGljayIsKCh0LHMpPT57Y29uc3QgaT1zLnRhcmdldCx7JGVsOnJ9PWUucGFnaW5hdGlvbjtpZihlLnBhcmFtcy5wYWdpbmF0aW9uLmVsJiZlLnBhcmFtcy5wYWdpbmF0aW9uLmhpZGVPbkNsaWNrJiZyLmxlbmd0aD4wJiYhZChpKS5oYXNDbGFzcyhlLnBhcmFtcy5wYWdpbmF0aW9uLmJ1bGxldENsYXNzKSl7aWYoZS5uYXZpZ2F0aW9uJiYoZS5uYXZpZ2F0aW9uLm5leHRFbCYmaT09PWUubmF2aWdhdGlvbi5uZXh0RWx8fGUubmF2aWdhdGlvbi5wcmV2RWwmJmk9PT1lLm5hdmlnYXRpb24ucHJldkVsKSlyZXR1cm47Y29uc3QgdD1yLmhhc0NsYXNzKGUucGFyYW1zLnBhZ2luYXRpb24uaGlkZGVuQ2xhc3MpO2EoITA9PT10PyJwYWdpbmF0aW9uU2hvdyI6InBhZ2luYXRpb25IaWRlIiksci50b2dnbGVDbGFzcyhlLnBhcmFtcy5wYWdpbmF0aW9uLmhpZGRlbkNsYXNzKX19KSksT2JqZWN0LmFzc2lnbihlLnBhZ2luYXRpb24se3JlbmRlcjpwLHVwZGF0ZTpjLGluaXQ6dSxkZXN0cm95Omh9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnMsZW1pdDppfSl7Y29uc3Qgcj1hKCk7bGV0IG4sbCxvLGMsdT0hMSxoPW51bGwsbT1udWxsO2Z1bmN0aW9uIGYoKXtpZighZS5wYXJhbXMuc2Nyb2xsYmFyLmVsfHwhZS5zY3JvbGxiYXIuZWwpcmV0dXJuO2NvbnN0e3Njcm9sbGJhcjp0LHJ0bFRyYW5zbGF0ZTpzLHByb2dyZXNzOmF9PWUseyRkcmFnRWw6aSwkZWw6cn09dCxuPWUucGFyYW1zLnNjcm9sbGJhcjtsZXQgZD1sLGM9KG8tbCkqYTtzPyhjPS1jLGM+MD8oZD1sLWMsYz0wKTotYytsPm8mJihkPW8rYykpOmM8MD8oZD1sK2MsYz0wKTpjK2w+byYmKGQ9by1jKSxlLmlzSG9yaXpvbnRhbCgpPyhpLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtjfXB4LCAwLCAwKWApLGlbMF0uc3R5bGUud2lkdGg9YCR7ZH1weGApOihpLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoMHB4LCAke2N9cHgsIDApYCksaVswXS5zdHlsZS5oZWlnaHQ9YCR7ZH1weGApLG4uaGlkZSYmKGNsZWFyVGltZW91dChoKSxyWzBdLnN0eWxlLm9wYWNpdHk9MSxoPXNldFRpbWVvdXQoKCgpPT57clswXS5zdHlsZS5vcGFjaXR5PTAsci50cmFuc2l0aW9uKDQwMCl9KSwxZTMpKX1mdW5jdGlvbiBnKCl7aWYoIWUucGFyYW1zLnNjcm9sbGJhci5lbHx8IWUuc2Nyb2xsYmFyLmVsKXJldHVybjtjb25zdHtzY3JvbGxiYXI6dH09ZSx7JGRyYWdFbDpzLCRlbDphfT10O3NbMF0uc3R5bGUud2lkdGg9IiIsc1swXS5zdHlsZS5oZWlnaHQ9IiIsbz1lLmlzSG9yaXpvbnRhbCgpP2FbMF0ub2Zmc2V0V2lkdGg6YVswXS5vZmZzZXRIZWlnaHQsYz1lLnNpemUvKGUudmlydHVhbFNpemUrZS5wYXJhbXMuc2xpZGVzT2Zmc2V0QmVmb3JlLShlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcz9lLnNuYXBHcmlkWzBdOjApKSxsPSJhdXRvIj09PWUucGFyYW1zLnNjcm9sbGJhci5kcmFnU2l6ZT9vKmM6cGFyc2VJbnQoZS5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdTaXplLDEwKSxlLmlzSG9yaXpvbnRhbCgpP3NbMF0uc3R5bGUud2lkdGg9YCR7bH1weGA6c1swXS5zdHlsZS5oZWlnaHQ9YCR7bH1weGAsYVswXS5zdHlsZS5kaXNwbGF5PWM+PTE/Im5vbmUiOiIiLGUucGFyYW1zLnNjcm9sbGJhci5oaWRlJiYoYVswXS5zdHlsZS5vcGFjaXR5PTApLGUucGFyYW1zLndhdGNoT3ZlcmZsb3cmJmUuZW5hYmxlZCYmdC4kZWxbZS5pc0xvY2tlZD8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKGUucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIGUuaXNIb3Jpem9udGFsKCk/InRvdWNoc3RhcnQiPT09dC50eXBlfHwidG91Y2htb3ZlIj09PXQudHlwZT90LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDp0LmNsaWVudFg6InRvdWNoc3RhcnQiPT09dC50eXBlfHwidG91Y2htb3ZlIj09PXQudHlwZT90LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WTp0LmNsaWVudFl9ZnVuY3Rpb24gdyh0KXtjb25zdHtzY3JvbGxiYXI6cyxydGxUcmFuc2xhdGU6YX09ZSx7JGVsOml9PXM7bGV0IHI7cj0odih0KS1pLm9mZnNldCgpW2UuaXNIb3Jpem9udGFsKCk/ImxlZnQiOiJ0b3AiXS0obnVsbCE9PW4/bjpsLzIpKS8oby1sKSxyPU1hdGgubWF4KE1hdGgubWluKHIsMSksMCksYSYmKHI9MS1yKTtjb25zdCBkPWUubWluVHJhbnNsYXRlKCkrKGUubWF4VHJhbnNsYXRlKCktZS5taW5UcmFuc2xhdGUoKSkqcjtlLnVwZGF0ZVByb2dyZXNzKGQpLGUuc2V0VHJhbnNsYXRlKGQpLGUudXBkYXRlQWN0aXZlSW5kZXgoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKX1mdW5jdGlvbiBiKHQpe2NvbnN0IHM9ZS5wYXJhbXMuc2Nyb2xsYmFyLHtzY3JvbGxiYXI6YSwkd3JhcHBlckVsOnJ9PWUseyRlbDpsLCRkcmFnRWw6b309YTt1PSEwLG49dC50YXJnZXQ9PT1vWzBdfHx0LnRhcmdldD09PW8/dih0KS10LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtlLmlzSG9yaXpvbnRhbCgpPyJsZWZ0IjoidG9wIl06bnVsbCx0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxyLnRyYW5zaXRpb24oMTAwKSxvLnRyYW5zaXRpb24oMTAwKSx3KHQpLGNsZWFyVGltZW91dChtKSxsLnRyYW5zaXRpb24oMCkscy5oaWRlJiZsLmNzcygib3BhY2l0eSIsMSksZS5wYXJhbXMuY3NzTW9kZSYmZS4kd3JhcHBlckVsLmNzcygic2Nyb2xsLXNuYXAtdHlwZSIsIm5vbmUiKSxpKCJzY3JvbGxiYXJEcmFnU3RhcnQiLHQpfWZ1bmN0aW9uIHgodCl7Y29uc3R7c2Nyb2xsYmFyOnMsJHdyYXBwZXJFbDphfT1lLHskZWw6ciwkZHJhZ0VsOm59PXM7dSYmKHQucHJldmVudERlZmF1bHQ/dC5wcmV2ZW50RGVmYXVsdCgpOnQucmV0dXJuVmFsdWU9ITEsdyh0KSxhLnRyYW5zaXRpb24oMCksci50cmFuc2l0aW9uKDApLG4udHJhbnNpdGlvbigwKSxpKCJzY3JvbGxiYXJEcmFnTW92ZSIsdCkpfWZ1bmN0aW9uIHkodCl7Y29uc3Qgcz1lLnBhcmFtcy5zY3JvbGxiYXIse3Njcm9sbGJhcjphLCR3cmFwcGVyRWw6cn09ZSx7JGVsOm59PWE7dSYmKHU9ITEsZS5wYXJhbXMuY3NzTW9kZSYmKGUuJHdyYXBwZXJFbC5jc3MoInNjcm9sbC1zbmFwLXR5cGUiLCIiKSxyLnRyYW5zaXRpb24oIiIpKSxzLmhpZGUmJihjbGVhclRpbWVvdXQobSksbT1wKCgoKT0+e24uY3NzKCJvcGFjaXR5IiwwKSxuLnRyYW5zaXRpb24oNDAwKX0pLDFlMykpLGkoInNjcm9sbGJhckRyYWdFbmQiLHQpLHMuc25hcE9uUmVsZWFzZSYmZS5zbGlkZVRvQ2xvc2VzdCgpKX1mdW5jdGlvbiBFKHQpe2NvbnN0e3Njcm9sbGJhcjpzLHRvdWNoRXZlbnRzVG91Y2g6YSx0b3VjaEV2ZW50c0Rlc2t0b3A6aSxwYXJhbXM6bixzdXBwb3J0Omx9PWUsbz1zLiRlbFswXSxkPSEoIWwucGFzc2l2ZUxpc3RlbmVyfHwhbi5wYXNzaXZlTGlzdGVuZXJzKSYme3Bhc3NpdmU6ITEsY2FwdHVyZTohMX0sYz0hKCFsLnBhc3NpdmVMaXN0ZW5lcnx8IW4ucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiEwLGNhcHR1cmU6ITF9O2lmKCFvKXJldHVybjtjb25zdCBwPSJvbiI9PT10PyJhZGRFdmVudExpc3RlbmVyIjoicmVtb3ZlRXZlbnRMaXN0ZW5lciI7bC50b3VjaD8ob1twXShhLnN0YXJ0LGIsZCksb1twXShhLm1vdmUseCxkKSxvW3BdKGEuZW5kLHksYykpOihvW3BdKGkuc3RhcnQsYixkKSxyW3BdKGkubW92ZSx4LGQpLHJbcF0oaS5lbmQseSxjKSl9ZnVuY3Rpb24gVCgpe2NvbnN0e3Njcm9sbGJhcjp0LCRlbDpzfT1lO2UucGFyYW1zLnNjcm9sbGJhcj1ZKGUsZS5vcmlnaW5hbFBhcmFtcy5zY3JvbGxiYXIsZS5wYXJhbXMuc2Nyb2xsYmFyLHtlbDoic3dpcGVyLXNjcm9sbGJhciJ9KTtjb25zdCBhPWUucGFyYW1zLnNjcm9sbGJhcjtpZighYS5lbClyZXR1cm47bGV0IGk9ZChhLmVsKTtlLnBhcmFtcy51bmlxdWVOYXZFbGVtZW50cyYmInN0cmluZyI9PXR5cGVvZiBhLmVsJiZpLmxlbmd0aD4xJiYxPT09cy5maW5kKGEuZWwpLmxlbmd0aCYmKGk9cy5maW5kKGEuZWwpKTtsZXQgcj1pLmZpbmQoYC4ke2UucGFyYW1zLnNjcm9sbGJhci5kcmFnQ2xhc3N9YCk7MD09PXIubGVuZ3RoJiYocj1kKGA8ZGl2IGNsYXNzPSIke2UucGFyYW1zLnNjcm9sbGJhci5kcmFnQ2xhc3N9Ij48L2Rpdj5gKSxpLmFwcGVuZChyKSksT2JqZWN0LmFzc2lnbih0LHskZWw6aSxlbDppWzBdLCRkcmFnRWw6cixkcmFnRWw6clswXX0pLGEuZHJhZ2dhYmxlJiZlLnBhcmFtcy5zY3JvbGxiYXIuZWwmJkUoIm9uIiksaSYmaVtlLmVuYWJsZWQ/InJlbW92ZUNsYXNzIjoiYWRkQ2xhc3MiXShlLnBhcmFtcy5zY3JvbGxiYXIubG9ja0NsYXNzKX1mdW5jdGlvbiBDKCl7ZS5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZFKCJvZmYiKX10KHtzY3JvbGxiYXI6e2VsOm51bGwsZHJhZ1NpemU6ImF1dG8iLGhpZGU6ITEsZHJhZ2dhYmxlOiExLHNuYXBPblJlbGVhc2U6ITAsbG9ja0NsYXNzOiJzd2lwZXItc2Nyb2xsYmFyLWxvY2siLGRyYWdDbGFzczoic3dpcGVyLXNjcm9sbGJhci1kcmFnIn19KSxlLnNjcm9sbGJhcj17ZWw6bnVsbCxkcmFnRWw6bnVsbCwkZWw6bnVsbCwkZHJhZ0VsOm51bGx9LHMoImluaXQiLCgoKT0+e1QoKSxnKCksZigpfSkpLHMoInVwZGF0ZSByZXNpemUgb2JzZXJ2ZXJVcGRhdGUgbG9jayB1bmxvY2siLCgoKT0+e2coKX0pKSxzKCJzZXRUcmFuc2xhdGUiLCgoKT0+e2YoKX0pKSxzKCJzZXRUcmFuc2l0aW9uIiwoKHQscyk9PnshZnVuY3Rpb24odCl7ZS5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZlLnNjcm9sbGJhci5lbCYmZS5zY3JvbGxiYXIuJGRyYWdFbC50cmFuc2l0aW9uKHQpfShzKX0pKSxzKCJlbmFibGUgZGlzYWJsZSIsKCgpPT57Y29uc3R7JGVsOnR9PWUuc2Nyb2xsYmFyO3QmJnRbZS5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0oZS5wYXJhbXMuc2Nyb2xsYmFyLmxvY2tDbGFzcyl9KSkscygiZGVzdHJveSIsKCgpPT57QygpfSkpLE9iamVjdC5hc3NpZ24oZS5zY3JvbGxiYXIse3VwZGF0ZVNpemU6ZyxzZXRUcmFuc2xhdGU6Zixpbml0OlQsZGVzdHJveTpDfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzfSl7dCh7cGFyYWxsYXg6e2VuYWJsZWQ6ITF9fSk7Y29uc3QgYT0odCxzKT0+e2NvbnN0e3J0bDphfT1lLGk9ZCh0KSxyPWE/LTE6MSxuPWkuYXR0cigiZGF0YS1zd2lwZXItcGFyYWxsYXgiKXx8IjAiO2xldCBsPWkuYXR0cigiZGF0YS1zd2lwZXItcGFyYWxsYXgteCIpLG89aS5hdHRyKCJkYXRhLXN3aXBlci1wYXJhbGxheC15Iik7Y29uc3QgYz1pLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlIikscD1pLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LW9wYWNpdHkiKTtpZihsfHxvPyhsPWx8fCIwIixvPW98fCIwIik6ZS5pc0hvcml6b250YWwoKT8obD1uLG89IjAiKToobz1uLGw9IjAiKSxsPWwuaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KGwsMTApKnMqcisiJSI6bCpzKnIrInB4IixvPW8uaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KG8sMTApKnMrIiUiOm8qcysicHgiLG51bGwhPXApe2NvbnN0IGU9cC0ocC0xKSooMS1NYXRoLmFicyhzKSk7aVswXS5zdHlsZS5vcGFjaXR5PWV9aWYobnVsbD09YylpLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtsfSwgJHtvfSwgMHB4KWApO2Vsc2V7Y29uc3QgZT1jLShjLTEpKigxLU1hdGguYWJzKHMpKTtpLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHtsfSwgJHtvfSwgMHB4KSBzY2FsZSgke2V9KWApfX0saT0oKT0+e2NvbnN0eyRlbDp0LHNsaWRlczpzLHByb2dyZXNzOmksc25hcEdyaWQ6cn09ZTt0LmNoaWxkcmVuKCJbZGF0YS1zd2lwZXItcGFyYWxsYXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC15XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LW9wYWNpdHldLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgtc2NhbGVdIikuZWFjaCgoZT0+e2EoZSxpKX0pKSxzLmVhY2goKCh0LHMpPT57bGV0IG49dC5wcm9ncmVzcztlLnBhcmFtcy5zbGlkZXNQZXJHcm91cD4xJiYiYXV0byIhPT1lLnBhcmFtcy5zbGlkZXNQZXJWaWV3JiYobis9TWF0aC5jZWlsKHMvMiktaSooci5sZW5ndGgtMSkpLG49TWF0aC5taW4oTWF0aC5tYXgobiwtMSksMSksZCh0KS5maW5kKCJbZGF0YS1zd2lwZXItcGFyYWxsYXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC15XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LW9wYWNpdHldLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgtc2NhbGVdIikuZWFjaCgoZT0+e2EoZSxuKX0pKX0pKX07cygiYmVmb3JlSW5pdCIsKCgpPT57ZS5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCYmKGUucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsZS5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzPSEwKX0pKSxzKCJpbml0IiwoKCk9PntlLnBhcmFtcy5wYXJhbGxheC5lbmFibGVkJiZpKCl9KSkscygic2V0VHJhbnNsYXRlIiwoKCk9PntlLnBhcmFtcy5wYXJhbGxheC5lbmFibGVkJiZpKCl9KSkscygic2V0VHJhbnNpdGlvbiIsKCh0LHMpPT57ZS5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCYmKCh0PWUucGFyYW1zLnNwZWVkKT0+e2NvbnN0eyRlbDpzfT1lO3MuZmluZCgiW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlXSIpLmVhY2goKGU9Pntjb25zdCBzPWQoZSk7bGV0IGE9cGFyc2VJbnQocy5hdHRyKCJkYXRhLXN3aXBlci1wYXJhbGxheC1kdXJhdGlvbiIpLDEwKXx8dDswPT09dCYmKGE9MCkscy50cmFuc2l0aW9uKGEpfSkpfSkocyl9KSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzLGVtaXQ6YX0pe2NvbnN0IGk9cigpO3Qoe3pvb206e2VuYWJsZWQ6ITEsbWF4UmF0aW86MyxtaW5SYXRpbzoxLHRvZ2dsZTohMCxjb250YWluZXJDbGFzczoic3dpcGVyLXpvb20tY29udGFpbmVyIix6b29tZWRTbGlkZUNsYXNzOiJzd2lwZXItc2xpZGUtem9vbWVkIn19KSxlLnpvb209e2VuYWJsZWQ6ITF9O2xldCBuLGwsbyxjPTEscD0hMTtjb25zdCB1PXskc2xpZGVFbDp2b2lkIDAsc2xpZGVXaWR0aDp2b2lkIDAsc2xpZGVIZWlnaHQ6dm9pZCAwLCRpbWFnZUVsOnZvaWQgMCwkaW1hZ2VXcmFwRWw6dm9pZCAwLG1heFJhdGlvOjN9LG09e2lzVG91Y2hlZDp2b2lkIDAsaXNNb3ZlZDp2b2lkIDAsY3VycmVudFg6dm9pZCAwLGN1cnJlbnRZOnZvaWQgMCxtaW5YOnZvaWQgMCxtaW5ZOnZvaWQgMCxtYXhYOnZvaWQgMCxtYXhZOnZvaWQgMCx3aWR0aDp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxzdGFydFg6dm9pZCAwLHN0YXJ0WTp2b2lkIDAsdG91Y2hlc1N0YXJ0Ont9LHRvdWNoZXNDdXJyZW50Ont9fSxmPXt4OnZvaWQgMCx5OnZvaWQgMCxwcmV2UG9zaXRpb25YOnZvaWQgMCxwcmV2UG9zaXRpb25ZOnZvaWQgMCxwcmV2VGltZTp2b2lkIDB9O2xldCBnPTE7ZnVuY3Rpb24gdihlKXtpZihlLnRhcmdldFRvdWNoZXMubGVuZ3RoPDIpcmV0dXJuIDE7Y29uc3QgdD1lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVgscz1lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVksYT1lLnRhcmdldFRvdWNoZXNbMV0ucGFnZVgsaT1lLnRhcmdldFRvdWNoZXNbMV0ucGFnZVk7cmV0dXJuIE1hdGguc3FydCgoYS10KSoqMisoaS1zKSoqMil9ZnVuY3Rpb24gdyh0KXtjb25zdCBzPWUuc3VwcG9ydCxhPWUucGFyYW1zLnpvb207aWYobD0hMSxvPSExLCFzLmdlc3R1cmVzKXtpZigidG91Y2hzdGFydCIhPT10LnR5cGV8fCJ0b3VjaHN0YXJ0Ij09PXQudHlwZSYmdC50YXJnZXRUb3VjaGVzLmxlbmd0aDwyKXJldHVybjtsPSEwLHUuc2NhbGVTdGFydD12KHQpfXUuJHNsaWRlRWwmJnUuJHNsaWRlRWwubGVuZ3RofHwodS4kc2xpZGVFbD1kKHQudGFyZ2V0KS5jbG9zZXN0KGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfWApLDA9PT11LiRzbGlkZUVsLmxlbmd0aCYmKHUuJHNsaWRlRWw9ZS5zbGlkZXMuZXEoZS5hY3RpdmVJbmRleCkpLHUuJGltYWdlRWw9dS4kc2xpZGVFbC5maW5kKGAuJHthLmNvbnRhaW5lckNsYXNzfWApLmVxKDApLmZpbmQoInBpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQiKS5lcSgwKSx1LiRpbWFnZVdyYXBFbD11LiRpbWFnZUVsLnBhcmVudChgLiR7YS5jb250YWluZXJDbGFzc31gKSx1Lm1heFJhdGlvPXUuJGltYWdlV3JhcEVsLmF0dHIoImRhdGEtc3dpcGVyLXpvb20iKXx8YS5tYXhSYXRpbywwIT09dS4kaW1hZ2VXcmFwRWwubGVuZ3RoKT8odS4kaW1hZ2VFbCYmdS4kaW1hZ2VFbC50cmFuc2l0aW9uKDApLHA9ITApOnUuJGltYWdlRWw9dm9pZCAwfWZ1bmN0aW9uIGIodCl7Y29uc3Qgcz1lLnN1cHBvcnQsYT1lLnBhcmFtcy56b29tLGk9ZS56b29tO2lmKCFzLmdlc3R1cmVzKXtpZigidG91Y2htb3ZlIiE9PXQudHlwZXx8InRvdWNobW92ZSI9PT10LnR5cGUmJnQudGFyZ2V0VG91Y2hlcy5sZW5ndGg8MilyZXR1cm47bz0hMCx1LnNjYWxlTW92ZT12KHQpfXUuJGltYWdlRWwmJjAhPT11LiRpbWFnZUVsLmxlbmd0aD8ocy5nZXN0dXJlcz9pLnNjYWxlPXQuc2NhbGUqYzppLnNjYWxlPXUuc2NhbGVNb3ZlL3Uuc2NhbGVTdGFydCpjLGkuc2NhbGU+dS5tYXhSYXRpbyYmKGkuc2NhbGU9dS5tYXhSYXRpby0xKyhpLnNjYWxlLXUubWF4UmF0aW8rMSkqKi41KSxpLnNjYWxlPGEubWluUmF0aW8mJihpLnNjYWxlPWEubWluUmF0aW8rMS0oYS5taW5SYXRpby1pLnNjYWxlKzEpKiouNSksdS4kaW1hZ2VFbC50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgke2kuc2NhbGV9KWApKToiZ2VzdHVyZWNoYW5nZSI9PT10LnR5cGUmJncodCl9ZnVuY3Rpb24geCh0KXtjb25zdCBzPWUuZGV2aWNlLGE9ZS5zdXBwb3J0LGk9ZS5wYXJhbXMuem9vbSxyPWUuem9vbTtpZighYS5nZXN0dXJlcyl7aWYoIWx8fCFvKXJldHVybjtpZigidG91Y2hlbmQiIT09dC50eXBlfHwidG91Y2hlbmQiPT09dC50eXBlJiZ0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDwyJiYhcy5hbmRyb2lkKXJldHVybjtsPSExLG89ITF9dS4kaW1hZ2VFbCYmMCE9PXUuJGltYWdlRWwubGVuZ3RoJiYoci5zY2FsZT1NYXRoLm1heChNYXRoLm1pbihyLnNjYWxlLHUubWF4UmF0aW8pLGkubWluUmF0aW8pLHUuJGltYWdlRWwudHJhbnNpdGlvbihlLnBhcmFtcy5zcGVlZCkudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoJHtyLnNjYWxlfSlgKSxjPXIuc2NhbGUscD0hMSwxPT09ci5zY2FsZSYmKHUuJHNsaWRlRWw9dm9pZCAwKSl9ZnVuY3Rpb24geSh0KXtjb25zdCBzPWUuem9vbTtpZighdS4kaW1hZ2VFbHx8MD09PXUuJGltYWdlRWwubGVuZ3RoKXJldHVybjtpZihlLmFsbG93Q2xpY2s9ITEsIW0uaXNUb3VjaGVkfHwhdS4kc2xpZGVFbClyZXR1cm47bS5pc01vdmVkfHwobS53aWR0aD11LiRpbWFnZUVsWzBdLm9mZnNldFdpZHRoLG0uaGVpZ2h0PXUuJGltYWdlRWxbMF0ub2Zmc2V0SGVpZ2h0LG0uc3RhcnRYPWgodS4kaW1hZ2VXcmFwRWxbMF0sIngiKXx8MCxtLnN0YXJ0WT1oKHUuJGltYWdlV3JhcEVsWzBdLCJ5Iil8fDAsdS5zbGlkZVdpZHRoPXUuJHNsaWRlRWxbMF0ub2Zmc2V0V2lkdGgsdS5zbGlkZUhlaWdodD11LiRzbGlkZUVsWzBdLm9mZnNldEhlaWdodCx1LiRpbWFnZVdyYXBFbC50cmFuc2l0aW9uKDApKTtjb25zdCBhPW0ud2lkdGgqcy5zY2FsZSxpPW0uaGVpZ2h0KnMuc2NhbGU7aWYoIShhPHUuc2xpZGVXaWR0aCYmaTx1LnNsaWRlSGVpZ2h0KSl7aWYobS5taW5YPU1hdGgubWluKHUuc2xpZGVXaWR0aC8yLWEvMiwwKSxtLm1heFg9LW0ubWluWCxtLm1pblk9TWF0aC5taW4odS5zbGlkZUhlaWdodC8yLWkvMiwwKSxtLm1heFk9LW0ubWluWSxtLnRvdWNoZXNDdXJyZW50Lng9InRvdWNobW92ZSI9PT10LnR5cGU/dC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYOnQucGFnZVgsbS50b3VjaGVzQ3VycmVudC55PSJ0b3VjaG1vdmUiPT09dC50eXBlP3QudGFyZ2V0VG91Y2hlc1swXS5wYWdlWTp0LnBhZ2VZLCFtLmlzTW92ZWQmJiFwKXtpZihlLmlzSG9yaXpvbnRhbCgpJiYoTWF0aC5mbG9vcihtLm1pblgpPT09TWF0aC5mbG9vcihtLnN0YXJ0WCkmJm0udG91Y2hlc0N1cnJlbnQueDxtLnRvdWNoZXNTdGFydC54fHxNYXRoLmZsb29yKG0ubWF4WCk9PT1NYXRoLmZsb29yKG0uc3RhcnRYKSYmbS50b3VjaGVzQ3VycmVudC54Pm0udG91Y2hlc1N0YXJ0LngpKXJldHVybiB2b2lkKG0uaXNUb3VjaGVkPSExKTtpZighZS5pc0hvcml6b250YWwoKSYmKE1hdGguZmxvb3IobS5taW5ZKT09PU1hdGguZmxvb3IobS5zdGFydFkpJiZtLnRvdWNoZXNDdXJyZW50Lnk8bS50b3VjaGVzU3RhcnQueXx8TWF0aC5mbG9vcihtLm1heFkpPT09TWF0aC5mbG9vcihtLnN0YXJ0WSkmJm0udG91Y2hlc0N1cnJlbnQueT5tLnRvdWNoZXNTdGFydC55KSlyZXR1cm4gdm9pZChtLmlzVG91Y2hlZD0hMSl9dC5jYW5jZWxhYmxlJiZ0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxtLmlzTW92ZWQ9ITAsbS5jdXJyZW50WD1tLnRvdWNoZXNDdXJyZW50LngtbS50b3VjaGVzU3RhcnQueCttLnN0YXJ0WCxtLmN1cnJlbnRZPW0udG91Y2hlc0N1cnJlbnQueS1tLnRvdWNoZXNTdGFydC55K20uc3RhcnRZLG0uY3VycmVudFg8bS5taW5YJiYobS5jdXJyZW50WD1tLm1pblgrMS0obS5taW5YLW0uY3VycmVudFgrMSkqKi44KSxtLmN1cnJlbnRYPm0ubWF4WCYmKG0uY3VycmVudFg9bS5tYXhYLTErKG0uY3VycmVudFgtbS5tYXhYKzEpKiouOCksbS5jdXJyZW50WTxtLm1pblkmJihtLmN1cnJlbnRZPW0ubWluWSsxLShtLm1pblktbS5jdXJyZW50WSsxKSoqLjgpLG0uY3VycmVudFk+bS5tYXhZJiYobS5jdXJyZW50WT1tLm1heFktMSsobS5jdXJyZW50WS1tLm1heFkrMSkqKi44KSxmLnByZXZQb3NpdGlvblh8fChmLnByZXZQb3NpdGlvblg9bS50b3VjaGVzQ3VycmVudC54KSxmLnByZXZQb3NpdGlvbll8fChmLnByZXZQb3NpdGlvblk9bS50b3VjaGVzQ3VycmVudC55KSxmLnByZXZUaW1lfHwoZi5wcmV2VGltZT1EYXRlLm5vdygpKSxmLng9KG0udG91Y2hlc0N1cnJlbnQueC1mLnByZXZQb3NpdGlvblgpLyhEYXRlLm5vdygpLWYucHJldlRpbWUpLzIsZi55PShtLnRvdWNoZXNDdXJyZW50LnktZi5wcmV2UG9zaXRpb25ZKS8oRGF0ZS5ub3coKS1mLnByZXZUaW1lKS8yLE1hdGguYWJzKG0udG91Y2hlc0N1cnJlbnQueC1mLnByZXZQb3NpdGlvblgpPDImJihmLng9MCksTWF0aC5hYnMobS50b3VjaGVzQ3VycmVudC55LWYucHJldlBvc2l0aW9uWSk8MiYmKGYueT0wKSxmLnByZXZQb3NpdGlvblg9bS50b3VjaGVzQ3VycmVudC54LGYucHJldlBvc2l0aW9uWT1tLnRvdWNoZXNDdXJyZW50LnksZi5wcmV2VGltZT1EYXRlLm5vdygpLHUuJGltYWdlV3JhcEVsLnRyYW5zZm9ybShgdHJhbnNsYXRlM2QoJHttLmN1cnJlbnRYfXB4LCAke20uY3VycmVudFl9cHgsMClgKX19ZnVuY3Rpb24gRSgpe2NvbnN0IHQ9ZS56b29tO3UuJHNsaWRlRWwmJmUucHJldmlvdXNJbmRleCE9PWUuYWN0aXZlSW5kZXgmJih1LiRpbWFnZUVsJiZ1LiRpbWFnZUVsLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpIiksdS4kaW1hZ2VXcmFwRWwmJnUuJGltYWdlV3JhcEVsLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIiksdC5zY2FsZT0xLGM9MSx1LiRzbGlkZUVsPXZvaWQgMCx1LiRpbWFnZUVsPXZvaWQgMCx1LiRpbWFnZVdyYXBFbD12b2lkIDApfWZ1bmN0aW9uIFQodCl7Y29uc3Qgcz1lLnpvb20sYT1lLnBhcmFtcy56b29tO2lmKHUuJHNsaWRlRWx8fCh0JiZ0LnRhcmdldCYmKHUuJHNsaWRlRWw9ZCh0LnRhcmdldCkuY2xvc2VzdChgLiR7ZS5wYXJhbXMuc2xpZGVDbGFzc31gKSksdS4kc2xpZGVFbHx8KGUucGFyYW1zLnZpcnR1YWwmJmUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCYmZS52aXJ0dWFsP3UuJHNsaWRlRWw9ZS4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtlLnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzfWApOnUuJHNsaWRlRWw9ZS5zbGlkZXMuZXEoZS5hY3RpdmVJbmRleCkpLHUuJGltYWdlRWw9dS4kc2xpZGVFbC5maW5kKGAuJHthLmNvbnRhaW5lckNsYXNzfWApLmVxKDApLmZpbmQoInBpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQiKS5lcSgwKSx1LiRpbWFnZVdyYXBFbD11LiRpbWFnZUVsLnBhcmVudChgLiR7YS5jb250YWluZXJDbGFzc31gKSksIXUuJGltYWdlRWx8fDA9PT11LiRpbWFnZUVsLmxlbmd0aHx8IXUuJGltYWdlV3JhcEVsfHwwPT09dS4kaW1hZ2VXcmFwRWwubGVuZ3RoKXJldHVybjtsZXQgcixuLGwsbyxwLGgsZixnLHYsdyxiLHgseSxFLFQsQywkLFM7ZS5wYXJhbXMuY3NzTW9kZSYmKGUud3JhcHBlckVsLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUud3JhcHBlckVsLnN0eWxlLnRvdWNoQWN0aW9uPSJub25lIiksdS4kc2xpZGVFbC5hZGRDbGFzcyhgJHthLnpvb21lZFNsaWRlQ2xhc3N9YCksdm9pZCAwPT09bS50b3VjaGVzU3RhcnQueCYmdD8ocj0idG91Y2hlbmQiPT09dC50eXBlP3QuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVg6dC5wYWdlWCxuPSJ0b3VjaGVuZCI9PT10LnR5cGU/dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWTp0LnBhZ2VZKToocj1tLnRvdWNoZXNTdGFydC54LG49bS50b3VjaGVzU3RhcnQueSkscy5zY2FsZT11LiRpbWFnZVdyYXBFbC5hdHRyKCJkYXRhLXN3aXBlci16b29tIil8fGEubWF4UmF0aW8sYz11LiRpbWFnZVdyYXBFbC5hdHRyKCJkYXRhLXN3aXBlci16b29tIil8fGEubWF4UmF0aW8sdD8oJD11LiRzbGlkZUVsWzBdLm9mZnNldFdpZHRoLFM9dS4kc2xpZGVFbFswXS5vZmZzZXRIZWlnaHQsbD11LiRzbGlkZUVsLm9mZnNldCgpLmxlZnQraS5zY3JvbGxYLG89dS4kc2xpZGVFbC5vZmZzZXQoKS50b3AraS5zY3JvbGxZLHA9bCskLzItcixoPW8rUy8yLW4sdj11LiRpbWFnZUVsWzBdLm9mZnNldFdpZHRoLHc9dS4kaW1hZ2VFbFswXS5vZmZzZXRIZWlnaHQsYj12KnMuc2NhbGUseD13KnMuc2NhbGUseT1NYXRoLm1pbigkLzItYi8yLDApLEU9TWF0aC5taW4oUy8yLXgvMiwwKSxUPS15LEM9LUUsZj1wKnMuc2NhbGUsZz1oKnMuc2NhbGUsZjx5JiYoZj15KSxmPlQmJihmPVQpLGc8RSYmKGc9RSksZz5DJiYoZz1DKSk6KGY9MCxnPTApLHUuJGltYWdlV3JhcEVsLnRyYW5zaXRpb24oMzAwKS50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKCR7Zn1weCwgJHtnfXB4LDApYCksdS4kaW1hZ2VFbC50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoJHtzLnNjYWxlfSlgKX1mdW5jdGlvbiBDKCl7Y29uc3QgdD1lLnpvb20scz1lLnBhcmFtcy56b29tO3UuJHNsaWRlRWx8fChlLnBhcmFtcy52aXJ0dWFsJiZlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJmUudmlydHVhbD91LiRzbGlkZUVsPWUuJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7ZS5wYXJhbXMuc2xpZGVBY3RpdmVDbGFzc31gKTp1LiRzbGlkZUVsPWUuc2xpZGVzLmVxKGUuYWN0aXZlSW5kZXgpLHUuJGltYWdlRWw9dS4kc2xpZGVFbC5maW5kKGAuJHtzLmNvbnRhaW5lckNsYXNzfWApLmVxKDApLmZpbmQoInBpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQiKS5lcSgwKSx1LiRpbWFnZVdyYXBFbD11LiRpbWFnZUVsLnBhcmVudChgLiR7cy5jb250YWluZXJDbGFzc31gKSksdS4kaW1hZ2VFbCYmMCE9PXUuJGltYWdlRWwubGVuZ3RoJiZ1LiRpbWFnZVdyYXBFbCYmMCE9PXUuJGltYWdlV3JhcEVsLmxlbmd0aCYmKGUucGFyYW1zLmNzc01vZGUmJihlLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdz0iIixlLndyYXBwZXJFbC5zdHlsZS50b3VjaEFjdGlvbj0iIiksdC5zY2FsZT0xLGM9MSx1LiRpbWFnZVdyYXBFbC50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkiKSx1LiRpbWFnZUVsLnRyYW5zaXRpb24oMzAwKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKSIpLHUuJHNsaWRlRWwucmVtb3ZlQ2xhc3MoYCR7cy56b29tZWRTbGlkZUNsYXNzfWApLHUuJHNsaWRlRWw9dm9pZCAwKX1mdW5jdGlvbiAkKHQpe2NvbnN0IHM9ZS56b29tO3Muc2NhbGUmJjEhPT1zLnNjYWxlP0MoKTpUKHQpfWZ1bmN0aW9uIFMoKXtjb25zdCB0PWUuc3VwcG9ydDtyZXR1cm57cGFzc2l2ZUxpc3RlbmVyOiEoInRvdWNoc3RhcnQiIT09ZS50b3VjaEV2ZW50cy5zdGFydHx8IXQucGFzc2l2ZUxpc3RlbmVyfHwhZS5wYXJhbXMucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiEwLGNhcHR1cmU6ITF9LGFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmU6IXQucGFzc2l2ZUxpc3RlbmVyfHx7cGFzc2l2ZTohMSxjYXB0dXJlOiEwfX19ZnVuY3Rpb24gTSgpe3JldHVybmAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfWB9ZnVuY3Rpb24gUCh0KXtjb25zdHtwYXNzaXZlTGlzdGVuZXI6c309UygpLGE9TSgpO2UuJHdyYXBwZXJFbFt0XSgiZ2VzdHVyZXN0YXJ0IixhLHcscyksZS4kd3JhcHBlckVsW3RdKCJnZXN0dXJlY2hhbmdlIixhLGIscyksZS4kd3JhcHBlckVsW3RdKCJnZXN0dXJlZW5kIixhLHgscyl9ZnVuY3Rpb24gaygpe258fChuPSEwLFAoIm9uIikpfWZ1bmN0aW9uIHooKXtuJiYobj0hMSxQKCJvZmYiKSl9ZnVuY3Rpb24gTygpe2NvbnN0IHQ9ZS56b29tO2lmKHQuZW5hYmxlZClyZXR1cm47dC5lbmFibGVkPSEwO2NvbnN0IHM9ZS5zdXBwb3J0LHtwYXNzaXZlTGlzdGVuZXI6YSxhY3RpdmVMaXN0ZW5lcldpdGhDYXB0dXJlOml9PVMoKSxyPU0oKTtzLmdlc3R1cmVzPyhlLiR3cmFwcGVyRWwub24oZS50b3VjaEV2ZW50cy5zdGFydCxrLGEpLGUuJHdyYXBwZXJFbC5vbihlLnRvdWNoRXZlbnRzLmVuZCx6LGEpKToidG91Y2hzdGFydCI9PT1lLnRvdWNoRXZlbnRzLnN0YXJ0JiYoZS4kd3JhcHBlckVsLm9uKGUudG91Y2hFdmVudHMuc3RhcnQscix3LGEpLGUuJHdyYXBwZXJFbC5vbihlLnRvdWNoRXZlbnRzLm1vdmUscixiLGkpLGUuJHdyYXBwZXJFbC5vbihlLnRvdWNoRXZlbnRzLmVuZCxyLHgsYSksZS50b3VjaEV2ZW50cy5jYW5jZWwmJmUuJHdyYXBwZXJFbC5vbihlLnRvdWNoRXZlbnRzLmNhbmNlbCxyLHgsYSkpLGUuJHdyYXBwZXJFbC5vbihlLnRvdWNoRXZlbnRzLm1vdmUsYC4ke2UucGFyYW1zLnpvb20uY29udGFpbmVyQ2xhc3N9YCx5LGkpfWZ1bmN0aW9uIEkoKXtjb25zdCB0PWUuem9vbTtpZighdC5lbmFibGVkKXJldHVybjtjb25zdCBzPWUuc3VwcG9ydDt0LmVuYWJsZWQ9ITE7Y29uc3R7cGFzc2l2ZUxpc3RlbmVyOmEsYWN0aXZlTGlzdGVuZXJXaXRoQ2FwdHVyZTppfT1TKCkscj1NKCk7cy5nZXN0dXJlcz8oZS4kd3JhcHBlckVsLm9mZihlLnRvdWNoRXZlbnRzLnN0YXJ0LGssYSksZS4kd3JhcHBlckVsLm9mZihlLnRvdWNoRXZlbnRzLmVuZCx6LGEpKToidG91Y2hzdGFydCI9PT1lLnRvdWNoRXZlbnRzLnN0YXJ0JiYoZS4kd3JhcHBlckVsLm9mZihlLnRvdWNoRXZlbnRzLnN0YXJ0LHIsdyxhKSxlLiR3cmFwcGVyRWwub2ZmKGUudG91Y2hFdmVudHMubW92ZSxyLGIsaSksZS4kd3JhcHBlckVsLm9mZihlLnRvdWNoRXZlbnRzLmVuZCxyLHgsYSksZS50b3VjaEV2ZW50cy5jYW5jZWwmJmUuJHdyYXBwZXJFbC5vZmYoZS50b3VjaEV2ZW50cy5jYW5jZWwscix4LGEpKSxlLiR3cmFwcGVyRWwub2ZmKGUudG91Y2hFdmVudHMubW92ZSxgLiR7ZS5wYXJhbXMuem9vbS5jb250YWluZXJDbGFzc31gLHksaSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuem9vbSwic2NhbGUiLHtnZXQ6KCk9Pmcsc2V0KGUpe2lmKGchPT1lKXtjb25zdCB0PXUuJGltYWdlRWw/dS4kaW1hZ2VFbFswXTp2b2lkIDAscz11LiRzbGlkZUVsP3UuJHNsaWRlRWxbMF06dm9pZCAwO2EoInpvb21DaGFuZ2UiLGUsdCxzKX1nPWV9fSkscygiaW5pdCIsKCgpPT57ZS5wYXJhbXMuem9vbS5lbmFibGVkJiZPKCl9KSkscygiZGVzdHJveSIsKCgpPT57SSgpfSkpLHMoInRvdWNoU3RhcnQiLCgodCxzKT0+e2Uuem9vbS5lbmFibGVkJiZmdW5jdGlvbih0KXtjb25zdCBzPWUuZGV2aWNlO3UuJGltYWdlRWwmJjAhPT11LiRpbWFnZUVsLmxlbmd0aCYmKG0uaXNUb3VjaGVkfHwocy5hbmRyb2lkJiZ0LmNhbmNlbGFibGUmJnQucHJldmVudERlZmF1bHQoKSxtLmlzVG91Y2hlZD0hMCxtLnRvdWNoZXNTdGFydC54PSJ0b3VjaHN0YXJ0Ij09PXQudHlwZT90LnRhcmdldFRvdWNoZXNbMF0ucGFnZVg6dC5wYWdlWCxtLnRvdWNoZXNTdGFydC55PSJ0b3VjaHN0YXJ0Ij09PXQudHlwZT90LnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6dC5wYWdlWSkpfShzKX0pKSxzKCJ0b3VjaEVuZCIsKCh0LHMpPT57ZS56b29tLmVuYWJsZWQmJmZ1bmN0aW9uKCl7Y29uc3QgdD1lLnpvb207aWYoIXUuJGltYWdlRWx8fDA9PT11LiRpbWFnZUVsLmxlbmd0aClyZXR1cm47aWYoIW0uaXNUb3VjaGVkfHwhbS5pc01vdmVkKXJldHVybiBtLmlzVG91Y2hlZD0hMSx2b2lkKG0uaXNNb3ZlZD0hMSk7bS5pc1RvdWNoZWQ9ITEsbS5pc01vdmVkPSExO2xldCBzPTMwMCxhPTMwMDtjb25zdCBpPWYueCpzLHI9bS5jdXJyZW50WCtpLG49Zi55KmEsbD1tLmN1cnJlbnRZK247MCE9PWYueCYmKHM9TWF0aC5hYnMoKHItbS5jdXJyZW50WCkvZi54KSksMCE9PWYueSYmKGE9TWF0aC5hYnMoKGwtbS5jdXJyZW50WSkvZi55KSk7Y29uc3Qgbz1NYXRoLm1heChzLGEpO20uY3VycmVudFg9cixtLmN1cnJlbnRZPWw7Y29uc3QgZD1tLndpZHRoKnQuc2NhbGUsYz1tLmhlaWdodCp0LnNjYWxlO20ubWluWD1NYXRoLm1pbih1LnNsaWRlV2lkdGgvMi1kLzIsMCksbS5tYXhYPS1tLm1pblgsbS5taW5ZPU1hdGgubWluKHUuc2xpZGVIZWlnaHQvMi1jLzIsMCksbS5tYXhZPS1tLm1pblksbS5jdXJyZW50WD1NYXRoLm1heChNYXRoLm1pbihtLmN1cnJlbnRYLG0ubWF4WCksbS5taW5YKSxtLmN1cnJlbnRZPU1hdGgubWF4KE1hdGgubWluKG0uY3VycmVudFksbS5tYXhZKSxtLm1pblkpLHUuJGltYWdlV3JhcEVsLnRyYW5zaXRpb24obykudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgke20uY3VycmVudFh9cHgsICR7bS5jdXJyZW50WX1weCwwKWApfSgpfSkpLHMoImRvdWJsZVRhcCIsKCh0LHMpPT57IWUuYW5pbWF0aW5nJiZlLnBhcmFtcy56b29tLmVuYWJsZWQmJmUuem9vbS5lbmFibGVkJiZlLnBhcmFtcy56b29tLnRvZ2dsZSYmJChzKX0pKSxzKCJ0cmFuc2l0aW9uRW5kIiwoKCk9PntlLnpvb20uZW5hYmxlZCYmZS5wYXJhbXMuem9vbS5lbmFibGVkJiZFKCl9KSkscygic2xpZGVDaGFuZ2UiLCgoKT0+e2Uuem9vbS5lbmFibGVkJiZlLnBhcmFtcy56b29tLmVuYWJsZWQmJmUucGFyYW1zLmNzc01vZGUmJkUoKX0pKSxPYmplY3QuYXNzaWduKGUuem9vbSx7ZW5hYmxlOk8sZGlzYWJsZTpJLGluOlQsb3V0OkMsdG9nZ2xlOiR9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnMsZW1pdDphfSl7dCh7bGF6eTp7Y2hlY2tJblZpZXc6ITEsZW5hYmxlZDohMSxsb2FkUHJldk5leHQ6ITEsbG9hZFByZXZOZXh0QW1vdW50OjEsbG9hZE9uVHJhbnNpdGlvblN0YXJ0OiExLHNjcm9sbGluZ0VsZW1lbnQ6IiIsZWxlbWVudENsYXNzOiJzd2lwZXItbGF6eSIsbG9hZGluZ0NsYXNzOiJzd2lwZXItbGF6eS1sb2FkaW5nIixsb2FkZWRDbGFzczoic3dpcGVyLWxhenktbG9hZGVkIixwcmVsb2FkZXJDbGFzczoic3dpcGVyLWxhenktcHJlbG9hZGVyIn19KSxlLmxhenk9e307bGV0IGk9ITEsbj0hMTtmdW5jdGlvbiBsKHQscz0hMCl7Y29uc3QgaT1lLnBhcmFtcy5sYXp5O2lmKHZvaWQgMD09PXQpcmV0dXJuO2lmKDA9PT1lLnNsaWRlcy5sZW5ndGgpcmV0dXJuO2NvbnN0IHI9ZS52aXJ0dWFsJiZlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ/ZS4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHt0fSJdYCk6ZS5zbGlkZXMuZXEodCksbj1yLmZpbmQoYC4ke2kuZWxlbWVudENsYXNzfTpub3QoLiR7aS5sb2FkZWRDbGFzc30pOm5vdCguJHtpLmxvYWRpbmdDbGFzc30pYCk7IXIuaGFzQ2xhc3MoaS5lbGVtZW50Q2xhc3MpfHxyLmhhc0NsYXNzKGkubG9hZGVkQ2xhc3MpfHxyLmhhc0NsYXNzKGkubG9hZGluZ0NsYXNzKXx8bi5wdXNoKHJbMF0pLDAhPT1uLmxlbmd0aCYmbi5lYWNoKCh0PT57Y29uc3Qgbj1kKHQpO24uYWRkQ2xhc3MoaS5sb2FkaW5nQ2xhc3MpO2NvbnN0IG89bi5hdHRyKCJkYXRhLWJhY2tncm91bmQiKSxjPW4uYXR0cigiZGF0YS1zcmMiKSxwPW4uYXR0cigiZGF0YS1zcmNzZXQiKSx1PW4uYXR0cigiZGF0YS1zaXplcyIpLGg9bi5wYXJlbnQoInBpY3R1cmUiKTtlLmxvYWRJbWFnZShuWzBdLGN8fG8scCx1LCExLCgoKT0+e2lmKG51bGwhPWUmJmUmJighZXx8ZS5wYXJhbXMpJiYhZS5kZXN0cm95ZWQpe2lmKG8/KG4uY3NzKCJiYWNrZ3JvdW5kLWltYWdlIixgdXJsKCIke299IilgKSxuLnJlbW92ZUF0dHIoImRhdGEtYmFja2dyb3VuZCIpKToocCYmKG4uYXR0cigic3Jjc2V0IixwKSxuLnJlbW92ZUF0dHIoImRhdGEtc3Jjc2V0IikpLHUmJihuLmF0dHIoInNpemVzIix1KSxuLnJlbW92ZUF0dHIoImRhdGEtc2l6ZXMiKSksaC5sZW5ndGgmJmguY2hpbGRyZW4oInNvdXJjZSIpLmVhY2goKGU9Pntjb25zdCB0PWQoZSk7dC5hdHRyKCJkYXRhLXNyY3NldCIpJiYodC5hdHRyKCJzcmNzZXQiLHQuYXR0cigiZGF0YS1zcmNzZXQiKSksdC5yZW1vdmVBdHRyKCJkYXRhLXNyY3NldCIpKX0pKSxjJiYobi5hdHRyKCJzcmMiLGMpLG4ucmVtb3ZlQXR0cigiZGF0YS1zcmMiKSkpLG4uYWRkQ2xhc3MoaS5sb2FkZWRDbGFzcykucmVtb3ZlQ2xhc3MoaS5sb2FkaW5nQ2xhc3MpLHIuZmluZChgLiR7aS5wcmVsb2FkZXJDbGFzc31gKS5yZW1vdmUoKSxlLnBhcmFtcy5sb29wJiZzKXtjb25zdCB0PXIuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTtpZihyLmhhc0NsYXNzKGUucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKXtsKGUuJHdyYXBwZXJFbC5jaGlsZHJlbihgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke3R9Il06bm90KC4ke2UucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9KWApLmluZGV4KCksITEpfWVsc2V7bChlLiR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke2UucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke3R9Il1gKS5pbmRleCgpLCExKX19YSgibGF6eUltYWdlUmVhZHkiLHJbMF0sblswXSksZS5wYXJhbXMuYXV0b0hlaWdodCYmZS51cGRhdGVBdXRvSGVpZ2h0KCl9fSkpLGEoImxhenlJbWFnZUxvYWQiLHJbMF0sblswXSl9KSl9ZnVuY3Rpb24gbygpe2NvbnN0eyR3cmFwcGVyRWw6dCxwYXJhbXM6cyxzbGlkZXM6YSxhY3RpdmVJbmRleDppfT1lLHI9ZS52aXJ0dWFsJiZzLnZpcnR1YWwuZW5hYmxlZCxvPXMubGF6eTtsZXQgYz1zLnNsaWRlc1BlclZpZXc7ZnVuY3Rpb24gcChlKXtpZihyKXtpZih0LmNoaWxkcmVuKGAuJHtzLnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2V9Il1gKS5sZW5ndGgpcmV0dXJuITB9ZWxzZSBpZihhW2VdKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIHI/ZChlKS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpOmQoZSkuaW5kZXgoKX1pZigiYXV0byI9PT1jJiYoYz0wKSxufHwobj0hMCksZS5wYXJhbXMud2F0Y2hTbGlkZXNQcm9ncmVzcyl0LmNoaWxkcmVuKGAuJHtzLnNsaWRlVmlzaWJsZUNsYXNzfWApLmVhY2goKGU9PntsKHI/ZChlKS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpOmQoZSkuaW5kZXgoKSl9KSk7ZWxzZSBpZihjPjEpZm9yKGxldCBlPWk7ZTxpK2M7ZSs9MSlwKGUpJiZsKGUpO2Vsc2UgbChpKTtpZihvLmxvYWRQcmV2TmV4dClpZihjPjF8fG8ubG9hZFByZXZOZXh0QW1vdW50JiZvLmxvYWRQcmV2TmV4dEFtb3VudD4xKXtjb25zdCBlPW8ubG9hZFByZXZOZXh0QW1vdW50LHQ9YyxzPU1hdGgubWluKGkrdCtNYXRoLm1heChlLHQpLGEubGVuZ3RoKSxyPU1hdGgubWF4KGktTWF0aC5tYXgodCxlKSwwKTtmb3IobGV0IGU9aStjO2U8cztlKz0xKXAoZSkmJmwoZSk7Zm9yKGxldCBlPXI7ZTxpO2UrPTEpcChlKSYmbChlKX1lbHNle2NvbnN0IGU9dC5jaGlsZHJlbihgLiR7cy5zbGlkZU5leHRDbGFzc31gKTtlLmxlbmd0aD4wJiZsKHUoZSkpO2NvbnN0IGE9dC5jaGlsZHJlbihgLiR7cy5zbGlkZVByZXZDbGFzc31gKTthLmxlbmd0aD4wJiZsKHUoYSkpfX1mdW5jdGlvbiBjKCl7Y29uc3QgdD1yKCk7aWYoIWV8fGUuZGVzdHJveWVkKXJldHVybjtjb25zdCBzPWUucGFyYW1zLmxhenkuc2Nyb2xsaW5nRWxlbWVudD9kKGUucGFyYW1zLmxhenkuc2Nyb2xsaW5nRWxlbWVudCk6ZCh0KSxhPXNbMF09PT10LG49YT90LmlubmVyV2lkdGg6c1swXS5vZmZzZXRXaWR0aCxsPWE/dC5pbm5lckhlaWdodDpzWzBdLm9mZnNldEhlaWdodCxwPWUuJGVsLm9mZnNldCgpLHtydGxUcmFuc2xhdGU6dX09ZTtsZXQgaD0hMTt1JiYocC5sZWZ0LT1lLiRlbFswXS5zY3JvbGxMZWZ0KTtjb25zdCBtPVtbcC5sZWZ0LHAudG9wXSxbcC5sZWZ0K2Uud2lkdGgscC50b3BdLFtwLmxlZnQscC50b3ArZS5oZWlnaHRdLFtwLmxlZnQrZS53aWR0aCxwLnRvcCtlLmhlaWdodF1dO2ZvcihsZXQgZT0wO2U8bS5sZW5ndGg7ZSs9MSl7Y29uc3QgdD1tW2VdO2lmKHRbMF0+PTAmJnRbMF08PW4mJnRbMV0+PTAmJnRbMV08PWwpe2lmKDA9PT10WzBdJiYwPT09dFsxXSljb250aW51ZTtoPSEwfX1jb25zdCBmPSEoInRvdWNoc3RhcnQiIT09ZS50b3VjaEV2ZW50cy5zdGFydHx8IWUuc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXJ8fCFlLnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzKSYme3Bhc3NpdmU6ITAsY2FwdHVyZTohMX07aD8obygpLHMub2ZmKCJzY3JvbGwiLGMsZikpOml8fChpPSEwLHMub24oInNjcm9sbCIsYyxmKSl9cygiYmVmb3JlSW5pdCIsKCgpPT57ZS5wYXJhbXMubGF6eS5lbmFibGVkJiZlLnBhcmFtcy5wcmVsb2FkSW1hZ2VzJiYoZS5wYXJhbXMucHJlbG9hZEltYWdlcz0hMSl9KSkscygiaW5pdCIsKCgpPT57ZS5wYXJhbXMubGF6eS5lbmFibGVkJiYoZS5wYXJhbXMubGF6eS5jaGVja0luVmlldz9jKCk6bygpKX0pKSxzKCJzY3JvbGwiLCgoKT0+e2UucGFyYW1zLmZyZWVNb2RlJiZlLnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkJiYhZS5wYXJhbXMuZnJlZU1vZGUuc3RpY2t5JiZvKCl9KSkscygic2Nyb2xsYmFyRHJhZ01vdmUgcmVzaXplIF9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiwoKCk9PntlLnBhcmFtcy5sYXp5LmVuYWJsZWQmJihlLnBhcmFtcy5sYXp5LmNoZWNrSW5WaWV3P2MoKTpvKCkpfSkpLHMoInRyYW5zaXRpb25TdGFydCIsKCgpPT57ZS5wYXJhbXMubGF6eS5lbmFibGVkJiYoZS5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnR8fCFlLnBhcmFtcy5sYXp5LmxvYWRPblRyYW5zaXRpb25TdGFydCYmIW4pJiYoZS5wYXJhbXMubGF6eS5jaGVja0luVmlldz9jKCk6bygpKX0pKSxzKCJ0cmFuc2l0aW9uRW5kIiwoKCk9PntlLnBhcmFtcy5sYXp5LmVuYWJsZWQmJiFlLnBhcmFtcy5sYXp5LmxvYWRPblRyYW5zaXRpb25TdGFydCYmKGUucGFyYW1zLmxhenkuY2hlY2tJblZpZXc/YygpOm8oKSl9KSkscygic2xpZGVDaGFuZ2UiLCgoKT0+e2NvbnN0e2xhenk6dCxjc3NNb2RlOnMsd2F0Y2hTbGlkZXNQcm9ncmVzczphLHRvdWNoUmVsZWFzZU9uRWRnZXM6aSxyZXNpc3RhbmNlUmF0aW86cn09ZS5wYXJhbXM7dC5lbmFibGVkJiYoc3x8YSYmKGl8fDA9PT1yKSkmJm8oKX0pKSxPYmplY3QuYXNzaWduKGUubGF6eSx7bG9hZDpvLGxvYWRJblNsaWRlOmx9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXtmdW5jdGlvbiBhKGUsdCl7Y29uc3Qgcz1mdW5jdGlvbigpe2xldCBlLHQscztyZXR1cm4oYSxpKT0+e2Zvcih0PS0xLGU9YS5sZW5ndGg7ZS10PjE7KXM9ZSt0Pj4xLGFbc108PWk/dD1zOmU9cztyZXR1cm4gZX19KCk7bGV0IGEsaTtyZXR1cm4gdGhpcy54PWUsdGhpcy55PXQsdGhpcy5sYXN0SW5kZXg9ZS5sZW5ndGgtMSx0aGlzLmludGVycG9sYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlPyhpPXModGhpcy54LGUpLGE9aS0xLChlLXRoaXMueFthXSkqKHRoaXMueVtpXS10aGlzLnlbYV0pLyh0aGlzLnhbaV0tdGhpcy54W2FdKSt0aGlzLnlbYV0pOjB9LHRoaXN9ZnVuY3Rpb24gaSgpe2UuY29udHJvbGxlci5jb250cm9sJiZlLmNvbnRyb2xsZXIuc3BsaW5lJiYoZS5jb250cm9sbGVyLnNwbGluZT12b2lkIDAsZGVsZXRlIGUuY29udHJvbGxlci5zcGxpbmUpfXQoe2NvbnRyb2xsZXI6e2NvbnRyb2w6dm9pZCAwLGludmVyc2U6ITEsYnk6InNsaWRlIn19KSxlLmNvbnRyb2xsZXI9e2NvbnRyb2w6dm9pZCAwfSxzKCJiZWZvcmVJbml0IiwoKCk9PntlLmNvbnRyb2xsZXIuY29udHJvbD1lLnBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2x9KSkscygidXBkYXRlIiwoKCk9PntpKCl9KSkscygicmVzaXplIiwoKCk9PntpKCl9KSkscygib2JzZXJ2ZXJVcGRhdGUiLCgoKT0+e2koKX0pKSxzKCJzZXRUcmFuc2xhdGUiLCgodCxzLGEpPT57ZS5jb250cm9sbGVyLmNvbnRyb2wmJmUuY29udHJvbGxlci5zZXRUcmFuc2xhdGUocyxhKX0pKSxzKCJzZXRUcmFuc2l0aW9uIiwoKHQscyxhKT0+e2UuY29udHJvbGxlci5jb250cm9sJiZlLmNvbnRyb2xsZXIuc2V0VHJhbnNpdGlvbihzLGEpfSkpLE9iamVjdC5hc3NpZ24oZS5jb250cm9sbGVyLHtzZXRUcmFuc2xhdGU6ZnVuY3Rpb24odCxzKXtjb25zdCBpPWUuY29udHJvbGxlci5jb250cm9sO2xldCByLG47Y29uc3QgbD1lLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIG8odCl7Y29uc3Qgcz1lLnJ0bFRyYW5zbGF0ZT8tZS50cmFuc2xhdGU6ZS50cmFuc2xhdGU7InNsaWRlIj09PWUucGFyYW1zLmNvbnRyb2xsZXIuYnkmJighZnVuY3Rpb24odCl7ZS5jb250cm9sbGVyLnNwbGluZXx8KGUuY29udHJvbGxlci5zcGxpbmU9ZS5wYXJhbXMubG9vcD9uZXcgYShlLnNsaWRlc0dyaWQsdC5zbGlkZXNHcmlkKTpuZXcgYShlLnNuYXBHcmlkLHQuc25hcEdyaWQpKX0odCksbj0tZS5jb250cm9sbGVyLnNwbGluZS5pbnRlcnBvbGF0ZSgtcykpLG4mJiJjb250YWluZXIiIT09ZS5wYXJhbXMuY29udHJvbGxlci5ieXx8KHI9KHQubWF4VHJhbnNsYXRlKCktdC5taW5UcmFuc2xhdGUoKSkvKGUubWF4VHJhbnNsYXRlKCktZS5taW5UcmFuc2xhdGUoKSksbj0ocy1lLm1pblRyYW5zbGF0ZSgpKSpyK3QubWluVHJhbnNsYXRlKCkpLGUucGFyYW1zLmNvbnRyb2xsZXIuaW52ZXJzZSYmKG49dC5tYXhUcmFuc2xhdGUoKS1uKSx0LnVwZGF0ZVByb2dyZXNzKG4pLHQuc2V0VHJhbnNsYXRlKG4sZSksdC51cGRhdGVBY3RpdmVJbmRleCgpLHQudXBkYXRlU2xpZGVzQ2xhc3NlcygpfWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKz0xKWlbZV0hPT1zJiZpW2VdaW5zdGFuY2VvZiBsJiZvKGlbZV0pO2Vsc2UgaSBpbnN0YW5jZW9mIGwmJnMhPT1pJiZvKGkpfSxzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKHQscyl7Y29uc3QgYT1lLmNvbnN0cnVjdG9yLGk9ZS5jb250cm9sbGVyLmNvbnRyb2w7bGV0IHI7ZnVuY3Rpb24gbihzKXtzLnNldFRyYW5zaXRpb24odCxlKSwwIT09dCYmKHMudHJhbnNpdGlvblN0YXJ0KCkscy5wYXJhbXMuYXV0b0hlaWdodCYmcCgoKCk9PntzLnVwZGF0ZUF1dG9IZWlnaHQoKX0pKSxzLiR3cmFwcGVyRWwudHJhbnNpdGlvbkVuZCgoKCk9PntpJiYocy5wYXJhbXMubG9vcCYmInNsaWRlIj09PWUucGFyYW1zLmNvbnRyb2xsZXIuYnkmJnMubG9vcEZpeCgpLHMudHJhbnNpdGlvbkVuZCgpKX0pKSl9aWYoQXJyYXkuaXNBcnJheShpKSlmb3Iocj0wO3I8aS5sZW5ndGg7cis9MSlpW3JdIT09cyYmaVtyXWluc3RhbmNlb2YgYSYmbihpW3JdKTtlbHNlIGkgaW5zdGFuY2VvZiBhJiZzIT09aSYmbihpKX19KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXt0KHthMTF5OntlbmFibGVkOiEwLG5vdGlmaWNhdGlvbkNsYXNzOiJzd2lwZXItbm90aWZpY2F0aW9uIixwcmV2U2xpZGVNZXNzYWdlOiJQcmV2aW91cyBzbGlkZSIsbmV4dFNsaWRlTWVzc2FnZToiTmV4dCBzbGlkZSIsZmlyc3RTbGlkZU1lc3NhZ2U6IlRoaXMgaXMgdGhlIGZpcnN0IHNsaWRlIixsYXN0U2xpZGVNZXNzYWdlOiJUaGlzIGlzIHRoZSBsYXN0IHNsaWRlIixwYWdpbmF0aW9uQnVsbGV0TWVzc2FnZToiR28gdG8gc2xpZGUge3tpbmRleH19IixzbGlkZUxhYmVsTWVzc2FnZToie3tpbmRleH19IC8ge3tzbGlkZXNMZW5ndGh9fSIsY29udGFpbmVyTWVzc2FnZTpudWxsLGNvbnRhaW5lclJvbGVEZXNjcmlwdGlvbk1lc3NhZ2U6bnVsbCxpdGVtUm9sZURlc2NyaXB0aW9uTWVzc2FnZTpudWxsLHNsaWRlUm9sZToiZ3JvdXAifX0pO2xldCBhPW51bGw7ZnVuY3Rpb24gaShlKXtjb25zdCB0PWE7MCE9PXQubGVuZ3RoJiYodC5odG1sKCIiKSx0Lmh0bWwoZSkpfWZ1bmN0aW9uIHIoZSl7ZS5hdHRyKCJ0YWJJbmRleCIsIjAiKX1mdW5jdGlvbiBuKGUpe2UuYXR0cigidGFiSW5kZXgiLCItMSIpfWZ1bmN0aW9uIGwoZSx0KXtlLmF0dHIoInJvbGUiLHQpfWZ1bmN0aW9uIG8oZSx0KXtlLmF0dHIoImFyaWEtcm9sZWRlc2NyaXB0aW9uIix0KX1mdW5jdGlvbiBjKGUsdCl7ZS5hdHRyKCJhcmlhLWxhYmVsIix0KX1mdW5jdGlvbiBwKGUpe2UuYXR0cigiYXJpYS1kaXNhYmxlZCIsITApfWZ1bmN0aW9uIHUoZSl7ZS5hdHRyKCJhcmlhLWRpc2FibGVkIiwhMSl9ZnVuY3Rpb24gaCh0KXtpZigxMyE9PXQua2V5Q29kZSYmMzIhPT10LmtleUNvZGUpcmV0dXJuO2NvbnN0IHM9ZS5wYXJhbXMuYTExeSxhPWQodC50YXJnZXQpO2UubmF2aWdhdGlvbiYmZS5uYXZpZ2F0aW9uLiRuZXh0RWwmJmEuaXMoZS5uYXZpZ2F0aW9uLiRuZXh0RWwpJiYoZS5pc0VuZCYmIWUucGFyYW1zLmxvb3B8fGUuc2xpZGVOZXh0KCksZS5pc0VuZD9pKHMubGFzdFNsaWRlTWVzc2FnZSk6aShzLm5leHRTbGlkZU1lc3NhZ2UpKSxlLm5hdmlnYXRpb24mJmUubmF2aWdhdGlvbi4kcHJldkVsJiZhLmlzKGUubmF2aWdhdGlvbi4kcHJldkVsKSYmKGUuaXNCZWdpbm5pbmcmJiFlLnBhcmFtcy5sb29wfHxlLnNsaWRlUHJldigpLGUuaXNCZWdpbm5pbmc/aShzLmZpcnN0U2xpZGVNZXNzYWdlKTppKHMucHJldlNsaWRlTWVzc2FnZSkpLGUucGFnaW5hdGlvbiYmYS5pcyhXKGUucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpKSYmYVswXS5jbGljaygpfWZ1bmN0aW9uIG0oKXtpZihlLnBhcmFtcy5sb29wfHwhZS5uYXZpZ2F0aW9uKXJldHVybjtjb25zdHskbmV4dEVsOnQsJHByZXZFbDpzfT1lLm5hdmlnYXRpb247cyYmcy5sZW5ndGg+MCYmKGUuaXNCZWdpbm5pbmc/KHAocyksbihzKSk6KHUocykscihzKSkpLHQmJnQubGVuZ3RoPjAmJihlLmlzRW5kPyhwKHQpLG4odCkpOih1KHQpLHIodCkpKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGUucGFnaW5hdGlvbiYmZS5wYXJhbXMucGFnaW5hdGlvbi5jbGlja2FibGUmJmUucGFnaW5hdGlvbi5idWxsZXRzJiZlLnBhZ2luYXRpb24uYnVsbGV0cy5sZW5ndGh9Y29uc3QgZz0oZSx0LHMpPT57cihlKSwiQlVUVE9OIiE9PWVbMF0udGFnTmFtZSYmKGwoZSwiYnV0dG9uIiksZS5vbigia2V5ZG93biIsaCkpLGMoZSxzKSxmdW5jdGlvbihlLHQpe2UuYXR0cigiYXJpYS1jb250cm9scyIsdCl9KGUsdCl9O2Z1bmN0aW9uIHYoKXtjb25zdCB0PWUucGFyYW1zLmExMXk7ZS4kZWwuYXBwZW5kKGEpO2NvbnN0IHM9ZS4kZWw7dC5jb250YWluZXJSb2xlRGVzY3JpcHRpb25NZXNzYWdlJiZvKHMsdC5jb250YWluZXJSb2xlRGVzY3JpcHRpb25NZXNzYWdlKSx0LmNvbnRhaW5lck1lc3NhZ2UmJmMocyx0LmNvbnRhaW5lck1lc3NhZ2UpO2NvbnN0IGk9ZS4kd3JhcHBlckVsLHI9aS5hdHRyKCJpZCIpfHxgc3dpcGVyLXdyYXBwZXItJHtmdW5jdGlvbihlPTE2KXtyZXR1cm4ieCIucmVwZWF0KGUpLnJlcGxhY2UoL3gvZywoKCk9Pk1hdGgucm91bmQoMTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpKSl9KDE2KX1gLG49ZS5wYXJhbXMuYXV0b3BsYXkmJmUucGFyYW1zLmF1dG9wbGF5LmVuYWJsZWQ/Im9mZiI6InBvbGl0ZSI7dmFyIHA7cD1yLGkuYXR0cigiaWQiLHApLGZ1bmN0aW9uKGUsdCl7ZS5hdHRyKCJhcmlhLWxpdmUiLHQpfShpLG4pLHQuaXRlbVJvbGVEZXNjcmlwdGlvbk1lc3NhZ2UmJm8oZChlLnNsaWRlcyksdC5pdGVtUm9sZURlc2NyaXB0aW9uTWVzc2FnZSksbChkKGUuc2xpZGVzKSx0LnNsaWRlUm9sZSk7Y29uc3QgdT1lLnBhcmFtcy5sb29wP2Uuc2xpZGVzLmZpbHRlcigodD0+IXQuY2xhc3NMaXN0LmNvbnRhaW5zKGUucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKSkubGVuZ3RoOmUuc2xpZGVzLmxlbmd0aDtsZXQgbSx2O2Uuc2xpZGVzLmVhY2goKChzLGEpPT57Y29uc3QgaT1kKHMpLHI9ZS5wYXJhbXMubG9vcD9wYXJzZUludChpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApOmE7YyhpLHQuc2xpZGVMYWJlbE1lc3NhZ2UucmVwbGFjZSgvXHtce2luZGV4XH1cfS8scisxKS5yZXBsYWNlKC9ce1x7c2xpZGVzTGVuZ3RoXH1cfS8sdSkpfSkpLGUubmF2aWdhdGlvbiYmZS5uYXZpZ2F0aW9uLiRuZXh0RWwmJihtPWUubmF2aWdhdGlvbi4kbmV4dEVsKSxlLm5hdmlnYXRpb24mJmUubmF2aWdhdGlvbi4kcHJldkVsJiYodj1lLm5hdmlnYXRpb24uJHByZXZFbCksbSYmbS5sZW5ndGgmJmcobSxyLHQubmV4dFNsaWRlTWVzc2FnZSksdiYmdi5sZW5ndGgmJmcodixyLHQucHJldlNsaWRlTWVzc2FnZSksZigpJiZlLnBhZ2luYXRpb24uJGVsLm9uKCJrZXlkb3duIixXKGUucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpLGgpfXMoImJlZm9yZUluaXQiLCgoKT0+e2E9ZChgPHNwYW4gY2xhc3M9IiR7ZS5wYXJhbXMuYTExeS5ub3RpZmljYXRpb25DbGFzc30iIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBhcmlhLWF0b21pYz0idHJ1ZSI+PC9zcGFuPmApfSkpLHMoImFmdGVySW5pdCIsKCgpPT57ZS5wYXJhbXMuYTExeS5lbmFibGVkJiYodigpLG0oKSl9KSkscygidG9FZGdlIiwoKCk9PntlLnBhcmFtcy5hMTF5LmVuYWJsZWQmJm0oKX0pKSxzKCJmcm9tRWRnZSIsKCgpPT57ZS5wYXJhbXMuYTExeS5lbmFibGVkJiZtKCl9KSkscygicGFnaW5hdGlvblVwZGF0ZSIsKCgpPT57ZS5wYXJhbXMuYTExeS5lbmFibGVkJiZmdW5jdGlvbigpe2NvbnN0IHQ9ZS5wYXJhbXMuYTExeTtmKCkmJmUucGFnaW5hdGlvbi5idWxsZXRzLmVhY2goKHM9Pntjb25zdCBhPWQocyk7cihhKSxlLnBhcmFtcy5wYWdpbmF0aW9uLnJlbmRlckJ1bGxldHx8KGwoYSwiYnV0dG9uIiksYyhhLHQucGFnaW5hdGlvbkJ1bGxldE1lc3NhZ2UucmVwbGFjZSgvXHtce2luZGV4XH1cfS8sYS5pbmRleCgpKzEpKSl9KSl9KCl9KSkscygiZGVzdHJveSIsKCgpPT57ZS5wYXJhbXMuYTExeS5lbmFibGVkJiZmdW5jdGlvbigpe2xldCB0LHM7YSYmYS5sZW5ndGg+MCYmYS5yZW1vdmUoKSxlLm5hdmlnYXRpb24mJmUubmF2aWdhdGlvbi4kbmV4dEVsJiYodD1lLm5hdmlnYXRpb24uJG5leHRFbCksZS5uYXZpZ2F0aW9uJiZlLm5hdmlnYXRpb24uJHByZXZFbCYmKHM9ZS5uYXZpZ2F0aW9uLiRwcmV2RWwpLHQmJnQub2ZmKCJrZXlkb3duIixoKSxzJiZzLm9mZigia2V5ZG93biIsaCksZigpJiZlLnBhZ2luYXRpb24uJGVsLm9mZigia2V5ZG93biIsVyhlLnBhcmFtcy5wYWdpbmF0aW9uLmJ1bGxldENsYXNzKSxoKX0oKX0pKX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXt0KHtoaXN0b3J5OntlbmFibGVkOiExLHJvb3Q6IiIscmVwbGFjZVN0YXRlOiExLGtleToic2xpZGVzIn19KTtsZXQgYT0hMSxpPXt9O2NvbnN0IG49ZT0+ZS50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvW15cdy1dKy9nLCIiKS5yZXBsYWNlKC8tLSsvZywiLSIpLnJlcGxhY2UoL14tKy8sIiIpLnJlcGxhY2UoLy0rJC8sIiIpLGw9ZT0+e2NvbnN0IHQ9cigpO2xldCBzO3M9ZT9uZXcgVVJMKGUpOnQubG9jYXRpb247Y29uc3QgYT1zLnBhdGhuYW1lLnNsaWNlKDEpLnNwbGl0KCIvIikuZmlsdGVyKChlPT4iIiE9PWUpKSxpPWEubGVuZ3RoO3JldHVybntrZXk6YVtpLTJdLHZhbHVlOmFbaS0xXX19LG89KHQscyk9Pntjb25zdCBpPXIoKTtpZighYXx8IWUucGFyYW1zLmhpc3RvcnkuZW5hYmxlZClyZXR1cm47bGV0IGw7bD1lLnBhcmFtcy51cmw/bmV3IFVSTChlLnBhcmFtcy51cmwpOmkubG9jYXRpb247Y29uc3Qgbz1lLnNsaWRlcy5lcShzKTtsZXQgZD1uKG8uYXR0cigiZGF0YS1oaXN0b3J5IikpO2lmKGUucGFyYW1zLmhpc3Rvcnkucm9vdC5sZW5ndGg+MCl7bGV0IHM9ZS5wYXJhbXMuaGlzdG9yeS5yb290OyIvIj09PXNbcy5sZW5ndGgtMV0mJihzPXMuc2xpY2UoMCxzLmxlbmd0aC0xKSksZD1gJHtzfS8ke3R9LyR7ZH1gfWVsc2UgbC5wYXRobmFtZS5pbmNsdWRlcyh0KXx8KGQ9YCR7dH0vJHtkfWApO2NvbnN0IGM9aS5oaXN0b3J5LnN0YXRlO2MmJmMudmFsdWU9PT1kfHwoZS5wYXJhbXMuaGlzdG9yeS5yZXBsYWNlU3RhdGU/aS5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7dmFsdWU6ZH0sbnVsbCxkKTppLmhpc3RvcnkucHVzaFN0YXRlKHt2YWx1ZTpkfSxudWxsLGQpKX0sZD0odCxzLGEpPT57aWYocylmb3IobGV0IGk9MCxyPWUuc2xpZGVzLmxlbmd0aDtpPHI7aSs9MSl7Y29uc3Qgcj1lLnNsaWRlcy5lcShpKTtpZihuKHIuYXR0cigiZGF0YS1oaXN0b3J5IikpPT09cyYmIXIuaGFzQ2xhc3MoZS5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpe2NvbnN0IHM9ci5pbmRleCgpO2Uuc2xpZGVUbyhzLHQsYSl9fWVsc2UgZS5zbGlkZVRvKDAsdCxhKX0sYz0oKT0+e2k9bChlLnBhcmFtcy51cmwpLGQoZS5wYXJhbXMuc3BlZWQsZS5wYXRocy52YWx1ZSwhMSl9O3MoImluaXQiLCgoKT0+e2UucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCYmKCgpPT57Y29uc3QgdD1yKCk7aWYoZS5wYXJhbXMuaGlzdG9yeSl7aWYoIXQuaGlzdG9yeXx8IXQuaGlzdG9yeS5wdXNoU3RhdGUpcmV0dXJuIGUucGFyYW1zLmhpc3RvcnkuZW5hYmxlZD0hMSx2b2lkKGUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQ9ITApO2E9ITAsaT1sKGUucGFyYW1zLnVybCksKGkua2V5fHxpLnZhbHVlKSYmKGQoMCxpLnZhbHVlLGUucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCksZS5wYXJhbXMuaGlzdG9yeS5yZXBsYWNlU3RhdGV8fHQuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGMpKX19KSgpfSkpLHMoImRlc3Ryb3kiLCgoKT0+e2UucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCYmKCgpPT57Y29uc3QgdD1yKCk7ZS5wYXJhbXMuaGlzdG9yeS5yZXBsYWNlU3RhdGV8fHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGMpfSkoKX0pKSxzKCJ0cmFuc2l0aW9uRW5kIF9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiwoKCk9PnthJiZvKGUucGFyYW1zLmhpc3Rvcnkua2V5LGUuYWN0aXZlSW5kZXgpfSkpLHMoInNsaWRlQ2hhbmdlIiwoKCk9PnthJiZlLnBhcmFtcy5jc3NNb2RlJiZvKGUucGFyYW1zLmhpc3Rvcnkua2V5LGUuYWN0aXZlSW5kZXgpfSkpfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsZW1pdDpzLG9uOml9KXtsZXQgbj0hMTtjb25zdCBsPWEoKSxvPXIoKTt0KHtoYXNoTmF2aWdhdGlvbjp7ZW5hYmxlZDohMSxyZXBsYWNlU3RhdGU6ITEsd2F0Y2hTdGF0ZTohMX19KTtjb25zdCBjPSgpPT57cygiaGFzaENoYW5nZSIpO2NvbnN0IHQ9bC5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoIiMiLCIiKTtpZih0IT09ZS5zbGlkZXMuZXEoZS5hY3RpdmVJbmRleCkuYXR0cigiZGF0YS1oYXNoIikpe2NvbnN0IHM9ZS4kd3JhcHBlckVsLmNoaWxkcmVuKGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfVtkYXRhLWhhc2g9IiR7dH0iXWApLmluZGV4KCk7aWYodm9pZCAwPT09cylyZXR1cm47ZS5zbGlkZVRvKHMpfX0scD0oKT0+e2lmKG4mJmUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQpaWYoZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24ucmVwbGFjZVN0YXRlJiZvLmhpc3RvcnkmJm8uaGlzdG9yeS5yZXBsYWNlU3RhdGUpby5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsYCMke2Uuc2xpZGVzLmVxKGUuYWN0aXZlSW5kZXgpLmF0dHIoImRhdGEtaGFzaCIpfWB8fCIiKSxzKCJoYXNoU2V0Iik7ZWxzZXtjb25zdCB0PWUuc2xpZGVzLmVxKGUuYWN0aXZlSW5kZXgpLGE9dC5hdHRyKCJkYXRhLWhhc2giKXx8dC5hdHRyKCJkYXRhLWhpc3RvcnkiKTtsLmxvY2F0aW9uLmhhc2g9YXx8IiIscygiaGFzaFNldCIpfX07aSgiaW5pdCIsKCgpPT57ZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCYmKCgpPT57aWYoIWUucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWR8fGUucGFyYW1zLmhpc3RvcnkmJmUucGFyYW1zLmhpc3RvcnkuZW5hYmxlZClyZXR1cm47bj0hMDtjb25zdCB0PWwubG9jYXRpb24uaGFzaC5yZXBsYWNlKCIjIiwiIik7aWYodCl7Y29uc3Qgcz0wO2ZvcihsZXQgYT0wLGk9ZS5zbGlkZXMubGVuZ3RoO2E8aTthKz0xKXtjb25zdCBpPWUuc2xpZGVzLmVxKGEpO2lmKChpLmF0dHIoImRhdGEtaGFzaCIpfHxpLmF0dHIoImRhdGEtaGlzdG9yeSIpKT09PXQmJiFpLmhhc0NsYXNzKGUucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpKXtjb25zdCB0PWkuaW5kZXgoKTtlLnNsaWRlVG8odCxzLGUucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMCl9fX1lLnBhcmFtcy5oYXNoTmF2aWdhdGlvbi53YXRjaFN0YXRlJiZkKG8pLm9uKCJoYXNoY2hhbmdlIixjKX0pKCl9KSksaSgiZGVzdHJveSIsKCgpPT57ZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCYmZS5wYXJhbXMuaGFzaE5hdmlnYXRpb24ud2F0Y2hTdGF0ZSYmZChvKS5vZmYoImhhc2hjaGFuZ2UiLGMpfSkpLGkoInRyYW5zaXRpb25FbmQgX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UiLCgoKT0+e24mJnAoKX0pKSxpKCJzbGlkZUNoYW5nZSIsKCgpPT57biYmZS5wYXJhbXMuY3NzTW9kZSYmcCgpfSkpfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsb246cyxlbWl0Oml9KXtsZXQgcjtmdW5jdGlvbiBuKCl7Y29uc3QgdD1lLnNsaWRlcy5lcShlLmFjdGl2ZUluZGV4KTtsZXQgcz1lLnBhcmFtcy5hdXRvcGxheS5kZWxheTt0LmF0dHIoImRhdGEtc3dpcGVyLWF1dG9wbGF5IikmJihzPXQuYXR0cigiZGF0YS1zd2lwZXItYXV0b3BsYXkiKXx8ZS5wYXJhbXMuYXV0b3BsYXkuZGVsYXkpLGNsZWFyVGltZW91dChyKSxyPXAoKCgpPT57bGV0IHQ7ZS5wYXJhbXMuYXV0b3BsYXkucmV2ZXJzZURpcmVjdGlvbj9lLnBhcmFtcy5sb29wPyhlLmxvb3BGaXgoKSx0PWUuc2xpZGVQcmV2KGUucGFyYW1zLnNwZWVkLCEwLCEwKSxpKCJhdXRvcGxheSIpKTplLmlzQmVnaW5uaW5nP2UucGFyYW1zLmF1dG9wbGF5LnN0b3BPbkxhc3RTbGlkZT9vKCk6KHQ9ZS5zbGlkZVRvKGUuc2xpZGVzLmxlbmd0aC0xLGUucGFyYW1zLnNwZWVkLCEwLCEwKSxpKCJhdXRvcGxheSIpKToodD1lLnNsaWRlUHJldihlLnBhcmFtcy5zcGVlZCwhMCwhMCksaSgiYXV0b3BsYXkiKSk6ZS5wYXJhbXMubG9vcD8oZS5sb29wRml4KCksdD1lLnNsaWRlTmV4dChlLnBhcmFtcy5zcGVlZCwhMCwhMCksaSgiYXV0b3BsYXkiKSk6ZS5pc0VuZD9lLnBhcmFtcy5hdXRvcGxheS5zdG9wT25MYXN0U2xpZGU/bygpOih0PWUuc2xpZGVUbygwLGUucGFyYW1zLnNwZWVkLCEwLCEwKSxpKCJhdXRvcGxheSIpKToodD1lLnNsaWRlTmV4dChlLnBhcmFtcy5zcGVlZCwhMCwhMCksaSgiYXV0b3BsYXkiKSksKGUucGFyYW1zLmNzc01vZGUmJmUuYXV0b3BsYXkucnVubmluZ3x8ITE9PT10KSYmbigpfSkscyl9ZnVuY3Rpb24gbCgpe3JldHVybiB2b2lkIDA9PT1yJiYoIWUuYXV0b3BsYXkucnVubmluZyYmKGUuYXV0b3BsYXkucnVubmluZz0hMCxpKCJhdXRvcGxheVN0YXJ0IiksbigpLCEwKSl9ZnVuY3Rpb24gbygpe3JldHVybiEhZS5hdXRvcGxheS5ydW5uaW5nJiYodm9pZCAwIT09ciYmKHImJihjbGVhclRpbWVvdXQocikscj12b2lkIDApLGUuYXV0b3BsYXkucnVubmluZz0hMSxpKCJhdXRvcGxheVN0b3AiKSwhMCkpfWZ1bmN0aW9uIGQodCl7ZS5hdXRvcGxheS5ydW5uaW5nJiYoZS5hdXRvcGxheS5wYXVzZWR8fChyJiZjbGVhclRpbWVvdXQociksZS5hdXRvcGxheS5wYXVzZWQ9ITAsMCE9PXQmJmUucGFyYW1zLmF1dG9wbGF5LndhaXRGb3JUcmFuc2l0aW9uP1sidHJhbnNpdGlvbmVuZCIsIndlYmtpdFRyYW5zaXRpb25FbmQiXS5mb3JFYWNoKCh0PT57ZS4kd3JhcHBlckVsWzBdLmFkZEV2ZW50TGlzdGVuZXIodCx1KX0pKTooZS5hdXRvcGxheS5wYXVzZWQ9ITEsbigpKSkpfWZ1bmN0aW9uIGMoKXtjb25zdCB0PWEoKTsiaGlkZGVuIj09PXQudmlzaWJpbGl0eVN0YXRlJiZlLmF1dG9wbGF5LnJ1bm5pbmcmJmQoKSwidmlzaWJsZSI9PT10LnZpc2liaWxpdHlTdGF0ZSYmZS5hdXRvcGxheS5wYXVzZWQmJihuKCksZS5hdXRvcGxheS5wYXVzZWQ9ITEpfWZ1bmN0aW9uIHUodCl7ZSYmIWUuZGVzdHJveWVkJiZlLiR3cmFwcGVyRWwmJnQudGFyZ2V0PT09ZS4kd3JhcHBlckVsWzBdJiYoWyJ0cmFuc2l0aW9uZW5kIiwid2Via2l0VHJhbnNpdGlvbkVuZCJdLmZvckVhY2goKHQ9PntlLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHUpfSkpLGUuYXV0b3BsYXkucGF1c2VkPSExLGUuYXV0b3BsYXkucnVubmluZz9uKCk6bygpKX1mdW5jdGlvbiBoKCl7ZS5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24/bygpOmQoKSxbInRyYW5zaXRpb25lbmQiLCJ3ZWJraXRUcmFuc2l0aW9uRW5kIl0uZm9yRWFjaCgodD0+e2UuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKHQsdSl9KSl9ZnVuY3Rpb24gbSgpe2UucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9ufHwoZS5hdXRvcGxheS5wYXVzZWQ9ITEsbigpKX1lLmF1dG9wbGF5PXtydW5uaW5nOiExLHBhdXNlZDohMX0sdCh7YXV0b3BsYXk6e2VuYWJsZWQ6ITEsZGVsYXk6M2UzLHdhaXRGb3JUcmFuc2l0aW9uOiEwLGRpc2FibGVPbkludGVyYWN0aW9uOiEwLHN0b3BPbkxhc3RTbGlkZTohMSxyZXZlcnNlRGlyZWN0aW9uOiExLHBhdXNlT25Nb3VzZUVudGVyOiExfX0pLHMoImluaXQiLCgoKT0+e2lmKGUucGFyYW1zLmF1dG9wbGF5LmVuYWJsZWQpe2woKTthKCkuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsYyksZS5wYXJhbXMuYXV0b3BsYXkucGF1c2VPbk1vdXNlRW50ZXImJihlLiRlbC5vbigibW91c2VlbnRlciIsaCksZS4kZWwub24oIm1vdXNlbGVhdmUiLG0pKX19KSkscygiYmVmb3JlVHJhbnNpdGlvblN0YXJ0IiwoKHQscyxhKT0+e2UuYXV0b3BsYXkucnVubmluZyYmKGF8fCFlLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbj9lLmF1dG9wbGF5LnBhdXNlKHMpOm8oKSl9KSkscygic2xpZGVyRmlyc3RNb3ZlIiwoKCk9PntlLmF1dG9wbGF5LnJ1bm5pbmcmJihlLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbj9vKCk6ZCgpKX0pKSxzKCJ0b3VjaEVuZCIsKCgpPT57ZS5wYXJhbXMuY3NzTW9kZSYmZS5hdXRvcGxheS5wYXVzZWQmJiFlLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbiYmbigpfSkpLHMoImRlc3Ryb3kiLCgoKT0+e2UuJGVsLm9mZigibW91c2VlbnRlciIsaCksZS4kZWwub2ZmKCJtb3VzZWxlYXZlIixtKSxlLmF1dG9wbGF5LnJ1bm5pbmcmJm8oKTthKCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsYyl9KSksT2JqZWN0LmFzc2lnbihlLmF1dG9wbGF5LHtwYXVzZTpkLHJ1bjpuLHN0YXJ0Omwsc3RvcDpvfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzfSl7dCh7dGh1bWJzOntzd2lwZXI6bnVsbCxtdWx0aXBsZUFjdGl2ZVRodW1iczohMCxhdXRvU2Nyb2xsT2Zmc2V0OjAsc2xpZGVUaHVtYkFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtdGh1bWItYWN0aXZlIix0aHVtYnNDb250YWluZXJDbGFzczoic3dpcGVyLXRodW1icyJ9fSk7bGV0IGE9ITEsaT0hMTtmdW5jdGlvbiByKCl7Y29uc3QgdD1lLnRodW1icy5zd2lwZXI7aWYoIXQpcmV0dXJuO2NvbnN0IHM9dC5jbGlja2VkSW5kZXgsYT10LmNsaWNrZWRTbGlkZTtpZihhJiZkKGEpLmhhc0NsYXNzKGUucGFyYW1zLnRodW1icy5zbGlkZVRodW1iQWN0aXZlQ2xhc3MpKXJldHVybjtpZihudWxsPT1zKXJldHVybjtsZXQgaTtpZihpPXQucGFyYW1zLmxvb3A/cGFyc2VJbnQoZCh0LmNsaWNrZWRTbGlkZSkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwxMCk6cyxlLnBhcmFtcy5sb29wKXtsZXQgdD1lLmFjdGl2ZUluZGV4O2Uuc2xpZGVzLmVxKHQpLmhhc0NsYXNzKGUucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpJiYoZS5sb29wRml4KCksZS5fY2xpZW50TGVmdD1lLiR3cmFwcGVyRWxbMF0uY2xpZW50TGVmdCx0PWUuYWN0aXZlSW5kZXgpO2NvbnN0IHM9ZS5zbGlkZXMuZXEodCkucHJldkFsbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2l9Il1gKS5lcSgwKS5pbmRleCgpLGE9ZS5zbGlkZXMuZXEodCkubmV4dEFsbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2l9Il1gKS5lcSgwKS5pbmRleCgpO2k9dm9pZCAwPT09cz9hOnZvaWQgMD09PWE/czphLXQ8dC1zP2E6c31lLnNsaWRlVG8oaSl9ZnVuY3Rpb24gbigpe2NvbnN0e3RodW1iczp0fT1lLnBhcmFtcztpZihhKXJldHVybiExO2E9ITA7Y29uc3Qgcz1lLmNvbnN0cnVjdG9yO2lmKHQuc3dpcGVyIGluc3RhbmNlb2YgcyllLnRodW1icy5zd2lwZXI9dC5zd2lwZXIsT2JqZWN0LmFzc2lnbihlLnRodW1icy5zd2lwZXIub3JpZ2luYWxQYXJhbXMse3dhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsc2xpZGVUb0NsaWNrZWRTbGlkZTohMX0pLE9iamVjdC5hc3NpZ24oZS50aHVtYnMuc3dpcGVyLnBhcmFtcyx7d2F0Y2hTbGlkZXNQcm9ncmVzczohMCxzbGlkZVRvQ2xpY2tlZFNsaWRlOiExfSk7ZWxzZSBpZihtKHQuc3dpcGVyKSl7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LHQuc3dpcGVyKTtPYmplY3QuYXNzaWduKGEse3dhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsc2xpZGVUb0NsaWNrZWRTbGlkZTohMX0pLGUudGh1bWJzLnN3aXBlcj1uZXcgcyhhKSxpPSEwfXJldHVybiBlLnRodW1icy5zd2lwZXIuJGVsLmFkZENsYXNzKGUucGFyYW1zLnRodW1icy50aHVtYnNDb250YWluZXJDbGFzcyksZS50aHVtYnMuc3dpcGVyLm9uKCJ0YXAiLHIpLCEwfWZ1bmN0aW9uIGwodCl7Y29uc3Qgcz1lLnRodW1icy5zd2lwZXI7aWYoIXMpcmV0dXJuO2NvbnN0IGE9ImF1dG8iPT09cy5wYXJhbXMuc2xpZGVzUGVyVmlldz9zLnNsaWRlc1BlclZpZXdEeW5hbWljKCk6cy5wYXJhbXMuc2xpZGVzUGVyVmlldyxpPWUucGFyYW1zLnRodW1icy5hdXRvU2Nyb2xsT2Zmc2V0LHI9aSYmIXMucGFyYW1zLmxvb3A7aWYoZS5yZWFsSW5kZXghPT1zLnJlYWxJbmRleHx8cil7bGV0IG4sbCxvPXMuYWN0aXZlSW5kZXg7aWYocy5wYXJhbXMubG9vcCl7cy5zbGlkZXMuZXEobykuaGFzQ2xhc3Mocy5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykmJihzLmxvb3BGaXgoKSxzLl9jbGllbnRMZWZ0PXMuJHdyYXBwZXJFbFswXS5jbGllbnRMZWZ0LG89cy5hY3RpdmVJbmRleCk7Y29uc3QgdD1zLnNsaWRlcy5lcShvKS5wcmV2QWxsKGBbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7ZS5yZWFsSW5kZXh9Il1gKS5lcSgwKS5pbmRleCgpLGE9cy5zbGlkZXMuZXEobykubmV4dEFsbChgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2UucmVhbEluZGV4fSJdYCkuZXEoMCkuaW5kZXgoKTtuPXZvaWQgMD09PXQ/YTp2b2lkIDA9PT1hP3Q6YS1vPT1vLXQ/cy5wYXJhbXMuc2xpZGVzUGVyR3JvdXA+MT9hOm86YS1vPG8tdD9hOnQsbD1lLmFjdGl2ZUluZGV4PmUucHJldmlvdXNJbmRleD8ibmV4dCI6InByZXYifWVsc2Ugbj1lLnJlYWxJbmRleCxsPW4+ZS5wcmV2aW91c0luZGV4PyJuZXh0IjoicHJldiI7ciYmKG4rPSJuZXh0Ij09PWw/aTotMSppKSxzLnZpc2libGVTbGlkZXNJbmRleGVzJiZzLnZpc2libGVTbGlkZXNJbmRleGVzLmluZGV4T2Yobik8MCYmKHMucGFyYW1zLmNlbnRlcmVkU2xpZGVzP249bj5vP24tTWF0aC5mbG9vcihhLzIpKzE6bitNYXRoLmZsb29yKGEvMiktMTpuPm8mJnMucGFyYW1zLnNsaWRlc1Blckdyb3VwLHMuc2xpZGVUbyhuLHQ/MDp2b2lkIDApKX1sZXQgbj0xO2NvbnN0IGw9ZS5wYXJhbXMudGh1bWJzLnNsaWRlVGh1bWJBY3RpdmVDbGFzcztpZihlLnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEmJiFlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcyYmKG49ZS5wYXJhbXMuc2xpZGVzUGVyVmlldyksZS5wYXJhbXMudGh1bWJzLm11bHRpcGxlQWN0aXZlVGh1bWJzfHwobj0xKSxuPU1hdGguZmxvb3Iobikscy5zbGlkZXMucmVtb3ZlQ2xhc3MobCkscy5wYXJhbXMubG9vcHx8cy5wYXJhbXMudmlydHVhbCYmcy5wYXJhbXMudmlydHVhbC5lbmFibGVkKWZvcihsZXQgdD0wO3Q8bjt0Kz0xKXMuJHdyYXBwZXJFbC5jaGlsZHJlbihgW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2UucmVhbEluZGV4K3R9Il1gKS5hZGRDbGFzcyhsKTtlbHNlIGZvcihsZXQgdD0wO3Q8bjt0Kz0xKXMuc2xpZGVzLmVxKGUucmVhbEluZGV4K3QpLmFkZENsYXNzKGwpfWUudGh1bWJzPXtzd2lwZXI6bnVsbH0scygiYmVmb3JlSW5pdCIsKCgpPT57Y29uc3R7dGh1bWJzOnR9PWUucGFyYW1zO3QmJnQuc3dpcGVyJiYobigpLGwoITApKX0pKSxzKCJzbGlkZUNoYW5nZSB1cGRhdGUgcmVzaXplIG9ic2VydmVyVXBkYXRlIiwoKCk9PntlLnRodW1icy5zd2lwZXImJmwoKX0pKSxzKCJzZXRUcmFuc2l0aW9uIiwoKHQscyk9Pntjb25zdCBhPWUudGh1bWJzLnN3aXBlcjthJiZhLnNldFRyYW5zaXRpb24ocyl9KSkscygiYmVmb3JlRGVzdHJveSIsKCgpPT57Y29uc3QgdD1lLnRodW1icy5zd2lwZXI7dCYmaSYmdCYmdC5kZXN0cm95KCl9KSksT2JqZWN0LmFzc2lnbihlLnRodW1icyx7aW5pdDpuLHVwZGF0ZTpsfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxlbWl0OnMsb25jZTphfSl7dCh7ZnJlZU1vZGU6e2VuYWJsZWQ6ITEsbW9tZW50dW06ITAsbW9tZW50dW1SYXRpbzoxLG1vbWVudHVtQm91bmNlOiEwLG1vbWVudHVtQm91bmNlUmF0aW86MSxtb21lbnR1bVZlbG9jaXR5UmF0aW86MSxzdGlja3k6ITEsbWluaW11bVZlbG9jaXR5Oi4wMn19KSxPYmplY3QuYXNzaWduKGUse2ZyZWVNb2RlOntvblRvdWNoTW92ZTpmdW5jdGlvbigpe2NvbnN0e3RvdWNoRXZlbnRzRGF0YTp0LHRvdWNoZXM6c309ZTswPT09dC52ZWxvY2l0aWVzLmxlbmd0aCYmdC52ZWxvY2l0aWVzLnB1c2goe3Bvc2l0aW9uOnNbZS5pc0hvcml6b250YWwoKT8ic3RhcnRYIjoic3RhcnRZIl0sdGltZTp0LnRvdWNoU3RhcnRUaW1lfSksdC52ZWxvY2l0aWVzLnB1c2goe3Bvc2l0aW9uOnNbZS5pc0hvcml6b250YWwoKT8iY3VycmVudFgiOiJjdXJyZW50WSJdLHRpbWU6dSgpfSl9LG9uVG91Y2hFbmQ6ZnVuY3Rpb24oe2N1cnJlbnRQb3M6dH0pe2NvbnN0e3BhcmFtczppLCR3cmFwcGVyRWw6cixydGxUcmFuc2xhdGU6bixzbmFwR3JpZDpsLHRvdWNoRXZlbnRzRGF0YTpvfT1lLGQ9dSgpLW8udG91Y2hTdGFydFRpbWU7aWYodDwtZS5taW5UcmFuc2xhdGUoKSllLnNsaWRlVG8oZS5hY3RpdmVJbmRleCk7ZWxzZSBpZih0Pi1lLm1heFRyYW5zbGF0ZSgpKWUuc2xpZGVzLmxlbmd0aDxsLmxlbmd0aD9lLnNsaWRlVG8obC5sZW5ndGgtMSk6ZS5zbGlkZVRvKGUuc2xpZGVzLmxlbmd0aC0xKTtlbHNle2lmKGkuZnJlZU1vZGUubW9tZW50dW0pe2lmKG8udmVsb2NpdGllcy5sZW5ndGg+MSl7Y29uc3QgdD1vLnZlbG9jaXRpZXMucG9wKCkscz1vLnZlbG9jaXRpZXMucG9wKCksYT10LnBvc2l0aW9uLXMucG9zaXRpb24scj10LnRpbWUtcy50aW1lO2UudmVsb2NpdHk9YS9yLGUudmVsb2NpdHkvPTIsTWF0aC5hYnMoZS52ZWxvY2l0eSk8aS5mcmVlTW9kZS5taW5pbXVtVmVsb2NpdHkmJihlLnZlbG9jaXR5PTApLChyPjE1MHx8dSgpLXQudGltZT4zMDApJiYoZS52ZWxvY2l0eT0wKX1lbHNlIGUudmVsb2NpdHk9MDtlLnZlbG9jaXR5Kj1pLmZyZWVNb2RlLm1vbWVudHVtVmVsb2NpdHlSYXRpbyxvLnZlbG9jaXRpZXMubGVuZ3RoPTA7bGV0IHQ9MWUzKmkuZnJlZU1vZGUubW9tZW50dW1SYXRpbztjb25zdCBkPWUudmVsb2NpdHkqdDtsZXQgYz1lLnRyYW5zbGF0ZStkO24mJihjPS1jKTtsZXQgcCxoPSExO2NvbnN0IG09MjAqTWF0aC5hYnMoZS52ZWxvY2l0eSkqaS5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZVJhdGlvO2xldCBmO2lmKGM8ZS5tYXhUcmFuc2xhdGUoKSlpLmZyZWVNb2RlLm1vbWVudHVtQm91bmNlPyhjK2UubWF4VHJhbnNsYXRlKCk8LW0mJihjPWUubWF4VHJhbnNsYXRlKCktbSkscD1lLm1heFRyYW5zbGF0ZSgpLGg9ITAsby5hbGxvd01vbWVudHVtQm91bmNlPSEwKTpjPWUubWF4VHJhbnNsYXRlKCksaS5sb29wJiZpLmNlbnRlcmVkU2xpZGVzJiYoZj0hMCk7ZWxzZSBpZihjPmUubWluVHJhbnNsYXRlKCkpaS5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZT8oYy1lLm1pblRyYW5zbGF0ZSgpPm0mJihjPWUubWluVHJhbnNsYXRlKCkrbSkscD1lLm1pblRyYW5zbGF0ZSgpLGg9ITAsby5hbGxvd01vbWVudHVtQm91bmNlPSEwKTpjPWUubWluVHJhbnNsYXRlKCksaS5sb29wJiZpLmNlbnRlcmVkU2xpZGVzJiYoZj0hMCk7ZWxzZSBpZihpLmZyZWVNb2RlLnN0aWNreSl7bGV0IHQ7Zm9yKGxldCBlPTA7ZTxsLmxlbmd0aDtlKz0xKWlmKGxbZV0+LWMpe3Q9ZTticmVha31jPU1hdGguYWJzKGxbdF0tYyk8TWF0aC5hYnMobFt0LTFdLWMpfHwibmV4dCI9PT1lLnN3aXBlRGlyZWN0aW9uP2xbdF06bFt0LTFdLGM9LWN9aWYoZiYmYSgidHJhbnNpdGlvbkVuZCIsKCgpPT57ZS5sb29wRml4KCl9KSksMCE9PWUudmVsb2NpdHkpe2lmKHQ9bj9NYXRoLmFicygoLWMtZS50cmFuc2xhdGUpL2UudmVsb2NpdHkpOk1hdGguYWJzKChjLWUudHJhbnNsYXRlKS9lLnZlbG9jaXR5KSxpLmZyZWVNb2RlLnN0aWNreSl7Y29uc3Qgcz1NYXRoLmFicygobj8tYzpjKS1lLnRyYW5zbGF0ZSksYT1lLnNsaWRlc1NpemVzR3JpZFtlLmFjdGl2ZUluZGV4XTt0PXM8YT9pLnNwZWVkOnM8MiphPzEuNSppLnNwZWVkOjIuNSppLnNwZWVkfX1lbHNlIGlmKGkuZnJlZU1vZGUuc3RpY2t5KXJldHVybiB2b2lkIGUuc2xpZGVUb0Nsb3Nlc3QoKTtpLmZyZWVNb2RlLm1vbWVudHVtQm91bmNlJiZoPyhlLnVwZGF0ZVByb2dyZXNzKHApLGUuc2V0VHJhbnNpdGlvbih0KSxlLnNldFRyYW5zbGF0ZShjKSxlLnRyYW5zaXRpb25TdGFydCghMCxlLnN3aXBlRGlyZWN0aW9uKSxlLmFuaW1hdGluZz0hMCxyLnRyYW5zaXRpb25FbmQoKCgpPT57ZSYmIWUuZGVzdHJveWVkJiZvLmFsbG93TW9tZW50dW1Cb3VuY2UmJihzKCJtb21lbnR1bUJvdW5jZSIpLGUuc2V0VHJhbnNpdGlvbihpLnNwZWVkKSxzZXRUaW1lb3V0KCgoKT0+e2Uuc2V0VHJhbnNsYXRlKHApLHIudHJhbnNpdGlvbkVuZCgoKCk9PntlJiYhZS5kZXN0cm95ZWQmJmUudHJhbnNpdGlvbkVuZCgpfSkpfSksMCkpfSkpKTplLnZlbG9jaXR5PyhzKCJfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZSIpLGUudXBkYXRlUHJvZ3Jlc3MoYyksZS5zZXRUcmFuc2l0aW9uKHQpLGUuc2V0VHJhbnNsYXRlKGMpLGUudHJhbnNpdGlvblN0YXJ0KCEwLGUuc3dpcGVEaXJlY3Rpb24pLGUuYW5pbWF0aW5nfHwoZS5hbmltYXRpbmc9ITAsci50cmFuc2l0aW9uRW5kKCgoKT0+e2UmJiFlLmRlc3Ryb3llZCYmZS50cmFuc2l0aW9uRW5kKCl9KSkpKTplLnVwZGF0ZVByb2dyZXNzKGMpLGUudXBkYXRlQWN0aXZlSW5kZXgoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKX1lbHNle2lmKGkuZnJlZU1vZGUuc3RpY2t5KXJldHVybiB2b2lkIGUuc2xpZGVUb0Nsb3Nlc3QoKTtpLmZyZWVNb2RlJiZzKCJfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZSIpfSghaS5mcmVlTW9kZS5tb21lbnR1bXx8ZD49aS5sb25nU3dpcGVzTXMpJiYoZS51cGRhdGVQcm9ncmVzcygpLGUudXBkYXRlQWN0aXZlSW5kZXgoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSl9fX19KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0fSl7bGV0IHMsYSxpO3Qoe2dyaWQ6e3Jvd3M6MSxmaWxsOiJjb2x1bW4ifX0pLGUuZ3JpZD17aW5pdFNsaWRlczp0PT57Y29uc3R7c2xpZGVzUGVyVmlldzpyfT1lLnBhcmFtcyx7cm93czpuLGZpbGw6bH09ZS5wYXJhbXMuZ3JpZDthPXMvbixpPU1hdGguZmxvb3IodC9uKSxzPU1hdGguZmxvb3IodC9uKT09PXQvbj90Ok1hdGguY2VpbCh0L24pKm4sImF1dG8iIT09ciYmInJvdyI9PT1sJiYocz1NYXRoLm1heChzLHIqbikpfSx1cGRhdGVTbGlkZToodCxyLG4sbCk9Pntjb25zdHtzbGlkZXNQZXJHcm91cDpvLHNwYWNlQmV0d2VlbjpkfT1lLnBhcmFtcyx7cm93czpjLGZpbGw6cH09ZS5wYXJhbXMuZ3JpZDtsZXQgdSxoLG07aWYoInJvdyI9PT1wJiZvPjEpe2NvbnN0IGU9TWF0aC5mbG9vcih0LyhvKmMpKSxhPXQtYypvKmUsaT0wPT09ZT9vOk1hdGgubWluKE1hdGguY2VpbCgobi1lKmMqbykvYyksbyk7bT1NYXRoLmZsb29yKGEvaSksaD1hLW0qaStlKm8sdT1oK20qcy9jLHIuY3NzKHsiLXdlYmtpdC1vcmRlciI6dSxvcmRlcjp1fSl9ZWxzZSJjb2x1bW4iPT09cD8oaD1NYXRoLmZsb29yKHQvYyksbT10LWgqYywoaD5pfHxoPT09aSYmbT09PWMtMSkmJihtKz0xLG0+PWMmJihtPTAsaCs9MSkpKToobT1NYXRoLmZsb29yKHQvYSksaD10LW0qYSk7ci5jc3MobCgibWFyZ2luLXRvcCIpLDAhPT1tP2QmJmAke2R9cHhgOiIiKX0sdXBkYXRlV3JhcHBlclNpemU6KHQsYSxpKT0+e2NvbnN0e3NwYWNlQmV0d2VlbjpyLGNlbnRlcmVkU2xpZGVzOm4scm91bmRMZW5ndGhzOmx9PWUucGFyYW1zLHtyb3dzOm99PWUucGFyYW1zLmdyaWQ7aWYoZS52aXJ0dWFsU2l6ZT0odCtyKSpzLGUudmlydHVhbFNpemU9TWF0aC5jZWlsKGUudmlydHVhbFNpemUvbyktcixlLiR3cmFwcGVyRWwuY3NzKHtbaSgid2lkdGgiKV06YCR7ZS52aXJ0dWFsU2l6ZStyfXB4YH0pLG4pe2Euc3BsaWNlKDAsYS5sZW5ndGgpO2NvbnN0IHQ9W107Zm9yKGxldCBzPTA7czxhLmxlbmd0aDtzKz0xKXtsZXQgaT1hW3NdO2wmJihpPU1hdGguZmxvb3IoaSkpLGFbc108ZS52aXJ0dWFsU2l6ZSthWzBdJiZ0LnB1c2goaSl9YS5wdXNoKC4uLnQpfX19fSxmdW5jdGlvbih7c3dpcGVyOmV9KXtPYmplY3QuYXNzaWduKGUse2FwcGVuZFNsaWRlOlIuYmluZChlKSxwcmVwZW5kU2xpZGU6ai5iaW5kKGUpLGFkZFNsaWRlOl8uYmluZChlKSxyZW1vdmVTbGlkZTpWLmJpbmQoZSkscmVtb3ZlQWxsU2xpZGVzOnEuYmluZChlKX0pfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsb246c30pe3Qoe2ZhZGVFZmZlY3Q6e2Nyb3NzRmFkZTohMSx0cmFuc2Zvcm1FbDpudWxsfX0pLEYoe2VmZmVjdDoiZmFkZSIsc3dpcGVyOmUsb246cyxzZXRUcmFuc2xhdGU6KCk9Pntjb25zdHtzbGlkZXM6dH09ZSxzPWUucGFyYW1zLmZhZGVFZmZlY3Q7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKz0xKXtjb25zdCB0PWUuc2xpZGVzLmVxKGEpO2xldCBpPS10WzBdLnN3aXBlclNsaWRlT2Zmc2V0O2UucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGV8fChpLT1lLnRyYW5zbGF0ZSk7bGV0IHI9MDtlLmlzSG9yaXpvbnRhbCgpfHwocj1pLGk9MCk7Y29uc3Qgbj1lLnBhcmFtcy5mYWRlRWZmZWN0LmNyb3NzRmFkZT9NYXRoLm1heCgxLU1hdGguYWJzKHRbMF0ucHJvZ3Jlc3MpLDApOjErTWF0aC5taW4oTWF0aC5tYXgodFswXS5wcm9ncmVzcywtMSksMCk7VShzLHQpLmNzcyh7b3BhY2l0eTpufSkudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgke2l9cHgsICR7cn1weCwgMHB4KWApfX0sc2V0VHJhbnNpdGlvbjp0PT57Y29uc3R7dHJhbnNmb3JtRWw6c309ZS5wYXJhbXMuZmFkZUVmZmVjdDsocz9lLnNsaWRlcy5maW5kKHMpOmUuc2xpZGVzKS50cmFuc2l0aW9uKHQpLEsoe3N3aXBlcjplLGR1cmF0aW9uOnQsdHJhbnNmb3JtRWw6cyxhbGxTbGlkZXM6ITB9KX0sb3ZlcndyaXRlUGFyYW1zOigpPT4oe3NsaWRlc1BlclZpZXc6MSxzbGlkZXNQZXJHcm91cDoxLHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsc3BhY2VCZXR3ZWVuOjAsdmlydHVhbFRyYW5zbGF0ZTohZS5wYXJhbXMuY3NzTW9kZX0pfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzfSl7dCh7Y3ViZUVmZmVjdDp7c2xpZGVTaGFkb3dzOiEwLHNoYWRvdzohMCxzaGFkb3dPZmZzZXQ6MjAsc2hhZG93U2NhbGU6Ljk0fX0pLEYoe2VmZmVjdDoiY3ViZSIsc3dpcGVyOmUsb246cyxzZXRUcmFuc2xhdGU6KCk9Pntjb25zdHskZWw6dCwkd3JhcHBlckVsOnMsc2xpZGVzOmEsd2lkdGg6aSxoZWlnaHQ6cixydGxUcmFuc2xhdGU6bixzaXplOmwsYnJvd3NlcjpvfT1lLGM9ZS5wYXJhbXMuY3ViZUVmZmVjdCxwPWUuaXNIb3Jpem9udGFsKCksdT1lLnZpcnR1YWwmJmUucGFyYW1zLnZpcnR1YWwuZW5hYmxlZDtsZXQgaCxtPTA7Yy5zaGFkb3cmJihwPyhoPXMuZmluZCgiLnN3aXBlci1jdWJlLXNoYWRvdyIpLDA9PT1oLmxlbmd0aCYmKGg9ZCgnPGRpdiBjbGFzcz0ic3dpcGVyLWN1YmUtc2hhZG93Ij48L2Rpdj4nKSxzLmFwcGVuZChoKSksaC5jc3Moe2hlaWdodDpgJHtpfXB4YH0pKTooaD10LmZpbmQoIi5zd2lwZXItY3ViZS1zaGFkb3ciKSwwPT09aC5sZW5ndGgmJihoPWQoJzxkaXYgY2xhc3M9InN3aXBlci1jdWJlLXNoYWRvdyI+PC9kaXY+JyksdC5hcHBlbmQoaCkpKSk7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKz0xKXtjb25zdCB0PWEuZXEoZSk7bGV0IHM9ZTt1JiYocz1wYXJzZUludCh0LmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApKTtsZXQgaT05MCpzLHI9TWF0aC5mbG9vcihpLzM2MCk7biYmKGk9LWkscj1NYXRoLmZsb29yKC1pLzM2MCkpO2NvbnN0IG89TWF0aC5tYXgoTWF0aC5taW4odFswXS5wcm9ncmVzcywxKSwtMSk7bGV0IGg9MCxmPTAsZz0wO3MlND09MD8oaD00Ki1yKmwsZz0wKToocy0xKSU0PT0wPyhoPTAsZz00Ki1yKmwpOihzLTIpJTQ9PTA/KGg9bCs0KnIqbCxnPWwpOihzLTMpJTQ9PTAmJihoPS1sLGc9MypsKzQqbCpyKSxuJiYoaD0taCkscHx8KGY9aCxoPTApO2NvbnN0IHY9YHJvdGF0ZVgoJHtwPzA6LWl9ZGVnKSByb3RhdGVZKCR7cD9pOjB9ZGVnKSB0cmFuc2xhdGUzZCgke2h9cHgsICR7Zn1weCwgJHtnfXB4KWA7aWYobzw9MSYmbz4tMSYmKG09OTAqcys5MCpvLG4mJihtPTkwKi1zLTkwKm8pKSx0LnRyYW5zZm9ybSh2KSxjLnNsaWRlU2hhZG93cyl7bGV0IGU9cD90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTp0LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLHM9cD90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6dC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09ZS5sZW5ndGgmJihlPWQoYDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJHtwPyJsZWZ0IjoidG9wIn0iPjwvZGl2PmApLHQuYXBwZW5kKGUpKSwwPT09cy5sZW5ndGgmJihzPWQoYDxkaXYgY2xhc3M9InN3aXBlci1zbGlkZS1zaGFkb3ctJHtwPyJyaWdodCI6ImJvdHRvbSJ9Ij48L2Rpdj5gKSx0LmFwcGVuZChzKSksZS5sZW5ndGgmJihlWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5tYXgoLW8sMCkpLHMubGVuZ3RoJiYoc1swXS5zdHlsZS5vcGFjaXR5PU1hdGgubWF4KG8sMCkpfX1pZihzLmNzcyh7Ii13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiI6YDUwJSA1MCUgLSR7bC8yfXB4YCwidHJhbnNmb3JtLW9yaWdpbiI6YDUwJSA1MCUgLSR7bC8yfXB4YH0pLGMuc2hhZG93KWlmKHApaC50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKDBweCwgJHtpLzIrYy5zaGFkb3dPZmZzZXR9cHgsICR7LWkvMn1weCkgcm90YXRlWCg5MGRlZykgcm90YXRlWigwZGVnKSBzY2FsZSgke2Muc2hhZG93U2NhbGV9KWApO2Vsc2V7Y29uc3QgZT1NYXRoLmFicyhtKS05MCpNYXRoLmZsb29yKE1hdGguYWJzKG0pLzkwKSx0PTEuNS0oTWF0aC5zaW4oMiplKk1hdGguUEkvMzYwKS8yK01hdGguY29zKDIqZSpNYXRoLlBJLzM2MCkvMikscz1jLnNoYWRvd1NjYWxlLGE9Yy5zaGFkb3dTY2FsZS90LGk9Yy5zaGFkb3dPZmZzZXQ7aC50cmFuc2Zvcm0oYHNjYWxlM2QoJHtzfSwgMSwgJHthfSkgdHJhbnNsYXRlM2QoMHB4LCAke3IvMitpfXB4LCAkey1yLzIvYX1weCkgcm90YXRlWCgtOTBkZWcpYCl9Y29uc3QgZj1vLmlzU2FmYXJpfHxvLmlzV2ViVmlldz8tbC8yOjA7cy50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKDBweCwwLCR7Zn1weCkgcm90YXRlWCgke2UuaXNIb3Jpem9udGFsKCk/MDptfWRlZykgcm90YXRlWSgke2UuaXNIb3Jpem9udGFsKCk/LW06MH1kZWcpYCl9LHNldFRyYW5zaXRpb246dD0+e2NvbnN0eyRlbDpzLHNsaWRlczphfT1lO2EudHJhbnNpdGlvbih0KS5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKS50cmFuc2l0aW9uKHQpLGUucGFyYW1zLmN1YmVFZmZlY3Quc2hhZG93JiYhZS5pc0hvcml6b250YWwoKSYmcy5maW5kKCIuc3dpcGVyLWN1YmUtc2hhZG93IikudHJhbnNpdGlvbih0KX0scGVyc3BlY3RpdmU6KCk9PiEwLG92ZXJ3cml0ZVBhcmFtczooKT0+KHtzbGlkZXNQZXJWaWV3OjEsc2xpZGVzUGVyR3JvdXA6MSx3YXRjaFNsaWRlc1Byb2dyZXNzOiEwLHJlc2lzdGFuY2VSYXRpbzowLHNwYWNlQmV0d2VlbjowLGNlbnRlcmVkU2xpZGVzOiExLHZpcnR1YWxUcmFuc2xhdGU6ITB9KX0pfSxmdW5jdGlvbih7c3dpcGVyOmUsZXh0ZW5kUGFyYW1zOnQsb246c30pe3Qoe2ZsaXBFZmZlY3Q6e3NsaWRlU2hhZG93czohMCxsaW1pdFJvdGF0aW9uOiEwLHRyYW5zZm9ybUVsOm51bGx9fSksRih7ZWZmZWN0OiJmbGlwIixzd2lwZXI6ZSxvbjpzLHNldFRyYW5zbGF0ZTooKT0+e2NvbnN0e3NsaWRlczp0LHJ0bFRyYW5zbGF0ZTpzfT1lLGE9ZS5wYXJhbXMuZmxpcEVmZmVjdDtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPTEpe2NvbnN0IHI9dC5lcShpKTtsZXQgbj1yWzBdLnByb2dyZXNzO2UucGFyYW1zLmZsaXBFZmZlY3QubGltaXRSb3RhdGlvbiYmKG49TWF0aC5tYXgoTWF0aC5taW4oclswXS5wcm9ncmVzcywxKSwtMSkpO2NvbnN0IGw9clswXS5zd2lwZXJTbGlkZU9mZnNldDtsZXQgbz0tMTgwKm4sZD0wLGM9ZS5wYXJhbXMuY3NzTW9kZT8tbC1lLnRyYW5zbGF0ZTotbCxwPTA7aWYoZS5pc0hvcml6b250YWwoKT9zJiYobz0tbyk6KHA9YyxjPTAsZD0tbyxvPTApLHJbMF0uc3R5bGUuekluZGV4PS1NYXRoLmFicyhNYXRoLnJvdW5kKG4pKSt0Lmxlbmd0aCxhLnNsaWRlU2hhZG93cyl7bGV0IHQ9ZS5pc0hvcml6b250YWwoKT9yLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTpyLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLHM9ZS5pc0hvcml6b250YWwoKT9yLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6ci5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09dC5sZW5ndGgmJih0PVooYSxyLGUuaXNIb3Jpem9udGFsKCk/ImxlZnQiOiJ0b3AiKSksMD09PXMubGVuZ3RoJiYocz1aKGEscixlLmlzSG9yaXpvbnRhbCgpPyJyaWdodCI6ImJvdHRvbSIpKSx0Lmxlbmd0aCYmKHRbMF0uc3R5bGUub3BhY2l0eT1NYXRoLm1heCgtbiwwKSkscy5sZW5ndGgmJihzWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5tYXgobiwwKSl9Y29uc3QgdT1gdHJhbnNsYXRlM2QoJHtjfXB4LCAke3B9cHgsIDBweCkgcm90YXRlWCgke2R9ZGVnKSByb3RhdGVZKCR7b31kZWcpYDtVKGEscikudHJhbnNmb3JtKHUpfX0sc2V0VHJhbnNpdGlvbjp0PT57Y29uc3R7dHJhbnNmb3JtRWw6c309ZS5wYXJhbXMuZmxpcEVmZmVjdDsocz9lLnNsaWRlcy5maW5kKHMpOmUuc2xpZGVzKS50cmFuc2l0aW9uKHQpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpLnRyYW5zaXRpb24odCksSyh7c3dpcGVyOmUsZHVyYXRpb246dCx0cmFuc2Zvcm1FbDpzfSl9LHBlcnNwZWN0aXZlOigpPT4hMCxvdmVyd3JpdGVQYXJhbXM6KCk9Pih7c2xpZGVzUGVyVmlldzoxLHNsaWRlc1Blckdyb3VwOjEsd2F0Y2hTbGlkZXNQcm9ncmVzczohMCxzcGFjZUJldHdlZW46MCx2aXJ0dWFsVHJhbnNsYXRlOiFlLnBhcmFtcy5jc3NNb2RlfSl9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXt0KHtjb3ZlcmZsb3dFZmZlY3Q6e3JvdGF0ZTo1MCxzdHJldGNoOjAsZGVwdGg6MTAwLHNjYWxlOjEsbW9kaWZpZXI6MSxzbGlkZVNoYWRvd3M6ITAsdHJhbnNmb3JtRWw6bnVsbH19KSxGKHtlZmZlY3Q6ImNvdmVyZmxvdyIsc3dpcGVyOmUsb246cyxzZXRUcmFuc2xhdGU6KCk9Pntjb25zdHt3aWR0aDp0LGhlaWdodDpzLHNsaWRlczphLHNsaWRlc1NpemVzR3JpZDppfT1lLHI9ZS5wYXJhbXMuY292ZXJmbG93RWZmZWN0LG49ZS5pc0hvcml6b250YWwoKSxsPWUudHJhbnNsYXRlLG89bj90LzItbDpzLzItbCxkPW4/ci5yb3RhdGU6LXIucm90YXRlLGM9ci5kZXB0aDtmb3IobGV0IGU9MCx0PWEubGVuZ3RoO2U8dDtlKz0xKXtjb25zdCB0PWEuZXEoZSkscz1pW2VdLGw9KG8tdFswXS5zd2lwZXJTbGlkZU9mZnNldC1zLzIpL3Mqci5tb2RpZmllcjtsZXQgcD1uP2QqbDowLHU9bj8wOmQqbCxoPS1jKk1hdGguYWJzKGwpLG09ci5zdHJldGNoOyJzdHJpbmciPT10eXBlb2YgbSYmLTEhPT1tLmluZGV4T2YoIiUiKSYmKG09cGFyc2VGbG9hdChyLnN0cmV0Y2gpLzEwMCpzKTtsZXQgZj1uPzA6bSpsLGc9bj9tKmw6MCx2PTEtKDEtci5zY2FsZSkqTWF0aC5hYnMobCk7TWF0aC5hYnMoZyk8LjAwMSYmKGc9MCksTWF0aC5hYnMoZik8LjAwMSYmKGY9MCksTWF0aC5hYnMoaCk8LjAwMSYmKGg9MCksTWF0aC5hYnMocCk8LjAwMSYmKHA9MCksTWF0aC5hYnModSk8LjAwMSYmKHU9MCksTWF0aC5hYnModik8LjAwMSYmKHY9MCk7Y29uc3Qgdz1gdHJhbnNsYXRlM2QoJHtnfXB4LCR7Zn1weCwke2h9cHgpICByb3RhdGVYKCR7dX1kZWcpIHJvdGF0ZVkoJHtwfWRlZykgc2NhbGUoJHt2fSlgO2lmKFUocix0KS50cmFuc2Zvcm0odyksdFswXS5zdHlsZS56SW5kZXg9MS1NYXRoLmFicyhNYXRoLnJvdW5kKGwpKSxyLnNsaWRlU2hhZG93cyl7bGV0IGU9bj90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKTp0LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCIpLHM9bj90LmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0Iik6dC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20iKTswPT09ZS5sZW5ndGgmJihlPVoocix0LG4/ImxlZnQiOiJ0b3AiKSksMD09PXMubGVuZ3RoJiYocz1aKHIsdCxuPyJyaWdodCI6ImJvdHRvbSIpKSxlLmxlbmd0aCYmKGVbMF0uc3R5bGUub3BhY2l0eT1sPjA/bDowKSxzLmxlbmd0aCYmKHNbMF0uc3R5bGUub3BhY2l0eT0tbD4wPy1sOjApfX19LHNldFRyYW5zaXRpb246dD0+e2NvbnN0e3RyYW5zZm9ybUVsOnN9PWUucGFyYW1zLmNvdmVyZmxvd0VmZmVjdDsocz9lLnNsaWRlcy5maW5kKHMpOmUuc2xpZGVzKS50cmFuc2l0aW9uKHQpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpLnRyYW5zaXRpb24odCl9LHBlcnNwZWN0aXZlOigpPT4hMCxvdmVyd3JpdGVQYXJhbXM6KCk9Pih7d2F0Y2hTbGlkZXNQcm9ncmVzczohMH0pfSl9LGZ1bmN0aW9uKHtzd2lwZXI6ZSxleHRlbmRQYXJhbXM6dCxvbjpzfSl7dCh7Y3JlYXRpdmVFZmZlY3Q6e3RyYW5zZm9ybUVsOm51bGwsbGltaXRQcm9ncmVzczoxLHNoYWRvd1BlclByb2dyZXNzOiExLHByb2dyZXNzTXVsdGlwbGllcjoxLHBlcnNwZWN0aXZlOiEwLHByZXY6e3RyYW5zbGF0ZTpbMCwwLDBdLHJvdGF0ZTpbMCwwLDBdLG9wYWNpdHk6MSxzY2FsZToxfSxuZXh0Ont0cmFuc2xhdGU6WzAsMCwwXSxyb3RhdGU6WzAsMCwwXSxvcGFjaXR5OjEsc2NhbGU6MX19fSk7Y29uc3QgYT1lPT4ic3RyaW5nIj09dHlwZW9mIGU/ZTpgJHtlfXB4YDtGKHtlZmZlY3Q6ImNyZWF0aXZlIixzd2lwZXI6ZSxvbjpzLHNldFRyYW5zbGF0ZTooKT0+e2NvbnN0e3NsaWRlczp0LCR3cmFwcGVyRWw6cyxzbGlkZXNTaXplc0dyaWQ6aX09ZSxyPWUucGFyYW1zLmNyZWF0aXZlRWZmZWN0LHtwcm9ncmVzc011bHRpcGxpZXI6bn09cixsPWUucGFyYW1zLmNlbnRlcmVkU2xpZGVzO2lmKGwpe2NvbnN0IHQ9aVswXS8yLWUucGFyYW1zLnNsaWRlc09mZnNldEJlZm9yZXx8MDtzLnRyYW5zZm9ybShgdHJhbnNsYXRlWChjYWxjKDUwJSAtICR7dH1weCkpYCl9Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKz0xKXtjb25zdCBpPXQuZXEocyksbz1pWzBdLnByb2dyZXNzLGQ9TWF0aC5taW4oTWF0aC5tYXgoaVswXS5wcm9ncmVzcywtci5saW1pdFByb2dyZXNzKSxyLmxpbWl0UHJvZ3Jlc3MpO2xldCBjPWQ7bHx8KGM9TWF0aC5taW4oTWF0aC5tYXgoaVswXS5vcmlnaW5hbFByb2dyZXNzLC1yLmxpbWl0UHJvZ3Jlc3MpLHIubGltaXRQcm9ncmVzcykpO2NvbnN0IHA9aVswXS5zd2lwZXJTbGlkZU9mZnNldCx1PVtlLnBhcmFtcy5jc3NNb2RlPy1wLWUudHJhbnNsYXRlOi1wLDAsMF0saD1bMCwwLDBdO2xldCBtPSExO2UuaXNIb3Jpem9udGFsKCl8fCh1WzFdPXVbMF0sdVswXT0wKTtsZXQgZj17dHJhbnNsYXRlOlswLDAsMF0scm90YXRlOlswLDAsMF0sc2NhbGU6MSxvcGFjaXR5OjF9O2Q8MD8oZj1yLm5leHQsbT0hMCk6ZD4wJiYoZj1yLnByZXYsbT0hMCksdS5mb3JFYWNoKCgoZSx0KT0+e3VbdF09YGNhbGMoJHtlfXB4ICsgKCR7YShmLnRyYW5zbGF0ZVt0XSl9ICogJHtNYXRoLmFicyhkKm4pfSkpYH0pKSxoLmZvckVhY2goKChlLHQpPT57aFt0XT1mLnJvdGF0ZVt0XSpNYXRoLmFicyhkKm4pfSkpLGlbMF0uc3R5bGUuekluZGV4PS1NYXRoLmFicyhNYXRoLnJvdW5kKG8pKSt0Lmxlbmd0aDtjb25zdCBnPXUuam9pbigiLCAiKSx2PWByb3RhdGVYKCR7aFswXX1kZWcpIHJvdGF0ZVkoJHtoWzFdfWRlZykgcm90YXRlWigke2hbMl19ZGVnKWAsdz1jPDA/YHNjYWxlKCR7MSsoMS1mLnNjYWxlKSpjKm59KWA6YHNjYWxlKCR7MS0oMS1mLnNjYWxlKSpjKm59KWAsYj1jPDA/MSsoMS1mLm9wYWNpdHkpKmMqbjoxLSgxLWYub3BhY2l0eSkqYypuLHg9YHRyYW5zbGF0ZTNkKCR7Z30pICR7dn0gJHt3fWA7aWYobSYmZi5zaGFkb3d8fCFtKXtsZXQgZT1pLmNoaWxkcmVuKCIuc3dpcGVyLXNsaWRlLXNoYWRvdyIpO2lmKDA9PT1lLmxlbmd0aCYmZi5zaGFkb3cmJihlPVoocixpKSksZS5sZW5ndGgpe2NvbnN0IHQ9ci5zaGFkb3dQZXJQcm9ncmVzcz9kKigxL3IubGltaXRQcm9ncmVzcyk6ZDtlWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5taW4oTWF0aC5tYXgoTWF0aC5hYnModCksMCksMSl9fWNvbnN0IHk9VShyLGkpO3kudHJhbnNmb3JtKHgpLmNzcyh7b3BhY2l0eTpifSksZi5vcmlnaW4mJnkuY3NzKCJ0cmFuc2Zvcm0tb3JpZ2luIixmLm9yaWdpbil9fSxzZXRUcmFuc2l0aW9uOnQ9Pntjb25zdHt0cmFuc2Zvcm1FbDpzfT1lLnBhcmFtcy5jcmVhdGl2ZUVmZmVjdDsocz9lLnNsaWRlcy5maW5kKHMpOmUuc2xpZGVzKS50cmFuc2l0aW9uKHQpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93IikudHJhbnNpdGlvbih0KSxLKHtzd2lwZXI6ZSxkdXJhdGlvbjp0LHRyYW5zZm9ybUVsOnMsYWxsU2xpZGVzOiEwfSl9LHBlcnNwZWN0aXZlOigpPT5lLnBhcmFtcy5jcmVhdGl2ZUVmZmVjdC5wZXJzcGVjdGl2ZSxvdmVyd3JpdGVQYXJhbXM6KCk9Pih7d2F0Y2hTbGlkZXNQcm9ncmVzczohMCx2aXJ0dWFsVHJhbnNsYXRlOiFlLnBhcmFtcy5jc3NNb2RlfSl9KX0sZnVuY3Rpb24oe3N3aXBlcjplLGV4dGVuZFBhcmFtczp0LG9uOnN9KXt0KHtjYXJkc0VmZmVjdDp7c2xpZGVTaGFkb3dzOiEwLHRyYW5zZm9ybUVsOm51bGx9fSksRih7ZWZmZWN0OiJjYXJkcyIsc3dpcGVyOmUsb246cyxzZXRUcmFuc2xhdGU6KCk9Pntjb25zdHtzbGlkZXM6dCxhY3RpdmVJbmRleDpzfT1lLGE9ZS5wYXJhbXMuY2FyZHNFZmZlY3Qse3N0YXJ0VHJhbnNsYXRlOmksaXNUb3VjaGVkOnJ9PWUudG91Y2hFdmVudHNEYXRhLG49ZS50cmFuc2xhdGU7Zm9yKGxldCBsPTA7bDx0Lmxlbmd0aDtsKz0xKXtjb25zdCBvPXQuZXEobCksZD1vWzBdLnByb2dyZXNzLGM9TWF0aC5taW4oTWF0aC5tYXgoZCwtNCksNCk7bGV0IHA9b1swXS5zd2lwZXJTbGlkZU9mZnNldDtlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcyYmIWUucGFyYW1zLmNzc01vZGUmJmUuJHdyYXBwZXJFbC50cmFuc2Zvcm0oYHRyYW5zbGF0ZVgoJHtlLm1pblRyYW5zbGF0ZSgpfXB4KWApLGUucGFyYW1zLmNlbnRlcmVkU2xpZGVzJiZlLnBhcmFtcy5jc3NNb2RlJiYocC09dFswXS5zd2lwZXJTbGlkZU9mZnNldCk7bGV0IHU9ZS5wYXJhbXMuY3NzTW9kZT8tcC1lLnRyYW5zbGF0ZTotcCxoPTA7Y29uc3QgbT0tMTAwKk1hdGguYWJzKGMpO2xldCBmPTEsZz0tMipjLHY9OC0uNzUqTWF0aC5hYnMoYyk7Y29uc3Qgdz0obD09PXN8fGw9PT1zLTEpJiZjPjAmJmM8MSYmKHJ8fGUucGFyYW1zLmNzc01vZGUpJiZuPGksYj0obD09PXN8fGw9PT1zKzEpJiZjPDAmJmM+LTEmJihyfHxlLnBhcmFtcy5jc3NNb2RlKSYmbj5pO2lmKHd8fGIpe2NvbnN0IGU9KDEtTWF0aC5hYnMoKE1hdGguYWJzKGMpLS41KS8uNSkpKiouNTtnKz0tMjgqYyplLGYrPS0uNSplLHYrPTk2KmUsaD0tMjUqZSpNYXRoLmFicyhjKSsiJSJ9aWYodT1jPDA/YGNhbGMoJHt1fXB4ICsgKCR7dipNYXRoLmFicyhjKX0lKSlgOmM+MD9gY2FsYygke3V9cHggKyAoLSR7dipNYXRoLmFicyhjKX0lKSlgOmAke3V9cHhgLCFlLmlzSG9yaXpvbnRhbCgpKXtjb25zdCBlPWg7aD11LHU9ZX1jb25zdCB4PWBcbiAgICAgICAgdHJhbnNsYXRlM2QoJHt1fSwgJHtofSwgJHttfXB4KVxuICAgICAgICByb3RhdGVaKCR7Z31kZWcpXG4gICAgICAgIHNjYWxlKCR7YzwwPyIiKygxKygxLWYpKmMpOiIiKygxLSgxLWYpKmMpfSlcbiAgICAgIGA7aWYoYS5zbGlkZVNoYWRvd3Mpe2xldCBlPW8uZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ciKTswPT09ZS5sZW5ndGgmJihlPVooYSxvKSksZS5sZW5ndGgmJihlWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5taW4oTWF0aC5tYXgoKE1hdGguYWJzKGMpLS41KS8uNSwwKSwxKSl9b1swXS5zdHlsZS56SW5kZXg9LU1hdGguYWJzKE1hdGgucm91bmQoZCkpK3QubGVuZ3RoO1UoYSxvKS50cmFuc2Zvcm0oeCl9fSxzZXRUcmFuc2l0aW9uOnQ9Pntjb25zdHt0cmFuc2Zvcm1FbDpzfT1lLnBhcmFtcy5jYXJkc0VmZmVjdDsocz9lLnNsaWRlcy5maW5kKHMpOmUuc2xpZGVzKS50cmFuc2l0aW9uKHQpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93IikudHJhbnNpdGlvbih0KSxLKHtzd2lwZXI6ZSxkdXJhdGlvbjp0LHRyYW5zZm9ybUVsOnN9KX0scGVyc3BlY3RpdmU6KCk9PiEwLG92ZXJ3cml0ZVBhcmFtczooKT0+KHt3YXRjaFNsaWRlc1Byb2dyZXNzOiEwLHZpcnR1YWxUcmFuc2xhdGU6IWUucGFyYW1zLmNzc01vZGV9KX0pfV07cmV0dXJuIEgudXNlKEopLEh9KSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXN3aXBlci1idW5kbGUubWluLmpzLm1hcA=="}},"time_used":479,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":479,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/js/app.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.859Z","timestamp":1785145403859,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/_dist/js/app.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-391cb\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":233931,"size_decoded":53390,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"28c64d6e93d7cc568258caaa8e46d1eb","sha1":"072e1b803eb5fc21ccb74709f74acef43f8049e7","sha256":"b6cb28f6faf1035dc455541531224e1c34ad84ee7166c45c5ed926aac3055153","sha512":"465c250d33ad1332fcd24302139348c395f08aa754605e0ff7007bd2cc8e2a2a774e671b764990f0342055e3586790c9471dd46687dd0f2b746de3b5f66a9b37","ssdeep":"6144:iktcHLNoFjGzFZMKsi1K2C+QJhNNwiKKO:iyCZWKKO","tlshash":"81342a8db31071b255e722aa415f8206b3722955b40ac8a07076cce65dbddcd13bbfbe","first_seen":"2026-07-27T07:14:06.714152Z","last_seen":"2026-07-27T14:04:41.081339Z","times_seen":5,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7dmFyIGU9ezY2NTpmdW5jdGlvbihlLHQsYSl7dmFyIG4saSxyO2Z1bmN0aW9uIHMoZSx0LGEpe3JldHVybih0PXAodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1hLGV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYyhlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGwoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gbChlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gYyhlLHQpO3ZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PWEmJmUuY29uc3RydWN0b3ImJihhPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1hfHwiU2V0Ij09PWE/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PWF8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGEpP2MoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIGMoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIGE9MCxuPW5ldyBBcnJheSh0KTthPHQ7YSsrKW5bYV09ZVthXTtyZXR1cm4gbn1mdW5jdGlvbiBkKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxwKG4ua2V5KSxuKX19ZnVuY3Rpb24gdShlLHQsYSl7cmV0dXJuIHQmJmQoZS5wcm90b3R5cGUsdCksYSYmZChlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9ZnVuY3Rpb24gcChlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09dyhlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGE9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBuPWEuY2FsbChlLCJzdHJpbmciKTtpZigib2JqZWN0IiE9PXcobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShlKTtyZXR1cm4ic3ltYm9sIj09PXcodCk/dDpTdHJpbmcodCl9ZnVuY3Rpb24gZihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHYoZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfWZ1bmN0aW9uIGgoZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIE1hcD9uZXcgTWFwOnZvaWQgMDtyZXR1cm4gaD1mdW5jdGlvbihlKXtpZihudWxsPT09ZXx8KGE9ZSwtMT09PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwoYSkuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpKSlyZXR1cm4gZTt2YXIgYTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2lmKHZvaWQgMCE9PXQpe2lmKHQuaGFzKGUpKXJldHVybiB0LmdldChlKTt0LnNldChlLG4pfWZ1bmN0aW9uIG4oKXtyZXR1cm4gbShlLGFyZ3VtZW50cyx5KHRoaXMpLmNvbnN0cnVjdG9yKX1yZXR1cm4gbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOm4sZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksYihuLGUpfSxoKGUpfWZ1bmN0aW9uIG0oZSx0LGEpe3JldHVybiBtPWcoKT9SZWZsZWN0LmNvbnN0cnVjdC5iaW5kKCk6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPVtudWxsXTtuLnB1c2guYXBwbHkobix0KTt2YXIgaT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseShlLG4pKTtyZXR1cm4gYSYmYihpLGEucHJvdG90eXBlKSxpfSxtLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBnKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBiKGUsdCl7cmV0dXJuIGI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxiKGUsdCl9ZnVuY3Rpb24geShlKXtyZXR1cm4geT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0seShlKX1mdW5jdGlvbiB3KGUpe3JldHVybiB3PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSx3KGUpfXI9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT13KGUpJiYiY29uc3RydWN0b3IiaW4gZSYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdH1mdW5jdGlvbiB0KCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZvaWQgMD09PWFbaV0/YVtpXT1uW2ldOmUobltpXSkmJmUoYVtpXSkmJk9iamVjdC5rZXlzKG5baV0pLmxlbmd0aD4wJiZ0KGFbaV0sbltpXSl9KSl9dmFyIGE9e2JvZHk6e30sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbigpe30scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbigpe30sYWN0aXZlRWxlbWVudDp7Ymx1cjpmdW5jdGlvbigpe30sbm9kZU5hbWU6IiJ9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbigpe3JldHVybltdfSxnZXRFbGVtZW50QnlJZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxjcmVhdGVFdmVudDpmdW5jdGlvbigpe3JldHVybntpbml0RXZlbnQ6ZnVuY3Rpb24oKXt9fX0sY3JlYXRlRWxlbWVudDpmdW5jdGlvbigpe3JldHVybntjaGlsZHJlbjpbXSxjaGlsZE5vZGVzOltdLHN0eWxlOnt9LHNldEF0dHJpYnV0ZTpmdW5jdGlvbigpe30sZ2V0RWxlbWVudHNCeVRhZ05hbWU6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oKXtyZXR1cm57fX0saW1wb3J0Tm9kZTpmdW5jdGlvbigpe3JldHVybiBudWxsfSxsb2NhdGlvbjp7aGFzaDoiIixob3N0OiIiLGhvc3RuYW1lOiIiLGhyZWY6IiIsb3JpZ2luOiIiLHBhdGhuYW1lOiIiLHByb3RvY29sOiIiLHNlYXJjaDoiIn19O2Z1bmN0aW9uIG4oKXt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50Ont9O3JldHVybiB0KGUsYSksZX12YXIgaT17ZG9jdW1lbnQ6YSxuYXZpZ2F0b3I6e3VzZXJBZ2VudDoiIn0sbG9jYXRpb246e2hhc2g6IiIsaG9zdDoiIixob3N0bmFtZToiIixocmVmOiIiLG9yaWdpbjoiIixwYXRobmFtZToiIixwcm90b2NvbDoiIixzZWFyY2g6IiJ9LGhpc3Rvcnk6e3JlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30scHVzaFN0YXRlOmZ1bmN0aW9uKCl7fSxnbzpmdW5jdGlvbigpe30sYmFjazpmdW5jdGlvbigpe319LEN1c3RvbUV2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oKXt9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGdldENvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57Z2V0UHJvcGVydHlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiIifX19LEltYWdlOmZ1bmN0aW9uKCl7fSxEYXRlOmZ1bmN0aW9uKCl7fSxzY3JlZW46e30sc2V0VGltZW91dDpmdW5jdGlvbigpe30sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKCl7fSxtYXRjaE1lZGlhOmZ1bmN0aW9uKCl7cmV0dXJue319LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHNldFRpbWVvdXQ/KGUoKSxudWxsKTpzZXRUaW1lb3V0KGUsMCl9LGNhbmNlbEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0VGltZW91dCYmY2xlYXJUaW1lb3V0KGUpfX07ZnVuY3Rpb24gcigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fTtyZXR1cm4gdChlLGkpLGV9dmFyIGM9ZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQmJmIoZSx0KX0oaSxlKTt2YXIgdCxhLG49KHQ9aSxhPWcoKSxmdW5jdGlvbigpe3ZhciBlLG49eSh0KTtpZihhKXt2YXIgaT15KHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsaSl9ZWxzZSBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKHQmJigib2JqZWN0Ij09PXcodCl8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHYoZSl9KHRoaXMsZSl9KTtmdW5jdGlvbiBpKGUpe3ZhciB0O3JldHVybiBmKHRoaXMsaSksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5fX3Byb3RvX187T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fcHJvdG9fXyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0fSxzZXQ6ZnVuY3Rpb24oZSl7dC5fX3Byb3RvX189ZX19KX0odih0PW4uY2FsbC5hcHBseShuLFt0aGlzXS5jb25jYXQobyhlfHxbXSkpKSkpLHR9cmV0dXJuIHUoaSl9KGgoQXJyYXkpKTtmdW5jdGlvbiBkKCl7dmFyIGU9W107cmV0dXJuKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7QXJyYXkuaXNBcnJheSh0KT9lLnB1c2guYXBwbHkoZSxvKGQodCkpKTplLnB1c2godCl9KSksZX1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLHQpfWZ1bmN0aW9uIG0oZSx0KXt2YXIgYT1yKCksaT1uKCkscz1bXTtpZighdCYmZSBpbnN0YW5jZW9mIGMpcmV0dXJuIGU7aWYoIWUpcmV0dXJuIG5ldyBjKHMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIG89ZS50cmltKCk7aWYoby5pbmRleE9mKCI8Iik+PTAmJm8uaW5kZXhPZigiPiIpPj0wKXt2YXIgbD0iZGl2IjswPT09by5pbmRleE9mKCI8bGkiKSYmKGw9InVsIiksMD09PW8uaW5kZXhPZigiPHRyIikmJihsPSJ0Ym9keSIpLDAhPT1vLmluZGV4T2YoIjx0ZCIpJiYwIT09by5pbmRleE9mKCI8dGgiKXx8KGw9InRyIiksMD09PW8uaW5kZXhPZigiPHRib2R5IikmJihsPSJ0YWJsZSIpLDA9PT1vLmluZGV4T2YoIjxvcHRpb24iKSYmKGw9InNlbGVjdCIpO3ZhciBkPWkuY3JlYXRlRWxlbWVudChsKTtkLmlubmVySFRNTD1vO2Zvcih2YXIgdT0wO3U8ZC5jaGlsZE5vZGVzLmxlbmd0aDt1Kz0xKXMucHVzaChkLmNoaWxkTm9kZXNbdV0pfWVsc2Ugcz1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm5bZV07Zm9yKHZhciBhPVtdLG49dC5xdWVyeVNlbGVjdG9yQWxsKGUpLGk9MDtpPG4ubGVuZ3RoO2krPTEpYS5wdXNoKG5baV0pO3JldHVybiBhfShlLnRyaW0oKSx0fHxpKX1lbHNlIGlmKGUubm9kZVR5cGV8fGU9PT1hfHxlPT09aSlzLnB1c2goZSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtpZihlIGluc3RhbmNlb2YgYylyZXR1cm4gZTtzPWV9cmV0dXJuIG5ldyBjKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxhPTA7YTxlLmxlbmd0aDthKz0xKS0xPT09dC5pbmRleE9mKGVbYV0pJiZ0LnB1c2goZVthXSk7cmV0dXJuIHR9KHMpKX1tLmZuPWMucHJvdG90eXBlO3ZhciB4LEUsUyxUPXthZGRDbGFzczpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO3ZhciBuPWQodC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIgIil9KSkpO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0Oyh0PWUuY2xhc3NMaXN0KS5hZGQuYXBwbHkodCxvKG4pKX0pKSx0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO3ZhciBuPWQodC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIgIil9KSkpO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0Oyh0PWUuY2xhc3NMaXN0KS5yZW1vdmUuYXBwbHkodCxvKG4pKX0pKSx0aGlzfSxoYXNDbGFzczpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO3ZhciBuPWQodC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIgIil9KSkpO3JldHVybiBwKHRoaXMsKGZ1bmN0aW9uKGUpe3JldHVybiBuLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKHQpfSkpLmxlbmd0aD4wfSkpLmxlbmd0aD4wfSx0b2dnbGVDbGFzczpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO3ZhciBuPWQodC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCIgIil9KSkpO3RoaXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bi5mb3JFYWNoKChmdW5jdGlvbih0KXtlLmNsYXNzTGlzdC50b2dnbGUodCl9KSl9KSl9LGF0dHI6ZnVuY3Rpb24oZSx0KXtpZigxPT09YXJndW1lbnRzLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiB0aGlzWzBdP3RoaXNbMF0uZ2V0QXR0cmlidXRlKGUpOnZvaWQgMDtmb3IodmFyIGE9MDthPHRoaXMubGVuZ3RoO2ErPTEpaWYoMj09PWFyZ3VtZW50cy5sZW5ndGgpdGhpc1thXS5zZXRBdHRyaWJ1dGUoZSx0KTtlbHNlIGZvcih2YXIgbiBpbiBlKXRoaXNbYV1bbl09ZVtuXSx0aGlzW2FdLnNldEF0dHJpYnV0ZShuLGVbbl0pO3JldHVybiB0aGlzfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnJlbW92ZUF0dHJpYnV0ZShlKTtyZXR1cm4gdGhpc30sdHJhbnNmb3JtOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnN0eWxlLnRyYW5zZm9ybT1lO3JldHVybiB0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl0aGlzW3RdLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbj0ic3RyaW5nIiE9dHlwZW9mIGU/IiIuY29uY2F0KGUsIm1zIik6ZTtyZXR1cm4gdGhpc30sb246ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxhPTA7YTxlO2ErKyl0W2FdPWFyZ3VtZW50c1thXTt2YXIgbj10WzBdLGk9dFsxXSxyPXRbMl0scz10WzNdO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYodCl7dmFyIGE9ZS50YXJnZXQuZG9tN0V2ZW50RGF0YXx8W107aWYoYS5pbmRleE9mKGUpPDAmJmEudW5zaGlmdChlKSxtKHQpLmlzKGkpKXIuYXBwbHkodCxhKTtlbHNlIGZvcih2YXIgbj1tKHQpLnBhcmVudHMoKSxzPTA7czxuLmxlbmd0aDtzKz0xKW0obltzXSkuaXMoaSkmJnIuYXBwbHkobltzXSxhKX19ZnVuY3Rpb24gbChlKXt2YXIgdD1lJiZlLnRhcmdldCYmZS50YXJnZXQuZG9tN0V2ZW50RGF0YXx8W107dC5pbmRleE9mKGUpPDAmJnQudW5zaGlmdChlKSxyLmFwcGx5KHRoaXMsdCl9ImZ1bmN0aW9uIj09dHlwZW9mIHRbMV0mJihuPXRbMF0scj10WzFdLHM9dFsyXSxpPXZvaWQgMCksc3x8KHM9ITEpO2Zvcih2YXIgYyxkPW4uc3BsaXQoIiAiKSx1PTA7dTx0aGlzLmxlbmd0aDt1Kz0xKXt2YXIgcD10aGlzW3VdO2lmKGkpZm9yKGM9MDtjPGQubGVuZ3RoO2MrPTEpe3ZhciBmPWRbY107cC5kb203TGl2ZUxpc3RlbmVyc3x8KHAuZG9tN0xpdmVMaXN0ZW5lcnM9e30pLHAuZG9tN0xpdmVMaXN0ZW5lcnNbZl18fChwLmRvbTdMaXZlTGlzdGVuZXJzW2ZdPVtdKSxwLmRvbTdMaXZlTGlzdGVuZXJzW2ZdLnB1c2goe2xpc3RlbmVyOnIscHJveHlMaXN0ZW5lcjpvfSkscC5hZGRFdmVudExpc3RlbmVyKGYsbyxzKX1lbHNlIGZvcihjPTA7YzxkLmxlbmd0aDtjKz0xKXt2YXIgdj1kW2NdO3AuZG9tN0xpc3RlbmVyc3x8KHAuZG9tN0xpc3RlbmVycz17fSkscC5kb203TGlzdGVuZXJzW3ZdfHwocC5kb203TGlzdGVuZXJzW3ZdPVtdKSxwLmRvbTdMaXN0ZW5lcnNbdl0ucHVzaCh7bGlzdGVuZXI6cixwcm94eUxpc3RlbmVyOmx9KSxwLmFkZEV2ZW50TGlzdGVuZXIodixsLHMpfX1yZXR1cm4gdGhpc30sb2ZmOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksYT0wO2E8ZTthKyspdFthXT1hcmd1bWVudHNbYV07dmFyIG49dFswXSxpPXRbMV0scj10WzJdLHM9dFszXTsiZnVuY3Rpb24iPT10eXBlb2YgdFsxXSYmKG49dFswXSxyPXRbMV0scz10WzJdLGk9dm9pZCAwKSxzfHwocz0hMSk7Zm9yKHZhciBvPW4uc3BsaXQoIiAiKSxsPTA7bDxvLmxlbmd0aDtsKz0xKWZvcih2YXIgYz1vW2xdLGQ9MDtkPHRoaXMubGVuZ3RoO2QrPTEpe3ZhciB1PXRoaXNbZF0scD12b2lkIDA7aWYoIWkmJnUuZG9tN0xpc3RlbmVycz9wPXUuZG9tN0xpc3RlbmVyc1tjXTppJiZ1LmRvbTdMaXZlTGlzdGVuZXJzJiYocD11LmRvbTdMaXZlTGlzdGVuZXJzW2NdKSxwJiZwLmxlbmd0aClmb3IodmFyIGY9cC5sZW5ndGgtMTtmPj0wO2YtPTEpe3ZhciB2PXBbZl07ciYmdi5saXN0ZW5lcj09PXJ8fHImJnYubGlzdGVuZXImJnYubGlzdGVuZXIuZG9tN3Byb3h5JiZ2Lmxpc3RlbmVyLmRvbTdwcm94eT09PXI/KHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLHYucHJveHlMaXN0ZW5lcixzKSxwLnNwbGljZShmLDEpKTpyfHwodS5yZW1vdmVFdmVudExpc3RlbmVyKGMsdi5wcm94eUxpc3RlbmVyLHMpLHAuc3BsaWNlKGYsMSkpfX1yZXR1cm4gdGhpc30sdHJpZ2dlcjpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLGE9MDthPGU7YSsrKXRbYV09YXJndW1lbnRzW2FdO2Zvcih2YXIgbj1yKCksaT10WzBdLnNwbGl0KCIgIikscz10WzFdLG89MDtvPGkubGVuZ3RoO28rPTEpZm9yKHZhciBsPWlbb10sYz0wO2M8dGhpcy5sZW5ndGg7Yys9MSl7dmFyIGQ9dGhpc1tjXTtpZihuLkN1c3RvbUV2ZW50KXt2YXIgdT1uZXcgbi5DdXN0b21FdmVudChsLHtkZXRhaWw6cyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KTtkLmRvbTdFdmVudERhdGE9dC5maWx0ZXIoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ+MH0pKSxkLmRpc3BhdGNoRXZlbnQodSksZC5kb203RXZlbnREYXRhPVtdLGRlbGV0ZSBkLmRvbTdFdmVudERhdGF9fXJldHVybiB0aGlzfSx0cmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGUmJnQub24oInRyYW5zaXRpb25lbmQiLChmdW5jdGlvbiBhKG4pe24udGFyZ2V0PT09dGhpcyYmKGUuY2FsbCh0aGlzLG4pLHQub2ZmKCJ0cmFuc2l0aW9uZW5kIixhKSl9KSksdGhpc30sb3V0ZXJXaWR0aDpmdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD4wKXtpZihlKXt2YXIgdD10aGlzLnN0eWxlcygpO3JldHVybiB0aGlzWzBdLm9mZnNldFdpZHRoK3BhcnNlRmxvYXQodC5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tcmlnaHQiKSkrcGFyc2VGbG9hdCh0LmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1sZWZ0IikpfXJldHVybiB0aGlzWzBdLm9mZnNldFdpZHRofXJldHVybiBudWxsfSxvdXRlckhlaWdodDpmdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD4wKXtpZihlKXt2YXIgdD10aGlzLnN0eWxlcygpO3JldHVybiB0aGlzWzBdLm9mZnNldEhlaWdodCtwYXJzZUZsb2F0KHQuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpKStwYXJzZUZsb2F0KHQuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWJvdHRvbSIpKX1yZXR1cm4gdGhpc1swXS5vZmZzZXRIZWlnaHR9cmV0dXJuIG51bGx9LHN0eWxlczpmdW5jdGlvbigpe3ZhciBlPXIoKTtyZXR1cm4gdGhpc1swXT9lLmdldENvbXB1dGVkU3R5bGUodGhpc1swXSxudWxsKTp7fX0sb2Zmc2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5sZW5ndGg+MCl7dmFyIGU9cigpLHQ9bigpLGE9dGhpc1swXSxpPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10LmJvZHksbz1hLmNsaWVudFRvcHx8cy5jbGllbnRUb3B8fDAsbD1hLmNsaWVudExlZnR8fHMuY2xpZW50TGVmdHx8MCxjPWE9PT1lP2Uuc2Nyb2xsWTphLnNjcm9sbFRvcCxkPWE9PT1lP2Uuc2Nyb2xsWDphLnNjcm9sbExlZnQ7cmV0dXJue3RvcDppLnRvcCtjLW8sbGVmdDppLmxlZnQrZC1sfX1yZXR1cm4gbnVsbH0sY3NzOmZ1bmN0aW9uKGUsdCl7dmFyIGEsbj1yKCk7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl7Zm9yKGE9MDthPHRoaXMubGVuZ3RoO2ErPTEpZm9yKHZhciBpIGluIGUpdGhpc1thXS5zdHlsZVtpXT1lW2ldO3JldHVybiB0aGlzfWlmKHRoaXNbMF0pcmV0dXJuIG4uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzWzBdLG51bGwpLmdldFByb3BlcnR5VmFsdWUoZSl9aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgZSl7Zm9yKGE9MDthPHRoaXMubGVuZ3RoO2ErPTEpdGhpc1thXS5zdHlsZVtlXT10O3JldHVybiB0aGlzfXJldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBlPyh0aGlzLmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7ZS5hcHBseSh0LFt0LGFdKX0pKSx0aGlzKTp0aGlzfSxodG1sOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbMF0/dGhpc1swXS5pbm5lckhUTUw6bnVsbDtmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoO3QrPTEpdGhpc1t0XS5pbm5lckhUTUw9ZTtyZXR1cm4gdGhpc30sdGV4dDpmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzWzBdP3RoaXNbMF0udGV4dENvbnRlbnQudHJpbSgpOm51bGw7Zm9yKHZhciB0PTA7dDx0aGlzLmxlbmd0aDt0Kz0xKXRoaXNbdF0udGV4dENvbnRlbnQ9ZTtyZXR1cm4gdGhpc30saXM6ZnVuY3Rpb24oZSl7dmFyIHQsYSxpPXIoKSxzPW4oKSxvPXRoaXNbMF07aWYoIW98fHZvaWQgMD09PWUpcmV0dXJuITE7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZihvLm1hdGNoZXMpcmV0dXJuIG8ubWF0Y2hlcyhlKTtpZihvLndlYmtpdE1hdGNoZXNTZWxlY3RvcilyZXR1cm4gby53ZWJraXRNYXRjaGVzU2VsZWN0b3IoZSk7aWYoby5tc01hdGNoZXNTZWxlY3RvcilyZXR1cm4gby5tc01hdGNoZXNTZWxlY3RvcihlKTtmb3IodD1tKGUpLGE9MDthPHQubGVuZ3RoO2ErPTEpaWYodFthXT09PW8pcmV0dXJuITA7cmV0dXJuITF9aWYoZT09PXMpcmV0dXJuIG89PT1zO2lmKGU9PT1pKXJldHVybiBvPT09aTtpZihlLm5vZGVUeXBlfHxlIGluc3RhbmNlb2YgYyl7Zm9yKHQ9ZS5ub2RlVHlwZT9bZV06ZSxhPTA7YTx0Lmxlbmd0aDthKz0xKWlmKHRbYV09PT1vKXJldHVybiEwO3JldHVybiExfXJldHVybiExfSxpbmRleDpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpc1swXTtpZih0KXtmb3IoZT0wO251bGwhPT0odD10LnByZXZpb3VzU2libGluZyk7KTE9PT10Lm5vZGVUeXBlJiYoZSs9MSk7cmV0dXJuIGV9fSxlcTpmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzO3ZhciB0PXRoaXMubGVuZ3RoO2lmKGU+dC0xKXJldHVybiBtKFtdKTtpZihlPDApe3ZhciBhPXQrZTtyZXR1cm4gbShhPDA/W106W3RoaXNbYV1dKX1yZXR1cm4gbShbdGhpc1tlXV0pfSxhcHBlbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1uKCksYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKz0xKXtlPWE8MHx8YXJndW1lbnRzLmxlbmd0aDw9YT92b2lkIDA6YXJndW1lbnRzW2FdO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGg7aSs9MSlpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciByPXQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKHIuaW5uZXJIVE1MPWU7ci5maXJzdENoaWxkOyl0aGlzW2ldLmFwcGVuZENoaWxkKHIuZmlyc3RDaGlsZCl9ZWxzZSBpZihlIGluc3RhbmNlb2YgYylmb3IodmFyIHM9MDtzPGUubGVuZ3RoO3MrPTEpdGhpc1tpXS5hcHBlbmRDaGlsZChlW3NdKTtlbHNlIHRoaXNbaV0uYXBwZW5kQ2hpbGQoZSl9cmV0dXJuIHRoaXN9LHByZXBlbmQ6ZnVuY3Rpb24oZSl7dmFyIHQsYSxpPW4oKTtmb3IodD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSlpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciByPWkuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKHIuaW5uZXJIVE1MPWUsYT1yLmNoaWxkTm9kZXMubGVuZ3RoLTE7YT49MDthLT0xKXRoaXNbdF0uaW5zZXJ0QmVmb3JlKHIuY2hpbGROb2Rlc1thXSx0aGlzW3RdLmNoaWxkTm9kZXNbMF0pfWVsc2UgaWYoZSBpbnN0YW5jZW9mIGMpZm9yKGE9MDthPGUubGVuZ3RoO2ErPTEpdGhpc1t0XS5pbnNlcnRCZWZvcmUoZVthXSx0aGlzW3RdLmNoaWxkTm9kZXNbMF0pO2Vsc2UgdGhpc1t0XS5pbnNlcnRCZWZvcmUoZSx0aGlzW3RdLmNoaWxkTm9kZXNbMF0pO3JldHVybiB0aGlzfSxuZXh0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxlbmd0aD4wP2U/dGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmcmJm0odGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmcpLmlzKGUpP20oW3RoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nXSk6bShbXSk6dGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmc/bShbdGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmddKTptKFtdKTptKFtdKX0sbmV4dEFsbDpmdW5jdGlvbihlKXt2YXIgdD1bXSxhPXRoaXNbMF07aWYoIWEpcmV0dXJuIG0oW10pO2Zvcig7YS5uZXh0RWxlbWVudFNpYmxpbmc7KXt2YXIgbj1hLm5leHRFbGVtZW50U2libGluZztlP20obikuaXMoZSkmJnQucHVzaChuKTp0LnB1c2gobiksYT1ufXJldHVybiBtKHQpfSxwcmV2OmZ1bmN0aW9uKGUpe2lmKHRoaXMubGVuZ3RoPjApe3ZhciB0PXRoaXNbMF07cmV0dXJuIGU/dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nJiZtKHQucHJldmlvdXNFbGVtZW50U2libGluZykuaXMoZSk/bShbdC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXSk6bShbXSk6dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nP20oW3QucHJldmlvdXNFbGVtZW50U2libGluZ10pOm0oW10pfXJldHVybiBtKFtdKX0scHJldkFsbDpmdW5jdGlvbihlKXt2YXIgdD1bXSxhPXRoaXNbMF07aWYoIWEpcmV0dXJuIG0oW10pO2Zvcig7YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nOyl7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO2U/bShuKS5pcyhlKSYmdC5wdXNoKG4pOnQucHVzaChuKSxhPW59cmV0dXJuIG0odCl9LHBhcmVudDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sYT0wO2E8dGhpcy5sZW5ndGg7YSs9MSludWxsIT09dGhpc1thXS5wYXJlbnROb2RlJiYoZT9tKHRoaXNbYV0ucGFyZW50Tm9kZSkuaXMoZSkmJnQucHVzaCh0aGlzW2FdLnBhcmVudE5vZGUpOnQucHVzaCh0aGlzW2FdLnBhcmVudE5vZGUpKTtyZXR1cm4gbSh0KX0scGFyZW50czpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sYT0wO2E8dGhpcy5sZW5ndGg7YSs9MSlmb3IodmFyIG49dGhpc1thXS5wYXJlbnROb2RlO247KWU/bShuKS5pcyhlKSYmdC5wdXNoKG4pOnQucHVzaChuKSxuPW4ucGFyZW50Tm9kZTtyZXR1cm4gbSh0KX0sY2xvc2VzdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB2b2lkIDA9PT1lP20oW10pOih0LmlzKGUpfHwodD10LnBhcmVudHMoZSkuZXEoMCkpLHQpfSxmaW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxhPTA7YTx0aGlzLmxlbmd0aDthKz0xKWZvcih2YXIgbj10aGlzW2FdLnF1ZXJ5U2VsZWN0b3JBbGwoZSksaT0wO2k8bi5sZW5ndGg7aSs9MSl0LnB1c2gobltpXSk7cmV0dXJuIG0odCl9LGNoaWxkcmVuOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxhPTA7YTx0aGlzLmxlbmd0aDthKz0xKWZvcih2YXIgbj10aGlzW2FdLmNoaWxkcmVuLGk9MDtpPG4ubGVuZ3RoO2krPTEpZSYmIW0obltpXSkuaXMoZSl8fHQucHVzaChuW2ldKTtyZXR1cm4gbSh0KX0sZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiBtKHAodGhpcyxlKSl9LHJlbW92ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGg7ZSs9MSl0aGlzW2VdLnBhcmVudE5vZGUmJnRoaXNbZV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzW2VdKTtyZXR1cm4gdGhpc319O2Z1bmN0aW9uIEMoZSl7cmV0dXJuIHNldFRpbWVvdXQoZSxhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCl9ZnVuY3Rpb24gaygpe3JldHVybiBEYXRlLm5vdygpfWZ1bmN0aW9uIE0oZSl7dmFyIHQsYSxuLGk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJ4IixzPXIoKSxvPWZ1bmN0aW9uKGUpe3ZhciB0LGE9cigpO3JldHVybiBhLmdldENvbXB1dGVkU3R5bGUmJih0PWEuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpKSwhdCYmZS5jdXJyZW50U3R5bGUmJih0PWUuY3VycmVudFN0eWxlKSx0fHwodD1lLnN0eWxlKSx0fShlKTtyZXR1cm4gcy5XZWJLaXRDU1NNYXRyaXg/KChhPW8udHJhbnNmb3JtfHxvLndlYmtpdFRyYW5zZm9ybSkuc3BsaXQoIiwiKS5sZW5ndGg+NiYmKGE9YS5zcGxpdCgiLCAiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoIiwiLCIuIil9KSkuam9pbigiLCAiKSksbj1uZXcgcy5XZWJLaXRDU1NNYXRyaXgoIm5vbmUiPT09YT8iIjphKSk6dD0obj1vLk1velRyYW5zZm9ybXx8by5PVHJhbnNmb3JtfHxvLk1zVHJhbnNmb3JtfHxvLm1zVHJhbnNmb3JtfHxvLnRyYW5zZm9ybXx8by5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKS5yZXBsYWNlKCJ0cmFuc2xhdGUoIiwibWF0cml4KDEsIDAsIDAsIDEsIikpLnRvU3RyaW5nKCkuc3BsaXQoIiwiKSwieCI9PT1pJiYoYT1zLldlYktpdENTU01hdHJpeD9uLm00MToxNj09PXQubGVuZ3RoP3BhcnNlRmxvYXQodFsxMl0pOnBhcnNlRmxvYXQodFs0XSkpLCJ5Ij09PWkmJihhPXMuV2ViS2l0Q1NTTWF0cml4P24ubTQyOjE2PT09dC5sZW5ndGg/cGFyc2VGbG9hdCh0WzEzXSk6cGFyc2VGbG9hdCh0WzVdKSksYXx8MH1mdW5jdGlvbiBQKGUpe3JldHVybiJvYmplY3QiPT13KGUpJiZudWxsIT09ZSYmZS5jb25zdHJ1Y3RvciYmIk9iamVjdCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSl9ZnVuY3Rpb24gQSgpe2Zvcih2YXIgZSx0PU9iamVjdChhcmd1bWVudHMubGVuZ3RoPD0wP3ZvaWQgMDphcmd1bWVudHNbMF0pLGE9WyJfX3Byb3RvX18iLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSJdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bis9MSl7dmFyIGk9bjwwfHxhcmd1bWVudHMubGVuZ3RoPD1uP3ZvaWQgMDphcmd1bWVudHNbbl07aWYobnVsbCE9aSYmKGU9aSwhKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuSFRNTEVsZW1lbnQ/ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50OmUmJigxPT09ZS5ub2RlVHlwZXx8MTE9PT1lLm5vZGVUeXBlKSkpKWZvcih2YXIgcj1PYmplY3Qua2V5cyhPYmplY3QoaSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGEuaW5kZXhPZihlKTwwfSkpLHM9MCxvPXIubGVuZ3RoO3M8bztzKz0xKXt2YXIgbD1yW3NdLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGwpO3ZvaWQgMCE9PWMmJmMuZW51bWVyYWJsZSYmKFAodFtsXSkmJlAoaVtsXSk/aVtsXS5fX3N3aXBlcl9fP3RbbF09aVtsXTpBKHRbbF0saVtsXSk6IVAodFtsXSkmJlAoaVtsXSk/KHRbbF09e30saVtsXS5fX3N3aXBlcl9fP3RbbF09aVtsXTpBKHRbbF0saVtsXSkpOnRbbF09aVtsXSl9fXJldHVybiB0fWZ1bmN0aW9uIEwoZSx0LGEpe2Uuc3R5bGUuc2V0UHJvcGVydHkodCxhKX1mdW5jdGlvbiBPKGUpe3ZhciB0LGE9ZS5zd2lwZXIsbj1lLnRhcmdldFBvc2l0aW9uLGk9ZS5zaWRlLG89cigpLGw9LWEudHJhbnNsYXRlLGM9bnVsbCxkPWEucGFyYW1zLnNwZWVkO2Eud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixvLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEuY3NzTW9kZUZyYW1lSUQpO3ZhciB1PW4+bD8ibmV4dCI6InByZXYiLHA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibmV4dCI9PT11JiZlPj10fHwicHJldiI9PT11JiZlPD10fTshZnVuY3Rpb24gZSgpe3Q9KG5ldyBEYXRlKS5nZXRUaW1lKCksbnVsbD09PWMmJihjPXQpO3ZhciByPU1hdGgubWF4KE1hdGgubWluKCh0LWMpL2QsMSksMCksdT0uNS1NYXRoLmNvcyhyKk1hdGguUEkpLzIsZj1sK3UqKG4tbCk7aWYocChmLG4pJiYoZj1uKSxhLndyYXBwZXJFbC5zY3JvbGxUbyhzKHt9LGksZikpLHAoZixuKSlyZXR1cm4gYS53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsYS53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGU9IiIsc2V0VGltZW91dCgoZnVuY3Rpb24oKXthLndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdz0iIixhLndyYXBwZXJFbC5zY3JvbGxUbyhzKHt9LGksZikpfSkpLHZvaWQgby5jYW5jZWxBbmltYXRpb25GcmFtZShhLmNzc01vZGVGcmFtZUlEKTthLmNzc01vZGVGcmFtZUlEPW8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfSgpfWZ1bmN0aW9uIGooKXtyZXR1cm4geHx8KHg9ZnVuY3Rpb24oKXt2YXIgZT1yKCksdD1uKCk7cmV0dXJue3Ntb290aFNjcm9sbDp0LmRvY3VtZW50RWxlbWVudCYmInNjcm9sbEJlaGF2aW9yImluIHQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLHRvdWNoOiEhKCJvbnRvdWNoc3RhcnQiaW4gZXx8ZS5Eb2N1bWVudFRvdWNoJiZ0IGluc3RhbmNlb2YgZS5Eb2N1bWVudFRvdWNoKSxwYXNzaXZlTGlzdGVuZXI6ZnVuY3Rpb24oKXt2YXIgdD0hMTt0cnl7dmFyIGE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7dD0hMH19KTtlLmFkZEV2ZW50TGlzdGVuZXIoInRlc3RQYXNzaXZlTGlzdGVuZXIiLG51bGwsYSl9Y2F0Y2goZSl7fXJldHVybiB0fSgpLGdlc3R1cmVzOiJvbmdlc3R1cmVzdGFydCJpbiBlfX0oKSkseH1mdW5jdGlvbiBJKCl7cmV0dXJuIEV8fChFPWZ1bmN0aW9uKCl7dmFyIGU9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSkudXNlckFnZW50LHQ9aigpLGE9cigpLG49YS5uYXZpZ2F0b3IucGxhdGZvcm0saT1lfHxhLm5hdmlnYXRvci51c2VyQWdlbnQscz17aW9zOiExLGFuZHJvaWQ6ITF9LG89YS5zY3JlZW4ud2lkdGgsbD1hLnNjcmVlbi5oZWlnaHQsYz1pLm1hdGNoKC8oQW5kcm9pZCk7P1tcc1wvXSsoW1xkLl0rKT8vKSxkPWkubWF0Y2goLyhpUGFkKS4qT1NccyhbXGRfXSspLyksdT1pLm1hdGNoKC8oaVBvZCkoLipPU1xzKFtcZF9dKykpPy8pLHA9IWQmJmkubWF0Y2goLyhpUGhvbmVcc09TfGlPUylccyhbXGRfXSspLyksZj0iV2luMzIiPT09bix2PSJNYWNJbnRlbCI9PT1uO3JldHVybiFkJiZ2JiZ0LnRvdWNoJiZbIjEwMjR4MTM2NiIsIjEzNjZ4MTAyNCIsIjgzNHgxMTk0IiwiMTE5NHg4MzQiLCI4MzR4MTExMiIsIjExMTJ4ODM0IiwiNzY4eDEwMjQiLCIxMDI0eDc2OCIsIjgyMHgxMTgwIiwiMTE4MHg4MjAiLCI4MTB4MTA4MCIsIjEwODB4ODEwIl0uaW5kZXhPZigiIi5jb25jYXQobywieCIpLmNvbmNhdChsKSk+PTAmJigoZD1pLm1hdGNoKC8oVmVyc2lvbilcLyhbXGQuXSspLykpfHwoZD1bMCwxLCIxM18wXzAiXSksdj0hMSksYyYmIWYmJihzLm9zPSJhbmRyb2lkIixzLmFuZHJvaWQ9ITApLChkfHxwfHx1KSYmKHMub3M9ImlvcyIscy5pb3M9ITApLHN9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSkpLEV9ZnVuY3Rpb24gJCgpe3JldHVybiBTfHwoUz1mdW5jdGlvbigpe3ZhciBlPXIoKTtyZXR1cm57aXNTYWZhcmk6ZnVuY3Rpb24oKXt2YXIgdD1lLm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtyZXR1cm4gdC5pbmRleE9mKCJzYWZhcmkiKT49MCYmdC5pbmRleE9mKCJjaHJvbWUiKTwwJiZ0LmluZGV4T2YoImFuZHJvaWQiKTwwfSgpLGlzV2ViVmlldzovKGlQaG9uZXxpUG9kfGlQYWQpLipBcHBsZVdlYktpdCg/IS4qU2FmYXJpKS9pLnRlc3QoZS5uYXZpZ2F0b3IudXNlckFnZW50KX19KCkpLFN9T2JqZWN0LmtleXMoVCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG0uZm4sZSx7dmFsdWU6VFtlXSx3cml0YWJsZTohMH0pfSkpO3ZhciB6PXtvbjpmdW5jdGlvbihlLHQsYSl7dmFyIG49dGhpcztpZigiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm4gbjt2YXIgaT1hPyJ1bnNoaWZ0IjoicHVzaCI7cmV0dXJuIGUuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtuLmV2ZW50c0xpc3RlbmVyc1tlXXx8KG4uZXZlbnRzTGlzdGVuZXJzW2VdPVtdKSxuLmV2ZW50c0xpc3RlbmVyc1tlXVtpXSh0KX0pKSxufSxvbmNlOmZ1bmN0aW9uKGUsdCxhKXt2YXIgbj10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXJldHVybiBuO2Z1bmN0aW9uIGkoKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShhKSxzPTA7czxhO3MrKylyW3NdPWFyZ3VtZW50c1tzXTtuLm9mZihlLGkpLGkuX19lbWl0dGVyUHJveHkmJmRlbGV0ZSBpLl9fZW1pdHRlclByb3h5LHQuYXBwbHkobixyKX1yZXR1cm4gaS5fX2VtaXR0ZXJQcm94eT10LG4ub24oZSxpLGEpfSxvbkFueTpmdW5jdGlvbihlLHQpe3ZhciBhPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIGE7dmFyIG49dD8idW5zaGlmdCI6InB1c2giO3JldHVybiBhLmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKGUpPDAmJmEuZXZlbnRzQW55TGlzdGVuZXJzW25dKGUpLGF9LG9mZkFueTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKCF0LmV2ZW50c0FueUxpc3RlbmVycylyZXR1cm4gdDt2YXIgYT10LmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKGUpO3JldHVybiBhPj0wJiZ0LmV2ZW50c0FueUxpc3RlbmVycy5zcGxpY2UoYSwxKSx0fSxvZmY6ZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzO3JldHVybiBhLmV2ZW50c0xpc3RlbmVycz8oZS5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PXQ/YS5ldmVudHNMaXN0ZW5lcnNbZV09W106YS5ldmVudHNMaXN0ZW5lcnNbZV0mJmEuZXZlbnRzTGlzdGVuZXJzW2VdLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7KG49PT10fHxuLl9fZW1pdHRlclByb3h5JiZuLl9fZW1pdHRlclByb3h5PT09dCkmJmEuZXZlbnRzTGlzdGVuZXJzW2VdLnNwbGljZShpLDEpfSkpfSkpLGEpOmF9LGVtaXQ6ZnVuY3Rpb24oKXt2YXIgZSx0LGEsbj10aGlzO2lmKCFuLmV2ZW50c0xpc3RlbmVycylyZXR1cm4gbjtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSxzPTA7czxpO3MrKylyW3NdPWFyZ3VtZW50c1tzXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHJbMF18fEFycmF5LmlzQXJyYXkoclswXSk/KGU9clswXSx0PXIuc2xpY2UoMSxyLmxlbmd0aCksYT1uKTooZT1yWzBdLmV2ZW50cyx0PXJbMF0uZGF0YSxhPXJbMF0uY29udGV4dHx8biksdC51bnNoaWZ0KGEpLChBcnJheS5pc0FycmF5KGUpP2U6ZS5zcGxpdCgiICIpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtuLmV2ZW50c0FueUxpc3RlbmVycyYmbi5ldmVudHNBbnlMaXN0ZW5lcnMubGVuZ3RoJiZuLmV2ZW50c0FueUxpc3RlbmVycy5mb3JFYWNoKChmdW5jdGlvbihuKXtuLmFwcGx5KGEsW2VdLmNvbmNhdChvKHQpKSl9KSksbi5ldmVudHNMaXN0ZW5lcnMmJm4uZXZlbnRzTGlzdGVuZXJzW2VdJiZuLmV2ZW50c0xpc3RlbmVyc1tlXS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmFwcGx5KGEsdCl9KSl9KSksbn19O2Z1bmN0aW9uIEQoZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLnJ1bkNhbGxiYWNrcyxuPWUuZGlyZWN0aW9uLGk9ZS5zdGVwLHI9dC5hY3RpdmVJbmRleCxzPXQucHJldmlvdXNJbmRleCxvPW47aWYob3x8KG89cj5zPyJuZXh0IjpyPHM/InByZXYiOiJyZXNldCIpLHQuZW1pdCgidHJhbnNpdGlvbiIuY29uY2F0KGkpKSxhJiZyIT09cyl7aWYoInJlc2V0Ij09PW8pcmV0dXJuIHZvaWQgdC5lbWl0KCJzbGlkZVJlc2V0VHJhbnNpdGlvbiIuY29uY2F0KGkpKTt0LmVtaXQoInNsaWRlQ2hhbmdlVHJhbnNpdGlvbiIuY29uY2F0KGkpKSwibmV4dCI9PT1vP3QuZW1pdCgic2xpZGVOZXh0VHJhbnNpdGlvbiIuY29uY2F0KGkpKTp0LmVtaXQoInNsaWRlUHJldlRyYW5zaXRpb24iLmNvbmNhdChpKSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9dGhpcyxhPW4oKSxpPXIoKSxzPXQudG91Y2hFdmVudHNEYXRhLG89dC5wYXJhbXMsbD10LnRvdWNoZXM7aWYodC5lbmFibGVkJiYoIXQuYW5pbWF0aW5nfHwhby5wcmV2ZW50SW50ZXJhY3Rpb25PblRyYW5zaXRpb24pKXshdC5hbmltYXRpbmcmJm8uY3NzTW9kZSYmby5sb29wJiZ0Lmxvb3BGaXgoKTt2YXIgYz1lO2Mub3JpZ2luYWxFdmVudCYmKGM9Yy5vcmlnaW5hbEV2ZW50KTt2YXIgZD1tKGMudGFyZ2V0KTtpZigoIndyYXBwZXIiIT09by50b3VjaEV2ZW50c1RhcmdldHx8ZC5jbG9zZXN0KHQud3JhcHBlckVsKS5sZW5ndGgpJiYocy5pc1RvdWNoRXZlbnQ9InRvdWNoc3RhcnQiPT09Yy50eXBlLChzLmlzVG91Y2hFdmVudHx8ISgid2hpY2giaW4gYyl8fDMhPT1jLndoaWNoKSYmISghcy5pc1RvdWNoRXZlbnQmJiJidXR0b24iaW4gYyYmYy5idXR0b24+MHx8cy5pc1RvdWNoZWQmJnMuaXNNb3ZlZCkpKXtvLm5vU3dpcGluZ0NsYXNzJiYiIiE9PW8ubm9Td2lwaW5nQ2xhc3MmJmMudGFyZ2V0JiZjLnRhcmdldC5zaGFkb3dSb290JiZlLnBhdGgmJmUucGF0aFswXSYmKGQ9bShlLnBhdGhbMF0pKTt2YXIgdT1vLm5vU3dpcGluZ1NlbGVjdG9yP28ubm9Td2lwaW5nU2VsZWN0b3I6Ii4iLmNvbmNhdChvLm5vU3dpcGluZ0NsYXNzKSxwPSEoIWMudGFyZ2V0fHwhYy50YXJnZXQuc2hhZG93Um9vdCk7aWYoby5ub1N3aXBpbmcmJihwP2Z1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiB0KGEpe3JldHVybiBhJiZhIT09bigpJiZhIT09cigpPyhhLmFzc2lnbmVkU2xvdCYmKGE9YS5hc3NpZ25lZFNsb3QpLGEuY2xvc2VzdChlKXx8dChhLmdldFJvb3ROb2RlKCkuaG9zdCkpOm51bGx9KGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzKX0odSxjLnRhcmdldCk6ZC5jbG9zZXN0KHUpWzBdKSl0LmFsbG93Q2xpY2s9ITA7ZWxzZSBpZighby5zd2lwZUhhbmRsZXJ8fGQuY2xvc2VzdChvLnN3aXBlSGFuZGxlcilbMF0pe2wuY3VycmVudFg9InRvdWNoc3RhcnQiPT09Yy50eXBlP2MudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDpjLnBhZ2VYLGwuY3VycmVudFk9InRvdWNoc3RhcnQiPT09Yy50eXBlP2MudGFyZ2V0VG91Y2hlc1swXS5wYWdlWTpjLnBhZ2VZO3ZhciBmPWwuY3VycmVudFgsdj1sLmN1cnJlbnRZLGg9by5lZGdlU3dpcGVEZXRlY3Rpb258fG8uaU9TRWRnZVN3aXBlRGV0ZWN0aW9uLGc9by5lZGdlU3dpcGVUaHJlc2hvbGR8fG8uaU9TRWRnZVN3aXBlVGhyZXNob2xkO2lmKGgmJihmPD1nfHxmPj1pLmlubmVyV2lkdGgtZykpe2lmKCJwcmV2ZW50IiE9PWgpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKX1pZihPYmplY3QuYXNzaWduKHMse2lzVG91Y2hlZDohMCxpc01vdmVkOiExLGFsbG93VG91Y2hDYWxsYmFja3M6ITAsaXNTY3JvbGxpbmc6dm9pZCAwLHN0YXJ0TW92aW5nOnZvaWQgMH0pLGwuc3RhcnRYPWYsbC5zdGFydFk9dixzLnRvdWNoU3RhcnRUaW1lPWsoKSx0LmFsbG93Q2xpY2s9ITAsdC51cGRhdGVTaXplKCksdC5zd2lwZURpcmVjdGlvbj12b2lkIDAsby50aHJlc2hvbGQ+MCYmKHMuYWxsb3dUaHJlc2hvbGRNb3ZlPSExKSwidG91Y2hzdGFydCIhPT1jLnR5cGUpe3ZhciBiPSEwO2QuaXMocy5mb2N1c2FibGVFbGVtZW50cykmJihiPSExKSxhLmFjdGl2ZUVsZW1lbnQmJm0oYS5hY3RpdmVFbGVtZW50KS5pcyhzLmZvY3VzYWJsZUVsZW1lbnRzKSYmYS5hY3RpdmVFbGVtZW50IT09ZFswXSYmYS5hY3RpdmVFbGVtZW50LmJsdXIoKTt2YXIgeT1iJiZ0LmFsbG93VG91Y2hNb3ZlJiZvLnRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDshby50b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdCYmIXl8fGRbMF0uaXNDb250ZW50RWRpdGFibGV8fGMucHJldmVudERlZmF1bHQoKX10LmVtaXQoInRvdWNoU3RhcnQiLGMpfX19fWZ1bmN0aW9uIHEoZSl7dmFyIHQ9bigpLGE9dGhpcyxpPWEudG91Y2hFdmVudHNEYXRhLHI9YS5wYXJhbXMscz1hLnRvdWNoZXMsbz1hLnJ0bFRyYW5zbGF0ZTtpZihhLmVuYWJsZWQpe3ZhciBsPWU7aWYobC5vcmlnaW5hbEV2ZW50JiYobD1sLm9yaWdpbmFsRXZlbnQpLGkuaXNUb3VjaGVkKXtpZighaS5pc1RvdWNoRXZlbnR8fCJ0b3VjaG1vdmUiPT09bC50eXBlKXt2YXIgYz0idG91Y2htb3ZlIj09PWwudHlwZSYmbC50YXJnZXRUb3VjaGVzJiYobC50YXJnZXRUb3VjaGVzWzBdfHxsLmNoYW5nZWRUb3VjaGVzWzBdKSxkPSJ0b3VjaG1vdmUiPT09bC50eXBlP2MucGFnZVg6bC5wYWdlWCx1PSJ0b3VjaG1vdmUiPT09bC50eXBlP2MucGFnZVk6bC5wYWdlWTtpZihsLnByZXZlbnRlZEJ5TmVzdGVkU3dpcGVyKXJldHVybiBzLnN0YXJ0WD1kLHZvaWQocy5zdGFydFk9dSk7aWYoIWEuYWxsb3dUb3VjaE1vdmUpcmV0dXJuIGEuYWxsb3dDbGljaz0hMSx2b2lkKGkuaXNUb3VjaGVkJiYoT2JqZWN0LmFzc2lnbihzLHtzdGFydFg6ZCxzdGFydFk6dSxjdXJyZW50WDpkLGN1cnJlbnRZOnV9KSxpLnRvdWNoU3RhcnRUaW1lPWsoKSkpO2lmKGkuaXNUb3VjaEV2ZW50JiZyLnRvdWNoUmVsZWFzZU9uRWRnZXMmJiFyLmxvb3ApaWYoYS5pc1ZlcnRpY2FsKCkpe2lmKHU8cy5zdGFydFkmJmEudHJhbnNsYXRlPD1hLm1heFRyYW5zbGF0ZSgpfHx1PnMuc3RhcnRZJiZhLnRyYW5zbGF0ZT49YS5taW5UcmFuc2xhdGUoKSlyZXR1cm4gaS5pc1RvdWNoZWQ9ITEsdm9pZChpLmlzTW92ZWQ9ITEpfWVsc2UgaWYoZDxzLnN0YXJ0WCYmYS50cmFuc2xhdGU8PWEubWF4VHJhbnNsYXRlKCl8fGQ+cy5zdGFydFgmJmEudHJhbnNsYXRlPj1hLm1pblRyYW5zbGF0ZSgpKXJldHVybjtpZihpLmlzVG91Y2hFdmVudCYmdC5hY3RpdmVFbGVtZW50JiZsLnRhcmdldD09PXQuYWN0aXZlRWxlbWVudCYmbShsLnRhcmdldCkuaXMoaS5mb2N1c2FibGVFbGVtZW50cykpcmV0dXJuIGkuaXNNb3ZlZD0hMCx2b2lkKGEuYWxsb3dDbGljaz0hMSk7aWYoaS5hbGxvd1RvdWNoQ2FsbGJhY2tzJiZhLmVtaXQoInRvdWNoTW92ZSIsbCksIShsLnRhcmdldFRvdWNoZXMmJmwudGFyZ2V0VG91Y2hlcy5sZW5ndGg+MSkpe3MuY3VycmVudFg9ZCxzLmN1cnJlbnRZPXU7dmFyIHAsZj1zLmN1cnJlbnRYLXMuc3RhcnRYLHY9cy5jdXJyZW50WS1zLnN0YXJ0WTtpZighKGEucGFyYW1zLnRocmVzaG9sZCYmTWF0aC5zcXJ0KE1hdGgucG93KGYsMikrTWF0aC5wb3codiwyKSk8YS5wYXJhbXMudGhyZXNob2xkKSlpZih2b2lkIDA9PT1pLmlzU2Nyb2xsaW5nJiYoYS5pc0hvcml6b250YWwoKSYmcy5jdXJyZW50WT09PXMuc3RhcnRZfHxhLmlzVmVydGljYWwoKSYmcy5jdXJyZW50WD09PXMuc3RhcnRYP2kuaXNTY3JvbGxpbmc9ITE6ZipmK3Yqdj49MjUmJihwPTE4MCpNYXRoLmF0YW4yKE1hdGguYWJzKHYpLE1hdGguYWJzKGYpKS9NYXRoLlBJLGkuaXNTY3JvbGxpbmc9YS5pc0hvcml6b250YWwoKT9wPnIudG91Y2hBbmdsZTo5MC1wPnIudG91Y2hBbmdsZSkpLGkuaXNTY3JvbGxpbmcmJmEuZW1pdCgidG91Y2hNb3ZlT3Bwb3NpdGUiLGwpLHZvaWQgMD09PWkuc3RhcnRNb3ZpbmcmJihzLmN1cnJlbnRYPT09cy5zdGFydFgmJnMuY3VycmVudFk9PT1zLnN0YXJ0WXx8KGkuc3RhcnRNb3Zpbmc9ITApKSxpLmlzU2Nyb2xsaW5nKWkuaXNUb3VjaGVkPSExO2Vsc2UgaWYoaS5zdGFydE1vdmluZyl7YS5hbGxvd0NsaWNrPSExLCFyLmNzc01vZGUmJmwuY2FuY2VsYWJsZSYmbC5wcmV2ZW50RGVmYXVsdCgpLHIudG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uJiYhci5uZXN0ZWQmJmwuc3RvcFByb3BhZ2F0aW9uKCksaS5pc01vdmVkfHwoci5sb29wJiYhci5jc3NNb2RlJiZhLmxvb3BGaXgoKSxpLnN0YXJ0VHJhbnNsYXRlPWEuZ2V0VHJhbnNsYXRlKCksYS5zZXRUcmFuc2l0aW9uKDApLGEuYW5pbWF0aW5nJiZhLiR3cmFwcGVyRWwudHJpZ2dlcigid2Via2l0VHJhbnNpdGlvbkVuZCB0cmFuc2l0aW9uZW5kIiksaS5hbGxvd01vbWVudHVtQm91bmNlPSExLCFyLmdyYWJDdXJzb3J8fCEwIT09YS5hbGxvd1NsaWRlTmV4dCYmITAhPT1hLmFsbG93U2xpZGVQcmV2fHxhLnNldEdyYWJDdXJzb3IoITApLGEuZW1pdCgic2xpZGVyRmlyc3RNb3ZlIixsKSksYS5lbWl0KCJzbGlkZXJNb3ZlIixsKSxpLmlzTW92ZWQ9ITA7dmFyIGg9YS5pc0hvcml6b250YWwoKT9mOnY7cy5kaWZmPWgsaCo9ci50b3VjaFJhdGlvLG8mJihoPS1oKSxhLnN3aXBlRGlyZWN0aW9uPWg+MD8icHJldiI6Im5leHQiLGkuY3VycmVudFRyYW5zbGF0ZT1oK2kuc3RhcnRUcmFuc2xhdGU7dmFyIGc9ITAsYj1yLnJlc2lzdGFuY2VSYXRpbztpZihyLnRvdWNoUmVsZWFzZU9uRWRnZXMmJihiPTApLGg+MCYmaS5jdXJyZW50VHJhbnNsYXRlPmEubWluVHJhbnNsYXRlKCk/KGc9ITEsci5yZXNpc3RhbmNlJiYoaS5jdXJyZW50VHJhbnNsYXRlPWEubWluVHJhbnNsYXRlKCktMStNYXRoLnBvdygtYS5taW5UcmFuc2xhdGUoKStpLnN0YXJ0VHJhbnNsYXRlK2gsYikpKTpoPDAmJmkuY3VycmVudFRyYW5zbGF0ZTxhLm1heFRyYW5zbGF0ZSgpJiYoZz0hMSxyLnJlc2lzdGFuY2UmJihpLmN1cnJlbnRUcmFuc2xhdGU9YS5tYXhUcmFuc2xhdGUoKSsxLU1hdGgucG93KGEubWF4VHJhbnNsYXRlKCktaS5zdGFydFRyYW5zbGF0ZS1oLGIpKSksZyYmKGwucHJldmVudGVkQnlOZXN0ZWRTd2lwZXI9ITApLCFhLmFsbG93U2xpZGVOZXh0JiYibmV4dCI9PT1hLnN3aXBlRGlyZWN0aW9uJiZpLmN1cnJlbnRUcmFuc2xhdGU8aS5zdGFydFRyYW5zbGF0ZSYmKGkuY3VycmVudFRyYW5zbGF0ZT1pLnN0YXJ0VHJhbnNsYXRlKSwhYS5hbGxvd1NsaWRlUHJldiYmInByZXYiPT09YS5zd2lwZURpcmVjdGlvbiYmaS5jdXJyZW50VHJhbnNsYXRlPmkuc3RhcnRUcmFuc2xhdGUmJihpLmN1cnJlbnRUcmFuc2xhdGU9aS5zdGFydFRyYW5zbGF0ZSksYS5hbGxvd1NsaWRlUHJldnx8YS5hbGxvd1NsaWRlTmV4dHx8KGkuY3VycmVudFRyYW5zbGF0ZT1pLnN0YXJ0VHJhbnNsYXRlKSxyLnRocmVzaG9sZD4wKXtpZighKE1hdGguYWJzKGgpPnIudGhyZXNob2xkfHxpLmFsbG93VGhyZXNob2xkTW92ZSkpcmV0dXJuIHZvaWQoaS5jdXJyZW50VHJhbnNsYXRlPWkuc3RhcnRUcmFuc2xhdGUpO2lmKCFpLmFsbG93VGhyZXNob2xkTW92ZSlyZXR1cm4gaS5hbGxvd1RocmVzaG9sZE1vdmU9ITAscy5zdGFydFg9cy5jdXJyZW50WCxzLnN0YXJ0WT1zLmN1cnJlbnRZLGkuY3VycmVudFRyYW5zbGF0ZT1pLnN0YXJ0VHJhbnNsYXRlLHZvaWQocy5kaWZmPWEuaXNIb3Jpem9udGFsKCk/cy5jdXJyZW50WC1zLnN0YXJ0WDpzLmN1cnJlbnRZLXMuc3RhcnRZKX1yLmZvbGxvd0ZpbmdlciYmIXIuY3NzTW9kZSYmKChyLmZyZWVNb2RlJiZyLmZyZWVNb2RlLmVuYWJsZWQmJmEuZnJlZU1vZGV8fHIud2F0Y2hTbGlkZXNQcm9ncmVzcykmJihhLnVwZGF0ZUFjdGl2ZUluZGV4KCksYS51cGRhdGVTbGlkZXNDbGFzc2VzKCkpLGEucGFyYW1zLmZyZWVNb2RlJiZyLmZyZWVNb2RlLmVuYWJsZWQmJmEuZnJlZU1vZGUmJmEuZnJlZU1vZGUub25Ub3VjaE1vdmUoKSxhLnVwZGF0ZVByb2dyZXNzKGkuY3VycmVudFRyYW5zbGF0ZSksYS5zZXRUcmFuc2xhdGUoaS5jdXJyZW50VHJhbnNsYXRlKSl9fX19ZWxzZSBpLnN0YXJ0TW92aW5nJiZpLmlzU2Nyb2xsaW5nJiZhLmVtaXQoInRvdWNoTW92ZU9wcG9zaXRlIixsKX19ZnVuY3Rpb24gTihlKXt2YXIgdD10aGlzLGE9dC50b3VjaEV2ZW50c0RhdGEsbj10LnBhcmFtcyxpPXQudG91Y2hlcyxyPXQucnRsVHJhbnNsYXRlLHM9dC5zbGlkZXNHcmlkO2lmKHQuZW5hYmxlZCl7dmFyIG89ZTtpZihvLm9yaWdpbmFsRXZlbnQmJihvPW8ub3JpZ2luYWxFdmVudCksYS5hbGxvd1RvdWNoQ2FsbGJhY2tzJiZ0LmVtaXQoInRvdWNoRW5kIixvKSxhLmFsbG93VG91Y2hDYWxsYmFja3M9ITEsIWEuaXNUb3VjaGVkKXJldHVybiBhLmlzTW92ZWQmJm4uZ3JhYkN1cnNvciYmdC5zZXRHcmFiQ3Vyc29yKCExKSxhLmlzTW92ZWQ9ITEsdm9pZChhLnN0YXJ0TW92aW5nPSExKTtuLmdyYWJDdXJzb3ImJmEuaXNNb3ZlZCYmYS5pc1RvdWNoZWQmJighMD09PXQuYWxsb3dTbGlkZU5leHR8fCEwPT09dC5hbGxvd1NsaWRlUHJldikmJnQuc2V0R3JhYkN1cnNvcighMSk7dmFyIGwsYz1rKCksZD1jLWEudG91Y2hTdGFydFRpbWU7aWYodC5hbGxvd0NsaWNrKXt2YXIgdT1vLnBhdGh8fG8uY29tcG9zZWRQYXRoJiZvLmNvbXBvc2VkUGF0aCgpO3QudXBkYXRlQ2xpY2tlZFNsaWRlKHUmJnVbMF18fG8udGFyZ2V0KSx0LmVtaXQoInRhcCBjbGljayIsbyksZDwzMDAmJmMtYS5sYXN0Q2xpY2tUaW1lPDMwMCYmdC5lbWl0KCJkb3VibGVUYXAgZG91YmxlQ2xpY2siLG8pfWlmKGEubGFzdENsaWNrVGltZT1rKCksQygoZnVuY3Rpb24oKXt0LmRlc3Ryb3llZHx8KHQuYWxsb3dDbGljaz0hMCl9KSksIWEuaXNUb3VjaGVkfHwhYS5pc01vdmVkfHwhdC5zd2lwZURpcmVjdGlvbnx8MD09PWkuZGlmZnx8YS5jdXJyZW50VHJhbnNsYXRlPT09YS5zdGFydFRyYW5zbGF0ZSlyZXR1cm4gYS5pc1RvdWNoZWQ9ITEsYS5pc01vdmVkPSExLHZvaWQoYS5zdGFydE1vdmluZz0hMSk7aWYoYS5pc1RvdWNoZWQ9ITEsYS5pc01vdmVkPSExLGEuc3RhcnRNb3Zpbmc9ITEsbD1uLmZvbGxvd0Zpbmdlcj9yP3QudHJhbnNsYXRlOi10LnRyYW5zbGF0ZTotYS5jdXJyZW50VHJhbnNsYXRlLCFuLmNzc01vZGUpaWYodC5wYXJhbXMuZnJlZU1vZGUmJm4uZnJlZU1vZGUuZW5hYmxlZCl0LmZyZWVNb2RlLm9uVG91Y2hFbmQoe2N1cnJlbnRQb3M6bH0pO2Vsc2V7Zm9yKHZhciBwPTAsZj10LnNsaWRlc1NpemVzR3JpZFswXSx2PTA7djxzLmxlbmd0aDt2Kz12PG4uc2xpZGVzUGVyR3JvdXBTa2lwPzE6bi5zbGlkZXNQZXJHcm91cCl7dmFyIGg9djxuLnNsaWRlc1Blckdyb3VwU2tpcC0xPzE6bi5zbGlkZXNQZXJHcm91cDt2b2lkIDAhPT1zW3YraF0/bD49c1t2XSYmbDxzW3YraF0mJihwPXYsZj1zW3YraF0tc1t2XSk6bD49c1t2XSYmKHA9dixmPXNbcy5sZW5ndGgtMV0tc1tzLmxlbmd0aC0yXSl9dmFyIG09KGwtc1twXSkvZixnPXA8bi5zbGlkZXNQZXJHcm91cFNraXAtMT8xOm4uc2xpZGVzUGVyR3JvdXA7aWYoZD5uLmxvbmdTd2lwZXNNcyl7aWYoIW4ubG9uZ1N3aXBlcylyZXR1cm4gdm9pZCB0LnNsaWRlVG8odC5hY3RpdmVJbmRleCk7Im5leHQiPT09dC5zd2lwZURpcmVjdGlvbiYmKG0+PW4ubG9uZ1N3aXBlc1JhdGlvP3Quc2xpZGVUbyhwK2cpOnQuc2xpZGVUbyhwKSksInByZXYiPT09dC5zd2lwZURpcmVjdGlvbiYmKG0+MS1uLmxvbmdTd2lwZXNSYXRpbz90LnNsaWRlVG8ocCtnKTp0LnNsaWRlVG8ocCkpfWVsc2V7aWYoIW4uc2hvcnRTd2lwZXMpcmV0dXJuIHZvaWQgdC5zbGlkZVRvKHQuYWN0aXZlSW5kZXgpOyF0Lm5hdmlnYXRpb258fG8udGFyZ2V0IT09dC5uYXZpZ2F0aW9uLm5leHRFbCYmby50YXJnZXQhPT10Lm5hdmlnYXRpb24ucHJldkVsPygibmV4dCI9PT10LnN3aXBlRGlyZWN0aW9uJiZ0LnNsaWRlVG8ocCtnKSwicHJldiI9PT10LnN3aXBlRGlyZWN0aW9uJiZ0LnNsaWRlVG8ocCkpOm8udGFyZ2V0PT09dC5uYXZpZ2F0aW9uLm5leHRFbD90LnNsaWRlVG8ocCtnKTp0LnNsaWRlVG8ocCl9fX19ZnVuY3Rpb24gQigpe3ZhciBlPXRoaXMsdD1lLnBhcmFtcyxhPWUuZWw7aWYoIWF8fDAhPT1hLm9mZnNldFdpZHRoKXt0LmJyZWFrcG9pbnRzJiZlLnNldEJyZWFrcG9pbnQoKTt2YXIgbj1lLmFsbG93U2xpZGVOZXh0LGk9ZS5hbGxvd1NsaWRlUHJldixyPWUuc25hcEdyaWQ7ZS5hbGxvd1NsaWRlTmV4dD0hMCxlLmFsbG93U2xpZGVQcmV2PSEwLGUudXBkYXRlU2l6ZSgpLGUudXBkYXRlU2xpZGVzKCksZS51cGRhdGVTbGlkZXNDbGFzc2VzKCksKCJhdXRvIj09PXQuc2xpZGVzUGVyVmlld3x8dC5zbGlkZXNQZXJWaWV3PjEpJiZlLmlzRW5kJiYhZS5pc0JlZ2lubmluZyYmIWUucGFyYW1zLmNlbnRlcmVkU2xpZGVzP2Uuc2xpZGVUbyhlLnNsaWRlcy5sZW5ndGgtMSwwLCExLCEwKTplLnNsaWRlVG8oZS5hY3RpdmVJbmRleCwwLCExLCEwKSxlLmF1dG9wbGF5JiZlLmF1dG9wbGF5LnJ1bm5pbmcmJmUuYXV0b3BsYXkucGF1c2VkJiZlLmF1dG9wbGF5LnJ1bigpLGUuYWxsb3dTbGlkZVByZXY9aSxlLmFsbG93U2xpZGVOZXh0PW4sZS5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmciE9PWUuc25hcEdyaWQmJmUuY2hlY2tPdmVyZmxvdygpfX1mdW5jdGlvbiBSKGUpe3ZhciB0PXRoaXM7dC5lbmFibGVkJiYodC5hbGxvd0NsaWNrfHwodC5wYXJhbXMucHJldmVudENsaWNrcyYmZS5wcmV2ZW50RGVmYXVsdCgpLHQucGFyYW1zLnByZXZlbnRDbGlja3NQcm9wYWdhdGlvbiYmdC5hbmltYXRpbmcmJihlLnN0b3BQcm9wYWdhdGlvbigpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpKSl9ZnVuY3Rpb24gSCgpe3ZhciBlPXRoaXMsdD1lLndyYXBwZXJFbCxhPWUucnRsVHJhbnNsYXRlO2lmKGUuZW5hYmxlZCl7ZS5wcmV2aW91c1RyYW5zbGF0ZT1lLnRyYW5zbGF0ZSxlLmlzSG9yaXpvbnRhbCgpP2UudHJhbnNsYXRlPS10LnNjcm9sbExlZnQ6ZS50cmFuc2xhdGU9LXQuc2Nyb2xsVG9wLC0wPT09ZS50cmFuc2xhdGUmJihlLnRyYW5zbGF0ZT0wKSxlLnVwZGF0ZUFjdGl2ZUluZGV4KCksZS51cGRhdGVTbGlkZXNDbGFzc2VzKCk7dmFyIG49ZS5tYXhUcmFuc2xhdGUoKS1lLm1pblRyYW5zbGF0ZSgpOygwPT09bj8wOihlLnRyYW5zbGF0ZS1lLm1pblRyYW5zbGF0ZSgpKS9uKSE9PWUucHJvZ3Jlc3MmJmUudXBkYXRlUHJvZ3Jlc3MoYT8tZS50cmFuc2xhdGU6ZS50cmFuc2xhdGUpLGUuZW1pdCgic2V0VHJhbnNsYXRlIixlLnRyYW5zbGF0ZSwhMSl9fXZhciBHPSExO2Z1bmN0aW9uIEYoKXt9dmFyIFk9ZnVuY3Rpb24oZSx0KXt2YXIgYT1uKCksaT1lLnBhcmFtcyxyPWUudG91Y2hFdmVudHMscz1lLmVsLG89ZS53cmFwcGVyRWwsbD1lLmRldmljZSxjPWUuc3VwcG9ydCxkPSEhaS5uZXN0ZWQsdT0ib24iPT09dD8iYWRkRXZlbnRMaXN0ZW5lciI6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHA9dDtpZihjLnRvdWNoKXt2YXIgZj0hKCJ0b3VjaHN0YXJ0IiE9PXIuc3RhcnR8fCFjLnBhc3NpdmVMaXN0ZW5lcnx8IWkucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiEwLGNhcHR1cmU6ITF9O3NbdV0oci5zdGFydCxlLm9uVG91Y2hTdGFydCxmKSxzW3VdKHIubW92ZSxlLm9uVG91Y2hNb3ZlLGMucGFzc2l2ZUxpc3RlbmVyP3twYXNzaXZlOiExLGNhcHR1cmU6ZH06ZCksc1t1XShyLmVuZCxlLm9uVG91Y2hFbmQsZiksci5jYW5jZWwmJnNbdV0oci5jYW5jZWwsZS5vblRvdWNoRW5kLGYpfWVsc2Ugc1t1XShyLnN0YXJ0LGUub25Ub3VjaFN0YXJ0LCExKSxhW3VdKHIubW92ZSxlLm9uVG91Y2hNb3ZlLGQpLGFbdV0oci5lbmQsZS5vblRvdWNoRW5kLCExKTsoaS5wcmV2ZW50Q2xpY2tzfHxpLnByZXZlbnRDbGlja3NQcm9wYWdhdGlvbikmJnNbdV0oImNsaWNrIixlLm9uQ2xpY2ssITApLGkuY3NzTW9kZSYmb1t1XSgic2Nyb2xsIixlLm9uU2Nyb2xsKSxpLnVwZGF0ZU9uV2luZG93UmVzaXplP2VbcF0obC5pb3N8fGwuYW5kcm9pZD8icmVzaXplIG9yaWVudGF0aW9uY2hhbmdlIG9ic2VydmVyVXBkYXRlIjoicmVzaXplIG9ic2VydmVyVXBkYXRlIixCLCEwKTplW3BdKCJvYnNlcnZlclVwZGF0ZSIsQiwhMCl9LFY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5ncmlkJiZ0LmdyaWQmJnQuZ3JpZC5yb3dzPjF9LFg9e2luaXQ6ITAsZGlyZWN0aW9uOiJob3Jpem9udGFsIix0b3VjaEV2ZW50c1RhcmdldDoid3JhcHBlciIsaW5pdGlhbFNsaWRlOjAsc3BlZWQ6MzAwLGNzc01vZGU6ITEsdXBkYXRlT25XaW5kb3dSZXNpemU6ITAscmVzaXplT2JzZXJ2ZXI6ITAsbmVzdGVkOiExLGNyZWF0ZUVsZW1lbnRzOiExLGVuYWJsZWQ6ITAsZm9jdXNhYmxlRWxlbWVudHM6ImlucHV0LCBzZWxlY3QsIG9wdGlvbiwgdGV4dGFyZWEsIGJ1dHRvbiwgdmlkZW8sIGxhYmVsIix3aWR0aDpudWxsLGhlaWdodDpudWxsLHByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbjohMSx1c2VyQWdlbnQ6bnVsbCx1cmw6bnVsbCxlZGdlU3dpcGVEZXRlY3Rpb246ITEsZWRnZVN3aXBlVGhyZXNob2xkOjIwLGF1dG9IZWlnaHQ6ITEsc2V0V3JhcHBlclNpemU6ITEsdmlydHVhbFRyYW5zbGF0ZTohMSxlZmZlY3Q6InNsaWRlIixicmVha3BvaW50czp2b2lkIDAsYnJlYWtwb2ludHNCYXNlOiJ3aW5kb3ciLHNwYWNlQmV0d2VlbjowLHNsaWRlc1BlclZpZXc6MSxzbGlkZXNQZXJHcm91cDoxLHNsaWRlc1Blckdyb3VwU2tpcDowLHNsaWRlc1Blckdyb3VwQXV0bzohMSxjZW50ZXJlZFNsaWRlczohMSxjZW50ZXJlZFNsaWRlc0JvdW5kczohMSxzbGlkZXNPZmZzZXRCZWZvcmU6MCxzbGlkZXNPZmZzZXRBZnRlcjowLG5vcm1hbGl6ZVNsaWRlSW5kZXg6ITAsY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiExLHdhdGNoT3ZlcmZsb3c6ITAscm91bmRMZW5ndGhzOiExLHRvdWNoUmF0aW86MSx0b3VjaEFuZ2xlOjQ1LHNpbXVsYXRlVG91Y2g6ITAsc2hvcnRTd2lwZXM6ITAsbG9uZ1N3aXBlczohMCxsb25nU3dpcGVzUmF0aW86LjUsbG9uZ1N3aXBlc01zOjMwMCxmb2xsb3dGaW5nZXI6ITAsYWxsb3dUb3VjaE1vdmU6ITAsdGhyZXNob2xkOjAsdG91Y2hNb3ZlU3RvcFByb3BhZ2F0aW9uOiExLHRvdWNoU3RhcnRQcmV2ZW50RGVmYXVsdDohMCx0b3VjaFN0YXJ0Rm9yY2VQcmV2ZW50RGVmYXVsdDohMSx0b3VjaFJlbGVhc2VPbkVkZ2VzOiExLHVuaXF1ZU5hdkVsZW1lbnRzOiEwLHJlc2lzdGFuY2U6ITAscmVzaXN0YW5jZVJhdGlvOi44NSx3YXRjaFNsaWRlc1Byb2dyZXNzOiExLGdyYWJDdXJzb3I6ITEscHJldmVudENsaWNrczohMCxwcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb246ITAsc2xpZGVUb0NsaWNrZWRTbGlkZTohMSxwcmVsb2FkSW1hZ2VzOiEwLHVwZGF0ZU9uSW1hZ2VzUmVhZHk6ITAsbG9vcDohMSxsb29wQWRkaXRpb25hbFNsaWRlczowLGxvb3BlZFNsaWRlczpudWxsLGxvb3BGaWxsR3JvdXBXaXRoQmxhbms6ITEsbG9vcFByZXZlbnRzU2xpZGU6ITAsYWxsb3dTbGlkZVByZXY6ITAsYWxsb3dTbGlkZU5leHQ6ITAsc3dpcGVIYW5kbGVyOm51bGwsbm9Td2lwaW5nOiEwLG5vU3dpcGluZ0NsYXNzOiJzd2lwZXItbm8tc3dpcGluZyIsbm9Td2lwaW5nU2VsZWN0b3I6bnVsbCxwYXNzaXZlTGlzdGVuZXJzOiEwLGNvbnRhaW5lck1vZGlmaWVyQ2xhc3M6InN3aXBlci0iLHNsaWRlQ2xhc3M6InN3aXBlci1zbGlkZSIsc2xpZGVCbGFua0NsYXNzOiJzd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5rIixzbGlkZUFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtYWN0aXZlIixzbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlLWFjdGl2ZSIsc2xpZGVWaXNpYmxlQ2xhc3M6InN3aXBlci1zbGlkZS12aXNpYmxlIixzbGlkZUR1cGxpY2F0ZUNsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlIixzbGlkZU5leHRDbGFzczoic3dpcGVyLXNsaWRlLW5leHQiLHNsaWRlRHVwbGljYXRlTmV4dENsYXNzOiJzd2lwZXItc2xpZGUtZHVwbGljYXRlLW5leHQiLHNsaWRlUHJldkNsYXNzOiJzd2lwZXItc2xpZGUtcHJldiIsc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtcHJldiIsd3JhcHBlckNsYXNzOiJzd2lwZXItd3JhcHBlciIscnVuQ2FsbGJhY2tzT25Jbml0OiEwLF9lbWl0Q2xhc3NlczohMX07ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPU9iamVjdC5rZXlzKGEpWzBdLGk9YVtuXTsib2JqZWN0Ij09dyhpKSYmbnVsbCE9PWk/KFsibmF2aWdhdGlvbiIsInBhZ2luYXRpb24iLCJzY3JvbGxiYXIiXS5pbmRleE9mKG4pPj0wJiYhMD09PWVbbl0mJihlW25dPXthdXRvOiEwfSksbiBpbiBlJiYiZW5hYmxlZCJpbiBpPyghMD09PWVbbl0mJihlW25dPXtlbmFibGVkOiEwfSksIm9iamVjdCIhPXcoZVtuXSl8fCJlbmFibGVkImluIGVbbl18fChlW25dLmVuYWJsZWQ9ITApLGVbbl18fChlW25dPXtlbmFibGVkOiExfSksQSh0LGEpKTpBKHQsYSkpOkEodCxhKX19dmFyIFU9e2V2ZW50c0VtaXR0ZXI6eix1cGRhdGU6e3VwZGF0ZVNpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGE9dGhpcyxuPWEuJGVsO2U9dm9pZCAwIT09YS5wYXJhbXMud2lkdGgmJm51bGwhPT1hLnBhcmFtcy53aWR0aD9hLnBhcmFtcy53aWR0aDpuWzBdLmNsaWVudFdpZHRoLHQ9dm9pZCAwIT09YS5wYXJhbXMuaGVpZ2h0JiZudWxsIT09YS5wYXJhbXMuaGVpZ2h0P2EucGFyYW1zLmhlaWdodDpuWzBdLmNsaWVudEhlaWdodCwwPT09ZSYmYS5pc0hvcml6b250YWwoKXx8MD09PXQmJmEuaXNWZXJ0aWNhbCgpfHwoZT1lLXBhcnNlSW50KG4uY3NzKCJwYWRkaW5nLWxlZnQiKXx8MCwxMCktcGFyc2VJbnQobi5jc3MoInBhZGRpbmctcmlnaHQiKXx8MCwxMCksdD10LXBhcnNlSW50KG4uY3NzKCJwYWRkaW5nLXRvcCIpfHwwLDEwKS1wYXJzZUludChuLmNzcygicGFkZGluZy1ib3R0b20iKXx8MCwxMCksTnVtYmVyLmlzTmFOKGUpJiYoZT0wKSxOdW1iZXIuaXNOYU4odCkmJih0PTApLE9iamVjdC5hc3NpZ24oYSx7d2lkdGg6ZSxoZWlnaHQ6dCxzaXplOmEuaXNIb3Jpem9udGFsKCk/ZTp0fSkpfSx1cGRhdGVTbGlkZXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Z1bmN0aW9uIHQodCl7cmV0dXJuIGUuaXNIb3Jpem9udGFsKCk/dDp7d2lkdGg6ImhlaWdodCIsIm1hcmdpbi10b3AiOiJtYXJnaW4tbGVmdCIsIm1hcmdpbi1ib3R0b20gIjoibWFyZ2luLXJpZ2h0IiwibWFyZ2luLWxlZnQiOiJtYXJnaW4tdG9wIiwibWFyZ2luLXJpZ2h0IjoibWFyZ2luLWJvdHRvbSIsInBhZGRpbmctbGVmdCI6InBhZGRpbmctdG9wIiwicGFkZGluZy1yaWdodCI6InBhZGRpbmctYm90dG9tIixtYXJnaW5SaWdodDoibWFyZ2luQm90dG9tIn1bdF19ZnVuY3Rpb24gYShlLGEpe3JldHVybiBwYXJzZUZsb2F0KGUuZ2V0UHJvcGVydHlWYWx1ZSh0KGEpKXx8MCl9dmFyIG49ZS5wYXJhbXMsaT1lLiR3cmFwcGVyRWwscj1lLnNpemUsbz1lLnJ0bFRyYW5zbGF0ZSxsPWUud3JvbmdSVEwsYz1lLnZpcnR1YWwmJm4udmlydHVhbC5lbmFibGVkLGQ9Yz9lLnZpcnR1YWwuc2xpZGVzLmxlbmd0aDplLnNsaWRlcy5sZW5ndGgsdT1pLmNoaWxkcmVuKCIuIi5jb25jYXQoZS5wYXJhbXMuc2xpZGVDbGFzcykpLHA9Yz9lLnZpcnR1YWwuc2xpZGVzLmxlbmd0aDp1Lmxlbmd0aCxmPVtdLHY9W10saD1bXSxtPW4uc2xpZGVzT2Zmc2V0QmVmb3JlOyJmdW5jdGlvbiI9PXR5cGVvZiBtJiYobT1uLnNsaWRlc09mZnNldEJlZm9yZS5jYWxsKGUpKTt2YXIgZz1uLnNsaWRlc09mZnNldEFmdGVyOyJmdW5jdGlvbiI9PXR5cGVvZiBnJiYoZz1uLnNsaWRlc09mZnNldEFmdGVyLmNhbGwoZSkpO3ZhciBiPWUuc25hcEdyaWQubGVuZ3RoLHk9ZS5zbGlkZXNHcmlkLmxlbmd0aCx3PW4uc3BhY2VCZXR3ZWVuLHg9LW0sRT0wLFM9MDtpZih2b2lkIDAhPT1yKXsic3RyaW5nIj09dHlwZW9mIHcmJncuaW5kZXhPZigiJSIpPj0wJiYodz1wYXJzZUZsb2F0KHcucmVwbGFjZSgiJSIsIiIpKS8xMDAqciksZS52aXJ0dWFsU2l6ZT0tdyxvP3UuY3NzKHttYXJnaW5MZWZ0OiIiLG1hcmdpbkJvdHRvbToiIixtYXJnaW5Ub3A6IiJ9KTp1LmNzcyh7bWFyZ2luUmlnaHQ6IiIsbWFyZ2luQm90dG9tOiIiLG1hcmdpblRvcDoiIn0pLG4uY2VudGVyZWRTbGlkZXMmJm4uY3NzTW9kZSYmKEwoZS53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLCIiKSxMKGUud3JhcHBlckVsLCItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIiLCIiKSk7dmFyIFQsQz1uLmdyaWQmJm4uZ3JpZC5yb3dzPjEmJmUuZ3JpZDtDJiZlLmdyaWQuaW5pdFNsaWRlcyhwKTtmb3IodmFyIGs9ImF1dG8iPT09bi5zbGlkZXNQZXJWaWV3JiZuLmJyZWFrcG9pbnRzJiZPYmplY3Qua2V5cyhuLmJyZWFrcG9pbnRzKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1uLmJyZWFrcG9pbnRzW2VdLnNsaWRlc1BlclZpZXd9KSkubGVuZ3RoPjAsTT0wO008cDtNKz0xKXtUPTA7dmFyIFA9dS5lcShNKTtpZihDJiZlLmdyaWQudXBkYXRlU2xpZGUoTSxQLHAsdCksIm5vbmUiIT09UC5jc3MoImRpc3BsYXkiKSl7aWYoImF1dG8iPT09bi5zbGlkZXNQZXJWaWV3KXtrJiYodVtNXS5zdHlsZVt0KCJ3aWR0aCIpXT0iIik7dmFyIEE9Z2V0Q29tcHV0ZWRTdHlsZShQWzBdKSxPPVBbMF0uc3R5bGUudHJhbnNmb3JtLGo9UFswXS5zdHlsZS53ZWJraXRUcmFuc2Zvcm07aWYoTyYmKFBbMF0uc3R5bGUudHJhbnNmb3JtPSJub25lIiksaiYmKFBbMF0uc3R5bGUud2Via2l0VHJhbnNmb3JtPSJub25lIiksbi5yb3VuZExlbmd0aHMpVD1lLmlzSG9yaXpvbnRhbCgpP1Aub3V0ZXJXaWR0aCghMCk6UC5vdXRlckhlaWdodCghMCk7ZWxzZXt2YXIgST1hKEEsIndpZHRoIiksJD1hKEEsInBhZGRpbmctbGVmdCIpLHo9YShBLCJwYWRkaW5nLXJpZ2h0IiksRD1hKEEsIm1hcmdpbi1sZWZ0IiksXz1hKEEsIm1hcmdpbi1yaWdodCIpLHE9QS5nZXRQcm9wZXJ0eVZhbHVlKCJib3gtc2l6aW5nIik7aWYocSYmImJvcmRlci1ib3giPT09cSlUPUkrRCtfO2Vsc2V7dmFyIE49UFswXSxCPU4uY2xpZW50V2lkdGg7VD1JKyQreitEK18rKE4ub2Zmc2V0V2lkdGgtQil9fU8mJihQWzBdLnN0eWxlLnRyYW5zZm9ybT1PKSxqJiYoUFswXS5zdHlsZS53ZWJraXRUcmFuc2Zvcm09aiksbi5yb3VuZExlbmd0aHMmJihUPU1hdGguZmxvb3IoVCkpfWVsc2UgVD0oci0obi5zbGlkZXNQZXJWaWV3LTEpKncpL24uc2xpZGVzUGVyVmlldyxuLnJvdW5kTGVuZ3RocyYmKFQ9TWF0aC5mbG9vcihUKSksdVtNXSYmKHVbTV0uc3R5bGVbdCgid2lkdGgiKV09IiIuY29uY2F0KFQsInB4IikpO3VbTV0mJih1W01dLnN3aXBlclNsaWRlU2l6ZT1UKSxoLnB1c2goVCksbi5jZW50ZXJlZFNsaWRlcz8oeD14K1QvMitFLzIrdywwPT09RSYmMCE9PU0mJih4PXgtci8yLXcpLDA9PT1NJiYoeD14LXIvMi13KSxNYXRoLmFicyh4KTwuMDAxJiYoeD0wKSxuLnJvdW5kTGVuZ3RocyYmKHg9TWF0aC5mbG9vcih4KSksUyVuLnNsaWRlc1Blckdyb3VwPT0wJiZmLnB1c2goeCksdi5wdXNoKHgpKToobi5yb3VuZExlbmd0aHMmJih4PU1hdGguZmxvb3IoeCkpLChTLU1hdGgubWluKGUucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCxTKSklZS5wYXJhbXMuc2xpZGVzUGVyR3JvdXA9PTAmJmYucHVzaCh4KSx2LnB1c2goeCkseD14K1QrdyksZS52aXJ0dWFsU2l6ZSs9VCt3LEU9VCxTKz0xfX1pZihlLnZpcnR1YWxTaXplPU1hdGgubWF4KGUudmlydHVhbFNpemUscikrZyxvJiZsJiYoInNsaWRlIj09PW4uZWZmZWN0fHwiY292ZXJmbG93Ij09PW4uZWZmZWN0KSYmaS5jc3Moe3dpZHRoOiIiLmNvbmNhdChlLnZpcnR1YWxTaXplK24uc3BhY2VCZXR3ZWVuLCJweCIpfSksbi5zZXRXcmFwcGVyU2l6ZSYmaS5jc3Mocyh7fSx0KCJ3aWR0aCIpLCIiLmNvbmNhdChlLnZpcnR1YWxTaXplK24uc3BhY2VCZXR3ZWVuLCJweCIpKSksQyYmZS5ncmlkLnVwZGF0ZVdyYXBwZXJTaXplKFQsZix0KSwhbi5jZW50ZXJlZFNsaWRlcyl7Zm9yKHZhciBSPVtdLEg9MDtIPGYubGVuZ3RoO0grPTEpe3ZhciBHPWZbSF07bi5yb3VuZExlbmd0aHMmJihHPU1hdGguZmxvb3IoRykpLGZbSF08PWUudmlydHVhbFNpemUtciYmUi5wdXNoKEcpfWY9UixNYXRoLmZsb29yKGUudmlydHVhbFNpemUtciktTWF0aC5mbG9vcihmW2YubGVuZ3RoLTFdKT4xJiZmLnB1c2goZS52aXJ0dWFsU2l6ZS1yKX1pZigwPT09Zi5sZW5ndGgmJihmPVswXSksMCE9PW4uc3BhY2VCZXR3ZWVuKXt2YXIgRj1lLmlzSG9yaXpvbnRhbCgpJiZvPyJtYXJnaW5MZWZ0Ijp0KCJtYXJnaW5SaWdodCIpO3UuZmlsdGVyKChmdW5jdGlvbihlLHQpe3JldHVybiFuLmNzc01vZGV8fHQhPT11Lmxlbmd0aC0xfSkpLmNzcyhzKHt9LEYsIiIuY29uY2F0KHcsInB4IikpKX1pZihuLmNlbnRlcmVkU2xpZGVzJiZuLmNlbnRlcmVkU2xpZGVzQm91bmRzKXt2YXIgWT0wO2guZm9yRWFjaCgoZnVuY3Rpb24oZSl7WSs9ZSsobi5zcGFjZUJldHdlZW4/bi5zcGFjZUJldHdlZW46MCl9KSk7dmFyIFY9KFktPW4uc3BhY2VCZXR3ZWVuKS1yO2Y9Zi5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LW06ZT5WP1YrZzplfSkpfWlmKG4uY2VudGVySW5zdWZmaWNpZW50U2xpZGVzKXt2YXIgWD0wO2lmKGguZm9yRWFjaCgoZnVuY3Rpb24oZSl7WCs9ZSsobi5zcGFjZUJldHdlZW4/bi5zcGFjZUJldHdlZW46MCl9KSksKFgtPW4uc3BhY2VCZXR3ZWVuKTxyKXt2YXIgVz0oci1YKS8yO2YuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtmW3RdPWUtV30pKSx2LmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dlt0XT1lK1d9KSl9fWlmKE9iamVjdC5hc3NpZ24oZSx7c2xpZGVzOnUsc25hcEdyaWQ6ZixzbGlkZXNHcmlkOnYsc2xpZGVzU2l6ZXNHcmlkOmh9KSxuLmNlbnRlcmVkU2xpZGVzJiZuLmNzc01vZGUmJiFuLmNlbnRlcmVkU2xpZGVzQm91bmRzKXtMKGUud3JhcHBlckVsLCItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlIiwtZlswXSsicHgiKSxMKGUud3JhcHBlckVsLCItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIiLGUuc2l6ZS8yLWhbaC5sZW5ndGgtMV0vMisicHgiKTt2YXIgVT0tZS5zbmFwR3JpZFswXSxLPS1lLnNsaWRlc0dyaWRbMF07ZS5zbmFwR3JpZD1lLnNuYXBHcmlkLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUrVX0pKSxlLnNsaWRlc0dyaWQ9ZS5zbGlkZXNHcmlkLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUrS30pKX1wIT09ZCYmZS5lbWl0KCJzbGlkZXNMZW5ndGhDaGFuZ2UiKSxmLmxlbmd0aCE9PWImJihlLnBhcmFtcy53YXRjaE92ZXJmbG93JiZlLmNoZWNrT3ZlcmZsb3coKSxlLmVtaXQoInNuYXBHcmlkTGVuZ3RoQ2hhbmdlIikpLHYubGVuZ3RoIT09eSYmZS5lbWl0KCJzbGlkZXNHcmlkTGVuZ3RoQ2hhbmdlIiksbi53YXRjaFNsaWRlc1Byb2dyZXNzJiZlLnVwZGF0ZVNsaWRlc09mZnNldCgpfX0sdXBkYXRlQXV0b0hlaWdodDpmdW5jdGlvbihlKXt2YXIgdCxhPXRoaXMsbj1bXSxpPWEudmlydHVhbCYmYS5wYXJhbXMudmlydHVhbC5lbmFibGVkLHI9MDsibnVtYmVyIj09dHlwZW9mIGU/YS5zZXRUcmFuc2l0aW9uKGUpOiEwPT09ZSYmYS5zZXRUcmFuc2l0aW9uKGEucGFyYW1zLnNwZWVkKTt2YXIgcz1mdW5jdGlvbihlKXtyZXR1cm4gaT9hLnNsaWRlcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LmdldEF0dHJpYnV0ZSgiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwxMCk9PT1lfSkpWzBdOmEuc2xpZGVzLmVxKGUpWzBdfTtpZigiYXV0byIhPT1hLnBhcmFtcy5zbGlkZXNQZXJWaWV3JiZhLnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpaWYoYS5wYXJhbXMuY2VudGVyZWRTbGlkZXMpYS52aXNpYmxlU2xpZGVzLmVhY2goKGZ1bmN0aW9uKGUpe24ucHVzaChlKX0pKTtlbHNlIGZvcih0PTA7dDxNYXRoLmNlaWwoYS5wYXJhbXMuc2xpZGVzUGVyVmlldyk7dCs9MSl7dmFyIG89YS5hY3RpdmVJbmRleCt0O2lmKG8+YS5zbGlkZXMubGVuZ3RoJiYhaSlicmVhaztuLnB1c2gocyhvKSl9ZWxzZSBuLnB1c2gocyhhLmFjdGl2ZUluZGV4KSk7Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrPTEpaWYodm9pZCAwIT09blt0XSl7dmFyIGw9blt0XS5vZmZzZXRIZWlnaHQ7cj1sPnI/bDpyfXImJmEuJHdyYXBwZXJFbC5jc3MoImhlaWdodCIsIiIuY29uY2F0KHIsInB4IikpfSx1cGRhdGVTbGlkZXNPZmZzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zbGlkZXMsdD0wO3Q8ZS5sZW5ndGg7dCs9MSllW3RdLnN3aXBlclNsaWRlT2Zmc2V0PXRoaXMuaXNIb3Jpem9udGFsKCk/ZVt0XS5vZmZzZXRMZWZ0OmVbdF0ub2Zmc2V0VG9wfSx1cGRhdGVTbGlkZXNQcm9ncmVzczpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzJiZ0aGlzLnRyYW5zbGF0ZXx8MCx0PXRoaXMsYT10LnBhcmFtcyxuPXQuc2xpZGVzLGk9dC5ydGxUcmFuc2xhdGUscj10LnNuYXBHcmlkO2lmKDAhPT1uLmxlbmd0aCl7dm9pZCAwPT09blswXS5zd2lwZXJTbGlkZU9mZnNldCYmdC51cGRhdGVTbGlkZXNPZmZzZXQoKTt2YXIgcz0tZTtpJiYocz1lKSxuLnJlbW92ZUNsYXNzKGEuc2xpZGVWaXNpYmxlQ2xhc3MpLHQudmlzaWJsZVNsaWRlc0luZGV4ZXM9W10sdC52aXNpYmxlU2xpZGVzPVtdO2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bys9MSl7dmFyIGw9bltvXSxjPWwuc3dpcGVyU2xpZGVPZmZzZXQ7YS5jc3NNb2RlJiZhLmNlbnRlcmVkU2xpZGVzJiYoYy09blswXS5zd2lwZXJTbGlkZU9mZnNldCk7dmFyIGQ9KHMrKGEuY2VudGVyZWRTbGlkZXM/dC5taW5UcmFuc2xhdGUoKTowKS1jKS8obC5zd2lwZXJTbGlkZVNpemUrYS5zcGFjZUJldHdlZW4pLHU9KHMtclswXSsoYS5jZW50ZXJlZFNsaWRlcz90Lm1pblRyYW5zbGF0ZSgpOjApLWMpLyhsLnN3aXBlclNsaWRlU2l6ZSthLnNwYWNlQmV0d2VlbikscD0tKHMtYyksZj1wK3Quc2xpZGVzU2l6ZXNHcmlkW29dOyhwPj0wJiZwPHQuc2l6ZS0xfHxmPjEmJmY8PXQuc2l6ZXx8cDw9MCYmZj49dC5zaXplKSYmKHQudmlzaWJsZVNsaWRlcy5wdXNoKGwpLHQudmlzaWJsZVNsaWRlc0luZGV4ZXMucHVzaChvKSxuLmVxKG8pLmFkZENsYXNzKGEuc2xpZGVWaXNpYmxlQ2xhc3MpKSxsLnByb2dyZXNzPWk/LWQ6ZCxsLm9yaWdpbmFsUHJvZ3Jlc3M9aT8tdTp1fXQudmlzaWJsZVNsaWRlcz1tKHQudmlzaWJsZVNsaWRlcyl9fSx1cGRhdGVQcm9ncmVzczpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHZvaWQgMD09PWUpe3ZhciBhPXQucnRsVHJhbnNsYXRlPy0xOjE7ZT10JiZ0LnRyYW5zbGF0ZSYmdC50cmFuc2xhdGUqYXx8MH12YXIgbj10LnBhcmFtcyxpPXQubWF4VHJhbnNsYXRlKCktdC5taW5UcmFuc2xhdGUoKSxyPXQucHJvZ3Jlc3Mscz10LmlzQmVnaW5uaW5nLG89dC5pc0VuZCxsPXMsYz1vOzA9PT1pPyhyPTAscz0hMCxvPSEwKToocz0ocj0oZS10Lm1pblRyYW5zbGF0ZSgpKS9pKTw9MCxvPXI+PTEpLE9iamVjdC5hc3NpZ24odCx7cHJvZ3Jlc3M6cixpc0JlZ2lubmluZzpzLGlzRW5kOm99KSwobi53YXRjaFNsaWRlc1Byb2dyZXNzfHxuLmNlbnRlcmVkU2xpZGVzJiZuLmF1dG9IZWlnaHQpJiZ0LnVwZGF0ZVNsaWRlc1Byb2dyZXNzKGUpLHMmJiFsJiZ0LmVtaXQoInJlYWNoQmVnaW5uaW5nIHRvRWRnZSIpLG8mJiFjJiZ0LmVtaXQoInJlYWNoRW5kIHRvRWRnZSIpLChsJiYhc3x8YyYmIW8pJiZ0LmVtaXQoImZyb21FZGdlIiksdC5lbWl0KCJwcm9ncmVzcyIscil9LHVwZGF0ZVNsaWRlc0NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMsYT10LnNsaWRlcyxuPXQucGFyYW1zLGk9dC4kd3JhcHBlckVsLHI9dC5hY3RpdmVJbmRleCxzPXQucmVhbEluZGV4LG89dC52aXJ0dWFsJiZuLnZpcnR1YWwuZW5hYmxlZDthLnJlbW92ZUNsYXNzKCIiLmNvbmNhdChuLnNsaWRlQWN0aXZlQ2xhc3MsIiAiKS5jb25jYXQobi5zbGlkZU5leHRDbGFzcywiICIpLmNvbmNhdChuLnNsaWRlUHJldkNsYXNzLCIgIikuY29uY2F0KG4uc2xpZGVEdXBsaWNhdGVBY3RpdmVDbGFzcywiICIpLmNvbmNhdChuLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzLCIgIikuY29uY2F0KG4uc2xpZGVEdXBsaWNhdGVQcmV2Q2xhc3MpKSwoZT1vP3QuJHdyYXBwZXJFbC5maW5kKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzLCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicpLmNvbmNhdChyLCciXScpKTphLmVxKHIpKS5hZGRDbGFzcyhuLnNsaWRlQWN0aXZlQ2xhc3MpLG4ubG9vcCYmKGUuaGFzQ2xhc3Mobi5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9pLmNoaWxkcmVuKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzLCI6bm90KC4iKS5jb25jYXQobi5zbGlkZUR1cGxpY2F0ZUNsYXNzLCcpW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInKS5jb25jYXQocywnIl0nKSkuYWRkQ2xhc3Mobi5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKTppLmNoaWxkcmVuKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzLCIuIikuY29uY2F0KG4uc2xpZGVEdXBsaWNhdGVDbGFzcywnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInKS5jb25jYXQocywnIl0nKSkuYWRkQ2xhc3Mobi5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKSk7dmFyIGw9ZS5uZXh0QWxsKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzKSkuZXEoMCkuYWRkQ2xhc3Mobi5zbGlkZU5leHRDbGFzcyk7bi5sb29wJiYwPT09bC5sZW5ndGgmJihsPWEuZXEoMCkpLmFkZENsYXNzKG4uc2xpZGVOZXh0Q2xhc3MpO3ZhciBjPWUucHJldkFsbCgiLiIuY29uY2F0KG4uc2xpZGVDbGFzcykpLmVxKDApLmFkZENsYXNzKG4uc2xpZGVQcmV2Q2xhc3MpO24ubG9vcCYmMD09PWMubGVuZ3RoJiYoYz1hLmVxKC0xKSkuYWRkQ2xhc3Mobi5zbGlkZVByZXZDbGFzcyksbi5sb29wJiYobC5oYXNDbGFzcyhuLnNsaWRlRHVwbGljYXRlQ2xhc3MpP2kuY2hpbGRyZW4oIi4iLmNvbmNhdChuLnNsaWRlQ2xhc3MsIjpub3QoLiIpLmNvbmNhdChuLnNsaWRlRHVwbGljYXRlQ2xhc3MsJylbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicpLmNvbmNhdChsLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksJyJdJykpLmFkZENsYXNzKG4uc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3MpOmkuY2hpbGRyZW4oIi4iLmNvbmNhdChuLnNsaWRlQ2xhc3MsIi4iKS5jb25jYXQobi5zbGlkZUR1cGxpY2F0ZUNsYXNzLCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicpLmNvbmNhdChsLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksJyJdJykpLmFkZENsYXNzKG4uc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3MpLGMuaGFzQ2xhc3Mobi5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9pLmNoaWxkcmVuKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzLCI6bm90KC4iKS5jb25jYXQobi5zbGlkZUR1cGxpY2F0ZUNsYXNzLCcpW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInKS5jb25jYXQoYy5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLCciXScpKS5hZGRDbGFzcyhuLnNsaWRlRHVwbGljYXRlUHJldkNsYXNzKTppLmNoaWxkcmVuKCIuIi5jb25jYXQobi5zbGlkZUNsYXNzLCIuIikuY29uY2F0KG4uc2xpZGVEdXBsaWNhdGVDbGFzcywnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInKS5jb25jYXQoYy5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLCciXScpKS5hZGRDbGFzcyhuLnNsaWRlRHVwbGljYXRlUHJldkNsYXNzKSksdC5lbWl0U2xpZGVzQ2xhc3NlcygpfSx1cGRhdGVBY3RpdmVJbmRleDpmdW5jdGlvbihlKXt2YXIgdCxhPXRoaXMsbj1hLnJ0bFRyYW5zbGF0ZT9hLnRyYW5zbGF0ZTotYS50cmFuc2xhdGUsaT1hLnNsaWRlc0dyaWQscj1hLnNuYXBHcmlkLHM9YS5wYXJhbXMsbz1hLmFjdGl2ZUluZGV4LGw9YS5yZWFsSW5kZXgsYz1hLnNuYXBJbmRleCxkPWU7aWYodm9pZCAwPT09ZCl7Zm9yKHZhciB1PTA7dTxpLmxlbmd0aDt1Kz0xKXZvaWQgMCE9PWlbdSsxXT9uPj1pW3VdJiZuPGlbdSsxXS0oaVt1KzFdLWlbdV0pLzI/ZD11Om4+PWlbdV0mJm48aVt1KzFdJiYoZD11KzEpOm4+PWlbdV0mJihkPXUpO3Mubm9ybWFsaXplU2xpZGVJbmRleCYmKGQ8MHx8dm9pZCAwPT09ZCkmJihkPTApfWlmKHIuaW5kZXhPZihuKT49MCl0PXIuaW5kZXhPZihuKTtlbHNle3ZhciBwPU1hdGgubWluKHMuc2xpZGVzUGVyR3JvdXBTa2lwLGQpO3Q9cCtNYXRoLmZsb29yKChkLXApL3Muc2xpZGVzUGVyR3JvdXApfWlmKHQ+PXIubGVuZ3RoJiYodD1yLmxlbmd0aC0xKSxkIT09byl7dmFyIGY9cGFyc2VJbnQoYS5zbGlkZXMuZXEoZCkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKXx8ZCwxMCk7T2JqZWN0LmFzc2lnbihhLHtzbmFwSW5kZXg6dCxyZWFsSW5kZXg6ZixwcmV2aW91c0luZGV4Om8sYWN0aXZlSW5kZXg6ZH0pLGEuZW1pdCgiYWN0aXZlSW5kZXhDaGFuZ2UiKSxhLmVtaXQoInNuYXBJbmRleENoYW5nZSIpLGwhPT1mJiZhLmVtaXQoInJlYWxJbmRleENoYW5nZSIpLChhLmluaXRpYWxpemVkfHxhLnBhcmFtcy5ydW5DYWxsYmFja3NPbkluaXQpJiZhLmVtaXQoInNsaWRlQ2hhbmdlIil9ZWxzZSB0IT09YyYmKGEuc25hcEluZGV4PXQsYS5lbWl0KCJzbmFwSW5kZXhDaGFuZ2UiKSl9LHVwZGF0ZUNsaWNrZWRTbGlkZTpmdW5jdGlvbihlKXt2YXIgdCxhPXRoaXMsbj1hLnBhcmFtcyxpPW0oZSkuY2xvc2VzdCgiLiIuY29uY2F0KG4uc2xpZGVDbGFzcykpWzBdLHI9ITE7aWYoaSlmb3IodmFyIHM9MDtzPGEuc2xpZGVzLmxlbmd0aDtzKz0xKWlmKGEuc2xpZGVzW3NdPT09aSl7cj0hMCx0PXM7YnJlYWt9aWYoIWl8fCFyKXJldHVybiBhLmNsaWNrZWRTbGlkZT12b2lkIDAsdm9pZChhLmNsaWNrZWRJbmRleD12b2lkIDApO2EuY2xpY2tlZFNsaWRlPWksYS52aXJ0dWFsJiZhLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ/YS5jbGlja2VkSW5kZXg9cGFyc2VJbnQobShpKS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLDEwKTphLmNsaWNrZWRJbmRleD10LG4uc2xpZGVUb0NsaWNrZWRTbGlkZSYmdm9pZCAwIT09YS5jbGlja2VkSW5kZXgmJmEuY2xpY2tlZEluZGV4IT09YS5hY3RpdmVJbmRleCYmYS5zbGlkZVRvQ2xpY2tlZFNsaWRlKCl9fSx0cmFuc2xhdGU6e2dldFRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmlzSG9yaXpvbnRhbCgpPyJ4IjoieSIsdD10aGlzLnBhcmFtcyxhPXRoaXMucnRsVHJhbnNsYXRlLG49dGhpcy50cmFuc2xhdGUsaT10aGlzLiR3cmFwcGVyRWw7aWYodC52aXJ0dWFsVHJhbnNsYXRlKXJldHVybiBhPy1uOm47aWYodC5jc3NNb2RlKXJldHVybiBuO3ZhciByPU0oaVswXSxlKTtyZXR1cm4gYSYmKHI9LXIpLHJ8fDB9LHNldFRyYW5zbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXRoaXMsbj1hLnJ0bFRyYW5zbGF0ZSxpPWEucGFyYW1zLHI9YS4kd3JhcHBlckVsLHM9YS53cmFwcGVyRWwsbz1hLnByb2dyZXNzLGw9MCxjPTA7YS5pc0hvcml6b250YWwoKT9sPW4/LWU6ZTpjPWUsaS5yb3VuZExlbmd0aHMmJihsPU1hdGguZmxvb3IobCksYz1NYXRoLmZsb29yKGMpKSxpLmNzc01vZGU/c1thLmlzSG9yaXpvbnRhbCgpPyJzY3JvbGxMZWZ0Ijoic2Nyb2xsVG9wIl09YS5pc0hvcml6b250YWwoKT8tbDotYzppLnZpcnR1YWxUcmFuc2xhdGV8fHIudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgiLmNvbmNhdChsLCJweCwgIikuY29uY2F0KGMsInB4LCAwcHgpIikpLGEucHJldmlvdXNUcmFuc2xhdGU9YS50cmFuc2xhdGUsYS50cmFuc2xhdGU9YS5pc0hvcml6b250YWwoKT9sOmM7dmFyIGQ9YS5tYXhUcmFuc2xhdGUoKS1hLm1pblRyYW5zbGF0ZSgpOygwPT09ZD8wOihlLWEubWluVHJhbnNsYXRlKCkpL2QpIT09byYmYS51cGRhdGVQcm9ncmVzcyhlKSxhLmVtaXQoInNldFRyYW5zbGF0ZSIsYS50cmFuc2xhdGUsdCl9LG1pblRyYW5zbGF0ZTpmdW5jdGlvbigpe3JldHVybi10aGlzLnNuYXBHcmlkWzBdfSxtYXhUcmFuc2xhdGU6ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5zbmFwR3JpZFt0aGlzLnNuYXBHcmlkLmxlbmd0aC0xXX0sdHJhbnNsYXRlVG86ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnBhcmFtcy5zcGVlZCxhPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sbj0hKGFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdKXx8YXJndW1lbnRzWzNdLGk9YXJndW1lbnRzLmxlbmd0aD40P2FyZ3VtZW50c1s0XTp2b2lkIDAscj10aGlzLG89ci5wYXJhbXMsbD1yLndyYXBwZXJFbDtpZihyLmFuaW1hdGluZyYmby5wcmV2ZW50SW50ZXJhY3Rpb25PblRyYW5zaXRpb24pcmV0dXJuITE7dmFyIGMsZD1yLm1pblRyYW5zbGF0ZSgpLHU9ci5tYXhUcmFuc2xhdGUoKTtpZihjPW4mJmU+ZD9kOm4mJmU8dT91OmUsci51cGRhdGVQcm9ncmVzcyhjKSxvLmNzc01vZGUpe3ZhciBwPXIuaXNIb3Jpem9udGFsKCk7aWYoMD09PXQpbFtwPyJzY3JvbGxMZWZ0Ijoic2Nyb2xsVG9wIl09LWM7ZWxzZXt2YXIgZjtpZighci5zdXBwb3J0LnNtb290aFNjcm9sbClyZXR1cm4gTyh7c3dpcGVyOnIsdGFyZ2V0UG9zaXRpb246LWMsc2lkZTpwPyJsZWZ0IjoidG9wIn0pLCEwO2wuc2Nyb2xsVG8oKHMoZj17fSxwPyJsZWZ0IjoidG9wIiwtYykscyhmLCJiZWhhdmlvciIsInNtb290aCIpLGYpKX1yZXR1cm4hMH1yZXR1cm4gMD09PXQ/KHIuc2V0VHJhbnNpdGlvbigwKSxyLnNldFRyYW5zbGF0ZShjKSxhJiYoci5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLHQsaSksci5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpKTooci5zZXRUcmFuc2l0aW9uKHQpLHIuc2V0VHJhbnNsYXRlKGMpLGEmJihyLmVtaXQoImJlZm9yZVRyYW5zaXRpb25TdGFydCIsdCxpKSxyLmVtaXQoInRyYW5zaXRpb25TdGFydCIpKSxyLmFuaW1hdGluZ3x8KHIuYW5pbWF0aW5nPSEwLHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kfHwoci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oZSl7ciYmIXIuZGVzdHJveWVkJiZlLnRhcmdldD09PXRoaXMmJihyLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpLHIuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIixyLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9bnVsbCxkZWxldGUgci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQsYSYmci5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpfSksci4kd3JhcHBlckVsWzBdLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHIub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxyLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsci5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpKSksITB9fSx0cmFuc2l0aW9uOntzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpczthLnBhcmFtcy5jc3NNb2RlfHxhLiR3cmFwcGVyRWwudHJhbnNpdGlvbihlKSxhLmVtaXQoInNldFRyYW5zaXRpb24iLGUsdCl9LHRyYW5zaXRpb25TdGFydDpmdW5jdGlvbigpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0sdD1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxhPXRoaXMsbj1hLnBhcmFtcztuLmNzc01vZGV8fChuLmF1dG9IZWlnaHQmJmEudXBkYXRlQXV0b0hlaWdodCgpLEQoe3N3aXBlcjphLHJ1bkNhbGxiYWNrczplLGRpcmVjdGlvbjp0LHN0ZXA6IlN0YXJ0In0pKX0sdHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0sdD1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxhPXRoaXMsbj1hLnBhcmFtczthLmFuaW1hdGluZz0hMSxuLmNzc01vZGV8fChhLnNldFRyYW5zaXRpb24oMCksRCh7c3dpcGVyOmEscnVuQ2FsbGJhY2tzOmUsZGlyZWN0aW9uOnQsc3RlcDoiRW5kIn0pKX19LHNsaWRlOntzbGlkZVRvOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5wYXJhbXMuc3BlZWQsYT0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLG49YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMDtpZigibnVtYmVyIiE9dHlwZW9mIGUmJiJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSAnaW5kZXgnIGFyZ3VtZW50IGNhbm5vdCBoYXZlIHR5cGUgb3RoZXIgdGhhbiAnbnVtYmVyJyBvciAnc3RyaW5nJy4gWyIuY29uY2F0KHcoZSksIl0gZ2l2ZW4uIikpO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHI9cGFyc2VJbnQoZSwxMCk7aWYoIWlzRmluaXRlKHIpKXRocm93IG5ldyBFcnJvcigiVGhlIHBhc3NlZC1pbiAnaW5kZXgnIChzdHJpbmcpIGNvdWxkbid0IGJlIGNvbnZlcnRlZCB0byAnbnVtYmVyJy4gWyIuY29uY2F0KGUsIl0gZ2l2ZW4uIikpO2U9cn12YXIgbz10aGlzLGw9ZTtsPDAmJihsPTApO3ZhciBjPW8ucGFyYW1zLGQ9by5zbmFwR3JpZCx1PW8uc2xpZGVzR3JpZCxwPW8ucHJldmlvdXNJbmRleCxmPW8uYWN0aXZlSW5kZXgsdj1vLnJ0bFRyYW5zbGF0ZSxoPW8ud3JhcHBlckVsLG09by5lbmFibGVkO2lmKG8uYW5pbWF0aW5nJiZjLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbnx8IW0mJiFuJiYhaSlyZXR1cm4hMTt2YXIgZz1NYXRoLm1pbihvLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsbCksYj1nK01hdGguZmxvb3IoKGwtZykvby5wYXJhbXMuc2xpZGVzUGVyR3JvdXApO2I+PWQubGVuZ3RoJiYoYj1kLmxlbmd0aC0xKSwoZnx8Yy5pbml0aWFsU2xpZGV8fDApPT09KHB8fDApJiZhJiZvLmVtaXQoImJlZm9yZVNsaWRlQ2hhbmdlU3RhcnQiKTt2YXIgeSx4PS1kW2JdO2lmKG8udXBkYXRlUHJvZ3Jlc3MoeCksYy5ub3JtYWxpemVTbGlkZUluZGV4KWZvcih2YXIgRT0wO0U8dS5sZW5ndGg7RSs9MSl7dmFyIFM9LU1hdGguZmxvb3IoMTAwKngpLFQ9TWF0aC5mbG9vcigxMDAqdVtFXSksQz1NYXRoLmZsb29yKDEwMCp1W0UrMV0pO3ZvaWQgMCE9PXVbRSsxXT9TPj1UJiZTPEMtKEMtVCkvMj9sPUU6Uz49VCYmUzxDJiYobD1FKzEpOlM+PVQmJihsPUUpfWlmKG8uaW5pdGlhbGl6ZWQmJmwhPT1mKXtpZighby5hbGxvd1NsaWRlTmV4dCYmeDxvLnRyYW5zbGF0ZSYmeDxvLm1pblRyYW5zbGF0ZSgpKXJldHVybiExO2lmKCFvLmFsbG93U2xpZGVQcmV2JiZ4Pm8udHJhbnNsYXRlJiZ4Pm8ubWF4VHJhbnNsYXRlKCkmJihmfHwwKSE9PWwpcmV0dXJuITF9aWYoeT1sPmY/Im5leHQiOmw8Zj8icHJldiI6InJlc2V0Iix2JiYteD09PW8udHJhbnNsYXRlfHwhdiYmeD09PW8udHJhbnNsYXRlKXJldHVybiBvLnVwZGF0ZUFjdGl2ZUluZGV4KGwpLGMuYXV0b0hlaWdodCYmby51cGRhdGVBdXRvSGVpZ2h0KCksby51cGRhdGVTbGlkZXNDbGFzc2VzKCksInNsaWRlIiE9PWMuZWZmZWN0JiZvLnNldFRyYW5zbGF0ZSh4KSwicmVzZXQiIT09eSYmKG8udHJhbnNpdGlvblN0YXJ0KGEseSksby50cmFuc2l0aW9uRW5kKGEseSkpLCExO2lmKGMuY3NzTW9kZSl7dmFyIGs9by5pc0hvcml6b250YWwoKSxNPXY/eDoteDtpZigwPT09dCl7dmFyIFA9by52aXJ0dWFsJiZvLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7UCYmKG8ud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixvLl9pbW1lZGlhdGVWaXJ0dWFsPSEwKSxoW2s/InNjcm9sbExlZnQiOiJzY3JvbGxUb3AiXT1NLFAmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtvLndyYXBwZXJFbC5zdHlsZS5zY3JvbGxTbmFwVHlwZT0iIixvLl9zd2lwZXJJbW1lZGlhdGVWaXJ0dWFsPSExfSkpfWVsc2V7dmFyIEE7aWYoIW8uc3VwcG9ydC5zbW9vdGhTY3JvbGwpcmV0dXJuIE8oe3N3aXBlcjpvLHRhcmdldFBvc2l0aW9uOk0sc2lkZTprPyJsZWZ0IjoidG9wIn0pLCEwO2guc2Nyb2xsVG8oKHMoQT17fSxrPyJsZWZ0IjoidG9wIixNKSxzKEEsImJlaGF2aW9yIiwic21vb3RoIiksQSkpfXJldHVybiEwfXJldHVybiAwPT09dD8oby5zZXRUcmFuc2l0aW9uKDApLG8uc2V0VHJhbnNsYXRlKHgpLG8udXBkYXRlQWN0aXZlSW5kZXgobCksby51cGRhdGVTbGlkZXNDbGFzc2VzKCksby5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLHQsbiksby50cmFuc2l0aW9uU3RhcnQoYSx5KSxvLnRyYW5zaXRpb25FbmQoYSx5KSk6KG8uc2V0VHJhbnNpdGlvbih0KSxvLnNldFRyYW5zbGF0ZSh4KSxvLnVwZGF0ZUFjdGl2ZUluZGV4KGwpLG8udXBkYXRlU2xpZGVzQ2xhc3NlcygpLG8uZW1pdCgiYmVmb3JlVHJhbnNpdGlvblN0YXJ0Iix0LG4pLG8udHJhbnNpdGlvblN0YXJ0KGEseSksby5hbmltYXRpbmd8fChvLmFuaW1hdGluZz0hMCxvLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kfHwoby5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZD1mdW5jdGlvbihlKXtvJiYhby5kZXN0cm95ZWQmJmUudGFyZ2V0PT09dGhpcyYmKG8uJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixvLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxvLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsby5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksby5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZD1udWxsLGRlbGV0ZSBvLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kLG8udHJhbnNpdGlvbkVuZChhLHkpKX0pLG8uJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixvLm9uU2xpZGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxvLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsby5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCkpKSwhMH0sc2xpZGVUb0xvb3A6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnBhcmFtcy5zcGVlZCxhPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sbj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxpPXRoaXMscj1lO3JldHVybiBpLnBhcmFtcy5sb29wJiYocis9aS5sb29wZWRTbGlkZXMpLGkuc2xpZGVUbyhyLHQsYSxuKX0sc2xpZGVOZXh0OmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMucGFyYW1zLnNwZWVkLHQ9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxhPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLG49dGhpcyxpPW4uYW5pbWF0aW5nLHI9bi5lbmFibGVkLHM9bi5wYXJhbXM7aWYoIXIpcmV0dXJuIG47dmFyIG89cy5zbGlkZXNQZXJHcm91cDsiYXV0byI9PT1zLnNsaWRlc1BlclZpZXcmJjE9PT1zLnNsaWRlc1Blckdyb3VwJiZzLnNsaWRlc1Blckdyb3VwQXV0byYmKG89TWF0aC5tYXgobi5zbGlkZXNQZXJWaWV3RHluYW1pYygiY3VycmVudCIsITApLDEpKTt2YXIgbD1uLmFjdGl2ZUluZGV4PHMuc2xpZGVzUGVyR3JvdXBTa2lwPzE6bztpZihzLmxvb3Ape2lmKGkmJnMubG9vcFByZXZlbnRzU2xpZGUpcmV0dXJuITE7bi5sb29wRml4KCksbi5fY2xpZW50TGVmdD1uLiR3cmFwcGVyRWxbMF0uY2xpZW50TGVmdH1yZXR1cm4gbi5zbGlkZVRvKG4uYWN0aXZlSW5kZXgrbCxlLHQsYSl9LHNsaWRlUHJldjpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnBhcmFtcy5zcGVlZCx0PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxuPXRoaXMsaT1uLnBhcmFtcyxyPW4uYW5pbWF0aW5nLHM9bi5zbmFwR3JpZCxvPW4uc2xpZGVzR3JpZCxsPW4ucnRsVHJhbnNsYXRlO2lmKCFuLmVuYWJsZWQpcmV0dXJuIG47aWYoaS5sb29wKXtpZihyJiZpLmxvb3BQcmV2ZW50c1NsaWRlKXJldHVybiExO24ubG9vcEZpeCgpLG4uX2NsaWVudExlZnQ9bi4kd3JhcHBlckVsWzBdLmNsaWVudExlZnR9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZTwwPy1NYXRoLmZsb29yKE1hdGguYWJzKGUpKTpNYXRoLmZsb29yKGUpfXZhciBkLHU9YyhsP24udHJhbnNsYXRlOi1uLnRyYW5zbGF0ZSkscD1zLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGMoZSl9KSksZj1zW3AuaW5kZXhPZih1KS0xXTt2b2lkIDA9PT1mJiZpLmNzc01vZGUmJihzLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dT49ZSYmKGQ9dCl9KSksdm9pZCAwIT09ZCYmKGY9c1tkPjA/ZC0xOmRdKSk7dmFyIHY9MDtyZXR1cm4gdm9pZCAwIT09ZiYmKCh2PW8uaW5kZXhPZihmKSk8MCYmKHY9bi5hY3RpdmVJbmRleC0xKSwiYXV0byI9PT1pLnNsaWRlc1BlclZpZXcmJjE9PT1pLnNsaWRlc1Blckdyb3VwJiZpLnNsaWRlc1Blckdyb3VwQXV0byYmKHY9di1uLnNsaWRlc1BlclZpZXdEeW5hbWljKCJwcmV2aW91cyIsITApKzEsdj1NYXRoLm1heCh2LDApKSksbi5zbGlkZVRvKHYsZSx0LGEpfSxzbGlkZVJlc2V0OmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMucGFyYW1zLnNwZWVkLHQ9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxhPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiB0aGlzLnNsaWRlVG8odGhpcy5hY3RpdmVJbmRleCxlLHQsYSl9LHNsaWRlVG9DbG9zZXN0OmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMucGFyYW1zLnNwZWVkLHQ9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxhPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOi41LGk9dGhpcyxyPWkuYWN0aXZlSW5kZXgscz1NYXRoLm1pbihpLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsciksbz1zK01hdGguZmxvb3IoKHItcykvaS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApLGw9aS5ydGxUcmFuc2xhdGU/aS50cmFuc2xhdGU6LWkudHJhbnNsYXRlO2lmKGw+PWkuc25hcEdyaWRbb10pe3ZhciBjPWkuc25hcEdyaWRbb107bC1jPihpLnNuYXBHcmlkW28rMV0tYykqbiYmKHIrPWkucGFyYW1zLnNsaWRlc1Blckdyb3VwKX1lbHNle3ZhciBkPWkuc25hcEdyaWRbby0xXTtsLWQ8PShpLnNuYXBHcmlkW29dLWQpKm4mJihyLT1pLnBhcmFtcy5zbGlkZXNQZXJHcm91cCl9cmV0dXJuIHI9TWF0aC5tYXgociwwKSxyPU1hdGgubWluKHIsaS5zbGlkZXNHcmlkLmxlbmd0aC0xKSxpLnNsaWRlVG8ocixlLHQsYSl9LHNsaWRlVG9DbGlja2VkU2xpZGU6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMsYT10LnBhcmFtcyxuPXQuJHdyYXBwZXJFbCxpPSJhdXRvIj09PWEuc2xpZGVzUGVyVmlldz90LnNsaWRlc1BlclZpZXdEeW5hbWljKCk6YS5zbGlkZXNQZXJWaWV3LHI9dC5jbGlja2VkSW5kZXg7aWYoYS5sb29wKXtpZih0LmFuaW1hdGluZylyZXR1cm47ZT1wYXJzZUludChtKHQuY2xpY2tlZFNsaWRlKS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLDEwKSxhLmNlbnRlcmVkU2xpZGVzP3I8dC5sb29wZWRTbGlkZXMtaS8yfHxyPnQuc2xpZGVzLmxlbmd0aC10Lmxvb3BlZFNsaWRlcytpLzI/KHQubG9vcEZpeCgpLHI9bi5jaGlsZHJlbigiLiIuY29uY2F0KGEuc2xpZGVDbGFzcywnW2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSInKS5jb25jYXQoZSwnIl06bm90KC4nKS5jb25jYXQoYS5zbGlkZUR1cGxpY2F0ZUNsYXNzLCIpIikpLmVxKDApLmluZGV4KCksQygoZnVuY3Rpb24oKXt0LnNsaWRlVG8ocil9KSkpOnQuc2xpZGVUbyhyKTpyPnQuc2xpZGVzLmxlbmd0aC1pPyh0Lmxvb3BGaXgoKSxyPW4uY2hpbGRyZW4oIi4iLmNvbmNhdChhLnNsaWRlQ2xhc3MsJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJykuY29uY2F0KGUsJyJdOm5vdCguJykuY29uY2F0KGEuc2xpZGVEdXBsaWNhdGVDbGFzcywiKSIpKS5lcSgwKS5pbmRleCgpLEMoKGZ1bmN0aW9uKCl7dC5zbGlkZVRvKHIpfSkpKTp0LnNsaWRlVG8ocil9ZWxzZSB0LnNsaWRlVG8ocil9fSxsb29wOntsb29wQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PW4oKSxhPWUucGFyYW1zLGk9ZS4kd3JhcHBlckVsLHI9aS5jaGlsZHJlbigpLmxlbmd0aD4wP20oaS5jaGlsZHJlbigpWzBdLnBhcmVudE5vZGUpOmk7ci5jaGlsZHJlbigiLiIuY29uY2F0KGEuc2xpZGVDbGFzcywiLiIpLmNvbmNhdChhLnNsaWRlRHVwbGljYXRlQ2xhc3MpKS5yZW1vdmUoKTt2YXIgcz1yLmNoaWxkcmVuKCIuIi5jb25jYXQoYS5zbGlkZUNsYXNzKSk7aWYoYS5sb29wRmlsbEdyb3VwV2l0aEJsYW5rKXt2YXIgbz1hLnNsaWRlc1Blckdyb3VwLXMubGVuZ3RoJWEuc2xpZGVzUGVyR3JvdXA7aWYobyE9PWEuc2xpZGVzUGVyR3JvdXApe2Zvcih2YXIgbD0wO2w8bztsKz0xKXt2YXIgYz1tKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCIiLmNvbmNhdChhLnNsaWRlQ2xhc3MsIiAiKS5jb25jYXQoYS5zbGlkZUJsYW5rQ2xhc3MpKTtyLmFwcGVuZChjKX1zPXIuY2hpbGRyZW4oIi4iLmNvbmNhdChhLnNsaWRlQ2xhc3MpKX19ImF1dG8iIT09YS5zbGlkZXNQZXJWaWV3fHxhLmxvb3BlZFNsaWRlc3x8KGEubG9vcGVkU2xpZGVzPXMubGVuZ3RoKSxlLmxvb3BlZFNsaWRlcz1NYXRoLmNlaWwocGFyc2VGbG9hdChhLmxvb3BlZFNsaWRlc3x8YS5zbGlkZXNQZXJWaWV3LDEwKSksZS5sb29wZWRTbGlkZXMrPWEubG9vcEFkZGl0aW9uYWxTbGlkZXMsZS5sb29wZWRTbGlkZXM+cy5sZW5ndGgmJihlLmxvb3BlZFNsaWRlcz1zLmxlbmd0aCk7dmFyIGQ9W10sdT1bXTtzLmVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIG49bSh0KTthPGUubG9vcGVkU2xpZGVzJiZ1LnB1c2godCksYTxzLmxlbmd0aCYmYT49cy5sZW5ndGgtZS5sb29wZWRTbGlkZXMmJmQucHVzaCh0KSxuLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IixhKX0pKTtmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArPTEpci5hcHBlbmQobSh1W3BdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKGEuc2xpZGVEdXBsaWNhdGVDbGFzcykpO2Zvcih2YXIgZj1kLmxlbmd0aC0xO2Y+PTA7Zi09MSlyLnByZXBlbmQobShkW2ZdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKGEuc2xpZGVEdXBsaWNhdGVDbGFzcykpfSxsb29wRml4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLmVtaXQoImJlZm9yZUxvb3BGaXgiKTt2YXIgdCxhPWUuYWN0aXZlSW5kZXgsbj1lLnNsaWRlcyxpPWUubG9vcGVkU2xpZGVzLHI9ZS5hbGxvd1NsaWRlUHJldixzPWUuYWxsb3dTbGlkZU5leHQsbz1lLnNuYXBHcmlkLGw9ZS5ydGxUcmFuc2xhdGU7ZS5hbGxvd1NsaWRlUHJldj0hMCxlLmFsbG93U2xpZGVOZXh0PSEwO3ZhciBjPS1vW2FdLWUuZ2V0VHJhbnNsYXRlKCk7YTxpPyh0PW4ubGVuZ3RoLTMqaSthLHQrPWksZS5zbGlkZVRvKHQsMCwhMSwhMCkmJjAhPT1jJiZlLnNldFRyYW5zbGF0ZSgobD8tZS50cmFuc2xhdGU6ZS50cmFuc2xhdGUpLWMpKTphPj1uLmxlbmd0aC1pJiYodD0tbi5sZW5ndGgrYStpLHQrPWksZS5zbGlkZVRvKHQsMCwhMSwhMCkmJjAhPT1jJiZlLnNldFRyYW5zbGF0ZSgobD8tZS50cmFuc2xhdGU6ZS50cmFuc2xhdGUpLWMpKSxlLmFsbG93U2xpZGVQcmV2PXIsZS5hbGxvd1NsaWRlTmV4dD1zLGUuZW1pdCgibG9vcEZpeCIpfSxsb29wRGVzdHJveTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJHdyYXBwZXJFbCx0PXRoaXMucGFyYW1zLGE9dGhpcy5zbGlkZXM7ZS5jaGlsZHJlbigiLiIuY29uY2F0KHQuc2xpZGVDbGFzcywiLiIpLmNvbmNhdCh0LnNsaWRlRHVwbGljYXRlQ2xhc3MsIiwuIikuY29uY2F0KHQuc2xpZGVDbGFzcywiLiIpLmNvbmNhdCh0LnNsaWRlQmxhbmtDbGFzcykpLnJlbW92ZSgpLGEucmVtb3ZlQXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKX19LGdyYWJDdXJzb3I6e3NldEdyYWJDdXJzb3I6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZighKHQuc3VwcG9ydC50b3VjaHx8IXQucGFyYW1zLnNpbXVsYXRlVG91Y2h8fHQucGFyYW1zLndhdGNoT3ZlcmZsb3cmJnQuaXNMb2NrZWR8fHQucGFyYW1zLmNzc01vZGUpKXt2YXIgYT0iY29udGFpbmVyIj09PXQucGFyYW1zLnRvdWNoRXZlbnRzVGFyZ2V0P3QuZWw6dC53cmFwcGVyRWw7YS5zdHlsZS5jdXJzb3I9Im1vdmUiLGEuc3R5bGUuY3Vyc29yPWU/Ii13ZWJraXQtZ3JhYmJpbmciOiItd2Via2l0LWdyYWIiLGEuc3R5bGUuY3Vyc29yPWU/Ii1tb3otZ3JhYmJpbiI6Ii1tb3otZ3JhYiIsYS5zdHlsZS5jdXJzb3I9ZT8iZ3JhYmJpbmciOiJncmFiIn19LHVuc2V0R3JhYkN1cnNvcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5zdXBwb3J0LnRvdWNofHxlLnBhcmFtcy53YXRjaE92ZXJmbG93JiZlLmlzTG9ja2VkfHxlLnBhcmFtcy5jc3NNb2RlfHwoZVsiY29udGFpbmVyIj09PWUucGFyYW1zLnRvdWNoRXZlbnRzVGFyZ2V0PyJlbCI6IndyYXBwZXJFbCJdLnN0eWxlLmN1cnNvcj0iIil9fSxldmVudHM6e2F0dGFjaEV2ZW50czpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1uKCksYT1lLnBhcmFtcyxpPWUuc3VwcG9ydDtlLm9uVG91Y2hTdGFydD1fLmJpbmQoZSksZS5vblRvdWNoTW92ZT1xLmJpbmQoZSksZS5vblRvdWNoRW5kPU4uYmluZChlKSxhLmNzc01vZGUmJihlLm9uU2Nyb2xsPUguYmluZChlKSksZS5vbkNsaWNrPVIuYmluZChlKSxpLnRvdWNoJiYhRyYmKHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsRiksRz0hMCksWShlLCJvbiIpfSxkZXRhY2hFdmVudHM6ZnVuY3Rpb24oKXtZKHRoaXMsIm9mZiIpfX0sYnJlYWtwb2ludHM6e3NldEJyZWFrcG9pbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5hY3RpdmVJbmRleCxhPWUuaW5pdGlhbGl6ZWQsbj1lLmxvb3BlZFNsaWRlcyxpPXZvaWQgMD09PW4/MDpuLHI9ZS5wYXJhbXMscz1lLiRlbCxvPXIuYnJlYWtwb2ludHM7aWYobyYmKCFvfHwwIT09T2JqZWN0LmtleXMobykubGVuZ3RoKSl7dmFyIGw9ZS5nZXRCcmVha3BvaW50KG8sZS5wYXJhbXMuYnJlYWtwb2ludHNCYXNlLGUuZWwpO2lmKGwmJmUuY3VycmVudEJyZWFrcG9pbnQhPT1sKXt2YXIgYz0obCBpbiBvP29bbF06dm9pZCAwKXx8ZS5vcmlnaW5hbFBhcmFtcyxkPVYoZSxyKSx1PVYoZSxjKSxwPXIuZW5hYmxlZDtkJiYhdT8ocy5yZW1vdmVDbGFzcygiIi5jb25jYXQoci5jb250YWluZXJNb2RpZmllckNsYXNzLCJncmlkICIpLmNvbmNhdChyLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MsImdyaWQtY29sdW1uIikpLGUuZW1pdENvbnRhaW5lckNsYXNzZXMoKSk6IWQmJnUmJihzLmFkZENsYXNzKCIiLmNvbmNhdChyLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MsImdyaWQiKSksKGMuZ3JpZC5maWxsJiYiY29sdW1uIj09PWMuZ3JpZC5maWxsfHwhYy5ncmlkLmZpbGwmJiJjb2x1bW4iPT09ci5ncmlkLmZpbGwpJiZzLmFkZENsYXNzKCIiLmNvbmNhdChyLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MsImdyaWQtY29sdW1uIikpLGUuZW1pdENvbnRhaW5lckNsYXNzZXMoKSk7dmFyIGY9Yy5kaXJlY3Rpb24mJmMuZGlyZWN0aW9uIT09ci5kaXJlY3Rpb24sdj1yLmxvb3AmJihjLnNsaWRlc1BlclZpZXchPT1yLnNsaWRlc1BlclZpZXd8fGYpO2YmJmEmJmUuY2hhbmdlRGlyZWN0aW9uKCksQShlLnBhcmFtcyxjKTt2YXIgaD1lLnBhcmFtcy5lbmFibGVkO09iamVjdC5hc3NpZ24oZSx7YWxsb3dUb3VjaE1vdmU6ZS5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsYWxsb3dTbGlkZU5leHQ6ZS5wYXJhbXMuYWxsb3dTbGlkZU5leHQsYWxsb3dTbGlkZVByZXY6ZS5wYXJhbXMuYWxsb3dTbGlkZVByZXZ9KSxwJiYhaD9lLmRpc2FibGUoKTohcCYmaCYmZS5lbmFibGUoKSxlLmN1cnJlbnRCcmVha3BvaW50PWwsZS5lbWl0KCJfYmVmb3JlQnJlYWtwb2ludCIsYyksdiYmYSYmKGUubG9vcERlc3Ryb3koKSxlLmxvb3BDcmVhdGUoKSxlLnVwZGF0ZVNsaWRlcygpLGUuc2xpZGVUbyh0LWkrZS5sb29wZWRTbGlkZXMsMCwhMSkpLGUuZW1pdCgiYnJlYWtwb2ludCIsYyl9fX0sZ2V0QnJlYWtwb2ludDpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IndpbmRvdyIsYT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZihlJiYoImNvbnRhaW5lciIhPT10fHxhKSl7dmFyIG49ITEsaT1yKCkscz0id2luZG93Ij09PXQ/aS5pbm5lckhlaWdodDphLmNsaWVudEhlaWdodCxvPU9iamVjdC5rZXlzKGUpLm1hcCgoZnVuY3Rpb24oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYwPT09ZS5pbmRleE9mKCJAIikpe3ZhciB0PXBhcnNlRmxvYXQoZS5zdWJzdHIoMSkpO3JldHVybnt2YWx1ZTpzKnQscG9pbnQ6ZX19cmV0dXJue3ZhbHVlOmUscG9pbnQ6ZX19KSk7by5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBwYXJzZUludChlLnZhbHVlLDEwKS1wYXJzZUludCh0LnZhbHVlLDEwKX0pKTtmb3IodmFyIGw9MDtsPG8ubGVuZ3RoO2wrPTEpe3ZhciBjPW9bbF0sZD1jLnBvaW50LHU9Yy52YWx1ZTsid2luZG93Ij09PXQ/aS5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiAiLmNvbmNhdCh1LCJweCkiKSkubWF0Y2hlcyYmKG49ZCk6dTw9YS5jbGllbnRXaWR0aCYmKG49ZCl9cmV0dXJuIG58fCJtYXgifX19LGNoZWNrT3ZlcmZsb3c6e2NoZWNrT3ZlcmZsb3c6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5pc0xvY2tlZCxhPWUucGFyYW1zLG49YS5zbGlkZXNPZmZzZXRCZWZvcmU7aWYobil7dmFyIGk9ZS5zbGlkZXMubGVuZ3RoLTEscj1lLnNsaWRlc0dyaWRbaV0rZS5zbGlkZXNTaXplc0dyaWRbaV0rMipuO2UuaXNMb2NrZWQ9ZS5zaXplPnJ9ZWxzZSBlLmlzTG9ja2VkPTE9PT1lLnNuYXBHcmlkLmxlbmd0aDshMD09PWEuYWxsb3dTbGlkZU5leHQmJihlLmFsbG93U2xpZGVOZXh0PSFlLmlzTG9ja2VkKSwhMD09PWEuYWxsb3dTbGlkZVByZXYmJihlLmFsbG93U2xpZGVQcmV2PSFlLmlzTG9ja2VkKSx0JiZ0IT09ZS5pc0xvY2tlZCYmKGUuaXNFbmQ9ITEpLHQhPT1lLmlzTG9ja2VkJiZlLmVtaXQoZS5pc0xvY2tlZD8ibG9jayI6InVubG9jayIpfX0sY2xhc3Nlczp7YWRkQ2xhc3NlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLmNsYXNzTmFtZXMsYT1lLnBhcmFtcyxuPWUucnRsLGk9ZS4kZWwscj1lLmRldmljZSxzPWUuc3VwcG9ydCxsPWZ1bmN0aW9uKGUsdCl7dmFyIGE9W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Im9iamVjdCI9PXcoZSk/T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7ZVtuXSYmYS5wdXNoKHQrbil9KSk6InN0cmluZyI9PXR5cGVvZiBlJiZhLnB1c2godCtlKX0pKSxhfShbImluaXRpYWxpemVkIixhLmRpcmVjdGlvbix7InBvaW50ZXItZXZlbnRzIjohcy50b3VjaH0seyJmcmVlLW1vZGUiOmUucGFyYW1zLmZyZWVNb2RlJiZhLmZyZWVNb2RlLmVuYWJsZWR9LHthdXRvaGVpZ2h0OmEuYXV0b0hlaWdodH0se3J0bDpufSx7Z3JpZDphLmdyaWQmJmEuZ3JpZC5yb3dzPjF9LHsiZ3JpZC1jb2x1bW4iOmEuZ3JpZCYmYS5ncmlkLnJvd3M+MSYmImNvbHVtbiI9PT1hLmdyaWQuZmlsbH0se2FuZHJvaWQ6ci5hbmRyb2lkfSx7aW9zOnIuaW9zfSx7ImNzcy1tb2RlIjphLmNzc01vZGV9LHtjZW50ZXJlZDphLmNzc01vZGUmJmEuY2VudGVyZWRTbGlkZXN9XSxhLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MpO3QucHVzaC5hcHBseSh0LG8obCkpLGkuYWRkQ2xhc3Mobyh0KS5qb2luKCIgIikpLGUuZW1pdENvbnRhaW5lckNsYXNzZXMoKX0scmVtb3ZlQ2xhc3NlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJGVsLHQ9dGhpcy5jbGFzc05hbWVzO2UucmVtb3ZlQ2xhc3ModC5qb2luKCIgIikpLHRoaXMuZW1pdENvbnRhaW5lckNsYXNzZXMoKX19LGltYWdlczp7bG9hZEltYWdlOmZ1bmN0aW9uKGUsdCxhLG4saSxzKXt2YXIgbyxsPXIoKTtmdW5jdGlvbiBjKCl7cyYmcygpfW0oZSkucGFyZW50KCJwaWN0dXJlIilbMF18fGUuY29tcGxldGUmJmk/YygpOnQ/KChvPW5ldyBsLkltYWdlKS5vbmxvYWQ9YyxvLm9uZXJyb3I9YyxuJiYoby5zaXplcz1uKSxhJiYoby5zcmNzZXQ9YSksdCYmKG8uc3JjPXQpKTpjKCl9LHByZWxvYWRJbWFnZXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Z1bmN0aW9uIHQoKXtudWxsIT1lJiZlJiYhZS5kZXN0cm95ZWQmJih2b2lkIDAhPT1lLmltYWdlc0xvYWRlZCYmKGUuaW1hZ2VzTG9hZGVkKz0xKSxlLmltYWdlc0xvYWRlZD09PWUuaW1hZ2VzVG9Mb2FkLmxlbmd0aCYmKGUucGFyYW1zLnVwZGF0ZU9uSW1hZ2VzUmVhZHkmJmUudXBkYXRlKCksZS5lbWl0KCJpbWFnZXNSZWFkeSIpKSl9ZS5pbWFnZXNUb0xvYWQ9ZS4kZWwuZmluZCgiaW1nIik7Zm9yKHZhciBhPTA7YTxlLmltYWdlc1RvTG9hZC5sZW5ndGg7YSs9MSl7dmFyIG49ZS5pbWFnZXNUb0xvYWRbYV07ZS5sb2FkSW1hZ2UobixuLmN1cnJlbnRTcmN8fG4uZ2V0QXR0cmlidXRlKCJzcmMiKSxuLnNyY3NldHx8bi5nZXRBdHRyaWJ1dGUoInNyY3NldCIpLG4uc2l6ZXN8fG4uZ2V0QXR0cmlidXRlKCJzaXplcyIpLCEwLHQpfX19fSxLPXt9LFo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIHQsYSxuLGk7Zih0aGlzLGUpO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLHM9bmV3IEFycmF5KHIpLGM9MDtjPHI7YysrKXNbY109YXJndW1lbnRzW2NdO2lmKDE9PT1zLmxlbmd0aCYmc1swXS5jb25zdHJ1Y3RvciYmIk9iamVjdCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc1swXSkuc2xpY2UoOCwtMSk/aT1zWzBdOihuPSh0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBhPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9YSl7dmFyIG4saSxyLHMsbz1bXSxsPSEwLGM9ITE7dHJ5e2lmKHI9KGE9YS5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QoYSkhPT1hKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KG49ci5jYWxsKGEpKS5kb25lKSYmKG8ucHVzaChuLnZhbHVlKSxvLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLGk9ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9YS5yZXR1cm4mJihzPWEucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBpfX1yZXR1cm4gb319KGUsdCl8fGwoZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShzLDIpKVswXSxpPXRbMV0pLGl8fChpPXt9KSxpPUEoe30saSksbiYmIWkuZWwmJihpLmVsPW4pLGkuZWwmJm0oaS5lbCkubGVuZ3RoPjEpe3ZhciBkPVtdO3JldHVybiBtKGkuZWwpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPUEoe30saSx7ZWw6dH0pO2QucHVzaChuZXcgZShhKSl9KSksZH12YXIgdT10aGlzO3UuX19zd2lwZXJfXz0hMCx1LnN1cHBvcnQ9aigpLHUuZGV2aWNlPUkoe3VzZXJBZ2VudDppLnVzZXJBZ2VudH0pLHUuYnJvd3Nlcj0kKCksdS5ldmVudHNMaXN0ZW5lcnM9e30sdS5ldmVudHNBbnlMaXN0ZW5lcnM9W10sdS5tb2R1bGVzPW8odS5fX21vZHVsZXNfXyksaS5tb2R1bGVzJiZBcnJheS5pc0FycmF5KGkubW9kdWxlcykmJihhPXUubW9kdWxlcykucHVzaC5hcHBseShhLG8oaS5tb2R1bGVzKSk7dmFyIHA9e307dS5tb2R1bGVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uoe3N3aXBlcjp1LGV4dGVuZFBhcmFtczpXKGkscCksb246dS5vbi5iaW5kKHUpLG9uY2U6dS5vbmNlLmJpbmQodSksb2ZmOnUub2ZmLmJpbmQodSksZW1pdDp1LmVtaXQuYmluZCh1KX0pfSkpO3ZhciB2PUEoe30sWCxwKTtyZXR1cm4gdS5wYXJhbXM9QSh7fSx2LEssaSksdS5vcmlnaW5hbFBhcmFtcz1BKHt9LHUucGFyYW1zKSx1LnBhc3NlZFBhcmFtcz1BKHt9LGkpLHUucGFyYW1zJiZ1LnBhcmFtcy5vbiYmT2JqZWN0LmtleXModS5wYXJhbXMub24pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3Uub24oZSx1LnBhcmFtcy5vbltlXSl9KSksdS5wYXJhbXMmJnUucGFyYW1zLm9uQW55JiZ1Lm9uQW55KHUucGFyYW1zLm9uQW55KSx1LiQ9bSxPYmplY3QuYXNzaWduKHUse2VuYWJsZWQ6dS5wYXJhbXMuZW5hYmxlZCxlbDpuLGNsYXNzTmFtZXM6W10sc2xpZGVzOm0oKSxzbGlkZXNHcmlkOltdLHNuYXBHcmlkOltdLHNsaWRlc1NpemVzR3JpZDpbXSxpc0hvcml6b250YWw6ZnVuY3Rpb24oKXtyZXR1cm4iaG9yaXpvbnRhbCI9PT11LnBhcmFtcy5kaXJlY3Rpb259LGlzVmVydGljYWw6ZnVuY3Rpb24oKXtyZXR1cm4idmVydGljYWwiPT09dS5wYXJhbXMuZGlyZWN0aW9ufSxhY3RpdmVJbmRleDowLHJlYWxJbmRleDowLGlzQmVnaW5uaW5nOiEwLGlzRW5kOiExLHRyYW5zbGF0ZTowLHByZXZpb3VzVHJhbnNsYXRlOjAscHJvZ3Jlc3M6MCx2ZWxvY2l0eTowLGFuaW1hdGluZzohMSxhbGxvd1NsaWRlTmV4dDp1LnBhcmFtcy5hbGxvd1NsaWRlTmV4dCxhbGxvd1NsaWRlUHJldjp1LnBhcmFtcy5hbGxvd1NsaWRlUHJldix0b3VjaEV2ZW50czpmdW5jdGlvbigpe3ZhciBlPVsidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiXSx0PVsicG9pbnRlcmRvd24iLCJwb2ludGVybW92ZSIsInBvaW50ZXJ1cCJdO3JldHVybiB1LnRvdWNoRXZlbnRzVG91Y2g9e3N0YXJ0OmVbMF0sbW92ZTplWzFdLGVuZDplWzJdLGNhbmNlbDplWzNdfSx1LnRvdWNoRXZlbnRzRGVza3RvcD17c3RhcnQ6dFswXSxtb3ZlOnRbMV0sZW5kOnRbMl19LHUuc3VwcG9ydC50b3VjaHx8IXUucGFyYW1zLnNpbXVsYXRlVG91Y2g/dS50b3VjaEV2ZW50c1RvdWNoOnUudG91Y2hFdmVudHNEZXNrdG9wfSgpLHRvdWNoRXZlbnRzRGF0YTp7aXNUb3VjaGVkOnZvaWQgMCxpc01vdmVkOnZvaWQgMCxhbGxvd1RvdWNoQ2FsbGJhY2tzOnZvaWQgMCx0b3VjaFN0YXJ0VGltZTp2b2lkIDAsaXNTY3JvbGxpbmc6dm9pZCAwLGN1cnJlbnRUcmFuc2xhdGU6dm9pZCAwLHN0YXJ0VHJhbnNsYXRlOnZvaWQgMCxhbGxvd1RocmVzaG9sZE1vdmU6dm9pZCAwLGZvY3VzYWJsZUVsZW1lbnRzOnUucGFyYW1zLmZvY3VzYWJsZUVsZW1lbnRzLGxhc3RDbGlja1RpbWU6aygpLGNsaWNrVGltZW91dDp2b2lkIDAsdmVsb2NpdGllczpbXSxhbGxvd01vbWVudHVtQm91bmNlOnZvaWQgMCxpc1RvdWNoRXZlbnQ6dm9pZCAwLHN0YXJ0TW92aW5nOnZvaWQgMH0sYWxsb3dDbGljazohMCxhbGxvd1RvdWNoTW92ZTp1LnBhcmFtcy5hbGxvd1RvdWNoTW92ZSx0b3VjaGVzOntzdGFydFg6MCxzdGFydFk6MCxjdXJyZW50WDowLGN1cnJlbnRZOjAsZGlmZjowfSxpbWFnZXNUb0xvYWQ6W10saW1hZ2VzTG9hZGVkOjB9KSx1LmVtaXQoIl9zd2lwZXIiKSx1LnBhcmFtcy5pbml0JiZ1LmluaXQoKSx1fXJldHVybiB1KGUsW3trZXk6ImVuYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuZW5hYmxlZHx8KGUuZW5hYmxlZD0hMCxlLnBhcmFtcy5ncmFiQ3Vyc29yJiZlLnNldEdyYWJDdXJzb3IoKSxlLmVtaXQoImVuYWJsZSIpKX19LHtrZXk6ImRpc2FibGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLmVuYWJsZWQmJihlLmVuYWJsZWQ9ITEsZS5wYXJhbXMuZ3JhYkN1cnNvciYmZS51bnNldEdyYWJDdXJzb3IoKSxlLmVtaXQoImRpc2FibGUiKSl9fSx7a2V5OiJzZXRQcm9ncmVzcyIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzO2U9TWF0aC5taW4oTWF0aC5tYXgoZSwwKSwxKTt2YXIgbj1hLm1pblRyYW5zbGF0ZSgpLGk9KGEubWF4VHJhbnNsYXRlKCktbikqZStuO2EudHJhbnNsYXRlVG8oaSx2b2lkIDA9PT10PzA6dCksYS51cGRhdGVBY3RpdmVJbmRleCgpLGEudXBkYXRlU2xpZGVzQ2xhc3NlcygpfX0se2tleToiZW1pdENvbnRhaW5lckNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlLnBhcmFtcy5fZW1pdENsYXNzZXMmJmUuZWwpe3ZhciB0PWUuZWwuY2xhc3NOYW1lLnNwbGl0KCIgIikuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuaW5kZXhPZigic3dpcGVyIil8fDA9PT10LmluZGV4T2YoZS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcyl9KSk7ZS5lbWl0KCJfY29udGFpbmVyQ2xhc3NlcyIsdC5qb2luKCIgIikpfX19LHtrZXk6ImdldFNsaWRlQ2xhc3NlcyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gZS5jbGFzc05hbWUuc3BsaXQoIiAiKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZS5pbmRleE9mKCJzd2lwZXItc2xpZGUiKXx8MD09PWUuaW5kZXhPZih0LnBhcmFtcy5zbGlkZUNsYXNzKX0pKS5qb2luKCIgIil9fSx7a2V5OiJlbWl0U2xpZGVzQ2xhc3NlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKGUucGFyYW1zLl9lbWl0Q2xhc3NlcyYmZS5lbCl7dmFyIHQ9W107ZS5zbGlkZXMuZWFjaCgoZnVuY3Rpb24oYSl7dmFyIG49ZS5nZXRTbGlkZUNsYXNzZXMoYSk7dC5wdXNoKHtzbGlkZUVsOmEsY2xhc3NOYW1lczpufSksZS5lbWl0KCJfc2xpZGVDbGFzcyIsYSxuKX0pKSxlLmVtaXQoIl9zbGlkZUNsYXNzZXMiLHQpfX19LHtrZXk6InNsaWRlc1BlclZpZXdEeW5hbWljIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiY3VycmVudCIsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGE9dGhpcy5wYXJhbXMsbj10aGlzLnNsaWRlcyxpPXRoaXMuc2xpZGVzR3JpZCxyPXRoaXMuc2xpZGVzU2l6ZXNHcmlkLHM9dGhpcy5zaXplLG89dGhpcy5hY3RpdmVJbmRleCxsPTE7aWYoYS5jZW50ZXJlZFNsaWRlcyl7Zm9yKHZhciBjLGQ9bltvXS5zd2lwZXJTbGlkZVNpemUsdT1vKzE7dTxuLmxlbmd0aDt1Kz0xKW5bdV0mJiFjJiYobCs9MSwoZCs9blt1XS5zd2lwZXJTbGlkZVNpemUpPnMmJihjPSEwKSk7Zm9yKHZhciBwPW8tMTtwPj0wO3AtPTEpbltwXSYmIWMmJihsKz0xLChkKz1uW3BdLnN3aXBlclNsaWRlU2l6ZSk+cyYmKGM9ITApKX1lbHNlIGlmKCJjdXJyZW50Ij09PWUpZm9yKHZhciBmPW8rMTtmPG4ubGVuZ3RoO2YrPTEpKHQ/aVtmXStyW2ZdLWlbb108czppW2ZdLWlbb108cykmJihsKz0xKTtlbHNlIGZvcih2YXIgdj1vLTE7dj49MDt2LT0xKWlbb10taVt2XTxzJiYobCs9MSk7cmV0dXJuIGx9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlJiYhZS5kZXN0cm95ZWQpe3ZhciB0PWUuc25hcEdyaWQsYT1lLnBhcmFtczthLmJyZWFrcG9pbnRzJiZlLnNldEJyZWFrcG9pbnQoKSxlLnVwZGF0ZVNpemUoKSxlLnVwZGF0ZVNsaWRlcygpLGUudXBkYXRlUHJvZ3Jlc3MoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSxlLnBhcmFtcy5mcmVlTW9kZSYmZS5wYXJhbXMuZnJlZU1vZGUuZW5hYmxlZD8obigpLGUucGFyYW1zLmF1dG9IZWlnaHQmJmUudXBkYXRlQXV0b0hlaWdodCgpKTooKCJhdXRvIj09PWUucGFyYW1zLnNsaWRlc1BlclZpZXd8fGUucGFyYW1zLnNsaWRlc1BlclZpZXc+MSkmJmUuaXNFbmQmJiFlLnBhcmFtcy5jZW50ZXJlZFNsaWRlcz9lLnNsaWRlVG8oZS5zbGlkZXMubGVuZ3RoLTEsMCwhMSwhMCk6ZS5zbGlkZVRvKGUuYWN0aXZlSW5kZXgsMCwhMSwhMCkpfHxuKCksYS53YXRjaE92ZXJmbG93JiZ0IT09ZS5zbmFwR3JpZCYmZS5jaGVja092ZXJmbG93KCksZS5lbWl0KCJ1cGRhdGUiKX1mdW5jdGlvbiBuKCl7dmFyIHQ9ZS5ydGxUcmFuc2xhdGU/LTEqZS50cmFuc2xhdGU6ZS50cmFuc2xhdGUsYT1NYXRoLm1pbihNYXRoLm1heCh0LGUubWF4VHJhbnNsYXRlKCkpLGUubWluVHJhbnNsYXRlKCkpO2Uuc2V0VHJhbnNsYXRlKGEpLGUudXBkYXRlQWN0aXZlSW5kZXgoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKX19fSx7a2V5OiJjaGFuZ2VEaXJlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sYT10aGlzLG49YS5wYXJhbXMuZGlyZWN0aW9uO3JldHVybiBlfHwoZT0iaG9yaXpvbnRhbCI9PT1uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiKSxlPT09bnx8Imhvcml6b250YWwiIT09ZSYmInZlcnRpY2FsIiE9PWV8fChhLiRlbC5yZW1vdmVDbGFzcygiIi5jb25jYXQoYS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcykuY29uY2F0KG4pKS5hZGRDbGFzcygiIi5jb25jYXQoYS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzcykuY29uY2F0KGUpKSxhLmVtaXRDb250YWluZXJDbGFzc2VzKCksYS5wYXJhbXMuZGlyZWN0aW9uPWUsYS5zbGlkZXMuZWFjaCgoZnVuY3Rpb24odCl7InZlcnRpY2FsIj09PWU/dC5zdHlsZS53aWR0aD0iIjp0LnN0eWxlLmhlaWdodD0iIn0pKSxhLmVtaXQoImNoYW5nZURpcmVjdGlvbiIpLHQmJmEudXBkYXRlKCkpLGF9fSx7a2V5OiJtb3VudCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0Lm1vdW50ZWQpcmV0dXJuITA7dmFyIGE9bShlfHx0LnBhcmFtcy5lbCk7aWYoIShlPWFbMF0pKXJldHVybiExO2Uuc3dpcGVyPXQ7dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4iLiIuY29uY2F0KCh0LnBhcmFtcy53cmFwcGVyQ2xhc3N8fCIiKS50cmltKCkuc3BsaXQoIiAiKS5qb2luKCIuIikpfSxyPWZ1bmN0aW9uKCl7aWYoZSYmZS5zaGFkb3dSb290JiZlLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcil7dmFyIHQ9bShlLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihpKCkpKTtyZXR1cm4gdC5jaGlsZHJlbj1mdW5jdGlvbihlKXtyZXR1cm4gYS5jaGlsZHJlbihlKX0sdH1yZXR1cm4gYS5jaGlsZHJlbihpKCkpfSgpO2lmKDA9PT1yLmxlbmd0aCYmdC5wYXJhbXMuY3JlYXRlRWxlbWVudHMpe3ZhciBzPW4oKS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyPW0ocykscy5jbGFzc05hbWU9dC5wYXJhbXMud3JhcHBlckNsYXNzLGEuYXBwZW5kKHMpLGEuY2hpbGRyZW4oIi4iLmNvbmNhdCh0LnBhcmFtcy5zbGlkZUNsYXNzKSkuZWFjaCgoZnVuY3Rpb24oZSl7ci5hcHBlbmQoZSl9KSl9cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7JGVsOmEsZWw6ZSwkd3JhcHBlckVsOnIsd3JhcHBlckVsOnJbMF0sbW91bnRlZDohMCxydGw6InJ0bCI9PT1lLmRpci50b0xvd2VyQ2FzZSgpfHwicnRsIj09PWEuY3NzKCJkaXJlY3Rpb24iKSxydGxUcmFuc2xhdGU6Imhvcml6b250YWwiPT09dC5wYXJhbXMuZGlyZWN0aW9uJiYoInJ0bCI9PT1lLmRpci50b0xvd2VyQ2FzZSgpfHwicnRsIj09PWEuY3NzKCJkaXJlY3Rpb24iKSksd3JvbmdSVEw6Ii13ZWJraXQtYm94Ij09PXIuY3NzKCJkaXNwbGF5Iil9KSwhMH19LHtrZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHQuaW5pdGlhbGl6ZWR8fCExPT09dC5tb3VudChlKXx8KHQuZW1pdCgiYmVmb3JlSW5pdCIpLHQucGFyYW1zLmJyZWFrcG9pbnRzJiZ0LnNldEJyZWFrcG9pbnQoKSx0LmFkZENsYXNzZXMoKSx0LnBhcmFtcy5sb29wJiZ0Lmxvb3BDcmVhdGUoKSx0LnVwZGF0ZVNpemUoKSx0LnVwZGF0ZVNsaWRlcygpLHQucGFyYW1zLndhdGNoT3ZlcmZsb3cmJnQuY2hlY2tPdmVyZmxvdygpLHQucGFyYW1zLmdyYWJDdXJzb3ImJnQuZW5hYmxlZCYmdC5zZXRHcmFiQ3Vyc29yKCksdC5wYXJhbXMucHJlbG9hZEltYWdlcyYmdC5wcmVsb2FkSW1hZ2VzKCksdC5wYXJhbXMubG9vcD90LnNsaWRlVG8odC5wYXJhbXMuaW5pdGlhbFNsaWRlK3QubG9vcGVkU2xpZGVzLDAsdC5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0LCExLCEwKTp0LnNsaWRlVG8odC5wYXJhbXMuaW5pdGlhbFNsaWRlLDAsdC5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0LCExLCEwKSx0LmF0dGFjaEV2ZW50cygpLHQuaW5pdGlhbGl6ZWQ9ITAsdC5lbWl0KCJpbml0IiksdC5lbWl0KCJhZnRlckluaXQiKSksdH19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXSx0PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sYT10aGlzLG49YS5wYXJhbXMsaT1hLiRlbCxyPWEuJHdyYXBwZXJFbCxzPWEuc2xpZGVzO3JldHVybiB2b2lkIDA9PT1hLnBhcmFtc3x8YS5kZXN0cm95ZWR8fChhLmVtaXQoImJlZm9yZURlc3Ryb3kiKSxhLmluaXRpYWxpemVkPSExLGEuZGV0YWNoRXZlbnRzKCksbi5sb29wJiZhLmxvb3BEZXN0cm95KCksdCYmKGEucmVtb3ZlQ2xhc3NlcygpLGkucmVtb3ZlQXR0cigic3R5bGUiKSxyLnJlbW92ZUF0dHIoInN0eWxlIikscyYmcy5sZW5ndGgmJnMucmVtb3ZlQ2xhc3MoW24uc2xpZGVWaXNpYmxlQ2xhc3Msbi5zbGlkZUFjdGl2ZUNsYXNzLG4uc2xpZGVOZXh0Q2xhc3Msbi5zbGlkZVByZXZDbGFzc10uam9pbigiICIpKS5yZW1vdmVBdHRyKCJzdHlsZSIpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IikpLGEuZW1pdCgiZGVzdHJveSIpLE9iamVjdC5rZXlzKGEuZXZlbnRzTGlzdGVuZXJzKS5mb3JFYWNoKChmdW5jdGlvbihlKXthLm9mZihlKX0pKSwhMSE9PWUmJihhLiRlbFswXS5zd2lwZXI9bnVsbCxmdW5jdGlvbihlKXt2YXIgdD1lO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXt0W2VdPW51bGx9Y2F0Y2goZSl7fXRyeXtkZWxldGUgdFtlXX1jYXRjaChlKXt9fSkpfShhKSksYS5kZXN0cm95ZWQ9ITApLG51bGx9fV0sW3trZXk6ImV4dGVuZERlZmF1bHRzIix2YWx1ZTpmdW5jdGlvbihlKXtBKEssZSl9fSx7a2V5OiJleHRlbmRlZERlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS319LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWH19LHtrZXk6Imluc3RhbGxNb2R1bGUiLHZhbHVlOmZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLl9fbW9kdWxlc19ffHwoZS5wcm90b3R5cGUuX19tb2R1bGVzX189W10pO3ZhciBhPWUucHJvdG90eXBlLl9fbW9kdWxlc19fOyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZhLmluZGV4T2YodCk8MCYmYS5wdXNoKHQpfX0se2tleToidXNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8odC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbnN0YWxsTW9kdWxlKHQpfSkpLGUpOihlLmluc3RhbGxNb2R1bGUodCksZSl9fV0pLGV9KCk7ZnVuY3Rpb24gUShlLHQsYSxpKXt2YXIgcj1uKCk7cmV0dXJuIGUucGFyYW1zLmNyZWF0ZUVsZW1lbnRzJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbihuKXtpZighYVtuXSYmITA9PT1hLmF1dG8pe3ZhciBzPWUuJGVsLmNoaWxkcmVuKCIuIi5jb25jYXQoaVtuXSkpWzBdO3N8fCgocz1yLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc05hbWU9aVtuXSxlLiRlbC5hcHBlbmQocykpLGFbbl09cyx0W25dPXN9fSkpLGF9ZnVuY3Rpb24gSigpe3JldHVybiIuIi5jb25jYXQoKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIikudHJpbSgpLnJlcGxhY2UoLyhbXC46IVwvXSkvZywiXFwkMSIpLnJlcGxhY2UoLyAvZywiLiIpKX1mdW5jdGlvbiBlZShlKXt2YXIgdD10aGlzLGE9dC4kd3JhcHBlckVsLG49dC5wYXJhbXM7aWYobi5sb29wJiZ0Lmxvb3BEZXN0cm95KCksIm9iamVjdCI9PXcoZSkmJiJsZW5ndGgiaW4gZSlmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krPTEpZVtpXSYmYS5hcHBlbmQoZVtpXSk7ZWxzZSBhLmFwcGVuZChlKTtuLmxvb3AmJnQubG9vcENyZWF0ZSgpLG4ub2JzZXJ2ZXJ8fHQudXBkYXRlKCl9ZnVuY3Rpb24gdGUoZSl7dmFyIHQ9dGhpcyxhPXQucGFyYW1zLG49dC4kd3JhcHBlckVsLGk9dC5hY3RpdmVJbmRleDthLmxvb3AmJnQubG9vcERlc3Ryb3koKTt2YXIgcj1pKzE7aWYoIm9iamVjdCI9PXcoZSkmJiJsZW5ndGgiaW4gZSl7Zm9yKHZhciBzPTA7czxlLmxlbmd0aDtzKz0xKWVbc10mJm4ucHJlcGVuZChlW3NdKTtyPWkrZS5sZW5ndGh9ZWxzZSBuLnByZXBlbmQoZSk7YS5sb29wJiZ0Lmxvb3BDcmVhdGUoKSxhLm9ic2VydmVyfHx0LnVwZGF0ZSgpLHQuc2xpZGVUbyhyLDAsITEpfWZ1bmN0aW9uIGFlKGUsdCl7dmFyIGE9dGhpcyxuPWEuJHdyYXBwZXJFbCxpPWEucGFyYW1zLHI9YS5hY3RpdmVJbmRleDtpLmxvb3AmJihyLT1hLmxvb3BlZFNsaWRlcyxhLmxvb3BEZXN0cm95KCksYS5zbGlkZXM9bi5jaGlsZHJlbigiLiIuY29uY2F0KGkuc2xpZGVDbGFzcykpKTt2YXIgcz1hLnNsaWRlcy5sZW5ndGg7aWYoZTw9MClhLnByZXBlbmRTbGlkZSh0KTtlbHNlIGlmKGU+PXMpYS5hcHBlbmRTbGlkZSh0KTtlbHNle2Zvcih2YXIgbz1yPmU/cisxOnIsbD1bXSxjPXMtMTtjPj1lO2MtPTEpe3ZhciBkPWEuc2xpZGVzLmVxKGMpO2QucmVtb3ZlKCksbC51bnNoaWZ0KGQpfWlmKCJvYmplY3QiPT13KHQpJiYibGVuZ3RoImluIHQpe2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSs9MSl0W3VdJiZuLmFwcGVuZCh0W3VdKTtvPXI+ZT9yK3QubGVuZ3RoOnJ9ZWxzZSBuLmFwcGVuZCh0KTtmb3IodmFyIHA9MDtwPGwubGVuZ3RoO3ArPTEpbi5hcHBlbmQobFtwXSk7aS5sb29wJiZhLmxvb3BDcmVhdGUoKSxpLm9ic2VydmVyfHxhLnVwZGF0ZSgpLGkubG9vcD9hLnNsaWRlVG8obythLmxvb3BlZFNsaWRlcywwLCExKTphLnNsaWRlVG8obywwLCExKX19ZnVuY3Rpb24gbmUoZSl7dmFyIHQ9dGhpcyxhPXQucGFyYW1zLG49dC4kd3JhcHBlckVsLGk9dC5hY3RpdmVJbmRleDthLmxvb3AmJihpLT10Lmxvb3BlZFNsaWRlcyx0Lmxvb3BEZXN0cm95KCksdC5zbGlkZXM9bi5jaGlsZHJlbigiLiIuY29uY2F0KGEuc2xpZGVDbGFzcykpKTt2YXIgcixzPWk7aWYoIm9iamVjdCI9PXcoZSkmJiJsZW5ndGgiaW4gZSl7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKz0xKXI9ZVtvXSx0LnNsaWRlc1tyXSYmdC5zbGlkZXMuZXEocikucmVtb3ZlKCkscjxzJiYocy09MSk7cz1NYXRoLm1heChzLDApfWVsc2Ugcj1lLHQuc2xpZGVzW3JdJiZ0LnNsaWRlcy5lcShyKS5yZW1vdmUoKSxyPHMmJihzLT0xKSxzPU1hdGgubWF4KHMsMCk7YS5sb29wJiZ0Lmxvb3BDcmVhdGUoKSxhLm9ic2VydmVyfHx0LnVwZGF0ZSgpLGEubG9vcD90LnNsaWRlVG8ocyt0Lmxvb3BlZFNsaWRlcywwLCExKTp0LnNsaWRlVG8ocywwLCExKX1mdW5jdGlvbiBpZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDx0aGlzLnNsaWRlcy5sZW5ndGg7dCs9MSllLnB1c2godCk7dGhpcy5yZW1vdmVTbGlkZShlKX1mdW5jdGlvbiByZShlKXt2YXIgdD1lLmVmZmVjdCxhPWUuc3dpcGVyLG49ZS5vbixpPWUuc2V0VHJhbnNsYXRlLHI9ZS5zZXRUcmFuc2l0aW9uLHM9ZS5vdmVyd3JpdGVQYXJhbXMsbz1lLnBlcnNwZWN0aXZlO24oImJlZm9yZUluaXQiLChmdW5jdGlvbigpe2lmKGEucGFyYW1zLmVmZmVjdD09PXQpe2EuY2xhc3NOYW1lcy5wdXNoKCIiLmNvbmNhdChhLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzKS5jb25jYXQodCkpLG8mJm8oKSYmYS5jbGFzc05hbWVzLnB1c2goIiIuY29uY2F0KGEucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MsIjNkIikpO3ZhciBlPXM/cygpOnt9O09iamVjdC5hc3NpZ24oYS5wYXJhbXMsZSksT2JqZWN0LmFzc2lnbihhLm9yaWdpbmFsUGFyYW1zLGUpfX0pKSxuKCJzZXRUcmFuc2xhdGUiLChmdW5jdGlvbigpe2EucGFyYW1zLmVmZmVjdD09PXQmJmkoKX0pKSxuKCJzZXRUcmFuc2l0aW9uIiwoZnVuY3Rpb24oZSxuKXthLnBhcmFtcy5lZmZlY3Q9PT10JiZyKG4pfSkpfWZ1bmN0aW9uIHNlKGUsdCl7cmV0dXJuIGUudHJhbnNmb3JtRWw/dC5maW5kKGUudHJhbnNmb3JtRWwpLmNzcyh7ImJhY2tmYWNlLXZpc2liaWxpdHkiOiJoaWRkZW4iLCItd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHkiOiJoaWRkZW4ifSk6dH1mdW5jdGlvbiBvZShlKXt2YXIgdD1lLnN3aXBlcixhPWUuZHVyYXRpb24sbj1lLnRyYW5zZm9ybUVsLGk9ZS5hbGxTbGlkZXMscj10LnNsaWRlcyxzPXQuYWN0aXZlSW5kZXgsbz10LiR3cmFwcGVyRWw7aWYodC5wYXJhbXMudmlydHVhbFRyYW5zbGF0ZSYmMCE9PWEpe3ZhciBsPSExOyhpP24/ci5maW5kKG4pOnI6bj9yLmVxKHMpLmZpbmQobik6ci5lcShzKSkudHJhbnNpdGlvbkVuZCgoZnVuY3Rpb24oKXtpZighbCYmdCYmIXQuZGVzdHJveWVkKXtsPSEwLHQuYW5pbWF0aW5nPSExO2Zvcih2YXIgZT1bIndlYmtpdFRyYW5zaXRpb25FbmQiLCJ0cmFuc2l0aW9uZW5kIl0sYT0wO2E8ZS5sZW5ndGg7YSs9MSlvLnRyaWdnZXIoZVthXSl9fSkpfX1mdW5jdGlvbiBsZShlLHQsYSl7dmFyIG49InN3aXBlci1zbGlkZS1zaGFkb3ciKyhhPyItIi5jb25jYXQoYSk6IiIpLGk9ZS50cmFuc2Zvcm1FbD90LmZpbmQoZS50cmFuc2Zvcm1FbCk6dCxyPWkuY2hpbGRyZW4oIi4iLmNvbmNhdChuKSk7cmV0dXJuIHIubGVuZ3RofHwocj1tKCc8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUtc2hhZG93Jy5jb25jYXQoYT8iLSIuY29uY2F0KGEpOiIiLCciPjwvZGl2PicpKSxpLmFwcGVuZChyKSkscn1PYmplY3Qua2V5cyhVKS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3Qua2V5cyhVW2VdKS5mb3JFYWNoKChmdW5jdGlvbih0KXtaLnByb3RvdHlwZVt0XT1VW2VdW3RdfSkpfSkpLFoudXNlKFtmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcixhPWUub24sbj1lLmVtaXQsaT1yKCkscz1udWxsLG89ZnVuY3Rpb24oKXt0JiYhdC5kZXN0cm95ZWQmJnQuaW5pdGlhbGl6ZWQmJihuKCJiZWZvcmVSZXNpemUiKSxuKCJyZXNpemUiKSl9LGw9ZnVuY3Rpb24oKXt0JiYhdC5kZXN0cm95ZWQmJnQuaW5pdGlhbGl6ZWQmJm4oIm9yaWVudGF0aW9uY2hhbmdlIil9O2EoImluaXQiLChmdW5jdGlvbigpe3QucGFyYW1zLnJlc2l6ZU9ic2VydmVyJiZ2b2lkIDAhPT1pLlJlc2l6ZU9ic2VydmVyP3QmJiF0LmRlc3Ryb3llZCYmdC5pbml0aWFsaXplZCYmKHM9bmV3IFJlc2l6ZU9ic2VydmVyKChmdW5jdGlvbihlKXt2YXIgYT10LndpZHRoLG49dC5oZWlnaHQsaT1hLHI9bjtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBhPWUuY29udGVudEJveFNpemUsbj1lLmNvbnRlbnRSZWN0LHM9ZS50YXJnZXQ7cyYmcyE9PXQuZWx8fChpPW4/bi53aWR0aDooYVswXXx8YSkuaW5saW5lU2l6ZSxyPW4/bi5oZWlnaHQ6KGFbMF18fGEpLmJsb2NrU2l6ZSl9KSksaT09PWEmJnI9PT1ufHxvKCl9KSkscy5vYnNlcnZlKHQuZWwpKTooaS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG8pLGkuYWRkRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLGwpKX0pKSxhKCJkZXN0cm95IiwoZnVuY3Rpb24oKXtzJiZzLnVub2JzZXJ2ZSYmdC5lbCYmKHMudW5vYnNlcnZlKHQuZWwpLHM9bnVsbCksaS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG8pLGkucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLGwpfSkpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcixhPWUuZXh0ZW5kUGFyYW1zLG49ZS5vbixpPWUuZW1pdCxzPVtdLG89cigpLGw9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGE9bmV3KG8uTXV0YXRpb25PYnNlcnZlcnx8by5XZWJraXRNdXRhdGlvbk9ic2VydmVyKSgoZnVuY3Rpb24oZSl7aWYoMSE9PWUubGVuZ3RoKXt2YXIgdD1mdW5jdGlvbigpe2koIm9ic2VydmVyVXBkYXRlIixlWzBdKX07by5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/by5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCk6by5zZXRUaW1lb3V0KHQsMCl9ZWxzZSBpKCJvYnNlcnZlclVwZGF0ZSIsZVswXSl9KSk7YS5vYnNlcnZlKGUse2F0dHJpYnV0ZXM6dm9pZCAwPT09dC5hdHRyaWJ1dGVzfHx0LmF0dHJpYnV0ZXMsY2hpbGRMaXN0OnZvaWQgMD09PXQuY2hpbGRMaXN0fHx0LmNoaWxkTGlzdCxjaGFyYWN0ZXJEYXRhOnZvaWQgMD09PXQuY2hhcmFjdGVyRGF0YXx8dC5jaGFyYWN0ZXJEYXRhfSkscy5wdXNoKGEpfTthKHtvYnNlcnZlcjohMSxvYnNlcnZlUGFyZW50czohMSxvYnNlcnZlU2xpZGVDaGlsZHJlbjohMX0pLG4oImluaXQiLChmdW5jdGlvbigpe2lmKHQucGFyYW1zLm9ic2VydmVyKXtpZih0LnBhcmFtcy5vYnNlcnZlUGFyZW50cylmb3IodmFyIGU9dC4kZWwucGFyZW50cygpLGE9MDthPGUubGVuZ3RoO2ErPTEpbChlW2FdKTtsKHQuJGVsWzBdLHtjaGlsZExpc3Q6dC5wYXJhbXMub2JzZXJ2ZVNsaWRlQ2hpbGRyZW59KSxsKHQuJHdyYXBwZXJFbFswXSx7YXR0cmlidXRlczohMX0pfX0pKSxuKCJkZXN0cm95IiwoZnVuY3Rpb24oKXtzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuZGlzY29ubmVjdCgpfSkpLHMuc3BsaWNlKDAscy5sZW5ndGgpfSkpfV0pO3ZhciBjZT1bZnVuY3Rpb24oZSl7dmFyIHQsYT1lLnN3aXBlcixuPWUuZXh0ZW5kUGFyYW1zLGk9ZS5vbjtmdW5jdGlvbiByKGUsdCl7dmFyIG49YS5wYXJhbXMudmlydHVhbDtpZihuLmNhY2hlJiZhLnZpcnR1YWwuY2FjaGVbdF0pcmV0dXJuIGEudmlydHVhbC5jYWNoZVt0XTt2YXIgaT1uLnJlbmRlclNsaWRlP20obi5yZW5kZXJTbGlkZS5jYWxsKGEsZSx0KSk6bSgnPGRpdiBjbGFzcz0iJy5jb25jYXQoYS5wYXJhbXMuc2xpZGVDbGFzcywnIiBkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJykuY29uY2F0KHQsJyI+JykuY29uY2F0KGUsIjwvZGl2PiIpKTtyZXR1cm4gaS5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpfHxpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iix0KSxuLmNhY2hlJiYoYS52aXJ0dWFsLmNhY2hlW3RdPWkpLGl9ZnVuY3Rpb24gcyhlKXt2YXIgdD1hLnBhcmFtcyxuPXQuc2xpZGVzUGVyVmlldyxpPXQuc2xpZGVzUGVyR3JvdXAscz10LmNlbnRlcmVkU2xpZGVzLG89YS5wYXJhbXMudmlydHVhbCxsPW8uYWRkU2xpZGVzQmVmb3JlLGM9by5hZGRTbGlkZXNBZnRlcixkPWEudmlydHVhbCx1PWQuZnJvbSxwPWQudG8sZj1kLnNsaWRlcyx2PWQuc2xpZGVzR3JpZCxoPWQub2Zmc2V0O2EucGFyYW1zLmNzc01vZGV8fGEudXBkYXRlQWN0aXZlSW5kZXgoKTt2YXIgbSxnLGIseT1hLmFjdGl2ZUluZGV4fHwwO209YS5ydGxUcmFuc2xhdGU/InJpZ2h0IjphLmlzSG9yaXpvbnRhbCgpPyJsZWZ0IjoidG9wIixzPyhnPU1hdGguZmxvb3Iobi8yKStpK2MsYj1NYXRoLmZsb29yKG4vMikraStsKTooZz1uKyhpLTEpK2MsYj1pK2wpO3ZhciB3PU1hdGgubWF4KCh5fHwwKS1iLDApLHg9TWF0aC5taW4oKHl8fDApK2csZi5sZW5ndGgtMSksRT0oYS5zbGlkZXNHcmlkW3ddfHwwKS0oYS5zbGlkZXNHcmlkWzBdfHwwKTtmdW5jdGlvbiBTKCl7YS51cGRhdGVTbGlkZXMoKSxhLnVwZGF0ZVByb2dyZXNzKCksYS51cGRhdGVTbGlkZXNDbGFzc2VzKCksYS5sYXp5JiZhLnBhcmFtcy5sYXp5LmVuYWJsZWQmJmEubGF6eS5sb2FkKCl9aWYoT2JqZWN0LmFzc2lnbihhLnZpcnR1YWwse2Zyb206dyx0bzp4LG9mZnNldDpFLHNsaWRlc0dyaWQ6YS5zbGlkZXNHcmlkfSksdT09PXcmJnA9PT14JiYhZSlyZXR1cm4gYS5zbGlkZXNHcmlkIT09diYmRSE9PWgmJmEuc2xpZGVzLmNzcyhtLCIiLmNvbmNhdChFLCJweCIpKSx2b2lkIGEudXBkYXRlUHJvZ3Jlc3MoKTtpZihhLnBhcmFtcy52aXJ0dWFsLnJlbmRlckV4dGVybmFsKXJldHVybiBhLnBhcmFtcy52aXJ0dWFsLnJlbmRlckV4dGVybmFsLmNhbGwoYSx7b2Zmc2V0OkUsZnJvbTp3LHRvOngsc2xpZGVzOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9dzt0PD14O3QrPTEpZS5wdXNoKGZbdF0pO3JldHVybiBlfSgpfSksdm9pZChhLnBhcmFtcy52aXJ0dWFsLnJlbmRlckV4dGVybmFsVXBkYXRlJiZTKCkpO3ZhciBUPVtdLEM9W107aWYoZSlhLiR3cmFwcGVyRWwuZmluZCgiLiIuY29uY2F0KGEucGFyYW1zLnNsaWRlQ2xhc3MpKS5yZW1vdmUoKTtlbHNlIGZvcih2YXIgaz11O2s8PXA7ays9MSkoazx3fHxrPngpJiZhLiR3cmFwcGVyRWwuZmluZCgiLiIuY29uY2F0KGEucGFyYW1zLnNsaWRlQ2xhc3MsJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJykuY29uY2F0KGssJyJdJykpLnJlbW92ZSgpO2Zvcih2YXIgTT0wO008Zi5sZW5ndGg7TSs9MSlNPj13JiZNPD14JiYodm9pZCAwPT09cHx8ZT9DLnB1c2goTSk6KE0+cCYmQy5wdXNoKE0pLE08dSYmVC5wdXNoKE0pKSk7Qy5mb3JFYWNoKChmdW5jdGlvbihlKXthLiR3cmFwcGVyRWwuYXBwZW5kKHIoZltlXSxlKSl9KSksVC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiB0LWV9KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YS4kd3JhcHBlckVsLnByZXBlbmQocihmW2VdLGUpKX0pKSxhLiR3cmFwcGVyRWwuY2hpbGRyZW4oIi5zd2lwZXItc2xpZGUiKS5jc3MobSwiIi5jb25jYXQoRSwicHgiKSksUygpfW4oe3ZpcnR1YWw6e2VuYWJsZWQ6ITEsc2xpZGVzOltdLGNhY2hlOiEwLHJlbmRlclNsaWRlOm51bGwscmVuZGVyRXh0ZXJuYWw6bnVsbCxyZW5kZXJFeHRlcm5hbFVwZGF0ZTohMCxhZGRTbGlkZXNCZWZvcmU6MCxhZGRTbGlkZXNBZnRlcjowfX0pLGEudmlydHVhbD17Y2FjaGU6e30sZnJvbTp2b2lkIDAsdG86dm9pZCAwLHNsaWRlczpbXSxvZmZzZXQ6MCxzbGlkZXNHcmlkOltdfSxpKCJiZWZvcmVJbml0IiwoZnVuY3Rpb24oKXthLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJihhLnZpcnR1YWwuc2xpZGVzPWEucGFyYW1zLnZpcnR1YWwuc2xpZGVzLGEuY2xhc3NOYW1lcy5wdXNoKCIiLmNvbmNhdChhLnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzLCJ2aXJ0dWFsIikpLGEucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsYS5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzPSEwLGEucGFyYW1zLmluaXRpYWxTbGlkZXx8cygpKX0pKSxpKCJzZXRUcmFuc2xhdGUiLChmdW5jdGlvbigpe2EucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCYmKGEucGFyYW1zLmNzc01vZGUmJiFhLl9pbW1lZGlhdGVWaXJ0dWFsPyhjbGVhclRpbWVvdXQodCksdD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3MoKX0pLDEwMCkpOnMoKSl9KSksaSgiaW5pdCB1cGRhdGUgcmVzaXplIiwoZnVuY3Rpb24oKXthLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJmEucGFyYW1zLmNzc01vZGUmJkwoYS53cmFwcGVyRWwsIi0tc3dpcGVyLXZpcnR1YWwtc2l6ZSIsIiIuY29uY2F0KGEudmlydHVhbFNpemUsInB4IikpfSkpLE9iamVjdC5hc3NpZ24oYS52aXJ0dWFsLHthcHBlbmRTbGlkZTpmdW5jdGlvbihlKXtpZigib2JqZWN0Ij09dyhlKSYmImxlbmd0aCJpbiBlKWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9MSllW3RdJiZhLnZpcnR1YWwuc2xpZGVzLnB1c2goZVt0XSk7ZWxzZSBhLnZpcnR1YWwuc2xpZGVzLnB1c2goZSk7cyghMCl9LHByZXBlbmRTbGlkZTpmdW5jdGlvbihlKXt2YXIgdD1hLmFjdGl2ZUluZGV4LG49dCsxLGk9MTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTEpZVtyXSYmYS52aXJ0dWFsLnNsaWRlcy51bnNoaWZ0KGVbcl0pO249dCtlLmxlbmd0aCxpPWUubGVuZ3RofWVsc2UgYS52aXJ0dWFsLnNsaWRlcy51bnNoaWZ0KGUpO2lmKGEucGFyYW1zLnZpcnR1YWwuY2FjaGUpe3ZhciBvPWEudmlydHVhbC5jYWNoZSxsPXt9O09iamVjdC5rZXlzKG8pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PW9bZV0sYT10LmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iik7YSYmdC5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIscGFyc2VJbnQoYSwxMCkraSksbFtwYXJzZUludChlLDEwKStpXT10fSkpLGEudmlydHVhbC5jYWNoZT1sfXMoITApLGEuc2xpZGVUbyhuLDApfSxyZW1vdmVTbGlkZTpmdW5jdGlvbihlKXtpZihudWxsIT1lKXt2YXIgdD1hLmFjdGl2ZUluZGV4O2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLT0xKWEudmlydHVhbC5zbGlkZXMuc3BsaWNlKGVbbl0sMSksYS5wYXJhbXMudmlydHVhbC5jYWNoZSYmZGVsZXRlIGEudmlydHVhbC5jYWNoZVtlW25dXSxlW25dPHQmJih0LT0xKSx0PU1hdGgubWF4KHQsMCk7ZWxzZSBhLnZpcnR1YWwuc2xpZGVzLnNwbGljZShlLDEpLGEucGFyYW1zLnZpcnR1YWwuY2FjaGUmJmRlbGV0ZSBhLnZpcnR1YWwuY2FjaGVbZV0sZTx0JiYodC09MSksdD1NYXRoLm1heCh0LDApO3MoITApLGEuc2xpZGVUbyh0LDApfX0scmVtb3ZlQWxsU2xpZGVzOmZ1bmN0aW9uKCl7YS52aXJ0dWFsLnNsaWRlcz1bXSxhLnBhcmFtcy52aXJ0dWFsLmNhY2hlJiYoYS52aXJ0dWFsLmNhY2hlPXt9KSxzKCEwKSxhLnNsaWRlVG8oMCwwKX0sdXBkYXRlOnN9KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxpPWUub24scz1lLmVtaXQsbz1uKCksbD1yKCk7ZnVuY3Rpb24gYyhlKXtpZih0LmVuYWJsZWQpe3ZhciBhPXQucnRsVHJhbnNsYXRlLG49ZTtuLm9yaWdpbmFsRXZlbnQmJihuPW4ub3JpZ2luYWxFdmVudCk7dmFyIGk9bi5rZXlDb2RlfHxuLmNoYXJDb2RlLHI9dC5wYXJhbXMua2V5Ym9hcmQucGFnZVVwRG93bixjPXImJjMzPT09aSxkPXImJjM0PT09aSx1PTM3PT09aSxwPTM5PT09aSxmPTM4PT09aSx2PTQwPT09aTtpZighdC5hbGxvd1NsaWRlTmV4dCYmKHQuaXNIb3Jpem9udGFsKCkmJnB8fHQuaXNWZXJ0aWNhbCgpJiZ2fHxkKSlyZXR1cm4hMTtpZighdC5hbGxvd1NsaWRlUHJldiYmKHQuaXNIb3Jpem9udGFsKCkmJnV8fHQuaXNWZXJ0aWNhbCgpJiZmfHxjKSlyZXR1cm4hMTtpZighKG4uc2hpZnRLZXl8fG4uYWx0S2V5fHxuLmN0cmxLZXl8fG4ubWV0YUtleXx8by5hY3RpdmVFbGVtZW50JiZvLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUmJigiaW5wdXQiPT09by5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl8fCJ0ZXh0YXJlYSI9PT1vLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpKXtpZih0LnBhcmFtcy5rZXlib2FyZC5vbmx5SW5WaWV3cG9ydCYmKGN8fGR8fHV8fHB8fGZ8fHYpKXt2YXIgaD0hMTtpZih0LiRlbC5wYXJlbnRzKCIuIi5jb25jYXQodC5wYXJhbXMuc2xpZGVDbGFzcykpLmxlbmd0aD4wJiYwPT09dC4kZWwucGFyZW50cygiLiIuY29uY2F0KHQucGFyYW1zLnNsaWRlQWN0aXZlQ2xhc3MpKS5sZW5ndGgpcmV0dXJuO3ZhciBtPXQuJGVsLGc9bVswXS5jbGllbnRXaWR0aCxiPW1bMF0uY2xpZW50SGVpZ2h0LHk9bC5pbm5lcldpZHRoLHc9bC5pbm5lckhlaWdodCx4PXQuJGVsLm9mZnNldCgpO2EmJih4LmxlZnQtPXQuJGVsWzBdLnNjcm9sbExlZnQpO2Zvcih2YXIgRT1bW3gubGVmdCx4LnRvcF0sW3gubGVmdCtnLHgudG9wXSxbeC5sZWZ0LHgudG9wK2JdLFt4LmxlZnQrZyx4LnRvcCtiXV0sUz0wO1M8RS5sZW5ndGg7Uys9MSl7dmFyIFQ9RVtTXTtpZihUWzBdPj0wJiZUWzBdPD15JiZUWzFdPj0wJiZUWzFdPD13KXtpZigwPT09VFswXSYmMD09PVRbMV0pY29udGludWU7aD0hMH19aWYoIWgpcmV0dXJufXQuaXNIb3Jpem9udGFsKCk/KChjfHxkfHx1fHxwKSYmKG4ucHJldmVudERlZmF1bHQ/bi5wcmV2ZW50RGVmYXVsdCgpOm4ucmV0dXJuVmFsdWU9ITEpLCgoZHx8cCkmJiFhfHwoY3x8dSkmJmEpJiZ0LnNsaWRlTmV4dCgpLCgoY3x8dSkmJiFhfHwoZHx8cCkmJmEpJiZ0LnNsaWRlUHJldigpKTooKGN8fGR8fGZ8fHYpJiYobi5wcmV2ZW50RGVmYXVsdD9uLnByZXZlbnREZWZhdWx0KCk6bi5yZXR1cm5WYWx1ZT0hMSksKGR8fHYpJiZ0LnNsaWRlTmV4dCgpLChjfHxmKSYmdC5zbGlkZVByZXYoKSkscygia2V5UHJlc3MiLGkpfX19ZnVuY3Rpb24gZCgpe3Qua2V5Ym9hcmQuZW5hYmxlZHx8KG0obykub24oImtleWRvd24iLGMpLHQua2V5Ym9hcmQuZW5hYmxlZD0hMCl9ZnVuY3Rpb24gdSgpe3Qua2V5Ym9hcmQuZW5hYmxlZCYmKG0obykub2ZmKCJrZXlkb3duIixjKSx0LmtleWJvYXJkLmVuYWJsZWQ9ITEpfXQua2V5Ym9hcmQ9e2VuYWJsZWQ6ITF9LGEoe2tleWJvYXJkOntlbmFibGVkOiExLG9ubHlJblZpZXdwb3J0OiEwLHBhZ2VVcERvd246ITB9fSksaSgiaW5pdCIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMua2V5Ym9hcmQuZW5hYmxlZCYmZCgpfSkpLGkoImRlc3Ryb3kiLChmdW5jdGlvbigpe3Qua2V5Ym9hcmQuZW5hYmxlZCYmdSgpfSkpLE9iamVjdC5hc3NpZ24odC5rZXlib2FyZCx7ZW5hYmxlOmQsZGlzYWJsZTp1fSl9LGZ1bmN0aW9uKGUpe3ZhciB0LGE9ZS5zd2lwZXIsbj1lLmV4dGVuZFBhcmFtcyxpPWUub24scz1lLmVtaXQsbz1yKCk7bih7bW91c2V3aGVlbDp7ZW5hYmxlZDohMSxyZWxlYXNlT25FZGdlczohMSxpbnZlcnQ6ITEsZm9yY2VUb0F4aXM6ITEsc2Vuc2l0aXZpdHk6MSxldmVudHNUYXJnZXQ6ImNvbnRhaW5lciIsdGhyZXNob2xkRGVsdGE6bnVsbCx0aHJlc2hvbGRUaW1lOm51bGx9fSksYS5tb3VzZXdoZWVsPXtlbmFibGVkOiExfTt2YXIgbCxjPWsoKSxkPVtdO2Z1bmN0aW9uIHUoKXthLmVuYWJsZWQmJihhLm1vdXNlRW50ZXJlZD0hMCl9ZnVuY3Rpb24gcCgpe2EuZW5hYmxlZCYmKGEubW91c2VFbnRlcmVkPSExKX1mdW5jdGlvbiBmKGUpe3JldHVybiEoYS5wYXJhbXMubW91c2V3aGVlbC50aHJlc2hvbGREZWx0YSYmZS5kZWx0YTxhLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZERlbHRhfHxhLnBhcmFtcy5tb3VzZXdoZWVsLnRocmVzaG9sZFRpbWUmJmsoKS1jPGEucGFyYW1zLm1vdXNld2hlZWwudGhyZXNob2xkVGltZXx8IShlLmRlbHRhPj02JiZrKCktYzw2MCkmJihlLmRpcmVjdGlvbjwwP2EuaXNFbmQmJiFhLnBhcmFtcy5sb29wfHxhLmFuaW1hdGluZ3x8KGEuc2xpZGVOZXh0KCkscygic2Nyb2xsIixlLnJhdykpOmEuaXNCZWdpbm5pbmcmJiFhLnBhcmFtcy5sb29wfHxhLmFuaW1hdGluZ3x8KGEuc2xpZGVQcmV2KCkscygic2Nyb2xsIixlLnJhdykpLGM9KG5ldyBvLkRhdGUpLmdldFRpbWUoKSwxKSl9ZnVuY3Rpb24gdihlKXt2YXIgbj1lO2lmKGEuZW5hYmxlZCl7dmFyIGk9YS5wYXJhbXMubW91c2V3aGVlbDthLnBhcmFtcy5jc3NNb2RlJiZuLnByZXZlbnREZWZhdWx0KCk7dmFyIHI9YS4kZWw7aWYoImNvbnRhaW5lciIhPT1hLnBhcmFtcy5tb3VzZXdoZWVsLmV2ZW50c1RhcmdldCYmKHI9bShhLnBhcmFtcy5tb3VzZXdoZWVsLmV2ZW50c1RhcmdldCkpLCFhLm1vdXNlRW50ZXJlZCYmIXJbMF0uY29udGFpbnMobi50YXJnZXQpJiYhaS5yZWxlYXNlT25FZGdlcylyZXR1cm4hMDtuLm9yaWdpbmFsRXZlbnQmJihuPW4ub3JpZ2luYWxFdmVudCk7dmFyIG89MCxjPWEucnRsVHJhbnNsYXRlPy0xOjEsdT1mdW5jdGlvbihlKXt2YXIgdD0wLGE9MCxuPTAsaT0wO3JldHVybiJkZXRhaWwiaW4gZSYmKGE9ZS5kZXRhaWwpLCJ3aGVlbERlbHRhImluIGUmJihhPS1lLndoZWVsRGVsdGEvMTIwKSwid2hlZWxEZWx0YVkiaW4gZSYmKGE9LWUud2hlZWxEZWx0YVkvMTIwKSwid2hlZWxEZWx0YVgiaW4gZSYmKHQ9LWUud2hlZWxEZWx0YVgvMTIwKSwiYXhpcyJpbiBlJiZlLmF4aXM9PT1lLkhPUklaT05UQUxfQVhJUyYmKHQ9YSxhPTApLG49MTAqdCxpPTEwKmEsImRlbHRhWSJpbiBlJiYoaT1lLmRlbHRhWSksImRlbHRhWCJpbiBlJiYobj1lLmRlbHRhWCksZS5zaGlmdEtleSYmIW4mJihuPWksaT0wKSwobnx8aSkmJmUuZGVsdGFNb2RlJiYoMT09PWUuZGVsdGFNb2RlPyhuKj00MCxpKj00MCk6KG4qPTgwMCxpKj04MDApKSxuJiYhdCYmKHQ9bjwxPy0xOjEpLGkmJiFhJiYoYT1pPDE/LTE6MSkse3NwaW5YOnQsc3Bpblk6YSxwaXhlbFg6bixwaXhlbFk6aX19KG4pO2lmKGkuZm9yY2VUb0F4aXMpaWYoYS5pc0hvcml6b250YWwoKSl7aWYoIShNYXRoLmFicyh1LnBpeGVsWCk+TWF0aC5hYnModS5waXhlbFkpKSlyZXR1cm4hMDtvPS11LnBpeGVsWCpjfWVsc2V7aWYoIShNYXRoLmFicyh1LnBpeGVsWSk+TWF0aC5hYnModS5waXhlbFgpKSlyZXR1cm4hMDtvPS11LnBpeGVsWX1lbHNlIG89TWF0aC5hYnModS5waXhlbFgpPk1hdGguYWJzKHUucGl4ZWxZKT8tdS5waXhlbFgqYzotdS5waXhlbFk7aWYoMD09PW8pcmV0dXJuITA7aS5pbnZlcnQmJihvPS1vKTt2YXIgcD1hLmdldFRyYW5zbGF0ZSgpK28qaS5zZW5zaXRpdml0eTtpZihwPj1hLm1pblRyYW5zbGF0ZSgpJiYocD1hLm1pblRyYW5zbGF0ZSgpKSxwPD1hLm1heFRyYW5zbGF0ZSgpJiYocD1hLm1heFRyYW5zbGF0ZSgpKSwoISFhLnBhcmFtcy5sb29wfHwhKHA9PT1hLm1pblRyYW5zbGF0ZSgpfHxwPT09YS5tYXhUcmFuc2xhdGUoKSkpJiZhLnBhcmFtcy5uZXN0ZWQmJm4uc3RvcFByb3BhZ2F0aW9uKCksYS5wYXJhbXMuZnJlZU1vZGUmJmEucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQpe3ZhciB2PXt0aW1lOmsoKSxkZWx0YTpNYXRoLmFicyhvKSxkaXJlY3Rpb246TWF0aC5zaWduKG8pfSxoPWwmJnYudGltZTxsLnRpbWUrNTAwJiZ2LmRlbHRhPD1sLmRlbHRhJiZ2LmRpcmVjdGlvbj09PWwuZGlyZWN0aW9uO2lmKCFoKXtsPXZvaWQgMCxhLnBhcmFtcy5sb29wJiZhLmxvb3BGaXgoKTt2YXIgZz1hLmdldFRyYW5zbGF0ZSgpK28qaS5zZW5zaXRpdml0eSxiPWEuaXNCZWdpbm5pbmcseT1hLmlzRW5kO2lmKGc+PWEubWluVHJhbnNsYXRlKCkmJihnPWEubWluVHJhbnNsYXRlKCkpLGc8PWEubWF4VHJhbnNsYXRlKCkmJihnPWEubWF4VHJhbnNsYXRlKCkpLGEuc2V0VHJhbnNpdGlvbigwKSxhLnNldFRyYW5zbGF0ZShnKSxhLnVwZGF0ZVByb2dyZXNzKCksYS51cGRhdGVBY3RpdmVJbmRleCgpLGEudXBkYXRlU2xpZGVzQ2xhc3NlcygpLCghYiYmYS5pc0JlZ2lubmluZ3x8IXkmJmEuaXNFbmQpJiZhLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSxhLnBhcmFtcy5mcmVlTW9kZS5zdGlja3kpe2NsZWFyVGltZW91dCh0KSx0PXZvaWQgMCxkLmxlbmd0aD49MTUmJmQuc2hpZnQoKTt2YXIgdz1kLmxlbmd0aD9kW2QubGVuZ3RoLTFdOnZvaWQgMCx4PWRbMF07aWYoZC5wdXNoKHYpLHcmJih2LmRlbHRhPncuZGVsdGF8fHYuZGlyZWN0aW9uIT09dy5kaXJlY3Rpb24pKWQuc3BsaWNlKDApO2Vsc2UgaWYoZC5sZW5ndGg+PTE1JiZ2LnRpbWUteC50aW1lPDUwMCYmeC5kZWx0YS12LmRlbHRhPj0xJiZ2LmRlbHRhPD02KXt2YXIgRT1vPjA/Ljg6LjI7bD12LGQuc3BsaWNlKDApLHQ9QygoZnVuY3Rpb24oKXthLnNsaWRlVG9DbG9zZXN0KGEucGFyYW1zLnNwZWVkLCEwLHZvaWQgMCxFKX0pLDApfXR8fCh0PUMoKGZ1bmN0aW9uKCl7bD12LGQuc3BsaWNlKDApLGEuc2xpZGVUb0Nsb3Nlc3QoYS5wYXJhbXMuc3BlZWQsITAsdm9pZCAwLC41KX0pLDUwMCkpfWlmKGh8fHMoInNjcm9sbCIsbiksYS5wYXJhbXMuYXV0b3BsYXkmJmEucGFyYW1zLmF1dG9wbGF5RGlzYWJsZU9uSW50ZXJhY3Rpb24mJmEuYXV0b3BsYXkuc3RvcCgpLGc9PT1hLm1pblRyYW5zbGF0ZSgpfHxnPT09YS5tYXhUcmFuc2xhdGUoKSlyZXR1cm4hMH19ZWxzZXt2YXIgUz17dGltZTprKCksZGVsdGE6TWF0aC5hYnMobyksZGlyZWN0aW9uOk1hdGguc2lnbihvKSxyYXc6ZX07ZC5sZW5ndGg+PTImJmQuc2hpZnQoKTt2YXIgVD1kLmxlbmd0aD9kW2QubGVuZ3RoLTFdOnZvaWQgMDtpZihkLnB1c2goUyksVD8oUy5kaXJlY3Rpb24hPT1ULmRpcmVjdGlvbnx8Uy5kZWx0YT5ULmRlbHRhfHxTLnRpbWU+VC50aW1lKzE1MCkmJmYoUyk6ZihTKSxmdW5jdGlvbihlKXt2YXIgdD1hLnBhcmFtcy5tb3VzZXdoZWVsO2lmKGUuZGlyZWN0aW9uPDApe2lmKGEuaXNFbmQmJiFhLnBhcmFtcy5sb29wJiZ0LnJlbGVhc2VPbkVkZ2VzKXJldHVybiEwfWVsc2UgaWYoYS5pc0JlZ2lubmluZyYmIWEucGFyYW1zLmxvb3AmJnQucmVsZWFzZU9uRWRnZXMpcmV0dXJuITA7cmV0dXJuITF9KFMpKXJldHVybiEwfXJldHVybiBuLnByZXZlbnREZWZhdWx0P24ucHJldmVudERlZmF1bHQoKTpuLnJldHVyblZhbHVlPSExLCExfX1mdW5jdGlvbiBoKGUpe3ZhciB0PWEuJGVsOyJjb250YWluZXIiIT09YS5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQmJih0PW0oYS5wYXJhbXMubW91c2V3aGVlbC5ldmVudHNUYXJnZXQpKSx0W2VdKCJtb3VzZWVudGVyIix1KSx0W2VdKCJtb3VzZWxlYXZlIixwKSx0W2VdKCJ3aGVlbCIsdil9ZnVuY3Rpb24gZygpe3JldHVybiBhLnBhcmFtcy5jc3NNb2RlPyhhLndyYXBwZXJFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdiksITApOiFhLm1vdXNld2hlZWwuZW5hYmxlZCYmKGgoIm9uIiksYS5tb3VzZXdoZWVsLmVuYWJsZWQ9ITAsITApfWZ1bmN0aW9uIGIoKXtyZXR1cm4gYS5wYXJhbXMuY3NzTW9kZT8oYS53cmFwcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCx2KSwhMCk6ISFhLm1vdXNld2hlZWwuZW5hYmxlZCYmKGgoIm9mZiIpLGEubW91c2V3aGVlbC5lbmFibGVkPSExLCEwKX1pKCJpbml0IiwoZnVuY3Rpb24oKXshYS5wYXJhbXMubW91c2V3aGVlbC5lbmFibGVkJiZhLnBhcmFtcy5jc3NNb2RlJiZiKCksYS5wYXJhbXMubW91c2V3aGVlbC5lbmFibGVkJiZnKCl9KSksaSgiZGVzdHJveSIsKGZ1bmN0aW9uKCl7YS5wYXJhbXMuY3NzTW9kZSYmZygpLGEubW91c2V3aGVlbC5lbmFibGVkJiZiKCl9KSksT2JqZWN0LmFzc2lnbihhLm1vdXNld2hlZWwse2VuYWJsZTpnLGRpc2FibGU6Yn0pfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcixhPWUuZXh0ZW5kUGFyYW1zLG49ZS5vbixpPWUuZW1pdDtmdW5jdGlvbiByKGUpe3ZhciBhO3JldHVybiBlJiYoYT1tKGUpLHQucGFyYW1zLnVuaXF1ZU5hdkVsZW1lbnRzJiYic3RyaW5nIj09dHlwZW9mIGUmJmEubGVuZ3RoPjEmJjE9PT10LiRlbC5maW5kKGUpLmxlbmd0aCYmKGE9dC4kZWwuZmluZChlKSkpLGF9ZnVuY3Rpb24gcyhlLGEpe3ZhciBuPXQucGFyYW1zLm5hdmlnYXRpb247ZSYmZS5sZW5ndGg+MCYmKGVbYT8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJdKG4uZGlzYWJsZWRDbGFzcyksZVswXSYmIkJVVFRPTiI9PT1lWzBdLnRhZ05hbWUmJihlWzBdLmRpc2FibGVkPWEpLHQucGFyYW1zLndhdGNoT3ZlcmZsb3cmJnQuZW5hYmxlZCYmZVt0LmlzTG9ja2VkPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0obi5sb2NrQ2xhc3MpKX1mdW5jdGlvbiBvKCl7aWYoIXQucGFyYW1zLmxvb3Ape3ZhciBlPXQubmF2aWdhdGlvbixhPWUuJG5leHRFbDtzKGUuJHByZXZFbCx0LmlzQmVnaW5uaW5nKSxzKGEsdC5pc0VuZCl9fWZ1bmN0aW9uIGwoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHQuaXNCZWdpbm5pbmcmJiF0LnBhcmFtcy5sb29wfHx0LnNsaWRlUHJldigpfWZ1bmN0aW9uIGMoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHQuaXNFbmQmJiF0LnBhcmFtcy5sb29wfHx0LnNsaWRlTmV4dCgpfWZ1bmN0aW9uIGQoKXt2YXIgZT10LnBhcmFtcy5uYXZpZ2F0aW9uO2lmKHQucGFyYW1zLm5hdmlnYXRpb249USh0LHQub3JpZ2luYWxQYXJhbXMubmF2aWdhdGlvbix0LnBhcmFtcy5uYXZpZ2F0aW9uLHtuZXh0RWw6InN3aXBlci1idXR0b24tbmV4dCIscHJldkVsOiJzd2lwZXItYnV0dG9uLXByZXYifSksZS5uZXh0RWx8fGUucHJldkVsKXt2YXIgYT1yKGUubmV4dEVsKSxuPXIoZS5wcmV2RWwpO2EmJmEubGVuZ3RoPjAmJmEub24oImNsaWNrIixjKSxuJiZuLmxlbmd0aD4wJiZuLm9uKCJjbGljayIsbCksT2JqZWN0LmFzc2lnbih0Lm5hdmlnYXRpb24seyRuZXh0RWw6YSxuZXh0RWw6YSYmYVswXSwkcHJldkVsOm4scHJldkVsOm4mJm5bMF19KSx0LmVuYWJsZWR8fChhJiZhLmFkZENsYXNzKGUubG9ja0NsYXNzKSxuJiZuLmFkZENsYXNzKGUubG9ja0NsYXNzKSl9fWZ1bmN0aW9uIHUoKXt2YXIgZT10Lm5hdmlnYXRpb24sYT1lLiRuZXh0RWwsbj1lLiRwcmV2RWw7YSYmYS5sZW5ndGgmJihhLm9mZigiY2xpY2siLGMpLGEucmVtb3ZlQ2xhc3ModC5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzKSksbiYmbi5sZW5ndGgmJihuLm9mZigiY2xpY2siLGwpLG4ucmVtb3ZlQ2xhc3ModC5wYXJhbXMubmF2aWdhdGlvbi5kaXNhYmxlZENsYXNzKSl9YSh7bmF2aWdhdGlvbjp7bmV4dEVsOm51bGwscHJldkVsOm51bGwsaGlkZU9uQ2xpY2s6ITEsZGlzYWJsZWRDbGFzczoic3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCIsaGlkZGVuQ2xhc3M6InN3aXBlci1idXR0b24taGlkZGVuIixsb2NrQ2xhc3M6InN3aXBlci1idXR0b24tbG9jayJ9fSksdC5uYXZpZ2F0aW9uPXtuZXh0RWw6bnVsbCwkbmV4dEVsOm51bGwscHJldkVsOm51bGwsJHByZXZFbDpudWxsfSxuKCJpbml0IiwoZnVuY3Rpb24oKXtkKCksbygpfSkpLG4oInRvRWRnZSBmcm9tRWRnZSBsb2NrIHVubG9jayIsKGZ1bmN0aW9uKCl7bygpfSkpLG4oImRlc3Ryb3kiLChmdW5jdGlvbigpe3UoKX0pKSxuKCJlbmFibGUgZGlzYWJsZSIsKGZ1bmN0aW9uKCl7dmFyIGU9dC5uYXZpZ2F0aW9uLGE9ZS4kbmV4dEVsLG49ZS4kcHJldkVsO2EmJmFbdC5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0odC5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpLG4mJm5bdC5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0odC5wYXJhbXMubmF2aWdhdGlvbi5sb2NrQ2xhc3MpfSkpLG4oImNsaWNrIiwoZnVuY3Rpb24oZSxhKXt2YXIgbj10Lm5hdmlnYXRpb24scj1uLiRuZXh0RWwscz1uLiRwcmV2RWwsbz1hLnRhcmdldDtpZih0LnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGVPbkNsaWNrJiYhbShvKS5pcyhzKSYmIW0obykuaXMocikpe2lmKHQucGFnaW5hdGlvbiYmdC5wYXJhbXMucGFnaW5hdGlvbiYmdC5wYXJhbXMucGFnaW5hdGlvbi5jbGlja2FibGUmJih0LnBhZ2luYXRpb24uZWw9PT1vfHx0LnBhZ2luYXRpb24uZWwuY29udGFpbnMobykpKXJldHVybjt2YXIgbDtyP2w9ci5oYXNDbGFzcyh0LnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGRlbkNsYXNzKTpzJiYobD1zLmhhc0NsYXNzKHQucGFyYW1zLm5hdmlnYXRpb24uaGlkZGVuQ2xhc3MpKSxpKCEwPT09bD8ibmF2aWdhdGlvblNob3ciOiJuYXZpZ2F0aW9uSGlkZSIpLHImJnIudG9nZ2xlQ2xhc3ModC5wYXJhbXMubmF2aWdhdGlvbi5oaWRkZW5DbGFzcykscyYmcy50b2dnbGVDbGFzcyh0LnBhcmFtcy5uYXZpZ2F0aW9uLmhpZGRlbkNsYXNzKX19KSksT2JqZWN0LmFzc2lnbih0Lm5hdmlnYXRpb24se3VwZGF0ZTpvLGluaXQ6ZCxkZXN0cm95OnV9KX0sZnVuY3Rpb24oZSl7dmFyIHQsYT1lLnN3aXBlcixuPWUuZXh0ZW5kUGFyYW1zLGk9ZS5vbixyPWUuZW1pdCxzPSJzd2lwZXItcGFnaW5hdGlvbiI7bih7cGFnaW5hdGlvbjp7ZWw6bnVsbCxidWxsZXRFbGVtZW50OiJzcGFuIixjbGlja2FibGU6ITEsaGlkZU9uQ2xpY2s6ITEscmVuZGVyQnVsbGV0Om51bGwscmVuZGVyUHJvZ3Jlc3NiYXI6bnVsbCxyZW5kZXJGcmFjdGlvbjpudWxsLHJlbmRlckN1c3RvbTpudWxsLHByb2dyZXNzYmFyT3Bwb3NpdGU6ITEsdHlwZToiYnVsbGV0cyIsZHluYW1pY0J1bGxldHM6ITEsZHluYW1pY01haW5CdWxsZXRzOjEsZm9ybWF0RnJhY3Rpb25DdXJyZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlfSxmb3JtYXRGcmFjdGlvblRvdGFsOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxidWxsZXRDbGFzczoiIi5jb25jYXQocywiLWJ1bGxldCIpLGJ1bGxldEFjdGl2ZUNsYXNzOiIiLmNvbmNhdChzLCItYnVsbGV0LWFjdGl2ZSIpLG1vZGlmaWVyQ2xhc3M6IiIuY29uY2F0KHMsIi0iKSxjdXJyZW50Q2xhc3M6IiIuY29uY2F0KHMsIi1jdXJyZW50IiksdG90YWxDbGFzczoiIi5jb25jYXQocywiLXRvdGFsIiksaGlkZGVuQ2xhc3M6IiIuY29uY2F0KHMsIi1oaWRkZW4iKSxwcm9ncmVzc2JhckZpbGxDbGFzczoiIi5jb25jYXQocywiLXByb2dyZXNzYmFyLWZpbGwiKSxwcm9ncmVzc2Jhck9wcG9zaXRlQ2xhc3M6IiIuY29uY2F0KHMsIi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSIpLGNsaWNrYWJsZUNsYXNzOiIiLmNvbmNhdChzLCItY2xpY2thYmxlIiksbG9ja0NsYXNzOiIiLmNvbmNhdChzLCItbG9jayIpLGhvcml6b250YWxDbGFzczoiIi5jb25jYXQocywiLWhvcml6b250YWwiKSx2ZXJ0aWNhbENsYXNzOiIiLmNvbmNhdChzLCItdmVydGljYWwiKX19KSxhLnBhZ2luYXRpb249e2VsOm51bGwsJGVsOm51bGwsYnVsbGV0czpbXX07dmFyIG89MDtmdW5jdGlvbiBsKCl7cmV0dXJuIWEucGFyYW1zLnBhZ2luYXRpb24uZWx8fCFhLnBhZ2luYXRpb24uZWx8fCFhLnBhZ2luYXRpb24uJGVsfHwwPT09YS5wYWdpbmF0aW9uLiRlbC5sZW5ndGh9ZnVuY3Rpb24gYyhlLHQpe3ZhciBuPWEucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0QWN0aXZlQ2xhc3M7ZVt0XSgpLmFkZENsYXNzKCIiLmNvbmNhdChuLCItIikuY29uY2F0KHQpKVt0XSgpLmFkZENsYXNzKCIiLmNvbmNhdChuLCItIikuY29uY2F0KHQsIi0iKS5jb25jYXQodCkpfWZ1bmN0aW9uIGQoKXt2YXIgZT1hLnJ0bCxuPWEucGFyYW1zLnBhZ2luYXRpb247aWYoIWwoKSl7dmFyIGkscz1hLnZpcnR1YWwmJmEucGFyYW1zLnZpcnR1YWwuZW5hYmxlZD9hLnZpcnR1YWwuc2xpZGVzLmxlbmd0aDphLnNsaWRlcy5sZW5ndGgsZD1hLnBhZ2luYXRpb24uJGVsLHU9YS5wYXJhbXMubG9vcD9NYXRoLmNlaWwoKHMtMiphLmxvb3BlZFNsaWRlcykvYS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApOmEuc25hcEdyaWQubGVuZ3RoO2lmKGEucGFyYW1zLmxvb3A/KChpPU1hdGguY2VpbCgoYS5hY3RpdmVJbmRleC1hLmxvb3BlZFNsaWRlcykvYS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApKT5zLTEtMiphLmxvb3BlZFNsaWRlcyYmKGktPXMtMiphLmxvb3BlZFNsaWRlcyksaT51LTEmJihpLT11KSxpPDAmJiJidWxsZXRzIiE9PWEucGFyYW1zLnBhZ2luYXRpb25UeXBlJiYoaT11K2kpKTppPXZvaWQgMCE9PWEuc25hcEluZGV4P2Euc25hcEluZGV4OmEuYWN0aXZlSW5kZXh8fDAsImJ1bGxldHMiPT09bi50eXBlJiZhLnBhZ2luYXRpb24uYnVsbGV0cyYmYS5wYWdpbmF0aW9uLmJ1bGxldHMubGVuZ3RoPjApe3ZhciBwLGYsdixoPWEucGFnaW5hdGlvbi5idWxsZXRzO2lmKG4uZHluYW1pY0J1bGxldHMmJih0PWguZXEoMClbYS5pc0hvcml6b250YWwoKT8ib3V0ZXJXaWR0aCI6Im91dGVySGVpZ2h0Il0oITApLGQuY3NzKGEuaXNIb3Jpem9udGFsKCk/IndpZHRoIjoiaGVpZ2h0Iix0KihuLmR5bmFtaWNNYWluQnVsbGV0cys0KSsicHgiKSxuLmR5bmFtaWNNYWluQnVsbGV0cz4xJiZ2b2lkIDAhPT1hLnByZXZpb3VzSW5kZXgmJigobys9aS1hLnByZXZpb3VzSW5kZXgpPm4uZHluYW1pY01haW5CdWxsZXRzLTE/bz1uLmR5bmFtaWNNYWluQnVsbGV0cy0xOm88MCYmKG89MCkpLHY9KChmPShwPWktbykrKE1hdGgubWluKGgubGVuZ3RoLG4uZHluYW1pY01haW5CdWxsZXRzKS0xKSkrcCkvMiksaC5yZW1vdmVDbGFzcyhbIiIsIi1uZXh0IiwiLW5leHQtbmV4dCIsIi1wcmV2IiwiLXByZXYtcHJldiIsIi1tYWluIl0ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQobi5idWxsZXRBY3RpdmVDbGFzcykuY29uY2F0KGUpfSkpLmpvaW4oIiAiKSksZC5sZW5ndGg+MSloLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PW0oZSksYT10LmluZGV4KCk7YT09PWkmJnQuYWRkQ2xhc3Mobi5idWxsZXRBY3RpdmVDbGFzcyksbi5keW5hbWljQnVsbGV0cyYmKGE+PXAmJmE8PWYmJnQuYWRkQ2xhc3MoIiIuY29uY2F0KG4uYnVsbGV0QWN0aXZlQ2xhc3MsIi1tYWluIikpLGE9PT1wJiZjKHQsInByZXYiKSxhPT09ZiYmYyh0LCJuZXh0IikpfSkpO2Vsc2V7dmFyIGc9aC5lcShpKSxiPWcuaW5kZXgoKTtpZihnLmFkZENsYXNzKG4uYnVsbGV0QWN0aXZlQ2xhc3MpLG4uZHluYW1pY0J1bGxldHMpe2Zvcih2YXIgeT1oLmVxKHApLHc9aC5lcShmKSx4PXA7eDw9Zjt4Kz0xKWguZXEoeCkuYWRkQ2xhc3MoIiIuY29uY2F0KG4uYnVsbGV0QWN0aXZlQ2xhc3MsIi1tYWluIikpO2lmKGEucGFyYW1zLmxvb3ApaWYoYj49aC5sZW5ndGgtbi5keW5hbWljTWFpbkJ1bGxldHMpe2Zvcih2YXIgRT1uLmR5bmFtaWNNYWluQnVsbGV0cztFPj0wO0UtPTEpaC5lcShoLmxlbmd0aC1FKS5hZGRDbGFzcygiIi5jb25jYXQobi5idWxsZXRBY3RpdmVDbGFzcywiLW1haW4iKSk7aC5lcShoLmxlbmd0aC1uLmR5bmFtaWNNYWluQnVsbGV0cy0xKS5hZGRDbGFzcygiIi5jb25jYXQobi5idWxsZXRBY3RpdmVDbGFzcywiLXByZXYiKSl9ZWxzZSBjKHksInByZXYiKSxjKHcsIm5leHQiKTtlbHNlIGMoeSwicHJldiIpLGModywibmV4dCIpfX1pZihuLmR5bmFtaWNCdWxsZXRzKXt2YXIgUz1NYXRoLm1pbihoLmxlbmd0aCxuLmR5bmFtaWNNYWluQnVsbGV0cys0KSxUPSh0KlMtdCkvMi12KnQsQz1lPyJyaWdodCI6ImxlZnQiO2guY3NzKGEuaXNIb3Jpem9udGFsKCk/QzoidG9wIiwiIi5jb25jYXQoVCwicHgiKSl9fWlmKCJmcmFjdGlvbiI9PT1uLnR5cGUmJihkLmZpbmQoSihuLmN1cnJlbnRDbGFzcykpLnRleHQobi5mb3JtYXRGcmFjdGlvbkN1cnJlbnQoaSsxKSksZC5maW5kKEoobi50b3RhbENsYXNzKSkudGV4dChuLmZvcm1hdEZyYWN0aW9uVG90YWwodSkpKSwicHJvZ3Jlc3NiYXIiPT09bi50eXBlKXt2YXIgaztrPW4ucHJvZ3Jlc3NiYXJPcHBvc2l0ZT9hLmlzSG9yaXpvbnRhbCgpPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiOmEuaXNIb3Jpem9udGFsKCk/Imhvcml6b250YWwiOiJ2ZXJ0aWNhbCI7dmFyIE09KGkrMSkvdSxQPTEsQT0xOyJob3Jpem9udGFsIj09PWs/UD1NOkE9TSxkLmZpbmQoSihuLnByb2dyZXNzYmFyRmlsbENsYXNzKSkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGVYKCIuY29uY2F0KFAsIikgc2NhbGVZKCIpLmNvbmNhdChBLCIpIikpLnRyYW5zaXRpb24oYS5wYXJhbXMuc3BlZWQpfSJjdXN0b20iPT09bi50eXBlJiZuLnJlbmRlckN1c3RvbT8oZC5odG1sKG4ucmVuZGVyQ3VzdG9tKGEsaSsxLHUpKSxyKCJwYWdpbmF0aW9uUmVuZGVyIixkWzBdKSk6cigicGFnaW5hdGlvblVwZGF0ZSIsZFswXSksYS5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmYS5lbmFibGVkJiZkW2EuaXNMb2NrZWQ/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXShuLmxvY2tDbGFzcyl9fWZ1bmN0aW9uIHUoKXt2YXIgZT1hLnBhcmFtcy5wYWdpbmF0aW9uO2lmKCFsKCkpe3ZhciB0PWEudmlydHVhbCYmYS5wYXJhbXMudmlydHVhbC5lbmFibGVkP2EudmlydHVhbC5zbGlkZXMubGVuZ3RoOmEuc2xpZGVzLmxlbmd0aCxuPWEucGFnaW5hdGlvbi4kZWwsaT0iIjtpZigiYnVsbGV0cyI9PT1lLnR5cGUpe3ZhciBzPWEucGFyYW1zLmxvb3A/TWF0aC5jZWlsKCh0LTIqYS5sb29wZWRTbGlkZXMpL2EucGFyYW1zLnNsaWRlc1Blckdyb3VwKTphLnNuYXBHcmlkLmxlbmd0aDthLnBhcmFtcy5mcmVlTW9kZSYmYS5wYXJhbXMuZnJlZU1vZGUuZW5hYmxlZCYmIWEucGFyYW1zLmxvb3AmJnM+dCYmKHM9dCk7Zm9yKHZhciBvPTA7bzxzO28rPTEpZS5yZW5kZXJCdWxsZXQ/aSs9ZS5yZW5kZXJCdWxsZXQuY2FsbChhLG8sZS5idWxsZXRDbGFzcyk6aSs9IjwiLmNvbmNhdChlLmJ1bGxldEVsZW1lbnQsJyBjbGFzcz0iJykuY29uY2F0KGUuYnVsbGV0Q2xhc3MsJyI+PC8nKS5jb25jYXQoZS5idWxsZXRFbGVtZW50LCI+Iik7bi5odG1sKGkpLGEucGFnaW5hdGlvbi5idWxsZXRzPW4uZmluZChKKGUuYnVsbGV0Q2xhc3MpKX0iZnJhY3Rpb24iPT09ZS50eXBlJiYoaT1lLnJlbmRlckZyYWN0aW9uP2UucmVuZGVyRnJhY3Rpb24uY2FsbChhLGUuY3VycmVudENsYXNzLGUudG90YWxDbGFzcyk6JzxzcGFuIGNsYXNzPSInLmNvbmNhdChlLmN1cnJlbnRDbGFzcywnIj48L3NwYW4+IC8gPHNwYW4gY2xhc3M9IicpLmNvbmNhdChlLnRvdGFsQ2xhc3MsJyI+PC9zcGFuPicpLG4uaHRtbChpKSksInByb2dyZXNzYmFyIj09PWUudHlwZSYmKGk9ZS5yZW5kZXJQcm9ncmVzc2Jhcj9lLnJlbmRlclByb2dyZXNzYmFyLmNhbGwoYSxlLnByb2dyZXNzYmFyRmlsbENsYXNzKTonPHNwYW4gY2xhc3M9IicuY29uY2F0KGUucHJvZ3Jlc3NiYXJGaWxsQ2xhc3MsJyI+PC9zcGFuPicpLG4uaHRtbChpKSksImN1c3RvbSIhPT1lLnR5cGUmJnIoInBhZ2luYXRpb25SZW5kZXIiLGEucGFnaW5hdGlvbi4kZWxbMF0pfX1mdW5jdGlvbiBwKCl7YS5wYXJhbXMucGFnaW5hdGlvbj1RKGEsYS5vcmlnaW5hbFBhcmFtcy5wYWdpbmF0aW9uLGEucGFyYW1zLnBhZ2luYXRpb24se2VsOiJzd2lwZXItcGFnaW5hdGlvbiJ9KTt2YXIgZT1hLnBhcmFtcy5wYWdpbmF0aW9uO2lmKGUuZWwpe3ZhciB0PW0oZS5lbCk7MCE9PXQubGVuZ3RoJiYoYS5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMmJiJzdHJpbmciPT10eXBlb2YgZS5lbCYmdC5sZW5ndGg+MSYmKHQ9YS4kZWwuZmluZChlLmVsKSkubGVuZ3RoPjEmJih0PXQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gbShlKS5wYXJlbnRzKCIuc3dpcGVyIilbMF09PT1hLmVsfSkpKSwiYnVsbGV0cyI9PT1lLnR5cGUmJmUuY2xpY2thYmxlJiZ0LmFkZENsYXNzKGUuY2xpY2thYmxlQ2xhc3MpLHQuYWRkQ2xhc3MoZS5tb2RpZmllckNsYXNzK2UudHlwZSksdC5hZGRDbGFzcyhlLm1vZGlmaWVyQ2xhc3MrYS5wYXJhbXMuZGlyZWN0aW9uKSwiYnVsbGV0cyI9PT1lLnR5cGUmJmUuZHluYW1pY0J1bGxldHMmJih0LmFkZENsYXNzKCIiLmNvbmNhdChlLm1vZGlmaWVyQ2xhc3MpLmNvbmNhdChlLnR5cGUsIi1keW5hbWljIikpLG89MCxlLmR5bmFtaWNNYWluQnVsbGV0czwxJiYoZS5keW5hbWljTWFpbkJ1bGxldHM9MSkpLCJwcm9ncmVzc2JhciI9PT1lLnR5cGUmJmUucHJvZ3Jlc3NiYXJPcHBvc2l0ZSYmdC5hZGRDbGFzcyhlLnByb2dyZXNzYmFyT3Bwb3NpdGVDbGFzcyksZS5jbGlja2FibGUmJnQub24oImNsaWNrIixKKGUuYnVsbGV0Q2xhc3MpLChmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9bSh0aGlzKS5pbmRleCgpKmEucGFyYW1zLnNsaWRlc1Blckdyb3VwO2EucGFyYW1zLmxvb3AmJih0Kz1hLmxvb3BlZFNsaWRlcyksYS5zbGlkZVRvKHQpfSkpLE9iamVjdC5hc3NpZ24oYS5wYWdpbmF0aW9uLHskZWw6dCxlbDp0WzBdfSksYS5lbmFibGVkfHx0LmFkZENsYXNzKGUubG9ja0NsYXNzKSl9fWZ1bmN0aW9uIGYoKXt2YXIgZT1hLnBhcmFtcy5wYWdpbmF0aW9uO2lmKCFsKCkpe3ZhciB0PWEucGFnaW5hdGlvbi4kZWw7dC5yZW1vdmVDbGFzcyhlLmhpZGRlbkNsYXNzKSx0LnJlbW92ZUNsYXNzKGUubW9kaWZpZXJDbGFzcytlLnR5cGUpLHQucmVtb3ZlQ2xhc3MoZS5tb2RpZmllckNsYXNzK2EucGFyYW1zLmRpcmVjdGlvbiksYS5wYWdpbmF0aW9uLmJ1bGxldHMmJmEucGFnaW5hdGlvbi5idWxsZXRzLnJlbW92ZUNsYXNzJiZhLnBhZ2luYXRpb24uYnVsbGV0cy5yZW1vdmVDbGFzcyhlLmJ1bGxldEFjdGl2ZUNsYXNzKSxlLmNsaWNrYWJsZSYmdC5vZmYoImNsaWNrIixKKGUuYnVsbGV0Q2xhc3MpKX19aSgiaW5pdCIsKGZ1bmN0aW9uKCl7cCgpLHUoKSxkKCl9KSksaSgiYWN0aXZlSW5kZXhDaGFuZ2UiLChmdW5jdGlvbigpeyhhLnBhcmFtcy5sb29wfHx2b2lkIDA9PT1hLnNuYXBJbmRleCkmJmQoKX0pKSxpKCJzbmFwSW5kZXhDaGFuZ2UiLChmdW5jdGlvbigpe2EucGFyYW1zLmxvb3B8fGQoKX0pKSxpKCJzbGlkZXNMZW5ndGhDaGFuZ2UiLChmdW5jdGlvbigpe2EucGFyYW1zLmxvb3AmJih1KCksZCgpKX0pKSxpKCJzbmFwR3JpZExlbmd0aENoYW5nZSIsKGZ1bmN0aW9uKCl7YS5wYXJhbXMubG9vcHx8KHUoKSxkKCkpfSkpLGkoImRlc3Ryb3kiLChmdW5jdGlvbigpe2YoKX0pKSxpKCJlbmFibGUgZGlzYWJsZSIsKGZ1bmN0aW9uKCl7dmFyIGU9YS5wYWdpbmF0aW9uLiRlbDtlJiZlW2EuZW5hYmxlZD8icmVtb3ZlQ2xhc3MiOiJhZGRDbGFzcyJdKGEucGFyYW1zLnBhZ2luYXRpb24ubG9ja0NsYXNzKX0pKSxpKCJsb2NrIHVubG9jayIsKGZ1bmN0aW9uKCl7ZCgpfSkpLGkoImNsaWNrIiwoZnVuY3Rpb24oZSx0KXt2YXIgbj10LnRhcmdldCxpPWEucGFnaW5hdGlvbi4kZWw7aWYoYS5wYXJhbXMucGFnaW5hdGlvbi5lbCYmYS5wYXJhbXMucGFnaW5hdGlvbi5oaWRlT25DbGljayYmaS5sZW5ndGg+MCYmIW0obikuaGFzQ2xhc3MoYS5wYXJhbXMucGFnaW5hdGlvbi5idWxsZXRDbGFzcykpe2lmKGEubmF2aWdhdGlvbiYmKGEubmF2aWdhdGlvbi5uZXh0RWwmJm49PT1hLm5hdmlnYXRpb24ubmV4dEVsfHxhLm5hdmlnYXRpb24ucHJldkVsJiZuPT09YS5uYXZpZ2F0aW9uLnByZXZFbCkpcmV0dXJuO3ZhciBzPWkuaGFzQ2xhc3MoYS5wYXJhbXMucGFnaW5hdGlvbi5oaWRkZW5DbGFzcyk7cighMD09PXM/InBhZ2luYXRpb25TaG93IjoicGFnaW5hdGlvbkhpZGUiKSxpLnRvZ2dsZUNsYXNzKGEucGFyYW1zLnBhZ2luYXRpb24uaGlkZGVuQ2xhc3MpfX0pKSxPYmplY3QuYXNzaWduKGEucGFnaW5hdGlvbix7cmVuZGVyOnUsdXBkYXRlOmQsaW5pdDpwLGRlc3Ryb3k6Zn0pfSxmdW5jdGlvbihlKXt2YXIgdCxhLGkscixzPWUuc3dpcGVyLG89ZS5leHRlbmRQYXJhbXMsbD1lLm9uLGM9ZS5lbWl0LGQ9bigpLHU9ITEscD1udWxsLGY9bnVsbDtmdW5jdGlvbiB2KCl7aWYocy5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZzLnNjcm9sbGJhci5lbCl7dmFyIGU9cy5zY3JvbGxiYXIsdD1zLnJ0bFRyYW5zbGF0ZSxuPXMucHJvZ3Jlc3Mscj1lLiRkcmFnRWwsbz1lLiRlbCxsPXMucGFyYW1zLnNjcm9sbGJhcixjPWEsZD0oaS1hKSpuO3Q/KGQ9LWQpPjA/KGM9YS1kLGQ9MCk6LWQrYT5pJiYoYz1pK2QpOmQ8MD8oYz1hK2QsZD0wKTpkK2E+aSYmKGM9aS1kKSxzLmlzSG9yaXpvbnRhbCgpPyhyLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIi5jb25jYXQoZCwicHgsIDAsIDApIikpLHJbMF0uc3R5bGUud2lkdGg9IiIuY29uY2F0KGMsInB4IikpOihyLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMHB4LCAiLmNvbmNhdChkLCJweCwgMCkiKSksclswXS5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KGMsInB4IikpLGwuaGlkZSYmKGNsZWFyVGltZW91dChwKSxvWzBdLnN0eWxlLm9wYWNpdHk9MSxwPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7b1swXS5zdHlsZS5vcGFjaXR5PTAsby50cmFuc2l0aW9uKDQwMCl9KSwxZTMpKX19ZnVuY3Rpb24gaCgpe2lmKHMucGFyYW1zLnNjcm9sbGJhci5lbCYmcy5zY3JvbGxiYXIuZWwpe3ZhciBlPXMuc2Nyb2xsYmFyLHQ9ZS4kZHJhZ0VsLG49ZS4kZWw7dFswXS5zdHlsZS53aWR0aD0iIix0WzBdLnN0eWxlLmhlaWdodD0iIixpPXMuaXNIb3Jpem9udGFsKCk/blswXS5vZmZzZXRXaWR0aDpuWzBdLm9mZnNldEhlaWdodCxyPXMuc2l6ZS8ocy52aXJ0dWFsU2l6ZStzLnBhcmFtcy5zbGlkZXNPZmZzZXRCZWZvcmUtKHMucGFyYW1zLmNlbnRlcmVkU2xpZGVzP3Muc25hcEdyaWRbMF06MCkpLGE9ImF1dG8iPT09cy5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdTaXplP2kqcjpwYXJzZUludChzLnBhcmFtcy5zY3JvbGxiYXIuZHJhZ1NpemUsMTApLHMuaXNIb3Jpem9udGFsKCk/dFswXS5zdHlsZS53aWR0aD0iIi5jb25jYXQoYSwicHgiKTp0WzBdLnN0eWxlLmhlaWdodD0iIi5jb25jYXQoYSwicHgiKSxuWzBdLnN0eWxlLmRpc3BsYXk9cj49MT8ibm9uZSI6IiIscy5wYXJhbXMuc2Nyb2xsYmFyLmhpZGUmJihuWzBdLnN0eWxlLm9wYWNpdHk9MCkscy5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmcy5lbmFibGVkJiZlLiRlbFtzLmlzTG9ja2VkPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0ocy5wYXJhbXMuc2Nyb2xsYmFyLmxvY2tDbGFzcyl9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHMuaXNIb3Jpem9udGFsKCk/InRvdWNoc3RhcnQiPT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDplLmNsaWVudFg6InRvdWNoc3RhcnQiPT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WTplLmNsaWVudFl9ZnVuY3Rpb24gYihlKXt2YXIgbixyPXMuc2Nyb2xsYmFyLG89cy5ydGxUcmFuc2xhdGUsbD1yLiRlbDtuPShnKGUpLWwub2Zmc2V0KClbcy5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCJdLShudWxsIT09dD90OmEvMikpLyhpLWEpLG49TWF0aC5tYXgoTWF0aC5taW4obiwxKSwwKSxvJiYobj0xLW4pO3ZhciBjPXMubWluVHJhbnNsYXRlKCkrKHMubWF4VHJhbnNsYXRlKCktcy5taW5UcmFuc2xhdGUoKSkqbjtzLnVwZGF0ZVByb2dyZXNzKGMpLHMuc2V0VHJhbnNsYXRlKGMpLHMudXBkYXRlQWN0aXZlSW5kZXgoKSxzLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKX1mdW5jdGlvbiB5KGUpe3ZhciBhPXMucGFyYW1zLnNjcm9sbGJhcixuPXMuc2Nyb2xsYmFyLGk9cy4kd3JhcHBlckVsLHI9bi4kZWwsbz1uLiRkcmFnRWw7dT0hMCx0PWUudGFyZ2V0PT09b1swXXx8ZS50YXJnZXQ9PT1vP2coZSktZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbcy5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCJdOm51bGwsZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksaS50cmFuc2l0aW9uKDEwMCksby50cmFuc2l0aW9uKDEwMCksYihlKSxjbGVhclRpbWVvdXQoZiksci50cmFuc2l0aW9uKDApLGEuaGlkZSYmci5jc3MoIm9wYWNpdHkiLDEpLHMucGFyYW1zLmNzc01vZGUmJnMuJHdyYXBwZXJFbC5jc3MoInNjcm9sbC1zbmFwLXR5cGUiLCJub25lIiksYygic2Nyb2xsYmFyRHJhZ1N0YXJ0IixlKX1mdW5jdGlvbiB3KGUpe3ZhciB0PXMuc2Nyb2xsYmFyLGE9cy4kd3JhcHBlckVsLG49dC4kZWwsaT10LiRkcmFnRWw7dSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITEsYihlKSxhLnRyYW5zaXRpb24oMCksbi50cmFuc2l0aW9uKDApLGkudHJhbnNpdGlvbigwKSxjKCJzY3JvbGxiYXJEcmFnTW92ZSIsZSkpfWZ1bmN0aW9uIHgoZSl7dmFyIHQ9cy5wYXJhbXMuc2Nyb2xsYmFyLGE9cy5zY3JvbGxiYXIsbj1zLiR3cmFwcGVyRWwsaT1hLiRlbDt1JiYodT0hMSxzLnBhcmFtcy5jc3NNb2RlJiYocy4kd3JhcHBlckVsLmNzcygic2Nyb2xsLXNuYXAtdHlwZSIsIiIpLG4udHJhbnNpdGlvbigiIikpLHQuaGlkZSYmKGNsZWFyVGltZW91dChmKSxmPUMoKGZ1bmN0aW9uKCl7aS5jc3MoIm9wYWNpdHkiLDApLGkudHJhbnNpdGlvbig0MDApfSksMWUzKSksYygic2Nyb2xsYmFyRHJhZ0VuZCIsZSksdC5zbmFwT25SZWxlYXNlJiZzLnNsaWRlVG9DbG9zZXN0KCkpfWZ1bmN0aW9uIEUoZSl7dmFyIHQ9cy5zY3JvbGxiYXIsYT1zLnRvdWNoRXZlbnRzVG91Y2gsbj1zLnRvdWNoRXZlbnRzRGVza3RvcCxpPXMucGFyYW1zLHI9cy5zdXBwb3J0LG89dC4kZWxbMF0sbD0hKCFyLnBhc3NpdmVMaXN0ZW5lcnx8IWkucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiExLGNhcHR1cmU6ITF9LGM9ISghci5wYXNzaXZlTGlzdGVuZXJ8fCFpLnBhc3NpdmVMaXN0ZW5lcnMpJiZ7cGFzc2l2ZTohMCxjYXB0dXJlOiExfTtpZihvKXt2YXIgdT0ib24iPT09ZT8iYWRkRXZlbnRMaXN0ZW5lciI6InJlbW92ZUV2ZW50TGlzdGVuZXIiO3IudG91Y2g/KG9bdV0oYS5zdGFydCx5LGwpLG9bdV0oYS5tb3ZlLHcsbCksb1t1XShhLmVuZCx4LGMpKToob1t1XShuLnN0YXJ0LHksbCksZFt1XShuLm1vdmUsdyxsKSxkW3VdKG4uZW5kLHgsYykpfX1mdW5jdGlvbiBTKCl7dmFyIGU9cy5zY3JvbGxiYXIsdD1zLiRlbDtzLnBhcmFtcy5zY3JvbGxiYXI9UShzLHMub3JpZ2luYWxQYXJhbXMuc2Nyb2xsYmFyLHMucGFyYW1zLnNjcm9sbGJhcix7ZWw6InN3aXBlci1zY3JvbGxiYXIifSk7dmFyIGE9cy5wYXJhbXMuc2Nyb2xsYmFyO2lmKGEuZWwpe3ZhciBuPW0oYS5lbCk7cy5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMmJiJzdHJpbmciPT10eXBlb2YgYS5lbCYmbi5sZW5ndGg+MSYmMT09PXQuZmluZChhLmVsKS5sZW5ndGgmJihuPXQuZmluZChhLmVsKSk7dmFyIGk9bi5maW5kKCIuIi5jb25jYXQocy5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdDbGFzcykpOzA9PT1pLmxlbmd0aCYmKGk9bSgnPGRpdiBjbGFzcz0iJy5jb25jYXQocy5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdDbGFzcywnIj48L2Rpdj4nKSksbi5hcHBlbmQoaSkpLE9iamVjdC5hc3NpZ24oZSx7JGVsOm4sZWw6blswXSwkZHJhZ0VsOmksZHJhZ0VsOmlbMF19KSxhLmRyYWdnYWJsZSYmcy5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZFKCJvbiIpLG4mJm5bcy5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0ocy5wYXJhbXMuc2Nyb2xsYmFyLmxvY2tDbGFzcyl9fWZ1bmN0aW9uIFQoKXtzLnBhcmFtcy5zY3JvbGxiYXIuZWwmJkUoIm9mZiIpfW8oe3Njcm9sbGJhcjp7ZWw6bnVsbCxkcmFnU2l6ZToiYXV0byIsaGlkZTohMSxkcmFnZ2FibGU6ITEsc25hcE9uUmVsZWFzZTohMCxsb2NrQ2xhc3M6InN3aXBlci1zY3JvbGxiYXItbG9jayIsZHJhZ0NsYXNzOiJzd2lwZXItc2Nyb2xsYmFyLWRyYWcifX0pLHMuc2Nyb2xsYmFyPXtlbDpudWxsLGRyYWdFbDpudWxsLCRlbDpudWxsLCRkcmFnRWw6bnVsbH0sbCgiaW5pdCIsKGZ1bmN0aW9uKCl7UygpLGgoKSx2KCl9KSksbCgidXBkYXRlIHJlc2l6ZSBvYnNlcnZlclVwZGF0ZSBsb2NrIHVubG9jayIsKGZ1bmN0aW9uKCl7aCgpfSkpLGwoInNldFRyYW5zbGF0ZSIsKGZ1bmN0aW9uKCl7digpfSkpLGwoInNldFRyYW5zaXRpb24iLChmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlKXtzLnBhcmFtcy5zY3JvbGxiYXIuZWwmJnMuc2Nyb2xsYmFyLmVsJiZzLnNjcm9sbGJhci4kZHJhZ0VsLnRyYW5zaXRpb24oZSl9KHQpfSkpLGwoImVuYWJsZSBkaXNhYmxlIiwoZnVuY3Rpb24oKXt2YXIgZT1zLnNjcm9sbGJhci4kZWw7ZSYmZVtzLmVuYWJsZWQ/InJlbW92ZUNsYXNzIjoiYWRkQ2xhc3MiXShzLnBhcmFtcy5zY3JvbGxiYXIubG9ja0NsYXNzKX0pKSxsKCJkZXN0cm95IiwoZnVuY3Rpb24oKXtUKCl9KSksT2JqZWN0LmFzc2lnbihzLnNjcm9sbGJhcix7dXBkYXRlU2l6ZTpoLHNldFRyYW5zbGF0ZTp2LGluaXQ6UyxkZXN0cm95OlR9KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUub247YSh7cGFyYWxsYXg6e2VuYWJsZWQ6ITF9fSk7dmFyIGk9ZnVuY3Rpb24oZSxhKXt2YXIgbj10LnJ0bCxpPW0oZSkscj1uPy0xOjEscz1pLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4Iil8fCIwIixvPWkuYXR0cigiZGF0YS1zd2lwZXItcGFyYWxsYXgteCIpLGw9aS5hdHRyKCJkYXRhLXN3aXBlci1wYXJhbGxheC15IiksYz1pLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlIiksZD1pLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LW9wYWNpdHkiKTtpZihvfHxsPyhvPW98fCIwIixsPWx8fCIwIik6dC5pc0hvcml6b250YWwoKT8obz1zLGw9IjAiKToobD1zLG89IjAiKSxvPW8uaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KG8sMTApKmEqcisiJSI6byphKnIrInB4IixsPWwuaW5kZXhPZigiJSIpPj0wP3BhcnNlSW50KGwsMTApKmErIiUiOmwqYSsicHgiLG51bGwhPWQpe3ZhciB1PWQtKGQtMSkqKDEtTWF0aC5hYnMoYSkpO2lbMF0uc3R5bGUub3BhY2l0eT11fWlmKG51bGw9PWMpaS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIuY29uY2F0KG8sIiwgIikuY29uY2F0KGwsIiwgMHB4KSIpKTtlbHNle3ZhciBwPWMtKGMtMSkqKDEtTWF0aC5hYnMoYSkpO2kudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgiLmNvbmNhdChvLCIsICIpLmNvbmNhdChsLCIsIDBweCkgc2NhbGUoIikuY29uY2F0KHAsIikiKSl9fSxyPWZ1bmN0aW9uKCl7dmFyIGU9dC4kZWwsYT10LnNsaWRlcyxuPXQucHJvZ3Jlc3Mscj10LnNuYXBHcmlkO2UuY2hpbGRyZW4oIltkYXRhLXN3aXBlci1wYXJhbGxheF0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC14XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXldLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgtb3BhY2l0eV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1zY2FsZV0iKS5lYWNoKChmdW5jdGlvbihlKXtpKGUsbil9KSksYS5lYWNoKChmdW5jdGlvbihlLGEpe3ZhciBzPWUucHJvZ3Jlc3M7dC5wYXJhbXMuc2xpZGVzUGVyR3JvdXA+MSYmImF1dG8iIT09dC5wYXJhbXMuc2xpZGVzUGVyVmlldyYmKHMrPU1hdGguY2VpbChhLzIpLW4qKHIubGVuZ3RoLTEpKSxzPU1hdGgubWluKE1hdGgubWF4KHMsLTEpLDEpLG0oZSkuZmluZCgiW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlXSIpLmVhY2goKGZ1bmN0aW9uKGUpe2koZSxzKX0pKX0pKX07bigiYmVmb3JlSW5pdCIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCYmKHQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3M9ITAsdC5vcmlnaW5hbFBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzPSEwKX0pKSxuKCJpbml0IiwoZnVuY3Rpb24oKXt0LnBhcmFtcy5wYXJhbGxheC5lbmFibGVkJiZyKCl9KSksbigic2V0VHJhbnNsYXRlIiwoZnVuY3Rpb24oKXt0LnBhcmFtcy5wYXJhbGxheC5lbmFibGVkJiZyKCl9KSksbigic2V0VHJhbnNpdGlvbiIsKGZ1bmN0aW9uKGUsYSl7dC5wYXJhbXMucGFyYWxsYXguZW5hYmxlZCYmZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dC5wYXJhbXMuc3BlZWQ7dC4kZWwuZmluZCgiW2RhdGEtc3dpcGVyLXBhcmFsbGF4XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXhdLCBbZGF0YS1zd2lwZXItcGFyYWxsYXgteV0sIFtkYXRhLXN3aXBlci1wYXJhbGxheC1vcGFjaXR5XSwgW2RhdGEtc3dpcGVyLXBhcmFsbGF4LXNjYWxlXSIpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPW0odCksbj1wYXJzZUludChhLmF0dHIoImRhdGEtc3dpcGVyLXBhcmFsbGF4LWR1cmF0aW9uIiksMTApfHxlOzA9PT1lJiYobj0wKSxhLnRyYW5zaXRpb24obil9KSl9KGEpfSkpfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcixhPWUuZXh0ZW5kUGFyYW1zLG49ZS5vbixpPWUuZW1pdCxzPXIoKTthKHt6b29tOntlbmFibGVkOiExLG1heFJhdGlvOjMsbWluUmF0aW86MSx0b2dnbGU6ITAsY29udGFpbmVyQ2xhc3M6InN3aXBlci16b29tLWNvbnRhaW5lciIsem9vbWVkU2xpZGVDbGFzczoic3dpcGVyLXNsaWRlLXpvb21lZCJ9fSksdC56b29tPXtlbmFibGVkOiExfTt2YXIgbyxsLGMsZD0xLHU9ITEscD17JHNsaWRlRWw6dm9pZCAwLHNsaWRlV2lkdGg6dm9pZCAwLHNsaWRlSGVpZ2h0OnZvaWQgMCwkaW1hZ2VFbDp2b2lkIDAsJGltYWdlV3JhcEVsOnZvaWQgMCxtYXhSYXRpbzozfSxmPXtpc1RvdWNoZWQ6dm9pZCAwLGlzTW92ZWQ6dm9pZCAwLGN1cnJlbnRYOnZvaWQgMCxjdXJyZW50WTp2b2lkIDAsbWluWDp2b2lkIDAsbWluWTp2b2lkIDAsbWF4WDp2b2lkIDAsbWF4WTp2b2lkIDAsd2lkdGg6dm9pZCAwLGhlaWdodDp2b2lkIDAsc3RhcnRYOnZvaWQgMCxzdGFydFk6dm9pZCAwLHRvdWNoZXNTdGFydDp7fSx0b3VjaGVzQ3VycmVudDp7fX0sdj17eDp2b2lkIDAseTp2b2lkIDAscHJldlBvc2l0aW9uWDp2b2lkIDAscHJldlBvc2l0aW9uWTp2b2lkIDAscHJldlRpbWU6dm9pZCAwfSxoPTE7ZnVuY3Rpb24gZyhlKXtpZihlLnRhcmdldFRvdWNoZXMubGVuZ3RoPDIpcmV0dXJuIDE7dmFyIHQ9ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYLGE9ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZLG49ZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VYLGk9ZS50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZO3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3cobi10LDIpK01hdGgucG93KGktYSwyKSl9ZnVuY3Rpb24gYihlKXt2YXIgYT10LnN1cHBvcnQsbj10LnBhcmFtcy56b29tO2lmKGw9ITEsYz0hMSwhYS5nZXN0dXJlcyl7aWYoInRvdWNoc3RhcnQiIT09ZS50eXBlfHwidG91Y2hzdGFydCI9PT1lLnR5cGUmJmUudGFyZ2V0VG91Y2hlcy5sZW5ndGg8MilyZXR1cm47bD0hMCxwLnNjYWxlU3RhcnQ9ZyhlKX1wLiRzbGlkZUVsJiZwLiRzbGlkZUVsLmxlbmd0aHx8KHAuJHNsaWRlRWw9bShlLnRhcmdldCkuY2xvc2VzdCgiLiIuY29uY2F0KHQucGFyYW1zLnNsaWRlQ2xhc3MpKSwwPT09cC4kc2xpZGVFbC5sZW5ndGgmJihwLiRzbGlkZUVsPXQuc2xpZGVzLmVxKHQuYWN0aXZlSW5kZXgpKSxwLiRpbWFnZUVsPXAuJHNsaWRlRWwuZmluZCgiLiIuY29uY2F0KG4uY29udGFpbmVyQ2xhc3MpKS5lcSgwKS5maW5kKCJwaWN0dXJlLCBpbWcsIHN2ZywgY2FudmFzLCAuc3dpcGVyLXpvb20tdGFyZ2V0IikuZXEoMCkscC4kaW1hZ2VXcmFwRWw9cC4kaW1hZ2VFbC5wYXJlbnQoIi4iLmNvbmNhdChuLmNvbnRhaW5lckNsYXNzKSkscC5tYXhSYXRpbz1wLiRpbWFnZVdyYXBFbC5hdHRyKCJkYXRhLXN3aXBlci16b29tIil8fG4ubWF4UmF0aW8sMCE9PXAuJGltYWdlV3JhcEVsLmxlbmd0aCk/KHAuJGltYWdlRWwmJnAuJGltYWdlRWwudHJhbnNpdGlvbigwKSx1PSEwKTpwLiRpbWFnZUVsPXZvaWQgMH1mdW5jdGlvbiB5KGUpe3ZhciBhPXQuc3VwcG9ydCxuPXQucGFyYW1zLnpvb20saT10Lnpvb207aWYoIWEuZ2VzdHVyZXMpe2lmKCJ0b3VjaG1vdmUiIT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZSYmZS50YXJnZXRUb3VjaGVzLmxlbmd0aDwyKXJldHVybjtjPSEwLHAuc2NhbGVNb3ZlPWcoZSl9cC4kaW1hZ2VFbCYmMCE9PXAuJGltYWdlRWwubGVuZ3RoPyhhLmdlc3R1cmVzP2kuc2NhbGU9ZS5zY2FsZSpkOmkuc2NhbGU9cC5zY2FsZU1vdmUvcC5zY2FsZVN0YXJ0KmQsaS5zY2FsZT5wLm1heFJhdGlvJiYoaS5zY2FsZT1wLm1heFJhdGlvLTErTWF0aC5wb3coaS5zY2FsZS1wLm1heFJhdGlvKzEsLjUpKSxpLnNjYWxlPG4ubWluUmF0aW8mJihpLnNjYWxlPW4ubWluUmF0aW8rMS1NYXRoLnBvdyhuLm1pblJhdGlvLWkuc2NhbGUrMSwuNSkpLHAuJGltYWdlRWwudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoIi5jb25jYXQoaS5zY2FsZSwiKSIpKSk6Imdlc3R1cmVjaGFuZ2UiPT09ZS50eXBlJiZiKGUpfWZ1bmN0aW9uIHcoZSl7dmFyIGE9dC5kZXZpY2Usbj10LnN1cHBvcnQsaT10LnBhcmFtcy56b29tLHI9dC56b29tO2lmKCFuLmdlc3R1cmVzKXtpZighbHx8IWMpcmV0dXJuO2lmKCJ0b3VjaGVuZCIhPT1lLnR5cGV8fCJ0b3VjaGVuZCI9PT1lLnR5cGUmJmUuY2hhbmdlZFRvdWNoZXMubGVuZ3RoPDImJiFhLmFuZHJvaWQpcmV0dXJuO2w9ITEsYz0hMX1wLiRpbWFnZUVsJiYwIT09cC4kaW1hZ2VFbC5sZW5ndGgmJihyLnNjYWxlPU1hdGgubWF4KE1hdGgubWluKHIuc2NhbGUscC5tYXhSYXRpbyksaS5taW5SYXRpbykscC4kaW1hZ2VFbC50cmFuc2l0aW9uKHQucGFyYW1zLnNwZWVkKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgiLmNvbmNhdChyLnNjYWxlLCIpIikpLGQ9ci5zY2FsZSx1PSExLDE9PT1yLnNjYWxlJiYocC4kc2xpZGVFbD12b2lkIDApKX1mdW5jdGlvbiB4KGUpe3ZhciBhPXQuem9vbTtpZihwLiRpbWFnZUVsJiYwIT09cC4kaW1hZ2VFbC5sZW5ndGgmJih0LmFsbG93Q2xpY2s9ITEsZi5pc1RvdWNoZWQmJnAuJHNsaWRlRWwpKXtmLmlzTW92ZWR8fChmLndpZHRoPXAuJGltYWdlRWxbMF0ub2Zmc2V0V2lkdGgsZi5oZWlnaHQ9cC4kaW1hZ2VFbFswXS5vZmZzZXRIZWlnaHQsZi5zdGFydFg9TShwLiRpbWFnZVdyYXBFbFswXSwieCIpfHwwLGYuc3RhcnRZPU0ocC4kaW1hZ2VXcmFwRWxbMF0sInkiKXx8MCxwLnNsaWRlV2lkdGg9cC4kc2xpZGVFbFswXS5vZmZzZXRXaWR0aCxwLnNsaWRlSGVpZ2h0PXAuJHNsaWRlRWxbMF0ub2Zmc2V0SGVpZ2h0LHAuJGltYWdlV3JhcEVsLnRyYW5zaXRpb24oMCkpO3ZhciBuPWYud2lkdGgqYS5zY2FsZSxpPWYuaGVpZ2h0KmEuc2NhbGU7aWYoIShuPHAuc2xpZGVXaWR0aCYmaTxwLnNsaWRlSGVpZ2h0KSl7aWYoZi5taW5YPU1hdGgubWluKHAuc2xpZGVXaWR0aC8yLW4vMiwwKSxmLm1heFg9LWYubWluWCxmLm1pblk9TWF0aC5taW4ocC5zbGlkZUhlaWdodC8yLWkvMiwwKSxmLm1heFk9LWYubWluWSxmLnRvdWNoZXNDdXJyZW50Lng9InRvdWNobW92ZSI9PT1lLnR5cGU/ZS50YXJnZXRUb3VjaGVzWzBdLnBhZ2VYOmUucGFnZVgsZi50b3VjaGVzQ3VycmVudC55PSJ0b3VjaG1vdmUiPT09ZS50eXBlP2UudGFyZ2V0VG91Y2hlc1swXS5wYWdlWTplLnBhZ2VZLCFmLmlzTW92ZWQmJiF1KXtpZih0LmlzSG9yaXpvbnRhbCgpJiYoTWF0aC5mbG9vcihmLm1pblgpPT09TWF0aC5mbG9vcihmLnN0YXJ0WCkmJmYudG91Y2hlc0N1cnJlbnQueDxmLnRvdWNoZXNTdGFydC54fHxNYXRoLmZsb29yKGYubWF4WCk9PT1NYXRoLmZsb29yKGYuc3RhcnRYKSYmZi50b3VjaGVzQ3VycmVudC54PmYudG91Y2hlc1N0YXJ0LngpKXJldHVybiB2b2lkKGYuaXNUb3VjaGVkPSExKTtpZighdC5pc0hvcml6b250YWwoKSYmKE1hdGguZmxvb3IoZi5taW5ZKT09PU1hdGguZmxvb3IoZi5zdGFydFkpJiZmLnRvdWNoZXNDdXJyZW50Lnk8Zi50b3VjaGVzU3RhcnQueXx8TWF0aC5mbG9vcihmLm1heFkpPT09TWF0aC5mbG9vcihmLnN0YXJ0WSkmJmYudG91Y2hlc0N1cnJlbnQueT5mLnRvdWNoZXNTdGFydC55KSlyZXR1cm4gdm9pZChmLmlzVG91Y2hlZD0hMSl9ZS5jYW5jZWxhYmxlJiZlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxmLmlzTW92ZWQ9ITAsZi5jdXJyZW50WD1mLnRvdWNoZXNDdXJyZW50LngtZi50b3VjaGVzU3RhcnQueCtmLnN0YXJ0WCxmLmN1cnJlbnRZPWYudG91Y2hlc0N1cnJlbnQueS1mLnRvdWNoZXNTdGFydC55K2Yuc3RhcnRZLGYuY3VycmVudFg8Zi5taW5YJiYoZi5jdXJyZW50WD1mLm1pblgrMS1NYXRoLnBvdyhmLm1pblgtZi5jdXJyZW50WCsxLC44KSksZi5jdXJyZW50WD5mLm1heFgmJihmLmN1cnJlbnRYPWYubWF4WC0xK01hdGgucG93KGYuY3VycmVudFgtZi5tYXhYKzEsLjgpKSxmLmN1cnJlbnRZPGYubWluWSYmKGYuY3VycmVudFk9Zi5taW5ZKzEtTWF0aC5wb3coZi5taW5ZLWYuY3VycmVudFkrMSwuOCkpLGYuY3VycmVudFk+Zi5tYXhZJiYoZi5jdXJyZW50WT1mLm1heFktMStNYXRoLnBvdyhmLmN1cnJlbnRZLWYubWF4WSsxLC44KSksdi5wcmV2UG9zaXRpb25YfHwodi5wcmV2UG9zaXRpb25YPWYudG91Y2hlc0N1cnJlbnQueCksdi5wcmV2UG9zaXRpb25ZfHwodi5wcmV2UG9zaXRpb25ZPWYudG91Y2hlc0N1cnJlbnQueSksdi5wcmV2VGltZXx8KHYucHJldlRpbWU9RGF0ZS5ub3coKSksdi54PShmLnRvdWNoZXNDdXJyZW50Lngtdi5wcmV2UG9zaXRpb25YKS8oRGF0ZS5ub3coKS12LnByZXZUaW1lKS8yLHYueT0oZi50b3VjaGVzQ3VycmVudC55LXYucHJldlBvc2l0aW9uWSkvKERhdGUubm93KCktdi5wcmV2VGltZSkvMixNYXRoLmFicyhmLnRvdWNoZXNDdXJyZW50Lngtdi5wcmV2UG9zaXRpb25YKTwyJiYodi54PTApLE1hdGguYWJzKGYudG91Y2hlc0N1cnJlbnQueS12LnByZXZQb3NpdGlvblkpPDImJih2Lnk9MCksdi5wcmV2UG9zaXRpb25YPWYudG91Y2hlc0N1cnJlbnQueCx2LnByZXZQb3NpdGlvblk9Zi50b3VjaGVzQ3VycmVudC55LHYucHJldlRpbWU9RGF0ZS5ub3coKSxwLiRpbWFnZVdyYXBFbC50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIuY29uY2F0KGYuY3VycmVudFgsInB4LCAiKS5jb25jYXQoZi5jdXJyZW50WSwicHgsMCkiKSl9fX1mdW5jdGlvbiBFKCl7dmFyIGU9dC56b29tO3AuJHNsaWRlRWwmJnQucHJldmlvdXNJbmRleCE9PXQuYWN0aXZlSW5kZXgmJihwLiRpbWFnZUVsJiZwLiRpbWFnZUVsLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpIikscC4kaW1hZ2VXcmFwRWwmJnAuJGltYWdlV3JhcEVsLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIiksZS5zY2FsZT0xLGQ9MSxwLiRzbGlkZUVsPXZvaWQgMCxwLiRpbWFnZUVsPXZvaWQgMCxwLiRpbWFnZVdyYXBFbD12b2lkIDApfWZ1bmN0aW9uIFMoZSl7dmFyIGEsbixpLHIsbyxsLGMsdSx2LGgsZyxiLHksdyx4LEUsUz10Lnpvb20sVD10LnBhcmFtcy56b29tO3AuJHNsaWRlRWx8fChlJiZlLnRhcmdldCYmKHAuJHNsaWRlRWw9bShlLnRhcmdldCkuY2xvc2VzdCgiLiIuY29uY2F0KHQucGFyYW1zLnNsaWRlQ2xhc3MpKSkscC4kc2xpZGVFbHx8KHQucGFyYW1zLnZpcnR1YWwmJnQucGFyYW1zLnZpcnR1YWwuZW5hYmxlZCYmdC52aXJ0dWFsP3AuJHNsaWRlRWw9dC4kd3JhcHBlckVsLmNoaWxkcmVuKCIuIi5jb25jYXQodC5wYXJhbXMuc2xpZGVBY3RpdmVDbGFzcykpOnAuJHNsaWRlRWw9dC5zbGlkZXMuZXEodC5hY3RpdmVJbmRleCkpLHAuJGltYWdlRWw9cC4kc2xpZGVFbC5maW5kKCIuIi5jb25jYXQoVC5jb250YWluZXJDbGFzcykpLmVxKDApLmZpbmQoInBpY3R1cmUsIGltZywgc3ZnLCBjYW52YXMsIC5zd2lwZXItem9vbS10YXJnZXQiKS5lcSgwKSxwLiRpbWFnZVdyYXBFbD1wLiRpbWFnZUVsLnBhcmVudCgiLiIuY29uY2F0KFQuY29udGFpbmVyQ2xhc3MpKSkscC4kaW1hZ2VFbCYmMCE9PXAuJGltYWdlRWwubGVuZ3RoJiZwLiRpbWFnZVdyYXBFbCYmMCE9PXAuJGltYWdlV3JhcEVsLmxlbmd0aCYmKHQucGFyYW1zLmNzc01vZGUmJih0LndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix0LndyYXBwZXJFbC5zdHlsZS50b3VjaEFjdGlvbj0ibm9uZSIpLHAuJHNsaWRlRWwuYWRkQ2xhc3MoIiIuY29uY2F0KFQuem9vbWVkU2xpZGVDbGFzcykpLHZvaWQgMD09PWYudG91Y2hlc1N0YXJ0LngmJmU/KGE9InRvdWNoZW5kIj09PWUudHlwZT9lLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYOmUucGFnZVgsbj0idG91Y2hlbmQiPT09ZS50eXBlP2UuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVk6ZS5wYWdlWSk6KGE9Zi50b3VjaGVzU3RhcnQueCxuPWYudG91Y2hlc1N0YXJ0LnkpLFMuc2NhbGU9cC4kaW1hZ2VXcmFwRWwuYXR0cigiZGF0YS1zd2lwZXItem9vbSIpfHxULm1heFJhdGlvLGQ9cC4kaW1hZ2VXcmFwRWwuYXR0cigiZGF0YS1zd2lwZXItem9vbSIpfHxULm1heFJhdGlvLGU/KHg9cC4kc2xpZGVFbFswXS5vZmZzZXRXaWR0aCxFPXAuJHNsaWRlRWxbMF0ub2Zmc2V0SGVpZ2h0LGk9cC4kc2xpZGVFbC5vZmZzZXQoKS5sZWZ0K3Muc2Nyb2xsWCt4LzItYSxyPXAuJHNsaWRlRWwub2Zmc2V0KCkudG9wK3Muc2Nyb2xsWStFLzItbixjPXAuJGltYWdlRWxbMF0ub2Zmc2V0V2lkdGgsdT1wLiRpbWFnZUVsWzBdLm9mZnNldEhlaWdodCx2PWMqUy5zY2FsZSxoPXUqUy5zY2FsZSx5PS0oZz1NYXRoLm1pbih4LzItdi8yLDApKSx3PS0oYj1NYXRoLm1pbihFLzItaC8yLDApKSwobz1pKlMuc2NhbGUpPGcmJihvPWcpLG8+eSYmKG89eSksKGw9cipTLnNjYWxlKTxiJiYobD1iKSxsPncmJihsPXcpKToobz0wLGw9MCkscC4kaW1hZ2VXcmFwRWwudHJhbnNpdGlvbigzMDApLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoIi5jb25jYXQobywicHgsICIpLmNvbmNhdChsLCJweCwwKSIpKSxwLiRpbWFnZUVsLnRyYW5zaXRpb24oMzAwKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgiLmNvbmNhdChTLnNjYWxlLCIpIikpKX1mdW5jdGlvbiBUKCl7dmFyIGU9dC56b29tLGE9dC5wYXJhbXMuem9vbTtwLiRzbGlkZUVsfHwodC5wYXJhbXMudmlydHVhbCYmdC5wYXJhbXMudmlydHVhbC5lbmFibGVkJiZ0LnZpcnR1YWw/cC4kc2xpZGVFbD10LiR3cmFwcGVyRWwuY2hpbGRyZW4oIi4iLmNvbmNhdCh0LnBhcmFtcy5zbGlkZUFjdGl2ZUNsYXNzKSk6cC4kc2xpZGVFbD10LnNsaWRlcy5lcSh0LmFjdGl2ZUluZGV4KSxwLiRpbWFnZUVsPXAuJHNsaWRlRWwuZmluZCgiLiIuY29uY2F0KGEuY29udGFpbmVyQ2xhc3MpKS5lcSgwKS5maW5kKCJwaWN0dXJlLCBpbWcsIHN2ZywgY2FudmFzLCAuc3dpcGVyLXpvb20tdGFyZ2V0IikuZXEoMCkscC4kaW1hZ2VXcmFwRWw9cC4kaW1hZ2VFbC5wYXJlbnQoIi4iLmNvbmNhdChhLmNvbnRhaW5lckNsYXNzKSkpLHAuJGltYWdlRWwmJjAhPT1wLiRpbWFnZUVsLmxlbmd0aCYmcC4kaW1hZ2VXcmFwRWwmJjAhPT1wLiRpbWFnZVdyYXBFbC5sZW5ndGgmJih0LnBhcmFtcy5jc3NNb2RlJiYodC53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3c9IiIsdC53cmFwcGVyRWwuc3R5bGUudG91Y2hBY3Rpb249IiIpLGUuc2NhbGU9MSxkPTEscC4kaW1hZ2VXcmFwRWwudHJhbnNpdGlvbigzMDApLnRyYW5zZm9ybSgidHJhbnNsYXRlM2QoMCwwLDApIikscC4kaW1hZ2VFbC50cmFuc2l0aW9uKDMwMCkudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSkiKSxwLiRzbGlkZUVsLnJlbW92ZUNsYXNzKCIiLmNvbmNhdChhLnpvb21lZFNsaWRlQ2xhc3MpKSxwLiRzbGlkZUVsPXZvaWQgMCl9ZnVuY3Rpb24gQyhlKXt2YXIgYT10Lnpvb207YS5zY2FsZSYmMSE9PWEuc2NhbGU/VCgpOlMoZSl9ZnVuY3Rpb24gaygpe3ZhciBlPXQuc3VwcG9ydDtyZXR1cm57cGFzc2l2ZUxpc3RlbmVyOiEoInRvdWNoc3RhcnQiIT09dC50b3VjaEV2ZW50cy5zdGFydHx8IWUucGFzc2l2ZUxpc3RlbmVyfHwhdC5wYXJhbXMucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiEwLGNhcHR1cmU6ITF9LGFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmU6IWUucGFzc2l2ZUxpc3RlbmVyfHx7cGFzc2l2ZTohMSxjYXB0dXJlOiEwfX19ZnVuY3Rpb24gUCgpe3JldHVybiIuIi5jb25jYXQodC5wYXJhbXMuc2xpZGVDbGFzcyl9ZnVuY3Rpb24gQShlKXt2YXIgYT1rKCkucGFzc2l2ZUxpc3RlbmVyLG49UCgpO3QuJHdyYXBwZXJFbFtlXSgiZ2VzdHVyZXN0YXJ0IixuLGIsYSksdC4kd3JhcHBlckVsW2VdKCJnZXN0dXJlY2hhbmdlIixuLHksYSksdC4kd3JhcHBlckVsW2VdKCJnZXN0dXJlZW5kIixuLHcsYSl9ZnVuY3Rpb24gTCgpe298fChvPSEwLEEoIm9uIikpfWZ1bmN0aW9uIE8oKXtvJiYobz0hMSxBKCJvZmYiKSl9ZnVuY3Rpb24gaigpe3ZhciBlPXQuem9vbTtpZighZS5lbmFibGVkKXtlLmVuYWJsZWQ9ITA7dmFyIGE9dC5zdXBwb3J0LG49aygpLGk9bi5wYXNzaXZlTGlzdGVuZXIscj1uLmFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmUscz1QKCk7YS5nZXN0dXJlcz8odC4kd3JhcHBlckVsLm9uKHQudG91Y2hFdmVudHMuc3RhcnQsTCxpKSx0LiR3cmFwcGVyRWwub24odC50b3VjaEV2ZW50cy5lbmQsTyxpKSk6InRvdWNoc3RhcnQiPT09dC50b3VjaEV2ZW50cy5zdGFydCYmKHQuJHdyYXBwZXJFbC5vbih0LnRvdWNoRXZlbnRzLnN0YXJ0LHMsYixpKSx0LiR3cmFwcGVyRWwub24odC50b3VjaEV2ZW50cy5tb3ZlLHMseSxyKSx0LiR3cmFwcGVyRWwub24odC50b3VjaEV2ZW50cy5lbmQscyx3LGkpLHQudG91Y2hFdmVudHMuY2FuY2VsJiZ0LiR3cmFwcGVyRWwub24odC50b3VjaEV2ZW50cy5jYW5jZWwscyx3LGkpKSx0LiR3cmFwcGVyRWwub24odC50b3VjaEV2ZW50cy5tb3ZlLCIuIi5jb25jYXQodC5wYXJhbXMuem9vbS5jb250YWluZXJDbGFzcykseCxyKX19ZnVuY3Rpb24gSSgpe3ZhciBlPXQuem9vbTtpZihlLmVuYWJsZWQpe3ZhciBhPXQuc3VwcG9ydDtlLmVuYWJsZWQ9ITE7dmFyIG49aygpLGk9bi5wYXNzaXZlTGlzdGVuZXIscj1uLmFjdGl2ZUxpc3RlbmVyV2l0aENhcHR1cmUscz1QKCk7YS5nZXN0dXJlcz8odC4kd3JhcHBlckVsLm9mZih0LnRvdWNoRXZlbnRzLnN0YXJ0LEwsaSksdC4kd3JhcHBlckVsLm9mZih0LnRvdWNoRXZlbnRzLmVuZCxPLGkpKToidG91Y2hzdGFydCI9PT10LnRvdWNoRXZlbnRzLnN0YXJ0JiYodC4kd3JhcHBlckVsLm9mZih0LnRvdWNoRXZlbnRzLnN0YXJ0LHMsYixpKSx0LiR3cmFwcGVyRWwub2ZmKHQudG91Y2hFdmVudHMubW92ZSxzLHksciksdC4kd3JhcHBlckVsLm9mZih0LnRvdWNoRXZlbnRzLmVuZCxzLHcsaSksdC50b3VjaEV2ZW50cy5jYW5jZWwmJnQuJHdyYXBwZXJFbC5vZmYodC50b3VjaEV2ZW50cy5jYW5jZWwscyx3LGkpKSx0LiR3cmFwcGVyRWwub2ZmKHQudG91Y2hFdmVudHMubW92ZSwiLiIuY29uY2F0KHQucGFyYW1zLnpvb20uY29udGFpbmVyQ2xhc3MpLHgscil9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0Lnpvb20sInNjYWxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHNldDpmdW5jdGlvbihlKXtpZihoIT09ZSl7dmFyIHQ9cC4kaW1hZ2VFbD9wLiRpbWFnZUVsWzBdOnZvaWQgMCxhPXAuJHNsaWRlRWw/cC4kc2xpZGVFbFswXTp2b2lkIDA7aSgiem9vbUNoYW5nZSIsZSx0LGEpfWg9ZX19KSxuKCJpbml0IiwoZnVuY3Rpb24oKXt0LnBhcmFtcy56b29tLmVuYWJsZWQmJmooKX0pKSxuKCJkZXN0cm95IiwoZnVuY3Rpb24oKXtJKCl9KSksbigidG91Y2hTdGFydCIsKGZ1bmN0aW9uKGUsYSl7dC56b29tLmVuYWJsZWQmJmZ1bmN0aW9uKGUpe3ZhciBhPXQuZGV2aWNlO3AuJGltYWdlRWwmJjAhPT1wLiRpbWFnZUVsLmxlbmd0aCYmKGYuaXNUb3VjaGVkfHwoYS5hbmRyb2lkJiZlLmNhbmNlbGFibGUmJmUucHJldmVudERlZmF1bHQoKSxmLmlzVG91Y2hlZD0hMCxmLnRvdWNoZXNTdGFydC54PSJ0b3VjaHN0YXJ0Ij09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVg6ZS5wYWdlWCxmLnRvdWNoZXNTdGFydC55PSJ0b3VjaHN0YXJ0Ij09PWUudHlwZT9lLnRhcmdldFRvdWNoZXNbMF0ucGFnZVk6ZS5wYWdlWSkpfShhKX0pKSxuKCJ0b3VjaEVuZCIsKGZ1bmN0aW9uKGUsYSl7dC56b29tLmVuYWJsZWQmJmZ1bmN0aW9uKCl7dmFyIGU9dC56b29tO2lmKHAuJGltYWdlRWwmJjAhPT1wLiRpbWFnZUVsLmxlbmd0aCl7aWYoIWYuaXNUb3VjaGVkfHwhZi5pc01vdmVkKXJldHVybiBmLmlzVG91Y2hlZD0hMSx2b2lkKGYuaXNNb3ZlZD0hMSk7Zi5pc1RvdWNoZWQ9ITEsZi5pc01vdmVkPSExO3ZhciBhPTMwMCxuPTMwMCxpPXYueCphLHI9Zi5jdXJyZW50WCtpLHM9di55Km4sbz1mLmN1cnJlbnRZK3M7MCE9PXYueCYmKGE9TWF0aC5hYnMoKHItZi5jdXJyZW50WCkvdi54KSksMCE9PXYueSYmKG49TWF0aC5hYnMoKG8tZi5jdXJyZW50WSkvdi55KSk7dmFyIGw9TWF0aC5tYXgoYSxuKTtmLmN1cnJlbnRYPXIsZi5jdXJyZW50WT1vO3ZhciBjPWYud2lkdGgqZS5zY2FsZSxkPWYuaGVpZ2h0KmUuc2NhbGU7Zi5taW5YPU1hdGgubWluKHAuc2xpZGVXaWR0aC8yLWMvMiwwKSxmLm1heFg9LWYubWluWCxmLm1pblk9TWF0aC5taW4ocC5zbGlkZUhlaWdodC8yLWQvMiwwKSxmLm1heFk9LWYubWluWSxmLmN1cnJlbnRYPU1hdGgubWF4KE1hdGgubWluKGYuY3VycmVudFgsZi5tYXhYKSxmLm1pblgpLGYuY3VycmVudFk9TWF0aC5tYXgoTWF0aC5taW4oZi5jdXJyZW50WSxmLm1heFkpLGYubWluWSkscC4kaW1hZ2VXcmFwRWwudHJhbnNpdGlvbihsKS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIuY29uY2F0KGYuY3VycmVudFgsInB4LCAiKS5jb25jYXQoZi5jdXJyZW50WSwicHgsMCkiKSl9fSgpfSkpLG4oImRvdWJsZVRhcCIsKGZ1bmN0aW9uKGUsYSl7IXQuYW5pbWF0aW5nJiZ0LnBhcmFtcy56b29tLmVuYWJsZWQmJnQuem9vbS5lbmFibGVkJiZ0LnBhcmFtcy56b29tLnRvZ2dsZSYmQyhhKX0pKSxuKCJ0cmFuc2l0aW9uRW5kIiwoZnVuY3Rpb24oKXt0Lnpvb20uZW5hYmxlZCYmdC5wYXJhbXMuem9vbS5lbmFibGVkJiZFKCl9KSksbigic2xpZGVDaGFuZ2UiLChmdW5jdGlvbigpe3Quem9vbS5lbmFibGVkJiZ0LnBhcmFtcy56b29tLmVuYWJsZWQmJnQucGFyYW1zLmNzc01vZGUmJkUoKX0pKSxPYmplY3QuYXNzaWduKHQuem9vbSx7ZW5hYmxlOmosZGlzYWJsZTpJLGluOlMsb3V0OlQsdG9nZ2xlOkN9KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUub24saT1lLmVtaXQ7YSh7bGF6eTp7Y2hlY2tJblZpZXc6ITEsZW5hYmxlZDohMSxsb2FkUHJldk5leHQ6ITEsbG9hZFByZXZOZXh0QW1vdW50OjEsbG9hZE9uVHJhbnNpdGlvblN0YXJ0OiExLHNjcm9sbGluZ0VsZW1lbnQ6IiIsZWxlbWVudENsYXNzOiJzd2lwZXItbGF6eSIsbG9hZGluZ0NsYXNzOiJzd2lwZXItbGF6eS1sb2FkaW5nIixsb2FkZWRDbGFzczoic3dpcGVyLWxhenktbG9hZGVkIixwcmVsb2FkZXJDbGFzczoic3dpcGVyLWxhenktcHJlbG9hZGVyIn19KSx0Lmxhenk9e307dmFyIHM9ITEsbz0hMTtmdW5jdGlvbiBsKGUpe3ZhciBhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sbj10LnBhcmFtcy5sYXp5O2lmKHZvaWQgMCE9PWUmJjAhPT10LnNsaWRlcy5sZW5ndGgpe3ZhciByPXQudmlydHVhbCYmdC5wYXJhbXMudmlydHVhbC5lbmFibGVkP3QuJHdyYXBwZXJFbC5jaGlsZHJlbigiLiIuY29uY2F0KHQucGFyYW1zLnNsaWRlQ2xhc3MsJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJykuY29uY2F0KGUsJyJdJykpOnQuc2xpZGVzLmVxKGUpLHM9ci5maW5kKCIuIi5jb25jYXQobi5lbGVtZW50Q2xhc3MsIjpub3QoLiIpLmNvbmNhdChuLmxvYWRlZENsYXNzLCIpOm5vdCguIikuY29uY2F0KG4ubG9hZGluZ0NsYXNzLCIpIikpOyFyLmhhc0NsYXNzKG4uZWxlbWVudENsYXNzKXx8ci5oYXNDbGFzcyhuLmxvYWRlZENsYXNzKXx8ci5oYXNDbGFzcyhuLmxvYWRpbmdDbGFzcyl8fHMucHVzaChyWzBdKSwwIT09cy5sZW5ndGgmJnMuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHM9bShlKTtzLmFkZENsYXNzKG4ubG9hZGluZ0NsYXNzKTt2YXIgbz1zLmF0dHIoImRhdGEtYmFja2dyb3VuZCIpLGM9cy5hdHRyKCJkYXRhLXNyYyIpLGQ9cy5hdHRyKCJkYXRhLXNyY3NldCIpLHU9cy5hdHRyKCJkYXRhLXNpemVzIikscD1zLnBhcmVudCgicGljdHVyZSIpO3QubG9hZEltYWdlKHNbMF0sY3x8byxkLHUsITEsKGZ1bmN0aW9uKCl7aWYobnVsbCE9dCYmdCYmKCF0fHx0LnBhcmFtcykmJiF0LmRlc3Ryb3llZCl7aWYobz8ocy5jc3MoImJhY2tncm91bmQtaW1hZ2UiLCd1cmwoIicuY29uY2F0KG8sJyIpJykpLHMucmVtb3ZlQXR0cigiZGF0YS1iYWNrZ3JvdW5kIikpOihkJiYocy5hdHRyKCJzcmNzZXQiLGQpLHMucmVtb3ZlQXR0cigiZGF0YS1zcmNzZXQiKSksdSYmKHMuYXR0cigic2l6ZXMiLHUpLHMucmVtb3ZlQXR0cigiZGF0YS1zaXplcyIpKSxwLmxlbmd0aCYmcC5jaGlsZHJlbigic291cmNlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9bShlKTt0LmF0dHIoImRhdGEtc3Jjc2V0IikmJih0LmF0dHIoInNyY3NldCIsdC5hdHRyKCJkYXRhLXNyY3NldCIpKSx0LnJlbW92ZUF0dHIoImRhdGEtc3Jjc2V0IikpfSkpLGMmJihzLmF0dHIoInNyYyIsYykscy5yZW1vdmVBdHRyKCJkYXRhLXNyYyIpKSkscy5hZGRDbGFzcyhuLmxvYWRlZENsYXNzKS5yZW1vdmVDbGFzcyhuLmxvYWRpbmdDbGFzcyksci5maW5kKCIuIi5jb25jYXQobi5wcmVsb2FkZXJDbGFzcykpLnJlbW92ZSgpLHQucGFyYW1zLmxvb3AmJmEpe3ZhciBlPXIuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTtyLmhhc0NsYXNzKHQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpP2wodC4kd3JhcHBlckVsLmNoaWxkcmVuKCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicuY29uY2F0KGUsJyJdOm5vdCguJykuY29uY2F0KHQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MsIikiKSkuaW5kZXgoKSwhMSk6bCh0LiR3cmFwcGVyRWwuY2hpbGRyZW4oIi4iLmNvbmNhdCh0LnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzLCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicpLmNvbmNhdChlLCciXScpKS5pbmRleCgpLCExKX1pKCJsYXp5SW1hZ2VSZWFkeSIsclswXSxzWzBdKSx0LnBhcmFtcy5hdXRvSGVpZ2h0JiZ0LnVwZGF0ZUF1dG9IZWlnaHQoKX19KSksaSgibGF6eUltYWdlTG9hZCIsclswXSxzWzBdKX0pKX19ZnVuY3Rpb24gYygpe3ZhciBlPXQuJHdyYXBwZXJFbCxhPXQucGFyYW1zLG49dC5zbGlkZXMsaT10LmFjdGl2ZUluZGV4LHI9dC52aXJ0dWFsJiZhLnZpcnR1YWwuZW5hYmxlZCxzPWEubGF6eSxjPWEuc2xpZGVzUGVyVmlldztmdW5jdGlvbiBkKHQpe2lmKHIpe2lmKGUuY2hpbGRyZW4oIi4iLmNvbmNhdChhLnNsaWRlQ2xhc3MsJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJykuY29uY2F0KHQsJyJdJykpLmxlbmd0aClyZXR1cm4hMH1lbHNlIGlmKG5bdF0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gdShlKXtyZXR1cm4gcj9tKGUpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iik6bShlKS5pbmRleCgpfWlmKCJhdXRvIj09PWMmJihjPTApLG98fChvPSEwKSx0LnBhcmFtcy53YXRjaFNsaWRlc1Byb2dyZXNzKWUuY2hpbGRyZW4oIi4iLmNvbmNhdChhLnNsaWRlVmlzaWJsZUNsYXNzKSkuZWFjaCgoZnVuY3Rpb24oZSl7bChyP20oZSkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTptKGUpLmluZGV4KCkpfSkpO2Vsc2UgaWYoYz4xKWZvcih2YXIgcD1pO3A8aStjO3ArPTEpZChwKSYmbChwKTtlbHNlIGwoaSk7aWYocy5sb2FkUHJldk5leHQpaWYoYz4xfHxzLmxvYWRQcmV2TmV4dEFtb3VudCYmcy5sb2FkUHJldk5leHRBbW91bnQ+MSl7Zm9yKHZhciBmPXMubG9hZFByZXZOZXh0QW1vdW50LHY9YyxoPU1hdGgubWluKGkrditNYXRoLm1heChmLHYpLG4ubGVuZ3RoKSxnPU1hdGgubWF4KGktTWF0aC5tYXgodixmKSwwKSxiPWkrYztiPGg7Yis9MSlkKGIpJiZsKGIpO2Zvcih2YXIgeT1nO3k8aTt5Kz0xKWQoeSkmJmwoeSl9ZWxzZXt2YXIgdz1lLmNoaWxkcmVuKCIuIi5jb25jYXQoYS5zbGlkZU5leHRDbGFzcykpO3cubGVuZ3RoPjAmJmwodSh3KSk7dmFyIHg9ZS5jaGlsZHJlbigiLiIuY29uY2F0KGEuc2xpZGVQcmV2Q2xhc3MpKTt4Lmxlbmd0aD4wJiZsKHUoeCkpfX1mdW5jdGlvbiBkKCl7dmFyIGU9cigpO2lmKHQmJiF0LmRlc3Ryb3llZCl7dmFyIGE9dC5wYXJhbXMubGF6eS5zY3JvbGxpbmdFbGVtZW50P20odC5wYXJhbXMubGF6eS5zY3JvbGxpbmdFbGVtZW50KTptKGUpLG49YVswXT09PWUsaT1uP2UuaW5uZXJXaWR0aDphWzBdLm9mZnNldFdpZHRoLG89bj9lLmlubmVySGVpZ2h0OmFbMF0ub2Zmc2V0SGVpZ2h0LGw9dC4kZWwub2Zmc2V0KCksdT0hMTt0LnJ0bFRyYW5zbGF0ZSYmKGwubGVmdC09dC4kZWxbMF0uc2Nyb2xsTGVmdCk7Zm9yKHZhciBwPVtbbC5sZWZ0LGwudG9wXSxbbC5sZWZ0K3Qud2lkdGgsbC50b3BdLFtsLmxlZnQsbC50b3ArdC5oZWlnaHRdLFtsLmxlZnQrdC53aWR0aCxsLnRvcCt0LmhlaWdodF1dLGY9MDtmPHAubGVuZ3RoO2YrPTEpe3ZhciB2PXBbZl07aWYodlswXT49MCYmdlswXTw9aSYmdlsxXT49MCYmdlsxXTw9byl7aWYoMD09PXZbMF0mJjA9PT12WzFdKWNvbnRpbnVlO3U9ITB9fXZhciBoPSEoInRvdWNoc3RhcnQiIT09dC50b3VjaEV2ZW50cy5zdGFydHx8IXQuc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXJ8fCF0LnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzKSYme3Bhc3NpdmU6ITAsY2FwdHVyZTohMX07dT8oYygpLGEub2ZmKCJzY3JvbGwiLGQsaCkpOnN8fChzPSEwLGEub24oInNjcm9sbCIsZCxoKSl9fW4oImJlZm9yZUluaXQiLChmdW5jdGlvbigpe3QucGFyYW1zLmxhenkuZW5hYmxlZCYmdC5wYXJhbXMucHJlbG9hZEltYWdlcyYmKHQucGFyYW1zLnByZWxvYWRJbWFnZXM9ITEpfSkpLG4oImluaXQiLChmdW5jdGlvbigpe3QucGFyYW1zLmxhenkuZW5hYmxlZCYmKHQucGFyYW1zLmxhenkuY2hlY2tJblZpZXc/ZCgpOmMoKSl9KSksbigic2Nyb2xsIiwoZnVuY3Rpb24oKXt0LnBhcmFtcy5mcmVlTW9kZSYmdC5wYXJhbXMuZnJlZU1vZGUuZW5hYmxlZCYmIXQucGFyYW1zLmZyZWVNb2RlLnN0aWNreSYmYygpfSkpLG4oInNjcm9sbGJhckRyYWdNb3ZlIHJlc2l6ZSBfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZSIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMubGF6eS5lbmFibGVkJiYodC5wYXJhbXMubGF6eS5jaGVja0luVmlldz9kKCk6YygpKX0pKSxuKCJ0cmFuc2l0aW9uU3RhcnQiLChmdW5jdGlvbigpe3QucGFyYW1zLmxhenkuZW5hYmxlZCYmKHQucGFyYW1zLmxhenkubG9hZE9uVHJhbnNpdGlvblN0YXJ0fHwhdC5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnQmJiFvKSYmKHQucGFyYW1zLmxhenkuY2hlY2tJblZpZXc/ZCgpOmMoKSl9KSksbigidHJhbnNpdGlvbkVuZCIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMubGF6eS5lbmFibGVkJiYhdC5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnQmJih0LnBhcmFtcy5sYXp5LmNoZWNrSW5WaWV3P2QoKTpjKCkpfSkpLG4oInNsaWRlQ2hhbmdlIiwoZnVuY3Rpb24oKXt2YXIgZT10LnBhcmFtcyxhPWUubGF6eSxuPWUuY3NzTW9kZSxpPWUud2F0Y2hTbGlkZXNQcm9ncmVzcyxyPWUudG91Y2hSZWxlYXNlT25FZGdlcyxzPWUucmVzaXN0YW5jZVJhdGlvO2EuZW5hYmxlZCYmKG58fGkmJihyfHwwPT09cykpJiZjKCl9KSksT2JqZWN0LmFzc2lnbih0Lmxhenkse2xvYWQ6Yyxsb2FkSW5TbGlkZTpsfSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Z1bmN0aW9uIGkoZSx0KXt2YXIgYSxuLGk9ZnVuY3Rpb24oKXt2YXIgZSx0LGE7cmV0dXJuIGZ1bmN0aW9uKG4saSl7Zm9yKHQ9LTEsZT1uLmxlbmd0aDtlLXQ+MTspblthPWUrdD4+MV08PWk/dD1hOmU9YTtyZXR1cm4gZX19KCk7cmV0dXJuIHRoaXMueD1lLHRoaXMueT10LHRoaXMubGFzdEluZGV4PWUubGVuZ3RoLTEsdGhpcy5pbnRlcnBvbGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZT8obj1pKHRoaXMueCxlKSxhPW4tMSwoZS10aGlzLnhbYV0pKih0aGlzLnlbbl0tdGhpcy55W2FdKS8odGhpcy54W25dLXRoaXMueFthXSkrdGhpcy55W2FdKTowfSx0aGlzfWZ1bmN0aW9uIHIoKXt0LmNvbnRyb2xsZXIuY29udHJvbCYmdC5jb250cm9sbGVyLnNwbGluZSYmKHQuY29udHJvbGxlci5zcGxpbmU9dm9pZCAwLGRlbGV0ZSB0LmNvbnRyb2xsZXIuc3BsaW5lKX1hKHtjb250cm9sbGVyOntjb250cm9sOnZvaWQgMCxpbnZlcnNlOiExLGJ5OiJzbGlkZSJ9fSksdC5jb250cm9sbGVyPXtjb250cm9sOnZvaWQgMH0sbigiYmVmb3JlSW5pdCIsKGZ1bmN0aW9uKCl7dC5jb250cm9sbGVyLmNvbnRyb2w9dC5wYXJhbXMuY29udHJvbGxlci5jb250cm9sfSkpLG4oInVwZGF0ZSIsKGZ1bmN0aW9uKCl7cigpfSkpLG4oInJlc2l6ZSIsKGZ1bmN0aW9uKCl7cigpfSkpLG4oIm9ic2VydmVyVXBkYXRlIiwoZnVuY3Rpb24oKXtyKCl9KSksbigic2V0VHJhbnNsYXRlIiwoZnVuY3Rpb24oZSxhLG4pe3QuY29udHJvbGxlci5jb250cm9sJiZ0LmNvbnRyb2xsZXIuc2V0VHJhbnNsYXRlKGEsbil9KSksbigic2V0VHJhbnNpdGlvbiIsKGZ1bmN0aW9uKGUsYSxuKXt0LmNvbnRyb2xsZXIuY29udHJvbCYmdC5jb250cm9sbGVyLnNldFRyYW5zaXRpb24oYSxuKX0pKSxPYmplY3QuYXNzaWduKHQuY29udHJvbGxlcix7c2V0VHJhbnNsYXRlOmZ1bmN0aW9uKGUsYSl7dmFyIG4scixzPXQuY29udHJvbGxlci5jb250cm9sLG89dC5jb25zdHJ1Y3RvcjtmdW5jdGlvbiBsKGUpe3ZhciBhPXQucnRsVHJhbnNsYXRlPy10LnRyYW5zbGF0ZTp0LnRyYW5zbGF0ZTsic2xpZGUiPT09dC5wYXJhbXMuY29udHJvbGxlci5ieSYmKGZ1bmN0aW9uKGUpe3QuY29udHJvbGxlci5zcGxpbmV8fCh0LmNvbnRyb2xsZXIuc3BsaW5lPXQucGFyYW1zLmxvb3A/bmV3IGkodC5zbGlkZXNHcmlkLGUuc2xpZGVzR3JpZCk6bmV3IGkodC5zbmFwR3JpZCxlLnNuYXBHcmlkKSl9KGUpLHI9LXQuY29udHJvbGxlci5zcGxpbmUuaW50ZXJwb2xhdGUoLWEpKSxyJiYiY29udGFpbmVyIiE9PXQucGFyYW1zLmNvbnRyb2xsZXIuYnl8fChuPShlLm1heFRyYW5zbGF0ZSgpLWUubWluVHJhbnNsYXRlKCkpLyh0Lm1heFRyYW5zbGF0ZSgpLXQubWluVHJhbnNsYXRlKCkpLHI9KGEtdC5taW5UcmFuc2xhdGUoKSkqbitlLm1pblRyYW5zbGF0ZSgpKSx0LnBhcmFtcy5jb250cm9sbGVyLmludmVyc2UmJihyPWUubWF4VHJhbnNsYXRlKCktciksZS51cGRhdGVQcm9ncmVzcyhyKSxlLnNldFRyYW5zbGF0ZShyLHQpLGUudXBkYXRlQWN0aXZlSW5kZXgoKSxlLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKX1pZihBcnJheS5pc0FycmF5KHMpKWZvcih2YXIgYz0wO2M8cy5sZW5ndGg7Yys9MSlzW2NdIT09YSYmc1tjXWluc3RhbmNlb2YgbyYmbChzW2NdKTtlbHNlIHMgaW5zdGFuY2VvZiBvJiZhIT09cyYmbChzKX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlLGEpe3ZhciBuLGk9dC5jb25zdHJ1Y3RvcixyPXQuY29udHJvbGxlci5jb250cm9sO2Z1bmN0aW9uIHMoYSl7YS5zZXRUcmFuc2l0aW9uKGUsdCksMCE9PWUmJihhLnRyYW5zaXRpb25TdGFydCgpLGEucGFyYW1zLmF1dG9IZWlnaHQmJkMoKGZ1bmN0aW9uKCl7YS51cGRhdGVBdXRvSGVpZ2h0KCl9KSksYS4kd3JhcHBlckVsLnRyYW5zaXRpb25FbmQoKGZ1bmN0aW9uKCl7ciYmKGEucGFyYW1zLmxvb3AmJiJzbGlkZSI9PT10LnBhcmFtcy5jb250cm9sbGVyLmJ5JiZhLmxvb3BGaXgoKSxhLnRyYW5zaXRpb25FbmQoKSl9KSkpfWlmKEFycmF5LmlzQXJyYXkocikpZm9yKG49MDtuPHIubGVuZ3RoO24rPTEpcltuXSE9PWEmJnJbbl1pbnN0YW5jZW9mIGkmJnMocltuXSk7ZWxzZSByIGluc3RhbmNlb2YgaSYmYSE9PXImJnMocil9fSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Eoe2ExMXk6e2VuYWJsZWQ6ITAsbm90aWZpY2F0aW9uQ2xhc3M6InN3aXBlci1ub3RpZmljYXRpb24iLHByZXZTbGlkZU1lc3NhZ2U6IlByZXZpb3VzIHNsaWRlIixuZXh0U2xpZGVNZXNzYWdlOiJOZXh0IHNsaWRlIixmaXJzdFNsaWRlTWVzc2FnZToiVGhpcyBpcyB0aGUgZmlyc3Qgc2xpZGUiLGxhc3RTbGlkZU1lc3NhZ2U6IlRoaXMgaXMgdGhlIGxhc3Qgc2xpZGUiLHBhZ2luYXRpb25CdWxsZXRNZXNzYWdlOiJHbyB0byBzbGlkZSB7e2luZGV4fX0iLHNsaWRlTGFiZWxNZXNzYWdlOiJ7e2luZGV4fX0gLyB7e3NsaWRlc0xlbmd0aH19Iixjb250YWluZXJNZXNzYWdlOm51bGwsY29udGFpbmVyUm9sZURlc2NyaXB0aW9uTWVzc2FnZTpudWxsLGl0ZW1Sb2xlRGVzY3JpcHRpb25NZXNzYWdlOm51bGwsc2xpZGVSb2xlOiJncm91cCJ9fSk7dmFyIGk9bnVsbDtmdW5jdGlvbiByKGUpe3ZhciB0PWk7MCE9PXQubGVuZ3RoJiYodC5odG1sKCIiKSx0Lmh0bWwoZSkpfWZ1bmN0aW9uIHMoZSl7ZS5hdHRyKCJ0YWJJbmRleCIsIjAiKX1mdW5jdGlvbiBvKGUpe2UuYXR0cigidGFiSW5kZXgiLCItMSIpfWZ1bmN0aW9uIGwoZSx0KXtlLmF0dHIoInJvbGUiLHQpfWZ1bmN0aW9uIGMoZSx0KXtlLmF0dHIoImFyaWEtcm9sZWRlc2NyaXB0aW9uIix0KX1mdW5jdGlvbiBkKGUsdCl7ZS5hdHRyKCJhcmlhLWxhYmVsIix0KX1mdW5jdGlvbiB1KGUpe2UuYXR0cigiYXJpYS1kaXNhYmxlZCIsITApfWZ1bmN0aW9uIHAoZSl7ZS5hdHRyKCJhcmlhLWRpc2FibGVkIiwhMSl9ZnVuY3Rpb24gZihlKXtpZigxMz09PWUua2V5Q29kZXx8MzI9PT1lLmtleUNvZGUpe3ZhciBhPXQucGFyYW1zLmExMXksbj1tKGUudGFyZ2V0KTt0Lm5hdmlnYXRpb24mJnQubmF2aWdhdGlvbi4kbmV4dEVsJiZuLmlzKHQubmF2aWdhdGlvbi4kbmV4dEVsKSYmKHQuaXNFbmQmJiF0LnBhcmFtcy5sb29wfHx0LnNsaWRlTmV4dCgpLHQuaXNFbmQ/cihhLmxhc3RTbGlkZU1lc3NhZ2UpOnIoYS5uZXh0U2xpZGVNZXNzYWdlKSksdC5uYXZpZ2F0aW9uJiZ0Lm5hdmlnYXRpb24uJHByZXZFbCYmbi5pcyh0Lm5hdmlnYXRpb24uJHByZXZFbCkmJih0LmlzQmVnaW5uaW5nJiYhdC5wYXJhbXMubG9vcHx8dC5zbGlkZVByZXYoKSx0LmlzQmVnaW5uaW5nP3IoYS5maXJzdFNsaWRlTWVzc2FnZSk6cihhLnByZXZTbGlkZU1lc3NhZ2UpKSx0LnBhZ2luYXRpb24mJm4uaXMoSih0LnBhcmFtcy5wYWdpbmF0aW9uLmJ1bGxldENsYXNzKSkmJm5bMF0uY2xpY2soKX19ZnVuY3Rpb24gdigpe2lmKCF0LnBhcmFtcy5sb29wJiZ0Lm5hdmlnYXRpb24pe3ZhciBlPXQubmF2aWdhdGlvbixhPWUuJG5leHRFbCxuPWUuJHByZXZFbDtuJiZuLmxlbmd0aD4wJiYodC5pc0JlZ2lubmluZz8odShuKSxvKG4pKToocChuKSxzKG4pKSksYSYmYS5sZW5ndGg+MCYmKHQuaXNFbmQ/KHUoYSksbyhhKSk6KHAoYSkscyhhKSkpfX1mdW5jdGlvbiBoKCl7cmV0dXJuIHQucGFnaW5hdGlvbiYmdC5wYXJhbXMucGFnaW5hdGlvbi5jbGlja2FibGUmJnQucGFnaW5hdGlvbi5idWxsZXRzJiZ0LnBhZ2luYXRpb24uYnVsbGV0cy5sZW5ndGh9dmFyIGc9ZnVuY3Rpb24oZSx0LGEpe3MoZSksIkJVVFRPTiIhPT1lWzBdLnRhZ05hbWUmJihsKGUsImJ1dHRvbiIpLGUub24oImtleWRvd24iLGYpKSxkKGUsYSksZnVuY3Rpb24oZSx0KXtlLmF0dHIoImFyaWEtY29udHJvbHMiLHQpfShlLHQpfTtuKCJiZWZvcmVJbml0IiwoZnVuY3Rpb24oKXtpPW0oJzxzcGFuIGNsYXNzPSInLmNvbmNhdCh0LnBhcmFtcy5hMTF5Lm5vdGlmaWNhdGlvbkNsYXNzLCciIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBhcmlhLWF0b21pYz0idHJ1ZSI+PC9zcGFuPicpKX0pKSxuKCJhZnRlckluaXQiLChmdW5jdGlvbigpe3QucGFyYW1zLmExMXkuZW5hYmxlZCYmKGZ1bmN0aW9uKCl7dmFyIGU9dC5wYXJhbXMuYTExeTt0LiRlbC5hcHBlbmQoaSk7dmFyIGE9dC4kZWw7ZS5jb250YWluZXJSb2xlRGVzY3JpcHRpb25NZXNzYWdlJiZjKGEsZS5jb250YWluZXJSb2xlRGVzY3JpcHRpb25NZXNzYWdlKSxlLmNvbnRhaW5lck1lc3NhZ2UmJmQoYSxlLmNvbnRhaW5lck1lc3NhZ2UpO3ZhciBuLHI9dC4kd3JhcHBlckVsLHM9ci5hdHRyKCJpZCIpfHwic3dpcGVyLXdyYXBwZXItIi5jb25jYXQoZnVuY3Rpb24oKXtyZXR1cm4ieCIucmVwZWF0KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxNikucmVwbGFjZSgveC9nLChmdW5jdGlvbigpe3JldHVybiBNYXRoLnJvdW5kKDE2Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KX0pKX0oMTYpKSxvPXQucGFyYW1zLmF1dG9wbGF5JiZ0LnBhcmFtcy5hdXRvcGxheS5lbmFibGVkPyJvZmYiOiJwb2xpdGUiO249cyxyLmF0dHIoImlkIixuKSxmdW5jdGlvbihlLHQpe2UuYXR0cigiYXJpYS1saXZlIix0KX0ocixvKSxlLml0ZW1Sb2xlRGVzY3JpcHRpb25NZXNzYWdlJiZjKG0odC5zbGlkZXMpLGUuaXRlbVJvbGVEZXNjcmlwdGlvbk1lc3NhZ2UpLGwobSh0LnNsaWRlcyksZS5zbGlkZVJvbGUpO3ZhciB1LHAsdj10LnBhcmFtcy5sb29wP3Quc2xpZGVzLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKHQucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpfSkpLmxlbmd0aDp0LnNsaWRlcy5sZW5ndGg7dC5zbGlkZXMuZWFjaCgoZnVuY3Rpb24oYSxuKXt2YXIgaT1tKGEpLHI9dC5wYXJhbXMubG9vcD9wYXJzZUludChpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApOm47ZChpLGUuc2xpZGVMYWJlbE1lc3NhZ2UucmVwbGFjZSgvXHtce2luZGV4XH1cfS8scisxKS5yZXBsYWNlKC9ce1x7c2xpZGVzTGVuZ3RoXH1cfS8sdikpfSkpLHQubmF2aWdhdGlvbiYmdC5uYXZpZ2F0aW9uLiRuZXh0RWwmJih1PXQubmF2aWdhdGlvbi4kbmV4dEVsKSx0Lm5hdmlnYXRpb24mJnQubmF2aWdhdGlvbi4kcHJldkVsJiYocD10Lm5hdmlnYXRpb24uJHByZXZFbCksdSYmdS5sZW5ndGgmJmcodSxzLGUubmV4dFNsaWRlTWVzc2FnZSkscCYmcC5sZW5ndGgmJmcocCxzLGUucHJldlNsaWRlTWVzc2FnZSksaCgpJiZ0LnBhZ2luYXRpb24uJGVsLm9uKCJrZXlkb3duIixKKHQucGFyYW1zLnBhZ2luYXRpb24uYnVsbGV0Q2xhc3MpLGYpfSgpLHYoKSl9KSksbigidG9FZGdlIiwoZnVuY3Rpb24oKXt0LnBhcmFtcy5hMTF5LmVuYWJsZWQmJnYoKX0pKSxuKCJmcm9tRWRnZSIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMuYTExeS5lbmFibGVkJiZ2KCl9KSksbigicGFnaW5hdGlvblVwZGF0ZSIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMuYTExeS5lbmFibGVkJiZmdW5jdGlvbigpe3ZhciBlPXQucGFyYW1zLmExMXk7aCgpJiZ0LnBhZ2luYXRpb24uYnVsbGV0cy5lYWNoKChmdW5jdGlvbihhKXt2YXIgbj1tKGEpO3MobiksdC5wYXJhbXMucGFnaW5hdGlvbi5yZW5kZXJCdWxsZXR8fChsKG4sImJ1dHRvbiIpLGQobixlLnBhZ2luYXRpb25CdWxsZXRNZXNzYWdlLnJlcGxhY2UoL1x7XHtpbmRleFx9XH0vLG4uaW5kZXgoKSsxKSkpfSkpfSgpfSkpLG4oImRlc3Ryb3kiLChmdW5jdGlvbigpe3QucGFyYW1zLmExMXkuZW5hYmxlZCYmZnVuY3Rpb24oKXt2YXIgZSxhO2kmJmkubGVuZ3RoPjAmJmkucmVtb3ZlKCksdC5uYXZpZ2F0aW9uJiZ0Lm5hdmlnYXRpb24uJG5leHRFbCYmKGU9dC5uYXZpZ2F0aW9uLiRuZXh0RWwpLHQubmF2aWdhdGlvbiYmdC5uYXZpZ2F0aW9uLiRwcmV2RWwmJihhPXQubmF2aWdhdGlvbi4kcHJldkVsKSxlJiZlLm9mZigia2V5ZG93biIsZiksYSYmYS5vZmYoImtleWRvd24iLGYpLGgoKSYmdC5wYWdpbmF0aW9uLiRlbC5vZmYoImtleWRvd24iLEoodC5wYXJhbXMucGFnaW5hdGlvbi5idWxsZXRDbGFzcyksZil9KCl9KSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Eoe2hpc3Rvcnk6e2VuYWJsZWQ6ITEscm9vdDoiIixyZXBsYWNlU3RhdGU6ITEsa2V5OiJzbGlkZXMifX0pO3ZhciBpPSExLHM9e30sbz1mdW5jdGlvbihlKXtyZXR1cm4gZS50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvW15cdy1dKy9nLCIiKS5yZXBsYWNlKC8tLSsvZywiLSIpLnJlcGxhY2UoL14tKy8sIiIpLnJlcGxhY2UoLy0rJC8sIiIpfSxsPWZ1bmN0aW9uKGUpe3ZhciB0PXIoKSxhPShlP25ldyBVUkwoZSk6dC5sb2NhdGlvbikucGF0aG5hbWUuc2xpY2UoMSkuc3BsaXQoIi8iKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiIiIT09ZX0pKSxuPWEubGVuZ3RoO3JldHVybntrZXk6YVtuLTJdLHZhbHVlOmFbbi0xXX19LGM9ZnVuY3Rpb24oZSxhKXt2YXIgbj1yKCk7aWYoaSYmdC5wYXJhbXMuaGlzdG9yeS5lbmFibGVkKXt2YXIgcztzPXQucGFyYW1zLnVybD9uZXcgVVJMKHQucGFyYW1zLnVybCk6bi5sb2NhdGlvbjt2YXIgbD10LnNsaWRlcy5lcShhKSxjPW8obC5hdHRyKCJkYXRhLWhpc3RvcnkiKSk7aWYodC5wYXJhbXMuaGlzdG9yeS5yb290Lmxlbmd0aD4wKXt2YXIgZD10LnBhcmFtcy5oaXN0b3J5LnJvb3Q7Ii8iPT09ZFtkLmxlbmd0aC0xXSYmKGQ9ZC5zbGljZSgwLGQubGVuZ3RoLTEpKSxjPSIiLmNvbmNhdChkLCIvIikuY29uY2F0KGUsIi8iKS5jb25jYXQoYyl9ZWxzZSBzLnBhdGhuYW1lLmluY2x1ZGVzKGUpfHwoYz0iIi5jb25jYXQoZSwiLyIpLmNvbmNhdChjKSk7dmFyIHU9bi5oaXN0b3J5LnN0YXRlO3UmJnUudmFsdWU9PT1jfHwodC5wYXJhbXMuaGlzdG9yeS5yZXBsYWNlU3RhdGU/bi5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7dmFsdWU6Y30sbnVsbCxjKTpuLmhpc3RvcnkucHVzaFN0YXRlKHt2YWx1ZTpjfSxudWxsLGMpKX19LGQ9ZnVuY3Rpb24oZSxhLG4pe2lmKGEpZm9yKHZhciBpPTAscj10LnNsaWRlcy5sZW5ndGg7aTxyO2krPTEpe3ZhciBzPXQuc2xpZGVzLmVxKGkpO2lmKG8ocy5hdHRyKCJkYXRhLWhpc3RvcnkiKSk9PT1hJiYhcy5oYXNDbGFzcyh0LnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSl7dmFyIGw9cy5pbmRleCgpO3Quc2xpZGVUbyhsLGUsbil9fWVsc2UgdC5zbGlkZVRvKDAsZSxuKX0sdT1mdW5jdGlvbigpe3M9bCh0LnBhcmFtcy51cmwpLGQodC5wYXJhbXMuc3BlZWQsdC5wYXRocy52YWx1ZSwhMSl9O24oImluaXQiLChmdW5jdGlvbigpe3QucGFyYW1zLmhpc3RvcnkuZW5hYmxlZCYmZnVuY3Rpb24oKXt2YXIgZT1yKCk7aWYodC5wYXJhbXMuaGlzdG9yeSl7aWYoIWUuaGlzdG9yeXx8IWUuaGlzdG9yeS5wdXNoU3RhdGUpcmV0dXJuIHQucGFyYW1zLmhpc3RvcnkuZW5hYmxlZD0hMSx2b2lkKHQucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQ9ITApO2k9ITAsKChzPWwodC5wYXJhbXMudXJsKSkua2V5fHxzLnZhbHVlKSYmKGQoMCxzLnZhbHVlLHQucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCksdC5wYXJhbXMuaGlzdG9yeS5yZXBsYWNlU3RhdGV8fGUuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHUpKX19KCl9KSksbigiZGVzdHJveSIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMuaGlzdG9yeS5lbmFibGVkJiZmdW5jdGlvbigpe3ZhciBlPXIoKTt0LnBhcmFtcy5oaXN0b3J5LnJlcGxhY2VTdGF0ZXx8ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsdSl9KCl9KSksbigidHJhbnNpdGlvbkVuZCBfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZSIsKGZ1bmN0aW9uKCl7aSYmYyh0LnBhcmFtcy5oaXN0b3J5LmtleSx0LmFjdGl2ZUluZGV4KX0pKSxuKCJzbGlkZUNoYW5nZSIsKGZ1bmN0aW9uKCl7aSYmdC5wYXJhbXMuY3NzTW9kZSYmYyh0LnBhcmFtcy5oaXN0b3J5LmtleSx0LmFjdGl2ZUluZGV4KX0pKX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxpPWUuZW1pdCxzPWUub24sbz0hMSxsPW4oKSxjPXIoKTthKHtoYXNoTmF2aWdhdGlvbjp7ZW5hYmxlZDohMSxyZXBsYWNlU3RhdGU6ITEsd2F0Y2hTdGF0ZTohMX19KTt2YXIgZD1mdW5jdGlvbigpe2koImhhc2hDaGFuZ2UiKTt2YXIgZT1sLmxvY2F0aW9uLmhhc2gucmVwbGFjZSgiIyIsIiIpO2lmKGUhPT10LnNsaWRlcy5lcSh0LmFjdGl2ZUluZGV4KS5hdHRyKCJkYXRhLWhhc2giKSl7dmFyIGE9dC4kd3JhcHBlckVsLmNoaWxkcmVuKCIuIi5jb25jYXQodC5wYXJhbXMuc2xpZGVDbGFzcywnW2RhdGEtaGFzaD0iJykuY29uY2F0KGUsJyJdJykpLmluZGV4KCk7aWYodm9pZCAwPT09YSlyZXR1cm47dC5zbGlkZVRvKGEpfX0sdT1mdW5jdGlvbigpe2lmKG8mJnQucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLmVuYWJsZWQpaWYodC5wYXJhbXMuaGFzaE5hdmlnYXRpb24ucmVwbGFjZVN0YXRlJiZjLmhpc3RvcnkmJmMuaGlzdG9yeS5yZXBsYWNlU3RhdGUpYy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIiMiLmNvbmNhdCh0LnNsaWRlcy5lcSh0LmFjdGl2ZUluZGV4KS5hdHRyKCJkYXRhLWhhc2giKSl8fDApLGkoImhhc2hTZXQiKTtlbHNle3ZhciBlPXQuc2xpZGVzLmVxKHQuYWN0aXZlSW5kZXgpLGE9ZS5hdHRyKCJkYXRhLWhhc2giKXx8ZS5hdHRyKCJkYXRhLWhpc3RvcnkiKTtsLmxvY2F0aW9uLmhhc2g9YXx8IiIsaSgiaGFzaFNldCIpfX07cygiaW5pdCIsKGZ1bmN0aW9uKCl7dC5wYXJhbXMuaGFzaE5hdmlnYXRpb24uZW5hYmxlZCYmZnVuY3Rpb24oKXtpZighKCF0LnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5lbmFibGVkfHx0LnBhcmFtcy5oaXN0b3J5JiZ0LnBhcmFtcy5oaXN0b3J5LmVuYWJsZWQpKXtvPSEwO3ZhciBlPWwubG9jYXRpb24uaGFzaC5yZXBsYWNlKCIjIiwiIik7aWYoZSlmb3IodmFyIGE9MCxuPXQuc2xpZGVzLmxlbmd0aDthPG47YSs9MSl7dmFyIGk9dC5zbGlkZXMuZXEoYSk7aWYoKGkuYXR0cigiZGF0YS1oYXNoIil8fGkuYXR0cigiZGF0YS1oaXN0b3J5IikpPT09ZSYmIWkuaGFzQ2xhc3ModC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcykpe3ZhciByPWkuaW5kZXgoKTt0LnNsaWRlVG8ociwwLHQucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMCl9fXQucGFyYW1zLmhhc2hOYXZpZ2F0aW9uLndhdGNoU3RhdGUmJm0oYykub24oImhhc2hjaGFuZ2UiLGQpfX0oKX0pKSxzKCJkZXN0cm95IiwoZnVuY3Rpb24oKXt0LnBhcmFtcy5oYXNoTmF2aWdhdGlvbi5lbmFibGVkJiZ0LnBhcmFtcy5oYXNoTmF2aWdhdGlvbi53YXRjaFN0YXRlJiZtKGMpLm9mZigiaGFzaGNoYW5nZSIsZCl9KSkscygidHJhbnNpdGlvbkVuZCBfZnJlZU1vZGVOb01vbWVudHVtUmVsZWFzZSIsKGZ1bmN0aW9uKCl7byYmdSgpfSkpLHMoInNsaWRlQ2hhbmdlIiwoZnVuY3Rpb24oKXtvJiZ0LnBhcmFtcy5jc3NNb2RlJiZ1KCl9KSl9LGZ1bmN0aW9uKGUpe3ZhciB0LGE9ZS5zd2lwZXIsaT1lLmV4dGVuZFBhcmFtcyxyPWUub24scz1lLmVtaXQ7ZnVuY3Rpb24gbygpe3ZhciBlPWEuc2xpZGVzLmVxKGEuYWN0aXZlSW5kZXgpLG49YS5wYXJhbXMuYXV0b3BsYXkuZGVsYXk7ZS5hdHRyKCJkYXRhLXN3aXBlci1hdXRvcGxheSIpJiYobj1lLmF0dHIoImRhdGEtc3dpcGVyLWF1dG9wbGF5Iil8fGEucGFyYW1zLmF1dG9wbGF5LmRlbGF5KSxjbGVhclRpbWVvdXQodCksdD1DKChmdW5jdGlvbigpe3ZhciBlO2EucGFyYW1zLmF1dG9wbGF5LnJldmVyc2VEaXJlY3Rpb24/YS5wYXJhbXMubG9vcD8oYS5sb29wRml4KCksZT1hLnNsaWRlUHJldihhLnBhcmFtcy5zcGVlZCwhMCwhMCkscygiYXV0b3BsYXkiKSk6YS5pc0JlZ2lubmluZz9hLnBhcmFtcy5hdXRvcGxheS5zdG9wT25MYXN0U2xpZGU/YygpOihlPWEuc2xpZGVUbyhhLnNsaWRlcy5sZW5ndGgtMSxhLnBhcmFtcy5zcGVlZCwhMCwhMCkscygiYXV0b3BsYXkiKSk6KGU9YS5zbGlkZVByZXYoYS5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpOmEucGFyYW1zLmxvb3A/KGEubG9vcEZpeCgpLGU9YS5zbGlkZU5leHQoYS5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpOmEuaXNFbmQ/YS5wYXJhbXMuYXV0b3BsYXkuc3RvcE9uTGFzdFNsaWRlP2MoKTooZT1hLnNsaWRlVG8oMCxhLnBhcmFtcy5zcGVlZCwhMCwhMCkscygiYXV0b3BsYXkiKSk6KGU9YS5zbGlkZU5leHQoYS5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpLChhLnBhcmFtcy5jc3NNb2RlJiZhLmF1dG9wbGF5LnJ1bm5pbmd8fCExPT09ZSkmJm8oKX0pLG4pfWZ1bmN0aW9uIGwoKXtyZXR1cm4gdm9pZCAwPT09dCYmIWEuYXV0b3BsYXkucnVubmluZyYmKGEuYXV0b3BsYXkucnVubmluZz0hMCxzKCJhdXRvcGxheVN0YXJ0IiksbygpLCEwKX1mdW5jdGlvbiBjKCl7cmV0dXJuISFhLmF1dG9wbGF5LnJ1bm5pbmcmJnZvaWQgMCE9PXQmJih0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9dm9pZCAwKSxhLmF1dG9wbGF5LnJ1bm5pbmc9ITEscygiYXV0b3BsYXlTdG9wIiksITApfWZ1bmN0aW9uIGQoZSl7YS5hdXRvcGxheS5ydW5uaW5nJiYoYS5hdXRvcGxheS5wYXVzZWR8fCh0JiZjbGVhclRpbWVvdXQodCksYS5hdXRvcGxheS5wYXVzZWQ9ITAsMCE9PWUmJmEucGFyYW1zLmF1dG9wbGF5LndhaXRGb3JUcmFuc2l0aW9uP1sidHJhbnNpdGlvbmVuZCIsIndlYmtpdFRyYW5zaXRpb25FbmQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcihlLHApfSkpOihhLmF1dG9wbGF5LnBhdXNlZD0hMSxvKCkpKSl9ZnVuY3Rpb24gdSgpe3ZhciBlPW4oKTsiaGlkZGVuIj09PWUudmlzaWJpbGl0eVN0YXRlJiZhLmF1dG9wbGF5LnJ1bm5pbmcmJmQoKSwidmlzaWJsZSI9PT1lLnZpc2liaWxpdHlTdGF0ZSYmYS5hdXRvcGxheS5wYXVzZWQmJihvKCksYS5hdXRvcGxheS5wYXVzZWQ9ITEpfWZ1bmN0aW9uIHAoZSl7YSYmIWEuZGVzdHJveWVkJiZhLiR3cmFwcGVyRWwmJmUudGFyZ2V0PT09YS4kd3JhcHBlckVsWzBdJiYoWyJ0cmFuc2l0aW9uZW5kIiwid2Via2l0VHJhbnNpdGlvbkVuZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2EuJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKGUscCl9KSksYS5hdXRvcGxheS5wYXVzZWQ9ITEsYS5hdXRvcGxheS5ydW5uaW5nP28oKTpjKCkpfWZ1bmN0aW9uIGYoKXthLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbj9jKCk6ZCgpLFsidHJhbnNpdGlvbmVuZCIsIndlYmtpdFRyYW5zaXRpb25FbmQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHApfSkpfWZ1bmN0aW9uIHYoKXthLnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbnx8KGEuYXV0b3BsYXkucGF1c2VkPSExLG8oKSl9YS5hdXRvcGxheT17cnVubmluZzohMSxwYXVzZWQ6ITF9LGkoe2F1dG9wbGF5OntlbmFibGVkOiExLGRlbGF5OjNlMyx3YWl0Rm9yVHJhbnNpdGlvbjohMCxkaXNhYmxlT25JbnRlcmFjdGlvbjohMCxzdG9wT25MYXN0U2xpZGU6ITEscmV2ZXJzZURpcmVjdGlvbjohMSxwYXVzZU9uTW91c2VFbnRlcjohMX19KSxyKCJpbml0IiwoZnVuY3Rpb24oKXthLnBhcmFtcy5hdXRvcGxheS5lbmFibGVkJiYobCgpLG4oKS5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix1KSxhLnBhcmFtcy5hdXRvcGxheS5wYXVzZU9uTW91c2VFbnRlciYmKGEuJGVsLm9uKCJtb3VzZWVudGVyIixmKSxhLiRlbC5vbigibW91c2VsZWF2ZSIsdikpKX0pKSxyKCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLChmdW5jdGlvbihlLHQsbil7YS5hdXRvcGxheS5ydW5uaW5nJiYobnx8IWEucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uP2EuYXV0b3BsYXkucGF1c2UodCk6YygpKX0pKSxyKCJzbGlkZXJGaXJzdE1vdmUiLChmdW5jdGlvbigpe2EuYXV0b3BsYXkucnVubmluZyYmKGEucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uP2MoKTpkKCkpfSkpLHIoInRvdWNoRW5kIiwoZnVuY3Rpb24oKXthLnBhcmFtcy5jc3NNb2RlJiZhLmF1dG9wbGF5LnBhdXNlZCYmIWEucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uJiZvKCl9KSkscigiZGVzdHJveSIsKGZ1bmN0aW9uKCl7YS4kZWwub2ZmKCJtb3VzZWVudGVyIixmKSxhLiRlbC5vZmYoIm1vdXNlbGVhdmUiLHYpLGEuYXV0b3BsYXkucnVubmluZyYmYygpLG4oKS5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix1KX0pKSxPYmplY3QuYXNzaWduKGEuYXV0b3BsYXkse3BhdXNlOmQscnVuOm8sc3RhcnQ6bCxzdG9wOmN9KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUub247YSh7dGh1bWJzOntzd2lwZXI6bnVsbCxtdWx0aXBsZUFjdGl2ZVRodW1iczohMCxhdXRvU2Nyb2xsT2Zmc2V0OjAsc2xpZGVUaHVtYkFjdGl2ZUNsYXNzOiJzd2lwZXItc2xpZGUtdGh1bWItYWN0aXZlIix0aHVtYnNDb250YWluZXJDbGFzczoic3dpcGVyLXRodW1icyJ9fSk7dmFyIGk9ITEscj0hMTtmdW5jdGlvbiBzKCl7dmFyIGU9dC50aHVtYnMuc3dpcGVyO2lmKGUpe3ZhciBhPWUuY2xpY2tlZEluZGV4LG49ZS5jbGlja2VkU2xpZGU7aWYoIShuJiZtKG4pLmhhc0NsYXNzKHQucGFyYW1zLnRodW1icy5zbGlkZVRodW1iQWN0aXZlQ2xhc3MpfHxudWxsPT1hKSl7dmFyIGk7aWYoaT1lLnBhcmFtcy5sb29wP3BhcnNlSW50KG0oZS5jbGlja2VkU2xpZGUpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApOmEsdC5wYXJhbXMubG9vcCl7dmFyIHI9dC5hY3RpdmVJbmRleDt0LnNsaWRlcy5lcShyKS5oYXNDbGFzcyh0LnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzKSYmKHQubG9vcEZpeCgpLHQuX2NsaWVudExlZnQ9dC4kd3JhcHBlckVsWzBdLmNsaWVudExlZnQscj10LmFjdGl2ZUluZGV4KTt2YXIgcz10LnNsaWRlcy5lcShyKS5wcmV2QWxsKCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicuY29uY2F0KGksJyJdJykpLmVxKDApLmluZGV4KCksbz10LnNsaWRlcy5lcShyKS5uZXh0QWxsKCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicuY29uY2F0KGksJyJdJykpLmVxKDApLmluZGV4KCk7aT12b2lkIDA9PT1zP286dm9pZCAwPT09bz9zOm8tcjxyLXM/bzpzfXQuc2xpZGVUbyhpKX19fWZ1bmN0aW9uIG8oKXt2YXIgZT10LnBhcmFtcy50aHVtYnM7aWYoaSlyZXR1cm4hMTtpPSEwO3ZhciBhPXQuY29uc3RydWN0b3I7aWYoZS5zd2lwZXIgaW5zdGFuY2VvZiBhKXQudGh1bWJzLnN3aXBlcj1lLnN3aXBlcixPYmplY3QuYXNzaWduKHQudGh1bWJzLnN3aXBlci5vcmlnaW5hbFBhcmFtcyx7d2F0Y2hTbGlkZXNQcm9ncmVzczohMCxzbGlkZVRvQ2xpY2tlZFNsaWRlOiExfSksT2JqZWN0LmFzc2lnbih0LnRodW1icy5zd2lwZXIucGFyYW1zLHt3YXRjaFNsaWRlc1Byb2dyZXNzOiEwLHNsaWRlVG9DbGlja2VkU2xpZGU6ITF9KTtlbHNlIGlmKFAoZS5zd2lwZXIpKXt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUuc3dpcGVyKTtPYmplY3QuYXNzaWduKG4se3dhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsc2xpZGVUb0NsaWNrZWRTbGlkZTohMX0pLHQudGh1bWJzLnN3aXBlcj1uZXcgYShuKSxyPSEwfXJldHVybiB0LnRodW1icy5zd2lwZXIuJGVsLmFkZENsYXNzKHQucGFyYW1zLnRodW1icy50aHVtYnNDb250YWluZXJDbGFzcyksdC50aHVtYnMuc3dpcGVyLm9uKCJ0YXAiLHMpLCEwfWZ1bmN0aW9uIGwoZSl7dmFyIGE9dC50aHVtYnMuc3dpcGVyO2lmKGEpe3ZhciBuPSJhdXRvIj09PWEucGFyYW1zLnNsaWRlc1BlclZpZXc/YS5zbGlkZXNQZXJWaWV3RHluYW1pYygpOmEucGFyYW1zLnNsaWRlc1BlclZpZXcsaT10LnBhcmFtcy50aHVtYnMuYXV0b1Njcm9sbE9mZnNldCxyPWkmJiFhLnBhcmFtcy5sb29wO2lmKHQucmVhbEluZGV4IT09YS5yZWFsSW5kZXh8fHIpe3ZhciBzLG8sbD1hLmFjdGl2ZUluZGV4O2lmKGEucGFyYW1zLmxvb3Ape2Euc2xpZGVzLmVxKGwpLmhhc0NsYXNzKGEucGFyYW1zLnNsaWRlRHVwbGljYXRlQ2xhc3MpJiYoYS5sb29wRml4KCksYS5fY2xpZW50TGVmdD1hLiR3cmFwcGVyRWxbMF0uY2xpZW50TGVmdCxsPWEuYWN0aXZlSW5kZXgpO3ZhciBjPWEuc2xpZGVzLmVxKGwpLnByZXZBbGwoJ1tkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJy5jb25jYXQodC5yZWFsSW5kZXgsJyJdJykpLmVxKDApLmluZGV4KCksZD1hLnNsaWRlcy5lcShsKS5uZXh0QWxsKCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicuY29uY2F0KHQucmVhbEluZGV4LCciXScpKS5lcSgwKS5pbmRleCgpO3M9dm9pZCAwPT09Yz9kOnZvaWQgMD09PWQ/YzpkLWw9PWwtYz9hLnBhcmFtcy5zbGlkZXNQZXJHcm91cD4xP2Q6bDpkLWw8bC1jP2Q6YyxvPXQuYWN0aXZlSW5kZXg+dC5wcmV2aW91c0luZGV4PyJuZXh0IjoicHJldiJ9ZWxzZSBvPShzPXQucmVhbEluZGV4KT50LnByZXZpb3VzSW5kZXg/Im5leHQiOiJwcmV2IjtyJiYocys9Im5leHQiPT09bz9pOi0xKmkpLGEudmlzaWJsZVNsaWRlc0luZGV4ZXMmJmEudmlzaWJsZVNsaWRlc0luZGV4ZXMuaW5kZXhPZihzKTwwJiYoYS5wYXJhbXMuY2VudGVyZWRTbGlkZXM/cz1zPmw/cy1NYXRoLmZsb29yKG4vMikrMTpzK01hdGguZmxvb3Iobi8yKS0xOnM+bCYmYS5wYXJhbXMuc2xpZGVzUGVyR3JvdXAsYS5zbGlkZVRvKHMsZT8wOnZvaWQgMCkpfXZhciB1PTEscD10LnBhcmFtcy50aHVtYnMuc2xpZGVUaHVtYkFjdGl2ZUNsYXNzO2lmKHQucGFyYW1zLnNsaWRlc1BlclZpZXc+MSYmIXQucGFyYW1zLmNlbnRlcmVkU2xpZGVzJiYodT10LnBhcmFtcy5zbGlkZXNQZXJWaWV3KSx0LnBhcmFtcy50aHVtYnMubXVsdGlwbGVBY3RpdmVUaHVtYnN8fCh1PTEpLHU9TWF0aC5mbG9vcih1KSxhLnNsaWRlcy5yZW1vdmVDbGFzcyhwKSxhLnBhcmFtcy5sb29wfHxhLnBhcmFtcy52aXJ0dWFsJiZhLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQpZm9yKHZhciBmPTA7Zjx1O2YrPTEpYS4kd3JhcHBlckVsLmNoaWxkcmVuKCdbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IicuY29uY2F0KHQucmVhbEluZGV4K2YsJyJdJykpLmFkZENsYXNzKHApO2Vsc2UgZm9yKHZhciB2PTA7djx1O3YrPTEpYS5zbGlkZXMuZXEodC5yZWFsSW5kZXgrdikuYWRkQ2xhc3MocCl9fXQudGh1bWJzPXtzd2lwZXI6bnVsbH0sbigiYmVmb3JlSW5pdCIsKGZ1bmN0aW9uKCl7dmFyIGU9dC5wYXJhbXMudGh1bWJzO2UmJmUuc3dpcGVyJiYobygpLGwoITApKX0pKSxuKCJzbGlkZUNoYW5nZSB1cGRhdGUgcmVzaXplIG9ic2VydmVyVXBkYXRlIiwoZnVuY3Rpb24oKXt0LnRodW1icy5zd2lwZXImJmwoKX0pKSxuKCJzZXRUcmFuc2l0aW9uIiwoZnVuY3Rpb24oZSxhKXt2YXIgbj10LnRodW1icy5zd2lwZXI7biYmbi5zZXRUcmFuc2l0aW9uKGEpfSkpLG4oImJlZm9yZURlc3Ryb3kiLChmdW5jdGlvbigpe3ZhciBlPXQudGh1bWJzLnN3aXBlcjtlJiZyJiZlJiZlLmRlc3Ryb3koKX0pKSxPYmplY3QuYXNzaWduKHQudGh1bWJzLHtpbml0Om8sdXBkYXRlOmx9KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUuZW1pdCxpPWUub25jZTthKHtmcmVlTW9kZTp7ZW5hYmxlZDohMSxtb21lbnR1bTohMCxtb21lbnR1bVJhdGlvOjEsbW9tZW50dW1Cb3VuY2U6ITAsbW9tZW50dW1Cb3VuY2VSYXRpbzoxLG1vbWVudHVtVmVsb2NpdHlSYXRpbzoxLHN0aWNreTohMSxtaW5pbXVtVmVsb2NpdHk6LjAyfX0pLE9iamVjdC5hc3NpZ24odCx7ZnJlZU1vZGU6e29uVG91Y2hNb3ZlOmZ1bmN0aW9uKCl7dmFyIGU9dC50b3VjaEV2ZW50c0RhdGEsYT10LnRvdWNoZXM7MD09PWUudmVsb2NpdGllcy5sZW5ndGgmJmUudmVsb2NpdGllcy5wdXNoKHtwb3NpdGlvbjphW3QuaXNIb3Jpem9udGFsKCk/InN0YXJ0WCI6InN0YXJ0WSJdLHRpbWU6ZS50b3VjaFN0YXJ0VGltZX0pLGUudmVsb2NpdGllcy5wdXNoKHtwb3NpdGlvbjphW3QuaXNIb3Jpem9udGFsKCk/ImN1cnJlbnRYIjoiY3VycmVudFkiXSx0aW1lOmsoKX0pfSxvblRvdWNoRW5kOmZ1bmN0aW9uKGUpe3ZhciBhPWUuY3VycmVudFBvcyxyPXQucGFyYW1zLHM9dC4kd3JhcHBlckVsLG89dC5ydGxUcmFuc2xhdGUsbD10LnNuYXBHcmlkLGM9dC50b3VjaEV2ZW50c0RhdGEsZD1rKCktYy50b3VjaFN0YXJ0VGltZTtpZihhPC10Lm1pblRyYW5zbGF0ZSgpKXQuc2xpZGVUbyh0LmFjdGl2ZUluZGV4KTtlbHNlIGlmKGE+LXQubWF4VHJhbnNsYXRlKCkpdC5zbGlkZXMubGVuZ3RoPGwubGVuZ3RoP3Quc2xpZGVUbyhsLmxlbmd0aC0xKTp0LnNsaWRlVG8odC5zbGlkZXMubGVuZ3RoLTEpO2Vsc2V7aWYoci5mcmVlTW9kZS5tb21lbnR1bSl7aWYoYy52ZWxvY2l0aWVzLmxlbmd0aD4xKXt2YXIgdT1jLnZlbG9jaXRpZXMucG9wKCkscD1jLnZlbG9jaXRpZXMucG9wKCksZj11LnBvc2l0aW9uLXAucG9zaXRpb24sdj11LnRpbWUtcC50aW1lO3QudmVsb2NpdHk9Zi92LHQudmVsb2NpdHkvPTIsTWF0aC5hYnModC52ZWxvY2l0eSk8ci5mcmVlTW9kZS5taW5pbXVtVmVsb2NpdHkmJih0LnZlbG9jaXR5PTApLCh2PjE1MHx8aygpLXUudGltZT4zMDApJiYodC52ZWxvY2l0eT0wKX1lbHNlIHQudmVsb2NpdHk9MDt0LnZlbG9jaXR5Kj1yLmZyZWVNb2RlLm1vbWVudHVtVmVsb2NpdHlSYXRpbyxjLnZlbG9jaXRpZXMubGVuZ3RoPTA7dmFyIGg9MWUzKnIuZnJlZU1vZGUubW9tZW50dW1SYXRpbyxtPXQudmVsb2NpdHkqaCxnPXQudHJhbnNsYXRlK207byYmKGc9LWcpO3ZhciBiLHksdz0hMSx4PTIwKk1hdGguYWJzKHQudmVsb2NpdHkpKnIuZnJlZU1vZGUubW9tZW50dW1Cb3VuY2VSYXRpbztpZihnPHQubWF4VHJhbnNsYXRlKCkpci5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZT8oZyt0Lm1heFRyYW5zbGF0ZSgpPC14JiYoZz10Lm1heFRyYW5zbGF0ZSgpLXgpLGI9dC5tYXhUcmFuc2xhdGUoKSx3PSEwLGMuYWxsb3dNb21lbnR1bUJvdW5jZT0hMCk6Zz10Lm1heFRyYW5zbGF0ZSgpLHIubG9vcCYmci5jZW50ZXJlZFNsaWRlcyYmKHk9ITApO2Vsc2UgaWYoZz50Lm1pblRyYW5zbGF0ZSgpKXIuZnJlZU1vZGUubW9tZW50dW1Cb3VuY2U/KGctdC5taW5UcmFuc2xhdGUoKT54JiYoZz10Lm1pblRyYW5zbGF0ZSgpK3gpLGI9dC5taW5UcmFuc2xhdGUoKSx3PSEwLGMuYWxsb3dNb21lbnR1bUJvdW5jZT0hMCk6Zz10Lm1pblRyYW5zbGF0ZSgpLHIubG9vcCYmci5jZW50ZXJlZFNsaWRlcyYmKHk9ITApO2Vsc2UgaWYoci5mcmVlTW9kZS5zdGlja3kpe2Zvcih2YXIgRSxTPTA7UzxsLmxlbmd0aDtTKz0xKWlmKGxbU10+LWcpe0U9UzticmVha31nPS0oZz1NYXRoLmFicyhsW0VdLWcpPE1hdGguYWJzKGxbRS0xXS1nKXx8Im5leHQiPT09dC5zd2lwZURpcmVjdGlvbj9sW0VdOmxbRS0xXSl9aWYoeSYmaSgidHJhbnNpdGlvbkVuZCIsKGZ1bmN0aW9uKCl7dC5sb29wRml4KCl9KSksMCE9PXQudmVsb2NpdHkpe2lmKGg9bz9NYXRoLmFicygoLWctdC50cmFuc2xhdGUpL3QudmVsb2NpdHkpOk1hdGguYWJzKChnLXQudHJhbnNsYXRlKS90LnZlbG9jaXR5KSxyLmZyZWVNb2RlLnN0aWNreSl7dmFyIFQ9TWF0aC5hYnMoKG8/LWc6ZyktdC50cmFuc2xhdGUpLEM9dC5zbGlkZXNTaXplc0dyaWRbdC5hY3RpdmVJbmRleF07aD1UPEM/ci5zcGVlZDpUPDIqQz8xLjUqci5zcGVlZDoyLjUqci5zcGVlZH19ZWxzZSBpZihyLmZyZWVNb2RlLnN0aWNreSlyZXR1cm4gdm9pZCB0LnNsaWRlVG9DbG9zZXN0KCk7ci5mcmVlTW9kZS5tb21lbnR1bUJvdW5jZSYmdz8odC51cGRhdGVQcm9ncmVzcyhiKSx0LnNldFRyYW5zaXRpb24oaCksdC5zZXRUcmFuc2xhdGUoZyksdC50cmFuc2l0aW9uU3RhcnQoITAsdC5zd2lwZURpcmVjdGlvbiksdC5hbmltYXRpbmc9ITAscy50cmFuc2l0aW9uRW5kKChmdW5jdGlvbigpe3QmJiF0LmRlc3Ryb3llZCYmYy5hbGxvd01vbWVudHVtQm91bmNlJiYobigibW9tZW50dW1Cb3VuY2UiKSx0LnNldFRyYW5zaXRpb24oci5zcGVlZCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LnNldFRyYW5zbGF0ZShiKSxzLnRyYW5zaXRpb25FbmQoKGZ1bmN0aW9uKCl7dCYmIXQuZGVzdHJveWVkJiZ0LnRyYW5zaXRpb25FbmQoKX0pKX0pLDApKX0pKSk6dC52ZWxvY2l0eT8obigiX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UiKSx0LnVwZGF0ZVByb2dyZXNzKGcpLHQuc2V0VHJhbnNpdGlvbihoKSx0LnNldFRyYW5zbGF0ZShnKSx0LnRyYW5zaXRpb25TdGFydCghMCx0LnN3aXBlRGlyZWN0aW9uKSx0LmFuaW1hdGluZ3x8KHQuYW5pbWF0aW5nPSEwLHMudHJhbnNpdGlvbkVuZCgoZnVuY3Rpb24oKXt0JiYhdC5kZXN0cm95ZWQmJnQudHJhbnNpdGlvbkVuZCgpfSkpKSk6dC51cGRhdGVQcm9ncmVzcyhnKSx0LnVwZGF0ZUFjdGl2ZUluZGV4KCksdC51cGRhdGVTbGlkZXNDbGFzc2VzKCl9ZWxzZXtpZihyLmZyZWVNb2RlLnN0aWNreSlyZXR1cm4gdm9pZCB0LnNsaWRlVG9DbG9zZXN0KCk7ci5mcmVlTW9kZSYmbigiX2ZyZWVNb2RlTm9Nb21lbnR1bVJlbGVhc2UiKX0oIXIuZnJlZU1vZGUubW9tZW50dW18fGQ+PXIubG9uZ1N3aXBlc01zKSYmKHQudXBkYXRlUHJvZ3Jlc3MoKSx0LnVwZGF0ZUFjdGl2ZUluZGV4KCksdC51cGRhdGVTbGlkZXNDbGFzc2VzKCkpfX19fSl9LGZ1bmN0aW9uKGUpe3ZhciB0LGEsbixpPWUuc3dpcGVyOygwLGUuZXh0ZW5kUGFyYW1zKSh7Z3JpZDp7cm93czoxLGZpbGw6ImNvbHVtbiJ9fSksaS5ncmlkPXtpbml0U2xpZGVzOmZ1bmN0aW9uKGUpe3ZhciByPWkucGFyYW1zLnNsaWRlc1BlclZpZXcscz1pLnBhcmFtcy5ncmlkLG89cy5yb3dzLGw9cy5maWxsO2E9dC9vLG49TWF0aC5mbG9vcihlL28pLHQ9TWF0aC5mbG9vcihlL28pPT09ZS9vP2U6TWF0aC5jZWlsKGUvbykqbywiYXV0byIhPT1yJiYicm93Ij09PWwmJih0PU1hdGgubWF4KHQscipvKSl9LHVwZGF0ZVNsaWRlOmZ1bmN0aW9uKGUscixzLG8pe3ZhciBsLGMsZCx1PWkucGFyYW1zLHA9dS5zbGlkZXNQZXJHcm91cCxmPXUuc3BhY2VCZXR3ZWVuLHY9aS5wYXJhbXMuZ3JpZCxoPXYucm93cyxtPXYuZmlsbDtpZigicm93Ij09PW0mJnA+MSl7dmFyIGc9TWF0aC5mbG9vcihlLyhwKmgpKSxiPWUtaCpwKmcseT0wPT09Zz9wOk1hdGgubWluKE1hdGguY2VpbCgocy1nKmgqcCkvaCkscCk7bD0oYz1iLShkPU1hdGguZmxvb3IoYi95KSkqeStnKnApK2QqdC9oLHIuY3NzKHsiLXdlYmtpdC1vcmRlciI6bCxvcmRlcjpsfSl9ZWxzZSJjb2x1bW4iPT09bT8oZD1lLShjPU1hdGguZmxvb3IoZS9oKSkqaCwoYz5ufHxjPT09biYmZD09PWgtMSkmJihkKz0xKT49aCYmKGQ9MCxjKz0xKSk6Yz1lLShkPU1hdGguZmxvb3IoZS9hKSkqYTtyLmNzcyhvKCJtYXJnaW4tdG9wIiksMCE9PWQ/ZiYmIiIuY29uY2F0KGYsInB4Iik6IiIpfSx1cGRhdGVXcmFwcGVyU2l6ZTpmdW5jdGlvbihlLGEsbil7dmFyIHI9aS5wYXJhbXMsbz1yLnNwYWNlQmV0d2VlbixsPXIuY2VudGVyZWRTbGlkZXMsYz1yLnJvdW5kTGVuZ3RocyxkPWkucGFyYW1zLmdyaWQucm93cztpZihpLnZpcnR1YWxTaXplPShlK28pKnQsaS52aXJ0dWFsU2l6ZT1NYXRoLmNlaWwoaS52aXJ0dWFsU2l6ZS9kKS1vLGkuJHdyYXBwZXJFbC5jc3Mocyh7fSxuKCJ3aWR0aCIpLCIiLmNvbmNhdChpLnZpcnR1YWxTaXplK28sInB4IikpKSxsKXthLnNwbGljZSgwLGEubGVuZ3RoKTtmb3IodmFyIHU9W10scD0wO3A8YS5sZW5ndGg7cCs9MSl7dmFyIGY9YVtwXTtjJiYoZj1NYXRoLmZsb29yKGYpKSxhW3BdPGkudmlydHVhbFNpemUrYVswXSYmdS5wdXNoKGYpfWEucHVzaC5hcHBseShhLHUpfX19fSxmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcjtPYmplY3QuYXNzaWduKHQse2FwcGVuZFNsaWRlOmVlLmJpbmQodCkscHJlcGVuZFNsaWRlOnRlLmJpbmQodCksYWRkU2xpZGU6YWUuYmluZCh0KSxyZW1vdmVTbGlkZTpuZS5iaW5kKHQpLHJlbW92ZUFsbFNsaWRlczppZS5iaW5kKHQpfSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Eoe2ZhZGVFZmZlY3Q6e2Nyb3NzRmFkZTohMSx0cmFuc2Zvcm1FbDpudWxsfX0pLHJlKHtlZmZlY3Q6ImZhZGUiLHN3aXBlcjp0LG9uOm4sc2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXQuc2xpZGVzLGE9dC5wYXJhbXMuZmFkZUVmZmVjdCxuPTA7bjxlLmxlbmd0aDtuKz0xKXt2YXIgaT10LnNsaWRlcy5lcShuKSxyPS1pWzBdLnN3aXBlclNsaWRlT2Zmc2V0O3QucGFyYW1zLnZpcnR1YWxUcmFuc2xhdGV8fChyLT10LnRyYW5zbGF0ZSk7dmFyIHM9MDt0LmlzSG9yaXpvbnRhbCgpfHwocz1yLHI9MCk7dmFyIG89dC5wYXJhbXMuZmFkZUVmZmVjdC5jcm9zc0ZhZGU/TWF0aC5tYXgoMS1NYXRoLmFicyhpWzBdLnByb2dyZXNzKSwwKToxK01hdGgubWluKE1hdGgubWF4KGlbMF0ucHJvZ3Jlc3MsLTEpLDApO3NlKGEsaSkuY3NzKHtvcGFjaXR5Om99KS50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKCIuY29uY2F0KHIsInB4LCAiKS5jb25jYXQocywicHgsIDBweCkiKSl9fSxzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3ZhciBhPXQucGFyYW1zLmZhZGVFZmZlY3QudHJhbnNmb3JtRWw7KGE/dC5zbGlkZXMuZmluZChhKTp0LnNsaWRlcykudHJhbnNpdGlvbihlKSxvZSh7c3dpcGVyOnQsZHVyYXRpb246ZSx0cmFuc2Zvcm1FbDphLGFsbFNsaWRlczohMH0pfSxvdmVyd3JpdGVQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm57c2xpZGVzUGVyVmlldzoxLHNsaWRlc1Blckdyb3VwOjEsd2F0Y2hTbGlkZXNQcm9ncmVzczohMCxzcGFjZUJldHdlZW46MCx2aXJ0dWFsVHJhbnNsYXRlOiF0LnBhcmFtcy5jc3NNb2RlfX19KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUub247YSh7Y3ViZUVmZmVjdDp7c2xpZGVTaGFkb3dzOiEwLHNoYWRvdzohMCxzaGFkb3dPZmZzZXQ6MjAsc2hhZG93U2NhbGU6Ljk0fX0pLHJlKHtlZmZlY3Q6ImN1YmUiLHN3aXBlcjp0LG9uOm4sc2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGUsYT10LiRlbCxuPXQuJHdyYXBwZXJFbCxpPXQuc2xpZGVzLHI9dC53aWR0aCxzPXQuaGVpZ2h0LG89dC5ydGxUcmFuc2xhdGUsbD10LnNpemUsYz10LmJyb3dzZXIsZD10LnBhcmFtcy5jdWJlRWZmZWN0LHU9dC5pc0hvcml6b250YWwoKSxwPXQudmlydHVhbCYmdC5wYXJhbXMudmlydHVhbC5lbmFibGVkLGY9MDtkLnNoYWRvdyYmKHU/KDA9PT0oZT1uLmZpbmQoIi5zd2lwZXItY3ViZS1zaGFkb3ciKSkubGVuZ3RoJiYoZT1tKCc8ZGl2IGNsYXNzPSJzd2lwZXItY3ViZS1zaGFkb3ciPjwvZGl2PicpLG4uYXBwZW5kKGUpKSxlLmNzcyh7aGVpZ2h0OiIiLmNvbmNhdChyLCJweCIpfSkpOjA9PT0oZT1hLmZpbmQoIi5zd2lwZXItY3ViZS1zaGFkb3ciKSkubGVuZ3RoJiYoZT1tKCc8ZGl2IGNsYXNzPSJzd2lwZXItY3ViZS1zaGFkb3ciPjwvZGl2PicpLGEuYXBwZW5kKGUpKSk7Zm9yKHZhciB2PTA7djxpLmxlbmd0aDt2Kz0xKXt2YXIgaD1pLmVxKHYpLGc9djtwJiYoZz1wYXJzZUludChoLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IiksMTApKTt2YXIgYj05MCpnLHk9TWF0aC5mbG9vcihiLzM2MCk7byYmKGI9LWIseT1NYXRoLmZsb29yKC1iLzM2MCkpO3ZhciB3PU1hdGgubWF4KE1hdGgubWluKGhbMF0ucHJvZ3Jlc3MsMSksLTEpLHg9MCxFPTAsUz0wO2clND09MD8oeD00Ki15KmwsUz0wKTooZy0xKSU0PT0wPyh4PTAsUz00Ki15KmwpOihnLTIpJTQ9PTA/KHg9bCs0KnkqbCxTPWwpOihnLTMpJTQ9PTAmJih4PS1sLFM9MypsKzQqbCp5KSxvJiYoeD0teCksdXx8KEU9eCx4PTApO3ZhciBUPSJyb3RhdGVYKCIuY29uY2F0KHU/MDotYiwiZGVnKSByb3RhdGVZKCIpLmNvbmNhdCh1P2I6MCwiZGVnKSB0cmFuc2xhdGUzZCgiKS5jb25jYXQoeCwicHgsICIpLmNvbmNhdChFLCJweCwgIikuY29uY2F0KFMsInB4KSIpO2lmKHc8PTEmJnc+LTEmJihmPTkwKmcrOTAqdyxvJiYoZj05MCotZy05MCp3KSksaC50cmFuc2Zvcm0oVCksZC5zbGlkZVNoYWRvd3Mpe3ZhciBDPXU/aC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0Iik6aC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AiKSxrPXU/aC5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCIpOmguZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tIik7MD09PUMubGVuZ3RoJiYoQz1tKCc8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUtc2hhZG93LScuY29uY2F0KHU/ImxlZnQiOiJ0b3AiLCciPjwvZGl2PicpKSxoLmFwcGVuZChDKSksMD09PWsubGVuZ3RoJiYoaz1tKCc8ZGl2IGNsYXNzPSJzd2lwZXItc2xpZGUtc2hhZG93LScuY29uY2F0KHU/InJpZ2h0IjoiYm90dG9tIiwnIj48L2Rpdj4nKSksaC5hcHBlbmQoaykpLEMubGVuZ3RoJiYoQ1swXS5zdHlsZS5vcGFjaXR5PU1hdGgubWF4KC13LDApKSxrLmxlbmd0aCYmKGtbMF0uc3R5bGUub3BhY2l0eT1NYXRoLm1heCh3LDApKX19aWYobi5jc3MoeyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iOiI1MCUgNTAlIC0iLmNvbmNhdChsLzIsInB4IiksInRyYW5zZm9ybS1vcmlnaW4iOiI1MCUgNTAlIC0iLmNvbmNhdChsLzIsInB4Iil9KSxkLnNoYWRvdylpZih1KWUudHJhbnNmb3JtKCJ0cmFuc2xhdGUzZCgwcHgsICIuY29uY2F0KHIvMitkLnNoYWRvd09mZnNldCwicHgsICIpLmNvbmNhdCgtci8yLCJweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWigwZGVnKSBzY2FsZSgiKS5jb25jYXQoZC5zaGFkb3dTY2FsZSwiKSIpKTtlbHNle3ZhciBNPU1hdGguYWJzKGYpLTkwKk1hdGguZmxvb3IoTWF0aC5hYnMoZikvOTApLFA9MS41LShNYXRoLnNpbigyKk0qTWF0aC5QSS8zNjApLzIrTWF0aC5jb3MoMipNKk1hdGguUEkvMzYwKS8yKSxBPWQuc2hhZG93U2NhbGUsTD1kLnNoYWRvd1NjYWxlL1AsTz1kLnNoYWRvd09mZnNldDtlLnRyYW5zZm9ybSgic2NhbGUzZCgiLmNvbmNhdChBLCIsIDEsICIpLmNvbmNhdChMLCIpIHRyYW5zbGF0ZTNkKDBweCwgIikuY29uY2F0KHMvMitPLCJweCwgIikuY29uY2F0KC1zLzIvTCwicHgpIHJvdGF0ZVgoLTkwZGVnKSIpKX12YXIgaj1jLmlzU2FmYXJpfHxjLmlzV2ViVmlldz8tbC8yOjA7bi50cmFuc2Zvcm0oInRyYW5zbGF0ZTNkKDBweCwwLCIuY29uY2F0KGosInB4KSByb3RhdGVYKCIpLmNvbmNhdCh0LmlzSG9yaXpvbnRhbCgpPzA6ZiwiZGVnKSByb3RhdGVZKCIpLmNvbmNhdCh0LmlzSG9yaXpvbnRhbCgpPy1mOjAsImRlZykiKSl9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24oZSl7dmFyIGE9dC4kZWw7dC5zbGlkZXMudHJhbnNpdGlvbihlKS5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQiKS50cmFuc2l0aW9uKGUpLHQucGFyYW1zLmN1YmVFZmZlY3Quc2hhZG93JiYhdC5pc0hvcml6b250YWwoKSYmYS5maW5kKCIuc3dpcGVyLWN1YmUtc2hhZG93IikudHJhbnNpdGlvbihlKX0scGVyc3BlY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sb3ZlcndyaXRlUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlc1BlclZpZXc6MSxzbGlkZXNQZXJHcm91cDoxLHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAscmVzaXN0YW5jZVJhdGlvOjAsc3BhY2VCZXR3ZWVuOjAsY2VudGVyZWRTbGlkZXM6ITEsdmlydHVhbFRyYW5zbGF0ZTohMH19fSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Eoe2ZsaXBFZmZlY3Q6e3NsaWRlU2hhZG93czohMCxsaW1pdFJvdGF0aW9uOiEwLHRyYW5zZm9ybUVsOm51bGx9fSkscmUoe2VmZmVjdDoiZmxpcCIsc3dpcGVyOnQsb246bixzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dC5zbGlkZXMsYT10LnJ0bFRyYW5zbGF0ZSxuPXQucGFyYW1zLmZsaXBFZmZlY3QsaT0wO2k8ZS5sZW5ndGg7aSs9MSl7dmFyIHI9ZS5lcShpKSxzPXJbMF0ucHJvZ3Jlc3M7dC5wYXJhbXMuZmxpcEVmZmVjdC5saW1pdFJvdGF0aW9uJiYocz1NYXRoLm1heChNYXRoLm1pbihyWzBdLnByb2dyZXNzLDEpLC0xKSk7dmFyIG89clswXS5zd2lwZXJTbGlkZU9mZnNldCxsPS0xODAqcyxjPTAsZD10LnBhcmFtcy5jc3NNb2RlPy1vLXQudHJhbnNsYXRlOi1vLHU9MDtpZih0LmlzSG9yaXpvbnRhbCgpP2EmJihsPS1sKToodT1kLGQ9MCxjPS1sLGw9MCksclswXS5zdHlsZS56SW5kZXg9LU1hdGguYWJzKE1hdGgucm91bmQocykpK2UubGVuZ3RoLG4uc2xpZGVTaGFkb3dzKXt2YXIgcD10LmlzSG9yaXpvbnRhbCgpP3IuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpOnIuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIiksZj10LmlzSG9yaXpvbnRhbCgpP3IuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQiKTpyLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSIpOzA9PT1wLmxlbmd0aCYmKHA9bGUobixyLHQuaXNIb3Jpem9udGFsKCk/ImxlZnQiOiJ0b3AiKSksMD09PWYubGVuZ3RoJiYoZj1sZShuLHIsdC5pc0hvcml6b250YWwoKT8icmlnaHQiOiJib3R0b20iKSkscC5sZW5ndGgmJihwWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5tYXgoLXMsMCkpLGYubGVuZ3RoJiYoZlswXS5zdHlsZS5vcGFjaXR5PU1hdGgubWF4KHMsMCkpfXZhciB2PSJ0cmFuc2xhdGUzZCgiLmNvbmNhdChkLCJweCwgIikuY29uY2F0KHUsInB4LCAwcHgpIHJvdGF0ZVgoIikuY29uY2F0KGMsImRlZykgcm90YXRlWSgiKS5jb25jYXQobCwiZGVnKSIpO3NlKG4scikudHJhbnNmb3JtKHYpfX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgYT10LnBhcmFtcy5mbGlwRWZmZWN0LnRyYW5zZm9ybUVsOyhhP3Quc2xpZGVzLmZpbmQoYSk6dC5zbGlkZXMpLnRyYW5zaXRpb24oZSkuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IikudHJhbnNpdGlvbihlKSxvZSh7c3dpcGVyOnQsZHVyYXRpb246ZSx0cmFuc2Zvcm1FbDphfSl9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LG92ZXJ3cml0ZVBhcmFtczpmdW5jdGlvbigpe3JldHVybntzbGlkZXNQZXJWaWV3OjEsc2xpZGVzUGVyR3JvdXA6MSx3YXRjaFNsaWRlc1Byb2dyZXNzOiEwLHNwYWNlQmV0d2VlbjowLHZpcnR1YWxUcmFuc2xhdGU6IXQucGFyYW1zLmNzc01vZGV9fX0pfSxmdW5jdGlvbihlKXt2YXIgdD1lLnN3aXBlcixhPWUuZXh0ZW5kUGFyYW1zLG49ZS5vbjthKHtjb3ZlcmZsb3dFZmZlY3Q6e3JvdGF0ZTo1MCxzdHJldGNoOjAsZGVwdGg6MTAwLHNjYWxlOjEsbW9kaWZpZXI6MSxzbGlkZVNoYWRvd3M6ITAsdHJhbnNmb3JtRWw6bnVsbH19KSxyZSh7ZWZmZWN0OiJjb3ZlcmZsb3ciLHN3aXBlcjp0LG9uOm4sc2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXQud2lkdGgsYT10LmhlaWdodCxuPXQuc2xpZGVzLGk9dC5zbGlkZXNTaXplc0dyaWQscj10LnBhcmFtcy5jb3ZlcmZsb3dFZmZlY3Qscz10LmlzSG9yaXpvbnRhbCgpLG89dC50cmFuc2xhdGUsbD1zP2UvMi1vOmEvMi1vLGM9cz9yLnJvdGF0ZTotci5yb3RhdGUsZD1yLmRlcHRoLHU9MCxwPW4ubGVuZ3RoO3U8cDt1Kz0xKXt2YXIgZj1uLmVxKHUpLHY9aVt1XSxoPShsLWZbMF0uc3dpcGVyU2xpZGVPZmZzZXQtdi8yKS92KnIubW9kaWZpZXIsbT1zP2MqaDowLGc9cz8wOmMqaCxiPS1kKk1hdGguYWJzKGgpLHk9ci5zdHJldGNoOyJzdHJpbmciPT10eXBlb2YgeSYmLTEhPT15LmluZGV4T2YoIiUiKSYmKHk9cGFyc2VGbG9hdChyLnN0cmV0Y2gpLzEwMCp2KTt2YXIgdz1zPzA6eSpoLHg9cz95Kmg6MCxFPTEtKDEtci5zY2FsZSkqTWF0aC5hYnMoaCk7TWF0aC5hYnMoeCk8LjAwMSYmKHg9MCksTWF0aC5hYnModyk8LjAwMSYmKHc9MCksTWF0aC5hYnMoYik8LjAwMSYmKGI9MCksTWF0aC5hYnMobSk8LjAwMSYmKG09MCksTWF0aC5hYnMoZyk8LjAwMSYmKGc9MCksTWF0aC5hYnMoRSk8LjAwMSYmKEU9MCk7dmFyIFM9InRyYW5zbGF0ZTNkKCIuY29uY2F0KHgsInB4LCIpLmNvbmNhdCh3LCJweCwiKS5jb25jYXQoYiwicHgpICByb3RhdGVYKCIpLmNvbmNhdChnLCJkZWcpIHJvdGF0ZVkoIikuY29uY2F0KG0sImRlZykgc2NhbGUoIikuY29uY2F0KEUsIikiKTtpZihzZShyLGYpLnRyYW5zZm9ybShTKSxmWzBdLnN0eWxlLnpJbmRleD0xLU1hdGguYWJzKE1hdGgucm91bmQoaCkpLHIuc2xpZGVTaGFkb3dzKXt2YXIgVD1zP2YuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpOmYuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wIiksQz1zP2YuZmluZCgiLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQiKTpmLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSIpOzA9PT1ULmxlbmd0aCYmKFQ9bGUocixmLHM/ImxlZnQiOiJ0b3AiKSksMD09PUMubGVuZ3RoJiYoQz1sZShyLGYscz8icmlnaHQiOiJib3R0b20iKSksVC5sZW5ndGgmJihUWzBdLnN0eWxlLm9wYWNpdHk9aD4wP2g6MCksQy5sZW5ndGgmJihDWzBdLnN0eWxlLm9wYWNpdHk9LWg+MD8taDowKX19fSxzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3ZhciBhPXQucGFyYW1zLmNvdmVyZmxvd0VmZmVjdC50cmFuc2Zvcm1FbDsoYT90LnNsaWRlcy5maW5kKGEpOnQuc2xpZGVzKS50cmFuc2l0aW9uKGUpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCwgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCIpLnRyYW5zaXRpb24oZSl9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LG92ZXJ3cml0ZVBhcmFtczpmdW5jdGlvbigpe3JldHVybnt3YXRjaFNsaWRlc1Byb2dyZXNzOiEwfX19KX0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zd2lwZXIsYT1lLmV4dGVuZFBhcmFtcyxuPWUub247YSh7Y3JlYXRpdmVFZmZlY3Q6e3RyYW5zZm9ybUVsOm51bGwsbGltaXRQcm9ncmVzczoxLHNoYWRvd1BlclByb2dyZXNzOiExLHByb2dyZXNzTXVsdGlwbGllcjoxLHBlcnNwZWN0aXZlOiEwLHByZXY6e3RyYW5zbGF0ZTpbMCwwLDBdLHJvdGF0ZTpbMCwwLDBdLG9wYWNpdHk6MSxzY2FsZToxfSxuZXh0Ont0cmFuc2xhdGU6WzAsMCwwXSxyb3RhdGU6WzAsMCwwXSxvcGFjaXR5OjEsc2NhbGU6MX19fSkscmUoe2VmZmVjdDoiY3JlYXRpdmUiLHN3aXBlcjp0LG9uOm4sc2V0VHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dC5zbGlkZXMsYT10LiR3cmFwcGVyRWwsbj10LnNsaWRlc1NpemVzR3JpZCxpPXQucGFyYW1zLmNyZWF0aXZlRWZmZWN0LHI9aS5wcm9ncmVzc011bHRpcGxpZXIscz10LnBhcmFtcy5jZW50ZXJlZFNsaWRlcztpZihzKXt2YXIgbz1uWzBdLzItdC5wYXJhbXMuc2xpZGVzT2Zmc2V0QmVmb3JlfHwwO2EudHJhbnNmb3JtKCJ0cmFuc2xhdGVYKGNhbGMoNTAlIC0gIi5jb25jYXQobywicHgpKSIpKX1mb3IodmFyIGw9ZnVuY3Rpb24oKXt2YXIgYT1lLmVxKGMpLG49YVswXS5wcm9ncmVzcyxvPU1hdGgubWluKE1hdGgubWF4KGFbMF0ucHJvZ3Jlc3MsLWkubGltaXRQcm9ncmVzcyksaS5saW1pdFByb2dyZXNzKSxsPW87c3x8KGw9TWF0aC5taW4oTWF0aC5tYXgoYVswXS5vcmlnaW5hbFByb2dyZXNzLC1pLmxpbWl0UHJvZ3Jlc3MpLGkubGltaXRQcm9ncmVzcykpO3ZhciBkPWFbMF0uc3dpcGVyU2xpZGVPZmZzZXQsdT1bdC5wYXJhbXMuY3NzTW9kZT8tZC10LnRyYW5zbGF0ZTotZCwwLDBdLHA9WzAsMCwwXSxmPSExO3QuaXNIb3Jpem9udGFsKCl8fCh1WzFdPXVbMF0sdVswXT0wKTt2YXIgdj17dHJhbnNsYXRlOlswLDAsMF0scm90YXRlOlswLDAsMF0sc2NhbGU6MSxvcGFjaXR5OjF9O288MD8odj1pLm5leHQsZj0hMCk6bz4wJiYodj1pLnByZXYsZj0hMCksdS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3VbdF09ImNhbGMoIi5jb25jYXQoZSwicHggKyAoIikuY29uY2F0KGZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9lOiIiLmNvbmNhdChlLCJweCIpfSh2LnRyYW5zbGF0ZVt0XSksIiAqICIpLmNvbmNhdChNYXRoLmFicyhvKnIpLCIpKSIpfSkpLHAuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtwW3RdPXYucm90YXRlW3RdKk1hdGguYWJzKG8qcil9KSksYVswXS5zdHlsZS56SW5kZXg9LU1hdGguYWJzKE1hdGgucm91bmQobikpK2UubGVuZ3RoO3ZhciBoPXUuam9pbigiLCAiKSxtPSJyb3RhdGVYKCIuY29uY2F0KHBbMF0sImRlZykgcm90YXRlWSgiKS5jb25jYXQocFsxXSwiZGVnKSByb3RhdGVaKCIpLmNvbmNhdChwWzJdLCJkZWcpIiksZz0ic2NhbGUoIi5jb25jYXQobDwwPzErKDEtdi5zY2FsZSkqbCpyOjEtKDEtdi5zY2FsZSkqbCpyLCIpIiksYj1sPDA/MSsoMS12Lm9wYWNpdHkpKmwqcjoxLSgxLXYub3BhY2l0eSkqbCpyLHk9InRyYW5zbGF0ZTNkKCIuY29uY2F0KGgsIikgIikuY29uY2F0KG0sIiAiKS5jb25jYXQoZyk7aWYoZiYmdi5zaGFkb3d8fCFmKXt2YXIgdz1hLmNoaWxkcmVuKCIuc3dpcGVyLXNsaWRlLXNoYWRvdyIpO2lmKDA9PT13Lmxlbmd0aCYmdi5zaGFkb3cmJih3PWxlKGksYSkpLHcubGVuZ3RoKXt2YXIgeD1pLnNoYWRvd1BlclByb2dyZXNzP28qKDEvaS5saW1pdFByb2dyZXNzKTpvO3dbMF0uc3R5bGUub3BhY2l0eT1NYXRoLm1pbihNYXRoLm1heChNYXRoLmFicyh4KSwwKSwxKX19dmFyIEU9c2UoaSxhKTtFLnRyYW5zZm9ybSh5KS5jc3Moe29wYWNpdHk6Yn0pLHYub3JpZ2luJiZFLmNzcygidHJhbnNmb3JtLW9yaWdpbiIsdi5vcmlnaW4pfSxjPTA7YzxlLmxlbmd0aDtjKz0xKWwoKX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgYT10LnBhcmFtcy5jcmVhdGl2ZUVmZmVjdC50cmFuc2Zvcm1FbDsoYT90LnNsaWRlcy5maW5kKGEpOnQuc2xpZGVzKS50cmFuc2l0aW9uKGUpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93IikudHJhbnNpdGlvbihlKSxvZSh7c3dpcGVyOnQsZHVyYXRpb246ZSx0cmFuc2Zvcm1FbDphLGFsbFNsaWRlczohMH0pfSxwZXJzcGVjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0LnBhcmFtcy5jcmVhdGl2ZUVmZmVjdC5wZXJzcGVjdGl2ZX0sb3ZlcndyaXRlUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJue3dhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsdmlydHVhbFRyYW5zbGF0ZTohdC5wYXJhbXMuY3NzTW9kZX19fSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3dpcGVyLGE9ZS5leHRlbmRQYXJhbXMsbj1lLm9uO2Eoe2NhcmRzRWZmZWN0OntzbGlkZVNoYWRvd3M6ITAsdHJhbnNmb3JtRWw6bnVsbH19KSxyZSh7ZWZmZWN0OiJjYXJkcyIsc3dpcGVyOnQsb246bixzZXRUcmFuc2xhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9dC5zbGlkZXMsYT10LmFjdGl2ZUluZGV4LG49dC5wYXJhbXMuY2FyZHNFZmZlY3QsaT10LnRvdWNoRXZlbnRzRGF0YSxyPWkuc3RhcnRUcmFuc2xhdGUscz1pLmlzVG91Y2hlZCxvPXQudHJhbnNsYXRlLGw9MDtsPGUubGVuZ3RoO2wrPTEpe3ZhciBjPWUuZXEobCksZD1jWzBdLnByb2dyZXNzLHU9TWF0aC5taW4oTWF0aC5tYXgoZCwtNCksNCkscD1jWzBdLnN3aXBlclNsaWRlT2Zmc2V0O3QucGFyYW1zLmNlbnRlcmVkU2xpZGVzJiYhdC5wYXJhbXMuY3NzTW9kZSYmdC4kd3JhcHBlckVsLnRyYW5zZm9ybSgidHJhbnNsYXRlWCgiLmNvbmNhdCh0Lm1pblRyYW5zbGF0ZSgpLCJweCkiKSksdC5wYXJhbXMuY2VudGVyZWRTbGlkZXMmJnQucGFyYW1zLmNzc01vZGUmJihwLT1lWzBdLnN3aXBlclNsaWRlT2Zmc2V0KTt2YXIgZj10LnBhcmFtcy5jc3NNb2RlPy1wLXQudHJhbnNsYXRlOi1wLHY9MCxoPS0xMDAqTWF0aC5hYnModSksbT0xLGc9LTIqdSxiPTgtLjc1Kk1hdGguYWJzKHUpLHk9KGw9PT1hfHxsPT09YS0xKSYmdT4wJiZ1PDEmJihzfHx0LnBhcmFtcy5jc3NNb2RlKSYmbzxyLHc9KGw9PT1hfHxsPT09YSsxKSYmdTwwJiZ1Pi0xJiYoc3x8dC5wYXJhbXMuY3NzTW9kZSkmJm8+cjtpZih5fHx3KXt2YXIgeD1NYXRoLnBvdygxLU1hdGguYWJzKChNYXRoLmFicyh1KS0uNSkvLjUpLC41KTtnKz0tMjgqdSp4LG0rPS0uNSp4LGIrPTk2Kngsdj0tMjUqeCpNYXRoLmFicyh1KSsiJSJ9aWYoZj11PDA/ImNhbGMoIi5jb25jYXQoZiwicHggKyAoIikuY29uY2F0KGIqTWF0aC5hYnModSksIiUpKSIpOnU+MD8iY2FsYygiLmNvbmNhdChmLCJweCArICgtIikuY29uY2F0KGIqTWF0aC5hYnModSksIiUpKSIpOiIiLmNvbmNhdChmLCJweCIpLCF0LmlzSG9yaXpvbnRhbCgpKXt2YXIgRT12O3Y9ZixmPUV9dmFyIFM9IlxuICAgICAgICB0cmFuc2xhdGUzZCgiLmNvbmNhdChmLCIsICIpLmNvbmNhdCh2LCIsICIpLmNvbmNhdChoLCJweClcbiAgICAgICAgcm90YXRlWigiKS5jb25jYXQoZywiZGVnKVxuICAgICAgICBzY2FsZSgiKS5jb25jYXQodTwwPyIiKygxKygxLW0pKnUpOiIiKygxLSgxLW0pKnUpLCIpXG4gICAgICAiKTtpZihuLnNsaWRlU2hhZG93cyl7dmFyIFQ9Yy5maW5kKCIuc3dpcGVyLXNsaWRlLXNoYWRvdyIpOzA9PT1ULmxlbmd0aCYmKFQ9bGUobixjKSksVC5sZW5ndGgmJihUWzBdLnN0eWxlLm9wYWNpdHk9TWF0aC5taW4oTWF0aC5tYXgoKE1hdGguYWJzKHUpLS41KS8uNSwwKSwxKSl9Y1swXS5zdHlsZS56SW5kZXg9LU1hdGguYWJzKE1hdGgucm91bmQoZCkpK2UubGVuZ3RoLHNlKG4sYykudHJhbnNmb3JtKFMpfX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgYT10LnBhcmFtcy5jYXJkc0VmZmVjdC50cmFuc2Zvcm1FbDsoYT90LnNsaWRlcy5maW5kKGEpOnQuc2xpZGVzKS50cmFuc2l0aW9uKGUpLmZpbmQoIi5zd2lwZXItc2xpZGUtc2hhZG93IikudHJhbnNpdGlvbihlKSxvZSh7c3dpcGVyOnQsZHVyYXRpb246ZSx0cmFuc2Zvcm1FbDphfSl9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LG92ZXJ3cml0ZVBhcmFtczpmdW5jdGlvbigpe3JldHVybnt3YXRjaFNsaWRlc1Byb2dyZXNzOiEwLHZpcnR1YWxUcmFuc2xhdGU6IXQucGFyYW1zLmNzc01vZGV9fX0pfV07cmV0dXJuIFoudXNlKGNlKSxafSwib2JqZWN0Ij09dyh0KT9lLmV4cG9ydHM9cigpOnZvaWQgMD09PShpPSJmdW5jdGlvbiI9PXR5cGVvZihuPXIpP24uY2FsbCh0LGEsdCxlKTpuKXx8KGUuZXhwb3J0cz1pKX0sMzExOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9alF1ZXJ5fX0sdD17fTtmdW5jdGlvbiBhKG4pe3ZhciBpPXRbbl07aWYodm9pZCAwIT09aSlyZXR1cm4gaS5leHBvcnRzO3ZhciByPXRbbl09e2V4cG9ydHM6e319O3JldHVybiBlW25dLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLGEpLHIuZXhwb3J0c31hLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGEuZCh0LHthOnR9KSx0fSxhLmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClhLm8odCxuKSYmIWEubyhlLG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGdldDp0W25dfSl9LGEubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9dm9pZCAwLHQ9ZnVuY3Rpb24odCxhLG4pe3ZhciBpO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLHM9bmV3IEFycmF5KHIpLG89MDtvPHI7bysrKXNbb109YXJndW1lbnRzW29dO3ZhciBsPXQuYmluZC5hcHBseSh0LFtlXS5jb25jYXQocykpO2l8fChuJiYhaSYmbCgpLGk9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtufHxsKCksaT1udWxsfSksYSkpfX07dmFyIG49ZnVuY3Rpb24gZSh0LGEpe2Zvcih2YXIgbiBpbiBhKWFbbl0mJmFbbl0uY29uc3RydWN0b3ImJmFbbl0uY29uc3RydWN0b3I9PT1PYmplY3Q/KHRbbl09dFtuXXx8e30sZSh0W25dLGFbbl0pKTp0W25dPWFbbl07cmV0dXJuIHR9LGk9ZnVuY3Rpb24oZSx0KXt2YXIgYT17fTtmb3IodmFyIG4gaW4gZSlhW25dPXRbbl18fGVbbl07cmV0dXJuIGF9LHI9ZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXI/TnVtYmVyLmlzSW50ZWdlcihlKToibnVtYmVyIj09dHlwZW9mIGUmJmlzRmluaXRlKGUpJiZNYXRoLmZsb29yKGUpPT09ZX0scz1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiExO2lmKCJib29sZWFuIj09dHlwZW9mIGUpcmV0dXJuITA9PT1lO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHQsYSxuO2lmKCIiPT1lKXJldHVybiExO2lmKCJ0cnVlIj09KGU9bnVsbD09PSh0PWUpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSkudG9Mb3dlckNhc2UoKXx8InllcyI9PWUudG9Mb3dlckNhc2UoKSlyZXR1cm4hMDtlPW51bGw9PT0obj1lPW51bGw9PT0oYT1lKXx8dm9pZCAwPT09YT92b2lkIDA6YS5yZXBsYWNlKC8sL2csIi4iKSl8fHZvaWQgMD09PW4/dm9pZCAwOm4ucmVwbGFjZSgvXlxzKlwtXHMqL2csIi0iKX1yZXR1cm4haXNOYU4oZSkmJjAhPXBhcnNlRmxvYXQoZSl9LG89e2R1cmF0aW9uOjI1MCxlYXNpbmc6ZnVuY3Rpb24oZSx0LGEsbil7cmV0dXJuLWEqKGUvPW4pKihlLTIpK3R9LGRpc3BsYXk6ImJsb2NrIn0sbD1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cih0KSYmKHQ9e2R1cmF0aW9uOnR9KTt2YXIgYT1pKG8sdCksbj1hLmRpc3BsYXk7YS5kaXJlY3Rpb249MixhLnRvPTAsYS5zdGFydGluZ0hlaWdodD1lLnNjcm9sbEhlaWdodCxhLmRpc3RhbmNlSGVpZ2h0PS1hLnN0YXJ0aW5nSGVpZ2h0LHUoZSxuKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbih0KXtyZXR1cm4gZChlLGEsdCl9KSl9LGM9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3IodCkmJih0PXtkdXJhdGlvbjp0fSksZS5zdHlsZS5oZWlnaHQ9IjBweCI7dmFyIGE9aShvLHQpLG49YS5kaXNwbGF5O3UoZSxuKSxhLmRpcmVjdGlvbj0xLGEudG89ZS5zY3JvbGxIZWlnaHQsYS5zdGFydGluZ0hlaWdodD0wLGEuZGlzdGFuY2VIZWlnaHQ9YS50byx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbih0KXtyZXR1cm4gZChlLGEsdCl9KSl9LGQ9ZnVuY3Rpb24gZSh0LGEsbil7YS5zdGFydFRpbWV8fChhLnN0YXJ0VGltZT1uKTt2YXIgaT1uLWEuc3RhcnRUaW1lLHI9aTxhLmR1cmF0aW9uLHM9YS5lYXNpbmcoaSxhLnN0YXJ0aW5nSGVpZ2h0LGEuZGlzdGFuY2VIZWlnaHQsYS5kdXJhdGlvbik7cj8odC5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHMudG9GaXhlZCgyKSwicHgiKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbihuKXtyZXR1cm4gZSh0LGEsbil9KSkpOigyPT09YS5kaXJlY3Rpb24mJih0LnN0eWxlLmRpc3BsYXk9Im5vbmUiKSwxPT09YS5kaXJlY3Rpb24mJih0LnN0eWxlLmRpc3BsYXk9ImZsZXgiPT09YS5kaXNwbGF5PyJmbGV4IjoiYmxvY2siKSxwKHQpKX0sdT1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ImJsb2NrIjtlLnN0eWxlLmRpc3BsYXk9ImZsZXgiPT09dD8iZmxleCI6ImJsb2NrIixlLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLGUuc3R5bGUubWFyZ2luVG9wPSIwIixlLnN0eWxlLm1hcmdpbkJvdHRvbT0iMCIsZS5zdHlsZS5wYWRkaW5nVG9wPSIwIixlLnN0eWxlLnBhZGRpbmdCb3R0b209IjAifSxwPWZ1bmN0aW9uKGUpe2Uuc3R5bGUuaGVpZ2h0PW51bGwsZS5zdHlsZS5vdmVyZmxvdz1udWxsLGUuc3R5bGUubWFyZ2luVG9wPW51bGwsZS5zdHlsZS5tYXJnaW5Cb3R0b209bnVsbCxlLnN0eWxlLnBhZGRpbmdUb3A9bnVsbCxlLnN0eWxlLnBhZGRpbmdCb3R0b209bnVsbH0sZj1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiB0O3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1hdXRvcGxheSIpLG49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWF1dG9wbGF5LWRlbGF5Iik7cmV0dXJuInRydWUiPT09YSYmKHQuYXV0b3BsYXk9e30sdC5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbj0hMSx0LmF1dG9wbGF5LmRlbGF5PW4/cGFyc2VJbnQobik6M2UzKSx0fSx2PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU/KHQucHJlbG9hZEltYWdlcz0hMSx0Lmxhenk9e30sdC5sYXp5LmxvYWRQcmV2TmV4dD0hMCx0LmxvYWRPblRyYW5zaXRpb25TdGFydD0hMCx0KTp0fSxoPWZ1bmN0aW9uKCl7cmV0dXJuISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8ISgib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50IGluc3RhbmNlb2Ygd2luZG93LkRvY3VtZW50VG91Y2gpKXx8ISgidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IW5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyYmIW5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzKX0sbT1mdW5jdGlvbigpe3ZhciBlPWgoKSx0PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07ZT8odC5jbGFzc0xpc3QucmVtb3ZlKCJuby10b3VjaC1kZXZpY2UiKSx0LmNsYXNzTGlzdC5hZGQoInRvdWNoLWRldmljZSIpKToodC5jbGFzc0xpc3QucmVtb3ZlKCJ0b3VjaC1kZXZpY2UiKSx0LmNsYXNzTGlzdC5hZGQoIm5vLXRvdWNoLWRldmljZSIpKX07ZnVuY3Rpb24gZyhlKXtyZXR1cm4gZz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sZyhlKX1mdW5jdGlvbiBiKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PWcoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgbj1hLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1nKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0obi5rZXkpLCJzeW1ib2wiPT09ZyhpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9dmFyIHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsYSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5kZWZhdWx0cz17ZWxlbWVudDoiLmwtbmF2IixpdGVtOiIuYy1uYXZfX2l0ZW0iLGFjdGl2ZToiaXMtYWN0aXZlIix0cmlnZ2VyOiJjbGljayJ9LHRoaXMuaXNUb3VjaD0hMSx0aGlzLmlzVG91Y2hEZXZpY2UoKSx0LmluaXRpYWxpemVkPyh0aGlzLnN3aXBlcj10LHRoaXMuY29uZmlnPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZWZhdWx0cyxhfHx7fSksdGhpcy5zZWxlY3Rvcj0iIi5jb25jYXQodGhpcy5jb25maWcuZWxlbWVudCwiICIpLmNvbmNhdCh0aGlzLmNvbmZpZy5pdGVtKSx0aGlzLml0ZW1zPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5zZWxlY3RvciksdGhpcy50YWJDbGlja2VkPXRoaXMudGFiQ2xpY2suYmluZCh0aGlzKSx0aGlzLmluaXQoKSk6Y29uc29sZS5sb2coInN3aXBlciBub3QgaW5pdGlhbGl6ZWQiKX12YXIgdCxhO3JldHVybiB0PWUsKGE9W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zd2lwZXJTbGlkZUNoYW5nZSgpLHRoaXMuYmluZFRhYnMoKX19LHtrZXk6ImJpbmRUYWJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoZS5jb25maWcudHJpZ2dlcixlLnRhYkNsaWNrZWQse3Bhc3NpdmU6ITB9KSxlLmlzVG91Y2gmJiJtb3VzZW92ZXIiPT09ZS5jb25maWcudHJpZ2dlciYmdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixlLnRhYkNsaWNrZWQse3Bhc3NpdmU6ITB9KX0pKX19LHtrZXk6InVuYmluZFRhYnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmNvbmZpZy50cmlnZ2VyLGUudGFiQ2xpY2tlZCksZS5pc1RvdWNoJiYibW91c2VvdmVyIj09PWUuY29uZmlnLnRyaWdnZXImJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZS50YWJDbGlja2VkKX0pKX19LHtrZXk6InRhYkNsaWNrIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxhPXRoaXMsbj1lLmN1cnJlbnRUYXJnZXQ7YS5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlLGkpe249PT1lJiYodD1pKSxlLmNsYXNzTGlzdC5yZW1vdmUoYS5jb25maWcuYWN0aXZlKX0pKSxuLmNsYXNzTGlzdC5hZGQoYS5jb25maWcuYWN0aXZlKSxhLnN3aXBlci5zbGlkZVRvKHQpfX0se2tleToidGFiQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGE9dC5pdGVtczthLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5hY3RpdmUpfSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24oYSxuKXtlPT09biYmYS5jbGFzc0xpc3QuYWRkKHQuY29uZmlnLmFjdGl2ZSl9KSl9fSx7a2V5OiJpc1RvdWNoRGV2aWNlIix2YWx1ZTpmdW5jdGlvbigpe2goKSYmKHRoaXMuaXNUb3VjaD0hMCl9fSx7a2V5OiJzd2lwZXJTbGlkZUNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Uuc3dpcGVyLm9uKCJzbGlkZUNoYW5nZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5zd2lwZXIuYWN0aXZlSW5kZXg7ZS50YWJDaGFuZ2UodCl9KSl9fV0pJiZiKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksdz1mdW5jdGlvbihlLHQsYSxuKXt2YXIgaSxyLHMsbztpZighZSlyZXR1cm4gdDtpZihlLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItbmF2aWdhdGlvbiIpKXt0Lm5hdmlnYXRpb249e30sYSYmdm9pZCAwIT09biYmKGk9IiIuY29uY2F0KGEsIi1uZXh0LSIpLmNvbmNhdChuKSxyPSIiLmNvbmNhdChhLCItcHJldi0iKS5jb25jYXQobikpO3ZhciBsPWUuY2xvc2VzdCgiLm0tc2xpZGVyIik7bCYmKHM9bC5xdWVyeVNlbGVjdG9yKCIuc3dpcGVyLWJ1dHRvbi1uZXh0Iiksbz1sLnF1ZXJ5U2VsZWN0b3IoIi5zd2lwZXItYnV0dG9uLXByZXYiKSkscyYmaSYmKHMuc2V0QXR0cmlidXRlKCJpZCIsaSksdC5uYXZpZ2F0aW9uLm5leHRFbD0iIyIuY29uY2F0KGkpKSxvJiZyJiYoby5zZXRBdHRyaWJ1dGUoImlkIixyKSx0Lm5hdmlnYXRpb24ucHJldkVsPSIjIi5jb25jYXQocikpfWVsc2UgdC5uYXZpZ2F0aW9uPSExO3JldHVybiB0fSx4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU/KCJ0cnVlIj09PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci1sb29wIikmJih0Lmxvb3A9ITApLHQpOnR9O2Z1bmN0aW9uIEUoZSl7cmV0dXJuIEU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LEUoZSl9ZnVuY3Rpb24gUyhlLHQpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsKHZvaWQgMCxpPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1FKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09RShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KG4ua2V5KSwic3ltYm9sIj09PUUoaSk/aTpTdHJpbmcoaSkpLG4pfXZhciBpfXZhciBUPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLm9wdGlvbnNEZXNrdG9wPXt9LHRoaXMub3B0aW9uc01vYmlsZT17c2xpZGVDbGFzczoianMtZHNibHMtbmF2LWl0ZW0iLHBhZ2luYXRpb246e2VsOiIubC1zbGlkZXItbmF2X19wYWdpbmF0aW9uIixjbGlja2FibGU6ITB9fSx0aGlzLm9wdGlvbnNOYXY9e2l0ZW06Ii5qcy1kc2Jscy1uYXYtaXRlbSIsYWN0aXZlOiJpcy1hY3RpdmUiLHRyaWdnZXI6Im1vdXNlb3ZlciJ9LHRoaXMuc2xpZGVyTm89bnVsbD09dD92b2lkIDA6dC5yZXBsYWNlKCJqcy1zbGlkZXItZHNibHMtIiwiIiksdGhpcy5zbGlkZXJOYW1lPXQsdGhpcy5zbGlkZXJNb2JpbGVOYW1lPW51bGw9PXQ/dm9pZCAwOnQucmVwbGFjZSgianMtc2xpZGVyLWRzYmxzLSIsImpzLXNsaWRlci1kc2Jscy1tLSIpLHRoaXMuc2xpZGVyU2VsPSIjIit0aGlzLnNsaWRlck5hbWUsdGhpcy5zbGlkZXJNb2JpbGVTZWw9IiMiK3RoaXMuc2xpZGVyTW9iaWxlTmFtZSx0aGlzLm9wdGlvbnNOYXYuZWxlbWVudD10aGlzLnNsaWRlck1vYmlsZVNlbCx0aGlzLnNsaWRlckVsZW09ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnNsaWRlclNlbCksdGhpcy5zbGlkZXJNb2JpbGVFbGVtPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zbGlkZXJNb2JpbGVTZWwpLHRoaXMuc2hvd01vYmlsZT1zKHRoaXMuc2xpZGVyRWxlbS5nZXRBdHRyaWJ1dGUoImRhdGEtc2xpZGVyLWlzLW1vYmlsZSIpKSx0aGlzLmlzTW9iaWxlPSExLHRoaXMuaXNEZXNrdG9wPSExLHRoaXMuZGVza3RvcEluc3RhbmNlLHRoaXMubW9iaWxlSW5zdGFuY2UsdGhpcy5kZXNrdG9wVGFicyx0aGlzLmluaXQoKX12YXIgYSxuO3JldHVybiBhPWUsKG49W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aW5kb3cuaW5uZXJXaWR0aDwxMDI1P2UuaXNNb2JpbGU9ITA6ZS5pc0Rlc2t0b3A9ITAsZS5wYXJzZU9wdGlvbnMoKSxlLmlzTW9iaWxlJiZlLnNob3dNb2JpbGUmJmUuY3JlYXRlTW9iaWxlKCksZS5pc0Rlc2t0b3AmJmUuY3JlYXRlRGVza3RvcCgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLChmdW5jdGlvbigpe2UudGhyb3R0bGVSZXNpemUoKX0pKSxlLnRocm90dGxlUmVzaXplPXQoKGZ1bmN0aW9uKCl7ZS5yZXNpemVTbGlkZXIoKX0pLDM1MCl9fSx7a2V5OiJwYXJzZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlLmlzTW9iaWxlJiZlLnNob3dNb2JpbGUpe3ZhciB0PWUuc2xpZGVyTW9iaWxlTmFtZTtlLm9wdGlvbnNNb2JpbGU9eChlLnNsaWRlck1vYmlsZUVsZW0sZS5vcHRpb25zTW9iaWxlKSxlLm9wdGlvbnNNb2JpbGU9ZihlLnNsaWRlck1vYmlsZUVsZW0sZS5vcHRpb25zTW9iaWxlKSxlLm9wdGlvbnNNb2JpbGU9dihlLnNsaWRlck1vYmlsZUVsZW0sZS5vcHRpb25zTW9iaWxlKSxlLm9wdGlvbnNNb2JpbGU9dyhlLnNsaWRlck1vYmlsZUVsZW0sZS5vcHRpb25zTW9iaWxlLHQsZS5zbGlkZXJObyl9aWYoZS5pc0Rlc2t0b3Ape3ZhciBhPWUuc2xpZGVyTmFtZTtlLm9wdGlvbnNEZXNrdG9wPXgoZS5zbGlkZXJFbGVtLGUub3B0aW9uc0Rlc2t0b3ApLGUub3B0aW9uc0Rlc2t0b3A9ZihlLnNsaWRlckVsZW0sZS5vcHRpb25zRGVza3RvcCksZS5vcHRpb25zRGVza3RvcD12KGUuc2xpZGVyRWxlbSxlLm9wdGlvbnNEZXNrdG9wKSxlLm9wdGlvbnNEZXNrdG9wPXcoZS5zbGlkZXJFbGVtLGUub3B0aW9uc0Rlc2t0b3AsYSxlLnNsaWRlck5vKX19fSx7a2V5OiJjcmVhdGVEZXNrdG9wIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5kZXNrdG9wSW5zdGFuY2U9bmV3IFN3aXBlcihlLnNsaWRlclNlbCxlLm9wdGlvbnNEZXNrdG9wKSxlLmRlc2t0b3BJbnN0YW5jZS5pbml0aWFsaXplZCYmKGUuZGVza3RvcFRhYnM9bmV3IHkoZS5kZXNrdG9wSW5zdGFuY2UsZS5vcHRpb25zTmF2KSl9fSx7a2V5OiJjcmVhdGVNb2JpbGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLm1vYmlsZUluc3RhbmNlPW5ldyBTd2lwZXIoZS5zbGlkZXJNb2JpbGVTZWwsZS5vcHRpb25zTW9iaWxlKX19LHtrZXk6InJlc2l6ZVNsaWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3dpbmRvdy5pbm5lcldpZHRoPDEwMjU/ZS5pc01vYmlsZXx8KHZvaWQgMCE9PWUuZGVza3RvcEluc3RhbmNlJiYoZS5kZXNrdG9wVGFicy51bmJpbmRUYWJzKCksZS5kZXNrdG9wSW5zdGFuY2UuZGVzdHJveSgpLGUuZGVza3RvcEluc3RhbmNlPXZvaWQgMCksZS5zaG93TW9iaWxlJiZlLmNyZWF0ZU1vYmlsZSgpLGUuaXNEZXNrdG9wPSExLGUuaXNNb2JpbGU9ITApOmUuaXNEZXNrdG9wfHwodm9pZCAwIT09ZS5tb2JpbGVJbnN0YW5jZSYmKGUubW9iaWxlSW5zdGFuY2UuZGVzdHJveSgpLGUubW9iaWxlSW5zdGFuY2U9dm9pZCAwKSxlLmNyZWF0ZURlc2t0b3AoKSxlLmlzTW9iaWxlPSExLGUuaXNEZXNrdG9wPSEwKX19XSkmJlMoYS5wcm90b3R5cGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKSxDPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zbGlkZXItZHNibHMiKSxrPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zbGlkZXItZHNibHMtbSIpLE09ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgYT1wYXJzZUludChlLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY29sdW1ucyIpKTtyZXR1cm4gYSYmKHQuc2xpZGVzUGVyVmlldz1hLHQuYnJlYWtwb2ludHM9ezMyMDp7c2xpZGVzUGVyVmlldzoxLHNwYWNlQmV0d2VlbjoyMH0sNTc2OntzbGlkZXNQZXJWaWV3OmE+Mz8yOjEsc3BhY2VCZXR3ZWVuOjIwfSwxMDI0OntzbGlkZXNQZXJWaWV3OmEsc3BhY2VCZXR3ZWVuOjMwfX0pLHR9LFA9ImpzLXNsaWRlci1zaW1wbGUiLEE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXNsaWRlci1zaW1wbGUiKSxMPSJqcy1zbGlkZXItYWR2YW5jZWQiLE89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXNsaWRlci1hZHZhbmNlZCIpO2Z1bmN0aW9uIGooZSl7cmV0dXJuIGo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGooZSl9ZnVuY3Rpb24gSShlLHQpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsKHZvaWQgMCxpPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1qKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09aihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KG4ua2V5KSwic3ltYm9sIj09PWooaSk/aTpTdHJpbmcoaSkpLG4pfXZhciBpfXZhciAkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGEpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMuZGVmYXVsdHM9e2VsZW1lbnQ6Ii5sLW5hdiIsaXRlbToiLmMtbmF2X19pdGVtIixjaXJjbGU6Ii5jLXNsaWRlci1uYXYiLGNsYXNzZXM6e2FjdGl2ZToiaXMtYWN0aXZlIixyaWdodDoiaXMtcmlnaHQiLGxlZnQ6ImlzLWxlZnQiLHRvcDoiaXMtdG9wIixib3R0b206ImlzLWJvdHRvbSJ9LGRpcmVjdGlvbjohMSxwb3NpdGlvbjoyLGFycmFuZ2U6MCxpdGVtQWxpZ246ImNlbnRlciIsaXRlbUFuZ2xlOjAscm90YXRlQWN0aXZlOiExLGRhdGE6e2FycmFuZ2U6ImRhdGEtc2xpZGVyLWNpcmN1bGFyLWFycmFuZ2UiLHBvc2l0aW9uOiJkYXRhLXNsaWRlci1jaXJjdWxhci1wb3NpdGlvbiIsaXRlbUFuZ2xlOiJkYXRhLXNsaWRlci1jaXJjdWxhci1hbmdsZSIsaXRlbUFsaWduOiJkYXRhLXNsaWRlci1jaXJjdWxhci1pdGVtLWFsaWduIixkaXJlY3Rpb246ImRhdGEtc2xpZGVyLWNpcmN1bGFyLWl0ZW0tZGlyZWN0aW9uIixyb3RhdGVBY3RpdmU6ImRhdGEtc2xpZGVyLWNpcmN1bGFyLXJvdGF0ZS10by1hY3RpdmUifX0sdC5pbml0aWFsaXplZD8odGhpcy5zd2lwZXI9dCx0aGlzLmNvbmZpZz1uKHRoaXMuZGVmYXVsdHMsYSksdGhpcy5zZWxlY3Rvcj0iIi5jb25jYXQodGhpcy5jb25maWcuZWxlbWVudCwiICIpLmNvbmNhdCh0aGlzLmNvbmZpZy5pdGVtKSx0aGlzLmNvbnRhaW5lcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuY29uZmlnLmVsZW1lbnQpLHRoaXMuY2lyY2xlPXRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IodGhpcy5jb25maWcuY2lyY2xlKSx0aGlzLml0ZW1zPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5zZWxlY3RvciksdGhpcy5zaGlmdD0wLHRoaXMubXVsdGlwbGllcj10aGlzLml0ZW1zLmxlbmd0aCx0aGlzLm51bWJlck9mSXRlbXM9dGhpcy5pdGVtcy5sZW5ndGgsdGhpcy5hcnJhbmdlU2hpZnQ9MCx0aGlzLmZ1bGw9MzYwLHRoaXMuYXJyYW5nZUluZGV4PTAsdGhpcy50YWJDbGlja2VkPXRoaXMudGFiQ2xpY2suYmluZCh0aGlzKSx0aGlzLnBhcnNlT3B0aW9ucygpLHRoaXMuaW5pdCgpKTpjb25zb2xlLmxvZygic3dpcGVyIG5vdCBpbml0aWFsaXplZCIpfXZhciBhLGk7cmV0dXJuIGE9ZSwoaT1be2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuZ2V0Q29udGFpbmVyUmFkaXVzKCksZS5nZXRJdGVtRGltZW5zaW9ucygpLGUuc3dpcGVyU2xpZGVDaGFuZ2UoKSxlLmJpbmRUYWJzKCksZS51cGRhdGVJdGVtc1Bvc2l0aW9ucygpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLChmdW5jdGlvbigpe2UudGhyb3R0bGVSZXNpemUoKX0pKSxlLnRocm90dGxlUmVzaXplPXQoKGZ1bmN0aW9uKCl7ZS5nZXRDb250YWluZXJSYWRpdXMoKSxlLmdldEl0ZW1EaW1lbnNpb25zKCl9KSwxNTApfX0se2tleToiYmluZFRhYnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUudGFiQ2xpY2tlZCx7cGFzc2l2ZTohMH0pfSkpfX0se2tleToidW5iaW5kVGFicyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZS50YWJDbGlja2VkKX0pKX19LHtrZXk6InRhYkNsaWNrIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxhPXRoaXMsbj1lLmN1cnJlbnRUYXJnZXQ7YS5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlLGkpe249PT1lJiYodD1pKSxlLmNsYXNzTGlzdC5yZW1vdmUoYS5jb25maWcuY2xhc3Nlcy5hY3RpdmUpfSkpLG4uY2xhc3NMaXN0LmFkZChhLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSksYS5zd2lwZXIuc2xpZGVUbyh0KSxhLmNvbmZpZy5yb3RhdGVBY3RpdmUmJmEudXBkYXRlSXRlbXNQb3NpdGlvbnModCl9fSx7a2V5OiJ0YWJDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsYT10Lml0ZW1zO2EuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKHQuY29uZmlnLmNsYXNzZXMuYWN0aXZlKX0pKSxhLmZvckVhY2goKGZ1bmN0aW9uKGEsbil7ZT09PW4mJmEuY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSl9KSl9fSx7a2V5OiJzd2lwZXJTbGlkZUNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Uuc3dpcGVyLm9uKCJzbGlkZUNoYW5nZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5zd2lwZXIuYWN0aXZlSW5kZXg7ZS50YWJDaGFuZ2UodCksZS51cGRhdGVJdGVtc1Bvc2l0aW9ucyh0KX0pKX19LHtrZXk6InVwZGF0ZUl0ZW1zUG9zaXRpb25zIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxhLG49dGhpcyxpPW4uaXRlbXM7dD1udWxsPT1lP24uYXJyYW5nZUluZGV4OmU7dmFyIHI9MDtuLmNvbmZpZy5yb3RhdGVBY3RpdmUmJihyPSh0LW4uYXJyYW5nZUluZGV4KSpuLmNvbmZpZy5pdGVtQW5nbGUpO3ZhciBzPW4uYXJyYW5nZVNoaWZ0LG89bi5tdWx0aXBsaWVyLGw9bi5mdWxsO2kuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXthPW4uY29uZmlnLmRpcmVjdGlvbj9sKih0L28pK24uc2hpZnQtcy1yOnQvbyotbCtuLnNoaWZ0K3Mrcjt2YXIgaT1NYXRoLmNvcyhhKihNYXRoLlBJLzE4MCkpPj0wPyJpcy1yaWdodCI6ImlzLWxlZnQiLGM9TWF0aC5zaW4oYSooTWF0aC5QSS8xODApKTw9MD8iaXMtdG9wIjoiaXMtYm90dG9tIjtlLmNsYXNzTGlzdC5hZGQoaSxjKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLWF6IiwiIi5jb25jYXQoYSwiZGVnIikpfSkpfX0se2tleToicGFyc2VPcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLmNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuZGF0YS5hcnJhbmdlKTtlLmNvbmZpZy5wb3NpdGlvbj1wYXJzZUludChlLmNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuZGF0YS5wb3NpdGlvbiksMTApLGUuY29uZmlnLml0ZW1BbmdsZT1wYXJzZUludChlLmNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuZGF0YS5pdGVtQW5nbGUpLDEwKXx8ZS5jb25maWcuaXRlbUFuZ2xlO3ZhciBhPWUuY29udGFpbmVyLmdldEF0dHJpYnV0ZShlLmNvbmZpZy5kYXRhLml0ZW1BbGlnbik7c3dpdGNoKGUuY29uZmlnLml0ZW1BbGlnbj1hfHxlLmNvbmZpZy5pdGVtQWxpZ24sZS5jb25maWcuZGlyZWN0aW9uPXMoZS5jb250YWluZXIuZ2V0QXR0cmlidXRlKGUuY29uZmlnLmRhdGEuZGlyZWN0aW9uKSl8fGUuY29uZmlnLmRpcmVjdGlvbixlLmNvbmZpZy5yb3RhdGVBY3RpdmU9cyhlLmNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuZGF0YS5yb3RhdGVBY3RpdmUpKSxlLmNvbmZpZy5wb3NpdGlvbil7Y2FzZSAxOmUuc2hpZnQ9LTkwO2JyZWFrO2Nhc2UgMzplLnNoaWZ0PTkwO2JyZWFrO2Nhc2UgNDplLnNoaWZ0PTE4MDticmVhaztkZWZhdWx0OmUuc2hpZnQ9MH12YXIgbj0hMTtlLmNvbmZpZy5pdGVtQW5nbGUmJmUuY29uZmlnLml0ZW1BbmdsZSplLm51bWJlck9mSXRlbXM8PWUuZnVsbCYmZS5jb25maWcuaXRlbUFuZ2xlPjE1PyhlLmZ1bGw9ZS5jb25maWcuaXRlbUFuZ2xlLGUubXVsdGlwbGllcj0xLG49ITApOmUuY29uZmlnLml0ZW1BbmdsZT1lLmZ1bGwvZS5udW1iZXJPZkl0ZW1zLCJjZW50ZXIiPT09dCYmbiYmKGUuYXJyYW5nZUluZGV4PU1hdGguZmxvb3IoKGUubnVtYmVyT2ZJdGVtcy0xKS8yKSxlLmFycmFuZ2VTaGlmdD1lLmFycmFuZ2VJbmRleCplLmNvbmZpZy5pdGVtQW5nbGUpfX0se2tleToiZ2V0Q29udGFpbmVyUmFkaXVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY2lyY2xlLm9mZnNldFdpZHRoLzI7dGhpcy5jaXJjbGUuc3R5bGUuc2V0UHJvcGVydHkoIi0tciIsIiIuY29uY2F0KGUudG9GaXhlZCgpLCJweCIpKX19LHtrZXk6ImdldEl0ZW1EaW1lbnNpb25zIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vZmZzZXRIZWlnaHQsYT1lLm9mZnNldFdpZHRoO2Uuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbUgiLCIiLmNvbmNhdCh0LCJweCIpKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW1XIiwiIi5jb25jYXQoYSwicHgiKSl9KSl9fV0pJiZJKGEucHJvdG90eXBlLGkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksej0ianMtY2lyY3VsYXItYWR2IixEPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1jaXJjdWxhci1hZHYiKSxfPWEoMzExKSxxPSJqcy1zbGlkZXItbW9iaWxlIixOPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1zbGlkZXItbW9iaWxlIiksQj1hKDMxMSksUj0ianMtc2xpZGVyLXRlYW0iLEg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXNsaWRlci10ZWFtIiksRz1mdW5jdGlvbigpe3ZhciBlLHQsYSxuLGkscixvLGwsYyxkLHUscCxoO2U9W10sQy5mb3JFYWNoKChmdW5jdGlvbih0LGEpe3ZhciBuPSJqcy1zbGlkZXItZHNibHMtIithLGk9ImpzLXNsaWRlci1kc2Jscy1tLSIrYTt0LnNldEF0dHJpYnV0ZSgiaWQiLG4pLGtbYV0uc2V0QXR0cmlidXRlKCJpZCIsaSksZVthXT1uZXcgVChuKX0pKSxwPVtdLGg9W10sQS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3BbdF09e3BhZ2luYXRpb246e2VsOiIubS1zbGlkZXJfX3BhZ2luYXRpb24iLGNsaWNrYWJsZTohMH19O3ZhciBhPSIiLmNvbmNhdChQLCItIikuY29uY2F0KHQpO2Uuc2V0QXR0cmlidXRlKCJpZCIsYSkscFt0XT1mKGUscFt0XSkscFt0XT12KGUscFt0XSkscFt0XT1NKGUscFt0XSkscFt0XT13KGUscFt0XSxQLHQpLGhbdF09bmV3IFN3aXBlcihlLHBbdF0pfSkpLGE9W10sbj1bXSxpPVtdLHI9W10sbz1bXSxsPVtdLE8uZm9yRWFjaCgoZnVuY3Rpb24oZSxjKXthW2NdPXtwYWdpbmF0aW9uOntlbDoiLm0tc2xpZGVyX19wYWdpbmF0aW9uIixjbGlja2FibGU6ITB9fSxpW2NdPXtpdGVtOiIuanMtbmF2X19pdGVtIixhY3RpdmU6ImlzLWFjdGl2ZSIsdHJpZ2dlcjoiY2xpY2sifSxsW2NdPXtzcGFjZUJldHdlZW46MTAsc2xpZGVzUGVyVmlldzoiYXV0byIsZnJlZU1vZGU6ITAsdGhyZXNob2xkOjEwLHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsd3JhcHBlckNsYXNzOiJjLXNsaWRlci1uYXYifTt2YXIgZD1zKGUuZ2V0QXR0cmlidXRlKCJkYXRhLXNsaWRlci10aHVtYnMiKSksdT0iIi5jb25jYXQoTCwiLSIpLmNvbmNhdChjKTtlLnNldEF0dHJpYnV0ZSgiaWQiLHUpO3ZhciBwLGg9ZS5jbG9zZXN0KCIubS1zbGlkZXIiKTtpZihoJiYodD1oLnF1ZXJ5U2VsZWN0b3IoIi5sLXNsaWRlci1uYXYiKSksdClpZihkKXt2YXIgbT0ianMtc2xpZGVyLWFkdmFuY2VkLXRodW1icy0iK2M7dC5zZXRBdHRyaWJ1dGUoImlkIixtKSxwPSIjIittfWVsc2V7dmFyIGc9ImpzLXNsaWRlci1hZHZhbmNlZC1uYXYtIitjO3Quc2V0QXR0cmlidXRlKCJpZCIsZyksaVtjXS5lbGVtZW50PSIjIitnfWFbY109eChlLGFbY10pLGFbY109ZihlLGFbY10pLGFbY109dihlLGFbY10pLGFbY109TShlLGFbY10pLGFbY109dyhlLGFbY10sTCxjKSxkJiYob1tjXT1uZXcgU3dpcGVyKHAsbFtjXSksYVtjXS50aHVtYnM9e30sYVtjXS50aHVtYnMuc3dpcGVyPW9bY10sYVtjXS5ub1N3aXBpbmdTZWxlY3Rvcj0iLmwtc2xpZGVyLW5hdiwgLm0tc2xpZGVyX19wYWdpbmF0aW9uIiksbltjXT1uZXcgU3dpcGVyKGUsYVtjXSksdCYmbltjXS5pbml0aWFsaXplZCYmKHJbY109bmV3IHkobltjXSxpW2NdKSl9KSksZnVuY3Rpb24oKXt2YXIgZSx0PVtdLGE9W10sbj1bXSxpPVtdLHI9W107RC5mb3JFYWNoKChmdW5jdGlvbihzLG8pe3Rbb109e3BhZ2luYXRpb246e2VsOiIubS1zbGlkZXJfX3BhZ2luYXRpb24iLGNsaWNrYWJsZTohMH19LG5bb109e2l0ZW06Ii5qcy1uYXZfX2l0ZW0ifSxyW29dPXtzcGFjZUJldHdlZW46MTAsc2xpZGVzUGVyVmlldzoiYXV0byIsZnJlZU1vZGU6ITAsdGhyZXNob2xkOjEwLHdhdGNoU2xpZGVzUHJvZ3Jlc3M6ITAsd3JhcHBlckNsYXNzOiJjLXNsaWRlci1uYXYifTt2YXIgbD0iIi5jb25jYXQoeiwiLSIpLmNvbmNhdChvKTtzLnNldEF0dHJpYnV0ZSgiaWQiLGwpO3ZhciBjPXMuY2xvc2VzdCgiLm0tc2xpZGVyIik7aWYoYyYmKGU9Yy5xdWVyeVNlbGVjdG9yKCIubC1zbGlkZXItbmF2IikpLGUpe3ZhciBkPSJqcy1zbGlkZXItY2lyY3VsYXItbmF2LSIuY29uY2F0KG8pO2Uuc2V0QXR0cmlidXRlKCJpZCIsZCksbltvXS5lbGVtZW50PSIjIi5jb25jYXQoZCl9aWYoImNlbnRlciI9PT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItY2lyY3VsYXItYXJyYW5nZSIpKXt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi5jLXNsaWRlci1uYXYiKTtpZih1KXt2YXIgcD1wYXJzZUludCh1LmdldEF0dHJpYnV0ZSgiZGF0YS1pbml0aWFsLWluZGV4IiksMTApO3Rbb10uaW5pdGlhbFNsaWRlPXB9fXRbb109eChzLHRbb10pLHRbb109ZihzLHRbb10pLHRbb109dihzLHRbb10pLHRbb109TShzLHRbb10pLHRbb109ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgYT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1zbGlkZXItZWZmZWN0LXRyYW5zaXRpb24iKTtzd2l0Y2godC5lZmZlY3Q9e30sYSl7Y2FzZSJmYWRlIjp0LmVmZmVjdD0iZmFkZSIsdC5mYWRlRWZmZWN0PXt9LHQuZmFkZUVmZmVjdC5jcm9zc0ZhZGU9ITA7YnJlYWs7Y2FzZSJjdWJlIjp0LmVmZmVjdD0iY3ViZSI7YnJlYWs7Y2FzZSJjb3ZlcmZsb3ciOnQuZWZmZWN0PSJjb3ZlcmZsb3ciO2JyZWFrO2Nhc2UiY2FyZHMiOnQuZWZmZWN0PSJjYXJkcyI7YnJlYWs7Y2FzZSJmbGlwIjp0LmVmZmVjdD0iZmxpcCJ9cmV0dXJuIHR9KHMsdFtvXSksdFtvXT13KHMsdFtvXSx6LG8pLGFbb109bmV3IFN3aXBlcihzLHRbb10pLGUmJmFbb10uaW5pdGlhbGl6ZWQmJihpW29dPW5ldyAkKGFbb10sbltvXSkpfSkpfSgpLGM9W10sZD1bXSwhMCE9PSh1PXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOjExMTJweCkiKSkubWF0Y2hlcyYmKCExIT09dS5tYXRjaGVzfHxOLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7XyhlKS5hdHRyKCJzbGlkZXNtb2JpbGUiKSxjW3RdPXtwYWdpbmF0aW9uOntlbDoiLm0tc2xpZGVyX19wYWdpbmF0aW9uIixjbGlja2FibGU6ITB9LG5hdmlnYXRpb246e25leHRFbDoiLm1vYi1idXR0b24tbmV4dCIscHJldkVsOiIubW9iLWJ1dHRvbi1wcmV2In0sbG9vcDohMCxzbGlkZXNQZXJWaWV3OjEsc3BhY2VCZXR3ZWVuOjIwfTt2YXIgYT0iIi5jb25jYXQocSwiLSIpLmNvbmNhdCh0KTtlLnNldEF0dHJpYnV0ZSgiaWQiLGEpLGNbdF09ZihlLGNbdF0pLGNbdF09dihlLGNbdF0pLGNbdF09TShlLGNbdF0pLGNbdF09dyhlLGNbdF0scSx0KSxkW3RdPW5ldyBTd2lwZXIoZSxjW3RdKX0pKSksZnVuY3Rpb24oKXt2YXIgZT1bXSx0PVtdLGE9d2luZG93Lm1hdGNoTWVkaWEoIihtaW4td2lkdGg6MTExMnB4KSIpOyEwIT09YS5tYXRjaGVzJiYoITEhPT1hLm1hdGNoZXN8fEguZm9yRWFjaCgoZnVuY3Rpb24oYSxuKXtCKGEpLmF0dHIoInNsaWRlc21vYmlsZSIpLGVbbl09e3BhZ2luYXRpb246e2VsOiIubS1zbGlkZXJfX3BhZ2luYXRpb24iLGNsaWNrYWJsZTohMH0sbmF2aWdhdGlvbjp7bmV4dEVsOiIubW9iLWJ1dHRvbi1uZXh0IixwcmV2RWw6Ii5tb2ItYnV0dG9uLXByZXYifSxsb29wOiEwLHNsaWRlc1BlclZpZXc6MyxzcGFjZUJldHdlZW46NDAsYnJlYWtwb2ludHM6ezc2ODp7c2xpZGVzUGVyVmlldzoxLHNwYWNlQmV0d2VlbjoyMH19fTt2YXIgaT0iIi5jb25jYXQoUiwiLSIpLmNvbmNhdChuKTthLnNldEF0dHJpYnV0ZSgiaWQiLGkpLGVbbl09ZihhLGVbbl0pLGVbbl09dihhLGVbbl0pLGVbbl09TShhLGVbbl0pLGVbbl09dyhhLGVbbl0sUixuKSx0W25dPW5ldyBTd2lwZXIoYSxlW25dKX0pKSl9KCl9LEY9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IERhdGUsYT1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXt2YXIgbj0obmV3IERhdGUtdCkvZS5kdXJhdGlvbjtuPjEmJihuPTEpLGUucHJvZ3Jlc3M9bjt2YXIgaT1lLmRlbHRhKG4pO2Uuc3RlcChpKSwxPT1uJiYoY2xlYXJJbnRlcnZhbChhKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5jb21wbGV0ZSYmZS5jb21wbGV0ZSgpKX0pLGUuZGVsYXl8fDEwKX0sWT1mdW5jdGlvbihlKXtyZXR1cm4uNS1NYXRoLmNvcyhlKk1hdGguUEkpLzJ9O2Z1bmN0aW9uIFYoZSl7cmV0dXJuIFY9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LFYoZSl9ZnVuY3Rpb24gWChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gVyhlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBXKGUsdCk7dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09YSYmZS5jb25zdHJ1Y3RvciYmKGE9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWF8fCJTZXQiPT09YT9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09YXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoYSk/VyhlLHQpOnZvaWQgMH19KGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFcoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIGE9MCxuPW5ldyBBcnJheSh0KTthPHQ7YSsrKW5bYV09ZVthXTtyZXR1cm4gbn1mdW5jdGlvbiBVKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PVYoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgbj1hLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1WKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0obi5rZXkpLCJzeW1ib2wiPT09VihpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9dmFyIEs9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsYSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy53cmFwcGVyPSIuanMtYWNjLXdyYXBwZXIiLHRoaXMuZGVmYXVsdHM9e3NlbGVjdG9yczp7aXRlbToiLmpzLWFjYy1pdGVtIix0cmlnZ2VyOiIuanMtYWNjLWJ1dHRvbiIsY29udGVudDoiLmpzLWFjYy1jb250ZW50In0sZ2FsbGVyeTp7Y29udGFpbmVyOiIuanMtYWNjLWdhbGxlcnkiLGl0ZW06Ii5qcy1hY2MtbWVkaWEifSxjbGFzc2VzOnthY3RpdmU6ImlzLWFjdGl2ZSIsZm9jdXM6ImZvY3VzIixkaXNwbGF5OiJibG9jayJ9LGFuaW1hdGlvbjp7Y29udGVudDohMCxnYWxsZXJ5OiExfSxhdHRyOntjbG9zZToiZGF0YS1jbG9zZSIsb3BlbjoiZGF0YS1leHBhbmQiLGdhbGxlcnk6ImRhdGEtZ2FsbGVyeSIsc3RhcnRDbG9zZWQ6ImRhdGEtc3RhcnQtY2xvc2VkIixhbmltYXRpb25Db250ZW50OiJkYXRhLWFuaW1hdGlvbiIsYW5pbWF0aW9uR2FsbGVyeToiZGF0YS1nYWxsZXJ5LWFuaW1hdGlvbiIsZGlzcGxheToiZGF0YS1hY2MtZGlzcGxheSJ9LG9wdDp7Y2xvc2U6ITEsZXhwYW5kOiExLGhhc0dhbGxlcnk6ITEsc3RhcnRDbG9zZWQ6ITF9LGFyaWE6e2J1dHRvbjoiaGVhZGVyIixjb250ZW50OiJjb250ZW50In19LHRoaXMuY29uZmlnPW4odGhpcy5kZWZhdWx0cyxhKSx2b2lkIDAhPT10JiYodGhpcy53cmFwcGVyPXQpLHRoaXMuZ2V0QXJpYU5hbWUoKSx0aGlzLnNlbGVjdG9yPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy53cmFwcGVyKSx0aGlzLmV2ZW50c0xpc3RlbmVycz17fSx0aGlzLnBhcnNlT3B0aW9ucygpLHRoaXMudHJpZ2dlcj10aGlzLnNlbGVjdG9yLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcuc2VsZWN0b3JzLnRyaWdnZXIpLHRoaXMuaXRlbXM9dGhpcy5zZWxlY3Rvci5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLnNlbGVjdG9ycy5pdGVtKSx0aGlzLmNvbmZpZy5vcHQuaGFzR2FsbGVyeSYmKHRoaXMuZ2FsbGVyeUl0ZW1zPXRoaXMuc2VsZWN0b3IucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5nYWxsZXJ5Lml0ZW0pKSx0aGlzLmhhbmRsZXJzPVtdLHRoaXMucHJldmlvdXNJbmRleD0wLHRoaXMuY3VycmVudEluZGV4PTAsdGhpcy5pbml0KCl9dmFyIHQsYTtyZXR1cm4gdD1lLGE9W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hZGRBcmlhKCksdGhpcy5wcmVwYXJlRm9yQW5pbWF0aW9uKCksdGhpcy5hY2NvcmRpb25CaW5kRXZlbnRzKCl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzOyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZlLnNwbGl0KCIgIikuZm9yRWFjaCgoZnVuY3Rpb24oZSxuKXthLmV2ZW50c0xpc3RlbmVyc1tlXXx8KGEuZXZlbnRzTGlzdGVuZXJzW2VdPVtdKSxhLmV2ZW50c0xpc3RlbmVyc1tlXS5wdXNoKHQpfSkpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXRoaXM7YS5ldmVudHNMaXN0ZW5lcnMmJmUuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2b2lkIDA9PT10P2EuZXZlbnRzTGlzdGVuZXJzW2VdPVtdOmEuZXZlbnRzTGlzdGVuZXJzW2VdJiZhLmV2ZW50c0xpc3RlbmVyc1tlXS5mb3JFYWNoKChmdW5jdGlvbihuLGkpe249PT10JiZhLmV2ZW50c0xpc3RlbmVyc1tlXS5zcGxpY2UoaSwxKX0pKX0pKX19LHtrZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdCxhLG49dGhpcztpZighbi5ldmVudHNMaXN0ZW5lcnMpcmV0dXJuIG47Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSkscz0wO3M8aTtzKyspcltzXT1hcmd1bWVudHNbc107InN0cmluZyI9PXR5cGVvZiByWzBdfHxBcnJheS5pc0FycmF5KHJbMF0pPyhlPXJbMF0sdD1yLnNsaWNlKDEsci5sZW5ndGgpLGE9bik6KGU9clswXS5ldmVudHMsdD1yWzBdLmRhdGEsYT1yWzBdLmNvbnRleHR8fG4pLHQudW5zaGlmdChhKSwoQXJyYXkuaXNBcnJheShlKT9lOmUuc3BsaXQoIiAiKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bi5ldmVudHNMaXN0ZW5lcnMmJm4uZXZlbnRzTGlzdGVuZXJzW2VdJiZuLmV2ZW50c0xpc3RlbmVyc1tlXS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmFwcGx5KGEsdCl9KSl9KSl9fSx7a2V5OiJhY2NvcmRpb25CaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLnRyaWdnZXI7ZS5hZGRMaXN0ZW5lckZvY3VzPWUuYWRkTGlzdGVuZXJGb2N1cy5iaW5kKGUpLGUuYWRkTGlzdGVuZXJCbHVyPWUuYWRkTGlzdGVuZXJCbHVyLmJpbmQoZSksZS5hZGRLZXlMaXN0ZW5lcj1lLmFkZEtleUxpc3RlbmVyLmJpbmQoZSksZS5vbj1lLm9uLmJpbmQoZSksZS5vZmY9ZS5vZmYuYmluZChlKSxlLmVtaXQ9ZS5lbWl0LmJpbmQoZSksdC5mb3JFYWNoKChmdW5jdGlvbih0LGEpe3ZhciBuPWUuYWNjb3JkaW9uTmF2Q2xpY2suYmluZChlLGEpO2UuaGFuZGxlcnMucHVzaChuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuLHtwYXNzaXZlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZS5hZGRMaXN0ZW5lckZvY3VzLHtwYXNzaXZlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixlLmFkZExpc3RlbmVyQmx1cix7cGFzc2l2ZTohMH0pfSkpLGUuc2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZS5hZGRLZXlMaXN0ZW5lcix7cGFzc2l2ZTohMH0pfX0se2tleToiYWNjb3JkaW9uVW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS50cmlnZ2VyLmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIG49dC5jbG9zZXN0KGUuY29uZmlnLnNlbGVjdG9ycy5pdGVtKS5xdWVyeVNlbGVjdG9yKGUuY29uZmlnLnNlbGVjdG9ycy5jb250ZW50KTtlLmNvbmZpZy5hcmlhLm5hbWUmJigiIi5jb25jYXQoZS5jb25maWcuYXJpYS5uYW1lLCItIikuY29uY2F0KGUuY29uZmlnLmFyaWEuY29udGVudCwiLSIpLmNvbmNhdChhKSwiIi5jb25jYXQoZS5jb25maWcuYXJpYS5uYW1lLCItIikuY29uY2F0KGUuY29uZmlnLmFyaWEuYnV0dG9uLCItIikuY29uY2F0KGEpKSx0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIiIpLG4ucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsIiIpLGUuY29uZmlnLmFyaWEubmFtZSYmKHQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIiwiIiksdC5yZW1vdmVBdHRyaWJ1dGUoImlkIiwiIiksbi5yZW1vdmVBdHRyaWJ1dGUoImlkIiwiIiksbi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsIiIpKSxuLnJlbW92ZUF0dHJpYnV0ZSgicm9sZSIsIiIpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUuaGFuZGxlcnNbYV0pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGUuYWRkTGlzdGVuZXJGb2N1cyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixlLmFkZExpc3RlbmVyQmx1cil9KSksZS5zZWxlY3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixlLmFkZEtleUxpc3RlbmVyKSxlLnJlbW92ZVN0eWxlcygpfX0se2tleToiYWNjb3JkaW9uTmF2Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9dC5jdXJyZW50VGFyZ2V0O3RoaXMuYWNjb3JkaW9uQ29udGVudGNoYW5nZShlLGEsdCl9fSx7a2V5OiJhY2NvcmRpb25Db250ZW50Y2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlLHQsYSl7dmFyIG49dGhpcyxpPXQscj1uLml0ZW1zLHM9aS5jbG9zZXN0KG4uY29uZmlnLnNlbGVjdG9ycy5pdGVtKSxvPXMucXVlcnlTZWxlY3RvcihuLmNvbmZpZy5zZWxlY3RvcnMuY29udGVudCksZD0idHJ1ZSI9PT1pLmdldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpfHwhMTtzLmNsYXNzTGlzdC5jb250YWlucyhuLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSk/bi5jb25maWcub3B0LmNsb3NlJiYobi5jb25maWcuYW5pbWF0aW9uLmNvbnRlbnQmJmwobyx7ZGlzcGxheTpuLmNvbmZpZy5jbGFzc2VzLmRpc3BsYXl9KSxzLmNsYXNzTGlzdC5yZW1vdmUobi5jb25maWcuY2xhc3Nlcy5hY3RpdmUpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwhZCksby5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixkKSk6KG4uY29uZmlnLm9wdC5leHBhbmQ/KG4uY29uZmlnLmFuaW1hdGlvbi5jb250ZW50JiZjKG8se2Rpc3BsYXk6bi5jb25maWcuY2xhc3Nlcy5kaXNwbGF5fSkscy5jbGFzc0xpc3QuYWRkKG4uY29uZmlnLmNsYXNzZXMuYWN0aXZlKSxpLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIWQpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsZCkpOihyLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcihuLmNvbmZpZy5zZWxlY3RvcnMuY29udGVudCksYT1lLnF1ZXJ5U2VsZWN0b3Iobi5jb25maWcuc2VsZWN0b3JzLnRyaWdnZXIpO24uY29uZmlnLmFuaW1hdGlvbi5jb250ZW50JiZsKHQse2Rpc3BsYXk6bi5jb25maWcuY2xhc3Nlcy5kaXNwbGF5fSksZS5jbGFzc0xpc3QucmVtb3ZlKG4uY29uZmlnLmNsYXNzZXMuYWN0aXZlKSxhLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZCksdC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhZCl9KSksbi5jb25maWcuYW5pbWF0aW9uLmNvbnRlbnQmJmMobyx7ZGlzcGxheTpuLmNvbmZpZy5jbGFzc2VzLmRpc3BsYXl9KSxzLmNsYXNzTGlzdC5hZGQobi5jb25maWcuY2xhc3Nlcy5hY3RpdmUpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwhZCksby5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixkKSksbi5jb25maWcub3B0Lmhhc0dhbGxlcnkmJm4uYWNjb3JkaW9uQ2hhbmdlR2FsbGVyeShlKSksdGhpcy5wcmV2aW91c0luZGV4PXRoaXMuY3VycmVudEluZGV4LHRoaXMuY3VycmVudEluZGV4PWUsbi5lbWl0KCJhY2NvcmRpb25DaGFuZ2UiLGEpfX0se2tleToibmV4dEFjY29yZGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5jdXJyZW50SW5kZXg7dD09PWUuaXRlbXMubGVuZ3RoLTE/dD0wOnQrPTE7dmFyIGE9ZS5pdGVtc1t0XTtlLmFjY29yZGlvbkNvbnRlbnRjaGFuZ2UodCxhLG51bGwpfX0se2tleToicHJldkFjY29yZGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS5jdXJyZW50SW5kZXgsYT1lLml0ZW1zLmxlbmd0aDswPT09dD90PWEtMTp0LT0xO3ZhciBuPWUuaXRlbXNbdF07ZS5hY2NvcmRpb25Db250ZW50Y2hhbmdlKHQsbixudWxsKX19LHtrZXk6ImFjY29yZGlvbkNoYW5nZUdhbGxlcnkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsYT1YKHQuZ2FsbGVyeUl0ZW1zKTthLmZvckVhY2goKGZ1bmN0aW9uKG4pe3QuY29uZmlnLmFuaW1hdGlvbi5nYWxsZXJ5P2Z1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTt2b2lkIDA9PT10LmR1cmF0aW9uJiYodC5kdXJhdGlvbj0xMDApLEYoe2R1cmF0aW9uOnQuZHVyYXRpb24sZGVsdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhpcy5wcm9ncmVzcyxZKGUpfSxjb21wbGV0ZTp0LmNvbXBsZXRlLHN0ZXA6ZnVuY3Rpb24odCl7ZS5zdHlsZS5vcGFjaXR5PTEtdH19KX0obix7Y29tcGxldGU6ZnVuY3Rpb24oKXtuLmNsYXNzTGlzdC5yZW1vdmUodC5jb25maWcuY2xhc3Nlcy5hY3RpdmUpO3ZhciBpPWFbZV07IWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTt2b2lkIDA9PT10LmR1cmF0aW9uJiYodC5kdXJhdGlvbj0xMDApLEYoe2R1cmF0aW9uOnQuZHVyYXRpb24sZGVsdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhpcy5wcm9ncmVzcyxZKGUpfSxjb21wbGV0ZTp0LmNvbXBsZXRlLHN0ZXA6ZnVuY3Rpb24odCl7ZS5zdHlsZS5vcGFjaXR5PTArdH19KX0oaSx7ZHVyYXRpb246NTB9KSxpLmNsYXNzTGlzdC5hZGQodC5jb25maWcuY2xhc3Nlcy5hY3RpdmUpfX0pOm4uY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSl9KSksdC5jb25maWcuYW5pbWF0aW9uLmdhbGxlcnl8fGFbZV0uY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSl9fSx7a2V5OiJwcmVwYXJlRm9yQW5pbWF0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLml0ZW1zO2UuY29uZmlnLmFuaW1hdGlvbi5jb250ZW50JiZ0LmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKGUuY29uZmlnLnNlbGVjdG9ycy5jb250ZW50KTswIT1hfHxlLmNvbmZpZy5vcHQuc3RhcnRDbG9zZWQ/bi5zdHlsZS5kaXNwbGF5PSJub25lIjpuLnN0eWxlLmRpc3BsYXk9ZS5jb25maWcuY2xhc3Nlcy5kaXNwbGF5fSkpfX0se2tleToicmVtb3ZlU3R5bGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLml0ZW1zO2UuY29uZmlnLmFuaW1hdGlvbi5jb250ZW50JiZ0LmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7dC5xdWVyeVNlbGVjdG9yKGUuY29uZmlnLnNlbGVjdG9ycy5jb250ZW50KS5zdHlsZS5kaXNwbGF5PSIifSkpfX0se2tleToicGFyc2VPcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1zKGUuc2VsZWN0b3IuZ2V0QXR0cmlidXRlKGUuY29uZmlnLmF0dHIuY2xvc2UpKTt0JiYoZS5jb25maWcub3B0LmNsb3NlPSEhdCk7dmFyIGE9ZS5zZWxlY3Rvci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuYXR0ci5vcGVuKTthJiYocyhhKT8oZS5jb25maWcub3B0LmV4cGFuZD0hMCxlLmNvbmZpZy5vcHQuY2xvc2U9ITApOmUuY29uZmlnLm9wdC5leHBhbmQ9ITEpLHMoZS5zZWxlY3Rvci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuYXR0ci5zdGFydENsb3NlZCkpJiYoZS5jb25maWcub3B0LnN0YXJ0Q2xvc2VkPSEwLGUuY29uZmlnLm9wdC5jbG9zZT0hMCkscyhlLnNlbGVjdG9yLmdldEF0dHJpYnV0ZShlLmNvbmZpZy5hdHRyLmdhbGxlcnkpKSYmKGUuY29uZmlnLm9wdC5oYXNHYWxsZXJ5PSEwLGUuY29uZmlnLm9wdC5leHBhbmQ9ITEsZS5jb25maWcub3B0LmNsb3NlPSExLGUuY29uZmlnLm9wdC5zdGFydENsb3NlZD0hMSk7dmFyIG49ZS5zZWxlY3Rvci5nZXRBdHRyaWJ1dGUoZS5jb25maWcuYXR0ci5hbmltYXRpb25Db250ZW50KTtuJiYoZS5jb25maWcuYW5pbWF0aW9uLmNvbnRlbnQ9ImpzIj09PW4pO3ZhciBpPWUuc2VsZWN0b3IuZ2V0QXR0cmlidXRlKGUuY29uZmlnLmF0dHIuYW5pbWF0aW9uR2FsbGVyeSk7aSYmKGUuY29uZmlnLmFuaW1hdGlvbi5nYWxsZXJ5PSJqcyI9PT1pKTt2YXIgcj1lLnNlbGVjdG9yLmdldEF0dHJpYnV0ZShlLmNvbmZpZy5hdHRyLmRpc3BsYXkpfHxlLmNvbmZpZy5jbGFzc2VzLmRpc3BsYXk7ZS5jb25maWcuY2xhc3Nlcy5kaXNwbGF5PSJmbGV4Ij09PXI/ImZsZXgiOiJibG9jayIsZS5lbWl0KCJvcHRpb25zUGFyc2VkIil9fSx7a2V5OiJpc1ZhbGlkSWQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybi9eW15cc10rJC8udGVzdChlKX19LHtrZXk6ImdldEFyaWFOYW1lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMud3JhcHBlci5zbGljZSgxKTt0aGlzLmlzVmFsaWRJZChlKT90aGlzLmNvbmZpZy5hcmlhLm5hbWU9ZTp0aGlzLmNvbmZpZy5hcmlhLm5hbWU9ITF9fSx7a2V5OiJhZGRBcmlhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS50cmlnZ2VyLmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIG4saSxyPXQuY2xvc2VzdChlLmNvbmZpZy5zZWxlY3RvcnMuaXRlbSkscz1yLnF1ZXJ5U2VsZWN0b3IoZS5jb25maWcuc2VsZWN0b3JzLmNvbnRlbnQpO2UuY29uZmlnLmFyaWEubmFtZSYmKG49IiIuY29uY2F0KGUuY29uZmlnLmFyaWEubmFtZSwiLSIpLmNvbmNhdChlLmNvbmZpZy5hcmlhLmNvbnRlbnQsIi0iKS5jb25jYXQoYSksaT0iIi5jb25jYXQoZS5jb25maWcuYXJpYS5uYW1lLCItIikuY29uY2F0KGUuY29uZmlnLmFyaWEuYnV0dG9uLCItIikuY29uY2F0KGEpKSxyLmNsYXNzTGlzdC5jb250YWlucyhlLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSk/KHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwhMCkscy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMSkpOih0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsITEpLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApKSxlLmNvbmZpZy5hcmlhLm5hbWUmJih0LnNldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIsbiksdC5zZXRBdHRyaWJ1dGUoImlkIixpKSxzLnNldEF0dHJpYnV0ZSgiaWQiLG4pLHMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGkpKSxzLnNldEF0dHJpYnV0ZSgicm9sZSIsInJlZ2lvbiIpfSkpfX0se2tleToiYWRkTGlzdGVuZXJGb2N1cyIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5jbGFzc2VzLmZvY3VzKX19LHtrZXk6ImFkZExpc3RlbmVyQmx1ciIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5jbGFzc2VzLmZvY3VzKX19LHtrZXk6ImFkZEtleUxpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldCxhPWUud2hpY2gudG9TdHJpbmcoKSxuPVgodGhpcy50cmlnZ2VyKSxpPXRoaXMuY29uZmlnLnNlbGVjdG9ycy50cmlnZ2VyLnNsaWNlKDEpLHI9ZS5jdHJsS2V5JiZhLm1hdGNoKC8zM3wzNC8pO2lmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKGkpKWlmKGEubWF0Y2goLzM4fDQwLyl8fHIpe3ZhciBzPW4uaW5kZXhPZih0KSxvPWEubWF0Y2goLzM0fDQwLyk/MTotMSxsPW4ubGVuZ3RoO25bKHMrbCtvKSVsXS5mb2N1cygpfWVsc2UgaWYoYS5tYXRjaCgvMzV8MzYvKSlzd2l0Y2goYSl7Y2FzZSIzNiI6blswXS5mb2N1cygpO2JyZWFrO2Nhc2UiMzUiOm5bbi5sZW5ndGgtMV0uZm9jdXMoKX19fV0sYSYmVSh0LnByb3RvdHlwZSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpLFo9SyxRPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1hY2Mtd3JhcHBlciIpO2Z1bmN0aW9uIEooZSl7cmV0dXJuIEo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LEooZSl9ZnVuY3Rpb24gZWUoZSx0KXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG49dFthXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCh2b2lkIDAsaT1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09SihlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGE9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBuPWEuY2FsbChlLCJzdHJpbmciKTtpZigib2JqZWN0IiE9PUoobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShuLmtleSksInN5bWJvbCI9PT1KKGkpP2k6U3RyaW5nKGkpKSxuKX12YXIgaX12YXIgdGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5ldmVudHNMaXN0ZW5lcnM9e30sdGhpcy5jdXJyZW50SW5kZXg9MCx0aGlzLmFjdGl2ZU5hdj1udWxsLHRoaXMuYWN0aXZlUGFuZWw9bnVsbH12YXIgdCxhO3JldHVybiB0PWUsYT1be2tleToiYmluZEZ1bmN0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRhYk5hdkNsaWNrPXRoaXMudGFiTmF2Q2xpY2suYmluZCh0aGlzKX19LHtrZXk6ImJpbmRUYWJOYXZFdmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZS50YWJOYXZDbGljayx7cGFzc2l2ZTohMH0pfSkpfX0se2tleToidW5iaW5kVGFiTmF2RXZlbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUudGFiTmF2Q2xpY2spfSkpfX0se2tleToidGFiTmF2Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsYT1lLmN1cnJlbnRUYXJnZXQ7dC5hY3RpdmVOYXY9ZS5jdXJyZW50VGFyZ2V0O3ZhciBuPWEuY2xvc2VzdCh0LmNvbmZpZy53cmFwcGVyKS5xdWVyeVNlbGVjdG9yQWxsKHQuY29uZmlnLnNlbGVjdG9ycy5uYXYpLGk9dC5nZXROYXZUYWJJRChhKTt0LmNsZWFyQWN0aXZlQ2xhc3MobiwibmF2IiksdC5zZXRBY3RpdmVDbGFzcyhhLCJuYXYiKSx0LnRhYlBhbmVsQ2hhbmdlKGkpfX0se2tleToidGFiUGFuZWxDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodm9pZCAwIT09ZSl7dmFyIGE9IiIuY29uY2F0KHQuY29uZmlnLmRhdGEsIi0iKS5jb25jYXQoZSksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQoYSkpO3QuYWN0aXZlUGFuZWw9bjt2YXIgaT1uLmNsb3Nlc3QodC5jb25maWcud3JhcHBlcikucXVlcnlTZWxlY3RvckFsbCh0LmNvbmZpZy5zZWxlY3RvcnMucGFuZWwpO3ZvaWQgMCE9PW4mJih0LmN1cnJlbnRJbmRleD1lLHQuY2xlYXJBY3RpdmVDbGFzcyhpLCJwYW5lbCIpLHQuc2V0QWN0aXZlQ2xhc3MobiwicGFuZWwiKSx0LmVtaXQoInRhYnNDaGFuZ2UiKSl9fX0se2tleToiZ2V0TmF2VGFiSUQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSh0aGlzLmNvbmZpZy5kYXRhKX19LHtrZXk6ImNsZWFyQWN0aXZlQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpcztlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LnJlbW92ZShhLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSksInBhbmVsIj09PXQmJmUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApLCJuYXYiPT09dCYmZS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCExKX0pKX19LHtrZXk6InNldEFjdGl2ZUNsYXNzIix2YWx1ZTpmdW5jdGlvbihlLHQpe2UuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSksInBhbmVsIj09PXQmJmUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITEpLCJuYXYiPT09dCYmZS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLCEwKX19LHtrZXk6InNldEZpcnN0QWN0aXZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHQ9dGhpcyxhPXQuaXRlbXNbZV0sbj1hLmNsb3Nlc3QodC5jb25maWcud3JhcHBlcikucXVlcnlTZWxlY3RvckFsbCh0LmNvbmZpZy5zZWxlY3RvcnMubmF2KSxpPXQuZ2V0TmF2VGFiSUQoYSk7dC5jbGVhckFjdGl2ZUNsYXNzKG4sIm5hdiIpLHQuc2V0QWN0aXZlQ2xhc3MoYSwibmF2IiksdC50YWJQYW5lbENoYW5nZShpKX19LHtrZXk6Im9uIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXRoaXM7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJmUuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihlLG4pe2EuZXZlbnRzTGlzdGVuZXJzW2VdfHwoYS5ldmVudHNMaXN0ZW5lcnNbZV09W10pLGEuZXZlbnRzTGlzdGVuZXJzW2VdLnB1c2godCl9KSl9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9dGhpczthLmV2ZW50c0xpc3RlbmVycyYmZS5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PXQ/YS5ldmVudHNMaXN0ZW5lcnNbZV09W106YS5ldmVudHNMaXN0ZW5lcnNbZV0mJmEuZXZlbnRzTGlzdGVuZXJzW2VdLmZvckVhY2goKGZ1bmN0aW9uKG4saSl7bj09PXQmJmEuZXZlbnRzTGlzdGVuZXJzW2VdLnNwbGljZShpLDEpfSkpfSkpfX0se2tleToiZW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0LGEsbj10aGlzO2lmKCFuLmV2ZW50c0xpc3RlbmVycylyZXR1cm4gbjtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSxzPTA7czxpO3MrKylyW3NdPWFyZ3VtZW50c1tzXTsic3RyaW5nIj09dHlwZW9mIHJbMF18fEFycmF5LmlzQXJyYXkoclswXSk/KGU9clswXSx0PXIuc2xpY2UoMSxyLmxlbmd0aCksYT1uKTooZT1yWzBdLmV2ZW50cyx0PXJbMF0uZGF0YSxhPXJbMF0uY29udGV4dHx8biksdC51bnNoaWZ0KGEpLChBcnJheS5pc0FycmF5KGUpP2U6ZS5zcGxpdCgiICIpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtuLmV2ZW50c0xpc3RlbmVycyYmbi5ldmVudHNMaXN0ZW5lcnNbZV0mJm4uZXZlbnRzTGlzdGVuZXJzW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuYXBwbHkoYSx0KX0pKX0pKX19XSxhJiZlZSh0LnByb3RvdHlwZSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpLGFlPXRlO2Z1bmN0aW9uIG5lKGUpe3JldHVybiBuZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sbmUoZSl9ZnVuY3Rpb24gaWUoZSx0KXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG49dFthXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCh2b2lkIDAsaT1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09bmUoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgbj1hLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1uZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KG4ua2V5KSwic3ltYm9sIj09PW5lKGkpP2k6U3RyaW5nKGkpKSxuKX12YXIgaX1mdW5jdGlvbiByZSgpe3JldHVybiByZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihlLHQsYSl7dmFyIG49ZnVuY3Rpb24oZSx0KXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmbnVsbCE9PShlPW9lKGUpKTspO3JldHVybiBlfShlLHQpO2lmKG4pe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KTtyZXR1cm4gaS5nZXQ/aS5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/ZTphKTppLnZhbHVlfX0scmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHNlKGUsdCl7cmV0dXJuIHNlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuX19wcm90b19fPXQsZX0sc2UoZSx0KX1mdW5jdGlvbiBvZShlKXtyZXR1cm4gb2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9LG9lKGUpfXZhciBsZT1mdW5jdGlvbihlKXshZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdCYmc2UoZSx0KX0obyxlKTt2YXIgdCxhLGkscixzPShpPW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSx0PW9lKGkpO2lmKHIpe3ZhciBhPW9lKHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMsYSl9ZWxzZSBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKHQmJigib2JqZWN0Ij09PW5lKHQpfHwiZnVuY3Rpb24iPT10eXBlb2YgdCkpcmV0dXJuIHQ7aWYodm9pZCAwIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGV9KGUpfSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlKXt2YXIgdDtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSwodD1zLmNhbGwodGhpcykpLmRlZmF1bHRzPXt3cmFwcGVyOiIuanMtdGFicy13cmFwcGVyIixzZWxlY3RvcnM6e25hdjoiLmpzLXRhYnMtbmF2LWl0ZW0iLHBhbmVsOiIuanMtdGFicy1wYW5lbCJ9LGNsYXNzZXM6e2FjdGl2ZToiaXMtYWN0aXZlIn0sZGF0YToiZGF0YS10YWIifSx0LmNvbmZpZz1uKHQuZGVmYXVsdHMsZSksdC5zZWxlY3Rvcj0iIi5jb25jYXQodC5jb25maWcud3JhcHBlciwiICIpLmNvbmNhdCh0LmNvbmZpZy5zZWxlY3RvcnMubmF2KSx0Lml0ZW1zPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodC5zZWxlY3RvciksdC5pbml0KCksdH1yZXR1cm4gdD1vLChhPVt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3JlKG9lKG8ucHJvdG90eXBlKSwiYmluZEZ1bmN0aW9ucyIsdGhpcykuY2FsbCh0aGlzKSxyZShvZShvLnByb3RvdHlwZSksImJpbmRUYWJOYXZFdmVudCIsdGhpcykuY2FsbCh0aGlzKX19XSkmJmllKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG99KGFlKSxjZT1sZTtmdW5jdGlvbiBkZShlKXtyZXR1cm4gZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGRlKGUpfWZ1bmN0aW9uIHVlKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PWRlKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09ZGUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShuLmtleSksInN5bWJvbCI9PT1kZShpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9dmFyIHBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLnRhYmFjY0lEPSIjanMtdGFiLWFjYyIsdGhpcy50YWJhY2NTZWxlY3Rvcj0iLmpzLXRhYnMtdG8tYWNjLXdyYXBwZXIiLHRoaXMudGFiYWNjSXRlbXM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLnRhYmFjY1NlbGVjdG9yKSx0aGlzLnRhYk9wdGlvbnM9e3dyYXBwZXI6Ii5qcy10YWJzLXdyYXBwZXIiLHNlbGVjdG9yczp7bmF2OiIuanMtdGFicy1uYXYtaXRlbSIscGFuZWw6Ii5qcy10YWJzLXBhbmVsIn19LHRoaXMuYWNjb3JkaW9uT3B0aW9ucz17c2VsZWN0b3JzOntpdGVtOiIuanMtdGFicy1wYW5lbCIsdHJpZ2dlcjoiLmpzLXRhYnMtbGFiZWwiLGNvbnRlbnQ6Ii5qcy10YS1jb250ZW50In0sb3B0OntjbG9zZTohMCxleHBhbmQ6ITB9LGNsYXNzZXM6e2Rpc3BsYXk6ImZsZXgifSxhbmltYXRpb246e2NvbnRlbnQ6ITB9fSx0aGlzLmlzTW9iaWxlPSExLHRoaXMuaXNEZXNrdG9wPSExLHRoaXMuYWNjb3JkaW9uSW5zdGFuY2UsdGhpcy50YWJJbnN0YW5jZSx2b2lkIDAhPT10JiYodGhpcy50YWJhY2NJRD10KSx0aGlzLmluaXQoKX12YXIgYSxuO3JldHVybiBhPWUsKG49W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aW5kb3cuaW5uZXJXaWR0aDwxMDI1P3RoaXMuaXNNb2JpbGU9ITA6dGhpcy5pc0Rlc2t0b3A9ITAsZS5pc01vYmlsZSYmZS5idWlsZEFjY29yZGlvbigpLGUuaXNEZXNrdG9wJiZlLmJ1aWxkVGFiKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKGZ1bmN0aW9uKCl7ZS50aHJvdHRsZVNjcm9sbCgpfSkpLHRoaXMudGhyb3R0bGVTY3JvbGw9dCgoZnVuY3Rpb24oKXtlLmJ1aWxkVGFiQWNjb3JkaW9uKCl9KSwxNTApLGUuYnVpbGRUYWJBY2NvcmRpb24oKX19LHtrZXk6ImJ1aWxkVGFiQWNjb3JkaW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7d2luZG93LmlubmVyV2lkdGg8MTAyNT9lLmlzTW9iaWxlfHwodm9pZCAwIT09ZS50YWJJbnN0YW5jZSYmKGUudGFiSW5zdGFuY2UudW5iaW5kVGFiTmF2RXZlbnQoKSxlLnRhYkluc3RhbmNlPXZvaWQgMCksZS5idWlsZEFjY29yZGlvbigpLGUuaXNEZXNrdG9wPSExLGUuaXNNb2JpbGU9ITApOmUuaXNEZXNrdG9wfHwodm9pZCAwIT09ZS5hY2NvcmRpb25JbnN0YW5jZSYmKGUuYWNjb3JkaW9uSW5zdGFuY2UuYWNjb3JkaW9uVW5iaW5kRXZlbnRzKCksZS5hY2NvcmRpb25JbnN0YW5jZT12b2lkIDApLGUuYnVpbGRUYWIoKSxlLmlzTW9iaWxlPSExLGUuaXNEZXNrdG9wPSEwKX19LHtrZXk6ImJ1aWxkQWNjb3JkaW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWNjb3JkaW9uSW5zdGFuY2U9bmV3IFoodGhpcy50YWJhY2NJRCx0aGlzLmFjY29yZGlvbk9wdGlvbnMpfX0se2tleToiYnVpbGRUYWIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50YWJPcHRpb25zLndyYXBwZXI9dGhpcy50YWJhY2NJRCx0aGlzLnRhYkluc3RhbmNlPW5ldyBjZSh0aGlzLnRhYk9wdGlvbnMpLHRoaXMudGFiSW5zdGFuY2Uuc2V0Rmlyc3RBY3RpdmUoKX19XSkmJnVlKGEucHJvdG90eXBlLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksZmU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXRhYnMtdG8tYWNjLXdyYXBwZXIiKTtmdW5jdGlvbiB2ZShlKXtyZXR1cm4gdmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHZlKGUpfWZ1bmN0aW9uIGhlKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PXZlKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09dmUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShuLmtleSksInN5bWJvbCI9PT12ZShpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9dmFyIG1lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMuY29uZmlnPXtzZWxlY3RvcjoiLmpzLXRhYnMtcGFuZWwiLG5hdmlnYXRpb246Ii5qcy10YWJzLW5hdiIsdGFiczp7Y29udGFpbmVyOiIubC10YWJzX19wYW5lbCJ9LGFjY29yZGlvbjp7bGFiZWw6Ii5sLXRhYnNfX2xhYmVsIixjb250ZW50OiIubC10YWJzX19jb250ZW50In0sbmF2OntpdGVtOiIuYy10YWJzLW5hdl9fbGluayJ9fSx0aGlzLnNlbGVjdG9yPSIiLmNvbmNhdCh0aGlzLmNvbmZpZy5uYXZpZ2F0aW9uLCIgIikuY29uY2F0KHRoaXMuY29uZmlnLm5hdi5pdGVtKSx0aGlzLml0ZW1zPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5zZWxlY3RvciksdGhpcy5rZXlzPXtlbmQ6MzUsaG9tZTozNixsZWZ0OjM3LHVwOjM4LHJpZ2h0OjM5LGRvd246NDAsZGVsZXRlOjQ2LGVudGVyOjEzLHNwYWNlOjMyfSx0aGlzLmtleXNEaXJlY3Rpb249ezM3Oi0xLDM4Oi0xLDM5OjEsNDA6MX0sdGhpcy5pbml0KCl9dmFyIHQsYTtyZXR1cm4gdD1lLChhPVt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319XSkmJmhlKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCk7TWF0aC5lYXNlSW5PdXRDdWJpYz1mdW5jdGlvbihlLHQsYSxuKXtyZXR1cm4oZS89bi8yKTwxP2EvMiplKmUqZSt0OmEvMiooKGUtPTIpKmUqZSsyKSt0fTt2YXIgZ2U9ZnVuY3Rpb24oZSx0LGEsbil7cmV0dXJuKGUvPW4vMik8MT9hLzIqZSplKmUqZSt0Oi1hLzIqKChlLT0yKSplKmUqZS0yKSt0fTtmdW5jdGlvbiBiZShlKXtyZXR1cm4gYmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGJlKGUpfWZ1bmN0aW9uIHllKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB3ZShlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiB3ZShlLHQpO3ZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PWEmJmUuY29uc3RydWN0b3ImJihhPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1hfHwiU2V0Ij09PWE/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PWF8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGEpP3dlKGUsdCk6dm9pZCAwfX0oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gd2UoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIGE9MCxuPW5ldyBBcnJheSh0KTthPHQ7YSsrKW5bYV09ZVthXTtyZXR1cm4gbn1mdW5jdGlvbiB4ZShlLHQpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsKHZvaWQgMCxpPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1iZShlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGE9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBuPWEuY2FsbChlLCJzdHJpbmciKTtpZigib2JqZWN0IiE9PWJlKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0obi5rZXkpLCJzeW1ib2wiPT09YmUoaSk/aTpTdHJpbmcoaSkpLG4pfXZhciBpfXZhciBFZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5zY3JvbGw9e30sdGhpcy5zZWxlY3Rvcj0iLmpzLXRhYnMtbmF2IC5jLXRhYnMtbmF2X19saW5rIix0aGlzLm1vYmlsZVNlbGVjdG9yPSIuanMtdGFicy1wYW5lbCAubC10YWJzX19sYWJlbCIsdGhpcy5pdGVtcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuc2VsZWN0b3IpLHRoaXMuaXRlbXNNb2JpbGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLm1vYmlsZVNlbGVjdG9yKSx0aGlzLmFvcz10LHRoaXMuaW5pdCgpfXZhciBhLG47cmV0dXJuIGE9ZSwobj1be2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuYmluZENoYW5nZVRhYj10aGlzLmNoYW5nZVRhYi5iaW5kKHRoaXMpLGUuYmluZENoYW5nZVNsaWRlPXRoaXMuY2hhbmdlU2xpZGUuYmluZCh0aGlzKSxlLmJpbmRTY3JvbGxBY2NvcmRpb249dGhpcy5zY3JvbGxBY2NvcmRpb24uYmluZCh0aGlzKSxlLmJpbmRSZXNpemVBY2NvcmRpb249dGhpcy5yZXNpemVBY2NvcmRpb24uYmluZCh0aGlzKSx5ZShlLml0ZW1zKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlLmJpbmRDaGFuZ2VUYWIpfSkpLHllKGUuaXRlbXNNb2JpbGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUuYmluZENoYW5nZVNsaWRlKX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoZnVuY3Rpb24oKXthKCl9KSk7dmFyIGE9dCgoZnVuY3Rpb24oKXtlLmJpbmRSZXNpemVBY2NvcmRpb24oKX0pLDI1MCk7dCgoZnVuY3Rpb24oKXtlLmJpbmRTY3JvbGxBY2NvcmRpb24oKX0pLDE1MCksZS5iaW5kUmVzaXplQWNjb3JkaW9uKCl9fSx7a2V5OiJjaGFuZ2VUYWIiLHZhbHVlOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1lLmN1cnJlbnRUYXJnZXQsYT10LmdldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIpLG49KHQuY2xvc2VzdCgiLmMtdGFicy1uYXZfX2l0ZW0iKSx0LmNsb3Nlc3QoIi5qcy10YWJzLW5hdiIpLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jLXRhYnMtbmF2X19saW5rIikpO3QuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1hY3RpdmUiKXx8KG4uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKX0pKSx0LmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwidHJ1ZSIpKTt2YXIgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtdGFicy1wYW5lbCAubC10YWJzX19wYW5lbCIpO2kuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIsImlzLWN1cnJlbnQiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIil9KSksaS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe2UuZ2V0QXR0cmlidXRlKCJpZCIpPT09YSYmKGUuY2xhc3NMaXN0LmFkZCgiaXMtYWN0aXZlIiwiaXMtY3VycmVudCIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsImZhbHNlIikpfSkpfX0se2tleToiY2hhbmdlU2xpZGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdCxhLG4saSxyLHMsbyxkLHUscD1lLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmwtdGFic19fcGFuZWwiKSxmPXAucXVlcnlTZWxlY3RvcigiLmwtdGFic19fY29udGVudCIpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy10YWJzLXBhbmVsIC5sLXRhYnNfX3BhbmVsIikuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtlPT09cD9wLmNsYXNzTGlzdC5jb250YWlucygiaXMtY3VycmVudCIpfHxwLmNsYXNzTGlzdC5hZGQoImlzLWN1cnJlbnQiKTplLmNsYXNzTGlzdC5yZW1vdmUoImlzLWN1cnJlbnQiKX0pKSxwLmNsYXNzTGlzdC5jb250YWlucygiaXMtYWN0aXZlIikpe3ZhciB2PWYub2Zmc2V0VG9wLGg9d2luZG93LnBhZ2VZT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLG09Zi5vZmZzZXRUb3AtOTk7aD52LTUwJiYoYT12b2lkIDAhPT0odD17dG86bSxkdXJhdGlvbjoyMDAsZWFzaW5nOmdlfSkuZWxlbWVudD90LmVsZW1lbnQ6d2luZG93LG49dC50byxpPXZvaWQgMCE9PXQuZHVyYXRpb24/dC5kdXJhdGlvbjoyNTAscj12b2lkIDAhPT10LmNhbGxiYWNrP3QuY2FsbGJhY2s6bnVsbCxzPXZvaWQgMCE9PXQuZWFzaW5nP3QuZWFzaW5nOk1hdGguZWFzZUluT3V0Q3ViaWMsbz1hIT09d2luZG93P2Euc2Nyb2xsVG9wOih3aW5kb3cucGFnZVlPZmZzZXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApLShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wfHwwKSxkPW4tbyx1PTAsZnVuY3Rpb24gZSgpe3UrPTE2O3ZhciB0PWk/cyh1LG8sZCxpKTpuO2Euc2Nyb2xsVG8oMCx0KSx1PGk/c2V0VGltZW91dChlLDE2KTpyJiZyKCl9KCkpLGwoZikscC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hY3RpdmUiKSxwLmNsYXNzTGlzdC5yZW1vdmUoImlzLWN1cnJlbnQiKX1lbHNlIGMoZix7ZGlzcGxheToiZmxleCJ9KSxwLmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpfX0se2tleToic2Nyb2xsQWNjb3JkaW9uIix2YWx1ZTpmdW5jdGlvbigpe3dpbmRvdy5pbm5lcldpZHRoO3ZhciBlPVtdLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXRhYnMtcGFuZWwgLmwtdGFic19fY29udGVudCIpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCxhKXt2YXIgbixpLHIscyxvLGwsYzt0LmNsb3Nlc3QoIi5sLXRhYnNfX3BhbmVsIikuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1hY3RpdmUiKSYmKG49dCxpPXdpbmRvdy5zY3JvbGxZfHx3aW5kb3cucGFnZVlPZmZzZXQscj1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCtpLHM9aSxvPWkrd2luZG93LmlubmVySGVpZ2h0LGw9ciwoKGM9cituLmNsaWVudEhlaWdodCk+PXMmJmM8PW98fGw8PW8mJmw+PXMpJiZlLnB1c2goYSkpfSkpLGUubGVuZ3RoPjAmJnQuZm9yRWFjaCgoZnVuY3Rpb24odCxhKXt2YXIgbj10LmNsb3Nlc3QoIi5sLXRhYnNfX3BhbmVsIik7ZVswXT09PWE/bi5jbGFzc0xpc3QuY29udGFpbnMoImlzLWN1cnJlbnQiKXx8bi5jbGFzc0xpc3QuYWRkKCJpcy1jdXJyZW50Iik6bi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1jdXJyZW50Iil9KSl9fSx7a2V5OiJyZXNpemVBY2NvcmRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYod2luZG93LmlubmVyV2lkdGg+MTAyNCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXRhYnMtcGFuZWwgLmwtdGFic19fY29udGVudCIpLHQ9MDtlLmZvckVhY2goKGZ1bmN0aW9uKGUsYSl7dmFyIG49ZS5jbG9zZXN0KCIubC10YWJzX19wYW5lbCIpO24uY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1jdXJyZW50IikmJih0PWEpLG4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIiksZS5zdHlsZS5kaXNwbGF5PSIifSkpLGUubGVuZ3RoPjAmJmVbdF0uY2xvc2VzdCgiLmwtdGFic19fcGFuZWwiKS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtdGFicy1uYXYgLmMtdGFicy1uYXZfX2xpbmsiKTthLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1hY3RpdmUiKX0pKSxhLmxlbmd0aD4wJiZhW3RdLmNsYXNzTGlzdC5hZGQoImlzLWFjdGl2ZSIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYmluZFNjcm9sbEFjY29yZGlvbil9ZWxzZSB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmJpbmRTY3JvbGxBY2NvcmRpb24pfX1dKSYmeGUoYS5wcm90b3R5cGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX0oKTtmdW5jdGlvbiBTZShlKXtyZXR1cm4gU2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LFNlKGUpfWZ1bmN0aW9uIFRlKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PVNlKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09U2UobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShuLmtleSksInN5bWJvbCI9PT1TZShpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9ZnVuY3Rpb24gQ2UoKXtyZXR1cm4gQ2U9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPWZ1bmN0aW9uKGUsdCl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJm51bGwhPT0oZT1NZShlKSk7KTtyZXR1cm4gZX0oZSx0KTtpZihuKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCk7cmV0dXJuIGkuZ2V0P2kuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2U6YSk6aS52YWx1ZX19LENlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBrZShlLHQpe3JldHVybiBrZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGtlKGUsdCl9ZnVuY3Rpb24gTWUoZSl7cmV0dXJuIE1lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfSxNZShlKX12YXIgUGU9ZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQmJmtlKGUsdCl9KG8sZSk7dmFyIHQsYSxpLHIscz0oaT1vLHI9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZ1bmN0aW9uKCl7dmFyIGUsdD1NZShpKTtpZihyKXt2YXIgYT1NZSh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KHQsYXJndW1lbnRzLGEpfWVsc2UgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZih0JiYoIm9iamVjdCI9PT1TZSh0KXx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpKXJldHVybiB0O2lmKHZvaWQgMCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfShlKX0odGhpcyxlKX0pO2Z1bmN0aW9uIG8oZSl7dmFyIHQ7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbyksKHQ9cy5jYWxsKHRoaXMpKS5kZWZhdWx0cz17d3JhcHBlcjoiLmpzLXRhYnNEcm9wLXdyYXBwZXIiLHNlbGVjdG9yczp7ZHJvcGRvd246Ii5qcy10YWJzLWRyb3Bkb3duIixwYW5lbDoiLmpzLXRhYnMtcGFuZWwifSxjbGFzc2VzOnthY3RpdmU6ImlzLWFjdGl2ZSJ9LGRhdGE6ImRhdGEtdGFiIn0sdC5jb25maWc9bih0LmRlZmF1bHRzLGUpLHQuc2VsZWN0b3JEcm9wZG93bj0iIi5jb25jYXQodC5jb25maWcud3JhcHBlciwiICIpLmNvbmNhdCh0LmNvbmZpZy5zZWxlY3RvcnMuZHJvcGRvd24pLHQuaXRlbXNEcm9wZG93bj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQuc2VsZWN0b3JEcm9wZG93biksdC5pbml0KCksdH1yZXR1cm4gdD1vLChhPVt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmluZEZ1bmN0aW9ucygpLHRoaXMuYmluZFRhYnNEcm9wZG93bkV2ZW50KCl9fSx7a2V5OiJiaW5kRnVuY3Rpb25zIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGFiRHJvcGRvd25DaGFuZ2U9dGhpcy50YWJEcm9wZG93bkNoYW5nZS5iaW5kKHRoaXMpfX0se2tleToiYmluZFRhYnNEcm9wZG93bkV2ZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5pdGVtc0Ryb3Bkb3duLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixlLnRhYkRyb3Bkb3duQ2hhbmdlKX0pKX19LHtrZXk6InRhYkRyb3Bkb3duQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5jdXJyZW50VGFyZ2V0LGE9dC52YWx1ZSxuPXQub3B0aW9ucy5zZWxlY3RlZEluZGV4LGk9MDtpPHQub3B0aW9ucy5sZW5ndGg7aSs9MSl0Lm9wdGlvbnNbaV0ucmVtb3ZlQXR0cmlidXRlKCJzZWxlY3RlZCIpO3Qub3B0aW9uc1tuXS5zZXRBdHRyaWJ1dGUoInNlbGVjdGVkIiwic2VsZWN0ZWQiKSxDZShNZShvLnByb3RvdHlwZSksInRhYlBhbmVsQ2hhbmdlIix0aGlzKS5jYWxsKHRoaXMsYSl9fSx7a2V5OiJ1bmJpbmRUYWJzRHJvcGRvd25FdmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXRlbXNEcm9wZG93bi5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZS50YWJEcm9wZG93bkNoYW5nZSl9KSl9fV0pJiZUZSh0LnByb3RvdHlwZSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxvfShhZSksQWU9UGU7ZnVuY3Rpb24gTGUoZSl7cmV0dXJuIExlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxMZShlKX1mdW5jdGlvbiBPZShlLHQpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsKHZvaWQgMCxpPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPT1MZShlKXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGE9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBuPWEuY2FsbChlLCJzdHJpbmciKTtpZigib2JqZWN0IiE9PUxlKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0obi5rZXkpLCJzeW1ib2wiPT09TGUoaSk/aTpTdHJpbmcoaSkpLG4pfXZhciBpfWZ1bmN0aW9uIGplKCl7cmV0dXJuIGplPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGUsdCxhKXt2YXIgbj1mdW5jdGlvbihlLHQpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpJiZudWxsIT09KGU9JGUoZSkpOyk7cmV0dXJuIGV9KGUsdCk7aWYobil7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpO3JldHVybiBpLmdldD9pLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9lOmEpOmkudmFsdWV9fSxqZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSWUoZSx0KXtyZXR1cm4gSWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxJZShlLHQpfWZ1bmN0aW9uICRlKGUpe3JldHVybiAkZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sJGUoZSl9dmFyIHplPWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0JiZJZShlLHQpfShvLGUpO3ZhciB0LGEsaSxyLHM9KGk9byxyPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxmdW5jdGlvbigpe3ZhciBlLHQ9JGUoaSk7aWYocil7dmFyIGE9JGUodGhpcykuY29uc3RydWN0b3I7ZT1SZWZsZWN0LmNvbnN0cnVjdCh0LGFyZ3VtZW50cyxhKX1lbHNlIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYodCYmKCJvYmplY3QiPT09TGUodCl8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZX0oZSl9KHRoaXMsZSl9KTtmdW5jdGlvbiBvKGUpe3ZhciB0O3JldHVybiBmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG8pLCh0PXMuY2FsbCh0aGlzKSkuZGVmYXVsdHM9e3dyYXBwZXI6Ii5qcy10YWJzVGFiRHJvcC13cmFwcGVyIixzZWxlY3RvcnM6e25hdjoiLmpzLXRhYnMtbmF2LWl0ZW0iLGRyb3Bkb3duOiIuanMtdGFicy1kcm9wZG93biIscGFuZWw6Ii5qcy10YWJzLXBhbmVsIn0sY2xhc3Nlczp7YWN0aXZlOiJpcy1hY3RpdmUifSxkYXRhOiJkYXRhLXRhYiJ9LHQuY29uZmlnPW4odC5kZWZhdWx0cyxlKSx0LnNlbGVjdG9yVGFicz0iIi5jb25jYXQodC5jb25maWcud3JhcHBlciwiICIpLmNvbmNhdCh0LmNvbmZpZy5zZWxlY3RvcnMubmF2KSx0LnNlbGVjdG9yRHJvcGRvd249IiIuY29uY2F0KHQuY29uZmlnLndyYXBwZXIsIiAiKS5jb25jYXQodC5jb25maWcuc2VsZWN0b3JzLmRyb3Bkb3duKSx0Lml0ZW1zPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodC5zZWxlY3RvclRhYnMpLHQuaXRlbXNEcm9wZG93bj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQuc2VsZWN0b3JEcm9wZG93biksdC5pbml0VGFic0Ryb3Bkb3duKCksdH1yZXR1cm4gdD1vLChhPVt7a2V5OiJpbml0VGFic0Ryb3Bkb3duIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmluZEZ1bmN0aW9ucygpLHRoaXMuYmluZFRhYk5hdkV2KCksdGhpcy5iaW5kVGFic0Ryb3Bkb3duRXZlbnQoKX19LHtrZXk6ImJpbmRGdW5jdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50YWJEcm9wZG93bkNoYW5nZT10aGlzLnRhYkRyb3Bkb3duQ2hhbmdlLmJpbmQodGhpcyksdGhpcy50YWJOYXZDbGljaz10aGlzLnRhYk5hdkNsaWNrLmJpbmQodGhpcyl9fSx7a2V5OiJiaW5kVGFic0Ryb3Bkb3duRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLml0ZW1zRHJvcGRvd24uZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGUudGFiRHJvcGRvd25DaGFuZ2UpfSkpfX0se2tleToiYmluZFRhYk5hdkV2Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlLnRhYk5hdkNsaWNrLHtwYXNzaXZlOiEwfSl9KSl9fSx7a2V5OiJ0YWJOYXZDbGljayIsdmFsdWU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGE9dGhpcyxuPWUuY3VycmVudFRhcmdldCxpPWplKCRlKG8ucHJvdG90eXBlKSwiZ2V0TmF2VGFiSUQiLHRoaXMpLmNhbGwodGhpcyxuKSxyPW4uY2xvc2VzdChhLmNvbmZpZy53cmFwcGVyKS5xdWVyeVNlbGVjdG9yKGEuY29uZmlnLnNlbGVjdG9ycy5kcm9wZG93bikscz0wO3M8ci5vcHRpb25zLmxlbmd0aDtzKz0xKXIub3B0aW9uc1tzXS52YWx1ZT09PWkmJih0PXMpO2EudXBkYXRlVGFiTmF2KG4pLGEudXBkYXRlRHJvcGRvd24ocix0KSxqZSgkZShvLnByb3RvdHlwZSksInRhYlBhbmVsQ2hhbmdlIix0aGlzKS5jYWxsKHRoaXMsaSl9fSx7a2V5OiJ0YWJEcm9wZG93bkNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxhPWUuY3VycmVudFRhcmdldCxuPWEub3B0aW9ucy5zZWxlY3RlZEluZGV4LGk9YS52YWx1ZSxyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIlsiLmNvbmNhdCh0LmNvbmZpZy5kYXRhLCI9JyIpLmNvbmNhdChpLCInXSIpKTt0LnVwZGF0ZURyb3Bkb3duKGEsbiksdC51cGRhdGVUYWJOYXYociksamUoJGUoby5wcm90b3R5cGUpLCJ0YWJQYW5lbENoYW5nZSIsdGhpcykuY2FsbCh0aGlzLGkpfX0se2tleToidXBkYXRlRHJvcGRvd24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBhPWUsbj10LGk9MDtpPGEub3B0aW9ucy5sZW5ndGg7aSs9MSlhLm9wdGlvbnNbaV0ucmVtb3ZlQXR0cmlidXRlKCJzZWxlY3RlZCIpO2Eub3B0aW9uc1tuXS5zZXRBdHRyaWJ1dGUoInNlbGVjdGVkIiwic2VsZWN0ZWQiKSxhLm9wdGlvbnMuc2VsZWN0ZWRJbmRleD1ufX0se2tleToidXBkYXRlVGFiTmF2Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGE9ZTt0LmFjdGl2ZU5hdj1lO3ZhciBuPWEuY2xvc2VzdCh0LmNvbmZpZy53cmFwcGVyKS5xdWVyeVNlbGVjdG9yQWxsKHQuY29uZmlnLnNlbGVjdG9ycy5uYXYpO2plKCRlKG8ucHJvdG90eXBlKSwiY2xlYXJBY3RpdmVDbGFzcyIsdGhpcykuY2FsbCh0aGlzLG4sIm5hdiIpLGplKCRlKG8ucHJvdG90eXBlKSwic2V0QWN0aXZlQ2xhc3MiLHRoaXMpLmNhbGwodGhpcyxhLCJuYXYiKX19LHtrZXk6InVuYmluZFRhYnNEcm9wRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLml0ZW1zRHJvcGRvd247ZS5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixlLnRhYk5hdkNsaWNrKX0pKSx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixlLnRhYkRyb3Bkb3duQ2hhbmdlKX0pKX19XSkmJk9lKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG99KGFlKSxEZT16ZTtmdW5jdGlvbiBfZShlKXtyZXR1cm4gX2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LF9lKGUpfWZ1bmN0aW9uIHFlKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBhPTAsbj1uZXcgQXJyYXkodCk7YTx0O2ErKyluW2FdPWVbYV07cmV0dXJuIG59ZnVuY3Rpb24gTmUoZSx0KXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG49dFthXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCh2b2lkIDAsaT1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09X2UoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgbj1hLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1fZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KG4ua2V5KSwic3ltYm9sIj09PV9lKGkpP2k6U3RyaW5nKGkpKSxuKX12YXIgaX12YXIgQmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMuZGVmYXVsdHM9e3NlbGVjdG9yOiIuanMtdmlkZW8taW5pdCIsd3JhcHBlcjoianMtdmlkZW8td3JhcCIsYnV0dG9uczp7cGxheToiLmJ0bi1wbGF5IixtdXRlOiIuYnRuLW11dGUiLGNsb3NlOiIuYnRuLWNsb3NlIn0sY2xhc3Nlczp7cGF1c2U6ImlzLXBhdXNlIixwbGF5aW5nOiJpcy1wbGF5aW5nIixzb3VuZDoiaXMtc291bmQiLG11dGU6ImlzLW11dGVkIixwYXJlbnRQbGF5OiJpcy12aWRlby1wbGF5aW5nIixwYXJlbnRQYXVzZToiaXMtdmlkZW8tcGF1c2VkIix0cmlnZ2VyQXV0b3BsYXk6ImpzLXRyaWdnZXItYXV0b3BsYXkifSxjb250cm9sczohMX0sdGhpcy5jb25maWc9bih0aGlzLmRlZmF1bHRzLHQpLHRoaXMuaXRlbXM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5zZWxlY3RvciksdGhpcy5pbml0KCl9dmFyIHQsYTtyZXR1cm4gdD1lLChhPVt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpczt0LmJpbmRUb2dnbGVQbGF5PXRoaXMudG9nZ2xlUGxheS5iaW5kKHRoaXMpLHQuYmluZFRvZ2dsZU11dGU9dGhpcy50b2dnbGVNdXRlLmJpbmQodGhpcyksdC5iaW5kRW5kZWRWaWRlbz10aGlzLmVuZGVkVmlkZW8uYmluZCh0aGlzKSwoZT10Lml0ZW1zLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHFlKGUpfShlKXx8ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIHFlKGUsdCk7dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09YSYmZS5jb25zdHJ1Y3RvciYmKGE9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWF8fCJTZXQiPT09YT9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09YXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoYSk/cWUoZSx0KTp2b2lkIDB9fShlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5jb25maWcuY29udHJvbHN8fChlLmNvbnRyb2xzPSExKTt2YXIgYT1lLnBhcmVudEVsZW1lbnQ7YS5jbGFzc0xpc3QuYWRkKHQuY29uZmlnLndyYXBwZXIpO3ZhciBuPWEucXVlcnlTZWxlY3Rvcih0LmNvbmZpZy5idXR0b25zLnBsYXkpLGk9YS5xdWVyeVNlbGVjdG9yKHQuY29uZmlnLmJ1dHRvbnMubXV0ZSk7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdC5iaW5kVG9nZ2xlUGxheSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdC5iaW5kVG9nZ2xlTXV0ZSksZS5hZGRFdmVudExpc3RlbmVyKCJlbmRlZCIsdC5iaW5kRW5kZWRWaWRlbywhMSksZS5jbGFzc0xpc3QuY29udGFpbnModC5jb25maWcuY2xhc3Nlcy50cmlnZ2VyQXV0b3BsYXkpJiZ0LnN0YXJ0UGxheShlKX0pKX19LHtrZXk6ImVuZGVkVmlkZW8iLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsYT1lLmN1cnJlbnRUYXJnZXQsbj1hLmNsb3Nlc3QoIi4iK3QuY29uZmlnLndyYXBwZXIpLGk9bi5xdWVyeVNlbGVjdG9yKHQuY29uZmlnLmJ1dHRvbnMucGxheSk7YS5wYXVzZSgpLGEuY3VycmVudFRpbWU9MCxpLmNsYXNzTGlzdC5hZGQodC5jb25maWcuY2xhc3Nlcy5wYXVzZSksaS5jbGFzc0xpc3QucmVtb3ZlKHQuY29uZmlnLmNsYXNzZXMucGxheWluZyksbi5jbGFzc0xpc3QucmVtb3ZlKHQuY29uZmlnLmNsYXNzZXMucGFyZW50UGxheSl9fSx7a2V5OiJ0b2dnbGVQbGF5Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGE9ZS5jdXJyZW50VGFyZ2V0LG49YS5jbG9zZXN0KCIuIit0LmNvbmZpZy53cmFwcGVyKSxpPW4ucXVlcnlTZWxlY3Rvcih0LmNvbmZpZy5zZWxlY3Rvcik7aS5wYXVzZWR8fGkuZW5kZWQ/KGEuY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLnBsYXlpbmcpLG4uY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLnBhcmVudFBsYXkpLG4uY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLnBhcmVudFBhdXNlKSxhLmNsYXNzTGlzdC5yZW1vdmUodC5jb25maWcuY2xhc3Nlcy5wYXVzZSksaS5wbGF5KCkpOihhLmNsYXNzTGlzdC5hZGQodC5jb25maWcuY2xhc3Nlcy5wYXVzZSksbi5jbGFzc0xpc3QuYWRkKHQuY29uZmlnLmNsYXNzZXMucGFyZW50UGF1c2UpLG4uY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLnBhcmVudFBsYXkpLGEuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLnBsYXlpbmcpLGkucGF1c2UoKSl9fSx7a2V5OiJ0b2dnbGVNdXRlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGE9ZS5jdXJyZW50VGFyZ2V0LG49YS5jbG9zZXN0KCIuIit0LmNvbmZpZy53cmFwcGVyKS5xdWVyeVNlbGVjdG9yKHQuY29uZmlnLnNlbGVjdG9yKTtuLm11dGVkPSFuLm11dGVkLG4ubXV0ZWQ/KGEuY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLm11dGUpLGEuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLnNvdW5kKSk6KGEuY2xhc3NMaXN0LmFkZCh0LmNvbmZpZy5jbGFzc2VzLnNvdW5kKSxhLmNsYXNzTGlzdC5yZW1vdmUodC5jb25maWcuY2xhc3Nlcy5tdXRlKSl9fSx7a2V5OiJzdG9wUGxheSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxhPWUsbj1hLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3Rvcih0LmNvbmZpZy5idXR0b25zLnBsYXkpO2EucGF1c2VkJiZhLmVuZGVkfHwobi5jbGFzc0xpc3QuYWRkKHQuY29uZmlnLmNsYXNzZXMucGF1c2UpLG4uY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5jbGFzc2VzLnBsYXlpbmcpLGEucGF1c2UoKSl9fSx7a2V5OiJzdGFydFBsYXkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsYT1lLG49YS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodC5jb25maWcuYnV0dG9ucy5wbGF5KTsoYS5wYXVzZWR8fGEuZW5kZWQpJiYobi5jbGFzc0xpc3QuYWRkKHQuY29uZmlnLmNsYXNzZXMucGxheWluZyksbi5jbGFzc0xpc3QucmVtb3ZlKHQuY29uZmlnLmNsYXNzZXMucGF1c2UpLGEucGxheSgpKX19XSkmJk5lKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksUmU9YSg2NjUpLEhlPWEubihSZSksR2U9YSgzMTEpO2Z1bmN0aW9uIEZlKGUsdCxhLG4pe3ZhciBpLHIscz1uZXcoSGUoKSkoZSx7ZWZmZWN0OiJmYWRlIixmYWRlRWZmZWN0Ontjcm9zc0ZhZGU6ITB9LGF1dG9IZWlnaHQ6ITEsc3BlZWQ6NTAwLGRpcmVjdGlvbjoiaG9yaXpvbnRhbCIsYWxsb3dUb3VjaE1vdmU6ITEscGFnaW5hdGlvbjp7ZWw6dCx0eXBlOiJwcm9ncmVzc2JhciJ9LGxvb3A6ITEsc3BhY2VCZXR3ZWVuOjUsb246e2luaXQ6ZnVuY3Rpb24oKXt2YXIgZTtlPSIiLmNvbmNhdChhLCIgIikuY29uY2F0KG4pLEdlKGUpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxHZShlKS5lcSgwKS5hZGRDbGFzcygiYWN0aXZlIil9LHNsaWRlQ2hhbmdlVHJhbnNpdGlvblN0YXJ0OmZ1bmN0aW9uKCl7dmFyIGUsdDtlPSIiLmNvbmNhdChhLCIgIikuY29uY2F0KG4pLHQ9cy5yZWFsSW5kZXgsR2UoZSkucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLEdlKGUpLmVxKHQpLmFkZENsYXNzKCJhY3RpdmUiKX19fSk7aT0iIi5jb25jYXQoYSwiICIpLmNvbmNhdChuKSxyPXMsR2UoaSkuY2xpY2soKGZ1bmN0aW9uKCl7ci5zbGlkZVRvKEdlKHRoaXMpLmluZGV4KCkpLEdlKGkpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxHZSh0aGlzKS5hZGRDbGFzcygiYWN0aXZlIil9KSksZnVuY3Rpb24oZSl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oKXtlLmNsb3Nlc3QoIi5zd2lwZXItbmF2IikucXVlcnlTZWxlY3RvcigiLnNlbGVjdC1wb2ludCIpLnRleHRDb250ZW50PWUucXVlcnlTZWxlY3RvcigiLnN3aXRjaC10aXRsZSIpLnRleHRDb250ZW50fSkpfSkpfSgiIi5jb25jYXQoYSwiICIpLmNvbmNhdChuKSl9ZnVuY3Rpb24gWWUoZSl7cmV0dXJuIFllPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxZZShlKX1mdW5jdGlvbiBWZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgYT0wLG49bmV3IEFycmF5KHQpO2E8dDthKyspblthXT1lW2FdO3JldHVybiBufWZ1bmN0aW9uIFhlKGUsdCl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBuPXRbYV07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG4mJihuLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwodm9pZCAwLGk9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PVllKGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09WWUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShuLmtleSksInN5bWJvbCI9PT1ZZShpKT9pOlN0cmluZyhpKSksbil9dmFyIGl9dmFyIFdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LGEpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMud3JhcHBlcj0iLmpzLWEtbGlnaHQiLHRoaXMuZGVmYXVsdHM9e3NlbGVjdG9yczp7aXRlbToiLmpzLWEtaXRlbSIsdHJpZ2dlcjoiLmpzLWEtYnV0dG9uIixjb250ZW50OiIuanMtYS1jb250ZW50In0sY2xhc3Nlczp7YWN0aXZlOiJpcy1hY3RpdmUiLGZvY3VzOiJmb2N1cyJ9LGF0dHI6e2Nsb3NlOiJkYXRhLWNsb3NlIixvcGVuOiJkYXRhLWV4cGFuZCJ9fSx0aGlzLmFyaWE9e2J1dHRvbjoiaGVhZGVyIixjb250ZW50OiJjb250ZW50In0sdGhpcy5vcHQ9e2Nsb3NlOiExLGV4cGFuZDohMX0sdGhpcy5jb25maWc9bih0aGlzLmRlZmF1bHRzLGEpLHZvaWQgMCE9PXQmJih0aGlzLndyYXBwZXI9dCksdGhpcy5nZXRBcmlhTmFtZSgpLHRoaXMuc2VsZWN0b3I9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLndyYXBwZXIpLHRoaXMuc2VsZWN0b3ImJih0aGlzLnRyaWdnZXI9dGhpcy5zZWxlY3Rvci5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLnNlbGVjdG9ycy50cmlnZ2VyKSx0aGlzLml0ZW1zPXRoaXMuc2VsZWN0b3IucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5zZWxlY3RvcnMuaXRlbSksdGhpcy5oYW5kbGVycz1bXSx0aGlzLmluaXQoKSl9dmFyIHQsYTtyZXR1cm4gdD1lLChhPVt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucGFyc2VPcHRpb25zKCksdGhpcy5hZGRBcmlhKCksdGhpcy5iaW5kRXZlbnRzKCl9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLnRyaWdnZXI7ZS5hZGRMaXN0ZW5lckZvY3VzPWUuYWRkTGlzdGVuZXJGb2N1cy5iaW5kKGUpLGUuYWRkTGlzdGVuZXJCbHVyPWUuYWRkTGlzdGVuZXJCbHVyLmJpbmQoZSksZS5hZGRLZXlMaXN0ZW5lcj1lLmFkZEtleUxpc3RlbmVyLmJpbmQoZSksdC5mb3JFYWNoKChmdW5jdGlvbih0LGEpe3ZhciBuPWUuYWNjb3JkaW9uTmF2Q2xpY2suYmluZChlLGEpO2UuaGFuZGxlcnMucHVzaChuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuLHtwYXNzaXZlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZS5hZGRMaXN0ZW5lckZvY3VzLHtwYXNzaXZlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixlLmFkZExpc3RlbmVyQmx1cix7cGFzc2l2ZTohMH0pfSkpLGUuc2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZS5hZGRLZXlMaXN0ZW5lcix7cGFzc2l2ZTohMH0pfX0se2tleToiYWRkTGlzdGVuZXJGb2N1cyIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5jbGFzc2VzLmZvY3VzKX19LHtrZXk6ImFkZExpc3RlbmVyQmx1ciIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5jbGFzc2VzLmZvY3VzKX19LHtrZXk6ImFkZEtleUxpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxhPWUudGFyZ2V0LG49ZS53aGljaC50b1N0cmluZygpLGk9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gVmUoZSl9KHQ9dGhpcy50cmlnZ2VyKXx8ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGUpfSh0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIFZlKGUsdCk7dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09YSYmZS5jb25zdHJ1Y3RvciYmKGE9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWF8fCJTZXQiPT09YT9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09YXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoYSk/VmUoZSx0KTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKSxyPXRoaXMuY29uZmlnLnNlbGVjdG9ycy50cmlnZ2VyLnNsaWNlKDEpLHM9ZS5jdHJsS2V5JiZuLm1hdGNoKC8zM3wzNC8pO2lmKGEuY2xhc3NMaXN0LmNvbnRhaW5zKHIpKWlmKG4ubWF0Y2goLzM4fDQwLyl8fHMpe3ZhciBvPWkuaW5kZXhPZihhKSxsPW4ubWF0Y2goLzM0fDQwLyk/MTotMSxjPWkubGVuZ3RoO2lbKG8rYytsKSVjXS5mb2N1cygpfWVsc2UgaWYobi5tYXRjaCgvMzV8MzYvKSlzd2l0Y2gobil7Y2FzZSIzNiI6aVswXS5mb2N1cygpO2JyZWFrO2Nhc2UiMzUiOmlbaS5sZW5ndGgtMV0uZm9jdXMoKX19fSx7a2V5OiJhY2NvcmRpb25OYXZDbGljayIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLG49dC5jdXJyZW50VGFyZ2V0LGk9YS5pdGVtcyxyPW4uY2xvc2VzdChhLmNvbmZpZy5zZWxlY3RvcnMuaXRlbSkscz1yLnF1ZXJ5U2VsZWN0b3IoYS5jb25maWcuc2VsZWN0b3JzLmNvbnRlbnQpLG89InRydWUiPT09bi5nZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiKXx8ITE7ci5jbGFzc0xpc3QuY29udGFpbnMoYS5jb25maWcuY2xhc3Nlcy5hY3RpdmUpP2Eub3B0LmNsb3NlJiYoci5jbGFzc0xpc3QucmVtb3ZlKGEuY29uZmlnLmNsYXNzZXMuYWN0aXZlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIW8pLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsbykpOmEub3B0LmV4cGFuZD8oci5jbGFzc0xpc3QuYWRkKGEuY29uZmlnLmNsYXNzZXMuYWN0aXZlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIW8pLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsbykpOihpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2xhc3NMaXN0LnJlbW92ZShhLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSl9KSksci5jbGFzc0xpc3QuYWRkKGEuY29uZmlnLmNsYXNzZXMuYWN0aXZlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIW8pLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsbykpfX0se2tleToicGFyc2VPcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7Qm9vbGVhbihlLnNlbGVjdG9yLmdldEF0dHJpYnV0ZShlLmNvbmZpZy5hdHRyLmNsb3NlKSkmJihlLm9wdC5jbG9zZT0hMCksQm9vbGVhbihlLnNlbGVjdG9yLmdldEF0dHJpYnV0ZShlLmNvbmZpZy5hdHRyLm9wZW4pKT8oZS5vcHQuZXhwYW5kPSEwLGUub3B0LmNsb3NlPSEwKTplLm9wdC5leHBhbmQ9ITF9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLnRyaWdnZXIuZm9yRWFjaCgoZnVuY3Rpb24odCxhKXt2YXIgbj10LmNsb3Nlc3QoZS5jb25maWcuc2VsZWN0b3JzLml0ZW0pLnF1ZXJ5U2VsZWN0b3IoZS5jb25maWcuc2VsZWN0b3JzLmNvbnRlbnQpO2UuYXJpYS5uYW1lJiYoIiIuY29uY2F0KGUuYXJpYS5uYW1lLCItIikuY29uY2F0KGUuYXJpYS5jb250ZW50LCItIikuY29uY2F0KGEpLCIiLmNvbmNhdChlLmFyaWEubmFtZSwiLSIpLmNvbmNhdChlLmFyaWEuYnV0dG9uLCItIikuY29uY2F0KGEpKSx0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsIiIpLG4ucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsIiIpLGUuYXJpYS5uYW1lJiYodC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLCIiKSx0LnJlbW92ZUF0dHJpYnV0ZSgiaWQiLCIiKSxuLnJlbW92ZUF0dHJpYnV0ZSgiaWQiLCIiKSxuLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IiwiIikpLG4ucmVtb3ZlQXR0cmlidXRlKCJyb2xlIiwiIiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZS5oYW5kbGVyc1thXSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsZS5hZGRMaXN0ZW5lckZvY3VzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGUuYWRkTGlzdGVuZXJCbHVyKX0pKSxlLnNlbGVjdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGUuYWRkS2V5TGlzdGVuZXIpfX0se2tleToiaXNWYWxpZElkIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4vXlteXHNdKyQvLnRlc3QoZSl9fSx7a2V5OiJnZXRBcmlhTmFtZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLndyYXBwZXIuc2xpY2UoMSk7dGhpcy5pc1ZhbGlkSWQoZSk/dGhpcy5hcmlhLm5hbWU9ZTp0aGlzLmFyaWEubmFtZT0hMX19LHtrZXk6ImFkZEFyaWEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLnRyaWdnZXIuZm9yRWFjaCgoZnVuY3Rpb24odCxhKXt2YXIgbixpLHI9dC5jbG9zZXN0KGUuY29uZmlnLnNlbGVjdG9ycy5pdGVtKSxzPXIucXVlcnlTZWxlY3RvcihlLmNvbmZpZy5zZWxlY3RvcnMuY29udGVudCk7ZS5hcmlhLm5hbWUmJihuPSIiLmNvbmNhdChlLmFyaWEubmFtZSwiLSIpLmNvbmNhdChlLmFyaWEuY29udGVudCwiLSIpLmNvbmNhdChhKSxpPSIiLmNvbmNhdChlLmFyaWEubmFtZSwiLSIpLmNvbmNhdChlLmFyaWEuYnV0dG9uLCItIikuY29uY2F0KGEpKSxyLmNsYXNzTGlzdC5jb250YWlucyhlLmNvbmZpZy5jbGFzc2VzLmFjdGl2ZSk/KHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwhMCkscy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMSkpOih0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsITEpLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApKSxlLmFyaWEubmFtZSYmKHQuc2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIixuKSx0LnNldEF0dHJpYnV0ZSgiaWQiLGkpLHMuc2V0QXR0cmlidXRlKCJpZCIsbikscy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsaSkpLHMuc2V0QXR0cmlidXRlKCJyb2xlIiwicmVnaW9uIil9KSl9fV0pJiZYZSh0LnByb3RvdHlwZSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIFVlKGUpe3JldHVybiBVZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sVWUoZSl9ZnVuY3Rpb24gS2UoZSx0KXt2YXIgYT1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihuPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLGEucHVzaC5hcHBseShhLG4pfXJldHVybiBhfWZ1bmN0aW9uIFplKGUsdCxhKXtyZXR1cm4odD1KZSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWEsZX1mdW5jdGlvbiBRZShlLHQpe2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsSmUobi5rZXkpLG4pfX1mdW5jdGlvbiBKZShlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT09VWUoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciBhPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgbj1hLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1VZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVybiJzeW1ib2wiPT09VWUodCk/dDpTdHJpbmcodCl9dmFyIGV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSx0aGlzLmRlZmF1bHRzPXtzdGFydDowLGVuZDoxMDAsZHVyYXRpb246MmUzLGRlbGF5OjEwLG9uY2U6ITAsZGVjaW1hbHM6MCxsZWdhY3k6ITAsY3VycmVuY3k6ITEsY3VycmVuY3lzeW1ib2w6ITEsc2VwYXJhdG9yOiExLHNlcGFyYXRvcnN5bWJvbDoiLCIsc2VsZWN0b3I6Ii5wdXJlY291bnRlciJ9LHRoaXMuY29uZmlnT3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMuZGVmYXVsdHMsdHx8e30pLHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVycygpfXZhciB0LGE7cmV0dXJuIHQ9ZSxhPVt7a2V5OiJyZWdpc3RlckV2ZW50TGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnT3B0aW9ucy5zZWxlY3Rvcik7aWYodGhpcy5pbnRlcnNlY3Rpb25MaXN0ZW5lclN1cHBvcnRlZCgpKXt2YXIgYT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5hbmltYXRlRWxlbWVudHMuYmluZCh0aGlzKSx7cm9vdDpudWxsLHJvb3RNYXJnaW46IjIwcHgiLHRocmVzaG9sZDouNX0pO3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YS5vYnNlcnZlKGUpfSkpfWVsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXImJih0aGlzLmFuaW1hdGVMZWdhY3kodCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsKGZ1bmN0aW9uKGEpe2UuYW5pbWF0ZUxlZ2FjeSh0KX0pLHtwYXNzaXZlOiEwfSkpfX0se2tleToiYW5pbWF0ZUxlZ2FjeSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztlLmZvckVhY2goKGZ1bmN0aW9uKGUpeyEwPT09dC5wYXJzZUNvbmZpZyhlKS5sZWdhY3kmJnQuZWxlbWVudElzSW5WaWV3KGUpJiZ0LmFuaW1hdGVFbGVtZW50cyhbZV0pfSkpfX0se2tleToiYW5pbWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXRoaXM7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1lLnRhcmdldHx8ZSxpPWEucGFyc2VDb25maWcobik7aWYoaS5kdXJhdGlvbjw9MClyZXR1cm4gbi5pbm5lckhUTUw9YS5mb3JtYXROdW1iZXIoaS5lbmQsaSk7aWYoIXQmJiFhLmVsZW1lbnRJc0luVmlldyhlKXx8dCYmZS5pbnRlcnNlY3Rpb25SYXRpbzwuNSl7dmFyIHI9aS5zdGFydD5pLmVuZD9pLmVuZDppLnN0YXJ0O3JldHVybiBuLmlubmVySFRNTD1hLmZvcm1hdE51bWJlcihyLGkpfXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGEuc3RhcnRDb3VudGVyKG4saSl9KSxpLmRlbGF5KX0pKX19LHtrZXk6InN0YXJ0Q291bnRlciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT10aGlzLG49KHQuZW5kLXQuc3RhcnQpLyh0LmR1cmF0aW9uL3QuZGVsYXkpLGk9ImluYyI7dC5zdGFydD50LmVuZCYmKGk9ImRlYyIsbio9LTEpO3ZhciByPXRoaXMucGFyc2VWYWx1ZSh0LnN0YXJ0KTtlLmlubmVySFRNTD10aGlzLmZvcm1hdE51bWJlcihyLHQpLCEwPT09dC5vbmNlJiZlLnNldEF0dHJpYnV0ZSgiZGF0YS1wdXJlY291bnRlci1kdXJhdGlvbiIsMCk7dmFyIHM9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7dmFyIG89YS5uZXh0TnVtYmVyKHIsbixpKTtlLmlubmVySFRNTD1hLmZvcm1hdE51bWJlcihvLHQpLCgocj1vKT49dC5lbmQmJiJpbmMiPT1pfHxyPD10LmVuZCYmImRlYyI9PWkpJiYoZS5pbm5lckhUTUw9YS5mb3JtYXROdW1iZXIodC5lbmQsdCksY2xlYXJJbnRlcnZhbChzKSl9KSx0LmRlbGF5KX19LHtrZXk6InBhcnNlQ29uZmlnIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLGE9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIGE9bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/S2UoT2JqZWN0KGEpLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtaZShlLHQsYVt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhhKSk6S2UoT2JqZWN0KGEpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSx0KSl9KSl9cmV0dXJuIGV9KHt9LHRoaXMuY29uZmlnT3B0aW9ucyksbj1bXS5maWx0ZXIuY2FsbChlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKGUpe3JldHVybi9eZGF0YS1wdXJlY291bnRlci0vLnRlc3QoZS5uYW1lKX0pKSxpPXt9O3JldHVybiBuLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBhLG49bnVsbD09PShhPWUubmFtZSl8fHZvaWQgMD09PWE/dm9pZCAwOmEucmVwbGFjZSgiZGF0YS1wdXJlY291bnRlci0iLCIiKS50b0xvd2VyQ2FzZSgpLHI9ImR1cmF0aW9uIj09bj9wYXJzZUludCgxZTMqdC5wYXJzZVZhbHVlKGUudmFsdWUpKTp0LnBhcnNlVmFsdWUoZS52YWx1ZSk7aVtuXT1yfSkpLE9iamVjdC5hc3NpZ24oYSxpKX19LHtrZXk6Im5leHROdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiJpbmMiO3JldHVybiBlPXRoaXMucGFyc2VWYWx1ZShlKSx0PXRoaXMucGFyc2VWYWx1ZSh0KSxwYXJzZUZsb2F0KCJpbmMiPT09YT9lK3Q6ZS10KX19LHtrZXk6ImNvbnZlcnRUb0N1cnJlbmN5U3lzdGVtIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXQuY3VycmVuY3lzeW1ib2x8fCIiLG49dC5kZWNpbWFsc3x8MTtyZXR1cm4gYSsoKGU9TWF0aC5hYnMoTnVtYmVyKGUpKSk+PTFlMTI/IiIuY29uY2F0KChlLzFlMTIpLnRvRml4ZWQobiksIiBUIik6ZT49MWU5PyIiLmNvbmNhdCgoZS8xZTkpLnRvRml4ZWQobiksIiBCIik6ZT49MWU2PyIiLmNvbmNhdCgoZS8xZTYpLnRvRml4ZWQobiksIiBNIik6ZT49MWUzPyIiLmNvbmNhdCgoZS8xZTEyKS50b0ZpeGVkKG4pLCIgSyIpOmUudG9GaXhlZChuKSl9fSx7a2V5OiJhcHBseVNlcGFyYXRvciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zZXBhcmF0b3I/bnVsbD09ZT92b2lkIDA6ZS5yZXBsYWNlKC8oXGQpKD89KFxkezN9KSsoPyFcZCkpL2csIiQxLCIpLnJlcGxhY2UobmV3IFJlZ0V4cCgvLC9naSwiZ2kiKSx0LnNlcGFyYXRvcnN5bWJvbCk6bnVsbD09ZT92b2lkIDA6ZS5yZXBsYWNlKG5ldyBSZWdFeHAoLywvZ2ksImdpIiksIiIpfX0se2tleToiZm9ybWF0TnVtYmVyIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBhPXttaW5pbXVtRnJhY3Rpb25EaWdpdHM6dC5kZWNpbWFscyxtYXhpbXVtRnJhY3Rpb25EaWdpdHM6dC5kZWNpbWFsc307cmV0dXJuIGU9dC5jdXJyZW5jeT90aGlzLmNvbnZlcnRUb0N1cnJlbmN5U3lzdGVtKGUsdCk6cGFyc2VGbG9hdChlKSx0aGlzLmFwcGx5U2VwYXJhdG9yKGUudG9Mb2NhbGVTdHJpbmcodm9pZCAwLGEpLHQpfX0se2tleToicGFyc2VWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuL15bMC05XStcLlswLTldKyQvLnRlc3QoZSk/cGFyc2VGbG9hdChlKTovXlswLTldKyQvLnRlc3QoZSk/cGFyc2VJbnQoZSk6L150cnVlfGZhbHNlL2kudGVzdChlKT8vXnRydWUvaS50ZXN0KGUpOmV9fSx7a2V5OiJlbGVtZW50SXNJblZpZXciLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLm9mZnNldFRvcCxhPWUub2Zmc2V0TGVmdCxuPWUub2Zmc2V0V2lkdGgsaT1lLm9mZnNldEhlaWdodDtlLm9mZnNldFBhcmVudDspdCs9KGU9ZS5vZmZzZXRQYXJlbnQpLm9mZnNldFRvcCxhKz1lLm9mZnNldExlZnQ7cmV0dXJuIHQ+PXdpbmRvdy5wYWdlWU9mZnNldCYmYT49d2luZG93LnBhZ2VYT2Zmc2V0JiZ0K2k8PXdpbmRvdy5wYWdlWU9mZnNldCt3aW5kb3cuaW5uZXJIZWlnaHQmJmErbjw9d2luZG93LnBhZ2VYT2Zmc2V0K3dpbmRvdy5pbm5lcldpZHRofX0se2tleToiaW50ZXJzZWN0aW9uTGlzdGVuZXJTdXBwb3J0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIkludGVyc2VjdGlvbk9ic2VydmVyImluIHdpbmRvdyYmIkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkiaW4gd2luZG93JiYiaW50ZXJzZWN0aW9uUmF0aW8iaW4gd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkucHJvdG90eXBlfX1dLGEmJlFlKHQucHJvdG90eXBlLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksdHQ9ZXQsYXQ9YSgzMTEpLG50PWEoMzExKSxpdD1hKDMxMSkscnQ9YSgzMTEpO3ZhciBzdD1mdW5jdGlvbihlKXt2YXIgdD13aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiPyIpLGE9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZi50b1N0cmluZygpKSxuPW5ldyBVUkwodFswXSksaT1hLnNlYXJjaFBhcmFtcyxyPSExLHM9cnQoZSkuZmluZCgnZm9ybVtkYXRhLWZvcm09ImFqYXgiXScpO3MuZmluZCgnaW5wdXRbdHlwZT10ZXh0XTpub3QoW2RhdGEtYWpheD0iZmFsc2UiXSknKS5lYWNoKChmdW5jdGlvbihlLHQpe3ZhciBhLG49cnQodCk7bi52YWwobnVsbCE9PShhPWkuZ2V0KG4uYXR0cigibmFtZSIpKSkmJnZvaWQgMCE9PWE/YToiIikscj0hMH0pKSxzLmZpbmQoJ3NlbGVjdDpub3QoW2RhdGEtYWpheD0iZmFsc2UiXSknKS5lYWNoKChmdW5jdGlvbihlLHQpe3ZhciBhLG49cnQodCkscz1udWxsIT09KGE9aS5nZXQobi5hdHRyKCJuYW1lIikpKSYmdm9pZCAwIT09YT9hOiIiOyIiIT09cz9uLmZpbmQoIm9wdGlvblt2YWx1ZT0iLmNvbmNhdChzLCJdIikpLnByb3AoInNlbGVjdGVkIiwhMCk6bi5maW5kKCJvcHRpb246ZXEoMCkiKS5wcm9wKCJzZWxlY3RlZCIsITApLHI9ITB9KSkscy5maW5kKCd1bFtkYXRhLWFqYXgtcHVzaC11cmw9InRydWUiXTpmaXJzdCBsaSBhJykuZWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgYT1ydCh0KTthLmF0dHIoImhyZWYiKSE9PW4uaHJlZnx8YS5oYXNDbGFzcygiYWN0aXZlX3Rlcm0iKXx8KGEudHJpZ2dlcigiY2xpY2siKSxyPSEwKX0pKSxzLmZpbmQoJ3NlbGVjdFtkYXRhLXRhcmdldD0iaW5wdXQiXScpLmVhY2goKGZ1bmN0aW9uKGUsdCl7dmFyIGE9cnQodCksaT1hLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLG89cy5maW5kKCJpbnB1dC4iLmNvbmNhdChhLmRhdGEoInRhcmdldC1uYW1lIikpKTtpZihpLmRhdGEoInRlcm0tdXJsIikhPT1uLmhyZWYpe2EuZmluZCgnb3B0aW9uW2RhdGEtdGVybS11cmw9IicuY29uY2F0KG4uaHJlZiwnIl0nKSkucHJvcCgic2VsZWN0ZWQiLCEwKTt2YXIgbD1hLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpO28udmFsKGwudmFsKCkpLG8uZGF0YSgicHVzaC11cmwiLGwuZGF0YSgidGVybS11cmwiKSkscj0hMH19KSksciYmcy50cmlnZ2VyKCJkc190cmlnZ2VyX2Jyb3dzZXJfYnV0dG9uX3VzZWQiKX07ZnVuY3Rpb24gb3QoZSl7cmV0dXJuIG90PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxvdChlKX1mdW5jdGlvbiBsdChlLHQsYSl7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PW90KGUpfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgYT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIG49YS5jYWxsKGUsInN0cmluZyIpO2lmKCJvYmplY3QiIT09b3QobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShlKTtyZXR1cm4ic3ltYm9sIj09PW90KHQpP3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWEsZX12YXIgY3QsZHQ9YSgzMTEpLHV0PWEoMzExKSxwdD1hKDMxMSksZnQ9YSgzMTEpLHZ0PWEoMzExKSxodD1hKDMxMSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsKGZ1bmN0aW9uKCl7dmFyIGUsYSxuLGkscixzLG8sZCx1LHAsZix2OyFmdW5jdGlvbigpe20oKTt2YXIgZT10KChmdW5jdGlvbigpe20oKX0pLDMwMCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKGZ1bmN0aW9uKCl7ZSgpfSkpfSgpLGQ9Ii5zaXRlLWhlYWRlciIsdT0iaXMtc3RpY2t5IixwPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZCksZj1wYXJzZUludCgyKSx2PXQoKGZ1bmN0aW9uKCl7d2luZG93LnBhZ2VZT2Zmc2V0PjEwK2Y/cCYmcC5jbGFzc0xpc3QuYWRkKHUpOndpbmRvdy5wYWdlWU9mZnNldDwxMC1mJiZwJiZwLmNsYXNzTGlzdC5yZW1vdmUodSl9KSwzMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsKGZ1bmN0aW9uKCl7digpfSkpLHdpbmRvdy5wYWdlWU9mZnNldD4xMCtmJiZwJiZwLmNsYXNzTGlzdC5hZGQodSksZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1qcz0ic2VhcmNoLXRhcmdldCJdJyk7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoLXN1Ym1pdCIpLGE9ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJpcy1oaWRkZW4iLGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiJpcy1zaG93biI7ZS5jbGFzc0xpc3QuYWRkKHQpLGUuY2xhc3NMaXN0LnJlbW92ZShhKX0oZSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24obil7bi50YXJnZXQubWF0Y2hlcygnW2RhdGEtanM9InNlYXJjaC10cmlnZ2VyIl0nKSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImlzLXNob3duIikmJnQuY2xpY2soKSxuLnRhcmdldC5tYXRjaGVzKCdbZGF0YS1qcz0ic2VhcmNoLXRyaWdnZXIiXScpJiYobi5wcmV2ZW50RGVmYXVsdCgpLGZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiaXMtaGlkZGVuIixhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiaXMtc2hvd24iO2UuY2xhc3NMaXN0LnJlbW92ZSh0KSxlLmNsYXNzTGlzdC5hZGQoYSl9KGUpLHQuZm9jdXMoKSksbi50YXJnZXQubWF0Y2hlcygnW2RhdGEtanM9InNlYXJjaC1jbG9zZSJdJykmJihuLnByZXZlbnREZWZhdWx0KCksYSgpKX0pLCExKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoZnVuY3Rpb24oZSl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoIm92ZXJmbG93LWhpZGRlbiIpJiYoIkVzY2FwZSIhPT1lLmtleSYmMjchPT1lLmtleUNvZGV8fGEoKSl9KSl9fSgpLHdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiAxMDI0cHgpIikubWF0Y2hlcyYmKGZ1bmN0aW9uKGUpe2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSkpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iik7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSwiZmFsc2UiPT09dC5nZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiKT8odC5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSxhLmNsYXNzTGlzdC5hZGQoIm5hdi1hY3RpdmUiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsInRydWUiKSk6KHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIiksYS5jbGFzc0xpc3QucmVtb3ZlKCJuYXYtYWN0aXZlIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpKX0pKX19KCIuanMtbW9iaWxlTmF2IiksKGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm5hdi1tYWluIC5uYXYtbWFpbl9fbGlua3MiKSkmJihlPWEucXVlcnlTZWxlY3RvckFsbCgiLm5hdi1tYWluIC5tZW51LWl0ZW0ubWVudS1pdGVtLWhhcy1jaGlsZHJlbiIpKSxlJiZlLmZvckVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuc3ViLW1lbnUiKTt0LmNsYXNzTGlzdC5jb250YWlucygiY3VycmVudC1tZW51LXBhcmVudCIpPyh0LmNsYXNzTGlzdC5hZGQoImlzLXRvZ2dsZWQiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsInRydWUiKSk6KHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxsKG4pKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oYSl7ImEiIT09YS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpJiYodC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXRvZ2dsZWQiKT8obChuKSx0LmNsYXNzTGlzdC5yZW1vdmUoImlzLXRvZ2dsZWQiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIikpOihlLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViLW1lbnUiKTtlLmNsYXNzTGlzdC5jb250YWlucygiaXMtdG9nZ2xlZCIpJiYobChhKSxlLmNsYXNzTGlzdC5yZW1vdmUoImlzLXRvZ2dsZWQiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIikpfSkpLHQuY2xhc3NMaXN0LmFkZCgiaXMtdG9nZ2xlZCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGMobikpKX0pKX0pKSksbmV3IHR0KHtzZWxlY3RvcjoiLmMtY291bnRlcl9fbnVtYmVyIn0pLG5ldyBtZSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1ncmlkZGVyIiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuanMtZ3JpZGRlciIpLG4mJihhdCgpLmdyaWRkZXJFeHBhbmRlcj9udCgoZnVuY3Rpb24oKXtpLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7bnQoZSkuZ3JpZGRlckV4cGFuZGVyKHtzY3JvbGw6ITAsc2Nyb2xsT2Zmc2V0OjgwLHNjcm9sbFRvOiJwYW5lbCIsYW5pbWF0aW9uU3BlZWQ6NDAwLGFuaW1hdGlvbkVhc2luZzoiZWFzZUluT3V0RXhwbyIsc2hvd05hdjohMCxuZXh0VGV4dDoiIixwcmV2VGV4dDoiIixjbG9zZVRleHQ6IkNsb3NlIixvblN0YXJ0OmZ1bmN0aW9uKCl7fSxvbkNvbnRlbnQ6ZnVuY3Rpb24oKXt9LG9uQ2xvc2VkOmZ1bmN0aW9uKCl7fX0pfSkpfSkpOmNvbnNvbGUubG9nKCJEU01QIEVycm9yOiBQbGVhc2UgaW5jbHVkZSBncmlkZGVyIGxpYnJhcnkiKSksbmV3IEJlLEcoKSxvPVtdLFEuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgYT0iIi5jb25jYXQoImpzLWFjYyIsIi0iKS5jb25jYXQodCksbj0iIyIuY29uY2F0KGEpO2Uuc2V0QXR0cmlidXRlKCJpZCIsYSksb1t0XT1uZXcgWihuKX0pKSxmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiLmpzLWEtbGlnaHQiLHQ9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGUpLG49ZS5zbGljZSgxKTthLmZvckVhY2goKGZ1bmN0aW9uKGUsYSl7dmFyIGk9IiIuY29uY2F0KG4sIi0iKS5jb25jYXQoYSkscj0iIyIuY29uY2F0KGkpO2Uuc2V0QXR0cmlidXRlKCJpZCIsaSksbmV3IFdlKHIsdCl9KSl9KCksbmV3IEVlLG5ldyBjZSxuZXcgQWUsbmV3IERlLEdlKCIuanMtc2Vjb25kVGFicyIpLm9uKCJjbGljayIsKGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0LGE9R2UoZS50YXJnZXQpLmF0dHIoImFyaWEtY29udHJvbHMiKTtHZSgiLmpzLXNlY29uZFRhYnMiKS5yZW1vdmVDbGFzcygiaXMtYWN0aXZlIiksR2UoIi5qcy1zZWNvbmRUYWJzIikuYXR0cigiYXJpYS1zZWxlY3RlZCIsImZhbHNlIiksR2UodCkuYWRkQ2xhc3MoImlzLWFjdGl2ZSIpLEdlKHQpLmF0dHIoImFyaWEtc2VsZWN0ZWQiLCJ0cnVlIiksR2UoIi5qcy1zZWNvbmRUYWJzUGFuZWwiKS5yZW1vdmVDbGFzcygiaXMtYWN0aXZlIiksR2UoIi5qcy1zZWNvbmRUYWJzUGFuZWwiKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSxHZSgiIyIuY29uY2F0KGEpKS5hZGRDbGFzcygiaXMtYWN0aXZlIiksR2UoIiMiLmNvbmNhdChhKSkuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpfSkpLEdlKGRvY3VtZW50KS5yZWFkeSgoZnVuY3Rpb24oKXtmb3IodmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXN3aXBlci1wcm9kdWN0IiksdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgYT1lW3RdLmRhdGFzZXQudHlwZSxuPWVbdF0uZGF0YXNldC5pZDsic2ltcGxlIj09PWE/RmUoIi5zd2lwZXItdHJhZGluZy0iLmNvbmNhdChuKSwiLnN3aXBlci1wYWdpbmF0aW9uLSIuY29uY2F0KG4pLCIuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLSIuY29uY2F0KG4pLCIuc3dpcGVyLXBhZ2luYXRpb24tc3dpdGNoLSIuY29uY2F0KG4pKTpGZSgiLnN3aXBlci10cmFkaW5nLSIuY29uY2F0KGEsIi0iKS5jb25jYXQobiksIi5zd2lwZXItcGFnaW5hdGlvbi0iLmNvbmNhdChhLCItIikuY29uY2F0KG4pLCIuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLSIuY29uY2F0KGEsIi0iKS5jb25jYXQobiksIi5zd2lwZXItcGFnaW5hdGlvbi1zd2l0Y2gtIi5jb25jYXQoYSwiLSIpLmNvbmNhdChuKSl9fSkpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1hamF4LWJsb2NrIikmJmZ1bmN0aW9uKGUpe2UoIi5qcy1hamF4LWJsb2NrIikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGEsbjthPWUoIi5qcy1hamF4LWJsb2NrIilbdF0sbj17bW9kdWxlOm51bGwsYWN0aW9uOm51bGwsc2VsZWN0Q2hhbmdlZDohMSxmb3JtOiIiLG1vcmVCdG46ZSgpLHJlc3VsdHM6bnVsbCxjYXRlZ29yeTpudWxsLGRvaW5nX2FqYXg6bnVsbCx0aW1lb3V0Om51bGwscXVlcnk6e3Bvc3RfdHlwZTpudWxsLHBlcl9wYWdlOjEwLHBhZ2U6MSxtYWluX3RheG9ub215Om51bGx9LGNvbXBvbmVudF9zdHlsZXM6e30sYWpheF91cmw6ZHMuYWpheF91cmwscHJlbG9hZGVyOic8ZGl2IGNsYXNzPSJmaWx0ZXItbG9hZGVyIGxvYWRlciI+PGRpdiBjbGFzcz0ic3Bpbm5lciI+PGRpdiBjbGFzcz0iZG91YmxlLWJvdW5jZTEiPjwvZGl2PjxkaXYgY2xhc3M9ImRvdWJsZS1ib3VuY2UyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsb2FkZXItYmciPjwvZGl2PjwvZGl2PicsaW5pdDpmdW5jdGlvbih0KXt2YXIgYT1lKHQpO2EmJihuLm1vZHVsZT1hLG4uYWN0aW9uPWEuZGF0YSgiYWN0aW9uIiksbi5xdWVyeS5wb3N0X3R5cGU9YS5kYXRhKCJwb3N0LXR5cGUiKSxuLnF1ZXJ5LnBvc3RzX3Blcl9wYWdlPWEuZGF0YSgicGVyLXBhZ2UiKSxuLnF1ZXJ5Lm1haW5fdGF4b25vbXk9YS5kYXRhKCJtYWluLXRheG9ub215Iiksbi5pbml0RWxlbWVudHNBY3Rpb25zKCkpfSxpbml0RWxlbWVudHNBY3Rpb25zOmZ1bmN0aW9uKCl7dmFyIGU9bi5tb2R1bGUuZmluZCgnZGl2W2RhdGEtY29udGFpbmVyPSJhamF4LXJlc3VsdCJdJyksdD1uLm1vZHVsZS5maW5kKCJqcy1jYXRlZ29yaWVzLXRpdGxlIik7aWYoZSl7bi5yZXN1bHRzPWUsbi5jYXRlZ29yeT10O3ZhciBhPW4ubW9kdWxlLmZpbmQoIi5hamF4LWxvYWQtbW9yZSIpO2EmJihuLm1vcmVCdG49YSxuLm1vcmVQb3N0cygpKTt2YXIgaT1uLm1vZHVsZS5maW5kKCdmb3JtW2RhdGEtZm9ybT0iYWpheCJdJyk7aSYmKG4uZm9ybT1pLG4uY2hhbmdlRm9ybSgpKX12YXIgcj1uLm1vZHVsZS5kYXRhKCJjbGFzcyIpO3ImJihuLmNvbXBvbmVudF9zdHlsZXMuY2xhc3M9cik7dmFyIHM9bi5tb2R1bGUuZGF0YSgic3R5bGVzIik7cyYmKG4uY29tcG9uZW50X3N0eWxlcy5zdHlsZXM9cyk7dmFyIG89bi5tb2R1bGUuZGF0YSgiaW1hZ2UiKTtvJiYobi5jb21wb25lbnRfc3R5bGVzLmltYWdlPW8pfSxtb3JlUG9zdHM6ZnVuY3Rpb24oKXtuLm1vcmVCdG4ub24oImNsaWNrIiwoZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLG4uc2VuZEFqYXgobi5xdWVyeS5wYWdlLCExKX0pKX0sY2hhbmdlRm9ybTpmdW5jdGlvbigpe3ZhciB0PW4uZm9ybS5maW5kKCdpbnB1dFt0eXBlPSJ0ZXh0Il0sIHRleHRhcmVhJyk7dC51bmJpbmQoImtleXVwIiksdC5ub3QoJ1tkYXRhLWFqYXg9ImZhbHNlIl0nKS5rZXl1cCgoZnVuY3Rpb24oZSl7MTMhPT1lLmtleUNvZGUmJihudWxsIT1uLnRpbWVvdXQmJmNsZWFyVGltZW91dChuLnRpbWVvdXQpLG4udGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe24udGltZW91dD1udWxsLG4uc2VuZEFqYXgoKSxpLnBhcmVudCgpLmFkZENsYXNzKCJpcy1maWx0ZXItYWN0aXZlIil9KSw1MDApKX0pKTt2YXIgYT1uLmZvcm0uZmluZCgnYnV0dG9uW3R5cGU9InN1Ym1pdCJdJyk7YS51bmJpbmQoImNsaWNrIiksYS5ub3QoJ1tkYXRhLWFqYXg9ImZhbHNlIl0nKS5jbGljaygoZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGEucGFyZW50KCkuYWRkQ2xhc3MoImlzLWZpbHRlci1hY3RpdmUiKX0pKTt2YXIgaT1uLmZvcm0uZmluZCgnLmlzLWZpbHRlci1hY3RpdmUgYnV0dG9uW3R5cGU9InN1Ym1pdCJdJyk7aS51bmJpbmQoImNsaWNrIiksaS5ub3QoJ1tkYXRhLWFqYXg9ImZhbHNlIl0nKS5jbGljaygoZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLG4uc2VuZEFqYXgoKSxpLnBhcmVudCgpLmFkZENsYXNzKCJpcy1maWx0ZXItYWN0aXZlIil9KSk7dmFyIHI9bi5mb3JtLmZpbmQoInVsLmFqYXhQb3N0cyIpO3IuY2hpbGRyZW4oKS5jbGljaygoZnVuY3Rpb24oZSl7bi5zZW5kQWpheCgpfSkpO3ZhciBzPW4uZm9ybS5maW5kKCIuanMtc2VsZWN0LWNhdGVnb3J5Iik7ZShkb2N1bWVudCkub24oImNoYW5nZSIsIi5qcy1zZWxlY3QtY2F0ZWdvcnkiLChmdW5jdGlvbigpe3ZhciBlPXMuZmluZCgiOnNlbGVjdGVkIikudmFsKCksdD1zLmZpbmQoIjpzZWxlY3RlZCIpLmRhdGEoInRlcm0tdXJsIiksYT1uLmZvcm0uZmluZCgiaW5wdXQudGFyZ2V0LWNhdGVnb3J5X25hbWUiKTthJiYoYS52YWwoZSksYS5hdHRyKCJkYXRhLXB1c2gtdXJsIix0KSksbi5zZWxlY3RDaGFuZ2VkPSEwLG4uc2VuZEFqYXgoKX0pKSxyLmZpbHRlcignW2RhdGEtdGFyZ2V0PSJpbnB1dCJdJykuY2xpY2soKGZ1bmN0aW9uKHQpe3ZhciBhPWUodC50YXJnZXQpLGk9bi5mb3JtLmZpbmQoImlucHV0LnRhcmdldC1jYXRlZ29yeV9uYW1lIik7aSYmKGEuZmluZCgib3B0aW9uOnNlbGVjdGVkIiksaS52YWwoZSh0LnRhcmdldCkuYXR0cigiZGF0YS12YWx1ZSIpKSxpLmF0dHIoImRhdGEtcHVzaC11cmwiLGUodC50YXJnZXQpLmF0dHIoImRhdGEtdGVybS11cmwiKSksbi5zZW5kQWpheCgpKX0pKSxyLmZpbHRlcignW2RhdGEtdGFyZ2V0PSJ1bCJdJykuY2hhbmdlKChmdW5jdGlvbih0KXt2YXIgYT1lKHQudGFyZ2V0KTtuLmZvcm0uZmluZCgidWwuIi5jb25jYXQoYS5kYXRhKCJ0YXJnZXQtbmFtZSIpKSkuZmluZCgnbGkgYVtkYXRhLXRlcm0tc2x1Zz0iJy5jb25jYXQoYS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS52YWwoKSwnIl0nKSkudHJpZ2dlcigiY2xpY2siKSxuLnNlbmRBamF4KCl9KSk7dmFyIG89bi5mb3JtLmZpbmQoJ3VsW2RhdGEtYWpheC1wdXNoLXVybD0idHJ1ZSJdJykuZmlyc3QoKTtvLnVuYmluZCgiY2hhbmdlIiksby5maW5kKCJsaSBhIikuY2xpY2soKGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxvLmZpbmQoImxpIGEiKS5yZW1vdmVDbGFzcygiYWN0aXZlX3Rlcm0iKTt2YXIgYT1lKHQudGFyZ2V0KTthLmFkZENsYXNzKCJhY3RpdmVfdGVybSIpO3ZhciBpLHI9bi5mb3JtLmZpbmQoImlucHV0LiIuY29uY2F0KG8uZGF0YSgidGFyZ2V0LW5hbWUiKSkpO3ImJihyLnZhbChhLmRhdGEoInRlcm0tc2x1ZyIpKSxyLmRhdGEoInB1c2gtdXJsIixhLmF0dHIoImhyZWYiKSksbnVsbD09PShpPW4uZm9ybS5maW5kKCJzZWxlY3QuIi5jb25jYXQoby5kYXRhKCJ0YXJnZXQtbmFtZSIpLCcgb3B0aW9uW3ZhbHVlPSInKS5jb25jYXQoYS5kYXRhKCJ0ZXJtLXNsdWciKSwnIl0nKSkpfHx2b2lkIDA9PT1pfHxpLnByb3AoInNlbGVjdGVkIiwhMCksbi5zZW5kQWpheCgpKX0pKSxuLmZvcm0udW5iaW5kKCJrZXlkb3duIiksbi5mb3JtLm9uKCJkc190cmlnZ2VyX2Jyb3dzZXJfYnV0dG9uX3VzZWQiLChmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksbi5zZW5kQWpheCgwLCExKX0pKX0sc2VuZEFqYXg6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07bnVsbCE9bi5kb2luZ19hamF4JiYobi5kb2luZ19hamF4LmFib3J0KCksbi5kb2luZ19hamF4PW51bGwsbi5tb2R1bGUuZmluZCgiLmxvYWRlciIpLnJlbW92ZSgpKTt2YXIgaT17YWN0aW9uOm4uYWN0aW9uLHF1ZXJ5Ontwb3N0X3R5cGU6bi5xdWVyeS5wb3N0X3R5cGUscG9zdHNfcGVyX3BhZ2U6bi5xdWVyeS5wb3N0c19wZXJfcGFnZSxwYWdlZDp0fSxtYWluX3RheG9ub215Om4ucXVlcnkubWFpbl90YXhvbm9teSxjb21wb25lbnQ6bi5jb21wb25lbnRfc3R5bGVzLGRldmljZTplKHdpbmRvdykud2lkdGgoKTw9NzY4PyJtb2JpbGUiOiJkZXNrdG9wIn07bi5mb3JtLmxlbmd0aD4wJiYoaS5mb3JtPW4uZm9ybS5zZXJpYWxpemUoKSksbi5kb2luZ19hamF4PWUuYWpheCh7dXJsOm4uYWpheF91cmwsdHlwZToiUE9TVCIsZGF0YTppLGJlZm9yZVNlbmQ6ZnVuY3Rpb24odCl7aWYobi5tb2R1bGUuYXBwZW5kKG4ucHJlbG9hZGVyKSxhKXt2YXIgaSxyPW51bGwhPT0oaT1lKCIuanMtc2VsZWN0LWNhdGVnb3J5IikuZmluZCgiOnNlbGVjdGVkIikuZGF0YSgidGVybS11cmwiKSkmJnZvaWQgMCE9PWk/aToiIjtuLmJ1aWxkX3VybChyKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7ZT8oMT09PWUucGFnZSYmbi5yZXN1bHRzLmh0bWwoIiIpLDE9PT1lLnBhZ2UmJm4uY2F0ZWdvcnkuaHRtbCgiIiksbi5yZXN1bHRzLmFwcGVuZChlLnBvc3RzKSxuLmNhdGVnb3J5LmFwcGVuZChlLmNhdGVnb3J5KSxlLm1heF9wYWdlcz09PWUucGFnZT9uLm1vcmVCdG4uaGlkZSgpOm4ubW9yZUJ0bi5zaG93KCksMD09PWUudG90YWxfcG9zdHNfc2hvd2luZz9uLm1vZHVsZS5maW5kKCIuanMtYmxvZy1jb3VudGVyLXdyYXBwZXIiKS5oaWRlKCk6bi5tb2R1bGUuZmluZCgiLmpzLWJsb2ctY291bnRlci13cmFwcGVyIikuc2hvdygpLGUudG90YWxfcG9zdHNfc2hvd2luZyYmbi5tb2R1bGUuZmluZCgiLmpzLWJsb2ctY291bnRlci1zaG93aW5nIikudGV4dChlLnRvdGFsX3Bvc3RzX3Nob3dpbmcpLGUudG90YWxfcG9zdHMmJm4ubW9kdWxlLmZpbmQoIi5qcy1ibG9nLWNvdW50ZXItdG90YWwiKS50ZXh0KGUudG90YWxfcG9zdHMpLG4ucXVlcnkucGFnZT1lLnBhZ2Usbi5tb3JlQnRuLmF0dHIoImRhdGEtcGFnZSIsZS5wYWdlKSxuLm1vZHVsZS5maW5kKCIubG9hZGVyIikucmVtb3ZlKCkpOm4ubW9yZUJ0bi5oaWRlKCksbi5kb2luZ19hamF4PW51bGx9fSl9LGJ1aWxkX3VybDpmdW5jdGlvbihlKXt2YXIgdCxhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IiksaT1uZXcgVVJMKGFbMF0pLHI9bmV3IFVSTCh3aW5kb3cuaGlzdG9yeS5zdGF0ZSYmd2luZG93Lmhpc3Rvcnkuc3RhdGUucGF0aD93aW5kb3cuaGlzdG9yeS5zdGF0ZS5wYXRoOndpbmRvdy5sb2NhdGlvbi5ocmVmKSxzPSExLG89bnVsbCE9PSh0PW4uZm9ybS5maW5kKCJpbnB1dFtkYXRhLXB1c2gtdXJsXSIpLmZpcnN0KCkuZGF0YSgicHVzaC11cmwiKSkmJnZvaWQgMCE9PXQ/dDoiIjsiIiE9PW8mJihzPSEwLGkuaHJlZj1vKSxuLmZvcm0uZmluZCgnaW5wdXRbdHlwZT10ZXh0XTpub3QoW2RhdGEtYWpheD0iZmFsc2UiXSknKS5lYWNoKChmdW5jdGlvbigpe3M9ITAsaXQodGhpcykudmFsKCkubGVuZ3RoPjAmJmkuc2VhcmNoUGFyYW1zLnNldChpdCh0aGlzKS5hdHRyKCJuYW1lIiksaXQodGhpcykudmFsKCkpfSkpLG4uZm9ybS5maW5kKCdzZWxlY3Q6bm90KFtkYXRhLWFqYXg9ImZhbHNlIl0pJykuZWFjaCgoZnVuY3Rpb24oKXtzPSEwLGl0KHRoaXMpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpLmxlbmd0aD4wJiZpLnNlYXJjaFBhcmFtcy5zZXQoaXQodGhpcykuYXR0cigibmFtZSIpLGl0KHRoaXMpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpKX0pKTt2YXIgbD1kZWNvZGVVUklDb21wb25lbnQoaSk7bi5zZWxlY3RDaGFuZ2VkP3dpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsZSk6IXN8fHIuc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk9PT1pLnNlYXJjaFBhcmFtcy50b1N0cmluZygpJiZyLmhyZWY9PT1pLmhyZWZ8fHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7cGF0aDpsLGRzX3RyaWdnZXJfZmlsdGVyOiEwfSxudWxsLGwpfX0sbi5pbml0KGEpfSkpLGFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoZnVuY3Rpb24odCl7ZSgiLmpzLWFqYXgtYmxvY2siKS5lYWNoKChmdW5jdGlvbihlLHQpe3N0KHQpfSkpfSkpfShpdCksZmUuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgYT0iIi5jb25jYXQoImpzLXRhYi1hY2MiLCItIikuY29uY2F0KHQpLG49IiMiLmNvbmNhdChhKTtlLnNldEF0dHJpYnV0ZSgiaWQiLGEpLG5ldyBwZShuKX0pKSxuZXcgU3dpcGVyKCIub3VyLXRlYW0tU3dpcGVyIiwobHQocj17bG9vcDohMCxzbGlkZXNQZXJWaWV3OjEsc3BhY2VCZXR3ZWVuOjQwfSwic2xpZGVzUGVyVmlldyIsImF1dG8iKSxsdChyLCJuYXZpZ2F0aW9uIix7bmV4dEVsOiIuc3dpcGVyLWJ1dHRvbi1uZXh0IixwcmV2RWw6Ii5zd2lwZXItYnV0dG9uLXByZXYifSksbHQociwiYnJlYWtwb2ludHMiLHsxMTEzOntzbGlkZXNQZXJWaWV3OjIsc3BhY2VCZXR3ZWVuOjc1fSwxNDQwOntzbGlkZXNQZXJWaWV3OjMsc3BhY2VCZXR3ZWVuOjc1fX0pLHIpKSxwdCgiLnBhcmVudC1jYXRlZ29yaWVzLWl0ZW1fX3RpdGxlIikuZWFjaCgoZnVuY3Rpb24oZSl7InRydWUiPT09cHQodGhpcykuYXR0cigiYXJpYS1leHBhbmRlZCIpJiZwdCh0aGlzKS5uZXh0KCkuc2xpZGVUb2dnbGUoNTAwKX0pKSxwdCgiLnBhcmVudC1jYXRlZ29yaWVzLWl0ZW1fX3RpdGxlIikuY2xpY2soKGZ1bmN0aW9uKCl7cmV0dXJuIHB0KHRoaXMpLm5leHQoKS5zbGlkZVRvZ2dsZSg1MDApLCExfSkpLGZ0KCIuY2F0ZWdvcmllcy1saXN0X19saW5rIikub24oImNsaWNrIiwoZnVuY3Rpb24oKXt2YXIgZT1mdCh0aGlzKS5hdHRyKCJocmVmIiksdD1mdChlKS5vZmZzZXQoKS50b3AtZnQoImhlYWRlciIpLmhlaWdodCgpLTEwMDtyZXR1cm4gZnQoImh0bWwsYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDp0fSw1MDApLCExfSkpLHM9ITEsdnQoIi5qcy1vcGVuLWNoYXQiKS5jbGljaygoZnVuY3Rpb24oKXtzfHwodnQoIi5pbnRlcmNvbS1sYXVuY2hlciIpLmNsaWNrKCkscz0hMCl9KSl9KSksQU9TLmluaXQoe2Rpc2FibGU6Im1vYmlsZSIsb2Zmc2V0OjMwMCxvbmNlOiEwLGR1cmF0aW9uOjgwMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixBT1MucmVmcmVzaCksbmV3IExhenlMb2FkKHtlbGVtZW50c19zZWxlY3RvcjoiLmxhenkifSksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmFuaW1hdGVkLWltYWdlLTEiKSYmKChjdD1nc2FwLnRpbWVsaW5lKCkpLnRvKCIuYW5pbWF0ZWQtaW1hZ2UtMSIse3g6MCxkdXJhdGlvbjoyfSwiPCIpLGN0LnRvKCIuYW5pbWF0ZWQtaW1hZ2UtMiIse3g6MCxkdXJhdGlvbjoxfSwxKSxjdC50bygiLnBsYXktYnRuIix7eDowLHk6MCxkdXJhdGlvbjouNX0sMikpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wYXNzaW9uYXRlX3RyYWRlcnNfc2VjdGlvbiIpJiZnc2FwLnRpbWVsaW5lKHtzY3JvbGxUcmlnZ2VyOnt0cmlnZ2VyOiIucGFzc2lvbmF0ZV90cmFkZXJzX3NlY3Rpb24iLHBpblNwYWNpbmc6ITAsc3RhcnQ6InRvcCB0b3AiLHNjcnViOi4yLHBpbjohMH19KS50bygiLmNhcmQtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSIse3k6MCxzdGFnZ2VyOi41LGVhc2U6ImxpbmVhciJ9KSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmluYW5jaWFsX2luZGVwZW5kZW5jZV9zZWN0aW9uIikmJmdzYXAubWF0Y2hNZWRpYSgpLmFkZCh7aXNEZXNrdG9wOiIobWluLXdpZHRoOiAiLmNvbmNhdCg3NjgsInB4KSIpLGlzTWFjOiIobWF4LXdpZHRoOiAiLmNvbmNhdCg3NjcsInB4KSIpfSwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25kaXRpb25zLGE9dC5pc0Rlc2t0b3A7cmV0dXJuIHQuaXNNYWMsdC5yZWR1Y2VNb3Rpb24sZHQoImhlYWRlciIpLm91dGVySGVpZ2h0KCksZ3NhcC50aW1lbGluZSh7c2Nyb2xsVHJpZ2dlcjp7dHJpZ2dlcjoiLmZpbmFuY2lhbF9pbmRlcGVuZGVuY2Vfc2VjdGlvbiIsc3RhcnQ6YT8idG9wIDE1JSI6InRvcCAwJSIsZW5kOmE/ImJvdHRvbSArPTU0MHZoIjoiMTAwJSIsc2NydWI6LjA1LHBpbjohMH19KS50bygiLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCkiLHt5OjAsc3RhZ2dlcjphPyIxIjoiMyIsZWFzZToibGluZWFyIixkdXJhdGlvbjoiMyJ9KSxmdW5jdGlvbigpe319KSksdXQoIiNmYXFTZWFyY2giKS5vbigic3VibWl0IiwoZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PXV0KCIjYWpheC1zZWFyY2giKS52YWwoKTsiIiE9PXQmJmZ1bmN0aW9uKGUpe2ZldGNoKGRzLmFqYXhfdXJsLHttZXRob2Q6InBvc3QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCJDYWNoZS1Db250cm9sIjoibm8tY2FjaGUifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe3M6ZSxhY3Rpb246ImdldF9mYXFzIn0pfSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe2Uuc3VjY2VzcyYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJqc0ZBUVJlc3VsdHMiKS5pbm5lckhUTUw9ZS5kYXRhLmh0bWwsdXQoIi5jbGVhbl9zZWFyY2giKS5zaG93KCkpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtjb25zb2xlLmxvZyhlKX0pKX0odCl9KSksdXQoIi5jbGVhbl9zZWFyY2giKS5vbigiY2xpY2siLChmdW5jdGlvbigpe3V0KCIuY2xlYW5fc2VhcmNoIikuaGlkZSgpLHV0KCIjanNGQVFSZXN1bHRzIikuaHRtbCgiIiksdXQoIiNhamF4LXNlYXJjaCIpLnZhbCgiIil9KSksZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnJlYWQtbW9yZS13cmFwcGVyIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuanMtcmVhZC1tb3JlLXRvZ2dsZSIpLGE9dC5nZXRBdHRyaWJ1dGUoImRhdGEtc2hvdy1sZXNzLXRleHQiKTtjb25zb2xlLmxvZyhhKTt2YXIgbj10LmNoaWxkcmVuWzBdLnRleHRDb250ZW50LGk9ZS5xdWVyeVNlbGVjdG9yKCIucmVhZC1tb3JlLXRleHQiKTt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oKXt2YXIgcj1lLmNsYXNzTGlzdC5jb250YWlucygiaXMtYWN0aXZlIikscz1pLnNjcm9sbEhlaWdodDtyPyhlLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIpLHQuY2hpbGRyZW5bMF0udGV4dENvbnRlbnQ9bixpLnN0eWxlLm1heEhlaWdodD0wKTooZS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSx0LmNoaWxkcmVuWzBdLnRleHRDb250ZW50PWEsaS5zdHlsZS5tYXhIZWlnaHQ9cysicHgiKX0pKX0pKSxodChkb2N1bWVudCkucmVhZHkoKGZ1bmN0aW9uKGUpe2UoIi50ZGF0LWluZm8iKS5jbGljaygoZnVuY3Rpb24oKXtlKHRoaXMpLnBhcmVudCgpLm5leHQoIi50b2dnbGVfbWUiKS50b2dnbGUoKSxlKHRoaXMpLnRvZ2dsZUNsYXNzKCJzaG93Iil9KSl9KSl9KCl9KCk7"}},"time_used":474,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":474,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/hooks.min.js?ver=c6aec9a8d4e5a5d543a1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.866Z","timestamp":1785145403866,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/hooks.min.js?ver=c6aec9a8d4e5a5d543a1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-1213\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":4627,"size_decoded":1729,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (4592)","md5":"7bd48eb3bd568033e96caf0fb62e6690","sha1":"b38066999294b99d92d95db5f38bc15707eb1f22","sha256":"7868467c94a5aa0b3f11ef542f45287967f9627b3b5acdc86e47f8f77a126596","sha512":"7fec30cc4223c39d9ee3ccbba8cc66c90467a9987279334be43aae4c251f6c618f6b3ccf223147c79ce6c463c89f0ceb0d0e4e471ad9ab6574ab32af728a535f","ssdeep":"96:+5gEBc27Du/3+ZrURT19KrAgQNSt5s8G07AajURg/o0K:Ulc2Hq3RRB94Qkt2WAeg0K","tlshash":"dca113c474c3b420e3737063a07f5456b27e9ae5782c8481d25c94d57d73a8ed077aad","first_seen":"2023-08-08T23:25:56Z","last_seen":"2026-08-11T20:39:17.474134Z","times_seen":22959,"resource_available":true,"data":"LyohIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZCAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG49e2Q6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGUgaW4gciluLm8ocixlKSYmIW4ubyh0LGUpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtlbnVtZXJhYmxlOiEwLGdldDpyW2VdfSl9LG86ZnVuY3Rpb24obix0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sdCl9LHI6ZnVuY3Rpb24obil7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX19LHQ9e307bi5yKHQpLG4uZCh0LHthY3Rpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LGFkZEFjdGlvbjpmdW5jdGlvbigpe3JldHVybiBtfSxhZGRGaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sYXBwbHlGaWx0ZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIGt9LGNyZWF0ZUhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGN1cnJlbnRBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gd30sY3VycmVudEZpbHRlcjpmdW5jdGlvbigpe3JldHVybiBJfSxkZWZhdWx0SG9va3M6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sZGlkQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIE99LGRpZEZpbHRlcjpmdW5jdGlvbigpe3JldHVybiBqfSxkb0FjdGlvbjpmdW5jdGlvbigpe3JldHVybiBifSxkb2luZ0FjdGlvbjpmdW5jdGlvbigpe3JldHVybiB4fSxkb2luZ0ZpbHRlcjpmdW5jdGlvbigpe3JldHVybiBUfSxmaWx0ZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LGhhc0FjdGlvbjpmdW5jdGlvbigpe3JldHVybiBffSxoYXNGaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4geX0scmVtb3ZlQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LHJlbW92ZUFsbEFjdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gRn0scmVtb3ZlQWxsRmlsdGVyczpmdW5jdGlvbigpe3JldHVybiBnfSxyZW1vdmVGaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdn19KTt2YXIgcj1mdW5jdGlvbihuKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIG58fCIiPT09bj8oY29uc29sZS5lcnJvcigiVGhlIG5hbWVzcGFjZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZy4iKSwhMSk6ISEvXlthLXpBLVpdW2EtekEtWjAtOV8uXC1cL10qJC8udGVzdChuKXx8KGNvbnNvbGUuZXJyb3IoIlRoZSBuYW1lc3BhY2UgY2FuIG9ubHkgY29udGFpbiBudW1iZXJzLCBsZXR0ZXJzLCBkYXNoZXMsIHBlcmlvZHMsIHVuZGVyc2NvcmVzIGFuZCBzbGFzaGVzLiIpLCExKX07dmFyIGU9ZnVuY3Rpb24obil7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHwiIj09PW4/KGNvbnNvbGUuZXJyb3IoIlRoZSBob29rIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuIiksITEpOi9eX18vLnRlc3Qobik/KGNvbnNvbGUuZXJyb3IoIlRoZSBob29rIG5hbWUgY2Fubm90IGJlZ2luIHdpdGggYF9fYC4iKSwhMSk6ISEvXlthLXpBLVpdW2EtekEtWjAtOV8uLV0qJC8udGVzdChuKXx8KGNvbnNvbGUuZXJyb3IoIlRoZSBob29rIG5hbWUgY2FuIG9ubHkgY29udGFpbiBudW1iZXJzLCBsZXR0ZXJzLCBkYXNoZXMsIHBlcmlvZHMgYW5kIHVuZGVyc2NvcmVzLiIpLCExKX07dmFyIG89ZnVuY3Rpb24obix0KXtyZXR1cm4gZnVuY3Rpb24obyxpLGMscz0xMCl7Y29uc3QgdT1uW3RdO2lmKCFlKG8pKXJldHVybjtpZighcihpKSlyZXR1cm47aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGMpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiVGhlIGhvb2sgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2lmKCJudW1iZXIiIT10eXBlb2YgcylyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJJZiBzcGVjaWZpZWQsIHRoZSBob29rIHByaW9yaXR5IG11c3QgYmUgYSBudW1iZXIuIik7Y29uc3QgbD17Y2FsbGJhY2s6Yyxwcmlvcml0eTpzLG5hbWVzcGFjZTppfTtpZih1W29dKXtjb25zdCBuPXVbb10uaGFuZGxlcnM7bGV0IHQ7Zm9yKHQ9bi5sZW5ndGg7dD4wJiYhKHM+PW5bdC0xXS5wcmlvcml0eSk7dC0tKTt0PT09bi5sZW5ndGg/blt0XT1sOm4uc3BsaWNlKHQsMCxsKSx1Ll9fY3VycmVudC5mb3JFYWNoKChuPT57bi5uYW1lPT09byYmbi5jdXJyZW50SW5kZXg+PXQmJm4uY3VycmVudEluZGV4Kyt9KSl9ZWxzZSB1W29dPXtoYW5kbGVyczpbbF0scnVuczowfTsiaG9va0FkZGVkIiE9PW8mJm4uZG9BY3Rpb24oImhvb2tBZGRlZCIsbyxpLGMscyl9fTt2YXIgaT1mdW5jdGlvbihuLHQsbz0hMSl7cmV0dXJuIGZ1bmN0aW9uKGksYyl7Y29uc3Qgcz1uW3RdO2lmKCFlKGkpKXJldHVybjtpZighbyYmIXIoYykpcmV0dXJuO2lmKCFzW2ldKXJldHVybiAwO2xldCB1PTA7aWYobyl1PXNbaV0uaGFuZGxlcnMubGVuZ3RoLHNbaV09e3J1bnM6c1tpXS5ydW5zLGhhbmRsZXJzOltdfTtlbHNle2NvbnN0IG49c1tpXS5oYW5kbGVycztmb3IobGV0IHQ9bi5sZW5ndGgtMTt0Pj0wO3QtLSluW3RdLm5hbWVzcGFjZT09PWMmJihuLnNwbGljZSh0LDEpLHUrKyxzLl9fY3VycmVudC5mb3JFYWNoKChuPT57bi5uYW1lPT09aSYmbi5jdXJyZW50SW5kZXg+PXQmJm4uY3VycmVudEluZGV4LS19KSkpfXJldHVybiJob29rUmVtb3ZlZCIhPT1pJiZuLmRvQWN0aW9uKCJob29rUmVtb3ZlZCIsaSxjKSx1fX07dmFyIGM9ZnVuY3Rpb24obix0KXtyZXR1cm4gZnVuY3Rpb24ocixlKXtjb25zdCBvPW5bdF07cmV0dXJuIHZvaWQgMCE9PWU/ciBpbiBvJiZvW3JdLmhhbmRsZXJzLnNvbWUoKG49Pm4ubmFtZXNwYWNlPT09ZSkpOnIgaW4gb319O3ZhciBzPWZ1bmN0aW9uKG4sdCxyPSExKXtyZXR1cm4gZnVuY3Rpb24oZSwuLi5vKXtjb25zdCBpPW5bdF07aVtlXXx8KGlbZV09e2hhbmRsZXJzOltdLHJ1bnM6MH0pLGlbZV0ucnVucysrO2NvbnN0IGM9aVtlXS5oYW5kbGVycztpZighY3x8IWMubGVuZ3RoKXJldHVybiByP29bMF06dm9pZCAwO2NvbnN0IHM9e25hbWU6ZSxjdXJyZW50SW5kZXg6MH07Zm9yKGkuX19jdXJyZW50LnB1c2gocyk7cy5jdXJyZW50SW5kZXg8Yy5sZW5ndGg7KXtjb25zdCBuPWNbcy5jdXJyZW50SW5kZXhdLmNhbGxiYWNrLmFwcGx5KG51bGwsbyk7ciYmKG9bMF09bikscy5jdXJyZW50SW5kZXgrK31yZXR1cm4gaS5fX2N1cnJlbnQucG9wKCkscj9vWzBdOnZvaWQgMH19O3ZhciB1PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI7Y29uc3QgZT1uW3RdO3JldHVybiBudWxsIT09KHI9ZS5fX2N1cnJlbnRbZS5fX2N1cnJlbnQubGVuZ3RoLTFdPy5uYW1lKSYmdm9pZCAwIT09cj9yOm51bGx9fTt2YXIgbD1mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihyKXtjb25zdCBlPW5bdF07cmV0dXJuIHZvaWQgMD09PXI/dm9pZCAwIT09ZS5fX2N1cnJlbnRbMF06ISFlLl9fY3VycmVudFswXSYmcj09PWUuX19jdXJyZW50WzBdLm5hbWV9fTt2YXIgYT1mdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihyKXtjb25zdCBvPW5bdF07aWYoZShyKSlyZXR1cm4gb1tyXSYmb1tyXS5ydW5zP29bcl0ucnVuczowfX07Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuYWN0aW9ucz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuYWN0aW9ucy5fX2N1cnJlbnQ9W10sdGhpcy5maWx0ZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5maWx0ZXJzLl9fY3VycmVudD1bXSx0aGlzLmFkZEFjdGlvbj1vKHRoaXMsImFjdGlvbnMiKSx0aGlzLmFkZEZpbHRlcj1vKHRoaXMsImZpbHRlcnMiKSx0aGlzLnJlbW92ZUFjdGlvbj1pKHRoaXMsImFjdGlvbnMiKSx0aGlzLnJlbW92ZUZpbHRlcj1pKHRoaXMsImZpbHRlcnMiKSx0aGlzLmhhc0FjdGlvbj1jKHRoaXMsImFjdGlvbnMiKSx0aGlzLmhhc0ZpbHRlcj1jKHRoaXMsImZpbHRlcnMiKSx0aGlzLnJlbW92ZUFsbEFjdGlvbnM9aSh0aGlzLCJhY3Rpb25zIiwhMCksdGhpcy5yZW1vdmVBbGxGaWx0ZXJzPWkodGhpcywiZmlsdGVycyIsITApLHRoaXMuZG9BY3Rpb249cyh0aGlzLCJhY3Rpb25zIiksdGhpcy5hcHBseUZpbHRlcnM9cyh0aGlzLCJmaWx0ZXJzIiwhMCksdGhpcy5jdXJyZW50QWN0aW9uPXUodGhpcywiYWN0aW9ucyIpLHRoaXMuY3VycmVudEZpbHRlcj11KHRoaXMsImZpbHRlcnMiKSx0aGlzLmRvaW5nQWN0aW9uPWwodGhpcywiYWN0aW9ucyIpLHRoaXMuZG9pbmdGaWx0ZXI9bCh0aGlzLCJmaWx0ZXJzIiksdGhpcy5kaWRBY3Rpb249YSh0aGlzLCJhY3Rpb25zIiksdGhpcy5kaWRGaWx0ZXI9YSh0aGlzLCJmaWx0ZXJzIil9fXZhciBmPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkfTtjb25zdCBoPWYoKSx7YWRkQWN0aW9uOm0sYWRkRmlsdGVyOnAscmVtb3ZlQWN0aW9uOkEscmVtb3ZlRmlsdGVyOnYsaGFzQWN0aW9uOl8saGFzRmlsdGVyOnkscmVtb3ZlQWxsQWN0aW9uczpGLHJlbW92ZUFsbEZpbHRlcnM6Zyxkb0FjdGlvbjpiLGFwcGx5RmlsdGVyczprLGN1cnJlbnRBY3Rpb246dyxjdXJyZW50RmlsdGVyOkksZG9pbmdBY3Rpb246eCxkb2luZ0ZpbHRlcjpULGRpZEFjdGlvbjpPLGRpZEZpbHRlcjpqLGFjdGlvbnM6UyxmaWx0ZXJzOnp9PWg7KHdpbmRvdy53cD13aW5kb3cud3B8fHt9KS5ob29rcz10fSgpOw=="}},"time_used":468,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":468,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/gusid","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.134Z","timestamp":1785145406134,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"GET /v1/lst/gusid HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nProduct-ID: 183401\r\nRef-Url: https://autolitefinances.pro/\r\nfp: null\r\nfp-data: \r\nOrigin: https://autolitefinances.pro\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 301 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:26 GMT\r\nContent-Length: 0\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nStrict-Transport-Security: max-age=31536000; includeSubDomains\r\nETag: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nLocation: /v1/lst/gusid?r_c_id=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nCache-Control: private\r\nNo-Vary-Search: params=(\"hyros\")\r\nSet-Cookie: __mh_tt_disable_script=false;SameSite=None;Secure; Max-Age=0\n__mh_tt_s=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434;SameSite=None;Secure; Max-Age=400000000\r\nSession-ID: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"301","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":0,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":null}},"time_used":110,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-regular.woff2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.653Z","timestamp":1785145404653,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-regular.woff2 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 11152\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-2b90\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":11152,"size_decoded":11403,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 11152, version 1.0","md5":"070c6807d7c3e44dd5517e46bf57566e","sha1":"459cbea837922fdf96731d704a5ef2365a15d898","sha256":"d5e0a1d1640d7cf611193d40b2413f7b4612d869b2a70a4b9240c423234381ba","sha512":"383ec6490d40bc74c9d9ae1552d40b93079b511f844003631f4d13350e519363bbfcb05eb45100c0a880151006365a807ed488d5016fb540030e16e328343e1b","ssdeep":"192:FCNmFcFrpXXPJxqB8hFPVOJ/p5XVafLNF8aByJo5lt9YAIcsh8medJpEXDxVLTiN:FC4FcFrF2AFPkP5XOR0o5xYFd8XUT6As","tlshash":"fe32bfa5c2a53c9eccfb38fee065355fe09c30341d887b191d68c6ac8d94d4d0090f81","first_seen":"2023-06-10T04:51:27Z","last_seen":"2026-07-31T06:23:14.494706Z","times_seen":95,"resource_available":false,"data":"d09GMgABAAAAACuQABAAAAAAXvgAACsvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEOG5RUHIYIBmA/U1RBVEgAhG4RCAr+UON8C4QWAAE2AiQDiCgEIAWEaAeIYgwHG3ZORQdi2DgABKitxmhE7HEyYnTeKEoYJyb7/5ScHFa8NnCySBBRZO6gigpF6RUUeRvBdh9Oy2vsoOnNz4SnPHK+u549Fh9Y2eLnFibPKRlPa48WeeSKIzT2SS78P/9u+WufhAAZV6Rm/mXqX+0TE2Ho3OH5bfZQp1OsBhFQQKTiE/XJT6WFiRiFuUhd3XY11+fWnrvbXF5s5x1st8qrdVxsl3rR/qfNSmqwq/RGi4zS/221gdsz3o0Iu8OV4yU64Pgu5SC8Wv75/8Mn97nvTwEppQgONhrB2n3SPIIBbCahWFYsD571U41VceniKgwde3Ck+Y/aUNdyVPmEUBEfxr9a09uJ28u7EJCCVlX1KekVwZNzlUQUmrT7DyoqSNX3ZhVw0i78ADT9XQAUwP/k2o5eCSW8mMEE04nx/P/v97/KfNLZeOSE+EJ9gxoO+PoyOuLJpIlIi6I3RMQjg1oIsWH/LZ29f/MmgT36OuguSiLXyWvtpzmarIqchDhUJKUZibC4OMOVqdreMXiejqBTBEdWTL1D7DwqOhd9ut99AH9/fPIZRH1SAh3wgDTkKzIpAEognHJ6KIKOoEOqQo5FY1eqCjeF2zKFou1k/l4tj+QeSNPljbNEIRiz5fP83GfLA+3LnZ07N4gTHEdCCMHW+GTXOoxNz9bPciVRggFt/hGEUQ8AUAwAQkAMAUYx1DibQwkUZbKqQmEllFZHguoFqj40NYKhxrDWJOU1g7/maK6VOmqNvtpsoLaaly/CtqQbQ9K43zB8pMUDklfN7+8CyfgAL1GXrVzc2wWmg7MBH/sLmG6SgLFLDGg458QTAID7AwCdyejvg7jf/fsfhBancHP9vPsX9/+qJ39vrdM49xjkkc/PTaFKoDNIGjGJPDJ6mKrsJnPciqZqlq5aK4auYYl+s0lFUYrdXRhFT5AoqahTCigGV3hbbdlrnuas0KD02IBotmB2GlvNFs3dFcO9FcODFcOzFcPzFcOL/VGv+LzecWOvUVDCODI2UV1ORdOFIJ9x9JlohtHf0VsKqTjmjVGLsZmMY8bTWwxi2b8KnY69PCY5xj666Ghd4ItEjmw9vDyYvLdW/nRY0+Fr6Z9+6WWPyYN3u47f/6ILRSL6hwtQdIKiVBacQkVomNhZEzUNLd2QkYmZhZVtUvM59RoENApq0qxFq44Cesys6X9njlE7nXHZlxKZDTAHYC7AMoCVAKv2ESGAdQDrATYAbATYARBHJESREE1CDAnTSIglIY6E6STEk0BGulKMgFix48QNCg4JDQuPiIyKTjySkY4seYqUUk4l1dRSH8202NFNT9/A0MhyaN3a/m/jv5xYtfP4gae+PBrqAKLYgbOa1UfCc25ZP/PDou6skOVm0q7nPiltGgaw2BwuBCMohhMkRbf4JpEm88mhUFJWUVVLva6ZFtMWPX0DQ6M2bhMzc4uh5dWZ0qNhAIvN4UIwgmI4QVK0TK5QUlZRVdNs4z4xM7cYegbnf/uGASw2hwvBCIrhBEnRLU6ymN5N+h0KJWUVVbXUkSa10hY9fQNDozb+n5iZW2RZOvce7F49j/0dGAKw2BwuBCMohhMkRbd4mUiTiVyREpRVVNVSr2umxbRFT9/A0MhySz3lpANgsTlcCEZQDCdIiu6glBJCCCGEUEIppZRSHx8fH5+V4+2jorArruxiZm6x5UWJdQAsNocLwQiK4QRJ0R2SJDHGGGOMSUzq0NM3MDSyvHhNNgLEv2+557y9z9yj3wV44l0BFpvDhWAExXCCpOibvLRyzjnnfOqb7Ld+Oi4uXzhnUYu992e/rgCLzeFCMIJiOEFS9Kw34pZIk+XJoVBSVlFVS72umRbTFj19A0OjNh4TM3OLLGXoAn3aub+S4ffvj93P8+/Ksb+FoQCLzeFCMIJiOEFStEyuUFJWUVXT3PZxcm2Rea+u6ScfvE3ckBk6PNh4H/bEWn7ftWHGA7hyQ+Nji7b7LdQG1ROXeZH5wXNUeiEx4oTkePOj84P5kfn+fC+aln/09ePM/J67aE2oEwz/8Zk5sOxpKNABBk8xB/3oQgsaHvmfD3T2At/L4Rw43qIxxWuKgSKE8OEhBoMQ6c0ojkfuh8RqGoQJLTvsySRZTD9x3xkTxtTys2G6UAlUTK5SdoLzzQP3myjEUcMA6MAVxQJGSwl42U5E0TEsCvmVp2wEmtaWF5cWVF5ojKr71YnEN/4uHz5NqcxgA/XSlt2WAZRl1NrkOpUPByrbSGeEAV5O7hudVooe93ZdGRWeOi3O6VsulkBRIj9H535RdKVoUE4FIjpLAQdpuYsI/FPEWEnDrit2YsoBjLPXrjlwozsYex/QCmAl+J39Lwo4Jil5IvrwjoX3pvsAZwKgvyYC0CgaVcWB0lOS7rR1aUs/CgXTD2ioQp1SMayUKQRwPCXk6STEgSFCiFIe2MoYm+F1hxcjr3cSnYgt8D9q1CW3nZnbc/dyJj4fj8MT8WS8BK/F9+P3EoiEVYQ1xHRi1v//C/JoxCaxXVDu6pOBz8Vjd0/8s9NngAkAONQmAM2D4o1ncRAA+OzXh28+3PSwfpF7KH4QeRCcj886968AFNAVYKLrAOgkAAA60ZsOPq63OOS6iKd+5ZYbzjgr7FvvOe6gI973gR997wcfuQlFSA55FFAqS7YcWDiF8AiK0DAwsbBxWp37krrgqIsmOV00/RsfahjZxs7Bqdzxq25+nBZtDTobK0P6+Yzxr2yOcx467xcOOOyx55742iN3iuIjc33lZ06413Q+9RPj9hTDX9z2cfFcb54r3vWOXSbEYvjEiBAlTi4lUqVJh5ErT75kkiiKkVCRvVBCgIuHT4Kuk4qcgpoSTEPP2rytuIybhxeiVmMDx5sm+jJfn249es3SKp1LNfvCly61u0w8FHL/Bxd4OK59KwV0FlB4CYDyvwDwuwJeLQAYHr47aC7hSe2IyHGEECHLFjbKqktf8x2goxwUC2PiNkA5AKCLovR05ZEWBmMEDSJpYFvxIxxXRJJu4v7HAQdhahHbxJTthQ5Bo0Uo7DTJEbmDRcqOD4UVVa0B+bFSsKqbCQGorBEvRtIA19G8USTkQJVqgxL1wIMAmlh51EMXahUZdDEiY8YycxzGgZoOjXO6yqAaZ8J2zMg4qXzPgYvqeGHg2aA6J1fJV6NsG3peIi1cPs3sGO8tofLDBPYBWUGky8Zs5TMC+InupkR4u2MgLSrOUBKPXGZ58aKF2va17hj342KEf3h0ZmDJR8FAVTWYa88PzleZbJKhYUNKdkeeacBSTcb9BgH8u4jDP362v590lFRM+B8BfUrY7gU/1ov5uzlCXlBN7FXtUG89BtgjArZtiESCCvm/H0W+bVmX2ro8NnkC45OGGLDUoug7yzDgonnKGJEDncxDJUYGCi2ouZNqklw2UKFiZetxh5bXLShMG8uMm/0vBvqCQXLIx6a0o/Yg6jg5A41crpHAlhDCSP0mEUxqUUNzSqE0w4/M59poQxbWPk2jcYTNeAg49/VJiJQ9rk+iAVr4CKgzzCOfQZGHS6ckT7DgS7XO1r+vrgyX9/34WCGCaaCGTBkGh+n+9Z5evrH+fijY+CLvWDvF/iE8eYLHb1gm0pKmHtRVk3hlFVouEYoPhUsU93BbRK6RdtSZgY/dSm21pA6LvJltXmLbyxPpum3LAJ515H7giF1+jWvHFeZpdwbeooTbEv0uDHe22bzPznqXdVkG6Fp3Qk62bw3sSZGcDBHojx6HGKgJjE9uoDpWR02R6gLIUnQT7fqo9DJKfNBmOHdqzzS0t+VkMW8r5kgW+gv9N0QHROXNQmK8JnUQn5iovyBIVRPH6Bsi7eTm+InYoJt141r/uKrww9midi9tSJ538hhrRgiztA1s6jliXzqbK3q9Xuotkssp3pL4/9ebjLhNZYx63UsYTJW4ube8E/UNRxJN8reu9U3D69ZmlBwVSTfogoQOOaCcvjUSRXajCEiRNCIy10D5AIt+z9+P172LEeVSPIvL1zLEYxLuegU/8RA2kAYfudoSc7TOawlmTsJaogadpQxdw95EYgwbMcZZKqO0uUlGYkZEQGPlmjhJJCEC2xj+M/A+pRKdBDO7Ii/1qTdb3448C0ifPK1uHxbi6f00UEnY+1C8NJFo0KC48ODA4SLlIBl77a4hwfg4ChG0LS5z9YqvgYj1mmxjTzlUJlMfK7g2VmLL1onRNJOtWH/3mNM8GHnfq/6GP+S+y9YyW3axK09nsFVXU3prraFPVOcOkMAkvJSwnqQhBKt3wUBPszy6uJvujB6T/GTP5TYWo6t1+f3nO3g1kv3bFOa/yHvQ/kk6f7U8b3S0jbFTj/kJ7wjydEBIfwEBGtxU8E7CbWRoNbq370rDycZ7CLvWYsNcIV6Wbt0IH8mVoM4D+ahKCyUhoXfo/d1NAzixtGznj4y/nElx3QfNMYd20J+gFs6sVAGdcmKaDAGP+lxN0JR24fhu9Wxp7cEzJK8R5UTkXh6VWmA7ptdzqXJbbMWKZOFiJE6OSPBgRDIq6usgv1vvETjTUUebLu8+EIhzZm2yIsjTEGx2LDziKW6RndmJ31brXqRVHKhYsM5tQtBeZQ+7gem59GA5arcWQrgIQerfVwYeWakRM5+KyiBwGcyuDd+Y/J8i/mfcfw/Jl//IO5N96mZtc9ov1nSJqeOR5IClnDjTkFQJzkzQbLnIDr+w1uQ7cHzn2GmhmZu/0v8u2jrHuflgbo1DDKyHfmtER+Vohcgwqd8IaF5qvsqxZFWPpXLIEq+1pNghMWTINlPCKiplAQKJDmV0+qsdjqUjBzw2Jnl7RokgxkTVnLA5ltEa+dg0zfptRKuY/bZ1kupzbZVQzMkU7fd6LvHeYl+Z3eNDmzVEjqwbqLaXpyxpUtfBzsX9lnqIEaelkJMtPF1Yqav/Xk+s4M8sO96qyahbxl+bJJOjw76V1Dbsg2PjMlz3+q41vjubsDary3SmqqWvMhm/1a7uKe3KP1Absm39stzdrRtiGQIjqxKVRFzVMIpBG16mCMGrjh+eFlV7abLZOaFuN6NaGZJxi1vcmt6jE1iyiUD8vQecCatF+m2WHIK4VxKZRK5Zj7n/tvy2Qjn65bwnalrOjB13rBQZf8Uij128pIwSDKbuYqR32WDLb4d/5tSZfrf6M1s1iAN1r+edYf8IeMXb/6/ebP2nZza8Sp9aJMNzkfyNfTQqd7uIcb4xd68UGn9EY+y5etGGFJafOiN54bIJpARglEORobrlVkPeuhCBk1rU6WPinaTyQaTBpV/Cl2GXZRi8eVrnVQPHPPI0ncs1ZrwA4Rpf5JGAgk/3SknOJDpuK3TZ0iW+Spay8BbVleyyuqfP5Lds/0a/9PkIZZQWbfveykusuKiSrUkO5VdTFl1VYJa9VgPn+ENYMETH0jrhw5ANc0veyWmbsg5j/eO95rHsapEtxHt2H4BybVheO9kR0JatzMXFiBgto+MwXUDWAAkx5qc1wy/ZJVmY1CfT0Xn9LwAd1Va8lx9TAUYPl2p5Le8fYcw4HCOYEXTGHqBaWvPTen/o1iM7WV7kXHIpq6kY9oLjjulfTiMV97qaPaxHtrLY5VB8jmBnbmaD5EbGVDGkvL4DzCrk/vRwYyipGQ4H3NdWmLCo7SWoa/Ou3IRNEGP37lXahGn4omainThcylp3aGz/LmroE2GZLvfQz47UMT5FBHYf++fYrXi5ZTlQ54a92PDqu+rbroB+xrLUclUoFjcwp2nhHBA/Hq4cC1cMv0oOC/OM1WPdFvFG4lUWoeUow3rXCjZZJtQmBST1aixg1DC7cpChK4flAk8DXfdXxBPJkZsPS2A5JLbIdWAbsh0gQTrkkUuknk6GBSxGN474y0bb2nyjb/kDyj56lWMJUizWyb1ElrEPUS30eOChfsTE9pK1GqmxeH2lt58FuDZBRYnWTG4QiSxYa64oEdgC68u9W5qburzrK6Zsq2zXIt5IaqfmA4hYr9RniW38ymZKoiSWTsW3NYDSyc08kRRe/bNkgtVr9TSPCIh7EZczJ88YmNM8OKfUH8e10q006SUAjKDb3/b7R1vbjfE1aRe1Fpcpd6kZSg3XgaE65yOGhV6XfnCB0altEUkb1Y5pfvvyNyw4ivFf9QygiHgigm51YesuefjpdD7rr6RN4hVMxqWMzIvBC2dmRDYuUWCDIgzm83wKXXzqF+y7U9rPGcVaAs0On/N8C5HdasiNARt+JFpCC9p+DkecEQMuELSNiO0p2VpuBe+ckX6VtjB/tDc3mzJ1xuf86u1CoNsY8USA5/HrMPPxayJWxAfUs0drTxMsQwc3VZW93dbuGx2pCgY3+r2jbW3et9+qCljMPcZKuOHBXiQZfQhv1m4PvHAAwS+IGpszp33pHECtD/sD4Vj0EFBV/nZbe9noSFWj1vt9zhJlpXCJegNTv1DLI8nETzqeh7ERf7B6pdcx2tfvePsNb5UF6VDLB/1+xcIuDWLqM8JD7vVNjAp5xBOJt3qsbpM/5b3AOg7pHUoaCVYXH1xjXQO0LSJJQK0SBKpFij9B7AoOvGrbJdLbVejQauvqstbraKwRyf9a0V236uAsqaydzzfv76yP8//8p//3v9zslvsV2Ztu205+30KRuUzq1dY1QANahJI6hUJZ2ynU3UyPeCPCd3Fq2nETkKElFbkwff1WB+ZFpUrtrFIKOE6ZOtWS8cLGZCK82jlt/boAXaE9a8cQKkQqjU0lYn+FsaQHczq6VBBU2cEH3y3yLOJ2WdOtoCbZPkutmWHzQkyPmymEPEyyuVibZsZctT/upPdk/0nPScAvCFcQwjWEIQgbBituhL03w/9d61pdCZsuh52zYTyHAhfDICFp4T1pMD700LwM7PScBe9JkgaBj4gQnwzU28IOj8NF/PuthscDYBHHjbks8eQTO214G3b3qwzmxDgPS/MtTQzaI54By+0z5bN1VQJGG7CD5Afo8gYHYml0VK3UzNfvo1E282m/E7R0TlNgFph7MNZXmWMzsOhfcQ2YuAZIEwzMnlV9K1Je70DM9fbyQ8pR9QEadQtfbWpwaKJ6Q8soxh61csBqVQyE1AakSSuY43bIC6thPp9j4pSUSSV0r5nJEZp5Yg2B8qcb9/sfqn4V0EcctdH+vWhlDcybYbXxBhig1ARh0YDNKprBXngQFsIq9UJQidfIYtG1LHJiNoeGBYrRpqqYBhmRHvgOgofMdM6ZtRIPM8PCSqaFIyss90GPAUxE+2sdkT/QfMMzrDbRgKaRFx6wWXkzDqcjdA3gDFAqpT6ToBCNhFSKPrNF1tsJ6wvr0Mg5+A2rvL8LNiAchEl1CoVUl4nJYRsTcUmlzufn+gU3fomhvk/tTEtBbCmzpJ4yYSh3mfWf1HvH5kQAHm0MqRVKr9t1qRFdkxaa63GoCJVqDptjYlK8EjHNZWVy+AaOQUckf+sp/O03oO3TgVkMG2IzZxZE7rf8iS6isyh79uvkOpB0hW1Lb/qoQHVmSpVMYlvIpS74tOOUT9kXEhtvaIJKUa/JIuoNKjXKaiW/12Lm91QraVq6hkVyQQKyS81ksBBmiUsAUV0IC+jPO86nAnsBzv4/n60Rshrxeyl2Rk+ZVFHZGgI9wIyadKAmweH2VCplXGSCoHFaOzRoQ0vmvczsu5lZd7O3n+Z0jYq0okA9Kz5BW1bqoNvMDlBy/ao3a7aT4zHBFZMRR+TFERz00gf0sQPQT5ljqt5K0QeVIgd2ORFfRVXL8acU6Mo+detlPBJ2qumAiDZ2exHjRMTUbRgSamPkGlmlbpHITDOLCyjQqb4BwB6a9B6efA9totqH0VhnMB7UqWAzDscconnMd1/T2Yg5pqpuV9jXr27d2SWOJfd33w/O1kb7LZE/wm6/bt+T7JQ31rGFZroDy4PF9vQpxxSYopATH/xUh0VpqFTWFLHw2Z1/NGlmhGnw2/x0Q57iUx3u+BEaU1iUOboRi4aZGCKDBTuJQA/kwoo6tlJZwxKUSWkYA8eUzy5FYmVa7CGyEIHFEqNOBGotTI1RxpcYlSqGIdXRRZf4VFK+s56uAyi00W7WoR3R5OWkxCYGTjW8edqEQW4AW2Kq3nJM7b+GcwBgIlgvkWGk2mPd5IOLk54v3lX31gYk7pp07p4cm+vN7wDVCTUBqgWfcJBwEbfyau2RpE3PYkeefZpUO3z1PA70XsnAhQvUrdQEDP0T0SsTR3w/imkrV6mu3Jj0fhyZAVrTL7nf3vfmIZXOrx/ep1+pMIAnK2NGknedweSc2PaM85Sm0Zq0YxtiBdtpjAOCRpZNxUz/MI9QSZxSSg3g8HKGjkLRM5nG6NF13jLdFKSlfE46SaVeIRVf0aAnQIl2zPXrRtvadOs5fqdT6AuWF3aYRT4je6HHwx70ISKRF6Es6kL5bwxugjc7LKjw93FW1ZYHraIoA2TEg9fZ7kxCvoplHu5Y1eXKLcr9spR6v/d1b2pEYa1nyfRBvqhSAknr31jefGpHk9uhn5prBolongu3A60j74uCyFqnVcpIqipUZajTlK0Ym6DUylPI/M3cN4Nwhq9RAuF++cyH+aHjV5jE3GfOY8jrWJCLT6dqTKyGbAloPflc8UVo4BFc8YP54e5lAl8EENClvlwLb7mGTHNS6DqfR6d1e7UkAx4ypxF6BizdMYiH3KuKvrau68ufVAFIHIC1sqY2MaCikXqhuDp3jq6y+A1dQ4Cn5Dfh57341ZhLbGrdM21/2rxWPaJpEUua1LC0qU2kNzK0ZLKWwSBrtSQGXUeigNnnTUcGropXbGnmgSVd1i/1qljAQZt72HKfRC6v6uGard1cRZVcovB1sy1GU7VeLKlGTGwTfpxC3m0qZKVrgkzIBYkgb5Cl0TWyRF4RJHI1MrUKpUPBEzm0SoVdK+LZFSDhrKlWKNGVkkobyOvUFG7bE7sv9YENiLZZIglq1NLGNrHOSNfdMU6gM/Vm0rLGvNz80rY7sPd9Pnvl7Sefy78I9T+CK16aH7TtL4NSYeGLqVyrkFavgml1FiGXZxbSgFWe4d8YB6YLPWoN5KHTBB6NWugBi3PmNynB21vJcKa7+Z5ARwPtekNcugjp0XEVv2di1AScK2hM8nffL9HY9CLyCqmWc2tPolECtT6FwYepEML6AM7a/i2GECzItB4kZvMyOPaCr0vITf9Ufc7Npr/E5uBxGcRDv440unCUCJdA+tKSRweu16zhtImviZKxUuWqsrktljHwSSpm1dPzquynfdlFuwnEjcTM1M2qpOwn36kfrTTinq9dyYbwDsQgVrps4ONUkUZQUCnkZXi2/VKK/2VIy7iYxhWVRVV9++VECfUUs0TqNMNywjiBeGfLZ5pI3A3kOYfazeC9ju56dRGkSwAnUk0uJR9y6UxGlw7iu5SIrOgJFnetuPgaDnul6NPCnjxsb2FhLzav54XGJOdwTUqN2qzkcixysCkV/3hIS4+k8SBflP/b4xPUkqssisRp0YjVwoIKiJPh2fak4DZhD4EwDgYkfgL2PQy7BgDNSTkgu5icnJ9ysn8ClF7RV5XWr8D8ZTkp7wSoQKyUzOU7Ts7/Oas4mL00G1tkI4ymP1apwtK1/ULUT2Won0pu0iCYAgAZ9YFGoViRQ/76gv10oOLAwI0oxTaTkqkt/dSUDbXoreoAX1wtk4urglxNsiT3/5zc/3Nzf8zN+VF1Hoy79wDaaTX7uK3EblSMYs6htOmscONmCkmlmgOec4GjplwzCQCTuwUvjxYUHH1h2t8/z/g/QDZYM3y0fdll2kjHsk+/eYeRpd4hp07fq4/bS328Q5YJA09nGO4Mv3piJnfmuRODqlqCFoVf4b4Ckt1pGqX6ipRgwO1dlucG4hgj3QimGck7YimcjhiHjeB+4K75Tdo2XxltK4u963pgXkXb7HbRtpiHGSowGHAxVaZhZ7jchVamVT+6XprazK1lvlZGA4gbii9ZF8f3JYVq1Xk8g6oxpcqnw5ot2NOHeW8BtUkhHz9uXQnN0AVjTXpvir+fDfQuvXUOMOt8yVX9KgMfFppc5O87KYmPDKr+ZL9XjzVZsXoaZefv/NEI1c7BwB9YssVs+8FmBs8C233Yf7Cbt4DRsOhKheXK7UP0rC3gUwNvna9fW7+GAscbQnVr63wNgE3deP7dgM5HEjgWEGC0AppHcd867oEg6krLuGbePO2upqYhaN7cPZrmmk2avrlyX4SxjL+yunWR2Fq+UtzaKl5ZVgbGIldKyimVmf9D60L5dY/hgEzUrtOLWhkAq+pkUKteB7Xz14huYOqpFDObQ0EMVCZLTy1BOOwSk6FUESRJdxZbUHnzMghF2Aqp0caa6dOOD6Bm2meAqCRpFYPvFtAJuuU5lfKhabgCipVazCrCKQ7MWfMns+lG9MzhdpiDYdC1JgqL6yAzdGwKVauXfYZwa9YOF3G0cgG/gqiFi6sgZ7Vn1VoneAEU1SJBQKXWfNWQAgrjPanGVE73GZp7wiq3gqIKsYcg3GrIPfgvS/wviTj3u/sLzDqJqdZZwTMQrm27dtxEpTIUFMKHovumdIebC9eW1f7JNRFvLXzS1+DB88LFxFdffL7AopWY6pwVfDM+5oA+5/i3TE4Xmfgh9Jk53e4hDwQbEiyLhIEG4SKLBUYgkPwW82JhfQDyTIz6BmlrGRW6OaxyqRTPlIsj5Ph4yIWzp87VFPBUiEQCIzyc+sWa3yc6yiBmvWeR2bTUV2aMlsezWKUyH0MBIByHGqhGI7UBElPryYRBqz8P14shagOTAq8oawWCOqVKUFsrVCqMqaFSKsvfOWRDcStjdSn2xUZtn1TaymnbCGXuysyayOGB8qHzJX8t3Tn16/4hZOhsvdqohurHjGPLWou0Y1NL/1SvGUPGwEcfk57ZSSTLE5UmLU/J/qsdOw9XMAuLmVWAmwf8d34x/AIC1ROGCb14uLuBKFRYhgrn1s/p2uS8z7Yx6RaW/GabbAw2x8JgmpgshsXKvIAFLhdTm0QXMuk8Oo1HZwqN73o9P5d5b0iNpkLE6HjIdDlQgJita6BIVR8Y857ZoWGDQ8SgIYKt2tRxPa1EzfKG6lrlFZSVo6b8eBtPJNWIWHTLJ7qUyqy6oITLcdazOub3mfrAfLR70I+MtrUZRhf6XfxausmuMRT/YdEQi8TlCGehx80ZqjBIi9XFfPV3SLHO7K1hbksUHxJ/OCjBYN6KGXJeRRVbJq1g8dVRu+KFMMwXaHSi5sEV1qwrea7kUtx2dbL1sfVRIdKKAIikLzy9sJZ92uF1PIhI26VtLZjy4O62mkICEB+FTeHJg0z9GcOZ2KOG0wYwa5phgQGcbXY6f3a73OyfnK400B8ClxqOj6Z/kpHxcXrGyCWxMZ2TMf6k4/ky0jeCUKth2LDy7FokGG6w+bZZUb7Ndt9WcO9nm3e7DeW9EO9r4ZHqT+tPCZWnlTGvbzJsAqpipA0xNB1ADoDZ97AH/n5Y/zMVc8OhK8FrNpAoxy33ien7tUElqGeCV/t36F2b9a9u1Du36ME0tM0fAj2Xx+4rnFm9lBKOON5hZ+WcndoXAep/CldPhl9NYehLySY2h2xkAIOpK6UYOWyKiW0fUP6k0/+kkOJHO95rvykfYDtMujFXJeRSclFg8YLJ9JoYetFZ4zLj/RddP2eQkNyUFSN9qOaX9vAyykgUg12SIL89MzKzxWXuLtEm4DSvZmbW3fuTvJSVeRmgJENDTTOHwHNJ/2Dz4CD4r2vRguiGWUPezmiI/vqsg908joV4hGIthKgllEIrZYuZCIbp+RO78/J378LkT6zIz1sxsa6YTCkmUcjAIigQtAuSUoEWLn3zYgE2a64uJW2SoDIUgCiFkWsE6C8zbj1UPmckp1/OzkOCBTrzbssP+ZSnYDc9f2IkL39kIh+zayQ/b2TXThKZQhL3EBu6US2hgCin2e3Ai1o3y5j7Hx+4GardZk5YBxJB3wfSdJKm6IiGxUzBKqZAipyfWXdb2YxbDexJE5XGQahclL1aFB3XWYRnLFpcqawDz5WjRJ0giYAPycFJctCpYgmiRfYQ0PS6cTM70eG/2ZuZqEPzSuNQvm5HyvhGh6a/g+yGLKMXg0iTadu4VPD/0DS3H85IfSD7DMNm3AKt4KMTNcZhUPei6Z8xyG7M8pBFmXbItD90ZMCOaQKhF00/qSC7PIujM1UCScRezF74aJz+t1RNd/8Hs/eW2XfdHDhtDl4wh+79dfgALMqFQPP3lIvkO16sl1C8VC9z9XLwCl7pXzVFjrGEVnaWBxDl4iYbnifspX3IrWzw/p1MbFvV+MDFuMS7NIo4GKK+iJBrrduVE3ZvXy7tbF6y9ubxSszdDtDSe99G72+v1YyF4ydOT+/vriiusvHW6g1hkI+X/Nf/QaCDd3+bf6c0MVRbdCrIf5BcDdDwvdtDUckoj2VVhLngp8cK7X2o+OM4fJluAAADfgeAONiFq91yJueyg+uWdcLczNk351QDOt2agXO3O9zdqkvJSx/zm39CnJsa7GrSHbt+tcFEdbuWWs5lR7cT9/55ujUFZ3Jumks1rVZS9bozE9E8x0s8wudy9ITZfwNCvYq2h8Dn+FL3YWqAa/wdG1Buy8A+B6gup1b2f2M+wsy+uKmxa6v01T9/HUsVE5MYYgST6JQzsMID6D3uG80sz/FS94h4R59YTXH2EpJOiqllrxaIrTZZyp0SiQnh++YFrCUp3sfj91/N0F6lAC80JhPQoPaglqgbDtDGlGKvQzu57CkQg5FTK8kC7YrSo163iVitUO8219lJtGkeFxZeJgwpow+1Aamh4rRCfc88e/8yAvWQkrm3+e7folhVr9sXE7YtJE3TEtko2W8Iq5OGikQjpfdN4omoMLZ8jrp+aIqsx8XcRVOnQ69gZGD93J8jUPxeiz/BRqrOzuGD1jObHd3/jjLWLJfgmC6JRYBB93+KDtSmyP4Nor3vAPjoF0ELAPDpD/Nk/7t38cHirQMIMAAEvVCGv7oi/W+cFhQHP2CF9pTG2Sn+WPK+H80WUj1fYvKDyfuRcRzMqGgh/6NOfmwoBWS4z90tQ05KFU80UYQXUD3TK5atPHbc0+lop6JCOnTWjabdM1C7EkF78zfBmxJoe5J7TusuT4YPifcek+upBJtFPA6I/Vj9h9q/0uoabUzopwCVmihCibtR5KsH7JjhZ9L7hhrUTNjSPtcI5c+z/yvJXSwK4Wf07krrDZAgxq2FamvA6op127FjzoeoB8qFvq84n9d/DunDJNIjTifuFUrQhztaPvFe6keMzGDrBDtDmG0hG1ZqjyedTmijlHxCjMlTOk1A8HATgqSgNbRqMbiZeIklUq/18P2kh1rJrAFqy+Hq9ryx5PdS0DLkdLRkcQZwe7uXv27JjC9FJj72Ber/6uDXsD1W4l/0RUueCcKuVHVkPJ0/4Ptcqv9A+tbrPQLPAAk6LOUY+/pnZO597SDBAEMG/PEj6R4Z1SHuw2qIpFJL9YqMripJLC3TcVW6Q9Kq0oeCUyWuGc6AklTInOvFuoc5S0BDlD8S5YvlVxyCuiqYrvWwQj09er9oclGHxjo8vFkvfVSwp1B8GyJE5TXbDAO6rbL80739Bx6IZChswyRe6VgTUXl8/Vwx9uVbMOic1TX/Crdu6iNv3QMkH0orSNAYTJWTt9eerktAoJCZYhkhxxE7wnPtXM5Z1/nxaYvrKu0rqkvta+TL+noMdKqvT1sb+0aoNtg3oLXynfPpiTiURC7luhcPwOOl8pCHoSeYKqRTvS5G/Ry5Q6uAMsFUsxb9x2wcsFsfCZYsXkCv1oz3T5xpLPEO8lCBN9c8Oz2LgZT35y1BQZZIHoNLMPGBdl4/cp8TvfIVhXTB42JiH2YYsvFqN/AL8z0pG7udPTrS5OnO4ia8dY2QbrP15sC54NybhefJaDCjlDueVkjbJAJsBzZQTxEq+PTxSmrLmyMEZx7QgClw1zgswZReu0btqapLlyCfXezelKyG+sC9IrcZ18HbrBBIO18Uz2qwT8B+w0jIGlF8q0TQORdcRFWKhu6Syz7zOUbRHalOE27/pd3sSjO5CgfxfI9P0Kv6SK+6psV1YhJSMi/IabVq3jbdd6ftdPRCDL6D6K5Fbc9MPg99Q78ZZhbDZtamKehxfXtncZltrnnm2GG+97j9wMPLZ4Uy5RYYNGShCpWq+L30iWpbbJXRaat0qf5fxsAWp5jiCpWjXOUpXwUqLK30Msosq+xyyi2v/DBhKwhXYfgIESuqWMQUv/KbSJGjVBJVtNpKk0IdnD1iuBLRqJNekURAMWW06FJjeN8H1NDkMkcdBZVTTvvQIYd9ZLdxR31qGiEp8RyzzGte9brFan1jiSPi1NFS62NJ5lc/MQGPoNAaY+rBsU1Xl7jx4idIGJQocZKkybxJ4w033XPLbfePwgt6gzOC6IE1rWw2H2bz2Jz41o4doUCHx2WOI1wuDwqUCrW43243Q39TbGhN8Kyyf2tITJ8PTZ60uGnS0DYsnxHatG/5LJwODhTO7Qb7m3Yt7xLxsWAqBD49KiswAJFg0Ih4g3tokAMGgUY5R6NcCQxCMTBxAgBXAIQCNAjcQyAAuBcBGgQCgXtYp4lstdiWc0t4s3LZED9KM/WiC7OzJ4jTA/MCYqUvhAb2YC6D/4UTuV69NuYLTfHmJnI5gptnHK1+Q29o5kB3PMwJh+REHluE40Lx/+ene/DP5bC6s3Cg30RQztWF+jrg+P7lHY1DGb8jF5pA/b/0N7wBAA=="}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-3.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.042Z","timestamp":1785145405042,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-3.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 2620\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-a3c\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":2620,"size_decoded":2872,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"bf7ea8e56dc8a1740fc75671cfecfdf0","sha1":"bbbf6dd00d6b4455857215a31a59adb0e4008533","sha256":"5f6ec65a927bdd41aaa4d83c0dd2d8a564c15936c95463a422852e7199aab33e","sha512":"b5077b68ee050c69b1382e90bb67963cf436c7ea7b0ea221417293eb3a1c2355cfb56d6068d66606991f8dd200321797be5be4bc62f08075adeccadbabd7109b","ssdeep":"","tlshash":"665198d543f4d3e89511fba08ee869b5220b14dbfb5b809413e409b4ed8615d8905cc7","first_seen":"2026-05-20T00:20:36.595061Z","last_seen":"2026-07-27T14:04:41.070279Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSI0MSIgdmlld0JveD0iMCAwIDM0IDQxIiBmaWxsPSJub25lIj48ZyBpZD0iTGF5ZXJfMSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjg4OTEpIj48cGF0aCBpZD0iVmVjdG9yIiBkPSJNMTUuNjIxOSAzMC42NThDMTcuOTY0MiAzMC42NTggMTkuODYzIDI4Ljc1OTMgMTkuODYzIDI2LjQxN0MxOS44NjMgMjQuMDc0NyAxNy45NjQyIDIyLjE3NTkgMTUuNjIxOSAyMi4xNzU5QzEzLjI3OTcgMjIuMTc1OSAxMS4zODA5IDI0LjA3NDcgMTEuMzgwOSAyNi40MTdDMTEuMzgwOSAyOC43NTkzIDEzLjI3OTcgMzAuNjU4IDE1LjYyMTkgMzAuNjU4WiIgZmlsbD0iIzY4Q0RFRCI+PC9wYXRoPjxnIGlkPSJHcm91cCI+PHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNMjYuOTYyIDE1Ljc2NzdINy44NzA1OFY5LjU0NTczQzcuODcwNTggNS4zNDQ1NCAxMS4yODc0IDEuOTE0NDYgMTUuNTAxOCAxLjkxNDQ2QzE5LjcxNjMgMS45MTQ0NiAyMy4xMzMxIDUuMzMxMjUgMjMuMTMzMSA5LjU0NTczQzIzLjEzMzEgMTAuMDc3NSAyMy41NTg2IDEwLjUwMyAyNC4wOTA0IDEwLjUwM0MyNC42MjIxIDEwLjUwMyAyNS4wNDc2IDEwLjA3NzUgMjUuMDQ3NiA5LjU0NTczQzI1LjA0NzYgNC4yODA5NSAyMC43NjY2IDAgMTUuNTAxOCAwQzEwLjIzNzEgMCA1Ljk1NjExIDQuMjgwOTUgNS45NTYxMSA5LjU0NTczVjE1Ljc2NzdINC4wNDE2NUMxLjgyMTQgMTUuNzY3NyAwIDE3LjU3NTggMCAxOS44MDk0VjM2LjMyMTZDMCAzOC41NDE5IDEuODA4MTEgNDAuMzYzMyA0LjA0MTY1IDQwLjM2MzNIMjYuOTYyQzI5LjE4MjMgNDAuMzYzMyAzMS4wMDM3IDM4LjU1NTIgMzEuMDAzNyAzNi4zMjE2VjE5Ljc5NjFDMzEuMDAzNyAxNy41NzU4IDI5LjE5NTYgMTUuNzU0NCAyNi45NjIgMTUuNzU0NFYxNS43Njc3Wk0yOS4wNzU5IDM2LjMyMTZDMjkuMDc1OSAzNy40OTE2IDI4LjEzMiAzOC40MzU1IDI2Ljk2MiAzOC40MzU1SDQuMDQxNjVDMi44NzE3IDM4LjQzNTUgMS45Mjc3NiAzNy40OTE2IDEuOTI3NzYgMzYuMzIxNlYxOS43OTYxQzEuOTI3NzYgMTguNjI2MSAyLjg3MTcgMTcuNjgyMiA0LjA0MTY1IDE3LjY4MjJIMjYuOTYyQzI4LjEzMiAxNy42ODIyIDI5LjA3NTkgMTguNjI2MSAyOS4wNzU5IDE5Ljc5NjFWMzYuMzA4M1YzNi4zMjE2WiIgZmlsbD0iIzM2NTNBNyI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfMyIgZD0iTTE1LjUwMjIgMjEuMjg1MkMxMi42NTcxIDIxLjI4NTIgMTAuMzQzOCAyMy41OTg1IDEwLjM0MzggMjYuNDQzNkMxMC4zNDM4IDI4Ljk1NjMgMTIuMTUxOSAzMS4wNTY5IDE0LjU0NDkgMzEuNTA4OVYzNC41MTM2QzE0LjU0NDkgMzUuMDQ1NCAxNC45NzA0IDM1LjQ3MDggMTUuNTAyMiAzNS40NzA4QzE2LjAzNCAzNS40NzA4IDE2LjQ1OTQgMzUuMDQ1NCAxNi40NTk0IDM0LjUxMzZWMzEuNTA4OUMxOC44NTI1IDMxLjA1NjkgMjAuNjYwNiAyOC45NTYzIDIwLjY2MDYgMjYuNDQzNkMyMC42NjA2IDIzLjU5ODUgMTguMzQ3MyAyMS4yODUyIDE1LjUwMjIgMjEuMjg1MlpNMTUuNTAyMiAyOS42ODc1QzEzLjcyMDcgMjkuNjg3NSAxMi4yNTgyIDI4LjIzODQgMTIuMjU4MiAyNi40NDM2QzEyLjI1ODIgMjQuNjQ4OCAxMy43MDc0IDIzLjE5OTYgMTUuNTAyMiAyMy4xOTk2QzE3LjI5NyAyMy4xOTk2IDE4Ljc0NjEgMjQuNjQ4OCAxOC43NDYxIDI2LjQ0MzZDMTguNzQ2MSAyOC4yMzg0IDE3LjI5NyAyOS42ODc1IDE1LjUwMjIgMjkuNjg3NVoiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48cGF0aCBpZD0iVmVjdG9yXzQiIGQ9Ik0zMi45MDQ0IDEzLjczMjRMMjguOTgyNCAxMi41MzU4QzI4LjQ3NzIgMTIuMzc2MyAyNy45MzIxIDEyLjY2ODggMjcuNzg1OCAxMy4xNzRDMjcuNjI2MyAxMy42NzkyIDI3LjkxODggMTQuMjI0MyAyOC40MjQgMTQuMzcwNUwzMi4zNDYgMTUuNTY3MUMzMi40MzkxIDE1LjU5MzcgMzIuNTMyMSAxNS42MDcgMzIuNjI1MiAxNS42MDdDMzMuMDM3MyAxNS42MDcgMzMuNDIyOSAxNS4zNDExIDMzLjU0MjUgMTQuOTI4OUMzMy43MDIxIDE0LjQyMzcgMzMuNDA5NiAxMy44Nzg2IDMyLjkwNDQgMTMuNzMyNFoiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48cGF0aCBpZD0iVmVjdG9yXzUiIGQ9Ik0yOC43MDM0IDkuOTg2MzhDMjguODQ5NiA5Ljk4NjM4IDI4Ljk5NTkgOS45NDY0OSAyOS4xNDIxIDkuODgwMDJMMzIuNzg0OSA4LjAwNTQ0QzMzLjI1MDIgNy43NjYxMyAzMy40MzY0IDcuMTgxMTYgMzMuMTk3MSA2LjcxNTgzQzMyLjk1NzggNi4yNTA1MSAzMi4zNzI4IDYuMDY0MzggMzEuOTA3NSA2LjMwMzY5TDI4LjI2NDcgOC4xNzgyN0MyNy43OTkzIDguNDE3NTggMjcuNjEzMiA5LjAwMjU2IDI3Ljg1MjUgOS40Njc4OEMyOC4wMjU0IDkuODAwMjUgMjguMzU3NyA5Ljk4NjM4IDI4LjcwMzQgOS45ODYzOFoiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48L2c+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfMjM4N18yODg5MSI+PHJlY3Qgd2lkdGg9IjMzLjU4MjkiIGhlaWdodD0iNDAuMzUiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA=="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/09/home-hero-right.png","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.968Z","timestamp":1785145405968,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/09/home-hero-right.png HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/png\r\ncontent-length: 31859\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-7c73\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":31859,"size_decoded":32109,"mime_type":"image/png","magic":"PNG image data, 280 x 649, 8-bit colormap, non-interlaced","md5":"efc2f720947266f17311fb0e7f75688c","sha1":"5b4cf07be7e36d15c5c316ab79e4d529a8c07e84","sha256":"5a7cf9c52f285c30b5e140269573e61640c73336d4dfb01433986d0fb936a487","sha512":"27315f25549645839fd8be8c8c4486b783a3443eee8cd2eb5f52491ac21a8ba0ea98a8c953542ba670393bf47545fcd5ef6df41748aa2804fa8ae5b8102d1d8f","ssdeep":"768:w3o5vdlzvJ61/7Gg0UakXcRXTDPUGHmzEZr7i1PSaugNBnI4dV:wwnF61jGgfakEXTDPU6r7idu0nbdV","tlshash":"16e2f1e11ea46f233168e92085a2ae1cdafbd447cec349d20f7d90e69df81605fe0725","first_seen":"2026-07-27T07:14:06.746202Z","last_seen":"2026-07-27T14:04:41.083915Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAARgAAAKJCAMAAABXgsbFAAAC/VBMVEUAAAAsLCpoaGdkZGNhYGArKyotLStra2orKijQz85cXFvS0dFtbGooJyWfnpwuLSuHhoRMS0pGRUOysrF5eHYyMjBXVlXd3dxAQD5aWVZVVVQuLStnZWIuLSt0c28uLixCQT/Y19VcW1h/fXqfnZuOjIlKSUdJSEbZ2NYbGxnU0tC4trSqqKaVk5Db2dfo5+Xn5uS5t7Tc29nv7u7S0M3////7/P8AAADp6en9/f37+/v5+vz3+Pz19vvv8PT09fnz9Pf39/fz8/O1saz19fWzr6ru7+/x8fLm5ufs7O1EQj/x8va2s62Df3kXFxadnZ7x8vlBQD08OzgbGhmxrqnu8Pivq6fj4+QfHh1TUUwpKScFBQUTExI+PTpQTkpWU09NS0dsaWTr7fZXVlLh4eGHg35ua2YlJCMuLSwiISDo6vVdW1eEgXusqKQ4NzZGRUI1NDJqZ2JkYV0yMS9oZWC5trBwbWjR0dJmY1/p6u3T09VhX1vV1tdfXVmpqapbWFR6d3F2c27Ozs7k5/OjpKTn6OympqdzcGvKyssPDw6srK3h5PGvr7CppaCbmJNKSER/fHe0tLXb292FhYUJCQm3t7h8enWKh4LY2Nne3+CQjYjd3d3Fxca/wMLHyMifm5bd4e/a3u+xsbKin5uYlI+KiotHSEl4eXu6urtgYGPCwsPa2tqQkZJjZGhQUVSOioVsbXC+vr+fn6GVko2ZmZidnJqTkIuMmsx9fXymo55UVlu8vL1wcXN1dXWUodBMTE+CgoHDv7taXGF9foJoaWmUlZaioqGEk8nIxcCFhoubp9NnaG+Njo/O1Oe9urWirdbIz+aamp7T2Oytt9seMHC7w+ExQXvCyeRyc3m1vdygoaSWlpooOXVcaJY9P0ensthRZrHFyttMWoyvtcx9iKxmeLrX2+lrxmZ3h8JseKE/ToSepsGK0oaNl7bl9OPu+Ozb8dkqLTnQ7M56y3VHuULC57+h2p1ewVlTvU5Mu0ev4Ky647ZBtjtDuD09tjiroPQoAAAANXRSTlMAq52jqbC2mLgJrRYUu0ukb1BqKY2ROzSD6SXv2eLFz+9cyqxvkN22eu3PldPRrtiysZeJ6En7HMoAAHjwSURBVHja7Jr5b9JgGMc1xgPv+4wazxhvjWlNADUxGoZa09a48tKOkiptwyyFVq0yBIm6saigIt6aeMxM8T7imXnHH4zJfvaf8S0biK4VVNA5/f6+hPezb5/n+z7P26tsWcZNmzm6z0CoPv2HDx1n6fVfvXoNGjdzygRFFIEiS4QkKwAAYvb0kWMH/9t4xs2bwlJActZ5opFwSNNCobCfc7G4rEwaMGbE4F7/qMYt0URAsFxEC3FJRgC8yAOBSdZFQ2qYYwlhUr+RY/9B4wxamOEB7vJrYSefcKNFcqdFps6vhjxJWZg6fuw/Zpw58wWecUXUKJ9GjeTGBDYU9NcxyuQxI/4d34xafIWS2YjKUej3hBFRX8jjFCYN+zcKjmVaQ1hkuFAEoCWVBqymRZOy0m/kxF49XIPnNfhFPKpFEmhZSgOXpnEBeVLfET2ZjWXo/C0cj/tV1o2WrQQIBFXom0k91zeDZtxxaCLuD+Loj8ktJiNBPyspPbOJD10Qd2QpIqoG3F2PnsB4SsQSblM2pDPkjdQRCmzivXqULDMuOmrXkwqnct+cPi08vxuvrVm1Yl2NI958zK+Y1R86oHnDLgJMHt+Dvilol+WOOOBhn6HRYlFXd65EvpLdcfyZnDZp4nhkR8TFCJPH9AzfDJr1wLHccaaexMNB/quDfqhBjGQ/uu8mZeIbOapqHqcyuQfcqIYuOOtw1Na+ZBQuyBYXjic7rYipao60YiZsFJcPspEn/+Xhb/gDB+SypameDIR8iSIuz23I92W79oY2CTgC51W5gDKp91/LZvCM9zqWU2cesILf60QLojfmuJRmo5iwUTxaMArZ9P0rA87g+VuWQy5nzjSd4AOqt6iovkDKlO3sM2DChmfVvzT8jZoLsehcrvsaQdRbhxbUWmhGVvvKkmziL2TUWBSref0snFL8VU3cArnon9H1ho8Zggg2fuk0gVVIXndaWrKrkJI6+kEyyX8Y44VsJDB1/N9SbywLc5/R9ZM745ltZJ0vXDhZ4iyS18o2PHvzxjqktKxH23G3WTAOq/466W+Zbs3RsUC7xJs+ujaAcCOD5nXTjuS1Sr6P1LQ0I+Wptj1g4htSigRzl4Yx3f5CNS1XXaBd3r9M7Q1Ivr1kwTC7i3zQCtv2h5u2zmpiL8lmRXtbwuQmTnjUkAsXunn4syzK2WVn0/uPmzyXQbJRK/yv3yBFuqa8a3gl7G84YoX2ed52HCmtmoMcaVZvosEwDMbdefK3VOeyO37+5fZtt1ynqeheT6EkxJEirTre4vSDU838dcT2ScEhNOuKlSXZ7Dr4hDaMxTTFRCAbXOmuwXicXnV1u6x5fNofivHBGIF2irAVl9Sr2RWOPUrtyiNroXnar75B9l+RW7aUFf5uGLBJ0GSClDhfCAZjZdjI7sdm4ZmTHXY5XO/Fd3iVHTER7dQNpFhN0t34zZvrdBe03V4BwZxre041lRn+nr4RuvaoNI1hmMxpWncMf+MKdolFkkTGj++NFUrmHqRYMMgIynFkxS5kn7ITufrGum5XEwRTruxnXwNDNjQpJFUtykrykO4U/pY25Oxyf6sPLkGS9QE21pivvdiub+tF/KQVOcDsPyi0ZVvfwBocNwRjrqZjRr5JYDQlsDk2k7oNm0HLoF1WP34I7SIBKnJC5jJhwxJT0NEbZ2y1zTcAaLeagzHX0SuKwWWKprGEkNTDHyF0j6notKaX2zffP+aD3YEXycbTIJwpNKVnJt+EVc/BbwL3bYZgSqvhE9E1/Om+wfgkXG3mJsZ/PPwtfLn+8cNMOCkDkSKpzD1RzRRGDgeQ72jfC+gnkxpTWqfa2wxH7VhCDIR9YReurzb/JJtBLzdfOAHtIvAUSZJgw0NxR0rO/87vHtq6DvkFMFBr3xqwSetseGcox+ZPrsSnbbqXswtFYhCMVH+ab0wJ+aCxpfThjjUgv6Ca5pukkW9ojGSiaohz/rnJ37yHPg8jiCQGRZKuWydALJMfg/Nry7hI6/X519g8oQ3YwFosypwXhj95cu8/EP4s89UOu3SA2Xu5XojF8sMYyYr8Ftnu3DBgk8agceSoTw9/wpDfzWbULTxnl04wt+6llEwsP/NvMwVTBTatiqFvaEzyaCr3259SDA3m7EJ3cCEv3YrJmRhduFpXRdZ1a9fauzK3n3vEmwVjV1DVw99vnIoOZ3QsdB7M+q2NUmZv/kZwFamC1u15JWKk1Lqxtisb2/lHBtN0nU0CJDU94IDfxaa/iNG6clwo6mO9j0gVwLxAKq/alsJ58ewpW1c77T6moIYBhxadmjfiIn7P2nd6MRdRfLnBS6Qa86uTK5XnclJGi5RgPjTYu7LZ+Ykw8E2CTqC05A+GO1biVS7Gs7/iwr9MBZkvYLIV52Jr6XJe6VHcbhCM77egxsJkD/QNXu21L1MAQ4k8L7xPqfgXMJ8qDmZn2mhzoLw+v8pg8vcJBmNDJRRXSKvuVHQwKPgFcgHK+5TmTO3I/572ioO5jRrLDZ6dW4F00f7mNrOVOKgLdrz5q07AmSh2NqQcF0GCYAJVBLMOoKZyC7fvGLBxNN802zQAl9rBpgq+GUsW/AKAoDDwUwqkGqsGxlHiDSjZ2lxj0MSPtJImMHnWG4yysjCg0uFvRMEvQBAU2Xl+g+b8AmZjpcFscaOlREaajQLO8VZgwobSV5uspFQ24Iyk834RBFmWXB89MpVMVg1MrRstQyS30WHA5s5t3owNE9bDnwxXm5UDQ3ZyURSZIAIPAwrplNBqgdmVQMsT1tZuNPI4d9WUDQHZ5Na+lfHNeJqkOv0iERIg7gVkqopgVipo2UoEsrvtBgnxBWFiO5qBUwoY/qZWYu07ButoRwrkIvC8EZjqt2tzNni2wYDNzisEasJGiQZDrtxq0/KrYDrakUxIPATEHIp52XqtemDuuNEfU1p6YRiMswGzP5A9OzT9zd+vrTbHkJ1cFJ0LCL2vV5MbdrirBmYFif6w3PKLJoNgXJNtcZu++fPqbGDAsfw8mFybloEIwSh1O95v0NgvYO4iFddn7u39pa0rDgA4G2zDdazdezDGZD90f0GO1ZOHFuk0obEahq80OnV5SuILddZH56u+wFnjZpmTbqxRO+t0+ENxhnadHSs0MCFcaHfvD7m5BJKQH/of7NybYxLTe3Nvc5Nt7AstSiX0fvh+v+d7zrl6xSGkD8ZtMy7Bwbi+p3PEZjS8mGXevFXHtherjW001aZ/AOabuqIsw3LANxirh7fcAjYWLXqyDuf7WZ2mn7QhFwtysXXPmziYnvzCgMnGoqzDcGupkmfHPrehF/xNoXkzeh/yvWe/hTlpQenC5ktNc7PJVN+Le0weYZQbRXKiuwpdp/NtGoQGHIupC71jnJiLpcNYbCis2nnWpf5K/jMGXOsukhUdS/xtfX2/TqimTJ09TRffO/ksl77PTbPHU8555BKHaUc9xpwvGCxjlSfTeFvgKgv2CQ7G1qYrXSbr6dcl07wwbbM1aJELmzBcxuS1lLBMTZG82NcBIGTzW0ejwOuQ6LX9mvdfOiEZpnseucRhmvINg+Oc1y1TBs18wjaLHQJrvsM8crHwVIEkGOPF+eMwncdhIMhLrLY+O02j2+1ubIx/OSxy5L5Zzf/WftMVR80Hp6T0GKsrxaXpi6cyBipVSiXIQyw/qJ5+RhfE0uiO/9/0V0XPxDa1vLsp06cjFz98VXxVsrpcqTBs802H0ejUKpCHUC7/5TFKh0Eu8YjfHislnP5Munjs9Y4r9RefPyEKk54xvDAahaK4GOQ+lLWHUm0akQum4b5dkLY3G+e5aTD09rgKXxUtJeyCYdCAxw+jyJMNrHi8p2+UBONm40hmA0rFH76nT/+s6i8cHe8WSINBLq2tLIxQxnCRn7ypGHbYxGyQx7TRGJfh+mgtkByquT1DWqvp/FR7+g2pME2tl/9o70qBeZyEQSR5osE2c7fqGkV6jL7uiRGnDF6YpEdtlcd9PGm+rH//tYwwyUpqFYUpYSNfOOpvD2wZa0mvNxinE7W0/cwb+9/qjjXhrxzON8Vh6jPDYJVEZG+jnFBlsvF2u4Vhntj0CAYv2c4szuIPO1LLqdfsfKlAGCaZMCzMeREY2TYtdDiozpQ3K2tWt4DMkyf66cQs06DL5oW/w4aUD2w217x8Qghm/jhMez8fTHnSpQyFHBs7QZL0nyBTlI4u8v5SJbcuIZc4jEWdXcHeT+nD2svNHxUIwiRdRr7iSsnMB4McYEmxojhOA2EWNhgmFqCIAFdVGe5ZBjer3TwyiAUF9421NNtbv/3kJ1u/RjIiME0JmF5+GFgGFSiQDZRhg2BAKUXbUVGFg5nG17LB+0+d6HIseFfgyX4JXHcmPrHhJ9NHJ4RhsAsL058BpgyxyLLBMCBABgF45CdDIsPfN4ee6afGGfG3mqASwJWKTNv7g8aETLvpZZ6cOZkOc14AJt5dihGKLBsM00IwQEcRZBQAZSD2iO0WUCjxH/P/UqV+mU/kRx0YGFX17f2itjqvZSKfMySq6bL23QIBmHoM4xDKmFIOprwcw+DIot9gmO+IMMoaJkwpQYggCdoHIMywaZjZeHr42+fNhI47Fdu273f0nooG283M73Ylyqn7svN1vlJKDDEjCCZDxkAMI88GwdDBQNgfhQzpCxLXQcCPmjHdMhubzbihmkuzsQzyrsYWy9SB/saOXlt7BKNSq/k7WcVWEQ6X2fk2P4wJJ4zjS+GMQTBn02Hw1vKZbFSxiN/vp67PEn4mQETBWIRRzTK+EBlkHwICwdCtpwzGHv46UVttU9upMMqFWy7n1sM23h/eK8Jxqb/wxNMwR2vSCAuTKWPKy89iGEGbJE4mGl/wkR1GSYom/RQEQSLsg4CDGaOiQK3MOBg79e5pY/Wm0AyzcrfNmwoD9w1OT43NsljJR72NH7TxsuODgnSYRCXxwIwfhzmLYYRtpCcOZOhZdYAhrwMYoIkgCwPBBBGGTDj4ORAOzdXRvquqDEsxuLq2dNNYjWHAxPry8uCK17bHpRjUaY7J3Ds6KT/f/DIfDHLhYIaygclyoVLaIUoRIuqLtrSEibEQScd8IQRDERE6COQEhLq73gkMA9QHDd33ltY7POwxxc4t7+9XU2zUW4mlqfDttFUpZU1yDJ3HPUYURr4NzptwKMLY0VgTIiMEGSERDD0bIwMQaOwqGTYaWLXVF//yL+2W1eBdrUGHS0rv1OjSA+/ucmliGTs6NG/qOf1KWsYkK2mIhekShSnOoQ20KwMRIuJHMMHZIOVnYVrsBAMDVISOtgAZoVMeHfUMDDy0LdaiRFGtfd+wtbmy9NC724f7/I91uM30mt5Ng+FcMEw73l2LZUzJmTPFOcubsWg4po43X7aU/HSYZOw0SYUJagzkICZqOibXUfqwMHMGg97meXBzZ3Ptxihn8wserY1fXHw1HaYJt96hSxJhyh5arfttOew3EFyPIJgJFibCRAgfmv4uQF8kzJaT/QKUJzNjuasCCRgU+jrP4rcrN9Z22cXtPn7a5qEPC1JhTAmYIQQjrfneNGoXPc62ivGzqRbyhr9PWjAMrbJHmKAfOaHhOIDUwnRIHoxyFLkkYbBN9e2lmRuIXK3FW/ce7an0jOFc4jDtUjJmd3q1pNKxMWUbzW0v1jAMypiAHf0hWZhSOgxACE2CEMDQJ1D+yTKGwTa2tbvs5DdqxFsDc8qYd7LblIS5dOkzVEop5zGTAjBVxjMKRcXCqmG1BPfiXOWNEkYjJEHS6JwP9U6UPkoYIyn6AlBSNBNQyZV5sN5g0CdltnZvgpRi6jK9lLJcm7ipNw7T9RkuJRGYUeMO+8h9+gPvQDGSSdWRPxj/GWMCIEgGIRyLUEp7hAoQAQRDEASjAxpZeTN1e+HGFmuDYQ6XBlLePm7oxCmDYZKV1NWO765FYEo2PGeKayv7pqs91trygbYEi/hgLOlUFCIehmCiYX8MBP1RTSSGYKjZKIG+ZR7Zs7eBO/vexwv3sQ2CmdlnF/Vx/MAjzW8mewyGGUEJIxlGUet03na1ruqHl/XDv9u6d9E/KxRnKzMDpdkUixRVNOInqVkN5ScYitZAioIwHLkQ9ZN0UCnnwnx8e//npcM9ZMPCHCjZXubCL0P0FhYkMwYnDFtJCKa9R6SUsMyas2Z81LB6rmGztmrSsLTurfx4RVsrYTCWbqPz+T5BC1M4RpOkD1IkE6QIe5QMojFHKWvLcG1yf7tq/ed71r3DpTku/VbxEw81v56EiW8HRliYfrbHiGUMrqaPz5UsN6yca3jobbij356crr7l0O+gvJFmA6UuVAEqAEr/jMTYPZTfH9ZEieuqKPkIyAvYNrO2v7sw9dsUzqM9vGXqP11wBJNoMRhGUilhnMHKjztutHrm9FuT7sW57UbrzbI2/DO52zRAbit+gaLGaMoOosQsO9nogOyoWLi94T36nGG8MTBrX03AsNsBXEkY5ooUGNxTfxxcsriMW+P6WsWKYXx503Knj0dG7oATCocoCqIDPw4GRMkQyEXoShNf4TOw6pGPeGD6e0Qzhu8ZB3/2HozrKxSrdcvF3u411zk+Cdl5E4hCNc3AOIzfB3Ici/jVGXPhK3hVqsfbgQSMSPPle0RYOXDrjKLP8G1xX4djBTeaXNrgiNITqPmO+WgilGuYa9PxWuqaPxWH6UYwuMMgmK/FBjyhJ1SgS8qyO5Zfqqq2XOVCDvIHY40ugBZx0s9cALmOLVxLXR8VHGXMSAKm8+tfz3dlAYPjzPDKuMUzvSxiIW8w1gRiTFSXY5Vk+9X3Fr4Rz5gmDuZSF4Lp6RTNGNFHXDrwfiwCIWAjfcCB3N95qiWH9jWu+cZh+nu7Wi/1I5hfxXqMaJTgFpNbm/xHGd4wuVqfxzBswnz2Q2d1k7mn86dfZWSM/BC5achvHOCbvM7TSZje3q/MFtt876c/yegxubSB/4LNJD6vMjvfifcYlDDm3q++sNgM/eZ8Zoy8RTz/0ebG15KuUxwM12KucDBdCObYgDcsEeZ/YaPCL6HNj7zMlVIre8+WAtOZAjMjHeZ/YIMnmY6e0wmYntSM+Y/A/M3Mnf80UoZxAPeMiSZqoonxV2PiX/Bqn3fQdZpxDhVvLFZR0QqsIAstAnJ0aSUUuxVBLbDQRcqyu1i8FrqAoogHEFFcAuqKB9QDQzT+4H/gMweMUGGHmbbwZF0BTbv58Lzf95h3ybzNKe1QJj/vCg3msFuFqa7skjNm38Bk2OYt7Tl2uZy+V5U9XVx8uNrX6ivMVWEq9hWM8U2D9br3FrXc+BgFwxdH0mG3DHPwnv0JkyEbHab4kcu2wFQEuvYqfEGo8o7bjGyodBtIE8wj9TchTNnh+vrD1SpMeWBkjzIGjr1Tury8/JljV5vNFNsMrd+Kdt+wDlPhGwtg+Cow7r2AcZxc7ntVHP/0gypCLNpYhymruF6FqS2uaBjzIUz+XsHAj6V+IAIr/PhxjdWJyvpQchY8eYUGU92QrcD49giGfnmKArS9Z2e++MBucRK3DpNbmXcNwhQjDA4lFSY5Y7IyAvPpEBCw/WAn9g+8RCvIrI0O81ig7DoZpra2uLwhO1CYizDDSscUZBoG3vsRX/loJyXg/YABS4s/6zAv6TAVCIMdU7BXMGTqe0pI8KREiG1ZyV9wuSCzNjrM677SKxUYN3ZMyTqMcj8m4zB1yw6EWUYY9p02/BzYN4scmV386TCPBh64EWHq3e7iivaxEwetwlhBY778CjSYD36QX6iq8DFvphfGOsz9V6sw9eXtJXcW5t5TKcOYDF8g7FELNIPLPVDzIY8rmuU2wFebzDv1JmR204AwWlUeWoepHqsuch50tjf0Y8aY7Bg+GLdbaJu25TBLAdivll/FzyTP020em/TWiTpLT2FMwhQ8eS3C4API2lcqHy87+GBegwUY6PbWtFFeMitDm5ZPNXdGvnjgK4qfee8p9TzWF8/9uHSQisLubajeOCZg8h9XYKqr3Z4yZ5HTE/BZ6Rj7tK3Z1jYlAC+AGR3oPLX8wD/LUwrD0Idiz9NvTz5tD56+t6jUC2D6SQNg7RamArfXMkxFRZnHUx7w+ZSOqTYLY2tyAW0SbHGv35QMAUekR6Tqh/gvf2mwtE60n3yvKa+ubzJG0326pcOUP3ERwrjxOVvDk/m+QMCXNJRCu4Cp6uEbGWgSOBcrX/9lWNglS9LgahYnyzyh4hPg8hd+7JkWImm20TtGgamtqMivKCgIyB3T3v9JiVkYzhs8Y0cYAsK0HYTGoAAstTSJo24k7gh7hs5EDrr8Hn9Rp2sgjTY6TPXTFyMMPrHOzy+oVBqmvUVd+ZqAASKEJZBhpCbcIff02UAc6uMBgFis4P2lkbKQWNjnrDtW2Hyq2QVcE58GGx3GvQ5TXoAwcsMgjNmhhCX3x6ss/1YzJTAwHeyO9dj6mPEIa0VFduV4CJflFUUKq07nxh70OEMxZ4wA6bbRlNroMMVPXyLDlJfnI4zPIoy+zov0tUm2mN/mHahim44Ga8ZB/jKYlVF/r4sfE+78aCw3dtD72qHXHv14EOBDz4cDTAr7RofxeGSYaoRRG6ahvdUCjF6UF4M2b/fQuJ9p9PfANEfg9LidWK6qj/NyY0WdPZ5B53t+Ap8f+rw0Zm5hDFg7wTgvv+DC0mp00WBaZZhaqzBYUje8GvIfDfPTNT0wJBDbdHeIit3UCguguNBXd6izuai7KAYI845DxKwBcwtjkGtbmEsQpiIfYdTolWFKah83Fb7J3yOAWFObGKYI42qDoG0oNgDEaoHNPnjSUTrFAnx+T+kp1nVvlcYNkAS54xUcwMIv/R/M/RqM3jDZb8jTtQ7TZ+3YAewsDY3fy8owbXVB6LORFBTwtMkzgDBvRuL82w+Wvh0+ilED3s4khh2umcgyGs2tWckrXwUGXdQ5CWG0jLEMoxc7KNr9fJCG6kIwUKN9H633jYRDqSjospe+NVj4Uf0Zpo6dittF0P+X+76dnViMZm0TxmrTqDC33XZ71tZ1zOUajDyS0gSDBRIMDMRtQRioEuo4ICmqqg/LPD1vnrLnffT0Cf5kOFhVc1LceMuF1URidTWxOrtw6//bbIwmEG67/cCtTDKMuohRYLJLWtS90i2phMECetRFQ53eV5mIN1RHAVLSOSD0HPU76x/86PBr/P3B4s/efKyJ0wbQkdXEtzlZ9/1xFm0m5g5sZwNYKkwWs2mBp8LoDVOCGZPijtGLGxhgCVBHvNsONFV9A1Vf5X00dnI8N1j/WdtLh7xjjII+m5hX3+HW6Moa2szfl/yGFGtHmMqNhkEY7Ji0wOhpyEwzQGwiBUgRTf0px8eexxCms6jOVlojfdRJslZHGdlHteldXEskRs/lbJ22tAS+Kxnm8CUKTCAjMPqJFJUPuykVeUiFC7z1Fti7p3ve/KzbWQNjr4Vy60hO4luil26zaUwBuw2MljH5/xlJmYBhEEb9wA6ClILGoXb5dxCr2EPviM2lJ9+kCLOQ9LYvfotjag70r1BObRlhWxi1YbKxYZ7JBMw0/c/mAXE4SFXgiPe+ypU+FsO5OjFPkgqYIxOJRfofGJbZCaZAHUmP3JmPMFr43pJOmEa65eSPApeqeYrteeckB4SursD/RRzMJxZB7zTuPDDo0uouznM2KB3jTn/GJE2cNluK5in+HWeIYM2uJe27s37567fbYA57SYdht4E5rME0+Com7yjyPPlMRoZSI/2/COVcdpKCMSUdVdcxSSEDf/30zTd//gIrqwc2w9DbtusYn6/1czyJebKoqKMjYxmTXJQSSaSpmsMntrbMXX9+g/Xd3IHVpfU3FJSQ2Ram0teQ397e2uV25vo6juNQynTH6AUcpTYhJTA5q2c3/1lf+O4buX7OWlxl1mHs3A4wD1T6CgLt+Ow635lbqcEU3JKpjEkujgeWp8RyLSRWNu0gDygdgz+r8cXEi5thtln5PhDw5aPLWBfCFGSkYxDmPHSSQDiGWKy5xEyUAb2H/v5Gqd9uTZzbqWN0mMqGWgWmwJmbvxWmLUMZk1yCg7U6UfWuJdaWXtwAPqK2zFLW6qKhoVQa8BWPYW3AVKcbppEaPIkURWsPX+j8aCKxttibpb7IL7LMry/kJJaMdcx/YAoyAtNEjZ+Ocg67pZVfzrnR1cTaSvRWkFvo759/n4OFxNx5YQ5vhXlXG0q37AsYLGBYwtuoFZycuQk8lDmLNgBZFO5bW73vfDC1CoxPgZn8SoHJQMewmDG7KiowVOKIhTqg2vxxgLn1yExiCQzCNBSjy6SSMe/un4zZVGCXgFp686w/ZtFmDQ88VxhiIHx1mK/WYSpe2S8Zs4mGUBsPjJUFzq3RszMzswv4EgYyZjNMQdfxr0v2T/gm4wguDqwfIhqHQZfJEXnl2/X+19nu/ZYxW06wRZvlIwpDGYMX7+oVmAIZ5rhpGDCRMeZsWKAiZ8nGyDoGYdrrJzPZMYyXWj+PshOBh7TBVGswtTLMcIEGYzpjwOBQstYx+oaKA4HBd00LjN4xrw1jxwSsdAwwkomMsVSCSIGFNMHcr8McDIy8/7XyUN/MypeLNdH0Z0zyhkoCCmmCqU0JzKuN4Ril1ETGWLOh8iROILXhewkOpXYZ5jV1KI1YGEpSI98meu/lCEBmOkYvSsEmQSo7BmHub2+tRZfX+hFmo2PMwNAqr0T5RoFGBljT5zEWkpRSG0sg1TBaxwxvGUrhXcD4B8UghSaB1sUleXdDt/vzYMekpcDOAycApCpjWlvdr2kd4xt+eQcYdmcYfqh5Sr0A7eUJNA/16YPK6Jmv9aI2O7A0FQu8SxGmFl06+rWOyTYLQxxDnbABE3L5e/hQhDGTMRY3Q7xIgYI1GL1jOqYUmJe18DUDA/hf4ZhdgSE9fjEYG6g6TQddYGIdYxGHumwAYHUoZdeiiwrTr8GY6BjQHxCHeGBpuKkxXMN5HUMDzRnrGL2AAbvIWQvf7OxqGUbJGIQxPZT04ijXRsXY6fEatskfoY0Mgc46auLYwZoNyxKJB9Mwd2Znu9HlxJQC8xyG7+MWYbBEP3MsLNXEuEZ/M9xrJ3z82Gng7KDvlTJTDE8pzxCwDmN6Vko+DwLsjbDXdYwiTHcb9fKNjVWgZUwGCwQbYRjYdcZcemd2CcK8eyL+fzCnzcHod3wl1jt4hoXuMPR1elkvn4mMSU4/VuQJBeMwFcp0XVLiPtFx4kRLSmH0sg34OYctREM1fRDuBLN7JeuTuIMFAIMwT8gdU1JSrcNgxqh/l8A6jF5MJ/V23usIQbhGqBHUjMl8Ue1UFAzAYMZceugZhMGKlztzG/qfez67PuUwWPzpCNMkhAbZgengFAdkb4qywIksgfNmzBMYvtgxFejSJXdMQ8tzX2djx6RyKOnl8jYK2D6uqaN2oHtlI8+N1BDMoWeeUWEK0g2D3zDtPAZAdFDYI5sDvfz5M0bumGdKKt490dXVUlkkw1gLX4MneECAAergyR4UrMz0GoDB8H3mmXK5Y/oxY1pbnnt+E8yxdRjWKkzyXgkYAQRbRsdUdJ7AgZmFHAPTtTqUurBGigoLu1qUWSm9MEzT1gvQmbKB2RmGLIxGbzO08j3UocCMfJTrfOCN9Y55NH0wsHUdIzjwpTNikzM6mkOWFv+QjG0JOjpqEWYqr7CwGGH03bVVGONnviAvMGj6Vze9o7O9MHsuyhuE6XpipKu/uLCw8JmWNxCmOuMwWJQoF6BJWuvc7Nn5m0cXogYyRh5KCOM7M1buPHj/GzJMiYmOsX7bAbQL0Gltm8WVpaVbZxYwYwyFb8e777rLH887WDbS8gbCmJ+VrD+7Bjulop2kq2aXzs0+NRONSoZ219gxXQX1zgfdXS0bMJVmw9f6s2vgJOCEtDTOzRPnFkaPjEaNzkrvdo2MtBR0tLSoMNl7CKPfnSIck3KYrJm56MTSbDSaYyx8ZZjh/v5+dEGY5/ckY5JxeBeb6g2VHC/za+ewYwxtCV5BmOENmIefL6lNf8YYPOp3iAAptMlBmOhcFDPGyKyEMCNKx7RoMOlf+TZS40f9bAon8RcxXrAMZgzC6CMJh5IVmHRcHGJYkKTUjKnoRK8Kc5exWem/EXMcD6oMDKXM3tqkPEN5jliuuVkNhjd0tPlKl+qiwjz8vDor7X3GbD3qB2r1zefPajCSEZgLZZhhzUWD2U9DSS8qSoRSCz/t9NvF3l1ljDYn9Y+oMOph+L4I3/+bxDnzk/jikp4xhmGOv3vIU3w8Ex0Dph/Rgnp3SrSZnMTPnosazBi3AtOFLm9MBibLnNnHVRh9gRfbJxmzyYcDxmEmi2fnjWYMzkpyx6BL5XDL3WVlTyLM5nu+sX2UMZs2mwII/O5eBmBivleVuc0wTAem7/tPFOb2Y8eYhjHY36DAWC/GxoHA7kZmYq5XLswYozAjJTgrHa925pYoQ8lsx7BiZoYSbHzEO9QL0IZ+ACEdXehVykDGHMaMeXIYG0aGwQdu7VZghL57WaMLPKsyug11ScTYPMWM/qF1jGQsfIdbWnEVE59GmAYrMIPeyAAVeEh7xkAOJF2APv9Ehc9NomrHGF7HtAR0mP/NmNsNwfDTUkwMxjnASisMnc3aGlsUbLbz0dw306vVfUZgcCgNV67DtL//8N0lbpMwrKNRAtpkZ9um5ckU0nZl/sDqU0ntoF2A3snmqQ0Y3iDMiAJzXINRz2NMwDTXSF6KMCAN4TtzR+3pgslZjW6zoZKAs8O2MKPrMMbWMU/2D1fGW+Lx9xGm9f2HsGPMwYAwPXCGQxgCTTyB8cZGGzCQjqH07Or89msB0U62uQD94kbH3GUofBEmEI/Hz1geSoQPioAwIMMQie0Oi9N9yASpvgDdu/Yt2akkFwP/8xZHRo1nzBMKTL8Cc7wcYcx3DBYw+I+fJQoMgcjp8cjgAO2poikeSgszS+e/AC0BwNZzqiO9R7AwYwzBPI4d0xJXhtJBFeZxUzBaAf4K8yDQSJAP13FelzcSg9SuY85NrBi6AO3gNtkszCosRwxljAaDDXNmulzLmFqTMHpREEKxKQnwAnRjc498AZr29LApy5hvz54FI8tAjiMSr68G588iC/4ylDGXI0xLfwBd1IxBGPWnzFuBwbJ18sdCkZqYXb4AfYYj4lBzG0gipARmcWkCDJ5SsBJDeVbzXFE6Bn/dZxRG7Rh1KG0O34g5GCVxKc+2hfpcpynCvBqmQWkoGINUZMzKt6NADBdI/zJzr7/JU2EAwGOM/kfFndN2pbUWCJphsor6QWOdt+qM9zlF1LHhAkxlyZs453RsXxZnYrwsdTH2m5IQCQghBL8QP2j2Z/j0Aqdryzhchj5se18v76v+fM5znuf0sCWERQQwbYsFgraPAZiLQcbsrTqd730zwpB3D4nZrQuWOTxDpc8KuGD9K4kz1hjU6BpowgvQaQXhNsDYQVljIGM+tGAuHRjIGBoY+pB3D2PnSye4kDlB5c/msJSQWa9OeBRjfSSOukV3LSUnhvl0j+xKc4Ah94JwaXclXkDljHQoyrPB8KpZqfLTrMBucX/ftklRwnxsw/zmdL73Q8ZQw9CHvPEOzi5l9+Wz/NkKOwtMs2oUDXWaC3hNe7PePy5S1Zh7nvjq42sZ89CkS4m+CpYLMoPkw1+ne5t00r2NWqvmzNw0K7BVtOKff8bDvOHCfERqzC1ljHvI5m7XLIJTAjxxzbU1sFmp6LXKFP/4aqXoRpQK5rGvYFcaZswDD0CDN3eY4BCJRMTGpcn+w+rWV84o6nqjPsUZcfV4AJOihPn4l4uLlYtL6HwfsmDeu1UYRPoYMYYkhfo3xM7oGDVyut7uTnGKUx24UNaYJ7+yd6UVG2YhGeO9AJ2QkER3ZMtd9Z27HLqud3rTXALJFXOUMHBxCGDs4rsCMAtcSt4MisUxZtH4bfqqhuwZGWDq/Sl2sxqwODap8TB320tpmDEAc/8CM4acEox/7Aow1oSE6g2AaTWmGSRAxXrRwjxNMmYRNQZgQmYlhBkpLQHRjffdsX1lAWAq5uS112jlbBX4pF9KKxcrpxbMS3sPrN4+TH70d4BO4JE2Ws3grdG6CzDHkDwTRqpazEEU4YOmj7nbhvnFgtlzMmZ1gTUmaCNZR/0jDjRrhhqB/rUFMDlj4uZZr+bssHiidLvSKWTMysrpsPhCg7d4GBJSAolhb9SpNMyOmUNmRYcwuIkPis2cGzSzEtSYuwYwe1aDt/7AAzASLLbGBAPHYwzr38Trjf7fXZM3ijaMwEwWULRzg6DqY2yYX8DldG+4Xd8mDN15DEIocAG62a63tVrFsFw0IzXxQXF7MhjYlU6/+uV0xa0xi+pjKAL7NvFuW9O0fsfUwEUzdWbC6PVywxBoYT48dTPmoXUfzJeLzZjgUb88/OaRnR7AdM2aBjJ6vzXxQXGXwFAWXztjTgc1ZhWK7y3DTHLmC4WYUeyBqtcBmNYVfIXodCc+jakTGMo+xsoYiL1nneILMP+XjHGDTbA4httdANGv6jZMszcJivVpVCaCcWsMuPx2+dHzj74EGRO2lP7zO3goFu83dRCp6DZMroboVZAAn9VjAsNTHTu8f/rVBxbMBdzB+3z9gUdeeu9/U2N8R+AHaavwOmGw9DC5vyuItWB0nbbGPOmB+fy5xx+/XLdHgv9RjRkGMo7BI76/6cCYGkMZGPUaNQSnMTaLPsFSurSX0uUbLzz+yTrA/I92peswRQsEMgYSR9MaFcpj40i/XavXVN3I6SBjfdDDnD57efrbD68/99xr6//XGmMNgTlNU+GlaTuaftDpINoZybyC3f3Y1IeRE2hgYCmtv3t5+vHDz73wwun6TEsJodvLGN5oaKpqwTg29b4kI6qOt5Gr652OfYwzyJkoHczl5VsvnT7zwXMvQMLMUnzR0hZi0C1lDIwCqhOazZOrCUsykjHFG0SBo9nvdTwZQ3XsADB766899vLzjz4JLv6M2ZgAZu3ix6VbW0rdtm0CL9fGEKzHrmO/eeQ/VYuiVevXPTAU11ltmMu9h356/pVvH3FgYIicDub8JF5Qtraw01DdtCtNUah6XRVi2WaxYWr64B2liRvWcKTRsSlM81gnwVMW3729vYvP90DFgXltOhgkZjcOlS/gnu/+OZ57jWm0gMNjo7ab5OAvFhfDcZBaLdoUpqF7IkrX4AEMxMwwzEGivGFdTkysHH3nPHVE81tK5jGYqNqyRWMD1dvXL0AnlDCapgkbvFVkul4YumOHIMyUNWbjTuJ7EWD2z3BWYqRyRprjSGAUVSdsGnjlfHdksILhI/BYt6Ppzssby1PCwEP9aWDwnR9LGGDOz5hCnElvf/0lXlOYQOKgaTpfztCHuaI5H1UuoKcoSLx2ORwbFU1zULw0PNUJ3vvEZTYYRtzACGCW7jCFNHO+co7f+a2URiz20UwDkzI0kjGOj6mH39uXGLJPqVVntnJYNPoa44d55JEpYcjIlsA4m7lQkJwp797ZSJSU7ZMEsv/SLEtJN1wXwtOrj+oyE2lrE7fHRwNUBjRkUdF9u7cXiYsF88i0xZeE8vMXYiaTVvInGTGbOVsqI7s8WjbTwhRNVU1Zr9TQptVHTHggcEkrWoNlWjUwCdhQ1pgXvS4AA7PSbDAQKF5O5L/4zfpGx19uoRWRkbcLcRsmuJQQq46fKVo1S8VhcW00M3LTTC23qweidU4coKHpY4Iw9wPMrBkDISlM4uuDdGkt/84u+lFkDkpKlt09kkL6GFSvDv/zGywTHs22peJ8ujYpI3rzrY9GXer0dggLsYlOkzEzwARXe6awlSiJP4roszNUin9/XsLBpRQxr1Luz2pmkwmPTiflhMtj5U/txvtmLbPThBPwtK7t6D4cmhoTzBi6GkOPg46yeZY9BJjMCeAEM0arNirDkwUjFf62z3YXOHw27dYNoweqdZs96JfBIX2g6ddtktTFd53ArFPWGHobRY7tSnk5f27d88XYV2NQu99pImfgqwmtGkatfg4F7nA0XRNio1pPCtgKYkIjWS22+tg8diR29uPe1cTRwZDNet2CeQZgnpoPDOnp0Jel7Vgen3yWyB8dkqVkp4le70GWRHim1+GFRi5V7Rgd5IdppQJh/bLW3/qolaT9U2ONnDVxOhrpA51kDGWNcV2seGDOGUM69hg6++IijpSN0u9x7N1v+OMG4iq9qmpWBL7TrdcEtd/0L4xKwEWFX4YaZmfUg0e1aHLQ36kQjs2mrh/ESY2hgCEribLGTIuTySCrpdlWRJSQkbuSunyuhjrVRrdtaILQbPe6gpAyeHQNxtRSgcjVIslqvebtLkmYLVU31arl4rHRd7RNKMcSDQwsJcJyazAkkF1jkLSEcQx+hFzgVch5XVCrpiDwlUatIghCu+6bIVXQ8oVa4zoNvcoip7GOVDjkubuag6GhaNgkYOLI2J/xHY2jgwEUT8as3yoM6WMQY3/nUdHQeb7WMlI8323xvKCbpg4wlQbysHAYYCB8OI1mtZIyhGLTWZNX7WYzNbyXBha1bm3QKGtu3jiRpIJ5j6ykxcCQPgYx0qGRErh/jB4PIcAn5E3K+qnBeQellJECFb9Ny4RNvNc1r1hIkZzR7Jlt05ZBTL0BDP2rpn1EQU6KVUeH6vvHQMYEYd66/YxxY7nKpdeEFJi4YZiWi9AoMioabOjVrunCBNNGNQ1TZVCj2reaPueZNvwhkKjHXRvCxdFcHICh7HwdFVJjbh0mi7zZwPFJIZlO8JwD0+y4P6SuWoOzmE6tQWD8OJrebqKukVNTSTXlPKFEfDU3nKqWyXHFYD1x9DAgQ2AWmDHo2OQg+GSCUzadtHG+qrV6tT14h33xqi0EgyypNlctul1fvYHsLsZzQEHCtdEkKpj3XJjF1hgyHbKcHbywo/BKkh9E76pTi7jvftWuOsQjaAN1qaEOlGoag5yVpA6SJqmqsSES0Gh0fcy7PphnAs+VbvOhfq/LkeCVdFJwbYSWavLunCQYddjJw2Acm1xTH7jYVYZ1ToiBzHnZESMLKkoP46iQWWlBNQahRovzBoCk05yzmrgGtPtOp3Os2Q58ACZYjXWTRdDYOSBWOiWJzSBrOKoHbi7M+sJgZE+N4QyN8wWwKIcKDz+B8RlZ//s13olQm2B3Y3RyhncQV10csnUnqd5L8BpJGAtmD2AWVGMQgk2JZ7lA8EKU34kL3Y51GUo3rQQaY5MiOlrdbPa9Um7GEB1NoYWB8MAsrMYgrd7rsyzIhOAISrTYkzmj0mwQl4BNaOr0ofHzBzn5g5Bpjh3uvQ7z4J5VfJ9aSI3Rq/1GDmBG2ai1hF5tmHWoPBQ2hOafvyuEw2vjvlSO5rYDwBAWyBgHZiF9TKfPsZ4I2PAm12rs/yUkBUJDlTdNL4f/4A8iRrWU3h7WXrKUnlpEjUHtJlEJTZyG1ulxPLd5sAxtXzBG2oSsI/IVbJT/afHNujC1Y7AI0hCcTqvddDfxtTTs39Q2QR3V+3ORNmMeIfHgAmAKyH08oLNhwQ3zJmdUc4NlleSXD5SZbAgMzZmvAwM0pPi+u6AawxoqdiOA49LopP2zbJa5zZ3QNUWBQ/ImqcaoOl+AGbisrq4usI/hTQHjiP0CmqBNWER3loVEckS9GbVR+TNnme650msgMoR55MH1hdUYzWSxHa4NprLh+cSaEB1hI9CtKWE8jLNdE5hVqDGLmpWOa6ybMQQntN4EbaJrO3x0ehuWrvh6M2YhNWYbD55URyIkZdyvbBAHXkEbPnEQ43mKBie4ppJ0fcwbhAVi9s4XjR0iXZhmL2KFmzHuVzaQNiMbYwBIxye0EWwYhR6GLKVZZyWEaGtMu4kibmDysmxCccLWlLAsRNPLhIRyaBCpaszbnoU0e40R30G0NcasRFBkGN467PpQ5Q2vJDhFmagxHp8xrwaW0qwZo2x/k2AQ1VLChgYeXhsHxZs7wQi1ScYVfjnUJrwgyzQw975KVpIFcznDrISYte21vPj1LqaAEaocQiiCIK7RkNyZJG/4nYMoL1A2xpgK5qmhyyM2zDMvPjZ98cWFzMZn+d0zxIy+4y/+WWQ0gWnVkB2Mz4YkzFCJ0iZ6sEM1UEXH39oMZMwDFswMu5KydPLO4R38m4wOs1/iETB/1IxqH7W7aBgRBj49QVBcJJaqwRGi0P1BLR5jQ7krDWFWyVJ6dtqllCmL30vZXSg0Z1/+vCturaHg3yTncUo1VUMjMO6SQmE2Dk+oTVjFSUb5+KZwc/MnTwSzOuhjZtmVcHl7RZR3f5WYtcIXd77MljNIkYMwDNOoGxj5IsJ4a/G1QszCCz5o8gZsNqPC5k1DA56s+A5gZupj5KMYypTKCH2X/XG/nFFKSxeldEgf0zXaQMHAKxjevCExsvkL7XA24/zyKJuoRDFEBjLmcvaRQI6z8u7J4dqd8mdyduPrmHX+IknX+xjtqmj/AcEZaUNeeNSwGb6Jr23ySS4Mh+5JJOljnOI7lyFy7SiRPSl9tyFbF6AvRCb2YyHDYEy2a5Qa/E7BxAnuU26QwkOZN3w8ZBMXBJHiMBxgSNs7v+maFRnpXElkM9mMfQH6vCzlxbNywoUJjBFjE8cCGTdshtHAwjmI+zMGTzIrrQ6WEs37lWgnyfjZeaIk/8gymZ9RKb0dz7NkJAja+GhIIQ4OmzYN7bC5zCswUJG8oagxT7s1ZtWBoV9K9IG28newdQG6kCkDDoEJwQzmTWR0vYlYOUM9UClcQhEGMApl8SUr6QGAmfuTSBZLW3I+tn14gkrnGJOlRJc39mdIvSF7Fd1AtRxPCkrUlhEpii9s16u2jO0y74whyXCeL0lZXNhfyu6mCQxl3vht4EUxbLIhtTjNR6Mcj+kyxlpHg5V0M4woyYiZMiBVvrhzkWBiW4Xfj+LsjYxojA3dsMmGDlTJg01BopuV7AJDA8PKM8BAoKW4/UNit1Q4WhPRGJsxzR/JmNHtzYiNiu485imPyxgYioyhJIptnWSP1mQmNMY0OL6CQzZyyoM/MKDarp91aoxbZd48HXXmaxcZmZlXIOmdk+3vwGZ83jC+gcqfOJgM4nSNMaKHsVHs7fp01K5kr6W5ZAwZJ/fL+bN9CY1PnDAaEuSQgqoxpqwxT9mpQnYl/xDJemBEGc/HhNicn23fGWtD0obo0B5SBPOGp+lj7BO8gUvYds0CjBC1YJzyK2I0b5vDn7OlDE3eMP5NCqGAjXuudeOJMd12/Sw0d65LaPGF3wtgOOSmjBSLyXO3YdfuZE8ysXE2wY2K0IQ0f+yovEFUI8Gznj2J1JhQGEdGgZDYedvg+HfZkw0FMzTNH1lPkdAGxz3dCtfheLqb4U+5LLYM7EohGQNFhmOITExREok52yDLZunr7cJGYowNTYMzjEiYjajQ3PMFGFfGXUq+K/NukZEZ5MiI9mpSXBvMzDdw4otsdneUDcUJDvJ1f2GNMVWNIRnjxJuX/jdZuCnDIo+MBFnj2oho7ja7hcKXSyxFgxNImbAnm0EbDtHDkIw5vXYe844LI0ThV7PuagIasBnmTWzeNghsytmvlybNm/Cnd97mz4WJURdfL8wz7/pgQIa3WhlAiIkYD2iIjf3n56VChobS9lF84noTYXw2QxSSNxxdjSEwweILMMOUARllc3MzJrOujei3mXfiSBulwneHpNmmP9yKhDd/9k4FMpgyYwgLwAQzhshA0mxu7mwqMhueN/L8bTKlPAybiLa/ITpBGzJL0cxK1DCODNAQG0/eSLdnI5+Xt88OxgxpCF4BHb/NsL+JUcG85YOBBi8I48g4NLbN0lJCEkNtlPnbiAdn2ycUwyahCbUZdsR0s9JH17brB8mxA6kxdsY4MkBjpQ3Y7OzsJCQ23Eaav83hd/nJBioSgUWFKZ4rAYx/KQUyxk4Y5wIFsXHW1M4gb0jBUSBuw4Zh187ypXcoBqoxGxUE1bHDW2Ng3IXEsoDiRJLC5nbyBsd/JgPVhI0xoaGsMR9ZLN4aQ55dexo8qxFFnNfGKcWujbfBkchGNbeBCqGhzdIX+dIWNH9TnxjTwwSLL4Fxt6Qo6/5rgU0yPG9inlosz9mG/flrETHE5stsYWv6gQphOhgbZVh8v3omBEYAmEEgjw2Ex2ZTIXnjrTeJmYeGw9JnZbTmSROs7GZ/+zIxcd6AihW0xRdAbs6YaJLAkDUVakOavzk2xv9Sd689rRRhHMCNxssXWjMz9bZr3Z31AgFMFo3HxHQVDAYwaDbWWrWppDaNsWC1tReTxl7oTYpgSFsC4ZYYeHPenUjiZ3G6WxzotrvT3RZ0VF6dkx5+eeaZ57+zB/0VFPTGgkHR2FPQsAnFglnMsw7GtG4QSyQgzZe2mIGRwHi0+VzfJ9K6uQubQAZG5WBA9nCKCnUbXQeKoXiwqXpGPKcQ+4D3igVMdye9RmHogh7dRl8mGzRowBGdhk1cRkE5FM8jFE9noqBbBzRQ5YkNb23TPxjbw9CtZDquKQytGHabb8QhYVN0Ujcw3t6TVBivgiiS4wEuEFfgjdAQyK+3rUMDvNVwEBPM18Tlxlb65f0lE8xL5JaAo4vZhg7GLsMm5JMKYSlHKiEONgMorK0DCD0c/NcmmQiX04y3MEgc4VSiMPRUojB0K7HZ0AHnpo3XRaCCkJMSYSVI2kMzwGUyCY0DWbEq3LBJJ84TaaYgLjFuJTPMB6ww1IYfZjPGsIlwDnZhUOz8TOYyWiwelqHRtqBeVyQ05JOSrQ1kudQ3w3xuVTHQwoZsOVYbaeTQQD8+UkXTUs6PopKIAuXUed5rbJLeDVU2GLO7hUEsMM983SOhPWYIDJ0NLGyG1o3EjyuIIw9HJphMtQmhJxFK+KsVOZFDXL8NHA4jMlXMVyaYtyxgpNiOOlTGCA3Upu8Ql0yDsdPQALEmBjHniSf4mOoN+jO5sicNILWTm90bKjjsuaA9zOOPPfPVKBXDl6aWl6ftmv9zfUHcwkZyeguDNAQTewAmUt4wgt7pdDgfun3TQMJmBHgsEqklDDmuyWFtD9M7rvFqSW4vNu3PEKZA5fYWRozkM4GMuA69+QoShL2uArxpE4oGcwCZq5oN5s0+mC8sYMBalIPleNXLUO7P2Q7G7m2QgBLhipRvIw7sRhEH1UQ5AKkOscmHMwBNqMdQGL6xCYn41i4KCQw2HieBauSbBJQ8y8kAKDFEWqAs+nO3eKGk5debiseqx7iH4bKLGSEDlgp8MbinCXBCNnBEG8lfVoPqrsBtVKqxSgSQ0q6K8JZNsK326pElK40Og84WXp2/3Nr0zuw0lpfyZVPxs4YGmdiM7xYGQqjmm4hLRmI4D3IcDKxnOalLAf8NVN3X2vQWwJqVXrGffCkMhNrlrlyYic/vNIr5wuKXfqAgFzYkbI5rMO4a4EoUxIRy90lFFiViUQPiOnBV83qggvZZiTTfJ/thPrKEMT4I+Namdki7qc3vtmfXDgQvoqcge6AyhU33NnzeHzvXsjoMDIJQBHK86Ll5C9MOx5POmu9Hw08lurxqMPtFAdYOveffHhR3pg+CG5xW40eqG3pDZQ4NklMbtY1xTtJhSNT055NKZC9DNhK6ETabIWc9xhqGLlCFZz6+PLe1eliYWnk7UFrAHIcqKuJsBmPrWxje3S0MbmcgZ8CgzE6CF2CgzUWm4ze+AY9/QjB0iTkkFbc3dwuvysXC1g8+mROWFztVjrO2YQubTm2MXytgzuuPaRzXhclqoQqkMNoEmq95VeurZwUfqnfKC2GRwOxvryocZ2/zmnXYdHlDBWE3NWgICxyBSe9Gm4wwtMeYmu/njDB0kOTz22ir034bQAJzLs3ucmQx2AwOm/T2zv0NFVRUAgPj2Wj6RklJozfflz/9jqFizIuH05f++SAiMAu+uV052hY4pkA1LIgPGf4EB0/T5QDX1NSoCdUO5sfbFfMdGfA+YugxZhtUWFEIzMHqId5ceLCPPCJ0EzYl16GBXkkK+Z22BYx9xbz8ioOKoUtAnHcmGJ+VGvOnC5nLtY4kQY6DacQaNicXqCTEOYd5+WWnMHRBLSksx45mCg/ODopbYV8IifyDNs8zDzgTC1ROYV7Wv1ieSqw26SZ+4POFAkVfdTYBitpiMLyNHIdN4OaVP/cwtMdYzzGMfxRlczvZOVnZn4njtcpibWWNXpA5uYUZS9h00nzpXrKBgRwPgIQgyxyRbLy96dvPfVhZDNe/9YmVAK0aJ7cw7IHKPcwn5lPJDkZUAcAKkFhGCqRKibdXpyqL0emZaujDtZpJhukWRjQFKtc2I0aCl0nJ2Ax4HkUGZBEbLLLYwGq5E1mL7sx4lNX9S32wYrJhrxsaGiYF83LvuCb/c7vhMAIG1wurbDYcSkRCc2dKdHUfsTdw9PxotzAMNm7nGMuKESlMr254yPS2wklm9vTtFBzpTcQhtzA0UDm+oWJ6o8rcfO1gnNhAmN06BZzFsg+b9HVIWjcWr/y5hHnyRo8xmi9zxVAb2cti46hFoqGDMTmsLW7v3MGYJl9GGLONQm3GvqzC5tDbO+S2xzzZt5UYe4x5KQoYs437V/7cDXj0TCLntbOKoTYCdIPjLmzSQ5zauNhK39MphnyhA54DGGAMf8gVgKNbGEBvYbymp+luJl8dxTpdUxh7G2GSNuyvQ9JA5RCGDr4jbCU1o1jWjdMI4zRsmm6obOuGwPAWPeb7GxtJH/AYt5L2d3SwCh2MJ2njKmxSGNtTyXAxHm0ywhS3yddMeSALDVQTs0Fsr/x5TTbsFWNMMEaTGQHmuL4B8EWRQtyhDQ3ir1ncbNqETSR47WAMGvIPPZUYYP7Mg8phw74XY3mCNgy3MOZARWHsmq+OMtrkq7XKJXB00voslQ1hWxuRn+TwxxLEzYHKgIEWMATEoKHpmgWmepFptVvgYf2ihtP2NpMLDfBZOvwx2ZDl1X/klgcRGMlywHvZWJ/+yg6jXh6X/K3Pqv7UVm79L5DCAOC4f7jQZAPViDaSJBg7CQ5J1wSG7iRSMb+yHte4rGSXm/4WqNUftYLVuv8iAYB6WC+FrOpGkQX3Nu5vqIQui5fvikE48MUhHYae16NFApzFgRa+SGx01sH08XaKwDS0cl2XsQybyBWA+1sYYxkug2FoxRgtZvQHVW3w10XseB0El3OgC+MHiUfAZinYXdh0fXtnLI/HHoa40B4zYojEiaP6Wa5RuurBqK0qrqYB0IIgh60C1R0Pxp/ph3jPpruQ7mLAPGf+SxZv6CgUxkm6VqvrV6n6hgGjHEfyxxdhnIrhY+2/F8SN4c9YBoz0wmsDYJ76SC8YCkPfdhgpXWMQy19XTCSQ89cz2g5ohewHnLsPmwAYgQr21muvmSvm8WsYsiiMRcXIogyG25BTaTq009iId/6s7+QucCuXMSTxfdk8b3Xrew1jbCXPDZi3dBiDhW4lKxiJg7w03AZEahf1PNj+K7J91YUJXeSApgIQOUqk7itsmm3Ebr8Bn8ledF0xz/dlpbeeNmDoXrKrGIl8sbbBCgA7j0IdA+bsSq03Acg2TjqZyYcG9tchjWb8mfhSd/IlMNdbiVbMM+9fH9bGcf17F+ZjaxiykEewqBvl4XaroMPk6pHWBoGpK5G63zY0TMyGQ6bBmOjo64VuIjDBPEFgqItRMV/awNANLA1vOHijEnpEYJR64QToMGC9AGwDlTJZm74g3lvGTupvvgTG2EsUxm4r3bQRLJpxCmxqn/1ZbPZgQsfqUVwDNovYTPgWhur0WHoFYzqVaINh7DHsNhiDdmujBxNobfxdn/YHM/cXxKkNXYTl+X6Y994yHdd2A540sLl5h9pkT2pAh8GgeZxq+fGfJxcPFb/9LYx8FzcNL5LVcyEwfSHyI6Ki/+sEhtoMqZudTlI/xVtHO61LpZUE/kigVe34cahno97rLYzBoruYttL7Ogj7cU2Xfd3Q0a4ar/2VJjB4u1MqRmoxrRHSbZTSBri/WxiyqEt/Vnr/Ro95hb1i2G3owttJpRFIHUcShXAjptVTWnajlbS92ZzoYPyiLvPsABiylejqwXxgCePcRsHg4cXDv3OBi876n9GTaqveaSQZnqZP0AY9Z+Qk01Z6pi8S/M5aMRAN/SzLwThxdVFW6lvJR6VYdkut/J1U4rHUfdp49DPJDGP0GArD2mPwiXf4i7+WNooKrmrgpBHIdgBpO38db25X02lwX0EcdscYHcY84DmBSS3LnNWyrhsV5C+wf4vABDpBsP5n5gRTm7sNVFA/rq0r5pUhMC8MhtHLW0jDoR/JC7JFaAD4z1q7GOgkQPI4XVevSqBaxeDOAxV80SgZU4gkHHSNAgMKhekNCPY9xAcO+1TLsJk6Kx0m/6qBZEt9FLnYUq+u4pmAcsc2kJzZ5slXD5F9MO+ywpSWasWqkEThCtRUzrSYAlUVq48e1ur4qra9mdtuFhr1R6ZWPNlX/qAelvpgyHH9UzdDOquY/TAsXFZ92ZV9vpmHloeiZdh8eFIBleJV/vJCLdTU0l+AYY3Phjyo6sKYesxPOogjmFIYBo82ivjzmbbfqBgUQkPrxnr4S7Ui/kZJLjwEwRN7FvrK3zhgXniJwHgGwPSfSh+xwIAluRTmujD80aX38gxpOZETGn6ndZPGuB4GBCZWAnRN2IbCPDcIxtFW4ngUb/ZgalytBnynS1WhGCITUwg5G4xTKjjbsYCZzC3M9cNw2wHvC7vmSxfiQjvpIr9Zg7Ua0tRwR+zCCEXQ/TxHNmoVxJm2kvsgTmGkgfdKbKfSc0MfVPFRVF4Sa7VAcenLItZhZjDHwXPFaaAKkC8ObJwOxuQmksCYr2jJVnIGQxd/mTg7a/qExA0YrqnZhE1JBmNdWKVB3O1WGgRD0zUzDAehXBV8hZNXb1UMMsobWoZNp8v9DRWFGfwayPvuYOgCu5uHKoVZikdrcRXqv2toA/gv2AyA+XggzOcOYciSvUeBf2ESe68eFRPxAIKXOVI2d2vDw5F6jPmtTXcw5oUQgZmNiagLs4nWFw58eU4VpSCy+qMRG/nebKBx42buMbdD5B9OtxJdMHHaKG10YWDOx0cO+VJ7b1m0e8oojN+GhAY3MFTl9R4MPZUCTmDIEsuh7cTeEcx9jpQV8TQenioZk5BNoHIA4DpQwYFvbQ7KSowwNp8oSNkdA0Y+TcgzabqXHIQGVzYCGhXmPdNxPZ6KoU+Fq/vXMPQ33r0NBl44IszjZhiSlZhgZJXn7LewB4qn4mlCnBFGAfWy2bgPDRTGnJV+cwhTnm8EmcoAwVgErSQJ4n3bSIgVxk3FlL9trBVVxu+Tix50S+bebbCEmCvm1qn0Ou0x9jDNjbU6Yv02HT2mRfxEbCBkP65ff92QGQXmDCytiWiMr3lPPlDRH0oBWWFGPpXKP8wvfPuFdPlgH1s2Yfc2cBKhwctB+x5DS2akiplurFWT88XZQ/k8LcBb883/oG4kywGPwhg4evNl7jHZqVzzB194Lr62MHvkFeBEKwd6xmojK142mNevYeiPrbWZYwqa8OppYGqpOHe55jv7tri8Lxk/yVGdVNeB/DgDFYZsWenfrfQ5GwxBgAmfurSSieXWDqTVw7N31oV4AnDibPn6V/ynbbBkDfMb3Un2PUaS+p8y4MbcYoTAzHaE1dPcwuJqyBPVruXcENjebLpf0CJEEhhDxFh2PYaXzbNGICLOEpht7/KWlI8sNcBqXAUEBeUxs8y9DH8YWlcMbb32MBD39Q+j4aqat9gRlrd25mcX1lJTZ7XFzWkJbW3egPkP2mDIkJW6KDrMz5ZbiRNkOHjmxxq/slWbC+0vVqd2az98PnfK5wO3Htr/52wUK5ibFWOcStYwnCzCgTDkPzmEZ5cXdZgpoTClPtivrIvCf9dmYMXQ92N+Zg2RxoIifbhh5gHBwgNNhzn/Ifng4PyH5VezEE7aRpLHXjF9MCRE/kz/ksVAGA4KAMvDbSCQt9f/hZkKN5blwJ5/wnvKWdjETDCv692XwFhUDH3Ihq1+IBVEGwdeA2Y+3Z4LFb9dWApOTobewkyoYl5ngaE2AAMBDd9U6oH6ahcmO1WeO9DePuTHWCDYM/QWZhI9hhQNAwy7DQw1owsEpvlhDfrGCAOVgn8sQVyxh6E0Oox1j7lZv16gYIuH8B5Nys1Hij5vY4wwyj/Mne1PW1Ucx32IzxqjiUYTX/sf3OWeU6P2WtvbZUCgZhcr6Ax3UgIWFGO11m5rkHWkm7S1o1iKSV2foO1KZQZ5CEs7ljTlDe8aSPaWN8s2Ze7Bp3ju5XZHKNyeyy3qb9CN5bKRT76/3znf8/DrbL6spwBBTqmvMXgmU7P4avT6LdUF6Iyyx/2BwzhmOmiqIxhXmnEuA99gUEtmGtTXmDcIaoyBp9ntWzVQZ2Sr2WB9JQaj9awx+vyoMa4NzGazLgoAOTbqFXMIhfiKwOxuCXA/X8SG3spGa2R3PWXgMWfasrB+NWY8Pa4HqyuMI6RbTQWB7ORPdY2RuNSyBAaWlqKKDdiVDXAvXHLUj8uofjI9Rq2VnEYwnvRkg3ihnXj3jnxUqghGLpWqWxhwUnXBbPTsjqcMAKTqF5ElEExDOrBS0jtTwFaA7nKR/FgbeY35ceua73kyMJgNK8+m/qHPRsKzzCgEy86mFcpYMmZziXkdRSnOKZYAzCGp9u6qGA0GU6sVIICIjXEf2RiT+RyMhoGnOLBC6ZPcLEcth4XFoiAL5E0DeSpVKUYxGLxVU8VGt09swBwHKT47VM4FUggMnzFSkRSgqKFkdgiS5xS7O5j3336kophD4guBYkjb3QFooPeLjejXudU1ls0a+DQ9+zkVKAIKlhOGuA3YAizhcUgZMEgxT20q5pAUqMYcUwwG66aazX42pKKAp1z2a0uTlLcIgDbroDxN9GwxGyQym2wNMOfwMtVmjTn2HgEYsgsz2FDVnUnFN03oqcgyk1oBlKbkoKaK7qzWV4YURXDkrwaYH+7ZAVLFkHauwGw4zGYfAqbmZ4NQA8t2EC7MFSBMf14TLGJDkEoIiZRO4nBNBibklmND67aZTZbdv4ZUkOYAvwxTAVRrpgoQlHxEO1QExRcRkURDDsZ9JSJbb6rZ7OcdYQo6YKjkKuZsZQQmSJSO8op5FKVSxS2JloAcTBm9joWrmMiaBloFm1prx8BRLPD6tF6THFUJ5iMRDC4xbyhSTD4dorn0IipjxGyAYMT3en8a2HhQgw3QAjBYGMwbyMAQz3yVKSbp99Jzi7P6WrWYpw0yZpM4NIHkEiDJKdeaC9QHjEhE+CWBeZdQMYECHS/k9ZNzLgI2qg2Vq7HLHEaaIztsoj6VHv6xMiKJeLYtOwTlwPhKE6ifr3EtnV1iQzXPIW8zVBo9rcxQjZ0KLLQYx+JLtFoi5DVGFIvwWeWufXJg+GK+4JrVB+2+vHt1leaFdjABn4xwqtgoMZtM37wjPd5u6Wun9x/MexIYkYnIhhwMl2Cnroy7Zo3RUjzjmSzZ0gmaHo2l47jvPIHZNBCbTWizfslqnQnWHEXPa1g9ICawdzBiGol4SMBgNmHWNkunp0KlIXotX+YRmIxtYt5JfmGG3GwC57KvOa0BgLNkAQWW+w56IOHhJACgTgsooGAe855gCaTSi0JMJVRjSMGgYCeMudLg7BCbswolOJQJCo0aap0n3ZZBgmmoaTanGiecJgfFJds8SDCxTMrkhSGbARBMcX/buL1+9RcIlE7wRC6baMjB4GA9xfRqeDbeJICJOX3BjJ1zkbPBZlOeDcyaLCabPWYS34id5mFz0m4xHXSDGroB16/+cWd94/YfGzeAIjDnJCwok2RrjHw/34Gc2M83tFhI5ku+Yr40RSs24jp5s6nNZi7Tzd+kmE0U9s551h9Z6GSNnjm5eqO9+sfVG1qo+3X97i9AERh8ZJOoxuwazoiQSpO0nQ8ujrnSfHR1TiEbSp6NzQZgqr+xuUmrBXDKYh4HkE2cSlw81RXjd6+zN+6uaykABOXcQWTIh+tz2CsRgDHKT3RHxSZltitp/2w4my86c4mQfD9flt/Wdx4IpkFm9w7ao92uXm7a1DIGKG1Hq9kx6QzFuqHkpapL7K9//ir9tW5j/bpCE0kOhkGKl2Pj4gQ8SVeiMDEfMDZlCvmJsIOml2v15Ifb2FSbTSwImOgKNr9zaYzhfLZjHQyF3ImFEZaCCx5tNZvf7l6T5Aiv3b4FiMGghapNJoeIagxDdL5rtWB3sdkEvRL9fC1WTs7R7snRAIHZJDNUoOkL7eRSzJTxdrqDjXPAZWkroG829lsscS0FIbUVzJ1rWjQioUz6Hfx257qCGoNw4OG6Jhhsd+TIONOloABmmQ6X2Lk0Gw8P5Gk6wMqZBl5aysIT493YQL24qumh012Zb5oCvKtFmPPZTBFX15hxocO75Xt+uXnj2p3fwS/rf63rrt/8nXQeg8DgTEJBAgazke0DvRwWwWTZYH605E1dWQos2mnZUGw2dRcyaS7ezvo7DRQ13hhmrKmBU93mLd2Prt39Ddy6c+vOXxvXAFzfoADpzPcc3tInqTEKLlqxtGdpE0yoNGefdQ20FGTaT8ns+soYKqihWKultQvhczWGdS0zUTM/bWUoHHBjHeg2/rp5S9isvLoOSRTziWgJ8PQOvdaa4DHKznextDu+CcaWZ9lMgh+aX+VoFEMT5GYTGuTNpjE379EteOmuAGONR0y2cGNway79Sl1bF8oMQGC0QIFXwtsnEpgPCMCQXpjhaF+pAsZuzwSiUZoLssUV/AQZGzTlgbuN4QCA1DLsSI53LjOxvtip8S27bLduX6O0QHhIu44UQ5xKeD2GwBIwe2p3x65NhJI+BGbiylo4PxnNzJcRmM9XbMrMJmIDdkUDKYe1tXWO0juPNTq2VqL12zfEp8Avf1wFZGAeRGDw4Rip+CoEg+2O7BieinNptys5OL84sRh2LQqKmffWMFTcTmYT7Lq2YAiEtcBzsW/b7XeUSHd+1SF0v9y++SsgqjFYMRIZsfgSpZJyNqN0pOTIjtG+IPINRQxGKRtWtiEV8DRnxkGVj/xz/erVjbt/3YIUKRisGPFFSSopZ+NjXaVCgU+7NsGUMRglZlP+OCTQ6rZzoZBYNm7fvLn+m1aJVzqExyTiGoOdCVDIJjQXZnP+yfI9MPaCf3wPbOSPX+/wQ12/cUOnyF2fubcQrmyC58iyu2+CyRsqbi2Pa0wx7k2OCZ23cJDs+gKtip1NQjASGYVgXI0pgH48/KMpYcPa3IJiIuilNEaPlblCvhAk0A2xoVK/GP7UmUP4aKJkInuIwFg7kGPzZ8HeL4VEkysuOj5Fh5L25NxAmbZ5HZ/XYkO8e6cejDgkSZtuShSz+GWI4vv6QI1LIXK6ca+k1wJxzpYPerMTQ3w2nfYQdMrZbjYxm3qnEoo9pFJseho0LcZAzQ1lWd3wbCqbLowOuctOurBqK/Eu/6ZpUGjE8bBerw23M3gxRhyVxLsEJGAOupJ0pikG5pIXOQqo6Orh9obYstc+G3IUUi5uvrhU5tgQV4MNwe6dSjDfScvgkmJGyMEYk6lFdwx6hi50MFO0VFYwIkWXiezlfD5YcOTmfYtrtmx4KJOdk+OyyzFarJt6KGZzLRyD6SYDE0oy0105Ry9wLXsXJwILmkiIoui0Ya/dGYKTdC6emHXlU9nFlVRxAr9joOKdTai++FaGa2wiyb2SDvCXaEev7lh0yRLRJnPNLgSmnVXRuYINlP181EnbbcHswBQCQzYx1lcd+ZNnQ75Qde+sGenSJmbDZmF6kPkiQnk6B4EERo1pYGlHNlq0eVypAkfeDUZm906NYhAVXHxHyMGI/y6kgouLrUP6L8w2qgIGaKAKNlxkcHSgwMs4TFIjzkBVYBAR7AnIwWA8Ol8kkOrwzlcUAyKxSw51bRLZtfQsrr7EbHQ7GHGwl3kMBiMGuWKqdBMKwbRbAMOhBItFwh084EM1dCNrGiZl3rWL1FABiHfvFCrmkQoY6UU5GBysA4Gx8hRlPMhQTSnuYGweP01gqNQGZlN19w6zIQSDzvk+9R1WzBsKFVOtHOZSxj/OLNJgKs3HeH8KeqZ5CvzbbPiddu+gkvMxIhhp4iuhIZjHyAXkBy6NTUcNTfOay+nweKhlZnGcqhX1bwVIYjah/AQPgUFUcP0dQZcs9ggGZ7a/ozfhGrJ3TzHdifE42OdWgORmc8vtGCivGBEMPgFdwxIYGYoouCDUdyQGkoz9UpQn7cRcfzY81k21odKyAMiCkSyk5CVFMO+rBYMCBBdiKUfWsDwDyL9nv3urYyMOIGsgqDGHKoZJPRgcQK+F/vloTKuyq4d6NtVHjGkjZwRUTTDChwhHSqVPCMCQLbdq5i56wX/XChCbzW2GSsegr+XBfI+39NHvUvElADOG5uyA6H4e+M/bJOLjkFUhW2Pw1Hd78R3dHUzkm86Wy5ACBGiUBjZUxEFuNsnAPCBO8PDEF3ul2mDaPMumAcIrD/8bNqJuCBUjbURKn+RgTk3pMs06EYwKOvXtyU+8s0miGOmcmVSCycG80ztj6TXYBxxVVP73ukFsoBwY5JWENd9KiHvXChSTbu1y8n2N5ibIQ5Vw/n2zyWrlwOAag16k4nv26+aTnxDVmPGU2Th3yr/U6miOTwu62dd6U2c2RlZTM5VQ3APz1sdHLF0HWwjAjFvH+c7pqW/6m9tyZktvZ27ZBiigpinrv202Qa1R6RC+yfVT9JgAxkoABugZuBDjLfHAgtM8w3dZertsQG8AlD7OUepj/80my8iDuYDX79485/cjMJ1bwMi5a+243tOauRQyz+j74mzXRXdLc5TRJb37m1R1Y1MLTKV3zGk/imPdzdZj7buB0RmrO0YtZH0CmBlD/6XJeJMlqveHRNsGaKgKwL6bTRbIW4LK5O6MwOXH4RF82qEaDGB3OigEl3NIMQjM2JeXYu182+UBv48Fug4nfvj/yKYWmM0K82FU4HLujaNHv5QBQ+n1u4wZFy4gMDOmC7G+ybZc9J1+sxcGEkBVTtXfUJH2qPpAAHNBFIwol/MfHjp0FDVTl1EM2PUtTiHMLc21+jsEMH6TraOf7h7ihLUg8H9lI38MREylw+cFLmfeRAl1tAd3ma8CgwLSxt0PUcGBWF+/A4Fp1U6fCllnmlpSTgO1vwHgXtlw8mBQKl0QsIx8KG7S9vR8/G6PDBj078id09GyA46uTTCT1pnpUx2tWahlNfVJKd0UrKdpqLF98v3hbwUuP7wlcnmzp+GzI1vAHNBgMDIXZnCAUGigTwLTNYo+ZsyXwnQdEorLJY2gjoaKky++Ihb/aWlx862Ghg96e06+g8EIaF67BwafRaFlLsxADnrNPgEMHzCFu3oXGpNQfc4sl4oFHakRVz8qnRDk8qbU7e3Nww3DJ6vACFHNABrkujMAlllIiWASjZdhLFMHMEUPLMwx7rBP/Eq92eTk95UW/CM/VbC8+eaHw8MnmqvAyLCR6x+um4yzAdO4eQYsqgcDKFuJsyfoYqmI/aoqQ8XWAPPjYWEeI4J56/Dps2fPtjec+Aav+YqB2UCG2aEDAdy1ewC34Ltovmyth2JgOD0GAfT6gTCtnhhV/o7a5L02pcuim3JBXD787sTZHmvP8VO7gEGDlJHmq9qWyeoGji5Y2+oARrvGBEshigoIYGChHI8ASTdgb2aTlQdzWgQjcTl9/tOz5/t7zrbhxjrVoTHQPL/JBmcNze56YeZieshch+IL41NUbgmBEVLJkGeZEqsbWmUxGqVmk5M/53taEoyQR9+fO/HJ2R8tDcON0hO2AzvHK4ygm+09sne+MAP0852dQ4BSHXy2kFwRwQCKzjOgGBhLDs37EDJAbqjIm5B+KGERuPzQ88UXw+fMw8Nd0hNuBIGcDdyFDWBDdTHao2mnUVLM50kGrA0MLgF3EdgKa3pis0mumMOVNPrpu2/PfnLkveEz5uEGs/TE1AG50Lz+Oc/veE5HplGbioBBQRtTCIxBlzSApdxKjqJL+mwuMK/F/5cMG3LFSGDeEricGTnRfaT964Yz5uMN/dITgwdqhEZn5KvO6eir2YD69djUshQs03E7KA7lcpQ+yc5yIDomcGMFgwtk72ySm8iHDgt6+RCVl54POnpb+tqHz1lP9lRWqqIYgRwbbgc2tH7/tg7YpMGWHcq7I0uUMclljJRnDVAgkswGBDKEpoGtBUYcjb77dviztw9a+y39Z0eOfNLztfTETE0smA3LQEBkqNQH4wbAt+TU8WWt0M/XSHk3+/nqy0HgczGEhkoezP2VNPrySHtfv8VsPtHwcXdDh/TE7AHieE1gY6his6/9w8FqOe7Xpn1UBIHRlhzU0CqdL2RD8rt3ZB2gnxZH6Z6P3kNpZDF3dna+f/zskaOVXf32Vw4oCJRAVWwM9H6ygb4ATTnXdKkmAUyQSkTdWZ0jDol2qGqAOSyk0cfvNlv7BS5dXcdOnLcePSGZpc5XCZlgNlz1pRBsNvcldMXyrB1AWHZQU4WE0M/XWHv3zlhrPea509+h0ehrJBcRS2tr7/FznT3Dkid4Z/SA4njFwFbYYLPJcvvIBvA+4FuDxTCa48xdhLAUIhEbI19jnvtp5P2Og6JcEBUU/ccvdB5v6JKZyBDmVNWlEBmzqX4U17qBI+sq5lxxCOvSz/e57z5FVbeCxWQydX56puWjhsom7bJyKlg3nF6B2VQfwF2IjxrTDO7nqwbMCz+8XZGLSYzWL4bff7vnPemRvEIeGnbsKw1ms2MHgr2yMUAgrxoAtADkLg7VpZ/vsyMHJbmYpOj99Jz16EdS9TW/rgTLq8vR0s+xuJfTkJpN8gCGpQDRcchwdFwGIPEli2eGW1DNFak0NjaaGk0m84nT5nsLD+84lIAJXslbyyvJK7ECT2jEyYNbbEX+SG0LbfJLFs+f6NvMokYpTK3vn2k52VOxkU5lYBzl4oHXJgcXy6/ImE3cP1wBmMSpGes8NLpZwkRUW2Oe+Kzvn1xM6OPd4yc7eo5Iz8SVgQnGi8Ifln6OuzTVRpxRwcbXGPGYbd0mcxMk8ppqwTz2ZT/Gssmm/+QF68jJb6Qio90TmMWS9auqRYodzCa5oQJ+s9dF55YGTQlx01NFg3qiazn3vdgnYcG59OkPlqM9rVKRce8JTNJuHdvdiINtRpyEjd2RMnsBxfr6hDuG4UseDhLPciCAQDGYl9sbt4ExHRnp/uBor/TQwt7AOKwTOz+jqzabkMRsTvfRUQsNUhZTDn211NZvSU2GNESr6L9f3dj47QYgB/OBAObxXhFHW1vbPTCdx88fPH9CeqhVr6j4yoBRZ8RZy5fZxjE777cI89p4iy/gnLZ0X56syQb18715587Nu7euk4N5F4F59mvMRQJj6vjeMtJTcQWr5GD0s6U8BlPbNCgy4jZrYybYkjL0Cqk0b0p6ITMx0955Geq1sp7o1l8bv1y7fuPW3fVrihTzzJE2IXAmoegb6fhg5F3pqZiCpQdfwRolAoPZkPcPbxo0gJzpWGsGUIDNRbsSQquutoFIc8wpU26u3RWb1QJwY/32NSU15vkOgco9MJIt+LHl27PSuHTKrsQirS2u+nQHlvI2DEaeDafXVBmqnXUDtegzkVyc4weYnA0kOzQUk+mnp3svduZ2B/Prn79LJfj67XWtAsU8+dJ2waBouWBtONonPZY+oCBeL8aupHPxn5N/M3euMU2dYRzfkm3JLtnFXbK5a/Zl8cM+rrWeym1Ya4Ga9hgph0K7QD3nBDg9eCjowK4QlJYALeAKIpdEgVrHpQxGkEvYgC0jMyZ+My7h674QBadz7pY959D2hdIjpzlE+CdG0deS/vJ/3vP++7zvy6p7e8MmwqNy09+0slVBo+azK3AflOpI2gKTyvevvomXkf66v6IKP7FXHv2VAJinPjBFuCDHmEr99tHy8LDzNVt/romhd3r2ynz/arAvpJUexPfHD5siBaIaY49ogqR5AUsv4KAT6S4i+gFMepA2uDfjhIuOD9zhm7oPHsDlkunSS+mpt9kYLMDFlFdCdWQRkmeZWqHPgth0tmPCwlAGG1W62FWAqi9H4N6EqaOFqhH9dZXq8P6QvgH+50XT/DyrVVV1ajaW0v2Ve3BZ+N0/7v+WfgfuI1VJBgOzb6xfQGWlltGTkYFdii10vT9FUTWCSUAgv7OJlvyq5oKLKizUlzrdjwn3+e4nnBU0bW9ZP3bl/t+pvz+89/u/v63Afb7LKulgXjoTDwx3mWiK9t3gbT9ePwbdWACN2l424oFKxY9t0PcV6DU8mM40pm8Mbx78av14HsadP+/fX74LY/n7fCWCAb1nQljCYEgOL6iz9H4R2UA0oHi8Bm5evxicu8pPK9jZgwnykBk2VefyTIPpI9p2/GoaM9HH7e/CW9anpAePVlQP/vybP6XI3+ebAJg3mFgwJOtn6FGqyRaxjKdmCzDNgeu/zjlvt9diKYPz3TJqCgWqTWxEA1VaYVpqQeth7rv9XCuAcXs6NzzGln+7q7qrUqmE26BTVRLTNeg1C4ICMtEEU3ntGuuttlyLZGzl7ONt0HB1bLZi8mJg7Ecsfa7lxxEFSDabw4mEzcIq1RgZ1NeOUVq3Z2TjEu/h8l14AdCdR8sq6Y6BWsIBDOJC6aovZzpKTFnUeJs3MnbxsS5Qqy84z04englWKVLmNEkzGWpsu9hI7/pitbOD2RV45xQ4ZoPuPfp95QDPZfm/BwlMvlBLBK6PYiFZi63xUKbDMU64qOM+PDw2t3ard6KuUX+7kMqDwULfTEzUKOBbnc6WAyc9XmcThc24a+MDIYohC9FfhdPAo+W//v7j4T/LqdIXeKC3rOvKyHhytPEYbG913KiDE9hNpyLzL96i2FIXuxQA5nTGwoWR7qDmdn1S96JCliCIb2ajeWzYTKsN1h7YlLD/ePjvP//+Kdw0LzFdC/pYH5l1KXt1T8mxY4c+B8uUUHXEIZs1MporlJiWpgPzF4OtTHvwXKAzkC2zplDYlL7FON4/pK48uHcHAZMIZg8jYKEJtqjtWsnxYzwZ8EwxddLo8JGR4caz0maHpAtJmsHOfq2zb6RrdnoMkZHJBpPMRhRZAh87CHo+Xy/YxXCitxG48GAO8abxWo3+xhOeyPghICNRFQOTNQPd01db04NHFPKFwqb8rq/0yRf0NglcOKvvcslxgYuABg4D0qfoxuHKXGVYdm0Cs8PBS9OTVxZTF4CmTG1vZ1O6Y0B7jSaCOTMMZQQCKhHPuOgCU3eWVRmRrjChxuTpi+dkgJEXNsUlfY4BfUKy5U2NPBUknkwOlW/42c9GyXCdCS5HsIYk+G1b2UjtbMp3DOgtjuuJ2AV+RT1zLI9jz9zwU1EyeAOWIBoZEGQGcflzDOhNogeohJlE6IBlLhtJvNrhw6NkcgNJip0Xlr4/TtcXXWQmvxMZtcw+m8DjeATL8TXLONoYWt/R6KKVURkgJO4CYSnxu3eHsW1p6iPL5EexIPFkXHkm/HKjn0RkzK0axa6QhC3GMksJ9NK+HkRm/ZPJUa4z4U3HXYQSiXWqFbtDAhutWNiUP/mC9uR8DkRiHcOnpjK7ydTkcHFKpNzZ7t2CBpZM4l1f+Y4BfXgNEUFgeDKl4JniGz5DrhLp/FDn7kEDoUE0bMoHs/ejTFRGAEXAIhRTZil4pu4HW9F55Xo0/VMHFbtHsMVYJGzKBAPF5D8U4xaQECdvfGEl8cofxqtp5XrlUtdbdsUTaouwma6SM8eAnj0mBuZGuZfQG270uBihnJDMc807v67BMCw7Yz2beOdZ5YDZ+05mZGm3XpkOIOP3Ejh92ZF10qOMETk4laLYUbUsTs3NtrozsDU20rq+0ksJ9FbW5+vtgjxzqHd03Mri+iL3uF+Xq4yVOfh1smLndIVZXb01uLo071aHLZSm3XSeNTaIH5AOBrSnCc26SMd6yliCMuYxJj3Rm9lWSik3S1/UoFXskK7Mds/WK7LrQ6sNsWFTPFBhCYF5/s1GIBODpaQtn+K3AtMUS+v1FkeT74xJGUf4UMNpxU6os//sXD1fRINDlzQKSWzgJhzNZ1t/7ID00jMbHQNzTs8XRmJthzROEySup12OcVcOrown8+y3O8CmZSl7DcwvS8zgEfHzrOhDCs1hLVyhJcUxyDMfODaAKbFZKRrtBDbRuN5M2BqH/V/Ryrjy2G8+6ZpKmXSGwSw2LF2QdJ4V/fhxiWDAM586oljALieMpImnEt3CKHzBFQOaMva8CBvdtxee6PrmaP+Scw1MV3+2hLCJJHqWIB6ZDxyRMioZBrtEsJgjgj/jZtJ3rcPn8uqV8ZVrGHiCbDJurfatgWmePS3tQ4qtLiGNS+a9zDW7XK4T7IKwIDQEa6LP9DbZikvzzitFZOxrf1JxKtnZXwity7lbobkM0UExXV/JpYS095PRz3m7WCg6DpbwTkbGwpiMrtEOm6+S84j5hp2veTJ5KvnWYLtmZGl19RwmOWxKB4M884pltKcujwjbxRyrtU0jxiILQeRk9Q4Xu4q482JsmIka9fbWzTdx9xjfWppklhadSdKCOEIjcoWBmN7EKXgYiWIRwOAmtqzcYKJODY+2ZZVR5lyliMjAdrLR6rIV2ZteT62ZDP5YpZYaNrXhmVj0hJuo9uzD8a24QFeXLXJVGmmmzFbttRutnFmczUjGtoFpxWY2bTEoHFwaSOA7pINnEpt8UW56X4+4eMwejycMBnGhaZIkOGu5v5Shac5u9Re7KhlRNsQ2hU3twnRLqB2LMYcGNtEuJvYcFI8EaOUbf6IxR+3iieUi2AWwEBTFsXmWahuL53oKikeHi31lBlE2+HaETW2oom+hqnb6UvIGNmrtlBOBkc5G/GMHcb22L4oFgUF+CWMBMUaOM3itBpyw2HqBzQmdR4yNfrI5SS6Y5Imh7tmR6fqbmgvb0NzL2ATG60Vg4mvv0/o4XHDEheN4KkaGgK+JIn9xuY6kCnwdw8X+MgOeK8ZGXthMHlFXEe7Z1rnbM13BtOZkhab+UpKcjiemPrgRDEsiMKKmeR9RWecXoYyoMJc8jiRJmsjTeS0nXVl1VpLKd/FsTtlNYmzMs0flsMHqswfqa7SB1pB7Jl1xu69+5kitvBoFsJgkMChU7nl3PRc0vYTLiAG7kCDWbrfrdDp7zplqW7WVIvLr2oZtPqAktsA5P/utVk5wvNlaeHSuYeKoQjFRoai9EpLfBJQIBk3Cb+/zxNglOr0wMLuQNE0TBjsozCa/qDzLlUOQuvK2DltWnYUQY+PRHZURqNTYhXqtAQ4NzX+pOLg/OHBVeKkkTD6YIg7ASNHrgCbKRbALml54u9AccEFkdAZgU+2rzg+z8dVZSFE29l9lsMHU/Aqgvhkm0ODXC1XtXUkHvq9yY3LBlMPjWqJefPt9DyojIlpGHA0i83SC7DoeiwDHYNBZv/rC5jtDmYylwx1tWS4LJxo2867LC5tJgfrAVEhzruGngYUj0+5Qigww6HEtVc+/9Rypj9qF9wvDMAQNonSgCBokYOMtKPP5K1marbR1tMHijzWLhs0+OWFT4zyqDWmcTufAwhQPJlkt1zFvPJWIXt7zEcICXFiStwujExOwMXgtZX54dEN0yBLYGMTZyAmbGFaT0uAMdgUuARhtINCOYTLA1CEwUivqtRc+AixrXCjBLoa4RBAank2p31XGAJvicQjiJ/NE2XCywmbG2eaFoXoAMzXpnqlpRTk7cTBWBEY6m1dfyDFG7EKzMUQYgiRYQ1gIjh0WOLZTsPizuIbhIV5qEF3gkDMjMhbGRyrcre5Q19D3Q18POgMp3e3YkwMDev3VDwo4EsBQeYaoBAJW/jyuiTEY4rDJgcVftXdt8Wfzn/CKsiFCXSkyfJNUf3q6wt0J18BdHZoPZCSrEwaTW+d9NWEoyDf/l3f+r22UcRwPKkgdDEGhFMrYt8rw+zfYDxZRdIKniTyX0V2ueZIr18s9R+Jz11yXRWPJ3ZheI24JWhPXjQ2cdW5+6XRz+G24zQkTxsCf/Wf8PLlLk8ty2uy2mdZ30y+00MCL9/N83p/P87TRRZ5DneIQPsfB7ox+4LEHyg8HirijWAlVq9qLEHCgnO8MkHDqizBB9vBXfzEw7y+9fOrwyV9O9w3G1hmYm2azfdtslUM+8SlqwurC2IxVkm3ndBSqVAmCcUpQJes8YyOpgQ3V12GazfFXj7545fTJF385/c3RKy/0CWbBRgxMGDYbt42k/GwwwqAZgSUeoiPUg42UdXJWmqhcBsJfzpZJQMAJe7I5/drS0ufzPy1dPtInmIrNMzBh2Tw42mKDPfFYnoKSRT7jAROlmLuRTRmahjlTxUUWcOxy4DRdkN97JUQ/tR9K9+lj/TomaVMAE15DG8dGy3qbC5ABUcrzmCfJhYWK6rcNE7CRZ6LROV6jeQg4EJGNZGCz+caeEPnm1T//erlPMDHH3Bi5NRoC38gc8qgw4eYjUWctBJ/AqCeb8ky0NkdVfjYHvgEHBbGp/BriZBOiXp9gBIe0wYRn88DYaBrY8J7cL8qcqpIrEvBCOMA3tWiRQtPQDH8lGshG//2m2fQLRsyQ4RAkAgIOh3ifMPMOEwPTgw0Lf1GlgASzHAU20RkUeOqrX9tzW9n86T0RnTECwIRhs33TiA4wuoS72Pj7Bz1RshSnKooJaxmKeCFw8jdJg5vN8PrDexZultsQhkGwb4DNjWh4Fw02RNHke7CBpsHWVTFRX1wGNsHB2Fjad5tOxK94z5AoykNhIQSzyQKbXr6pTO6cTFbi3b4BMd9E7YQoSiwY16ZSapBvyIX9t4HNuLHTVak0EglW+IBz10j1RjYzRrIyWVmgsKp6sUnNOQ0rRVTdaSw2WNMQFHDEH47d6jW1p+JxnylvjdxWQTAGNn44OGGwkV+2cy/uYpN1ovWyqXJTTTZlUumj2QyjA618V0jdF7ndGmqy4X1q50CjebdPI7wPDmsaMg2lTOJ8Yfl8I1orBTcNZ07fumu02dbko4AfjNwJQfjzs8FuCacXTsSEOEgANnSFjd5ik8vljbiRZ1cp6iVaCWw2P741V9NfUVu7+5S5JXJHBOHvwdEEx3fJ+HZeJhpwabHBft/AxDiqzGDNbE7+arM4Nhngm8ufvhUezNHWb08XaV8xJnyhSiOfcahTyJfTuiG4aICNaHRtONV0sV4r6Kop187D5G82MOAI30CzGUrjp1o1L5Pd3H+1Dh+MfWz0RBkkmUCGPQARsPGfOOjApuFwgpiGYMzCXyyw2Xzv1RBg9lVa/nOqo5E7Lpj8zfnYYD0hA5uqoTI2Takm5nxqTowzEIzdiXGBUydvebM5/vlOTyhjPBL5DzTEgrF/v9FTwEaWGBvvX3RDofKdVbnB2EqJYtVi4a8gaUFs9O+mb4bNpyu/r5THIbaYsEX8rqJ/TXEpWZbLKarGGJgkPAQe+dggFv6UmixqurN4XoEZoBjAZkG/1jebV7idnjQnETL3hg9/fjZIYmzSWEiC4jFtTuqsUu6heKpcUJSSKCDnPBRxK0uCmgZ+6cN+moYXoE3ylM7QsUhYhZ9uSV1s0gAnJYJltOsnTNwZi3VAo3tXKaIQjBELxjlgUwlqxK/tW3XTcHIFcLJQ4oYj/7k23BD+4NxSVuH2gGafqOKujkF333XwTa4+w6t8XmHTrSwNYkMurqoRf+5AO1nrheroUGQQBOFva4KxobwnTNitJG9KwVFCDH6FTOsKDlylqCl5LDYnf0qtaMRvvtl84UJ7QVacorkjMihiU9E2G38/lVyAKUVM4zqXFAg+s6mowsJfNgpHVHWY/AU3m6/9g10+vNyxUckF6cqGyAAJijhj4xMGZYTkwmRyQexYUk0uzTfXNxmsMt8sQjBGQb4hZ35+a7x3OboW72Rol8gjkUETTEXTwIb65sVzZlzQUB6jbjSeb6pysb5sS4KYqJ1d/KfJX0VfYn9m69P44ZO+PJR0MuijAdh6A4q4zzXsveOMgUNdK4qxYcHYak7+ltnRZiLoXttkHJ059/Pb0289//zz7+7Z/8FvRsUfgOYcGW+JDKg2bN8kI0p7zG+Qx6a7gIOg2XSDMVylYL5JBbEBOgsxlRAixBcmu3+Ssovk0cEoSUHN5l0jOBANhw1iIA9N2zwS+CZnyURkwbgRLQTeFQ0kVrVneWcgF5Iv/N09otOepy/VOCRjgXI+ub5JlKBpKFNVzzTDn2xW+uAi21P83MAuJH/4Aza0Gw19T9RUyC8uDT8aYAMT41yuZGi0yNjYXUfiwYrN2lM48XRkjWh4bAR5aFY8Q2XDNGSJ46gWi4vIo9LBB6aiymLRjLO7okqtVqSrYGNa4BfpyUHeYHo0VJzRaw/Os7mWKnJdQm4wnskps3yclOG6QM2a1VlVDpaQt+ySKT88UNFuFYKmQWpeKvGRcTIEltRFzHH+w3BXbGJs5aaQoEp2A6bpTpkKvXfjBVK07EyK1B9fQ37pnG6lKPWBwRysMjAINuOVSszswIJx02EIjjbrNUfSNFyKNpRaPZPVScxHZzJpph3Lsssm3vX0GuTSCjjgmzaYlSWVbv4BIu/DQik1DCAJkz9bqUG/LqYcpaFEazUrk5WQQQgxuHTetup1y0mbpPHslrXKxW0a7nkI0W4yNicSelFHHG8SkwcwHheTEJEYvFTK2EputioKpjRrRRUll4sy1ZisQhmL+KO9a2576VHEN6X5bjZuy8BDwImpvMfFdF8WlJ10mtKMZUWXG1ba1FSTS5RmM45TmCqWUzxRzcyBXVd3rHkubqG6d4QaGHXrgKpCkZJafhHFjtd5FPV8PWopnx0/27iQRaaoabD6kFw/d/Dj3dcfHvS421cRHzGMLttwsmnSLOapyC4Zu3bpfCEKEctsn2ksHjrB/s/1xMSbJw4d3zU//cxa3l16s0EG30mGiadGiVEQRMHjwj40v9OUSrCUKM9N1c9+f3Bi76X9R55YP3bxhT9kNtlgeHjlyKinVU1FKWDRjUUDqRB+ymfffGnv9UtX598+ss7s0jkV3brZMHBTgAUEDQNRVc3D0lpJbS6Ea0zsfh24HNv35RNroWkMEf626lCWPb8YUI00dxm5VPxcRFI6PuHZZfqZdVGM/sU3SCS0i0sc3nzrCJYRXz+4u8ll/yeH13Sm6yMY31eFdeKFl7ZhfFxI+tDErteZXfZNP7ne7eKbGG8mgKGNJeZi8biI1H7Ts8v63l0CjjaNdpH2cSGpxYndrl2+XPe7S88ifv/oZiHpL9Ms6E796Npl/p0n12F2We2GA1VcBDRtLlyjaZdL88/ueCDyf9bQAxvHNo0gUWOu0Uj++4lde69ffXjH8P9wEfWyzvCW7WPbtj321FNPPbJjy/Dq6/PfuDhPWf9wyuQAAAAASUVORK5CYII="}},"time_used":113,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":113,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/gusid","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.136Z","timestamp":1785145406136,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"OPTIONS /v1/lst/gusid HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: GET\r\nAccess-Control-Request-Headers: fp,fp-data,product-id,ref-url\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:26 GMT\r\nContent-Length: 0\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS\r\nAccess-Control-Allow-Headers: fp, fp-data, product-id, ref-url\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nAccess-Control-Max-Age: 86400\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":544,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":282,"timings":{"blocked":0,"dns":0,"connect":92,"send":0,"wait":95,"receive":0,"ssl":95},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/imagehover.css?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.798Z","timestamp":1785145403798,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/vendor/css/imagehover.css?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-12d68\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":77160,"size_decoded":7923,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (50536)","md5":"72ab0f26fc668c5848e35c6e66ba9385","sha1":"34a158ab85ee140ec54c7f18e75a404a71d67c33","sha256":"70917a2757dfa173b112f89354f307bdd094e279c7218eacbc623a205de6c727","sha512":"1cf395d6a8af0d37b9220a1f8ceab31ad31fcaef632f4f843f388727bbb451d294dd07187685324daca2d1e782494ff4adcadf182f51164ea7bf71d361ceb616","ssdeep":"1536:yreoUcrFdKoqCOHoOd8rwMqrOd6rodjo8DVrEMOdFddcJQfVfiiBbq243FFPbfMa:LffVf143XfMfi","tlshash":"a9736b698d51114fa597ba04e7c84e74673cf29be62648ee7343a40bc7cfa5d22cb243","first_seen":"2023-11-16T14:14:23Z","last_seen":"2026-07-27T14:04:41.101436Z","times_seen":6,"resource_available":false,"data":"QGZvbnQtZmFjZXtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1mYW1pbHk6ZmVhdGhlcmljb25zO3NyYzp1cmwoLi4vZm9udHMvZmVhdGhlcmljb25zL2ZlYXRoZXJpY29ucy5lb3Q/LThpczd6Zik7c3JjOnVybCguLi9mb250cy9mZWF0aGVyaWNvbnMvZmVhdGhlcmljb25zLmVvdD8jaWVmaXgtOGlzN3pmKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKC4uL2ZvbnRzL2ZlYXRoZXJpY29ucy9mZWF0aGVyaWNvbnMud29mZj8tOGlzN3pmKSBmb3JtYXQoJ3dvZmYnKSx1cmwoLi4vZm9udHMvZmVhdGhlcmljb25zL2ZlYXRoZXJpY29ucy50dGY/LThpczd6ZikgZm9ybWF0KCd0cnVldHlwZScpLHVybCguLi9mb250cy9mZWF0aGVyaWNvbnMvZmVhdGhlcmljb25zLnN2Zz8tOGlzN3pmI2ZlYXRoZXJpY29ucykgZm9ybWF0KCdzdmcnKX0uZXhhZC1paGUtZ3JpZHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDttYXgtd2lkdGg6MTAwMHB4O2xpc3Qtc3R5bGU6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJle3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjoxMHB4IDElO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojMzA4NWEzO3RleHQtYWxpZ246Y2VudGVyfS5leGFkLWloZS1ncmlkIGZpZ3VyZS5leGFkLWloZS1maWd1cmUgaW1ne3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO29wYWNpdHk6Ljg7d2lkdGg6MTAwJX0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbntwYWRkaW5nOjJlbTtjb2xvcjojZmZmO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MS4yNWVtOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LmV4YWQtaWhlLWdyaWQgZmlndXJlLmV4YWQtaWhlLWZpZ3VyZSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSwuZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXJ7cG9pbnRlci1ldmVudHM6bm9uZX0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbiwuZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbj5he3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5leGFkLWloZS1ncmlkIGZpZ3VyZS5leGFkLWloZS1maWd1cmUgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uPmF7ei1pbmRleDoxMDAwO3RleHQtaW5kZW50OjIwMCU7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTowO29wYWNpdHk6MH0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIC5leGFkLWloZS10aXRsZXt3b3JkLXNwYWNpbmc6LS4xNWVtO2ZvbnQtd2VpZ2h0OjMwMH0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIC5leGFkLWloZS10aXRsZSBzcGFue2ZvbnQtd2VpZ2h0OjgwMH0uZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIC5leGFkLWloZS10aXRsZSwuZXhhZC1paGUtZ3JpZCBmaWd1cmUuZXhhZC1paGUtZmlndXJlIHB7bWFyZ2luOjB9LmV4YWQtaWhlLWdyaWQgZmlndXJlLmV4YWQtaWhlLWZpZ3VyZSBwe2xldHRlci1zcGFjaW5nOjFweDtmb250LXNpemU6NjguNSV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGlseSBpbWd7bWF4LXdpZHRoOm5vbmU7d2lkdGg6LXdlYmtpdC1jYWxjKDEwMCUgKyA1MHB4KTt3aWR0aDpjYWxjKDEwMCUgKyA1MHB4KTtvcGFjaXR5Oi43Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNDBweCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxpbHkgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9ue3RleHQtYWxpZ246bGVmdH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbj5kaXZ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6MmVtO3dpZHRoOjEwMCU7aGVpZ2h0OjUwJX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5IC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5IHB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw0MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDQwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGlseSAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5IHB7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMnMsdHJhbnNmb3JtIC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGlseTpob3ZlciBpbWcsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGlseTpob3ZlciBwe29wYWNpdHk6MX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5OmhvdmVyIGltZyxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5OmhvdmVyIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1saWx5OmhvdmVyIHB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGlseTpob3ZlciBwey13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMDVzO3RyYW5zaXRpb24tZGVsYXk6LjA1czstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjM1czt0cmFuc2l0aW9uLWR1cmF0aW9uOi4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FkaWUgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSg3Miw3Niw5NywwKSAwJSxyZ2JhKDcyLDc2LDk3LDAuOCkgNzUlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20scmdiYSg3Miw3Niw5NywwKSAwJSxyZ2JhKDcyLDc2LDk3LDAuOCkgNzUlKTtjb250ZW50OicnO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDUwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw1MCUsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FkaWUgLmV4YWQtaWhlLXRpdGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOjEwMCU7Y29sb3I6IzQ4NGM2MTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1cyxjb2xvciAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXMsY29sb3IgLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01MCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTUwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYWRpZSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYWRpZSBwey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYWRpZSBwe3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtwYWRkaW5nOjJlbTt3aWR0aDoxMDAlO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYWRpZTpob3ZlciAuZXhhZC1paGUtdGl0bGV7Y29sb3I6I2ZmZjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01MCUsMCkgdHJhbnNsYXRlM2QoMCwtNDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsLTQwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FkaWU6aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FkaWU6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm94eXtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNmZjg5ZTkgMCUsIzA1YWJlMCAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZywjZmY4OWU5IDAlLCMwNWFiZTAgMTAwJSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm94eSBpbWd7bWF4LXdpZHRoOm5vbmU7d2lkdGg6LXdlYmtpdC1jYWxjKDEwMCUgKyA2MHB4KTt3aWR0aDpjYWxjKDEwMCUgKyA2MHB4KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwcHgsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb3h5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDozMHB4O3JpZ2h0OjMwcHg7Ym90dG9tOjMwcHg7bGVmdDozMHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjtjb250ZW50OicnO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwcHgsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb3h5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbntwYWRkaW5nOjNlbTt0ZXh0LWFsaWduOmxlZnR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm94eSAuZXhhZC1paGUtdGl0bGV7cGFkZGluZzozMCUgMCAxMHB4fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJveHkgcHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm94eTpob3ZlciBpbWd7b3BhY2l0eTouNzstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb3h5OmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJveHk6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmF7YmFja2dyb3VuZDojOWU1NDA2fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWJ1YmJhIGltZ3tvcGFjaXR5Oi43Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmE6aG92ZXIgaW1ne29wYWNpdHk6LjR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzBweDtyaWdodDozMHB4O2JvdHRvbTozMHB4O2xlZnQ6MzBweDtjb250ZW50OicnO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAsMSk7dHJhbnNmb3JtOnNjYWxlKDAsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcntib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNmZmY7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwwKTt0cmFuc2Zvcm06c2NhbGUoMSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1idWJiYSAuZXhhZC1paGUtdGl0bGV7cGFkZGluZy10b3A6MzAlOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1idWJiYSBwe3BhZGRpbmc6MjBweCAyLjVlbTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWJ1YmJhOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWJ1YmJhOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXJ7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1idWJiYTpob3ZlciAuZXhhZC1paGUtdGl0bGUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYnViYmE6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm9tZW8gaW1ney13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuNCwxLjQsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS40LDEuNCwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb21lbzpob3ZlciBpbWd7b3BhY2l0eTouNjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMSwxLDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJvbWVvIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJvbWVvIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt3aWR0aDo4MCU7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiNmZmY7Y29udGVudDonJzstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm9tZW86aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7b3BhY2l0eTouNTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCkgcm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApIHJvdGF0ZSg0NWRlZyl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtcm9tZW86aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcntvcGFjaXR5Oi41Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKSByb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApIHJvdGF0ZSgtNDVkZWcpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJvbWVvIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb21lbyBwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb21lbyAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsLTE1MCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTUwJSwwKSB0cmFuc2xhdGUzZCgwLC0xNTAlLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJvbWVvIHB7cGFkZGluZzouMjVlbSAyZW07LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsMTUwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsMTUwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1yb21lbzpob3ZlciAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTUwJSwwKSB0cmFuc2xhdGUzZCgwLC0xMDAlLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJvbWVvOmhvdmVyIHB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNTAlLDApIHRyYW5zbGF0ZTNkKDAsMTAwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYXtiYWNrZ3JvdW5kOiMxOGEzNjd9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9ue3BhZGRpbmc6M2VtfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztvcGFjaXR5OjB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7dG9wOjUwcHg7cmlnaHQ6MzBweDtib3R0b206NTBweDtsZWZ0OjMwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAsMSk7dHJhbnNmb3JtOnNjYWxlKDAsMSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2Zvcm0tb3JpZ2luOjAgMH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmFmdGVye3RvcDozMHB4O3JpZ2h0OjUwcHg7Ym90dG9tOjMwcHg7bGVmdDo1MHB4O2JvcmRlci1yaWdodDoxcHggc29saWQgI2ZmZjtib3JkZXItbGVmdDoxcHggc29saWQgI2ZmZjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLDApO3RyYW5zZm9ybTpzY2FsZSgxLDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGEgLmV4YWQtaWhlLXRpdGxle3BhZGRpbmctdG9wOjI2JTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhIHB7cGFkZGluZzouNWVtIDJlbTt0ZXh0LXRyYW5zZm9ybTpub25lO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhIGltZyxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYSAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYSBpbWcsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGEgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcixmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYSBwey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYTpob3ZlciBpbWd7b3BhY2l0eTouNzstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYTpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sYXlsYTpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmFmdGVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGE6aG92ZXIgLmV4YWQtaWhlLXRpdGxlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXIsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGE6aG92ZXIgLmV4YWQtaWhlLXRpdGxlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxheWxhOmhvdmVyIHAsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGF5bGE6aG92ZXIgaW1ney13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMTVzO3RyYW5zaXRpb24tZGVsYXk6LjE1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ob25leXtiYWNrZ3JvdW5kOiM0YTM3NTN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaG9uZXkgaW1ne29wYWNpdHk6Ljk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ob25leTpob3ZlciBpbWd7b3BhY2l0eTouNX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ob25leSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kOiNmZmY7Y29udGVudDonJzstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ob25leSAuZXhhZC1paGUtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6MWVtIDEuNWVtO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTMwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTMwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaG9uZXkgLmV4YWQtaWhlLXRpdGxlIGl7Zm9udC1zdHlsZTpub3JtYWw7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhvbmV5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhvbmV5IC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhvbmV5OmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhvbmV5OmhvdmVyIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ob25leTpob3ZlciAuZXhhZC1paGUtdGl0bGUgaXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtb3NjYXJ7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywjMjI2ODJhIDAlLCM5YjRhMWIgNDAlLCMzYTM0MmEgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsIzIyNjgyYSAwJSwjOWI0YTFiIDQwJSwjM2EzNDJhIDEwMCUpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW9zY2FyIGltZ3tvcGFjaXR5Oi45Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtb3NjYXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9ue3BhZGRpbmc6M2VtO2JhY2tncm91bmQtY29sb3I6cmdiYSg1OCw1Miw0MiwuNyk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1czt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2NhciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzBweDtyaWdodDozMHB4O2JvdHRvbTozMHB4O2xlZnQ6MzBweDtib3JkZXI6MXB4IHNvbGlkICNmZmY7Y29udGVudDonJ31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2NhciAuZXhhZC1paGUtdGl0bGV7bWFyZ2luOjIwJSAwIDEwcHg7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2NhciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2NhciBwe29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW9zY2FyOmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2Nhcjpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1vc2Nhcjpob3ZlciBwe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtb3NjYXI6aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtb3NjYXI6aG92ZXIgaW1ne29wYWNpdHk6LjR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWFybGV5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbnt0ZXh0LWFsaWduOnJpZ2h0fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1hcmxleSAuZXhhZC1paGUtdGl0bGUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWFybGV5IHB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MzBweDtsZWZ0OjMwcHg7cGFkZGluZzoxMHB4IDB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWFybGV5IHB7Ym90dG9tOjMwcHg7bGluZS1oZWlnaHQ6MS41Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1hcmxleSAuZXhhZC1paGUtdGl0bGV7dG9wOjMwcHg7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1tYXJsZXk6aG92ZXIgLmV4YWQtaWhlLXRpdGxley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1hcmxleSAuZXhhZC1paGUtdGl0bGU6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDo0cHg7YmFja2dyb3VuZDojZmZmO2NvbnRlbnQ6Jyc7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw0MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDQwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWFybGV5IC5leGFkLWloZS10aXRsZTo6YWZ0ZXIsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWFybGV5IHB7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1tYXJsZXk6aG92ZXIgLmV4YWQtaWhlLXRpdGxlOjphZnRlcixmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1tYXJsZXk6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcnVieXtiYWNrZ3JvdW5kLWNvbG9yOiMxNzgxOWN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcnVieSBpbWd7b3BhY2l0eTouNzstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xNSk7dHJhbnNmb3JtOnNjYWxlKDEuMTUpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJ1Ynk6aG92ZXIgaW1ne29wYWNpdHk6LjU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXJ1YnkgLmV4YWQtaWhlLXRpdGxle21hcmdpbi10b3A6MjAlOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcnVieSBwe21hcmdpbjoxZW0gMCAwO3BhZGRpbmc6M2VtO2JvcmRlcjoxcHggc29saWQgI2ZmZjtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKSBzY2FsZSgxLjEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwcHgsMCkgc2NhbGUoMS4xKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ydWJ5OmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1ydWJ5OmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApIHNjYWxlKDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1pbG97YmFja2dyb3VuZDojMmU1ZDVhfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1pbG8gaW1ne21heC13aWR0aDpub25lO3dpZHRoOi13ZWJraXQtY2FsYygxMDAlICsgNjBweCk7d2lkdGg6Y2FsYygxMDAlICsgNjBweCk7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzBweCwwLDApIHNjYWxlKDEuMTIpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzBweCwwLDApIHNjYWxlKDEuMTIpOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWlsbzpob3ZlciBpbWd7b3BhY2l0eTouNTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKSBzY2FsZSgxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taWxvIC5leGFkLWloZS10aXRsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO3BhZGRpbmc6MWVtIDEuMmVtfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1pbG8gcHtwYWRkaW5nOjAgMTBweCAwIDA7d2lkdGg6NTAlO2JvcmRlci1yaWdodDoxcHggc29saWQgI2ZmZjt0ZXh0LWFsaWduOnJpZ2h0O29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTQwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTQwcHgsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taWxvOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlcntiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDM3LDE0MSwyMDAsMSkgMCUscmdiYSgxMDQsNjAsMTksMSkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMzcsMTQxLDIwMCwxKSAwJSxyZ2JhKDEwNCw2MCwxOSwxKSAxMDAlKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1kZXh0ZXIgaW1ney13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZGV4dGVyOmhvdmVyIGltZ3tvcGFjaXR5Oi40fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjMwcHg7Ym90dG9tOjMwcHg7bGVmdDozMHB4O2hlaWdodDotd2Via2l0LWNhbGMoNTAlIC0gMzBweCk7aGVpZ2h0OmNhbGMoNTAlIC0gMzBweCk7Ym9yZGVyOjdweCBzb2xpZCAjZmZmO2NvbnRlbnQ6Jyc7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlcjpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb257cGFkZGluZzozZW07dGV4dC1hbGlnbjpsZWZ0fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlciBwe3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjYwcHg7Ym90dG9tOjYwcHg7bGVmdDo2MHB4O29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWRleHRlcjpob3ZlciBwe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYXJhaHtiYWNrZ3JvdW5kOiM0MmIwNzh9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FyYWggaW1ne21heC13aWR0aDpub25lO3dpZHRoOi13ZWJraXQtY2FsYygxMDAlICsgMjBweCk7d2lkdGg6Y2FsYygxMDAlICsgMjBweCk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYXJhaDpob3ZlciBpbWd7b3BhY2l0eTouNDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYXJhaCBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb257dGV4dC1hbGlnbjpsZWZ0fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXNhcmFoIC5leGFkLWloZS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzouNWVtIDB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2FyYWggLmV4YWQtaWhlLXRpdGxlOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6I2ZmZjtjb250ZW50OicnOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zYXJhaDpob3ZlciAuZXhhZC1paGUtdGl0bGU6OmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXNhcmFoIHB7cGFkZGluZzoxZW0gMDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXNhcmFoOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb257dG9wOmF1dG87Ym90dG9tOjA7cGFkZGluZzoxZW07aGVpZ2h0OjMuNzVlbTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzNjNGE1MDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZSAuZXhhZC1paGUtdGl0bGV7ZmxvYXQ6bGVmdH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC16b2UgcC5pY29uLWxpbmtzIGF7ZmxvYXQ6cmlnaHQ7Y29sb3I6IzNjNGE1MDtmb250LXNpemU6MS40ZW19ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lOmhvdmVyIHAuaWNvbi1saW5rcyBhOmhvdmVyLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZTpob3ZlciBwLmljb24tbGlua3MgYTpmb2N1c3tjb2xvcjojMjUyZDMxfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZSBwLmRlc2NyaXB0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4ZW07cGFkZGluZzoyZW07Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTpub25lO2ZvbnQtc2l6ZTo5MCU7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC16b2UgcC5pY29uLWxpbmtzIGF7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC16b2UgcC5pY29uLWxpbmtzIGEgc3Bhbjo6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1mYW1pbHk6ZmVhdGhlcmljb25zOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5pY29uLWV5ZTo6YmVmb3Jle2NvbnRlbnQ6J1xlMDAwJ30uaWNvbi1wYXBlci1jbGlwOjpiZWZvcmV7Y29udGVudDonXGUwMDEnfS5pY29uLWhlYXJ0OjpiZWZvcmV7Y29udGVudDonXGUwMjQnfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZSAuZXhhZC1paGUtdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2t9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lOmhvdmVyIHAuZGVzY3JpcHRpb257b3BhY2l0eToxfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZTpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb24sZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lOmhvdmVyIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC16b2U6aG92ZXIgcC5pY29uLWxpbmtzIGF7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lOmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjA1czt0cmFuc2l0aW9uLWRlbGF5Oi4wNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtem9lOmhvdmVyIHAuaWNvbi1saW5rcyBhOm50aC1jaGlsZCgzKXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjFzO3RyYW5zaXRpb24tZGVsYXk6LjFzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZTpob3ZlciBwLmljb24tbGlua3MgYTpudGgtY2hpbGQoMil7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4xNXM7dHJhbnNpdGlvbi1kZWxheTouMTVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXpvZTpob3ZlciBwLmljb24tbGlua3MgYTpmaXJzdC1jaGlsZHstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjJzO3RyYW5zaXRpb24tZGVsYXk6LjJzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWNoaWNvIGltZ3std2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xMik7dHJhbnNmb3JtOnNjYWxlKDEuMTIpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWNoaWNvOmhvdmVyIGltZ3tvcGFjaXR5Oi41Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1jaGljbyBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb257cGFkZGluZzozZW19ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtY2hpY28gZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjMwcHg7cmlnaHQ6MzBweDtib3R0b206MzBweDtsZWZ0OjMwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2NvbnRlbnQ6Jyc7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTt0cmFuc2Zvcm06c2NhbGUoMS4xKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1jaGljbyBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1jaGljbyBwe29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtY2hpY28gLmV4YWQtaWhlLXRpdGxle3BhZGRpbmc6MjAlIDAgMjBweH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1jaGljbyBwe21hcmdpbjowIGF1dG87bWF4LXdpZHRoOjIwMHB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtY2hpY286aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtY2hpY286aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTBlbSl7LmV4YWQtaWhlLWdyaWQgZmlndXJlLmV4YWQtaWhlLWZpZ3VyZXtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDpub25lO21hcmdpbjoxMHB4IGF1dG87d2lkdGg6MTAwJX19LmV4YWQtaWhlLWdyaWR7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDttYXgtd2lkdGg6MTAwMHB4O2xpc3Qtc3R5bGU6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qdWxpYXtiYWNrZ3JvdW5kOiMyZjMyMzh9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWEgaW1ne21heC13aWR0aDpub25lO29iamVjdC1maXQ6Y292ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMXMsLXdlYmtpdC10cmFuc2Zvcm0gMXM7dHJhbnNpdGlvbjpvcGFjaXR5IDFzLHRyYW5zZm9ybSAxczstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbnt0ZXh0LWFsaWduOmxlZnR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWEgLmV4YWQtaWhlLXRpdGxle3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6LjVlbSAwfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhIHB7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgMCAuMjVlbTtwYWRkaW5nOi40ZW0gMWVtO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Y29sb3I6IzJmMzIzODt0ZXh0LXRyYW5zZm9ybTpub25lO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6NzUlOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzYwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTM2MHB4LDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWEgcDpmaXJzdC1jaGlsZHstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjE1czt0cmFuc2l0aW9uLWRlbGF5Oi4xNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWEgcDpudGgtb2YtdHlwZSgyKXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjFzO3RyYW5zaXRpb24tZGVsYXk6LjFzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhIHA6bnRoLW9mLXR5cGUoMyl7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4wNXM7dHJhbnNpdGlvbi1kZWxheTouMDVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhOmhvdmVyIHA6Zmlyc3QtY2hpbGR7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzO3RyYW5zaXRpb24tZGVsYXk6MHN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWE6aG92ZXIgcDpudGgtb2YtdHlwZSgyKXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjA1czt0cmFuc2l0aW9uLWRlbGF5Oi4wNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtanVsaWE6aG92ZXIgcDpudGgtb2YtdHlwZSgzKXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjFzO3RyYW5zaXRpb24tZGVsYXk6LjFzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhOmhvdmVyIGltZ3tvcGFjaXR5Oi40Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWp1bGlhOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWdvbGlhdGh7YmFja2dyb3VuZDojZGY0ZTRlfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWdvbGlhdGggaW1nLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWdvbGlhdGggLmV4YWQtaWhlLXRpdGxley13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZ29saWF0aCBpbWd7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1nb2xpYXRoIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1nb2xpYXRoIHB7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6MzBweH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1nb2xpYXRoIHB7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXNpemU6OTAlO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw1MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDUwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZ29saWF0aDpob3ZlciBpbWd7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtODBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtODBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1nb2xpYXRoOmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZ29saWF0aDpob3ZlciBwe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhe2JhY2tncm91bmQ6IzMwM2ZhOX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIC5leGFkLWloZS10aXRsZXtmb250LXNpemU6MTU4Ljc1JX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIHB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7d2lkdGg6MjAwcHg7aGVpZ2h0OjIwMHB4O2JvcmRlcjoycHggc29saWQgI2ZmZjtjb250ZW50OicnO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApIHJvdGF0ZTNkKDAsMCwxLC00NWRlZykgc2NhbGUzZCgwLDAsMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKSByb3RhdGUzZCgwLDAsMSwtNDVkZWcpIHNjYWxlM2QoMCwwLDEpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo1MCU7dHJhbnNmb3JtLW9yaWdpbjo1MCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaGVyYSBwe3dpZHRoOjEwMHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC1zaXplOjEyMSU7bGluZS1oZWlnaHQ6Mn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIHAgYXtjb2xvcjojZmZmfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhlcmEgcCBhOmhvdmVyLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhlcmEgcCBhOmZvY3Vze29wYWNpdHk6LjZ9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaGVyYSBwIGEgaXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhlcmEgcCBhOmZpcnN0LWNoaWxkIGl7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTYwcHgsLTYwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC02MHB4LC02MHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWhlcmEgcCBhOm50aC1jaGlsZCgyKSBpey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDYwcHgsLTYwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDYwcHgsLTYwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaGVyYSBwIGE6bnRoLWNoaWxkKDMpIGl7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTYwcHgsNjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTYwcHgsNjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhIHAgYTpudGgtY2hpbGQoNCkgaXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCg2MHB4LDYwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDYwcHgsNjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCkgcm90YXRlM2QoMCwwLDEsLTQ1ZGVnKSBzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwtNTAlLDApIHJvdGF0ZTNkKDAsMCwxLC00NWRlZykgc2NhbGUzZCgxLDEsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtaGVyYTpob3ZlciAuZXhhZC1paGUtdGl0bGV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKSBzY2FsZTNkKC44LC44LDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCkgc2NhbGUzZCguOCwuOCwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1oZXJhOmhvdmVyIHAgaTplbXB0eXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtvcGFjaXR5OjF9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtd2luc3RvbntiYWNrZ3JvdW5kOiMxNjI2MzM7dGV4dC1hbGlnbjpsZWZ0fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b24gaW1ney13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC40NXM7dHJhbnNpdGlvbjpvcGFjaXR5IC40NXM7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC13aW5zdG9uIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKC4uL2ltZy90cmlhbmdsZS5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Y29udGVudDonJzstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNDVzLC13ZWJraXQtdHJhbnNmb3JtIC40NXM7dHJhbnNpdGlvbjpvcGFjaXR5IC40NXMsdHJhbnNmb3JtIC40NXM7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSw0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC13aW5zdG9uIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b24gcHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO3BhZGRpbmc6MCAxLjVlbSA3JSAwfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b24gYXttYXJnaW46MCAxMHB4O2NvbG9yOiM1ZDUwNGY7Zm9udC1zaXplOjE3MCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtd2luc3RvbiBhOmhvdmVyLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b24gYTpmb2N1c3tjb2xvcjojY2M2MDU1fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b24gcCBhIGl7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDUwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNTBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC13aW5zdG9uOmhvdmVyIGltZ3tvcGFjaXR5Oi42fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b246aG92ZXIgLmV4YWQtaWhlLXRpdGxley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b246aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7b3BhY2l0eTouNzstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSwyMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwxLDIwZGVnKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC13aW5zdG9uOmhvdmVyIHAgaXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtd2luc3Rvbjpob3ZlciBwIGE6bnRoLWNoaWxkKDMpIGl7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4wNXM7dHJhbnNpdGlvbi1kZWxheTouMDVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXdpbnN0b246aG92ZXIgcCBhOm50aC1jaGlsZCgyKSBpey13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMXM7dHJhbnNpdGlvbi1kZWxheTouMXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtd2luc3Rvbjpob3ZlciBwIGE6Zmlyc3QtY2hpbGQgaXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjE1czt0cmFuc2l0aW9uLWRlbGF5Oi4xNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2VsZW5he2JhY2tncm91bmQ6I2ZmZn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zZWxlbmEgaW1ne29wYWNpdHk6Ljk1Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXNlbGVuYTpob3ZlciBpbWd7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOTUsLjk1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKC45NSwuOTUsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2VsZW5hIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXNlbGVuYSBwe29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo1MCUgMCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgMCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc2VsZW5hOmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zZWxlbmE6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGUzZCgxLDAsMCwwKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGUzZCgxLDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeXtiYWNrZ3JvdW5kOiMzNDQ5NWV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnkgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9ue3BhZGRpbmc6MWVtfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjAwJTtoZWlnaHQ6MjAwJTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiMxMDEwMTA7Y29udGVudDonJzstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle3JpZ2h0OjA7Ym90dG9tOjA7Ym9yZGVyLXdpZHRoOjAgNzBweCA2MHB4IDA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoNzBweCw2MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg3MHB4LDYwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnkgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcnt0b3A6MDtsZWZ0OjA7Ym9yZGVyLXdpZHRoOjE1cHggMCAwIDE1cHg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTE1cHgsLTE1cHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNXB4LC0xNXB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IGltZyxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeSBwIGF7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IGltZ3tvcGFjaXR5Oi44NX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeSAuZXhhZC1paGUtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3BhZGRpbmc6LjRlbSAxMHB4O3dpZHRoOjUwJTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTIwcHgpe2ZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IC5leGFkLWloZS10aXRsZXtwYWRkaW5nOi43NWVtIDEwcHg7Zm9udC1zaXplOjEyMCV9fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5IHB7ZmxvYXQ6cmlnaHQ7Y2xlYXI6Ym90aDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXNpemU6MTExJX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeSBwIGF7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjFlbTtjb2xvcjojZmZmO29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCg5MHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDkwcHgsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeSBwIGE6aG92ZXIsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnkgcCBhOmZvY3Vze2NvbG9yOiNmM2NmM2Z9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnk6aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnk6aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeTpob3ZlciBpbWd7b3BhY2l0eTouNn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC10ZXJyeTpob3ZlciAuZXhhZC1paGUtdGl0bGUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnk6aG92ZXIgcCBhey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5OmhvdmVyIHAgYXtvcGFjaXR5OjF9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnk6aG92ZXIgcCBhOmZpcnN0LWNoaWxkey13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMDI1czt0cmFuc2l0aW9uLWRlbGF5Oi4wMjVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5OmhvdmVyIHAgYTpudGgtY2hpbGQoMil7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4wNXM7dHJhbnNpdGlvbi1kZWxheTouMDVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXRlcnJ5OmhvdmVyIHAgYTpudGgtY2hpbGQoMyl7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4wNzVzO3RyYW5zaXRpb24tZGVsYXk6LjA3NXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtdGVycnk6aG92ZXIgcCBhOm50aC1jaGlsZCg0KXstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjFzO3RyYW5zaXRpb24tZGVsYXk6LjFzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXBob2ViZXtiYWNrZ3JvdW5kOiM2NzU5ODN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcGhvZWJlIGltZ3tvcGFjaXR5Oi44NTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXBob2ViZTpob3ZlciBpbWd7b3BhY2l0eTouNn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1waG9lYmUgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoLi4vaW1nL3RyaWFuZ2xlMi5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7Y29udGVudDonJzstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCg1LDIuNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCg1LDIuNSwxKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcGhvZWJlOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jle29wYWNpdHk6LjY7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXBob2ViZSAuZXhhZC1paGUtdGl0bGV7bWFyZ2luLXRvcDoxZW07LXdlYmtpdC10cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw0MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDQwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtcGhvZWJlOmhvdmVyIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1waG9lYmUgcCBhe2NvbG9yOiNmZmY7Zm9udC1zaXplOjE0MCU7b3BhY2l0eTowO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1waG9lYmUgcCBhOmZpcnN0LWNoaWxkey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC02MHB4LC02MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNjBweCwtNjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1waG9lYmUgcCBhOm50aC1jaGlsZCgyKXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDYwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNjBweCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1waG9lYmUgcCBhOm50aC1jaGlsZCgzKXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCg2MHB4LC02MHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg2MHB4LC02MHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXBob2ViZTpob3ZlciBwIGF7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWFwb2xsb3tiYWNrZ3JvdW5kOiMzNDk4ZGJ9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYXBvbGxvIGltZ3tvcGFjaXR5Oi45NTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjA1LDEuMDUsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwxLjA1LDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWFwb2xsbyBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjUpO2NvbnRlbnQ6Jyc7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC42czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnM7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjksMS40LDEpIHJvdGF0ZTNkKDAsMCwxLDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTpzY2FsZTNkKDEuOSwxLjQsMSkgcm90YXRlM2QoMCwwLDEsNDVkZWcpIHRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYXBvbGxvIHB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDttYXJnaW46M2VtO3BhZGRpbmc6MCAxZW07bWF4LXdpZHRoOjE1MHB4O2JvcmRlci1yaWdodDo0cHggc29saWQgI2ZmZjt0ZXh0LWFsaWduOnJpZ2h0O29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWFwb2xsbyAuZXhhZC1paGUtdGl0bGV7dGV4dC1hbGlnbjpsZWZ0fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWFwb2xsbzpob3ZlciBpbWd7b3BhY2l0eTouNjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtYXBvbGxvOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS45LDEuNCwxKSByb3RhdGUzZCgwLDAsMSw0NWRlZykgdHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTpzY2FsZTNkKDEuOSwxLjQsMSkgcm90YXRlM2QoMCwwLDEsNDVkZWcpIHRyYW5zbGF0ZTNkKDAsMTAwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1hcG9sbG86aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4xczt0cmFuc2l0aW9uLWRlbGF5Oi4xc31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1raXJhe2JhY2tncm91bmQ6I2ZmZjt0ZXh0LWFsaWduOmxlZnR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qta2lyYSBpbWd7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1raXJhIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbnt6LWluZGV4OjF9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qta2lyYSBwe3BhZGRpbmc6Mi4yNWVtIC41ZW07Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0OjEuNTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qta2lyYSBwIGF7bWFyZ2luOjAgLjVlbTtjb2xvcjojMTAxMDEwfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWtpcmEgcCBhOmhvdmVyLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWtpcmEgcCBhOmZvY3Vze29wYWNpdHk6LjZ9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qta2lyYSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDoyZW07bGVmdDoyZW07ei1pbmRleDotMTtoZWlnaHQ6My41ZW07YmFja2dyb3VuZDojZmZmO2NvbnRlbnQ6Jyc7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNGVtLDApIHNjYWxlM2QoMSwuMDIzLDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDRlbSwwKSBzY2FsZTNkKDEsLjAyMywxKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDA7dHJhbnNmb3JtLW9yaWdpbjo1MCUgMH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1raXJhOmhvdmVyIGltZ3tvcGFjaXR5Oi41fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWtpcmE6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qta2lyYTpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtvcGFjaXR5Oi43Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNWVtLDApIHNjYWxlM2QoMSwxLDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDVlbSwwKSBzY2FsZTNkKDEsMSwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZXt6LWluZGV4OmF1dG87b3ZlcmZsb3c6dmlzaWJsZTtiYWNrZ3JvdW5kOiMwMDB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc3RldmU6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXN0ZXZlIC5leGFkLWloZS10aXRsZTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6LTE7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMwMDA7Y29udGVudDonJzstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXN0ZXZlOmJlZm9yZXtib3gtc2hhZG93OjAgM3B4IDMwcHggcmdiYSgwLDAsMCwuOCk7b3BhY2l0eTowfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXN0ZXZlIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbnt6LWluZGV4OjF9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc3RldmUgaW1ne29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgdHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDAwcHgpIHRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZSAuZXhhZC1paGUtdGl0bGUsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc3RldmUgcHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzJkNDM0ZX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZSAuZXhhZC1paGUtdGl0bGV7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDoyZW07cGFkZGluZzouMjVlbX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZSAuZXhhZC1paGUtdGl0bGU6YmVmb3Jle2JveC1zaGFkb3c6MCAxcHggMTBweCByZ2JhKDAsMCwwLC41KX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZSBwe21hcmdpbi10b3A6MWVtO3BhZGRpbmc6LjVlbTtmb250LXdlaWdodDo4MDA7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LDEpO3RyYW5zZm9ybTpzY2FsZTNkKC45LC45LDEpfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LXN0ZXZlOmhvdmVyOmJlZm9yZXtvcGFjaXR5OjF9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3Qtc3RldmU6aG92ZXIgaW1ney13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgdHJhbnNsYXRlM2QoMCwwLDIxcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDAwcHgpIHRyYW5zbGF0ZTNkKDAsMCwyMXB4KX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZTpob3ZlciAuZXhhZC1paGUtdGl0bGU6YmVmb3Jle29wYWNpdHk6MH1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1zdGV2ZTpob3ZlciBwe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbW9zZXN7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCgtNDVkZWcsI0VDNjVCNyAwJSwjMDVFMEQ4IDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC00NWRlZywjRUM2NUI3IDAlLCMwNUUwRDggMTAwJSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbW9zZXMgaW1ne29wYWNpdHk6Ljg1Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbW9zZXMgLmV4YWQtaWhlLXRpdGxlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1vc2VzIHB7cGFkZGluZzoyMHB4O3dpZHRoOjUwJTtoZWlnaHQ6NTAlO2JvcmRlcjoycHggc29saWQgI2ZmZn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1tb3NlcyAuZXhhZC1paGUtdGl0bGV7cGFkZGluZzoyMHB4O3dpZHRoOjUwJTtoZWlnaHQ6NTAlO3RleHQtYWxpZ246bGVmdDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTBweCwxMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1vc2VzIHB7ZmxvYXQ6cmlnaHQ7cGFkZGluZzoyMHB4O3RleHQtYWxpZ246cmlnaHQ7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLC01MCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1tb3Nlczpob3ZlciAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbW9zZXM6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbW9zZXM6aG92ZXIgaW1ne29wYWNpdHk6LjZ9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtamF6entiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KC00NWRlZywjZjNjZjNmIDAlLCNmMzNmNTggMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCNmM2NmM2YgMCUsI2YzM2Y1OCAxMDAlKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6IGltZ3tvcGFjaXR5Oi45fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWphenogZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcixmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6IGltZyxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6IHB7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWphenogZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmY7Y29udGVudDonJztvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDEsNDVkZWcpIHNjYWxlM2QoMSwwLDEpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSw0NWRlZykgc2NhbGUzZCgxLDAsMSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWphenogLmV4YWQtaWhlLXRpdGxlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWphenogcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOCwuOCwxKTt0cmFuc2Zvcm06c2NhbGUzZCguOCwuOCwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6IC5leGFkLWloZS10aXRsZXtwYWRkaW5nLXRvcDoyNiU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6IHB7cGFkZGluZzouNWVtIDJlbTt0ZXh0LXRyYW5zZm9ybTpub25lO2ZvbnQtc2l6ZTouODVlbTtvcGFjaXR5OjB9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtamF6ejpob3ZlciBpbWd7b3BhY2l0eTouNzstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMDUsMS4wNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjA1LDEuMDUsMSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtamF6ejpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmFmdGVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMSw0NWRlZykgc2NhbGUzZCgxLDEsMSk7dHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwxLDQ1ZGVnKSBzY2FsZTNkKDEsMSwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6OmhvdmVyIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1qYXp6OmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taW5ne2JhY2tncm91bmQ6IzAzMGMxN31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taW5nIGltZ3tvcGFjaXR5Oi45Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWluZyBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzBweDtyaWdodDozMHB4O2JvdHRvbTozMHB4O2xlZnQ6MzBweDtib3JkZXI6MnB4IHNvbGlkICNmZmY7Ym94LXNoYWRvdzowIDAgMCAzMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjIpO2NvbnRlbnQ6Jyc7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuNCwxLjQsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS40LDEuNCwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taW5nIC5leGFkLWloZS10aXRsZXttYXJnaW46MjAlIDAgMTBweDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1pbmcgcHtwYWRkaW5nOjFlbTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjM1cywtd2Via2l0LXRyYW5zZm9ybSAuMzVzO3RyYW5zaXRpb246b3BhY2l0eSAuMzVzLHRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWluZzpob3ZlciAuZXhhZC1paGUtdGl0bGV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjkpO3RyYW5zZm9ybTpzY2FsZSguOSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbWluZzpob3ZlciBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taW5nOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1taW5nOmhvdmVyIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LW1pbmc6aG92ZXIgaW1ne29wYWNpdHk6LjR9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGV4aXtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KC00NWRlZywjMDAwIDAlLCNmZmYgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCMwMDAgMCUsI2ZmZiAxMDAlKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sZXhpIGltZ3ttYXJnaW46LTEwcHggMCAwIC0xMHB4O21heC13aWR0aDpub25lO3dpZHRoOi13ZWJraXQtY2FsYygxMDAlICsgMTBweCk7d2lkdGg6Y2FsYygxMDAlICsgMTBweCk7b3BhY2l0eTouOTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTBweCwxMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDEwcHgsMCk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sZXhpIGZpZ2NhcHRpb24uZXhhZC1paGUtZmlnY2FwdGlvbjo6YmVmb3JlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxleGkgcHstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMzVzLC13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsdHJhbnNmb3JtIC4zNXN9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGV4aSBmaWdjYXB0aW9uLmV4YWQtaWhlLWZpZ2NhcHRpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTAwcHg7Ym90dG9tOi0xMDBweDt3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7Ym9yZGVyOjJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAwIDAgOTAwcHggcmdiYSgyNTUsMjU1LDI1NSwuMik7Y29udGVudDonJztvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNSwuNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCguNSwuNSwxKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtbGV4aTpob3ZlciBpbWd7b3BhY2l0eTouNjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sZXhpIC5leGFkLWloZS10aXRsZXt0ZXh0LWFsaWduOmxlZnQ7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zNXM7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCg1cHgsNXB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg1cHgsNXB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxleGkgcHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO3BhZGRpbmc6MCAxLjVlbSAxLjVlbSAwO3dpZHRoOjE0MHB4O3RleHQtYWxpZ246cmlnaHQ7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwcHgsMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwyMHB4LDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWxleGk6aG92ZXIgZmlnY2FwdGlvbi5leGFkLWloZS1maWdjYXB0aW9uOjpiZWZvcmV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sZXhpOmhvdmVyIC5leGFkLWloZS10aXRsZSxmaWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1sZXhpOmhvdmVyIHB7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWR1a2V7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIzM0NDk1ZSAwJSwjY2M2MDU1IDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC00NWRlZywjMzQ0OTVlIDAlLCNjYzYwNTUgMTAwJSl9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZHVrZSBpbWcsZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZHVrZSBwey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMsLXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyx0cmFuc2Zvcm0gLjM1c31maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1kdWtlOmhvdmVyIGltZ3tvcGFjaXR5Oi4xOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMiwyLDEpO3RyYW5zZm9ybTpzY2FsZTNkKDIsMiwxKX1maWd1cmUuZXhhZC1paGUtZmlndXJlLmVmZmVjdC1kdWtlIC5leGFkLWloZS10aXRsZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjM1czt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjgsLjgsMSk7dHJhbnNmb3JtOnNjYWxlM2QoLjgsLjgsMSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIDEwMCV9ZmlndXJlLmV4YWQtaWhlLWZpZ3VyZS5lZmZlY3QtZHVrZSBwe3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDttYXJnaW46MjBweDtwYWRkaW5nOjMwcHg7Ym9yZGVyOjJweCBzb2xpZCAjZmZmO3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC1zaXplOjkwJTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOCwuOCwxKTt0cmFuc2Zvcm06c2NhbGUzZCguOCwuOCwxKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIC0xMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIC0xMDAlfWZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWR1a2U6aG92ZXIgLmV4YWQtaWhlLXRpdGxlLGZpZ3VyZS5leGFkLWloZS1maWd1cmUuZWZmZWN0LWR1a2U6aG92ZXIgcHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSk7dHJhbnNmb3JtOnNjYWxlM2QoMSwxLDEpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTBlbSl7LmV4YWQtaWhlLWdyaWQgZmlndXJlLmV4YWQtaWhlLWZpZ3VyZXtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDpub25lO21hcmdpbjoxMHB4IGF1dG87d2lkdGg6MTAwJX19LyohKiBJbWFnZUhvdmVyLmNzcyAtIGh0dHA6Ly93d3cuaW1hZ2Vob3Zlci5pbwoqIFZlcnNpb24gMi4wCiogQXV0aG9yOiBDaWFyw6FuIFdhbHNoCiogTWFkZSBhdmFpbGFibGUgdW5kZXIgYSBNSVQgTGljZW5zZToKKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCovLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItXSwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLSJde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO21heC13aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzIyNjZhNTtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0+aW1nLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl0+aW1ne3ZlcnRpY2FsLWFsaWduOnRvcDttYXgtd2lkdGg6MTAwJX0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dIGZpZ2NhcHRpb24sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci0iXSBmaWdjYXB0aW9ue2JhY2tncm91bmQtY29sb3I6IzEzNTc5NjtwYWRkaW5nOjMwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7Y29sb3I6I2ZmZn0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dIGZpZ2NhcHRpb24gaDEsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItXSBmaWdjYXB0aW9uIGgyLC5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0gZmlnY2FwdGlvbiBoMywuZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dIGZpZ2NhcHRpb24gaDQsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItXSBmaWdjYXB0aW9uIGg1LC5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0gZmlnY2FwdGlvbiBoNiwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLSJdIGZpZ2NhcHRpb24gaDEsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci0iXSBmaWdjYXB0aW9uIGgyLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl0gZmlnY2FwdGlvbiBoMywuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLSJdIGZpZ2NhcHRpb24gaDQsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci0iXSBmaWdjYXB0aW9uIGg1LC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl0gZmlnY2FwdGlvbiBoNntjb2xvcjojZmZmfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0gYSwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLSJdIGF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci0iXSwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dOmJlZm9yZSwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dOmFmdGVyLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl06YmVmb3JlLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl06YWZ0ZXIsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItXSAqLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl0gKiwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1dICo6YmVmb3JlLC5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLV0gKjphZnRlciwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLSJdICo6YmVmb3JlLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItIl0gKjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7dHJhbnNpdGlvbjphbGwgLjM1cyBlYXNlfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLWZhZGVdIGZpZ2NhcHRpb24sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1mYWRlIl0gZmlnY2FwdGlvbntvcGFjaXR5OjB9LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItZmFkZV06aG92ZXIgZmlnY2FwdGlvbiwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLWZhZGUiXTpob3ZlciBmaWdjYXB0aW9ue29wYWNpdHk6MX0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1mYWRlXTpob3Zlcj5pbWcsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItZmFkZV06aG92ZXIgZmlnY2FwdGlvbiwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLWZhZGUiXTpob3Zlcj5pbWcsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1mYWRlIl06aG92ZXIgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mYWRlLWluLXVwIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsMTUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMTUlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZhZGUtaW4tZG93biBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTUlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZhZGUtaW4tbGVmdCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTUlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE1JSwwKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZhZGUtaW4tcmlnaHQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMTUlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTUlLDApfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLXB1c2gtXTpob3ZlciBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItcHVzaC0iXTpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXB1c2gtdXAgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcHVzaC11cDpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcHVzaC1kb3duIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcHVzaC1kb3duOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcHVzaC1sZWZ0IGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXB1c2gtbGVmdDpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcHVzaC1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXB1c2gtcmlnaHQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItc2xpZGUtXTpob3ZlciBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItc2xpZGUtIl06aG92ZXIgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1zbGlkZS11cCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1zbGlkZS1kb3duIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItc2xpZGUtbGVmdCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1zbGlkZS1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXNsaWRlLXRvcC1sZWZ0IGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlLC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlLC0xMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXNsaWRlLXRvcC1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlLC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwMCUsLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItc2xpZGUtYm90dG9tLWxlZnQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUsMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSwxMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXNsaWRlLWJvdHRvbS1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlLDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSwxMDAlKX0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1yZXZlYWwtXTpiZWZvcmUsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1yZXZlYWwtIl06YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1jb2xvcjojMTM1Nzk2fS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLXJldmVhbC1dIGZpZ2NhcHRpb24sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1yZXZlYWwtIl0gZmlnY2FwdGlvbntvcGFjaXR5OjB9LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItcmV2ZWFsLV06aG92ZXI6YmVmb3JlLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItcmV2ZWFsLSJdOmhvdmVyOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItcmV2ZWFsLV06aG92ZXIgZmlnY2FwdGlvbiwuZXhhZC1paGUtd3JhcHBlciBbY2xhc3MqPSIgaW1naHZyLXJldmVhbC0iXTpob3ZlciBmaWdjYXB0aW9ue29wYWNpdHk6MTt0cmFuc2l0aW9uLWRlbGF5Oi4yMXN9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1yZXZlYWwtdXA6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1yZXZlYWwtZG93bjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcmV2ZWFsLWxlZnQ6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1yZXZlYWwtcmlnaHQ6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXJldmVhbC10b3AtbGVmdDpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlLC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlLC0xMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXJldmVhbC10b3AtcmlnaHQ6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlLC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwMCUsLTEwMCUpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItcmV2ZWFsLWJvdHRvbS1sZWZ0OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUsMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSwxMDAlKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLXJldmVhbC1ib3R0b20tcmlnaHQ6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlLDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSwxMDAlKX0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1oaW5nZS1dLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItaGluZ2UtIl17LXdlYmtpdC1wZXJzcGVjdGl2ZTo1MGVtO3BlcnNwZWN0aXZlOjUwZW19LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItaGluZ2UtXSBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItaGluZ2UtIl0gZmlnY2FwdGlvbntvcGFjaXR5OjA7ei1pbmRleDoxfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLWhpbmdlLV06aG92ZXIgaW1nLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItaGluZ2UtIl06aG92ZXIgaW1ne29wYWNpdHk6MH0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1oaW5nZS1dOmhvdmVyIGZpZ2NhcHRpb24sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1oaW5nZS0iXTpob3ZlciBmaWdjYXB0aW9ue29wYWNpdHk6MTt0cmFuc2l0aW9uLWRlbGF5Oi4yMXN9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS11cCBpbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWhpbmdlLXVwIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVgoOTBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo1MCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtdXA6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlWCgtOTBkZWcpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtdXA6aG92ZXIgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDApO3RyYW5zZm9ybTpyb3RhdGVYKDApfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtZG93biBpbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIDEwMCV9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS1kb3duIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGVYKC05MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAtNTAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIC01MCV9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS1kb3duOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlWCg5MGRlZyk7b3BhY2l0eTowfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtZG93bjpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMCk7dHJhbnNmb3JtOnJvdGF0ZVgoMCl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS1sZWZ0IGltZ3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCUgNTAlO3RyYW5zZm9ybS1vcmlnaW46MCUgNTAlfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtbGVmdCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlWSgtOTBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtbGVmdDpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVkoOTBkZWcpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItaGluZ2UtbGVmdDpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMCk7dHJhbnNmb3JtOnJvdGF0ZVkoMCl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS1yaWdodCBpbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlO3RyYW5zZm9ybS1vcmlnaW46MTAwJSA1MCV9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1oaW5nZS1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGVZKDkwZGVnKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCA1MCU7dHJhbnNmb3JtLW9yaWdpbjowIDUwJX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWhpbmdlLXJpZ2h0OmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVkoLTkwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWhpbmdlLXJpZ2h0OmhvdmVyIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgwKTt0cmFuc2Zvcm06cm90YXRlWSgwKX0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1mbGlwLV0sLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1mbGlwLSJdey13ZWJraXQtcGVyc3BlY3RpdmU6NTBlbTtwZXJzcGVjdGl2ZTo1MGVtfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLWZsaXAtXSBpbWcsLmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzKj0iIGltZ2h2ci1mbGlwLSJdIGltZ3std2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLWZsaXAtXSBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItZmxpcC0iXSBmaWdjYXB0aW9ue29wYWNpdHk6MH0uZXhhZC1paGUtd3JhcHBlciBbY2xhc3NePWltZ2h2ci1mbGlwLV06aG92ZXI+aW1nLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItZmxpcC0iXTpob3Zlcj5pbWd7b3BhY2l0eTowfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLWZsaXAtXTpob3ZlciBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItZmxpcC0iXTpob3ZlciBmaWdjYXB0aW9ue29wYWNpdHk6MTt0cmFuc2l0aW9uLWRlbGF5Oi4xNHN9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mbGlwLWhvcml6IGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVgoOTBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowJSA1MCU7dHJhbnNmb3JtLW9yaWdpbjowJSA1MCV9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mbGlwLWhvcml6OmhvdmVyIGltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKC0xODBkZWcpO3RyYW5zZm9ybTpyb3RhdGVYKC0xODBkZWcpfS5leGFkLWloZS13cmFwcGVyIC5pbWdodnItZmxpcC1ob3Jpejpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVgoMGRlZyl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mbGlwLXZlcnQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlWSg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtdmVydDpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgtMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlWSgtMTgwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtdmVydDpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVkoMGRlZyl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mbGlwLWRpYWctMSBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKDEsLTEsMCwxMDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgxLC0xLDAsMTAwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtZGlhZy0xOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgtMSwxLDAsMTAwZGVnKTt0cmFuc2Zvcm06cm90YXRlM2QoLTEsMSwwLDEwMGRlZyl9LmV4YWQtaWhlLXdyYXBwZXIgLmltZ2h2ci1mbGlwLWRpYWctMTpob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwwLDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUzZCgwLDAsMCwwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtZGlhZy0yIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMSwxLDAsMTAwZGVnKTt0cmFuc2Zvcm06cm90YXRlM2QoMSwxLDAsMTAwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtZGlhZy0yOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgtMSwtMSwwLDEwMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKC0xLC0xLDAsMTAwZGVnKX0uZXhhZC1paGUtd3JhcHBlciAuaW1naHZyLWZsaXAtZGlhZy0yOmhvdmVyIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMCwwLDAsMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKDAsMCwwLDBkZWcpfS5leGFkLWloZS13cmFwcGVyIFtjbGFzc149aW1naHZyLXNodXR0ZXItb3V0LV06YmVmb3JlLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItc2h1dHRlci1vdXQtIl06YmVmb3Jle2JhY2tncm91bmQ6IzEzNTc5Njtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3RyYW5zaXRpb24tZGVsYXk6LjEwNXN9LmV4YWQtaWhlLXdyYXBwZXIgW2NsYXNzXj1pbWdodnItc2h1dHRlci1vdXQtXSBmaWdjYXB0aW9uLC5leGFkLWloZS13cmFwcGVyIFtjbGFzcyo9IiBpbWdodnItc2h1dHRlci1vdXQtIl0gZmlnY2FwdGlvbntvcGFjaXR5OjA7dHJhbnNpdGlvbi1kZWxheTowc31bY2xhc3NePWltZ2h2ci1zaHV0dGVyLW91dC1dOmhvdmVyOmJlZm9yZSxbY2xhc3MqPSIgaW1naHZyLXNodXR0ZXItb3V0LSJdOmhvdmVyOmJlZm9yZXt0cmFuc2l0aW9uLWRlbGF5OjBzfVtjbGFzc149aW1naHZyLXNodXR0ZXItb3V0LV06aG92ZXIgZmlnY2FwdGlvbixbY2xhc3MqPSIgaW1naHZyLXNodXR0ZXItb3V0LSJdOmhvdmVyIGZpZ2NhcHRpb257b3BhY2l0eToxO3RyYW5zaXRpb24tZGVsYXk6LjEwNXN9LmltZ2h2ci1zaHV0dGVyLW91dC1ob3JpejpiZWZvcmV7bGVmdDo1MCU7cmlnaHQ6NTAlO3RvcDowO2JvdHRvbTowfS5pbWdodnItc2h1dHRlci1vdXQtaG9yaXo6aG92ZXI6YmVmb3Jle2xlZnQ6MDtyaWdodDowfS5pbWdodnItc2h1dHRlci1vdXQtdmVydDpiZWZvcmV7dG9wOjUwJTtib3R0b206NTAlO2xlZnQ6MDtyaWdodDowfS5pbWdodnItc2h1dHRlci1vdXQtdmVydDpob3ZlcjpiZWZvcmV7dG9wOjA7Ym90dG9tOjB9LmltZ2h2ci1zaHV0dGVyLW91dC1kaWFnLTE6YmVmb3Jle3RvcDo1MCU7Ym90dG9tOjUwJTtsZWZ0Oi0zNSU7cmlnaHQ6LTM1JTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5pbWdodnItc2h1dHRlci1vdXQtZGlhZy0xOmhvdmVyOmJlZm9yZXt0b3A6LTM1JTtib3R0b206LTM1JX0uaW1naHZyLXNodXR0ZXItb3V0LWRpYWctMjpiZWZvcmV7dG9wOjUwJTtib3R0b206NTAlO2xlZnQ6LTM1JTtyaWdodDotMzUlOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0uaW1naHZyLXNodXR0ZXItb3V0LWRpYWctMjpob3ZlcjpiZWZvcmV7dG9wOi0zNSU7Ym90dG9tOi0zNSV9W2NsYXNzXj1pbWdodnItc2h1dHRlci1pbi1dOmFmdGVyLFtjbGFzc149aW1naHZyLXNodXR0ZXItaW4tXTpiZWZvcmUsW2NsYXNzKj0iIGltZ2h2ci1zaHV0dGVyLWluLSJdOmFmdGVyLFtjbGFzcyo9IiBpbWdodnItc2h1dHRlci1pbi0iXTpiZWZvcmV7YmFja2dyb3VuZDojMTM1Nzk2O3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiJ9W2NsYXNzXj1pbWdodnItc2h1dHRlci1pbi1dOmFmdGVyLFtjbGFzcyo9IiBpbWdodnItc2h1dHRlci1pbi0iXTphZnRlcnt0b3A6MDtsZWZ0OjB9W2NsYXNzXj1pbWdodnItc2h1dHRlci1pbi1dOmJlZm9yZSxbY2xhc3MqPSIgaW1naHZyLXNodXR0ZXItaW4tIl06YmVmb3Jle3JpZ2h0OjA7Ym90dG9tOjB9W2NsYXNzXj1pbWdodnItc2h1dHRlci1pbi1dIGZpZ2NhcHRpb24sW2NsYXNzKj0iIGltZ2h2ci1zaHV0dGVyLWluLSJdIGZpZ2NhcHRpb257b3BhY2l0eTowO3otaW5kZXg6MX1bY2xhc3NePWltZ2h2ci1zaHV0dGVyLWluLV06aG92ZXIgZmlnY2FwdGlvbixbY2xhc3MqPSIgaW1naHZyLXNodXR0ZXItaW4tIl06aG92ZXIgZmlnY2FwdGlvbntvcGFjaXR5OjE7dHJhbnNpdGlvbi1kZWxheTouMjFzfS5pbWdodnItc2h1dHRlci1pbi1ob3JpejphZnRlciwuaW1naHZyLXNodXR0ZXItaW4taG9yaXo6YmVmb3Jle3dpZHRoOjA7aGVpZ2h0OjEwMCV9LmltZ2h2ci1zaHV0dGVyLWluLWhvcml6OmhvdmVyOmFmdGVyLC5pbWdodnItc2h1dHRlci1pbi1ob3Jpejpob3ZlcjpiZWZvcmV7d2lkdGg6NTAlfS5pbWdodnItc2h1dHRlci1pbi12ZXJ0OmFmdGVyLC5pbWdodnItc2h1dHRlci1pbi12ZXJ0OmJlZm9yZXtoZWlnaHQ6MDt3aWR0aDoxMDAlfS5pbWdodnItc2h1dHRlci1pbi12ZXJ0OmhvdmVyOmFmdGVyLC5pbWdodnItc2h1dHRlci1pbi12ZXJ0OmhvdmVyOmJlZm9yZXtoZWlnaHQ6NTAlfS5pbWdodnItc2h1dHRlci1pbi1vdXQtaG9yaXo6YWZ0ZXIsLmltZ2h2ci1zaHV0dGVyLWluLW91dC1ob3JpejpiZWZvcmV7d2lkdGg6MDtoZWlnaHQ6MTAwJTtvcGFjaXR5Oi43NX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWhvcml6OmhvdmVyOmFmdGVyLC5pbWdodnItc2h1dHRlci1pbi1vdXQtaG9yaXo6aG92ZXI6YmVmb3Jle3dpZHRoOjEwMCV9LmltZ2h2ci1zaHV0dGVyLWluLW91dC12ZXJ0OmFmdGVyLC5pbWdodnItc2h1dHRlci1pbi1vdXQtdmVydDpiZWZvcmV7aGVpZ2h0OjA7d2lkdGg6MTAwJTtvcGFjaXR5Oi43NX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LXZlcnQ6aG92ZXI6YWZ0ZXIsLmltZ2h2ci1zaHV0dGVyLWluLW91dC12ZXJ0OmhvdmVyOmJlZm9yZXtoZWlnaHQ6MTAwJX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMTphZnRlciwuaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMTpiZWZvcmV7d2lkdGg6MjAwJTtoZWlnaHQ6MjAwJTt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZTtvcGFjaXR5Oi43NX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTpza2V3KC00NWRlZykgdHJhbnNsYXRlWCgtMTUwJSk7dHJhbnNmb3JtOnNrZXcoLTQ1ZGVnKSB0cmFuc2xhdGVYKC0xNTAlKX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMTpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2tldygtNDVkZWcpIHRyYW5zbGF0ZVgoMTUwJSk7dHJhbnNmb3JtOnNrZXcoLTQ1ZGVnKSB0cmFuc2xhdGVYKDE1MCUpfS5pbWdodnItc2h1dHRlci1pbi1vdXQtZGlhZy0xOmhvdmVyOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnNrZXcoLTQ1ZGVnKSB0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTpza2V3KC00NWRlZykgdHJhbnNsYXRlWCgtNTAlKX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMTpob3ZlcjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2tldygtNDVkZWcpIHRyYW5zbGF0ZVgoNTAlKTt0cmFuc2Zvcm06c2tldygtNDVkZWcpIHRyYW5zbGF0ZVgoNTAlKX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMjphZnRlciwuaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMjpiZWZvcmV7d2lkdGg6MjAwJTtoZWlnaHQ6MjAwJTt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZTtvcGFjaXR5Oi43NX0uaW1naHZyLXNodXR0ZXItaW4tb3V0LWRpYWctMjphZnRlcnstd2Via2l0LXRyYW5zZm9ybTpza2V3KDQ1ZGVnKSB0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06c2tldyg0NWRlZykgdHJhbnNsYXRlWCgtMTAwJSl9LmltZ2h2ci1zaHV0dGVyLWluLW91dC1kaWFnLTI6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNrZXcoNDVkZWcpIHRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnNrZXcoNDVkZWcpIHRyYW5zbGF0ZVgoMTAwJSl9LmltZ2h2ci1zaHV0dGVyLWluLW91dC1kaWFnLTI6aG92ZXI6YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2tldyg0NWRlZykgdHJhbnNsYXRlWCgwJSk7dHJhbnNmb3JtOnNrZXcoNDVkZWcpIHRyYW5zbGF0ZVgoMCUpfS5pbWdodnItc2h1dHRlci1pbi1vdXQtZGlhZy0yOmhvdmVyOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpza2V3KDQ1ZGVnKSB0cmFuc2xhdGVYKDAlKTt0cmFuc2Zvcm06c2tldyg0NWRlZykgdHJhbnNsYXRlWCgwJSl9W2NsYXNzXj1pbWdodnItc3dpdGNoLV0+aW1nLFtjbGFzc149aW1naHZyLXN3aXRjaC1dIGZpZ2NhcHRpb24sW2NsYXNzKj0nIGltZ2h2ci1zd2l0Y2gtJ10+aW1nLFtjbGFzcyo9JyBpbWdodnItc3dpdGNoLSddIGZpZ2NhcHRpb257dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42NDUsLjA0NSwuMzU1LDEpfVtjbGFzc149aW1naHZyLXN3aXRjaC1dOmhvdmVyIGZpZ2NhcHRpb24sW2NsYXNzKj0nIGltZ2h2ci1zd2l0Y2gtJ106aG92ZXIgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9LmltZ2h2ci1zd2l0Y2gtdXAgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5pbWdodnItc3dpdGNoLXVwOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5pbWdodnItc3dpdGNoLWRvd24gZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSl9LmltZ2h2ci1zd2l0Y2gtZG93bjpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpfS5pbWdodnItc3dpdGNoLWxlZnQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfS5pbWdodnItc3dpdGNoLWxlZnQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9LmltZ2h2ci1zd2l0Y2gtcmlnaHQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9LmltZ2h2ci1zd2l0Y2gtcmlnaHQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX1bY2xhc3NePWltZ2h2ci1waXZvdC1pbl0gZmlnY2FwdGlvbixbY2xhc3MqPScgaW1naHZyLXBpdm90LWluJ10gZmlnY2FwdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiMxMzU3OTZ9W2NsYXNzXj1pbWdodnItcGl2b3QtaW5dOmhvdmVyIGZpZ2NhcHRpb24sW2NsYXNzKj0nIGltZ2h2ci1waXZvdC1pbiddOmhvdmVyIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9LmltZ2h2ci1waXZvdC1pbi10b3AtbGVmdCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2Zvcm0tb3JpZ2luOjAgMH0uaW1naHZyLXBpdm90LWluLXRvcC1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS5pbWdodnItcGl2b3QtaW4tYm90dG9tLWxlZnQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX0uaW1naHZyLXBpdm90LWluLWJvdHRvbS1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bY2xhc3NePWltZ2h2ci1waXZvdC1vdXRdPmltZyxbY2xhc3MqPScgaW1naHZyLXBpdm90LW91dCddPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX1bY2xhc3NePWltZ2h2ci1waXZvdC1vdXRdIGZpZ2NhcHRpb24sW2NsYXNzKj0nIGltZ2h2ci1waXZvdC1vdXQnXSBmaWdjYXB0aW9ue2JhY2tncm91bmQtY29sb3I6IzEzNTc5Njt6LWluZGV4Oi0xfS5pbWdodnItcGl2b3Qtb3V0LXRvcC1sZWZ0PmltZ3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwfS5pbWdodnItcGl2b3Qtb3V0LXRvcC1sZWZ0OmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5pbWdodnItcGl2b3Qtb3V0LXRvcC1yaWdodD5pbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMH0uaW1naHZyLXBpdm90LW91dC10b3AtcmlnaHQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0uaW1naHZyLXBpdm90LW91dC1ib3R0b20tbGVmdD5pbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX0uaW1naHZyLXBpdm90LW91dC1ib3R0b20tbGVmdDpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5pbWdodnItcGl2b3Qtb3V0LWJvdHRvbS1yaWdodD5pbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0uaW1naHZyLXBpdm90LW91dC1ib3R0b20tcmlnaHQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9W2NsYXNzXj1pbWdodnItZm9sZF0sW2NsYXNzKj0iIGltZ2h2ci1mb2xkIl17LXdlYmtpdC1wZXJzcGVjdGl2ZTo1MGVtO3BlcnNwZWN0aXZlOjUwZW19W2NsYXNzXj1pbWdodnItZm9sZF0gaW1nLFtjbGFzcyo9IiBpbWdodnItZm9sZCJdIGltZ3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIDAlfVtjbGFzc149aW1naHZyLWZvbGRdIGZpZ2NhcHRpb24sW2NsYXNzKj0iIGltZ2h2ci1mb2xkIl0gZmlnY2FwdGlvbnt6LWluZGV4OjE7b3BhY2l0eTowfVtjbGFzc149aW1naHZyLWZvbGRdOmhvdmVyPmltZyxbY2xhc3MqPSIgaW1naHZyLWZvbGQiXTpob3Zlcj5pbWd7b3BhY2l0eTowO3RyYW5zaXRpb24tZGVsYXk6MH1bY2xhc3NePWltZ2h2ci1mb2xkXTpob3ZlciBmaWdjYXB0aW9uLFtjbGFzcyo9IiBpbWdodnItZm9sZCJdOmhvdmVyIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgwKSB0cmFuc2xhdGUzZCgwLDAlLDApIHNjYWxlKDEpO3RyYW5zZm9ybTpyb3RhdGVYKDApIHRyYW5zbGF0ZTNkKDAsMCUsMCkgc2NhbGUoMSk7b3BhY2l0eToxO3RyYW5zaXRpb24tZGVsYXk6LjIxc30uaW1naHZyLWZvbGQtdXA+aW1ney13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo1MCUgMCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgMCV9LmltZ2h2ci1mb2xkLXVwIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgtOTBkZWcpIHRyYW5zbGF0ZTNkKDAlLC01MCUsMCkgc2NhbGUoLjYpO3RyYW5zZm9ybTpyb3RhdGVYKC05MGRlZykgdHJhbnNsYXRlM2QoMCUsLTUwJSwwKSBzY2FsZSguNik7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAxMDAlO3RyYW5zZm9ybS1vcmlnaW46NTAlIDEwMCV9LmltZ2h2ci1mb2xkLXVwOmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDkwZGVnKSBzY2FsZSguNikgdHJhbnNsYXRlWSg1MCUpO3RyYW5zZm9ybTpyb3RhdGVYKDkwZGVnKSBzY2FsZSguNikgdHJhbnNsYXRlWSg1MCUpfS5pbWdodnItZm9sZC1kb3duPmltZ3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDEwMCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgMTAwJX0uaW1naHZyLWZvbGQtZG93biBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoOTBkZWcpIHRyYW5zbGF0ZTNkKDAlLDUwJSwwKSBzY2FsZSguNik7dHJhbnNmb3JtOnJvdGF0ZVgoOTBkZWcpIHRyYW5zbGF0ZTNkKDAlLDUwJSwwKSBzY2FsZSguNik7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSAwJX0uaW1naHZyLWZvbGQtZG93bjpob3Zlcj5pbWd7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgtOTBkZWcpIHNjYWxlKC42KSB0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTpyb3RhdGVYKC05MGRlZykgc2NhbGUoLjYpIHRyYW5zbGF0ZVkoLTUwJSl9LmltZ2h2ci1mb2xkLWxlZnQ+aW1ney13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowJSA1MCU7dHJhbnNmb3JtLW9yaWdpbjowJSA1MCV9LmltZ2h2ci1mb2xkLWxlZnQgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGUzZCgtNTAlLDAlLDApIHNjYWxlKC42KTt0cmFuc2Zvcm06cm90YXRlWSg5MGRlZykgdHJhbnNsYXRlM2QoLTUwJSwwJSwwKSBzY2FsZSguNik7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlO3RyYW5zZm9ybS1vcmlnaW46MTAwJSA1MCV9LmltZ2h2ci1mb2xkLWxlZnQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoLTkwZGVnKSBzY2FsZSguNikgdHJhbnNsYXRlWCg1MCUpO3RyYW5zZm9ybTpyb3RhdGVZKC05MGRlZykgc2NhbGUoLjYpIHRyYW5zbGF0ZVgoNTAlKX0uaW1naHZyLWZvbGQtcmlnaHQ+aW1ney13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlfS5pbWdodnItZm9sZC1yaWdodCBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoLTkwZGVnKSB0cmFuc2xhdGUzZCg1MCUsMCUsMCkgc2NhbGUoLjYpO3RyYW5zZm9ybTpyb3RhdGVZKC05MGRlZykgdHJhbnNsYXRlM2QoNTAlLDAlLDApIHNjYWxlKC42KTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCA1MCU7dHJhbnNmb3JtLW9yaWdpbjowIDUwJX0uaW1naHZyLWZvbGQtcmlnaHQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoOTBkZWcpIHNjYWxlKC42KSB0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTpyb3RhdGVZKDkwZGVnKSBzY2FsZSguNikgdHJhbnNsYXRlWCgtNTAlKX0uaW1naHZyLXpvb20taW4gZmlnY2FwdGlvbntvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO3RyYW5zZm9ybTpzY2FsZSguNSl9LmltZ2h2ci16b29tLWluOmhvdmVyIGZpZ2NhcHRpb257LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX1bY2xhc3NePWltZ2h2ci16b29tLW91dF0gZmlnY2FwdGlvbixbY2xhc3MqPSIgaW1naHZyLXpvb20tb3V0Il0gZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNSk7dHJhbnNmb3JtOnNjYWxlKC41KTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7b3BhY2l0eTowfVtjbGFzc149aW1naHZyLXpvb20tb3V0XTpob3ZlciBmaWdjYXB0aW9uLFtjbGFzc149aW1naHZyLXpvb20tb3V0XS5ob3ZlciBmaWdjYXB0aW9uLFtjbGFzcyo9IiBpbWdodnItem9vbS1vdXQiXTpob3ZlciBmaWdjYXB0aW9uLFtjbGFzcyo9IiBpbWdodnItem9vbS1vdXQiXS5ob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjE7dHJhbnNpdGlvbi1kZWxheTouMzVzfS5pbWdodnItem9vbS1vdXQ6aG92ZXI+aW1ney13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTt0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MH0uaW1naHZyLXpvb20tb3V0LXVwOmhvdmVyPmltZywuaW1naHZyLXpvb20tb3V0LXVwLmhvdmVyPmltZ3std2Via2l0LWFuaW1hdGlvbjppbWdodnItem9vbS1vdXQtdXAgLjQwMjVzIGxpbmVhcjthbmltYXRpb246aW1naHZyLXpvb20tb3V0LXVwIC40MDI1cyBsaW5lYXI7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfUAtd2Via2l0LWtleWZyYW1lcyBpbWdodnItem9vbS1vdXQtdXB7NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVZKDAlKTt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoMCUpO29wYWNpdHk6LjV9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWSgtMTUwJSk7dHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVZKC0xNTAlKTtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGltZ2h2ci16b29tLW91dC11cHs1MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoMCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWSgwJSk7b3BhY2l0eTouNX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVZKC0xNTAlKTt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoLTE1MCUpO29wYWNpdHk6LjV9fS5pbWdodnItem9vbS1vdXQtZG93bjpob3Zlcj5pbWcsLmltZ2h2ci16b29tLW91dC1kb3duLmhvdmVyPmltZ3std2Via2l0LWFuaW1hdGlvbjppbWdodnItem9vbS1vdXQtZG93biAuNDAyNXMgbGluZWFyO2FuaW1hdGlvbjppbWdodnItem9vbS1vdXQtZG93biAuNDAyNXMgbGluZWFyOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkc31ALXdlYmtpdC1rZXlmcmFtZXMgaW1naHZyLXpvb20tb3V0LWRvd257NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVZKDAlKTt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoMCUpO29wYWNpdHk6LjV9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWSgxNTAlKTt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoMTUwJSk7b3BhY2l0eTouNX19QGtleWZyYW1lcyBpbWdodnItem9vbS1vdXQtZG93bns1MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVkoMCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWSgwJSk7b3BhY2l0eTouNX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVZKDE1MCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWSgxNTAlKTtvcGFjaXR5Oi41fX0uaW1naHZyLXpvb20tb3V0LWxlZnQ6aG92ZXI+aW1nLC5pbWdodnItem9vbS1vdXQtbGVmdC5ob3Zlcj5pbWd7LXdlYmtpdC1hbmltYXRpb246aW1naHZyLXpvb20tb3V0LWxlZnQgLjQwMjVzIGxpbmVhcjthbmltYXRpb246aW1naHZyLXpvb20tb3V0LWxlZnQgLjQwMjVzIGxpbmVhcjstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIGltZ2h2ci16b29tLW91dC1sZWZ0ezUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgwJSk7dHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVYKDAlKTtvcGFjaXR5Oi41fTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVgoLTE1MCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgtMTUwJSk7b3BhY2l0eTouNX19QGtleWZyYW1lcyBpbWdodnItem9vbS1vdXQtbGVmdHs1MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgwJSk7b3BhY2l0eTouNX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVYKC0xNTAlKTt0cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVgoLTE1MCUpO29wYWNpdHk6LjV9fS5pbWdodnItem9vbS1vdXQtcmlnaHQ6aG92ZXI+aW1nLC5pbWdodnItem9vbS1vdXQtcmlnaHQuaG92ZXI+aW1ney13ZWJraXQtYW5pbWF0aW9uOmltZ2h2ci16b29tLW91dC1yaWdodCAuNDAyNXMgbGluZWFyO2FuaW1hdGlvbjppbWdodnItem9vbS1vdXQtcmlnaHQgLjQwMjVzIGxpbmVhcjstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIGltZ2h2ci16b29tLW91dC1yaWdodHs1MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgwJSk7b3BhY2l0eTouNX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVYKDE1MCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgxNTAlKTtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGltZ2h2ci16b29tLW91dC1yaWdodHs1MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjgpIHRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgwJSk7b3BhY2l0eTouNX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGVYKDE1MCUpO3RyYW5zZm9ybTpzY2FsZSguOCkgdHJhbnNsYXRlWCgxNTAlKTtvcGFjaXR5Oi41fX0uaW1naHZyLXpvb20tb3V0LWZsaXAtaG9yaXp7LXdlYmtpdC1wZXJzcGVjdGl2ZTo1MGVtO3BlcnNwZWN0aXZlOjUwZW19LmltZ2h2ci16b29tLW91dC1mbGlwLWhvcml6IGZpZ2NhcHRpb257b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoOTBkZWcpIHRyYW5zbGF0ZVkoLTEwMCUpIHNjYWxlKC41KTt0cmFuc2Zvcm06cm90YXRlWCg5MGRlZykgdHJhbnNsYXRlWSgtMTAwJSkgc2NhbGUoLjUpfS5pbWdodnItem9vbS1vdXQtZmxpcC1ob3Jpejpob3Zlcj5pbWcsLmltZ2h2ci16b29tLW91dC1mbGlwLWhvcml6LmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKC0xMDBkZWcpIHRyYW5zbGF0ZVkoNTAlKSBzY2FsZSguNSk7dHJhbnNmb3JtOnJvdGF0ZVgoLTEwMGRlZykgdHJhbnNsYXRlWSg1MCUpIHNjYWxlKC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbi1kZWxheTowfS5pbWdodnItem9vbS1vdXQtZmxpcC1ob3Jpejpob3ZlciBmaWdjYXB0aW9uLC5pbWdodnItem9vbS1vdXQtZmxpcC1ob3Jpei5ob3ZlciBmaWdjYXB0aW9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMCkgdHJhbnNsYXRlWSgwJSkgc2NhbGUoMSk7dHJhbnNmb3JtOnJvdGF0ZVgoMCkgdHJhbnNsYXRlWSgwJSkgc2NhbGUoMSk7b3BhY2l0eToxO3RyYW5zaXRpb24tZGVsYXk6LjM1c30uaW1naHZyLXpvb20tb3V0LWZsaXAtdmVydHstd2Via2l0LXBlcnNwZWN0aXZlOjUwZW07cGVyc3BlY3RpdmU6NTBlbX0uaW1naHZyLXpvb20tb3V0LWZsaXAtdmVydCBmaWdjYXB0aW9ue29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGUoNTAlLDApIHNjYWxlKC41KTt0cmFuc2Zvcm06cm90YXRlWSg5MGRlZykgdHJhbnNsYXRlKDUwJSwwKSBzY2FsZSguNSl9LmltZ2h2ci16b29tLW91dC1mbGlwLXZlcnQ6aG92ZXI+aW1nLC5pbWdodnItem9vbS1vdXQtZmxpcC12ZXJ0LmhvdmVyPmltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKC0xMDBkZWcpIHRyYW5zbGF0ZVgoNTAlKSBzY2FsZSguNSk7dHJhbnNmb3JtOnJvdGF0ZVkoLTEwMGRlZykgdHJhbnNsYXRlWCg1MCUpIHNjYWxlKC41KTtvcGFjaXR5OjA7dHJhbnNpdGlvbi1kZWxheTowfS5pbWdodnItem9vbS1vdXQtZmxpcC12ZXJ0OmhvdmVyIGZpZ2NhcHRpb24sLmltZ2h2ci16b29tLW91dC1mbGlwLXZlcnQuaG92ZXIgZmlnY2FwdGlvbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKDApIHRyYW5zbGF0ZSgwLDApIHNjYWxlKDEpO3RyYW5zZm9ybTpyb3RhdGVZKDApIHRyYW5zbGF0ZSgwLDApIHNjYWxlKDEpO29wYWNpdHk6MTt0cmFuc2l0aW9uLWRlbGF5Oi4zNXN9LmltZ2h2ci1ibHVyIGZpZ2NhcHRpb257b3BhY2l0eTowfS5pbWdodnItYmx1cjpob3Zlcj5pbWd7LXdlYmtpdC1maWx0ZXI6Ymx1cigzMHB4KTtmaWx0ZXI6Ymx1cigzMHB4KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjIpO3RyYW5zZm9ybTpzY2FsZSgxLjIpO29wYWNpdHk6MH0uaW1naHZyLWJsdXI6aG92ZXIgZmlnY2FwdGlvbntvcGFjaXR5OjE7dHJhbnNpdGlvbi1kZWxheTouMjFzfVtjbGFzc149aW1naHZyLWZhbGwtYXdheS1dLFtjbGFzcyo9JyBpbWdodnItZmFsbC1hd2F5LSddey13ZWJraXQtcGVyc3BlY3RpdmU6NTBlbTtwZXJzcGVjdGl2ZTo1MGVtfVtjbGFzc149aW1naHZyLWZhbGwtYXdheS1dIGltZyxbY2xhc3MqPScgaW1naHZyLWZhbGwtYXdheS0nXSBpbWd7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlO3RyYW5zaXRpb246YWxsIC40NTVzIGVhc2UtaW59W2NsYXNzXj1pbWdodnItZmFsbC1hd2F5LV0gZmlnY2FwdGlvbixbY2xhc3MqPScgaW1naHZyLWZhbGwtYXdheS0nXSBmaWdjYXB0aW9ue29wYWNpdHk6MDtiYWNrZ3JvdW5kLWNvbG9yOiMxMzU3OTZ9W2NsYXNzXj1pbWdodnItZmFsbC1hd2F5LV06aG92ZXIgaW1nLFtjbGFzcyo9JyBpbWdodnItZmFsbC1hd2F5LSddOmhvdmVyIGltZ3tvcGFjaXR5OjB9W2NsYXNzXj1pbWdodnItZmFsbC1hd2F5LV06aG92ZXIgZmlnY2FwdGlvbixbY2xhc3MqPScgaW1naHZyLWZhbGwtYXdheS0nXTpob3ZlciBmaWdjYXB0aW9ue29wYWNpdHk6MTt0cmFuc2l0aW9uLWRlbGF5Oi40NTVzfS5pbWdodnItZmFsbC1hd2F5LWhvcml6OmhvdmVyIGltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKC0zNjBkZWcpIHNjYWxlKC4yKTt0cmFuc2Zvcm06cm90YXRlWCgtMzYwZGVnKSBzY2FsZSguMil9LmltZ2h2ci1mYWxsLWF3YXktdmVydDpob3ZlciBpbWd7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgtMzYwZGVnKSBzY2FsZSguMik7dHJhbnNmb3JtOnJvdGF0ZVkoLTM2MGRlZykgc2NhbGUoLjIpfS5pbWdodnItZmFsbC1hd2F5LWNjOmhvdmVyIGltZ3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKSBzY2FsZSguMik7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpIHNjYWxlKC4yKX0uaW1naHZyLWZhbGwtYXdheS1jY2M6aG92ZXIgaW1ney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMzYwZGVnKSBzY2FsZSguMik7dHJhbnNmb3JtOnJvdGF0ZSgtMzYwZGVnKSBzY2FsZSguMil9"}},"time_used":127,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.803Z","timestamp":1785145403803,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-1ee2d\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":126509,"size_decoded":21609,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65533), with no line terminators","md5":"2406fa8cd95f6c431c7ed7f79c5742be","sha1":"b5e27293fc8406f6417b8f70224c1763ac23ef38","sha256":"b7cf0ab9557124204a1e70207922dfea0610416b031681afec1bd0cc7d319239","sha512":"31fa302e73fb3fd8f6467dc884783563925f6dbd9db081fee47b1471a21c9a2b546308b483aea4470128a33de14eb740bfc48dcc4c5a5f62e6f32c09fc27aa1e","ssdeep":"768:Y6w/ioCKJg3IBgbBNngHi6eLeXUAIXRzpT9Lnjsy3PavWTaOMzBecj5H7FpZlkNw:zw/iug3IAyiXeEBYvjUovgw","tlshash":"69c3eb53e1317238553b4f29b3dc26ad522ce422de430bfab5929919c7c7bf602a274d","first_seen":"2026-07-27T07:14:06.837854Z","last_seen":"2026-07-27T14:04:41.090026Z","times_seen":5,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsqLDo6YWZ0ZXIsOjpiZWZvcmV7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2Upezpyb290e3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9fWJvZHl7bWFyZ2luOjA7Zm9udC1mYW1pbHk6c3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Vnb2UgdWksUm9ib3RvLGhlbHZldGljYSBuZXVlLEFyaWFsLG5vdG8gc2FucyxzYW5zLXNlcmlmLGFwcGxlIGNvbG9yIGVtb2ppLHNlZ29lIHVpIGVtb2ppLHNlZ29lIHVpIHN5bWJvbCxub3RvIGNvbG9yIGVtb2ppO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fVt0YWJpbmRleD0iLTEiXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpe291dGxpbmU6MCFpbXBvcnRhbnR9aHJ7bWFyZ2luOjFyZW0gMDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2JvcmRlcjowO29wYWNpdHk6LjI1fWhyOm5vdChbc2l6ZV0pe2hlaWdodDoxcHh9aDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn1oMXtmb250LXNpemU6Y2FsYygxLjM3NXJlbSArIDEuNXZ3KX1AbWVkaWEobWluLXdpZHRoOjEyMDBweCl7aDF7Zm9udC1zaXplOjIuNXJlbX19aDJ7Zm9udC1zaXplOmNhbGMoMS4zMjVyZW0gKyAuOXZ3KX1AbWVkaWEobWluLXdpZHRoOjEyMDBweCl7aDJ7Zm9udC1zaXplOjJyZW19fWgze2ZvbnQtc2l6ZTpjYWxjKDEuM3JlbSArIC42dncpfUBtZWRpYShtaW4td2lkdGg6MTIwMHB4KXtoM3tmb250LXNpemU6MS43NXJlbX19aDR7Zm9udC1zaXplOmNhbGMoMS4yNzVyZW0gKyAuM3Z3KX1we21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFlbX1hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdLGFiYnJbdGl0bGVdey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7Y3Vyc29yOmhlbHA7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6bm9uZTt0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6bm9uZX1hZGRyZXNze21hcmdpbi1ib3R0b206MXJlbTtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDppbmhlcml0fW9sLHVse2xpc3Qtc3R5bGU6bm9uZX1kbCxvbCx1bHttYXJnaW46MDtwYWRkaW5nOjB9b2wgb2wsb2wgdWwsdWwgb2wsdWwgdWx7bWFyZ2luLWJvdHRvbTowfWR0e2ZvbnQtd2VpZ2h0OjcwMH1kZHttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi1sZWZ0OjB9YmxvY2txdW90ZXttYXJnaW46MCAwIDFyZW19YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfXNtYWxse2ZvbnQtc2l6ZTouODc1ZW19bWFya3twYWRkaW5nOi4yZW07YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzfXN1YixzdXB7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOi43NWVtO2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX1he3RleHQtZGVjb3JhdGlvbjpub25lfWE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pLGE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pOmhvdmVye2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6U0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLGxpYmVyYXRpb24gbW9ubyxjb3VyaWVyIG5ldyxtb25vc3BhY2U7Zm9udC1zaXplOjFlbTtkaXJlY3Rpb246bHRyO3VuaWNvZGUtYmlkaTpiaWRpLW92ZXJyaWRlfXByZXtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW07b3ZlcmZsb3c6YXV0bztmb250LXNpemU6Ljg3NWVtfXByZSBjb2Rle2ZvbnQtc2l6ZTppbmhlcml0O2NvbG9yOmluaGVyaXQ7d29yZC1icmVhazpub3JtYWx9Y29kZXtmb250LXNpemU6Ljg3NWVtO2NvbG9yOiNkNjMzODQ7d29yZC13cmFwOmJyZWFrLXdvcmR9YT5jb2Rle2NvbG9yOmluaGVyaXR9a2Jke3BhZGRpbmc6LjJyZW0gLjRyZW07Zm9udC1zaXplOi44NzVlbTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIxMjUyOTtib3JkZXItcmFkaXVzOi4ycmVtfWtiZCBrYmR7cGFkZGluZzowO2ZvbnQtc2l6ZToxZW07Zm9udC13ZWlnaHQ6NzAwfWZpZ3VyZXttYXJnaW46MCAwIDFyZW19aW1nLHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9dGFibGV7Y2FwdGlvbi1zaWRlOmJvdHRvbTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9Y2FwdGlvbntwYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLWJvdHRvbTouNXJlbTtjb2xvcjojNmM3NTdkO3RleHQtYWxpZ246bGVmdH10aHt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1hbGlnbjotd2Via2l0LW1hdGNoLXBhcmVudH10Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0cntib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjB9bGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2t9YnV0dG9ue2JvcmRlci1yYWRpdXM6MH1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe21hcmdpbjowO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9W3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn1zZWxlY3R7d29yZC13cmFwOm5vcm1hbH1bbGlzdF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntkaXNwbGF5Om5vbmV9W3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XSxidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1bdHlwZT1idXR0b25dOm5vdCg6ZGlzYWJsZWQpLFt0eXBlPXJlc2V0XTpub3QoOmRpc2FibGVkKSxbdHlwZT1zdWJtaXRdOm5vdCg6ZGlzYWJsZWQpLGJ1dHRvbjpub3QoOmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn06Oi1tb3otZm9jdXMtaW5uZXJ7cGFkZGluZzowO2JvcmRlci1zdHlsZTpub25lfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXNpemU6Y2FsYygxLjI3NXJlbSArIC4zdncpO2xpbmUtaGVpZ2h0OmluaGVyaXQ7d2hpdGUtc3BhY2U6bm9ybWFsfUBtZWRpYShtaW4td2lkdGg6MTIwMHB4KXtsZWdlbmR7Zm9udC1zaXplOjEuNXJlbX19bGVnZW5kKyp7Y2xlYXI6bGVmdH06Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXIsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtaG91ci1maWVsZCw6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taW51dGUsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQsOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCw6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxke3BhZGRpbmc6MH06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXtvdXRsaW5lLW9mZnNldDotMnB4Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGR9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlcntwYWRkaW5nOjB9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntmb250OmluaGVyaXQ7LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1vdXRwdXR7ZGlzcGxheTppbmxpbmUtYmxvY2t9aWZyYW1le2JvcmRlcjowfXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW07Y3Vyc29yOnBvaW50ZXJ9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH06cm9vdHstLXBob25lLXdpZHRoOjU3NnB4Oy0tdGFibGV0LXdpZHRoOjc2OHB4Oy0tZGVza3RvcC13aWR0aDoxMTEycHg7LS1kZXNrdG9wLXdpZHRoLXNtOjEwMjRweDstLWRlc2t0b3Atd2lkdGgtbToxMjgwcHg7LS1kZXNrdG9wLXdpZHRoLWw6MTQ0MHB4Oy0tZGVza3RvcC13aWR0aC14bDoxNjQwcHg7LS1kZXNrdG9wLXdpZHRoLTE5MjA6MTkyMHB4Oy0tY29udGVudC13aWR0aDp2YXIoLS1kZXNrdG9wLXdpZHRoLW0pOy0tYmxvZy13aWR0aDo4NTBweDstLXBhZ2UtZ3V0dGVyOjIwcHg7LS1ncmlkLWd1dHRlcjoyNHB4Oy0tdmVydGljYWwtZ2FwOjV2bWluOy0tYmFzZS10cmFuc2l0aW9uOi4zczstLXByaW1hcnktY29sb3IxOiNmZmExNmM7LS1wcmltYXJ5LWNvbG9yMjojMzY1MmE3Oy0tcHJpbWFyeS1jb2xvcjM6I2Y0ZmNmZTstLXNlY29uZGFyeS1jb2xvcjE6I2ZmZmZmZjstLXNlY29uZGFyeS1jb2xvcjI6IzI1MjgzMTstLXNlY29uZGFyeS1jb2xvcjM6I2ZmNTMyZDstLWJvZHktYmc6I2ZmZmZmZjstLWJvZHktYmctYWx0OiMzMzM7LS1ib2R5LXRleHQtY29sb3I6IzMzMzstLWJvZHktdGV4dC1jb2xvci1hbHQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7LS10aXRsZXMtY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7LS10aXRsZXMtY29sb3ItYWx0OnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy0tdGl0bGVzLWNvbG9yLWFjY2VudDp2YXIoLS1zZWNvbmRhcnktY29sb3IzKTstLXByaW1hcnktbGluay1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7LS1wcmltYXJ5LWxpbmstY29sb3ItYWx0OnZhcigtLXNlY29uZGFyeS1jb2xvcjIpOy0tYm9yZGVyLWNvbG9yOiMzMzM7LS1ib3JkZXItcmFkaXVzLXNtYWxsOjEwcHg7LS1ib3JkZXItcmFkaXVzOjIwcHg7LS1kZWZhdWx0LXRvcC1nYXA6OHZtaW59QG1lZGlhKG1heC13aWR0aDoxMTEycHgpezpyb290ey0tdmVydGljYWwtZ2FwOjIwcHg7LS1wYWdlLWd1dHRlcjoyMHB4Oy0tY29udGVudC13aWR0aDp2YXIoLS10YWJsZXQtd2lkdGgpfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCkgYW5kIChtYXgtd2lkdGg6MTQ0MHB4KXs6cm9vdHstLWNvbnRlbnQtd2lkdGg6dmFyKC0tZGVza3RvcC13aWR0aC1zbSl9fXNlY3Rpb257cG9zaXRpb246cmVsYXRpdmV9LmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlcntib3R0b206MTMwcHghaW1wb3J0YW50fWZvbnR7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItY3VzdG9tLWljb24tb3Blbnstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCkgc2NhbGUoMS41KSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnJvdGF0ZSgwKSBzY2FsZSgxLjUpIWltcG9ydGFudH0uaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyOmhvdmVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNikhaW1wb3J0YW50O3RyYW5zZm9ybTpzY2FsZSgxLjYpIWltcG9ydGFudH0uaW50ZXJjb20tbmFtZXNwYWNlIC5pbnRlcmNvbS1kZm9zeHN7Ym90dG9tOjEzMHB4IWltcG9ydGFudDt6LWluZGV4OjIhaW1wb3J0YW50fS5pbnRlcmNvbS1saWdodHdlaWdodC1hcHB7ei1pbmRleDoyIWltcG9ydGFudH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnJvYm90bztmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCguLi8uLi9mb250cy9yb2JvdG8vcm9ib3RvLXYzMC1sYXRpbi1yZWd1bGFyLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uL2ZvbnRzL3JvYm90by9yb2JvdG8tdjMwLWxhdGluLXJlZ3VsYXIud29mZikgZm9ybWF0KCJ3b2ZmIil9QGZvbnQtZmFjZXtmb250LWZhbWlseTpyb2JvdG87Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoLi4vLi4vZm9udHMvcm9ib3RvL3JvYm90by12MzAtbGF0aW4tNTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uL2ZvbnRzL3JvYm90by9yb2JvdG8tdjMwLWxhdGluLTUwMC53b2ZmKSBmb3JtYXQoIndvZmYiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnJvYm90bztmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCguLi8uLi9mb250cy9yb2JvdG8vcm9ib3RvLXYzMC1sYXRpbi03MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vLi4vZm9udHMvcm9ib3RvL3JvYm90by12MzAtbGF0aW4tNzAwLndvZmYpIGZvcm1hdCgid29mZiIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6ZmlndHJlZTtmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCguLi8uLi9mb250cy9maWd0cmVlL2ZpZ3RyZWUtdjQtbGF0aW4ud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vLi4vZm9udHMvZmlndHJlZS9maWd0cmVlLXY0LWxhdGluLndvZmYpIGZvcm1hdCgid29mZiIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6ZmlndHJlZTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCguLi8uLi9mb250cy9maWd0cmVlL2ZpZ3RyZWUtdjQtbGF0aW4tcmVndWxhci53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi8uLi9mb250cy9maWd0cmVlL2ZpZ3RyZWUtdjQtbGF0aW4tcmVndWxhci53b2ZmKSBmb3JtYXQoIndvZmYiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OmZpZ3RyZWU7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoLi4vLi4vZm9udHMvZmlndHJlZS9maWd0cmVlLXY0LWxhdGluLTUwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi8uLi9mb250cy9maWd0cmVlL2ZpZ3RyZWUtdjQtbGF0aW4tNTAwLndvZmYpIGZvcm1hdCgid29mZiIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6ZmlndHJlZTtmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCguLi8uLi9mb250cy9maWd0cmVlL2ZpZ3RyZWUtdjQtbGF0aW4tNjAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uL2ZvbnRzL2ZpZ3RyZWUvZmlndHJlZS12NC1sYXRpbi02MDAud29mZikgZm9ybWF0KCJ3b2ZmIil9QGZvbnQtZmFjZXtmb250LWZhbWlseTpmaWd0cmVlO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6c3dhcDtzcmM6dXJsKC4uLy4uL2ZvbnRzL2ZpZ3RyZWUvZmlndHJlZS12NC1sYXRpbi03MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vLi4vZm9udHMvZmlndHJlZS9maWd0cmVlLXY0LWxhdGluLTcwMC53b2ZmKSBmb3JtYXQoIndvZmYiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnJhbGV3YXk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoLi4vLi4vZm9udHMvcmFsZXdheS9yYWxld2F5LXYxNy1sYXRpbi1yZWd1bGFyLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uL2ZvbnRzL3JhbGV3YXkvcmFsZXdheS12MTctbGF0aW4tcmVndWxhci53b2ZmKSBmb3JtYXQoIndvZmYiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnJhbGV3YXk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoLi4vLi4vZm9udHMvcmFsZXdheS9yYWxld2F5LXYxNy1sYXRpbi01MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vLi4vZm9udHMvcmFsZXdheS9yYWxld2F5LXYxNy1sYXRpbi01MDAud29mZikgZm9ybWF0KCJ3b2ZmIil9QGZvbnQtZmFjZXtmb250LWZhbWlseTpyYWxld2F5O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6c3dhcDtzcmM6dXJsKC4uLy4uL2ZvbnRzL3JhbGV3YXkvcmFsZXdheS12MTctbGF0aW4tNzAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uLy4uL2ZvbnRzL3JhbGV3YXkvcmFsZXdheS12MTctbGF0aW4tNzAwLndvZmYpIGZvcm1hdCgid29mZiIpfTpyb290ey0tZm9udC1mYW1pbHktcHJpbWFyeToiZmlndHJlZSIsc2Fucy1zZXJpZjstLWZvbnQtZmFtaWx5LXNlY29uZGFyeToicmFsZXdheSIsc2Fucy1zZXJpZjstLWJhc2UtdGV4dC1zaXplOjEuOHJlbTstLWJhc2UtdGV4dC1mb250OnZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpOy0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0OjEuNjstLWJhc2UtdGV4dC1mb250LXdlaWdodDo0MDA7LS1sYXJnZXItdGV4dC1zaXplOjIuMnJlbTstLWxhcmdlci10ZXh0LWZvbnQtd2VpZ2h0OjQwMDstLXNtYWxsZXItdGV4dC1zaXplOjEuNnJlbTstLXNtYWxsZXItdGV4dC1mb250LXdlaWdodDo0MDA7LS1ibG9nLXRleHQtc2l6ZToxLjhyZW07LS1ibG9nLXRleHQtZm9udC13ZWlnaHQ6NDAwOy0taC1jbGFtcC1mb3JtdWxhOjN2dyArIDEuNXJlbTstLWgxLWZvbnQtc2l6ZTo2LjhyZW07LS1oMS1mb250LXNpemUtbW9iaWxlOjM2cHg7LS1oMS1saW5lLWhlaWdodDoxOy0taDEtbGV0dGVyLXNwYWNpbmc6LTIuMDRweDstLWgxLW1hcmdpbi1ib3R0b206LjVlbTstLWgxLWZvbnQ6dmFyKC0tZm9udC1mYW1pbHktcHJpbWFyeSk7LS1oMS1mb250LXdlaWdodDo2MDA7LS1oMS10ZXh0LXRyYW5zZm9ybTpub25lOy0taDItZm9udC1zaXplOjVyZW07LS1oMi1mb250LXNpemUtbW9iaWxlOjMwcHg7LS1oMi1saW5lLWhlaWdodDoxOy0taDItbGV0dGVyLXNwYWNpbmc6MDstLWgyLW1hcmdpbi1ib3R0b206LjVlbTstLWgyLWZvbnQ6dmFyKC0tZm9udC1mYW1pbHktcHJpbWFyeSk7LS1oMi1mb250LXdlaWdodDo2MDA7LS1oMi10ZXh0LXRyYW5zZm9ybTpub25lOy0taDMtZm9udC1zaXplOjMuMnJlbTstLWgzLWZvbnQtc2l6ZS1tb2JpbGU6MjJweDstLWgzLWxpbmUtaGVpZ2h0OjE7LS1oMy1sZXR0ZXItc3BhY2luZzowOy0taDMtbWFyZ2luLWJvdHRvbTouNWVtOy0taDMtZm9udDp2YXIoLS1mb250LWZhbWlseS1wcmltYXJ5KTstLWgzLWZvbnQtd2VpZ2h0OjYwMDstLWgzLXRleHQtdHJhbnNmb3JtOm5vbmU7LS1oNC1mb250LXNpemU6Mi4ycmVtOy0taDQtZm9udC1zaXplLW1vYmlsZToxNnB4Oy0taDQtbGluZS1oZWlnaHQ6MS4zOy0taDQtbGV0dGVyLXNwYWNpbmc6MTstLWg0LW1hcmdpbi1ib3R0b206LjVlbTstLWg0LWZvbnQ6dmFyKC0tZm9udC1mYW1pbHktcHJpbWFyeSk7LS1oNC1mb250LXdlaWdodDo2MDA7LS1oNC10ZXh0LXRyYW5zZm9ybTpub25lOy0tcHJldGl0bGUtY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpOy0tcHJldGl0bGUtY29sb3ItYWx0OnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy0tcHJldGl0bGUtZm9udC1zaXplOjEuN3JlbTstLXByZXRpdGxlLWZvbnQtc2l6ZS1tb2JpbGU6MjBweDstLXByZXRpdGxlLWxpbmUtaGVpZ2h0OjEuMjstLXByZXRpdGxlLWxldHRlci1zcGFjaW5nOjA7LS1wcmV0aXRsZS1tYXJnaW4tYm90dG9tOi4zZW07LS1wcmV0aXRsZS1mb250OnZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpOy0tcHJldGl0bGUtZm9udC13ZWlnaHQ6NDAwOy0tcHJldGl0bGUtdGV4dC10cmFuc2Zvcm06bm9uZTstLXN1YnRpdGxlLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLXN1YnRpdGxlLWNvbG9yLWFsdDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLXN1YnRpdGxlLWZvbnQtc2l6ZToyLjhyZW07LS1zdWJ0aXRsZS1mb250LXNpemUtbW9iaWxlOjIwcHg7LS1zdWJ0aXRsZS1saW5lLWhlaWdodDoxLjI7LS1zdWJ0aXRsZS1sZXR0ZXItc3BhY2luZzoxOy0tc3VidGl0bGUtbWFyZ2luLWJvdHRvbTouM2VtOy0tc3VidGl0bGUtZm9udDp2YXIoLS1mb250LWZhbWlseS1wcmltYXJ5KTstLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OjQwMDstLXN1YnRpdGxlLXRleHQtdHJhbnNmb3JtOm5vbmV9OnJvb3R7LS1idG4tZm9udC1mYW1pbHk6dmFyKC0tZm9udC1mYW1pbHktcHJpbWFyeSk7LS1idG4tZm9udC1zaXplOjEuNnJlbTstLWJ0bi1mb250LXdlaWdodDo2MDA7LS1idG4tdGV4dC10cmFuc2Zvcm06bm9uZTstLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b206MTdweDstLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQ6MzBweDstLWJ0bi1ib3JkZXItcmFkaXVzOjE1cHg7LS1idG4tcHJpbWFyeS1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMyk7LS1idG4tcHJpbWFyeS1jb2xvci1ob3Zlcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLWJ0bi1wcmltYXJ5LWJnOnZhcigtLXByaW1hcnktY29sb3IyKTstLWJ0bi1wcmltYXJ5LWJnLWhvdmVyOnZhcigtLXNlY29uZGFyeS1jb2xvcjMpOy0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKTstLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvci1ob3Zlcjp2YXIoLS1zZWNvbmRhcnktY29sb3IzKTstLWJ0bi1wcmltYXJ5LWJvcmRlcjowcHg7LS1idG4tcHJpbWFyeS1zaGFkb3c6MHB4IDEwcHggMjBweCAwcHggcmdiYSgyNTUsIDgzLCA0NSwgMC4wMCk7LS1idG4tc2Vjb25kYXJ5LWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLWJ0bi1zZWNvbmRhcnktY29sb3ItaG92ZXI6dmFyKC0tcHJpbWFyeS1jb2xvcjEpOy0tYnRuLXNlY29uZGFyeS1iZzp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLWJ0bi1zZWNvbmRhcnktYmctaG92ZXI6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7LS1idG4tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTstLWJ0bi1zZWNvbmRhcnktYm9yZGVyLWNvbG9yLWhvdmVyOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpOy0tYnRuLXNlY29uZGFyeS1ib3JkZXI6MXB4Oy0tYnRuLXNlY29uZGFyeS1zaGFkb3c6bm9uZTstLWJ0bi1saW5rLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLWJ0bi1saW5rLWNvbG9yLWhvdmVyOnZhcigtLXByaW1hcnktY29sb3IyKTstLWxpbmstaWNvbi1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMik7LS1idXR0b24tZmxleC1kaXJlY3Rpb246cm93fTpyb290ey0tbGFiZWwtZm9udC1zaXplOjEuNnJlbTstLWxhYmVsLWZvbnQtd2VpZ2h0OjMwMDstLWxhYmVsLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IzKTstLWlucHV0LWJvcmRlci13aWR0aDoxcHg7LS1pbnB1dC1ib3JkZXItcmFkaXVzOnB4Oy0taW5wdXQtcGFkZGluZy10b3AtYm90dG9tOjEwcHg7LS1pbnB1dC1wYWRkaW5nLWxlZnQtcmlnaHQ6MTVweDstLWlucHV0LWZvbnQtc2l6ZToxLjhyZW07LS1pbnB1dC1mb250LXdlaWdodDo0MDA7LS1pbnB1dC1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7LS1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLWZvcm0tcm93LW1hcmdpbi10b3AtYm90dG9tOjE1cHg7LS1mb3JtLXJvdy1tYXJnaW4tbGVmdC1yaWdodDowcHg7LS1tZXNzYWdlLWZvbnQtc2l6ZToxLjZyZW07LS1tZXNzYWdlLWxpbmUtaGVpZ2h0OjEuNTstLW1lc3NhZ2UtZm9udC13ZWlnaHQ6NDAwOy0tdmFsaWRhdGlvbi1lcnJvci1jb2xvcjojZGE3NDdiOy0tdmFsaWRhdGlvbi1zdWNjZXNzLWNvbG9yOiM1MGIyYTA7LS12YWxpZGF0aW9uLW5vdGljZS1jb2xvcjojZmZiNzAwfTpyb290ey0taGVhZGVyLWhpZ2h0OjEwMHB4fS5zaXRlLWhlYWRlcnstLWhlYWRlci1zdGlja3ktdHlwZTpmaXhlZDstLWhlYWRlci1zdGlja3ktYmc6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOy0taGVhZGVyLXRvcC1iZzp2YXIoLS1wcmltYXJ5LWNvbG9yMyk7LS1oZWFkZXItdG9wLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpOy0taGVhZGVyLXRvcC1jb2xvci1ob3Zlcjp2YXIoLS1zZWNvbmRhcnktY29sb3IzKTstLWhlYWRlci10b3Atc2l6ZToxNHB4Oy0taGVhZGVyLXRvcC12ZXJ0aWNhbC1wYWRkaW5nOjEwcHg7LS1oZWFkZXItdG9wLWdhcC1iZXR3ZWVuLWl0ZW1zOjEwcHg7LS1oZWFkZXItbWFpbi1iZzojZmZmOy0taGVhZGVyLW1haW4tY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjMpOy0taGVhZGVyLW1haW4tY29sb3ItaG92ZXI6dmFyKC0tcHJpbWFyeS1jb2xvcjIpOy0taGVhZGVyLW1haW4tZm9udC1zaXplOjE4cHg7LS1oZWFkZXItbWFpbi1mb250LXdlaWdodDo0MDA7LS1oZWFkZXItbWFpbi10ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7LS1oZWFkZXItbWFpbi1nYXAtYmV0d2Vlbi1pdGVtczoxNXB4Oy0taGVhZGVyLW1haW4tdmVydGljYWwtcGFkZGluZzoxNXB4Oy0taGVhZGVyLW1haW4tbmF2LWhlaWdodDo0MHB4Oy0taGVhZGVyLWxvZ28td2lkdGg6MTAwJTstLWhlYWRlci1sb2dvLWhlaWdodDo1M3B4Oy0tZHJvcGRvd24tYmc6I2ZmZjstLWRyb3Bkb3duLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKTstLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZTp2YXIoLS1wcmltYXJ5LWNvbG9yMik7LS1kcm9wZG93bi1mb250LXNpemU6MTZweDstLWRyb3Bkb3duLWZvbnQtd2VpZ2h0OjYwMDstLWRyb3Bkb3duLXBhZGRpbmc6NDBweCAyNXB4IDIwcHg7LS1kcm9wZG93bi13aWR0aDozMDBweDstLWNvbnRlbnQtd2lkdGg6dmFyKC0tZGVza3RvcC13aWR0aC1sKX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyey0taGVhZGVyLWhpZ2h0OjUwcHg7LS1idXJnZXItd2lkdGg6MjRweDstLWJ1cmdlci1zZWdtZW50LWhpZ2h0OjNweDstLWJ1cmdlci1zZWdtZW50LWdhcDo3cHg7LS1idXJnZXItc2VnbWVudC1yYWRpdXM6NXB4Oy0tYnVyZ2VyLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTstLWJ1cmdlci1iZzp2YXIoLS1zZWNvbmRhcnktY29sb3ItMSk7LS1oZWFkZXItbW9iaWxlLWJnOnZhcigtLXByaW1hcnktY29sb3IyKTstLWxpbmstc2l6ZS1sMToxNnB4Oy0tbGluay1zaXplLWwyOjE0cHg7LS1saW5rLWNvbG9yOiNmZmY7LS1saW5rLWdhcDoxMHB4fX0uc2l0ZS1zZWFyY2h7LS1zZWFyY2gtc2l6ZTozMHB4Oy0tc2VhcmNoLWJ0bi1iZzp0cmFuc3BhcmVudDstLXNlYXJjaC1idG4tcmFkaXVzOjRweDstLXNlYXJjaC1oZWlnaHQ6MzBweDstLXNlYXJjaC13aWR0aDoyNTBweDstLXNlYXJjaC1yYWRpdXM6NHB4Oy0tc2VhcmNoLW91dGVyLWJnOnZhcigtLXByaW1hcnktY29sb3IzKTstLXNlYXJjaC1vdXRlci1nYXA6NXB4Oy0tc2VhcmNoLW91dGVyLWJvcmRlcjojMzMzfS5zaXRlLWZvb3RlcnstLWZvb3Rlci1iZy1jb2xvcjojRjRGQ0ZFOy0tZm9vdGVyLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpOy0tZm9vdGVyLXRvcC1wYWRkaW5nOjV2aDstLWZvb3Rlci10b3AtZm9udC1zaXplOjEuOHJlbTstLWZvb3Rlci10b3AtbmF2LWRpcmVjdGlvbjpyb3c7LS1mb290ZXItYm90dG9tLWJnLWNvbG9yOnZhcigtLXByaW1hcnktY29sb3IzKTstLWZvb3Rlci1ib3R0b20tY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7LS1mb290ZXItYm90dG9tLXBhZGRpbmc6MS4yZW07LS1mb290ZXItYm90dG9tLWZvbnQtc2l6ZToxM3B4Oy0tZm9vdGVyLXRvcC1ib3JkZXI6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7LS1mb290ZXItdG9wLWJvcmRlci1zaXplOjVweDstLWZvb3Rlci1saW5rLWdhcF92Oi44ZW07LS1mb290ZXItbGluay1nYXBfaDoxMHB4Oy0tZm9vdGVyLWxvZ28taGVpZ2h0OjMwcHg7LS1mb290ZXItbG9nby13aWR0aDoxNTBweDstLWZvb3Rlci10aXRsZS1zaXplOjEuOHJlbTstLWZvb3Rlci10aXRsZS13ZWlnaHQ6NzAwOy0tZm9vdGVyLXRpdGxlLXRyYW5zZm9ybTp1cHBlcmNhc2V9OnJvb3R7LS1sLWJsb2NrLWdhcC12ZXJ0aWNhbDoxNXB4Oy0tbC1ibG9jay1nYXAtaG9yaXpvbnRhbDoyMHB4Oy0tYy1ibG9jay10aXRsZS1zaXplOmNsYW1wKHZhcigtLWg0LWZvbnQtc2l6ZS1tb2JpbGUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1oNC1mb250LXNpemUpKTstLWMtYmxvY2stdGl0bGUtd2VpZ2h0OnZhcigtLWg0LWZvbnQtd2VpZ2h0KTstLWMtYmxvY2stdGl0bGUtdHJhbnNmb3JtOnZhcigtLWg0LXRleHQtdHJhbnNmb3JtKTstLWMtYmxvY2stdGl0bGUtY29sb3I6dmFyKC0tdGl0bGVzLWNvbG9yKTstLWMtYmxvY2stdGV4dC1zaXplOnZhcigtLWJhc2UtdGV4dC1zaXplKTstLdGBLWJsb2NrLXBhZGRpbmc6MTVweDstLWMtYmxvY2stYWxpZ246bGVmdDstLWMtYmxvY2stYmc6I2ZmZjstLWMtYmxvY2stY29sb3I6aW5oZXJpdDstLWMtYmxvY2stc2hhZG93OjAgMCA0cHggMnB4IHJnYmEoMCwwLDAsLjA1KTstLWMtYmxvY2stcmFkaXVzOjA7LS1ibG9ja3F1b3RlLXN0eWxlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlOakFpSUdobGFXZG9kRDBpTXpVaUlHWnBiR3c5SW01dmJtVWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SStQR2NnYjNCaFkybDBlVDBpTGpJaUlHWnBiR3c5SWlNMVFUWkROMFFpUGp4d1lYUm9JR1E5SWswdU9TQXhOQzQzSURVdU55NDBhRFV1TW13dE5DQXhNeTQwYURSMk1UQXVPRWd1T1hZdE9TNDVXbTB4TlM0eUlEQk1NakF1T1M0MGFEVXVNbXd0TkNBeE15NDBhRFIyTVRBdU9HZ3RNVEIyTFRrdU9WcE5Nemd1TWlBeU1TNHlhQzAwVmpFd0xqUm9NVEIyT1M0NWJDMDBMamdnTVRRdU0yZ3ROUzR5YkRRdE1UTXVORnB0TVRVdU1pQXdhQzAwVmpFd0xqUm9NVEIyT1M0NWJDMDBMamdnTVRRdU0yZ3ROUzR5YkRRdE1UTXVORm9pTHo0OEwyYytQQzl6ZG1jKyl9LmlzLXd5c2l3eWd7LS13eXNpd3lnLW1hcmdpbjoxLjVlbTstLXd5c2l3eWctbGktcGFkZGluZzowIDAgMCAzMHB4Oy0td3lzaXd5Zy1saS1iZ3A6MCAuM2VtOy0td3lzaXd5Zy1saS1tYXJnaW46MWVtOy0tbGlzdC1pdGVtLXN0eWxlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxOCcgaGVpZ2h0PScxOCcgdmlld0JveD0nMCAwIDE4IDE4JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZD0nTTE3IDguMjY4NThWOS4wMDQ1OEMxNi45OTkgMTAuNzI5NyAxNi40NDA0IDEyLjQwODMgMTUuNDA3NSAxMy43OUMxNC4zNzQ1IDE1LjE3MTggMTIuOTIyNiAxNi4xODI2IDExLjI2ODMgMTYuNjcxN0M5LjYxMzk0IDE3LjE2MDggNy44NDU4MSAxNy4xMDIxIDYuMjI3NTcgMTYuNTA0MkM0LjYwOTM0IDE1LjkwNjQgMy4yMjc3MiAxNC44MDE1IDIuMjg4NzcgMTMuMzU0MkMxLjM0OTgxIDExLjkwNyAwLjkwMzgzMyAxMC4xOTUgMS4wMTczNCA4LjQ3MzYzQzEuMTMwODUgNi43NTIyMyAxLjc5Nzc3IDUuMTEzNjQgMi45MTg2MiAzLjgwMjI0QzQuMDM5NDggMi40OTA4MyA1LjU1NDIzIDEuNTc2ODggNy4yMzY5NSAxLjE5NjdDOC45MTk2NyAwLjgxNjUwNyAxMC42ODAyIDAuOTkwNDQ5IDEyLjI1NiAxLjY5MjU4JyBzdHJva2U9JyUyMzM2NTNBNycgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQ3BhdGggZD0nTTE3LjAwMTYgMi42MDQ1OEw5LjAwMTU2IDEwLjYxMjZMNi42MDE1NiA4LjIxMjU4JyBzdHJva2U9JyUyMzM2NTNBNycgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQy9zdmclM0UiKX0uc29jaWFsLWxpc3R7LS1zb2NpYWwtaWNvbi1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7LS1zb2NpYWwtaWNvbi1jb2xvci1ob3Zlcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstLXNvY2lhbC1pY29uLWJnOnZhcigtLXByaW1hcnktY29sb3IyKTstLXNvY2lhbC1pY29uLWJnLWhvdmVyOnZhcigtLXByaW1hcnktY29sb3IxKTstLXNvY2lhbC1pY29uLXJhZGl1czoxNXB4Oy0tc29jaWFsLWljb24tc2l6ZTo1MHB4fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5zb2NpYWwtbGlzdHstLXNvY2lhbC1pY29uLXNpemU6NzVweH19LmwtcG9zdHN7LS1sLWJsb2NrLWNvbDozOy0t0YEtYmxvY2stcGFkZGluZzoxNXB4IDA7LS1jLWJsb2NrLWJnOnRyYW5zcGFyZW50Oy0tYy1ibG9jay1yYWRpdXM6MTVweDstLWMtYmxvY2stc2hhZG93Om5vbmU7LS1sLXBvc3QtaW1nLXJhZGl1czoyMHB4Oy0tbC1wb3N0LWltZy1yYXRpbzo1LzM7LS1sLXBvc3QtZGF0ZS1zaXplOjE0cHg7LS1sLXBvc3QtdGFnLXNpemU6MTRweDstLWwtcG9zdC10YWctY29sb3I6IzY2NjstLWwtcG9zdC10YWctdHJhbnNmb3JtOnVwcGVyY2FzZTstLWwtcG9zdC10YWctd2VpZ2h0OjYwMH0ubS1zbGlkZXJ7LS1zd2lwZXItb3V0ZXItZ2FwOjgwcHg7LS1zd2lwZXItYXJyb3dzLWJnOnJnYmEoMjU1LDI1NSwyNTUsLjQpOy0tc3dpcGVyLWFycm93cy1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7LS1zd2lwZXItYXJyb3dzLXNoYWRvdzowIDEycHggMTRweCByZ2JhKDMzLCAzMywgMzMsIDAuMSksMCA0cHggNHB4IHJnYmEoMzMsIDMzLCAzMywgMC4xKTstLXN3aXBlci1uYXZpZ2F0aW9uLXNpemU6NTBweDstLXN3aXBlci1wYWdpbmF0aW9uLXJhZGl1czoyMHB4Oy0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhvcml6b250YWwtZ2FwOjEwcHg7LS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZToyNHB4Oy0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWJvcmRlcjojY2NjOy0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWluYWN0aXZlLWNvbG9yOnRyYW5zcGFyZW50Oy0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWJvcmRlci1hY3RpdmU6dmFyKC0tcHJpbWFyeS1jb2xvcjEpOy0tc3dpcGVyLXBhZ2luYXRpb24tY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpOy0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWluYWN0aXZlLW9wYWNpdHk6Ljg7LS10aHVtYi1zaXplOjY1cHg7LS10aHVtYi1yYWRpdXM6NTAlOy0tdGh1bWItYmQtc2l6ZToycHg7LS10aHVtYi1iZC1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMyk7LS10aHVtYi1iZC1jb2xvci1hY3RpdmU6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubS1zbGlkZXJ7LS1zd2lwZXItbmF2aWdhdGlvbi1zaXplOjM1cHg7LS1zd2lwZXItb3V0ZXItZ2FwOjQwcHg7LS10aHVtYi1zaXplOjMwcHh9fWh0bWx7Zm9udC1zaXplOjUwJX1AbWVkaWEobWluLXdpZHRoOjEyODFweCl7aHRtbHtmb250LXNpemU6NTglfX1AbWVkaWEobWluLXdpZHRoOjE0NDFweCl7aHRtbHtmb250LXNpemU6NjIuNSV9fWJvZHl7bGluZS1oZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0LDEpO2ZvbnQtd2VpZ2h0OnZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCw0MDApO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpO2ZvbnQtc2l6ZTp2YXIoLS1iYXNlLXRleHQtc2l6ZSl9Ym9keXtjb2xvcjp2YXIoLS1ib2R5LXRleHQtY29sb3IsIzMzMyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ib2R5LWJnLCNmZmYpfVtjb2xvci1tb2RlPWRhcmtdIGJvZHl7YmFja2dyb3VuZC1jb2xvcjojMjIyO2NvbG9yOnZhcigtLWJvZHktYmcsI2ZmZil9YXtjb2xvcjp2YXIoLS1wcmltYXJ5LWxpbmstY29sb3IpfVtjb2xvci1tb2RlPWRhcmtdIGF7Y29sb3I6dmFyKC0tcHJpbWFyeS1saW5rLWNvbG9yLWFsdCl9LmNvbG9ycy1pbnZlcnRlZHtjb2xvcjp2YXIoLS1ib2R5LXRleHQtY29sb3ItYWx0KTstLXNlY3Rpb24tdGl0bGUtY29sb3I6dmFyKC0tc2VjdGlvbi10aXRsZS1jb2xvci1hbHQpfWJvZHksaHRtbHtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjEwMCV9LndyYXBwZXJ7bWluLWhlaWdodDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtYWxpZ246c3RyZXRjaDstbXMtZmxleC1hbGlnbjpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2h9QG1lZGlhKG1pbi13aWR0aDoxOTIxcHgpey53cmFwcGVye21heC13aWR0aDp2YXIoLS1kZXNrdG9wLXdpZHRoLTE5MjApO21hcmdpbi1pbmxpbmU6YXV0b319LnNpdGUtY29udGVudHstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MX0uc2l0ZS1jb250ZW50LC5zaXRlLWZvb3Rlciwuc2l0ZS1oZWFkZXJ7LW1zLWZsZXgtbmVnYXRpdmU6MDtmbGV4LXNocmluazowfS5jb250YWluZXIsLmNvbnRhaW5lci1mbHVpZCwuaW5uZXItZnJhbWV7bWFyZ2luLWlubGluZTphdXRvO3dpZHRoOjEwMCV9LmNvbnRhaW5lciwuaW5uZXItZnJhbWV7cGFkZGluZy1pbmxpbmU6dmFyKC0tcGFnZS1ndXR0ZXIpOy13ZWJraXQtdHJhbnNpdGlvbjptYXgtd2lkdGggdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm1heC13aWR0aCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5jb250YWluZXItZmx1aWR7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ3JpZC1vdXRlci1tYXJnaW4sMmVtKX0uY29udGFpbmVyLC5pbm5lci1mcmFtZXttYXgtd2lkdGg6Y2FsYyh2YXIoLS1jb250ZW50LXdpZHRoKSArIHZhcigtLXBhZ2UtZ3V0dGVyLDIwcHgpICogMil9LnNpdGUtY29udGVudHttaW4taGVpZ2h0OjQwMHB4fUBtZWRpYShtaW4td2lkdGg6NzY3cHgpIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7LnNpdGUtY29udGVudHttYXJnaW4tdG9wOi01MHB4fX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmdhcC10b3AsLmdhcC10b3AtbCwuZ2FwLXRvcC1ze3BhZGRpbmctdG9wOnZhcigtLXZlcnRpY2FsLWdhcCl9LmdhcC1ib3QsLmdhcC1ib3QtbCwuZ2FwLWJvdC1ze3BhZGRpbmctYm90dG9tOnZhcigtLXZlcnRpY2FsLWdhcCl9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuZ2FwLXRvcHtwYWRkaW5nLXRvcDp2YXIoLS12ZXJ0aWNhbC1nYXApfS5nYXAtYm90e3BhZGRpbmctYm90dG9tOnZhcigtLXZlcnRpY2FsLWdhcCl9LmdhcC10b3Atc3twYWRkaW5nLXRvcDpjYWxjKHZhcigtLXZlcnRpY2FsLWdhcCkvMil9LmdhcC1ib3Qtc3twYWRkaW5nLWJvdHRvbTpjYWxjKHZhcigtLXZlcnRpY2FsLWdhcCkvMil9LmdhcC10b3AtbHtwYWRkaW5nLXRvcDpjYWxjKHZhcigtLXZlcnRpY2FsLWdhcCkgKiAxLjUpfS5nYXAtYm90LWx7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS12ZXJ0aWNhbC1nYXApICogMS41KX19Lmd0LXNtYWxse3BhZGRpbmctdG9wOmNhbGModmFyKC0tdmVydGljYWwtZ2FwKS8yKX0uZ2Itc21hbGx7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS12ZXJ0aWNhbC1nYXApLzIpfS5ndC1kZWZhdWx0e3BhZGRpbmctdG9wOnZhcigtLWRlZmF1bHQtdG9wLWdhcCx2YXIoLS12ZXJ0aWNhbC1nYXApKX0uZ2ItZGVmYXVsdHtwYWRkaW5nLWJvdHRvbTp2YXIoLS1kZWZhdWx0LXRvcC1nYXAsdmFyKC0tdmVydGljYWwtZ2FwKSl9Lmd0LWJpZ3twYWRkaW5nLXRvcDpjYWxjKHZhcigtLWRlZmF1bHQtdG9wLWdhcCkgKiAxLjUpfS5nYi1iaWd7cGFkZGluZy1ib3R0b206Y2FsYyh2YXIoLS1kZWZhdWx0LXRvcC1nYXApICogMS41KX0uc2l0ZS1oZWFkZXJ7d2lkdGg6MTAwJTt0b3A6MDtsZWZ0OjA7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtYm94LXNoYWRvdyB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC1ib3gtc2hhZG93IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYm94LXNoYWRvdyB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGJveC1zaGFkb3cgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtYm94LXNoYWRvdyB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3otaW5kZXg6MTIwMH1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVye21heC1oZWlnaHQ6dmFyKC0taGVhZGVyLWhpZ2h0KTtwb3NpdGlvbjpzdGlja3l9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuc2l0ZS1oZWFkZXJ7cG9zaXRpb246dmFyKC0taGVhZGVyLXN0aWNreS10eXBlLHN0aWNreSl9LmFkbWluLWJhciAuc2l0ZS1oZWFkZXJ7dG9wOjI4cHh9fS5zaXRlLWhlYWRlcl9fbG9nb3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuc2l0ZS1oZWFkZXJfX2xvZ297LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7bWF4LXdpZHRoOjEwMCV9fS5zaXRlLWhlYWRlcl9fbG9nby1uYXZ7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2l0ZS1oZWFkZXJfX2xvZ28tbmF2e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjIzcHg7bGVmdDoyMHB4fX0uc2l0ZS1oZWFkZXJfX2xvZ28gaW1nLC5zaXRlLWhlYWRlcl9fbG9nbyBzdmd7bWF4LXdpZHRoOjI1MHB4O21heC1oZWlnaHQ6MTAwcHg7bWluLXdpZHRoOjYwcHg7d2lkdGg6dmFyKC0taGVhZGVyLWxvZ28td2lkdGgpO2hlaWdodDp2YXIoLS1oZWFkZXItbG9nby1oZWlnaHQpOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW47LW8tb2JqZWN0LXBvc2l0aW9uOmxlZnQgY2VudGVyO29iamVjdC1wb3NpdGlvbjpsZWZ0IGNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyX19sb2dvIGltZywuc2l0ZS1oZWFkZXJfX2xvZ28gc3Zne21heC13aWR0aDoxNTBweDttYXgtaGVpZ2h0OjMwcHh9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuc2l0ZS1oZWFkZXJfX2xvZ28gaW1nLC5zaXRlLWhlYWRlcl9fbG9nbyBzdmd7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9fS5zaXRlLWhlYWRlcl9faW5uZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zaXRlLWhlYWRlcl9fcm93e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjphbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKX0uc2l0ZS1oZWFkZXJfX2NvbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtdHJhbnNpdGlvbjpwYWRkaW5nIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpwYWRkaW5nIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9LnNpdGUtaGVhZGVyX19jb2wuLWxlZnR7LXdlYmtpdC1ib3gtcGFjazpzdGFydDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5zaXRlLWhlYWRlcl9fY29sLi1jZW50ZXJ7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyX19jb2wuLWNlbnRlcnstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjQ7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozfX0uc2l0ZS1oZWFkZXJfX2NvbC4tcmlnaHR7LXdlYmtpdC1ib3gtcGFjazplbmQ7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2l0ZS1oZWFkZXJfX2NvbC4tcmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6ODBweDt0b3A6MjBweDt6LWluZGV4OjF9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2l0ZS1oZWFkZXJfX2NvbHstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn19QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5zaXRlLWhlYWRlcl9fY29se2dhcDpjYWxjKHZhcigtLWhlYWRlci1ob3Jpem9udGFsLWdhcCwxdncpICogMil9fS5zaXRlLWhlYWRlciAuc29jaWFsLWxpc3R7Z2FwOnZhcigtLWhlYWRlci1ob3Jpem9udGFsLWdhcCl9LnNpdGUtaGVhZGVyIC5ndF9zZWxlY3RvcntkaXNwbGF5Om5vbmV9LnNpdGUtaGVhZGVyX19tYWlue2JhY2tncm91bmQ6MCAwfS5zaXRlLWhlYWRlciAuaGVhZGVyLWJ0bntmb250LXNpemU6MTZweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEwcHggMjBweDtoZWlnaHQ6NDVweH0uc2l0ZS1oZWFkZXIgLmhlYWRlci1idG4gLml0ZW0taWNvbntkaXNwbGF5OmlubGluZS1ibG9ja30uc2l0ZS1oZWFkZXIgLmhlYWRlci1idG4gLml0ZW0taWNvbiBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uc2l0ZS1oZWFkZXIgLmhlYWRlci1idG4tZGFzaGJvYXJke2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7Y29sb3I6I2ZmZn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyIC5oZWFkZXItYnRuLWRhc2hib2FyZHtkaXNwbGF5Om5vbmV9fUBtZWRpYShob3Zlcjpob3Zlcil7LnNpdGUtaGVhZGVyIC5oZWFkZXItYnRuLWRhc2hib2FyZDpob3ZlcntiYWNrZ3JvdW5kOiNmZjc4MmQ7Y29sb3I6IzI1MjgzMX19LnNpdGUtaGVhZGVyIC5oZWFkZXItYnRuLWxvZ2lue2JvcmRlcjoxcHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvcjIpO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDo1cHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfUBtZWRpYShob3Zlcjpob3Zlcil7LnNpdGUtaGVhZGVyIC5oZWFkZXItYnRuLWxvZ2luOmhvdmVye2JhY2tncm91bmQ6cmdiYSg1NCw4MywxNjcsLjEpfX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyIC5oZWFkZXItYnRuLWxvZ2lue2ZvbnQtc2l6ZTowO2JvcmRlci1yYWRpdXM6NTBweDtnYXA6MDt3aWR0aDozNXB4O2hlaWdodDozNXB4O3BhZGRpbmc6MDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiNlOWU5ZWF9fS5zaXRlLWhlYWRlciAuaGVhZGVyLWJ0bi1sb2dpbjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDoxNXB4O2hlaWdodDoxNXB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeE5TY2dhR1ZwWjJoMFBTY3hOeWNnWm1sc2JEMG5ibTl1WlNjK1BIQmhkR2dnWm1sc2JEMG5Jek0yTlROQk55Y2dabWxzYkMxeWRXeGxQU2RsZG1WdWIyUmtKeUJrUFNkTk1UQXVPVFEzSURRdU1qbGhNeTQzT1NBekxqYzVJREFnTVNBeExUY3VOVGM1SURBZ015NDNPU0F6TGpjNUlEQWdNQ0F4SURjdU5UZ2dNRnBOTVRRdU16RTJJREUwTGpNNU5YWXVPRFF5WXpBZ0xqWTVOeTB1TlRZMklERXVNall6TFRFdU1qWTBJREV1TWpZelNERXVNall6UVRFdU1qWXpJREV1TWpZeklEQWdNQ0F4SURBZ01UVXVNak0zZGkwdU9EUXlRVFV1TkRjeklEVXVORGN6SURBZ01DQXhJRFV1TkRjeklEZ3VPVEpvTXk0ek5qbGhOUzQwTnpNZ05TNDBOek1nTUNBd0lERWdOUzQwTnpNZ05TNDBOelJhSnlCamJHbHdMWEoxYkdVOUoyVjJaVzV2WkdRbkx6NDhMM04yWno0PSk7ZGlzcGxheTpibG9ja30uaGVhZGVyLWxvZ291dHtmb250LXNpemU6MTZweDtjb2xvcjojMzY1M2E3O3RleHQtdHJhbnNmb3JtOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCAjMzY1M2E3O2ZvbnQtd2VpZ2h0OjYwMDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo5cHggMjBweDtoZWlnaHQ6NDVweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHh9QG1lZGlhKGhvdmVyOmhvdmVyKXsuaGVhZGVyLWxvZ291dDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoNTQsODMsMTY3LC4xKX19QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5oZWFkZXItbG9nb3V0e2ZvbnQtc2l6ZTowO2JvcmRlci1yYWRpdXM6NTBweDtwYWRkaW5nOjNweCA0cHggMCA4cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U5ZTllYTt3aWR0aDozNXB4O2hlaWdodDozNXB4fX0uaGVhZGVyLWxvZ291dDpiZWZvcmV7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGh0YkRwemNHRmpaVDBuY0hKbGMyVnlkbVVuSUhacFpYZENiM2c5SnpBZ01DQXlOVFlnTWpVMkp6NDhaeUJtYVd4c1BTY2pNelkxTTBFM0p6NDhjR0YwYUNCa1BTZE5NVGMxTGpNZ05qUldNalF1TW1Nd0xUWXVNeTAxTGpJdE1URXVOUzB4TVM0MUxURXhMalZJTWpFdU5XTXROaTR6SURBdE1URXVOU0ExTGpJdE1URXVOU0F4TVM0MWRqRTJNMk13SURRdU1pQXlMalVnT0M0eklEWXVNU0F4TUM0eWJEZzNMamNnTkRVdU5HTXpMamtnTVM0NUlEZ3VOUzB1T0NBNExqVXROUzR5ZGkwME5DNHlhRFV4TGpWak5pNHpJREFnTVRFdU5TMDFMaklnTVRFdU5TMHhNUzQxZGkwMk0yZ3RNak11TVhZME5TNDRZekFnTXk0ekxUSXVOU0ExTGpndE5TNDRJRFV1T0dndE16UldOekl1TkdNd0xUUXVNaTB5TGpVdE9DNHpMVFl1TVMweE1DNHlURFUwTGpZZ016VXVOMmc1TVM0NVl6TXVNeUF3SURVdU9DQXlMalVnTlM0NElEVXVPSFl5TWk0M2FESXpMakZzTFM0eExTNHllaWN2UGp4d1lYUm9JR1E5SjIweU1EUXVPU0EwTlM0eElETTNMalVnTXpjdU5XTTBMamdnTkM0NElEUXVPQ0F4TVM0NUlEQWdNVFl1TjJ3dE16Y3VOU0F6Tnk0MVl5MDBMamdnTkM0NExURXlMakVnTlMweE5pNDVMakl0TkM0MkxUUXVOaTAwTFRFeUxqTXVOQzB4Tmk0NWJERTJMamt0TVRZdU4yZ3ROalV1TldNdE15NHpJREF0Tmk0MUxURXVNeTA0TGpZdE15NDVMVFV1TkMwMUxqZ3ROQzB4TmlBeUxqa3RNVGt1T0NBeExqY3RNU0F6TGprdE1TNDFJRFV1T0MweExqVm9OalV1TlhNdE1UWXVOeTB4Tmk0M0xURTJMamt0TVRZdU4yTXROQzQwTFRRdU5DMDFMVEV5TGpNdExqUXRNVFl1TnlBMExqVXROQzQzSURFeUxUUXVOU0F4Tmk0NExqTjZKeTgrUEM5blBqd3ZjM1puUGc9PSk7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtc2l6ZTpjb250YWlufUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuaGVhZGVyLWxvZ291dDpiZWZvcmV7bWluLXdpZHRoOjIwcHg7bWluLWhlaWdodDoyMHB4fX0uc2l0ZS1oZWFkZXJfX21haW57LS1oZWFkZXItbGluay1jb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IyKTstLWhlYWRlci1saW5rLWNvbG9yLWhvdmVyOnZhcigtLWhlYWRlci1tYWluLWNvbG9yLWhvdmVyKTstLWhlYWRlci1ob3Jpem9udGFsLWdhcDp2YXIoLS1oZWFkZXItbWFpbi1nYXAtYmV0d2Vlbi1pdGVtcyk7Zm9udC13ZWlnaHQ6dmFyKC0taGVhZGVyLW1haW4tZm9udC13ZWlnaHQpO3RleHQtdHJhbnNmb3JtOnZhcigtLWhlYWRlci1tYWluLXRleHQtdHJhbnNmb3JtLHVwcGVyY2FzZSk7Zm9udC1zaXplOnZhcigtLWhlYWRlci1tYWluLWZvbnQtc2l6ZSwxNnB4KX0uc2l0ZS1oZWFkZXJfX21haW4gLnNpdGUtaGVhZGVyX19yb3d7cGFkZGluZy1ibG9jazp2YXIoLS1oZWFkZXItbWFpbi12ZXJ0aWNhbC1wYWRkaW5nKX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuc2l0ZS1oZWFkZXJfX21haW4gLnNpdGUtaGVhZGVyX19yb3d7YmFja2dyb3VuZDojZjRmY2ZlfX0uc2l0ZS1oZWFkZXJfX3RvcHstLWhlYWRlci1saW5rLWNvbG9yOnZhcigtLWhlYWRlci10b3AtY29sb3IpOy0taGVhZGVyLWxpbmstY29sb3ItaG92ZXI6dmFyKC0taGVhZGVyLXRvcC1jb2xvci1ob3Zlcik7LS1oZWFkZXItaG9yaXpvbnRhbC1nYXA6dmFyKC0taGVhZGVyLXRvcC1nYXAtYmV0d2Vlbi1pdGVtcyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1oZWFkZXItdG9wLWJnKTtmb250LXNpemU6dmFyKC0taGVhZGVyLXRvcC1zaXplKTtjb2xvcjp2YXIoLS1oZWFkZXItdG9wLWNvbG9yKX0uc2l0ZS1oZWFkZXJfX3RvcCAuaW5uZXItZnJhbWV7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nLWJsb2NrOnZhcigtLWhlYWRlci10b3AtdmVydGljYWwtcGFkZGluZyl9LnNpdGUtaGVhZF9faW5uZXJ7LS1jb250ZW50LXdpZHRoOjE0NDBweDttYXgtd2lkdGg6Y2FsYyh2YXIoLS1jb250ZW50LXdpZHRoKSArIHZhcigtLXBhZ2UtZ3V0dGVyLDIwcHgpICogMik7bWFyZ2luLWlubGluZTphdXRvO3dpZHRoOjEwMCV9LnNpdGUtaGVhZCAuc2l0ZS10aXRsZXstLWhlYWRlci1sb2dvLXdpZHRoOjEwMCU7LS1oZWFkZXItbG9nby1oZWlnaHQ6NTNweDt3aWR0aDp2YXIoLS1oZWFkZXItbG9nby13aWR0aCk7aGVpZ2h0OjEwMCU7aGVpZ2h0OnZhcigtLWhlYWRlci1sb2dvLWhlaWdodCl9LnNpdGUtaGVhZCAuYnRuLXBsYWluLmFmZ19sb2dpbntib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7cGFkZGluZzoxMHB4IDIwcHg7Zm9udC1zaXplOjEuNnJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5zaXRlLWhlYWQgLm5hdi1tYWluIC5uYXZfX2NvbnRhaW5lciAubWVudSAubWVudS1pdGVte21hcmdpbjowO3BhZGRpbmctcmlnaHQ6MH0uc2l0ZS1oZWFkIC5uYXYtbWFpbiAubmF2X19jb250YWluZXIgLm1lbnUgLm1lbnUtaXRlbSBhe2ZvbnQtc2l6ZToxLjZyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmctaW5saW5lOjIwcHh9LnNpdGUtaGVhZCAubmF2LW1haW4gLm5hdl9fY29udGFpbmVyIC5tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmFmdGVye3dpZHRoOjExcHg7aGVpZ2h0OjdweDtyaWdodDoxMnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeE1TY2dhR1ZwWjJoMFBTYzNKeUIyYVdWM1FtOTRQU2N3SURBZ01URWdOeWNnWm1sc2JEMG5ibTl1WlNjK1BIQmhkR2dnYVdROUoxWmxZM1J2Y2lBeEp5QmtQU2ROTVNBeExqVk1OUzQxSURVdU5Vd3hNQ0F4TGpVbklITjBjbTlyWlQwbkl6STFNamd6TVNjZ2MzUnliMnRsTFhkcFpIUm9QU2N5Snk4K1BDOXpkbWMrKX1ib2R5LnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuc2l0ZS1oZWFkZXJfX21haW57YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uaXMtc3RpY2t5e2JhY2tncm91bmQ6cmdiYSgyNDQsMjUyLDI1NCwuODUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCl9QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5pcy1zdGlja3l7LS1oZWFkZXItbWFpbi12ZXJ0aWNhbC1wYWRkaW5nOjE1cHg7LS1oZWFkZXItbWFpbi1iZzp2YXIoLS1oZWFkZXItc3RpY2t5LWJnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkpfS5pcy1zdGlja3kgLnNpdGUtaGVhZGVyX19tYWluey13ZWJraXQtYm94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEoMCwwLDAsLjEpO2JveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsMCwwLC4xKX0uaXMtc3RpY2t5IC5zaXRlLWhlYWRlcl9fbG9nb3ttYXgtaGVpZ2h0OjUzcHh9LmlzLXN0aWNreSAuc2l0ZS1oZWFkZXJfX2xvZ28gaW1nLC5pcy1zdGlja3kgLnNpdGUtaGVhZGVyX19sb2dvIHN2Z3ttYXgtaGVpZ2h0OjUzcHh9LmlzLXN0aWNreSAuc2l0ZS1oZWFkZXJfX3RvcCAuc2l0ZS1oZWFkZXJfX3Jvd3ttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MH0uaXMtc3RpY2t5IC5uYXYtbWFpbl9fYnRuLi1kZXNrdG9we2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuaXMtc3RpY2t5IC5zaXRlLWhlYWRlcl9fcm93e2JhY2tncm91bmQ6cmdiYSgyNDQsMjUyLDI1NCwuODUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCl9fS5pcy1zdGlja3kgLm5hdi1tYWluX19saW5rcz4ubWVudS1pdGVtPmE6aG92ZXJ7Y29sb3I6dmFyKC0taGVhZGVyLWxpbmstY29sb3IpfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuaXMtc3RpY2t5IC5uYXYtbWFpbl9fbGlua3M+Lm1lbnUtaXRlbT5hOmhvdmVyOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDozNXB4O3dpZHRoOjk4JTtib3JkZXItcmFkaXVzOjkwcHg7YmFja2dyb3VuZDpyZ2JhKDU0LDgzLDE2NywuMSk7bGVmdDoxJTt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9fWJvZHkubmF2LWFjdGl2ZSAuaXMtc3RpY2t5ey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmU7YmFja2Ryb3AtZmlsdGVyOm5vbmV9Ym9keS5uYXYtYWN0aXZlIC5pcy1zdGlja3kgLnNpdGUtaGVhZGVyX19yb3d7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZTtiYWNrZHJvcC1maWx0ZXI6bm9uZX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm5hdi1hY3RpdmUgLnNpdGUtaGVhZGVyX19tYWluey0taGVhZGVyLW1haW4tYmc6dmFyKC0taGVhZGVyLW1vYmlsZS1iZyl9Lm5hdi1tYWluX193cmFwe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ubmF2LW1haW5fX3dyYXAgYXtjb2xvcjp2YXIoLS1saW5rLWNvbG9yKX0ubmF2LW1haW5fX3dyYXAgLm5hdi1tYWlue3RvcDowO2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtyaWdodDowO3Bvc2l0aW9uOmZpeGVkO29wYWNpdHk6MTttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KSBhbmQgKG1heC13aWR0aDoxMTEycHgpey5uYXYtbWFpbl9fd3JhcCAubmF2LW1haW57ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmxlZnR9Lm5hdi1tYWluX193cmFwIC5uYXYtbWFpbiAubmF2LW1haW5fX2xpbmtzIGxpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjIpfX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm5hdi1hY3RpdmUgLm5hdi1tYWluX193cmFwIC5uYXYtbWFpbntvcGFjaXR5OjE7bWF4LWhlaWdodDoxMDAlO3BvaW50ZXItZXZlbnRzOmF1dG87b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6MTVweDtwYWRkaW5nLXRvcDo3NXB4O3otaW5kZXg6Mn0ubmF2LW1haW5fX3dyYXAgLm5hdi1tYWluIC5zaXRlLWhlYWRlcl9fd2lkZ2V0e3BhZGRpbmctYm90dG9tOjVweH19QG1lZGlhKG1heC13aWR0aDoxMTEycHgpIGFuZCAobWF4LXdpZHRoOjExMTJweCl7Lm5hdi1tYWluX193cmFwIC5uYXYtbWFpbiAuaGVhZGVyLWJ0bi1kYXNoYm9hcmR7ZGlzcGxheTpibG9ja319QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5uYXYtbWFpbl9fd3JhcCAubmF2LW1haW5fX2xpbmtzIC5tYWluLW1lbnUtbGlua3tkaXNwbGF5OmJsb2NrfS5uYXYtbWFpbl9fd3JhcCAubmF2LW1haW5fX2xpbmtzPi5tZW51LWl0ZW0+YXtwYWRkaW5nOjEwcHggMDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6dmFyKC0tbGluay1zaXplLWwxKTtjb2xvcjp2YXIoLS1saW5rLWNvbG9yKTt0ZXh0LXRyYW5zZm9ybTpub25lfS5uYXYtbWFpbl9fd3JhcCAubmF2LW1haW5fX2xpbmtzIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuPmF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9ja30ubmF2LW1haW5fX3dyYXAgLm5hdi1tYWluX19saW5rcyAubWVudS1pdGVtLWhhcy1jaGlsZHJlbj5hIHNwYW57ZGlzcGxheTpibG9ja30ubmF2LW1haW5fX3dyYXAgLm5hdi1tYWluX19saW5rcyAubWVudS1pdGVtLWhhcy1jaGlsZHJlbj5hOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTVweDt6LWluZGV4Oi0xO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwbk1UUW5JR2hsYVdkb2REMG5PQ2NnZG1sbGQwSnZlRDBuTUNBd0lERTBJRGduSUdacGJHdzlKMjV2Ym1VbklIaHRiRzV6UFNkb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnljK1BIQmhkR2dnWkQwbmJUY2dNQ0EzSURZdU5EYzNOMHd4TWk0ek5UVWdPQ0EzSURNdU1EVTFNeUF4TGpZME5TQTRJREFnTmk0ME56YzNJRGNnTUZvbklHWnBiR3c5SnlObVptWW5MejQ4TDNOMlp6ND0pO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoLTUwJSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciB0b3A7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgdG9wOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3N9Lm5hdi1tYWluX193cmFwIC5uYXYtbWFpbl9fbGlua3MgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4uaXMtdG9nZ2xlZD5hOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKSB0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTpyb3RhdGUoMCkgdHJhbnNsYXRlWSgtNTAlKX0ubmF2LW1haW5fX3dyYXAgLm5hdi1tYWluX19saW5rcyAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiBsaXtib3JkZXI6bm9uZX0ubmF2LW1haW5fX3dyYXAgLnN1Yi1tZW51e3BhZGRpbmctbGVmdDoyMHB4O3BhZGRpbmctYm90dG9tOjEwcHh9Lm5hdi1tYWluX193cmFwIC5zdWItbWVudSBhe3BhZGRpbmc6NXB4IDA7Zm9udC1zaXplOnZhcigtLWxpbmstc2l6ZS1sMik7Y29sb3I6dmFyKC0tbGluay1jb2xvcik7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXNpemU6MTZweDtwYWRkaW5nOjVweCAwO2Rpc3BsYXk6YmxvY2t9Lm5hdi1tYWluX193cmFwIC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gYXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ubmF2LWFjdGl2ZSwubmF2LWFjdGl2ZSAuc2l0ZS1jb250ZW50e292ZXJmbG93OmhpZGRlbn0ubmF2LWFjdGl2ZSAuc2l0ZS1jb250ZW50e3BvaW50ZXItZXZlbnRzOm5vbmU7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfX0ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5zaXRlLWhlYWRlcl9fbWFpbiwucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1zaW1wbGUtdGV4dCAuc2l0ZS1oZWFkZXJfX21haW4sLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtc3R5bGVndWlkZSAuc2l0ZS1oZWFkZXJfX21haW4sLnNlYXJjaCAuc2l0ZS1oZWFkZXJfX21haW57YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1oZWFkZXItc3RpY2t5LWJnLHZhcigtLXByaW1hcnktY29sb3IxKSl9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLnNpdGUtaGVhZGVyX19tYWluLC5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLXNpbXBsZS10ZXh0IC5zaXRlLWhlYWRlcl9fbWFpbiwucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1zdHlsZWd1aWRlIC5zaXRlLWhlYWRlcl9fbWFpbiwuc2VhcmNoIC5zaXRlLWhlYWRlcl9fbWFpbntiYWNrZ3JvdW5kOiNmNGZjZmV9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5zaXRlLWNvbnRlbnQsLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtc2ltcGxlLXRleHQgLnNpdGUtY29udGVudCwucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1zdHlsZWd1aWRlIC5zaXRlLWNvbnRlbnQsLnNlYXJjaCAuc2l0ZS1jb250ZW50e3BhZGRpbmctdG9wOnZhcigtLWhlYWRlci1oaWdodCl9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2l0ZS1oZWFkZXJfX3RvcHtkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsuc2l0ZS1oZWFkZXJfX2JvdHRvbXtkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubmF2LW1haW5fX2J0bi4tZGVza3RvcHtkaXNwbGF5Om5vbmV9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubmF2LW1haW5fX2J0biwubmF2YmFyLW1vYmlsZXtkaXNwbGF5Om5vbmV9fS5uYXYtbWFpbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubmF2LW1haW5fX2xpbmtze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazplbmQ7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5uYXYtbWFpbl9fbGlua3M+Lm1lbnUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5uYXYtbWFpbl9fbGlua3M+Lm1lbnUtaXRlbSAucGxhaW4tbWVudS1pdGVtLC5uYXYtbWFpbl9fbGlua3M+Lm1lbnUtaXRlbT5he2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLWhlYWRlci1saW5rLWNvbG9yKTtwYWRkaW5nLWlubGluZTp2YXIoLS1oZWFkZXItbWFpbi1nYXAtYmV0d2Vlbi1pdGVtcywxdncpO2xpbmUtaGVpZ2h0OnZhcigtLWhlYWRlci1tYWluLW5hdi1oZWlnaHQpOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGZvbnQtc2l6ZSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246Y29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxmb250LXNpemUgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtmb250LXNpemU6MTZweDt0ZXh0LXRyYW5zZm9ybTpub25lO2ZvbnQtd2VpZ2h0OjYwMH0ubmF2LW1haW5fX2xpbmtzPi5tZW51LWl0ZW0gLnBsYWluLW1lbnUtaXRlbTpob3ZlciwubmF2LW1haW5fX2xpbmtzPi5tZW51LWl0ZW0+YTpob3Zlcntjb2xvcjp2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3Zlcil9fS5uYXYtbWFpbiAubWVudS1pdGVtLmN1cnJlbnQtbWVudS1pdGVtIGF7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyl9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lm5hdi1tYWluIC5tZW51LWl0ZW0uY3VycmVudC1tZW51LWl0ZW0gYXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IzKX19Lm5hdi1tYWluIC5tZW51LWl0ZW0uY2hhbGxlbmdlcy1tZW51IGF7Y29sb3I6dmFyKC0taGVhZGVyLWxpbmstY29sb3IpfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5uYXYtbWFpbiAubWVudS1pdGVtLmNoYWxsZW5nZXMtbWVudSBhe2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfX0ubmF2LW1haW4tYm9keXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5uYXYtbWFpbi1ib2R5LW5hdntkaXNwbGF5Om5vbmV9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5uYXYtbWFpbi1ib2R5e2dhcDowfS5uYXYtbWFpbi1ib2R5LW5hdntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDtnYXA6MzBweH0ubmF2LW1haW4tYm9keS1uYXYgLmd0cmFuc2xhdGVfd3JhcHBlcnstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxMDAlO2ZsZXgtYmFzaXM6MTAwJX0ubmF2LW1haW4tYm9keS1uYXYgLmhlYWRlci1idG4tZGFzaGJvYXJkLC5uYXYtbWFpbi1ib2R5LW5hdiAuaGVhZGVyLWJ0bi1sb2dpbiwubmF2LW1haW4tYm9keS1uYXYgLmhlYWRlci1sb2dvdXR7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6NDUlO2ZsZXgtYmFzaXM6NDUlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi1tYWluLWJvZHktbmF2IC5oZWFkZXItYnRuLWxvZ2lue2ZvbnQtc2l6ZToxNnB4O2JhY2tncm91bmQ6MCAwO2hlaWdodDo0NXB4O2JvcmRlci1yYWRpdXM6MTVweDtjb2xvcjojZmZmO2dhcDo4cHh9Lm5hdi1tYWluLWJvZHktbmF2IC5oZWFkZXItYnRuLWxvZ2luOjpiZWZvcmV7ZGlzcGxheTpub25lfS5uYXYtbWFpbi1ib2R5LW5hdiAuaGVhZGVyLWJ0bi1sb2dpbjphZnRlcntjb250ZW50OiIiO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owbmFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jbklIZHBaSFJvUFNjeU1TY2dhR1ZwWjJoMFBTY3lNeWNnWm1sc2JEMG5ibTl1WlNjK1BIQmhkR2dnWm1sc2JEMG5JMFkwUmtOR1JTY2dabWxzYkMxeWRXeGxQU2RsZG1WdWIyUmtKeUJrUFNkTk1UVXVOamN5SURVdU5UVmhOUzR5T1RRZ05TNHlPVFFnTUNBeElERXRNVEF1TlRnNElEQWdOUzR5T1RRZ05TNHlPVFFnTUNBd0lERWdNVEF1TlRnNElEQmFUVEl3TGpNM055QXhPUzQyTmpoMk1TNHhOemRqTUNBdU9UYzBMUzQzT1NBeExqYzJOQzB4TGpjMk5TQXhMamMyTkVneUxqRTBNbU10TGprM05TQXdMVEV1TnpZMUxTNDNPUzB4TGpjMk5TMHhMamMyTkhZdE1TNHhOemRoTnk0Mk5EY2dOeTQyTkRjZ01DQXdJREVnTnk0Mk5EY3ROeTQyTkRkb05DNDNNRFpoTnk0Mk5EWWdOeTQyTkRZZ01DQXdJREVnTnk0Mk5EY2dOeTQyTkRkYUp5QmpiR2x3TFhKMWJHVTlKMlYyWlc1dlpHUW5MejQ4TDNOMlp6ND0pO2JhY2tncm91bmQtc2l6ZTpjb250YWluO21pbi13aWR0aDoyMHB4O21pbi1oZWlnaHQ6MjBweDtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ubmF2LW1haW4tYm9keS1uYXYgLmhlYWRlci1sb2dvdXR7Zm9udC1zaXplOjE2cHg7YmFja2dyb3VuZDowIDA7aGVpZ2h0OjQ1cHg7Ym9yZGVyLXJhZGl1czoxNXB4fS5uYXYtbWFpbi1ib2R5LW5hdiAuaGVhZGVyLWxvZ291dDo6YmVmb3Jle2Rpc3BsYXk6bm9uZX0ubmF2LW1haW4tYm9keS1uYXYgLmhlYWRlci1sb2dvdXQ6YWZ0ZXJ7Y29udGVudDoiIjttaW4td2lkdGg6MjBweDttaW4taGVpZ2h0OjIwcHg7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGh0YkRwemNHRmpaVDBuY0hKbGMyVnlkbVVuSUhacFpYZENiM2c5SnpBZ01DQXlOVFlnTWpVMkp6NDhaeUJtYVd4c1BTY2pabVptSno0OGNHRjBhQ0JrUFNkTk1UYzFMak1nTmpSV01qUXVNbU13TFRZdU15MDFMakl0TVRFdU5TMHhNUzQxTFRFeExqVklNakV1TldNdE5pNHpJREF0TVRFdU5TQTFMakl0TVRFdU5TQXhNUzQxZGpFMk0yTXdJRFF1TWlBeUxqVWdPQzR6SURZdU1TQXhNQzR5YkRnM0xqY2dORFV1TkdNekxqa2dNUzQ1SURndU5TMHVPQ0E0TGpVdE5TNHlkaTAwTkM0eWFEVXhMalZqTmk0eklEQWdNVEV1TlMwMUxqSWdNVEV1TlMweE1TNDFkaTAyTTJndE1qTXVNWFkwTlM0NFl6QWdNeTR6TFRJdU5TQTFMamd0TlM0NElEVXVPR2d0TXpSV056SXVOR013TFRRdU1pMHlMalV0T0M0ekxUWXVNUzB4TUM0eVREVTBMallnTXpVdU4yZzVNUzQ1WXpNdU15QXdJRFV1T0NBeUxqVWdOUzQ0SURVdU9IWXlNaTQzYURJekxqRnNMUzR4TFM0eWVpY3ZQanh3WVhSb0lHUTlKMjB5TURRdU9TQTBOUzR4SURNM0xqVWdNemN1TldNMExqZ2dOQzQ0SURRdU9DQXhNUzQ1SURBZ01UWXVOMnd0TXpjdU5TQXpOeTQxWXkwMExqZ2dOQzQ0TFRFeUxqRWdOUzB4Tmk0NUxqSXROQzQyTFRRdU5pMDBMVEV5TGpNdU5DMHhOaTQ1YkRFMkxqa3RNVFl1TjJndE5qVXVOV010TXk0eklEQXROaTQxTFRFdU15MDRMall0TXk0NUxUVXVOQzAxTGpndE5DMHhOaUF5TGprdE1Ua3VPQ0F4TGpjdE1TQXpMamt0TVM0MUlEVXVPQzB4TGpWb05qVXVOWE10TVRZdU55MHhOaTQzTFRFMkxqa3RNVFl1TjJNdE5DNDBMVFF1TkMwMUxURXlMak10TGpRdE1UWXVOeUEwTGpVdE5DNDNJREV5TFRRdU5TQXhOaTQ0TGpONkp5OCtQQzluUGp3dmMzWm5QZz09KTtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn19QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5uYXYtc2Vjb25kYXJ5X19saW5rc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6dmFyKC0taGVhZGVyLWhvcml6b250YWwtZ2FwLDF2dyl9fS5uYXYtc2Vjb25kYXJ5IGF7ZGlzcGxheTpibG9jazt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0taGVhZGVyLWxpbmstY29sb3IpfS5uYXYtc2Vjb25kYXJ5IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1ib2R5IC5uYXYtbWFpbi1ib2R5LW5hdiAuZ3RyYW5zbGF0ZV93cmFwcGVyIC5ndF9zd2l0Y2hlcntiYWNrZ3JvdW5kOjAgMDttYXgtd2lkdGg6MTcwcHg7bWFyZ2luLXRvcDoyMHB4O2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3JkZXI6bm9uZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufWJvZHkgLm5hdi1tYWluLWJvZHktbmF2IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIGEgaW1ne21hcmdpbjowIDEwcHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfWJvZHkgLm5hdi1tYWluLWJvZHktbmF2IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9vcHRpb257LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDozOy1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mjtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0bztiYWNrZ3JvdW5kOjAgMDtib3JkZXItcmFkaXVzOmluaGVyaXQ7b3ZlcmZsb3c6aW5oZXJpdDtib3JkZXItcmFkaXVzOjAgMCAxNXB4IDE1cHg7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO21hcmdpbjowIDAgMCAxMHB4O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjVweCAwfWJvZHkgLm5hdi1tYWluLWJvZHktbmF2IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9vcHRpb24gYXtmb250LXNpemU6MTJweDtjb2xvcjojZmZmO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czppbml0aWFsO2JvcmRlcjpub25lO292ZXJmbG93OmluaGVyaXR9Ym9keSAubmF2LW1haW4tYm9keS1uYXYgLmd0cmFuc2xhdGVfd3JhcHBlciAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbiBhIGltZ3ttYXgtd2lkdGg6MjVweDttYXgtaGVpZ2h0OjI1cHh9Ym9keSAubmF2LW1haW4tYm9keS1uYXYgLmd0cmFuc2xhdGVfd3JhcHBlciAuZ3Rfc3dpdGNoZXIgLmd0X3NlbGVjdGVke2JvcmRlcjoxcHggc29saWQgI2ZmZjtib3JkZXItcmFkaXVzOjUwcHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoycHggMH1ib2R5IC5uYXYtbWFpbi1ib2R5LW5hdiAuZ3RyYW5zbGF0ZV93cmFwcGVyIC5ndF9zd2l0Y2hlciAuZ3Rfc2VsZWN0ZWQ6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjEwcHg7Ym9yZGVyOnNvbGlkICM2OGNkZWQ7Ym9yZGVyLXdpZHRoOjAgM3B4IDNweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6M3B4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfWJvZHkgLm5hdi1tYWluLWJvZHktbmF2IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZCBhe2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aW5oZXJpdDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfWJvZHkgLm5hdi1tYWluLWJvZHktbmF2IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZCBhOmhvdmVye2JhY2tncm91bmQ6MCAwfS5uYXYtbWFpbiAuc3ViLW1lbnV7dGV4dC1hbGlnbjpsZWZ0fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubmF2LW1haW4gLnN1Yi1tZW51e3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RvcDoxMDAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC0xMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTEwcHgpO2xlZnQ6NTAlO21pbi13aWR0aDp2YXIoLS1kcm9wZG93bi13aWR0aCk7ei1pbmRleDoxMDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSx0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSx0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5uYXYtbWFpbiAuc3ViLW1lbnUgYXtjb2xvcjojMGIwYjBiO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXdlaWdodDp2YXIoLS1kcm9wZG93bi1mb250LXdlaWdodCk7Zm9udC1zaXplOnZhcigtLWRyb3Bkb3duLWZvbnQtc2l6ZSk7dGV4dC10cmFuc2Zvcm06bm9uZX0ubmF2LW1haW4gLnN1Yi1tZW51IGE6aG92ZXJ7Y29sb3I6dmFyKC0tZHJvcGRvd24tY29sb3ItYWN0aXZlKX0ubmF2LW1haW4gLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSBhe2NvbG9yOnZhcigtLWRyb3Bkb3duLWNvbG9yLWFjdGl2ZSl9Lm5hdi1tYWluIC5zdWItbWVudSAubWVudS1pdGVtLWNvbnRlbnR7bWluLXdpZHRoOjI1MHB4fS5uYXYtbWFpbiAuc3ViLW1lbnUgLm1lbnUtaXRlbS10aXRsZXtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NXB4fS5uYXYtbWFpbiAuc3ViLW1lbnUgLm1lbnUtaXRlbS1jYXB0aW9ue2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSl9Lm5hdi1tYWluIC5zdWItbWVudSAubWVudS1pdGVtLWltZy13cmFwcGVye21hcmdpbi1yaWdodDoxMHB4O21pbi13aWR0aDozMHB4O21heC13aWR0aDoxNTBweH0ubmF2LW1haW4gLnN1Yi1tZW51IC5tZW51LWl0ZW0taW1nLXdyYXBwZXIgaW1nLC5uYXYtbWFpbiAuc3ViLW1lbnUgLm1lbnUtaXRlbS1pbWctd3JhcHBlciBzdmd7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99Lm5hdi1tYWluIC5zdWItbWVudSAubWVudS1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToycHh9Lm5hdi1tYWluIC5zdWItbWVudSAubWVudS1pdGVtIGF7cGFkZGluZzoxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjphbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5uYXYtbWFpbiAuc3ViLW1lbnU6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjAgOXB4IDE0cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWRyb3Bkb3duLWJnKSB0cmFuc3BhcmVudDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwcHg7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX19QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5uYXYtbWFpbiAuc3ViLW1lbnUgLm1lbnUtaXRlbS1jYXB0aW9uLC5uYXYtbWFpbiAuc3ViLW1lbnUgLm1lbnUtaXRlbS1pbWctd3JhcHBlcntkaXNwbGF5Om5vbmV9fUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubmF2LW1haW4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW57cGFkZGluZy1yaWdodDo1cHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lm5hdi1tYWluIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvcjIpO2JvcmRlci1yaWdodDoycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7cmlnaHQ6MTBweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDEzNWRlZyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBlYXNlLWluO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGVhc2UtaW47dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2UtaW47dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2UtaW4sLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGVhc2UtaW59Lm5hdi1tYWluIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmhvdmVyPi5zdWItbWVudXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMCk7cGFkZGluZzowO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LWJveC1zaGFkb3c6MCA0cHggMzRweCByZ2JhKDAsNyw2MywuMSk7Ym94LXNoYWRvdzowIDRweCAzNHB4IHJnYmEoMCw3LDYzLC4xKTtib3JkZXItcmFkaXVzOjEwcHh9Lm5hdi1tYWluIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmhvdmVyPi5zdWItbWVudSBsaXtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xKX0ubmF2LW1haW4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46aG92ZXI+LnN1Yi1tZW51IGxpOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfS5uYXYtbWFpbiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlcjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAlKSByb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAlKSByb3RhdGUoLTQ1ZGVnKX19Lm5hdi1tYWluX19idG57LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NDVweDtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tYnVyZ2VyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1cmdlci1iZyk7cGFkZGluZzoycHggMTBweDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjphbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt6LWluZGV4OjEwO2JvcmRlcjoxcHggc29saWQgcmdiYSgzNyw0MCw0OSwuMSk7b3V0bGluZTowO2JhY2tncm91bmQ6I2ZmZn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm5hdi1tYWluX19idG57ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH19Lm5hdi1tYWluX19idG4uaXMtYWN0aXZle2JhY2tncm91bmQ6MCAwO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5idXJnZXItaWNvbnt3aWR0aDp2YXIoLS1idXJnZXItd2lkdGgpO2hlaWdodDoyMHB4O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LWJveC1zaGFkb3cgLjRzIGVhc2U7dHJhbnNpdGlvbjotd2Via2l0LWJveC1zaGFkb3cgLjRzIGVhc2U7dHJhbnNpdGlvbjpib3gtc2hhZG93IC40cyBlYXNlO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuNHMgZWFzZSwtd2Via2l0LWJveC1zaGFkb3cgLjRzIGVhc2U7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmJ1cmdlci1pY29uPnNwYW57cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4Om5vbmU7ZmxleDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OnZhcigtLWJ1cmdlci1zZWdtZW50LWhpZ2h0KTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC40cyBlYXNlO3RyYW5zaXRpb246YWxsIC40cyBlYXNlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjB9LmJ1cmdlci1pY29uPnNwYW46YWZ0ZXIsLmJ1cmdlci1pY29uPnNwYW46YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1idXJnZXItc2VnbWVudC1oaWdodCk7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6aW5oZXJpdDstd2Via2l0LXRyYW5zaXRpb246YWxsIC40cyBlYXNlO3RyYW5zaXRpb246YWxsIC40cyBlYXNlfS5idXJnZXItaWNvbj5zcGFuOmJlZm9yZXt0b3A6Y2FsYyh2YXIoLS1idXJnZXItc2VnbWVudC1nYXApICogLTEpfS5idXJnZXItaWNvbj5zcGFuOmFmdGVye3RvcDp2YXIoLS1idXJnZXItc2VnbWVudC1nYXApfS5pcy1hY3RpdmUgLmJ1cmdlci1pY29uPnNwYW57LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5pcy1hY3RpdmUgLmJ1cmdlci1pY29uPnNwYW46YWZ0ZXIsLmlzLWFjdGl2ZSAuYnVyZ2VyLWljb24+c3BhbjpiZWZvcmV7dG9wOjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfS5pcy1hY3RpdmUgLmJ1cmdlci1pY29uPnNwYW46YWZ0ZXJ7b3BhY2l0eTowfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXtib2R5IC5zaXRlLWhlYWRlcl9fY29sLi1yaWdodCAubmF2LW1haW4tYm9keSAuZ3RyYW5zbGF0ZV93cmFwcGVye2Rpc3BsYXk6bm9uZX19Ym9keSAuZ3RyYW5zbGF0ZV93cmFwcGVye21hcmdpbi1yaWdodDoxMHB4fWJvZHkgLmd0cmFuc2xhdGVfd3JhcHBlciAuZ3Rfc3dpdGNoZXJ7d2lkdGg6MjVweH1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Ym9keSAuZ3RyYW5zbGF0ZV93cmFwcGVyIC5ndF9zd2l0Y2hlcnt3aWR0aDphdXRvO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjVweDtib3JkZXI6MXB4IHNvbGlkICNlOWU5ZWE7Ym9yZGVyLXJhZGl1czo1MHB4fX1ib2R5IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIGEgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTt0cmFuc2Zvcm06c2NhbGUoMS4zKX1ib2R5IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZHtiYWNrZ3JvdW5kOjAgMH1ib2R5IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9zZWxlY3RlZCBhe3BhZGRpbmc6MDt3aWR0aDoyNXB4O2hlaWdodDoyNXB4O2JvcmRlcjpub25lO2ZvbnQtc2l6ZTowO2JvcmRlci1yYWRpdXM6NTBweDtvdmVyZmxvdzpoaWRkZW59Ym9keSAuZ3RyYW5zbGF0ZV93cmFwcGVyIC5ndF9zd2l0Y2hlciAuZ3Rfc2VsZWN0ZWQgYTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9Ym9keSAuZ3RyYW5zbGF0ZV93cmFwcGVyIC5ndF9zd2l0Y2hlciAuZ3Rfb3B0aW9ue3dpZHRoOjI1cHg7YmFja2dyb3VuZDowIDA7Ym9yZGVyOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwcHh9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpe2JvZHkgLmd0cmFuc2xhdGVfd3JhcHBlciAuZ3Rfc3dpdGNoZXIgLmd0X29wdGlvbntiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo1cHg7Ym9yZGVyLXJhZGl1czo1MHB4Oy13ZWJraXQtYm94LXNoYWRvdzpyZ2JhKDAsMCwwLC4xKSAwIDVweCAxMHB4O2JveC1zaGFkb3c6cmdiYSgwLDAsMCwuMSkgMCA1cHggMTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01cHgpfX1ib2R5IC5ndHJhbnNsYXRlX3dyYXBwZXIgLmd0X3N3aXRjaGVyIC5ndF9vcHRpb24gYXtwYWRkaW5nOjA7Zm9udC1zaXplOjA7d2lkdGg6MjVweDtoZWlnaHQ6MjVweDtib3JkZXItcmFkaXVzOjUwcHg7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbi10b3A6NXB4fS5zaXRlLWhlYWRlciAuc2l0ZS1zZWFyY2h7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OnZhcigtLXNlYXJjaC1zaXplKTt3aWR0aDp2YXIoLS1zZWFyY2gtc2l6ZSl9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaF9fdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDp2YXIoLS1zZWFyY2gtc2l6ZSk7d2lkdGg6dmFyKC0tc2VhcmNoLXNpemUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2VhcmNoLWJ0bi1iZyk7Ym9yZGVyLXJhZGl1czp2YXIoLS1zZWFyY2gtYnRuLXJhZGl1cyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmc6NXB4O2JvcmRlcjpub25lO291dGxpbmUtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50O3otaW5kZXg6MTA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuc2l0ZS1oZWFkZXIgLnNpdGUtc2VhcmNoX190b2dnbGV7cmlnaHQ6NXB4fX0uc2l0ZS1oZWFkZXIgLnNpdGUtc2VhcmNoX190b2dnbGUuaXMtYWN0aXZle3BvaW50ZXItZXZlbnRzOm5vbmV9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaF9fdG9nZ2xlOmhvdmVyey0taGVhZGVyLWxpbmstY29sb3I6dmFyKC0taGVhZGVyLWxpbmstY29sb3ItaG92ZXIpfS5zaXRlLWhlYWRlciAuc2l0ZS1zZWFyY2hfX2lubmVye3Bvc2l0aW9uOmFic29sdXRlO21heC13aWR0aDowO292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjphbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKX0uc2l0ZS1oZWFkZXIgLnNpdGUtc2VhcmNoX19pbm5lci5pcy1zaG93bnttYXgtd2lkdGg6Y2FsYyh2YXIoLS1zZWFyY2gtd2lkdGgpICsgMjBweCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSg0MHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0MHB4KTtvdmVyZmxvdzp2aXNpYmxlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2VhcmNoLW91dGVyLWJnKTtwYWRkaW5nOnZhcigtLXNlYXJjaC1vdXRlci1nYXApO2JvcmRlci1yYWRpdXM6dmFyKC0tc2VhcmNoLXJhZGl1cykgMCB2YXIoLS1zZWFyY2gtcmFkaXVzKSB2YXIoLS1zZWFyY2gtcmFkaXVzKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXNlYXJjaC1vdXRlci1ib3JkZXIpO3otaW5kZXg6MTB9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaF9faW5uZXIuaXMtc2hvd24gLnNlYXJjaC1maWVsZHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTttYXgtd2lkdGg6dmFyKC0tc2VhcmNoLXdpZHRoKX0uc2l0ZS1oZWFkZXIgLnNpdGUtc2VhcmNoX19pbm5lci5pcy1zaG93bisuc2l0ZS1zZWFyY2hfX3RvZ2dsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDQwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDQwcHgpO3BvaW50ZXItZXZlbnRzOm5vbmU7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpfS5zaXRlLWhlYWRlciAuc2l0ZS1zZWFyY2hfX2lubmVyLmlzLXNob3duIC5zaXRlLXNlYXJjaF9fY2xvc2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtjb2xvcjp2YXIoLS1oZWFkZXItbGluay1jb2xvci1ob3Zlcil9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaF9faWNvbntoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO21hcmdpbjphdXRvO2ZpbGw6dmFyKC0taGVhZGVyLWxpbmstY29sb3IpO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaCBbdHlwZT1zdWJtaXRde3JpZ2h0OjA7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDowIDA7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjA7aGVpZ2h0OnZhcigtLXNlYXJjaC1oZWlnaHQpO3dpZHRoOjMwcHh9LnNpdGUtaGVhZGVyIC5zaXRlLXNlYXJjaCBbdHlwZT1zdWJtaXRdOmZvY3Vze291dGxpbmU6MH0uc2l0ZS1oZWFkZXIgLnNpdGUtc2VhcmNoX19jbG9zZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTBweCk7YmFja2dyb3VuZDp2YXIoLS1zZWFyY2gtb3V0ZXItYmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tc2VhcmNoLW91dGVyLWJvcmRlcik7Ym9yZGVyLWJvdHRvbTpub25lO2hlaWdodDozNnB4O3dpZHRoOjM4cHg7Ym9yZGVyLXJhZGl1czoyMHB4IDIwcHggMCAwO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNHB4O3JpZ2h0OjA7ZGlzcGxheTpub25lOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMDAwfS5zaXRlLWhlYWRlciAuc2VhcmNoLWZpZWxke3BhZGRpbmc6NXB4IDEwcHg7aGVpZ2h0OnZhcigtLXNlYXJjaC1oZWlnaHQpO2JvcmRlcjpub25lO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MDtib3JkZXItcmFkaXVzOnZhcigtLXNlYXJjaC1yYWRpdXMpO2ZvbnQtc2l6ZToxNnB4O3dpZHRoOnZhcigtLXNlYXJjaC13aWR0aCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTAwJSk7bWF4LXdpZHRoOjA7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbjphbGwgLjJzfS5zaXRlLWhlYWRlciAuc2VhcmNoLWZpZWxkOmZvY3Vze291dGxpbmU6MH1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnNpdGUtaGVhZGVyX19zZWFyY2h7bWFyZ2luLXJpZ2h0OjIwcHh9fUAtd2Via2l0LWtleWZyYW1lcyBvdmVybGF5LWFwcGVhcnswJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgb3ZlcmxheS1hcHBlYXJ7MCV7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX0uc2l0ZS1oZWFkZXJfX2FjY291bnR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDp2YXIoLS1oZWFkZXItaG9yaXpvbnRhbC1nYXAsMXZ3KTt3aWR0aDoxMDAlOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuc2l0ZS1oZWFkZXJfX2FjY291bnR7bWF4LXdpZHRoOjM2MHB4fX1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtaGVhZGVyX19hY2NvdW50e21heC13aWR0aDoxMDAlO3dpZHRoOmF1dG99fS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhey13ZWJraXQtdHJhbnNpdGlvbjp2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dmFyKC0tYmFzZS10cmFuc2l0aW9uKTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OX0uc2l0ZS1oZWFkZXJfX2FjY291bnQtdGV4dHtmb250LWZhbWlseTp2YXIoLS1iYXNlLXRleHQtZm9udCk7Zm9udC1zaXplOjE2cHg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtd2VpZ2h0OnZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0KTttYXJnaW46MH1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtaGVhZGVyX19hY2NvdW50LXRleHR7Y29sb3I6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjB9fS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5ob3Zlci1jYXJ0PmEsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmhvdmVyLWNhcnQ+YXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfUBtZWRpYShtYXgtd2lkdGg6MTExMXB4KXsuc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAuaG92ZXItY2FydD5hLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5ob3Zlci1jYXJ0PmF7Ym9yZGVyLXJhZGl1czoxMHB4O3dpZHRoOjM1cHg7aGVpZ2h0OjM1cHg7bWFyZ2luLXJpZ2h0OjdweH19LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLmhvdmVyLWNhcnQ+YSAuaWNvbiwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaG92ZXItY2FydD5hIC5pY29uey13ZWJraXQtdHJhbnNpdGlvbjpub25lO3RyYW5zaXRpb246bm9uZX1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLmhvdmVyLWNhcnQ+YSAuaWNvbiwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaG92ZXItY2FydD5hIC5pY29ue21hcmdpbi1ib3R0b206MDtoZWlnaHQ6MTAwJX19LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3csLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3d7ZGlzcGxheTpibG9jazt0b3A6ODFweDtsZWZ0Oi0xNzVweDstd2Via2l0LWJveC1zaGFkb3c6MCAzMHB4IDYwcHggcmdiYSgwLDAsMCwuMTEpO2JveC1zaGFkb3c6MCAzMHB4IDYwcHggcmdiYSgwLDAsMCwuMTEpO2JvcmRlci1yYWRpdXM6MTBweDt6LWluZGV4Ojk5O3dpZHRoOjM4MHB4O3BhZGRpbmctYm90dG9tOjB9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3c6OmFmdGVyLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93OjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6Y2FsYyg1MCUgLSAxMHB4KTt0b3A6LTIzcHg7Ym9yZGVyOjEwcHggc29saWQgdHJhbnNwYXJlbnR9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtdGl0bGUsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtdGl0bGV7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDI1cHh9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtdGl0bGUgYSwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC10aXRsZSBhe2ZvbnQtZmFtaWx5OnZhcigtLWJhc2UtdGV4dC1mb250KTtmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWgyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOi4zMnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXRpdGxlIC5pY29uLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXRpdGxlIC5pY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tYm90dG9tOjB9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtdGl0bGUtdGV4dCwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC10aXRsZS10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWJhc2UtdGV4dC1mb250KTtmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWgyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpO21hcmdpbi1ib3R0b206MH0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3R7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttaW4taGVpZ2h0OjExMHB4O3BhZGRpbmc6MjBweCAyNXB4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0OmhvdmVyLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3Q6aG92ZXJ7YmFja2dyb3VuZDojZjhmOWZifS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3Q6aG92ZXIgLmNhcnQtcHJvZHVjdC1lZGl0LWRlbGV0ZSwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0OmhvdmVyIC5jYXJ0LXByb2R1Y3QtZWRpdC1kZWxldGV7b3BhY2l0eToxfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QgaW1nLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QgaW1ne3dpZHRoOmF1dG87bWF4LWhlaWdodDo2OHB4O21heC13aWR0aDo0NXB4O2hlaWdodDphdXRvOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW59LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1pbmZvLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtaW5mb3ttYXJnaW4tbGVmdDoyMHB4O21hcmdpbi1ib3R0b206MTBweDt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6NzVweDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC1mYW1pbHk6dmFyKC0tYmFzZS10ZXh0LWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1iYXNlLXRleHQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtaW5mbyBhLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtaW5mbyBhe2ZvbnQtZmFtaWx5OnZhcigtLWJhc2UtdGV4dC1mb250KTtmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0KX0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWluZm8tYXRyLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtaW5mby1hdHJ7Zm9udC1mYW1pbHk6dmFyKC0tYmFzZS10ZXh0LWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1iYXNlLXRleHQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpO21hcmdpbjowfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtZWRpdCwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXR7aGVpZ2h0Ojc1cHg7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6MjBweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXQtbW9uZXksLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1lZGl0LW1vbmV5e2ZvbnQtZmFtaWx5OnZhcigtLWJhc2UtdGV4dC1mb250KTtmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0KX0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXQtZGVsZXRlLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtZWRpdC1kZWxldGV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjp2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dmFyKC0tYmFzZS10cmFuc2l0aW9uKTtib3R0b206MDtyaWdodDowO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1lZGl0LWRlbGV0ZSAuaWNvbiwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXQtZGVsZXRlIC5pY29ue21hcmdpbjowfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtZWRpdC1kZWxldGUgYTpmaXJzdC1jaGlsZCwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXQtZGVsZXRlIGE6Zmlyc3QtY2hpbGR7Zm9udC1mYW1pbHk6dmFyKC0tYmFzZS10ZXh0LWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1iYXNlLXRleHQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3QtZWRpdC1kZWxldGUgYTpmaXJzdC1jaGlsZDpob3Zlciwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LWVkaXQtZGVsZXRlIGE6Zmlyc3QtY2hpbGQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtvcGFjaXR5OjF9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1lZGl0LWRlbGV0ZSBhOmxhc3QtY2hpbGQsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1lZGl0LWRlbGV0ZSBhOmxhc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MjVweDtjb2xvcjojZGI3NTdjfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3Qtc3VidG90YWwsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1zdWJ0b3RhbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoyMHB4IDI1cHggMTBweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQgYS5kZXNrdG9wLWhlYWRlciAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LXN1YnRvdGFsLXRleHQsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1zdWJ0b3RhbC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWJhc2UtdGV4dC1mb250KTtmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tYmFzZS10ZXh0LWxpbmUtaGVpZ2h0KTttYXJnaW4tYm90dG9tOjB9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1zdWJ0b3RhbC1zdW1tLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3Qtc3VidG90YWwtc3VtbXtmb250LWZhbWlseTp2YXIoLS1iYXNlLXRleHQtZm9udCk7Zm9udC1zaXplOnZhcigtLWJhc2UtdGV4dC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWJhc2UtdGV4dC1saW5lLWhlaWdodCk7bWFyZ2luLWJvdHRvbTowfS5zaXRlLWhlYWRlcl9fYWNjb3VudCBhLmRlc2t0b3AtaGVhZGVyIC5wb3B1cC1zaG93IC5jYXJ0LXByb2R1Y3Qtb3JkZXIsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1vcmRlcntmb250LWZhbWlseTp2YXIoLS1iYXNlLXRleHQtZm9udCk7Zm9udC1zaXplOnZhcigtLWJhc2UtdGV4dC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWJhc2UtdGV4dC1saW5lLWhlaWdodCk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDo2MHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjdweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo3cHh9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLnBvcHVwLXNob3cgLmNhcnQtcHJvZHVjdC1vcmRlciAuaWNvbiwuc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAucG9wdXAtc2hvdyAuY2FydC1wcm9kdWN0LW9yZGVyIC5pY29ue21hcmdpbjowO21hcmdpbi1sZWZ0OjIwcHg7aGVpZ2h0OjE3cHh9LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXIgLmNhcnQtdmFsdWUsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtdmFsdWV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi02cHg7bGVmdDowO3otaW5kZXg6MTt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6MTAwJTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2ZmNWU1ZTtmb250LXdlaWdodDo3MDA7Zm9udC1mYW1pbHk6dmFyKC0tYmFzZS10ZXh0LWZvbnQpO2ZvbnQtc2l6ZToxMHB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNmZmY7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0yMHB4LC01cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTIwcHgsLTVweCk7cGFkZGluZy10b3A6MH1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtaGVhZGVyX19hY2NvdW50IGEuZGVza3RvcC1oZWFkZXJ7ZGlzcGxheTpub25lfX0uc2l0ZS1oZWFkZXJfX2FjY291bnQgLmRlc2t0b3AtaGVhZGVyPi5pY29uLC5zaXRlLWhlYWRlcl9fYWNjb3VudCAub3Blbi1jYXJ0Pi5pY29ue3dpZHRoOjIxcHg7aGVpZ2h0OjIycHg7ZGlzcGxheTpibG9jazttYXJnaW46YXV0byAxMHB4IGF1dG8gMH1AbWVkaWEobWF4LXdpZHRoOjExMTFweCl7LnNpdGUtaGVhZGVyX19hY2NvdW50IC5kZXNrdG9wLWhlYWRlcj4uaWNvbiwuc2l0ZS1oZWFkZXJfX2FjY291bnQgLm9wZW4tY2FydD4uaWNvbnt3aWR0aDoyNHB4O2hlaWdodDoyMnB4fX0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydHstLXdjLXF1YW50aXR5LWlucHV0LXNpemU6NTlweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaXMtc3RpY2t5IC5jYXJ0LXBvcHVwe21heC1oZWlnaHQ6ODV2aH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDozNTBweDttYXgtd2lkdGg6NDYwcHg7bWFyZ2luLWxlZnQ6YXV0bzstd2Via2l0LWJveC1zaGFkb3c6MCAzcHggMTVweCAwIHJnYmEoMCwwLDAsLjIyKTtib3gtc2hhZG93OjAgM3B4IDE1cHggMCByZ2JhKDAsMCwwLC4yMik7Ym9yZGVyLXJhZGl1czoxNXB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1ib2R5LXRleHQtY29sb3IsIzMzMyk7b3BhY2l0eTowIWltcG9ydGFudDt2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246dmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOnZhcigtLWJhc2UtdHJhbnNpdGlvbik7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQwcHg7bGVmdDphdXRvO3JpZ2h0Oi0yNXB4O3otaW5kZXg6MTAwMTttYXgtaGVpZ2h0Ojc1dmg7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgYXtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSl9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgYTpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLm5vLXByb2R1Y3Rze3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MjBweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1wcm9kdWN0cy1saXN0e21heC1oZWlnaHQ6ODAlO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjEwcHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdHtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O3BhZGRpbmc6MTBweCAwfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3Q6bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuMSl9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1pbWFnZXt3aWR0aDozMCV9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1pbWFnZSBpbWd7aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjNweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1wcm9kdWN0LWNvbnRlbnR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt3aWR0aDo3MCU7cGFkZGluZy1sZWZ0OjEwcHg7cG9zaXRpb246cmVsYXRpdmV9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1vcmRlcnttYXJnaW4tbGVmdDoycHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1pbmZvey13ZWJraXQtYm94LWZsZXg6MDstbXMtZmxleDowIDAgMTAwJTtmbGV4OjAgMCAxMDAlfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3QtaW5mbyBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1ib3R0b206NXB4fS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3QtaW5mby1hdHRye21hcmdpbjo1cHggMCAxMHB4O2NvbG9yOnZhcigtLWJvZHktdGV4dC1jb2xvcil9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1pbmZvLWF0dHI6ZW1wdHl7ZGlzcGxheTpub25lfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3QtdG90YWx7LXdlYmtpdC1ib3gtZmxleDowOy1tcy1mbGV4OjAgMCA4MHB4O2ZsZXg6MCAwIDgwcHg7d2lkdGg6ODBweDttYXJnaW4tYm90dG9tOjVweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1wcm9kdWN0LWVkaXQtcXVhbnRpdHl7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcil9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1lZGl0LXF1YW50aXR5IC5kcy1xdHktYnV0dG9ue3BhZGRpbmc6MnB4IDEycHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1lZGl0LXF1YW50aXR5IC5kcy1idG4tc3Vie21hcmdpbi1sZWZ0OjA7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3QtZWRpdC1xdWFudGl0eSAuZHMtYnRuLWluY3ttYXJnaW4tcmlnaHQ6MDtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKX0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1wcm9kdWN0LWVkaXQtcXVhbnRpdHkgLnF1YW50aXR5IC5pdGVtX3F0eXtkaXNwbGF5Om5vbmV9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1lZGl0LXF1YW50aXR5IGlucHV0e2hlaWdodDozMHB4O3dpZHRoOnZhcigtLXdjLXF1YW50aXR5LWlucHV0LXNpemUpO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlcjpub25lOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGR9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLmNhcnQtcHJvZHVjdC1lZGl0LXF1YW50aXR5IGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3QtZWRpdC1xdWFudGl0eSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1wcm9kdWN0LWVkaXQtZGVsZXRle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0b3A6MDtyaWdodDowO2ZvbnQtc2l6ZTouOGVtfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3Qtb3JkZXJ7Y29sb3I6dmFyKC0tYnRuLXByaW1hcnktY29sb3IpfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5yZW1vdmUtaXRlbXtmb250LXNpemU6MDtjb2xvcjp0cmFuc3BhcmVudDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLnJlbW92ZS1pdGVtOmJlZm9yZXtjb250ZW50OiLDlyI7cG9zaXRpb246YWJzb2x1dGU7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpO2JhY2tncm91bmQtY29sb3I6I2YzZjdmZjtib3JkZXItcmFkaXVzOjUwJTtwYWRkaW5nOjNweDtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MjBweDt0b3A6MDtyaWdodDowOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtcG9wdXAgLnJlbW92ZS1pdGVtOmhvdmVyOmJlZm9yZXtjb2xvcjojZjNmN2ZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5uby1wcm9kdWN0c3tmb250LXNpemU6dmFyKC0tYmFzZS10ZXh0LXNpemUpfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LXBvcHVwIC5jYXJ0LXByb2R1Y3RzLXN1YnRvdGFse2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMSk7Y29sb3I6dmFyKC0tYm9keS10ZXh0LWNvbG9yKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo1cHggMTBweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuY2FydC1wb3B1cCAuY2FydC1jaGVja291dHtib3JkZXItdG9wOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4xKTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjEwcHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmhvdmVyLWNhcnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaG92ZXItY2FydDo6YWZ0ZXIsLnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmhvdmVyLWNhcnQ6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2NvbnRlbnQ6IiJ9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmhvdmVyLWNhcnQ6YmVmb3Jle3otaW5kZXg6MTt3aWR0aDoxMDAlO2hlaWdodDoyNXB4O3RvcDphdXRvO2JvdHRvbTotMjBweH0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaG92ZXItY2FydDphZnRlcntib3R0b206LTE4cHg7cmlnaHQ6MjVweDtib3JkZXI6c29saWQgdHJhbnNwYXJlbnQ7aGVpZ2h0OjA7d2lkdGg6MDt6LWluZGV4OjEwMDI7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmO2JvcmRlci13aWR0aDoxMHB4O21hcmdpbi1sZWZ0Oi0xMHB4O29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5ob3Zlci1jYXJ0OmhvdmVyOmJlZm9yZXtwb2ludGVyLWV2ZW50czppbml0aWFsfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5ob3Zlci1jYXJ0OmhvdmVyOmFmdGVye29wYWNpdHk6MX0uc2l0ZS1oZWFkZXJfX2FjY291bnQtY2FydCAuaG92ZXItY2FydDpob3ZlciAuY2FydC1wb3B1cHtvcGFjaXR5OjEhaW1wb3J0YW50O3Zpc2liaWxpdHk6dmlzaWJsZTtwb2ludGVyLWV2ZW50czppbml0aWFsfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LW5vdGlmeXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7dG9wOjM3cHg7YmFja2dyb3VuZC1jb2xvcjojMzMzO2NvbG9yOiNmZmY7d2hpdGUtc3BhY2U6bm93cmFwO2xpbmUtaGVpZ2h0OjE7Zm9udC1zaXplOnZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtmb250LXdlaWdodDo0MDA7cGFkZGluZzoxMHB4O3JpZ2h0OjVweDtsZWZ0OmF1dG87LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbjphbGwgLjJzOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44LC44KTt0cmFuc2Zvcm06c2NhbGUoLjgsLjgpO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5zaXRlLWhlYWRlcl9fYWNjb3VudC1jYXJ0IC5jYXJ0LW5vdGlmeTpiZWZvcmV7Y29udGVudDoiIjtib3R0b206MTAwJTtyaWdodDo1cHg7Ym9yZGVyOnNvbGlkIHRyYW5zcGFyZW50O2hlaWdodDowO3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItYm90dG9tLWNvbG9yOiMzMzM7Ym9yZGVyLXdpZHRoOjEwcHg7bWFyZ2luLWxlZnQ6LTEwcHh9LnNpdGUtaGVhZGVyX19hY2NvdW50LWNhcnQgLmNhcnQtbm90aWZ5LmFjdGl2ZXtvcGFjaXR5OjF9Lm0tYmFubmVye3dpZHRoOjEwMCU7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQ6I2Y0ZmNmZX0ubS1iYW5uZXJfX2NvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OnZhcigtLWJhbm5lckhlaWdodCxhdXRvKTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uaGVhZGVyLWxhcCAubS1iYW5uZXJfX2NvbnRhaW5lcntwYWRkaW5nLXRvcDp2YXIoLS1oZWFkZXItaGlnaHQpfUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsubS1iYW5uZXJfX2NvbnRhaW5lcnttaW4taGVpZ2h0OjMwdmg7b3ZlcmZsb3c6aGlkZGVufX0ubS1iYW5uZXJfX21lZGlhe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowfS5tLWJhbm5lcl9fbWVkaWEgaWZyYW1lLC5tLWJhbm5lcl9fbWVkaWEgaW1nLC5tLWJhbm5lcl9fbWVkaWEgcGljdHVyZSwubS1iYW5uZXJfX21lZGlhIHZpZGVvey1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5oYXMtb3ZlcmxheSAubS1iYW5uZXJfX21lZGlhOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW92ZXJsYXktY29sb3IpO29wYWNpdHk6dmFyKC0tb3ZlcmxheS1vcGFjaXR5KTt6LWluZGV4OjF9LmZpeGVkLWhlYWRlci5zaW5nbGUtcHJvZHVjdCAubS1iYW5uZXJ7bWF4LWhlaWdodDoyMDBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLWJvdHRvbTozMHB4fUBtZWRpYShtaW4td2lkdGg6MTExMnB4KXsubS1iYW5uZXItLWJsb2d7LS1iYW5uZXJIZWlnaHQ6dmFyKC0tYmFubmVyLWhlaWdodC0tYmxvZywgNDIwcHgpO3RleHQtYWxpZ246Y2VudGVyfS5tLWJhbm5lci0tc21hbGx7LS1iYW5uZXJIZWlnaHQ6dmFyKC0tYmFubmVyLWhlaWdodC0tc21hbGwsIDMwMHB4KX0ubS1iYW5uZXItLW1lZGl1bXstLWJhbm5lckhlaWdodDp2YXIoLS1iYW5uZXItaGVpZ2h0LS1tZWRpdW0sIDQ1MHB4KX0ubS1iYW5uZXItLWZ1bGx7LS1iYW5uZXJIZWlnaHQ6dmFyKC0tYmFubmVyLWhlaWdodC0tZnVsbCwgMTAwdmgpfS5tLWJhbm5lci0tZnVsbCAubS1iYW5uZXJfX2NvbnRhaW5lcnttYXgtaGVpZ2h0Ojk2MHB4fX0uaG9tZV9oZXJvX3NlY3Rpb257cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MTd2bWluIDA7YmFja2dyb3VuZDojZjNmYmZlfS5ob21lX2hlcm9fc2VjdGlvbjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MDt0b3A6NTAlO2xlZnQ6MH0uaG9tZV9oZXJvX3NlY3Rpb246YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MDt0b3A6NTAlO2xlZnQ6MjAlfS5ob21lX2hlcm9fc2VjdGlvbiAuYmdfaW1hZ2V7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6bm9uZTtyaWdodDotMTAlO3RvcDowfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAuYmdfaW1hZ2V7ZGlzcGxheTpub25lfX0uaG9tZV9oZXJvX3NlY3Rpb24gLmJnX2ltYWdlIGltZ3ttYXgtd2lkdGg6MTAwJX0uaG9tZV9oZXJvX3NlY3Rpb24gLi1jLWFjY2VudHtkaXNwbGF5OmJsb2NrfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAuaGVyby1jdGEtYmxvY2t7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX19LmhvbWVfaGVyb19zZWN0aW9uIC5oZXJvLWN0YXstLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b206MTguNXB4Oy0tYnRuLWZvbnQtc2l6ZToxLjhyZW19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmhvbWVfaGVyb19zZWN0aW9uIC5oZXJvLWN0YXttYXJnaW4tdG9wOjFlbX19LmhvbWVfaGVyb19zZWN0aW9uIC5oZXJvLWljb257bWF4LXdpZHRoOjUycHg7bWF4LWhlaWdodDo1MHB4O21hcmdpbi1yaWdodDoxcmVtfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAuaGVyby1pY29ue2Rpc3BsYXk6bm9uZX19LmhvbWVfaGVyb19zZWN0aW9uIC5oZXJvLWljb24gaW1ne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uaG9tZV9oZXJvX3NlY3Rpb24gLmhlcm8tY3RhLWJsb2Nre2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLWJvdHRvbTo1ZW07LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXgtd2lkdGg6NTgwcHh9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5ob21lX2hlcm9fc2VjdGlvbiAuaGVyby1jdGEtYmxvY2t7bWFyZ2luLWlubGluZTphdXRvfX0uaG9tZV9oZXJvX3NlY3Rpb24gLmhlcm8tY3RhLXdyYXB7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LmhvbWVfaGVyb19zZWN0aW9uIC5oZXJvLWN0YS13cmFwey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9fS5ob21lX2hlcm9fc2VjdGlvbiAuaGVyby10ZXh0ey0taC1jbGFtcC1mb3JtdWxhOjEuMDR2dzstLWljb24tc21hbGxlci1zaXplOjE4cHg7LS1pY29uLXNpemU6MjBweDtmb250LXNpemU6Y2xhbXAodmFyKC0taWNvbi1zbWFsbGVyLXNpemUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0taWNvbi1zaXplKSk7bWF4LXdpZHRoOjI4NnB4fS5ob21lX2hlcm9fc2VjdGlvbiAuaGVyby10ZXh0IHNwYW57Zm9udC13ZWlnaHQ6NzAwfS5ob21lX2hlcm9fc2VjdGlvbiAuYW5pbWF0aW9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmhvbWVfaGVyb19zZWN0aW9uIC5hbmltYXRpb24gLmFuaW1hdGVkLWltYWdlLTF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDoxMyU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDB2dyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwdncpO2hlaWdodDowO3dpZHRoOjM4MXB4O3BhZGRpbmctdG9wOjExMCV9QG1lZGlhKG1pbi13aWR0aDo3NjdweCkgYW5kIChtYXgtd2lkdGg6MTExMXB4KXsuaG9tZV9oZXJvX3NlY3Rpb24gLmFuaW1hdGlvbiAuYW5pbWF0ZWQtaW1hZ2UtMXtsZWZ0Oi0xMSV9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAuYW5pbWF0aW9uIC5hbmltYXRlZC1pbWFnZS0xe3dpZHRoOjE1MHB4O3BhZGRpbmctdG9wOjc4JTtwb3NpdGlvbjpyZWxhdGl2ZX19LmhvbWVfaGVyb19zZWN0aW9uIC5hbmltYXRpb24gLmFuaW1hdGVkLWltYWdlLTEgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpfS5ob21lX2hlcm9fc2VjdGlvbiAuYW5pbWF0aW9uIC5hbmltYXRlZC1pbWFnZS0ye3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMyU7bGVmdDozMyU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1MHZ3KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCg1MHZ3KTtoZWlnaHQ6MDt3aWR0aDo0NTFweDtwYWRkaW5nLXRvcDoxMTAlfUBtZWRpYShtaW4td2lkdGg6NzY3cHgpIGFuZCAobWF4LXdpZHRoOjExMTFweCl7LmhvbWVfaGVyb19zZWN0aW9uIC5hbmltYXRpb24gLmFuaW1hdGVkLWltYWdlLTJ7dG9wOi0xJTtsZWZ0OjclfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuaG9tZV9oZXJvX3NlY3Rpb24gLmFuaW1hdGlvbiAuYW5pbWF0ZWQtaW1hZ2UtMnt3aWR0aDoxNjVweDtwYWRkaW5nLXRvcDo3NSU7bGVmdDozOCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg3NXZ3KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCg3NXZ3KX19LmhvbWVfaGVyb19zZWN0aW9uIC5hbmltYXRpb24gLmFuaW1hdGVkLWltYWdlLTIgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW59LmhvbWVfaGVyb19zZWN0aW9uIC5wbGF5LWJ0bnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwdncpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwdncpO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7bWFyZ2luOmF1dG87ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjIwcmVtO2hlaWdodDoyMHJlbTt6LWluZGV4OjN9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmhvbWVfaGVyb19zZWN0aW9uIC5wbGF5LWJ0bnt3aWR0aDoxNXJlbTtoZWlnaHQ6MTVyZW19fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAucGxheS1idG57LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDB2dyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwdncpfX0uaG9tZV9oZXJvX3NlY3Rpb24gLnBsYXktYnRuX19jaXJjbGV7LS1oLWNsYW1wLWZvcm11bGE6OS44OXZ3Oy0taWNvbi1zbWFsbGVyLXNpemU6ODJweDstLWljb24tc2l6ZToxNTBweDstLWljb246Y2xhbXAodmFyKC0taWNvbi1zbWFsbGVyLXNpemUpLCB2YXIoLS1oLWNsYW1wLWZvcm11bGEpLCB2YXIoLS1pY29uLXNpemUpKTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO3dpZHRoOnZhcigtLWljb24pO2hlaWdodDp2YXIoLS1pY29uKTtib3JkZXItcmFkaXVzOjUwJTt6LWluZGV4OjI7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6IzY4Y2RlZDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgyMjVkZWcsIzY4Y2RlZCwjMzY1M2E3KTstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlfUBtZWRpYShtaW4td2lkdGg6NzY3cHgpIGFuZCAobWF4LXdpZHRoOjExMTFweCl7LmhvbWVfaGVyb19zZWN0aW9uIC5wbGF5LWJ0bl9fY2lyY2xle2luc2V0OnVuc2V0O2xlZnQ6NDAlO3RvcDoyMiV9fS5ob21lX2hlcm9fc2VjdGlvbiAucGxheS1idG5fX2NpcmNsZSBzdmd7cG9zaXRpb246cmVsYXRpdmU7bGVmdDozJTt3aWR0aDozNXB4O3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuaG9tZV9oZXJvX3NlY3Rpb24gLnBsYXktYnRuX19jaXJjbGUgc3Zne3dpZHRoOjI1cHh9fS5ob21lX2hlcm9fc2VjdGlvbiAucGxheS1idG5fX2NpcmNsZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IzKTt6LWluZGV4OjE7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZX1AbWVkaWEoaG92ZXI6aG92ZXIpey5ob21lX2hlcm9fc2VjdGlvbiAucGxheS1idG5fX2NpcmNsZTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvcjMpOy13ZWJraXQtYW5pbWF0aW9uOnB1bHNlIC41cyBsaW5lYXI7YW5pbWF0aW9uOnB1bHNlIC41cyBsaW5lYXJ9fS5ob21lX2hlcm9fc2VjdGlvbiAucm91bmRlZC10ZXh0e3dpZHRoOjIwcmVtO2hlaWdodDoyMHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMDNkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEwM2RlZyk7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDA7ei1pbmRleDoxO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAucm91bmRlZC10ZXh0e3dpZHRoOjE1cmVtO2hlaWdodDoxNXJlbX19LmhvbWVfaGVyb19zZWN0aW9uIC5yb3VuZGVkLXRleHQ6YWZ0ZXJ7d2lkdGg6MjEuNXJlbTtoZWlnaHQ6MjEuNXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjYpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt6LWluZGV4Oi0xfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5ob21lX2hlcm9fc2VjdGlvbiAucm91bmRlZC10ZXh0OmFmdGVye3dpZHRoOjE2LjVyZW07aGVpZ2h0OjE2LjVyZW19fS5ob21lX2hlcm9fc2VjdGlvbiAucm91bmRlZC10ZXh0IC50ZXh0UGF0aENpcmNsZXtjb2xvcjojZmY3ODIwO2ZpbGw6I2ZmNzgyMDtmb250LXNpemU6NjVweH0uaG9tZV9oZXJvX3NlY3Rpb24gLnJvdW5kZWQtdGV4dCBzdmd7cG9zaXRpb246cmVsYXRpdmV9LmhvbWVfaGVyb19zZWN0aW9uIC5yb3VuZGVkLXRleHRfX3NlY29uZHtmaWxsOiMyNTI4MzE7Zm9udC13ZWlnaHQ6NDAwfS5ob21lX2hlcm9fc2VjdGlvbiAucm91bmRlZC10ZXh0IC5jb2xvcmluZ3std2Via2l0LWFuaW1hdGlvbjpjb2xvcmluZyAxMnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjpjb2xvcmluZyAxMnMgbGluZWFyIGluZmluaXRlfS5ob21lX2hlcm9fc2VjdGlvbiAucm90YXRpbmd7LXdlYmtpdC1hbmltYXRpb246cm90YXRpbmcgMTJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246cm90YXRpbmcgMTJzIGxpbmVhciBpbmZpbml0ZX0uZmJNYWluIGEuZmJ4e3RvcDotMTBweCFpbXBvcnRhbnQ7cmlnaHQ6LTRweCFpbXBvcnRhbnR9LmwtYmFubmVyLWhlcm97d2lkdGg6MTAwJTtnYXA6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1hcmVhczoiaGVhZGluZ0IgbWVkaWFCIiAiY2FyZHNCIG1lZGlhQiI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtyb3ctZ2FwOjB9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmwtYmFubmVyLWhlcm97Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtncmlkLXRlbXBsYXRlLWFyZWFzOiJoZWFkaW5nQiAiICJtZWRpYUIiICJjYXJkc0IiO2dhcDoyMHB4fX0ubC1iYW5uZXItaGVybyAubC1iYW5uZXJfX3RleHR7Z3JpZC1hcmVhOmhlYWRpbmdCfS5sLWJhbm5lci1oZXJvIC5sLWJhbm5lcl9fY2FyZHN7Z3JpZC1hcmVhOmNhcmRzQn0ubC1iYW5uZXItaGVybyAubC1iYW5uZXJfX21lZGlhe2dyaWQtYXJlYTptZWRpYUI7aGVpZ2h0OjEwMCV9LmwtYmFubmVyLWhlcm8gLnZpZGVvLXBvcHVwe2Rpc3BsYXk6bm9uZX0ubC1iYW5uZXItaGVybzpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7dG9wOjUwJTtyaWdodDoyMCV9LmwtYmFubmVyLWhlcm86YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7dG9wOjUwJTtyaWdodDoxMCV9Lmhlcm8tY2FyZHMtY29udGFpbmVyey0tZ3JpZC1pdGVtLWdhcDoxNXB4Oy0tZ3JpZC1pdGVtLWNvbDoyO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlOmF1dG8vcmVwZWF0KHZhcigtLWdyaWQtaXRlbS1jb2wsMiksbWlubWF4KDAsMWZyKSk7Z2FwOnZhcigtLWdyaWQtaXRlbS1nYXApfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5oZXJvLWNhcmRzLWNvbnRhaW5lcnstLWdyaWQtaXRlbS1jb2w6MX19Lmhlcm8tY2FyZHMtY29udGFpbmVyIC5oZXJvLWNhcmQtaWNvbnstLWgtY2xhbXAtZm9ybXVsYToyLjA4dnc7LS1pY29uLXNtYWxsZXItc2l6ZTozMHB4Oy0taWNvbi1zaXplLWZ1bGw6NDFweDstLWljb24tc2l6ZTpjbGFtcCh2YXIoLS1pY29uLXNtYWxsZXItc2l6ZSksIHZhcigtLWgtY2xhbXAtZm9ybXVsYSksIHZhcigtLWljb24tc2l6ZS1mdWxsKSk7d2lkdGg6dmFyKC0taWNvbi1zaXplKTtoZWlnaHQ6dmFyKC0taWNvbi1zaXplKX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuaGVyby1jYXJkcy1jb250YWluZXIgLmhlcm8tY2FyZC1pY29ue21hcmdpbi1yaWdodDoxLjVyZW19fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5oZXJvLWNhcmRzLWNvbnRhaW5lciAuaGVyby1jYXJkLWljb257bWFyZ2luLWJvdHRvbToxLjJyZW19fS5oZXJvLWNhcmRzLWNvbnRhaW5lciAuaGVyby1jYXJkLWljb24gaW1ne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uaGVyby1jYXJkcy1jb250YWluZXIgLmhlcm8tdGV4dHtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zfS5oZXJvLWNhcmRzLWNvbnRhaW5lciAuaGVyby1jYXJkLXRleHR7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuM31AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuaGVyby1jYXJkcy1jb250YWluZXIgLmhlcm8tY2FyZC10ZXh0e3RleHQtYWxpZ246bGVmdH19Lmhlcm8tY2FyZHMtY29udGFpbmVyIC5oZXJvLWNhcmR7cGFkZGluZzozcmVtfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5oZXJvLWNhcmRzLWNvbnRhaW5lciAuaGVyby1jYXJke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lmhlcm8tY2FyZHMtY29udGFpbmVyIC5oZXJvLWNhcmQ6bm90KDpsYXN0LW9mLXR5cGUpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMzcsNDAsNDksLjE1KX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7Lmhlcm8tY2FyZHMtY29udGFpbmVyIC5oZXJvLWNhcmR7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpfX1ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpO3RyYW5zZm9ybTpzY2FsZSgxLjEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDUpO3RyYW5zZm9ybTpzY2FsZSgxLjA1KX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QGtleWZyYW1lcyBwdWxzZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9MzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMSk7dHJhbnNmb3JtOnNjYWxlKDEuMSl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX03MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7dHJhbnNmb3JtOnNjYWxlKDEuMDUpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX0ucGFnZS1iYW5uZXJ7YmFja2dyb3VuZDojZjRmY2ZlO3Bvc2l0aW9uOnJlbGF0aXZlfS5wYWdlLWJhbm5lcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAyMDBweCAyMDBweCAjMzY1M2E3O2JveC1zaGFkb3c6MCAwIDIwMHB4IDIwMHB4ICMzNjUzYTc7b3BhY2l0eTouMjM7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3RvcDo1MCU7bGVmdDowfS5wYWdlLWJhbm5lcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDIwMHB4IDIwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMjAwcHggMjAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4yO2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt0b3A6NTAlO2xlZnQ6MjAlfS5wYWdlLWJhbm5lci5ndC1kZWZhdWx0e3BhZGRpbmctdG9wOmNhbGModmFyKC0tZGVmYXVsdC10b3AtZ2FwKSAqIDIpfS5wYWdlLWJhbm5lciAubC1iYW5uZXJ7LS1jb2x1bW5zLXJhdGlvOjcwJX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7LnBhZ2UtYmFubmVyIC5sLWJhbm5lcnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ucGFnZS1iYW5uZXIgLmwtYmFubmVyX19tZWRpYXttYXJnaW4tdG9wOjFlbX19LnBhZ2UtYmFubmVyIC5maXJzdC10ZXh0LC5wYWdlLWJhbm5lciAuc2Vjb25kLXRleHR7LS1oLWNsYW1wLWZvcm11bGE6MS4wNHZ3Oy0tc21hbGxlci10ZXh0LXNpemU6MTZweDstLXRleHQtc2l6ZToyMHB4O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS10ZXh0LXNpemUpKTttYXJnaW4tYm90dG9tOjEuNWVtfS5wYWdlLWJhbm5lciAuZmlyc3QtdGV4dCBzcGFuLC5wYWdlLWJhbm5lciAuc2Vjb25kLXRleHQgc3Bhbntmb250LXdlaWdodDo3MDB9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5wYWdlLWJhbm5lciAuZmlyc3QtdGV4dCwucGFnZS1iYW5uZXIgLnNlY29uZC10ZXh0e3RleHQtYWxpZ246Y2VudGVyfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LnBhZ2UtYmFubmVyIC5maXJzdC10ZXh0LC5wYWdlLWJhbm5lciAuc2Vjb25kLXRleHR7bWF4LXdpZHRoOjgwJX19QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5wYWdlLWJhbm5lciAuYy1oZWFkaW5ne3RleHQtYWxpZ246Y2VudGVyfX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LnBhZ2UtYmFubmVyIC5jLWhlYWRpbmd7bWF4LXdpZHRoOjgwJX19LnBhZ2UtYmFubmVyIC5oZXJvLWN0YXN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFnZS1iYW5uZXIgLmhlcm8tY3Rhc3std2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ucGFnZS1iYW5uZXIgLmhlcm8tY3RhcyAuaGVyby1jdGF7bWFyZ2luLXRvcDoycmVtfX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsucGFnZS1iYW5uZXIgLmhlcm8tY3RhcyAuaGVyby1jdGF7bWFyZ2luLXJpZ2h0OjFyZW19fS5wYWdlLWJhbm5lciAuaGVyby1jdGFzIC5oZXJvLWN0YSsuaGVyby1jdGEgLmMtYnRuLi1wcmltYXJ5LC5wYWdlLWJhbm5lciAuaGVyby1jdGFzIC5oZXJvLWN0YSsuaGVyby1jdGEgLmdmb3JtLWJ1dHRvbiwucGFnZS1iYW5uZXIgLmhlcm8tY3RhcyAuaGVyby1jdGErLmhlcm8tY3RhIC5nZm9ybV9idXR0b24sLnBhZ2UtYmFubmVyIC5oZXJvLWN0YXMgLmhlcm8tY3RhKy5oZXJvLWN0YSAud3BjZjctc3VibWl0e2JhY2tncm91bmQtY29sb3I6IzU4NjVmMn0ucGFnZS1iYW5uZXIgLmhlcm8tY3RhcyAuaGVyby1jdGErLmhlcm8tY3RhIC5jLWJ0bi4tcHJpbWFyeSAuYy1idG5fX2ljbyBzdmcsLnBhZ2UtYmFubmVyIC5oZXJvLWN0YXMgLmhlcm8tY3RhKy5oZXJvLWN0YSAuZ2Zvcm0tYnV0dG9uIC5jLWJ0bl9faWNvIHN2ZywucGFnZS1iYW5uZXIgLmhlcm8tY3RhcyAuaGVyby1jdGErLmhlcm8tY3RhIC5nZm9ybV9idXR0b24gLmMtYnRuX19pY28gc3ZnLC5wYWdlLWJhbm5lciAuaGVyby1jdGFzIC5oZXJvLWN0YSsuaGVyby1jdGEgLndwY2Y3LXN1Ym1pdCAuYy1idG5fX2ljbyBzdmd7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ucGFnZS1iYW5uZXIgLmhlcm8taW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnBhZ2UtYmFubmVyIC5oZXJvLWltZyBpbWd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW59QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5wYWdlLWJhbm5lciAuaGVyby1pbWcgaW1ney13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMik7dHJhbnNmb3JtOnNjYWxlKDEuMil9fS5wYWdlLWJhbm5lciAuaGVyby1jYXJkc3ttYXJnaW4tYm90dG9tOjEuNWVtO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO21hcmdpbi1yaWdodDphdXRvfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5wYWdlLWJhbm5lciAuaGVyby1jYXJkc3std2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjIuNXJlbSAzcmVtfX0ucGFnZS1iYW5uZXIgLmhlcm8tY2FyZHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5wYWdlLWJhbm5lciAuaGVyby1jYXJkIGxhYmVse2ZvbnQtc2l6ZToxLjZyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOi4zZW19LnBhZ2UtYmFubmVyIC5oZXJvLWNhcmRfX2xpbmt7Zm9udC1zaXplOjIuMnJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpfUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYWdlLWJhbm5lciAuaGVyby1jYXJkOm5vdCg6bGFzdC1vZi10eXBlKXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFnZS1iYW5uZXIgLmhlcm8tY2FyZDpub3QoOmxhc3Qtb2YtdHlwZSl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMSl9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5wYWdlLWJhbm5lciAuaGVyby1jYXJkOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7cGFkZGluZy10b3A6MXJlbX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LnBhZ2UtYmFubmVyIC5oZXJvLWNhcmR7cGFkZGluZzozLjVyZW0gM3JlbX19QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LnBhZ2UtYmFubmVyIC5oZXJvLWNhcmR7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtwYWRkaW5nLWJvdHRvbToxcmVtfX0ucGFnZS1iYW5uZXIgLmwtYmFubmVyX19tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZX0ucGFnZS1iYW5uZXIgLmwtYmFubmVyX19tZWRpYTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czo1MCU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3RvcDo1MCU7bGVmdDo1MCV9LnBhZ2UtYmFubmVyIC5sLWJhbm5lcl9fbWVkaWE6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAyMDBweCAyMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDIwMHB4IDIwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czo1MCU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3RvcDo1MCU7cmlnaHQ6MH0ubC1iYW5uZXItY3VzdG9tey0tY29sdW1ucy1yYXRpbzo1MCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlO2dhcDoyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubC1iYW5uZXItY3VzdG9tey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9LmwtYmFubmVyLWN1c3RvbSAubC1iYW5uZXJfX3RleHR7bWF4LXdpZHRoOnZhcigtLWNvbHVtbnMtcmF0aW8pOy13ZWJraXQtYm94LWZsZXg6MTstbXMtZmxleDoxIDEgdmFyKC0tY29sdW1ucy1yYXRpbyk7ZmxleDoxIDEgdmFyKC0tY29sdW1ucy1yYXRpbyk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5sLWJhbm5lci1jdXN0b20gLmwtYmFubmVyX19tZWRpYXstd2Via2l0LWJveC1mbGV4OjE7LW1zLWZsZXg6MSAxIGF1dG87ZmxleDoxIDEgYXV0bztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmwtYmFubmVyLWN1c3RvbSAubC1iYW5uZXJfX21lZGlhIGltZ3ttYXgtd2lkdGg6MTAwJX19LmFyY2hpdmV7YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5LWNvbG9yMyl9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm97cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsuYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyb3twYWRkaW5nLXRvcDoxOHZtaW59fS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTt0b3A6NTAlO2xlZnQ6MH0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVybzphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTt0b3A6NTAlO2xlZnQ6MjAlfS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvIC5sLWJhbm5lci1mYXE6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4Oi0xO3RvcDo1MCU7cmlnaHQ6MjAlfS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvIC5sLWJhbm5lci1mYXE6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjNjhjZGVkO2JveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czozOSU7Y29udGVudDoiIjt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7dG9wOjUwJTtyaWdodDoxMCV9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXJ7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvIC5sLWJhbm5lcl9fdGV4dHt3aWR0aDo0OCU7dGV4dC1hbGlnbjpsZWZ0fX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXJfX21lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXJfX21lZGlhe21hcmdpbi10b3A6NXJlbX19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyX19tZWRpYXt3aWR0aDo0OCV9fS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvIC5sLWJhbm5lcl9fbWVkaWEgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tdGV4dHttYXJnaW4tYm90dG9tOjRyZW19LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveHttYXgtd2lkdGg6NTE2cHg7cG9zaXRpb246cmVsYXRpdmV9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxke3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtib3JkZXI6MnB4IHNvbGlkICNkN2RhZTI7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS42O2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtwYWRkaW5nOjE1cHggNTBweCAxNXB4IDI4cHh9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1zZWFyY2gtYm94IC5zZWFyY2gtZmllbGQ6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxkOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1zZWFyY2gtYm94IC5zZWFyY2gtZmllbGQ6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1zZWFyY2gtYm94IC5zZWFyY2gtZmllbGQ6Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yMil9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLXN1Ym1pdHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo2cHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3lOU2NnYUdWcFoyaDBQU2N5TlNjZ2RtbGxkMEp2ZUQwbk1DQXdJREkxSURJMUp5Qm1hV3hzUFNkdWIyNWxKejQ4Y0dGMGFDQnBaRDBuVm1WamRHOXlKeUJrUFNkTk1qTXVOelk1TkNBeU1pNDNOekZNTVRjdU9ERTVOQ0F4Tmk0MU9ESTNRekU1TGpNME9UTWdNVFF1TnpZME1TQXlNQzR4T0RjMUlERXlMalEzTlRrZ01qQXVNVGczTlNBeE1DNHdPVE0zUXpJd0xqRTROelVnTkM0MU1qZ3hOQ0F4TlM0Mk5Ua3pJREFnTVRBdU1Ea3pOeUF3UXpRdU5USTRNVFFnTUNBd0lEUXVOVEk0TVRRZ01DQXhNQzR3T1RNM1F6QWdNVFV1TmpVNU15QTBMalV5T0RFMElESXdMakU0TnpVZ01UQXVNRGt6TnlBeU1DNHhPRGMxUXpFeUxqRTRNekVnTWpBdU1UZzNOU0F4TkM0eE56UXlJREU1TGpVMU56TWdNVFV1T0RjMk5pQXhPQzR6TmpGTU1qRXVPRGN4T0NBeU5DNDFPVFl6UXpJeUxqRXlNalFnTWpRdU9EVTJOU0F5TWk0ME5UazFJREkxSURJeUxqZ3lNRFlnTWpWRE1qTXVNVFl5TlNBeU5TQXlNeTQwT0RZNElESTBMamcyT1RjZ01qTXVOek16SURJMExqWXpNamRETWpRdU1qVTJNU0F5TkM0eE1qa3pJREkwTGpJM01qZ2dNak11TWprME5pQXlNeTQzTmprMElESXlMamMzTVZwTk1UQXVNRGt6TnlBeUxqWXpNekUxUXpFMExqSXdOellnTWk0Mk16TXhOU0F4Tnk0MU5UUXpJRFV1T1RjNU9EZ2dNVGN1TlRVME15QXhNQzR3T1RNM1F6RTNMalUxTkRNZ01UUXVNakEzTmlBeE5DNHlNRGMySURFM0xqVTFORE1nTVRBdU1Ea3pOeUF4Tnk0MU5UUXpRelV1T1RjNU9EZ2dNVGN1TlRVME15QXlMall6TXpFMUlERTBMakl3TnpZZ01pNDJNek14TlNBeE1DNHdPVE0zUXpJdU5qTXpNVFVnTlM0NU56azRPQ0ExTGprM09UZzRJREl1TmpNek1UVWdNVEF1TURrek55QXlMall6TXpFMVdpY2dabWxzYkQwbkl6TTJOVE5CTnljdlBqd3ZjM1puUGc9PSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtib3JkZXI6bm9uZTtvdXRsaW5lOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1zZWFyY2gtYm94IC5mYXEtY2F0ZWdvcmllc3t6LWluZGV4OjF9LmFyY2hpdmUgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLC5hcmNoaXZlIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwuYXJjaGl2ZSBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLC5hcmNoaXZlIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5hcmNoaXZlIC5jbGVhbl9zZWFyY2h7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MTZweH0uYXJjaGl2ZSAuY2xlYW5fc2VhcmNoIC5jbG9zZS1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjNweDtkaXNwbGF5OmlubGluZS1ibG9ja30uYXJjaGl2ZSAuY2xlYW5fc2VhcmNoIC5jbG9zZS1pY29uIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtbGlzdHtwYWRkaW5nOjFyZW0gNHJlbTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMtc21hbGwpO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7bWFyZ2luLWJvdHRvbToxMHJlbX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtey0taWNvbi1zaXplOjE3cHg7cGFkZGluZzoycmVtIDB9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbTpub3QoOmxhc3Qtb2YtdHlwZSl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgzNyw0MCw0OSwuMTUpfS5hcmNoaXZlIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdCAuZmFxLWl0ZW0gYXstLWljb24tc2l6ZToxN3B4O2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXh9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhIC5jLWJ0bl9fdGV4dHtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1pY29uLXNpemUpICsgNXB4KX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGEgLmMtYnRuX19pY297bWFyZ2luLXJpZ2h0OjVweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGEgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Zm9udC1zaXplOjEwcHh9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhIC5jLWJ0bl9faWNvOmJlZm9yZXt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JhY2tncm91bmQ6dmFyKC0tcHJpbWFyeS1jb2xvcjIpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3otaW5kZXg6LTF9LmFyY2hpdmUgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhOmhvdmVyIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKX0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGE6aG92ZXIgLmMtYnRuX19pY286YmVmb3Jle2JhY2tncm91bmQ6IzY4Y2RlZH0uYXJjaGl2ZSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGE6aG92ZXIgLmMtYnRuX190ZXh0e3BhZGRpbmctcmlnaHQ6Y2FsYyh2YXIoLS1pY29uLXNpemUpICsgMTBweCk7cGFkZGluZy1sZWZ0OjB9LmFyY2hpdmUgLnJlc3VsdHMtbnVtYmVye2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tYm90dG9tOi43ZW19LmFyY2hpdmUgLnJlc3VsdHMtbnVtYmVyIHNwYW57Zm9udC13ZWlnaHQ6NjAwfS5mYnguZmJNYWluIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ucGFnZS10ZW1wbGF0ZS1mYXF7YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5LWNvbG9yMyl9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1AbWVkaWEobWluLXdpZHRoOjExMTNweCl7LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJve3BhZGRpbmctdG9wOjE4dm1pbn19LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvIC5jLWhlYWRpbmcuLWgxe21hcmdpbi1ib3R0b206LjZlbX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm86YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztib3gtc2hhZG93OjAgMCAzMDBweCAzMDBweCAjMzY1M2E3O29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6MzklO2NvbnRlbnQ6IiI7d2lkdGg6MXB4O2hlaWdodDoxcHg7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4Oi0xO3RvcDo1MCU7bGVmdDowfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVybzphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTt0b3A6NTAlO2xlZnQ6MjAlfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXItZmFxOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICMzNjUzYTc7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzM2NTNhNztvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTt0b3A6NTAlO3JpZ2h0OjIwJX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyLWZhcTphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDMwMHB4IDMwMHB4ICM2OGNkZWQ7Ym94LXNoYWRvdzowIDAgMzAwcHggMzAwcHggIzY4Y2RlZDtvcGFjaXR5Oi4xNTtib3JkZXItcmFkaXVzOjM5JTtjb250ZW50OiIiO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTt0b3A6NTAlO3JpZ2h0OjEwJX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyX190ZXh0e3dpZHRoOjQ4JTt0ZXh0LWFsaWduOmxlZnR9fS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXJfX21lZGlhe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8gLmwtYmFubmVyX19tZWRpYXttYXJnaW4tdG9wOjVyZW19fUBtZWRpYShtaW4td2lkdGg6NzY4cHgpey5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVybyAubC1iYW5uZXJfX21lZGlhe3dpZHRoOjQ4JX19LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvIC5sLWJhbm5lcl9fbWVkaWEgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXRleHR7bWFyZ2luLWJvdHRvbTo0cmVtfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVyby1zZWFyY2gtYm94e21heC13aWR0aDo1MTZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxke3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtib3JkZXI6MnB4IHNvbGlkICNkN2RhZTI7YmFja2dyb3VuZDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS42O2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKTtwYWRkaW5nOjE1cHggNTBweCAxNXB4IDI4cHh9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXNlYXJjaC1ib3ggLnNlYXJjaC1maWVsZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXNlYXJjaC1ib3ggLnNlYXJjaC1maWVsZDotbW96LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxkOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLWZpZWxkOi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXNlYXJjaC1ib3ggLnNlYXJjaC1maWVsZDpmb2N1c3tib3JkZXI6MnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IyKX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuc2VhcmNoLXN1Ym1pdHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo2cHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MG5hSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY25JSGRwWkhSb1BTY3lOU2NnYUdWcFoyaDBQU2N5TlNjZ2RtbGxkMEp2ZUQwbk1DQXdJREkxSURJMUp5Qm1hV3hzUFNkdWIyNWxKejQ4Y0dGMGFDQnBaRDBuVm1WamRHOXlKeUJrUFNkTk1qTXVOelk1TkNBeU1pNDNOekZNTVRjdU9ERTVOQ0F4Tmk0MU9ESTNRekU1TGpNME9UTWdNVFF1TnpZME1TQXlNQzR4T0RjMUlERXlMalEzTlRrZ01qQXVNVGczTlNBeE1DNHdPVE0zUXpJd0xqRTROelVnTkM0MU1qZ3hOQ0F4TlM0Mk5Ua3pJREFnTVRBdU1Ea3pOeUF3UXpRdU5USTRNVFFnTUNBd0lEUXVOVEk0TVRRZ01DQXhNQzR3T1RNM1F6QWdNVFV1TmpVNU15QTBMalV5T0RFMElESXdMakU0TnpVZ01UQXVNRGt6TnlBeU1DNHhPRGMxUXpFeUxqRTRNekVnTWpBdU1UZzNOU0F4TkM0eE56UXlJREU1TGpVMU56TWdNVFV1T0RjMk5pQXhPQzR6TmpGTU1qRXVPRGN4T0NBeU5DNDFPVFl6UXpJeUxqRXlNalFnTWpRdU9EVTJOU0F5TWk0ME5UazFJREkxSURJeUxqZ3lNRFlnTWpWRE1qTXVNVFl5TlNBeU5TQXlNeTQwT0RZNElESTBMamcyT1RjZ01qTXVOek16SURJMExqWXpNamRETWpRdU1qVTJNU0F5TkM0eE1qa3pJREkwTGpJM01qZ2dNak11TWprME5pQXlNeTQzTmprMElESXlMamMzTVZwTk1UQXVNRGt6TnlBeUxqWXpNekUxUXpFMExqSXdOellnTWk0Mk16TXhOU0F4Tnk0MU5UUXpJRFV1T1RjNU9EZ2dNVGN1TlRVME15QXhNQzR3T1RNM1F6RTNMalUxTkRNZ01UUXVNakEzTmlBeE5DNHlNRGMySURFM0xqVTFORE1nTVRBdU1Ea3pOeUF4Tnk0MU5UUXpRelV1T1RjNU9EZ2dNVGN1TlRVME15QXlMall6TXpFMUlERTBMakl3TnpZZ01pNDJNek14TlNBeE1DNHdPVE0zUXpJdU5qTXpNVFVnTlM0NU56azRPQ0ExTGprM09UZzRJREl1TmpNek1UVWdNVEF1TURrek55QXlMall6TXpFMVdpY2dabWxzYkQwbkl6TTJOVE5CTnljdlBqd3ZjM1puUGc9PSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtib3JkZXI6bm9uZTtvdXRsaW5lOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tc2VhcmNoLWJveCAuZmFxLWNhdGVnb3JpZXN7ei1pbmRleDoxfS5wYWdlLXRlbXBsYXRlLWZhcSBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLnBhZ2UtdGVtcGxhdGUtZmFxIGlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwucGFnZS10ZW1wbGF0ZS1mYXEgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwucGFnZS10ZW1wbGF0ZS1mYXEgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnBhZ2UtdGVtcGxhdGUtZmFxIC5jbGVhbl9zZWFyY2h7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MTZweH0ucGFnZS10ZW1wbGF0ZS1mYXEgLmNsZWFuX3NlYXJjaCAuY2xvc2UtaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21hcmdpbi1yaWdodDozcHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnBhZ2UtdGVtcGxhdGUtZmFxIC5jbGVhbl9zZWFyY2ggLmNsb3NlLWljb24gc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdCAuZmFxLWxpc3R7cGFkZGluZzoxcmVtIDRyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1ib3JkZXItcmFkaXVzLXNtYWxsKTtiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtey0taWNvbi1zaXplOjE3cHh9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdCAuZmFxLWl0ZW06bm90KDpsYXN0LW9mLXR5cGUpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMzcsNDAsNDksLjE1KX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhe2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpO3BhZGRpbmc6MnJlbSAwfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGEgLmMtYnRuX19pY297bWFyZ2luLXJpZ2h0OjVweDtmb250LXNpemU6MTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGEgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdCAuZmFxLWl0ZW0gYSAuYy1idG5fX2ljbzpiZWZvcmV7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnktY29sb3IyKTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt6LWluZGV4Oi0xfS5wYWdlLXRlbXBsYXRlLWZhcSAuZmFxLWFyY2hpdmUtaGVyby1yZXN1bHQgLmZhcS1pdGVtIGEgLmMtYnRuX190ZXh0e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6Y2FsYyh2YXIoLS1pY29uLXNpemUpICsgNXB4KX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhOmhvdmVyIC5jLWJ0bl9faWNvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKGNhbGMoMTAwJSAtIHZhcigtLWljb24tc2l6ZSkpKX0ucGFnZS10ZW1wbGF0ZS1mYXEgLmZhcS1hcmNoaXZlLWhlcm8tcmVzdWx0IC5mYXEtaXRlbSBhOmhvdmVyIC5jLWJ0bl9faWNvOmJlZm9yZXtiYWNrZ3JvdW5kOiM2OGNkZWR9LnBhZ2UtdGVtcGxhdGUtZmFxIC5mYXEtYXJjaGl2ZS1oZXJvLXJlc3VsdCAuZmFxLWl0ZW0gYTpob3ZlciAuYy1idG5fX3RleHR7cGFkZGluZy1yaWdodDpjYWxjKHZhcigtLWljb24tc2l6ZSkgKyAxMHB4KTtwYWRkaW5nLWxlZnQ6MH0ucGFnZS10ZW1wbGF0ZS1mYXEgLnJlc3VsdHMtbnVtYmVye2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW4tYm90dG9tOi43ZW19LnBhZ2UtdGVtcGxhdGUtZmFxIC5yZXN1bHRzLW51bWJlciBzcGFue2ZvbnQtd2VpZ2h0OjYwMH1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRpbmd7ZnJvbXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgcm90YXRpbmd7ZnJvbXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5sLWJhbm5lcnt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctdG9wOnZhcigtLWJhbm5lci10b3AtcGFkZGluZywwKTtwYWRkaW5nLWJvdHRvbTp2YXIoLS1iYW5uZXItYm90LXBhZGRpbmcsMCk7ei1pbmRleDoyfUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5sLWJhbm5lcnt0ZXh0LWFsaWduOmNlbnRlcn19LmwtYmFubmVyX19tZWRpYXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5sLWJhbm5lcl9fbWVkaWF7LXdlYmtpdC1ib3gtZmxleDoxOy1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG99fS5sLWJhbm5lcl9fbWVkaWEgLmMtaW1hZ2V7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubS1iYW5uZXJ7LS1iYW5uZXItaGVpZ2h0LS1zbWFsbDozMDBweDstLWJhbm5lci1oZWlnaHQtLW1lZGl1bTo1MDBweDstLWJhbm5lci1oZWlnaHQtLWJsb2c6NDAwcHg7LS1iYW5uZXItaGVpZ2h0LS1mdWxsOjEwMHZoOy0tYmFubmVyLXRvcC1wYWRkaW5nOjV2bWluOy0tYmFubmVyLWJvdC1wYWRkaW5nOjV2bWluOy0tb3ZlcmxheS1vcGFjaXR5Oi45Oy0tb3ZlcmxheS1jb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSl9Lm0tYmFubmVyLmJhbm5lci1hYm91dHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tLWJhbm5lci5iYW5uZXItYWJvdXQgLmwtYmFubmVyey0tY29sdW1ucy1yYXRpbzoxMDAlOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufUBtZWRpYShtaW4td2lkdGg6MTExM3B4KXsubS1iYW5uZXIuYmFubmVyLWFib3V0IC5sLWJhbm5lcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLXRvcDoxMnZofX0ubS1iYW5uZXIuYmFubmVyLWFib3V0IC5jLWhlYWRpbmd7bWFyZ2luLWJvdHRvbTowfS5tLWJhbm5lci5iYW5uZXItYWJvdXQgLmJnLWltZyBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uYmFubmVyLXNtYWxse3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO3BhZGRpbmctdG9wOjI1dmh9LmJhbm5lci1zbWFsbDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMjFkZWcscmdiYSgwLDAsMCwuNzUpIDAscmdiYSgwLDAsMCwwKSAxMDAlKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7Y29udGVudDoiIjt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX1AbWVkaWEobWluLXdpZHRoOjc2OHB4KXsuYmFubmVyLXNtYWxsLmd0LWRlZmF1bHR7cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1kZWZhdWx0LXRvcC1nYXApICogMi44NSl9LmJhbm5lci1zbWFsbC5nYi1kZWZhdWx0e3BhZGRpbmctYm90dG9tOjB9fUBtZWRpYShtYXgtd2lkdGg6NzY3cHgpey5iYW5uZXItc21hbGx7cGFkZGluZy1ib3R0b206MH19LmJhbm5lci1zbWFsbCAuYmFja2dyb3VuZC1pbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MH0uYmFubmVyLXNtYWxsIC5iYWNrZ3JvdW5kLWltZyBpbWd7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmJhbm5lci1zbWFsbCAudGV4dHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LmJhbm5lci1zbWFsbCAuYy1oZWFkaW5nX190aXRsZXtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uYmFubmVyLXNtYWxsIHB7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9LmJhbm5lci1zbWFsbF9fY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXBhY2s6ZGlzdHJpYnV0ZTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kOy13ZWJraXQtYm94LWFsaWduOmVuZDstbXMtZmxleC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9QG1lZGlhKG1heC13aWR0aDo3NjdweCl7LmJhbm5lci1zbWFsbF9fY29udGVudHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn19QG1lZGlhKG1pbi13aWR0aDo3NjhweCl7LmJhbm5lci1zbWFsbF9fZGVzY3t3aWR0aDo1MCU7cGFkZGluZzowIDRyZW0gMi41cmVtIDhyZW19fS5iYW5uZXItc21hbGwgLmxvY2F0aW9uLWNhcmR7Ym9yZGVyLXJhZGl1czoyMHB4IDIwcHggMCAwO2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7cGFkZGluZzo0LjRyZW07cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpfS5iYW5uZXItc21hbGwgLmNvbXBhbnktbmFtZXtmb250LXdlaWdodDo2MDB9LmJhbm5lci1zbWFsbCAucGhvbmUtbnVtYmVye2ZvbnQtc2l6ZToxLjZyZW19LmJhbm5lci1zbWFsbCAucGhvbmUtbnVtYmVyIGF7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMil9LmJhbm5lci1zbWFsbCAuZW1haWwtYWRkcmVzc3tmb250LXNpemU6MS42cmVtfS5iYW5uZXItc21hbGwgLmVtYWlsLWFkZHJlc3MgYXtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMil9LmJhbm5lci1zbWFsbCAubG9jYXRpb24tY3Rhe21hcmdpbi10b3A6MnJlbX0uLWgxLC5pcy13eXNpd3lnIGgxey0taC1jbGFtcC1mb3JtdWxhOjMuNTR2dztsaW5lLWhlaWdodDp2YXIoLS1oMS1saW5lLWhlaWdodCwxKTtmb250LXdlaWdodDp2YXIoLS1oMS1mb250LXdlaWdodCw2MDApO2ZvbnQtZmFtaWx5OnZhcigtLWgxLWZvbnQpO21hcmdpbi1ib3R0b206dmFyKC0taDEtbWFyZ2luLWJvdHRvbSwuNWVtKTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1oMS10ZXh0LXRyYW5zZm9ybSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0taDEtbGV0dGVyLXNwYWNpbmcsMCk7Zm9udC1zaXplOmNsYW1wKHZhcigtLWgxLWZvbnQtc2l6ZS1tb2JpbGUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0taDEtZm9udC1zaXplKSk7Y29sb3I6dmFyKC0tdGl0bGVzLWNvbG9yKX0uLWgxIC5jb2xvcnMtaW52ZXJ0ZWQsLmlzLXd5c2l3eWcgaDEgLmNvbG9ycy1pbnZlcnRlZHtjb2xvcjp2YXIoLS10aXRsZXMtY29sb3ItYWx0KX0uLWgyLC5pcy13eXNpd3lnIGgyey0taC1jbGFtcC1mb3JtdWxhOjIuNjB2dztsaW5lLWhlaWdodDp2YXIoLS1oMi1saW5lLWhlaWdodCwxKTtmb250LXdlaWdodDp2YXIoLS1oMi1mb250LXdlaWdodCw2MDApO2ZvbnQtZmFtaWx5OnZhcigtLWgyLWZvbnQpO3RleHQtdHJhbnNmb3JtOnZhcigtLWgyLXRleHQtdHJhbnNmb3JtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1oMi1sZXR0ZXItc3BhY2luZywwKTtmb250LXNpemU6Y2xhbXAodmFyKC0taDItZm9udC1zaXplLW1vYmlsZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1oMi1mb250LXNpemUpKTttYXJnaW4tYm90dG9tOnZhcigtLWgyLW1hcmdpbi1ib3R0b20sLjVlbSl9Li1oMywuaXMtd3lzaXd5ZyBoM3stLWgtY2xhbXAtZm9ybXVsOjEuNjZ2dztsaW5lLWhlaWdodDp2YXIoLS1oMy1saW5lLWhlaWdodCwxKTtmb250LXdlaWdodDp2YXIoLS1oMy1mb250LXdlaWdodCw2MDApO2ZvbnQtZmFtaWx5OnZhcigtLWgzLWZvbnQpO3RleHQtdHJhbnNmb3JtOnZhcigtLWgzLXRleHQtdHJhbnNmb3JtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1oMy1sZXR0ZXItc3BhY2luZywwKTtmb250LXNpemU6Y2xhbXAodmFyKC0taDMtZm9udC1zaXplLW1vYmlsZSksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1oMy1mb250LXNpemUpKTttYXJnaW4tYm90dG9tOnZhcigtLWgzLW1hcmdpbi1ib3R0b20sLjVlbSl9Li1oNCwuaXMtd3lzaXd5ZyBoNHstLWgtY2xhbXAtZm9ybXVsYToxLjE0dnc7bGluZS1oZWlnaHQ6dmFyKC0taDQtbGluZS1oZWlnaHQsMSk7Zm9udC13ZWlnaHQ6dmFyKC0taDQtZm9udC13ZWlnaHQsNjAwKTtmb250LWZhbWlseTp2YXIoLS1oNC1mb250KTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1oNC10ZXh0LXRyYW5zZm9ybSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0taDQtbGV0dGVyLXNwYWNpbmcsMCk7Zm9udC1zaXplOmNsYW1wKHZhcigtLWg0LWZvbnQtc2l6ZS1tb2JpbGUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0taDQtZm9udC1zaXplKSk7bWFyZ2luLWJvdHRvbTp2YXIoLS1oNC1tYXJnaW4tYm90dG9tLC41ZW0pfS5jLWhlYWRpbmdfX3RpdGxle3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OmluaGVyaXQ7dGV4dC10cmFuc2Zvcm06aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3otaW5kZXg6MTtjb2xvcjp2YXIoLS10aXRsZXMtY29sb3IpfS5jb2xvcnMtaW52ZXJ0ZWQgLmMtaGVhZGluZ19fdGl0bGV7Y29sb3I6dmFyKC0tdGl0bGVzLWNvbG9yLWFsdCl9LmMtaGVhZGluZ19fdGl0bGUgc3BhbntiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCMzNjUzYTcsIzY4Y2RlZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0udGV4dC1jZW50ZXIgLmMtaGVhZGluZ19fdGl0bGV7bWFyZ2luOjAgYXV0b30uYy1oZWFkaW5nX19wcmV7Y29sb3I6dmFyKC0tcHJldGl0bGUtY29sb3IsdmFyKC0tcHJpbWFyeS1jb2xvcjIpKTtsaW5lLWhlaWdodDp2YXIoLS1wcmV0aXRsZS1saW5lLWhlaWdodCwxLjQpO2xldHRlci1zcGFjaW5nOnZhcigtLXByZXRpdGxlLWxldHRlci1zcGFjaW5nLDApO21hcmdpbjp2YXIoLS1wcmV0aXRsZS1tYXJnaW4tYm90dG9tLC41ZW0pIDA7Zm9udC1mYW1pbHk6dmFyKC0tcHJldGl0bGUtZm9udCk7Zm9udC13ZWlnaHQ6dmFyKC0tcHJldGl0bGUtZm9udC13ZWlnaHQsNTAwKTt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1wcmV0aXRsZS10ZXh0LXRyYW5zZm9ybSk7Zm9udC1zaXplOmNsYW1wKHZhcigtLXByZXRpdGxlLWZvbnQtc2l6ZS1tb2JpbGUsMThweCksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1wcmV0aXRsZS1mb250LXNpemUsMi40cmVtKSl9LmNvbG9ycy1pbnZlcnRlZCAuYy1oZWFkaW5nX19wcmUsLnN0eWxlLWRhcmsgLmMtaGVhZGluZ19fcHJle2NvbG9yOnZhcigtLXByZXRpdGxlLWNvbG9yLWFsdCl9LmMtaGVhZGluZ19fc3Vie2NvbG9yOnZhcigtLXN1YnRpdGxlLWNvbG9yLHZhcigtLXByaW1hcnktY29sb3IyKSk7bGluZS1oZWlnaHQ6dmFyKC0tc3VidGl0bGUtbGluZS1oZWlnaHQsMS40KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1zdWJ0aXRsZS1sZXR0ZXItc3BhY2luZywwKTttYXJnaW46dmFyKC0tc3VidGl0bGUtbWFyZ2luLWJvdHRvbSwuNWVtKSAwO2ZvbnQtZmFtaWx5OnZhcigtLXN1YnRpdGxlLWZvbnQpO2ZvbnQtd2VpZ2h0OnZhcigtLXN1YnRpdGxlLWZvbnQtd2VpZ2h0LDUwMCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tc3VidGl0bGUtdGV4dC10cmFuc2Zvcm0pO2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1zdWJ0aXRsZS1mb250LXNpemUtbW9iaWxlLDE4cHgpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tc3VidGl0bGUtZm9udC1zaXplLDIuNHJlbSkpfS5jb2xvcnMtaW52ZXJ0ZWQgLmMtaGVhZGluZ19fc3ViLC5zdHlsZS1kYXJrIC5jLWhlYWRpbmdfX3N1Yntjb2xvcjp2YXIoLS1zdWJ0aXRsZS1jb2xvci1hbHQpfS5jLWhlYWRpbmdfX3RleHR7Zm9udC1zaXplOnZhcigtLWJhc2UtdGV4dC1zaXplKX0udGV4dC1jZW50ZXIgLmMtaGVhZGluZ3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3RleHQtYWxpZ246Y2VudGVyfS5sLWhlYWRpbmctdjJ7LS1oMi1sZXR0ZXItc3BhY2luZzouMWVtOy0taDItZm9udDp2YXIoLS1mb250LWZhbWlseS1wcmltYXJ5KTstLWgyLWZvbnQtd2VpZ2h0OjUwMDstLWgyLXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTstLXByZXRpdGxlLWNvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjIpOy0tcHJldGl0bGUtZm9udC1zaXplOjJyZW07LS1wcmV0aXRsZS1sZXR0ZXItc3BhY2luZzowOy0tc3VidGl0bGUtY29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjIpOy0tc3VidGl0bGUtZm9udC1zaXplOjEuOHJlbTstLXN1YnRpdGxlLWxldHRlci1zcGFjaW5nOjA7LS1oMi1mb250LXNpemU6Mi44cmVtfS5sLWhlYWRpbmctdjIgLmMtaGVhZGluZ19fdGl0bGV7Zm9udC1zaXplOjIuOHJlbX0uYnRuLC5jLWJ0biwuZ2Zvcm0tYnV0dG9uLC5nZm9ybV9idXR0b24sLndwY2Y3LXN1Ym1pdHstLWJ0bi1pY28tY29sb3I6Y3VycmVudENvbG9yOy0taWNvbi1zaGlmdDoxMHB4O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlcjpub25lO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksYmFja2dyb3VuZCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpib3JkZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxiYWNrZ3JvdW5kIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGJvcmRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGJhY2tncm91bmQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGJvcmRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGJhY2tncm91bmQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pfS5jLWJ0biwuZ2Zvcm0tYnV0dG9uLC5nZm9ybV9idXR0b24sLndwY2Y3LXN1Ym1pdHtmb250LXNpemU6dmFyKC0tYnRuLWZvbnQtc2l6ZSwxLjhyZW0pO2ZvbnQtZmFtaWx5OnZhcigtLWJ0bi1mb250LWZhbWlseSk7dGV4dC10cmFuc2Zvcm06dmFyKC0tYnRuLXRleHQtdHJhbnNmb3JtLG5vbmUpO2ZvbnQtd2VpZ2h0OnZhcigtLWJ0bi1mb250LXdlaWdodCw0MDApOy13ZWJraXQtYm94LXNoYWRvdzp2YXIoLS1idG4tYm94LXNoYWRvdyxub25lKTtib3gtc2hhZG93OnZhcigtLWJ0bi1ib3gtc2hhZG93LG5vbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tYnRuLWJvcmRlci1yYWRpdXMsMCk7bWFyZ2luOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOnZhcigtLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b20sMTBweCkgdmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwyMHB4KTstd2Via2l0LXRyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLGNvbG9yIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7bGluZS1oZWlnaHQ6MX0uYy1idG4+c3BhbiwuZ2Zvcm0tYnV0dG9uPnNwYW4sLmdmb3JtX2J1dHRvbj5zcGFuLC53cGNmNy1zdWJtaXQ+c3Bhbnstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmMtYnRuLi1wcmltYXJ5LC5jLWJ0bi4tc2Vjb25kYXJ5LC5nZm9ybS1idXR0b24sLmdmb3JtX2J1dHRvbiwud3BjZjctc3VibWl0ey0taWNvbi1zaXplOjM1cHg7LS1pY29uLWdhcDouNzVyZW07cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDMwcHgpfS5jLWJ0bi4tcHJpbWFyeSAuYy1idG5fX2ljbywuYy1idG4uLXNlY29uZGFyeSAuYy1idG5fX2ljbywuZ2Zvcm0tYnV0dG9uIC5jLWJ0bl9faWNvLC5nZm9ybV9idXR0b24gLmMtYnRuX19pY28sLndwY2Y3LXN1Ym1pdCAuYy1idG5fX2ljb3twYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwyMHB4KS8yKTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDp2YXIoLS1pY29uLWdhcCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDEwMCUgLSB2YXIoLS1pY29uLXNpemUpKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSArIDEwcHgpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDEwMCUgLSB2YXIoLS1pY29uLXNpemUpICsgMTBweCkpO21heC13aWR0aDo0MHB4fUBtZWRpYShob3Zlcjpob3Zlcil7LmMtYnRuLi1wcmltYXJ5OmhvdmVyLC5jLWJ0bi4tc2Vjb25kYXJ5OmhvdmVyLC5nZm9ybS1idXR0b246aG92ZXIsLmdmb3JtX2J1dHRvbjpob3Zlciwud3BjZjctc3VibWl0OmhvdmVye3BhZGRpbmctbGVmdDp2YXIoLS1idG4tcGFkZGluZy1sZWZ0LXJpZ2h0KTtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDMwcHgpfS5jLWJ0bi4tcHJpbWFyeTpob3ZlciAuYy1idG5fX2ljbywuYy1idG4uLXNlY29uZGFyeTpob3ZlciAuYy1idG5fX2ljbywuZ2Zvcm0tYnV0dG9uOmhvdmVyIC5jLWJ0bl9faWNvLC5nZm9ybV9idXR0b246aG92ZXIgLmMtYnRuX19pY28sLndwY2Y3LXN1Ym1pdDpob3ZlciAuYy1idG5fX2ljb3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3BhZGRpbmctbGVmdDpjYWxjKHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQsMjBweCkvMik7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpO3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MDttYXJnaW4tbGVmdDphdXRvfX0uYy1idG4uLXByaW1hcnksLmdmb3JtLWJ1dHRvbiwuZ2Zvcm1fYnV0dG9uLC53cGNmNy1zdWJtaXR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tcHJpbWFyeS1iZyk7Y29sb3I6dmFyKC0tYnRuLXByaW1hcnktY29sb3IpO2JvcmRlcjp2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXIpIHNvbGlkIHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvcik7LXdlYmtpdC1ib3gtc2hhZG93OjAgMTBweCAyMHB4IDAgdHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzowIDEwcHggMjBweCAwIHRyYW5zcGFyZW50fUBtZWRpYShob3Zlcjpob3Zlcil7LmMtYnRuLi1wcmltYXJ5OmhvdmVyLC5nZm9ybS1idXR0b246aG92ZXIsLmdmb3JtX2J1dHRvbjpob3Zlciwud3BjZjctc3VibWl0OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLXByaW1hcnktYmctaG92ZXIpO2NvbG9yOnZhcigtLWJ0bi1wcmltYXJ5LWNvbG9yLWhvdmVyKTtib3JkZXItY29sb3I6dmFyKC0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yLWhvdmVyKTstd2Via2l0LWJveC1zaGFkb3c6MCAxMHB4IDIwcHggMCByZ2JhKDI1NSw4Myw0NSwuMik7Ym94LXNoYWRvdzowIDEwcHggMjBweCAwIHJnYmEoMjU1LDgzLDQ1LC4yKX0uYy1idG4uLXByaW1hcnk6aG92ZXIgLmMtYnRuX19pY28gc3ZnLC5nZm9ybS1idXR0b246aG92ZXIgLmMtYnRuX19pY28gc3ZnLC5nZm9ybV9idXR0b246aG92ZXIgLmMtYnRuX19pY28gc3ZnLC53cGNmNy1zdWJtaXQ6aG92ZXIgLmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9fS4tc2Vjb25kYXJ5Lmdmb3JtLWJ1dHRvbiwuLXNlY29uZGFyeS5nZm9ybV9idXR0b24sLi1zZWNvbmRhcnkud3BjZjctc3VibWl0LC5jLWJ0bi4tc2Vjb25kYXJ5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLXNlY29uZGFyeS1iZyk7Y29sb3I6dmFyKC0tYnRuLXNlY29uZGFyeS1jb2xvcik7Ym9yZGVyOnZhcigtLWJ0bi1zZWNvbmRhcnktYm9yZGVyKSBzb2xpZCB2YXIoLS1idG4tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcil9QG1lZGlhKGhvdmVyOmhvdmVyKXsuLXNlY29uZGFyeS5nZm9ybS1idXR0b246aG92ZXIsLi1zZWNvbmRhcnkuZ2Zvcm1fYnV0dG9uOmhvdmVyLC4tc2Vjb25kYXJ5LndwY2Y3LXN1Ym1pdDpob3ZlciwuYy1idG4uLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1zZWNvbmRhcnktYmctaG92ZXIpO2NvbG9yOnZhcigtLWJ0bi1zZWNvbmRhcnktY29sb3ItaG92ZXIpO2JvcmRlci1jb2xvcjp2YXIoLS1idG4tc2Vjb25kYXJ5LWJvcmRlci1jb2xvci1ob3Zlcil9fS4taW52ZXJ0ZWQuZ2Zvcm0tYnV0dG9uLC4taW52ZXJ0ZWQuZ2Zvcm1fYnV0dG9uLC4taW52ZXJ0ZWQud3BjZjctc3VibWl0LC5jLWJ0bi4taW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tcHJpbWFyeS1iZy1ob3Zlcik7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9Li1pbnZlcnRlZC5nZm9ybS1idXR0b24gLmMtYnRuX19pY28gc3ZnLC4taW52ZXJ0ZWQuZ2Zvcm1fYnV0dG9uIC5jLWJ0bl9faWNvIHN2ZywuLWludmVydGVkLndwY2Y3LXN1Ym1pdCAuYy1idG5fX2ljbyBzdmcsLmMtYnRuLi1pbnZlcnRlZCAuYy1idG5fX2ljbyBzdmd7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7ZmlsbDp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0uLWxpbmsuZ2Zvcm0tYnV0dG9uLC4tbGluay5nZm9ybV9idXR0b24sLi1saW5rLndwY2Y3LXN1Ym1pdCwuYy1idG4uLWxpbmt7Y29sb3I6dmFyKC0tYnRuLWxpbmstY29sb3IpOy13ZWJraXQtYm94LXNoYWRvdzpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50O3BhZGRpbmc6MDtmb250LXNpemU6MS40cmVtfS4tbGluay5nZm9ybS1idXR0b24gLmMtYnRuX190eHQsLi1saW5rLmdmb3JtX2J1dHRvbiAuYy1idG5fX3R4dCwuLWxpbmsud3BjZjctc3VibWl0IC5jLWJ0bl9fdHh0LC5jLWJ0bi4tbGluayAuYy1idG5fX3R4dHtwYWRkaW5nLXJpZ2h0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuNXM7dHJhbnNpdGlvbjphbGwgLjVzfS4tbGluay5nZm9ybS1idXR0b24gLmMtYnRuX19pY28sLi1saW5rLmdmb3JtX2J1dHRvbiAuYy1idG5fX2ljbywuLWxpbmsud3BjZjctc3VibWl0IC5jLWJ0bl9faWNvLC5jLWJ0bi4tbGluayAuYy1idG5fX2ljb3tjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKTstd2Via2l0LXRyYW5zaXRpb246YWxsIC41czt0cmFuc2l0aW9uOmFsbCAuNXM7bWFyZ2luOjA7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWChjYWxjKDEwMCUgLSB2YXIoLS1pY29uLXNpemUpKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoY2FsYygxMDAlIC0gdmFyKC0taWNvbi1zaXplKSkpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Li1saW5rLmdmb3JtLWJ1dHRvbiAuYy1idG5fX2ljbyBzdmcsLi1saW5rLmdmb3JtX2J1dHRvbiAuYy1idG5fX2ljbyBzdmcsLi1saW5rLndwY2Y3LXN1Ym1pdCAuYy1idG5fX2ljbyBzdmcsLmMtYnRuLi1saW5rIC5jLWJ0bl9faWNvIHN2Z3tjb2xvcjp2YXIoLS1saW5rLWljb24tY29sb3IsY3VycmVudENvbG9yKTttYXJnaW46MDt3aWR0aDp2YXIoLS1pY29uLXNpemUpO2hlaWdodDp2YXIoLS1pY29uLXNpemUpO21heC1oZWlnaHQ6dmFyKC0taWNvbi1zaXplKX0uLWxpbmsuZ2Zvcm0tYnV0dG9uIC5jLWJ0bl9faWNvIGltZywuLWxpbmsuZ2Zvcm0tYnV0dG9uIC5jLWJ0bl9faWNvIHN2ZywuLWxpbmsuZ2Zvcm1fYnV0dG9uIC5jLWJ0bl9faWNvIGltZywuLWxpbmsuZ2Zvcm1fYnV0dG9uIC5jLWJ0bl9faWNvIHN2ZywuLWxpbmsud3BjZjctc3VibWl0IC5jLWJ0bl9faWNvIGltZywuLWxpbmsud3BjZjctc3VibWl0IC5jLWJ0bl9faWNvIHN2ZywuYy1idG4uLWxpbmsgLmMtYnRuX19pY28gaW1nLC5jLWJ0bi4tbGluayAuYy1idG5fX2ljbyBzdmd7bWF4LWhlaWdodDoxZW19QG1lZGlhKGhvdmVyOmhvdmVyKXsuLWxpbmsuZ2Zvcm0tYnV0dG9uOmhvdmVyLC4tbGluay5nZm9ybV9idXR0b246aG92ZXIsLi1saW5rLndwY2Y3LXN1Ym1pdDpob3ZlciwuYy1idG4uLWxpbms6aG92ZXJ7Y29sb3I6dmFyKC0tYnRuLWxpbmstY29sb3ItaG92ZXIpfS4tbGluay5nZm9ybS1idXR0b246aG92ZXIgLmMtYnRuX19pY28sLi1saW5rLmdmb3JtX2J1dHRvbjpob3ZlciAuYy1idG5fX2ljbywuLWxpbmsud3BjZjctc3VibWl0OmhvdmVyIC5jLWJ0bl9faWNvLC5jLWJ0bi4tbGluazpob3ZlciAuYy1idG5fX2ljb3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS4tbGluay5nZm9ybS1idXR0b246aG92ZXIgLmMtYnRuX190eHQsLi1saW5rLmdmb3JtX2J1dHRvbjpob3ZlciAuYy1idG5fX3R4dCwuLWxpbmsud3BjZjctc3VibWl0OmhvdmVyIC5jLWJ0bl9fdHh0LC5jLWJ0bi4tbGluazpob3ZlciAuYy1idG5fX3R4dHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OmNhbGModmFyKC0taWNvbi1zaXplKSArIDVweCl9fS4tbGluay5pY29uLWxlZnQuZ2Zvcm0tYnV0dG9uIC5jLWJ0bl9faWNvLC4tbGluay5pY29uLWxlZnQuZ2Zvcm1fYnV0dG9uIC5jLWJ0bl9faWNvLC4tbGluay5pY29uLWxlZnQud3BjZjctc3VibWl0IC5jLWJ0bl9faWNvLC5jLWJ0bi4tbGluay5pY29uLWxlZnQgLmMtYnRuX19pY297bWFyZ2luLXJpZ2h0OjEwcHg7bWFyZ2luLWxlZnQ6MH0uLXNtYWxsLmdmb3JtLWJ1dHRvbiwuLXNtYWxsLmdmb3JtX2J1dHRvbiwuLXNtYWxsLndwY2Y3LXN1Ym1pdCwuYy1idG4uLXNtYWxsey0tYnRuLXBhZGRpbmctbGVmdC1yaWdodDoyMHB4Oy0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbToxMHB4O2ZvbnQtc2l6ZTouOGVtfS4tc21hbGwuZ2Zvcm0tYnV0dG9uIC5pY29uLC4tc21hbGwuZ2Zvcm1fYnV0dG9uIC5pY29uLC4tc21hbGwud3BjZjctc3VibWl0IC5pY29uLC5jLWJ0bi4tc21hbGwgLmljb257bWF4LXdpZHRoOjYwJX0uLWxhcmdlLmdmb3JtLWJ1dHRvbiwuLWxhcmdlLmdmb3JtX2J1dHRvbiwuLWxhcmdlLndwY2Y3LXN1Ym1pdCwuYy1idG4uLWxhcmdle2ZvbnQtc2l6ZToxLjRlbX0uYy1idG5fX2ljb3ttaW4td2lkdGg6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC1maWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxmaWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxmaWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSxvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LWZpbHRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uYy1idG5fX2ljbyBpbWcsLmMtYnRuX19pY28gc3Zne21hcmdpbjphdXRvO21heC1oZWlnaHQ6MS41ZW19LmMtYnRuX19pY28gc3Zne2ZpbGw6dmFyKC0tcHJpbWFyeS1jb2xvcjEpO2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IxKX0uYy1idG5fX2ljbyBpbWd7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LXRyYW5zZm9ybSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbik7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC10cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwtd2Via2l0LWZpbHRlciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksZmlsdGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLC13ZWJraXQtdHJhbnNmb3JtIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksLXdlYmtpdC1maWx0ZXIgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTttYXgtd2lkdGg6MTAwJX0uYy1idG4uaWNvbi1sZWZ0LC5pY29uLWxlZnQuZ2Zvcm0tYnV0dG9uLC5pY29uLWxlZnQuZ2Zvcm1fYnV0dG9uLC5pY29uLWxlZnQud3BjZjctc3VibWl0ey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0uYy1idG4gLmljb24tcmV2ZXJzZWQsLmdmb3JtLWJ1dHRvbiAuaWNvbi1yZXZlcnNlZCwuZ2Zvcm1fYnV0dG9uIC5pY29uLXJldmVyc2VkLC53cGNmNy1zdWJtaXQgLmljb24tcmV2ZXJzZWR7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKC0xKTt0cmFuc2Zvcm06c2NhbGVYKC0xKX0uYy1idG4tYmFyIC5jLWJ0biwuYy1idG4tYmFyIC5nZm9ybS1idXR0b24sLmMtYnRuLWJhciAuZ2Zvcm1fYnV0dG9uLC5jLWJ0bi1iYXIgLndwY2Y3LXN1Ym1pdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmdmb3JtLWJ1dHRvbiwuZ2Zvcm1fYnV0dG9uLC53cGNmNy1zdWJtaXR7Zm9udC1zaXplOnZhcigtLWJ0bi1mb250LXNpemUsMS44cmVtKTtmb250LWZhbWlseTp2YXIoLS1idG4tZm9udC1mYW1pbHkpO3RleHQtdHJhbnNmb3JtOnZhcigtLWJ0bi10ZXh0LXRyYW5zZm9ybSxub25lKTtmb250LXdlaWdodDp2YXIoLS1idG4tZm9udC13ZWlnaHQsNDAwKTstd2Via2l0LWJveC1zaGFkb3c6dmFyKC0tYnRuLWJveC1zaGFkb3csbm9uZSk7Ym94LXNoYWRvdzp2YXIoLS1idG4tYm94LXNoYWRvdyxub25lKTtib3JkZXItcmFkaXVzOnZhcigtLWJ0bi1ib3JkZXItcmFkaXVzLDApO3BhZGRpbmc6dmFyKC0tYnRuLXBhZGRpbmctdG9wLWJvdHRvbSkgdmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO3RyYW5zaXRpb246YWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbil9QG1lZGlhKGhvdmVyOmhvdmVyKXsuZ2Zvcm0tYnV0dG9uOmhvdmVyLC5nZm9ybV9idXR0b246aG92ZXIsLndwY2Y3LXN1Ym1pdDpob3Zlcnstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMnB4IHJnYmEoMCw3LDYzLC4yKTtib3gtc2hhZG93OjAgMnB4IDJweCByZ2JhKDAsNyw2MywuMil9fS5jLWJsb2Nre2JhY2tncm91bmQtY29sb3I6dmFyKC0tYy1ibG9jay1iZyk7LXdlYmtpdC1ib3gtc2hhZG93OnZhcigtLWMtYmxvY2stc2hhZG93KTtib3gtc2hhZG93OnZhcigtLWMtYmxvY2stc2hhZG93KTtib3JkZXItcmFkaXVzOnZhcigtLWMtYmxvY2stcmFkaXVzKX0uYy1ibG9ja19fYm9keXtwYWRkaW5nOnZhcigtLdGBLWJsb2NrLXBhZGRpbmcsMTVweCk7dGV4dC1hbGlnbjp2YXIoLS3RgS1ibG9jay1hbGlnbixsZWZ0KTtmb250LXNpemU6dmFyKC0tYy1ibG9jay10ZXh0LXNpemUpO2NvbG9yOnZhcigtLWMtYmxvY2stY29sb3IpfS5jLWJsb2NrX190aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6dmFyKC0tYy1ibG9jay10aXRsZS1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jLWJsb2NrLXRpdGxlLXdlaWdodCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tYy1ibG9jay10aXRsZS10cmFuc2Zvcm0pO2NvbG9yOnZhcigtLWMtYmxvY2stdGl0bGUtY29sb3IpO21hcmdpbi1ib3R0b206dmFyKC0taDQtbWFyZ2luLWJvdHRvbSwuNWVtKX0uYy1ibG9ja19fdGl0bGUgYXtjb2xvcjppbmhlcml0O2Rpc3BsYXk6YmxvY2t9LmMtYmxvY2tfX3RpdGxlIGE6aG92ZXJ7Y29sb3I6dmFyKC0tYnRuLWxpbmstY29sb3ItaG92ZXIpfS5jLWJsb2NrX19wcmV0aXRsZXttYXJnaW4tYm90dG9tOi41ZW19LmMtYmxvY2tfX3RleHQgc3Ryb25ne2NvbG9yOnZhcigtLXByaW1hcnktY29sb3IyKX0uYy1ibG9ja19fdGV4dCBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jLWJsb2NrX19tZWRpYXthc3BlY3QtcmF0aW86dmFyKC0tYy1ibG9jay1pbWctcmF0aW8sNC8zKTtwb3NpdGlvbjpyZWxhdGl2ZX0uYy1ibG9ja19fYnRue21hcmdpbi10b3A6MWVtfS5jLWJsb2NrIC5jLWltYWdle3dpZHRoOjEwMCV9LnRyYW5zbGF0ZWQtbHRyIC5vZmZlcl9jb3VudGVycyAuY29udGFpbmVyey0tY29udGVudC13aWR0aDp2YXIoLS1kZXNrdG9wLXdpZHRoLWwpfS5vZmZlcl9jb3VudGVyc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQ6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7ei1pbmRleDoxMH0ub2ZmZXJfY291bnRlcnMgLmNvdW50ZXJze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm9mZmVyX2NvdW50ZXJzIC5jb3VudGVyc3std2Via2l0LWJveC1hbGlnbjpzdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctYmxvY2s6NXB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIC4yNWZyIC4yNWZyIC4yNWZyIC43NWZyO2dyaWQtdGVtcGxhdGUtYXJlYXM6ImdyaWRDb3VudGVycyBncmlkQ291bnRlcnMgZ3JpZENvdW50ZXJzIGdyaWRDb3VudGVycyBncmlkRGF0ZXMiICJncmlkVGV4dCBncmlkVGV4dCBncmlkQ29kZSBncmlkQ29kZSBncmlkQ29kZSJ9fS5vZmZlcl9jb3VudGVycyAub2ZmZXItY291bnRlci1pdGVtc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5vZmZlcl9jb3VudGVycyAub2ZmZXItY291bnRlci1pdGVtc3tib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjIpOy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsub2ZmZXJfY291bnRlcnMgLm9mZmVyLWNvdW50ZXItaXRlbXN7Z3JpZC1hcmVhOmdyaWRDb3VudGVyc319Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLWl0ZW17ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLWl0ZW17LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoyOy1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MTstd2Via2l0LWJveC1hbGlnbjpzdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctcmlnaHQ6NXB4O21hcmdpbi1ib3R0b206MTVweH0ub2ZmZXJfY291bnRlcnMgLm9mZmVyLWNvdW50ZXItaXRlbTpudGgtb2YtdHlwZSgyKSAub2ZmZXItY291bnRlci10ZXh0e3BhZGRpbmctbGVmdDoxcmVtfS5vZmZlcl9jb3VudGVycyAub2ZmZXItY291bnRlci1pdGVtOm50aC1vZi10eXBlKDMpIC5vZmZlci1jb3VudGVyLXRleHR7cGFkZGluZy1sZWZ0OjJyZW19Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLWl0ZW06bnRoLW9mLXR5cGUoNCkgLm9mZmVyLWNvdW50ZXItdGV4dHtwYWRkaW5nLWxlZnQ6MnJlbX19Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLWl0ZW06bGFzdC1vZi10eXBlIC5iZWZvcmUtc3ltYm9se2NvbG9yOiM2OGNkZWQ7LS1mb250LXNpemUtbW9iaWxlOjIwcHg7LS1mb250LXNpemU6NTBweDstLWgtY2xhbXAtZm9ybXVsYToyLjYwdnc7Zm9udC1zaXplOmNsYW1wKHZhcigtLWZvbnQtc2l6ZS1tb2JpbGUsMThweCksdmFyKC0taC1jbGFtcC1mb3JtdWxhKSx2YXIoLS1mb250LXNpemUsMi40cmVtKSk7Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0zcHg7bWFyZ2luLXJpZ2h0OjB9Lm9mZmVyX2NvdW50ZXJzIC5jb3VudGVyLWFmdGVyLXN5bWJvbCwub2ZmZXJfY291bnRlcnMgLm51bWJlci1vZmZlci1jb3VudGVyey0tZm9udC1zaXplLW1vYmlsZToyMHB4Oy0tZm9udC1zaXplOjUwcHg7LS1oLWNsYW1wLWZvcm11bGE6Mi42MHZ3O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1mb250LXNpemUtbW9iaWxlLDE4cHgpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tZm9udC1zaXplLDIuNHJlbSkpO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotM3B4O2NvbG9yOiM2OGNkZWR9Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLXRleHR7LS1mb250LXNpemUtbW9iaWxlOjlweDstLWZvbnQtc2l6ZToxNnB4Oy0taC1jbGFtcC1mb3JtdWxhOjAuODN2dztmb250LXNpemU6Y2xhbXAodmFyKC0tZm9udC1zaXplLW1vYmlsZSwxOHB4KSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWZvbnQtc2l6ZSwyLjRyZW0pKTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzotLjMycHg7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvcjEpO21hcmdpbi1pbmxpbmU6NXB4fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsub2ZmZXJfY291bnRlcnMgLm9mZmVyLWNvdW50ZXItdGV4dHttYXJnaW4taW5saW5lOjB9Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLXRleHQgYnJ7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsub2ZmZXJfY291bnRlcnMgLm9mZmVyLWNvdW50ZXItdGV4dHttYXgtd2lkdGg6NzZweDt3b3JkLXdyYXA6YnJlYWstd29yZH19Lm9mZmVyX2NvdW50ZXJzIC5iZWZvcmUtc3ltYm9sey0tZm9udC1zaXplLW1vYmlsZToxNXB4Oy0tZm9udC1zaXplOjMycHg7LS1oLWNsYW1wLWZvcm11bGE6MS42NnZ3O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1mb250LXNpemUtbW9iaWxlLDE4cHgpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tZm9udC1zaXplLDIuNHJlbSkpO21hcmdpbi1yaWdodDo1cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX0ub2ZmZXJfY291bnRlcnMgLmJlZm9yZS1zeW1ib2wgc3BhbnstLWZvbnQtc2l6ZS1tb2JpbGU6MTVweDstLWZvbnQtc2l6ZTozMnB4Oy0taC1jbGFtcC1mb3JtdWxhOjEuNjZ2dztmb250LXNpemU6Y2xhbXAodmFyKC0tZm9udC1zaXplLW1vYmlsZSwxOHB4KSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWZvbnQtc2l6ZSwyLjRyZW0pKTttYXJnaW4tcmlnaHQ6NXB4O2NvbG9yOnZhcigtLXNlY29uZGFyeS1jb2xvcjEpO2ZvbnQtd2VpZ2h0OjQwMH0ub2ZmZXJfY291bnRlcnMgLm9mZmVyLXRleHR7Zm9udC1zaXplOjE1cHg7bWF4LXdpZHRoOjEzOXB4O21hcmdpbjowIDEzcHg7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5vZmZlcl9jb3VudGVycyAub2ZmZXItdGV4dHstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjQ7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozO21hcmdpbjowO21heC13aWR0aDoxNTdweDtmb250LXNpemU6MTBweDtncmlkLWFyZWE6Z3JpZFRleHR9fS5vZmZlcl9jb3VudGVycyAub2ZmZXItdGV4dCBwe21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjF9Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1zdGFydC1kYXRle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59QG1lZGlhKG1heC13aWR0aDoxMTEycHgpey5vZmZlcl9jb3VudGVycyAub2ZmZXItc3RhcnQtZGF0ZXstd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOjM7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyO21hcmdpbi1yaWdodDoxMHB4fX0ub2ZmZXJfY291bnRlcnMgLm9mZmVyLWRhdGUtdGV4dHstLWZvbnQtc2l6ZS1tb2JpbGU6N3B4Oy0tZm9udC1zaXplOjExcHg7LS1oLWNsYW1wLWZvcm11bGE6MC41N3Z3O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1mb250LXNpemUtbW9iaWxlLDE4cHgpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tZm9udC1zaXplLDIuNHJlbSkpO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1wcmltYXJ5LWNvbG9yMSk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xpbmUtaGVpZ2h0OjF9Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1kYXRley0tZm9udC1zaXplLW1vYmlsZToxMHB4Oy0tZm9udC1zaXplOjE2cHg7LS1oLWNsYW1wLWZvcm11bGE6MC44M3Z3O2ZvbnQtc2l6ZTpjbGFtcCh2YXIoLS1mb250LXNpemUtbW9iaWxlLDE4cHgpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0tZm9udC1zaXplLDIuNHJlbSkpO2xpbmUtaGVpZ2h0OjE7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5vZmZlcl9jb3VudGVycyAub2ZmZXItc3RhcnQtZGF0ZXttYXJnaW4tYm90dG9tOjEwcHh9fS5vZmZlcl9jb3VudGVycyAucHJvbW8tdGV4dC12ZXJ0aWNhbHtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo3MDA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDotMTNweDtjb2xvcjp2YXIoLS1zZWNvbmRhcnktY29sb3IxKX1AbWVkaWEobWF4LXdpZHRoOjExMTJweCl7Lm9mZmVyX2NvdW50ZXJzIC5wcm9tby10ZXh0LXZlcnRpY2Fse2ZvbnQtc2l6ZToxMHB4fX0ub2ZmZXJfY291bnRlcnMgLnByb21vLWNvZGUtdGV4dHstLWZvbnQtc2l6ZS1tb2JpbGU6MTRweDstLWZvbnQtc2l6ZToyMHB4Oy0taC1jbGFtcC1mb3JtdWxhOjEuMDR2dztmb250LXNpemU6Y2xhbXAodmFyKC0tZm9udC1zaXplLW1vYmlsZSwxOHB4KSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLWZvbnQtc2l6ZSwyLjRyZW0pKTtmb250LXdlaWdodDo3MDA7cGFkZGluZzo0cHggMTVweDtiYWNrZ3JvdW5kOiNmZjUzMmQ7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6dmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSl9Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1kYXRlc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsub2ZmZXJfY291bnRlcnMgLm9mZmVyLWRhdGVzey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtwYWRkaW5nLXRvcDo3cHg7Z3JpZC1hcmVhOmdyaWREYXRlc319QG1lZGlhKG1pbi13aWR0aDoxMTEzcHgpey5vZmZlcl9jb3VudGVycyAub2ZmZXItZGF0ZXN7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fS5vZmZlcl9jb3VudGVycyAub2ZmZXItZGF0ZXM+ZGl2e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59QG1lZGlhKG1heC13aWR0aDo3NjdweCl7Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1kYXRlcz5kaXZ7bWF4LXdpZHRoOjQzcHg7d29yZC13cmFwOmJyZWFrLXdvcmR9fS5vZmZlcl9jb3VudGVycyAucHJvbW8tY29kZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fUBtZWRpYShtYXgtd2lkdGg6MTExMnB4KXsub2ZmZXJfY291bnRlcnMgLnByb21vLWNvZGV7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDo1Oy1tcy1mbGV4LW9yZGVyOjQ7b3JkZXI6NDtncmlkLWFyZWE6Z3JpZENvZGU7bWFyZ2luLWxlZnQ6YXV0b319Lm9mZmVyX2NvdW50ZXJzIC5vZmZlci1jb3VudGVyLWl0ZW0td3JhcHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5iZy1kZWNvcmF0aW9ue3dpZHRoOjU0OXB4O2hlaWdodDo3NTRweDtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3JpZ2h0OjA7dG9wOjEwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBuYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNuSUhkcFpIUm9QU2MxTkRrbklHaGxhV2RvZEQwbk56VTBKeUIyYVdWM1FtOTRQU2N3SURBZ05UUTVJRGMxTkNjZ1ptbHNiRDBuYm05dVpTYytQSEJoZEdnZ2IzQmhZMmwwZVQwbk1DNHpKeUJtYVd4c0xYSjFiR1U5SjJWMlpXNXZaR1FuSUdOc2FYQXRjblZzWlQwblpYWmxibTlrWkNjZ1pEMG5UVE13Tnk0NU5UUWdOakF1TXpVMVRETXhOQzR5TkRNZ05UUXVNVFUwTkV3ek5ERXVOVFV4SURJM0xqQTFOekZNTXpVMUxqRTROU0F4TXk0MU1qZzFURE0yT0M0NE1Ua2dNRXd6TmpndU9ERTVJREF1TURBd01qUTFPVE0zVERNNE1pNDBPVE1nTVRNdU5UWTRPRXd6T1RZdU1USTNJREkzTGpBNU56Tk1ORFUxTGpZMUlEZzJMakUxT1RsTU5EVTNMall3TVNBNE9DNHdPVFkxUXpRMU5pNDJPRGdnT0RndU1EazJOU0EwTlRVdU56ZzBJRGc0TGpFME1Ea2dORFUwTGpnNU5DQTRPQzR5TWpjM1F6UTBNUzR3TnpNZ09Ea3VOVGMwSURRek1DNHlPVE1nTVRBeExqRXlJRFF6TUM0eU9UTWdNVEUxTGpFMU5FdzBNekF1TURrZ016Z3pMamczTWtnek1EY3VPVFUwVERNd055NHpPRFlnTVRFMUxqRXhNME16TURjdU16UTNJREV3TVM0d05UY2dNamsyTGpVeklEZzVMalV6TVRrZ01qZ3lMamN4SURnNExqSXlNRGhETWpneExqZzBOQ0E0T0M0eE16ZzJJREk0TUM0NU5qVWdPRGd1TURrMk5TQXlPREF1TURjM0lEZzRMakE1TmpWSU1qYzVMams1Tmt3eU9EQXVNRGMzSURnNExqQXhOa3d5T0RFdU9UVXpJRGcyTGpFMU5USk1NekEzTGprMU5DQTJNQzR6TlRWYVRUTTFOaTQxT1RRZ01UUXVPVFE0TWt3ek5qZ3VPREU1SURJdU9ERTNOVEpNTkRJNExqSTVNeUF4TVRVdU1UVTBURFF5T0M0d09USWdNemd4TGpnM01rZ3pNRGt1T1RRNVRETXdPUzR6T0RVZ01URTFMakV3T1ZZeE1UVXVNVEE0UXpNd09TNHpORFlnTVRBd0xqVTFNeUF5T1RndU5UVTRJRGc0TGpVME5qRWdNamcwTGpVeE55QTROaTQwTWpneVRETXdPUzR6TlRnZ05qRXVOemM1TWt3ek1Ea3VNell5SURZeExqYzNORGRNTXpFMUxqWTBOeUExTlM0MU56ZzNURE14TlM0Mk5USWdOVFV1TlRjME1Vd3pOREl1T1RZZ01qZ3VORGMyT0V3ek5UWXVOVGswSURFMExqazBPREphVFRNMk9DNDRNVGtnTWk0NE1UYzFNa3cwTWpndU1qa3pJREV4TlM0eE5USkROREk0TGpJNU5DQXhNREF1TmpFMklEUXpPUzR3TkRrZ09EZ3VOVGc0SURRMU15NHdPVEVnT0RZdU5ETTRORXd6T1RRdU56RTVJREk0TGpVeE4wd3pPREV1TURnMUlERTBMams0T0RWTU16WTRMamd4T1NBeUxqZ3hOelV5V2sweU5qa3VNekkwSURFeU5TNDROakpNTWpZM0xqTTJOQ0F4TWpjdU9EQTJUREkyTXk0ME5DQXhNekV1TjB3eU16QXVOemMxSURFMk5DNHhNVEpNT0RndU1UZzRNaUF6TURVdU5UazRURFl5TGpBNE16a2dNek14TGpVd01VdzJNQzR3TmpnMElETXpNeTQxTURGSU5qSXVPVEEzT0VneE1UWXVPVEUzUXpFek1TNDVOekVnTXpNekxqVXdNU0F4TkRRdU1qSTFJRE0wTlM0Mk1pQXhORFF1TWpJMUlETTJNQzQxT1RoV016Z3hMamsxTVZZek9ETXVPVFV4U0RFME5pNHlNalZJTWpZM0xqTTJORWd5TmprdU16WTBWak00TVM0NU5URldNVEk0TGpZek9WWXhNalV1T0RZeVRESTJPUzQwTURVZ01USTFMamM0TVV3eU5qa3VNek0zSURFeU5TNDRORGhNTWpZNUxqTXlOQ0F4TWpVdU9EWXlXazB5TmpRdU9EUTVJREV6TXk0eE1rd3lOamN1TXpZMElERXpNQzQyTWpSV016Z3hMamsxTVVneE5EWXVNakkxVmpNMk1DNDFPVGhETVRRMkxqSXlOU0F6TkRRdU5EazVJREV6TXk0d05Ua2dNek14TGpVd01TQXhNVFl1T1RFM0lETXpNUzQxTURGSU5qUXVPVEl6TkV3NE9TNDFPVFk1SURNd055NHdNVGhNTWpNeUxqRTROQ0F4TmpVdU5UTXlUREkyTkM0NE5Ea2dNVE16TGpFeVdrMDBOekF1TlRVM0lETTROQzR3TnpWSU5EWTRMalUxTjFZek9ESXVNRGMxVmpFeU9DNDNOak5XTVRJMUxqazRObFl4TWpVdU9UUTFURFEyT0M0MU9UY2dNVEkxTGprNE5rdzBOekF1TlRVM0lERXlOeTQ1TTB3ME56UXVOVEl4SURFek1TNDROalJNTlRBM0xqRTROaUF4TmpRdU1qYzJURFkwT1M0M016TWdNekExTGpjeU1rdzJOelV1T0RNM0lETXpNUzQyTWpSTU5qYzNMamcxTWlBek16TXVOakkwU0RZM05TNHdNVE5JTmpJeExqQXdORU0yTURVdU9URWdNek16TGpZeU5DQTFPVE11TmprMklETTBOUzQzT0RRZ05Ua3pMalk1TmlBek5qQXVOekl5VmpNNE1pNHdOelZXTXpnMExqQTNOVWcxT1RFdU5qazJTRFEzTUM0MU5UZGFUVFU1TVM0Mk9UWWdNemd5TGpBM05WWXpOakF1TnpJeVF6VTVNUzQyT1RZZ016UTBMalkyTnlBMk1EUXVPREU0SURNek1TNDJNalFnTmpJeExqQXdOQ0F6TXpFdU5qSTBTRFkzTWk0NU9UZE1OalE0TGpNeU5DQXpNRGN1TVRReVREVXdOUzQzTnpjZ01UWTFMalk1Tmt3ME56TXVNVEV6SURFek15NHlPRFJNTkRjd0xqVTFOeUF4TXpBdU56UTNWak00TWk0d056VklOVGt4TGpZNU5scE5OekV4TGpJd05DQTBORGN1T0RreFREWTBPUzQ0T1RJZ05UQTRMalk0T1V3MU5Ea3VNRGNnTmpBNExqY3pNa3cxTkRjdU1EY2dOakV3TGpjeE4xWTJNRGN1T0RrNVZqVTVNaTQwTnpkRE5UUTNMakEzSURVMk5pNDFNRGdnTlRJMUxqZzBPQ0ExTkRVdU5EVWdORGs1TGpZM05pQTFORFV1TkRWSU5EWXdMalF4U0RRMU9DNDBNVlkxTkRjdU5EVldOelV4TGpBM05sWTNOVEl1T0RnM1REUTFOeTQ1TWpNZ056VXpMalF4TVV3ME5UY3VNemsxSURjMU1pNDRPRGRNTkRVMkxqVXdNaUEzTlRJdU1EQXhURFExTmk0ME1TQTNOVEV1T1RBNVREUXpNQzQzTkRRZ056STJMalEwTWt3ME16QXVOakUwSURjeU5pNHpNVE5JTkRNd0xqVTNORXcwTXpBdU5qRTBJRGN5Tmk0eU5rdzBNekF1TmprMUlEY3lOaTR4TlRKTU5ETXdMall4TkNBM01qWXVNRGN5VERRek1DNDFOelFnTnpJMkxqQXpNa3d6TmprdU1EVTVJRFkyTkM0NU9USklNelk1TGpBeE9Vd3pOamd1T1RNM0lEWTJOUzR3TXpKTU16QTVMak0xT0NBM01qUXVNVEV5VERNd09DNHhPVFFnTnpJMUxqSTJOMHd6TURjdU16Z3lJRGN5Tmk0d056Sk1NekEzTGpNMU1pQTNNall1TVRBeVRETXdOeTR6TkRJZ056STJMakV4TWtnek1EY3VNemd5VERNd055NHpOeklnTnpJMkxqRTBNMHd6TURjdU16UXlJRGN5Tmk0eU16Tk1NekExTGpRME9DQTNNamd1TVRFeVRESTRNUzQzT1NBM05URXVOVGczVERJNE1DNHlOemNnTnpVekxqQTRPVXd5T0RBdU1ETTBJRGMxTXk0ek1qbE1Namd3TGpBek15QTNOVE11TXpOTU1qZ3dMakF6TWlBM05UTXVNekk1VERJM09TNDNPU0EzTlRNdU1EZzVWamMxTXk0d09EVldOelV3TGpjMU5GWTFORGN1TkRWV05UUTFMalExU0RJM055NDNPVWd5TXpndU5USXpRekl4TWk0ek5URWdOVFExTGpRMUlERTVNUzR4TWprZ05UWTJMalV3T0NBeE9URXVNVEk1SURVNU1pNDBOemRXTmpBNExqRXdNVlkyTVRBdU9URTRUREU0T1M0eE1qa2dOakE0TGprek5FdzRPQzQwTWpreUlEVXdPUzR3TVRGTU1qWXVPVEUwTlNBME5EY3VPVGN5VERJdU9UWXdPRGdnTkRJMExqSXdNMHd3TGprME5UTXhNaUEwTWpJdU1qQXpTRE11TnpnME56ZElOek0wTGpJeE5FZzNNemN1TURVeFREY3pOUzR3TXprZ05ESTBMakl3TTB3M01URXVNakEwSURRME55NDRPVEZhVFRZME9DNDBPRE1nTlRBM0xqSTJPVXcxTkRrdU1EY2dOakExTGpreE5WWTFPVEl1TkRjM1F6VTBPUzR3TnlBMU5qVXVNemc0SURVeU5pNDVNemdnTlRRekxqUTFJRFE1T1M0Mk56WWdOVFF6TGpRMVNEUTFPQzQwTVVnME5UWXVOREZXTlRRMUxqUTFWamMwT1M0d09USk1ORE16TGpJME1TQTNNall1TVRBeVREUXpNeTR6TkRVZ056STFMamsyTkV3ME16SXVNVEEwSURjeU5DNDNNek5NTXpjd0xqUTJPQ0EyTmpNdU5UY3lURE0yT1M0NE9ETWdOall5TGprNU1rZ3pOamt1TURVNVNETTJPUzR3TVRsSU16WTRMalUxVERNMk9DNHhNeUEyTmpNdU1rd3pOamd1TURRNUlEWTJNeTR5TkV3ek5qY3VOelU1SURZMk15NHpPRFJNTXpZM0xqVXlPU0EyTmpNdU5qRXlURE13Tmk0M09EWWdOekl6TGpnME5rd3pNRFl1TnpnMUlEY3lNeTQ0TkRkTU16QTFMamt6TXlBM01qUXVOamt5VERNd01pNDBPRGNnTnpJNExqRXhNa2d6TURJdU5qQTRUREk0TVM0M09TQTNORGd1TnpkV05UUTFMalExVmpVME15NDBOVWd5TnprdU56bElNak00TGpVeU0wTXlNVEV1TWpZeElEVTBNeTQwTlNBeE9Ea3VNVEk1SURVMk5TNHpPRGdnTVRnNUxqRXlPU0ExT1RJdU5EYzNWall3Tmk0eE1UWk1PRGt1T0RNM09TQTFNRGN1TlRreVRESTRMak15TXpNZ05EUTJMalUxTWt3MUxqZ3dNRE0wSURReU5DNHlNRE5JTnpNeUxqSXdNa3czTURrdU56azFJRFEwTmk0ME56Rk1OekE1TGpjNU5DQTBORFl1TkRjelREWTBPQzQwT0RRZ05UQTNMakkyT1V3Mk5EZ3VORGd6SURVd055NHlOamxhSnlCbWFXeHNQU2QxY213b0kzQmhhVzUwTUY5c2FXNWxZWEpmTWpjMU1GOHpPREF6T1Nrbkx6NDhaR1ZtY3o0OGJHbHVaV0Z5UjNKaFpHbGxiblFnYVdROUozQmhhVzUwTUY5c2FXNWxZWEpmTWpjMU1GOHpPREF6T1NjZ2VERTlKekF1T1RRMU16QTNKeUI1TVQwbk56VXpMalF4TVNjZ2VESTlKelUxT1M0eU9ERW5JSGt5UFNjdE1URTBMak0zT0NjZ1ozSmhaR2xsYm5SVmJtbDBjejBuZFhObGNsTndZV05sVDI1VmMyVW5Qanh6ZEc5d0lITjBiM0F0WTI5c2IzSTlKeU16TmpVelFUY25MejQ4YzNSdmNDQnZabVp6WlhROUp6RW5JSE4wYjNBdFkyOXNiM0k5SnlNMk9FTkVSVVFuTHo0OEwyeHBibVZoY2tkeVlXUnBaVzUwUGp3dlpHVm1jejQ4TDNOMlp6ND0pO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lfS5wYWdlLWhlcm8taW1ney0taC1jbGFtcC1mb3JtdWxhOjE1LjYydnc7LS1zbWFsbGVyLWltZy1zaXplOjE2NXB4Oy0taW1nLXNpemUtZnVsbDozMDBweDstLWltZy1zaXplOmNsYW1wKHZhcigtLXNtYWxsZXItaW1nLXNpemUpLHZhcigtLWgtY2xhbXAtZm9ybXVsYSksdmFyKC0taW1nLXNpemUtZnVsbCkpO3dpZHRoOnZhcigtLWltZy1zaXplKTtoZWlnaHQ6dmFyKC0taW1nLXNpemUpO21hcmdpbjowIGF1dG8gMnJlbX0ucGFnZS1oZXJvLWltZyBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0e2JhY2tncm91bmQ6I2Y0ZmNmZX0ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5jb250ZW50LXNpbmdsZXstLWJsb2ctd2lkdGg6MTI4MHB4O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAucGFnZS10aXRsZXstLWgtY2xhbXAtZm9ybXVsYTozLjU0dnc7LS1zbWFsbGVyLXRleHQtc2l6ZTozNnB4Oy0tdGV4dC1zaXplOjY4cHg7Zm9udC1zaXplOmNsYW1wKHZhcigtLXNtYWxsZXItdGV4dC1zaXplKSx2YXIoLS1oLWNsYW1wLWZvcm11bGEpLHZhcigtLXRleHQtc2l6ZSkpO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOi0yLjA0cHg7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbTouNWVtfS5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLnBhZ2UtdGl0bGUgc3BhbntiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCMzNjUzYTcsIzY4Y2RlZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0="}},"time_used":214,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":214,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-framework.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.842Z","timestamp":1785145403842,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-framework.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-391ef\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":233967,"size_decoded":17088,"mime_type":"text/css","magic":"ASCII text, with very long lines (50037)","md5":"a99a9dffc0a12d63b52cf3a138af8787","sha1":"77c06baca8168d2419ac77fe211409a686eb7640","sha256":"ee3761fec877768a88aa760caebc8b2d60ba18a8f2ff1a69c48eca55e2b1d37f","sha512":"40d2593fd4fa1deaceb720a7355f24f86b602ec19124665913695013215ef9e79e1741a8fc70f2e1df06cb5b7b76686c02cdf806f53e6b018042c338d0b0475f","ssdeep":"768:JUaqwhAWCV5VE8S4tOFmpOYDnvoq64aPNghW5uAouaVEe1OJeg2Coi:JUDFmkuB","tlshash":"e334ce8a603423e9297607aca3cde4086f547421f7a477d7f00c65d672deae61e1af0b","first_seen":"2026-07-27T07:14:06.758891Z","last_seen":"2026-07-27T14:04:41.089424Z","times_seen":5,"resource_available":false,"data":"Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmt7LS1nZm9ybS10aGVtZS1mb250LWZhbWlseTppbml0aWFsOy0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS1iYXNlOm5vcm1hbDstLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXM6M3B4Oy0tZ2Zvcm0tdGhlbWUtYm9yZGVyLXJhZGl1cy1tYXgtc206MnB4Oy0tZ2Zvcm0tdGhlbWUtYm9yZGVyLXJhZGl1cy1tYXgtbWQ6M3B4Oy0tZ2Zvcm0tdGhlbWUtYm9yZGVyLXJhZGl1cy1tYXgtbGc6OHB4Oy0tZ2Zvcm0tdGhlbWUtdHJhbnNpdGlvbi1kdXJhdGlvbjowLjE1czstLWdmb3JtLXRoZW1lLXRyYW5zaXRpb24tY29udHJvbDp2YXIoLS1nZm9ybS10aGVtZS10cmFuc2l0aW9uLWR1cmF0aW9uKTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnk6IzIwNGNlNTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktcmdiOjQ1LDEyNywyNTE7LS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0OiNmZmY7LS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0LXJnYjoyNTUsMjU1LDI1NTstLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktZGFya2VyOiMwNDRhZDM7LS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWxpZ2h0ZXI6IzA0NGFkMzstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeTojZmZmOy0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LXJnYjoyNTUsMjU1LDI1NTstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdDojMTEyMzM3Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LWNvbnRyYXN0LXJnYjoxNywzNSw1NTstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1kYXJrZXI6I2YyZjNmNTstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1saWdodGVyOiNmMmYzZjU7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyazojNTg1ZTZhOy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmstcmdiOjg4LDk0LDEwNjstLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1kYXJrLWRhcmtlcjojMTEyMzM3Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmstbGlnaHRlcjojNjg2ZTc3Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0OiNlNWU3ZWI7LS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQtcmdiOjIyOSwyMzEsMjM1Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0LWRhcmtlcjojZDJkNWRiOy0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0LWxpZ2h0ZXI6I2YyZjNmNTstLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sOiNmZmY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1yZ2I6MjU1LDI1NSwyNTU7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1jb250cmFzdDojMTEyMzM3Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtY29udHJhc3QtcmdiOjE3LDM1LDU1Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtZGFya2VyOiNmMmYzZjU7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodGVyOiNmMmYzZjU7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1kYXJrOiM1ODVlNmE7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1kYXJrLXJnYjo4OCw5NCwxMDY7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1kYXJrLWRhcmtlcjojMTEyMzM3Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtZGFyay1saWdodGVyOiM2ODZlNzc7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodDojZTVlN2ViOy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtcmdiOjIyOSwyMzEsMjM1Oy0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtZGFya2VyOiNkMmQ1ZGI7LS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodC1saWdodGVyOiNmMmYzZjU7LS1nZm9ybS10aGVtZS1jb2xvci1kYW5nZXI6I2MwMmIwYTstLWdmb3JtLXRoZW1lLWNvbG9yLWRhbmdlci1yZ2I6MTkyLDQzLDEwOy0tZ2Zvcm0tdGhlbWUtY29sb3ItZGFuZ2VyLWNvbnRyYXN0OiNmZmY7LS1nZm9ybS10aGVtZS1jb2xvci1kYW5nZXItY29udHJhc3QtcmdiOjI1NSwyNTUsMjU1Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itc3VjY2VzczojMzk5ZjRiOy0tZ2Zvcm0tdGhlbWUtY29sb3Itc3VjY2Vzcy1yZ2I6NTcsMTU5LDc1Oy0tZ2Zvcm0tdGhlbWUtY29sb3Itc3VjY2Vzcy1jb250cmFzdDojZmZmOy0tZ2Zvcm0tdGhlbWUtY29sb3Itc3VjY2Vzcy1jb250cmFzdC1yZ2I6MjU1LDI1NSwyNTU7LS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LXNoYWRlOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktZGFya2VyKTstLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1zaGFkZTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnktZGFya2VyKTstLWdmb3JtLXRoZW1lLWNvbG9yLWxpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1saWdodCk7LS1nZm9ybS10aGVtZS1jb2xvci1saWdodC1zaGFkZTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodC1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtY29sb3ItbGlnaHQtdGludDp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1saWdodC1saWdodGVyKTstLWdmb3JtLXRoZW1lLWNvbG9yLWRhcms6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtY29sb3ItZGFyay1yZ2I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmstcmdiKTstLWdmb3JtLXRoZW1lLWNvbG9yLWRhcmstc2hhZGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtZGFyay1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtY29sb3ItZGFyay10aW50OnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcmstbGlnaHRlcik7LS1nZm9ybS10aGVtZS1wYWRkaW5nLWlubGluZToxMnB4Oy0tZ2Zvcm0tdGhlbWUtcGFkZGluZy1ibG9jazoxMnB4Oy0tZ2Zvcm0tdGhlbWUtZm9udC1mYW1pbHktcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1mb250LWZhbWlseSk7LS1nZm9ybS10aGVtZS1mb250LXNpemUtcHJpbWFyeToxNHB4Oy0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtYmFzZSk7LS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1wcmltYXJ5OjQwMDstLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXByaW1hcnk6MDstLWdmb3JtLXRoZW1lLWxpbmUtaGVpZ2h0LXByaW1hcnk6MS41Oy0tZ2Zvcm0tdGhlbWUtZm9udC1mYW1pbHktc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS1zZWNvbmRhcnk6MTRweDstLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtYmFzZSk7LS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1zZWNvbmRhcnk6NTAwOy0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctc2Vjb25kYXJ5OjA7LS1nZm9ybS10aGVtZS1saW5lLWhlaWdodC1zZWNvbmRhcnk6MS40MzstLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXRlcnRpYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS10ZXJ0aWFyeToxNHB4Oy0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS10ZXJ0aWFyeTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXN0eWxlLWJhc2UpOy0tZ2Zvcm0tdGhlbWUtZm9udC13ZWlnaHQtdGVydGlhcnk6NDAwOy0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctdGVydGlhcnk6MDstLWdmb3JtLXRoZW1lLWxpbmUtaGVpZ2h0LXRlcnRpYXJ5OjEuNDM7LS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5OiJnZm9ybS1pY29ucy1vcmJpdGFsIjstLWdmb3JtLXRoZW1lLWljb24tZm9udC1zaXplOjIwcHg7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtY2hlY2tib3g6IlxlOTAwIjstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWxlY3QtZG93bjoiXGU5MDEiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXNlbGVjdC11cDoiXGU5MDIiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXNlbGVjdDp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB3aWR0aD0nMTAnIGhlaWdodD0nNicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J00uMjkzLjI5M2ExIDEgMCAwIDEgMS40MTQgMEw1IDMuNTg2IDguMjkzLjI5M2ExIDEgMCAwIDEgMS40MTQgMS40MTRsLTQgNGExIDEgMCAwIDEtMS40MTQgMGwtNC00YTEgMSAwIDAgMSAwLTEuNDE0WicgZmlsbD0nJTIzNjg2RTc3Jy8lM0UlM0Mvc3ZnJTNFIik7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtbnVtYmVyOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHdpZHRoPSc4JyBoZWlnaHQ9JzE0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTQgMGExIDEgMCAwIDEgLjcwNy4yOTNsMyAzYTEgMSAwIDAgMS0xLjQxNCAxLjQxNEw0IDIuNDE0IDEuNzA3IDQuNzA3QTEgMSAwIDAgMSAuMjkzIDMuMjkzbDMtM0ExIDEgMCAwIDEgNCAwWk0uMjkzIDkuMjkzYTEgMSAwIDAgMSAxLjQxNCAwTDQgMTEuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAgMSAxLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAgMS0xLjQxNCAwbC0zLTNhMSAxIDAgMCAxIDAtMS40MTRaJyBmaWxsPSclMjM2ODZFNzcnLyUzRSUzQy9zdmclM0UiKTstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWFyY2g6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNjQwJyBoZWlnaHQ9JzY0MCclM0UlM0NwYXRoIGQ9J00yNTYgMTI4Yy03MC42OTIgMC0xMjggNTcuMzA4LTEyOCAxMjggMCA3MC42OTEgNTcuMzA4IDEyOCAxMjggMTI4IDcwLjY5MSAwIDEyOC01Ny4zMDkgMTI4LTEyOCAwLTcwLjY5Mi01Ny4zMDktMTI4LTEyOC0xMjh6TTY0IDI1NmMwLTEwNi4wMzkgODUuOTYxLTE5MiAxOTItMTkyczE5MiA4NS45NjEgMTkyIDE5MmMwIDQxLjQ2Ni0xMy4xNDYgNzkuODYzLTM1LjQ5OCAxMTEuMjQ4bDE1NC4xMjUgMTU0LjEyNWMxMi40OTYgMTIuNDk2IDEyLjQ5NiAzMi43NTggMCA0NS4yNTRzLTMyLjc1OCAxMi40OTYtNDUuMjU0IDBMMzY3LjI0OCA0MTIuNTAyQzMzNS44NjIgNDM0Ljg1NCAyOTcuNDY3IDQ0OCAyNTYgNDQ4Yy0xMDYuMDM5IDAtMTkyLTg1Ljk2Mi0xOTItMTkyeicgZmlsbD0nJTIzNjg2RTc3Jy8lM0UlM0Mvc3ZnJTNFIik7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtcGFzc3dvcmQtaGlkZGVuOiJcZTkwYSI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtcGFzc3dvcmQtdmlzaWJsZToiXGU5MDkiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWxpc3QtaXRlbS1hZGQ6IlxlOTBmIjstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1saXN0LWl0ZW0tcmVtb3ZlOiJcZTkwZSI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtc2F2ZS1jb250aW51ZToiXGU5MTAiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXBhZ2UtbnVtYmVycy1jb21wbGV0ZToiXGU5MGIiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWNhbmNlbDoiXGU5MTgiOy0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWZpbGUtdXBsb2FkOiJcZTkxMSI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZmlsZS11cGxvYWQtY29tcGxldGVkOiJcZTkwYyI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZmlsZS11cGxvYWQtY2FuY2VsOiJcZTkwNCI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZmlsZS11cGxvYWQtcmVtb3ZlOiJcZTkxOSI7LS1nZm9ybS10aGVtZS1pY29uLXRvb2x0aXAtZXJyb3I6IlxlOTA2IjstLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1kYXRlcGlja2VyOiJcZTkxYSI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZGF0ZXBpY2tlci1sZWZ0OiJcZTkxYiI7LS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZGF0ZXBpY2tlci1yaWdodDoiXGU5MWMiOy0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy1wcmltYXJ5OjhweDstLWdmb3JtLXRoZW1lLWxhYmVsLWNob2ljZS1maWVsZC1zcGFjaW5nLXByaW1hcnk6MTJweDstLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctaG9yaXpvbnRhbC1zZWNvbmRhcnk6MTJweDstLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctdmVydGljYWwtc20tc2Vjb25kYXJ5Oi0xcHg7LS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLXZlcnRpY2FsLW1kLXNlY29uZGFyeTowOy0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbC1sZy1zZWNvbmRhcnk6MXB4Oy0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbC14bC1zZWNvbmRhcnk6NHB4Oy0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbC1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbC1tZC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy10ZXJ0aWFyeTo4cHg7LS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1zcGFjaW5nOjhweDstLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLWNob2ljZS1maWVsZC1zcGFjaW5nOjEycHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWFjY2VudC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYXBwZWFyYW5jZTpub25lOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvci1ob3Zlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJhY2tncm91bmQtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtbGlnaHRlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJhY2tncm91bmQtY29sb3ItZXJyb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1iYWNrZ3JvdW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcmstbGlnaHRlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvci1ob3Zlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvci1mb2N1czp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWRpc2FibGVkOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWxpZ2h0LWRhcmtlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvci1lcnJvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1kYW5nZXIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItc3R5bGU6c29saWQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci13aWR0aDoxcHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtYm9yZGVyLXJhZGl1cyk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LXNtOm1pbih2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMpLHZhcigtLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXMtbWF4LXNtKSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LW1kOm1pbih2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMpLHZhcigtLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXMtbWF4LW1kKSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LWxnOm1pbih2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMpLHZhcigtLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXMtbWF4LWxnKSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMTgsMjUsOTcsLjA3OCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctY29sb3ItZm9jdXM6cmdiYSh2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LXJnYiksMC4zKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1zaXplLWZvY3VzOjNweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1vZmZzZXQtY29sb3ItZm9jdXM6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctb2Zmc2V0LXNpemUtZm9jdXM6MDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1mb2N1czowIDAgMCB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctb2Zmc2V0LXNpemUtZm9jdXMpIHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1vZmZzZXQtY29sb3ItZm9jdXMpLDAgMCAwIHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1zaXplLWZvY3VzKSB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctY29sb3ItZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1jb250cmFzdCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWNvbG9yLWhvdmVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvci1mb2N1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3ItZGlzYWJsZWQ6cmdiYSh2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1pbnNpZGUtY29udHJvbC1jb250cmFzdC1yZ2IpLDAuNik7LS1nZm9ybS10aGVtZS1jb250cm9sLWNvbG9yLWVycm9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWRhcmstbGlnaHRlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWljb24tY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtZGFyay1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yLWZvY3VzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtaWNvbi1jb2xvci1ob3Zlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWljb24tY29sb3ItZGlzYWJsZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2l6ZS1zbTozNXB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLW1kOjM4cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUtbGc6NDdweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2l6ZS14bDo1NHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLXBhZGRpbmctaW5saW5lKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1ibG9jazowOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1mb250LWZhbWlseS1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXN0eWxlLWJhc2UpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2l6ZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLW91dGxpbmU6bm9uZTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtb3V0bGluZS1vZmZzZXQ6MDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtdHJhbnNpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS10cmFuc2l0aW9uLWNvbnRyb2wpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWNvbnRyYXN0LXJnYiksMC43KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LWZhbWlseSk7LS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LXN0eWxlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LXdlaWdodCk7LS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmcpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wbGFjZWhvbGRlci1vcGFjaXR5OjE7LS1nZm9ybS10aGVtZS1jb250cm9sLXJlYWRvbmx5LWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yZWFkb25seS1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmVhZG9ubHktZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC1zaXplKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmVhZG9ubHktZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtc3R5bGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yZWFkb25seS1mb250LXdlaWdodDo1MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLXJlYWRvbmx5LWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmcpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yZWFkb25seS1saW5lLWhlaWdodDoxOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMTgsMjUsOTcsLjA3OCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93LWhvdmVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3cpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1mb2N1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1kaXNhYmxlZDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS14czoxMnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tZm9udC1zaXplLXNtOjE0cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1mb250LXNpemUtbWQ6MTRweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS1sZzoxNnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tZm9udC1zaXplLXhsOjE2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tZm9udC1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS1iYXNlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtd2VpZ2h0OjUwMDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tbGluZS1oZWlnaHQ6MTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLW9wYWNpdHk6MTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6MC41Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tcGFkZGluZy1ibG9jazowOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tcGFkZGluZy1pbmxpbmUteHM6OHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tcGFkZGluZy1pbmxpbmUtc206MTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLW1kOjE2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1wYWRkaW5nLWlubGluZS1sZzoyMHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tcGFkZGluZy1pbmxpbmUteGw6MjRweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUteHM6MzBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtc206dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLXNtKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtbWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtbGc6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLWxnKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUteGw6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLXhsKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi10ZXh0LWRlY29yYXRpb246bm9uZTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXRleHQtdHJhbnNmb3JtOm5vbmU7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uOm5vbmU7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWdhcDo2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi10cmFuc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtdHJhbnNpdGlvbik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeS1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cy1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1wcmltYXJ5OnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWhvdmVyLXByaW1hcnk6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXMtcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkLXByaW1hcnk6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItc3R5bGUtcHJpbWFyeTpzb2xpZDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci13aWR0aC1wcmltYXJ5OjFweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeS1jb250cmFzdCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1ob3Zlci1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItZm9jdXMtcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWRpc2FibGVkLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZm9jdXMtcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1kaXNhYmxlZC1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3Zlci1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LWRhcmtlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3Itc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWxpZ2h0LWRhcmtlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXItc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWZvY3VzLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1zdHlsZS1zZWNvbmRhcnk6c29saWQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItd2lkdGgtc2Vjb25kYXJ5OjFweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnktY29udHJhc3QpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItaG92ZXItc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1mb2N1cy1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWRpc2FibGVkLXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItaG92ZXItc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZm9jdXMtc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZGlzYWJsZWQtc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3Itc2ltcGxlOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1ob3Zlci1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cy1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLXNpbXBsZTp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1ob3Zlci1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXMtc2ltcGxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWZvY3VzKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1kaXNhYmxlZC1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItc3R5bGUtc2ltcGxlOnNvbGlkOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLXdpZHRoLXNpbXBsZToxcHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93LXNpbXBsZTpub25lOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1ob3Zlci1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1mb2N1cy1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3gtc2hhZG93LWZvY3VzKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3ctZGlzYWJsZWQtc2ltcGxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3ctc2ltcGxlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXNpbXBsZTpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1kYXJrLXJnYiksMC42NSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1ob3Zlci1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItZm9jdXMtc2ltcGxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWhvdmVyLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1kaXNhYmxlZC1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3Itc2ltcGxlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtc2ltcGxlOjI0cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLXNpbXBsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1ob3Zlci1zaW1wbGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItaG92ZXItc2ltcGxlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZm9jdXMtc2ltcGxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWZvY3VzLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLWRpc2FibGVkLXNpbXBsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1kaXNhYmxlZC1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2UtY2hlY2stY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1jaGVjay1jb2xvci1kaXNhYmxlZDpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWNvbnRyYXN0LXJnYiksMC4yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtc206MThweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtbWQ6MjBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtbGc6MjJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUteGw6MjhweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWNoZWNrYm94LWNoZWNrLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItcmFkaXVzLW1heC1zbSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWNoZWNrYm94LWNoZWNrLXNpemUtc206MTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hlY2tib3gtY2hlY2stc2l6ZS1tZDppbml0aWFsOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaGVja2JveC1jaGVjay1zaXplLWxnOjE1cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWNoZWNrYm94LWNoZWNrLXNpemUteGw6MTlweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hlY2tib3gtY2hlY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNoZWNrYm94LWNoZWNrLXNpemUtbWQpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1ib3JkZXItcmFkaXVzOjUwJTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stY29udGVudDoiIjstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS1zbTo2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLXJhZGlvLWNoZWNrLXNpemUtbWQ6N3B4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplLWxnOjhweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS14bDoxMHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1ib3gtc2hhZG93OjAgMCAxcHggcmdiYSgxOCwyNSw5NywuMjQpLDAgMjRweCAyNHB4IHJnYmEoMTgsMjUsOTcsLjAzKSwwIDJweCAycHggcmdiYSgxOCwyNSw5NywuMDMpLDAgNHB4IDRweCByZ2JhKDE4LDI1LDk3LC4wMyksMCA4cHggOHB4IHJnYmEoMTgsMjUsOTcsLjAzKSwwIDE2cHggMTZweCByZ2JhKDE4LDI1LDk3LC4wMyk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1wYWRkaW5nLWJsb2NrOjE2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1wYWRkaW5nLWlubGluZToxNnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWlubGluZS1zaXplOjMwMHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItbWFyZ2luLWJsb2NrLXN0YXJ0OjEycHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1oZWFkZXItaWNvbnMtaW5saW5lLXNpemU6MjBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWhlYWRlci1pY29ucy1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWljb24tY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItaGVhZGVyLWljb25zLWNvbG9yLWhvdmVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtaWNvbi1jb2xvci1ob3Zlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1oZWFkZXItaWNvbnMtZm9udC1zaXplOjIwcHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10aXRsZS1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnktY29udHJhc3QpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGl0bGUtZm9udC1zaXplOjE0cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10aXRsZS1mb250LXdlaWdodDo1MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10aXRsZS1saW5lLWhlaWdodDoxLjU7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1kcm9wZG93bi1iYWNrZ3JvdW5kLWltYWdlOnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWxlY3QpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItZHJvcGRvd24tYmFja2dyb3VuZC1wb3NpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1pY29uLXBvc2l0aW9uKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWRyb3Bkb3duLWJhY2tncm91bmQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1pY29uLXNpemUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItZHJvcGRvd24tYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWxpZ2h0LWRhcmtlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1kcm9wZG93bi1ib3JkZXItc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItc3R5bGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItZHJvcGRvd24tYm9yZGVyLXdpZHRoOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXdpZHRoKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWRyb3Bkb3duLWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWRyb3Bkb3duLXRleHQtYWxpZ246c3RhcnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1tYXJnaW4tYmxvY2stc3RhcnQ6MTZweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLW1hcmdpbi1ibG9jay1lbmQ6MDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWhlYWQtY2VsbC1mb250LXNpemU6MTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWhlYWQtY2VsbC1mb250LXdlaWdodDo2MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1oZWFkLWNlbGwtbGluZS1oZWlnaHQ6MS4zMzstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWhlYWQtY2VsbC12ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLXBhZGRpbmc6MXB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1ibG9jay1zaXplOjQwcHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWZvbnQtc2l6ZToxNHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1mb250LXdlaWdodDo0MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWxpbmUtaGVpZ2h0OjEuNDM7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYWxpZ24taXRlbXM6Y2VudGVyOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQ6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjojZjRmOGZmOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWJhY2tncm91bmQtY29sb3Itc2VsZWN0ZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYm9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LW1kKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1zZWNvbmRhcnktY29udHJhc3QpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWNvbG9yLWRpc2FibGVkOiNjZmQzZDk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1jb2xvci1zZWxlY3RlZDp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1mb250LWZhbWlseS10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXNpemUtdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbGluZS1oZWlnaHQtdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1jb2xvci1lcnJvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1kYW5nZXIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LWZhbWlseS1lcnJvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC1zaXplLWVycm9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC1zaXplKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC1zdHlsZS1lcnJvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWZvbnQtc3R5bGUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXdlaWdodC1lcnJvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tbGV0dGVyLXNwYWNpbmctZXJyb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1sZXR0ZXItc3BhY2luZyk7LS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0LWVycm9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXBhZGRpbmctaW5saW5lOjAgdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5LWRhcmtlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLXdpZHRoOjFweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLWlubGluZS1lbmQtc3R5bGU6c29saWQ7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLWlubGluZS1lbmQtY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1ib3JkZXItaW5saW5lLWVuZC1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yLWZvY3VzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLWlubGluZS1lbmQtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1ib3JkZXItaW5saW5lLWVuZC1jb2xvci1kaXNhYmxlZDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXNlY29uZGFyeS1jb250cmFzdC1yZ2IpLDAuNzI1KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1jb2xvcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWNvbG9yLWZvY3VzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1jb2xvci1kaXNhYmxlZDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1mYW1pbHkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1mb250LXNpemU6MTRweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXN0eWxlLWJhc2UpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1mb250LXdlaWdodDo1MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1saW5lLWhlaWdodDoxLjQzOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1tYXJnaW4taW5saW5lOjAgMTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tcGFkZGluZy1pbmxpbmU6MTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tdGV4dC1kZWNvcmF0aW9uOm5vbmU7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLXRleHQtdHJhbnNmb3JtOm5vbmU7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLXRyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC10cmFuc2l0aW9uKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtYmxvY2stc2l6ZTphdXRvOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1ib3JkZXItc3R5bGU6ZGFzaGVkOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1ib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXJhZGl1cy1tYXgtbGcpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWNvbnRyYXN0LXJnYiksMC43MjUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1mb250LXdlaWdodDo1MDA7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLWxpbmUtaGVpZ2h0OjE7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLXBhZGRpbmctaW5saW5lOjQwcHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLXBhZGRpbmctYmxvY2s6NDBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaWNvbi1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaWNvbi1mb250LXNpemU6MzZweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaWNvbi1tYXJnaW4tYmxvY2stZW5kOjhweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaW5zdHJ1Y3Rpb25zLW1hcmdpbi1ibG9jay1lbmQ6MTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtdWktZ2FwOjEycHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLXVpLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1sb2FkaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItYmxvY2stc2l6ZTo2cHg7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJhci1ib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXMpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItdHJhbnNpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS10cmFuc2l0aW9uLWNvbnRyb2wpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy10ZXh0LWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tY29sb3IpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy10ZXh0LW1pbi1pbmxpbmUtc2l6ZTozM3B4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy10ZXh0LWZvbnQtc2l6ZToxMnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1idXR0b24taW5zZXQtYmxvY2stc3RhcnQ6LTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWluc2V0LWlubGluZS1lbmQ6LTJweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLXBvc2l0aW9uOmFic29sdXRlOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1idXR0b24tZm9udC1zaXplLWNhbmNlbDowOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1idXR0b24taWNvbi1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1zaXplKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWljb24tY29sb3ItY29tcGxldGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itc3VjY2Vzcyk7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1hcmVhLWdhcDoxNnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctYXJlYS1tYXJnaW4tYmxvY2stc3RhcnQ6MTZweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1mYW1pbHktc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC13ZWlnaHQtc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbGluZS1oZWlnaHQ6MTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZ2FwOjRweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbmFtZS1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1uYW1lLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxpbmUtaGVpZ2h0LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLW5hbWUtb3ZlcmZsb3c6aGlkZGVuOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1uYW1lLXBhZGRpbmctaW5saW5lLWVuZDpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWljb24tc2l6ZSkgKyB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLXRleHQtbWluLWlubGluZS1zaXplKSArIHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtdWktZ2FwKSoyKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbmFtZS10ZXh0LW92ZXJmbG93OmVsbGlwc2lzOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1uYW1lLXdoaXRlLXNwYWNlOm5vd3JhcDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtc2l6ZS1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtY29sb3ItcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyay1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LWZhbWlseS1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc2l6ZS1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXN0eWxlLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXdlaWdodC1wcmltYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxldHRlci1zcGFjaW5nLXByaW1hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGluZS1oZWlnaHQtcHJpbWFyeTp2YXIoLS1nZm9ybS10aGVtZS1saW5lLWhlaWdodC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmstZGFya2VyKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1mYW1pbHktc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc2l6ZS1zZWNvbmRhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zaXplLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc3R5bGUtc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc3R5bGUtc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtc2Vjb25kYXJ5OjQwMDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGV0dGVyLXNwYWNpbmctc2Vjb25kYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxpbmUtaGVpZ2h0LXNlY29uZGFyeTp2YXIoLS1nZm9ybS10aGVtZS1saW5lLWhlaWdodC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci10ZXJ0aWFyeTp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyayk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtZmFtaWx5LXRlcnRpYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1zaXplLXRlcnRpYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtc2l6ZS10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc3R5bGUtdGVydGlhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtd2VpZ2h0LXRlcnRpYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtd2VpZ2h0LXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGV0dGVyLXNwYWNpbmctdGVydGlhcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1saW5lLWhlaWdodC10ZXJ0aWFyeTp2YXIoLS1nZm9ybS10aGVtZS1saW5lLWhlaWdodC10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWNvbG9yLXF1YXRlcm5hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LWZhbWlseS1xdWF0ZXJuYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1zaXplLXF1YXRlcm5hcnk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zaXplLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc3R5bGUtcXVhdGVybmFyeTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXN0eWxlLXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtcXVhdGVybmFyeTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1sZXR0ZXItc3BhY2luZy1xdWF0ZXJuYXJ5OnZhcigtLWdmb3JtLXRoZW1lLWxldHRlci1zcGFjaW5nLXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGluZS1oZWlnaHQtcXVhdGVybmFyeTp2YXIoLS1nZm9ybS10aGVtZS1saW5lLWhlaWdodC10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWNvbG9yLXJlcXVpcmVkOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWRhbmdlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtZmFtaWx5LXJlcXVpcmVkOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1mYW1pbHktcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc2l6ZS1yZXF1aXJlZDoxMnB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXN0eWxlLXJlcXVpcmVkOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1zdHlsZS1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtcmVxdWlyZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXdlaWdodC1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGV0dGVyLXNwYWNpbmctcmVxdWlyZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1sZXR0ZXItc3BhY2luZy1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGluZS1oZWlnaHQtcmVxdWlyZWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1saW5lLWhlaWdodC1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLWFwcGVhcmFuY2U6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1hcHBlYXJhbmNlKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLWJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLWJhY2tncm91bmQtc2l6ZTo4cHggMTRweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLWlubGluZS1zaXplOjhweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLW9wYWNpdHk6MTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWljb24tcG9zaXRpb246Y2FsYygxMDAlIC0gdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSkpIGNlbnRlcjstLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWljb24tc2l6ZToxMHB4Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtbXMtZXhwYW5kOm5vbmU7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1wYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKSBjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LXNlYXJjaC1pY29uLXNpemUpICsgdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtZHJvcGRvd24tc2hhZG93OjAgMCAxcHggcmdiYSgxOCwyNSw5NywuMjQpLDAgMjRweCAyNHB4IHJnYmEoMTgsMjUsOTcsLjAzKSwwIDJweCAycHggcmdiYSgxOCwyNSw5NywuMDMpLDAgNHB4IDRweCByZ2JhKDE4LDI1LDk3LC4wMyksMCA4cHggOHB4IHJnYmEoMTgsMjUsOTcsLjAzKSwwIDE2cHggMTZweCByZ2JhKDE4LDI1LDk3LC4wMyk7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1kcm9wZG93bi1ib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1kcm9wZG93bi1ib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXJhZGl1cy1tYXgtbWQpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtZHJvcGRvd24tb3B0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItaW5zaWRlLWNvbnRyb2wtbGlnaHQtbGlnaHRlcik7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1kcm9wZG93bi1vcHRpb24tYm94LXNoYWRvdy1ob3ZlcjppbnNldCAzcHggMCAwIHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3Qtc2VhcmNoLWljb24tc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtaWNvbi1wb3NpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKSBjZW50ZXI7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtcGFkZGluZy1pbmxpbmU6Y2FsYyh2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtaWNvbi1zaXplKSArIHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1pbmxpbmUpICsgOHB4KSB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtYmxvY2stc2l6ZToxMzBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LWxnKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtbGluZS1oZWlnaHQ6MS41Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1wYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLXBhZGRpbmctYmxvY2spOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1jbG9zZS1pY29uLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1jbG9zZS1pY29uLWluc2V0LWJsb2NrLXN0YXJ0OmNhbGMoNTAlIC0gdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1jbG9zZS1pY29uLXNpemUpLzIpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1jbG9zZS1pY29uLWluc2V0LWlubGluZS1lbmQ6Y2FsYyh2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKS8yICsgMnB4KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3Qtc2VsZWN0ZWQtaXRlbS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1zZWxlY3RlZC1pdGVtLWJvcmRlci1yYWRpdXM6MzNweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3Qtc2VsZWN0ZWQtaXRlbS1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3Qtc2VsZWN0ZWQtaXRlbS1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1zZWxlY3RlZC1pdGVtLWZvbnQtd2VpZ2h0OjYwMDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3Qtc2VsZWN0ZWQtaXRlbS1yZW1vdmUtaWNvbi1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LWNvbnRyYXN0KX1odG1sW2Rpcj1ydGxdIC5nZm9ybS10aGVtZS0tZnJhbWV3b3Jrey0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtaWNvbi1wb3NpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKSBjZW50ZXI7LS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtaWNvbi1wb3NpdGlvbjpjYWxjKDEwMCUgLSB2YXIoLS1nZm9ybS10aGVtZS1wYWRkaW5nLWlubGluZSkpIGNlbnRlcn0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29ya3stLWdmb3JtLXRoZW1lLWNvbnRyb2wtdGV4dGFyZWEtYmxvY2stc2l6ZToxMzBweDstLWdmb3JtLXRoZW1lLWNvbnRyb2wtdGV4dGFyZWEtYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMtbWF4LWxnKTstLWdmb3JtLXRoZW1lLWNvbnRyb2wtdGV4dGFyZWEtbGluZS1oZWlnaHQ6MS41Oy0tZ2Zvcm0tdGhlbWUtY29udHJvbC10ZXh0YXJlYS1wYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLXBhZGRpbmctYmxvY2spOy0tZ2Zvcm0tdGhlbWUtY29udHJvbC10ZXh0YXJlYS1yZXNpemU6dmVydGljYWw7LS1nZm9ybS10aGVtZS1maWVsZC1kYXRlLWljb24tY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWZpZWxkLWRhdGUtaWNvbi1jb2xvci1ob3Zlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWljb24tY29sb3ItaG92ZXIpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtZGF0ZS1jdXN0b20taWNvbi1tYXgtYmxvY2stc2l6ZToyMHB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtZGF0ZS1jdXN0b20taWNvbi1tYXgtaW5saW5lLXNpemU6MjBweDstLWdmb3JtLXRoZW1lLWZpZWxkLWNob2ljZS1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctaG9yaXpvbnRhbC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtY2hvaWNlLW1ldGEtbWFyZ2luLWJsb2NrLXN0YXJ0OjRweDstLWdmb3JtLXRoZW1lLWZpZWxkLWNob2ljZS1tZXRhLXNwYWNpbmc6MTZweDstLWdmb3JtLXRoZW1lLWZpZWxkLWNob2ljZS1vdGhlci1jb250cm9sLW1heC1pbmxpbmUtc2l6ZToyNTZweDstLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9uLXNpemU6MTZweDstLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9uLWJvcmRlci1yYWRpdXM6NTAlOy0tZ2Zvcm0tdGhlbWUtZmllbGQtbGlzdC1idXR0b24tZm9udC1zaXplOjA7LS1nZm9ybS10aGVtZS1maWVsZC1saXN0LWJ1dHRvbi1wYWRkaW5nLWJsb2NrOjA7LS1nZm9ybS10aGVtZS1maWVsZC1saXN0LWJ1dHRvbi1wYWRkaW5nLWlubGluZTowOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtZGFyayk7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtZm9udC1zaXplOjE0cHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zdHlsZS1iYXNlKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtZm9udC13ZWlnaHQ6NjAwOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1sZXR0ZXItc3BhY2luZzowOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1saW5lLWhlaWdodDoxOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy10ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLW1hcmdpbi1ibG9jay1lbmQ6MjRweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtdGl0bGUtbWFyZ2luLWJsb2NrLWVuZDoxNnB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1ibHVlOiMyMDRjZTU7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWNvbG9yLWdyYXk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1ncmVlbjojMzFjNDhkOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1vcmFuZ2U6I2ZmNWExZjstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtY29sb3ItcmVkOiNjMDJiMGE7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWdyYWRpZW50LXNwcmluZzpsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCM5Y2Q3OTAsIzc2ZDdkYik7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWdyYWRpZW50LWJsdWVzOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsIzAwYzJmZiwjNzgzOGUyKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtZ3JhZGllbnQtcmFpbmJvdzpsaW5lYXItZ3JhZGllbnQoMjc0LjczZGVnLCM3NGI1NTEgLTUuNTglLCNmM2NhMzAgNDQuODElLCNjZDMwMmIgOTMuMTUlKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJsb2NrLXNpemU6MTBweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJvcmRlci1yYWRpdXM6MTAwcHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLXN0ZXAtZ2FwOjEycHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1iYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0KTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJhY2tncm91bmQtY29sb3ItY29tcGxldGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWxpZ2h0LWRhcmtlcik7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItY29sb3ItYWN0aXZlOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLWNvbG9yLWNvbXBsZXRlOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLXJhZGl1czo1MCU7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItc3R5bGU6c29saWQ7LS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItd2lkdGg6MnB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3Itb3V0c2lkZS1jb250cm9sLWRhcmspOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItY29sb3ItYWN0aXZlOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWNvbG9yKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWNvbG9yLWNvbXBsZXRlOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnktY29udHJhc3QpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItc2l6ZTozMnB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1pY29uLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1iYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYmFja2dyb3VuZC1jb2xvci1taXNtYXRjaDp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJhY2tncm91bmQtY29sb3Itc2hvcnQ6dHJhbnNwYXJlbnQ7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1iYWNrZ3JvdW5kLWNvbG9yLWJhZDp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJhY2tncm91bmQtY29sb3ItZ29vZDp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJhY2tncm91bmQtY29sb3Itc3Ryb25nOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLW1pc21hdGNoOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLXNob3J0OnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLWJhZDp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1jb2xvci1nb29kOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLXN0cm9uZzp0cmFuc3BhcmVudDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1yYWRpdXM6MDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1zdHlsZSk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1ib3JkZXItd2lkdGg6MDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1kYXJrKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWNvbG9yLW1pc21hdGNoOiNjMDJiMGE7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1zaG9ydDojYzAyYjBhOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtY29sb3ItYmFkOiNmZjVhMWY7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1nb29kOiM4YjZjMzI7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1zdHJvbmc6IzM5OWY0YjstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9udC1zaXplLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXN0eWxlLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb250LXdlaWdodC1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtbGV0dGVyLXNwYWNpbmctc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWxpbmUtaGVpZ2h0OjE7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1tYXJnaW4tYmxvY2stc3RhcnQ6MTZweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLXBhZGRpbmctYmxvY2s6MDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLXBhZGRpbmctaW5saW5lOjczcHggMDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLXRleHQtYWxpZ246bGVmdDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLXRyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtdHJhbnNpdGlvbi1jb250cm9sKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1saWdodCk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1taXNtYXRjaDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1taXNtYXRjaCk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1zaG9ydDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1zaG9ydCk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1iYWQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtY29sb3ItYmFkKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWdvb2Q6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtY29sb3ItZ29vZCk7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1zdHJvbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtY29sb3Itc3Ryb25nKTstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1ibG9jay1zaXplOjZweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1ib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWJvcmRlci1yYWRpdXMpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWNvbnRlbnQ6IiI7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItZGlzcGxheTppbmxpbmUtYmxvY2s7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemU6NjVweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1pbmxpbmUtc2l6ZS1ibGFuazowOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWlubGluZS1zaXplLW1pc21hdGNoOjY1cHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemUtc2hvcnQ6MjJweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1pbmxpbmUtc2l6ZS1iYWQ6MzdweDstLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1pbmxpbmUtc2l6ZS1nb29kOjQ2cHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemUtc3Ryb25nOjY1cHg7LS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5zZXQtYmxvY2stc3RhcnQ6NTAlOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWluc2V0LWlubGluZS1zdGFydDowOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLXBvc2l0aW9uOmFic29sdXRlOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLXRyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtdHJhbnNpdGlvbi1jb250cm9sKTstLWdmb3JtLXRoZW1lLWZpZWxkLXByb2R1Y3QtcXVhbnRpdHktaW5saW5lLXNpemU6MTUwcHg7LS1nZm9ybS10aGVtZS1maWVsZC1wcm9kdWN0LXF1YW50aXR5LW1hcmdpbi1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcm93LWdhcCk7LS1nZm9ybS10aGVtZS1maWVsZC1wcm9kdWN0LXByaWNlLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtY29sb3ItcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1yb3ctZ2FwOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tcm93LWdhcCk7LS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1idXR0b24taW5saW5lLWdhcDp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLWNvbC1nYXApOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItc2VwYXJhdG9yLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLW91dHNpZGUtY29udHJvbC1saWdodC1kYXJrZXIpOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItc2VwYXJhdG9yLXNpemU6MXB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQtZGFya2VyKTstLWdmb3JtLXRoZW1lLWZpZWxkLXJlcGVhdGVyLW5lc3RlZC1ib3JkZXItc2l6ZToxcHg7LS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1uZXN0ZWQtYm9yZGVyLXN0eWxlOnNvbGlkOy0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLXBhZGRpbmctaW5saW5lLXN0YXJ0OjIwcHg7LS1nZm9ybS10aGVtZS1maWVsZC1zZWN0aW9uLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1vdXRzaWRlLWNvbnRyb2wtbGlnaHQtZGFya2VyKTstLWdmb3JtLXRoZW1lLWZpZWxkLXNlY3Rpb24tYm9yZGVyLXN0eWxlOnNvbGlkOy0tZ2Zvcm0tdGhlbWUtZmllbGQtc2VjdGlvbi1ib3JkZXItd2lkdGg6MXB4Oy0tZ2Zvcm0tdGhlbWUtZmllbGQtc2VjdGlvbi1wYWRkaW5nLWJsb2NrLWVuZDo4cHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tYmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWRhbmdlci1yZ2IpLDAuMDMpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJvcmRlci1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWRhbmdlci1yZ2IpLDAuMjUpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJvcmRlci13aWR0aDoxcHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tYm9yZGVyLXN0eWxlOnNvbGlkOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItcmFkaXVzLW1heC1tZCk7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgxOCwyNSw5NywuMDc4KTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1kYW5nZXIpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWZvbnQtZmFtaWx5LXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1mb250LXNpemUtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tZ2FwOjhweDstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1saW5lLWhlaWdodDoxLjQzOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLW1hcmdpbi1ibG9jazowIHZhcigtLWdmb3JtLXRoZW1lLWZvcm0tcm93LWdhcCk7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tcGFkZGluZy1ibG9jazoyMHB4Oy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXBhZGRpbmctaW5saW5lOjE2cHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tY29sb3IpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tZm9udC1zaXplKTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWZvbnQtd2VpZ2h0OjUwMDstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1saW5lLWhlaWdodCk7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1nYXA6MTJweDstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWljb24tYmFja2dyb3VuZC1jb2xvcjpyZ2JhKHZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWRhbmdlci1yZ2IpLDAuMDUpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLWJvcmRlci13aWR0aDoycHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLWJvcmRlci1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tYm9yZGVyLXN0eWxlKTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWljb24tYm9yZGVyLXJhZGl1czo1MCU7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWNvbG9yKTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWljb24tZm9udC1zaXplOjE4cHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLXNpemU6MjBweDstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LWJsb2NrLXN0YXJ0OjRweDstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1jb2xvcik7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tZm9udC1mYW1pbHkpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktZm9udC13ZWlnaHQ6NDAwOy0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWxpbmUtaGVpZ2h0KTstLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LXBhZGRpbmctaW5saW5lOjQ4cHg7LS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1pdGVtLWxpbmstdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstLWdmb3JtLXRoZW1lLWZvcm0tc3Bpbm5lci1mb3JlZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtZm9ybS1zcGlubmVyLWJhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1nZm9ybS10aGVtZS1jb2xvci1wcmltYXJ5LXJnYiksMC4xKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6d2hlcmUoOm5vdChodG1sKTpub3QoaWZyYW1lKTpub3QoY2FudmFzKTpub3QoaW1nKTpub3Qoc3ZnKTpub3QodmlkZW8pCgkJOm5vdChzdmcgKik6bm90KHN5bWJvbCAqKQoJCTpub3QoLmdmb3JtLXRoZW1lX19uby1yZXNldC0tZWwpOm5vdCguZ2Zvcm0tdGhlbWVfX25vLXJlc2V0LS1jaGlsZHJlbiAqKTpub3QoLmdmb3JtX2hlYWRpbmcgKik6bm90KC5nZmllbGQtLXR5cGUtaHRtbCAqKTpub3QoLmdmaWVsZC0tdHlwZS1zZWN0aW9uICopOm5vdCguZm9ybV9zYXZlZF9tZXNzYWdlPiopOm5vdCguZm9ybV9zYXZlZF9tZXNzYWdlX3NlbnQ+Kik6bm90KC5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSAqKTpub3QoLndwLWVkaXRvci1jb250YWluZXIpOm5vdCgubWNlLXRpbnltY2UpOm5vdCgubWNlLXRpbnltY2UgKik6bm90KC53cC1lZGl0b3ItYXJlYSk6bm90KC5nZmllbGRfZGVzY3JpcHRpb24+Kik6bm90KC5nZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmU+Om5vdChzcGFuKSkpe2FsbDp1bnNldDtkaXNwbGF5OnJldmVydH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAqLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIDphZnRlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBhLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGJ1dHRvbntjdXJzb3I6cmV2ZXJ0fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIG1lbnUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgb2wsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdWx7bGlzdC1zdHlsZTpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGltZ3ttYXgtd2lkdGg6MTAwJX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdGV4dGFyZWF7d2hpdGUtc3BhY2U6cmV2ZXJ0fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIG1ldGVyey13ZWJraXQtYXBwZWFyYW5jZTpyZXZlcnQ7LW1vei1hcHBlYXJhbmNlOnJldmVydDthcHBlYXJhbmNlOnJldmVydH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6dW5zZXR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOjpwbGFjZWhvbGRlcntjb2xvcjp1bnNldH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6d2hlcmUoW2hpZGRlbl0pe2Rpc3BsYXk6bm9uZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6d2hlcmUoW2NvbnRlbnRlZGl0YWJsZV0pey1tb3otdXNlci1tb2RpZnk6cmVhZC13cml0ZTstd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7d29yZC13cmFwOmJyZWFrLXdvcmQ7LXdlYmtpdC1saW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIDp3aGVyZShbZHJhZ2dhYmxlPXRydWVdKXstd2Via2l0LXVzZXItZHJhZzplbGVtZW50fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9Y2hlY2tib3hdOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmV7aGVpZ2h0OmF1dG87bWFyZ2luLWJsb2NrOjA7bWFyZ2luLWlubGluZTowO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9Y2hlY2tib3hdOmFmdGVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9cmFkaW9dOmFmdGVye2NvbnRlbnQ6bm9uZX1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpibG9jaztmb250LWZhbWlseTpnZm9ybS1pY29ucy1vcmJpdGFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC4uLy4uLy4uL2ZvbnRzL2dmb3JtLWljb25zLW9yYml0YWwud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vLi4vLi4vZm9udHMvZ2Zvcm0taWNvbnMtb3JiaXRhbC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLi4vLi4vLi4vZm9udHMvZ2Zvcm0taWNvbnMtb3JiaXRhbC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLi4vLi4vLi4vZm9udHMvZ2Zvcm0taWNvbnMtb3JiaXRhbC5zdmcpIGZvcm1hdCgic3ZnIil9Lmdmb3JtLW9yYml0YWwtaWNvbntzcGVhazpuZXZlcjtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1mYW1pbHkpIWltcG9ydGFudDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxO3RleHQtdHJhbnNmb3JtOm5vbmV9Lmdmb3JtLW9yYml0YWwtaWNvbi0tYXJyb3ctYmFjazpiZWZvcmV7Y29udGVudDoiXGU5MjEifS5nZm9ybS1vcmJpdGFsLWljb24tLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGU5MWEifS5nZm9ybS1vcmJpdGFsLWljb24tLXNlbGVjdG9yOmJlZm9yZXtjb250ZW50OiJcZTkwZCJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZTkxNyJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxlOTE5In0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1jbG91ZC11cGxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZTkxMSJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxlOTEyIn0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZTkxNCJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGU5MTUifS5nZm9ybS1vcmJpdGFsLWljb24tLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTkxNiJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tYXJyb3ctbmFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTkxMyJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tYXJyb3ctc20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGU5MWYifS5nZm9ybS1vcmJpdGFsLWljb24tLWFycm93LXNtLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTkyMCJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tc2F2ZS1hczpiZWZvcmV7Y29udGVudDoiXGU5MTAifS5nZm9ybS1vcmJpdGFsLWljb24tLW1pbnVzLWFsdDpiZWZvcmV7Y29udGVudDoiXGU5MGUifS5nZm9ybS1vcmJpdGFsLWljb24tLXBsdXMtYWx0OmJlZm9yZXtjb250ZW50OiJcZTkwZiJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tZXllLW9mZjpiZWZvcmV7Y29udGVudDoiXGU5MGEifS5nZm9ybS1vcmJpdGFsLWljb24tLWV5ZTpiZWZvcmV7Y29udGVudDoiXGU5MDkifS5nZm9ybS1vcmJpdGFsLWljb24tLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGU5MGMifS5nZm9ybS1vcmJpdGFsLWljb24tLWNoZWNrLW1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlOTAwIn0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU5MGIifS5nZm9ybS1vcmJpdGFsLWljb24tLWNoZWNrLW1hcmstc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZTkwNSJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tZXhjbGFtYXRpb24tc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZTkwNiJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0taW5mb3JtYXRpb24tc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZTkwNyJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tcXVlc3Rpb24tbWFyay1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxlOTA4In0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlOTAxIn0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZTkwMiJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTkxYiJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0tY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGU5MWMifS5nZm9ybS1vcmJpdGFsLWljb24tLWNoZXZyb24tZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlOTFkIn0uZ2Zvcm0tb3JiaXRhbC1pY29uLS1jaGV2cm9uLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGU5MWUifS5nZm9ybS1vcmJpdGFsLWljb24tLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZTkwMyJ9Lmdmb3JtLW9yYml0YWwtaWNvbi0teC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxlOTE4In0uZ2Zvcm0tb3JiaXRhbC1pY29uLS14OmJlZm9yZXtjb250ZW50OiJcZTkwNCJ9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItbGV0dGVyLXNwYWNpbmcpO29wYWNpdHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wbGFjZWhvbGRlci1vcGFjaXR5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItbGV0dGVyLXNwYWNpbmcpO29wYWNpdHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wbGFjZWhvbGRlci1vcGFjaXR5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1zZWxlY3QgLmNob3Nlbi1zaW5nbGUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIHNlbGVjdCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3RbbXVsdGlwbGVdLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIHRleHRhcmVhLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKXstLWdmb3JtLXRoZW1lLWxvY2FsLWFwcGVhcmFuY2U6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1hcHBlYXJhbmNlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1iYWNrZ3JvdW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGg6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItd2lkdGgpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXN0eWxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1ibG9jay1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGgpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItaW5saW5lLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdyk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6YmxvY2s7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC1zdHlsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtd2VpZ2h0KTstLWdmb3JtLXRoZW1lLWxvY2FsLWlubGluZS1zaXplOjEwMCU7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxldHRlci1zcGFjaW5nKTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGluZS1oZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWluLWJsb2NrLXNpemU6YXV0bzstLWdmb3JtLXRoZW1lLWxvY2FsLW91dGxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1vdXRsaW5lKTstLWdmb3JtLXRoZW1lLWxvY2FsLW91dGxpbmUtb2Zmc2V0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtb3V0bGluZS1vZmZzZXQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1ibG9jayk7LS1nZm9ybS10aGVtZS1sb2NhbC10cmFuc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtdHJhbnNpdGlvbik7LXdlYmtpdC1ib3JkZXItYWZ0ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWJsb2NrLWVuZCk7LXdlYmtpdC1ib3JkZXItYmVmb3JlOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1ibG9jay1zdGFydCk7LXdlYmtpdC1ib3JkZXItZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kKTstd2Via2l0LWJvcmRlci1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItaW5saW5lLXN0YXJ0KTstd2Via2l0LWFwcGVhcmFuY2U6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYXBwZWFyYW5jZSk7LW1vei1hcHBlYXJhbmNlOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWFwcGVhcmFuY2UpO2FwcGVhcmFuY2U6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYXBwZWFyYW5jZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yKTtibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemUpO2JvcmRlci1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWJsb2NrLWVuZCk7Ym9yZGVyLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1ibG9jay1zdGFydCk7Ym9yZGVyLWlubGluZS1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1lbmQpO2JvcmRlci1pbmxpbmUtc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1zdGFydCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItcmFkaXVzKTtib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJveC1zaGFkb3cpO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yKTtkaXNwbGF5OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXkpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtZmFtaWx5KTtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplKTtmb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0KTtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGV0dGVyLXNwYWNpbmcpO2xpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0KTttYXJnaW4tYmxvY2s6MDttYXJnaW4taW5saW5lOjA7bWluLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWluLWJsb2NrLXNpemUpO291dGxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtb3V0bGluZSk7b3V0bGluZS1vZmZzZXQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtb3V0bGluZS1vZmZzZXQpO3BhZGRpbmctYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1ibG9jayk7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmUpO3RyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtdHJhbnNpdGlvbil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0taG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aTpob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tc2luZ2xlIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNpbmdsZTpob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbCAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0taG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2w6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlXTp3aGVyZSg6bm90KC5nZm9ybS10ZXh0LWlucHV0LXJlc2V0KSk6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0IC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3Q6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0taG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXTpob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayB0ZXh0YXJlYSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0taG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdGV4dGFyZWE6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0taG92ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1ob3ZlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItY29sb3ItaG92ZXIpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvci1ob3Zlcil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aTpmb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tc2luZ2xlIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNpbmdsZTpmb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbCAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2w6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlXTp3aGVyZSg6bm90KC5nZm9ybS10ZXh0LWlucHV0LXJlc2V0KSk6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0IC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3Q6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXTpmb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayB0ZXh0YXJlYSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdGV4dGFyZWE6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1mb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXN7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvci1mb2N1cyk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItY29sb3ItZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvci1mb2N1cyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tc2luZ2xlIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLXNpbmdsZTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbCAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2w6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlXTp3aGVyZSg6bm90KC5nZm9ybS10ZXh0LWlucHV0LXJlc2V0KSk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0IC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3Q6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayB0ZXh0YXJlYSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdGV4dGFyZWE6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbC0tZGlzYWJsZWQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5nZm9ybS10aGVtZS1maWVsZC1jb250cm9sLS1kaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmdmb3JtLXRoZW1lLWZpZWxkLWNvbnRyb2wtLWRpc2FibGVkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWR7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItY29sb3ItZGlzYWJsZWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvci1kaXNhYmxlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZF9lcnJvciAuZ2Zvcm0tdGhlbWUtZmllbGQtY29udHJvbCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX2Vycm9yIGlucHV0W3R5cGVdOndoZXJlKDpub3QoLmdmb3JtLXRleHQtaW5wdXQtcmVzZXQpKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX2Vycm9yIHNlbGVjdCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX2Vycm9yIHNlbGVjdFttdWx0aXBsZV0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZF9lcnJvciB0ZXh0YXJlYXstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1iYWNrZ3JvdW5kLWNvbG9yLWVycm9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvci1lcnJvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNvbG9yLWVycm9yKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtc20gaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1zbSBzZWxlY3QsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXNtIHNlbGVjdFttdWx0aXBsZV0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXNtIHRleHRhcmVhey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUtc20pOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLXNtKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbWQgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1tZCBzZWxlY3QsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLW1kIHNlbGVjdFttdWx0aXBsZV0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLW1kIHRleHRhcmVhey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUtbWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLW1kKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbGcgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1sZyBzZWxlY3QsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLWxnIHNlbGVjdFttdWx0aXBsZV0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLWxnIHRleHRhcmVhey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUtbGcpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLWxnKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUteGwgaW5wdXRbdHlwZV06d2hlcmUoOm5vdCguZ2Zvcm0tdGV4dC1pbnB1dC1yZXNldCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS14bCBzZWxlY3QsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXhsIHNlbGVjdFttdWx0aXBsZV0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXhsIHRleHRhcmVhey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUteGwpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zaXplLXhsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlXS5nZm9ybS10ZXh0LWlucHV0LXJlc2V0ey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTphdXRvOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yZWFkb25seS1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJlYWRvbmx5LWZvbnQtZmFtaWx5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJlYWRvbmx5LWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmVhZG9ubHktZm9udC1zdHlsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJlYWRvbmx5LWZvbnQtd2VpZ2h0KTstLWdmb3JtLXRoZW1lLWxvY2FsLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmVhZG9ubHktbGV0dGVyLXNwYWNpbmcpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yZWFkb25seS1saW5lLWhlaWdodCk7YmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplKTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7Zm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemUpO2ZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zdHlsZSk7Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWxldHRlci1zcGFjaW5nKTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntvcGFjaXR5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLW9wYWNpdHkpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1udW1iZXItc3Bpbi1idXR0b24tYXBwZWFyYW5jZSk7YXBwZWFyYW5jZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW51bWJlci1zcGluLWJ1dHRvbi1hcHBlYXJhbmNlKTtiYWNrZ3JvdW5kLWltYWdlOnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1udW1iZXIpO2JhY2tncm91bmQtcG9zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1udW1iZXItc3Bpbi1idXR0b24tYmFja2dyb3VuZC1wb3NpdGlvbik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW51bWJlci1zcGluLWJ1dHRvbi1iYWNrZ3JvdW5kLXNpemUpO2N1cnNvcjpwb2ludGVyO3dpZHRoOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbnVtYmVyLXNwaW4tYnV0dG9uLWlubGluZS1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayB0ZXh0YXJlYXstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC10ZXh0YXJlYS1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC10ZXh0YXJlYS1ibG9jay1zaXplKTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtdGV4dGFyZWEtbGluZS1oZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXRleHRhcmVhLXBhZGRpbmctYmxvY2spO3Jlc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXRleHRhcmVhLXJlc2l6ZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLndwLWVkaXRvci1jb250YWluZXJ7Ym9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC10ZXh0YXJlYS1ib3JkZXItcmFkaXVzKTtvdmVyZmxvdzpoaWRkZW59Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1jaGVja2JveF0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1yYWRpb117LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZGlzcGxheTppbmxpbmUtZ3JpZDstLWdmb3JtLXRoZW1lLWxvY2FsLWlubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWJsb2NrOjA7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWlubGluZTowO2FjY2VudC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWFjY2VudC1jb2xvcik7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvcGFjaXR5OjE7cGxhY2UtY29udGVudDpjZW50ZXJ9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3JlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9cmFkaW9dOmJlZm9yZXtvcGFjaXR5OjB9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpiZWZvcmV7b3BhY2l0eToxfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1zbSBpbnB1dFt0eXBlPWNoZWNrYm94XSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtc20gaW5wdXRbdHlwZT1yYWRpb117LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtc20pOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZS1zbSk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplLXNtKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbWQgaW5wdXRbdHlwZT1jaGVja2JveF0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLW1kIGlucHV0W3R5cGU9cmFkaW9dey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWxvY2FsLWlubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtbWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZS1tZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLWxnIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1sZyBpbnB1dFt0eXBlPXJhZGlvXXstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZS1sZyk7LS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplLWxnKTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUtbGcpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS14bCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUteGwgaW5wdXRbdHlwZT1yYWRpb117LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUteGwpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZS14bCk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1zaXplLXhsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWNoZWNrYm94XXstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaGVja2JveC1jaGVjay1ib3JkZXItcmFkaXVzKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmV7c3BlYWs6bmV2ZXI7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2UtY2hlY2stY29sb3IpO2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWNoZWNrYm94KTtmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hlY2tib3gtY2hlY2stc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTt0ZXh0LXRyYW5zZm9ybTpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmJlZm9yZXtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1jaGVjay1jb2xvci1kaXNhYmxlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXNtIGlucHV0W3R5cGU9Y2hlY2tib3hdOmJlZm9yZXtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaGVja2JveC1jaGVjay1zaXplLXNtKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbWQgaW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3Jle2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNoZWNrYm94LWNoZWNrLXNpemUtbWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1sZyBpbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmV7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hlY2tib3gtY2hlY2stc2l6ZS1sZyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXhsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmJlZm9yZXtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaGVja2JveC1jaGVjay1zaXplLXhsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPXJhZGlvXXstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1ib3JkZXItcmFkaXVzKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1jaGVjay1jb2xvcik7YmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJhZGlvLWNoZWNrLXNpemUpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1ib3JkZXItcmFkaXVzKTtjb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stY29udGVudCk7aW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPXJhZGlvXTpkaXNhYmxlZDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWNob2ljZS1jaGVjay1jb2xvci1kaXNhYmxlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXNtIGlucHV0W3R5cGU9cmFkaW9dOmJlZm9yZXtibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS1zbSk7aW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplLXNtKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbWQgaW5wdXRbdHlwZT1yYWRpb106YmVmb3Jle2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplLW1kKTtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJhZGlvLWNoZWNrLXNpemUtbWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1sZyBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmV7YmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXJhZGlvLWNoZWNrLXNpemUtbGcpO2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS1sZyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLXhsIGlucHV0W3R5cGU9cmFkaW9dOmJlZm9yZXtibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcmFkaW8tY2hlY2stc2l6ZS14bCk7aW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1yYWRpby1jaGVjay1zaXplLXhsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3Q6d2hlcmUoOm5vdChbbXVsdGlwbGVdKSl7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1wYWRkaW5nLWlubGluZSk7YmFja2dyb3VuZC1pbWFnZTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtc2VsZWN0KTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWljb24tcG9zaXRpb24pO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtaWNvbi1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1tcy1leHBhbmQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIHNlbGVjdFttdWx0aXBsZV17LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtYmxvY2stc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtYm9yZGVyLXJhZGl1cyk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LWxpbmUtaGVpZ2h0KTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1wYWRkaW5nLWJsb2NrKTtvdmVyZmxvdy15OmF1dG99Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgc2VsZWN0W211bHRpcGxlXSBvcHRpb246Y2hlY2tlZHtiYWNrZ3JvdW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbG9yLWluc2lkZS1jb250cm9sLWxpZ2h0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGV7YmFja2dyb3VuZC1pbWFnZTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtc2VsZWN0KTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWljb24tcG9zaXRpb24pO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtaWNvbi1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1zaW5nbGUgLmNob3Nlbi1zaW5nbGUgc3Bhbnstd2Via2l0LW1hcmdpbi1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3Qtc2VhcmNoLWljb24tc2l6ZSk7bWFyZ2luLWlubGluZS1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3Qtc2VhcmNoLWljb24tc2l6ZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1zZWxlY3QgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGFiYnIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1zZWxlY3QgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2luZ2xlIGRpdiBie2JhY2tncm91bmQtaW1hZ2U6bm9uZSFpbXBvcnRhbnR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1zZWxlY3QgLmNob3Nlbi1jb250YWluZXItc2luZ2xlLmNob3Nlbi1jb250YWluZXItYWN0aXZlIC5jaG9zZW4tc2luZ2xlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xley0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJhY2tncm91bmQtY29sb3ItZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWZvY3VzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3gtc2hhZG93LWZvY3VzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3ItZm9jdXMpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZS5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZS5jaG9zZW4td2l0aC1kcm9wIC5jaG9zZW4tc2luZ2xle2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItcmFkaXVzKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1yYWRpdXMpO2JvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJvcmRlci1jb2xvci1mb2N1cyk7Ym94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJveC1zaGFkb3ctZm9jdXMpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLXNpbmdsZSAuY2hvc2VuLXNlYXJjaHtwYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLXBhZGRpbmctYmxvY2spIDA7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1zZWxlY3QgLmNob3Nlbi1jb250YWluZXItc2luZ2xlIC5jaG9zZW4tc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtcGFkZGluZy1pbmxpbmUpO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXNlYXJjaCkhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3Qtc2VhcmNoLWljb24tcG9zaXRpb24pO2JhY2tncm91bmQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1zZWFyY2gtaWNvbi1zaXplKSFpbXBvcnRhbnR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aXstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6YXV0bzstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1ib3JkZXItcmFkaXVzKTtwYWRkaW5nLWlubGluZTowfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtbXVsdGlzZWxlY3QgLmNob3Nlbi1jb250YWluZXItbXVsdGkuY2hvc2VuLWNvbnRhaW5lci1hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm9yZGVyLWNvbG9yLWZvY3VzKTtib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYm94LXNoYWRvdy1mb2N1cyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aS5jaG9zZW4tY29udGFpbmVyLWFjdGl2ZSAuY2hvc2VuLWNob2ljZXN7Ym94LXNoYWRvdzpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtbXVsdGlzZWxlY3QgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2Vze2FsaWduLWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyB3cmFwO2dhcDpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLXBhZGRpbmctYmxvY2spLzIpO21pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNpemUpIC0gMnB4KTtwYWRkaW5nLWJsb2NrOjRweDtwYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XS5jaG9zZW4tc2VhcmNoLWlucHV0e2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBsYWNlaG9sZGVyLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGxhY2Vob2xkZXItbGV0dGVyLXNwYWNpbmcpO29wYWNpdHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wbGFjZWhvbGRlci1vcGFjaXR5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyAuc2VhcmNoLWNob2ljZStsaS5zZWFyY2gtZmllbGQgaW5wdXRbdHlwZT10ZXh0XS5jaG9zZW4tc2VhcmNoLWlucHV0e2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY29sb3ItZm9jdXMpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGV0dGVyLXNwYWNpbmcpO29wYWNpdHk6MX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNle2FsaWduLXNlbGY6ZmxleC1zdGFydDtiYWNrZ3JvdW5kOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LXNlbGVjdGVkLWl0ZW0tYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LXNlbGVjdGVkLWl0ZW0tYm9yZGVyLXJhZGl1cyk7Ym94LXNoYWRvdzpub25lO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3Qtc2VsZWN0ZWQtaXRlbS1jb2xvcik7ZmxleC1zaHJpbms6MDtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1zZWxlY3RlZC1pdGVtLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1zZWxlY3RlZC1pdGVtLWZvbnQtd2VpZ2h0KTttYXJnaW46MDtwYWRkaW5nLWJsb2NrOjhweDtwYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKSBjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1pbmxpbmUpKjEuMjUgKyB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LWNsb3NlLWljb24tc2l6ZSkpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtbXVsdGlzZWxlY3QgLmNob3Nlbi1jb250YWluZXItbXVsdGkgLmNob3Nlbi1jaG9pY2VzIGxpLnNlYXJjaC1jaG9pY2UgLnNlYXJjaC1jaG9pY2UtY2xvc2V7YmFja2dyb3VuZDpub25lO2hlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LWNsb3NlLWljb24tc2l6ZSk7aW5zZXQtYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1tdWx0aXNlbGVjdC1jbG9zZS1pY29uLWluc2V0LWJsb2NrLXN0YXJ0KTtpbnNldC1pbmxpbmUtZW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtY2xvc2UtaWNvbi1pbnNldC1pbmxpbmUtZW5kKTtvcGFjaXR5OjcwJTt0cmFuc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLXRyYW5zaXRpb24pO3dpZHRoOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbXVsdGlzZWxlY3QtY2xvc2UtaWNvbi1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmJlZm9yZXtzcGVhazpuZXZlcjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LXNlbGVjdGVkLWl0ZW0tcmVtb3ZlLWljb24tY29sb3IpO2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWNhbmNlbCk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1mb250LWZhbWlseSkhaW1wb3J0YW50O2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLW11bHRpc2VsZWN0LWNsb3NlLWljb24tc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7aGVpZ2h0OjEwMCU7bGluZS1oZWlnaHQ6MTt0ZXh0LXRyYW5zZm9ybTpub25lO3dpZHRoOjEwMCV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1tdWx0aXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lci1tdWx0aSAuY2hvc2VuLWNob2ljZXMgbGkuc2VhcmNoLWNob2ljZSAuc2VhcmNoLWNob2ljZS1jbG9zZTpmb2N1cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyLW11bHRpIC5jaG9zZW4tY2hvaWNlcyBsaS5zZWFyY2gtY2hvaWNlIC5zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye29wYWNpdHk6MX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tZHJvcCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLWRyb3B7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJhY2tncm91bmQtY29sb3IpO2JvcmRlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1kcm9wZG93bi1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtZHJvcGRvd24tYm9yZGVyLXJhZGl1cyk7Ym94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1kcm9wZG93bi1zaGFkb3cpO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWJsb2NrOjA7cGFkZGluZy1pbmxpbmU6MDt0b3A6Y2FsYygxMDAlICsgOHB4KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHN7bWFyZ2luLWJsb2NrOjA7bWFyZ2luLWlubGluZTowO3BhZGRpbmctYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtcGFkZGluZy1ibG9jayk7cGFkZGluZy1pbmxpbmU6MH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGl7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jb2xvcik7cGFkZGluZzp2YXIoLS1nZm9ybS10aGVtZS1wYWRkaW5nLWJsb2NrKSB2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLW11bHRpc2VsZWN0IC5jaG9zZW4tY29udGFpbmVyIC5jaG9zZW4tcmVzdWx0cyBsaS5oaWdobGlnaHRlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkuaGlnaGxpZ2h0ZWR7YmFja2dyb3VuZDpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtZHJvcGRvd24tb3B0aW9uLWJhY2tncm91bmQtY29sb3ItaG92ZXIpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtbXVsdGlzZWxlY3QgLmNob3Nlbi1jb250YWluZXIgLmNob3Nlbi1yZXN1bHRzIGxpLnJlc3VsdC1zZWxlY3RlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXNlbGVjdCAuY2hvc2VuLWNvbnRhaW5lciAuY2hvc2VuLXJlc3VsdHMgbGkucmVzdWx0LXNlbGVjdGVke2JhY2tncm91bmQ6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWRyb3Bkb3duLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWRyb3Bkb3duLW9wdGlvbi1ib3gtc2hhZG93LWhvdmVyKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX2xpc3RfZ3JvdXBfaXRlbTpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLWxhYmVsey0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6ZmxleDstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1mYW1pbHktcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXNpemUtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1zdHlsZS1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxldHRlci1zcGFjaW5nLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1saW5lLWhlaWdodC1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLW1hcmdpbi1ibG9jazowOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWlubGluZTowO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yKTtkaXNwbGF5OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXkpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtZmFtaWx5KTtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplKTtmb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZyk7bGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQpO21hcmdpbi1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1tYXJnaW4tYmxvY2spO21hcmdpbi1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWlubGluZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtY29sb3Itc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6YmxvY2s7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtZmFtaWx5LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXNpemUtc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXN0eWxlLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtd2VpZ2h0LXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxldHRlci1zcGFjaW5nLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxpbmUtaGVpZ2h0LXNlY29uZGFyeSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLXN1YnstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtY29sb3ItdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZGlzcGxheTpibG9jazstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1mYW1pbHktdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1zaXplLXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXN0eWxlLXRlcnRpYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtdGVydGlhcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1sZXR0ZXItc3BhY2luZy10ZXJ0aWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxpbmUtaGVpZ2h0LXRlcnRpYXJ5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtc3ViLWxhcmdley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1jb2xvci1xdWF0ZXJuYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6aW5saW5lLWJsb2NrOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LWZhbWlseS1xdWF0ZXJuYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc2l6ZS1xdWF0ZXJuYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXN0eWxlLXF1YXRlcm5hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1sYWJlbC1mb250LXdlaWdodC1xdWF0ZXJuYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWxldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGV0dGVyLXNwYWNpbmctcXVhdGVybmFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWxpbmUtaGVpZ2h0LXF1YXRlcm5hcnkpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC1sYWJlbD4uZ2ZpZWxkX3JlcXVpcmVke2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtY29sb3ItcmVxdWlyZWQpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC1mYW1pbHktcmVxdWlyZWQpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc2l6ZS1yZXF1aXJlZCk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWxhYmVsLWZvbnQtc3R5bGUtcmVxdWlyZWQpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtZm9udC13ZWlnaHQtcmVxdWlyZWQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGV0dGVyLXNwYWNpbmctcmVxdWlyZWQpO2xpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtbGFiZWwtbGluZS1oZWlnaHQtcmVxdWlyZWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfZGVzY3JpcHRpb257LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC1mYW1pbHkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC1zaXplKTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXN0eWxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tZm9udC13ZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1sZXR0ZXItc3BhY2luZyk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7ZGlzcGxheTpibG9jaztmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXN0eWxlKTtmb250LXdlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXdlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGV0dGVyLXNwYWNpbmcpO2xpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tY29sb3ItZXJyb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LWZhbWlseS1lcnJvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXNpemUtZXJyb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWZvbnQtc3R5bGUtZXJyb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kZXNjcmlwdGlvbi1mb250LXdlaWdodC1lcnJvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRlc2NyaXB0aW9uLWxldHRlci1zcGFjaW5nLWVycm9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGVzY3JpcHRpb24tbGluZS1oZWlnaHQtZXJyb3IpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSksLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKXstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6YXV0bzstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLXJhZGl1cyk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1zdHlsZS1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci13aWR0aDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItd2lkdGgtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGgpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93KTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sdW1uLWdhcDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWdhcCk7LS1nZm9ybS10aGVtZS1sb2NhbC1jdXJzb3I6cG9pbnRlcjstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6aW5saW5lLWZsZXg7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc3R5bGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tZm9udC13ZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1mb250LWZhbWlseSk7LS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZTphdXRvOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGV0dGVyLXNwYWNpbmc6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tbGV0dGVyLXNwYWNpbmcpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tbGluZS1oZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWluLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4taW5saW5lLXNpemU6YXV0bzstLWdmb3JtLXRoZW1lLWxvY2FsLW9wYWNpdHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tb3BhY2l0eSk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctYmxvY2spOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tcGFkZGluZy1pbmxpbmUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtdGV4dC1kZWNvcmF0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXRleHQtZGVjb3JhdGlvbik7LS1nZm9ybS10aGVtZS1sb2NhbC10ZXh0LXRyYW5zZm9ybTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi10ZXh0LXRyYW5zZm9ybSk7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otY29sdW1uLWdhcDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2x1bW4tZ2FwKTtjb2x1bW4tZ2FwOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWNvbHVtbi1nYXApO2N1cnNvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jdXJzb3IpO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWlubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLW1pbi1pbmxpbmUtc2l6ZSk7b3BhY2l0eTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1vcGFjaXR5KTt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC10ZXh0LWRlY29yYXRpb24pO3RleHQtZGVjb3JhdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC10ZXh0LWRlY29yYXRpb24pO3RleHQtdHJhbnNmb3JtOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLXRleHQtdHJhbnNmb3JtKTt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbik7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtdHJhbnNpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi10cmFuc2l0aW9uKTtzcGVhazpuZXZlcjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7Y29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb250ZW50KTtmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTt0ZXh0LXRyYW5zZm9ybTpub25lO3RyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtdHJhbnNpdGlvbil9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1ob3Zlci1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWJveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1ob3Zlcik7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1ob3Zlci1wcmltYXJ5KX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlcjpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlcjphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpob3ZlcjpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyLXByaW1hcnkpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1c3stLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cy1wcmltYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItZm9jdXMtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3ctZm9jdXMpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItZm9jdXMtcHJpbWFyeSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1czpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1czpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6Zm9jdXM6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1mb2N1cy1wcmltYXJ5KX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWR7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQtcHJpbWFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93LWRpc2FibGVkKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWRpc2FibGVkLXByaW1hcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY3Vyc29yOmRlZmF1bHQ7LS1nZm9ybS10aGVtZS1sb2NhbC1vcGFjaXR5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpOmRpc2FibGVkOmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZGlzYWJsZWQtcHJpbWFyeSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5LC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnksLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnksLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5ey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLXN0eWxlLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGg6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLXdpZHRoLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1zZWNvbmRhcnkpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5IC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5IC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5IC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5IC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3Itc2Vjb25kYXJ5KX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXItc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXItc2Vjb25kYXJ5KTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWhvdmVyLXNlY29uZGFyeSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlcjphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlcjpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlcjphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlcjpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlcjphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXI6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1ob3Zlci1zZWNvbmRhcnkpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1cywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1c3stLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cy1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1mb2N1cy1zZWNvbmRhcnkpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItZm9jdXMtc2Vjb25kYXJ5KX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1czpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpmb2N1czpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLWZvY3VzLXNlY29uZGFyeSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWRpc2FibGVkLXNlY29uZGFyeSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1kaXNhYmxlZC1zZWNvbmRhcnkpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnk6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2Vjb25kYXJ5OmRpc2FibGVkOmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZGlzYWJsZWQtc2Vjb25kYXJ5KX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGV7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3Itc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3Itc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci13aWR0aDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItd2lkdGgtc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3Itc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbHVtbi1nYXA6MDstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLW1pbi1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXNpemUtc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLW1pbi1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWJsb2NrOjA7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWlubGluZTowfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZSAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGUgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3Itc2ltcGxlKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItaG92ZXItc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3JkZXItY29sb3ItaG92ZXItc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm94LXNoYWRvdy1ob3Zlci1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tY29sb3ItaG92ZXItc2ltcGxlKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlcjpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlcjphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXIgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlciAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpob3ZlcjpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uLWNvbG9yLWhvdmVyLXNpbXBsZSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3Vzey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYm9yZGVyLWNvbG9yLWZvY3VzLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3gtc2hhZG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJveC1zaGFkb3ctZm9jdXMtc2ltcGxlKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWNvbG9yLWZvY3VzLXNpbXBsZSl9Lmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgOndoZXJlKDpub3QoLm1jZS1zcGxpdGJ0bikpPmJ1dHRvbjpub3QoW2lkKj1tY2V1X10pOm5vdCgubWNlLW9wZW4pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1czpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1czpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpmb2N1cyAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmZvY3VzOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6Zm9jdXM6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24taWNvbi1jb2xvci1mb2N1cy1zaW1wbGUpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZHstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZC1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWJvcmRlci1jb2xvci1kaXNhYmxlZC1zaW1wbGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm94LXNoYWRvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1ib3gtc2hhZG93LWRpc2FibGVkLXNpbXBsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1jb2xvci1kaXNhYmxlZC1zaW1wbGUpfS5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5nZm9ybS10aGVtZS1idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciAuZ2Zvcm0tdGhlbWUtYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkOmFmdGVyLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIDp3aGVyZSg6bm90KC5tY2Utc3BsaXRidG4pKT5idXR0b246bm90KFtpZCo9bWNldV9dKTpub3QoLm1jZS1vcGVuKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBidXR0b24uYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGJ1dHRvbi5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSkuYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQ6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0pOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQ6YWZ0ZXIsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKTp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZCAuZGFzaGljb25zLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaW1wbGU6ZGlzYWJsZWQgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dFt0eXBlPXN1Ym1pdF0uYnV0dG9uLmdmb3JtX2J1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpbXBsZTpkaXNhYmxlZDphZnRlciwuZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIGlucHV0W3R5cGU9c3VibWl0XS5idXR0b24uZ2Zvcm1fYnV0dG9uOndoZXJlKDpub3QoLmdmb3JtLXRoZW1lLW5vLWZyYW1ld29yaykpLmdmb3JtLXRoZW1lLWJ1dHRvbi0tc2ltcGxlOmRpc2FibGVkOmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb24tY29sb3ItZGlzYWJsZWQtc2ltcGxlKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUteHMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUteHMsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhzLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhzey0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS14cyk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4tYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLXhzKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLXhzKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXNtLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtc20sLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXNtLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtc20sLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXNtLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXNtLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXNtey0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS1zbSk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4tYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLXNtKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLXNtKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLW1kLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtbWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLW1kLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtbWQsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLW1kLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLW1kLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLW1key0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS1tZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4tYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLW1kKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLW1kKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLWxnLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtbGcsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLWxnLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUtbGcsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLWxnLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLWxnLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLWxney0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS1sZyk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4tYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLWxnKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLWxnKX0uZ2Zvcm0tdGhlbWUuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybV93cmFwcGVyIC5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhsLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgLmdmb3JtLXRoZW1lLWJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUteGwsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciA6d2hlcmUoOm5vdCgubWNlLXNwbGl0YnRuKSk+YnV0dG9uOm5vdChbaWQqPW1jZXVfXSk6bm90KC5tY2Utb3Blbik6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhsLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgYnV0dG9uLmJ1dHRvbjp3aGVyZSg6bm90KC5nZm9ybS10aGVtZS1uby1mcmFtZXdvcmspKS5nZm9ybS10aGVtZS1idXR0b24tLXNpemUteGwsLmdmb3JtLXRoZW1lLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm1fd3JhcHBlciBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdKS5idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhsLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxbdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSk6d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhsLC5nZm9ybS10aGVtZS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtX3dyYXBwZXIgaW5wdXRbdHlwZT1zdWJtaXRdLmJ1dHRvbi5nZm9ybV9idXR0b246d2hlcmUoOm5vdCguZ2Zvcm0tdGhlbWUtbm8tZnJhbWV3b3JrKSkuZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zaXplLXhsey0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWZvbnQtc2l6ZS14bCk7LS1nZm9ybS10aGVtZS1sb2NhbC1taW4tYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1zaXplLXhsKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLXBhZGRpbmctaW5saW5lLXhsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWZpbGVdey0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXBhZGRpbmctaW5saW5lKTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWZpbGVdOmhvdmVyOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLWlubGluZS1lbmQtY29sb3ItaG92ZXIpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1jb2xvci1ob3Zlcil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1maWxlXTpmb2N1czo6ZmlsZS1zZWxlY3Rvci1idXR0b257LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1cyk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItaW5saW5lLWVuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yLWZvY3VzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tY29sb3ItZm9jdXMpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIGlucHV0W3R5cGU9ZmlsZV06ZGlzYWJsZWQ6OmZpbGUtc2VsZWN0b3ItYnV0dG9uey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1lbmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1ib3JkZXItaW5saW5lLWVuZC1jb2xvci1kaXNhYmxlZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWNvbG9yLWRpc2FibGVkKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWZpbGVdOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLWlubGluZS1lbmQtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1lbmQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1ib3JkZXItaW5saW5lLWVuZC1zdHlsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItaW5saW5lLWVuZC13aWR0aDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1pbmxpbmUtZW5kLXdpZHRoKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kLXdpZHRoKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItaW5saW5lLWVuZC1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWlubGluZS1lbmQtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi1jb2xvcik7LXdlYmtpdC1ib3JkZXItZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3IpO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtib3JkZXItZW5kLXN0YXJ0LXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWJvcmRlci1yYWRpdXMpO2JvcmRlci1pbmxpbmUtZW5kOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1pbmxpbmUtZW5kKTtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tYm9yZGVyLXJhZGl1cyk7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tZm9udC13ZWlnaHQpO2luc2V0LWJsb2NrLXN0YXJ0OmNhbGModmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1ib3JkZXItd2lkdGgpKi0xKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWxldHRlci1zcGFjaW5nKTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtYnV0dG9uLWxpbmUtaGVpZ2h0KTttYXJnaW4taW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tbWFyZ2luLWlubGluZSk7cGFkZGluZy1ibG9jazowO3BhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tcGFkZGluZy1pbmxpbmUpO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tdGV4dC1kZWNvcmF0aW9uKTt0ZXh0LWRlY29yYXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi10ZXh0LWRlY29yYXRpb24pO3RleHQtdHJhbnNmb3JtOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1idXR0b24tdGV4dC10cmFuc2Zvcm0pO3RyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWJ1dHRvbi10cmFuc2l0aW9uKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdmb3JtX2Ryb3BfYXJlYSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdmb3JtX2Ryb3BfYXJlYXstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1ibG9jay1zaXplKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLWJvcmRlci1zdHlsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtZm9udC13ZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1saW5lLWhlaWdodCk7LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLXBhZGRpbmctaW5saW5lKTstLWdmb3JtLXRoZW1lLWxvY2FsLXBhZGRpbmctYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1wYWRkaW5nLWJsb2NrKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdmb3JtX2Ryb3BfYXJlYTpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5nZm9ybV9kcm9wX2FyZWE6YmVmb3Jle3NwZWFrOm5ldmVyOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtbWFyZ2luLWFmdGVyOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaWNvbi1tYXJnaW4tYmxvY2stZW5kKTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLWljb24tY29sb3IpO2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWZpbGUtdXBsb2FkKTtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1mYW1pbHkpIWltcG9ydGFudDtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLWRyb3AtYXJlYS1pY29uLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaWNvbi1tYXJnaW4tYmxvY2stZW5kKTt0ZXh0LXRyYW5zZm9ybTpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2Zvcm1fZHJvcF9pbnN0cnVjdGlvbnMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5nZm9ybV9kcm9wX2luc3RydWN0aW9uc3std2Via2l0LW1hcmdpbi1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtZHJvcC1hcmVhLWluc3RydWN0aW9ucy1tYXJnaW4tYmxvY2stZW5kKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1kcm9wLWFyZWEtaW5zdHJ1Y3Rpb25zLW1hcmdpbi1ibG9jay1lbmQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXdfbGlzdCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3X2xpc3R7LXdlYmtpdC1tYXJnaW4tYmVmb3JlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWFyZWEtbWFyZ2luLWJsb2NrLXN0YXJ0KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1hcmVhLWdhcCk7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWFyZWEtbWFyZ2luLWJsb2NrLXN0YXJ0KTt3aWR0aDoxMDAlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXdfbGlzdDplbXB0eSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3X2xpc3Q6ZW1wdHl7LXdlYmtpdC1tYXJnaW4tYmVmb3JlOjA7bWFyZ2luLWJsb2NrLXN0YXJ0OjB9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Zm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZm9udC1zaXplKTtmb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZm9udC1zdHlsZSk7Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1mb250LXdlaWdodCk7Z2FwOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtZ2FwKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLWxldHRlci1zcGFjaW5nKTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLWxpbmUtaGVpZ2h0KTtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9maWxlbmFtZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9maWxlbmFtZXstd2Via2l0LXBhZGRpbmctZW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbmFtZS1wYWRkaW5nLWlubGluZS1lbmQpO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbmFtZS1jb2xvcik7bGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXByZXZpZXctZmlsZS1uYW1lLWxpbmUtaGVpZ2h0KTtvdmVyZmxvdzp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLW5hbWUtb3ZlcmZsb3cpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLW5hbWUtcGFkZGluZy1pbmxpbmUtZW5kKTt0ZXh0LW92ZXJmbG93OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtbmFtZS10ZXh0LW92ZXJmbG93KTt3aGl0ZS1zcGFjZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtcHJldmlldy1maWxlLW5hbWUtd2hpdGUtc3BhY2UpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX2ZpbGVzaXplLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX2ZpbGVzaXple2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS1wcmV2aWV3LWZpbGUtc2l6ZS1jb2xvcil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3MsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3N7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy11aS1nYXApfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzOmFmdGVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzOmFmdGVye3NwZWFrOm5ldmVyOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1idXR0b24taWNvbi1zaXplKTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJ1dHRvbi1pY29uLWNvbG9yLWNvbXBsZXRlKTtjb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1maWxlLXVwbG9hZC1jb21wbGV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1mYW1pbHkpIWltcG9ydGFudDtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1idXR0b24taWNvbi1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJ1dHRvbi1pY29uLXNpemUpO2xpbmUtaGVpZ2h0OjE7bWluLWlubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWljb24tc2l6ZSk7b3BhY2l0eTowO3RleHQtdHJhbnNmb3JtOm5vbmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NfY29tcGxldGU6YWZ0ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NfY29tcGxldGU6YWZ0ZXJ7b3BhY2l0eToxfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyX3Byb2dyZXNzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX3Byb2dyZXNzYmFyX3Byb2dyZXNze2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItYmxvY2stc2l6ZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJhci1ib3JkZXItcmFkaXVzKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9wcm9ncmVzc2JhciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9wcm9ncmVzc2JhcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtY29sb3IpO2lubGluZS1zaXplOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3MsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcHJvZ3Jlc3NiYXJfcHJvZ3Jlc3N7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWNvbG9yLWxvYWRpbmcpO2lubGluZS1zaXplOjElO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXItdHJhbnNpdGlvbil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfcGVyY2VudCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9wZXJjZW50e2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtdGV4dC1jb2xvcik7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtdGV4dC1mb250LXNpemUpO21pbi1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLXRleHQtbWluLWlubGluZS1zaXplKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9jYW5jZWwsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2Zvcm1fZGVsZXRlX2ZpbGUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfY2FuY2VsLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmb3JtX2RlbGV0ZV9maWxle2luc2V0LWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWluc2V0LWJsb2NrLXN0YXJ0KTtpbnNldC1pbmxpbmUtZW5kOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLWluc2V0LWlubGluZS1lbmQpO3Bvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYnV0dG9uLXBvc2l0aW9uKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZm9ybV9kZWxldGVfZmlsZSAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZm9ybV9kZWxldGVfZmlsZSAuZGFzaGljb25zOmJlZm9yZXstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb246dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWZpbGUtdXBsb2FkLXJlbW92ZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1maWxldXBsb2FkIC5naW5wdXRfcHJldmlldyAuZ2ZpZWxkX2ZpbGV1cGxvYWRfY2FuY2VsLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX2NhbmNlbHstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWZpbGUtdXBsb2FkLXByb2dyZXNzLWJ1dHRvbi1mb250LXNpemUtY2FuY2VsKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWZpbGV1cGxvYWQgLmdpbnB1dF9wcmV2aWV3IC5nZmllbGRfZmlsZXVwbG9hZF9jYW5jZWw6YmVmb3JlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtZmlsZXVwbG9hZCAuZ2lucHV0X3ByZXZpZXcgLmdmaWVsZF9maWxldXBsb2FkX2NhbmNlbDpiZWZvcmV7LS1nZm9ybS10aGVtZS1jb250cm9sLWJ1dHRvbi1pY29uOnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1maWxlLXVwbG9hZC1jYW5jZWwpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXJ7LXdlYmtpdC1tYXJnaW4tYmVmb3JlOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLW1hcmdpbi1ibG9jay1zdGFydCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWJvcmRlci1yYWRpdXMpO2JveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItYm94LXNoYWRvdyk7ZGlzcGxheTpub25lO2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLWlubGluZS1zaXplKTttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItbWFyZ2luLWJsb2NrLXN0YXJ0KTtwYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXBhZGRpbmctYmxvY2spO3BhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXBhZGRpbmctaW5saW5lKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlcnthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleDttYXJnaW4tYmxvY2s6dW5zZXQ7bWFyZ2luLWlubGluZTp1bnNldDtwYWRkaW5nLWJsb2NrOjA7cGFkZGluZy1pbmxpbmU6MDtwb3NpdGlvbjp1bnNldH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2e2FsaWduLWl0ZW1zOmNlbnRlcjtibG9jay1zaXplOmF1dG87Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6bm9uZTtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1oZWFkZXItaWNvbnMtaW5saW5lLXNpemUpO2luc2V0OnVuc2V0O2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItaGVhZGVyLWljb25zLWNvbG9yKTtzcGVhazpuZXZlcjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1mYW1pbHkpIWltcG9ydGFudDtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItaGVhZGVyLWljb25zLWZvbnQtc2l6ZSk7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7aW5zZXQ6dW5zZXQ7bGluZS1oZWlnaHQ6MTt0ZXh0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTp1bnNldH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jle2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWRhdGVwaWNrZXItbGVmdCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0e29yZGVyOjF9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0OmJlZm9yZXtjb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1kYXRlcGlja2VyLXJpZ2h0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXI6YmVmb3JlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlcjpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci1oZWFkZXItaWNvbnMtY29sb3ItaG92ZXIpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGV7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRpdGxlLWNvbG9yKTtkaXNwbGF5OmZsZXg7ZmxleDphdXRvO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10aXRsZS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRpdGxlLWZvbnQtd2VpZ2h0KTtnYXA6OHB4O2xpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRpdGxlLWxpbmUtaGVpZ2h0KTttYXJnaW4tYmxvY2s6MDttYXJnaW4taW5saW5lOjhweH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhcntiYWNrZ3JvdW5kLWltYWdlOnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1zZWxlY3QpO2JhY2tncm91bmQtcG9zaXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1zZWxlY3QtaWNvbi1wb3NpdGlvbik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXNlbGVjdC1pY29uLXNpemUpO2JveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm94LXNoYWRvdyk7ZmxleDphdXRvO2lubGluZS1zaXplOmF1dG87bWFyZ2luOjA7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmUpO3RleHQtYWxpZ246dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItZHJvcGRvd24tdGV4dC1hbGlnbil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZXstd2Via2l0LW1hcmdpbi1hZnRlcjowOy13ZWJraXQtbWFyZ2luLWJlZm9yZToxNnB4O21hcmdpbi1ibG9jay1lbmQ6MDttYXJnaW4tYmxvY2stc3RhcnQ6MTZweH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIHRkLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgdGh7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbG9yKTtibG9jay1zaXplOjQwcHg7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodCk7cGFkZGluZy1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLXBhZGRpbmcpO3BhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtcGFkZGluZyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZSB0aHstLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtaGVhZC1jZWxsLWJsb2NrLXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWhlYWQtY2VsbC1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtaGVhZC1jZWxsLWZvbnQtd2VpZ2h0KTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWhlYWQtY2VsbC1saW5lLWhlaWdodCk7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgdGR7LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtYmxvY2stc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1mb250LXdlaWdodCk7LS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWxpbmUtaGVpZ2h0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIHRkOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgdGQgYSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIHRkIHNwYW57LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyOjA7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtY29sb3IpO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3IpO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1ib3JkZXItcmFkaXVzKTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7ZGlzcGxheTpmbGV4O2lubGluZS1zaXplOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIHRkOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpOm5vdCgudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSkgYTpob3ZlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWJhY2tncm91bmQtY29sb3ItaG92ZXIpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWNvbG9yLWhvdmVyKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIHRkOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpOm5vdCgudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSkgYTpmb2N1c3stLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYm9yZGVyKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIC51aS1zdGF0ZS1kaXNhYmxlZCBhLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgLnVpLXN0YXRlLWRpc2FibGVkIHNwYW57LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1jb2xvci1kaXNhYmxlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZSAudWktZGF0ZXBpY2tlci10b2RheSBhLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgLnVpLWRhdGVwaWNrZXItdG9kYXkgc3BhbnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWJhY2tncm91bmQtY29sb3ItaG92ZXIpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWNvbG9yLWhvdmVyKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIC51aS1kYXRlcGlja2VyLXRvZGF5LnVpLXN0YXRlLWRpc2FibGVkIGEsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZSAudWktZGF0ZXBpY2tlci10b2RheS51aS1zdGF0ZS1kaXNhYmxlZCBzcGFuey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWRhdGUtZGF0ZXBpY2tlci10YWJsZS1jZWxsLWNvbnRlbnQtY29sb3ItZGlzYWJsZWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgLnVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkgYSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyIHRhYmxlIC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IHNwYW57LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1jb2xvci1zZWxlY3RlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZSAudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheSBhOmZvY3VzLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgLnVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkgYTpob3ZlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtZGF0ZS1kYXRlcGlja2VyLXRhYmxlLWNlbGwtY29udGVudC1jb2xvci1zZWxlY3RlZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlciB0YWJsZSAudWktZGF0ZXBpY2tlci1jdXJyZW50LWRheS51aS1zdGF0ZS1kaXNhYmxlZCBhLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIgdGFibGUgLnVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkudWktc3RhdGUtZGlzYWJsZWQgc3BhbnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWJhY2tncm91bmQtY29sb3ItZGlzYWJsZWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1kYXRlLWRhdGVwaWNrZXItdGFibGUtY2VsbC1jb250ZW50LWNvbG9yLWRpc2FibGVkKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItcnRsIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1ydGwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtc2VsZWN0LWljb24tcG9zaXRpb24pfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsudWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmJlZm9yZXt0cmFuc2Zvcm06bm9uZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay51aS1kYXRlcGlja2VyLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jle2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLWRhdGVwaWNrZXItcmlnaHQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmV7Y29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtZGF0ZXBpY2tlci1sZWZ0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkOndoZXJlKDpub3QoLmdmaWVsZC0tdHlwZS1odG1sKTpub3QoLmdmaWVsZC0tdHlwZS1zZWN0aW9uKSl7bGluZS1oZWlnaHQ6MX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWFkZHJlc3MgLmNvcHlfdmFsdWVzX29wdGlvbl9jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtZ3JpZDtnYXA6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY2hvaWNlLW1ldGEtc3BhY2luZykgMDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtY2hvaWNlLXNpemUpLG1heC1jb250ZW50KSBhdXRvfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtYWRkcmVzcyAuY29weV92YWx1ZXNfb3B0aW9uX2NvbnRhaW5lcisuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzey13ZWJraXQtbWFyZ2luLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yb3ctZ2FwKTttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcm93LWdhcCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdmaWVsZF9jaGVja2JveCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX3JhZGlve2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWNob2ljZS1zcGFjaW5nKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX2NoZWNrYm94PjpsYXN0LWNoaWxkOndoZXJlKDpub3QoLmdjaG9pY2UpKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX3JhZGlvPjpsYXN0LWNoaWxkOndoZXJlKDpub3QoLmdjaG9pY2UpKXstd2Via2l0LW1hcmdpbi1iZWZvcmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtY2hvaWNlLW1ldGEtbWFyZ2luLWJsb2NrLXN0YXJ0KTthbGlnbi1zZWxmOnNlbGYtc3RhcnQ7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWNob2ljZS1tZXRhLW1hcmdpbi1ibG9jay1zdGFydCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdjaG9pY2UsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdpbnB1dF9jb250YWluZXJfY29uc2VudHtkaXNwbGF5OmlubGluZS1ncmlkO2dhcDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1jaG9pY2UtbWV0YS1zcGFjaW5nKSAwO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgodmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1jaG9pY2Utc2l6ZSksbWF4LWNvbnRlbnQpIGF1dG99Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdjaG9pY2UgYnIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdpbnB1dF9jb250YWluZXJfY29uc2VudCBicntkaXNwbGF5Om5vbmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdjaG9pY2Vfb3RoZXJfY29udHJvbHstLWdmb3JtLXRoZW1lLWxvY2FsLWlubGluZS1zaXplOmF1dG87Z3JpZC1jb2x1bW46c3BhbiAyO21heC1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1jaG9pY2Utb3RoZXItY29udHJvbC1tYXgtaW5saW5lLXNpemUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZGF0ZXBpY2tlciAuZ2lucHV0X2NvbnRhaW5lcl9kYXRle2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZGF0ZXBpY2tlciAuZ2lucHV0X2NvbnRhaW5lcl9kYXRlIGlucHV0ey0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6YXV0b30uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS1pbnB1dC10eXBlLWRhdGVwaWNrZXIuZ2ZpZWxkLS1kYXRlcGlja2VyLWRlZmF1bHQtaWNvbiAuZ2lucHV0X2NvbnRhaW5lcl9kYXRlIGltZy51aS1kYXRlcGlja2VyLXRyaWdnZXJ7ZGlzcGxheTpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZGF0ZXBpY2tlci5nZmllbGQtLWRhdGVwaWNrZXItZGVmYXVsdC1pY29uIC5naW5wdXRfY29udGFpbmVyX2RhdGU6YWZ0ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1kYXRlLWljb24tY29sb3IpO3NwZWFrOm5ldmVyOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtbWFyZ2luLXN0YXJ0OmNhbGModmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1wYWRkaW5nLWlubGluZSkqLTEpO2NvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yKTtjb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1kYXRlcGlja2VyKTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWljb24tZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtpbnNldC1ibG9jay1zdGFydDowO2luc2V0LWlubGluZS1zdGFydDowO2xpbmUtaGVpZ2h0OjE7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1pbmxpbmUpKi0xKTtwb2ludGVyLWV2ZW50czpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfWh0bWxbZGlyPXJ0bF0gLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1kYXRlcGlja2VyLmdmaWVsZC0tZGF0ZXBpY2tlci1kZWZhdWx0LWljb24gLmdpbnB1dF9jb250YWluZXJfZGF0ZTphZnRlcntvcmRlcjoxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZGF0ZXBpY2tlci5nZmllbGQtLWRhdGVwaWNrZXItZGVmYXVsdC1pY29uIC5naW5wdXRfY29udGFpbmVyX2RhdGU6Zm9jdXM6YWZ0ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1kYXRlcGlja2VyLmdmaWVsZC0tZGF0ZXBpY2tlci1kZWZhdWx0LWljb24gLmdpbnB1dF9jb250YWluZXJfZGF0ZTpob3ZlcjphZnRlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWRhdGUtaWNvbi1jb2xvci1ob3Zlcil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0taW5wdXQtdHlwZS1kYXRlcGlja2VyLmdmaWVsZC0tZGF0ZXBpY2tlci1jdXN0b20taWNvbiAuZ2lucHV0X2NvbnRhaW5lcl9kYXRlIGltZy51aS1kYXRlcGlja2VyLXRyaWdnZXJ7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6Y2FsYyh2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLXBhZGRpbmctaW5saW5lKSotMSk7bWFyZ2luLWlubGluZS1zdGFydDpjYWxjKHZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtcGFkZGluZy1pbmxpbmUpKi0xKTttYXgtYmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1kYXRlLWN1c3RvbS1pY29uLW1heC1ibG9jay1zaXplKTttYXgtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtZGF0ZS1jdXN0b20taWNvbi1tYXgtaW5saW5lLXNpemUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX1odG1sW2Rpcj1ydGxdIC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLWlucHV0LXR5cGUtZGF0ZXBpY2tlci5nZmllbGQtLWRhdGVwaWNrZXItY3VzdG9tLWljb24gLmdpbnB1dF9jb250YWluZXJfZGF0ZSBpbWcudWktZGF0ZXBpY2tlci10cmlnZ2Vye29yZGVyOjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS1pbnB1dC10eXBlLWxpc3QgYnV0dG9uLmFkZF9saXN0X2l0ZW0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS1pbnB1dC10eXBlLWxpc3QgYnV0dG9uLmRlbGV0ZV9saXN0X2l0ZW0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLWxpc3QgYnV0dG9uLmFkZF9saXN0X2l0ZW0sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLWxpc3QgYnV0dG9uLmRlbGV0ZV9saXN0X2l0ZW17LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9uLXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1saXN0LWJ1dHRvbi1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbHVtbi1nYXA6MDstLWdmb3JtLXRoZW1lLWxvY2FsLWZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1saXN0LWJ1dHRvbi1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtbGlzdC1idXR0b24tc2l6ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzowOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbGluZS1oZWlnaHQ6MTstLWdmb3JtLXRoZW1lLWxvY2FsLW1pbi1ibG9jay1zaXplOmF1dG87LS1nZm9ybS10aGVtZS1sb2NhbC1wYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLWxpc3QtYnV0dG9uLXBhZGRpbmctYmxvY2spOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtcGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtbGlzdC1idXR0b24tcGFkZGluZy1pbmxpbmUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0taW5wdXQtdHlwZS1saXN0IGJ1dHRvbi5hZGRfbGlzdF9pdGVtOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtbGlzdCBidXR0b24uYWRkX2xpc3RfaXRlbTpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1saXN0LWl0ZW0tYWRkKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLWlucHV0LXR5cGUtbGlzdCBidXR0b24uZGVsZXRlX2xpc3RfaXRlbTpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLWxpc3QgYnV0dG9uLmRlbGV0ZV9saXN0X2l0ZW06YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtbGlzdC1pdGVtLXJlbW92ZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3BhZ2Vfc3RlcHMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyX3dyYXBwZXJ7LXdlYmtpdC1tYXJnaW4tYWZ0ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1tYXJnaW4tYmxvY2stZW5kKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtbWFyZ2luLWJsb2NrLWVuZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyX3RpdGxlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9zdGVwX2xhYmVsLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9zdGVwX251bWJlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1mb250LWZhbWlseSk7LS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1mb250LXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWZvbnQtc3R5bGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1mb250LXdlaWdodCk7LS1nZm9ybS10aGVtZS1sb2NhbC1sZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWxldHRlci1zcGFjaW5nKTstLWdmb3JtLXRoZW1lLWxvY2FsLWxpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtbGluZS1oZWlnaHQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtdGV4dC10cmFuc2Zvcm06bm9uZTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7Zm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1mb250LXNpemUpO2ZvbnQtc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC1zdHlsZSk7Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtZm9udC13ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWxldHRlci1zcGFjaW5nKTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1saW5lLWhlaWdodCk7dGV4dC10cmFuc2Zvcm06dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtdGV4dC10cmFuc2Zvcm0pfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9wcm9ncmVzc2Jhcl90aXRsZXstd2Via2l0LW1hcmdpbi1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLXRpdGxlLW1hcmdpbi1ibG9jay1lbmQpO21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy10aXRsZS1tYXJnaW4tYmxvY2stZW5kKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZfcHJvZ3Jlc3NiYXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJvcmRlci1yYWRpdXMpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9wcm9ncmVzc2JhciBzcGFue2NsaXA6cmVjdCgwLDAsMCwwKTtib3JkZXI6MDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjFweH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZfcHJvZ3Jlc3NiYXIgLmdmX3Byb2dyZXNzYmFyX3BlcmNlbnRhZ2V7YmxvY2stc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1ibG9jay1zaXplKTtib3JkZXItcmFkaXVzOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJvcmRlci1yYWRpdXMpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9wcm9ncmVzc2JhciAucGVyY2VudGJhcl9ibHVle2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1ibHVlKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZfcHJvZ3Jlc3NiYXIgLnBlcmNlbnRiYXJfZ3JheXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtY29sb3ItZ3JheSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyIC5wZXJjZW50YmFyX2dyZWVue2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1ncmVlbil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyIC5wZXJjZW50YmFyX29yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2UtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtY29sb3Itb3JhbmdlKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZfcHJvZ3Jlc3NiYXIgLnBlcmNlbnRiYXJfcmVke2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1jb2xvci1yZWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9wcm9ncmVzc2JhciAucGVyY2VudGJhcl9zcHJpbmd7YmFja2dyb3VuZDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWdyYWRpZW50LXNwcmluZyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyIC5wZXJjZW50YmFyX2JsdWVze2JhY2tncm91bmQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy1iYXItYmFja2dyb3VuZC1ncmFkaWVudC1ibHVlcyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3Byb2dyZXNzYmFyIC5wZXJjZW50YmFyX3JhaW5ib3d7YmFja2dyb3VuZDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kLWdyYWRpZW50LXJhaW5ib3cpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9zdGVwe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtc3RlcC1nYXApO3Bvc2l0aW9uOnJlbGF0aXZlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9zdGVwX2xhYmVsey0tZ2Zvcm0tdGhlbWUtbG9jYWwtdGV4dC10cmFuc2Zvcm06dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1wcm9ncmVzcy10ZXh0LXRyYW5zZm9ybSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3N0ZXBfbnVtYmVyey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1iYWNrZ3JvdW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItcmFkaXVzKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWNvbG9yKTthbGlnbi1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3IpO2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItc2l6ZSk7Ym9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItcmFkaXVzKTtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcik7ZGlzcGxheTppbmxpbmUtZ3JpZDtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1zaXplKTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1zaXplKTtwbGFjZS1jb250ZW50OmNlbnRlcn0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zfc3RlcF9hY3RpdmUgLmdmX3N0ZXBfbnVtYmVyey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLWNvbG9yLWFjdGl2ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1jb2xvci1hY3RpdmUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZl9zdGVwX2NvbXBsZXRlZCAuZ2Zfc3RlcF9udW1iZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJhY2tncm91bmQtY29sb3ItY29tcGxldGUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJvcmRlci1jb2xvci1jb21wbGV0ZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1jb2xvci1jb21wbGV0ZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmX3N0ZXBfY29tcGxldGVkIC5nZl9zdGVwX251bWJlcjphZnRlcntzcGVhazpuZXZlcjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTthbGlnbi1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJhY2tncm91bmQtY29sb3ItY29tcGxldGUpO2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItc2l6ZSk7Ym9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYWdlLXN0ZXBzLW51bWJlci1ib3JkZXItY29sb3ItY29tcGxldGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItYm9yZGVyLXJhZGl1cyk7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFnZS1zdGVwcy1udW1iZXItY29sb3ItY29tcGxldGUpO2NvbnRlbnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXBhZ2UtbnVtYmVycy1jb21wbGV0ZSk7ZGlzcGxheTppbmxpbmUtZ3JpZDtmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtaWNvbi1mb250LXNpemUpO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2lubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhZ2Utc3RlcHMtbnVtYmVyLXNpemUpO2luc2V0LWJsb2NrLXN0YXJ0OjA7aW5zZXQtaW5saW5lLXN0YXJ0OjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoxO3BsYWNlLWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtdHJhbnNmb3JtOm5vbmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbiwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbiAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmFmdGVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmhvdmVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246aG92ZXIgLmRhc2hpY29ucywuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmhvdmVyIC5kYXNoaWNvbnM6YmVmb3JlLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246aG92ZXI6YWZ0ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbjpob3ZlcjpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1jb250cm9sLWljb24tY29sb3ItaG92ZXIpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246Zm9jdXMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbjpmb2N1cyAuZGFzaGljb25zLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246Zm9jdXMgLmRhc2hpY29uczpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbjpmb2N1czphZnRlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmZvY3VzOmJlZm9yZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWNvbnRyb2wtaWNvbi1jb2xvci1mb2N1cyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbjpkaXNhYmxlZCwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmRpc2FibGVkIC5kYXNoaWNvbnMsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsuZ2Zvcm0tdGhlbWUuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkLS10eXBlLXBhc3N3b3JkIGJ1dHRvbi5nZm9ybV9zaG93X3Bhc3N3b3JkLmdmb3JtLXRoZW1lLWJ1dHRvbjpkaXNhYmxlZCAuZGFzaGljb25zOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uOmRpc2FibGVkOmFmdGVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrLmdmb3JtLXRoZW1lLmdmb3JtX3dyYXBwZXIgLmdmaWVsZC0tdHlwZS1wYXNzd29yZCBidXR0b24uZ2Zvcm1fc2hvd19wYXNzd29yZC5nZm9ybS10aGVtZS1idXR0b246ZGlzYWJsZWQ6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29udHJvbC1pY29uLWNvbG9yLWRpc2FibGVkKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uIC5kYXNoaWNvbnMuZGFzaGljb25zLXZpc2liaWxpdHk6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWNvbnRyb2wtcGFzc3dvcmQtaGlkZGVuKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS5nZm9ybV93cmFwcGVyIC5nZmllbGQtLXR5cGUtcGFzc3dvcmQgYnV0dG9uLmdmb3JtX3Nob3dfcGFzc3dvcmQuZ2Zvcm0tdGhlbWUtYnV0dG9uIC5kYXNoaWNvbnMuZGFzaGljb25zLWhpZGRlbjpiZWZvcmV7LS1nZm9ybS10aGVtZS1sb2NhbC1jb250ZW50OnZhcigtLWdmb3JtLXRoZW1lLWljb24tY29udHJvbC1wYXNzd29yZC12aXNpYmxlKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3Roey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1iYWNrZ3JvdW5kLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1ib3JkZXItY29sb3IpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1zdHlsZSk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGg6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLXdpZHRoKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItd2lkdGgpIHZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWNvbG9yKTstd2Via2l0LW1hcmdpbi1iZWZvcmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtbWFyZ2luLWJsb2NrLXN0YXJ0KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3IpO2JvcmRlcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLXJhZGl1cyk7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWZvbnQtZmFtaWx5KTtmb250LXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtZm9udC1zaXplKTtmb250LXN0eWxlOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWZvbnQtc3R5bGUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWZvbnQtd2VpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1sZXR0ZXItc3BhY2luZyk7bGluZS1oZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtbGluZS1oZWlnaHQpO21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1tYXJnaW4tYmxvY2stc3RhcnQpO3BhZGRpbmctYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtcGFkZGluZy1ibG9jayk7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtcGFkZGluZy1pbmxpbmUpO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtdGV4dC1hbGlnbik7dHJhbnNpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC10cmFuc2l0aW9uKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoOmFmdGVyLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGg6YmVmb3Jley0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvcik7LS1nZm9ybS10aGVtZS1sb2NhbC1ibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1ibG9jay1zaXplKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXMpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItY29udGVudCk7LS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemUpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5zZXQtYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWluc2V0LWJsb2NrLXN0YXJ0KTstLWdmb3JtLXRoZW1lLWxvY2FsLWluc2V0LWlubGluZS1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5zZXQtaW5saW5lLXN0YXJ0KTstLWdmb3JtLXRoZW1lLWxvY2FsLXBvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1wb3NpdGlvbik7LS1nZm9ybS10aGVtZS1sb2NhbC10cmFuc2Zvcm06dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLXRyYW5zZm9ybSk7LS1nZm9ybS10aGVtZS1sb2NhbC10cmFuc2l0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yKTtibG9jay1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLWJsb2NrLXNpemUpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLXJhZGl1cyk7Y29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1jb250ZW50KTtkaXNwbGF5OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1kaXNwbGF5KTtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZSk7aW5zZXQtYmxvY2stc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5zZXQtYmxvY2stc3RhcnQpO2luc2V0LWlubGluZS1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1sb2NhbC1pbnNldC1pbmxpbmUtc3RhcnQpO3Bvc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLXBvc2l0aW9uKTt0cmFuc2Zvcm06dmFyKC0tZ2Zvcm0tdGhlbWUtbG9jYWwtdHJhbnNmb3JtKTt0cmFuc2l0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWxvY2FsLXRyYW5zaXRpb24pfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGg6YWZ0ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemUtYmxhbmspOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtdHJhbnNpdGlvbjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItdHJhbnNpdGlvbil9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aC5taXNtYXRjaHstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYmFja2dyb3VuZC1jb2xvci1taXNtYXRjaCk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLW1pc21hdGNoKTstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWNvbG9yLW1pc21hdGNoKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLm1pc21hdGNoOmFmdGVyey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1taXNtYXRjaCk7LS1nZm9ybS10aGVtZS1sb2NhbC1pbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItaW5saW5lLXNpemUtbWlzbWF0Y2gpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGguc2hvcnR7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJhY2tncm91bmQtY29sb3Itc2hvcnQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1jb2xvci1zaG9ydCk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1zaG9ydCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZF9wYXNzd29yZF9zdHJlbmd0aC5zaG9ydDphZnRlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3Itc2hvcnQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWlubGluZS1zaXplLXNob3J0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLmJhZHstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYmFja2dyb3VuZC1jb2xvci1iYWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtYm9yZGVyLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWJvcmRlci1jb2xvci1iYWQpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtY29sb3ItYmFkKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLmJhZDphZnRlcnstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWJhY2tncm91bmQtY29sb3ItYmFkKTstLWdmb3JtLXRoZW1lLWxvY2FsLWlubGluZS1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1pbmxpbmUtc2l6ZS1iYWQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGguZ29vZHstLWdmb3JtLXRoZW1lLWxvY2FsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYmFja2dyb3VuZC1jb2xvci1nb29kKTstLWdmb3JtLXRoZW1lLWxvY2FsLWJvcmRlci1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1ib3JkZXItY29sb3ItZ29vZCk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1nb29kKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkX3Bhc3N3b3JkX3N0cmVuZ3RoLmdvb2Q6YWZ0ZXJ7LS1nZm9ybS10aGVtZS1sb2NhbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXBhc3N3b3JkLXN0cmVuZ3RoLWluZGljYXRvci1iYWNrZ3JvdW5kLWNvbG9yLWdvb2QpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWlubGluZS1zaXplLWdvb2QpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGguc3Ryb25ney0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1iYWNrZ3JvdW5kLWNvbG9yLXN0cm9uZyk7LS1nZm9ybS10aGVtZS1sb2NhbC1ib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtYm9yZGVyLWNvbG9yLXN0cm9uZyk7LS1nZm9ybS10aGVtZS1sb2NhbC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1jb2xvci1zdHJvbmcpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfcGFzc3dvcmRfc3RyZW5ndGguc3Ryb25nOmFmdGVyey0tZ2Zvcm0tdGhlbWUtbG9jYWwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1wYXNzd29yZC1zdHJlbmd0aC1pbmRpY2F0b3ItYmFja2dyb3VuZC1jb2xvci1zdHJvbmcpOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yLWlubGluZS1zaXplLXN0cm9uZyl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1wcm9kdWN0IC5naW5wdXRfcHJvZHVjdF9wcmljZXstLWdmb3JtLXRoZW1lLWxvY2FsLWNvbG9yOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXByb2R1Y3QtcHJpY2UtY29sb3IpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcHJvZHVjdCBpbnB1dFt0eXBlXS5naW5wdXRfcHJvZHVjdF9wcmljZXstLWdmb3JtLXRoZW1lLWxvY2FsLWRpc3BsYXk6aW5saW5lLWJsb2NrfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcHJvZHVjdCAuZ2lucHV0X3F1YW50aXR5ey0tZ2Zvcm0tdGhlbWUtbG9jYWwtaW5saW5lLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcHJvZHVjdC1xdWFudGl0eS1pbmxpbmUtc2l6ZSk7LXdlYmtpdC1tYXJnaW4tYWZ0ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcHJvZHVjdC1xdWFudGl0eS1tYXJnaW4tYmxvY2stZW5kKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXByb2R1Y3QtcXVhbnRpdHktbWFyZ2luLWJsb2NrLWVuZCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1wcm9kdWN0IC5naW5wdXRfY29udGFpbmVyX3Byb2R1Y3RfY2FsY3VsYXRpb24sLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1wcm9kdWN0IC5naW5wdXRfY29udGFpbmVyX3NpbmdsZXByb2R1Y3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXByb2R1Y3QgLmdpbnB1dF9jb250YWluZXJfcHJvZHVjdF9jYWxjdWxhdGlvbiAuZ2lucHV0X3Byb2R1Y3RfcHJpY2Vfd3JhcHBlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXByb2R1Y3QgLmdpbnB1dF9jb250YWluZXJfc2luZ2xlcHJvZHVjdCAuZ2lucHV0X3Byb2R1Y3RfcHJpY2Vfd3JhcHBlcntvcmRlcjoyfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcmVwZWF0ZXIgLmdmaWVsZF9yZXBlYXRlcl9jZWxsOm5vdCg6Zmlyc3QtY2hpbGQpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcmVwZWF0ZXIgLmdmaWVsZF9yZXBlYXRlcl9pdGVtKy5nZmllbGRfcmVwZWF0ZXJfaXRlbXstd2Via2l0LW1hcmdpbi1iZWZvcmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItcm93LWdhcCk7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXJlcGVhdGVyLXJvdy1nYXApfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcmVwZWF0ZXIgLmdmaWVsZF9yZXBlYXRlcl9pdGVtKy5nZmllbGRfcmVwZWF0ZXJfaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLXJlcGVhdGVyIC5nZmllbGRfcmVwZWF0ZXJfaXRlbSsuZ2ZpZWxkX3JlcGVhdGVyX2l0ZW06YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItc2VwYXJhdG9yLWNvbG9yKTtibG9jay1zaXplOjFweDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MTAwJTtpbnNldC1ibG9jay1zdGFydDpjYWxjKDBweCAtIHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXJlcGVhdGVyLXJvdy1nYXApLzIpO3Bvc2l0aW9uOmFic29sdXRlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcmVwZWF0ZXIgLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zey13ZWJraXQtbWFyZ2luLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLWZvb3Rlci1tYXJnaW4tYmxvY2stc3RhcnQpO21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLWZvb3Rlci1tYXJnaW4tYmxvY2stc3RhcnQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtcmVwZWF0ZXIgLmdmaWVsZF9yZXBlYXRlcl9idXR0b25zIC5nZm9ybS10aGVtZS1idXR0b24uZ2Zvcm0tdGhlbWUtYnV0dG9uLS1zZWNvbmRhcnkuYWRkX3JlcGVhdGVyX2l0ZW17LXdlYmtpdC1tYXJnaW4tZW5kOnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXJlcGVhdGVyLWJ1dHRvbi1pbmxpbmUtZ2FwKTttYXJnaW4taW5saW5lLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1idXR0b24taW5saW5lLWdhcCl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1yZXBlYXRlciAuZ2ZpZWxkX3JlcGVhdGVyX3dyYXBwZXJ7LXdlYmtpdC1ib3JkZXItc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLWJvcmRlci1zaXplKSB2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1uZXN0ZWQtYm9yZGVyLXN0eWxlKSB2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1uZXN0ZWQtYm9yZGVyLWNvbG9yKTstd2Via2l0LXBhZGRpbmctc3RhcnQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLXBhZGRpbmctaW5saW5lLXN0YXJ0KTtib3JkZXItaW5saW5lLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXJlcGVhdGVyLW5lc3RlZC1ib3JkZXItc2l6ZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLWJvcmRlci1zdHlsZSkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtcmVwZWF0ZXItbmVzdGVkLWJvcmRlci1jb2xvcik7Ym9yZGVyLWlubGluZS1zdGFydC1zdHlsZTp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1uZXN0ZWQtYm9yZGVyLXN0eWxlKTtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1yZXBlYXRlci1uZXN0ZWQtcGFkZGluZy1pbmxpbmUtc3RhcnQpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGQtLXR5cGUtc2VjdGlvbnstd2Via2l0LWJvcmRlci1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1zZWN0aW9uLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtc2VjdGlvbi1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXNlY3Rpb24tYm9yZGVyLWNvbG9yKTstd2Via2l0LXBhZGRpbmctYWZ0ZXI6dmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtc2VjdGlvbi1wYWRkaW5nLWJsb2NrLWVuZCk7Ym9yZGVyLWJsb2NrLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1zZWN0aW9uLWJvcmRlci13aWR0aCkgdmFyKC0tZ2Zvcm0tdGhlbWUtZmllbGQtc2VjdGlvbi1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWZpZWxkLXNlY3Rpb24tYm9yZGVyLWNvbG9yKTtwYWRkaW5nLWJsb2NrLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1maWVsZC1zZWN0aW9uLXBhZGRpbmctYmxvY2stZW5kKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1ib3JkZXItd2lkdGgpIHZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1ib3JkZXItc3R5bGUpIHZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJvcmRlci1yYWRpdXMpO2JveC1zaGFkb3c6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWJveC1zaGFkb3cpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1nYXApO21hcmdpbi1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tbWFyZ2luLWJsb2NrKTtwYWRkaW5nLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1wYWRkaW5nLWJsb2NrKTtwYWRkaW5nLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tcGFkZGluZy1pbmxpbmUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyAuZ2Zvcm1fc3VibWlzc2lvbl9lcnJvcntjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1jb2xvcik7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctZm9udC13ZWlnaHQpO2dhcDp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1nYXApO2xpbmUtaGVpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWxpbmUtaGVpZ2h0KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgLmdmb3JtLWljb257c3BlYWs6bmV2ZXI7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7YWxpZ24tY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLWJhY2tncm91bmQtY29sb3IpO2Jsb2NrLXNpemU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1zaXplKTtib3JkZXItY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1ib3JkZXItcmFkaXVzKTtib3JkZXItc3R5bGU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1ib3JkZXItc3R5bGUpO2JvcmRlci13aWR0aDp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLWJvcmRlci13aWR0aCk7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLWhlYWRpbmctaWNvbi1jb2xvcik7ZGlzcGxheTppbmxpbmUtZ3JpZDtmb250LWZhbWlseTp2YXIoLS1nZm9ybS10aGVtZS1pY29uLWZvbnQtZmFtaWx5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1oZWFkaW5nLWljb24tZm9udC1zaXplKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtpbmxpbmUtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24taGVhZGluZy1pY29uLXNpemUpO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MTtwbGFjZS1jb250ZW50OmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTpub25lfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyAuZ2Zvcm0taWNvbjpiZWZvcmV7Y29udGVudDp2YXIoLS1nZm9ybS10aGVtZS1pY29uLXRvb2x0aXAtZXJyb3IpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBvbHtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1jb2xvcik7Zm9udC1mYW1pbHk6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktZm9udC1mYW1pbHkpO2ZvbnQtc2l6ZTp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1saW5lLWhlaWdodCk7bGlzdC1zdHlsZS10eXBlOmRpc2M7bWFyZ2luLWJsb2NrOjA7bWFyZ2luLWlubGluZTowO3BhZGRpbmctaW5saW5lOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1wYWRkaW5nLWlubGluZSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtX3ZhbGlkYXRpb25fZXJyb3JzIG9sIGxpK2xpey13ZWJraXQtbWFyZ2luLWJlZm9yZTo0cHg7bWFyZ2luLWJsb2NrLXN0YXJ0OjRweH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgb2wgYXtjb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS1jb2xvcik7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktaXRlbS1saW5rLXRleHQtZGVjb3JhdGlvbik7dGV4dC1kZWNvcmF0aW9uOnZhcigtLWdmb3JtLXRoZW1lLWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LWl0ZW0tbGluay10ZXh0LWRlY29yYXRpb24pfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgLmdmb3JtX3N1Ym1pc3Npb25fZXJyb3J7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOnJvd30uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgb2x7cGFkZGluZy1pbmxpbmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS12YWxpZGF0aW9uLXN1bW1hcnktcGFkZGluZy1pbmxpbmUpfX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fcmVxdWlyZWRfbGVnZW5kIC5nZmllbGRfcmVxdWlyZWR7Y29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtY29sb3ItZGFuZ2VyKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tbG9hZGVye2JvcmRlci1ibG9jay1lbmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1zcGlubmVyLWZvcmVncm91bmQtY29sb3IpO2JvcmRlci1ibG9jay1zdGFydC1jb2xvcjp2YXIoLS1nZm9ybS10aGVtZS1mb3JtLXNwaW5uZXItYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWlubGluZS1lbmQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1zcGlubmVyLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6dmFyKC0tZ2Zvcm0tdGhlbWUtZm9ybS1zcGlubmVyLWZvcmVncm91bmQtY29sb3IpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybV9zYXZlX2xpbmsgc3Zne2Rpc3BsYXk6bm9uZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm1fc2F2ZV9saW5rOmJlZm9yZXstLWdmb3JtLXRoZW1lLWNvbnRyb2wtYnV0dG9uLWljb246dmFyKC0tZ2Zvcm0tdGhlbWUtaWNvbi1jb250cm9sLXNhdmUtY29udGludWUpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5maWVsZF9kZXNjcmlwdGlvbl9iZWxvdyAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdpbnB1dF9jb3VudGVyX3RpbnltY2UpOm5vdCguZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlKSl7LXdlYmtpdC1tYXJnaW4tYmVmb3JlOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpO21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1zcGFjaW5nKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZSguZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlKXstd2Via2l0LW1hcmdpbi1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1zcGFjaW5nKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5maWVsZF9kZXNjcmlwdGlvbl9iZWxvdy5nZmllbGQtLXR5cGUtY2hvaWNlIC5nZmllbGRfZGVzY3JpcHRpb246d2hlcmUoOm5vdCguZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSkpey13ZWJraXQtbWFyZ2luLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1jaG9pY2UtZmllbGQtc3BhY2luZyk7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLWNob2ljZS1maWVsZC1zcGFjaW5nKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZShbY2xhc3M9Z2ZpZWxkX2Rlc2NyaXB0aW9uXSwuZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlKXstd2Via2l0LW1hcmdpbi1hZnRlcjp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1zcGFjaW5nKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5maWVsZF9kZXNjcmlwdGlvbl9hYm92ZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoW2NsYXNzPWdmaWVsZF9kZXNjcmlwdGlvbl0pOm5vdCguZ2lucHV0X2NvdW50ZXJfdGlueW1jZSk6bm90KC5nZmllbGRfY3JlZGl0Y2FyZF93YXJuaW5nX21lc3NhZ2UpOm5vdCguZ2ZpZWxkX2NvbnNlbnRfZGVzY3JpcHRpb24pKXstd2Via2l0LW1hcmdpbi1iZWZvcmU6dmFyKC0tZ2Zvcm0tdGhlbWUtZGVzY3JpcHRpb24tc3BhY2luZyk7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5maWVsZF9kZXNjcmlwdGlvbl9hYm92ZS5nZmllbGQtLXR5cGUtY2hvaWNlIC5nZmllbGRfZGVzY3JpcHRpb246d2hlcmUoOm5vdCguZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSkpey13ZWJraXQtbWFyZ2luLWFmdGVyOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLWNob2ljZS1maWVsZC1zcGFjaW5nKTttYXJnaW4tYmxvY2stZW5kOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLWNob2ljZS1maWVsZC1zcGFjaW5nKX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAubGVmdF9sYWJlbCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdpbnB1dF9jb3VudGVyX3RpbnltY2UpOm5vdCguZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlKSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLnJpZ2h0X2xhYmVsIC5nZmllbGRfZGVzY3JpcHRpb246d2hlcmUoOm5vdCguZ2lucHV0X2NvdW50ZXJfdGlueW1jZSk6bm90KC5nZmllbGRfY3JlZGl0Y2FyZF93YXJuaW5nX21lc3NhZ2UpKXttYXJnaW4tYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtZGVzY3JpcHRpb24tc3BhY2luZykgMH1AbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmxlZnRfbGFiZWwgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZSg6bm90KC5naW5wdXRfY291bnRlcl90aW55bWNlKTpub3QoLmdmaWVsZF9jcmVkaXRjYXJkX3dhcm5pbmdfbWVzc2FnZSkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5yaWdodF9sYWJlbCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdpbnB1dF9jb3VudGVyX3RpbnltY2UpOm5vdCguZ2ZpZWxkX2NyZWRpdGNhcmRfd2FybmluZ19tZXNzYWdlKSl7LXdlYmtpdC1wYWRkaW5nLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1zcGFjaW5nKTttYXJnaW4tYmxvY2s6MDttYXJnaW4taW5saW5lOmF1dG8gMDtwYWRkaW5nLWJsb2NrLXN0YXJ0OnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpfX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAubGVmdF9sYWJlbCAuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UpKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAucmlnaHRfbGFiZWwgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZSg6bm90KC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlKSl7bWFyZ2luLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLWNob2ljZS1maWVsZC1zcGFjaW5nKSAwfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAubGVmdF9sYWJlbCAuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UpKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAucmlnaHRfbGFiZWwgLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZSg6bm90KC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlKSl7LXdlYmtpdC1wYWRkaW5nLWJlZm9yZTp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1jaG9pY2UtZmllbGQtc3BhY2luZyk7bWFyZ2luLWJsb2NrOjA7cGFkZGluZy1ibG9jay1zdGFydDp2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1jaG9pY2UtZmllbGQtc3BhY2luZyl9fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5sZWZ0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZShbY2xhc3M9Z2ZpZWxkX2Rlc2NyaXB0aW9uXSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLnJpZ2h0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZShbY2xhc3M9Z2ZpZWxkX2Rlc2NyaXB0aW9uXSl7bWFyZ2luLWJsb2NrOjAgdmFyKC0tZ2Zvcm0tdGhlbWUtZGVzY3JpcHRpb24tc3BhY2luZyl9QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5sZWZ0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZShbY2xhc3M9Z2ZpZWxkX2Rlc2NyaXB0aW9uXSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLnJpZ2h0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZShbY2xhc3M9Z2ZpZWxkX2Rlc2NyaXB0aW9uXSl7bWFyZ2luLWJsb2NrOjA7cGFkZGluZy1ibG9jazowIHZhcigtLWdmb3JtLXRoZW1lLWRlc2NyaXB0aW9uLXNwYWNpbmcpfX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAubGVmdF9sYWJlbCAuaGlkZGVuX2xhYmVsLmZpZWxkX2Rlc2NyaXB0aW9uX2Fib3ZlLmdmaWVsZC0tdHlwZS1jaG9pY2UgLmdmaWVsZF9kZXNjcmlwdGlvbjp3aGVyZSg6bm90KC5nZmllbGRfdmFsaWRhdGlvbl9tZXNzYWdlKSksLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLnJpZ2h0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UpKXttYXJnaW4tYmxvY2s6MCB2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1jaG9pY2UtZmllbGQtc3BhY2luZyl9QG1lZGlhIChtaW4td2lkdGg6NjQwcHgpey5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5sZWZ0X2xhYmVsIC5oaWRkZW5fbGFiZWwuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUuZ2ZpZWxkLS10eXBlLWNob2ljZSAuZ2ZpZWxkX2Rlc2NyaXB0aW9uOndoZXJlKDpub3QoLmdmaWVsZF92YWxpZGF0aW9uX21lc3NhZ2UpKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAucmlnaHRfbGFiZWwgLmhpZGRlbl9sYWJlbC5maWVsZF9kZXNjcmlwdGlvbl9hYm92ZS5nZmllbGQtLXR5cGUtY2hvaWNlIC5nZmllbGRfZGVzY3JpcHRpb246d2hlcmUoOm5vdCguZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSkpe21hcmdpbi1ibG9jazowO3BhZGRpbmctYmxvY2s6MCB2YXIoLS1nZm9ybS10aGVtZS1kZXNjcmlwdGlvbi1jaG9pY2UtZmllbGQtc3BhY2luZyl9fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZmllbGRfbGlzdF9ncm91cF9pdGVtOmJlZm9yZSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pKXstLWdmb3JtLXRoZW1lLWxvY2FsLW1hcmdpbi1ibG9jazowIHZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctcHJpbWFyeSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmaWVsZC0tdHlwZS1jaG9pY2UuZmllbGRfZGVzY3JpcHRpb25fYWJvdmUuZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pKSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2ZpZWxkLS10eXBlLWNob2ljZS5maWVsZF9kZXNjcmlwdGlvbl9iZWxvdyAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pKXstLWdmb3JtLXRoZW1lLWxvY2FsLW1hcmdpbi1ibG9jazowIHZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLWNob2ljZS1maWVsZC1zcGFjaW5nLXByaW1hcnkpfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAubGVmdF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5yaWdodF9sYWJlbCAuZ2Zvcm0tZmllbGQtbGFiZWw6d2hlcmUoOm5vdChbY2xhc3MqPWdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLV0pOm5vdCguZ2ZpZWxkX2hlYWRlcl9pdGVtKTpub3QoLmdpbnB1dF9xdWFudGl0eV9sYWJlbCkpey0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWJsb2NrOjA7LS1nZm9ybS10aGVtZS1sb2NhbC1tYXJnaW4taW5saW5lOjA7LXdlYmtpdC1wYWRkaW5nLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLXByaW1hcnkpO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLXByaW1hcnkpfX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5ley0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWlubGluZTp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLWhvcml6b250YWwtc2Vjb25kYXJ5KSAwOy0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctdmVydGljYWwtc2Vjb25kYXJ5KSAwfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS1zbSAuZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5ley0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctdmVydGljYWwtc20tc2Vjb25kYXJ5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZ2Zvcm0tZmllbGQtLXNpemUtbWQgLmdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZXstLWdmb3JtLXRoZW1lLWxvY2FsLW1hcmdpbi1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLXZlcnRpY2FsLW1kLXNlY29uZGFyeSl9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgLmdmb3JtLWZpZWxkLS1zaXplLWxnIC5nZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmV7LS1nZm9ybS10aGVtZS1sb2NhbC1tYXJnaW4tYmxvY2s6dmFyKC0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy12ZXJ0aWNhbC1sZy1zZWNvbmRhcnkpfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5nZm9ybS1maWVsZC0tc2l6ZS14bCAuZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5ley0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWJsb2NrOnZhcigtLWdmb3JtLXRoZW1lLWxhYmVsLXNwYWNpbmctdmVydGljYWwteGwtc2Vjb25kYXJ5KX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayAuZmllbGRfc3VibGFiZWxfYmVsb3cgLmdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLXN1YnstLWdmb3JtLXRoZW1lLWxvY2FsLW1hcmdpbi1ibG9jazp2YXIoLS1nZm9ybS10aGVtZS1sYWJlbC1zcGFjaW5nLXRlcnRpYXJ5KSAwfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIC5maWVsZF9zdWJsYWJlbF9hYm92ZSAuZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtc3Viey0tZ2Zvcm0tdGhlbWUtbG9jYWwtbWFyZ2luLWJsb2NrOjAgdmFyKC0tZ2Zvcm0tdGhlbWUtbGFiZWwtc3BhY2luZy10ZXJ0aWFyeSl9"}},"time_used":488,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":488,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=f4d12a887a23a8c5755fd2b956bc8fcf","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.875Z","timestamp":1785145403875,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=f4d12a887a23a8c5755fd2b956bc8fcf HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-f14\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":3860,"size_decoded":1756,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (3860), with no line terminators","md5":"443293948084ca0fe29518ebcd01dc6b","sha1":"50a0e0c80b86e35426c6ce8b83bf625ec1120e6d","sha256":"1f751d3740ea83b3d42100e1bf23b0b17d5b4c4ff3bdf9badd42ba03a814896f","sha512":"7b71d7586e94b5f30dc0553ae57e9a4f25c33c8ef2362e452e70e617da15825f6f24e4a44448d07f99c4fcfd7b0f61262dac9a658a0e0fa5bde01a782c763b0f","ssdeep":"","tlshash":"888186a83690a4f062b26b6012bfb389f7326c70359eb475d50d9455bd28d8b8067fec","first_seen":"2023-05-07T19:54:55Z","last_seen":"2026-08-04T23:26:38.556259Z","times_seen":347,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuLGU9ezM4NTY6ZnVuY3Rpb24obixlLHQpe3ZhciBvPWdmb3JtLnV0aWxzLHI9ZnVuY3Rpb24oKXsoMCxvLmNvbnNvbGVJbmZvKSgiR3Jhdml0eSBGb3JtcyBDb21tb246IEluaXRpYWxpemVkIGFsbCBqYXZhc2NyaXB0IHRoYXQgdGFyZ2V0ZWQgZG9jdW1lbnQgcmVhZHkuIil9LGk9ZnVuY3Rpb24oKXsoMCxvLnJlYWR5KShyKX0sdT1mdW5jdGlvbigpe2koKX0sYz13aW5kb3cuZ2Zvcm1fdGhlbWVfY29uZmlnLGE9e30sZD1mdW5jdGlvbihuKXt2YXIgZT1uLnRhcmdldDtpZigodyhlKXx8ZihlKSkmJiFtKCkpe3ZhciB0PSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZXJzaW9uX2hhc2giIHZhbHVlPSInLmNvbmNhdChjLmNvbW1vbi5mb3JtLmhvbmV5cG90LnZlcnNpb25faGFzaCwnIiAvPicpO2UuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLHQpfX0sZj1mdW5jdGlvbihuKXt2YXIgZT1uLmRhdGFzZXQuZm9ybWlkLHQ9KDAsby5nZXROb2RlcykoIiNnZm9ybV9zYXZlXyIuY29uY2F0KGUpLCEwLG4sITApO3JldHVybiB0Lmxlbmd0aD4wJiYiMSI9PT10WzBdLnZhbHVlfSx3PWZ1bmN0aW9uKG4pe3ZhciBlPW4uZGF0YXNldC5mb3JtaWQsdD0oMCxvLmdldE5vZGVzKSgnaW5wdXRbbmFtZSA9ICJnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfJy5jb25jYXQoZSwnIl0nKSwhMCxuLCEwKVswXTtyZXR1cm4gdm9pZCAwIT09dCYmMD09PXBhcnNlSW50KHQudmFsdWUpfSxtPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5fcGhhbnRvbXx8d2luZG93LmNhbGxQaGFudG9tfHx3aW5kb3cuX19waGFudG9tYXN8fHdpbmRvdy5CdWZmZXJ8fHdpbmRvdy5lbWl0fHx3aW5kb3cuc3Bhd258fHdpbmRvdy53ZWJkcml2ZXJ8fHdpbmRvdy5fc2VsZW5pdW18fHdpbmRvdy5fU2VsZW5pdW1fSURFX1JlY29yZGVyfHx3aW5kb3cuY2FsbFNlbGVuaXVtfHx3aW5kb3cuX19uaWdodG1hcmV8fHdpbmRvdy5kb21BdXRvbWF0aW9ufHx3aW5kb3cuZG9tQXV0b21hdGlvbkNvbnRyb2xsZXJ8fHdpbmRvdy5kb2N1bWVudC5fX3dlYmRyaXZlcl9ldmFsdWF0ZXx8d2luZG93LmRvY3VtZW50Ll9fc2VsZW5pdW1fZXZhbHVhdGV8fHdpbmRvdy5kb2N1bWVudC5fX3dlYmRyaXZlcl9zY3JpcHRfZnVuY3Rpb258fHdpbmRvdy5kb2N1bWVudC5fX3dlYmRyaXZlcl9zY3JpcHRfZnVuY3x8d2luZG93LmRvY3VtZW50Ll9fd2ViZHJpdmVyX3NjcmlwdF9mbnx8d2luZG93LmRvY3VtZW50Ll9fZnhkcml2ZXJfZXZhbHVhdGV8fHdpbmRvdy5kb2N1bWVudC5fX2RyaXZlcl91bndyYXBwZWR8fHdpbmRvdy5kb2N1bWVudC5fX3dlYmRyaXZlcl91bndyYXBwZWR8fHdpbmRvdy5kb2N1bWVudC5fX2RyaXZlcl9ldmFsdWF0ZXx8d2luZG93LmRvY3VtZW50Ll9fc2VsZW5pdW1fdW53cmFwcGVkfHx3aW5kb3cuZG9jdW1lbnQuX19meGRyaXZlcl91bndyYXBwZWR8fHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJzZWxlbml1bSIpfHx3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgid2ViZHJpdmVyIil8fHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkcml2ZXIiKX0scz1mdW5jdGlvbigpe2EuZm9ybXM9KDAsby5nZXROb2RlcykoIi5nZm9ybV93cmFwcGVyIGZvcm0iLCEwLGRvY3VtZW50LCEwKSxhLmZvcm1zLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBqUXVlcnkoZG9jdW1lbnQpLm9uKCJzdWJtaXQiLG4sZCl9KSksKDAsby5jb25zb2xlSW5mbykoIkdyYXZpdHkgRm9ybXMgSG9uZXlwb3Q6IEluaXRpYWxpemVkLiIpfSxsPWZ1bmN0aW9uKCl7cygpLCgwLG8uY29uc29sZUluZm8pKCJHcmF2aXR5IEZvcm1zIEZvcm0gSlM6IEluaXRpYWxpemVkLi4iKX0sXz1mdW5jdGlvbigpe3UoKSxsKCl9LHY9ZnVuY3Rpb24oKXsoMCxvLnJlYWR5KShfKX0scD1nZm9ybV90aGVtZV9jb25maWcsZz10Lm4ocCk7dC5wPWcoKS5wdWJsaWNfcGF0aCx2KCl9fSx0PXt9O2Z1bmN0aW9uIG8obil7dmFyIHI9dFtuXTtpZih2b2lkIDAhPT1yKXJldHVybiByLmV4cG9ydHM7dmFyIGk9dFtuXT17ZXhwb3J0czp7fX07cmV0dXJuIGVbbl0oaSxpLmV4cG9ydHMsbyksaS5leHBvcnRzfW8ubT1lLG49W10sby5PPWZ1bmN0aW9uKGUsdCxyLGkpe2lmKCF0KXt2YXIgdT0xLzA7Zm9yKGY9MDtmPG4ubGVuZ3RoO2YrKyl7dD1uW2ZdWzBdLHI9bltmXVsxXSxpPW5bZl1bMl07Zm9yKHZhciBjPSEwLGE9MDthPHQubGVuZ3RoO2ErKykoITEmaXx8dT49aSkmJk9iamVjdC5rZXlzKG8uTykuZXZlcnkoKGZ1bmN0aW9uKG4pe3JldHVybiBvLk9bbl0odFthXSl9KSk/dC5zcGxpY2UoYS0tLDEpOihjPSExLGk8dSYmKHU9aSkpO2lmKGMpe24uc3BsaWNlKGYtLSwxKTt2YXIgZD1yKCk7dm9pZCAwIT09ZCYmKGU9ZCl9fXJldHVybiBlfWk9aXx8MDtmb3IodmFyIGY9bi5sZW5ndGg7Zj4wJiZuW2YtMV1bMl0+aTtmLS0pbltmXT1uW2YtMV07bltmXT1bdCxyLGldfSxvLm49ZnVuY3Rpb24obil7dmFyIGU9biYmbi5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIG4uZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gbn07cmV0dXJuIG8uZChlLHthOmV9KSxlfSxvLmQ9ZnVuY3Rpb24obixlKXtmb3IodmFyIHQgaW4gZSlvLm8oZSx0KSYmIW8ubyhuLHQpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobix0LHtlbnVtZXJhYmxlOiEwLGdldDplW3RdfSl9LG8uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKG4pe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLG8ubz1mdW5jdGlvbihuLGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixlKX0sZnVuY3Rpb24oKXt2YXIgbjtvLmcuaW1wb3J0U2NyaXB0cyYmKG49by5nLmxvY2F0aW9uKyIiKTt2YXIgZT1vLmcuZG9jdW1lbnQ7aWYoIW4mJmUmJihlLmN1cnJlbnRTY3JpcHQmJihuPWUuY3VycmVudFNjcmlwdC5zcmMpLCFuKSl7dmFyIHQ9ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7dC5sZW5ndGgmJihuPXRbdC5sZW5ndGgtMV0uc3JjKX1pZighbil0aHJvdyBuZXcgRXJyb3IoIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyIik7bj1uLnJlcGxhY2UoLyMuKiQvLCIiKS5yZXBsYWNlKC9cPy4qJC8sIiIpLnJlcGxhY2UoL1wvW15cL10rJC8sIi8iKSxvLnA9bn0oKSxmdW5jdGlvbigpe3ZhciBuPXs0MTU6MH07by5PLmo9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1uW2VdfTt2YXIgZT1mdW5jdGlvbihlLHQpe3ZhciByLGksdT10WzBdLGM9dFsxXSxhPXRbMl0sZD0wO2lmKHUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIDAhPT1uW2VdfSkpKXtmb3IociBpbiBjKW8ubyhjLHIpJiYoby5tW3JdPWNbcl0pO2lmKGEpdmFyIGY9YShvKX1mb3IoZSYmZSh0KTtkPHUubGVuZ3RoO2QrKylpPXVbZF0sby5vKG4saSkmJm5baV0mJm5baV1bMF0oKSxuW2ldPTA7cmV0dXJuIG8uTyhmKX0sdD1zZWxmLndlYnBhY2tDaHVua2dyYXZpdHlmb3Jtcz1zZWxmLndlYnBhY2tDaHVua2dyYXZpdHlmb3Jtc3x8W107dC5mb3JFYWNoKGUuYmluZChudWxsLDApKSx0LnB1c2g9ZS5iaW5kKG51bGwsdC5wdXNoLmJpbmQodCkpfSgpLG8uTyh2b2lkIDAsWzQ5OV0sKGZ1bmN0aW9uKCl7cmV0dXJuIG8oOTU1Myl9KSk7dmFyIHI9by5PKHZvaWQgMCxbNDk5XSwoZnVuY3Rpb24oKXtyZXR1cm4gbygzODU2KX0pKTtyPW8uTyhyKX0oKTs="}},"time_used":546,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":546,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.659Z","timestamp":1785145404659,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1161431244.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:49 GMT","end":"Wed, 02 Sep 2026 14:34:48 GMT"},"fingerprint":{"sha1":"77:06:42:CE:73:9F:CA:05:A3:6E:99:99:F2:3F:B7:EE:E4:60:E9:29","sha256":"E7:6E:68:C5:CD:6C:F6:14:84:A0:18:1A:D7:94:77:7A:28:F6:67:8E:90:58:94:AE:3A:65:6A:B7:95:0F:5D:1B"}}},"request":{"raw":"GET /loader.js? HTTP/1.1\r\nHost: www.smartsuppchat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:28 GMT\r\ncontent-type: application/javascript\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a2663cd-4668\"\r\nexpires: Mon, 08 Jun 2026 06:46:12 GMT\r\nlast-modified: Mon, 08 Jun 2026 06:40:13 GMT\r\nx-77-nzt: k8yFqo74IZUltwAqrVJJY7VdH9KiNJPk0a+8NxZmt0dLTrYVjcfEpEvw46S3iPcFVFWUZsU\r\nx-77-nzt-ray: e2f75420951541564028676a40a2f313\r\nx-77-cache: HIT\r\nx-77-age: 32\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":18024,"size_decoded":6042,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (17951)","md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-08-12T03:05:51.919266Z","times_seen":8374,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgbG9hZGVyLnRlbXBsYXRlLmpzLkxJQ0VOU0UudHh0ICovCigoKT0+e3ZhciB0PXs3MTUodCl7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIDEwIikmJih0PSEwKTt2YXIgZSxuPVtdLHI9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQsbz10P3IuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik6ci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwsaT0iRE9NQ29udGVudExvYWRlZCIscz1yJiYobz8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHIucmVhZHlTdGF0ZSk7cmV0dXJuIXMmJnImJnIuYWRkRXZlbnRMaXN0ZW5lcihpLGU9ZnVuY3Rpb24oKXtmb3Ioci5yZW1vdmVFdmVudExpc3RlbmVyKGksZSkscz0xO2U9bi5zaGlmdCgpOyllKCl9KSxmdW5jdGlvbih0KXtzP3NldFRpbWVvdXQodCwwKTpuLnB1c2godCl9fSgpfSw3NjEodCxlLG4peyJ1c2Ugc3RyaWN0Ijtjb25zdCByPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gZS5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBlLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVqZWN0KG4pfSl9KX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRoaXMoZnVuY3Rpb24oZSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcih0eXBlb2YgdCsiICIrdCsiIGlzIG5vdCBpdGVyYWJsZShjYW5ub3QgcmVhZCBwcm9wZXJ0eSBTeW1ib2woU3ltYm9sLml0ZXJhdG9yKSkiKSk7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk7aWYoMD09PXIubGVuZ3RoKXJldHVybiBlKFtdKTt2YXIgbz1yLmxlbmd0aDtmdW5jdGlvbiBpKHQsbil7aWYobiYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pKXt2YXIgcz1uLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHZvaWQgcy5jYWxsKG4sZnVuY3Rpb24oZSl7aSh0LGUpfSxmdW5jdGlvbihuKXtyW3RdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246bn0sMD09PS0tbyYmZShyKX0pfXJbdF09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpufSwwPT09LS1vJiZlKHIpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKWkocyxyW3NdKX0pfTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5uYW1lPSJBZ2dyZWdhdGVFcnJvciIsdGhpcy5lcnJvcnM9dCx0aGlzLm1lc3NhZ2U9ZXx8IiJ9aS5wcm90b3R5cGU9RXJyb3IucHJvdG90eXBlO2NvbnN0IHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IGUoZnVuY3Rpb24obixyKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIHIobmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbnkgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHIoKTtmb3IodmFyIHM9W10sYT0wO2E8by5sZW5ndGg7YSsrKXRyeXtlLnJlc29sdmUob1thXSkudGhlbihuKS5jYXRjaChmdW5jdGlvbih0KXtzLnB1c2godCkscy5sZW5ndGg9PT1vLmxlbmd0aCYmcihuZXcgaShzLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKX0pfWNhdGNoKHQpe3IodCl9fSl9O3ZhciBhPXNldFRpbWVvdXQ7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gQm9vbGVhbih0JiZ2b2lkIDAhPT10Lmxlbmd0aCl9ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2VzIG11c3QgYmUgY29uc3RydWN0ZWQgdmlhIG5ldyIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm5vdCBhIGZ1bmN0aW9uIik7dGhpcy5fc3RhdGU9MCx0aGlzLl9oYW5kbGVkPSExLHRoaXMuX3ZhbHVlPXZvaWQgMCx0aGlzLl9kZWZlcnJlZHM9W10sdyh0LHRoaXMpfWZ1bmN0aW9uIHAodCxlKXtmb3IoOzM9PT10Ll9zdGF0ZTspdD10Ll92YWx1ZTswIT09dC5fc3RhdGU/KHQuX2hhbmRsZWQ9ITAsbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5fc3RhdGU/ZS5vbkZ1bGZpbGxlZDplLm9uUmVqZWN0ZWQ7aWYobnVsbCE9PW4pe3ZhciByO3RyeXtyPW4odC5fdmFsdWUpfWNhdGNoKHQpe3JldHVybiB2b2lkIGQoZS5wcm9taXNlLHQpfWYoZS5wcm9taXNlLHIpfWVsc2UoMT09PXQuX3N0YXRlP2Y6ZCkoZS5wcm9taXNlLHQuX3ZhbHVlKX0pKTp0Ll9kZWZlcnJlZHMucHVzaChlKX1mdW5jdGlvbiBmKHQsZSl7dHJ5e2lmKGU9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuIik7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXt2YXIgbj1lLnRoZW47aWYoZSBpbnN0YW5jZW9mIGwpcmV0dXJuIHQuX3N0YXRlPTMsdC5fdmFsdWU9ZSx2b2lkIGgodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgdygocj1uLG89ZSxmdW5jdGlvbigpe3IuYXBwbHkobyxhcmd1bWVudHMpfSksdCl9dC5fc3RhdGU9MSx0Ll92YWx1ZT1lLGgodCl9Y2F0Y2goZSl7ZCh0LGUpfXZhciByLG99ZnVuY3Rpb24gZCh0LGUpe3QuX3N0YXRlPTIsdC5fdmFsdWU9ZSxoKHQpfWZ1bmN0aW9uIGgodCl7Mj09PXQuX3N0YXRlJiYwPT09dC5fZGVmZXJyZWRzLmxlbmd0aCYmbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt0Ll9oYW5kbGVkfHxsLl91bmhhbmRsZWRSZWplY3Rpb25Gbih0Ll92YWx1ZSl9KTtmb3IodmFyIGU9MCxuPXQuX2RlZmVycmVkcy5sZW5ndGg7ZTxuO2UrKylwKHQsdC5fZGVmZXJyZWRzW2VdKTt0Ll9kZWZlcnJlZHM9bnVsbH1mdW5jdGlvbiB5KHQsZSxuKXt0aGlzLm9uRnVsZmlsbGVkPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbCx0aGlzLm9uUmVqZWN0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHRoaXMucHJvbWlzZT1ufWZ1bmN0aW9uIHcodCxlKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbih0KXtufHwobj0hMCxmKGUsdCkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxkKGUsdCkpfSl9Y2F0Y2godCl7aWYobilyZXR1cm47bj0hMCxkKGUsdCl9fWwucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCx0KX0sbC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHUpO3JldHVybiBwKHRoaXMsbmV3IHkodCxlLG4pKSxufSxsLnByb3RvdHlwZS5maW5hbGx5PXIsbC5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsKGZ1bmN0aW9uKGUsbil7aWYoIWModCkpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIGUoW10pO3ZhciBvPXIubGVuZ3RoO2Z1bmN0aW9uIGkodCxzKXt0cnl7aWYocyYmKCJvYmplY3QiPT10eXBlb2Ygc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMpKXt2YXIgYT1zLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIHZvaWQgYS5jYWxsKHMsZnVuY3Rpb24oZSl7aSh0LGUpfSxuKX1yW3RdPXMsMD09PS0tbyYmZShyKX1jYXRjaCh0KXtuKHQpfX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKylpKHMscltzXSl9KX0sbC5hbnk9cyxsLmFsbFNldHRsZWQ9byxsLnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWw/dDpuZXcgbChmdW5jdGlvbihlKXtlKHQpfSl9LGwucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe24odCl9KX0sbC5yYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe2lmKCFjKHQpKXJldHVybiBuKG5ldyBUeXBlRXJyb3IoIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5IikpO2Zvcih2YXIgcj0wLG89dC5sZW5ndGg7cjxvO3IrKylsLnJlc29sdmUodFtyXSkudGhlbihlLG4pfSl9LGwuX2ltbWVkaWF0ZUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQpe3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe2EodCwwKX0sbC5fdW5oYW5kbGVkUmVqZWN0aW9uRm49ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQpfTtjb25zdCB2PWw7dmFyIGc9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZih2b2lkIDAhPT1uLmcpcmV0dXJuIG4uZzt0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdCIpfSgpOyJmdW5jdGlvbiIhPXR5cGVvZiBnLlByb21pc2U/Zy5Qcm9taXNlPXY6KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseXx8KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1yKSxnLlByb21pc2UuYWxsU2V0dGxlZHx8KGcuUHJvbWlzZS5hbGxTZXR0bGVkPW8pLGcuUHJvbWlzZS5hbnl8fChnLlByb21pc2UuYW55PXMpKX0sMzQ1KHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU21hcnRzdXBwTG9hZGVyPXZvaWQgMDt2YXIgcj1uKDc0MCksbz1uKDg5MyksaT1uKDEzMCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy53aWRnZXRzPXt9LHRoaXMuY2hhdHM9dGhpcy53aWRnZXRzfXJldHVybiB0LnByb3RvdHlwZS5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpc30sdC5wcm90b3R5cGUuZ2V0Q2hhdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRzW3RdfSx0LnByb3RvdHlwZS5nZXRXaWRnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2lkZ2V0c1t0XX0sdC5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7YShjKTt2YXIgdT10aGlzLndpZGdldHNbdF09bmV3IGkuU21hcnRzdXBwV2lkZ2V0KHQsYyxuKTtyZXR1cm4gdS5faW5pdFByb21pc2U9KDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLG8ucGFyc2VKU09OKSh0KTtyZXR1cm4gZGVsZXRlIGUuZmVhdHVyZXMsdS5pbml0KCgwLG8ubWVyZ2VEZWVwKShuLGUpLG4uZmVhdHVyZXMpLGUmJmUud2lkZ2V0VHJhY2tlckVuYWJsZWQmJigwLHIudHJhY2tPcHRpb25zKSh1Lm9wdGlvbnMsT2JqZWN0LmtleXMoZSkpLHdpbmRvdy5zbWFydHN1cHAuZ2V0QXNzZXRVcmw9dS5nZXRBc3NldFVybC5iaW5kKHUpLHMmJnModm9pZCAwLHUpLHUub3B0aW9ucy5yZW5kZXJUbyYmdS5yZW5kZXIodS5vcHRpb25zLnJlbmRlclRvKSxudWxsfSkuY2F0Y2goZnVuY3Rpb24odCl7cyYmcyh0KX0pLHV9LHQucHJvdG90eXBlLmNyZWF0ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7dmFyIHM9dGhpcyxjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIGEoYyksKDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciB1PSgwLG8ucGFyc2VKU09OKShhKSxsPXMud2lkZ2V0c1t0XT1uZXcgaS5TbWFydHN1cHBXaWRnZXQodCxjLG4pO3JldHVybiBkZWxldGUgZS5mZWF0dXJlcyxsLmluaXQoKDAsby5tZXJnZURlZXApKHUsZSksdS5mZWF0dXJlcyksZSYmZS53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsci50cmFja09wdGlvbnMpKGwub3B0aW9ucyxPYmplY3Qua2V5cyhlKSksd2luZG93LnNtYXJ0c3VwcC5nZXRBc3NldFVybD1sLmdldEFzc2V0VXJsLmJpbmQobCksbH0pfSx0fSgpO2UuU21hcnRzdXBwTG9hZGVyPXM7dmFyIGE9ZnVuY3Rpb24odCl7aWYoIXQuYm9vdHN0cmFwVXJsKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24gYm9vdHN0cmFwVXJsIik7aWYoIXQua2V5KXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24ga2V5Iil9fSw3NDAodCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBzKHQpe3RyeXtjKHIubmV4dCh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYSh0KXt0cnl7YyhyLnRocm93KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBjKHQpe3ZhciBlO3QuZG9uZT9vKHQudmFsdWUpOihlPXQudmFsdWUsZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSkpLnRoZW4ocyxhKX1jKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLHIsbyxpLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2kmJihpPTAsYVswXSYmKHM9MCkpLHM7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89cy50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3M9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe3MubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmcy5sYWJlbDxvWzFdKXtzLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJnMubGFiZWw8b1syXSl7cy5sYWJlbD1vWzJdLHMub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscyl9Y2F0Y2godCl7YT1bNix0XSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYWNrT3BlcmF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fHMuaW5kZXhPZihlKT49MHx8YS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+PTApcmV0dXJuWzIsITFdO24ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoMCxpLnJlcXVlc3QpKHQud2lkZ2V0VHJhY2tlclVybCsiL3RyYWNrL29wZXJhdGlvbj9rZXk9Ii5jb25jYXQodC5rZXksIiZvcGVyYXRpb249IikuY29uY2F0KGUsIiZkb21haW49IikuY29uY2F0KHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLFsyLCEwXTtjYXNlIDM6cmV0dXJuIG4uc2VudCgpLFsyLCExXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUudHJhY2tPcHRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG8odGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fGEuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPj0wKXJldHVyblsyLCExXTtpZigwPT09KG49ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGMuaW5kZXhPZih0KTwwfSkpLmxlbmd0aClyZXR1cm5bMiwhMV07ci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gci50cnlzLnB1c2goWzEsMywsNF0pLFs0LCgwLGkucmVxdWVzdCkodC53aWRnZXRUcmFja2VyVXJsKyIvdHJhY2svb3B0aW9ucz9rZXk9Ii5jb25jYXQodC5rZXksIiZvcHRpb25zPSIpLmNvbmNhdChuLmpvaW4oIiwiKSwiJmRvbWFpbj0iKS5jb25jYXQod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzIsITBdO2Nhc2UgMzpyZXR1cm4gci5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX07dmFyIGk9big4OTMpLHM9WyJodG1sOmFwcGx5IiwiY2hhdDptZXNzYWdlIiwib24iXSxhPVsid3d3LnNtYXJ0c3VwcC5jb20iLCJhcHAuc21hcnRzdXBwLmNvbSJdLGM9WyJrZXkiLCJnYU9wdGlvbnMiLCJnYU5hbWUiLCJjb29raWVQcmVmaXgiLCJjb29raWVQYXRoIiwiY3Jvc3NEb21haW5FbmFibGVkIiwicG9zaXRpb24iLCJvcGVuT25UcmlnZ2VyIl19LDg5Myh0LGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYXJzZUpTT049ZS5yZXF1ZXN0PWUuY3JlYXRlTGluaz1lLmNyZWF0ZVNjcmlwdD1lLnJlc29sdmVUYXJnZXRFbGVtZW50PWUubWVyZ2VEZWVwPXZvaWQgMDt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0fTtlLm1lcmdlRGVlcD1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgbz17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9b1tyXSxzPXRbcl07dm9pZCAwIT09cyYmKEFycmF5LmlzQXJyYXkoaSl8fEFycmF5LmlzQXJyYXkocyk/b1tyXT1zOm4oaSkmJm4ocyk/b1tyXT0oMCxlLm1lcmdlRGVlcCkoaSxzKTpvW3JdPXMpfSl9KSxvfSxlLnJlc29sdmVUYXJnZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRWxlbWVudD90OiJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdfSxlLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cmV0dXJuIG4udHlwZT0idGV4dC9qYXZhc2NyaXB0IixuLmNoYXJzZXQ9InV0ZjgiLGUmJihuLnNyYz1lKSxufSxlLmNyZWF0ZUxpbms9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gZSYmKG4uaHJlZj1lKSxufSxlLnJlcXVlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Uub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWUucmVhZHlTdGF0ZSYmKGUuc3RhdHVzPj0yMDAmJmUuc3RhdHVzPDMwMD9uKGUucmVzcG9uc2UpOnIobmV3IEVycm9yKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAiLmNvbmNhdChlLnN0YXR1cykpKSl9LGUub3BlbigiR0VUIix0LCEwKSxlLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsInRleHQvcGxhaW4iKSxlLnNlbmQoKX0pfSxlLnBhcnNlSlNPTj1mdW5jdGlvbih0KXtpZihKU09OLnBhcnNlKXJldHVybiBKU09OLnBhcnNlKHQpO2lmKEpTT04uZGVjb2RlKXJldHVybiBKU09OLmRlY29kZSh0KTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBwYXJzZSBqc29uLiIpfX0sMTMwKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKG8saSl7ZnVuY3Rpb24gcyh0KXt0cnl7YyhyLm5leHQodCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIGEodCl7dHJ5e2Moci50aHJvdyh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYyh0KXt2YXIgZTt0LmRvbmU/byh0LnZhbHVlKTooZT10LnZhbHVlLGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pKS50aGVuKHMsYSl9Yygocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saSxzPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBpPXtuZXh0OmEoMCksdGhyb3c6YSgxKSxyZXR1cm46YSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBhKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oYSl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtpJiYoaT0wLGFbMF0mJihzPTApKSxzOyl0cnl7aWYobj0xLHImJihvPTImYVswXT9yLnJldHVybjphWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsYVsxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYT1bMiZhWzBdLG8udmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOm89YTticmVhaztjYXNlIDQ6cmV0dXJuIHMubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6cy5sYWJlbCsrLHI9YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1zLm9wcy5wb3AoKSxzLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvPShvPXMudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09YVswXSYmMiE9PWFbMF0pKXtzPTA7Y29udGludWV9aWYoMz09PWFbMF0mJighb3x8YVsxXT5vWzBdJiZhWzFdPG9bM10pKXtzLmxhYmVsPWFbMV07YnJlYWt9aWYoNj09PWFbMF0mJnMubGFiZWw8b1sxXSl7cy5sYWJlbD1vWzFdLG89YTticmVha31pZihvJiZzLmxhYmVsPG9bMl0pe3MubGFiZWw9b1syXSxzLm9wcy5wdXNoKGEpO2JyZWFrfW9bMl0mJnMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZX1hPWUuY2FsbCh0LHMpfWNhdGNoKHQpe2E9WzYsdF0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KFthLGNdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBXaWRnZXQ9dm9pZCAwO3ZhciBpPW4oNzQwKSxzPW4oODkzKSxhPXdpbmRvdyxjPSItYXBwbGljYXRpb24taWZyYW1lIix1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49W10pLHRoaXMuaWQ9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLl9wdXNoQXBpPW4sdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmFwaT1udWxsLHRoaXMuZWw9bnVsbCx0aGlzLmZyYW1lPW51bGwsdGhpcy52ZXJzaW9uPTIsdGhpcy5pbml0aWFsaXplZD0hMSwhZS5ib290c3RyYXBVcmwpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBib290c3RyYXBVcmwiKTtpZighZS5rZXkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBrZXkiKX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLHMubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpcy5mZWF0dXJlcyYmKHRoaXMuZmVhdHVyZXMucmF0aW5nfHwodGhpcy5vcHRpb25zLnJhdGluZ0VuYWJsZWQ9ITEpLHRoaXMuZmVhdHVyZXMuZ3JvdXBzfHwodGhpcy5vcHRpb25zLmdyb3VwU2VsZWN0RW5hYmxlZD0hMSksdGhpcy5mZWF0dXJlcy5jdXN0b21pemV8fCh0aGlzLm9wdGlvbnMuaGlkZVdpZGdldD0hMSx0aGlzLm9wdGlvbnMuaGlkZU9mZmxpbmVDaGF0PSExLHRoaXMub3B0aW9ucy5udW1iZXJDb250cm9sPSExLHRoaXMub3B0aW9ucy5yZXF1aXJlTG9naW49ITEsdGhpcy5vcHRpb25zLnByaXZhY3lOb3RpY2VFbmFibGVkPSEwLHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj0icmlnaHQiKSx0aGlzLmZlYXR1cmVzLmdhfHwodGhpcy5vcHRpb25zLmdvb2dsZUFuYWx5dGljc0VuYWJsZWQ9ITEpKSx0aGlzfSx0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dGhpcy5mZWF0dXJlcz1lLHRoaXMuc2V0T3B0aW9ucyh0KSx0aGlzLmluaXRpYWxpemVkPSEwLCJhdXRvIj09PXRoaXMub3B0aW9ucy5wb3NpdGlvbiYmKHRoaXMub3B0aW9ucy5wb3NpdGlvbj10aGlzLm9wdGlvbnMucmVuZGVyVG8/InJlbGF0aXZlIjoiZml4ZWQiKX0sdC5wcm90b3R5cGUuY3JlYXRlRnJhbWU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC5pZD0iIi5jb25jYXQodGhpcy5pZCkuY29uY2F0KGMpLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlNtYXJ0c3VwcCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC5zdHlsZS50b3A9IjAiLHQuc3R5bGUubGVmdD0iMCIsdC5zdHlsZS53aWR0aD0iMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4Iix0LnN0eWxlLm9wYWNpdHk9IjAiLHQuc3R5bGUuYm9yZGVyPSJub25lIix0LnN0eWxlLnpJbmRleD0iLTEiLHQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdH0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5faW5pdFByb21pc2U/WzQsdGhpcy5faW5pdFByb21pc2VdOlszLDJdO2Nhc2UgMTpuLnNlbnQoKSxuLmxhYmVsPTI7Y2FzZSAyOmlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQrYykpcmV0dXJuWzJdO2lmKCF0aGlzLmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGluaXRpYWxpemUgd2lkZ2V0Iik7aWYoIShlPSgwLHMucmVzb2x2ZVRhcmdldEVsZW1lbnQpKHQpKSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldCBlbGVtZW50IG5vdCBmb3VuZCIpO3JldHVybiB0aGlzLnJlbmRlckZyYW1lKGUpLHRoaXMucmVuZGVyZWQ9ITAsWzJdfX0pfSl9LHQucHJvdG90eXBlLnJlbmRlckZyYW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmZyYW1lPXRoaXMuY3JlYXRlRnJhbWUoKTtuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHQsaSxhPW51bGwhPT0odD1uLmNvbnRlbnREb2N1bWVudCkmJnZvaWQgMCE9PXQ/dDpudWxsPT09KGk9bi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09aT92b2lkIDA6aS5kb2N1bWVudDtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50Iik7dmFyIGM9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLHU9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdO3UuaWQ9ImJvZHkiLHUuZGF0YXNldC5zbWFydHN1cHBJZD1lLmlkLHUuaW5uZXJIVE1MPSc8ZGl2IGlkPSJhcHAiPjwvZGl2Pic7dmFyIGw9InNyYy9tYWluLnRzIixwPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlU2NyaXB0KShhLGUuZ2V0QmFzZVVybCgpKyIvIi5jb25jYXQodCkpO24udHlwZT0ibW9kdWxlIixjLmFwcGVuZENoaWxkKG4pfSxmPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlTGluaykoYSwiIi5jb25jYXQoZS5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCkpO24ucmVsPSJzdHlsZXNoZWV0IixuLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGMuYXBwZW5kQ2hpbGQobil9O2Uub3B0aW9ucy53aWRnZXRWM0Rldk1vZGU/WyJAdml0ZS9jbGllbnQiLGxdLmZvckVhY2gocCk6cihlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxuLHIsaTtyZXR1cm4gbyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAscy5yZXF1ZXN0KSgiIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi9tYW5pZmVzdC5qc29uIikpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuKDAscy5wYXJzZUpTT04pKHQpfSldO2Nhc2UgMTpyZXR1cm4gdD1vLnNlbnQoKSxuPXRbbF0scChuLmZpbGUpLG51bGw9PT0ocj1uLmltcG9ydHMpfHx2b2lkIDA9PT1yfHxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbztyPXRbbl0uZmlsZSwobz0oMCxzLmNyZWF0ZUxpbmspKGEsIiIuY29uY2F0KGUuZ2V0QmFzZVVybCgpLCIvIikuY29uY2F0KHIpKSkucmVsPSJtb2R1bGVwcmVsb2FkIixjLmFwcGVuZENoaWxkKG8pfSksbnVsbD09PShpPW4uY3NzKXx8dm9pZCAwPT09aXx8aS5mb3JFYWNoKGYpLGYodFsic3R5bGUuY3NzIl0uZmlsZSksWzJdfX0pfSl9KSx0LmFwcGVuZENoaWxkKG4pfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC5wYXJlbnROb2RlJiYodGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpLHRoaXMuZWw9bnVsbCl9LHQucHJvdG90eXBlLmdldE9wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbdF0/ZTp0aGlzLm9wdGlvbnNbdF19LHQucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLndpZGdldFYzVXJsfSx0LnByb3RvdHlwZS5nZXRBc3NldFVybD1mdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCl9LHQucHJvdG90eXBlLmdldEludGVybmFsQXBpVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMub3B0aW9ucy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KHRoaXMub3B0aW9ucy5rZXksIi9jb2RlLmpzIil9LHQucHJvdG90eXBlLmV4ZWM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fcHVzaEFwaS5wdXNoKHQpfSx0LnByb3RvdHlwZS5pbnN0YWxsQXBpPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcGk9dCxhLnNtYXJ0c3VwcC5hcGk9dCx0aGlzLl9wdXNoQXBpJiYodGhpcy5fcHVzaEFwaS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4sMCk7dHJ5e2Uub3B0aW9ucy53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsaS50cmFja09wZXJhdGlvbikoZS5vcHRpb25zLHJbMF0pLHQuZXhlY3V0ZShyKX1jYXRjaCh0KXtjb25zb2xlLmxvZyh0KX19KSx0aGlzLl9wdXNoQXBpLnB1c2g9ZnVuY3Rpb24obil7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiwwKTt0cnl7ZS5vcHRpb25zLndpZGdldFRyYWNrZXJFbmFibGVkJiYoMCxpLnRyYWNrT3BlcmF0aW9uKShlLm9wdGlvbnMsclswXSksdC5leGVjdXRlKHIpfWNhdGNoKHQpe2NvbnNvbGUubG9nKHQpfX0pLHRoaXMub3B0aW9ucy5vblN0YXJ0dXApdHJ5e3RoaXMub3B0aW9ucy5vblN0YXJ0dXAodCl9Y2F0Y2godCl7Y29uc29sZS5sb2codCl9fSx0fSgpO2UuU21hcnRzdXBwV2lkZ2V0PXV9fSxlPXt9O2Z1bmN0aW9uIG4ocil7dmFyIG89ZVtyXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGk9ZVtyXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfW4uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLCgoKT0+eyJ1c2Ugc3RyaWN0IjtuKDc2MSk7dmFyIHQ9big3MTUpLGU9bigzNDUpLHI9ImNoYXQiO2lmKHdpbmRvdy5zbWFydHN1cHB8fCh3aW5kb3cuc21hcnRzdXBwPWZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcC5fLnB1c2goYXJndW1lbnRzKX0sd2luZG93LnNtYXJ0c3VwcC5fPVtdKSwhd2luZG93LlNNQVJUU1VQUF9MT0FERUQpe3dpbmRvdy5TTUFSVFNVUFBfTE9BREVEPSEwO3ZhciBvPW5ldyBlLlNtYXJ0c3VwcExvYWRlcih7d2lkZ2V0VmVyc2lvbjozLGJvb3RzdHJhcFVybDoiaHR0cHM6Ly9ib290c3RyYXAuc21hcnRzdXBwY2hhdC5jb20iLGZpbGVzVXJsOiJodHRwczovL2ZpbGVzLnNtYXJ0c3VwcGNkbi5jb20iLHdpZGdldFYzVXJsOiJodHRwczovL3dpZGdldC12My5zbWFydHN1cHBjZG4uY29tIixzdG9yYWdlVXJsOiJodHRwczovL3trZXl9LnN0b3JhZ2Uuc21hcnRzdXBwY2hhdC5jb20iLHdpZGdldEFwaVVybDoiaHR0cHM6Ly9hcGkuc21hcnRzdXBwY2hhdC5jb20iLHpJbmRleDoxZTcscG9zaXRpb246ImF1dG8iLG9yaWVudGF0aW9uOiJyaWdodCIsYXV0b0lubGluZU1vZGU6ITAsd2lkZ2V0VjNEZXZNb2RlOiExfSk7d2luZG93LiRzbWFydHN1cHA9byx3aW5kb3cuc21hcnRzdXBwPU9iamVjdC5hc3NpZ24od2luZG93LnNtYXJ0c3VwcCx7Y2hhdHM6by53aWRnZXRzLGNyZWF0ZTpvLmNyZWF0ZS5iaW5kKG8pLGNyZWF0ZVdpZGdldDpvLmNyZWF0ZVdpZGdldC5iaW5kKG8pLGdldENoYXQ6by5nZXRDaGF0LmJpbmQobyksZ2V0V2lkZ2V0Om8uZ2V0V2lkZ2V0LmJpbmQobyksc2V0RGVmYXVsdHM6by5zZXREZWZhdWx0cy5iaW5kKG8pfSksITEhPT13aW5kb3cuU01BUlRTVVBQX0FVVE9DUkVBVEUmJighMD09PXdpbmRvdy5TTUFSVFNVUFBfQkZDQUNIRSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9d2luZG93LnNtYXJ0c3VwcC5nZXRXaWRnZXQocikpfHx2b2lkIDA9PT10fHx0LnJlbmRlcigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXt2YXIgdCxlO251bGw9PT0odD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQociwiLWFwcGxpY2F0aW9uLWlmcmFtZSIpKSl8fHZvaWQgMD09PXR8fHQucmVtb3ZlKCksbnVsbD09PShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbWFydHN1cHAtd2lkZ2V0LWNvbnRhaW5lciIpKXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmUoKX0pKSx0KGZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcCgiaHRtbDphcHBseSIsZG9jdW1lbnQpLG8uY3JlYXRlV2lkZ2V0KHIsd2luZG93Ll9zbWFydHN1cHAsd2luZG93LnNtYXJ0c3VwcC5fKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkuY2F0Y2goZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKHQpfSl9KSl9fSkoKX0pKCk7"}},"time_used":3680,"timings":{"blocked":-1,"dns":155,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3509},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.14.0","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.862Z","timestamp":1785145403862,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.14.0 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-19e1\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":6625,"size_decoded":2638,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (6625), with no line terminators","md5":"fd7ef2e4737acd74fd0dcdc3b515e304","sha1":"0d792b33f12a48ee8aaaf2560a63a5682470645b","sha256":"1d52e1ac7d3bc25a8b0ffc257153f9dd50249f96fe9a4df5e0d771241a69062c","sha512":"3c4358f9605f1cce097f36689099b8364c43cc360c3d4f5ca77be5cee43bb818c6562496f26ad57ce44c34c474fe4ccb6deed01a14ed259d498f5bc17f9532c7","ssdeep":"192:cvtxGU52v1wAsFYM3qypqEdSmNql44UakS:cvwQ3sFWqxUaP","tlshash":"e1d163c9b1c6f41503977724951f100ae33a695ef9094458eb18e9e2fcf444ea22bf79","first_seen":"2023-11-03T09:26:42Z","last_seen":"2026-08-11T20:39:17.433811Z","times_seen":32240,"resource_available":true,"data":"dmFyIHJ1bnRpbWU9ZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlLHI9T2JqZWN0LnByb3RvdHlwZSxuPXIuaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxyKXt0W2VdPXIudmFsdWV9LGk9KHc9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYT13LmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGM9dy50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIHUodCxlLHIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7dSh7fSwiIil9Y2F0Y2gocil7dT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbZV09cn19ZnVuY3Rpb24gaCh0LHIsbixpKXt2YXIgYSxjLHUsaDtyPXImJnIucHJvdG90eXBlIGluc3RhbmNlb2Ygdj9yOnYscj1PYmplY3QuY3JlYXRlKHIucHJvdG90eXBlKSxpPW5ldyBPKGl8fFtdKTtyZXR1cm4gbyhyLCJfaW52b2tlIix7dmFsdWU6KGE9dCxjPW4sdT1pLGg9ZixmdW5jdGlvbih0LHIpe2lmKGg9PT1wKXRocm93IG5ldyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKGg9PT15KXtpZigidGhyb3ciPT09dCl0aHJvdyByO3JldHVybnt2YWx1ZTplLGRvbmU6ITB9fWZvcih1Lm1ldGhvZD10LHUuYXJnPXI7Oyl7dmFyIG49dS5kZWxlZ2F0ZTtpZihuJiYobj1mdW5jdGlvbiB0KHIsbil7dmFyIG89bi5tZXRob2QsaT1yLml0ZXJhdG9yW29dO3JldHVybiBpPT09ZT8obi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1vJiZyLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPWUsdChyLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09byYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIitvKyInIG1ldGhvZCIpKSxnKToidGhyb3ciPT09KG89bChpLHIuaXRlcmF0b3Isbi5hcmcpKS50eXBlPyhuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW8uYXJnLG4uZGVsZWdhdGU9bnVsbCxnKTooaT1vLmFyZyk/aS5kb25lPyhuW3IucmVzdWx0TmFtZV09aS52YWx1ZSxuLm5leHQ9ci5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9ZSksbi5kZWxlZ2F0ZT1udWxsLGcpOmk6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsZyl9KG4sdSksbikpe2lmKG49PT1nKWNvbnRpbnVlO3JldHVybiBufWlmKCJuZXh0Ij09PXUubWV0aG9kKXUuc2VudD11Ll9zZW50PXUuYXJnO2Vsc2UgaWYoInRocm93Ij09PXUubWV0aG9kKXtpZihoPT09Zil0aHJvdyBoPXksdS5hcmc7dS5kaXNwYXRjaEV4Y2VwdGlvbih1LmFyZyl9ZWxzZSJyZXR1cm4iPT09dS5tZXRob2QmJnUuYWJydXB0KCJyZXR1cm4iLHUuYXJnKTtpZihoPXAsIm5vcm1hbCI9PT0obj1sKGEsYyx1KSkudHlwZSl7aWYoaD11LmRvbmU/eTpzLG4uYXJnIT09ZylyZXR1cm57dmFsdWU6bi5hcmcsZG9uZTp1LmRvbmV9fWVsc2UidGhyb3ciPT09bi50eXBlJiYoaD15LHUubWV0aG9kPSJ0aHJvdyIsdS5hcmc9bi5hcmcpfX0pfSkscn1mdW5jdGlvbiBsKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLHIpfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19dC53cmFwPWg7dmFyIGY9InN1c3BlbmRlZFN0YXJ0IixzPSJzdXNwZW5kZWRZaWVsZCIscD0iZXhlY3V0aW5nIix5PSJjb21wbGV0ZWQiLGc9e307ZnVuY3Rpb24gdigpe31mdW5jdGlvbiBkKCl7fWZ1bmN0aW9uIG0oKXt9dmFyIHcsYixMPSgoYj0oYj0odSh3PXt9LGksKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksT2JqZWN0LmdldFByb3RvdHlwZU9mKSkmJmIoYihrKFtdKSkpKSYmYiE9PXImJm4uY2FsbChiLGkpJiYodz1iKSxtLnByb3RvdHlwZT12LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpKTtmdW5jdGlvbiB4KHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dSh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBFKHQsZSl7dmFyIHI7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBhKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihyLGEpeyFmdW5jdGlvbiByKG8saSxhLGMpe3ZhciB1O2lmKCJ0aHJvdyIhPT0obz1sKHRbb10sdCxpKSkudHlwZSlyZXR1cm4oaT0odT1vLmFyZykudmFsdWUpJiYib2JqZWN0Ij09dHlwZW9mIGkmJm4uY2FsbChpLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGkuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7cigibmV4dCIsdCxhLGMpfSksKGZ1bmN0aW9uKHQpe3IoInRocm93Iix0LGEsYyl9KSk6ZS5yZXNvbHZlKGkpLnRoZW4oKGZ1bmN0aW9uKHQpe3UudmFsdWU9dCxhKHUpfSksKGZ1bmN0aW9uKHQpe3JldHVybiByKCJ0aHJvdyIsdCxhLGMpfSkpO2Moby5hcmcpfShvLGkscixhKX0pKX1yZXR1cm4gcj1yP3IudGhlbihhLGEpOmEoKX19KX1mdW5jdGlvbiBqKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIF8odCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIE8odCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChqLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIGsodCl7aWYodHx8IiI9PT10KXt2YXIgcixvPXRbaV07aWYobylyZXR1cm4gby5jYWxsKHQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm5leHQpcmV0dXJuIHQ7aWYoIWlzTmFOKHQubGVuZ3RoKSlyZXR1cm4gcj0tMSwobz1mdW5jdGlvbiBvKCl7Zm9yKDsrK3I8dC5sZW5ndGg7KWlmKG4uY2FsbCh0LHIpKXJldHVybiBvLnZhbHVlPXRbcl0sby5kb25lPSExLG87cmV0dXJuIG8udmFsdWU9ZSxvLmRvbmU9ITAsb30pLm5leHQ9b310aHJvdyBuZXcgVHlwZUVycm9yKHR5cGVvZiB0KyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG8oTCwiY29uc3RydWN0b3IiLHt2YWx1ZTpkLnByb3RvdHlwZT1tLGNvbmZpZ3VyYWJsZTohMH0pLG8obSwiY29uc3RydWN0b3IiLHt2YWx1ZTpkLGNvbmZpZ3VyYWJsZTohMH0pLGQuZGlzcGxheU5hbWU9dShtLGMsIkdlbmVyYXRvckZ1bmN0aW9uIiksdC5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3IpJiYodD09PWR8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0odC5kaXNwbGF5TmFtZXx8dC5uYW1lKSl9LHQubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LG0pOih0Ll9fcHJvdG9fXz1tLHUodCxjLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEwpLHR9LHQuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LHgoRS5wcm90b3R5cGUpLHUoRS5wcm90b3R5cGUsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSx0LkFzeW5jSXRlcmF0b3I9RSx0LmFzeW5jPWZ1bmN0aW9uKGUscixuLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEUoaChlLHIsbixvKSxpKTtyZXR1cm4gdC5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSx4KEwpLHUoTCxjLCJHZW5lcmF0b3IiKSx1KEwsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSx1KEwsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIGUscj1PYmplY3QodCksbj1bXTtmb3IoZSBpbiByKW4ucHVzaChlKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgZT1uLnBvcCgpO2lmKGUgaW4gcilyZXR1cm4gdC52YWx1ZT1lLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LHQudmFsdWVzPWssTy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk8scmVzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9ZSx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz1lLHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKF8pLCF0KWZvcih2YXIgciBpbiB0aGlzKSJ0Ij09PXIuY2hhckF0KDApJiZuLmNhbGwodGhpcyxyKSYmIWlzTmFOKCtyLnNsaWNlKDEpKSYmKHRoaXNbcl09ZSl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbih0KXtpZih0aGlzLmRvbmUpdGhyb3cgdDt2YXIgcj10aGlzO2Z1bmN0aW9uIG8obixvKXtyZXR1cm4gYy50eXBlPSJ0aHJvdyIsYy5hcmc9dCxyLm5leHQ9bixvJiYoci5tZXRob2Q9Im5leHQiLHIuYXJnPWUpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xOzA8PWk7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sYz1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciB1PW4uY2FsbChhLCJjYXRjaExvYyIpLGg9bi5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZih1JiZoKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZih1KXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFoKXRocm93IG5ldyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7MDw9cjstLXIpe3ZhciBvPXRoaXMudHJ5RW50cmllc1tyXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZuLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX12YXIgYT0oaT1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYz9udWxsOmkpP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxnKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGd9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xOzA8PWU7LS1lKXt2YXIgcj10aGlzLnRyeUVudHJpZXNbZV07aWYoci5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sci5hZnRlckxvYyksXyhyKSxnfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTswPD1lOy0tZSl7dmFyIHIsbixvPXRoaXMudHJ5RW50cmllc1tlXTtpZihvLnRyeUxvYz09PXQpcmV0dXJuInRocm93Ij09PShyPW8uY29tcGxldGlvbikudHlwZSYmKG49ci5hcmcsXyhvKSksbn10aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6ayh0KSxyZXN1bHROYW1lOnIsbmV4dExvYzpufSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPWUpLGd9fSx0fSgib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0czp7fSk7dHJ5e3JlZ2VuZXJhdG9yUnVudGltZT1ydW50aW1lfWNhdGNoKHQpeyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzLnJlZ2VuZXJhdG9yUnVudGltZT1ydW50aW1lOkZ1bmN0aW9uKCJyIiwicmVnZW5lcmF0b3JSdW50aW1lID0gciIpKHJ1bnRpbWUpfQ=="}},"time_used":471,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":471,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/hero-icon.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.039Z","timestamp":1785145405039,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/hero-icon.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 4262\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-10a6\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":4262,"size_decoded":4515,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"139378700f2eb7f192460f7d3e17366d","sha1":"36cb2f581c288a7db224f4de9f24184de9f515af","sha256":"c12799e1a3cca0332373ad804515a950375b64838d3fb7738e07cfaef0bafc8c","sha512":"b56924fdbfcfeda661d188a46086e5055a1cf78e24338cee3f5a8fc7e4a5c0a2f160a7ef483f2fe4d76d43800f49862bb93d719e3f91550fedb8a6f34d649ab3","ssdeep":"96:z7sIXCPeGezdmYYZBjvICl0XrbImVG4Qo/P29:bCPaxmvjGbbrXP29","tlshash":"c09181e6a394c3bcf041e7fd8166547039a27de87b53d4ea82c41c96d95005d0a6dceb","first_seen":"2026-05-20T00:20:36.614516Z","last_seen":"2026-07-27T14:04:41.085853Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MyIgaGVpZ2h0PSI1MCIgdmlld0JveD0iMCAwIDUzIDUwIiBmaWxsPSJub25lIj48ZyBpZD0iR3JvdXAgMTQwMTM3NjIiPjxnIGlkPSJHcm91cCAxNDAxMzc2MSI+PGNpcmNsZSBpZD0iRWxsaXBzZSAyNjciIGN4PSIzNS43NzU2IiBjeT0iMTIuNSIgcj0iMTEuNjM3OSIgZmlsbD0iIzY4Q0RFRCI+PC9jaXJjbGU+PGcgaWQ9Ikdyb3VwIDE0MDEzNzYwIj48cGF0aCBpZD0iVmVjdG9yIiBkPSJNMzYuMzY0IDI0LjY3NTNDNDMuMTY3IDI0LjY3NTMgNDguNzAxNyAxOS4xNDA2IDQ4LjcwMTcgMTIuMzM3N0M0OC43MDE3IDUuNTM0NzEgNDMuMTY2IDAgMzYuMzY0IDBDMjkuNTYyMSAwIDI0LjAyNjQgNS41MzQ3MSAyNC4wMjY0IDEyLjMzNzdDMjQuMDI2NCAxOS4xNDA2IDI5LjU2MTEgMjQuNjc1MyAzNi4zNjQgMjQuNjc1M1pNMzYuMzY0IDEuNDc1NTNDNDIuMzUyNiAxLjQ3NTUzIDQ3LjIyNjIgNi4zNDgxMSA0Ny4yMjYyIDEyLjMzNzdDNDcuMjI2MiAxOC4zMjcyIDQyLjM1MzYgMjMuMTk5OCAzNi4zNjQgMjMuMTk5OEMzMC4zNzQ1IDIzLjE5OTggMjUuNTAxOSAxOC4zMjcyIDI1LjUwMTkgMTIuMzM3N0MyNS41MDE5IDYuMzQ5MSAzMC4zNzQ1IDEuNDc1NTMgMzYuMzY0IDEuNDc1NTNaTTMyLjUwNzIgOS42MDM3MUMzMi41MDcyIDcuODk1MzYgMzMuODQ0MiA2LjQ2Njk4IDM1LjYxMzUgNi4xNDc3MUwzNS41ODg5IDUuMTIwMTRDMzUuNTc5MSA0LjcxMjQ2IDM1LjkwMTMgNC4zNzQ1MiAzNi4zMDkgNC4zNjM3MkMzNi43MTk3IDQuMzUyOTEgMzcuMDU0NiA0LjY3NjExIDM3LjA2NTQgNS4wODM4TDM3LjA5MSA2LjE2OTMyQzM4LjA0MjkgNi4zNzU2MiAzOS4yNDE0IDYuOTI4NyAzOS43NDczIDcuNjk5ODZDMzkuOTcxMyA4LjA0MDc1IDM5Ljg3NyA4LjQ5NzU1IDM5LjUzNjEgOC43MjI1MkMzOS4xOTYyIDguOTQ2NSAzOC43Mzg0IDguODUyMTkgMzguNTEzNSA4LjUxMTMxQzM4LjIzMjUgOC4wODI5OSAzNy4wNDY4IDcuNTU3NDIgMzYuMzYzIDcuNTU3NDJDMzUuMDUwNiA3LjU1NzQyIDMzLjk4MjggOC40NzQ5NiAzMy45ODI4IDkuNjA0NjlDMzMuOTgyOCAxMC43MzQ0IDM1LjA1MDYgMTEuNjUyIDM2LjM2MyAxMS42NTJDMzguNDg5OSAxMS42NTIgNDAuMjE5OSAxMy4yMzI2IDQwLjIxOTkgMTUuMTc0OEM0MC4yMTk5IDE2Ljg4MjEgMzguODgyOCAxOC4zMDk1IDM3LjExNTUgMTguNjMwOEwzNy4xMzgxIDE5LjU1NjJDMzcuMTQ4IDE5Ljk2MzkgMzYuODI1NyAyMC4zMDE4IDM2LjQxODEgMjAuMzEyNkgzNi4zOTk0QzM1Ljk5OTYgMjAuMzEyNiAzNS42NzE1IDE5Ljk5NDMgMzUuNjYxNiAxOS41OTI1TDM1LjYzOSAxOC42NDI2QzM0LjU3MDIgMTguNDY3NyAzMy44OTM0IDE3LjkxMDcgMzMuMjQ2OSAxNy4zMDA2QzMyLjk1MDMgMTcuMDIwNyAzMi45MzY1IDE2LjU1MyAzMy4yMTY1IDE2LjI1NzNDMzMuNDk2NSAxNS45NjA3IDMzLjk2MzEgMTUuOTQ2OSAzNC4yNTk4IDE2LjIyNjlDMzUuMDA0NCAxNi45MjgzIDM1LjQ2MTIgMTcuMjIzIDM2LjM2MjEgMTcuMjIzQzM3LjY3NDUgMTcuMjIzIDM4Ljc0MjQgMTYuMzA1NSAzOC43NDI0IDE1LjE3NTdDMzguNzQyNCAxNC4wNDYgMzcuNjc0NSAxMy4xMjg1IDM2LjM2MjEgMTMuMTI4NUMzNC4yMzYyIDEzLjEyODUgMzIuNTA2MiAxMS41NDc4IDMyLjUwNjIgOS42MDU2N0wzMi41MDcyIDkuNjAzNzFaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNNTIuMzk4MyAzMS43NjEyQzUyLjAyNjMgMzAuNjg5IDUxLjEzOTYgMjkuOTExMSA0OS45MDI4IDI5LjU3MDJDNDguNTcyOCAyOS4yMDQxIDQ2Ljg0NCAyOS4zMjI2IDQ0Ljc2NjEgMjkuOTIwOEwzNS4zMjI5IDMyLjY0MTFDMzUuMjg0MiAzMi41NjQ0IDM1LjI0MzYgMzIuNDg5NiAzNS4xOTg5IDMyLjQxNDhDMzQuNjY4MyAzMS41MTY1IDMzLjgxNjMgMzAuODc1NSAzMi43OTc3IDMwLjYwOTRMMjYuMDgxIDI4Ljg1MjVDMjEuMTcxNSAyNS40OTAzIDE4LjU0MzEgMjYuNDU4NiAxNC42NzcgMjguMzEzNUMxMi41NDM2IDI5LjMzNjIgMTAuMzc3NCAzMC4zNDQyIDguMTY3NiAzMS4zNjU5TDcuOTk0MDMgMzAuOTc5NEM3LjQ4NTIyIDI5Ljg0NyA2LjEyOTM4IDI5LjMyOTQgNC45NzI5MSAyOS44Mjc2TDEuMzc0NTUgMzEuMzcyN0MwLjgxMDE5NyAzMS42MTU1IDAuMzc3NzU5IDMyLjA1NTUgMC4xNTY1OCAzMi42MTI5Qy0wLjA2NTU4OTYgMzMuMTcxMyAtMC4wNTA3MTIxIDMzLjc4MTIgMC4xOTcyNDUgMzQuMzMzOEw2LjYzMjI0IDQ4LjY1ODdDNy4wMDkxNCA0OS40OTg4IDcuODUzMTkgNDkuOTk5OSA4LjczNTkxIDQ5Ljk5OTlDOS4wNDMzOCA0OS45OTk5IDkuMzU0ODIgNDkuOTM5NyA5LjY1MzM2IDQ5LjgxMDVMMTMuMjUxNyA0OC4yNjU0QzEzLjgxNjEgNDguMDIyNiAxNC4yNDg1IDQ3LjU4MjcgMTQuNDcwNyA0Ny4wMjUyQzE0LjY5MTkgNDYuNDY3NyAxNC42NzggNDUuODU1OSAxNC40MyA0NS4zMDQzTDEzLjgwMjIgNDMuOTA1OEwxNy4wMTM3IDQyLjM3NDJDMTcuODc0NiA0MS45NjM0IDE4LjczOTUgNDEuODkwNiAxOS42NTg5IDQyLjE1MThMMjcuMjA3OCA0NC4yOTIzQzI3Ljc2MzIgNDQuNDQ5NiAyOC4zMzY1IDQ0LjUxNzYgMjguOTE4NyA0NC41MTc2QzMwLjkyOTEgNDQuNTE3NiAzMy4wMzQ4IDQzLjcxMjUgMzQuODA1MiA0My4wMzc1QzM0Ljk2MDkgNDIuOTc4MyAzNS4xMTM2IDQyLjkyIDM1LjI2MzQgNDIuODYyN0w0OS40MjQ4IDM3LjUwNzdDNTEuNzIyOCAzNi42Mzk0IDUzLjE0MTIgMzMuODk5NyA1Mi4zOTkzIDMxLjc2MTJINTIuMzk4M1pNMTMuMDgxMSA0Ni40OTc4QzEzLjAwMzggNDYuNjkyMSAxMi44NTEgNDYuODQ1NSAxMi42NTI3IDQ2LjkzMUw5LjA1NDI5IDQ4LjQ3NjFDOC42NDk2MyA0OC42NSA4LjE3NDU0IDQ4LjQ2OTMgNy45OTYwMSA0OC4wNzIxTDEuNTYwMDIgMzMuNzQ4MkMxLjQ3Mjc0IDMzLjU1MyAxLjQ2Njc5IDMzLjMzOTQgMS41NDQxNSAzMy4xNDUxQzEuNjIxNTEgMzIuOTUwOSAxLjc3NDI2IDMyLjc5NjUgMS45NzI2MiAzMi43MTFMNS41NzA5OCAzMS4xNjU5QzUuNjc1MTMgMzEuMTIxMiA1Ljc4NTIyIDMxLjA5OTggNS44OTIzNCAzMS4wOTk4QzYuMjAwOCAzMS4wOTk4IDYuNDk3MzUgMzEuMjc1NiA2LjYyOTI3IDMxLjU2OTlMMTMuMDY0MyA0NS44OTQ3QzEzLjE1MjUgNDYuMDkwOSAxMy4xNTg1IDQ2LjMwNDYgMTMuMDgwMSA0Ni40OTg4TDEzLjA4MTEgNDYuNDk3OFpNNDguODg1MiAzNi4xNDdMMzQuNzIzOSA0MS41MDIxQzM0LjU3MzEgNDEuNTU5NCAzNC40MTg0IDQxLjYxODYgMzQuMjYwNyA0MS42Nzc5QzMyLjE4NzcgNDIuNDY5NCAyOS42MDcgNDMuNDU1MSAyNy42MTk0IDQyLjg5MTlMMjAuMDcwNiA0MC43NTI0QzE4Ljc5OCA0MC4zOTIgMTcuNTQ4MyA0MC40OTY5IDE2LjM1ODEgNDEuMDY0MUwxMy4xOTkyIDQyLjU3MDRMOC43NjU2NyAzMi43MDIzQzEwLjk5MjMgMzEuNjcxOCAxMy4xNzczIDMwLjY1NyAxNS4zMjk2IDI5LjYyMzZDMTguOTM0OSAyNy44OTQgMjEuMDE2OCAyNy4xMzA2IDI1LjMyNjMgMzAuMTE5OUMyNS4zOTg3IDMwLjE2OTQgMjUuNDc5IDMwLjIwNzMgMjUuNTY0MyAzMC4yMjg3TDMyLjQwODkgMzIuMDE5NUMzMy4wNDE3IDMyLjE4NDYgMzMuNTczMyAzMi41ODQ3IDMzLjkwMzYgMzMuMTQ2MUMzNC4yMzQ5IDMzLjcwNjUgMzQuMzIzMiAzNC4zNTcxIDM0LjE1NDUgMzQuOTc2OEMzMy45ODU5IDM1LjU5NjQgMzMuNTc3MyAzNi4xMTY5IDMzLjAwNCAzNi40NDAzQzMyLjQzMTcgMzYuNzY0NyAzMS43NjgyIDM2Ljg1MjEgMzEuMTM0NCAzNi42ODZMMjIuMDM4MyAzNC4zMDY2QzIxLjY0MDYgMzQuMjAyNyAyMS4yMzMgMzQuNDMzOSAyMS4xMjU5IDM0LjgyMzNDMjEuMDE5NyAzNS4yMTI4IDIxLjI1NTggMzUuNjExOSAyMS42NTM1IDM1LjcxNjhMMzAuNzQ5NiAzOC4wOTYyQzMxLjc2NzIgMzguMzYyMyAzMi44MzI0IDM4LjIyMzQgMzMuNzQ5OSAzNy43MDM4QzM0LjY2NzMgMzcuMTg0MiAzNS4zMjE5IDM2LjM1IDM1LjU5MzcgMzUuMzUzNkMzNS43MTE3IDM0LjkyMTQgMzUuNzUxNCAzNC40ODE1IDM1LjcxNTcgMzQuMDQ3M0w0NS4xNzk3IDMxLjMyMTJDNDguMzAzIDMwLjQyMTkgNTAuNDcxMiAzMC43NjE5IDUwLjk4MSAzMi4yMzEyQzUxLjQ2NSAzMy42MjM5IDUwLjQyNDUgMzUuNTYzNCA0OC44ODIyIDM2LjE0N0g0OC44ODUyWiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjwvZz48L2c+PC9nPjwvc3ZnPiA="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-B4RQS3TZG8\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.456Z","timestamp":1785145405456,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-B4RQS3TZG8\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:25 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 182673\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":553034,"size_decoded":183257,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6033)","md5":"45e4b68413538cd9ed3094caa88230a0","sha1":"ea93f14a8bc9b380e6ae252f93d550878f909d17","sha256":"95d2efff7d22fee66f47164d795fee7ab06d43574aec88aa25c36a31e2ed22a4","sha512":"e95510a0762ac38b82d58e510ec85434493e296c9bcecb7ec47a3a93782b731277889e4a4f6384ef93b5120dc6702a57d04fdf40c5e48f730d7e6457839afaca","ssdeep":"6144:ryc9aU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjEUGxVGa4oXuARR3S:r79D1WLP69V3KIUGxV4OLS","tlshash":"5bc40aceb3d674265396f478503f01cba97b25e2b49cc89ab1c9cce02d7464a8167f78","first_seen":"2026-07-27T09:44:08.344297Z","last_seen":"2026-07-27T14:04:41.078655Z","times_seen":4,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMiIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiZ29vZ2xlLm5vIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6MH1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fb2d0X2dhX3NlbmQiLCJwcmlvcml0eSI6MTcsInZ0cF92YWx1ZSI6dHJ1ZSwidGFnX2lkIjoxMDZ9LHsiZnVuY3Rpb24iOiJfX29ndF9zZXNzaW9uX3RpbWVvdXQiLCJwcmlvcml0eSI6MTcsInZ0cF9zZXNzaW9uTWludXRlcyI6MzAsInZ0cF9zZXNzaW9uSG91cnMiOjAsInRhZ19pZCI6MTA4fSx7ImZ1bmN0aW9uIjoiX19vZ3RfMXBfZGF0YV92MiIsInByaW9yaXR5IjoxNywidnRwX2lzQXV0b0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvUGhvbmVFbmFibGVkIjp0cnVlLCJ2dHBfYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiOlsibGlzdCIsWyJtYXAiLCJleGNsdXNpb25TZWxlY3RvciIsIiJdXSwidnRwX2lzRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9BZGRyZXNzRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9FbWFpbEVuYWJsZWQiOnRydWUsInZ0cF9pc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciOnRydWUsInRhZ19pZCI6MTA5fSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfZmlyc3QiLCJwcmlvcml0eSI6MTYsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ0YWdfaWQiOjEyNn0seyJmdW5jdGlvbiI6Il9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiLCJwcmlvcml0eSI6MTUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfZm9yZWlnblRsZE1hY3JvUmVzdWx0IjpbIm1hY3JvIiwxXSwidnRwX2lzQ2hpbmFWaXBSZWdpb25NYWNyb1Jlc3VsdCI6WyJtYWNybyIsMl0sInRhZ19pZCI6MTI1fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZ29vZ2xlX3NpZ25hbHMiLCJwcmlvcml0eSI6MTQsInZ0cF9nb29nbGVTaWduYWxzIjoiRU5BQkxFRCIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ0YWdfaWQiOjEyNH0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX3JlZ3Njb3BlIiwicHJpb3JpdHkiOjEzLCJ2dHBfc2V0dGluZ3NUYWJsZSI6WyJsaXN0IixbIm1hcCIsInJlZGFjdEZpZWxkR3JvdXAiLCJERVZJQ0VfQU5EX0dFTyIsImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIiwiIl0sWyJtYXAiLCJyZWRhY3RGaWVsZEdyb3VwIiwiR09PR0xFX1NJR05BTFMiLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLGZhbHNlLCJkaXNhbGxvd2VkUmVnaW9ucyIsIiJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQjRSUVMzVFpHOCIsInRhZ19pZCI6MTIzfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZG93bmxvYWQiLCJwcmlvcml0eSI6MTIsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1CNFJRUzNUWkc4IiwidGFnX2lkIjoxMjJ9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIsInByaW9yaXR5IjoxMSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ0YWdfaWQiOjEyMX0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3Njcm9sbCIsInByaW9yaXR5IjoxMCwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ0YWdfaWQiOjEyMH0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3NpdGVfc2VhcmNoIiwicHJpb3JpdHkiOjksInZ0cF9zZWFyY2hRdWVyeVBhcmFtcyI6InEscyxzZWFyY2gscXVlcnksa2V5d29yZCIsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1CNFJRUzNUWkc4IiwidGFnX2lkIjoxMTl9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV92aWRlbyIsInByaW9yaXR5Ijo4LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQjRSUVMzVFpHOCIsInRhZ19pZCI6MTE4fSx7ImZ1bmN0aW9uIjoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIiwicHJpb3JpdHkiOjcsInZ0cF9jb252ZXJzaW9uUnVsZXMiOlsibGlzdCIsWyJtYXAiLCJtYXRjaGluZ1J1bGVzIiwie1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJwdXJjaGFzZVwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwicHJlX2xhdW5jaF9lbWFpbHNcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNvbnZlcnNpb25fZXZlbnRfc3Vic2NyaWJlX3BhaWRcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNsb3NlX2NvbnZlcnRfbGVhZFwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwicXVhbGlmeV9sZWFkXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19Il1dLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1CNFJRUzNUWkc4IiwidGFnX2lkIjoxMTd9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6NiwidnRwX2V2ZW50TmFtZSI6InB1cmNoYXNlIiwidnRwX2lzQ29weSI6ZmFsc2UsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfcHJlY29tcGlsZWRSdWxlIjpbIm1hcCIsIm5ld19ldmVudF9uYW1lIiwicHVyY2hhc2UiLCJtZXJnZV9zb3VyY2VfZXZlbnRfcGFyYW1zIixmYWxzZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJwYWdlX3ZpZXciXV0sInR5cGUiLCJlcSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9sb2NhdGlvbiJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwib3JkZXItcmVjZWl2ZWQiXV0sInR5cGUiLCJjbmkiXV1dXV0sInRhZ19pZCI6MTE2fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjUsInZ0cF9ldmVudE5hbWUiOiJUWDNfcHVyY2hhc2UiLCJ2dHBfaXNDb3B5IjpmYWxzZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQjRSUVMzVFpHOCIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJUWDNfcHVyY2hhc2UiLCJtZXJnZV9zb3VyY2VfZXZlbnRfcGFyYW1zIixmYWxzZSwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfbmFtZSJdLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJwYWdlX3ZpZXciXV0sInR5cGUiLCJlcSJdXSwiY29uZGl0aW9ucyIsWyJsaXN0IixbIm1hcCIsInByZWRpY2F0ZXMiLFsibGlzdCIsWyJtYXAiLCJ2YWx1ZXMiLFsibGlzdCIsWyJtYXAiLCJ0eXBlIiwiZXZlbnRfcGFyYW0iLCJldmVudF9wYXJhbSIsWyJtYXAiLCJwYXJhbV9uYW1lIiwicGFnZV9sb2NhdGlvbiJdXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwib3JkZXItcmVjZWl2ZWQiXV0sInR5cGUiLCJjbmkiXV1dXV0sInRhZ19pZCI6MTE1fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjQsInZ0cF9ldmVudE5hbWUiOiJwcmVfbGF1bmNoX2VtYWlscyIsInZ0cF9pc0NvcHkiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfcHJlY29tcGlsZWRSdWxlIjpbIm1hcCIsIm5ld19ldmVudF9uYW1lIiwicHJlX2xhdW5jaF9lbWFpbHMiLCJtZXJnZV9zb3VyY2VfZXZlbnRfcGFyYW1zIix0cnVlLCJldmVudF9uYW1lX3ByZWRpY2F0ZSIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9uYW1lIl0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsInBhZ2VfdmlldyJdXSwidHlwZSIsImVxIl1dLCJjb25kaXRpb25zIixbImxpc3QiLFsibWFwIiwicHJlZGljYXRlcyIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX3BhdGgiXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsIlwvdGhhbmt5b3UuaHRtbCJdXSwidHlwZSIsInJlaSJdXV1dLCJldmVudF9wYXJhbV9vcHMiLFsibGlzdCIsWyJtYXAiLCJlZGl0X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJ2YWx1ZSIsInBhcmFtX3ZhbHVlIixbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiMC4wIl1dXSxbIm1hcCIsImVkaXRfcGFyYW0iLFsibWFwIiwicGFyYW1fbmFtZSIsImN1cnJlbmN5IiwicGFyYW1fdmFsdWUiLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJVU0QiXV1dXV0sInRhZ19pZCI6MTE0fSx7ImZ1bmN0aW9uIjoiX19vZ3RfZXZlbnRfY3JlYXRlIiwicHJpb3JpdHkiOjMsInZ0cF9ldmVudE5hbWUiOiJwdXJjaGFzZSIsInZ0cF9pc0NvcHkiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUI0UlFTM1RaRzgiLCJ2dHBfcHJlY29tcGlsZWRSdWxlIjpbIm1hcCIsIm5ld19ldmVudF9uYW1lIiwicHVyY2hhc2UiLCJtZXJnZV9zb3VyY2VfZXZlbnRfcGFyYW1zIix0cnVlLCJldmVudF9uYW1lX3ByZWRpY2F0ZSIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9uYW1lIl0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsInBhZ2VfdmlldyJdXSwidHlwZSIsImVxIl1dLCJjb25kaXRpb25zIixbImxpc3QiLFsibWFwIiwicHJlZGljYXRlcyIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX3BhdGgiXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsIlwvY2hlY2tvdXRcL29yZGVyLXJlY2VpdmVkXC8iXV0sInR5cGUiLCJzd2kiXV1dXV0sInRhZ19pZCI6MTEzfSx7ImZ1bmN0aW9uIjoiX19jY2RfYXV0b19yZWRhY3QiLCJwcmlvcml0eSI6MiwidnRwX3JlZGFjdEVtYWlsIjpmYWxzZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQjRSUVMzVFpHOCIsInRhZ19pZCI6MTEyfSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfYWRzX2xpbmsiLCJwcmlvcml0eSI6MSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQjRSUVMzVFpHOCIsInRhZ19pZCI6MTExfSx7ImZ1bmN0aW9uIjoiX19nY3QiLCJ2dHBfdHJhY2tpbmdJZCI6IkctQjRSUVMzVFpHOCIsInZ0cF9zZXNzaW9uRHVyYXRpb24iOjAsInRhZ19pZCI6MTAzfSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfbGFzdCIsInByaW9yaXR5IjowLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1CNFJRUzNUWkc4IiwidGFnX2lkIjoxMTB9XSwKICAicHJlZGljYXRlcyI6W3siZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5qcyJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5pbml0In1dLAogICJydWxlcyI6W1tbImlmIiwwXSxbImFkZCIsMTldXSxbWyJpZiIsMV0sWyJhZGQiLDAsMSwyLDIwLDE4LDE3LDE2LDE1LDE0LDEzLDEyLDExLDEwLDksOCw3LDYsNSw0LDNdXV0KfSwKInJ1bnRpbWUiOlsgWzUwLCJfX2MiLFs0NiwiYSJdLFszNixbMTcsWzE1LCJhIl0sInZhbHVlIl1dXQogLFs1MCwiX19jY2RfYXV0b19yZWRhY3QiLFs0NiwiYSJdLFs1MCwidiIsWzQ2LCJhRiJdLFszNixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwidSJdLCJcXCQxIl1dXV0sWzUwLCJ3IixbNDYsImFGIl0sWzUyLCJhRyIsWzMwLFsiYyIsWzE1LCJhRiJdXSxbMTUsImFGIl1dXSxbNTIsImFIIixbN11dLFs2NSwiYUkiLFsyLFsxNSwiYUciXSwic3BsaXQiLFs3LCIiXV0sWzQ2LFs1MyxbNTIsImFKIixbNyxbInYiLFsxNSwiYUkiXV1dXSxbNTIsImFLIixbImQiLFsxNSwiYUkiXV1dLFsyMixbMTIsWzE1LCJhSyJdLFs0NV1dLFs0NixbNTMsWzM2LFsiZCIsWyJ2IixbMTUsImFGIl1dXV1dXV0sWzIyLFsyMSxbMTUsImFLIl0sWzE1LCJhSSJdXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWzE1LCJhSyJdXV0sWzIyLFsyMSxbMTUsImFJIl0sWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzQ2LFs1MyxbMixbMTUsImFKIl0sInB1c2giLFs3LFsiZCIsWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXV1dLFs0NixbMjIsWzIxLFsxNSwiYUkiXSxbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWyJkIixbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXV1dXV1dXV1dXV0sWzIyLFsxOCxbMTcsWzE1LCJhSiJdLCJsZW5ndGgiXSwxXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzAsWzAsIig/OiIsWzIsWzE1LCJhSiJdLCJqb2luIixbNywifCJdXV0sIikiXV1dXV0sWzQ2LFs1MyxbMixbMTUsImFIIl0sInB1c2giLFs3LFsxNixbMTUsImFKIl0sMF1dXV1dXV1dXSxbMzYsWzIsWzE1LCJhSCJdLCJqb2luIixbNywiIl1dXV0sWzUwLCJ4IixbNDYsImFGIiwiYUciLCJhSCJdLFs1MiwiYUkiLFsieiIsWzE1LCJhRiJdLFsxNSwiYUgiXV1dLFsyMixbMjgsWzE1LCJhSSJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzI4LFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbNDEsImFKIl0sWzMsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzY1LCJhSyIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhTCIsWzcsWyJ2IixbMTUsImFLIl1dLFsidyIsWzE1LCJhSyJdXV1dLFs2NSwiYU0iLFsxNSwiYUwiXSxbNDYsWzUzLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJ0Il0sWzE1LCJhTSJdXSxbNDMsWzE1LCJ0Il0sWzE1LCJhTSJdLFsiYiIsWzAsWzAsIihbPyZdIixbMTUsImFNIl1dLCI9KShbXiZdKikiXSwiZ2kiXV1dXSxbMywiYUoiLFsyLFsxNSwiYUoiXSwicmVwbGFjZSIsWzcsWzE1LCJhTiJdLFswLCIkMSIsWzE1LCJyIl1dXV1dXV1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzIwLFsxNixbMTUsImFKIl0sMF0sIiYiXSxbNDYsWzMsImFKIixbMixbMTUsImFKIl0sInN1YnN0cmluZyIsWzcsMV1dXV1dLFsyMixbMjEsWzE2LFsxNSwiYUoiXSwwXSwiPyJdLFs0NixbMywiYUoiLFswLCI/IixbMTUsImFKIl1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLCI/Il0sWzQ2LFszLCJhSiIsIiJdXV0sWzQzLFsxNSwiYUkiXSwic2VhcmNoIixbMTUsImFKIl1dLFszNixbImFBIixbMTUsImFJIl0sWzE1LCJhSCJdXV1dLFs1MCwieiIsWzQ2LCJhRiIsImFHIl0sWzIyLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJQQVRIIl1dLFs0NixbNTMsWzMsImFGIixbMCxbMTUsInkiXSxbMTUsImFGIl1dXV1dXSxbMzYsWyJmIixbMTUsImFGIl1dXV0sWzUwLCJhQSIsWzQ2LCJhRiIsImFHIl0sWzQxLCJhSCJdLFszLCJhSCIsIiJdLFsyMixbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiVVJMIl1dLFs0NixbNTMsWzQxLCJhSSJdLFszLCJhSSIsIiJdLFsyMixbMzAsWzE3LFsxNSwiYUYiXSwidXNlcm5hbWUiXSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdXSxbNDYsWzUzLFszLCJhSSIsWzAsWzE1LCJhSSJdLFswLFswLFswLFsxNyxbMTUsImFGIl0sInVzZXJuYW1lIl0sWzM5LFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl0sIjoiLCIiXV0sWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXV0sIkAiXV1dXV1dLFszLCJhSCIsWzAsWzAsWzAsWzE3LFsxNSwiYUYiXSwicHJvdG9jb2wiXSwiLy8iXSxbMTUsImFJIl1dLFsxNyxbMTUsImFGIl0sImhvc3QiXV1dXV1dLFszNixbMCxbMCxbMCxbMTUsImFIIl0sWzE3LFsxNSwiYUYiXSwicGF0aG5hbWUiXV0sWzE3LFsxNSwiYUYiXSwic2VhcmNoIl1dLFsxNyxbMTUsImFGIl0sImhhc2giXV1dXSxbNTAsImFCIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwibiJdLFsxNSwiciJdXV1dLFsyMixbMzAsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlVSTCJdXSxbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiUEFUSCJdXV0sWzQ2LFs1MyxbNTIsImFJIixbInoiLFsxNSwiYUgiXSxbMTUsImFHIl1dXSxbMjIsWzIwLFsxNSwiYUkiXSxbNDRdXSxbNDYsWzM2LFsxNSwiYUgiXV1dXSxbNTIsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzUyLCJhSyIsWzIsWzE1LCJhSiJdLCJyZXBsYWNlIixbNyxbMTUsIm8iXSxbMTUsInIiXV1dXSxbMjIsWzIwLFsxNSwiYUoiXSxbMTUsImFLIl1dLFs0NixbMzYsWzE1LCJhSCJdXV1dLFs0MyxbMTUsImFJIl0sInNlYXJjaCIsWzE1LCJhSyJdXSxbMywiYUgiLFsiYUEiLFsxNSwiYUkiXSxbMTUsImFHIl1dXV1dXSxbMzYsWzE1LCJhSCJdXV0sWzUwLCJhQyIsWzQ2LCJhRiJdLFsyMixbMjAsWzE1LCJhRiJdLFsxNSwicSJdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlBBVEgiXV1dXSxbNDYsWzIyLFsyMSxbMixbMTUsInAiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRiJdXV0sWzI3LDFdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlVSTCJdXV1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiVEVYVCJdXV1dXV1dXSxbNTAsImFEIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixmYWxzZV0sWzUyLCJhSSIsWyJlIixbMTUsImFGIl1dXSxbMzgsWzE1LCJhSSJdLFs0Niwic3RyaW5nIiwiYXJyYXkiLCJvYmplY3QiXSxbNDYsWzUsWzQ2LFs1MiwiYUoiLFsiYUIiLFsxNSwiYUYiXSxbMTUsImFHIl1dXSxbMjIsWzIxLFsxNSwiYUYiXSxbMTUsImFKIl1dLFs0NixbNTMsWzM2LFsxNSwiYUoiXV1dXV0sWzRdXV0sWzUsWzQ2LFs1MyxbNDEsImFLIl0sWzMsImFLIiwwXSxbNjMsWzcsImFLIl0sWzIzLFsxNSwiYUsiXSxbMTcsWzE1LCJhRiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYUsiXSxbMywiYUsiLFswLFsxNSwiYUsiXSwxXV1dLFs0NixbNTMsWzUyLCJhTCIsWyJhRCIsWzE2LFsxNSwiYUYiXSxbMTUsImFLIl1dLFsxNyxbMTUsInMiXSwiVEVYVCJdXV0sWzIyLFsyMSxbMTUsImFMIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJhRiJdLFsxNSwiYUsiXSxbMTUsImFMIl1dLFszLCJhSCIsdHJ1ZV1dXV1dXV1dLFs0XV1dLFs1LFs0NixbNTQsImFLIixbMTUsImFGIl0sWzQ2LFs1MyxbNTIsImFMIixbImFEIixbMTYsWzE1LCJhRiJdLFsxNSwiYUsiXV0sWzE3LFsxNSwicyJdLCJURVhUIl1dXSxbMjIsWzIxLFsxNSwiYUwiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImFGIl0sWzE1LCJhSyJdLFsxNSwiYUwiXV0sWzMsImFIIix0cnVlXV1dXV1dXSxbNF1dXV1dLFszNixbMzksWzE1LCJhSCJdLFsxNSwiYUYiXSxbNDRdXV1dLFs1MCwiYUUiLFs0NiwiYUYiLCJhRyJdLFs1MiwiYUgiLFszMCxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwiYUgiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRyJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzE1LCJhRyJdXV1dXV0sWzIsWzE1LCJhRiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJBQyJdLFsxNSwiYUgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZGVjb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZW5jb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNTIsImsiLFsxNyxbMTUsImEiXSwicmVkYWN0RW1haWwiXV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInJlZGFjdFF1ZXJ5UGFyYW1zIl1dLFs1MiwibSIsWzM5LFsxNSwibCJdLFsyLFsxNSwibCJdLCJzcGxpdCIsWzcsIiwiXV0sWzddXV0sWzIyLFsxLFsyOCxbMTcsWzE1LCJtIl0sImxlbmd0aCJdXSxbMjgsWzE1LCJrIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsIm4iLFsiYiIsIltBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXFwuW0EtWl17Mix9IiwiZ2kiXV0sWzUyLCJvIixbImIiLFswLCIoW0EtWjAtOS5fLV18JTI1fCUyQikrJTQwW0EtWjAtOS4tXSIsIitcXC5bQS1aXXsyLH0iXSwiZ2kiXV0sWzUyLCJwIixbNywicGFnZV9sb2NhdGlvbiIsInBhZ2VfcmVmZXJyZXIiLCJwYWdlX3BhdGgiLCJsaW5rX3VybCIsInZpZGVvX3VybCIsImZvcm1fZGVzdGluYXRpb24iXV0sWzUyLCJxIiwicGFnZV9wYXRoIl0sWzUyLCJyIiwiKHJlZGFjdGVkKSJdLFs1MiwicyIsWzgsIlRFWFQiLDAsIlVSTCIsMSwiUEFUSCIsMl1dLFs1MiwidCIsWzhdXSxbNTIsInUiLFsiYiIsIihbXFxcXF4kLnw/KisoKXt9XXxcXFt8XFxbKSIsImciXV0sWzUyLCJ5IiwiaHR0cDovLy4iXSxbImciLFsxNSwiaiJdLFs1MSwiIixbNywiYUYiXSxbMjIsWzE1LCJrIl0sWzQ2LFs1MyxbNTIsImFHIixbMixbMTUsImFGIl0sImdldEhpdEtleXMiLFs3XV1dLFs2NSwiYUgiLFsxNSwiYUciXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhSCJdLCJfc3N0X3BhcmFtZXRlcnMiXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzIsWzE1LCJhRiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFIIl1dXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNl1dXSxbNTIsImFKIixbImFDIixbMTUsImFIIl1dXSxbNTIsImFLIixbImFEIixbMTUsImFJIl0sWzE1LCJhSiJdXV0sWzIyLFsyMSxbMTUsImFLIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsImFGIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYUgiXSxbMTUsImFLIl1dXSxbImFFIixbMTUsImFGIl0sWzM5LFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQk8iXV1dLFsxNyxbMTUsImkiXSwiVyJdLFsxNyxbMTUsImkiXSwiTyJdXV1dXV1dXV1dXV0sWzIyLFsxNyxbMTUsIm0iXSwibGVuZ3RoIl0sWzQ2LFs1MyxbNjUsImFHIixbMTUsInAiXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUYiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhRyJdXV1dLFsyMixbMjgsWzE1LCJhSCJdXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzM5LFsyMCxbMTUsImFHIl0sWzE1LCJxIl1dLFsxNyxbMTUsInMiXSwiUEFUSCJdLFsxNyxbMTUsInMiXSwiVVJMIl1dXSxbNTIsImFKIixbIngiLFsxNSwiYUgiXSxbMTUsIm0iXSxbMTUsImFJIl1dXSxbMjIsWzIxLFsxNSwiYUoiXSxbMTUsImFIIl1dLFs0NixbNTMsWzIsWzE1LCJhRiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFHIl0sWzE1LCJhSiJdXV0sWyJhRSIsWzE1LCJhRiJdLFszOSxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJPIl1dXSxbMTcsWzE1LCJpIl0sIlgiXSxbMTcsWzE1LCJpIl0sIlAiXV1dXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIsWzQ2LCJhIl0sWzIyLFszMCxbMjgsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXV0sWzIwLFsxNyxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJnIiwic2Vzc2lvbl9zdGFydCJdLFs0MSwiaCJdLFs0MSwiaSJdLFsiZCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImoiXSxbNTIsImsiLFs4LCJwcmVIaXQiLFsxNSwiaiJdXV0sWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlAiXSx0cnVlXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFWIl0sdHJ1ZV1dLFs0XV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFaIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJoIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZiJdXV0sWzMsImgiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJBIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJMIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJpIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZyJdXV0sWzMsImkiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJpIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJNIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV0KICxbNTAsIl9fY2NkX2VtX2Rvd25sb2FkIixbNDYsImEiXSxbNTAsInEiLFs0NiwidiJdLFszNixbMSxbMTUsInYiXSxbMjEsWzIsWzIsWzE1LCJ2Il0sInRvTG93ZXJDYXNlIixbN11dLCJtYXRjaCIsWzcsWzE1LCJwIl1dXSxbNDVdXV1dXSxbNTAsInIiLFs0NiwidiJdLFs1MiwidyIsWzIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLCJzcGxpdCIsWzcsIi4iXV1dLFs1MiwieCIsWzM5LFsxOCxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLDFdLFsxNixbMTUsInciXSxbMzcsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSwxXV0sIiJdXSxbMzYsWzE2LFsyLFsxNSwieCJdLCJzcGxpdCIsWzcsIi8iXV0sMF1dXSxbNTAsInMiLFs0NiwidiJdLFszNixbMzksWzEyLFsyLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSwic3Vic3RyaW5nIixbNywwLDFdXSwiLyJdLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSxbMCwiLyIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdXV1dXSxbNTAsInQiLFs0NiwidiJdLFs0MSwidyJdLFszLCJ3IiwiIl0sWzIyLFsxLFsxNSwidiJdLFsxNyxbMTUsInYiXSwiaHJlZiJdXSxbNDYsWzUzLFs0MSwieCJdLFszLCJ4IixbMixbMTcsWzE1LCJ2Il0sImhyZWYiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFszLCJ3IixbMzksWzIzLFsxNSwieCJdLDBdLFsxNyxbMTUsInYiXSwiaHJlZiJdLFsyLFsxNyxbMTUsInYiXSwiaHJlZiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ4Il1dXV1dXV1dLFszNixbMTUsInciXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1Eb3dubG9hZEFjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJBIl1dLFs1MiwiZyIsImZpbGVfZG93bmxvYWQiXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsImwiXSwiQSIsWzcsImRvd25sb2FkIl1dXSxbNTIsInAiLFswLCJeKHBkZnx4bHN4P3xkb2N4P3x0eHR8cnRmfGNzdnxleGV8a2V5fHBwKHN8dHx0eCl8N3p8cGtnfHJhcnxnenx6aXB8YXZpfCIsIm1vdnxtcDR8bXBlP2d8d212fG1pZGk/fG1wM3x3YXZ8d21hKSQiXV0sWzUyLCJ1IixbImsiLFs4LCJjaGVja1ZhbGlkYXRpb24iLHRydWVdXV0sWzIyLFsyOCxbMTUsInUiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInYiLCJ3Il0sWyJ3Il0sWzUyLCJ4IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwidiJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzUyLCJ5IixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50VXJsIl1dLFs1MiwieiIsWyJtIixbMTUsInkiXV1dLFsyMixbMjgsWzE1LCJ6Il1dLFs0NixbMzZdXV0sWzUyLCJhQSIsWyJyIixbMTUsInoiXV1dLFsyMixbMjgsWyJxIixbMTUsImFBIl1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJhQiIsWzgsImxpbmtfaWQiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRJZCJdLCJsaW5rX3VybCIsWyJ0IixbMTUsInoiXV0sImxpbmtfdGV4dCIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudFRleHQiXSwiZmlsZV9uYW1lIixbInMiLFsxNSwieiJdXSwiZmlsZV9leHRlbnNpb24iLFsxNSwiYUEiXV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsIngiXV1dLFsibiIsWzE1LCJvIl0sWzE1LCJnIl0sWzE1LCJhQiJdLFsxNSwieCJdXV0sWzE1LCJ1Il1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIsWzQ2LCJhIl0sWzUwLCJyIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLCIiXSxbMjIsWzEsWzE1LCJ3Il0sWzE3LFsxNSwidyJdLCJocmVmIl1dLFs0NixbNTMsWzQxLCJ5Il0sWzMsInkiLFsyLFsxNyxbMTUsInciXSwiaHJlZiJdLCJpbmRleE9mIixbNywiIyJdXV0sWzMsIngiLFszOSxbMjMsWzE1LCJ5Il0sMF0sWzE3LFsxNSwidyJdLCJocmVmIl0sWzIsWzE3LFsxNSwidyJdLCJocmVmIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInkiXV1dXV1dXV0sWzM2LFsxNSwieCJdXV0sWzUwLCJzIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXV0sWzUyLCJ5IixbMixbMTUsIngiXSwibWF0Y2giLFs3LCJed3d3XFxkKlxcLiJdXV0sWzIyLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwwXV0sWzQ2LFszLCJ4IixbMixbMTUsIngiXSwic3Vic3RyaW5nIixbNyxbMTcsWzE2LFsxNSwieSJdLDBdLCJsZW5ndGgiXV1dXV1dLFszNixbMTUsIngiXV1dLFs1MCwidCIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbNTIsIngiLFsyLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFsyMixbMjgsWzE1LCJ4Il1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInkiXSxbMywieSIsWzIsWyJzIixbIm8iLFsibiJdXV0sInRvTG93ZXJDYXNlIixbN11dXSxbNDEsInoiXSxbMywieiIsWzM3LFsxNyxbMTUsIngiXSwibGVuZ3RoIl0sWzE3LFsxNSwieSJdLCJsZW5ndGgiXV1dLFsyMixbMSxbMTgsWzE1LCJ6Il0sMF0sWzI5LFsyLFsxNSwieSJdLCJjaGFyQXQiLFs3LDBdXSwiLiJdXSxbNDYsWzUzLFszMixbMTUsInoiXSxbMywieiIsWzM3LFsxNSwieiJdLDFdXV0sWzMsInkiLFswLCIuIixbMTUsInkiXV1dXV1dLFsyMixbMSxbMTksWzE1LCJ6Il0sMF0sWzEyLFsyLFsxNSwieCJdLCJpbmRleE9mIixbNyxbMTUsInkiXSxbMTUsInoiXV1dLFsxNSwieiJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNix0cnVlXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsIm8iLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwicCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInEiLFsyLFsxNSwibCJdLCJBIixbNywib3V0Ym91bmRfY2xpY2siXV1dLFs1MiwidSIsWyJtIixbMTUsImkiXSwiY3Jvc3NfZG9tYWluX2NvbmRpdGlvbnMiXV0sWzUyLCJ2IixbImsiLFs4LCJhZmZpbGlhdGVEb21haW5zIixbMTUsInUiXSwiY2hlY2tWYWxpZGF0aW9uIix0cnVlLCJ3YWl0Rm9yVGFncyIsZmFsc2VdXV0sWzIyLFsyOCxbMTUsInYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInciLCJ4Il0sWzUyLCJ5IixbIm8iLFsxNixbMTUsInciXSwiZ3RtLmVsZW1lbnRVcmwiXV1dLFsyMixbMjgsWyJ0IixbMTUsInkiXV1dLFs0NixbNTMsWyJ4Il0sWzM2XV1dXSxbNTIsInoiLFs4LCJsaW5rX2lkIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50SWQiXSwibGlua19jbGFzc2VzIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50Q2xhc3NlcyJdLCJsaW5rX3VybCIsWyJyIixbMTUsInkiXV0sImxpbmtfZG9tYWluIixbInMiLFsxNSwieSJdXSwib3V0Ym91bmQiLHRydWVdXSxbNDMsWzE1LCJ6Il0sImV2ZW50X2NhbGxiYWNrIixbMTUsIngiXV0sWzUyLCJhQSIsWzgsImV2ZW50SWQiLFsxNixbMTUsInciXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsImFBIl1dXSxbInAiLFsxNSwicSJdLFsxNSwiZyJdLFsxNSwieiJdLFsxNSwiYUEiXV1dLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2Nyb2xsIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtU2Nyb2xsQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkUiXV0sWzUyLCJnIiwic2Nyb2xsIl0sWzUyLCJoIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJpIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImgiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm4iLFsyLFsxNSwibCJdLCJBIixbNywic2Nyb2xsIl1dXSxbNTIsIm8iLFsiayIsWzgsInZlcnRpY2FsVGhyZXNob2xkVW5pdHMiLCJQRVJDRU5UIiwidmVydGljYWxUaHJlc2hvbGRzIiw5MF1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5zY3JvbGxEZXB0aCIsWzUxLCIiLFs3LCJwIiwicSJdLFsicSJdLFs1MiwiciIsWzgsImV2ZW50SWQiLFsxNixbMTUsInAiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFs1MiwicyIsWzgsInBlcmNlbnRfc2Nyb2xsZWQiLFsxNixbMTUsInAiXSwiZ3RtLnNjcm9sbFRocmVzaG9sZCJdXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwiciJdXV0sWyJtIixbMTUsIm4iXSxbMTUsImciXSxbMTUsInMiXSxbMTUsInIiXV1dLFsxNSwibyJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2l0ZV9zZWFyY2giLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiZ2V0UXVlcnlQYXJhbWV0ZXJzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldENvbnRhaW5lclZlcnNpb24iXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2NjZEVtU2l0ZVNlYXJjaEFjdGl2aXR5Il1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sIkEiLFs3LFsxNyxbMTUsImEiXSwic2VhcmNoUXVlcnlQYXJhbXMiXSxbMTUsImIiXV1dXSxbNTIsImoiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImQiXSwiY29udGFpbmVySWQiXV1dLFs1MiwiayIsWzgsImRlZmVycmFibGUiLHRydWUsImV2ZW50SWQiLFsxNyxbMTUsImEiXSwiZ3RtRXZlbnRJZCJdLCJldmVudE1ldGFkYXRhIixbOCwiZW1fZXZlbnQiLHRydWVdXV0sWzIyLFsxNSwiaSJdLFs0NixbNTMsWzUyLCJsIixbMzksWzI4LFsyOCxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyLFsxNSwiaCJdLCJCIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImFkZGl0aW9uYWxRdWVyeVBhcmFtcyJdLFsxNSwiYiJdXV0sWzhdXV0sWzQzLFsxNyxbMTUsImsiXSwiZXZlbnRNZXRhZGF0YSJdLFsxNyxbMTUsImciXSwiWiJdLCJhIl0sWyJjIixbMTUsImoiXSwidmlld19zZWFyY2hfcmVzdWx0cyIsWzE1LCJsIl0sWzE1LCJrIl1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV92aWRlbyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbVZpZGVvQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkYiXV0sWzUyLCJnIiwidmlkZW9fc3RhcnQiXSxbNTIsImgiLCJ2aWRlb19wcm9ncmVzcyJdLFs1MiwiaSIsInZpZGVvX2NvbXBsZXRlIl0sWzUyLCJqIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiayJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImoiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5Il1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInAiLFsyLFsxNSwibiJdLCJBIixbNywidmlkZW8iXV1dLFs1MiwicSIsWyJtIixbOCwiY2FwdHVyZUNvbXBsZXRlIix0cnVlLCJjYXB0dXJlU3RhcnQiLHRydWUsInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiLFs3LDEwLDI1LDUwLDc1XV1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJqIl0sdHJ1ZV1dLFsibCIsImd0bS52aWRlbyIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9TdGF0dXMiXV0sWzQxLCJ1Il0sWzIyLFsyMCxbMTUsInQiXSwic3RhcnQiXSxbNDYsWzUzLFszLCJ1IixbMTUsImciXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwicHJvZ3Jlc3MiXSxbNDYsWzUzLFszLCJ1IixbMTUsImgiXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwiY29tcGxldGUiXSxbNDYsWzUzLFszLCJ1IixbMTUsImkiXV1dXSxbNDYsWzUzLFszNl1dXV1dXV1dLFs1MiwidiIsWzgsInZpZGVvX2N1cnJlbnRfdGltZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9DdXJyZW50VGltZSJdLCJ2aWRlb19kdXJhdGlvbiIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9EdXJhdGlvbiJdLCJ2aWRlb19wZXJjZW50IixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1BlcmNlbnQiXSwidmlkZW9fcHJvdmlkZXIiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvUHJvdmlkZXIiXSwidmlkZW9fdGl0bGUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVGl0bGUiXSwidmlkZW9fdXJsIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1VybCJdLCJ2aXNpYmxlIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1Zpc2libGUiXV1dLFs1MiwidyIsWzgsImV2ZW50SWQiLFsxNixbMTUsInIiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibiJdLCJCIixbNyxbMTUsInciXV1dLFsibyIsWzE1LCJwIl0sWzE1LCJ1Il0sWzE1LCJ2Il0sWzE1LCJ3Il1dXSxbMTUsInEiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX2Fkc19saW5rIixbNDYsImEiXSxbNTAsImsiLFs0NiwibiJdLFszNixbImoiLFs3LCJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dXV0sWzUwLCJsIixbNDYsIm4iXSxbNDEsIm8iXSxbMywibyIsWzIsWzE1LCJuIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiSlIiXV1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFs1MiwiciIsWzMwLFsyLFsxNSwibiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkpTIl1dXSxbOF1dXSxbMywibyIsWzE2LFsxNSwiciJdLFsxNyxbMTUsImIiXSwiSlIiXV1dXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInAiLFsiZCIsWzE3LFsxNSwiYyJdLCJTIl1dXSxbMjIsWzE1LCJwIl0sWzQ2LFs1MyxbMzZdXV1dLFsiZSIsWzE3LFsxNSwiYyJdLCJTIl0sWzE1LCJvIl1dLFsiZSIsWzE3LFsxNSwiYyJdLCJVIl0sWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzUyLCJxIixbImQiLFsxNyxbMTUsImMiXSwiVCJdXV0sWzIyLFsxNSwicSJdLFs0NixbNTMsWzUyLCJyIixbMzAsWzIsWzE1LCJuIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIzLFsyLFsxNSwiciJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSwwXSxbNDYsWzUzLFsyLFsxNSwiciJdLCJwdXNoIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSxbMixbMTUsIm4iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXSxbMTUsInIiXV1dXV1dXV1dXSxbNTAsIm0iLFs0NiwibiIsIm8iXSxbMixbMTUsImciXSwiQiIsWzcsWzE1LCJuIl0sWzE1LCJvIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ2FBZHNMaW5rQWN0aXZpdHkiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX3Byb2Nlc3NvcnMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbMixbMTUsImYiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTUsImwiXSxbMTUsIm0iXSxbMTUsImsiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9maXJzdCIsWzQ2LCJhIl0sWzUwLCJlIixbNDYsImYiXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJmIl1dXSxbMixbMTUsImQiXSwiQSIsWzcsWzE1LCJmIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIl1dLFsiYiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImYiXSxbImUiLFsxNSwiZiJdXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9sYXN0IixbNDYsImEiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfcmVnc2NvcGUiLFs0NiwiYSJdLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIl1dLFs1MiwiYyIsWzIsWzE1LCJiIl0sIkIiLFs3LFsxNSwiYSJdXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImEiXSxbMTUsImMiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX2djdCIsWzQ2LCJhIl0sWzUwLCJnIixbNDYsIm0iXSxbNTIsIm4iLFs3XV0sWzY1LCJvIixbMTUsIm0iXSxbNDYsWzUzLFs1MiwicCIsWyJiIixbMTUsIm8iXV1dLFsyMixbMjEsWzE1LCJwIl0sWzQ1XV0sWzQ2LFsyLFsxNSwibiJdLCJwdXNoIixbNyxbMTUsInAiXV1dXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJoIixbNDYsIm0iXSxbNTIsIm4iLFsxNyxbMTUsIm0iXSwibGlua2VyIl1dLFsyMixbMSxbMTUsIm4iXSxbMTYsWzE1LCJuIl0sImRvbWFpbnMiXV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sImRvbWFpbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJkb21haW5zIl1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImkiLFs0NiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJyZWZlcnJhbEV4Y2x1c2lvbkRlZmluaXRpb24iXV0sWzIyLFsxLFsxNSwibiJdLFsxNixbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIl1dLFs0NixbNTMsWzQzLFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiaiIsWzMwLFsyLFsxNSwiZiJdLCJnZXRJdGVtIixbNywicmVnZXgiXV0sWyJiIiwiWy4qK1xcLT9eJHt9KCl8W1xcXVxcXFxdIiwiZyJdXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LCJyZWdleCIsWzE1LCJqIl1dXSxbNTIsImsiLFs4XV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInNlc3Npb25EdXJhdGlvbiJdXSxbMjIsWzE4LFsxNSwibCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiayJdLCJzZXNzaW9uX2R1cmF0aW9uIixbMTUsImwiXV1dXV0sWzQzLFsxNSwiayJdLCJldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzIl1dLFs0MyxbMTUsImsiXSwiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJkeW5hbWljRXZlbnRTZXR0aW5ncyJdXSxbNDMsWzE1LCJrIl0sImdvb2dsZV9zaWduYWxzIixbMjAsWzE3LFsxNSwiYSJdLCJnb29nbGVTaWduYWxzIl0sMV1dLFs0MyxbMTUsImsiXSwiZ29vZ2xlX3RsZCIsWzE3LFsxNSwiYSJdLCJmb3JlaWduVGxkIl1dLFs0MyxbMTUsImsiXSwiZ2FfcmVzdHJpY3RfZG9tYWluIixbMjAsWzE3LFsxNSwiYSJdLCJyZXN0cmljdERvbWFpbiJdLDFdXSxbNDMsWzE1LCJrIl0sImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsWzE3LFsxNSwiYSJdLCJpbnRlcm5hbFRyYWZmaWNSZXN1bHRzIl1dLFs0MyxbMTUsImsiXSwibGlua2VyIixbImgiLFsxNSwiYSJdXV0sWzQzLFsxNSwiayJdLCJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsWyJpIixbMTUsImEiXV1dLFsiZCIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl0sWzE1LCJrIl1dLFsiZSIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF8xcF9kYXRhX3YyIixbNDYsImEiXSxbNTAsInAiLFs0NiwiciIsInMiLCJ0IiwidSJdLFsyMixbMjAsWzE2LFsxNSwicyJdLCJ0eXBlIl0sWzE1LCJ0Il1dLFs0NixbNTMsWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFs1MyxbMywiciIsWzhdXV1dXSxbMjIsWzI4LFsxNixbMTUsInIiXSxbMTUsInQiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidCJdLFsxNixbMTUsInMiXSwidXNlckRhdGEiXV0sWzUyLCJ2IixbOCwibW9kZSIsImEiXV0sWzIyLFsxNixbMTUsInMiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJsb2NhdGlvbiIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwic2VsZWN0b3IiLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbNDMsWzE1LCJ1Il0sWzE1LCJ0Il0sWzE1LCJ2Il1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyIsInQiXSxbMjIsWzI4LFsxNixbMTUsImEiXSxbMTUsInQiXV1dLFs0NixbMzZdXV0sWzQzLFsxNSwiciJdLFsxNSwicyJdLFs4LCJ2YWx1ZSIsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV1dXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaXNFbmFibGVkIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNTIsImgiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWyJjIixbMTcsWzE1LCJlIl0sIkFUIl1dXSxbNTIsIm4iLFszMCxbImYiXSxbN11dXSxbNTIsIm8iLFs4LCJlbmFibGVfY29kZSIsdHJ1ZV1dLFsyMixbMTcsWzE1LCJhIl0sImlzQXV0b0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzddXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbNDYsWzUzLFs1MyxbNDEsInUiXSxbMywidSIsMF0sWzYzLFs3LCJ1Il0sWzIzLFsxNSwidSJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV0sWzQ2LFs1MyxbNTIsInYiLFsxNyxbMTYsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNSwidSJdXSwiZXhjbHVzaW9uU2VsZWN0b3IiXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNSwidiJdXV1dXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXSxbMTcsWzE1LCJhIl0sImF1dG9FbWFpbEVuYWJsZWQiXSx0cnVlXV0sWzQzLFsxNSwibyJdLCJhdXRvX2RldGVjdCIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXSwiYWRkcmVzcyIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiLFsxNSwiciJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNNYW51YWxFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsRW1haWxFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJlbWFpbCIsImVtYWlsVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxQaG9uZUVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sInBob25lIiwicGhvbmVWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEFkZHJlc3NFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInMiLFs4XV0sWyJxIixbMTUsInMiXSwiZmlyc3RfbmFtZSIsImZpcnN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwibGFzdF9uYW1lIiwibGFzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInN0cmVldCIsInN0cmVldFZhbHVlIl0sWyJxIixbMTUsInMiXSwiY2l0eSIsImNpdHlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInJlZ2lvbiIsInJlZ2lvblZhbHVlIl0sWyJxIixbMTUsInMiXSwiY291bnRyeSIsImNvdW50cnlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInBvc3RhbF9jb2RlIiwicG9zdGFsQ29kZVZhbHVlIl0sWzQzLFsxNSwiciJdLCJuYW1lX2FuZF9hZGRyZXNzIixbNyxbMTUsInMiXV1dXV1dLFs0MyxbMTUsIm8iXSwic2VsZWN0b3JzIixbMTUsInIiXV1dXV0sWzY1LCJyIixbMTUsIm4iXSxbNDYsWzUzLFsiaSIsWzE1LCJyIl0sInVzZXJfZGF0YV9zZXR0aW5ncyIsWzE1LCJvIl1dLFs1MiwicyIsWzE2LFsxNSwibyJdLCJhdXRvX2RldGVjdCJdXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFs2XV1dXSxbNTIsInQiLFs1MSwiIixbNywidSJdLFs1MiwidiIsWzIsWzE1LCJ1Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzM2LFsxNSwidiJdXV1dXSxbNTIsInciLFsiYyIsWzE3LFsxNSwiZSJdLCJCViJdXV0sWzUyLCJ4IixbImMiLFsxNyxbMTUsImUiXSwiQ0kiXV1dLFs0MSwieSJdLFsyMixbImgiLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byJdLFs0NixbNTMsWzMsInkiLFsiZyIsWzgsImV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzIixbMTYsWzE1LCJzIl0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiXSwiZmllbGRGaWx0ZXJzIixbOCwiZW1haWwiLFsxNixbMTUsInMiXSwiZW1haWwiXSwicGhvbmUiLFsxNixbMTUsInMiXSwicGhvbmUiXSwiYWRkcmVzcyIsWzE2LFsxNSwicyJdLCJhZGRyZXNzIl1dLCJpbmNsdWRlU2VsZWN0b3IiLFsxNSwidyJdLCJyZWFkRnJvbURhdGFMYXllciIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJ6IixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sImVsZW1lbnRzIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzIyLFsxLFsxNSwieiJdLFsxOCxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFs0MSwiYUMiXSxbNDEsImFEIl0sWzMsImFEIixbOF1dLFs1MyxbNDEsImFFIl0sWzMsImFFIiwwXSxbNjMsWzcsImFFIl0sWzIzLFsxNSwiYUUiXSxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJhRSJdLFszLCJhRSIsWzAsWzE1LCJhRSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFGIixbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV0sWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJlbWFpbCIsWzE1LCJhQiJdXSxbMjIsWyJjIixbMTcsWzE1LCJlIl0sIkJPIl1dLFs0NixbNTMsWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJwaG9uZV9udW1iZXIiLFsxNSwiYUIiXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImZpcnN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJsYXN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJjb3VudHJ5IixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwicG9zdGFsX2NvZGUiLFsxNSwiYUQiXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJhQyJdLFsyOCxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sImFkZHJlc3MiLFsxNSwiYUMiXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzQzLFsxNixbMTUsImFBIl0sImFkZHJlc3MiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhRCJdXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE1LCJ4Il1dLFs0NixbNTMsWzUyLCJhQyIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs1MiwiYUQiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV0sWzIsWzE1LCJ1Il0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwibCJdLCJGVCJdLFs4LCJkbHN0IixbMTUsImFDIl0sImRsc2MiLFsxNSwiYUQiXV1dXV1dXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbMjIsWzMwLFsxNixbMTUsImFBIl0sImVtYWlsIl0sWzE2LFsxNSwiYUEiXSwicGhvbmVfbnVtYmVyIl1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXSxbMTUsImFBIl1dXSxbMzYsWzE1LCJhQSJdXV1dLFsiaiIsWzE1LCJyIl0sWzUxLCIiLFs3LCJ1Il0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNZIl0sWzE1LCJ0Il1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9ldmVudF9jcmVhdGUiLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJzIiwidCJdLFsyMixbMjgsWzIsWzE1LCJjIl0sIkIiLFs3LFsxNSwicyJdLFsxNixbMTUsInQiXSxbMTUsIm4iXV0sWzMwLFsxNixbMTUsInQiXSxbMTUsIm8iXV0sWzddXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzUyLCJ1IixbMTYsWzE1LCJ0Il0sWzE1LCJwIl1dXSxbMjIsWzIsWzE1LCJjIl0sIkQiLFs3LFsxNSwidSJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzI4LFsxNixbMTUsInQiXSxbMTUsInEiXV1dXSxbNDEsInciXSxbMywidyIsWzE1LCJ2Il1dLFsyMixbImkiLFsxNyxbMTUsImoiXSwiQUUiXV0sWzQ2LFs1MyxbMywidyIsWzMwLFsxNSwidyJdLFsyOCxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQk8iXV1dXV1dXV1dLFs1MiwieCIsWzMwLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJBQyJdXV0sWzddXV0sWzIyLFsyMCxbMixbMTUsIngiXSwiaW5kZXhPZiIsWzcsWzE3LFsxNSwiaCJdLCJBIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImgiXSwiQSJdXV1dXV0sWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkFDIl0sWzE1LCJ4Il1dXSxbNTIsInkiLFsiYiIsWzE1LCJzIl0sWzgsIm9taXRIaXREYXRhIixbMTUsInciXSwib21pdEV2ZW50Q29udGV4dCIsWzE1LCJ2Il0sIm9taXRNZXRhZGF0YSIsdHJ1ZV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJ5Il0sWzE1LCJ0Il1dXSxbMixbMTUsInkiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsInUiXV1dLFsyLFsxNSwieSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdLHRydWVdXSxbMixbMTUsInkiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQUMiXSxbNyxbMTcsWzE1LCJoIl0sIksiXV1dXSxbImQiLFsxNSwieSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ldmVudEVkaXRpbmdBbmRTeW50aGVzaXMiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJmIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNDEsImwiXSxbMywibCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs0MSwibSJdLFszLCJtIixbMjgsWzI4LFsxNSwibCJdXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJwdXNoIixbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZiJdLCJzZXRJdGVtIixbNyxbMTUsImsiXSxbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV1dLFs1MiwibiIsImV2ZW50X25hbWVfcHJlZGljYXRlIl0sWzUyLCJvIiwiY29uZGl0aW9ucyJdLFs1MiwicCIsIm5ld19ldmVudF9uYW1lIl0sWzUyLCJxIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyJdLFsiZSIsWzE1LCJrIl0sWzUxLCIiLFs3LCJzIl0sWzIyLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs2NiwidSIsWzE1LCJ0Il0sWzQ2LFs1MyxbInIiLFsxNSwicyJdLFsxNSwidSJdXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9nYV9zZW5kIixbNDYsImEiXSxbNTAsImgiLFs0NiwiaSIsImoiLCJrIiwibCJdLFsyMixbMjEsWzE2LFsxNSwiaSJdLFsxNSwiaiJdXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImsiXSxbMTUsImwiXSxbMTYsWzE1LCJpIl0sWzE1LCJqIl1dXV1dXV0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sInZhbHVlIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmFkZEdhU2VuZExpc3RlbmVyIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs0MSwiZyJdLFszLCJnIixbImMiXV0sWzIyLFszMCxbMjgsWzE1LCJnIl1dLFsyMCxbMTcsWzE1LCJnIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFszLCJnIixbNyxbMTcsWyJiIl0sImNvbnRhaW5lcklkIl1dXV1dXSxbImUiLFs1MSwiIixbNywiaSIsImoiXSxbNDEsImsiXSxbNDEsImwiXSxbMywibCIsWzhdXSxbMjIsWzIwLFsxNSwiaSJdLCJldmVudCJdLFs0NixbNTMsWzMsImsiLFsxNixbMTUsImoiXSwiZXZlbnRBY3Rpb24iXV0sWyJoIixbMTUsImoiXSwiZXZlbnRDYXRlZ29yeSIsWzE1LCJsIl0sImV2ZW50X2NhdGVnb3J5Il0sWyJoIixbMTUsImoiXSwiZXZlbnRMYWJlbCIsWzE1LCJsIl0sImV2ZW50X2xhYmVsIl0sWyJoIixbMTUsImoiXSwiZXZlbnRWYWx1ZSIsWzE1LCJsIl0sInZhbHVlIl1dXSxbNDYsWzIyLFsyMCxbMTUsImkiXSwiZXhjZXB0aW9uIl0sWzQ2LFs1MyxbMywiayIsImV4Y2VwdGlvbiJdLFsiaCIsWzE1LCJqIl0sImV4RGVzY3JpcHRpb24iLFsxNSwibCJdLCJkZXNjcmlwdGlvbiJdLFsiaCIsWzE1LCJqIl0sImV4RmF0YWwiLFsxNSwibCJdLCJmYXRhbCJdXV0sWzQ2LFsyMixbMjAsWzE1LCJpIl0sInRpbWluZyJdLFs0NixbNTMsWzIyLFszMCxbMzAsWzIwLFsxNixbMTUsImoiXSwidGltaW5nQ2F0ZWdvcnkiXSxbNDRdXSxbMjAsWzE2LFsxNSwiaiJdLCJ0aW1pbmdWYXIiXSxbNDRdXV0sWzIwLFsxNixbMTUsImoiXSwidGltaW5nVmFsdWUiXSxbNDRdXV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJrIiwidGltaW5nX2NvbXBsZXRlIl0sWyJoIixbMTUsImoiXSwidGltaW5nQ2F0ZWdvcnkiLFsxNSwibCJdLCJldmVudF9jYXRlZ29yeSJdLFsiaCIsWzE1LCJqIl0sInRpbWluZ1ZhciIsWzE1LCJsIl0sIm5hbWUiXSxbImgiLFsxNSwiaiJdLCJ0aW1pbmdWYWx1ZSIsWzE1LCJsIl0sInZhbHVlIl0sWyJoIixbMTUsImoiXSwidGltaW5nTGFiZWwiLFsxNSwibCJdLCJldmVudF9sYWJlbCJdXV1dXV1dXSxbMjIsWzIxLFsxNSwiayJdLFs0NF1dLFs0NixbNTMsWzUyLCJtIixbOCwiZXZlbnRNZXRhZGF0YSIsWzgsImV2ZW50X3VzYWdlIixbNyxbMTcsWzE1LCJmIl0sIkciXV1dLCJldmVudElkIixbMTcsWzE1LCJhIl0sImd0bUV2ZW50SWQiXSwibm9HdG1FdmVudCIsdHJ1ZV1dLFs2NSwibiIsWzE1LCJnIl0sWzQ2LFs1MyxbMjIsWzIwLFsyLFsxNSwibiJdLCJpbmRleE9mIixbNywiRy0iXV0sMF0sWzQ2LFs1MyxbImQiLFsxNSwibiJdLFsxNSwiayJdLFsxNSwibCJdLFsxNSwibSJdXV1dXV1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9nb29nbGVfc2lnbmFscyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRDb250YWluZXJWZXJzaW9uIl1dLFs1MiwiZCIsWzMwLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiYyJdLCJjb250YWluZXJJZCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX3NpZ25hbHMiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiRU5BQkxFRCJdXSxbNTIsImUiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTk9OX0dBSUFfUkVNQVJLRVRJTkciXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX29ubyIsWzE1LCJlIl1dLFs1MiwiZiIsWzMwLFsxNSwiZSJdLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTElNSVRFRF9FWFRFUk5BTCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX25nIixbMTUsImYiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fb2d0X3Nlc3Npb25fdGltZW91dCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImMiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzQxLCJlIl0sWzMsImUiLFszMCxbImIiXSxbN11dXSxbNTIsImYiLFszMCxbImMiLFsxNyxbMTUsImEiXSwic2Vzc2lvbkhvdXJzIl1dLDBdXSxbNTIsImciLFszMCxbImMiLFsxNyxbMTUsImEiXSwic2Vzc2lvbk1pbnV0ZXMiXV0sMF1dLFsyMixbMzAsWzE1LCJmIl0sWzE1LCJnIl1dLFs0NixbNTMsWzUyLCJpIixbMCxbMjYsWzE1LCJmIl0sNjBdLFsxNSwiZyJdXV0sWzY1LCJqIixbMTUsImUiXSxbNDYsWzUzLFsiZCIsWzE1LCJqIl0sInNlc3Npb25fZHVyYXRpb24iLFsxNSwiaSJdXV1dXV1dXSxbNTIsImgiLFszMCxbImMiLFsxNyxbMTUsImEiXSwiZW5nYWdlbWVudFNlY29uZHMiXV0sMF1dLFsyMixbMTUsImgiXSxbNDYsWzUzLFs1MiwiaSIsWzI2LFsxNSwiaCJdLDEwMDBdXSxbNjUsImoiLFsxNSwiZSJdLFs0NixbNTMsWyJkIixbMTUsImoiXSwic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiLFsxNSwiaSJdXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyIsWzQ2LCJhIl0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTIsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY29udmVyc2lvbiJdLFs1MiwiYyIsImZsb29kbGlnaHQiXSxbNTIsImQiLCJnYV9jb252ZXJzaW9uIl0sWzUyLCJlIiwicGFnZV92aWV3Il0sWzUyLCJmIiwicmVtYXJrZXRpbmciXSxbNTIsImciLCJ1c2VyX2RhdGFfbGVhZCJdLFs1MiwiaCIsInVzZXJfZGF0YV93ZWIiXSxbMzYsWzgsIkQiLFsxNSwiYiJdLCJFIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIkgiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ3RhZ1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiYyIsImFkX3N0b3JhZ2UiXSxbNTIsImQiLCJhZF91c2VyX2RhdGEiXSxbNTIsImUiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImYiLCJhcHBfcmVtb3ZlIl0sWzUyLCJnIiwiYXBwX3N0b3JlX3JlZnVuZCJdLFs1MiwiaCIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIl0sWzUyLCJpIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Il0sWzUyLCJqIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyJdLFs1MiwiayIsImNvbnZlcnNpb24iXSxbNTIsImwiLCJwdXJjaGFzZSJdLFs1MiwibSIsImZpcnN0X29wZW4iXSxbNTIsIm4iLCJmaXJzdF92aXNpdCJdLFs1MiwibyIsImd0YWcuY29uZmlnIl0sWzUyLCJwIiwiaW5fYXBwX3B1cmNoYXNlIl0sWzUyLCJxIiwicGFnZV92aWV3Il0sWzUyLCJyIiwic2Vzc2lvbl9zdGFydCJdLFs1MiwicyIsInVzZXJfZW5nYWdlbWVudCJdLFs1MiwidCIsImFkc19kYXRhX3JlZGFjdGlvbiJdLFs1MiwidSIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIl0sWzUyLCJ2IiwiYWxsb3dfY3VzdG9tX3NjcmlwdHMiXSxbNTIsInciLCJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyJdLFs1MiwieCIsImFsbG93X2dvb2dsZV9zaWduYWxzIl0sWzUyLCJ5IiwiYXVpZCJdLFs1MiwieiIsImF3X3JlbWFya2V0aW5nX29ubHkiXSxbNTIsImFBIiwiZGlzY291bnQiXSxbNTIsImFCIiwiYXdfZmVlZF9jb3VudHJ5Il0sWzUyLCJhQyIsImF3X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImFEIiwiaXRlbXMiXSxbNTIsImFFIiwiYXdfbWVyY2hhbnRfaWQiXSxbNTIsImFGIiwiYXdfYmFza2V0X3R5cGUiXSxbNTIsImFHIiwiY2xpZW50X2lkIl0sWzUyLCJhSCIsImNvbnZlcnNpb25fY29va2llX3ByZWZpeCJdLFs1MiwiYUkiLCJjb252ZXJzaW9uX2lkIl0sWzUyLCJhSiIsImNvbnZlcnNpb25fbGlua2VyIl0sWzUyLCJhSyIsImNvbnZlcnNpb25fYXBpIl0sWzUyLCJhTCIsImNvb2tpZV9kZXByZWNhdGlvbiJdLFs1MiwiYU0iLCJjb29raWVfZXhwaXJlcyJdLFs1MiwiYU4iLCJjb29raWVfcHJlZml4Il0sWzUyLCJhTyIsImNvb2tpZV91cGRhdGUiXSxbNTIsImFQIiwiY291bnRyeSJdLFs1MiwiYVEiLCJjdXJyZW5jeSJdLFs1MiwiYVIiLCJjdXN0b21lcl9saWZldGltZV92YWx1ZSJdLFs1MiwiYVMiLCJjdXN0b21lcl90eXBlIl0sWzUyLCJhVCIsImRlYnVnX21vZGUiXSxbNTIsImFVIiwic2hpcHBpbmciXSxbNTIsImFWIiwiZW5nYWdlbWVudF90aW1lX21zZWMiXSxbNTIsImFXIiwiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiXSxbNTIsImFYIiwiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiYVkiLCJldmVudF9pZCJdLFs1MiwiYVoiLCJldmVudCJdLFs1MiwiYkEiLCJfJmFlIl0sWzUyLCJiQiIsImV2ZW50X3RpbWVvdXQiXSxbNTIsImJDIiwiZXh0X2NsaWVudF9pZCJdLFs1MiwiYkQiLCJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIl0sWzUyLCJiRSIsIm1hdGNoX2lkIl0sWzUyLCJiRiIsImdkcHJfYXBwbGllcyJdLFs1MiwiYkciLCJfZ3RfbWV0YWRhdGEiXSxbNTIsImJIIiwiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyJdLFs1MiwiYkkiLCJfZ29vZ2xlX25nIl0sWzUyLCJiSiIsIl9vbm8iXSxbNTIsImJLIiwiZ3BwX3NpZCJdLFs1MiwiYkwiLCJncHBfc3RyaW5nIl0sWzUyLCJiTSIsImdzYV9leHBlcmltZW50X2lkIl0sWzUyLCJiTiIsImd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSJdLFs1MiwiYk8iLCJpZnJhbWVfc3RhdGUiXSxbNTIsImJQIiwiaWdub3JlX3JlZmVycmVyIl0sWzUyLCJiUSIsImlzX3Bhc3N0aHJvdWdoIl0sWzUyLCJiUiIsImxhbmd1YWdlIl0sWzUyLCJiUyIsIm1lcmNoYW50X2ZlZWRfbGFiZWwiXSxbNTIsImJUIiwibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYlUiLCJtZXJjaGFudF9pZCJdLFs1MiwiYlYiLCJuZXdfY3VzdG9tZXIiXSxbNTIsImJXIiwicGFnZV9ob3N0bmFtZSJdLFs1MiwiYlgiLCJwYWdlX3BhdGgiXSxbNTIsImJZIiwicGFnZV9yZWZlcnJlciJdLFs1MiwiYloiLCJwYWdlX3RpdGxlIl0sWzUyLCJjQSIsIl9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyJdLFs1MiwiY0IiLCJxdWFudGl0eSJdLFs1MiwiY0MiLCJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyJdLFs1MiwiY0QiLCJzY3JlZW5fcmVzb2x1dGlvbiJdLFs1MiwiY0UiLCJzZW5kX3BhZ2VfdmlldyJdLFs1MiwiY0YiLCJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiXSxbNTIsImNHIiwic2VydmVyX2NvbnRhaW5lcl91cmwiXSxbNTIsImNIIiwic2Vzc2lvbl9kdXJhdGlvbiJdLFs1MiwiY0kiLCJzZXNzaW9uX2VuZ2FnZWRfdGltZSJdLFs1MiwiY0oiLCJzZXNzaW9uX2lkIl0sWzUyLCJjSyIsIl9zaGFyZWRfdXNlcl9pZCJdLFs1MiwiY0wiLCJkZWxpdmVyeV9wb3N0YWxfY29kZSJdLFs1MiwiY00iLCJ0ZXN0b25seSJdLFs1MiwiY04iLCJ0b3Btb3N0X3VybCJdLFs1MiwiY08iLCJ0cmFuc2FjdGlvbl9pZCJdLFs1MiwiY1AiLCJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiXSxbNTIsImNRIiwidHJhbnNwb3J0X3VybCJdLFs1MiwiY1IiLCJ1cGRhdGUiXSxbNTIsImNTIiwiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIl0sWzUyLCJjVCIsIl91c2VyX2FnZW50X2JpdG5lc3MiXSxbNTIsImNVIiwiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiXSxbNTIsImNWIiwiX3VzZXJfYWdlbnRfbW9iaWxlIl0sWzUyLCJjVyIsIl91c2VyX2FnZW50X21vZGVsIl0sWzUyLCJjWCIsIl91c2VyX2FnZW50X3BsYXRmb3JtIl0sWzUyLCJjWSIsIl91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iXSxbNTIsImNaIiwiX3VzZXJfYWdlbnRfd293NjQiXSxbNTIsImRBIiwidXNlcl9kYXRhIl0sWzUyLCJkQiIsInVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiXSxbNTIsImRDIiwidXNlcl9kYXRhX2F1dG9fbWV0YSJdLFs1MiwiZEQiLCJ1c2VyX2RhdGFfYXV0b19tdWx0aSJdLFs1MiwiZEUiLCJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiXSxbNTIsImRGIiwidXNlcl9kYXRhX2F1dG9fc3RhdHVzIl0sWzUyLCJkRyIsInVzZXJfZGF0YV9tb2RlIl0sWzUyLCJkSCIsInVzZXJfaWQiXSxbNTIsImRJIiwidXNlcl9wcm9wZXJ0aWVzIl0sWzUyLCJkSiIsInVzX3ByaXZhY3lfc3RyaW5nIl0sWzUyLCJkSyIsInZhbHVlIl0sWzUyLCJkTCIsIl9mcG1fcGFyYW1ldGVycyJdLFs1MiwiZE0iLCJfaG9zdF9uYW1lIl0sWzUyLCJkTiIsIl9pbl9wYWdlX2NvbW1hbmQiXSxbNTIsImRPIiwiX21lYXN1cmVtZW50X3R5cGUiXSxbNTIsImRQIiwibm9uX3BlcnNvbmFsaXplZF9hZHMiXSxbNTIsImRRIiwiY29udmVyc2lvbl9sYWJlbCJdLFs1MiwiZFIiLCJwYWdlX2xvY2F0aW9uIl0sWzUyLCJkUyIsIl9leHRyYWN0ZWRfZGF0YSJdLFs1MiwiZFQiLCJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiZFUiLCJ0Y19wcml2YWN5X3N0cmluZyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl0sIkwiLFsxNSwiaSJdLCJNIixbMTUsImoiXSwiTyIsWzE1LCJrIl0sIkFBIixbMTUsImwiXSwiQUYiLFsxNSwibSJdLCJBRyIsWzE1LCJuIl0sIkFIIixbMTUsIm8iXSwiQUoiLFsxNSwicCJdLCJBSyIsWzE1LCJxIl0sIkFNIixbMTUsInIiXSwiQVEiLFsxNSwicyJdLCJCQyIsWzE1LCJ0Il0sIkJKIixbMTUsInUiXSwiQksiLFsxNSwidiJdLCJCTSIsWzE1LCJ3Il0sIkJOIixbMTUsIngiXSwiQlQiLFsxNSwieSJdLCJCWCIsWzE1LCJ6Il0sIkJZIixbMTUsImFBIl0sIkJaIixbMTUsImFCIl0sIkNBIixbMTUsImFDIl0sIkNCIixbMTUsImFEIl0sIkNDIixbMTUsImFFIl0sIkNEIixbMTUsImFGIl0sIkNMIixbMTUsImFHIl0sIkNRIixbMTUsImFIIl0sIkNSIixbMTUsImFJIl0sIktHIixbMTUsImRRIl0sIkNTIixbMTUsImFKIl0sIkNVIixbMTUsImFLIl0sIkNXIixbMTUsImFMIl0sIkNZIixbMTUsImFNIl0sIkRDIixbMTUsImFOIl0sIkREIixbMTUsImFPIl0sIkRFIixbMTUsImFQIl0sIkRGIixbMTUsImFRIl0sIkRHIixbMTUsImFSIl0sIkRIIixbMTUsImFTIl0sIkROIixbMTUsImFUIl0sIkVBIixbMTUsImFVIl0sIkVDIixbMTUsImFWIl0sIkVHIixbMTUsImFXIl0sIkVKIixbMTUsImFYIl0sIkVLIixbMTUsImFZIl0sIkVOIixbMTUsImFaIl0sIkVPIixbMTUsImJBIl0sIkVRIixbMTUsImJCIl0sIktJIixbMTUsImRTIl0sIkVVIixbMTUsImJDIl0sIkVXIixbMTUsImJEIl0sIkZFIixbMTUsImJFIl0sIkZPIixbMTUsImJGIl0sIkZQIixbMTUsImJHIl0sIktKIixbMTUsImRUIl0sIkZUIixbMTUsImJIIl0sIkZVIixbMTUsImJJIl0sIkZWIixbMTUsImJKIl0sIkZZIixbMTUsImJLIl0sIkZaIixbMTUsImJMIl0sIkdCIixbMTUsImJNIl0sIkdDIixbMTUsImJOIl0sIkdFIixbMTUsImJPIl0sIkdGIixbMTUsImJQIl0sIkdLIixbMTUsImJRIl0sIkdNIixbMTUsImJSIl0sIkdUIixbMTUsImJTIl0sIkdVIixbMTUsImJUIl0sIkdWIixbMTUsImJVIl0sIkdaIixbMTUsImJWIl0sIkhDIixbMTUsImJXIl0sIktIIixbMTUsImRSIl0sIkhEIixbMTUsImJYIl0sIkhFIixbMTUsImJZIl0sIkhGIixbMTUsImJaIl0sIkhOIixbMTUsImNBIl0sIkhQIixbMTUsImNCIl0sIkhUIixbMTUsImNDIl0sIkhYIixbMTUsImNEIl0sIklBIixbMTUsImNFIl0sIklDIixbMTUsImNGIl0sIklEIixbMTUsImNHIl0sIklGIixbMTUsImNIIl0sIklIIixbMTUsImNJIl0sIklJIixbMTUsImNKIl0sIklLIixbMTUsImNLIl0sIklMIixbMTUsImNMIl0sIktLIixbMTUsImRVIl0sIklQIixbMTUsImNNIl0sIklSIixbMTUsImNOIl0sIklVIixbMTUsImNPIl0sIklWIixbMTUsImNQIl0sIklXIixbMTUsImNRIl0sIklZIixbMTUsImNSIl0sIkpCIixbMTUsImNTIl0sIkpDIixbMTUsImNUIl0sIkpEIixbMTUsImNVIl0sIkpFIixbMTUsImNWIl0sIkpGIixbMTUsImNXIl0sIkpHIixbMTUsImNYIl0sIkpIIixbMTUsImNZIl0sIkpJIixbMTUsImNaIl0sIkpKIixbMTUsImRBIl0sIkpLIixbMTUsImRCIl0sIkpMIixbMTUsImRDIl0sIkpNIixbMTUsImREIl0sIkpOIixbMTUsImRFIl0sIkpPIixbMTUsImRGIl0sIkpQIixbMTUsImRHIl0sIkpSIixbMTUsImRIIl0sIkpTIixbMTUsImRJIl0sIkpVIixbMTUsImRKIl0sIkpWIixbMTUsImRLIl0sIkpYIixbMTUsImRMIl0sIkpZIixbMTUsImRNIl0sIkpaIixbMTUsImROIl0sIktDIixbMTUsImRPIl0sIktEIixbMTUsImRQIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFib3J0X3dpdGhvdXRfZmFpbCJdLFs1MiwiYyIsImFjY2VwdF9ieV9kZWZhdWx0Il0sWzUyLCJkIiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJlIiwiY29uc2VudF9zdGF0ZSJdLFs1MiwiZiIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZyIsImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiXSxbNTIsImgiLCJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIl0sWzUyLCJpIiwiY29va2llX29wdGlvbnMiXSxbNTIsImoiLCJkZWR1cGVfaWQiXSxbNTIsImsiLCJlbV9ldmVudCJdLFs1MiwibCIsImV2ZW50X3Byb3ZlbmFuY2UiXSxbNTIsIm0iLCJldmVudF9zb3VyY2UiXSxbNTIsIm4iLCJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiXSxbNTIsIm8iLCJldmVudF91c2FnZSJdLFs1MiwicCIsImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyJdLFs1MiwicSIsImZvcm1fZXZlbnRfY2FuY2VsZWQiXSxbNTIsInIiLCJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iXSxbNTIsInMiLCJndG1fZXh0cmFjdGVkX2RhdGEiXSxbNTIsInQiLCJoYW5kbGVfaW50ZXJuYWxseSJdLFs1MiwidSIsImhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIl0sWzUyLCJ2IiwiaGl0X3R5cGUiXSxbNTIsInciLCJoaXRfdHlwZV9vdmVycmlkZSJdLFs1MiwieCIsImlnbm9yZV9kdXBlX2NvbmZpZyJdLFs1MiwieSIsImlzX2NvbnZlcnNpb24iXSxbNTIsInoiLCJpc19leHRlcm5hbF9ldmVudCJdLFs1MiwiYUEiLCJpc19maXJzdF92aXNpdCJdLFs1MiwiYUIiLCJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIl0sWzUyLCJhQyIsImlzX2ZwbV9lbmNyeXB0aW9uIl0sWzUyLCJhRCIsImlzX2ZwbV9zcGxpdCJdLFs1MiwiYUUiLCJpc19nY3BfYnJvd3NlciJdLFs1MiwiYUYiLCJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCJdLFs1MiwiYUciLCJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiJdLFs1MiwiYUgiLCJpc19zZXNzaW9uX3N0YXJ0Il0sWzUyLCJhSSIsImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiJdLFs1MiwiYUoiLCJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiXSxbNTIsImFLIiwiaXNfc2d0bV9wcmVoaXQiXSxbNTIsImFMIiwiaXNfc3BsaXRfY29udmVyc2lvbiJdLFs1MiwiYU0iLCJpc19zeW4iXSxbNTIsImFOIiwiaXNfdGVzdF9ldmVudCJdLFs1MiwiYU8iLCJwcmVoaXRfZm9yX3JldHJ5Il0sWzUyLCJhUCIsInJlZGFjdF9hZHNfZGF0YSJdLFs1MiwiYVEiLCJyZWRhY3RfY2xpY2tfaWRzIl0sWzUyLCJhUiIsInNlbmRfY2NtX3BhcmFsbGVsX3BpbmciXSxbNTIsImFTIiwic2VuZF91c2VyX2RhdGFfaGl0Il0sWzUyLCJhVCIsInNwZWN1bGF0aXZlIl0sWzUyLCJhVSIsInN5bl9vcl9tb2QiXSxbNTIsImFWIiwidHJhbnNpZW50X2Vjc2lkIl0sWzUyLCJhVyIsInVzZXJfZGF0YSJdLFs1MiwiYVgiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiXSxbNTIsImFZIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciJdLFs1MiwiYVoiLCJ1c2VyX2RhdGFfZnJvbV9jb2RlIl0sWzUyLCJiQSIsInVzZXJfZGF0YV9mcm9tX21hbnVhbCJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiTSIsWzE1LCJlIl0sIk4iLFsxNSwiZiJdLCJPIixbMTUsImciXSwiUCIsWzE1LCJoIl0sIlEiLFsxNSwiaSJdLCJTIixbMTUsImoiXSwiVCIsWzE1LCJrIl0sIloiLFsxNSwibCJdLCJBQSIsWzE1LCJtIl0sIkFCIixbMTUsIm4iXSwiQUMiLFsxNSwibyJdLCJBRCIsWzE1LCJwIl0sIkFKIixbMTUsInEiXSwiQUsiLFsxNSwiciJdLCJBTiIsWzE1LCJzIl0sIkFPIixbMTUsInQiXSwiQVAiLFsxNSwidSJdLCJBUSIsWzE1LCJ2Il0sIkFSIixbMTUsInciXSwiQVMiLFsxNSwieCJdLCJBViIsWzE1LCJ5Il0sIkFZIixbMTUsInoiXSwiQVoiLFsxNSwiYUEiXSwiQkEiLFsxNSwiYUIiXSwiQkMiLFsxNSwiYUMiXSwiQkQiLFsxNSwiYUQiXSwiQkUiLFsxNSwiYUUiXSwiQkYiLFsxNSwiYUYiXSwiQksiLFsxNSwiYUciXSwiQkwiLFsxNSwiYUgiXSwiQk0iLFsxNSwiYUkiXSwiQk4iLFsxNSwiYUoiXSwiQk8iLFsxNSwiYUsiXSwiQlEiLFsxNSwiYUwiXSwiQlIiLFsxNSwiYU0iXSwiQlMiLFsxNSwiYU4iXSwiQlkiLFsxNSwiYU8iXSwiQ0IiLFsxNSwiYVAiXSwiQ0MiLFsxNSwiYVEiXSwiQ0UiLFsxNSwiYVIiXSwiQ04iLFsxNSwiYVMiXSwiQ1EiLFsxNSwiYVQiXSwiQ1QiLFsxNSwiYVUiXSwiQ1UiLFsxNSwiYVYiXSwiQ1ciLFsxNSwiYVciXSwiQ1giLFsxNSwiYVgiXSwiQ1kiLFsxNSwiYVkiXSwiQ1oiLFsxNSwiYVoiXSwiREEiLFsxNSwiYkEiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDVdLFs1MiwiYyIsNDZdLFs1MiwiZCIsNDddLFs1MiwiZSIsMTc0XSxbNTIsImYiLDI3Nl0sWzM2LFs4LCJGIixbMTUsImIiXSwiRyIsWzE1LCJjIl0sIkgiLFsxNSwiZCJdLCJWIixbMTUsImUiXSwiQUQiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQyNV0sWzUyLCJjIiw0MzVdLFs1MiwiZCIsNDg4XSxbNTIsImUiLDQ4OV0sWzUyLCJmIiw0OThdLFs1MiwiZyIsNTAzXSxbNTIsImgiLDUwNF0sWzUyLCJpIiw1MDZdLFs1MiwiaiIsNTIzXSxbNTIsImsiLDUzMl0sWzUyLCJsIiw1NTNdLFs1MiwibSIsNTY4XSxbNTIsIm4iLDU3N10sWzUyLCJvIiw1ODFdLFs1MiwicCIsNTgzXSxbNTIsInEiLDU5Ml0sWzUyLCJyIiw1OTRdLFs1MiwicyIsNTk5XSxbMzYsWzgsIkFWIixbMTUsImsiXSwiQUQiLFsxNSwiZCJdLCJDSSIsWzE1LCJxIl0sIkJWIixbMTUsIm4iXSwiQk8iLFsxNSwibSJdLCJDSyIsWzE1LCJyIl0sIkNQIixbMTUsInMiXSwiQU0iLFsxNSwiZyJdLCJCWiIsWzE1LCJvIl0sIkFUIixbMTUsImoiXSwiQUUiLFsxNSwiZSJdLCJBTiIsWzE1LCJoIl0sIkwiLFsxNSwiYyJdLCJCQyIsWzE1LCJsIl0sIkFPIixbMTUsImkiXSwiQ0IiLFsxNSwicCJdLCJBSSIsWzE1LCJmIl0sIkkiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiXSxbNTIsImMiLCJwbGQiXSxbNTIsImQiLCJzaGFyZWRfdXNlcl9pZCJdLFs1MiwiZSIsInNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCJdLFs1MiwiZiIsInNoYXJlZF91c2VyX2lkX3NvdXJjZSJdLFszNixbOCwiQiIsWzE1LCJiIl0sIk4iLFsxNSwiYyJdLCJTIixbMTUsImQiXSwiVCIsWzE1LCJlIl0sIlUiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1TY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiwzXSxbNTIsImUiLDRdLFs1MiwiZiIsNV0sWzUyLCJnIiw2XSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJGIixbMTUsImciXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsNV0sWzUyLCJlIiw2XSxbNTIsImYiLDddLFs1MiwiZyIsOF0sWzUyLCJoIiw5XSxbNTIsImkiLDExXSxbNTIsImoiLDE1XSxbNTIsImsiLDE2XSxbNTIsImwiLDIwXSxbNTIsIm0iLDIxXSxbNTIsIm4iLDIzXSxbNTIsIm8iLDI0XSxbNTIsInAiLDI3XSxbNTIsInEiLDQwXSxbNTIsInIiLDQxXSxbMzYsWzgsIk8iLFsxNSwiaiJdLCJXIixbMTUsIm4iXSwiUCIsWzE1LCJrIl0sIlgiLFsxNSwibyJdLCJLIixbMTUsImkiXSwiQSIsWzE1LCJiIl0sIlQiLFsxNSwibCJdLCJFIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkIiLFsxNSwiYyJdLCJIIixbMTUsImciXSwiQU4iLFsxNSwicSJdLCJJIixbMTUsImgiXSwiRyIsWzE1LCJmIl0sIlUiLFsxNSwibSJdLCJBTyIsWzE1LCJyIl0sIkFBIixbMTUsInAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWVfYmxvY2tfZG93bmxvYWRzIl0sWzUyLCJjIiwiYWVfYmxvY2tfZm9ybSJdLFs1MiwiZCIsImFlX2Jsb2NrX2hpc3RvcnkiXSxbNTIsImUiLCJhZV9ibG9ja19vdXRib3VuZF9jbGljayJdLFs1MiwiZiIsImFlX2Jsb2NrX3Njcm9sbCJdLFs1MiwiZyIsImFlX2Jsb2NrX3ZpZGVvIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkYiLFsxNSwiZyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1TaXRlU2VhcmNoQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImIiLFs0NiwiZCIsImUiXSxbNTIsImYiLFsyLFszMCxbMTUsImQiXSwiIl0sInNwbGl0IixbNywiLCJdXV0sWzUzLFs0MSwiZyJdLFszLCJnIiwwXSxbNjMsWzcsImciXSxbMjMsWzE1LCJnIl0sWzE3LFsxNSwiZiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiZyJdLFszLCJnIixbMCxbMTUsImciXSwxXV1dLFs0NixbNTMsWzUyLCJoIixbImUiLFsyLFsxNixbMTUsImYiXSxbMTUsImciXV0sInRyaW0iLFs3XV1dXSxbMjIsWzIxLFsxNSwiaCJdLFs0NF1dLFs0NixbNTMsWzM2LFsxNSwiaCJdXV1dXV1dXV1dLFs1MCwiYyIsWzQ2LCJkIiwiZSIsImYiXSxbNTIsImciLFs4LCJzZWFyY2hfdGVybSIsWzE1LCJkIl1dXSxbNTIsImgiLFsyLFszMCxbMTUsImUiXSwiIl0sInNwbGl0IixbNywiLCJdXV0sWzUzLFs0MSwiaSJdLFszLCJpIiwwXSxbNjMsWzcsImkiXSxbMjMsWzE1LCJpIl0sWzE3LFsxNSwiaCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiaSJdLFszLCJpIixbMCxbMTUsImkiXSwxXV1dLFs0NixbNTMsWzUyLCJqIixbMixbMTYsWzE1LCJoIl0sWzE1LCJpIl1dLCJ0cmltIixbN11dXSxbNTIsImsiLFsiZiIsWzE1LCJqIl1dXSxbMjIsWzIxLFsxNSwiayJdLFs0NF1dLFs0NixbNTMsWzQzLFsxNSwiZyJdLFswLCJxXyIsWzE1LCJqIl1dLFsxNSwiayJdXV1dXV1dXV0sWzM2LFsxNSwiZyJdXV0sWzM2LFs4LCJCIixbMTUsImMiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hZHdvcmRzT3JkZXJJZFNvdXJjZSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsIjEiXSxbNTIsImMiLCIyIl0sWzUyLCJkIiwiMyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZwbVBhcmFtZXRlciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNlIl0sWzM2LFs4LCJCIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tJbml0U2VydmljZVdvcmtlciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYyIsWzQ2LCJkIl0sWyJiIixbMTUsImQiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiXV0sWzM2LFs4LCJBIixbMTUsImMiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2FjdGl2aXRpZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImIiLFs0NiwiYyIsImQiXSxbMzYsWzM5LFsxNSwiZCJdLFsiZCIsWzE1LCJjIl1dLFsxNSwiYyJdXV1dLFszNixbOCwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybURldGVjdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibyIsWzQ2XSxbNjgsInciLFs1MyxbMjIsWzEsWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJBSSJdXV0sWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJJIl1dXV0sWzQ2LFs1MyxbMzYsWzddXV1dXSxbNTIsInciLFsiYiIsWzE3LFsxNSwiZyJdLCJOIl1dXSxbMjIsWyJuIixbMTUsInciXV0sWzQ2LFs1MyxbMzYsWzE1LCJ3Il1dXV1dLFs1MiwieCIsWzddXSxbMjIsWyJwIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkEiXV1dXV0sWzIyLFsicSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJCIl1dXV1dLFsyMixbInIiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRiJdXV1dXSxbMjIsWyJ1Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkQiXV1dXV0sWzIyLFsicyJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJFIl1dXV1dLFsyMixbInQiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQyJdXV1dXSxbMjIsWyJsIl0sWzQ2LFs1MyxbImYiLFsxNyxbMTUsImciXSwiTiJdLFsxNSwieCJdLHRydWVdXV1dLFszNixbMTUsIngiXV1dLFs0Nl1dLFszNixbN11dXSxbNTAsInAiLFs0Nl0sWzY4LCJ3IixbNTMsWzM2LFsyOCxbMjgsWyJjIiwic2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49XCJtYWdlL1wiXSJdXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInEiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbIm0iLCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSJdXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMjgsWzI4LFsiYyIsWzAsWzAsInNjcmlwdFtzcmNePVwiLy8iLFsxNSwidyJdXSwiXCJdIl1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInIiLFs0Nl0sWzIyLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiYzJodmNHbG1lUzVqYjIwPSJdXSxbNTIsIngiLFsibSIsImMyaHZjR2xtZVdOa2JpNWpiMjA9Il1dLFsyMixbMzAsWzI4LFsxNSwidyJdXSxbMjgsWzE1LCJ4Il1dXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsWzAsInNjcmlwdFtzcmMqPVwiY2RuLiIsWzE1LCJ3Il1dLCJcIl0sIl0sIm1ldGFbcHJvcGVydHk9XCJvZzppbWFnZVwiXVtjb250ZW50Kj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiY2RuLiJdLFsxNSwidyJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJmb250cy4iXSxbMTUsIngiXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiaXRlcmFibGUtc2hvcGlmeVwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwidi4iXSxbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJzIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJkIiwicHJvdG9jb2wiXV0sWzUyLCJ4IixbImQiLCJob3N0Il1dLFs1MiwieSIsWzM5LFsxLFsxNSwidyJdLFsxNSwieCJdXSxbMCxbMCxbMCxbMCwiW3NyY149XCIiLFsxNSwidyJdXSwiOi8vIl0sWzE1LCJ4Il1dLCIvd3AtY29udGVudFwiXSwiXSwiIl1dLFs1MiwieiIsWyJtIiwiTG5kdmNtUndjbVZ6Y3k1amIyMD0iXV0sWzUyLCJhQSIsWyJtIiwiTHk5ekxuY3ViM0puIl1dLFsyMixbMzAsWzI4LFsxNSwieiJdXSxbMjgsWzE1LCJhQSJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzMwLFsidiIsWzE1LCJ4Il0sWzE1LCJ6Il1dLFsyOCxbMjgsWyJjIixbMCxbMCxbMCxbMCxbMTUsInkiXSwibWV0YVtuYW1lPVwiZ2VuZXJhdG9yXCJdW2NvbnRlbnRePVwiV29yZFByZXNzIFwiXSwiXSwibGlua1tyZWw9XCJkbnMtcHJlZmV0Y2hcIl1baHJlZj1cIiJdLFsxNSwiYUEiXV0sIlwiXSJdXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidCIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsyOCxbMjgsWyJjIixbMCwiW2NsYXNzKj1cIndvb2NvbW1lcmNlXCJdLCIsIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvb0NvbW1lcmNlIFwiXSJdXV1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1M11dXSxbMzYsWzE1LCJ3Il1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInUiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsWzAsInNjcmlwdFtzcmMqPVwid29vY29tbWVyY2VcIl0sIiwibGlua1tocmVmKj1cIndvb2NvbW1lcmNlXCJdLCJdLCJbY2xhc3N8PVwid29vY29tbWVyY2VcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ2IixbNDYsInciLCJ4Il0sWzM2LFsxLFsxOSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNyxbMTUsIngiXSwibGVuZ3RoIl1dLFsyMCxbMixbMTUsInciXSwic3Vic3RyaW5nIixbNyxbMzcsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdXV0sWzE1LCJ4Il1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1TY2hlbWEiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNEb21SZWFkeSJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImZyb21CYXNlNjQiXV0sWzUyLCJuIixbNTEsIiIsWzcsInciXSxbMzYsWzIwLFsiayIsWzE1LCJ3Il1dLCJhcnJheSJdXV1dLFszNixbOCwiQSIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbURvd25sb2FkQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwiaSIsImoiXSxbImMiLFsxNSwiaSJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJnIl1dLFsyOCxbMixbMTUsImsiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJrIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua19pZCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua191cmwiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdGV4dCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywiZmlsZV9uYW1lIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJmaWxlX2V4dGVuc2lvbiIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJBIl1dLFs1MiwiZyIsImZpbGVfZG93bmxvYWQiXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJnIl0sWzUyLCJoIixbImIiXV0sWzUyLCJpIixbN11dLFs1MyxbNDEsImoiXSxbMywiaiIsMF0sWzYzLFs3LCJqIl0sWzIzLFsxNSwiaiJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImoiXSxbMywiaiIsWzAsWzE1LCJqIl0sMV1dXSxbNDYsWzUzLFs1MiwiayIsWzE2LFsxNSwiaCJdLFsxNSwiaiJdXV0sWzIyLFsiZCIsWzE1LCJnIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJpIl0sInB1c2giLFs3LFsxNSwiayJdXV1dXV1dXV1dLFszNixbMTUsImkiXV1dLFs1MCwiZiIsWzQ2LCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsxNSwiaCJdLFs4XV1dLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJDUSJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIloiXSwiYSJdLFs0MyxbMTUsImciXSwiZXZlbnRNZXRhZGF0YSIsWzE1LCJpIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNsYWltRGVzdGluYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXSwiQiIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2lkIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2NsYXNzZXMiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdXJsIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2RvbWFpbiIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywib3V0Ym91bmQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVNjcm9sbEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsInBlcmNlbnRfc2Nyb2xsZWQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRSJdXSxbNTIsImciLCJzY3JvbGwiXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1WaWRlb0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiLCJsIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsIm0iXSxbNTIsIm4iLFsyLFsxNSwibSJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwibyIsWzMwLFszMCxbMjAsWzE1LCJuIl0sWzE1LCJnIl1dLFsyMCxbMTUsIm4iXSxbMTUsImgiXV1dLFsyMCxbMTUsIm4iXSxbMTUsImkiXV1dXSxbMjIsWzMwLFsyOCxbMTUsIm8iXV0sWzI4LFsyLFsxNSwibSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19jdXJyZW50X3RpbWUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX2R1cmF0aW9uIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wZXJjZW50IixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wcm92aWRlciIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fdGl0bGUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3VybCIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlzaWJsZSIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJGIl1dLFs1MiwiZyIsInZpZGVvX3N0YXJ0Il0sWzUyLCJoIiwidmlkZW9fcHJvZ3Jlc3MiXSxbNTIsImkiLCJ2aWRlb19jb21wbGV0ZSJdLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWiJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZaIl1dXV1dXV0sWzIyLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiRlkiXSxbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWSJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VGVzdEhpdFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzIyLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCUyJdXV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJJUCJdLCIxIl1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfd2ViQWRzVGFza3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwibSJdLFs1MiwibiIsWzhdXSxbNDMsWzE1LCJuIl0sWzE3LFsxNSwiZCJdLCJCIl0sWyJlIixbMTcsWzE1LCJkIl0sIkIiXV1dLFs0MyxbMTUsIm4iXSxbMTcsWzE1LCJkIl0sIkMiXSxbImUiLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQzLFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQSJdLFsiYyIsWzE1LCJtIl1dXSxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdLFsxNSwibiJdXV1dLFs1MCwiayIsWzQ2LCJtIl0sWzUyLCJuIixbMzAsWzIsWzE1LCJtIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImgiXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNVIl0sIjIiXV1dXV1dLFs1MCwibCIsWzQ2LCJtIl0sWzIyLFsiZyJdLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkJFIl0sdHJ1ZV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkpZIl0sInd3dy5nb29nbGUuY29tIl1dXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJKWSJdLCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0djcEJyb3dzZXIiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJCIixbMTUsImsiXSwiQSIsWzE1LCJqIl0sIkMiLFsxNSwibCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwidCJdLFs1MiwidSIsWyJkIl1dLFsyMixbMjAsWzE1LCJ1Il0sIlVTLUNPIl0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGVSJdLDFdXV1dXV0sWzUwLCJrIixbNDYsInQiXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJJVSJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSlYiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkRGIl1dXSxbMjIsWyJmIixbMTcsWzE1LCJiIl0sIkFOIl1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRUsiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkVVIl1dXV1dXV0sWzUwLCJsIixbNDYsInQiXSxbMjIsWzIxLFsyLFsxNSwidCJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE3LFsxNSwiaCJdLCJBQSJdXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0IiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkNDIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCWiJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0EiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJZIl1dXSxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJDRCJdLFsxNyxbMTUsImgiXSwiQUEiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdWIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHVCJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR1UiXV1dXSxbNTAsIm0iLFs0NiwidCJdLFsyMixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTiJdXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGIl0sdHJ1ZV1dXV1dXSxbNTAsIm4iLFs0NiwidCJdLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdaIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJERyJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRUciXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkRFIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJFQSJdXV1dLFs1MCwibyIsWzQ2LCJ0Il0sWzUyLCJ1IixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdXV1dLFsyMixbMTUsInUiXSxbNDYsWzUzLFs1MiwidiIsWzEsWzE2LFsxNSwidSJdLFsxNyxbMTUsImgiXSwiQyJdXSxbMTYsWzE1LCJ1Il0sWzE3LFsxNSwiaCJdLCJCIl1dXV0sWzIsWzE1LCJ0Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkNDIl0sWzEsWzI4LFsyOCxbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQ0IiXV1dXV0sWzI4LFsxNSwidiJdXV1dXV1dXV0sWzUwLCJwIixbNDYsInQiXSxbNTIsInUiLFsyLFsxNSwidCJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJoIl0sIkhUIl1dXV0sWzIyLFszMCxbMjAsWzE1LCJ1Il0sdHJ1ZV0sWzIwLFsxNSwidSJdLGZhbHNlXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIVCJdLFsxNSwidSJdXV1dXV0sWzIyLFsyMCxbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiRiJdXV0sZmFsc2VdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiS0QiXSx0cnVlXV1dXSxbNDYsWzUzLFs1MiwidiIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXV1dXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJLRCJdLFsyOCxbMTYsWzE1LCJ2Il0sWzE3LFsxNSwiaCJdLCJBIl1dXV1dXV1dXV1dXSxbNTAsInEiLFs0NiwidCJdLFsyMixbImMiLFsyLFsxNSwidCJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnb29nbGVfbmciXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkZVIl0sdHJ1ZV1dXV1dLFsyMixbImMiLFsyLFsxNSwidCJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnb29nbGVfb25vIl0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGViJdLHRydWVdXV1dXV0sWzUwLCJyIixbNDYsInQiXSxbMjIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkFZIl1dXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkpaIl0sdHJ1ZV1dXV1dXSxbNTAsInMiLFs0NiwidCJdLFsyMixbImUiLFsxNSwidCJdXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkROIl0sdHJ1ZV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNEZWJ1Z01vZGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQiIsWzE1LCJrIl0sIkMiLFsxNSwibCJdLCJJIixbMTUsInIiXSwiQSIsWzE1LCJqIl0sIkUiLFsxNSwibiJdLCJEIixbMTUsIm0iXSwiSiIsWzE1LCJzIl0sIkgiLFsxNSwicSJdLCJHIixbMTUsInAiXSwiRiIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzQxLCJoIl0sWzMsImgiLFs0NF1dLFs1MiwiaSIsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIk0iXV1dXSxbMjIsWzEsWzE1LCJpIl0sWzE2LFsxNSwiaSJdLFsxNyxbMTUsImQiXSwiQiJdXV0sWzQ2LFs1MyxbMywiaCIsWyJiIixbMTcsWzE1LCJjIl0sIkIiXV1dXV0sWzQ2LFs1MyxbMywiaCIsImRlbmllZCJdXV1dLFsyMixbMjksWzE1LCJoIl0sWzQ1XV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDVyJdLFsxNSwiaCJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiIsWzE1LCJlIl1dXSxbNjUsImciLFs3LFsxNyxbMTUsImMiXSwiS0oiXSxbMTcsWzE1LCJjIl0sIkVKIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNSwiZyJdLFsxNixbMTUsImYiXSxbMTUsImciXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXZlbG9wZXJJZHMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFsyMixbMjgsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIloiXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiRU8iXSxbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiWiJdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbMjIsWzI4LFsiZCIsImdldF91c2VyX2FnZW50Il1dLFs0NixbMzZdXV0sWzUyLCJnIixbImIiXV0sWzIyLFsyOCxbMTUsImciXV0sWzQ2LFszNl1dXSxbNTIsImgiLFs3LFsxNyxbMTUsImMiXSwiSkIiXSxbMTcsWzE1LCJjIl0sIkpDIl0sWzE3LFsxNSwiYyJdLCJKRCJdLFsxNyxbMTUsImMiXSwiSkUiXSxbMTcsWzE1LCJjIl0sIkpGIl0sWzE3LFsxNSwiYyJdLCJKRyJdLFsxNyxbMTUsImMiXSwiSkgiXSxbMTcsWzE1LCJjIl0sIkpJIl1dXSxbNjUsImkiLFsxNSwiaCJdLFs0NixbNTMsWzIsWzE1LCJmIl0sInNldEhpdERhdGEiLFs3LFsxNSwiaSJdLFsxNixbMTUsImciXSxbMTUsImkiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRVc2VyQWdlbnRDbGllbnRIaW50cyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NlbmRBZHNIaXRzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbImIiLFsxNSwiZiJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2VuZEFkc0hpdHMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRBZHNQYWdlUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDYsInEiXSxbMjIsWzIsWzE1LCJxIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIk4iXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInIiLFsibCIsImdldF91cmwiXV0sWzUyLCJzIixbMixbMTUsInEiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHRSJdXV1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdFIl0sWzE1LCJzIl1dXSxbNTIsInQiLFsyLFsxNSwicSJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJoIl0sIktIIl1dXV0sWzQxLCJ1Il0sWzMsInUiLFsxNSwidCJdXSxbMjIsWzEsWzI4LFsxNSwidSJdXSxbMTUsInIiXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwicyJdLFsxNyxbMTUsImIiXSwiU0FNRV9ET01BSU5fSUZSQU1JTkciXV0sWzQ2LFs1MyxbMywidSIsWyJmIl1dXV0sWzQ2LFs1MyxbMywidSIsWyJnIl1dXV1dXV1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIktIIl0sWyJwIixbMTUsInUiXV1dXSxbMjIsWyJsIiwiZ2V0X3JlZmVycmVyIl0sWzQ2LFs1MyxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIRSJdLFsiYyJdXV1dXV0sWzIyLFsibCIsInJlYWRfdGl0bGUiXSxbNDYsWzUzLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkhGIl0sWyJrIl1dXV1dXSxbMixbMTUsInEiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHTSJdXV0sWzUyLCJ2IixbImQiXV0sWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSFgiXSxbMCxbMCxbImkiLFsxNyxbMTUsInYiXSwid2lkdGgiXV0sIngiXSxbImkiLFsxNyxbMTUsInYiXSwiaGVpZ2h0Il1dXV1dLFs1MiwidyIsWzEsWyJtIixbMTcsWzE1LCJuIl0sIkNCIl1dLFsyOCxbMjgsWzE1LCJ0Il1dXV1dLFsyMixbMTUsInIiXSxbNDYsWzUzLFs1MiwieCIsWyJlIl1dLFsyMixbMSxbMTUsIngiXSxbMjEsWzE1LCJ4Il0sWzE1LCJ1Il1dXSxbNDYsWzUzLFs0MSwieSJdLFszLCJ5IixbInAiLFsxNSwieCJdXV0sWzIyLFsxNSwidyJdLFs0NixbNTMsWzMsInkiLFsxNixbMixbMTUsInkiXSwic3BsaXQiLFs3LCI/Il1dLDBdXV1dXSxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJJUiJdLFsxNSwieSJdXV1dXV1dXV1dLFs1MCwicCIsWzQ2LCJxIl0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFszNiwiIl1dXSxbNTIsInIiLFsiaSIsWzE1LCJxIl1dXSxbNTIsInMiLFsyLFsxNSwiciJdLCJzdWJzdHJpbmciLFs3LDAsNTEyXV1dLFs1MiwidCIsWzIsWzE1LCJzIl0sImluZGV4T2YiLFs3LCIjIl1dXSxbMjIsWzIwLFsxNSwidCJdLFsyNywxXV0sWzQ2LFs1MyxbMzYsWzE1LCJzIl1dXV0sWzQ2LFs1MyxbMzYsWzIsWzE1LCJzIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInQiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0UmVmZXJyZXJVcmwiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRTY3JlZW5EaW1lbnNpb25zIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldFRvcFdpbmRvd1VybCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImkiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwicmVhZFRpdGxlIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFs1MiwiZyIsWzMwLFsyLFsxNSwiZiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJNIl1dXSxbOF1dXSxbMjIsWzMwLFszMCxbMjgsWzIsWzE1LCJmIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIk8iXV1dXSxbMjgsWzE2LFsxNSwiZyJdLFsxNyxbMTUsImMiXSwiQiJdXV1dLFsyOCxbMTYsWzE1LCJnIl0sWzE3LFsxNSwiYyJdLCJDIl1dXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwiaCIsWyJiIixbMTUsImYiXV1dLFsyMixbMTUsImgiXSxbNDYsWzUzLFsyLFsxNSwiZiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkJUIl0sWzE1LCJoIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBdWlkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzIsWzE1LCJmIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIk8iXSxbMjEsWzIsWzE1LCJmIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImQiXSwiQ1MiXV1dLGZhbHNlXV1dLFsyLFsxNSwiZiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJRIl0sWyJjIixbMTUsImYiXV1dXSxbNTIsImciLFsyLFsxNSwiZiJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJkIl0sIkJDIl1dXV0sWzIsWzE1LCJmIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNCIl0sWzEsWzI5LFsxNSwiZyJdLFs0NV1dLFsyMSxbMTUsImciXSxmYWxzZV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEFkc0Nvb2tpZVdyaXRpbmdPcHRpb25zIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0RmVhdHVyZVVzYWdlUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzE1LCJmIl0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJHQyJdLFsxNSwiZiJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0QW5kUmVzZXRFdmVudFVzYWdlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R29vZ2xlQW5hbHlzaXNQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImMiLFs0NiwiZCJdLFsyLFsxNSwiZCJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImIiXSwiRlQiXSxbMixbMTUsImQiXSwiZ2V0TWVyZ2VkVmFsdWVzIixbNyxbMTcsWzE1LCJiIl0sIkZUIl1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiYyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkdFIl0sWyJiIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRJZnJhbWluZ1N0YXRlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0UHJpdmFjeVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzY1LCJnIixbNyxbMTcsWzE1LCJjIl0sIkpVIl0sWzE3LFsxNSwiYyJdLCJGTyJdLFsxNyxbMTUsImMiXSwiS0siXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJnIl0sWzE2LFsxNSwiZiJdLFsxNSwiZyJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VXJsUGFzc3Rocm91Z2hQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzE2LFsiYyIsZmFsc2VdLCJfdXAiXV0sWzIyLFsyMCxbMTUsImYiXSwiMSJdLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiR0siXSx0cnVlXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZiJdLFsiZSIsWzE1LCJmIl0sWzE3LFsxNSwiYiJdLCJCIl0sWzIsWzE1LCJmIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImMiXSwiQ1kiXV1dXV0sWzUwLCJlIixbNDYsImYiLCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsyLFsxNSwiZiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkpYIl1dXSxbOF1dXSxbNDMsWzE1LCJpIl0sWzE1LCJnIl0sWzE1LCJoIl1dLFsyLFsxNSwiZiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkpYIl0sWzE1LCJpIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2ZwbVBhcmFtZXRlciJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFVzZXJJZFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZyIsWzQ2LCJoIl0sWzUyLCJpIixbMzAsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwiaSJdLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwiaCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkpSIl1dXSxbNTIsImoiLFsiYiIsWzE3LFsxNSwiYyJdLCJTIl1dXSxbMjIsWzIwLFsxNSwiaiJdLFs0NF1dLFs0NixbNTMsWyJmIixbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbMzZdXV1dLFs1MiwiayIsWyJiIixbMTcsWzE1LCJjIl0sIlUiXV1dLFsyLFsxNSwiaCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIklLIl0sWzAsWzAsWzE1LCJrIl0sIi4iXSxbMTUsImoiXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzM2LFs4LCJBIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRDdXN0b21lckxpZmVjeWNsZVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzIyLFsyOCxbImQiLFsxNyxbMTUsImMiXSwiSCJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwiZiJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkRIIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHc2FFeHBlcmltZW50SWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMjEsWzE1LCJmIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJHQiJdLFsxNSwiZiJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0R3NhRXhwZXJpbWVudElkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU3RvcmVCcmFpZExhYmVscyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzUyLCJnIixbMzAsWzIsWzE1LCJmIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwiZyJdLFsxNyxbMTUsImIiXSwiQiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsiZCIsWzE1LCJmIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ldmVudEVkaXRpbmdBbmRTeW50aGVzaXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImFBIixbNDYsImFOIiwiYU8iXSxbNTIsImFQIixbMzAsWzE2LFsxNSwiYU8iXSxbMTUsIm0iXV0sWzddXV0sWzY2LCJhUSIsWzE1LCJhUCJdLFs0NixbNTMsWzIyLFsxNixbMTUsImFRIl0sWzE1LCJuIl1dLFs0NixbNTMsWzUyLCJhUiIsWzE2LFsxNixbMTUsImFRIl0sWzE1LCJuIl1dLFsxNSwicCJdXV0sWzUyLCJhUyIsWyJhRiIsWzE1LCJhTiJdLFsxNixbMTYsWzE1LCJhUSJdLFsxNSwibiJdXSxbMTUsInEiXV1dXSxbMixbMTUsImFOIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYVIiXSxbImFCIixbMTUsImFTIl1dXV1dXSxbNDYsWzIyLFsxNixbMTUsImFRIl0sWzE1LCJvIl1dLFs0NixbNTMsWzUyLCJhUiIsWzE2LFsxNixbMTUsImFRIl0sWzE1LCJvIl1dLFsxNSwicCJdXV0sWzIsWzE1LCJhTiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFSIl0sWzQ0XV1dXV1dXV1dXV1dLFs1MCwiYUIiLFs0NiwiYU4iXSxbMjIsWzI4LFsxNSwiYU4iXV0sWzQ2LFszNixbMTUsImFOIl1dXV0sWzUyLCJhTyIsWyJiIixbMTUsImFOIl1dXSxbNTIsImFQIixbMjEsWzE1LCJhTyJdLFsxNSwiYU8iXV1dLFsyMixbMTUsImFQIl0sWzQ2LFszNixbMTUsImFOIl1dXV0sWzM2LFsxNSwiYU8iXV1dLFs1MCwiYUMiLFs0NiwiYU4iLCJhTyIsImFQIl0sWzQxLCJhUSJdLFszLCJhUSIsWzMwLFsxNSwiYU8iXSxbN11dXSxbMywiYVEiLFszOSxbImwiLFsxNSwiYVEiXV0sWzE1LCJhUSJdLFs3LFsxNSwiYVEiXV1dXSxbMjIsWzI4LFsiYUQiLFsxNSwiYU4iXSxbMTUsImFRIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFszMCxbMjgsWzE1LCJhUCJdXSxbMjAsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sMF1dLFs0NixbMzYsdHJ1ZV1dXSxbNTMsWzQxLCJhUiJdLFszLCJhUiIsMF0sWzYzLFs3LCJhUiJdLFsyMyxbMTUsImFSIl0sWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFSIl0sWzMsImFSIixbMCxbMTUsImFSIl0sMV1dXSxbNDYsWzUzLFs1MiwiYVMiLFszMCxbMTYsWzE2LFsxNSwiYVAiXSxbMTUsImFSIl1dLFsxNSwidSJdXSxbN11dXSxbMjIsWyJhRCIsWzE1LCJhTiJdLFsxNSwiYVMiXSx0cnVlXSxbNDYsWzUzLFszNix0cnVlXV1dXV1dXV0sWzM2LGZhbHNlXV0sWzUwLCJhRCIsWzQ2LCJhTiIsImFPIiwiYVAiXSxbNTMsWzQxLCJhUSJdLFszLCJhUSIsMF0sWzYzLFs3LCJhUSJdLFsyMyxbMTUsImFRIl0sWzE3LFsxNSwiYU8iXSwibGVuZ3RoIl1dLFszMyxbMTUsImFRIl0sWzMsImFRIixbMCxbMTUsImFRIl0sMV1dXSxbNDYsWzUzLFs1MiwiYVIiLFsxNixbMTUsImFPIl0sWzE1LCJhUSJdXV0sWzUyLCJhUyIsWyJhRSIsWzE1LCJhTiJdLFsxNSwiYVIiXSxmYWxzZV1dLFsyMixbMTUsImFQIl0sWzQ2LFs1MyxbNTIsImFUIixbMTYsWzMwLFsxNixbMTUsImFSIl0sWzE1LCJ4Il1dLFs3XV0sMF1dLFsyMixbMSxbMSxbMTUsImFUIl0sWzIwLFsxNixbMTUsImFUIl0sWzE1LCJ5Il1dLFsxNSwidCJdXV0sWzIxLFsyLFsxNSwieiJdLCJpbmRleE9mIixbNyxbMTYsWzE2LFsxNSwiYVQiXSxbMTUsInQiXV0sWzE1LCJzIl1dXV0sWzI3LDFdXV0sWzQ2LFs1MyxbNTIsImFVIixbImFFIixbMTUsImFOIl0sWzE1LCJhUiJdLHRydWVdXSxbMjIsWzIxLFsxNSwiYVMiXSxbMTUsImFVIl1dLFs0NixbNTMsWzUyLCJhViIsWzMwLFsyLFsxNSwiYU4iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQUMiXV1dLFs3XV1dLFsyLFsxNSwiYVYiXSwicHVzaCIsWzcsWzM5LFsxNSwiYVMiXSxbMTcsWzE1LCJrIl0sIlUiXSxbMTcsWzE1LCJrIl0sIlQiXV1dXSxbMixbMTUsImFOIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkFDIl0sWzE1LCJhViJdXV1dXV1dXV1dXV0sWzIyLFsyOCxbMTUsImFTIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXV1dXV0sWzM2LHRydWVdXSxbNTAsImFFIixbNDYsImFOIiwiYU8iLCJhUCJdLFs1MiwiYVEiLFszMCxbMTYsWzE1LCJhTyJdLFsxNSwieCJdXSxbN11dXSxbNDEsImFSIl0sWzMsImFSIixbImFGIixbMTUsImFOIl0sWzE2LFsxNSwiYVEiXSwwXV1dLFs0MSwiYVMiXSxbMywiYVMiLFsiYUYiLFsxNSwiYU4iXSxbMTYsWzE1LCJhUSJdLDFdXV0sWzIyLFsxLFsxNSwiYVAiXSxbMTUsImFSIl1dLFs0NixbNTMsWzMsImFSIixbMzAsWyJnIixbMTUsImFSIl1dLFsxNSwiYVIiXV1dXV1dLFsyMixbMTUsImFTIl0sWzQ2LFs1MyxbNTIsImFZIixbMTYsWzMwLFsxNixbMTUsImFPIl0sWzE1LCJ4Il1dLFs3XV0sMF1dLFsyMixbMSxbMSxbMTUsImFZIl0sWzIwLFsxNixbMTUsImFZIl0sWzE1LCJ5Il1dLFsxNSwidCJdXV0sWzIxLFsyLFsxNSwieiJdLCJpbmRleE9mIixbNyxbMTYsWzE2LFsxNSwiYVkiXSxbMTUsInQiXV0sWzE1LCJzIl1dXV0sWzI3LDFdXV0sWzQ2LFs1MyxbNTIsImFaIixbMixbMTUsImFTIl0sImluZGV4T2YiLFs3LCI/Il1dXSxbMjIsWzIwLFsxNSwiYVoiXSxbMjcsMV1dLFs0NixbNTMsWzMsImFTIixbMzAsWyJnIixbMTUsImFTIl1dLFsxNSwiYVMiXV1dXV0sWzQ2LFs1MyxbNTIsImJBIixbMixbMTUsImFTIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsImFaIl1dXV0sWzMsImFTIixbMCxbMzAsWyJnIixbMTUsImJBIl1dLFsxNSwiYkEiXV0sWzIsWzE1LCJhUyJdLCJzdWJzdHJpbmciLFs3LFsxNSwiYVoiXV1dXV1dXV1dXV1dXV0sWzUyLCJhVCIsWzE2LFsxNSwiYU8iXSxbMTUsInciXV1dLFsyMixbMzAsWzMwLFszMCxbMjAsWzE1LCJhVCJdLCJlcWkiXSxbMjAsWzE1LCJhVCJdLCJzd2kiXV0sWzIwLFsxNSwiYVQiXSwiZXdpIl1dLFsyMCxbMTUsImFUIl0sImNuaSJdXSxbNDYsWzUzLFsyMixbMTUsImFSIl0sWzQ2LFszLCJhUiIsWzIsWyJkIixbMTUsImFSIl1dLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXSxbMjIsWzE1LCJhUyJdLFs0NixbMywiYVMiLFsyLFsiZCIsWzE1LCJhUyJdXSwidG9Mb3dlckNhc2UiLFs3XV1dXV1dXV0sWzQxLCJhVSJdLFszLCJhVSIsZmFsc2VdLFszOCxbMTUsImFUIl0sWzQ2LCJlcSIsImVxaSIsInN3Iiwic3dpIiwiZXciLCJld2kiLCJjbiIsImNuaSIsImx0IiwibGUiLCJndCIsImdlIiwicmUiLCJyZWkiXSxbNDYsWzUsWzQ2XV0sWzUsWzQ2LFszLCJhVSIsWzIwLFsiZCIsWzE1LCJhUiJdXSxbImQiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDZdXSxbNSxbNDYsWzMsImFVIixbMjAsWzIsWyJkIixbMTUsImFSIl1dLCJpbmRleE9mIixbNyxbImQiLFsxNSwiYVMiXV1dXSwwXV0sWzRdXV0sWzUsWzQ2XV0sWzUsWzQ2LFs0MSwiYVYiXSxbMywiYVYiLFsiZCIsWzE1LCJhUiJdXV0sWzQxLCJhVyJdLFszLCJhVyIsWyJkIixbMTUsImFTIl1dXSxbNTIsImFYIixbMzcsWzE3LFsxNSwiYVYiXSwibGVuZ3RoIl0sWzE3LFsxNSwiYVciXSwibGVuZ3RoIl1dXSxbMywiYVUiLFsxLFsxOSxbMTUsImFYIl0sMF0sWzIwLFsyLFsxNSwiYVYiXSwiaW5kZXhPZiIsWzcsWzE1LCJhVyJdLFsxNSwiYVgiXV1dLFsxNSwiYVgiXV1dXSxbNF1dXSxbNSxbNDZdXSxbNSxbNDYsWzMsImFVIixbMTksWzIsWyJkIixbMTUsImFSIl1dLCJpbmRleE9mIixbNyxbImQiLFsxNSwiYVMiXV1dXSwwXV0sWzRdXV0sWzUsWzQ2LFszLCJhVSIsWzIzLFsiYiIsWzE1LCJhUiJdXSxbImIiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMjQsWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMywiYVUiLFsxOCxbImIiLFsxNSwiYVIiXV0sWyJiIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2LFszLCJhVSIsWzE5LFsiYiIsWzE1LCJhUiJdXSxbImIiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDYsWzIyLFsyMSxbMTUsImFSIl0sWzQ0XV0sWzQ2LFs1MyxbNTIsImFZIixbImUiLFsxNSwiYVMiXV1dLFsyMixbMTUsImFZIl0sWzQ2LFszLCJhVSIsWyJmIixbMTUsImFZIl0sWzE1LCJhUiJdXV1dXV1dXSxbNF1dXSxbNSxbNDYsWzIyLFsyMSxbMTUsImFSIl0sWzQ0XV0sWzQ2LFs1MyxbNTIsImFZIixbImUiLFsxNSwiYVMiXSwiaSJdXSxbMjIsWzE1LCJhWSJdLFs0NixbMywiYVUiLFsiZiIsWzE1LCJhWSJdLFsxNSwiYVIiXV1dXV1dXV0sWzRdXV0sWzksWzQ2XV1dXSxbMjIsWzI4LFsyOCxbMTYsWzE1LCJhTyJdLFsxNSwidiJdXV1dLFs0NixbMzYsWzI4LFsxNSwiYVUiXV1dXV0sWzM2LFsxNSwiYVUiXV1dLFs1MCwiYUYiLFs0NiwiYU4iLCJhTyJdLFsyMixbMjgsWzE1LCJhTyJdXSxbNDYsWzM2LFs0NF1dXV0sWzM4LFsxNixbMTUsImFPIl0sWzE1LCJ5Il1dLFs0NiwiZXZlbnRfbmFtZSIsImNvbnN0IiwiZXZlbnRfcGFyYW0iXSxbNDYsWzUsWzQ2LFszNixbMixbMTUsImFOIl0sImdldEV2ZW50TmFtZSIsWzddXV1dXSxbNSxbNDYsWzM2LFsxNixbMTUsImFPIl0sWzE1LCJyIl1dXV1dLFs1LFs0NixbNTIsImFQIixbMTYsWzE2LFsxNSwiYU8iXSxbMTUsInQiXV0sWzE1LCJzIl1dXSxbMjIsWzIwLFsxNSwiYVAiXSxbMTcsWzE1LCJqIl0sIkhEIl1dLFs0NixbNTMsWzM2LFsiYUkiLFsxNSwiYU4iXV1dXV1dLFsyMixbMjAsWzE1LCJhUCJdLFsxNyxbMTUsImoiXSwiSEMiXV0sWzQ2LFs1MyxbMzYsWyJhSiIsWzE1LCJhTiJdXV1dXV0sWzM2LFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhUCJdXV1dXV0sWzksWzQ2LFszNixbNDRdXV1dXV1dLFs1MCwiYUgiLFs0NiwiYU4iXSxbMjIsWzI4LFsxNSwiYU4iXV0sWzQ2LFs1MyxbMzYsWzE1LCJhTiJdXV1dXSxbNTIsImFPIixbMixbMTUsImFOIl0sInNwbGl0IixbNywiJiJdXV0sWzUyLCJhUCIsWzddXSxbNDMsWzE1LCJhTyJdLDAsWzIsWzE2LFsxNSwiYU8iXSwwXSwic3Vic3RyaW5nIixbNywxXV1dLFs1MyxbNDEsImFRIl0sWzMsImFRIiwwXSxbNjMsWzcsImFRIl0sWzIzLFsxNSwiYVEiXSxbMTcsWzE1LCJhTyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYVEiXSxbMywiYVEiLFswLFsxNSwiYVEiXSwxXV1dLFs0NixbNTMsWzUyLCJhUiIsWzE2LFsxNSwiYU8iXSxbMTUsImFRIl1dXSxbNTIsImFTIixbMixbMTUsImFSIl0sImluZGV4T2YiLFs3LCI9Il1dXSxbNTIsImFUIixbMzksWzE5LFsxNSwiYVMiXSwwXSxbMixbMTUsImFSIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsImFTIl1dXSxbMTUsImFSIl1dXSxbMjIsWzI4LFsxNixbMTUsImFHIl0sWzE1LCJhVCJdXV0sWzQ2LFs1MyxbMixbMTUsImFQIl0sInB1c2giLFs3LFsxNixbMTUsImFPIl0sWzE1LCJhUSJdXV1dXV1dXV1dXSxbMjIsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sWzQ2LFs1MyxbMzYsWzAsIj8iLFsyLFsxNSwiYVAiXSwiam9pbiIsWzcsIiYiXV1dXV1dXSxbMzYsIiJdXSxbNTAsImFJIixbNDYsImFOIl0sWzUyLCJhTyIsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIkhEIl1dXV0sWzIyLFsxNSwiYU8iXSxbNDYsWzM2LFsxNSwiYU8iXV1dXSxbNTIsImFQIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0giXV1dXSxbMjIsWzIxLFs0MCxbMTUsImFQIl1dLCJzdHJpbmciXSxbNDYsWzM2LFs0NF1dXV0sWzUyLCJhUSIsWyJjIixbMTUsImFQIl1dXSxbMjIsWzI4LFsxNSwiYVEiXV0sWzQ2LFszNixbNDRdXV1dLFs0MSwiYVIiXSxbMywiYVIiLFsxNyxbMTUsImFRIl0sInBhdGhuYW1lIl1dLFszLCJhUiIsWzMwLFsiZyIsWzE1LCJhUiJdXSxbMTUsImFSIl1dXSxbMzYsWzAsWzE1LCJhUiJdLFsiYUgiLFsxNyxbMTUsImFRIl0sInNlYXJjaCJdXV1dXSxbNTAsImFKIixbNDYsImFOIl0sWzUyLCJhTyIsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIkhDIl1dXV0sWzIyLFsxNSwiYU8iXSxbNDYsWzM2LFsxNSwiYU8iXV1dXSxbNTIsImFQIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0giXV1dXSxbMjIsWzIxLFs0MCxbMTUsImFQIl1dLCJzdHJpbmciXSxbNDYsWzM2LFs0NF1dXV0sWzUyLCJhUSIsWyJjIixbMTUsImFQIl1dXSxbMjIsWzI4LFsxNSwiYVEiXV0sWzQ2LFszNixbNDRdXV1dLFszNixbMTcsWzE1LCJhUSJdLCJob3N0bmFtZSJdXV0sWzUwLCJhTSIsWzQ2LCJhTiJdLFsyMixbMjgsWzE1LCJhTiJdXSxbNDYsWzM2LHRydWVdXV0sWzMsImFOIixbImQiLFsxNSwiYU4iXV1dLFs2NiwiYU8iLFsxNSwiYUwiXSxbNDYsWzUzLFsyMixbMjAsWzIsWzE1LCJhTiJdLCJpbmRleE9mIixbNyxbMTUsImFPIl1dXSwwXSxbNDYsWzM2LHRydWVdXV1dXV0sWzIyLFsxOCxbMixbMTUsImFLIl0sImluZGV4T2YiLFs3LFsxNSwiYU4iXV1dLFsyNywxXV0sWzQ2LFszNix0cnVlXV1dLFszNixmYWxzZV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwibWFrZU51bWJlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGVzdFJlZ2V4Il1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiZGVjb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJsIixbNTEsIiIsWzcsImFOIl0sWzM2LFsyMCxbImgiLFsxNSwiYU4iXV0sImFycmF5Il1dXV0sWzUyLCJtIiwiZXZlbnRfcGFyYW1fb3BzIl0sWzUyLCJuIiwiZWRpdF9wYXJhbSJdLFs1MiwibyIsImRlbGV0ZV9wYXJhbSJdLFs1MiwicCIsInBhcmFtX25hbWUiXSxbNTIsInEiLCJwYXJhbV92YWx1ZSJdLFs1MiwiciIsImNvbnN0X3ZhbHVlIl0sWzUyLCJzIiwicGFyYW1fbmFtZSJdLFs1MiwidCIsImV2ZW50X3BhcmFtIl0sWzUyLCJ1IiwicHJlZGljYXRlcyJdLFs1MiwidiIsIm5lZ2F0ZSJdLFs1MiwidyIsInR5cGUiXSxbNTIsIngiLCJ2YWx1ZXMiXSxbNTIsInkiLCJ0eXBlIl0sWzUyLCJ6IixbNyxbMTcsWzE1LCJqIl0sIkhEIl0sWzE3LFsxNSwiaiJdLCJLSCJdLFsxNyxbMTUsImoiXSwiSEUiXV1dLFs1MiwiYUciLFs4LCJfX2dhIiwxLCJfX3V0bWEiLDEsIl9fdXRtYiIsMSwiX191dG1jIiwxLCJfX3V0bWsiLDEsIl9fdXRtdiIsMSwiX191dG14IiwxLCJfX3V0bXoiLDEsIl9nYWMiLDEsIl9nbCIsMSwiZGNsaWQiLDEsImdhZF9jYW1wYWlnbmlkIiwxLCJnYWRfc291cmNlIiwxLCJnYnJhaWQiLDEsImdjbGlkIiwxLCJnY2xzcmMiLDEsInV0bV9jYW1wYWlnbiIsMSwidXRtX2NvbnRlbnQiLDEsInV0bV9leHBpZCIsMSwidXRtX2lkIiwxLCJ1dG1fbWVkaXVtIiwxLCJ1dG1fbm9vdmVycmlkZSIsMSwidXRtX3JlZmVycmVyIiwxLCJ1dG1fc291cmNlIiwxLCJ1dG1fdGVybSIsMSwid2JyYWlkIiwxXV0sWzUyLCJhSyIsWzcsWzE3LFsxNSwiaiJdLCJJIl0sWzE3LFsxNSwiaiJdLCJKIl0sWzE3LFsxNSwiaiJdLCJLIl0sWzE3LFsxNSwiaiJdLCJMIl0sWzE3LFsxNSwiaiJdLCJNIl0sWzE3LFsxNSwiaiJdLCJBRiJdLFsxNyxbMTUsImoiXSwiQUciXSxbMTcsWzE1LCJqIl0sIkFKIl0sWzE3LFsxNSwiaiJdLCJBTSJdLFsxNyxbMTUsImoiXSwiQVEiXV1dLFs1MiwiYUwiLFs3LCJfIiwiZ2FfIiwiZ29vZ2xlXyIsImd0YWcuIiwiZmlyZWJhc2VfIl1dLFszNixbOCwiQSIsWzE1LCJhQSJdLCJEIixbMTUsImFNIl0sIkIiLFsxNSwiYUMiXSwiQyIsWzE1LCJhRiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ2FBZHNMaW5rQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsInAiLFs0NiwidyIsIngiLCJ5IiwieiJdLFsiZiIsWzE1LCJ3Il0sImdhNF9hZHNfbGlua2VkIix0cnVlXSxbImUiLFsxNSwidyJdLFs1MSwiIixbNywiYUEiLCJhQiJdLFsieCIsWzE1LCJhQSJdXSxbMixbMTUsImFBIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFQIl0sWzI4LFsyOCxbInoiLFsxNSwiYUEiXV1dXV1dLFsicSIsWzE1LCJ5Il0sWzE1LCJhQSJdLFsxNSwiYUIiXV1dXV0sWzUwLCJxIixbNDYsInciLCJ4IiwieSJdLFsyMixbMjgsWyJzIixbMTUsIngiXV1dLFs0NixbMzZdXV0sWzIyLFsidCIsWzE1LCJ4Il0sWzE1LCJ5Il1dLFs0NixbMzZdXV0sWzIyLFsyLFsxNSwieCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBViJdXV0sWzQ2LFs1MyxbInIiLFsxNSwidyJdLFsxNSwieCJdXV1dXSxbMjIsWzIsWzE1LCJ4Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJBIl1dXSxbNDYsWzUzLFsiciIsWzE1LCJ3Il0sWzE1LCJ4Il0sImZpcnN0X3Zpc2l0Il1dXV0sWzIyLFsyLFsxNSwieCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCTSJdXV0sWzQ2LFs1MyxbInIiLFsxNSwidyJdLFsxNSwieCJdLCJzZXNzaW9uX3N0YXJ0Il1dXV1dLFs1MCwiciIsWzQ2LCJ3IiwieCIsInkiXSxbNTAsImFBIixbNDYsImFCIl0sWzUyLCJhQyIsWzIsWzE1LCJ4Il0sImdldEhpdERhdGEiLFs3LFsxNSwiYUIiXV1dXSxbMjIsWzIxLFsxNSwiYUMiXSxbNDRdXSxbNDYsWzUzLFsyLFsxNSwieiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFCIl0sWzE1LCJhQyJdXV1dXV1dLFs1MiwieiIsWyJiIixbMTUsIngiXSxbOCwib21pdEhpdERhdGEiLHRydWUsInVzZUhpdERhdGEiLHRydWVdXV0sWzIyLFsxNSwieSJdLFs0NixbNTMsWzIsWzE1LCJ6Il0sInNldEV2ZW50TmFtZSIsWzcsWzE1LCJ5Il1dXV1dXSxbMixbMTUsInoiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVEiXSwiZ2FfY29udmVyc2lvbiJdXSxbImFBIixbMTcsWzE1LCJrIl0sIkNMIl1dLFsiYUEiLFsxNyxbMTUsImsiXSwiSlIiXV0sWyJhQSIsIl8maWJ0Il0sWyJ3IiwiZ2FfY29udmVyc2lvbiIsWzE1LCJ6Il1dXSxbNTAsInMiLFs0NiwidyJdLFs1MiwieCIsWzI4LFsiZCIsWzE3LFsxNSwiaSJdLCJMIl1dXV0sWzIyLFsxNSwieCJdLFs0NixbNTMsWzIyLFsiZCIsWzE3LFsxNSwiaSJdLCJCQyJdXSxbNDYsWzUzLFs1MiwieiIsWzMwLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBRCJdXV0sWzddXV0sWzIsWzE1LCJ6Il0sInB1c2giLFs3LFsxNSwibyJdXV0sWzIsWzE1LCJ3Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFEIl0sWzE1LCJ6Il1dXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXV1dXSxbMjIsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJOIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCSyJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFs1MiwieSIsWzMwLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBQyJdXV0sWzddXV0sWzIyLFsyMCxbMixbMTUsInkiXSwiaW5kZXhPZiIsWzcsWzE3LFsxNSwibCJdLCJBTyJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyLFsxNSwieSJdLCJwdXNoIixbNyxbMTcsWzE1LCJsIl0sIkFPIl1dXV1dXSxbMjIsWzI4LFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJQIl1dXV0sWzQ2LFs1MyxbMjIsWzIwLFsyLFsxNSwieSJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJsIl0sIkFOIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ5Il0sInB1c2giLFs3LFsxNyxbMTUsImwiXSwiQU4iXV1dXV1dXV1dLFsyLFsxNSwidyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBQyJdLFsxNSwieSJdXV0sWzIyLFsyOCxbMzAsWzMwLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBViJdXV0sWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJBIl1dXV0sWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJNIl1dXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMzYsdHJ1ZV1dLFs1MCwidCIsWzQ2LCJ3IiwieCJdLFs0MSwieSJdLFszLCJ5IixmYWxzZV0sWzUyLCJ6IixbN11dLFs1MiwiYUEiLFsibiIsWzE1LCJjIl0sWzE1LCJ4Il1dXSxbNTIsImFCIixbNTEsIiIsWzcsImFDIiwiYUQiXSxbMjIsWyJhQyIsWzE1LCJ3Il0sWzE1LCJhQSJdXSxbNDYsWzUzLFszLCJ5Iix0cnVlXSxbMixbMTUsInoiXSwicHVzaCIsWzcsWzE1LCJhRCJdXV1dXV1dXSxbImFCIixbMTUsInUiXSxbMTcsWzE1LCJtIl0sIkdPT0dMRV9TSUdOQUxfRElTQUJMRUQiXV0sWyJhQiIsWzE1LCJ2Il0sWzE3LFsxNSwibSJdLCJERVZJQ0VfREFUQV9SRURBQ1RJT05fRU5BQkxFRCJdXSxbMjIsWzI4LFsxNSwieSJdXSxbNDYsWzIsWzE1LCJ6Il0sInB1c2giLFs3LFsxNyxbMTUsIm0iXSwiQkVBQ09OX1NFTlQiXV1dXV0sWzIsWzE1LCJ3Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSE4iXSxbMixbMTUsInoiXSwiam9pbiIsWzcsIi4iXV1dXSxbMzYsWzE1LCJ5Il1dXSxbNTAsInUiLFs0NiwidyIsIngiXSxbMjIsWzI4LFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCRiJdXV1dLFs0NixbNTMsWzM2LHRydWVdXV1dLFsyMixbImQiLFsxNyxbMTUsImkiXSwiQU8iXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFsyMixbMjAsWyJ4IixbMixbMTUsInciXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSxbMTcsWzE1LCJrIl0sIkJOIl1dLGZhbHNlXSxbNDYsWzUzLFszNix0cnVlXV1dXSxbMzYsZmFsc2VdXSxbNTAsInYiLFs0NiwidyIsIngiXSxbMzYsWzMwLFsyMCxbIngiLFsyLFsxNSwidyJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJyZWRhY3RfZGV2aWNlX2luZm8iXSx0cnVlXSxbMjAsWyJ4IixbMixbMTUsInciXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSwiZ2VvX2dyYW51bGFyaXR5Il0sdHJ1ZV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2FjdGl2aXRpZXMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsIm0iLFsyLFsxNSwiZyJdLCJmcmVlemUiLFs3LFs4LCJCRUFDT05fU0VOVCIsIm9rIiwiR09PR0xFX1NJR05BTF9ESVNBQkxFRCIsImdzIiwiR0E0X1NVQkRPTUFJTl9FTkFCTEVEIiwid2ciLCJERVZJQ0VfREFUQV9SRURBQ1RJT05fRU5BQkxFRCIsInJkIiwiR0E0X1NVQkRPTUFJTl9FTkFCTEVEX1dJVEhPVVRfQ09OU0VOVCIsIndnYyJdXV1dLFs1MiwibiIsWzE3LFsxNSwiaCJdLCJBIl1dLFs1MiwibyIsMS4xODg2OTE4OEU4XSxbMzYsWzgsIkEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkR2FSZWdpb25TY29wZWRTZXR0aW5ncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJtIiwibiIsIm8iXSxbNTAsInQiLFs0NiwidiJdLFs1MiwidyIsWzE2LFsxNSwiaSJdLFsxNSwidiJdXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNl1dXSxbNTMsWzQxLCJ4Il0sWzMsIngiLDBdLFs2MyxbNywieCJdLFsyMyxbMTUsIngiXSxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJ4Il0sWzMsIngiLFswLFsxNSwieCJdLDFdXV0sWzQ2LFs1MyxbNTIsInkiLFsxNixbMTUsInciXSxbMTUsIngiXV1dLFsicSIsWzE1LCJwIl0sWzE3LFsxNSwieSJdLCJuYW1lIl0sWzE3LFsxNSwieSJdLCJ2YWx1ZSJdXV1dXV1dLFs1MCwidSIsWzQ2LCJ2Il0sWzIyLFszMCxbMjgsWzE1LCJyIl1dLFsyMSxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzQxLCJ3Il0sWzMsInciLFsxNixbMTUsInYiXSxbMTUsInMiXV1dLFsyMixbMjAsWzE1LCJ3Il0sWzQ0XV0sWzQ2LFs1MyxbMywidyIsWzE2LFsxNSwidiJdLFsxNSwiciJdXV1dXV0sWzM2LFsyOCxbMjgsWzE1LCJ3Il1dXV1dLFsyMixbMjgsWzE1LCJuIl1dLFs0NixbMzZdXV0sWzUyLCJwIixbMzAsWzE3LFsxNSwibSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWyJjIl0sImNvbnRhaW5lcklkIl1dXSxbNTIsInEiLFsiaCIsWzE1LCJmIl0sWzE1LCJvIl1dXSxbNTIsInIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbImgiLFsxNSwiZCJdLFsxNSwibyJdXV0sWyIkMCJdXV0sWzUyLCJzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJoIixbMTUsImUiXSxbMTUsIm8iXV1dLFsiJDAiXV1dLFs1MyxbNDEsInYiXSxbMywidiIsMF0sWzYzLFs3LCJ2Il0sWzIzLFsxNSwidiJdLFsxNyxbMTUsIm4iXSwibGVuZ3RoIl1dLFszMyxbMTUsInYiXSxbMywidiIsWzAsWzE1LCJ2Il0sMV1dXSxbNDYsWzUzLFs1MiwidyIsWzE2LFsxNSwibiJdLFsxNSwidiJdXV0sWzIyLFszMCxbMTcsWzE1LCJ3Il0sImRpc2FsbG93QWxsUmVnaW9ucyJdLFsidSIsWzE3LFsxNSwidyJdLCJkaXNhbGxvd2VkUmVnaW9ucyJdXV0sWzQ2LFs1MyxbInQiLFsxNyxbMTUsInciXSwicmVkYWN0RmllbGRHcm91cCJdXV1dXV1dXV1dLFs1MCwiayIsWzQ2LCJtIl0sWzUyLCJuIixbOF1dLFsyMixbMjgsWzE1LCJtIl1dLFs0NixbMzYsWzE1LCJuIl1dXV0sWzUyLCJvIixbMixbMTUsIm0iXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJwIl0sWzMsInAiLDBdLFs2MyxbNywicCJdLFsyMyxbMTUsInAiXSxbMTcsWzE1LCJvIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJwIl0sWzMsInAiLFswLFsxNSwicCJdLDFdXV0sWzQ2LFs1MyxbNTIsInEiLFsyLFsxNixbMTUsIm8iXSxbMTUsInAiXV0sInRyaW0iLFs3XV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNl1dXSxbNTIsInIiLFsyLFsxNSwicSJdLCJzcGxpdCIsWzcsIi0iXV1dLFs1MiwicyIsWzE2LFsxNSwiciJdLDBdXSxbNTIsInQiLFszOSxbMjAsWzE3LFsxNSwiciJdLCJsZW5ndGgiXSwyXSxbMTUsInEiXSxbNDRdXV0sWzIyLFszMCxbMjgsWzE1LCJzIl1dLFsyMSxbMTcsWzE1LCJzIl0sImxlbmd0aCJdLDJdXSxbNDYsWzUzLFs2XV1dXSxbMjIsWzEsWzIxLFsxNSwidCJdLFs0NF1dLFszMCxbMjMsWzE3LFsxNSwidCJdLCJsZW5ndGgiXSw0XSxbMTgsWzE3LFsxNSwidCJdLCJsZW5ndGgiXSw2XV1dLFs0NixbNTMsWzZdXV1dLFs0MyxbMTUsIm4iXSxbMTUsInEiXSx0cnVlXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJsIixbNDYsIm0iXSxbMjIsWzI4LFsxNyxbMTUsIm0iXSwic2V0dGluZ3NUYWJsZSJdXSxbNDYsWzM2LFs3XV1dXSxbNTIsIm4iLFs4XV0sWzUzLFs0MSwibyJdLFszLCJvIiwwXSxbNjMsWzcsIm8iXSxbMjMsWzE1LCJvIl0sWzE3LFsxNyxbMTUsIm0iXSwic2V0dGluZ3NUYWJsZSJdLCJsZW5ndGgiXV0sWzMzLFsxNSwibyJdLFszLCJvIixbMCxbMTUsIm8iXSwxXV1dLFs0NixbNTMsWzUyLCJwIixbMTYsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl0sWzE1LCJvIl1dXSxbNTIsInEiLFsxNyxbMTUsInAiXSwicmVkYWN0RmllbGRHcm91cCJdXSxbMjIsWzI4LFsxNixbMTUsImkiXSxbMTUsInEiXV1dLFs0NixbNl1dXSxbNDMsWzE1LCJuIl0sWzE1LCJxIl0sWzgsInJlZGFjdEZpZWxkR3JvdXAiLFsxNSwicSJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLGZhbHNlLCJkaXNhbGxvd2VkUmVnaW9ucyIsWzhdXV0sWzUyLCJyIixbMTYsWzE1LCJuIl0sWzE1LCJxIl1dXSxbMjIsWzE3LFsxNSwicCJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiXSxbNDYsWzUzLFs0MyxbMTUsInIiXSwiZGlzYWxsb3dBbGxSZWdpb25zIix0cnVlXSxbNl1dXV0sWzQzLFsxNSwiciJdLCJkaXNhbGxvd2VkUmVnaW9ucyIsWyJrIixbMTcsWzE1LCJwIl0sImRpc2FsbG93ZWRSZWdpb25zIl1dXV1dXV0sWzM2LFsyLFsxNSwiYiJdLCJ2YWx1ZXMiLFs3LFsxNSwibiJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldENvbnRhaW5lclZlcnNpb24iXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRDb3VudHJ5Q29kZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlZ2lvbkNvZGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2FjdGl2aXRpZXMiXV0sWzUyLCJoIixbMTcsWzE1LCJnIl0sIkEiXV0sWzUyLCJpIixbOCwiR09PR0xFX1NJR05BTFMiLFs3LFs4LCJuYW1lIiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLCJ2YWx1ZSIsZmFsc2VdXSwiREVWSUNFX0FORF9HRU8iLFs3LFs4LCJuYW1lIiwiZ2VvX2dyYW51bGFyaXR5IiwidmFsdWUiLHRydWVdLFs4LCJuYW1lIiwicmVkYWN0X2RldmljZV9pbmZvIiwidmFsdWUiLHRydWVdXV1dLFszNixbOCwiQSIsWzE1LCJqIl0sIkIiLFsxNSwibCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsyLFsxNSwiYyJdLCJBIixbN11dXSxbMjIsWzEsWzE1LCJmIl0sWzE4LFsxNyxbMTUsImYiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzIsWzE1LCJlIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiYiJdLCJGVCJdLFs4LCJwbGYiLFsyLFsxNSwiZiJdLCJqb2luIixbNywiLiJdXV1dXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nYUNvbnZlcnNpb25Qcm9jZXNzb3IiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImFDIixbNDYsImFEIl0sWzUyLCJhRSIsWzcsWzE3LFsxNSwiZiJdLCJCIl0sWzE3LFsxNSwiZiJdLCJDIl1dXSxbNTIsImFGIixbNTEsIiIsWzddLFsiciIsWzE1LCJhRCJdXSxbMixbMTUsImFCIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwidyJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInQiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJKIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ4Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwicSJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiQiIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJtIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJDIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiRSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkkiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJHIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiSCIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ5Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYUEiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWyJrIixbMTUsImFEIl1dLFsyLFsxNSwibCJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInMiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkYiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJEIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIm8iXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ2Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwidSJdLCJBIixbNyxbMTUsImFEIl1dXSxbInoiLFsxNSwiYUQiXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFsxNSwiYUQiXV1dXV0sWzUyLCJhRyIsWzUxLCIiLFs3XSxbImMiLFs1MSwiIixbN10sWyJhRiJdLFsyMixbMjgsWyJnIixbMTUsImFFIl1dXSxbNDYsWzUzLFsiZCIsWzUxLCIiLFs3XSxbMjIsWyJnIixbMTUsImFFIl1dLFs0NixbNTMsWzIsWzE1LCJhRCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJOIl0sdHJ1ZV1dLFsiYUYiXV1dXV0sWzE1LCJhRSJdXV1dXV0sWzE1LCJhRSJdXV1dLFsiaiIsWzE1LCJhRyJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2NvbW1vbkFkc1Rhc2tzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlRmlyc3RUcnkiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVSZXRyeSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrQWRkQWRzQ2xpY2tJZHMiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRDb29raWVEZXByZWNhdGlvbkxhYmVsIl1dLFs1MiwibSIsWzE1LCJfX21vZHVsZV90YXNrQWRkRGV2ZWxvcGVySWQiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiXV0sWzUyLCJvIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIl1dLFs1MiwicCIsWzE1LCJfX21vZHVsZV90YXNrU2VuZEFkc0hpdHMiXV0sWzUyLCJxIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBZHNQYWdlUGFyYW1zIl1dLFs1MiwiciIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiXV0sWzUyLCJzIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iXV0sWzUyLCJ0IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiXV0sWzUyLCJ1IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRGZWF0dXJlVXNhZ2VQYXJhbXMiXV0sWzUyLCJ2IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHb29nbGVBbmFseXNpc1BhcmFtcyJdXSxbNTIsInciLFsxNSwiX19tb2R1bGVfdGFza1NldEdwcFBhcmFtcyJdXSxbNTIsIngiLFsxNSwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iXV0sWzUyLCJ5IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRQcml2YWN5UGFyYW1zIl1dLFs1MiwieiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldFVuaXZlcnNhbFBhcmFtcyJdXSxbNTIsImFBIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRVcmxQYXNzdGhyb3VnaFBhcmFtcyJdXSxbNTIsImFCIixbMTUsIl9fbW9kdWxlX3dlYkFkc1Rhc2tzIl1dLFszNixbOCwiQSIsWzE1LCJhQyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdXNlckRhdGFXZWJQcm9jZXNzb3IiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsInciLFs0NiwieCJdLFs1MiwieSIsWzcsWzE3LFsxNSwiYyJdLCJCIl0sWzE3LFsxNSwiYyJdLCJDIl1dXSxbNTIsInoiLFs1MSwiIixbN10sWyJtIixbMTUsIngiXV0sWzIsWzE1LCJ2Il0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJvIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJ1Il0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJqIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJiIl0sIkciLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJzIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJrIl0sIkEiLFs3LFsxNSwieCJdXV0sWyJoIixbMTUsIngiXV0sWzIsWzE1LCJpIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJyIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJuIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJsIl0sIkEiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJiIl0sIkQiLFs3LFsxNSwieCJdXV0sWzIsWzE1LCJxIl0sIkEiLFs3LFsxNSwieCJdXV0sWyJ0IixbMTUsIngiXV0sWzIyLFsyOCxbMixbMTUsIngiXSwiaXNBYm9ydGVkIixbN11dXSxbNDYsWzUzLFsiZyIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJhQSIsWzUxLCIiLFs3XSxbMjIsWzI4LFsiZCIsWzE1LCJ5Il1dXSxbNDYsWzUzLFszNl1dXV0sWyJ6Il1dXSxbImYiLFsxNSwiYUEiXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jb21tb25BZHNUYXNrcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kQWRzSGl0Il1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza0FkZEFkc0NsaWNrSWRzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV90YXNrQWRkRXZlbnRQcm92ZW5hbmNlIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV90YXNrQWRkVWFjaFBhcmFtcyJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRBZHNUcmFuc21pc3Npb25UeXBlIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV90YXNrU2V0QXVpZFBhcmFtIl1dLFs1MiwibyIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q29uZmlnUGFyYW1zIl1dLFs1MiwicCIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q29va2llRXhwaXJhdGlvblBhcmFtIl1dLFs1MiwicSIsWzE1LCJfX21vZHVsZV90YXNrU2V0RmVhdHVyZVVzYWdlUGFyYW1zIl1dLFs1MiwiciIsWzE1LCJfX21vZHVsZV90YXNrU2V0R29vZ2xlQW5hbHlzaXNQYXJhbXMiXV0sWzUyLCJzIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRJZnJhbWVTdGF0ZVBhcmFtIl1dLFs1MiwidCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldFVuaXZlcnNhbFBhcmFtcyJdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfdGFza1NldFVzZXJJZFBhcmFtcyJdXSxbNTIsInYiLFsxNSwiX19tb2R1bGVfd2ViQWRzVGFza3MiXV0sWzM2LFs4LCJBIixbMTUsInciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2Fkc0NvbnZlcnNpb25TcGxpdCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibyIsWzQ2LCJwIl0sWzUyLCJxIixbMzAsWzIsWzE1LCJwIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIk0iXV1dLFs4XV1dLFsyMixbMzAsWzI4LFsxNixbMTUsInEiXSxbMTcsWzE1LCJqIl0sIkMiXV1dLFsyOCxbMTYsWzE1LCJxIl0sWzE3LFsxNSwiaiJdLCJCIl1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbMjgsWyJrIl1dLFs0NixbMzZdXV0sWzUyLCJyIixbImkiLFsyLFsxNSwicCJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJjY2RfZW5hYmxlX2NtIl1dLFs1MiwicyIsWzIsWzE1LCJwIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNXIl1dXV0sWzIyLFsyOCxbMTUsInMiXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCRCJdLHRydWVdXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQkMiXSx0cnVlXV0sWzIyLFsyOCxbIm0iLFsxNSwicyJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCUSJdLHRydWVdXSxbNTIsInQiLFszMCxbImgiLFsxNSwicCJdXSxbImciXV1dLFsyMixbMixbMTUsInAiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJVSJdXV0sWzQ2LFs1MyxbMixbMTUsInAiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJViJdLFsxNyxbMTUsImMiXSwiQSJdXV1dXSxbNDYsWzUzLFs0MSwidiJdLFszLCJ2IixbNDRdXSxbNDEsInciXSxbMywidyIsWzQ0XV0sWzUyLCJ4IixbMixbMTUsInAiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLSSJdXV1dLFsyMixbMTUsIngiXSxbNDYsWzUzLFsyMixbMTYsWzE1LCJ4Il0sWzE3LFsxNSwiaiJdLCJJVSJdXSxbNDYsWzUzLFszLCJ2IixbMTYsWzE1LCJ4Il0sWzE3LFsxNSwiaiJdLCJJVSJdXV0sWzMsInciLFsxNyxbMTUsImMiXSwiQiJdXV1dXV1dXSxbMjIsWzI4LFsxNSwidiJdXSxbNDYsWzUzLFszLCJ2IixbImciLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktHIl1dXV1dLFszLCJ3IixbMTcsWzE1LCJjIl0sIkMiXV1dXV0sWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSVUiXSxbMTUsInYiXV1dLFsyLFsxNSwicCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklWIl0sWzE1LCJ3Il1dXV1dXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1UiXSxbMTUsInQiXV1dLFsyMixbMzAsWzI4LFsxNSwiciJdXSxbMjgsWzIsWzE1LCJwIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkYiXV1dXV0sWzQ2LFs1MyxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1ciXSxbNDRdXV1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNFIl0sdHJ1ZV1dLFsyLFsxNSwicCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklJIl0sWzE1LCJ0Il1dXSxbNTIsInUiLFsiZCIsWzE1LCJwIl0sWzgsIm9taXRIaXREYXRhIix0cnVlXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJBUSJdLFsxNyxbMTUsImIiXSwiSyJdXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNXIl0sWzE1LCJzIl1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQkMiXSx0cnVlXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJEIl0sdHJ1ZV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCUSJdLHRydWVdXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1UiXSxbMTUsInQiXV1dLFsyLFsxNSwidSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIkNSIl0sWzIsWzE1LCJwIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiQ1IiXV1dXV0sWzIyLFsxLFsxNSwiciJdLFsiayJdXSxbNDYsWzUzLFsyLFsxNSwidSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktDIl0sIjEiXV1dXV0sWzY4LCJ2IixbNTMsWzIsWzE1LCJuIl0sIkEiLFs3LFsxNSwidSJdXV1dLFs0Nl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNPcmRlcklkU291cmNlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weVByZUhpdCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFY3NpZENvb2tpZVZhbHVlIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGcGZlIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV91c2VyRGF0YVdlYlByb2Nlc3NvciJdXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ2FjdENvbnZlcnNpb25Qcm9jZXNzb3IiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImFFIixbNDYsImFGIl0sWzUyLCJhRyIsWzUxLCIiLFs3XSxbIm8iLFsxNSwiYUYiXV0sWzIsWzE1LCJhRCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImwiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJyIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidiJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInEiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJKIixbNyxbMTUsImFGIl1dXSxbMixbMTUsIngiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJqIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwibiJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiQiIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJpIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJDIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiRSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkkiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJHIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInkiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJhQSJdLCJBIixbNyxbMTUsImFGIl1dXSxbImciLFsxNSwiYUYiXV0sWzIsWzE1LCJoIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwicCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiRiIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkQiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiayJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInciXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJhQyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInMiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJhQiJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInUiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJhRCJdLCJCIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFEIl0sIkMiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInQiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWyJ6IixbMTUsImFGIl1dLFsyLFsxNSwibSJdLCJBIixbNyxbMTUsImFGIl1dXV1dLFsiZiIsWzE1LCJhRyJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2Fkc0NvbnZlcnNpb25TcGxpdCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tBZGRBZHNDbGlja0lkcyJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfdGFza0FkZENvb2tpZURlcHJlY2F0aW9uTGFiZWwiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGREZXZlbG9wZXJJZCJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfdGFza0FkZEV2ZW50UHJvdmVuYW5jZSJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfdGFza0FkZFVhY2hQYXJhbXMiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX3Rhc2tJbml0U2VydmljZVdvcmtlciJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfdGFza1NlbmRBZHNIaXRzIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV90YXNrU2V0QWRzUGFnZVBhcmFtcyJdXSxbNTIsIm8iLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRBZHNUcmFuc21pc3Npb25UeXBlIl1dLFs1MiwicCIsWzE1LCJfX21vZHVsZV90YXNrU2V0QXVpZFBhcmFtIl1dLFs1MiwicSIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q29uZmlnUGFyYW1zIl1dLFs1MiwiciIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q29va2llRXhwaXJhdGlvblBhcmFtIl1dLFs1MiwicyIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q3VzdG9tZXJMaWZlY3ljbGVQYXJhbXMiXV0sWzUyLCJ0IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRGZWF0dXJlVXNhZ2VQYXJhbXMiXV0sWzUyLCJ1IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHb29nbGVBbmFseXNpc1BhcmFtcyJdXSxbNTIsInYiLFsxNSwiX19tb2R1bGVfdGFza1NldEdwcFBhcmFtcyJdXSxbNTIsInciLFsxNSwiX19tb2R1bGVfdGFza1NldEdzYUV4cGVyaW1lbnRJZCJdXSxbNTIsIngiLFsxNSwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iXV0sWzUyLCJ5IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRQcml2YWN5UGFyYW1zIl1dLFs1MiwieiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldFVuaXZlcnNhbFBhcmFtcyJdXSxbNTIsImFBIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRVcmxQYXNzdGhyb3VnaFBhcmFtcyJdXSxbNTIsImFCIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRVc2VySWRQYXJhbXMiXV0sWzUyLCJhQyIsWzE1LCJfX21vZHVsZV90YXNrU3RvcmVCcmFpZExhYmVscyJdXSxbNTIsImFEIixbMTUsIl9fbW9kdWxlX3dlYkFkc1Rhc2tzIl1dLFszNixbOCwiQSIsWzE1LCJhRSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcHJvY2Vzc29ycyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZyIsWzQ2LCJpIiwiaiJdLFs0MyxbMTUsImYiXSxbMTUsImkiXSxbOCwicHJvY2VzcyIsWzE1LCJqIl1dXV0sWzUwLCJoIixbNDYsImkiLCJqIl0sWzUyLCJrIixbMTYsWzE1LCJmIl0sWzE1LCJpIl1dXSxbMjIsWzI4LFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJub1N1Y2hQcm9jZXNzb3JGb3JIaXRUeXBlIixbN11dXV1dLFs2OCwibCIsWzUzLFsyLFsxNSwiayJdLCJwcm9jZXNzIixbNyxbMTUsImoiXV1dXSxbNDZdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9nYUNvbnZlcnNpb25Qcm9jZXNzb3IiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2dhY3RDb252ZXJzaW9uUHJvY2Vzc29yIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV91c2VyRGF0YVdlYlByb2Nlc3NvciJdXSxbNTIsImYiLFs4XV0sWyJnIixbMTcsWzE1LCJiIl0sIkYiXSxbMTcsWzE1LCJjIl0sIkEiXV0sWyJnIixbMTcsWzE1LCJiIl0sIkQiXSxbMTcsWzE1LCJkIl0sIkEiXV0sWyJnIixbMTcsWzE1LCJiIl0sIksiXSxbMTcsWzE1LCJlIl0sIkEiXV0sWzM2LFs4LCJCIixbMTUsImgiXSwiQSIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAKXQosImVudGl0aWVzIjp7CiJfX2MiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYXV0b19yZWRhY3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX2Rvd25sb2FkIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3Njcm9sbCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV92aWRlbyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9hZHNfbGluayI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9maXJzdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX3JlZ3Njb3BlIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2djdCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF9nYV9zZW5kIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2dvb2dsZV9zaWduYWxzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X3Nlc3Npb25fdGltZW91dCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CgoKfQosImJsb2IiOnsiMSI6IjIiLCIxMCI6IkctQjRSUVMzVFpHOCIsIjE0IjoiNjdtMCIsIjE1IjoiMCIsIjE2IjoiQ2hFSThJT2Mwd1lRZ09tc2t2dWx4S3FSQVJJZEFMMlBZWlplZ2ZQTEJlQi9SRGRrQXBXMjRrMC8ybjhkR1c5WFZ4TWFBaG53IiwiMTciOiJjIiwiMTkiOiJkYXRhTGF5ZXIiLCIyMCI6IiIsIjIxIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMjIiOiJleUl3SWpvaVRrOGlMQ0l4SWpvaVRrOHRNRE1pTENJeUlqcG1ZV3h6WlN3aU15STZJbWR2YjJkc1pTNXVieUlzSWpRaU9pSnlaV2RwYjI0eElpd2lOU0k2Wm1Gc2MyVXNJallpT25SeWRXVXNJamNpT2lKaFpGOXpkRzl5WVdkbGZHRnVZV3g1ZEdsamMxOXpkRzl5WVdkbGZHRmtYM1Z6WlhKZlpHRjBZWHhoWkY5d1pYSnpiMjVoYkdsNllYUnBiMjRpTENJNUlqcDBjblZsZlEiLCIyMyI6Imdvb2dsZS50YWdtYW5hZ2VyLmRlYnVndWkyLnF1ZXVlIiwiMjQiOiJ0YWdhc3Npc3RhbnQuZ29vZ2xlLmNvbSIsIjI3IjowLjAwNSwiMyI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjMwIjoiTk8iLCIzMSI6Ik5PLTAzIiwiMzIiOmZhbHNlLCIzMyI6InJlZ2lvbjEiLCIzNCI6IkctQjRSUVMzVFpHOCIsIjM1IjoiRyIsIjM2IjoiaHR0cHM6Ly9hZHNlcnZpY2UuZ29vZ2xlLmNvbS9wYWdlYWQvcmVnY2xrIiwiMzciOiJfX1RBR0dZX0lOU1RBTExFRCIsIjM4IjoiY2N0Lmdvb2dsZSIsIjM5IjoiZ29vZ1RhZ2d5UmVmZXJyZXIiLCI0MCI6Imh0dHBzOi8vY2N0Lmdvb2dsZS90YWdneS9hZ2VudC5qcyIsIjQxIjoiZ29vZ2xlLnRhZ21hbmFnZXIudGEucHJvZHF1ZXVlIiwiNDIiOjAuMDEsIjQzIjoie1wia2V5c1wiOlt7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQktseVRYMmp5b2JwUUNtZlV5QmJoQnlRSGs5WjJIZE41bEh4cEJBdElLR01jbXp3MGdFK2VibFlDbW0xR2E3YlllVGR5ZG9KbWU2SXBhU29DVTBJVVVvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImRlZTRiMzUxLWIwZjUtNGMyNy1hOGM4LWVkNjYwNDc3YTQ0Y1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkR0WUJSblBCUzFnNm1lWE8xclE1YTUyQjVGYm5oN0RDNWpxdjAyaXhKc3NuMGsxSjlyY0hDYVZjL3p6UnNuc0hCelNvRktzNko4cEg3Q2NuUVAzRWp3PVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImFkMTkzYjJhLTRhOTAtNGMxYS1iNzllLWRlMzdhYzM5MWJkMlwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQk1aMFVNdWRBZTRQb2FmU1RwVXhQdElrZkJlQ01iRkJYdnR5Ull2SExDU1EvRVV2RUpzbXNWNHQ2TkIvQkVWcHFMM0h2OGdOU1FoN0srU1Vvb2YyNWFvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQ4YzRlZmUxLWZkZDAtNDM2YS1hYzhmLTkyM2YxMTkxODc4N1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkZmbHZVbCt4cEhhRlZDSVlPMUtQTHhrditBamRsNGQ4cnZyWGhJNnpmcG5iQkRxSTUxRERrdEhIYjNaV0lTNTdvRGgwS2lyOUF1Q09vbjJNT3hOVjlZPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQzMmJjMjcwLTk5ZWEtNDIyMC1iNTYyLWUyYzVhZTc3ZDRkOVwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkFROFRreTRETFdPSmJIT0hiVllEYlFaRWZFZWxiNEZUQjhFWU1RZVJRaUwxbTFMdEFkMHIzemV5TGpnWjMvVzI0UjhWZmIyMnpZMml4NlcvVGZDampBPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjA1MGE2ZTExLTM4YWItNGY4MC04OWNiLTdiMzE5Yjk3MDRjMFwifV19IiwiNDQiOiIxMTg4OTc5MjB+MTE4ODk3OTMwIiwiNDUiOnRydWUsIjQ2Ijp7IjEiOiIxMDAwIiwiMTAiOiI2NnUwIiwiMTEiOiI2NmcwIiwiMTQiOiIxMDAwIiwiMTYiOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjE3IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIyIjoiOSIsIjIwIjoiNTAwMCIsIjIxIjoiNTAwMCIsIjIyIjoiNC40LjAiLCIyMyI6IjAuMC4wIiwiMjUiOiIxIiwiMjYiOiI0MDAwIiwiMjciOiIxMDAiLCIzIjoiNSIsIjQiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YXxhZF9wZXJzb25hbGl6YXRpb24iLCI0NCI6IjE1MDAwIiwiNDgiOiIzMDAwMCIsIjUiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YSIsIjYiOiIxIiwiNjEiOiIxMDAwIiwiNjIiOiJBNk9OSFJZNy9idkJybytJTVpkL2E2TE5qbjdTU3Y5OTlTa04vaEZBRTlMNnZNcjM0ZE5nZmRTVmRZbXY0VStOSFpnMXN4ZDM4UnRjaVJwUlV0SVJQZ1FBQUFDQ2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVjBZV2R0WVc1aFoyVnlMbU52YlRvME5ETWlMQ0ptWldGMGRYSmxJam9pVTJoaGNtVmtWMjl5YTJWeVJYaDBaVzVrWldSTWFXWmxkR2x0WlNJc0ltVjRjR2x5ZVNJNk1UYzNOamN5T1RZd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiwiNjMiOiIxMDAwIiwiNjYiOiIxMDAiLCI3IjoiMTAifSwiNDgiOnRydWUsIjUiOiJHLUI0UlFTM1RaRzgiLCI1MSI6dHJ1ZSwiNTUiOlsiRy1CNFJRUzNUWkc4Il0sIjU2IjpbeyIxIjo0MDMsIjMiOjAuNSwiNCI6MTE1OTM4NDY1LCI1IjoxMTU5Mzg0NjYsIjYiOjAsIjciOjJ9LHsiMSI6NDA0LCIzIjowLjUsIjQiOjExNTkzODQ2OCwiNSI6MTE1OTM4NDY5LCI2IjowLCI3IjoxfSx7IjEiOjYwMiwiMyI6MC4wMSwiNCI6MTIwMTI0NDU1LCI1IjoxMjAxMjQ0NTMsIjYiOjEyMDEyNDQ1NCwiNyI6M30seyIxIjo1NjksIjIiOnRydWV9LHsiMSI6NDc1LCIyIjp0cnVlfSx7IjEiOjUwMiwiMiI6dHJ1ZX0seyIxIjo1NzcsIjIiOnRydWV9LHsiMSI6NTY4LCIzIjowLjAxLCI0IjoxMTk3OTE3NDksIjUiOjExOTc5MTc0OCwiNiI6MCwiNyI6MX0seyIxIjo0OTAsIjIiOnRydWV9LHsiMSI6NDkxLCIzIjowLjAxLCI0IjoxMTgwMTIwMDcsIjUiOjExODAxMjAwOCwiNiI6MTE4MDEyMDA5LCI3IjoxfSx7IjEiOjQ4MCwiMiI6dHJ1ZX0seyIxIjo1OTQsIjMiOjAuMDEsIjQiOjExOTc5Mzk3NCwiNSI6MTE5NzkzOTcyLCI2IjoxMTk3OTM5NzMsIjciOjF9LHsiMSI6NTk5LCIyIjp0cnVlfSx7IjEiOjU4MCwiMyI6MC4xLCI0IjoxMTk1MjcwMjAsIjUiOjExOTUyNzAxOSwiNiI6MCwiNyI6MX0seyIxIjo1MjMsIjIiOnRydWV9LHsiMSI6NTgxLCIzIjowLjAxLCI0IjoxMTk5NDg4NTQsIjUiOjExOTk0ODg1MiwiNiI6MTE5OTQ4ODUzLCI3IjozfSx7IjEiOjU1NSwiMyI6MC4wMSwiNCI6MTE5MjU5NjA2LCI1IjoxMTkyNTk2MDUsIjYiOjAsIjciOjJ9LHsiMSI6NTA0LCIyIjp0cnVlfSx7IjEiOjQ2MiwiMyI6MC4wNSwiNCI6MTE4ODA2NTI0LCI1IjoxMTg4MDY1MjUsIjYiOjExODgwNjUyNiwiNyI6MX0seyIxIjo0MTMsIjIiOnRydWV9LHsiMSI6NTkzLCIyIjp0cnVlfSx7IjEiOjUwNiwiMiI6dHJ1ZX0seyIxIjo1MDAsIjIiOnRydWV9LHsiMSI6NTYxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAzLCI1IjoxMTk0MDQ3MDIsIjYiOjAsIjciOjF9LHsiMSI6NDgxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAxLCI1IjoxMTk0MDQ3MDAsIjYiOjAsIjciOjF9LHsiMSI6NDUwLCIzIjowLjAxLCI0IjoxMTcyMjc3MTQsIjUiOjExNzIyNzcxNSwiNiI6MTE3MjI3NzE2LCI3IjozfSx7IjEiOjU4MywiMyI6MC41LCI0IjoxMTk4OTY4MDMsIjUiOjExOTg5NjgwMiwiNiI6MCwiNyI6MX0seyIxIjo0NTgsIjIiOnRydWV9LHsiMSI6NTgyLCIzIjowLjAxLCI0IjoxMTkzODE2NjQsIjUiOjExOTM4MTY2MiwiNiI6MTE5MzgxNjYzLCI3IjoxfSx7IjEiOjU3MCwiMiI6dHJ1ZX0seyIxIjo0OTgsIjMiOjAuMiwiNCI6MTE1NjE2OTg1LCI1IjoxMTU2MTY5ODYsIjYiOjAsIjciOjF9LHsiMSI6NTk1LCIyIjp0cnVlfSx7IjEiOjU4OSwiMyI6MC4wMSwiNCI6MTIwMDg0MjE1LCI1IjoxMjAwODQyMTQsIjYiOjAsIjciOjF9LHsiMSI6NDk1LCIzIjowLjA1LCI0IjoxMTgxMzE4MTAsIjUiOjExODEzMTgwOCwiNiI6MTE4MTMxODA5LCI3IjozfSx7IjEiOjU4NywiMyI6MC4xLCI0IjoxMTk3MzIxNzEsIjUiOjExOTczMjE3MCwiNiI6MCwiNyI6M30seyIxIjo1ODQsIjIiOnRydWV9LHsiMSI6NTY0LCIzIjowLjAwMDEsIjQiOjExOTIwNTMxNywiNSI6MTE5MjA1MzE1LCI2IjoxMTkyMDUzMTYsIjciOjF9LHsiMSI6NTU3LCIyIjp0cnVlfSx7IjEiOjQyNywiMyI6MC4xLCI0IjoxMTk3MjQzMjIsIjUiOjExOTcyNDMyMCwiNiI6MTE5NzI0MzIxLCI3IjoyfSx7IjEiOjU3NiwiMyI6MC4wMSwiNCI6MTE5MzE3ODEwLCI1IjoxMTkzMTc4MTEsIjYiOjExOTMxODE3NywiNyI6M30seyIxIjo1NzMsIjIiOnRydWV9LHsiMSI6NDk5LCIyIjp0cnVlfSx7IjEiOjUxNiwiMyI6MC4xLCI0IjoxMTgzOTUzMzUsIjUiOjExODM5NTMzMywiNiI6MTE4Mzk1MzM0LCI3IjoxfSx7IjEiOjUyNCwiMiI6dHJ1ZX1dLCI1OSI6WyJHLUI0UlFTM1RaRzgiXSwiNiI6Ijg4MDYyNjIxIiwiNjIiOnRydWUsIjYzIjowLjAwNX0KLCJwZXJtaXNzaW9ucyI6ewoiX19jIjp7fQosCiJfX2NjZF9hdXRvX3JlZGFjdCI6e30KLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIjp7fQosCiJfX2NjZF9lbV9kb3dubG9hZCI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5saW5rQ2xpY2siXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIjp7ImFsbG93V2FpdEZvclRhZ3MiOiIifX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6ImFueSIsInF1ZXJpZXNBbGxvd2VkIjoiYW55In0sImxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmxpbmtDbGljayJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9fQosCiJfX2NjZF9lbV9zY3JvbGwiOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uc2Nyb2xsRGVwdGgiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X3Njcm9sbF9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55IiwicXVlcmllc0FsbG93ZWQiOiJhbnkifSwicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fY2NkX2VtX3ZpZGVvIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLnZpZGVvIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyI6eyJhbGxvd0ZpeE1pc3NpbmdKYXZhU2NyaXB0QXBpIjpmYWxzZX19CiwKIl9fY2NkX2dhX2Fkc19saW5rIjp7ImdldF91c2VyX2FnZW50Ijp7fSwicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6ImFueSJ9LCJyZWFkX3RpdGxlIjp7fSwicmVhZF9zY3JlZW5fZGltZW5zaW9ucyI6e30sImFjY2Vzc19jb25zZW50Ijp7ImNvbnNlbnRUeXBlcyI6W3siY29uc2VudFR5cGUiOiJhZF9wZXJzb25hbGl6YXRpb24iLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9LHsiY29uc2VudFR5cGUiOiJhZF9zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYWRfdXNlcl9kYXRhIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19LCJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55In0sImdldF9yZWZlcnJlciI6eyJ1cmxQYXJ0cyI6ImFueSJ9LCJhY2Nlc3NfZ2xvYmFscyI6eyJrZXlzIjpbeyJrZXkiOiJfX2dzYUV4cC5pZCIsInJlYWQiOmZhbHNlLCJ3cml0ZSI6ZmFsc2UsImV4ZWN1dGUiOnRydWV9XX19CiwKIl9fY2NkX2dhX2ZpcnN0Ijp7InJlYWRfZG9tX2VsZW1lbnRzIjp7ImFsbG93ZWRDc3NTZWxlY3RvcnMiOiJhbnkifSwiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6InNwZWNpZmljIiwicHJvdG9jb2wiOnRydWUsImhvc3QiOnRydWV9fQosCiJfX2NjZF9nYV9sYXN0Ijp7fQosCiJfX2NjZF9nYV9yZWdzY29wZSI6eyJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19lIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50Il19fQosCiJfX2djdCI6eyJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e319CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSI6eyJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e319CiwKIl9fb2d0X2dhX3NlbmQiOnsiYWNjZXNzX2dsb2JhbHMiOnsia2V5cyI6W3sia2V5IjoiZ2EucSIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJleGVjdXRlIjp0cnVlfSx7ImtleSI6Ikdvb2dsZUFuYWx5dGljc09iamVjdCIsInJlYWQiOnRydWUsIndyaXRlIjpmYWxzZSwiZXhlY3V0ZSI6ZmFsc2V9XX0sInJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX29ndF9nb29nbGVfc2lnbmFscyI6eyJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19vZ3Rfc2Vzc2lvbl90aW1lb3V0Ijp7fQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7fQoKCn0KCgoKLCJzZWN1cml0eV9ncm91cHMiOnsKImdvb2dsZSI6WwoiX19jIgosCiJfX2NjZF9hdXRvX3JlZGFjdCIKLAoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIgosCiJfX2NjZF9lbV9kb3dubG9hZCIKLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siCiwKIl9fY2NkX2VtX3Njcm9sbCIKLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giCiwKIl9fY2NkX2VtX3ZpZGVvIgosCiJfX2NjZF9nYV9hZHNfbGluayIKLAoiX19jY2RfZ2FfZmlyc3QiCiwKIl9fY2NkX2dhX2xhc3QiCiwKIl9fY2NkX2dhX3JlZ3Njb3BlIgosCiJfX2UiCiwKIl9fZ2N0IgosCiJfX29ndF8xcF9kYXRhX3YyIgosCiJfX29ndF9ldmVudF9jcmVhdGUiCiwKIl9fb2d0X2dhX3NlbmQiCiwKIl9fb2d0X2dvb2dsZV9zaWduYWxzIgosCiJfX29ndF9zZXNzaW9uX3RpbWVvdXQiCiwKIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiCgpdCgoKfQoKCgoKCn07CgoKCgp2YXIgayxhYT10eXBlb2YgT2JqZWN0LmNyZWF0ZT09ImZ1bmN0aW9uIj9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtiLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sYmE9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX0sY2E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXSxjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCYmZC5NYXRoPT1NYXRoKXJldHVybiBkfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7Cn0saGE9Y2EodGhpcyksaWE9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09PSJzeW1ib2wiLGthPXt9LGxhPXt9LG5hPWZ1bmN0aW9uKGEsYixjKXtpZighY3x8YSE9bnVsbCl7dmFyIGQ9bGFbYl07aWYoZD09bnVsbClyZXR1cm4gYVtiXTt2YXIgZT1hW2RdO3JldHVybiBlIT09dm9pZCAwP2U6YVtiXX19LG9hPWZ1bmN0aW9uKGEsYixjKXtpZihiKWE6e3ZhciBkPWEuc3BsaXQoIi4iKSxlPWQubGVuZ3RoPT09MSxmPWRbMF0sZzshZSYmZiBpbiBrYT9nPWthOmc9aGE7Zm9yKHZhciBoPTA7aDxkLmxlbmd0aC0xO2grKyl7dmFyIGw9ZFtoXTtpZighKGwgaW4gZykpYnJlYWsgYTtnPWdbbF19dmFyIG49ZFtkLmxlbmd0aC0xXSxwPWlhJiZjPT09ImVzNiI/Z1tuXTpudWxsLHE9YihwKTtpZihxIT1udWxsKWlmKGUpYmEoa2Esbix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KTtlbHNlIGlmKHEhPT1wKXtpZihsYVtuXT09PXZvaWQgMCl7dmFyIHI9Ck1hdGgucmFuZG9tKCkqMUU5Pj4+MDtsYVtuXT1pYT9oYS5TeW1ib2wobik6IiRqc2NwJCIrcisiJCIrbn1iYShnLGxhW25dLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfX19LHBhO2lmKGlhJiZ0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKXBhPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciByYTthOnt2YXIgdGE9e2E6ITB9LHVhPXt9O3RyeXt1YS5fX3Byb3RvX189dGE7cmE9dWEuYTticmVhayBhfWNhdGNoKGEpe31yYT0hMX1wYT1yYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGx9CnZhciB2YT1wYSx3YT1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWFhKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKHZhKXZhKGEsYik7ZWxzZSBmb3IodmFyIGMgaW4gYilpZihjIT0icHJvdG90eXBlIilpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsZCl9ZWxzZSBhW2NdPWJbY107YS5GdD1iLnByb3RvdHlwZX0seGE9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19LG09ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OnhhKGEpfTsKdGhyb3cgRXJyb3IoU3RyaW5nKGEpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO30seWE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7cmV0dXJuIGN9LHc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBBcnJheT9hOnlhKG0oYSkpfSxBYT1mdW5jdGlvbihhKXtyZXR1cm4gemEoYSxhKX0semE9ZnVuY3Rpb24oYSxiKXthLnJhdz1iO09iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGEpLE9iamVjdC5mcmVlemUoYikpO3JldHVybiBhfSxCYT1pYSYmdHlwZW9mIG5hKE9iamVjdCwiYXNzaWduIik9PSJmdW5jdGlvbiI/bmEoT2JqZWN0LCJhc3NpZ24iKTpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gbnVsbGlzaCBhcmciKTthPU9iamVjdChhKTtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107CmlmKGQpZm9yKHZhciBlIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTtvYSgiT2JqZWN0LmFzc2lnbiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fEJhfSwiZXM2Iik7dmFyIENhPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9LERhPWZ1bmN0aW9uKCl7dGhpcy5mYT0hMTt0aGlzLlI9bnVsbDt0aGlzLmphPXZvaWQgMDt0aGlzLkg9MTt0aGlzLk49dGhpcy5aPTA7dGhpcy5MYT10aGlzLks9bnVsbH0sRWE9ZnVuY3Rpb24oYSl7aWYoYS5mYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7YS5mYT0hMH07RGEucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEpe3RoaXMuamE9YX07CnZhciBHYT1mdW5jdGlvbihhLGIpe2EuSz17YW86Yixpc0V4Y2VwdGlvbjohMH07YS5IPWEuWnx8YS5OfTtEYS5wcm90b3R5cGUuZ2V0TmV4dEFkZHJlc3NKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtEYS5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qYX07RGEucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLks9e3JldHVybjphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGVbInJldHVybiJdPURhLnByb3RvdHlwZS5yZXR1cm47RGEucHJvdG90eXBlLkFqPWZ1bmN0aW9uKGEpe3RoaXMuSz17bmQ6YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuQWo7RGEucHJvdG90eXBlLmFjPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWI7cmV0dXJue3ZhbHVlOmF9fTtEYS5wcm90b3R5cGUueWllbGQ9RGEucHJvdG90eXBlLmFjOwpEYS5wcm90b3R5cGUueHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7Q2EoZCk7aWYoZC5kb25lKXRoaXMuamE9ZC52YWx1ZSx0aGlzLkg9YjtlbHNlIHJldHVybiB0aGlzLlI9Yyx0aGlzLmFjKGQudmFsdWUsYil9O0RhLnByb3RvdHlwZS55aWVsZEFsbD1EYS5wcm90b3R5cGUueHM7RGEucHJvdG90eXBlLm5kPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtEYS5wcm90b3R5cGUuanVtcFRvPURhLnByb3RvdHlwZS5uZDtEYS5wcm90b3R5cGUuRGo9ZnVuY3Rpb24oKXt0aGlzLkg9MH07RGEucHJvdG90eXBlLmp1bXBUb0VuZD1EYS5wcm90b3R5cGUuRGo7RGEucHJvdG90eXBlLk5qPWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7YiE9dm9pZCAwJiYodGhpcy5OPWIpfTtEYS5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5OajtEYS5wcm90b3R5cGUudmc9ZnVuY3Rpb24oYSl7dGhpcy5aPTA7dGhpcy5OPWF8fDB9OwpEYS5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPURhLnByb3RvdHlwZS52ZztEYS5wcm90b3R5cGUuSWo9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLlo9Ynx8MH07RGEucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9RGEucHJvdG90eXBlLklqO0RhLnByb3RvdHlwZS5QaD1mdW5jdGlvbihhKXt0aGlzLlo9YXx8MDt2YXIgYj10aGlzLksuYW87dGhpcy5LPW51bGw7cmV0dXJuIGJ9O0RhLnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9RGEucHJvdG90eXBlLlBoO0RhLnByb3RvdHlwZS5rZD1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLkxhW2NdPXRoaXMuSzp0aGlzLkxhPVt0aGlzLktdO3RoaXMuWj1hfHwwO3RoaXMuTj1ifHwwfTtEYS5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmtkOwpEYS5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkxhLnNwbGljZShifHwwKVswXSxkPXRoaXMuSz10aGlzLkt8fGM7ZD9kLmlzRXhjZXB0aW9uP3RoaXMuSD10aGlzLlp8fHRoaXMuTjpkLm5kIT12b2lkIDAmJnRoaXMuTjxkLm5kPyh0aGlzLkg9ZC5uZCx0aGlzLks9bnVsbCk6dGhpcy5IPXRoaXMuTjp0aGlzLkg9YX07RGEucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5oZTtEYS5wcm90b3R5cGUuZmU9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBIYShhKX07RGEucHJvdG90eXBlLmZvckluPURhLnByb3RvdHlwZS5mZTt2YXIgSGE9ZnVuY3Rpb24oYSl7dGhpcy5LPWE7dGhpcy5IPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuSC5wdXNoKGIpO3RoaXMuSC5yZXZlcnNlKCl9O0hhLnByb3RvdHlwZS5obz1mdW5jdGlvbigpe2Zvcig7dGhpcy5ILmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5ILnBvcCgpO2lmKGEgaW4gdGhpcy5LKXJldHVybiBhfXJldHVybiBudWxsfTsKSGEucHJvdG90eXBlLmdldE5leHQ9SGEucHJvdG90eXBlLmhvOwp2YXIgSWE9ZnVuY3Rpb24oYSl7dGhpcy5IPW5ldyBEYTt0aGlzLks9YX0sTGE9ZnVuY3Rpb24oYSxiKXtFYShhLkgpO3ZhciBjPWEuSC5SO2lmKGMpcmV0dXJuIEphKGEsInJldHVybiJpbiBjP2NbInJldHVybiJdOmZ1bmN0aW9uKGQpe3JldHVybnt2YWx1ZTpkLGRvbmU6ITB9fSxiLGEuSC5yZXR1cm4pO2EuSC5yZXR1cm4oYik7cmV0dXJuIEthKGEpfSxKYT1mdW5jdGlvbihhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuSC5SLGMpO0NhKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuSC5mYT0hMSxlO3ZhciBmPWUudmFsdWV9Y2F0Y2goZyl7cmV0dXJuIGEuSC5SPW51bGwsR2EoYS5ILGcpLEthKGEpfWEuSC5SPW51bGw7ZC5jYWxsKGEuSCxmKTtyZXR1cm4gS2EoYSl9LEthPWZ1bmN0aW9uKGEpe2Zvcig7YS5ILkg7KXRyeXt2YXIgYj1hLksoYS5IKTtpZihiKXJldHVybiBhLkguZmE9ITEse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goZCl7YS5ILmphPXZvaWQgMCxHYShhLkgsCmQpfWEuSC5mYT0hMTtpZihhLkguSyl7dmFyIGM9YS5ILks7YS5ILks9bnVsbDtpZihjLmlzRXhjZXB0aW9uKXRocm93IGMuYW87cmV0dXJue3ZhbHVlOmMucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19LE1hPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUi5uZXh0LGIsYS5ILnlhKTooYS5ILnlhKGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SWyJ0aHJvdyJdLGIsYS5ILnlhKTooR2EoYS5ILGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gTGEoYSxiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxOYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBNYShuZXcgSWEoYikpO3ZhJiZhLnByb3RvdHlwZSYmdmEoYywKYS5wcm90b3R5cGUpO3JldHVybiBjfSxPYT1mdW5jdGlvbigpe2Zvcih2YXIgYT1OdW1iZXIodGhpcyksYj1bXSxjPWE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliW2MtYV09YXJndW1lbnRzW2NdO3JldHVybiBifSxRYT1mdW5jdGlvbihhKXtyZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIFJhPXRoaXN8fHNlbGYsU2E9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuRnQ9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLm52PWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX07dmFyIFRhPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5kYXRhPWJ9O3ZhciBVYT1mdW5jdGlvbigpe3RoaXMubWFwPXt9O3RoaXMuSD17fX07VWEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXBbImR1c3QuIithXX07VWEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYyl8fCh0aGlzLm1hcFtjXT1iKX07VWEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkoImR1c3QuIithKX07VWEucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt2YXIgYj0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGIpfHxkZWxldGUgdGhpcy5tYXBbYl19Owp2YXIgVmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEubWFwKWlmKGEubWFwLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtzd2l0Y2goYil7Y2FzZSAxOmMucHVzaChlKTticmVhaztjYXNlIDI6Yy5wdXNoKGEubWFwW2RdKTticmVhaztjYXNlIDM6Yy5wdXNoKFtlLGEubWFwW2RdXSl9fXJldHVybiBjfTtVYS5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywxKX07VWEucHJvdG90eXBlLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMil9O1VhLnByb3RvdHlwZS5mYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDMpfTt2YXIgV2E9ZnVuY3Rpb24oKXt9O1dhLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe307dmFyIFhhPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fTt0aGlzLnByZWZpeD0iZ3RtLiJ9O2s9WGEucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldPWJ9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV19O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KHRoaXMucHJlZml4K1N0cmluZyhhKSl9O2suZGVsZXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucHJlZml4K1N0cmluZyhhKTtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eShiKT8oZGVsZXRlIHRoaXMudmFsdWVbYl0sITApOiExfTtrLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fX07CmsudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztyZXR1cm4gZnVuY3Rpb24gYygpe3ZhciBkLGUsZjtyZXR1cm4gTmEoYyxmdW5jdGlvbihnKXtzd2l0Y2goZy5IKXtjYXNlIDE6Zy52ZygyKSxlPWcuZmUoYS52YWx1ZSk7Y2FzZSA0OmlmKChkPWUuaG8oKSk9PW51bGwpe2cubmQoMik7YnJlYWt9aWYoIWEudmFsdWUuaGFzT3duUHJvcGVydHkoZCkpe2cubmQoNCk7YnJlYWt9Zj1RYTtyZXR1cm4gZy5hYyhhLnZhbHVlW2RdLDgpO2Nhc2UgODpmKGcuamEpO2cubmQoNCk7YnJlYWs7Y2FzZSAyOmcua2QoKSxnLmhlKDApfX0pfSgpfTtoYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhYYS5wcm90b3R5cGUse3NpemU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5sZW5ndGh9fX0pOwpmdW5jdGlvbiBZYSgpe3RyeXtpZihNYXApcmV0dXJuIG5ldyBNYXB9Y2F0Y2goYSl7fXJldHVybiBuZXcgWGF9O3ZhciBaYT1mdW5jdGlvbigpe3RoaXMudmFsdWVzPVtdfTtaYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWVzLmluZGV4T2YoYSk9PT0tMSYmdGhpcy52YWx1ZXMucHVzaChhKX07WmEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaW5kZXhPZihhKT4tMX07dmFyICRhPWZ1bmN0aW9uKGEsYil7dGhpcy5mYT1hO3RoaXMucGFyZW50PWI7dGhpcy5SPXRoaXMuSz12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLk49ZnVuY3Rpb24oZCxlLGYpe3JldHVybiBkLmFwcGx5KGUsZil9O3RoaXMuSD1ZYSgpO3ZhciBjO2E6e3RyeXtpZihTZXQpe2M9bmV3IFNldDticmVhayBhfX1jYXRjaChkKXt9Yz1uZXcgWmF9dGhpcy5aPWN9OyRhLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMSl9OyRhLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCEwKX07dmFyIGFiPWZ1bmN0aW9uKGEsYixjLGQpe2EuSGJ8fGEuWi5oYXMoYil8fChkJiZhLlouYWRkKGIpLGEuSC5zZXQoYixjKSl9O2s9JGEucHJvdG90eXBlOwprLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy5ILmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLlouaGFzKGEpfHx0aGlzLkguc2V0KGEsYikpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILmhhcyhhKT90aGlzLkguZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5ILmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3ICRhKHRoaXMuZmEsdGhpcyk7dGhpcy5LJiZhLlFiKHRoaXMuSyk7YS5zZCh0aGlzLk4pO2EudWUodGhpcy5SKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZhfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307Cmsuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O3ZhciBiYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYS5tZXNzYWdlKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnZvPWE7dGhpcy5Tbj1jPT09dm9pZCAwPyExOmM7dGhpcy5LPVtdO3RoaXMuSD1ifTt3YShiYixFcnJvcik7dmFyIGNiPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgYmI/YTpuZXcgYmIoYSx2b2lkIDAsITApfTt2YXIgZGI9WWEoKTtmdW5jdGlvbiBlYihhLGIpe2Zvcih2YXIgYyxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lJiYhKGM9ZmIoYSxlLnZhbHVlKSxjIGluc3RhbmNlb2YgVGEpO2U9ZC5uZXh0KCkpO3JldHVybiBjfWZ1bmN0aW9uIGZiKGEsYil7dHJ5e3ZhciBjPWJbMF0sZD1iLnNsaWNlKDEpLGU9U3RyaW5nKGMpLGY9ZGIuaGFzKGUpP2RiLmdldChlKTphLmdldChlKTtpZighZnx8dHlwZW9mIGYuaW52b2tlIT09ImZ1bmN0aW9uIil0aHJvdyBjYihFcnJvcigiQXR0ZW1wdGluZyB0byBleGVjdXRlIG5vbi1mdW5jdGlvbiAiK2JbMF0rIi4iKSk7cmV0dXJuIGYuYXBwbHkoYSxkKX1jYXRjaChoKXt2YXIgZz1hLmZvKCk7ZyYmZyhoLGIuY29udGV4dD97aWQ6YlswXSxsaW5lOmIuY29udGV4dC5saW5lfTpudWxsKTt0aHJvdyBoO319O3ZhciBnYj1mdW5jdGlvbigpe3RoaXMuSz1uZXcgV2E7dGhpcy5IPW5ldyAkYSh0aGlzLkspfTtrPWdiLnByb3RvdHlwZTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTtrLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmsoW2FdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5yaz1mdW5jdGlvbigpe2Zvcih2YXIgYSxiPW0oT2EuYXBwbHkoMCxhcmd1bWVudHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhPWZiKHRoaXMuSCxjLnZhbHVlKTtyZXR1cm4gYX07ay5KcT1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyksYz10aGlzLkgud2IoKTtjLnVlKGEpO2Zvcih2YXIgZCxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZD1mYihjLGYudmFsdWUpO3JldHVybiBkfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9O3ZhciBoYj1mdW5jdGlvbihhLGIpe3RoaXMuUj1hO3RoaXMucGFyZW50PWI7dGhpcy5OPXRoaXMuSD12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLks9ZnVuY3Rpb24oYyxkLGUpe3JldHVybiBjLmFwcGx5KGQsZSl9O3RoaXMudmFsdWVzPW5ldyBVYX07aGIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCExKX07aGIucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITApfTt2YXIgamI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIWEuSGIpaWYoZCl7dmFyIGU9YS52YWx1ZXM7ZS5zZXQoYixjKTtlLkhbImR1c3QuIitiXT0hMH1lbHNlIGEudmFsdWVzLnNldChiLGMpfTtrPWhiLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy52YWx1ZXMuaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMudmFsdWVzLnNldChhLGIpKX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5oYXMoYSk/dGhpcy52YWx1ZXMuZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy52YWx1ZXMuaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgaGIodGhpcy5SLHRoaXMpO3RoaXMuSCYmYS5RYih0aGlzLkgpO2Euc2QodGhpcy5LKTthLnVlKHRoaXMuTik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ay5zZD1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07dmFyIGtiPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYX07az1rYi5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIGxiKCl7Zm9yKHZhciBhPW1iLGI9e30sYz0wO2M8YS5sZW5ndGg7KytjKWJbYVtjXV09YztyZXR1cm4gYn1mdW5jdGlvbiBuYigpe3ZhciBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7YSs9YS50b0xvd2VyQ2FzZSgpKyIwMTIzNDU2Nzg5LV8iO3JldHVybiBhKyIuIn12YXIgbWIsb2I7ZnVuY3Rpb24gcGIoYSl7bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrPTMpe3ZhciBkPWMrMTxhLmxlbmd0aCxlPWMrMjxhLmxlbmd0aCxmPWEuY2hhckNvZGVBdChjKSxnPWQ/YS5jaGFyQ29kZUF0KGMrMSk6MCxoPWU/YS5jaGFyQ29kZUF0KGMrMik6MCxsPWY+PjIsbj0oZiYzKTw8NHxnPj40LHA9KGcmMTUpPDwyfGg+PjYscT1oJjYzO2V8fChxPTY0LGR8fChwPTY0KSk7Yi5wdXNoKG1iW2xdLG1iW25dLG1iW3BdLG1iW3FdKX1yZXR1cm4gYi5qb2luKCIiKX0KZnVuY3Rpb24gcWIoYSl7ZnVuY3Rpb24gYihsKXtmb3IoO2Q8YS5sZW5ndGg7KXt2YXIgbj1hLmNoYXJBdChkKyspLHA9b2Jbbl07aWYocCE9bnVsbClyZXR1cm4gcDtpZighL15bXHNceGEwXSokLy50ZXN0KG4pKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK24pO31yZXR1cm4gbH1tYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGM9IiIsZD0wOzspe3ZhciBlPWIoLTEpLGY9YigwKSxnPWIoNjQpLGg9Yig2NCk7aWYoaD09PTY0JiZlPT09LTEpcmV0dXJuIGM7Yys9U3RyaW5nLmZyb21DaGFyQ29kZShlPDwyfGY+PjQpO2chPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZjw8NCYyNDB8Zz4+MiksaCE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShnPDw2JjE5MnxoKSkpfX07dmFyIHJiPXt9O2Z1bmN0aW9uIHNiKGEsYil7dmFyIGM9cmJbYV07Y3x8KGM9cmJbYV09W10pO2NbYl09ITB9ZnVuY3Rpb24gdGIoKXtkZWxldGUgcmIuR0E0X0VWRU5UfWZ1bmN0aW9uIHViKCl7dmFyIGE9dmIuSC5zbGljZSgpO3JiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMPWF9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspZCU4PT09MCYmZD4wJiYoYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpLGM9MCksYVtkXSYmKGN8PTE8PGQlOCk7Yz4wJiZiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7cmV0dXJuIHBiKGIuam9pbigiIikpLnJlcGxhY2UoL1wuKyQvLCIiKX07ZnVuY3Rpb24geGIoKXt9ZnVuY3Rpb24geWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiB6YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBBYihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmIWlzTmFOKGEpfWZ1bmN0aW9uIEJiKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6W2FdfWZ1bmN0aW9uIENiKGEsYil7aWYoYSYmQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdJiZiKGFbY10pKXJldHVybiBhW2NdfWZ1bmN0aW9uIERiKGEsYil7aWYoIUFiKGEpfHwhQWIoYil8fGE+YilhPTAsYj0yMTQ3NDgzNjQ3O3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGItYSsxKSthKX0KZnVuY3Rpb24gRWIoYSxiKXtmb3IodmFyIGM9bmV3IEZiLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnNldChhW2RdLCEwKTtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKylpZihjLmdldChiW2VdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBHYihhLGIpe2Zvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGMsYVtjXSl9ZnVuY3Rpb24gSGIoYSl7cmV0dXJuISFhJiYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpPT09IltvYmplY3QgQXJndW1lbnRzXSJ8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCJjYWxsZWUiKSl9ZnVuY3Rpb24gSWIoYSl7cmV0dXJuIE1hdGgucm91bmQoTnVtYmVyKGEpKXx8MH1mdW5jdGlvbiBKYihhKXtyZXR1cm4iZmFsc2UiPT09U3RyaW5nKGEpLnRvTG93ZXJDYXNlKCk/ITE6ISFhfQpmdW5jdGlvbiBLYihhKXt2YXIgYj1bXTtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChTdHJpbmcoYVtjXSkpO3JldHVybiBifWZ1bmN0aW9uIExiKGEpe3JldHVybiBhP2EucmVwbGFjZSgvXlxzK3xccyskL2csIiIpOiIifWZ1bmN0aW9uIE1iKCl7cmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkpfWZ1bmN0aW9uIE5iKCl7cmV0dXJuIE1iKCkuZ2V0VGltZSgpfXZhciBGYj1mdW5jdGlvbigpe3RoaXMucHJlZml4PSJndG0uIjt0aGlzLnZhbHVlcz17fX07RmIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdPWJ9O0ZiLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdfTtGYi5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0KGEpIT09dm9pZCAwfTsKZnVuY3Rpb24gT2IoYSxiLGMpe3JldHVybiBhJiZhLmhhc093blByb3BlcnR5KGIpP2FbYl06Y31mdW5jdGlvbiBQYihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj12b2lkIDA7dHJ5e2MoKX1jYXRjaChkKXt9fX19ZnVuY3Rpb24gUWIoYSxiKXtmb3IodmFyIGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoYVtjXT1iW2NdKX1mdW5jdGlvbiBSYihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspYy5wdXNoKGFbZF0pLGMucHVzaC5hcHBseShjLGJbYVtkXV18fFtdKTtyZXR1cm4gY31mdW5jdGlvbiBTYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKDAsYi5sZW5ndGgpPT09Yn1mdW5jdGlvbiBUYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKGEubGVuZ3RoLWIubGVuZ3RoLGEubGVuZ3RoKT09PWJ9CmZ1bmN0aW9uIFViKGEsYixjKXtjPWN8fFtdO2Zvcih2YXIgZD1hLGU9MDtlPGIubGVuZ3RoLTE7ZSsrKXtpZighZC5oYXNPd25Qcm9wZXJ0eShiW2VdKSlyZXR1cm47ZD1kW2JbZV1dO2lmKGMuaW5kZXhPZihkKT49MClyZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gVmIoYSxiKXtmb3IodmFyIGM9e30sZD1jLGU9YS5zcGxpdCgiLiIpLGY9MDtmPGUubGVuZ3RoLTE7ZisrKWQ9ZFtlW2ZdXT17fTtkW2VbZS5sZW5ndGgtMV1dPWI7cmV0dXJuIGN9dmFyIFdiPS9eXHd7MSw5fSQvO2Z1bmN0aW9uIFliKGEsYil7YT1hfHx7fTtiPWJ8fCIsIjt2YXIgYz1bXTtHYihhLGZ1bmN0aW9uKGQsZSl7V2IudGVzdChkKSYmZSYmYy5wdXNoKGQpfSk7cmV0dXJuIGMuam9pbihiKX0KZnVuY3Rpb24gWmIoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YS5jaGFyQ29kZUF0KGMpO2Q8MTI4P2IucHVzaChkKTpkPDIwNDg/Yi5wdXNoKDE5MnxkPj42LDEyOHxkJjYzKTpkPDU1Mjk2fHxkPj01NzM0ND9iLnB1c2goMjI0fGQ+PjEyLDEyOHxkPj42JjYzLDEyOHxkJjYzKTooZD02NTUzNisoKGQmMTAyMyk8PDEwfGEuY2hhckNvZGVBdCgrK2MpJjEwMjMpLGIucHVzaCgyNDB8ZD4+MTgsMTI4fGQ+PjEyJjYzLDEyOHxkPj42JjYzLDEyOHxkJjYzKSl9cmV0dXJuIG5ldyBVaW50OEFycmF5KGIpfWZ1bmN0aW9uICRiKGEpe2lmKCFhKXJldHVybiBhO3ZhciBiPWE7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGQpe312YXIgYz1iLnNwbGl0KCIsIik7cmV0dXJuIGMubGVuZ3RoPT09MiYmY1swXT09PWNbMV0/Y1swXTphfQpmdW5jdGlvbiBhYyhhLGIsYyl7ZnVuY3Rpb24gZChuKXt2YXIgcD1uLnNwbGl0KCI9IilbMF07aWYoYS5pbmRleE9mKHApPDApcmV0dXJuIG47aWYoYyE9PXZvaWQgMClyZXR1cm4gcCsiPSIrY31mdW5jdGlvbiBlKG4pe3JldHVybiBuLnNwbGl0KCImIikubWFwKGQpLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gcCE9PXZvaWQgMH0pLmpvaW4oIiYiKX12YXIgZj1iLmhyZWYuc3BsaXQoL1s/I10vKVswXSxnPWIuc2VhcmNoLGg9Yi5oYXNoO2dbMF09PT0iPyImJihnPWcuc3Vic3RyaW5nKDEpKTtoWzBdPT09IiMiJiYoaD1oLnN1YnN0cmluZygxKSk7Zz1lKGcpO2g9ZShoKTtnIT09IiImJihnPSI/IitnKTtoIT09IiImJihoPSIjIitoKTt2YXIgbD0iIitmK2craDtsW2wubGVuZ3RoLTFdPT09Ii8iJiYobD1sLnN1YnN0cmluZygwLGwubGVuZ3RoLTEpKTtyZXR1cm4gbH0KZnVuY3Rpb24gYmMoYSl7Zm9yKHZhciBiPTA7YjwzOysrYil0cnl7dmFyIGM9ZGVjb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoL1wrL2csIiAiKTtpZihjPT09YSlicmVhazthPWN9Y2F0Y2goZCl7cmV0dXJuIiJ9cmV0dXJuIGF9ZnVuY3Rpb24gY2MoKXt2YXIgYT1BLGI7YTp7dmFyIGM9YS5jcnlwdG98fGEubXNDcnlwdG87aWYoYyYmYy5nZXRSYW5kb21WYWx1ZXMpdHJ5e3ZhciBkPW5ldyBVaW50OEFycmF5KDI1KTtjLmdldFJhbmRvbVZhbHVlcyhkKTtiPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhkKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIik7YnJlYWsgYX1jYXRjaChlKXt9Yj12b2lkIDB9cmV0dXJuIGJ9Oy8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBkYz1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxlYztmdW5jdGlvbiBmYygpe3ZhciBhPW51bGw7aWYoIWRjKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1kYy5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX1mdW5jdGlvbiBoYygpe2VjPT09dm9pZCAwJiYoZWM9ZmMoKSk7cmV0dXJuIGVjfTt2YXIgaWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2ljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O2Z1bmN0aW9uIGpjKGEpe3ZhciBiPWEsYz1oYygpLGQ9Yz9jLmNyZWF0ZVNjcmlwdFVSTChiKTpiO3JldHVybiBuZXcgaWMoZCl9ZnVuY3Rpb24ga2MoYSl7aWYoYSBpbnN0YW5jZW9mIGljKXJldHVybiBhLkg7dGhyb3cgRXJyb3IoIiIpO307dmFyIGxjPUFhKFsiIl0pLG1jPXphKFsiXHgwMCJdLFsiXFwwIl0pLG5jPXphKFsiXG4iXSxbIlxcbiJdKSxvYz16YShbIlx4MDAiXSxbIlxcdTAwMDAiXSk7ZnVuY3Rpb24gcGMoYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5pbmRleE9mKCJgIik9PT0tMX1wYyhmdW5jdGlvbihhKXtyZXR1cm4gYShsYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobWMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG5jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShvYyl9KTt2YXIgcWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3FjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O3ZhciByYz1mdW5jdGlvbihhKXt0aGlzLkpzPWF9O2Z1bmN0aW9uIHNjKGEpe3JldHVybiBuZXcgcmMoZnVuY3Rpb24oYil7cmV0dXJuIGIuc3Vic3RyKDAsYS5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PWErIjoifSl9dmFyIHRjPVtzYygiZGF0YSIpLHNjKCJodHRwIiksc2MoImh0dHBzIiksc2MoIm1haWx0byIpLHNjKCJmdHAiKSxuZXcgcmMoZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXTtmdW5jdGlvbiB1YyhhKXt2YXIgYjtiPWI9PT12b2lkIDA/dGM6YjtpZihhIGluc3RhbmNlb2YgcWMpcmV0dXJuIGE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCBpbnN0YW5jZW9mIHJjJiZkLkpzKGEpKXJldHVybiBuZXcgcWMoYSl9fXZhciB2Yz0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pOwpmdW5jdGlvbiB3YyhhKXt2YXIgYjtpZihhIGluc3RhbmNlb2YgcWMpaWYoYSBpbnN0YW5jZW9mIHFjKWI9YS5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2Vsc2UgYj12Yy50ZXN0KGEpP2E6dm9pZCAwO3JldHVybiBifTtmdW5jdGlvbiB4YyhhLGIpe3ZhciBjPXdjKGIpO2MhPT12b2lkIDAmJihhLmFjdGlvbj1jKX07ZnVuY3Rpb24geWMoYSxiKXt0aHJvdyBFcnJvcihiPT09dm9pZCAwPyJ1bmV4cGVjdGVkIHZhbHVlICIrYSsiISI6Yik7fTt2YXIgemM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3pjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O3ZhciBCYz1mdW5jdGlvbigpe3RoaXMuSD1BY1swXS50b0xvd2VyQ2FzZSgpfTtCYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtmdW5jdGlvbiBDYyhhLGIpe3ZhciBjPVtuZXcgQmNdO2lmKGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiIik7dmFyIGQ9Yy5tYXAoZnVuY3Rpb24oZil7dmFyIGc7aWYoZiBpbnN0YW5jZW9mIEJjKWc9Zi5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO3JldHVybiBnfSksZT1iLnRvTG93ZXJDYXNlKCk7aWYoZC5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZS5pbmRleE9mKGYpIT09MH0pKXRocm93IEVycm9yKCdBdHRyaWJ1dGUgIicrYisnIiBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlIGFsbG93ZWQgcHJlZml4ZXMuJyk7YS5zZXRBdHRyaWJ1dGUoYiwidHJ1ZSIpfTt2YXIgRGM9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTsiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpLmNvbmNhdChbIkJVVFRPTiIsCiJJTlBVVCJdKTtmdW5jdGlvbiBFYyhhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07dmFyIEE9d2luZG93LEZjPVtdLEdjPXdpbmRvdy5oaXN0b3J5LEI9ZG9jdW1lbnQsSGM9bmF2aWdhdG9yO2Z1bmN0aW9uIEljKCl7dmFyIGE7dHJ5e2E9SGMuc2VydmljZVdvcmtlcn1jYXRjaChiKXtyZXR1cm59cmV0dXJuIGF9dmFyIEpjPUIuY3VycmVudFNjcmlwdCxLYz1KYyYmSmMuc3JjO2Z1bmN0aW9uIE1jKGEsYil7dmFyIGM9QSxkPWNbYV07Y1thXT1kPT09dm9pZCAwP2I6ZDtyZXR1cm4gY1thXX1mdW5jdGlvbiBOYyhhKXtyZXR1cm4oSGMudXNlckFnZW50fHwiIikuaW5kZXhPZihhKSE9PS0xfWZ1bmN0aW9uIE9jKCl7cmV0dXJuIE5jKCJGaXJlZm94Iil8fE5jKCJGeGlPUyIpfWZ1bmN0aW9uIFBjKCl7cmV0dXJuKE5jKCJHU0EiKXx8TmMoIkdvb2dsZUFwcCIpKSYmKE5jKCJpUGhvbmUiKXx8TmMoImlQYWQiKSl9ZnVuY3Rpb24gUWMoKXtyZXR1cm4gTmMoIkVkZy8iKXx8TmMoIkVkZ0EvIil8fE5jKCJFZGdpT1MvIil9CnZhciBSYz17YXN5bmM6MSxub25jZToxLG9uZXJyb3I6MSxvbmxvYWQ6MSxzcmM6MSx0eXBlOjF9LFNjPXtoZWlnaHQ6MSxvbmxvYWQ6MSxzcmM6MSxzdHlsZToxLHdpZHRoOjF9O2Z1bmN0aW9uIFRjKGEsYixjKXtiJiZHYihiLGZ1bmN0aW9uKGQsZSl7ZD1kLnRvTG93ZXJDYXNlKCk7Yy5oYXNPd25Qcm9wZXJ0eShkKXx8YS5zZXRBdHRyaWJ1dGUoZCxlKX0pfQpmdW5jdGlvbiBVYyhhLGIsYyxkLGUpe3ZhciBmPUIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VGMoZixkLFJjKTtmLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Zi5hc3luYz1kJiZkLmFzeW5jPT09ITE/ITE6ITA7dmFyIGc7Zz1qYyhFYyhhKSk7Zi5zcmM9a2MoZyk7dmFyIGgsbD1mLm93bmVyRG9jdW1lbnQ7bD1sPT09dm9pZCAwP2RvY3VtZW50Omw7dmFyIG4scCxxPShwPShuPWwpLnF1ZXJ5U2VsZWN0b3IpPT1udWxsP3ZvaWQgMDpwLmNhbGwobiwic2NyaXB0W25vbmNlXSIpOyhoPXE9PW51bGw/IiI6cS5ub25jZXx8cS5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIiKSYmZi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixoKTtiJiYoZi5vbmxvYWQ9Yik7YyYmKGYub25lcnJvcj1jKTtlP2UuYXBwZW5kQ2hpbGQoZik6VmMuQnMoZik7cmV0dXJuIGZ9CmZ1bmN0aW9uIFdjKCl7aWYoS2Mpe3ZhciBhPUtjLnRvTG93ZXJDYXNlKCk7aWYoYS5pbmRleE9mKCJodHRwczovLyIpPT09MClyZXR1cm4gMjtpZihhLmluZGV4T2YoImh0dHA6Ly8iKT09PTApcmV0dXJuIDN9cmV0dXJuIDF9ZnVuY3Rpb24gWGMoYSxiLGMsZCxlLGYpe2Y9Zj09PXZvaWQgMD8hMDpmO3ZhciBnPWUsaD0hMTtnfHwoZz1CLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGg9ITApO1RjKGcsYyxTYyk7ZCYmR2IoZCxmdW5jdGlvbihuLHApe2cuZGF0YXNldFtuXT1wfSk7ZiYmKGcuaGVpZ2h0PSIwIixnLndpZHRoPSIwIixnLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGcuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7YSE9PXZvaWQgMCYmKGcuc3JjPWEpO2lmKGgpe3ZhciBsPUIuYm9keSYmQi5ib2R5Lmxhc3RDaGlsZHx8Qi5ib2R5fHxCLmhlYWQ7bC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLGwpfWImJihnLm9ubG9hZD1iKTtyZXR1cm4gZ30KZnVuY3Rpb24gWmMoKXtyZXR1cm4gVmMuRXIuYXBwbHkoVmMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX1mdW5jdGlvbiAkYyhhLGIsYyxkKXthLmFkZEV2ZW50TGlzdGVuZXImJmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsISFkKX1mdW5jdGlvbiBhZChhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX1mdW5jdGlvbiBiZChhKXtBLnNldFRpbWVvdXQoYSwwKX1mdW5jdGlvbiBjZChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkLGU9KGQ9QSkuc2V0SW50ZXJ2YWwuYXBwbHkoZCxbYSxiXS5jb25jYXQodyhjKSkpO0ZjLnB1c2goZSk7cmV0dXJuIGV9CmZ1bmN0aW9uIGRkKGEpe3ZhciBiPUE7eWIoYi5xdWV1ZU1pY3JvdGFzayk/Yi5xdWV1ZU1pY3JvdGFzayhhKTp5YihiLlByb21pc2UpJiZiLlByb21pc2UucmVzb2x2ZT9iLlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXthKCl9KS5jYXRjaChmdW5jdGlvbigpe30pOmJkKGEpfWZ1bmN0aW9uIGVkKGEsYil7cmV0dXJuIGEmJmImJmEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzW2JdP2EuYXR0cmlidXRlc1tiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIGZkKGEpe3ZhciBiPWEuaW5uZXJUZXh0fHxhLnRleHRDb250ZW50fHwiIjtiJiZiIT09IiAiJiYoYj1iLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIiksYj1iLnJlcGxhY2UoL1tcc1x4YTBdKyQvZywiIikpO2ImJihiPWIucmVwbGFjZSgvKFx4YTArfFxzezIsfXxcbnxcclx0KS9nLCIgIikpO3JldHVybiBifQpmdW5jdGlvbiBnZChhKXt2YXIgYj1CLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGM9YixkLGU9RWMoIkE8ZGl2PiIrYSsiPC9kaXY+IiksZj1oYygpLGc9Zj9mLmNyZWF0ZUhUTUwoZSk6ZTtkPW5ldyB6YyhnKTtpZihjLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGMudGFnTmFtZSkpdGhyb3cgRXJyb3IoIiIpO3ZhciBoO2lmKGQgaW5zdGFuY2VvZiB6YyloPWQuSDtlbHNlIHRocm93IEVycm9yKCIiKTtjLmlubmVySFRNTD1oO2I9Yi5sYXN0Q2hpbGQ7Zm9yKHZhciBsPVtdO2ImJmIuZmlyc3RDaGlsZDspbC5wdXNoKGIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGhkKGEsYixjKXtjPWN8fDEwMDtmb3IodmFyIGQ9e30sZT0wO2U8Yi5sZW5ndGg7ZSsrKWRbYltlXV09ITA7Zm9yKHZhciBmPWEsZz0wO2YmJmc8PWM7ZysrKXtpZihkW1N0cmluZyhmLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCldKXJldHVybiBmO2Y9Zi5wYXJlbnRFbGVtZW50fXJldHVybiBudWxsfWZ1bmN0aW9uIGlkKGEsYixjKXt2YXIgZDt0cnl7ZD1IYy5zZW5kQmVhY29uJiZIYy5zZW5kQmVhY29uKGEpfWNhdGNoKGUpe3NiKCJUQUdHSU5HIiwxNSl9ZD9iPT1udWxsfHxiKCk6WmMoYSxiLGMpfWZ1bmN0aW9uIGpkKGEsYil7dHJ5e2lmKEhjLnNlbmRCZWFjb24hPT12b2lkIDApcmV0dXJuIEhjLnNlbmRCZWFjb24oYSxiKX1jYXRjaChjKXtzYigiVEFHR0lORyIsMTUpfXJldHVybiExfWZ1bmN0aW9uIGtkKCl7cmV0dXJuIEhjLnNlbmRCZWFjb24hPT12b2lkIDB9CnZhciBsZD17Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsa2VlcGFsaXZlOiEwLG1ldGhvZDoiUE9TVCIsbW9kZToibm8tY29ycyIscmVkaXJlY3Q6ImZvbGxvdyJ9OwpmdW5jdGlvbiBtZChhLGIsYyxkLGUpe2lmKG5kKCkpe3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpO2ImJihmLmJvZHk9Yik7YyYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmcmJihmLmF0dHJpYnV0aW9uUmVwb3J0aW5nPWMuYXR0cmlidXRpb25SZXBvcnRpbmcpLGMuYnJvd3NpbmdUb3BpY3MhPT12b2lkIDAmJihmLmJyb3dzaW5nVG9waWNzPWMuYnJvd3NpbmdUb3BpY3MpLGMuY3JlZGVudGlhbHMmJihmLmNyZWRlbnRpYWxzPWMuY3JlZGVudGlhbHMpLGMua2VlcGFsaXZlIT09dm9pZCAwJiYoZi5rZWVwYWxpdmU9Yy5rZWVwYWxpdmUpLGMubWV0aG9kJiYoZi5tZXRob2Q9Yy5tZXRob2QpLGMubW9kZSYmKGYubW9kZT1jLm1vZGUpKTt0cnl7dmFyIGc9QS5mZXRjaChhLGYpO2lmKGcpcmV0dXJuIGcudGhlbihmdW5jdGlvbihsKXtsJiYobC5va3x8bC5zdGF0dXM9PT0wKT9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT0KbnVsbHx8ZSgpfSksITB9Y2F0Y2gobCl7fX1pZigoYz09bnVsbD8wOmMuUWcpfHwoYz09bnVsbD8wOmMuY3JlZGVudGlhbHMpJiZjLmNyZWRlbnRpYWxzIT09ImluY2x1ZGUiKXJldHVybiBlPT1udWxsfHxlKCksITE7aWYoYil7dmFyIGg9amQoYSxiKTtoP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCk7cmV0dXJuIGh9VmMud3QoYSxkLGUpO3JldHVybiEwfWZ1bmN0aW9uIG5kKCl7cmV0dXJuIHliKEEuZmV0Y2gpfWZ1bmN0aW9uIG9kKGEsYil7dmFyIGM9YVtiXTtjJiZ0eXBlb2YgYy5hbmltVmFsPT09InN0cmluZyImJihjPWMuYW5pbVZhbCk7cmV0dXJuIGN9ZnVuY3Rpb24gcGQoKXt2YXIgYT1BLnBlcmZvcm1hbmNlO2lmKGEmJnliKGEubm93KSlyZXR1cm4gYS5ub3coKX0KZnVuY3Rpb24gcWQoKXt2YXIgYSxiPUEucGVyZm9ybWFuY2U7aWYoYiYmYi5nZXRFbnRyaWVzQnlUeXBlKXRyeXt2YXIgYz1iLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKTtjJiZjLmxlbmd0aD4wJiYoYT1jWzBdLnR5cGUpfWNhdGNoKGQpe3JldHVybiJlIn1pZighYSlyZXR1cm4idSI7c3dpdGNoKGEpe2Nhc2UgIm5hdmlnYXRlIjpyZXR1cm4ibiI7Y2FzZSAiYmFja19mb3J3YXJkIjpyZXR1cm4iaCI7Y2FzZSAicmVsb2FkIjpyZXR1cm4iciI7Y2FzZSAicHJlcmVuZGVyIjpyZXR1cm4icCI7ZGVmYXVsdDpyZXR1cm4ieCJ9fWZ1bmN0aW9uIHJkKCl7cmV0dXJuIEEucGVyZm9ybWFuY2V8fHZvaWQgMH1mdW5jdGlvbiBzZCgpe3ZhciBhPUEud2ViUGl4ZWxzTWFuYWdlcjtyZXR1cm4gYT9hLmNyZWF0ZVNob3BpZnlFeHRlbmQhPT12b2lkIDA6ITF9CnZhciBWYz17RXI6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEltYWdlKDEsMSk7VGMoZSxkLHt9KTtlLm9ubG9hZD1mdW5jdGlvbigpe2Uub25sb2FkPW51bGw7YiYmYigpfTtlLm9uZXJyb3I9ZnVuY3Rpb24oKXtlLm9uZXJyb3I9bnVsbDtjJiZjKCl9O2Uuc3JjPWE7cmV0dXJuIGV9LEJzOmZ1bmN0aW9uKGEpe3ZhciBiPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdfHxCLmJvZHl8fEIuaGVhZDtiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYil9LHd0OmlkfTtmdW5jdGlvbiB0ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHVkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk9PT10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHZkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gd2QoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gU3RyaW5nKGMpLmluZGV4T2YoU3RyaW5nKGQpKT4tMX1mdW5jdGlvbiB4ZChhLGIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGEpKSxkPVN0cmluZyh0aGlzLmV2YWx1YXRlKGIpKTtyZXR1cm4gYy5zdWJzdHJpbmcoMCxkLmxlbmd0aCk9PT1kfQpmdW5jdGlvbiB5ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3N3aXRjaChjKXtjYXNlICJwYWdlTG9jYXRpb24iOnZhciBlPUEubG9jYXRpb24uaHJlZjtkIGluc3RhbmNlb2Yga2ImJmQuZ2V0KCJzdHJpcFByb3RvY29sIikmJihlPWUucmVwbGFjZSgvXmh0dHBzPzpcL1wvLywiIikpO3JldHVybiBlfX07LyoKIGpRdWVyeSAoYykgMjAwNSwgMjAxMiBqUXVlcnkgRm91bmRhdGlvbiwgSW5jLiBqcXVlcnkub3JnL2xpY2Vuc2UuCiovCnZhciB6ZD0vXFtvYmplY3QgKEJvb2xlYW58TnVtYmVyfFN0cmluZ3xGdW5jdGlvbnxBcnJheXxEYXRlfFJlZ0V4cClcXS8sQWQ9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gU3RyaW5nKGEpO3ZhciBiPXpkLmV4ZWMoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdChhKSkpO3JldHVybiBiP2JbMV0udG9Mb3dlckNhc2UoKToib2JqZWN0In0sQmQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdChhKSxiKX0sQ2Q9ZnVuY3Rpb24oYSl7aWYoIWF8fEFkKGEpIT0ib2JqZWN0Inx8YS5ub2RlVHlwZXx8YT09YS53aW5kb3cpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFCZChhLCJjb25zdHJ1Y3RvciIpJiYhQmQoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1mb3IodmFyIGIgaW4gYSk7cmV0dXJuIGI9PT12b2lkIDB8fApCZChhLGIpfSxFZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJ8fChBZChhKT09ImFycmF5Ij9bXTp7fSksZDtmb3IoZCBpbiBhKWlmKEJkKGEsZCkpe3ZhciBlPWFbZF07QWQoZSk9PSJhcnJheSI/KEFkKGNbZF0pIT0iYXJyYXkiJiYoY1tkXT1bXSksY1tkXT1FZChlLGNbZF0pKTpDZChlKT8oQ2QoY1tkXSl8fChjW2RdPXt9KSxjW2RdPUVkKGUsY1tkXSkpOmNbZF09ZX1yZXR1cm4gY307ZnVuY3Rpb24gRmQoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJmE+PTAmJmlzRmluaXRlKGEpJiZhJTE9PT0wfHx0eXBlb2YgYT09PSJzdHJpbmciJiZhWzBdIT09Ii0iJiZhPT09IiIrcGFyc2VJbnQoYSl9O3ZhciBHZD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTt0aGlzLmxhPW5ldyBVYTt0aGlzLnZhbHVlcz1bXTt0aGlzLk5hPSExO2Zvcih2YXIgYiBpbiBhKWEuaGFzT3duUHJvcGVydHkoYikmJihGZChiKT90aGlzLnZhbHVlc1tOdW1iZXIoYildPWFbTnVtYmVyKGIpXTp0aGlzLmxhLnNldChiLGFbYl0pKX07az1HZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbihhKXtpZihhJiZhLmluZGV4T2YodGhpcyk+PTApcmV0dXJuIiI7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMudmFsdWVzLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMudmFsdWVzW2NdO2Q9PT1udWxsfHxkPT09dm9pZCAwP2IucHVzaCgiIik6ZCBpbnN0YW5jZW9mIEdkPyhhPWF8fFtdLGEucHVzaCh0aGlzKSxiLnB1c2goZC50b1N0cmluZyhhKSksYS5wb3AoKSk6Yi5wdXNoKFN0cmluZyhkKSl9cmV0dXJuIGIuam9pbigiLCIpfTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5OYSlpZihhPT09Imxlbmd0aCIpe2lmKCFGZChiKSl0aHJvdyBjYihFcnJvcigiUmFuZ2VFcnJvcjogTGVuZ3RoIHByb3BlcnR5IG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyLiIpKTt0aGlzLnZhbHVlcy5sZW5ndGg9TnVtYmVyKGIpfWVsc2UgRmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXT1iOnRoaXMubGEuc2V0KGEsYil9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Imxlbmd0aCI/dGhpcy5sZW5ndGgoKTpGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMubGEuZ2V0KGEpfTtrLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9O2suRmE9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5GYSgpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChTdHJpbmcoYikpO3JldHVybiBhfTsKay5oYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmhjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKHRoaXMudmFsdWVzW2JdKTtyZXR1cm4gYX07ay5mYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmZjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFtTdHJpbmcoYiksdGhpcy52YWx1ZXNbYl1dKTtyZXR1cm4gYX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7RmQoYSk/ZGVsZXRlIHRoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2sucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnBvcCgpfTtrLnB1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnNoaWZ0KCl9OwprLnNwbGljZT1mdW5jdGlvbihhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKTtyZXR1cm4gYj09PXZvaWQgMCYmYy5sZW5ndGg9PT0wP25ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UoYSkpOm5ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UuYXBwbHkodGhpcy52YWx1ZXMsW2EsYnx8MF0uY29uY2F0KHcoYykpKSl9O2sudW5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy51bnNoaWZ0LmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiBGZChhKSYmdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYSl8fHRoaXMubGEuaGFzKGEpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMDtPYmplY3QuZnJlZXplKHRoaXMudmFsdWVzKX07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTsKZnVuY3Rpb24gSGQoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoKCk7YysrKWEuaGFzKGMpJiYoYltjXT1hLmdldChjKSk7cmV0dXJuIGJ9O3ZhciBJZD1mdW5jdGlvbihhLGIpe3RoaXMuZnVuY3Rpb25OYW1lPWE7dGhpcy5pZT1iO3RoaXMubGE9bmV3IFVhO3RoaXMuTmE9ITF9O2s9SWQucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXRLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBHZCh0aGlzLkZhKCkpfTtrLmludm9rZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pZS5jYWxsLmFwcGx5KHRoaXMuaWUsW25ldyBKZCh0aGlzLGEpXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2suYXBwbHk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pZS5hcHBseShuZXcgSmQodGhpcyxhKSxiKX07ay5OYz1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7dHJ5e3JldHVybiB0aGlzLmludm9rZS5hcHBseSh0aGlzLFthXS5jb25jYXQodyhiKSkpfWNhdGNoKGMpe319OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07dmFyIEtkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKEtkLElkKTt2YXIgTGQ9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoTGQsSWQpO3ZhciBKZD1mdW5jdGlvbihhLGIpe3RoaXMuaWU9YTt0aGlzLlQ9Yn07CkpkLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlQ7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/ZmIoYixhKTphfTtKZC5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmllLmdldE5hbWUoKX07SmQucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVC5qZSgpfTt2YXIgTWQ9ZnVuY3Rpb24oKXt0aGlzLm1hcD1uZXcgTWFwfTtNZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5tYXAuc2V0KGEsYil9O01kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmdldChhKX07dmFyIE5kPWZ1bmN0aW9uKCl7dGhpcy5rZXlzPVtdO3RoaXMudmFsdWVzPVtdfTtOZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5rZXlzLnB1c2goYSk7dGhpcy52YWx1ZXMucHVzaChiKX07TmQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmtleXMuaW5kZXhPZihhKTtpZihiPi0xKXJldHVybiB0aGlzLnZhbHVlc1tiXX07ZnVuY3Rpb24gT2QoKXt0cnl7cmV0dXJuIE1hcD9uZXcgTWQ6bmV3IE5kfWNhdGNoKGEpe3JldHVybiBuZXcgTmR9fTt2YXIgUGQ9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIFBkKXJldHVybiBhO3ZhciBiO2E6aWYoYT09dm9pZCAwfHxBcnJheS5pc0FycmF5KGEpfHxDZChhKSliPSEwO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAiZnVuY3Rpb24iOmI9ITA7YnJlYWsgYX1iPSExfWlmKGIpdGhyb3cgRXJyb3IoIlR5cGUgb2YgZ2l2ZW4gdmFsdWUgaGFzIGFuIGVxdWl2YWxlbnQgUGl4aWUgdHlwZS4iKTt0aGlzLnZhbHVlPWF9O1BkLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtQZC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfTt2YXIgU2Q9ZnVuY3Rpb24oYSl7dGhpcy5wcm9taXNlPWE7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYTt0aGlzLmxhLnNldCgidGhlbiIsUmQodGhpcykpO3RoaXMubGEuc2V0KCJjYXRjaCIsUmQodGhpcywhMCkpO3RoaXMubGEuc2V0KCJmaW5hbGx5IixSZCh0aGlzLCExLCEwKSl9O2s9U2QucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTsKdmFyIFJkPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGQsZSl7YiYmKGU9ZCxkPXZvaWQgMCk7YyYmKGU9ZCk7ZCBpbnN0YW5jZW9mIEtkfHwoZD12b2lkIDApO2UgaW5zdGFuY2VvZiBLZHx8KGU9dm9pZCAwKTt2YXIgZj10aGlzLlQud2IoKSxnPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7cmV0dXJuIGM/KGwuaW52b2tlKGYpLGEucHJvbWlzZSk6bC5pbnZva2UoZixuKX1jYXRjaChwKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QocCBpbnN0YW5jZW9mIEVycm9yP25ldyBQZChwKTpTdHJpbmcocCkpfX19LGg9YS5wcm9taXNlLnRoZW4oZCYmZyhkKSxlJiZnKGUpKTtyZXR1cm4gbmV3IFNkKGgpfSl9O1NkLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O1NkLnByb3RvdHlwZS5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBUZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsPWcuRmEoKSxuPTA7bjxsLmxlbmd0aDtuKyspaFtsW25dXT1mKGcuZ2V0KGxbbl0pKX0sZj1mdW5jdGlvbihnKXtpZihnPT09bnVsbHx8Zz09PXZvaWQgMClyZXR1cm4gZzt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKGcgaW5zdGFuY2VvZiBHZCl7dmFyIGw9W107ZC5zZXQoZyxsKTtmb3IodmFyIG49Zy5GYSgpLHA9MDtwPG4ubGVuZ3RoO3ArKylsW25bcF1dPWYoZy5nZXQobltwXSkpO3JldHVybiBsfWlmKGcgaW5zdGFuY2VvZiBTZClyZXR1cm4gZy5wcm9taXNlLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIFRkKHUsYiwxKX0sZnVuY3Rpb24odSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFRkKHUsYiwxKSl9KTtpZihnIGluc3RhbmNlb2Yga2Ipe3ZhciBxPXt9O2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfWlmKGcgaW5zdGFuY2VvZiBLZCl7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIHU9CltdLHY9MDt2PGFyZ3VtZW50cy5sZW5ndGg7disrKXVbdl09VWQoYXJndW1lbnRzW3ZdLGIsYyk7dmFyIHg9bmV3IGhiKGI/Yi5qZSgpOm5ldyBXYSk7YiYmeC51ZShiLnhiKCkpO3JldHVybiBmKGcuYXBwbHkoeCx1KSl9O2Quc2V0KGcscik7ZShnLHIpO3JldHVybiByfXZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztjYXNlIDM6dD0hMTticmVhaztkZWZhdWx0On1pZihnIGluc3RhbmNlb2YgUGQmJnQpcmV0dXJuIGcuZ2V0VmFsdWUoKTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJ1bmRlZmluZWQiOnJldHVybiBnO2Nhc2UgIm9iamVjdCI6aWYoZz09PQpudWxsKXJldHVybiBudWxsfX07cmV0dXJuIGYoYSl9CmZ1bmN0aW9uIFVkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGwgaW4gZylnLmhhc093blByb3BlcnR5KGwpJiZoLnNldChsLGYoZ1tsXSkpfSxmPWZ1bmN0aW9uKGcpe3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoQXJyYXkuaXNBcnJheShnKXx8SGIoZykpe3ZhciBsPW5ldyBHZDtkLnNldChnLGwpO2Zvcih2YXIgbiBpbiBnKWcuaGFzT3duUHJvcGVydHkobikmJmwuc2V0KG4sZihnW25dKSk7cmV0dXJuIGx9aWYoQ2QoZykpe3ZhciBwPW5ldyBrYjtkLnNldChnLHApO2UoZyxwKTtyZXR1cm4gcH1pZih0eXBlb2YgZz09PSJmdW5jdGlvbiIpe3ZhciBxPW5ldyBLZCgiIixmdW5jdGlvbigpe2Zvcih2YXIgdT1PYS5hcHBseSgwLGFyZ3VtZW50cyksdj1bXSx4PTA7eDx1Lmxlbmd0aDt4Kyspdlt4XT1UZCh0aGlzLmV2YWx1YXRlKHVbeF0pLGIsYyk7cmV0dXJuIGYodGhpcy5ULlBqKCkoZyxnLHYpKX0pO2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfXZhciByPXR5cGVvZiBnO2lmKGc9PT1udWxsfHxyPT09InN0cmluZyJ8fHI9PT0ibnVtYmVyInx8cj09PSJib29sZWFuIilyZXR1cm4gZzt2YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyE9PXZvaWQgMCYmdClyZXR1cm4gbmV3IFBkKGcpfTtyZXR1cm4gZihhKX07dmFyIFZkPXtzdXBwb3J0ZWRNZXRob2RzOiJjb25jYXQgZXZlcnkgZmlsdGVyIGZvckVhY2ggaGFzT3duUHJvcGVydHkgaW5kZXhPZiBqb2luIGxhc3RJbmRleE9mIG1hcCBwb3AgcHVzaCByZWR1Y2UgcmVkdWNlUmlnaHQgcmV2ZXJzZSBzaGlmdCBzbGljZSBzb21lIHNvcnQgc3BsaWNlIHVuc2hpZnQgdG9TdHJpbmciLnNwbGl0KCIgIiksY29uY2F0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLmxlbmd0aCgpO2MrKyliLnB1c2godGhpcy5nZXQoYykpO2Zvcih2YXIgZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspaWYoYXJndW1lbnRzW2RdaW5zdGFuY2VvZiBHZClmb3IodmFyIGU9YXJndW1lbnRzW2RdLGY9MDtmPGUubGVuZ3RoKCk7ZisrKWIucHVzaChlLmdldChmKSk7ZWxzZSBiLnB1c2goYXJndW1lbnRzW2RdKTtyZXR1cm4gbmV3IEdkKGIpfSxldmVyeTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJgpkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiYhYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiExO3JldHVybiEwfSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSYmZC5wdXNoKHRoaXMuZ2V0KGUpKTtyZXR1cm4gbmV3IEdkKGQpfSxmb3JFYWNoOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKyl0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpfSxoYXNPd25Qcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmhhcyhiKX0saW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWM9PT12b2lkIDA/MDpOdW1iZXIoYyk7ZTwwJiYoZT1NYXRoLm1heChkK2UsMCkpO2Zvcih2YXIgZj0KZTtmPGQ7ZisrKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LGpvaW46ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8dGhpcy5sZW5ndGgoKTtkKyspYy5wdXNoKHRoaXMuZ2V0KGQpKTtyZXR1cm4gYy5qb2luKGIpfSxsYXN0SW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWQtMTtjIT09dm9pZCAwJiYoZT1jPDA/ZCtjOk1hdGgubWluKGMsZSkpO2Zvcih2YXIgZj1lO2Y+PTA7Zi0tKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LG1hcDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmKGRbZV09Yi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpKTtyZXR1cm4gbmV3IEdkKGQpfSxwb3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3AoKX0scHVzaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoLmFwcGx5KHRoaXMsCncoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9LHJlZHVjZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9MDtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO2Zvcih2YXIgZz0wO2c8ZDtnKyspaWYodGhpcy5oYXMoZykpe2U9dGhpcy5nZXQoZyk7Zj1nKzE7YnJlYWt9aWYoZz09PWQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g8ZDtoKyspdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPWQtMTtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7CmZvcih2YXIgZz0xO2c8PWQ7ZysrKWlmKHRoaXMuaGFzKGQtZykpe2U9dGhpcy5nZXQoZC1nKTtmPWQtKGcrMSk7YnJlYWt9aWYoZz5kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g+PTA7aC0tKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJldmVyc2U6ZnVuY3Rpb24oKXtmb3IodmFyIGE9SGQodGhpcyksYj1hLmxlbmd0aC0xLGM9MDtiPj0wO2ItLSxjKyspYS5oYXNPd25Qcm9wZXJ0eShiKT90aGlzLnNldChjLGFbYl0pOnRoaXMucmVtb3ZlKGMpO3JldHVybiB0aGlzfSxzaGlmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoaWZ0KCl9LHNsaWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpO2I9PT12b2lkIDAmJihiPTApO2I9YjwwP01hdGgubWF4KGQrYiwwKTpNYXRoLm1pbihiLGQpO2M9Yz09PQp2b2lkIDA/ZDpjPDA/TWF0aC5tYXgoZCtjLDApOk1hdGgubWluKGMsZCk7Yz1NYXRoLm1heChiLGMpO2Zvcih2YXIgZT1bXSxmPWI7ZjxjO2YrKyllLnB1c2godGhpcy5nZXQoZikpO3JldHVybiBuZXcgR2QoZSl9LHNvbWU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITA7cmV0dXJuITF9LHNvcnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1IZCh0aGlzKTtiPT09dm9pZCAwP2Muc29ydCgpOmMuc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBOdW1iZXIoYi5pbnZva2UoYSxlLGYpKX0pO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWMuaGFzT3duUHJvcGVydHkoZCk/dGhpcy5zZXQoZCxjW2RdKTp0aGlzLnJlbW92ZShkKTtyZXR1cm4gdGhpc30sc3BsaWNlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5zcGxpY2UuYXBwbHkodGhpcywKW2IsY10uY29uY2F0KHcoT2EuYXBwbHkoMyxhcmd1bWVudHMpKSkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCl9LHVuc2hpZnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudW5zaGlmdC5hcHBseSh0aGlzLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9fTt2YXIgV2Q9e2NoYXJBdDoxLGNvbmNhdDoxLGluZGV4T2Y6MSxsYXN0SW5kZXhPZjoxLG1hdGNoOjEscmVwbGFjZToxLHNlYXJjaDoxLHNsaWNlOjEsc3BsaXQ6MSxzdWJzdHJpbmc6MSx0b0xvd2VyQ2FzZToxLHRvTG9jYWxlTG93ZXJDYXNlOjEsdG9TdHJpbmc6MSx0b1VwcGVyQ2FzZToxLHRvTG9jYWxlVXBwZXJDYXNlOjEsdHJpbToxfSxYZD1uZXcgVGEoImJyZWFrIiksWWQ9bmV3IFRhKCJjb250aW51ZSIpO2Z1bmN0aW9uIFpkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkrdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiAkZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBhZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEFwcGx5IGluc3RydWN0aW9uLiIpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHJlYWQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpO3ZhciBnPXR5cGVvZiBkPT09Im51bWJlciI7aWYodHlwZW9mIGQ9PT0iYm9vbGVhbiJ8fGcpe2lmKGU9PT0idG9TdHJpbmciKXtpZihnJiZmLmxlbmd0aCgpKXt2YXIgaD1UZChmLmdldCgwKSk7dHJ5e3JldHVybiBkLnRvU3RyaW5nKGgpfWNhdGNoKHUpe319cmV0dXJuIGQudG9TdHJpbmcoKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2QrIi4iK2UrIiBpcyBub3QgYSBmdW5jdGlvbi4iKSk7fWlmKHR5cGVvZiBkPT09CiJzdHJpbmciKXtpZihXZC5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGw9VGQoZix2b2lkIDAsMSk7cmV0dXJuIFVkKGRbZV0uYXBwbHkoZCxsKSx0aGlzLlQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihkIGluc3RhbmNlb2YgR2Qpe2lmKGQuaGFzKGUpKXt2YXIgbj1kLmdldChTdHJpbmcoZSkpO2lmKG4gaW5zdGFuY2VvZiBLZCl7dmFyIHA9SGQoZik7cmV0dXJuIG4uYXBwbHkodGhpcy5ULHApfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihWZC5zdXBwb3J0ZWRNZXRob2RzLmluZGV4T2YoZSk+PTApe3ZhciBxPUhkKGYpO3JldHVybiBWZFtlXS5jYWxsLmFwcGx5KFZkW2VdLFtkLHRoaXMuVF0uY29uY2F0KHcocSkpKX19aWYoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZCl7aWYoZC5oYXMoZSkpe3ZhciByPWQuZ2V0KGUpOwppZihyIGluc3RhbmNlb2YgS2Qpe3ZhciB0PUhkKGYpO3JldHVybiByLmFwcGx5KHRoaXMuVCx0KX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQgaW5zdGFuY2VvZiBLZD9kLmdldE5hbWUoKTpkLnRvU3RyaW5nKCk7aWYoZT09PSJoYXNPd25Qcm9wZXJ0eSIpcmV0dXJuIGQuaGFzKGYuZ2V0KDApKX1pZihkIGluc3RhbmNlb2YgUGQmJmU9PT0idG9TdHJpbmciKXJldHVybiBkLnRvU3RyaW5nKCk7dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogT2JqZWN0IGhhcyBubyAnIitlKyInIHByb3BlcnR5LiIpKTt9CmZ1bmN0aW9uIGJlKGEsYil7YT10aGlzLmV2YWx1YXRlKGEpO2lmKHR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IG5hbWUgZ2l2ZW4gZm9yIGFzc2lnbm1lbnQuIik7dmFyIGM9dGhpcy5UO2lmKCFjLmhhcyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhc3NpZ24gdG8gdW5kZWZpbmVkIHZhbHVlICIrYik7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtjLnNldChhLGQpO3JldHVybiBkfWZ1bmN0aW9uIGNlKCl7dmFyIGE9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGI9dGhpcy5ULndiKCksYz1lYihiLGEpO2lmKGMgaW5zdGFuY2VvZiBUYSlyZXR1cm4gY31mdW5jdGlvbiBkZSgpe3JldHVybiBYZH1mdW5jdGlvbiBlZShhKXtmb3IodmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuZXZhbHVhdGUoYltjXSk7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfX0KZnVuY3Rpb24gZmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1hcmd1bWVudHNbYl07aWYodHlwZW9mIGM9PT0ic3RyaW5nIil7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5RaChjLGQpfX19ZnVuY3Rpb24gZ2UoKXtyZXR1cm4gWWR9ZnVuY3Rpb24gaGUoYSxiKXtyZXR1cm4gbmV3IFRhKGEsdGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaWUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtkPW5ldyBHZDtmb3IodmFyIGU9dGhpcy5ldmFsdWF0ZShiKSxmPTA7ZjxlLmxlbmd0aDtmKyspZC5wdXNoKGVbZl0pO3ZhciBnPVs1MSxhLGRdLmNvbmNhdCh3KGMpKTt0aGlzLlQuYWRkKGEsdGhpcy5ldmFsdWF0ZShnKSl9ZnVuY3Rpb24gamUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS90aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBrZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpLGU9YyBpbnN0YW5jZW9mIFBkLGY9ZCBpbnN0YW5jZW9mIFBkO3JldHVybiBlfHxmP2UmJmY/Yy5nZXRWYWx1ZSgpPT09ZC5nZXRWYWx1ZSgpOiExOmM9PWR9ZnVuY3Rpb24gbGUoKXtmb3IodmFyIGEsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspYT10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7cmV0dXJuIGF9ZnVuY3Rpb24gbWUoYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxiKCk7ZSsrKXt2YXIgZj1hKGMoZSkpLGc9ZWIoZixkKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9fX0KZnVuY3Rpb24gbmUoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGYpe3JldHVybiBmfSxjKTtpZihiIGluc3RhbmNlb2Yga2J8fGIgaW5zdGFuY2VvZiBTZHx8YiBpbnN0YW5jZW9mIEdkfHxiIGluc3RhbmNlb2YgS2Qpe3ZhciBkPWIuRmEoKSxlPWQubGVuZ3RoO3JldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGZ1bmN0aW9uKGYpe3JldHVybiBkW2ZdfSxjKX19ZnVuY3Rpb24gb2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gcGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiBxZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiByZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiB0ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfQpmdW5jdGlvbiBzZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZCl7cmV0dXJuIGJbZF19LGMpO2lmKGIgaW5zdGFuY2VvZiBHZClyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aCgpfSxmdW5jdGlvbihkKXtyZXR1cm4gYi5nZXQoZCl9LGMpO3Rocm93IGNiKEVycm9yKCJUaGUgdmFsdWUgaXMgbm90IGl0ZXJhYmxlLiIpKTt9CmZ1bmN0aW9uIHZlKGEsYixjLGQpe2Z1bmN0aW9uIGUocSxyKXtmb3IodmFyIHQ9MDt0PGYubGVuZ3RoKCk7dCsrKXt2YXIgdT1mLmdldCh0KTtyLmFkZCh1LHEuZ2V0KHUpKX19dmFyIGY9dGhpcy5ldmFsdWF0ZShhKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIlR5cGVFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gRm9yTGV0IGluc3RydWN0aW9uLiIpO3ZhciBnPXRoaXMuVCxoPXRoaXMuZXZhbHVhdGUoZCksbD1nLndiKCk7Zm9yKGUoZyxsKTtmYihsLGIpOyl7dmFyIG49ZWIobCxoKTtpZihuIGluc3RhbmNlb2YgVGEpe2lmKG4udHlwZT09PSJicmVhayIpYnJlYWs7aWYobi50eXBlPT09InJldHVybiIpcmV0dXJuIG59dmFyIHA9Zy53YigpO2UobCxwKTtmYihwLGMpO2w9cH19CmZ1bmN0aW9uIHdlKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9dGhpcy5ULGU9dGhpcy5ldmFsdWF0ZShiKTtpZighKGUgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBub24tTGlzdCB2YWx1ZSBnaXZlbiBmb3IgRm4gYXJndW1lbnQgbmFtZXMuIik7cmV0dXJuIG5ldyBLZChhLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGc9ZC53YigpO2cueGIoKT09PXZvaWQgMCYmZy51ZSh0aGlzLlQueGIoKSk7Zm9yKHZhciBoPVtdLGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIG49dGhpcy5ldmFsdWF0ZShmW2xdKTtoW2xdPW59Zm9yKHZhciBwPWUuZ2V0KCJsZW5ndGgiKSxxPTA7cTxwO3ErKylxPGgubGVuZ3RoP2cuYWRkKGUuZ2V0KHEpLGhbcV0pOmcuYWRkKGUuZ2V0KHEpLHZvaWQgMCk7Zy5hZGQoImFyZ3VtZW50cyIsbmV3IEdkKGgpKTt2YXIgcj1lYihnLGMpO2lmKHIgaW5zdGFuY2VvZiBUYSlyZXR1cm4gci50eXBlPT09CiJyZXR1cm4iP3IuZGF0YTpyfX0oKSl9ZnVuY3Rpb24geGUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPXRoaXMuVDtpZih5ZSYmIWMuaGFzKGIpKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihiKyIgaXMgbm90IGRlZmluZWQuIik7cmV0dXJuIGMuZ2V0KGIpfQpmdW5jdGlvbiB6ZShhLGIpe3ZhciBjLGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYik7aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiAiK2QrIiAocmVhZGluZyAnIitlKyInKSIpKTtpZihkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2YgS2QpYz1kLmdldChlKTtlbHNlIGlmKHR5cGVvZiBkPT09InN0cmluZyIpZT09PSJsZW5ndGgiP2M9ZC5sZW5ndGg6RmQoZSkmJihjPWRbZV0pO2Vsc2UgaWYoZCBpbnN0YW5jZW9mIFBkKXJldHVybjtyZXR1cm4gY31mdW5jdGlvbiBBZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gQmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT49dGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gQ2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtjIGluc3RhbmNlb2YgUGQmJihjPWMuZ2V0VmFsdWUoKSk7ZCBpbnN0YW5jZW9mIFBkJiYoZD1kLmdldFZhbHVlKCkpO3JldHVybiBjPT09ZH1mdW5jdGlvbiBEZShhLGIpe3JldHVybiFDZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBFZShhLGIsYyl7dmFyIGQ9W107dGhpcy5ldmFsdWF0ZShhKT9kPXRoaXMuZXZhbHVhdGUoYik6YyYmKGQ9dGhpcy5ldmFsdWF0ZShjKSk7dmFyIGU9ZWIodGhpcy5ULGQpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZX12YXIgeWU9ITE7CmZ1bmN0aW9uIEZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPD10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEhlKCl7Zm9yKHZhciBhPW5ldyBHZCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO2EucHVzaChjKX1yZXR1cm4gYX1mdW5jdGlvbiBJZSgpe2Zvcih2YXIgYT1uZXcga2IsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSkpLGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5zZXQoYyxkKX1yZXR1cm4gYX1mdW5jdGlvbiBKZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIEtlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkqdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBMZShhKXtyZXR1cm4tdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBNZShhKXtyZXR1cm4hdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBOZShhLGIpe3JldHVybiFrZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBPZSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIFBlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gUWUoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpO3RoaXMuZXZhbHVhdGUoYik7cmV0dXJuIGN9ZnVuY3Rpb24gUmUoYSl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gU2UoKXtyZXR1cm4gT2EuYXBwbHkoMCxhcmd1bWVudHMpfWZ1bmN0aW9uIFRlKGEpe3JldHVybiBuZXcgVGEoInJldHVybiIsdGhpcy5ldmFsdWF0ZShhKSl9CmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3Qgc2V0IHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTsoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBrYikmJmQuc2V0KFN0cmluZyhlKSxmKTtyZXR1cm4gZn1mdW5jdGlvbiBWZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpLXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIFdlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFBcnJheS5pc0FycmF5KGYpKXRocm93IEVycm9yKCJFcnJvcjogTWFsZm9ybWVkIHN3aXRjaCBpbnN0cnVjdGlvbi4iKTtmb3IodmFyIGcsaD0hMSxsPTA7bDxlLmxlbmd0aDtsKyspaWYoaHx8ZD09PXRoaXMuZXZhbHVhdGUoZVtsXSkpaWYoZz10aGlzLmV2YWx1YXRlKGZbbF0pLGcgaW5zdGFuY2VvZiBUYSl7dmFyIG49Zy50eXBlO2lmKG49PT0iYnJlYWsiKXJldHVybjtpZihuPT09InJldHVybiJ8fG49PT0iY29udGludWUiKXJldHVybiBnfWVsc2UgaD0hMDtpZihmLmxlbmd0aD09PWUubGVuZ3RoKzEmJihnPXRoaXMuZXZhbHVhdGUoZltmLmxlbmd0aC0xXSksZyBpbnN0YW5jZW9mIFRhJiYoZy50eXBlPT09InJldHVybiJ8fGcudHlwZT09PSJjb250aW51ZSIpKSlyZXR1cm4gZ30KZnVuY3Rpb24gWGUoYSxiLGMpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpP3RoaXMuZXZhbHVhdGUoYik6dGhpcy5ldmFsdWF0ZShjKX1mdW5jdGlvbiBZZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpO3JldHVybiBiIGluc3RhbmNlb2YgS2Q/ImZ1bmN0aW9uIjp0eXBlb2YgYn1mdW5jdGlvbiBaZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPWFyZ3VtZW50c1tiXTt0eXBlb2YgYyE9PSJzdHJpbmcifHxhLmFkZChjLHZvaWQgMCl9fQpmdW5jdGlvbiAkZShhLGIsYyxkKXt2YXIgZT10aGlzLmV2YWx1YXRlKGQpO2lmKHRoaXMuZXZhbHVhdGUoYykpe3ZhciBmPWViKHRoaXMuVCxlKTtpZihmIGluc3RhbmNlb2YgVGEpe2lmKGYudHlwZT09PSJicmVhayIpcmV0dXJuO2lmKGYudHlwZT09PSJyZXR1cm4iKXJldHVybiBmfX1mb3IoO3RoaXMuZXZhbHVhdGUoYSk7KXt2YXIgZz1lYih0aGlzLlQsZSk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfXRoaXMuZXZhbHVhdGUoYil9fWZ1bmN0aW9uIGFmKGEpe3JldHVybn5OdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl9ZnVuY3Rpb24gYmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPDxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gY2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9CmZ1bmN0aW9uIGRmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBlZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSkmTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGZmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKV5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZ2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBoZigpe30KZnVuY3Rpb24ga2YoYSxiLGMpe3RyeXt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH1jYXRjaChoKXtpZighKGggaW5zdGFuY2VvZiBiYiYmaC5TbikpdGhyb3cgaDt2YXIgZT10aGlzLlQud2IoKTthIT09IiImJihoIGluc3RhbmNlb2YgYmImJihoPWgudm8pLGUuYWRkKGEsbmV3IFBkKGgpKSk7dmFyIGY9dGhpcy5ldmFsdWF0ZShjKSxnPWViKGUsZik7aWYoZyBpbnN0YW5jZW9mIFRhKXJldHVybiBnfX1mdW5jdGlvbiBsZihhLGIpe3ZhciBjLGQ7dHJ5e2Q9dGhpcy5ldmFsdWF0ZShhKX1jYXRjaChmKXtpZighKGYgaW5zdGFuY2VvZiBiYiYmZi5TbikpdGhyb3cgZjtjPWZ9dmFyIGU9dGhpcy5ldmFsdWF0ZShiKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGU7aWYoYyl0aHJvdyBjO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH07dmFyIG5mPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBnYjttZih0aGlzKX07bmYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5yayhhKX07dmFyIG1mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bmV3IExkKFN0cmluZyhjKSxkKTtlLlphKCk7dmFyIGY9U3RyaW5nKGMpO2EuSC5ILnNldChmLGUpO2RiLnNldChmLGUpfTtiKCJtYXAiLEllKTtiKCJhbmQiLHRkKTtiKCJjb250YWlucyIsd2QpO2IoImVxdWFscyIsdWQpO2IoIm9yIix2ZCk7Yigic3RhcnRzV2l0aCIseGQpO2IoInZhcmlhYmxlIix5ZCl9O25mLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3ZhciBwZj1mdW5jdGlvbigpe3RoaXMuSz0hMTt0aGlzLkg9bmV3IGdiO29mKHRoaXMpO3RoaXMuSz0hMH07cGYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHFmKHRoaXMuSC5yayhhKSl9O3ZhciByZj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHFmKGEuSC5KcShiLGMpKX07cGYucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9Owp2YXIgb2Y9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1TdHJpbmcoYyksZj1uZXcgTGQoZSxkKTtmLlphKCk7YS5ILkguc2V0KGUsZik7ZGIuc2V0KGUsZil9O2IoMCxaZCk7YigxLCRkKTtiKDIsYWUpO2IoMyxiZSk7Yig1NixlZik7Yig1NyxiZik7Yig1OCxhZik7Yig1OSxnZik7Yig2MCxjZik7Yig2MSxkZik7Yig2MixmZik7Yig1MyxjZSk7Yig0LGRlKTtiKDUsZWUpO2IoNjgsa2YpO2IoNTIsZmUpO2IoNixnZSk7Yig0OSxoZSk7Yig3LEhlKTtiKDgsSWUpO2IoOSxlZSk7Yig1MCxpZSk7YigxMCxqZSk7YigxMixrZSk7YigxMyxsZSk7Yig2NyxsZik7Yig1MSx3ZSk7Yig0NyxvZSk7Yig1NCxwZSk7Yig1NSxxZSk7Yig2Myx2ZSk7Yig2NCxyZSk7Yig2NSx0ZSk7Yig2Nix1ZSk7YigxNSx4ZSk7YigxNix6ZSk7YigxNyx6ZSk7YigxOCxBZSk7YigxOSxCZSk7YigyMCxDZSk7YigyMSxEZSk7YigyMixFZSk7YigyMyxGZSk7YigyNCxHZSk7YigyNSxKZSk7YigyNiwKS2UpO2IoMjcsTGUpO2IoMjgsTWUpO2IoMjksTmUpO2IoNDUsT2UpO2IoMzAsUGUpO2IoMzIsUWUpO2IoMzMsUWUpO2IoMzQsUmUpO2IoMzUsUmUpO2IoNDYsU2UpO2IoMzYsVGUpO2IoNDMsVWUpO2IoMzcsVmUpO2IoMzgsV2UpO2IoMzksWGUpO2IoNDAsWWUpO2IoNDQsaGYpO2IoNDEsWmUpO2IoNDIsJGUpfTtwZi5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILmplKCl9O3BmLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3BmLnByb3RvdHlwZS5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9OwpmdW5jdGlvbiBxZihhKXtpZihhIGluc3RhbmNlb2YgVGF8fGEgaW5zdGFuY2VvZiBLZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIFBkfHxhPT09bnVsbHx8YT09PXZvaWQgMHx8dHlwZW9mIGE9PT0ic3RyaW5nInx8dHlwZW9mIGE9PT0ibnVtYmVyInx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGF9O3ZhciBzZj1mdW5jdGlvbihhKXt0aGlzLm1lc3NhZ2U9YX07ZnVuY3Rpb24gdGYoYSl7YS5xdj0hMDtyZXR1cm4gYX07dmFyIHVmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifSksdmY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9KSx3Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9KTtmdW5jdGlvbiB4ZihhKXt2YXIgYj0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYV07cmV0dXJuIGI9PT12b2lkIDA/bmV3IHNmKCJWYWx1ZSAiK2ErIiBjYW4gbm90IGJlIGVuY29kZWQgaW4gd2ViLXNhZmUgYmFzZTY0IGRpY3Rpb25hcnkuIik6Yn07ZnVuY3Rpb24geWYoYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4iMSI7Y2FzZSAyOmNhc2UgNDpyZXR1cm4iMCI7ZGVmYXVsdDpyZXR1cm4iLSJ9fTt2YXIgemY9L15bMS05YS16QS1aXy1dWzEtOWEtY11bMS05YS12XVxkJC87ZnVuY3Rpb24gQWYoYSxiKXtmb3IodmFyIGM9IiIsZD0hMDthPjc7KXt2YXIgZT1hJjMxO2E+Pj01O2Q/ZD0hMTplfD0zMjtjPSIiK3hmKGUpK2N9YTw8PTI7ZHx8KGF8PTMyKTtyZXR1cm4gYz0iIit4ZihhfGIpK2N9ZnVuY3Rpb24gQmYoYSxiKXtyZXR1cm4gYj09PXZvaWQgMHx8Yj09PTA/IiI6IiIrQWYoYSwxKSt4ZihiKX0KZnVuY3Rpb24gQ2YoYSxiKXt2YXIgYzt2YXIgZD1hLmhpLGU9YS5iaztkPT09dm9pZCAwP2M9IiI6KGV8fChlPTApLGM9IiIrQWYoMSwxKSt4ZihkPDwyfGUpKTt2YXIgZj0iNCIrYytCZigyLGEucXIpLGcsaD1hLklvO2c9aCYmemYudGVzdChoKT8iIitBZigzLDIpK2g6IiI7dmFyIGw7dmFyIG49YS5jdGlkO2lmKG4mJmIpe3ZhciBwPUFmKDUsMykscT1uLnNwbGl0KCItIikscj1xWzBdLnRvVXBwZXJDYXNlKCk7aWYociE9PSJHVE0iJiZyIT09Ik9QVCIpbD0iIjtlbHNle3ZhciB0PXFbMV07bD0iIitwK3hmKDErdC5sZW5ndGgpKyhhLkxzfHwwKSt0fX1lbHNlIGw9IiI7dmFyIHU9YS5jYW5vbmljYWxJZCx2PWEubWMseD1hLnp2LHk9ZitnK0JmKDQsYS5EbykrbCtCZig2LGEuRHQpKyh1PyIiK0FmKDcsMykreGYodS5sZW5ndGgpK3U6IiIpKyh2PyIiK0FmKDgsMykreGYodi5sZW5ndGgpK3Y6IiIpKyh4PyIiK0FmKDksMykreGYoeC5sZW5ndGgpK3g6IiIpLHo7dmFyIEM9YS56cjtDPQpDPT09dm9pZCAwP3t9OkM7Zm9yKHZhciBEPVtdLEk9bShPYmplY3Qua2V5cyhDKSksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe3ZhciBOPUcudmFsdWU7RFtOdW1iZXIoTildPUNbTl19aWYoRC5sZW5ndGgpe3ZhciBTPUFmKDEwLDMpLFc7aWYoRC5sZW5ndGg9PT0wKVc9eGYoMCk7ZWxzZXtmb3IodmFyIGVhPVtdLGphPTAsZmE9ITEsc2E9MDtzYTxELmxlbmd0aDtzYSsrKXtmYT0hMDt2YXIgZGE9c2ElNjtEW3NhXSYmKGphfD0xPDxkYSk7ZGE9PT01JiYoZWEucHVzaCh4ZihqYSkpLGphPTAsZmE9ITEpfWZhJiZlYS5wdXNoKHhmKGphKSk7Vz1lYS5qb2luKCIiKX12YXIgbWE9Vzt6PSIiK1MreGYobWEubGVuZ3RoKSttYX1lbHNlIHo9IiI7dmFyIFBhPWEuVXMsRmE9YS5udDtyZXR1cm4geSt6KyhQYT8iIitBZigxMSwzKSt4ZihQYS5sZW5ndGgpK1BhOiIiKSsoRmE/IiIrQWYoMTMsMykreGYoRmEubGVuZ3RoKStGYToiIikrQmYoMTQsYS5FdCkrQmYoMTUsYS5ydikrQmYoMTYsCmEuQXYpfTtmdW5jdGlvbiBEZihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U8MTI4P2JbYysrXT1lOihlPDIwNDg/YltjKytdPWU+PjZ8MTkyOigoZSY2NDUxMik9PTU1Mjk2JiZkKzE8YS5sZW5ndGgmJihhLmNoYXJDb2RlQXQoZCsxKSY2NDUxMik9PTU2MzIwPyhlPTY1NTM2KygoZSYxMDIzKTw8MTApKyhhLmNoYXJDb2RlQXQoKytkKSYxMDIzKSxiW2MrK109ZT4+MTh8MjQwLGJbYysrXT1lPj4xMiY2M3wxMjgpOmJbYysrXT1lPj4xMnwyMjQsYltjKytdPWU+PjYmNjN8MTI4KSxiW2MrK109ZSY2M3wxMjgpfXJldHVybiBifTtmdW5jdGlvbiBFZihhLGIpe2Zvcih2YXIgYz1xYihiKSxkPW5ldyBVaW50OEFycmF5KGMubGVuZ3RoKSxlPTA7ZTxjLmxlbmd0aDtlKyspZFtlXT1jLmNoYXJDb2RlQXQoZSk7aWYoZC5sZW5ndGghPT0zMil0aHJvdyBFcnJvcigiS2V5IGlzIG5vdCAzMiBieXRlcy4iKTtyZXR1cm4gRmYoYSxkKX1mdW5jdGlvbiBGZihhLGIpe2lmKGE9PT0iIilyZXR1cm4iIjt2YXIgYz1aYihhKSxkPWIuc2xpY2UoLTIpLGU9W10uY29uY2F0KHcoZCksdyhjKSkubWFwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGdeYltoJWIubGVuZ3RoXX0pLGY9bmV3IFVpbnQ4QXJyYXkoW10uY29uY2F0KHcoZSksdyhkKSkpO3JldHVybiBwYihTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGYpKSkucmVwbGFjZSgvXC4rJC8sIiIpfTt2YXIgR2Y9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3JldHVybnt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBifX19cmV0dXJue2NwOmEoImNvbnNlbnQiKSxaazphKCJjb252ZXJ0X2Nhc2VfdG8iKSxhbDphKCJjb252ZXJ0X2ZhbHNlX3RvIiksYmw6YSgiY29udmVydF9udWxsX3RvIiksZXA6YSgiY29udmVydF90b19ib29sZWFuIiksYWg6YSgiY29udmVydF90b19udW1iZXIiKSxmbDphKCJjb252ZXJ0X3RydWVfdG8iKSxpbDphKCJjb252ZXJ0X3VuZGVmaW5lZF90byIpLFl0OmEoImRlYnVnX21vZGVfbWV0YWRhdGEiKSxZYjphKCJmdW5jdGlvbiIpLFJtOmEoImluc3RhbmNlX25hbWUiKSxOcTphKCJsaXZlX29ubHkiKSxPcTphKCJtYWx3YXJlX2Rpc2FibGVkIiksTUVUQURBVEE6YSgibWV0YWRhdGEiKSxScTphKCJvcmlnaW5hbF9hY3Rpdml0eV9pZCIpLFR1OmEoIm9yaWdpbmFsX3ZlbmRvcl90ZW1wbGF0ZV9pZCIpLFN1OmEoIm9uY2Vfb25fbG9hZCIpLFFxOmEoIm9uY2VfcGVyX2V2ZW50IiksCmtuOmEoIm9uY2VfcGVyX2xvYWQiKSxWdTphKCJwcmlvcml0eV9vdmVycmlkZSIpLFl1OmEoInJlc3BlY3RlZF9jb25zZW50X3R5cGVzIiksdG46YSgic2V0dXBfdGFncyIpLHlqOmEoInRhZ19pZCIpLERuOmEoInRlYXJkb3duX3RhZ3MiKSxwbDphKCJkaXNhYmxlZF9pbl9nb29nbGVfbW9kZSIpLEZxOmEoImdlbmVyYXRlZF90YWdnaW5nX21ldGFkYXRhIil9fSgpO2Z1bmN0aW9uIEhmKGEsYil7dmFyIGM9e307Y1tHZi5ZYl09Il9fIithO2Zvcih2YXIgZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjWyJ2dHBfIitkXT1iW2RdKTtyZXR1cm4gY307ZnVuY3Rpb24gSWYoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT8hIWRhdGEuYmxvYlthXTpifWZ1bmN0aW9uIEUoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGRhdGEuYmxvYlthXSk6Yn1mdW5jdGlvbiBKZihhKXt2YXIgYixjO3JldHVybigoYj1kYXRhKT09bnVsbD8wOihjPWIuYmxvYik9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoZGF0YS5ibG9iW2FdKTowfWZ1bmN0aW9uIEtmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD9bXTpiO3ZhciBjLGQsZT0oYz1kYXRhKT09bnVsbD92b2lkIDA6KGQ9Yy5ibG9iKT09bnVsbD92b2lkIDA6ZFthXTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOmJ9CmZ1bmN0aW9uIExmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoY1thXSk6Yn1mdW5jdGlvbiBOZihhLGIpe3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoY1thXSk6Yn1mdW5jdGlvbiBNZihhKXt2YXIgYixjO3JldHVybihiPWRhdGEpPT1udWxsP3ZvaWQgMDooYz1iLmJsb2IpPT1udWxsP3ZvaWQgMDpjW2FdfTt2YXIgT2Y9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGMpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMucGVybWlzc2lvbklkPWE7dGhpcy5wYXJhbWV0ZXJzPWI7dGhpcy5uYW1lPSJQZXJtaXNzaW9uRXJyb3IifTt3YShPZixFcnJvcik7T2YucHJvdG90eXBlLmdldE1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlfTtmdW5jdGlvbiBQZihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYSkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjb250ZXh0Iix7dmFsdWU6e2xpbmU6YlswXX19KTtmb3IodmFyIGM9MTtjPGEubGVuZ3RoO2MrKylQZihhW2NdLGJbY10pfX07ZnVuY3Rpb24gUWYoKXtyZXR1cm4gZnVuY3Rpb24oYSxiKXt2YXIgYzt2YXIgZD1SZjthIGluc3RhbmNlb2YgYmI/KGEuSD1kLGM9YSk6Yz1uZXcgYmIoYSxkKTt2YXIgZT1jO2ImJmUuSy5wdXNoKGIpO3Rocm93IGU7fX1mdW5jdGlvbiBSZihhKXtpZighYS5sZW5ndGgpcmV0dXJuIGE7YS5wdXNoKHtpZDoibWFpbiIsbGluZTowfSk7Zm9yKHZhciBiPWEubGVuZ3RoLTE7Yj4wO2ItLSlBYihhW2JdLmlkKSYmYS5zcGxpY2UoYisrLDEpO2Zvcih2YXIgYz1hLmxlbmd0aC0xO2M+MDtjLS0pYVtjXS5saW5lPWFbYy0xXS5saW5lO2Euc3BsaWNlKDAsMSk7cmV0dXJuIGF9O3ZhciBTZj1SZWdFeHAoIlteMC05XFwuKy1dIiwiZyIpLFRmPVJlZ0V4cCgiW14wLTlcXCwrLV0iLCJnIiksVWY9UmVnRXhwKCJbXjAtOSstXSIsImciKTsKZnVuY3Rpb24gVmYoYSxiKXtpZih0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO3ZhciBjPVN0cmluZyhhKSxkO2lmKGI9PT0iQVVUT01BVElDIil7dmFyIGU9KGMubWF0Y2goL1wuL2cpfHxbXSkubGVuZ3RoLGY9KGMubWF0Y2goLywvZyl8fFtdKS5sZW5ndGgsZz0iTk9ORSI7aWYoZT4wJiZmPjApe3ZhciBoPWMubGFzdEluZGV4T2YoIi4iKT5jLmxhc3RJbmRleE9mKCIsIik7aCYmZT09PTE/Zz0iUEVSSU9EIjpofHxmIT09MXx8KGc9IkNPTU1BIil9ZWxzZSBlPT09MT9nPShjLnNwbGl0KCIuIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iUEVSSU9EIjoiTk9ORSI6Zj09PTEmJihnPShjLnNwbGl0KCIsIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iQ09NTUEiOiJOT05FIik7ZD1nfWVsc2UgZD1iPT09IkNPTU1BIj8iQ09NTUEiOiJQRVJJT0QiO3ZhciBsLG47ZD09PSJQRVJJT0QiPyhsPSIuIixuPVNmKTpkPT09IkNPTU1BIj8obD0iLCIsCm49VGYpOihsPSIiLG49VWYpO3ZhciBwPWMucmVwbGFjZShuLCIiKTtpZihsIT09IiImJnAuc3BsaXQobCkubGVuZ3RoPjIpcmV0dXJuIGE7dmFyIHE9cC5yZXBsYWNlKC8sL2csIi4iKTtpZihxPT09IiIpcmV0dXJuIGE7dmFyIHI9TnVtYmVyKHEpO3JldHVybiBpc05hTihyKT9hOnJ9O3ZhciBXZj1bXSxYZj17fTtmdW5jdGlvbiBZZihhKXtyZXR1cm4gV2ZbYV09PT12b2lkIDA/ITE6V2ZbYV19O3ZhciBaZj1mdW5jdGlvbigpe3RoaXMuSD17fX0sJGY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTthLkhbYl0ucHVzaChmdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KG51bGwsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX0pfTtmdW5jdGlvbiBhZyhhLGIsYyxkKXtpZihhKWZvcih2YXIgZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgZj12b2lkIDAsZz0iQSBwb2xpY3kgZnVuY3Rpb24gZGVuaWVkIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QiO3RyeXtmPWFbZV0oYixjLGQpLGcrPSIuIn1jYXRjaChoKXtnPXR5cGVvZiBoPT09InN0cmluZyI/ZysoIjogIitoKTpoIGluc3RhbmNlb2YgRXJyb3I/ZysoIjogIitoLm1lc3NhZ2UpOmcrIi4ifWlmKCFmKXRocm93IG5ldyBPZihjLGQsZyk7fX0KZnVuY3Rpb24gYmcoYSxiKXt2YXIgYz1jZyhkZy5ILGIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO3RyeXtyZXR1cm4gYyhhKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gY2coYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtpZihkKXt2YXIgZT1hLkhbZF0sZj1hLkguYWxsO2lmKGV8fGYpe3ZhciBnPWMuYXBwbHkodm9pZCAwLFtkXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk7YWcoZSxiLGQsZyk7YWcoZixiLGQsZyl9fX19O3ZhciBnZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLks9e307dGhpcy5IPW5ldyBaZjt2YXIgZT17fSxmPXt9LGc9Y2codGhpcy5ILGEsZnVuY3Rpb24oaCl7cmV0dXJuIGgmJmVbaF0/ZVtoXS5hcHBseSh2b2lkIDAsW2hdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTp7fX0pO0diKGIsZnVuY3Rpb24oaCxsKXtmdW5jdGlvbiBuKHEpe3ZhciByPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZighcFtxXSl0aHJvdyBlZyhxLHt9LCJUaGUgcmVxdWVzdGVkIGFkZGl0aW9uYWwgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTtnLmFwcGx5KG51bGwsW3FdLmNvbmNhdCh3KHIpKSl9dmFyIHA9e307R2IobCxmdW5jdGlvbihxLHIpe3ZhciB0PWZnKHEscixjKTtwW3FdPXQuYXNzZXJ0O2VbcV18fChlW3FdPXQuYWEpO3QuT24mJiFmW3FdJiYoZltxXT10Lk9uKX0pO2QuS1toXT1mdW5jdGlvbihxLHIpe3ZhciB0PXBbcV07aWYoIXQpdGhyb3cgZWcocSwKe30sIlRoZSByZXF1ZXN0ZWQgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTt2YXIgdT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7dC5hcHBseSh2b2lkIDAsdSk7Zy5hcHBseSh2b2lkIDAsdSk7dmFyIHY9ZltxXTt2JiZ2LmFwcGx5KG51bGwsW25dLmNvbmNhdCh3KHUuc2xpY2UoMSkpKSl9fSl9LGhnPWZ1bmN0aW9uKGEpe3JldHVybiBkZy5LW2FdfHxmdW5jdGlvbigpe319OwpmdW5jdGlvbiBmZyhhLGIsYyl7dHJ5e3ZhciBkPWNbIl9fIithXTtpZighZCl0aHJvdyBFcnJvcigiTm8gZnVuY3Rpb24gZm91bmQgZm9yIHBlcm1pc3Npb246ICIrYSsiLiIpO3ZhciBlPUhmKGEsYik7ZS52dHBfcGVybWlzc2lvbk5hbWU9YTtlLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I9ZWc7ZGVsZXRlIGVbR2YuWWJdO3JldHVybiBkKGUpfWNhdGNoKGYpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZyl7dGhyb3cgbmV3IE9mKGcse30sIlBlcm1pc3Npb24gIitnKyIgaXMgdW5rbm93bi4iKTt9LGFhOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IE9mKGEse30sIlBlcm1pc3Npb24gIithKyIgaXMgdW5rbm93bi4iKTt9fX19ZnVuY3Rpb24gZWcoYSxiLGMpe3JldHVybiBuZXcgT2YoYSxiLGMpfTt2YXIgaWc9RSg1KSxqZz1FKDIwKSxrZz1FKDEpLGxnPSExO3ZhciBtZz17fTttZy5Qbz1JZigyOSk7bWcuS3I9SWYoMjgpO2Z1bmN0aW9uIG5nKGEpe3ZhciBiPTEsYyxkLGU7aWYoYSlmb3IoYj0wLGQ9YS5sZW5ndGgtMTtkPj0wO2QtLSllPWEuY2hhckNvZGVBdChkKSxiPShiPDw2JjI2ODQzNTQ1NSkrZSsoZTw8MTQpLGM9YiYyNjYzMzgzMDQsYj1jIT09MD9iXmM+PjIxOmI7cmV0dXJuIGJ9O3ZhciBvZz1mdW5jdGlvbihhKXt0aGlzLmNhY2hlPWF9O29nLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmcoYSksYz10aGlzLmNhY2hlLmdldChiKTtpZighYylyZXR1cm57cHJvbWlzZTp2b2lkIDAsS2o6MH07aWYoRGF0ZS5ub3coKT49Yy50aW1lc3RhbXArOUU1KXJldHVybiB0aGlzLmNhY2hlLmRlbGV0ZShiKSx7cHJvbWlzZTp2b2lkIDAsS2o6M307dmFyIGQ9Yy5yZXNvbHZlZFZhbHVlPzI6MTtyZXR1cm57cHJvbWlzZTpjLnJlc29sdmVkVmFsdWU/UHJvbWlzZS5yZXNvbHZlKGMucmVzb2x2ZWRWYWx1ZSk6Yy5wcm9taXNlLEtqOmR9fTtvZy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9e3Byb21pc2U6YixyZXNvbHZlZFZhbHVlOnZvaWQgMCx0aW1lc3RhbXA6RGF0ZS5ub3coKX07dGhpcy5jYWNoZS5zZXQobmcoYSksYyk7Yi50aGVuKGZ1bmN0aW9uKGQpe2MucmVzb2x2ZWRWYWx1ZT1kfSl9O2Z1bmN0aW9uIHBnKGEpe3N3aXRjaChhKXtjYXNlIDA6YnJlYWs7Y2FzZSA5OnJldHVybiJlNCI7Y2FzZSA2OnJldHVybiJlNSI7Y2FzZSAxNDpyZXR1cm4iZTYiO2RlZmF1bHQ6cmV0dXJuImU3In19O3ZhciBGPXtEOntYYToiYWRfcGVyc29uYWxpemF0aW9uIixrYToiYWRfc3RvcmFnZSIsbWE6ImFkX3VzZXJfZGF0YSIscmE6ImFuYWx5dGljc19zdG9yYWdlIixuYzoicmVnaW9uIixzYToiY29uc2VudF91cGRhdGVkIixZZzoid2FpdF9mb3JfdXBkYXRlIixlaDoiZW5kcG9pbnRfdHlwZSIscXA6ImFwcF9yZW1vdmUiLHJwOiJhcHBfc3RvcmVfcmVmdW5kIix0cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiLHVwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiLHZwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Iix3cDoiY29uc2VudF91cGRhdGUiLHhwOiJjb252ZXJzaW9uIix2bDoiYWRkX3BheW1lbnRfaW5mbyIsd2w6ImFkZF9zaGlwcGluZ19pbmZvIix4ZToiYWRkX3RvX2NhcnQiLHllOiJyZW1vdmVfZnJvbV9jYXJ0Iix4bDoidmlld19jYXJ0IixBZDoiYmVnaW5fY2hlY2tvdXQiLGV1OiJnZW5lcmF0ZV9sZWFkIix6ZToic2VsZWN0X2l0ZW0iLG9jOiJ2aWV3X2l0ZW1fbGlzdCIsClFjOiJzZWxlY3RfcHJvbW90aW9uIixxYzoidmlld19wcm9tb3Rpb24iLEliOiJwdXJjaGFzZSIsQWU6InJlZnVuZCIscmM6InZpZXdfaXRlbSIseWw6ImFkZF90b193aXNobGlzdCIseXA6ImV4Y2VwdGlvbiIsenA6ImZpcnN0X29wZW4iLEFwOiJmaXJzdF92aXNpdCIsd2E6Imd0YWcuY29uZmlnIixKYjoiZ3RhZy5nZXQiLEJwOiJpbl9hcHBfcHVyY2hhc2UiLHNjOiJwYWdlX3ZpZXciLENwOiJzY3JlZW5fdmlldyIsRHA6InNlc3Npb25fc3RhcnQiLEVwOiJzb3VyY2VfdXBkYXRlIixGcDoidGltaW5nX2NvbXBsZXRlIixHcDoidHJhY2tfc29jaWFsIix5ZjoidXNlcl9lbmdhZ2VtZW50IixIcDoidXNlcl9pZF91cGRhdGUiLGZoOiJicmFpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixnaDoiYnJhaWRfc3RvcmFnZV9zb3VyY2UiLEJkOiJnY2xpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixDZDoiZ2NsaWRfc3RvcmFnZV9zb3VyY2UiLFNiOiJnY2xnYiIsbGI6ImdjbGlkIix6bDoiZ2NsaWRfbGVuIiwKQmU6ImdjbGdzIixDZToiZ2NsbHAiLERlOiJnY2xzdCIsbWI6ImFkc19kYXRhX3JlZGFjdGlvbiIsemY6ImdhZF9zb3VyY2UiLEFmOiJnYWRfc291cmNlX3NyYyIsRGQ6ImdjbGlkX3VybCIsQWw6ImdjbHNyYyIsQmY6ImdicmFpZCIsRWU6IndicmFpZCIsUmM6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIixyaToiYWxsb3dfY3VzdG9tX3NjcmlwdHMiLGhoOiJhbGxvd19kaXNwbGF5X2ZlYXR1cmVzIixzaToiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiLFNjOiJhbGxvd19nb29nbGVfc2lnbmFscyIsdWk6ImFsbG93X2ludGVyZXN0X2dyb3VwcyIsSXA6ImFwcF9pZCIsSnA6ImFwcF9pbnN0YWxsZXJfaWQiLEtwOiJhcHBfbmFtZSIsTHA6ImFwcF92ZXJzaW9uIixFZDoiYXVpZCIsZnU6ImF1dG9fZGV0ZWN0aW9uX2VuYWJsZWQiLEJsOiJhdXRvX2V2ZW50IixDbDoiYXdfcmVtYXJrZXRpbmciLGloOiJhd19yZW1hcmtldGluZ19vbmx5IixDZjoiZGlzY291bnQiLERmOiJhd19mZWVkX2NvdW50cnkiLApFZjoiYXdfZmVlZF9sYW5ndWFnZSIsSGE6Iml0ZW1zIixGZjoiYXdfbWVyY2hhbnRfaWQiLHdpOiJhd19iYXNrZXRfdHlwZSIsR2Y6ImNhbXBhaWduX2NvbnRlbnQiLEhmOiJjYW1wYWlnbl9pZCIsSWY6ImNhbXBhaWduX21lZGl1bSIsSmY6ImNhbXBhaWduX25hbWUiLEtmOiJjYW1wYWlnbiIsTGY6ImNhbXBhaWduX3NvdXJjZSIsTWY6ImNhbXBhaWduX3Rlcm0iLEtiOiJjbGllbnRfaWQiLERsOiJybmQiLHhpOiJjb25zZW50X3VwZGF0ZV90eXBlIixNcDoiY29udGVudF9ncm91cCIsTnA6ImNvbnRlbnRfdHlwZSIsRmQ6ImNvbnZlcnNpb25fY29va2llX3ByZWZpeCIseWk6ImNvbnZlcnNpb25faWQiLHVjOiJjb252ZXJzaW9uX2xpbmtlciIsSGQ6ImNvbnZlcnNpb25fbGlua2VyX2Rpc2FibGVkIixGZToiY29udmVyc2lvbl9hcGkiLHppOiJfJnJjYiIsamg6ImNvb2tpZV9kZXByZWNhdGlvbiIsTGI6ImNvb2tpZV9kb21haW4iLENiOiJjb29raWVfZXhwaXJlcyIsVGI6ImNvb2tpZV9mbGFncyIsCklkOiJjb29raWVfbmFtZSIsdmM6ImNvb2tpZV9wYXRoIixuYjoiY29va2llX3ByZWZpeCIsSmQ6ImNvb2tpZV91cGRhdGUiLFRjOiJjb3VudHJ5IixlYjoiY3VycmVuY3kiLEdlOiJjdXN0b21lcl9saWZldGltZV92YWx1ZSIsa2g6ImN1c3RvbWVyX3R5cGUiLEhlOiJjdXN0b21fbWFwIixBaToiZ2NsZGNfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQmk6ImdjbGRjX3N0b3JhZ2Vfc291cmNlIixOZjoiZ2NsZGMiLEtkOiJkY2xpZCIsRWw6ImRlYnVnX21vZGUiLE9hOiJkZXZlbG9wZXJfaWQiLE9wOiJkaXNhYmxlX21lcmNoYW50X3JlcG9ydGVkX3B1cmNoYXNlcyIsVWM6ImRjX2N1c3RvbV9wYXJhbXMiLFBwOiJkY19uYXR1cmFsX3NlYXJjaCIsUXA6ImR5bmFtaWNfZXZlbnRfc2V0dGluZ3MiLEZsOiJhZmZpbGlhdGlvbiIsbWg6ImNoZWNrb3V0X29wdGlvbiIsQ2k6ImNoZWNrb3V0X3N0ZXAiLEdsOiJjb3Vwb24iLE9mOiJpdGVtX2xpc3RfbmFtZSIsRGk6Imxpc3RfbmFtZSIsUnA6InByb21vdGlvbnMiLApMZDoic2hpcHBpbmciLEhsOiJ0YXgiLG5oOiJlbmdhZ2VtZW50X3RpbWVfbXNlYyIsb2g6ImVuaGFuY2VkX2NsaWVudF9pZCIsU3A6ImVuaGFuY2VkX2NvbnZlcnNpb25zIixndToiZW5oYW5jZWRfY29udmVyc2lvbnNfYXV0b21hdGljX3NldHRpbmdzIixJZToiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiLFBmOiJldmVudF9jYWxsYmFjayIsVHA6ImV2ZW50X2NhdGVnb3J5IixWYzoiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyIsTWQ6ImV2ZW50X2lkIixFaToiX2V2ZW50X2pvaW5faWQiLFVwOiJldmVudF9sYWJlbCIsVWI6ImV2ZW50IixJbDoiXyZhZSIsRmk6ImV2ZW50X3NldHRpbmdzIixwaDoiZXZlbnRfdGltZW91dCIsVnA6ImRlc2NyaXB0aW9uIixXcDoiZmF0YWwiLFhwOiJleHBlcmltZW50cyIsTmQ6ImV4dF9jbGllbnRfaWQiLEdpOiJmaXJlYmFzZV9pZCIsUWY6ImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iLFJmOiJfeF8yMCIsVmI6Il94XzE5IixZcDoiZmxpZ2h0X2Vycm9yX2NvZGUiLApacDoiZmxpZ2h0X2Vycm9yX21lc3NhZ2UiLEhpOiJmbF9hY3Rpdml0eV9jYXRlZ29yeSIsSWk6ImZsX2FjdGl2aXR5X2dyb3VwIixxaDoiZmxfYWR2ZXJ0aXNlcl9pZCIsSmk6Im1hdGNoX2lkIixKbDoiZmxfcmFuZG9tX251bWJlciIsS2w6InRyYW4iLExsOiJ1IixyaDoiZ2FjX2djbGlkIixKZToiZ2FjX3dicmFpZCIsTWw6ImdhY193YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGFxOiJnYV9yZXN0cmljdF9kb21haW4iLE5sOiJnYV90ZW1wX2NsaWVudF9pZCIsYnE6ImdhX3RlbXBfZWNpZCIsS2U6ImdkcHJfYXBwbGllcyIsc2g6Il9ndF9tZXRhZGF0YSIsT2w6Imdlb19ncmFudWxhcml0eSIsU2Y6InZhbHVlX2NhbGxiYWNrIixUZjoidmFsdWVfa2V5IixUYToiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyIsTGU6Il9nb29nbGVfbmciLGNxOiJfb25vIixVZjoiZ29vZ2xlX3NpZ25hbHMiLGZxOiJnb29nbGVfdGxkIix0aDoiZ3BwX3NpZCIsdWg6ImdwcF9zdHJpbmciLE9kOiJncm91cHMiLApQbDoiZ3NhX2V4cGVyaW1lbnRfaWQiLFZmOiJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiLFFsOiJndG1fdXAiLE1lOiJpZnJhbWVfc3RhdGUiLFdmOiJpZ25vcmVfcmVmZXJyZXIiLFJsOiJpbnRlcm5hbF90cmFmZmljX3Jlc3VsdHMiLFNsOiJfaXNfZnBtIixZYzoiaXNfbGVnYWN5X2NvbnZlcnRlZCIsWmM6ImlzX2xlZ2FjeV9sb2FkZWQiLEtpOiJpc19wYXNzdGhyb3VnaCIsUGQ6Il9scHMiLHRiOiJsYW5ndWFnZSIsTGk6ImxlZ2FjeV9kZXZlbG9wZXJfaWRfc3RyaW5nIixEYjoibGlua2VyIixYZjoiYWNjZXB0X2luY29taW5nIix3YzoiZGVjb3JhdGVfZm9ybXMiLEFhOiJkb21haW5zIixhZDoidXJsX3Bvc2l0aW9uIixRZDoibWVyY2hhbnRfZmVlZF9sYWJlbCIsUmQ6Im1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiLFNkOiJtZXJjaGFudF9pZCIsVGw6Im1ldGhvZCIsZ3E6Im5hbWUiLFVsOiJuYXZpZ2F0aW9uX3R5cGUiLE5lOiJuZXdfY3VzdG9tZXIiLE1pOiJub25faW50ZXJhY3Rpb24iLApocToib3B0aW1pemVfaWQiLFZsOiJwYWdlX2hvc3RuYW1lIixZZjoicGFnZV9wYXRoIixVYToicGFnZV9yZWZlcnJlciIsTWI6InBhZ2VfdGl0bGUiLGlxOiJwYXNzZW5nZXJzIixXbDoicGhvbmVfY29udmVyc2lvbl9jYWxsYmFjayIsanE6InBob25lX2NvbnZlcnNpb25fY291bnRyeV9jb2RlIixYbDoicGhvbmVfY29udmVyc2lvbl9jc3NfY2xhc3MiLGtxOiJwaG9uZV9jb252ZXJzaW9uX2lkcyIsWWw6InBob25lX2NvbnZlcnNpb25fbnVtYmVyIixabDoicGhvbmVfY29udmVyc2lvbl9vcHRpb25zIixscToiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIixtcToiX3Byb3RlY3RlZF9hdWRpZW5jZV9lbmFibGVkIix3aDoicXVhbnRpdHkiLHhoOiJyZWRhY3RfZGV2aWNlX2luZm8iLGFtOiJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsaHU6Il9yZXF1ZXN0X3N0YXJ0X3RpbWUiLFdiOiJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyIsbnE6InJldG9rZW4iLG9xOiJzYW1wbGVfcmF0ZSIsCk5pOiJzY3JlZW5fbmFtZSIsYmQ6InNjcmVlbl9yZXNvbHV0aW9uIixibToiX3NjcmlwdF9zb3VyY2UiLHBxOiJzZWFyY2hfdGVybSIsVGQ6InNlbmRfcGFnZV92aWV3IixYYjoic2VuZF90byIsT2k6InNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCIsZGQ6InNlcnZlcl9jb250YWluZXJfdXJsIixxcToic2Vzc2lvbl9hdHRyaWJ1dGVzX2VuY29kZWQiLHloOiJzZXNzaW9uX2R1cmF0aW9uIix6aDoic2Vzc2lvbl9lbmdhZ2VkIixQaToic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiLHhjOiJzZXNzaW9uX2lkIixBaDoic2Vzc2lvbl9udW1iZXIiLFpmOiJfc2hhcmVkX3VzZXJfaWQiLFVkOiJkZWxpdmVyeV9wb3N0YWxfY29kZSIsaXU6Il90YWdfZmlyaW5nX2RlbGF5IixqdToiX3RhZ19maXJpbmdfdGltZSIsa3U6InRlbXBvcmFyeV9jbGllbnRfaWQiLFFpOiJ0ZXN0b25seSIscnE6Il90aW1lem9uZSIsUGU6InRvcG1vc3RfdXJsIixRZToidHJhY2tpbmdfaWQiLFJpOiJ0cmFmZmljX3R5cGUiLApQYToidHJhbnNhY3Rpb25faWQiLGRtOiJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiLHljOiJ0cmFuc3BvcnRfdXJsIixzcToidHJpcF90eXBlIixWZDoidXBkYXRlIix6YzoidXJsX3Bhc3N0aHJvdWdoIixmbToidXB0Z3MiLGNnOiJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiLGRnOiJfdXNlcl9hZ2VudF9iaXRuZXNzIixlZzoiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiLGZnOiJfdXNlcl9hZ2VudF9tb2JpbGUiLGdnOiJfdXNlcl9hZ2VudF9tb2RlbCIsaGc6Il91c2VyX2FnZW50X3BsYXRmb3JtIixpZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiIsamc6Il91c2VyX2FnZW50X3dvdzY0IixBYzoidXNlcl9kYXRhIixnbToidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSIsaG06InVzZXJfZGF0YV9hdXRvX21ldGEiLGltOiJ1c2VyX2RhdGFfYXV0b19tdWx0aSIsam06InVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyIsa206InVzZXJfZGF0YV9hdXRvX3N0YXR1cyIsQmM6InVzZXJfZGF0YV9tb2RlIiwKbG06InVzZXJfZGF0YV9zZXR0aW5ncyIsZmI6InVzZXJfaWQiLFdkOiJ1c2VyX3Byb3BlcnRpZXMiLG9tOiJfdXNlcl9yZWdpb24iLGtnOiJ1c19wcml2YWN5X3N0cmluZyIsUWE6InZhbHVlIixxbToid2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixlZDoiX2ZwbV9wYXJhbWV0ZXJzIixXaToiX2hvc3RfbmFtZSIsVm06Il9pbl9wYWdlX2NvbW1hbmQiLFlpOiJfaXBfb3ZlcnJpZGUiLFptOiJfaXNfcGFzc3Rocm91Z2hfY2lkIixKaDoiX21lYXN1cmVtZW50X3R5cGUiLGRlOiJub25fcGVyc29uYWxpemVkX2FkcyIsb2o6Il9zc3RfcGFyYW1ldGVycyIsWXE6InNndG1fZ2VvX3VzZXJfY291bnRyeSIsR2Q6ImNvbnZlcnNpb25fbGFiZWwiLHphOiJwYWdlX2xvY2F0aW9uIixXYzoiX2V4dHJhY3RlZF9kYXRhIixYYzoiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciLE9lOiJ0Y19wcml2YWN5X3N0cmluZyJ9fTt2YXIgSD17Sjp7U286ImFib3J0X3dpdGhvdXRfZmFpbCIsa2k6ImFjY2VwdF9ieV9kZWZhdWx0IixCazoiYWRkX3RhZ190aW1pbmciLERrOiJhZHNfY29uc2VudF9ncmFudGVkIix2ZDoiYWRzX2V2ZW50X3BhZ2VfdmlldyIsd2Q6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiIsUXQ6ImF1dG9fZXZlbnQiLEtrOiJiYXRjaF9vbl9uYXZpZ2F0aW9uIixYZzoiYmlzY290dGlfam9pbl9pZCIsUGs6ImNsaWVudF9pZF9zb3VyY2UiLHVmOiJjb25zZW50X2V2ZW50X2lkIix2ZjoiY29uc2VudF9wcmlvcml0eV9pZCIsU3Q6ImNvbnNlbnRfc3RhdGUiLHNhOiJjb25zZW50X3VwZGF0ZWQiLHdmOiJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIixUdDoiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCIsR2E6ImNvb2tpZV9vcHRpb25zIixvbDoiZGNfcmFuZG9tIixadDoiZGVkdXBlX2lkIixQYzoiZW1fZXZlbnQiLGJ1OiJlbmRwb2ludF9mb3JfZGVidWciLHRsOiJlbmhhbmNlZF9jbGllbnRfaWRfc291cmNlIiwKcHA6ImVuaGFuY2VkX21hdGNoX3Jlc3VsdCIscm06ImV1aWRfbG9nZ2VkX2luX3N0YXRlIixsZzoiZXVpZF9tb2RlX2VuYWJsZWQiLHRxOiJldmVudF9wcm92ZW5hbmNlIixtdToiZXZlbnRfc291cmNlIixFYjoiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIix3bToiZXZlbnRfdXNhZ2UiLENoOiJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiLHB1OiJhZGRfcGFyYW1ldGVyIixVaToiY291bnRpbmdfbWV0aG9kIixEaDoic2VuZF9hc19pZnJhbWUiLHF1OiJwYXJhbWV0ZXJfb3JkZXIiLEVoOiJwYXJzZWRfdGFyZ2V0IixzdToiZm9ybV9ldmVudF9jYW5jZWxlZCIsQXE6ImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiIsVmk6ImdhNF9yZXF1ZXN0X2ZsYWdzIixObToiZ2JyYWlkX2Nvb2tpZV9tYXJrZWQiLFFtOiJndG1fZXh0cmFjdGVkX2RhdGEiLENjOiJoYW5kbGVfaW50ZXJuYWxseSIsdXU6Imhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIixkYToiaGl0X3R5cGUiLERjOiJoaXRfdHlwZV9vdmVycmlkZSIsCkhxOiJpZ25vcmVfZHVwZV9jb25maWciLE91OiJpc19jb25maWdfY29tbWFuZCIsR2g6ImlzX2NvbnNlbnRfdXBkYXRlIixtZzoiaXNfY29udmVyc2lvbiIsV206ImlzX2Vjb21tZXJjZSIsWG06ImlzX2VjX2NtX3NwbGl0IixhZToiaXNfZXh0ZXJuYWxfZXZlbnQiLG5nOiJpc19maXJzdF92aXNpdCIsWW06ImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iLFppOiJpc19mbF9mYWxsYmFja19jb252ZXJzaW9uX2Zsb3dfYWxsb3dlZCIsZmQ6ImlzX2ZwbV9lbmNyeXB0aW9uIixhajoiaXNfZnBtX3NwbGl0IixvYjoiaXNfZ2NwX2Jyb3dzZXIiLGJqOiJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCIsY2o6ImlzX2dvb2dsZV9zaWduYWxzX2VuYWJsZWQiLGJlOiJpc19tZXJjaGFudF9jZW50ZXIiLEhoOiJpc19uZXdfdG9fc2l0ZSIsRWM6ImlzX3BlcnNvbmFsaXphdGlvbiIsZGo6ImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIixUZToiaXNfc2Vzc2lvbl9zdGFydCIsYm46ImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiIsClB1OiJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiLFF1OiJpc19zZ3RtX3ByZWhpdCIsZG46ImlzX3NndG1fc2VydmljZV93b3JrZXIiLEloOiJpc19zcGxpdF9jb252ZXJzaW9uIixJcToiaXNfc3luIixGYzoiaXNfdGVzdF9ldmVudCIsb2c6ImpvaW5faWQiLGVqOiJqb2luX2VsYXBzZWQiLHBnOiJqb2luX3RpbWVyX3NlYyIsZ246ImxvY2FsX3N0b3JhZ2VfYXdfY29udmVyc2lvbl9jb3VudGVycyIsV2U6InR1bm5lbF91cGRhdGVkIixVdToicHJlaGl0X2Zvcl9yZXRyeSIsV3U6InByb21pc2VzIixYdToicmVjb3JkX2F3X2xhdGVuY3kiLFhlOiJyZWRhY3RfYWRzX2RhdGEiLFllOiJyZWRhY3RfY2xpY2tfaWRzIixwbjoicmVtYXJrZXRpbmdfb25seSIsbGo6InNlbmRfY2NtX3BhcmFsbGVsX3BpbmciLGhkOiJzZW5kX2RvdWJsZWNsaWNrX2pvaW4iLE1oOiJzZW5kX2ZwbV9nZW9fam9pbiIsTmg6InNlbmRfZnBtX2dvb2dsZV9qb2luIixadToic2VuZF9jY21fcGFyYWxsZWxfdGVzdF9waW5nIiwKcm46InNlbmRfZ29vZ2xlX21lYXN1cmVtZW50IixyZzoic2VuZF90bGRfam9pbiIsc2c6InNlbmRfdG9fZGVzdGluYXRpb25zIixtajoic2VuZF90b190YXJnZXRzIixzbjoic2VuZF91c2VyX2RhdGFfaGl0Iixwajoic2VydmljZV93b3JrZXJfY29udGV4dCIsTmI6InNvdXJjZV9jYW5vbmljYWxfaWQiLEphOiJzcGVjdWxhdGl2ZSIseW46InNwZWN1bGF0aXZlX2luX21lc3NhZ2UiLEFuOiJzdXBwcmVzc19zY3JpcHRfbG9hZCIsQm46InN5bl9vcl9tb2QiLHpqOiJ0cmFuc2llbnRfZWNzaWQiLHRnOiJ0cmFuc21pc3Npb25fdHlwZSIsWWE6InVzZXJfZGF0YSIsZ3Y6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyIsaHY6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiLEduOiJ1c2VyX2RhdGFfZnJvbV9jb2RlIixpcjoidXNlcl9kYXRhX2Zyb21fbWFudWFsIixqdjoidXNlcl9kYXRhX21vZGUiLHVnOiJ1c2VyX2lkX3VwZGF0ZWQifX07CnZhciB0Zz1mdW5jdGlvbihhKXt2YXIgYj17fSxjPTA7R2IoYSxmdW5jdGlvbihlLGYpe2lmKGYhPW51bGwpe3ZhciBnPSgiIitmKS5yZXBsYWNlKC9+L2csIn5+Iik7aWYocWcuaGFzT3duUHJvcGVydHkoZSkpYltxZ1tlXV09ZztlbHNlIGlmKHJnLmhhc093blByb3BlcnR5KGUpKXt2YXIgaD1yZ1tlXTtiLmhhc093blByb3BlcnR5KGgpfHwoYltoXT1nKX1lbHNlIGlmKGU9PT0iY2F0ZWdvcnkiKWZvcih2YXIgbD1nLnNwbGl0KCIvIiw1KSxuPTA7bjxsLmxlbmd0aDtuKyspe3ZhciBwPWIscT1zZ1tuXSxyPWxbbl07cC5oYXNPd25Qcm9wZXJ0eShxKXx8KHBbcV09cil9ZWxzZSBpZihjPDI3KXt2YXIgdD1TdHJpbmcuZnJvbUNoYXJDb2RlKGM8MTA/NDgrYzo2NStjLTEwKTtiWyJrIit0XT0oIiIrU3RyaW5nKGUpKS5yZXBsYWNlKC9+L2csIn5+Iik7YlsidiIrdF09ZztjKyt9fX0pO3ZhciBkPVtdO0diKGIsZnVuY3Rpb24oZSxmKXtkLnB1c2goIiIrZStmKX0pO3JldHVybiBkLmpvaW4oIn4iKX0sCnFnPXtpdGVtX2lkOiJpZCIsaXRlbV9uYW1lOiJubSIsaXRlbV9icmFuZDoiYnIiLGl0ZW1fY2F0ZWdvcnk6ImNhIixpdGVtX2NhdGVnb3J5MjoiYzIiLGl0ZW1fY2F0ZWdvcnkzOiJjMyIsaXRlbV9jYXRlZ29yeTQ6ImM0IixpdGVtX2NhdGVnb3J5NToiYzUiLGl0ZW1fdmFyaWFudDoidmEiLHByaWNlOiJwciIscXVhbnRpdHk6InF0Iixjb3Vwb246ImNwIixpdGVtX2xpc3RfbmFtZToibG4iLGluZGV4OiJscCIsaXRlbV9saXN0X2lkOiJsaSIsZGlzY291bnQ6ImRzIixhZmZpbGlhdGlvbjoiYWYiLHByb21vdGlvbl9pZDoicGkiLHByb21vdGlvbl9uYW1lOiJwbiIsY3JlYXRpdmVfbmFtZToiY24iLGNyZWF0aXZlX3Nsb3Q6ImNzIixsb2NhdGlvbl9pZDoibG8ifSxyZz17aWQ6ImlkIixuYW1lOiJubSIsYnJhbmQ6ImJyIix2YXJpYW50OiJ2YSIsbGlzdF9uYW1lOiJsbiIsbGlzdF9wb3NpdGlvbjoibHAiLGxpc3Q6ImxuIixwb3NpdGlvbjoibHAiLGNyZWF0aXZlOiJjbiJ9LHNnPVsiY2EiLAoiYzIiLCJjMyIsImM0IiwiYzUiXTt2YXIgdWc9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpKX0pO3JldHVybiBiLmpvaW4oIiYiKX0sdmc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt0aGlzLmJhc2VVcmw9Yjt0aGlzLmVuZHBvaW50PWM7dGhpcy5kZXN0aW5hdGlvbklkPWY7dGhpcy5ldmVudElkPWc7dGhpcy5wcmlvcml0eUlkPWg7dGhpcy5CYT1hLkJhO3RoaXMudmU9YS52ZTt0aGlzLkxqPWEuTGo7dGhpcy5OPWQ7dGhpcy5LPXVnKGEuQmEpO3RoaXMuSD11ZyhhLkxqKTt0aGlzLlI9dGhpcy5ILmxlbmd0aDtpZihlJiZ0aGlzLlI+MTYzODQpdGhyb3cgRXJyb3IoIkVWRU5UX1RPT19MQVJHRSIpO307CnZhciB3Zz1mdW5jdGlvbigpe3RoaXMuZXZlbnRzPVtdO3RoaXMuSD0iIjt0aGlzLkJhPXt9O3RoaXMuYmFzZVVybD0iIjt0aGlzLk49MDt0aGlzLks9MTt0aGlzLmVuZHBvaW50PTB9O3dnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuUihhKT8odGhpcy5ldmVudHMucHVzaChhKSx0aGlzLkg9YS5LLHRoaXMuQmE9YS5CYSx0aGlzLmJhc2VVcmw9YS5iYXNlVXJsLHRoaXMuTis9YS5SLHRoaXMuSz1hLk4sdGhpcy5lbmRwb2ludD1hLmVuZHBvaW50LHRoaXMuZGVzdGluYXRpb25JZD1hLmRlc3RpbmF0aW9uSWQsdGhpcy5aPWEuZXZlbnRJZCx0aGlzLmZhPWEucHJpb3JpdHlJZCwhMCk6ITF9O3dnLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmV2ZW50cy5sZW5ndGg/dGhpcy5ldmVudHMubGVuZ3RoPj0yMHx8YS5SK3RoaXMuTj49MTYzODQ/ITE6dGhpcy5iYXNlVXJsPT09YS5iYXNlVXJsJiZ0aGlzLks9PT1hLk4mJnRoaXMuamEoYSk6ITB9Owp3Zy5wcm90b3R5cGUuamE9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSD09PWEuS307dmFyIEo9e1U6e2twOjEsbXA6MixFbjozLG5uOjQscWw6NSxybDo2LEVxOjcsbnA6OCxEcTo5LGpwOjEwLGhwOjExLHhuOjEyLHZuOjEzLE5rOjE0LFVvOjE1LFdvOjE2LGhuOjE3LHNsOjE4LGZuOjE5LGxwOjIwLFBxOjIxLGFwOjIyLFZvOjIzLFhvOjI0LG5sOjI1LExrOjI2LGVyOjI3LEptOjI4LFVtOjI5LFRtOjMwLFNtOjMxLE1tOjMyLEttOjMzLExtOjM0LEdtOjM1LEZtOjM2LEhtOjM3LEltOjM4LEJxOjM5LENxOjQwLFVxOjQxfX07Si5VW0ouVS5rcF09IkNSRUFURV9FVkVOVF9TT1VSQ0UiO0ouVVtKLlUubXBdPSJFRElUX0VWRU5UIjtKLlVbSi5VLkVuXT0iVFJBRkZJQ19UWVBFIjtKLlVbSi5VLm5uXT0iUkVGRVJSQUxfRVhDTFVTSU9OIjtKLlVbSi5VLnFsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1RBRyI7Si5VW0ouVS5ybF09IkVDT01NRVJDRV9GUk9NX0dUTV9VQV9TQ0hFTUEiO0ouVVtKLlUuRXFdPSJHQV9TRU5EIjtKLlVbSi5VLm5wXT0iRU1fRk9STSI7CkouVVtKLlUuRHFdPSJHQV9HQU1fTElOSyI7Si5VW0ouVS5qcF09IkNSRUFURV9FVkVOVF9BVVRPX1BBR0VfUEFUSCI7Si5VW0ouVS5ocF09IkNSRUFURURfRVZFTlQiO0ouVVtKLlUueG5dPSJTSURFTE9BREVEIjtKLlVbSi5VLnZuXT0iU0dUTV9MRUdBQ1lfQ09ORklHVVJBVElPTiI7Si5VW0ouVS5Oa109IkNDRF9FTV9FVkVOVCI7Si5VW0ouVS5Vb109IkFVVE9fUkVEQUNUX0VNQUlMIjtKLlVbSi5VLldvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU0iO0ouVVtKLlUuaG5dPSJNVUxUSVBMRV9QQUdFVklFV19GUk9NX0NPTkZJRyI7Si5VW0ouVS5zbF09IkVNX0VWRU5UX1NFTlRfQkVGT1JFX0NPTkZJRyI7Si5VW0ouVS5mbl09IkxPQURFRF9WSUFfQ1NUX09SX1NJREVMT0FESU5HIjtKLlVbSi5VLmxwXT0iREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5QcV09Ik5PTl9ERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLmFwXT0iQ0NEX0VWRU5UX1NHVE0iOwpKLlVbSi5VLlZvXT0iQVVUT19SRURBQ1RfRU1BSUxfU0dUTSI7Si5VW0ouVS5Yb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNX1NHVE0iO0ouVVtKLlUubmxdPSJEQUlMWV9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLkxrXT0iQlVSU1RfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5lcl09IlNIQVJFRF9VU0VSX0lEX1NFVF9BRlRFUl9SRVFVRVNUIjtKLlVbSi5VLkptXT0iR0E0X01VTFRJUExFX1NFU1NJT05fQ09PS0lFUyI7Si5VW0ouVS5VbV09IklOVkFMSURfR0E0X1NFU1NJT05fQ09VTlQiO0ouVVtKLlUuVG1dPSJJTlZBTElEX0dBNF9MQVNUX0VWRU5UX1RJTUVTVEFNUCI7Si5VW0ouVS5TbV09IklOVkFMSURfR0E0X0pPSU5fVElNRVIiO0ouVVtKLlUuTW1dPSJHQTRfU1RBTEVfU0VTU0lPTl9DT09LSUVfU0VMRUNURUQiO0ouVVtKLlUuS21dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MxX1JFQUQiO0ouVVtKLlUuTG1dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MyX1JFQUQiOwpKLlVbSi5VLkdtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FWQUlMQUJMRSI7Si5VW0ouVS5GbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BUFBMSUVEIjtKLlVbSi5VLkhtXT0iR0E0X0dPT0dMRV9NRUFTVVJFTUVOVF9BTExPV0VEIjtKLlVbSi5VLkltXT0iR0E0X0dPT0dMRV9TSUdOQUxTX0VOQUJMRUQiO0ouVVtKLlUuQnFdPSJHQTRfRkFMTEJBQ0tfUkVRVUVTVCI7Si5VW0ouVS5DcV09IkdBX0FEU19MSU5LX0JFRk9SRV9DT05WRVJTSU9OX01BUktJTkciO0ouVVtKLlUuVXFdPSJQTEFUSU5VTV9FTElHSUJMRSI7dmFyIHhnPXt9LHlnPSh4Zy51YWE9ITAseGcudWFiPSEwLHhnLnVhZnZsPSEwLHhnLnVhbWI9ITAseGcudWFtPSEwLHhnLnVhcD0hMCx4Zy51YXB2PSEwLHhnLnVhdz0hMCx4Zyk7CnZhciBCZz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZXZlbnRzO2lmKGMubGVuZ3RoPT09MSlyZXR1cm4gemcoY1swXSxiKTt2YXIgZD1bXTthLkgmJmQucHVzaChhLkgpO2Zvcih2YXIgZT17fSxmPTA7ZjxjLmxlbmd0aDtmKyspR2IoY1tmXS52ZSxmdW5jdGlvbih0LHUpe3UhPW51bGwmJihlW3RdPWVbdF18fHt9LGVbdF1bU3RyaW5nKHUpXT1lW3RdW1N0cmluZyh1KV0rMXx8MSl9KTt2YXIgZz17fTtHYihlLGZ1bmN0aW9uKHQsdSl7dmFyIHYseD0tMSx5PTA7R2IodSxmdW5jdGlvbih6LEMpe3krPUM7dmFyIEQ9KHoubGVuZ3RoK3QubGVuZ3RoKzIpKihDLTEpO0Q+eCYmKHY9eix4PUQpfSk7eT09PWMubGVuZ3RoJiYoZ1t0XT12KX0pO0FnKGcsZCk7YiYmZC5wdXNoKCJfcz0iK2IpO2Zvcih2YXIgaD1kLmpvaW4oIiYiKSxsPVtdLG49e30scD0wO3A8Yy5sZW5ndGg7bj17Zms6dm9pZCAwfSxwKyspe3ZhciBxPVtdO24uZms9e307R2IoY1twXS52ZSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odSwKdil7Z1t1XSE9PSIiK3YmJih0LmZrW3VdPXYpfX0obikpO2NbcF0uSCYmcS5wdXNoKGNbcF0uSCk7QWcobi5mayxxKTtsLnB1c2gocS5qb2luKCImIikpfXZhciByPWwuam9pbigiXHJcbiIpO3JldHVybntwYXJhbXM6aCxib2R5OnJ9fSx6Zz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2EuSyYmYy5wdXNoKGEuSyk7YiYmYy5wdXNoKCJfcz0iK2IpO0FnKGEudmUsYyk7dmFyIGQ9ITE7YS5IJiYoYy5wdXNoKGEuSCksZD0hMCk7dmFyIGU9Yy5qb2luKCImIiksZj0iIixnPWUubGVuZ3RoK2EuYmFzZVVybC5sZW5ndGgrMTtkJiZnPjIwNDgmJihmPWMucG9wKCksZT1jLmpvaW4oIiYiKSk7cmV0dXJue3BhcmFtczplLGJvZHk6Zn19LEFnPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChkKSl9KX07CnZhciBFZz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1hLGU9YltjXTtpZighQ2cuZXhlYyhlKSl0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgd2lsZGNhcmQiKTt2YXIgZj1lLmluZGV4T2YoIi4qIiksZz1mIT09LTEmJmY9PT1lLmxlbmd0aC0yLGg9Zz9lLnNsaWNlKDAsZS5sZW5ndGgtMik6ZSxsO2E6aWYoZC5sZW5ndGg9PT0wKWw9ITE7ZWxzZXtmb3IodmFyIG49ZC5zcGxpdCgiLiIpLHA9MDtwPG4ubGVuZ3RoO3ArKylpZighRGcuZXhlYyhuW3BdKSl7bD0hMTticmVhayBhfWw9ITB9aWYoIWx8fGgubGVuZ3RoPmQubGVuZ3RofHwhZyYmZC5sZW5ndGghPT1lLmxlbmd0aD8wOmc/U2IoZCxoKSYmKGQ9PT1ofHxkLmNoYXJBdChoLmxlbmd0aCk9PT0iLiIpOmQ9PT1oKXJldHVybiEwfXJldHVybiExfSxEZz0vXlthLXokX11bXHctJF0qJC9pLENnPS9eKD86W2Etel8kXVthLXotXyQwLTldKlwuKSpbYS16XyRdW2Etei1fJDAtOV0qKD86XC5cKik/JC9pOwp2YXIgRmc9WyJtYXRjaGVzIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwibXNNYXRjaGVzU2VsZWN0b3IiLCJvTWF0Y2hlc1NlbGVjdG9yIl07ZnVuY3Rpb24gR2coYSxiKXtpZighYSlyZXR1cm4hMTt0cnl7Zm9yKHZhciBjPTA7YzxGZy5sZW5ndGg7YysrKXt2YXIgZD1GZ1tjXTtpZihhW2RdIT1udWxsKXJldHVybiBhW2RdKGIpfX1jYXRjaChlKXt9cmV0dXJuITF9ZnVuY3Rpb24gSGcoYSxiKXt2YXIgYz1TdHJpbmcoYSksZD1TdHJpbmcoYiksZT1jLmxlbmd0aC1kLmxlbmd0aDtyZXR1cm4gZT49MCYmYy5pbmRleE9mKGQsZSk9PT1lfWZ1bmN0aW9uIElnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5zcGxpdCgiLCIpLmluZGV4T2YoU3RyaW5nKGIpKT49MH0KZnVuY3Rpb24gSmcoYSxiLGMsZCl7dmFyIGU9Yz8iaSI6dm9pZCAwO3RyeXt2YXIgZj1TdHJpbmcoYikrU3RyaW5nKGUpLGc9ZD09bnVsbD92b2lkIDA6ZC5nZXQoZik7Z3x8KGc9bmV3IFJlZ0V4cChiLGUpLGQ9PW51bGx8fGQuc2V0KGYsZykpO3JldHVybiBnLnRlc3QoYSl9Y2F0Y2goaCl7cmV0dXJuITF9fWZ1bmN0aW9uIEtnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9ZnVuY3Rpb24gTGcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpPT09U3RyaW5nKGIpfWZ1bmN0aW9uIE1nKGEsYil7cmV0dXJuIE51bWJlcihhKT49TnVtYmVyKGIpfWZ1bmN0aW9uIE5nKGEsYil7cmV0dXJuIE51bWJlcihhKTw9TnVtYmVyKGIpfWZ1bmN0aW9uIE9nKGEsYil7cmV0dXJuIE51bWJlcihhKT5OdW1iZXIoYil9ZnVuY3Rpb24gUGcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPE51bWJlcihiKX0KZnVuY3Rpb24gUWcoYSxiKXtyZXR1cm4gU2IoU3RyaW5nKGEpLFN0cmluZyhiKSl9O2Z1bmN0aW9uIFhnKGEpe3ZhciBiPWEuc2VhcmNoO3JldHVybiBhLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZSthLnBhdGhuYW1lKyhiP2IrIiZyaWNoc3N0c3NlIjoiP3JpY2hzc3Rzc2UiKX07dmFyIFlnPWZ1bmN0aW9uKCl7dGhpcy5SPSIifSwkZz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPWIuZmFsbGJhY2tfdXJsLGQ9Yi5mYWxsYmFja191cmxfbWV0aG9kO2lmKGMmJmQpe3ZhciBlPXt9O1pnKGEsKGVbZF09W2NdLGUub3B0aW9ucz17fSxlKSl9fX0sYWg9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7dHlwZW9mIGY9PT0ic3RyaW5nIiYmYyhmLGIpfX0sWmc9ZnVuY3Rpb24oYSxiKXtpZihiKWZvcih2YXIgYz1DZChiLm9wdGlvbnMpP2Iub3B0aW9uczp7fSxkPW0oT2JqZWN0LmtleXMoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9YltmXTtzd2l0Y2goZil7Y2FzZSAic2VuZF9waXhlbCI6YWgoZyxjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5LKGgsbCl9KTticmVhaztjYXNlICJmZXRjaCI6YWgoZywKYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSChoLGwpfSl9fX07dmFyIGJoPS9eKFthLXpdW2EtejAtOV0qKTooIXxcPykoXCp8c3RyaW5nfGJvb2xlYW58bnVtYmVyfEZufFBpeGllTWFwfExpc3R8T3BhcXVlVmFsdWUpJC9pLGNoPXtGbjoiZnVuY3Rpb24iLFBpeGllTWFwOiJPYmplY3QiLExpc3Q6IkFycmF5In07CmZ1bmN0aW9uIGRoKGEsYil7Zm9yKHZhciBjPVsiaW5wdXQ6ISoiXSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWJoLmV4ZWMoY1tkXSk7aWYoIWUpdGhyb3cgRXJyb3IoIkludGVybmFsIEVycm9yIGluICIrYSk7dmFyIGY9ZVsxXSxnPWVbMl09PT0iISIsaD1lWzNdLGw9YltkXTtpZihsPT1udWxsKXtpZihnKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gUmVxdWlyZWQgYXJndW1lbnQgIitmKyIgbm90IHN1cHBsaWVkLiIpO31lbHNlIGlmKGghPT0iKiIpe3ZhciBuPXR5cGVvZiBsO2wgaW5zdGFuY2VvZiBLZD9uPSJGbiI6bCBpbnN0YW5jZW9mIEdkP249Ikxpc3QiOmwgaW5zdGFuY2VvZiBrYj9uPSJQaXhpZU1hcCI6bCBpbnN0YW5jZW9mIFNkP249IlBpeGllUHJvbWlzZSI6bCBpbnN0YW5jZW9mIFBkJiYobj0iT3BhcXVlVmFsdWUiKTtpZihuIT09aCl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIEFyZ3VtZW50ICIrZisiIGhhcyB0eXBlICIrKChjaFtuXXx8bikrIiwgd2hpY2ggZG9lcyBub3QgbWF0Y2ggcmVxdWlyZWQgdHlwZSAiKSsKKChjaFtoXXx8aCkrIi4iKSk7fX19ZnVuY3Rpb24gSyhhLGIsYyl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIGluc3RhbmNlb2YgS2Q/ZC5wdXNoKCJmdW5jdGlvbiIpOmcgaW5zdGFuY2VvZiBHZD9kLnB1c2goIkFycmF5Iik6ZyBpbnN0YW5jZW9mIGtiP2QucHVzaCgiT2JqZWN0Iik6ZyBpbnN0YW5jZW9mIFNkP2QucHVzaCgiUHJvbWlzZSIpOmcgaW5zdGFuY2VvZiBQZD9kLnB1c2goIk9wYXF1ZVZhbHVlIik6ZC5wdXNoKHR5cGVvZiBnKX1yZXR1cm4gRXJyb3IoIkFyZ3VtZW50IGVycm9yIGluICIrYSsiLiBFeHBlY3RlZCBhcmd1bWVudCB0eXBlcyBbIisoYi5qb2luKCIsIikrIl0sIGJ1dCByZWNlaXZlZCBbIikrKGQuam9pbigiLCIpKyJdLiIpKX1mdW5jdGlvbiBlaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGtifWZ1bmN0aW9uIGZoKGEpe3JldHVybiBlaChhKXx8YT09PW51bGx8fGdoKGEpfQpmdW5jdGlvbiBoaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEtkfWZ1bmN0aW9uIGloKGEpe3JldHVybiBoaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIGpoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgR2R9ZnVuY3Rpb24ga2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBQZH1mdW5jdGlvbiBsaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBtaChhKXtyZXR1cm4gbGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBuaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9ZnVuY3Rpb24gb2goYSl7cmV0dXJuIG5oKGEpfHxnaChhKX1mdW5jdGlvbiBwaChhKXtyZXR1cm4gbmgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBxaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn1mdW5jdGlvbiBnaChhKXtyZXR1cm4gYT09PXZvaWQgMH07ZnVuY3Rpb24gcmgoYSl7cmV0dXJuIiIrYX0KZnVuY3Rpb24gc2goYSxiKXt2YXIgYz1bXTtyZXR1cm4gY307ZnVuY3Rpb24gdGgoYSxiKXt2YXIgYz1uZXcgS2QoYSxmdW5jdGlvbigpe2Zvcih2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCksZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV09dGhpcy5ldmFsdWF0ZShkW2VdKTt0cnl7cmV0dXJuIGIuYXBwbHkodGhpcyxkKX1jYXRjaChnKXt0aHJvdyBjYihnKTt9fSk7Yy5aYSgpO3JldHVybiBjfQpmdW5jdGlvbiB1aChhLGIpe3ZhciBjPW5ldyBrYixkO2ZvcihkIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9YltkXTt5YihlKT9jLnNldChkLHRoKGErIl8iK2QsZSkpOkNkKGUpP2Muc2V0KGQsdWgoYSsiXyIrZCxlKSk6KEFiKGUpfHx6YihlKXx8dHlwZW9mIGU9PT0iYm9vbGVhbiIpJiZjLnNldChkLGUpfWMuWmEoKTtyZXR1cm4gY307ZnVuY3Rpb24gd2goYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRBcGlTdWJqZWN0IiwKYyl9O2Z1bmN0aW9uIHhoKGEsYil7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBTZCl0aHJvdyBFcnJvcigiQXJndW1lbnQgYWN0dWFsIGNhbm5vdCBoYXZlIHR5cGUgUHJvbWlzZS4gQXNzZXJ0aW9ucyBvbiBhc3luY2hyb25vdXMgY29kZSBhcmVuJ3Qgc3VwcG9ydGVkLiIpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRUaGF0U3ViamVjdCIsYyl9O2Z1bmN0aW9uIHloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj1PYS5hcHBseSgwLGFyZ3VtZW50cyksYz1bXSxkPXRoaXMuVCxlPTA7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKFRkKGJbZV0sZCkpO3JldHVybiBVZChhLmFwcGx5KG51bGwsYykpfX1mdW5jdGlvbiB6aCgpe2Zvcih2YXIgYT1NYXRoLGI9QWgsYz17fSxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07YS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09eWgoYVtlXS5iaW5kKGEpKSl9cmV0dXJuIGN9O2Z1bmN0aW9uIEJoKGEpe3JldHVybiBhIT1udWxsJiZTYihhLCJfX2N2dF8iKX07ZnVuY3Rpb24gQ2goYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIERoKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYyl7fXJldHVybiBifTtmdW5jdGlvbiBFaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSShhKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBGaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEdoKGEsYil7dmFyIGM9ITE7dmFyIGQ9SlNPTi5wYXJzZShhKTtpZighZCl0aHJvdyBFcnJvcigiSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gc3RyaW5nIHdhcyBnaXZlbi4iKTtjPUhoKGQsYik7cmV0dXJuIGN9CnZhciBJaD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXtpZihhPT09dm9pZCAwKXJldHVybjthPWFbYltjXV19cmV0dXJuIGF9LEpoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wcmVIaXQ7aWYoYyl7dmFyIGQ9YVswXTtzd2l0Y2goZCl7Y2FzZSAiaGl0RGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0SGl0RGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJtZXRhZGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0TWV0YWRhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAiZXZlbnROYW1lIjpyZXR1cm4gYy5nZXRFdmVudE5hbWUoKTtjYXNlICJkZXN0aW5hdGlvbklkIjpyZXR1cm4gYy5nZXREZXN0aW5hdGlvbklkKCk7ZGVmYXVsdDp0aHJvdyBFcnJvcihkKyIgaXMgbm90IGEgdmFsaWQgZmllbGQgdGhhdCBjYW4gYmUgYWNjZXNzZWRcbiAgICAgICAgICAgICAgICAgICAgICBmcm9tIFByZUhpdCBkYXRhLiIpO319fSwKS2g9ZnVuY3Rpb24oYSxiKXtpZihhKXtpZihhLmNvbnRleHRWYWx1ZSE9PXZvaWQgMCl7dmFyIGM7YTp7dmFyIGQ9YS5jb250ZXh0VmFsdWUsZT1kLmtleVBhcnRzO2lmKGUmJmUubGVuZ3RoIT09MCl7dmFyIGY9ZC5uYW1lc3BhY2VUeXBlO3N3aXRjaChmKXtjYXNlIDE6Yz1KaChlLGIpO2JyZWFrIGE7Y2FzZSAyOnZhciBnPWIubWFjcm87Yz1nP2dbZVswXV06dm9pZCAwO2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2UgVHlwZSB1c2VkOiAiK2YpO319Yz12b2lkIDB9cmV0dXJuIGN9aWYoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlIT09dm9pZCAwKXJldHVybiBIaChhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUsYik7aWYoYS5ib29sZWFuVmFsdWUhPT12b2lkIDApcmV0dXJuISFhLmJvb2xlYW5WYWx1ZTtpZihhLnN0cmluZ1ZhbHVlIT09dm9pZCAwKXJldHVybiBTdHJpbmcoYS5zdHJpbmdWYWx1ZSk7aWYoYS5pbnRlZ2VyVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmludGVnZXJWYWx1ZSk7CmlmKGEuZG91YmxlVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmRvdWJsZVZhbHVlKTt0aHJvdyBFcnJvcigiVW5rbm93biBmaWVsZCB1c2VkIGZvciB2YXJpYWJsZSBvZiB0eXBlIEV4cHJlc3Npb25WYWx1ZToiK2EpO319LEhoPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5hcmdzO2lmKCFBcnJheS5pc0FycmF5KGMpfHxjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgImFyZ3MiOicrYysiIHByb3BlcnR5IHRvXG4gICAgICAgICBiZSBub24tZW1wdHkgYXJyYXkuIik7dmFyIGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEtoKGcsYil9O3N3aXRjaChhLnR5cGUpe2Nhc2UgMTpmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKylpZihkKGNbZV0pKXJldHVybiEwO3JldHVybiExO2Nhc2UgMjpmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKylpZighZChjW2ZdKSlyZXR1cm4hMTtyZXR1cm4gYy5sZW5ndGg+MDtjYXNlIDM6cmV0dXJuIWQoY1swXSk7CmNhc2UgNDpyZXR1cm4gSmcoZChjWzBdKSxkKGNbMV0pLCExLGIucmVnZXhDYWNoZSk7Y2FzZSA1OnJldHVybiBMZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNjpyZXR1cm4gUWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDc6cmV0dXJuIEhnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA4OnJldHVybiBLZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgOTpyZXR1cm4gUGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEwOnJldHVybiBOZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTE6cmV0dXJuIE9nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMjpyZXR1cm4gTWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEzOnJldHVybiBJZyhkKGNbMF0pLFN0cmluZyhkKGNbMV0pKSk7ZGVmYXVsdDp0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAidHlwZSIgcHJvcGVydHkgdG9iZSBhIHBvc2l0aXZlIGludGVnZXIgd2hpY2ggaXMgbGVzcyB0aGFuIDE0LicpO319OwpmdW5jdGlvbiBMaChhKXtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO307ZnVuY3Rpb24gTWgoYSl7dmFyIGI9VGQoYSk7cmV0dXJuIG5nKGI/IiIrYjoiIil9O2Z1bmN0aW9uIE5oKGEsYil7aWYoIXFoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciIsIm51bWJlciJdLGFyZ3VtZW50cyk7cmV0dXJuIERiKGEsYil9O2Z1bmN0aW9uIE9oKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O2Z1bmN0aW9uIFBoKGEpe2lmKGE9PT1udWxsKXJldHVybiJudWxsIjtpZihhIGluc3RhbmNlb2YgR2QpcmV0dXJuImFycmF5IjtpZihhIGluc3RhbmNlb2YgS2QpcmV0dXJuImZ1bmN0aW9uIjtpZihhIGluc3RhbmNlb2YgUGQpe3ZhciBiPWEuZ2V0VmFsdWUoKTtpZigoYj09bnVsbD92b2lkIDA6Yi5jb25zdHJ1Y3Rvcik9PT12b2lkIDB8fGIuY29uc3RydWN0b3IubmFtZT09PXZvaWQgMCl7dmFyIGM9U3RyaW5nKGIpO3JldHVybiBjLnN1YnN0cmluZyg4LGMubGVuZ3RoLTEpfXJldHVybiBTdHJpbmcoYi5jb25zdHJ1Y3Rvci5uYW1lKX1yZXR1cm4gdHlwZW9mIGF9O2Z1bmN0aW9uIFFoKGEpe2Z1bmN0aW9uIGIoYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RyeXtyZXR1cm4gYyhkKX1jYXRjaChlKXsobGd8fG1nLlBvKSYmYS5jYWxsKHRoaXMsZS5tZXNzYWdlKX19fXJldHVybntwYXJzZTpiKGZ1bmN0aW9uKGMpe3JldHVybiBVZChKU09OLnBhcnNlKGMpKX0pLHN0cmluZ2lmeTpiKGZ1bmN0aW9uKGMpe3JldHVybiBKU09OLnN0cmluZ2lmeShUZChjKSl9KSxwdWJsaWNOYW1lOiJKU09OIn19O2Z1bmN0aW9uIFJoKGEpe3JldHVybiBJYihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBTaChhKXtyZXR1cm4gTnVtYmVyKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFRoKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIFVoKGEsYixjKXt2YXIgZD1udWxsLGU9ITE7cmV0dXJuIGU/ZDpudWxsfTt2YXIgQWg9ImZsb29yIGNlaWwgcm91bmQgbWF4IG1pbiBhYnMgcG93IHNxcnQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gVmgoKXt2YXIgYT17fTtyZXR1cm57V3I6ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoYik/YVtiXTp2b2lkIDB9LEtvOmZ1bmN0aW9uKGIsYyl7YVtiXT1jfSxyZXNldDpmdW5jdGlvbigpe2E9e319fX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBLZC5wcm90b3R5cGUuaW52b2tlLmFwcGx5KGEsW2JdLmNvbmNhdCh3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpKX19CmZ1bmN0aW9uIFhoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO30KZnVuY3Rpb24gWWgoYSxiKXtpZighbGgoYSl8fCFlaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiUGl4aWVNYXAiXSxhcmd1bWVudHMpO307dmFyIFpoPXt9O3ZhciAkaD1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7aWYoYSBpbnN0YW5jZW9mIEdkKWZvcih2YXIgYz1hLkZhKCksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2EuaGFzKGUpJiZiLnNldChlLGEuZ2V0KGUpKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBLZClmb3IodmFyIGY9YS5GYSgpLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZltnXTtiLnNldChoLGEuZ2V0KGgpKX1lbHNlIGZvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKWIuc2V0KGwsYVtsXSk7cmV0dXJuIGJ9OwpaaC5rZXlzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuRmEoKSk7cmV0dXJuIG5ldyBHZH07ClpoLnZhbHVlcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmhjKCkpO3JldHVybiBuZXcgR2R9OwpaaC5lbnRyaWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuZmMoKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBHZChiKX0pKTtyZXR1cm4gbmV3IEdkfTsKWmguZnJlZXplPWZ1bmN0aW9uKGEpeyhhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2QpJiZhLlphKCk7cmV0dXJuIGF9O1poLmRlbGV0ZT1mdW5jdGlvbihhLGIpe2lmKGEgaW5zdGFuY2VvZiBrYiYmIWEuSGIoKSlyZXR1cm4gYS5yZW1vdmUoYiksITA7cmV0dXJuITF9O2Z1bmN0aW9uIEwoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD1hLlQueGIoKTtpZighZCl0aHJvdyBFcnJvcigiTWlzc2luZyBwcm9ncmFtIHN0YXRlLiIpO2lmKGQuaXQpe3RyeXtkLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9Y2F0Y2goZSl7dGhyb3cgc2IoIlRBR0dJTkciLDIxKSxlO31yZXR1cm59ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfTt2YXIgYWk9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj0hMDt9O2FpLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRhaW5zKGEpP3RoaXMuS1thXTp2b2lkIDA7cmV0dXJuIGN9O2FpLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5LLmhhc093blByb3BlcnR5KGEpfTsKYWkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5jb250YWlucyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBmdW5jdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0czogIithKyIuIik7aWYodGhpcy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhbiBBUEkgd2l0aCBhbiBleGlzdGluZyBwcml2YXRlIEFQSSBuYW1lOiAiK2ErIi4iKTt0aGlzLktbYV09Yz92b2lkIDA6eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBiaShhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY307ZnVuY3Rpb24gY2koKXt2YXIgYT17fTsKcmV0dXJuIGF9O3ZhciBkaT17fSxlaT0oZGlbRi5ELnNhXT0iZ2N1IixkaVtGLkQuZWhdPSJlcHQiLGRpW0YuRC5TYl09ImdjbGdiIixkaVtGLkQubGJdPSJnY2xhdyIsZGlbRi5ELnpsXT0iZ2NsaWRfbGVuIixkaVtGLkQuQmVdPSJnY2xncyIsZGlbRi5ELkNlXT0iZ2NsbHAiLGRpW0YuRC5EZV09ImdjbHN0IixkaVtGLkQuRWRdPSJhdWlkIixkaVtGLkQuQmxdPSJhZSIsZGlbRi5ELkNmXT0iZHNjbnQiLGRpW0YuRC5EZl09ImZjbnRyIixkaVtGLkQuRWZdPSJmbG5nIixkaVtGLkQuRmZdPSJtaWQiLGRpW0YuRC53aV09ImJ0dHlwZSIsZGlbRi5ELktiXT0iZ2FjaWQiLGRpW0YuRC5HZF09ImxhYmVsIixkaVtGLkQuRmVdPSJjYXBpIixkaVtGLkQuamhdPSJwc2NkbCIsZGlbRi5ELmViXT0iY3VycmVuY3lfY29kZSIsZGlbRi5ELkdlXT0idmRsdHYiLGRpW0YuRC5raF09ImNsb2N0IixkaVtGLkQuRWxdPSJfZGJnIixkaVtGLkQuSWVdPSJvZWRlbGQiLGRpW0YuRC5WY109ImVkaWQiLGRpW0YuRC5NZF09ImV2bmlkIiwKZGlbRi5ELkVpXT0iZXZqaWQiLGRpW0YuRC5OZF09ImV4Y2lkIixkaVtGLkQucmhdPSJnYWMiLGRpW0YuRC5KZV09ImdhY2diIixkaVtGLkQuTWxdPSJnYWNtY292IixkaVtGLkQuS2VdPSJnZHByIixkaVtGLkQuWGNdPSJnZGlkIixkaVtGLkQuTGVdPSJfbmciLGRpW0YuRC5jcV09Il9vbm8iLGRpW0YuRC50aF09ImdwcF9zaWQiLGRpW0YuRC51aF09ImdwcCIsZGlbRi5ELlBsXT0iZ3NhZXhwIixkaVtGLkQuVmZdPSJfdHUiLGRpW0YuRC5NZV09ImZybSIsZGlbRi5ELktpXT0iZ3RtX3VwIixkaVtGLkQuUGRdPSJscHMiLGRpW0YuRC5MaV09ImRpZCIsZGlbRi5ELlFkXT0iZmNudHIiLGRpW0YuRC5SZF09ImZsbmciLGRpW0YuRC5TZF09Im1pZCIsZGlbRi5ELk5lXT12b2lkIDAsZGlbRi5ELk1iXT0idGliYSIsZGlbRi5ELldiXT0icmRwIixkaVtGLkQueGNdPSJlY3NpZCIsZGlbRi5ELlpmXT0iZ2FfdWlkIixkaVtGLkQuVWRdPSJkZWxvcGMiLGRpW0YuRC5PZV09ImdkcHJfY29uc2VudCIsCmRpW0YuRC5QYV09Im9pZCIsZGlbRi5ELmRtXT0ib2lkc3JjIixkaVtGLkQuZm1dPSJ1cHRncyIsZGlbRi5ELmNnXT0idWFhIixkaVtGLkQuZGddPSJ1YWIiLGRpW0YuRC5lZ109InVhZnZsIixkaVtGLkQuZmddPSJ1YW1iIixkaVtGLkQuZ2ddPSJ1YW0iLGRpW0YuRC5oZ109InVhcCIsZGlbRi5ELmlnXT0idWFwdiIsZGlbRi5ELmpnXT0idWF3IixkaVtGLkQuZ21dPSJlY19sYXQiLGRpW0YuRC5obV09ImVjX21ldGEiLGRpW0YuRC5pbV09ImVjX20iLGRpW0YuRC5qbV09ImVjX3NlbCIsZGlbRi5ELmttXT0iZWNfcyIsZGlbRi5ELkJjXT0iZWNfbW9kZSIsZGlbRi5ELmZiXT0idXNlcklkIixkaVtGLkQua2ddPSJ1c19wcml2YWN5IixkaVtGLkQuUWFdPSJ2YWx1ZSIsZGlbRi5ELnFtXT0ibWNvdiIsZGlbRi5ELldpXT0iaG4iLGRpW0YuRC5WbV09Imd0bV9lZSIsZGlbRi5ELllpXT0idWlwIixkaVtGLkQuSmhdPSJtdCIsZGlbRi5ELmRlXT0ibnBhIixkaVtGLkQuWXFdPSJzZ191YyIsZGlbRi5ELnlpXT0KbnVsbCxkaVtGLkQuYmRdPW51bGwsZGlbRi5ELnRiXT1udWxsLGRpW0YuRC5IYV09bnVsbCxkaVtGLkQuemFdPW51bGwsZGlbRi5ELlVhXT1udWxsLGRpW0YuRC5QZV09bnVsbCxkaVtGLkQuZWRdPW51bGwsZGlbRi5ELnNoXT1udWxsLGRpW0YuRC5CZF09bnVsbCxkaVtGLkQuQ2RdPW51bGwsZGlbRi5ELmZoXT1udWxsLGRpW0YuRC5naF09bnVsbCxkaVtGLkQuVGFdPW51bGwsZGlbRi5ELldjXT1udWxsLGRpKTtmdW5jdGlvbiBmaShhLGIpe2lmKGEpe3ZhciBjPWEuc3BsaXQoIngiKTtjLmxlbmd0aD09PTImJihnaShiLCJ1X3ciLGNbMF0pLGdpKGIsInVfaCIsY1sxXSkpfX1mdW5jdGlvbiBoaShhKXt2YXIgYj1paTtiPWI9PT12b2lkIDA/amk6YjtyZXR1cm4ga2kobGkoYSxiKSl9ZnVuY3Rpb24ga2koYSl7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiIoIitbbWkoYi52YWx1ZSksbWkoYi5xdWFudGl0eSksbWkoYi5pdGVtX2lkKSxtaShiLnN0YXJ0X2RhdGUpLG1pKGIuZW5kX2RhdGUpXS5qb2luKCIqIikrIikifSkuam9pbigiIil9CmZ1bmN0aW9uIGxpKGEsYil7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybntpdGVtX2lkOmIoYykscXVhbnRpdHk6Yy5xdWFudGl0eSx2YWx1ZTpjLnByaWNlLHN0YXJ0X2RhdGU6Yy5zdGFydF9kYXRlLGVuZF9kYXRlOmMuZW5kX2RhdGV9fSl9ZnVuY3Rpb24gamkoYSl7cmV0dXJuW2EuaXRlbV9pZCxhLmlkLGEuaXRlbV9uYW1lXS5maW5kKGZ1bmN0aW9uKGIpe3JldHVybiBiIT1udWxsfSl9ZnVuY3Rpb24gbmkoYSl7aWYoYSYmYS5sZW5ndGgpcmV0dXJuIGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiJiZiLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlP2IuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU6IiJ9KS5qb2luKCIsIil9ZnVuY3Rpb24gZ2koYSxiLGMpe2M9PT12b2lkIDB8fGM9PT1udWxsfHxjPT09IiImJiF5Z1tiXXx8KGFbYl09Yyl9CmZ1bmN0aW9uIG1pKGEpe3JldHVybiB0eXBlb2YgYSE9PSJudW1iZXIiJiZ0eXBlb2YgYSE9PSJzdHJpbmciPyIiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gb2koKXt0aGlzLmJsb2NrU2l6ZT0tMX07ZnVuY3Rpb24gcGkoYSxiKXt0aGlzLmJsb2NrU2l6ZT0tMTt0aGlzLmJsb2NrU2l6ZT02NDt0aGlzLk49UmEuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk6QXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuUj10aGlzLks9MDt0aGlzLkg9W107dGhpcy5mYT1hO3RoaXMuWj1iO3RoaXMuamE9UmEuSW50MzJBcnJheT9uZXcgSW50MzJBcnJheSg2NCk6QXJyYXkoNjQpO3FpPT09dm9pZCAwJiYoUmEuSW50MzJBcnJheT9xaT1uZXcgSW50MzJBcnJheShyaSk6cWk9cmkpO3RoaXMucmVzZXQoKX1TYShwaSxvaSk7Zm9yKHZhciBzaT1bXSx0aT0wO3RpPDYzO3RpKyspc2lbdGldPTA7dmFyIHVpPVtdLmNvbmNhdCgxMjgsc2kpOwpwaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5LPTA7dmFyIGE7aWYoUmEuSW50MzJBcnJheSlhPW5ldyBJbnQzMkFycmF5KHRoaXMuWik7ZWxzZXt2YXIgYj10aGlzLlosYz1iLmxlbmd0aDtpZihjPjApe2Zvcih2YXIgZD1BcnJheShjKSxlPTA7ZTxjO2UrKylkW2VdPWJbZV07YT1kfWVsc2UgYT1bXX10aGlzLkg9YX07CnZhciB2aT1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5OLGM9YS5qYSxkPTAsZT0wO2U8Yi5sZW5ndGg7KWNbZCsrXT1iW2VdPDwyNHxiW2UrMV08PDE2fGJbZSsyXTw8OHxiW2UrM10sZT1kKjQ7Zm9yKHZhciBmPTE2O2Y8NjQ7ZisrKXt2YXIgZz1jW2YtMTVdfDAsaD1jW2YtMl18MDtjW2ZdPSgoY1tmLTE2XXwwKSsoKGc+Pj43fGc8PDI1KV4oZz4+PjE4fGc8PDE0KV5nPj4+Myl8MCkrKChjW2YtN118MCkrKChoPj4+MTd8aDw8MTUpXihoPj4+MTl8aDw8MTMpXmg+Pj4xMCl8MCl8MH1mb3IodmFyIGw9YS5IWzBdfDAsbj1hLkhbMV18MCxwPWEuSFsyXXwwLHE9YS5IWzNdfDAscj1hLkhbNF18MCx0PWEuSFs1XXwwLHU9YS5IWzZdfDAsdj1hLkhbN118MCx4PTA7eDw2NDt4Kyspe3ZhciB5PSgobD4+PjJ8bDw8MzApXihsPj4+MTN8bDw8MTkpXihsPj4+MjJ8bDw8MTApKSsobCZuXmwmcF5uJnApfDAsej0odisoKHI+Pj42fHI8PDI2KV4ocj4+PjExfHI8PDIxKV4ocj4+PjI1fHI8PDcpKXwKMCkrKCgociZ0Xn5yJnUpKyhxaVt4XXwwKXwwKSsoY1t4XXwwKXwwKXwwO3Y9dTt1PXQ7dD1yO3I9cSt6fDA7cT1wO3A9bjtuPWw7bD16K3l8MH1hLkhbMF09YS5IWzBdK2x8MDthLkhbMV09YS5IWzFdK258MDthLkhbMl09YS5IWzJdK3B8MDthLkhbM109YS5IWzNdK3F8MDthLkhbNF09YS5IWzRdK3J8MDthLkhbNV09YS5IWzVdK3R8MDthLkhbNl09YS5IWzZdK3V8MDthLkhbN109YS5IWzddK3Z8MH07CnBpLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hLmxlbmd0aCk7dmFyIGM9MCxkPXRoaXMuSztpZih0eXBlb2YgYT09PSJzdHJpbmciKWZvcig7YzxiOyl0aGlzLk5bZCsrXT1hLmNoYXJDb2RlQXQoYysrKSxkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCk7ZWxzZXt2YXIgZSxmPXR5cGVvZiBhO2U9ZiE9Im9iamVjdCI/ZjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpmOiJudWxsIjtpZihlPT0iYXJyYXkifHxlPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilmb3IoO2M8Yjspe3ZhciBnPWFbYysrXTtpZighKCJudW1iZXIiPT10eXBlb2YgZyYmMDw9ZyYmMjU1Pj1nJiZnPT0oZ3wwKSkpdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBhIGJ5dGUgYXJyYXkiKTt0aGlzLk5bZCsrXT1nO2Q9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKX1lbHNlIHRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5Iik7Cn10aGlzLks9ZDt0aGlzLlIrPWJ9O3BpLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuUio4O3RoaXMuSzw1Nj90aGlzLnVwZGF0ZSh1aSw1Ni10aGlzLkspOnRoaXMudXBkYXRlKHVpLHRoaXMuYmxvY2tTaXplLSh0aGlzLkstNTYpKTtmb3IodmFyIGM9NjM7Yz49NTY7Yy0tKXRoaXMuTltjXT1iJjI1NSxiLz0yNTY7dmkodGhpcyk7Zm9yKHZhciBkPTAsZT0wO2U8dGhpcy5mYTtlKyspZm9yKHZhciBmPTI0O2Y+PTA7Zi09OClhW2QrK109dGhpcy5IW2VdPj5mJjI1NTtyZXR1cm4gYX07CnZhciByaT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LAo0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0scWk7ZnVuY3Rpb24gd2koKXtwaS5jYWxsKHRoaXMsOCx4aSl9U2Eod2kscGkpO3ZhciB4aT1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO3ZhciB5aT0vXlswLTlBLUZhLWZdezY0fSQvO2Z1bmN0aW9uIHppKGEpe3RyeXtyZXR1cm4obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYSl9Y2F0Y2goYil7cmV0dXJuIFpiKGEpfX1mdW5jdGlvbiBBaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt2YXIgYztpZigoYz1iLmNyeXB0byk9PW51bGw/MDpjLnN1YnRsZSl7aWYoeWkudGVzdChhKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3RyeXt2YXIgZD16aShhKTtyZXR1cm4gYi5jcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gQmkoZSxiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuImUyIn0pfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoImUyIil9fWVsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTEiKX0KZnVuY3Rpb24gQ2koYSl7dHJ5e3ZhciBiPW5ldyB3aTtiLnVwZGF0ZSh6aShhKSk7cmV0dXJuIGIuZGlnZXN0KCl9Y2F0Y2goYyl7cmV0dXJuImUyIn19ZnVuY3Rpb24gRGkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAifHx5aS50ZXN0KGEpKXJldHVybiBhO3ZhciBjPUNpKGEpO2lmKGM9PT0iZTIiKXJldHVybiJlMiI7dHJ5e3JldHVybiBCaShjLGIpfWNhdGNoKGQpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGQpfSkuam9pbigiIik7cmV0dXJuIGIuYnRvYShjKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfTtmdW5jdGlvbiBFaSgpe2Zvcih2YXIgYT0hMSxiPSExLGM9MDthPT09YjspaWYoYT1EYigwLDEpPT09MCxiPURiKDAsMSk9PT0wLGMrKyxjPjMwKXJldHVybjtyZXR1cm4gYX12YXIgR2k9e3NrOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRmkuc2soYSxiLGMpfX0sSGk9ZnVuY3Rpb24oKXt0aGlzLnN0dWRpZXM9e307dGhpcy5IPUVpfTsKSGkucHJvdG90eXBlLnNrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnN0dWRpZXNbYl07aWYoISgoYz09PXZvaWQgMD9EYigwLDk5OTkpOmMlMUU0KTxkLnByb2JhYmlsaXR5KihkLmNvbnRyb2xJZDI/NDoyKSoxRTQpKXJldHVybiBhO2E6e3ZhciBlPWQuc3R1ZHlJZCxmPWQuZXhwZXJpbWVudElkLGc9ZC5jb250cm9sSWQsaD1kLmNvbnRyb2xJZDI7aWYoISgoYS5leHB8fHt9KVtmXXx8KGEuZXhwfHx7fSlbZ118fGgmJihhLmV4cHx8e30pW2hdKSl7dmFyIGw9YyE9PXZvaWQgMD9jJTI9PT0wOnRoaXMuSCgpO2lmKGwhPT12b2lkIDApe3ZhciBuPWw/MDoxO2lmKGgpe3ZhciBwPWMhPT12b2lkIDA/KGM+PjEpJTI9PT0wOnRoaXMuSCgpO2lmKHA9PT12b2lkIDApYnJlYWsgYTtufD0ocD8wOjEpPDwxfW49PT0wP0lpKGEsZixlKTpuPT09MT9JaShhLGcsZSk6bj09PTImJklpKGEsaCxlKX19fXJldHVybiBhfTsKdmFyIEtpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXT9KaShjLGIpfHwhIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5leHBlcmltZW50SWRdOiExfSxMaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQmJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZF06ITF9LE1pPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDImJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDJdOiExfSxOaT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmV4cHx8e30sZD1tKE9iamVjdC5rZXlzKGMpLm1hcChOdW1iZXIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihjW2ZdPT09YilyZXR1cm4gZn19LEppPWZ1bmN0aW9uKGEsCmIpe3JldHVybiEhYS5zdHVkaWVzW2JdLmFjdGl2ZXx8YS5zdHVkaWVzW2JdLnByb2JhYmlsaXR5Pi41fSxJaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5leHB8fHt9O2RbYl09YzthLmV4cD1kfSxGaT1uZXcgSGk7dmFyIGlqPWZ1bmN0aW9uKCl7dGhpcy5IPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyfHx7fX0samo7ZnVuY3Rpb24ga2ooYSxiKXtsaigpO3ZhciBjPWpqO3JldHVybiBjLkhbYV09Yy5IW2FdfHxiKCl9ZnVuY3Rpb24gbWooYSl7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiBuaihhLGIpe2xqKCk7amouSFthXT1ifWZ1bmN0aW9uIG9qKGEpe3ZhciBiPUUoNSk7bGooKTt2YXIgYz1qajtjLkhbYl09Yy5IW2JdfHxhfWZ1bmN0aW9uIHBqKCl7dmFyIGE9RSgxOSk7bGooKTt2YXIgYj1qajtyZXR1cm4gYi5IW2FdPWIuSFthXXx8e319ZnVuY3Rpb24gcWooKXt2YXIgYT1FKDE5KTtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIHJqKCl7bGooKTt2YXIgYT1qaixiPWEuSC5zZXF1ZW5jZXx8MTthLkguc2VxdWVuY2U9YisxO3JldHVybiBifWZ1bmN0aW9uIGxqKCl7amp8fChqaj1uZXcgaWopfTt2YXIgc2o9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4gMDtjYXNlIDQ5MTpyZXR1cm4gMTI7Y2FzZSA0ODA6cmV0dXJuIDExO2Nhc2UgNDk5OnJldHVybiAxMDtjYXNlIDUwMDpyZXR1cm4gNjtjYXNlIDQyMTpyZXR1cm4gOTtjYXNlIDU2MTpyZXR1cm4gMTc7Y2FzZSA0ODI6cmV0dXJuIDE1O2Nhc2UgNTcwOnJldHVybiAxOTtjYXNlIDQ5NTpyZXR1cm4gMTM7Y2FzZSA1MTQ6cmV0dXJuIDE2O2Nhc2UgNTczOnJldHVybiAxODtjYXNlIDIzNTpyZXR1cm4gODtjYXNlIDUzOnJldHVybiAxO2Nhc2UgNTQ6cmV0dXJuIDI7Y2FzZSA1MjpyZXR1cm4gNDtjYXNlIDc1OnJldHVybiAzfX0sdGo9ZnVuY3Rpb24oYSxiKXthLk5bYl09ITA7dmFyIGM9c2ooYik7YyE9PXZvaWQgMCYmKFdmW2NdPSEwKX0sTT1mdW5jdGlvbihhKXtyZXR1cm4hIXVqLk5bYV19LHVqPW5ldyBmdW5jdGlvbigpe3RoaXMuTj1bXTt0aGlzLks9W107dGhpcy5IPVtdOwp0aih0aGlzLDEzMik7dmFyIGE9TmYoNiw2RTQpO1hmWzFdPWE7dmFyIGI9TmYoNywxKTtYZlszXT1iO3ZhciBjPU5mKDM1LDUwKTtYZlsyXT1jO3ZhciBkPU5mKDY5LDE3NzY0NDg5MjApO1hmWzRdPWQ7CnRqKHRoaXMsNDM1KTt0aih0aGlzLDE0MSk7Cn07dmFyIHZqPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBTZXQ7dGhpcy5LPW5ldyBTZXR9LHhqPWZ1bmN0aW9uKGEpe3ZhciBiPXdqLkg7YT1hPT09dm9pZCAwP1tdOmE7dmFyIGM9W10uY29uY2F0KHcoYi5IKSkuY29uY2F0KFtdLmNvbmNhdCh3KGIuSykpKS5jb25jYXQoYSk7Yy5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtZX0pO3JldHVybiBjfSx5aj1mdW5jdGlvbigpe3ZhciBhPVtdLmNvbmNhdCh3KHdqLkguSCkpO2Euc29ydChmdW5jdGlvbihiLGMpe3JldHVybiBiLWN9KTtyZXR1cm4gYX0semo9ZnVuY3Rpb24oKXt2YXIgYT13ai5ILGI9RSg0NCk7YS5IPW5ldyBTZXQ7aWYoYiE9PSIiKWZvcih2YXIgYz1tKGIuc3BsaXQoIn4iKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPU51bWJlcihkLnZhbHVlKTtpc05hTihlKXx8YS5ILmFkZChlKX19O3ZhciBBaj17fSxCaj17X19jbDoxLF9fZWNsOjEsX19laGw6MSxfX2V2bDoxLF9fZmFsOjEsX19maWw6MSxfX2ZzbDoxLF9faGw6MSxfX2plbDoxLF9fbGNsOjEsX19zZGw6MSxfX3RsOjEsX195dGw6MX0sQ2o9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7X19wYXVzZWQ6MSxfX3RnOjF9LEJqKSxEaixFaj0hMTtEaj1Fajt2YXIgRmo9IiI7QWoucWo9Rmo7dmFyIHdqPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1uZXcgdmp9O3ZhciBHaj0vOlswLTldKyQvLEhqPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLztmdW5jdGlvbiBJaihhLGIsYyxkKXt2YXIgZT1KaihhLCEhZCxiKSxmLGc7cmV0dXJuIGM/KGc9ZVtiXSkhPW51bGw/ZzpbXTooZj1lW2JdKT09bnVsbD92b2lkIDA6ZlswXX1mdW5jdGlvbiBKaihhLGIsYyl7Zm9yKHZhciBkPXt9LGU9bShhLnNwbGl0KCImIikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUuc3BsaXQoIj0iKSksaD1nLm5leHQoKS52YWx1ZSxsPXlhKGcpLG49ZGVjb2RlVVJJQ29tcG9uZW50KGgucmVwbGFjZSgvXCsvZywiICIpKTtpZihjPT09dm9pZCAwfHxuPT09Yyl7dmFyIHA9bC5qb2luKCI9Iik7ZFtuXXx8KGRbbl09W10pO2Rbbl0ucHVzaChiP3A6ZGVjb2RlVVJJQ29tcG9uZW50KHAucmVwbGFjZSgvXCsvZywiICIpKSl9fXJldHVybiBkfQpmdW5jdGlvbiBLaihhKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChiKXt9fWZ1bmN0aW9uIExqKGEsYixjLGQsZSl7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO2lmKGI9PT0icHJvdG9jb2wifHxiPT09InBvcnQiKWEucHJvdG9jb2w9TWooYS5wcm90b2NvbCl8fE1qKEEubG9jYXRpb24ucHJvdG9jb2wpO2I9PT0icG9ydCI/YS5wb3J0PVN0cmluZyhOdW1iZXIoYS5ob3N0bmFtZT9hLnBvcnQ6QS5sb2NhdGlvbi5wb3J0KXx8KGEucHJvdG9jb2w9PT0iaHR0cCI/ODA6YS5wcm90b2NvbD09PSJodHRwcyI/NDQzOiIiKSk6Yj09PSJob3N0IiYmKGEuaG9zdG5hbWU9KGEuaG9zdG5hbWV8fEEubG9jYXRpb24uaG9zdG5hbWUpLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBOaihhLGIsYyxkLGUpfQpmdW5jdGlvbiBOaihhLGIsYyxkLGUpe3ZhciBmLGc9TWooYS5wcm90b2NvbCk7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO3N3aXRjaChiKXtjYXNlICJ1cmxfbm9fZnJhZ21lbnQiOmY9T2ooYSk7YnJlYWs7Y2FzZSAicHJvdG9jb2wiOmY9ZzticmVhaztjYXNlICJob3N0IjpmPWEuaG9zdG5hbWUucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKTtpZihjKXt2YXIgaD0vXnd3d1xkKlwuLy5leGVjKGYpO2gmJmhbMF0mJihmPWYuc3Vic3RyaW5nKGhbMF0ubGVuZ3RoKSl9YnJlYWs7Y2FzZSAicG9ydCI6Zj1TdHJpbmcoTnVtYmVyKGEucG9ydCl8fChnPT09Imh0dHAiPzgwOmc9PT0iaHR0cHMiPzQ0MzoiIikpO2JyZWFrO2Nhc2UgInBhdGgiOmEucGF0aG5hbWV8fGEuaG9zdG5hbWV8fHNiKCJUQUdHSU5HIiwxKTtmPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsMSk9PT0iLyI/YS5wYXRobmFtZToiLyIrYS5wYXRobmFtZTt2YXIgbD1mLnNwbGl0KCIvIik7KGR8fFtdKS5pbmRleE9mKGxbbC5sZW5ndGgtCjFdKT49MCYmKGxbbC5sZW5ndGgtMV09IiIpO2Y9bC5qb2luKCIvIik7YnJlYWs7Y2FzZSAicXVlcnkiOmY9YS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpO2UmJihmPUlqKGYsZSwhMSkpO2JyZWFrO2Nhc2UgImV4dGVuc2lvbiI6dmFyIG49YS5wYXRobmFtZS5zcGxpdCgiLiIpO2Y9bi5sZW5ndGg+MT9uW24ubGVuZ3RoLTFdOiIiO2Y9Zi5zcGxpdCgiLyIpWzBdO2JyZWFrO2Nhc2UgImZyYWdtZW50IjpmPWEuaGFzaC5yZXBsYWNlKCIjIiwiIik7YnJlYWs7ZGVmYXVsdDpmPWEmJmEuaHJlZn1yZXR1cm4gZn1mdW5jdGlvbiBNaihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoIjoiLCIiKS50b0xvd2VyQ2FzZSgpOiIifWZ1bmN0aW9uIE9qKGEpe3ZhciBiPSIiO2lmKGEmJmEuaHJlZil7dmFyIGM9YS5ocmVmLmluZGV4T2YoIiMiKTtiPWM8MD9hLmhyZWY6YS5ocmVmLnN1YnN0cmluZygwLGMpfXJldHVybiBifXZhciBQaj17fSxRaj0wOwpmdW5jdGlvbiBSaihhKXt2YXIgYj1QalthXTtpZighYil7dmFyIGM9Qi5jcmVhdGVFbGVtZW50KCJhIik7YSYmKGMuaHJlZj1hKTt2YXIgZD1jLnBhdGhuYW1lO2RbMF0hPT0iLyImJihhfHxzYigiVEFHR0lORyIsMSksZD0iLyIrZCk7dmFyIGU9Yy5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKTtiPXtocmVmOmMuaHJlZixwcm90b2NvbDpjLnByb3RvY29sLGhvc3Q6Yy5ob3N0LGhvc3RuYW1lOmUscGF0aG5hbWU6ZCxzZWFyY2g6Yy5zZWFyY2gsaGFzaDpjLmhhc2gscG9ydDpjLnBvcnR9O1FqPDUmJihQalthXT1iLFFqKyspfXJldHVybiBifWZ1bmN0aW9uIFNqKGEsYixjKXt2YXIgZD1SaihhKTtyZXR1cm4gYWMoYixkLGMpfQpmdW5jdGlvbiBUaihhKXt2YXIgYj1SaihBLmxvY2F0aW9uLmhyZWYpLGM9TGooYiwiaG9zdCIsITEpO2lmKGMmJmMubWF0Y2goSGopKXt2YXIgZD1MaihiLCJwYXRoIik7aWYoZCl7dmFyIGU9ZC5zcGxpdChhKyI9Iik7aWYoZS5sZW5ndGg+MSlyZXR1cm4gZVsxXS5zcGxpdCgiOyIpWzBdLnNwbGl0KCI/IilbMF19fX07dmFyIFVqPXsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSI6Ii9nIiwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iOiIvYXMiLCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIjoiL2dzIn0sVmo9WyIvYXMvZC9jY20vY29udmVyc2lvbiIsIi9nL2QvY2NtL2NvbnZlcnNpb24iLCIvZ3MvY2NtL2NvbnZlcnNpb24iLCIvZC9jY20vZm9ybS1kYXRhIl07ZnVuY3Rpb24gV2ooKXtyZXR1cm4gSWYoNDcpP0pmKDU0KSE9PTE6ITF9ZnVuY3Rpb24gWGooKXt2YXIgYT1FKDE4KSxiPWEubGVuZ3RoO3JldHVybiBhW2ItMV09PT0iLyI/YS5zdWJzdHJpbmcoMCxiLTEpOmF9CmZ1bmN0aW9uIFlqKGEsYil7aWYoYSl7dmFyIGM9IiIrYTtjLmluZGV4T2YoImh0dHA6Ly8iKSE9PTAmJmMuaW5kZXhPZigiaHR0cHM6Ly8iKSE9PTAmJihjPSJodHRwczovLyIrYyk7Y1tjLmxlbmd0aC0xXT09PSIvIiYmKGM9Yy5zdWJzdHJpbmcoMCxjLmxlbmd0aC0xKSk7cmV0dXJuIFJqKCIiK2MrYikuaHJlZn19ZnVuY3Rpb24gWmooYSl7aWYoYWsoKSlyZXR1cm4gWWooYSwiL2FuYWx5dGljcy5qcyIpfWZ1bmN0aW9uIGJrKGEpe3JldHVybiBhPT09Mnx8YT09PTN9ZnVuY3Rpb24gY2soYSl7cmV0dXJuIE0oNTg4KSYmYT09PTN9ZnVuY3Rpb24gYWsoKXtyZXR1cm4gV2ooKXx8SWYoNTApfWZ1bmN0aW9uIGRrKCl7cmV0dXJuISFBai5xaiYmQWoucWouc3BsaXQoIkBAIikuam9pbigiIikhPT0iU0dUTV9UT0tFTiJ9CmZ1bmN0aW9uIGVrKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPU8oYSxjLnZhbHVlKTtpZihkKXJldHVybiBkfX1mdW5jdGlvbiBmayhhLGIsYyl7Yz1jPT09dm9pZCAwPyIiOmM7aWYoIVdqKCkpcmV0dXJuIGE7dmFyIGQ9Yj9ValthXXx8IiI6IiI7ZD09PSIvZ3MiJiYoYz0iIik7cmV0dXJuIiIrWGooKStkK2N9ZnVuY3Rpb24gZ2soYSl7aWYoV2ooKSlmb3IodmFyIGI9bShWaiksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoU2IoYSwiIitYaigpK2QpKXJldHVybiI6OiJ9fQpmdW5jdGlvbiBoaygpe3ZhciBhPUE7aWYoIWEpcmV0dXJuITE7dHJ5e2lmKGE9PT1hLnRvcClyZXR1cm4hMTt2YXIgYj1hLmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiBiLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyLyIpIT09LTEmJlRiKGIsIi9zd19pZnJhbWUuaHRtbCIpfWNhdGNoKGMpe3JldHVybiExfX07dmFyIGlrPS9ndGFnWy5cL11qcy8sams9L2d0bVsuXC9danMvLGxrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrO2lmKChhLnNjcmlwdENvbnRhaW5lcklkfHwiIikuaW5kZXhPZigiR1RNLSIpPj0wKXt2YXIgYzthOnt2YXIgZCxlPShkPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmQuc3JjO2lmKGUpe2Zvcih2YXIgZj1JZig0NyksZz1SaihlKSxoPWY/Zy5wYXRobmFtZToiIitnLmhvc3RuYW1lK2cucGF0aG5hbWUsbD1CLnNjcmlwdHMsbj0iIixwPTA7cDxsLmxlbmd0aDsrK3Ape3ZhciBxPWxbcF07aWYoIShxLmlubmVySFRNTC5sZW5ndGg9PT0wfHwhZiYmcS5pbm5lckhUTUwuaW5kZXhPZihhLnNjcmlwdENvbnRhaW5lcklkfHwiU0hPVUxEX05PVF9CRV9TRVQiKTwwfHxxLmlubmVySFRNTC5pbmRleE9mKGgpPDApKXtpZihxLmlubmVySFRNTC5pbmRleE9mKCIoZnVuY3Rpb24odyxkLHMsbCxpKSIpPj0wKXtjPVN0cmluZyhwKTticmVhayBhfW49U3RyaW5nKHApfX1pZihuKXtjPQpuO2JyZWFrIGF9fWM9dm9pZCAwfXZhciByPWM7aWYocilyZXR1cm4gYi5IPSEwLHJ9dmFyIHQ9W10uc2xpY2UuY2FsbChCLnNjcmlwdHMpO3JldHVybiBhLnNjcmlwdEVsZW1lbnQ/U3RyaW5nKHQuaW5kZXhPZihhLnNjcmlwdEVsZW1lbnQpKToiLTEifSxtaz1mdW5jdGlvbihhKXtpZihray5IKXJldHVybiIxIjt2YXIgYixjPShiPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmIuc3JjO2lmKGMpe2lmKGlrLnRlc3QoYykpcmV0dXJuIjMiO2lmKGprLnRlc3QoYykpcmV0dXJuIjIifXJldHVybiIwIn0sa2s9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTtmdW5jdGlvbiBQKGEpe3NiKCJHVE0iLGEpfTtmdW5jdGlvbiBuayhhKXt2YXIgYj1vaygpLmRlc3RpbmF0aW9uQXJyYXlbYV0sYz1vaygpLmRlc3RpbmF0aW9uW2FdO3JldHVybiBiJiZiLmxlbmd0aD4wP2JbMF06Y31mdW5jdGlvbiBwayhhLGIpe3ZhciBjPW9rKCk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtDYihjLnBlbmRpbmcsZnVuY3Rpb24oZCl7cmV0dXJuIGQudGFyZ2V0LmN0aWQ9PT1hLmN0aWQmJmQudGFyZ2V0LmlzRGVzdGluYXRpb249PT1hLmlzRGVzdGluYXRpb259KXx8Yy5wZW5kaW5nLnB1c2goe3RhcmdldDphLG9uTG9hZDpifSl9ZnVuY3Rpb24gcWsoKXt2YXIgYT1BLmdvb2dsZV90YWdzX2ZpcnN0X3BhcnR5O0FycmF5LmlzQXJyYXkoYSl8fChhPVtdKTtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIE9iamVjdC5mcmVlemUoYil9CnZhciByaz1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuZGVzdGluYXRpb249e307dGhpcy5kZXN0aW5hdGlvbkFycmF5PXt9O3RoaXMuY2Fub25pY2FsPXt9O3RoaXMucGVuZGluZz1bXTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9e307dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCl9OwpmdW5jdGlvbiBvaygpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEudGlkcjtiJiZ0eXBlb2YgYj09PSJvYmplY3QifHwoYj1uZXcgcmssYS50aWRyPWIpO3ZhciBjPWI7Yy5jb250YWluZXJ8fChjLmNvbnRhaW5lcj17fSk7Yy5kZXN0aW5hdGlvbnx8KGMuZGVzdGluYXRpb249e30pO2MuZGVzdGluYXRpb25BcnJheXx8KGMuZGVzdGluYXRpb25BcnJheT17fSk7Yy5jYW5vbmljYWx8fChjLmNhbm9uaWNhbD17fSk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnN8fChjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHNrKCl7cmV0dXJuIElmKDcpJiZ0aygpLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1FKDUpfSl9ZnVuY3Rpb24gdWsoKXt2YXIgYTtyZXR1cm4oYT1LZig1NSkpIT1udWxsP2E6W119ZnVuY3Rpb24gdmsoKXtyZXR1cm4gRSg2KXx8Il8iK0UoNSl9ZnVuY3Rpb24gd2soKXt2YXIgYT1FKDEwKTtyZXR1cm4gYT9hLnNwbGl0KCJ8Iik6W0UoNSldfWZ1bmN0aW9uIHRrKCl7dmFyIGE9S2YoNTkpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2EuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmcifSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmluZGV4T2YoIkdUTS0iKSE9PTB9KTpbXX1mdW5jdGlvbiB4aygpe3ZhciBhPXlrKHprKCkpLGI9YSYmYS5wYXJlbnQ7aWYoYilyZXR1cm4geWsoYil9CmZ1bmN0aW9uIEFrKCl7dmFyIGE9eWsoemsoKSk7aWYoYSl7Zm9yKDthLnBhcmVudDspe3ZhciBiPXlrKGEucGFyZW50KTtpZighYilicmVhazthPWJ9cmV0dXJuIGF9fWZ1bmN0aW9uIHlrKGEpe3ZhciBiPW9rKCk7cmV0dXJuIGEuaXNEZXN0aW5hdGlvbj9uayhhLmN0aWQpOmIuY29udGFpbmVyW2EuY3RpZF19ZnVuY3Rpb24gQmsoKXt2YXIgYT1vaygpO2lmKGEucGVuZGluZyl7Zm9yKHZhciBiLGM9W10sZD0hMSxlPXdrKCksZj10aygpLGc9e30saD0wO2g8YS5wZW5kaW5nLmxlbmd0aDtnPXtSZzp2b2lkIDB9LGgrKylnLlJnPWEucGVuZGluZ1toXSxDYihnLlJnLnRhcmdldC5pc0Rlc3RpbmF0aW9uP2Y6ZSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG49PT1sLlJnLnRhcmdldC5jdGlkfX0oZykpP2R8fChiPWcuUmcub25Mb2FkLGQ9ITApOmMucHVzaChnLlJnKTthLnBlbmRpbmc9YztpZihiKXRyeXtiKHZrKCkpfWNhdGNoKGwpe319fQpmdW5jdGlvbiBDaygpe2Zvcih2YXIgYT1FKDUpLGI9d2soKSxjPXRrKCksZD11aygpLGU9ZnVuY3Rpb24ocSxyKXt2YXIgdD17Y2Fub25pY2FsQ29udGFpbmVySWQ6RSg2KSxzY3JpcHRDb250YWluZXJJZDphLHN0YXRlOjIsY29udGFpbmVyczpiLnNsaWNlKCksZGVzdGluYXRpb25zOmMuc2xpY2UoKX07SmMmJih0LnNjcmlwdEVsZW1lbnQ9SmMpO0tjJiYodC5zY3JpcHRTb3VyY2U9S2MpO3hrKCk9PT12b2lkIDAmJih0Lmh0bWxMb2FkT3JkZXI9bGsodCksdC5sb2FkU2NyaXB0VHlwZT1tayh0KSk7dmFyIHUsdjtzd2l0Y2gocil7Y2FzZSAwOnU9ZnVuY3Rpb24oeil7Zi5jb250YWluZXJbcV09en07dj1mLmNvbnRhaW5lcltxXTticmVhaztjYXNlIDE6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0udW5zaGlmdCh6KX07dmFyIHgseT0oKHg9Zi5kZXN0aW5hdGlvbkFycmF5W3FdKT09Cm51bGw/dm9pZCAwOnhbMF0pfHxmLmRlc3RpbmF0aW9uW3FdOyF5fHx5LnN0YXRlIT09MCYmeS5zdGF0ZSE9PTF8fCh2PXkpO2JyZWFrO2Nhc2UgMjp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS5wdXNoKHopfSx2PXZvaWQgMH11JiYodj8odi5zdGF0ZT09PTAmJlAoOTMpLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qsdix0KSk6dSh0KSl9LGY9b2soKSxnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpZShoLnZhbHVlLDApO2Zvcih2YXIgbD1tKGMpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2QuaW5jbHVkZXMocCk/ZShwLDEpOmUocCwyKX1mLmNhbm9uaWNhbFt2aygpXT17fTtCaygpfWZ1bmN0aW9uIERrKCl7dmFyIGE9dmsoKTtyZXR1cm4hIW9rKCkuY2Fub25pY2FsW2FdfQpmdW5jdGlvbiBFayhhKXtyZXR1cm4hIW9rKCkuY29udGFpbmVyW2FdfWZ1bmN0aW9uIEZrKCl7dmFyIGE9emsoKSxiPXlrKGEpO3JldHVybiBiJiZiLmNvbnRleHR9ZnVuY3Rpb24gR2soYSl7dmFyIGI9bmsoYSk7cmV0dXJuIGI/Yi5zdGF0ZSE9PTA6ITF9ZnVuY3Rpb24gemsoKXtyZXR1cm57Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246SWYoNyl9fWZ1bmN0aW9uIEhrKGEsYixjKXt2YXIgZD16aygpLGU9b2soKS5jb250YWluZXJbYV07ZSYmZS5zdGF0ZSE9PTN8fChvaygpLmNvbnRhaW5lclthXT17c3RhdGU6MSxjb250ZXh0OmIscGFyZW50OmR9LHBrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMX0sYykpfWZ1bmN0aW9uIElrKGEsYixjKXt2YXIgZD1vaygpLGU9bmsoYSk7ZT9lLnN0YXRlPTE6KGU9e2NvbnRleHQ6YixzdGF0ZToxLHBhcmVudDp6aygpfSxkLmRlc3RpbmF0aW9uQXJyYXlbYV09W2VdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGMpfQpmdW5jdGlvbiBKayhhLGIsYyxkKXt2YXIgZT1vaygpLGY9bmsoYSk7Zj9mLnN0YXRlPTA6KGY9e3N0YXRlOjAsdHJhbnNwb3J0VXJsOmIsY29udGV4dDpjLHBhcmVudDp6aygpfSxlLmRlc3RpbmF0aW9uQXJyYXlbYV09W2ZdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGQpO1AoOTEpfWZ1bmN0aW9uIEtrKCl7dmFyIGE9b2soKS5jb250YWluZXIsYjtmb3IoYiBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkoYikmJmFbYl0uc3RhdGU9PT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIExrKCl7dmFyIGE9e307R2Iob2soKS5kZXN0aW5hdGlvbixmdW5jdGlvbihiLGMpeyhjPT1udWxsP3ZvaWQgMDpjLnN0YXRlKT09PTAmJihhW2JdPWMpfSk7R2Iob2soKS5kZXN0aW5hdGlvbkFycmF5LGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Y1swXTsoZD09bnVsbD92b2lkIDA6ZC5zdGF0ZSk9PT0wJiYoYVtiXT1kKX0pO3JldHVybiBhfQpmdW5jdGlvbiBNayhhKXtyZXR1cm4hIShhJiZhLnBhcmVudCYmYS5jb250ZXh0JiZhLmNvbnRleHQuc291cmNlPT09MSYmYS5wYXJlbnQuY3RpZC5pbmRleE9mKCJHVE0tIikhPT0wKX1mdW5jdGlvbiBOaygpe2Zvcih2YXIgYT1vaygpLGI9bSh3aygpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihhLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnNbYy52YWx1ZV0pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBPaz1mdW5jdGlvbigpe307T2sucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCJ9O3ZhciBQaz1uZXcgT2s7dmFyIFhrPWZ1bmN0aW9uKCl7dGhpcy5zdG9yYWdlPVlhKCl9O1hrLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKX07WGsucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTt2YXIgWWs7ZnVuY3Rpb24gWmsoYSxiKXtZa3x8KFlrPW5ldyBYayk7WWsuc2V0KGEsYil9ZnVuY3Rpb24gJGsoYSl7WWt8fChZaz1uZXcgWGspO3JldHVybiBZay5nZXQoYSl9ZnVuY3Rpb24gYWwoYSxiKXtZa3x8KFlrPW5ldyBYayk7dmFyIGM9WWs7Yy5zdG9yYWdlLmhhcyhTdHJpbmcoYSkpfHxjLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKCkpO3JldHVybiBjLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O2Z1bmN0aW9uIGJsKGEsYil7ZnVuY3Rpb24gYyhnKXt2YXIgaD1SaihnKSxsPUxqKGgsInByb3RvY29sIiksbj1MaihoLCJob3N0IiwhMCkscD1MaihoLCJwb3J0IikscT1MaihoLCJwYXRoIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihsPT09dm9pZCAwfHxsPT09Imh0dHAiJiZwPT09IjgwInx8bD09PSJodHRwcyImJnA9PT0iNDQzIilsPSJ3ZWIiLHA9ImRlZmF1bHQiO3JldHVybltsLG4scCxxXX1mb3IodmFyIGQ9YyhTdHJpbmcoYSkpLGU9YyhTdHJpbmcoYikpLGY9MDtmPGQubGVuZ3RoO2YrKylpZihkW2ZdIT09ZVtmXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBjbChhKXtyZXR1cm4gZGwoYSk/MTowfQpmdW5jdGlvbiBkbChhKXt2YXIgYj1hLmFyZzAsYz1hLmFyZzE7aWYoYS5hbnlfb2YmJkFycmF5LmlzQXJyYXkoYykpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1FZChhLHt9KTtFZCh7YXJnMTpjW2RdLGFueV9vZjp2b2lkIDB9LGUpO2lmKGNsKGUpKXJldHVybiEwfXJldHVybiExfXN3aXRjaChhWyJmdW5jdGlvbiJdKXtjYXNlICJfY24iOnJldHVybiBLZyhiLGMpO2Nhc2UgIl9jc3MiOnJldHVybiBHZyhiLGMpO2Nhc2UgIl9ldyI6cmV0dXJuIEhnKGIsYyk7Y2FzZSAiX2VxIjpyZXR1cm4gTGcoYixjKTtjYXNlICJfZ2UiOnJldHVybiBNZyhiLGMpO2Nhc2UgIl9ndCI6cmV0dXJuIE9nKGIsYyk7Y2FzZSAiX2xjIjpyZXR1cm4gSWcoYixjKTtjYXNlICJfbGUiOnJldHVybiBOZyhiLGMpO2Nhc2UgIl9sdCI6cmV0dXJuIFBnKGIsYyk7Y2FzZSAiX3JlIjpyZXR1cm4gSmcoYixjLGEuaWdub3JlX2Nhc2UsYWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSkpO2Nhc2UgIl9zdyI6cmV0dXJuIFFnKGIsCmMpO2Nhc2UgIl91bSI6cmV0dXJuIGJsKGIsYyl9cmV0dXJuITF9O2Z1bmN0aW9uIGVsKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGY7c3dpdGNoKGFbMF0pe2Nhc2UgImZ1bmN0aW9uX2lkIjpyZXR1cm4gYVsxXTtjYXNlICJsaXN0IjpmPVtdO2Zvcih2YXIgZz0xO2c8YS5sZW5ndGg7ZysrKWYucHVzaChlbChhW2ddLGIsYyxkLGUpKTtyZXR1cm4gZjtjYXNlICJtYWNybyI6dmFyIGg9ZFthWzFdXTtyZXR1cm4gaD9oLmV2YWx1YXRlKGIsZSk6dm9pZCAwO2Nhc2UgIm1hcCI6Zj17fTtmb3IodmFyIGw9MTtsPGEubGVuZ3RoO2wrPTIpZltlbChhW2xdLGIsYyxkLGUpXT1lbChhW2wrMV0sYixjLGQsZSk7cmV0dXJuIGY7Y2FzZSAidGVtcGxhdGUiOmY9W107Zm9yKHZhciBuPSExLHA9MTtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9ZWwoYVtwXSxiLGMsZCxlKTtmLnB1c2gocSl9cmV0dXJuIGYuam9pbigiIik7Y2FzZSAiZXNjYXBlIjpmPWVsKGFbMV0sYixjLGQsZSk7Zj1TdHJpbmcoZik7Zm9yKHZhciB5PTI7eTxhLmxlbmd0aDt5KyspVWlbYVt5XV0mJihmPVVpW2FbeV1dKGYpKTtyZXR1cm4gZjtjYXNlICJ0YWciOnZhciB6PWFbMV07aWYoIWNbel0pdGhyb3cgRXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIHRhZyByZWZlcmVuY2UgIisKeisiLiIpO3JldHVybntibzphWzJdLGluZGV4Onp9O2Nhc2UgInpiIjp2YXIgQz17fSxEPShDW0dmLlliXT1hWzFdLEMuYXJnMD1lbChhWzJdLGIsYyxkLGUpLEMuYXJnMT1lbChhWzNdLGIsYyxkLGUpLEMuaWdub3JlX2Nhc2U9ZWwoYVs1XSxiLGMsZCxlKSxDKSxJPWNsKEQpLEc9ISFhWzRdO3JldHVybiBHfHxJIT09Mj9HIT09KEk9PT0xKTpudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhwYW5kIHVua25vd24gVmFsdWUgdHlwZTogIithWzBdKyIuIik7fX1yZXR1cm4gYX07ZnVuY3Rpb24gZmwoYSl7cmV0dXJuIGEmJmEuaW5kZXhPZigicGVuZGluZzoiKT09PTA/Z2woYS5zdWJzdHIoOCkpOiExfWZ1bmN0aW9uIGdsKGEpe2lmKGE9PW51bGx8fGEubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgYj1OdW1iZXIoYSksYz1OYigpO3JldHVybiBiPGMrM0U1JiZiPmMtOUU1fTt2YXIgaGw9ITEsaWw9ITEsamw9ITEsa2w9MCxsbD0hMSxtbD12b2lkIDAsbmw9W107ZnVuY3Rpb24gb2woYSl7aWYoa2w9PT0wKWxsJiZubCYmKG5sLmxlbmd0aD49MTAwJiZubC5zaGlmdCgpLG5sLnB1c2goYSkpO2Vsc2UgaWYocGwoKSl7dmFyIGI9RSg0MSksYz1NYyhiLFtdKTtjLmxlbmd0aD49NTAmJmMuc2hpZnQoKTtjLnB1c2goYSl9fWZ1bmN0aW9uIHFsKCl7aWx8fChybCgpLHNsKGtsKSl9ZnVuY3Rpb24gc2woYSl7aWYoIWlsfHxrbD09PTImJmE9PT0xKWlmKGlsPSEwLGpsJiYoYWQoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsKSxqbD0hMSksbWwhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dChtbCksbWw9dm9pZCAwKSxrbD1hLGE9PT0xKXt2YXIgYj1ubDtubD12b2lkIDA7Yj09bnVsbHx8Yi5mb3JFYWNoKGZ1bmN0aW9uKGMpe29sKGMpfSl9fQpmdW5jdGlvbiBybCgpe3ZhciBhPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByb2QtcHJlc2VudCIpO2dsKGEpP2tsPTE6IWZsKGEpfHxobHx8amw/a2w9Mjooamw9ITAsJGMoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsLCExKSxtbD1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbHx8KHJsKCksc2woa2wpKTtobD0hMH0sMjAwKSl9ZnVuY3Rpb24gcGwoKXtpZighbGwpcmV0dXJuITE7c3dpdGNoKGtsKXtjYXNlIDE6Y2FzZSAwOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gdGwoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7cmV0dXJuIGEuaWNzPWEuaWNzfHxuZXcgdWx9dmFyIHVsPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPXt9O3RoaXMud2FpdFBlcmlvZFRpbWVkT3V0PXRoaXMud2FzU2V0TGF0ZT10aGlzLmFjY2Vzc2VkQW55PXRoaXMuYWNjZXNzZWREZWZhdWx0PXRoaXMudXNlZEltcGxpY2l0PXRoaXMudXNlZFVwZGF0ZT10aGlzLnVzZWREZWZhdWx0PXRoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITE7dGhpcy5IPVtdfTsKdWwucHJvdG90eXBlLmRlZmF1bHQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8IXRoaXMuYWNjZXNzZWREZWZhdWx0JiYhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkRGVmYXVsdD10aGlzLmFjdGl2ZT0hMDtzYigiVEFHR0lORyIsMTkpO2I9PW51bGw/c2IoIlRBR0dJTkciLDE4KTp2bCh0aGlzLGEsYj09PSJncmFudGVkIixjLGQsZSxmLGcpfTt1bC5wcm90b3R5cGUud2FpdEZvclVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspdmwodGhpcyxhW2RdLHZvaWQgMCx2b2lkIDAsIiIsIiIsYixjKX07CnZhciB2bD1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPWEuZW50cmllcyxuPWxbYl18fHt9LHA9bi5yZWdpb24scT1kJiZ6YihkKT9kLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2U9ZS50b1VwcGVyQ2FzZSgpO2Y9Zi50b1VwcGVyQ2FzZSgpO2lmKGU9PT0iInx8cT09PWZ8fChxPT09ZT9wIT09ZjohcSYmIXApKXt2YXIgcj0hIShnJiZnPjAmJm4udXBkYXRlPT09dm9pZCAwKSx0PXtyZWdpb246cSxkZWNsYXJlX3JlZ2lvbjpuLmRlY2xhcmVfcmVnaW9uLGltcGxpY2l0Om4uaW1wbGljaXQsZGVmYXVsdDpjIT09dm9pZCAwP2M6bi5kZWZhdWx0LGRlY2xhcmU6bi5kZWNsYXJlLHVwZGF0ZTpuLnVwZGF0ZSxxdWlldDpyfTtpZihlIT09IiJ8fG4uZGVmYXVsdCE9PSExKWxbYl09dDtyJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsW2JdPT09dCYmdC5xdWlldCYmKHNiKCJUQUdHSU5HIiwyKSxhLndhaXRQZXJpb2RUaW1lZE91dD0hMCxhLmNsZWFyVGltZW91dChiLHZvaWQgMCxoKSwKYS5ub3RpZnlMaXN0ZW5lcnMoKSl9LGcpfX07az11bC5wcm90b3R5cGU7ay5jbGVhclRpbWVvdXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVthXSxlPWMuZGVsZWdhdGVkQ29uc2VudFR5cGVzLGY7Zm9yKGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiZlW2ZdPT09YSYmZC5wdXNoKGYpO3ZhciBnPXRoaXMuZW50cmllc1thXXx8e30saD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpO2lmKGcucXVpZXQpe2cucXVpZXQ9ITE7Zm9yKHZhciBsPW0oZCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpd2wodGhpcyxuLnZhbHVlKX1lbHNlIGlmKGIhPT12b2lkIDAmJmghPT1iKWZvcih2YXIgcD1tKGQpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXdsKHRoaXMscS52YWx1ZSl9OwprLnVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8dGhpcy51c2VkVXBkYXRlfHwhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkVXBkYXRlPXRoaXMuYWN0aXZlPSEwO2lmKGIhPW51bGwpe3ZhciBkPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyksZT10aGlzLmVudHJpZXM7KGVbYV09ZVthXXx8e30pLnVwZGF0ZT1iPT09ImdyYW50ZWQiO3RoaXMuY2xlYXJUaW1lb3V0KGEsZCxjKX19OwprLmRlY2xhcmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSEwO3ZhciBmPXRoaXMuZW50cmllcyxnPWZbYV18fHt9LGg9Zy5kZWNsYXJlX3JlZ2lvbixsPWMmJnpiKGMpP2MudG9VcHBlckNhc2UoKTp2b2lkIDA7ZD1kLnRvVXBwZXJDYXNlKCk7ZT1lLnRvVXBwZXJDYXNlKCk7aWYoZD09PSIifHxsPT09ZXx8KGw9PT1kP2ghPT1lOiFsJiYhaCkpe3ZhciBuPXtyZWdpb246Zy5yZWdpb24sZGVjbGFyZV9yZWdpb246bCxkZWNsYXJlOmI9PT0iZ3JhbnRlZCIsaW1wbGljaXQ6Zy5pbXBsaWNpdCxkZWZhdWx0OmcuZGVmYXVsdCx1cGRhdGU6Zy51cGRhdGUscXVpZXQ6Zy5xdWlldH07aWYoZCE9PSIifHxnLmRlY2xhcmUhPT0hMSlmW2FdPW59fTsKay5pbXBsaWNpdD1mdW5jdGlvbihhLGIpe3RoaXMudXNlZEltcGxpY2l0PSEwO3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV09Y1thXXx8e307ZC5pbXBsaWNpdCE9PSExJiYoZC5pbXBsaWNpdD1iPT09ImdyYW50ZWQiKX07CmsuZ2V0Q29uc2VudFN0YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXXx8e30sZT1kLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGY9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1thXTtpZihmPT09MylyZXR1cm4gMTtpZihmPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9ZC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGI9PW51bGw/MDpiLmRlbGVnYXRlZENvbnNlbnRUeXBlcy5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGc9Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbYV0saD1jW2ddfHx7fTtlPWgudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgbD1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2ddO2lmKGw9PT0zKXJldHVybiAxO2lmKGw9PT0yKXJldHVybiAyfWVsc2UgaWYoZT0KaC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyfWU9ZC5kZWNsYXJlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2U9ZC5pbXBsaWNpdDtyZXR1cm4gZSE9PXZvaWQgMD9lPzM6NDowfTtrLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dGhpcy5ILnB1c2goe2NvbnNlbnRUeXBlczphLGllOmJ9KX07dmFyIHdsPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxhLkgubGVuZ3RoOysrYyl7dmFyIGQ9YS5IW2NdO0FycmF5LmlzQXJyYXkoZC5jb25zZW50VHlwZXMpJiZkLmNvbnNlbnRUeXBlcy5pbmRleE9mKGIpIT09LTEmJihkLnhvPSEwKX19O3VsLnByb3RvdHlwZS5ub3RpZnlMaXN0ZW5lcnM9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPHRoaXMuSC5sZW5ndGg7KytjKXt2YXIgZD10aGlzLkhbY107aWYoZC54byl7ZC54bz0hMTt0cnl7ZC5pZSh7Y29uc2VudEV2ZW50SWQ6YSxjb25zZW50UHJpb3JpdHlJZDpifSl9Y2F0Y2goZSl7fX19fTt2YXIgeGw9ITEseWw9ITEsemw9e30sQWw9e2RlbGVnYXRlZENvbnNlbnRUeXBlczp7fSxjb3JlUGxhdGZvcm1TZXJ2aWNlczp7fSx1c2VkQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxjb250YWluZXJTY29wZWREZWZhdWx0czooemwuYWRfc3RvcmFnZT0xLHpsLmFuYWx5dGljc19zdG9yYWdlPTEsemwuYWRfdXNlcl9kYXRhPTEsemwuYWRfcGVyc29uYWxpemF0aW9uPTEsemwpLHVzZWRDb250YWluZXJTY29wZWREZWZhdWx0czohMX07ZnVuY3Rpb24gQmwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybih6YihhKT9bYV06YSkuZXZlcnkoZnVuY3Rpb24oYyl7c3dpdGNoKGIuZ2V0Q29uc2VudFN0YXRlKGMsQWwpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KX0KZnVuY3Rpb24gQ2woYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiBiLmdldENvbnNlbnRTdGF0ZShhLEFsKX1mdW5jdGlvbiBEbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIShiLmVudHJpZXNbYV18fHt9KS5xdWlldH1mdW5jdGlvbiBFbCgpe2lmKCFZZig1KSlyZXR1cm4hMTt2YXIgYT10bCgpO2EuYWNjZXNzZWRBbnk9ITA7aWYoYS5hY3RpdmUpcmV0dXJuITA7aWYoIUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cylyZXR1cm4hMTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhBbC5jb250YWluZXJTY29wZWREZWZhdWx0cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2MudmFsdWVdIT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGbChhLGIpe3RsKCkuYWRkTGlzdGVuZXIoYSxiKX0KZnVuY3Rpb24gR2woYSxiKXt0bCgpLm5vdGlmeUxpc3RlbmVycyhhLGIpfWZ1bmN0aW9uIEhsKGEsYil7aWYoYi5ldmVyeShEbCkpYSh7fSk7ZWxzZXt2YXIgYz0hMTtGbChiLGZ1bmN0aW9uKGQpeyFjJiZiLmV2ZXJ5KERsKSYmKGM9ITAsYShkKSl9KX19CmZ1bmN0aW9uIElsKGEsYil7dmFyIGM9emIoYik/W2JdOmIsZD17fSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBCbChoKSYmIWRbaF19KX0sZj1lKCk7aWYoZi5sZW5ndGghPT1jLmxlbmd0aCl7dmFyIGc9ZnVuY3Rpb24oaCl7Zm9yKHZhciBsPW0oaCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpZFtuLnZhbHVlXT0hMH07ZyhmKTtGbChjLGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGwocSl7cS5sZW5ndGghPT0wJiYoZyhxKSxoLmNvbnNlbnRUeXBlcz1xLGEoaCkpfXZhciBuPWUoKTtpZihuLmxlbmd0aCE9PTApe3ZhciBwPU9iamVjdC5rZXlzKGQpLmxlbmd0aDtuLmxlbmd0aCtwPj1jLmxlbmd0aD9sKG4pOkEuc2V0VGltZW91dChmdW5jdGlvbigpe2woZSgpKX0sNTAwKX19KX19O3ZhciBKbD0hMTtmdW5jdGlvbiBLbChhLGIpe3ZhciBjPXdrKCksZD10aygpO0UoMjYpO3ZhciBlPUlmKDQ3KT8wOklmKDUwKT8xOjMsZj1YaigpO2lmKHBsKCkpe3ZhciBnPUxsKCJJTklUIik7Zy5jb250YWluZXJMb2FkU291cmNlPWEhPW51bGw/YTowO2ImJihnLnBhcmVudFRhcmdldFJlZmVyZW5jZT1iKTtnLmFsaWFzZXM9YztnLmRlc3RpbmF0aW9ucz1kO2UhPT12b2lkIDAmJihnLmd0Zz17c291cmNlOmUsbVBhdGg6ZiE9bnVsbD9mOiIifSk7b2woZyl9fQpmdW5jdGlvbiBNbChhKXt2YXIgYixjLGQsZTtiPWEudGFyZ2V0SWQ7Yz1hLnJlcXVlc3Q7ZD1hLnFiO2U9YS5pc0JhdGNoZWQ7dmFyIGY7aWYoZj1wbCgpKXt2YXIgZzthOnN3aXRjaChjLmVuZHBvaW50KXtjYXNlIDY4OmNhc2UgNjk6Y2FzZSAxOTpjYXNlIDYyOmNhc2UgNDc6Zz0hMDticmVhayBhO2RlZmF1bHQ6Zz0hMX1mPSFnfWlmKGYpe3ZhciBoPUxsKCJHVEFHX0hJVCIse2V2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7aC50YXJnZXQ9YjtoLnVybD1jLnVybDtjLnBvc3RCb2R5JiYoaC5wb3N0Qm9keT1jLnBvc3RCb2R5KTtoLnBhcmFtZXRlckVuY29kaW5nPWMucGFyYW1ldGVyRW5jb2Rpbmc7aC5lbmRwb2ludD1jLmVuZHBvaW50O2UhPT12b2lkIDAmJihoLmlzQmF0Y2hlZD1lKTtvbChoKX19ZnVuY3Rpb24gTmwoYSl7cGwoKSYmTWwoYSgpKX0KZnVuY3Rpb24gTGwoYSxiKXtiPWI9PT12b2lkIDA/e306YjtiLmdyb3VwSWQ9T2w7dmFyIGMsZD1iLGU9UGwsZj17cHVibGljSWQ6UWx9O2QuZXZlbnRJZCE9bnVsbCYmKGYuZXZlbnRJZD1kLmV2ZW50SWQpO2QucHJpb3JpdHlJZCE9bnVsbCYmKGYucHJpb3JpdHlJZD1kLnByaW9yaXR5SWQpO2QuZXZlbnROYW1lJiYoZi5ldmVudE5hbWU9ZC5ldmVudE5hbWUpO2QuZ3JvdXBJZCYmKGYuZ3JvdXBJZD1kLmdyb3VwSWQpO2QudGFnTmFtZSYmKGYudGFnTmFtZT1kLnRhZ05hbWUpO2M9e2NvbnRhaW5lclByb2R1Y3Q6IkdUTSIsa2V5OmYsdmVyc2lvbjplLG1lc3NhZ2VUeXBlOmF9O2MuY29udGFpbmVyUHJvZHVjdD1KbD8iT0dUIjoiR1RNIjtjLmtleS50YXJnZXRSZWY9Umw7cmV0dXJuIGN9dmFyIFFsPSIiLFBsPSIiLFJsPXtjdGlkOiIiLGlzRGVzdGluYXRpb246ITF9LE9sOwpmdW5jdGlvbiBTbChhKXt2YXIgYj1FKDUpLGM9SWYoNDUpLGQ9c2soKSxlPUUoNiksZj1FKDEpO0UoMjMpO2tsPTA7bGw9ITA7cmwoKTtPbD1hO1FsPWI7UGw9ZjtKbD1jO1JsPXtjdGlkOmIsaXNEZXN0aW5hdGlvbjpkLGNhbm9uaWNhbElkOmV9fTtmdW5jdGlvbiBUbChhLGIsYyxkKXtpZihwbCgpKXt2YXIgZT1iLk07TWwoe3RhcmdldElkOmR8fFtiLnRhcmdldC5kZXN0aW5hdGlvbklkXSxyZXF1ZXN0Ont1cmw6YSxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OmN9LHFiOntldmVudElkOmUuZXZlbnRJZCxwcmlvcml0eUlkOmUucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19O2Z1bmN0aW9uIFVsKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly8iK2ErYjtyZXR1cm4gYz9mdW5jdGlvbigpe3JldHVybiBXaigpP1hqKCkrYytiOmR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTt2YXIgVmw9e30sV2w9KFZsWzIyXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2FzL2QiKSxWbFs2MF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2dzIiksVmxbMjNdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9nL2QiKSxWbCk7dmFyIFhsPXt9LFlsPShYbFs1XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbOF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNjZdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvdWNvbnZlcnNpb24iKSxYbFs2M109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzY0XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs2NV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNzRdPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9hcy9wL2MifSxYbCk7dmFyIFpsPXt9LCRsPShabFs0NV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb2xsZWN0IiksWmxbNDZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29sbGVjdCIsIi9ncyIpLFpsWzY5XT1VbCgiYWQuZG91YmxlY2xpY2submV0IiwiL2NjbS9zL2NvbGxlY3QiKSxabFs1OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmxbNTddPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabCk7dmFyIGFtPXt9LGJtPShhbVs5XT1VbCgiZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0IiwiL3BhZ2VhZC92aWV3dGhyb3VnaGNvbnZlcnNpb24iKSxhbVs2OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3Jta3QvY29sbGVjdCIpLGFtKTt2YXIgY209e30sZG09KGNtWzExXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bMjFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbVs3Ml09VWwoImdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bNzNdPVVsKCJnb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtKTt2YXIgZW09e30sZm09KGVtWzUxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvdHJhdmVsL2ZsaWdodHMvY2xpY2svY29udmVyc2lvbiIpLGVtKTt2YXIgZ209e30saG09KGdtWzFdPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2FjdGl2aXR5OyJ9LGdtWzJdPWZ1bmN0aW9uKCl7cmV0dXJuKFdqKCk/WGooKToiaHR0cHM6Ly9hZGUuZ29vZ2xlc3luZGljYXRpb24uY29tIikrIi9kZG0vYWN0aXZpdHkiKyhNKDQ2Nyk/IjsiOiIvIil9LGdtWzNdPWZ1bmN0aW9uKGEpe3JldHVybiJodHRwczovLyIrYS5scisiLmZscy5kb3VibGVjbGljay5uZXQvYWN0aXZpdHlpOyJ9LGdtKTtmdW5jdGlvbiBpbShhKXtzYigiSEVBTFRIIixhKX07dmFyIGptPXtiYTp7UHQ6ImF3X3VzZXJfZGF0YV9jYWNoZSIsb2k6ImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCIsYmg6ImRpYWdub3N0aWNzX3BhZ2VfaWQiLG9wOiJlbWVtbyIsZHU6ImVtX3JlZ2lzdHJ5IixTaToiZWFiIixydToiZmxfdXNlcl9kYXRhX2NhY2hlIix0dToiZ2E0X3VzZXJfZGF0YV9jYWNoZSIsTHU6ImlkY19wdl9jbGFpbSIsU2U6ImlwX2dlb19kYXRhX2NhY2hlIixYaToiaXBfZ2VvX2ZldGNoX2luX3Byb2dyZXNzIixqbjoibmJfZGF0YSIsVHE6InBhZ2VfZXhwZXJpbWVudF9pZHMiLGxuOiJwbGQiLFZlOiJwdF9kYXRhIixtbjoicHRfbGlzdGVuZXJfc2V0IixrajoicmV0cnlfY29udGFpbmVycyIsT2g6InNlcnZpY2Vfd29ya2VyX2VuZHBvaW50IixacToic2hhcmVkX3VzZXJfaWQiLGFyOiJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiLHNqOiJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiLGJ2OiJhd2giLGhyOiJ1bml2ZXJzYWxfY2xhaW1fcmVnaXN0cnkifX07dmFyIGttPWZ1bmN0aW9uKGEpe3JldHVybiB0ZihmdW5jdGlvbihiKXtmb3IodmFyIGMgaW4gYSlpZihiPT09YVtjXSYmIS9eWzAtOV0rJC8udGVzdChjKSlyZXR1cm4hMDtyZXR1cm4hMX0pfShqbS5iYSk7CmZ1bmN0aW9uIGxtKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7aWYoa20oYSkpe3ZhciBjLGQsZT0oZD0oYz1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSkpLnhjZCkhPW51bGw/ZDpjLnhjZD17fTtpZihlW2FdKXJldHVybiBlW2FdO2lmKGIpe3ZhciBmPXZvaWQgMCxnPTEsaD17fSxsPXtzZXQ6ZnVuY3Rpb24obil7Zj1uO2wubm90aWZ5KCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBmfSxzdWJzY3JpYmU6ZnVuY3Rpb24obil7aFtTdHJpbmcoZyldPW47cmV0dXJuIGcrK30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24obil7dmFyIHA9U3RyaW5nKG4pO3JldHVybiBoLmhhc093blByb3BlcnR5KHApPyhkZWxldGUgaFtwXSwhMCk6ITF9LG5vdGlmeTpmdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKGgpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTt0cnl7aFtxXShhLGYpfWNhdGNoKHIpe319fX07cmV0dXJuIGVbYV09bH19fQpmdW5jdGlvbiBtbShhLGIpe3ZhciBjPWxtKGEsITApO2MmJmMuc2V0KGIpfWZ1bmN0aW9uIG5tKGEpe3ZhciBiO3JldHVybihiPWxtKGEpKT09bnVsbD92b2lkIDA6Yi5nZXQoKX1mdW5jdGlvbiBvbShhLGIpe3ZhciBjPWxtKGEpO2lmKCFjKXtjPWxtKGEsITApO2lmKCFjKXJldHVybjtjLnNldChiKX1yZXR1cm4gYy5nZXQoKX1mdW5jdGlvbiBwbShhLGIpe2lmKHR5cGVvZiBiPT09ImZ1bmN0aW9uIil7dmFyIGM7cmV0dXJuKGM9bG0oYSwhMCkpPT1udWxsP3ZvaWQgMDpjLnN1YnNjcmliZShiKX19ZnVuY3Rpb24gcW0oYSxiKXt2YXIgYz1sbShhKTtyZXR1cm4gYz9jLnVuc3Vic2NyaWJlKGIpOiExfTt2YXIgc209ZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPSExfTtzbS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3RoaXMuS3x8KHRoaXMuSD10bSgpLHRoaXMuSFsiMCJdJiZvbShqbS5iYS5TZSxKU09OLnN0cmluZ2lmeSh0aGlzLkgpKSl9Owp2YXIgeG09ZnVuY3Rpb24oKXt2YXIgYT11bSxiPXZtLGM9dm9pZCAwLGQ9ZnVuY3Rpb24oKXtjIT09dm9pZCAwJiZxbShqbS5iYS5TZSxjKTt0cnl7dmFyIGY9bm0oam0uYmEuU2UpO2IuSD1KU09OLnBhcnNlKGYpfWNhdGNoKGcpe1AoMTIzKSxpbSgyKSxiLkg9e319Yi5LPSEwO2EoKX0sZT1ubShqbS5iYS5TZSk7ZT9kKGUpOihjPXBtKGptLmJhLlNlLGQpLHdtKCkpfSx3bT1mdW5jdGlvbigpe2lmKCFubShqbS5iYS5YaSkpe21tKGptLmJhLlhpLCEwKTt2YXIgYT1mdW5jdGlvbihiKXttbShqbS5iYS5TZSxifHwie30iKTttbShqbS5iYS5YaSwhMSl9O3RyeXtBLmZldGNoKCJodHRwczovL3d3dy5nb29nbGUuY29tL2NjbS9nZW8iLHttZXRob2Q6IkdFVCIsY2FjaGU6Im5vLXN0b3JlIixtb2RlOiJjb3JzIixjcmVkZW50aWFsczoib21pdCJ9KS50aGVuKGZ1bmN0aW9uKGIpe2Iub2s/Yi50ZXh0KCkudGhlbihmdW5jdGlvbihjKXthKGMpfSxmdW5jdGlvbigpe2EoKX0pOmEoKX0sZnVuY3Rpb24oKXthKCl9KX1jYXRjaChiKXthKCl9fX0sCnRtPWZ1bmN0aW9uKCl7dmFyIGE9RSgyMik7dHJ5e3JldHVybiBKU09OLnBhcnNlKHFiKGEpKX1jYXRjaChiKXtyZXR1cm4gUCgxMjMpLGltKDIpLHt9fX0seW09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMCJdfHwiIn0sem09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMSJdfHwiIn0sQW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjIiXTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI5Il07cmV0dXJuIGJ9LERtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiNCJdfHwiIjsKcmV0dXJuIGJ9LEVtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiMyJdfHwiIjtyZXR1cm4gYn0sdm09bmV3IHNtO2Z1bmN0aW9uIEZtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiJodHRwczovLyIrKERtKCl8fCJ3d3ciKSsiLmdvb2dsZS1hbmFseXRpY3MuY29tLyIrYX1mdW5jdGlvbiBHbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTt2YXIgYj1EbSgpO3JldHVybiJodHRwczovLyIrKGI/YisiLiI6IiIpKyJhbmFseXRpY3MuZ29vZ2xlLmNvbS8iK2F9dmFyIEhtPXt9LEltPShIbVsxN109ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2FnL2cvYyI6R20oKX0sSG1bMTZdPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9nYS9nL2MiOkZtKCl9LEhtWzY3XT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiBEbSgpPyIiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyIrYX0sSG0pO2Z1bmN0aW9uIEptKGEsYixjKXt2YXIgZD1VbChiLCIvbWVhc3VyZW1lbnQvY29udmVyc2lvbiIsYyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIERtKCk/YSgibWVhc3VyZW1lbnQvY29udmVyc2lvbiIpOmQoKX19dmFyIEttPXt9LExtPShLbVs1NV09Sm0oRm0sInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2dzIiksS21bNTRdPUptKEdtLCJ3d3cuZ29vZ2xlLmNvbSIsIi9nIiksS20pO3ZhciBNbT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LFdsLFlsLCRsLGJtLGRtLGZtLGhtLExtLEltKTtmdW5jdGlvbiBObShhLGIpe3ZhciBjPU9iamVjdC5rZXlzKGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYltkXSE9bnVsbH0pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsiPSIrYltkXX0pLmpvaW4oIiYiKTtyZXR1cm4gTW1bYV0odm9pZCAwKSsiPyIrY307dmFyIE9tPXt9LFBtPShPbS50ZHA9MSxPbS5leHA9MSxPbS5ndG09MSxPbS5waWQ9MSxPbS5kbD0xLE9tLnNlcT0xLE9tLnQ9MSxPbS52PTEsT20pLFJtPWZ1bmN0aW9uKCl7dmFyIGE9UW07cmV0dXJuIE9iamVjdC5rZXlzKGEuSCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBhLkhbYl19KX0sU209ZnVuY3Rpb24oYSxiLGMpe2lmKGEuSFtiXT09PXZvaWQgMHx8KGM9PT12b2lkIDA/MDpjKSlhLkhbYl09ITB9LFRtPWZ1bmN0aW9uKGEpe2EuZm9yRWFjaChmdW5jdGlvbihiKXtQbVtiXXx8KFFtLkhbYl09ITEpfSl9LFFtPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9e319O2Z1bmN0aW9uIFVtKGEsYixjKXt2YXIgZD1jPT09dm9pZCAwPyEwOmMsZT1RbTtlLktbYV09YjsoZD09PXZvaWQgMHx8ZCkmJlNtKGUsYSl9ZnVuY3Rpb24gVm0oYSxiKXtTbShRbSxhLGI9PT12b2lkIDA/ITE6Yil9O2Z1bmN0aW9uIFdtKGEpe3ZhciBiPTA7YS5HYy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2J8PTE8PGN9KTtyZXR1cm4gYn1mdW5jdGlvbiBYbSgpe3JldHVybnt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxsZjp7fX19ZnVuY3Rpb24gWW0oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmtleXMoYS5uZikuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBOdW1iZXIoZiktTnVtYmVyKGcpfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybltmLGIoYS5uZltmXSldfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmWzFdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oYyl9KS5qb2luKGQpO3JldHVybiBlP2U6dm9pZCAwfQpmdW5jdGlvbiBabShhLGIpe3ZhciBjLGQsZTtjPWM9PT12b2lkIDA/Il8iOmM7ZD1kPT09dm9pZCAwPyI7IjpkO2U9ZT09PXZvaWQgMD8ifiI6ZTtmb3IodmFyIGY9W10sZz1tKE9iamVjdC5rZXlzKGEubGYpLnNvcnQoKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1ZbShhLmxmW2xdLGIsYyxkKTtpZihuKXt2YXIgcD12b2lkIDA7Zi5wdXNoKCIiKygocD1sKSE9bnVsbD9wOiIiKStkK24pfX1yZXR1cm4gZi5sZW5ndGg/Zi5qb2luKGUpOnZvaWQgMH0KZnVuY3Rpb24gJG0oYSl7YS5qYj0wO2EuR2MuY2xlYXIoKTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhLmxmKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWEubGZbYy52YWx1ZV07ZC5qYj0wO2QuR2MuY2xlYXIoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkLm5mKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWQubmZbZi52YWx1ZV07Zy5qYj0wO2cuR2MuY2xlYXIoKX19fQpmdW5jdGlvbiBhbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8xOmQ7YS50b3RhbCs9ZDthLmpiKz1kO3ZhciBmLGc9Yj09PXZvaWQgMD8iIjpiO2Y9YS5sZltnXXx8KGEubGZbZ109e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LG5mOnt9fSk7Zi50b3RhbCs9ZDtmLmpiKz1kO3ZhciBoLGw9U3RyaW5nKGMpO2g9Zi5uZltsXXx8KGYubmZbbF09e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0fSk7aC50b3RhbCs9ZDtoLmpiKz1kO2UhPT12b2lkIDAmJihhLkdjLmFkZChlKSxmLkdjLmFkZChlKSxoLkdjLmFkZChlKSl9O3ZhciBibj1mdW5jdGlvbigpe3RoaXMuSD1YbSgpfTtibi5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGEsYil7YW4odGhpcy5ILGEsYil9O3ZhciBjbj1uZXcgYm47ZnVuY3Rpb24gZG4oYSl7dmFyIGI9U3RyaW5nKGFbR2YuWWJdfHwiIikucmVwbGFjZSgvXy9nLCIiKTtyZXR1cm4gU2IoYiwiY3Z0Iik/ImN2dCI6Yn12YXIgZW49QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiP2d0bV9sYXRlbmN5PSIpPj0wfHxBLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCImZ3RtX2xhdGVuY3k9Iik+PTA7dmFyIGduPWZ1bmN0aW9uKCl7dmFyIGE9Zm47cmV0dXJuIE0oNjAzKSYmSWYoNjUsITEpJiYhYS5afSxmbj1uZXcgZnVuY3Rpb24oYSl7dGhpcy5SPWEoKTt2YXIgYj1KZigyNyk7dGhpcy5OPWVufHx0aGlzLlI8Yjt2YXIgYz1KZig0Mik7dGhpcy5aPWVufHx0aGlzLlI+PTEtYzt2YXIgZD1NKDYwMykmJklmKDY1LCExKTt0aGlzLks9dGhpcy5afHxkO3ZhciBlPUpmKDI3KSxmPUpmKDYzKTt0aGlzLkg9ZW58fGY9PT0xfHx0aGlzLlI+PWUmJnRoaXMuUjxlK2Z9KGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9KTt2YXIgaG49ZnVuY3Rpb24oKXt0aGlzLkg9e319O2huLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyl7aWYoZm4uSyl7dmFyIGQ9am4oYixjKTtpZihkKXt2YXIgZSxmPWI7Zj09PTQmJihmPTUpO3ZhciBnPXRoaXMuSFtmXTtnfHwoZz10aGlzLkhbZl09e30pO2U9Zzt2YXIgaD1lW2RdO2h8fChoPWVbZF09W10pO2gucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpKTtjbi5pbmNyZW1lbnQoYS5kZXN0aW5hdGlvbklkLGEuZW5kcG9pbnQpO2EuZW5kcG9pbnQhPT01NiYmYS5lbmRwb2ludCE9PTYxJiZWbSgibWRlIiwhMCl9fX07CnZhciBtbj1mdW5jdGlvbihhLGIpe3ZhciBjPWtuLGQ9am4oYSxiKTtpZihkKXt2YXIgZT1sbihjLGEpO2lmKGUpe3ZhciBmPWVbZF07ZiYmKGVbZF09Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWcuRW99KSl9fX0sbG49ZnVuY3Rpb24oYSxiKXtiPT09NCYmKGI9NSk7cmV0dXJuIGEuSFtiXX0sam49ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2lmKGJbMF09PT0iLyIpe3ZhciBkO2M9KChkPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpkLm9yaWdpbikrYn10cnl7dmFyIGU9bmV3IFVSTChjKTtyZXR1cm4gYT09PTI/ZS5vcmlnaW46ZS5vcmlnaW4rZS5wYXRobmFtZX1jYXRjaChmKXt9fSxrbj1uZXcgaG47CmZ1bmN0aW9uIG5uKGEpe3N3aXRjaChhKXtjYXNlICJzY3JpcHQtc3JjIjpyZXR1cm4gNDtjYXNlICJzY3JpcHQtc3JjLWVsZW0iOnJldHVybiA1O2Nhc2UgImZyYW1lLXNyYyI6cmV0dXJuIDI7Y2FzZSAiY29ubmVjdC1zcmMiOnJldHVybiAxO2Nhc2UgImltZy1zcmMiOnJldHVybiAzfX07ZnVuY3Rpb24gb24oYSxiLGMpe3ZhciBkLGU9YS5Hb29nbGViUWhDc087ZXx8KGU9e30sYS5Hb29nbGViUWhDc089ZSk7ZD1lO2lmKGRbYl0pcmV0dXJuITE7ZFtiXT1bXTtkW2JdWzBdPWM7cmV0dXJuITB9O3ZhciBwbixxbjthOntmb3IodmFyIHJuPVsiQ0xPU1VSRV9GTEFHUyJdLHNuPVJhLHRuPTA7dG48cm4ubGVuZ3RoO3RuKyspaWYoc249c25bcm5bdG5dXSxzbj09bnVsbCl7cW49bnVsbDticmVhayBhfXFuPXNufXZhciB1bj1xbiYmcW5bNjEwNDAxMzAxXTtwbj11biE9bnVsbD91bjohMTtmdW5jdGlvbiB2bigpe3ZhciBhPVJhLm5hdmlnYXRvcjtpZihhKXt2YXIgYj1hLnVzZXJBZ2VudDtpZihiKXJldHVybiBifXJldHVybiIifXZhciB3bix4bj1SYS5uYXZpZ2F0b3I7d249eG4/eG4udXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIHluKGEpe2lmKCFwbnx8IXduKXJldHVybiExO2Zvcih2YXIgYj0wO2I8d24uYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPXduLmJyYW5kc1tiXS5icmFuZDtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHpuKGEpe3JldHVybiB2bigpLmluZGV4T2YoYSkhPS0xfTtmdW5jdGlvbiBBbigpe3JldHVybiBwbj8hIXduJiZ3bi5icmFuZHMubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gQm4oKXtyZXR1cm4gQW4oKT8hMTp6bigiT3BlcmEiKX1mdW5jdGlvbiBDbigpe3JldHVybiB6bigiRmlyZWZveCIpfHx6bigiRnhpT1MiKX1mdW5jdGlvbiBEbigpe3JldHVybiBBbigpP3luKCJDaHJvbWl1bSIpOih6bigiQ2hyb21lIil8fHpuKCJDcmlPUyIpKSYmIShBbigpPzA6em4oIkVkZ2UiKSl8fHpuKCJTaWxrIil9O2Z1bmN0aW9uIEVuKCl7cmV0dXJuIHBuPyEhd24mJiEhd24ucGxhdGZvcm06ITF9ZnVuY3Rpb24gRm4oKXtyZXR1cm4gem4oImlQaG9uZSIpJiYhem4oImlQb2QiKSYmIXpuKCJpUGFkIil9ZnVuY3Rpb24gR24oKXtGbigpfHx6bigiaVBhZCIpfHx6bigiaVBvZCIpfTt2YXIgSG49ZnVuY3Rpb24oYSl7SG5bIiAiXShhKTtyZXR1cm4gYX07SG5bIiAiXT1mdW5jdGlvbigpe307Qm4oKTtBbigpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpO3puKCJFZGdlIik7IXpuKCJHZWNrbyIpfHx2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKXx8em4oIkVkZ2UiKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKSYmem4oIk1vYmlsZSIpO0VuKCl8fHpuKCJNYWNpbnRvc2giKTtFbigpfHx6bigiV2luZG93cyIpOyhFbigpP3duLnBsYXRmb3JtPT09IkxpbnV4Ijp6bigiTGludXgiKSl8fEVuKCl8fHpuKCJDck9TIik7RW4oKXx8em4oIkFuZHJvaWQiKTtGbigpO3puKCJpUGFkIik7em4oImlQb2QiKTtHbigpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJrYWlvcyIpO0NuKCk7Rm4oKXx8em4oImlQb2QiKTt6bigiaVBhZCIpOyF6bigiQW5kcm9pZCIpfHxEbigpfHxDbigpfHxCbigpfHx6bigiU2lsayIpO0RuKCk7IXpuKCJTYWZhcmkiKXx8RG4oKXx8KEFuKCk/MDp6bigiQ29hc3QiKSl8fEJuKCl8fChBbigpPzA6em4oIkVkZ2UiKSl8fChBbigpP3luKCJNaWNyb3NvZnQgRWRnZSIpOnpuKCJFZGcvIikpfHwoQW4oKT95bigiT3BlcmEiKTp6bigiT1BSIikpfHxDbigpfHx6bigiU2lsayIpfHx6bigiQW5kcm9pZCIpfHxHbigpO3ZhciBJbj17fSxKbj1udWxsOwpmdW5jdGlvbiBLbihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U+MjU1JiYoYltjKytdPWUmMjU1LGU+Pj04KTtiW2MrK109ZX12YXIgZj00O2Y9PT12b2lkIDAmJihmPTApO2lmKCFKbil7Sm49e307Zm9yKHZhciBnPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGg9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbD0wO2w8NTtsKyspe3ZhciBuPWcuY29uY2F0KGhbbF0uc3BsaXQoIiIpKTtJbltsXT1uO2Zvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO0puW3FdPT09dm9pZCAwJiYoSm5bcV09cCl9fX1mb3IodmFyIHI9SW5bZl0sdD1BcnJheShNYXRoLmZsb29yKGIubGVuZ3RoLzMpKSx1PXJbNjRdfHwiIix2PTAseD0wO3Y8Yi5sZW5ndGgtMjt2Kz0zKXt2YXIgeT1iW3ZdLHo9Ylt2KzFdLEM9Ylt2KzJdLApEPXJbeT4+Ml0sST1yWyh5JjMpPDw0fHo+PjRdLEc9clsoeiYxNSk8PDJ8Qz4+Nl0sTj1yW0MmNjNdO3RbeCsrXT0iIitEK0krRytOfXZhciBTPTAsVz11O3N3aXRjaChiLmxlbmd0aC12KXtjYXNlIDI6Uz1iW3YrMV0sVz1yWyhTJjE1KTw8Ml18fHU7Y2FzZSAxOnZhciBlYT1iW3ZdO3RbeF09IiIrcltlYT4+Ml0rclsoZWEmMyk8PDR8Uz4+NF0rVyt1fXJldHVybiB0LmpvaW4oIiIpfTt2YXIgTG49ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O3ZhciBNbj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO2Z1bmN0aW9uIE5uKGEsYixjLGQpe2Zvcih2YXIgZT1iLGY9Yy5sZW5ndGg7KGU9YS5pbmRleE9mKGMsZSkpPj0wJiZlPGQ7KXt2YXIgZz1hLmNoYXJDb2RlQXQoZS0xKTtpZihnPT0zOHx8Zz09NjMpe3ZhciBoPWEuY2hhckNvZGVBdChlK2YpO2lmKCFofHxoPT02MXx8aD09Mzh8fGg9PTM1KXJldHVybiBlfWUrPWYrMX1yZXR1cm4tMX12YXIgT249LyN8JC87CmZ1bmN0aW9uIFBuKGEsYil7dmFyIGM9YS5zZWFyY2goT24pLGQ9Tm4oYSwwLGIsYyk7aWYoZDwwKXJldHVybiBudWxsO3ZhciBlPWEuaW5kZXhPZigiJiIsZCk7aWYoZTwwfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIExuKGEuc2xpY2UoZCxlIT09LTE/ZTowKSl9dmFyIFFuPS9bPyZdKCR8IykvOwpmdW5jdGlvbiBSbihhLGIsYyl7Zm9yKHZhciBkLGU9YS5zZWFyY2goT24pLGY9MCxnLGg9W107KGc9Tm4oYSxmLGIsZSkpPj0wOyloLnB1c2goYS5zdWJzdHJpbmcoZixnKSksZj1NYXRoLm1pbihhLmluZGV4T2YoIiYiLGcpKzF8fGUsZSk7aC5wdXNoKGEuc2xpY2UoZikpO2Q9aC5qb2luKCIiKS5yZXBsYWNlKFFuLCIkMSIpO3ZhciBsLG49YyE9bnVsbD8iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSk6IiI7dmFyIHA9YituO2lmKHApe3ZhciBxLHI9ZC5pbmRleE9mKCIjIik7cjwwJiYocj1kLmxlbmd0aCk7dmFyIHQ9ZC5pbmRleE9mKCI/IiksdTt0PDB8fHQ+cj8odD1yLHU9IiIpOnU9ZC5zdWJzdHJpbmcodCsxLHIpO3E9W2Quc2xpY2UoMCx0KSx1LGQuc2xpY2UocildO3ZhciB2PXFbMV07cVsxXT1wP3Y/disiJiIrcDpwOnY7bD1xWzBdKyhxWzFdPyI/IitxWzFdOiIiKStxWzJdfWVsc2UgbD1kO3JldHVybiBsfTtmdW5jdGlvbiBTbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPVBuKGMsImZtdCIpO2lmKGQpe3ZhciBuPVBuKGMsInJhbmRvbSIpLHA9UG4oYywibGFiZWwiKXx8IiI7aWYoIW4pcmV0dXJuO3ZhciBxPUtuKExuKHApKyI6IitMbihuKSk7aWYoIW9uKGEscSxkKSlyZXR1cm59bCYmTnVtYmVyKGwpIT09ND8oYz1SbihjLCJyZm10IixsKSxjPVJuKGMsImZtdCIsNCkpOmx8fChjPVJuKGMsImZtdCIsNCkpO1VjKGMsZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2EuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cyYmZCYmKGEuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cz1udWxsLGQoKSl9LGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTtlPT1udWxsfHxlKCl9LGYsYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0ucGFyZW50RWxlbWVudHx8dm9pZCAwKTtyZXR1cm4gY307ZnVuY3Rpb24gVm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtpZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFduKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIGpkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMyxiWzBdKTtaYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFluKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIG1kLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsNSxiWzBdKTtVYy5hcHBseShudWxsLHcoYikpfQpmdW5jdGlvbiAkbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7YlswXSYma24ucmVnaXN0ZXIoYSwyLGJbMF0pO1hjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gYW8oYSl7dmFyIGI9U24uYXBwbHkobnVsbCx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpO2ImJmtuLnJlZ2lzdGVyKGEsNCxiKTtyZXR1cm4gYn07dmFyIGJvPXtNYTp7UmU6MCxVZToxLExoOjJ9fTtiby5NYVtiby5NYS5SZV09IkZVTExfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5VZV09IkxJTUlURURfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5MaF09Ik5PX1RSQU5TTUlTU0lPTiI7dmFyIGNvPXtpYTp7Z2Q6MCxjYjoxLHhkOjIsWmI6M319O2NvLmlhW2NvLmlhLmdkXT0iTk9fUVVFVUUiO2NvLmlhW2NvLmlhLmNiXT0iQURTIjtjby5pYVtjby5pYS54ZF09IkFOQUxZVElDUyI7Y28uaWFbY28uaWEuWmJdPSJNT05JVE9SSU5HIjt2YXIgZW89ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLmNvbnNlbnRUeXBlcz1ifTtlby5wcm90b3R5cGUuaXNDb25zZW50R3JhbnRlZD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLkgpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7Y2FzZSAxOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2RlZmF1bHQ6eWModGhpcy5ILCJjb25zZW50c1JlcXVpcmVkIGhhZCBhbiB1bmtub3duIHR5cGUiKX19Owp2YXIgZm89bmV3IGZ1bmN0aW9uKCl7dmFyIGE9e307dGhpcy5IPShhW2NvLmlhLmdkXT1iby5NYS5SZSxhW2NvLmlhLmNiXT1iby5NYS5SZSxhW2NvLmlhLnhkXT1iby5NYS5SZSxhW2NvLmlhLlpiXT1iby5NYS5SZSxhKTt2YXIgYj17fTt0aGlzLks9KGJbY28uaWEuZ2RdPW5ldyBlbygwLFtdKSxiW2NvLmlhLmNiXT1uZXcgZW8oMCxbImFkX3N0b3JhZ2UiXSksYltjby5pYS54ZF09bmV3IGVvKDAsWyJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiW2NvLmlhLlpiXT1uZXcgZW8oMSxbImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiKX07dmFyIGhvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy50eXBlPWE7dGhpcy5IPVtdO0ZsKGZvLktbYV0uY29uc2VudFR5cGVzLGZ1bmN0aW9uKCl7Z28oYil8fGIuZmx1c2goKX0pfTtoby5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9bSh0aGlzLkgpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKXt2YXIgYz1iLnZhbHVlO2MoKX10aGlzLkg9W119O3ZhciBnbz1mdW5jdGlvbihhKXtyZXR1cm4gZm8uSFthLnR5cGVdPT09Ym8uTWEuTGgmJiFmby5LW2EudHlwZV0uaXNDb25zZW50R3JhbnRlZCgpfSxpbz1mdW5jdGlvbihhLGIpe2dvKGEpP2EuSC5wdXNoKGIpOmIoKX0sam89ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IE1hcH0sbG89ZnVuY3Rpb24oYSl7dmFyIGI9a287Yi5ILmhhcyhhKXx8Yi5ILnNldChhLG5ldyBobyhhKSk7cmV0dXJuIGIuSC5nZXQoYSl9O2pvLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSC5jbGVhcigpfTsKdmFyIGtvPW5ldyBqbzt2YXIgbW89WyJmaW4iLCJmcyIsIm1jYyIsIm5jYyJdLG5vPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD8hMTphO3ZhciBiPVJtKCksYz1RbS5LLGQ9Yi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV0hPT12b2lkIDAmJihhfHwhbW8uaW5jbHVkZXMoZSkpfSk7VG0oZCk7cmV0dXJuIGQubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWNbZV07dHlwZW9mIGY9PT0iZnVuY3Rpb24iJiYoZj1mKCkpO3JldHVybiBmPyImIitlKyI9IitmOiIifSkuam9pbigiIikrIiZ6PTAifSxvbz1mdW5jdGlvbihhKXt2YXIgYj0iaHR0cHM6Ly8iK0UoMjEpLGM9Ii90ZD9pZD0iK0UoNSk7cmV0dXJuIiIrZmsoYikrYythfSxwbz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7aWYoJGsoMjYpJiZmbi5LJiZFKDUpJiYoY3x8IWduKCkpKXt2YXIgZD1sbyhjby5pYS5aYik7aWYoZ28oZCkpYS5IfHwoYS5IPSEwLGlvKGQsZnVuY3Rpb24oKXtyZXR1cm4gcG8oYSl9KSk7CmVsc2V7YiYmVW0oImZpbiIsIjEiKTt2YXIgZT1ubyhiKSxmPW9vKGUpLGc9e2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo2MX07Yj9ZbihnLGYsdm9pZCAwLHtRZzohMH0sdm9pZCAwLGZ1bmN0aW9uKCl7WmMoZisiJmltZz0xIil9KTpYbihnLGYpO2EuSD0hMTtxbyhlKX19fSxxbz1mdW5jdGlvbihhKXtpZihLYyYmKFNiKEtjLCJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS8iKXx8SWYoNDcpKSYmIShhLmluZGV4T2YoIiZjc3A9Iik8MCYmYS5pbmRleE9mKCImbWRlPSIpPDApKXt2YXIgYjthOnt0cnl7aWYoS2Mpe2I9bmV3IFVSTChLYyk7YnJlYWsgYX19Y2F0Y2goYyl7fWI9dm9pZCAwfWImJlVjKCIiK0tjKyhLYy5pbmRleE9mKCI/Iik+PTA/IiYiOiI/IikrImlzX3RkPTEiK2EpfX0scm89ZnVuY3Rpb24oYSl7Um0oKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiFQbVtiXX0pJiZwbyhhLCEwKX0sc289bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9ITE7CiRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3JvKGEpfSl9O2Z1bmN0aW9uIHRvKGEsYil7cG8oc28sYT09PXZvaWQgMD8hMTphLGI9PT12b2lkIDA/ITE6Yil9O3ZhciB1bz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSIsImFkX3BlcnNvbmFsaXphdGlvbiJdLHZvPVtGLkQuZGQsRi5ELnljLEYuRC5RZixGLkQuS2IsRi5ELnhjLEYuRC5mYixGLkQuRGIsRi5ELm5iLEYuRC5MYixGLkQudmNdLHlvPWZ1bmN0aW9uKCl7dmFyIGE9d287IWEuUiYmYS5IJiYodW8uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYl0hPT0xfSl8fHhvKCJtYmMiKSk7YS5SPSEwfSx4bz1mdW5jdGlvbihhKXtmbi5LJiYoVW0oYSwiMSIpLHRvKCkpfSx6bz1mdW5jdGlvbihhLGIpe3ZhciBjPXdvO2lmKCFjLk5bYl0mJihjLk5bYl09ITAsYy5LW2JdKSlmb3IodmFyIGQ9bSh2byksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpaWYoTyhhLGUudmFsdWUpKXt4bygiZXJjIik7YnJlYWt9fSx3bz1uZXcgZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5IPSExO3RoaXMuTj17fTt0aGlzLks9e319O3ZhciBBbz17fSxCbz1PYmplY3QuZnJlZXplKChBb1tGLkQuUmNdPTEsQW9bRi5ELmhoXT0xLEFvW0YuRC5zaV09MSxBb1tGLkQuU2NdPTEsQW9bRi5ELkhhXT0xLEFvW0YuRC5MYl09MSxBb1tGLkQuQ2JdPTEsQW9bRi5ELlRiXT0xLEFvW0YuRC5JZF09MSxBb1tGLkQudmNdPTEsQW9bRi5ELm5iXT0xLEFvW0YuRC5KZF09MSxBb1tGLkQuSGVdPTEsQW9bRi5ELk9hXT0xLEFvW0YuRC5RcF09MSxBb1tGLkQuUGZdPTEsQW9bRi5ELkZpXT0xLEFvW0YuRC5waF09MSxBb1tGLkQuV2NdPTEsQW9bRi5ELlFmXT0xLEFvW0YuRC5hcV09MSxBb1tGLkQuVGFdPTEsQW9bRi5ELlVmXT0xLEFvW0YuRC5mcV09MSxBb1tGLkQuT2RdPTEsQW9bRi5ELlJsXT0xLEFvW0YuRC5ZY109MSxBb1tGLkQuWmNdPTEsQW9bRi5ELkRiXT0xLEFvW0YuRC5hbV09MSxBb1tGLkQuV2JdPTEsQW9bRi5ELlRkXT0xLEFvW0YuRC5YYl09MSxBb1tGLkQuT2ldPTEsQW9bRi5ELmRkXT0xLEFvW0YuRC55aF09MSxBb1tGLkQuUGldPQoxLEFvW0YuRC5VZF09MSxBb1tGLkQueWNdPTEsQW9bRi5ELlZkXT0xLEFvW0YuRC5sbV09MSxBb1tGLkQuV2RdPTEsQW9bRi5ELmVkXT0xLEFvW0YuRC5val09MSxBbykpO09iamVjdC5mcmVlemUoW0YuRC56YSxGLkQuVWEsRi5ELk1iLEYuRC50YixGLkQuTmksRi5ELmZiLEYuRC5HaSxGLkQuTXBdKTsKdmFyIENvPXt9LERvPU9iamVjdC5mcmVlemUoKENvW0YuRC5xcF09MSxDb1tGLkQucnBdPTEsQ29bRi5ELnRwXT0xLENvW0YuRC51cF09MSxDb1tGLkQudnBdPTEsQ29bRi5ELnpwXT0xLENvW0YuRC5BcF09MSxDb1tGLkQuQnBdPTEsQ29bRi5ELkRwXT0xLENvW0YuRC55Zl09MSxDbykpLEVvPXt9LEZvPU9iamVjdC5mcmVlemUoKEVvW0YuRC52bF09MSxFb1tGLkQud2xdPTEsRW9bRi5ELnhlXT0xLEVvW0YuRC55ZV09MSxFb1tGLkQueGxdPTEsRW9bRi5ELkFkXT0xLEVvW0YuRC56ZV09MSxFb1tGLkQub2NdPTEsRW9bRi5ELlFjXT0xLEVvW0YuRC5xY109MSxFb1tGLkQuSWJdPTEsRW9bRi5ELkFlXT0xLEVvW0YuRC5yY109MSxFb1tGLkQueWxdPTEsRW8pKSxHbz1PYmplY3QuZnJlZXplKFtGLkQuUmMsRi5ELlNjLEYuRC5KZCxGLkQuUWYsRi5ELldmLEYuRC5UZCxGLkQuT2ksRi5ELlZkXSksSG89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhHbykpKSxJbz1PYmplY3QuZnJlZXplKFtGLkQuQ2IsCkYuRC5waCxGLkQueWgsRi5ELlBpLEYuRC5uaF0pLEpvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoSW8pKSksS289e30sTG89KEtvW0YuRC5rYV09IjEiLEtvW0YuRC5yYV09IjIiLEtvW0YuRC5tYV09IjMiLEtvW0YuRC5YYV09IjQiLEtvKSxNbz17fSxObz1PYmplY3QuZnJlZXplKChNby5zZWFyY2g9InMiLE1vLnlvdXR1YmU9InkiLE1vLnBsYXlzdG9yZT0icCIsTW8uc2hvcHBpbmc9ImgiLE1vLmFkcz0iYSIsTW8ubWFwcz0ibSIsTW8pKTtmdW5jdGlvbiBPbyhhKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/e306YX1mdW5jdGlvbiBQbyhhKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PW51bGw/IiI6dHlwZW9mIGE9PT0ib2JqZWN0Ij9hLnRvU3RyaW5nKCk6U3RyaW5nKGEpfWZ1bmN0aW9uIFFvKGEpe2lmKGEhPT12b2lkIDAmJmEhPT1udWxsKXJldHVybiBQbyhhKX07dmFyIFJvPVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdO2Z1bmN0aW9uIFNvKGEpe2Zvcih2YXIgYj1tKGFbRi5ELm5jXXx8WyIiXSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17cmVnaW9uOnZvaWQgMH0sYz1iLm5leHQoKSlkLnJlZ2lvbj1jLnZhbHVlLEdiKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyl7aWYoZiE9PUYuRC5uYyl7dmFyIGg9UG8oZyksbD1lLnJlZ2lvbixuPXltKCkscD16bSgpO3lsPSEwO3hsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVjbGFyZShmLGgsbCxuLHApfX19KGQpKX0KZnVuY3Rpb24gVG8oYSl7eW8oKTt2YXIgYj1hbCgxNyxmdW5jdGlvbigpe3JldHVybiExfSksYz1hbCgxNixmdW5jdGlvbigpe3JldHVybiExfSk7IWImJmMmJnhvKCJjcmMiKTtaaygxNywhMCk7dmFyIGQ9YVtGLkQuWWddO2QmJlAoNDEpO3ZhciBlPWFbRi5ELm5jXTtlP1AoNDApOmU9WyIiXTtmb3IodmFyIGY9bShlKSxnPWYubmV4dCgpLGg9e307IWcuZG9uZTtoPXtCbzp2b2lkIDB9LGc9Zi5uZXh0KCkpaC5Cbz1nLnZhbHVlLEdiKGEsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4scCl7aWYobiE9PUYuRC5uYyYmbiE9PUYuRC5ZZyl7dmFyIHE9UW8ocCkscj1sLkJvLHQ9TnVtYmVyKGQpLHU9eW0oKSx2PXptKCk7dD10PT09dm9pZCAwPzA6dDt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlZmF1bHQobixxLHIsdSx2LHQsQWwpfX19KGgpKX0KZnVuY3Rpb24gVW8oYSl7QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO3ZhciBiPWFbRi5ELm5jXTtpZihiKXt2YXIgYz1BcnJheS5pc0FycmF5KGIpP2I6W2JdO2lmKCFjLmluY2x1ZGVzKHptKCkpJiYhYy5pbmNsdWRlcyh5bSgpKSlyZXR1cm59R2IoYSxmdW5jdGlvbihkLGUpe3N3aXRjaChkKXtjYXNlICJhZF9zdG9yYWdlIjpjYXNlICJhbmFseXRpY3Nfc3RvcmFnZSI6Y2FzZSAiYWRfdXNlcl9kYXRhIjpjYXNlICJhZF9wZXJzb25hbGl6YXRpb24iOmJyZWFrO2RlZmF1bHQ6cmV0dXJufUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDtBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tkXT1lPT09ImdyYW50ZWQiPzM6Mn0pfQpmdW5jdGlvbiBWbyhhLGIpe3lvKCk7WmsoMTYsITApO0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1QbyhkKTt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLnVwZGF0ZShjLGUsQWwpfSk7R2woYi5ldmVudElkLGIucHJpb3JpdHlJZCl9ZnVuY3Rpb24gV28oYSl7YS5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihBbC5zZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwLEdiKE5vLGZ1bmN0aW9uKGIpe0FsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWEuYWxsPT09ImdyYW50ZWQiO0FsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMH0pKTtHYihhLGZ1bmN0aW9uKGIsYyl7YiE9PSJhbGwiJiYoQWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09Yz09PSJncmFudGVkIixBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITApfSl9CmZ1bmN0aW9uIFhvKGEpe0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gWW8oKXt2YXIgYT1abztBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gJG8oYSxiKXtGbChhLGIpfWZ1bmN0aW9uIGFwKGEsYil7SWwoYSxiKX1mdW5jdGlvbiBicChhLGIpe0hsKGEsYil9ZnVuY3Rpb24gY3AoKXt2YXIgYT1bRi5ELmthLEYuRC5YYSxGLkQubWFdO3RsKCkud2FpdEZvclVwZGF0ZShhLDUwMCxBbCl9ZnVuY3Rpb24gZHAoYSl7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7dGwoKS5jbGVhclRpbWVvdXQoZCx2b2lkIDAsQWwpfUdsKCl9CmZ1bmN0aW9uIGVwKGEpe2Zvcih2YXIgYj17fSxjPW0oYS5zcGxpdCgifCIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBifTt2YXIgZnA9T2JqZWN0LmZyZWV6ZShbRi5ELmthLEYuRC5tYV0pOwp2YXIgaHA9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltncFtlXXx8ZV09YVtlXX1yZXR1cm4gYn0saXA9ZnVuY3Rpb24oYSl7cmV0dXJuISFRKGEsSC5KLnZkKSYmUihhLEYuRC5QZCk9PT0iMSImJlIoYSxGLkQuSGQpIT09IjEiJiZYbyhmcCl9LGpwPWZ1bmN0aW9uKGEsYil7aWYoIWlwKGEpKXJldHVybiExO3ZhciBjPVFjKCl8fE9jKCk/NTg6NTcsZD1ObShjLGhwKGIpKTtUbChkLGEsYyk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCsiJmZtdD04Iix2b2lkIDAse1FnOiEwLG1ldGhvZDoiR0VUIn0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoZCsiJmZtdD0zIil9KTtyZXR1cm4hMH0sa3A9e30sZ3A9KGtwLmRsPSJ1cmwiLGtwLmRyPQoicmVmIixrcC51aWQ9InVzZXJJZCIsa3ApO3ZhciBscD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9ZnVuY3Rpb24oZSl7YltlXSE9bnVsbCYmYltlXSE9PSIiJiYoY1tlXT1iW2VdKX07TSg0NzQpJiZkKCJfZ3NpZCIpO1IoYSxGLkQuSGQpIT09IjEiJiYoZCgiZ2NsaWQiKSxkKCJnY2xzcmMiKSxkKCJhdWlkIiksZCgiZGNsaWQiKSk7aWYoT2JqZWN0LmtleXMoYykubGVuZ3RoKXJldHVybiBkKCJndG0iKSxjfTsKdmFyIG1wPXt9LG5wPShtcFtGLkQuc2FdPSJnY3UiLG1wW0YuRC5TYl09ImdjbGdiIixtcFtGLkQubGJdPSJnY2xhdyIsbXBbRi5ELnpmXT0iZ2FkX3NvdXJjZSIsbXBbRi5ELkFmXT0iZ2FkX3NvdXJjZV9zcmMiLG1wW0YuRC5EZF09ImdjbGlkIixtcFtGLkQuQWxdPSJnY2xzcmMiLG1wW0YuRC5CZl09ImdicmFpZCIsbXBbRi5ELkVlXT0id2JyYWlkIixtcFtGLkQuRWRdPSJhdWlkIixtcFtGLkQuQmxdPSJhZSIsbXBbRi5ELkhhXT1udWxsLG1wW0YuRC5EbF09InJuZCIsbXBbRi5ELkhkXT0ibmNsIixtcFtGLkQuTmZdPSJnY2xkYyIsbXBbRi5ELktkXT0iZGNsaWQiLG1wW0YuRC5WY109ImVkaWQiLG1wW0YuRC5VYl09ImVuIixtcFtGLkQuS2VdPSJnZHByIixtcFtGLkQuWGNdPSJnZGlkIixtcFtGLkQuVGFdPW51bGwsbXBbRi5ELkxlXT0iX25nIixtcFtGLkQudGhdPSJncHBfc2lkIixtcFtGLkQudWhdPSJncHAiLG1wW0YuRC5WZl09Il90dSIsbXBbRi5ELlFsXT0iZ3RtX3VwIixtcFtGLkQuTWVdPQoiZnJtIixtcFtGLkQuUGRdPSJscHMiLG1wW0YuRC5MaV09ImRpZCIsbXBbRi5ELlVsXT0ibmF2dCIsbXBbRi5ELnphXT0iZGwiLG1wW0YuRC5VYV09ImRyIixtcFtGLkQuTWJdPSJkdCIsbXBbRi5ELmJtXT0ic2Nyc3JjIixtcFtGLkQuWmZdPSJnYV91aWQiLG1wW0YuRC5PZV09ImdkcHJfY29uc2VudCIsbXBbRi5ELlFpXT0idGVzdG9ubHkiLG1wW0YuRC5ycV09InVfdHoiLG1wW0YuRC5QZV09InRvcCIsbXBbRi5ELlFlXT0idGlkIixtcFtGLkQuZmJdPSJ1aWQiLG1wW0YuRC5rZ109InVzX3ByaXZhY3kiLG1wW0YuRC5lZF09bnVsbCxtcFtGLkQuZGVdPSJucGEiLG1wKTtmdW5jdGlvbiBvcChhLGIpe2lmKGIhPW51bGwmJmIhPT0iIil7dmFyIGM9Yj09PSEwPyIxIjpiPT09ITE/IjAiOmVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYikpO2lmKFNiKGEsIl8mIikpcmV0dXJue2tleTphLnN1YnN0cmluZygyKSx2YWx1ZTpjfTt2YXIgZD1ucFthXTtpZihkIT09bnVsbClyZXR1cm4gZD97a2V5OmQsdmFsdWU6Y306e2tleTpBYihiKT8iZXBuLiIrYToiZXAuIithLHZhbHVlOmN9fX07ZnVuY3Rpb24gcHAoYSl7YT1hPT09dm9pZCAwP1tdOmE7cmV0dXJuIHhqKGEpLmpvaW4oIn4iKX07ZnVuY3Rpb24gcXAoKXt2YXIgYT1bXSxiPU51bWJlcignJyl8fDAsYz1OdW1iZXIoJycpfHwwO2N8fChjPWIvMTAwKTt2YXIgZD1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjI4LHN0dWR5SWQ6MjI4LGV4cGVyaW1lbnRJZDoxMDUxNzcxNTQsY29udHJvbElkOjEwNTE3NzE1NSxjb250cm9sSWQyOjEwNTI1NTI0NSxwcm9iYWJpbGl0eTpjLGFjdGl2ZTpkLFplOjB9KTt2YXIgZT1OdW1iZXIoJycpfHwKMCxmPU51bWJlcignJyl8fDA7Znx8KGY9ZS8xMDApO3ZhciBnPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMzUsc3R1ZHlJZDoyMzUsZXhwZXJpbWVudElkOjEwNTM1NzE1MCxjb250cm9sSWQ6MTA1MzU3MTUxLGNvbnRyb2xJZDI6MCxwcm9iYWJpbGl0eTpmLGFjdGl2ZTpnLFplOjF9KTt2YXIgaD1OdW1iZXIoJycpfHwwLGw9TnVtYmVyKCcnKXx8CjA7bHx8KGw9aC8xMDApO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjYsc3R1ZHlJZDoyNjYsZXhwZXJpbWVudElkOjExNTcxODUyOSxjb250cm9sSWQ6MTE1NzE4NTMwLGNvbnRyb2xJZDI6MTE1NzE4NTMxLHByb2JhYmlsaXR5OmwsYWN0aXZlOm4sWmU6MH0pO3ZhciBwPU51bWJlcignJyl8fDAscT1OdW1iZXIoJycpfHwKMDtxfHwocT1wLzEwMCk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NyxzdHVkeUlkOjI2NyxleHBlcmltZW50SWQ6MTE1NzE4NTI2LGNvbnRyb2xJZDoxMTU3MTg1MjcsY29udHJvbElkMjoxMTU3MTg1MjgscHJvYmFiaWxpdHk6cSxhY3RpdmU6cixaZTowfSk7cmV0dXJuIGF9O3ZhciBycD1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj1uZXcgU2V0fSx4cD1mdW5jdGlvbihhLGIpe3ZhciBjPWIsZD1iPWEuTltjLnN0dWR5SWRdP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7YWN0aXZlOiEwfSk6YyxlPUZpO2QuY29udHJvbElkMiYmZC5wcm9iYWJpbGl0eTw9LjI1fHwoZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQse2NvbnRyb2xJZDI6MH0pKTtlLnN0dWRpZXNbZC5zdHVkeUlkXT1kO2IuZm9jdXNlZCYmKGEuS1tiLnN0dWR5SWRdPSEwKTtpZihiLlplPT09MSl7dmFyIGY9Yi5zdHVkeUlkO3NwKGEsdHAoKSxmKTt1cChhLGYpP3RqKHVqLGYpOnZwKGEsZik/dWouS1tmXT0hMDp3cChhLGYpJiYodWouSFtmXT0hMCl9ZWxzZSBpZihiLlplPT09MCl7dmFyIGc9Yi5zdHVkeUlkO3NwKGEsYS5ILGcpO3VwKGEsZyk/dGoodWosZyk6dnAoYSxnKT91ai5LW2ddPSEwOndwKGEsZykmJgoodWouSFtnXT0hMCl9fSxzcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1GaTtpZihlLnN0dWRpZXNbY10pe3ZhciBmPWUuc3R1ZGllc1tjXSxnPWYuZXhwZXJpbWVudElkLGg9Zi5wcm9iYWJpbGl0eTtpZighKGIuc3R1ZGllc3x8e30pW2NdKXt2YXIgbD1iLnN0dWRpZXN8fHt9O2xbY109ITA7Yi5zdHVkaWVzPWw7aWYoIWUuc3R1ZGllc1tjXS5hY3RpdmUpaWYoZS5zdHVkaWVzW2NdLnByb2JhYmlsaXR5Pi41KUlpKGIsZyxjKTtlbHNlIGlmKCEoaDw9MHx8aD4xKSl7dmFyIG49dm9pZCAwO2lmKGQpe3ZhciBwPUNpKGQrIn4iK2MpO2lmKHA9PT0iZTIiKW49LTE7ZWxzZXtmb3IodmFyIHE9bmV3IFVpbnQ4QXJyYXkocCkscj1CaWdJbnQoMCksdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXI9cjw8QmlnSW50KDgpfEJpZ0ludCh1LnZhbHVlKTtuPU51bWJlcihyJUJpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpfX1HaS5zayhiLGMsbil9fX1pZighYS5LW2NdKXt2YXIgdj0KTmkoYixjKTt2JiZ3ai5ILksuYWRkKHYpfX0sdHA9ZnVuY3Rpb24oKXtyZXR1cm4gb20oam0uYmEuVHEse30pfSx1cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIEtpKGMsYil8fEtpKGEuSCxiKX0sdnA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBMaShjLGIpfHxMaShhLkgsYil9LHdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTWkoYyxiKXx8TWkoYS5ILGIpfSx5cDsKZnVuY3Rpb24genAoKXtpZigheXApe3ZhciBhPXlwPW5ldyBycCxiLGMsZD0oKGI9QSk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhhc2gpfHwiIjtpZihkWzBdPT09IiMiJiZkWzFdPT09Il8iJiZkWzJdPT09InQiJiZkWzNdPT09ImUiJiZkWzRdPT09Ij0iKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtpZihlKWZvcih2YXIgZj1tKGUuc3BsaXQoIn4iKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPU51bWJlcihnLnZhbHVlKTtoJiYoYS5OW2hdPSEwLHRqKHVqLGgpKX19Zm9yKHZhciBsPW0ocXAoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpeHAoYSxuLnZhbHVlKTtmb3IodmFyIHA9W10scT1tKE1mKDU2KXx8W10pLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9e3N0dWR5SWQ6dFsxXSxhY3RpdmU6ISF0WzJdLHByb2JhYmlsaXR5OnRbM118fDAsZXhwZXJpbWVudElkOnRbNF18fAowLGNvbnRyb2xJZDp0WzVdfHwwLGNvbnRyb2xJZDI6dFs2XXx8MH0sdj0wO3N3aXRjaCh0WzddKXtjYXNlIDI6dj0xO2JyZWFrO2Nhc2UgMzp2PTI7YnJlYWs7Y2FzZSAxOmNhc2UgNDpjYXNlIDU6Y2FzZSAwOnY9MH12YXIgeDthOnN3aXRjaCh1LnN0dWR5SWQpe2Nhc2UgNTY3OmNhc2UgNDYyOng9ITA7YnJlYWsgYTtkZWZhdWx0Ong9ITF9dmFyIHk9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx1LHtaZTp2LGZvY3VzZWQ6eH0pOyh5LmFjdGl2ZXx8eS5wcm9iYWJpbGl0eT4uNSYmeS5leHBlcmltZW50SWR8fHkuZXhwZXJpbWVudElkJiZ5LmNvbnRyb2xJZCkmJnAucHVzaCh5KX1mb3IodmFyIHo9bShwKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl4cChhLEMudmFsdWUpfX0KZnVuY3Rpb24gQXAoYSxiKXt6cCgpO3ZhciBjPXlwO3NwKGMsdHAoKSxhLGIpO3VwKGMsYSk/dGoodWosYSk6dnAoYyxhKT91ai5LW2FdPSEwOndwKGMsYSkmJih1ai5IW2FdPSEwKX1mdW5jdGlvbiBCcCgpe3pwKCk7dmFyIGE9eXAsYj11cChhLDU2Nyk7aWYoYS5LWzU2N10pe3ZhciBjLGQ9dHAoKTsoYz1OaShkLDU2Nyl8fE5pKGEuSCw1NjcpKSYmYS5SLmFkZChjKX1yZXR1cm4gYn1mdW5jdGlvbiBDcChhKXt6cCgpO3ZhciBiPW5ldyBTZXQoeXAuUik7aWYoYSlmb3IodmFyIGM9UShhLEguSi5DaCl8fFtdLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSliLmFkZChlLnZhbHVlKTtyZXR1cm4gcHAoW10uY29uY2F0KHcoYikpKX07ZnVuY3Rpb24gRHAoYSl7dmFyIGI9YS5sb2NhdGlvbi5ocmVmO2lmKGE9PT1hLnRvcClyZXR1cm57dXJsOmIsSXM6ITB9O3ZhciBjPSExLGQ9YS5kb2N1bWVudDtkJiZkLnJlZmVycmVyJiYoYj1kLnJlZmVycmVyLGEucGFyZW50PT09YS50b3AmJihjPSEwKSk7dmFyIGU9YS5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoZSl7dmFyIGY9ZVtlLmxlbmd0aC0xXSxnO2YmJigoZz1iKT09bnVsbD92b2lkIDA6Zy5pbmRleE9mKGYpKT09PS0xJiYoYz0hMSxiPWYpfXJldHVybnt1cmw6YixJczpjfX1mdW5jdGlvbiBFcChhKXt0cnl7dmFyIGI7aWYoYj0hIWEmJmEubG9jYXRpb24uaHJlZiE9bnVsbClhOnt0cnl7SG4oYS5mb28pO2I9ITA7YnJlYWsgYX1jYXRjaChjKXt9Yj0hMX1yZXR1cm4gYn1jYXRjaChjKXtyZXR1cm4hMX19ZnVuY3Rpb24gRnAoKXtmb3IodmFyIGE9QSxiPWE7YSYmYSE9PWEucGFyZW50OylhPWEucGFyZW50LEVwKGEpJiYoYj1hKTtyZXR1cm4gYn07dmFyIEdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlPWEucHJvdG90eXBlO3ZhciBkPW5ldyBjO2EuYXBwbHkoZCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3JldHVybiBkfSxIcD1mdW5jdGlvbihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj1udWxsO2MoKX19fTtmdW5jdGlvbiBJcChhLGIpe2lmKGEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYVtjXSxjLGEpfTtmdW5jdGlvbiBKcChhKXt2YXIgYj1hLnNwbGl0KC9bPyNdLyksYz0vWz9dLy50ZXN0KGEpPyI/IitiWzFdOiIiO3JldHVybnt6azpiWzBdLHBhcmFtczpjLGZyYWdtZW50Oi9bI10vLnRlc3QoYSk/IiMiKyhjP2JbMl06YlsxXSk6IiJ9fWZ1bmN0aW9uIEtwKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGpjKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBqYyhjKX0KZnVuY3Rpb24gTHAoYSxiLGMsZCl7ZnVuY3Rpb24gZShnLGgpe2chPW51bGwmJihBcnJheS5pc0FycmF5KGcpP2cuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gZShsLGgpfSk6KGIrPWYrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZyksZj0iJiIpKX12YXIgZj1iLmxlbmd0aD8iJiI6Ij8iO2QuY29uc3RydWN0b3I9PT1PYmplY3QmJihkPU9iamVjdC5lbnRyaWVzKGQpKTtBcnJheS5pc0FycmF5KGQpP2QuZm9yRWFjaChmdW5jdGlvbihnKXtyZXR1cm4gZShnWzFdLGdbMF0pfSk6ZC5mb3JFYWNoKGUpO3JldHVybiBqYyhhK2IrYyl9ZnVuY3Rpb24gTXAoYSxiKXt2YXIgYz1KcChrYyhhKS50b1N0cmluZygpKSxkPWMuemsuc2xpY2UoLTEpPT09Ii8iPyIiOiIvIixlPWMuemsrZCtlbmNvZGVVUklDb21wb25lbnQoYik7cmV0dXJuIGpjKGUrYy5wYXJhbXMrYy5mcmFnbWVudCl9O3ZhciBOcD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLGQ9MDtkPDUwOysrZCl7dmFyIGU7dHJ5e2U9ISghYy5mcmFtZXN8fCFjLmZyYW1lc1tiXSl9Y2F0Y2goaCl7ZT0hMX1pZihlKXJldHVybiBjO3ZhciBmO2E6e3RyeXt2YXIgZz1jLnBhcmVudDtpZihnJiZnIT09Yyl7Zj1nO2JyZWFrIGF9fWNhdGNoKGgpe31mPW51bGx9aWYoIShjPWYpKWJyZWFrfXJldHVybiBudWxsfSxPcD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIudG9wPT1iKXJldHVybiAwO2lmKGE9PT12b2lkIDA/MDphKXt2YXIgYz1iLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihjKXJldHVybiBjW2MubGVuZ3RoLTFdPT1iLmxvY2F0aW9uLm9yaWdpbj8xOjJ9cmV0dXJuIEVwKGIudG9wKT8xOjJ9LFBwPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImltZyIpfTtmdW5jdGlvbiBRcChhKXtmb3IodmFyIGI9W10sYz1CLmNvb2tpZS5zcGxpdCgiOyIpLGQ9bmV3IFJlZ0V4cCgiXlxccyoiKyhhfHwiX2dhYyIpKyJfKFVBLVxcZCstXFxkKyk9XFxzKiguKz8pXFxzKiQiKSxlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0ubWF0Y2goZCk7ZiYmYi5wdXNoKHt1ZDpmWzFdLHZhbHVlOmZbMl0sdGltZXN0YW1wOk51bWJlcihmWzJdLnNwbGl0KCIuIilbMV0pfHwwfSl9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFJwKGEsYil7dmFyIGM9UXAoYSksZD17fTtpZighY3x8IWMubGVuZ3RoKXJldHVybiBkO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLnZhbHVlLnNwbGl0KCIuIik7aWYoIShmWzBdIT09IjEifHxiJiZmLmxlbmd0aDwzfHwhYiYmZi5sZW5ndGghPT0zKSYmTnVtYmVyKGZbMV0pKXtkW2NbZV0udWRdfHwoZFtjW2VdLnVkXT1bXSk7dmFyIGc9e3ZlcnNpb246ZlswXSx0aW1lc3RhbXA6TnVtYmVyKGZbMV0pKjFFMyxnY2xpZDpmWzJdfTtiJiZmLmxlbmd0aD4zJiYoZy5sYWJlbHM9Zi5zbGljZSgzKSk7ZFtjW2VdLnVkXS5wdXNoKGcpfX1yZXR1cm4gZH07ZnVuY3Rpb24gU3AoYSl7cmV0dXJuIGEub3JpZ2luIT09Im51bGwifTt2YXIgVHA9e30sVXA9KFRwLms9e25hOi9eW1x3LV0rJC99LFRwLmI9e25hOi9eW1x3LV0rJC8sbms6ITB9LFRwLmk9e25hOi9eWzEtOV1cZCokL30sVHAuaD17bmE6L15cZCskL30sVHAudD17bmE6L15bMS05XVxkKiQvfSxUcC5kPXtuYTovXltBLVphLXowLTlfLV0rJC99LFRwLmo9e25hOi9eXGQrJC99LFRwLnU9e25hOi9eWzEtOV1cZCokL30sVHAubD17bmE6L15bMDFdJC99LFRwLm89e25hOi9eWzEtOV1cZCokL30sVHAuZz17bmE6L15bMDFdJC99LFRwLnM9e25hOi9eLiskL30sVHAubT17bmE6L15bMDFdJC99LFRwKTt2YXIgVnA9e30sWnA9KFZwWzVdPXtqaTp7MjpXcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwidSJdfSxWcFs0XT17amk6ezI6V3AsR0NMOlhwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJtIl19LFZwWzJdPXtqaTp7R1MyOldwLEdTMTpZcH0sWmo6IkdTMiIsUmg6InNvZ3RqbGhkIi5zcGxpdCgiIil9LFZwKTtmdW5jdGlvbiAkcChhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZCl7dmFyIGU9YS5zcGxpdCgiLiIpWzBdO2M9PW51bGx8fGMoZSk7aWYoZSl7dmFyIGY9ZC5qaVtlXTtpZihmKXJldHVybiBmKGEsYil9fX0KZnVuY3Rpb24gV3AoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKXt2YXIgZD1jWzJdO2lmKGQuaW5kZXhPZigiJCIpPT09LTEmJmQuaW5kZXhPZigiJTI0IikhPT0tMSl0cnl7ZD1kZWNvZGVVUklDb21wb25lbnQoZCl9Y2F0Y2godCl7fXZhciBlPXt9LGY9WnBbYl07aWYoZil7Zm9yKHZhciBnPWYuUmgsaD1tKGQuc3BsaXQoIiQiKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD1uWzBdO2lmKGcuaW5kZXhPZihwKSE9PS0xKXRyeXt2YXIgcT1kZWNvZGVVUklDb21wb25lbnQobi5zdWJzdHJpbmcoMSkpLHI9VXBbcF07ciYmKHIubms/KGVbcF09ZVtwXXx8W10sZVtwXS5wdXNoKHEpKTplW3BdPXEpfWNhdGNoKHQpe319cmV0dXJuIGV9fX1mdW5jdGlvbiBhcShhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZClyZXR1cm5bZC5aaixjfHwiMSIsYnEoYSxiKV0uam9pbigiLiIpfQpmdW5jdGlvbiBicShhLGIpe3ZhciBjPVpwW2JdO2lmKGMpe2Zvcih2YXIgZD1bXSxlPW0oYy5SaCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1VcFtnXTtpZihoKXt2YXIgbD1hW2ddO2lmKGwhPT12b2lkIDApaWYoaC5uayYmQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSlkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crcC52YWx1ZSkpO2Vsc2UgZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK2wpKX19cmV0dXJuIGQuam9pbigiJCIpfX1mdW5jdGlvbiBYcChhKXt2YXIgYj1hLnNwbGl0KCIuIik7Yi5zaGlmdCgpO3ZhciBjPWIuc2hpZnQoKSxkPWIuc2hpZnQoKSxlPXt9O3JldHVybiBlLms9ZCxlLmk9YyxlLmI9YixlfQpmdW5jdGlvbiBZcChhKXt2YXIgYj1hLnNwbGl0KCIuIikuc2xpY2UoMik7aWYoIShiLmxlbmd0aDw1fHxiLmxlbmd0aD43KSl7dmFyIGM9e307cmV0dXJuIGMucz1iWzBdLGMubz1iWzFdLGMuZz1iWzJdLGMudD1iWzNdLGMuaj1iWzRdLGMubD1iWzVdLGMuaD1iWzZdLGN9fTtmdW5jdGlvbiBjcShhLGIsYyxkKXt2YXIgZTtyZXR1cm4oZT1kcShmdW5jdGlvbihmKXtyZXR1cm4gZj09PWF9LGIsYyxkKVthXSkhPW51bGw/ZTpbXX1mdW5jdGlvbiBkcShhLGIsYyxkKXt2YXIgZTtpZihlcShkKSl7Zm9yKHZhciBmPXt9LGc9U3RyaW5nKGJ8fGZxKCkpLnNwbGl0KCI7IiksaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgbD1nW2hdLnNwbGl0KCI9Iiksbj1sWzBdLnRyaW0oKTtpZihuJiZhKG4pKXt2YXIgcD1sLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7cCYmYyYmKHA9ZGVjb2RlVVJJQ29tcG9uZW50KHApKTt2YXIgcT12b2lkIDAscj12b2lkIDA7KChxPWYpW3I9bl18fChxW3JdPVtdKSkucHVzaChwKX19ZT1mfWVsc2UgZT17fTtyZXR1cm4gZX0KZnVuY3Rpb24gZ3EoYSxiLGMsZCxlKXtpZihlcShlKSl7dmFyIGY9aHEoYSxkLGUpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtpZihmLmxlbmd0aCE9PTApe2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Kcn0sYik7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Xc30sYyk7cmV0dXJuIGZbMF19fX1mdW5jdGlvbiBqcShhLGIsYyxkKXt2YXIgZT1mcSgpLGY9QTtTcChmKSYmKGYuZG9jdW1lbnQuY29va2llPWEpO3ZhciBnPWZxKCk7cmV0dXJuIGUhPT1nfHxjIT09dm9pZCAwJiZjcShiLGcsITEsZCkuaW5kZXhPZihjKT49MH0KZnVuY3Rpb24ga3EoYSxiLGMsZCl7ZnVuY3Rpb24gZSh4LHkseil7aWYoej09bnVsbClyZXR1cm4gZGVsZXRlIGhbeV0seDtoW3ldPXo7cmV0dXJuIHgrIjsgIit5KyI9Iit6fWZ1bmN0aW9uIGYoeCx5KXtpZih5PT1udWxsKXJldHVybiB4O2hbeV09ITA7cmV0dXJuIHgrIjsgIit5fWlmKCFlcShjLk1jKSlyZXR1cm4gMjt2YXIgZztiPT1udWxsP2c9YSsiPWRlbGV0ZWQ7IGV4cGlyZXM9IisobmV3IERhdGUoMCkpLnRvVVRDU3RyaW5nKCk6KGMuZW5jb2RlJiYoYj1lbmNvZGVVUklDb21wb25lbnQoYikpLGI9bHEoYiksZz1hKyI9IitiKTt2YXIgaD17fTtnPWUoZywicGF0aCIsYy5wYXRoKTt2YXIgbDtjLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP2w9Yy5leHBpcmVzLnRvVVRDU3RyaW5nKCk6Yy5leHBpcmVzIT1udWxsJiYobD0iIitjLmV4cGlyZXMpO2c9ZShnLCJleHBpcmVzIixsKTtnPWUoZywibWF4LWFnZSIsYy5Pcyk7Zz1lKGcsInNhbWVzaXRlIixjLnJ0KTtjLnNlY3VyZSYmCihnPWYoZywic2VjdXJlIikpO3ZhciBuPWMuZG9tYWluO2lmKG4mJm4udG9Mb3dlckNhc2UoKT09PSJhdXRvIil7Zm9yKHZhciBwPW1xKCkscT12b2lkIDAscj0hMSx0PTA7dDxwLmxlbmd0aDsrK3Qpe3ZhciB1PXBbdF0hPT0ibm9uZSI/cFt0XTp2b2lkIDAsdj1lKGcsImRvbWFpbiIsdSk7dj1mKHYsYy5mbGFncyk7dHJ5e2QmJmQoYSxoKX1jYXRjaCh4KXtxPXg7Y29udGludWV9cj0hMDtpZighbnEodSxjLnBhdGgpJiZqcSh2LGEsYixjLk1jKSlyZXR1cm4gMH1pZihxJiYhcil0aHJvdyBxO3JldHVybiAxfW4mJm4udG9Mb3dlckNhc2UoKSE9PSJub25lIiYmKGc9ZShnLCJkb21haW4iLG4pKTtnPWYoZyxjLmZsYWdzKTtkJiZkKGEsaCk7cmV0dXJuIG5xKG4sYy5wYXRoKT8xOmpxKGcsYSxiLGMuTWMpPzA6MX1mdW5jdGlvbiBvcShhLGIsYyl7Yy5wYXRoPT1udWxsJiYoYy5wYXRoPSIvIik7Yy5kb21haW58fChjLmRvbWFpbj0iYXV0byIpO3JldHVybiBrcShhLGIsYyl9CmZ1bmN0aW9uIGlxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmLGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGg9YVtnXSxsPWIoaCk7bD09PWM/ZC5wdXNoKGgpOmY9PT12b2lkIDB8fGw8Zj8oZT1baF0sZj1sKTpsPT09ZiYmZS5wdXNoKGgpfXJldHVybiBkLmxlbmd0aD4wP2Q6ZX1mdW5jdGlvbiBocShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLGMpLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXS5zcGxpdCgiLiIpLGg9Zy5zaGlmdCgpO2lmKCFifHwhaHx8Yi5pbmRleE9mKGgpIT09LTEpe3ZhciBsPWcuc2hpZnQoKTtpZihsKXt2YXIgbj1sLnNwbGl0KCItIik7ZC5wdXNoKHtCcjplW2ZdLENyOmcuam9pbigiLiIpLEpyOk51bWJlcihuWzBdKXx8MSxXczpOdW1iZXIoblsxXSl8fDF9KX19fXJldHVybiBkfWZ1bmN0aW9uIGxxKGEpe2EmJmEubGVuZ3RoPjEyMDAmJihhPWEuc3Vic3RyaW5nKDAsMTIwMCkpO3JldHVybiBhfQp2YXIgcHE9L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9KT8kLyxxcT0vKF58XC4pZG91YmxlY2xpY2tcLm5ldCQvaTtmdW5jdGlvbiBucShhLGIpe3JldHVybiBhIT09dm9pZCAwJiYocXEudGVzdChBLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKXx8Yj09PSIvIiYmcHEudGVzdChhKSl9ZnVuY3Rpb24gcnEoYSl7aWYoIWEpcmV0dXJuIDE7dmFyIGI9YTtZZig0KSYmYT09PSJub25lIiYmKGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7Yj1iLmluZGV4T2YoIi4iKT09PTA/Yi5zdWJzdHJpbmcoMSk6YjtyZXR1cm4gYi5zcGxpdCgiLiIpLmxlbmd0aH1mdW5jdGlvbiBzcShhKXtpZighYXx8YT09PSIvIilyZXR1cm4gMTthWzBdIT09Ii8iJiYoYT0iLyIrYSk7YVthLmxlbmd0aC0xXSE9PSIvIiYmKGErPSIvIik7cmV0dXJuIGEuc3BsaXQoIi8iKS5sZW5ndGgtMX0KZnVuY3Rpb24gdHEoYSxiKXt2YXIgYz0iIitycShhKSxkPXNxKGIpO2Q+MSYmKGMrPSItIitkKTtyZXR1cm4gY30KdmFyIGZxPWZ1bmN0aW9uKCl7dmFyIGE9QTtyZXR1cm4gU3AoYSk/YS5kb2N1bWVudC5jb29raWU6IiJ9LGVxPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZZZig1KT8oQXJyYXkuaXNBcnJheShhKT9hOlthXSkuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIERsKGIpJiZCbChiKX0pOiEwfSxtcT1mdW5jdGlvbigpe3ZhciBhPVtdLGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpO2lmKGIubGVuZ3RoPT09NCl7dmFyIGM9YltiLmxlbmd0aC0xXTtpZihOdW1iZXIoYykudG9TdHJpbmcoKT09PWMpcmV0dXJuWyJub25lIl19Zm9yKHZhciBkPWIubGVuZ3RoLTI7ZD49MDtkLS0pYS5wdXNoKGIuc2xpY2UoZCkuam9pbigiLiIpKTt2YXIgZT1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lO3FxLnRlc3QoZSl8fHBxLnRlc3QoZSl8fGEucHVzaCgibm9uZSIpO3JldHVybiBhfTtmdW5jdGlvbiB1cShhLGIsYyxkKXt2YXIgZSxmPU51bWJlcihhLnBkIT1udWxsP2EucGQ6dm9pZCAwKTtmIT09MCYmKGU9bmV3IERhdGUoKGJ8fE5iKCkpKzFFMyooZnx8Nzc3NkUzKSkpO3JldHVybntwYXRoOmEucGF0aCxkb21haW46YS5kb21haW4sZmxhZ3M6YS5mbGFncyxlbmNvZGU6ISFjLGV4cGlyZXM6ZSxNYzpkfX07dmFyIHZxPW5ldyBNYXAoW1s1LCJhZF9zdG9yYWdlIl0sWzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dLFsyLCJhbmFseXRpY3Nfc3RvcmFnZSJdXSk7ZnVuY3Rpb24gd3EoYSxiLGMpe2lmKFpwW2JdKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KGIpKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPSRwKGcudmFsdWUsYixjKTtoJiZkLnB1c2goeHEoaCkpfXJldHVybiBkfX0KZnVuY3Rpb24geXEoYSl7dmFyIGI9enE7aWYoWnBbMl0pe2Zvcih2YXIgYz17fSxkPWRxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPW0oZFtoXSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPSRwKG4udmFsdWUsMixiKTtwJiYoY1toXXx8KGNbaF09W10pLGNbaF0ucHVzaCh4cShwKSkpfXJldHVybiBjfX1mdW5jdGlvbiBBcShhLGIsYyxkLGUpe2Q9ZHx8e307dmFyIGY9dHEoZC5kb21haW4sZC5wYXRoKSxnPWFxKGIsYyxmKTtpZighZylyZXR1cm4gMTt2YXIgaD11cShkLGUsdm9pZCAwLHZxLmdldChjKSk7cmV0dXJuIG9xKGEsZyxoKX1mdW5jdGlvbiBCcShhLGIpe3ZhciBjPWIubmE7cmV0dXJuIHR5cGVvZiBjPT09ImZ1bmN0aW9uIj9jKGEpOmMudGVzdChhKX0KZnVuY3Rpb24geHEoYSl7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYSkpLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e0FnOnZvaWQgMH0sYz1iLm5leHQoKSl7dmFyIGU9Yy52YWx1ZSxmPWFbZV07ZC5BZz1VcFtlXTtkLkFnP2QuQWcubms/YVtlXT1BcnJheS5pc0FycmF5KGYpP2YuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gQnEoaCxnLkFnKX19KGQpKTp2b2lkIDA6dHlwZW9mIGY9PT0ic3RyaW5nIiYmQnEoZixkLkFnKXx8KGFbZV09dm9pZCAwKTphW2VdPXZvaWQgMH1yZXR1cm4gYX07dmFyIENxO2Z1bmN0aW9uIERxKCl7ZnVuY3Rpb24gYShnKXtjKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX1mdW5jdGlvbiBiKGcpe2QoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfXZhciBjPUVxLGQ9RnEsZT1HcSgpO2lmKCFlLmluaXQpeyRjKEIsIm1vdXNlZG93biIsYSk7JGMoQiwia2V5dXAiLGEpOyRjKEIsInN1Ym1pdCIsYik7dmFyIGY9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXtkKHRoaXMpO2YuY2FsbCh0aGlzKX07ZS5pbml0PSEwfX1mdW5jdGlvbiBIcShhLGIsYyxkLGUpe3ZhciBmPXtjYWxsYmFjazphLGRvbWFpbnM6YixmcmFnbWVudDpjPT09MixwbGFjZW1lbnQ6Yyxmb3JtczpkLHNhbWVIb3N0OmV9O0dxKCkuZGVjb3JhdG9ycy5wdXNoKGYpfQpmdW5jdGlvbiBJcShhLGIsYyl7Zm9yKHZhciBkPUdxKCkuZGVjb3JhdG9ycyxlPXt9LGY9MDtmPGQubGVuZ3RoOysrZil7dmFyIGc9ZFtmXSxoO2lmKGg9IWN8fGcuZm9ybXMpYTp7dmFyIGw9Zy5kb21haW5zLG49YSxwPSEhZy5zYW1lSG9zdDtpZihsJiYocHx8biE9PUIubG9jYXRpb24uaG9zdG5hbWUpKWZvcih2YXIgcT0wO3E8bC5sZW5ndGg7cSsrKWlmKGxbcV1pbnN0YW5jZW9mIFJlZ0V4cCl7aWYobFtxXS50ZXN0KG4pKXtoPSEwO2JyZWFrIGF9fWVsc2UgaWYobi5pbmRleE9mKGxbcV0pPj0wfHxwJiZsW3FdLmluZGV4T2Yobik+PTApe2g9ITA7YnJlYWsgYX1oPSExfWlmKGgpe3ZhciByPWcucGxhY2VtZW50O3I9PT12b2lkIDAmJihyPWcuZnJhZ21lbnQ/MjoxKTtyPT09YiYmUWIoZSxnLmNhbGxiYWNrKCkpfX1yZXR1cm4gZX0KZnVuY3Rpb24gR3EoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLmdsO2ImJmIuZGVjb3JhdG9yc3x8KGI9e2RlY29yYXRvcnM6W119LGEuZ2w9Yik7cmV0dXJuIGJ9O3ZhciBKcT0vKC4qPylcKiguKj8pXCooLiopLyxLcT0vXmh0dHBzPzpcL1wvKFteXC9dKj8pXC4/Y2RuXC5hbXBwcm9qZWN0XC5vcmdcLz8oLiopLyxMcT0vXig/Ond3d1wufG1cLnxhbXBcLikrLyxNcT0vKFtePyNdKykoXD9bXiNdKik/KCMuKik/LztmdW5jdGlvbiBOcShhKXt2YXIgYj1NcS5leGVjKGEpO2lmKGIpcmV0dXJue2hrOmJbMV0scXVlcnk6YlsyXSxmcmFnbWVudDpiWzNdfX1mdW5jdGlvbiBPcShhKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKC4qPykoXnwmKSIrYSsiPShbXiZdKikmPyguKikiKX0KZnVuY3Rpb24gUHEoYSxiKXt2YXIgYz1bSGMudXNlckFnZW50LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSxIYy51c2VyTGFuZ3VhZ2V8fEhjLmxhbmd1YWdlLE1hdGguZmxvb3IoTmIoKS82MC8xRTMpLShiPT09dm9pZCAwPzA6YiksYV0uam9pbigiKiIpLGQ7aWYoIShkPUNxKSl7Zm9yKHZhciBlPUFycmF5KDI1NiksZj0wO2Y8MjU2O2YrKyl7Zm9yKHZhciBnPWYsaD0wO2g8ODtoKyspZz1nJjE/Zz4+PjFeMzk4ODI5MjM4NDpnPj4+MTtlW2ZdPWd9ZD1lfUNxPWQ7Zm9yKHZhciBsPTQyOTQ5NjcyOTUsbj0wO248Yy5sZW5ndGg7bisrKWw9bD4+PjheQ3FbKGxeYy5jaGFyQ29kZUF0KG4pKSYyNTVdO3JldHVybigobF4tMSk+Pj4wKS50b1N0cmluZygzNil9CmZ1bmN0aW9uIFFxKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1SaihBLmxvY2F0aW9uLmhyZWYpLGQ9Yy5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGU9SWooZCwiX2dsIiwhMSwhMCl8fCIiO2IucXVlcnk9UnEoZSl8fHt9O3ZhciBmPUxqKGMsImZyYWdtZW50IiksZzt2YXIgaD0tMTtpZihTYihmLCJfZ2w9IikpaD00O2Vsc2V7dmFyIGw9Zi5pbmRleE9mKCImX2dsPSIpO2w+MCYmKGg9bCszKzIpfWlmKGg8MClnPXZvaWQgMDtlbHNle3ZhciBuPWYuaW5kZXhPZigiJiIsaCk7Zz1uPDA/Zi5zdWJzdHJpbmcoaCk6Zi5zdWJzdHJpbmcoaCxuKX1iLmZyYWdtZW50PVJxKGd8fCIiKXx8e307YSYmU3EoYyxkLGYpfX1mdW5jdGlvbiBUcShhLGIpe3ZhciBjPU9xKGEpLmV4ZWMoYiksZD1iO2lmKGMpe3ZhciBlPWNbMl0sZj1jWzRdO2Q9Y1sxXTtmJiYoZD1kK2UrZil9cmV0dXJuIGR9CmZ1bmN0aW9uIFNxKGEsYixjKXtmdW5jdGlvbiBkKGcsaCl7dmFyIGw9VHEoIl9nbCIsZyk7bC5sZW5ndGgmJihsPWgrbCk7cmV0dXJuIGx9aWYoR2MmJkdjLnJlcGxhY2VTdGF0ZSl7dmFyIGU9T3EoIl9nbCIpO2lmKGUudGVzdChiKXx8ZS50ZXN0KGMpKXt2YXIgZj1MaihhLCJwYXRoIik7Yj1kKGIsIj8iKTtjPWQoYywiIyIpO0djLnJlcGxhY2VTdGF0ZSh7fSwiIiwiIitmK2IrYyl9fX1mdW5jdGlvbiBVcShhLGIpe3ZhciBjPVFxKCEhYiksZD1HcSgpO2QuZGF0YXx8KGQuZGF0YT17cXVlcnk6e30sZnJhZ21lbnQ6e319LGMoZC5kYXRhKSk7dmFyIGU9e30sZj1kLmRhdGE7ZiYmKFFiKGUsZi5xdWVyeSksYSYmUWIoZSxmLmZyYWdtZW50KSk7cmV0dXJuIGV9CnZhciBScT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9VnEoYSwzKTtpZihiIT09dm9pZCAwKXtmb3IodmFyIGM9e30sZD1iP2Iuc3BsaXQoIioiKTpbXSxlPTA7ZSsxPGQubGVuZ3RoO2UrPTIpe3ZhciBmPWRbZV0sZz1xYihkW2UrMV0pO2NbZl09Z31zYigiVEFHR0lORyIsNik7cmV0dXJuIGN9fWNhdGNoKGgpe3NiKCJUQUdHSU5HIiw4KX19O2Z1bmN0aW9uIFZxKGEsYil7aWYoYSl7dmFyIGM7YTp7Zm9yKHZhciBkPWEsZT0wO2U8MzsrK2Upe3ZhciBmPUpxLmV4ZWMoZCk7aWYoZil7Yz1mO2JyZWFrIGF9ZD1LaihkKXx8IiJ9Yz12b2lkIDB9dmFyIGc9YztpZihnJiZnWzFdPT09IjEiKXt2YXIgaD1nWzNdLGw7YTp7Zm9yKHZhciBuPWdbMl0scD0wO3A8YjsrK3ApaWYobj09PVBxKGgscCkpe2w9ITA7YnJlYWsgYX1sPSExfWlmKGwpcmV0dXJuIGg7c2IoIlRBR0dJTkciLDcpfX19CmZ1bmN0aW9uIFdxKGEsYixjLGQsZSl7ZnVuY3Rpb24gZihwKXtwPVRxKGEscCk7dmFyIHE9cC5jaGFyQXQocC5sZW5ndGgtMSk7cCYmcSE9PSImIiYmKHArPSImIik7cmV0dXJuIHArbn1kPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZz1OcShjKTtpZighZylyZXR1cm4iIjt2YXIgaD1nLnF1ZXJ5fHwiIixsPWcuZnJhZ21lbnR8fCIiLG49YSsiPSIrYjtkP2wuc3Vic3RyaW5nKDEpLmxlbmd0aCE9PTAmJmV8fChsPSIjIitmKGwuc3Vic3RyaW5nKDEpKSk6aD0iPyIrZihoLnN1YnN0cmluZygxKSk7cmV0dXJuIiIrZy5oaytoK2x9CmZ1bmN0aW9uIFhxKGEsYil7ZnVuY3Rpb24gYyhuLHAscSl7dmFyIHI7YTp7Zm9yKHZhciB0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSl7cj0hMDticmVhayBhfXI9ITF9aWYocil7dmFyIHUsdj1bXSx4O2Zvcih4IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh4KSl7dmFyIHk9blt4XTt5IT09dm9pZCAwJiZ5PT09eSYmeSE9PW51bGwmJnkudG9TdHJpbmcoKSE9PSJbb2JqZWN0IE9iamVjdF0iJiYodi5wdXNoKHgpLHYucHVzaChwYihTdHJpbmcoeSkpKSl9dmFyIHo9di5qb2luKCIqIik7dT1bIjEiLFBxKHopLHpdLmpvaW4oIioiKTtkPyhZZigzKXx8WWYoMSl8fCFwKSYmWXEoIl9nbCIsdSxhLHAscSk6WnEoIl9nbCIsdSxhLHAscSl9fXZhciBkPShhLnRhZ05hbWV8fCIiKS50b1VwcGVyQ2FzZSgpPT09IkZPUk0iLGU9SXEoYiwxLGQpLGY9SXEoYiwyLGQpLGc9SXEoYiw0LGQpLGg9SXEoYiwzLGQpO2MoZSwhMSwhMSk7YyhmLCEwLCExKTtZZigxKSYmYyhnLCEwLCEwKTtmb3IodmFyIGwgaW4gaCloLmhhc093blByb3BlcnR5KGwpJiYKJHEobCxoW2xdLGEpfWZ1bmN0aW9uICRxKGEsYixjKXtjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJhIj9acShhLGIsYyk6Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iZm9ybSImJllxKGEsYixjKX1mdW5jdGlvbiBacShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmO2lmKGY9Yy5ocmVmKXt2YXIgZztpZighKGc9ZCkpe3ZhciBoPUEubG9jYXRpb24uaHJlZixsPU5xKGMuaHJlZiksbj1OcShoKTtnPSEobCYmbiYmbC5oaz09PW4uaGsmJmwucXVlcnk9PT1uLnF1ZXJ5JiZsLmZyYWdtZW50KX1mPWd9aWYoZil7dmFyIHA9V3EoYSxiLGMuaHJlZixkLGUpO3ZjLnRlc3QocCkmJihjLmhyZWY9cCl9fQpmdW5jdGlvbiBZcShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO2lmKGMpe3ZhciBmPWMuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKXx8IiI7aWYoZil7dmFyIGc9KGMubWV0aG9kfHwiIikudG9Mb3dlckNhc2UoKTtpZihnIT09ImdldCJ8fGQpe2lmKGc9PT0iZ2V0Inx8Zz09PSJwb3N0Iil7dmFyIGg9V3EoYSxiLGYsZCxlKTt2Yy50ZXN0KGgpJiYoYy5hY3Rpb249aCl9fWVsc2V7Zm9yKHZhciBsPWMuY2hpbGROb2Rlc3x8W10sbj0hMSxwPTA7cDxsLmxlbmd0aDtwKyspe3ZhciBxPWxbcF07aWYocS5uYW1lPT09YSl7cS5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtuPSEwO2JyZWFrfX1pZighbil7dmFyIHI9Qi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIik7ci5zZXRBdHRyaWJ1dGUoIm5hbWUiLGEpO3Iuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7Yy5hcHBlbmRDaGlsZChyKX19fX19CmZ1bmN0aW9uIEVxKGEpe3RyeXt2YXIgYjthOntmb3IodmFyIGM9YSxkPTEwMDtjJiZkPjA7KXtpZihjLmhyZWYmJmMubm9kZU5hbWUubWF0Y2goL15hKD86cmVhKT8kL2kpKXtiPWM7YnJlYWsgYX1jPWMucGFyZW50Tm9kZTtkLS19Yj1udWxsfXZhciBlPWI7aWYoZSl7dmFyIGY9ZS5wcm90b2NvbDtmIT09Imh0dHA6IiYmZiE9PSJodHRwczoifHxYcShlLGUuaG9zdG5hbWUpfX1jYXRjaChnKXt9fWZ1bmN0aW9uIEZxKGEpe3RyeXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik7aWYoYil7dmFyIGM9TGooUmooYiksImhvc3QiKTtYcShhLGMpfX1jYXRjaChkKXt9fWZ1bmN0aW9uIGFyKGEsYixjLGQpe0RxKCk7dmFyIGU9Yz09PSJmcmFnbWVudCI/MjoxO2Q9ISFkO0hxKGEsYixlLGQsITEpO2U9PT0yJiZzYigiVEFHR0lORyIsMjMpO2QmJnNiKCJUQUdHSU5HIiwyNCl9CmZ1bmN0aW9uIGJyKGEsYil7RHEoKTtIcShhLFtOaihBLmxvY2F0aW9uLCJob3N0IiwhMCldLGIsITAsITApfWZ1bmN0aW9uIGNyKCl7dmFyIGE9Qi5sb2NhdGlvbi5ob3N0bmFtZSxiPUtxLmV4ZWMoQi5yZWZlcnJlcik7aWYoIWIpcmV0dXJuITE7dmFyIGM9YlsyXSxkPWJbMV0sZT0iIjtpZihjKXt2YXIgZj1jLnNwbGl0KCIvIiksZz1mWzFdO2U9Zz09PSJzIj9LaihmWzJdKXx8IiI6S2ooZyl8fCIifWVsc2UgaWYoZCl7aWYoZC5pbmRleE9mKCJ4bi0tIik9PT0wKXJldHVybiExO2U9ZC5yZXBsYWNlKC8tL2csIi4iKS5yZXBsYWNlKC9cLlwuL2csIi0iKX12YXIgaD1hLnJlcGxhY2UoTHEsIiIpLGw9ZS5yZXBsYWNlKExxLCIiKTtyZXR1cm4gaD09PWx8fFRiKGgsIi4iK2wpfWZ1bmN0aW9uIGRyKGEsYil7cmV0dXJuIGE9PT0hMT8hMTphfHxifHxjcigpfTt2YXIgZXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT0wO3RoaXMudmFsdWU9YT09PXZvaWQgMD8wOmF9O2VyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWV8PTE8PGF9O3ZhciBmcj1mdW5jdGlvbihhLGIpe2I8PTB8fChhLnZhbHVlfD0xPDxiLTEpfTtlci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O2VyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlJj1+KDE8PGEpfTtlci5wcm90b3R5cGUuY2xlYXJBbGw9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPTB9O2VyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PT1hLnZhbHVlfTtmdW5jdGlvbiBncihhKXtpZihhKXRyeXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXRvYihhLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmNoYXJDb2RlQXQoMCl9KSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBocihhLGIpe3ZhciBjPTAsZD0wLGUsZj1iO2Rve2lmKGY+PWEubGVuZ3RoKXJldHVybjtlPWFbZisrXTtjfD0oZSYxMjcpPDxkO2QrPTd9d2hpbGUoZSYxMjgpO3JldHVybltjLGZdfTtmdW5jdGlvbiBpcigpe3ZhciBhPVN0cmluZyxiPUEubG9jYXRpb24uaG9zdG5hbWUsYz1BLmxvY2F0aW9uLnBhdGhuYW1lLGQ9Yj1iYyhiKTtkLnNwbGl0KCIuIikubGVuZ3RoPjImJihkPWQucmVwbGFjZSgvXih3d3dbMC05XSp8d2VifGZ0cHx3YXB8aG9tZXxtfHd8YW1wfG1vYmlsZSlcLi8sIiIpKTtiPWQ7Yz1iYyhjKTt2YXIgZT1jLnNwbGl0KCI7IilbMF07ZT1lLnJlcGxhY2UoL1wvKGFyfHNscHx3ZWJ8aW5kZXgpP1wvPyQvLCIiKTtyZXR1cm4gYShuZygoIiIrYitlKS50b0xvd2VyQ2FzZSgpKSl9O3ZhciBqcj1bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTtmdW5jdGlvbiBrcihhLGIpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMzIpLDEwO2lmKGI9PT1udWxsfHxiPT09dm9pZCAwfHxiPT09IiIpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMyksMTE7dmFyIGM9bHIoITEpO2lmKGMuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMzQpLGMuZXJyb3I7aWYoIWMudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzNSksMjtjLnZhbHVlW2FdPWI7dmFyIGQ9bXIoYyk7ZCE9PTAmJnNiKCJUQUdHSU5HIiwzNik7cmV0dXJuIGR9CmZ1bmN0aW9uIG5yKGEpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMjcpLHtlcnJvcjoxMH07dmFyIGI9bHIoKTtpZihiLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDI5KSxiO2lmKCFiLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzApLHtlcnJvcjoyfTtpZighKGEgaW4gYi52YWx1ZSkpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMSkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxNX07dmFyIGM9Yi52YWx1ZVthXTtyZXR1cm4gYz09PW51bGx8fGM9PT12b2lkIDB8fGM9PT0iIj8oc2IoIlRBR0dJTkciLDI4KSx7dmFsdWU6dm9pZCAwLGVycm9yOjExfSk6e3ZhbHVlOmMsZXJyb3I6MH19CmZ1bmN0aW9uIG9yKGEpe2lmKGEpe3ZhciBiPWxyKCExKTtiLmVycm9yIT09MD9zYigiVEFHR0lORyIsMzgpOmIudmFsdWU/YSBpbiBiLnZhbHVlPyhkZWxldGUgYi52YWx1ZVthXSxtcihiKSE9PTAmJnNiKCJUQUdHSU5HIiw0MSkpOnNiKCJUQUdHSU5HIiw0MCk6c2IoIlRBR0dJTkciLDM5KX1lbHNlIHNiKCJUQUdHSU5HIiwzNyl9CmZ1bmN0aW9uIGxyKGEpe2E9YT09PXZvaWQgMD8hMDphO2lmKCFCbChqcikpcmV0dXJuIHNiKCJUQUdHSU5HIiw0Mykse2Vycm9yOjN9O3RyeXtpZighQS5sb2NhbFN0b3JhZ2UpcmV0dXJuIHNiKCJUQUdHSU5HIiw0NCkse2Vycm9yOjF9fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDUpLHtlcnJvcjoxNH19dmFyIGI9e3NjaGVtYToiZ2NsIix2ZXJzaW9uOjF9LGM9dm9pZCAwO3RyeXtjPUEubG9jYWxTdG9yYWdlLmdldEl0ZW0oIl9nY2xfbHMiKX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ2KSx7ZXJyb3I6MTN9fXRyeXtpZihjKXt2YXIgZD1KU09OLnBhcnNlKGMpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpYj1kO2Vsc2UgcmV0dXJuIHNiKCJUQUdHSU5HIiw0Nykse2Vycm9yOjEyfX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fWlmKGIuc2NoZW1hIT09ImdjbCIpcmV0dXJuIHNiKCJUQUdHSU5HIiw0OSkse2Vycm9yOjR9OwppZihiLnZlcnNpb24hPT0xKXJldHVybiBzYigiVEFHR0lORyIsNTApLHtlcnJvcjo1fTt0cnl7dmFyIGU9cHIoYik7YSYmZSYmbXIoe3ZhbHVlOmIsZXJyb3I6MH0pfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1yZXR1cm57dmFsdWU6YixlcnJvcjowfX0KZnVuY3Rpb24gcHIoYSl7aWYoIWF8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoImV4cGlyZXMiaW4gYSYmInZhbHVlImluIGEpe3ZhciBiO3R5cGVvZiBhLmV4cGlyZXM9PT0ibnVtYmVyIj9iPWEuZXhwaXJlczpiPXR5cGVvZiBhLmV4cGlyZXM9PT0ic3RyaW5nIj9OdW1iZXIoYS5leHBpcmVzKTpOYU47aWYoaXNOYU4oYil8fCEoRGF0ZS5ub3coKTw9YikpcmV0dXJuIGEudmFsdWU9bnVsbCxhLmVycm9yPTksc2IoIlRBR0dJTkciLDU0KSwhMH1lbHNle2Zvcih2YXIgYz0hMSxkPW0oT2JqZWN0LmtleXMoYSkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWM9cHIoYVtlLnZhbHVlXSl8fGM7cmV0dXJuIGN9cmV0dXJuITF9CmZ1bmN0aW9uIG1yKGEpe2lmKGEuZXJyb3IpcmV0dXJuIGEuZXJyb3I7aWYoIWEudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiw0MiksMjt2YXIgYj1hLnZhbHVlLGM7dHJ5e2M9SlNPTi5zdHJpbmdpZnkoYil9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MiksNn10cnl7QS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiX2djbF9scyIsYyl9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MyksN31yZXR1cm4gMH07dmFyIHFyPXt9LHJyPShxci5nY2xpZD0hMCxxci5kY2xpZD0hMCxxci5nYnJhaWQ9ITAscXIud2JyYWlkPSEwLHFyKSxzcj0vXlx3KyQvLHRyPS9eW1x3LV0rJC8sdXI9e30sdnI9KHVyLmF3PSJGUEdDTEFXIix1ciksd3I9e30seHI9KHdyLmFnPSJfYWciLHdyLmdiPSJfZ2IiLHdyLmF3PSJfYXciLHdyLmRjPSJfZGMiLHdyLmdmPSJfZ2YiLHdyLmhhPSJfaGEiLHdyLmdwPSJfZ3AiLHdyLmdzPSJfZ3MiLHdyKSx5cj0vXig/Ond3d1wuKT9nb29nbGUoPzpcLmNvbT8pPyg/OlwuW2Etel17Mn10Pyk/JC8senI9L153d3dcLmdvb2dsZWFkc2VydmljZXNcLmNvbSQvO2Z1bmN0aW9uIEFyKCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19ZnVuY3Rpb24gQnIoYSl7cmV0dXJuIVlmKDUpfHxCbChhKX1mdW5jdGlvbiBDcihhLGIpe2Z1bmN0aW9uIGMoKXt2YXIgZD1CcihiKTtkJiZhKCk7cmV0dXJuIGR9SGwoZnVuY3Rpb24oKXtjKCl8fElsKGMsYil9LGIpfQpmdW5jdGlvbiBEcihhKXtyZXR1cm4gRXIoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gRnIoYSl7cmV0dXJuIEdyKGEpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEdyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9SHIoYS5wcmVmaXgpLGQ9SXIoImdiIixjKSxlPUlyKCJhZyIsYyk7aWYoIWV8fCFkKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtuLnpnPWw7cmV0dXJuIG59fSxnPUVyKGQsYikubWFwKGYoImdiIikpLGg9SnIoZSkubWFwKGYoImFnIikpO3JldHVybiBnLmNvbmNhdChoKS5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEtyKGEsYixjLGQsZSl7dmFyIGY9Q2IoYSxmdW5jdGlvbihnKXtyZXR1cm4gZy5nY2xpZD09PWJ9KTtmPyhmLnRpbWVzdGFtcDxjJiYoZi50aW1lc3RhbXA9YyxmLm9kPWUpLGYubGFiZWxzPUxyKGYubGFiZWxzfHxbXSxkfHxbXSkpOmEucHVzaCh7dmVyc2lvbjoiMiIsZ2NsaWQ6Yix0aW1lc3RhbXA6YyxsYWJlbHM6ZCxvZDplfSl9ZnVuY3Rpb24gTXIoYSl7Zm9yKHZhciBiPXdxKGEsNSl8fFtdLGM9W10sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9ZixoPU5yKGYpO2gmJktyKGMsZy5rLGgsZy5ifHxbXSxmLnUpfXJldHVybiBjLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gRXIoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtPcihjLGEsMSk7aWYoYilpZihUYihhLCJfYXciKSl7dmFyIGQ9UHIoKTtkJiYoZC5vZD12b2lkIDAsZC5vYT1kLm9hfHxbMl0sUXIoYyxkKSk7T3IoYywiZ2NsX2F3IiwyKX1lbHNlIFRiKGEsIl9nYiIpJiZZZig2KSYmT3IoYywiZ2NsX2diIiwyKTtjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gZi50aW1lc3RhbXAtZS50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYyl9ZnVuY3Rpb24gU3IoYSxiKXtmb3IodmFyIGM9W10sZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2MuaW5jbHVkZXMoZil8fGMucHVzaChmKX1mb3IodmFyIGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtjLmluY2x1ZGVzKGwpfHxjLnB1c2gobCl9cmV0dXJuIGN9CmZ1bmN0aW9uIFFyKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGQsZSxmPW0oYSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoaC5nY2xpZD09PWIuZ2NsaWQpe2Q9aDticmVha31oLnFhJiZiLnFhJiZoLnFhLmVxdWFscyhiLnFhKSYmKGU9aCl9aWYoZCl7dmFyIGwsbixwPShsPWQucWEpIT1udWxsP2w6bmV3IGVyLHE9KG49Yi5xYSkhPW51bGw/bjpuZXcgZXI7cC52YWx1ZXw9cS52YWx1ZTtkLnFhPXA7ZC50aW1lc3RhbXA8Yi50aW1lc3RhbXAmJihkLnRpbWVzdGFtcD1iLnRpbWVzdGFtcCxkLm9kPWIub2QpO2QubGFiZWxzPVNyKGQubGFiZWxzfHxbXSxiLmxhYmVsc3x8W10pO2Qub2E9U3IoZC5vYXx8W10sYi5vYXx8W10pfWVsc2UgYyYmZT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsYik6YS5wdXNoKGIpfQpmdW5jdGlvbiBUcihhKXtpZighYSlyZXR1cm4gbmV3IGVyO3ZhciBiPW5ldyBlcjtpZihhPT09MSlyZXR1cm4gZnIoYiwyKSxmcihiLDMpLGI7ZnIoYixhKTtyZXR1cm4gYn0KZnVuY3Rpb24gUHIoKXt2YXIgYT1ucigiZ2NsaWQiKTtpZighYXx8YS5lcnJvcnx8IWEudmFsdWV8fHR5cGVvZiBhLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGI9YS52YWx1ZTt0cnl7aWYoISgidmFsdWUiaW4gYiYmYi52YWx1ZSl8fHR5cGVvZiBiLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGM9Yi52YWx1ZSxkPWMudmFsdWU7aWYoIWR8fCFkLm1hdGNoKHRyKSlyZXR1cm4gbnVsbDt2YXIgZT1jLmxpbmtEZWNvcmF0aW9uU291cmNlLGY9Yy5saW5rRGVjb3JhdGlvblNvdXJjZXMsZz1uZXcgZXI7dHlwZW9mIGU9PT0ibnVtYmVyIj9nPVRyKGUpOnR5cGVvZiBmPT09Im51bWJlciImJihnLnZhbHVlPWYpO3JldHVybnt2ZXJzaW9uOiIiLGdjbGlkOmQsdGltZXN0YW1wOk51bWJlcihjLmNyZWF0aW9uVGltZU1zKXx8MCxsYWJlbHM6W10scWE6ZyxvYTpbMl19fWNhdGNoKGgpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gVXIoYSl7dmFyIGI9bnIoYSk7aWYoYi5lcnJvciE9PTApcmV0dXJuIG51bGw7dHJ5e3JldHVybiBiLnZhbHVlLnJlZHVjZShmdW5jdGlvbihjLGQpe2lmKCFkLnZhbHVlfHx0eXBlb2YgZC52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBjO3ZhciBlPWQudmFsdWUsZj1lLnZhbHVlO2lmKCFmfHwhZi5tYXRjaCh0cikpcmV0dXJuIGM7dmFyIGc9bmV3IGVyLGg9ZS5saW5rRGVjb3JhdGlvblNvdXJjZXM7dHlwZW9mIGg9PT0ibnVtYmVyIiYmKGcudmFsdWU9aCk7dmFyIGw7Yy5wdXNoKHt2ZXJzaW9uOiIiLGdjbGlkOmYsdGltZXN0YW1wOk51bWJlcihlLmNyZWF0aW9uVGltZU1zKXx8MCxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfHwwLGxhYmVsczoobD1lLmxhYmVscykhPW51bGw/bDpbXSxxYTpnLG9hOlsyXX0pO3JldHVybiBjfSxbXSl9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBPcihhLGIsYyl7aWYoYz09PTEpZm9yKHZhciBkPWNxKGIsQi5jb29raWUsdm9pZCAwLEFyKCkpLGU9bShkKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9VnIoZi52YWx1ZS5zcGxpdCgiLiIpKSxoPWcubGVuZ3RoPT09MD9udWxsOnt2ZXJzaW9uOmdbMF0sZ2NsaWQ6Z1syXSx0aW1lc3RhbXA6KE51bWJlcihnWzFdKXx8MCkqMUUzLGxhYmVsczpnLnNsaWNlKDMpfTtoIT1udWxsJiYoaC5vZD12b2lkIDAsaC5xYT1uZXcgZXIsaC5vYT1bY10sUXIoYSxoKSl9ZWxzZSBpZihjPT09Mil7dmFyIGw9VXIoYik7aWYobClmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLm9kPXZvaWQgMDtxLm9hPXEub2E7UXIoYSxxKX19fQpmdW5jdGlvbiBacihhKXt2YXIgYj1FcihhKSxjPVVyKCJnY2xfZGMiKTtpZihjKWZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2Yub2Q9dm9pZCAwO2Yub2E9Zi5vYXx8WzJdO1FyKGIsZil9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7dmFyIGw9Zy5vYSYmZy5vYS5pbmNsdWRlcygxKSxuPWgub2EmJmgub2EuaW5jbHVkZXMoMSk7cmV0dXJuIGwmJiFuPy0xOiFsJiZuPzE6aC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYil9ZnVuY3Rpb24gSnIoYSl7cmV0dXJuIE1yKGEpLm1hcChmdW5jdGlvbihiKXtiLnFhPW5ldyBlcjtiLm9hPVsxXTtyZXR1cm4gYn0pfQpmdW5jdGlvbiBMcihhLGIpe2lmKCFhLmxlbmd0aClyZXR1cm4gYjtpZighYi5sZW5ndGgpcmV0dXJuIGE7dmFyIGM9e307cmV0dXJuIGEuY29uY2F0KGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShkKT8hMTpjW2RdPSEwfSl9ZnVuY3Rpb24gSHIoYSl7cmV0dXJuIGEmJnR5cGVvZiBhPT09InN0cmluZyImJmEubWF0Y2goc3IpP2E6Il9nY2wifWZ1bmN0aW9uICRyKGEsYil7aWYoYSl7dmFyIGM9e3ZhbHVlOmEscWE6bmV3IGVyfTtmcihjLnFhLGIpO3JldHVybiBjfX0KZnVuY3Rpb24gYXMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKTtpZihiJiYoIWZ8fCFlKSl7dmFyIGc9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihnLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihnLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJihlPT09dm9pZCAwfHxlPT09ImF3Inx8ZT09PSJhdy5kcyJ8fFlmKDgpJiZlPT09ImF3LmR2Iik/W2ZdOltdfQpmdW5jdGlvbiBicyhhLGIpe3ZhciBjPVJqKGEpLGQ9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxlPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9TGooYywicXVlcnkiLCExLHZvaWQgMCwid2JyYWlkIik7Zj0kYihmKTt2YXIgZz1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYnJhaWQiKSxoPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxsPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIik7aWYoYiYmIShkJiZlJiZmJiZnKSl7dmFyIG49Yy5oYXNoLnJlcGxhY2UoIiMiLCIiKTtkPWR8fElqKG4sImdjbGlkIiwhMSk7ZT1lfHxJaihuLCJnY2xzcmMiLCExKTtmPWZ8fElqKG4sIndicmFpZCIsITEpO2c9Z3x8SWoobiwiZ2JyYWlkIiwhMSk7aD1ofHxJaihuLCJnYWRfc291cmNlIiwhMSl9cmV0dXJuIGNzKGQsZSxsLGYsZyxoKX0KZnVuY3Rpb24gZHMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKSxnPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIiksYz80OjIpO2lmKGImJighZXx8IWYpKXt2YXIgaD1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGgsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGgsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmZSYmKGU9PT0iYXcuZHMifHxlPT09ImF3LmR2Inx8ZT09PSIzcC5kcyJ8fGU9PT0iZHMiKT9bZl06Zz9bZ106W119ZnVuY3Rpb24gZXMoKXtyZXR1cm4gYnMoQS5sb2NhdGlvbi5ocmVmLCEwKX0KZnVuY3Rpb24gY3MoYSxiLGMsZCxlLGYpe3ZhciBnPXt9LGg9ZnVuY3Rpb24obCxuKXtnW25dfHwoZ1tuXT1bXSk7Z1tuXS5wdXNoKGwpfTtnLmdjbGlkPWE7Zy5nY2xzcmM9YjtnLmRjbGlkPWM7aWYoYSE9PXZvaWQgMCYmYS5tYXRjaCh0cikpc3dpdGNoKGIpe2Nhc2Ugdm9pZCAwOmgoYSwiYXciKTticmVhaztjYXNlICJhdy5kcyI6aChhLCJhdyIpO2goYSwiZGMiKTticmVhaztjYXNlICJhdy5kdiI6WWYoOCkmJihoKGEsImF3IiksaChhLCJkYyIpKTticmVhaztjYXNlICJkcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgIjNwLmRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiZ2YiOmgoYSwiZ2YiKTticmVhaztjYXNlICJoYSI6aChhLCJoYSIpfWMmJmgoYywiZGMiKTtkIT09dm9pZCAwJiZ0ci50ZXN0KGQpJiYoZy53YnJhaWQ9ZCxoKGQsImdiIikpO2UhPT12b2lkIDAmJnRyLnRlc3QoZSkmJihnLmdicmFpZD1lLGgoZSwiYWciKSk7ZiE9PXZvaWQgMCYmdHIudGVzdChmKSYmKGcuZ2FkX3NvdXJjZT0KZixoKGYsImdzIikpO3JldHVybiBnfWZ1bmN0aW9uIGZzKCl7Zm9yKHZhciBhPWVzKCksYj0hMCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWlmKGFbZC52YWx1ZV0hPT12b2lkIDApe2I9ITE7YnJlYWt9YiYmKGE9YnMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSksYS5nYWRfc291cmNlPXZvaWQgMCk7cmV0dXJuIGF9ZnVuY3Rpb24gZ3MoYSl7dmFyIGI9ZnMoKTtocyhiLCExLGEpfQpmdW5jdGlvbiBpcyhhKXt2YXIgYj1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpO2IubGVuZ3RofHwoYj1hcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7YT1hfHx7fTtqcyhhKTtpZihiLmxlbmd0aCl7dmFyIGM9YlswXSxkPU5iKCksZT11cShhLGQsITApLGY9QXIoKSxnPWZ1bmN0aW9uKCl7QnIoZikmJmUuZXhwaXJlcyE9PXZvaWQgMCYma3IoImdjbGlkIix7dmFsdWU6e3ZhbHVlOmMudmFsdWUsY3JlYXRpb25UaW1lTXM6ZCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Yy5xYS5nZXQoKX0sZXhwaXJlczpOdW1iZXIoZS5leHBpcmVzKX0pfTtIbChmdW5jdGlvbigpe2coKTtCcihmKXx8SWwoZyxmKX0sZil9fQpmdW5jdGlvbiBqcyhhKXt2YXIgYj1CLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiI7aWYoeXIudGVzdChiKXx8enIudGVzdChiKXx8a3MoKSl7dmFyIGM7YTp7Zm9yKHZhciBkPVJqKEEubG9jYXRpb24uaHJlZiksZT1KaihMaihkLCJxdWVyeSIpKSxmPW0oT2JqZWN0LmtleXMoZSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKCFycltoXSl7dmFyIGw9ZVtoXVswXXx8IiIsbjtpZighbHx8bC5sZW5ndGg8NTB8fGwubGVuZ3RoPjIwMCluPSExO2Vsc2V7dmFyIHA9Z3IobCkscTtpZihwKWM6e3ZhciByPXA7aWYociYmci5sZW5ndGghPT0wKXt2YXIgdD0wO3RyeXtmb3IodmFyIHU9MTA7dDxyLmxlbmd0aCYmISh1LS08PTApOyl7dmFyIHY9aHIocix0KTtpZih2PT09dm9pZCAwKWJyZWFrO3ZhciB4PW0odikseT14Lm5leHQoKS52YWx1ZSx6PXgubmV4dCgpLnZhbHVlLEM9eSxEPXosST1DJjc7aWYoQz4+Mz09PTE2MzgyKXtpZihJIT09CjApYnJlYWs7dmFyIEc9aHIocixEKTtpZihHPT09dm9pZCAwKWJyZWFrO3E9bShHKS5uZXh0KCkudmFsdWU9PT0xO2JyZWFrIGN9dmFyIE47ZDp7dmFyIFM9dm9pZCAwLFc9cixlYT1EO3N3aXRjaChJKXtjYXNlIDA6Tj0oUz1ocihXLGVhKSk9PW51bGw/dm9pZCAwOlNbMV07YnJlYWsgZDtjYXNlIDE6Tj1lYSs4O2JyZWFrIGQ7Y2FzZSAyOnZhciBqYT1ocihXLGVhKTtpZihqYT09PXZvaWQgMClicmVhazt2YXIgZmE9bShqYSksc2E9ZmEubmV4dCgpLnZhbHVlO049ZmEubmV4dCgpLnZhbHVlK3NhO2JyZWFrIGQ7Y2FzZSA1Ok49ZWErNDticmVhayBkfU49dm9pZCAwfWlmKE49PT12b2lkIDB8fE4+ci5sZW5ndGh8fE48PXQpYnJlYWs7dD1OfX1jYXRjaChtYSl7fX1xPSExfWVsc2UgcT0hMTtuPXF9aWYobil7Yz1sO2JyZWFrIGF9fX1jPXZvaWQgMH12YXIgZGE9YztkYSYmbHMoImdjbF9hdyIsZGEsNyxhKX19CmZ1bmN0aW9uIGxzKGEsYixjLGQpe21zKGEsW3t2ZXJzaW9uOiIiLGdjbGlkOmIsdGltZXN0YW1wOk5iKCkscWE6VHIoYyl9XSxkKX0KZnVuY3Rpb24gbXMoYSxiLGMpe2M9Y3x8e307dmFyIGQ9QXIoKSxlPWZ1bmN0aW9uKCl7aWYoQnIoZCkmJmIubGVuZ3RoPjApe3ZhciBmPVVyKGEpfHxbXTtiLmZvckVhY2goZnVuY3Rpb24oZyl7dmFyIGg9dXEoYyxnLnRpbWVzdGFtcCwhMCk7aC5leHBpcmVzIT09dm9pZCAwJiZRcihmLHt2ZXJzaW9uOiIiLGdjbGlkOmcuZ2NsaWQsdGltZXN0YW1wOmcudGltZXN0YW1wLGV4cGlyZXM6TnVtYmVyKGguZXhwaXJlcykscWE6Zy5xYSxsYWJlbHM6Zy5sYWJlbHN9LCEwKX0pO2YubGVuZ3RoJiZrcihhLGYubWFwKGZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTpnLmdjbGlkLGNyZWF0aW9uVGltZU1zOmcudGltZXN0YW1wLGxpbmtEZWNvcmF0aW9uU291cmNlczpnLnFhP2cucWEuZ2V0KCk6MH0sbDtpZigobD1nLmxhYmVscyk9PW51bGw/MDpsLmxlbmd0aCloLmxhYmVscz1nLmxhYmVscztyZXR1cm57dmFsdWU6aCxleHBpcmVzOk51bWJlcihnLmV4cGlyZXMpfX0pKX19O0hsKGZ1bmN0aW9uKCl7QnIoZCk/CmUoKTpJbChlLGQpfSxkKX0KZnVuY3Rpb24gaHMoYSxiLGMsZCxlKXtjPWN8fHt9O2U9ZXx8W107dmFyIGY9SHIoYy5wcmVmaXgpLGc9ZHx8TmIoKSxoPU1hdGgucm91bmQoZy8xRTMpLGw9QXIoKSxuPSExLHA9ITEscT1ZZig5KSxyPWZ1bmN0aW9uKCl7aWYoQnIobCkpe3ZhciB0PXVxKGMsZywhMCk7dC5NYz1sO2Zvcih2YXIgdT1mdW5jdGlvbihXLGVhKXt2YXIgamE9SXIoVyxmKTtqYSYmKG9xKGphLGVhLHQpLFchPT0iZ2IiJiYobj0hMCkpfSx2PWZ1bmN0aW9uKFcpe3ZhciBlYT1bIkdDTCIsaCxXXTtlLmxlbmd0aD4wJiZlYS5wdXNoKGUuam9pbigiLiIpKTtyZXR1cm4gZWEuam9pbigiLiIpfSx4PW0oWyJhdyIsImRjIiwiZ2YiLCJoYSIsImdwIl0pLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt2YXIgej15LnZhbHVlO2Fbel0mJnUoeix2KGFbel1bMF0pKX1pZigoIW58fHEpJiZhLmdiKXt2YXIgQz1hLmdiWzBdLEQ9SXIoImdiIixmKTshYiYmRXIoRCkuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUMmJgpXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KXx8dSgiZ2IiLHYoQykpfX1pZighcCYmYS5nYnJhaWQmJkJyKCJhZF9zdG9yYWdlIikmJihwPSEwLCFufHxxKSl7dmFyIEk9YS5nYnJhaWQsRz1JcigiYWciLGYpO2lmKGJ8fCFKcihHKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09SSYmVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSkpe3ZhciBOPXt9LFM9KE4uaz1JLE4uaT0iIitoLE4uYj1lLE4pO0FxKEcsUyw1LGMsZyl9fW5zKGEsZixnLGMpfTtIbChmdW5jdGlvbigpe3IoKTtCcihsKXx8SWwocixsKX0sbCl9CmZ1bmN0aW9uIG5zKGEsYixjLGQpe2lmKGEuZ2FkX3NvdXJjZSE9PXZvaWQgMCYmQnIoImFkX3N0b3JhZ2UiKSl7dmFyIGU9cWQoKTtpZihlIT09InIiJiZlIT09ImgiKXt2YXIgZj1hLmdhZF9zb3VyY2UsZz1JcigiZ3MiLGIpO2lmKGcpe3ZhciBoPU1hdGguZmxvb3IoKE5iKCktKHBkKCl8fDApKS8xRTMpLGwsbj1pcigpLHA9e307bD0ocC5rPWYscC5pPSIiK2gscC51PW4scCk7QXEoZyxsLDUsZCxjKX19fX1mdW5jdGlvbiBvcyhhLGIsYyl7Zm9yKHZhciBkPXdxKGIsYyksZT0wO2U8ZC5sZW5ndGg7KytlKWlmKE5yKGRbZV0pPmEpcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIHBzKGEpe3ZhciBiPXFzLGM9cnMoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1jW2ddO2lmKGgpe3ZhciBsPU1hdGgubWluKHNzKGgpLE5iKCkpLG49dXEoYSxsLCEwKTtuLk1jPUFyKCk7dmFyIHA9SXIoZyxkKTtwJiZvcShwLGgsbil9fXZhciBxPVVxKCEwKTtocyhjcyhxLmdjbGlkLHEuZ2Nsc3JjKSwhMSxhKX0sQXIoKSl9CmZ1bmN0aW9uIHJzKGEpe3ZhciBiPVVxKCEwKSxjPUhyKGEpLGQ9e30sZTtmb3IoZSBpbiB4cilpZih4ci5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9ZSxnPUlyKGYsYyk7aWYoZyE9PXZvaWQgMCl7dmFyIGg9YltnXTtpZihoKXt2YXIgbD1zcyhoKSxuO2E6e2Zvcih2YXIgcD1NYXRoLm1pbihsLE5iKCkpfHxOYigpLHE9Y3EoZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSkscj0wO3I8cS5sZW5ndGg7KytyKWlmKHNzKHFbcl0pPnApe249ITA7YnJlYWsgYX1uPSExfW58fChkW2ZdPWgpfX19cmV0dXJuIGR9CmZ1bmN0aW9uIHRzKGEpe3ZhciBiPVsiYWciXSxjPVVxKCEwKSxkPUhyKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKGYpe3ZhciBnPWNbZl07aWYoZyl7dmFyIGg9JHAoZyw1KTtpZihoKXt2YXIgbD1OcihoKTtsfHwobD1OYigpKTtpZihvcyhsLGYsNSkpYnJlYWs7aC5pPSIiK01hdGgucm91bmQobC8xRTMpO0FxKGYsaCw1LGEsbCl9fX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24gSXIoYSxiKXt2YXIgYz14clthXTtpZihjIT09dm9pZCAwKXJldHVybiBiK2N9ZnVuY3Rpb24gc3MoYSl7cmV0dXJuIFZyKGEuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD8oTnVtYmVyKGEuc3BsaXQoIi4iKVsxXSl8fDApKjFFMzowfWZ1bmN0aW9uIE5yKGEpe3JldHVybiBhPyhOdW1iZXIoYS5pKXx8MCkqMUUzOjB9CmZ1bmN0aW9uIFZyKGEpe3JldHVybiBhLmxlbmd0aDwzfHxhWzBdIT09IkdDTCImJmFbMF0hPT0iMSJ8fCEvXlxkKyQvLnRlc3QoYVsxXSl8fCF0ci50ZXN0KGFbMl0pP1tdOmF9ZnVuY3Rpb24gdXMoYSxiLGMsZCl7dmFyIGU9cXM7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKG4pe3ZhciBwPWNxKG4sQi5jb29raWUsdm9pZCAwLEFyKCkpO3AubGVuZ3RoJiYoaFtuXT1wLnNvcnQoKVtwLmxlbmd0aC0xXSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHZzKGEsYixjKXt2YXIgZD1xcztpZihZZigxMykmJkFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZj17fSxnPTA7ZzxkLmxlbmd0aDsrK2cpe3ZhciBoPXZyW2RbZ11dO2lmKGgpe3ZhciBsPWNxKGgsQi5jb29raWUsdm9pZCAwLEFyKCkpO2lmKGwubGVuZ3RoKXtmb3IodmFyIG49dm9pZCAwLHA9MCxxPW0obCkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT0kcCh0LDQpO2lmKHUmJih1Lm09PT0iMSJ8fFlmKDE2KSkpe3ZhciB2PU5yKHUpO3Y+PXAmJihwPXYsbj10KX19biYmKGZbaF09bil9fX1yZXR1cm4gZn07Q3IoZnVuY3Rpb24oKXthcihlLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB3cyhhLGIsYyxkKXtpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9WyJhZyJdLGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYoIW4pcmV0dXJue307dmFyIHA9d3Eobiw1KTtpZihwLmxlbmd0aCl7dmFyIHE9cC5zb3J0KGZ1bmN0aW9uKHIsdCl7cmV0dXJuIE5yKHQpLU5yKHIpfSlbMF07aFtuXT1hcShxLDUpfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sWyJhZF9zdG9yYWdlIl0pfX1mdW5jdGlvbiBScihhKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHRyLnRlc3QoYi5nY2xpZCl9KX0KZnVuY3Rpb24geHMoYSxiKXtpZihTcChBKSl7Zm9yKHZhciBjPUhyKGIucHJlZml4KSxkPXt9LGU9MDtlPGEubGVuZ3RoO2UrKyl4clthW2VdXSYmKGRbYVtlXV09eHJbYVtlXV0pO0NyKGZ1bmN0aW9uKCl7R2IoZCxmdW5jdGlvbihmLGcpe3ZhciBoPWNxKGMrZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aC5zb3J0KGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHNzKHUpLXNzKHQpfSk7aWYoaC5sZW5ndGgpe3ZhciBsPWhbMF0sbj1zcyhsKSxwPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIikuc2xpY2UoMyk6W10scT17fSxyO3I9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKVsyXTp2b2lkIDA7cVtmXT1bcl07aHMocSwhMCxiLG4scCl9fSl9LEFyKCkpfX0KZnVuY3Rpb24geXMoYSl7dmFyIGI9WyJhZyJdLGM9WyJnYnJhaWQiXTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKCFmKWJyZWFrO3ZhciBnPXdxKGYsNSk7aWYoZy5sZW5ndGgpe3ZhciBoPWcuc29ydChmdW5jdGlvbihxLHIpe3JldHVybiBOcihyKS1OcihxKX0pWzBdLGw9TnIoaCksbj1oLmIscD17fTtwW2NbZV1dPWguaztocyhwLCEwLGEsbCxuKX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24genMoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihhW2JbY11dKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBBcyhhKXtmdW5jdGlvbiBiKGgsbCxuKXtuJiYoaFtsXT1uKX1pZihFbCgpKXt2YXIgYz1lcygpLGQ7YS5pbmNsdWRlcygiZ2FkX3NvdXJjZSIpJiYoZD1jLmdhZF9zb3VyY2UhPT12b2lkIDA/Yy5nYWRfc291cmNlOlVxKCExKS5fZ3MpO2lmKHpzKGMsYSl8fGQpe3ZhciBlPXt9O2IoZSwiZ2NsaWQiLGMuZ2NsaWQpO2IoZSwiZGNsaWQiLGMuZGNsaWQpO2IoZSwiZ2Nsc3JjIixjLmdjbHNyYyk7YihlLCJ3YnJhaWQiLGMud2JyYWlkKTtiKGUsImdicmFpZCIsYy5nYnJhaWQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGV9LDMpO3ZhciBmPXt9LGc9KGYuX3VwPSIxIixmKTtiKGcsIl9ncyIsZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZ30sMSl9fX1mdW5jdGlvbiBrcygpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZik7cmV0dXJuIExqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKX0KZnVuY3Rpb24gQnMoYSl7aWYoIVlmKDEpKXJldHVybiBudWxsO3ZhciBiPVVxKCEwKS5nYWRfc291cmNlO2lmKGIhPW51bGwpcmV0dXJuIEEubG9jYXRpb24uaGFzaD0iIixiO2lmKFlmKDIpKXtiPWtzKCk7aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1lcygpO2lmKHpzKGMsYSkpcmV0dXJuIjAifXJldHVybiBudWxsfWZ1bmN0aW9uIENzKGEpe3ZhciBiPUJzKGEpO2IhPW51bGwmJmJyKGZ1bmN0aW9uKCl7dmFyIGM9e307cmV0dXJuIGMuZ2FkX3NvdXJjZT1iLGN9LDQpfQpmdW5jdGlvbiBEcyhhLGIsYyl7dmFyIGQ9W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgZT17fSxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl0saD1nLnpnP2cuemc6ImdjbCI7aWYoKGcubGFiZWxzfHxbXSkuaW5kZXhPZihjKT09PS0xKXthLnB1c2goMCk7dmFyIGw9ITEsbj12b2lkIDA7aWYoKG49Zy5vYSk9PW51bGw/MDpuLmluY2x1ZGVzKDIpKWw9ITA7dmFyIHA9dm9pZCAwOygocD1nLm9hKT09bnVsbD8wOnAuaW5jbHVkZXMoMSkpJiYhZVtoXSYmKGw9ITAsZVtoXT0hMCk7bCYmZC5wdXNoKGcpfWVsc2V7YS5wdXNoKDEpO3ZhciBxPXZvaWQgMDtpZigocT1nLm9hKT09bnVsbD8wOnEuaW5jbHVkZXMoMSkpZVtoXT0hMH19cmV0dXJuIGR9CmZ1bmN0aW9uIEVzKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY9W107Yz1jfHx7fTtpZighQnIoQXIoKSkpcmV0dXJuIGY7dmFyIGc9RXIoYSxlKSxoPURzKGYsZyxiKTtpZihoLmxlbmd0aCYmIWQpe2Zvcih2YXIgbD1bXSxuPSExLHA9bShoKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZSx0PXIsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9KHQubGFiZWxzfHxbXSkuY29uY2F0KFtiXSksQz12b2lkIDA7aWYoKChDPXkpPT1udWxsPzA6Qy5pbmNsdWRlcygxKSkmJiFuKXt2YXIgRD1bdSxNYXRoLnJvdW5kKHgvMUUzKSx2XS5jb25jYXQoeikuam9pbigiLiIpLEk9dXEoYyx4LCEwKTtJLk1jPUFyKCk7b3EoYSxELEkpO249ITB9dmFyIEc9dm9pZCAwO2UmJigoRz15KT09bnVsbD8wOkcuaW5jbHVkZXMoMikpJiZsLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxyLHtsYWJlbHM6en0pKX1sLmxlbmd0aCYmCm1zKCJnY2xfZ2IiLGwsYyl9cmV0dXJuIGZ9CmZ1bmN0aW9uIEZzKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD1bXTtiPWJ8fHt9O3ZhciBlPUdyKGIsYyksZj1EcyhkLGUsYSk7aWYoZi5sZW5ndGgpe2Zvcih2YXIgZz1bXSxoPXt9LGw9bShmKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZSxxPUhyKGIucHJlZml4KSxyPUlyKHAuemcscSk7aWYoIXIpcmV0dXJuIGQ7dmFyIHQ9cCx1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej1NYXRoLnJvdW5kKHgvMUUzKSxDPUxyKHQubGFiZWxzfHxbXSxbYV0pLEQ9dm9pZCAwO2lmKChEPXkpPT1udWxsPzA6RC5pbmNsdWRlcygxKSlpZihwLnpnPT09ImFnIiYmIWguYWcpe3ZhciBJPXt9LEc9KEkuaz12LEkuaT0iIit6LEkuYj1DLEkpO0FxKHIsRyw1LGIseCk7aC5hZz0hMH1lbHNlIGlmKHAuemc9PT0iZ2IiJiYhaC5nYil7dmFyIE49W3Useix2XS5jb25jYXQoQykuam9pbigiLiIpLFM9dXEoYix4LCEwKTtTLk1jPQpBcigpO29xKHIsTixTKTtoLmdiPSEwfXZhciBXPXZvaWQgMDtjJiYoKFc9eSk9PW51bGw/MDpXLmluY2x1ZGVzKDIpKSYmZy5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scCx7bGFiZWxzOkN9KSl9Zy5sZW5ndGgmJm1zKCJnY2xfZ2IiLGcsYil9cmV0dXJuIGR9ZnVuY3Rpb24gR3MoYSxiKXt2YXIgYz1IcihiKSxkPUlyKGEsYyk7aWYoIWQpcmV0dXJuIDA7dmFyIGU7ZT1hPT09ImFnIj9KcihkKTpFcihkKTtmb3IodmFyIGY9MCxnPTA7ZzxlLmxlbmd0aDtnKyspZj1NYXRoLm1heChmLGVbZ10udGltZXN0YW1wKTtyZXR1cm4gZn1mdW5jdGlvbiBIcyhhKXtmb3IodmFyIGI9MCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWZvcih2YXIgZT1hW2QudmFsdWVdLGY9MDtmPGUubGVuZ3RoO2YrKyliPU1hdGgubWF4KGIsTnVtYmVyKGVbZl0udGltZXN0YW1wKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIElzKGEpe3ZhciBiPU1hdGgubWF4KEdzKCJhdyIsYSksSHMoQnIoQXIoKSk/UnAoKTp7fSkpLGM9TWF0aC5tYXgoR3MoImdiIixhKSxIcyhCcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9KSk7Yz1NYXRoLm1heChjLEdzKCJhZyIsYSkpO3JldHVybiBjPmJ9O3ZhciBKcz1SZWdFeHAoIl5VQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKD86JTNCVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKikqJCIpLEtzPS9efj9bXHctXSsoPzpcLn4/W1x3LV0rKSokLyxMcz0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC8sTXM9LztnYWM9KFteOz9dKykvLE5zPS87Z2FjZ2I9KFteOz9dKykvOwpmdW5jdGlvbiBPcyhhLGIpe2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGM9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKGIpO3JldHVybiBjJiZjLmxlbmd0aD09PTImJmNbMV0ubWF0Y2goSnMpP0tqKGNbMV0pfHwiIjoiIn1mb3IodmFyIGQ9W10sZT1tKE9iamVjdC5rZXlzKGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUsaD1bXSxsPWFbZ10sbj0wO248bC5sZW5ndGg7bisrKWgucHVzaChsW25dLmdjbGlkKTtkLnB1c2goZysiOiIraC5qb2luKCIsIikpfXJldHVybiBkLmxlbmd0aD4wP2Quam9pbigiOyIpOiIifQpmdW5jdGlvbiBQcyhhLGIsYyl7Zm9yKHZhciBkPUJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30sZT1bXSxmPSExLGc9bShPYmplY3Qua2V5cyhkKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1FcygiX2dhY19nYl8iK2wsYSxiLGMpO2Y9Znx8bi5sZW5ndGghPT0wJiZuLnNvbWUoZnVuY3Rpb24ocCl7cmV0dXJuIHA9PT0xfSk7ZS5wdXNoKGwrIjoiK24uam9pbigiLCIpKX1yZXR1cm57UnI6Zj9lLmpvaW4oIjsiKToiIixRcjpPcyhkLE5zKX19ZnVuY3Rpb24gUXMoYSl7dmFyIGI9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKG5ldyBSZWdFeHAoIjsiK2ErIj0oW147P10rKSIpKTtyZXR1cm4gYiYmYi5sZW5ndGg9PT0yJiZiWzFdLm1hdGNoKEtzKT9iWzFdOnZvaWQgMH0KZnVuY3Rpb24gUnMoYSl7dmFyIGI9e30sYyxkLGU7THMudGVzdChCLmxvY2F0aW9uLmhvc3QpJiYoYz1RcygiZ2NsZ3MiKSxkPVFzKCJnY2xzdCIpLGU9UXMoImdjbGxwIikpO2lmKGMmJmQmJmUpYi5FZz1jLGIuV2g9ZCxiLlVoPWU7ZWxzZXt2YXIgZj1OYigpLGc9TXIoKGF8fCJfZ2NsIikrIl9ncyIpLGg9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuZ2NsaWR9KSxsPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBmLXAudGltZXN0YW1wfSksbj1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5vZH0pO2gubGVuZ3RoPjAmJmwubGVuZ3RoPjAmJm4ubGVuZ3RoPjAmJihiLkVnPWguam9pbigiLiIpLGIuV2g9bC5qb2luKCIuIiksYi5VaD1uLmpvaW4oIi4iKSl9cmV0dXJuIGJ9CmZ1bmN0aW9uIFNzKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpLGQ9Yj9iLnNwbGl0KCIuIik6W10sZT1kLmxlbmd0aD09PWMubGVuZ3RoP2Q6dm9pZCAwO3JldHVybiBjLm1hcChmdW5jdGlvbihmLGcpe3ZhciBoPXtnY2xpZDpmfTtpZihlKXt2YXIgbD1lW2ddLnNwbGl0KCJfIik7aWYobC5sZW5ndGg9PT0yKXtoLnFhPW5ldyBlcihOdW1iZXIobFswXSkpO3ZhciBuO3ZhciBwPU51bWJlcihsWzFdKTtpZihwPT09MCluPVswXTtlbHNle3ZhciBxPVtdO3AmMSYmcS5wdXNoKDEpO3AmMiYmcS5wdXNoKDIpO3AmNCYmcS5wdXNoKDMpO3AmOCYmcS5wdXNoKDQpO3AmMTYmJnEucHVzaCg1KTtuPXF9aC5vYT1ufX1yZXR1cm4gaH0pfQpmdW5jdGlvbiBUcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBlPVFzKGMpO2lmKGUpe2lmKFlmKDE3KSl7dmFyIGY9UXMoYysiX3NyYyIpO3JldHVybiBTcyhlLGYpfWlmKGQpe3ZhciBnPW5ldyBlcjtmcihnLDIpO2ZyKGcsMyk7cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6ZyxvYTpbMV19fSl9cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6bmV3IGVyLG9hOlsxXX19KX19ZWxzZXtpZihiPT09ImdjbGlkIil7Zm9yKHZhciBoPUVyKChhfHwiX2djbCIpKyJfYXciLGQpLGw9TnVtYmVyKFhmWzRdPT09dm9pZCAwPzA6WGZbNF0pLG49bShVcygpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLnRpbWVzdGFtcD5sJiZRcihoLHEpfXJldHVybiBofWlmKGI9PT0id2JyYWlkIilyZXR1cm4gRXIoKGF8fAoiX2djbCIpKyJfZ2IiLGQpO2lmKGI9PT0iYnJhaWRzIilyZXR1cm4gR3Ioe3ByZWZpeDphfSxkKX1yZXR1cm5bXX1mdW5jdGlvbiBVcygpe3JldHVybih3cSh2ci5hdyw0KXx8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5tPT09IjEifSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybntnY2xpZDphLmssdGltZXN0YW1wOk51bWJlcihhLmkpLHZlcnNpb246IiIsb2E6WzVdfX0pfWZ1bmN0aW9uIFZzKGEpe2Zvcih2YXIgYj0wLGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlPjAmJihifD0xPDxlLTEpfXJldHVybiBiLnRvU3RyaW5nKCl9ZnVuY3Rpb24gV3MoYSl7cmV0dXJuIExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KT8hKFFzKCJnY2xhdyIpfHxRcygiZ2FjIikpOklzKGEpfQpmdW5jdGlvbiBYcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZTtlPWM/RnMoYSxiLGQpOkVzKChiJiZiLnByZWZpeHx8Il9nY2wiKSsiX2diIixhLGIsdm9pZCAwLGQpO3JldHVybiBlLmxlbmd0aD09PTB8fGUuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0wfSk/IiI6ZS5qb2luKCIuIil9Owp2YXIgWXM9ZnVuY3Rpb24oYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9a2ooImFkc19wYWdldmlldyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKGNbYV0pcmV0dXJuITE7Ynx8KGNbYV09ITApO3JldHVybiEwfSxacz1mdW5jdGlvbihhKXtyZXR1cm4gU2ooYSwiZ2NsaWQgZGNsaWQgZ2JyYWlkIHdicmFpZCBnY2xhdyBnY2xkYyBnY2xoYSBnY2xnZiBnY2xnYiBfZ2wiLnNwbGl0KCIgIiksIjAiKX0sYXQ9ZnVuY3Rpb24oKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpLGI9dm9pZCAwLGM9dm9pZCAwLGQ9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGU9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX2NhbXBhaWduaWQiKSxmLGc9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKS5tYXRjaCgkcyk7Zj1nP2dbMV06dm9pZCAwO2QmJmY/KGI9ZCxjPTEpOmQ/KGI9ZCxjPTIpOmYmJihiPWYsYz0zKTtyZXR1cm57RGc6YixTcjpjLFRoOmV9fSxidD1mdW5jdGlvbihhKXt2YXIgYj0KT3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZjtyZXR1cm4gYShiKX0sY3Q9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2Q9UnIoZCk7Zm9yKHZhciBlPVtdLGY9MDtmPGQubGVuZ3RoO2YrKyllLnB1c2goZFtmXS5nY2xpZCk7ZS5sZW5ndGgmJmIucHVzaChjKyI6IitlLmpvaW4oIiwiKSl9KTtyZXR1cm4gYi5qb2luKCI7Iil9LGV0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1kdChhKTtpZihkKXJldHVybiBkO3ZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZz1bXTthPT09ImF3Ij9nPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk6YT09PSJkYyImJihnPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSkpO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/W3t2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOiIwIn1dOmcubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLApnY2xpZDpsLnZhbHVlLHFhOmwucWEsb2E6WzFdfX0pfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/YT09PSJhdyI/RXIoaCxNKDU2MikpOlpyKGgpOltdfSxkdD1mdW5jdGlvbihhKXt2YXIgYj1UaigiZ2NsIithKSxjPWE9PT0iZGMifHxhPT09ImF3Ij9UaigiZ2NsIithKyJfc3JjIik6dm9pZCAwO2lmKGIpcmV0dXJuIFNzKGIsYyl9LGZ0PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09ImF3Inx8YT09PSJkYyJ8fGE9PT0iZ2IiKXt2YXIgZD1UaigiZ2NsIithKTtpZihkKXJldHVybiBkLnNwbGl0KCIuIil9dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnO2c9ZXMoKVthXXx8W107aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9bIjAiXTpnfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/RHIoaCk6W119LGd0PWZ1bmN0aW9uKGEsYixjKXtpZighUihhLGIpfHwhUihhLGMpKXJldHVybiIiO3ZhciBkPVIoYSxiKS5zcGxpdCgiLiIpLGU9UihhLGMpLnNwbGl0KCIuIik7cmV0dXJuIGQubGVuZ3RoJiYKZS5sZW5ndGgmJmQubGVuZ3RoPT09ZS5sZW5ndGgmJmRbMF0mJmVbMF0/ZC5tYXAoZnVuY3Rpb24oZixnKXtyZXR1cm4gZisiXyIrZVtnXX0pLmpvaW4oIi4iKToiIn0sJHM9L15nYWRfc291cmNlW189XShcZCspJC87ZnVuY3Rpb24gaHQoYSxiLGMpe3ZhciBkPVIoYSxGLkQuVGEpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpZm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9ZFtnXTtpZihoIT09dm9pZCAwKXtoPT09bnVsbCYmKGg9IiIpO3ZhciBsPSJnYXAuIitnLG49U3RyaW5nKGgpO2M/YyhsLG4pOmJbbF09bn19fTt2YXIgaXQ9ITEsanQ9W107ZnVuY3Rpb24ga3QoKXtpZighaXQpe2l0PSEwO2Zvcih2YXIgYT1qdC5sZW5ndGgtMTthPj0wO2EtLSlqdFthXSgpO2p0PVtdfX07ZnVuY3Rpb24gbHQoYSl7dmFyIGI9W10sYz0wLGQ7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07ZnVuY3Rpb24gbXQoYSxiLGMpe3JldHVybiB0eXBlb2YgYS5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8oYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSksITApOiExfWZ1bmN0aW9uIG50KGEsYixjKXt0eXBlb2YgYS5yZW1vdmVFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIiYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIG90KGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1hZ2VfcmVxdWVzdHM9W10pO3ZhciBlPVBwKGEuZG9jdW1lbnQpO2lmKGMpe3ZhciBmPWZ1bmN0aW9uKCl7aWYoYyl7dmFyIGc9YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMsaD1EYyhnLGUpO2g+PTAmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChnLGgsMSl9bnQoZSwibG9hZCIsZik7bnQoZSwiZXJyb3IiLGYpfTttdChlLCJsb2FkIixmKTttdChlLCJlcnJvciIsZil9ZCYmKGUuYXR0cmlidXRpb25TcmM9IiIpO2Uuc3JjPWI7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMucHVzaChlKX0KZnVuY3Rpb24gcHQoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2dlbl8yMDQ/aWQ9dGNmZSI7SXAoYSxmdW5jdGlvbihkLGUpe2lmKGR8fGQ9PT0wKWMrPSImIitlKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKX0pO3F0KGMsYil9CmZ1bmN0aW9uIHF0KGEsYil7dmFyIGM9d2luZG93LGQ7Yj1iPT09dm9pZCAwPyExOmI7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYy5mZXRjaCl7dmFyIGU9e2tlZXBhbGl2ZTohMCxjcmVkZW50aWFsczoiaW5jbHVkZSIscmVkaXJlY3Q6ImZvbGxvdyIsbWV0aG9kOiJnZXQiLG1vZGU6Im5vLWNvcnMifTtkJiYoZS5tb2RlPSJjb3JzIiwic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2UuYXR0cmlidXRpb25SZXBvcnRpbmc9e2V2ZW50U291cmNlRWxpZ2libGU6InRydWUiLHRyaWdnZXJFbGlnaWJsZToiZmFsc2UifTplLmhlYWRlcnM9eyJBdHRyaWJ1dGlvbi1SZXBvcnRpbmctRWxpZ2libGUiOiJldmVudC1zb3VyY2UifSk7Yy5mZXRjaChhLGUpfWVsc2Ugb3QoYyxhLGI9PT12b2lkIDA/ITE6YixkPT09dm9pZCAwPyExOmQpfTtmdW5jdGlvbiBydCgpe3RoaXMuZmE9dGhpcy5mYTt0aGlzLlI9dGhpcy5SfXJ0LnByb3RvdHlwZS5mYT0hMTtydC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZmF8fCh0aGlzLmZhPSEwLHRoaXMuTigpKX07cnQucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtydC5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhP2IhPT12b2lkIDA/YS5jYWxsKGIpOmEoKToodGhpcy5SfHwodGhpcy5SPVtdKSxiJiYoYT1hLmJpbmQoYikpLHRoaXMuUi5wdXNoKGEpKX07cnQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtpZih0aGlzLlIpZm9yKDt0aGlzLlIubGVuZ3RoOyl0aGlzLlIuc2hpZnQoKSgpfTtmdW5jdGlvbiBzdChhKXthLmFkZHRsQ29uc2VudD09PXZvaWQgMHx8dmYoYS5hZGR0bENvbnNlbnQpfHwoYS5hZGR0bENvbnNlbnQ9dm9pZCAwKTthLmdkcHJBcHBsaWVzPT09dm9pZCAwfHx3ZihhLmdkcHJBcHBsaWVzKXx8KGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gYS50Y1N0cmluZyE9PXZvaWQgMCYmIXZmKGEudGNTdHJpbmcpfHxhLmxpc3RlbmVySWQhPT12b2lkIDAmJiF1ZihhLmxpc3RlbmVySWQpPzI6YS5jbXBTdGF0dXMmJmEuY21wU3RhdHVzIT09ImVycm9yIj8wOjN9dmFyIHR0PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7cnQuY2FsbCh0aGlzKTt0aGlzLkg9bnVsbDt0aGlzLmphPXt9O3RoaXMueWE9MDt0aGlzLlo9bnVsbDt0aGlzLks9YTt2YXIgYzt0aGlzLnRpbWVvdXRNcz0oYz1iLnRpbWVvdXRNcykhPW51bGw/Yzo1MDA7dmFyIGQ7dGhpcy5Faj0oZD1iLkVqKSE9bnVsbD9kOiExfTt3YSh0dCxydCk7CnR0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5qYT17fTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuamE7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5IO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9O3ZhciB2dD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuSy5fX3RjZmFwaT09PSJmdW5jdGlvbiJ8fHV0KGEpIT1udWxsfTsKdHQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXtpbnRlcm5hbEJsb2NrT25FcnJvcnM6dGhpcy5Fan0sZD1IcChmdW5jdGlvbigpe2EoYyl9KSxlPTA7dGhpcy50aW1lb3V0TXMhPT0tMSYmKGU9c2V0VGltZW91dChmdW5jdGlvbigpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiO2MuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZCgpfSx0aGlzLnRpbWVvdXRNcykpO3ZhciBmPWZ1bmN0aW9uKGcsaCl7Y2xlYXJUaW1lb3V0KGUpO2c/KGM9ZyxjLmludGVybmFsRXJyb3JTdGF0ZT1zdChjKSxjLmludGVybmFsQmxvY2tPbkVycm9ycz1iLkVqLGgmJmMuaW50ZXJuYWxFcnJvclN0YXRlPT09MHx8KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGh8fChjLmludGVybmFsRXJyb3JTdGF0ZT0zKSkpOihjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGMpfTt0cnl7d3QodGhpcywiYWRkRXZlbnRMaXN0ZW5lciIsCmYpfWNhdGNoKGcpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMsZSYmKGNsZWFyVGltZW91dChlKSxlPTApLGQoKX19O3R0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmd3QodGhpcywicmVtb3ZlRXZlbnRMaXN0ZW5lciIsbnVsbCxhLmxpc3RlbmVySWQpfTsKdmFyIHp0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPWQ9PT12b2lkIDA/Ijc1NSI6ZDt2YXIgZTthOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgZj1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbYl07aWYoZiE9PXZvaWQgMCl7ZT1mW2Q9PT12b2lkIDA/Ijc1NSI6ZF07YnJlYWsgYX19ZT12b2lkIDB9dmFyIGc9ZTtpZihnPT09MClyZXR1cm4hMTt2YXIgaD1jO2M9PT0yPyhoPTAsZz09PTImJihoPTEpKTpjPT09MyYmKGg9MSxnPT09MSYmKGg9MCkpO3ZhciBsO2lmKGg9PT0wKWlmKGEucHVycG9zZSYmYS52ZW5kb3Ipe3ZhciBuPXh0KGEudmVuZG9yLmNvbnNlbnRzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk7bD1uJiZiPT09IjEiJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJmEucHVibGlzaGVyQ0M9PT0iQ0giPyEwOm4mJnh0KGEucHVycG9zZS5jb25zZW50cyxiKX1lbHNlIGw9ITA7ZWxzZSBsPWg9PT0xP2EucHVycG9zZSYmYS52ZW5kb3I/eHQoYS5wdXJwb3NlLmxlZ2l0aW1hdGVJbnRlcmVzdHMsCmIpJiZ4dChhLnZlbmRvci5sZWdpdGltYXRlSW50ZXJlc3RzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk6ITA6ITA7cmV0dXJuIGx9LHh0PWZ1bmN0aW9uKGEsYil7cmV0dXJuISghYXx8IWFbYl0pfSx3dD1mdW5jdGlvbihhLGIsYyxkKXtjfHwoYz1mdW5jdGlvbigpe30pO3ZhciBlPWEuSztpZih0eXBlb2YgZS5fX3RjZmFwaT09PSJmdW5jdGlvbiIpe3ZhciBmPWUuX190Y2ZhcGk7ZihiLDIsYyxkKX1lbHNlIGlmKHV0KGEpKXtBdChhKTt2YXIgZz0rK2EueWE7YS5qYVtnXT1jO2lmKGEuSCl7dmFyIGg9e307YS5ILnBvc3RNZXNzYWdlKChoLl9fdGNmYXBpQ2FsbD17Y29tbWFuZDpiLHZlcnNpb246MixjYWxsSWQ6ZyxwYXJhbWV0ZXI6ZH0saCksIioiKX19ZWxzZSBjKHt9LCExKX0sdXQ9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5IPU5wKGEuSywiX190Y2ZhcGlMb2NhdG9yIik7cmV0dXJuIGEuSH0sQXQ9ZnVuY3Rpb24oYSl7aWYoIWEuWil7dmFyIGI9ZnVuY3Rpb24oYyl7aWYoYy5zb3VyY2U9PT0KYS5IKXRyeXt2YXIgZDtkPSh2ZihjLmRhdGEpP0pTT04ucGFyc2UoYy5kYXRhKTpjLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuamFbZC5jYWxsSWRdKGQucmV0dXJuVmFsdWUsZC5zdWNjZXNzKX1jYXRjaChlKXt9fTthLlo9YjttdChhLkssIm1lc3NhZ2UiLGIpfX0sQnQ9ZnVuY3Rpb24oYSl7aWYoYS5nZHByQXBwbGllcz09PSExKXJldHVybiEwO2EuaW50ZXJuYWxFcnJvclN0YXRlPT09dm9pZCAwJiYoYS5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYSkpO3JldHVybiBhLmNtcFN0YXR1cz09PSJlcnJvciJ8fGEuaW50ZXJuYWxFcnJvclN0YXRlIT09MD9hLmludGVybmFsQmxvY2tPbkVycm9ycz8ocHQoe2U6U3RyaW5nKGEuaW50ZXJuYWxFcnJvclN0YXRlKX0pLCExKTohMDphLmNtcFN0YXR1cyE9PSJsb2FkZWQifHxhLmV2ZW50U3RhdHVzIT09InRjbG9hZGVkIiYmYS5ldmVudFN0YXR1cyE9PSJ1c2VyYWN0aW9uY29tcGxldGUiPyExOiEwfTt2YXIgQ3Q9ezE6MCwzOjAsNDowLDc6Myw5OjMsMTA6M307ZnVuY3Rpb24gRHQoKXtyZXR1cm4ga2ooInRjZiIsZnVuY3Rpb24oKXtyZXR1cm57fX0pfXZhciBFdD1mdW5jdGlvbigpe3JldHVybiBuZXcgdHQoQSx7dGltZW91dE1zOi0xfSl9OwpmdW5jdGlvbiBGdCgpe3ZhciBhPUR0KCksYj1FdCgpO3Z0KGIpJiYhR3QoKSYmIUh0KCkmJlAoMTI0KTtpZighYS5hY3RpdmUmJnZ0KGIpKXtHdCgpJiYoYS5hY3RpdmU9ITAsYS5wdXJwb3Nlcz17fSxhLmNtcElkPTAsYS50Y2ZQb2xpY3lWZXJzaW9uPTAsdGwoKS5hY3RpdmU9ITAsYS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIpO2NwKCk7dHJ5e2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihjKXtpZihjLmludGVybmFsRXJyb3JTdGF0ZSE9PTApSXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITA7ZWxzZSBpZihhLmdkcHJBcHBsaWVzPWMuZ2RwckFwcGxpZXMsYS5jbXBJZD1jLmNtcElkLGEuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPWMuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlLEh0KCkmJihhLmFjdGl2ZT0hMCksIUp0KGMpfHxHdCgpfHxIdCgpKXthLnRjZlBvbGljeVZlcnNpb249Yy50Y2ZQb2xpY3lWZXJzaW9uO3ZhciBkO2lmKGMuZ2RwckFwcGxpZXM9PT0KITEpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gQ3QpQ3QuaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPSEwKTtkPWU7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMpfWVsc2UgaWYoSnQoYykpe3ZhciBnPXt9LGg7Zm9yKGggaW4gQ3QpaWYoQ3QuaGFzT3duUHJvcGVydHkoaCkpaWYoaD09PSIxIil7dmFyIGwsbj1jLHA9e1VyOiEwfTtwPXA9PT12b2lkIDA/e306cDtsPUJ0KG4pP24uZ2RwckFwcGxpZXM9PT0hMT8hMDpuLnRjU3RyaW5nPT09InRjdW5hdmFpbGFibGUiPyFwLmlkcGNBcHBsaWVzOihwLmlkcGNBcHBsaWVzfHxuLmdkcHJBcHBsaWVzIT09dm9pZCAwfHxwLlVyKSYmKHAuaWRwY0FwcGxpZXN8fHZmKG4udGNTdHJpbmcpJiZuLnRjU3RyaW5nLmxlbmd0aCk/enQobiwiMSIsMCk6ITA6ITE7Z1siMSJdPWx9ZWxzZSBnW2hdPXp0KGMsaCxDdFtoXSk7ZD1nfWlmKGQpe2EudGNTdHJpbmc9Yy50Y1N0cmluZ3x8InRjZW1wdHkiO2EucHVycG9zZXM9ZDt2YXIgcT17fSxyPShxW0YuRC5rYV09CmEucHVycG9zZXNbIjEiXT8iZ3JhbnRlZCI6ImRlbmllZCIscSk7YS5nZHByQXBwbGllcyE9PSEwPyhkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMCk6KHJbRi5ELlhhXT1hLnB1cnBvc2VzWyIzIl0mJmEucHVycG9zZXNbIjQiXT8iZ3JhbnRlZCI6ImRlbmllZCIsdHlwZW9mIGEudGNmUG9saWN5VmVyc2lvbj09PSJudW1iZXIiJiZhLnRjZlBvbGljeVZlcnNpb24+PTQ/cltGLkQubWFdPWEucHVycG9zZXNbIjEiXSYmYS5wdXJwb3Nlc1siNyJdPyJncmFudGVkIjoiZGVuaWVkIjpkcChbRi5ELm1hXSksVm8ocix7ZXZlbnRJZDowfSx7Z2RwckFwcGxpZXM6YT9hLmdkcHJBcHBsaWVzOnZvaWQgMCx0Y1N0cmluZzpLdCgpfHwiIn0pKX19ZWxzZSBkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKX0pfWNhdGNoKGMpe0l0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwfX19CmZ1bmN0aW9uIEl0KGEpe2EudHlwZT0iZSI7YS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSJ9ZnVuY3Rpb24gSnQoYSl7cmV0dXJuIGEuZXZlbnRTdGF0dXM9PT0idGNsb2FkZWQifHxhLmV2ZW50U3RhdHVzPT09InVzZXJhY3Rpb25jb21wbGV0ZSJ8fGEuZXZlbnRTdGF0dXM9PT0iY21wdWlzaG93biJ9ZnVuY3Rpb24gR3QoKXtyZXR1cm4gQS5ndGFnX2VuYWJsZV90Y2Zfc3VwcG9ydD09PSEwfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIER0KCkuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPT09ITB9ZnVuY3Rpb24gS3QoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlKXJldHVybiBhLnRjU3RyaW5nfWZ1bmN0aW9uIEx0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSYmYS5nZHByQXBwbGllcyE9PXZvaWQgMClyZXR1cm4gYS5nZHByQXBwbGllcz8iMSI6IjAifQpmdW5jdGlvbiBNdChhKXtpZighQ3QuaGFzT3duUHJvcGVydHkoU3RyaW5nKGEpKSlyZXR1cm4hMDt2YXIgYj1EdCgpO3JldHVybiBiLmFjdGl2ZSYmYi5wdXJwb3Nlcz8hIWIucHVycG9zZXNbU3RyaW5nKGEpXTohMH07dmFyIE50PVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdLE90PXt9LFB0PShPdFtGLkQua2FdPTEsT3RbRi5ELnJhXT0yLE90KTtmdW5jdGlvbiBRdChhKXtpZihhPT09dm9pZCAwKXJldHVybiAwO3N3aXRjaChPKGEsRi5ELlJjKSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMTpyZXR1cm4gMztkZWZhdWx0OnJldHVybiAyfX1mdW5jdGlvbiBSdCgpe3JldHVybihNKDE4Myk/TGYoMTYpLnNwbGl0KCJ+Iik6TGYoMTcpLnNwbGl0KCJ+IikpLmluZGV4T2Yoem0oKSkhPT0tMSYmSGMuZ2xvYmFsUHJpdmFjeUNvbnRyb2w9PT0hMH1mdW5jdGlvbiBTdChhKXtpZihSdCgpKXJldHVybiExO3ZhciBiPVF0KGEpO2lmKGI9PT0zKXJldHVybiExO3N3aXRjaChDbChGLkQuWGEpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtjYXNlIDQ6cmV0dXJuIGI9PT0yO2Nhc2UgMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0KZnVuY3Rpb24gVHQoKXtyZXR1cm4gRWwoKXx8IUJsKEYuRC5rYSl8fCFCbChGLkQucmEpfWZ1bmN0aW9uIFV0KCl7dmFyIGE9e30sYjtmb3IoYiBpbiBQdClQdC5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbUHRbYl1dPUNsKGIpKTtyZXR1cm4iRzEiK3lmKGFbMV18fDApK3lmKGFbMl18fDApfXZhciBWdD17fSxXdD0oVnRbRi5ELmthXT0wLFZ0W0YuRC5yYV09MSxWdFtGLkQubWFdPTIsVnRbRi5ELlhhXT0zLFZ0KTtmdW5jdGlvbiBYdChhKXtzd2l0Y2goYSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMDpyZXR1cm4gMztjYXNlICExOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fQpmdW5jdGlvbiBZdChhKXtmb3IodmFyIGI9IjEiLGM9MDtjPE50Lmxlbmd0aDtjKyspe3ZhciBkPWIsZSxmPU50W2NdLGc9QWwuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2ZdO2U9Zz09PXZvaWQgMD8wOld0Lmhhc093blByb3BlcnR5KGcpPzEyfFd0W2ddOjg7dmFyIGg9dGwoKTtoLmFjY2Vzc2VkQW55PSEwO3ZhciBsPWguZW50cmllc1tmXXx8e307ZT1lPDwyfFh0KGwuaW1wbGljaXQpO2I9ZCsoIiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2VdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltYdChsLmRlY2xhcmUpPDw0fFh0KGwuZGVmYXVsdCk8PDJ8WHQobC51cGRhdGUpXSl9dmFyIG49YixwPShSdCgpPzE6MCk8PDMscT0oRWwoKT8xOjApPDwyLHI9UXQoYSk7Yj1uKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltwfApxfHJdO3JldHVybiBiKz0iIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfc3RvcmFnZTw8NHxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hbmFseXRpY3Nfc3RvcmFnZTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF91c2VyX2RhdGFdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlsoQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPzE6MCk8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfcGVyc29uYWxpemF0aW9uXX1mdW5jdGlvbiBadCgpe3JldHVybiBCbChGLkQubWEpPyJhIjoiLSJ9ZnVuY3Rpb24gJHQoKXtyZXR1cm4gQm0oKXx8KEd0KCl8fEh0KCkpJiZMdCgpPT09IjEiPyIxIjoiMCJ9CmZ1bmN0aW9uIGF1KCl7cmV0dXJuKEJtKCk/ITA6ISghR3QoKSYmIUh0KCkpJiZMdCgpPT09IjEiKXx8IUJsKEYuRC5tYSl9CmZ1bmN0aW9uIGJ1KCl7dmFyIGE9IjAiLGI9IjAiLGM7dmFyIGQ9RHQoKTtjPWQuYWN0aXZlP2QuY21wSWQ6dm9pZCAwO3R5cGVvZiBjPT09Im51bWJlciImJmM+PTAmJmM8PTQwOTUmJihhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjPj42JjYzXSxiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjJjYzXSk7dmFyIGU9IjAiLGY7dmFyIGc9RHQoKTtmPWcuYWN0aXZlP2cudGNmUG9saWN5VmVyc2lvbjp2b2lkIDA7dHlwZW9mIGY9PT0ibnVtYmVyIiYmZj49MCYmZjw9NjMmJihlPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltmXSk7dmFyIGg9MDtCbSgpJiYoaHw9MSk7THQoKT09PSIxIiYmKGh8PTIpO0d0KCkmJihofD00KTt2YXIgbDt2YXIgbj1EdCgpO2w9bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUhPT0Kdm9pZCAwP24uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPyIxIjoiMCI6dm9pZCAwO2w9PT0iMSImJihofD04KTt0bCgpLndhaXRQZXJpb2RUaW1lZE91dCYmKGh8PTE2KTtyZXR1cm4iMSIrYStiK2UrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2hdfTt2YXIgY3U9e1VBOjEsQVc6MixEQzozLEc6NCxHRjo1LEdUOjEyLEdUTToxNCxIQTo2LE1DOjd9OwpmdW5jdGlvbiBkdShhKXthPWE9PT12b2lkIDA/e306YTt2YXIgYj1FKDUpLnNwbGl0KCItIilbMF0udG9VcHBlckNhc2UoKSxjLGQ9e2N0aWQ6RSg1KSxEbzpKZigxNSksSW86RSgxNCksTHM6SWYoNyk/MjoxLER0OmEucGYsY2Fub25pY2FsSWQ6RSg2KSxudDooYz1BaygpKT09bnVsbD92b2lkIDA6Yy5jYW5vbmljYWxDb250YWluZXJJZCxFdDphLlRnPT09dm9pZCAwP3ZvaWQgMDphLlRnPzEwOjEyfTtkLmNhbm9uaWNhbElkIT09YS5tYyYmKGQubWM9YS5tYyk7dmFyIGU9eGsoKTtkLlVzPWU/ZS5jYW5vbmljYWxDb250YWluZXJJZDp2b2lkIDA7SWYoNDUpPyhkLmhpPWN1W2JdLGQuaGl8fChkLmhpPTApKTpkLmhpPURqPzEzOjEwO0lmKDQ3KT8oZC5iaz0wLGQucXI9Mik6SWYoNTApP2QuYms9MTpkLmJrPTM7dmFyIGY9YSxnPXs2OiExfTtKZig1NCk9PT0yP2dbN109ITA6SmYoNTQpPT09MSYmKGdbMl09ITApO2lmKEtjKXt2YXIgaD1MaihSaihLYyksImhvc3QiKTtoJiYoZ1s4XT0KaC5tYXRjaCgvXih3d3dcLik/Z29vZ2xldGFnbWFuYWdlclwuY29tJC8pPT09bnVsbCl9dmFyIGw7Z1s5XT0obD1mLmVmKSE9bnVsbD9sOiExO3ZhciBuPUZrKCkscDtnWzEwXT0ocD1uPT1udWxsP3ZvaWQgMDpuLmZyb21Db250YWluZXJFeGVjdXRpb24pIT1udWxsP3A6ITE7ZC56cj1nO3JldHVybiBDZihkLGEuUG4pfTsKdmFyIGZ1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9UihhLGUpLGc9UShhLEguSi5ZZSk7TSg1ODkpJiZnJiYoZT09PUYuRC56YXx8ZT09PUYuRC5VYXx8ZT09PUYuRC5QZSkmJnR5cGVvZiBmPT09InN0cmluZyImJihmPVpzKGYpKTt2YXIgaD1vcChlLGYpO2gmJighZ3x8ZSE9PUYuRC5EZCYmZSE9PUYuRC5LZCYmZSE9PUYuRC5FZSYmZSE9PUYuRC5CZnx8KGgudmFsdWU9IjAiKSxNKDUwNCkmJihlPT09Ri5ELk1kP2gua2V5PSJldm5pZCI6ZT09PUYuRC5OZCYmKGgua2V5PSJleGNpZCIpKSxiW2gua2V5XT1oLnZhbHVlKX1iLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtUdCgpJiYoYi5nY3M9Yi5nY3N8fFV0KCkpO2IuZ2NkPWIuZ2NkfHxZdChhLk0pO2F1KCkmJihiLmRtYV9jcHM9WnQoKSk7Yi5kbWE9JHQoKTt2dChFdCgpKSYmCihiLnRjZmQ9YnUoKSk7dmFyIGw9Q3AoYSk7bCYmKGIudGFnX2V4cD1sKTtpZihRKGEsSC5KLkJrKSl7Yi50ZnQ9U3RyaW5nKE5iKCkpO3ZhciBuPXBkKCk7biE9PXZvaWQgMCYmKGIudGZkPVN0cmluZyhNYXRoLnJvdW5kKG4pKSl9Yi5hcHZlPSIxIjtiLmFwdmY9bmQoKT8iZiI6Im5mIjtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChiLmxpbWl0ZWRfYWRzPSIxIik7dmFyIHA9UShhLEguSi5YZyk7TSg0NzQpJiZwIT1udWxsJiZwIT09IiImJihiLl9nc2lkPXApO2h0KGEsYixmdW5jdGlvbihxLHIpe2JbcV09ZW5jb2RlVVJJQ29tcG9uZW50KHIpfSk7cmV0dXJuIGJ9O3ZhciBndT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZW5kcG9pbnQ9YTt0aGlzLmZhPWM7dGhpcy5qYT1kO3RoaXMucGFyYW1ldGVyRW5jb2Rpbmc9ZTt0aGlzLlo9Yi5zbGljZSgpfTtndS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBYbyh0aGlzLlopfTtndS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Z3UucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXt2YXIgYT1NbVt0aGlzLmVuZHBvaW50XSh2b2lkIDApO3JldHVybiBTYihhLCJodHRwczovLyIpP2Euc3Vic3RyaW5nKDgpOlNiKGEsImh0dHA6Ly8iKT9hLnN1YnN0cmluZyg3KTphfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLm1ldGhvZE5hbWU9YTt0aGlzLlI9Yn07aHUucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmlzU3VwcG9ydGVkKCkpaWYoKGM9PW51bGw/dm9pZCAwOmMuYm9keSk9PT12b2lkIDB8fHRoaXMuSCgpKXRyeXt0aGlzLksoYSxiLGMpfWNhdGNoKGQpe2EucmQoZCl9ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGRvZXMgbm90IHN1cHBvcnQgYSByZXF1ZXN0IGJvZHkuIik7ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGlzIG5vdCBzdXBwb3J0ZWQuIil9O3ZhciBpdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW1hZ2VQaXhlbCIsMyl9O3dhKGl1LGh1KTtpdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07aXUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Cml1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtaYyhiLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbigpe2Eub25GYWlsdXJlKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIganU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIlNlbmRCZWFjb24iLDEpfTt3YShqdSxodSk7anUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGtkKCl9O2p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtqZChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSk/YS5qZigpOmEucmQodm9pZCAwKX07dmFyIGt1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJGZXRjaCIsMSl9O3dhKGt1LGh1KTtrdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O2t1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwprdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7QS5mZXRjaChiLGM9PW51bGw/dm9pZCAwOmMuR2IpLnRoZW4oZnVuY3Rpb24oZCl7aWYoZC5vaylhLnBlKGQpO2Vsc2UgaWYoZC5zdGF0dXM9PT0wKWEuamYoKTtlbHNlIGEub25GYWlsdXJlKCJGZXRjaCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Quc3RhdHVzKyIuIil9KS5jYXRjaChmdW5jdGlvbihkKXthLnJkKGQpfSl9O3ZhciBsdT1uZXcgaXUsbXU9bmV3IGp1LG51PW5ldyBrdTt2YXIgb3U9ZnVuY3Rpb24oKXt9O291LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuW119Owp2YXIgcHU9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl06YjtndS5jYWxsKHRoaXMsYSxiLDEsITAsMil9O3dhKHB1LGd1KTtwdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtpZih0aGlzLloubGVuZ3RoKXt2YXIgYj1RKGEsSC5KLkRrKTtpZihiIT09dm9pZCAwKXJldHVybiBifXJldHVybiBndS5wcm90b3R5cGUuSy5jYWxsKHRoaXMsYSl9O3B1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSk7YS50YXJnZXQuZGVzdGluYXRpb25JZCYmKGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO2IubWV0aG9kIGluc3RhbmNlb2Yga3U/Yy5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/Yy5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihjLmZtdD0iMyIpO3JldHVybiBjfTtwdS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLk4oYSxiKTtyZXR1cm4iPyIrT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKwoiPSIrY1tkXX0pLmpvaW4oIiYiKX07cHUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMueWEoYSxiKSxlPXt9O2lmKGIubWV0aG9kIGluc3RhbmNlb2Yga3Upe2UuR2I9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7aWYodGhpcy5lbmRwb2ludD09PTU4fHx0aGlzLmVuZHBvaW50PT09NTcpZS5HYi5tZXRob2Q9IkdFVCI7dGhpcy5lbmRwb2ludCE9PTQ1fHxxdS5LKGEpfHwoZS5HYi5jcmVkZW50aWFscz0ib21pdCIsZCs9IiZnYXAudWNmYj0xIil9YyhkLGUpfTt2YXIgcXU9bmV3IHB1KDQ1KSxydT1uZXcgcHUoNDUsW10pLHN1PW5ldyBwdSg0NixbXSksdHU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNjkpfTt3YSh0dSxwdSk7dHUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3ZhciBiPU0oNDc0KSYmKCEhUihhLCJfZ3NpZCIpfHwhIVEoYSxILkouWGcpKSxjPVIoYSxGLkQuSGQpIT09IjEiJiYoISFSKGEsImdjbGlkIil8fAohIVIoYSwiZGNsaWQiKXx8ISFSKGEsImdjbHNyYyIpfHwhIVIoYSwiYXVpZCIpKTtyZXR1cm4gYnx8Y307dHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKSxkPWxwKGEsYyl8fHt9O09iamVjdC5rZXlzKGQpLmxlbmd0aD4wJiYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdT9kLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9kLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGQuZm10PSIzIikpO3JldHVybiBkfTt2YXIgdXU9bmV3IHR1LHZ1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDQ1KX07d2EodnUscHUpO3Z1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3QifTt2dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO2NbImdhcC4xcGZiIl09IjEiO3JldHVybiBjfTt2YXIgd3U9ZnVuY3Rpb24oYSl7cHUuY2FsbCh0aGlzLGEsWyJhZF9zdG9yYWdlIiwKImFkX3VzZXJfZGF0YSJdKX07d2Eod3UscHUpO3d1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7cmV0dXJuIGhwKGMpfTt2YXIgeHU9bmV3IHd1KDU4KSx5dT1uZXcgd3UoNTcpLHp1PWZ1bmN0aW9uKCl7fTt3YSh6dSxvdSk7enUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9cXUuSyhhKSxjPWI/cXU6c3UsZD1be2VuZHBvaW50OmMsbWV0aG9kOm5kKCk/bnU6bXV9LHtlbmRwb2ludDpjLG1ldGhvZDpsdX1dO2I/TSg1MTcpJiZJZig0NykmJmQucHVzaCh7ZW5kcG9pbnQ6bmV3IHZ1LG1ldGhvZDpudX0pOk0oNjAwKSYmZC5wdXNoKHtlbmRwb2ludDpydSxtZXRob2Q6bnV9KTtyZXR1cm4gZH07enUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYz0hIVEoYSxILkoudmQpLGQ9UihhLEYuRC5QZCk9PT0iMSIsZT1SKGEsRi5ELkhkKT09PSIxIixmPXF1LksoYSksZz1jJiZkJiYhZSYmZjtpZihnKXt2YXIgaD0KUWMoKXx8T2MoKT94dTp5dTtiLnB1c2goW3tlbmRwb2ludDpoLG1ldGhvZDpudX0se2VuZHBvaW50OmgsbWV0aG9kOmx1fV0pfWYmJihnfHxRKGEsSC5KLmhkKSkmJmIucHVzaChbe2VuZHBvaW50OnV1LG1ldGhvZDpuZCgpP251Omx1fV0pO3JldHVybiBifTt2YXIgQXU9bmV3IHp1O3ZhciBUPXtXOntKazoxLG5qOjIsRms6MyxtbDo0LEdrOjUseWQ6NixrbDo3LE1xOjgscW46OSxIazoxMCxJazoxMSxGaDoxMixEbToxMyxBbToxNCxDbToxNSx6bToxNixCbToxNyx5bToxOCxUbzoxOSx4cToyMCx5cToyMSxmajoyMix1bjoyNCxPbToyNSxTazoyNixUazoyNyxSazoyOCxVazoyOSxyajozMCxPazozMSxabzozMn19O1QuV1tULlcuSmtdPSJBTExPV19JTlRFUkVTVF9HUk9VUFMiO1QuV1tULlcubmpdPSJTRVJWRVJfQ09OVEFJTkVSX1VSTCI7VC5XW1QuVy5Ga109IkFEU19EQVRBX1JFREFDVElPTiI7VC5XW1QuVy5tbF09IkNVU1RPTUVSX0xJRkVUSU1FX1ZBTFVFIjtULldbVC5XLkdrXT0iQUxMT1dfQ1VTVE9NX1NDUklQVFMiO1QuV1tULlcueWRdPSJBTllfQ09PS0lFX1BBUkFNUyI7VC5XW1QuVy5rbF09IkNPT0tJRV9FWFBJUkVTIjtULldbVC5XLk1xXT0iTEVHQUNZX0VOSEFOQ0VEX0NPTlZFUlNJT05fSlNfVkFSSUFCTEUiO1QuV1tULlcucW5dPSJSRVNUUklDVEVEX0RBVEFfUFJPQ0VTU0lORyI7ClQuV1tULlcuSGtdPSJBTExPV19ESVNQTEFZX0ZFQVRVUkVTIjtULldbVC5XLklrXT0iQUxMT1dfR09PR0xFX1NJR05BTFMiO1QuV1tULlcuRmhdPSJHRU5FUkFURURfVFJBTlNBQ1RJT05fSUQiO1QuV1tULlcuRG1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTktOT1dOIjtULldbVC5XLkFtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfU1RBTkRBUkQiO1QuV1tULlcuQ21dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTklRVUUiO1QuV1tULlcuem1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9QRVJfU0VTU0lPTiI7VC5XW1QuVy5CbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1RSQU5TQUNUSU9OUyI7VC5XW1QuVy55bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX0lURU1TX1NPTEQiO1QuV1tULlcuVG9dPSJBRFNfT0dUX1YxX1VTQUdFIjtULldbVC5XLnhxXT0iRk9STV9JTlRFUkFDVElPTl9QRVJNSVNTSU9OX0RFTklFRCI7ClQuV1tULlcueXFdPSJGT1JNX1NVQk1JVF9QRVJNSVNTSU9OX0RFTklFRCI7VC5XW1QuVy5mal09Ik1JQ1JPVEFTS19OT1RfU1VQUE9SVEVEIjtULldbVC5XLnVuXT0iU0VUX0VOQ1JZUFRFRF9EQVRBX1RPX0NBQ0hFIjtULldbVC5XLk9tXT0iR0VUX0VOQ1JZUFRFRF9EQVRBX0ZST01fQ0FDSEUiO1QuV1tULlcuU2tdPSJDT05GSUdfREVURUNURURfV0lUSF9OT19QQVJBTSI7VC5XW1QuVy5Ua109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX1BBUkFNIjtULldbVC5XLlJrXT0iQ09ORklHX0NPTlNFTlRfU0VUX0JFRk9SRSI7VC5XW1QuVy5Va109IkNPTkZJR19TRVRfVVNFRF9CRUZPUkUiO1QuV1tULlcucmpdPSJTSEFET1dfRE9NX0FVVE9fUElJIjtULldbVC5XLk9rXT0iQ0NEX1VTRVJfREFUQV9XRUJfT05fQ09ORklHIjtULldbVC5XLlpvXT0iQkxFTkRFRF9VU0VSX0RBVEEiO3ZhciBCdT17fSxDdT0oQnVbRi5ELnVpXT1ULlcuSmssQnVbRi5ELmRkXT1ULlcubmosQnVbRi5ELnljXT1ULlcubmosQnVbRi5ELm1iXT1ULlcuRmssQnVbRi5ELkdlXT1ULlcubWwsQnVbRi5ELnJpXT1ULlcuR2ssQnVbRi5ELkpkXT1ULlcueWQsQnVbRi5ELm5iXT1ULlcueWQsQnVbRi5ELkxiXT1ULlcueWQsQnVbRi5ELklkXT1ULlcueWQsQnVbRi5ELnZjXT1ULlcueWQsQnVbRi5ELlRiXT1ULlcueWQsQnVbRi5ELkNiXT1ULlcua2wsQnVbRi5ELldiXT1ULlcucW4sQnVbRi5ELmhoXT1ULlcuSGssQnVbRi5ELlNjXT1ULlcuSWssQnUpLER1PXt9LEV1PShEdS51bmtub3duPVQuVy5EbSxEdS5zdGFuZGFyZD1ULlcuQW0sRHUudW5pcXVlPVQuVy5DbSxEdS5wZXJfc2Vzc2lvbj1ULlcuem0sRHUudHJhbnNhY3Rpb25zPVQuVy5CbSxEdS5pdGVtc19zb2xkPVQuVy55bSxEdSk7dmFyIEZ1PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLGIpO2MmJihhLkhbYl09ITApfSx2Yj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9W119O2Z1bmN0aW9uIEd1KGEpe0Z1KHZiLGEsITEpfWZ1bmN0aW9uIEh1KGEsYil7dmFyIGM9Yj09PXZvaWQgMD8hMTpiLGQ9dmI7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGEpLGY9bShPYmplY3Qua2V5cyhDdSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2UuaW5jbHVkZXMoaCkmJkZ1KGQsQ3VbaF0sYyl9fTtmdW5jdGlvbiBJdShhLGIpe2E/YS50aGVuKGIpOmIodm9pZCAwKX1mdW5jdGlvbiBKdShhKXtyZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGEpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnN0YXR1cz09PSJmdWxmaWxsZWQifSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnZhbHVlfSl9KX1mdW5jdGlvbiBLdSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07ZnVuY3Rpb24gTHUoYSxiLGMsZCxlLGYpe3ZhciBnPWMuc2xpY2UoKSxoO2Q9PW51bGx8fChoPWQudXYpPT1udWxsfHxoLmNhbGwoZCxhLGIsYyxlKTt2YXIgbD1LdSgpLG49bC5wcm9taXNlLHA9bC5yZXNvbHZlLHE9W10scj1mdW5jdGlvbigpe3AocSk7dmFyIHU7ZD09bnVsbHx8KHU9ZC5Scyk9PW51bGx8fHUuY2FsbChkLGEsYixjLGUscSl9LHQ9ZnVuY3Rpb24oKXt2YXIgdT1nLnNoaWZ0KCk7dT91Lm1ldGhvZC5pc1N1cHBvcnRlZCgpP011KGEsYix1LmVuZHBvaW50LGQscSx1Lm1ldGhvZCxlLGYsdCxyKTp0KCk6cigpfTt0KCk7cmV0dXJuIG59CmZ1bmN0aW9uIE11KGEsYixjLGQsZSxmLGcsaCxsLG4pe3ZhciBwPWMuUihhKSxxPXt0azpiLGVuZHBvaW50OmMsaXNQcmltYXJ5Omcsc2I6dm9pZCAwLHBrOmYsanQ6e319LHI9ITEsdD1mdW5jdGlvbih6LEMpe2lmKHIpUCgxODcpO2Vsc2UgaWYocj0hMCwhdSl7dmFyIEQ9Q3x8e30sST1ELmJvZHksRz1ELkdiLE49RC5hZjtDPU9iamVjdC5mcmVlemUobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxJP3tib2R5Okl9Ont9LEc/e0diOkd9Ont9LE4/e2FmOk59Ont9KSk7aWYoSSYmIWYuSCgpKXgoKSxsKCk7ZWxzZXt2YXIgUz1OdSh6KSxXPXBbMF09PT0iLyI/IiIrcCtTOiJodHRwczovLyIrcCtTO3Euc2I9VztxLmp0PUM7dmFyIGVhO2Q9PW51bGx8fChlYT1kLlNzKT09bnVsbHx8ZWEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSk7dmFyIGphPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6Yy5lbmRwb2ludCwKZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfTtmLlI9PT12b2lkIDB8fGMuZmEhPT0yJiYoYy5mYSE9PTF8fGUubGVuZ3RoKXx8a24ucmVnaXN0ZXIoamEsZi5SLFcpO3ZhciBmYT1mdW5jdGlvbihkYSxtYSl7eCgpO2lmKHEuc3RhdHVzIT09dm9pZCAwKXJldHVybiBQKDE5MiksITE7cS5zdGF0dXM9ZGE7ZS5wdXNoKHEpO3ZhciBQYTtkPT1udWxsfHwoUGE9ZC51byk9PW51bGx8fFBhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksbWEpO3JldHVybiEwfSxzYT17Rm86amEscmQ6ZnVuY3Rpb24oKXtmYSgyKSYmbCgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtmYSgzKSYmbCgpfSxwZTpmdW5jdGlvbihkYSl7ZmEoZGEuc3RhdHVzPT09MD8xOmRhLm9rPzA6MyxkYSkmJm4oKX0samY6ZnVuY3Rpb24oKXtmYSgxKSYmbigpfX07T3UoYyxhLFcsUyxJKTtmLnNlbmRSZXF1ZXN0KHNhLFcsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCwKe30sSSYme2JvZHk6SX0sRyYme0diOkd9LE4mJnthZjpOfSkpfX19LHU9ITEsdix4PWZ1bmN0aW9uKCl7diE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KHYpLHY9dm9pZCAwKX07TSg1NzQpJiYodj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PXZvaWQgMDt1PSEwO2lmKHEuc3RhdHVzPT09dm9pZCAwKXtxLnN0YXR1cz00O3Euc2I9PT12b2lkIDAmJihxLnNiPSJbZmFpbGVkIHRvIGJ1aWxkXSAiK3ApO2UucHVzaChxKTt2YXIgejtkPT1udWxsfHwoej1kLnVvKT09bnVsbHx8ei5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLHZvaWQgMCk7bCgpfX0sNUUzKSk7dmFyIHk9e0ljOnAsbWV0aG9kOmYseXY6ZSxpc1ByaW1hcnk6ZyxDdDpofTt0cnl7Yy5IKGEseSx0KX1jYXRjaCh6KXt4KCksUCgxODgpLGwoKX19CmZ1bmN0aW9uIE91KGEsYixjLGQsZSl7aWYoYS5qYSl7dmFyIGY9Yi50YXJnZXQuZGVzdGluYXRpb25JZCxnPWEuZW5kcG9pbnQ7aWYoZz09PTQ1fHxnPT09NDZ8fGc9PT02OXx8Zz09PTU4fHxnPT09NTcpe3ZhciBoPS9bPyZddGlkcz0oW14mXSspLy5leGVjKGQpO2Y9aD9kZWNvZGVVUklDb21wb25lbnQoaFsxXSkuc3BsaXQoIn4iKTpbZl19TWwoe3RhcmdldElkOmYscmVxdWVzdDpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHt1cmw6YyxwYXJhbWV0ZXJFbmNvZGluZzphLnBhcmFtZXRlckVuY29kaW5nLGVuZHBvaW50OmEuZW5kcG9pbnR9LGU/e3Bvc3RCb2R5OmV9Ont9KSxxYjp7ZXZlbnRJZDpiLk0uZXZlbnRJZCxwcmlvcml0eUlkOmIuTS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX0KZnVuY3Rpb24gTnUoYSl7cmV0dXJuIGEmJmEhPT0iPyI/YVswXSE9PSI/Ij8iPyIuY29uY2F0KGEpOmE6IiJ9O2Z1bmN0aW9uIFB1KGEsYixjLGQsZSl7dmFyIGY7ZT09bnVsbHx8KGY9ZS52dik9PW51bGx8fGYuY2FsbChlLGEsYik7aWYoIWMubGVuZ3RoKXt2YXIgZztlPT1udWxsfHwoZz1lLlRzKT09bnVsbHx8Zy5jYWxsKGUsYSxiLFtdKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgaD1bXSxsPXt0azpiLG1rOmMsams6ZH07aC5wdXNoKEx1KGEsYixjLGUsITAsbCkpO2Zvcih2YXIgbj1tKGQpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWgucHVzaChMdShhLGIscC52YWx1ZSxlLCExLGwpKTtyZXR1cm4gSnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2U9PW51bGx8fCh2PWUuVHMpPT1udWxsfHx2LmNhbGwoZSxhLGIscik7cmV0dXJuIHJ9KX07ZnVuY3Rpb24gUXUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtiPT1udWxsfHwoZD1iLnd2KT09bnVsbHx8ZC5jYWxsKGIsYSxjKTtmb3IodmFyIGU9W10sZj1tKGMpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWUucHVzaChSdShhLGcudmFsdWUpKTtmb3IodmFyIGg9W10sbD1tKGUpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2gucHVzaChQdShhLHAudGsscC5tayxwLmprLGIpKX1KdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7Yj09bnVsbHx8KHY9Yi5Rcyk9PW51bGx8fHYuY2FsbChiLGEsYyxyKX0pfQpmdW5jdGlvbiBSdShhLGIpe3ZhciBjPWZ1bmN0aW9uKGYpe3JldHVybiBmLm1ldGhvZC5pc1N1cHBvcnRlZCgpJiZmLmVuZHBvaW50LmlzU3VwcG9ydGVkKGEpJiZmLmVuZHBvaW50LksoYSl9LGQ9KGIuSChhKXx8W10pLmZpbHRlcihjKSxlPVtdO2QubGVuZ3RoJiYoZT0oYi5LKGEpfHxbXSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmZpbHRlcihjKX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5sZW5ndGg+MH0pKTtyZXR1cm57dGs6YixtazpkLGprOmV9fTsKdmFyIFN1PWZ1bmN0aW9uKGEsYil7aWYoTSg1MTcpJiZJZig0NykmJmE9PT00NSlyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdD8iK2Iuc3BsaXQoIj8iKVsxXSsiJmdhcC4xcGZiPTEifSxXdT1mdW5jdGlvbigpe3ZhciBhPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihhLmxlbmd0aCl7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVR1KGUua2UsImFwdmMiKSxnPVR1KGUua2UsInRmdCIpLGg9VHUoZS5rZSwidGZkIiksbD1UdShlLmtlLCJ0aWQiKSxuPU5tKGUuZW5kcG9pbnQsZS5rZSkscD1iW25dPWJbbl18fHt4azpbXSxaaDpbXX07cC5aaC5wdXNoKGUpO2w/KHAueGsucHVzaChsKSxwLnVkfHwocC51ZD1sKSk6cC54ay5wdXNoKCIiKTtmPT09IjEiJiYocC5Rbj0hMCk7aWYoZ3x8aClwLk5uPSEwfWEubGVuZ3RoPTA7Zm9yKHZhciBxPW0oT2JqZWN0LmtleXMoYikpLHI9cS5uZXh0KCksdD17fTshci5kb25lO3Q9Cnt5azp2b2lkIDB9LHI9cS5uZXh0KCkpe3ZhciB1PXIudmFsdWUsdj1iW3VdO3QueWs9di54azt2YXIgeD10LnlrLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gZnVuY3Rpb24oSSxHKXtyZXR1cm4gRC55ay5pbmRleE9mKEkpPT09R319KHQpKS5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuISFEfSk7aWYoTSg0MjcpKXt2YXIgeT1VdSh2LHgpO1F1KHksdm9pZCAwLEF1KX1lbHNle3ZhciB6PXUrIiZhcHZjPSIrKHYuUW4/IjEiOiIwIik7eC5sZW5ndGgmJih6Kz0iJnRpZHM9Iit4LmpvaW4oIn4iKSk7di51ZCYmKHorPSImdGlkPSIrdi51ZCk7aWYodi5Obil7eis9IiZ0ZnQ9IitTdHJpbmcoTmIoKSk7dmFyIEM9cGQoKTtDIT09dm9pZCAwJiYoeis9IiZ0ZmQ9IitTdHJpbmcoTWF0aC5yb3VuZChDKSkpfVZ1KHYuWmhbMF0uZXZlbnQseix2LlpoWzBdLmVuZHBvaW50LHgubGVuZ3RoP3g6WyIiXSl9fX19LFR1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjIT09dm9pZCAwKXJldHVybiBkZWxldGUgYVtiXSwKY30sVnU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZj1mdW5jdGlvbihsLG4pe3ZhciBwPWIrWHUobCk7VGwocCxhLGMsZCk7cmV0dXJuIG4ocCl9O2lmKG5kKCkpe3ZhciBnPWZ1bmN0aW9uKCl7fSxoPVN1KGMsYik7aCE9PXZvaWQgMCYmKGc9ZnVuY3Rpb24oKXtZbihlLGgrWHUoOCksdm9pZCAwLHtRZzohMH0pfSk7Zig4LGZ1bmN0aW9uKGwpe1luKGUsbCx2b2lkIDAse1FnOiEwfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhiK1h1KDMpLGZ1bmN0aW9uKCl7fSxnKX0pfSl9ZWxzZSBmKDUsZnVuY3Rpb24obCl7cmV0dXJuIFduKGUsbCl9KXx8WmMoYitYdSgzKSl9LFV1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5aaFswXSxkPXsiXyZhcHZjIjphLlFuPyIxIjoiMCJ9O2IubGVuZ3RoPjAmJihkWyJfJnRpZHMiXT0KYi5qb2luKCJ+IikpO2lmKGEuTm4pe2RbIl8mdGZ0Il09U3RyaW5nKE5iKCkpO3ZhciBlPXBkKCk7ZSE9PXZvaWQgMCYmKGRbIl8mdGZkIl09U3RyaW5nKE1hdGgucm91bmQoZSkpKX1yZXR1cm4gWXUoYy5ldmVudCxhLnVkfHwiIixkKX0sWXU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS50YXJnZXQse2Rlc3RpbmF0aW9uSWQ6Yn0pLGU9WnUoYSx7dGFyZ2V0OmR9KTtifHxVKGUsRi5ELlFlKTtmb3IodmFyIGY9bShPYmplY3Qua2V5cyhjKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7VShlLGgsY1toXSl9cmV0dXJuIGV9LFh1PWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDg6Y2FzZSAzOmNhc2UgNTpyZXR1cm4iJmZtdD0iK2E7ZGVmYXVsdDpyZXR1cm4iIn19LCR1PWZ1bmN0aW9uKGEsYil7YT1adShhKTtWKGEsSC5KLkRrLFhvKGZwKSk7VHQoKSYmVShhLCJfJmdjcyIsVXQoKSk7ClUoYSwiXyZnY2QiLFl0KGEuTSkpO3ZhciBjPVhvKGZwKT80NTo0NixkPWZ1bmN0aW9uKCl7dmFyIGY9Yi50aWQ7aWYoTSg0MjcpKXt2YXIgZz1ZdShhLGYsYik7UXUoZyx2b2lkIDAsQXUpfWVsc2V7dmFyIGg9Tm0oYyxiKTtWdShhLGgsYyxbZl0pfX07aWYoeWIoQS5xdWV1ZU1pY3JvdGFzaykpe3ZhciBlPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihlLmxlbmd0aD09PTApdHJ5e0EucXVldWVNaWNyb3Rhc2soV3UpfWNhdGNoKGYpe0d1KFQuVy5maik7ZCgpO3JldHVybn1iPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYik7ZS5wdXNoKHtldmVudDphLGtlOmIsZW5kcG9pbnQ6Y30pfWVsc2UgR3UoVC5XLmZqKSxkKCl9O3ZhciBhdj1mdW5jdGlvbihhLGIsYyxkKXtndS5jYWxsKHRoaXMsYSxiLGM9PT12b2lkIDA/MTpjLGQ9PT12b2lkIDA/ITE6ZCwzLHZvaWQgMCl9O3dhKGF2LGd1KTthdi5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELnlpKTtyZXR1cm4gYisiLyIrYysiLyJ9O2F2LnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnlhKGEsZ3UucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpKX07dmFyIFg9e1Y6e01rOiJjYWxsX2NvbnZlcnNpb24iLHpkOiJjY21fY29udmVyc2lvbiIsUWs6ImNvbW1vbl9hdyIseGE6ImNvbnZlcnNpb24iLHdxOiJmbG9vZGxpZ2h0IixZZDoiZ2FfY29udmVyc2lvbiIsWmQ6ImdjcF9yZW1hcmtldGluZyIsS2E6InBhZ2VfdmlldyIsdWI6InJlbWFya2V0aW5nIixPYjoidXNlcl9kYXRhX2xlYWQiLEZiOiJ1c2VyX2RhdGFfd2ViIn19O2Z1bmN0aW9uIGJ2KGEsYil7YiYmR2IoYixmdW5jdGlvbihjLGQpe3R5cGVvZiBkIT09Im9iamVjdCImJmQhPT12b2lkIDAmJihhWyIxcC4iK2NdPVN0cmluZyhkKSl9KX07CnZhciBjdj1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuc2gpO2lmKGMpZm9yKHZhciBkPW0oT2JqZWN0LmtleXMoYykpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9Y1tmXTtnIT1udWxsJiYoYlsiZ3RtZC4iK2ZdPVN0cmluZyhnKSl9fSxndj1mdW5jdGlvbihhKXt2YXIgYj1kdihhKTtpZihiLmxlbmd0aCl7dmFyIGM9ZXYoYSkuVm4sZD1mdihjKXx8IiI7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWZ2KGUpO3JldHVybiIiK2QrKGQmJmY/IjsiOiIiKStmfSl9fSxkdj1mdW5jdGlvbihhKXtmb3IodmFyIGI9aHYoYSksYz17fSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz12b2lkIDA7aWYoZi5oYXNPd25Qcm9wZXJ0eSgiZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIikpe2c9Zi5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw7dmFyIGg9e307Y1tnXT1jW2ddfHwoaC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9CmcsaCl9ZWxzZSBnPSIiLGMuaGFzT3duUHJvcGVydHkoZyl8fChjW2ddPXt9KTt2YXIgbD1jW2ddLG47Zm9yKG4gaW4gZiluIT09Imdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCImJihuIGluIGx8fChsW25dPVtdKSxsW25dLnB1c2goZltuXSkpfXJldHVybiBPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGNbcF19KX0saHY9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5IYSk7cmV0dXJuIGImJmIubGVuZ3RoP2IuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXt2YXIgZD17fTtyZXR1cm4gZC5pZD1paShjKSxkLm9yaWdpbj1jLm9yaWdpbixkLmRlc3RpbmF0aW9uPWMuZGVzdGluYXRpb24sZC5zdGFydF9kYXRlPWMuc3RhcnRfZGF0ZSxkLmVuZF9kYXRlPWMuZW5kX2RhdGUsZC5sb2NhdGlvbl9pZD1jLmxvY2F0aW9uX2lkLGQuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsPWMuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsLGR9KTpbXX0sCmlpPWZ1bmN0aW9uKGEpe2EuaXRlbV9pZCE9bnVsbCYmKGEuaWQhPW51bGw/KFAoMTM4KSxhLmlkIT09YS5pdGVtX2lkJiZQKDE0OCkpOlAoMTUzKSk7cmV0dXJuIGppKGEpfSxmdj1mdW5jdGlvbihhKXtpZihhJiZ0eXBlb2YgYT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPWl2KGIpO2lmKGMpe3ZhciBkPWFbYl0sZT1BcnJheS5pc0FycmF5KGQpP2p2KGQpOml2KGQpO2lmKGUhPT12b2lkIDApcmV0dXJuIGMrIj0iK2V9fSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiIT09dm9pZCAwfSkuam9pbigiOyIpfSxqdj1mdW5jdGlvbihhKXt2YXIgYj1hLm1hcChpdikuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjIT09dm9pZCAwfSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiLCIpOnZvaWQgMH0saXY9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbCl7dmFyIGI9dHlwZW9mIGE7aWYoYiE9PSJvYmplY3QiJiYKYiE9PSJmdW5jdGlvbiIpcmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC8sL2csIlxcLCIpLnJlcGxhY2UoLzsvZywiXFw7IikucmVwbGFjZSgvPS9nLCJcXD0iKX19LGt2PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9YVtiXTtpZihjIT1udWxsJiYoYyE9PSIifHx5Z1tiXSkpcmV0dXJuIGM9PT0hMHx8Yz09PSExP2IrIj0iKyhjPzE6MCk6YisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLmpvaW4oIiYiKX0sbHY9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz17fSxkPVEoYSxILkouRWIpO2lmKGI9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuWWR8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQpYy5yYW5kb209IiIrZDtiPT09WC5WLnhhfHxiPT09WC5WLnVifHxiPT09WC5WLnpkfHxiPT09WC5WLlpkPyhjLmN2PSIxMSIsYy5mc3Q9IiIrZCxjLmZtdD0iMyIsCmMuYmc9ImZmZmZmZiIsYy5ndWlkPSJPTiIsYy5hc3luYz0iMSIsYy5lbj1hLmV2ZW50TmFtZSk6Yj09PVguVi5ZZCYmKGMuY3Y9IjExIixjLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkLGMuZnN0PSIiK2QsYy5mbXQ9IjgiLGMuZW49YS5ldmVudE5hbWUpO3ZhciBlPUJzKFsiYXciLCJkYyJdKTtlIT1udWxsJiYoYy5nYWRfc291cmNlPWUpO2MuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO2IhPT1YLlYudWImJlR0KCkmJihjLmdjcz1VdCgpKTtjLmdjZD1ZdChhLk0pO2F1KCkmJihjLmRtYV9jcHM9WnQoKSk7Yy5kbWE9JHQoKTt2dChFdCgpKSYmKGMudGNmZD1idSgpKTt2YXIgZj1DcChhKTtmJiYoYy50YWdfZXhwPWYpO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGMubGltaXRlZF9hZHM9IjEiKTtSKGEsRi5ELmJkKSYmZmkoUihhLEYuRC5iZCksYyk7aWYoUihhLApGLkQudGIpKXt2YXIgZz1SKGEsRi5ELnRiKTtnJiYoZy5sZW5ndGg9PT0yP2dpKGMsImhsIixnKTpnLmxlbmd0aD09PTUmJihnaShjLCJobCIsZy5zdWJzdHJpbmcoMCwyKSksZ2koYywiZ2wiLGcuc3Vic3RyaW5nKDMsNSkpKSl9dmFyIGg9UShhLEguSi5ZZSksbD1mdW5jdGlvbihJLEcpe3ZhciBOPVIoYSxHKTtOJiYoY1tJXT1oP1pzKE4pOk4pfTtsKCJ1cmwiLEYuRC56YSk7bCgicmVmIixGLkQuVWEpO2woInRvcCIsRi5ELlBlKTt2YXIgbj1ndChhLEYuRC5CZCxGLkQuQ2QpO24mJihjLmdjbGF3X3NyYz1uKTt2YXIgcD1ndChhLEYuRC5maCxGLkQuZ2gpO3AmJihjLmdjbGdiX3NyYz1wKTt2YXIgcT1mdW5jdGlvbihJLEcpe2Zvcih2YXIgTj1tKE9iamVjdC5rZXlzKEkpKSxTPU4ubmV4dCgpOyFTLmRvbmU7Uz1OLm5leHQoKSl7dmFyIFc9Uy52YWx1ZTtlaVtXXSYmdHlwZW9mIElbV109PT0ic3RyaW5nIiYmKEdbImV4dC4iK2VpW1ddXT1JW1ddKX19LHI9UihhLEYuRC5XYyk7ciYmCnEocixjKTt2YXIgdD1ldihhKSx1PXQuVm47bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLHQua2UpO2J2KGMsUihhLEYuRC5lZCkpO3ZhciB2PVIoYSxGLkQuTmUpO3YhPT12b2lkIDAmJnYhPT0iIiYmKGMudmRuYz1TdHJpbmcodikpO3ZhciB4PVIoYSxGLkQuTGQpO3ghPT12b2lkIDAmJihjLnNoZj14KTt2YXIgeT1SKGEsRi5ELlRjKTt5IT09dm9pZCAwJiYoYy5kZWxjPXkpO2lmKGIhPT1YLlYuWWQpe3ZhciB6PWZ2KHUpO3omJihjLmRhdGE9eil9dmFyIEM9UihhLEYuRC5IYSk7aWYoQyYmKGI9PT1YLlYueGF8fGI9PT1YLlYuWWR8fGI9PT1YLlYuWmR8fGI9PT1YLlYuemQpKXt2YXIgRD1uaShDKTtEIT09dm9pZCAwJiYoYy5pZWRlbGQ9RCk7Yy5pdGVtPWhpKEMpfWh0KGEsYyk7Y3YoYSxjKTtRKGEsSC5KLkloKSYmKGMuYWVjcz0iMSIpO2IhPT1YLlYueGF8fFEoYSxILkouRWMpfHxRKGEsSC5KLm9iKXx8KGMuY2F0ZWdvcnk9ImFjcmNwX3YxXzUxMiIpO3JldHVybiBjfSwKZXY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9e30sZD1RKGEsSC5KLmRhKSxlPW0oZXUoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9UihhLGcpO2lmKGghPT12b2lkIDApaWYoU2IoZywiXyYiKSliW2cuc3Vic3RyaW5nKDIpXT1oO2Vsc2UgaWYoZWkuaGFzT3duUHJvcGVydHkoZykpe2lmKGchPT1GLkQuRWl8fGQ9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSl7dmFyIGw9ZWlbZ107bCYmKGchPT1GLkQuTmQmJmchPT1GLkQuTWR8fE0oNTA0KT9iW2xdPWg6Y1tnXT1oKX19ZWxzZSBjW2ddPWh9cmV0dXJue2tlOmIsVm46Y319O3ZhciBtdj17Tmc6InZhbHVlIixwYjoiY29udmVyc2lvbkNvdW50IixPZzoxfSxudj17Tmc6InRpbWVvdXRzIixwYjoidGltZW91dHMiLE9nOjB9LG92PXtOZzoiZW9wQ291bnQiLHBiOiJlbmRPZlBhZ2VDb3VudCIsT2c6MH0scHY9e05nOiJlcnJvcnMiLHBiOiJlcnJvcnMiLE9nOjB9LHF2PVttdixudixwdixvdl07ZnVuY3Rpb24gcnYoYSxiKXtiPWI9PT12b2lkIDA/MTpiO2lmKCFzdihhKSlyZXR1cm57fTt2YXIgYz10dihxdiksZD1jW2EucGJdO2lmKGQ9PT12b2lkIDB8fGQ9PT0tMSlyZXR1cm4gYzt2YXIgZT17fSxmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYywoZVthLnBiXT1kK2IsZSkpO3JldHVybiB1dihmKT9mOmN9CmZ1bmN0aW9uIHR2KGEpe3ZhciBiO2E6e3ZhciBjPW5yKCJnY2xfY3RyIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7dHJ5e2I9InZhbHVlImluIGQmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCI/ZC52YWx1ZTp2b2lkIDA7YnJlYWsgYX1jYXRjaChwKXt9fWI9dm9pZCAwfWZvcih2YXIgZT1iLGY9e30sZz1tKGEpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2lmKGUmJnN2KGwpKXt2YXIgbj1lW2wuTmddO249PT12b2lkIDB8fE51bWJlci5pc05hTihuKT9mW2wucGJdPS0xOmZbbC5wYl09TnVtYmVyKG4pfWVsc2UgZltsLnBiXT0tMX1yZXR1cm4gZn0KZnVuY3Rpb24gdXYoYSxiKXtiPWJ8fHt9O2Zvcih2YXIgYz1OYigpLGQ9dXEoYixjLCEwKSxlPXt9LGY9bShxdiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWUsbD1hW2gucGJdO2whPT12b2lkIDAmJmwhPT0tMSYmKGVbaC5OZ109bCl9ZS5jcmVhdGlvblRpbWVNcz1jO3JldHVybiBrcigiZ2NsX2N0ciIse3ZhbHVlOmUsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKX0pPT09MD8hMDohMX1mdW5jdGlvbiBzdihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLmZ0fHxZZihhLmZ0KTohMX1mdW5jdGlvbiB2dihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLkFzfHxZZihhLkFzKTohMX07ZnVuY3Rpb24gd3YoKXtpZih4digpKXt2YXIgYT1ucigibGFzdF9jb252cyIpO2lmKGEuZXJyb3I9PT0wJiZhLnZhbHVlJiZ0eXBlb2YgYS52YWx1ZT09PSJvYmplY3QiKXt2YXIgYj1hLnZhbHVlO2lmKGIudmFsdWUmJkFycmF5LmlzQXJyYXkoYi52YWx1ZSkpe3ZhciBjPWIudmFsdWU7aWYoIShjLmxlbmd0aD4xKSl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZih0eXBlb2YgZyE9PSJvYmplY3QifHxnPT09bnVsbHx8dHlwZW9mIGcucmFuZG9tIT09Im51bWJlciJ8fHR5cGVvZiBnLmxhYmVsIT09InN0cmluZyJ8fGcubGFiZWwubGVuZ3RoPjIwMClyZXR1cm47ZC5wdXNoKHtyYW5kb206Zy5yYW5kb20sbGFiZWw6Zy5sYWJlbH0pfXJldHVybiBkfX19fX0KZnVuY3Rpb24geXYoYSxiKXsheHYoKXx8YS5sZW5ndGg+MXx8YS5sZW5ndGg9PT0xJiZhWzBdLmxhYmVsLmxlbmd0aD4yMDB8fChiPWJ8fHt9LGtyKCJsYXN0X2NvbnZzIix7dmFsdWU6YSxleHBpcmVzOk51bWJlcih1cShiKS5leHBpcmVzKX0pKX1mdW5jdGlvbiB4digpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkmJllmKDExKX07ZnVuY3Rpb24genYoYSl7dmFyIGI9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2NDcpO3JldHVybiBhP1N0cmluZyhiXm5nKGEpJjIxNDc0ODM2NDcpOlN0cmluZyhiKX1mdW5jdGlvbiBBdihhKXtyZXR1cm5benYoYSksTWF0aC5yb3VuZChOYigpLzFFMyldLmpvaW4oIi4iKX1mdW5jdGlvbiBCdihhLGIsYyxkLGUpe3ZhciBmPXJxKGIpLGc7cmV0dXJuKGc9Z3EoYSxmLHNxKGMpLGQsZSkpPT1udWxsP3ZvaWQgMDpnLkNyfTt2YXIgQ3Y9WyIxIl0sRHY9e30sRXY9e307ZnVuY3Rpb24gRnYoYSl7cmV0dXJuIEV2W0d2KGEpXX1mdW5jdGlvbiBIdihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPUd2KGEucHJlZml4KTtpZihEdltjXSlJdihhKSxKdihhKTtlbHNlIGlmKEt2KGMsYS5wYXRoLGEuZG9tYWluKSl7dmFyIGQ9RnYoYS5wcmVmaXgpfHx7aWQ6dm9pZCAwLGtjOnZvaWQgMH07YiYmTHYoYSxkKTtJdihhKTtKdihhKX1lbHNle3ZhciBlPVRqKCJhdWlkZGMiKTtpZihlKXNiKCJUQUdHSU5HIiwxNyksRHZbY109ZTtlbHNlIGlmKGIpe3ZhciBmPUd2KGEucHJlZml4KSxnPUF2KCk7TXYoZixnLGEpO0t2KGMsYS5wYXRoLGEuZG9tYWluKTtJdihhLCEwKTtKdihhLCEwKX19fQpmdW5jdGlvbiBJdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnN2KG12KSYmb3IoImdjbF9jdHIiKTtpZih2dihtdikmJnR2KFttdl0pW212LnBiXT09PS0xKXtmb3IodmFyIGM9e30sZD0oY1ttdi5wYl09MCxjKSxlPW0ocXYpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2chPT1tdiYmdnYoZykmJihkW2cucGJdPTApfXV2KGQsYSl9fWZ1bmN0aW9uIEp2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmeHYoKSYmb3IoImxhc3RfY29udnMiKTshQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pfHwhWWYoMTIpfHx3digpfHx5dihbXSxhKX0KZnVuY3Rpb24gTHYoYSxiKXt2YXIgYz1HdihhLnByZWZpeCksZD1EdltjXTtpZihkKXt2YXIgZT1kLnNwbGl0KCIuIik7aWYoZS5sZW5ndGg9PT0yKXt2YXIgZj1OdW1iZXIoZVsxXSl8fDA7aWYoZil7dmFyIGc9ZDtZZigxOSkmJmIuZmk/Zz1kKyIuIisoYi5zZXNzaW9uSWR8fCItLi0iKSsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkrIi4iK2IuZmkrIi4iKyhiLkxjP2IuTGM6TWF0aC5mbG9vcihOYigpLzFFMykpOmIuc2Vzc2lvbklkJiYoZz1kKyIuIitiLnNlc3Npb25JZCsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkpO012KGMsZyxhLGYqMUUzKX19fX1mdW5jdGlvbiBNdihhLGIsYyxkKXt2YXIgZTtlPVsiMSIsdHEoYy5kb21haW4sYy5wYXRoKSxiXS5qb2luKCIuIik7dmFyIGY9dXEoYyxkKTtmLk1jPU52KCk7b3EoYSxlLGYpfQpmdW5jdGlvbiBLdihhLGIsYyl7dmFyIGQ9QnYoYSxiLGMsQ3YsTnYoKSk7aWYoIWQpcmV0dXJuITE7T3YoYSxkKTtyZXR1cm4hMH1mdW5jdGlvbiBPdihhLGIpe3ZhciBjPWIuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpRXZbYV09e3Nlc3Npb25JZDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtlbHNlIGlmKGMubGVuZ3RoPj0yJiYoRHZbYV09Y1swXSsiLiIrY1sxXSxjLnNoaWZ0KCksYy5zaGlmdCgpLGMubGVuZ3RoPj0zKSl7dmFyIGQ9e3Nlc3Npb25JZDpjWzBdPT09Ii0iP3ZvaWQgMDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtpZihZZigxOSkmJmMubGVuZ3RoPj02KXt2YXIgZT1jWzNdKyIuIitjWzRdLGY9TnVtYmVyKGNbNV0pfHwwO2UmJmYhPT0wJiYoZC5maT1lLGQuTGM9Zil9RXZbYV09ZH19ZnVuY3Rpb24gR3YoYSl7cmV0dXJuKGF8fCJfZ2NsIikrIl9hdSJ9CmZ1bmN0aW9uIFB2KGEpe2Z1bmN0aW9uIGIoKXtCbChjKSYmYSgpfXZhciBjPU52KCk7SGwoZnVuY3Rpb24oKXtiKCk7QmwoYyl8fElsKGIsYyl9LGMpfWZ1bmN0aW9uIFF2KGEpe3ZhciBiPVVxKCEwKSxjPUd2KGEucHJlZml4KTtQdihmdW5jdGlvbigpe3ZhciBkPWJbY107aWYoZCl7T3YoYyxkKTt2YXIgZT1OdW1iZXIoRHZbY10uc3BsaXQoIi4iKVsxXSkqMUUzO2lmKGUpe3NiKCJUQUdHSU5HIiwxNik7dmFyIGY9dXEoYSxlKTtmLk1jPU52KCk7dmFyIGc9WyIxIix0cShhLmRvbWFpbixhLnBhdGgpLGRdLmpvaW4oIi4iKTtvcShjLGcsZil9fX0pfWZ1bmN0aW9uIFJ2KGEsYixjLGQsZSl7ZT1lfHx7fTt2YXIgZj1mdW5jdGlvbigpe3ZhciBnPXt9LGg9QnYoYSxlLnBhdGgsZS5kb21haW4sQ3YsTnYoKSk7aCYmKGdbYV09aCk7cmV0dXJuIGd9O1B2KGZ1bmN0aW9uKCl7YXIoZixiLGMsZCl9KX0KZnVuY3Rpb24gTnYoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX07CnZhciBUdj1mdW5jdGlvbihhKXtyZXR1cm4gU3YoYSx7T2o6ITB9KS5TaH0sU3Y9ZnVuY3Rpb24oYSxiKXthPWF8fHt9O2lmKCFYbyhGLkQua2EpKXJldHVybnt9O3ZhciBjPVV2KGEpLGQ9Yy5TaCxlPWMuaWs7Yi5PaiYmIWQmJihkPUF2KCkpO2IuWGgmJiFlJiYoZT1BdigpKTt2YXIgZj17fTtkJiYoZi5zZXNzaW9uSWQ9ZCk7ZSYmKGYuZmk9ZSk7dmFyIGc9RnYoSHIoYS5wcmVmaXgpKTtnJiYoYi5PaiYmIWIuWGg/Zy5MYyYmKGYuTGM9Zy5MYyk6Yi5YaCYmIWIuT2omJmcua2MmJihmLmtjPWcua2MpKTtpZihkfHxlKXt2YXIgaD1hLGw9R3YoaC5wcmVmaXgpO0x2KGgsZik7ZGVsZXRlIER2W2xdO2RlbGV0ZSBFdltsXTtLdihsLGgucGF0aCxoLmRvbWFpbil9cmV0dXJuIFV2KGEpfSxVdj1mdW5jdGlvbihhKXtpZighWG8oRi5ELmthKSlyZXR1cm57fTthPWF8fHt9O0h2KGEsITEpO3ZhciBiPUZ2KEhyKGEucHJlZml4KSk7aWYoIWIpcmV0dXJue307dmFyIGM9TmIoKSxkPXt9O2lmKGMtCmIua2MqMUUzPD0oTSg0NTApfHxNKDQ0Myk/ODY0RTU6MThFNSkpe3ZhciBlPWIuc2Vzc2lvbklkO2lmKGUpe3ZhciBmPWUuc3BsaXQoIi4iKTtmLmxlbmd0aD09PTImJmMtKE51bWJlcihmWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuU2g9ZSl9fWlmKGIuTGMmJmMtYi5MYyoxRTM8PTg2NEU1KXt2YXIgZz1iLmZpO2lmKGcpe3ZhciBoPWcuc3BsaXQoIi4iKTtoLmxlbmd0aD09PTImJmMtKE51bWJlcihoWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuaWs9Zyl9fXJldHVybiBkfTt2YXIgVnY9ImVtYWlsIGVtYWlsX2FkZHJlc3Mgc2hhMjU2X2VtYWlsX2FkZHJlc3MgcGhvbmVfbnVtYmVyIHNoYTI1Nl9waG9uZV9udW1iZXIgZmlyc3RfbmFtZSBsYXN0X25hbWUiLnNwbGl0KCIgIiksV3Y9ImZpcnN0X25hbWUgc2hhMjU2X2ZpcnN0X25hbWUgbGFzdF9uYW1lIHNoYTI1Nl9sYXN0X25hbWUgc3RyZWV0IHNoYTI1Nl9zdHJlZXQgY2l0eSByZWdpb24gY291bnRyeSBwb3N0YWxfY29kZSIuc3BsaXQoIiAiKTtmdW5jdGlvbiBYdihhLGIpe2lmKCFiLl90YWdfbWV0YWRhdGEpe2Zvcih2YXIgYz17fSxkPTAsZT0wO2U8YS5sZW5ndGg7ZSsrKWQrPVl2KGFbZV0sYixjKT8xOjA7ZD4wJiYoYi5fdGFnX21ldGFkYXRhPWMpfX0KZnVuY3Rpb24gWXYoYSxiLGMpe3ZhciBkPWJbYV07aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpcmV0dXJuITE7Y1thXT1BcnJheS5pc0FycmF5KGQpP2QubWFwKGZ1bmN0aW9uKCl7cmV0dXJue21vZGU6ImMifX0pOnttb2RlOiJjIn07cmV0dXJuITB9ZnVuY3Rpb24gWnYoYSl7aWYoTSg1MjMpJiZhKXtYdihWdixhKTtmb3IodmFyIGI9QmIoYS5hZGRyZXNzKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZCYmWHYoV3YsZCl9dmFyIGU9YS5ob21lX2FkZHJlc3M7ZSYmWHYoV3YsZSl9fQpmdW5jdGlvbiAkdihhLGIsYyl7ZnVuY3Rpb24gZChmLGcpe2c9U3RyaW5nKGcpLnN1YnN0cmluZygwLDEwMCk7ZS5wdXNoKCIiK2YrZW5jb2RlVVJJQ29tcG9uZW50KGcpKX1pZighYylyZXR1cm4iIjt2YXIgZT1bXTtkKCJpIixTdHJpbmcoYSkpO2QoImYiLGIpO2MubW9kZSYmZCgibSIsYy5tb2RlKTtjLmlzUHJlSGFzaGVkJiZkKCJwIiwiMSIpO2MucmF3TGVuZ3RoJiZkKCJyIixTdHJpbmcoYy5yYXdMZW5ndGgpKTtjLm5vcm1hbGl6ZWRMZW5ndGgmJmQoIm4iLFN0cmluZyhjLm5vcm1hbGl6ZWRMZW5ndGgpKTtjLmxvY2F0aW9uJiZkKCJsIixjLmxvY2F0aW9uKTtjLnNlbGVjdG9yJiZkKCJzIixjLnNlbGVjdG9yKTtyZXR1cm4gZS5qb2luKCIuIil9O3ZhciBhdz12b2lkIDA7ZnVuY3Rpb24gYncoKXtpZighYXcpe3ZhciBhPW9tKGptLmJhLm9wLG5ldyBNYXApO2F3PW5ldyBvZyhhKX1yZXR1cm4gYXd9Owp2YXIgY3c9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGE7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZSE9PSJhZGRyZXNzIiYmZSE9PSJwaG9uZV9udW1iZXIiJiZlIT09InNoYTI1Nl9waG9uZV9udW1iZXIiJiYoYltlXT1hW2VdKX1yZXR1cm4gYn0sZnc9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9WyJ0di4xIl0sZD1bInR2ZC4xIl0sZT1kdyhhKTtpZihlKXJldHVybiBjLnB1c2goZSkse2hhc1VwZDohMSxPbzpjLmpvaW4oIn4iKSxZbjpjLmpvaW4oIn4iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOnZvaWQgMCxpaTp7fSxtZXRhZGF0YVBhcmFtOmI/ZC5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZj17fSxnPTA7dmFyIGg9MCxsPWV3KGEsZnVuY3Rpb24ocSxyLHQpe2grKzt2YXIgdT1xLnZhbHVlLHY7CmlmKHQpe3ZhciB4PXIrIl9fIitnKys7dj0iJHt1c2VyRGF0YS4iK3grInxzaGEyNTZ9IjtmW3hdPXV9ZWxzZSB2PWVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodSkpO3EuaW5kZXghPT12b2lkIDAmJihyKz1xLmluZGV4KTtjLnB1c2gocisiLiIrdik7aWYoYil7dmFyIHk9JHYoaCxyLHEubWV0YWRhdGEpO3kmJmQucHVzaCh5KX19KS5oYXNVcGQsbj1kLmpvaW4oIn4iKTt2YXIgcD1jLmpvaW4oIn4iKTtyZXR1cm57aGFzVXBkOmwsT286cCxpaTp7dXNlckRhdGE6Zn0sWW46InR2LjF+JHsiKyhwKyJ8IisoTSg1NTUpPyJlbmNyeXB0X3dpdGhfbWVtbyI6ImVuY3J5cHQiKSsifSIpLGVuY3J5cHRpb25LZXlTdHJpbmc6RSg0MyksbWV0YWRhdGFQYXJhbTpiP246dm9pZCAwfX0saHc9ZnVuY3Rpb24oYSl7aWYoIShhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkpcmV0dXJuITE7CnZhciBiPWd3KGEpO3JldHVybiBldyhiLGZ1bmN0aW9uKCl7fSkuaGFzVXBkfSxldz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9mdW5jdGlvbigpe306Yjtmb3IodmFyIGM9ITEsZD0hMSxlPW0oYSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZy52YWx1ZSl7dmFyIGg9aXdbZy5uYW1lXTtpZihoKXt2YXIgbD1qdyhnKTtsJiYoYz0hMCk7ZD0hMDtiKGcsaCxsKX19fXJldHVybntoYXNVcGQ6ZCxoYXNVcGRUb0hhc2g6Y319LGp3PWZ1bmN0aW9uKGEpe3ZhciBiPWt3KGEubmFtZSksYz0vXmVcZCskLy50ZXN0KGEudmFsdWUpLGQ7aWYoZD1iJiYhYyl7dmFyIGU9YS52YWx1ZTtkPSEobHcudGVzdChlKXx8eWkudGVzdChlKSl9cmV0dXJuIGR9LGt3PWZ1bmN0aW9uKGEpe3JldHVybiBtdy5pbmRleE9mKGEpIT09LTF9LHN3PWZ1bmN0aW9uKGEsYixjKXtpZih5YihBLlByb21pc2UpKXRyeXt2YXIgZD0hMTt2YXIgZT1ndyhhLGQpLGY9bncoZSkudGhlbihmdW5jdGlvbihoKXt2YXIgbD1oLnliLG49bC5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIVNiKHEubmFtZSwicmF3Iil9KSxwPW93KHt5YjpufSk7cmV0dXJue3Jlc3VsdDp7cGFyYW06cC5wYXJhbSxoYXNVcGRUb0hhc2g6cC5oYXNVcGRUb0hhc2gsaGFzVXBkOnAuaGFzVXBkLGhhZEVycm9yOnAuaGFkRXJyb3IsbWV0YWRhdGFQYXJhbTpwLm1ldGFkYXRhUGFyYW19LHliOmx9fSk7cmV0dXJuIGYudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gaC5yZXN1bHR9KX1jYXRjaChoKXt9fSxxdz1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9LG93PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPWEueWIsZD1bInR2LjEiXSxlPVsidHZkLjEiXSxmPWR3KGMpO2lmKGYpcmV0dXJuIGQucHVzaChmKSx7cGFyYW06ZC5qb2luKCJ+IiksaGFzVXBkVG9IYXNoOiExLGhhc1VwZDohMSxoYWRFcnJvcjohMCxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZz1jLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hancocSl9KSxoPTAsbD1ldyhnLGZ1bmN0aW9uKHEscil7aCsrO3ZhciB0PXEudmFsdWUsdT1xLmluZGV4O3UhPT12b2lkIDAmJihyKz11KTtkLnB1c2gocisiLiIrdCk7aWYoYil7dmFyIHY9JHYoaCxyLHEubWV0YWRhdGEpO3YmJmUucHVzaCh2KX19KSxuPWwuaGFzVXBkVG9IYXNoLHA9bC5oYXNVcGQ7cmV0dXJue3BhcmFtOmVuY29kZVVSSUNvbXBvbmVudChkLmpvaW4oIn4iKSksCmhhc1VwZFRvSGFzaDpuLGhhc1VwZDpwLGhhZEVycm9yOiExLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9fSxkdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4gaXcuZXJyb3JfY29kZSsiLiIrYVswXS52YWx1ZX0scHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuITE7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoaXdbZC5uYW1lXSYmZC52YWx1ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZ3c9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtpZihBLmxvY2F0aW9uLnByb3RvY29sIT09Imh0dHBzOiIpcmV0dXJuIGMucHVzaCh7bmFtZToiZXJyb3JfY29kZSIsdmFsdWU6ImUzIixpbmRleDp2b2lkIDB9KSxjO3ZhciBkPWMucHVzaCxlPWQuYXBwbHksZj1bXSwKZz1mLmNvbmNhdCxoLGw9YS5fdGFnX21ldGFkYXRhfHx7fTtoPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJlbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzcyxhYjpsLmVtYWlsLG1kOmwuc2hhMjU2X2VtYWlsX2FkZHJlc3N9LHV3KSksdyh0dyh7bmFtZToicGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyLGFiOmwucGhvbmVfbnVtYmVyLG1kOmwuc2hhMjU2X3Bob25lX251bWJlcn0sdncpKSk7dmFyIG49dyhoKSxwLHE9YS5fdGFnX21ldGFkYXRhfHx7fSxyPWEuaG9tZV9hZGRyZXNzfHx7fSx0PXIuX3RhZ19tZXRhZGF0YXx8e307cD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lLGFiOnEuZmlyc3RfbmFtZSxtZDpxLnNoYTI1Nl9maXJzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSwKU2E6YS5zaGEyNTZfbGFzdF9uYW1lLGFiOnEubGFzdF9uYW1lLG1kOnEuc2hhMjU2X2xhc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ci5zdHJlZXQsU2E6ci5zaGEyNTZfc3RyZWV0LGFiOnQuc3RyZWV0LG1kOnQuc2hhMjU2X3N0cmVldH0sd3coeXcpKSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnIuY2l0eSxhYjp0LmNpdHl9LHd3KHl3KSkpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ci5wb3N0YWxfY29kZSxhYjp0LnBvc3RhbF9jb2RlfSx3dyh6dykpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzpyLnJlZ2lvbixhYjp0LnJlZ2lvbn0sd3coeXcpKSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnIuY291bnRyeSxhYjp0LmNvdW50cnl9LHd3KHp3KSkpKTtmb3IodmFyIHU9dyhwKSx2PVtdLHg9QmIoYS5hZGRyZXNzfHx7fSkseT0wO3k8eC5sZW5ndGg7eSsrKXtmb3IodmFyIHo9eFt5XSxDPXouX3RhZ19tZXRhZGF0YXx8e30sRD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIsCnJhdzp6LmZpcnN0X25hbWUsU2E6ei5zaGEyNTZfZmlyc3RfbmFtZSxhYjpDLmZpcnN0X25hbWUsbWQ6Qy5zaGEyNTZfZmlyc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzp6Lmxhc3RfbmFtZSxTYTp6LnNoYTI1Nl9sYXN0X25hbWUsYWI6Qy5sYXN0X25hbWUsbWQ6Qy5zaGEyNTZfbGFzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6InN0cmVldCIscmF3Onouc3RyZWV0LFNhOnouc2hhMjU2X3N0cmVldCxhYjpDLnN0cmVldCxtZDpDLnNoYTI1Nl9zdHJlZXR9LHl3KSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnouY2l0eSxhYjpDLmNpdHl9LHl3KSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzp6LnBvc3RhbF9jb2RlLGFiOkMucG9zdGFsX2NvZGV9LHp3KSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ei5yZWdpb24sYWI6Qy5yZWdpb259LHl3KSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnouY291bnRyeSxhYjpDLmNvdW50cnl9LHp3KSkpLEk9MDtJPApELmxlbmd0aDtJKyspRFtJXS5pbmRleD15O3YucHVzaC5hcHBseSh2LHcoRCkpfWUuY2FsbChkLGMsZy5jYWxsKGYsbix1LHcodikpKTtpZihiJiZCcCgpKXt2YXIgRz1jLnB1c2gsTj1HLmFwcGx5LFM9W107Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19lbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzc30pKSx3KEF3KHtuYW1lOiJyYXdfcGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyfSkpKSk7Zm9yKHZhciBXPUJiKGEuYWRkcmVzc3x8e30pLGVhPTA7ZWE8Vy5sZW5ndGg7ZWErKyl7dmFyIGphPVdbZWFdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmphLmZpcnN0X25hbWUsU2E6amEuc2hhMjU2X2ZpcnN0X25hbWV9LGVhKSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmphLmxhc3RfbmFtZSxTYTpqYS5zaGEyNTZfbGFzdF9uYW1lfSwKZWEpKSx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6amEuc3RyZWV0LFNhOmphLnNoYTI1Nl9zdHJlZXR9LGVhKSkpKX1pZihhLmZpcnN0X25hbWV8fGEuaG9tZV9hZGRyZXNzKXtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZX0pKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsU2E6YS5zaGEyNTZfbGFzdF9uYW1lfSkpKSk7dmFyIGZhPWEuaG9tZV9hZGRyZXNzfHx7fTtTLnB1c2guYXBwbHkoUyx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6ZmEuc3RyZWV0LFNhOmZhLnNoYTI1Nl9zdHJlZXR9KSkpfU4uY2FsbChHLGMsdyhTKSl9cmV0dXJuIGN9LHd3PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtQKDY0KTtyZXR1cm4gYShiKX19LEF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W107aWYoYS5TYSlyZXR1cm4gYztmb3IodmFyIGQ9CkJiKGEucmF3KSxlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPUJ3KGRbZV0pO2lmKGYmJiF5aS50ZXN0KGYpKWlmKC9eZVxkKyQvLnRlc3QoZikpYy5wdXNoKHtuYW1lOmEubmFtZSx2YWx1ZTpmLGluZGV4OmJ9KTtlbHNle3ZhciBnPWMsaD1nLnB1c2gsbD1hLm5hbWUsbjt2YXIgcD1BO3RyeXtuPUJpKEFycmF5LmZyb20oWmIoZikpLHApfWNhdGNoKHEpe249ImUwIn1oLmNhbGwoZyx7bmFtZTpsLHZhbHVlOm4saW5kZXg6Yn0pfX1yZXR1cm4gY30sdHc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPU0oNTIzKSxlPWEucmF3LGY9ZD9hLmFiOnZvaWQgMDtDdyhlLCExKTthLlNhJiYoZSYmUCg5MCksZT1hLlNhLGY9ZD9hLm1kOnZvaWQgMCxDdyhlLCEwKSk7Zm9yKHZhciBnPUJiKGUpLGg9QmIoZiksbD0wO2w8Zy5sZW5ndGg7KytsKXt2YXIgbjt2YXIgcD1hLm5hbWUscT1iLHI9aFtsXSx0PUJ3KGdbbF0pO2lmKHQhPT0iIilpZih5aS50ZXN0KHQpKXtyJiYoci5pc1ByZUhhc2hlZD0hMCk7CnZhciB1PXtuYW1lOnAsdmFsdWU6dCxpbmRleDp2b2lkIDB9O3ImJih1Lm1ldGFkYXRhPXIpO249dX1lbHNle3ZhciB2PXEodCkseD17bmFtZTpwLHZhbHVlOnYsaW5kZXg6dm9pZCAwfTtyJiYoeC5tZXRhZGF0YT1yLHYmJihyLnJhd0xlbmd0aD1TdHJpbmcodCkubGVuZ3RoLHIubm9ybWFsaXplZExlbmd0aD12Lmxlbmd0aCkpO249eH1lbHNlIG49dm9pZCAwO3ZhciB5PW47eSYmYy5wdXNoKHkpfXJldHVybiBjfSxDdz1mdW5jdGlvbihhLGIpe2lmKHpiKGEpfHxBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz1CYihhKSxkPTA7ZDxjLmxlbmd0aDsrK2Qpe3ZhciBlPUJ3KGNbZF0pLGY9eWkudGVzdChlKTtiJiYhZiYmUCg4OSk7IWImJmYmJlAoODgpfX0sRHc9ZnVuY3Rpb24oYSl7dmFyIGI9YT9ndyhhKTpbXTtyZXR1cm4gb3coe3liOmJ9KX0sRXc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wJiZ5YihBLlByb21pc2UpP2d3KGEpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJgprdyhiLm5hbWUpJiYheWkudGVzdChiLnZhbHVlKX0pOiExfSxCdz1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjp6YihhKT9MYihTdHJpbmcoYSkpOiJlMCJ9LHp3PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoRncsIiIpfSx4dz1mdW5jdGlvbihhKXtyZXR1cm4geXcoYS5yZXBsYWNlKC9ccy9nLCIiKSl9LHl3PWZ1bmN0aW9uKGEpe3JldHVybiBMYihhLnJlcGxhY2UoR3csIiIpLnRvTG93ZXJDYXNlKCkpfSx2dz1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgvW1xzLSgpLy5dL2csIiIpO2EuY2hhckF0KDApIT09IisiJiYoYT0iKyIrYSk7cmV0dXJuKE0oNTk3KT9IdzpJdykudGVzdChhKT9hOiJlMCJ9LHV3PWZ1bmN0aW9uKGEpe3ZhciBiPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiQCIpO2lmKGIubGVuZ3RoPT09Mil7dmFyIGM9YlswXTsvXihnbWFpbHxnb29nbGVtYWlsKVwuLy50ZXN0KGJbMV0pJiYoYz1jLnJlcGxhY2UoL1wuL2csIiIpKTtjPWMrIkAiK2JbMV07aWYoSncudGVzdChjKSlyZXR1cm4gY31yZXR1cm4iZTAifSwKS3c9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYil7Yi52YWx1ZSYma3coYi5uYW1lKSYmKGIudmFsdWU9RGkoYi52YWx1ZSkpfSkse3liOmF9fWNhdGNoKGIpe3JldHVybnt5YjpbXX19fSxudz1mdW5jdGlvbihhKXtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpfSk/eWIoQS5Qcm9taXNlKT9Qcm9taXNlLmFsbChhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKT9BaShiLnZhbHVlKS50aGVuKGZ1bmN0aW9uKGMpe2IudmFsdWU9Y30pOlByb21pc2UucmVzb2x2ZSgpfSkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57eWI6YX19KS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt5YjpbXX19KTp7dGhlbjpmdW5jdGlvbihiKXtiKHt5YjpbXX0pfX06UHJvbWlzZS5yZXNvbHZlKHt5YjphfSl9LEd3PS9bMC05YH4hQCMkJV4mKigpX1wtKz06Ozw+LC4/fC9cXFtcXV0vZyxKdz0vXlxTK0BcUytcLlxTKyQvLApJdz0vXlwrXGR7MTAsMTV9JC8sSHc9L15cK1xkezcsMTV9JC8sRnc9L1sufl0vZyxsdz0vXlswLTlBLVphLXpfLV17NDN9JC8sTHc9WyJyZW0iLCJycG4iLCJyZm4iLCJybG4iLCJyc2EiXSxNdz17fSxpdz0oTXcuZW1haWw9ImVtIixNdy5waG9uZV9udW1iZXI9InBuIixNdy5maXJzdF9uYW1lPSJmbiIsTXcubGFzdF9uYW1lPSJsbiIsTXcuc3RyZWV0PSJzYSIsTXcuY2l0eT0iY3QiLE13LnJlZ2lvbj0icmciLE13LmNvdW50cnk9ImNvIixNdy5wb3N0YWxfY29kZT0icGMiLE13LmVycm9yX2NvZGU9ImVjIixNdy5yYXdfZW1haWw9InJlbSIsTXcucmF3X3Bob25lX251bWJlcj0icnBuIixNdy5yYXdfZmlyc3RfbmFtZT0icmZuIixNdy5yYXdfbGFzdF9uYW1lPSJybG4iLE13LnJhd19zdHJlZXQ9InJzYSIsTXcpO3ZhciBtdz1PYmplY3QuZnJlZXplKFsiZW1haWwiLAoicGhvbmVfbnVtYmVyIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInN0cmVldCJdKTsKdmFyIFF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9bHYoYSksZD1mdW5jdGlvbihwKXt2YXIgcT1DcChhKTtxJiYoYy50YWdfZXhwPXEpO2IocCl9LGU9UShhLEguSi5kYSksZj1RKGEsSC5KLllhKSxnPVhvKFtGLkQubWEsRi5ELmthXSksaDthOnN3aXRjaChlKXtjYXNlIFguVi54YTpjYXNlIFguVi56ZDpjYXNlIFguVi5aZDpjYXNlIFguVi5PYjpjYXNlIFguVi5GYjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWlmKGgmJmYmJmcpaWYoUShhLEguSi5mZCkpaWYoTncoYSkpZChjKTtlbHNle3ZhciBsPXN3KGYsITApO093KGwsYSxjLGQpfWVsc2V7dmFyIG47YTp7dHJ5e249b3coS3coZ3coZikpKTticmVhayBhfWNhdGNoKHApe31uPXZvaWQgMH1pZihuKXRyeXtQdyhjLGEpKG4pfWNhdGNoKHApe31kKGMpfWVsc2UgZGVsZXRlIGMuZWNfbW9kZSxkKGMpfSxOdz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtyZXR1cm4gYj09PVguVi5GYnx8Yj09PVguVi5PYn0sUnc9ZnVuY3Rpb24oYSwKYil7cmV0dXJuIGEhPT0xfHxRKGIsSC5KLmRhKT09PVguVi5PYiYmIU0oNDQ1KT8hMTohIVEoYixILkouZmQpfSxQdz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtSdyhjLmVuY3J5cHRpb25SZXN1bHQ/MTowLGIpfHwoYS5lbT1jLnBhcmFtKTtpZihjLmhhc1VwZCl7dmFyIGQ9U3coYik7ZCYmKGEuZWNzaWQ9ZCl9TSg1MjMpJiZjLm1ldGFkYXRhUGFyYW0mJihhLmVtZD1jLm1ldGFkYXRhUGFyYW0pO319LFN3PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkZiJiYKIU0oNDQzKSl7dmFyIGI9UShhLEguSi5HYSk7cmV0dXJuIFEoYSxILkouemopfHxUdihiKX19LE93PWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEpdHJ5e2EudGhlbihQdyhjLGIpKS50aGVuKGZ1bmN0aW9uKCl7ZChjKX0pO3JldHVybn1jYXRjaChlKXt9ZChjKX07dmFyIFR3PU9iamVjdC5mcmVlemUoe2djcDoiMSIsc3NjdGU6IjEiLGN0X2Nvb2tpZV9wcmVzZW50OiIxIn0pOwp2YXIgVXc9ZnVuY3Rpb24oYSxiKXthdi5jYWxsKHRoaXMsYSxiLDEsITEpfTt3YShVdyxhdik7VXcucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe1F3KGEsZnVuY3Rpb24oZCl7UShhLEguSi5haikmJmRlbGV0ZSBkLml0ZW07UShhLEguSi5vYikmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxUdyk7dmFyIGU9Z2soYi5JYyk7ZSYmKGQuX3VpcD1lKTt2YXIgZj0iPyIra3YoZCk7YyhmKX0pfTt2YXIgVnc9bmV3IFV3KDIyLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxXdz1uZXcgVXcoMjMsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFh3PW5ldyBVdyg2MCxbXSksWXc9ZnVuY3Rpb24oKXt9O3dhKFl3LG91KTtZdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuemQmJlEoYSxILkoubGopP1t7ZW5kcG9pbnQ6WG8oZnApP1EoYSxILkoub2IpP1d3OlZ3Olh3LG1ldGhvZDpsdX1dOltdfTt2YXIgWnc9bmV3IFl3OwoKdmFyICR3PWZ1bmN0aW9uKGEpe2lmKE9wKCk9PT0yKXJldHVybiExO3ZhciBiPVEoYSxILkouZGEpLGM9W1guVi54YSxYLlYudWJdO00oNTkzKSYmYy5wdXNoKFguVi5ZZCk7cmV0dXJuIGMuaW5jbHVkZXMoYik/ITA6ITF9LGF4PWZ1bmN0aW9uKGEpe3JldHVybiBNKDUwMCkmJk9wKCkhPT0yJiZRKGEsSC5KLmRhKT09PVguVi54YX0sYng9ZnVuY3Rpb24oYSl7dmFyIGI9SHIoYS5wcmVmaXgpO2I9PT0iX2djbCImJihiPSIiKTtyZXR1cm4gYn0sY3g9ZnVuY3Rpb24oYSl7aWYoUihhLEYuRC5TYil8fFIoYSxGLkQuSmUpKXt2YXIgYj1SKGEsRi5ELkdkKSxjPUVkKFEoYSxILkouR2EpLG51bGwpLGQ9SHIoYy5wcmVmaXgpO2MucHJlZml4PWQ9PT0iX2djbCI/IiI6ZDtpZihSKGEsRi5ELlNiKSl7dmFyIGU9WHMoYixjLCFRKGEsSC5KLk5tKSxheChhKSk7VihhLEguSi5ObSwhMCk7ZSYmVShhLEYuRC5xbSxlKX1pZihSKGEsRi5ELkplKSl7dmFyIGY9UHMoYixjKS5ScjtmJiZVKGEsRi5ELk1sLApmKX19fSxpeD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgZHg7c3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi54YTpVKGEsRi5ELmZtLFVxKCExKS5fZ3MpO2V4KGEpO2Z4KGEsYik7Z3goYSxiKTtpZighYi5qbygpfHxNKDQyMSkpe3ZhciBjPW5tKGptLmJhLlZlKSxkPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoYyYmYy5nY2xpZCYmIWQmJiFRKGEsSC5KLlhlKSl7dmFyIGU9U3RyaW5nKGMuZ2NsaWQpLGY9bmV3IGVyO2ZyKGYsNik7Yi5Daih7dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDplLHFhOmYsb2E6WzRdfSl9fWJyZWFrO2Nhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmV4KGEpO2Z4KGEsYik7YnJlYWs7Y2FzZSBYLlYudWI6aWYoTSg0NTgpJiZYbyhGLkQua2EpJiZRKGEsSC5KLndmKSl7dmFyIGc9UShhLEguSi5HYSk7aHgoYSxiLGJ4KGcpKX1icmVhaztjYXNlIFguVi5ZZDpleChhKSxmeChhLGIpLGd4KGEsYil9Yi5PdChhKX0sZng9ZnVuY3Rpb24oYSxiKXtpZihYbyhGLkQua2EpJiYKUShhLEguSi53Zikpe3ZhciBjPVEoYSxILkouR2EpLGQ9YngoYyksZT1ScyhkKTtVKGEsRi5ELkJlLGUuRWcpO1UoYSxGLkQuRGUsZS5XaCk7VShhLEYuRC5DZSxlLlVoKTtNKDQyMSk/KGp4KGEsYixjLGQpLGh4KGEsYixkKSk6V3MoZCk/angoYSxiLGMsZCk6aHgoYSxiLGQpfX0saHg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSR3KGEpO1RzKGMsImdjbGlkIiwiZ2NsYXciLGQpLmZvckVhY2goZnVuY3Rpb24oZil7Yi5DaihmKX0pO2IuTG8oKTtpZighYyl7dmFyIGU9T3MoQnIoQXIoKSk/UnAoKTp7fSxNcyk7ZSYmVShhLEYuRC5yaCxlKX19LGp4PWZ1bmN0aW9uKGEsYixjLGQpe1RzKGQsImJyYWlkcyIsImdjbGdiIixheChhKSkuZm9yRWFjaChmdW5jdGlvbihnKXtiLmpyKGcpfSk7aWYoIWQpe3ZhciBlPVIoYSxGLkQuR2QpO2M9RWQoYyxudWxsKTtjLnByZWZpeD1kO3ZhciBmPVBzKGUsYywhMCkuUXI7ZiYmVShhLEYuRC5KZSxmKX19LGV4PWZ1bmN0aW9uKGEpe2lmKE0oMTYpKXt2YXIgYj0KTyhhLk0sRi5ELnphKTtifHwoYj1PcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmKTt2YXIgYyxkPVJqKGIpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKTtpZighZSl7dmFyIGY9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtlPWV8fElqKGYsImdjbGlkIiwhMSl9KGM9ZT9lLmxlbmd0aDp2b2lkIDApJiZVKGEsRi5ELnpsLGMpfX0sZ3g9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YbyhGLkQua2EpJiZYbyhGLkQubWEpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGQ7dmFyIGU7Yjp7dmFyIGYsZz1BLGg9W107dHJ5e2cubmF2aWdhdGlvbiYmZy5uYXZpZ2F0aW9uLmVudHJpZXMmJihoPWcubmF2aWdhdGlvbi5lbnRyaWVzKCkpfWNhdGNoKEMpe31mPWg7dmFyIGw9e307dHJ5e2Zvcih2YXIgbj1mLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgcD1mW25dJiZmW25dLnVybDtpZihwKXt2YXIgcT0obmV3IFVSTChwKSkuc2VhcmNoUGFyYW1zLHI9cS5nZXQoImdjbGlkIil8fAp2b2lkIDAsdD1xLmdldCgiZ2Nsc3JjIil8fHZvaWQgMDtpZihyKXtsLmdjbGlkPXI7dCYmKGwuVmg9dCk7ZT1sO2JyZWFrIGJ9fX19Y2F0Y2goQyl7fWU9bH12YXIgdT1lLHY9dS5nY2xpZCx4PXUuVmgseTtpZih2JiYoeD09PXZvaWQgMHx8eD09PSJhdyJ8fHg9PT0iYXcuZHMifHxZZig4KSYmeD09PSJhdy5kdiIpKWlmKHYhPT12b2lkIDApe3ZhciB6PW5ldyBlcjtmcih6LDIpO2ZyKHosMyk7eT17dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDp2LHFhOnosb2E6WzNdfX1lbHNlIHk9dm9pZCAwO2Vsc2UgeT12b2lkIDA7ZD15O2QmJighYyYmUShhLEguSi5YZSkmJihkLmdjbGlkPSIwIiksYi5DaihkKSxiLkxvKCkpfX0sZHg9ZnVuY3Rpb24oKXt0aGlzLkg9W107dGhpcy5LPVtdO3RoaXMuTj12b2lkIDB9O2s9ZHgucHJvdG90eXBlO2suQ2o9ZnVuY3Rpb24oYSl7UXIodGhpcy5ILGEpfTtrLmpyPWZ1bmN0aW9uKGEpe1FyKHRoaXMuSyxhKX07ay5qbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLksubGVuZ3RoPgowfTtrLkxvPWZ1bmN0aW9uKCl7dGhpcy5OIT09ITEmJih0aGlzLk49ITEpfTtrLnlvPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKGEubGVuZ3RoKXt2YXIgZT1bXSxmPVtdLGc9W107YS5mb3JFYWNoKGZ1bmN0aW9uKGgpe2UucHVzaChoLmdjbGlkKTt2YXIgbCxuO2YucHVzaCgobj0obD1oLnFhKT09bnVsbD92b2lkIDA6bC5nZXQoKSkhPW51bGw/bjowKTtnLnB1c2goVnMoaC5vYXx8WzBdKSl9KTtlLmxlbmd0aCYmVShiLGMuaWQsZS5qb2luKCIuIikpO2R8fChmLmxlbmd0aCYmVShiLGMucWEsZi5qb2luKCIuIikpLGcubGVuZ3RoJiZVKGIsYy5vYSxnLmpvaW4oIi4iKSkpfX07ay5PdD1mdW5jdGlvbihhKXt0aGlzLkgubGVuZ3RoPjAmJnRoaXMueW8odGhpcy5ILGEse2lkOkYuRC5sYixxYTpGLkQuQmQsb2E6Ri5ELkNkfSx0aGlzLk4pOyh0aGlzLkgubGVuZ3RoPT09MHx8TSg0MjEpKSYmdGhpcy55byh0aGlzLkssYSx7aWQ6Ri5ELlNiLHFhOkYuRC5maCwKb2E6Ri5ELmdofSl9O3ZhciBreD1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW5qZWN0QWRzU2NyaXB0Iil9O3dhKGt4LGh1KTtreC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07a3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07a3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2FvKGEuRm8sQSxCLGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKXx8WG4oYS5GbyxiLnJlcGxhY2UoIiZmbXQ9NCYiLCImZm10PTMmIiksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKX07dmFyIGx4PW5ldyBreDt2YXIgbXg9T2JqZWN0LmZyZWV6ZSh7YXR0cmlidXRpb25zcmM6IiJ9KSxueD1PYmplY3QuZnJlZXplKHtldmVudFNvdXJjZUVsaWdpYmxlOiExLHRyaWdnZXJFbGlnaWJsZTohMH0pO2Z1bmN0aW9uIG94KCl7dmFyIGE9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO3JldHVybiBhJiZ5YihhLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKX07dmFyIHB4PU9iamVjdC5mcmVlemUoe2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLG1ldGhvZDoiR0VUIixrZWVwYWxpdmU6ITAscmVkaXJlY3Q6ImZvbGxvdyJ9KTsKZnVuY3Rpb24gcXgoYSxiLGMsZCxlLGYpe2lmKCF5YihBLmZldGNoKSlyZXR1cm4gZj09bnVsbHx8Zih2b2lkIDAsdm9pZCAwKSwhMTt2YXIgZz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHB4KTtiJiYoZy5ib2R5PWIsZy5tZXRob2Q9IlBPU1QiKTtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGcsZCk7QS5mZXRjaChhLGcpLnRoZW4oZnVuY3Rpb24oaCl7aWYoaC5vayl7aWYoaC5ib2R5KXt2YXIgbD1oLmJvZHkuZ2V0UmVhZGVyKCksbj1uZXcgVGV4dERlY29kZXI7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe2Z1bmN0aW9uIHEoKXtsLnJlYWQoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciB0O3Q9ci5kb25lO3ZhciB1PW4uZGVjb2RlKHIudmFsdWUse3N0cmVhbTohdH0pO3U9Yy5SK3U7Zm9yKHZhciB2PXUuaW5kZXhPZigiXG5cbiIpO3YhPT0tMTspe3ZhciB4PVpnLHk7YTp7dmFyIHo9bSh1LnN1YnN0cmluZygwLHYpLnNwbGl0KCJcbiIpKSxDPQp6Lm5leHQoKS52YWx1ZSxEPXoubmV4dCgpLnZhbHVlO2lmKFNiKEMsImV2ZW50OiBtZXNzYWdlIikmJlNiKEQsImRhdGE6ICIpKXt2YXIgST1ELnN1YnN0cmluZyg2KTt0cnl7eT1KU09OLnBhcnNlKEkpO2JyZWFrIGF9Y2F0Y2goRyl7fX15PXZvaWQgMH14KGMseSk7dT11LnN1YnN0cmluZyh2KzIpO3Y9dS5pbmRleE9mKCJcblxuIil9Yy5SPXU7dD8oZT09bnVsbHx8ZShoKSxwKCkpOnEoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09bnVsbHx8ZShoKTtwKCl9KX1xKCl9KX1lPT1udWxsfHxlKGgpfWVsc2UgZj09bnVsbHx8ZihoLHZvaWQgMCl9KS5jYXRjaChmdW5jdGlvbihoKXtmPT1udWxsfHxmKHZvaWQgMCxoKX0pO3JldHVybiEwfTt2YXIgcng9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJGZXRjaFJpY2hSZXNwb25zZSIsMSk7dGhpcy5OPWF9O3dhKHJ4LGh1KTtyeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O3J4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3J4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtxeChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSx0aGlzLk4sYz09bnVsbD92b2lkIDA6Yy5HYixhLnBlLGZ1bmN0aW9uKGQsZSl7YS5vbkZhaWx1cmUoZSl9KX07CnZhciBzeD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDthIGluc3RhbmNlb2Yga3U/Yz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTphIGluc3RhbmNlb2YgcngmJihjPXt9LG94KCkmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nPW54KSk7IWImJmMmJihjLmNyZWRlbnRpYWxzPSJvbWl0IixjLm1vZGU9ImNvcnMiKTtyZXR1cm4gY30sdHg9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yi5tZXRob2Q7UXcoYSxmdW5jdGlvbihmKXt2YXIgZz1RKGEsSC5KLm9iKSxoPVhvKGZwKSxsPWUgaW5zdGFuY2VvZiBpdT8zOmUgaW5zdGFuY2VvZiBreD9jPT09NXx8Yz09PTg/Mzo0OmUgaW5zdGFuY2VvZiBrdT8hZyYmaD8zOjg6ZSBpbnN0YW5jZW9mIHJ4Pzc6LTE7ZSBpbnN0YW5jZW9mIGt4JiZsPT09Mz8oZi5mbXQ9NCxmLnJmbXQ9Myk6Zi5mbXQ9bDtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGYsYz09PTY2P3tnY3A6IjQifTpnfHxjPT09OHx8Yz09PTY1PwpUdzp7fSk7dmFyIG49ZWlbRi5ELmVoXTtuJiYoZltuXT1jKTtpZihNKDU2OSkpe3ZhciBwPWIuQ3QscT1wLmprLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdlswXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdlswXS5lbmRwb2ludC5lbmRwb2ludH0pO3EubGVuZ3RoPjAmJihxLnB1c2gocC5ta1swXS5lbmRwb2ludC5lbmRwb2ludCksZi5lcHA9cS5zb3J0KGZ1bmN0aW9uKHYseCl7cmV0dXJuIHYteH0pLmpvaW4oIn4iKSl9dmFyIHI9Ij8iK2t2KGYpLHQ9c3goZSxoKSx1O3U9KGUgaW5zdGFuY2VvZiBpdXx8ZSBpbnN0YW5jZW9mIGt4KSYmWG8oImFkX3VzZXJfZGF0YSIpP214OnZvaWQgMDtkKHIse0diOnQsYWY6dX0pfSl9O3ZhciB1eD1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMil9O3dhKHV4LGF2KTt1eC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dHgoYSxiLHRoaXMuZW5kcG9pbnQsYyl9O3ZhciB2eD1uZXcgdXgoNSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksd3g9bmV3IHV4KDYsW10pLHh4PW5ldyB1eCg2MyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkseXg9bmV3IHV4KDY1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx6eD1uZXcgdXgoOCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksQXg9bmV3IHV4KDY2LFtdKSxCeD1uZXcgdXgoNzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pO3ZhciBDeD1mdW5jdGlvbigpe1lnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoQ3gsWWcpO0N4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7WmMoYSx2b2lkIDAsJGcodGhpcyxiKSxiLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT9teDp7fSl9O0N4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/e2F0dHJpYnV0aW9uUmVwb3J0aW5nOm54fTp7fSxkPSRnKHRoaXMsYik7Yi5wcm9jZXNzX3Jlc3BvbnNlP3F4KGEsdm9pZCAwLHRoaXMsYyx2b2lkIDAsZCk6bWQoYSx2b2lkIDAsYyx2b2lkIDAsZCl9O3ZhciBEeD1mdW5jdGlvbigpe0N4LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoRHgsQ3gpO0R4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiLHtwcm9jZXNzX3Jlc3BvbnNlOiExfSkpfTt2YXIgRXg9ZnVuY3Rpb24oKXt9O3dhKEV4LG91KTtFeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKSE9PVguVi54YSlyZXR1cm5bXTt2YXIgYj1YbyhmcCksYz0hIVEoYSxILkoub2IpLGQ9ISFRKGEsSC5KLkVjKSxlPVt7ZW5kcG9pbnQ6Yj9kP2M/eXg6eHg6Yz96eDp2eDp3eCxtZXRob2Q6bmQoKT9iP00oNDkwKT9jP251Om5ldyByeChuZXcgRHgpOmx4Om51Omx1fV0sZj1iP2M/dm9pZCAwOnp4OkF4O2YmJmUucHVzaCh7ZW5kcG9pbnQ6ZixtZXRob2Q6bnV9KTtyZXR1cm4gZX07RXgucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLnhhJiZXaigpJiYhUShhLEguSi5FYykmJk0oNTY5KSYmWG8oZnApP1tbe2VuZHBvaW50OkJ4LG1ldGhvZDpudX1dXTpbXX07dmFyIEZ4PW5ldyBFeDt2YXIgR3g9ZnVuY3Rpb24oYSxiKXtndS5jYWxsKHRoaXMsYSxiLDEsITEsMyl9O3dhKEd4LGd1KTtHeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSksZT0iPyIra3YoZCk7YyhlLHtHYjpsZH0pfTt2YXIgSHg9bmV3IEd4KDU0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxJeD1uZXcgR3goNTUsW10pLEp4PWZ1bmN0aW9uKCl7fTt3YShKeCxvdSk7SngucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7cmV0dXJuW3tlbmRwb2ludDpIeC5LKGEpP0h4Okl4LG1ldGhvZDpudX1dfTt2YXIgS3g9bmV3IEp4Owp2YXIgTHg9ZnVuY3Rpb24oKXthdi5jYWxsKHRoaXMsOSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwxKX07d2EoTHgsYXYpO0x4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuWmR9O0x4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9ZWlbRi5ELmVoXTtmJiYoZVtmXT1kLmVuZHBvaW50KTtlLmdjcD0xO2UuY3RfY29va2llX3ByZXNlbnQ9MTtlLmZtdD1iLm1ldGhvZCBpbnN0YW5jZW9mIGt1Pzg6Mzt2YXIgZz0iPyIra3YoZSk7YyhnLHtHYjpsZH0pfSl9O3ZhciBNeD1uZXcgTHgsTng9ZnVuY3Rpb24oKXt9O3dhKE54LG91KTtOeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVyblt7ZW5kcG9pbnQ6TXgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6TXgsbWV0aG9kOmx1fV19O3ZhciBPeD1uZXcgTng7dmFyIFB4PVs2OF07dmFyIFF4PWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy50aW1lb3V0TXM9Yjt0aGlzLlJiPXZvaWQgMH0sUng9ZnVuY3Rpb24oYSl7YS5SYnx8KGEuUmI9c2V0VGltZW91dChmdW5jdGlvbigpe2EuSCgpO2EuUmI9dm9pZCAwfSxhLnRpbWVvdXRNcykpfSxUbj1mdW5jdGlvbihhKXthLlJiJiYoY2xlYXJUaW1lb3V0KGEuUmIpLGEuUmI9dm9pZCAwKX07dmFyIFN4PWZ1bmN0aW9uKCl7dmFyIGE9TmYoNjYsMCk7dGhpcy5LPVtdO3RoaXMuUj1hO3RoaXMuSD1ZYSgpfSxVeD1mdW5jdGlvbihhKXt2YXIgYj1UeDtiLksucHVzaChhKTtiLk58fChiLk49ZnVuY3Rpb24oKXtmb3IodmFyIGM9bShiLkspLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO3RyeXtlKCl9Y2F0Y2gobCl7fX1mb3IodmFyIGY9bShiLkgudmFsdWVzKCkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD12b2lkIDA7KGg9Zy52YWx1ZS53ZSk9PW51bGx8fFRuKGgpfWIuSC5jbGVhcigpfSwkYyhBLCJwYWdlaGlkZSIsYi5OKSl9LFZ4PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goTW4pWzNdfHxudWxsLGM9KGI/ZGVjb2RlVVJJKGIpOmIpfHwiIixkPVBuKGEsImxhYmVsIil8fCIiLGU9UG4oYSwicmFuZG9tIil8fCIiO3JldHVybiBjKyI6IitMbihkKSsiOiIrTG4oZSl9LFd4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UeCwKZT1WeChhKTtpZighKGQuSC5oYXMoZSl8fGQuSC5zaXplPj1kLlIpKXt2YXIgZj17fTtiJiZiPjAmJmMmJihmLndlPW5ldyBReChjLGIpKTtkLkguc2V0KGUsZik7dmFyIGc7KGc9Zi53ZSk9PW51bGx8fFJ4KGcpfX0sVW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1WeChiKSxkLGU7KGQ9YS5ILmdldChjKSk9PW51bGx8fChlPWQud2UpPT1udWxsfHxUbihlKTthLkguZGVsZXRlKGMpfTtTeC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguc2l6ZX07CnZhciBYeD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9UShhLEguSi5nbikpPT1udWxsP3ZvaWQgMDpjW2IucGJdO3JldHVybiBkIT09dm9pZCAwJiZkPj1iLk9nfSxZeD1mdW5jdGlvbihhLGIpe2lmKFEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykmJlh4KGEsbnYpJiYhKGI8PTApKXJldHVybiBuZXcgUXgoZnVuY3Rpb24oKXtydihudil9LGIpfSxaeD1mdW5jdGlvbihhLGIsYyl7UShiLEguSi5kYSkhPT1YLlYueGF8fFEoYixILkouRWMpfHwoVHh8fChUeD1uZXcgU3gsWHgoYixvdikmJlV4KGZ1bmN0aW9uKCl7dmFyIGQ7cnYob3YsKGQ9VHgpPT1udWxsP3ZvaWQgMDpkLmdldFNpemUoKSl9KSksWHgoYixudik/V3goYSxjLGZ1bmN0aW9uKCl7cnYobnYpO3ZhciBkOyhkPVR4KT09bnVsbHx8VW4oZCxhKX0pOld4KGEpKX0sVHg7CnZhciAkeD1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8wOmU7aWYoZCl7dmFyIGY9UShhLEguSi5FYik7Yj1iLkxhKHtyYW5kb206ZitlLGRhdGE6ZH0pfXJldHVyblt7ZW5kcG9pbnQ6YixtZXRob2Q6Y30se2VuZHBvaW50OmIsbWV0aG9kOmx1fV19LGF5PWZ1bmN0aW9uKGEsYixjLGQpe2F2LmNhbGwodGhpcyxhLGIsMSxjKTt0aGlzLk49ZH07d2EoYXksYXYpO2F5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lbmRwb2ludD09PTY4JiZRKGEsSC5KLm9iKT8hMTohMH07YXkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWx2KGEpO3RoaXMuTiYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLHRoaXMuTik7dmFyIGU9ZWlbRi5ELmVoXTtlJiYoZFtlXT10aGlzLmVuZHBvaW50KTt0aGlzLmVuZHBvaW50IT09NjgmJihkZWxldGUgZC5nY2xhdyxkZWxldGUgZC5nY2xhd19zcmMpO3ZhciBmPXZvaWQgMDtRKGEsCkguSi5vYik/KGQuZ2NwPTEsZC5jdF9jb29raWVfcHJlc2VudD0xKTp0aGlzLmVuZHBvaW50PT09NjgmJihkLmdjcD01LGIubWV0aG9kIGluc3RhbmNlb2Yga3UmJihkLmZtdD04LGY9bGQpKTt2YXIgZz0iPyIra3YoZCk7YyhnLGY/e0diOmZ9Ont9KX07YXkucHJvdG90eXBlLkxhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgYXkodGhpcy5lbmRwb2ludCx0aGlzLlosdGhpcy5qYSxhKX07dmFyIGJ5PW5ldyBheSg5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLCEwKSxjeT1uZXcgYXkoNjgsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITEpLGR5PWZ1bmN0aW9uKCl7fTt3YShkeSxvdSk7ZHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSk7cmV0dXJuICR4KGEsYnksUShhLEguSi5vYik/bnU6bHgsYj09bnVsbD92b2lkIDA6YlswXSl9O2R5LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPWd2KGEpLGM9W107TSg0NTgpJiYhUShhLEguSi5vYikmJgpjLnB1c2goJHgoYSxjeSxudSxiPT1udWxsP3ZvaWQgMDpiWzBdKSk7aWYoYiYmYi5sZW5ndGg+MSlmb3IodmFyIGQ9UShhLEguSi5vYik/bnU6bHgsZT0xO2U8Yi5sZW5ndGg7KytlKWMucHVzaCgkeChhLGJ5LGQsYltlXSxlKSk7cmV0dXJuIGN9O3ZhciBleT1uZXcgZHk7CnZhciBneT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKHYpe3JldHVybiB2LnNwbGl0KCJ+IikuZmlsdGVyKGZ1bmN0aW9uKHgpe3ZhciB5PXguc3BsaXQoIi4iKVswXTtyZXR1cm4hTHcuc29tZShmdW5jdGlvbih6KXtyZXR1cm4gU2IoeSx6KX0pfSkuam9pbigifiIpfWlmKE53KGEpJiZRKGEsSC5KLmZkKSl7dmFyIGM9UShhLEguSi5ZYSksZD1CcCgpLGU9Z3coYyxkKSxmPWUuc29tZShmdW5jdGlvbih2KXtyZXR1cm4gU2Iodi5uYW1lLCJyYXciKX0pLGc9ZncoZSksaD1nLk9vLGw9Zy5paSxuPWcuaGFzVXBkLHA9Zy5ZbixxPWcuZW5jcnlwdGlvbktleVN0cmluZyxyPWcubWV0YWRhdGFQYXJhbSx0PVtdO1J3KDEsYSl8fHQucHVzaCgiJmVtPSIrYihoKSk7dC5wdXNoKCImZW1lPSIrcCk7dmFyIHU7cmV0dXJuIHU9e2lpOmwsSXQ6dCxzdjplLFhuOnIsZW5jcnlwdGlvbktleVN0cmluZzpxLFZyOmZ1bmN0aW9uKHYpe3ZhciB4PWZ5KGEsdSkseT1zdyhRKGEsSC5KLllhKSwhMCwhMCk7SXUoeSwKZnVuY3Rpb24oeil7aWYoIVJ3KDEsYSkpe3ZhciBDPSh6PT1udWxsP3ZvaWQgMDp6LnBhcmFtKXx8b3coe3liOltdfSkucGFyYW07eC5lbT1DfXYoeCl9KX0saGFzVXBkOm4scGY6dm9pZCAwLHJhd1BpaUFkZGVkOmZ9fX0sZnk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPShjPWIucGYpIT1udWxsP2M6MyxlPXtndG06ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpLHBmOmR9KX07Yi5YbiYmKGUuZW1kPWIuWG4pO2lmKGIuaGFzVXBkKXt2YXIgZj0KU3coYSk7ZiYmKGUuZWNzaWQ9Zil9Yi5yYXdQaWlBZGRlZCYmKGVbImdhcC5ycCJdPSIxIik7cmV0dXJuIGV9O3ZhciBkZztmdW5jdGlvbiBoeShhLGIpe3ZhciBjOyhjPWRnKT09bnVsbHx8JGYoYy5ILGEsYil9O3ZhciBpeT1BYShbIi8iXSksank9ZnVuY3Rpb24oYSl7dGhpcy5IPWE7dGhpcy5mYWlsdXJlVHlwZT12b2lkIDB9O2p5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuSC5hY3RpdmU7ZD8oZC5wb3N0TWVzc2FnZSh7dHlwZToxLGNvbW1hbmQ6YX0pLGIoe2RhdGE6IiJ9KSk6Yyh7ZmFpbHVyZVR5cGU6MTMsZGF0YToiIn0pfWNhdGNoKGUpe2Moe2ZhaWx1cmVUeXBlOjExLGRhdGE6ZS5tZXNzYWdlfSl9fTt2YXIga3k9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhaWx1cmVUeXBlPWE7dGhpcy5IPWJ9O2t5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7Yyh7ZmFpbHVyZVR5cGU6dGhpcy5mYWlsdXJlVHlwZSxkYXRhOiJmIit0aGlzLmZhaWx1cmVUeXBlKygidCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuSCkpfSl9Owp2YXIgbnk9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmluaXRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuSD1uZXcga3koMTUsdGhpcy5pbml0VGltZSk7dmFyIGM9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSgpfSwyMCl9KSxkPWx5KGEpLnRoZW4oZnVuY3Rpb24oZSl7Yi5IPW5ldyBqeShlKTtteShiLGUpfSkuY2F0Y2goZnVuY3Rpb24oKXtiLkg9bmV3IGt5KDQsYi5pbml0VGltZSl9KTt0aGlzLks9UHJvbWlzZS5yYWNlKFtjLGRdKX0sbXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihkKXtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2lmKGQuc3RhdGU9PT0icmVkdW5kYW50Iil7dmFyIGU9Yi5hY3RpdmU7ZSYmZS5zdGF0ZSE9PSJyZWR1bmRhbnQifHwoYS5IPW5ldyBreSgxMCxhLmluaXRUaW1lKSl9fSl9O2MoYi5hY3RpdmUpO2MoYi53YWl0aW5nKTtjKGIuaW5zdGFsbGluZyk7CmIuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLGZ1bmN0aW9uKCl7YyhiLmluc3RhbGxpbmcpfSl9O255LnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLksudGhlbihmdW5jdGlvbigpe2QuSC5pbyhhLGIsYyl9KX07bnkucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9Owp2YXIgbHk9ZnVuY3Rpb24oYSl7dmFyIGIsYz1MZigxMSk7Yz1MZigxMCk7Yj1jO3ZhciBkPXtzY29wZTooVGIoYS5ocmVmLCIvIik/YS5ocmVmLnNsaWNlKDAsLTEpOmEuaHJlZikrIi9fL3NlcnZpY2Vfd29ya2VyIn07YiYmKGQudXBkYXRlVmlhQ2FjaGU9ImFsbCIpO3ZhciBlLGY9b3koYSxiKSxnPW5ldyBNYXAoW1sicGF0aCIsYS5wYXRobmFtZV1dKSxoPUpwKGtjKGYpLnRvU3RyaW5nKCkpO2U9THAoaC56ayxoLnBhcmFtcyxoLmZyYWdtZW50LGcpO3ZhciBsPUljKCksbj1rYyhlKTt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobixkKX1jYXRjaChwKXt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobi50b1N0cmluZygpLGQpfWNhdGNoKHEpe3JldHVybiBQcm9taXNlLnJlamVjdChxKX19fTsKZnVuY3Rpb24gb3koYSxiKXtmb3IodmFyIGM9S3AoaXkpLGQ9YS5wYXRobmFtZS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC5sZW5ndGg+MH0pLGU9W10uY29uY2F0KHcoZCksWyJfIiwic2VydmljZV93b3JrZXIiLGIsInN3LmpzIl0pLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSljPU1wKGMsZy52YWx1ZSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHB5KGEpe3ZhciBiPW5tKGptLmJhLk9oKSxjPWI9PW51bGw/dm9pZCAwOmJbYV07Y3x8YSE9PSJsaXRlInx8KGM9Yj09bnVsbD92b2lkIDA6Yi5mdWxsKTtyZXR1cm4gY312YXIgcXk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXB5KCJmdWxsIik7ZD9kLmRlbGVnYXRlKGEsYixjKTpjKHtmYWlsdXJlVHlwZToxNn0pfTtmdW5jdGlvbiByeShhLGIsYyxkLGUpe3F5KHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOjEsdGVtcGxhdGVzOmIsYm9keToiIixwcm9jZXNzUmVzcG9uc2U6ITEsZW5jcnlwdGlvbktleVN0cmluZzplLHNvUmVmZXJyZXI6QS5sb2NhdGlvbi5ocmVmfX0sYyxmdW5jdGlvbihmKXtkKGYuZmFpbHVyZVR5cGUsZi5kYXRhKX0pfTt2YXIgc3k9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJTZXJ2aWNlV29ya2VyRnJhbWVsZXNzIik7dGhpcy5OPWF9O3dhKHN5LGh1KTtzeS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07c3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07c3kucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO3J5KGIsdGhpcy5OLmlpLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbihkKXtjLk4ucGY9ZDthLnJkKHZvaWQgMCl9LHRoaXMuTi5lbmNyeXB0aW9uS2V5U3RyaW5nKX07CnZhciB0eT1mdW5jdGlvbihhKXthdi5jYWxsKHRoaXMsYSxbImFkX3VzZXJfZGF0YSIsImFkX3N0b3JhZ2UiXSwxLCExKX07d2EodHksYXYpO3R5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9UShhLEguSi5waiksZz1mdW5jdGlvbigpe3ZhciBuPWt2KGUpO2YmJmIubWV0aG9kIGluc3RhbmNlb2Ygc3kmJihuKz1mLkl0LmpvaW4oIiIpKTtjKG4se0diOmxkfSl9O2lmKGQuZW5kcG9pbnQ9PT0yMXx8ZC5lbmRwb2ludD09PTczKXt2YXIgaD1nayhiLkljKTtoJiYoZS5fdWlwPWgpfWlmKGYmJihuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsZnkoYSxmKSksIShiLm1ldGhvZCBpbnN0YW5jZW9mIHN5KSkpe3ZhciBsO2YucGY9KGw9Zi5wZikhPW51bGw/bDoxNztmLlZyKGZ1bmN0aW9uKG4pe25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxuKTtnKCl9KTtyZXR1cm59ZygpfSl9O3R5LnByb3RvdHlwZS5SPQpmdW5jdGlvbihhKXtyZXR1cm4gYXYucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpLnNsaWNlKDAsLTEpfTt2YXIgdXk9bmV3IHR5KDExKSx2eT1uZXcgdHkoNzIpLHd5PWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7dGhpcy5SPWJ9O3dhKHd5LG91KTt3eS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXtyZXR1cm4gTSg1NjMpP1t0aGlzLlosdGhpcy5SXTpNKDE0MSk/W3RoaXMuWl06W3RoaXMuUl19O3d5LnByb3RvdHlwZS5qYT1mdW5jdGlvbigpe3JldHVybiBudS5pc1N1cHBvcnRlZCgpP1tudV06W211LGx1XX07d3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuZmEoKSxkPWMuZmxhdE1hcChmdW5jdGlvbihmKXtyZXR1cm4gYi5qYSgpLm1hcChmdW5jdGlvbihnKXtyZXR1cm57ZW5kcG9pbnQ6ZixtZXRob2Q6Z319KX0pO2lmKHRoaXMuTigpKXt2YXIgZT1RKGEsSC5KLnBqKTtlJiZlLmhhc1VwZCYmZC51bnNoaWZ0KHtlbmRwb2ludDpjWzBdLG1ldGhvZDpuZXcgc3koZSl9KX1yZXR1cm4gZH07CnZhciB4eT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx1eSx2eSl9O3dhKHh5LHd5KTt4eS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiEwfTt2YXIgeXk9bmV3IHh5LHp5PW5ldyB0eSgyMSksQXk9bmV3IHR5KDczKSxCeT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx6eSxBeSl9O3dhKEJ5LHd5KTtCeS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiBNKDU4Nyl9O3ZhciBDeT1uZXcgQnk7dmFyIER5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDt0aGlzLks9ITE7TSg0NjIpJiZVbSgiZnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuSD4wJiZhLkg8NT9TdHJpbmcoYS5IKTp2b2lkIDB9LCExKX0sRXk7ZnVuY3Rpb24gRnkoYSxiKXtFeXx8KEV5PW5ldyBEeSk7dmFyIGM9RXk7TSg0NjIpJiZmbi5LJiYoYj09PSJndG0uZm9ybVN1Ym1pdCJ8fGI9PT0iZm9ybV9zdWJtaXQiJiZJZig0NSkpJiYoYT09PTF8fGMuSykmJihjLks9ITAsYy5IPWEsYSE9PTU/Vm0oImZzIik6UW0uSC5mcz0hMSl9O3ZhciBHeT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKT09PVguVi5LYSl7dmFyIGI9ZnUoYSk7aWYoIU0oNDI3KSYmKGpwKGEsYil8fFEoYSxILkouaGQpKSYmWG8oZnApKXt2YXIgYz1scChhLGIpO2lmKGMpe3ZhciBkPU5tKDY5LGMpO1RsKGQsYSw2OSk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDo2OSxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGQpfX12YXIgZT15YihhLk0ub25TdWNjZXNzKT9hLk0ub25TdWNjZXNzOnhiOyR1KGEsYik7ZSgpfX07dmFyIEh5PXtYOntXcTowLEVrOjEsWmc6MixYazozLG1pOjQsVms6NSxXazo2LFlrOjcsbmk6OCx0bTo5LHNtOjEwLFRpOjExLHZtOjEyLEJoOjEzLEVtOjE0LGlqOjE1LFNxOjE2LGpkOjE3LHVqOjE4LHZqOjE5LHdqOjIwLENuOjIxLHhqOjIyfX07SHkuWFtIeS5YLldxXT0iUkVTRVJWRURfWkVSTyI7SHkuWFtIeS5YLkVrXT0iQURTX0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguWmddPSJDT05UQUlORVJfRVhFQ1VURV9TVEFSVCI7SHkuWFtIeS5YLlhrXT0iQ09OVEFJTkVSX1NFVFVQX0VORCI7SHkuWFtIeS5YLm1pXT0iQ09OVEFJTkVSX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguVmtdPSJDT05UQUlORVJfQkxPQ0tJTkdfRU5EIjtIeS5YW0h5LlguV2tdPSJDT05UQUlORVJfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC5Za109IkNPTlRBSU5FUl9ZSUVMRF9FTkQiO0h5LlhbSHkuWC5uaV09IkNPTlRBSU5FUl9ZSUVMRF9TVEFSVCI7SHkuWFtIeS5YLnRtXT0iRVZFTlRfRVhFQ1VURV9FTkQiOwpIeS5YW0h5Llguc21dPSJFVkVOVF9FVkFMVUFUSU9OX0VORCI7SHkuWFtIeS5YLlRpXT0iRVZFTlRfRVZBTFVBVElPTl9TVEFSVCI7SHkuWFtIeS5YLnZtXT0iRVZFTlRfU0VUVVBfRU5EIjtIeS5YW0h5LlguQmhdPSJFVkVOVF9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLkVtXT0iR0E0X0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguaWpdPSJQQUdFX0xPQUQiO0h5LlhbSHkuWC5TcV09IlBBR0VWSUVXIjtIeS5YW0h5LlguamRdPSJTTklQUEVUX0xPQUQiO0h5LlhbSHkuWC51al09IlRBR19DQUxMQkFDS19FUlJPUiI7SHkuWFtIeS5YLnZqXT0iVEFHX0NBTExCQUNLX0ZBSUxVUkUiO0h5LlhbSHkuWC53al09IlRBR19DQUxMQkFDS19TVUNDRVNTIjtIeS5YW0h5LlguQ25dPSJUQUdfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC54al09IlRBR19FWEVDVVRFX1NUQVJUIjt2YXIgSXk9e307SXkuWD1IeS5YO3ZhciBKeT17UnU6IkwiLFhxOiJTIixrdjoiWSIsUnQ6IkIiLG51OiJFIixOdToiSSIsZnY6IlRDIix2dToiSFRDIixvdToiRiIsTXU6IkMifSxLeT17WHE6IlMiLGx1OiJWIixhdToiRSIsZHY6InRhZyJ9LEx5PXt9LE15PShMeVtJeS5YLnZqXT0iNiIsTHlbSXkuWC53al09IjUiLEx5W0l5LlgudWpdPSI3IixMeSk7ZnVuY3Rpb24gTnkoYSl7dmFyIGI9RSg1KSxjPU51bWJlcihhLmV2ZW50SWQpLGQ9TnVtYmVyKGEudGFnSWQpO3JldHVybihTYihiLCJHVE0tIik/YjoiR1RNLSIrYikrIjoiKyhBYihjKT9jKyI6IjoiIikrKEFiKGQpP2QrIjoiOiIiKSthLnN0YWdlfTtmdW5jdGlvbiBPeSgpe3ZhciBhPXJkKCk7cmV0dXJuISEoYSYmYS5tYXJrIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEubWVhc3VyZSBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWVhc3VyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1hcmtzIGluc3RhbmNlb2YgRnVuY3Rpb24pfTt2YXIgUHk9ZnVuY3Rpb24oKXt0aGlzLkg9e319LFF5O2Z1bmN0aW9uIFJ5KCl7UXl8fChReT1uZXcgUHkpO3JldHVybiBReX1mdW5jdGlvbiBTeShhKXt2YXIgYj1SeSgpLGM9TnkoYSk7cmV0dXJuIGIuSFtjXX1mdW5jdGlvbiBUeShhLGIpe3ZhciBjO2E6e3ZhciBkPVJ5KCk7aWYoT3koKSl7dmFyIGU9TnkoYSksZixnO2lmKGY9KGc9cmQoKSk9PW51bGw/dm9pZCAwOmcubWFyayhlLGIpKXtjPWQuSFtlXT1mO2JyZWFrIGF9fWM9dm9pZCAwfXJldHVybiBjfTtmdW5jdGlvbiBVeShhLGIpe2lmKE95KCkpe2EuZW50cnk9TnkoYSk7dmFyIGM9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKTtjLnN0YWdlPWI7ZGVsZXRlIGMuc2VudDt2YXIgZD1TeShiPT09SXkuWC5qZD97c3RhZ2U6SXkuWC5qZH06YyksZT1TeShhKTtpZihkJiZlJiYhKGQuc3RhcnRUaW1lPmUuc3RhcnRUaW1lKSl7Yy5zdGFnZT1iKyI6IithLnN0YWdlO3ZhciBmPU55KGMpLGc9e3N0YXJ0OmQubmFtZSxlbmQ6ZS5uYW1lfSxoLGw7cmV0dXJuKGw9KGg9cmQoKSk9PW51bGw/dm9pZCAwOmgubWVhc3VyZShmLGcpKT09bnVsbD92b2lkIDA6bC5kdXJhdGlvbn19fTt2YXIgV3k9ZnVuY3Rpb24oKXt2YXIgYT01O1Z5LlJvPjAmJihhPVZ5LlJvKTt0aGlzLks9YTt0aGlzLkg9MDt0aGlzLk49W119LFh5PWZ1bmN0aW9uKGEpe3JldHVybiBhLkg8YS5LPyExOk5iKCktYS5OW2EuSCVhLktdPDFFM30sWXk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5IKyslYS5LO2EuTltiXT1OYigpfTt2YXIgVnk9e1JvOk5mKDMsMCl9LCR5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnlhPVtdO3RoaXMuSD12b2lkIDA7dGhpcy5aPXt9O3RoaXMuSz12b2lkIDA7dGhpcy5qYT1uZXcgV3k7dGhpcy5MYT0xRTM7dGhpcy5SPXRoaXMuTj0hMTt0aGlzLmZhPURiKCk7WnkodGhpcyxmdW5jdGlvbigpe3ZhciBiPVtbInYiLCIzIl0sWyJ0IiwidCJdLFsicGlkIixTdHJpbmcoYS5mYSldXSxjPWR1KCk7YyYmYi5wdXNoKFsiZ3RtIixjXSk7cmV0dXJuIGJ9KTtjZChmdW5jdGlvbigpe2EuZmE9RGIoKX0sODY0RTUpfSxaeT1mdW5jdGlvbihhLGIpe2EueWEucHVzaChiKX0sYXo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSDtpZihkPT09dm9pZCAwKWlmKGMpZD1yaigpO2Vsc2UgcmV0dXJuIiI7Zm9yKHZhciBlPVtmaygiaHR0cHM6Ly8iK0UoMjEpKSwiL2EiLCI/aWQ9IitFKDUpXSxmPW0oYS55YSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD0KaCh7ZXZlbnRJZDpkLHRmOiEhYn0pLG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9bShwLnZhbHVlKSxyPXEubmV4dCgpLnZhbHVlLHQ9cS5uZXh0KCkudmFsdWU7ZS5wdXNoKCImIityKyI9Iit0KX1lLnB1c2goIiZ6PTAiKTtyZXR1cm4gZS5qb2luKCIiKX0sYno9ZnVuY3Rpb24oYSl7aWYoJGsoMjYpJiYoYS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKSxhLkghPT12b2lkIDAmJmEuUikpe3ZhciBiPWxvKGNvLmlhLlpiKTtpZihnbyhiKSlhLk58fChhLk49ITAsaW8oYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSkpO2Vsc2UgaWYoYS5aW2EuSF18fFh5KGEuamEpfHxhLkxhLS08PTApUCgxKSxhLlpbYS5IXT0hMDtlbHNle1l5KGEuamEpO3ZhciBjPWF6KGEsITApO1huKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDphLkh9LGMpO2EuUj0hMTthLk49ITF9fX0sY3o9ZnVuY3Rpb24oYSl7YS5LfHwoYS5LPQpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0sNTAwKSl9LGV6PWZ1bmN0aW9uKGEpe3ZhciBiPWR6O2IuWlthXXx8KGEhPT1iLkgmJihieihiKSxiLkg9YSksYi5SPSEwLGN6KGIpLGF6KGIpLmxlbmd0aD49MjAyMiYmYnooYikpfSxkejtmdW5jdGlvbiBmeihhKXtneigpO1p5KGR6LGEpfWZ1bmN0aW9uIGh6KCl7dmFyIGE7YT1hPT09dm9pZCAwPyExOmE7Z3ooKTt2YXIgYj1hLGM9ZHo7Yj1iPT09dm9pZCAwPyExOmI7aWYoZm4uTiYmJGsoMjYpKXt2YXIgZD1heihjLCEwLCEwKTtiP1ZuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpOlhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpfX1mdW5jdGlvbiBneigpe2R6fHwoZHo9bmV3ICR5KX07ZnVuY3Rpb24gaXooKXtmdW5jdGlvbiBhKGMsZCl7dmFyIGU9d2IocmJbZF18fFtdKTtlJiZiLnB1c2goW2MsZV0pfXZhciBiPVtdO2EoInUiLCJHVE0iKTthKCJ1dCIsIlRBR0dJTkciKTthKCJoIiwiSEVBTFRIIik7cmV0dXJuIGJ9O3ZhciBqej0iaHR0cHM6Ly8iK0UoMjEpLGt6PWZ1bmN0aW9uKCl7dGhpcy5OPSExO3RoaXMuUj1bXTt0aGlzLlo9W107dGhpcy5IPXtUQzowLEhUQzowfTt0aGlzLks9e319LGx6PWZ1bmN0aW9uKGEsYixjLGQpe2EuS1tiXXx8KGEuS1tiXT17fSk7YS5LW2JdW2NdPWR9LG96PWZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9IiIsZD1teigpO0FiKGQpJiYoYS5ILkk9TWF0aC5mbG9vcihkKSk7Yz1ueihhLkgsSnkpLnRvU3RyaW5nKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoYS5LKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1hLktbZ10ubmFtZSxsPSIiLG49bnooYS5LW2ddLEt5KTtuJiYobD1oKyIuIituLnRvU3RyaW5nKCksYis9In4iK2wpfXZhciBwPSJ+QVdDVCIrYS5SLmpvaW4oIi4iKSxxPSJ+R0EiK2EuWi5qb2luKCIuIikscj0iJmNjaWQ9Iit2aygpLnRvU3RyaW5nKCkrIiZjaWQ9IitFKDUpLnRvU3RyaW5nKCkrIiZsPSIrYytiKyhhLlIubGVuZ3RoPwpwOiIiKSsoYS5aLmxlbmd0aD9xOiIiKTtpZihNKDIxNCkpe3ZhciB0LHU9KHQ9cmQoKSk9PW51bGw/dm9pZCAwOnQuZ2V0RW50cmllc0J5TmFtZShLYykubWFwKGZ1bmN0aW9uKHYpe3JldHVybiBTdHJpbmcodi5kdXJhdGlvbil9KS5qb2luKCIuIik7dSYmKHIrPSJ+U1MiK3UpfXJldHVybiByfSxwej1mdW5jdGlvbihhLGIpe2lmKCFiLnN0YWdlfHxhLk58fCFPeSgpfHxTeShiKSlyZXR1cm4hMTt2YXIgYyxkPShjPXJkKCkpPT1udWxsP3ZvaWQgMDpjLnRpbWVPcmlnaW47aWYoIUFiKGQpKWEuTj0hMDtlbHNlIGlmKEFiKCRrKDI1KSkmJiFTeSh7c3RhZ2U6SXkuWC5qZH0pJiYhYS5OJiZPeSgpKXRyeXt2YXIgZT1OdW1iZXIoJGsoMjUpKTtUeSh7c3RhZ2U6SXkuWC5qZH0se3N0YXJ0VGltZTpNYXRoLm1heChlLWQsMCl9KTtUeSh7c3RhZ2U6SXkuWC5pan0se3N0YXJ0VGltZTowfSk7dmFyIGY9VXkoe3N0YWdlOkl5LlguamR9LEl5LlguaWopO2YmJihhLkguTD1NYXRoLmZsb29yKGYpKX1jYXRjaChnKXthLk49CiEwfWlmKGEuTilyZXR1cm4hMTt0cnl7aWYoIVR5KGIpKXJldHVybiExfWNhdGNoKGcpe3JldHVybiBhLk49ITAsITF9cmV0dXJuITB9LHF6PWZ1bmN0aW9uKGEsYixjKXtpZihweihhLGIpKXRyeXt2YXIgZD1VeShiLGMpO2lmKGQpcmV0dXJuIE1hdGguZmxvb3IoZCl9Y2F0Y2goZSl7YS5OPSEwfX0sc3o9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5LlgubWl9KX0sdHo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpLGI9cXooYSx7c3RhZ2U6SXkuWC5Ya30sSXkuWC5taSk7YiE9PXZvaWQgMCYmKGEuSC5TPWIpfSx1ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5uaX0pfSx2ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5CaCxldmVudElkOmF9KTtjLktbYV0mJmMuS1thXS5uYW1lfHxseihjLGEsIm5hbWUiLFNiKGIsImd0bS4iKT9iOiIqIil9LHd6PWZ1bmN0aW9uKGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnZtLApldmVudElkOmF9LEl5LlguQmgpO2MhPT12b2lkIDAmJmx6KGIsYSwiUyIsYyl9LHl6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKSxkPXF6KGMse3N0YWdlOkl5LlgudG0sZXZlbnRJZDphfSxJeS5YLkJoKTtkIT09dm9pZCAwJiZseihjLGEsIkUiLGQpO2lmKGI9PT0iZ3RtLmxvYWQiKXt2YXIgZT1xeihjLHtzdGFnZTpJeS5YLldrfSxJeS5YLlpnKTtlIT09dm9pZCAwJiYoYy5ILkU9ZSk7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7aWYoIWMuTiYmT3koKSYmRSg1KSl7dmFyIGY9eHooKTtmIT09dm9pZCAwJiYoYy5ILkY9TWF0aC5mbG9vcihmKSk7dHJ5e2Zvcih2YXIgZz1peih7ZXZlbnRJZDowLHRmOiExfSksaD1bXSxsPW0oZyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW0obi52YWx1ZSkscT1wLm5leHQoKS52YWx1ZSxyPXAubmV4dCgpLnZhbHVlO2gucHVzaCgiJiIrcSsiPSIrcil9dmFyIHQ9Q3AoKSx1PVtbZmsoanopLCIvYT92PTMmdD1sIiwiJnBpZD0iKwpEYigpLnRvU3RyaW5nKCksIiZydj0iK0UoMTQpLHQ/IiZ0YWdfZXhwPSIrdDoiIixoLmpvaW4oIiIpXS5qb2luKCIiKSwiJmd0bT0iLGR1KCksb3ooYyldLmpvaW4oIiIpO2lmKHUubGVuZ3RoPjIwMjIpe3ZhciB2PU1hdGgubWF4KHUubGFzdEluZGV4T2YoIi5UUyIsMjAyMiksdS5sYXN0SW5kZXhPZigifiIsMjAyMikpO3U9dS5zbGljZSgwLHYpfVhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTZ9LHUpfWNhdGNoKHgpe319fSl9fSx6ejtmdW5jdGlvbiByeigpe3p6fHwoeno9bmV3IGt6KTtyZXR1cm4genp9ZnVuY3Rpb24gbXooKXt0cnl7dmFyIGE7cmV0dXJuKChhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKVswXSkuZG9tSW50ZXJhY3RpdmV9Y2F0Y2goYil7fX0KZnVuY3Rpb24gbnooYSxiKXtyZXR1cm4gT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBiW2NdfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybigiIisoYz09PSJ0YWciPyIiOmMpKS5jb25jYXQoYVtjXS50b1N0cmluZygpKX0pLmpvaW4oIi4iKX1mdW5jdGlvbiBBeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FbSxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuWi5wdXNoKGMpfWZ1bmN0aW9uIEJ6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVrLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5SLnB1c2goYyl9ZnVuY3Rpb24gQ3ooYSl7dmFyIGI9cnooKTtweihiLHtzdGFnZTpJeS5YLlRpLGV2ZW50SWQ6YX0pfQpmdW5jdGlvbiBEeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5zbSxldmVudElkOmF9LEl5LlguVGkpO2MhPT12b2lkIDAmJmx6KGIsYSwiViIsYyl9ZnVuY3Rpb24geHooKXt0cnl7dmFyIGEsYjtyZXR1cm4oYj0oYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMubmFtZT09PSJmaXJzdC1jb250ZW50ZnVsLXBhaW50In0pKT09bnVsbD92b2lkIDA6Yi5zdGFydFRpbWV9Y2F0Y2goYyl7fX1mdW5jdGlvbiBFeihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC54aixldmVudElkOmEuaWQsdGFnSWQ6TnVtYmVyKGJbR2YueWpdKX0pfQpmdW5jdGlvbiBGeihhLGIsYyl7dmFyIGQ9cnooKSxlPWRuKGIpLGY9TnVtYmVyKGJbR2YueWpdKSxnPXF6KGQse3N0YWdlOmMsZXZlbnRJZDphLmlkLHRhZ0lkOmZ9LEl5LlgueGopO2lmKGchPT12b2lkIDAmJmQuS1thLmlkXSl7dmFyIGg9ZC5LW2EuaWRdLnRhZ3x8IiIsbCxuPShsPU15W2NdKSE9bnVsbD9sOiIxIixwPW5ldyBSZWdFeHAoIlRTXFxkIitlKyIuVEkiK2YpLHE9IlRTIituK2UrIi5USSIrZisiLlRFIitnO2guc2VhcmNoKHApPj0wP24hPT0iMSImJmx6KGQsYS5pZCwidGFnIixoLnJlcGxhY2UocCxxLnJlcGxhY2UoIi5URSIrZywiIikpKToobHooZCxhLmlkLCJ0YWciLChoP2grIi4iOiIiKStxKSxlPT09Imh0bWwiJiYoZC5ILkhUQys9MSksZC5ILlRDKz0xKX19Owp2YXIgR3o9ZnVuY3Rpb24oYSl7UShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxwdikmJnJ2KHB2KX0sSXo9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk7aWYoYj09PVguVi5LYSlHeShhKTtlbHNle3ZhciBjPUh6W2JdO2lmKGMpZm4uSCYmYj09PVguVi54YSYmQnooYS5NLmV2ZW50SWQpLFF3KGEsZnVuY3Rpb24oZCl7dmFyIGU9Z3koYSk7VihhLEguSi5waixlKTtlJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsZnkoYSxlKSk7RnkoMyxhLmV2ZW50TmFtZSk7dmFyIGY9e30sZz17fTtRdShhLHtRczpmdW5jdGlvbihoLGwsbil7aWYobi5maW5kKGZ1bmN0aW9uKHApe3JldHVybiBwLmlzUHJpbWFyeSYmKHAuc3RhdHVzPT09MHx8cC5zdGF0dXM9PT0xKX0pKWguTS5vblN1Y2Nlc3MoKTtlbHNlIEd6KGgpLGguTS5vbkZhaWx1cmUoKX0sU3M6ZnVuY3Rpb24oaCxsKXt2YXIgbjt2YXIgcD1sLnNiLHE9bC5lbmRwb2ludC5lbmRwb2ludCwKcjtzd2l0Y2gobC5wayBpbnN0YW5jZW9mIGt4PzI6bC5wayBpbnN0YW5jZW9mIHJ4PzQ6bC5wayBpbnN0YW5jZW9mIGt1PzM6MSl7Y2FzZSAyOnI9MjE7YnJlYWs7Y2FzZSAzOlEoaCxILkouZGEpPT09WC5WLnhhJiZRKGgsSC5KLm9iKSYmcSE9PTkmJihyPTIwKTticmVhaztjYXNlIDQ6cj0yMH1pZihyKXt2YXIgdDt2YXIgdT1OZihyLC0xKTtYeChoLG92KT8oWngocCxoLHUpLHQ9e010OlR4fSk6dD17d2U6WXgoaCx1KX07dmFyIHY9dCx4PXYud2UseT12Lk10O3g9PW51bGx8fFJ4KHgpO249e3dlOngsa3Q6eX19ZWxzZSBuPXt9O3ZhciB6PW4sQz16LndlLEQ9ei5rdDtDJiYoZltsLnNiXT1DKTtEJiYoZ1tsLnNiXT1EKX0sdW86ZnVuY3Rpb24oaCxsKXtmW2wuc2JdJiYoVG4oZltsLnNiXSksZGVsZXRlIGZbbC5zYl0pO2dbbC5zYl0mJihVbihnW2wuc2JdLGwuc2IpLGRlbGV0ZSBnW2wuc2JdKX0sUnM6ZnVuY3Rpb24oaCxsLG4scCxxKXtpZihxLmxlbmd0aCYmYiE9PVguVi51Yil7dmFyIHI9CnFbcS5sZW5ndGgtMV0sdD1yLnNiLHU9ci5lbmRwb2ludC5lbmRwb2ludDtpZighUHguaW5jbHVkZXModSkpe3ZhciB2PWguTTtNbCh7dGFyZ2V0SWQ6aC50YXJnZXQuZGVzdGluYXRpb25JZCxyZXF1ZXN0Ont1cmw6dCxwYXJhbWV0ZXJFbmNvZGluZzozLGVuZHBvaW50OnV9LHFiOntldmVudElkOnYuZXZlbnRJZCxwcmlvcml0eUlkOnYucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShoLEguSi51ZikscHJpb3JpdHlJZDpRKGgsSC5KLnZmKX19KTtRKGgsSC5KLmRhKX19fX0sYyl9KTtlbHNlIGEuTS5vbkZhaWx1cmUoKX19LEp6PXt9LEh6PShKeltYLlYuemRdPVp3LEp6W1guVi54YV09RngsSnpbWC5WLllkXT1LeCxKeltYLlYuWmRdPU94LEp6W1guVi51Yl09ZXksSnpbWC5WLk9iXT15eSxKeltYLlYuRmJdPUN5LEp6KTt2YXIgS3o9e2dqOnticDoiMSIsdXE6IjIiLFZxOiIzIn19Owp2YXIgTHo9e30sTXo9T2JqZWN0LmZyZWV6ZSgoTHpbRi5ELmZoXT0xLEx6W0YuRC5naF09MSxMeltGLkQuQmRdPTEsTHpbRi5ELkNkXT0xLEx6W0YuRC5SY109MSxMeltGLkQuc2ldPTEsTHpbRi5ELnVpXT0xLEx6W0YuRC5DbF09MSxMeltGLkQuaWhdPTEsTHpbRi5ELkNmXT0xLEx6W0YuRC5EZl09MSxMeltGLkQuRWZdPTEsTHpbRi5ELkhhXT0xLEx6W0YuRC5GZl09MSxMeltGLkQuRmRdPTEsTHpbRi5ELnVjXT0xLEx6W0YuRC5IZF09MSxMeltGLkQuTGJdPTEsTHpbRi5ELkNiXT0xLEx6W0YuRC5UYl09MSxMeltGLkQubmJdPTEsTHpbRi5ELmViXT0xLEx6W0YuRC5HZV09MSxMeltGLkQua2hdPTEsTHpbRi5ELk9hXT0xLEx6W0YuRC5PcF09MSxMeltGLkQuU3BdPTEsTHpbRi5ELkllXT0xLEx6W0YuRC5HaV09MSxMeltGLkQuUWZdPTEsTHpbRi5ELlRhXT0xLEx6W0YuRC5ZY109MSxMeltGLkQuWmNdPTEsTHpbRi5ELnRiXT0xLEx6W0YuRC5RZF09MSxMeltGLkQuUmRdPTEsTHpbRi5ELlNkXT0KMSxMeltGLkQuTmVdPTEsTHpbRi5ELnphXT0xLEx6W0YuRC5VYV09MSxMeltGLkQuV2xdPTEsTHpbRi5ELlhsXT0xLEx6W0YuRC5ZbF09MSxMeltGLkQuWmxdPTEsTHpbRi5ELldiXT0xLEx6W0YuRC5UZF09MSxMeltGLkQuWGJdPTEsTHpbRi5ELmRkXT0xLEx6W0YuRC5VZF09MSxMeltGLkQuUWVdPTEsTHpbRi5ELlBhXT0xLEx6W0YuRC55Y109MSxMeltGLkQuVmRdPTEsTHpbRi5ELnpjXT0xLEx6W0YuRC5BY109MSxMeltGLkQuZmJdPTEsTHpbRi5ELlFhXT0xLEx6KSksTno9e30sT3o9KE56W0YuRC5VY109MSxOeltGLkQuUHBdPTEsTnpbRi5ELkhlXT0xLE56W0YuRC5yaV09MSxOei5vcmVmPTEsTnopO3ZhciBQeixRejsKZnVuY3Rpb24gUnooYSxiKXt2YXIgYz1hW0dmLlliXSxkPWImJmIuZXZlbnQ7aWYoIWMpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBlPVF6W2NdLGY9e30sZztmb3IoZyBpbiBhKWEuaGFzT3duUHJvcGVydHkoZykmJihTYihnLCJ2dHBfIik/ZltlIT09dm9pZCAwP2c6Zy5zdWJzdHJpbmcoNCldPWFbZ106Zz09PUdmLkZxLnRvU3RyaW5nKCkmJihmW2UhPT12b2lkIDA/InZ0cF9ndG1HZW5lcmF0ZWRUYWdnaW5nTWV0YWRhdGEiOmddPWFbZ10pKTtJZig2MSkmJmUmJihmLnZ0cF9leHRyYUV4cGVyaW1lbnRJZHM9ITApO2UmJmQmJmQuY2FjaGVkTW9kZWxWYWx1ZXMmJihmLnZ0cF9ndG1DYWNoZWRWYWx1ZXM9ZC5jYWNoZWRNb2RlbFZhbHVlcyk7YiYmZSYmKGYudnRwX2d0bUVudGl0eUluZGV4PWIuaW5kZXgsZi52dHBfZ3RtRW50aXR5TmFtZT1iLm5hbWUpO3JldHVybiBlIT09dm9pZCAwP2UoZik6UHooYyxmLApiKX12YXIgVHo9ZnVuY3Rpb24oKXt2YXIgYT1TejtpZihNKDU4NSkmJmZuLkspe3ZhciBiPUUoNSkuaW5kZXhPZigiR1RNLSIpPT09MCYmSWYoNjIpLGMsZD0oKGM9RmsoKSk9PW51bGw/dm9pZCAwOmMuc291cmNlKT09PTE7YiYmIWR8fGEuSHx8KGEuSD0hMCxVbSgiYWJsIiwiMSIpLHRvKCkpfX0sU3o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgVXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5uYW1lPVN0cmluZyh0aGlzLkhbR2YuUm1dfHwiIil9OwpVei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXtpZighYlt0aGlzLmluZGV4XSYmIWEuaXNCbG9ja2VkKHRoaXMuSCkpe2JbdGhpcy5pbmRleF09ITA7dGhpcy5IW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO3ZhciBjPXRoaXMubmFtZSxkO3RyeXt2YXIgZT17fSxmO2ZvcihmIGluIHRoaXMuSCl0aGlzLkguaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPWVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKSk7ZS52dHBfZ3RtRXZlbnRJZD1hLmlkO2EucHJpb3JpdHlJZCYmKGUudnRwX2d0bVByaW9yaXR5SWQ9YS5wcmlvcml0eUlkKTt2YXIgZz1kPVJ6KGUse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjIsbmFtZTpjfSk7ZVtHZi5aa10mJnR5cGVvZiBnPT09InN0cmluZyImJihnPWVbR2YuWmtdPT09MT9nLnRvTG93ZXJDYXNlKCk6Zy50b1VwcGVyQ2FzZSgpKTtlLmhhc093blByb3BlcnR5KEdmLmFoKSYmKGc9WWYoMTgpP2VbR2YuYWhdPT09MT8KVmYoZywiUEVSSU9EIik6ZVtHZi5haF09PT0yP1ZmKGcsIkNPTU1BIik6VmYoZywiQVVUT01BVElDIik6ZVtHZi5haF09PT0xP1ZmKGcsIlBFUklPRCIpOlZmKGcsIkNPTU1BIikpO2UuaGFzT3duUHJvcGVydHkoR2YuYmwpJiZnPT09bnVsbCYmKGc9ZVtHZi5ibF0pO2UuaGFzT3duUHJvcGVydHkoR2YuaWwpJiZnPT09dm9pZCAwJiYoZz1lW0dmLmlsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5lcCkmJihnPUpiKGcpKTtlLmhhc093blByb3BlcnR5KEdmLmZsKSYmZz09PSEwJiYoZz1lW0dmLmZsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5hbCkmJmc9PT0hMSYmKGc9ZVtHZi5hbF0pO2Q9Z31jYXRjaChoKXthLmxvZ01hY3JvRXJyb3ImJmEubG9nTWFjcm9FcnJvcihoLE51bWJlcih0aGlzLmluZGV4KSxjKSxkPSExfWJbdGhpcy5pbmRleF09ITE7cmV0dXJuIGR9fTtVei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgVno9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSD1hO3RoaXMudGFncz1iO3RoaXMubWFjcm9zPWN9O1Z6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3RyeXtmb3IodmFyIGM9e30sZD1tKE9iamVjdC5rZXlzKHRoaXMuSCkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2NbZl09Zj09PSJmdW5jdGlvbiI/dGhpcy5IW2ZdOmVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKX1yZXR1cm4gY2woYyl9Y2F0Y2goZyl7SlNPTi5zdHJpbmdpZnkodGhpcy5IKX1yZXR1cm4gMn07VnoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFd6PWZ1bmN0aW9uKGEsYil7dGhpcy5pbmRleD1iO3RoaXMuTj1bXTt0aGlzLlI9W107dGhpcy5LPVtdO3RoaXMuSD1bXTt0aGlzLm5hbWU9IiI7Zm9yKHZhciBjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPW0oZC52YWx1ZSksZj1lLm5leHQoKS52YWx1ZSxnPXlhKGUpLGg9ZixsPWc7aD09PSJpZiI/dGhpcy5OPWw6aD09PSJ1bmxlc3MiP3RoaXMuUj1sOmg9PT0iYWRkIj90aGlzLks9bDpoPT09ImJsb2NrIj90aGlzLkg9bDpoPT09InJ1bGVOYW1lIiYmKHRoaXMubmFtZT1sWzBdKX19OwpXei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1Yeih0aGlzLGIpLGQ9W10sZT1bXTtjPyhkLnB1c2guYXBwbHkoZCx3KHRoaXMuSykpLGUucHVzaC5hcHBseShlLHcodGhpcy5IKSkpOmM9PT1udWxsJiZlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpO3JldHVybntmaXJpbmdUYWdzOmQsYmxvY2tpbmdUYWdzOmV9fTsKdmFyIFh6PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW0oYS5OKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9YihkLnZhbHVlKTtpZihlPT09MClyZXR1cm4hMTtpZihlPT09MilyZXR1cm4gbnVsbH1mb3IodmFyIGY9bShhLlIpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1iKGcudmFsdWUpO2lmKGg9PT0yKXJldHVybiBudWxsO2lmKGg9PT0xKXJldHVybiExfXJldHVybiEwfTtXei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBZej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLklhPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5PPVN0cmluZyh0aGlzLklhW0dmLlliXSk7dGhpcy5uYW1lPVN0cmluZyh0aGlzLklhW0dmLlJtXXx8IiIpO3RoaXMudGFnSWQ9TnVtYmVyKHRoaXMuSWFbR2YueWpdKX07Cll6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwP3t9OmM7dmFyIGQsZT1jO2U9ZT09PXZvaWQgMD97fTplO3ZhciBmPXt9LGc7Zm9yKGcgaW4gdGhpcy5JYSl0aGlzLklhLmhhc093blByb3BlcnR5KGcpJiYoZltnXT1lbCh0aGlzLklhW2ddLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKSk7ZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsZSk7ZC52dHBfZ3RtVGFnSWQ9dGhpcy50YWdJZDt0aGlzLklhW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO1J6KGQse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjEsbmFtZTp0aGlzLm5hbWV9KX07WXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5JYSl9Owp2YXIgWno9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLnRuXSlyZXR1cm4gZWwoYS5JYVtHZi50bl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSwkej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YuRG5dKXJldHVybiBlbChhLklhW0dmLkRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LGFBPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5JYVtHZi5jcF07aWYoYylyZXR1cm4gZWwoYyxiLGEudGFncyxhLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbihhKXtyZXR1cm4gZWwodGhpcy5JYVtHZi5NRVRBREFUQV0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBiQT1mdW5jdGlvbigpe3RoaXMubWFjcm9zPVtdO3RoaXMucnVsZXM9W107dGhpcy5wcmVkaWNhdGVzPVtdO3RoaXMudGFncz1bXTt0aGlzLnZrPVtdfTtiQS5wcm90b3R5cGUuZ2V0UnVsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ydWxlc307dmFyIGNBPW5ldyBiQTtmdW5jdGlvbiBkQShhLGIsYyxkKXt2YXIgZT1XYygpLGY7aWYoZT09PTEpYTp7dmFyIGc9RSgzKTtnPWcudG9Mb3dlckNhc2UoKTtmb3IodmFyIGg9Imh0dHBzOi8vIitnLGw9Imh0dHA6Ly8iK2csbj0xLHA9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikscT0wO3E8cC5sZW5ndGgmJnE8MTAwO3ErKyl7dmFyIHI9cFtxXS5zcmM7aWYocil7cj1yLnRvTG93ZXJDYXNlKCk7aWYoci5pbmRleE9mKGwpPT09MCl7Zj0zO2JyZWFrIGF9bj09PTEmJnIuaW5kZXhPZihoKT09PTAmJihuPTIpfX1mPW59ZWxzZSBmPWU7cmV0dXJuKGY9PT0yfHxkfHwiaHR0cDoiIT09QS5sb2NhdGlvbi5wcm90b2NvbD9hOmIpK2N9O3ZhciBlQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEuSylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5LLGQpJiZjLnB1c2goZCsifiIrYS5LW2RdKTt2YXIgZT1bXSxmO2ZvcihmIGluIGEuSClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5ILGYpJiZlLnB1c2goZisifiIrYS5IW2ZdKTtiLnRmJiYoYS5LPXt9LGEuSD17fSk7dmFyIGc9W107Yy5sZW5ndGg+MCYmZy5wdXNoKFsiYmNzIixjLmpvaW4oIi4iKV0pO2UubGVuZ3RoPjAmJmcucHVzaChbImJldCIsZS5qb2luKCIuIildKTtyZXR1cm4gZ30pfSxmQTtmdW5jdGlvbiBnQSgpe2ZBfHwoZkE9bmV3IGVBKX07ZnVuY3Rpb24gaEEoYSxiLGMsZCxlKXtpZighRWsoYSkpe2QubG9hZEV4cGVyaW1lbnRzPXlqKCk7SGsoYSxkLGUpO3ZhciBmPWlBKGEpLGc9ZnVuY3Rpb24oKXtvaygpLmNvbnRhaW5lclthXSYmKG9rKCkuY29udGFpbmVyW2FdLnN0YXRlPTMpO2pBKCl9LGg9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgbD1YaigpLG49bCsiLyIra0EoZixhKTtabihoLG4sdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxuLGwrIi8iK2YsaCxnKX0pfWVsc2V7dmFyIHA9U2IoYSwiR1RNLSIpLHE9ZGsoKSxyPWM/Ii9ndGFnL2pzIjoiL2d0bS5qcyIsdD1tQShiLHIrZixhKTtpZighdCl7dmFyIHU9RSgzKStyO3EmJktjJiZwJiYodT1LYy5yZXBsYWNlKC9eKD86aHR0cHM/OlwvXC8pPy9pLCIiKS5zcGxpdCgvWz8jXS8pWzBdKTt0PWRBKCJodHRwczovLyIsImh0dHA6Ly8iLHUrZil9Wm4oaCx0LHZvaWQgMCxnKX19fQpmdW5jdGlvbiBqQSgpe0trKCl8fEdiKExrKCksZnVuY3Rpb24oYSxiKXtuQShhLGIudHJhbnNwb3J0VXJsLGIuY29udGV4dCk7UCg5Mil9KX1mdW5jdGlvbiBuQShhLGIsYyxkKXtpZighR2soYSkpaWYoYy5sb2FkRXhwZXJpbWVudHN8fChjLmxvYWRFeHBlcmltZW50cz15aigpKSxLaygpKUprKGEsYixjLGQpO2Vsc2V7SWsoYSxjLGQpO3ZhciBlPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGY9WGooKSxnPSJndGQiK2lBKGEsITApLGg9ZisiLyIra0EoZyxhKTtabihlLGgsdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxoLGYrIi8iK2csZSl9KX1lbHNle3ZhciBsPSIvZ3RhZy9kZXN0aW5hdGlvbiIraUEoYSwhMCksbj1tQShiLGwsYSk7bnx8KG49ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsRSgzKStsKSk7Wm4oZSxuKX19fQpmdW5jdGlvbiBsQShhLGIsYyxkLGUpe2lmKE0oNDEzKSl7Z0EoKTt2YXIgZj1mQTtpZihmbi5OKXt2YXIgZz1BLnBlcmZvcm1hbmNlLGg9LTE7aWYoZyYmZy5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbD1SaihiKS5ocmVmLG49Zy5nZXRFbnRyaWVzQnlOYW1lKGwpLnBvcCgpO2lmKCFuKWZvcih2YXIgcD1nLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj1wW3FdO2lmKHIubmFtZSYmci5uYW1lLmluZGV4T2YoYikhPT0tMSl7bj1yO2JyZWFrfX1uJiZuLnJlc3BvbnNlU3RhdHVzIT09dm9pZCAwJiYoaD1uLnJlc3BvbnNlU3RhdHVzKX1mLktbYV09aH1QKDE5MCk7dmFyIHQ9bm0oam0uYmEua2opfHx7fTt0W2FdPSEwO21tKGptLmJhLmtqLHQpO3ZhciB1PWMrKGMuaW5kZXhPZigiPyIpPT09LTE/Ij9mPTEiOiImZj0xIik7ZT9abihkLHUsdm9pZCAwLGUpOlpuKGQsdSl9ZWxzZSBlJiZlKCl9CmZ1bmN0aW9uIGlBKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Ij9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChhKSxkPUUoMTkpO2QhPT0iZGF0YUxheWVyIiYmKGMrPSImbD0iK2QpO3ZhciBlPVNiKGEsIkdUTS0iKTtpZighZXx8YiljKz0iJmN4PWMiO2UmJklmKDYyKSYmKGMrPSImZ29vZ2xlX29ubHk9dHJ1ZSIpO3ZhciBmPWMsZyxoPXtEbzpKZigxNSksSW86RSgxNCl9O2c9Q2YoaCk7Yz1mKygiJmd0bT0iK2cpO2RrKCkmJihjKz0iJnNpZ249IitBai5xaik7dmFyIGw9YyxuPUpmKDU0KTtpZihuPT09MSl7bCs9IiZmcHM9ZmMiO3ZhciBwPUUoNjApO3AmJihsKz0iJmdkZXY9IitwKX1lbHNlIG49PT0yJiYobCs9IiZmcHM9ZmUiKTtyZXR1cm4gbH0KZnVuY3Rpb24ga0EoYSxiKXtpZighTSg0MTMpfHwhWGooKSlyZXR1cm4gYTt2YXIgYz1FKDU4KTtpZighYylyZXR1cm4gUCgxODIpLGE7dHJ5e3ZhciBkPU5iKCksZT1FZihhLGMpLGY9TmIoKS1kO2dBKCk7dmFyIGc9ZkE7Zm4uTiYmKGcuSFtiXT1mKTtyZXR1cm4gZX1jYXRjaChoKXtyZXR1cm4gUCgxODMpLGF9fWZ1bmN0aW9uIG1BKGEsYixjKXtpZihhaygpJiZhKXt2YXIgZD1FKDU4KSxlPVhqKCk7aWYoZCYmZSl0cnl7dmFyIGY9TmIoKTtiPWUrIi8iK0VmKGIsZCk7dmFyIGc9TmIoKS1mO2dBKCk7dmFyIGg9ZkE7Zm4uTiYmKGguSFtjXT1nKX1jYXRjaChsKXtQKDE4Myl9cmV0dXJuIFlqKGEsYil9fTt2YXIgcEE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz1uZXcgRmI7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9e25hbWU6RSgxOSksc2V0OmZ1bmN0aW9uKGIsYyl7RWQoVmIoYixjKSxhLkgpO29BKGEpfSxnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuZ2V0KGIsMil9LHJlc2V0OmZ1bmN0aW9uKCl7YS5LPW5ldyBGYjthLkg9e307b0EoYSl9fX07cEEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3JldHVybiBiIT0yP3RoaXMuSy5nZXQoYSk6cUEodGhpcyxhKX07dmFyIHFBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLnNwbGl0KCIuIik7Yz1jfHxbXTtmb3IodmFyIGU9YS5ILGY9MDtmPGQubGVuZ3RoO2YrKyl7aWYoZT09PW51bGwpcmV0dXJuITE7aWYoZT09PXZvaWQgMClicmVhaztlPWVbZFtmXV07aWYoYy5pbmRleE9mKGUpIT09LTEpcmV0dXJufXJldHVybiBlfTsKcEEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTi5oYXNPd25Qcm9wZXJ0eShhKXx8KHRoaXMuSy5zZXQoYSxiKSxFZChWYihhLGIpLHRoaXMuSCksb0EodGhpcykpfTt2YXIgc0E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9WyJndG0uYWxsb3dsaXN0IiwiZ3RtLmJsb2NrbGlzdCIsImd0bS53aGl0ZWxpc3QiLCJndG0uYmxhY2tsaXN0IiwidGFnVHlwZUJsYWNrbGlzdCJdLGI9ckEsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9Yi5nZXQoZCwxKTtpZihBcnJheS5pc0FycmF5KGUpfHxDZChlKSllPUVkKGUsbnVsbCk7Yi5OW2RdPWV9fSxvQT1mdW5jdGlvbihhLGIpe0diKGEuTixmdW5jdGlvbihjLGQpe2EuSy5zZXQoYyxkKTtFZChWYihjKSxhLkgpO0VkKFZiKGMsZCksYS5IKTtiJiZkZWxldGUgYS5OW2NdfSl9LHJBPW5ldyBwQSx0QT1yQS5SO2Z1bmN0aW9uIHVBKGEsYil7cmV0dXJuIHJBLmdldChhLGIpfQpmdW5jdGlvbiB2QShhLGIpe3ZhciBjPWI9PT12b2lkIDA/MjpiLGQ9ckEsZSxmPShjPT09dm9pZCAwPzI6YykhPT0xP3FBKGQsYSk6ZC5LLmdldChhKTtBZChmKT09PSJhcnJheSJ8fEFkKGYpPT09Im9iamVjdCI/ZT1FZChmLG51bGwpOmU9ZjtyZXR1cm4gZX07dmFyIHdBPW5ldyBSZWdFeHAoL14oLipcLik/KGdvb2dsZXx5b3V0dWJlfGJsb2dnZXJ8d2l0aGdvb2dsZSkoXC5jb20/KT8oXC5bYS16XXsyfSk/XC4/JC8pLHhBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbIm5vbkdvb2dsZVBpeGVscyJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlUGl4ZWxzOltdLG5vbkdvb2dsZVNjcmlwdHM6WyJub25Hb29nbGVQaXhlbHMiXSxub25Hb29nbGVJZnJhbWVzOlsibm9uR29vZ2xlUGl4ZWxzIl19LHlBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbImN1c3RvbVNjcmlwdHMiLAoiaHRtbCJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiXSxub25Hb29nbGVQaXhlbHM6WyJjdXN0b21QaXhlbHMiLCJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlU2NyaXB0czpbImN1c3RvbVNjcmlwdHMiLCJodG1sIl0sbm9uR29vZ2xlSWZyYW1lczpbImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyJdfSx6QT0iZ29vZ2xlIGN1c3RvbVBpeGVscyBjdXN0b21TY3JpcHRzIGh0bWwgbm9uR29vZ2xlUGl4ZWxzIG5vbkdvb2dsZVNjcmlwdHMgbm9uR29vZ2xlSWZyYW1lcyIuc3BsaXQoIiAiKTsKZnVuY3Rpb24gQUEoKXt2YXIgYT11QSgiZ3RtLmFsbG93bGlzdCIpfHx1QSgiZ3RtLndoaXRlbGlzdCIpO2EmJlAoOSk7SWYoNjIpJiYoYT12b2lkIDApO0JBKCkmJihJZig2Mik/UCgxMTYpOihQKDExNyksSWYoNDgpJiYoYT1bXSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdUTSBibG9ja2VkLiBTZWUgZ28vMTM2ODc3MjguIikpKSk7dmFyIGI9YSYmUmIoS2IoYSkseEEpLGM9dUEoImd0bS5ibG9ja2xpc3QiKXx8dUEoImd0bS5ibGFja2xpc3QiKTtjfHwoYz11QSgidGFnVHlwZUJsYWNrbGlzdCIpKSYmUCgzKTtjP1AoOCk6Yz1bXTtCQSgpJiYoYz1LYihjKSxjLnB1c2goIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJzYW5kYm94ZWRTY3JpcHRzIikpO0tiKGMpLmluZGV4T2YoImdvb2dsZSIpPj0wJiZQKDIpO3ZhciBkPWMmJlJiKEtiKGMpLHlBKSxlPXt9O3JldHVybiBmdW5jdGlvbihmKXt2YXIgZz1mJiYKZltHZi5ZYl07aWYoIWd8fHR5cGVvZiBnIT09InN0cmluZyIpcmV0dXJuITA7Zz1nLnJlcGxhY2UoL15fKi8sIiIpO2lmKGVbZ10hPT12b2lkIDApcmV0dXJuIGVbZ107dmFyIGg9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ddfHxbXSxsPSEwO2EmJihsPWwmJkNBKGcsaCxiKSk7dmFyIG49ITE7YyYmKG49REEoZyxoLGQpKTt2YXIgcD0hbHx8bjshcCYmKGguaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpPT09LTF8fGImJmIuaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpIT09LTE/MDpFYihkLHpBKSkmJihwPSEwKTtyZXR1cm4gZVtnXT1wfX1mdW5jdGlvbiBDQShhLGIsYyl7aWYoYy5pbmRleE9mKGEpPDApaWYoYiYmYi5sZW5ndGg+MClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7aWYoYy5pbmRleE9mKGJbZF0pPDApcmV0dXJuIFAoMTEpLCExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9CmZ1bmN0aW9uIERBKGEsYixjKXt2YXIgZD1jLmluZGV4T2YoYSk+PTA7aWYoZClyZXR1cm4gZDt2YXIgZT1FYihjLGJ8fFtdKTtlJiZQKDEwKTtyZXR1cm4gZX1mdW5jdGlvbiBCQSgpe3JldHVybiB3QS50ZXN0KEEubG9jYXRpb24mJkEubG9jYXRpb24uaG9zdG5hbWUpfTtmdW5jdGlvbiBFQShhKXtmb3IodmFyIGI9W10sYz1bXSxkPUZBKGEpLGU9bShjQS5nZXRSdWxlcygpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUuZXZhbHVhdGUoYSxkKSxoPWcuZmlyaW5nVGFncyxsPWcuYmxvY2tpbmdUYWdzLG49MDtuPGgubGVuZ3RoO24rKyliW2hbbl1dPSEwO2Zvcih2YXIgcD0wO3A8bC5sZW5ndGg7cCsrKWNbbFtwXV09ITB9Zm9yKHZhciBxPVtdLHI9MDtyPGNBLnRhZ3MubGVuZ3RoO3IrKyliW3JdJiYhY1tyXSYmKHFbcl09ITApO3JldHVybiBxfWZ1bmN0aW9uIEZBKGEpe3ZhciBiPVtdO3JldHVybiBmdW5jdGlvbihjKXtiW2NdPT09dm9pZCAwJiYoYltjXT1jQS5wcmVkaWNhdGVzW2NdLmV2YWx1YXRlKGEsW10pKTtyZXR1cm4gYltjXX19O3ZhciBHQT1mdW5jdGlvbigpe3RoaXMuSz0wO3RoaXMuSD17fX07R0EucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0rK3RoaXMuSzt0aGlzLkhbYV09dGhpcy5IW2FdfHx7fTt0aGlzLkhbYV1bU3RyaW5nKGQpXT17bGlzdGVuZXI6YixyZjpjfTtyZXR1cm4gZH07R0EucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdLGQ9U3RyaW5nKGIpO2lmKCFjfHwhY1tkXSlyZXR1cm4hMTtkZWxldGUgY1tkXTtyZXR1cm4hMH07dmFyIElBPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107R2IoSEEuSFthXSxmdW5jdGlvbihkLGUpe2MuaW5kZXhPZihlLmxpc3RlbmVyKTwwJiYoZS5yZj09PXZvaWQgMHx8Yi5pbmRleE9mKGUucmYpPj0wKSYmYy5wdXNoKGUubGlzdGVuZXIpfSk7cmV0dXJuIGN9O2Z1bmN0aW9uIEpBKGEsYixjKXtyZXR1cm57ZW50aXR5VHlwZTphLGluZGV4SW5PcmlnaW5Db250YWluZXI6YixuYW1lSW5PcmlnaW5Db250YWluZXI6YyxvcmlnaW5Db250YWluZXJJZDpFKDUpLG9yaWdpbkNJZDp2aygpfX07ZnVuY3Rpb24gS0EoYSxiKXtpZihkYXRhLmVudGl0aWVzKXt2YXIgYz1kYXRhLmVudGl0aWVzW2FdO2lmKGMpcmV0dXJuIGNbYl19fTt2YXIgTUE9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9ITE7dGhpcy5SPVtdO3RoaXMuZXZlbnREYXRhPXt0YWdzOltdfTt0aGlzLlo9ITE7dGhpcy5LPXRoaXMuTj0wO0xBKHRoaXMsYSxiKX0sTkE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoQ2ouaGFzT3duUHJvcGVydHkoYil8fGI9PT0iX196b25lIilyZXR1cm4tMTt2YXIgZT17fTtDZChkKSYmKGU9RWQoZCxlKSk7ZS5pZD1jO2Uuc3RhdHVzPSJ0aW1lb3V0IjtyZXR1cm4gYS5ldmVudERhdGEudGFncy5wdXNoKGUpLTF9LE9BPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuZXZlbnREYXRhLnRhZ3NbYl07ZSYmKGUuc3RhdHVzPWMsZS5leGVjdXRpb25UaW1lPWQpfSxQQT1mdW5jdGlvbihhKXtpZighYS5IKXtmb3IodmFyIGI9YS5SLGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdKCk7YS5IPSEwO2EuUi5sZW5ndGg9MH19LExBPWZ1bmN0aW9uKGEsYixjKXtiIT09dm9pZCAwJiZhLndnKGIpO2MmJkEuc2V0VGltZW91dChmdW5jdGlvbigpe1BBKGEpfSwKTnVtYmVyKGMpKX07TUEucHJvdG90eXBlLndnPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1QYihmdW5jdGlvbigpe2JkKGZ1bmN0aW9uKCl7YShFKDUpLGIuZXZlbnREYXRhKX0pfSk7dGhpcy5IP2MoKTp0aGlzLlIucHVzaChjKX07dmFyIFFBPWZ1bmN0aW9uKGEpe2EuTisrO3JldHVybiBQYihmdW5jdGlvbigpe2EuSysrO2EuWiYmYS5LPj1hLk4mJlBBKGEpfSl9LFJBPWZ1bmN0aW9uKGEpe2EuWj0hMDthLks+PWEuTiYmUEEoYSl9O2Z1bmN0aW9uIFNBKCl7cmV0dXJuIEFbVEEoKV19CmZ1bmN0aW9uIFRBKCl7cmV0dXJuIEEuR29vZ2xlQW5hbHl0aWNzT2JqZWN0fHwiZ2EifXZhciBXQT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e319O2Z1bmN0aW9uIFhBKCl7YTp7dmFyIGE9RSg1KTt9fQpmdW5jdGlvbiBZQShhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVNBKCksZD1jJiZjLmdldEJ5TmFtZSYmYy5nZXRCeU5hbWUoYSk7aWYoZCl7dmFyIGU9ZC5nZXQoInNlbmRIaXRUYXNrIik7ZC5zZXQoInNlbmRIaXRUYXNrIixmdW5jdGlvbihmKXt2YXIgZz1mLmdldCgiaGl0UGF5bG9hZCIpLGg9Zi5nZXQoImhpdENhbGxiYWNrIiksbD1nLmluZGV4T2YoIiZ0aWQ9IitiKTwwO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZy5yZXBsYWNlKC8mdGlkPVVBLVswLTldKy1bMC05XSsvLCImdGlkPSIrYiksITApLGYuc2V0KCJoaXRDYWxsYmFjayIsdm9pZCAwLCEwKSk7ZShmKTtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcsITApLGYuc2V0KCJoaXRDYWxsYmFjayIsaCwhMCksZi5zZXQoIl94XzE5Iix2b2lkIDAsITApLGUoZikpfSl9fX07dmFyIGFCPVsiZXMiLCIxIl0sYkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZXZlbnREYXRhPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYzt2YXIgZD1iLmV2ZW50SWQsZT1iLnRmO2lmKGEuZXZlbnREYXRhW2RdKXt2YXIgZj1bXTthLkhbZF18fGYucHVzaChhQik7Zi5wdXNoLmFwcGx5KGYsdyhhLmV2ZW50RGF0YVtkXSkpO2UmJihhLkhbZF09ITApO2M9Zn1lbHNlIGM9W107cmV0dXJuIGN9KX0sY0I7ZnVuY3Rpb24gZEIoYSxiKXt2YXIgYztpZigoYz1jQikhPW51bGwmJmZuLk4pe3ZhciBkPWMuZXZlbnREYXRhLGU7ZT1iLm1hdGNoKC9eKGd0bXxndGFnKVwuLyk/ZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIqIjtkW2FdPVtbImUiLGVdLFsiZWlkIixTdHJpbmcoYSldXTtneigpO2V6KGEpfX07dmFyIGVCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbInRyIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbInRpIixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LGZCOwpmdW5jdGlvbiBnQihhLGIsYyl7ZkJ8fChmQj1uZXcgZUIpO3ZhciBkPWZCO2lmKGZuLk4mJmIpe3ZhciBlPWRuKGIpO2QuSFthXT1kLkhbYV18fFtdO2QuSFthXS5wdXNoKGMrZSk7dmFyIGY9YltHZi5ZYl07aWYoIWYpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBnPShReltmXT8iMSI6IjIiKStlO2QuS1thXT1kLktbYV18fFtdO2QuS1thXS5wdXNoKGcpO2d6KCk7ZXooYSl9fTtmdW5jdGlvbiBoQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigwLGEsYixjKX1mdW5jdGlvbiBqQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDAsYSl9ZnVuY3Rpb24ga0IoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMSxhLGIsYyl9ZnVuY3Rpb24gbEIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygxLGEpfXZhciBtQj1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuSD17fX0sbkI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRhaW5lcltiXTtjfHwoYz17X2VudGl0eTp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119LF9ldmVudDp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119fSxhLmNvbnRhaW5lcltiXT1jKTtyZXR1cm4gY307Cm1CLnByb3RvdHlwZS5hZGRSZXN0cmljdGlvbj1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZighZHx8IXRoaXMuSFtiXSl7dmFyIGU9bkIodGhpcyxiKTthPT09MD9kP2UuX2VudGl0eS5leHRlcm5hbC5wdXNoKGMpOmUuX2VudGl0eS5pbnRlcm5hbC5wdXNoKGMpOmE9PT0xJiYoZD9lLl9ldmVudC5leHRlcm5hbC5wdXNoKGMpOmUuX2V2ZW50LmludGVybmFsLnB1c2goYykpfX07Cm1CLnByb3RvdHlwZS5nZXRSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpO2lmKGE9PT0wKXt2YXIgZCxlO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihlPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXSkpfWlmKGE9PT0xKXt2YXIgZixnO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZj1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmYuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGc9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpnLmV4dGVybmFsKXx8W10pKX1yZXR1cm5bXX07Cm1CLnByb3RvdHlwZS5nZXRFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYiksZCxlO3JldHVybiBhPT09MD8oYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5leHRlcm5hbCl8fFtdOihjPT1udWxsP3ZvaWQgMDooZT1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXX07bUIucHJvdG90eXBlLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEpe3ZhciBiPW5CKHRoaXMsYSk7Yi5fZXZlbnQmJihiLl9ldmVudC5leHRlcm5hbD1bXSk7Yi5fZW50aXR5JiYoYi5fZW50aXR5LmV4dGVybmFsPVtdKTt0aGlzLkhbYV09ITB9O2Z1bmN0aW9uIGlCKCl7cmV0dXJuIGtqKCJyIixmdW5jdGlvbigpe3JldHVybiBuZXcgbUJ9KX07ZnVuY3Rpb24gb0IoYSxiLGMsZCl7dmFyIGU9Y0EudGFnc1thXSxmPXBCKGEsYixjLGQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBnPVp6KGUsYyk7aWYoZyYmZy5sZW5ndGgpe3ZhciBoPWdbMF07Zj1vQihoLmluZGV4LHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6aC5ibz09PTE/Yi50ZXJtaW5hdGU6Zix0ZXJtaW5hdGU6Yi50ZXJtaW5hdGV9LGMsZCl9cmV0dXJuIGZ9CmZ1bmN0aW9uIHBCKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXtmdW5jdGlvbiB5KCl7aW0oMyk7dmFyIFM9TmIoKS1OO0pBKDEsYSxmLmdldE5hbWUoKSk7Z0IoYy5pZCxnLCI3Iik7T0EoYy5sZCxELCJleGNlcHRpb24iLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnVqKTtJfHwoST0hMCxsKCkpfWlmKGYuSWFbR2YuT3FdKWwoKTtlbHNle3ZhciB6PWFBKGYsYyk7aWYoeiE9bnVsbClmb3IodmFyIEM9MDtDPHoubGVuZ3RoO0MrKylpZighWG8oeltDXSkpe2woKTtyZXR1cm59dmFyIEQ9TkEoYy5sZCxmLk8sZi50YWdJZCxmLmdldE1ldGFkYXRhKGMpKSxJPSExLEc9e3Z0cF9ndG1PblN1Y2Nlc3M6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI1Iik7T0EoYy5sZCxELCJzdWNjZXNzIixTKTtmbi5IJiZGeihjLGcsSXkuWC53aik7aCgpfX0sdnRwX2d0bU9uRmFpbHVyZTpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjYiKTsKT0EoYy5sZCxELCJmYWlsdXJlIixTKTtmbi5IJiZGeihjLGcsSXkuWC52aik7bCgpfX19O0cudnRwX2d0bUV2ZW50SWQ9Yy5pZDtjLnByaW9yaXR5SWQmJihHLnZ0cF9ndG1Qcmlvcml0eUlkPWMucHJpb3JpdHlJZCk7Z0IoYy5pZCxnLCIxIik7Zm4uSCYmRXooYyxnKTt2YXIgTj1OYigpO3RyeXtmLmV2YWx1YXRlKGMsZCxHKX1jYXRjaChTKXt5KFMpfWZuLkgmJkZ6KGMsZyxJeS5YLkNuKX19dmFyIGY9Y0EudGFnc1thXSxnPWYuRmcoKSxoPWIub25TdWNjZXNzLGw9Yi5vbkZhaWx1cmUsbj1iLnRlcm1pbmF0ZTtpZihjLmlzQmxvY2tlZChnKSlyZXR1cm4gbnVsbDt2YXIgcD0keihmLGMpO2lmKHAmJnAubGVuZ3RoKXt2YXIgcT1wWzBdLHI9b0IocS5pbmRleCx7b25TdWNjZXNzOmgsb25GYWlsdXJlOmwsdGVybWluYXRlOm59LGMsZCk7aWYoIXIpcmV0dXJuIG51bGw7aD1yO2w9cS5ibz09PTI/bjpyfWlmKGYuSWFbR2Yua25dfHxmLklhW0dmLlFxXSl7dmFyIHQ9Zi5JYVtHZi5rbl0/CmNBLnZrOmMudmssdT1oLHY9bDtpZighdFthXSl7dmFyIHg9cUIoYSx0LFBiKGUpKTtoPXgub25TdWNjZXNzO2w9eC5vbkZhaWx1cmV9cmV0dXJuIGZ1bmN0aW9uKCl7dFthXSh1LHYpfX1yZXR1cm4gZX1mdW5jdGlvbiBxQihhLGIsYyl7dmFyIGQ9W10sZT1bXTtiW2FdPXJCKGQsZSxjKTtyZXR1cm57b25TdWNjZXNzOmZ1bmN0aW9uKCl7YlthXT1zQjtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKylkW2ZdKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2JbYV09dEI7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSgpfX19ZnVuY3Rpb24gckIoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkLGUpe2EucHVzaChkKTtiLnB1c2goZSk7YygpfX1mdW5jdGlvbiBzQihhKXthKCl9ZnVuY3Rpb24gdEIoYSxiKXtiKCl9O3ZhciB3Qj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxjQS50YWdzLmxlbmd0aDtkKyspaWYoYVtkXSl7dmFyIGU9Y0EudGFnc1tkXTt2YXIgZj1RQShiLmxkKTt0cnl7dmFyIGc9b0IoZCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmYsdGVybWluYXRlOmZ9LGIsZCk7aWYoZyl7dmFyIGg9UXpbZS5PXTtjLnB1c2goe05vOmQscHJpb3JpdHlPdmVycmlkZTooaD9oLnByaW9yaXR5T3ZlcnJpZGV8fDA6MCl8fEtBKGUuTywxKXx8MCxleGVjdXRlOmd9KX1lbHNlIHVCKGQsYiksZigpfWNhdGNoKG4pe2YoKX19Yy5zb3J0KHZCKTtmb3IodmFyIGw9MDtsPGMubGVuZ3RoO2wrKyljW2xdLmV4ZWN1dGUoKTtyZXR1cm4gYy5sZW5ndGg+MH07CmZ1bmN0aW9uIHhCKGEsYil7aWYoIUhBKXJldHVybiExO3ZhciBjPWFbImd0bS50cmlnZ2VycyJdJiZTdHJpbmcoYVsiZ3RtLnRyaWdnZXJzIl0pLGQ9SUEoYS5ldmVudCxjP1N0cmluZyhjKS5zcGxpdCgiLCIpOltdKTtpZighZC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPVFBKGIpO3RyeXtkW2VdKGEsZil9Y2F0Y2goZyl7ZigpfX1yZXR1cm4hMH1mdW5jdGlvbiB2QihhLGIpe3ZhciBjLGQ9Yi5wcmlvcml0eU92ZXJyaWRlLGU9YS5wcmlvcml0eU92ZXJyaWRlO2M9ZD5lPzE6ZDxlPy0xOjA7dmFyIGY7aWYoYyE9PTApZj1jO2Vsc2V7dmFyIGc9YS5ObyxoPWIuTm87Zj1nPmg/MTpnPGg/LTE6MH1yZXR1cm4gZn0KZnVuY3Rpb24gdUIoYSxiKXtpZihmbi5OKXt2YXIgYz1mdW5jdGlvbihkKXt2YXIgZT1iLmlzQmxvY2tlZChjQS50YWdzW2RdLkZnKCkpPyIzIjoiNCIsZj1aeihjQS50YWdzW2RdLGIpO2YmJmYubGVuZ3RoJiZjKGZbMF0uaW5kZXgpO2dCKGIuaWQsY0EudGFnc1tkXS5GZygpLGUpO3ZhciBnPSR6KGNBLnRhZ3NbZF0sYik7ZyYmZy5sZW5ndGgmJmMoZ1swXS5pbmRleCl9O2MoYSl9fXZhciBIQTtmdW5jdGlvbiB5Qigpe0hBfHwoSEE9bmV3IEdBKTtyZXR1cm4gSEF9CmZ1bmN0aW9uIHpCKGEpe3ZhciBiPWFbImd0bS51bmlxdWVFdmVudElkIl0sYz1hWyJndG0ucHJpb3JpdHlJZCJdLGQ9YVsiZ3RtLnByaW9yaXR5UXVldWUiXSxlPWEuZXZlbnQ7Zm4uSCYmdnooYixlKTtpZihlPT09Imd0bS5qcyIpe2lmKCRrKDEzKSlyZXR1cm4hMTtaaygxMywhMCl9dmFyIGY9ITEsZz1sQigpLGg9RWQoYSxudWxsKTtpZighZy5ldmVyeShmdW5jdGlvbih1KXtyZXR1cm4gdSh7b3JpZ2luYWxFdmVudERhdGE6aH0pfSkpe2lmKGUhPT0iZ3RtLmpzIiYmZSE9PSJndG0uaW5pdCImJmUhPT0iZ3RtLmluaXRfY29uc2VudCIpcmV0dXJuITE7Zj0hMH1kQihiLGUpO3ZhciBsPWEuZXZlbnRDYWxsYmFjayxuPWEuZXZlbnRUaW1lb3V0LHA9e2lkOmIscHJpb3JpdHlJZDpjLHByaW9yaXR5UXVldWU6ZCxuYW1lOmUsaXNCbG9ja2VkOkFCKGgsZiksdms6W10sbG9nTWFjcm9FcnJvcjpmdW5jdGlvbih1LHYseCl7UCg2KTtpbSg0KTtKQSgyLHYseCl9LGNhY2hlZE1vZGVsVmFsdWVzOkJCKCksCmxkOm5ldyBNQShmdW5jdGlvbigpe2ZuLkgmJnl6KGIsZSk7RnkoNSxlKTtsJiZsLmFwcGx5KGwsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sbiksb3JpZ2luYWxFdmVudERhdGE6aH07Zm4uSCYmQ3oocC5pZCk7dmFyIHE9RUEocCk7Zm4uSCYmRHoocC5pZCk7RnkoMixlKTtjQS5nZXRSdWxlcygpO2YmJihxPUNCKHEpKTtmbi5IJiZ3eihiKTt2YXIgcj13QihxLHApO3ImJkZ5KDQsZSk7dmFyIHQ9eEIoYSxwLmxkKTtSQShwLmxkKTtlIT09Imd0bS5qcyImJmUhPT0iZ3RtLnN5bmMifHxYQSgpO3JldHVybiBEQihxLHIpfHx0fQpmdW5jdGlvbiBCQigpe3ZhciBhPXt9O2EuZXZlbnQ9dkEoImV2ZW50IiwxKTthLmVjb21tZXJjZT12QSgiZWNvbW1lcmNlIiwxKTthLmd0bT12QSgiZ3RtIik7YS5ldmVudE1vZGVsPXZBKCJldmVudE1vZGVsIik7cmV0dXJuIGF9CmZ1bmN0aW9uIEFCKGEsYil7dmFyIGM9QUEoKTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9YyhkKTtpZihlKXJldHVybiEwO3ZhciBmPWQmJmRbR2YuWWJdO2lmKCFmfHx0eXBlb2YgZiE9PSJzdHJpbmciKXJldHVybiEwO2Y9Zi5yZXBsYWNlKC9eXyovLCIiKTt2YXIgZz1qQigpLGg9YTtiJiYoaD1FZChhLG51bGwpLGhbImd0bS51bmlxdWVFdmVudElkIl09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2Zvcih2YXIgbD0hMSxuPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtmXXx8W10scD1tKGcpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlO3RyeXtyKHtlbnRpdHlJZDpmLHNlY3VyaXR5R3JvdXBzOm4sb3JpZ2luYWxFdmVudERhdGE6aH0pfHwobD0hMCl9Y2F0Y2godCl7bD0hMH19cmV0dXJuIGx8fGV9fQpmdW5jdGlvbiBDQihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10pe3ZhciBkPWNBLnRhZ3NbY10uTztpZihCaltkXXx8Y0EudGFnc1tjXS5JYVtHZi5ScV0hPT12b2lkIDB8fEtBKGQsMikpYltjXT0hMH1yZXR1cm4gYn1mdW5jdGlvbiBEQihhLGIpe2lmKCFiKXJldHVybiBiO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmNBLnRhZ3NbY10mJiFDaltjQS50YWdzW2NdLk9dKXJldHVybiEwO3JldHVybiExfTt2YXIgRUI9TmYoNjEsMUUzKSxGQj1OZig2OCwyRTMpLFpvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl07ZnVuY3Rpb24gR0IoYSxiKXtpZihhKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSksZDthIT09Mnx8KChkPUhCKCkpPT1udWxsP3ZvaWQgMDpkLnN0YXR1cykhPT0zfHxiIT09dm9pZCAwJiZiPD1GQnx8KGE9MyxjLmRsPWI/TWF0aC5mbG9vcihiLzFFMyk6dm9pZCAwKTtjLnM9YTtJQihjKX19ZnVuY3Rpb24gSUIoYSl7aWYoYS5zKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBjPXtzdGF0dXM6YS5zLGV4cGlyZXM6RGF0ZS5ub3coKSs4NjRFNX07YS5kbCE9PXZvaWQgMCYmKGMuZGVsYXk9YS5kbCk7a3IoImd0Z19sb2FkX3N0YXR1cyIsYyl9O2JwKGZ1bmN0aW9uKCl7aWYoWW8oKSliKCk7ZWxzZSBmb3IodmFyIGM9UGIoYiksZD1tKFpvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlJbChjLGUudmFsdWUpfSxabyl9fQpmdW5jdGlvbiBKQigpe3ZhciBhPUtCKCEwKTtyZXR1cm4gYT8oTEIoYS5zdGF0dXMsYS5kZWxheSksITEpOiEwfWZ1bmN0aW9uIEtCKGEpe2E9YT09PXZvaWQgMD8hMTphO2lmKGFrKCkpe3ZhciBiPW5yKCJndGdfbG9hZF9zdGF0dXMiKSxjPWIudmFsdWUsZD1hJiZBYihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpJiYoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKTxEYXRlLm5vdygpKzM2RTU7aWYoYi5lcnJvcj09PTAmJkFiKGM9PW51bGw/dm9pZCAwOmMuc3RhdHVzKSYmIWQpe3ZhciBlPXtzdGF0dXM6Yy5zdGF0dXN9OyhjPT1udWxsP3ZvaWQgMDpjLmRlbGF5KSE9PXZvaWQgMCYmKGUuZGVsYXk9Yy5kZWxheSk7cmV0dXJuIGV9cmV0dXJuIEhCKCl9fWZ1bmN0aW9uIExCKGEsYil7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2Mucz1hO2IhPT12b2lkIDAmJihjLmRsPWIpfQpmdW5jdGlvbiBIQigpe3ZhciBhPW1qKCJndGgiKTtpZihhIT1udWxsJiZhLnMpe3ZhciBiPXtzdGF0dXM6YS5zfTthLmRsIT09dm9pZCAwJiYoYi5kZWxheT1hLmRsKTtyZXR1cm4gYn19ZnVuY3Rpb24gTUIoKXt2YXIgYTsoKGE9SEIoKSk9PW51bGw/dm9pZCAwOmEuc3RhdHVzKT09PTEmJkdCKDMpfWZ1bmN0aW9uIE5CKCl7aWYoSkIoKSl7dmFyIGE9RGF0ZS5ub3coKTtuaigiZ3RoIix7bDpmdW5jdGlvbigpe0dCKDIsRGF0ZS5ub3coKS1hKX0sczoxfSk7dmFyIGI9RSg1KSxjPVNiKGIsIkdUTS0iKT8iL2d0bS5qcyI6Ii9ndGFnL2pzIixkPSJodHRwczovLyIrRSgzKStjKyI/aWQ9IitiKyImZ3RnX2hlYWx0aD0xIjtVYyhkLE1CLE1CKTtBLnNldFRpbWVvdXQoTUIsRUIpfX07ZnVuY3Rpb24gT0IoKXt5QigpLmFkZExpc3RlbmVyKCJndG0uaW5pdCIsZnVuY3Rpb24oYSxiKXtaaygyNiwhMCk7TSg1NTYpJiZhaygpJiYhSWYoNDUpJiYoZm8uSFtjby5pYS5aYl09Ym8uTWEuTGgpO2lmKGFrKCkpe3ZhciBjO2M9bG8oY28uaWEuWmIpO2dvKGMpP2lvKGMsTkIpOk5CKCl9dG8oITEsITApO2IoKX0pfTtmdW5jdGlvbiBQQigpe2lmKG1qKCJwc2NkbCIpIT09dm9pZCAwKW5tKGptLmJhLm9pKT09PXZvaWQgMCYmbW0oam0uYmEub2ksbWooInBzY2RsIikpO2Vsc2V7dmFyIGE9ZnVuY3Rpb24oYyl7bmooInBzY2RsIixjKTttbShqbS5iYS5vaSxjKX0sYj1mdW5jdGlvbigpe2EoImVycm9yIil9O3RyeXtIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsPyhhKCJwZW5kaW5nIiksSGMuY29va2llRGVwcmVjYXRpb25MYWJlbC5nZXRWYWx1ZSgpLnRoZW4oYSkuY2F0Y2goYikpOmEoIm5vYXBpIil9Y2F0Y2goYyl7YihjKX19fTt2YXIgUkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMucmVhZHk9ITE7dGhpcy5LPTA7dGhpcy5IPVtdO3ZhciBiPUE7aWYoQi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIiYmIUIuY3JlYXRlRXZlbnRPYmplY3R8fEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vblJlYWR5KCk7ZWxzZXskYyhCLCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTskYyhCLCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTtpZihCLmNyZWF0ZUV2ZW50T2JqZWN0JiZCLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCl7dmFyIGM9ITA7dHJ5e2M9IWIuZnJhbWVFbGVtZW50fWNhdGNoKGQpe31jJiZRQih0aGlzKX0kYyhiLCJsb2FkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KX19O1JCLnByb3RvdHlwZS5pc1JlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZHl9OwpSQi5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbihhKXtpZighdGhpcy5yZWFkeSl7dmFyIGI9Qi5jcmVhdGVFdmVudE9iamVjdCxjPUIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIsZD1CLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiO2lmKCFhfHxhLnR5cGUhPT0icmVhZHlzdGF0ZWNoYW5nZSJ8fGN8fCFiJiZkKXt0aGlzLnJlYWR5PSEwO2Zvcih2YXIgZT0wO2U8dGhpcy5ILmxlbmd0aDtlKyspYmQodGhpcy5IW2VdKX10aGlzLkgucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz0wO2c8Zi5sZW5ndGg7ZysrKWJkKGZbZ10pO3JldHVybiAwfX19Owp2YXIgUUI9ZnVuY3Rpb24oYSl7aWYoIWEucmVhZHkmJmEuSzwxNDApe2EuSysrO3RyeXt2YXIgYixjOyhjPShiPUIuZG9jdW1lbnRFbGVtZW50KS5kb1Njcm9sbCk9PW51bGx8fGMuY2FsbChiLCJsZWZ0Iik7YS5vblJlYWR5KCl9Y2F0Y2goZCl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgUUIoYSl9LDUwKX19fSxTQjtmdW5jdGlvbiBUQigpe1NCfHwoU0I9bmV3IFJCKX1mdW5jdGlvbiBVQigpe1RCKCk7dmFyIGE7cmV0dXJuKGE9U0IpPT1udWxsP3ZvaWQgMDphLmlzUmVhZHkoKX1mdW5jdGlvbiBWQihhKXtUQigpO3ZhciBiOyhiPVNCKSE9bnVsbCYmKGIucmVhZHk/YmQoYSk6Yi5ILnB1c2goYSkpfTt2YXIgWEI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVdCLGU7aWYoKGU9ZC5IKT09bnVsbHx8IWUuT3Ipe3ZhciBmPU9iamVjdC5rZXlzKGIpLmxlbmd0aD4wPzI6MSxnLGgsbD0oYz09bnVsbD92b2lkIDA6KGg9Yy5vcmlnaW5hdGluZ0VudGl0eSk9PW51bGw/dm9pZCAwOmgub3JpZ2luQ29udGFpbmVySWQpfHwiIjtnPWw/U2IobCwiR1RNLSIpPzM6MjoxO2lmKCFhKWQuSD17dHlwZTpmLHNvdXJjZTpnLHBhcmFtczpifTtlbHNlIGlmKGQuSCl7UCgxODQpO3ZhciBuPSExO2QuSC5zb3VyY2U9PT1nfHxkLkguc291cmNlIT09MyYmZyE9PTN8fChVbSgiaWRjcyIsIjEiKSxuPSEwKTtkLkgudHlwZSE9PTImJmYhPT0yfHxQKDE4Nik7dmFyIHA7aWYocD1kLkgudHlwZT09PTImJmY9PT0yKWE6e3ZhciBxPWQuSC5wYXJhbXMscj1PYmplY3Qua2V5cyhxKSx0PU9iamVjdC5rZXlzKGIpO2lmKHIubGVuZ3RoIT09dC5sZW5ndGgpcD0hMDtlbHNle2Zvcih2YXIgdT1tKHIpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtpZighYi5oYXNPd25Qcm9wZXJ0eSh4KXx8cVt4XSE9PWJbeF0pe3A9ITA7YnJlYWsgYX19cD0hMX19cCYmKFVtKCJpZGNjIiwiMSIpLG49ITApO24mJih0bygpLGQuSC5Pcj0hMCl9fX0sV0I9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMH07dmFyIFpCPWZ1bmN0aW9uKGEpe3ZhciBiPVlCOyghZm4uS3x8U2IoRSg1KSwiR1RNLSIpPzA6YT09PXZvaWQgMCkmJmIuSD09PTAmJihVbSgibWNjIiwiMSIpLGIuSD0xKX0sWUI9bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDtVbSgibmNjIixmdW5jdGlvbigpe2lmKElmKDQ1KSYmYS5IIT09MilyZXR1cm4iMSJ9KX07dmFyICRCPS9eKD86QVd8REN8R3xHRnxHVHxIQXxNQ3xVQSkkLyxhQz0vXHMvOwpmdW5jdGlvbiBiQyhhLGIpe2lmKHpiKGEpKXthPUxiKGEpO3ZhciBjPWEuaW5kZXhPZigiLSIpO2lmKCEoYzwwKSl7dmFyIGQ9YS5zdWJzdHJpbmcoMCxjKTtpZigkQi50ZXN0KGQpKXt2YXIgZT1hLnN1YnN0cmluZyhjKzEpLGY7aWYoYil7dmFyIGc9ZnVuY3Rpb24obil7dmFyIHA9bi5pbmRleE9mKCIvIik7cmV0dXJuIHA8MD9bbl06W24uc3Vic3RyaW5nKDAscCksbi5zdWJzdHJpbmcocCsxKV19O2Y9ZyhlKTtpZihkPT09IkRDIiYmZi5sZW5ndGg9PT0yKXt2YXIgaD1nKGZbMV0pO2gubGVuZ3RoPT09MiYmKGZbMV09aFswXSxmLnB1c2goaFsxXSkpfX1lbHNle2Y9ZS5zcGxpdCgiLyIpO2Zvcih2YXIgbD0wO2w8Zi5sZW5ndGg7bCsrKWlmKCFmW2xdfHxhQy50ZXN0KGZbbF0pJiYoZCE9PSJBVyJ8fGwhPT0xKSlyZXR1cm59cmV0dXJue2lkOmEscHJlZml4OmQsZGVzdGluYXRpb25JZDpkKyItIitmWzBdLGlkczpmLEpjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWQhPT10aGlzLmRlc3RpbmF0aW9uSWR9fX19fX0KZnVuY3Rpb24gY0MoYSxiKXtmb3IodmFyIGM9e30sZD0wO2Q8YS5sZW5ndGg7KytkKXt2YXIgZT1iQyhhW2RdLGIpO2UmJihjW2UuaWRdPWUpfXZhciBmPVtdLGc7Zm9yKGcgaW4gYylpZihjLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1jW2ddO2gucHJlZml4PT09IkFXIiYmaC5pZHNbZENbMV1dJiZmLnB1c2goaC5kZXN0aW5hdGlvbklkKX1mb3IodmFyIGw9MDtsPGYubGVuZ3RoOysrbClkZWxldGUgY1tmW2xdXTtmb3IodmFyIG49W10scD1tKE9iamVjdC5rZXlzKGMpKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSluLnB1c2goY1txLnZhbHVlXSk7cmV0dXJuIG59dmFyIGVDPXt9LGRDPShlQ1swXT0wLGVDWzFdPTEsZUNbMl09MixlQ1szXT0wLGVDWzRdPTEsZUNbNV09MCxlQ1s2XT0wLGVDWzddPTAsZUMpO3ZhciBmQz17aW5pdGlhbGl6ZWQ6MTEsY29tcGxldGU6MTIsaW50ZXJhY3RpdmU6MTN9LGdDPXt9LGhDPU9iamVjdC5mcmVlemUoKGdDW0YuRC5UZF09ITAsZ0MpKSxpQz1mdW5jdGlvbigpe3RoaXMuUj1OZigzNCw1MDApO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXZvaWQgMH0sakM9ZnVuY3Rpb24oYSxiLGMpe2lmKGMubGVuZ3RoJiZmbi5LKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7dmFyIGU7KGU9YS5OKVtiXSE9bnVsbHx8KGVbYl09W10pO3ZhciBmPWMuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFhLk5bYl0uaW5jbHVkZXMoZyl9KTthLkhbYl0ucHVzaC5hcHBseShhLkhbYl0sdyhmKSk7YS5OW2JdLnB1c2guYXBwbHkoYS5OW2JdLHcoZikpOyFhLksmJmYubGVuZ3RoPjAmJihWbSgidGRjIiwhMCksYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe3RvKCk7YS5IPXt9O2EuSz12b2lkIDB9LGEuUikpfX07CmlDLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztVbSgidGRjIixmdW5jdGlvbigpe2EuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCk7dmFyIGI9W10sYztmb3IoYyBpbiBhLkgpYS5ILmhhc093blByb3BlcnR5KGMpJiZiLnB1c2goYysiKiIrYS5IW2NdLmpvaW4oIi4iKSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiISIpOnZvaWQgMH0sITEpfTsKdmFyIGtDPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPSEwKTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT0hMCk7cmV0dXJuIGN9LGxDPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwP3t9OmQ7ZT1lPT09dm9pZCAwPyIiOmU7aWYoYj09PWMpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24odCx1KXt2YXIgdjtBZCh1KT09PSJvYmplY3QiP3Y9dVt0XTpBZCh1KT09PSJhcnJheSImJih2PXVbdF0pO3JldHVybiB2PT09dm9pZCAwP2hDW3RdOnZ9LGc9a0MoYixjKSxoO2ZvcihoIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShoKSYmaCE9PUYuRC5YYil7dmFyIGw9KGU/ZSsiLiI6IiIpK2gsbj1mKGgsYikscD1mKGgsYykscT1BZChuKT09PSJvYmplY3QifHxBZChuKT09PSJhcnJheSIscj1BZChwKT09PSJvYmplY3QifHxBZChwKT09PSJhcnJheSI7aWYocSYmcilsQyhhLG4scCxkLGwpOwplbHNlIGlmKHF8fHJ8fG4hPT1wKWRbbF09ITB9cmV0dXJuIE9iamVjdC5rZXlzKGQpfSxtQz1uZXcgaUM7dmFyIG5DPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSz1OYigpO3RoaXMuSD1iO3RoaXMuYXJncz1jO3RoaXMubWVzc2FnZUNvbnRleHQ9ZDt0aGlzLnR5cGU9YX0sb0M9ZnVuY3Rpb24oKXt0aGlzLldhPXt9O3RoaXMuaWI9e307dGhpcy5LPXt9O3RoaXMuTj1udWxsO3RoaXMuaGI9e307dGhpcy5IPSExO3RoaXMuc3RhdHVzPTF9O2Z1bmN0aW9uIHBDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJzZXQiLGEpOnFDKCJzZXQiLGEsYil9ZnVuY3Rpb24gckMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoImNvbmZpZyIsYSk6cUMoImNvbmZpZyIsYSxiKX1mdW5jdGlvbiBzQyhhLGIsYyl7Yz1jfHx7fTtjW0YuRC5YYl09YTtyZXR1cm4gcUMoImV2ZW50IixiLGMpfWZ1bmN0aW9uIHFDKCl7cmV0dXJuIGFyZ3VtZW50c307dmFyIHRDPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxsLG4scCxxLHIpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9ZDt0aGlzLldhPWU7dGhpcy5oYj1mO3RoaXMuSGM9Zzt0aGlzLkJnPWg7dGhpcy5pYj1sO3RoaXMuZXZlbnRNZXRhZGF0YT1uO3RoaXMub25TdWNjZXNzPXA7dGhpcy5vbkZhaWx1cmU9cTt0aGlzLmlzR3RtRXZlbnQ9cn0sdUM9ZnVuY3Rpb24oYSl7dmFyIGI9e29uU3VjY2Vzczp4YixvbkZhaWx1cmU6eGJ9O2I9Yj09PXZvaWQgMD97fTpiO3ZhciBjLGQsZSxmLGcsaCxsLG4scCxxLHIsdCx1LHYseCx5LHosQyxELEksRyxOLFMsVyxlYSxqYTtyZXR1cm4gbmV3IHRDKCh2PShjPWIpPT1udWxsP3ZvaWQgMDpjLmV2ZW50SWQpIT1udWxsP3Y6YS5ldmVudElkLCh4PShkPWIpPT1udWxsP3ZvaWQgMDpkLnByaW9yaXR5SWQpIT1udWxsP3g6YS5wcmlvcml0eUlkLCh5PShlPWIpPT1udWxsP3ZvaWQgMDplLnByaW9yaXR5UXVldWUpIT0KbnVsbD95OmEucHJpb3JpdHlRdWV1ZSwoej0oZj1iKT09bnVsbD92b2lkIDA6Zi5FYSkhPW51bGw/ejphLkVhLChDPShnPWIpPT1udWxsP3ZvaWQgMDpnLldhKSE9bnVsbD9DOmEuV2EsKEQ9KGg9Yik9PW51bGw/dm9pZCAwOmguaGIpIT1udWxsP0Q6YS5oYiwoST0obD1iKT09bnVsbD92b2lkIDA6bC5IYykhPW51bGw/STphLkhjLChHPShuPWIpPT1udWxsP3ZvaWQgMDpuLkJnKSE9bnVsbD9HOmEuQmcsKE49KHA9Yik9PW51bGw/dm9pZCAwOnAuaWIpIT1udWxsP046YS5pYiwoUz0ocT1iKT09bnVsbD92b2lkIDA6cS5ldmVudE1ldGFkYXRhKSE9bnVsbD9TOmEuZXZlbnRNZXRhZGF0YSwoVz0ocj1iKT09bnVsbD92b2lkIDA6ci5vblN1Y2Nlc3MpIT1udWxsP1c6YS5vblN1Y2Nlc3MsKGVhPSh0PWIpPT1udWxsP3ZvaWQgMDp0Lm9uRmFpbHVyZSkhPW51bGw/ZWE6YS5vbkZhaWx1cmUsKGphPSh1PWIpPT1udWxsP3ZvaWQgMDp1LmlzR3RtRXZlbnQpIT1udWxsP2phOmEuaXNHdG1FdmVudCl9LAp2Qz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO3N3aXRjaChiKXtjYXNlIDM6Yy5wdXNoKGEuRWEpO2MucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDI6Yy5wdXNoKGEuRWEpO2JyZWFrO2Nhc2UgMTpjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSA0OmMucHVzaChhLkVhKSxjLnB1c2goYS5XYSksYy5wdXNoKGEuaGIpLGMucHVzaChhLkhjKX1yZXR1cm4gY30sTz1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9bSh2QyhhLGQ9PT12b2lkIDA/MzpkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZ1tiXSE9PXZvaWQgMClyZXR1cm4gZ1tiXX1yZXR1cm4gY30sd0M9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9dkMoYSw0KSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZm9yKHZhciBmPU9iamVjdC5rZXlzKGUudmFsdWUpLApnPW0oZiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpYltoLnZhbHVlXT0xO3JldHVybiBPYmplY3Qua2V5cyhiKX07dEMucHJvdG90eXBlLmdldE1lcmdlZFZhbHVlcz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPzM6Yjt2YXIgZD17fSxlPSExLGY9ZnVuY3Rpb24obil7Q2QobikmJkdiKG4sZnVuY3Rpb24ocCxxKXtlPSEwO2RbcF09cX0pfTtjJiZmKGMpO3ZhciBnPXZDKHRoaXMsYik7Zy5yZXZlcnNlKCk7Zm9yKHZhciBoPW0oZyksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpZihsLnZhbHVlW2FdKTtyZXR1cm4gZT9kOnZvaWQgMH07CnZhciB4Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9W0YuRC5LZixGLkQuR2YsRi5ELkhmLEYuRC5JZixGLkQuSmYsRi5ELkxmLEYuRC5NZl0sYz12QyhhLDMpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7Zm9yKHZhciBmPWUudmFsdWUsZz17fSxoPSExLGw9bShiKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtmW3BdIT09dm9pZCAwJiYoZ1twXT1mW3BdLGg9ITApfXZhciBxPWg/Zzp2b2lkIDA7aWYocSlyZXR1cm4gcX1yZXR1cm57fX0seUM9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9e307dGhpcy5XYT17fTt0aGlzLmhiPXt9O3RoaXMuSGM9e307dGhpcy5CZz17fTt0aGlzLmliPXt9O3RoaXMuZXZlbnRNZXRhZGF0YT17fTt0aGlzLmlzR3RtRXZlbnQ9ITE7dGhpcy5vblN1Y2Nlc3M9ZnVuY3Rpb24oKXt9O3RoaXMub25GYWlsdXJlPQpmdW5jdGlvbigpe319LHpDPWZ1bmN0aW9uKGEsYil7YS5FYT1iO3JldHVybiBhfSxBQz1mdW5jdGlvbihhLGIpe2EuV2E9YjtyZXR1cm4gYX0sQkM9ZnVuY3Rpb24oYSxiKXthLmhiPWI7cmV0dXJuIGF9LENDPWZ1bmN0aW9uKGEsYil7YS5IYz1iO3JldHVybiBhfSxEQz1mdW5jdGlvbihhLGIpe2EuQmc9YjtyZXR1cm4gYX0sRUM9ZnVuY3Rpb24oYSxiKXthLmliPWI7cmV0dXJuIGF9LEZDPWZ1bmN0aW9uKGEsYil7YS5ldmVudE1ldGFkYXRhPWJ8fHt9O3JldHVybiBhfSxHQz1mdW5jdGlvbihhLGIpe2Eub25TdWNjZXNzPWI7cmV0dXJuIGF9LEhDPWZ1bmN0aW9uKGEsYil7YS5vbkZhaWx1cmU9YjtyZXR1cm4gYX0sSUM9ZnVuY3Rpb24oYSxiKXthLmlzR3RtRXZlbnQ9YjtyZXR1cm4gYX0sSkM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyB0QyhhLmV2ZW50SWQsYS5wcmlvcml0eUlkLGEucHJpb3JpdHlRdWV1ZSxhLkVhLGEuV2EsYS5oYixhLkhjLGEuQmcsYS5pYixhLmV2ZW50TWV0YWRhdGEsCmEub25TdWNjZXNzLGEub25GYWlsdXJlLGEuaXNHdG1FdmVudCl9O2Z1bmN0aW9uIEtDKGEsYil7R2IoYSxmdW5jdGlvbihjKXt2YXIgZDtpZihkPWMuY2hhckF0KDApPT09Il8iKXt2YXIgZTthOnN3aXRjaChjKXtjYXNlIEYuRC5WYjpjYXNlIEYuRC5SZjpjYXNlIEYuRC5zaDplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWQ9IWV9ZCYmKGImJmIoYyksZGVsZXRlIGFbY10pfSl9O3ZhciBMQz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImVwciIsZi5qb2luKCIuIildKTtkJiZkZWxldGUgYS5IW2NdO3JldHVybiBlfSl9LE5DPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1NQztmbi5OJiZhIT09dm9pZCAwJiYoZC5IW2FdPWQuSFthXXx8W10sZC5IW2FdLnB1c2goYytiKSxneigpLGV6KGEpKX0sTUM7ZnVuY3Rpb24gT0MoKXtNQ3x8KE1DPW5ldyBMQyl9O3ZhciBQQz1mdW5jdGlvbigpe3RoaXMuZGVzdGluYXRpb25zPXt9O3RoaXMuSD17fTt0aGlzLmNvbW1hbmRzPVtdfSxRQz1mdW5jdGlvbihhLGIpe3JldHVybiBhLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdPWEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF18fG5ldyBvQ30sUkM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZC5IKXt2YXIgZT1RQyhhLGQuSCksZj1lLk47aWYoZil7dmFyIGc9RWQoYyxudWxsKSxoPUVkKGUuV2FbZC5ILmRlc3RpbmF0aW9uSWRdLG51bGwpLGw9RWQoZS5oYixudWxsKSxuPUVkKGUuaWIsbnVsbCkscD1FZChhLkgsbnVsbCkscT17fTtpZihmbi5OKXRyeXtxPUVkKHJBLkgsbnVsbCl9Y2F0Y2goeCl7UCg3Mil9dmFyIHI9ZC5ILnByZWZpeCx0PWZ1bmN0aW9uKHgpe3ZhciB5PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHkscix4KX0sdT1KQyhJQyhIQyhHQyhGQyhEQyhDQyhFQyhCQyhBQyh6QyhuZXcgeUMoZC5tZXNzYWdlQ29udGV4dC5ldmVudElkLApkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5SWQsZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eVF1ZXVlKSxnKSxoKSxsKSxuKSxwKSxxKSxkLm1lc3NhZ2VDb250ZXh0LmV2ZW50TWV0YWRhdGEpLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIyIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MpZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MoKX19KSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMyIpO2lmKGQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKWQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKCl9fSksISFkLm1lc3NhZ2VDb250ZXh0LmlzR3RtRXZlbnQpKSx2PWZ1bmN0aW9uKCl7dHJ5e3ZhciB4PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHgsciwiMSIpO3ZhciB5PWQuSC5pZCx6PW1DO2lmKGZuLksmJmI9PT1GLkQud2Epe3ZhciBDLEQ9KEM9YkMoeSkpPT1udWxsP3ZvaWQgMDpDLmlkcztpZighKEQmJkQubGVuZ3RoPgoxKSl7dmFyIEk9dS5FYVtGLkQuWGJdO2lmKCFJfHxJPT09eSl7dmFyIEcsTj1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7Ti50ZHx8KE4udGQ9e30pO0c9Ti50ZDt2YXIgUz1FZCh1LkhjLG51bGwpO0VkKHUuRWEsUyk7dmFyIFc9W10sZWE7Zm9yKGVhIGluIEcpRy5oYXNPd25Qcm9wZXJ0eShlYSkmJmxDKHosR1tlYV0sUykubGVuZ3RoJiZXLnB1c2goZWEpO1cubGVuZ3RoJiYoakMoeix5LFcpLHNiKCJUQUdHSU5HIixmQ1tCLnJlYWR5U3RhdGVdfHwxNCkpO0dbeV09U319fWYoZC5ILmlkLGIsZC5LLHUpfWNhdGNoKGZhKXt2YXIgamE9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoamEsciwiNCIpfX07Yj09PSJndGFnLmdldCI/digpOmlvKGUuUix2KX19fSxTQz1mdW5jdGlvbihhLGIpe2lmKGIudHlwZSE9PSJyZXF1aXJlIil7dmFyIGM9dm9pZCAwO2IudHlwZT09PSJldmVudCImJihjPWIuYXJnc1sxXSk7aWYoYi5IKWZvcih2YXIgZD1RQyhhLGIuSCkuS1tiLnR5cGVdfHwKW10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV0oYyk7ZWxzZSBmb3IodmFyIGYgaW4gYS5kZXN0aW5hdGlvbnMpaWYoYS5kZXN0aW5hdGlvbnMuaGFzT3duUHJvcGVydHkoZikpe3ZhciBnPWEuZGVzdGluYXRpb25zW2ZdO2lmKGcmJmcuSylmb3IodmFyIGg9Zy5LW2IudHlwZV18fFtdLGw9MDtsPGgubGVuZ3RoO2wrKyloW2xdKGMpfX19O1BDLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1RQyh0aGlzLGEpO2Uuc3RhdHVzIT09MyYmKGUuTj1iLGUuc3RhdHVzPTMsZS5SPWxvKGMpLFRDKHRoaXMsYSxkfHx7fSksdGhpcy5mbHVzaCgpKX07ClBDLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT12b2lkIDAmJihRQyh0aGlzLGMpLnN0YXR1cz09PTEmJihRQyh0aGlzLGMpLnN0YXR1cz0yLHRoaXMucHVzaCgicmVxdWlyZSIsW3t9XSxjLHt9KSksUUModGhpcyxjKS5IJiYoZC5kZWZlcnJhYmxlPSExKSxkLmV2ZW50TWV0YWRhdGF8fChkLmV2ZW50TWV0YWRhdGE9e30pLGQuZXZlbnRNZXRhZGF0YVtILkouc2ddfHwoZC5ldmVudE1ldGFkYXRhW0guSi5zZ109W2MuZGVzdGluYXRpb25JZF0pLGQuZXZlbnRNZXRhZGF0YVtILkoubWpdfHwoZC5ldmVudE1ldGFkYXRhW0guSi5tal09W2MuaWRdKSk7dGhpcy5jb21tYW5kcy5wdXNoKG5ldyBuQyhhLGMsYixkKSk7ZC5kZWZlcnJhYmxlfHx0aGlzLmZsdXNoKCl9OwpQQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMsYz1bXSxkPSExLGU9e307dGhpcy5jb21tYW5kcy5sZW5ndGg7ZT17Wm46dm9pZCAwfSl7dmFyIGY9dGhpcy5jb21tYW5kc1swXSxnPWYuSDtpZihmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGUpIWd8fFFDKHRoaXMsZykuSD8oZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlPSExLHRoaXMuY29tbWFuZHMucHVzaChmKSk6Yy5wdXNoKGYpLHRoaXMuY29tbWFuZHMuc2hpZnQoKTtlbHNle3N3aXRjaChmLnR5cGUpe2Nhc2UgInJlcXVpcmUiOmlmKFFDKHRoaXMsZykuc3RhdHVzIT09MyYmIWEpe3RoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO3JldHVybn1icmVhaztjYXNlICJzZXQiOnZhciBoPWYuYXJnc1swXTtLQyhoKTtVQyhoKTtHYihoLGZ1bmN0aW9uKHgseSl7RWQoVmIoeCx5KSxiLkgpfSk7SHUoaCwhMCk7YnJlYWs7Y2FzZSAiZXZlbnQiOmUuWm49Zi5hcmdzWzFdO3ZhciBsPQpWQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fShlKSksbj1sW0YuRC5YYl07biYmbiE9PWcuaWR8fEh1KGwpO1JDKHRoaXMsZS5abixsLGYpO2JyZWFrO2Nhc2UgImdldCI6dmFyIHA9e30scT0ocFtGLkQuVGZdPWYuYXJnc1swXSxwW0YuRC5TZl09Zi5hcmdzWzFdLHApO1JDKHRoaXMsRi5ELkpiLHEsZik7YnJlYWs7Y2FzZSAiY29udGFpbmVyX2NvbmZpZyI6dmFyIHI9UUModGhpcyxnKSx0PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHQsITApO3IuSD0hMDtFZCh0LHIuaGIpO2Q9ITA7YnJlYWs7Y2FzZSAiZGVzdGluYXRpb25fY29uZmlnIjp2YXIgdT1RQyh0aGlzLGcpLHY9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodiwhMCk7dS5XYVtnLmlkXXx8KHUuV2FbZy5pZF09e30pO3UuSD0hMDtFZCh2LHUuV2FbZy5pZF0pO2Q9ITA7YnJlYWs7Y2FzZSAicmVzZXRfY29udGFpbmVyX2NvbmZpZyI6UUModGhpcyxnKS5oYj17fTticmVhazsKY2FzZSAicmVzZXRfdGFyZ2V0X2NvbmZpZyI6UUModGhpcyxnKS5XYVtnLmlkXT17fX10aGlzLmNvbW1hbmRzLnNoaWZ0KCk7U0ModGhpcyxmKX19dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7ZCYmdGhpcy5mbHVzaCgpfTt2YXIgVEM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUVkKGMsbnVsbCk7RWQoUUMoYSxiKS5pYixkKTtRQyhhLGIpLmliPWR9O2Z1bmN0aW9uIFZDKGEsYil7dmFyIGM9e307R2IoYSxmdW5jdGlvbihkLGUpe0VkKFZiKGQsZSksYyl9KTtLQyhjLGIpO1VDKGMpO3JldHVybiBjfQpmdW5jdGlvbiBVQyhhKXtpZihNKDYwMSkmJkJBKCkpe2Zvcih2YXIgYj0hMSxjPW0obmV3IFNldChbRi5ELnljLEYuRC5kZF0pKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTthW2VdIT09dm9pZCAwJiYoYj0hMCxkZWxldGUgYVtlXSl9YiYmIWFsKDM1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSYmKFprKDM1LCEwKSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdvb2dsZSBUYWcgTWFuYWdlcjogU2VydmVyLXNpZGUgR1RNIHBhcmFtZXRlcnMgKHRyYW5zcG9ydF91cmwvc2VydmVyX2NvbnRhaW5lcl91cmwpIGFyZSBub3QgcGVybWl0dGVkIG9uIHRoaXMgZG9tYWluIGFuZCBoYXZlIGJlZW4gaWdub3JlZC4iKSxQKDE5NykpfX07dmFyIFdDPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBQQzt0aGlzLks9ITF9O1dDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuSC5mbHVzaCgpfTt2YXIgWEM7ZnVuY3Rpb24gWUMoKXtYQ3x8KFhDPW5ldyBXQyk7cmV0dXJuIFhDfWZ1bmN0aW9uIFpDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmKGUuSyYmKGQuZGVmZXJyYWJsZT0hMCksZS5ILnB1c2goImV2ZW50IixbYixhXSxmLGQpKX1mdW5jdGlvbiAkQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJmUuSC5wdXNoKCJnZXQiLFthLGJdLGYsZCl9ZnVuY3Rpb24gYUQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImNvbnRhaW5lcl9jb25maWciLFtiXSxlLGMpfQpmdW5jdGlvbiBiRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiZGVzdGluYXRpb25fY29uZmlnIixbYl0sZSxjKX1mdW5jdGlvbiBjRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X2NvbnRhaW5lcl9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGREKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfdGFyZ2V0X2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZUQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5pYjp7fX1mdW5jdGlvbiBmRChhKXtyZXR1cm4gWUMoKS5ILkhbYV19ZnVuY3Rpb24gZ0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5IOiExfTtmdW5jdGlvbiBoRChhLGIpe2EuaGFzT3duUHJvcGVydHkoImd0bS51bmlxdWVFdmVudElkIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJndG0udW5pcXVlRXZlbnRJZCIse3ZhbHVlOnJqKCl9KTtiLmV2ZW50SWQ9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtiLnByaW9yaXR5SWQ9YVsiZ3RtLnByaW9yaXR5SWQiXTtyZXR1cm57ZXZlbnRJZDpiLmV2ZW50SWQscHJpb3JpdHlJZDpiLnByaW9yaXR5SWR9fWZ1bmN0aW9uIGlEKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWUsZT1hJiZhW2RdfHxmRChkKTtpZihlKXJldHVybiBlfX1mdW5jdGlvbiBqRChhKXtyZXR1cm4hYS5pc0d0bUV2ZW50fHxhLmV2ZW50TWV0YWRhdGEmJmEuZXZlbnRNZXRhZGF0YVtILkouQ2NdJiZhLmV2ZW50TWV0YWRhdGFbSC5KLk5iXSE9PXZrKCk/ITE6ITB9O3ZhciBrRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBsRD1mdW5jdGlvbigpe3RoaXMubWVzc2FnZXM9W107dGhpcy5IPVtdfTtsRC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5tZXNzYWdlcy5sZW5ndGgrMTthWyJndG0udW5pcXVlRXZlbnRJZCJdPWI7YVsiZ3RtLnByaW9yaXR5SWQiXT1kO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7aWYoTSg1OTUpKXt2YXIgZj1jLnByaW9yaXR5UXVldWU/W10uY29uY2F0KHcoYy5wcmlvcml0eVF1ZXVlKSxbZF0pOltkXTthWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWY7ZS5wcmlvcml0eVF1ZXVlPWZ9dmFyIGc9e21lc3NhZ2U6YSxub3RCZWZvcmVFdmVudElkOmIscHJpb3JpdHlJZDpkLG1lc3NhZ2VDb250ZXh0OmV9O3RoaXMubWVzc2FnZXMucHVzaChnKTtmb3IodmFyIGg9MDtoPHRoaXMuSC5sZW5ndGg7aCsrKXRyeXt0aGlzLkhbaF0oZyl9Y2F0Y2gobCl7fX07CmxELnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24oYSl7dGhpcy5ILnB1c2goYSl9O2xELnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE9e30sYj0wO2I8dGhpcy5tZXNzYWdlcy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLm1lc3NhZ2VzW2JdLGQ9YVtjLm5vdEJlZm9yZUV2ZW50SWRdO2R8fChkPVtdLGFbYy5ub3RCZWZvcmVFdmVudElkXT1kKTtkLnB1c2goYyl9cmV0dXJuIGF9O2xELnByb3RvdHlwZS5wcnVuZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz1bXSxkPTA7ZDx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtkKyspe3ZhciBlPXRoaXMubWVzc2FnZXNbZF07ZS5ub3RCZWZvcmVFdmVudElkPT09YT9iLnB1c2goZSk6Yy5wdXNoKGUpfXRoaXMubWVzc2FnZXM9YztyZXR1cm4gYn07CmZ1bmN0aW9uIG1EKGEsYixjKXtjLmV2ZW50TWV0YWRhdGE9Yy5ldmVudE1ldGFkYXRhfHx7fTtjLmV2ZW50TWV0YWRhdGFbSC5KLk5iXT1NKDU1MCk/dmsoKTpFKDYpO25EKCkuZW5xdWV1ZShhLGIsYyl9ZnVuY3Rpb24gbkQoKXtyZXR1cm4ga2ooIm1iIixmdW5jdGlvbigpe3JldHVybiBuZXcgbER9KX07dmFyIHBEPWZ1bmN0aW9uKGEsYil7dmFyIGM9b0Q7Yj1TdHJpbmcoYikuc3BsaXQoIiwiKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9Yy5OW2JbZF1dfHxbXTtjLk5bYltkXV09ZTtlLmluZGV4T2YoYSk8MCYmZS5wdXNoKGEpfX0scUQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9b0QsZD1bXSxlPVtdLGY9e30sZz0wO2c8YS5sZW5ndGg7Zj17bGs6dm9pZCAwLFFqOnZvaWQgMCxSajp2b2lkIDB9LGcrKyl7dmFyIGg9YVtnXTtpZihoLmluZGV4T2YoIi0iKT49MCl7aWYoZi5saz1iQyhoLGIpLGYubGspe3ZhciBsPXRrKCk7Q2IobCxmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHgubGsuZGVzdGluYXRpb25JZD09PXl9fShmKSk/ZC5wdXNoKGgpOmUucHVzaChoKX19ZWxzZXtpZihNKDU1MCkpe3ZhciBuPWMuS1toXXx8W107Zi5Saj17fTtuLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUmpbeV09ITB9fShmKSk7Zm9yKHZhciBwPQp0aygpLHE9MDtxPHAubGVuZ3RoO3ErKylmLlJqW3BbcV1dJiZkLnB1c2gocFtxXSl9ZWxzZXt2YXIgcj1jLkhbaF18fFtdO2YuUWo9e307ci5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlFqW3ldPSEwfX0oZikpO2Zvcih2YXIgdD13aygpLHU9MDt1PHQubGVuZ3RoO3UrKylpZihmLlFqW3RbdV1dKXtkPWQuY29uY2F0KHRrKCkpO2JyZWFrfX12YXIgdj1jLk5baF18fFtdO3YubGVuZ3RoJiYoZD1kLmNvbmNhdCh2KSl9fXJldHVybntlazpkLFBzOmV9fSxyRD1mdW5jdGlvbihhKXtHYihvRC5ILGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sc0Q9ZnVuY3Rpb24oYSl7R2Iob0QuSyxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHREPWZ1bmN0aW9uKGEpe0diKG9ELk4sZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwKMSl9KX0sb0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9e319O2Z1bmN0aW9uIHVEKGEsYixjKXt2YXIgZD1FZChhLG51bGwpO2QuZXZlbnRJZD12b2lkIDA7ZC5pbmhlcml0UGFyZW50Q29uZmlnPXZvaWQgMDtPYmplY3Qua2V5cyhiKS5zb21lKGZ1bmN0aW9uKGYpe3JldHVybiBiW2ZdIT09dm9pZCAwfSkmJlAoMTM2KTt2YXIgZT1FZChiLG51bGwpO0VkKGMsZSk7bUQockMod2soKVswXSxlKSxhLmV2ZW50SWQsZCl9CmZ1bmN0aW9uIHZEKGEsYixjLGQpe3ZhciBlPXt9LGY9KGVbRi5ELlViXT1GLkQud2EsZVsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09YS5pZCxlWyJndG0uY29uZmlnUGFyYW1ldGVycyJdPWIsZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1kLmV2ZW50SWQsZSk7Yy5wcmlvcml0eVF1ZXVlJiYoZlsiZ3RtLnByaW9yaXR5UXVldWUiXT1jLnByaW9yaXR5UXVldWUpO2MuZXZlbnRNZXRhZGF0YSYmKGZbImd0bS5ldmVudE1ldGFkYXRhIl09Yy5ldmVudE1ldGFkYXRhKTthLkpjKCkmJihmWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT13aygpWzBdLGZbImd0bS5vcmlnaW5hbENvbmZpZ1RhcmdldElkIl09YS5pZCk7cmV0dXJuIGZ9ZnVuY3Rpb24gd0QoYSxiLGMpe2lmKElmKDExKSYmIWMmJiFhW0YuRC5WZF0pe3ZhciBkPWFsKDEwLGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtaaygxMCwhMCk7WEIoZCxhLGIpO2lmKGQpcmV0dXJuITB9cmV0dXJuITF9O2Z1bmN0aW9uIHhEKGEsYil7dmFyIGM9e30sZD0oYy5ldmVudD1hLGMpO2ImJihkLmV2ZW50TW9kZWw9RWQoYixudWxsKSxiW0YuRC5QZl0mJihkLmV2ZW50Q2FsbGJhY2s9YltGLkQuUGZdKSxiW0YuRC5waF0mJihkLmV2ZW50VGltZW91dD1iW0YuRC5waF0pKTtyZXR1cm4gZH0KZnVuY3Rpb24geUQoYSxiKXt2YXIgYz1hJiZhW0YuRC5YYl07Yz09PXZvaWQgMCYmKGM9dUEoRi5ELlhiLDIpLGM9PT12b2lkIDAmJihjPSJkZWZhdWx0IikpO2lmKHpiKGMpfHxBcnJheS5pc0FycmF5KGMpKXt2YXIgZDtkPWIuaXNHdG1FdmVudD96YihjKT9bY106YzpjLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIik7dmFyIGU9cUQoZCxiLmlzR3RtRXZlbnQpLGY9ZS5layxnPWUuUHM7aWYoZy5sZW5ndGgpZm9yKHZhciBoPWlEKGEpLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49YkMoZ1tsXSxiLmlzR3RtRXZlbnQpO2lmKG4pe3ZhciBwPW4uZGVzdGluYXRpb25JZCxxPXZvaWQgMDsoKHE9bmsobi5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOnEuc3RhdGUpPT09MHx8bkEocCxoLHtzb3VyY2U6Myxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX12YXIgcj1mLmNvbmNhdChnKTtyZXR1cm57ZWs6Y0MoZixiLmlzR3RtRXZlbnQpLAptcjpjQyhyLGIuaXNHdG1FdmVudCl9fX07dmFyIHpEPXt9LEFEPSh6RC5jb25maWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1oRChhLGIpLGQ7YTp7aWYoIShhLmxlbmd0aDwyKSYmemIoYVsxXSkpe3ZhciBlPXt9O2lmKGEubGVuZ3RoPjIpe2lmKGFbMl0hPT12b2lkIDAmJiFDZChhWzJdKXx8YS5sZW5ndGg+Myl7ZD12b2lkIDA7YnJlYWsgYX1lPWFbMl19dmFyIGY9YkMoYVsxXSxiLmlzR3RtRXZlbnQpO2lmKGYpe2Q9e3RhcmdldDpmLHBhcmFtczplfTticmVhayBhfX1kPXZvaWQgMH12YXIgZz1kO2lmKGcpe3ZhciBoPWcudGFyZ2V0LGw9Zy5wYXJhbXMsbjthOntpZighSWYoNykpe3ZhciBwPXlrKHprKCkpO2lmKE1rKHApKXt2YXIgcT1wLnBhcmVudCxyPXEuaXNEZXN0aW5hdGlvbjtuPXtWczp5ayhxKSxNczpyfTticmVhayBhfX1uPXZvaWQgMH12YXIgdD1uLHU9dD09bnVsbD92b2lkIDA6dC5Wcyx2PXQ9PW51bGw/dm9pZCAwOnQuTXM7ZEIoYy5ldmVudElkLCJndGFnLmNvbmZpZyIpO3ZhciB4LHk9aC5kZXN0aW5hdGlvbklkOwppZihoLkpjKCk/dGsoKS5pbmRleE9mKHkpIT09LTE6d2soKS5pbmRleE9mKHkpIT09LTEpYTp7aWYodSYmKFAoMTI4KSx2JiZQKDEzMCksYi5pbmhlcml0UGFyZW50Q29uZmlnKSl7dmFyIHo7dmFyIEM9JGsoMTIpO2lmKEMpdUQoYixDLGwpLHo9ITE7ZWxzZXt2YXIgRD0kaygxMSk7IWxbRi5ELlZkXSYmKE0oNTUwKXx8SWYoMTEpKSYmRHx8WmsoMTEsRWQobCxudWxsKSk7ej0hMH16JiZ1LmNvbnRhaW5lcnMmJnUuY29udGFpbmVycy5qb2luKCIsIik7eD12b2lkIDA7YnJlYWsgYX12YXIgST0hSWYoNDUpLEc9IVNiKGguaWQsIkdUTS0iKTtJJiZHJiYoT2JqZWN0LmtleXMobCkubGVuZ3RoPT09MD9HdShULlcuU2spOkd1KFQuVy5UayksRWwoKSYmR3UoVC5XLlJrKSwkaygzMSkmJkd1KFQuVy5VaykpO3ZhciBOPVlCO2ZuLksmJihOLkg9PT0xJiYoUW0uSC5tY2M9ITEpLE4uSD0yKTtpZihNKDU1MCl8fCF3RChsLGIsaC5KYygpKSl7a0QuSHx8UCg0Myk7aWYoIU0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIFM9CmguaWQ7aWYoaC5KYygpKXREKFMpLHBEKFMsbFtGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7ckQoUyk7dmFyIFc9bFtGLkQuT2RdfHwiZGVmYXVsdCIsZWE9b0Q7Vz1XLnRvU3RyaW5nKCkuc3BsaXQoIiwiKTtmb3IodmFyIGphPTA7amE8Vy5sZW5ndGg7amErKyl7dmFyIGZhPWVhLkhbV1tqYV1dfHxbXTtlYS5IW1dbamFdXT1mYTtmYS5pbmRleE9mKFMpPDAmJmZhLnB1c2goUyl9fX1kZWxldGUgbFtGLkQuT2RdfXZhciBzYT1iLmV2ZW50TWV0YWRhdGF8fHt9O3NhLmhhc093blByb3BlcnR5KEguSi5hZSl8fChzYVtILkouYWVdPSFiLmZyb21Db250YWluZXJFeGVjdXRpb24pO2IuZXZlbnRNZXRhZGF0YT1zYTtkZWxldGUgbFtGLkQuUGZdO2lmKE0oNTUwKSl7eD12RChoLGwsYixjKTticmVhayBhfXZhciBkYT0hIWxbRi5ELlZkXTtkZWxldGUgbFtGLkQuVmRdO3ZhciBtYT10aygpLFBhPWNELEZhPWFEO2guSmMoKSYmKG1hPVtoLmlkXSxQYT1kRCxGYT1iRCk7Zm9yKHZhciBxYT0wO3FhPAptYS5sZW5ndGg7cWErKyl7ZGF8fFBhKG1hW3FhXSk7dmFyIGliPWdEKG1hW3FhXSk7RmEobWFbcWFdLEVkKGwsbnVsbCksRWQoYixudWxsKSk7aWImJmRhfHxaQyhGLkQud2EsRWQobCxudWxsKSxtYVtxYV0sRWQoYixudWxsKSl9fXg9dm9pZCAwfWVsc2UgYTp7aWYoIWIuaW5oZXJpdFBhcmVudENvbmZpZyYmIWxbRi5ELlpjXSl7dmFyIFhiPWlEKGwpLExjPWguZGVzdGluYXRpb25JZDtpZihoLkpjKCkpbkEoTGMsWGIse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSk7ZWxzZSBpZih1IT09dm9pZCAwJiZ1LmNvbnRhaW5lcnMuaW5kZXhPZihMYykhPT0tMSl7dmFyIFFkPSRrKDExKSxZYz0kaygxMik7UWQ/dUQoYixsLFFkKTpZY3x8WmsoMTIsRWQobCxudWxsKSl9ZWxzZSBpZihoQShMYyxYYiwhMCx7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KSxNKDU1MCkpe3g9dkQoaCwKbCxiLGMpO2JyZWFrIGF9fXg9dm9pZCAwfXJldHVybiB4fX0sekQuY29uc2VudD1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09Myl7UCgzOSk7dmFyIGM9aEQoYSxiKSxkPWFbMV0sZT17fSxmPU9vKGFbMl0pLGc7Zm9yKGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO2VbZ109Zz09PUYuRC5ZZz9BcnJheS5pc0FycmF5KGgpP05hTjpOdW1iZXIoaCk6Zz09PUYuRC5uYz8oQXJyYXkuaXNBcnJheShoKT9oOltoXSkubWFwKFBvKTpRbyhoKX1iLmZyb21Db250YWluZXJFeGVjdXRpb258fChlW0YuRC5tYV0mJlAoMTM5KSxlW0YuRC5YYV0mJlAoMTQwKSk7ZD09PSJkZWZhdWx0Ij9UbyhlKTpkPT09InVwZGF0ZSI/Vm8oZSxjKTpkPT09ImRlY2xhcmUiJiZiLmZyb21Db250YWluZXJFeGVjdXRpb24mJlNvKGUpfX0sekQuY29udGFpbmVyX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9CmFbMl0sZD1iQyhhWzFdLCEwKTtkJiZhRChkLmRlc3RpbmF0aW9uSWQsYyxFZChiLG51bGwpKX19LHpELmRlc3RpbmF0aW9uX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9YVsyXSxkPWJDKGFbMV0sITApO2lmKGQpe2lmKE0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIGU9ZC5pZDtpZihkLkpjKCkpdEQoZSkscEQoZSxjW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtzRChlKTt2YXIgZj1jW0YuRC5PZF18fCJkZWZhdWx0IixnPW9EO2Y9U3RyaW5nKGYpLnNwbGl0KCIsIik7Zm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBsPWcuS1tmW2hdXXx8W107Zy5LW2ZbaF1dPWw7bC5pbmRleE9mKGUpPDAmJmwucHVzaChlKX19fWRlbGV0ZSBjW0YuRC5PZF19YkQoZC5pZCxjLEVkKGIsbnVsbCkpfX19LHpELmV2ZW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVsxXTtpZighKGEubGVuZ3RoPDIpJiYKemIoYykpe3ZhciBkPXZvaWQgMDtpZihhLmxlbmd0aD4yKXtpZighQ2QoYVsyXSkmJmFbMl0hPT12b2lkIDB8fGEubGVuZ3RoPjMpcmV0dXJuO2Q9YVsyXX12YXIgZT14RChjLGQpLGY9aEQoYSxiKSxnPWYuZXZlbnRJZCxoPWYucHJpb3JpdHlJZDtlWyJndG0udW5pcXVlRXZlbnRJZCJdPWc7aCYmKGVbImd0bS5wcmlvcml0eUlkIl09aCk7Yi5wcmlvcml0eVF1ZXVlJiYoZVsiZ3RtLnByaW9yaXR5UXVldWUiXT1iLnByaW9yaXR5UXVldWUpO2lmKGM9PT0ib3B0aW1pemUuY2FsbGJhY2siKXJldHVybiBlLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fSxlO3ZhciBsPXlEKGQsYik7aWYobCl7Zm9yKHZhciBuPWwuZWsscD1sLm1yLHE9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSxyPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmRlc3RpbmF0aW9uSWR9KSx0PW4ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSksdT1tKHRrKCkpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtyLmluZGV4T2YoeCk8MCYmdC5wdXNoKHgpfWRCKGcsYyk7Zm9yKHZhciB5PW0odCksej15Lm5leHQoKTshei5kb25lO3o9eS5uZXh0KCkpe3ZhciBDPXoudmFsdWUsRD1FZChiLG51bGwpLEk9RWQoZCxudWxsKTtkZWxldGUgSVtGLkQuUGZdO3ZhciBHPUQuZXZlbnRNZXRhZGF0YXx8e307Ry5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoR1tILkouYWVdPSFELmZyb21Db250YWluZXJFeGVjdXRpb24pO0dbSC5KLm1qXT1xLnNsaWNlKCk7R1tILkouc2ddPXIuc2xpY2UoKTtELmV2ZW50TWV0YWRhdGE9RztaQyhjLEksQyxEKX1lLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fTtxLmxlbmd0aD4wP2UuZXZlbnRNb2RlbFtGLkQuWGJdPXEuam9pbigiLCIpOmRlbGV0ZSBlLmV2ZW50TW9kZWxbRi5ELlhiXTtrRC5IfHxQKDQzKTtiLm5vR3RtRXZlbnQ9PT12b2lkIDAmJmIuZXZlbnRNZXRhZGF0YSYmYi5ldmVudE1ldGFkYXRhW0guSi5Cbl0mJihiLm5vR3RtRXZlbnQ9CiEwKTtlLmV2ZW50TW9kZWxbRi5ELlljXSYmKGIubm9HdG1FdmVudD0hMCk7cmV0dXJuIGIubm9HdG1FdmVudD92b2lkIDA6ZX19fSx6RC5nZXQ9ZnVuY3Rpb24oYSxiKXtQKDUzKTtpZihhLmxlbmd0aD09PTQmJnpiKGFbMV0pJiZ6YihhWzJdKSYmeWIoYVszXSkpe3ZhciBjPWJDKGFbMV0sYi5pc0d0bUV2ZW50KSxkPVN0cmluZyhhWzJdKSxlPWFbM107aWYoYyl7a0QuSHx8UCg0Myk7dmFyIGY9aUQoKTtpZihDYih0aygpLGZ1bmN0aW9uKGgpe3JldHVybiBjLmRlc3RpbmF0aW9uSWQ9PT1ofSkpe2hEKGEsYik7dmFyIGc9e307RWQoKGdbRi5ELlRmXT1kLGdbRi5ELlNmXT1lLGcpLG51bGwpOyRDKGQsZnVuY3Rpb24oaCl7YmQoZnVuY3Rpb24oKXtlKGgpfSl9LGMuaWQsYil9ZWxzZSBuQShjLmRlc3RpbmF0aW9uSWQsZix7c291cmNlOjQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19fSx6RC5qcz1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKGEubGVuZ3RoPT09CjImJmFbMV0uZ2V0VGltZSl7a0QuSD0hMDt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkLGc9e307Yz0oZy5ldmVudD0iZ3RtLmpzIixnWyJndG0uc3RhcnQiXT1hWzFdLmdldFRpbWUoKSxnWyJndG0udW5pcXVlRXZlbnRJZCJdPWUsZ1siZ3RtLnByaW9yaXR5SWQiXT1mLGcpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9LHpELnBvbGljeT1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZ5YihhWzJdKSl7aWYoaHkoYVsxXSxhWzJdKSxQKDc0KSxhWzFdPT09ImFsbCIpe1AoNzUpO3ZhciBiPSExO3RyeXtiPWFbMl0oRSg1KSwidW5rbm93biIse30pfWNhdGNoKGMpe31ifHxQKDc2KX19ZWxzZSBQKDczKX0sekQucmVzZXRfdGFyZ2V0X2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTImJnpiKGFbMV0pKXt2YXIgYz1iQyhhWzFdLCEwKTtjJiZkRChjLmlkKX19LHpELnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDsKYS5sZW5ndGg9PT0yJiZDZChhWzFdKT9jPUVkKGFbMV0sbnVsbCk6YS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmKGM9e30sQ2QoYVsyXSl8fEFycmF5LmlzQXJyYXkoYVsyXSk/Y1thWzFdXT1FZChhWzJdLG51bGwpOmNbYVsxXV09YVsyXSk7aWYoYyl7WmsoMzEsITApO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQ7RWQoYyxudWxsKTtFKDUpO3ZhciBnPUVkKGMsbnVsbCk7WUMoKS5ILnB1c2goInNldCIsW2ddLHZvaWQgMCxiKTtjWyJndG0udW5pcXVlRXZlbnRJZCJdPWU7ZiYmKGNbImd0bS5wcmlvcml0eUlkIl09Zik7ZGVsZXRlIGMuZXZlbnQ7Yi5vdmVyd3JpdGVNb2RlbEZpZWxkcz0hMDtyZXR1cm4gY319LHpEKSxCRD17fSxDRD0oQkQucG9saWN5PSEwLEJEKTt2YXIgRUQ9ZnVuY3Rpb24oYSl7aWYoREQoYSkpcmV0dXJuIGE7dGhpcy52YWx1ZT1hfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBERD1mdW5jdGlvbihhKXtyZXR1cm4hYXx8QWQoYSkhPT0ib2JqZWN0Inx8Q2QoYSk/ITE6ImdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSJpbiBhfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPUVELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU7dmFyIEZEPXtCYjoiMSIsZWU6IjIiLFhkOiIzIixjZToiNCIseGY6IjUiLHFnOiI2IixLaDoiNyIsdGo6IjgiLGxpOiI5IixqajoiMTAifTsKdmFyIEdEPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS50cmltKCkucmVwbGFjZUFsbCgvXHMrL2csIiIpLnJlcGxhY2VBbGwoLyhcZHsyLH0pXC4vZywiJDEiKS5yZXBsYWNlQWxsKC8tL2csIiIpLnJlcGxhY2VBbGwoL1woKFxkKylcKS9nLCIkMSIpO2lmKGImJmMubWF0Y2goL15cKz9cZHszLDR9JC8pKXJldHVybiBjO2MuY2hhckF0KDApIT09IisiJiYoYz0iKyIrYyk7aWYoYy5tYXRjaChuZXcgUmVnRXhwKCJeXFwrXFxkeyIrKE0oNTk3KT83OjEwKSsiLDE1fSQiKSkpcmV0dXJuIGN9fSxJRD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRyaW0oKTtpZihIRC50ZXN0KGIpKXJldHVybiBiLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgvWy0gXSsvZywiIil9fSxNRD1mdW5jdGlvbihhKXt2YXIgYj1KRChLRCkoYSk7aWYoYiYmIUxEKGIpKXJldHVybiBifSxMRD1mdW5jdGlvbihhKXtpZighQS5sb2NhdGlvbilyZXR1cm4hMTt2YXIgYj1OaihBLmxvY2F0aW9uLCJob3N0IiwhMCksCmM7aWYoTSg2MDIpKWE6e2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1hLnRvTG93ZXJDYXNlKCksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe3ZhciBnPWQuc2xpY2UoZikuam9pbigiLiIpO2lmKGUubWF0Y2goIkAiK2crIiQiKSl7Yz0hMDticmVhayBhfX1jPSExfWVsc2UgYz1hLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihiKT49MDtyZXR1cm4gY30sSkQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubWF0Y2goYSk7cmV0dXJuIGM/Y1swXS50cmltKCkudG9Mb3dlckNhc2UoKTp2b2lkIDB9fSxLRD0vW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcLltBLVpdezIsfS9pLE5EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzKSskLyksSEQ9UmVnRXhwKCJeKD86W0EtWl17MSwyfVxcZFtBLVpcXGRdP1sgLV0/XFxkW0EtWl17Mn18W0EtWl1cXGRbQS1aXVsgLV0/XFxkW0EtWl1cXGR8XFxkezR9ID9bQS1aXXsyfXxbQS1aXVxcZHs0fVtBLVpdezN9fFxcZHs1fSg/Oi1cXGR7NH0pP3xcXGR7NX0tXFxkezN9fFxcZHs0fS1cXGR7M318XFxkezN9LVxcZHs0fXxcXGR7Mn0tXFxkezN9fFxcZHszfSA/XFxkezJ9fFxcZHs0LDd9KSQiLAoiaSIpLE9EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzfFxkKSskLyk7CnZhciBQRD1mdW5jdGlvbigpe3ZhciBhPVN0cmluZyhhbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSkpO2EuaW5kZXhPZigiLiIpIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIuIikrMykpO3ZhciBiPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtyZXR1cm57dnQ6TnVtYmVyKGEpLHN0OmJ9fSxRRD1mdW5jdGlvbigpe3JldHVybiBhbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSl9LFNEPWZ1bmN0aW9uKGEpe3ZhciBiPXBkKCl8fDAsYz1bRkQuQmJdO00oNTY4KSYmYy5wdXNoKEZELmVlLEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELnRqLEZELmxpLEZELmpqKTtmb3IodmFyIGQ9UkQoYSxuZXcgU2V0KGMpKSxlPWFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSxmPW0oZCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5zZXQoaC5EYSxoKX12YXIgbD0ocGQoKXx8MCktYixuPWFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTsKWmsoMzMsbitsKTt2YXIgcD1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7WmsoMzQscCsxKX0sUkQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TmYoMzYsMiksZD1bXSxlPVt7b286YSxkZXB0aDowfV07ZS5sZW5ndGg+MDspZm9yKHZhciBmPWUuc2hpZnQoKSxnPWYub28saD1mLmRlcHRoLGw9bShPYmplY3Qua2V5cyhnKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aWYoIVRELmhhcyhwKSl7dmFyIHE9Z1twXTtpZihxKWlmKENkKHEpKWgrMTw9YyYmZS5wdXNoKHtvbzpxLGRlcHRoOmgrMX0pO2Vsc2V7Zm9yKHZhciByPW0oYiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWUsdj1VRFt1XTtpZih2JiZ2LktjLnRlc3QocCkpe3ZhciB4PXYubmEoU3RyaW5nKHEpKTtpZih4KXtkLnB1c2goe0NhOngsRGE6dX0pO2IuZGVsZXRlKHUpO2JyZWFrfX19aWYoYi5zaXplPT09MClyZXR1cm4gZH19fXJldHVybiBkfSxURD0KbmV3IFNldChbIml0ZW1zIiwiZWNvbW1lcmNlIl0pLFZEPVJlZ0V4cCgicGhvbmUiLCJpIiksV0Q9UmVnRXhwKCJmaXJzdF8/bmFtZSIsImkiKSxYRD1SZWdFeHAoImxhc3RfP25hbWUiLCJpIiksWUQ9UmVnRXhwKCJjb3VudHJ5IiwiaSIpLFpEPVJlZ0V4cCgicG9zdHx6aXAiLCJpIiksJEQ9UmVnRXhwKCJhZGRyZXNzfHN0cmVldCIsImkiKSxhRT1SZWdFeHAoImNpdHkiLCJpIiksYkU9UmVnRXhwKCJyZWdpb258c3RhdGV8cHJvdmluY2UiLCJpIiksY0U9e30sVUQ9KGNFW0ZELkJiXT17S2M6UmVnRXhwKCJlbWFpbCIsImkiKSxuYTpNRH0sY0VbRkQuZWVdPXtLYzpWRCxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMSl9fSxjRVtGRC5YZF09e0tjOldELG5hOk5EfSxjRVtGRC5jZV09e0tjOlhELG5hOk5EfSxjRVtGRC50al09e0tjOiRELG5hOk9EfSxjRVtGRC5saV09e0tjOmFFLG5hOk5EfSxjRVtGRC5qal09e0tjOmJFLG5hOk5EfSxjRVtGRC5xZ109e0tjOlpELG5hOklEfSxjRVtGRC54Zl09CntLYzpZRCxuYTpORH0sY0UpO3ZhciBkRT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5sb2FkZWQ9ITE7dGhpcy5IPVtdO2lmKEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vbkxvYWQoKTtlbHNlICRjKEEsImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5vbkxvYWQoKX0pfTtkRS5wcm90b3R5cGUub25Mb2FkPWZ1bmN0aW9uKCl7aWYoIXRoaXMubG9hZGVkKXt0aGlzLmxvYWRlZD0hMDtmb3IodmFyIGE9MDthPHRoaXMuSC5sZW5ndGg7YSsrKWJkKHRoaXMuSFthXSl9fTt2YXIgZkU9ZnVuY3Rpb24oYSl7dmFyIGI9ZUU7Yi5sb2FkZWQ/YmQoYSk6Yi5ILnB1c2goYSl9LGVFPW5ldyBkRTt2YXIgZ0U9ZnVuY3Rpb24oKXt0aGlzLlo9MDt0aGlzLks9e307dGhpcy5IPVtdO3RoaXMuTj1bXTt0aGlzLmZhPXRoaXMuUj10aGlzLmphPSExfSxpRT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aEU7YS5ldmVudENhbGxiYWNrPWI7YyYmKGEuZXZlbnRUaW1lb3V0PWMpO3JldHVybiBkLnB1c2goYSl9LGpFPWZ1bmN0aW9uKGEsYil7aWYoIUFiKGIpfHxiPDApYj0wO3ZhciBjPXFqKCksZD0wLGU9ITEsZj12b2lkIDA7Zj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlfHwoZT0hMCxhKCkpO2Y9dm9pZCAwfSxiKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZz1jP2Muc3Vic2NyaWJlcnM6MTsrK2Q9PT1nJiYoZiYmKEEuY2xlYXJUaW1lb3V0KGYpLGY9dm9pZCAwKSxlfHwoYSgpLGU9ITApKX19LGxFPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEuTi5sZW5ndGgpYj1hLk4uc2hpZnQoKTtlbHNlIGlmKGEuSC5sZW5ndGgpYj1hLkguc2hpZnQoKTtlbHNlIHJldHVybjt2YXIgYzt2YXIgZD1iO2lmKGEuamF8fAoha0UoZC5tZXNzYWdlKSljPWQ7ZWxzZXthLmphPSEwO3ZhciBlPWQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxmLGc7dHlwZW9mIGU9PT0ibnVtYmVyIj8oZj1lLTIsZz1lLTEpOihmPXJqKCksZz1yaigpLGQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1yaigpKTt2YXIgaD17fSxsPXttZXNzYWdlOihoLmV2ZW50PSJndG0uaW5pdF9jb25zZW50IixoWyJndG0udW5pcXVlRXZlbnRJZCJdPWYsaCksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Zn19LG49e30scD17bWVzc2FnZToobi5ldmVudD0iZ3RtLmluaXQiLG5bImd0bS51bmlxdWVFdmVudElkIl09ZyxuKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpnfX07YS5ILnVuc2hpZnQocCxkKTtjPWx9cmV0dXJuIGN9LG9FPWZ1bmN0aW9uKGEpe2EuZmF8fFAoMTk2KTtmb3IodmFyIGI9ITEsYzshYS5SJiYoYz1sRShhKSk7KXthLlI9ITA7dmFyIGQ9ckE7ZGVsZXRlIGQuSC5ldmVudE1vZGVsO29BKGQpO3ZhciBlPWMsZj0KZS5tZXNzYWdlLGc9ZS5tZXNzYWdlQ29udGV4dDtpZihmPT1udWxsKWEuUj0hMTtlbHNle2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmc0EoKTt0cnl7aWYoeWIoZikpdHJ5e2YuY2FsbCh0QSl9Y2F0Y2goUyl7fWVsc2UgaWYoQXJyYXkuaXNBcnJheShmKSl7aWYoemIoZlswXSkpe3ZhciBoPWZbMF0uc3BsaXQoIi4iKSxsPWgucG9wKCksbj1mLnNsaWNlKDEpLHA9dUEoaC5qb2luKCIuIiksMik7aWYocCE9bnVsbCl0cnl7cFtsXS5hcHBseShwLG4pfWNhdGNoKFMpe319fWVsc2V7dmFyIHE9dm9pZCAwO2lmKEhiKGYpKWE6e2lmKGYubGVuZ3RoJiZ6YihmWzBdKSl7dmFyIHI9QURbZlswXV07aWYociYmKCFnLmZyb21Db250YWluZXJFeGVjdXRpb258fCFDRFtmWzBdXSkpe3E9cihmLGcpO2JyZWFrIGF9fXE9dm9pZCAwfWVsc2UgcT1mO2lmKHEpe3ZhciB0O2Zvcih2YXIgdT1xLHY9dS5fY2xlYXJ8fGcub3ZlcndyaXRlTW9kZWxGaWVsZHMseD1tKE9iamVjdC5rZXlzKHUpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT0KeC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7eiE9PSJfY2xlYXIiJiYodiYmckEuc2V0KHosdm9pZCAwKSxyQS5zZXQoeix1W3pdKSl9TSg1OTIpJiZTRCh1KTskaygyNSl8fFprKDI1LHVbImd0bS5zdGFydCJdKTt2YXIgQz11WyJndG0udW5pcXVlRXZlbnRJZCJdO3UuZXZlbnQ/KHR5cGVvZiBDIT09Im51bWJlciImJihDPXJqKCksdVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1DLHJBLnNldCgiZ3RtLnVuaXF1ZUV2ZW50SWQiLEMpKSx0PXpCKHUpKTp0PSExO2I9dHx8Yn19fWZpbmFsbHl7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZvQShyQSwhMCk7dmFyIEQ9ZlsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtpZih0eXBlb2YgRD09PSJudW1iZXIiKXtmb3IodmFyIEk9YSxHPUkuS1tTdHJpbmcoRCldfHxbXSxOPTA7TjxHLmxlbmd0aDtOKyspSS5OLnB1c2gobUUoR1tOXSkpO0cubGVuZ3RoJiZJLk4uc29ydChuRSk7ZGVsZXRlIEkuS1tTdHJpbmcoRCldO0Q+YS5aJiYoYS5aPUQpfWEuUj0hMX19fXJldHVybiFifSwKcEU9ZnVuY3Rpb24oKXt2YXIgYT1oRTthLmZhJiZQKDE5NSk7YS5mYT0hMDtpZihmbi5IKXt2YXIgYj0hSWYoNTEpLGM9cnooKTtweihjLHtzdGFnZTpJeS5YLlpnfSk7aWYoYil7dmFyIGQ9cXooYyx7c3RhZ2U6SXkuWC5Za30sSXkuWC5uaSk7ZCE9PXZvaWQgMCYmKGMuSC5ZPWQpfXZhciBlPWEuSC5sZW5ndGg7cnooKS5ILkM9ZX1vRShhKTtpZihmbi5IKXt2YXIgZj1yeigpLGc9cXooZix7c3RhZ2U6SXkuWC5Wa30sSXkuWC5aZyk7ZyE9PXZvaWQgMCYmKGYuSC5CPWcpfXRyeXt2YXIgaD1BW0UoMTkpXSxsPUUoNSksbj1oLmhpZGU7aWYobiYmbltsXSE9PXZvaWQgMCYmbi5lbmQpe25bbF09ITE7dmFyIHA9ITAscTtmb3IocSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocSkmJm5bcV09PT0hMCl7cD0hMTticmVha31wJiYobi5lbmQoKSxuLmVuZD1udWxsKX19Y2F0Y2gocil7RSg1KX19LHFFPWZ1bmN0aW9uKGEsYil7aWYoYS5aPGIubm90QmVmb3JlRXZlbnRJZCl7dmFyIGM9U3RyaW5nKGIubm90QmVmb3JlRXZlbnRJZCk7CmEuS1tjXT1hLktbY118fFtdO2EuS1tjXS5wdXNoKGIpfWVsc2V7YS5OLnB1c2gobUUoYikpO2EuTi5zb3J0KG5FKTt2YXIgZD1mdW5jdGlvbigpe2EuUnx8b0UoYSl9O00oNTgwKT9kZChkKTpiZChkKX19OwpnRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoaCl7dmFyIGw9e307aWYoREQoaCkpe3ZhciBuPWg7aD1ERChuKT9uLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSgpOnZvaWQgMDtsLmZyb21Db250YWluZXJFeGVjdXRpb249ITB9cmV0dXJue21lc3NhZ2U6aCxtZXNzYWdlQ29udGV4dDpsfX12YXIgYj10aGlzLGM9TWMoRSgxOSksW10pLGQ9cGooKTtkLnBydW5lZD09PSEwJiZQKDgzKTt0aGlzLks9bkQoKS5nZXQoKTtuRCgpLmxpc3RlbihmdW5jdGlvbihoKXtxRShiLGgpfSk7ZC5zdWJzY3JpYmVycz0oZC5zdWJzY3JpYmVyc3x8MCkrMTt2YXIgZT1jLnB1c2gsZj10aGlzO2MucHVzaD1mdW5jdGlvbigpe3ZhciBoO2xqKCk7aWYoamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPjApe2g9W107Zm9yKHZhciBsPTA7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyloW2xdPW5ldyBFRChhcmd1bWVudHNbbF0pfWVsc2UgaD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTsKdmFyIG49aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KTtmLkgucHVzaC5hcHBseShmLkgsbik7dmFyIHA9ZS5hcHBseShjLGgpLHE9TWF0aC5tYXgoMTAwLE5mKDEsMzAwKSk7aWYodGhpcy5sZW5ndGg+cSlmb3IoUCg0KSxkLnBydW5lZD0hMDt0aGlzLmxlbmd0aD5xOyl0aGlzLnNoaWZ0KCk7dmFyIHI9dHlwZW9mIHAhPT0iYm9vbGVhbiJ8fHA7cmV0dXJuIG9FKGYpJiZyfTt2YXIgZz1jLnNsaWNlKDApLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gYShoKX0pO3RoaXMuSC5wdXNoLmFwcGx5KHRoaXMuSCxnKTtJZig1MSl8fChmbi5IJiZ1eigpLGJkKHJFKSk7VkIoZnVuY3Rpb24oKXtpZighZC5ndG1Eb20pe2QuZ3RtRG9tPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmRvbSIsaCkpfX0pO2ZFKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtTG9hZCl7ZC5ndG1Mb2FkPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmxvYWQiLGgpKX19KX07CmdFLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEpe3JldHVybiBBW0UoMTkpXS5wdXNoKGEpfTt2YXIgaEU9bmV3IGdFO2Z1bmN0aW9uIG5FKGEsYil7dmFyIGM9YS5tZXNzYWdlQ29udGV4dCxkPWIubWVzc2FnZUNvbnRleHQ7aWYoYy5ldmVudElkIT09ZC5ldmVudElkKXJldHVybiBjLmV2ZW50SWQtZC5ldmVudElkO2lmKCFNKDU5NSkpcmV0dXJuIGMucHJpb3JpdHlJZC1kLnByaW9yaXR5SWQ7dmFyIGUsZixnO2E6e2Zvcih2YXIgaD0oZT1jLnByaW9yaXR5UXVldWUpIT1udWxsP2U6W2MucHJpb3JpdHlJZF0sbD0oZj1kLnByaW9yaXR5UXVldWUpIT1udWxsP2Y6W2QucHJpb3JpdHlJZF0sbj1NYXRoLm1pbihoLmxlbmd0aCxsLmxlbmd0aCkscD0wO3A8bjtwKyspaWYoaFtwXSE9PWxbcF0pe2c9aFtwXS1sW3BdO2JyZWFrIGF9Zz1oLmxlbmd0aC1sLmxlbmd0aH1yZXR1cm4gZ30KZnVuY3Rpb24ga0UoYSl7aWYoYT09bnVsbHx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZihhLmV2ZW50KXJldHVybiEwO2lmKEhiKGEpKXt2YXIgYj1hWzBdO2lmKGI9PT0iY29uZmlnInx8Yj09PSJldmVudCJ8fGI9PT0ianMifHxiPT09ImdldCIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbUUoYSl7cmV0dXJue21lc3NhZ2U6YS5tZXNzYWdlLG1lc3NhZ2VDb250ZXh0OmEubWVzc2FnZUNvbnRleHR9fWZ1bmN0aW9uIHNFKGEsYixjKXtyZXR1cm4gaUUoYSxiLGMpfWZ1bmN0aW9uIHRFKGEsYil7cmV0dXJuIGpFKGEsYil9ZnVuY3Rpb24gckUoKXtwRSgpfWZ1bmN0aW9uIHVFKGEpe3JldHVybiBoRS5wdXNoKGEpfTt2YXIgdkU9ZnVuY3Rpb24oKXt9O3ZFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGEsYj1SaihBLmxvY2F0aW9uLmhyZWYpOyhhPWIuaG9zdG5hbWUrYi5wYXRobmFtZSkmJlVtKCJkbCIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTt2YXIgYzt2YXIgZD1FKDUpO2lmKGQpe3ZhciBlPUlmKDcpPzE6MCxmPUZrKCksZz1mJiZmLmZyb21Db250YWluZXJFeGVjdXRpb24/MTowLGg9ZiYmZi5zb3VyY2V8fDAsbD1FKDYpO2M9ZCsiOyIrbCsiOyIrZysiOyIraCsiOyIrZX1lbHNlIGM9dm9pZCAwO3ZhciBuPWM7biYmVW0oInRkcCIsbik7dmFyIHA9T3AoITApO3AhPT12b2lkIDAmJlVtKCJmcm0iLFN0cmluZyhwKSl9O3ZhciB3RT1uZXcgdkU7dmFyIHhFPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCk7dGhpcy5LPXZvaWQgMH0seUU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWm0oYSxmdW5jdGlvbihjKXtyZXR1cm4gYy5qYj4wP2I/Yy5qYisiXyIrV20oYyk6U3RyaW5nKGMuamIpOnZvaWQgMH0pfTsKeEUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKHBsKCl8fGZuLkspVW0oImNzcCIsZnVuY3Rpb24oKXt2YXIgYj15RShhLkgsITApOyRtKGEuSCk7cmV0dXJuIGJ9LCExKSxVbSgibWRlIixmdW5jdGlvbigpe3ZhciBiPWNuLkgsYz15RShiLCExKTskbShiKTtyZXR1cm4gY30sITEpLEEuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLGZ1bmN0aW9uKGIpe2lmKGIuZGlzcG9zaXRpb249PT0iZW5mb3JjZSIpe1AoMTc5KTt2YXIgYz1ubihiLmVmZmVjdGl2ZURpcmVjdGl2ZSk7aWYoYyl7dmFyIGQ7YTp7dmFyIGU9Yi5ibG9ja2VkVVJJLGY9a247aWYoZm4uSyYmZSl7dmFyIGc9am4oYyxlKTtpZihnKXt2YXIgaDtkPShoPWxuKGYsYykpPT1udWxsP3ZvaWQgMDpoW2ddO2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBsPWQ7aWYobCl7dmFyIG47YTp7dHJ5e3ZhciBwPW5ldyBVUkwoYi5ibG9ja2VkVVJJKSxxPXAucGF0aG5hbWUuaW5kZXhPZigiOyIpOwpuPXE+PTA/cC5vcmlnaW4rcC5wYXRobmFtZS5zdWJzdHJpbmcoMCxxKTpwLm9yaWdpbitwLnBhdGhuYW1lO2JyZWFrIGF9Y2F0Y2goRCl7fW49dm9pZCAwfXZhciByPW47aWYocil7Zm9yKHZhciB0PW0obCksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpe3ZhciB2PXUudmFsdWU7aWYoIXYuRW8pe3YuRW89ITA7dmFyIHg9e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfTtpZihwbCgpKXt2YXIgeT14LHo9e3R5cGU6MSxibG9ja2VkVXJsOnIsZW5kcG9pbnQ6di5lbmRwb2ludCx2aW9sYXRpb246Yi5lZmZlY3RpdmVEaXJlY3RpdmV9O2lmKHBsKCkpe3ZhciBDPUxsKCJUQUdfRElBR05PU1RJQ1MiLHtldmVudElkOnk9PW51bGw/dm9pZCAwOnkuZXZlbnRJZCxwcmlvcml0eUlkOnk9PW51bGw/dm9pZCAwOnkucHJpb3JpdHlJZH0pO0MudGFnRGlhZ25vc3RpY3M9ejtvbChDKX19ekUoYSx2LmRlc3RpbmF0aW9uSWQsdi5lbmRwb2ludCxjKX19bW4oYywKYi5ibG9ja2VkVVJJKX19fX19KX07dmFyIHpFPWZ1bmN0aW9uKGEsYixjLGQpe2FuKGEuSCxiLGMsMSxkKTtWbSgiY3NwIiwhMCk7Vm0oIm1kZSIsITApO2MhPT02MSYmYyE9PTU2JiZhLks9PT12b2lkIDAmJihhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5ILmpiPjAmJnRvKCExKTthLks9dm9pZCAwfSw1MDApKX0sQUU9bmV3IHhFO3ZhciBCRT1mdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MH07QkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO0NFKHRoaXMpO0lmKDY1KSYmVW0oIm10YmwiLCIxIik7VW0oInYiLCIzIik7VW0oInQiLCJ0Iik7VW0oInBpZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKG5tKGptLmJhLmJoKSl9KTtVbSgiZ3RtIixmdW5jdGlvbigpe3JldHVybiBkdSgpfSk7VW0oInNlcSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKCsrYS5zZXF1ZW5jZU51bWJlcil9KTtVbSgiZXhwIixmdW5jdGlvbigpe3JldHVybiBDcCgpfSl9O3ZhciBDRT1mdW5jdGlvbihhKXtpZihubShqbS5iYS5iaCk9PT12b2lkIDApe3ZhciBiPWZ1bmN0aW9uKCl7bW0oam0uYmEuYmgsRGIoKSk7YS5zZXF1ZW5jZU51bWJlcj0wfTtiKCk7Y2QoYiw4NjRFNSl9ZWxzZSBwbShqbS5iYS5iaCxmdW5jdGlvbigpe2Euc2VxdWVuY2VOdW1iZXI9MH0pO2Euc2VxdWVuY2VOdW1iZXI9MH0sREU9bmV3IEJFO2Z1bmN0aW9uIEVFKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBW2FdfX0KdmFyIEZFPXt9LEdFPShGRVsxNF09ZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOmEuZ2V0UmFuZG9tVmFsdWVzfSxGRVsxNV09ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6KGI9YS5zdWJ0bGUpPT1udWxsP3ZvaWQgMDpiLmRpZ2VzdH0sRkVbMV09RUUoImZldGNoIiksRkVbNl09RUUoIk1hcCIpLEZFWzJdPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tfSxGRVs4XT1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpfSxGRVs5XT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZW50cmllc30sRkVbMTBdPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllc30sRkVbNV09RUUoIlByb21pc2UiKSxGRVsxM109RUUoIlJlZ0V4cCIpLEZFWzNdPWZ1bmN0aW9uKCl7cmV0dXJuIEhjLnNlbmRCZWFjb259LEZFWzddPUVFKCJTZXQiKSxGRVsxMl09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aH0sCkZFWzExXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh9LEZFWzRdPUVFKCJYTUxIdHRwUmVxdWVzdCIpLEZFKSxIRT17fSxJRT0oSEVbMTVdPSEwLEhFKTt2YXIgTkU9L14oaHR0cHM/Oik/XC9cLy87CgpmdW5jdGlvbiBoRigpe307ZnVuY3Rpb24gaUYoKXtJZig2MikmJihoeSgiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQud2FpdEZvclRhZ3MpIT09ITB9KSxoeSgiZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLmZpeE1pc3NpbmdBcGkpIT09ITB9KSl9O3ZhciBqRj1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O2pGLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O3ZhciBrRj1uZXcgakY7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtsdCh7R3U6MCxGdToxLEN1OjIseHU6MyxEdTo0LHl1OjUsRXU6NixBdTo3LEJ1Ojgsd3U6OSx6dToxMCxIdToxMX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7bHQoe0p1OjAsS3U6MSxJdToyfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBOdW1iZXIoYSl9KTt2YXIgbEY9ZnVuY3Rpb24oYSxiLGMsZCl7cnQuY2FsbCh0aGlzKTt0aGlzLmZlPWI7dGhpcy5rZD1jO3RoaXMuYWM9ZDt0aGlzLkxhPW5ldyBNYXA7dGhpcy5oZT0wO3RoaXMuamE9bmV3IE1hcDt0aGlzLnlhPW5ldyBNYXA7dGhpcy5aPXZvaWQgMDt0aGlzLks9YX07d2EobEYscnQpO2xGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuSDt0aGlzLkxhLmNsZWFyKCk7dGhpcy5qYS5jbGVhcigpO3RoaXMueWEuY2xlYXIoKTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5hYztydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdmFyIG1GPWZ1bmN0aW9uKGEpe2lmKGEuSClyZXR1cm4gYS5IO2Eua2QmJmEua2QoYS5LKT9hLkg9YS5LOmEuSD1OcChhLkssYS5mZSk7dmFyIGI7cmV0dXJuKGI9YS5IKSE9bnVsbD9iOm51bGx9LG9GPWZ1bmN0aW9uKGEsYixjKXtpZihtRihhKSlpZihhLkg9PT1hLkspe3ZhciBkPWEuTGEuZ2V0KGIpO2QmJmQoYS5ILGMpfWVsc2V7dmFyIGU9YS5qYS5nZXQoYik7aWYoZSYmZS5kayl7bkYoYSk7dmFyIGY9KythLmhlO2EueWEuc2V0KGYse3BlOmUucGUsSXI6ZS5ubyhjKSxwZXJzaXN0ZW50OmI9PT0iYWRkRXZlbnRMaXN0ZW5lciJ9KTthLkgucG9zdE1lc3NhZ2UoZS5kayhjLGYpLCIqIil9fX0sbkY9ZnVuY3Rpb24oYSl7YS5afHwoYS5aPWZ1bmN0aW9uKGIpe2lmKGIuc291cmNlPT09YS5IKXRyeXt2YXIgYztjPWEuYWM/YS5hYyhiKTp2b2lkIDA7aWYoYyl7dmFyIGQ9Yy5ZcyxlPWEueWEuZ2V0KGQpO2lmKGUpe2UucGVyc2lzdGVudHx8YS55YS5kZWxldGUoZCk7dmFyIGY7KGY9CmUucGUpPT1udWxsfHxmLmNhbGwoZSxlLklyLGMucGF5bG9hZCl9fX1jYXRjaChnKXt9fSxtdChhLkssIm1lc3NhZ2UiLGEuWikpfTt2YXIgcEY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmxpc3RlbmVyLGQ9KDAsYS5fX2dwcCkoImFkZEV2ZW50TGlzdGVuZXIiLGMpO2QmJmMoZCwhMCl9LHFGPWZ1bmN0aW9uKGEsYil7KDAsYS5fX2dwcCkoInJlbW92ZUV2ZW50TGlzdGVuZXIiLGIubGlzdGVuZXIsYi5saXN0ZW5lcklkKX0sckY9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoiYWRkRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIn0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuO2EoYy5yZXR1cm5WYWx1ZSxjLnN1Y2Nlc3MpfX0sc0Y9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoicmVtb3ZlRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIiwKcGFyYW1ldGVyOmEubGlzdGVuZXJJZH0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuLGQ9Yy5yZXR1cm5WYWx1ZS5kYXRhO2E9PW51bGx8fGEoZCxjLnN1Y2Nlc3MpfX07ZnVuY3Rpb24gdEYoYSl7dmFyIGI9e307dmYoYS5kYXRhKT9iPUpTT04ucGFyc2UoYS5kYXRhKTpiPWEuZGF0YTtyZXR1cm57cGF5bG9hZDpiLFlzOmIuX19ncHBSZXR1cm4uY2FsbElkfX0KdmFyIHVGPWZ1bmN0aW9uKGEsYil7dmFyIGM7Yz0oYj09PXZvaWQgMD97fTpiKS50aW1lb3V0TXM7cnQuY2FsbCh0aGlzKTt0aGlzLmNhbGxlcj1uZXcgbEYoYSwiX19ncHBMb2NhdG9yIixmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQuX19ncHA9PT0iZnVuY3Rpb24ifSx0Rik7dGhpcy5jYWxsZXIuTGEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixwRik7dGhpcy5jYWxsZXIuamEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixyRik7dGhpcy5jYWxsZXIuTGEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixxRik7dGhpcy5jYWxsZXIuamEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixzRik7dGhpcy50aW1lb3V0TXM9YyE9bnVsbD9jOjUwMH07d2EodUYscnQpO3VGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5jYWxsZXIuZGlzcG9zZSgpO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9Owp1Ri5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9SHAoZnVuY3Rpb24oKXthKHZGLCEwKX0pLGQ9dGhpcy50aW1lb3V0TXM9PT0tMT92b2lkIDA6c2V0VGltZW91dChmdW5jdGlvbigpe2MoKX0sdGhpcy50aW1lb3V0TXMpO29GKHRoaXMuY2FsbGVyLCJhZGRFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oZSxmKXtjbGVhclRpbWVvdXQoZCk7dHJ5e3ZhciBnO3ZhciBoOygoaD1lLnBpbmdEYXRhKT09bnVsbD92b2lkIDA6aC5ncHBWZXJzaW9uKT09PXZvaWQgMHx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEifHxlLnBpbmdEYXRhLmdwcFZlcnNpb249PT0iMS4wIj8oYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjEsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0lTX0RFUFJFQ0FURURfU1BFQyIsCmFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pOkFycmF5LmlzQXJyYXkoZS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMpP2c9ZTooYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjIsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0VYUEVDVEVEX0FQUExJQ0FUSU9OX1NFQ1RJT05fQVJSQVkiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pO2EoZyxmKX1jYXRjaChsKXtpZihlPT1udWxsPzA6ZS5saXN0ZW5lcklkKXRyeXtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKX1jYXRjaChuKXthKHdGLCEwKTtyZXR1cm59YSh4RiwhMCl9fX0pfTsKdUYucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7b0YodGhpcy5jYWxsZXIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLHtsaXN0ZW5lcjpmdW5jdGlvbigpe30sbGlzdGVuZXJJZDphfSl9Owp2YXIgeEY9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19VTkFWQUlMQUJMRSIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9LHZGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfTElTVEVORVJfUkVHSVNUUkFUSU9OX1RJTUVPVVQiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx3Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX1JFTU9WRV9FVkVOVF9MSVNURU5FUl9FUlJPUiIsaW50ZXJuYWxFcnJvclN0YXRlOjIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9O2Z1bmN0aW9uIHlGKGEpe3ZhciBiO2lmKCEoYj1hLnBpbmdEYXRhLnNpZ25hbFN0YXR1cz09PSJyZWFkeSIpKXt2YXIgYz1hLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucztiPSFjfHxjLmxlbmd0aD09PTEmJmNbMF09PT0tMX1pZihiKXtrRi5ncHBTdHJpbmc9YS5waW5nRGF0YS5ncHBTdHJpbmc7dmFyIGQ9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMuam9pbigiLCIpO2tGLkg9ZH19ZnVuY3Rpb24gekYoKXt0cnl7dmFyIGE9bmV3IHVGKEEse3RpbWVvdXRNczotMX0pO21GKGEuY2FsbGVyKSYmYS5hZGRFdmVudExpc3RlbmVyKHlGKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBBRigpe3ZhciBhPVtbImN2IixFKDEpXSxbInJ2IixFKDE0KV0sWyJ0YyIsY0EudGFncy5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KS5sZW5ndGhdXSxiPUpmKDE1KTtiJiZhLnB1c2goWyJ4IixiXSk7dmFyIGM9Q3AoKTtjJiZhLnB1c2goWyJ0YWdfZXhwIixjXSk7cmV0dXJuIGF9O3ZhciBCRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O3RoaXMuSz17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJoZiIsZi5qb2luKCIuIildKTt2YXIgZz1hLktbY118fFtdO2cubGVuZ3RoJiZlLnB1c2goWyJodCIsZy5qb2luKCIuIildKTtkJiYoZGVsZXRlIGEuSFtjXSxkZWxldGUgYS5LW2NdKTtyZXR1cm4gZX0pfSxDRj1mdW5jdGlvbigpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlIDE6YXw9MTticmVhaztjYXNlIDI6YXw9MjticmVhaztjYXNlIDM6YXw9NH1yZXR1cm4gYX19LERGO3ZhciBFRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPSIiO2ZuLk4mJk0oNTE2KSYmZnooZnVuY3Rpb24oKXt2YXIgYj1bXTthLkgmJmIucHVzaChbInBzZCIsYS5IXSk7cmV0dXJuIGJ9KX0sRkY7ZnVuY3Rpb24gR0YoKXtyZXR1cm4hMX0KZnVuY3Rpb24gSEYoKXt2YXIgYT17fTtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe319O2Z1bmN0aW9uIElGKCl7dmFyIGE9SkY7cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt2YXIgZT1kJiZkLmV2ZW50O0tGKGMpO3ZhciBmPUJoKGIpP3ZvaWQgMDoxLGc9bmV3IGtiO0diKGMsZnVuY3Rpb24ocix0KXt2YXIgdT1VZCh0LHZvaWQgMCxmKTt1PT09dm9pZCAwJiZ0IT09dm9pZCAwJiZQKDQ0KTtnLnNldChyLHUpfSk7YS5RYihRZigpKTt2YXIgaD17Um46aGcoYiksZXZlbnRJZDplPT1udWxsP3ZvaWQgMDplLmlkLHByaW9yaXR5SWQ6ZSE9PXZvaWQgMD9lLnByaW9yaXR5SWQ6dm9pZCAwLHByaW9yaXR5UXVldWU6ZSE9PXZvaWQgMD9lLnByaW9yaXR5UXVldWU6dm9pZCAwLHdnOmUhPT12b2lkIDA/ZnVuY3Rpb24ocil7ZS5sZC53ZyhyKX06dm9pZCAwLFBiOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGxvZzpmdW5jdGlvbigpe30sTnI6e2luZGV4OmQ9PW51bGw/dm9pZCAwOmQuaW5kZXgsdHlwZTpkPT1udWxsP3ZvaWQgMDpkLnR5cGUsbmFtZTpkPT1udWxsP3ZvaWQgMDpkLm5hbWV9LAppdDohIUtBKGIsMyksb3JpZ2luYWxFdmVudERhdGE6ZT09bnVsbD92b2lkIDA6ZS5vcmlnaW5hbEV2ZW50RGF0YX07ZSYmZS5jYWNoZWRNb2RlbFZhbHVlcyYmKGguY2FjaGVkTW9kZWxWYWx1ZXM9e2d0bTplLmNhY2hlZE1vZGVsVmFsdWVzLmd0bSxlY29tbWVyY2U6ZS5jYWNoZWRNb2RlbFZhbHVlcy5lY29tbWVyY2V9KTtpZihHRigpKXt2YXIgbD1IRigpLG4scDtoLkFiPXt3azpbXSx5Zzp7fSxqYzpmdW5jdGlvbihyLHQsdSl7dD09PTEmJihuPXIpO3Q9PT03JiYocD11KTtsKHIsdCx1KX0sZWk6VmgoKX07aC5sb2c9ZnVuY3Rpb24ocil7dmFyIHQ9T2EuYXBwbHkoMSxhcmd1bWVudHMpO24mJmwobiw0LHtsZXZlbDpyLHNvdXJjZTpwLG1lc3NhZ2U6dH0pfX0KdmFyIHE9cmYoYSxoLFtiLGddKTthLlFiKCk7cSBpbnN0YW5jZW9mIFRhJiYocS50eXBlPT09InJldHVybiI/cT1xLmRhdGE6cT12b2lkIDApO3JldHVybiBUZChxLHZvaWQgMCxmKX19ZnVuY3Rpb24gS0YoYSl7dmFyIGI9YS5ndG1PblN1Y2Nlc3MsYz1hLmd0bU9uRmFpbHVyZTt5YihiKSYmKGEuZ3RtT25TdWNjZXNzPWZ1bmN0aW9uKCl7YmQoYil9KTt5YihjKSYmKGEuZ3RtT25GYWlsdXJlPWZ1bmN0aW9uKCl7YmQoYyl9KX07dmFyIExGPWZ1bmN0aW9uKGEpe2l4KGEpfTt2YXIgTUY9ZnVuY3Rpb24oYSl7VihhLEguSi50Zyxjby5pYS5jYil9O2Z1bmN0aW9uIE5GKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMCl9O3ZhciBPRj1bRi5ELnppXS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2xpY2UoMil9KTt2YXIgUEY9ZnVuY3Rpb24oYSl7VShhLEYuRC56aSxhbCg4LE5GKSl9O2Z1bmN0aW9uIFFGKGEpe31RRi5QPSJpbnRlcm5hbC5hZGRBZHNDbGlja0lkcyI7ZnVuY3Rpb24gUkYoYSxiKXt2YXIgYz10aGlzO31SRi5wdWJsaWNOYW1lPSJhZGRDb25zZW50TGlzdGVuZXIiO3ZhciBTRj0hMTtmdW5jdGlvbiBURihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYilpZihTRil0cnl7YVtiXSgpfWNhdGNoKGMpe1AoNzcpfWVsc2UgYVtiXSgpfWZ1bmN0aW9uIFVGKGEsYixjKXt2YXIgZD10aGlzLGU7aWYoIWxoKGEpfHwhaGgoYil8fCFtaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGQsImxpc3Rlbl9kYXRhX2xheWVyIixhKX1dKTtlPXlCKCkuYWRkTGlzdGVuZXIoYSxUZChiLHZvaWQgMCwxKSxjPT09bnVsbD92b2lkIDA6Yyk7cmV0dXJuIGV9VUYuUD0iaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gVkYoYSxiLGMpe31WRi5wdWJsaWNOYW1lPSJhZGREb2N1bWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFdGKGEsYixjLGQpe31XRi5wdWJsaWNOYW1lPSJhZGRFbGVtZW50RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gWEYoYSl7cmV0dXJuIGEuVC54YigpfTtmdW5jdGlvbiBZRihhKXt9WUYucHVibGljTmFtZT0iYWRkRXZlbnRDYWxsYmFjayI7CnZhciBaRj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9hOlN0cmluZyhyaigpKX0sYkc9ZnVuY3Rpb24oYSxiKXskRihhLCJpbml0IiwhMSl8fChhRyhhLCJpbml0IiwhMCksYigpKX0sJEY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWNHKGEpO3JldHVybiBPYihkLGIsYyl9LGRHPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWNHKGEpLGY9T2IoZSxiLGQpLGc9YyhmKTtyZXR1cm4gZVtiXT1nfSxhRz1mdW5jdGlvbihhLGIsYyl7Y0coYSlbYl09Y30sY0c9ZnVuY3Rpb24oYSl7dmFyIGI9a2ooImF1dG9FdmVudHNTZXR0aW5ncyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2IuaGFzT3duUHJvcGVydHkoYSl8fChiW2FdPXt9KTtyZXR1cm4gYlthXX0sZUc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtldmVudDpiLCJndG0uZWxlbWVudCI6YSwiZ3RtLmVsZW1lbnRDbGFzc2VzIjpvZChhLCJjbGFzc05hbWUiKSwiZ3RtLmVsZW1lbnRJZCI6YS5mb3J8fGVkKGEsImlkIil8fAoiIiwiZ3RtLmVsZW1lbnRUYXJnZXQiOmEuZm9ybVRhcmdldHx8b2QoYSwidGFyZ2V0Iil8fCIifTtjJiYoZFsiZ3RtLnRyaWdnZXJzIl09Yy5qb2luKCIsIikpO2RbImd0bS5lbGVtZW50VXJsIl09KGEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/YS5mb3JtQWN0aW9uOiIiKXx8YS5hY3Rpb258fG9kKGEsImhyZWYiKXx8YS5zcmN8fGEuY29kZXx8YS5jb2RlYmFzZXx8IiI7cmV0dXJuIGR9OwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwp2YXIgb0c9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGwmJmEubGVuZ3RoIT09dm9pZCAwJiZ5YihhLnB1c2gpfSxyRz1mdW5jdGlvbihhKXt2YXIgYj1wRy5leGVjKGFbMF0pO2lmKCFiKXJldHVybiBudWxsO3ZhciBjPWJbMl07aWYoYyE9PXZvaWQgMCYmYy5tYXRjaCgvXihndG1cZCt8Z3RhZ18uKykkLykpcmV0dXJuIG51bGw7dmFyIGQsZTt6YihhWzFdKT8oZD1hWzFdLGU9W10uc2xpY2UuY2FsbChhLDIpKTooZD1hWzFdJiZhWzFdLmhpdFR5cGUsZT1bXS5zbGljZS5jYWxsKGEsMSkpO2lmKCFkKXJldHVybiBudWxsO3ZhciBmO3ZhciBnPXFHW2RdLGg9ZTtpZihoLmxlbmd0aD09PTEmJmhbMF0hPW51bGwmJnR5cGVvZiBoWzBdPT09Im9iamVjdCIpZj1oWzBdO2Vsc2V7Zm9yKHZhciBsPXt9LG49TWF0aC5taW4oZz9nLmxlbmd0aCsxOjEsaC5sZW5ndGgpLHA9MDtwPG47cCsrKWlmKHR5cGVvZiBoW3BdPT09Im9iamVjdCIpe2Zvcih2YXIgcSBpbiBoW3BdKWhbcF0uaGFzT3duUHJvcGVydHkocSkmJgoobFtxXT1oW3BdW3FdKTticmVha31lbHNlIGcmJnA8Zy5sZW5ndGgmJihsW2dbcF1dPWhbcF0pO2Y9bH12YXIgcj1mO3IuaGl0VHlwZT1kO3JldHVybntHZzpkLENnOnJ9fSxwRz0vXigoLispXC4pP3NlbmQkLyxxRz17cGFnZXZpZXc6WyJwYWdlIl0sZXZlbnQ6WyJldmVudENhdGVnb3J5IiwiZXZlbnRBY3Rpb24iLCJldmVudExhYmVsIiwiZXZlbnRWYWx1ZSJdLHNvY2lhbDpbInNvY2lhbE5ldHdvcmsiLCJzb2NpYWxBY3Rpb24iLCJzb2NpYWxUYXJnZXQiXSx0aW1pbmc6WyJ0aW1pbmdDYXRlZ29yeSIsInRpbWluZ1ZhciIsInRpbWluZ1ZhbHVlIiwidGltaW5nTGFiZWwiXX07CmZ1bmN0aW9uIHNHKGEpe2lmKCFoaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiZnVuY3Rpb24iXSxhcmd1bWVudHMpO0wodGhpcywiYWNjZXNzX2dsb2JhbHMiLCJyZWFkIiwiR29vZ2xlQW5hbHl0aWNzT2JqZWN0Iik7TCh0aGlzLCJhY2Nlc3NfZ2xvYmFscyIsInJlYWR3cml0ZSIsImdhLnEiKTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwiZXhlY3V0ZSIsImdhLnEiKTt2YXIgYj0wLGM9VGQoYSk7YmQoZnVuY3Rpb24oKXt2YXIgZD1TQSgpO2lmKGQmJm9HKGQucSkpe2Zvcih2YXIgZT1kLnEsZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1yRyhlW2ZdKTtiKys7ZyE9PW51bGwmJmMoZy5HZyxnLkNnKX12YXIgaD1lLnB1c2g7ZS5wdXNoPWZ1bmN0aW9uKCl7dmFyIGw9U0EoKSxuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2guYXBwbHkoZSxuKTtpZihsJiYKYj49bC5xLmxlbmd0aCsobC5xZHx8MCkpcmV0dXJuIDA7dmFyIHA9ckcuYXBwbHkodGhpcyxuKTtiKys7aWYocD09PW51bGwpcmV0dXJuIDA7YyhwLkdnLHAuQ2cpO3JldHVybiAwfX19KTt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7aWYoIWhoKGEpfHwhamgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImZ1bmN0aW9uIiwiYXJyYXkiXSxhcmd1bWVudHMpO2JwKGZ1bmN0aW9uKCl7YS5pbnZva2UoYy5UKX0sVGQoYikpO31hSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSI7ZnVuY3Rpb24gYkgoYSxiKXt2YXIgYz10aGlzO2lmKCFoaChhKXx8IWpoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJmdW5jdGlvbiIsImFycmF5Il0sYXJndW1lbnRzKTthcChmdW5jdGlvbihkKXthLmludm9rZShjLlQsVWQoZCkpfSxUZChiKSk7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7aWYoIWVoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGIpfHx7fSxlPVRkKGEsdGhpcy5ULDEpLnJiKCksZj1lLk07ZC5vbWl0RXZlbnRDb250ZXh0JiYoZj1KQyhuZXcgeUMoZS5NLmV2ZW50SWQsZS5NLnByaW9yaXR5SWQpKSk7dmFyIGc9bmV3IGFJKGUudGFyZ2V0LGUuZXZlbnROYW1lLGYpO2lmKCFkLm9taXRIaXREYXRhKWZvcih2YXIgaD1iSShlKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1UoZyxwLGhbcF0pfWlmKGQub21pdE1ldGFkYXRhKWcubWV0YWRhdGE9e307ZWxzZSBmb3IodmFyIHE9Y0koZSkscj1tKE9iamVjdC5rZXlzKHEpKSx0PXIubmV4dCgpOyF0LmRvbmU7dD0Kci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7VihnLHUscVt1XSl9Zy5pc0Fib3J0ZWQ9ZS5pc0Fib3J0ZWQ7Yz1VZChmSShnKSx0aGlzLlQsMSk7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dHJ5e3ZhciBkPShifHwiIikuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iaWciLmluZGV4T2YoZSk+PTB9KS5qb2luKCIiKTtjPW5ldyBQZChuZXcgUmVnRXhwKGEsZCkpfWNhdGNoKGUpe31yZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciB0ST1mdW5jdGlvbihhKXt2YXIgYj1zSSgpLGM9Yi5oZWlnaHQsZD1iLndpZHRoLGU9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWUuYm90dG9tLWUudG9wLGc9ZS5yaWdodC1lLmxlZnQ7cmV0dXJuIGYmJmc/KDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS5sZWZ0LDApK01hdGgubWF4KGUucmlnaHQtZCwwKSkvZywxKSkqKDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS50b3AsMCkrTWF0aC5tYXgoZS5ib3R0b20tYywwKSkvZiwxKSk6MH0sc0k9ZnVuY3Rpb24oKXt2YXIgYT1CLmJvZHksYj1CLmRvY3VtZW50RWxlbWVudHx8YSYmYS5wYXJlbnRFbGVtZW50LGMsZDtpZihCLmNvbXBhdE1vZGUmJkIuY29tcGF0TW9kZSE9PSJCYWNrQ29tcGF0IiljPWI/Yi5jbGllbnRIZWlnaHQ6MCxkPWI/Yi5jbGllbnRXaWR0aDowO2Vsc2V7dmFyIGU9ZnVuY3Rpb24oZixnKXtyZXR1cm4gZiYmZz9NYXRoLm1pbihmLGcpOk1hdGgubWF4KGYsZyl9O2M9ZShiP2IuY2xpZW50SGVpZ2h0OjAsYT8KYS5jbGllbnRIZWlnaHQ6MCk7ZD1lKGI/Yi5jbGllbnRXaWR0aDowLGE/YS5jbGllbnRXaWR0aDowKX1yZXR1cm57d2lkdGg6ZCxoZWlnaHQ6Y319O3ZhciB2ST1mdW5jdGlvbihhKXtpZih1SSl7dmFyIGI9YWwoMjQsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGE+PTAmJmE8Yi5sZW5ndGgmJmJbYV0pe3ZhciBjOyhjPWJbYV0pPT1udWxsfHxjLmRpc2Nvbm5lY3QoKTtiW2FdPXZvaWQgMH19ZWxzZSBBLmNsZWFySW50ZXJ2YWwoYSl9LHlJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdPjE/Y1tkXT0xOmNbZF08MCYmKGNbZF09MCk7aWYodUkpe3ZhciBlPSExO2JkKGZ1bmN0aW9uKCl7ZXx8d0koYSxiLGMpKCl9KTtyZXR1cm4geEkoZnVuY3Rpb24oZil7ZT0hMDtmb3IodmFyIGc9e0hnOjB9O2cuSGc8Zi5sZW5ndGg7Zz17SGc6Zy5IZ30sZy5IZysrKWJkKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe2EoZltoLkhnXSl9fShnKSl9LApiLGMpfXJldHVybiBjZCh3SShhLGIsYyksMUUzKX0sd0k9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoaCxsKXt2YXIgbj17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjAsd2lkdGg6MCxoZWlnaHQ6MH0scD17Ym91bmRpbmdDbGllbnRSZWN0OmguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaW50ZXJzZWN0aW9uUmF0aW86bCxpbnRlcnNlY3Rpb25SZWN0Om4saXNJbnRlcnNlY3Rpbmc6bD4wLHJvb3RCb3VuZHM6bix0YXJnZXQ6aCx0aW1lOk5iKCl9O2JkKGZ1bmN0aW9uKCl7YShwKX0pfWZvcih2YXIgZT1bXSxmPVtdLGc9MDtnPGIubGVuZ3RoO2crKyllLnB1c2goMCksZi5wdXNoKC0xKTtjLnNvcnQoZnVuY3Rpb24oaCxsKXtyZXR1cm4gaC1sfSk7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDtoKyspe3ZhciBsPXRJKGJbaF0pO2lmKGw+ZVtoXSlmb3IoO2ZbaF08Yy5sZW5ndGgtMSYmbD49Y1tmW2hdKzFdOylkKGJbaF0sbCksZltoXSsrO2Vsc2UgaWYobDwKZVtoXSlmb3IoO2ZbaF0+PTAmJmw8PWNbZltoXV07KWQoYltoXSxsKSxmW2hdLS07ZVtoXT1sfX19LHhJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9bmV3IEEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYSx7dGhyZXNob2xkOmN9KSxlPTA7ZTxiLmxlbmd0aDtlKyspZC5vYnNlcnZlKGJbZV0pO2Zvcih2YXIgZj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSksZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKCFmW2ddKXJldHVybiBmW2ddPWQsZztyZXR1cm4gZi5wdXNoKGQpLTF9LHVJPSEoIUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ8fCFBLkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpOwp2YXIgSkk9ZnVuY3Rpb24oYSl7dmFyIGIsYz0oYj1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVTZWxlY3RvcikhPW51bGw/YjohMCxkLGU9KGQ9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlVmlzaWJpbGl0eSkhPW51bGw/ZDohMCxmLGc9KGY9YT09bnVsbD92b2lkIDA6YS5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKSE9bnVsbD9mOiExLGg9KGE9PW51bGw/dm9pZCAwOmEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMpfHxbXSxsPShhPT1udWxsP3ZvaWQgMDphLmZpZWxkRmlsdGVycyl8fHtlbWFpbDohMCxwaG9uZTohMSxhZGRyZXNzOiExfSxuPWFsKDYsZnVuY3Rpb24oKXtyZXR1cm57fX0pLHA9ekkoe2luY2x1ZGVTZWxlY3RvcjpjLGluY2x1ZGVWaXNpYmlsaXR5OmUsZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6aCxmaWVsZEZpbHRlcnM6bH0pLHE9bltwXTtpZihxJiZOYigpLXEudGltZXN0YW1wPDIwMCl7dmFyIHI9cS5yZXN1bHQsdDsoci5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8CigodD1yLmdpKT09bnVsbD8wOnQuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gcn12YXIgdT1BSSgpLHY9dS5zdGF0dXMseD1bXSx5LHosQz1bXTtpZihNKDU2OCkpe3ZhciBEPUJJKGwpLEk9Q0kodS5lbGVtZW50cyxEKSxHPURJKEkpLE49RUkoRyxoKSxTPUZJKE4pO3k9Uy5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5EYT09PUZELkJifSlbMF07Zm9yKHZhciBXPVtdLGVhPXtJZzowfTtlYS5JZzxELmxlbmd0aDtlYT17SWc6ZWEuSWd9LGVhLklnKyspe3ZhciBqYT1OLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIGZ1bmN0aW9uKGliKXtyZXR1cm4gaWIuRGE9PT1EW3FhLklnXX19KGVhKSk7amEubGVuZ3RoPjEwJiYodj0iMyIsamE9amEuc2xpY2UoMCwxMCkpO1c9Vy5jb25jYXQoamEpfU49VzshZyYmUyYmKE49Uyk7Zm9yKHZhciBmYT0wO2ZhPE4ubGVuZ3RoO2ZhKyspe3ZhciBzYT1OW2ZhXTtzYS5EYSE9PUZELktoJiZDLnB1c2goR0koc2EsYyxlKSl9fWVsc2V7aWYobC5lbWFpbCl7dmFyIGRhPQpISSh1LmVsZW1lbnRzKTt4PUVJKGRhLGgpO3k9SUkoeCk7ZGEubGVuZ3RoPjEwJiYodj0iMyIpfSFnJiZ5JiYoeD1beV0pO2Zvcih2YXIgbWE9MDttYTx4Lmxlbmd0aDttYSsrKUMucHVzaChHSSh4W21hXSxjLGUpKTtDPUMuc2xpY2UoMCwxMCl9eSYmKHo9R0koeSxjLGUpKTt2YXIgUGE9e2VsZW1lbnRzOkMsZ2k6eixzdGF0dXM6dn07bltwXT17dGltZXN0YW1wOk5iKCkscmVzdWx0OlBhfTt2YXIgRmE7KFBhLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwoKEZhPVBhLmdpKT09bnVsbD8wOkZhLmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIFBhfSxEST1mdW5jdGlvbihhKXt2YXIgYj1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELktofSksYz1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELlhkfSk7aWYoYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5jZX0pLmxlbmd0aD09PTAmJmMubGVuZ3RoPT09CjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0sZj1lLkNhLnNwbGl0KCIgIik7Zi5sZW5ndGg+MSYmYS5wdXNoKHtDYTpmWzBdLERhOkZELlhkLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9LHtDYTpmLnNsaWNlKDEpLmpvaW4oIiAiKSxEYTpGRC5jZSxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSl9Zm9yKHZhciBnLGg9MCxsLG49ZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5lZSYmdS5DYS5sZW5ndGg+PTMmJnUuQ2EubGVuZ3RoPD00fSxwPTA7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWFbcF07aWYobihxKSYmZyYmcS5lbGVtZW50LnBhcmVudEVsZW1lbnQ9PT1nJiZoPDMpe2lmKGgrPTEsbCs9cS5DYSxoPT09Myl7dmFyIHI9cC1oKzE7aWYobD1LSVtGRC5lZV0ubmEobCkpYVtyXS5DYT1sfX1lbHNlIGlmKGg9MCxsPSIiLGc9dm9pZCAwLG4ocSkpe2grKztsPXEuQ2E7dmFyIHQ9dm9pZCAwO2c9KHQ9cS5lbGVtZW50LnBhcmVudEVsZW1lbnQpIT1udWxsPwp0OnZvaWQgMH19cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiFuKHUpfSl9LE9JPWZ1bmN0aW9uKGEsYil7aWYoYS52YWx1ZSYmTEkuaW5kZXhPZigoYS50eXBlfHwidGV4dCIpLnRvTG93ZXJDYXNlKCkpIT09LTEpe3ZhciBjPWEuYXV0b2NvbXBsZXRlO2lmKGMpZm9yKHZhciBkPWMuc3BsaXQoIiAiKSxlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPU1JKGEudmFsdWUsYixkW2VdKTtpZihmKXJldHVybiBmfXZhciBnLGg9W2EubmFtZSxhLmlkLChnPWEuYXJpYUxhYmVsKSE9bnVsbD9nOnZvaWQgMCxhLnBsYWNlaG9sZGVyXSxsPWEucGFyZW50RWxlbWVudDtsJiZsLnRhZ05hbWU9PT0iTEFCRUwiJiZoLnB1c2gobC5pbm5lclRleHQpO3ZhciBuPWEucHJldmlvdXNFbGVtZW50U2libGluZztuJiZuLnRhZ05hbWU9PT0iTEFCRUwiJiYhbi5odG1sRm9yJiZoLnB1c2gobi5pbm5lclRleHQpO2lmKGEuaWQpe3ZhciBwPVtdO3RyeXtwPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnbGFiZWxbZm9yPSInKwphLmlkKyciXScpfWNhdGNoKEQpe31mb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKyloLnB1c2gocFtxXS5pbm5lclRleHQpfWg9aC5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIEQmJkQudHJpbSgpfSk7Zm9yKHZhciByLHQ9MCx1PTA7dTxoLmxlbmd0aDt1Kyspe3ZhciB2PU5JKGEsYixoW3VdKTtpZih2KXt2YXIgeD12LHk9eC5DYSx6PXguRGEsQz14LlhzO0M+dCYmKHQ9QyxyPXtDYTp5LERhOnp9KX19cmV0dXJuIHJ9fSxOST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0ubmUpe3ZhciBmPUtJW2VdLm5lLmV4ZWMoYy50cmltKCkpO2lmKGYpe3ZhciBnPWEsaD1bXSxsPWcudmFsdWUudHJpbSgpO2wmJmgucHVzaChsKTtpZihnLnRhZ05hbWU9PT0iU0VMRUNUIil0cnl7dmFyIG49Zy5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrZy52YWx1ZSsnIl0nKSxwPW4mJm4uaW5uZXJUZXh0LnRyaW0oKTtwJiZoLnB1c2gocCl9Y2F0Y2godSl7fWZvcih2YXIgcT0KaCxyPXZvaWQgMCx0PTA7dDxxLmxlbmd0aCYmIXI7dCsrKXI9S0lbZV0ubmEocVt0XSk7aWYocilyZXR1cm57RGE6ZSxDYTpyLFhzOmZbMF0ubGVuZ3RoL2MudHJpbSgpLmxlbmd0aH19fX19LE1JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5hdXRvY29tcGxldGUmJktJW2VdLmF1dG9jb21wbGV0ZS5pbmRleE9mKGMpPj0wKXt2YXIgZj1LSVtlXS5uYShhLnRyaW0oKSk7aWYoZilyZXR1cm57RGE6ZSxDYTpmfX19fSxCST1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmVtYWlsJiZiLnB1c2goRkQuQmIpO2EucGhvbmUmJmIucHVzaChGRC5lZSk7YS5hZGRyZXNzJiZiLnB1c2goRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQuS2gpO3JldHVybiBifSxDST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0sZj1lLmVsZW1lbnQsZz1lLk9jLGg7YTp7dmFyIGw9ZixuPWIsCnA9bC5pbm5lckhUTUw7UEkuaW5kZXhPZihsLnRhZ05hbWUpPj0wJiYocD1sLnZhbHVlfHxwKTtpZihwKXt2YXIgcTtiOntmb3IodmFyIHI9cCx0PW4sdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgdj10W3VdO2lmKCFLSVt2XS5tZSl7dmFyIHg9S0lbdl0ubmEoci50cmltKCkpO2lmKHgpe3E9e0RhOnYsQ2E6eH07YnJlYWsgYn19fXE9dm9pZCAwfWlmKHEpe2g9cTticmVhayBhfWlmKFBJLmluZGV4T2YobC50YWdOYW1lKSE9PS0xKXtoPU9JKGwsbik7YnJlYWsgYX19aD12b2lkIDB9dmFyIHk9aDtpZih5KXt2YXIgej15O2MucHVzaCh7Q2E6ei5DYSxEYTp6LkRhLGVsZW1lbnQ6ZixPYzpnfSl9fXJldHVybiBjfSxGST1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIGI7dmFyIGM9e30sZDtmb3IoZCBpbiBGRClpZihjPXtWZzpjLlZnfSxjLlZnPWQsRkQuaGFzT3duUHJvcGVydHkoYy5WZykpe3ZhciBlPWEuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gZy5EYT09PQpGRFtmLlZnXX19KGMpKTtlLmxlbmd0aCE9PTAmJihGRFtjLlZnXT09PUZELkJiJiYoZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFSSS50ZXN0KGYuQ2EpfSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiBmLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hckkoZi5lbGVtZW50KX0pKSxiLnB1c2goZVswXSkpfXJldHVybiBifSxHST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5lbGVtZW50LGU9YS5PYyxmPXtDYTphLkNhLHR5cGU6YS5EYSx0YWdOYW1lOmQudGFnTmFtZX07aWYoYil7dmFyIGcsaD1TSShkKTtpZihnPShlP2UrInwiK2g6aCkuc2xpY2UoMCxUSSkpZi5xdWVyeVNlbGVjdG9yPWd9YyYmKGYuaXNWaXNpYmxlPSFySShkKSk7ZSYmKGYuZGk9ITApO3JldHVybiBmfSx6ST1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtiPWEuaW5jbHVkZVNlbGVjdG9yO2M9YS5pbmNsdWRlVmlzaWJpbGl0eTtkPWEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM7CmU9YS5maWVsZEZpbHRlcnM7dmFyIGY9ISFiKyIuIishIWM7ZC5sZW5ndGgmJihmKz0iLiIrZC5qb2luKCIuIikpO3JldHVybiBmKz0iLiIrZS5lbWFpbCsiLiIrZS5waG9uZSsiLiIrZS5hZGRyZXNzfSxJST1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiO2I9UUkoYSxmdW5jdGlvbihjKXtyZXR1cm4hUkkudGVzdChjLkNhKX0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4gYy5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIXJJKGMuZWxlbWVudCl9KTtyZXR1cm4gYlswXX19LEVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtpZihnJiZwSShhW2RdLmVsZW1lbnQsZykpe2U9ITE7YnJlYWt9fWFbZF0uRGE9PT1GRC5CYiYmTSg2MDIpJiYoUkkudGVzdChhW2RdLkNhKXx8YVtkXS5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PQoiQSImJmFbZF0uZWxlbWVudC5oYXNBdHRyaWJ1dGUoImhyZWYiKSYmYVtkXS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluZGV4T2YoIm1haWx0bzoiKSE9PS0xP2U9ITE6YVtkXS5lbGVtZW50LmNsb3Nlc3QoImZvb3RlciIpIT09bnVsbCYmKGU9ITEpKTtlJiZjLnB1c2goYVtkXSl9cmV0dXJuIGN9LFFJPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg8PTEpcmV0dXJuIGE7dmFyIGM9YS5maWx0ZXIoYik7cmV0dXJuIGMubGVuZ3RoPT09MD9hOmN9LFNJPWZ1bmN0aW9uKGEpe2lmKGE9PT1CLmJvZHkpcmV0dXJuImJvZHkiO2lmKGEuaWQpcmV0dXJuIiMiK2EuaWQ7dmFyIGI9YS5wYXJlbnRFbGVtZW50O2lmKGIpe3ZhciBjPVNJKGIpLGQ9VUkoYSxiKSxlPVZJKGEpKyI6bnRoLWNoaWxkKCIrZCsiKSI7cmV0dXJuIGM/YysiPiIrZTplfXZhciBmPWEucGFyZW50Tm9kZTtpZihmIGluc3RhbmNlb2YgU2hhZG93Um9vdCl7dmFyIGc9VUkoYSxmKTtyZXR1cm4gVkkoYSkrIjpudGgtY2hpbGQoIisKZysiKSJ9cmV0dXJuIGEudGFnTmFtZT9hLnRhZ05hbWUudG9Mb3dlckNhc2UoKToiIn0sVkk9ZnVuY3Rpb24oYSl7aWYoYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0Lmxlbmd0aD4wKXt2YXIgYj1BcnJheS5mcm9tKGEuY2xhc3NMaXN0LGZ1bmN0aW9uKGMpe3JldHVybiBDU1MuZXNjYXBlKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmxlbmd0aD4wfSk7aWYoYi5sZW5ndGg+MClyZXR1cm4iLiIrYi5qb2luKCIuIil9cmV0dXJuIiJ9LFVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGRyZW4sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKGNbZF09PT1hKXJldHVybiBkKzE7cmV0dXJuIDF9LEhJPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmVsZW1lbnQsZj1kLk9jLGc9ZS50ZXh0Q29udGVudDtlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCImJmUudmFsdWUmJihnPWUudmFsdWUpO2lmKGcpe3ZhciBoPQpnLm1hdGNoKEtEKTtpZihoKXt2YXIgbD1oWzBdO0xEKGwpfHxiLnB1c2goe2VsZW1lbnQ6ZSxDYTpsLERhOkZELkJiLE9jOmZ9KX19fXJldHVybiBifSxBST1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Qi5ib2R5O2lmKCFiKXJldHVybntlbGVtZW50czphLHN0YXR1czoiNCJ9O3ZhciBjPVdJKGIsMCwiIixhKTtyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6Y319LFdJPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSxmPWUubGVuZ3RoPjFFND8iMiI6IjEiLGc9MDtnPE1hdGgubWluKGUubGVuZ3RoLDFFNCk7ZysrKXt2YXIgaD1lW2ddO2lmKCEoWEkuaW5kZXhPZihoLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApJiZoLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pe3ZhciBsPSExO2lmKE0oNTgyKSYmaC5zaGFkb3dSb290JiZiPDEpe3ZhciBuPVNJKGgpO1dJKGguc2hhZG93Um9vdCxiKzEsYz9jKyJ8IituOm4sZCk9PT0iMiImJgooZj0iMiIpO2w9ITB9dmFyIHA9ITE7aWYoIWwpZm9yKHZhciBxPTA7cTxNYXRoLm1pbihoLmNoaWxkRWxlbWVudENvdW50LDFFNCk7cSsrKWlmKCEoWUkuaW5kZXhPZihoLmNoaWxkcmVuW3FdLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApKXtwPSEwO2JyZWFrfSghcCYmIWx8fE0oNTY4KSYmUEkuaW5kZXhPZihoLnRhZ05hbWUpIT09LTEpJiZkLnB1c2goe2VsZW1lbnQ6aCxPYzpiPjA/Yzp2b2lkIDB9KX19cmV0dXJuIGZ9LFJJPS9zdXBwb3J0fG5vcmVwbHkvaSxYST0iU0NSSVBUIFNUWUxFIElNRyBTVkcgUEFUSCBCUiBOT1NDUklQVCBURVhUQVJFQSIuc3BsaXQoIiAiKSxZST1bIkJSIl0sVEk9TmYoNzAsNTApLFBJPVsiSU5QVVQiLCJTRUxFQ1QiXSxMST0idGV4dCB0ZWwgc2VhcmNoIG51bWJlciBoaWRkZW4gZW1haWwgc2VsZWN0LW9uZSIuc3BsaXQoIiAiKSxaST1SZWdFeHAoInBob25lfG1vYmlsZXxjb250YWN0Lj9udW1iZXJ8dGVsZWZvbm51bW1lcnx0ZWxlZm9ub3x0ZWxcdTAwZTlmb25vfHRlbGZpeGV8XHU5NmZiXHU4YTcxfHRlbGVmb25lfHRlbGVtb3ZlbHxcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzVcdTA0NDRcdTA0M2VcdTA0M2R8XHUwOTJlXHUwOTRiXHUwOTJjXHUwOTNlXHUwOTA3XHUwOTMyfFx1NzUzNVx1OGJkZHxcdTYyNGJcdTY3M2FcdTUzZjd8XHUwZDJlXHUwZDRhXHUwZDJjXHUwZDQ4XHUwZDMyXHUwZDRkXHUyMDBkfChefFstX10pdGVsWy1fXT8oXFxkKykqKFxcWy4qXFxdKSokfCg/Olx1YzgwNFx1ZDY1NHxcdWQ1NzhcdWI0ZGNcdWQzZjB8XHVkNzM0XHViMzAwXHVkM2YwfFx1ZDczNFx1YjMwMFx1YzgwNFx1ZDY1NCkoPzouP1x1YmM4OFx1ZDYzOCk/fChcXGJ8X3xcXCopdGVsZWZvbihcXGJ8X3xcXCopfHRlbGVwb258cG9uc2VsfChub21vcnxub1xcLj8pLj8oaHB8aGFuZHBob25lKSIsCiJpIiksJEk9UmVnRXhwKCJebmFtZXxmdWxsLj9uYW1lfHlvdXIuP25hbWV8Y3VzdG9tZXIuP25hbWV8YmlsbC4/bmFtZXxzaGlwLj9uYW1lfG5hbWUuKmZpcnN0LipsYXN0fGZpcnN0YW5kbGFzdG5hbWV8Y29udGFjdC4/KG5hbWV8cGVyc29uKXxub21icmUuKnkuKmFwZWxsaWRvc3xebm9tKD8hW2EtekEtWl0pfFx1MzA0YVx1NTQwZFx1NTI0ZHxcdTZjMGZcdTU0MGR8Xm5vbWV8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTU5ZDNcXHMqXHU1NDBkfFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzZFx1MDQzZVx1MDQzNS4/XHUwNDNiXHUwNDM4XHUwNDQ2XHUwNDNlfChcXGJ8X3xcXCopYWRbXHUwMTMxXT8gc295YWRbXHUwMTMxXT8oXFxifF98XFwqKXxcdWMxMzFcdWJhODV8bmFtYS4/KGxlbmdrYXB8cGVuZXJpbWF8a2FtdSkiLAoiaSIpLGFKPVJlZ0V4cCgiZmlyc3QuKm5hbWV8aW5pdGlhbHN8Zm5hbWV8Zmlyc3QkfGdpdmVuLipuYW1lfHZvcm5hbWV8bm9tYnJlfGZvcmVuYW1lfHByXHUwMGU5bm9tfHByZW5vbXxcdTU0MGR8bm9tZXxcdTA0MThcdTA0M2NcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1fFx1Yzc3NFx1Yjk4NHxcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoaXNpbXxhZHxhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XHUwOTI4XHUwOTNlXHUwOTJlfG5hbWEgZGVwYW4iLCJpIiksYko9UmVnRXhwKCJsYXN0LipuYW1lfGxuYW1lfHN1cm5hbWUoPyFcXGQpfGxhc3QkfHNlY29uZG5hbWV8ZmFtaWx5LipuYW1lfG5hY2huYW1lfGFwZWxsaWRvcz98ZmFtaWxsZXxebm9tKD8hW2EtekEtWl0pfGNvZ25vbWV8XHU1OWQzfGFwZWxpZG9zfHN1cmVuYW1lfHNvYnJlbm9tZXxcdTA0MjRcdTA0MzBcdTA0M2NcdTA0MzhcdTA0M2JcdTA0MzhcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHUwOTA5XHUwOTJhXHUwOTI4XHUwOTNlXHUwOTJlfFx1MGQyZVx1MGQzMVx1MGQ0MVx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShzb3lpc2ltfHNveWFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcXGJcdWMxMzEoPzpbXlx1YmE4NV18XFxiKXxuYW1hIGJlbGFrYW5nIiwKImkiKSxjSj1SZWdFeHAoImNvdW50cnl8Y291bnRyaWVzfHBhXHUwMGVkc3xwYWlzfChcXGJ8XylsYW5kKFxcYnxfKSg/IS4qKG1hcmsuKikpfChefFteKFx1NTE2NXxcdTUxZmEpXSlcdTU2ZmR8XHU1NmZkXHU1YmI2fFx1YWQ2ZFx1YWMwMHxcdWIwOThcdWI3N2N8KFxcYnxfKShcdTAwZmNsa2V8dWxjZXx1bGtlKShcXGJ8Xyl8XHUwNmE5XHUwNjM0XHUwNjQ4XHUwNjMxfG5lZ2FyYSIsImkiKSxkSj1SZWdFeHAoIihefFteLl0pemlwfHBvc3RhbHxwb3N0Lipjb2RlfHBjb2RlfHBpbi4/Y29kZXxwb3N0bGVpdHphaGx8XFxiY3BcXGJ8XFxiY2RwXFxifFxcYmNhcFxcYnxcdTkwZjVcdTRmYmZcdTc1NmFcdTUzZjd8Y29kaWdvfGNvZHBvc3xcXGJjZXBcXGJ8XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5Lj9cdTA0MThcdTA0M2RcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NDF8XHUwOTJhXHUwOTNmXHUwOTI4Lj9cdTA5MTVcdTA5NGJcdTA5MjF8XHUwZDJhXHUwZDNmXHUwZDI4XHUwZDRkXHUyMDBkXHUwZDE1XHUwZDRiXHUwZDIxXHUwZDRkfFx1OTBhZVx1NjUzZlx1N2YxNlx1NzgwMXxcdTkwYWVcdTdmMTZ8XHU5MGY1XHU5MDVlXHU1MzQwXHU4NjVmfChcXGJ8Xylwb3N0YSBrb2R1KFxcYnxfKXxcdWM2YjBcdWQzYjguP1x1YmM4OFx1ZDYzOHxrb2RlLj9wb3MiLAoiaSIpLGVKPXt9LEtJPShlSltGRC5CYl09e21lOiExLG5hOk1EfSxlSltGRC5lZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbInRlbCIsInRlbC1uYXRpb25hbCIsInRlbC1sb2NhbCJdLG5lOlpJLG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCEwKX19LGVKW0ZELktoXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsibmFtZSIsImNjLW5hbWUiXSxuZTokSSxuYTpORH0sZUpbRkQuWGRdPXttZTohMCxhdXRvY29tcGxldGU6WyJnaXZlbi1uYW1lIiwiY2MtZ2l2ZW4tbmFtZSJdLG5lOmFKLG5hOk5EfSxlSltGRC5jZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbImZhbWlseS1uYW1lIiwiY2MtZmFtaWx5LW5hbWUiXSxuZTpiSixuYTpORH0sZUpbRkQueGZdPXttZTohMCxhdXRvY29tcGxldGU6WyJjb3VudHJ5IiwiY291bnRyeS1uYW1lIl0sbmU6Y0osbmE6TkR9LGVKW0ZELnFnXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsicG9zdGFsLWNvZGUiXSxuZTpkSixuYTpJRH0sZUopO2Z1bmN0aW9uIGZKKGEpe3ZhciBiO0wodGhpcywiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iKTt2YXIgYz1UZChhKXx8e30sZD1KSSh7aW5jbHVkZVNlbGVjdG9yOiEhYy5pbmNsdWRlU2VsZWN0b3IsaW5jbHVkZVZpc2liaWxpdHk6ISFjLmluY2x1ZGVWaXNpYmlsaXR5LGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmMuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMsZmllbGRGaWx0ZXJzOmMuZmllbGRGaWx0ZXJzLHNlbGVjdE11bHRpcGxlRWxlbWVudHM6ISFjLnNlbGVjdE11bHRpcGxlRWxlbWVudHN9KTtiPW5ldyBrYjt2YXIgZT1uZXcgR2Q7Yi5zZXQoImVsZW1lbnRzIixlKTtmb3IodmFyIGY9ZC5lbGVtZW50cyxnPTA7ZzxmLmxlbmd0aDtnKyspZS5wdXNoKGdKKGZbZ10pKTtkLmdpIT09dm9pZCAwJiZiLnNldCgicHJlZmVycmVkRW1haWxFbGVtZW50IiwKZ0ooZC5naSkpO2Iuc2V0KCJzdGF0dXMiLGQuc3RhdHVzKTtpZihjLnJlYWRGcm9tRGF0YUxheWVyKXtoSihlLGMpO3ZhciBoPVBEKCksbD1oLnN0O2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hUaW1lIixoLnZ0KTtiLnNldCgiZGF0YUxheWVyU2VhcmNoQ291bnQiLGwpfXJldHVybiBifQp2YXIgaUo9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgRkQuQmI6cmV0dXJuImVtYWlsIjtjYXNlIEZELmVlOnJldHVybiJwaG9uZV9udW1iZXIiO2Nhc2UgRkQuWGQ6cmV0dXJuImZpcnN0X25hbWUiO2Nhc2UgRkQuY2U6cmV0dXJuImxhc3RfbmFtZSI7Y2FzZSBGRC50ajpyZXR1cm4ic3RyZWV0IjtjYXNlIEZELmxpOnJldHVybiJjaXR5IjtjYXNlIEZELmpqOnJldHVybiJyZWdpb24iO2Nhc2UgRkQucWc6cmV0dXJuInBvc3RhbF9jb2RlIjtjYXNlIEZELnhmOnJldHVybiJjb3VudHJ5In19LGpKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYixjPWlKKGEuRGEpO2MhPT12b2lkIDAmJmIuc2V0KCJ0eXBlIixjKTtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIiwiRExZUiIpO3JldHVybiBifSxoSj1mdW5jdGlvbihhLGIpe3ZhciBjPVFEKCk7aWYoTSg1NjgpKWZvcih2YXIgZD1uZXcgU2V0KGEuaGMoKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuZ2V0KCJ0eXBlIil9KSksCmU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlKSxoPWcubmV4dCgpLnZhbHVlLGw9Zy5uZXh0KCkudmFsdWUsbj1oLHA9bDtpZihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpYS5wdXNoKGpKKHApKTtlbHNle3ZhciBxPWlKKG4pO3EmJiFkLmhhcyhxKSYmYS5wdXNoKGpKKHApKX19ZWxzZSBjLmhhcyhGRC5CYikmJihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHN8fGEubGVuZ3RoKCk9PT0wKSYmYS5wdXNoKGpKKGMuZ2V0KEZELkJiKSkpfSxnSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsYS50YWdOYW1lKTthLnF1ZXJ5U2VsZWN0b3IhPT12b2lkIDAmJmIuc2V0KCJxdWVyeVNlbGVjdG9yIixhLnF1ZXJ5U2VsZWN0b3IpO2EuaXNWaXNpYmxlIT09dm9pZCAwJiZiLnNldCgiaXNWaXNpYmxlIixhLmlzVmlzaWJsZSk7aWYoTSg1NjgpKXt2YXIgYz1pSihhLnR5cGUpO2MhPT0Kdm9pZCAwJiZiLnNldCgidHlwZSIsYyl9ZWxzZSBzd2l0Y2goYS50eXBlKXtjYXNlIEZELkJiOmIuc2V0KCJ0eXBlIiwiZW1haWwiKX1yZXR1cm4gYn07ZkouUD0iaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSI7CmZ1bmN0aW9uIG1KKGEsYil7cmV0dXJuIGZ9bUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayI7CnZhciBuSj1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLk49ISFBLk11dGF0aW9uT2JzZXJ2ZXJ9O25KLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYodGhpcy5ILmxlbmd0aD09PTApe3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGQ9Qi5ib2R5O2lmKGQpaWYoYi5OKShuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKS5vYnNlcnZlKGQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZWxzZXt2YXIgZT0hMTskYyhkLCJET01Ob2RlSW5zZXJ0ZWQiLGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYmQoZnVuY3Rpb24oKXtlPSExO2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKX0pfX07Qi5ib2R5P2MoKTpiZChjKX10aGlzLkgucHVzaChhKX07bkoucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7aWYodGhpcy5IKWZvcih2YXIgYj0wO2I8dGhpcy5ILmxlbmd0aDtiKyspdGhpcy5IW2JdPT09CmEmJnRoaXMuSC5zcGxpY2UoYiwxKX07dmFyIG9KPW5ldyBuSjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO3JldHVybiBkfUFKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybUludGVyYWN0aW9uIjsKZnVuY3Rpb24gRkooYSxiKXt2YXIgYz10aGlzO3JldHVybiBmfUZKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCI7CmZ1bmN0aW9uIEtKKCl7dmFyIGE9dGhpczt9S0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25HYVNlbmQiOwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGZ9UkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIjt2YXIgU0o9WyJodHRwOi8vIiwiaHR0cHM6Ly8iLCJqYXZhc2NyaXB0OiIsImZpbGU6Ly8iXTsKdmFyIFRKPWZ1bmN0aW9uKGEsYil7aWYoYS53aGljaD09PTJ8fGEuY3RybEtleXx8YS5zaGlmdEtleXx8YS5hbHRLZXl8fGEubWV0YUtleSlyZXR1cm4hMTt2YXIgYz1vZChiLCJocmVmIik7aWYoYy5pbmRleE9mKCI6IikhPT0tMSYmIVNKLnNvbWUoZnVuY3Rpb24oaCl7cmV0dXJuIFNiKGMsaCl9KSlyZXR1cm4hMTt2YXIgZD1jLmluZGV4T2YoIiMiKSxlPW9kKGIsInRhcmdldCIpO2lmKGUmJmUhPT0iX3NlbGYiJiZlIT09Il9wYXJlbnQiJiZlIT09Il90b3AifHxkPT09MClyZXR1cm4hMTtpZihkPjApe3ZhciBmPU9qKFJqKGMpKSxnPU9qKFJqKEEubG9jYXRpb24uaHJlZikpO3JldHVybiBmIT09Z31yZXR1cm4hMH0sVUo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TGooUmooKGIuYXR0cmlidXRlcyYmYi5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/Yi5mb3JtQWN0aW9uOiIiKXx8Yi5hY3Rpb258fG9kKGIsImhyZWYiKXx8Yi5zcmN8fGIuY29kZXx8Yi5jb2RlYmFzZXx8IiIpLCJob3N0IiksCmQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7aWYoKG5ldyBSZWdFeHAoYVtkXSkpLnRlc3QoYykpcmV0dXJuITF9Y2F0Y2goZSl7fXJldHVybiEwfSxWSj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dmFyIGQ9Yy50YXJnZXQ7aWYoZCYmYy53aGljaCE9PTMmJiEoYy5IfHxjLnRpbWVTdGFtcCYmYy50aW1lU3RhbXA9PT1iKSl7Yj1jLnRpbWVTdGFtcDtkPWhkKGQsWyJhIiwiYXJlYSJdLDEwMCk7aWYoIWQpcmV0dXJuIGMucmV0dXJuVmFsdWU7dmFyIGU9Yy5kZWZhdWx0UHJldmVudGVkfHxjLnJldHVyblZhbHVlPT09ITEsZj0kRigibGNsIixlPyJudi5td3QiOiJtd3QiLDApLGc7Zz1lPyRGKCJsY2wiLCJudi5pZHMiLFtdKTokRigibGNsIiwiaWRzIixbXSk7Zm9yKHZhciBoPVtdLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49Z1tsXSxwPSRGKCJsY2wiLCJhZmYubWFwIix7fSlbbl07cCYmIVVKKHAsZCl8fGgucHVzaChuKX1pZihoLmxlbmd0aCl7dmFyIHE9VEooYyxkKSxyPWVHKGQsImd0bS5saW5rQ2xpY2siLApoKTtyWyJndG0uZWxlbWVudFRleHQiXT1mZChkKTtyWyJndG0ud2lsbE9wZW5Jbk5ld1dpbmRvdyJdPSFxO2lmKHEmJiFlJiZmJiZkLmhyZWYpe3ZhciB0PSEhQ2IoU3RyaW5nKG9kKGQsInJlbCIpfHwiIikuc3BsaXQoIiAiKSxmdW5jdGlvbih5KXtyZXR1cm4geS50b0xvd2VyQ2FzZSgpPT09Im5vcmVmZXJyZXIifSksdT1BWyhvZChkLCJ0YXJnZXQiKXx8Il9zZWxmIikuc3Vic3RyaW5nKDEpXSx2PSEwLHg9dEUoZnVuY3Rpb24oKXt2YXIgeTtpZih5PXYmJnUpe3ZhciB6O2E6aWYodCl7dmFyIEM7dHJ5e0M9bmV3IE1vdXNlRXZlbnQoYy50eXBlLHtidWJibGVzOiEwfSl9Y2F0Y2goRCl7aWYoIUIuY3JlYXRlRXZlbnQpe3o9ITE7YnJlYWsgYX1DPUIuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7Qy5pbml0RXZlbnQoYy50eXBlLCEwLCEwKX1DLkg9ITA7Yy50YXJnZXQuZGlzcGF0Y2hFdmVudChDKTt6PSEwfWVsc2Ugej0hMTt5PSF6fXkmJih1LmxvY2F0aW9uLmhyZWY9b2QoZCwKImhyZWYiKSl9LGYpO2lmKGlFKHIseCxmKSl2PSExO2Vsc2UgcmV0dXJuIGMucHJldmVudERlZmF1bHQmJmMucHJldmVudERlZmF1bHQoKSxjLnJldHVyblZhbHVlPSExfWVsc2Ugc0UocixmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH19fXZhciBiPTA7JGMoQiwiY2xpY2siLGEsITEpOyRjKEIsImF1eGNsaWNrIixhLCExKX07CmZ1bmN0aW9uIFdKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGEpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixkKX1dKTt2YXIgZT1kJiYhIWQud2FpdEZvclRhZ3MsZj1kJiYhIWQuY2hlY2tWYWxpZGF0aW9uLGc9ZD9kLmFmZmlsaWF0ZURvbWFpbnM6dm9pZCAwLGg9WkYoYik7aWYoZSl7dmFyIGw9TnVtYmVyKGQud2FpdEZvclRhZ3NUaW1lb3V0KTtsPjAmJmlzRmluaXRlKGwpfHwobD0yRTMpO3ZhciBuPWZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChsLHEpfTtkRygibGNsIiwibXd0IixuLDApO2Z8fGRHKCJsY2wiLCJudi5td3QiLG4sMCl9dmFyIHA9ZnVuY3Rpb24ocSl7cS5wdXNoKGgpOwpyZXR1cm4gcX07ZEcoImxjbCIsImlkcyIscCxbXSk7Znx8ZEcoImxjbCIsIm52LmlkcyIscCxbXSk7ZyYmZEcoImxjbCIsImFmZi5tYXAiLGZ1bmN0aW9uKHEpe3FbaF09ZztyZXR1cm4gcX0se30pOyRGKCJsY2wiLCJpbml0IiwhMSl8fChWSigpLGFHKCJsY2wiLCJpbml0IiwhMCkpO3JldHVybiBofVdKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIjsKdmFyIFhKPWZ1bmN0aW9uKGEpe3JldHVybiAkRigic2RsIixhLHt9KX0sWUo9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpe3ZhciBkPUFycmF5LmlzQXJyYXkoYSk/YTpbYV07ZEcoInNkbCIsYyxmdW5jdGlvbihlKXtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9U3RyaW5nKGRbZl0pO2UuaGFzT3duUHJvcGVydHkoZyl8fChlW2ddPVtdKTtlW2ddLnB1c2goYil9cmV0dXJuIGV9LHt9KX19LGFLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe1pKKGEsYik7JEooYywhMCl9cmV0dXJuIGN9LGJLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe2g/Zz1BLnNldFRpbWVvdXQoYyxlKTooZz0wLFpKKGEsYiksJEooZCkpO2g9ITF9ZnVuY3Rpb24gZCgpe2YmJmIoKTtnP2g9ITA6KGc9QS5zZXRUaW1lb3V0KGMsZSksYUcoInNkbCIsInBlbmRpbmciLCEwKSl9dmFyIGU9MjUwLGY9ITE7Qi5zY3JvbGxpbmdFbGVtZW50JiZCLmRvY3VtZW50RWxlbWVudCYmKGU9NTAsZj0hMCk7dmFyIGc9CjAsaD0hMTtyZXR1cm4gZH0sJEo9ZnVuY3Rpb24oYSxiKXskRigic2RsIiwiaW5pdCIsITEpJiYhY0soKSYmKGI/YWQoQSwic2Nyb2xsZW5kIixhKTphZChBLCJzY3JvbGwiLGEpLGFkKEEsInJlc2l6ZSIsYSksYUcoInNkbCIsImluaXQiLCExKSl9LFpKPWZ1bmN0aW9uKGEsYil7dmFyIGM9YigpLGQ9Yy5kZXB0aFgsZT1jLmRlcHRoWSxmPWQvYS5zY3JvbGxXaWR0aCoxMDAsZz1lL2Euc2Nyb2xsSGVpZ2h0KjEwMDtkSyhkLCJob3Jpei5waXgiLCJQSVhFTFMiLCJob3Jpem9udGFsIik7ZEsoZiwiaG9yaXoucGN0IiwiUEVSQ0VOVCIsImhvcml6b250YWwiKTtkSyhlLCJ2ZXJ0LnBpeCIsIlBJWEVMUyIsInZlcnRpY2FsIik7ZEsoZywidmVydC5wY3QiLCJQRVJDRU5UIiwidmVydGljYWwiKTthRygic2RsIiwicGVuZGluZyIsITEpfSxkSz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1YSihiKSxmPXt9LGc7Zm9yKGcgaW4gZSlpZihmPXtxZjpmLnFmfSxmLnFmPWcsZS5oYXNPd25Qcm9wZXJ0eShmLnFmKSl7dmFyIGg9Ck51bWJlcihmLnFmKTtpZighKGE8aCkpe3ZhciBsPXt9O3VFKChsLmV2ZW50PSJndG0uc2Nyb2xsRGVwdGgiLGxbImd0bS5zY3JvbGxUaHJlc2hvbGQiXT1oLGxbImd0bS5zY3JvbGxVbml0cyJdPWMudG9Mb3dlckNhc2UoKSxsWyJndG0uc2Nyb2xsRGlyZWN0aW9uIl09ZCxsWyJndG0udHJpZ2dlcnMiXT1lW2YucWZdLmpvaW4oIiwiKSxsKSk7ZEcoInNkbCIsYixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24ocCl7ZGVsZXRlIHBbbi5xZl07cmV0dXJuIHB9fShmKSx7fSl9fX0sZks9ZnVuY3Rpb24oKXt2YXIgYT1kRygic2RsIiwic2NyIixmdW5jdGlvbihjKXtjfHwoYz1CLnNjcm9sbGluZ0VsZW1lbnR8fEIuYm9keSYmQi5ib2R5LnBhcmVudE5vZGUpO3JldHVybiBjfSxudWxsKSxiPWRHKCJzZGwiLCJkZXB0aCIsZnVuY3Rpb24oYyl7Y3x8KGM9ZUsoYSkpO3JldHVybiBjfSk7cmV0dXJue3Njcm9sbGluZ0VsZW1lbnQ6YSx2cjpifX0sZUs9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPQowO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPXNJKCksZT1kLmhlaWdodDtiPU1hdGgubWF4KGEuc2Nyb2xsTGVmdCtkLndpZHRoLGIpO2M9TWF0aC5tYXgoYS5zY3JvbGxUb3ArZSxjKTtyZXR1cm57ZGVwdGhYOmIsZGVwdGhZOmN9fX0sY0s9ZnVuY3Rpb24oKXtyZXR1cm4hIShPYmplY3Qua2V5cyhYSigiaG9yaXoucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooImhvcml6LnBjdCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBpeCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBjdCIpKS5sZW5ndGgpfTsKZnVuY3Rpb24gZ0soYSxiKXt2YXIgYz10aGlzO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9zY3JvbGxfZXZlbnRzIil9XSk7dmFyIGQ9ZksoKSxlPWQuc2Nyb2xsaW5nRWxlbWVudCxmPWQudnI7aWYoIWUpcmV0dXJuO3ZhciBnPVpGKGIpLGg9VGQoYSk7c3dpdGNoKGguaG9yaXpvbnRhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGguaG9yaXpvbnRhbFRocmVzaG9sZHMsZywiaG9yaXoucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5wY3QiKX1zd2l0Y2goaC52ZXJ0aWNhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLApnLCJ2ZXJ0LnBpeCIpO2JyZWFrO2Nhc2UgIlBFUkNFTlQiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLGcsInZlcnQucGN0Iil9JEYoInNkbCIsImluaXQiLCExKT8kRigic2RsIiwicGVuZGluZyIsITEpfHxiZChmdW5jdGlvbigpe1pKKGUsZil9KTooYUcoInNkbCIsImluaXQiLCEwKSxhRygic2RsIiwicGVuZGluZyIsITApLGJkKGZ1bmN0aW9uKCl7WkooZSxmKTtpZihjSygpKXt2YXIgbD1iSyhlLGYpOyJvbnNjcm9sbGVuZCJpbiBBPyhsPWFLKGUsZiksJGMoQSwic2Nyb2xsZW5kIixsKSk6JGMoQSwic2Nyb2xsIixsKTskYyhBLCJyZXNpemUiLGwpfWVsc2UgYUcoInNkbCIsImluaXQiLCExKX0pKTtyZXR1cm4gZ31nSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblNjcm9sbCI7ZnVuY3Rpb24gaEsoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYS5saW1pdCYmYS5naz49YS5saW1pdClhLmFpJiZBLmNsZWFySW50ZXJ2YWwoYS5haSk7ZWxzZXthLmdrKys7dmFyIGI9TmIoKTt1RSh7ZXZlbnQ6YS5ldmVudE5hbWUsImd0bS50aW1lcklkIjphLmFpLCJndG0udGltZXJFdmVudE51bWJlciI6YS5naywiZ3RtLnRpbWVySW50ZXJ2YWwiOmEuaW50ZXJ2YWwsImd0bS50aW1lckxpbWl0IjphLmxpbWl0LCJndG0udGltZXJTdGFydFRpbWUiOmEuTW8sImd0bS50aW1lckN1cnJlbnRUaW1lIjpiLCJndG0udGltZXJFbGFwc2VkVGltZSI6Yi1hLk1vLCJndG0udHJpZ2dlcnMiOmEuTHR9KX19fQpmdW5jdGlvbiBpSyhhLGIpewpyZXR1cm4gZn1pSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblRpbWVyIjsKdmFyIGpLPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKCl7dmFyIGc9YSgpO2YrPWU/KE5iKCktZSkqZy5wbGF5YmFja1JhdGUvMUUzOjA7ZT1OYigpfXZhciBlPTAsZj0wO3JldHVybntjcmVhdGVFdmVudDpmdW5jdGlvbihnLGgsbCl7dmFyIG49YSgpLHA9bi5XbixxPWw/TWF0aC5yb3VuZChsKTpoP01hdGgucm91bmQobi5XbipoKTpNYXRoLnJvdW5kKG4uR3IpLHI9aCE9PXZvaWQgMD9NYXRoLnJvdW5kKGgqMTAwKTpwPD0wPzA6TWF0aC5yb3VuZChxL3AqMTAwKSx0PUIuaGlkZGVuPyExOnRJKGMpPj0uNTtkKCk7dmFyIHU9dm9pZCAwO2IhPT12b2lkIDAmJih1PVtiXSk7dmFyIHY9ZUcoYywiZ3RtLnZpZGVvIix1KTt2WyJndG0udmlkZW9Qcm92aWRlciJdPSJ5b3V0dWJlIjt2WyJndG0udmlkZW9TdGF0dXMiXT1nO3ZbImd0bS52aWRlb1VybCJdPW4udXJsO3ZbImd0bS52aWRlb1RpdGxlIl09bi50aXRsZTt2WyJndG0udmlkZW9EdXJhdGlvbiJdPU1hdGgucm91bmQocCk7dlsiZ3RtLnZpZGVvQ3VycmVudFRpbWUiXT0KTWF0aC5yb3VuZChxKTt2WyJndG0udmlkZW9FbGFwc2VkVGltZSJdPU1hdGgucm91bmQoZik7dlsiZ3RtLnZpZGVvUGVyY2VudCJdPXI7dlsiZ3RtLnZpZGVvVmlzaWJsZSJdPXQ7cmV0dXJuIHZ9LG10OmZ1bmN0aW9uKCl7ZT1OYigpfSxCajpmdW5jdGlvbigpe2QoKX19fTt2YXIgQWM9QWEoWyJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIl0pLGtLPVsid3d3LnlvdXR1YmUuY29tIiwid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIl0sbEs7CnZhciBtSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcsSm86Zyx3bzp2b2lkIDB9fSk7aWYoIWIubGVuZ3RoKXJldHVybiBkO3ZhciBlPWIubWFwKGZ1bmN0aW9uKGcpe3JldHVybnt0ZTpnKmMsSm86dm9pZCAwLHdvOmd9fSk7aWYoIWQubGVuZ3RoKXJldHVybiBlO3ZhciBmPWQuY29uY2F0KGUpO2Yuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBnLnRlLWgudGV9KTtyZXR1cm4gZn0sbks9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPDB8fGIucHVzaChhW2NdKTtiLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGJ9LG9LPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYVtjXT4xMDB8fGFbY108MHx8KGJbY109YVtjXS8xMDApO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLQplfSk7cmV0dXJuIGJ9LHBLPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtmdW5jdGlvbiBlKCl7dD1qSyhmdW5jdGlvbigpe3JldHVybnt1cmw6eCx0aXRsZTp5LFduOnYsR3I6YS5nZXRDdXJyZW50VGltZSgpLHBsYXliYWNrUmF0ZTp6fX0sYi5yZixhLmdldElmcmFtZSgpKTt2PTA7eT14PSIiO3o9MTtyZXR1cm4gZn1mdW5jdGlvbiBmKEcpe3N3aXRjaChHKXtjYXNlIDE6dj1NYXRoLnJvdW5kKGEuZ2V0RHVyYXRpb24oKSk7eD1hLmdldFZpZGVvVXJsKCk7aWYoYS5nZXRWaWRlb0RhdGEpe3ZhciBOPWEuZ2V0VmlkZW9EYXRhKCk7eT1OP04udGl0bGU6IiJ9ej1hLmdldFBsYXliYWNrUmF0ZSgpO2IueXI/dUUodC5jcmVhdGVFdmVudCgic3RhcnQiKSk6dC5CaigpO3U9bUsoYi5ldCxiLmN0LGEuZ2V0RHVyYXRpb24oKSk7cmV0dXJuIGcoRyk7ZGVmYXVsdDpyZXR1cm4gZn19ZnVuY3Rpb24gZygpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5tdCgpO3IoKTtyZXR1cm4gaH0KZnVuY3Rpb24gaChHKXt2YXIgTjtzd2l0Y2goRyl7Y2FzZSAwOnJldHVybiBuKEcpO2Nhc2UgMjpOPSJwYXVzZSI7Y2FzZSAzOnZhciBTPWEuZ2V0Q3VycmVudFRpbWUoKS1DO049TWF0aC5hYnMoKE1iKCkuZ2V0VGltZSgpLUQpLzFFMyp6LVMpPjE/InNlZWsiOk58fCJidWZmZXJpbmciO2EuZ2V0Q3VycmVudFRpbWUoKSYmKGIueHI/dUUodC5jcmVhdGVFdmVudChOKSk6dC5CaigpKTtxKCk7cmV0dXJuIGw7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBofX1mdW5jdGlvbiBsKEcpe3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAxOnJldHVybiBnKEcpO2Nhc2UgLTE6cmV0dXJuIGUoRyk7ZGVmYXVsdDpyZXR1cm4gbH19ZnVuY3Rpb24gbigpe2Zvcig7ZDspe3ZhciBHPWM7QS5jbGVhclRpbWVvdXQoZCk7RygpfWIud3ImJnVFKHQuY3JlYXRlRXZlbnQoImNvbXBsZXRlIiwxKSk7cmV0dXJuIGUoLTEpfWZ1bmN0aW9uIHAoKXt9ZnVuY3Rpb24gcSgpe2QmJgooQS5jbGVhclRpbWVvdXQoZCksZD0wLGM9cCl9ZnVuY3Rpb24gcigpe2lmKHUubGVuZ3RoJiZ6IT09MCl7dmFyIEc9LTEsTjtkb3tOPXVbMF07aWYoTi50ZT5hLmdldER1cmF0aW9uKCkpcmV0dXJuO0c9KE4udGUtYS5nZXRDdXJyZW50VGltZSgpKS96O2lmKEc8MCYmKHUuc2hpZnQoKSx1Lmxlbmd0aD09PTApKXJldHVybn13aGlsZShHPDApO2M9ZnVuY3Rpb24oKXtkPTA7Yz1wO3UubGVuZ3RoPjAmJnVbMF0udGU9PT1OLnRlJiYodS5zaGlmdCgpLHVFKHQuY3JlYXRlRXZlbnQoInByb2dyZXNzIixOLndvLE4uSm8pKSk7cigpfTtkPUEuc2V0VGltZW91dChjLEcqMUUzKX19dmFyIHQsdT1bXSx2LHgseSx6LEMsRCxJPWUoLTEpO2Q9MDtjPXA7cmV0dXJue29uU3RhdGVDaGFuZ2U6ZnVuY3Rpb24oRyl7ST1JKEcpfSxvblBsYXliYWNrUmF0ZUNoYW5nZTpmdW5jdGlvbihHKXtDPWEuZ2V0Q3VycmVudFRpbWUoKTtEPU1iKCkuZ2V0VGltZSgpO3QuQmooKTt6PUc7cSgpO3IoKX19fSxySz0KZnVuY3Rpb24oYSl7YmQoZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7Zm9yKHZhciBkPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLGU9ZC5sZW5ndGgsZj0wO2Y8ZTtmKyspcUsoZFtmXSxhKX12YXIgYz1CO2IoKTtvSi5LKGIpfSl9LHFLPWZ1bmN0aW9uKGEsYil7aWYoIWEuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIitiLnJmKSYmKENjKGEsImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpLHNLKGEsYi5jbykpKXthLmlkfHwoYS5pZD10SygpKTt2YXIgYz1BLllULGQ9Yy5nZXQoYS5pZCk7ZHx8KGQ9bmV3IGMuUGxheWVyKGEuaWQpKTt2YXIgZT1wSyhkLGIpLGY9e30sZztmb3IoZyBpbiBlKWY9e01nOmYuTWd9LGYuTWc9ZyxlLmhhc093blByb3BlcnR5KGYuTWcpJiZkLmFkZEV2ZW50TGlzdGVuZXIoZi5NZyxmdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGVbaC5NZ10obC5kYXRhKX19KGYpKX19LHNLPWZ1bmN0aW9uKGEsCmIpe3ZhciBjPWEuZ2V0QXR0cmlidXRlKCJzcmMiKTtpZih1SyhjLCJlbWJlZC8iKSl7aWYoYy5pbmRleE9mKCJlbmFibGVqc2FwaT0xIik+MClyZXR1cm4hMDtpZihiKXt2YXIgZDt2YXIgZT1jLmluZGV4T2YoIj8iKSE9PS0xPyImIjoiPyI7Yy5pbmRleE9mKCJvcmlnaW49Iik+LTE/ZD1jK2UrImVuYWJsZWpzYXBpPTEiOihsS3x8KGxLPUIubG9jYXRpb24ucHJvdG9jb2wrIi8vIitCLmxvY2F0aW9uLmhvc3RuYW1lLEIubG9jYXRpb24ucG9ydCYmKGxLKz0iOiIrQi5sb2NhdGlvbi5wb3J0KSksZD1jK2UrImVuYWJsZWpzYXBpPTEmb3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGxLKSk7dmFyIGY7Zj1qYyhkKTthLnNyYz1rYyhmKS50b1N0cmluZygpO3JldHVybiEwfX1yZXR1cm4hMX0sdUs9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGtLLmxlbmd0aDtjKyspaWYoYS5pbmRleE9mKCIvLyIra0tbY10rIi8iK2IpPj0wKXJldHVybiEwO3JldHVybiExfSwKdEs9ZnVuY3Rpb24oKXt2YXIgYT0iIitNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMUU5KTtyZXR1cm4gQi5nZXRFbGVtZW50QnlJZChhKT90SygpOmF9OwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7dmFyIGQ9ZnVuY3Rpb24oKXtySyhxKX07aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIix7Zml4TWlzc2luZ0FwaTohIWEuZ2V0KCJmaXhNaXNzaW5nQXBpIil9KX1dKTt2YXIgZT1aRihiKSxmPSEhYS5nZXQoImNhcHR1cmVTdGFydCIpLGc9ISFhLmdldCgiY2FwdHVyZUNvbXBsZXRlIiksaD0hIWEuZ2V0KCJjYXB0dXJlUGF1c2UiKSxsPW9LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNQZXJjZW50IikpKSxuPW5LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNUaW1lSW5TZWNvbmRzIikpKSxwPSEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKTsKaWYoIShmfHxnfHxofHxsLmxlbmd0aHx8bi5sZW5ndGgpKXJldHVybjt2YXIgcT17eXI6Zix3cjpnLHhyOmgsY3Q6bCxldDpuLGNvOnAscmY6ZX0scj1BLllUO2lmKHIpcmV0dXJuIHIucmVhZHkmJnIucmVhZHkoZCksZTt2YXIgdD1BLHU9dC5vbllvdVR1YmVJZnJhbWVBUElSZWFkeTt0Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5PWZ1bmN0aW9uKCl7dSYmdSgpO2QoKX07YmQoZnVuY3Rpb24oKXtmb3IodmFyIHY9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikseD12Lmxlbmd0aCx5PTA7eTx4O3krKyl7dmFyIHo9dlt5XS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKHosImlmcmFtZV9hcGkiKXx8dUsoeiwicGxheWVyX2FwaSIpKXJldHVybiBlfWZvcih2YXIgQz1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKSxEPUMubGVuZ3RoLEk9YWwoNSxmdW5jdGlvbigpe3JldHVybiExfSksRz0wO0c8RDtHKyspaWYoIUkmJnNLKENbR10scS5jbykpcmV0dXJuIFVjKCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpIiksClprKDUsITApLGV9KTtyZXR1cm4gZX12Sy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbllvdVR1YmVBY3Rpdml0eSI7ZnVuY3Rpb24gd0soYSxiKXtpZighbGgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9Yj9UZChiKTp7fTtjLnJlZ2V4Q2FjaGU9YWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSk7cmV0dXJuIEdoKGEsYyl9d0suUD0iaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiI7ZnVuY3Rpb24geEsoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9eEsuUD0iaW50ZXJuYWwuZXZhbHVhdGVNYXRjaGluZ1J1bGVzIjt2YXIgeUs9bmV3IE1hcChbWyJhdyIsNF1dKTtmdW5jdGlvbiB6SyhhKXt2YXIgYj12clthXSxjPXlLLmdldChhKTtyZXR1cm4gYz8od3EoYixjKXx8W10pLnNvbWUoZnVuY3Rpb24oZCl7cmV0dXJuIGQubT09PSIwInx8ZC5tPT09dm9pZCAwfSk6ITF9CmZ1bmN0aW9uIEFLKGEsYil7aWYoTSg0OTUpKXtmb3IodmFyIGM9bmV3IE1hcCxkPW0oeUspLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1tKGUudmFsdWUpLGc9Zi5uZXh0KCkudmFsdWUsaD1mLm5leHQoKS52YWx1ZSxsPWcsbj1hW2xdLHA9QXJyYXkuaXNBcnJheShuKT9uWzBdOm47aWYocCE9PXZvaWQgMCl7dmFyIHE9e30scj0ocS5rPXAscS5pPVN0cmluZyhNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSkscS5iPVtdLHEubT0iMSIscSksdD1hcShyLGgpO3QmJih6SyhsKXx8Yy5zZXQobCx0KSl9fWlmKGMuc2l6ZSl7dmFyIHUsdj1bXSx4PWIucGF0aHx8Ii8iO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoInAiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHgpKTtiLkFyJiZ2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJjZSIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIuQXIpKSk7dmFyIHk9Yi5kb21haW4mJmIuZG9tYWluIT09ImF1dG8iPwpiLmRvbWFpbjoiYXV0bzoiK0EubG9jYXRpb24uaG9zdG5hbWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiZCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeSkpO2Zvcih2YXIgej1tKGMpLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXt2YXIgRD1tKEMudmFsdWUpLEk9RC5uZXh0KCkudmFsdWUsRz1ELm5leHQoKS52YWx1ZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KEkpKyI9IitlbmNvZGVVUklDb21wb25lbnQoRykpfXU9Il8vc2V0X2Nvb2tpZT8iK3Yuam9pbigiJiIpO3ZhciBOLFM9RSg1OCk7Tj1FZih1LFMpO3ZhciBXPVhqKCkrIi8iK047bWQoVyl9fX07ZnVuY3Rpb24gQksoYSl7cmV0dXJuIkNXVldlYlZpZXdNZXNzYWdlImluIGF9ZnVuY3Rpb24gQ0soYSl7dmFyIGI9QSxjPWIud2Via2l0O2RlbGV0ZSBiLndlYmtpdDthKGIud2Via2l0KTtiLndlYmtpdD1jfWZ1bmN0aW9uIERLKGEsYil7dmFyIGM9e2FjdGlvbjoiZ2NsX3NldHVwIn07aWYoQksoYS5tZXNzYWdlSGFuZGxlcnMpKXJldHVybiBhLm1lc3NhZ2VIYW5kbGVycy5DV1ZXZWJWaWV3TWVzc2FnZS5wb3N0TWVzc2FnZSh7Y29tbWFuZDpiLHBheWxvYWQ6Y30pLCEwO3ZhciBkPWEubWVzc2FnZUhhbmRsZXJzW2JdO3JldHVybiBkPyhkLnBvc3RNZXNzYWdlKGMpLCEwKTohMX07dmFyIEVLPXt9LEZLPShFSy5hd2I9e25vdEZvdW5kOjE3OH0sRUsueXRiPXtub3RGb3VuZDoxOTR9LEVLKTtmdW5jdGlvbiBHSyhhKXt2YXIgYixjPShiPUZLW2FdKT09bnVsbD92b2lkIDA6Yi5ub3RGb3VuZDtjJiZQKGMpfQpmdW5jdGlvbiBISyhhKXtpZighbm0oam0uYmEuam4pJiYid2Via2l0ImluIEEmJkEud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyl7dmFyIGI9ZnVuY3Rpb24oKXt0cnl7Q0soZnVuY3Rpb24oYyl7aWYoYyl7dmFyIGQ7ZD1CSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJhd2IiaW4gYy5tZXNzYWdlSGFuZGxlcnM/e2NvbW1hbmQ6ImF3YiIsc291cmNlOjV9OihCSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJ5dGIiaW4gYy5tZXNzYWdlSGFuZGxlcnMpJiZNKDQ5OSk/e2NvbW1hbmQ6Inl0YiIsc291cmNlOjh9OnZvaWQgMDtkJiYobW0oam0uYmEuam4sZnVuY3Rpb24oZSl7dmFyIGY9ZC5zb3VyY2U7ZS5nY2xpZCYmbHMoImdjbF9hdyIsZS5nY2xpZCxmLGEpO2Uud2JyYWlkJiZscygiZ2NsX2diIixlLndicmFpZCxmLGEpfSksREsoYyxkLmNvbW1hbmQpfHxHSyhkLmNvbW1hbmQpKX19KX1jYXRjaChjKXtQKDE5Myl9fTtIbChmdW5jdGlvbigpe0JyKGZwKT9iKCk6SWwoYixmcCl9LGZwKX19O3ZhciBJSz1bImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIsImh0dHBzOi8vbS55b3V0dWJlLmNvbSJdO2Z1bmN0aW9uIEpLKGEpe3JldHVybiBhLmRhdGEuYWN0aW9uIT09ImdjbF90cmFuc2ZlciI/KFAoMTczKSwhMCk6YS5kYXRhLmdhZFNvdXJjZT9hLmRhdGEuZ2NsaWQ/ITE6KFAoMTgxKSwhMCk6KFAoMTgwKSwhMCl9CmZ1bmN0aW9uIEtLKGEsYil7aWYoIWF8fE0oYSkpe2lmKG5tKGptLmJhLlZlKSlyZXR1cm4gUCgxNzYpLGptLmJhLlZlO2lmKG5tKGptLmJhLm1uKSlyZXR1cm4gUCgxNzApLGptLmJhLlZlO3ZhciBjPUZwKCk7aWYoIWMpUCgxNzEpO2Vsc2UgaWYoYy5vcGVuZXIpe3ZhciBkPWZ1bmN0aW9uKGcpe2lmKCFJSy5pbmNsdWRlcyhnLm9yaWdpbikpUCgxNzIpO2Vsc2UgaWYoIUpLKGcpKXt2YXIgaD17Z2FkU291cmNlOmcuZGF0YS5nYWRTb3VyY2V9O2guZ2NsaWQ9Zy5kYXRhLmdjbGlkO21tKGptLmJhLlZlLGgpO2ImJmcuZGF0YS5nY2xpZCYmbHMoImdjbF9hdyIsU3RyaW5nKGcuZGF0YS5nY2xpZCksNixiKTt2YXIgbDsobD1nLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbik9PW51bGx8fGwuY2FsbChnKTtudChjLCJtZXNzYWdlIixkKX19O2lmKG10KGMsIm1lc3NhZ2UiLGQpKXttbShqbS5iYS5tbiwhMCk7Zm9yKHZhciBlPW0oSUspLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWMub3BlbmVyLnBvc3RNZXNzYWdlKHthY3Rpb246ImdjbF9zZXR1cCJ9LApmLnZhbHVlKTtQKDE3NCk7cmV0dXJuIGptLmJhLlZlfVAoMTc1KX19fTsKdmFyIExLPWZ1bmN0aW9uKGEpe3ZhciBiPXtwcmVmaXg6TyhhLk0sRi5ELkZkKXx8TyhhLk0sRi5ELm5iKSxkb21haW46TyhhLk0sRi5ELkxiKSxwZDpPKGEuTSxGLkQuQ2IpLGZsYWdzOk8oYS5NLEYuRC5UYil9O2EuTS5pc0d0bUV2ZW50JiYoYi5wYXRoPU8oYS5NLEYuRC52YykpO3JldHVybiBifSxNSz1mdW5jdGlvbihhLGIpe2lmKCFRKGEsSC5KLldlKSl7dmFyIGM9S0soMTE5KTtpZihjKXt2YXIgZD1ubShjKSxlPWZ1bmN0aW9uKGcpe1YoYSxILkouV2UsITApO3ZhciBoPVIoYSxGLkQuemYpLGw9UihhLEYuRC5BZik7VShhLEYuRC56ZixTdHJpbmcoZy5nYWRTb3VyY2UpKTtVKGEsRi5ELkFmLDYpO1YoYSxILkouc2EpO1YoYSxILkoudWcpO1UoYSxGLkQuc2EpO2IoKTtVKGEsRi5ELnpmLGgpO1UoYSxGLkQuQWYsbCk7VihhLEguSi5XZSwhMSl9O2lmKGQpZShkKTtlbHNle3ZhciBmPXZvaWQgMDtmPXBtKGMsZnVuY3Rpb24oZyxoKXtlKGgpO3FtKGMsZil9KX19fX0sUEs9ZnVuY3Rpb24oYSl7dmFyIGIsCmMsZCxlO2I9YS5UbjtjPWEubW87ZD1hLlFvO2U9YS5VbjtpZihiKXtpZihkcihjW0YuRC5YZl0sISFjW0YuRC5BYV0pKXtpZihXaigpJiZCcihBcigpKSl7Zm9yKHZhciBmPVVxKCEwKSxnPXt9LGg9bShPYmplY3Qua2V5cyh2cikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9dnJbbl0scT1mW3BdO2lmKHEpe3ZhciByPSRwKHEsNCk7ciYmKG9zKE1hdGgubWluKE5yKHIpLE5iKCkpfHxOYigpLHAsNCl8fChnW25dPXEpKX19Zm9yKHZhciB0PXt9LHU9bShPYmplY3Qua2V5cyhnKSksdj11Lm5leHQoKTshdi5kb25lO3Y9dS5uZXh0KCkpe3ZhciB4PXYudmFsdWUseT1nW3hdO2lmKHkhPT12b2lkIDApe3ZhciB6PSRwKHksNCk7eiYmei5tPT09IjEiJiYodFt4XT16LmspfX1BSyh0LGUpfXBzKGUpO3RzKGUpO1F2KGUpfWlmKE9wKCkhPT0yKXtncyhlKTtpcyhlKTtpZihZZigxNSkpe3ZhciBDPWUsRD1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOwpELmxlbmd0aHx8KEQ9ZHMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2lmKEQubGVuZ3RoKXtDPUN8fHt9O3ZhciBJPURbMF07SS52YWx1ZSYmbXMoImdjbF9kYyIsW3t2ZXJzaW9uOiIiLGdjbGlkOkkudmFsdWUsdGltZXN0YW1wOk5iKCkscWE6SS5xYX1dLEMpfX1ISyhlKTtLSyh2b2lkIDAsZSl9ZWxzZSBncyhlKTtpZihXaigpJiZCcihBcigpKSl7dmFyIEc9ZnMoKTtBSyhHLGUpfXhzKHFzLGUpO3lzKGUpfWNbRi5ELkFhXSYmKHZzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10pLHVzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLHdzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLFJ2KEd2KGUucHJlZml4KSxjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpLFJ2KCJGUEFVIixjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpKTtkJiZBcyhOSyk7Q3MoT0spfSxxcz1bImF3IiwiZGMiLAoiZ2IiXSxPSz1bImF3IiwiZGMiLCJnYiIsImFnIl0sTks9WyJhdyIsImRjIiwiZ2IiLCJhZyIsImdhZF9zb3VyY2UiXTsKdmFyIFFLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9UShhLEguSi5zbiksZD1NKDQ0MykmJmM/VHYoYik6VXYoYikuU2gsZT12b2lkIDA7TSg1NzApJiZjJiYoZT1TdihiLHtYaDohMH0pLmlrKTt2YXIgZjthOntpZihJZig0NykmJlhvKGZwKSl7dmFyIGc9ZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGg9UShhLEguSi5ZYSk7VihhLEguSi5haiwhMCk7VihhLEguSi5mZCwhMCk7aWYoaHcoaCkpe1YoYSxILkouSWgsITApO3ZhciBsPWR8fEF2KCksbj17fSxwPXtldmVudE1ldGFkYXRhOihuW0guSi5EY109WC5WLkZiLG5bSC5KLllhXT1oLG5bSC5KLnpqXT1sLG5bSC5KLmZkXT0hMCxuW0guSi5hal09ITAsbltILkouSWhdPSEwLG5bSC5KLlhtXT1nJiZJZig0Nyksbiksbm9HdG1FdmVudDohMH0scT1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuZXZlbnROYW1lLGEuTS5FYSk7bUQocSxhLk0uZXZlbnRJZCxwKTtnJiZRKGEsSC5KLndkKXx8VihhLEguSi5ZYSk7Zj1sOwpicmVhayBhfX1mPXZvaWQgMH12YXIgcj1kfHxmO2lmKHJ8fGUpe3ZhciB0LHU7dD1SKGEsRi5ELlBhKTt1PUt6LmdqLmJwO3ZhciB2PVIoYSxGLkQuV2MpOyF0JiZ2JiYodD12W0YuRC5QYV0sdT1Lei5nai51cSk7dHx8KHQ9QXYoUihhLEYuRC5HZCkpLHNiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsVC5XLkZoKSx1PUt6LmdqLlZxKTtVKGEsRi5ELlBhLHQpO1UoYSxGLkQuZG0sdSk7ciYmVShhLEYuRC54YyxyKTtlJiZVKGEsIl8mZWNzaWQyIixlKTtWKGEsSC5KLmxqLCEwKX19Owp2YXIgUks9ZnVuY3Rpb24oYSl7UShhLEguSi55bil8fFYoYSxILkouSmEsITEpfSxTSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPVhvKGZwKSxkPVEoYSxILkouc2EpLGU9UihhLEYuRC5HZCksZj1RKGEsSC5KLnBuKTtzd2l0Y2goYil7Y2FzZSBYLlYueGE6IWYmJmUmJlJLKGEpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjppZighY3x8ZHx8IWYmJmUpYS5pc0Fib3J0ZWQ9ITA7YnJlYWs7Y2FzZSBYLlYudWI6Y3x8KGEuaXNBYm9ydGVkPSEwKTshZiYmZXx8UksoYSk7UShhLEguSi53ZCl8fChhLmlzQWJvcnRlZD0hMCk7YS5ldmVudE5hbWUhPT1GLkQud2F8fE8oYS5NLEYuRC5DbCkhPT0hMSYmTyhhLk0sRi5ELlRkKSE9PSExfHxWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5LYTphLmV2ZW50TmFtZSE9PUYuRC5zYyYmUShhLEguSi5QYykmJihhLmlzQWJvcnRlZD0hMCksYS50YXJnZXQuaWRzW2RDWzFdXSYmCk8oYS5NLEYuRC5paCkhPT0hMCYmKGEuaXNBYm9ydGVkPSEwKX19O3ZhciBUSz1mdW5jdGlvbihhKXt2YXIgYixjPU0oNTc2KTtpZihRKGEsSC5KLnNuKSlzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLkZiOmlmKCEoYS5ldmVudE5hbWUhPT1GLkQud2F8fGMmJmh3KFEoYSxILkouWWEpKSkpYnJlYWs7Yj05NzthLmV2ZW50TmFtZT09PUYuRC53YSYmR3UoVC5XLk9rKTtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYuT2I6aWYoYS5ldmVudE5hbWU9PT1GLkQud2EpYnJlYWs7Yj05ODtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYueGE6Yj05OX0hUShhLEguSi5KYSkmJmImJlAoYik7UShhLEguSi5KYSk9PT0hMCYmKGEuaXNBYm9ydGVkPSEwKX07CnZhciBVSz1mdW5jdGlvbihhKXtpZihNKDU2OSkmJldqKCkmJlEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBiPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpLGM9bmV3IFVpbnQ4QXJyYXkoW2ImMjU1LGI+PjgmMjU1XSksZCxlPXltKCl8fCJYWCIsZj16bSgpfHwiMDAiO2Q9bmV3IFVpbnQ4QXJyYXkoW2UuY2hhckNvZGVBdCgwKSxlLmNoYXJDb2RlQXQoMSksZi5jaGFyQ29kZUF0KDApLGYuY2hhckNvZGVBdCgxKV0pO3ZhciBnPW5ldyBVaW50OEFycmF5KDcpLGg7aWYoKGg9QS5jcnlwdG8pPT1udWxsfHwhaC5nZXRSYW5kb21WYWx1ZXMoZykpZm9yKHZhciBsPTA7bDw3O2wrKylnW2xdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpO3ZhciBuPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGMpLHcoZCksdyhnKSkpLHA7dHJ5e3A9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KG4pKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csCiJfIikucmVwbGFjZSgvPSskLywiIil9Y2F0Y2gocSl7cD0iIn1VKGEsRi5ELkVpLHApfX07ZnVuY3Rpb24gVksoKXtyZXR1cm4gTXQoNykmJk10KDkpJiZNdCgxMCl9O3ZhciBXSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e307YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELm9qLChkW2JdPWMsZCkpfSxYSz1mdW5jdGlvbihhLGIpe3ZhciBjPWRJKGEsRi5ELkZpLGEuTS5pYltGLkQuRmldKTtpZihjJiZjW2J8fGEuZXZlbnROYW1lXSE9PXZvaWQgMClyZXR1cm4gY1tifHxhLmV2ZW50TmFtZV19LFlLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouWWEpO2lmKENkKGIpKXJldHVybiBifSxaSz1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKXx8IWVrKGEuTSkpcmV0dXJuIDE7aWYoIU8oYS5NLEYuRC5kZCkpe3ZhciBiPU8oYS5NLEYuRC5RZik7aWYoYiE9PSEwJiZiIT09InRydWUiKXJldHVybiAxfXZhciBjPU8oYS5NLEYuRC5PaSk7cmV0dXJuIGM9PT0hMXx8Yz09PSJmYWxzZSI/MzoyfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7Yj1BdihhPT09bnVsbD92b2lkIDA6YSk7cmV0dXJuIGJ9SU8uUD0iaW50ZXJuYWwuZ2VuZXJhdGVDbGllbnRJZCI7ZnVuY3Rpb24gSk8oYSl7dmFyIGI9e307aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCk7Yj1MSyhjKTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7aWYoIWVoKGEpJiYhZ2goYSl8fCFvaChiKXx8Z2goYSkmJmdoKGIpfHwhZ2goYSkmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkO2lmKGIpe3ZhciBlPVhGKHRoaXMpO2Q9SkMoSUMobmV3IHlDKE51bWJlcihlLmV2ZW50SWQpLE51bWJlcihlLnByaW9yaXR5SWQpKSwhMCkpfWVsc2UgZD1UZChhLHRoaXMuVCwxKS5yYigpLk07Yz1TdChkKTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhOyhhPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSkpJiZ1YigpO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztpZighZWgoYSl8fCFvaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtIdihkLGIpO2M9RHZbR3YoZC5wcmVmaXgpXTtyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhLHRoaXMuVCwxKS5yYigpLGQ9ZnVuY3Rpb24oZixnLGgpe3ZhciBsPWMuTS5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLGYsaCksbj1ZYihDZChsKT9sOnt9LCIuIik7biYmYi5zZXQoZyxuKX0sZT1PbyhmRChGLkQuT2EpKTtkKDEsRi5ELlhjLGUpO2QoMixGLkQuVmMpO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtiPVV2KGMpLlNoO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwiZXhlY3V0ZSIsIl9fZ3NhRXhwLmlkIik7dmFyIGI9QTtpZighYi5fX2dzYUV4cHx8IWIuX19nc2FFeHAuaWQpcmV0dXJuIGE7dmFyIGM9Yi5fX2dzYUV4cC5pZDtpZigheWIoYykpcmV0dXJuIGE7dHJ5e3ZhciBkPU51bWJlcihjKCkpO2lmKGlzTmFOKGQpKXJldHVybiBhO2E9ZH1jYXRjaChlKXtyZXR1cm4gYX1yZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO2E9T3AoITEpO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307aWYoIW5oKGEpfHwhb2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImJvb2xlYW4iLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIik7Yz1VcShhLGIpO3JldHVybiBVZChjKX1pUC5QPSJpbnRlcm5hbC5nZXRMaW5rZXJWYWx1ZUZyb21Mb2NhdGlvbiI7ZnVuY3Rpb24galAoKXt2YXIgYT1uZXcga2I7aWYoYXJndW1lbnRzLmxlbmd0aCE9PTApdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbXSxhcmd1bWVudHMpO3ZhciBiPVZNKCk7YiE9PXZvaWQgMCYmYS5zZXQoRi5ELmtnLGJ8fCJlcnJvciIpO3ZhciBjPUx0KCk7YyYmYS5zZXQoRi5ELktlLGMpO3ZhciBkPUt0KCk7ZCYmYS5zZXQoRi5ELk9lLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZhLnNldChGLkQudWgsZSk7dmFyIGY9a0YuSDtmJiZhLnNldChGLkQudGgsZik7cmV0dXJuIGF9alAuUD0iaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiO2Z1bmN0aW9uIGtQKGEsYil7dmFyIGM7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9JEgoYSl8fHt9O2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfWtQLlA9ImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gbFAoYSxiKXt2YXIgYztpZighbGgoYSl8fCFwaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsInF1ZXJ5IixhKTt2YXIgZD1MaihSaihBLmxvY2F0aW9uLmhyZWYpLCJxdWVyeSIpLGU9SWooZCxhLGIpO2M9VWQoZSx0aGlzLlQpO3JldHVybiBjfWxQLnB1YmxpY05hbWU9ImdldFF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gbVAoYSxiKXt2YXIgYztyZXR1cm4gY31tUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gblAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF9yZWZlcnJlciIsYSk7Yj1OaihSaihCLnJlZmVycmVyKSxhKTtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWVEKGEpO2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7TCh0aGlzLCJyZWFkX3NjcmVlbl9kaW1lbnNpb25zIik7dmFyIGI9cUkoKTthLnNldCgid2lkdGgiLGIud2lkdGgpO2Euc2V0KCJoZWlnaHQiLGIuaGVpZ2h0KTtyZXR1cm4gYX1yUC5QPSJpbnRlcm5hbC5nZXRTY3JlZW5EaW1lbnNpb25zIjtmdW5jdGlvbiBzUCgpe3ZhciBhPSIiO0wodGhpcywiZ2V0X3VybCIpO3ZhciBiPUZwKCk7YT1EcChiKS51cmw7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtMKHRoaXMsImdldF91cmwiKSxhPUEudG9wLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGF9dFAuUD0iaW50ZXJuYWwuZ2V0VG9wV2luZG93VXJsIjtmdW5jdGlvbiB1UChhKXt2YXIgYj0iIjtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsYSk7Yj1MaihSaihBLmxvY2F0aW9uLmhyZWYpLGEpO3JldHVybiBifXVQLnB1YmxpY05hbWU9ImdldFVybCI7ZnVuY3Rpb24gdlAoKXtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7cmV0dXJuIEhjLnVzZXJBZ2VudH12UC5wdWJsaWNOYW1lPSJnZXRVc2VyQWdlbnQiO3ZQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudCI7ZnVuY3Rpb24gd1AoKXt2YXIgYTtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7aWYoIURNKCl8fCFGTS5LKCkpcmV0dXJuO2E9Rk0uSCgpO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjt2YXIgeVA9ZnVuY3Rpb24oYSl7dmFyIGI9YS5ldmVudE5hbWU9PT1GLkQuc2MmJkVsKCkmJmJrKFpLKGEpKSxjPVEoYSxILkouZG4pLGQ9UShhLEguSi5LayksZT1RKGEsSC5KLm1nKSxmPVEoYSxILkouVGUpLGc9UShhLEguSi5GYyksaD1RKGEsSC5KLmhkKSxsPVEoYSxILkoucmcpLG49UShhLEguSi5NaCkscD1RKGEsSC5KLk5oKSxxPSEhWUsoYSl8fCEhUShhLEguSi5wcCk7cmV0dXJuISghbmQoKSYmIWtkKCl8fGV8fHF8fGZ8fGd8fGh8fGx8fHB8fG58fGJ8fGN8fCFkJiZ4UCgpKX0seFA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoOSxmdW5jdGlvbigpe3JldHVybiExfSl9O2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTt2YXIgQlA9WyJHQTEiXTsKdmFyIENQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1RKGEsSC5KLlBrKTtpZihkPT09dm9pZCAwfHxjPD1kKVUoYSxGLkQuS2IsYiksVihhLEguSi5QayxjKX0sRVA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELktiKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpfHxiJiZjPT09YilyZXR1cm4gYztpZihjKXtjPSIiK2M7aWYoIURQKGMsYSkpcmV0dXJuIFAoMzEpLGEuaXNBYm9ydGVkPSEwLCIiO0FQKGMsWG8oRi5ELnJhKSk7cmV0dXJuIGN9UCgzMik7YS5pc0Fib3J0ZWQ9ITA7cmV0dXJuIiJ9LEZQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9Yi5wcmVmaXgrIl9nYSIsZD1CdihiLnByZWZpeCsiX2dhIixiLmRvbWFpbixiLnBhdGgsQlAsRi5ELnJhKTtpZighZCl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5JZCwiIikpO2UmJmUhPT1jJiYoZD1CdihlLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpKX1yZXR1cm4gZH0sRFA9ZnVuY3Rpb24oYSxiKXt2YXIgYzsKdmFyIGQ9UShiLEguSi5HYSksZT1kLnByZWZpeCsiX2dhIixmPXVxKGQsdm9pZCAwLHZvaWQgMCxGLkQucmEpO2lmKE8oYi5NLEYuRC5KZCk9PT0hMSYmRlAoYik9PT1hKWM9ITA7ZWxzZXt2YXIgZztnPVtCUFswXSx0cShkLmRvbWFpbixkLnBhdGgpLGFdLmpvaW4oIi4iKTtjPW9xKGUsZyxmKSE9PTF9cmV0dXJuIGN9Owp2YXIgR1A9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7Yj1OYigpfSxzdG9wOmZ1bmN0aW9uKCl7Yz10aGlzLmdldCgpfSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZD0wO2EuVmooKSYmKGQ9TmIoKS1iKTtyZXR1cm4gZCtjfX19LEhQPWZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMDt0aGlzLks9MDt0aGlzLmlzQWN0aXZlPXRoaXMuaXNWaXNpYmxlPXRoaXMuTj0hMTt0aGlzLlo9dGhpcy5SPXZvaWQgMH07az1IUC5wcm90b3R5cGU7ay5LcT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKCF0aGlzLkgpe3RoaXMuTj1CLmhhc0ZvY3VzKCk7dGhpcy5pc1Zpc2libGU9IUIuaGlkZGVuO3RoaXMuaXNBY3RpdmU9ITA7dmFyIGM9ZnVuY3Rpb24oZSxmLGcpeyRjKGUsZixmdW5jdGlvbihoKXtiLkguc3RvcCgpO2coaCk7Yi5WaigpJiZiLkguc3RhcnQoKX0pfSxkPUE7YyhkLCJmb2N1cyIsZnVuY3Rpb24oKXtiLk49ITB9KTtjKGQsImJsdXIiLGZ1bmN0aW9uKCl7Yi5OPQohMX0pO2MoZCwicGFnZXNob3ciLGZ1bmN0aW9uKGUpe2IuaXNBY3RpdmU9ITA7ZS5wZXJzaXN0ZWQmJlAoNTYpO2IuWiYmYi5aKCl9KTtjKGQsInBhZ2VoaWRlIixmdW5jdGlvbigpe2IuaXNBY3RpdmU9ITE7Yi5SJiZiLlIoKX0pO2MoQiwidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtiLmlzVmlzaWJsZT0hQi5oaWRkZW59KTtiayhaSyhhKSkmJiFPYygpJiZjKGQsImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtaayg5LCEwKX0pO3RoaXMucWsoITApO3RoaXMuSz0wfX07ay5xaz1mdW5jdGlvbihhKXtpZigoYT09PXZvaWQgMD8wOmEpfHx0aGlzLkgpdGhpcy5LKz10aGlzLlloKCksdGhpcy5IPUdQKHRoaXMpLHRoaXMuVmooKSYmdGhpcy5ILnN0YXJ0KCl9O2suS3Q9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ZaCgpO2I+MCYmVShhLEYuRC5uaCxiKX07ay5scz1mdW5jdGlvbihhKXtVKGEsRi5ELm5oKTt0aGlzLnFrKCk7dGhpcy5LPTB9O2suVmo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OJiYKdGhpcy5pc1Zpc2libGUmJnRoaXMuaXNBY3RpdmV9O2suWHI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LK3RoaXMuWWgoKX07ay5ZaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgmJnRoaXMuSC5nZXQoKXx8MH07ay5odD1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay5Dbz1mdW5jdGlvbihhKXt0aGlzLlo9YX07dmFyIElQPWZ1bmN0aW9uKGEpe3NiKCJHQTRfRVZFTlQiLGEpfTt2YXIgSlA9ZnVuY3Rpb24oYSl7dmFyIGIsYz1RKGEsSC5KLndtKTtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKUlQKGNbZF0pOyhiPXdiKHJiLkdBNF9FVkVOVHx8W10pKSYmVShhLCJfZXUiLGIpfTsKdmFyIE1QPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBSZWdFeHAoIl4iKygoKGE9PW51bGw/dm9pZCAwOmEucHJlZml4KXx8IiIpKyJfZ2FfXFx3KyQiKSksYz15cShmdW5jdGlvbihwKXtyZXR1cm4gYi50ZXN0KHApfSksZD17fSxlO2ZvcihlIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9S1AoY1tlXSk7aWYoZil7dmFyIGc9YnEoZiwyKTtpZihnKXt2YXIgaD1MUChnKTtpZihoKXt2YXIgbD12b2lkIDAsbj0oKChsPWEpPT1udWxsP3ZvaWQgMDpsLnByZWZpeCl8fCIiKS5sZW5ndGgrNDtkWyJHLSIrZS5zdWJzdHJpbmcobildPWh9fX19cmV0dXJuIGR9LE5QPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiO2E6e3ZhciBjPShTYihhLCJzIikmJmEuaW5kZXhPZigiLiIpPT09LTE/IkdTMiI6IkdTMSIpKyIuMS4iK2E7dHJ5e2I9JHAoYywyKTticmVhayBhfWNhdGNoKGQpe31iPXZvaWQgMH1yZXR1cm4gYn19LEtQPWZ1bmN0aW9uKGEpe2lmKGEmJmEubGVuZ3RoIT09MCl7Zm9yKHZhciBiLApjPS1JbmZpbml0eSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoZi50IT09dm9pZCAwKXt2YXIgZz1OdW1iZXIoZi50KTshaXNOYU4oZykmJmc+YyYmKGM9ZyxiPWYpfX1yZXR1cm4gYn19LHpxPWZ1bmN0aW9uKGEpe2EmJihhPT09IkdTMSI/SVAoSi5VLkttKTphPT09IkdTMiImJklQKEouVS5MbSkpfSxMUD1mdW5jdGlvbihhKXt2YXIgYj1OUChhKTtpZihiKXt2YXIgYz1OdW1iZXIoYi5vKSxkPU51bWJlcihiLnQpLGU9TnVtYmVyKGIuanx8MCk7Y3x8SVAoSi5VLlVtKTtkfHxJUChKLlUuVG0pO2lzTmFOKGUpJiZJUChKLlUuU20pO2lmKGMmJmQmJiFpc05hTihlKSl7dmFyIGY9Yi5oLGc9ZiYmZiE9PSIwIj9TdHJpbmcoZik6dm9pZCAwLGg9Yi5kP1N0cmluZyhiLmQpOnZvaWQgMCxsPXt9O3JldHVybiBsLnM9U3RyaW5nKGIucyksbC5vPWMsbC5nPSEhTnVtYmVyKGIuZyksbC50PWQsbC5kPWgsbC5qPWUsbC5sPWIubD09PSIxIiwKbC5oPWcsbH19fTsKdmFyIFBQPWZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4gYTtpZighYSlyZXR1cm4gYjt2YXIgZD1MUChhKTtpZighZClyZXR1cm4gYjt2YXIgZSxmPUliKChlPU8oYy5NLEYuRC55aCkpIT1udWxsP2U6MzApLGc9UShjLEguSi5FYik7aWYoIShNYXRoLmZsb29yKGcvMUUzKT5kLnQrZio2MCkpcmV0dXJuIGE7dmFyIGg9TFAoYik7aWYoIWgpcmV0dXJuIGE7aC5vPWQubysxO3ZhciBsO3JldHVybihsPU9QKGgpKSE9bnVsbD9sOmJ9LFJQPWZ1bmN0aW9uKGEsYil7dmFyIGM9UShiLEguSi5HYSksZD1RUChiLGMpLGU9TlAoYSk7aWYoIWUpcmV0dXJuITE7dmFyIGY9dXEoY3x8e30sdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpO29xKGQsdm9pZCAwLGYpO3JldHVybiBBcShkLGUsMixjKSE9PTF9LFNQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM7dmFyIGQ9UVAoYSxiKSxlO2I6e3ZhciBmPXpxLGc9WnBbMl07aWYoZyl7dmFyIGgsbD1ycShiLmRvbWFpbiksbj1zcShiLnBhdGgpLApwPU9iamVjdC5rZXlzKGcuamkpLHE9dnEuZ2V0KDIpLHI7aWYoaD0ocj1ncShkLGwsbixwLHEpKT09bnVsbD92b2lkIDA6ci5Ccil7dmFyIHQ9JHAoaCwyLGYpO2U9dD94cSh0KTp2b2lkIDA7YnJlYWsgYn19ZT12b2lkIDB9aWYoZSl7dmFyIHU9d3EoZCwyLHpxKTtpZih1JiZ1Lmxlbmd0aD4xKXtJUChKLlUuSm0pO3ZhciB2PUtQKHUpO3YmJnYudCE9PWUudCYmKElQKEouVS5NbSksZT12KX1jPWJxKGUsMil9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sVFA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5FYiksYz17fTtjLnM9UihhLEYuRC54Yyk7Yy5vPVIoYSxGLkQuQWgpO3ZhciBkO2Q9UihhLEYuRC56aCk7dmFyIGU9KGMuZz1kLGMudD1NYXRoLmZsb29yKGIvMUUzKSxjLmQ9UShhLEguSi5vZyksYy5qPVEoYSxILkoucGcpfHwwLGMubD0hIVEoYSxILkoucm0pLGMuaD1SKGEsRi5ELm9oKSxjKTtyZXR1cm4gT1AoZSl9LE9QPWZ1bmN0aW9uKGEpe2lmKGEucyYmYS5vKXt2YXIgYj0Ke30sYz0oYi5zPWEucyxiLm89U3RyaW5nKGEubyksYi5nPUliKGEuZyk/IjEiOiIwIixiLnQ9U3RyaW5nKGEudCksYi5qPVN0cmluZyhhLmopLGIubD1hLmw/IjEiOiIwIixiLmg9YS5ofHwiMCIsYi5kPWEuZCxiKTtyZXR1cm4gYnEoYywyKX19LFFQPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIucHJlZml4KyJfZ2FfIithLnRhcmdldC5pZHNbZENbNl1dfTsKdmFyIFVQPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDIsZnVuY3Rpb24oKXtyZXR1cm4hMX0pfSxWUD1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuRGIpLGM9YS5NLmliW0YuRC5EYl07aWYoYz09PWIpcmV0dXJuIGM7dmFyIGQ9RWQoYixudWxsKTtjJiZjW0YuRC5BYV0mJihkW0YuRC5BYV09KGRbRi5ELkFhXXx8W10pLmNvbmNhdChjW0YuRC5BYV0pKTtyZXR1cm4gZH0sV1A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1VcSghMCk7cmV0dXJuIGMuX3VwIT09IjEiP3t9OntjbGllbnRJZDpjW2FdLHpiOmNbYl19fSxYUD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VXEoITApLGU9ZFtiXTtlJiYoQ1AoYSxlLDIpLERQKGUsYSkpO3ZhciBmPWRbY107ZiYmUlAoZixhKTtyZXR1cm57Y2xpZW50SWQ6ZSx6YjpmfX0sWVA9ZnVuY3Rpb24oKXt2YXIgYT1OaihBLmxvY2F0aW9uLCJob3N0IiksYj1OaihSaihCLnJlZmVycmVyKSwiaG9zdCIpO3JldHVybiBhJiZiP2E9PT1ifHxhLmluZGV4T2YoIi4iK2IpPj0KMHx8Yi5pbmRleE9mKCIuIithKT49MD8hMDohMTohMX0sWlA9ZnVuY3Rpb24oYSl7aWYoIU8oYS5NLEYuRC56YykpcmV0dXJue307dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPVFQKGEsYik7YnIoZnVuY3Rpb24oKXt2YXIgZTtpZihYbygiYW5hbHl0aWNzX3N0b3JhZ2UiKSllPXt9O2Vsc2V7dmFyIGY9e191cDoiMSJ9LGc7Zz1SKGEsRi5ELktiKTtlPShmW2NdPWcsZltkXT1UUChhKSxmKX1yZXR1cm4gZX0sMSk7cmV0dXJuIVhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpJiZZUCgpP1dQKGMsZCk6e319LCRQPWZ1bmN0aW9uKGEpe3ZhciBiPVZQKGEpfHx7fSxjPVEoYSxILkouR2EpLGQ9Yy5wcmVmaXgrIl9nYSIsZT1RUChhLGMpLGY9e307ZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKSYmKGY9WFAoYSxkLGUpLGYuY2xpZW50SWQmJmYuemImJlprKDIsITApKTtiW0YuRC5BYV0mJmFyKGZ1bmN0aW9uKCl7dmFyIGc9e30saD1GUChhKTtoJiYoZ1tkXT1oKTt2YXIgbD1TUChhKTsKbCYmKGdbZV09bCk7dmFyIG49Y3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKTtuLmxlbmd0aCYmKGcuX2ZwbGM9blswXSk7cmV0dXJuIGd9LGJbRi5ELkFhXSxiW0YuRC5hZF0sISFiW0YuRC53Y10pO3JldHVybiBmfTt2YXIgYVE9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouYmUpJiZlayhhLk0pKXt2YXIgYj1WUChhKXx8e30sYz0oZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKT9VcSghMCkuX2ZwbGM6dm9pZCAwKXx8KGNxKCJGUExDIix2b2lkIDAsdm9pZCAwLEYuRC5yYSkubGVuZ3RoPjA/dm9pZCAwOiIwIik7VShhLCJfZnBsYyIsYyl9fTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07dmFyIGVRPWZ1bmN0aW9uKGEsYil7a2ooImdybCIsZnVuY3Rpb24oKXtyZXR1cm4gZFEoKX0pKGIpfHwoUCgzNSksYS5pc0Fib3J0ZWQ9ITApfSxkUT1mdW5jdGlvbigpe3ZhciBhPU5iKCksYj1hKzg2NEU1LGM9MjAsZD01RTM7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBmPU5iKCk7Zj49YiYmKGI9Zis4NjRFNSxkPTVFMyk7Yz1NYXRoLm1pbihjKyhmLWEpLzFFMyo1LDIwKTthPWY7dmFyIGc9ITE7ZDwxfHxjPDF8fChnPSEwLGQtLSxjLS0pO2UmJihlLkhyPWQsZS51cj1jKTtyZXR1cm4gZ319Owp2YXIgZlE9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5VYSk7cmV0dXJuIExqKFJqKGIpLCJob3N0IiwhMCl9LGdRPWZ1bmN0aW9uKGEpe2lmKE8oYS5NLEYuRC5XZikhPT12b2lkIDApYS5jb3B5VG9IaXREYXRhKEYuRC5XZik7ZWxzZXt2YXIgYj1PKGEuTSxGLkQuYW0pLGMsZDthOntpZihVUCgpKXt2YXIgZT1WUChhKXx8e307aWYoZSYmZVtGLkQuQWFdKWZvcih2YXIgZj1mUShhKSxnPWVbRi5ELkFhXSxoPTA7aDxnLmxlbmd0aDtoKyspaWYoZ1toXWluc3RhbmNlb2YgUmVnRXhwKXtpZihnW2hdLnRlc3QoZikpe2Q9ITA7YnJlYWsgYX19ZWxzZSBpZihmLmluZGV4T2YoZ1toXSk+PTApe2Q9ITA7YnJlYWsgYX19ZD0hMX1pZighKGM9ZCkpe3ZhciBsO2lmKGw9YilhOntmb3IodmFyIG49Yi5pbmNsdWRlX2NvbmRpdGlvbnN8fFtdLHA9ZlEoYSkscT0wO3E8bi5sZW5ndGg7cSsrKWlmKG5bcV0udGVzdChwKSl7bD0hMDticmVhayBhfWw9ITF9Yz1sfWMmJihVKGEsRi5ELldmLCIxIiksCklQKEouVS5ubikpfX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTsKdmFyIGtRPWZ1bmN0aW9uKGEsYil7VHQoKSYmKGEuZ2NzPVV0KCksUShiLEguSi5HaCkmJihhLmdjdT0iMSIpKTthLmdjZD1ZdChiLk0pO2EubnBhPVEoYixILkoud2QpPyIwIjoiMSI7em0oKT09PSJVUy1DTyImJihhLl9uZz0iMSIpfSxsUT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKSlyZXR1cm57dXJsOmZrKCJodHRwczovL3d3dy5tZXJjaGFudC1jZW50ZXItYW5hbHl0aWNzLmdvb2ciLHZvaWQgMCwiIikrIi9tYy9jb2xsZWN0IixlbmRwb2ludDoyMH07dmFyIGI9WWooZWsoYS5NKSwiL2cvY29sbGVjdCIpO2lmKGIpcmV0dXJue3VybDpiLGVuZHBvaW50OjE2fTt2YXIgYztjPVEoYSxILkoucm4pJiYhUShhLEguSi5GYyk/MTc6MTY7cmV0dXJue3VybDpNbVtjXSh2b2lkIDApLGVuZHBvaW50OmN9fSxtUT17fTttUVtGLkQuS2JdPSJjaWQiO21RW0YuRC54aV09ImdjdXQiO21RW0YuRC5GZV09ImFyZSI7bVFbRi5ELmpoXT0icHNjZGwiO21RW0YuRC5OZF09ImV4Y2lkIjttUVtGLkQuR2ldPQoiX2ZpZCI7bVFbRi5ELk9sXT0iX2dlbyI7bVFbRi5ELlhjXT0iZ2RpZCI7bVFbRi5ELkxlXT0iX25nIjttUVtGLkQuTWVdPSJmcm0iO21RW0YuRC5XZl09ImlyIjttUVtGLkQuU2xdPSJmcCI7bVFbRi5ELnRiXT0idWwiO21RW0YuRC5NaV09Im5pIjttUVtGLkQubXFdPSJwYWUiO21RW0YuRC54aF09Il9yZGkiO21RW0YuRC5iZF09InNyIjttUVtGLkQuUWldPSJ0ZXN0b25seSI7bVFbRi5ELlFlXT0idGlkIjttUVtGLkQuUmldPSJ0dCI7bVFbRi5ELkJjXT0iZWNfbW9kZSI7bVFbRi5ELlptXT0iZ3RtX3VwIjttUVtGLkQuY2ddPSJ1YWEiO21RW0YuRC5kZ109InVhYiI7bVFbRi5ELmVnXT0idWFmdmwiO21RW0YuRC5mZ109InVhbWIiO21RW0YuRC5nZ109InVhbSI7Cm1RW0YuRC5oZ109InVhcCI7bVFbRi5ELmlnXT0idWFwdiI7bVFbRi5ELmpnXT0idWF3IjttUVtGLkQub21dPSJ1ciI7bVFbRi5ELllpXT0iX3VpcCI7bVFbRi5ELmxxXT0iX3BycyI7bVFbRi5ELlBkXT0ibHBzIjttUVtGLkQuQmVdPSJnY2xncyI7bVFbRi5ELkRlXT0iZ2Nsc3QiO21RW0YuRC5DZV09ImdjbGxwIjt2YXIgblE9e307blFbRi5ELkdmXT0iY2MiO25RW0YuRC5IZl09ImNpIjtuUVtGLkQuSWZdPSJjbSI7blFbRi5ELkpmXT0iY24iO25RW0YuRC5MZl09ImNzIjtuUVtGLkQuTWZdPSJjayI7blFbRi5ELmViXT0iY3UiO25RW0YuRC5WZl09Il90dSI7blFbRi5ELnphXT0iZGwiO25RW0YuRC5ZZl09ImRwIjtuUVtGLkQuVWFdPSJkciI7blFbRi5ELk1iXT0iZHQiO25RW0YuRC56aF09InNlZyI7blFbRi5ELnhjXT0KInNpZCI7blFbRi5ELkFoXT0ic2N0IjtuUVtGLkQuZmJdPSJ1aWQiO3ZhciBvUT17fTtvUVtGLkQubmhdPSJfZXQiO29RW0YuRC5WY109ImVkaWQiO29RW0YuRC5NZF09ImV2bmlkIjtNKDk0KSYmKG9RLl9ldT0iX2V1Iik7dmFyIHBRPXt9O3BRW0YuRC5HZl09ImNjIjtwUVtGLkQuSGZdPSJjaSI7cFFbRi5ELklmXT0iY20iO3BRW0YuRC5KZl09ImNuIjtwUVtGLkQuTGZdPSJjcyI7cFFbRi5ELk1mXT0iY2siO3ZhciBxUT17fSxyUT0ocVFbRi5ELkFjXT0xLHFRKSxzUT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChkYSxtYSl7aWYobWEhPT12b2lkIDAmJiFCby5oYXNPd25Qcm9wZXJ0eShkYSkpe21hPT09bnVsbCYmKG1hPSIiKTt2YXIgUGE7dmFyIEZhPW1hO2RhIT09Ri5ELm9oP1BhPSExOlEoYSxILkoubGcpfHxiayhaSyhhKSk/KGUuZWNpZD1GYSxQYT0hMCk6UGE9dm9pZCAwO2lmKCFQYSl7dmFyIHFhPW1hO21hPT09ITAmJihxYT0iMSIpO21hPT09ITEmJihxYT0iMCIpO3FhPQpTdHJpbmcocWEpO3ZhciBpYjtpZihkYSE9PUYuRC5OZCYmZGEhPT1GLkQuTWR8fE0oNTA0KSlpZihtUVtkYV0paWI9bVFbZGFdLHZbaWJdPXFhO2Vsc2UgaWYoblFbZGFdKWliPW5RW2RhXSxnW2liXT1xYTtlbHNlIGlmKG9RW2RhXSlpYj1vUVtkYV0sZltpYl09cWE7ZWxzZSBpZihTYihkYSwiXyYiKSlpYj1kYS5zdWJzdHJpbmcoMiksdltpYl09cWE7ZWxzZSBpZihkYS5jaGFyQXQoMCk9PT0iXyIpdltkYV09cWE7ZWxzZXt2YXIgWGI7cFFbZGFdP1hiPSEwOmRhIT09Ri5ELktmP1hiPSExOih0eXBlb2YgbWEhPT0ib2JqZWN0IiYmdShkYSxtYSksWGI9ITApO1hifHx1KGRhLG1hKX1lbHNlIHUoZGEsbWEpfX19dmFyIGU9e30sZj17fSxnPXt9O2Uudj0iMiI7ZS50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZDtlLmd0bT1kdSh7bWM6UShhLEguSi5OYiksZWY6UShhLEguSi5DYyl9KTtlLl9wPSRrKDI1KTtjJiYoYy5oYXNVcGR8fGMuaGFkRXJyb3IpJiYoZS5lbT1jLnBhcmFtKTtRKGEsCkguSi5yZykmJihlLl9nYXo9MSk7a1EoZSxhKTthdSgpJiYoZS5kbWFfY3BzPVp0KCkpO2UuZG1hPSR0KCk7dnQoRXQoKSkmJihlLnRjZmQ9YnUoKSk7dmFyIGg9Q3AoYSk7aCYmKGcudGFnX2V4cD1oKTt2YXIgbD1SKGEsRi5ELlhjKTtsJiYoZS5nZGlkPWwpO2YuZW49U3RyaW5nKGEuZXZlbnROYW1lKTtpZihRKGEsSC5KLm5nKSl7dmFyIG49UShhLEguSi5ZbSk7Zi5fZnY9bj8yOjF9UShhLEguSi5IaCkmJihmLl9uc2k9MSk7aWYoUShhLEguSi5UZSkpe3ZhciBwPVEoYSxILkouYm4pO2YuX3NzPXA/MjoxfVEoYSxILkoubWcpJiYoZi5fYz0xKTtRKGEsSC5KLmFlKSYmKGYuX2VlPTEpO2lmKFEoYSxILkouV20pKXt2YXIgcT1SKGEsRi5ELkhhKXx8TyhhLk0sRi5ELkhhKTtpZihBcnJheS5pc0FycmF5KHEpKWZvcih2YXIgcj0wO3I8cS5sZW5ndGgmJnI8MjAwO3IrKylmWyJwciIrKHIrMSldPXRnKHFbcl0pfXZhciB0PVIoYSxGLkQuVmMpO3QmJihmLmVkaWQ9dCk7aHQoYSxmKTtmb3IodmFyIHU9CmZ1bmN0aW9uKGRhLG1hKXtpZih0eXBlb2YgbWEhPT0ib2JqZWN0Inx8IXJRW2RhXSl7dmFyIFBhPSJlcC4iK2RhLEZhPSJlcG4uIitkYTtkYT1BYihtYSk/RmE6UGE7dmFyIHFhPUFiKG1hKT9QYTpGYTtmLmhhc093blByb3BlcnR5KHFhKSYmZGVsZXRlIGZbcWFdO2ZbZGFdPVN0cmluZyhtYSl9fSx2PXt9LHg9bShldShhKSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ZCh6LFIoYSx6KSl9Zm9yKHZhciBDPW0oT2JqZWN0LmtleXModikuc29ydCgpKSxEPUMubmV4dCgpOyFELmRvbmU7RD1DLm5leHQoKSl7dmFyIEk9RC52YWx1ZTtlW0ldPXZbSV19KGZ1bmN0aW9uKGRhKXtiayhaSyhhKSkmJnR5cGVvZiBkYT09PSJvYmplY3QiJiZHYihkYXx8e30sZnVuY3Rpb24obWEsUGEpe3R5cGVvZiBQYSE9PSJvYmplY3QiJiYoZVsic3N0LiIrbWFdPVN0cmluZyhQYSkpfSl9KShSKGEsRi5ELm9qKSk7YnYoZSxSKGEsRi5ELmVkKSk7dmFyIEc9UihhLEYuRC5XZCl8fAp7fTtHYihHLGZ1bmN0aW9uKGRhLG1hKXttYSE9PXZvaWQgMCYmKChtYT09PW51bGwmJihtYT0iIiksZGEhPT1GLkQuZmJ8fGcudWlkKT9iW2RhXSE9PW1hJiYoZlsoQWIobWEpPyJ1cG4uIjoidXAuIikrU3RyaW5nKGRhKV09U3RyaW5nKG1hKSxiW2RhXT1tYSk6Zy51aWQ9U3RyaW5nKG1hKSl9KTtpZihXaigpJiYhRG0oKSYmIWJrKFpLKGEpKSl7dmFyIE49UShhLEguSi5vZyk7Tj9lLl9nc2lkPU46ZS5uamlkPSIxIn12YXIgUz1RKGEsSC5KLlZpKTsoUz09bnVsbD92b2lkIDA6Uy52YWx1ZSk+MCYmKGUuZ2FmPVMuZ2V0KCkpO3ZhciBXPVIoYSxGLkQuV2MpO2lmKFcpZm9yKHZhciBlYT1tKE9iamVjdC5rZXlzKFcpKSxqYT1lYS5uZXh0KCk7IWphLmRvbmU7amE9ZWEubmV4dCgpKXt2YXIgZmE9amEudmFsdWU7ZlsiZXh0LiIrZmFdPVdbZmFdfHwiIn12YXIgc2E9bFEoYSk7dmcuY2FsbCh0aGlzLHtCYTplLHZlOmcsTGo6Zn0sc2EudXJsLHNhLmVuZHBvaW50LFpLKGEpLHZvaWQgMCwKYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLk0uZXZlbnRJZCxhLk0ucHJpb3JpdHlJZCl9O3dhKHNRLHZnKTsKdmFyIHRRPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucmVwbGFjZSgvXCRceyhbXlx9XSspXH0vZyxmdW5jdGlvbihjLGQpe3JldHVybiBiW2RdfHxjfSl9LHVRPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9IiIsZD1hLnBhdGhuYW1lLmluZGV4T2YoIi9nL2NvbGxlY3QiKTtkPj0wJiYoYz1hLnBhdGhuYW1lLnN1YnN0cmluZygwLGQpKTtiLnRyYW5zcG9ydF91cmw9YS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYzt2YXIgZTt0cnl7ZT1lbmNvZGVVUklDb21wb25lbnQoY3x8Ii8iKX1jYXRjaChmKXtlPWVuY29kZVVSSUNvbXBvbmVudCgiLyIpfWIuZW5jb2RlZF9wYXRoPWU7cmV0dXJuIGJ9LHZRPWZ1bmN0aW9uKGEsYil7aWYoIU0oNTQ2KSlyZXR1cm57dXJsOmEsYm9keTpifTt2YXIgYz1tKGEuc3BsaXQoIj8iKSksZD1jLm5leHQoKS52YWx1ZSxlPWMubmV4dCgpLnZhbHVlLGY9aFEoZCxlfHwiIixifHwiIiwhMCksZz1mLkljLGg9Zi5rZjthPWghPT0iIj9nKyI/IitoOmc7Yj1mLmJvZHk7CnJldHVybnt1cmw6YSxib2R5OmJ9fSx4UT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9UmooYiksZT11UShkKSxmPXZRKFhnKGQpLGMpLGc9ZnVuY3Rpb24oaCl7cXgoZi51cmwsZi5ib2R5LG5ldyB3UShlLGgpKSYmYSYma24ucmVnaXN0ZXIoYSwxLGYudXJsKX07IU0oMTMyKXx8TmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKT9nKCk6bUwoZi51cmwsZi5ib2R5LGUsZyl9LHdRPWZ1bmN0aW9uKGEsYil7Q3guY2FsbCh0aGlzKTt0aGlzLnRlbXBsYXRlcz1hO3RoaXMuTj1ifTt3YSh3USxDeCk7d1EucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7dmFyIGI9dFEoYSx0aGlzLnRlbXBsYXRlcyk7cmV0dXJuIHRoaXMuTj9iLnJlcGxhY2UoIl9pc19zdz0wIix0aGlzLk4pOmJ9O3dRLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5aKGEpO0N4LnByb3RvdHlwZS5LLmNhbGwodGhpcyxjLGIpfTt3US5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzLlooYSk7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGMsYil9Owp2YXIgeVE9ZnVuY3Rpb24oYSl7cmV0dXJuIVNiKGEsRm0oKSkmJiFTYihhLEdtKCkpfSxBUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIW5kKCkpcmV0dXJuIHpRKGEsYixjLGQpLCEwO1luKGMsYiE9PSIiP2ErIj8iK2I6YSxkLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZXx8e30se1FnOiEwfSksdm9pZCAwLGYpfHx6UShhLGIsYyxkKTtyZXR1cm4hMH0selE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YiE9PSIiP2ErIj8iK2I6YTtkP1duKGMsZSxkKTpWbihjLGUpfSxDUT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWIsZz1wZCgpO2chPT12b2lkIDAmJihmKz0iJnRmZD0iK01hdGgucm91bmQoZykpO2I9Zjt2YXIgaD1hKyI/IitiO2lmKCFiayhkKXx8Y2soZCl8fHhQKCkpe3ZhciBsPWhRKGEsYixjLGJrKGQpKTthPWwuSWM7Yj1sLmtmO2M9bC5ib2R5O0FRKGEsYixlLGMsdm9pZCAwLEJRKGEsYixlLGMpKXx8elEoYSxiLGUsYyl9ZWxzZSB4UShlLGgsYyk7CmJrKGQpJiZNKDU2NCkmJm5kKCkmJlRiKGEsIi9nL2NvbGxlY3QiKSYmQS5mZXRjaChhLnN1YnN0cmluZygwLGEubGVuZ3RoLTEwKSx7bWV0aG9kOiJQT1NUIixib2R5OiJDakFPQVR3Y0NCZ08iLGNyZWRlbnRpYWxzOiJvbWl0In0pfSxCUT1mdW5jdGlvbihhLGIsYyxkKXtpZigheVEoYSkpe3ZhciBlPU1tWzY3XSh2b2lkIDApO2lmKGUpcmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY7dmFyIGc9Yi5yZXBsYWNlKC9eXD8vLCIiKSxoPU51bWJlcihJaihnLCJnYWYiLCExKSksbD0wO051bWJlci5pc0ludGVnZXIoaCkmJihsPWgpO3ZhciBuPW5ldyBlcihsKTtmcihuLDEpO2lmKG4udmFsdWUhPT0wKXt2YXIgcCxxPW4uZ2V0KCkscj1SZWdFeHAoIihefFs/Jl0pZ2FmPVteJl0qKCZ8JCkiKTtwPXIudGVzdChnKT9nLnJlcGxhY2UociwiJDFnYWY9IitxKyIkMiIpOmcuaW5kZXhPZigiPyIpPj0wP2crIiZnYWY9IitxOmdbMF09PT0iLyJ8fGcuaW5kZXhPZigiOi8vIik+PTA/ZysiP2dhZj0iKwpxOmcubGVuZ3RoPjA/ZysiJmdhZj0iK3E6ImdhZj0iK3E7Zj1iLmluZGV4T2YoIj8iKT09PTA/Ij8iK3A6cH1lbHNlIGY9dm9pZCAwO0FRKGUsZnx8YixuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2VuZHBvaW50OjY3fSksZCxjLmVuZHBvaW50PT09MTc/dm9pZCAwOntjcmVkZW50aWFsczoib21pdCJ9KX19fSxEUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT1mdW5jdGlvbihoKXtkLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZC5wdXNoKCJ2PTIiKTtlKCJfZ3NpZCIpO2UoImd0bSIpO2EuQmEuX2dlbyYmZSgiX2dlbyIpO3ZhciBmPSJodHRwczovL3tnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn1nb29nbGUtYW5hbHl0aWNzLmNvbS9nL3MvY29sbGVjdCIucmVwbGFjZSgie2dhNENvbGxlY3Rpb25TdWJkb21haW4ufSIsKGJ8fCJ3d3ciKSsiLiIpLGc9ZC5qb2luKCImIik7elEoZixnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8CiIiLGVuZHBvaW50OjYyLGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSk7TWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmYrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDo2Mn0scWI6Y30pfSxFUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWFuYWx5dGljcy5nb29nbGUuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IixiP2IrIi4iOiIiKSxlPVtdLGY9ZnVuY3Rpb24oaCl7ZS5wdXNoKGgrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW2hdKSl9O2YoIl9nc2lkIik7ZigiZ3RtIik7YS5CYS5fZ2VvJiZmKCJfZ2VvIik7dmFyIGc9ZS5qb2luKCImIik7elEoZCxnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTgsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTsKTWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmQrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOH0scWI6Y30pfSxGUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7Yi5wdXNoKCJ6PSIrRGIoKSk7aWYoIWUpe3ZhciBnPWQmJlNiKGQsImdvb2dsZS4iKSYmZCE9PSJnb29nbGUuY29tIj8iaHR0cHM6Ly93d3cuJS9hZHMvZ2EtYXVkaWVuY2VzP3Y9MSZ0PXNyJnNsZl9yZD0xJl9yPTQmIi5yZXBsYWNlKCIlIixkKTp2b2lkIDA7aWYoZyl7dmFyIGg9ZytiLmpvaW4oIiYiKTtYbih7ZGVzdGluYXRpb25JZDphLmRlc3RpbmF0aW9uSWR8fCIiLGVuZHBvaW50OjQ3LGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSxoKTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6aCxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjQ3fSxxYjpmfSl9fX0sR1E9CmZ1bmN0aW9uKGEsYixjLGQpe2MmJmIucHVzaCgidGFnX2V4cD0iK2MpO3pRKCJodHRwczovL3N0YXRzLmcuZG91YmxlY2xpY2submV0L2cvY29sbGVjdCIsInY9MiYiK2Iuam9pbigiJiIpLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTksZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6Imh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0P3Y9MiYiK2Iuam9pbigiJiIpLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6MTl9LHFiOmR9KX0sSFE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKHYpe3EucHVzaCh2KyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVt2XSkpfXZhciBkPWIueHQsZT1iLkJ0LGY9Yi5BdCxnPWIuenQsaD1iLlpyLGw9Yi5DcyxuPWIuUHIscD1iLkd0O2lmKGR8fGV8fGZ8fGcpe3ZhciBxPQpbXTthLkJhLl9uZyYmYygiX25nIik7YS5CYS5uZ3MmJmMoIm5ncyIpO2EuQmEuaWJ0JiZjKCJpYnQiKTtjKCJ0aWQiKTtjKCJjaWQiKTtjKCJndG0iKTtmb3IodmFyIHI9bShPRiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7YS5CYVt1XSE9bnVsbCYmYyh1KX1xLnB1c2goImFpcD0xIik7YS52ZS51aWQmJnEucHVzaCgidWlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EudmUudWlkKSk7YygiZG1hIik7YS5CYS5kbWFfY3BzIT1udWxsJiZjKCJkbWFfY3BzIik7YS5CYS5nY3MhPW51bGwmJmMoImdjcyIpO2MoImdjZCIpO2EuQmEubnBhIT1udWxsJiZjKCJucGEiKTthLkJhLmZybSE9bnVsbCYmYygiZnJtIik7ZCYmR1EoYSxxLnNsaWNlKCkscCxiLnFiKTtlJiZGUShhLHEuc2xpY2UoKSxwLGgsbCxiLnFiKTtmJiZFUShhLG4sYi5xYik7ZyYmRFEoYSxuLGIucWIpfX0sSVE9ZnVuY3Rpb24oKXt0aGlzLlI9MTt0aGlzLlo9e307dGhpcy5LPS0xO3RoaXMuSD0KbmV3IHdnfTtJUS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1uZXcgc1EoYSx0aGlzLlosYiksZT17ZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPXlQKGEpLGcsaDtmJiZ0aGlzLkguUihkKXx8dGhpcy5mbHVzaCgpO3ZhciBsPWYmJnRoaXMuSC5hZGQoZCk7aWYobCl7aWYodGhpcy5LPDApe3ZhciBuPUEscD1uLnNldFRpbWVvdXQscTtiayhaSyhhKSk/SlE/KEpRPSExLHE9S1EpOnE9TFE6cT01RTM7dGhpcy5LPXAuY2FsbChuLGZ1bmN0aW9uKCl7Yy5mbHVzaCgpfSxxKX19ZWxzZXt2YXIgcj16ZyhkLHRoaXMuUisrKSx0PXIucGFyYW1zLHU9ci5ib2R5O2c9dDtoPXU7RnkoMyxhLmV2ZW50TmFtZSk7Q1EoZC5iYXNlVXJsLHQsdSxkLk4se2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpkLmVuZHBvaW50LGV2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7CnZhciB2PVEoYSxILkouaGQpLHg9UShhLEguSi5yZykseT1RKGEsSC5KLk5oKSx6PVEoYSxILkouTWgpLEM9TyhhLk0sRi5ELnVpKSE9PSExLEQ9U3QoYS5NKSxJPXt4dDp2LEJ0OngsQXQ6eSx6dDp6LFpyOkVtKCksbXY6QyxsdjpELENzOkFtKCkscWI6ZSxNOmEuTSxQcjpEbSgpLEd0OkNwKGEpfTtIUShkLEkpfWZuLkgmJkF6KGEuTS5ldmVudElkKTtObChmdW5jdGlvbigpe2lmKGwpe3ZhciBHPXpnKGQpLE49Ry5ib2R5O2c9Ry5wYXJhbXM7aD1OfXJldHVybnt0YXJnZXRJZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDpkLmJhc2VVcmwrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6Mixwb3N0Qm9keTpoLGVuZHBvaW50OmQuZW5kcG9pbnR9LHFiOmUsaXNCYXRjaGVkOiExfX0pfTtJUS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe1lLKGEpJiYheFAoKT90aGlzLmZhKGEpOnRoaXMuTihhKX07SVEucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5ILmV2ZW50cy5sZW5ndGgpe3ZhciBhPQpCZyh0aGlzLkgsdGhpcy5SKyspO0NRKHRoaXMuSC5iYXNlVXJsLGEucGFyYW1zLGEuYm9keSx0aGlzLkguSyx7ZGVzdGluYXRpb25JZDp0aGlzLkguZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6dGhpcy5ILmVuZHBvaW50LGV2ZW50SWQ6dGhpcy5ILloscHJpb3JpdHlJZDp0aGlzLkguZmF9KTt0aGlzLkg9bmV3IHdnO3RoaXMuSz49MCYmKEEuY2xlYXJUaW1lb3V0KHRoaXMuSyksdGhpcy5LPS0xKX19O0lRLnByb3RvdHlwZS5mYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9WUsoYSk7TSg1NjgpJiYhTSg1ODYpJiZSKGEsRi5ELkJjKT09PSJhIiYmKGM9Y3coYykpO2lmKEV3KGMpKXt2YXIgZD1zdyhjKTtkP2QudGhlbihmdW5jdGlvbihmKXtiLk4oYSxmKX0sZnVuY3Rpb24oKXtiLk4oYSl9KTp0aGlzLk4oYSl9ZWxzZXt2YXIgZT1EdyhjKTt0aGlzLk4oYSxlKX19O3ZhciBLUT1OZigyNCw1MDApLExRPU5mKDU2LDVFMyksSlE9ITA7dmFyIE1RPWZ1bmN0aW9uKGEpe3ZhciBiPVN0KGEuTSk7TyhhLk0sRi5ELldiKT09PSEwJiYoYj0hMSk7VihhLEguSi53ZCxiKX07CnZhciBOUT1mdW5jdGlvbihhLGIsYyl7Yz09PXZvaWQgMCYmKGM9e30pO2lmKGI9PW51bGwpcmV0dXJuIGM7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iilmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7TlEoYSsiLiIrZixiW2ZdLGMpfWVsc2UgY1thXT1iO3JldHVybiBjfSxPUT1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2JbZV09ISFYbyhlKX1yZXR1cm4gYn0sUVE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QUS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIVhvKGUpfSk7aWYoYy5sZW5ndGgpe3ZhciBkPU9RKGMpOyRvKGMsZnVuY3Rpb24oKXtmb3IodmFyIGU9T1EoYyksZj1bXSxnPW0oYyksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7IWRbbF0mJmVbbF0mJmYucHVzaChsKTtlW2xdJiYKKGRbbF09ITApfWlmKGYubGVuZ3RoKXtWKGIsSC5KLkdoLCEwKTt2YXIgbj1mLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gTG9bcF19KS5qb2luKCIuIik7biYmV0soYiwiZ2N1dCIsbik7TVEoYik7YShiKX19KX19LFJRPWZ1bmN0aW9uKGEpe1IoYSxGLkQuV2MpJiYhYmsoWksoYSkpJiZVKGEsRi5ELldjKX0sU1E9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJuYXZ0IixxZCgpKX0sVFE9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJscGMiLGlyKCkpfSxVUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPU8oYS5NLEYuRC5XYiksYztiPT09ITAmJihjPSIxIik7Yj09PSExJiYoYz0iMCIpO2MmJldLKGEsInJkcCIsYyl9fSxWUT1mdW5jdGlvbihhLGIpe2lmKGJrKFpLKGIpKSl7dmFyIGM9UShiLEguSi5tZyk7KGIuZXZlbnROYW1lPT09InBhZ2VfdmlldyJ8fGMpJiZRUShhLGIpfX0sV1E9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpJiZhLmV2ZW50TmFtZT09PUYuRC55ZiYmClEoYSxILkouR2gpKXt2YXIgYj1SKGEsRi5ELnhpKTtiJiYoV0soYSwiZ2N1dCIsYiksV0soYSwic3luIiwxKSl9fSxYUT1mdW5jdGlvbihhLGIsYyl7aWYoYT09PWIpcmV0dXJuIFdqKCkmJlNiKGMrIi8iLFhqKCkrIi8iKT8iNyI6IjEiO2lmKFRiKGEsIi4iK2IpKXJldHVybiIyIjtpZihUYihiLCIuIithKSlyZXR1cm4iMyI7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9Yi5zcGxpdCgiLiIpLGY9ZnVuY3Rpb24oZyl7aWYoZC5sZW5ndGg8Z3x8ZS5sZW5ndGg8ZylyZXR1cm4hMTtmb3IodmFyIGg9MTtoPD1nO2grKylpZihkW2QubGVuZ3RoLWhdIT09ZVtlLmxlbmd0aC1oXSlyZXR1cm4hMTtyZXR1cm4hMH07cmV0dXJuIGYoMyk/IjYiOmYoMik/IjUiOiI0In0sWVE9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1layhhLk0pO2lmKGIpe3ZhciBjPVlqKGIsIi8iKSxkPVJqKGMpLGU9TmooZCwiaG9zdCIpLGY9TmooQS5sb2NhdGlvbiwiaG9zdCIpO2lmKGUmJmYpe3ZhciBnPU5qKGQsCiJwYXRoIik7YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtzc3RkOlhRKGUsZixnKX0pfX19fSxaUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJlYoYSxILkouSmEsITEpfSwkUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJihRKGEsSC5KLkphKSYmV0soYSwic3AiLDEpLFEoYSxILkouSXEpJiZXSyhhLCJzeW4iLDEpLFEoYSxILkouUGMpJiYoV0soYSwiZW1fZXZlbnQiLDEpLFdLKGEsInNwIiwxKSkpfSxhUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPSRrKDI1KTtiJiZXSyhhLCJ0ZnQiLE51bWJlcihiKSl9fSxiUj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGUpe3ZhciBmPU5RKEYuRC5BYyxlKTtHYihmLGZ1bmN0aW9uKGcsaCl7VShhLGcsaCl9KX1pZihiayhaSyhhKSkpe3ZhciBjPWRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpPzE6MDtXSyhhLCJ1ZGUiLGMpO3ZhciBkPU8oYS5NLEYuRC5BYyk7ZCE9PXZvaWQgMD8oWnYoZCksYihkKSxVKGEsRi5ELkJjLCJjIikpOgpiKFEoYSxILkouWWEpKTtWKGEsSC5KLllhKX19LGNSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9Vk0oKTtiJiZXSyhhLCJ1c19wcml2YWN5IixiKTt2YXIgYz1MdCgpO2MmJldLKGEsImdkcHIiLGMpO3ZhciBkPUt0KCk7ZCYmV0soYSwiZ2Rwcl9jb25zZW50IixkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmV0soYSwiZ3BwIixlKTt2YXIgZj1rRi5IO2YmJldLKGEsImdwcF9zaWQiLGYpfX0sZFI9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZFbCgpJiZPKGEuTSxGLkQubWIpJiZXSyhhLCJhZHIiLDEpfSxlUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPURtKCk7YiYmV0soYSwiZ2NzdWIiLGIpfX0sZlI9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXtPKGEuTSxGLkQuU2Msdm9pZCAwLDQpPT09ITEmJldLKGEsIm5ncyIsMSk7QW0oKSYmV0soYSwiZ2FfcmQiLDEpO1ZLKCl8fFdLKGEsIm5nc3QiLDEpO3ZhciBiPUVtKCk7YiYmV0soYSwiZXRsZCIsYil9fSxnUj0KZnVuY3Rpb24oYSl7fSxoUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJldLKGEsInJuZCIsUU0oKSl9LFBRPVtGLkQua2EsRi5ELm1hLEYuRC5YYV07CnZhciBpUj1mdW5jdGlvbihhLGIpe3ZhciBjO2E6e2lmKCFRKGEsSC5KLkZjKSl7dmFyIGQ9VFAoYSk7aWYoZCl7aWYoUlAoZCxhKSl7Yz1kO2JyZWFrIGF9UCgyNSk7YS5pc0Fib3J0ZWQ9ITB9fWM9dm9pZCAwfXZhciBlPWM7cmV0dXJue2NsaWVudElkOkVQKGEsYiksemI6ZX19LGpSPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9UW8oTyhhLk0sRi5ELktiKSk7aWYoTyhhLk0sRi5ELlpjKSYmTyhhLk0sRi5ELlljKSlmP0NQKGEsZiwxKTooUCgxMjcpLGEuaXNBYm9ydGVkPSEwKTtlbHNle3ZhciBnPWY/MTo4O1YoYSxILkouSGgsITEpO2Z8fChmPUZQKGEpLGc9Myk7Znx8KGY9YixnPTUpO2lmKCFmKXt2YXIgaD1YbyhGLkQucmEpLGw9elAoKTtmPSFsLmZyb21fY29va2llfHxoP2wudmlkOnZvaWQgMDtnPTZ9Zj9mPSIiK2Y6KGY9QXYoKSxnPTcsVihhLEguSi5uZywhMCksVihhLEguSi5IaCwhMCkpO0NQKGEsZixnKX1SKGEsRi5ELktiKTtpZighUShhLEguSi5GYykpe3ZhciBuPQpRKGEsSC5KLkViKSxwPU1hdGguZmxvb3Iobi8xRTMpLHE9dm9pZCAwO1EoYSxILkouSGgpfHwocT1TUChhKXx8Yyk7dmFyIHI9SWIoTyhhLk0sRi5ELnloLDMwKSk7cj1NYXRoLm1pbig0NzUscik7cj1NYXRoLm1heCg1LHIpO3ZhciB0PUliKE8oYS5NLEYuRC5QaSwxRTQpKSx1PUxQKHEpO1YoYSxILkoubmcsITEpO1YoYSxILkouVGUsITEpO1YoYSxILkoucGcsMCk7dSYmdS5qJiZWKGEsSC5KLnBnLE1hdGgubWF4KDAsdS5qLU1hdGgubWF4KDAscC11LnQpKSk7dmFyIHY9ITE7aWYoIXUpe1YoYSxILkoubmcsITApO3Y9ITA7dmFyIHg9e307dT0oeC5zPVN0cmluZyhwKSx4Lm89MSx4Lmc9ITEseC50PXAseC5sPSExLHguaD12b2lkIDAseCl9cD51LnQrcio2MCYmKHY9ITAsdS5zPVN0cmluZyhwKSx1Lm8rKyx1Lmc9ITEsdS5oPXZvaWQgMCk7aWYodilWKGEsSC5KLlRlLCEwKSxkLmxzKGEpO2Vsc2UgaWYoZC5YcigpPnR8fGEuZXZlbnROYW1lPT09Ri5ELnNjKXUuZz0hMDtRKGEsSC5KLmxnKT8KTyhhLk0sRi5ELmZiKT91Lmw9ITA6dS5sPSExOnUubD0hMTt2YXIgeT11Lmg7aWYoUShhLEguSi5sZyl8fGJrKFpLKGEpKSl7dmFyIHo9TyhhLk0sRi5ELm9oKSxDPXo/MTo4O3p8fCh6PXksQz00KTt6fHwoej16digpLEM9Nyk7dmFyIEQ9ei50b1N0cmluZygpLEk9QyxHPVEoYSxILkoudGwpO2lmKEc9PT12b2lkIDB8fEk8PUcpVShhLEYuRC5vaCxEKSxWKGEsSC5KLnRsLEkpfWU/KGEuY29weVRvSGl0RGF0YShGLkQueGMsdS5zKSxhLmNvcHlUb0hpdERhdGEoRi5ELkFoLHUubyksYS5jb3B5VG9IaXREYXRhKEYuRC56aCx1Lmc/MTowKSk6KFUoYSxGLkQueGMsdS5zKSxVKGEsRi5ELkFoLHUubyksVShhLEYuRC56aCx1Lmc/MTowKSk7VihhLEguSi5ybSx1Lmw/MTowKTtXaigpJiZWKGEsSC5KLm9nLHUuZHx8Y2MoKSl9fTsKdmFyIGtSPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5kZXhPZigiPyIpLGM9Yj09PS0xP2E6YS5zdWJzdHJpbmcoMCxiKSxkPUtqKGMpO2QmJihjPWQpO3JldHVybiBiPT09LTE/YzoiIitjK2Euc3Vic3RyaW5nKGIpfSxsUj1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELlljKXx8IU8oYS5NLEYuRC5aYykpe3ZhciBiPWEuY29weVRvSGl0RGF0YSxjPUYuRC56YSxkPSIiLGU9Qi5sb2NhdGlvbjtpZihlKXt2YXIgZj1lLnBhdGhuYW1lfHwiIjtmLmNoYXJBdCgwKSE9PSIvIiYmKGY9Ii8iK2YpO3ZhciBnPWUuc2VhcmNofHwiIjtpZihnWzBdPT09Ij8iKWZvcih2YXIgaD1nLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLGw9MDtsPGgubGVuZ3RoOysrbCl7dmFyIG49aFtsXS5zcGxpdCgiPSIpO24mJm4ubGVuZ3RoPT09MiYmblswXT09PSJ3YnJhaWQiJiYoZz1nLnJlcGxhY2UoLyhbPyZdKXdicmFpZD1bXiZdKy8sIiQxd2JyYWlkPSIrJGIoblsxXSkpKX1kPWUucHJvdG9jb2wrIi8vIitlLmhvc3RuYW1lKwpmK2d9Yi5jYWxsKGEsYyxkLGtSKTt2YXIgcD1hLmNvcHlUb0hpdERhdGEscT1GLkQuVWEscj11QSgiZ3RtLmd0YWdSZWZlcnJlci4iK2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQpLHQ9Qi5yZWZlcnJlcjtwLmNhbGwoYSxxLChyPyIiK3I6dCl8fHZvaWQgMCxrUik7YS5jb3B5VG9IaXREYXRhKEYuRC5NYixCLnRpdGxlKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiLChIYy5sYW5ndWFnZXx8IiIpLnRvTG93ZXJDYXNlKCkpO3ZhciB1PXFJKCk7YS5jb3B5VG9IaXREYXRhKEYuRC5iZCx1LndpZHRoKyJ4Iit1LmhlaWdodCk7YS5jb3B5VG9IaXREYXRhKEYuRC5ZZix2b2lkIDAsa1IpO1RNKCkmJmEuY29weVRvSGl0RGF0YShGLkQuUGQsIjEiKX19O3ZhciBuUj1mdW5jdGlvbihhKXt2YXIgYj14QyhhLk0pLGM9ZnVuY3Rpb24oZCxlKXttUltkXSYmVShhLGQsZSl9O0NkKGJbRi5ELktmXSk/R2IoYltGLkQuS2ZdLGZ1bmN0aW9uKGQsZSl7YygoRi5ELktmKyJfIitkKS50b0xvd2VyQ2FzZSgpLGUpfSk6R2IoYixjKX0sb1I9e30sbVI9KG9SW0YuRC5HZl09MSxvUltGLkQuSGZdPTEsb1JbRi5ELklmXT0xLG9SW0YuRC5KZl09MSxvUltGLkQuTGZdPTEsb1JbRi5ELk1mXT0xLG9SKTt2YXIgcFI9ZnVuY3Rpb24oYSl7aWYoIWJrKFpLKGEpKSYmUShhLEguSi5tZykmJlhvKEYuRC5rYSkmJmRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkpe3ZhciBiPUxLKGEpLGM9SHIoYi5wcmVmaXgpLGQ9UnMoYyk7VShhLEYuRC5CZSxkLkVnKTtVKGEsRi5ELkRlLGQuV2gpO1UoYSxGLkQuQ2UsZC5VaCl9fTt2YXIgcVI9ZnVuY3Rpb24oYSl7dmFyIGI9TyhhLk0sRi5ELlpjKTtiJiZJUChKLlUueG4pO1EoYSxILkouUGMpJiZJUChKLlUuTmspO3ZhciBjPXlrKHprKCkpOyhifHxNayhjKXx8YyYmYy5wYXJlbnQmJmMuY29udGV4dCYmYy5jb250ZXh0LnNvdXJjZT09PTUpJiZJUChKLlUuZm4pO1EoYSxILkouY2opJiZJUChKLlUuSW0pO1EoYSxILkouYmopJiZJUChKLlUuSG0pfTt2YXIgclI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5WaSl8fG5ldyBlcjtRKGEsSC5KLmJqKSYmUShhLEguSi5jaikmJmZyKGIsMik7VihhLEguSi5WaSxiKX07ZnVuY3Rpb24gc1IoYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9TyhhLk0sRi5ELldkKTtiJiYoS0MoYixmdW5jdGlvbigpe30pLFUoYSxGLkQuV2QsYikpfTt2YXIgdVI9ZnVuY3Rpb24oYSl7aWYodFIuTXIucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIikuaW5kZXhPZihhLmV2ZW50TmFtZSk+PTApYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj1YSyhhKTtiJiZiLmJsYWNrbGlzdGVkJiYoYS5pc0Fib3J0ZWQ9ITApfX0sdFI9e01yOkxmKDMxKX07ZnVuY3Rpb24gdlIoYSl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuISFjJiZjLmNvbnZlcnNpb259O1YoYSxILkoubWcsYihYSyhhKSkpO1EoYSxILkoubmcpJiZWKGEsSC5KLlltLGIoWEsoYSwiZmlyc3RfdmlzaXQiKSkpO1EoYSxILkouVGUpJiZWKGEsSC5KLmJuLGIoWEsoYSwic2Vzc2lvbl9zdGFydCIpKSl9O3ZhciB3Uj1mdW5jdGlvbihhKXtGby5oYXNPd25Qcm9wZXJ0eShhLmV2ZW50TmFtZSkmJihWKGEsSC5KLldtLCEwKSxhLmNvcHlUb0hpdERhdGEoRi5ELkhhKSxhLmNvcHlUb0hpdERhdGEoRi5ELmViKSl9O3ZhciB4Uj1mdW5jdGlvbihhKXtRKGEsSC5KLmJlKT9WKGEsSC5KLmxnLCExKTpkSShhLCJjY2RfYWRkX2VjX3N0aXRjaGluZyIsITEpJiZWKGEsSC5KLmxnLCEwKX07dmFyIHlSPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkoucGcpO2I9Ynx8MDt2YXIgYz0hIVEoYSxILkouc2EpLGQ9Yj09PTB8fGM7VihhLEguSi5laixkKTtkJiZWKGEsSC5KLnBnLDYwKX07dmFyIEFSPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPVN0cmluZyh6Ui5jb29raWUpLnNwbGl0KCI7IiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLnNwbGl0KCI9IiksZj1lWzBdLnRyaW0oKTtpZihmJiZhKGYpKXt2YXIgZz1lLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7ZyYmKGc9ZGVjb2RlVVJJQ29tcG9uZW50KGcpKTt2YXIgaD12b2lkIDAsbD12b2lkIDA7KChoPWIpW2w9Zl18fChoW2xdPVtdKSkucHVzaChnKX19cmV0dXJuIGJ9O3ZhciBCUj13aW5kb3cselI9ZG9jdW1lbnQsQ1I9ZnVuY3Rpb24oYSl7dmFyIGI9QlIuX2dhVXNlclByZWZzO2lmKGImJmIuaW9vJiZiLmlvbygpfHx6Ui5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXRhLWdvb2dsZS1hbmFseXRpY3Mtb3B0LW91dCIpfHxhJiZCUlsiZ2EtZGlzYWJsZS0iK2FdPT09ITApcmV0dXJuITA7dHJ5e3ZhciBjPUJSLmV4dGVybmFsO2lmKGMmJmMuX2dhVXNlclByZWZzJiZjLl9nYVVzZXJQcmVmcz09Im9vIilyZXR1cm4hMH1jYXRjaChmKXt9Zm9yKHZhciBkPUFSKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09IkFNUF9UT0tFTiJ9KS5BTVBfVE9LRU58fFtdLGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT0iJE9QVF9PVVQiKXJldHVybiEwO3JldHVybiB6Ui5nZXRFbGVtZW50QnlJZCgiX19nYU9wdE91dEV4dGVuc2lvbiIpPyEwOiExfTt2YXIgRFI9ZnVuY3Rpb24oYSl7aWYoQ1IoYS50YXJnZXQuZGVzdGluYXRpb25JZCkpUCgyOCksYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj14aygpO2lmKGImJkFycmF5LmlzQXJyYXkoYi5kZXN0aW5hdGlvbnMpKWZvcih2YXIgYz0wO2M8Yi5kZXN0aW5hdGlvbnMubGVuZ3RoO2MrKylpZihDUihiLmRlc3RpbmF0aW9uc1tjXSkpe1AoMTI1KTthLmlzQWJvcnRlZD0hMDticmVha319fTt2YXIgRVI9ZnVuY3Rpb24oYSl7dmFyIGI9Qi5sb2NhdGlvbi5wcm90b2NvbDtiIT09Imh0dHA6IiYmYiE9PSJodHRwczoiJiYoUCgyOSksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgRlI9ZnVuY3Rpb24oYSl7SGMmJkhjLmxvYWRQdXJwb3NlPT09InByZXZpZXciJiYoUCgzMCksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgR1I9ZnVuY3Rpb24oYSxiKXtiLlRqJiYoVihhLEguSi5zYSwhMCksYi5Uaj0hMSxXaigpJiZWKGEsSC5KLm9nLGNjKCkpKX07dmFyIEhSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxkKXtCb1tjXXx8ZD09PXZvaWQgMHx8VShhLGMsZCl9TSg1NTApJiZHYihhLk0uV2EsYik7R2IoYS5NLmhiLGIpO0diKGEuTS5FYSxiKX07dmFyIElSPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lPT09Ri5ELndhJiYoTyhhLk0sRi5ELlRkLCEwKT8oYS5NLkVhW0YuRC5PYV0mJihNKDU1MCkmJihhLk0uV2FbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSksYS5NLmhiW0YuRC5PYV09YS5NLkVhW0YuRC5PYV0sYS5NLkVhW0YuRC5PYV09dm9pZCAwLFUoYSxGLkQuT2EpKSxhLmV2ZW50TmFtZT1GLkQuc2MpOmEuaXNBYm9ydGVkPSEwKX07CnZhciBKUj1mdW5jdGlvbihhKXtpZihNKDEzMikpe3ZhciBiPVpLKGEpO2lmKGJrKGIpKWlmKGNrKGIpKWNrKFpLKGEpKSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHsiM3BkIjoiMSJ9KTtlbHNlIGlmKCEoTmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKSkmJlhvKEYuRC5yYSkpe1YoYSxILkouZG4sITApO2JrKFpLKGEpKSYmV0soYSwic3dfZXhwIiwxKTthOntpZighTSgxMzIpfHwhYmsoWksoYSkpfHxjayhaSyhhKSkpYnJlYWsgYTtiOnt2YXIgYz17b3Q6WWooZWsoYS5NKSwiL18vc2VydmljZV93b3JrZXIiKX0sZDtkPShjPT09dm9pZCAwP3t9OmMpLm90O3ZhciBlPWlMKGQpO2lmKGU9PT1udWxsfHwhYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKXx8akwoZS5vcmlnaW4pKWJyZWFrIGI7CmlmKCFJYygpKXtnTCgpLksodm9pZCAwLHZvaWQgMCw2KTticmVhayBifXZhciBmPW5ldyBrTChlKTtvbShqbS5iYS5PaCx7fSlbZS5vcmlnaW5dPWY7fX19fX07dmFyIExSPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuT2wpO08oYS5NLEYuRC54aCkmJihVKGEsRi5ELnhoLCEwKSxiayhaSyhhKSl8fEtSKGEpKX0sS1I9ZnVuY3Rpb24oYSl7dmFyIGI9Ri5ELmJkLGM7Y3x8KGM9ZnVuY3Rpb24oKXt9KTtSKGEsYikhPT12b2lkIDAmJlUoYSxiLGMoUihhLGIpKSl9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIE9SPWZ1bmN0aW9uKGEpe3ZhciBiPU0oMjY2KSxjPU0oMjY3KTtpZihifHxjKXt2YXIgZD1SKGEsRi5ELnphKTtpZihkJiZkLmluZGV4T2YoIj8iKT09PS0xKXt2YXIgZT1OUigpO2lmKGUubGVuZ3RoIT09MCYmKGImJklQKEouVS5HbSksYykpe0lQKEouVS5GbSk7dmFyIGY9ZS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIGcubmFtZSsiPSIrZy52YWx1ZX0pLmpvaW4oIiYiKTtVKGEsRi5ELnphLGQrIj8iK2YpfX19fTt2YXIgUFI9W0YuRC5yYSxGLkQua2FdLFFSPVtGLkQucmEsRi5ELmthLEYuRC5tYV07CmZ1bmN0aW9uIFJSKGEpe3ZhciBiLGM9TSg1MDYpJiYhZEkoYSwiY2NkX2dhX2Fkc19pZHNfb3B0X291dCIsITEpLGQ9ISFkSShhLCJnb29nbGVfbmciLCExKSxlPVhvKGM/ZD9RUjpmcDpQUiksZjtmPWRJKGEsRi5ELlVmLE8oYS5NLEYuRC5VZikpfHwhIWRJKGEsImdvb2dsZV9uZyIsITEpO2I9e2hmOmMsRXM6ZCxHbzplLGZmOmYsTGc6ISFkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpLGJpOkFtKCksR2o6IVZLKCksRnM6YmsoWksoYSkpLERzOiEhUShhLEguSi5iZSksR3M6ISFRKGEsSC5KLlRlKSx1czohIU8oYS5NLEYuRC5ObCksS3M6ISFRKGEsSC5KLmVqKSx4ZzpPKGEuTSxGLkQuU2MpLG5yOk8oYS5NLEYuRC5TYyx2b2lkIDAsNCksSHM6ISFRKGEsSC5KLkZjKX07VihhLEguSi5jaixiLmZmKTtWKGEsSC5KLmJqLFNSKGIpKTtiLmhmJiYhYi5mZiYmYi5MZyYmU1IoYikmJlUoYSwiXyZpYnQiLCIxIik7U1IoYikmJmIuR28mJihiLmhmP2IueGchPT0hMXx8Yi5MZzoxKSYmVihhLApILkoucm4sITApO2IuRXMmJiFiLmJpJiZVKGEsRi5ELkxlLDEpOyhiLmhmP2IueGc6Yi5ucik9PT0hMSYmVShhLCJfJm5ncyIsIjEiKTtWKGEsSC5KLmhkLFRSKGIpJiYoYi5Hc3x8Yi51cykpO1YoYSxILkoucmcsVFIoYikmJmIuS3MmJiFiLmJpKX1mdW5jdGlvbiBTUihhKXtyZXR1cm4gYS5oZj8oYS5MZ3x8YS5mZikmJiFhLmJpJiYhYS5HajphLmZmJiZhLnhnIT09ITEmJiFhLkdqJiYhYS5iaX1mdW5jdGlvbiBUUihhKXtpZihhLkhzKXJldHVybiExO2lmKGEuaGYpe2lmKCFhLmZmJiYhYS5MZylyZXR1cm4hMX1lbHNlIGlmKCFhLmZmKXJldHVybiExO3JldHVybiBhLkZzfHxhLkRzfHxhLkdqfHwoYS5oZj9hLnhnPT09ITEmJiFhLkxnOmEueGc9PT0hMSl8fCFhLkdvPyExOiEwfTt2YXIgVVI9ZnVuY3Rpb24oYSl7c0woKSYmVShhLEYuRC5GZSwiMSIpfTt2YXIgVlI9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpTdHJpbmcoTyhhLk0sRi5ELm5iLCIiKSkscGF0aDpTdHJpbmcoTyhhLk0sRi5ELnZjLCIvIikpLGZsYWdzOlN0cmluZyhPKGEuTSxGLkQuVGIsIiIpKSxkb21haW46U3RyaW5nKE8oYS5NLEYuRC5MYiwiYXV0byIpKSxwZDpOdW1iZXIoTyhhLk0sRi5ELkNiLDYzMDcyRTMpKX07VihhLEguSi5HYSxiKX07dmFyIFdSPWZ1bmN0aW9uKGEpe2lmKE0oNDM1KXx8TSg1NTMpKXt2YXIgYj1EbSgpO2ImJlYoYSxILkouQXEsYil9fTt2YXIgWVI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5SaSk7Zm9yKHZhciBiPU8oYS5NLEYuRC5SbCl8fFtdLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtpZihkLnJ1bGVfcmVzdWx0KXthLmNvcHlUb0hpdERhdGEoRi5ELlJpLGQudHJhZmZpY190eXBlKTtJUChKLlUuRW4pO2JyZWFrfX19O3ZhciBaUj1mdW5jdGlvbihhKXtpZihkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpJiZhLmV2ZW50TmFtZT09PUYuRC53YSl7dmFyIGI9TyhhLk0sRi5ELnVjKSE9PSExO2lmKGIpe3ZhciBjPUxLKGEpO2MucGQmJihjLnBkPU1hdGgubWluKGMucGQsNzc3NkUzKSk7UEsoe1RuOmIsbW86T28oTyhhLk0sRi5ELkRiKSksUW86ISFPKGEuTSxGLkQuemMpLFVuOmN9KX19fTt2YXIgJFI9ZnVuY3Rpb24oYSl7VihhLEguSi5NaCwhMSk7VihhLEguSi5OaCwhMSk7aWYoIURtKCkmJldqKCkmJiFiayhaSyhhKSkmJiFRKGEsSC5KLmJlKSYmUShhLEguSi5laikpe3ZhciBiPVEoYSxILkoucmcpO1EoYSxILkoub2cpJiYoYj9WKGEsSC5KLk5oLCEwKTpWKGEsSC5KLk1oLCEwKSl9fTt2YXIgYVM9ZnVuY3Rpb24oYSl7TyhhLk0sRi5ELnpjKSYmKFhvKEYuRC5yYSl8fE8oYS5NLEYuRC5LYil8fFUoYSxGLkQuWm0sITApKTt2YXIgYjt2YXIgYztjPWM9PT12b2lkIDA/MzpjO3ZhciBkPUEubG9jYXRpb24uaHJlZjtpZihkKXt2YXIgZT1SaihkKS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGY9SWooZSwiX2dsIiwhMSwhMCl8fCIiO2I9Zj9WcShmLGMpIT09dm9pZCAwOiExfWVsc2UgYj0hMTtiJiZiayhaSyhhKSkmJldLKGEsImdsdiIsMSk7aWYoYS5ldmVudE5hbWUhPT1GLkQud2EpcmV0dXJue307TyhhLk0sRi5ELnpjKSYmQXMoWyJhdyIsImRjIl0pO0NzKFsiYXciLCJkYyJdKTt2YXIgZz0kUChhKSxoPVpQKGEpO3JldHVybiBPYmplY3Qua2V5cyhnKS5sZW5ndGg/ZzpofTt2YXIgYlM9ZnVuY3Rpb24oYSl7dmFyIGI9ITA7Yj1iPT09dm9pZCAwPyExOmI7aWYoTSg0MjUpJiYhKHBsKCl8fGImJlEoYSxILkouZGopfHxhLmV2ZW50TmFtZSE9PUYuRC53YXx8UShhLEguSi5GYykpKXt2YXIgYz17fSxkPXt9LGU9e2V2ZW50TWV0YWRhdGE6bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLk0uZXZlbnRNZXRhZGF0YSwoY1tILkouRmNdPSEwLGMpLGI/e306KGRbSC5KLkRjXT1YLlYuS2EsZCkpLG5vR3RtRXZlbnQ6ITB9LGY9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCwic3RydWN0dXJlZF9kYXRhIixhLk0uRWEpO21EKGYsYS5NLmV2ZW50SWQsZSl9fTsKdmFyIGRTPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxjUy50ZXN0KGEpfHxEby5oYXNPd25Qcm9wZXJ0eShhKX0sY1M9L14oX3xnYV98Z29vZ2xlX3xndGFnXC58ZmlyZWJhc2VfKS4qJC8sZVM9ZnVuY3Rpb24oYSl7dGhpcy55YT1hO3RoaXMuSD10aGlzLnpiPXRoaXMuY2xpZW50SWQ9dm9pZCAwO3RoaXMuamE9dGhpcy5SPSExO3RoaXMuTGE9MDt0aGlzLk49ITE7dGhpcy5aPXtUajohMX07dGhpcy5mYT1uZXcgSVE7dGhpcy5LPW5ldyBIUH07az1lUy5wcm90b3R5cGU7ay5acz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWJDKHRoaXMueWEpO2lmKGUpaWYoYy5ldmVudE1ldGFkYXRhW0guSi5hZV0mJmEuY2hhckF0KDApPT09Il8iKWMub25GYWlsdXJlKCk7ZWxzZXthIT09Ri5ELndhJiZhIT09Ri5ELkpiJiZkUyhhKSYmUCg1OCk7dmFyIGY9bmV3IGFJKGUsYSxjKTtWKGYsSC5KLkViLGIpO3ZhciBnPVtGLkQucmFdLGg9YmsoWksoZikpO1YoZixILkouZGosaCk7aWYoZEkoZixGLkQuVWYsCk8oZi5NLEYuRC5VZikpfHxoKWcucHVzaChGLkQua2EpLGcucHVzaChGLkQubWEpO0ZNLmZhKGZ1bmN0aW9uKCl7YnAoZnVuY3Rpb24oKXtkLmJ0KGYpfSxnKX0pfWVsc2UgYy5vbkZhaWx1cmUoKX07ay5idD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RyeXtITShhKTtpZihhLmlzQWJvcnRlZCl7dGIoKTtyZXR1cm59Sk0oYSk7RFIoYSk7dVIoYSk7RVIoYSk7RlIoYSk7SU0oYSk7dmFyIGM9e307ZVEoYSxjKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuSD1hO3ZhciBkPWMudXI7Yy5Icj09PTAmJklQKEouVS5ubCk7ZD09PTAmJklQKEouVS5Mayk7Wk0oYSk7VihhLEguSi50Zyxjby5pYS54ZCk7VlIoYSk7SFIoYSk7dGhpcy5McShhKTt0aGlzLksuS3QoYSk7VShhLEYuRC56aSxhbCg4LE5GKSk7eFIoYSk7cE4oYSk7WlIoYSk7TVEoYSk7dGhpcy5BbyhhUyhhKSk7YlMoYSk7dmFyIGU9YS5ldmVudE5hbWU9PT1GLkQud2E7ZSYmKHRoaXMuTj0KITApO0lSKGEpO2UmJiFhLmlzQWJvcnRlZCYmdGhpcy5MYSsrPjAmJklQKEouVS5obik7VUwoYSk7alIoYSx0aGlzLmNsaWVudElkLHRoaXMuemIsdGhpcy5LLCF0aGlzLmphKTtuUihhKTtsUihhKTtPUihhKTtYTChhKTtHUihhLHRoaXMuWik7eVIoYSk7dlIoYSk7d1IoYSk7WVIoYSk7YVEoYSk7Z1EoYSk7d00oYSk7aFIoYSk7WVEoYSk7Z1IoYSk7ZlIoYSk7ZVIoYSk7ZFIoYSk7Y1IoYSk7YVIoYSk7JFEoYSk7V1EoYSk7VVEoYSk7VFEoYSk7U1EoYSk7YlEoYSk7Y1EoYSk7TyhhLk0sRi5ELnhoKSYmIWJrKFpLKGEpKXx8R00oYSk7VVIoYSk7V1IoYSk7aU4oYSk7VkwoYSk7U0woYSk7bE4oYSk7aE4oYSk7WE0oYSwhMSk7c1IoYSk7UlIoYSk7JFIoYSk7Tk0oYSk7clIoYSk7cFIoYSk7YlIoYSk7WlEoYSk7UlEoYSk7cVIoYSk7IXRoaXMuTiYmUShhLEguSi5QYykmJklQKEouVS5zbCk7SlAoYSk7aWYoTSg1NzUpKXtpZihhLmlzQWJvcnRlZCl7aWYoIVEoYSxILkouU28pKWEuTS5vbkZhaWx1cmUoKTsKdGIoKTtyZXR1cm59aWYoUShhLEguSi5KYSkpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn19ZWxzZSBpZihRKGEsSC5KLkphKXx8YS5pc0Fib3J0ZWQpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn10aGlzLkFvKGlSKGEsdGhpcy5jbGllbnRJZCkpO3RoaXMuamE9ITA7dGhpcy5IdChhKTtKUihhKTtWUShmdW5jdGlvbihmKXtiLk1uKGYpfSxhKTt0aGlzLksucWsoKTtMUihhKTtnTihhKTtXTChhKTtZTShhKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuTW4oYSk7YS5NLm9uU3VjY2VzcygpfWNhdGNoKGYpe2EuTS5vbkZhaWx1cmUoKX10YigpfTtrLk1uPWZ1bmN0aW9uKGEpe3RoaXMuZmEuYWRkKGEpfTtrLkFvPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2xpZW50SWQsYz1hLnpiO2ImJmMmJih0aGlzLmNsaWVudElkPWIsdGhpcy56Yj1jKX07ay5mbHVzaD1mdW5jdGlvbigpe3RoaXMuZmEuZmx1c2goKX07ay5IdD1mdW5jdGlvbihhKXt2YXIgYj0KdGhpcztpZighdGhpcy5SKXt2YXIgYz1YbyhGLkQubWEpLGQ9WG8oRi5ELnJhKTskbyhbRi5ELm1hLEYuRC5yYSxGLkQua2FdLGZ1bmN0aW9uKGUpe3ZhciBmO2Y9KGU9PT12b2lkIDA/e306ZSkuY29uc2VudEV2ZW50SWQ7dmFyIGc9WG8oRi5ELm1hKSxoPVhvKEYuRC5yYSksbD0hMSxuPXt9LHA9e307aWYoZCE9PWgmJmIuSCYmYi56YiYmYi5jbGllbnRJZCl7dmFyIHE9Yi5jbGllbnRJZCxyO3ZhciB0PUxQKGIuemIpO3I9dD90Lmg6dm9pZCAwO2lmKGgpe3ZhciB1PUZQKGIuSCk7aWYodSl7Yi5jbGllbnRJZD11O3ZhciB2PVNQKGIuSCk7diYmKGIuemI9UFAodixiLnpiLGIuSCkpfWVsc2UgRFAoYi5jbGllbnRJZCxiLkgpLEFQKGIuY2xpZW50SWQsITApO1JQKGIuemIsYi5IKTtsPSEwO25bRi5ELk5sXT1xO3ImJihuW0YuRC5icV09cil9ZWxzZSBiLnpiPXZvaWQgMCxiLmNsaWVudElkPXZvaWQgMCxBLmdhR2xvYmFsPXt9fWcmJiFjJiYobD0hMCxwW0guSi5HaF09ITAsbltGLkQueGldPQpMb1tGLkQubWFdKTtpZihsKXt2YXIgeD1zQyhiLnlhLEYuRC55ZixuKTttRCh4LGYhPW51bGw/ZjphLk0uZXZlbnRJZCx7ZXZlbnRNZXRhZGF0YTpwfSl9ZD1oO2M9ZztiLlouVGo9ITB9KTt0aGlzLlI9ITB9fTtrLkxxPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lIT09Ri5ELkpiJiZ0aGlzLksuS3EoYSl9O3ZhciBnUz1mdW5jdGlvbihhKXtpZighZlMoYSkpe3ZhciBiPSExLGM9ZnVuY3Rpb24oKXshYiYmZlMoYSkmJihiPSEwLGFkKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpLGFkKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyksUCg1NSkpfTskYyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixjKTskYyhCLCJwcmVyZW5kZXJpbmdjaGFuZ2UiLGMpO1AoNTQpfX0sZlM9ZnVuY3Rpb24oYSl7aWYoInByZXJlbmRlcmluZyJpbiBCP0IucHJlcmVuZGVyaW5nOkIudmlzaWJpbGl0eVN0YXRlPT09InByZXJlbmRlciIpcmV0dXJuITE7YSgpO3JldHVybiEwfTtmdW5jdGlvbiBoUyhhKXtnUyhmdW5jdGlvbigpe3ZhciBiPWJDKGEpO2lmKGIpe3ZhciBjPWlTKGIpLGQ9Y28uaWEueGQsZT1ZQygpLGY9YkMoYSwhMCk7ZiYmZS5ILnJlZ2lzdGVyKGYsYyxkLHZvaWQgMCl9fSk7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTt2YXIgYz1uZXcgZVMoYS5pZCksZD1hLnByZWZpeD09PSJNQyI7Yj1mdW5jdGlvbihlLGYsZyxoKXtkJiYoaC5ldmVudE1ldGFkYXRhW0guSi5iZV09ITApO2MuWnMoZixnLGgpfTtqUyhhLGMpO3JldHVybiBifQpmdW5jdGlvbiBqUyhhLGIpe3ZhciBjPWIuSztjLmh0KGZ1bmN0aW9uKCl7WmsoOSwhMCk7WUMoKS5mbHVzaCgpO2lmKGMuWWgoKT49MUUzJiZrZCgpKXt2YXIgZD17fSxlPXtldmVudElkOnJqKCksZXZlbnRNZXRhZGF0YTooZFtILkouS2tdPSEwLGQpLGRlZmVycmFibGU6ITB9O1pDKEYuRC55Zix7fSxhLmlkLGUpfWIuZmx1c2goKTtjLkNvKGZ1bmN0aW9uKCl7WmsoOSwhMSk7Yy5DbygpfSl9KTt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9ZnVuY3Rpb24gb1MoYSxiLGMpe3ZhciBkPXRoaXM7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O2E9e05PX0lGUkFNSU5HOjAsU0FNRV9ET01BSU5fSUZSQU1JTkc6MSxDUk9TU19ET01BSU5fSUZSQU1JTkc6Mn07cmV0dXJuIGF9O2Z1bmN0aW9uIHRTKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpO25MKGIpO310Uy5QPSJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciI7ZnVuY3Rpb24gdVMoYSxiKXt9dVMucHVibGljTmFtZT0iaW5qZWN0SGlkZGVuSWZyYW1lIjtmdW5jdGlvbiB2UyhhLGIsYyxkLGUpe312Uy5QPSJpbnRlcm5hbC5pbmplY3RIdG1sIjt2YXIgQVM9e2RsOjEsaWQ6MX07CmZ1bmN0aW9uIEJTKGEsYixjLGQpe31CUy5wdWJsaWNOYW1lPSJpbmplY3RTY3JpcHQiO2Z1bmN0aW9uIENTKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI1Il07cmV0dXJuIGJ9Q1MuUD0iaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiO2Z1bmN0aW9uIERTKGEpe3ZhciBiPSEwO2lmKCFsaChhKSYmIWpoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJBcnJheSJdLGFyZ3VtZW50cyk7dmFyIGM9VGQoYSk7aWYoemIoYykpTCh0aGlzLCJhY2Nlc3NfY29uc2VudCIsYywicmVhZCIpO2Vsc2UgZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpTCh0aGlzLCJhY2Nlc3NfY29uc2VudCIsZS52YWx1ZSwicmVhZCIpO2I9WG8oYyk7cmV0dXJuIGJ9RFMucHVibGljTmFtZT0iaXNDb25zZW50R3JhbnRlZCI7ZnVuY3Rpb24gRVMoYSl7dmFyIGI9ITE7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCk7Yj0hIU8oYy5NLEYuRC5FbCk7cmV0dXJuIGJ9RVMuUD0iaW50ZXJuYWwuaXNEZWJ1Z01vZGUiO2Z1bmN0aW9uIEZTKGEpe3ZhciBiPSExO3JldHVybiBifUZTLlA9ImludGVybmFsLmlzRGVzdGluYXRpb25Jbml0aWFsaXplZCI7ZnVuY3Rpb24gR1MoKXtyZXR1cm4gQm0oKX1HUy5QPSJpbnRlcm5hbC5pc0RtYVJlZ2lvbiI7ZnVuY3Rpb24gSFMoKXtyZXR1cm4gVUIoKX1IUy5QPSJpbnRlcm5hbC5pc0RvbVJlYWR5IjtmdW5jdGlvbiBJUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1JUy5QPSJpbnRlcm5hbC5pc0VudGl0eUluZnJhc3RydWN0dXJlIjtmdW5jdGlvbiBKUyhhKXt2YXIgYj0hMTtpZighcWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciJdLFthXSk7Yj1NKGEpO3JldHVybiBifUpTLlA9ImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiO2Z1bmN0aW9uIEtTKCl7dmFyIGE9ITE7YT1JZig0Nyk7cmV0dXJuIGF9S1MuUD0iaW50ZXJuYWwuaXNGcGZlIjtmdW5jdGlvbiBMUygpe3ZhciBhPSExO2E9T2MoKXx8UWMoKTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTthPUEuX2d0bXBjbT09PSEwPyEwOnJMKCk7cmV0dXJuIGF9T1MuUD0iaW50ZXJuYWwuaXNTYWZhcmlQY21FbGlnaWJsZUJyb3dzZXIiO2Z1bmN0aW9uIFBTKCl7dmFyIGE9UWgoZnVuY3Rpb24oYil7WEYodGhpcykubG9nKCJlcnJvciIsYil9KTthLnB1YmxpY05hbWU9IkpTT04iO3JldHVybiBhfTtmdW5jdGlvbiBRUyhhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIpfVFTLlA9ImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIjtmdW5jdGlvbiBSUygpe3JldHVybiExfQp2YXIgU1M9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe3JldHVybiExfSxyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe319O2Z1bmN0aW9uIFRTKCl7fVRTLnB1YmxpY05hbWU9ImxvZ1RvQ29uc29sZSI7ZnVuY3Rpb24gVVMoYSxiKXtpZighbGgoYSl8fCFlaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1hLGQ9VGQoYix0aGlzLlQpLGU9WUMoKSxmPWJDKGMsITApO2YmJlRDKGUuSCxmLGQpO31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybjthJiZTYihhLCIvLyIpJiYoYT1CLmxvY2F0aW9uLnByb3RvY29sK2EpO2lmKHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24iKXt2YXIgYzthOnt2YXIgZDt0cnl7ZD1uZXcgVVJMKGEpfWNhdGNoKHgpe2M9dm9pZCAwO2JyZWFrIGF9Zm9yKHZhciBlPXt9LGY9QXJyYXkuZnJvbShkLnNlYXJjaFBhcmFtcyksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddWzBdLGw9ZltnXVsxXTtlLmhhc093blByb3BlcnR5KGgpP3R5cGVvZiBlW2hdPT09InN0cmluZyI/ZVtoXT1bZVtoXSxsXTplW2hdLnB1c2gobCk6ZVtoXT1sfWM9e2hyZWY6ZC5ocmVmLG9yaWdpbjpkLm9yaWdpbixwcm90b2NvbDpkLnByb3RvY29sLHVzZXJuYW1lOmQudXNlcm5hbWUscGFzc3dvcmQ6ZC5wYXNzd29yZCxob3N0OmQuaG9zdCxob3N0bmFtZTpkLmhvc3RuYW1lLApwb3J0OmQucG9ydCxwYXRobmFtZTpkLnBhdGhuYW1lLHNlYXJjaDpkLnNlYXJjaCxzZWFyY2hQYXJhbXM6ZSxoYXNoOmQuaGFzaH19cmV0dXJuIFVkKGMpfXZhciBuO3RyeXtuPVJqKGEpfWNhdGNoKHgpe3JldHVybn1pZighbi5wcm90b2NvbHx8IW4uaG9zdClyZXR1cm47dmFyIHA9e307aWYobi5zZWFyY2gpZm9yKHZhciBxPW4uc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLHI9MDtyPHEubGVuZ3RoO3IrKyl7dmFyIHQ9cVtyXS5zcGxpdCgiPSIpLHU9dFswXSx2PUtqKHQuc3BsaWNlKDEpLmpvaW4oIj0iKSl8fCIiO3Y9di5yZXBsYWNlKC9cKy9nLCIgIik7cC5oYXNPd25Qcm9wZXJ0eSh1KT90eXBlb2YgcFt1XT09PSJzdHJpbmciP3BbdV09W3BbdV0sdl06cFt1XS5wdXNoKHYpOnBbdV09dn1uLnNlYXJjaFBhcmFtcz1wO24ub3JpZ2luPW4ucHJvdG9jb2wrIi8vIituLmhvc3Q7bi51c2VybmFtZT0iIjtuLnBhc3N3b3JkPSIiO2I9VWQobik7CnJldHVybiBifVdTLnB1YmxpY05hbWU9InBhcnNlVXJsIjtmdW5jdGlvbiBYUyhhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKSxjPXt9O0VkKGIuTS5FYSxjKTtiSShiLGMpO3ZhciBkPXt9O2NJKGIsZCk7ZFtILkouQm5dPSEwO3ZhciBlPXtldmVudE1ldGFkYXRhOmR9LGY9Yi5NLmV2ZW50SWQsZz1zQyhiLnRhcmdldC5kZXN0aW5hdGlvbklkLGIuZXZlbnROYW1lLGMpO21EKGcsZixlKTt9WFMuUD0iaW50ZXJuYWwucHJvY2Vzc0FzTmV3RXZlbnQiO2Z1bmN0aW9uIFlTKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1ZUy5QPSJpbnRlcm5hbC5wdXNoVG9EYXRhTGF5ZXIiO2Z1bmN0aW9uIFpTKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPSExO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtmb3IodmFyIGQ9W3RoaXMsYV0sZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQucHVzaChUZChmLnZhbHVlLHRoaXMuVCwxKSk7dHJ5e0wuYXBwbHkobnVsbCxkKSxjPSEwfWNhdGNoKGcpe3JldHVybiExfXJldHVybiBjfVpTLnB1YmxpY05hbWU9InF1ZXJ5UGVybWlzc2lvbiI7ZnVuY3Rpb24gJFMoYSl7dmFyIGI9dGhpcztpZighaGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImZ1bmN0aW9uIl0sYXJndW1lbnRzKTtpbyhsbyhjby5pYS5jYiksZnVuY3Rpb24oKXthLmludm9rZShiLlQpfSk7fSRTLlA9ImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIjtmdW5jdGlvbiBhVChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9YVQucHVibGljTmFtZT0icmVhZEFuYWx5dGljc1N0b3JhZ2UiO2Z1bmN0aW9uIGJUKCl7dmFyIGE9IiI7cmV0dXJuIGF9YlQucHVibGljTmFtZT0icmVhZENoYXJhY3RlclNldCI7ZnVuY3Rpb24gY1QoKXtyZXR1cm4gRSgxOSl9Y1QuUD0iaW50ZXJuYWwucmVhZERhdGFMYXllck5hbWUiO2Z1bmN0aW9uIGRUKCl7dmFyIGE9IiI7TCh0aGlzLCJyZWFkX3RpdGxlIiksYT1CLnRpdGxlfHwiIjtyZXR1cm4gYX1kVC5wdWJsaWNOYW1lPSJyZWFkVGl0bGUiO2Z1bmN0aW9uIGVUKGEsYil7dmFyIGM9dGhpcztpZighbGgoYSl8fCFoaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iXSxhcmd1bWVudHMpO0xNKGEsZnVuY3Rpb24oZCl7Yi5pbnZva2UoYy5ULFVkKGQsYy5ULDEpKX0pO31lVC5QPSJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIjtmdW5jdGlvbiBmVChhLGIpe2lmKCFsaChhKXx8IWVoKGIpJiYhZ2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKEJoKFhGKHRoaXMpLlBiKCkpKXJldHVybiExO3ZhciBjLGQsZT1iQyhhLCEwKTtpZighZSlyZXR1cm4hMTtzd2l0Y2goZS5wcmVmaXgpe2Nhc2UgIkFXIjpjPXROO2Q9Y28uaWEuY2I7YnJlYWs7Y2FzZSAiREMiOmM9SU47ZD1jby5pYS5jYjticmVhaztjYXNlICJHRiI6Yz1OTjtkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIkhBIjpjPVBOO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiVUEiOmM9Zk87ZD1jby5pYS5nZDticmVhaztjYXNlICJNQyI6Yz1pUyhlKTtkPWNvLmlhLnhkO2JyZWFrO2Nhc2UgIkciOnJldHVybiBoUyhhKSwhMDtkZWZhdWx0OnJldHVybiExfXZhciBmPWEsCmc9YyxoPWQsbD1UZChiLHRoaXMuVCwxKSxuPVlDKCkscD1iQyhmLCEwKTtwJiZuLkgucmVnaXN0ZXIocCxnLGgsbCk7cmV0dXJuITB9ZlQuUD0iaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiI7dmFyIGdUPVsiZXZlbnQiXTtmdW5jdGlvbiBoVChhLGIsYyl7fWhULlA9ImludGVybmFsLnJlZ2lzdGVyR3RhZ0NvbW1hbmRMaXN0ZW5lciI7ZnVuY3Rpb24gaVQoYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31pVC5QPSJpbnRlcm5hbC5yZW1vdmVEYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBqVChhLGIpe30KalQuUD0iaW50ZXJuYWwucmVtb3ZlRm9ybURhdGEiO2Z1bmN0aW9uIGtUKCl7fWtULnB1YmxpY05hbWU9InJlc2V0RGF0YUxheWVyIjtmdW5jdGlvbiBsVChhLGIsYyl7dmFyIGQ9dm9pZCAwO2lmKCFsaChhKXx8IWpoKGIpfHwhbGgoYykmJiFnaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1UZChiKTtkPVNqKGEsZSxjKTtyZXR1cm4gZH1sVC5QPSJpbnRlcm5hbC5zY3J1YlVybFBhcmFtcyI7ZnVuY3Rpb24gbVQoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7SXooYik7fW1ULlA9ImludGVybmFsLnNlbmRBZHNIaXQiO2Z1bmN0aW9uIG5UKGEsYixjLGQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mnx8IWZoKGQpfHwhZmgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImFueSIsImFueSIsIk9iamVjdHx1bmRlZmluZWQiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1jP1RkKGMsdGhpcy5ULDEpOnt9LGY9VGQoYSksZz1BcnJheS5pc0FycmF5KGYpP2Y6W2ZdO2I9U3RyaW5nKGIpO3ZhciBoPWQ/VGQoZCk6e30sbD1YRih0aGlzKTtoLm9yaWdpbmF0aW5nRW50aXR5PXRHKGwpO2wucHJpb3JpdHlRdWV1ZSYmKGgucHJpb3JpdHlRdWV1ZT1sLnByaW9yaXR5UXVldWUpO2Zvcih2YXIgbj0wO248Zy5sZW5ndGg7bisrKXt2YXIgcD1nW25dO2lmKHR5cGVvZiBwPT09InN0cmluZyIpe3ZhciBxPXt9O0VkKGUscSk7dmFyIHI9e307RWQoaCxyKTt2YXIgdD1zQyhwLGIscSk7bUQodCwKaC5ldmVudElkfHxsLmV2ZW50SWQscil9fX1uVC5QPSJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50IjtmdW5jdGlvbiBvVChhLGIsYyl7fW9ULnB1YmxpY05hbWU9InNlbmRQaXhlbCI7ZnVuY3Rpb24gcFQoYSxiKXt9cFQuUD0iaW50ZXJuYWwuc2V0QW5jaG9ySHJlZiI7ZnVuY3Rpb24gcVQoYSl7fXFULlA9ImludGVybmFsLnNldENvbnRhaW5lckNvbnNlbnREZWZhdWx0cyI7ZnVuY3Rpb24gclQoYSxiLGMsZCl7dmFyIGU9dGhpcztkPWQ9PT12b2lkIDA/ITA6ZDt2YXIgZj0hMTsKcmV0dXJuIGZ9clQucHVibGljTmFtZT0ic2V0Q29va2llIjtmdW5jdGlvbiBzVChhKXt9c1QuUD0iaW50ZXJuYWwuc2V0Q29yZVBsYXRmb3JtU2VydmljZXMiO2Z1bmN0aW9uIHRUKGEsYil7fXRULlA9ImludGVybmFsLnNldERhdGFMYXllclZhbHVlIjtmdW5jdGlvbiB1VChhKXt9dVQucHVibGljTmFtZT0ic2V0RGVmYXVsdENvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gdlQoYSxiKXt9dlQuUD0iaW50ZXJuYWwuc2V0RGVsZWdhdGVkQ29uc2VudFR5cGUiO2Z1bmN0aW9uIHdUKGEsYil7fXdULlA9ImludGVybmFsLnNldEZvcm1BY3Rpb24iO2Z1bmN0aW9uIHhUKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpZighbGgoYSl8fCFvaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKCFrbShhKSl0aHJvdyBFcnJvcigic2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEgcmVxdWlyZXMgdmFsaWQgQ3Jvc3NDb250YWluZXJTY2hlbWEga2V5LiIpOyhjfHxubShhKT09PXZvaWQgMCkmJm1tKGEsVGQoYix0aGlzLlQsMSkpO314VC5QPSJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24geVQoYSxiLGMpe3JldHVybiExfXlULnB1YmxpY05hbWU9InNldEluV2luZG93IjtmdW5jdGlvbiB6VChhLGIsYyl7aWYoIWxoKGEpfHwhbGgoYil8fGFyZ3VtZW50cy5sZW5ndGghPT0zKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBkPSRIKGEpfHx7fTtkW2JdPVRkKGMsdGhpcy5UKTt2YXIgZT1hLGY9Wkg7Zi5LfHxZSChmKTtmLnNldHRpbmdzW2VdPWQ7fXpULlA9ImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gQVQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTtmb3IodmFyIGQ9Yi5zcGxpdCgiLiIpLGU9ZUQoYSksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe2lmKGVbZFtmXV09PT12b2lkIDApZVtkW2ZdXT17fTtlbHNlIGlmKCFDZChlW2RbZl1dKSl0aHJvdyBFcnJvcigic2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIGZhaWxlZCwgcGF0aCBjb250YWlucyBhIG5vbi1vYmplY3QgdHlwZTogIitkW2ZdKTtlPWVbZFtmXV19ZVtkW2ZdXT1UZChjLHRoaXMuVCwxKTt9QVQuUD0iaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBCVChhLGIpe30KQlQuUD0iaW50ZXJuYWwuc2V0VHJhbnNtaXNzaW9uTW9kZSI7ZnVuY3Rpb24gQ1QoYSxiLGMsZCl7dmFyIGU9dGhpczt9Q1QucHVibGljTmFtZT0ic2hhMjU2IjtmdW5jdGlvbiBEVChhLGIsYyl7fQpEVC5QPSJpbnRlcm5hbC5zb3J0UmVtb3RlQ29uZmlnUGFyYW1ldGVycyI7ZnVuY3Rpb24gRVQoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7Y3goYik7fUVULlA9ImludGVybmFsLnN0b3JlQWRzQnJhaWRMYWJlbHMiO2Z1bmN0aW9uIEZUKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfUZULlA9ImludGVybmFsLnN1YnNjcmliZVRvQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBHVChhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKTtwTChiKTt9R1QuUD0iaW50ZXJuYWwudGFza1NlbmRBZHNIaXRzIjt2YXIgSFQ9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY10mJihiPWRbY10uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpP2RbY11bImd0bS4iK2FdOm51bGwpO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdPWRbY118fHt9O2RbY11bImd0bS4iK2FdPWI7fSwKcmVtb3ZlSXRlbTpmdW5jdGlvbihhKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGI9WEYodGhpcykuUGIoKSxjPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKCFjW2JdfHwhY1tiXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSkpcmV0dXJuO2RlbGV0ZSBjW2JdWyJndG0uIithXTt9LGNsZWFyOmZ1bmN0aW9uKCl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBhPVhGKHRoaXMpLlBiKCk7ZGVsZXRlIGFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2FdO30sCnB1YmxpY05hbWU6InRlbXBsYXRlU3RvcmFnZSJ9O2Z1bmN0aW9uIElUKGEsYil7dmFyIGM9ITE7aWYoIWtoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9wYXF1ZVZhbHVlIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD1hLmdldFZhbHVlKCk7aWYoIShkIGluc3RhbmNlb2YgUmVnRXhwKSlyZXR1cm4hMTtjPWQudGVzdChiKTtyZXR1cm4gY31JVC5QPSJpbnRlcm5hbC50ZXN0UmVnZXgiO2Z1bmN0aW9uIEpUKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBLVChhLGIpe31LVC5QPSJpbnRlcm5hbC50cmFja1VzYWdlIjtmdW5jdGlvbiBMVChhLGIpe3ZhciBjO3JldHVybiBjfUxULlA9ImludGVybmFsLnVuc3Vic2NyaWJlRnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gTVQoYSl7fU1ULnB1YmxpY05hbWU9InVwZGF0ZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gTlQoYSl7dmFyIGI9ITE7aWYoYSYmIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpO2MmJihiPWh3KGMpKTtyZXR1cm4gYn1OVC5QPSJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiI7dmFyIE9UPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBhaX0sUVQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGI7dmFyIGM9UFQuSDtpZihjLmNvbnRhaW5zKGEpKWI9Yy5nZXQoYSx0aGlzKTtlbHNle3ZhciBkO2lmKGQ9Yy5ILmhhc093blByb3BlcnR5KGEpKXt2YXIgZT10aGlzLlQueGIoKTtpZihlKXt2YXIgZj0hMSxnPWUuUGIoKTtpZihnKXtCaChnKXx8KGY9ITApO31kPWZ9ZWxzZSBkPSEwfWlmKGQpe3ZhciBoPWMuSC5oYXNPd25Qcm9wZXJ0eShhKT9jLkhbYV06dm9pZCAwO2I9aH1lbHNlIHRocm93IEVycm9yKGErIiBpcyBub3QgYSB2YWxpZCBBUEkgbmFtZS4iKTt9cmV0dXJuIGJ9fSxQVDtmdW5jdGlvbiBSVChhLGIsYyl7UFR8fChQVD1uZXcgT1QpO1BULkguYWRkKGEsYixjKX1mdW5jdGlvbiBTVChhLGIpe1BUfHwoUFQ9bmV3IE9UKTt2YXIgYz1QVC5IO2lmKGMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZihjLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2l0aCBhbiBleGlzdGluZyBBUEkgbmFtZTogIithKyIuIik7Yy5IW2FdPXliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gVFQoYSxiKXtmdW5jdGlvbiBjKGQpe2lmKCFlaChkKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgZT1UZChkLHRoaXMuVCwxKS5yYigpO2EoZSl9Yy5QPSJpbnRlcm5hbC4iK2I7cmV0dXJuIGN9O2Z1bmN0aW9uIFVUKCl7dmFyIGE9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgU1QoYy5QLGMpfSxiPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFJUKGMucHVibGljTmFtZSxjKX07YihSRik7YihZRik7YihSRyk7YihURyk7YihVRyk7YihkSCk7YihmSCk7YihoSSk7YihQUygpKTtiKGpJKTtiKE9PKTtiKFBPKTtiKGxQKTtiKG1QKTtiKG5QKTtiKHVQKTtiKHZQKTtiKHJTKTtiKHVTKTtiKEJTKTtiKERTKTtiKFRTKTtiKFdTKTtiKFpTKTtiKGFUKTtiKGJUKTtiKGRUKTtiKG9UKTtiKHJUKTtiKHVUKTtiKHlUKTtiKENUKTtiKEhUKTtiKE1UKTtSVCgiTWF0aCIsemgoKSk7UlQoIk9iamVjdCIsWmgpO1JUKCJUZXN0SGVscGVyIixjaSgpKTtSVCgiYXNzZXJ0QXBpIix3aCk7UlQoImFzc2VydFRoYXQiLHhoKTtSVCgiZGVjb2RlVXJpIixDaCk7UlQoImRlY29kZVVyaUNvbXBvbmVudCIsRGgpO1JUKCJlbmNvZGVVcmkiLEVoKTtSVCgiZW5jb2RlVXJpQ29tcG9uZW50IixGaCk7UlQoImZhaWwiLApMaCk7UlQoImdlbmVyYXRlUmFuZG9tIixOaCk7UlQoImdldFRpbWVzdGFtcCIsT2gpO1JUKCJnZXRUaW1lc3RhbXBNaWxsaXMiLE9oKTtSVCgiZ2V0VHlwZSIsUGgpO1JUKCJtYWtlSW50ZWdlciIsUmgpO1JUKCJtYWtlTnVtYmVyIixTaCk7UlQoIm1ha2VTdHJpbmciLFRoKTtSVCgibWFrZVRhYmxlTWFwIixVaCk7UlQoIm1vY2siLFhoKTtSVCgibW9ja09iamVjdCIsWWgpO1JUKCJmcm9tQmFzZTY0IixITywhKCJhdG9iImluIEEpKTtSVCgibG9jYWxTdG9yYWdlIixTUywhUlMoKSk7UlQoInRvQmFzZTY0IixKVCwhKCJidG9hImluIEEpKTthKFFGKTthKFVGKTthKG5HKTthKHNHKTthKElHKTthKFBHKTthKFNHKTthKFZHKTthKFdHKTthKFpHKTthKCRHKTthKGFIKTthKGJIKTthKGNIKTthKGVIKTthKGdIKTthKGdJKTthKGlJKTthKGtJKTthKGxJKTthKG1JKTthKG5JKTthKG9JKTthKGZKKTthKG1KKTthKHRKKTthKHVKKTthKEFKKTthKEZKKTthKEtKKTthKFJKKTthKFdKKTthKGdLKTsKYShpSyk7YSh2Syk7YSh3Syk7YSh4Syk7YShGTyk7YShHTyk7YShJTyk7YShKTyk7YShLTyk7YShMTyk7YShNTyk7YShOTyk7YShRTyk7YShSTyk7YShTTyk7YShUTyk7YShVTyk7YShWTyk7YShXTyk7YShYTyk7YShZTyk7YShaTyk7YSgkTyk7YShhUCk7YShiUCk7YShjUCk7YShkUCk7YShlUCk7YShmUCk7YShnUCk7YShoUCk7YShpUCk7YShqUCk7YShrUCk7YShvUCk7YShwUCk7YShxUCk7YShyUCk7YShzUCk7YSh0UCk7YSh3UCk7YShvUyk7YShwUyk7YSh0Uyk7YSh2Uyk7YShDUyk7YShFUyk7YShGUyk7YShHUyk7YShIUyk7YShJUyk7YShKUyk7YShLUyk7YShMUyk7YShNUyk7YShOUyk7YShPUyk7YShRUyk7YShHRyk7YShVUyk7YShWUyk7YShYUyk7YShZUyk7YSgkUyk7YShjVCk7YShlVCk7YShmVCk7YShoVCk7YShpVCk7YShqVCk7YShsVCk7YShtVCk7YShuVCk7YShwVCk7YShxVCk7YShzVCk7YSh0VCk7YSh2VCk7YSh3VCk7YSh4VCk7YSh6VCk7YShBVCk7YShCVCk7YShEVCk7CmEoRVQpO2EoRlQpO2EoR1QpO2EoSVQpO2EoS1QpO2EoTFQpO2EoTlQpO1NUKCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIixzUygpKTtTVCgiaW50ZXJuYWwucXVpY2tIYXNoIixNaCk7YShUVChNRiwidGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiKSksYShUVChQRiwidGFza1NldFVuaXZlcnNhbFBhcmFtcyIpKTthKFRUKExGLCJ0YXNrQWRkQWRzQ2xpY2tJZHMiKSk7UFR8fChQVD1uZXcgT1QpO3JldHVybiBRVCgpfTt2YXIgSkY7ZnVuY3Rpb24gVlQoKXtKRi5zZChmdW5jdGlvbihhLGIsYyl7bGooKTt2YXIgZD1qajtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT1kLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRXx8MDtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRSsrO3RyeXtyZXR1cm4gYS5hcHBseShiLGMpfWZpbmFsbHl7bGooKSxqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUtLX19KX1mdW5jdGlvbiBXVChhKXtpZihhJiZhLmxlbmd0aClmb3IodmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXS5yZXBsYWNlKC9eXyovLCIiKTtiW2RdPVsic2FuZGJveGVkU2NyaXB0cyJdfX0KZnVuY3Rpb24gWFQoYSl7aWYoYSl7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO0diKGEsZnVuY3Rpb24oYyxkKXtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9ZFtlXS5yZXBsYWNlKC9eXyovLCIiKTtiW2ZdPWJbZl18fFtdO2JbZl0ucHVzaChjKX19KX19O2Z1bmN0aW9uIFpUKGEpe21EKHBDKCJkZXZlbG9wZXJfaWQuIithLCEwKSwwLHt9KX07ZnVuY3Rpb24gJFQoYSxiKXtyZXR1cm4gRWQoYSxifHxudWxsKX1mdW5jdGlvbiBZKGEpe3JldHVybiB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGEpfWZ1bmN0aW9uIGFVKGEpe1pjKGEsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYlUoYSl7dmFyIGI9WyJ2ZWludGVyYWN0aXZlLmNvbSIsInZlLWludGVyYWN0aXZlLmNuIl07aWYoIWEpcmV0dXJuITE7dmFyIGM9TGooUmooYSksImhvc3QiKTtpZighYylyZXR1cm4hMTtmb3IodmFyIGQ9MDtiJiZkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSYmYltkXS50b0xvd2VyQ2FzZSgpO2lmKGUpe3ZhciBmPWMubGVuZ3RoLWUubGVuZ3RoO2Y+MCYmZS5jaGFyQXQoMCkhPT0iLiImJihmLS0sZT0iLiIrZSk7aWYoZj49MCYmYy5pbmRleE9mKGUsZik9PT1mKXJldHVybiEwfX1yZXR1cm4hMX0KZnVuY3Rpb24gY1UoYSxiLGMpe2Zvcih2YXIgZD17fSxlPSExLGY9MDthJiZmPGEubGVuZ3RoO2YrKylhW2ZdJiZhW2ZdLmhhc093blByb3BlcnR5KGIpJiZhW2ZdLmhhc093blByb3BlcnR5KGMpJiYoZFthW2ZdW2JdXT1hW2ZdW2NdLGU9ITApO3JldHVybiBlP2Q6bnVsbH1mdW5jdGlvbiBkVShhLGIpe3ZhciBjPXt9O2lmKGEpZm9yKHZhciBkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YVtkXSk7aWYoYil7dmFyIGU9Y1UoYiwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiKTtlJiYoYz0kVChlLGMpKX1yZXR1cm4gY31mdW5jdGlvbiBlVShhLGIsYyl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1jP2I6YX1mdW5jdGlvbiBmVShhLGIsYyl7cmV0dXJuIFVjKGEsYixjLHZvaWQgMCl9ZnVuY3Rpb24gZ1UoYSxiKXtBW2FdPWJ9ZnVuY3Rpb24gaFUoYSxiLGMpe3ZhciBkPUE7YiYmKGRbYV09PT12b2lkIDB8fGMmJiFkW2FdKSYmKGRbYV09Yik7cmV0dXJuIGRbYV19dmFyIGlVPXt9LGpVPVguVjt2YXIgWj17c2VjdXJpdHlHcm91cHM6e319OwoKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1bImdvb2dsZSJdLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLk89ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIixaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UucHJpb3JpdHlPdmVycmlkZT0wLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc0luZnJhc3RydWN0dXJlPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNSJdPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNiJdPSExOwoKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfZ2xvYmFscz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7dmFyIGU9e2tleTpkLHJlYWQ6ITEsd3JpdGU6ITEsZXhlY3V0ZTohMX07c3dpdGNoKGMpe2Nhc2UgInJlYWQiOmUucmVhZD0hMDticmVhaztjYXNlICJ3cml0ZSI6ZS53cml0ZT0hMDticmVhaztjYXNlICJyZWFkd3JpdGUiOmUucmVhZD1lLndyaXRlPSEwO2JyZWFrO2Nhc2UgImV4ZWN1dGUiOmUuZXhlY3V0ZT0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJJbnZhbGlkICIrYisiIHJlcXVlc3QgIitjKTt9cmV0dXJuIGV9KGZ1bmN0aW9uKGIpe1ouX19hY2Nlc3NfZ2xvYmFscz1iO1ouX19hY2Nlc3NfZ2xvYmFscy5PPSJhY2Nlc3NfZ2xvYmFscyI7Wi5fX2FjY2Vzc19nbG9iYWxzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2FjY2Vzc19nbG9iYWxzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fYWNjZXNzX2dsb2JhbHMuaXNJbmZyYXN0cnVjdHVyZT0hMTsKWi5fX2FjY2Vzc19nbG9iYWxzWyI1Il09ITE7Wi5fX2FjY2Vzc19nbG9iYWxzWyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9Yi52dHBfa2V5c3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9W10saD0wO2g8Yy5sZW5ndGg7aCsrKXt2YXIgbD1jW2hdLG49bC5rZXk7bC5yZWFkJiZlLnB1c2gobik7bC53cml0ZSYmZi5wdXNoKG4pO2wuZXhlY3V0ZSYmZy5wdXNoKG4pfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24ocCxxLHIpe2lmKCF6YihyKSl0aHJvdyBkKHAse30sIktleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0icmVhZHdyaXRlIil7aWYoZi5pbmRleE9mKHIpPi0xJiZlLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJleGVjdXRlIil7aWYoZy5pbmRleE9mKHIpPgotMSlyZXR1cm59ZWxzZSB0aHJvdyBkKHAse30sIk9wZXJhdGlvbiBtdXN0IGJlIGVpdGhlciAncmVhZCcsICd3cml0ZScsIG9yICdleGVjdXRlJywgd2FzICIrcSk7dGhyb3cgZChwLHt9LCJQcm9oaWJpdGVkICIrcSsiIG9uIGdsb2JhbCB2YXJpYWJsZTogIityKyIuIik7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZ2V0X3JlZmVycmVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfcmVmZXJyZXI9YjtaLl9fZ2V0X3JlZmVycmVyLk89ImdldF9yZWZlcnJlciI7Wi5fX2dldF9yZWZlcnJlci5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19nZXRfcmVmZXJyZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfcmVmZXJyZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3JlZmVycmVyWyI1Il09ITE7Wi5fX2dldF9yZWZlcnJlclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmCmMucHVzaCgiZXh0ZW5zaW9uIiksYi52dHBfcXVlcnkmJmMucHVzaCgicXVlcnkiKSk7dmFyIGQ9YyYmYi52dHBfcXVlcmllc0FsbG93ZWQhPT0iYW55Ij9iLnZ0cF9xdWVyeUtleXN8fFtdOm51bGwsZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCl7aWYoZyl7aWYoIXpiKGcpKXRocm93IGUoZix7fSwiVVJMIGNvbXBvbmVudCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGMmJmMuaW5kZXhPZihnKTwwKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBVUkwgY29tcG9uZW50OiAiK2cpO2lmKGc9PT0icXVlcnkiJiZkKXtpZighaCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgcXVlcnkgd2hlbiBxdWVyeSBrZXlzIGFyZSBzcGVjaWZpZWQuIik7aWYoIXpiKGgpKXRocm93IGUoZix7fSwiUXVlcnkga2V5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoZC5pbmRleE9mKGgpPDApdGhyb3cgZShmLHt9LAoiUHJvaGliaXRlZCBxdWVyeSBrZXk6ICIraCk7fX1lbHNlIGlmKGMpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHdoZW4gY29tcG9uZW50cyBhcmUgc3BlY2lmaWVkLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2V2ZW50X2RhdGE9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57a2V5OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9ldmVudF9kYXRhPWI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5PPSJyZWFkX2V2ZW50X2RhdGEiO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9ldmVudF9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9ldmVudF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNSJdPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2V2ZW50RGF0YUFjY2VzcyxkPWIudnRwX2tleVBhdHRlcm5zfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoZyE9bnVsbCYmIXpiKGcpKXRocm93IGUoZix7a2V5Omd9LCJLZXkgbXVzdCBiZSBhIHN0cmluZy4iKTsKaWYoYyE9PSJhbnkiKXt0cnl7aWYoYz09PSJzcGVjaWZpYyImJmchPW51bGwmJkVnKGcsZCkpcmV0dXJufWNhdGNoKGgpe3Rocm93IGUoZix7a2V5Omd9LCJJbnZhbGlkIGtleSBmaWx0ZXIuIik7fXRocm93IGUoZix7a2V5Omd9LCJQcm9oaWJpdGVkIHJlYWQgZnJvbSBldmVudCBkYXRhLiIpO319LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfdGl0bGU9WyJnb29nbGUiXSxaLl9fcmVhZF90aXRsZT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX3JlYWRfdGl0bGUuTz0icmVhZF90aXRsZSIsWi5fX3JlYWRfdGl0bGUuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fcmVhZF90aXRsZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX3JlYWRfdGl0bGUuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fcmVhZF90aXRsZVsiNSJdPSExLFouX19yZWFkX3RpdGxlWyI2Il09ITE7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6e2ZpeE1pc3NpbmdBcGk6ISFjLmZpeE1pc3NpbmdBcGl9fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cz1iO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuTz0iZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIjtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzWyI2Il09CiExfSkoZnVuY3Rpb24oYil7dmFyIGM9ISFiLnZ0cF9hbGxvd0ZpeE1pc3NpbmdKYXZhU2NyaXB0QXBpLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSxmKXtpZighYyYmZiYmZi5maXhNaXNzaW5nQXBpKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb246IGZpeE1pc3NpbmdBcGkuIik7fSxhYTphfX0pfSgpOwoKCgoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX3NjcmVlbl9kaW1lbnNpb25zPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zPWI7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuTz0icmVhZF9zY3JlZW5fZGltZW5zaW9ucyI7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9uc1siNSJdPSExO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKCgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9saW5rX2NsaWNrX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntvcHRpb25zOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzPWI7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5PPSJkZXRlY3RfbGlua19jbGlja19ldmVudHMiO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93V2FpdEZvclRhZ3MsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLApmKXtpZighYyYmZiYmZi53YWl0Rm9yVGFncyl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uIHdhaXRGb3JUYWdzLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2NvbnRhaW5lcl9kYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLk89InJlYWRfY29udGFpbmVyX2RhdGEiLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjUiXT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmxpc3Rlbl9kYXRhX2xheWVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2V2ZW50TmFtZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyPWI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLk89Imxpc3Rlbl9kYXRhX2xheWVyIjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNSJdPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWNjZXNzVHlwZSxkPWIudnRwX2FsbG93ZWRFdmVudHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sCiJFdmVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShjPT09ImFueSJ8fGM9PT0ic3BlY2lmaWMiJiZkLmluZGV4T2YoZyk+PTApKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LCJQcm9oaWJpdGVkIGxpc3RlbiBvbiBkYXRhIGxheWVyIGV2ZW50LiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2NvbnNlbnQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtjb25zZW50VHlwZTpjLHJlYWQ6ITEsd3JpdGU6ITF9O3N3aXRjaChkKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrZCk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2NvbnNlbnQ9YjtaLl9fYWNjZXNzX2NvbnNlbnQuTz0iYWNjZXNzX2NvbnNlbnQiO1ouX19hY2Nlc3NfY29uc2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfY29uc2VudC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19jb25zZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI1Il09ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9CmIudnRwX2NvbnNlbnRUeXBlc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIGg9Y1tnXSxsPWguY29uc2VudFR5cGU7aC5yZWFkJiZlLnB1c2gobCk7aC53cml0ZSYmZi5wdXNoKGwpfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24obixwLHEpe2lmKCF6YihwKSl0aHJvdyBkKG4se30sIkNvbnNlbnQgdHlwZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwiQWNjZXNzIHR5cGUgbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCBvciAnd3JpdGUnLCB3YXMgIitxKTt0aHJvdyBkKG4se30sIlByb2hpYml0ZWQgIitxKyIgb24gY29uc2VudCB0eXBlOiAiK3ArIi4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9kb21fZWxlbWVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0eXBlOmMsdmFsdWU6ZH19KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2RvbV9lbGVtZW50cz1iO1ouX19yZWFkX2RvbV9lbGVtZW50cy5PPSJyZWFkX2RvbV9lbGVtZW50cyI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRFbGVtZW50SWRzfHwibm9uZSIsZD1iLnZ0cF9hbGxvd2VkQ3NzU2VsZWN0b3JzfHwibm9uZSIsZT1iLnZ0cF9lbGVtZW50SWRzfHxbXSxmPWIudnRwX2Nzc1NlbGVjdG9yc3x8W10sZz0KYi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oaCxsLG4pe3N3aXRjaChsKXtjYXNlICJpZCI6aWYoYz09PSJub25lIilicmVhaztpZihjPT09ImFueSJ8fGUuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7Y2FzZSAiY3NzIjppZihkPT09Im5vbmUiKWJyZWFrO2lmKGQ9PT0iYW55Inx8Zi5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztkZWZhdWx0OnRocm93IGcoaCx7fSwiVW5rbm93biBzZWxlY3RvciB0eXBlICIrbCsiLiIpO310aHJvdyBnKGgse30sIlByb2hpYml0ZWQgc2VsZWN0b3IgdmFsdWUgIituKyIgZm9yIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9zY3JvbGxfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1iO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5PPSJkZXRlY3Rfc2Nyb2xsX2V2ZW50cyI7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTtaLnNlY3VyaXR5R3JvdXBzLmdldF91c2VyX2FnZW50PVsiZ29vZ2xlIl0sWi5fX2dldF91c2VyX2FnZW50PWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fZ2V0X3VzZXJfYWdlbnQuTz0iZ2V0X3VzZXJfYWdlbnQiLFouX19nZXRfdXNlcl9hZ2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19nZXRfdXNlcl9hZ2VudC5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2dldF91c2VyX2FnZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2dldF91c2VyX2FnZW50WyI1Il09ITEsWi5fX2dldF91c2VyX2FnZW50WyI2Il09ITE7CgoKCmZ1bmN0aW9uIGtVKCl7dmFyIGE9e30sYj17ZGF0YUxheWVyOnRBLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2EuaGFzT3duUHJvcGVydHkoYykmJnliKGFbY10pJiZhW2NdKCk7ZGVsZXRlIGFbY119LGJvb3RzdHJhcDowfTtyZXR1cm4gYn0KZnVuY3Rpb24gbFUoKXt2YXIgYT1rVSgpO29qKGEpO0NrKCk7akEoKTt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7UWIoYixaLnNlY3VyaXR5R3JvdXBzKTt2YXIgYz15ayh6aygpKSxkLGU9Yz09bnVsbD92b2lkIDA6KGQ9Yy5jb250ZXh0KT09bnVsbD92b2lkIDA6ZC5zb3VyY2U7S2woZSxjPT1udWxsP3ZvaWQgMDpjLnBhcmVudCk7ZSE9PTImJmUhPT00JiZlIT09M3x8UCgxNDIpO3JldHVybiBhfWZ1bmN0aW9uIG1VKCl7dmFyIGE9RSg2MCk7aWYoYSlmb3IodmFyIGI9YS5zcGxpdCgiLiIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPVRMO2QmJihlLkhbZF09ITApfX0KZnVuY3Rpb24gblUoKXt6cCgpO2xqKCk7Zm9yKHZhciBhPWRhdGEucmVzb3VyY2V8fHt9LGI9Y0EsYz1hLm1hY3Jvc3x8W10sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWIubWFjcm9zLnB1c2gobmV3IFV6KGNbZF0sZCxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGU9YS50YWdzfHxbXSxmPTA7ZjxlLmxlbmd0aDtmKyspYi50YWdzLnB1c2gobmV3IFl6KGVbZl0sZixiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGc9YS5wcmVkaWNhdGVzfHxbXSxoPTA7aDxnLmxlbmd0aDtoKyspYi5wcmVkaWNhdGVzLnB1c2gobmV3IFZ6KGdbaF0sYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBsPWEucnVsZXN8fFtdLG49MDtuPGwubGVuZ3RoO24rKyliLnJ1bGVzLnB1c2gobmV3IFd6KGxbbl0sbikpO1F6PVo7dmFyIHA9ZGF0YS5wZXJtaXNzaW9uc3x8e30scT1aO2RnPW5ldyBnZyhFKDUpLHAscSk7dmFyIHI9ZGF0YS5zYW5kYm94ZWRfc2NyaXB0cyx0PWRhdGEuc2VjdXJpdHlfZ3JvdXBzLHU9ZGF0YS5ydW50aW1lfHwKW10sdj1kYXRhLnJ1bnRpbWVfbGluZXM7SkY9bmV3IHBmO1ZUKCk7UHo9SUYoKTt2YXIgeD1KRix5PVVUKCksej1uZXcgTGQoInJlcXVpcmUiLHkpO3ouWmEoKTt4LkguSC5zZXQoInJlcXVpcmUiLHopO2RiLnNldCgicmVxdWlyZSIseik7Zm9yKHZhciBDPTA7Qzx1Lmxlbmd0aDtDKyspe3ZhciBEPXVbQ107aWYoIUFycmF5LmlzQXJyYXkoRCl8fEQubGVuZ3RoPDMpe2lmKEQubGVuZ3RoPT09MCljb250aW51ZTticmVha312JiZ2W0NdJiZ2W0NdLmxlbmd0aCYmUGYoRCx2W0NdKTt0cnl7SkYuZXhlY3V0ZShEKX1jYXRjaChvVSl7fX1XVChyKTtYVCh0KTt2YXIgST1sVSgpO2lGKCk7dm0uYmluZCgpO2lmKCFEailmb3IodmFyIEc9Qm0oKT9lcChMZig1KSk6ZXAoTGYoNCkpLE49bShSbyksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWUsZWE9VyxqYT1HW1ddPyJncmFudGVkIjoiZGVuaWVkIjt0bCgpLmltcGxpY2l0KGVhLGphKX1oRS5iaW5kKCk7VEIoKTsKT0IoKTtmbi5OJiYoZ3ooKSxmeihBRiksZ0EoKSxjQj1uZXcgYkIsZnooaXopLE9DKCksREZ8fChERj1uZXcgQkYpLGZCfHwoZkI9bmV3IGVCKSxGRj1uZXcgRUYpO2lmKGZuLkspe0RFLmJpbmQoKTttQy5iaW5kKCk7d0UuYmluZCgpO3ZhciBmYT1BaygpO2lmKGZhKXt2YXIgc2E7YTp7dmFyIGRhLG1hPShkYT1mYS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZGEuc3JjO2lmKG1hKXt2YXIgUGE7dHJ5e3ZhciBGYTtQYT0oRmE9cmQoKSk9PW51bGw/dm9pZCAwOkZhLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIil9Y2F0Y2gob1Upe31pZihQYSl7Zm9yKHZhciBxYT0tMSxpYj1tKFBhKSxYYj1pYi5uZXh0KCk7IVhiLmRvbmU7WGI9aWIubmV4dCgpKXt2YXIgTGM9WGIudmFsdWU7aWYoTGMuaW5pdGlhdG9yVHlwZT09PQoic2NyaXB0IiYmKHFhKz0xLExjLm5hbWUucmVwbGFjZShORSwiIik9PT1tYS5yZXBsYWNlKE5FLCIiKSkpe3NhPXFhO2JyZWFrIGF9fVAoMTQ2KX1lbHNlIFAoMTQ1KX1zYT12b2lkIDB9dmFyIFFkPXNhO1FkIT09dm9pZCAwJiYoZmEuY2Fub25pY2FsQ29udGFpbmVySWQmJlVtKCJydGciLFN0cmluZyhmYS5jYW5vbmljYWxDb250YWluZXJJZCkpLFVtKCJzbG8iLFN0cmluZyhRZCkpLFVtKCJobG8iLGZhLmh0bWxMb2FkT3JkZXJ8fCItMSIpLFVtKCJsc3QiLFN0cmluZyhmYS5sb2FkU2NyaXB0VHlwZXx8IjAiKSkpfWVsc2UgUCgxNDQpO3ZhciBZYzt2YXIgRGQ9eGsoKTtpZihEZClpZihEZC5jYW5vbmljYWxDb250YWluZXJJZClZYz1EZC5jYW5vbmljYWxDb250YWluZXJJZDtlbHNle3ZhciBqZix2aD1EZC5zY3JpcHRDb250YWluZXJJZHx8KChqZj1EZC5kZXN0aW5hdGlvbnMpPT1udWxsP3ZvaWQgMDpqZlswXSk7WWM9dmg/Il8iK3ZoOnZvaWQgMH1lbHNlIFljPXZvaWQgMDt2YXIgSkU9ClljO0pFJiZVbSgicGNpZCIsSkUpO1VtKCJidCIsU3RyaW5nKElmKDQ3KT8yOklmKDUwKT8xOjApKTtVbSgiY3QiLFN0cmluZyhJZig0Nyk/MDpJZig1MCk/MTozKSk7QUUuYmluZCgpO2Zvcih2YXIgV3I9W10sWHI9W10sS0U9bShPYmplY3Qua2V5cyhHRSkpLFlyPUtFLm5leHQoKTshWXIuZG9uZTtZcj1LRS5uZXh0KCkpe3ZhciBybT1Zci52YWx1ZTtpZih3aW5kb3cuaXNTZWN1cmVDb250ZXh0fHwhSUVbcm1dKXt2YXIgTEU9R0Vbcm1dKCk7aWYoeWIoTEUpKXt2YXIgTUU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTEUpO1RiKE1FLCJ7IFtuYXRpdmUgY29kZV0gfSIpfHxUYihNRSwie1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKXx8WHIucHVzaChybSl9ZWxzZSBXci5wdXNoKHJtKX19V3IubGVuZ3RoPjAmJlVtKCJqc20iLFdyLmpvaW4oIn4iKSk7WHIubGVuZ3RoPjAmJlVtKCJqc3AiLFhyLmpvaW4oIn4iKSk7RXl8fChFeT1uZXcgRHkpfWhGKCk7aW0oMSk7RUcoKTtyZXR1cm4gSX0KZnVuY3Rpb24gdW0oKXt0cnl7aWYoIWhrKCkmJihJZig0Nyl8fCFOaygpKSl7SWYoNjQpJiZ3ai5ILksuYWRkKDExODUxNzkxNyk7emooKTtmbi5IJiZzeigpO1dmWzVdPSEwO3ZhciBhPWtqKCJkZWJ1Z0dyb3VwSWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKX0pO1NsKGEpO2t0KCk7ekYoKTtGdCgpO1BCKCk7aWYoRGsoKSl7RSg1KTtERygpO2lCKCkucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnModmsoKSk7fWVsc2V7Rk0uUigpO25VKCkuYm9vdHN0cmFwPU5iKCk7SWYoNTEpJiZwRSgpOwpmbi5IJiZ0eigpO3R5cGVvZiBBLm5hbWU9PT0ic3RyaW5nIiYmU2IoQS5uYW1lLCJ3ZWItcGl4ZWwtc2FuZGJveC1DVVNUT00iKSYmc2QoKT9aVCgiZE1EZzBZeiIpOkEuU2hvcGlmeSYmKFpUKCJkTjJaa01qIiksc2QoKSYmWlQoImROVFUwWXoiKSk7bVUoKX19fWNhdGNoKGIpe2ltKDUpLGh6KCl9fQooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe249Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJlc2VudCIpO2dsKG4pJiYobD1oLnhtKX1mdW5jdGlvbiBjKCl7bCYmS2M/ZyhsKTphKCl9aWYoIUFbRSgzNyldKXt2YXIgZD0hMTtpZihCLnJlZmVycmVyKXt2YXIgZT1SaihCLnJlZmVycmVyKTtkPU5qKGUsImhvc3QiKT09PUUoMzgpfWlmKCFkKXt2YXIgZj1jcShFKDM5KSk7ZD0hKCFmLmxlbmd0aHx8IWZbMF0ubGVuZ3RoKX1kJiYoQVtFKDM3KV09ITAsVWMoRSg0MCkpKX12YXIgZz1mdW5jdGlvbih1KXt2YXIgdj0iR1RNIix4PSJHVE0iO0lmKDQ1KSYmKHY9Ik9HVCIseD0iR1RBRyIpO3ZhciB5PUUoMjMpLHo9QVt5XTt6fHwoej1bXSxBW3ldPXosVWMoImh0dHBzOi8vIitFKDMpKyIvZGVidWcvYm9vdHN0cmFwP2lkPSIrRSg1KSsiJnNyYz0iK3grIiZjb25kPSIrU3RyaW5nKHUpKyImZ3RtPSIrZHUoKSkpO3ZhciBDPXttZXNzYWdlVHlwZToiQ09OVEFJTkVSX1NUQVJUSU5HIiwKZGF0YTp7c2NyaXB0U291cmNlOktjLGNvbnRhaW5lclByb2R1Y3Q6dixkZWJ1ZzohMSxpZDpFKDUpLHRhcmdldFJlZjp7Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246c2soKSxjYW5vbmljYWxJZDpFKDYpfSxhbGlhc2VzOndrKCksZGVzdGluYXRpb25zOnRrKCl9fSxEPUMuZGF0YTtELnJlc3VtZT1mdW5jdGlvbigpe2EoKX07RC5yZXN1bWVXaXRoTWVtb3M9ZnVuY3Rpb24oKXtzbCgxKTthKCl9O0lmKDIpJiYoQy5kYXRhLmluaXRpYWxQdWJsaXNoPSEwKTt6LnB1c2goQyl9LGg9e0dxOjEsUG06MixvbjozLGpsOjQseG06NX07aFtoLkdxXT0iR1RNX0RFQlVHX0xFR0FDWV9QQVJBTSI7aFtoLlBtXT0iR1RNX0RFQlVHX1BBUkFNIjtoW2gub25dPSJSRUZFUlJFUiI7aFtoLmpsXT0iQ09PS0lFIjtoW2gueG1dPSJFWFRFTlNJT05fUEFSQU0iO3ZhciBsPXZvaWQgMCxuPXZvaWQgMCxwPUxqKEEubG9jYXRpb24sInF1ZXJ5IiwhMSx2b2lkIDAsImd0bV9kZWJ1ZyIpO2dsKHApJiYobD1oLlBtKTsKaWYoIWwmJkIucmVmZXJyZXIpe3ZhciBxPVJqKEIucmVmZXJyZXIpO05qKHEsImhvc3QiKT09PUUoMjQpJiYobD1oLm9uKX1pZighbCl7dmFyIHI9Y3EoIl9fVEFHX0FTU0lTVEFOVCIpO3IubGVuZ3RoJiZyWzBdLmxlbmd0aCYmKGw9aC5qbCl9bHx8YigpO2lmKCFsJiZmbChuKSl7dmFyIHQ9ITE7JGMoQiwiVEFEZWJ1Z1NpZ25hbCIsZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sITEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwyMDApfWVsc2UgYygpfSkoZnVuY3Rpb24oKXshSWYoNDcpfHx0bSgpWyIwIl0/dW0oKTp4bSgpfSk7Cgp9KSgpCgo="}},"time_used":92,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":55,"receive":37,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=1\u0026frm=0\u0026ae=g\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026ep.ads_data_redaction=0\u0026gtm=45He67m0v852615139za200zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119732170~119896803\u0026apve=1\u0026apvf=f\u0026gap.plf=5\u0026apvc=1\u0026tft=1785145405487\u0026tfd=2608\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.490Z","timestamp":1785145405490,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=1\u0026frm=0\u0026ae=g\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026ep.ads_data_redaction=0\u0026gtm=45He67m0v852615139za200zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119732170~119896803\u0026apve=1\u0026apvf=f\u0026gap.plf=5\u0026apvc=1\u0026tft=1785145405487\u0026tfd=2608\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\npragma: no-cache\r\ncontent-type: text/plain\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":549,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":47,"timings":{"blocked":-1,"dns":3,"connect":26,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:31.946Z","timestamp":1785145411946,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/main-B-VHc1K4.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:31 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-3f99\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k6J8qMAuDhQp/iEVo+w9HV7pbbEvNwcQGhdbev5EdSkcbKSa16YYfjCwZYVdMDwwIn/U1+g\r\nx-77-nzt-ray: fdb54123991870604328676a19ba8f38\r\nx-77-cache: HIT\r\nx-77-age: 8151\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":16281,"size_decoded":6833,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (15873)","md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-29T06:17:50.042235Z","times_seen":1081,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bd2luZG93LnBhcmVudC5zbWFydHN1cHAuZ2V0QXNzZXRVcmwoImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL3NoYXJlZC1rYjF5cUhhQS5qcyIpLHdpbmRvdy5wYXJlbnQuc21hcnRzdXBwLmdldEFzc2V0VXJsKCJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzIildKSkpPT5pLm1hcChpPT5kW2ldKTsKaW1wb3J0e0EgYXMgZSxBaSBhcyB0LEFyIGFzIG4sQXQgYXMgcixCIGFzIGksQmkgYXMgYSxDIGFzIG8sQ2kgYXMgcyxEIGFzIGMsRGkgYXMgbCxFIGFzIHUsRWkgYXMgZCxHaSBhcyBmLEdyIGFzIHAsSGkgYXMgbSxIbiBhcyBoLEhyIGFzIGcsSSBhcyBfLElpIGFzIHYsSiBhcyB5LEppIGFzIGIsS2kgYXMgeCxLciBhcyBTLExpIGFzIEMsTSBhcyBlZSxOIGFzIHRlLE5pIGFzIHcsTyBhcyBuZSxPciBhcyByZSxQaSBhcyBpZSxQciBhcyBhZSxQdCBhcyBvZSxSIGFzIHNlLFMgYXMgY2UsU2kgYXMgbGUsVCBhcyB1ZSxUaSBhcyBULFVpIGFzIGRlLFVyIGFzIEUsVmkgYXMgRCxXaSBhcyBmZSxXbiBhcyBwZSxXdCBhcyBtZSxYaSBhcyBPLFhyIGFzIGssWHQgYXMgaGUsWSBhcyBnZSxZaSBhcyBBLFluIGFzIGosWXIgYXMgX2UsWmkgYXMgTSxaciBhcyB2ZSxfIGFzIHllLGEgYXMgYmUsYWEgYXMgTixiIGFzIHhlLGJpIGFzIFAsY2EgYXMgRixkIGFzIFNlLGRpIGFzIENlLGR0IGFzIHdlLGVhIGFzIFRlLGVpIGFzIEksZiBhcyBFZSxmaSBhcyBMLGggYXMgRGUsaGkgYXMgUixpIGFzIHosaWEgYXMgQixqIGFzIE9lLGppIGFzIFYsam4gYXMga2Usa2kgYXMgQWUsa3IgYXMgamUsbCBhcyBNZSxsYSBhcyBOZSxsaSBhcyBILG0gYXMgUGUsbWkgYXMgRmUsbiBhcyBJZSxuYSBhcyBMZSxvIGFzIFUsb2kgYXMgVyxvciBhcyBHLHBpIGFzIEsscSBhcyBSZSxxbiBhcyB6ZSxyIGFzIHEscyBhcyBCZSx0IGFzIFZlLHRhIGFzIEhlLHRpIGFzIEosdSBhcyBVZSx1aSBhcyBZLHcgYXMgWCx3aSBhcyBaLHggYXMgV2UseGkgYXMgR2UseSBhcyBLZSx5aSBhcyBxZX1mcm9tIi4vc2hhcmVkLWtiMXlxSGFBLmpzIjt2YXIgSmU9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBZZShlLHQpe04odCwhMCk7bGV0IG49eChudWxsKSxyPWAke1MoKS5TTUFSVFNVUFBfQVVUT0NSRUFURT09PSExP2cod2luZG93KS5pZDpgc21hcnRzdXBwYH0td2lkZ2V0LWNvbnRhaW5lcmA7aygoKT0+e3cobikmJnAoKS5ib2R5LmFwcGVuZENoaWxkKHcobikpfSksX2UoKCk9PntwKCkuZ2V0RWxlbWVudEJ5SWQocik/LnJlbW92ZSgpfSk7dmFyIGk9SmUoKTtSKGEoaSksKCk9PnQuY2hpbGRyZW4/P05lKSxGKGkpLEooaSxlPT5mKG4sZSksKCk9PncobikpLHYoKCk9PlcoaSxgaWRgLHIpKSxaKGUsaSksQigpfXZhciBYZT1kKGA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbj0iIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT5gKTtmdW5jdGlvbiBRKGUsdCl7Tih0LCEwKTtsZXQgbj0oKT0+TShjLGAkdGhlbWVDb2xvcmAsciksW3IsaV09TygpLGE9eCh2b2lkIDApLG89eChudWxsKSxsO0MoKCk9Pnt3KG8pJiZ1KHcobykpfSksQygoKT0+e3cobykmJmQobigpKX0pO2xldCB1PWFzeW5jIGU9PntsJiZhd2FpdCBzKGwpLGUmJnQuY29tcG9uZW50JiYobD1HZSh0LmNvbXBvbmVudCx7dGFyZ2V0OmUuYm9keX0pKX0sZD1lPT57dyhvKSYmbmUodyhvKSxlKX0scD1lPT57aWYoIXcobykpcmV0dXJuO2xldCB0PXcobykuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHcobykuaGVhZC5hcHBlbmRDaGlsZCh0KSx0fSxtPSgpPT57Zm9yKGxldCBlIG9mIHdpbmRvdy5kb2N1bWVudC5zdHlsZVNoZWV0cyl7bGV0IHQ9YGA7dHJ5e3Q9Wy4uLmUuY3NzUnVsZXNdLm1hcChlPT5lLmNzc1RleHQpLmpvaW4oYGApfWNhdGNoe2NvbnRpbnVlfWlmKCFwKHQpKXJldHVybn19LGg9KCk9PnshdyhhKXx8IXcoYSkuY29udGVudERvY3VtZW50fHwoZihvLHcoYSkuY29udGVudERvY3VtZW50LCEwKSxtKCkpfTtrKGFzeW5jKCk9Pnthd2FpdCBpZSgpLHcoYSk/LmNvbnRlbnREb2N1bWVudCYmdyhhKS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PWBjb21wbGV0ZWAmJncoYSkuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3P2goKTp3KGEpPy5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxoKX0pLF9lKGFzeW5jKCk9Pnt3KGEpJiZ3KGEpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGxvYWRgLGgpLGwmJmF3YWl0IHMobCl9KTt2YXIgZz1YZSgpO0ooZyxlPT5mKGEsZSksKCk9PncoYSkpLHYoKCk9PntXKGcsYGlkYCx0LmlkKSxXKGcsYHRpdGxlYCx0LnRpdGxlKSxIKGcsdC5mcmFtZVN0eWxlKX0pLFooZSxnKSxCKCksaSgpfXZhciBaZT1sKGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPjxwYXRoIGQ9Ik02My4xMTMsMTguNTF2LS4xNkM2MC4zMjMsNy4wNSw0NC41ODIsMywzMS45NzIsM1MzLjU4Miw3LC43OTIsMTguNWE2Ni4yMiw2Ni4yMiwwLDAsMCwwLDIwLjQ2YzEuMTgsNC43NCw1LjA1LDguNjMsMTEuMzYsMTEuNDFsLTQsNUEzLjQ3LDMuNDcsMCwwLDAsMTAuODgyLDYxYTMuMzksMy4zOSwwLDAsMCwxLjQ0LS4zMUwyNi44NjIsNTRjMS43OS4xOCwzLjQ5LjI3LDUuMDcuMjcsMTEuMDQuMDQsMjguNDEtNC4wNCwzMS4xOC0xNS40M2E2MC4zMyw2MC4zMywwLDAsMCwwLTIwLjMzWiI+PC9wYXRoPjwvc3ZnPmApO2Z1bmN0aW9uIFFlKGUsdCl7bGV0IG49dmUodCxgaWNvblNpemVgLDMsMTYpO3ZhciByPVplKCk7digoKT0+e1cocixgd2lkdGhgLG4oKSksVyhyLGBoZWlnaHRgLG4oKSl9KSxaKGUscil9ZnVuY3Rpb24gJGUoZSx0KXtOKHQsITApO2xldCBuPXgoITEpO2soKCk9PntmKG4sITApfSk7dmFyIHI9VCgpLGk9RChyKSxhPWU9Pnt2YXIgbj1UKCk7UihEKG4pLCgpPT50LmNoaWxkcmVuPz9OZSksWihlLG4pfTtQKGksZT0+e3cobikmJmUoYSl9KSxaKGUsciksQigpfXZhciBldD1kKGA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGdyb3VwLWhvdmVyOnNjYWxlLTExNSI+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gdHQoZSl7JGUoZSx7Y2hpbGRyZW46KGUsdCk9Pnt2YXIgbj1ldCgpO1FlKGEobikse2ljb25TaXplOjI0fSksRihuKSxLKDMsbiwoKT0+QmUsKCk9Pih7ZGVsYXk6MjAwLGR1cmF0aW9uOjMwMCxzdGFydDouNixvcGFjaXR5Oi44fSkpLFooZSxuKX0sJCRzbG90czp7ZGVmYXVsdDohMH19KX12YXIgbnQ9ZChgPGRpdiBjbGFzcz0icC0xIj48ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciB3LTEyIGgtMTIgYmctd2hpdGUgYmctb3BhY2l0eS0xMCByb3VuZGVkLWZ1bGwiPjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIHJ0KGUpe3ZhciB0PW50KCksbj1hKHQpO3R0KGEobikse30pLEYobiksRih0KSxaKGUsdCl9dmFyIGl0PWQoYDxkaXYgY2xhc3M9ImZsZXgiPjxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHBsLTQgcHItMSI+IDwvZGl2PiA8IT48L2Rpdj5gKTtmdW5jdGlvbiBhdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oaixgJHRgLHIpLFtyLGldPU8oKSxvPWZlKCk7aygoKT0+e2xldCBlPU1hdGguY2VpbCh3KG8pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtVZS5zZXQoZSl9KSxJKCk7dmFyIHM9aXQoKSxjPWEocyksbD1hKGMsITApO0YoYykscnQobShjLDIpLHt9KSxGKHMpLEoocyxlPT5mKG8sZSksKCk9PncobykpLHYoZT0+e1coYyxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0QnV0dG9uVGV4dCksbGUobCxlKX0sWygpPT5uKCkoYGJ1dHRvbi5ncmVldGluZ2ApXSksWihlLHMpLEIoKSxpKCl9dmFyIG90PWQoYDxkaXYgaWQ9IndpZGdldC1vbmxpbmUtYmFkZ2UiIGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgdy0yIGgtMiBwLTEuNSBiZy1ncmVlbi00MDAgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci13aGl0ZSI+PC9kaXY+YCk7ZnVuY3Rpb24gc3QoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGtlLGAkaXNXaWRnZXRPbmxpbmVgLHIpLFtyLGldPU8oKTtJKCk7dmFyIGE9VCgpLG89RChhKSxzPWU9Pnt2YXIgdD1vdCgpO3YoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0T25saW5lQmFkZ2UpKSxLKDMsdCwoKT0+QmUpLFooZSx0KX07UChvLGU9PntuKCkmJmUocyl9KSxaKGUsYSksQigpLGkoKX12YXIgY3Q9ZChgPGRpdiBpZD0id2lkZ2V0LXVucmVhZC1tZXNzYWdlcy1iYWRnZSIgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgbWluLXctNSBoLTUgZmxleC1jZW50ZXIgcHgtMSB0ZXh0LXdoaXRlIGJnLXJlZC02MDAgdGV4dC14cyByb3VuZGVkLWZ1bGwgc2hhZG93Ij4gPC9kaXY+YCk7ZnVuY3Rpb24gbHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKGhlLGAkdW5yZWFkTWVzc2FnZXNDb3VudGAsciksW3IsaV09TygpLG89QSgoKT0+bigpPjApO3ZhciBzPVQoKSxjPUQocyksbD1lPT57dmFyIHQ9Y3QoKSxyPWEodCwhMCk7Rih0KSx2KCgpPT57Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRVbnJlYWRNZXNzYWdlc0JhZGdlKSxsZShyLG4oKT45OT9gOTkrYDpuKCkpfSksSygzLHQsKCk9PkJlKSxaKGUsdCl9O1AoYyxlPT57dyhvKSYmZShsKX0pLFooZSxzKSxCKCksaSgpfXZhciB1dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgdy1mdWxsIGZpeGVkIGZsZXgganVzdGlmeS1lbmQgYm9yZGVyLXJvdW5kZWQtZnVsbCI+PGRpdiByb2xlPSJidXR0b24iIGNsYXNzPSJncm91cCBmbGV4LWNlbnRlciB3LWZ1bGwgYmctcHJpbWFyeS1ncmFkaWVudCBiZy1wcmltYXJ5LWdyYWRpZW50LWhvdmVyIHRleHQtcHJpbWFyeS1jb250ZW50IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXIgY29udGVudC1mb2N1cy1zZWNvbmRhcnkiPjwhPiA8IT48L2Rpdj4gPCE+PC9kaXY+YCk7ZnVuY3Rpb24gZHQoZSxuKXtOKG4sITEpO2xldCBpPSgpPT5NKGosYCR0YCxzKSxvPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLFtzLGNdPU8oKTtJKCk7dmFyIGw9dXQoKSx1PWEobCk7Vyh1LGB0YWJpbmRleGAsMCk7dmFyIGQ9YSh1KSxmPWU9Pnt0dChlLHt9KX0scD1lPT57YXQoZSx7fSl9O1AoZCxlPT57bygpP2UoZik6ZShwLC0xKX0pLHN0KG0oZCwyKSx7fSksRih1KSxsdChtKHUsMikse30pLEYobCksdihlPT57Vyh1LGBhcmlhLWxhYmVsYCxlKSxXKHUsYGRhdGEtdGVzdGlkYCxHLndpZGdldEJ1dHRvbil9LFsoKT0+aSgpKGBhcmlhTGFiZWwub3BlbkNoYXRgKV0pLHQoYGNsaWNrYCx1LCgpPT5zZSgpKSxWKGBrZXlwcmVzc2AsdSxlPT5lLmtleT09PXIuRW50ZXImJnNlKCkpLFooZSxsKSxCKCksYygpfUFlKFtgY2xpY2tgXSk7dmFyIGZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gcHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKFNlLGAkYnV0dG9uRnJhbWVXaWR0aGAscykscj0oKT0+TSh0ZSxgJHNob3VsZFJlbmRlckJ1dHRvbkZyYW1lYCxzKSxpPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLG89KCk9Pk0oaixgJHRgLHMpLFtzLGNdPU8oKSxsPXgodm9pZCAwKSxkPWU9Pnt3KGwpJiYodyhsKS5zdHlsZS53aWR0aD1gJHtlfXB4YCl9LHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6cH09RS5nZXRPcHRpb25zKCk7QygoKT0+e3cobCkmJmQobigpKX0pO3ZhciBtPVQoKSxoPUQobSksZz1lPT57dmFyIHQ9ZnQoKTtsZXQgbjtxZShhKHQpLCgpPT5pKCl8fG8oKSxlPT57e2xldCB0PUEoWCk7UShlLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIGR0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRCdXR0b25GcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgYnV0dG9uYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KHQpfX0pfX0pLEYodCksSih0LGU9PmYobCxlKSwoKT0+dyhsKSksTCh0LGU9PktlPy4oZSkpLHYoZT0+e249SCh0LGBib3JkZXItcmFkaXVzOiA5OTk5cHg7IGJveC1zaGFkb3c6IHJnYigwIDAgMCAvIDYlKSAwcHggMXB4IDZweCwgcmdiKDAgMCAwIC8gJHtwPy5saW1pdFNoYWRvdz9gMjAlKSAwcHggMnB4IDEycHhgOmAxMiUpIDBweCAycHggMzJweGB9OyBjb2xvci1zY2hlbWU6IG5vcm1hbDtgLG4sZSksVyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRCdXR0b25GcmFtZSl9LFsoKT0+KHtoZWlnaHQ6dSg1Nil9KV0pLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZGVsYXk6MTUwLGR1cmF0aW9uOjMwMH0pKSxLKDIsdCwoKT0+YmUsKCk9Pih7ZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChoLGU9PntyKCkmJmUoZyl9KSxaKGUsbSksQigpLGMoKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkluaXRpYWxpemVkPTBdPWBJbml0aWFsaXplZGAsZVtlLkxvYWRpbmc9MV09YExvYWRpbmdgLGVbZS5TdWNjZXNzPTJdPWBTdWNjZXNzYCxlW2UuRXJyb3I9M109YEVycm9yYCxlfSh7fSksbXQ9bmV3IE1hcCxodD1hc3luYyBlPT57bGV0IHQ9KGF3YWl0IGUoKSkuZGVmYXVsdDtyZXR1cm4gbXQuc2V0KGUsdCksdH07ZnVuY3Rpb24gZ3QoZSx0KXtOKHQsITApO2xldCBuPXZlKHQsYGRlbGF5YCwzLDIwMCkscj14KGRlKCQuSW5pdGlhbGl6ZWQpKSxpPXgodm9pZCAwKSxhPXgodm9pZCAwKSxvPXgodm9pZCAwKSxzPUEoKCk9PncoaSkpLGM9KCk9Pnt3aW5kb3cuY2xlYXJUaW1lb3V0KHcobykpfSxsPWFzeW5jKCk9PntjKCksZihhLHZvaWQgMCksZihpLHZvaWQgMCksbigpPjA/KGYociwkLkluaXRpYWxpemVkLCEwKSxmKG8sd2luZG93LnNldFRpbWVvdXQoKCk9PntmKHIsJC5Mb2FkaW5nLCEwKX0sbigpKSwhMCkpOmYociwkLkxvYWRpbmcsITApO3RyeXtmKGksYXdhaXQgaHQodC5sb2FkZXIpLCEwKSxmKHIsJC5TdWNjZXNzLCEwKX1jYXRjaChlKXtpZihmKHIsJC5FcnJvciwhMCksZSBpbnN0YW5jZW9mIEVycm9yKWYoYSxlLCEwKTtlbHNlIHRocm93IGV9YygpfTttdC5oYXModC5sb2FkZXIpPyhmKHIsJC5TdWNjZXNzLCEwKSxmKGksbXQuZ2V0KHQubG9hZGVyKSwhMCkpOmsoKCk9PntsKCl9KTt2YXIgdT1UKCksZD1EKHUpLHA9ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQuZXJyb3IsKCk9Pih7ZXJyb3I6dyhhKX0pKSxaKGUsbil9LG09ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQubG9hZGluZyksWihlLG4pfSxoPWU9Pnt2YXIgdD1UKCk7RmUoRCh0KSwoKT0+dyhzKSwoZSx0KT0+e3QoZSx7fSl9KSxaKGUsdCl9O1AoZCxlPT57dyhyKT09PSQuRXJyb3ImJnQuZXJyb3I/ZShwKTp3KHIpPT09JC5Mb2FkaW5nP2UobSwxKTp3KHIpPT09JC5TdWNjZXNzJiZlKGgsMil9KSxaKGUsdSksQigpfXZhciBfdD0oKT0+YWUoKCk9PmltcG9ydChgLi9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanNgKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSksaW1wb3J0Lm1ldGEudXJsKSx2dD1lPT57dmFyIHQ9YnQoKSxuPWEodCkscj1hKG4pO3EoYShyKSx7c2l6ZTozMn0pLEYocik7dmFyIGk9bShyLDIpLG89YShpKTtxKG8se3NpemU6MzJ9KTt2YXIgcz1tKG8sMik7cShzLHtzaXplOjMyfSkscShtKHMsMikse3NpemU6MzJ9KSxGKGkpLEYobik7dmFyIGM9bShuLDIpLGw9YShjKTtxKGEobCkse3NpemU6NDR9KSxGKGwpO3ZhciB1PW0obCwyKSxkPWEodSk7eihkLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSkseihtKGQsMikse2hlaWdodDoyMCx3aWR0aDoxMjJ9KSxGKHUpLEYoYyk7dmFyIGY9bShjLDIpLHA9YShmKTtxKGEocCkse3NpemU6Mjh9KSxGKHApO3ZhciBoPW0ocCwyKTt6KGEoaCkse2hlaWdodDoxMTIsd2lkdGg6Mjk1LHJvdW5kZWRTdHlsZTpgcm91bmRlZC02YH0pLEYoaCksRihmKTt2YXIgZz1tKGYsMiksXz1hKGcpO3ooXyx7aGVpZ2h0OjMyLHdpZHRoOjI5NX0pO3ZhciB2PW0oXywyKTt6KHYse2hlaWdodDozMix3aWR0aDoxNDh9KSx6KG0odiwyKSx7aGVpZ2h0OjMyLHdpZHRoOjIyNH0pLEYoZyksRih0KSxaKGUsdCl9LHl0PShlLHQpPT57bGV0IG49KCk9PnQ/LigpLmVycm9yO3ZhciByPXh0KCksaT1tKGEociksMiksbz1hKGksITApO0YoaSksRihyKSx2KCgpPT5sZShvLG4oKSkpLFooZSxyKX0sYnQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSIgaWQ9IlRPRE8gdGVzdCI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXgiPjwhPjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtMiI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBtdC0yIj48ZGl2IGNsYXNzPSJmbGV4IG1sLTEgbXItMiI+PCE+PC9kaXY+IDxkaXYgY2xhc3M9ImZsZXgtYm90dG9tIHNwYWNlLXktMiI+PCE+IDwhPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWJhc2VsaW5lIG10LTgiPjxkaXYgY2xhc3M9ImZsZXggbWwtMSBtci0yIj48IT48L2Rpdj4gPGRpdiBjbGFzcz0ic3BhY2UteS0yIj48IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgc3BhY2UteS01IG10LTggbXItMSI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj5gKSx4dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgcC00IGJnLXdoaXRlIHRleHQtcmVkLTUwMCI+PGRpdiBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQiPkZhaWxlZCB0byBsb2FkIHdpZGdldDwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIj4gPC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gU3QoZSl7Z3QoZSx7Z2V0IGxvYWRlcigpe3JldHVybiBfdH0sZGVsYXk6MCxnZXQgZXJyb3IoKXtyZXR1cm4geXR9LGdldCBsb2FkaW5nKCl7cmV0dXJuIHZ0fX0pfXZhciBDdD1kKGA8ZGl2PjwhPjwvZGl2PmApO2Z1bmN0aW9uIHd0KGUsdCl7Tih0LCEwKTtsZXQgcj0oKT0+TShqZSxgJGlzRnVsbFNjcmVlbkVuYWJsZWRgLGwpLG89KCk9Pk0oUGUsYCRpc01lc3NlbmdlckZyYW1lRXhwYW5kZWRgLGwpLHM9KCk9Pk0obixgJGlzTW9iaWxlRGV2aWNlYCxsKSxjPSgpPT5NKGksYCRzaG91bGRSZW5kZXJNZXNzZW5nZXJGcmFtZWAsbCksW2wsZF09TygpLG09eCh2b2lkIDApLGc9YE1vYmlsZVdpZGdldE1lc3Nlbmdlck9wZW5gLF89KGUsdCk9PntpZighdyhtKSlyZXR1cm47bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1FLmdldE9wdGlvbnMoKSx7d2lkdGg6cixoZWlnaHQ6aX09dWUoZSx0KTt3KG0pLnN0eWxlLm1heEhlaWdodD1oKGkpP2k6dShpKSx3KG0pLnN0eWxlLndpZHRoPWgocik/cjp1KHIpLHcobSkuc3R5bGUuaGVpZ2h0PWV8fG4/LmhlYWRsZXNzTW9kZT9gMTAwJWA6YGNhbGMoMTAwJSAtIDQwcHgpYH07QygoKT0+e3cobSkmJl8ocigpLG8oKSl9KTtsZXQgeT14KCExKTtDKCgpPT57aWYocygpKXtpZihjKCkmJiF3KHkpKXtsZXQgZT1wKCkuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtlLnRleHRDb250ZW50PWAqIHtvdmVyZmxvdzogaGlkZGVufWAsZS5jbGFzc05hbWU9ZyxwKCkuaGVhZC5hcHBlbmRDaGlsZChlKSxmKHksITApfWlmKCFjKCkmJncoeSkpe2xldCBlPXAoKS5oZWFkLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspcCgpLmhlYWQucmVtb3ZlQ2hpbGQoZVt0XSk7Zih5LCExKX19fSk7dmFyIGI9VCgpLFM9RChiKSxlZT1lPT57dmFyIHQ9Q3QoKTtIKHQsYGAse30se3RyYW5zaXRpb246YG1heC1oZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQsIHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0YCxvdmVyZmxvdzpgaGlkZGVuYH0pO3ZhciBuPWEodCk7e2xldCBlPUEoWCk7UShuLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIFN0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRNZXNzZW5nZXJGcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgbWVzc2VuZ2VyYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LChlLHQpPT54ZT8uKGUsdCksciksSih0LGU9PmYobSxlKSwoKT0+dyhtKSksdigoKT0+Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRNZXNzZW5nZXJGcmFtZSkpLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZHVyYXRpb246MjAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MTUwfSkpLFooZSx0KX07UChTLGU9PntjKCkmJmUoZWUpfSksWihlLGIpLEIoKSxkKCl9dmFyIFR0PSgpPT5hZSgoKT0+aW1wb3J0KGAuL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzYCksX192aXRlX19tYXBEZXBzKFszLDEsMl0pLGltcG9ydC5tZXRhLnVybCksRXQ9ZT0+e3ZhciB0PUR0KCksbj1hKHQpO3Eobix7c2l6ZTo0NH0pO3ZhciByPW0obiwyKSxpPWEocik7eihpLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSk7dmFyIG89bShpLDIpO3oobyx7aGVpZ2h0OjIwLHdpZHRoOjI3MH0pLHoobShvLDIpLHtoZWlnaHQ6MjAsd2lkdGg6MTIyfSksRihyKSxGKHQpLFooZSx0KX0sRHQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSI+PCE+IDxkaXYgY2xhc3M9Im10LTQgc3BhY2UteS0yIj48IT4gPCE+IDwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIE90KGUpe2d0KGUse2dldCBsb2FkZXIoKXtyZXR1cm4gVHR9LGRlbGF5OjAsZ2V0IGxvYWRpbmcoKXtyZXR1cm4gRXR9fSl9dmFyIGt0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gQXQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKHllLGAkcG9wdXBGcmFtZUhlaWdodGAsbykscj0oKT0+TShFZSxgJGhhc1BvcHVwRnJhbWVIb3ZlcmAsbyksaT0oKT0+TShPZSxgJHNob3VsZFJlbmRlclBvcHVwRnJhbWVgLG8pLFtvLHNdPU8oKSxjPXgodm9pZCAwKSxsPWU9Pnt3KGMpJiYodyhjKS5zdHlsZS5tYXhIZWlnaHQ9YCR7ZX1weGApfSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOmR9PUUuZ2V0T3B0aW9ucygpO0MoKCk9Pnt3KGMpJiZsKG4oKSl9KTtsZXQgcD1BKCgpPT5yKCk/LjI4Oi4xNik7dmFyIG09VCgpLGg9RChtKSxnPWU9Pnt2YXIgdD1rdCgpO2xldCBuO3ZhciByPWEodCk7e2xldCBlPUEoWCk7UShyLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIE90fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRQb3B1cEZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBwb3B1cGAsZ2V0IGZyYW1lU3R5bGUoKXtyZXR1cm4gdyhlKX19KX1GKHQpLEoodCxlPT5mKGMsZSksKCk9PncoYykpLEwodCxlPT5jZT8uKGUpKSx2KGU9PntuPUgodCxgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0LCBtYXgtaGVpZ2h0IDI1MG1zIGVhc2UtaW4tb3V0YCxuLGUpLFcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0UG9wdXBGcmFtZSl9LFsoKT0+KHt3aWR0aDp1KDMwMCksImJvcmRlci1yYWRpdXMiOnUoMjApLG92ZXJmbG93OmBoaWRkZW5gLCJib3gtc2hhZG93IjpgcmdiYSgwLCAwLCAwLCAke2Q/LmxpbWl0U2hhZG93P2AwLjIpIDBweCAzcHggMTJweGA6YCR7dyhwKX0pIDBweCAzcHggMTZweGB9YH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246NDAwfSkpLFooZSx0KX07UChoLGU9PntpKCkmJmUoZyl9KSxaKGUsbSksQigpLHMoKX12YXIganQ9ZChgPGRpdiBjbGFzcz0iZmxleCBwLTIiPjxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gTXQoZSx0KXtsZXQgbj12ZSh0LGBzaXplYCwzLGBtZGApLHI9dmUodCxgY29sb3JgLDMsYGJsYWNrYCksaT1BKCgpPT50Lml0ZXJhdGlvbnM/P2BpbmZpbml0ZWApO3ZhciBvPWp0KCkscz1hKG8pO2xldCBjO3ZhciBsPW0ocywyKTtsZXQgdTt2YXIgZD1tKGwsMik7bGV0IGY7RihvKSx2KCgpPT57WShzLDEsYHR5cGluZy1pbmRpY2F0b3IgJHtuKCl9IGluZGljYXRvci1jb2xvci0ke3IoKX0gYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksYz1IKHMsYGAsYyx7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KSxZKGwsMSxgdHlwaW5nLWluZGljYXRvciAke24oKX0gaW5kaWNhdG9yLWNvbG9yLSR7cigpfSB0eXBpbmctaW5kaWNhdG9yLXNlY29uZCBhbmltYXRlLXR5cGluZ2AsYHN2ZWx0ZS1zNDB4Z2tgKSx1PUgobCxgYCx1LHsiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCI6dyhpKX0pLFkoZCwxLGB0eXBpbmctaW5kaWNhdG9yICR7bigpfSBpbmRpY2F0b3ItY29sb3ItJHtyKCl9IHR5cGluZy1pbmRpY2F0b3ItdGhpcmQgYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksZj1IKGQsYGAsZix7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KX0pLFooZSxvKX12YXIgTnQ9ZChgPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgaC1mdWxsIGJnLXdoaXRlIHJvdW5kZWQtbGciPjwhPjwvZGl2PmApO2Z1bmN0aW9uIFB0KGUpe3ZhciB0PU50KCk7TXQoYSh0KSx7aXRlcmF0aW9uczoyfSksRih0KSxaKGUsdCl9dmFyIEZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gSXQoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGVlLGAkc2hvdWxkUmVuZGVyVHlwaW5nRnJhbWVgLHIpLFtyLGldPU8oKSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnN9PUUuZ2V0T3B0aW9ucygpO0koKTt2YXIgYz1UKCksbD1EKGMpLGQ9ZT0+e3ZhciB0PUZ0KCk7bGV0IG47dmFyIHI9YSh0KTt7bGV0IGU9YihYKTtRKHIse2dldCBjb21wb25lbnQoKXtyZXR1cm4gUHR9LGdldCBpZCgpe3JldHVybiBHLndpZGdldFR5cGluZ0ZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCB0eXBpbmdgLGdldCBmcmFtZVN0eWxlKCl7cmV0dXJuIHcoZSl9fSl9Rih0KSxMKHQsZT0+bz8uKGUpKSx2KGU9PntuPUgodCxgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpICR7cz8ubGltaXRTaGFkb3c/YDBweCAzcHggMTJweGA6YDBweCAzcHggMTZweGB9OyBib3JkZXItcmFkaXVzOiAyNHB4O2AsbixlKSxXKHQsYGRhdGEtdGVzdGlkYCxHLndpZGdldFR5cGluZ0ZyYW1lKX0sWygpPT4oe2hlaWdodDp1KDQwKSx3aWR0aDp1KDcwKSxvdmVyZmxvdzpgaGlkZGVuYH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChsLGU9PntuKCkmJmUoZCl9KSxaKGUsYyksQigpLGkoKX12YXIgTHQ9TGUobnVsbCksUnQ9VGUoW0x0XSwoW2VdKT0+ISFlKSx6dD1kKGA8aW1nIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIHNlbGVjdC1ub25lIGJnLWJsYWNrIiB3aWR0aD0iYXV0byIgaGVpZ2h0PSJhdXRvIi8+YCksQnQ9ZChgPHZpZGVvIGNvbnRyb2xzPSIiIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIGJnLWJsYWNrIG9iamVjdC1jb250YWluIj48dHJhY2sga2luZD0iY2FwdGlvbnMiLz4gPHNvdXJjZS8+PC92aWRlbz5gLDIpLFZ0PWQoYDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCI+PGRpdiBjbGFzcz0iZmxleC1zaHJpbmsgZmxleCBmbGV4LXJvdyB3LWZ1bGwgYmctYmxhY2sgdGV4dC13aGl0ZSI+PGRpdiBjbGFzcz0iZmxleC1ncm93IGZsZXggaXRlbXMtY2VudGVyIHRleHQtbWQgcHgtNCBvdmVyZmxvdy1oaWRkZW4iPjxzcGFuIGNsYXNzPSJ3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiI+IDwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleC1zaHJpbmsiPjwhPjwvZGl2PjwvZGl2PiA8ZGl2PjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIEh0KGUsbil7TihuLCEwKTtsZXQgcj0oKT0+TShyZSxgJGlzRGVza3RvcGAscyksaT0oKT0+TShMdCxgJHByZXZpZXdlZE1lZGlhYCxzKSxvPSgpPT5NKGosYCR0YCxzKSxbcyxjXT1PKCksbD1BKHIpLHU9ZT0+e2U9PT1gb3ZlcmxheWAmJiF3KGwpfHxMdC5zZXQobnVsbCl9O3ZhciBkPVZ0KCksZj1hKGQpLHA9YShmKSxoPWEocCksZz1hKGgsITApO0YoaCksRihwKTt2YXIgXz1tKHAsMikseT1hKF8pO3tsZXQgZT1BKCgpPT5vKCkoYHRvb2x0aXAuY2xvc2VgKSk7VmUoeSx7b25DbGljazooKT0+dShgYnV0dG9uYCksZ2V0IGljb24oKXtyZXR1cm4gSWV9LGdldCBpY29uRGVzY3JpcHRpb24oKXtyZXR1cm4gdyhlKX0saWNvblNjYWxlOiEwLHNpemU6YHhsYH0pfUYoXyksRihmKTt2YXIgYj1tKGYsMikseD1hKGIpLFM9ZT0+e3ZhciBuPXp0KCk7digoKT0+e1cobixgc3JjYCxpKCk/LmF0dGFjaG1lbnQudXJsKSxXKG4sYGFsdGAsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKX0pLHQoYGNsaWNrYCxuLGU9PmUuc3RvcFByb3BhZ2F0aW9uKCkpLFYoYGtleXByZXNzYCxuLCgpPT57fSksWihlLG4pfSxDPWU9Pnt2YXIgbj1CdCgpO24uYXV0b3BsYXk9ITAsbi5sb29wPSEwO3ZhciByPW0oYShuKSwyKTtGKG4pLHYoKCk9Plcocixgc3JjYCxpKCkuYXR0YWNobWVudC51cmwpKSx0KGBjbGlja2AsbixlPT5lLnN0b3BQcm9wYWdhdGlvbigpKSxWKGBrZXlwcmVzc2AsbiwoKT0+e30pLFooZSxuKX07UCh4LGU9PntpKCk/LnR5cGU9PT13ZS5JbWFnZT9lKFMpOmkoKT8udHlwZT09PXdlLlZpZGVvJiZlKEMsMSl9KSxGKGIpLEYoZCksdigoKT0+e2xlKGcsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKSxZKGIsMSxDZShbYHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBmbGV4LWdyb3cgZmxleCBpdGVtcy1jZW50ZXIgYmctYmxhY2svODAgei0xMGAscigpP2BwLThgOmBwLTRgXSkpfSksdChgY2xpY2tgLGIsKCk9PnUoYG92ZXJsYXlgKSksVihga2V5cHJlc3NgLGIsKCk9Pnt9KSxLKDEsZCwoKT0+VSwoKT0+KHt5OjIwLGRlbGF5OjMwMCxkdXJhdGlvbjo0MDB9KSksSygyLGQsKCk9PlUsKCk9Pih7eToxMCxkdXJhdGlvbjoyNTB9KSksWihlLGQpLEIoKSxjKCl9QWUoW2BjbGlja2BdKTt2YXIgVXQ9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBXdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oUnQsYCRzaG91bGRSZW5kZXJNZWRpYVByZXZpZXdgLHIpLFtyLGldPU8oKTtJKCk7dmFyIG89VCgpLHM9RChvKSxjPWU9Pnt2YXIgdD1VdCgpO0godCxgYCx7fSx7dHJhbnNpdGlvbjpgbWF4LWhlaWdodCAyNTBtcyBlYXNlLWluLW91dCwgd2lkdGggMjUwbXMgZWFzZS1pbi1vdXRgfSk7dmFyIG49YSh0KTt7bGV0IGU9YigoKT0+WChlPT57ZS5zdHlsZS5wb3NpdGlvbj1gZml4ZWRgfSkpO1Eobix7Z2V0IGNvbXBvbmVudCgpe3JldHVybiBIdH0sZ2V0IGlkKCl7cmV0dXJuIEcud2lkZ2V0SW1hZ2VQcmV2aWV3fSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBpbWFnZSBwcmV2aWV3YCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LGU9PldlPy4oZSkpLHYoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0SW1hZ2VQcmV2aWV3KSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheToxMDAsZHVyYXRpb246MjUwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChzLGU9PntuKCkmJmUoYyl9KSxaKGUsbyksQigpLGkoKX12YXIgR3Q9ZChgPCE+IDwhPiA8IT4gPCE+IDwhPmAsMSk7ZnVuY3Rpb24gS3QodCxyKXtOKHIsITApO2xldCBpPSgpPT5NKG1lLGAkbGFzdFVucmVhZE1lc3NhZ2VgLG8pLGE9KCk9Pk0oXyxgJGlzTWVzc2VuZ2VyRnJhbWVPcGVuYCxvKSxbbyxzXT1PKCk7aygoKT0+eyhhc3luYygpPT57YXdhaXQgemUoKSxhd2FpdCBwZS5pbml0Q2xpZW50KCl9KSgpfSksQygoKT0+e2koKSYmIWEoKSYmZSgpfSksZ2UoUygpKSxIZShuKSYmeShTKCkpLFllKHQse2NoaWxkcmVuOihlLHQpPT57dmFyIG49R3QoKSxyPUQobik7SXQocix7fSk7dmFyIGk9bShyLDIpO0F0KGkse30pO3ZhciBhPW0oaSwyKTtwdChhLHt9KTt2YXIgbz1tKGEsMik7d3Qobyx7fSksV3QobShvLDIpLHt9KSxaKGUsbil9LCQkc2xvdHM6e2RlZmF1bHQ6ITB9fSksQigpLHMoKX12YXIgcXQ9Zyh3aW5kb3cpO0UuaW5pdChxdC5vcHRpb25zKSxxdC5pbnN0YWxsQXBpKE1lKSxjLnNldFRoZW1lQ29sb3IocXQub3B0aW9ucyksUmUoKSxvZSgpLEdlKEt0LHt0YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGFwcGApfSk7ZXhwb3J0e010IGFzIG4sTHQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4tQi1WSGMxSzQuanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/09/Layer_1.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.035Z","timestamp":1785145405035,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/09/Layer_1.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 414\r\nx-accel-version: 0.01\r\nlast-modified: Mon, 05 Aug 2024 11:53:13 GMT\r\netag: \"19e-61eee525adc40\"\r\naccept-ranges: bytes\r\nx-powered-by: PleskLin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":414,"size_decoded":693,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"778a38084e900691b2f406f5ea71e67a","sha1":"b991e865d4c2d7352eb5b0920064a00274c05e18","sha256":"54a3c81abbde40fb1af12d3568f900beca2063303f5413e55b09b19c389278f7","sha512":"c0eb96955c8dd8c20b125ec59702ca8d76635927d79a48e028e7024ccca13e45b04926960e9548d906364768a8e880d3e670de39edce03bd066a0d03ffb3e3fc","ssdeep":"","tlshash":"b5e0ab8cd74ca5908148c72077f4cb48e2b180c260c210dde8c02d2a9516af23e003fd","first_seen":"2026-07-27T07:14:06.844934Z","last_seen":"2026-07-27T14:04:41.06424Z","times_seen":5,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIgogICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIENyZWF0ZWQgd2l0aCBJbmtwYWQgKGh0dHA6Ly93d3cudGFwdHJpeC5jb20vKSAtLT48c3ZnIHhtbG5zOmlua3BhZD0iaHR0cDovL3RhcHRyaXguY29tL2lua3BhZC9zdmdfZXh0ZW5zaW9ucyIgaGVpZ2h0PSIxMTNwdCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjQ5N3B0IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAsMCw0OTcsMTEzIj4KPGRlZnMvPgo8L3N2Zz4K"}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":105,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-4.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.045Z","timestamp":1785145405045,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-4.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 4029\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-fbd\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":4029,"size_decoded":4281,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"79568dd5267a7c1438333a4d10d165f4","sha1":"f318cc30d7b8c5d72ece12e1e883624aa65d66dc","sha256":"90ef650a1fdae66aaaf3ba4b8e7dee01d82866a726abe02614003a3c1b258e3f","sha512":"1f833ff65f5dad4080f2f3533e4060023679d98e19f40870a45103e2ba6dc6c52de5c93dbb9c3f9dd8198fe23903663107a4a8d5ec038a626da744b37e84c7f7","ssdeep":"","tlshash":"8581a7fbf1ede295660bdbb9e86f7472679a34fd2f87d45403c19aa0ba0010c9548d03","first_seen":"2026-05-20T00:20:36.62096Z","last_seen":"2026-07-27T14:04:41.095619Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNyIgaGVpZ2h0PSI0MSIgdmlld0JveD0iMCAwIDM3IDQxIiBmaWxsPSJub25lIj48ZyBpZD0iTGF5ZXJfMSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjg4NzQpIj48cGF0aCBpZD0iVmVjdG9yIiBkPSJNOS4zNDYxMSAyOS43MDMxSDEuNzE0ODRDMS4yODk0IDI5LjcwMzEgMC45NTcwMzEgMzAuMDM1NSAwLjk1NzAzMSAzMC40NjA5VjM5LjU5NDVDMC45NTcwMzEgNDAuMDIgMS4yODk0IDQwLjM1MjMgMS43MTQ4NCA0MC4zNTIzSDkuMzQ2MTFDOS43NzE1NSA0MC4zNTIzIDEwLjEwMzkgNDAuMDIgMTAuMTAzOSAzOS41OTQ1VjMwLjQ2MDlDMTAuMTAzOSAzMC4wMzU1IDkuNzcxNTUgMjkuNzAzMSA5LjM0NjExIDI5LjcwMzFaTTguNTg4MyAzOC44MzY3SDIuNDcyNjVWMzEuMjMySDguNTc1VjM4LjgzNjdIOC41ODgzWiIgZmlsbD0iIzM2NTNBNyI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfMiIgZD0iTTIyLjMyMjcgNDAuMzQ3NkMyMi43NDgxIDQwLjM0NzYgMjMuMDgwNSA0MC4wMTUzIDIzLjA4MDUgMzkuNTg5OFYyMS4zMzU5QzIzLjA4MDUgMjAuOTEwNSAyMi43NDgxIDIwLjU3ODEgMjIuMzIyNyAyMC41NzgxSDE0LjY5MTRDMTQuMjY2IDIwLjU3ODEgMTMuOTMzNiAyMC45MTA1IDEzLjkzMzYgMjEuMzM1OVYzOS41ODk4QzEzLjkzMzYgNDAuMDE1MyAxNC4yNjYgNDAuMzQ3NiAxNC42OTE0IDQwLjM0NzZIMjIuMzIyN1pNMTUuNDQ5MiAyMi4wOTM3SDIxLjU1MTZWMzguODE4N0gxNS40NDkyVjIyLjA5MzdaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl8zIiBkPSJNMjcuNjUzMyA0MC4zNDk5SDM1LjI4NDZDMzUuNzEgNDAuMzQ5OSAzNi4wNDI0IDQwLjAxNzYgMzYuMDQyNCAzOS41OTIxVjEzLjY0MDVDMzYuMDQyNCAxMy4yMTUxIDM1LjcxIDEyLjg4MjcgMzUuMjg0NiAxMi44ODI3SDI3LjY1MzNDMjcuMjI3OSAxMi44ODI3IDI2Ljg5NTUgMTMuMjE1MSAyNi44OTU1IDEzLjY0MDVWMzkuNTkyMUMyNi44OTU1IDQwLjAxNzYgMjcuMjI3OSA0MC4zNDk5IDI3LjY1MzMgNDAuMzQ5OVpNMjguNDExMSAxNC4zOTgzSDM0LjUxMzVWMzguODIxSDI4LjQxMTFWMTQuMzk4M1oiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48cGF0aCBpZD0iVmVjdG9yXzQiIGQ9Ik0xLjM0MzE2IDI2LjU1MDdDMS41NDI1OSAyNi41NTA3IDEuNzQyMDEgMjYuNDcxIDEuODc0OTYgMjYuMzI0N0wxNS44MjEzIDEyLjM5MTdMMjAuMjc1MSAxNi44NDU1QzIwLjU4MDkgMTcuMTUxMiAyMS4wNTk1IDE3LjE1MTIgMjEuMzY1MyAxNi44NDU1TDM0LjY2MDIgMy41MzcyN0wzNC4wNzUyIDkuMjAwODlDMzQuMDM1MyA5LjYxMzAzIDM0LjM0MTEgOS45OTg1OSAzNC43NjY1IDEwLjAzODVIMzQuODQ2M0MzNS4yMzE5IDEwLjAzODUgMzUuNTY0MiA5Ljc0NTk4IDM1LjYwNDEgOS4zNDcxNEwzNi40MTUxIDEuNTQzMDNWMS41MTY0NEMzNi40MTUxIDEuNDM2NjcgMzYuNDAxOCAxLjM3MDIgMzYuMzg4NSAxLjMwMzczQzM2LjM4ODUgMS4yNzcxNCAzNi4zODg1IDEuMjM3MjUgMzYuMzc1MiAxLjIxMDY2QzM2LjM0ODYgMS4xMTc2IDM2LjI4MjIgMS4wMTEyNCAzNi4yMDI0IDAuOTMxNDY4QzM2LjEyMjYgMC44NTE2OTkgMzYuMDE2MyAwLjc5ODUxOSAzNS45MjMyIDAuNzU4NjM1QzM1Ljg5NjYgMC43NDUzNCAzNS44ODMzIDAuNzQ1MzQgMzUuODQzNCAwLjc0NTM0QzM1Ljc2MzcgMC43MzIwNDUgMzUuNjk3MiAwLjcxODc1IDM1LjYxNzQgMC43MTg3NUgzNS41OTA4TDI3Ljc4NjcgMS41Mjk3NEMyNy4zNzQ2IDEuNTY5NjIgMjcuMDY4OCAxLjk0MTg4IDI3LjA5NTQgMi4zNjczMkMyNy4xMzUzIDIuNzc5NDYgMjcuNTA3NSAzLjA4NTI0IDI3LjkzMyAzLjA1ODY1TDMzLjU5NjYgMi40NzM2OEwyMC44MzM1IDE1LjI1MDFMMTYuMzc5NyAxMC43OTYzQzE2LjA4NzIgMTAuNTAzOCAxNS41ODIgMTAuNTAzOCAxNS4yODk1IDEwLjc5NjNMMC44MTEzNjggMjUuMjg3N0MwLjUwNTU4NiAyNS41OTM1IDAuNTA1NTg2IDI2LjA3MjEgMC44MTEzNjggMjYuMzc3OUMwLjk1NzYxMiAyNi40OTc1IDEuMTQzNzQgMjYuNTY0IDEuMzQzMTYgMjYuNTY0VjI2LjU1MDdaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl81IiBkPSJNOS42MjU0OSAxOC42Mjc5QzE0LjYxODQgMTguNjI3OSAxOC42NjYgMTQuNTgwMyAxOC42NjYgOS41ODc0QzE4LjY2NiA0LjU5NDQ2IDE0LjYxODQgMC41NDY4NzUgOS42MjU0OSAwLjU0Njg3NUM0LjYzMjU0IDAuNTQ2ODc1IDAuNTg0OTYxIDQuNTk0NDYgMC41ODQ5NjEgOS41ODc0QzAuNTg0OTYxIDE0LjU4MDMgNC42MzI1NCAxOC42Mjc5IDkuNjI1NDkgMTguNjI3OVoiIGZpbGw9IiM2OENERUQiPjwvcGF0aD48ZyBpZD0iR3JvdXAiPjxwYXRoIGlkPSJWZWN0b3JfNiIgZD0iTTkuNzA1MjcgMTkuNDIzOEMxNS4wNjMxIDE5LjQyMzggMTkuNDEwNSAxNS4wNjMxIDE5LjQxMDUgOS43MTg1N0MxOS40MTA1IDQuMzc0MDIgMTUuMDYzMSAwIDkuNzA1MjcgMEM0LjM0NzQzIDAgMCA0LjM2MDczIDAgOS43MDUyN0MwIDE1LjA0OTggNC4zNjA3MyAxOS40MTA1IDkuNzA1MjcgMTkuNDEwNVYxOS40MjM4Wk05LjcwNTI3IDEuNzI4MzRDMTQuMTA1OSAxLjcyODM0IDE3LjY4MjIgNS4zMDQ2NiAxNy42ODIyIDkuNzA1MjdDMTcuNjgyMiAxNC4xMDU5IDE0LjEwNTkgMTcuNjgyMiA5LjcwNTI3IDE3LjY4MjJDNS4zMDQ2NiAxNy42ODIyIDEuNzI4MzQgMTQuMTE5MiAxLjcyODM0IDkuNzA1MjdDMS43MjgzNCA1LjI5MTM3IDUuMzA0NjYgMS43MjgzNCA5LjcwNTI3IDEuNzI4MzRaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PHBhdGggaWQ9IlZlY3Rvcl83IiBkPSJNNy44NTY5NSAxMy43MDY4SDkuMDUzNVYxNC40Nzc5QzkuMDUzNSAxNC45NTY1IDkuNDM5MDUgMTUuMzQyMSA5LjkxNzY2IDE1LjM0MjFDMTAuMzk2MyAxNS4zNDIxIDEwLjc4MTggMTQuOTU2NSAxMC43ODE4IDE0LjQ3NzlWMTMuNjY2OUMxMS45Mzg1IDEzLjQ5NDEgMTIuODQyNSAxMi41MTAyIDEyLjg0MjUgMTEuMzAwNEMxMi44NDI1IDkuOTcwOTEgMTEuNzY1NyA4Ljg5NDAzIDEwLjQzNjIgOC44OTQwM0g5LjQxMjQ2QzkuMDI2OTEgOC44OTQwMyA4LjczNDQyIDguNTg4MjUgOC43MzQ0MiA4LjEyMjkzQzguNzM0NDIgNy43MzczNyA5LjA0MDIgNy40NDQ4OSA5LjQxMjQ2IDcuNDQ0ODlIMTEuMTAwOVY3LjY1NzZDMTEuMTAwOSA4LjEzNjIyIDExLjQ4NjUgOC41MjE3NyAxMS45NjUxIDguNTIxNzdDMTIuNDQzNyA4LjUyMTc3IDEyLjgyOTIgOC4xMzYyMiAxMi44MjkyIDcuNjU3NlY2LjU4MDcyQzEyLjgyOTIgNi4xMDIxIDEyLjQ0MzcgNS43MTY1NSAxMS45NjUxIDUuNzE2NTVIMTAuNzY4NVY0LjkxODg2QzEwLjc2ODUgNC40NDAyNCAxMC4zODMgNC4wNTQ2OSA5LjkwNDM3IDQuMDU0NjlDOS40MjU3NSA0LjA1NDY5IDkuMDQwMiA0LjQ0MDI0IDkuMDQwMiA0LjkxODg2VjUuNzI5ODRDNy44ODM1NSA1LjkwMjY4IDYuOTc5NDkgNi44OTk3OSA2Ljk3OTQ5IDguMjAyNjlDNi45Nzk0OSA5LjUwNTU5IDguMDU2MzggMTAuNjA5MSA5LjM4NTg3IDEwLjYwOTFIMTAuNDA5NkMxMC43OTUxIDEwLjYwOTEgMTEuMDg3NiAxMC45MTQ5IDExLjA4NzYgMTEuMjg3MUMxMS4wODc2IDExLjY1OTQgMTAuNzgxOCAxMS45NjUxIDEwLjQwOTYgMTEuOTY1MUg4LjcyMTEyVjExLjgzMjJDOC43MjExMiAxMS4zNTM2IDguMzM1NTcgMTAuOTY4IDcuODU2OTUgMTAuOTY4QzcuMzc4MzQgMTAuOTY4IDYuOTkyNzkgMTEuMzUzNiA2Ljk5Mjc5IDExLjgzMjJWMTIuODI5M0M2Ljk5Mjc5IDEzLjMzNDUgNy4zNzgzNCAxMy43MDY4IDcuODU2OTUgMTMuNzA2OFoiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48L2c+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDBfMjM4N18yODg3NCI+PHJlY3Qgd2lkdGg9IjM2LjQyOCIgaGVpZ2h0PSI0MC4zNSIgZmlsbD0id2hpdGUiPjwvcmVjdD48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4g"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/css/dist/block-library/style.min.css?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.793Z","timestamp":1785145403793,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/css/dist/block-library/style.min.css?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-1add3\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":110035,"size_decoded":13510,"mime_type":"text/css","magic":"ASCII text, with very long lines (57084)","md5":"99ab466e0866c823ae5db517d59cebd1","sha1":"5595a586cbd42b31377681b9d35293278d75d336","sha256":"698b89c0da3d319754d6a837b5e6d4e6a42dc402d9ffd7559b8c4cb29c644340","sha512":"d19932f64adbdb1286b61d472526fe0be92e5fcdbecf9df9c9dc607d46e26f8912c74294256f1a6b56d0fb14a774679407187eed011f4b5b7008981aa52f6df6","ssdeep":"1536:iLeJ2f9Zk2u5SOV+UQ3Zo/0kxhdRVrkQzE:iLeJgk2u5SOV+UQ3Zo/0kPdvQQzE","tlshash":"03b3405413f0dcf939fba73a5e5ee248a513aa41c64a6be7e076d190614ca490cf3b0f","first_seen":"2023-11-07T23:07:41Z","last_seen":"2026-08-11T18:03:24.753673Z","times_seen":9099,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04Ijsud3AtYmxvY2stYXJjaGl2ZXN7Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay1hcmNoaXZlcy1kcm9wZG93biBsYWJlbHtkaXNwbGF5OmJsb2NrfS53cC1ibG9jay1hdmF0YXJ7bGluZS1oZWlnaHQ6MH0ud3AtYmxvY2stYXZhdGFyLC53cC1ibG9jay1hdmF0YXIgaW1ne2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stYXZhdGFyLmFsaWduY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1hdWRpb3tib3gtc2l6aW5nOmJvcmRlci1ib3h9LndwLWJsb2NrLWF1ZGlvIGZpZ2NhcHRpb257bWFyZ2luLWJvdHRvbToxZW07bWFyZ2luLXRvcDouNWVtfS53cC1ibG9jay1hdWRpbyBhdWRpb3ttaW4td2lkdGg6MzAwcHg7d2lkdGg6MTAwJX0ud3AtYmxvY2stYnV0dG9uX19saW5re2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndwLWJsb2NrLWJ1dHRvbl9fbGluay5hbGlnbmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0ud3AtYmxvY2stYnV0dG9uX19saW5rLmFsaWducmlnaHR7dGV4dC1hbGlnbjpyaWdodH06d2hlcmUoLndwLWJsb2NrLWJ1dHRvbl9fbGluayl7Ym9yZGVyLXJhZGl1czo5OTk5cHg7Ym94LXNoYWRvdzpub25lO3BhZGRpbmc6Y2FsYyguNjY3ZW0gKyAycHgpIGNhbGMoMS4zMzNlbSArIDJweCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LndwLWJsb2NrLWJ1dHRvbltzdHlsZSo9dGV4dC1kZWNvcmF0aW9uXSAud3AtYmxvY2stYnV0dG9uX19saW5re3RleHQtZGVjb3JhdGlvbjppbmhlcml0fS53cC1ibG9jay1idXR0b25zPi53cC1ibG9jay1idXR0b24uaGFzLWN1c3RvbS13aWR0aHttYXgtd2lkdGg6bm9uZX0ud3AtYmxvY2stYnV0dG9ucz4ud3AtYmxvY2stYnV0dG9uLmhhcy1jdXN0b20td2lkdGggLndwLWJsb2NrLWJ1dHRvbl9fbGlua3t3aWR0aDoxMDAlfS53cC1ibG9jay1idXR0b25zPi53cC1ibG9jay1idXR0b24uaGFzLWN1c3RvbS1mb250LXNpemUgLndwLWJsb2NrLWJ1dHRvbl9fbGlua3tmb250LXNpemU6aW5oZXJpdH0ud3AtYmxvY2stYnV0dG9ucz4ud3AtYmxvY2stYnV0dG9uLndwLWJsb2NrLWJ1dHRvbl9fd2lkdGgtMjV7d2lkdGg6Y2FsYygyNSUgLSB2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCwgLjVlbSkqLjc1KX0ud3AtYmxvY2stYnV0dG9ucz4ud3AtYmxvY2stYnV0dG9uLndwLWJsb2NrLWJ1dHRvbl9fd2lkdGgtNTB7d2lkdGg6Y2FsYyg1MCUgLSB2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCwgLjVlbSkqLjUpfS53cC1ibG9jay1idXR0b25zPi53cC1ibG9jay1idXR0b24ud3AtYmxvY2stYnV0dG9uX193aWR0aC03NXt3aWR0aDpjYWxjKDc1JSAtIHZhcigtLXdwLS1zdHlsZS0tYmxvY2stZ2FwLCAuNWVtKSouMjUpfS53cC1ibG9jay1idXR0b25zPi53cC1ibG9jay1idXR0b24ud3AtYmxvY2stYnV0dG9uX193aWR0aC0xMDB7ZmxleC1iYXNpczoxMDAlO3dpZHRoOjEwMCV9LndwLWJsb2NrLWJ1dHRvbnMuaXMtdmVydGljYWw+LndwLWJsb2NrLWJ1dHRvbi53cC1ibG9jay1idXR0b25fX3dpZHRoLTI1e3dpZHRoOjI1JX0ud3AtYmxvY2stYnV0dG9ucy5pcy12ZXJ0aWNhbD4ud3AtYmxvY2stYnV0dG9uLndwLWJsb2NrLWJ1dHRvbl9fd2lkdGgtNTB7d2lkdGg6NTAlfS53cC1ibG9jay1idXR0b25zLmlzLXZlcnRpY2FsPi53cC1ibG9jay1idXR0b24ud3AtYmxvY2stYnV0dG9uX193aWR0aC03NXt3aWR0aDo3NSV9LndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1zcXVhcmVkLC53cC1ibG9jay1idXR0b25fX2xpbmsud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLXNxdWFyZWR7Ym9yZGVyLXJhZGl1czowfS53cC1ibG9jay1idXR0b24ubm8tYm9yZGVyLXJhZGl1cywud3AtYmxvY2stYnV0dG9uX19saW5rLm5vLWJvcmRlci1yYWRpdXN7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudH0ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbmsuaXMtc3R5bGUtb3V0bGluZSwud3AtYmxvY2stYnV0dG9uLmlzLXN0eWxlLW91dGxpbmU+LndwLWJsb2NrLWJ1dHRvbl9fbGlua3tib3JkZXI6MnB4IHNvbGlkO3BhZGRpbmc6LjY2N2VtIDEuMzMzZW19LndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rLmlzLXN0eWxlLW91dGxpbmU6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWJ1dHRvbi5pcy1zdHlsZS1vdXRsaW5lPi53cC1ibG9jay1idXR0b25fX2xpbms6bm90KC5oYXMtdGV4dC1jb2xvcil7Y29sb3I6Y3VycmVudENvbG9yfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluay5pcy1zdHlsZS1vdXRsaW5lOm5vdCguaGFzLWJhY2tncm91bmQpLC53cC1ibG9jay1idXR0b24uaXMtc3R5bGUtb3V0bGluZT4ud3AtYmxvY2stYnV0dG9uX19saW5rOm5vdCguaGFzLWJhY2tncm91bmQpe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZSguaGFzLWJvcmRlci1jb2xvcil7Ym9yZGVyLXdpZHRoOmluaXRpYWx9LndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXRvcC1jb2xvcl0pe2JvcmRlci10b3Atd2lkdGg6bWVkaXVtfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZShbc3R5bGUqPWJvcmRlci1yaWdodC1jb2xvcl0pe2JvcmRlci1yaWdodC13aWR0aDptZWRpdW19LndwLWJsb2NrLWJ1dHRvbiAud3AtYmxvY2stYnV0dG9uX19saW5rOndoZXJlKFtzdHlsZSo9Ym9yZGVyLWJvdHRvbS1jb2xvcl0pe2JvcmRlci1ib3R0b20td2lkdGg6bWVkaXVtfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZShbc3R5bGUqPWJvcmRlci1sZWZ0LWNvbG9yXSl7Ym9yZGVyLWxlZnQtd2lkdGg6bWVkaXVtfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZShbc3R5bGUqPWJvcmRlci1zdHlsZV0pe2JvcmRlci13aWR0aDppbml0aWFsfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZShbc3R5bGUqPWJvcmRlci10b3Atc3R5bGVdKXtib3JkZXItdG9wLXdpZHRoOm1lZGl1bX0ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6d2hlcmUoW3N0eWxlKj1ib3JkZXItcmlnaHQtc3R5bGVdKXtib3JkZXItcmlnaHQtd2lkdGg6bWVkaXVtfS53cC1ibG9jay1idXR0b24gLndwLWJsb2NrLWJ1dHRvbl9fbGluazp3aGVyZShbc3R5bGUqPWJvcmRlci1ib3R0b20tc3R5bGVdKXtib3JkZXItYm90dG9tLXdpZHRoOm1lZGl1bX0ud3AtYmxvY2stYnV0dG9uIC53cC1ibG9jay1idXR0b25fX2xpbms6d2hlcmUoW3N0eWxlKj1ib3JkZXItbGVmdC1zdHlsZV0pe2JvcmRlci1sZWZ0LXdpZHRoOm1lZGl1bX0ud3AtYmxvY2stYnV0dG9ucy5pcy12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LndwLWJsb2NrLWJ1dHRvbnMuaXMtdmVydGljYWw+LndwLWJsb2NrLWJ1dHRvbjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ud3AtYmxvY2stYnV0dG9ucz4ud3AtYmxvY2stYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowfS53cC1ibG9jay1idXR0b25zLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS53cC1ibG9jay1idXR0b25zLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1sZWZ0LmlzLXZlcnRpY2Fse2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LndwLWJsb2NrLWJ1dHRvbnMuaXMtY29udGVudC1qdXN0aWZpY2F0aW9uLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS53cC1ibG9jay1idXR0b25zLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1jZW50ZXIuaXMtdmVydGljYWx7YWxpZ24taXRlbXM6Y2VudGVyfS53cC1ibG9jay1idXR0b25zLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LndwLWJsb2NrLWJ1dHRvbnMuaXMtY29udGVudC1qdXN0aWZpY2F0aW9uLXJpZ2h0LmlzLXZlcnRpY2Fse2FsaWduLWl0ZW1zOmZsZXgtZW5kfS53cC1ibG9jay1idXR0b25zLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1zcGFjZS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS53cC1ibG9jay1idXR0b25zLmFsaWduY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1idXR0b25zOm5vdCguaXMtY29udGVudC1qdXN0aWZpY2F0aW9uLXNwYWNlLWJldHdlZW4sLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1yaWdodCwuaXMtY29udGVudC1qdXN0aWZpY2F0aW9uLWxlZnQsLmlzLWNvbnRlbnQtanVzdGlmaWNhdGlvbi1jZW50ZXIpIC53cC1ibG9jay1idXR0b24uYWxpZ25jZW50ZXJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt3aWR0aDoxMDAlfS53cC1ibG9jay1idXR0b25zW3N0eWxlKj10ZXh0LWRlY29yYXRpb25dIC53cC1ibG9jay1idXR0b24sLndwLWJsb2NrLWJ1dHRvbnNbc3R5bGUqPXRleHQtZGVjb3JhdGlvbl0gLndwLWJsb2NrLWJ1dHRvbl9fbGlua3t0ZXh0LWRlY29yYXRpb246aW5oZXJpdH0ud3AtYmxvY2stYnV0dG9ucy5oYXMtY3VzdG9tLWZvbnQtc2l6ZSAud3AtYmxvY2stYnV0dG9uX19saW5re2ZvbnQtc2l6ZTppbmhlcml0fS53cC1ibG9jay1idXR0b24uYWxpZ25jZW50ZXIsLndwLWJsb2NrLWNhbGVuZGFye3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1jYWxlbmRhciB0ZCwud3AtYmxvY2stY2FsZW5kYXIgdGh7Ym9yZGVyOjFweCBzb2xpZDtwYWRkaW5nOi4yNWVtfS53cC1ibG9jay1jYWxlbmRhciB0aHtmb250LXdlaWdodDo0MDB9LndwLWJsb2NrLWNhbGVuZGFyIGNhcHRpb257YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS53cC1ibG9jay1jYWxlbmRhciB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX0ud3AtYmxvY2stY2FsZW5kYXIgdGFibGU6d2hlcmUoOm5vdCguaGFzLXRleHQtY29sb3IpKXtjb2xvcjojNDA0NjRkfS53cC1ibG9jay1jYWxlbmRhciB0YWJsZTp3aGVyZSg6bm90KC5oYXMtdGV4dC1jb2xvcikpIHRkLC53cC1ibG9jay1jYWxlbmRhciB0YWJsZTp3aGVyZSg6bm90KC5oYXMtdGV4dC1jb2xvcikpIHRoe2JvcmRlci1jb2xvcjojZGRkfS53cC1ibG9jay1jYWxlbmRhciB0YWJsZS5oYXMtYmFja2dyb3VuZCB0aHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LndwLWJsb2NrLWNhbGVuZGFyIHRhYmxlLmhhcy10ZXh0LWNvbG9yIHRoe2NvbG9yOmluaGVyaXR9OndoZXJlKC53cC1ibG9jay1jYWxlbmRhciB0YWJsZTpub3QoLmhhcy1iYWNrZ3JvdW5kKSB0aCl7YmFja2dyb3VuZDojZGRkfS53cC1ibG9jay1jYXRlZ29yaWVze2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stY2F0ZWdvcmllcy5hbGlnbmxlZnR7bWFyZ2luLXJpZ2h0OjJlbX0ud3AtYmxvY2stY2F0ZWdvcmllcy5hbGlnbnJpZ2h0e21hcmdpbi1sZWZ0OjJlbX0ud3AtYmxvY2stY2F0ZWdvcmllcy53cC1ibG9jay1jYXRlZ29yaWVzLWRyb3Bkb3duLmFsaWduY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1jb2Rle2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stY29kZSBjb2Rle2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6aW5oZXJpdDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9LndwLWJsb2NrLWNvbHVtbnN7YWxpZ24taXRlbXM6bm9ybWFsIWltcG9ydGFudDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo3ODJweCl7LndwLWJsb2NrLWNvbHVtbnN7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9fS53cC1ibG9jay1jb2x1bW5zLmFyZS12ZXJ0aWNhbGx5LWFsaWduZWQtdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LndwLWJsb2NrLWNvbHVtbnMuYXJlLXZlcnRpY2FsbHktYWxpZ25lZC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS53cC1ibG9jay1jb2x1bW5zLmFyZS12ZXJ0aWNhbGx5LWFsaWduZWQtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfUBtZWRpYSAobWF4LXdpZHRoOjc4MXB4KXsud3AtYmxvY2stY29sdW1uczpub3QoLmlzLW5vdC1zdGFja2VkLW9uLW1vYmlsZSk+LndwLWJsb2NrLWNvbHVtbntmbGV4LWJhc2lzOjEwMCUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3ODJweCl7LndwLWJsb2NrLWNvbHVtbnM6bm90KC5pcy1ub3Qtc3RhY2tlZC1vbi1tb2JpbGUpPi53cC1ibG9jay1jb2x1bW57ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxfS53cC1ibG9jay1jb2x1bW5zOm5vdCguaXMtbm90LXN0YWNrZWQtb24tbW9iaWxlKT4ud3AtYmxvY2stY29sdW1uW3N0eWxlKj1mbGV4LWJhc2lzXXtmbGV4LWdyb3c6MH19LndwLWJsb2NrLWNvbHVtbnMuaXMtbm90LXN0YWNrZWQtb24tbW9iaWxle2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS53cC1ibG9jay1jb2x1bW5zLmlzLW5vdC1zdGFja2VkLW9uLW1vYmlsZT4ud3AtYmxvY2stY29sdW1ue2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MX0ud3AtYmxvY2stY29sdW1ucy5pcy1ub3Qtc3RhY2tlZC1vbi1tb2JpbGU+LndwLWJsb2NrLWNvbHVtbltzdHlsZSo9ZmxleC1iYXNpc117ZmxleC1ncm93OjB9OndoZXJlKC53cC1ibG9jay1jb2x1bW5zKXttYXJnaW4tYm90dG9tOjEuNzVlbX06d2hlcmUoLndwLWJsb2NrLWNvbHVtbnMuaGFzLWJhY2tncm91bmQpe3BhZGRpbmc6MS4yNWVtIDIuMzc1ZW19LndwLWJsb2NrLWNvbHVtbntmbGV4LWdyb3c6MTttaW4td2lkdGg6MDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS53cC1ibG9jay1jb2x1bW4uaXMtdmVydGljYWxseS1hbGlnbmVkLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LndwLWJsb2NrLWNvbHVtbi5pcy12ZXJ0aWNhbGx5LWFsaWduZWQtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyfS53cC1ibG9jay1jb2x1bW4uaXMtdmVydGljYWxseS1hbGlnbmVkLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfS53cC1ibG9jay1jb2x1bW4uaXMtdmVydGljYWxseS1hbGlnbmVkLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNofS53cC1ibG9jay1jb2x1bW4uaXMtdmVydGljYWxseS1hbGlnbmVkLWJvdHRvbSwud3AtYmxvY2stY29sdW1uLmlzLXZlcnRpY2FsbHktYWxpZ25lZC1jZW50ZXIsLndwLWJsb2NrLWNvbHVtbi5pcy12ZXJ0aWNhbGx5LWFsaWduZWQtdG9we3dpZHRoOjEwMCV9LndwLWJsb2NrLXBvc3QtY29tbWVudHN7Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5hbGlnbmxlZnR7ZmxvYXQ6bGVmdH0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuYWxpZ25yaWdodHtmbG9hdDpyaWdodH0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAubmF2aWdhdGlvbjphZnRlcntjbGVhcjpib3RoO2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZX0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudGxpc3R7Y2xlYXI6Ym90aDtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50bGlzdCAuY29tbWVudHttaW4taGVpZ2h0OjIuMjVlbTtwYWRkaW5nLWxlZnQ6My4yNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50bGlzdCAuY29tbWVudCBwe2ZvbnQtc2l6ZToxZW07bGluZS1oZWlnaHQ6MS44O21hcmdpbjoxZW0gMH0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudGxpc3QgLmNoaWxkcmVue2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtYXV0aG9ye2xpbmUtaGVpZ2h0OjEuNX0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudC1hdXRob3IgLmF2YXRhcntib3JkZXItcmFkaXVzOjEuNWVtO2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtoZWlnaHQ6Mi41ZW07bWFyZ2luLXJpZ2h0Oi43NWVtO21hcmdpbi10b3A6LjVlbTt3aWR0aDoyLjVlbX0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudC1hdXRob3IgY2l0ZXtmb250LXN0eWxlOm5vcm1hbH0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudC1tZXRhe2ZvbnQtc2l6ZTouODc1ZW07bGluZS1oZWlnaHQ6MS41fS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LW1ldGEgYntmb250LXdlaWdodDo0MDB9LndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtbWV0YSAuY29tbWVudC1hd2FpdGluZy1tb2RlcmF0aW9ue2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToxZW07bWFyZ2luLXRvcDoxZW19LndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtYm9keSAuY29tbWVudG1ldGFkYXRhe2ZvbnQtc2l6ZTouODc1ZW19LndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtZm9ybS1hdXRob3IgbGFiZWwsLndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtZm9ybS1jb21tZW50IGxhYmVsLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LWZvcm0tZW1haWwgbGFiZWwsLndwLWJsb2NrLXBvc3QtY29tbWVudHMgLmNvbW1lbnQtZm9ybS11cmwgbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOi4yNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LWZvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1jaGVja2JveF0pLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LWZvcm0gdGV4dGFyZWF7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudC1mb3JtLWNvb2tpZXMtY29uc2VudHtkaXNwbGF5OmZsZXg7Z2FwOi4yNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LWZvcm0tY29va2llcy1jb25zZW50ICN3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudHttYXJnaW4tdG9wOi4zNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5jb21tZW50LXJlcGx5LXRpdGxle21hcmdpbi1ib3R0b206MH0ud3AtYmxvY2stcG9zdC1jb21tZW50cyAuY29tbWVudC1yZXBseS10aXRsZSA6d2hlcmUoc21hbGwpe2ZvbnQtc2l6ZTp2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLW1lZGl1bSxzbWFsbGVyKTttYXJnaW4tbGVmdDouNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzIC5yZXBseXtmb250LXNpemU6Ljg3NWVtO21hcmdpbi1ib3R0b206MS40ZW19LndwLWJsb2NrLXBvc3QtY29tbWVudHMgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzIHRleHRhcmVhe2JvcmRlcjoxcHggc29saWQgIzk0OTQ5NDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxZW19LndwLWJsb2NrLXBvc3QtY29tbWVudHMgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1jaGVja2JveF0pLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzIHRleHRhcmVhe3BhZGRpbmc6Y2FsYyguNjY3ZW0gKyAycHgpfTp3aGVyZSgud3AtYmxvY2stcG9zdC1jb21tZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0pe2JvcmRlcjpub25lfS53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uPi53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLW5leHQsLndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24+LndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24tbnVtYmVycywud3AtYmxvY2stY29tbWVudHMtcGFnaW5hdGlvbj4ud3AtYmxvY2stY29tbWVudHMtcGFnaW5hdGlvbi1wcmV2aW91c3ttYXJnaW4tYm90dG9tOi41ZW07bWFyZ2luLXJpZ2h0Oi41ZW19LndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24+LndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24tbmV4dDpsYXN0LWNoaWxkLC53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uPi53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLW51bWJlcnM6bGFzdC1jaGlsZCwud3AtYmxvY2stY29tbWVudHMtcGFnaW5hdGlvbj4ud3AtYmxvY2stY29tbWVudHMtcGFnaW5hdGlvbi1wcmV2aW91czpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uIC53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLXByZXZpb3VzLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxY2h9LndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24gLndwLWJsb2NrLWNvbW1lbnRzLXBhZ2luYXRpb24tcHJldmlvdXMtYXJyb3c6bm90KC5pcy1hcnJvdy1jaGV2cm9uKXt0cmFuc2Zvcm06c2NhbGVYKDEpfS53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uIC53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLW5leHQtYXJyb3d7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6MWNofS53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uIC53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLW5leHQtYXJyb3c6bm90KC5pcy1hcnJvdy1jaGV2cm9uKXt0cmFuc2Zvcm06c2NhbGVYKDEpfS53cC1ibG9jay1jb21tZW50cy1wYWdpbmF0aW9uLmFsaWduY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndwLWJsb2NrLWNvbW1lbnQtdGVtcGxhdGV7Ym94LXNpemluZzpib3JkZXItYm94O2xpc3Qtc3R5bGU6bm9uZTttYXJnaW4tYm90dG9tOjA7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowfS53cC1ibG9jay1jb21tZW50LXRlbXBsYXRlIGxpe2NsZWFyOmJvdGh9LndwLWJsb2NrLWNvbW1lbnQtdGVtcGxhdGUgb2x7bGlzdC1zdHlsZTpub25lO21hcmdpbi1ib3R0b206MDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLWxlZnQ6MnJlbX0ud3AtYmxvY2stY29tbWVudC10ZW1wbGF0ZS5hbGlnbmxlZnR7ZmxvYXQ6bGVmdH0ud3AtYmxvY2stY29tbWVudC10ZW1wbGF0ZS5hbGlnbmNlbnRlcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnR9LndwLWJsb2NrLWNvbW1lbnQtdGVtcGxhdGUuYWxpZ25yaWdodHtmbG9hdDpyaWdodH0ud3AtYmxvY2stY292ZXIsLndwLWJsb2NrLWNvdmVyLWltYWdle2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDo0MzBweDtvdmVyZmxvdzpoaWRkZW47b3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjFlbTtwb3NpdGlvbjpyZWxhdGl2ZX0ud3AtYmxvY2stY292ZXIgLmhhcy1iYWNrZ3JvdW5kLWRpbTpub3QoW2NsYXNzKj0tYmFja2dyb3VuZC1jb2xvcl0pLC53cC1ibG9jay1jb3Zlci1pbWFnZSAuaGFzLWJhY2tncm91bmQtZGltOm5vdChbY2xhc3MqPS1iYWNrZ3JvdW5kLWNvbG9yXSksLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbTpub3QoW2NsYXNzKj0tYmFja2dyb3VuZC1jb2xvcl0pLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW06bm90KFtjbGFzcyo9LWJhY2tncm91bmQtY29sb3JdKXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9LndwLWJsb2NrLWNvdmVyIC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZ3JhZGllbnQsLndwLWJsb2NrLWNvdmVyLWltYWdlIC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZ3JhZGllbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltOmJlZm9yZSwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Y29udGVudDoiIn0ud3AtYmxvY2stY292ZXIgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW06bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3JlLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW06bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3Jle2JvdHRvbTowO2xlZnQ6MDtvcGFjaXR5Oi41O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7ei1pbmRleDoxfS53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3JlLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3Jle29wYWNpdHk6LjF9LndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMjAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTIwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0yMDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmUsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMjAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTIwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0yMDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmV7b3BhY2l0eTouMn0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0zMCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMzAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTMwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZSwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0zMCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMzAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTMwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZXtvcGFjaXR5Oi4zfS53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTQwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS00MCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNDA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3JlLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTQwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS00MCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNDA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3Jle29wYWNpdHk6LjR9LndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNTAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTUwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS01MDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmUsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNTAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTUwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS01MDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmV7b3BhY2l0eTouNX0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS02MCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNjAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTYwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZSwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS02MCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNjAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTYwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZXtvcGFjaXR5Oi42fS53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTcwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS03MCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNzA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3JlLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTcwIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS03MCAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNzA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3Jle29wYWNpdHk6Ljd9LndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tODAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTgwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS04MDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmUsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tODAgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTgwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS04MDpub3QoLmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50KTpiZWZvcmV7b3BhY2l0eTouOH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS05MCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tOTAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTkwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZSwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS05MCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tOTAgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTkwOm5vdCguaGFzLWJhY2tncm91bmQtZ3JhZGllbnQpOmJlZm9yZXtvcGFjaXR5Oi45fS53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwMCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTAwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMDA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3JlLC53cC1ibG9jay1jb3Zlci5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwMCAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTAwIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXIuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMDA6bm90KC5oYXMtYmFja2dyb3VuZC1ncmFkaWVudCk6YmVmb3Jle29wYWNpdHk6MX0ud3AtYmxvY2stY292ZXIgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMCwud3AtYmxvY2stY292ZXIgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMHtvcGFjaXR5OjB9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwe29wYWNpdHk6LjF9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTIwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0yMCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMjAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTIwe29wYWNpdHk6LjJ9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTMwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0zMCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMzAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTMwe29wYWNpdHk6LjN9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTQwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS00MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNDAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTQwe29wYWNpdHk6LjR9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTUwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS01MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNTAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTUwe29wYWNpdHk6LjV9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTYwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS02MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNjAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTYwe29wYWNpdHk6LjZ9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTcwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS03MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tNzAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTcwe29wYWNpdHk6Ljd9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTgwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS04MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tODAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTgwe29wYWNpdHk6Ljh9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTkwLC53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2dyYWRpZW50LWJhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS05MCwud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyX19iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tOTAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTkwe29wYWNpdHk6Ljl9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlcl9fYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwMCwud3AtYmxvY2stY292ZXIgLndwLWJsb2NrLWNvdmVyX19ncmFkaWVudC1iYWNrZ3JvdW5kLmhhcy1iYWNrZ3JvdW5kLWRpbS5oYXMtYmFja2dyb3VuZC1kaW0tMTAwLC53cC1ibG9jay1jb3Zlci1pbWFnZSAud3AtYmxvY2stY292ZXJfX2JhY2tncm91bmQuaGFzLWJhY2tncm91bmQtZGltLmhhcy1iYWNrZ3JvdW5kLWRpbS0xMDAsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9fZ3JhZGllbnQtYmFja2dyb3VuZC5oYXMtYmFja2dyb3VuZC1kaW0uaGFzLWJhY2tncm91bmQtZGltLTEwMHtvcGFjaXR5OjF9LndwLWJsb2NrLWNvdmVyLWltYWdlLmFsaWdubGVmdCwud3AtYmxvY2stY292ZXItaW1hZ2UuYWxpZ25yaWdodCwud3AtYmxvY2stY292ZXIuYWxpZ25sZWZ0LC53cC1ibG9jay1jb3Zlci5hbGlnbnJpZ2h0e21heC13aWR0aDo0MjBweDt3aWR0aDoxMDAlfS53cC1ibG9jay1jb3Zlci1pbWFnZTphZnRlciwud3AtYmxvY2stY292ZXI6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTowO21pbi1oZWlnaHQ6aW5oZXJpdH1Ac3VwcG9ydHMgKHBvc2l0aW9uOnN0aWNreSl7LndwLWJsb2NrLWNvdmVyLWltYWdlOmFmdGVyLC53cC1ibG9jay1jb3ZlcjphZnRlcntjb250ZW50Om5vbmV9fS53cC1ibG9jay1jb3Zlci1pbWFnZS5hbGlnbmNlbnRlciwud3AtYmxvY2stY292ZXItaW1hZ2UuYWxpZ25sZWZ0LC53cC1ibG9jay1jb3Zlci1pbWFnZS5hbGlnbnJpZ2h0LC53cC1ibG9jay1jb3Zlci5hbGlnbmNlbnRlciwud3AtYmxvY2stY292ZXIuYWxpZ25sZWZ0LC53cC1ibG9jay1jb3Zlci5hbGlnbnJpZ2h0e2Rpc3BsYXk6ZmxleH0ud3AtYmxvY2stY292ZXIgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsLndwLWJsb2NrLWNvdmVyLWltYWdlIC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVye2NvbG9yOmluaGVyaXQ7d2lkdGg6MTAwJTt6LWluZGV4OjF9LndwLWJsb2NrLWNvdmVyIGgxOm5vdCguaGFzLXRleHQtY29sb3IpLC53cC1ibG9jay1jb3ZlciBoMjpub3QoLmhhcy10ZXh0LWNvbG9yKSwud3AtYmxvY2stY292ZXIgaDM6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWNvdmVyIGg0Om5vdCguaGFzLXRleHQtY29sb3IpLC53cC1ibG9jay1jb3ZlciBoNTpub3QoLmhhcy10ZXh0LWNvbG9yKSwud3AtYmxvY2stY292ZXIgaDY6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWNvdmVyIHA6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWNvdmVyLWltYWdlIGgxOm5vdCguaGFzLXRleHQtY29sb3IpLC53cC1ibG9jay1jb3Zlci1pbWFnZSBoMjpub3QoLmhhcy10ZXh0LWNvbG9yKSwud3AtYmxvY2stY292ZXItaW1hZ2UgaDM6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWNvdmVyLWltYWdlIGg0Om5vdCguaGFzLXRleHQtY29sb3IpLC53cC1ibG9jay1jb3Zlci1pbWFnZSBoNTpub3QoLmhhcy10ZXh0LWNvbG9yKSwud3AtYmxvY2stY292ZXItaW1hZ2UgaDY6bm90KC5oYXMtdGV4dC1jb2xvciksLndwLWJsb2NrLWNvdmVyLWltYWdlIHA6bm90KC5oYXMtdGV4dC1jb2xvcil7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaXMtcG9zaXRpb24tdG9wLWxlZnQsLndwLWJsb2NrLWNvdmVyLmlzLXBvc2l0aW9uLXRvcC1sZWZ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LndwLWJsb2NrLWNvdmVyLWltYWdlLmlzLXBvc2l0aW9uLXRvcC1jZW50ZXIsLndwLWJsb2NrLWNvdmVyLmlzLXBvc2l0aW9uLXRvcC1jZW50ZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS53cC1ibG9jay1jb3Zlci1pbWFnZS5pcy1wb3NpdGlvbi10b3AtcmlnaHQsLndwLWJsb2NrLWNvdmVyLmlzLXBvc2l0aW9uLXRvcC1yaWdodHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaXMtcG9zaXRpb24tY2VudGVyLWxlZnQsLndwLWJsb2NrLWNvdmVyLmlzLXBvc2l0aW9uLWNlbnRlci1sZWZ0e2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaXMtcG9zaXRpb24tY2VudGVyLWNlbnRlciwud3AtYmxvY2stY292ZXIuaXMtcG9zaXRpb24tY2VudGVyLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ud3AtYmxvY2stY292ZXItaW1hZ2UuaXMtcG9zaXRpb24tY2VudGVyLXJpZ2h0LC53cC1ibG9jay1jb3Zlci5pcy1wb3NpdGlvbi1jZW50ZXItcmlnaHR7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaXMtcG9zaXRpb24tYm90dG9tLWxlZnQsLndwLWJsb2NrLWNvdmVyLmlzLXBvc2l0aW9uLWJvdHRvbS1sZWZ0e2FsaWduLWl0ZW1zOmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS53cC1ibG9jay1jb3Zlci1pbWFnZS5pcy1wb3NpdGlvbi1ib3R0b20tY2VudGVyLC53cC1ibG9jay1jb3Zlci5pcy1wb3NpdGlvbi1ib3R0b20tY2VudGVye2FsaWduLWl0ZW1zOmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndwLWJsb2NrLWNvdmVyLWltYWdlLmlzLXBvc2l0aW9uLWJvdHRvbS1yaWdodCwud3AtYmxvY2stY292ZXIuaXMtcG9zaXRpb24tYm90dG9tLXJpZ2h0e2FsaWduLWl0ZW1zOmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbiAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciwud3AtYmxvY2stY292ZXIuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbiAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lcnttYXJnaW46MH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5pcy1wb3NpdGlvbi1ib3R0b20tbGVmdCAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciwud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5pcy1wb3NpdGlvbi1ib3R0b20tcmlnaHQgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaXMtcG9zaXRpb24tY2VudGVyLWxlZnQgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaXMtcG9zaXRpb24tY2VudGVyLXJpZ2h0IC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmlzLXBvc2l0aW9uLXRvcC1sZWZ0IC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyLC53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmlzLXBvc2l0aW9uLXRvcC1yaWdodCAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciwud3AtYmxvY2stY292ZXIuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5pcy1wb3NpdGlvbi1ib3R0b20tbGVmdCAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lciwud3AtYmxvY2stY292ZXIuaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5pcy1wb3NpdGlvbi1ib3R0b20tcmlnaHQgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsLndwLWJsb2NrLWNvdmVyLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaXMtcG9zaXRpb24tY2VudGVyLWxlZnQgLndwLWJsb2NrLWNvdmVyX19pbm5lci1jb250YWluZXIsLndwLWJsb2NrLWNvdmVyLmhhcy1jdXN0b20tY29udGVudC1wb3NpdGlvbi5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaXMtcG9zaXRpb24tY2VudGVyLXJpZ2h0IC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyLC53cC1ibG9jay1jb3Zlci5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmlzLXBvc2l0aW9uLXRvcC1sZWZ0IC53cC1ibG9jay1jb3Zlcl9faW5uZXItY29udGFpbmVyLC53cC1ibG9jay1jb3Zlci5oYXMtY3VzdG9tLWNvbnRlbnQtcG9zaXRpb24uaGFzLWN1c3RvbS1jb250ZW50LXBvc2l0aW9uLmlzLXBvc2l0aW9uLXRvcC1yaWdodCAud3AtYmxvY2stY292ZXJfX2lubmVyLWNvbnRhaW5lcnttYXJnaW46MDt3aWR0aDphdXRvfS53cC1ibG9jay1jb3ZlciAud3AtYmxvY2stY292ZXJfX2ltYWdlLWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyIHZpZGVvLndwLWJsb2NrLWNvdmVyX192aWRlby1iYWNrZ3JvdW5kLC53cC1ibG9jay1jb3Zlci1pbWFnZSAud3AtYmxvY2stY292ZXJfX2ltYWdlLWJhY2tncm91bmQsLndwLWJsb2NrLWNvdmVyLWltYWdlIHZpZGVvLndwLWJsb2NrLWNvdmVyX192aWRlby1iYWNrZ3JvdW5ke2JvcmRlcjpub25lO2JvdHRvbTowO2JveC1zaGFkb3c6bm9uZTtoZWlnaHQ6MTAwJTtsZWZ0OjA7bWFyZ2luOjA7bWF4LWhlaWdodDpub25lO21heC13aWR0aDpub25lO29iamVjdC1maXQ6Y292ZXI7b3V0bGluZTpub25lO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjEwMCV9LndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1wYXJhbGxheCwud3AtYmxvY2stY292ZXIuaGFzLXBhcmFsbGF4LC53cC1ibG9jay1jb3Zlcl9faW1hZ2UtYmFja2dyb3VuZC5oYXMtcGFyYWxsYXgsdmlkZW8ud3AtYmxvY2stY292ZXJfX3ZpZGVvLWJhY2tncm91bmQuaGFzLXBhcmFsbGF4e2JhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvdmVyfUBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0OmluaGVyaXQpey53cC1ibG9jay1jb3Zlci1pbWFnZS5oYXMtcGFyYWxsYXgsLndwLWJsb2NrLWNvdmVyLmhhcy1wYXJhbGxheCwud3AtYmxvY2stY292ZXJfX2ltYWdlLWJhY2tncm91bmQuaGFzLXBhcmFsbGF4LHZpZGVvLndwLWJsb2NrLWNvdmVyX192aWRlby1iYWNrZ3JvdW5kLmhhcy1wYXJhbGxheHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6c2Nyb2xsfX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLXBhcmFsbGF4LC53cC1ibG9jay1jb3Zlci5oYXMtcGFyYWxsYXgsLndwLWJsb2NrLWNvdmVyX19pbWFnZS1iYWNrZ3JvdW5kLmhhcy1wYXJhbGxheCx2aWRlby53cC1ibG9jay1jb3Zlcl9fdmlkZW8tYmFja2dyb3VuZC5oYXMtcGFyYWxsYXh7YmFja2dyb3VuZC1hdHRhY2htZW50OnNjcm9sbH19LndwLWJsb2NrLWNvdmVyLWltYWdlLmlzLXJlcGVhdGVkLC53cC1ibG9jay1jb3Zlci5pcy1yZXBlYXRlZCwud3AtYmxvY2stY292ZXJfX2ltYWdlLWJhY2tncm91bmQuaXMtcmVwZWF0ZWQsdmlkZW8ud3AtYmxvY2stY292ZXJfX3ZpZGVvLWJhY2tncm91bmQuaXMtcmVwZWF0ZWR7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O2JhY2tncm91bmQtc2l6ZTphdXRvfS53cC1ibG9jay1jb3Zlcl9faW1hZ2UtYmFja2dyb3VuZCwud3AtYmxvY2stY292ZXJfX3ZpZGVvLWJhY2tncm91bmR7ei1pbmRleDowfS53cC1ibG9jay1jb3Zlci1pbWFnZS10ZXh0LC53cC1ibG9jay1jb3Zlci1pbWFnZS10ZXh0IGEsLndwLWJsb2NrLWNvdmVyLWltYWdlLXRleHQgYTphY3RpdmUsLndwLWJsb2NrLWNvdmVyLWltYWdlLXRleHQgYTpmb2N1cywud3AtYmxvY2stY292ZXItaW1hZ2UtdGV4dCBhOmhvdmVyLC53cC1ibG9jay1jb3Zlci10ZXh0LC53cC1ibG9jay1jb3Zlci10ZXh0IGEsLndwLWJsb2NrLWNvdmVyLXRleHQgYTphY3RpdmUsLndwLWJsb2NrLWNvdmVyLXRleHQgYTpmb2N1cywud3AtYmxvY2stY292ZXItdGV4dCBhOmhvdmVyLHNlY3Rpb24ud3AtYmxvY2stY292ZXItaW1hZ2UgaDIsc2VjdGlvbi53cC1ibG9jay1jb3Zlci1pbWFnZSBoMiBhLHNlY3Rpb24ud3AtYmxvY2stY292ZXItaW1hZ2UgaDIgYTphY3RpdmUsc2VjdGlvbi53cC1ibG9jay1jb3Zlci1pbWFnZSBoMiBhOmZvY3VzLHNlY3Rpb24ud3AtYmxvY2stY292ZXItaW1hZ2UgaDIgYTpob3Zlcntjb2xvcjojZmZmfS53cC1ibG9jay1jb3Zlci1pbWFnZSAud3AtYmxvY2stY292ZXIuaGFzLWxlZnQtY29udGVudHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ud3AtYmxvY2stY292ZXItaW1hZ2UgLndwLWJsb2NrLWNvdmVyLmhhcy1yaWdodC1jb250ZW50e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ud3AtYmxvY2stY292ZXItaW1hZ2UuaGFzLWxlZnQtY29udGVudCAud3AtYmxvY2stY292ZXItaW1hZ2UtdGV4dCwud3AtYmxvY2stY292ZXIuaGFzLWxlZnQtY29udGVudCAud3AtYmxvY2stY292ZXItdGV4dCxzZWN0aW9uLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1sZWZ0LWNvbnRlbnQ+aDJ7bWFyZ2luLWxlZnQ6MDt0ZXh0LWFsaWduOmxlZnR9LndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1yaWdodC1jb250ZW50IC53cC1ibG9jay1jb3Zlci1pbWFnZS10ZXh0LC53cC1ibG9jay1jb3Zlci5oYXMtcmlnaHQtY29udGVudCAud3AtYmxvY2stY292ZXItdGV4dCxzZWN0aW9uLndwLWJsb2NrLWNvdmVyLWltYWdlLmhhcy1yaWdodC1jb250ZW50Pmgye21hcmdpbi1yaWdodDowO3RleHQtYWxpZ246cmlnaHR9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1jb3Zlci10ZXh0LC53cC1ibG9jay1jb3Zlci1pbWFnZSAud3AtYmxvY2stY292ZXItaW1hZ2UtdGV4dCxzZWN0aW9uLndwLWJsb2NrLWNvdmVyLWltYWdlPmgye2ZvbnQtc2l6ZToyZW07bGluZS1oZWlnaHQ6MS4yNTttYXJnaW4tYm90dG9tOjA7bWF4LXdpZHRoOjg0MHB4O3BhZGRpbmc6LjQ0ZW07dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoxfTp3aGVyZSgud3AtYmxvY2stY292ZXItaW1hZ2U6bm90KC5oYXMtdGV4dC1jb2xvcikpLDp3aGVyZSgud3AtYmxvY2stY292ZXI6bm90KC5oYXMtdGV4dC1jb2xvcikpe2NvbG9yOiNmZmZ9OndoZXJlKC53cC1ibG9jay1jb3Zlci1pbWFnZS5pcy1saWdodDpub3QoLmhhcy10ZXh0LWNvbG9yKSksOndoZXJlKC53cC1ibG9jay1jb3Zlci5pcy1saWdodDpub3QoLmhhcy10ZXh0LWNvbG9yKSl7Y29sb3I6IzAwMH0ud3AtYmxvY2stZGV0YWlsc3tib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVufS53cC1ibG9jay1kZXRhaWxzIHN1bW1hcnl7Y3Vyc29yOnBvaW50ZXJ9LndwLWJsb2NrLWVtYmVkLmFsaWdubGVmdCwud3AtYmxvY2stZW1iZWQuYWxpZ25yaWdodCwud3AtYmxvY2tbZGF0YS1hbGlnbj1sZWZ0XT5bZGF0YS10eXBlPSJjb3JlL2VtYmVkIl0sLndwLWJsb2NrW2RhdGEtYWxpZ249cmlnaHRdPltkYXRhLXR5cGU9ImNvcmUvZW1iZWQiXXttYXgtd2lkdGg6MzYwcHg7d2lkdGg6MTAwJX0ud3AtYmxvY2stZW1iZWQuYWxpZ25sZWZ0IC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciwud3AtYmxvY2stZW1iZWQuYWxpZ25yaWdodCAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXIsLndwLWJsb2NrW2RhdGEtYWxpZ249bGVmdF0+W2RhdGEtdHlwZT0iY29yZS9lbWJlZCJdIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlciwud3AtYmxvY2tbZGF0YS1hbGlnbj1yaWdodF0+W2RhdGEtdHlwZT0iY29yZS9lbWJlZCJdIC53cC1ibG9jay1lbWJlZF9fd3JhcHBlcnttaW4td2lkdGg6MjgwcHh9LndwLWJsb2NrLWNvdmVyIC53cC1ibG9jay1lbWJlZHttaW4taGVpZ2h0OjI0MHB4O21pbi13aWR0aDozMjBweH0ud3AtYmxvY2stZW1iZWR7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS53cC1ibG9jay1lbWJlZCBmaWdjYXB0aW9ue21hcmdpbi1ib3R0b206MWVtO21hcmdpbi10b3A6LjVlbX0ud3AtYmxvY2stZW1iZWQgaWZyYW1le21heC13aWR0aDoxMDAlfS53cC1ibG9jay1lbWJlZF9fd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0ud3AtZW1iZWQtcmVzcG9uc2l2ZSAud3AtaGFzLWFzcGVjdC1yYXRpbyAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXI6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwYWRkaW5nLXRvcDo1MCV9LndwLWVtYmVkLXJlc3BvbnNpdmUgLndwLWhhcy1hc3BlY3QtcmF0aW8gaWZyYW1le2JvdHRvbTowO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjEwMCV9LndwLWVtYmVkLXJlc3BvbnNpdmUgLndwLWVtYmVkLWFzcGVjdC0yMS05IC53cC1ibG9jay1lbWJlZF9fd3JhcHBlcjpiZWZvcmV7cGFkZGluZy10b3A6NDIuODUlfS53cC1lbWJlZC1yZXNwb25zaXZlIC53cC1lbWJlZC1hc3BlY3QtMTgtOSAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXI6YmVmb3Jle3BhZGRpbmctdG9wOjUwJX0ud3AtZW1iZWQtcmVzcG9uc2l2ZSAud3AtZW1iZWQtYXNwZWN0LTE2LTkgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyOmJlZm9yZXtwYWRkaW5nLXRvcDo1Ni4yNSV9LndwLWVtYmVkLXJlc3BvbnNpdmUgLndwLWVtYmVkLWFzcGVjdC00LTMgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyOmJlZm9yZXtwYWRkaW5nLXRvcDo3NSV9LndwLWVtYmVkLXJlc3BvbnNpdmUgLndwLWVtYmVkLWFzcGVjdC0xLTEgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyOmJlZm9yZXtwYWRkaW5nLXRvcDoxMDAlfS53cC1lbWJlZC1yZXNwb25zaXZlIC53cC1lbWJlZC1hc3BlY3QtOS0xNiAud3AtYmxvY2stZW1iZWRfX3dyYXBwZXI6YmVmb3Jle3BhZGRpbmctdG9wOjE3Ny43NyV9LndwLWVtYmVkLXJlc3BvbnNpdmUgLndwLWVtYmVkLWFzcGVjdC0xLTIgLndwLWJsb2NrLWVtYmVkX193cmFwcGVyOmJlZm9yZXtwYWRkaW5nLXRvcDoyMDAlfS53cC1ibG9jay1maWxle2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stZmlsZTpub3QoLndwLWVsZW1lbnQtYnV0dG9uKXtmb250LXNpemU6LjhlbX0ud3AtYmxvY2stZmlsZS5hbGlnbmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0ud3AtYmxvY2stZmlsZS5hbGlnbnJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LndwLWJsb2NrLWZpbGUgKisud3AtYmxvY2stZmlsZV9fYnV0dG9ue21hcmdpbi1sZWZ0Oi43NWVtfTp3aGVyZSgud3AtYmxvY2stZmlsZSl7bWFyZ2luLWJvdHRvbToxLjVlbX0ud3AtYmxvY2stZmlsZV9fZW1iZWR7bWFyZ2luLWJvdHRvbToxZW19OndoZXJlKC53cC1ibG9jay1maWxlX19idXR0b24pe2JvcmRlci1yYWRpdXM6MmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6LjVlbSAxZW19OndoZXJlKC53cC1ibG9jay1maWxlX19idXR0b24pOmlzKGEpOmFjdGl2ZSw6d2hlcmUoLndwLWJsb2NrLWZpbGVfX2J1dHRvbik6aXMoYSk6Zm9jdXMsOndoZXJlKC53cC1ibG9jay1maWxlX19idXR0b24pOmlzKGEpOmhvdmVyLDp3aGVyZSgud3AtYmxvY2stZmlsZV9fYnV0dG9uKTppcyhhKTp2aXNpdGVke2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmO29wYWNpdHk6Ljg1O3RleHQtZGVjb3JhdGlvbjpub25lfS5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaXRlbXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgMWVtIDFlbSAwO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmNhbGMoNTAlIC0gMWVtKX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoMm4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDJuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoMm4pLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDJuKXttYXJnaW4tcmlnaHQ6MH0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgZmlndXJlLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ3VyZSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgZmlndXJlLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ3VyZXthbGlnbi1pdGVtczpmbGV4LWVuZDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7bWFyZ2luOjB9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGltZywuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaXRlbSBpbWcsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGltZywud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaXRlbSBpbWd7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJTt3aWR0aDphdXRvfS5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSBmaWdjYXB0aW9uLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ2NhcHRpb24sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGZpZ2NhcHRpb24sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gZmlnY2FwdGlvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMCwwLDAsLjcpLHJnYmEoMCwwLDAsLjMpIDcwJSx0cmFuc3BhcmVudCk7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNmZmY7Zm9udC1zaXplOi44ZW07bWFyZ2luOjA7bWF4LWhlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZzozZW0gLjc3ZW0gLjdlbTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlO3otaW5kZXg6Mn0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgZmlnY2FwdGlvbiBpbWcsLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gZmlnY2FwdGlvbiBpbWcsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGZpZ2NhcHRpb24gaW1nLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ2NhcHRpb24gaW1ne2Rpc3BsYXk6aW5saW5lfS5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIGZpZ2NhcHRpb24sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykgZmlnY2FwdGlvbntmbGV4LWdyb3c6MX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5pcy1jcm9wcGVkIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSBhLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmlzLWNyb3BwZWQgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlIGltZywuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5pcy1jcm9wcGVkIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGEsLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuaXMtY3JvcHBlZCAuYmxvY2tzLWdhbGxlcnktaXRlbSBpbWcsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuaXMtY3JvcHBlZCAuYmxvY2tzLWdhbGxlcnktaW1hZ2UgYSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5pcy1jcm9wcGVkIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSBpbWcsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuaXMtY3JvcHBlZCAuYmxvY2tzLWdhbGxlcnktaXRlbSBhLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmlzLWNyb3BwZWQgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gaW1ne2ZsZXg6MTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3dpZHRoOjEwMCV9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0xIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTEgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0xIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTEgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW17bWFyZ2luLXJpZ2h0OjA7d2lkdGg6MTAwJX1AbWVkaWEgKG1pbi13aWR0aDo2MDBweCl7LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0zIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTMgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0zIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTMgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW17bWFyZ2luLXJpZ2h0OjFlbTt3aWR0aDpjYWxjKDMzLjMzMzMzJSAtIC42NjY2N2VtKX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTQgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNCAuYmxvY2tzLWdhbGxlcnktaXRlbSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTQgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNCAuYmxvY2tzLWdhbGxlcnktaXRlbXttYXJnaW4tcmlnaHQ6MWVtO3dpZHRoOmNhbGMoMjUlIC0gLjc1ZW0pfS5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UsLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy01IC5ibG9ja3MtZ2FsbGVyeS1pdGVtLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNSAuYmxvY2tzLWdhbGxlcnktaW1hZ2UsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy01IC5ibG9ja3MtZ2FsbGVyeS1pdGVte21hcmdpbi1yaWdodDoxZW07d2lkdGg6Y2FsYygyMCUgLSAuOGVtKX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTYgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNiAuYmxvY2tzLWdhbGxlcnktaXRlbSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTYgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNiAuYmxvY2tzLWdhbGxlcnktaXRlbXttYXJnaW4tcmlnaHQ6MWVtO3dpZHRoOmNhbGMoMTYuNjY2NjclIC0gLjgzMzMzZW0pfS5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNyAuYmxvY2tzLWdhbGxlcnktaW1hZ2UsLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy03IC5ibG9ja3MtZ2FsbGVyeS1pdGVtLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNyAuYmxvY2tzLWdhbGxlcnktaW1hZ2UsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy03IC5ibG9ja3MtZ2FsbGVyeS1pdGVte21hcmdpbi1yaWdodDoxZW07d2lkdGg6Y2FsYygxNC4yODU3MSUgLSAuODU3MTRlbSl9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy04IC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTggLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0sLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy04IC5ibG9ja3MtZ2FsbGVyeS1pbWFnZSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTggLmJsb2Nrcy1nYWxsZXJ5LWl0ZW17bWFyZ2luLXJpZ2h0OjFlbTt3aWR0aDpjYWxjKDEyLjUlIC0gLjg3NWVtKX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTEgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDFuKSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTEgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoMW4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtMiAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoMm4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtMiAuYmxvY2tzLWdhbGxlcnktaXRlbTpudGgtb2YtdHlwZSgybiksLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0zIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpudGgtb2YtdHlwZSgzbiksLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0zIC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDNuKSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTQgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDRuKSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTQgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoNG4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNSAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoNW4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNSAuYmxvY2tzLWdhbGxlcnktaXRlbTpudGgtb2YtdHlwZSg1biksLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy02IC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpudGgtb2YtdHlwZSg2biksLmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy02IC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDZuKSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTcgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDduKSwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTcgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoN24pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtOCAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoOG4pLC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtOCAuYmxvY2tzLWdhbGxlcnktaXRlbTpudGgtb2YtdHlwZSg4biksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0xIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpudGgtb2YtdHlwZSgxbiksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy0xIC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDFuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTIgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDJuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTIgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoMm4pLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtMyAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoM24pLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtMyAuYmxvY2tzLWdhbGxlcnktaXRlbTpudGgtb2YtdHlwZSgzbiksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy00IC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpudGgtb2YtdHlwZSg0biksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy00IC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDRuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTUgLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDVuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTUgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoNW4pLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNiAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bnRoLW9mLXR5cGUoNm4pLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmNvbHVtbnMtNiAuYmxvY2tzLWdhbGxlcnktaXRlbTpudGgtb2YtdHlwZSg2biksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy03IC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpudGgtb2YtdHlwZSg3biksLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuY29sdW1ucy03IC5ibG9ja3MtZ2FsbGVyeS1pdGVtOm50aC1vZi10eXBlKDduKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTggLmJsb2Nrcy1nYWxsZXJ5LWltYWdlOm50aC1vZi10eXBlKDhuKSwud3AtYmxvY2stZ2FsbGVyeTpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKS5jb2x1bW5zLTggLmJsb2Nrcy1nYWxsZXJ5LWl0ZW06bnRoLW9mLXR5cGUoOG4pe21hcmdpbi1yaWdodDowfX0uYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaW1hZ2U6bGFzdC1jaGlsZCwuYmxvY2tzLWdhbGxlcnktZ3JpZDpub3QoLmhhcy1uZXN0ZWQtaW1hZ2VzKSAuYmxvY2tzLWdhbGxlcnktaXRlbTpsYXN0LWNoaWxkLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pbWFnZTpsYXN0LWNoaWxkLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpIC5ibG9ja3MtZ2FsbGVyeS1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuYWxpZ25sZWZ0LC5ibG9ja3MtZ2FsbGVyeS1ncmlkOm5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmFsaWducmlnaHQsLndwLWJsb2NrLWdhbGxlcnk6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuYWxpZ25sZWZ0LC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmFsaWducmlnaHR7bWF4LXdpZHRoOjQyMHB4O3dpZHRoOjEwMCV9LmJsb2Nrcy1nYWxsZXJ5LWdyaWQ6bm90KC5oYXMtbmVzdGVkLWltYWdlcykuYWxpZ25jZW50ZXIgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW0gZmlndXJlLC53cC1ibG9jay1nYWxsZXJ5Om5vdCguaGFzLW5lc3RlZC1pbWFnZXMpLmFsaWduY2VudGVyIC5ibG9ja3MtZ2FsbGVyeS1pdGVtIGZpZ3VyZXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS53cC1ibG9jay1nYWxsZXJ5Om5vdCguaXMtY3JvcHBlZCkgLmJsb2Nrcy1nYWxsZXJ5LWl0ZW17YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fWZpZ3VyZS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2Vze2FsaWduLWl0ZW1zOm5vcm1hbH0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcyBmaWd1cmUud3AtYmxvY2staW1hZ2U6bm90KCNpbmRpdmlkdWFsLWltYWdlKXttYXJnaW46MDt3aWR0aDpjYWxjKDUwJSAtIHZhcigtLXdwLS1zdHlsZS0tdW5zdGFibGUtZ2FsbGVyeS1nYXAsIDE2cHgpLzIpfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC13aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZT5hLC53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZT5kaXZ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO21hcmdpbjowfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZSBpbWd7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6YXV0b30ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcyBmaWd1cmUud3AtYmxvY2staW1hZ2UgZmlnY2FwdGlvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMCwwLDAsLjcpLHJnYmEoMCwwLDAsLjMpIDcwJSx0cmFuc3BhcmVudCk7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNmZmY7Zm9udC1zaXplOjEzcHg7bGVmdDowO21hcmdpbi1ib3R0b206MDttYXgtaGVpZ2h0OjYwJTtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MCA4cHggOHB4O3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMgZmlndXJlLndwLWJsb2NrLWltYWdlIGZpZ2NhcHRpb24gaW1ne2Rpc3BsYXk6aW5saW5lfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZSBmaWdjYXB0aW9uIGF7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcyBmaWd1cmUud3AtYmxvY2staW1hZ2UuaGFzLWN1c3RvbS1ib3JkZXIgaW1ne2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcyBmaWd1cmUud3AtYmxvY2staW1hZ2UuaGFzLWN1c3RvbS1ib3JkZXI+YSwud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcyBmaWd1cmUud3AtYmxvY2staW1hZ2UuaGFzLWN1c3RvbS1ib3JkZXI+ZGl2LC53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ3VyZS53cC1ibG9jay1pbWFnZS5pcy1zdHlsZS1yb3VuZGVkPmEsLndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMgZmlndXJlLndwLWJsb2NrLWltYWdlLmlzLXN0eWxlLXJvdW5kZWQ+ZGl2e2ZsZXg6MSAxIGF1dG99LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMgZmlndXJlLndwLWJsb2NrLWltYWdlLmhhcy1jdXN0b20tYm9yZGVyIGZpZ2NhcHRpb24sLndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMgZmlndXJlLndwLWJsb2NrLWltYWdlLmlzLXN0eWxlLXJvdW5kZWQgZmlnY2FwdGlvbntiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtmbGV4OmluaXRpYWw7bWFyZ2luOjA7cGFkZGluZzoxMHB4IDEwcHggOXB4O3Bvc2l0aW9uOnJlbGF0aXZlfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzIGZpZ2NhcHRpb257ZmxleC1iYXNpczoxMDAlO2ZsZXgtZ3JvdzoxO3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzOm5vdCguaXMtY3JvcHBlZCkgZmlndXJlLndwLWJsb2NrLWltYWdlOm5vdCgjaW5kaXZpZHVhbC1pbWFnZSl7bWFyZ2luLWJvdHRvbTphdXRvO21hcmdpbi10b3A6MH0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5pcy1jcm9wcGVkIGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe2FsaWduLXNlbGY6aW5oZXJpdH0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5pcy1jcm9wcGVkIGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2UpPmEsLndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuaXMtY3JvcHBlZCBmaWd1cmUud3AtYmxvY2staW1hZ2U6bm90KCNpbmRpdmlkdWFsLWltYWdlKT5kaXY6bm90KC5jb21wb25lbnRzLWRyb3Atem9uZSl7ZGlzcGxheTpmbGV4fS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmlzLWNyb3BwZWQgZmlndXJlLndwLWJsb2NrLWltYWdlOm5vdCgjaW5kaXZpZHVhbC1pbWFnZSkgYSwud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5pcy1jcm9wcGVkIGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2UpIGltZ3tmbGV4OjEgMCAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3dpZHRoOjEwMCV9LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy0xIGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpey53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmNvbHVtbnMtMyBmaWd1cmUud3AtYmxvY2staW1hZ2U6bm90KCNpbmRpdmlkdWFsLWltYWdlKXt3aWR0aDpjYWxjKDMzLjMzMzMzJSAtIHZhcigtLXdwLS1zdHlsZS0tdW5zdGFibGUtZ2FsbGVyeS1nYXAsIDE2cHgpKi42NjY2Nyl9LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy00IGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe3dpZHRoOmNhbGMoMjUlIC0gdmFyKC0td3AtLXN0eWxlLS11bnN0YWJsZS1nYWxsZXJ5LWdhcCwgMTZweCkqLjc1KX0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5jb2x1bW5zLTUgZmlndXJlLndwLWJsb2NrLWltYWdlOm5vdCgjaW5kaXZpZHVhbC1pbWFnZSl7d2lkdGg6Y2FsYygyMCUgLSB2YXIoLS13cC0tc3R5bGUtLXVuc3RhYmxlLWdhbGxlcnktZ2FwLCAxNnB4KSouOCl9LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy02IGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe3dpZHRoOmNhbGMoMTYuNjY2NjclIC0gdmFyKC0td3AtLXN0eWxlLS11bnN0YWJsZS1nYWxsZXJ5LWdhcCwgMTZweCkqLjgzMzMzKX0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5jb2x1bW5zLTcgZmlndXJlLndwLWJsb2NrLWltYWdlOm5vdCgjaW5kaXZpZHVhbC1pbWFnZSl7d2lkdGg6Y2FsYygxNC4yODU3MSUgLSB2YXIoLS13cC0tc3R5bGUtLXVuc3RhYmxlLWdhbGxlcnktZ2FwLCAxNnB4KSouODU3MTQpfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmNvbHVtbnMtOCBmaWd1cmUud3AtYmxvY2staW1hZ2U6bm90KCNpbmRpdmlkdWFsLWltYWdlKXt3aWR0aDpjYWxjKDEyLjUlIC0gdmFyKC0td3AtLXN0eWxlLS11bnN0YWJsZS1nYWxsZXJ5LWdhcCwgMTZweCkqLjg3NSl9LndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy1kZWZhdWx0IGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe3dpZHRoOmNhbGMoMzMuMzMlIC0gdmFyKC0td3AtLXN0eWxlLS11bnN0YWJsZS1nYWxsZXJ5LWdhcCwgMTZweCkqLjY2NjY3KX0ud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5jb2x1bW5zLWRlZmF1bHQgZmlndXJlLndwLWJsb2NrLWltYWdlOm5vdCgjaW5kaXZpZHVhbC1pbWFnZSk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMiksLndwLWJsb2NrLWdhbGxlcnkuaGFzLW5lc3RlZC1pbWFnZXMuY29sdW1ucy1kZWZhdWx0IGZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2UpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpfmZpZ3VyZS53cC1ibG9jay1pbWFnZTpub3QoI2luZGl2aWR1YWwtaW1hZ2Upe3dpZHRoOmNhbGMoNTAlIC0gdmFyKC0td3AtLXN0eWxlLS11bnN0YWJsZS1nYWxsZXJ5LWdhcCwgMTZweCkqLjUpfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmNvbHVtbnMtZGVmYXVsdCBmaWd1cmUud3AtYmxvY2staW1hZ2U6bm90KCNpbmRpdmlkdWFsLWltYWdlKTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxke3dpZHRoOjEwMCV9fS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmFsaWdubGVmdCwud3AtYmxvY2stZ2FsbGVyeS5oYXMtbmVzdGVkLWltYWdlcy5hbGlnbnJpZ2h0e21heC13aWR0aDo0MjBweDt3aWR0aDoxMDAlfS53cC1ibG9jay1nYWxsZXJ5Lmhhcy1uZXN0ZWQtaW1hZ2VzLmFsaWduY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndwLWJsb2NrLWdyb3Vwe2JveC1zaXppbmc6Ym9yZGVyLWJveH1oMS5oYXMtYmFja2dyb3VuZCxoMi5oYXMtYmFja2dyb3VuZCxoMy5oYXMtYmFja2dyb3VuZCxoNC5oYXMtYmFja2dyb3VuZCxoNS5oYXMtYmFja2dyb3VuZCxoNi5oYXMtYmFja2dyb3VuZHtwYWRkaW5nOjEuMjVlbSAyLjM3NWVtfWgxLmhhcy10ZXh0LWFsaWduLWxlZnRbc3R5bGUqPXdyaXRpbmctbW9kZV06d2hlcmUoW3N0eWxlKj12ZXJ0aWNhbC1scl0pLGgxLmhhcy10ZXh0LWFsaWduLXJpZ2h0W3N0eWxlKj13cml0aW5nLW1vZGVdOndoZXJlKFtzdHlsZSo9dmVydGljYWwtcmxdKSxoMi5oYXMtdGV4dC1hbGlnbi1sZWZ0W3N0eWxlKj13cml0aW5nLW1vZGVdOndoZXJlKFtzdHlsZSo9dmVydGljYWwtbHJdKSxoMi5oYXMtdGV4dC1hbGlnbi1yaWdodFtzdHlsZSo9d3JpdGluZy1tb2RlXTp3aGVyZShbc3R5bGUqPXZlcnRpY2FsLXJsXSksaDMuaGFzLXRleHQtYWxpZ24tbGVmdFtzdHlsZSo9d3JpdGluZy1tb2RlXTp3aGVyZShbc3R5bGUqPXZlcnRpY2FsLWxyXSksaDMuaGFzLXRleHQtYWxpZ24tcmlnaHRbc3R5bGUqPXdyaXRpbmctbW9kZV06d2hlcmUoW3N0eWxlKj12ZXJ0aWNhbC1ybF0pLGg0Lmhhcy10ZXh0LWFsaWduLWxlZnRbc3R5bGUqPXdyaXRpbmctbW9kZV06d2hlcmUoW3N0eWxlKj12ZXJ0aWNhbC1scl0pLGg0Lmhhcy10ZXh0LWFsaWduLXJpZ2h0W3N0eWxlKj13cml0aW5nLW1vZGVdOndoZXJlKFtzdHlsZSo9dmVydGljYWwtcmxdKSxoNS5oYXMtdGV4dC1hbGlnbi1sZWZ0W3N0eWxlKj13cml0aW5nLW1vZGVdOndoZXJlKFtzdHlsZSo9dmVydGljYWwtbHJdKSxoNS5oYXMtdGV4dC1hbGlnbi1yaWdodFtzdHlsZSo9d3JpdGluZy1tb2RlXTp3aGVyZShbc3R5bGUqPXZlcnRpY2FsLXJsXSksaDYuaGFzLXRleHQtYWxpZ24tbGVmdFtzdHlsZSo9d3JpdGluZy1tb2RlXTp3aGVyZShbc3R5bGUqPXZlcnRpY2FsLWxyXSksaDYuaGFzLXRleHQtYWxpZ24tcmlnaHRbc3R5bGUqPXdyaXRpbmctbW9kZV06d2hlcmUoW3N0eWxlKj12ZXJ0aWNhbC1ybF0pe3JvdGF0ZToxODBkZWd9LndwLWJsb2NrLWltYWdlIGltZ3tib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjEwMCU7dmVydGljYWwtYWxpZ246Ym90dG9tfS53cC1ibG9jay1pbWFnZVtzdHlsZSo9Ym9yZGVyLXJhZGl1c10gaW1nLC53cC1ibG9jay1pbWFnZVtzdHlsZSo9Ym9yZGVyLXJhZGl1c10+YXtib3JkZXItcmFkaXVzOmluaGVyaXR9LndwLWJsb2NrLWltYWdlLmhhcy1jdXN0b20tYm9yZGVyIGltZ3tib3gtc2l6aW5nOmJvcmRlci1ib3h9LndwLWJsb2NrLWltYWdlLmFsaWduY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1pbWFnZS5hbGlnbmZ1bGwgaW1nLC53cC1ibG9jay1pbWFnZS5hbGlnbndpZGUgaW1ne2hlaWdodDphdXRvO3dpZHRoOjEwMCV9LndwLWJsb2NrLWltYWdlIC5hbGlnbmNlbnRlciwud3AtYmxvY2staW1hZ2UgLmFsaWdubGVmdCwud3AtYmxvY2staW1hZ2UgLmFsaWducmlnaHQsLndwLWJsb2NrLWltYWdlLmFsaWduY2VudGVyLC53cC1ibG9jay1pbWFnZS5hbGlnbmxlZnQsLndwLWJsb2NrLWltYWdlLmFsaWducmlnaHR7ZGlzcGxheTp0YWJsZX0ud3AtYmxvY2staW1hZ2UgLmFsaWduY2VudGVyPmZpZ2NhcHRpb24sLndwLWJsb2NrLWltYWdlIC5hbGlnbmxlZnQ+ZmlnY2FwdGlvbiwud3AtYmxvY2staW1hZ2UgLmFsaWducmlnaHQ+ZmlnY2FwdGlvbiwud3AtYmxvY2staW1hZ2UuYWxpZ25jZW50ZXI+ZmlnY2FwdGlvbiwud3AtYmxvY2staW1hZ2UuYWxpZ25sZWZ0PmZpZ2NhcHRpb24sLndwLWJsb2NrLWltYWdlLmFsaWducmlnaHQ+ZmlnY2FwdGlvbntjYXB0aW9uLXNpZGU6Ym90dG9tO2Rpc3BsYXk6dGFibGUtY2FwdGlvbn0ud3AtYmxvY2staW1hZ2UgLmFsaWdubGVmdHtmbG9hdDpsZWZ0O21hcmdpbjouNWVtIDFlbSAuNWVtIDB9LndwLWJsb2NrLWltYWdlIC5hbGlnbnJpZ2h0e2Zsb2F0OnJpZ2h0O21hcmdpbjouNWVtIDAgLjVlbSAxZW19LndwLWJsb2NrLWltYWdlIC5hbGlnbmNlbnRlcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS53cC1ibG9jay1pbWFnZSBmaWdjYXB0aW9ue21hcmdpbi1ib3R0b206MWVtO21hcmdpbi10b3A6LjVlbX0ud3AtYmxvY2staW1hZ2UgLmlzLXN0eWxlLXJvdW5kZWQgaW1nLC53cC1ibG9jay1pbWFnZS5pcy1zdHlsZS1jaXJjbGUtbWFzayBpbWcsLndwLWJsb2NrLWltYWdlLmlzLXN0eWxlLXJvdW5kZWQgaW1ne2JvcmRlci1yYWRpdXM6OTk5OXB4fUBzdXBwb3J0cyAoKC13ZWJraXQtbWFzay1pbWFnZTpub25lKSBvciAobWFzay1pbWFnZTpub25lKSkgb3IgKC13ZWJraXQtbWFzay1pbWFnZTpub25lKXsud3AtYmxvY2staW1hZ2UuaXMtc3R5bGUtY2lyY2xlLW1hc2sgaW1ne2JvcmRlci1yYWRpdXM6MDstd2Via2l0LW1hc2staW1hZ2U6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+PC9zdmc+Jyk7bWFzay1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz48L3N2Zz4nKTttYXNrLW1vZGU6YWxwaGE7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXBvc2l0aW9uOmNlbnRlcjstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbjttYXNrLXNpemU6Y29udGFpbn19LndwLWJsb2NrLWltYWdlIDp3aGVyZSguaGFzLWJvcmRlci1jb2xvcil7Ym9yZGVyLXN0eWxlOnNvbGlkfS53cC1ibG9jay1pbWFnZSA6d2hlcmUoW3N0eWxlKj1ib3JkZXItdG9wLWNvbG9yXSl7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXJpZ2h0LWNvbG9yXSl7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkfS53cC1ibG9jay1pbWFnZSA6d2hlcmUoW3N0eWxlKj1ib3JkZXItYm90dG9tLWNvbG9yXSl7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLWxlZnQtY29sb3JdKXtib3JkZXItbGVmdC1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXdpZHRoXSl7Ym9yZGVyLXN0eWxlOnNvbGlkfS53cC1ibG9jay1pbWFnZSA6d2hlcmUoW3N0eWxlKj1ib3JkZXItdG9wLXdpZHRoXSl7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXJpZ2h0LXdpZHRoXSl7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkfS53cC1ibG9jay1pbWFnZSA6d2hlcmUoW3N0eWxlKj1ib3JkZXItYm90dG9tLXdpZHRoXSl7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLWxlZnQtd2lkdGhdKXtib3JkZXItbGVmdC1zdHlsZTpzb2xpZH0ud3AtYmxvY2staW1hZ2UgZmlndXJle21hcmdpbjowfS53cC1saWdodGJveC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpyZWxhdGl2ZX0ud3AtbGlnaHRib3gtY29udGFpbmVyIGltZ3tjdXJzb3I6em9vbS1pbn0ud3AtbGlnaHRib3gtY29udGFpbmVyIGltZzpob3ZlcitidXR0b257b3BhY2l0eToxfS53cC1saWdodGJveC1jb250YWluZXIgYnV0dG9ue2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JhY2tncm91bmQtY29sb3I6cmdiYSg5MCw5MCw5MCwuMjUpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjp6b29tLWluO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO29wYWNpdHk6MDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6MTZweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7d2lkdGg6MjBweDt6LWluZGV4OjEwMH0ud3AtbGlnaHRib3gtY29udGFpbmVyIGJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmU6M3B4IGF1dG8gcmdiYSg5MCw5MCw5MCwuMjUpO291dGxpbmU6M3B4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0OjNweH0ud3AtbGlnaHRib3gtY29udGFpbmVyIGJ1dHRvbjpob3ZlcntjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjF9LndwLWxpZ2h0Ym94LWNvbnRhaW5lciBidXR0b246Zm9jdXN7b3BhY2l0eToxfS53cC1saWdodGJveC1jb250YWluZXIgYnV0dG9uOmZvY3VzLC53cC1saWdodGJveC1jb250YWluZXIgYnV0dG9uOmhvdmVyLC53cC1saWdodGJveC1jb250YWluZXIgYnV0dG9uOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKTpub3QoLmhhcy1iYWNrZ3JvdW5kKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoOTAsOTAsOTAsLjI1KTtib3JkZXI6bm9uZX0ud3AtbGlnaHRib3gtb3ZlcmxheXtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnpvb20tb3V0O2hlaWdodDoxMDB2aDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3Zpc2liaWxpdHk6aGlkZGVuO3dpZHRoOjEwMHZ3O3otaW5kZXg6MTAwMDAwfS53cC1saWdodGJveC1vdmVybGF5IC5jbG9zZS1idXR0b257YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6NDBweDttaW4td2lkdGg6NDBweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6Y2FsYyhlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSArIDE2cHgpO3RvcDpjYWxjKGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSArIDE2cHgpO3otaW5kZXg6NTAwMDAwMH0ud3AtbGlnaHRib3gtb3ZlcmxheSAuY2xvc2UtYnV0dG9uOmZvY3VzLC53cC1saWdodGJveC1vdmVybGF5IC5jbG9zZS1idXR0b246aG92ZXIsLndwLWxpZ2h0Ym94LW92ZXJsYXkgLmNsb3NlLWJ1dHRvbjpub3QoOmhvdmVyKTpub3QoOmFjdGl2ZSk6bm90KC5oYXMtYmFja2dyb3VuZCl7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lfS53cC1saWdodGJveC1vdmVybGF5IC5saWdodGJveC1pbWFnZS1jb250YWluZXJ7aGVpZ2h0OnZhcigtLXdwLS1saWdodGJveC1jb250YWluZXItaGVpZ2h0KTtsZWZ0OjUwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDt3aWR0aDp2YXIoLS13cC0tbGlnaHRib3gtY29udGFpbmVyLXdpZHRoKTt6LWluZGV4Ojk5OTk5OTk5OTl9LndwLWxpZ2h0Ym94LW92ZXJsYXkgLndwLWJsb2NrLWltYWdle2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNmb3JtLW9yaWdpbjowIDA7d2lkdGg6MTAwJTt6LWluZGV4OjMwMDAwMDB9LndwLWxpZ2h0Ym94LW92ZXJsYXkgLndwLWJsb2NrLWltYWdlIGltZ3toZWlnaHQ6dmFyKC0td3AtLWxpZ2h0Ym94LWltYWdlLWhlaWdodCk7bWluLWhlaWdodDp2YXIoLS13cC0tbGlnaHRib3gtaW1hZ2UtaGVpZ2h0KTttaW4td2lkdGg6dmFyKC0td3AtLWxpZ2h0Ym94LWltYWdlLXdpZHRoKTt3aWR0aDp2YXIoLS13cC0tbGlnaHRib3gtaW1hZ2Utd2lkdGgpfS53cC1saWdodGJveC1vdmVybGF5IC53cC1ibG9jay1pbWFnZSBmaWdjYXB0aW9ue2Rpc3BsYXk6bm9uZX0ud3AtbGlnaHRib3gtb3ZlcmxheSBidXR0b257YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lfS53cC1saWdodGJveC1vdmVybGF5IC5zY3JpbXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7aGVpZ2h0OjEwMCU7b3BhY2l0eTouOTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3otaW5kZXg6MjAwMDAwMH0ud3AtbGlnaHRib3gtb3ZlcmxheS5hY3RpdmV7YW5pbWF0aW9uOnR1cm4tb24tdmlzaWJpbGl0eSAuMjVzIGJvdGg7dmlzaWJpbGl0eTp2aXNpYmxlfS53cC1saWdodGJveC1vdmVybGF5LmFjdGl2ZSBpbWd7YW5pbWF0aW9uOnR1cm4tb24tdmlzaWJpbGl0eSAuMzVzIGJvdGh9LndwLWxpZ2h0Ym94LW92ZXJsYXkuaGlkZWFuaW1hdGlvbmVuYWJsZWQ6bm90KC5hY3RpdmUpe2FuaW1hdGlvbjp0dXJuLW9mZi12aXNpYmlsaXR5IC4zNXMgYm90aH0ud3AtbGlnaHRib3gtb3ZlcmxheS5oaWRlYW5pbWF0aW9uZW5hYmxlZDpub3QoLmFjdGl2ZSkgaW1ne2FuaW1hdGlvbjp0dXJuLW9mZi12aXNpYmlsaXR5IC4yNXMgYm90aH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSl7LndwLWxpZ2h0Ym94LW92ZXJsYXkuem9vbS5hY3RpdmV7YW5pbWF0aW9uOm5vbmU7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZX0ud3AtbGlnaHRib3gtb3ZlcmxheS56b29tLmFjdGl2ZSAubGlnaHRib3gtaW1hZ2UtY29udGFpbmVye2FuaW1hdGlvbjpsaWdodGJveC16b29tLWluIC40c30ud3AtbGlnaHRib3gtb3ZlcmxheS56b29tLmFjdGl2ZSAubGlnaHRib3gtaW1hZ2UtY29udGFpbmVyIGltZ3thbmltYXRpb246bm9uZX0ud3AtbGlnaHRib3gtb3ZlcmxheS56b29tLmFjdGl2ZSAuc2NyaW17YW5pbWF0aW9uOnR1cm4tb24tdmlzaWJpbGl0eSAuNHMgZm9yd2FyZHN9LndwLWxpZ2h0Ym94LW92ZXJsYXkuem9vbS5oaWRlYW5pbWF0aW9uZW5hYmxlZDpub3QoLmFjdGl2ZSl7YW5pbWF0aW9uOm5vbmV9LndwLWxpZ2h0Ym94LW92ZXJsYXkuem9vbS5oaWRlYW5pbWF0aW9uZW5hYmxlZDpub3QoLmFjdGl2ZSkgLmxpZ2h0Ym94LWltYWdlLWNvbnRhaW5lcnthbmltYXRpb246bGlnaHRib3gtem9vbS1vdXQgLjRzfS53cC1saWdodGJveC1vdmVybGF5Lnpvb20uaGlkZWFuaW1hdGlvbmVuYWJsZWQ6bm90KC5hY3RpdmUpIC5saWdodGJveC1pbWFnZS1jb250YWluZXIgaW1ne2FuaW1hdGlvbjpub25lfS53cC1saWdodGJveC1vdmVybGF5Lnpvb20uaGlkZWFuaW1hdGlvbmVuYWJsZWQ6bm90KC5hY3RpdmUpIC5zY3JpbXthbmltYXRpb246dHVybi1vZmYtdmlzaWJpbGl0eSAuNHMgZm9yd2FyZHN9fUBrZXlmcmFtZXMgdHVybi1vbi12aXNpYmlsaXR5ezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgdHVybi1vZmYtdmlzaWJpbGl0eXswJXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfTk5JXtvcGFjaXR5OjA7dmlzaWJpbGl0eTp2aXNpYmxlfXRve29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbn19QGtleWZyYW1lcyBsaWdodGJveC16b29tLWluezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtNTB2dyArIHZhcigtLXdwLS1saWdodGJveC1pbml0aWFsLWxlZnQtcG9zaXRpb24pKSxjYWxjKC01MHZoICsgdmFyKC0td3AtLWxpZ2h0Ym94LWluaXRpYWwtdG9wLXBvc2l0aW9uKSkpIHNjYWxlKHZhcigtLXdwLS1saWdodGJveC1zY2FsZSkpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSBzY2FsZSgxKX19QGtleWZyYW1lcyBsaWdodGJveC16b29tLW91dHswJXt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgc2NhbGUoMSk7dmlzaWJpbGl0eTp2aXNpYmxlfTk5JXt2aXNpYmlsaXR5OnZpc2libGV9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC01MHZ3ICsgdmFyKC0td3AtLWxpZ2h0Ym94LWluaXRpYWwtbGVmdC1wb3NpdGlvbikpLGNhbGMoLTUwdmggKyB2YXIoLS13cC0tbGlnaHRib3gtaW5pdGlhbC10b3AtcG9zaXRpb24pKSkgc2NhbGUodmFyKC0td3AtLWxpZ2h0Ym94LXNjYWxlKSk7dmlzaWJpbGl0eTpoaWRkZW59fW9sLndwLWJsb2NrLWxhdGVzdC1jb21tZW50c3tib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLWxlZnQ6MH06d2hlcmUoLndwLWJsb2NrLWxhdGVzdC1jb21tZW50czpub3QoW3N0eWxlKj1saW5lLWhlaWdodF0gLndwLWJsb2NrLWxhdGVzdC1jb21tZW50c19fY29tbWVudCkpe2xpbmUtaGVpZ2h0OjEuMX06d2hlcmUoLndwLWJsb2NrLWxhdGVzdC1jb21tZW50czpub3QoW3N0eWxlKj1saW5lLWhlaWdodF0gLndwLWJsb2NrLWxhdGVzdC1jb21tZW50c19fY29tbWVudC1leGNlcnB0IHApKXtsaW5lLWhlaWdodDoxLjh9Lmhhcy1kYXRlcyA6d2hlcmUoLndwLWJsb2NrLWxhdGVzdC1jb21tZW50czpub3QoW3N0eWxlKj1saW5lLWhlaWdodF0pKSwuaGFzLWV4Y2VycHRzIDp3aGVyZSgud3AtYmxvY2stbGF0ZXN0LWNvbW1lbnRzOm5vdChbc3R5bGUqPWxpbmUtaGVpZ2h0XSkpe2xpbmUtaGVpZ2h0OjEuNX0ud3AtYmxvY2stbGF0ZXN0LWNvbW1lbnRzIC53cC1ibG9jay1sYXRlc3QtY29tbWVudHN7cGFkZGluZy1sZWZ0OjB9LndwLWJsb2NrLWxhdGVzdC1jb21tZW50c19fY29tbWVudHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWJvdHRvbToxZW19Lmhhcy1hdmF0YXJzIC53cC1ibG9jay1sYXRlc3QtY29tbWVudHNfX2NvbW1lbnR7bGlzdC1zdHlsZTpub25lO21pbi1oZWlnaHQ6Mi4yNWVtfS5oYXMtYXZhdGFycyAud3AtYmxvY2stbGF0ZXN0LWNvbW1lbnRzX19jb21tZW50IC53cC1ibG9jay1sYXRlc3QtY29tbWVudHNfX2NvbW1lbnQtZXhjZXJwdCwuaGFzLWF2YXRhcnMgLndwLWJsb2NrLWxhdGVzdC1jb21tZW50c19fY29tbWVudCAud3AtYmxvY2stbGF0ZXN0LWNvbW1lbnRzX19jb21tZW50LW1ldGF7bWFyZ2luLWxlZnQ6My4yNWVtfS53cC1ibG9jay1sYXRlc3QtY29tbWVudHNfX2NvbW1lbnQtZXhjZXJwdCBwe2ZvbnQtc2l6ZTouODc1ZW07bWFyZ2luOi4zNmVtIDAgMS40ZW19LndwLWJsb2NrLWxhdGVzdC1jb21tZW50c19fY29tbWVudC1kYXRle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43NWVtfS53cC1ibG9jay1sYXRlc3QtY29tbWVudHMgLmF2YXRhciwud3AtYmxvY2stbGF0ZXN0LWNvbW1lbnRzX19jb21tZW50LWF2YXRhcntib3JkZXItcmFkaXVzOjEuNWVtO2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtoZWlnaHQ6Mi41ZW07bWFyZ2luLXJpZ2h0Oi43NWVtO3dpZHRoOjIuNWVtfS53cC1ibG9jay1sYXRlc3QtY29tbWVudHNbY2xhc3MqPS1mb250LXNpemVdIGEsLndwLWJsb2NrLWxhdGVzdC1jb21tZW50c1tzdHlsZSo9Zm9udC1zaXplXSBhe2ZvbnQtc2l6ZTppbmhlcml0fS53cC1ibG9jay1sYXRlc3QtcG9zdHN7Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay1sYXRlc3QtcG9zdHMuYWxpZ25sZWZ0e21hcmdpbi1yaWdodDoyZW19LndwLWJsb2NrLWxhdGVzdC1wb3N0cy5hbGlnbnJpZ2h0e21hcmdpbi1sZWZ0OjJlbX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLndwLWJsb2NrLWxhdGVzdC1wb3N0c19fbGlzdHtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZy1sZWZ0OjB9LndwLWJsb2NrLWxhdGVzdC1wb3N0cy53cC1ibG9jay1sYXRlc3QtcG9zdHNfX2xpc3QgbGl7Y2xlYXI6Ym90aH0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmlzLWdyaWR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6MH0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmlzLWdyaWQgbGl7bWFyZ2luOjAgMS4yNWVtIDEuMjVlbSAwO3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpey53cC1ibG9jay1sYXRlc3QtcG9zdHMuY29sdW1ucy0yIGxpe3dpZHRoOmNhbGMoNTAlIC0gLjYyNWVtKX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmNvbHVtbnMtMiBsaTpudGgtY2hpbGQoMm4pe21hcmdpbi1yaWdodDowfS53cC1ibG9jay1sYXRlc3QtcG9zdHMuY29sdW1ucy0zIGxpe3dpZHRoOmNhbGMoMzMuMzMzMzMlIC0gLjgzMzMzZW0pfS53cC1ibG9jay1sYXRlc3QtcG9zdHMuY29sdW1ucy0zIGxpOm50aC1jaGlsZCgzbil7bWFyZ2luLXJpZ2h0OjB9LndwLWJsb2NrLWxhdGVzdC1wb3N0cy5jb2x1bW5zLTQgbGl7d2lkdGg6Y2FsYygyNSUgLSAuOTM3NWVtKX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmNvbHVtbnMtNCBsaTpudGgtY2hpbGQoNG4pe21hcmdpbi1yaWdodDowfS53cC1ibG9jay1sYXRlc3QtcG9zdHMuY29sdW1ucy01IGxpe3dpZHRoOmNhbGMoMjAlIC0gMWVtKX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmNvbHVtbnMtNSBsaTpudGgtY2hpbGQoNW4pe21hcmdpbi1yaWdodDowfS53cC1ibG9jay1sYXRlc3QtcG9zdHMuY29sdW1ucy02IGxpe3dpZHRoOmNhbGMoMTYuNjY2NjclIC0gMS4wNDE2N2VtKX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzLmNvbHVtbnMtNiBsaTpudGgtY2hpbGQoNm4pe21hcmdpbi1yaWdodDowfX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzX19wb3N0LWF1dGhvciwud3AtYmxvY2stbGF0ZXN0LXBvc3RzX19wb3N0LWRhdGV7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjgxMjVlbX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzX19wb3N0LWV4Y2VycHR7bWFyZ2luLWJvdHRvbToxZW07bWFyZ2luLXRvcDouNWVtfS53cC1ibG9jay1sYXRlc3QtcG9zdHNfX2ZlYXR1cmVkLWltYWdlIGF7ZGlzcGxheTppbmxpbmUtYmxvY2t9LndwLWJsb2NrLWxhdGVzdC1wb3N0c19fZmVhdHVyZWQtaW1hZ2UgaW1ne2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlO3dpZHRoOmF1dG99LndwLWJsb2NrLWxhdGVzdC1wb3N0c19fZmVhdHVyZWQtaW1hZ2UuYWxpZ25sZWZ0e2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjFlbX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzX19mZWF0dXJlZC1pbWFnZS5hbGlnbnJpZ2h0e2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjFlbX0ud3AtYmxvY2stbGF0ZXN0LXBvc3RzX19mZWF0dXJlZC1pbWFnZS5hbGlnbmNlbnRlcnttYXJnaW4tYm90dG9tOjFlbTt0ZXh0LWFsaWduOmNlbnRlcn1vbCx1bHtib3gtc2l6aW5nOmJvcmRlci1ib3h9b2wuaGFzLWJhY2tncm91bmQsdWwuaGFzLWJhY2tncm91bmR7cGFkZGluZzoxLjI1ZW0gMi4zNzVlbX0ud3AtYmxvY2stbWVkaWEtdGV4dHtib3gtc2l6aW5nOmJvcmRlci1ib3g7CiAgLyohcnRsOmJlZ2luOmlnbm9yZSovZGlyZWN0aW9uOmx0cjsKICAvKiFydGw6ZW5kOmlnbm9yZSovZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo1MCUgMWZyO2dyaWQtdGVtcGxhdGUtcm93czphdXRvfS53cC1ibG9jay1tZWRpYS10ZXh0Lmhhcy1tZWRpYS1vbi10aGUtcmlnaHR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciA1MCV9LndwLWJsb2NrLW1lZGlhLXRleHQuaXMtdmVydGljYWxseS1hbGlnbmVkLXRvcCAud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCwud3AtYmxvY2stbWVkaWEtdGV4dC5pcy12ZXJ0aWNhbGx5LWFsaWduZWQtdG9wIC53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYXthbGlnbi1zZWxmOnN0YXJ0fS53cC1ibG9jay1tZWRpYS10ZXh0IC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50LC53cC1ibG9jay1tZWRpYS10ZXh0IC53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYSwud3AtYmxvY2stbWVkaWEtdGV4dC5pcy12ZXJ0aWNhbGx5LWFsaWduZWQtY2VudGVyIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50LC53cC1ibG9jay1tZWRpYS10ZXh0LmlzLXZlcnRpY2FsbHktYWxpZ25lZC1jZW50ZXIgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhe2FsaWduLXNlbGY6Y2VudGVyfS53cC1ibG9jay1tZWRpYS10ZXh0LmlzLXZlcnRpY2FsbHktYWxpZ25lZC1ib3R0b20gLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnQsLndwLWJsb2NrLW1lZGlhLXRleHQuaXMtdmVydGljYWxseS1hbGlnbmVkLWJvdHRvbSAud3AtYmxvY2stbWVkaWEtdGV4dF9fbWVkaWF7YWxpZ24tc2VsZjplbmR9LndwLWJsb2NrLW1lZGlhLXRleHQgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhewogIC8qIXJ0bDpiZWdpbjppZ25vcmUqL2dyaWQtY29sdW1uOjE7Z3JpZC1yb3c6MTsKICAvKiFydGw6ZW5kOmlnbm9yZSovbWFyZ2luOjB9LndwLWJsb2NrLW1lZGlhLXRleHQgLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnR7ZGlyZWN0aW9uOmx0cjsKICAvKiFydGw6YmVnaW46aWdub3JlKi9ncmlkLWNvbHVtbjoyO2dyaWQtcm93OjE7CiAgLyohcnRsOmVuZDppZ25vcmUqL3BhZGRpbmc6MCA4JTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndwLWJsb2NrLW1lZGlhLXRleHQuaGFzLW1lZGlhLW9uLXRoZS1yaWdodCAud3AtYmxvY2stbWVkaWEtdGV4dF9fbWVkaWF7CiAgLyohcnRsOmJlZ2luOmlnbm9yZSovZ3JpZC1jb2x1bW46MjtncmlkLXJvdzoxCiAgLyohcnRsOmVuZDppZ25vcmUqL30ud3AtYmxvY2stbWVkaWEtdGV4dC5oYXMtbWVkaWEtb24tdGhlLXJpZ2h0IC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50ewogIC8qIXJ0bDpiZWdpbjppZ25vcmUqL2dyaWQtY29sdW1uOjE7Z3JpZC1yb3c6MQogIC8qIXJ0bDplbmQ6aWdub3JlKi99LndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIGltZywud3AtYmxvY2stbWVkaWEtdGV4dF9fbWVkaWEgdmlkZW97aGVpZ2h0OmF1dG87bWF4LXdpZHRoOnVuc2V0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoxMDAlfS53cC1ibG9jay1tZWRpYS10ZXh0LmlzLWltYWdlLWZpbGwgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhe2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjI1MHB4fS53cC1ibG9jay1tZWRpYS10ZXh0LmlzLWltYWdlLWZpbGwgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhPmF7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJX0ud3AtYmxvY2stbWVkaWEtdGV4dC5pcy1pbWFnZS1maWxsIC53cC1ibG9jay1tZWRpYS10ZXh0X19tZWRpYSBpbWd7Y2xpcDpyZWN0KDAsMCwwLDApO2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9QG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpey53cC1ibG9jay1tZWRpYS10ZXh0LmlzLXN0YWNrZWQtb24tbW9iaWxle2dyaWQtdGVtcGxhdGUtY29sdW1uczoxMDAlIWltcG9ydGFudH0ud3AtYmxvY2stbWVkaWEtdGV4dC5pcy1zdGFja2VkLW9uLW1vYmlsZSAud3AtYmxvY2stbWVkaWEtdGV4dF9fbWVkaWF7Z3JpZC1jb2x1bW46MTtncmlkLXJvdzoxfS53cC1ibG9jay1tZWRpYS10ZXh0LmlzLXN0YWNrZWQtb24tbW9iaWxlIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50e2dyaWQtY29sdW1uOjE7Z3JpZC1yb3c6Mn19LndwLWJsb2NrLW5hdmlnYXRpb257LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZpY2F0aW9uLXNldHRpbmc6ZmxleC1zdGFydDstLW5hdmlnYXRpb24tbGF5b3V0LWRpcmVjdGlvbjpyb3c7LS1uYXZpZ2F0aW9uLWxheW91dC13cmFwOndyYXA7LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZ5OmZsZXgtc3RhcnQ7LS1uYXZpZ2F0aW9uLWxheW91dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LndwLWJsb2NrLW5hdmlnYXRpb24gdWx7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDowO3BhZGRpbmctbGVmdDowfS53cC1ibG9jay1uYXZpZ2F0aW9uIHVsLC53cC1ibG9jay1uYXZpZ2F0aW9uIHVsIGxpe2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjB9LndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlfS53cC1ibG9jay1uYXZpZ2F0aW9uIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW0gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyOmVtcHR5e2Rpc3BsYXk6bm9uZX0ud3AtYmxvY2stbmF2aWdhdGlvbiAud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtX19jb250ZW50e2Rpc3BsYXk6YmxvY2t9LndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbV9fY29udGVudC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnR7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stbmF2aWdhdGlvbi5oYXMtdGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSAud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtX19jb250ZW50LC53cC1ibG9jay1uYXZpZ2F0aW9uLmhhcy10ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQ6YWN0aXZlLC53cC1ibG9jay1uYXZpZ2F0aW9uLmhhcy10ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQ6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ud3AtYmxvY2stbmF2aWdhdGlvbi5oYXMtdGV4dC1kZWNvcmF0aW9uLWxpbmUtdGhyb3VnaCAud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtX19jb250ZW50LC53cC1ibG9jay1uYXZpZ2F0aW9uLmhhcy10ZXh0LWRlY29yYXRpb24tbGluZS10aHJvdWdoIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQ6YWN0aXZlLC53cC1ibG9jay1uYXZpZ2F0aW9uLmhhcy10ZXh0LWRlY29yYXRpb24tbGluZS10aHJvdWdoIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQ6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0ud3AtYmxvY2stbmF2aWdhdGlvbjp3aGVyZSg6bm90KFtjbGFzcyo9aGFzLXRleHQtZGVjb3JhdGlvbl0pKSBhe3RleHQtZGVjb3JhdGlvbjpub25lfS53cC1ibG9jay1uYXZpZ2F0aW9uOndoZXJlKDpub3QoW2NsYXNzKj1oYXMtdGV4dC1kZWNvcmF0aW9uXSkpIGE6YWN0aXZlLC53cC1ibG9jay1uYXZpZ2F0aW9uOndoZXJlKDpub3QoW2NsYXNzKj1oYXMtdGV4dC1kZWNvcmF0aW9uXSkpIGE6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbnthbGlnbi1zZWxmOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyOm5vbmU7Y29sb3I6Y3VycmVudENvbG9yO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDouNmVtO2xpbmUtaGVpZ2h0OjA7bWFyZ2luLWxlZnQ6LjI1ZW07cGFkZGluZzowO3dpZHRoOi42ZW19LndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbiBzdmd7c3Ryb2tlOmN1cnJlbnRDb2xvcjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6aW5oZXJpdDttYXJnaW4tdG9wOi4wNzVlbTt3aWR0aDppbmhlcml0fS53cC1ibG9jay1uYXZpZ2F0aW9uLmlzLXZlcnRpY2Fsey0tbmF2aWdhdGlvbi1sYXlvdXQtZGlyZWN0aW9uOmNvbHVtbjstLW5hdmlnYXRpb24tbGF5b3V0LWp1c3RpZnk6aW5pdGlhbDstLW5hdmlnYXRpb24tbGF5b3V0LWFsaWduOmZsZXgtc3RhcnR9LndwLWJsb2NrLW5hdmlnYXRpb24ubm8td3JhcHstLW5hdmlnYXRpb24tbGF5b3V0LXdyYXA6bm93cmFwfS53cC1ibG9jay1uYXZpZ2F0aW9uLml0ZW1zLWp1c3RpZmllZC1jZW50ZXJ7LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZpY2F0aW9uLXNldHRpbmc6Y2VudGVyOy0tbmF2aWdhdGlvbi1sYXlvdXQtanVzdGlmeTpjZW50ZXJ9LndwLWJsb2NrLW5hdmlnYXRpb24uaXRlbXMtanVzdGlmaWVkLWNlbnRlci5pcy12ZXJ0aWNhbHstLW5hdmlnYXRpb24tbGF5b3V0LWFsaWduOmNlbnRlcn0ud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtcmlnaHR7LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZpY2F0aW9uLXNldHRpbmc6ZmxleC1lbmQ7LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZ5OmZsZXgtZW5kfS53cC1ibG9jay1uYXZpZ2F0aW9uLml0ZW1zLWp1c3RpZmllZC1yaWdodC5pcy12ZXJ0aWNhbHstLW5hdmlnYXRpb24tbGF5b3V0LWFsaWduOmZsZXgtZW5kfS53cC1ibG9jay1uYXZpZ2F0aW9uLml0ZW1zLWp1c3RpZmllZC1zcGFjZS1iZXR3ZWVuey0tbmF2aWdhdGlvbi1sYXlvdXQtanVzdGlmaWNhdGlvbi1zZXR0aW5nOnNwYWNlLWJldHdlZW47LS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZ5OnNwYWNlLWJldHdlZW59LndwLWJsb2NrLW5hdmlnYXRpb24gLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7YWxpZ24taXRlbXM6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjA7bGVmdDotMXB4O29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBsaW5lYXI7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MDt6LWluZGV4OjJ9LndwLWJsb2NrLW5hdmlnYXRpb24gLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXI+LndwLWJsb2NrLW5hdmlnYXRpb24taXRlbT4ud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtX19jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MX0ud3AtYmxvY2stbmF2aWdhdGlvbiAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcj4ud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtPi53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDowfS53cC1ibG9jay1uYXZpZ2F0aW9uIC5oYXMtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnR7bWFyZ2luOjB9QG1lZGlhIChtaW4td2lkdGg6NzgycHgpey53cC1ibG9jay1uYXZpZ2F0aW9uIC5oYXMtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcntsZWZ0OjEwMCU7dG9wOi0xcHh9LndwLWJsb2NrLW5hdmlnYXRpb24gLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyOmJlZm9yZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMDAlO3dpZHRoOi41ZW19LndwLWJsb2NrLW5hdmlnYXRpb24gLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbnttYXJnaW4tcmlnaHQ6LjI1ZW19LndwLWJsb2NrLW5hdmlnYXRpb24gLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbiBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfX0ud3AtYmxvY2stbmF2aWdhdGlvbiAuaGFzLWNoaWxkOm5vdCgub3Blbi1vbi1jbGljayk6aG92ZXI+LndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2hlaWdodDphdXRvO21pbi13aWR0aDoyMDBweDtvcGFjaXR5OjE7b3ZlcmZsb3c6dmlzaWJsZTt2aXNpYmlsaXR5OnZpc2libGU7d2lkdGg6YXV0b30ud3AtYmxvY2stbmF2aWdhdGlvbiAuaGFzLWNoaWxkOm5vdCgub3Blbi1vbi1jbGljayk6bm90KC5vcGVuLW9uLWhvdmVyLWNsaWNrKTpmb2N1cy13aXRoaW4+LndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2hlaWdodDphdXRvO21pbi13aWR0aDoyMDBweDtvcGFjaXR5OjE7b3ZlcmZsb3c6dmlzaWJsZTt2aXNpYmlsaXR5OnZpc2libGU7d2lkdGg6YXV0b30ud3AtYmxvY2stbmF2aWdhdGlvbiAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uLXN1Ym1lbnVfX3RvZ2dsZVthcmlhLWV4cGFuZGVkPXRydWVdfi53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcntoZWlnaHQ6YXV0bzttaW4td2lkdGg6MjAwcHg7b3BhY2l0eToxO292ZXJmbG93OnZpc2libGU7dmlzaWJpbGl0eTp2aXNpYmxlO3dpZHRoOmF1dG99LndwLWJsb2NrLW5hdmlnYXRpb24uaGFzLWJhY2tncm91bmQgLmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7bGVmdDowO3RvcDoxMDAlfUBtZWRpYSAobWluLXdpZHRoOjc4MnB4KXsud3AtYmxvY2stbmF2aWdhdGlvbi5oYXMtYmFja2dyb3VuZCAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7bGVmdDoxMDAlO3RvcDowfX0ud3AtYmxvY2stbmF2aWdhdGlvbi1zdWJtZW51e2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZX0ud3AtYmxvY2stbmF2aWdhdGlvbi1zdWJtZW51IC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWljb24gc3Zne3N0cm9rZTpjdXJyZW50Q29sb3J9YnV0dG9uLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbV9fY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtc3R5bGU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O3RleHQtdHJhbnNmb3JtOmluaGVyaXR9LndwLWJsb2NrLW5hdmlnYXRpb24tc3VibWVudV9fdG9nZ2xle2N1cnNvcjpwb2ludGVyfS53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW0ub3Blbi1vbi1jbGljayAud3AtYmxvY2stbmF2aWdhdGlvbi1zdWJtZW51X190b2dnbGV7cGFkZGluZy1yaWdodDouODVlbX0ud3AtYmxvY2stbmF2aWdhdGlvbi1pdGVtLm9wZW4tb24tY2xpY2sgLndwLWJsb2NrLW5hdmlnYXRpb24tc3VibWVudV9fdG9nZ2xlKy53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWljb257bWFyZ2luLWxlZnQ6LS42ZW07cG9pbnRlci1ldmVudHM6bm9uZX0ud3AtYmxvY2stbmF2aWdhdGlvbiAud3AtYmxvY2stcGFnZS1saXN0LC53cC1ibG9jay1uYXZpZ2F0aW9uX19jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY2xvc2UsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jb250ZW50LC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWRpYWxvZ3tnYXA6aW5oZXJpdH06d2hlcmUoLndwLWJsb2NrLW5hdmlnYXRpb24uaGFzLWJhY2tncm91bmQgLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbSBhOm5vdCgud3AtZWxlbWVudC1idXR0b24pKSw6d2hlcmUoLndwLWJsb2NrLW5hdmlnYXRpb24uaGFzLWJhY2tncm91bmQgLndwLWJsb2NrLW5hdmlnYXRpb24tc3VibWVudSBhOm5vdCgud3AtZWxlbWVudC1idXR0b24pKXtwYWRkaW5nOi41ZW0gMWVtfTp3aGVyZSgud3AtYmxvY2stbmF2aWdhdGlvbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbSBhOm5vdCgud3AtZWxlbWVudC1idXR0b24pKSw6d2hlcmUoLndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uLXN1Ym1lbnUgYTpub3QoLndwLWVsZW1lbnQtYnV0dG9uKSksOndoZXJlKC53cC1ibG9jay1uYXZpZ2F0aW9uIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciAud3AtYmxvY2stbmF2aWdhdGlvbi1zdWJtZW51IGJ1dHRvbi53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnQpLDp3aGVyZSgud3AtYmxvY2stbmF2aWdhdGlvbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLXBhZ2VzLWxpc3RfX2l0ZW0gYnV0dG9uLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbV9fY29udGVudCl7cGFkZGluZzouNWVtIDFlbX0ud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtcmlnaHQgLndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lciAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciwud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtcmlnaHQgLndwLWJsb2NrLXBhZ2UtbGlzdD4uaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciwud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtc3BhY2UtYmV0d2VlbiAud3AtYmxvY2stcGFnZS1saXN0Pi5oYXMtY2hpbGQ6bGFzdC1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb24uaXRlbXMtanVzdGlmaWVkLXNwYWNlLWJldHdlZW4+LndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lcj4uaGFzLWNoaWxkOmxhc3QtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2xlZnQ6YXV0bztyaWdodDowfS53cC1ibG9jay1uYXZpZ2F0aW9uLml0ZW1zLWp1c3RpZmllZC1yaWdodCAud3AtYmxvY2stbmF2aWdhdGlvbl9fY29udGFpbmVyIC5oYXMtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciwud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtcmlnaHQgLndwLWJsb2NrLXBhZ2UtbGlzdD4uaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb24uaXRlbXMtanVzdGlmaWVkLXNwYWNlLWJldHdlZW4gLndwLWJsb2NrLXBhZ2UtbGlzdD4uaGFzLWNoaWxkOmxhc3QtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciwud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtc3BhY2UtYmV0d2Vlbj4ud3AtYmxvY2stbmF2aWdhdGlvbl9fY29udGFpbmVyPi5oYXMtY2hpbGQ6bGFzdC1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2xlZnQ6LTFweDtyaWdodDotMXB4fUBtZWRpYSAobWluLXdpZHRoOjc4MnB4KXsud3AtYmxvY2stbmF2aWdhdGlvbi5pdGVtcy1qdXN0aWZpZWQtcmlnaHQgLndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lciAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb24uaXRlbXMtanVzdGlmaWVkLXJpZ2h0IC53cC1ibG9jay1wYWdlLWxpc3Q+Lmhhcy1jaGlsZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyLC53cC1ibG9jay1uYXZpZ2F0aW9uLml0ZW1zLWp1c3RpZmllZC1zcGFjZS1iZXR3ZWVuIC53cC1ibG9jay1wYWdlLWxpc3Q+Lmhhcy1jaGlsZDpsYXN0LWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lciAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb24uaXRlbXMtanVzdGlmaWVkLXNwYWNlLWJldHdlZW4+LndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lcj4uaGFzLWNoaWxkOmxhc3QtY2hpbGQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcntsZWZ0OmF1dG87cmlnaHQ6MTAwJX19LndwLWJsb2NrLW5hdmlnYXRpb246bm90KC5oYXMtYmFja2dyb3VuZCkgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjE1KX0ud3AtYmxvY2stbmF2aWdhdGlvbi5oYXMtYmFja2dyb3VuZCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS53cC1ibG9jay1uYXZpZ2F0aW9uOm5vdCguaGFzLXRleHQtY29sb3IpIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcntjb2xvcjojMDAwfS53cC1ibG9jay1uYXZpZ2F0aW9uX19jb250YWluZXJ7YWxpZ24taXRlbXM6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtYWxpZ24saW5pdGlhbCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnZhcigtLW5hdmlnYXRpb24tbGF5b3V0LWRpcmVjdGlvbixpbml0aWFsKTtmbGV4LXdyYXA6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtd3JhcCx3cmFwKTtqdXN0aWZ5LWNvbnRlbnQ6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtanVzdGlmeSxpbml0aWFsKTtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjB9LndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lciAuaXMtcmVzcG9uc2l2ZXtkaXNwbGF5Om5vbmV9LndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lcjpvbmx5LWNoaWxkLC53cC1ibG9jay1wYWdlLWxpc3Q6b25seS1jaGlsZHtmbGV4LWdyb3c6MX1Aa2V5ZnJhbWVzIG92ZXJsYXktbWVudV9fZmFkZS1pbi1hbmltYXRpb257MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41ZW0pfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVye2JvdHRvbTowO2Rpc3BsYXk6bm9uZTtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6MH0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIgOndoZXJlKC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW0gYSl7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIgLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNvbnRlbnR7YWxpZ24taXRlbXM6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtYWxpZ24saW5pdGlhbCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnZhcigtLW5hdmlnYXRpb24tbGF5b3V0LWRpcmVjdGlvbixpbml0aWFsKTtmbGV4LXdyYXA6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtd3JhcCx3cmFwKTtqdXN0aWZ5LWNvbnRlbnQ6dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtanVzdGlmeSxpbml0aWFsKX0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXI6bm90KC5pcy1tZW51LW9wZW4uaXMtbWVudS1vcGVuKXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQhaW1wb3J0YW50O2NvbG9yOmluaGVyaXQhaW1wb3J0YW50fS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW57YW5pbWF0aW9uOm92ZXJsYXktbWVudV9fZmFkZS1pbi1hbmltYXRpb24gLjFzIGVhc2Utb3V0O2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6YXV0bztwYWRkaW5nOmNsYW1wKDFyZW0sdmFyKC0td3AtLXN0eWxlLS1yb290LS1wYWRkaW5nLXRvcCksMjByZW0pIGNsYW1wKDFyZW0sdmFyKC0td3AtLXN0eWxlLS1yb290LS1wYWRkaW5nLXJpZ2h0KSwyMHJlbSkgY2xhbXAoMXJlbSx2YXIoLS13cC0tc3R5bGUtLXJvb3QtLXBhZGRpbmctYm90dG9tKSwyMHJlbSkgY2xhbXAoMXJlbSx2YXIoLS13cC0tc3R5bGUtLXJvb3QtLXBhZGRpbmctbGVmdCksMjBlbSk7ei1pbmRleDoxMDAwMDB9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbnthbmltYXRpb24tZGVsYXk6MHM7YW5pbWF0aW9uLWR1cmF0aW9uOjFtc319LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudHthbGlnbi1pdGVtczp2YXIoLS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZpY2F0aW9uLXNldHRpbmcsaW5oZXJpdCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6bm93cmFwO292ZXJmbG93OnZpc2libGU7cGFkZGluZy10b3A6Y2FsYygycmVtICsgMjRweCl9LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCwud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jb250ZW50IC53cC1ibG9jay1uYXZpZ2F0aW9uX19jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCAud3AtYmxvY2stcGFnZS1saXN0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNvbnRlbnQgLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtaWNvbntkaXNwbGF5Om5vbmV9LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCAuaGFzLWNoaWxkIC53cC1ibG9jay1uYXZpZ2F0aW9uX19zdWJtZW51LWNvbnRhaW5lcntib3JkZXI6bm9uZTtoZWlnaHQ6YXV0bzttaW4td2lkdGg6MjAwcHg7b3BhY2l0eToxO292ZXJmbG93OmluaXRpYWw7cGFkZGluZy1sZWZ0OjJyZW07cGFkZGluZy1yaWdodDoycmVtO3Bvc2l0aW9uOnN0YXRpYzt2aXNpYmlsaXR5OnZpc2libGU7d2lkdGg6YXV0b30ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jb250ZW50IC53cC1ibG9jay1uYXZpZ2F0aW9uX19jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7Z2FwOmluaGVyaXR9LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7cGFkZGluZy10b3A6dmFyKC0td3AtLXN0eWxlLS1ibG9jay1nYXAsMmVtKX0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jb250ZW50IC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2NvbnRlbnR7cGFkZGluZzowfS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNvbnRlbnQgLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbSwud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jb250ZW50IC53cC1ibG9jay1uYXZpZ2F0aW9uX19jb250YWluZXIsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY29udGVudCAud3AtYmxvY2stcGFnZS1saXN0e2FsaWduLWl0ZW1zOnZhcigtLW5hdmlnYXRpb24tbGF5b3V0LWp1c3RpZmljYXRpb24tc2V0dGluZyxpbml0aWFsKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbSwud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW0gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyLC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX2NvbnRhaW5lciwud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXIuaXMtbWVudS1vcGVuIC53cC1ibG9jay1wYWdlLWxpc3R7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdCFpbXBvcnRhbnR9LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXIud3AtYmxvY2stbmF2aWdhdGlvbl9fc3VibWVudS1jb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpey53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lcjpub3QoLmhpZGRlbi1ieS1kZWZhdWx0KTpub3QoLmlzLW1lbnUtb3Blbil7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTt6LWluZGV4OmF1dG99LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyOm5vdCguaGlkZGVuLWJ5LWRlZmF1bHQpOm5vdCguaXMtbWVudS1vcGVuKSAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY2xvc2V7ZGlzcGxheTpub25lfS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVyLndwLWJsb2NrLW5hdmlnYXRpb25fX3N1Ym1lbnUtY29udGFpbmVye2xlZnQ6MH19LndwLWJsb2NrLW5hdmlnYXRpb246bm90KC5oYXMtYmFja2dyb3VuZCkgLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3BlbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LndwLWJsb2NrLW5hdmlnYXRpb246bm90KC5oYXMtdGV4dC1jb2xvcikgLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLmlzLW1lbnUtb3Blbntjb2xvcjojMDAwfS53cC1ibG9jay1uYXZpZ2F0aW9uX190b2dnbGVfYnV0dG9uX2xhYmVse2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjcwMH0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY2xvc2UsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLW9wZW57YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjpjdXJyZW50Q29sb3I7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7dmVydGljYWwtYWxpZ246bWlkZGxlfS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1jbG9zZSBzdmcsLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLW9wZW4gc3Zne2ZpbGw6Y3VycmVudENvbG9yO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjI0cHg7cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoyNHB4fS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1vcGVue2Rpc3BsYXk6ZmxleH0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItb3Blbi53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNvbnRhaW5lci1vcGVuLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLW9wZW57Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fUBtZWRpYSAobWluLXdpZHRoOjYwMHB4KXsud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItb3Blbjpub3QoLmFsd2F5cy1zaG93bil7ZGlzcGxheTpub25lfX0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jb250YWluZXItY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt6LWluZGV4OjJ9LndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNsb3NlLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNsb3NlLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNsb3Nle2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH0ud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jbG9zZXt3aWR0aDoxMDAlfS5oYXMtbW9kYWwtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1jbG9zZXttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO21heC13aWR0aDp2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplLDEwMCUpfS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNsb3NlOmZvY3Vze291dGxpbmU6bm9uZX0uaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWNsb3NlLC5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtY29udGFpbmVyLWNvbnRlbnQsLmlzLW1lbnUtb3BlbiAud3AtYmxvY2stbmF2aWdhdGlvbl9fcmVzcG9uc2l2ZS1kaWFsb2d7Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFzLW1vZGFsLW9wZW4gLmFkbWluLWJhciAuaXMtbWVudS1vcGVuIC53cC1ibG9jay1uYXZpZ2F0aW9uX19yZXNwb25zaXZlLWRpYWxvZ3ttYXJnaW4tdG9wOjQ2cHh9QG1lZGlhIChtaW4td2lkdGg6NzgycHgpey5oYXMtbW9kYWwtb3BlbiAuYWRtaW4tYmFyIC5pcy1tZW51LW9wZW4gLndwLWJsb2NrLW5hdmlnYXRpb25fX3Jlc3BvbnNpdmUtZGlhbG9ne21hcmdpbi10b3A6MzJweH19aHRtbC5oYXMtbW9kYWwtb3BlbntvdmVyZmxvdzpoaWRkZW59LndwLWJsb2NrLW5hdmlnYXRpb24gLndwLWJsb2NrLW5hdmlnYXRpb24taXRlbV9fbGFiZWx7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS53cC1ibG9jay1uYXZpZ2F0aW9uIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW1fX2Rlc2NyaXB0aW9ue2Rpc3BsYXk6bm9uZX0ud3AtYmxvY2stbmF2aWdhdGlvbiAud3AtYmxvY2stcGFnZS1saXN0e2FsaWduLWl0ZW1zOnZhcigtLW5hdmlnYXRpb24tbGF5b3V0LWFsaWduLGluaXRpYWwpO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246dmFyKC0tbmF2aWdhdGlvbi1sYXlvdXQtZGlyZWN0aW9uLGluaXRpYWwpO2ZsZXgtd3JhcDp2YXIoLS1uYXZpZ2F0aW9uLWxheW91dC13cmFwLHdyYXApO2p1c3RpZnktY29udGVudDp2YXIoLS1uYXZpZ2F0aW9uLWxheW91dC1qdXN0aWZ5LGluaXRpYWwpfS53cC1ibG9jay1uYXZpZ2F0aW9uIC53cC1ibG9jay1uYXZpZ2F0aW9uLWl0ZW17YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5pcy1zbWFsbC10ZXh0e2ZvbnQtc2l6ZTouODc1ZW19LmlzLXJlZ3VsYXItdGV4dHtmb250LXNpemU6MWVtfS5pcy1sYXJnZS10ZXh0e2ZvbnQtc2l6ZToyLjI1ZW19LmlzLWxhcmdlci10ZXh0e2ZvbnQtc2l6ZTozZW19Lmhhcy1kcm9wLWNhcDpub3QoOmZvY3VzKTpmaXJzdC1sZXR0ZXJ7ZmxvYXQ6bGVmdDtmb250LXNpemU6OC40ZW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MTAwO2xpbmUtaGVpZ2h0Oi42ODttYXJnaW46LjA1ZW0gLjFlbSAwIDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWJvZHkucnRsIC5oYXMtZHJvcC1jYXA6bm90KDpmb2N1cyk6Zmlyc3QtbGV0dGVye2Zsb2F0Om5vbmU7bWFyZ2luLWxlZnQ6LjFlbX1wLmhhcy1kcm9wLWNhcC5oYXMtYmFja2dyb3VuZHtvdmVyZmxvdzpoaWRkZW59cC5oYXMtYmFja2dyb3VuZHtwYWRkaW5nOjEuMjVlbSAyLjM3NWVtfTp3aGVyZShwLmhhcy10ZXh0LWNvbG9yOm5vdCguaGFzLWxpbmstY29sb3IpKSBhe2NvbG9yOmluaGVyaXR9cC5oYXMtdGV4dC1hbGlnbi1sZWZ0W3N0eWxlKj0id3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyIl0scC5oYXMtdGV4dC1hbGlnbi1yaWdodFtzdHlsZSo9IndyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCJde3JvdGF0ZToxODBkZWd9LndwLWJsb2NrLXBvc3QtYXV0aG9ye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ud3AtYmxvY2stcG9zdC1hdXRob3JfX2J5bGluZXtmb250LXNpemU6LjVlbTttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowO3dpZHRoOjEwMCV9LndwLWJsb2NrLXBvc3QtYXV0aG9yX19hdmF0YXJ7bWFyZ2luLXJpZ2h0OjFlbX0ud3AtYmxvY2stcG9zdC1hdXRob3JfX2Jpb3tmb250LXNpemU6LjdlbTttYXJnaW4tYm90dG9tOi43ZW19LndwLWJsb2NrLXBvc3QtYXV0aG9yX19jb250ZW50e2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MX0ud3AtYmxvY2stcG9zdC1hdXRob3JfX25hbWV7bWFyZ2luOjB9LndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybVtzdHlsZSo9Zm9udC13ZWlnaHRdIDp3aGVyZSguY29tbWVudC1yZXBseS10aXRsZSl7Zm9udC13ZWlnaHQ6aW5oZXJpdH0ud3AtYmxvY2stcG9zdC1jb21tZW50cy1mb3JtW3N0eWxlKj1mb250LWZhbWlseV0gOndoZXJlKC5jb21tZW50LXJlcGx5LXRpdGxlKXtmb250LWZhbWlseTppbmhlcml0fS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm1bY2xhc3MqPS1mb250LXNpemVdIDp3aGVyZSguY29tbWVudC1yZXBseS10aXRsZSksLndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybVtzdHlsZSo9Zm9udC1zaXplXSA6d2hlcmUoLmNvbW1lbnQtcmVwbHktdGl0bGUpe2ZvbnQtc2l6ZTppbmhlcml0fS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm1bc3R5bGUqPWxpbmUtaGVpZ2h0XSA6d2hlcmUoLmNvbW1lbnQtcmVwbHktdGl0bGUpe2xpbmUtaGVpZ2h0OmluaGVyaXR9LndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybVtzdHlsZSo9Zm9udC1zdHlsZV0gOndoZXJlKC5jb21tZW50LXJlcGx5LXRpdGxlKXtmb250LXN0eWxlOmluaGVyaXR9LndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybVtzdHlsZSo9bGV0dGVyLXNwYWNpbmddIDp3aGVyZSguY29tbWVudC1yZXBseS10aXRsZSl7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdH0ud3AtYmxvY2stcG9zdC1jb21tZW50cy1mb3JtIGlucHV0W3R5cGU9c3VibWl0XXtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3RleHQtYWxpZ246Y2VudGVyfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gdGV4dGFyZWF7Ym9yZGVyOjFweCBzb2xpZCAjOTQ5NDk0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjFlbX0ud3AtYmxvY2stcG9zdC1jb21tZW50cy1mb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwud3AtYmxvY2stcG9zdC1jb21tZW50cy1mb3JtIHRleHRhcmVhe3BhZGRpbmc6Y2FsYyguNjY3ZW0gKyAycHgpfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWhpZGRlbl0pLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtZm9ybSB0ZXh0YXJlYXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtZm9ybS1hdXRob3IgbGFiZWwsLndwLWJsb2NrLXBvc3QtY29tbWVudHMtZm9ybSAuY29tbWVudC1mb3JtLWVtYWlsIGxhYmVsLC53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtZm9ybS11cmwgbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOi4yNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnR7ZGlzcGxheTpmbGV4O2dhcDouMjVlbX0ud3AtYmxvY2stcG9zdC1jb21tZW50cy1mb3JtIC5jb21tZW50LWZvcm0tY29va2llcy1jb25zZW50ICN3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudHttYXJnaW4tdG9wOi4zNWVtfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtcmVwbHktdGl0bGV7bWFyZ2luLWJvdHRvbTowfS53cC1ibG9jay1wb3N0LWNvbW1lbnRzLWZvcm0gLmNvbW1lbnQtcmVwbHktdGl0bGUgOndoZXJlKHNtYWxsKXtmb250LXNpemU6dmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0sc21hbGxlcik7bWFyZ2luLWxlZnQ6LjVlbX0ud3AtYmxvY2stcG9zdC1kYXRle2JveC1zaXppbmc6Ym9yZGVyLWJveH06d2hlcmUoLndwLWJsb2NrLXBvc3QtZXhjZXJwdCl7bWFyZ2luLWJvdHRvbTp2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCk7bWFyZ2luLXRvcDp2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCl9LndwLWJsb2NrLXBvc3QtZXhjZXJwdF9fZXhjZXJwdHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS53cC1ibG9jay1wb3N0LWV4Y2VycHRfX21vcmUtdGV4dHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDp2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCl9LndwLWJsb2NrLXBvc3QtZXhjZXJwdF9fbW9yZS1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9LndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2UgYXtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIGltZ3tib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjEwMCU7dmVydGljYWwtYWxpZ246Ym90dG9tO3dpZHRoOjEwMCV9LndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2UuYWxpZ25mdWxsIGltZywud3AtYmxvY2stcG9zdC1mZWF0dXJlZC1pbWFnZS5hbGlnbndpZGUgaW1ne3dpZHRoOjEwMCV9LndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2UgLndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2VfX292ZXJsYXkuaGFzLWJhY2tncm91bmQtZGlte2JhY2tncm91bmQtY29sb3I6IzAwMDtpbnNldDowO3Bvc2l0aW9uOmFic29sdXRlfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdle3Bvc2l0aW9uOnJlbGF0aXZlfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWdyYWRpZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2UgLndwLWJsb2NrLXBvc3QtZmVhdHVyZWQtaW1hZ2VfX292ZXJsYXkuaGFzLWJhY2tncm91bmQtZGltLTB7b3BhY2l0eTowfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS0xMHtvcGFjaXR5Oi4xfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS0yMHtvcGFjaXR5Oi4yfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS0zMHtvcGFjaXR5Oi4zfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS00MHtvcGFjaXR5Oi40fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS01MHtvcGFjaXR5Oi41fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS02MHtvcGFjaXR5Oi42fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS03MHtvcGFjaXR5Oi43fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS04MHtvcGFjaXR5Oi44fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS05MHtvcGFjaXR5Oi45fS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlIC53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlX19vdmVybGF5Lmhhcy1iYWNrZ3JvdW5kLWRpbS0xMDB7b3BhY2l0eToxfS53cC1ibG9jay1wb3N0LWZlYXR1cmVkLWltYWdlOndoZXJlKC5hbGlnbmxlZnQsLmFsaWducmlnaHQpe3dpZHRoOjEwMCV9LndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rIC53cC1ibG9jay1wb3N0LW5hdmlnYXRpb24tbGlua19fYXJyb3ctcHJldmlvdXN7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjFjaH0ud3AtYmxvY2stcG9zdC1uYXZpZ2F0aW9uLWxpbmsgLndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rX19hcnJvdy1wcmV2aW91czpub3QoLmlzLWFycm93LWNoZXZyb24pe3RyYW5zZm9ybTpzY2FsZVgoMSl9LndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rIC53cC1ibG9jay1wb3N0LW5hdmlnYXRpb24tbGlua19fYXJyb3ctbmV4dHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDoxY2h9LndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rIC53cC1ibG9jay1wb3N0LW5hdmlnYXRpb24tbGlua19fYXJyb3ctbmV4dDpub3QoLmlzLWFycm93LWNoZXZyb24pe3RyYW5zZm9ybTpzY2FsZVgoMSl9LndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rLmhhcy10ZXh0LWFsaWduLWxlZnRbc3R5bGUqPSJ3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyIl0sLndwLWJsb2NrLXBvc3QtbmF2aWdhdGlvbi1saW5rLmhhcy10ZXh0LWFsaWduLXJpZ2h0W3N0eWxlKj0id3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCJde3JvdGF0ZToxODBkZWd9LndwLWJsb2NrLXBvc3QtdGVybXN7Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay1wb3N0LXRlcm1zIC53cC1ibG9jay1wb3N0LXRlcm1zX19zZXBhcmF0b3J7d2hpdGUtc3BhY2U6cHJlLXdyYXB9LndwLWJsb2NrLXBvc3QtdGltZS10by1yZWFkLC53cC1ibG9jay1wb3N0LXRpdGxle2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stcG9zdC10aXRsZXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndwLWJsb2NrLXBvc3QtdGl0bGUgYXtkaXNwbGF5OmlubGluZS1ibG9ja30ud3AtYmxvY2stcHJlZm9ybWF0dGVke2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH06d2hlcmUoLndwLWJsb2NrLXByZWZvcm1hdHRlZC5oYXMtYmFja2dyb3VuZCl7cGFkZGluZzoxLjI1ZW0gMi4zNzVlbX0ud3AtYmxvY2stcHVsbHF1b3Rle2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7cGFkZGluZzozZW0gMDt0ZXh0LWFsaWduOmNlbnRlcn0ud3AtYmxvY2stcHVsbHF1b3RlIGJsb2NrcXVvdGUsLndwLWJsb2NrLXB1bGxxdW90ZSBjaXRlLC53cC1ibG9jay1wdWxscXVvdGUgcHtjb2xvcjppbmhlcml0fS53cC1ibG9jay1wdWxscXVvdGUuYWxpZ25sZWZ0LC53cC1ibG9jay1wdWxscXVvdGUuYWxpZ25yaWdodHttYXgtd2lkdGg6NDIwcHh9LndwLWJsb2NrLXB1bGxxdW90ZSBjaXRlLC53cC1ibG9jay1wdWxscXVvdGUgZm9vdGVye3Bvc2l0aW9uOnJlbGF0aXZlfS53cC1ibG9jay1wdWxscXVvdGUgLmhhcy10ZXh0LWNvbG9yIGF7Y29sb3I6aW5oZXJpdH06d2hlcmUoLndwLWJsb2NrLXB1bGxxdW90ZSl7bWFyZ2luOjAgMCAxZW19LndwLWJsb2NrLXB1bGxxdW90ZS5oYXMtdGV4dC1hbGlnbi1sZWZ0IGJsb2NrcXVvdGV7dGV4dC1hbGlnbjpsZWZ0fS53cC1ibG9jay1wdWxscXVvdGUuaGFzLXRleHQtYWxpZ24tcmlnaHQgYmxvY2txdW90ZXt0ZXh0LWFsaWduOnJpZ2h0fS53cC1ibG9jay1wdWxscXVvdGUuaXMtc3R5bGUtc29saWQtY29sb3J7Ym9yZGVyOm5vbmV9LndwLWJsb2NrLXB1bGxxdW90ZS5pcy1zdHlsZS1zb2xpZC1jb2xvciBibG9ja3F1b3Rle21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87bWF4LXdpZHRoOjYwJX0ud3AtYmxvY2stcHVsbHF1b3RlLmlzLXN0eWxlLXNvbGlkLWNvbG9yIGJsb2NrcXVvdGUgcHtmb250LXNpemU6MmVtO21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LndwLWJsb2NrLXB1bGxxdW90ZS5pcy1zdHlsZS1zb2xpZC1jb2xvciBibG9ja3F1b3RlIGNpdGV7Zm9udC1zdHlsZTpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZX0ud3AtYmxvY2stcHVsbHF1b3RlIGNpdGV7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stcG9zdC10ZW1wbGF0ZXtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWJvdHRvbTowO21hcmdpbi10b3A6MDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjB9LndwLWJsb2NrLXBvc3QtdGVtcGxhdGUud3AtYmxvY2stcG9zdC10ZW1wbGF0ZXtiYWNrZ3JvdW5kOm5vbmV9LndwLWJsb2NrLXBvc3QtdGVtcGxhdGUuaXMtZmxleC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcDtnYXA6MS4yNWVtfS53cC1ibG9jay1wb3N0LXRlbXBsYXRlLmlzLWZsZXgtY29udGFpbmVyPmxpe21hcmdpbjowO3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpey53cC1ibG9jay1wb3N0LXRlbXBsYXRlLmlzLWZsZXgtY29udGFpbmVyLmlzLWZsZXgtY29udGFpbmVyLmNvbHVtbnMtMj5saXt3aWR0aDpjYWxjKDUwJSAtIC42MjVlbSl9LndwLWJsb2NrLXBvc3QtdGVtcGxhdGUuaXMtZmxleC1jb250YWluZXIuaXMtZmxleC1jb250YWluZXIuY29sdW1ucy0zPmxpe3dpZHRoOmNhbGMoMzMuMzMzMzMlIC0gLjgzMzMzZW0pfS53cC1ibG9jay1wb3N0LXRlbXBsYXRlLmlzLWZsZXgtY29udGFpbmVyLmlzLWZsZXgtY29udGFpbmVyLmNvbHVtbnMtND5saXt3aWR0aDpjYWxjKDI1JSAtIC45Mzc1ZW0pfS53cC1ibG9jay1wb3N0LXRlbXBsYXRlLmlzLWZsZXgtY29udGFpbmVyLmlzLWZsZXgtY29udGFpbmVyLmNvbHVtbnMtNT5saXt3aWR0aDpjYWxjKDIwJSAtIDFlbSl9LndwLWJsb2NrLXBvc3QtdGVtcGxhdGUuaXMtZmxleC1jb250YWluZXIuaXMtZmxleC1jb250YWluZXIuY29sdW1ucy02Pmxpe3dpZHRoOmNhbGMoMTYuNjY2NjclIC0gMS4wNDE2N2VtKX19QG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpey53cC1ibG9jay1wb3N0LXRlbXBsYXRlLWlzLWxheW91dC1ncmlkLndwLWJsb2NrLXBvc3QtdGVtcGxhdGUtaXMtbGF5b3V0LWdyaWQud3AtYmxvY2stcG9zdC10ZW1wbGF0ZS1pcy1sYXlvdXQtZ3JpZC53cC1ibG9jay1wb3N0LXRlbXBsYXRlLWlzLWxheW91dC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fS53cC1ibG9jay1wb3N0LXRlbXBsYXRlLWlzLWxheW91dC1jb25zdHJhaW5lZD5saT4uYWxpZ25yaWdodCwud3AtYmxvY2stcG9zdC10ZW1wbGF0ZS1pcy1sYXlvdXQtZmxvdz5saT4uYWxpZ25yaWdodHstd2Via2l0LW1hcmdpbi1zdGFydDoyZW07LXdlYmtpdC1tYXJnaW4tZW5kOjA7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWlubGluZS1lbmQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjJlbX0ud3AtYmxvY2stcG9zdC10ZW1wbGF0ZS1pcy1sYXlvdXQtY29uc3RyYWluZWQ+bGk+LmFsaWdubGVmdCwud3AtYmxvY2stcG9zdC10ZW1wbGF0ZS1pcy1sYXlvdXQtZmxvdz5saT4uYWxpZ25sZWZ0ey13ZWJraXQtbWFyZ2luLXN0YXJ0OjA7LXdlYmtpdC1tYXJnaW4tZW5kOjJlbTtmbG9hdDpsZWZ0O21hcmdpbi1pbmxpbmUtZW5kOjJlbTttYXJnaW4taW5saW5lLXN0YXJ0OjB9LndwLWJsb2NrLXBvc3QtdGVtcGxhdGUtaXMtbGF5b3V0LWNvbnN0cmFpbmVkPmxpPi5hbGlnbmNlbnRlciwud3AtYmxvY2stcG9zdC10ZW1wbGF0ZS1pcy1sYXlvdXQtZmxvdz5saT4uYWxpZ25jZW50ZXJ7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6YXV0bzstd2Via2l0LW1hcmdpbi1lbmQ6YXV0bzttYXJnaW4taW5saW5lLWVuZDphdXRvO21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0b30ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbj4ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi1uZXh0LC53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uPi53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLW51bWJlcnMsLndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24+LndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24tcHJldmlvdXN7bWFyZ2luLWJvdHRvbTouNWVtO21hcmdpbi1yaWdodDouNWVtfS53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uPi53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLW5leHQ6bGFzdC1jaGlsZCwud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbj4ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi1udW1iZXJzOmxhc3QtY2hpbGQsLndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24+LndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24tcHJldmlvdXM6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi5pcy1jb250ZW50LWp1c3RpZmljYXRpb24tc3BhY2UtYmV0d2Vlbj4ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi1uZXh0Omxhc3Qtb2YtdHlwZXstd2Via2l0LW1hcmdpbi1zdGFydDphdXRvO21hcmdpbi1pbmxpbmUtc3RhcnQ6YXV0b30ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi5pcy1jb250ZW50LWp1c3RpZmljYXRpb24tc3BhY2UtYmV0d2Vlbj4ud3AtYmxvY2stcXVlcnktcGFnaW5hdGlvbi1wcmV2aW91czpmaXJzdC1jaGlsZHstd2Via2l0LW1hcmdpbi1lbmQ6YXV0bzttYXJnaW4taW5saW5lLWVuZDphdXRvfS53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uIC53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLXByZXZpb3VzLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxY2h9LndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24gLndwLWJsb2NrLXF1ZXJ5LXBhZ2luYXRpb24tcHJldmlvdXMtYXJyb3c6bm90KC5pcy1hcnJvdy1jaGV2cm9uKXt0cmFuc2Zvcm06c2NhbGVYKDEpfS53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uIC53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLW5leHQtYXJyb3d7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6MWNofS53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uIC53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLW5leHQtYXJyb3c6bm90KC5pcy1hcnJvdy1jaGV2cm9uKXt0cmFuc2Zvcm06c2NhbGVYKDEpfS53cC1ibG9jay1xdWVyeS1wYWdpbmF0aW9uLmFsaWduY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndwLWJsb2NrLXF1ZXJ5LXRpdGxlLC53cC1ibG9jay1xdW90ZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LndwLWJsb2NrLXF1b3Rle292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0ud3AtYmxvY2stcXVvdGUuaXMtbGFyZ2U6d2hlcmUoOm5vdCguaXMtc3R5bGUtcGxhaW4pKSwud3AtYmxvY2stcXVvdGUuaXMtc3R5bGUtbGFyZ2U6d2hlcmUoOm5vdCguaXMtc3R5bGUtcGxhaW4pKXttYXJnaW4tYm90dG9tOjFlbTtwYWRkaW5nOjAgMWVtfS53cC1ibG9jay1xdW90ZS5pcy1sYXJnZTp3aGVyZSg6bm90KC5pcy1zdHlsZS1wbGFpbikpIHAsLndwLWJsb2NrLXF1b3RlLmlzLXN0eWxlLWxhcmdlOndoZXJlKDpub3QoLmlzLXN0eWxlLXBsYWluKSkgcHtmb250LXNpemU6MS41ZW07Zm9udC1zdHlsZTppdGFsaWM7bGluZS1oZWlnaHQ6MS42fS53cC1ibG9jay1xdW90ZS5pcy1sYXJnZTp3aGVyZSg6bm90KC5pcy1zdHlsZS1wbGFpbikpIGNpdGUsLndwLWJsb2NrLXF1b3RlLmlzLWxhcmdlOndoZXJlKDpub3QoLmlzLXN0eWxlLXBsYWluKSkgZm9vdGVyLC53cC1ibG9jay1xdW90ZS5pcy1zdHlsZS1sYXJnZTp3aGVyZSg6bm90KC5pcy1zdHlsZS1wbGFpbikpIGNpdGUsLndwLWJsb2NrLXF1b3RlLmlzLXN0eWxlLWxhcmdlOndoZXJlKDpub3QoLmlzLXN0eWxlLXBsYWluKSkgZm9vdGVye2ZvbnQtc2l6ZToxLjEyNWVtO3RleHQtYWxpZ246cmlnaHR9LndwLWJsb2NrLXJlYWQtbW9yZXtkaXNwbGF5OmJsb2NrO3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnR9LndwLWJsb2NrLXJlYWQtbW9yZTpub3QoW3N0eWxlKj10ZXh0LWRlY29yYXRpb25dKSwud3AtYmxvY2stcmVhZC1tb3JlOm5vdChbc3R5bGUqPXRleHQtZGVjb3JhdGlvbl0pOmFjdGl2ZSwud3AtYmxvY2stcmVhZC1tb3JlOm5vdChbc3R5bGUqPXRleHQtZGVjb3JhdGlvbl0pOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lfXVsLndwLWJsb2NrLXJzc3tsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowfXVsLndwLWJsb2NrLXJzcy53cC1ibG9jay1yc3N7Ym94LXNpemluZzpib3JkZXItYm94fXVsLndwLWJsb2NrLXJzcy5hbGlnbmxlZnR7bWFyZ2luLXJpZ2h0OjJlbX11bC53cC1ibG9jay1yc3MuYWxpZ25yaWdodHttYXJnaW4tbGVmdDoyZW19dWwud3AtYmxvY2stcnNzLmlzLWdyaWR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjB9dWwud3AtYmxvY2stcnNzLmlzLWdyaWQgbGl7bWFyZ2luOjAgMWVtIDFlbSAwO3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NjAwcHgpe3VsLndwLWJsb2NrLXJzcy5jb2x1bW5zLTIgbGl7d2lkdGg6Y2FsYyg1MCUgLSAxZW0pfXVsLndwLWJsb2NrLXJzcy5jb2x1bW5zLTMgbGl7d2lkdGg6Y2FsYygzMy4zMzMzMyUgLSAxZW0pfXVsLndwLWJsb2NrLXJzcy5jb2x1bW5zLTQgbGl7d2lkdGg6Y2FsYygyNSUgLSAxZW0pfXVsLndwLWJsb2NrLXJzcy5jb2x1bW5zLTUgbGl7d2lkdGg6Y2FsYygyMCUgLSAxZW0pfXVsLndwLWJsb2NrLXJzcy5jb2x1bW5zLTYgbGl7d2lkdGg6Y2FsYygxNi42NjY2NyUgLSAxZW0pfX0ud3AtYmxvY2stcnNzX19pdGVtLWF1dGhvciwud3AtYmxvY2stcnNzX19pdGVtLXB1Ymxpc2gtZGF0ZXtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouODEyNWVtfS53cC1ibG9jay1zZWFyY2hfX2J1dHRvbnttYXJnaW4tbGVmdDoxMHB4O3dvcmQtYnJlYWs6bm9ybWFsfS53cC1ibG9jay1zZWFyY2hfX2J1dHRvbi5oYXMtaWNvbntsaW5lLWhlaWdodDowfS53cC1ibG9jay1zZWFyY2hfX2J1dHRvbiBzdmd7ZmlsbDpjdXJyZW50Q29sb3I7bWluLWhlaWdodDoyNHB4O21pbi13aWR0aDoyNHB4O3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tfTp3aGVyZSgud3AtYmxvY2stc2VhcmNoX19idXR0b24pe2JvcmRlcjoxcHggc29saWQgI2NjYztwYWRkaW5nOjZweCAxMHB4fS53cC1ibG9jay1zZWFyY2hfX2luc2lkZS13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4OmF1dG87ZmxleC13cmFwOm5vd3JhcDttYXgtd2lkdGg6MTAwJX0ud3AtYmxvY2stc2VhcmNoX19sYWJlbHt3aWR0aDoxMDAlfS53cC1ibG9jay1zZWFyY2hfX2lucHV0ey13ZWJraXQtYXBwZWFyYW5jZTppbml0aWFsO2FwcGVhcmFuY2U6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM5NDk0OTQ7ZmxleC1ncm93OjE7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttaW4td2lkdGg6M3JlbTtwYWRkaW5nOjhweDt0ZXh0LWRlY29yYXRpb246dW5zZXQhaW1wb3J0YW50fS53cC1ibG9jay1zZWFyY2gud3AtYmxvY2stc2VhcmNoX19idXR0b24tb25seSAud3AtYmxvY2stc2VhcmNoX19idXR0b257ZmxleC1zaHJpbms6MDttYXJnaW4tbGVmdDowO21heC13aWR0aDpjYWxjKDEwMCUgLSAxMDBweCl9OndoZXJlKC53cC1ibG9jay1zZWFyY2hfX2J1dHRvbi1pbnNpZGUgLndwLWJsb2NrLXNlYXJjaF9faW5zaWRlLXdyYXBwZXIpe2JvcmRlcjoxcHggc29saWQgIzk0OTQ5NDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzo0cHh9OndoZXJlKC53cC1ibG9jay1zZWFyY2hfX2J1dHRvbi1pbnNpZGUgLndwLWJsb2NrLXNlYXJjaF9faW5zaWRlLXdyYXBwZXIpIC53cC1ibG9jay1zZWFyY2hfX2lucHV0e2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nOjAgNHB4fTp3aGVyZSgud3AtYmxvY2stc2VhcmNoX19idXR0b24taW5zaWRlIC53cC1ibG9jay1zZWFyY2hfX2luc2lkZS13cmFwcGVyKSAud3AtYmxvY2stc2VhcmNoX19pbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmV9OndoZXJlKC53cC1ibG9jay1zZWFyY2hfX2J1dHRvbi1pbnNpZGUgLndwLWJsb2NrLXNlYXJjaF9faW5zaWRlLXdyYXBwZXIpIDp3aGVyZSgud3AtYmxvY2stc2VhcmNoX19idXR0b24pe3BhZGRpbmc6NHB4IDhweH0ud3AtYmxvY2stc2VhcmNoLmFsaWduY2VudGVyIC53cC1ibG9jay1zZWFyY2hfX2luc2lkZS13cmFwcGVye21hcmdpbjphdXRvfS53cC1ibG9jay1zZWFyY2hfX2J1dHRvbi1iZWhhdmlvci1leHBhbmQgLndwLWJsb2NrLXNlYXJjaF9faW5zaWRlLXdyYXBwZXJ7bWluLXdpZHRoOjAhaW1wb3J0YW50O3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGh9LndwLWJsb2NrLXNlYXJjaF9fYnV0dG9uLWJlaGF2aW9yLWV4cGFuZCAud3AtYmxvY2stc2VhcmNoX19pbnB1dHtmbGV4LWJhc2lzOjEwMCU7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LndwLWJsb2NrLXNlYXJjaF9fYnV0dG9uLWJlaGF2aW9yLWV4cGFuZC53cC1ibG9jay1zZWFyY2hfX3NlYXJjaGZpZWxkLWhpZGRlbiwud3AtYmxvY2stc2VhcmNoX19idXR0b24tYmVoYXZpb3ItZXhwYW5kLndwLWJsb2NrLXNlYXJjaF9fc2VhcmNoZmllbGQtaGlkZGVuIC53cC1ibG9jay1zZWFyY2hfX2luc2lkZS13cmFwcGVye292ZXJmbG93OmhpZGRlbn0ud3AtYmxvY2stc2VhcmNoX19idXR0b24tYmVoYXZpb3ItZXhwYW5kLndwLWJsb2NrLXNlYXJjaF9fc2VhcmNoZmllbGQtaGlkZGVuIC53cC1ibG9jay1zZWFyY2hfX2lucHV0e2JvcmRlci1sZWZ0LXdpZHRoOjAhaW1wb3J0YW50O2JvcmRlci1yaWdodC13aWR0aDowIWltcG9ydGFudDtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjA7bWFyZ2luOjA7bWluLXdpZHRoOjAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDowIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O3dpZHRoOjAhaW1wb3J0YW50fS53cC1ibG9ja1tkYXRhLWFsaWduPXJpZ2h0XSAud3AtYmxvY2stc2VhcmNoX19idXR0b24tYmVoYXZpb3ItZXhwYW5kIC53cC1ibG9jay1zZWFyY2hfX2luc2lkZS13cmFwcGVye2Zsb2F0OnJpZ2h0fS53cC1ibG9jay1zZXBhcmF0b3J7Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDpub25lfS53cC1ibG9jay1zZXBhcmF0b3IuaXMtc3R5bGUtZG90c3tiYWNrZ3JvdW5kOm5vbmUhaW1wb3J0YW50O2JvcmRlcjpub25lO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXJ9LndwLWJsb2NrLXNlcGFyYXRvci5pcy1zdHlsZS1kb3RzOmJlZm9yZXtjb2xvcjpjdXJyZW50Q29sb3I7Y29udGVudDoiwrfCt8K3Ijtmb250LWZhbWlseTpzZXJpZjtmb250LXNpemU6MS41ZW07bGV0dGVyLXNwYWNpbmc6MmVtO3BhZGRpbmctbGVmdDoyZW19LndwLWJsb2NrLXNpdGUtbG9nb3tib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MH0ud3AtYmxvY2stc2l0ZS1sb2dvIGF7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MH0ud3AtYmxvY2stc2l0ZS1sb2dvLmlzLWRlZmF1bHQtc2l6ZSBpbWd7aGVpZ2h0OmF1dG87d2lkdGg6MTIwcHh9LndwLWJsb2NrLXNpdGUtbG9nbyBpbWd7aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjEwMCV9LndwLWJsb2NrLXNpdGUtbG9nbyBhLC53cC1ibG9jay1zaXRlLWxvZ28gaW1ne2JvcmRlci1yYWRpdXM6aW5oZXJpdH0ud3AtYmxvY2stc2l0ZS1sb2dvLmFsaWduY2VudGVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87dGV4dC1hbGlnbjpjZW50ZXJ9LndwLWJsb2NrLXNpdGUtbG9nby5pcy1zdHlsZS1yb3VuZGVke2JvcmRlci1yYWRpdXM6OTk5OXB4fS53cC1ibG9jay1zaXRlLXRpdGxlIGF7Y29sb3I6aW5oZXJpdH0ud3AtYmxvY2stc29jaWFsLWxpbmtze2JhY2tncm91bmQ6bm9uZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7dGV4dC1pbmRlbnQ6MH0ud3AtYmxvY2stc29jaWFsLWxpbmtzIC53cC1zb2NpYWwtbGluayBhLC53cC1ibG9jay1zb2NpYWwtbGlua3MgLndwLXNvY2lhbC1saW5rIGE6aG92ZXJ7Ym9yZGVyLWJvdHRvbTowO2JveC1zaGFkb3c6bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX0ud3AtYmxvY2stc29jaWFsLWxpbmtzIC53cC1zb2NpYWwtbGluayBhe3BhZGRpbmc6LjI1ZW19LndwLWJsb2NrLXNvY2lhbC1saW5rcyAud3Atc29jaWFsLWxpbmsgc3Zne2hlaWdodDoxZW07d2lkdGg6MWVtfS53cC1ibG9jay1zb2NpYWwtbGlua3MgLndwLXNvY2lhbC1saW5rIHNwYW46bm90KC5zY3JlZW4tcmVhZGVyLXRleHQpe2ZvbnQtc2l6ZTouNjVlbTttYXJnaW4tbGVmdDouNWVtO21hcmdpbi1yaWdodDouNWVtfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaGFzLXNtYWxsLWljb24tc2l6ZXtmb250LXNpemU6MTZweH0ud3AtYmxvY2stc29jaWFsLWxpbmtzLC53cC1ibG9jay1zb2NpYWwtbGlua3MuaGFzLW5vcm1hbC1pY29uLXNpemV7Zm9udC1zaXplOjI0cHh9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5oYXMtbGFyZ2UtaWNvbi1zaXple2ZvbnQtc2l6ZTozNnB4fS53cC1ibG9jay1zb2NpYWwtbGlua3MuaGFzLWh1Z2UtaWNvbi1zaXple2ZvbnQtc2l6ZTo0OHB4fS53cC1ibG9jay1zb2NpYWwtbGlua3MuYWxpZ25jZW50ZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5hbGlnbnJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ud3AtYmxvY2stc29jaWFsLWxpbmt7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bzt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgZWFzZX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsud3AtYmxvY2stc29jaWFsLWxpbmt7dHJhbnNpdGlvbi1kZWxheTowczt0cmFuc2l0aW9uLWR1cmF0aW9uOjBzfX0ud3AtYmxvY2stc29jaWFsLWxpbmsgYXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2xpbmUtaGVpZ2h0OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2V9LndwLWJsb2NrLXNvY2lhbC1saW5rOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjEpfS53cC1ibG9jay1zb2NpYWwtbGlua3MgLndwLWJsb2NrLXNvY2lhbC1saW5rIC53cC1ibG9jay1zb2NpYWwtbGluay1hbmNob3IsLndwLWJsb2NrLXNvY2lhbC1saW5rcyAud3AtYmxvY2stc29jaWFsLWxpbmsgLndwLWJsb2NrLXNvY2lhbC1saW5rLWFuY2hvciBzdmcsLndwLWJsb2NrLXNvY2lhbC1saW5rcyAud3AtYmxvY2stc29jaWFsLWxpbmsgLndwLWJsb2NrLXNvY2lhbC1saW5rLWFuY2hvcjphY3RpdmUsLndwLWJsb2NrLXNvY2lhbC1saW5rcyAud3AtYmxvY2stc29jaWFsLWxpbmsgLndwLWJsb2NrLXNvY2lhbC1saW5rLWFuY2hvcjpob3Zlciwud3AtYmxvY2stc29jaWFsLWxpbmtzIC53cC1ibG9jay1zb2NpYWwtbGluayAud3AtYmxvY2stc29jaWFsLWxpbmstYW5jaG9yOnZpc2l0ZWR7ZmlsbDpjdXJyZW50Q29sb3I7Y29sb3I6Y3VycmVudENvbG9yfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2NvbG9yOiM0NDR9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1hbWF6b257YmFja2dyb3VuZC1jb2xvcjojZjkwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1iYW5kY2FtcHtiYWNrZ3JvdW5kLWNvbG9yOiMxZWEwYzM7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLWJlaGFuY2V7YmFja2dyb3VuZC1jb2xvcjojMDc1N2ZlO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1jb2RlcGVue2JhY2tncm91bmQtY29sb3I6IzFlMWYyNjtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstZGV2aWFudGFydHtiYWNrZ3JvdW5kLWNvbG9yOiMwMmU0OWI7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLWRyaWJiYmxle2JhY2tncm91bmQtY29sb3I6I2U5NGM4OTtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstZHJvcGJveHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjgwZmY7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLWV0c3l7YmFja2dyb3VuZC1jb2xvcjojZjQ1ODAwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1mYWNlYm9va3tiYWNrZ3JvdW5kLWNvbG9yOiMxNzc4ZjI7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLWZpdmVodW5kcmVkcHh7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1mbGlja3J7YmFja2dyb3VuZC1jb2xvcjojMDQ2MWRkO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1mb3Vyc3F1YXJle2JhY2tncm91bmQtY29sb3I6I2U2NTY3ODtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstZ2l0aHVie2JhY2tncm91bmQtY29sb3I6IzI0MjkyZDtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstZ29vZHJlYWRze2JhY2tncm91bmQtY29sb3I6I2VjZWFkZDtjb2xvcjojMzgyMTEwfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstZ29vZ2xle2JhY2tncm91bmQtY29sb3I6I2VhNDQzNDtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstaW5zdGFncmFte2JhY2tncm91bmQtY29sb3I6I2YwMDA3NTtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstbGFzdGZte2JhY2tncm91bmQtY29sb3I6I2UyMWIyNDtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstbGlua2VkaW57YmFja2dyb3VuZC1jb2xvcjojMGQ2NmMyO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1tYXN0b2RvbntiYWNrZ3JvdW5kLWNvbG9yOiMzMjg4ZDQ7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLW1lZGl1bXtiYWNrZ3JvdW5kLWNvbG9yOiMwMmFiNmM7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLW1lZXR1cHtiYWNrZ3JvdW5kLWNvbG9yOiNmNjQwNWY7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXBhdHJlb257YmFja2dyb3VuZC1jb2xvcjojZmY0MjRkO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1waW50ZXJlc3R7YmFja2dyb3VuZC1jb2xvcjojZTYwMTIyO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1wb2NrZXR7YmFja2dyb3VuZC1jb2xvcjojZWY0MTU1O2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1yZWRkaXR7YmFja2dyb3VuZC1jb2xvcjojZmY0NTAwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay1za3lwZXtiYWNrZ3JvdW5kLWNvbG9yOiMwNDc4ZDc7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXNuYXBjaGF0e3N0cm9rZTojMDAwO2JhY2tncm91bmQtY29sb3I6I2ZlZmMwMDtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstc291bmRjbG91ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjU2MDA7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXNwb3RpZnl7YmFja2dyb3VuZC1jb2xvcjojMWJkNzYwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay10ZWxlZ3JhbXtiYWNrZ3JvdW5kLWNvbG9yOiMyYWFiZWU7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXRocmVhZHMsLndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay10aWt0b2t7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay10dW1ibHJ7YmFja2dyb3VuZC1jb2xvcjojMDExODM1O2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay10d2l0Y2h7YmFja2dyb3VuZC1jb2xvcjojNjQ0MGE0O2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay10d2l0dGVye2JhY2tncm91bmQtY29sb3I6IzFkYTFmMjtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmstdmltZW97YmFja2dyb3VuZC1jb2xvcjojMWViN2VhO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay12a3tiYWNrZ3JvdW5kLWNvbG9yOiM0NjgwYzI7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXdvcmRwcmVzc3tiYWNrZ3JvdW5kLWNvbG9yOiMzNDk5Y2Q7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXdoYXRzYXBwe2JhY2tncm91bmQtY29sb3I6IzI1ZDM2Njtjb2xvcjojZmZmfS53cC1ibG9jay1zb2NpYWwtbGlua3M6bm90KC5pcy1zdHlsZS1sb2dvcy1vbmx5KSAud3Atc29jaWFsLWxpbmsteHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZn0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaXMtc3R5bGUtbG9nb3Mtb25seSkgLndwLXNvY2lhbC1saW5rLXllbHB7YmFja2dyb3VuZC1jb2xvcjojZDMyNDIyO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rczpub3QoLmlzLXN0eWxlLWxvZ29zLW9ubHkpIC53cC1zb2NpYWwtbGluay15b3V0dWJle2JhY2tncm91bmQtY29sb3I6cmVkO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGlua3tiYWNrZ3JvdW5kOm5vbmV9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluayBhe3BhZGRpbmc6MH0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rIHN2Z3toZWlnaHQ6MS4yNWVtO3dpZHRoOjEuMjVlbX0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWFtYXpvbntjb2xvcjojZjkwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstYmFuZGNhbXB7Y29sb3I6IzFlYTBjM30ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWJlaGFuY2V7Y29sb3I6IzA3NTdmZX0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWNvZGVwZW57Y29sb3I6IzFlMWYyNn0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWRldmlhbnRhcnR7Y29sb3I6IzAyZTQ5Yn0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWRyaWJiYmxle2NvbG9yOiNlOTRjODl9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1kcm9wYm94e2NvbG9yOiM0MjgwZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1ldHN5e2NvbG9yOiNmNDU4MDB9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1mYWNlYm9va3tjb2xvcjojMTc3OGYyfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstZml2ZWh1bmRyZWRweHtjb2xvcjojMDAwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstZmxpY2tye2NvbG9yOiMwNDYxZGR9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1mb3Vyc3F1YXJle2NvbG9yOiNlNjU2Nzh9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1naXRodWJ7Y29sb3I6IzI0MjkyZH0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWdvb2RyZWFkc3tjb2xvcjojMzgyMTEwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstZ29vZ2xle2NvbG9yOiNlYTQ0MzR9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1pbnN0YWdyYW17Y29sb3I6I2YwMDA3NX0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLWxhc3RmbXtjb2xvcjojZTIxYjI0fS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstbGlua2VkaW57Y29sb3I6IzBkNjZjMn0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLW1hc3RvZG9ue2NvbG9yOiMzMjg4ZDR9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1tZWRpdW17Y29sb3I6IzAyYWI2Y30ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLW1lZXR1cHtjb2xvcjojZjY0MDVmfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstcGF0cmVvbntjb2xvcjojZmY0MjRkfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstcGludGVyZXN0e2NvbG9yOiNlNjAxMjJ9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1wb2NrZXR7Y29sb3I6I2VmNDE1NX0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXJlZGRpdHtjb2xvcjojZmY0NTAwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstc2t5cGV7Y29sb3I6IzA0NzhkN30ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXNuYXBjaGF0e3N0cm9rZTojMDAwO2NvbG9yOiNmZmZ9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1zb3VuZGNsb3Vke2NvbG9yOiNmZjU2MDB9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay1zcG90aWZ5e2NvbG9yOiMxYmQ3NjB9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay10ZWxlZ3JhbXtjb2xvcjojMmFhYmVlfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstdGhyZWFkcywud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXRpa3Rva3tjb2xvcjojMDAwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstdHVtYmxye2NvbG9yOiMwMTE4MzV9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay10d2l0Y2h7Y29sb3I6IzY0NDBhNH0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXR3aXR0ZXJ7Y29sb3I6IzFkYTFmMn0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXZpbWVve2NvbG9yOiMxZWI3ZWF9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1sb2dvcy1vbmx5IC53cC1zb2NpYWwtbGluay12a3tjb2xvcjojNDY4MGMyfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmstd2hhdHNhcHB7Y29sb3I6IzI1ZDM2Nn0ud3AtYmxvY2stc29jaWFsLWxpbmtzLmlzLXN0eWxlLWxvZ29zLW9ubHkgLndwLXNvY2lhbC1saW5rLXdvcmRwcmVzc3tjb2xvcjojMzQ5OWNkfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmsteHtjb2xvcjojMDAwfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmsteWVscHtjb2xvcjojZDMyNDIyfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtbG9nb3Mtb25seSAud3Atc29jaWFsLWxpbmsteW91dHViZXtjb2xvcjpyZWR9LndwLWJsb2NrLXNvY2lhbC1saW5rcy5pcy1zdHlsZS1waWxsLXNoYXBlIC53cC1zb2NpYWwtbGlua3t3aWR0aDphdXRvfS53cC1ibG9jay1zb2NpYWwtbGlua3MuaXMtc3R5bGUtcGlsbC1zaGFwZSAud3Atc29jaWFsLWxpbmsgYXtwYWRkaW5nLWxlZnQ6LjY2NjY3ZW07cGFkZGluZy1yaWdodDouNjY2NjdlbX0ud3AtYmxvY2stc29jaWFsLWxpbmtzOm5vdCguaGFzLWljb24tY29sb3IpOm5vdCguaGFzLWljb24tYmFja2dyb3VuZC1jb2xvcikgLndwLXNvY2lhbC1saW5rLXNuYXBjaGF0IC53cC1ibG9jay1zb2NpYWwtbGluay1sYWJlbHtjb2xvcjojMDAwfS53cC1ibG9jay1zcGFjZXJ7Y2xlYXI6Ym90aH0ud3AtYmxvY2stdGFnLWNsb3Vke2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud3AtYmxvY2stdGFnLWNsb3VkLmFsaWduY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LndwLWJsb2NrLXRhZy1jbG91ZC5hbGlnbmZ1bGx7cGFkZGluZy1sZWZ0OjFlbTtwYWRkaW5nLXJpZ2h0OjFlbX0ud3AtYmxvY2stdGFnLWNsb3VkIGF7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjVweH0ud3AtYmxvY2stdGFnLWNsb3VkIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS53cC1ibG9jay10YWctY2xvdWQuaXMtc3R5bGUtb3V0bGluZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjFjaH0ud3AtYmxvY2stdGFnLWNsb3VkLmlzLXN0eWxlLW91dGxpbmUgYXtib3JkZXI6MXB4IHNvbGlkO2ZvbnQtc2l6ZTp1bnNldCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZzoxY2ggMmNoO3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudH0ud3AtYmxvY2stdGFibGV7b3ZlcmZsb3cteDphdXRvfS53cC1ibG9jay10YWJsZSB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX0ud3AtYmxvY2stdGFibGUgdGhlYWR7Ym9yZGVyLWJvdHRvbTozcHggc29saWR9LndwLWJsb2NrLXRhYmxlIHRmb290e2JvcmRlci10b3A6M3B4IHNvbGlkfS53cC1ibG9jay10YWJsZSB0ZCwud3AtYmxvY2stdGFibGUgdGh7Ym9yZGVyOjFweCBzb2xpZDtwYWRkaW5nOi41ZW19LndwLWJsb2NrLXRhYmxlIC5oYXMtZml4ZWQtbGF5b3V0e3RhYmxlLWxheW91dDpmaXhlZDt3aWR0aDoxMDAlfS53cC1ibG9jay10YWJsZSAuaGFzLWZpeGVkLWxheW91dCB0ZCwud3AtYmxvY2stdGFibGUgLmhhcy1maXhlZC1sYXlvdXQgdGh7d29yZC1icmVhazpicmVhay13b3JkfS53cC1ibG9jay10YWJsZS5hbGlnbmNlbnRlciwud3AtYmxvY2stdGFibGUuYWxpZ25sZWZ0LC53cC1ibG9jay10YWJsZS5hbGlnbnJpZ2h0e2Rpc3BsYXk6dGFibGU7d2lkdGg6YXV0b30ud3AtYmxvY2stdGFibGUuYWxpZ25jZW50ZXIgdGQsLndwLWJsb2NrLXRhYmxlLmFsaWduY2VudGVyIHRoLC53cC1ibG9jay10YWJsZS5hbGlnbmxlZnQgdGQsLndwLWJsb2NrLXRhYmxlLmFsaWdubGVmdCB0aCwud3AtYmxvY2stdGFibGUuYWxpZ25yaWdodCB0ZCwud3AtYmxvY2stdGFibGUuYWxpZ25yaWdodCB0aHt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LndwLWJsb2NrLXRhYmxlIC5oYXMtc3VidGxlLWxpZ2h0LWdyYXktYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNmM2Y0ZjV9LndwLWJsb2NrLXRhYmxlIC5oYXMtc3VidGxlLXBhbGUtZ3JlZW4tYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNlOWZiZTV9LndwLWJsb2NrLXRhYmxlIC5oYXMtc3VidGxlLXBhbGUtYmx1ZS1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6I2U3ZjVmZX0ud3AtYmxvY2stdGFibGUgLmhhcy1zdWJ0bGUtcGFsZS1waW5rLWJhY2tncm91bmQtY29sb3J7YmFja2dyb3VuZC1jb2xvcjojZmNmMGVmfS53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVze2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YwZjBmMDtib3JkZXItY29sbGFwc2U6aW5oZXJpdDtib3JkZXItc3BhY2luZzowfS53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVzIHRib2R5IHRyOm50aC1jaGlsZChvZGQpe2JhY2tncm91bmQtY29sb3I6I2YwZjBmMH0ud3AtYmxvY2stdGFibGUuaXMtc3R5bGUtc3RyaXBlcy5oYXMtc3VidGxlLWxpZ2h0LWdyYXktYmFja2dyb3VuZC1jb2xvciB0Ym9keSB0cjpudGgtY2hpbGQob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOiNmM2Y0ZjV9LndwLWJsb2NrLXRhYmxlLmlzLXN0eWxlLXN0cmlwZXMuaGFzLXN1YnRsZS1wYWxlLWdyZWVuLWJhY2tncm91bmQtY29sb3IgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojZTlmYmU1fS53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVzLmhhcy1zdWJ0bGUtcGFsZS1ibHVlLWJhY2tncm91bmQtY29sb3IgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojZTdmNWZlfS53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVzLmhhcy1zdWJ0bGUtcGFsZS1waW5rLWJhY2tncm91bmQtY29sb3IgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojZmNmMGVmfS53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVzIHRkLC53cC1ibG9jay10YWJsZS5pcy1zdHlsZS1zdHJpcGVzIHRoe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ud3AtYmxvY2stdGFibGUgLmhhcy1ib3JkZXItY29sb3IgdGQsLndwLWJsb2NrLXRhYmxlIC5oYXMtYm9yZGVyLWNvbG9yIHRoLC53cC1ibG9jay10YWJsZSAuaGFzLWJvcmRlci1jb2xvciB0ciwud3AtYmxvY2stdGFibGUgLmhhcy1ib3JkZXItY29sb3I+Kntib3JkZXItY29sb3I6aW5oZXJpdH0ud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci10b3AtY29sb3JdIHRyOmZpcnN0LWNoaWxkLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXRvcC1jb2xvcl0gdHI6Zmlyc3QtY2hpbGQgdGQsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItdG9wLWNvbG9yXSB0cjpmaXJzdC1jaGlsZCB0aCwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci10b3AtY29sb3JdPiosLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItdG9wLWNvbG9yXT4qIHRkLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXRvcC1jb2xvcl0+KiB0aHtib3JkZXItdG9wLWNvbG9yOmluaGVyaXR9LndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItdG9wLWNvbG9yXSB0cjpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWNvbG9yOmN1cnJlbnRDb2xvcn0ud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1yaWdodC1jb2xvcl0gdGQ6bGFzdC1jaGlsZCwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1yaWdodC1jb2xvcl0gdGgsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItcmlnaHQtY29sb3JdIHRyLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXJpZ2h0LWNvbG9yXT4qe2JvcmRlci1yaWdodC1jb2xvcjppbmhlcml0fS53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLWJvdHRvbS1jb2xvcl0gdHI6bGFzdC1jaGlsZCwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1ib3R0b20tY29sb3JdIHRyOmxhc3QtY2hpbGQgdGQsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItYm90dG9tLWNvbG9yXSB0cjpsYXN0LWNoaWxkIHRoLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLWJvdHRvbS1jb2xvcl0+Kiwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1ib3R0b20tY29sb3JdPiogdGQsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItYm90dG9tLWNvbG9yXT4qIHRoe2JvcmRlci1ib3R0b20tY29sb3I6aW5oZXJpdH0ud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1ib3R0b20tY29sb3JdIHRyOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLWJvdHRvbS1jb2xvcjpjdXJyZW50Q29sb3J9LndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItbGVmdC1jb2xvcl0gdGQ6Zmlyc3QtY2hpbGQsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItbGVmdC1jb2xvcl0gdGgsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItbGVmdC1jb2xvcl0gdHIsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItbGVmdC1jb2xvcl0+Kntib3JkZXItbGVmdC1jb2xvcjppbmhlcml0fS53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXN0eWxlXSB0ZCwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci1zdHlsZV0gdGgsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItc3R5bGVdIHRyLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXN0eWxlXT4qe2JvcmRlci1zdHlsZTppbmhlcml0fS53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXdpZHRoXSB0ZCwud3AtYmxvY2stdGFibGUgdGFibGVbc3R5bGUqPWJvcmRlci13aWR0aF0gdGgsLndwLWJsb2NrLXRhYmxlIHRhYmxlW3N0eWxlKj1ib3JkZXItd2lkdGhdIHRyLC53cC1ibG9jay10YWJsZSB0YWJsZVtzdHlsZSo9Ym9yZGVyLXdpZHRoXT4qe2JvcmRlci1zdHlsZTppbmhlcml0O2JvcmRlci13aWR0aDppbmhlcml0fTp3aGVyZSgud3AtYmxvY2stdGVybS1kZXNjcmlwdGlvbil7bWFyZ2luLWJvdHRvbTp2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCk7bWFyZ2luLXRvcDp2YXIoLS13cC0tc3R5bGUtLWJsb2NrLWdhcCl9LndwLWJsb2NrLXRlcm0tZGVzY3JpcHRpb24gcHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS53cC1ibG9jay10ZXh0LWNvbHVtbnMsLndwLWJsb2NrLXRleHQtY29sdW1ucy5hbGlnbmNlbnRlcntkaXNwbGF5OmZsZXh9LndwLWJsb2NrLXRleHQtY29sdW1ucyAud3AtYmxvY2stY29sdW1ue21hcmdpbjowIDFlbTtwYWRkaW5nOjB9LndwLWJsb2NrLXRleHQtY29sdW1ucyAud3AtYmxvY2stY29sdW1uOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LndwLWJsb2NrLXRleHQtY29sdW1ucyAud3AtYmxvY2stY29sdW1uOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LndwLWJsb2NrLXRleHQtY29sdW1ucy5jb2x1bW5zLTIgLndwLWJsb2NrLWNvbHVtbnt3aWR0aDo1MCV9LndwLWJsb2NrLXRleHQtY29sdW1ucy5jb2x1bW5zLTMgLndwLWJsb2NrLWNvbHVtbnt3aWR0aDozMy4zMzMzMyV9LndwLWJsb2NrLXRleHQtY29sdW1ucy5jb2x1bW5zLTQgLndwLWJsb2NrLWNvbHVtbnt3aWR0aDoyNSV9cHJlLndwLWJsb2NrLXZlcnNle292ZXJmbG93OmF1dG87d2hpdGUtc3BhY2U6cHJlLXdyYXB9OndoZXJlKHByZS53cC1ibG9jay12ZXJzZSl7Zm9udC1mYW1pbHk6aW5oZXJpdH0ud3AtYmxvY2stdmlkZW97Ym94LXNpemluZzpib3JkZXItYm94fS53cC1ibG9jay12aWRlbyB2aWRlb3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6MTAwJX1Ac3VwcG9ydHMgKHBvc2l0aW9uOnN0aWNreSl7LndwLWJsb2NrLXZpZGVvIFtwb3N0ZXJde29iamVjdC1maXQ6Y292ZXJ9fS53cC1ibG9jay12aWRlby5hbGlnbmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0ud3AtYmxvY2stdmlkZW8gZmlnY2FwdGlvbnttYXJnaW4tYm90dG9tOjFlbTttYXJnaW4tdG9wOi41ZW19LmVkaXRvci1zdHlsZXMtd3JhcHBlciwuZW50cnktY29udGVudHtjb3VudGVyLXJlc2V0OmZvb3Rub3Rlc31hW2RhdGEtZm5dLmZue2NvdW50ZXItaW5jcmVtZW50OmZvb3Rub3RlcztkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTpzbWFsbGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtaW5kZW50Oi05OTk5OTk5cHg7dmVydGljYWwtYWxpZ246c3VwZXJ9YVtkYXRhLWZuXS5mbjphZnRlcntjb250ZW50OiJbIiBjb3VudGVyKGZvb3Rub3RlcykgIl0iO2Zsb2F0OmxlZnQ7dGV4dC1pbmRlbnQ6MH0ud3AtZWxlbWVudC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9OnJvb3R7LS13cC0tcHJlc2V0LS1mb250LXNpemUtLW5vcm1hbDoxNnB4Oy0td3AtLXByZXNldC0tZm9udC1zaXplLS1odWdlOjQycHh9OnJvb3QgLmhhcy12ZXJ5LWxpZ2h0LWdyYXktYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9OnJvb3QgLmhhcy12ZXJ5LWRhcmstZ3JheS1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6IzMxMzEzMX06cm9vdCAuaGFzLXZlcnktbGlnaHQtZ3JheS1jb2xvcntjb2xvcjojZWVlfTpyb290IC5oYXMtdmVyeS1kYXJrLWdyYXktY29sb3J7Y29sb3I6IzMxMzEzMX06cm9vdCAuaGFzLXZpdmlkLWdyZWVuLWN5YW4tdG8tdml2aWQtY3lhbi1ibHVlLWdyYWRpZW50LWJhY2tncm91bmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMwMGQwODQsIzA2OTNlMyl9OnJvb3QgLmhhcy1wdXJwbGUtY3J1c2gtZ3JhZGllbnQtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzM0ZTJlNCwjNDcyMWZiIDUwJSwjYWIxZGZlKX06cm9vdCAuaGFzLWhhenktZGF3bi1ncmFkaWVudC1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmFhY2E4LCNkYWQwZWMpfTpyb290IC5oYXMtc3ViZHVlZC1vbGl2ZS1ncmFkaWVudC1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmFmYWUxLCM2N2E2NzEpfTpyb290IC5oYXMtYXRvbWljLWNyZWFtLWdyYWRpZW50LWJhY2tncm91bmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZGQ3OWEsIzAwNGE1OSl9OnJvb3QgLmhhcy1uaWdodHNoYWRlLWdyYWRpZW50LWJhY2tncm91bmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMzMzA5NjgsIzMxY2RjZil9OnJvb3QgLmhhcy1taWRuaWdodC1ncmFkaWVudC1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjMDIwMzgxLCMyODc0ZmMpfS5oYXMtcmVndWxhci1mb250LXNpemV7Zm9udC1zaXplOjFlbX0uaGFzLWxhcmdlci1mb250LXNpemV7Zm9udC1zaXplOjIuNjI1ZW19Lmhhcy1ub3JtYWwtZm9udC1zaXple2ZvbnQtc2l6ZTp2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLW5vcm1hbCl9Lmhhcy1odWdlLWZvbnQtc2l6ZXtmb250LXNpemU6dmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1odWdlKX0uaGFzLXRleHQtYWxpZ24tY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5oYXMtdGV4dC1hbGlnbi1sZWZ0e3RleHQtYWxpZ246bGVmdH0uaGFzLXRleHQtYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0jZW5kLXJlc2l6YWJsZS1lZGl0b3Itc2VjdGlvbntkaXNwbGF5Om5vbmV9LmFsaWduY2VudGVye2NsZWFyOmJvdGh9Lml0ZW1zLWp1c3RpZmllZC1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5pdGVtcy1qdXN0aWZpZWQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lml0ZW1zLWp1c3RpZmllZC1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lml0ZW1zLWp1c3RpZmllZC1zcGFjZS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zY3JlZW4tcmVhZGVyLXRleHR7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7d29yZC13cmFwOm5vcm1hbCFpbXBvcnRhbnQ7Ym9yZGVyOjA7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoNTAlKTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zY3JlZW4tcmVhZGVyLXRleHQ6Zm9jdXN7Y2xpcDphdXRvIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNkZGQ7LXdlYmtpdC1jbGlwLXBhdGg6bm9uZTtjbGlwLXBhdGg6bm9uZTtjb2xvcjojNDQ0O2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjFlbTtoZWlnaHQ6YXV0bztsZWZ0OjVweDtsaW5lLWhlaWdodDpub3JtYWw7cGFkZGluZzoxNXB4IDIzcHggMTRweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0b3A6NXB4O3dpZHRoOmF1dG87ei1pbmRleDoxMDAwMDB9aHRtbCA6d2hlcmUoLmhhcy1ib3JkZXItY29sb3Ipe2JvcmRlci1zdHlsZTpzb2xpZH1odG1sIDp3aGVyZShbc3R5bGUqPWJvcmRlci10b3AtY29sb3JdKXtib3JkZXItdG9wLXN0eWxlOnNvbGlkfWh0bWwgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXJpZ2h0LWNvbG9yXSl7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkfWh0bWwgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLWJvdHRvbS1jb2xvcl0pe2JvcmRlci1ib3R0b20tc3R5bGU6c29saWR9aHRtbCA6d2hlcmUoW3N0eWxlKj1ib3JkZXItbGVmdC1jb2xvcl0pe2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkfWh0bWwgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXdpZHRoXSl7Ym9yZGVyLXN0eWxlOnNvbGlkfWh0bWwgOndoZXJlKFtzdHlsZSo9Ym9yZGVyLXRvcC13aWR0aF0pe2JvcmRlci10b3Atc3R5bGU6c29saWR9aHRtbCA6d2hlcmUoW3N0eWxlKj1ib3JkZXItcmlnaHQtd2lkdGhdKXtib3JkZXItcmlnaHQtc3R5bGU6c29saWR9aHRtbCA6d2hlcmUoW3N0eWxlKj1ib3JkZXItYm90dG9tLXdpZHRoXSl7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZH1odG1sIDp3aGVyZShbc3R5bGUqPWJvcmRlci1sZWZ0LXdpZHRoXSl7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWR9aHRtbCA6d2hlcmUoaW1nW2NsYXNzKj13cC1pbWFnZS1dKXtoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJX06d2hlcmUoZmlndXJlKXttYXJnaW46MCAwIDFlbX1odG1sIDp3aGVyZSguaXMtcG9zaXRpb24tc3RpY2t5KXstLXdwLWFkbWluLS1hZG1pbi1iYXItLXBvc2l0aW9uLW9mZnNldDp2YXIoLS13cC1hZG1pbi0tYWRtaW4tYmFyLS1oZWlnaHQsMHB4KX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjYwMHB4KXtodG1sIDp3aGVyZSguaXMtcG9zaXRpb24tc3RpY2t5KXstLXdwLWFkbWluLS1hZG1pbi1iYXItLXBvc2l0aW9uLW9mZnNldDowcHh9fQ=="}},"time_used":139,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":139,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/cssrelpreload.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.816Z","timestamp":1785145403816,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/cssrelpreload.js HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-553\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1363,"size_decoded":768,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (515)","md5":"950a604ebec13af476f3a5e304112f14","sha1":"490efa06efbd0cd63393704bb3dbc70a018f75e2","sha256":"664f6d2b747d802a76801d4948aa59ce5c7dcb25c5e245c813c42a2346efb867","sha512":"75064249c921dc823ed4174d3185f63cbc8f28491729ec83f3bcc6ae2ac47138661890ce90066e0a430d1a0e988ed28bf75efa1da69b5f48911a9e68e63d23ea","ssdeep":"","tlshash":"b921017a712a757242a295f0e6ff5709d4703a731bc28810c60148f5c67bf89942ef7d","first_seen":"2026-05-20T00:20:36.583758Z","last_seen":"2026-07-27T14:04:41.09892Z","times_seen":7,"resource_available":true,"data":"LyohbG9hZENTUy4gW2NdMjAxNyBGaWxhbWVudCBHcm91cCwgSW5jLiBNSVQgTGljZW5zZSovKGZ1bmN0aW9uKHcpeyJ1c2Ugc3RyaWN0IjtpZighdy5sb2FkQ1NTKXt3LmxvYWRDU1M9ZnVuY3Rpb24oKXt9O30KdmFyIHJwPWxvYWRDU1MucmVscHJlbG9hZD17fTtycC5zdXBwb3J0PShmdW5jdGlvbigpe3ZhciByZXQ7dHJ5e3JldD13LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKS5yZWxMaXN0LnN1cHBvcnRzKCJwcmVsb2FkIik7fWNhdGNoKGUpe3JldD1mYWxzZTt9CnJldHVybiBmdW5jdGlvbigpe3JldHVybiByZXQ7fTt9KSgpO3JwLmJpbmRNZWRpYVRvZ2dsZT1mdW5jdGlvbihsaW5rKXt2YXIgZmluYWxNZWRpYT1saW5rLm1lZGlhfHwiYWxsIjtmdW5jdGlvbiBlbmFibGVTdHlsZXNoZWV0KCl7bGluay5tZWRpYT1maW5hbE1lZGlhO30KaWYobGluay5hZGRFdmVudExpc3RlbmVyKXtsaW5rLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGVuYWJsZVN0eWxlc2hlZXQpO31lbHNlIGlmKGxpbmsuYXR0YWNoRXZlbnQpe2xpbmsuYXR0YWNoRXZlbnQoIm9ubG9hZCIsZW5hYmxlU3R5bGVzaGVldCk7fQpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGluay5yZWw9InN0eWxlc2hlZXQiO2xpbmsubWVkaWE9Im9ubHkgeCI7fSk7c2V0VGltZW91dChlbmFibGVTdHlsZXNoZWV0LDMwMDApO307cnAucG9seT1mdW5jdGlvbigpe2lmKHJwLnN1cHBvcnQoKSl7cmV0dXJuO30KdmFyIGxpbmtzPXcuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKTtmb3IodmFyIGk9MDtpPGxpbmtzLmxlbmd0aDtpKyspe3ZhciBsaW5rPWxpbmtzW2ldO2lmKGxpbmsucmVsPT09InByZWxvYWQiJiZsaW5rLmdldEF0dHJpYnV0ZSgiYXMiKT09PSJzdHlsZSImJiFsaW5rLmdldEF0dHJpYnV0ZSgiZGF0YS1sb2FkY3NzIikpe2xpbmsuc2V0QXR0cmlidXRlKCJkYXRhLWxvYWRjc3MiLHRydWUpO3JwLmJpbmRNZWRpYVRvZ2dsZShsaW5rKTt9fX07aWYoIXJwLnN1cHBvcnQoKSl7cnAucG9seSgpO3ZhciBydW49dy5zZXRJbnRlcnZhbChycC5wb2x5LDUwMCk7aWYody5hZGRFdmVudExpc3RlbmVyKXt3LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cnAucG9seSgpO3cuY2xlYXJJbnRlcnZhbChydW4pO30pO31lbHNlIGlmKHcuYXR0YWNoRXZlbnQpe3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsZnVuY3Rpb24oKXtycC5wb2x5KCk7dy5jbGVhckludGVydmFsKHJ1bik7fSk7fX0KaWYodHlwZW9mIGV4cG9ydHMhPT0idW5kZWZpbmVkIil7ZXhwb3J0cy5sb2FkQ1NTPWxvYWRDU1M7fQplbHNle3cubG9hZENTUz1sb2FkQ1NTO319KHR5cGVvZiBnbG9iYWwhPT0idW5kZWZpbmVkIj9nbG9iYWw6dGhpcykpOw=="}},"time_used":514,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":514,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/floatbox/core.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.232Z","timestamp":1785145405232,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/floatbox/core.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 404 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: text/html\r\nlast-modified: Wed, 17 Jul 2024 10:50:54 GMT\r\netag: W/\"328-61d6f3c88c6a0\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":808,"size_decoded":579,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a943672a32297727bab01c3e76977550","sha1":"3a667c4b7a457ef6c586cc581d533c128737bf53","sha256":"b9347f234dc3c8d56e015e86d88a1400415db8f7a5ad91f02b6a2323c10a4187","sha512":"0965d415f3a0cef31953702fdae345d46fefd72ce3c4c7a0255aede74a76e10b856892700529a444453a622793e0257248c5c99fae17d5b0b9fd4118e208068c","ssdeep":"","tlshash":"2e01bd0a08e0501bc0d3915169a0f22dc9c2f997aa5b180079ed91c6cfd5f89c9d35ac","first_seen":"2023-03-08T11:42:06Z","last_seen":"2026-08-11T16:28:03.144886Z","times_seen":38799,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29tcGF0aWJsZSIgY29udGVudD0iaWU9ZWRnZSI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vIj4KICA8dGl0bGU+NDA0IE5vdCBGb3VuZDwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXJyb3JfZG9jcy9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0icGFnZSI+CiAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICA8aDE+U2VydmVyIEVycm9yPC9oMT4KICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvZGUiPjQwNDwvZGl2PgogICAgPGgyPlBhZ2UgTm90IEZvdW5kPC9oMj4KICAgIDxwIGNsYXNzPSJsZWFkIj5UaGlzIHBhZ2UgZWl0aGVyIGRvZXNuJ3QgZXhpc3QsIG9yIGl0IG1vdmVkIHNvbWV3aGVyZSBlbHNlLjwvcD4KICAgIDxoci8+CiAgICA8cD5UaGF0J3Mgd2hhdCB5b3UgY2FuIGRvPC9wPgogICAgPGRpdiBjbGFzcz0iaGVscC1hY3Rpb25zIj4KICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKTsiPlJlbG9hZCBQYWdlPC9hPgogICAgICA8YSBocmVmPSJqYXZhc2NyaXB0Omhpc3RvcnkuYmFjaygpOyI+QmFjayB0byBQcmV2aW91cyBQYWdlPC9hPgogICAgICA8YSBocmVmPSIvIj5Ib21lIFBhZ2U8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPg=="}},"time_used":99,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":99,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.371Z","timestamp":1785145406371,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 302 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\nlocation: https://www.google.no/pagead/1p-conversion/10784971490/?random=1108470498\u0026cv=11\u0026fst=1785145405698\u0026fmt=8\u0026bg=ffffff\u0026guid=ON\u0026async=1\u0026en=conversion\u0026gtm=45be67m0v9166295735z8852615139za20gzb852615139zd852615139xea\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395333~118897920~118897930~119259605~119724320~119732170~119896802\u0026u_w=1280\u0026u_h=1024\u0026url=https%3A%2F%2Fautolitefinances.pro%2F\u0026rcb=13\u0026label=Gv5fCPL7g_cbEOK11pYo\u0026frm=0\u0026tiba=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026value=0\u0026hn=www.google.com\u0026npa=1\u0026pscdl=noapi\u0026auid=1937861779.1785145405\u0026ec_mode=a\u0026oidsrc=3\u0026ecsid2=551782349.1785145406\u0026_tu=CBA\u0026gcl_ctr=1~0~0~0\u0026em=tv.1\u0026emd=tvd.1\u0026gcp=2\u0026sscte=1\u0026ct_cookie_present=1\u0026ept=8\u0026ct_cookie_present=false\u0026eoid=CkQKEAjwg5zTBhDsosjHirz1-igSMACfYaIOI3zDMLdG3GLhGZmD_4qOcJ6U2xWP6FboLfUHlhjLar7bb1cYNbT0nrFF3vD_BwE\u0026crd=CLTesQII8t-xAgit4bECCK_hsQIIobixAgixwbECCLDBsQIIscOxAgiKxbECCMLJsQIIyeWxAgi0xrECCJPasQII29yxAgiH27ECCNPFsQII68yxAgjtzrECCNXPsQII9NqxAgj947ECCMnjsQIIl9SxAgjJ27ECCM3msQIIseGxAgiz4bECCKbdsQIIsN6xAgiA27ECCMvhsQI\u0026cerd=Cgzr370tp6e-LYOwvi0\u0026eitems=ChEI8IOc0wYQm5zL_ZzC2cDWARIdAPpO9758npd8y1sd0xwZx6_TqqijTqYhkfxGgbY\u0026fsk=ChAI8IOc0wYQjsqpuKm14o4YEiwAZBf7T8gEDSRMrdzL68t_-J8pQJCGHrzB-93vJGe-S6yhw30YyejFwAe5qRoCoME\u0026ipr=y\u0026pscrd=IhMIoc_F7sjylQMVeBCiAx3rzjMCOh1odHRwczovL2F1dG9saXRlZmluYW5jZXMucHJvL0JWQ2hBSThJT2Mwd1lRcXJhSnY0Nlc0bzE3RWl3QWt6R0ZvN3picWJRVU5MVDJLZTJWT004dWZVLVhvMFB4M1cyRWNjWnUyR0JXT1lFYVJTS1JlZ2kwbXd6DAgJYggIABAAGAAgAA\r\ncontent-security-policy: script-src 'none'; object-src 'none'\r\ncontent-type: text/html; charset=UTF-8\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"302","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"text/html; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":null}},"time_used":28,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/app-modern.c15a5f24.js","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.820Z","timestamp":1785145403820,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /app-modern.c15a5f24.js HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:14 GMT\r\netag: W/\"65a77ac2-81af8\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":531192,"size_decoded":117792,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65485), with no line terminators","md5":"7930c4d59617fe96029efa8ede42850c","sha1":"89f326121c4eda9a021e29f90869d2f2f6bd91ed","sha256":"ae18220b8fd2de0c4e4d8086ee3c70fe62a63f83d93bca7e73a4f856ee528c93","sha512":"c213ef2dcd5fe72acc9b58b309eb3569e68ad5d2b157254cd10e8064e6ae9920f4effe153e0a19f5e1ab243f48b6477d090ecadc368f916597cf4f1b10f92fb1","ssdeep":"6144:naeJZ9I5dmKEsOxvku9PVX+kvfCJnMa/WXhz47/d12GI6HL453:X9I5dmKEsOxvf9PxRvfCJnMth87O","tlshash":"e5b44c907121202cd0f74097c9a71a0ce3b4ba8fb5ea0558f5f6ac9cb795a8b1335f76","first_seen":"2026-07-27T07:14:06.730707Z","last_seen":"2026-07-27T14:04:41.091993Z","times_seen":5,"resource_available":false,"data":"InVzZSBzdHJpY3QiOyhnbG9iYWxUaGlzLndlYnBhY2tDaHVua2ludGVyY29tX2pzPWdsb2JhbFRoaXMud2VicGFja0NodW5raW50ZXJjb21fanN8fFtdKS5wdXNoKFtbMjE0M10sezk2MjgxOihlLHQsbik9PntuLmQodCx7Q086KCk9PmksaG06KCk9Pm8semQ6KCk9PmF9KTt2YXIgcj1uKDUwNzAwKTtjb25zdCBpPTMyLG89KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTlsdjlybzAifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO2hlaWdodDoiLGksInB4O2JhY2tncm91bmQ6IiwoMCxyLnJTKSgibGlnaHRHcmV5NyIpLCI7Jjpob3ZlcntiYWNrZ3JvdW5kOiIsKDAsci5yUykoImxpZ2h0R3JleTUiKSwiO30iKSxhPSgwLHIuWlApKCJhIix7dGFyZ2V0OiJlOWx2OXJvMSJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjU2O2JvcmRlci1yYWRpdXM6MTZweDt0cmFuc2l0aW9uOmFsbCA4MG1zO2NvbG9yOiIsKDAsci5yUykoImlucHV0R3JleSIpLCIgIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlO3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZTsiKX0sODQ0OTQ6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5FbWFpbEF0dHJpYnV0ZX0pO3ZhciByPW4oNjcyOTQpLGk9big5MDE5Niksbz1uKDgzNTYyKSxhPW4oOTczNjYpLHM9big2NzU5Mik7Y2xhc3MgRW1haWxBdHRyaWJ1dGUgZXh0ZW5kcyByLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt2YWx1ZTplLHNhdmVTdGF0ZTp0LGlzQm9yZGVybGVzczpuLGlzUmVwbHlUeXBlOm8saXNOb3RpZmljYXRpb25DaGFubmVsOmwsaXNTdWJtaXR0YWJsZTpjLHBsYWNlaG9sZGVyOmQsZGlzYWJsZWQ6cCxlcnJvck1lc3NhZ2U6dSxoaWRlRXJyb3JNZXNzYWdlOm0sb25TdWJtaXQ6aCxvbkNoYW5nZTpnfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaS5aLHt2YWx1ZTplLHBsYWNlaG9sZGVyOmQsc2F2ZVN0YXRlOnQsZGlzYWJsZWQ6cCxpc1ZhbGlkOmEudixpc0JvcmRlcmxlc3M6bixpc1JlcGx5VHlwZTpvLGlzU3VibWl0dGFibGU6Yyxpc05vdGlmaWNhdGlvbkNoYW5uZWw6bCxvblN1Ym1pdDpoLG9uQ2hhbmdlOmcsaGlkZUVycm9yTWVzc2FnZTptLGFyaWFMYWJlbDoiRW50ZXIgeW91ciBlbWFpbCIsdHlwZToiZW1haWwiLHZhbGlkYXRpb25FcnJvck1lc3NhZ2U6dXx8KDAscy5JdSkoInRoYXRfZW1haWxfYWRkcmVzc19kb2VzbnRfbG9va19xdWl0ZV9yaWdodCIpfSl9fUVtYWlsQXR0cmlidXRlLmRlZmF1bHRQcm9wcz17cGxhY2Vob2xkZXI6by50LGlzU3VibWl0dGFibGU6ITAsaGlkZUVycm9yTWVzc2FnZTohMX19LDMwNDUzOihlLHQsbik9PntuLmQodCx7WjooKT0+UGhvbmVOdW1iZXJBdHRyaWJ1dGV9KTt2YXIgcj1uKDY3Mjk0KSxpPW4oMTYwMTIpLG89big5MDczMyksYT1uKDY3NTkyKSxzPW4oMzg3MTIpLGw9bigxODcwNik7ZnVuY3Rpb24gYygpe3JldHVybiBjPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gcChlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9Y2xhc3MgUGhvbmVOdW1iZXJJbnB1dCBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLmhhbmRsZUNoYW5nZT1lPT57dGhpcy5wcm9wcy5vbkNoYW5nZShlLnRhcmdldC52YWx1ZS50cmltKCkpfSx0aGlzLmhhbmRsZUtleURvd249ZT0+ezEzPT09ZS5rZXlDb2RlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucHJvcHMub25TdWJtaXQoKSl9LHRoaXMuaGFuZGxlRm9jdXM9ZT0+e2NvbnN0e3ZhbHVlOnR9PWUudGFyZ2V0O2UudGFyZ2V0LnZhbHVlPSIiLGUudGFyZ2V0LnZhbHVlPXR9fXJlbmRlckZsYWcoKXtjb25zdHtkZWZhdWx0Q291bnRyeUNvZGU6ZSx2YWx1ZTp0fT10aGlzLnByb3BzLG49KDAsaS52bCkodCksbz1uP24uY29kZTplO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobC5RWSx7Y291bnRyeUNvZGU6b30pfXJlbmRlclBsYWNlaG9sZGVyKCl7Y29uc3R7dmFsdWU6ZSxwbGFjZWhvbGRlcjp0LHNhdmVTdGF0ZTpufT10aGlzLnByb3BzLGk9dGhpcy5pc0Rpc2FibGVkKCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChsLkdnLHtkaXNhYmxlZDppLHNhdmVTdGF0ZTpufSwwPT09dC5pbmRleE9mKGUpJiZyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsci5jcmVhdGVFbGVtZW50KGwub3QsbnVsbCxlKSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsdC5yZXBsYWNlKGUsIiIpKSkpfWlzRGlzYWJsZWQoKXtjb25zdHtzYXZlU3RhdGU6ZX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5wcm9wcy5kaXNhYmxlZHx8InNhdmluZyI9PT1lfHwic2F2ZWQiPT09ZX1yZW5kZXJJbnB1dCgpe2NvbnN0e3ZhbHVlOmUsaXNCb3JkZXJsZXNzOnQsaXNSZXBseVR5cGU6bn09dGhpcy5wcm9wcyxpPXRoaXMuaXNEaXNhYmxlZCgpLG89ISh0JiZuKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJpbnB1dCIse25hbWU6InBob25lIix0eXBlOiJ0ZXh0IixkaXNhYmxlZDppLGF1dG9Gb2N1czpvLGRlZmF1bHRWYWx1ZTplLG9uRm9jdXM6dGhpcy5oYW5kbGVGb2N1cyxvbktleURvd246dGhpcy5oYW5kbGVLZXlEb3duLG9uQ2hhbmdlOnRoaXMuaGFuZGxlQ2hhbmdlLG9uQmx1cjpzLkFGLCJhcmlhLWxhYmVsIjooMCxhLkl1KSgicGhvbmVfbnVtYmVyIil9KX1yZW5kZXIoKXtjb25zdHtzYXZlU3RhdGU6ZSxpc0ludmFsaWQ6dH09dGhpcy5wcm9wcyxuPSJzYXZpbmciPT09ZSxpPW58fHRoaXMuaXNEaXNhYmxlZCgpLHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe3AoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmQoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9KHsiYXJpYS1sYWJlbCI6bj8oMCxhLkl1KSgibG9hZGluZyIpOigwLGEuSXUpKCJzdWJtaXQiKX0sbj97cm9sZToicHJvZ3Jlc3NiYXIifTp7fSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChsLlA4LHtzYXZlU3RhdGU6ZSxpc0ludmFsaWQ6dH0sdGhpcy5yZW5kZXJGbGFnKCksdGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpLHRoaXMucmVuZGVySW5wdXQoKSxyLmNyZWF0ZUVsZW1lbnQobC5QcSxudWxsKSxyLmNyZWF0ZUVsZW1lbnQobC5tVSxjKHtkaXNhYmxlZDppLG9uQ2xpY2s6dGhpcy5wcm9wcy5vblN1Ym1pdCxzYXZlU3RhdGU6ZX0scyksci5jcmVhdGVFbGVtZW50KG8uWix7ZGlzYWJsZWQ6aSxsb2FkaW5nOm59KSkpfX12YXIgdT1uKDE4Mjg5KTtjbGFzcyBQaG9uZU51bWJlckF0dHJpYnV0ZSBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e3ZhbHVlOnRoaXMucHJvcHMudmFsdWV8fGAkeygwLGkubDQpKHRoaXMucHJvcHMuZGVmYXVsdENvdW50cnlDb2RlKX0gYCxpc1ZhbGlkOiEwfSx0aGlzLmhhbmRsZUNoYW5nZT1lPT57dGhpcy5zZXRTdGF0ZSh7dmFsdWU6ZSxpc1ZhbGlkOiEwfSl9LHRoaXMuaGFuZGxlU3VibWl0PSgpPT57Y29uc3R7dmFsdWU6ZX09dGhpcy5zdGF0ZTsoMCxpLkpZKShlKT90aGlzLnByb3BzLm9uU3VibWl0KGUpOnRoaXMuc2V0U3RhdGUoe2lzVmFsaWQ6ITF9KX19Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm5gJHsoMCxpLmw0KSh0aGlzLnByb3BzLmRlZmF1bHRDb3VudHJ5Q29kZSl9IDEyMyA0NTYgNzg5MGB9Z2V0RXJyb3JNZXNzYWdlKCl7aWYodGhpcy5zdGF0ZS5pc1ZhbGlkKXJldHVybiJmYWlsZWQiPT09dGhpcy5wcm9wcy5zYXZlU3RhdGUmJiJwYXJhbWV0ZXJfaW52YWxpZCI9PT10aGlzLnByb3BzLmVycm9yQ29kZT8oMCxhLkl1KSgidGhhdF9udW1iZXJfZG9lc250X2xvb2tfcXVpdGVfcmlnaHQiKTooMCxhLkl1KSgic29tZXRoaW5nX2lzX3dyb25nIik7e2NvbnN0IGU9KDAsaS56ZykodGhpcy5zdGF0ZS52YWx1ZSk7cmV0dXJuIGU/KDAsYS5JdSkoZSk6KDAsYS5JdSkoInRoYXRfbnVtYmVyX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0Iil9fWlzSW52YWxpZCgpe3JldHVybiJmYWlsZWQiPT09dGhpcy5wcm9wcy5zYXZlU3RhdGV8fCF0aGlzLnN0YXRlLmlzVmFsaWR9cmVuZGVyKCl7Y29uc3R7c2F2ZVN0YXRlOmUsZGVmYXVsdENvdW50cnlDb2RlOnQsaXNCb3JkZXJsZXNzOm4saXNSZXBseVR5cGU6aSxpc05vdGlmaWNhdGlvbkNoYW5uZWw6byxkaXNhYmxlZDphfT10aGlzLnByb3BzLHM9dGhpcy5nZXRQbGFjZWhvbGRlcigpLGw9dGhpcy5pc0ludmFsaWQoKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsci5jcmVhdGVFbGVtZW50KFBob25lTnVtYmVySW5wdXQse3ZhbHVlOnRoaXMuc3RhdGUudmFsdWUsc2F2ZVN0YXRlOmUscGxhY2Vob2xkZXI6cyxkZWZhdWx0Q291bnRyeUNvZGU6dCxpc0ludmFsaWQ6bCxpc0JvcmRlcmxlc3M6bixpc1JlcGx5VHlwZTppLGRpc2FibGVkOmEsaXNOb3RpZmljYXRpb25DaGFubmVsOm8sb25DaGFuZ2U6dGhpcy5oYW5kbGVDaGFuZ2Usb25TdWJtaXQ6dGhpcy5oYW5kbGVTdWJtaXR9KSxsJiZyLmNyZWF0ZUVsZW1lbnQodS5aLHtlcnJvck1lc3NhZ2U6dGhpcy5nZXRFcnJvck1lc3NhZ2UoKX0pKX19fSwzMTM5NDooZSx0LG4pPT57bi5kKHQse1o6KCk9PkF1dGhvckF2YXRhcn0pO3ZhciByPW4oNjcyOTQpLGk9big2MDA3MSksbz1uKDY1NTM2KSxhPW4oNzgyOCk7Y2xhc3MgVXNlckF2YXRhciBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtnZXRBdmF0YXJMYWJlbCgpe2NvbnN0e2ZpcnN0TmFtZTplfT10aGlzLnByb3BzLnVzZXI7cmV0dXJuYCR7ZXx8IlVzZXIifSBwcm9maWxlYH1yZW5kZXIoKXtjb25zdHtzaXplOmV9PXRoaXMucHJvcHMse2luaXRpYWw6dCxhdmF0YXI6bn09dGhpcy5wcm9wcy51c2VyO3JldHVybiB0P3IuY3JlYXRlRWxlbWVudChhLlAse3NpemU6ZSxpbml0aWFsOiEwLHVzZXI6ITAscm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6dGhpcy5nZXRBdmF0YXJMYWJlbCgpLHNoYXBlOm51bGw9PW4/dm9pZCAwOm4uc2hhcGV9LHQpOm51bGx9fWNsYXNzIEF1dGhvckF2YXRhciBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtyZW5kZXJUZWFtQXZhdGFyKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoby5aLHthZG1pbnM6ZX0pfXJlbmRlckFkbWluQXZhdGFyKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaS5aLHthZG1pbjplLHNpemU6dGhpcy5wcm9wcy5zaXplfSl9cmVuZGVyVXNlckF2YXRhcihlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFVzZXJBdmF0YXIse3VzZXI6ZSxzaXplOnRoaXMucHJvcHMuc2l6ZX0pfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5wcm9wcy5hdXRob3I7c3dpdGNoKGUudHlwZSl7Y2FzZSJ0ZWFtIjpyZXR1cm4gdGhpcy5yZW5kZXJUZWFtQXZhdGFyKGUuYWRtaW5zKTtjYXNlImFkbWluIjpkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlckFkbWluQXZhdGFyKGUpO2Nhc2UidXNlciI6cmV0dXJuIHRoaXMucmVuZGVyVXNlckF2YXRhcihlKX19fX0sNDA3MTE6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5BdXRob3JTdW1tYXJ5fSk7dmFyIHI9big0NTY5NyksaT1uLm4ociksbz1uKDY3Mjk0KSxhPW4oMTg5MTYpLHM9big1MjUwMCksbD1uKDY3NTkyKTtjbGFzcyBBdXRob3JTdW1tYXJ5IGV4dGVuZHMgby5Db21wb25lbnR7cmVuZGVyUmVwbHlTdHlsZSgpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoYS5ERixudWxsLCF0aGlzLnByb3BzLnJlbW92ZVByZWZpeCYmby5jcmVhdGVFbGVtZW50KGEubUMsbnVsbCxgJHsoMCxsLkl1KSgicmVwbHlfZnJvbSIpfSBgKSxvLmNyZWF0ZUVsZW1lbnQoYS51Zix7Y2xhc3NOYW1lOiJ0ZXN0LWF1dGhvci1zdW1tYXJ5LW5hbWUifSx0aGlzLnByb3BzLmF1dGhvci5maXJzdE5hbWUpKX1hY3RpdmVPckF3YXlJbldvcmRzKCl7cmV0dXJuIHRoaXMucHJvcHMuaXNBY3RpdmU/IkFjdGl2ZSI6IkF3YXkifXJlbmRlcldpdGhBcHBOYW1lKCl7Y29uc3R7bGFzdEFjdGl2ZUF0OmUsYXBwTmFtZTp0LGF1dGhvcjpufT10aGlzLnByb3BzLHI9bi5maXJzdE5hbWUsaT1udWxsIT09dGhpcy5wcm9wcy5pc0FjdGl2ZSYmImVuIj09PSgwLGwuS2QpKCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChhLkRGLG51bGwsby5jcmVhdGVFbGVtZW50KGEubUsse2NsYXNzTmFtZToidGVzdC1hdXRob3Itc3VtbWFyeS1uYW1lLWZyb20ifSxvLmNyZWF0ZUVsZW1lbnQoYS51Zix7Y2xhc3NOYW1lOiJ0ZXN0LWF1dGhvci1zdW1tYXJ5LW5hbWUifSxyKSwidGVhbSIhPT1uLnR5cGU/by5jcmVhdGVFbGVtZW50KGEucVkse2NsYXNzTmFtZToidGVzdC1hdXRob3Itc3VtbWFyeS1mcm9tLWNsYXVzZSJ9LGAgJHsoMCxsLkl1KSgiZnJvbV9hcHAiLHthcHBfbmFtZTp0fSl9YCk6bnVsbCksZT9vLmNyZWF0ZUVsZW1lbnQoYS5VRixudWxsLGk/dGhpcy5hY3RpdmVPckF3YXlJbldvcmRzKCk6KDAscy5WUCkoZSkpOm51bGwpfXJlbmRlcigpe3JldHVybiB0aGlzLnByb3BzLmlzUmVwbHlTdHlsZT90aGlzLnJlbmRlclJlcGx5U3R5bGUoKTp0aGlzLnJlbmRlcldpdGhBcHBOYW1lKCl9fUF1dGhvclN1bW1hcnkucHJvcFR5cGVzPXthcHBOYW1lOmkoKS5zdHJpbmcuaXNSZXF1aXJlZCxhdXRob3I6aSgpLnNoYXBlKHtmaXJzdE5hbWU6aSgpLnN0cmluZy5pc1JlcXVpcmVkLGlzQWN0aXZlOmkoKS5ib29sLHR5cGU6aSgpLnN0cmluZ30pLmlzUmVxdWlyZWQsaXNSZXBseVN0eWxlOmkoKS5ib29sLmlzUmVxdWlyZWQsbGFzdEFjdGl2ZUF0OmkoKS5pbnN0YW5jZU9mKERhdGUpLGlzQWN0aXZlOmkoKS5ib29sLHJlbW92ZVByZWZpeDppKCkuYm9vbH19LDYwMTgxOihlLHQsbik9PntuLmQodCx7WjooKT0+QXV0aG9yZWRDb250YWluZXJ9KTt2YXIgcj1uKDY3Mjk0KSxpPW4oNDA3MTEpLG89bigzMTM5NCksYT1uKDQ5NDU0KSxzPW4oNTI1MDApO2NsYXNzIEF1dGhvcmVkQ29udGFpbmVyIGV4dGVuZHMgci5Db21wb25lbnR7cmVuZGVyQXV0aG9yQXZhdGFyQW5kU3VtbWFyeSgpe2NvbnN0e2FwcE5hbWU6ZSxhdXRob3I6dCxpc1JlcGx5U3R5bGU6bixsYXN0QWN0aXZlQXQ6cyxpc0FjdGl2ZTpsfT10aGlzLnByb3BzO3JldHVybiB0P3IuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KGEuZHAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoby5aLHthdXRob3I6dH0pKSxyLmNyZWF0ZUVsZW1lbnQoaS5aLHthdXRob3I6dCxhcHBOYW1lOmUsaXNSZXBseVN0eWxlOm4sbGFzdEFjdGl2ZUF0OnMsaXNBY3RpdmU6bH0pKTpudWxsfXJlbmRlck01KCl7Y29uc3R7YXV0aG9yOmUsbGFzdFBhcnRDcmVhdGVkQXQ6dCxhcHBOYW1lOm59PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChhLmtVLHtjbGFzc05hbWU6ImludGVyY29tLWF1dGhvcmVkLWNvbnRhaW5lciIsaG9yaXpvbnRhbDpob3Jpem9udGFsfSxyLmNyZWF0ZUVsZW1lbnQoYS5kcCxudWxsLHIuY3JlYXRlRWxlbWVudChvLlose2F1dGhvcjplfSkpLHIuY3JlYXRlRWxlbWVudChhLkE5LG51bGwsdGhpcy5wcm9wcy5jaGlsZHJlbixlP2UuZmlyc3ROYW1lOm4sIiDigKIgIiwoMCxzLlZPKSh0KSkpfXJlbmRlcigpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoYS5rVSx7Y2xhc3NOYW1lOiJpbnRlcmNvbS1hdXRob3JlZC1jb250YWluZXIifSxyLmNyZWF0ZUVsZW1lbnQoYS5tcixudWxsLHRoaXMucmVuZGVyQXV0aG9yQXZhdGFyQW5kU3VtbWFyeSgpKSx0aGlzLnByb3BzLmNoaWxkcmVuKX19QXV0aG9yZWRDb250YWluZXIuZGVmYXVsdFByb3BzPXtpc1JlcGx5U3R5bGU6ITF9fSw2MDA3MTooZSx0LG4pPT57bi5kKHQse0M6KCk9PmwsWjooKT0+QXZhdGFyfSk7dmFyIHI9big2NzI5NCksaT1uKDc4MjgpLG89big1MDcwMCksYT17bmFtZToiMWUxczJxcyIsc3R5bGVzOiJiYWNrZ3JvdW5kLWNvbG9yOiNmMWM3NDM7In07Y29uc3Qgcz0oMCxvLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOWY0OTZ2MCJ9KSgid2lkdGg6IiwoMCxvLk5RKSgic2l6ZSIpfHw4LCJweDtoZWlnaHQ6IiwoMCxvLk5RKSgic2l6ZSIpfHw4LCJweDtiYWNrZ3JvdW5kLWNvbG9yOiM3ZWQzMjE7Ym9yZGVyOiIsKDAsby5OUSkoImJvcmRlclNpemUiKXx8MiwicHggc29saWQgIiwoMCxvLnJTKSgiYXBwU2Vjb25kYXJ5Q29sb3IiKSwiO21hcmdpbjowIGF1dG87Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246Ym90dG9tO3JpZ2h0OiIsKDAsby5OUSkoInJpZ2h0Iil8fDMsInB4O2JvdHRvbToiLCgwLG8uTlEpKCJib3R0b20iKXx8MywicHg7cG9zaXRpb246YWJzb2x1dGU7IiwoKHtpc0FjdGl2ZTplfSk9PiFlJiZhKSksbD0zMjtjbGFzcyBBdmF0YXIgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17aW1hZ2VFcnJvcmVkOiExfSx0aGlzLmhhbmRsZUJyb2tlbkltYWdlPSgpPT57dGhpcy5zZXRTdGF0ZSh7aW1hZ2VFcnJvcmVkOiEwfSl9fWluaXRpYWxGcm9tRmlyc3ROYW1lKCl7Y29uc3R7Zmlyc3ROYW1lOmV9PXRoaXMucHJvcHMuYWRtaW47aWYoZSlyZXR1cm4gZS5zbGljZSgwLDEpLnRvVXBwZXJDYXNlKCl9Z2V0QXZhdGFyTGFiZWwoKXtjb25zdHtmaXJzdE5hbWU6ZX09dGhpcy5wcm9wcy5hZG1pbjtyZXR1cm5gJHtlfHwiVGVhbW1hdGUifSBwcm9maWxlYH1yZW5kZXJTdGF0dXMoKXtjb25zdHthZG1pbjplLHNob3dTdGF0dXM6dCxzaXplOm59PXRoaXMucHJvcHM7aWYoIXQpcmV0dXJuIG51bGw7cmV0dXJuImlzQWN0aXZlImluIGUmJmUuaXNBY3RpdmU/ci5jcmVhdGVFbGVtZW50KHMse2lzQWN0aXZlOiEwLHJpZ2h0OjAsYm90dG9tOjIsYm9yZGVyU2l6ZToyLHNpemU6TWF0aC5mbG9vcigobnx8bCkvNSl9KTpudWxsfXJlbmRlckltYWdlKCl7Y29uc3R7c2l6ZTplfT10aGlzLnByb3BzLHthdmF0YXI6e3NoYXBlOnQsc3F1YXJlMTI4Om59fT10aGlzLnByb3BzLmFkbWluO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaS5QLHtzaXplOmUsc2hhcGU6dH0sci5jcmVhdGVFbGVtZW50KCJpbWciLHtzcmM6bixhbHQ6dGhpcy5nZXRBdmF0YXJMYWJlbCgpLG9uRXJyb3I6dGhpcy5oYW5kbGVCcm9rZW5JbWFnZX0pLHRoaXMucmVuZGVyU3RhdHVzKCkpfXJlbmRlckluaXRpYWwoKXtjb25zdHtzaXplOmV9PXRoaXMucHJvcHMse2luaXRpYWw6dCxhdmF0YXI6bn09dGhpcy5wcm9wcy5hZG1pbjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGkuUCx7aW5pdGlhbDohMCxyb2xlOiJpbWciLCJhcmlhLWxhYmVsIjp0aGlzLmdldEF2YXRhckxhYmVsKCksc2l6ZTplLHNoYXBlOm51bGw9PW4/dm9pZCAwOm4uc2hhcGV9LHR8fHRoaXMuaW5pdGlhbEZyb21GaXJzdE5hbWUoKSx0aGlzLnJlbmRlclN0YXR1cygpKX1yZW5kZXIoKXtjb25zdHthdmF0YXI6ZX09dGhpcy5wcm9wcy5hZG1pbjtyZXR1cm4gZSYmZS5zcXVhcmUxMjgmJiF0aGlzLnN0YXRlLmltYWdlRXJyb3JlZD90aGlzLnJlbmRlckltYWdlKCk6dGhpcy5yZW5kZXJJbml0aWFsKCl9fUF2YXRhci5kZWZhdWx0UHJvcHM9e3Nob3dTdGF0dXM6ITEsc2l6ZTpsfX0sNDMyMzooZSx0LG4pPT57bi5kKHQse1o6KCk9PkNoYXRDYXJkR3JvdXB9KTt2YXIgcj1uKDY3Mjk0KSxpPW4oOTQxODQpLG89bi5uKGkpLGE9bigzMTM5NCkscz1uKDQwNzExKSxsPW4oNjM1MzgpLGM9big1NjkzMyksZD1uKDEzOTQxKSxwPW4oODY3OTYpLHU9big4MjU1KSxtPW4oNjc1MjQpLGg9big5NTQ4NiksZz1uKDUyNTAwKTtjbGFzcyBDaGF0Q2FyZFByZXNlbnRlciBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e2lzU2Nyb2xsYWJsZTohMSxpc1Njcm9sbGVkOiExfSx0aGlzLmhhbmRsZVNjcm9sbGFibGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc1Njcm9sbGFibGU6ITB9KX0sdGhpcy5oYW5kbGVTY3JvbGw9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzU2Nyb2xsZWQ6ZS50YXJnZXQuc2Nyb2xsVG9wPjB9KX19cmVuZGVyQWRtaW5BdmF0YXIoKXtjb25zdHtwYXJ0OnthdXRob3I6ZX19PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChoLlJkLHtpc0F1dGhvclR5cGVUZWFtOiJ0ZWFtIj09PWUudHlwZX0sci5jcmVhdGVFbGVtZW50KGEuWix7YXV0aG9yOmV9KSl9cmVuZGVySW5saW5lTWV0YWRhdGEoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGMuWix7cGFydDp0aGlzLnByb3BzLnBhcnR9KX1yZW5kZXJTdGlja2VyT3JCbG9ja3MoKXtjb25zdHtwYXJ0OnthdXRob3I6ZSxib2R5OnR9LGZyYW1lV2luZG93Om59PXRoaXMucHJvcHM7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKDAsbS5lUCkodFswXSk/ci5jcmVhdGVFbGVtZW50KHAuWix7dGV4dDooMCx1LlJ5KSh0WzBdKX0pOnIuY3JlYXRlRWxlbWVudChsLlose2Jsb2Nrczp0LHpvb21hYmxlOiEwLGF1dGhvcjplLGZyYW1lV2luZG93Om59KX1yZW5kZXJTaW5nbGVCb2R5KCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChoLmdiLG51bGwsdGhpcy5yZW5kZXJTdGlja2VyT3JCbG9ja3MoKSl9cmVuZGVyQXV0aG9yKCl7Y29uc3R7YXBwTmFtZTplLHBhcnQ6e21lc3NhZ2VUeXBlOnQsYXV0aG9yOm4sY3JlYXRlZEF0Oml9fT10aGlzLnByb3BzLHtpc1Njcm9sbGVkOm99PXRoaXMuc3RhdGUsYT0iYWRtaW5SZXBseSI9PT10O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaC5VVyx7aXNTY3JvbGxlZDpvfSxyLmNyZWF0ZUVsZW1lbnQocy5aLHthdXRob3I6bixhcHBOYW1lOmUsaXNSZXBseVN0eWxlOmEscmVtb3ZlUHJlZml4OiEwfSksci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCLigKIiKSxgJHsoMCxnLlZPKShpKX1gKX1yZW5kZXJGdWxsQm9keSgpe2NvbnN0e2lzQm9yZGVybGVzczplfT10aGlzLnByb3BzLHtpc1Njcm9sbGFibGU6dH09dGhpcy5zdGF0ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsdGhpcy5wcm9wcy5zaG93QXV0aG9yP3RoaXMucmVuZGVyQXV0aG9yKCk6bnVsbCxyLmNyZWF0ZUVsZW1lbnQoaC5nLHtpc1Njcm9sbGFibGU6dCxpc0JvcmRlcmxlc3M6ZX0sci5jcmVhdGVFbGVtZW50KGQuWix7b25TY3JvbGxhYmxlOnRoaXMuaGFuZGxlU2Nyb2xsYWJsZSxvblNjcm9sbDp0aGlzLmhhbmRsZVNjcm9sbH0sdGhpcy5yZW5kZXJTdGlja2VyT3JCbG9ja3MoKSkpKX1yZW5kZXIoKXtjb25zdHtoYXNBdmF0YXI6ZSxzaG93QXZhdGFyOnQsaXNCb3JkZXJsZXNzOm4saXNNb2JpbGU6aSxwYXJ0Ontib2R5OmF9fT10aGlzLnByb3BzLHM9KDAsbS5SNSkoYSksbD1vKCkoeyJpbnRlcmNvbS1jaGF0LWNhcmQiOiEocyYmbiksImludGVyY29tLWNoYXQtY2FyZC1ib3JkZXJsZXNzLXNpbmdsZSI6cyYmbn0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoaC5iOCx7Y2xhc3NOYW1lOmwsaXNTaW5nbGVCbG9jazpzLGlzQm9yZGVybGVzczpuLHNob3dBdmF0YXI6ZSYmdCxpc01vYmlsZTppfSxlJiZ0P3RoaXMucmVuZGVyQWRtaW5BdmF0YXIoKTpudWxsLHMmJm4/dGhpcy5yZW5kZXJTaW5nbGVCb2R5KCk6dGhpcy5yZW5kZXJGdWxsQm9keSgpKX19ZnVuY3Rpb24gZihlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KENoYXRDYXJkUHJlc2VudGVyLGUpfUNoYXRDYXJkUHJlc2VudGVyLmRlZmF1bHRQcm9wcz17aXNCb3JkZXJsZXNzOiExLHNob3dBdXRob3I6ITAsc2hvd0F2YXRhcjohMCxoYXNBdmF0YXI6ITB9O3ZhciB4PW4oNzgyMDcpO2NvbnN0IHY9L148YnI+Lyx5PS88YnI+JC87Y2xhc3MgQ2hhdENhcmRHcm91cCBleHRlbmRzIHIuQ29tcG9uZW50e2J1aWxkTmV3UGFydCgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LHRoaXMucHJvcHMucGFydCx7Ym9keTpbXX0pfWNsZWFuQmxvY2tXaXRoUGF0dGVybihlLHQpe2UudGV4dCYmKGUudGV4dD1lLnRleHQudHJpbSgpLnJlcGxhY2UodCwiIikpfWNsZWFuQWRqYWNlbnRCbG9ja3MoZSx0KXsibWVzc2VuZ2VyQ2FyZCI9PT1lLnR5cGUmJiJwYXJhZ3JhcGgiPT09dC50eXBlP3RoaXMuY2xlYW5CbG9ja1dpdGhQYXR0ZXJuKHQsdik6InBhcmFncmFwaCI9PT1lLnR5cGUmJiJtZXNzZW5nZXJDYXJkIj09PXQudHlwZSYmdGhpcy5jbGVhbkJsb2NrV2l0aFBhdHRlcm4oZSx5KX1jbGVhblBhcnRzKGUpe3JldHVybiBlLm1hcCgoKGUsdCxuKT0+e2lmKHQ8bi5sZW5ndGgtMSl7Y29uc3Qgcj1uW3QrMV0saT1lLmJvZHkubGVuZ3RoLTE7dGhpcy5jbGVhbkFkamFjZW50QmxvY2tzKGUuYm9keVtpXSxyLmJvZHlbMF0pfXJldHVybiBlfSkpfXNwbGl0UGFydEJ5QmxvY2tUeXBlKCl7Y29uc3QgZT1bXTtsZXQgdD1udWxsO3JldHVybiB0aGlzLnByb3BzLnBhcnQuYm9keS5mb3JFYWNoKChuPT57InBhcmFncmFwaCI9PT1uLnR5cGUmJiIiPT09bi50ZXh0fHwoMCE9PWUubGVuZ3RoJiYibWVzc2VuZ2VyQ2FyZCIhPT1uLnR5cGUmJiJtZXNzZW5nZXJDYXJkIiE9PXR8fGUucHVzaCh0aGlzLmJ1aWxkTmV3UGFydCgpKSxlW2UubGVuZ3RoLTFdLmJvZHkucHVzaChuKSx0PW4udHlwZSl9KSksdGhpcy5jbGVhblBhcnRzKGUpfXJlbmRlckNvbW1lbnRDb250YWluZXIoZSx0LG4pe2NvbnN0e2hhc0F2YXRhcjppLGlzQm9yZGVybGVzczpvLGlzTW9iaWxlOmEsc2hvd0lubGluZU1ldGFkYXRhOnMsZnJhbWVXaW5kb3c6bH09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KHguWix7a2V5OnQscGFydDplLHNob3dBdmF0YXI6bixoYXNBdmF0YXI6aSxpc0JvcmRlcmxlc3M6byxpc01vYmlsZTphLGZyYW1lV2luZG93Omwsc2hvd0lubGluZU1ldGFkYXRhOnN9KX1yZW5kZXJDaGF0Q2FyZChlLHQsbixpKXtjb25zdHthcHBOYW1lOm8saGFzQXZhdGFyOmEsaXNCb3JkZXJsZXNzOnMsc2hvd0lubGluZU1ldGFkYXRhOmwsZnJhbWVXaW5kb3c6Yyxpc01vYmlsZTpkfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoZix7a2V5OnQsYXBwTmFtZTpvLHBhcnQ6ZSxzaG93QXV0aG9yOm4sc2hvd0F2YXRhcjppLGhhc0F2YXRhcjphLGlzQm9yZGVybGVzczpzLHNob3dJbmxpbmVNZXRhZGF0YTpsLGZyYW1lV2luZG93OmMsaXNNb2JpbGU6ZH0pfXJlbmRlclBhcnQoZSx0LG4scil7cmV0dXJuIDE9PT1lLmJvZHkubGVuZ3RoJiYibWVzc2VuZ2VyQ2FyZCI9PT1lLmJvZHlbMF0udHlwZT90aGlzLnJlbmRlckNvbW1lbnRDb250YWluZXIoZSx0LHIpOnRoaXMucmVuZGVyQ2hhdENhcmQoZSx0LG4scil9cmVuZGVyUGFydHMoZSl7cmV0dXJuIGUubWFwKCgodCxuKT0+e2NvbnN0IHI9MD09PW4saT1uPT09ZS5sZW5ndGgtMTtyZXR1cm4gdGhpcy5yZW5kZXJQYXJ0KHQsbixyLGkpfSkpfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5zcGxpdFBhcnRCeUJsb2NrVHlwZSgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCx0aGlzLnJlbmRlclBhcnRzKGUpKX19Q2hhdENhcmRHcm91cC5kZWZhdWx0UHJvcHM9e2lzQm9yZGVybGVzczohMSxpc01vYmlsZTohMSxoYXNBdmF0YXI6ITB9fSw3ODIwNzooZSx0LG4pPT57bi5kKHQse1o6KCk9PkNvbW1lbnRDb250YWluZXJ9KTt2YXIgcj1uKDQ1Njk3KSxpPW4ubihyKSxvPW4oNjcyOTQpLGE9big2MzUzOCkscz1uKDg2Nzk2KSxsPW4oNTY5MzMpLGM9big4MTQ0OSk7Y29uc3QgZD1lPT4ibWVzc2VuZ2VyQ2FyZCI9PT1lLnR5cGV8fCJjcmVhdGVUaWNrZXRDYXJkIj09PWUudHlwZSxwPWU9PiFkKGUpLHU9ZT0+InBhcmFncmFwaCI9PT1lLnR5cGUmJiFlLnRleHQ7Y2xhc3MgQmxvY2tHcm91cHtjb25zdHJ1Y3Rvcigpe3RoaXMuYmxvY2tzPVtdfWFkZEJsb2NrKGUpe3RoaXMuYmxvY2tzLnB1c2goZSl9fWNsYXNzIEJsb2NrR3JvdXBze2NvbnN0cnVjdG9yKCl7dGhpcy5ncm91cHM9W119YWRkQmxvY2soZSl7bGV0IHQ9dGhpcy5ncm91cHNbdGhpcy5ncm91cHMubGVuZ3RoLTFdO3QmJnQuYmxvY2tzLmV2ZXJ5KHApJiZwKGUpfHwodD1uZXcgQmxvY2tHcm91cCx0aGlzLmdyb3Vwcy5wdXNoKHQpKSx0LmFkZEJsb2NrKGUpfX1jbGFzcyBDb21tZW50Qm9keSBleHRlbmRzIG8uUHVyZUNvbXBvbmVudHtnZXRCbG9ja0dyb3Vwcygpe2NvbnN0IGU9bmV3IEJsb2NrR3JvdXBzO3JldHVybiB0aGlzLnByb3BzLnBhcnQuYm9keS5mb3JFYWNoKCh0PT5lLmFkZEJsb2NrKHQpKSksZX1yZW5kZXJCbG9ja0dyb3VwKGUsdCxuKXtjb25zdHtwYXJ0OnIsem9vbWFibGU6aSxtYXhJbWFnZVdpZHRoOnMsb25JbWFnZUNsaWNrOm0saXNMYXN0UGFydDpoLGZyYW1lV2luZG93OmcsaXNCb3JkZXJsZXNzOmYsaGFzQXZhdGFyOnh9PXRoaXMucHJvcHMse2F1dGhvcjp7aXNBZG1pbjp2LGlzU2VsZjp5fX09cixiPXRoaXMucHJvcHMuc2hvd0lubGluZU1ldGFkYXRhJiZuJiZlLmJsb2Nrcy5ldmVyeShwKSxFPWUuYmxvY2tzLmV2ZXJ5KHUpLGs9ZS5ibG9ja3MuZXZlcnkocCksQz1lLmJsb2Nrcy5ldmVyeShkKTtyZXR1cm4gRT9udWxsOm8uY3JlYXRlRWxlbWVudChjLkMse2tleTp0LGlzVGV4dDprLGhhc0F2YXRhcjp4LGlzTWVzc2VuZ2VyQ2FyZDpDLGlzQm9yZGVybGVzczpmLGlzQWRtaW46dixpc1VzZXI6eX0sby5jcmVhdGVFbGVtZW50KGEuWix7YmxvY2tzOmUuYmxvY2tzLGF1dGhvcjpyLmF1dGhvcix6b29tYWJsZTppLG1heEltYWdlV2lkdGg6cyxvbkltYWdlQ2xpY2s6bSxpc0xhc3RQYXJ0OmgsZnJhbWVXaW5kb3c6Z30pLGI/by5jcmVhdGVFbGVtZW50KGwuWix7cGFydDpyfSk6bnVsbCl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLmdldEJsb2NrR3JvdXBzKCk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChjLmosbnVsbCxlLmdyb3Vwcy5tYXAoKCh0LG4pPT50aGlzLnJlbmRlckJsb2NrR3JvdXAodCxuLG49PT1lLmdyb3Vwcy5sZW5ndGgtMSkpKSl9fXZhciBtPW4oNTI1MDApLGg9big4MjU1KSxnPW4oNjc1MjQpLGY9big2OTg2OCkseD1uKDMzMTMxKSx2PW4oMzAyMjQpLHk9big1MDcwMCk7Y29uc3QgYj0oMCx5LlpQKSgiZGl2Iix7dGFyZ2V0OiJldGoyaHd6MCJ9KSgiZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo0cHg7Z2FwOjJweDtsaW5lLWhlaWdodDoxO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtib3JkZXItcmFkaXVzOjIwcHg7IiwoKHtjb2xvcjplPSJibGFjayIsYmFja2dyb3VuZENvbG9yOnQ9ImxpZ2h0R3JleTExIix0aGVtZTpufSk9PigwLHkuaXYpKCJjb2xvcjoiLG5bZV0sIjtiYWNrZ3JvdW5kOiIsblt0XSwiO3RyYW5zaXRpb246YmFja2dyb3VuZCAwLjJzIGVhc2UtaW4tb3V0LGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7IikpKSxFPSgwLHkuWlApKCJzcGFuIix7dGFyZ2V0OiJldGoyaHd6MSJ9KSh7bmFtZToiMXFxOGxudSIsc3R5bGVzOiJwYWRkaW5nOjAgMnB4OyJ9KTt2YXIgaz1uKDM3Njk1KTtjb25zdCBDPSh7Y2hpbGRyZW46ZSxpY29uOnQsY29sb3I6bj0iYmxhY2siLGJhY2tncm91bmRDb2xvcjpyfSk9Pm8uY3JlYXRlRWxlbWVudChiLHtjb2xvcjpuLGJhY2tncm91bmRDb2xvcjpyfSxlJiZvLmNyZWF0ZUVsZW1lbnQoRSxudWxsLGUpLHQmJm8uY3JlYXRlRWxlbWVudChrLlose3R5cGU6dCxjb2xvcjpufSkpO2Z1bmN0aW9uIHcoe2xhYmVsOmU9IiIsY29sb3I6dCxiYWNrZ3JvdW5kQ29sb3I6bn0pe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoQyx7aWNvbjoiSW5mbyIsY29sb3I6dCxiYWNrZ3JvdW5kQ29sb3I6bn0sZSl9dmFyIFM9big2NzU5MiksUD1uKDgwMjk5KTtjb25zdCBUPSgwLHkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxbnhmOTF1MCJ9KSgiZm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTkwO2xpbmUtaGVpZ2h0OjIwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW46MTJweCAtMTlweCAtMnB4O3BhZGRpbmc6MTRweCAxOHB4IDBweDtjb2xvcjoiLCgwLHkuclMpKCJpbnB1dEdyZXkiKSwiO2JvcmRlci10b3A6MXB4IHNvbGlkICIsKDAseS5yUykoImxpZ2h0Qm9yZGVyIiksIjsiLGYuVzIuV3JhcC5jbGFzc05hbWUsIntsZWZ0Oi0xMTVweDt9IiksWj0oMCx5LlpQKSgiZGl2Iix7dGFyZ2V0OiJlMW54ZjkxdTEifSkoe25hbWU6IjE3MmhqdXciLHN0eWxlczoiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4OyJ9KSxJPSgwLHkuWlApKCJzcGFuIix7dGFyZ2V0OiJlMW54ZjkxdTIifSkoInBvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiIsKDAseS5yUykoImZpbkFuc3dlckNhcmRUZXh0Q29sb3IiKSwiO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTNweDsiKSxqPSgpPT57Y29uc3QgZT0oMCxQLkNHKSgoZT0+ZS5hcHAubmFtZXx8IiIpKSx0PSgwLFAuQ0cpKChlPT5lLmFwcC5maW5NdWx0aWxpbmd1YWxFbmFibGVkKSksbj0oMCxTLkl1KSgiYW5zd2VyX2lzX2dlbmVyYXRlZF93aXRoX2FpX3NvdXJjZXMiLHtjb21wYW55X25hbWU6ZX0pLHI9KDAsUy5fdCkoKXx8dD9uOmAke259ICR7KDAsUy5JdSkoImFpX2Fuc3dlcnNfZW5nbGlzaF9vbmx5Iil9YDtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoWixudWxsLG8uY3JlYXRlRWxlbWVudCh2LnIsbnVsbCksIiAiLG8uY3JlYXRlRWxlbWVudChJLG51bGwsKDAsUy5JdSkoImFuc3dlciIpKSksby5jcmVhdGVFbGVtZW50KGYuUmwse3Rvb2x0aXA6by5jcmVhdGVFbGVtZW50KGYuclEse2V4cGxhbmF0aW9uOnJ9KX0sby5jcmVhdGVFbGVtZW50KHcse2NvbG9yOiJpbnB1dEdyZXkifSkpKX07dmFyIF89big3NzAxMSksTz1uKDk5NDIxKTtmdW5jdGlvbiBBKHt0aXRsZTplLHVybDp0fSl7cmV0dXJuIGUrdH1jb25zdCBCPSh7c291cmNlOmV9KT0+e2NvbnN0e3R5cGU6dCx0aXRsZTpuLHVybDpyLGlkOml9PWUsYT0oMCxQLlRMKSgpLHM9KDAsby51c2VDYWxsYmFjaykoKGU9Pntzd2l0Y2goZS5wcmV2ZW50RGVmYXVsdCgpLHQpe2Nhc2UiZXh0ZXJuYWwiOigwLE8uV00pKHIpO2JyZWFrO2Nhc2UiYXJ0aWNsZSI6YSgoMCxfLk1lKShpLHt9LCExLCEwKSl9fSksW3IsaSx0LGFdKSxsPSJleHRlcm5hbCI9PT10O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoTix7b25DbGljazpzfSxvLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsbiksby5jcmVhdGVFbGVtZW50KGsuWix7dHlwZTpsPyJFeHRlcm5hbExpbmsiOiJSaWdodENoZXZyb25TbWFsbCIsY29sb3I6ImxpbmtDb2xvciIsZmlsbFR5cGU6bD8iZmlsbCI6InN0cm9rZSJ9KSl9LFI9KHtzb3VyY2VzOmV9KT0+by5jcmVhdGVFbGVtZW50KE0sbnVsbCxvLmNyZWF0ZUVsZW1lbnQoeixudWxsLCgwLFMuSXUpKGUubGVuZ3RoPjE/InNvdXJjZXMiOiJzb3VyY2UiKSksZS5tYXAoKGU9Pm8uY3JlYXRlRWxlbWVudChCLHtrZXk6QShlKSxzb3VyY2U6ZX0pKSkpLHo9KDAseS5aUCkoImgzIix7dGFyZ2V0OiJlMTY0ajJuNTAifSkoImNvbG9yOiIsKDAseS5yUykoImZpbkFuc3dlckNhcmRUZXh0Q29sb3IiKSwiO2ZvbnQtd2VpZ2h0OjYwMDsiKSxOPSgwLHkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNjRqMm41MSJ9KSgiZGlzcGxheSBmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47dHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLWluLW91dDtjb2xvcjoiLCgwLHkuclMpKCJtNURhcmtHcmV5MiIpLCI7Y3Vyc29yOnBvaW50ZXI7Jjpob3Zlcntjb2xvcjoiLCgwLHkuclMpKCJsaW5rQ29sb3IiKSwiO30iKSxNPSgwLHkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNjRqMm41MiJ9KSgicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21hcmdpbi1sZWZ0Oi0xNnB4O21hcmdpbi1yaWdodDotMTZweDtwYWRkaW5nOjEycHggMTZweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLWJvdHRvbTotMTJweDtjb2xvcjoiLCgwLHkuclMpKCJpbnB1dEdyZXkiKSwiO2gze2ZvbnQtd2VpZ2h0OjU5MDt9Jjo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7cG9pbnRlci1ldmVudHM6bm9uZTtwYWRkaW5nLWJvdHRvbToxMnB4O30iKTt2YXIgRD1uKDUyOTQzKTtjb25zdCBMPSgwLHkuWlApKCJkaXYiLHt0YXJnZXQ6ImV3YmNuNzcwIn0pKEQuUy5jbGFzc05hbWUsIjpsYXN0LW9mLXR5cGU6OmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6M3B4O2hlaWdodDoxNnB4O21hcmdpbi1sZWZ0OjJweDtib3JkZXItcmFkaXVzOjZweDt2ZXJ0aWNhbC1hbGlnbjpib3R0b207YmFja2dyb3VuZDoiLCgwLHkuclMpKCJibGFjayIpLCI7fSIpO3ZhciBHPW4oNzMwNzEpLEY9bigxMTM1Myk7Y29uc3QgcT0oe3BhcnQ6ZX0pPT57Y29uc3QgdD0oMCxvLnVzZUNhbGxiYWNrKSgoKCk9PnsoMCxGLmJrKSgiY29udmVyc2F0aW9uX3BhcnRfc3RyZWFtaW5nX3RpbWVvdXQiKSwoMCxGLmNiKSgiY29udmVyc2F0aW9uUGFydFN0cmVhbWluZ1RpbWVvdXQiLHtjbGllbnRfYXNzaWduZWRfaWQ6ZS5jbGllbnRJZCx0b2tlbl9zZXF1ZW5jZV9pbmRleDplLnRva2VuU2VxdWVuY2VJbmRleH0pfSksW2UudG9rZW5TZXF1ZW5jZUluZGV4LGUuY2xpZW50SWRdKTtyZXR1cm4oMCxHLlopKHQsMWU0KSxvLmNyZWF0ZUVsZW1lbnQoTCxudWxsLG8uY3JlYXRlRWxlbWVudChhLlose2Jsb2NrczplLmJvZHksYXV0aG9yOmUuYXV0aG9yfSkpfTt2YXIgSD1uKDkwNzg0KTtmdW5jdGlvbiBXKCl7cmV0dXJuIFc9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxXLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jb25zdCBVPSh7cGFydDplLGlzTW9iaWxlOnQ9ITEsaXNCb3JkZXJsZXNzOm49ITEsaGFzQXZhdGFyOnIsc2hvd0lubGluZU1ldGFkYXRhOmksaXNMYXN0UGFydDpjLGZyYW1lV2luZG93OmQsb2Zmc2V0VG9wOnAsb25JbWFnZUNsaWNrOnV9KT0+e2NvbnN0e2F1dGhvcjp2LGJvZHk6eSxjcmVhdGVkQXQ6YixtZXNzYWdlVHlwZTpFLHNob3dDcmVhdGVkQXQ6ayxzb3VyY2VzOkMsdG9rZW5TZXF1ZW5jZUluZGV4Ond9PWUse2lzQWRtaW46Uyxpc1NlbGY6UH09dix7b25QYXJ0SGVpZ2h0Q2hhbmdlOlR9PSgwLG8udXNlQ29udGV4dCkoSC5aKSxaPSgwLG8udXNlUmVmKShudWxsKSxJPW51bGw9PXk/dm9pZCAwOnkuc29tZSgoZT0+Im1lc3NlbmdlckNhcmQiPT09ZS50eXBlKSksXz1udWxsPT15P3ZvaWQgMDp5LnNvbWUoKGU9PiJjcmVhdGVUaWNrZXRDYXJkIj09PWUudHlwZSkpLE89SXx8XyxBPWkmJiFPLEI9dm9pZCAwIT09dyx6PSgwLG8udXNlUmVmKShwKTt6LmN1cnJlbnQ9cCwoMCxvLnVzZUVmZmVjdCkoKCgpPT57Wi5jdXJyZW50JiZUKHouY3VycmVudCxaLmN1cnJlbnQuY2xpZW50SGVpZ2h0KX0pLFt3LFRdKTtjb25zdCBOPSgpPT57aWYoeSlyZXR1cm4gMT09PXkubGVuZ3RoJiYoMCxnLmVQKSh5WzBdKT9vLmNyZWF0ZUVsZW1lbnQocy5aLHt0ZXh0OigwLGguUnkpKHlbMF0pfSk6Qj9vLmNyZWF0ZUVsZW1lbnQocSx7a2V5OmUuY2xpZW50SWQscGFydDplfSk6Tz9vLmNyZWF0ZUVsZW1lbnQoQ29tbWVudEJvZHkse3BhcnQ6ZSxpc0xhc3RQYXJ0OmMsem9vbWFibGU6IXQsaXNCb3JkZXJsZXNzOm4saGFzQXZhdGFyOnIsc2hvd0lubGluZU1ldGFkYXRhOmksbWF4SW1hZ2VXaWR0aDoyMzIsb25JbWFnZUNsaWNrOnUsZnJhbWVXaW5kb3c6ZH0pOm8uY3JlYXRlRWxlbWVudChhLlose2tleTplLmNsaWVudElkLGF1dG9QbGF5OiExLGJsb2Nrczp5LGF1dGhvcjp2LHpvb21hYmxlOiF0LG1heEltYWdlV2lkdGg6MjMyLG9uSW1hZ2VDbGljazp1LGZyYW1lV2luZG93OmR9KX0sTT0oMCxnLlI1KSh5KSxEPS0xIT09WyJpbmxpbmVBbnN3ZXIiLCJyZWxldmFudEFydGljbGVzIiwiZmluQW5zd2VyIl0uaW5kZXhPZihFKSxMPXR8fCFrfHxEfHxJO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoZi5aUCx7Y29udGVudDpiJiYoMCxtLlhCKShiKSxlbmFibGVkOiFMfSwoKHQsaSk9Pm8uY3JlYXRlRWxlbWVudCh4LmgsVyh7fSxpLHtpc0FJQW5zd2VyOkQsY2xhc3NOYW1lOk0/ImludGVyY29tLWNvbW1lbnQtc2luZ2xlIjoiaW50ZXJjb20tY29tbWVudCIsaXNTaW5nbGVCbG9jazpNLGhhc0JvZHk6Tyxpc0FkbWluOlMsaXNVc2VyOlAsaXNGYWlsZWQ6ImZhaWxlZCI9PT1lLnNhdmVTdGF0ZSxpc0JvcmRlcmxlc3M6bixoYXNBdmF0YXI6cixyZWY6Wn0pLE4oKSxDJiYhQiYmby5jcmVhdGVFbGVtZW50KFIse3NvdXJjZXM6Q30pLCgoKT0+e2lmKCFrKXJldHVybiBudWxsO2NvbnN0IGU9KDAsZy5SNSkoeSksdD1PO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoeC5FLHtpc1NpbmdsZUJsb2NrOmUsaGFzQm9keTp0fSwoMCxtLlhCKShiKSl9KSgpLEE/by5jcmVhdGVFbGVtZW50KGwuWix7cGFydDplfSk6bnVsbCx0LEQmJiFCJiZvLmNyZWF0ZUVsZW1lbnQoaixudWxsKSkpKX07dmFyIFY9bigzMTM5NCksJD1uKDQyNDg3KSxLPW4oNzkxMyk7Y2xhc3MgQ29tbWVudENvbnRhaW5lciBleHRlbmRzIG8uQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMubm9kZVJlZj1udWxsfXJlbmRlckFkbWluQXZhdGFyKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChLLnQse2lzQm9yZGVybGVzczp0aGlzLnByb3BzLmlzQm9yZGVybGVzc30sby5jcmVhdGVFbGVtZW50KFYuWix7YXV0aG9yOnRoaXMucHJvcHMucGFydC5hdXRob3J9KSl9cmVuZGVyQ29tbWVudCgpe3ZhciBlO2NvbnN0e3BhcnQ6dCxoYXNBdmF0YXI6bixpc01vYmlsZTpyLGlzQm9yZGVybGVzczppLGZyYW1lV2luZG93OmEsc2hvd0lubGluZU1ldGFkYXRhOnMsb25JbWFnZUNsaWNrOmwsaXNMYXN0UGFydDpjfT10aGlzLnByb3BzO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoVSx7aXNMYXN0UGFydDpjLHBhcnQ6dCxpc01vYmlsZTpyLGlzQm9yZGVybGVzczppLGZyYW1lV2luZG93OmEsaGFzQXZhdGFyOm4sc2hvd0lubGluZU1ldGFkYXRhOnMsb25JbWFnZUNsaWNrOmwsb2Zmc2V0VG9wOm51bGw9PT0oZT10aGlzLm5vZGVSZWYpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm9mZnNldFRvcH0pfXJlbmRlcigpe2NvbnN0e2lzQm9yZGVybGVzczplLGhhc0F2YXRhcjp0LHBhcnQ6e2F1dGhvcjp7aXNBZG1pbjpuLGlzU2VsZjpyfSxib2R5Oml9fT10aGlzLnByb3BzLGE9KDAsZy5SNSkoaSk7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgkLkose2hhc0F2YXRhcjp0LGlzQm9yZGVybGVzczplLGlzU2luZ2xlQmxvY2s6YSxpc0FkbWluOm4saXNVc2VyOnIscmVmOmU9PnRoaXMubm9kZVJlZj1lfSx0aGlzLnByb3BzLmhhc0F2YXRhciYmdGhpcy5wcm9wcy5zaG93QXZhdGFyP3RoaXMucmVuZGVyQWRtaW5BdmF0YXIoKTpudWxsLHRoaXMucmVuZGVyQ29tbWVudCgpKX19Q29tbWVudENvbnRhaW5lci5kZWZhdWx0UHJvcHM9e3Nob3dBdmF0YXI6ITAsaGFzQXZhdGFyOiExLGlzQm9yZGVybGVzczohMSxpc01vYmlsZTohMX0sQ29tbWVudENvbnRhaW5lci5wcm9wVHlwZXM9e3BhcnQ6aSgpLm9iamVjdC5pc1JlcXVpcmVkLHNob3dBdmF0YXI6aSgpLmJvb2wsaGFzQXZhdGFyOmkoKS5ib29sLGlzQm9yZGVybGVzczppKCkuYm9vbCxpc01vYmlsZTppKCkuYm9vbCxmcmFtZVdpbmRvdzppKCkub2JqZWN0LHNob3dJbmxpbmVNZXRhZGF0YTppKCkuYm9vbCxvbkltYWdlQ2xpY2s6aSgpLmZ1bmMsaXNMYXN0UGFydDppKCkuYm9vbH19LDU2OTMzOihlLHQsbik9PntuLmQodCx7WjooKT0+Q29udmVyc2F0aW9uUGFydE1ldGFkYXRhfSk7dmFyIHI9big0NTY5NyksaT1uLm4ociksbz1uKDY3Mjk0KSxhPW4oNTI1MDApLHM9big2NzU5MiksbD1uKDM5MTIyKSxjPW4oNDEyNTQpLGQ9big0MzU0KTtjbGFzcyBDb252ZXJzYXRpb25QYXJ0TWV0YWRhdGEgZXh0ZW5kcyBvLkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe3RoaXMuaW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCgpPT57dGhpcy5mb3JjZVVwZGF0ZSgpfSksNmU0KX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCksdGhpcy5pbnRlcnZhbD1udWxsfWdldEF0dHJpYnV0aW9uKCl7Y29uc3R7Ym9keTplfT10aGlzLnByb3BzLnBhcnQ7aWYoIWV8fDA9PT1lLmxlbmd0aClyZXR1cm47Y29uc3R7YXR0cmlidXRpb246dH09ZVswXTtyZXR1cm4gdH1nZXRTYXZlU3RhdGUoKXtjb25zdHtzYXZlU3RhdGU6ZSxzZWVuU3RhdGU6dCxjcmVhdGVkQXQ6bixzaG93Q3JlYXRlZEF0OnIsYXV0aG9yOmksc2F2ZUZhaWx1cmVSZWFzb246b309dGhpcy5wcm9wcy5wYXJ0LGw9cj8oMCxhLlZPKShuKTpudWxsLHA9dGhpcy5zZWVuU3RhdGVUZXh0KHQpO3JldHVybiFpLmlzU2VsZiYmcj9gJHt0aGlzLmJvdFN0YXRlVGV4dChpKX0ke2x9LmA6InNhdmluZyI9PT1lPygwLHMuSXUpKCJtZXNzYWdlX3N0YXRlX3NlbmRpbmciKToiZmFpbGVkIj09PWU/ImZpbGVfc2l6ZSI9PT1vPygwLHMuSXUpKCJmaWxlX3Rvb19iaWciLHtsaW1pdDpgJHtjLm5SfWB9KTooMCxkLkNHKShvKT8oMCxzLkl1KSgiZmlsZV90eXBlX25vdF9hbGxvd2VkIik6KDAscy5JdSkoImZhaWxlZF90b19zZW5kIik6InNhdmVkIj09PWUmJmkuaXNTZWxmJiZsP2Ake2x9LiAke3B9YDp2b2lkIDB9c2VlblN0YXRlVGV4dChlKXtyZXR1cm4ibm90LXNlZW4teWV0Ij09PWU/KDAscy5JdSkoIm1lc3NhZ2VfdW5zZWVuIik6InNlZW4iPT09ZT8oMCxzLkl1KSgibWVzc2FnZV9zZWVuIik6IiJ9Ym90U3RhdGVUZXh0KGUpe3JldHVybiBlLmlzQm90P2AkeygwLHMuSXUpKCJib3QiKX0gwrcgYDoiIn1yZW5kZXJTYXZlU3RhdGUoKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGwuU04se2NsYXNzTmFtZToiaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtbWV0YWRhdGEtc2F2ZS1zdGF0ZSJ9LHRoaXMuZ2V0U2F2ZVN0YXRlKCkpfXJlbmRlckF0dHJpYnV0aW9uKCl7Y29uc3QgZT10aGlzLmdldEF0dHJpYnV0aW9uKCk7cmV0dXJuIGU/by5jcmVhdGVFbGVtZW50KGwueG4sbnVsbCwoMCxzLkl1KSgiZ2lmX2F0dHJpYnV0aW9uIix7cHJvdmlkZXJuYW1lOmV9KSk6bnVsbH1yZW5kZXIoKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KGwudkgse2NsYXNzTmFtZToiaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtbWV0YWRhdGEifSx0aGlzLnJlbmRlckF0dHJpYnV0aW9uKCksdGhpcy5yZW5kZXJTYXZlU3RhdGUoKSl9fUNvbnZlcnNhdGlvblBhcnRNZXRhZGF0YS5wcm9wVHlwZXM9e3BhcnQ6aSgpLnNoYXBlKHtib2R5OmkoKS5hcnJheU9mKGkoKS5zaGFwZSh7YXR0cmlidXRpb246aSgpLnN0cmluZ30pKSxzYXZlU3RhdGU6aSgpLm9uZU9mKFsiZmFpbGVkIiwic2F2aW5nIiwic2F2ZWQiXSksc2F2ZUZhaWx1cmVSZWFzb246aSgpLnN0cmluZyxzZWVuU3RhdGU6aSgpLm9uZU9mKFsibm90LXNlZW4teWV0Iiwic2VlbiJdKSxjcmVhdGVkQXQ6aSgpLmluc3RhbmNlT2YoRGF0ZSksc2hvd0NyZWF0ZWRBdDppKCkuYm9vbCxhdXRob3I6aSgpLnNoYXBlKHtpc1NlbGY6aSgpLmJvb2wuaXNSZXF1aXJlZH0pLmlzUmVxdWlyZWR9KS5pc1JlcXVpcmVkfX0sMTU2ODk6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5FcnJvckJvdW5kYXJ5fSk7dmFyIHI9big2NzI5NCksaT1uKDUwNzAwKSxvPW4oOTk0NDkpO2NvbnN0IGE9KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTE2Z2Ftb28wIn0pKCJmb250LXNpemU6MTNweDtjb2xvcjoiLCgwLGkuclMpKCJncmV5IiksIjtwYWRkaW5nOjAgMjBweDt0ZXh0LWFsaWduOiIsKDAsaS5OUSkoImFsaWduIiksIjsiKTtjbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgci5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17aGFzRXJyb3I6ITF9fWNvbXBvbmVudERpZENhdGNoKGUpe3RoaXMuc2V0U3RhdGUoe2hhc0Vycm9yOiEwfSksKDAsby5PNykoZSl9cmVuZGVyKCl7Y29uc3R7ZXJyb3JUZXh0OmUsYWxpZ246dCxjaGlsZHJlbjpuLHN0eWxlOml9PXRoaXMucHJvcHMse2hhc0Vycm9yOm99PXRoaXMuc3RhdGU7cmV0dXJuIG8/ci5jcmVhdGVFbGVtZW50KGEse2FsaWduOnQsc3R5bGU6aXx8e319LGUpOm59fX0sNzM2MTQ6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5wfSk7dmFyIHI9big2NzU5MiksaT1uKDY3Mjk0KSxvPW4oNTA3MDApO2NvbnN0IGE9KDAsby5aUCkoImRpdiIse3RhcmdldDoiZWJ2dHdjdTAifSkoe25hbWU6InRtbGFqciIsc3R5bGVzOiJoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZTVlNWU1OyJ9KSxzPSgwLG8uWlApKCJkaXYiLHt0YXJnZXQ6ImVidnR3Y3UxIn0pKCJoZWlnaHQ6OHB4O2JhY2tncm91bmQtY29sb3I6IiwoMCxvLnJTKSgicHJvZ3Jlc3NCYXJGaWxsZWQiKSwiOyIsKCh7cGVyY2VudGFnZTplfSk9PigwLG8uaXYpKCJ3aWR0aDoiLGUsIiU7dHJhbnNpdGlvbi1wcm9wZXJ0eTp3aWR0aDt0cmFuc2l0aW9uLWR1cmF0aW9uOjFzOyIpKSksbD0oe3BlcmNlbnRhZ2U6ZSxwcmVmaWxsRW1wdHlQZXJjZW50YWdlOnR9KT0+e2NvbnN0IG49dCYmMD09PWU/MjplO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoYSxudWxsLGkuY3JlYXRlRWxlbWVudChzLHtwZXJjZW50YWdlOm59KSkpfSxjPSgwLG8uWlApKCJkaXYiLHt0YXJnZXQ6ImV0Z2swOW4wIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2p1c3RpZnktY29udGVudDoiLCgoe2NvbmRlbnNlZDplfSk9PmU/ImZsZXgtc3RhcnQiOiJzcGFjZS1iZXR3ZWVuIiksIjtnYXA6IiwoKHtjb25kZW5zZWQ6ZX0pPT5lPyI0cHgiOiIiKSwiO21hcmdpbi1ib3R0b206OHB4O2NvbG9yOiM3MzczNzM7IiksZD0oMCxvLlpQKSgiZGl2Iix7dGFyZ2V0OiJldGdrMDluMSJ9KSh7bmFtZToiMWxkbDBxMCIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3B7Zm9udC1zaXplOjE0cHg7Y29sb3I6IzczNzM3MztsaW5lLWhlaWdodDoxNTAlO2ZvbnQtd2VpZ2h0OjQwMDt9In0pLHA9KHtjaGVja2xpc3RUYXNrczplLGNvbXBsZXRlZENoZWNrbGlzdFRhc2tzOnQsZXN0aW1hdGVkVGltZVJlbWFpbmluZzpuLGNvbmRlbnNlZDpvLHByZWZpbGxQcm9ncmVzc0lmRW1wdHk6YX0pPT57Y29uc3Qgcz10L2UqMTAwO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXRlc3RpZCI6ImNoZWNrbGlzdC1wcm9ncmVzcy1kZXRhaWxzIn0saS5jcmVhdGVFbGVtZW50KGMse2NvbmRlbnNlZDpvfSxpLmNyZWF0ZUVsZW1lbnQoZCx7ImRhdGEtdGVzdGlkIjoiY2hlY2tsaXN0LXJlbWFpbmluZy10YXNrcyJ9LGkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCwoKGUsdCk9PjA9PT1lPzE9PT10PygwLHIuSXUpKCJjaGVja2xpc3RfbnVtYmVyX29mX3N0ZXBzX3Npbmd1bGFyIik6KDAsci5JdSkoImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfcGx1cmFsIix7bnVtYmVyX29mX3N0ZXBzOnQudG9TdHJpbmcoKX0pOjE9PT10PygwLHIuSXUpKCJjaGVja2xpc3RfbnVtYmVyX29mX3N0ZXBzX3Byb2dyZXNzX3Npbmd1bGFyIix7dG90YWxfc3RlcHM6dC50b1N0cmluZygpfSk6KDAsci5JdSkoImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfcHJvZ3Jlc3NfcGx1cmFsIix7c3RlcHNfY29tcGxldGVkOmUudG9TdHJpbmcoKSx0b3RhbF9zdGVwczp0LnRvU3RyaW5nKCl9KSkodCxlKSkpLG8mJmkuY3JlYXRlRWxlbWVudChkLG51bGwsaS5jcmVhdGVFbGVtZW50KCJwIixudWxsLCLigKIiKSksaS5jcmVhdGVFbGVtZW50KGQseyJkYXRhLXRlc3RpZCI6ImNoZWNrbGlzdC1yZW1haW5pbmctdGltZSJ9LGkuY3JlYXRlRWxlbWVudCgicCIsbnVsbCx0PGU/KChlLHQpPT57Y29uc3Qgbj1lLzYwO3JldHVybiB0PjA/MT09PW4/KDAsci5JdSkoImNoZWNrbGlzdF9pbl9wcm9ncmVzc190aW1lX3JlbWFpbmluZ19zaW5ndWxhciIpOigwLHIuSXUpKCJjaGVja2xpc3RfaW5fcHJvZ3Jlc3NfdGltZV9yZW1haW5pbmdfcGx1cmFsIix7bWludXRlczpuLnRvU3RyaW5nKCl9KToxPT09bj8oMCxyLkl1KSgiY2hlY2tsaXN0X25vdF9zdGFydGVkX3RpbWVfcmVtYWluaW5nX3Npbmd1bGFyIik6KDAsci5JdSkoImNoZWNrbGlzdF9ub3Rfc3RhcnRlZF90aW1lX3JlbWFpbmluZ19wbHVyYWwiLHttaW51dGVzOm4udG9TdHJpbmcoKX0pfSkobix0KTooMCxyLkl1KSgiY2hlY2tsaXN0X2NvbXBsZXRlZCIpKSkpLGkuY3JlYXRlRWxlbWVudChsLHtwZXJjZW50YWdlOnMscHJlZmlsbEVtcHR5UGVyY2VudGFnZTphfSkpfX0sMzUzNjk6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5Qb3N0fSk7dmFyIHI9big2NzI5NCksaT1uKDY4MjgzKSxvPW4oMTM5NDEpLGE9big2MDE4MSkscz1uKDYzNTM4KSxsPW4oNjQ4OCksYz1uKDY3NTkyKSxkPW4oMjgxMTgpLHA9bigxMTM1MyksdT1uKDQzNzQ1KSxtPW4oMTAzOTMpLGg9big0ODcyMSksZz1uKDM3ODEwKTtmdW5jdGlvbiBmKCl7cmV0dXJuIGY9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jbGFzcyBQb3N0IGV4dGVuZHMgci5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17aXNTY3JvbGxlZDohMX0sdGhpcy5oYW5kbGVTY3JvbGw9ZT0+e3RoaXMuc2V0U3RhdGUoe2lzU2Nyb2xsZWQ6ZS50YXJnZXQuc2Nyb2xsVG9wPjB9KSwoMCxnLmFiKShlKX0sdGhpcy5hZGRDbGlja2VkQ29tcG9zZXJNZXRyaWM9KCk9Pntjb25zdHttZXNzYWdlOntpZDplfSxjb252ZXJzYXRpb25JZDp0fT10aGlzLnByb3BzOygwLHAuV00pKCJjbGlja2VkIiwiY29tcG9zZXIiLCJpbl9hcHAiLCJmcm9tX2Z1bGwiLHttZXNzYWdlX3R5cGU6InBvc3QiLG1lc3NhZ2VfaWQ6ZSxjb252ZXJzYXRpb25faWQ6dH0pfSx0aGlzLmhhbmRsZUNvbXBvc2VyQ2xpY2s9ZT0+KCk9Pnt0aGlzLmFkZENsaWNrZWRDb21wb3Nlck1ldHJpYygpLHRoaXMucHJvcHMub25Db21wb3NlckNsaWNrKCksZSh2b2lkIDAse3Nob3VsZFJldHVybkZvY3VzOiExfSksdGhpcy5jb250ZXh0JiZ0aGlzLmNvbnRleHQuZm9jdXNDb21wb3NlciYmc2V0VGltZW91dCgoKCk9PnRoaXMuY29udGV4dC5mb2N1c0NvbXBvc2VyKCkpLGkuQyl9fXJlbmRlckZvb3RlcihlKXtjb25zdHtjb21wb3NlclZpc2libGU6dCxzaG93UmVwbHlUb0J1dHRvbjpuLGlzVXBmcm9udEVtYWlsQ29tcG9zZXJTaG93aW5nOml9PXRoaXMucHJvcHM7cmV0dXJuIHQ/bnx8aT9yLmNyZWF0ZUVsZW1lbnQoZC5aLHtvbkNsaWNrOnRoaXMuaGFuZGxlQ29tcG9zZXJDbGljayhlKX0pOnIuY3JlYXRlRWxlbWVudChtLlJuLHtjbGFzc05hbWU6ImludGVyY29tLXBvc3QtY29tcG9zZXIiLG9uQ2xpY2s6dGhpcy5oYW5kbGVDb21wb3NlckNsaWNrKGUpLCJhcmlhLWxhYmVsIjooMCxjLkl1KSgib3Blbl9jb252ZXJzYXRpb25fYW5kX3JlcGx5Iil9LHIuY3JlYXRlRWxlbWVudChoLkxOLG51bGwsKDAsYy5JdSkoInJlcGx5X3RvX2NvbnZlcnNhdGlvbiIpKSk6bnVsbH1yZW5kZXJSZWFjdGlvblBpY2tlcigpe2NvbnN0e3JlYWN0aW9uc1JlcGx5OmUsb25SZWFjdGlvblNlbGVjdDp0fT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobC5aLGYoe30sZSx7b25SZWFjdGlvblNlbGVjdDp0fSkpfXJlbmRlcigpe2NvbnN0e2lzU2Nyb2xsZWQ6ZX09dGhpcy5zdGF0ZSx7YXBwTmFtZTp0LG1lc3NhZ2U6bixyZWFjdGlvbnNSZXBseTpsLG9uQ2xvc2U6ZCxmcmFtZVdpbmRvdzpwLHJldHVybkZvY3VzOnUsc2hvd1JlcGx5VG9CdXR0b246aCxpc1VwZnJvbnRFbWFpbENvbXBvc2VyU2hvd2luZzpnfT10aGlzLnByb3BzLHthdXRob3I6ZixsYXN0QWN0aXZlQXQ6eCxib2R5OnZ9PW47cmV0dXJuIHIuY3JlYXRlRWxlbWVudChpLlose2Nsb3NlQ2FsbGJhY2s6ZCxzaG93Q2xvc2VPdmVybGF5OiExLGZyYW1lV2luZG93OnAscmV0dXJuRm9jdXM6dX0sKCh7b25DbG9zZTpufSk9PnIuY3JlYXRlRWxlbWVudChtLmR2LHtpc1Njcm9sbGVkOmV9LHIuY3JlYXRlRWxlbWVudChtLm9tLHtjbGFzc05hbWU6ImludGVyY29tLXBvc3QifSxyLmNyZWF0ZUVsZW1lbnQoYS5aLHthcHBOYW1lOnQsaXNSZXBseVN0eWxlOiExLGF1dGhvcjpmLGxhc3RBY3RpdmVBdDp4fSxyLmNyZWF0ZUVsZW1lbnQobS5kZSx7Y2xhc3NOYW1lOiJpbnRlcmNvbS1wb3N0LWNsb3NlIixvbkNsaWNrOm4sImFyaWEtbGFiZWwiOigwLGMuSXUpKCJjbG9zZSIpfSksci5jcmVhdGVFbGVtZW50KG8uWix7aXNJbnNpZGVNb2RhbDohMCxvblNjcm9sbDp0aGlzLmhhbmRsZVNjcm9sbH0sci5jcmVhdGVFbGVtZW50KHMuWix7YmxvY2tzOnYsZnJhbWVXaW5kb3c6cH0pKSxyLmNyZWF0ZUVsZW1lbnQobS56WCx7aXNDZW50ZXJlZDpofHxnfSxsP3RoaXMucmVuZGVyUmVhY3Rpb25QaWNrZXIoKTp0aGlzLnJlbmRlckZvb3RlcihuKSkpKSkpKX19UG9zdC5jb250ZXh0VHlwZT11Llp9LDY0ODg6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5SZWFjdGlvblBpY2tlcn0pO3ZhciByPW4oNjcyOTQpLGk9big5NzUxNyksbz1uKDU0ODExKTtjbGFzcyBSZWFjdGlvblBpY2tlciBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuY29tcG9zZXI9dm9pZCAwfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2UoKX1oYW5kbGVIZWlnaHRDaGFuZ2UoKXtjb25zdHtvbkhlaWdodENoYW5nZTplfT10aGlzLnByb3BzO2UmJnRoaXMuY29tcG9zZXImJmUodGhpcy5jb21wb3Nlci5jbGllbnRIZWlnaHQpfXJlbmRlcigpe2NvbnN0e3JlYWN0aW9uU2V0OmUsb25SZWFjdGlvblNlbGVjdDp0LHJlYWN0aW9uSW5kZXg6bixwcm9tcHQ6YX09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KG8uXyx7cmVmOmU9PnRoaXMuY29tcG9zZXI9ZSxyb2xlOiJncm91cCIsImFyaWEtbGFiZWxsZWRieSI6YT8icmVhY3Rpb24tcHJvbXB0IjpudWxsLGhhc1Byb21wdDohIWF9LGE/ci5jcmVhdGVFbGVtZW50KG8uayx7aWQ6InJlYWN0aW9uLXByb21wdCJ9LGEpOm51bGwsZS5tYXAoKChlLG8pPT5yLmNyZWF0ZUVsZW1lbnQoaS5aLHtrZXk6byxvblJlYWN0aW9uU2VsZWN0OnQscmVhY3Rpb246ZSxoYXNTZWxlY3RlZFJlYWN0aW9uOm51bGwhPW4saXNTZWxlY3RlZDpuPT09ZS5pbmRleH0pKSkpfX1SZWFjdGlvblBpY2tlci5kZWZhdWx0UHJvcHM9e3JlYWN0aW9uSW5kZXg6bnVsbH19LDk3NTE3OihlLHQsbik9PntuLmQodCx7WjooKT0+UmVhY3Rpb259KTt2YXIgcj1uKDY3Mjk0KSxpPW4oMTQ4NzcpLG89bigyOTM4MCksYT1uKDMyMzU4KTtjbGFzcyBSZWFjdGlvbiBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuaGFuZGxlQ2xpY2s9KCk9Pntjb25zdHtvblJlYWN0aW9uU2VsZWN0OmUscmVhY3Rpb246dH09dGhpcy5wcm9wcztlKHQuaW5kZXgpfX1yZW5kZXIoKXtjb25zdHtyZWFjdGlvbjplLGhhc1NlbGVjdGVkUmVhY3Rpb246dCxpc1NlbGVjdGVkOm59PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChhLnQse29uQ2xpY2s6dGhpcy5oYW5kbGVDbGljaywiYXJpYS1sYWJlbCI6YCR7KDAsby5rbCkoZS5lbW9qaSl9IHJlYWN0aW9uYCwiYXJpYS1wcmVzc2VkIjpuLGhhc1NlbGVjdGVkUmVhY3Rpb246dCxpc1NlbGVjdGVkOm59LHIuY3JlYXRlRWxlbWVudChpLloseyJhcmlhLWhpZGRlbiI6InRydWUiLGVtb2ppSW1hZ2VTaXplOjMyLHRleHQ6ZS5lbW9qaX0pKX19fSwyODExODooZSx0LG4pPT57bi5kKHQse1o6KCk9PlJlcGx5VG9CdXR0b259KTt2YXIgcj1uKDY3Mjk0KSxpPW4oNjc1OTIpLG89big1MDcwMCksYT1uKDMzNTY3KTtjb25zdCBzPSgwLG8uWlApKGEuWix7dGFyZ2V0OiJlM3M1ZWN6MCJ9KSh7bmFtZToiMXcxOWx2OCIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4O3JpZ2h0OjhweDsifSk7dmFyIGw9e25hbWU6IjFtYmlkbnkiLHN0eWxlczoibWFyZ2luOjhweCAwcHggMHB4IDQycHg7d2lkdGg6ODElOyJ9O2NvbnN0IGM9KDAsby5aUCkoImJ1dHRvbiIse3RhcmdldDoiZTNzNWVjejEifSkoInN2Z3twYXRoe2ZpbGw6IiwoMCxvLnJTKSgiYnV0dG9uQmFja2dyb3VuZENvbG9yIiksIjt9fXBhZGRpbmc6MTBweDtib3JkZXI6MXB4IHNvbGlkICIsKDAsby5yUykoImJ1dHRvbkJhY2tncm91bmRDb2xvciIpLCI7Ym9yZGVyLXJhZGl1czo0MHB4O21hcmdpbjowIDIwcHggMjBweCAyMHB4O3dpZHRoOjI0MHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjoiLCgwLG8uclMpKCJidXR0b25CYWNrZ3JvdW5kQ29sb3IiKSwiO2JhY2tncm91bmQtY29sb3I6IiwoMCxvLnJTKSgiYnV0dG9uVGV4dENvbG9yIiksIjsiLCgoe2lzQm9yZGVybGVzczplfSk9PmUmJmwpKTtjbGFzcyBSZXBseVRvQnV0dG9uIGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMucmVmPXZvaWQgMCx0aGlzLnNldFJlcGx5VG9CdXR0b25SZWY9ZT0+e3RoaXMucmVmPWV9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7b25TaG93OmV9PXRoaXMucHJvcHM7aWYoIXRoaXMucmVmfHwhZSlyZXR1cm47ZSh0aGlzLnJlZi5jbGllbnRIZWlnaHQrMTApfXJlbmRlcigpe2NvbnN0e29uQ2xpY2s6ZSxpc0JvcmRlcmxlc3M6dH09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KGMse3JlZjp0aGlzLnNldFJlcGx5VG9CdXR0b25SZWYsb25DbGljazplLGlzQm9yZGVybGVzczp0fSxyLmNyZWF0ZUVsZW1lbnQocyxudWxsKSwoMCxpLkl1KSgicmVwbHlfdG9fY29udmVyc2F0aW9uIikucmVwbGFjZSgi4oCmIiwiIikpfX19LDEzOTQxOihlLHQsbik9PntuLmQodCx7WjooKT0+U2Nyb2xsYWJsZX0pO3ZhciByPW4oNjcyOTQpLGk9big5Njg4KSxvPW4oNTAwNTQpLGE9big3OTM1KSxzPW4oOTAyMSk7Y2xhc3MgU2Nyb2xsYWJsZSBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e3Njcm9sbGFibGU6ITEsc2Nyb2xsZWQ6ITF9LHRoaXMuc2Nyb2xsYWJsZT12b2lkIDAsdGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2U9KCk9Pnt0aGlzLnNldFN0YXRlKHtzY3JvbGxhYmxlOnRoaXMuaXNTY3JvbGxhYmxlKCl9KSx0aGlzLnByb3BzLm9uU2Nyb2xsYWJsZSYmdGhpcy5zY3JvbGxhYmxlJiZ0aGlzLnByb3BzLm9uU2Nyb2xsYWJsZSh0aGlzLnNjcm9sbGFibGUsdGhpcy5zdGF0ZS5zY3JvbGxhYmxlKX0sdGhpcy5oYW5kbGVTY3JvbGw9KDAsby4kKSgoZT0+e2NvbnN0e3Njcm9sbFRvcDp0fT1lLnRhcmdldDt0aGlzLnNldFN0YXRlKHtzY3JvbGxlZDp0PjB9KTtjb25zdHtvblNjcm9sbDpufT10aGlzLnByb3BzO24mJm4oZSl9KSwxNyl9Y29tcG9uZW50RGlkVXBkYXRlKGUpe2UuZGVmYXVsdFNjcm9sbFBvc2l0aW9uIT09dGhpcy5wcm9wcy5kZWZhdWx0U2Nyb2xsUG9zaXRpb24mJnRoaXMucHJvcHMuZGVmYXVsdFNjcm9sbFBvc2l0aW9uJiZ0aGlzLnNjcm9sbGFibGUmJih0aGlzLnNjcm9sbGFibGUuc2Nyb2xsVG9wPXRoaXMucHJvcHMuZGVmYXVsdFNjcm9sbFBvc2l0aW9uKSx0aGlzLmhhbmRsZVNjcm9sbGFibGUoKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMuaGFuZGxlU2Nyb2xsYWJsZSgpLHRoaXMucHJvcHMuZGVmYXVsdFNjcm9sbFBvc2l0aW9uJiZ0aGlzLnNjcm9sbGFibGUmJih0aGlzLnNjcm9sbGFibGUuc2Nyb2xsVG9wPXRoaXMucHJvcHMuZGVmYXVsdFNjcm9sbFBvc2l0aW9uKX1oYW5kbGVTY3JvbGxhYmxlKCl7Y29uc3R7b25TY3JvbGxhYmxlOmV9PXRoaXMucHJvcHM7IXRoaXMuc3RhdGUuc2Nyb2xsYWJsZSYmdGhpcy5pc1Njcm9sbGFibGUoKSYmKHRoaXMuc2V0U3RhdGUoe3Njcm9sbGFibGU6ITB9KSx0aGlzLnNjcm9sbGFibGUmJmUmJmUodGhpcy5zY3JvbGxhYmxlLHRoaXMuc3RhdGUuc2Nyb2xsYWJsZSkpfWlzU2Nyb2xsYWJsZSgpe3JldHVybiEhdGhpcy5zY3JvbGxhYmxlJiZ0aGlzLnNjcm9sbGFibGUuc2Nyb2xsSGVpZ2h0PnRoaXMuc2Nyb2xsYWJsZS5jbGllbnRIZWlnaHR9cmVuZGVyKCl7Y29uc3R7ZHluYW1pY0NoaWxkcmVuSGVpZ2h0OmV9PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChhLlp5LHtjbGFzc05hbWU6ImludGVyY29tLXNjcm9sbGFibGUiLGlzSW5zaWRlTW9kYWw6dGhpcy5wcm9wcy5pc0luc2lkZU1vZGFsLGZsZXg6dGhpcy5wcm9wcy5mbGV4LG9uU2Nyb2xsOnRoaXMuaGFuZGxlU2Nyb2xsLG9uV2hlZWw6aS5SMix0YWJJbmRleDp0aGlzLnN0YXRlLnNjcm9sbGFibGU/IjAiOiItMSIscmVmOmU9PnRoaXMuc2Nyb2xsYWJsZT1lfSxlP3IuY3JlYXRlRWxlbWVudChzLlose29uSGVpZ2h0Q2hhbmdlOnRoaXMuaGFuZGxlSGVpZ2h0Q2hhbmdlfSxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHRoaXMucHJvcHMuY2hpbGRyZW4pKTp0aGlzLnByb3BzLmNoaWxkcmVuKX19fSw4Njc5NjooZSx0LG4pPT57bi5kKHQse1o6KCk9PlN0aWNrZXJ9KTt2YXIgcj1uKDY3Mjk0KSxpPW4oNDM3MjYpLG89bi5uKGkpLGE9bigyOTM4MCkscz1uKDUwNzAwKSxsPW4oNjM5MTYpO2NvbnN0IGM9OTYsZD0zOCxwPTQ1LHU9KDAscy5aUCkoImRpdiIse3RhcmdldDoiZWU2bTVoMDAifSkoImZvbnQtc2l6ZToiLGMsInB4O2xpbmUtaGVpZ2h0OiIsYywicHg7bWFyZ2luLXRvcDoiLDEyLCJweDsiLGwuUW8uY2xhc3NOYW1lLCJ7Zm9udC1zaXplOiIsZCwicHg7bGluZS1oZWlnaHQ6IixkLCJweDttYXJnaW4tdG9wOiIsNC43NSwicHg7bWFyZ2luLWJvdHRvbToiLDQuNzUsInB4O30iLGwuemYuY2xhc3NOYW1lLCJ7Zm9udC1zaXplOiIscCwicHg7bGluZS1oZWlnaHQ6IixwLCJweDttYXJnaW4tdG9wOiIsNS42MjUsInB4O21hcmdpbi1ib3R0b206Iiw1LjYyNSwicHg7fSIpLG09KDAscy5aUCkoImltZyIse3RhcmdldDoiZWU2bTVoMDEifSkoIndpZHRoOiIsYywicHg7aGVpZ2h0OiIsYywicHg7bWluLXdpZHRoOiIsYywicHg7bWluLWhlaWdodDoiLGMsInB4OyIsbC5Rby5jbGFzc05hbWUsInt3aWR0aDoiLGQsInB4O2hlaWdodDoiLGQsInB4O21pbi13aWR0aDoiLGQsInB4O21pbi1oZWlnaHQ6IixkLCJweDt9IixsLnpmLmNsYXNzTmFtZSwie3dpZHRoOiIscCwicHg7aGVpZ2h0OiIscCwicHg7bWluLXdpZHRoOiIscCwicHg7bWluLWhlaWdodDoiLHAsInB4O30iKTt2YXIgaD1uKDU3NDE1KSxnPW4ubihoKTtjbGFzcyBTdGlja2VyIGV4dGVuZHMgci5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7dGV4dDplfT10aGlzLnByb3BzLHQ9KDAsYS5CeSkobygpKGUpLnJlcGxhY2UoIiZuYnNwOyIsIiIpLnRyaW0oKSk7cmV0dXJuIHRoaXMudXNlTmF0aXZlRW1vamkoKT90aGlzLnJlbmRlck5hdGl2ZSh0KTp0aGlzLnJlbmRlckltYWdlKHQpfXJlbmRlck5hdGl2ZShlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHUse3JvbGU6ImltZyIsImFyaWEtbGFiZWwiOigwLGEua2wpKHRoaXMucHJvcHMudGV4dCl8fGV9LGUpfXJlbmRlckltYWdlKGUpe2NvbnN0IHQ9ZygpLnR3ZW1vamlTVkdVcmkoZSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChtLHtzcmM6dCxhbHQ6ZSwiYXJpYS1sYWJlbCI6KDAsYS5rbCkodGhpcy5wcm9wcy50ZXh0KX0pfXVzZU5hdGl2ZUVtb2ppKCl7Y29uc3R7ZW1vamk6ZX09dGhpcy5wcm9wcztyZXR1cm4ibmF0aXZlIj09PWV8fCJpbWFnZSIhPT1lJiYoImF1dG8iPT09ZT8oMCxhLk1vKSgpOnZvaWQgMCl9fVN0aWNrZXIuZGVmYXVsdFByb3BzPXtlbW9qaToiYXV0byJ9fSw2NTUzNjooZSx0LG4pPT57bi5kKHQse1o6KCk9PlRlYW1BdmF0YXJ9KTt2YXIgcj1uKDY3Mjk0KSxpPW4oNTA3MDApLG89bigxNDg3NyksYT0obig0MjQxMSkse25hbWU6Imo0Z2xvbiIsc3R5bGVzOiJwYWRkaW5nOjE2cHggMjRweDttYXJnaW46MCAtMjRweDsifSk7KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGYwIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDpub3dyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjI0cHg7b3V0bGluZS1vZmZzZXQ6LTVweDsiLCgoe2lzVW5yZWFkOmUsdGhlbWU6dH0pPT5lJiYoMCxpLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLHQuaXNQcmltYXJ5Q29sb3JMaWdodD90LnVucmVhZEJhY2tncm91bmRMaWdodDp0LnVucmVhZEJhY2tncm91bmQsIjsiKSksIiAmLCp7Y3Vyc29yOnBvaW50ZXI7fSY6aG92ZXJ7YmFja2dyb3VuZDoiLCgwLGkuclMpKCJiYWNrZ3JvdW5kSG92ZXIiKSwiO30mOmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgIiwoMCxpLnJTKSgiZGl2aWRlckJvcmRlciIpLCI7IiwoKHtpc1VucmVhZDplLHRoZW1lOnR9KT0+ZSYmKDAsaS5pdikoImJvcmRlci10b3A6MXB4IHNvbGlkICIsdC53aGl0ZSwiOyIpKSwifSY6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym9yZGVyLXRvcDoycHggc29saWQgdHJhbnNwYXJlbnQ7fSY6Zmlyc3Qtb2YtdHlwZXsmOmFmdGVye2JvcmRlci10b3A6bm9uZTt9fSY6bGFzdC1jaGlsZHsmOmFmdGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICIsKDAsaS5yUykoImRpdmlkZXJCb3JkZXIiKSwiOyIsKCh7aXNVbnJlYWQ6ZSx0aGVtZTp0fSk9PmUmJigwLGkuaXYpKCJib3JkZXItYm90dG9tOjFweCBzb2xpZCAiLHQud2hpdGUsIjsiKSksIn19IiwoKHtpc0NvbXBhY3Q6ZX0pPT5lJiZhKSk7dmFyIHM9e25hbWU6IjFkaGk4ZDAiLHN0eWxlczoibGVmdDoxNXB4OyJ9O2NvbnN0IGw9KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGYxIn0pKCJmbGV4OjAgMCBhdXRvOyIsKCh7aXNDb21wYWN0OmV9KT0+ZSYmcykpO3ZhciBjPXtuYW1lOiJneDBsaG0iLHN0eWxlczoibWFyZ2luLWJvdHRvbTowOyJ9OygwLGkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZHJpNDBmMiJ9KSgibWFyZ2luLWJvdHRvbTo0cHg7IiwoKHtpc0NvbXBhY3Q6ZX0pPT5lJiZjKSk7dmFyIGQ9e25hbWU6IjM1ZXpnMyIsc3R5bGVzOiJmb250LXdlaWdodDo2MDA7In07KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGYzIn0pKCJmb250LXNpemU6MTRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7IiwoKHt0aGVtZTplfSk9PigwLGkuaXYpKCJjb2xvcjoiLGUuc3ViaGVhZGVyVGV4dCwiOyIpKSwiICIsKCh7aXNVbnJlYWQ6ZX0pPT5lJiZkKSksKDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGY0In0pKHtuYW1lOiIybGV1eXkiLHN0eWxlczoiZmxleDoxO3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6OHB4O21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjsifSksKDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGY1In0pKCJ0cmFuc2Zvcm06cm90YXRlKCIsaS5yUy5pc1J0bExvY2FsZT8iMCI6IjE4MGRlZyIsIik7JiBzdmcgPiBnID4gZ3tmaWxsOiIsKDAsaS5yUykoImxpbmtDb2xvciIpLCI7fSIpLCgwLGkuWlApKCJzcGFuIix7dGFyZ2V0OiJlMWRyaTQwZjYifSkoe25hbWU6IjE1cm83NzYiLHN0eWxlczoibWFyZ2luLXJpZ2h0OjRweDsifSk7dmFyIHA9e25hbWU6IjM1ZXpnMyIsc3R5bGVzOiJmb250LXdlaWdodDo2MDA7In07KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGY3In0pKCJjb2xvcjpyZ2JhKDU4LDYwLDc2LDEpO2ZvbnQtc2l6ZToxNHB4O2Rpc3BsYXk6ZmxleDsiLCgoe2lzVW5yZWFkOmV9KT0+ZSYmcCksIiBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrO30iKSwoMCxpLlpQKSgic3BhbiIse3RhcmdldDoiZTFkcmk0MGY4In0pKCJmbGV4OjAgMCBhdXRvO2NvbG9yOiIsKDAsaS5yUykoIm01RGFya0dyZXkyIiksIjt3aGl0ZS1zcGFjZTpwcmU7Iik7dmFyIHU9e25hbWU6IjFtc2poMXgiLHN0eWxlczoiZm9udC1zdHlsZTppdGFsaWM7In07KDAsaS5yUykoIm01RGFya0dyZXkyIiksKDAsaS5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxZHJpNDBmMTAifSkoInBvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6IiwoMCxpLnJTKSgidW5yZWFkRG90IiksIjt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtjb250ZW50OicnO2xlZnQ6OXB4O3RvcDpjYWxjKDUwJSAtIDNweCk7Iik7dmFyIG09e25hbWU6Imd4MGxobSIsc3R5bGVzOiJtYXJnaW4tYm90dG9tOjA7In07KDAsaS5aUCkoImRpdiIse3RhcmdldDoiZTFkcmk0MGYxMSJ9KSgiYWxpZ24taXRlbXM6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDoxOHB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiIsKCh7dGhlbWU6ZX0pPT5lLmdyZXkpLCI7bWFyZ2luLWJvdHRvbTo0cHg7c3Zne21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbToycHg7cGF0aHsiLCgoe3RoZW1lOmV9KT0+YFxuICAgICAgICBmaWxsOiAke2UuZ3JleX1cbiAgICAgIGApLCJ9fSIsKCh7aXNDb21wYWN0OmV9KT0+ZSYmbSkpLCgwLGkuWlApKCJzcGFuIix7dGFyZ2V0OiJlMWRyaTQwZjEzIn0pKHtuYW1lOiI3MHF2ajkiLHN0eWxlczoiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjsifSksKDAsaS5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxZHJpNDBmMTQifSkoe25hbWU6IjF1YXlzYzciLHN0eWxlczoibWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyJ9KSwoMCxpLlpQKSgic3BhbiIse3RhcmdldDoiZTFkcmk0MGYxNSJ9KSh7bmFtZToiN2FwbjJjIixzdHlsZXM6InBhZGRpbmctcmlnaHQ6NHB4OyJ9KTtjb25zdCBoPXtuYW1lOiIxaGowMjRjIixzdHlsZXM6InRvcDo5cHg7bGVmdDotMnB4O3otaW5kZXg6MTsifSxnPXtuYW1lOiJ5ZDRqcnoiLHN0eWxlczoidG9wOjlweDtyaWdodDotMnB4O3otaW5kZXg6MjsifSxmPXtuYW1lOiI3MWd5aGUiLHN0eWxlczoidG9wOi0xcHg7bGVmdDo2cHg7ei1pbmRleDoyOyJ9LHg9e25hbWU6Imc3YTgyMCIsc3R5bGVzOiJ0b3A6MTVweDtyaWdodDoxNHB4O3otaW5kZXg6MzsifSx2PXtuYW1lOiI0ZG96YzEiLHN0eWxlczoidG9wOjE1cHg7bGVmdDoxNHB4O3otaW5kZXg6MTsifSx5PSgwLGkuaXYpKCJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2xpbmUtaGVpZ2h0OjM1cHg7IixsLmNsYXNzTmFtZSwiICZ7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDozNnB4O30iKSxiPXtuYW1lOiJjN2JoNTMiLHN0eWxlczoid2lkdGg6MjBweDtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4OyJ9LEU9KHt0aGVtZTplLGluZGV4OnQsbnVtT2ZBdmF0YXJzOm59KT0+KDAsaS5pdikoImJvcmRlci1yYWRpdXM6NTAlO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlcjoycHggc29saWQgIixlLndoaXRlLCI7YmFja2dyb3VuZC1jb2xvcjoiLGUuYXZhdGFyQmFja2dyb3VuZENvbG9yLCI7Y29sb3I6d2hpdGU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE2cHg7IiwxPT09bj95OmIsIiAiLCgoZSx0KT0+e3N3aXRjaCh0KXtjYXNlIDI6c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gaDtjYXNlIDE6cmV0dXJuIGc7ZGVmYXVsdDpyZXR1cm4iIn1jYXNlIDM6c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gZjtjYXNlIDE6cmV0dXJuIHg7Y2FzZSAyOnJldHVybiB2O2RlZmF1bHQ6cmV0dXJuIiJ9ZGVmYXVsdDpyZXR1cm4iIn19KSh0LG4pKSxrPSgwLGkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZGt2MTVwMCJ9KShFKSxDPSgwLGkuWlApKCJpbWciLHt0YXJnZXQ6ImUxZGt2MTVwMSJ9KShFKSx3PSgwLGkuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZGt2MTVwMiJ9KSh7bmFtZToiMTJzY2ExOSIsc3R5bGVzOiJ3aWR0aDozNXB4O2hlaWdodDozNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7In0pO2NsYXNzIFRlYW1BdmF0YXIgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5yZW5kZXJJbml0aWFsPShlLHQsbik9Pntjb25zdHtmaXJzdE5hbWU6aX09ZSxvPWkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChrLHtrZXk6dCxpbmRleDp0LG51bU9mQXZhdGFyczpufSxvKX0sdGhpcy5yZW5kZXJJbWFnZT0oZSx0LG4pPT57Y29uc3R7Zmlyc3ROYW1lOmksYXZhdGFyOntzcXVhcmUxMjg6b319PWUsYT1gJHtpfHwiYWRtaW4ifSBhdmF0YXJgO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQyx7a2V5OnQsc3JjOm8sYWx0OmEsaW5kZXg6dCxudW1PZkF2YXRhcnM6bn0pfSx0aGlzLnJlbmRlckF2YXRhcj0oZSx0LG4pPT5lLmF2YXRhci5zcXVhcmUxMjg/dGhpcy5yZW5kZXJJbWFnZShlLG4sdCk6dGhpcy5yZW5kZXJJbml0aWFsKGUsbix0KX1yZW5kZXIoKXtjb25zdCBlPXRoaXMucHJvcHMuYWRtaW5zLmZpbHRlcihCb29sZWFuKS5zbGljZSgwLDMpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQodyxudWxsLGUubWFwKCgodCxuKT0+dGhpcy5yZW5kZXJBdmF0YXIodCxlLmxlbmd0aCxuKSkpKX19VGVhbUF2YXRhci5kZWZhdWx0UHJvcHM9e2FkbWluczpbXX19LDY5ODY4OihlLHQsbik9PntuLmQodCx7clE6KCk9PlQsUmw6KCk9PkMsWlA6KCk9PkUsVzI6KCk9Pkl9KTt2YXIgcj17fTtuLnIociksbi5kKHIse0NvbnRlbnQ6KCk9PnUsV3JhcDooKT0+ZH0pO3ZhciBpPW4oNDkyNiksbz1uKDUwNzAwKSxhPW4oMzkxMTMpLHM9big1NDg3NCksbD17bmFtZToiNGUyMDZiIixzdHlsZXM6InRyYW5zZm9ybTp0cmFuc2xhdGUoMCwxMDAlKTtib3R0b206LTJweDtyaWdodDowOyJ9LGM9e25hbWU6Im1ueDhmMSIsc3R5bGVzOiJ0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMTAwJSk7Ym90dG9tOi0ycHg7bGVmdDo1MCU7In07Y29uc3QgZD0oMCxvLlpQKShpLmFuaW1hdGVkLmRpdix7dGFyZ2V0OiJlOHcxeXN6MCJ9KSgiei1pbmRleDoiLCgwLGEuVzUpKDEpLCI7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOmF1dG87cG9pbnRlci1ldmVudHM6IiwoMCxvLk5RKSgicG9pbnRlckV2ZW50cyIpLCI7IiwoKHtwb3NpdGlvbjplfSk9PiJib3R0b20iPT09ZSYmYyksIiAiLCgoe3Bvc2l0aW9uOmV9KT0+ImJvdHRvbVJpZ2h0Ij09PWUmJmwpLCIgIiwoKHtwb3NpdGlvbjplLHRvcDp0LGJvdHRvbTpuLGxlZnQ6cn0pPT4iYXV0byI9PT1lJiYoMCxvLml2KSgidHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDApOyIsbnVsbCE9dCYmKDAsby5pdikoInRvcDoiLHQsInB4OyIpLCIgIixudWxsIT1uJiYoMCxvLml2KSgiYm90dG9tOiIsbiwicHg7IiksIiBsZWZ0OiIsciwicHg7IikpKTt2YXIgcD17bmFtZToiZXB2bTYiLHN0eWxlczoid2hpdGUtc3BhY2U6bm93cmFwOyJ9O2NvbnN0IHU9KDAsby5aUCkoImRpdiIse3RhcmdldDoiZTh3MXlzejEifSkoImJhY2tncm91bmQ6IiwoMCxvLnJTKSgiZ3JleSIpLCI7b3BhY2l0eTowLjk1O2NvbG9yOiIsKDAsby5yUykoIndoaXRlIiksIjtib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoycHggNHB4IDA7IiwoKHt3cmFwVGV4dDplfSk9PiFlJiZwKSwiICIsKCh7dHlwZTplLHRoZW1lOnR9KT0+ImRhcmsiPT09ZSYmKDAsby5pdikoImJhY2tncm91bmQ6IiwoMCxzLkJ3KSh0LmJsYWNrLC41NSksIjsiKSkpO3ZhciBtPW4oNjcyOTQpLGg9bigyODgxKTtmdW5jdGlvbiBnKCl7cmV0dXJuIGc9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jb25zdCBmPTIwMCx4PTEwMCx2PTIwLHk9MTUsYj01O2Z1bmN0aW9uIEUoe2NoaWxkcmVuOmUsY29udGVudDp0LHBvc2l0aW9uOm49ImF1dG8iLGVuYWJsZWQ6cj0hMCx0eXBlOmk9ImRlZmF1bHQiLHdyYXBUZXh0Om89ITEsaGlkZU9uTW91c2VNb3ZlOmE9ITAsZW5hYmxlUG9pbnRlckV2ZW50czpzPSExLGVudGVyRGVsYXk6bD01MDAsZXhpdERlbGF5OmM9MCxmb3JjZVNob3c6cD0hMX0pe2NvbnN0W0Usa109bS51c2VTdGF0ZSh7dG9wOjAsYm90dG9tOm51bGwsbGVmdDowfSksW0Msd109bS51c2VTdGF0ZSghMSksUz1tLnVzZVJlZihudWxsKSxQPW0udXNlUmVmKG51bGwpLFQ9bS51c2VSZWYobnVsbCksWj1tLnVzZVJlZihEYXRlLm5vdygpKSxJPSgpPT57Y2xlYXJUaW1lb3V0KFQuY3VycmVudCksY2xlYXJJbnRlcnZhbChQLmN1cnJlbnQpfTttLnVzZUVmZmVjdCgoKCk9PkkpLFtdKTtjb25zdCBqPXB8fEMmJnImJnQsXz1tLmNyZWF0ZUVsZW1lbnQoaC5aLHtkdXJhdGlvbjpmfSxqP2U9Pm0uY3JlYXRlRWxlbWVudChkLGcoe3Bvc2l0aW9uOm4sbGVmdDpFLmxlZnQsdG9wOkUudG9wLGJvdHRvbTpFLmJvdHRvbSxwb2ludGVyRXZlbnRzOnM/ImF1dG8iOiJub25lIn0sZSksInN0cmluZyIhPXR5cGVvZiB0P3Q6bS5jcmVhdGVFbGVtZW50KHUse3R5cGU6aSx3cmFwVGV4dDpvfSx0KSk6bnVsbCksTz17b25Nb3VzZUVudGVyOigpPT57SSgpLFAuY3VycmVudD1zZXRJbnRlcnZhbCgoKCk9Pntjb25zdCBlPURhdGUubm93KCktWi5jdXJyZW50Pmw7dyhlKSxlJiZjbGVhckludGVydmFsKFAuY3VycmVudCl9KSx4KX0sb25Nb3VzZUxlYXZlOigpPT57SSgpLFQuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+e3coITEpfSksYyl9LG9uTW91c2VNb3ZlOmU9PntpZighUy5jdXJyZW50KXJldHVybjtjb25zdCB0PVMuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWUuY2xpZW50WC10LmxlZnQscj1lLmNsaWVudFktdC50b3AsaT10LmJvdHRvbS1lLmNsaWVudFk7bGV0IG8scztyPnQuaGVpZ2h0LzI/bz1NYXRoLnJvdW5kKGkreSk6cz1NYXRoLnJvdW5kKHIrdiksWi5jdXJyZW50PURhdGUubm93KCksYSYmdyghMSksayh7dG9wOnMsYm90dG9tOm8sbGVmdDpNYXRoLnJvdW5kKG4rYil9KX0scmVmOlN9O3JldHVybiBtLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCxudWxsLGUoXyxPKSl9ZnVuY3Rpb24gaygpe3JldHVybiBrPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0say5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQyh7dG9vbHRpcDplLGNoaWxkcmVuOnQsdG9vbHRpcFByb3BzOm59KXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KEUsayh7d3JhcFRleHQ6ITAscG9zaXRpb246ImJvdHRvbSIsaGlkZU9uTW91c2VNb3ZlOiExLGVuYWJsZVBvaW50ZXJFdmVudHM6ITAsZW50ZXJEZWxheTowLGV4aXREZWxheToxNTB9LG4se2NvbnRlbnQ6ZX0pLCgoZSxuKT0+bS5jcmVhdGVFbGVtZW50KHcsbix0LGUpKSl9Y29uc3Qgdz0oMCxvLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWd0Nzl5dDAifSkoe25hbWU6Ijc5ZWxiayIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTsifSk7dmFyIFM9big4NTUyNyksUD1uKDY3NTkyKTtmdW5jdGlvbiBUKHtleHBsYW5hdGlvbjplLGxlYXJuTW9yZVVSTDp0fSl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChaLG51bGwsZSx0JiZtLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOnQsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9yZWZlcnJlciJ9LCgwLFAuSXUpKCJsZWFybl9tb3JlIiksIiAiLG0uY3JlYXRlRWxlbWVudChTLlosbnVsbCkpKX1jb25zdCBaPSgwLG8uWlApKCJkaXYiLHt0YXJnZXQ6ImUxM3NhcWRjMCJ9KSgiYm9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6IiwoMCxzLkJ3KSgoMCxvLnJTKSgiYmxhY2siKSwuOSksIjtwYWRkaW5nOjE2cHg7bWluLXdpZHRoOjMwMHB4O2NvbG9yOiIsKDAsby5yUykoIndoaXRlIiksIjtsaW5lLWhlaWdodDoxNTAlO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDthe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6cmdiKDE1MywxNTMsMTUzKTtmb250LXdlaWdodDo2MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Jjpob3ZlciwmOmFjdGl2ZXtjb2xvcjpyZ2IoMTUzLDE1MywxNTMpO31zdmd7aGVpZ2h0OjEzcHg7cGF0aHtzdHJva2U6cmdiKDE1MywxNTMsMTUzKTt9fX0iKSxJPXJ9LDI4ODE6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5zfSk7dmFyIHI9big2NzI5NCksaT1uKDQ5MjYpO2NvbnN0IG89e29wYWNpdHk6MH0sYT17b3BhY2l0eToxfTtmdW5jdGlvbiBzKGUpe2NvbnN0e2NoaWxkcmVuOnQsZHVyYXRpb246bixrZXlzOnN9PWUsbD1yLnVzZVJlZihudWxsKSxbYyxkXT1yLnVzZVN0YXRlKG51bGwpO3IudXNlRWZmZWN0KCgoKT0+e3Q/KGNsZWFyVGltZW91dChsLmN1cnJlbnQpLGQodCkpOmwuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+ZChudWxsKSksbnx8MCl9KSxbdCxuXSksci51c2VFZmZlY3QoKCgpPT4oKT0+Y2xlYXJUaW1lb3V0KGwuY3VycmVudCkpLFtdKTtjb25zdCBwPSgwLGkudXNlVHJhbnNpdGlvbikodCxzLHtmcm9tOm8sZW50ZXI6YSxsZWF2ZTpvLGNvbmZpZzp7ZHVyYXRpb246bn0saW1tZWRpYXRlOiExfSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwscC5tYXAoKCh7aXRlbTplLHByb3BzOm4sa2V5Om99KT0+ZT8iZnVuY3Rpb24iPT10eXBlb2YgZT9lKHtzdHlsZTpuLGtleTpvfSk6ci5jcmVhdGVFbGVtZW50KGkuYW5pbWF0ZWQuZGl2LHtzdHlsZTpuLGtleTpvfSxjfHx0KTpudWxsKSkpfXMuZGVmYXVsdFByb3BzPXtkdXJhdGlvbjoyMDAsa2V5czpudWxsfX0sODM1NjI6KGUsdCxuKT0+e24uZCh0LHt0OigpPT5yfSk7Y29uc3Qgcj0iZW1haWxAZXhhbXBsZS5jb20ifSwxOTc1MzooZSx0LG4pPT57bi5kKHQse1pQOigpPT5WfSk7dmFyIHI9bigzNzQyNCksaT1uKDY3Mjk0KSxvPW4oOTY4OCksYT1uKDMxMzk0KSxzPW4oOTAxOTYpLGw9big2NzU5Mik7ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZS5sZW5ndGg+MH1jbGFzcyBTdHJpbmdBdHRyaWJ1dGUgZXh0ZW5kcyBpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt2YWx1ZTplLGVycm9yTWVzc2FnZTp0LG9uU3VibWl0Om4sb25DaGFuZ2U6cixwbGFjZWhvbGRlcjpvLGlkOmEsbGFiZWw6ZCxzYXZlU3RhdGU6cCxkaXNhYmxlZDp1LGlzQm9yZGVybGVzczptLGlzUmVwbHlUeXBlOmgsaXNTdWJtaXR0YWJsZTpnLGhpZGVFcnJvck1lc3NhZ2U6ZixhcmlhTGFiZWw6eH09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHMuWix7dmFsdWU6ZSxwbGFjZWhvbGRlcjpvLGlkOmEsbGFiZWw6ZCxzYXZlU3RhdGU6cCxkaXNhYmxlZDp1LGlzVmFsaWQ6Yyxpc0JvcmRlcmxlc3M6bSxpc1JlcGx5VHlwZTpoLGlzTm90aWZpY2F0aW9uQ2hhbm5lbDohMSxpc1N1Ym1pdHRhYmxlOmcsb25TdWJtaXQ6bixvbkNoYW5nZTpyLGhpZGVFcnJvck1lc3NhZ2U6Zix2YWxpZGF0aW9uRXJyb3JNZXNzYWdlOnR8fCgwLGwuSXUpKCJzdHJpbmdfaXNfaW5jb3JyZWN0IiksYXJpYUxhYmVsOnh8fG99KX19U3RyaW5nQXR0cmlidXRlLmRlZmF1bHRQcm9wcz17aXNTdWJtaXR0YWJsZTohMCxoaWRlRXJyb3JNZXNzYWdlOiExfTt2YXIgZD1uKDg0NDk0KTtmdW5jdGlvbiBwKGUpe3JldHVybiEhZS5tYXRjaCgvXi0/XGQrJC8pfWNsYXNzIEludGVnZXJBdHRyaWJ1dGUgZXh0ZW5kcyBpLkNvbXBvbmVudHtyZW5kZXIoKXtjb25zdHt2YWx1ZTplLGVycm9yTWVzc2FnZTp0LG9uU3VibWl0Om4sc2F2ZVN0YXRlOnIsZGlzYWJsZWQ6byxpc0JvcmRlcmxlc3M6YSxpc1JlcGx5VHlwZTpjLGFyaWFMYWJlbDpkfT10aGlzLnByb3BzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQocy5aLHt2YWx1ZTplLHBsYWNlaG9sZGVyOigwLGwuSXUpKCJ0eXBlX2FfbnVtYmVyIiksc2F2ZVN0YXRlOnIsZGlzYWJsZWQ6byxpc1ZhbGlkOnAsaXNCb3JkZXJsZXNzOmEsaXNSZXBseVR5cGU6Yyxpc05vdGlmaWNhdGlvbkNoYW5uZWw6ITEsb25TdWJtaXQ6bix2YWxpZGF0aW9uRXJyb3JNZXNzYWdlOnR8fCgwLGwuSXUpKCJudW1iZXJfaXNfaW5jb3JyZWN0IiksYXJpYUxhYmVsOmR8fCgwLGwuSXUpKCJ0eXBlX2FfbnVtYmVyIil9KX19ZnVuY3Rpb24gdShlKXtyZXR1cm4hIWUubWF0Y2goL14tP1xkK1wuXGQrJC8pfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiEhZS5tYXRjaCgvXi0/XGQrJC8pfShlKT9gJHtlfS4wYDplfWNsYXNzIEZsb2F0QXR0cmlidXRlIGV4dGVuZHMgaS5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7dmFsdWU6ZSxlcnJvck1lc3NhZ2U6dCxvblN1Ym1pdDpuLHNhdmVTdGF0ZTpyLGRpc2FibGVkOm8saXNCb3JkZXJsZXNzOmEsaXNSZXBseVR5cGU6YyxhcmlhTGFiZWw6ZH09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KHMuWix7dmFsdWU6ZSxwbGFjZWhvbGRlcjooMCxsLkl1KSgidHlwZV9hX251bWJlciIpLHNhdmVTdGF0ZTpyLGRpc2FibGVkOm8saXNWYWxpZDp1LGZvcm1hdHRlcjptLGlzQm9yZGVybGVzczphLGlzUmVwbHlUeXBlOmMsaXNOb3RpZmljYXRpb25DaGFubmVsOiExLG9uU3VibWl0Om4sdmFsaWRhdGlvbkVycm9yTWVzc2FnZTp0fHwoMCxsLkl1KSgibnVtYmVyX2lzX2luY29ycmVjdCIpLGFyaWFMYWJlbDpkfHwoMCxsLkl1KSgidHlwZV9hX251bWJlciIpfSl9fXZhciBoPW4oMTgyODkpLGc9big1MDcwMCk7Y29uc3QgZj0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlaGl5N3lrMCJ9KSh7bmFtZToiMWprZTR5ayIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlOyJ9KSx4PSgwLGcuWlApKCJzcGFuIix7dGFyZ2V0OiJlaGl5N3lrMSJ9KSh7bmFtZToiaW4zeWkzIixzdHlsZXM6ImZvbnQtd2VpZ2h0OmJvbGQ7In0pO3ZhciB2PXtuYW1lOiIxbWF1dG16IixzdHlsZXM6ImJvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsifSx5PXtuYW1lOiIxdWMxeThkIixzdHlsZXM6ImJvcmRlci1yaWdodC13aWR0aDowOyJ9LGI9e25hbWU6InRzcXIzYSIsc3R5bGVzOiJib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7In0sRT17bmFtZToiZjB1eHMwIixzdHlsZXM6IiY6aG92ZXIsJjpmb2N1c3tib3JkZXItbGVmdC13aWR0aDoxcHg7bWFyZ2luLWxlZnQ6LTFweDt3aWR0aDo1MCU7fSJ9O2NvbnN0IGs9KDAsZy5aUCkoImJ1dHRvbiIse3RhcmdldDoiZWhpeTd5azIifSkoImJveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkICIsKDAsZy5yUykoImF0dHJpYnV0ZUJ1dHRvbkNvbG9yIiksIjtjb2xvcjoiLCgwLGcuclMpKCJhdHRyaWJ1dGVCdXR0b25Db2xvciIpLCI7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjE0cHg7cGFkZGluZzoxMnB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOmNhbGMoNTAlIC0gMXB4KTsmLCp7Y3Vyc29yOnBvaW50ZXI7fSZbZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZDt9IiwoKHtzYXZlU3RhdGU6ZSx0aGVtZTp0fSk9Pigic2F2aW5nIj09PWV8fCJzYXZlZCI9PT1lKSYmKDAsZy5pdikoImJvcmRlcjoxcHggc29saWQgIix0LmF0dHJpYnV0ZUJ1dHRvbkNvbG9yLCI7Jiwqe2N1cnNvcjpkZWZhdWx0O30iKSksIiAiLCgoe3ZhbHVlOmUsdGhlbWU6dH0pPT52b2lkIDA9PT1lJiYoMCxnLml2KSgiY29sb3I6Iix0LmF0dHJpYnV0ZUJ1dHRvbkNvbG9yLCI7Y3Vyc29yOnBvaW50ZXI7Jjpob3ZlciwmOmZvY3Vze2JhY2tncm91bmQtY29sb3I6Iix0LmF0dHJpYnV0ZUJ1dHRvbkhvdmVyQ29sb3IsIjt9JjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjoiLHQuYXR0cmlidXRlQnV0dG9uQWN0aXZlQ29sb3IsIjt9IikpLCIgIiwoKHt2YWx1ZTplLG9wdGlvbjp0fSk9PnZvaWQgMD09PWUmJiExPT09dCYmRSksIiAiLCgoe29wdGlvbjplfSk9PiEwPT09ZSYmYiksIiAiLCgoe29wdGlvbjplLHZhbHVlOnR9KT0+ITA9PT1lJiZ2b2lkIDAhPT10JiZ0IT09ZSYmeSksIiAiLCgoe29wdGlvbjplfSk9PiExPT09ZSYmdiksIiAiLCgoe29wdGlvbjplLHZhbHVlOnQsdGhlbWU6bn0pPT5lPT09dCYmKDAsZy5pdikoImJvcmRlci1sZWZ0LXdpZHRoOjFweDtiYWNrZ3JvdW5kLWNvbG9yOiIsbi5hdHRyaWJ1dGVCdXR0b25Db2xvciwiOyIseC5jbGFzc05hbWUsIntjb2xvcjoiLG4ud2hpdGUsIjt9IikpLCIgIiwoKHtvcHRpb246ZSx2YWx1ZTp0LHRoZW1lOm59KT0+dm9pZCAwIT09dCYmdCE9PWUmJigwLGcuaXYpKHguY2xhc3NOYW1lLCJ7Y29sb3I6IixuLmdyZXksIjt9IikpKTtjbGFzcyBCb29sZWFuQXR0cmlidXRlIGV4dGVuZHMgaS5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17dmFsdWU6dGhpcy5wcm9wcy52YWx1ZX19Y3JlYXRlSGFuZGxlU3VibWl0KGUpe2NvbnN0e3NhdmVTdGF0ZTp0fT10aGlzLnByb3BzO3JldHVybiJzYXZlZCI9PT10fHwic2F2aW5nIj09PXQ/KCk9Pnt9OigpPT57dGhpcy5wcm9wcy5vblN1Ym1pdChlKX19cmVuZGVyKCl7Y29uc3R7dmFsdWU6ZX09dGhpcy5zdGF0ZSx7c2F2ZVN0YXRlOnQsZGlzYWJsZWQ6bn09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsaS5jcmVhdGVFbGVtZW50KGYsbnVsbCxpLmNyZWF0ZUVsZW1lbnQoayx7c2F2ZVN0YXRlOnQsb3B0aW9uOiEwLHZhbHVlOmUsZGlzYWJsZWQ6bixvbkNsaWNrOnRoaXMuY3JlYXRlSGFuZGxlU3VibWl0KCEwKX0saS5jcmVhdGVFbGVtZW50KHgsbnVsbCwoMCxsLkl1KSgiYXR0cmlidXRlX2NvbGxlY3Rvcl9wb3NpdGl2ZSIpKSksaS5jcmVhdGVFbGVtZW50KGsse3NhdmVTdGF0ZTp0LG9wdGlvbjohMSx2YWx1ZTplLGRpc2FibGVkOm4sb25DbGljazp0aGlzLmNyZWF0ZUhhbmRsZVN1Ym1pdCghMSl9LGkuY3JlYXRlRWxlbWVudCh4LG51bGwsKDAsbC5JdSkoImF0dHJpYnV0ZV9jb2xsZWN0b3JfbmVnYXRpdmUiKSkpKSwiZmFpbGVkIj09PXRoaXMucHJvcHMuc2F2ZVN0YXRlJiZpLmNyZWF0ZUVsZW1lbnQoaC5aLHtlcnJvck1lc3NhZ2U6KDAsbC5JdSkoInNvbWV0aGluZ19pc193cm9uZyIpfSkpfX12YXIgQz1uKDc2ODgpLHc9big5OTAyMiksUz1uKDMwNDUzKSxQPW4oNjA3MDcpO2NvbnN0IFQ9KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZTExdzYzd2UwIn0pKHtuYW1lOiIxZ3ppNzQyIixzdHlsZXM6Im1hcmdpbjowIDAgMTZweDsmOmxhc3QtY2hpbGR7bWFyZ2luOjA7fSJ9KSxaPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMXc2M3dlMSJ9KSh7bmFtZToicGIyMzh1IixzdHlsZXM6Im1hcmdpbi1ib3R0b206NXB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7In0pO2NsYXNzIEF0dHJpYnV0ZUNvbGxlY3RvckNhcmRBdHRyaWJ1dGUgZXh0ZW5kcyBpLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLmhhbmRsZVN1Ym1pdD1lPT57Y29uc3R7aWRlbnRpZmllcjp0LG9uU3VibWl0Om59PXRoaXMucHJvcHM7bih0LGUpfSx0aGlzLmhhbmRsZUFycmF5U3VibWl0PWU9Pnt0aGlzLmhhbmRsZVN1Ym1pdChlLnRleHQpfX1maXRzQnV0dG9uR3JvdXBMYXlvdXQoZSl7Y29uc3QgdD1lLmxlbmd0aCxuPU1hdGguZmxvb3IoMTgvdCk7cmV0dXJuIHQ8PTQmJmUuZXZlcnkoKGU9PmUubGVuZ3RoPD1uKSl9cmVuZGVyQXR0cmlidXRlKCl7Y29uc3R7bmFtZTplLHR5cGU6dCxpZGVudGlmaWVyOm4sdmFsdWU6cixvcHRpb25zOm8sc2F2ZVN0YXRlOmEsZXJyb3JDb2RlOnMsZGVmYXVsdENvdW50cnlDb2RlOmwsaXNCb3JkZXJsZXNzOmMsaXNSZXBseVR5cGU6cCxkaXNhYmxlZDp1fT10aGlzLnByb3BzLG09cj9TdHJpbmcocik6dm9pZCAwO3JldHVybiJlbWFpbCI9PT1uP2kuY3JlYXRlRWxlbWVudChkLlose2Rpc2FibGVkOnUsdmFsdWU6bSxzYXZlU3RhdGU6YSxpc0JvcmRlcmxlc3M6Yyxpc1JlcGx5VHlwZTpwLGlzTm90aWZpY2F0aW9uQ2hhbm5lbDohMSxvblN1Ym1pdDp0aGlzLmhhbmRsZVN1Ym1pdH0pOiJwaG9uZSI9PT1uP2kuY3JlYXRlRWxlbWVudChTLlose2Rpc2FibGVkOnUsdmFsdWU6bSxrZXk6bSxzYXZlU3RhdGU6YSxlcnJvckNvZGU6cyxkZWZhdWx0Q291bnRyeUNvZGU6bCxpc0JvcmRlcmxlc3M6Yyxpc1JlcGx5VHlwZTpwLGlzTm90aWZpY2F0aW9uQ2hhbm5lbDohMSxvblN1Ym1pdDp0aGlzLmhhbmRsZVN1Ym1pdH0pOiJzdHJpbmciPT09dCYmQXJyYXkuaXNBcnJheShvKT90aGlzLnJlbmRlckFycmF5QXR0cmlidXRlKG8sbSk6InN0cmluZyI9PT10P2kuY3JlYXRlRWxlbWVudChTdHJpbmdBdHRyaWJ1dGUse2Rpc2FibGVkOnUsdmFsdWU6bSxzYXZlU3RhdGU6YSxpc0JvcmRlcmxlc3M6Yyxpc1JlcGx5VHlwZTpwLG9uU3VibWl0OnRoaXMuaGFuZGxlU3VibWl0LGFyaWFMYWJlbDplfSk6ImludGVnZXIiPT09dD9pLmNyZWF0ZUVsZW1lbnQoSW50ZWdlckF0dHJpYnV0ZSx7ZGlzYWJsZWQ6dSx2YWx1ZTptLHNhdmVTdGF0ZTphLGlzQm9yZGVybGVzczpjLGlzUmVwbHlUeXBlOnAsb25TdWJtaXQ6dGhpcy5oYW5kbGVTdWJtaXQsYXJpYUxhYmVsOmV9KToiZmxvYXQiPT09dD9pLmNyZWF0ZUVsZW1lbnQoRmxvYXRBdHRyaWJ1dGUse2Rpc2FibGVkOnUsdmFsdWU6bSxzYXZlU3RhdGU6YSxpc0JvcmRlcmxlc3M6Yyxpc1JlcGx5VHlwZTpwLG9uU3VibWl0OnRoaXMuaGFuZGxlU3VibWl0LGFyaWFMYWJlbDplfSk6ImJvb2xlYW4iIT09dHx8ImJvb2xlYW4iIT10eXBlb2YgciYmdm9pZCAwIT09cj9udWxsOmkuY3JlYXRlRWxlbWVudChCb29sZWFuQXR0cmlidXRlLHtkaXNhYmxlZDp1LHZhbHVlOnIsa2V5OkpTT04uc3RyaW5naWZ5KHIpLHNhdmVTdGF0ZTphLGlzQm9yZGVybGVzczpjLGlzUmVwbHlUeXBlOnAsb25TdWJtaXQ6dGhpcy5oYW5kbGVTdWJtaXR9KX1yZW5kZXJBcnJheUF0dHJpYnV0ZShlLHQpe2NvbnN0e3NhdmVTdGF0ZTpuLGZyYW1lV2luZG93OnIsZGlzYWJsZWQ6b309dGhpcy5wcm9wcyxhPXQ/e2lkOnQsdGV4dDp0fTpudWxsLHM9ZS5tYXAoKGU9Pih7aWQ6ZSx0ZXh0OmV9KSkpO3JldHVybiB0aGlzLmZpdHNCdXR0b25Hcm91cExheW91dChlKT9pLmNyZWF0ZUVsZW1lbnQody5aLHtkaXNhYmxlZDpvLHZhbHVlOmEsa2V5OigwLFAuWikoSlNPTi5zdHJpbmdpZnkoYSkpLG9wdGlvbnM6cyxzYXZlU3RhdGU6bixvbkNoYW5nZTp0aGlzLmhhbmRsZUFycmF5U3VibWl0fSk6aS5jcmVhdGVFbGVtZW50KEMuWix7ZGlzYWJsZWQ6byx2YWx1ZTphLG9wdGlvbnM6cyxzYXZlU3RhdGU6bixhdXRvRm9jdXM6ITAsZnJhbWVXaW5kb3c6cixvbkNoYW5nZTp0aGlzLmhhbmRsZUFycmF5U3VibWl0fSl9cmVuZGVyKCl7Y29uc3R7bmFtZTplLG51bWJlcjp0fT10aGlzLnByb3BzO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoVCxudWxsLGkuY3JlYXRlRWxlbWVudChaLG51bGwsdm9pZCAwIT09dD9gJHt0fS4gJHtlfWA6ZSksdGhpcy5yZW5kZXJBdHRyaWJ1dGUoKSl9fXZhciBJPW4oMzkxMTMpO2NvbnN0IGo9KDAsZy5GNCkoIjAle29wYWNpdHk6MDt9NzAle29wYWNpdHk6MDt9MTAwJXtvcGFjaXR5OjE7fSIpLF89KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZTcxdGN0ZzAifSkoe25hbWU6IjZzYTF5NSIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTsvKiBAbm9mbGlwICovIGxlZnQ6MDtib3R0b206MTBweDsifSksTz0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNzF0Y3RnMSJ9KSgicG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtjb2xvcjoiLCgwLGcuclMpKCJncmV5IiksIjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4OyIpLEE9KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZTcxdGN0ZzIifSkoInBvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MjZweCAyNHB4IDI0cHg7LyogQG5vZmxpcCAqLyBtYXJnaW4tbGVmdDo0NXB4O3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZy5yUykoIndoaXRlIiksIjtib3JkZXItcmFkaXVzOjVweDtjb2xvcjoiLCgwLGcuclMpKCJib2R5VGV4dCIpLCI7IixJLlR5KSxCPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImU3MXRjdGczIn0pKHtuYW1lOiJ1ZXdsMmIiLHN0eWxlczoibWFyZ2luLWJvdHRvbToyMHB4OyJ9KSxSPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImU3MXRjdGc0In0pKHtuYW1lOiI3OWVsYmsiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7In0pLHo9KDAsZy5aUCkoImgyIix7dGFyZ2V0OiJlNzF0Y3RnNSJ9KSgiY29sb3I6IiwoMCxnLnJTKSgiYm9keVRleHQiKSwiO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweDsiKSxOPSgwLGcuWlApKCJoMyIse3RhcmdldDoiZTcxdGN0ZzYifSkoImNvbG9yOiIsKDAsZy5yUykoIm1ldGFUZXh0IiksIjtmb250LXNpemU6MTRweDttYXJnaW4tdG9wOjhweDsiKTt2YXIgTT17bmFtZToibzdydDBmIixzdHlsZXM6Im1hcmdpbi10b3A6M3B4OyJ9O2NvbnN0IEQ9KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZTcxdGN0ZzcifSkoIm1hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206OHB4O3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7LyogQG5vZmxpcCAqLyBmbG9hdDpsZWZ0OyIsKCh7dGhlbWU6ZSxpc0JvcmRlcmxlc3M6dH0pPT50JiYoMCxnLml2KSgibWluLWhlaWdodDo1N3B4OyIsQS5jbGFzc05hbWUsIntib3gtc2hhZG93OiIsZS5ub3RpZmljYXRpb25Cb3hTaGFkb3csIjtib3JkZXItY29sb3I6IixlLndoaXRlLCI7fSIpKSwiICIsKCh7aXNSZXBseVR5cGU6ZX0pPT5lJiZNKSwiICIsKCh7dGhlbWU6ZSxpc1JlcGx5VHlwZTp0fSk9PmUuaXNNb2JpbGVCcm93c2VyJiZ0JiYoMCxnLml2KShBLmNsYXNzTmFtZSwiey8qIEBub2ZsaXAgKi8gbWFyZ2luLWxlZnQ6MDt9IikpLCIgIiwoKHtpc0JvcmRlcmxlc3M6ZSxpc1JlcGx5VHlwZTp0fSk9PmUmJnQmJigwLGcuaXYpKCJhbmltYXRpb246IixqLCIgNzUwbXMgZWFzZTsiLEEuY2xhc3NOYW1lLCJ7cGFkZGluZzowO30iLFQuY2xhc3NOYW1lLCJ7bWFyZ2luOjA7aGVpZ2h0OjUycHg7fSIsWi5jbGFzc05hbWUsIntkaXNwbGF5Om5vbmU7fSIpKSk7ZnVuY3Rpb24gTChlKXtjb25zdHtmb3JtOnR9PWU7cmV0dXJuIHQ/dC5hdHRyaWJ1dGVzLnJlZHVjZSgoKGUse2lkZW50aWZpZXI6dCxzYXZlU3RhdGU6bn0pPT5PYmplY3QuYXNzaWduKHt9LGUse1t0XTpufSkpLHt9KTp7fX1mdW5jdGlvbiBHKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5sZW5ndGh9ZnVuY3Rpb24gRihlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZmlsdGVyKCh0PT4ic2F2ZWQiPT09ZVt0XXx8ImZhaWxlZCI9PT1lW3RdKSkubGVuZ3RofWNsYXNzIEF0dHJpYnV0ZUNvbGxlY3RvckNhcmQgZXh0ZW5kcyBpLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnN0YXRlPXtzYXZlU3RhdGVzOkwodGhpcy5wcm9wcy5wYXJ0KX0sdGhpcy5ub2RlPXZvaWQgMCx0aGlzLnJlbmRlckF0dHJpYnV0ZT0oZSx0KT0+e2NvbnN0e2lzQm9yZGVybGVzczpuLGlzUmVwbHlUeXBlOnIsZGVmYXVsdENvdW50cnlDb2RlOm8sZnJhbWVXaW5kb3c6YSxvbkF0dHJpYnV0ZVN1Ym1pdDpzLGRpc2FibGVkOmwsaGlkZU51bWJlcmluZzpjfT10aGlzLnByb3BzLHtzYXZlU3RhdGVzOmR9PXRoaXMuc3RhdGU7aWYodD5GKGQpKXJldHVybiBudWxsO2NvbnN0e3R5cGU6cCxuYW1lOnUsaWRlbnRpZmllcjptLG9wdGlvbnM6aCx2YWx1ZTpnLHNhdmVTdGF0ZTpmLGVycm9yQ29kZTp4fT1lO2xldCB2O3JldHVybiBHKGQpPjEmJiFjJiYodj1gJHt0KzF9YCksaS5jcmVhdGVFbGVtZW50KEF0dHJpYnV0ZUNvbGxlY3RvckNhcmRBdHRyaWJ1dGUse2tleTptLHR5cGU6cCxuYW1lOnUsaWRlbnRpZmllcjptLHZhbHVlOmcsbnVtYmVyOnYsb3B0aW9uczpoLGRpc2FibGVkOmwsc2F2ZVN0YXRlOmYsZXJyb3JDb2RlOngsZGVmYXVsdENvdW50cnlDb2RlOm8saXNCb3JkZXJsZXNzOm4saXNSZXBseVR5cGU6cixmcmFtZVdpbmRvdzphLG9uU3VibWl0OnN9KX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtwYXJ0OmUsY29udmVyc2F0aW9uSWQ6dH09dGhpcy5wcm9wcyx7Zm9ybTpufT1lO24mJm4uYXR0cmlidXRlcy5mb3JFYWNoKCgoe2lkZW50aWZpZXI6ZX0pPT57ImVtYWlsIj09PWUmJnRoaXMucHJvcHMub25FbWFpbEF0dHJpYnV0ZU1vdW50KHQpfSkpfWNvbXBvbmVudERpZFVwZGF0ZShlLHQpe0YodC5zYXZlU3RhdGVzKSE9PUYodGhpcy5zdGF0ZS5zYXZlU3RhdGVzKSYmZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuO2NvbnN0IHQ9ZS5jbG9zZXN0KCIuaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktcGFydHMiKTt0JiYoMCxvLk9nKSh0KX0odGhpcy5ub2RlKX1yZW5kZXJBdmF0YXIoKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KF8sbnVsbCxpLmNyZWF0ZUVsZW1lbnQoYS5aLHthdXRob3I6dGhpcy5wcm9wcy5wYXJ0LmF1dGhvcn0pKX1yZW5kZXJGb3JtKCl7Y29uc3R7Zm9ybTplfT10aGlzLnByb3BzLnBhcnQ7cmV0dXJuIGU/ZS5hdHRyaWJ1dGVzLm1hcCh0aGlzLnJlbmRlckF0dHJpYnV0ZSk6bnVsbH1yZW5kZXJIZWFkZXIoKXtjb25zdHtmb3JtOmV9PXRoaXMucHJvcHMucGFydDtpZighZSlyZXR1cm4gbnVsbDtjb25zdCB0PWUudGl0bGUmJmUudGl0bGUubGVuZ3RoPjAsbj1lLnN1YnRpdGxlJiZlLnN1YnRpdGxlLmxlbmd0aD4wO3JldHVybiB0P2kuY3JlYXRlRWxlbWVudChCLG51bGwsdD9pLmNyZWF0ZUVsZW1lbnQoeixudWxsLGUudGl0bGUpOm51bGwsbj9pLmNyZWF0ZUVsZW1lbnQoTixudWxsLGUuc3VidGl0bGUpOm51bGwpOm51bGx9cmVuZGVyUG9zaXRpb24oKXtjb25zdHtzYXZlU3RhdGVzOmV9PXRoaXMuc3RhdGUsdD1HKGUpO2lmKDE9PT10KXJldHVybiBudWxsO2NvbnN0IG49TWF0aC5taW4odCxGKGUpKzEpO3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoTyxudWxsLCIoIixuLCIvIix0LCIpIil9cmVuZGVyKCl7Y29uc3R7aXNCb3JkZXJsZXNzOmUsaXNSZXBseVR5cGU6dH09dGhpcy5wcm9wcztyZXR1cm4gaS5jcmVhdGVFbGVtZW50KEQse2lzQm9yZGVybGVzczplLGlzUmVwbHlUeXBlOnQscmVmOmU9PnRoaXMubm9kZT1lfSx0aGlzLnByb3BzLmhhc0F2YXRhcj90aGlzLnJlbmRlckF2YXRhcigpOm51bGwsaS5jcmVhdGVFbGVtZW50KEEsbnVsbCx0aGlzLnJlbmRlckhlYWRlcigpLGkuY3JlYXRlRWxlbWVudChSLG51bGwsdGhpcy5yZW5kZXJQb3NpdGlvbigpLHRoaXMucmVuZGVyRm9ybSgpKSkpfX12YXIgcT1uKDM4NzMzKSxIPW4oMTIzMjUpLFc9big2NTM5NCksVT1uKDQzNTQpO2NvbnN0IFY9KDAsci5jb25uZWN0KSgoKGUsdCk9Pntjb25zdHtwYXJ0Om59PXQscj1lLmFwcC5jb252ZXJzYXRpb25JZHx8ZS5tZXNzYWdlLmNvbnZlcnNhdGlvbklkLHtpZDppfT1uO3JldHVybntjb252ZXJzYXRpb25JZDpyLHBhcnRJZDppLGRlZmF1bHRDb3VudHJ5Q29kZTplLnVzZXIuY291bnRyeUNvZGV8fCJ1cyJ9fSksKGU9Pih7b25BdHRyaWJ1dGVTdWJtaXQodCxuLHIsaSxvLGEpe2UoKDAsSC5oQikocS5aUCx0LG4scixpLG8sYSwoMCxVLmZXKSh7aWRlbnRpZmllcjpyfSkpKX0sb25FbWFpbEF0dHJpYnV0ZU1vdW50KHQpe2UoKDAsVy5oaykodCkpfX0pKSwoKGUsdCxuKT0+T2JqZWN0LmFzc2lnbih7fSxlLHQsbix7b25BdHRyaWJ1dGVTdWJtaXQocixpKXt0Lm9uQXR0cmlidXRlU3VibWl0KGUuY29udmVyc2F0aW9uSWQsZS5wYXJ0SWQscixpLCgwLFUuREspKG4ucGFydC5mb3JtLHIpLG4ucGFydC5mb3JtLnR5cGUpfX0pKSkoQXR0cmlidXRlQ29sbGVjdG9yQ2FyZCl9LDg1NTg1OihlLHQsbik9PntuLmQodCx7WlA6KCk9PnN0fSk7dmFyIHI9bigzNzQyNCksaT1uKDIzNDkzKSxvPW4ubihpKSxhPW4oMTg0NDYpLHM9bi5uKGEpLGw9big0NTY5NyksYz1uLm4obCksZD1uKDY3Mjk0KSxwPW4oNTAzNjEpLHU9bi5uKHApLG09big1NzQxNSksaD1uLm4obSksZz1uKDUwNzAwKTtjb25zdCBmPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZzJyYzV4MCJ9KSh7bmFtZToiMWZ2bHNndyIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO3otaW5kZXg6MTsifSkseD0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWcycmM1eDEifSkoImhlaWdodDo1MHB4O3dpZHRoOjI5MHB4O3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWJvdHRvbToycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3gtc2hhZG93OjAgMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4wOCk7Ym9yZGVyLXJhZGl1czo2cHg7ei1pbmRleDoyO2JveC1zaXppbmc6Ym9yZGVyLWJveDsiLCgoe2Vtb2ppWU9mZnNldDplfSk9PigwLGcuaXYpKCJ0b3A6IixlLTE3LCJweDsiKSkpLHY9KDAsZy5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxZzJyYzV4MiJ9KSgicGFkZGluZzozcHg7d2lkdGg6MzZweDtsaW5lLWhlaWdodDoxLjI4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozNnB4O3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250LXNpemU6MjhweDttYXJnaW46NHB4IDVweCAwIDZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Zm9udC1mYW1pbHk6J0FwcGxlIENvbG9yIEVtb2ppJywnU2Vnb2UgVUkgRW1vamknLCdOb3RvQ29sb3JFbW9qaScsJ1NlZ29lIFVJIFN5bWJvbCcsJ0FuZHJvaWQgRW1vamknLCdFbW9qaVN5bWJvbHMnLHNhbnMtc2VyaWY7Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZy5yUykoIml0ZW1Ib3ZlciIpLCI7Ym9yZGVyLXJhZGl1czozcHg7fSIpLHk9KDAsZy5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxZzJyYzV4MyJ9KSgiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAiLCgwLGcuclMpKCJkaXZpZGVyQm9yZGVyIiksIjtoZWlnaHQ6MzZweDt3aWR0aDoxcHg7IiksYj0oe2Vtb2ppWE9mZnNldDplfSk9PigwLGcuaXYpKCJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LThweDtyaWdodDowO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6OHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo4cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo4cHggc29saWQgd2hpdGU7bGVmdDoiLGUtNywicHg7IiksRT0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWcycmM1eDQifSkoYiksaz0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWcycmM1eDUifSkoYiwiIGJvdHRvbTotOXB4O2JvcmRlci10b3A6bm9uZTsiKTtjbGFzcyBFbW9qaVNraW50b25lUGlja2VyIGV4dGVuZHMgZC5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5oYW5kbGVFbW9qaUNsaWNrPWU9Pntjb25zdCB0PWgoKS51bmljb2RlRnJvbUlkZW50aWZpZXIoZS50YXJnZXQudGl0bGUpO3RoaXMucHJvcHMub25FbW9qaUNsaWNrKHRoaXMucHJvcHMuZW1vamksdCl9LHRoaXMuaGFuZGxlT3ZlcmxheUNsaWNrPSgpPT57dGhpcy5wcm9wcy5vbkNsb3NlKCl9fXJlbmRlckVtb2ppKGUsdCl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudCgic3BhbiIse2tleTp0fSxkLmNyZWF0ZUVsZW1lbnQodix7dGl0bGU6aCgpLmlkZW50aWZpZXJGcm9tVW5pY29kZShlKSxvbkNsaWNrOnRoaXMuaGFuZGxlRW1vamlDbGlja30sZSksMD09PXQ/ZC5jcmVhdGVFbGVtZW50KHksbnVsbCk6bnVsbCl9cmVuZGVyKCl7Y29uc3R7ZW1vamk6ZSxlbW9qaVhPZmZzZXQ6dCxlbW9qaVlPZmZzZXQ6bn09dGhpcy5wcm9wcyxyPWgoKS5nZXRBbGxNb2RpZmllZEZvckJhc2VFbW9qaShlKTtyZXR1cm4gci5sZW5ndGg8PTE/bnVsbDpkLmNyZWF0ZUVsZW1lbnQoZix7b25DbGljazp0aGlzLmhhbmRsZU92ZXJsYXlDbGlja30sZC5jcmVhdGVFbGVtZW50KHgse2Vtb2ppWU9mZnNldDpufSxyLm1hcCgoKGUsdCk9PnRoaXMucmVuZGVyRW1vamkoZSx0KSkpLGQuY3JlYXRlRWxlbWVudChrLHtlbW9qaVhPZmZzZXQ6dH0pLGQuY3JlYXRlRWxlbWVudChFLHtlbW9qaVhPZmZzZXQ6dH0pKSl9fXZhciBDPW4oOTY4OCksdz17bmFtZToiMTBmNW9ncCIsc3R5bGVzOiJ0cmFuc2l0aW9uLWRlbGF5OjBtczt0cmFuc2Zvcm06c2NhbGUoMS4yKTsifTtjb25zdCBTPSgwLGcuWlApKCJzcGFuIix7dGFyZ2V0OiJlMXkwaGxnYTAifSkoInBhZGRpbmc6NnB4O3dpZHRoOjMwcHg7bGluZS1oZWlnaHQ6MS4wNztkaXNwbGF5OmlubGluZS10YWJsZTt0ZXh0LWFsaWduOmp1c3RpZnk7Y3Vyc29yOnBvaW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQtc2l6ZToyOHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIDYwbXMgZWFzZS1vdXQ7dHJhbnNpdGlvbi1kZWxheTo2MG1zO2ZvbnQtZmFtaWx5OidBcHBsZSBDb2xvciBFbW9qaScsJ1NlZ29lIFVJIEVtb2ppJywnTm90b0NvbG9yRW1vamknLCdTZWdvZSBVSSBTeW1ib2wnLCdBbmRyb2lkIEVtb2ppJywnRW1vamlTeW1ib2xzJyxzYW5zLXNlcmlmOyIsKCh7aXNBY3RpdmU6ZX0pPT5lJiZ3KSk7Y2xhc3MgRW1vamkgZXh0ZW5kcyBkLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnN0YXRlPXtpc0hvdmVyaW5nOiExfSx0aGlzLmhhbmRsZUVtb2ppTW91c2VFbnRlcj0oKT0+e3RoaXMuc2V0U3RhdGUoe2lzSG92ZXJpbmc6ITB9KX0sdGhpcy5oYW5kbGVFbW9qaU1vdXNlTGVhdmU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc0hvdmVyaW5nOiExfSl9fXJlbmRlcigpe2NvbnN0e2Vtb2ppOmUsaW5kZXg6dCx0aXRsZTpuLG9uRW1vamlNb3VzZVVwOnIsb25FbW9qaU1vdXNlRG93bjppLGlzQWN0aXZlOm99PXRoaXMucHJvcHMsYT1uLnJlcGxhY2UoLyhffC0pL2dpLCIgIik7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChTLHtrZXk6dCxjbGFzc05hbWU6ImludGVyY29tLWVtb2ppLXBpY2tlci1lbW9qaSIsdGl0bGU6biwiYXJpYS1sYWJlbCI6YSxyb2xlOiJidXR0b24iLHRhYkluZGV4OjAsb25Nb3VzZVVwOnIsb25Nb3VzZURvd246aSxvbk1vdXNlRW50ZXI6dGhpcy5oYW5kbGVFbW9qaU1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlOnRoaXMuaGFuZGxlRW1vamlNb3VzZUxlYXZlLG9uS2V5RG93bjooMCxDLk9qKShyKSxpc0FjdGl2ZTp0aGlzLnN0YXRlLmlzSG92ZXJpbmd8fG99LGUpfX12YXIgUD1uKDI5MzgwKSxUPW4oMTYzMTUpLFo9big2NzU5Mik7Y29uc3QgST1lPT53aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSYmd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk/d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk6ZS5zdHlsZTt2YXIgaj1uKDMxMjAyKSxfPW4oNDM2NzkpO2NsYXNzIFNlYXJjaFJlc3VsdHNTdW1tYXJ5IGV4dGVuZHMgZC5Db21wb25lbnR7cmVuZGVyKCl7Y29uc3R7Y291bnQ6ZSxxdWVyeTp0fT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIn0sdD9kLmNyZWF0ZUVsZW1lbnQoXy4kYyx7cm9sZToiYWxlcnQifSxlP2QuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxlLCIgIiwoMCxaLkl1KSgiYXJ0aWNsZV9zZWFyY2hfc2VhcmNoX3Jlc3VsdHNfZm9yX3F1ZXJ5Iix7cXVlcnk6dH0pKTooMCxaLkl1KSgiYXJ0aWNsZV9zZWFyY2hfbm9fcmVzdWx0c19mb3JfcXVlcnkiLHtxdWVyeTp0fSkpOm51bGwpfX12YXIgTz1uKDM4NzEyKTtjb25zdCBBPSgwLGcuWlApKCJzcGFuIix7dGFyZ2V0OiJlenVwcmIwIn0pKCJib3JkZXI6MTBweCBzb2xpZDtjb2xvcjoiLCgwLGcuclMpKCJ3aGl0ZSIpLCI7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGcuclMpKCJ3aGl0ZSIpLCI7Ym9yZGVyLWNvbG9yOiIsKDAsZy5yUykoIndoaXRlIiksIjtjdXJzb3I6cG9pbnRlcjsiKSxCPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImV6dXByYjEifSkoe25hbWU6Iml0OXoyYSIsc3R5bGVzOiJtYXJnaW46MTBweCAtNXB4O3BhZGRpbmctbGVmdDozcHg7In0pLFI9KDAsZy5aUCkoImgzIix7dGFyZ2V0OiJlenVwcmIyIn0pKCJjb2xvcjoiLCgwLGcuclMpKCJtZXRhVGV4dCIpLCI7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMXB4O21hcmdpbjo1cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xpbmUtaGVpZ2h0OjEuMjc7Iiksej0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenVwcmIzIn0pKHtuYW1lOiJqbHJqczIiLHN0eWxlczoid2lkdGg6MzMwcHg7aGVpZ2h0OjI2MHB4OyJ9KSxOPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImV6dXByYjQifSkoe25hbWU6IjFucmF1MyIsc3R5bGVzOiJ3aWR0aDoxNDVweDtoZWlnaHQ6MTE1cHg7In0pO3ZhciBNPW4oMzkxMTMpO2NvbnN0IEQ9bi5wKyJpbWFnZXMvc2VhcmNoLjZjMmE4YTQ4LnBuZyIsTD1uLnArImltYWdlcy9zZWFyY2hAMnguMmU4ZjExNjUucG5nIixHPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdjZjazEwIn0pKCJ6LWluZGV4OiIsKDAsTS5XNSkoMyksIjtwb3NpdGlvbjphYnNvbHV0ZTttYXgtaGVpZ2h0OiIsMjYwLCJweDtib3R0b206MTAwJTtyaWdodDpjYWxjKDUwJSAtIDE4OXB4KTtib3gtc2hhZG93OjAgMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtib3JkZXItcmFkaXVzOjZweDsiLCgoe2lzQm9yZGVybGVzczplfSk9PmUmJigwLGcuaXYpKCJoZWlnaHQ6IiwyMzYsInB4O3RvcDoiLC0yMzYsInB4Oy8qIEBub2ZsaXAgKi8gcmlnaHQ6N3B4Oy8qIEBub2ZsaXAgKi8gbGVmdDpjYWxjKDUwJSAtIDE2NXB4KTsiKSksIiAmLmludGVyY29tLWNvbXBvc2VyLXBvcG92ZXJ7Ji1lbnRlcntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KTt9Ji1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30mLWV4aXR7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30mLWV4aXQtYWN0aXZle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1cHgpO30mLWVudGVyLWFjdGl2ZSwmLWV4aXQtYWN0aXZle3RyYW5zaXRpb246b3BhY2l0eSBlYXNlIDIwMG1zLHRyYW5zZm9ybSBlYXNlIDIwMG1zO319IiksRj0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXY2Y2sxMSJ9KSgicG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi04cHg7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDo4cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjhweCBzb2xpZCB3aGl0ZTsiLCgoe3BvcG92ZXJUeXBlOmUsc2hvdWxkSGlkZVVwbG9hZHM6dCxpc0JvcmRlcmxlc3M6bix0aGVtZTpyfSk9Pntjb25zdCBpPSgoe3BvcG92ZXJUeXBlOmUsc2hvdWxkSGlkZVVwbG9hZHM6dCxpc0JvcmRlcmxlc3M6bix0aGVtZTpyfSk9PntsZXQgaT0iZ2lmIj09PWU/ODE6NDE7cmV0dXJuIHQmJihpLT0zNCksbiYmKGkrPTE5KSxyLmlzUnRsTG9jYWxlJiZuJiYoaSs9MjMpLGl9KSh7cG9wb3ZlclR5cGU6ZSxzaG91bGRIaWRlVXBsb2Fkczp0LGlzQm9yZGVybGVzczpuLHRoZW1lOnJ9KTtyZXR1cm4oMCxnLml2KSgicmlnaHQ6IixpLCJweDsiKX0pKSxxPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdjZjazEyIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjUwJTt3aWR0aDoxMDAlO21hcmdpbi10b3A6LTdweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDpib2xkO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiIsKDAsZy5yUykoImJvZHlUZXh0IiksIjsiKSxIPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdjZjazEzIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjIwcHg7cmlnaHQ6MjBweDtoZWlnaHQ6NDBweDtib3JkZXItYm90dG9tOjFweCAiLCgwLGcuclMpKCJpbnB1dEJvcmRlciIpLCIgc29saWQ7IiksVz0oMCxnLlpQKSgiaW5wdXQiLHt0YXJnZXQ6ImUxdjZjazE0In0pKCgwLE0uS28pKEQsTCwiMTZweCIsIjE2cHgiKSwiIGJhY2tncm91bmQtcG9zaXRpb246MCAxMnB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXNpemU6MTRweDtjb2xvcjoiLCgwLGcuclMpKCJpbnB1dFRleHQiKSwiO3BhZGRpbmc6MTBweCAwIDEwcHggMjVweDtoZWlnaHQ6NDBweDt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsmOjpwbGFjZWhvbGRlcntjb2xvcjoiLCgwLGcuclMpKCJpbnB1dFBsYWNlaG9sZGVyIiksIjt9IiksVT0oMCxnLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXY2Y2sxNSJ9KSh7bmFtZToiMW10N2JnaiIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDBweDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206NXB4O3BhZGRpbmc6MCAyMHB4O292ZXJmbG93LXk6c2Nyb2xsOyJ9KTt2YXIgVj1uKDExMzUzKTtmdW5jdGlvbiAkKHtldmVudDplLGV2ZW50SWRlbnRpZmllcjp0LG9uQ2xpY2s6bn0peyFlfHxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBlPS0xIT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJHaG9zdCBJbnNwZWN0b3IiKSx0PXdpbmRvdy5fREFUQURPR19TWU5USEVUSUNTX0JST1dTRVIsbj0hMTtyZXR1cm4gZXx8dHx8bn0oKXx8ITEhPT1lLmlzVHJ1c3RlZH0oZSk/bihlKTp0JiYoMCxWLmNiKSgiY2xpY2tfZGVuaWVkIix7dGFyZ2V0OnR9LCEwKX1jb25zdCBLPSJpbnRlcmNvbS5yZWNlbnRFbW9qaSIsWT0iMS4wIixKPVt7YmFzZUVtb2ppOiLwn5GNIixza2ludG9uZUVtb2ppOiLwn5GNIn0se2Jhc2VFbW9qaToi8J+RjiIsc2tpbnRvbmVFbW9qaToi8J+RjiJ9LHtiYXNlRW1vamk6IvCfmK0iLHNraW50b25lRW1vamk6IvCfmK0ifSx7YmFzZUVtb2ppOiLwn5iVIixza2ludG9uZUVtb2ppOiLwn5iVIn0se2Jhc2VFbW9qaToi8J+YkCIsc2tpbnRvbmVFbW9qaToi8J+YkCJ9LHtiYXNlRW1vamk6IvCfmIoiLHNraW50b25lRW1vamk6IvCfmIoifSx7YmFzZUVtb2ppOiLwn5iNIixza2ludG9uZUVtb2ppOiLwn5iNIn1dO2Z1bmN0aW9uIFgoKXtjb25zdCBlPUpTT04ucGFyc2Uoai5YLmdldChLKSl8fHt9O3JldHVybiBlLnZlcnNpb24mJmUudmVyc2lvbj09PVk/ZS5lbW9qaXx8W106KGouWC5yZW1vdmUoSyksdSgpKEopKX1mdW5jdGlvbiBRKGUpe2NvbnN0IHQ9SlNPTi5wYXJzZShqLlguZ2V0KEspKTtpZighdHx8IXQuZW1vamkpcmV0dXJuIGU7bGV0IG49ZTtyZXR1cm4gdC5lbW9qaS5mb3JFYWNoKCh0PT57dC5iYXNlRW1vamkhPT1lfHwobj10LnNraW50b25lRW1vamkpfSkpLG59Y2xhc3MgRW1vamlQaWNrZXIgZXh0ZW5kcyBkLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnN0YXRlPXtzZWFyY2hWYWx1ZToiIixoYXNOYXRpdmVFbW9qaVN1cHBvcnQ6KDAsUC5NbykoKSxoYXNMb2NhbFN0b3JhZ2VTdXBwb3J0OlQuWlAuaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCgpLHNraW50b25lRW1vamlUb1Nob3c6bnVsbCxlbW9qaVhPZmZzZXQ6MCxlbW9qaVlPZmZzZXQ6MH0sdGhpcy5lbW9qaU1hcD0oMCxQLkhvKSgpLHRoaXMuaGFuZGxlRW1vamlNb3VzZURvd249ZT0+e2NvbnN0IHQ9ZS50YXJnZXQub2Zmc2V0TGVmdCxuPWUudGFyZ2V0Lm9mZnNldFRvcC0oKGUsdCxuKT0+e2xldCByPUkodCk7Y29uc3QgaT0iYWJzb2x1dGUiPT09ci5wb3NpdGlvbixvPW4/LyhhdXRvfHNjcm9sbHxoaWRkZW4pLzovKGF1dG98c2Nyb2xsKS87aWYoImZpeGVkIj09PXIucG9zaXRpb24pcmV0dXJuIGUuZG9jdW1lbnQuYm9keTtmb3IobGV0IGU9dDtlPWUucGFyZW50RWxlbWVudDspaWYocj1JKGUpLCghaXx8InN0YXRpYyIhPT1yLnBvc2l0aW9uKSYmby50ZXN0KHIub3ZlcmZsb3crci5vdmVyZmxvd1krci5vdmVyZmxvd1gpKXJldHVybiBlO3JldHVybiBlLmRvY3VtZW50LmJvZHl9KSh3aW5kb3csZS50YXJnZXQpLnNjcm9sbFRvcDt0aGlzLnNldFN0YXRlKHtlbW9qaVhPZmZzZXQ6dCxlbW9qaVlPZmZzZXQ6bn0pLHRoaXMuZW1vamlMb25nUHJlc3NUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5lbW9qaUxvbmdQcmVzc1RpbWVvdXQpLHRoaXMuZW1vamlMb25nUHJlc3NUaW1lb3V0PXNldFRpbWVvdXQoKGU9Pnt0aGlzLnNldFN0YXRlKHtza2ludG9uZUVtb2ppVG9TaG93OmV9KX0pLDUwMCxoKCkudW5pY29kZUZyb21JZGVudGlmaWVyKGUudGFyZ2V0LnRpdGxlKSl9LHRoaXMuaGFuZGxlRW1vamlNb3VzZVVwPWU9PnskKHtldmVudDplLGV2ZW50SWRlbnRpZmllcjoic2VsZWN0X2Vtb2ppIixvbkNsaWNrOmU9PntpZih0aGlzLmVtb2ppTG9uZ1ByZXNzVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuZW1vamlMb25nUHJlc3NUaW1lb3V0KSwhdGhpcy5zdGF0ZS5za2ludG9uZUVtb2ppVG9TaG93KXtjb25zdCB0PWgoKS51bmljb2RlRnJvbUlkZW50aWZpZXIoZS50YXJnZXQudGl0bGUpO3RoaXMuaGFuZGxlRW1vamlDbGljayh0KX10aGlzLnNldFN0YXRlKHtza2ludG9uZUVtb2ppVG9TaG93Om51bGx9KSxlLnByZXZlbnREZWZhdWx0KCl9fSl9LHRoaXMuaGFuZGxlSW1hZ2VDbGljaz1lPT57Y29uc3QgdD1lLnRhcmdldC50aXRsZTt0aGlzLnByb3BzLm9uRW1vamlDbGljayh0KX0sdGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2U9ZT0+e2NvbnN0IHQ9ZS50YXJnZXQudmFsdWU7dGhpcy5zZXRTdGF0ZSh7c2VhcmNoVmFsdWU6dH0pfSx0aGlzLmhhbmRsZUNsaWNrPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpfSx0aGlzLmhhbmRsZUVtb2ppQ2xpY2s9KGUsdCk9PntpZih2b2lkIDA9PT1lKXJldHVybjtsZXQgbj1lO3RoaXMuc3RhdGUuaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCYmKG49dHx8UShlKSx0JiZmdW5jdGlvbihlLHQpe2NvbnN0IG49SlNPTi5wYXJzZShqLlguZ2V0KEspKTtpZighbnx8IW4uZW1vamkpcmV0dXJuO2xldCByPSExLGk9bi5lbW9qaTtpLmZvckVhY2goKG49PntpZihuLmJhc2VFbW9qaT09PWUpcmV0dXJuIG4uc2tpbnRvbmVFbW9qaT10LHZvaWQocj0hMCl9KSkscnx8KGk9dSgpKGkpLmNvbmNhdCh7YmFzZUVtb2ppOmUsc2tpbnRvbmVFbW9qaTp0fSkpLGouWC5zZXQoSyxKU09OLnN0cmluZ2lmeSh7dmVyc2lvbjpZLGVtb2ppOml9KSl9KGUsdCksZnVuY3Rpb24oZSx0PWUpe2NvbnN0IG49Si5maW5kKCh0PT50LmJhc2VFbW9qaT09PWUpKTtsZXQgcj1YKCk7Y29uc3QgaT1yLmZpbmQoKHQ9PnQuYmFzZUVtb2ppPT09ZSkpLG89ci5pbmRleE9mKGkpO2kmJnIuc3BsaWNlKG8sMSksci51bnNoaWZ0KHtiYXNlRW1vamk6ZSxza2ludG9uZUVtb2ppOnR9KSxyLmxlbmd0aDw4JiYhbiYmKHI9ci5jb25jYXQoSikpLGouWC5zZXQoSyxKU09OLnN0cmluZ2lmeSh7dmVyc2lvbjpZLGVtb2ppOnJ9KSl9KGUsbikpLHRoaXMucHJvcHMub25FbW9qaUNsaWNrKG4pfSx0aGlzLmhhbmRsZVNraW5Ub25lUGlja2VyQ2xvc2U9KCk9Pnt0aGlzLnNldFN0YXRlKHtza2ludG9uZUVtb2ppVG9TaG93Om51bGx9KX19aGFzU2VhcmNoVGV4dCgpe3JldHVybiIiIT09dGhpcy5zdGF0ZS5zZWFyY2hWYWx1ZX1maWx0ZXJlZFNlYXJjaEVtb2ppKGUpe3JldHVybiB0aGlzLmVtb2ppTWFwLmZpbHRlcigoZT0+e2NvbnN0IHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiBlPT5lLnRpdGxlLmluZGV4T2YodCk+LTF9KShlKSkubWFwKChlPT5lLmVtb2ppKSl9cmVuZGVyRW1vamkoZSx0LG49ZSl7aWYoIWgoKS5pc1N1cHBvcnRlZFVuaWNvZGUoZSkpcmV0dXJuIG51bGw7Y29uc3Qgcj1oKCkuaWRlbnRpZmllckZyb21Vbmljb2RlKG4pLGk9dGhpcy5zdGF0ZS5za2ludG9uZUVtb2ppVG9TaG93PT09bixvPXRoaXMuc3RhdGUuaGFzTG9jYWxTdG9yYWdlU3VwcG9ydD9RKGUpOmU7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChFbW9qaSx7a2V5OnQsZW1vamk6byx0aXRsZTpyLG9uRW1vamlNb3VzZVVwOnRoaXMuaGFuZGxlRW1vamlNb3VzZVVwLG9uRW1vamlNb3VzZURvd246dGhpcy5oYW5kbGVFbW9qaU1vdXNlRG93bixpc0FjdGl2ZTppfSl9cmVuZGVySW1hZ2UoZSx0KXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KEEse2tleTp0LHRpdGxlOmgoKS5hc2NpaUZyb21Vbmljb2RlKGUpLHN0eWxlOntoZWlnaHQ6IjE2cHgiLHdpZHRoOiIxNnB4IixiYWNrZ3JvdW5kSW1hZ2U6InVybCgiK2goKS50d2Vtb2ppU1ZHVXJpKGUpKyIpIn0sb25DbGljazp0aGlzLmhhbmRsZUltYWdlQ2xpY2ssImFyaWEtbGFiZWwiOigwLFAua2wpKGUpfSl9cmVuZGVyR3JvdXAoZSx0KXtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KEIse2tleTp0fSxkLmNyZWF0ZUVsZW1lbnQoUixudWxsLCgwLFouSXUpKGgoKS5nZXRHcm91cFJlcHJlc2VudGF0aXZlcygpW3RdWzFdLnRvTG93ZXJDYXNlKCkpKSxlLm1hcCgoKGUsdCk9PntpZihoKCkuaXNFbW9qaUJhc2VVbmljb2RlKGUpKXJldHVybiB0aGlzLnJlbmRlckVtb2ppKGUsdCl9KSkpfXJlbmRlck1vc3RSZWNlbnQoKXtjb25zdCBlPVgoKS5zbGljZSgwLDgpO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoQixudWxsLGQuY3JlYXRlRWxlbWVudChSLG51bGwsKDAsWi5JdSkoImZyZXF1ZW50bHlfdXNlZCIpKSxlLm1hcCgoKGUsdCk9PnRoaXMucmVuZGVyRW1vamkoZS5za2ludG9uZUVtb2ppLHQsZS5iYXNlRW1vamkpKSkpfXJlbmRlckZpbHRlcmVkKCl7Y29uc3QgZT10aGlzLmZpbHRlcmVkU2VhcmNoRW1vamkodGhpcy5zdGF0ZS5zZWFyY2hWYWx1ZSk7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChCLG51bGwsMD09PWUubGVuZ3RoP2QuY3JlYXRlRWxlbWVudChxLG51bGwsKDAsWi5JdSkoIm5vX2Vtb2ppX2ZvdW5kIikpOmUubWFwKCgoZSx0KT0+e2lmKGgoKS5pc0Vtb2ppQmFzZVVuaWNvZGUoZSkpcmV0dXJuIHRoaXMucmVuZGVyRW1vamkoZSx0KX0pKSl9cmVuZGVyR3JvdXBzKCl7Y29uc3QgZT1oKCkucHJldHR5RW1vdGljb25zVW5pY29kZUdyb3VwcygpO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZC5GcmFnbWVudCxudWxsLHRoaXMuc3RhdGUuaGFzTG9jYWxTdG9yYWdlU3VwcG9ydD90aGlzLnJlbmRlck1vc3RSZWNlbnQoKTpudWxsLGUubWFwKCgoZSx0KT0+dGhpcy5yZW5kZXJHcm91cChlLHQpKSkpfXJlbmRlckVtb2ppUGlja2VyKCl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChkLkZyYWdtZW50LG51bGwsZC5jcmVhdGVFbGVtZW50KEgsbnVsbCxkLmNyZWF0ZUVsZW1lbnQoVyx7bmFtZToiZW1vamkiLGF1dG9Gb2N1czohMCxwbGFjZWhvbGRlcjooMCxaLkl1KSgic2VhcmNoX2Zvcl9lbW9qaSIpLHZhbHVlOnRoaXMuc3RhdGUuc2VhcmNoVmFsdWUsb25DaGFuZ2U6dGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2Usb25CbHVyOk8uQUYsImFyaWEtbGFiZWwiOigwLFouSXUpKCJzZWFyY2hfZm9yX2Vtb2ppIil9KSksZC5jcmVhdGVFbGVtZW50KFNlYXJjaFJlc3VsdHNTdW1tYXJ5LHtxdWVyeTp0aGlzLnN0YXRlLnNlYXJjaFZhbHVlLGNvdW50OnRoaXMuZmlsdGVyZWRTZWFyY2hFbW9qaSh0aGlzLnN0YXRlLnNlYXJjaFZhbHVlKS5maWx0ZXIoaCgpLmlzRW1vamlCYXNlVW5pY29kZSkubGVuZ3RofSksZC5jcmVhdGVFbGVtZW50KFUse29uV2hlZWw6Qy5SMiwiYXJpYS1saXZlIjoicG9saXRlIn0sdGhpcy5oYXNTZWFyY2hUZXh0KCk/dGhpcy5yZW5kZXJGaWx0ZXJlZCgpOnRoaXMucmVuZGVyR3JvdXBzKCkpKX1yZW5kZXJTa2luVG9uZVBpY2tlcigpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoRW1vamlTa2ludG9uZVBpY2tlcix7ZW1vamk6dGhpcy5zdGF0ZS5za2ludG9uZUVtb2ppVG9TaG93LGVtb2ppWU9mZnNldDp0aGlzLnN0YXRlLmVtb2ppWU9mZnNldCxlbW9qaVhPZmZzZXQ6dGhpcy5zdGF0ZS5lbW9qaVhPZmZzZXQsb25DbG9zZTp0aGlzLmhhbmRsZVNraW5Ub25lUGlja2VyQ2xvc2Usb25FbW9qaUNsaWNrOnRoaXMuaGFuZGxlRW1vamlDbGlja30pfXJlbmRlcldpdGhvdXROYXRpdmVTdXBwb3J0KCl7Y29uc3QgZT1oKCkuYXNjaWlFbW90aWNvbnNVbmljb2RlTGlzdC5zbGljZSgwLDEyKTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KE4se29uQ2xpY2s6dGhpcy5oYW5kbGVDbGljayx0YWJJbmRleDoiLTEifSxlLm1hcCgoKGUsdCk9PnRoaXMucmVuZGVySW1hZ2UoZSx0KSkpKX1yZW5kZXJXaXRoTmF0aXZlU3VwcG9ydCgpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoeix7b25DbGljazp0aGlzLmhhbmRsZUNsaWNrLHRhYkluZGV4OiItMSJ9LHRoaXMuc3RhdGUuc2tpbnRvbmVFbW9qaVRvU2hvdz90aGlzLnJlbmRlclNraW5Ub25lUGlja2VyKCk6bnVsbCx0aGlzLnJlbmRlckVtb2ppUGlja2VyKCkpfXJlbmRlcigpe3JldHVybiB0aGlzLnN0YXRlLmhhc05hdGl2ZUVtb2ppU3VwcG9ydD90aGlzLnJlbmRlcldpdGhOYXRpdmVTdXBwb3J0KCk6dGhpcy5yZW5kZXJXaXRob3V0TmF0aXZlU3VwcG9ydCgpfX1FbW9qaVBpY2tlci5wcm9wVHlwZXM9e29uRW1vamlDbGljazpjKCkuZnVuYy5pc1JlcXVpcmVkfTt2YXIgZWU9bigzODczMyksdGU9big1MDA1NCksbmU9big4NzExMSk7Y29uc3QgcmU9KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZWg3ZG15MjAifSkoe25hbWU6ImpscmpzMiIsc3R5bGVzOiJ3aWR0aDozMzBweDtoZWlnaHQ6MjYwcHg7In0pLGllPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImVoN2RteTIxIn0pKHtuYW1lOiIxdTNub3JmIixzdHlsZXM6ImZsb2F0OmxlZnQ7d2lkdGg6NTAlO2hlaWdodDoxNTBweDtwYWRkaW5nOjVweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7In0pLG9lPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImVoN2RteTIyIn0pKHtuYW1lOiIxMGp2dzdtIixzdHlsZXM6IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7Jjpob3Zlcntib3gtc2hhZG93OjAgMXB4IDNweCAwIHJnYmEoMCwwLDAsMC4zKTt9In0pLGFlPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImVoN2RteTIzIn0pKHtuYW1lOiJjM2pxMjAiLHN0eWxlczoibWFyZ2luOjVweCAtNXB4O292ZXJmbG93OmhpZGRlbjsifSk7Y2xhc3MgR2lmUGlja2VyIGV4dGVuZHMgZC5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17cXVlcnk6bnVsbH0sdGhpcy5oYW5kbGVDbGljaz1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKX0sdGhpcy5oYW5kbGVTZWFyY2hJbnB1dENoYW5nZT0oMCx0ZS5YKSgoZT0+e3RoaXMuc2V0U3RhdGUoe3F1ZXJ5OmUudGFyZ2V0LnZhbHVlfSksdGhpcy5wcm9wcy5vblNlYXJjaEdpZnMoZS50YXJnZXQudmFsdWUpfSksMjAwKX1jb21wb25lbnREaWRNb3VudCgpe3RoaXMucHJvcHMub25TZWFyY2hHaWZzKCl9Y3JlYXRlSGFuZGxlR2lmQ2xpY2soZSl7cmV0dXJuIHQ9PnskKHtldmVudDp0LGV2ZW50SWRlbnRpZmllcjoic2VsZWN0X2dpZiIsb25DbGljazp0PT57dGhpcy5wcm9wcy5vbkdpZkNsaWNrKGUpLHQucHJldmVudERlZmF1bHQoKX19KX19cmVuZGVyR2lmKGUpe2NvbnN0IHQ9KDAsWi5JdSkoInNlbmQiKTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGllLHtrZXk6ZS51cmx9LGQuY3JlYXRlRWxlbWVudChvZSx7c3R5bGU6e2JhY2tncm91bmQ6YHVybCgke2UudXJsfSkgY2VudGVyIGNlbnRlciAvIGNvdmVyYH0sb25DbGljazp0aGlzLmNyZWF0ZUhhbmRsZUdpZkNsaWNrKGUpLCJhcmlhLWxhYmVsIjplLnRpdGxlP2Ake3R9ICR7ZS50aXRsZX0gZ2lmYDpgJHt0fSBnaWZgfSkpfXJlbmRlckZldGNoaW5nKCl7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChuZS5aLG51bGwpfXJlbmRlclJlc3VsdHMoKXtjb25zdHtmZXRjaGluZ0ZhaWxlZDplLGdpZnM6dH09dGhpcy5wcm9wcztyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGFlLG51bGwsZT9kLmNyZWF0ZUVsZW1lbnQocSxudWxsLCgwLFouSXUpKCJnaWZzX2xvYWRfZXJyb3IiKSk6bnVsbCxlfHwwIT09dC5sZW5ndGg/bnVsbDpkLmNyZWF0ZUVsZW1lbnQocSxudWxsLCgwLFouSXUpKCJub19naWZzX2ZvdW5kIikpLHQubWFwKChlPT50aGlzLnJlbmRlckdpZihlKSkpKX1yZW5kZXIoKXtjb25zdHtnaWZzOmV9PXRoaXMucHJvcHMse3F1ZXJ5OnR9PXRoaXMuc3RhdGU7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChyZSx7b25DbGljazp0aGlzLmhhbmRsZUNsaWNrLHRhYkluZGV4OiItMSJ9LGQuY3JlYXRlRWxlbWVudChILG51bGwsZC5jcmVhdGVFbGVtZW50KFcse25hbWU6ImdpZiIsYXV0b0ZvY3VzOiEwLHBsYWNlaG9sZGVyOigwLFouSXUpKCJzZWFyY2hfZ2lmIiksb25DaGFuZ2U6dGhpcy5oYW5kbGVTZWFyY2hJbnB1dENoYW5nZSxvbkJsdXI6Ty5BRiwiYXJpYS1sYWJlbCI6KDAsWi5JdSkoInNlYXJjaF9naWYiKX0pLGQuY3JlYXRlRWxlbWVudChTZWFyY2hSZXN1bHRzU3VtbWFyeSx7Y291bnQ6ZS5sZW5ndGgscXVlcnk6dH0pKSxkLmNyZWF0ZUVsZW1lbnQoVSx7b25XaGVlbDpDLlIyLCJhcmlhLWxpdmUiOiJwb2xpdGUifSx0aGlzLnByb3BzLmlzRmV0Y2hpbmc/dGhpcy5yZW5kZXJGZXRjaGluZygpOnRoaXMucmVuZGVyUmVzdWx0cygpKSl9fUdpZlBpY2tlci5wcm9wVHlwZXM9e2lzRmV0Y2hpbmc6YygpLmJvb2wuaXNSZXF1aXJlZCxnaWZzOmMoKS5hcnJheS5pc1JlcXVpcmVkLGZldGNoaW5nRmFpbGVkOmMoKS5ib29sLmlzUmVxdWlyZWQsb25TZWFyY2hHaWZzOmMoKS5mdW5jLmlzUmVxdWlyZWQsb25HaWZDbGljazpjKCkuZnVuYy5pc1JlcXVpcmVkfTt2YXIgc2U9big0NTUwNCk7ZnVuY3Rpb24gbGUoZSx0PSIiKXtyZXR1cm4obixyKT0+e24oY2UodCkpO2NvbnN0e3Nlc3Npb246aX09cigpO3JldHVybiBlLnNlYXJjaEdpZnMoaSx0KS50aGVuKChlPT57bihkZSh0LGUpKX0pKS5jYXRjaCgoKCk9PntuKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOnNlLmd5SixzZWFyY2hUZXJtOmV9fSh0KSl9KSl9fWZ1bmN0aW9uIGNlKGUpe3JldHVybnt0eXBlOnNlLnFpTSxzZWFyY2hUZXJtOmV9fWZ1bmN0aW9uIGRlKGUsdCl7cmV0dXJue3R5cGU6c2UubUd6LGdpZnM6dC5yZXN1bHRzLHNlYXJjaFRlcm06ZX19Y29uc3QgcGU9KDAsci5jb25uZWN0KSgoZT0+e2NvbnN0e2lzRmV0Y2hpbmc6dCxmZXRjaGluZ0ZhaWxlZDpuLGdpZnM6cn09ZS5naWZzO3JldHVybntpc0ZldGNoaW5nOnQsZmV0Y2hpbmdGYWlsZWQ6bixnaWZzOnJ9fSksKGU9Pih7b25TZWFyY2hHaWZzOih0PSIiKT0+e2UobGUoZWUuWlAsdCkpfX0pKSkoR2lmUGlja2VyKTt2YXIgdWU9big4MTgxMSk7Y2xhc3MgQ29tcG9zZXJQb3BvdmVyIGV4dGVuZHMgZC5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5hZGRlZEVzY0xpc3RlbmVyPSExLHRoaXMuaGFuZGxlRXNjPWU9Pntjb25zdHtvbkVzY2FwZUtleTp0fT10aGlzLnByb3BzOygwLEMuJG8pKGUpJiZ0KCl9fWNvbXBvbmVudERpZFVwZGF0ZSgpe2NvbnN0e2ZyYW1lV2luZG93OmUsb25Fc2NhcGVLZXk6dCxjaGlsZHJlbjpufT10aGlzLnByb3BzO2lmKGUmJnQpaWYobil7aWYodGhpcy5hZGRlZEVzY0xpc3RlbmVyKXJldHVybjsoMCxDLk9vKShlLCJrZXlkb3duIix0aGlzLmhhbmRsZUVzYyksdGhpcy5hZGRlZEVzY0xpc3RlbmVyPSEwfWVsc2UoMCxDLnhnKShlLCJrZXlkb3duIix0aGlzLmhhbmRsZUVzYyksdGhpcy5hZGRlZEVzY0xpc3RlbmVyPSExfXJlbmRlcigpe2NvbnN0e2NoaWxkcmVuOmUscG9wb3ZlclR5cGU6dCxpc0JvcmRlcmxlc3M6bixzaG91bGRIaWRlVXBsb2FkczpyfT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQodWUuVzMsbnVsbCxlP2QuY3JlYXRlRWxlbWVudCh1ZS5Ldix7Y2xhc3NOYW1lczoiaW50ZXJjb20tY29tcG9zZXItcG9wb3ZlciIsdGltZW91dDp7ZW50ZXI6MjAwLGV4aXQ6MjAwfX0sZC5jcmVhdGVFbGVtZW50KEcse2lzQm9yZGVybGVzczpufSxlLGQuY3JlYXRlRWxlbWVudChGLHtwb3BvdmVyVHlwZTp0LGlzQm9yZGVybGVzczpuLHNob3VsZEhpZGVVcGxvYWRzOnJ9KSkpOm51bGwpfX12YXIgbWU9big4MzU2MiksaGU9big1OTMzOSksZ2U9big0ODcyMSk7Y29uc3QgZmU9KDAsZy5aUCkoImRpdiIse3RhcmdldDoiZTE4anF2bHcwIn0pKCJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3BhZGRpbmc6MCAiLDI1LCJweDtmb250LXNpemU6MTRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOyIsRy5jbGFzc05hbWUsIntib3R0b206NTVweDsiLFcuY2xhc3NOYW1lLCJ7cGFkZGluZy1sZWZ0OiIsMjUsInB4O319bGFiZWx7Y29sb3I6IiwoMCxnLnJTKSgiaW5zdGFsbFJlZCIpLCI7fSIsKCh7dGhlbWU6ZSxzaG91bGRTaG93U21hbGxTdGF0ZVVwZnJvbnRFbWFpbENvbXBvc2VyOnR9KT0+dCYmKDAsZy5pdikoImJveC1zaGFkb3c6IixlLmNvbXBvc2VyU2hhZG93Q29sb3IsIiAtMXB4IC00cHggMjBweCAzcHg7bWluLWhlaWdodDoyMDBweDtoZWlnaHQ6MjAwcHggIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDsiKSkpLHhlPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxOGpxdmx3MSJ9KSh7bmFtZToiZGYxd2puIixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3JpZ2h0OjE2cHg7In0pLHZlPSgwLGcuWlApKGdlLkdLLHt0YXJnZXQ6ImUxOGpxdmx3MiJ9KSgoKHt0aGVtZTplLGRpc2FibGVkOnR9KT0+dCYmKDAsZy5pdikoImN1cnNvcjphdXRvO3N2Z3tvcGFjaXR5OjAuNjU7Y3Vyc29yOmF1dG87cGF0aHtjdXJzb3I6YXV0bztmaWxsOiIsZS5ncmV5LCI7fX0mOmhvdmVye29wYWNpdHk6MC44O30iKSksIiAiLCgoe3RoZW1lOmUsaXNQcmltYXJ5Q29sb3JSZWFkYWJsZTp0fSk9PiF0JiYoMCxnLml2KSgic3Zne3BhdGh7ZmlsbDoiLGUuZ3JleSwiO319Jjpob3ZlcntvcGFjaXR5OjAuNjU7fSIpKSkseWU9KHt0aGVtZTplfSk9PigwLGcuaXYpKCJwYWRkaW5nLXRvcDoyMHB4OyY6OnBsYWNlaG9sZGVye2NvbG9yOiIsZS5ncmV5LCI7fSIpO3ZhciBiZT17bmFtZToib3JxZjE5IixzdHlsZXM6ImhlaWdodDo3MHB4OyJ9LEVlPXtuYW1lOiI4YXRxaGIiLHN0eWxlczoid2lkdGg6MTAwJTsifTtjb25zdCBrZT0oMCxnLlpQKSgidGV4dGFyZWEiLHt0YXJnZXQ6ImUxOGpxdmx3MyJ9KSh5ZSwiIGxpbmUtaGVpZ2h0OjEuMzM7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTpzY3JvbGw7ZmxleDoxO21hcmdpbjowIDAgNTBweCAwO3dpZHRoOmNhbGMoMTAwJSArICIsMjUsInB4KTtyZXNpemU6bm9uZTsiLCgoe3RoZW1lOmV9KT0+IWUudmlzaWJsZVNjcm9sbEJhcnMmJkVlKSwiICIsKCh7c21hbGw6ZX0pPT5lJiZiZSkpLENlPSgwLGcuWlApKCJpbnB1dCIse3RhcmdldDoiZTE4anF2bHc0In0pKHllLCIgd2lkdGg6MTAwJTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAiLCgwLGcuclMpKCJsaWdodEdyZXkzIiksIjtwYWRkaW5nLWJvdHRvbToxNnB4OyIsKCh7dGhlbWU6ZSxoYXNFcnJvcjp0fSk9PnQmJigwLGcuaXYpKCJib3JkZXItYm90dG9tOjFweCBzb2xpZCAiLGUuaW5zdGFsbFJlZCwiO21hcmdpbi1ib3R0b206NnB4OyIpKSksd2U9KDAsZy5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxOGpxdmx3NSJ9KSgiY29sb3I6IiwoMCxnLnJTKSgiaW5zdGFsbFJlZCIpLCI7Iik7dmFyIFNlPW4oMjkyNTgpO2Z1bmN0aW9uIFBlKCl7cmV0dXJuIFBlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sUGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNsYXNzIFVwZnJvbnRFbWFpbENvbXBvc2VyIGV4dGVuZHMgZC5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuZW1haWxJbnB1dD12b2lkIDAsdGhpcy5lbWFpbEZvY3VzVGltZW91dD1udWxsLHRoaXMuc3RhdGU9e2lzVGV4dGFyZWFGb2N1c2VkOiExfSx0aGlzLnJlbmRlclNlbmRCdXR0b249KCk9Pntjb25zdHtpc1ByaW1hcnlDb2xvclJlYWRhYmxlOmV9PXRoaXMuY29udGV4dHx8e30se3NlbmRCdXR0b25EaXNhYmxlZDp0LG9uU2VuZE1lc3NhZ2VDbGljazpufT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQodmUse29uQ2xpY2s6bixkaXNhYmxlZDp0LGlzUHJpbWFyeUNvbG9yUmVhZGFibGU6ZSwiYXJpYS1sYWJlbCI6KDAsWi5JdSkoInNlbmRfYV9tZXNzYWdlIil9LGQuY3JlYXRlRWxlbWVudChTZS5KTyx7dHlwZToiQ29tcG9zZXJTZW5kIixzaXplOjE2fSkpfSx0aGlzLnJlbmRlckVtb2ppUGlja2VyQnV0dG9uPSgpPT57Y29uc3R7aXNQcmltYXJ5Q29sb3JSZWFkYWJsZTplfT10aGlzLmNvbnRleHR8fHt9LHtzaG93RW1vamlQaWNrZXI6dCxvbkVtb2ppUGlja2VyVG9nZ2xlOm59PXRoaXMucHJvcHMse2lzVGV4dGFyZWFGb2N1c2VkOnJ9PXRoaXMuc3RhdGU7cmV0dXJuIHI/ZC5jcmVhdGVFbGVtZW50KGdlLkR5LHtjbGFzc05hbWU6ImludGVyY29tLWNvbXBvc2VyLWVtb2ppLWJ1dHRvbiIsb25DbGljazpuLHNob3dFbW9qaVBpY2tlcjp0LCJhcmlhLWxhYmVsIjooMCxaLkl1KSgiZW1vamlfcGlja2VyIiksaXNQcmltYXJ5Q29sb3JSZWFkYWJsZTplfSxkLmNyZWF0ZUVsZW1lbnQoU2UuSk8se3R5cGU6dD8iQ29tcG9zZXJFbW9qaUFjdGl2ZSI6IkNvbXBvc2VyRW1vamkiLHNpemU6MTZ9KSk6bnVsbH0sdGhpcy5yZW5kZXJFbW9qaVBpY2tlcj0oKT0+e2NvbnN0e3Nob3dFbW9qaVBpY2tlcjplLG9uRW1vamlDbGljazp0LG9uRW1vamlQaWNrZXJUb2dnbGU6bixmcmFtZVdpbmRvdzpyfT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoQ29tcG9zZXJQb3BvdmVyLHtmcmFtZVdpbmRvdzpyLG9uRXNjYXBlS2V5Om4scG9wb3ZlclR5cGU6ImVtb2ppIn0sZT9kLmNyZWF0ZUVsZW1lbnQoRW1vamlQaWNrZXIse29uRW1vamlDbGljazp0fSk6bnVsbCl9LHRoaXMucmVuZGVyRXJyb3JNZXNzYWdlPSgpPT57Y29uc3R7ZXJyb3JNZXNzYWdlOmV9PXRoaXMucHJvcHM7cmV0dXJuIGU/ZC5jcmVhdGVFbGVtZW50KHdlLG51bGwsZSk6bnVsbH0sdGhpcy5yZW5kZXJFbWFpbElucHV0PSgpPT57Y29uc3R7ZW1haWw6ZSxvbkVtYWlsQ2hhbmdlOnQsZXJyb3JNZXNzYWdlOm59PXRoaXMucHJvcHMscj1uP3siYXJpYS1pbnZhbGlkIjohMH06e307cmV0dXJuIGQuY3JlYXRlRWxlbWVudChDZSxQZSh7bmFtZToiZW1haWwiLHJlZjplPT57dGhpcy5lbWFpbElucHV0PWV9LG9uQ2hhbmdlOnQsdmFsdWU6ZSx0eXBlOiJlbWFpbCIsYXV0b0NvbXBsZXRlOiJlbWFpbCIscGxhY2Vob2xkZXI6bWUudCwiYXJpYS1sYWJlbCI6KDAsWi5JdSkoInlvdXJfZW1haWwiKSxvbkZvY3VzOnRoaXMuaGFuZGxlRW1haWxJbnB1dEZvY3VzLG9uQmx1cjpPLkFGLGhhc0Vycm9yOiEhbn0scikpfSx0aGlzLnJlbmRlck1lc3NhZ2VUZXh0QXJlYT0oKT0+e2NvbnN0e21lc3NhZ2U6ZSxzZXRUZXh0SW5wdXQ6dCxvbk1lc3NhZ2VDaGFuZ2U6bixvbkN1cnNvclJlcG9zaXRpb246cixvbldoZWVsOmksc2hvdWxkU2hvd1NtYWxsU3RhdGVVcGZyb250RW1haWxDb21wb3NlcjpvfT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoa2Use25hbWU6Im1lc3NhZ2UiLHJlZjplPT50KGUpLHZhbHVlOmUscGxhY2Vob2xkZXI6KDAsWi5JdSkoIndyaXRlX3lvdXJfbWVzc2FnZSIpLCJhcmlhLWxhYmVsIjooMCxaLkl1KSgieW91cl9tZXNzYWdlIiksb25DaGFuZ2U6bixvbktleVVwOnIsb25DbGljazpyLG9uV2hlZWw6aSxvbkZvY3VzOnRoaXMuaGFuZGxlVGV4dGFyZWFGb2N1cyxvbkJsdXI6Ty5BRixzbWFsbDpvfSl9LHRoaXMuaGFuZGxlRW1haWxJbnB1dEZvY3VzPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNUZXh0YXJlYUZvY3VzZWQ6ITF9KX0sdGhpcy5oYW5kbGVUZXh0YXJlYUZvY3VzPSgpPT57dGhpcy5zZXRTdGF0ZSh7aXNUZXh0YXJlYUZvY3VzZWQ6ITB9KX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLnRvZ2dsZVVwZnJvbnRFbWFpbENvbGxlY3RvclN0YXRlKCl9Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmVtYWlsRm9jdXNUaW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5lbWFpbElucHV0JiZ0aGlzLmVtYWlsSW5wdXQuZm9jdXMoKX0pLDApfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5wcm9wcy50b2dnbGVVcGZyb250RW1haWxDb2xsZWN0b3JTdGF0ZSgpLHRoaXMuZW1haWxGb2N1c1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmVtYWlsRm9jdXNUaW1lb3V0KX1yZW5kZXIoKXtjb25zdHtoZWFkZXJIZWlnaHQ6ZSxzZXRDb21wb3Nlcjp0LHNob3VsZFNob3dTbWFsbFN0YXRlVXBmcm9udEVtYWlsQ29tcG9zZXI6bn09dGhpcy5wcm9wcztyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGZlLHtzdHlsZTp7aGVpZ2h0OmBjYWxjKDEwMHZoIC0gJHtlfXB4KWB9LHJlZjplPT50KGUpLHNob3VsZFNob3dTbWFsbFN0YXRlVXBmcm9udEVtYWlsQ29tcG9zZXI6bn0sdGhpcy5yZW5kZXJFbWFpbElucHV0KCksdGhpcy5yZW5kZXJFcnJvck1lc3NhZ2UoKSx0aGlzLnJlbmRlck1lc3NhZ2VUZXh0QXJlYSgpLHRoaXMucmVuZGVyRW1vamlQaWNrZXIoKSxkLmNyZWF0ZUVsZW1lbnQoeGUsbnVsbCx0aGlzLnJlbmRlckVtb2ppUGlja2VyQnV0dG9uKCksdGhpcy5yZW5kZXJTZW5kQnV0dG9uKCkpKX19VXBmcm9udEVtYWlsQ29tcG9zZXIuZGVmYXVsdFByb3BzPXtlbWFpbDoiIixtZXNzYWdlOiIiLGRpc2FibGVkOiExLHNob3dFbW9qaVBpY2tlcjohMX0sVXBmcm9udEVtYWlsQ29tcG9zZXIuY29udGV4dFR5cGU9aGUuTmk7dmFyIFRlPW4oOTg5MDkpLFplPW4oNDEyNTQpLEllPW4oOTczNjYpLGplPW4oNDM3NDUpO2NvbnN0IF9lPSgwLGcuWlApKCJkaXYiLHt0YXJnZXQ6ImUxd2FwbjE5MCJ9KSgiYm94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93LXg6aGlkZGVuO3dpZHRoOjMzMHB4O2hlaWdodDoyNjBweDtwYWRkaW5nOiIsMTAsInB4IDBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzowO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Zm9udC1zaXplOiIsMTQsInB4OyIpLE9lPSgwLGcuWlApKCJzcGFuIix7dGFyZ2V0OiJlMXdhcG4xOTEifSkoInBhZGRpbmc6IiwxMCwicHggMjBweDsmLCp7Y3Vyc29yOnBvaW50ZXI7fSY6aG92ZXJ7YmFja2dyb3VuZDoiLCgwLGcuclMpKCJiYWNrZ3JvdW5kSG92ZXIiKSwiO30iKSxBZT0oMCxnLlpQKSgic3BhbiIse3RhcmdldDoiZTF3YXBuMTkyIn0pKCJwYWRkaW5nOiIsMTAsInB4IDIwcHg7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGcuclMpKCJiYWNrZ3JvdW5kSG92ZXIiKSwiOyIpLEJlPSgwLGcuWlApKCJzcGFuIix7dGFyZ2V0OiJlMXdhcG4xOTMifSkoe25hbWU6Imx2eXU1aiIsc3R5bGVzOiJtYXJnaW4tcmlnaHQ6MTBweDsifSksUmU9WyJEb3duIiwiQXJyb3dEb3duIiwiVXAiLCJBcnJvd1VwIiwiRW50ZXIiLCJUYWIiLCJFc2MiLCJFc2NhcGUiXSx6ZT0oe3R5cGVhaGVhZFN1Z2dlc3Rpb25zOmUsZnJhbWVXaW5kb3c6dCxvblNlbGVjdDpufSk9Pntjb25zdCByPSgwLGQudXNlUmVmKShudWxsKSxbaSxvXT0oMCxkLnVzZVN0YXRlKSgwKSxhPSgwLGQudXNlUmVmKShpKSxzPSgwLGQudXNlQ2FsbGJhY2spKChlPT57YS5jdXJyZW50PWUsbyhlKX0pLFtdKSxsPSgwLGQudXNlQ2FsbGJhY2spKChlPT57Y29uc3QgdD0xMCszNCplO3IuY3VycmVudC5zY3JvbGxUbygwLHQpfSksW3JdKSxjPSgwLGQudXNlQ2FsbGJhY2spKCh0PT57bGV0IHIsaTtzd2l0Y2godC5rZXkpe2Nhc2UiRG93biI6Y2FzZSJBcnJvd0Rvd24iOnI9TWF0aC5taW4oYS5jdXJyZW50KzEsZS5sZW5ndGgtMSkscyhyKSxsKHIpO2JyZWFrO2Nhc2UiVXAiOmNhc2UiQXJyb3dVcCI6cj1NYXRoLm1heChhLmN1cnJlbnQtMSwwKSxzKHIpLGwocik7YnJlYWs7Y2FzZSJFbnRlciI6Y2FzZSJUYWIiOmk9ZVthLmN1cnJlbnRdLG4oaS5lbW9qaSl9fSksW2EsbixsLHMsZV0pO3JldHVybigwLGQudXNlRWZmZWN0KSgoKCk9PigoMCxDLk9vKSh0LCJrZXlkb3duIixjKSwoKT0+eygwLEMueGcpKHQsImtleWRvd24iLGMpfSkpLFt0LGNdKSxkLmNyZWF0ZUVsZW1lbnQoX2Use3JlZjpyLHRhYkluZGV4Oi0xLCJkYXRhLXRlc3RpZCI6ImVtb2ppLXR5cGVhaGVhZC1zdWdnZXN0aW9ucyJ9LGUubWFwKCgoZSx0KT0+e2NvbnN0IHI9dD09PWEuY3VycmVudD9BZTpPZTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KHIse2tleTpgZW1vamktJHtlLnRpdGxlfWAsb25DbGljazooKT0+bihlLmVtb2ppKX0sZC5jcmVhdGVFbGVtZW50KEJlLG51bGwsZS5lbW9qaSksZS50aXRsZSl9KSkpfTt2YXIgTmU9big0MTYwOSksTWU9bi5uKE5lKSxEZT1uKDEzMzExKSxMZT1uLm4oRGUpLEdlPW4oMzUyMiksRmU9bi5uKEdlKTtmdW5jdGlvbiBxZShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gSGUoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWNvbnN0IFdlPSI6IjtmdW5jdGlvbiBVZShlLHQsbixyKXtjb25zdCBpPXQtbi5sZW5ndGgtMSxvPWUuc3Vic3RyaW5nKDAsTWF0aC5tYXgoMCxpKSkrZS5zdWJzdHJpbmcodCk7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP3FlKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7SGUoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnFlKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfSh7dGV4dDooMCxDLmZmKShvLHIsaSksY3Vyc29yUG9zaXRpb246aStyLmxlbmd0aH0se2Vtb2ppVHlwZWFoZWFkU3RhdGU6e2lzQWN0aXZlOiExLHN1Z2dlc3Rpb25zOltdLGN1cnJlbnRUeXBlYWhlYWRUZXJtOm51bGx9fSl9Y29uc3QgVmU9ZT0+e3RyeXtyZXR1cm4oZT0+e2NvbnN0IHQ9KDAsUC5Ibykoe3VzZUZhbGxiYWNrOiEwfSksbj0oMCxDLk55KShlLnRhcmdldCkscj1lLnRhcmdldC52YWx1ZSxpPW5ldyBSZWdFeHAoYCR7V2V9KD88aWRlbnRpZmllcj5bXlxccyR7V2V9XXsyLH0pKD88dGVybWluYXRvcj5bJHtXZX1dKT9gLCJnaSIpO2xldCBvPW51bGwsYT1udWxsLHM9bnVsbDtmb3IoO251bGwhPShvPWkuZXhlYyhyKSk7KXtjb25zdHtpbmRleDplLGdyb3Vwczp0fT1vO2lmKGU+bilicmVhaztjb25zdHtpZGVudGlmaWVyOnIsdGVybWluYXRvcjppfT10O2lmKGkmJihzPWkpLG49PT1lKzErci5sZW5ndGgrKHM/cy5sZW5ndGg6MCkpe2E9cjticmVha319aWYoIWEpcmV0dXJue2Vtb2ppVHlwZWFoZWFkU3RhdGU6e2lzQWN0aXZlOiExLHN1Z2dlc3Rpb25zOltdLGN1cnJlbnRUeXBlYWhlYWRUZXJtOm51bGx9fTtpZihzKXt2YXIgbDtjb25zdCBlPW51bGw9PT0obD1MZSgpKHQsKGU9PmE9PT1lLnRpdGxlKSkpfHx2b2lkIDA9PT1sP3ZvaWQgMDpsLmVtb2ppO3JldHVybiBlP1VlKHIsbixgJHthfSR7c31gLGUpOntlbW9qaVR5cGVhaGVhZFN0YXRlOntpc0FjdGl2ZTohMSxzdWdnZXN0aW9uczpbXSxjdXJyZW50VHlwZWFoZWFkVGVybTpudWxsfX19Y29uc3QgYz1uZXcgUmVnRXhwKGBeJHtGZSgpKGEpfWAsImkiKSxkPXQuZmlsdGVyKChlPT5jLnRlc3QoZS50aXRsZSkpKTtyZXR1cm57ZW1vamlUeXBlYWhlYWRTdGF0ZTp7aXNBY3RpdmU6IU1lKCkoZCksc3VnZ2VzdGlvbnM6ZCxjdXJyZW50VHlwZWFoZWFkVGVybTphfX19KShlKX1jYXRjaChlKXtyZXR1cm57ZW1vamlUeXBlYWhlYWRTdGF0ZTp7aXNBY3RpdmU6ITEsc3VnZ2VzdGlvbnM6W10sY3VycmVudFR5cGVhaGVhZFRlcm06bnVsbH19fX07dmFyICRlPW4oODI1NSk7ZnVuY3Rpb24gS2UoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFllKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP0tlKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7SmUoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOktlKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIEplKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1jbGFzcyBDb21wb3NlciBleHRlbmRzIGQuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnN0YXRlPVllKHt0ZXh0OnRoaXMucHJvcHMuZGVmYXVsdFRleHR8fCIiLGVtYWlsOiIiLGVycm9yTWVzc2FnZToiIixwcmV2UHJvcHM6dGhpcy5wcm9wc30se2Vtb2ppVHlwZWFoZWFkU3RhdGU6e2lzQWN0aXZlOiExLHN1Z2dlc3Rpb25zOltdLGN1cnJlbnRUeXBlYWhlYWRUZXJtOm51bGx9fSksdGhpcy50ZXh0SGFzQ2hhbmdlZD0oe3RleHQ6ZX0pPT5lIT09dGhpcy5zdGF0ZS50ZXh0LHRoaXMuaXNTdWJtaXNzaW9uRGlzYWJsZWQ9KCk9Pntjb25zdHtjb252ZXJzYXRpb246ZX09dGhpcy5wcm9wcztpZighZSlyZXR1cm4hMTtjb25zdHtwYXJ0czp0LGlkOm59PWUscj10LmZpbHRlcigoZT0+ImJvdF9pbnRybyIhPT1lLnBhcnRUeXBlKSk7cmV0dXJuKCFyfHwwIT09ci5sZW5ndGgpJiYhbn0sdGhpcy5oYW5kbGVUZXh0SW5wdXRDaGFuZ2U9ZT0+e2NvbnN0IHQ9KGU9Pih7dGV4dDplLnRhcmdldC52YWx1ZSxjdXJzb3JQb3NpdGlvbjooMCxDLk55KShlLnRhcmdldCl9KSkoZSksbj10LmN1cnNvclBvc2l0aW9uO09iamVjdC5hc3NpZ24odCxWZShlKXx8e30pO2NvbnN0IHI9dC5jdXJzb3JQb3NpdGlvbjt0aGlzLnNldFN0YXRlKChlPT5ZZShZZSh7fSxlKSx0KSksKCgpPT57dGhpcy5oYW5kbGVDaGFuZ2UoKSxuIT09ciYmdGhpcy5mb2N1cygpfSkpfSx0aGlzLmhhbmRsZUtleURvd249ZT0+e2NvbnN0e2Vtb2ppVHlwZWFoZWFkU3RhdGU6dH09dGhpcy5zdGF0ZTtpZih0LmlzQWN0aXZlJiYtMSE9PVJlLmluZGV4T2YoZS5rZXkpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksIkVzY2FwZSIhPT1lLmtleSYmIkVzYyIhPT1lLmtleXx8KHRoaXMuc2V0U3RhdGUoe2Vtb2ppVHlwZWFoZWFkU3RhdGU6e2lzQWN0aXZlOiExLHN1Z2dlc3Rpb25zOltdLGN1cnJlbnRUeXBlYWhlYWRUZXJtOm51bGx9fSksZS5zdG9wUHJvcGFnYXRpb24oKSksdGhpcy5oYW5kbGVUeXBpbmcoKSwhMTtjb25zdHtjb252ZXJzYXRpb246bn09dGhpcy5wcm9wcztpZihYZShlKSl7aWYodGhpcy5pc1N1Ym1pc3Npb25EaXNhYmxlZCgpKXRyeXtjb25zdHtwYXJ0czplfT1uLHtzYXZlU3RhdGU6dH09ZSYmZS5sZW5ndGgmJmVbMF07KDAsVi5XTSkoInN1Ym1pdHRlZCIsIm1lc3NhZ2UiLCJtZXNzZW5nZXIiLCJpbl9jb252ZXJzYXRpb24iLHtjb252ZXJzYXRpb25fc3RhdGU6dH0pfWNhdGNoKGUpe31lbHNlIHRoaXMuaGFuZGxlVGV4dFN1Ym1pdCgpO2UucHJldmVudERlZmF1bHQoKX1lbHNlIHRoaXMuaGFuZGxlVHlwaW5nKCl9LHRoaXMuaGFuZGxlVHlwaW5nPW8oKSgoKCk9Pnt0aGlzLnByb3BzLm9uVHlwaW5nKCl9KSwxZTMpLHRoaXMuaGFuZGxlR2lmQ2xpY2s9ZT0+e2NvbnN0e3VybDp0LHdpZHRoOm4saGVpZ2h0OnIsYXR0cmlidXRpb246aSx0aXRsZTpvfT1lO3RoaXMucHJvcHMub25TdWJtaXQoKDAsJGUuSVUpKHQsbixyLGksbykpLHRoaXMuaGFuZGxlR2lmUGlja2VyVG9nZ2xlKCl9LHRoaXMuaGFuZGxlQ3Vyc29yUmVwb3NpdGlvbj1lPT57Y29uc3QgdD1BcnJheS5mcm9tKG5ldyBBcnJheSg0KSwoKGUsdCk9PnQrMzcpKTsia2V5dXAiPT09ZS50eXBlJiZ0LmluZGV4T2YoZS5rZXlDb2RlKTwwfHx0aGlzLnNldFN0YXRlKHtjdXJzb3JQb3NpdGlvbjooMCxDLk55KSh0aGlzLnRleHRJbnB1dCl9KX0sdGhpcy5oYW5kbGVVcGxvYWRCdXR0b25DbGljaz1lPT57JCh7ZXZlbnQ6ZSxvbkNsaWNrOigpPT57dGhpcy5maWxlSW5wdXQuY2xpY2soKX19KX0sdGhpcy5oYW5kbGVFbW9qaVBpY2tlclRvZ2dsZT1lPT57aWYodGhpcy5zdGF0ZS5lbW9qaVR5cGVhaGVhZFN0YXRlLmlzQWN0aXZlKXJldHVybjskKHtldmVudDplLG9uQ2xpY2s6KCk9Pntjb25zdHtzaG93RW1vamlQaWNrZXI6ZSxvbkVtb2ppUGlja2VyVG9nZ2xlOnR9PXRoaXMucHJvcHM7dCgpLGUmJnRoaXMuZm9jdXMoKX0sZXZlbnRJZGVudGlmaWVyOiJ0b2dnbGVfZW1vamlfcGlja2VyIn0pfSx0aGlzLmhhbmRsZUVtb2ppQ2xpY2s9ZT0+e2NvbnN0e3RleHQ6dH09dGhpcy5zdGF0ZSxuPXRoaXMuc3RhdGUuY3Vyc29yUG9zaXRpb258fHQubGVuZ3RoLHI9bitlLmxlbmd0aCxpPSF0aGlzLmhhc1RleHQoKSxvPSgwLEMuZmYpKHQsZSxuKTt0aGlzLnNldFN0YXRlKHt0ZXh0Om8sY3Vyc29yUG9zaXRpb246cn0sKCgpPT57dGhpcy5oYW5kbGVFbW9qaVBpY2tlclRvZ2dsZSgpLGk/dGhpcy5oYW5kbGVUZXh0U3VibWl0KCk6dGhpcy5oYW5kbGVDaGFuZ2UoKX0pKX0sdGhpcy5oYW5kbGVHaWZQaWNrZXJUb2dnbGU9ZT0+eyQoe2V2ZW50OmUsb25DbGljazooKT0+e2NvbnN0e3Nob3dHaWZQaWNrZXI6ZSxvbkdpZlBpY2tlclRvZ2dsZTp0fT10aGlzLnByb3BzO3QoKSxlJiZ0aGlzLmZvY3VzKCl9LGV2ZW50SWRlbnRpZmllcjoidG9nZ2xlX2dpZl9waWNrZXIifSl9LHRoaXMuaGFuZGxlRmlsZVN1Ym1pdD1lPT57bGV0IHQ9ZTtlLnRhcmdldCYmKHQ9ZS50YXJnZXQuZmlsZXMpLHQmJjAhPT10Lmxlbmd0aCYmKHRoaXMuY3JlYXRlQXR0YWNobWVudFBhcnRzKHQpLHRoaXMuY2xlYXJGaWxlSW5wdXQoKSl9LHRoaXMuY3JlYXRlQmxvY2tzRm9ySW1hZ2VPckF0dGFjaG1lbnQ9ZT0+e2NvbnN0e29uU3VibWl0OnR9PXRoaXMucHJvcHM7KDAsVGUudmspKGUpLnRoZW4oKG49PntpZihuKXtjb25zdHt3aWR0aDpyLGhlaWdodDppLHNyYzpvfT1uLGE9KDAsWmUuU2cpKG4uc3JjLGUubmFtZSxlLnR5cGUpO3QoKDAsJGUuSVUpKG8scixpKSxhKX1lbHNle2NvbnN0e25hbWU6bix0eXBlOnIsc2l6ZTppfT1lO3QoKDAsJGUuX1QpKG4scixpKSxlKX19KSl9LHRoaXMuaGFuZGxlU3VibWl0QnV0dG9uQ2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZVRleHRTdWJtaXQoKX0sdGhpcy5oYW5kbGVGb2N1cz0oKT0+e2lmKCgwLFQuSzEpKCkpe2lmKHRoaXMucHJvcHMub25IZWFkZXJDb2xsYXBzZSgpLCgwLFQuZ24pKCkpcmV0dXJuO3NldFRpbWVvdXQoKCgpPT57dGhpcy5jb21wb3Nlci5zY3JvbGxJbnRvVmlldygpfSksMjAwKX19LHRoaXMuaGFuZGxlRW1haWxDaGFuZ2U9ZT0+e2NvbnN0e3ZhbHVlOnR9PWUuY3VycmVudFRhcmdldDt0aGlzLnNldFN0YXRlKHtlbWFpbDp0LGVycm9yTWVzc2FnZToiIn0pfSx0aGlzLmhhbmRsZVNlbmRNZXNzYWdlQ2xpY2s9KCk9Pntjb25zdHtlbWFpbDplLHRleHQ6dH09dGhpcy5zdGF0ZTt0aGlzLmhhc0VtYWlsQW5kTWVzc2FnZSgpJiYoKDAsSWUudikoZSk/KHRoaXMuc2V0U3RhdGUoe3RleHQ6IiJ9LHRoaXMuaGFuZGxlQ2hhbmdlKSx0aGlzLnByb3BzLm9uU3VibWl0KCgwLCRlLlE4KSh0KSxudWxsLG51bGwsZSkpOnRoaXMuc2V0U3RhdGUoe2Vycm9yTWVzc2FnZTooMCxaLkl1KSgidGhhdF9lbWFpbF9hZGRyZXNzX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0Iil9KSl9LHRoaXMuaGFuZGxlVXBmcm9udEVtb2ppQ2xpY2s9ZT0+e2NvbnN0e2N1cnNvclBvc2l0aW9uOnR9PXRoaXMuc3RhdGUsbj0oMCxDLmZmKSh0aGlzLnN0YXRlLnRleHQsZSx0KTt0aGlzLnNldFN0YXRlKHt0ZXh0Om59LCgoKT0+e3RoaXMuaGFuZGxlRW1vamlQaWNrZXJUb2dnbGUoKX0pKX0sdGhpcy5oYXNFbWFpbEFuZE1lc3NhZ2U9KCk9Pntjb25zdHtlbWFpbDplLHRleHQ6dH09dGhpcy5zdGF0ZTtyZXR1cm4gZS50cmltKCkubGVuZ3RoPjAmJnQudHJpbSgpLmxlbmd0aD4wfSx0aGlzLnNob3VsZEhpZGVVcGxvYWRzPSgpPT4hdGhpcy5zaG91bGRTaG93VXBsb2FkQnV0dG9uKCkmJiF0aGlzLmhhc1RleHQoKSx0aGlzLnNldFRleHRJbnB1dD1lPT57dGhpcy50ZXh0SW5wdXQ9ZX0sdGhpcy5zZXRDb21wb3Nlcj1lPT57dGhpcy5jb21wb3Nlcj1lfSx0aGlzLnJlbmRlclVwZnJvbnRFbWFpbENvbXBvc2VyPSgpPT57Y29uc3R7c2hvd0Vtb2ppUGlja2VyOmUsdG9nZ2xlVXBmcm9udEVtYWlsQ29sbGVjdG9yU3RhdGU6dCxoZWFkZXJIZWlnaHQ6bixjb252ZXJzYXRpb246cixmcmFtZVdpbmRvdzppfT10aGlzLnByb3BzLHt0ZXh0Om8sZW1haWw6YSxlcnJvck1lc3NhZ2U6c309dGhpcy5zdGF0ZSxsPXImJiEhci5pZDtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KFVwZnJvbnRFbWFpbENvbXBvc2VyLHtvbk1lc3NhZ2VDaGFuZ2U6dGhpcy5oYW5kbGVUZXh0SW5wdXRDaGFuZ2Usb25FbWFpbENoYW5nZTp0aGlzLmhhbmRsZUVtYWlsQ2hhbmdlLG9uQ3Vyc29yUmVwb3NpdGlvbjp0aGlzLmhhbmRsZUN1cnNvclJlcG9zaXRpb24sb25TZW5kTWVzc2FnZUNsaWNrOnRoaXMuaGFuZGxlU2VuZE1lc3NhZ2VDbGljayxvbkVtb2ppQ2xpY2s6dGhpcy5oYW5kbGVVcGZyb250RW1vamlDbGljayxvbkVtb2ppUGlja2VyVG9nZ2xlOnRoaXMuaGFuZGxlRW1vamlQaWNrZXJUb2dnbGUsb25XaGVlbDpDLlIyLHRvZ2dsZVVwZnJvbnRFbWFpbENvbGxlY3RvclN0YXRlOnQsc2V0VGV4dElucHV0OnRoaXMuc2V0VGV4dElucHV0LHNldENvbXBvc2VyOnRoaXMuc2V0Q29tcG9zZXIsc2hvd0Vtb2ppUGlja2VyOmUsbWVzc2FnZTpvLGVtYWlsOmEsZXJyb3JNZXNzYWdlOnMsc2VuZEJ1dHRvbkRpc2FibGVkOiF0aGlzLmhhc0VtYWlsQW5kTWVzc2FnZSgpLGhlYWRlckhlaWdodDpuLGZyYW1lV2luZG93Omksc2hvdWxkU2hvd1NtYWxsU3RhdGVVcGZyb250RW1haWxDb21wb3NlcjpsfSl9LHRoaXMucmVuZGVyVGV4dEFyZWE9KCk9Pntjb25zdHtwbGFjZWhvbGRlcjplfT10aGlzLnByb3BzLHt0ZXh0OnR9PXRoaXMuc3RhdGU7cmV0dXJuIGQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiLHtuYW1lOiJtZXNzYWdlIixyZWY6ZT0+dGhpcy50ZXh0SW5wdXQ9ZSx2YWx1ZTp0LHBsYWNlaG9sZGVyOmUsImFyaWEtbGFiZWwiOmUsb25DaGFuZ2U6dGhpcy5oYW5kbGVUZXh0SW5wdXRDaGFuZ2Usb25LZXlEb3duOnRoaXMuaGFuZGxlS2V5RG93bixvbktleVVwOnRoaXMuaGFuZGxlQ3Vyc29yUmVwb3NpdGlvbixvbkNsaWNrOnRoaXMuaGFuZGxlQ3Vyc29yUmVwb3NpdGlvbixvbkZvY3VzOnRoaXMuaGFuZGxlRm9jdXMsb25CbHVyOk8uQUYsb25XaGVlbDpudWxsLHRhYkluZGV4OiIwIn0pfX1jb21wb25lbnREaWRNb3VudCgpe2NvbnN0IGU9dGhpcy5jb21wb3NlciYmdGhpcy5jb21wb3Nlci5jbGllbnRIZWlnaHQ7dGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2UoZSksdGhpcy5tb3ZlQ2FyZXRUb0VuZE9mVGV4dCgpLCgwLFQuSzEpKCl8fHRoaXMucHJvcHMuaXNCb3JkZXJsZXNzfHx0aGlzLmZvY3VzKCksdGhpcy5jb250ZXh0JiZ0aGlzLmNvbnRleHQuc3Vic2NyaWJlJiYodGhpcy5jb250ZXh0LnN1YnNjcmliZSgiZm9jdXNDb21wb3NlciIsKCgpPT50aGlzLmZvY3VzKCkpKSx0aGlzLmNvbnRleHQuc3Vic2NyaWJlKCJlbXB0eUNvbXBvc2VyIiwoKCk9PnRoaXMuc2V0U3RhdGUoe3RleHQ6IiJ9LHRoaXMuaGFuZGxlQ2hhbmdlKSkpKSx0aGlzLnN0YXRlLnRleHQmJnRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5zdGF0ZS50ZXh0KX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLmhhbmRsZUhlaWdodENoYW5nZSh0aGlzLmNvbXBvc2VyLmNsaWVudEhlaWdodCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLmNvbnRleHQmJnRoaXMuY29udGV4dC5zdWJzY3JpYmUmJih0aGlzLmNvbnRleHQuc3Vic2NyaWJlKCJmb2N1c0NvbXBvc2VyIiwoKCk9Pm51bGwpKSx0aGlzLmNvbnRleHQuc3Vic2NyaWJlKCJlbXB0eUNvbXBvc2VyIiwoKCk9Pm51bGwpKSl9c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhlLHQpe2lmKCF0fHxzKCkoZSx0LnByZXZQcm9wcykpcmV0dXJuIG51bGw7Y29uc3R7ZGVmYXVsdFRleHQ6bn09dC5wcmV2UHJvcHM7cmV0dXJuKGUuZGVmYXVsdFRleHR8fChyPWUuZGVmYXVsdFRleHQsL15ccyokLy50ZXN0KHIpKSkmJmUuZGVmYXVsdFRleHQhPT1uP3t0ZXh0OmUuZGVmYXVsdFRleHQscHJldlByb3BzOmV9OntwcmV2UHJvcHM6ZX07dmFyIHJ9aGFuZGxlSGVpZ2h0Q2hhbmdlKGUpe2NvbnN0e29uSGVpZ2h0Q2hhbmdlOnR9PXRoaXMucHJvcHM7dCYmdChlKX1jcmVhdGVBdHRhY2htZW50UGFydHMoZSl7ZS5sZW5ndGg+NT8oMCxWLmJrKSgiYXR0YWNobWVudF9saW1pdF9leGNlZWRlZCIse2ZpbGVfY291bnQ6ZS5sZW5ndGgscGxhY2U6ImNvbXBvc2VyIn0pOkFycmF5LmZyb20oZSkuZm9yRWFjaCgoZT0+dGhpcy5jcmVhdGVCbG9ja3NGb3JJbWFnZU9yQXR0YWNobWVudChlKSkpfWhhbmRsZVRleHRTdWJtaXQoKXt0aGlzLmhhc1RleHQoKSYmKHRoaXMucHJvcHMub25TdWJtaXQoKDAsJGUuUTgpKHRoaXMuc3RhdGUudGV4dCkpLHRoaXMuc2V0U3RhdGUoe3RleHQ6IiJ9LHRoaXMuaGFuZGxlQ2hhbmdlKSl9aGFuZGxlQ2hhbmdlKCl7dGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnN0YXRlLnRleHQpfWhhbmRsZVNlbGVjdEVtb2ppVHlwZWFoZWFkU3VnZ2VzdGlvbihlKXtjb25zdHt0ZXh0OnQsY3Vyc29yUG9zaXRpb246bn09dGhpcy5zdGF0ZSx7Y3VycmVudFR5cGVhaGVhZFRlcm06cn09dGhpcy5zdGF0ZS5lbW9qaVR5cGVhaGVhZFN0YXRlLGk9VWUodCxuLHIsZSk7dGhpcy5zZXRTdGF0ZSgoZT0+WWUoWWUoe30sZSksaSkpLCgoKT0+e3RoaXMuaGFuZGxlQ2hhbmdlKCksdGhpcy5mb2N1cygpfSkpfWNsZWFyRmlsZUlucHV0KCl7dGhpcy5maWxlSW5wdXQmJih0aGlzLmZpbGVJbnB1dC52YWx1ZT1udWxsKX1mb2N1cygpe2NvbnN0e2N1cnNvclBvc2l0aW9uOmV9PXRoaXMuc3RhdGU7KDAsQy5vcCkodGhpcy50ZXh0SW5wdXQsZSl9aGFzVGV4dCgpe3JldHVybiB0aGlzLnN0YXRlLnRleHQudHJpbSgpLmxlbmd0aD4wfXNob3VsZFNob3dVcGxvYWRCdXR0b24oKXtyZXR1cm4oMCxULnRlKSgpJiZ0aGlzLnByb3BzLnNob3dVcGxvYWRCdXR0b24mJiF0aGlzLmhhc1RleHQoKX1tb3ZlQ2FyZXRUb0VuZE9mVGV4dCgpe3RoaXMuaGFzVGV4dCgpJiYoMCxDLm9wKSh0aGlzLnRleHRJbnB1dCx0aGlzLnN0YXRlLnRleHQubGVuZ3RoKX1yZW5kZXJVcGxvYWRCdXR0b24oKXtjb25zdHthbGxvd011bHRpcGxlVXBsb2FkczplfT10aGlzLnByb3BzO3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZ2UuX24se2NsYXNzTmFtZToiaW50ZXJjb20tY29tcG9zZXItdXBsb2FkLWJ1dHRvbiIsb25DbGljazp0aGlzLmhhbmRsZVVwbG9hZEJ1dHRvbkNsaWNrLCJhcmlhLWxhYmVsIjooMCxaLkl1KSgidXBsb2FkX2F0dGFjaG1lbnQiKX0sZC5jcmVhdGVFbGVtZW50KFNlLkpPLHt0eXBlOiJDb21wb3NlckF0dGFjaG1lbnQiLHNpemU6MTZ9KSxkLmNyZWF0ZUVsZW1lbnQoImlucHV0Iix7cmVmOmU9PnRoaXMuZmlsZUlucHV0PWUsdHlwZToiZmlsZSIsbXVsdGlwbGU6ZSxkaXNhYmxlZDp0aGlzLmlzU3VibWlzc2lvbkRpc2FibGVkKCksb25DaGFuZ2U6dGhpcy5oYW5kbGVGaWxlU3VibWl0LHN0eWxlOntkaXNwbGF5OiJub25lIn0sImRhdGEtdGVzdGlkIjoiY29tcG9zZXItZmlsZS1pbnB1dCJ9KSl9cmVuZGVyRW1vamlQaWNrZXJCdXR0b24oKXtjb25zdHtzaG93RW1vamlQaWNrZXI6ZSxpc1ByaW1hcnlDb2xvclJlYWRhYmxlOnR9PXRoaXMucHJvcHM7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChnZS5EeSx7Y2xhc3NOYW1lOiJpbnRlcmNvbS1jb21wb3Nlci1lbW9qaS1idXR0b24iLGRpc2FibGVkOnRoaXMuaXNTdWJtaXNzaW9uRGlzYWJsZWQoKSxvbkNsaWNrOnRoaXMuaGFuZGxlRW1vamlQaWNrZXJUb2dnbGUsImFyaWEtZGlzYWJsZWQiOnRoaXMuaXNTdWJtaXNzaW9uRGlzYWJsZWQoKSwiYXJpYS1sYWJlbCI6KDAsWi5JdSkoImVtb2ppX3BpY2tlciIpLHNob3dFbW9qaVBpY2tlcjplLGlzUHJpbWFyeUNvbG9yUmVhZGFibGU6dH0sZC5jcmVhdGVFbGVtZW50KFNlLkpPLHt0eXBlOmU/IkNvbXBvc2VyRW1vamlBY3RpdmUiOiJDb21wb3NlckVtb2ppIixzaXplOjE2fSkpfXJlbmRlckVtb2ppUGlja2VyKCl7Y29uc3R7ZnJhbWVXaW5kb3c6ZSxzaG93RW1vamlQaWNrZXI6dCxpc0JvcmRlcmxlc3M6bn09dGhpcy5wcm9wcztyZXR1cm4gZC5jcmVhdGVFbGVtZW50KENvbXBvc2VyUG9wb3Zlcix7b25Fc2NhcGVLZXk6dGhpcy5oYW5kbGVFbW9qaVBpY2tlclRvZ2dsZSxmcmFtZVdpbmRvdzplLGlzQm9yZGVybGVzczpuLHNob3VsZEhpZGVVcGxvYWRzOnRoaXMuc2hvdWxkSGlkZVVwbG9hZHMoKSxwb3BvdmVyVHlwZToiZW1vamkifSx0P2QuY3JlYXRlRWxlbWVudChFbW9qaVBpY2tlcix7b25FbW9qaUNsaWNrOnRoaXMuaGFuZGxlRW1vamlDbGlja30pOm51bGwpfXJlbmRlclR5cGVhaGVhZFN1Z2dlc3Rpb25zKCl7Y29uc3R7ZnJhbWVXaW5kb3c6ZSxpc0JvcmRlcmxlc3M6dH09dGhpcy5wcm9wcyx7aXNBY3RpdmU6bixzdWdnZXN0aW9uczpyLGN1cnJlbnRUeXBlYWhlYWRUZXJtOml9PXRoaXMuc3RhdGUuZW1vamlUeXBlYWhlYWRTdGF0ZTtyZXR1cm4gZC5jcmVhdGVFbGVtZW50KENvbXBvc2VyUG9wb3Zlcix7ZnJhbWVXaW5kb3c6ZSxpc0JvcmRlcmxlc3M6dCxzaG91bGRIaWRlVXBsb2Fkczp0aGlzLnNob3VsZEhpZGVVcGxvYWRzKCkscG9wb3ZlclR5cGU6ImVtb2ppIn0sbj9kLmNyZWF0ZUVsZW1lbnQoemUse2ZyYW1lV2luZG93OmUsdHlwZWFoZWFkU3VnZ2VzdGlvbnM6cixrZXk6YGVtb2ppLXR5cGVhaGVhZC0ke2l9YCxvblNlbGVjdDp0aGlzLmhhbmRsZVNlbGVjdEVtb2ppVHlwZWFoZWFkU3VnZ2VzdGlvbi5iaW5kKHRoaXMpfSk6bnVsbCl9cmVuZGVyR2lmUGlja2VyQnV0dG9uKCl7Y29uc3R7c2hvd0dpZlBpY2tlcjplLGlzUHJpbWFyeUNvbG9yUmVhZGFibGU6dH09dGhpcy5wcm9wcztyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGdlLndMLHtjbGFzc05hbWU6ImludGVyY29tLWNvbXBvc2VyLWdpZi1idXR0b24iLGRpc2FibGVkOnRoaXMuaXNTdWJtaXNzaW9uRGlzYWJsZWQoKSxvbkNsaWNrOnRoaXMuaGFuZGxlR2lmUGlja2VyVG9nZ2xlLCJhcmlhLWRpc2FibGVkIjp0aGlzLmlzU3VibWlzc2lvbkRpc2FibGVkKCksImFyaWEtbGFiZWwiOigwLFouSXUpKCJnaWZfcGlja2VyIiksc2hvd0dpZlBpY2tlcjplLGlzUHJpbWFyeUNvbG9yUmVhZGFibGU6dH0sZC5jcmVhdGVFbGVtZW50KFNlLkpPLHt0eXBlOmU/IkNvbXBvc2VyR2lmQWN0aXZlIjoiQ29tcG9zZXJHaWYiLHNpemU6MTZ9KSl9cmVuZGVyR2lmUGlja2VyKCl7Y29uc3R7ZnJhbWVXaW5kb3c6ZSxzaG93R2lmUGlja2VyOnQsaXNCb3JkZXJsZXNzOm59PXRoaXMucHJvcHM7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChDb21wb3NlclBvcG92ZXIse29uRXNjYXBlS2V5OnRoaXMuaGFuZGxlR2lmUGlja2VyVG9nZ2xlLGZyYW1lV2luZG93OmUsaXNCb3JkZXJsZXNzOm4sc2hvdWxkSGlkZVVwbG9hZHM6dGhpcy5zaG91bGRIaWRlVXBsb2FkcygpLHBvcG92ZXJUeXBlOiJnaWYifSx0P2QuY3JlYXRlRWxlbWVudChwZSx7b25HaWZDbGljazp0aGlzLmhhbmRsZUdpZkNsaWNrfSk6bnVsbCl9cmVuZGVyU2VuZEJ1dHRvbigpe2NvbnN0e2lzUHJpbWFyeUNvbG9yUmVhZGFibGU6ZX09dGhpcy5wcm9wcztyZXR1cm4gZC5jcmVhdGVFbGVtZW50KGdlLkdLLHtjbGFzc05hbWU6ImludGVyY29tLWNvbXBvc2VyLXNlbmQtYnV0dG9uIixkaXNhYmxlZDp0aGlzLmlzU3VibWlzc2lvbkRpc2FibGVkKCksb25Ub3VjaEVuZDp0aGlzLmhhbmRsZVN1Ym1pdEJ1dHRvbkNsaWNrLG9uQ2xpY2s6dGhpcy5oYW5kbGVTdWJtaXRCdXR0b25DbGljaywiYXJpYS1kaXNhYmxlZCI6dGhpcy5pc1N1Ym1pc3Npb25EaXNhYmxlZCgpLCJhcmlhLWxhYmVsIjooMCxaLkl1KSgic2VuZF9hX21lc3NhZ2UiKSxpc1ByaW1hcnlDb2xvclJlYWRhYmxlOmV9LGQuY3JlYXRlRWxlbWVudChTZS5KTyx7dHlwZToiQ29tcG9zZXJTZW5kIixzaXplOjE2fSkpfXJlbmRlckJ1dHRvbnMoKXtjb25zdHtzaG93R2lmQnV0dG9uOmUsaXNCb3JkZXJsZXNzOnR9PXRoaXMucHJvcHMsbj10aGlzLmhhc1RleHQoKSxyPSEoMCxULksxKSgpLGk9ZSYmISgwLFQuSzEpKCkmJiFuLG89dGhpcy5zaG91bGRTaG93VXBsb2FkQnV0dG9uKCk7cmV0dXJuIGQuY3JlYXRlRWxlbWVudChnZS5xZix7Y2xhc3NOYW1lOiJpbnRlcmNvbS1jb21wb3Nlci1idXR0b25zIixpc0JvcmRlcmxlc3M6dH0saT90aGlzLnJlbmRlckdpZlBpY2tlckJ1dHRvbigpOm51bGwscj90aGlzLnJlbmRlckVtb2ppUGlja2VyQnV0dG9uKCk6bnVsbCxuP3RoaXMucmVuZGVyU2VuZEJ1dHRvbigpOm51bGwsbz90aGlzLnJlbmRlclVwbG9hZEJ1dHRvbigpOm51bGwpfXJlbmRlcigpe2NvbnN0e3Nob3VsZFNob3dVcGZyb250RW1haWxDb21wb3NlcjplLGlzQm9yZGVybGVzczp0LGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOm4sY3VzdG9tZXJQcml2YWN5UG9saWN5RW5hYmxlZDpyfT10aGlzLnByb3BzLHtzdWdnZXN0aW9uczppLGxvYWRpbmc6b309bix7dGV4dDphfT10aGlzLnN0YXRlO3JldHVybiBlP3RoaXMucmVuZGVyVXBmcm9udEVtYWlsQ29tcG9zZXIoKTpkLmNyZWF0ZUVsZW1lbnQoZ2UuUnEse3JlZjplPT50aGlzLmNvbXBvc2VyPWUsY2xhc3NOYW1lOiJpbnRlcmNvbS1jb21wb3NlciIsaXNCb3JkZXJsZXNzOnQsaGFzQ29tcG9zZXJTdWdnZXN0aW9uc0xvYWRpbmc6byxoYXNDb21wb3NlclN1Z2dlc3Rpb25zOmkubGVuZ3RoPjAsY3VzdG9tZXJQcml2YWN5UG9saWN5RW5hYmxlZDpyfSxkLmNyZWF0ZUVsZW1lbnQoInByZSIsbnVsbCxhLGQuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpKSx0aGlzLnJlbmRlclRleHRBcmVhKCksdGhpcy5yZW5kZXJHaWZQaWNrZXIoKSx0aGlzLnJlbmRlclR5cGVhaGVhZFN1Z2dlc3Rpb25zKCksdGhpcy5yZW5kZXJFbW9qaVBpY2tlcigpLHRoaXMucmVuZGVyQnV0dG9ucygpKX19Y29uc3QgWGU9ZT0+MTM9PT1lLmtleUNvZGUmJiEoZS5hbHRLZXl8fGUuc2hpZnRLZXkpJiYhKDAsVC5LMSkoKTtDb21wb3Nlci5kZWZhdWx0UHJvcHM9e2RlZmF1bHRUZXh0OiIiLHNob3dFbW9qaVBpY2tlcjohMSxzaG93R2lmUGlja2VyOiExLHNob3dHaWZCdXR0b246ITAsc2hvd1VwbG9hZEJ1dHRvbjohMCxpc0JvcmRlcmxlc3M6ITEsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6e3Byb21wdDpbXSxzdWdnZXN0aW9uczpbXSxsb2FkaW5nOiExLGlzRGlzbWlzc2VkOiExfX0sQ29tcG9zZXIuY29udGV4dFR5cGU9amUuWixDb21wb3Nlci5wcm9wVHlwZXM9e3BsYWNlaG9sZGVyOmMoKS5zdHJpbmcsaXNQcmltYXJ5Q29sb3JSZWFkYWJsZTpjKCkuYm9vbCxzaG93RW1vamlQaWNrZXI6YygpLmJvb2wsc2hvd0dpZlBpY2tlcjpjKCkuYm9vbCxzaG93VXBsb2FkQnV0dG9uOmMoKS5ib29sLHNob3dHaWZCdXR0b246YygpLmJvb2wsZGVmYXVsdFRleHQ6YygpLnN0cmluZyxpc0JvcmRlcmxlc3M6YygpLmJvb2wsc2hvdWxkU2hvd1VwZnJvbnRFbWFpbENvbXBvc2VyOmMoKS5ib29sLG9uSGVpZ2h0Q2hhbmdlOmMoKS5mdW5jLG9uVHlwaW5nOmMoKS5mdW5jLmlzUmVxdWlyZWQsb25DaGFuZ2U6YygpLmZ1bmMuaXNSZXF1aXJlZCxvblN1Ym1pdDpjKCkuZnVuYy5pc1JlcXVpcmVkLHRvZ2dsZVVwZnJvbnRFbWFpbENvbGxlY3RvclN0YXRlOmMoKS5mdW5jLmlzUmVxdWlyZWQsb25FbW9qaVBpY2tlclRvZ2dsZTpjKCkuZnVuYy5pc1JlcXVpcmVkLG9uSGVhZGVyQ29sbGFwc2U6YygpLmZ1bmMsb25HaWZQaWNrZXJUb2dnbGU6YygpLmZ1bmMsaGVhZGVySGVpZ2h0OmMoKS5udW1iZXIsY29udmVyc2F0aW9uOmMoKS5vYmplY3QsZnJhbWVXaW5kb3c6YygpLm9iamVjdCxjb252ZXJzYXRpb25TdWdnZXN0aW9uczpjKCkub2JqZWN0LGFsbG93TXVsdGlwbGVVcGxvYWRzOmMoKS5ib29sLGN1c3RvbWVyUHJpdmFjeVBvbGljeUVuYWJsZWQ6YygpLmJvb2x9O3ZhciBRZT1uKDEyODE4KSxldD1uKDEyMzI1KSx0dD1uKDk0Njc5KSxudD1uKDk5MTc5KSxydD1uKDc0NDg5KSxpdD1uKDEzMTY5KSxvdD1uKDI0MjkzKSxhdD1uKDY2NjAyKTtjb25zdCBzdD0oMCxyLmNvbm5lY3QpKCgoZSx0KT0+e2NvbnN0e2NvbnZlcnNhdGlvbjpufT10LHtjb21wb3NlclN0YXRlOnJ9PW4saT1uLmlkLG89ZS5ib3JkZXJsZXNzJiZlLmJvcmRlcmxlc3MuY29udmVyc2F0aW9uSWQsYT1uLmxhc3RQYXJ0aWNpcGF0aW5nQWRtaW4scz1uLmRlZmF1bHRNZXNzYWdlfHxpdC5aLmxvYWREcmFmdChpKSxsPWUuYXBwJiZlLmFwcC5vZmZpY2VIb3Vyc1Jlc3BvbnNlLGM9ZS5hcHAudXNlckNvbnZlcnNhdGlvbkF0dGFjaG1lbnRzRW5hYmxlZCxkPWUuYXBwLnVzZXJDb252ZXJzYXRpb25HaWZzRW5hYmxlZCxwPSgwLG90LkRYKShlKSx1PSgwLHJ0LlkpKGUpLG09KDAsb3QuTmUpKGUpLGg9dSYmIW0sZz0oMCxvdC5seikoZSksZj1oPygwLFouSXUpKCJzdGFydF90eXBpbmciKTpudWxsLHg9dm9pZCAwPT09aT8oMCxaLkl1KSgic2VuZF9hX21lc3NhZ2UiKTooMCxaLkl1KSgicmVwbHlfdG9fY29udmVyc2F0aW9uIiksdj1wP251bGw6KDAsWi5JdSkoImFza19hX3F1ZXN0aW9uX3BsYWNlaG9sZGVyIik7bGV0IHk7ZyYmKHk9aSYmKDAsYXQueUopKG4pPygwLFouSXUpKCJyZXBseV90b19jb252ZXJzYXRpb24iKTooMCxaLkl1KSgiYXNrX2FfcXVlc3Rpb25fcGxhY2Vob2xkZXIiKSk7cmV0dXJue2NvbnZlcnNhdGlvbklkOmksYm9yZGVybGVzc0NvbnZlcnNhdGlvbklkOm8sbGFzdFBhcnRpY2lwYXRpbmdBZG1pbjphLG9mZmljZUhvdXJzUmVzcG9uc2U6bCxkZWZhdWx0VGV4dDpzLHBsYWNlaG9sZGVyOnIubGFiZWx8fHl8fHZ8fGZ8fHgsc2hvd1VwbG9hZEJ1dHRvbjpjLHNob3dHaWZCdXR0b246ZCxzaG91bGRBc2tGb3JTdWdnZXN0ZWRBbnN3ZXJzOmgsYWxsb3dNdWx0aXBsZVVwbG9hZHM6ISh2b2lkIDA9PT1pfHxyLmN1c3RvbUJvdEFjdGl2ZSksY3VzdG9tZXJQcml2YWN5UG9saWN5RW5hYmxlZDooMCxvdC5YSykoZSl9fSksKGU9Pih7b25UeXBpbmc6dD0+e2UoKDAsZXQubXQpKHQpKX0sb25DaGFuZ2U6KHQsbixyKT0+e3ImJmUobj8oMCxudC5qcikobix0KTooMCxudC5XRCkobnVsbCx0KSksdD9pdC5aLnNhdmVEcmFmdCh0LG4pOml0Llouc2F2ZURyYWZ0KCJuZXdfY29udmVyc2F0aW9uIixuKSxlKCgwLGV0LkMzKSh0LG4sbmV3IERhdGUpKX0sb25TdWJtaXQ6KHQsbixyLGksbyxhLHMsbCxjLGQpPT57Y29uc3QgcD17Y2xpZW50SWQ6bixjcmVhdGVkQXQ6byxib2R5OnIsZmlsZTppfTtlKCgwLGV0LkN2KShlZS5aUCx0LHAsITEsYSxzLGwsYyxkKSksaXQuWi5yZW1vdmVEcmFmdCh0KX0sdG9nZ2xlVXBmcm9udEVtYWlsQ29sbGVjdG9yU3RhdGU6KCk9PntlKCgwLHR0Lk5ZKSgpKX19KSksKChlLHQsbik9Pk9iamVjdC5hc3NpZ24oe30sZSx0LG4se29uVHlwaW5nOm49Pnt0Lm9uVHlwaW5nKGUuY29udmVyc2F0aW9uSWQsbil9LG9uQ2hhbmdlOm49Pnt0Lm9uQ2hhbmdlKGUuY29udmVyc2F0aW9uSWQsbixlLnNob3VsZEFza0ZvclN1Z2dlc3RlZEFuc3dlcnMpfSxvblN1Ym1pdDoobixyLGksbyk9Pnt0Lm9uU3VibWl0KGUuY29udmVyc2F0aW9uSWQsKDAsUWUuRCkoKSxuLHIsbmV3IERhdGUsZS5jb252ZXJzYXRpb25JZD09PWUuYm9yZGVybGVzc0NvbnZlcnNhdGlvbklkLGUubGFzdFBhcnRpY2lwYXRpbmdBZG1pbixlLm9mZmljZUhvdXJzUmVzcG9uc2UsaSxvKX19KSkpKENvbXBvc2VyKX0sMjY4ODE6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5ubn0pO3ZhciByPW4oMzc0MjQpLGk9big1MDAyNSksbz1uKDI0MjkzKSxhPW4oNDM1NCkscz1uKDQ1Njk3KSxsPW4ubihzKSxjPW4oNjcyOTQpLGQ9bigxNjMxNSkscD1uKDgxODExKSx1PW4oMzUzNjkpLG09big2MDE4MSksaD1uKDYzNTM4KSxnPW4oMjkyODYpLGY9bigxMTM1MykseD1uKDk1MzQ1KTtjbGFzcyBQb3N0Q2FyZCBleHRlbmRzIGMuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e2lzVHJ1bmNhdGVkOiExfSx0aGlzLm5vZGU9dm9pZCAwLHRoaXMuaGFuZGxlQ2xpY2s9KCk9PnsoMCxmLldNKSgidmlld2VkIiwicG9zdCIsIm1lc3NlbmdlciIsImZyb21fY2FyZCIse2NvbnZlcnNhdGlvbl9pZDp0aGlzLnByb3BzLmNvbnZlcnNhdGlvbklkfSksdGhpcy5wcm9wcy5vbk9wZW4odGhpcy5wcm9wcy5jb252ZXJzYXRpb25JZCx0aGlzLnByb3BzLnBhcnQuaWQpfSx0aGlzLmhhbmRsZUNsb3NlPSgpPT57dGhpcy5wcm9wcy5vbkNsb3NlKCl9LHRoaXMuaGFuZGxlQ29tcG9zZXJDbGljaz0oKT0+e3RoaXMuaGFuZGxlQ2xvc2UoKX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmhhbmRsZVJlc2l6ZSgpfWhhbmRsZVJlc2l6ZSgpe2NvbnN0e25vZGU6ZX09dGhpcztpZighZSlyZXR1cm47Y29uc3R7c2Nyb2xsSGVpZ2h0OnQsY2xpZW50SGVpZ2h0Om59PWU7dGhpcy5zZXRTdGF0ZSh7aXNUcnVuY2F0ZWQ6dD5ufSl9cmVuZGVyUG9zdENvbnRlbnQoKXtjb25zdHtwYXJ0OmUsYXBwTmFtZTp0LHJlYWN0aW9uc1JlcGx5Om4sb25SZWFjdGlvblNlbGVjdDpyLGZyYW1lV2luZG93OmksaXNVcGZyb250RW1haWxDb21wb3NlclNob3dpbmc6b309dGhpcy5wcm9wcztyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHUuWix7bWVzc2FnZTplLGFwcE5hbWU6dCxyZWFjdGlvbnNSZXBseTpuLG9uUmVhY3Rpb25TZWxlY3Q6cixvbkNvbXBvc2VyQ2xpY2s6dGhpcy5oYW5kbGVDb21wb3NlckNsaWNrLG9uQ2xvc2U6dGhpcy5oYW5kbGVDbG9zZSxmcmFtZVdpbmRvdzppLGlzVXBmcm9udEVtYWlsQ29tcG9zZXJTaG93aW5nOm8scmV0dXJuRm9jdXM6dGhpcy5ub2RlJiZ0aGlzLm5vZGUuZm9jdXMuYmluZCh0aGlzLm5vZGUpfSl9cmVuZGVyUG9zdEJvZHkoKXtjb25zdHtwYXJ0OmUsYXBwTmFtZTp0LGZyYW1lV2luZG93Om4saXNPcGVuOnJ9PXRoaXMucHJvcHMse2F1dGhvcjppLGJvZHk6b309ZTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGMuRnJhZ21lbnQsbnVsbCxjLmNyZWF0ZUVsZW1lbnQobS5aLHthcHBOYW1lOnQsYXV0aG9yOml9LGMuY3JlYXRlRWxlbWVudCh4LmYsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoaC5aLHtibG9ja3M6byxmcmFtZVdpbmRvdzpufSkpKSxyP3RoaXMucmVuZGVyUG9zdENvbnRlbnQoKTpudWxsKX1yZW5kZXIoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGcuWix7bm9QYWRkaW5nOiEwLGNsYXNzTmFtZToiaW50ZXJjb20tcG9zdC1jYXJkIixvbkNsaWNrOnRoaXMuaGFuZGxlQ2xpY2sscmVmOmU9PnRoaXMubm9kZT1lLGlzRW50aXJlQ2FyZENsaWNrYWJsZTohMH0sYy5jcmVhdGVFbGVtZW50KHguYyx7aXNUcnVuY2F0ZWQ6ITB9LHRoaXMucmVuZGVyUG9zdEJvZHkoKSkpfX12YXIgdj1uKDY2NDk0KTtjb25zdCB5PSgwLHIuY29ubmVjdCkoKChlLHQpPT57Y29uc3Qgbj0hKCFlLm1lc3NhZ2UuY29udmVyc2F0aW9uSWR8fCFlLm1lc3NhZ2UucGFydElkfHxudWxsIT10JiZ0LmlzQm9yZGVybGVzcykse3VwZnJvbnRFbWFpbENvbGxlY3RvclNob3dpbmc6cn09ZS5hcHAudXBmcm9udEVtYWlsQ29sbGVjdGlvbjtyZXR1cm57aXNPcGVuOm4saXNVcGZyb250RW1haWxDb21wb3NlclNob3dpbmc6cn19KSwoZT0+KHtvbk9wZW46KHQsbik9PntlKCgwLHYueDQpKHQsbikpfSxvbkNsb3NlOigpPT57ZSgoMCx2LllHKSgpKX19KSksKChlLHQsbik9Pk9iamVjdC5hc3NpZ24oe30sZSx0LG4se29uT3BlbjooZSxuKT0+e3Qub25PcGVuKGUsbil9LG9uQ2xvc2U6KCk9Pnt0Lm9uQ2xvc2UoKX19KSkpKFBvc3RDYXJkKTt2YXIgYj1uKDUzMjM4KTtjb25zdCBFPSh7YXBwTmFtZTplLHBhcnQ6dCxmcmFtZVdpbmRvdzpufSk9Pntjb25zdHthdXRob3I6cixib2R5Oml9PXQ7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChtLlose2FwcE5hbWU6ZSxpc1JlcGx5U3R5bGU6ITEsYXV0aG9yOnJ9LGMuY3JlYXRlRWxlbWVudChiLkQsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoaC5aLHtibG9ja3M6aSx6b29tYWJsZTohMCxmcmFtZVdpbmRvdzpufSkpKX0saz1lPT5jLmNyZWF0ZUVsZW1lbnQoZy5aLHthczpiLnksY2xhc3NOYW1lOiJpbnRlcmNvbS1ub3RlLWNhcmQiLG5vUGFkZGluZzohMCxpc0VudGlyZUNhcmRDbGlja2FibGU6ITB9LGMuY3JlYXRlRWxlbWVudChFLGUpKTt2YXIgQz1uKDQzMjMpLHc9bigzMTM5NCksUz1uKDY3NTkyKSxQPW4oNTkzMzkpLFQ9big3MzQ5OCksWj1uKDM3Njk1KSxJPW4oNDMxNzMpLGo9bigyMDgzMyksXz1uKDk5NDIxKTtjbGFzcyBBcnRpY2xlQ2FyZCBleHRlbmRzIGMuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMubGlua1JlZj1udWxsLHRoaXMuY3JlYXRlSGFuZGxlQ2xpY2s9ZT0+dD0+e2NvbnN0IG49dC5jdHJsS2V5fHx0LnNoaWZ0S2V5fHx0Lm1ldGFLZXk7aWYoISghZS5hcnRpY2xlSWR8fGUudXJsJiZuKSl7dC5wcmV2ZW50RGVmYXVsdCgpO3RyeXt0aGlzLnByb3BzLm9uQXJ0aWNsZUNhcmRDbGljayhlLmFydGljbGVJZCl9Y2F0Y2godCl7KDAsXy5XTSkoZS51cmwpfX19LHRoaXMucmVuZGVyTGlua0NhcmRGb290ZXI9ZT0+Yy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsZS5kZXNjcmlwdGlvbiYmYy5jcmVhdGVFbGVtZW50KFQuQnAsbnVsbCxlLmRlc2NyaXB0aW9uKSxlLmF1dGhvciYmZS5hdXRob3IubmFtZSYmdGhpcy5yZW5kZXJBdXRob3IodGhpcy5idWlsZEF1dGhvcihlLmF1dGhvcikpKSx0aGlzLnJlbmRlckxpbms9KGUsdCk9Pntjb25zdCBuPXRoaXMuaXNTaW5nbGVMaW5rKCk7cmV0dXJuImVkdWNhdGUuaGVscF9jZW50ZXIiPT09ZS5saW5rVHlwZT9jLmNyZWF0ZUVsZW1lbnQoImEiLHtocmVmOmUudXJsLHJlbDoibm9mb2xsb3cgbm9yZWZlcnJlciBub29wZW5lciIsdGFyZ2V0OiJfYmxhbmsifSxjLmNyZWF0ZUVsZW1lbnQoai5aLHtrZXk6dCxub3RlOm4/ZS5kZXNjcmlwdGlvbjp2b2lkIDAsaG92ZXJCYWNrZ3JvdW5kOiFufSx0aGlzLnJlbmRlckxpbmtDYXJkVGl0bGUoZSkpKTpjLmNyZWF0ZUVsZW1lbnQoai5aLHtrZXk6dCxmdWxsQmxlZWRDYXJkOiEwLG5vdGU6bj9lLmRlc2NyaXB0aW9uOnZvaWQgMCxyaWdodEljb246bj92b2lkIDA6IlJpZ2h0Q2hldnJvbkNvbG9yYWJsZSIscmlnaHRJY29uQ29sb3I6ImxpbmtDb2xvciIsaG92ZXJCYWNrZ3JvdW5kOiFuLG9uQ2xpY2s6dGhpcy5jcmVhdGVIYW5kbGVDbGljayhlKX0sYy5jcmVhdGVFbGVtZW50KCJzdHJvbmciLG51bGwsZS50aXRsZSkpfX1pc1NpbmdsZUxpbmsoKXt2YXIgZTtyZXR1cm4gMT09PShudWxsPT09KGU9dGhpcy5wcm9wcy5wYXJ0KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5ib2R5Lmxlbmd0aCl9YnVpbGRBdXRob3IoZSl7cmV0dXJue2F2YXRhcjp7c3F1YXJlMTI4OmUuYXZhdGFyfSxuYW1lOmUubmFtZSxmaXJzdE5hbWU6ZS5maXJzdE5hbWV8fGUubmFtZX19cmVuZGVyQXV0aG9yKGUpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoVC54dixudWxsLGMuY3JlYXRlRWxlbWVudChULkw5LG51bGwsYy5jcmVhdGVFbGVtZW50KHcuWix7YXV0aG9yOmUsc2l6ZTp0aGlzLnByb3BzLnBhcnQuaXNNZXNzYWdlPzI0OjE2fSkpLGMuY3JlYXRlRWxlbWVudChULkFWLG51bGwsYCR7KDAsUy5JdSkoIndyaXR0ZW5fYnkiKX0gYCxjLmNyZWF0ZUVsZW1lbnQoVC5vaCxudWxsLGUubmFtZSkpKX1yZW5kZXJMaW5rQ2FyZFRpdGxlKGUpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoVC5BMCx7dHlwZTplLmxpbmtUeXBlfSwiZWR1Y2F0ZS5oZWxwX2NlbnRlciI9PT1lLmxpbmtUeXBlP2MuY3JlYXRlRWxlbWVudChjLkZyYWdtZW50LG51bGwsYy5jcmVhdGVFbGVtZW50KFQuRlUsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoWi5aLHtzaXplOjE2LHR5cGU6IkV4dGVybmFsTGluayJ9KSksYy5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGUudGl0bGUpKTplLnRpdGxlKX1yZW5kZXJMaW5rQ2FyZHMoKXtjb25zdHtwYXJ0Ontib2R5OmV9fT10aGlzLnByb3BzO2lmKHRoaXMuaXNTaW5nbGVMaW5rKCkpe2NvbnN0IHQ9ZVswXTtyZXR1cm4gdGhpcy5yZW5kZXJMaW5rKHQpfXJldHVybiBjLmNyZWF0ZUVsZW1lbnQoSS5aUCxudWxsLGUubWFwKCgoZSx0KT0+dGhpcy5yZW5kZXJMaW5rKGUsdCkpKSl9cmVuZGVyKCl7Y29uc3R7aGFzQXZhdGFyOmUsaXNCb3JkZXJsZXNzOnQsaXNJbmxpbmU6bixwYXJ0Ontpc01lc3NhZ2U6cixhdXRob3I6aX19PXRoaXMucHJvcHM7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChULnBmLHtpc0lubGluZTpuLGlzQm9yZGVybGVzczp0LGlzTWVzc2FnZTpyfSwhciYmZSYmYy5jcmVhdGVFbGVtZW50KFQuaUEsbnVsbCxjLmNyZWF0ZUVsZW1lbnQody5aLHthdXRob3I6aX0pKSxyJiZjLmNyZWF0ZUVsZW1lbnQoVC5oaSxudWxsLCgwLFMuSXUpKCJhc2tlZF9hYm91dCIpKSxjLmNyZWF0ZUVsZW1lbnQoZy5aLHtub1BhZGRpbmc6ITAsaXNFbnRpcmVDYXJkQ2xpY2thYmxlOnRoaXMuaXNTaW5nbGVMaW5rKCl9LHRoaXMucmVuZGVyTGlua0NhcmRzKCkpKX19QXJ0aWNsZUNhcmQuY29udGV4dFR5cGU9UC5OaSxBcnRpY2xlQ2FyZC5kZWZhdWx0UHJvcHM9e2lzSW5saW5lOiExLGhhc0F2YXRhcjohMCxpc0JvcmRlcmxlc3M6ITF9O3ZhciBPPW4oNzcwMTEpO2NvbnN0IEE9KDAsci5jb25uZWN0KSh2b2lkIDAsKGU9Pih7b25BcnRpY2xlQ2FyZENsaWNrKHQpe2UoKDAsTy5NZSkodCx7fSkpfX0pKSkoQXJ0aWNsZUNhcmQpO3ZhciBCPW4oMzg3MzMpLFI9bigxODQ0Niksej1uLm4oUiksTj1uKDE2MDEyKSxNPW4oOTY4OCksRD1uKDM4NzEyKSxMPW4oNjA5MyksRz1uKDE4Mjg5KTtjbGFzcyBOb3RpZmljYXRpb25DaGFubmVsc0lucHV0IGV4dGVuZHMgYy5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17dmFsdWU6dGhpcy5wcm9wcy5pbml0aWFsVmFsdWUsdmFsdWVDaGFuZ2VkOiExLHNob3dFcnJvck1lc3NhZ2U6ITEscHJldlByb3BzOnRoaXMucHJvcHN9LHRoaXMuaGFuZGxlRm9jdXM9ZT0+e2lmKCgwLGQuSzEpKCkpdGhpcy5mb2N1c1RpbWVvdXQ9c2V0VGltZW91dCgoKCk9PntpZighdGhpcy5ub2RlKXJldHVybjtjb25zdCBlPXRoaXMubm9kZS5jbG9zZXN0KCIuaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktcGFydHMiKTsoMCxNLnhaKSh0aGlzLm5vZGUsZSl9KSwxZTMpO2Vsc2V7Y29uc3QgdD1lLnRhcmdldC52YWx1ZTtlLnRhcmdldC52YWx1ZT0iIixlLnRhcmdldC52YWx1ZT10fX0sdGhpcy5oYW5kbGVLZXlEb3duPWU9PnsoZT0+MTM9PT1lLmtleUNvZGUmJiEoZS5hbHRLZXl8fGUuc2hpZnRLZXkpKShlKSYmKHRoaXMuaGFuZGxlU3VibWl0KCksZS5wcmV2ZW50RGVmYXVsdCgpKX0sdGhpcy5oYW5kbGVLZXlVcD0oKT0+e3RoaXMucHJvcHMub25JbnB1dENoYW5nZSgpfSx0aGlzLmhhbmRsZVN1Ym1pdEJ1dHRvbkNsaWNrPWU9Pnt0aGlzLmlzRGlzYWJsZWQoKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZVN1Ym1pdCgpKX0sdGhpcy5oYW5kbGVTdWJtaXQ9KCk9Pntjb25zdHt2YWx1ZTplfT10aGlzLnN0YXRlLHtpc1ZhbGlkOnQsb25TdWJtaXQ6bn09dGhpcy5wcm9wczt0KGUpPyhuKGUpLHRoaXMubm90aWZpY2F0aW9uQ2hhbm5lbHNJbnB1dC5ibHVyKCksdGhpcy5zZXRTdGF0ZSh7c2hvd0Vycm9yTWVzc2FnZTohMX0pKTp0aGlzLnNldFN0YXRlKHtzaG93RXJyb3JNZXNzYWdlOiEwfSl9LHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2U9ZT0+e2NvbnN0e3ZhbHVlOnR9PWUudGFyZ2V0O3RoaXMuc2V0U3RhdGUoe3ZhbHVlOnQsc2hvd0Vycm9yTWVzc2FnZTohMX0pLHRoaXMuc3RhdGUudmFsdWVDaGFuZ2VkfHx0aGlzLnNldFN0YXRlKHt2YWx1ZUNoYW5nZWQ6dGhpcy52YWx1ZUhhc0NoYW5nZWQoKX0pfSx0aGlzLmhhbmRsZUlucHV0Q2xpY2s9KCk9Pnt0aGlzLm5vdGlmaWNhdGlvbkNoYW5uZWxzSW5wdXQuZm9jdXMoKX19Y29tcG9uZW50V2lsbFVubW91bnQoKXtjbGVhclRpbWVvdXQodGhpcy5mb2N1c1RpbWVvdXQpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoZSx0KXtpZighdHx8eigpKGUsdC5wcmV2UHJvcHMpKXJldHVybiBudWxsO2NvbnN0e25hbWU6bixpc1NhdmluZzpyLGhhc0V4aXN0aW5nQ2hhbm5lbDppLGluaXRpYWxWYWx1ZTpvfT1lLGE9bj09PXQucHJldlByb3BzLm5hbWU/dC52YWx1ZTpvO3JldHVybiByfHxpP3twcmV2UHJvcHM6ZX06e3ZhbHVlOmEscHJldlByb3BzOmUsdmFsdWVDaGFuZ2VkOiExLHNob3dFcnJvck1lc3NhZ2U6ITF9fXZhbHVlSGFzQ2hhbmdlZCgpe3JldHVybiB0aGlzLnN0YXRlLnZhbHVlIT09dGhpcy5wcm9wcy5pbml0aWFsVmFsdWV9dmFsdWVJc0VtcHR5KCl7cmV0dXJuIiI9PT10aGlzLnN0YXRlLnZhbHVlfWlzUGhvbmUoKXtyZXR1cm4icGhvbmUiPT09dGhpcy5wcm9wcy5uYW1lfXNob3VsZFNob3dQbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLnN0YXRlLnZhbHVlQ2hhbmdlZD90aGlzLnZhbHVlSXNFbXB0eSgpOnRoaXMudmFsdWVJc0VtcHR5KCl8fCF0aGlzLnZhbHVlSGFzQ2hhbmdlZCgpfWlzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5wcm9wcy5pc1NhdmluZ3x8dGhpcy5wcm9wcy5jaGFubmVsUHJvdmlkZWR9Z2V0SW5wdXRUeXBlKCl7c3dpdGNoKHRoaXMucHJvcHMubmFtZSl7Y2FzZSJwaG9uZSI6ZGVmYXVsdDpyZXR1cm4idGV4dCI7Y2FzZSJlbWFpbCI6cmV0dXJuImVtYWlsIn19Z2V0RXJyb3JNZXNzYWdlKCl7c3dpdGNoKHRoaXMucHJvcHMubmFtZSl7Y2FzZSJwaG9uZSI6Y29uc3QgZT0oMCxOLnpnKSh0aGlzLnN0YXRlLnZhbHVlKTtyZXR1cm4gZT8oMCxTLkl1KShlKTp0aGlzLnByb3BzLmVycm9yTWVzc2FnZTtjYXNlImVtYWlsIjpyZXR1cm4oMCxTLkl1KSgidGhhdF9lbWFpbF9hZGRyZXNzX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0Iik7ZGVmYXVsdDpyZXR1cm4iVGhhdCB2YWx1ZSBkb2Vzbid0IGxvb2sgcXVpdGUgcmlnaHQifX1zaG93RXJyb3JNZXNzYWdlKCl7cmV0dXJuIHRoaXMuc3RhdGUuc2hvd0Vycm9yTWVzc2FnZXx8dGhpcy5wcm9wcy5zaG93RXJyb3JNZXNzYWdlfXJlbmRlckZsYWcoKXtjb25zdCBlPSgwLE4udmwpKHRoaXMuc3RhdGUudmFsdWUpLHQ9ZT9lLmNvZGU6dGhpcy5wcm9wcy5pbml0aWFsQ291bnRyeUNvZGU7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLllZLHtjb3VudHJ5Q29kZTp0LCJkYXRhLXRlc3RpZCI6YG5vdGlmaWNhdGlvbi1jaGFubmVsLWZsYWctJHt0fWB9KX1yZW5kZXJQbGFjZWhvbGRlcigpe2NvbnN0e2luaXRpYWxWYWx1ZTplLHBsYWNlaG9sZGVyOnR9PXRoaXMucHJvcHMsbj10aGlzLnZhbHVlSXNFbXB0eSgpP3t9Ont2aXNpYmlsaXR5OiJoaWRkZW4ifTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEwuZlcse2lzUGhvbmU6dGhpcy5pc1Bob25lKCl9LGMuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOm59LGUpLHQpfXJlbmRlcigpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIse29uQ2xpY2s6dGhpcy5oYW5kbGVJbnB1dENsaWNrLHJlZjplPT50aGlzLm5vZGU9ZSxvbktleURvd246ZT0+KDEzPT09ZS5rZXlDb2RlfHwzMj09PWUua2V5Q29kZSkmJnRoaXMuaGFuZGxlSW5wdXRDbGljayhlKSxyb2xlOiJidXR0b24iLHRhYkluZGV4OiIwIn0sYy5jcmVhdGVFbGVtZW50KEwueWksbnVsbCxjLmNyZWF0ZUVsZW1lbnQoTC5IdCx7aXNQaG9uZTp0aGlzLmlzUGhvbmUoKSxoYXNFcnJvcjp0aGlzLnNob3dFcnJvck1lc3NhZ2UoKSxpc1N1Y2Nlc3NmdWw6ISF0aGlzLnByb3BzLmNoYW5uZWxQcm92aWRlZH0sdGhpcy5pc1Bob25lKCk/dGhpcy5yZW5kZXJGbGFnKCk6bnVsbCx0aGlzLnNob3VsZFNob3dQbGFjZWhvbGRlcigpP3RoaXMucmVuZGVyUGxhY2Vob2xkZXIoKTpudWxsLGMuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHthdXRvRm9jdXM6ITAscmVmOmU9PnRoaXMubm90aWZpY2F0aW9uQ2hhbm5lbHNJbnB1dD1lLHR5cGU6dGhpcy5nZXRJbnB1dFR5cGUoKSxuYW1lOiJpbnRlcmNvbS1jaGFubmVsLWNvbGxlY3RvciIsZGlzYWJsZWQ6dGhpcy5pc0Rpc2FibGVkKCksdmFsdWU6dGhpcy5zdGF0ZS52YWx1ZSxhdXRvQ29tcGxldGU6Im9mZiIsb25Gb2N1czp0aGlzLmhhbmRsZUZvY3VzLG9uS2V5RG93bjp0aGlzLmhhbmRsZUtleURvd24sb25LZXlVcDp0aGlzLmhhbmRsZUtleVVwLG9uQ2hhbmdlOnRoaXMuaGFuZGxlSW5wdXRDaGFuZ2Usb25CbHVyOkQuQUYsImFyaWEtbGFiZWwiOnRoaXMucHJvcHMuYXJpYUxhYmVsfSkpLGMuY3JlYXRlRWxlbWVudChMLkQ2LHtoYXNDaGFubmVsOiEhdGhpcy5wcm9wcy5jaGFubmVsUHJvdmlkZWR9LGMuY3JlYXRlRWxlbWVudChMLnd4LHtvblRvdWNoRW5kOnRoaXMuaGFuZGxlU3VibWl0QnV0dG9uQ2xpY2ssb25DbGljazp0aGlzLmhhbmRsZVN1Ym1pdEJ1dHRvbkNsaWNrLGlzRGlzYWJsZWQ6dGhpcy5pc0Rpc2FibGVkKCksaGFzQ2hhbm5lbDohIXRoaXMucHJvcHMuY2hhbm5lbFByb3ZpZGVkLCJhcmlhLWxhYmVsIjoiU3VibWl0In0sYy5jcmVhdGVFbGVtZW50KEwuJGcsbnVsbCksYy5jcmVhdGVFbGVtZW50KEwub1MsbnVsbCkpKSksdGhpcy5zaG93RXJyb3JNZXNzYWdlKCkmJmMuY3JlYXRlRWxlbWVudChHLlose2Vycm9yTWVzc2FnZTp0aGlzLmdldEVycm9yTWVzc2FnZSgpfSkpfX1Ob3RpZmljYXRpb25DaGFubmVsc0lucHV0LmRlZmF1bHRQcm9wcz17aW5pdGlhbFZhbHVlOiIiLGlzU2F2aW5nOiExLGluaXRpYWxDb3VudHJ5Q29kZToidXMifSxOb3RpZmljYXRpb25DaGFubmVsc0lucHV0LnByb3BUeXBlcz17bmFtZTpsKCkub25lT2YoWyJwaG9uZSIsImVtYWlsIl0pLmlzUmVxdWlyZWQsaW5pdGlhbFZhbHVlOmwoKS5zdHJpbmcscGxhY2Vob2xkZXI6bCgpLnN0cmluZy5pc1JlcXVpcmVkLHNob3dFcnJvck1lc3NhZ2U6bCgpLmJvb2wuaXNSZXF1aXJlZCxlcnJvck1lc3NhZ2U6bCgpLnN0cmluZyxhcmlhTGFiZWw6bCgpLnN0cmluZyxpbml0aWFsQ291bnRyeUNvZGU6bCgpLnN0cmluZyxpc1NhdmluZzpsKCkuYm9vbCxjaGFubmVsUHJvdmlkZWQ6bCgpLmJvb2wuaXNSZXF1aXJlZCxpc1ZhbGlkOmwoKS5mdW5jLmlzUmVxdWlyZWQsb25TdWJtaXQ6bCgpLmZ1bmMuaXNSZXF1aXJlZCxvbklucHV0Q2hhbmdlOmwoKS5mdW5jLmlzUmVxdWlyZWQsaGFzRXhpc3RpbmdDaGFubmVsOmwoKS5ib29sfTt2YXIgRj1uKDgzNTYyKTtjb25zdCBxPShlLHQpPT5XKGUpJiYhVSh0KSxIPShlLHQpPT5XKGUpJiYhVSh0KSxXPWU9PiJ2aXNpdG9yIj09PWV8fCJsZWFkIj09PWUsVT1lPT52b2lkIDA9PT1lfHwiIj09PWU7dmFyIFY9big5NzM2Nik7Y29uc3QgJD1lPT57Y29uc3R7dXNlclJvbGU6dCx1c2VyU3VwcGxpZWRFbWFpbDpuLHBob25lTnVtYmVyOnJ9PWUsaT1xKHQsbiksbz1IKHQscik7cmV0dXJuIGl8fG99O2NsYXNzIE5vdGlmaWNhdGlvbkNoYW5uZWxzIGV4dGVuZHMgYy5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17c2hvd0VtYWlsQ29sbGVjdG9yOiEwLHNob3dQaG9uZU51bWJlckNvbGxlY3RvcjohMSxoYXNFeGlzdGluZ0NoYW5uZWw6JCh0aGlzLnByb3BzKSxjaGFubmVsUHJvdmlkZWQ6ITEscHJldlByb3BzOnRoaXMucHJvcHN9LHRoaXMuYWRkTm90aWZpY2F0aW9uQ2hhbm5lbE1ldHJpYz0oZSx0KT0+eygwLGYuV00pKGUsYG5vdGlmaWNhdGlvbl9jaGFubmVsXyR7dH1gLCJtZXNzZW5nZXIiLCJpbl9jb252ZXJzYXRpb24iLHtjb252ZXJzYXRpb25faWQ6dGhpcy5wcm9wcy5jb252ZXJzYXRpb25JZH0pfSx0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxTaG93bk1ldHJpYz1lPT57dGhpcy5hZGROb3RpZmljYXRpb25DaGFubmVsTWV0cmljKCJyZWNlaXZlZCIsZSl9LHRoaXMuYWRkTm90aWZpY2F0aW9uQ2hhbm5lbFN0YXJ0TWV0cmljPWU9Pnt0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxNZXRyaWMoInN0YXJ0ZWQiLGUpfSx0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxDb21wbGV0ZU1ldHJpYz1lPT57dGhpcy5hZGROb3RpZmljYXRpb25DaGFubmVsTWV0cmljKCJjb21wbGV0ZWQiLGUpfSx0aGlzLmhhbmRsZUVtYWlsQ2xpY2s9KCk9Pnt0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxTdGFydE1ldHJpYygiZW1haWwiKSx0aGlzLnNldFN0YXRlKHtzaG93RW1haWxDb2xsZWN0b3I6ITAsc2hvd1Bob25lTnVtYmVyQ29sbGVjdG9yOiExfSksdGhpcy5wcm9wcy5vbklucHV0Q2hhbmdlKCl9LHRoaXMuaGFuZGxlU21zQ2xpY2s9KCk9Pnt0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxTdGFydE1ldHJpYygic21zIiksdGhpcy5zZXRTdGF0ZSh7c2hvd0VtYWlsQ29sbGVjdG9yOiExLHNob3dQaG9uZU51bWJlckNvbGxlY3RvcjohMH0pLHRoaXMucHJvcHMub25JbnB1dENoYW5nZSgpfSx0aGlzLmhhbmRsZUVtYWlsQ29sbGVjdG9yU3VibWl0PWU9Pnt0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxDb21wbGV0ZU1ldHJpYyh0aGlzLmdldEVtYWlsQ29sbGVjdG9yTWV0cmljTmFtZSgpKSx0aGlzLnByb3BzLm9uRW1haWxDb2xsZWN0b3JTdWJtaXQoZSl9LHRoaXMuaGFuZGxlUGhvbmVOdW1iZXJDb2xsZWN0b3JTdWJtaXQ9ZT0+e3RoaXMuYWRkTm90aWZpY2F0aW9uQ2hhbm5lbENvbXBsZXRlTWV0cmljKCJzbXMiKSx0aGlzLnByb3BzLm9uUGhvbmVOdW1iZXJDb2xsZWN0b3JTdWJtaXQoZSl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5yZWNvcmRNZXRyaWNzKCl9c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhlLHQpe2lmKCF0fHx6KCkoZSx0LnByZXZQcm9wcykpcmV0dXJuIG51bGw7Y29uc3Qgbj0kKGUpLHI9e3ByZXZQcm9wczplLGhhc0V4aXN0aW5nQ2hhbm5lbDpufTtyZXR1cm4gdC5oYXNFeGlzdGluZ0NoYW5uZWx8fChyLmNoYW5uZWxQcm92aWRlZD1uKSxyfXJlY29yZE1ldHJpY3MoKXtjb25zdHt1c2VyUm9sZTplLHVzZXJTdXBwbGllZEVtYWlsOnQsc21zRW5hYmxlZDpufT10aGlzLnByb3BzLHI9cShlLHQpO24mJiF0aGlzLnN0YXRlLmhhc0V4aXN0aW5nQ2hhbm5lbD90aGlzLnJlY29yZENoYW5uZWxNZXRyaWNzKCk6bnx8cnx8dGhpcy5hZGROb3RpZmljYXRpb25DaGFubmVsU2hvd25NZXRyaWModGhpcy5nZXRFbWFpbENvbGxlY3Rvck1ldHJpY05hbWUoKSl9cmVjb3JkQ2hhbm5lbE1ldHJpY3MoKXtjb25zdHtzbXNFbmFibGVkOmV9PXRoaXMucHJvcHM7dGhpcy5hZGROb3RpZmljYXRpb25DaGFubmVsU2hvd25NZXRyaWMoIm9wdGlvbnMiKSx0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxTaG93bk1ldHJpYygiZW1haWwiKSxlJiZ0aGlzLmFkZE5vdGlmaWNhdGlvbkNoYW5uZWxTaG93bk1ldHJpYygic21zIil9Z2V0RW1haWxDb2xsZWN0b3JNZXRyaWNOYW1lKCl7cmV0dXJuIHRoaXMucHJvcHMuc21zRW5hYmxlZD8iZW1haWwiOiJlbWFpbF9jb2xsZWN0b3IifWV4aXN0aW5nQ2hhbm5lbFRleHQoKXtjb25zdHt1c2VyUm9sZTplLHVzZXJTdXBwbGllZEVtYWlsOnQscGhvbmVOdW1iZXI6bn09dGhpcy5wcm9wcyxyPUgoZSxuKTtyZXR1cm4gcShlLHQpPygwLFMuSXUpKCJ5b3VsbF9iZV9ub3RpZmllZF9oZXJlX2FuZF9ieV9lbWFpbCIpOnI/KDAsUy5JdSkoInlvdWxsX2JlX25vdGlmaWVkX2hlcmVfYW5kX2J5X3NtcyIpOnZvaWQgMH1leGlzdGluZ0NoYW5uZWxWYWx1ZSgpe2NvbnN0e3VzZXJSb2xlOmUsdXNlclN1cHBsaWVkRW1haWw6dCxwaG9uZU51bWJlcjpufT10aGlzLnByb3BzLHI9SChlLG4pO3JldHVybiBxKGUsdCk/dDpyP246dm9pZCAwfW9wdGlvblNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc3RhdGUuc2hvd0VtYWlsQ29sbGVjdG9yfHx0aGlzLnN0YXRlLnNob3dQaG9uZU51bWJlckNvbGxlY3Rvcn1nZXRUaXRsZSgpe3JldHVybiB0aGlzLnByb3BzLnNtc0VuYWJsZWQ/KDAsUy5JdSkoImdldF9ub3RpZmllZCIpOigwLFMuSXUpKCJnZXRfbm90aWZpZWRfYnlfZW1haWwiKX1yZW5kZXJQaG9uZU51bWJlckNvbGxlY3Rvcigpe2NvbnN0IGU9KDAsTi5sNCkodGhpcy5wcm9wcy51c2VyQ291bnRyeUNvZGUpO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTm90aWZpY2F0aW9uQ2hhbm5lbHNJbnB1dCx7bmFtZToicGhvbmUiLGluaXRpYWxWYWx1ZTplLHBsYWNlaG9sZGVyOiIgMTIzIDQ1NiA3ODkwIixpbml0aWFsQ291bnRyeUNvZGU6dGhpcy5wcm9wcy51c2VyQ291bnRyeUNvZGUsaXNTYXZpbmc6dGhpcy5wcm9wcy5pc1NhdmluZyxzaG93RXJyb3JNZXNzYWdlOnRoaXMucHJvcHMuc2hvd0Vycm9yTWVzc2FnZSxlcnJvck1lc3NhZ2U6dGhpcy5wcm9wcy5lcnJvck1lc3NhZ2UsY2hhbm5lbFByb3ZpZGVkOnRoaXMuc3RhdGUuY2hhbm5lbFByb3ZpZGVkLGlzVmFsaWQ6Ti5KWSxvblN1Ym1pdDp0aGlzLmhhbmRsZVBob25lTnVtYmVyQ29sbGVjdG9yU3VibWl0LG9uSW5wdXRDaGFuZ2U6dGhpcy5wcm9wcy5vbklucHV0Q2hhbmdlfSl9cmVuZGVyRW1haWxDb2xsZWN0b3IoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KE5vdGlmaWNhdGlvbkNoYW5uZWxzSW5wdXQse25hbWU6ImVtYWlsIixhcmlhTGFiZWw6IkVudGVyIHlvdXIgZW1haWwiLHBsYWNlaG9sZGVyOkYudCxpc1NhdmluZzp0aGlzLnByb3BzLmlzU2F2aW5nLHNob3dFcnJvck1lc3NhZ2U6dGhpcy5wcm9wcy5zaG93RXJyb3JNZXNzYWdlLGVycm9yTWVzc2FnZTp0aGlzLnByb3BzLmVycm9yTWVzc2FnZSxjaGFubmVsUHJvdmlkZWQ6dGhpcy5zdGF0ZS5jaGFubmVsUHJvdmlkZWQsaXNWYWxpZDpWLnYsb25TdWJtaXQ6dGhpcy5oYW5kbGVFbWFpbENvbGxlY3RvclN1Ym1pdCxvbklucHV0Q2hhbmdlOnRoaXMucHJvcHMub25JbnB1dENoYW5nZX0pfXJlbmRlckNoYW5uZWxzQm9keSgpe3JldHVybiB0aGlzLnN0YXRlLnNob3dFbWFpbENvbGxlY3Rvcj90aGlzLnJlbmRlckVtYWlsQ29sbGVjdG9yKCk6dGhpcy5zdGF0ZS5zaG93UGhvbmVOdW1iZXJDb2xsZWN0b3I/dGhpcy5yZW5kZXJQaG9uZU51bWJlckNvbGxlY3RvcigpOnZvaWQgMH1yZW5kZXJPcHRpb24oZSx0LG4pe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC52dCx7aXNTZWxlY3RlZDp0LG9uQ2xpY2s6bn0sKDAsUy5JdSkoZSkpfXJlbmRlckVtYWlsT3B0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9uKCJlbWFpbCIsdGhpcy5zdGF0ZS5zaG93RW1haWxDb2xsZWN0b3IsdGhpcy5oYW5kbGVFbWFpbENsaWNrKX1yZW5kZXJTbXNPcHRpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb24oInNtcyIsdGhpcy5zdGF0ZS5zaG93UGhvbmVOdW1iZXJDb2xsZWN0b3IsdGhpcy5oYW5kbGVTbXNDbGljayl9cmVuZGVyT3B0aW9ucygpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC5CUixudWxsLHRoaXMucmVuZGVyRW1haWxPcHRpb24oKSx0aGlzLnByb3BzLnNtc0VuYWJsZWQ/dGhpcy5yZW5kZXJTbXNPcHRpb24oKTpudWxsKX1yZW5kZXJDaGFubmVsT3B0aW9ucygpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoTC5FQixudWxsLGMuY3JlYXRlRWxlbWVudChMLlNSLG51bGwsdGhpcy5nZXRUaXRsZSgpKSxjLmNyZWF0ZUVsZW1lbnQoTC5nUixudWxsLHRoaXMuZXhpc3RpbmdDaGFubmVsVGV4dCgpKSksdGhpcy5wcm9wcy5zbXNFbmFibGVkP3RoaXMucmVuZGVyT3B0aW9ucygpOm51bGwsdGhpcy5yZW5kZXJDaGFubmVsc0JvZHkoKSl9cmVuZGVyRXhpc3RpbmdWYWx1ZSgpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC5yQixudWxsLHRoaXMuZXhpc3RpbmdDaGFubmVsVmFsdWUoKSl9cmVuZGVyU3VjY2Vzc01lc3NhZ2UoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYy5jcmVhdGVFbGVtZW50KEwuU1Ise2lzU3VjY2Vzc2Z1bDohMH0sdGhpcy5leGlzdGluZ0NoYW5uZWxUZXh0KCkpLHRoaXMucmVuZGVyRXhpc3RpbmdWYWx1ZSgpKX1yZW5kZXIoKXtjb25zdHtpc0JvcmRlcmxlc3M6ZSxuZXh0UGFydDp0fT10aGlzLnByb3BzLHtoYXNFeGlzdGluZ0NoYW5uZWw6bixjaGFubmVsUHJvdmlkZWQ6cn09dGhpcy5zdGF0ZSxpPSEhdCxvPWkmJnQuYXV0aG9yLmlzQWRtaW47cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLnhWLHtpc0JvcmRlcmxlc3M6ZSxuZXh0UGFydEJ5QWRtaW46aSYmbyxsYXN0UGFydDohaSxpc1N1Y2Nlc3NmdWw6biYmcn0sbiYmIXI/dGhpcy5yZW5kZXJTdWNjZXNzTWVzc2FnZSgpOnRoaXMucmVuZGVyQ2hhbm5lbE9wdGlvbnMoKSl9fU5vdGlmaWNhdGlvbkNoYW5uZWxzLnByb3BUeXBlcz17Y29udmVyc2F0aW9uSWQ6bCgpLnN0cmluZy5pc1JlcXVpcmVkLHVzZXJJZDpsKCkuc3RyaW5nLmlzUmVxdWlyZWQsdXNlclJvbGU6bCgpLm9uZU9mKFsidXNlciIsImxlYWQiLCJ2aXNpdG9yIl0pLHVzZXJDb3VudHJ5Q29kZTpsKCkuc3RyaW5nLHVzZXJTdXBwbGllZEVtYWlsOmwoKS5zdHJpbmcsdXNlck5hbWU6bCgpLnN0cmluZyxwaG9uZU51bWJlcjpsKCkuc3RyaW5nLGlzU2F2aW5nOmwoKS5ib29sLmlzUmVxdWlyZWQsZXJyb3JNZXNzYWdlOmwoKS5zdHJpbmcsc2hvd0Vycm9yTWVzc2FnZTpsKCkuYm9vbC5pc1JlcXVpcmVkLHNtc0VuYWJsZWQ6bCgpLmJvb2wuaXNSZXF1aXJlZCxuZXh0UGFydDpsKCkub2JqZWN0LG9uRW1haWxDb2xsZWN0b3JTdWJtaXQ6bCgpLmZ1bmMuaXNSZXF1aXJlZCxvblBob25lTnVtYmVyQ29sbGVjdG9yU3VibWl0OmwoKS5mdW5jLmlzUmVxdWlyZWQsb25JbnB1dENoYW5nZTpsKCkuZnVuYy5pc1JlcXVpcmVkLGlzQm9yZGVybGVzczpsKCkuYm9vbH07dmFyIEs9big0MTQzMSk7Y29uc3QgWT0oMCxyLmNvbm5lY3QpKChlPT57Y29uc3R7Y29udmVyc2F0aW9uSWQ6dCxzbXNFbmFibGVkOm59PWUuYXBwLHtpZDpyLHJvbGU6aSx1c2VyU3VwcGxpZWRFbWFpbDpvLG5hbWU6YSxwaG9uZU51bWJlcjpzLGNvdW50cnlDb2RlOmx9PWUudXNlcix7aXNTYXZpbmc6YyxzaG93RXJyb3JNZXNzYWdlOmQsZXJyb3JNZXNzYWdlOnB9PWUubm90aWZpY2F0aW9uQ2hhbm5lbHM7cmV0dXJue2NvbnZlcnNhdGlvbklkOnQsdXNlcklkOnIsdXNlclJvbGU6aSx1c2VyQ291bnRyeUNvZGU6bCx1c2VyU3VwcGxpZWRFbWFpbDpvLHVzZXJOYW1lOmEscGhvbmVOdW1iZXI6cyxzbXNFbmFibGVkOm4saXNTYXZpbmc6YyxzaG93RXJyb3JNZXNzYWdlOmQsZXJyb3JNZXNzYWdlOnB9fSksKGU9Pih7b25FbWFpbENvbGxlY3RvclN1Ym1pdDp0PT57ZSgoMCxLLl9xKShCLlpQLHQpKX0sb25QaG9uZU51bWJlckNvbGxlY3RvclN1Ym1pdDp0PT57ZSgoMCxLLlJ2KShCLlpQLHQpKX0sb25JbnB1dENoYW5nZTooKT0+e2UoKDAsSy51MSkoKSl9fSkpLCgoZSx0LG4pPT57Y29uc3Qgcj17b25JbnB1dENoYW5nZTooKT0+dC5vbklucHV0Q2hhbmdlKCl9O3JldHVybiBPYmplY3QuYXNzaWduKHt9LG4sZSx0LHIpfSkpKE5vdGlmaWNhdGlvbkNoYW5uZWxzKTtjbGFzcyBOb3RpZmljYXRpb25DaGFubmVsc0NhcmQgZXh0ZW5kcyBjLkNvbXBvbmVudHtyZW5kZXJBZG1pbkF2YXRhcigpe2NvbnN0e2lzQm9yZGVybGVzczplfT10aGlzLnByb3BzO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC5tcix7aXNCb3JkZXJsZXNzOmV9LGMuY3JlYXRlRWxlbWVudCh3Llose2F1dGhvcjp0aGlzLnByb3BzLnBhcnQuYXV0aG9yLHNpemU6Mjh9KSl9cmVuZGVyKCl7Y29uc3R7aXNCb3JkZXJsZXNzOmV9PXRoaXMucHJvcHM7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLmJwLHtpc0JvcmRlcmxlc3M6ZX0sdGhpcy5wcm9wcy5oYXNBdmF0YXImJnRoaXMucmVuZGVyQWRtaW5BdmF0YXIoKSxjLmNyZWF0ZUVsZW1lbnQoWSx7bmV4dFBhcnQ6dGhpcy5wcm9wcy5uZXh0UGFydCxpc0JvcmRlcmxlc3M6ZX0pKX19Tm90aWZpY2F0aW9uQ2hhbm5lbHNDYXJkLmRlZmF1bHRQcm9wcz17aGFzQXZhdGFyOiEwLGlzQm9yZGVybGVzczohMX0sTm90aWZpY2F0aW9uQ2hhbm5lbHNDYXJkLnByb3BUeXBlcz17cGFydDpsKCkub2JqZWN0LmlzUmVxdWlyZWQsbmV4dFBhcnQ6bCgpLm9iamVjdCxoYXNBdmF0YXI6bCgpLmJvb2wsaXNCb3JkZXJsZXNzOmwoKS5ib29sfTt2YXIgSj1uKDk1NzY0KSxYPW4oMjg4MSksUT1uKDUwNzAwKSxlZT1uKDM5MTEzKTtjb25zdCB0ZT1uLnArImltYWdlcy9zZW5kLWJ1dHRvbi5hMmRkMDY3Yi5wbmciLG5lPW4ucCsiaW1hZ2VzL3NlbmQtYnV0dG9uQDJ4Ljc1MDI2MDRjLnBuZyIscmU9KDAsUS5aUCkoImRpdiIse3RhcmdldDoiZTFscGRtdHAwIn0pKCJwYWRkaW5nOjVweCAxNXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICIsKDAsUS5yUykoImxpZ2h0R3JleTgiKSwiOyIpLGllPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxbHBkbXRwMSJ9KSgpLG9lPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxbHBkbXRwMiJ9KSgicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTp0YWJsZTt3aWR0aDoxMDAlO2RpdntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246dG9wO30iLGllLmNsYXNzTmFtZSwie3dpZHRoOjQwcHg7fSIpLGFlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxbHBkbXRwMyJ9KSgicG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjE4MHB4O3RleHRhcmVhLHByZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nOjEycHg7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6IiwoMCxRLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7Ym9yZGVyOm5vbmU7bGluZS1oZWlnaHQ6MTlweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDt9dGV4dGFyZWF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2NvbG9yOiIsKDAsUS5yUykoImlucHV0VGV4dCIpLCI7cmVzaXplOm5vbmU7b3ZlcmZsb3cteTpoaWRkZW47Jjo6cGxhY2Vob2xkZXJ7Y29sb3I6IiwoMCxRLnJTKSgiaW5wdXRQbGFjZWhvbGRlciIpLCI7Zm9udC1zdHlsZToiLCgwLFEuclMpKCJmb250U2Fuc1NlcmlmIiksIjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTlweDtvcGFjaXR5OjAuNzt9fXByZXt2aXNpYmlsaXR5OmhpZGRlbjttYXgtaGVpZ2h0OjE0MHB4O30iKSxzZT0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWxwZG10cDQifSkoInBvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7Ym90dG9tOjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBsaW5lYXIsb3BhY2l0eSAxNTBtcyBlYXNlO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtvcGFjaXR5OjAuODsiLCgwLGVlLktvKSh0ZSxuZSwiMjBweCIsIjIwcHgiKSwiICY6aG92ZXJ7b3BhY2l0eToxO30iKSxsZT0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWxwZG10cDUifSkoe25hbWU6IjRiNmUwdiIsc3R5bGVzOiJ3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlcjpub25lO3RyYW5zaXRpb246Ym9yZGVyLXJhZGl1cyAzMDBtcyxvcGFjaXR5IDMwMG1zIDYwMG1zLGhlaWdodCA0MDBtcyAxMDAwbXM7In0pO2NsYXNzIENvbnZlcnNhdGlvblJhdGluZ1JlbWFya0lucHV0IGV4dGVuZHMgYy5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17dGV4dDp0aGlzLnByb3BzLmluaXRpYWxWYWx1ZX0sdGhpcy5oYW5kbGVGb2N1cz1lPT57aWYoKDAsZC5LMSkoKSl0aGlzLmZvY3VzVGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e2lmKCF0aGlzLm5vZGUpcmV0dXJuO2NvbnN0IGU9dGhpcy5ub2RlLmNsb3Nlc3QoIi5pbnRlcmNvbS1jb252ZXJzYXRpb24tYm9keS1wYXJ0cyIpOygwLE0ueFopKHRoaXMubm9kZSxlKX0pLDFlMyk7ZWxzZXtjb25zdCB0PWUudGFyZ2V0LnZhbHVlO2UudGFyZ2V0LnZhbHVlPSIiLGUudGFyZ2V0LnZhbHVlPXR9fSx0aGlzLmhhbmRsZUtleURvd249ZT0+eyhlPT4xMz09PWUua2V5Q29kZSYmIShlLmFsdEtleXx8ZS5zaGlmdEtleSkpKGUpJiYodGhpcy5oYW5kbGVTdWJtaXQoKSxlLnByZXZlbnREZWZhdWx0KCkpfSx0aGlzLmhhbmRsZVN1Ym1pdEJ1dHRvbkNsaWNrPWU9PntlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVTdWJtaXQoKX0sdGhpcy5oYW5kbGVJbnB1dENoYW5nZT1lPT57Y29uc3R7dmFsdWU6dH09ZS50YXJnZXQ7dGhpcy5zZXRTdGF0ZSh7dGV4dDp0fSksdGhpcy5wcm9wcy5vbkNoYW5nZSgpfX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NsZWFyVGltZW91dCh0aGlzLmZvY3VzVGltZW91dCl9aGFuZGxlU3VibWl0KCl7Y29uc3R7dGV4dDplfT10aGlzLnN0YXRlLHtvblN1Ym1pdDp0fT10aGlzLnByb3BzO3QoZSksdGhpcy5jb252ZXJzYXRpb25SYXRpbmdJbnB1dC5ibHVyKCl9cmVuZGVyKCl7Y29uc3R7dGV4dDplfT10aGlzLnN0YXRlO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQocmUse3JlZjplPT50aGlzLm5vZGU9ZX0sYy5jcmVhdGVFbGVtZW50KG9lLG51bGwsYy5jcmVhdGVFbGVtZW50KGFlLG51bGwsYy5jcmVhdGVFbGVtZW50KCJwcmUiLG51bGwsZSxjLmNyZWF0ZUVsZW1lbnQoImJyIixudWxsKSksYy5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIse2F1dG9Gb2N1czohMCxyZWY6ZT0+dGhpcy5jb252ZXJzYXRpb25SYXRpbmdJbnB1dD1lLHR5cGU6InRleHQiLG5hbWU6ImludGVyY29tLWNvbnZlcnNhdGlvbi1yYXRpbmctcmVtYXJrIix2YWx1ZTplLHBsYWNlaG9sZGVyOnRoaXMucHJvcHMucGxhY2Vob2xkZXIsb25Gb2N1czp0aGlzLmhhbmRsZUZvY3VzLG9uS2V5RG93bjp0aGlzLmhhbmRsZUtleURvd24sb25DaGFuZ2U6dGhpcy5oYW5kbGVJbnB1dENoYW5nZSxvbkJsdXI6RC5BRiwiYXJpYS1sYWJlbCI6dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn0pKSxjLmNyZWF0ZUVsZW1lbnQoaWUsbnVsbCxjLmNyZWF0ZUVsZW1lbnQobGUse29uVG91Y2hFbmQ6dGhpcy5oYW5kbGVTdWJtaXRCdXR0b25DbGljayxvbkNsaWNrOnRoaXMuaGFuZGxlU3VibWl0QnV0dG9uQ2xpY2ssImFyaWEtbGFiZWwiOigwLFMuSXUpKCJzdWJtaXQiKX0sYy5jcmVhdGVFbGVtZW50KHNlLG51bGwpKSkpKX19Q29udmVyc2F0aW9uUmF0aW5nUmVtYXJrSW5wdXQuZGVmYXVsdFByb3BzPXtpbml0aWFsVmFsdWU6IiJ9LENvbnZlcnNhdGlvblJhdGluZ1JlbWFya0lucHV0LnByb3BUeXBlcz17aW5pdGlhbFZhbHVlOmwoKS5zdHJpbmcscGxhY2Vob2xkZXI6bCgpLnN0cmluZy5pc1JlcXVpcmVkLG9uU3VibWl0OmwoKS5mdW5jLmlzUmVxdWlyZWQsb25DaGFuZ2U6bCgpLmZ1bmMuaXNSZXF1aXJlZH07Y29uc3QgY2U9KDAsUS5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxYXNlaWo5MCJ9KSgiJiwmOmhvdmVye3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246c3ViO30iLCgoe2ltYWdlczplfSk9PigwLGVlLktvKShlLmZpbGUsZS5maWxlMngsIjI4cHgiLCIyOHB4IikpKSxkZT0oMCxRLlpQKSgic3BhbiIse3RhcmdldDoiZTFyaTV0bmcwIn0pKCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyOHB4O2hlaWdodDoyOHB4OyIsKCh7aW1hZ2VzOmV9KT0+KDAsZWUuS28pKGUuZmlsZSxlLmZpbGUyeCwiMjhweCIsIjI4cHgiKSkpLHBlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxcmk1dG5nMSJ9KSgibWFyZ2luLXRvcDo1cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEzcHg7Y29sb3I6IiwoMCxRLnJTKSgic3ViaGVhZGVyVGV4dCIpLCI7dGV4dC1hbGlnbjpjZW50ZXI7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzOyIpLHVlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxcmk1dG5nMiJ9KSh7bmFtZToiMWJhdWx2eiIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1ibG9jazsifSksbWU9KDAsUS5aUCkoImRpdiIse3RhcmdldDoiZTFyaTV0bmczIn0pKCJ3aWR0aDozMHB4O21hcmdpbjo2cHggMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsmOmhvdmVyeyIscGUuY2xhc3NOYW1lLCJ7b3BhY2l0eToxO30iLGRlLmNsYXNzTmFtZSwie3RyYW5zZm9ybTpzY2FsZSgxLjI4KTtmaWx0ZXI6bm9uZTt9fSIsKCh7Y2hvc2VuOmV9KT0+ZSYmKDAsUS5pdikoZGUuY2xhc3NOYW1lLCJ7dHJhbnNmb3JtOnNjYWxlKDEuMjgpO30iKSksIiAiLCgoe290aGVyQ2hvc2VuOmV9KT0+ZSYmKDAsUS5pdikoZGUuY2xhc3NOYW1lLCJ7ZmlsdGVyOmdyYXlzY2FsZSgxKSBvcGFjaXR5KDAuMyk7fSIpKSksaGU9ezE6e2Vtb2ppOiLwn5igIix1bmljb2RlOiIxZjYyMCIsdG9vbHRpcEtleToidGVycmlibGUiLGltYWdlczp7ZmlsZTpuLnArImltYWdlcy9yYXRpbmctMS5hNjcyNWFmZi5wbmciLGZpbGUyeDpuLnArImltYWdlcy9yYXRpbmctMUAyeC5mMGMyMDA0My5wbmcifX0sMjp7ZW1vamk6IvCfmYEiLHVuaWNvZGU6IjFmNjE1Iix0b29sdGlwS2V5OiJiYWQiLGltYWdlczp7ZmlsZTpuLnArImltYWdlcy9yYXRpbmctMi41NTAyMDFlMC5wbmciLGZpbGUyeDpuLnArImltYWdlcy9yYXRpbmctMkAyeC4yZDk1YzkyYi5wbmcifX0sMzp7ZW1vamk6IvCfmJAiLHVuaWNvZGU6IjFmNjEwIix0b29sdGlwS2V5OiJva19kZXNjcmlwdGlvbiIsaW1hZ2VzOntmaWxlOm4ucCsiaW1hZ2VzL3JhdGluZy0zLmNlZGIwNzQ4LnBuZyIsZmlsZTJ4Om4ucCsiaW1hZ2VzL3JhdGluZy0zQDJ4LmRlZDczYTZkLnBuZyJ9fSw0OntlbW9qaToi8J+YgyIsdW5pY29kZToiMWY2MDMiLHRvb2x0aXBLZXk6ImdyZWF0IixpbWFnZXM6e2ZpbGU6bi5wKyJpbWFnZXMvcmF0aW5nLTQuNDYyZmJjMmUucG5nIixmaWxlMng6bi5wKyJpbWFnZXMvcmF0aW5nLTRAMnguNTdjYzdmNjIucG5nIn19LDU6e2Vtb2ppOiLwn6SpIix1bmljb2RlOiIxZjkyOSIsdG9vbHRpcEtleToiYW1hemluZyIsaW1hZ2VzOntmaWxlOm4ucCsiaW1hZ2VzL3JhdGluZy01LjllZjg0MTRlLnBuZyIsZmlsZTJ4Om4ucCsiaW1hZ2VzL3JhdGluZy01QDJ4LmU1ZjIyNzg5LnBuZyJ9fX07Y2xhc3MgQ29udmVyc2F0aW9uUmF0aW5nRW1vamkgZXh0ZW5kcyBjLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLmhhbmRsZUNsaWNrPWU9PntlLnByZXZlbnREZWZhdWx0KCk7Y29uc3R7cmF0aW5nSW5kZXg6dCxvblJhdGluZ0Nob3NlbjpufT10aGlzLnByb3BzO24odCl9fWdldFRvb2x0aXAoKXtjb25zdHtyYXRpbmdJbmRleDplfT10aGlzLnByb3BzO3JldHVybigwLFMuSXUpKGhlW2VdLnRvb2x0aXBLZXkpfXJlbmRlckVtb2ppSW1hZ2UoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGRlLHtjbGFzc05hbWU6ImludGVyY29tLWFuY2hvciIsb25DbGljazp0aGlzLmhhbmRsZUNsaWNrLCJhcmlhLWxhYmVsIjp0aGlzLmdldFRvb2x0aXAoKSxpbWFnZXM6aGVbdGhpcy5wcm9wcy5yYXRpbmdJbmRleF0uaW1hZ2VzfSl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLmdldFRvb2x0aXAoKTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHVlLG51bGwsYy5jcmVhdGVFbGVtZW50KG1lLHtjaG9zZW46dGhpcy5wcm9wcy5jaG9zZW4sb3RoZXJDaG9zZW46dGhpcy5wcm9wcy5vdGhlckNob3Nlbn0sdGhpcy5yZW5kZXJFbW9qaUltYWdlKCksYy5jcmVhdGVFbGVtZW50KHBlLG51bGwsZSkpKX19ZnVuY3Rpb24gZ2UoZSl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChjZSx7cm9sZToiaW1nIixpbWFnZXM6aGVbZS5yYXRpbmdJbmRleF0uaW1hZ2VzLCJhcmlhLWxhYmVsIjpoZVtlLnJhdGluZ0luZGV4XS50b29sdGlwS2V5fSl9Q29udmVyc2F0aW9uUmF0aW5nRW1vamkucHJvcFR5cGVzPXtyYXRpbmdJbmRleDpsKCkubnVtYmVyLmlzUmVxdWlyZWQsY2hvc2VuOmwoKS5ib29sLG90aGVyQ2hvc2VuOmwoKS5ib29sLG9uUmF0aW5nQ2hvc2VuOmwoKS5mdW5jLmlzUmVxdWlyZWR9O3ZhciBmZT1uKDkwMjEpLHhlPW4oNjEwNjQpO2NsYXNzIENvbnZlcnNhdGlvblJhdGluZyBleHRlbmRzIGMuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e30sdGhpcy5oYW5kbGVSZW1hcmtDaGFuZ2U9KCk9Pnt0aGlzLnNjcm9sbENvbnZlcnNhdGlvblBhcnRzKCl9LHRoaXMuaGFuZGxlSGVpZ2h0Q2hhbmdlPSh7aGVpZ2h0OmV9KT0+e3RoaXMuc2V0U3RhdGUoe2hlaWdodDplfSl9fWNvbXBvbmVudERpZFVwZGF0ZShlKXt0aGlzLmhhc0Nob3NlbkZpcnN0UmF0aW5nKGUpJiZ0aGlzLnNjcm9sbENvbnZlcnNhdGlvblBhcnRzKCl9aGFzQ2hvc2VuRmlyc3RSYXRpbmcoZSl7Y29uc3QgdD1lLmNob3NlblJhdGluZyx7Y2hvc2VuUmF0aW5nOm59PXRoaXMucHJvcHM7cmV0dXJuIHZvaWQgMD09PXQmJnZvaWQgMCE9PW59c2Nyb2xsQ29udmVyc2F0aW9uUGFydHMoKXtpZih2b2lkIDAhPT10aGlzLnByb3BzLm5leHRQYXJ0fHwhdGhpcy5ub2RlKXJldHVybjtjb25zdCBlPXRoaXMubm9kZS5jbG9zZXN0KCIuaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktcGFydHMiKTtlJiYoMCxNLk9nKShlKX1oYXNSYXRpbmcoKXtjb25zdHtjaG9zZW5SYXRpbmc6ZX09dGhpcy5wcm9wcztyZXR1cm4gZT4wfXNob3VsZFNob3dUaGFua3MoKXtjb25zdHtzdWJtaXR0ZWQ6ZX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5oYXNSZW1hcmsoKXx8ZX1oYXNSZW1hcmsoKXtjb25zdHtyZW1hcms6ZX09dGhpcy5wcm9wcztyZXR1cm4gdm9pZCAwIT09ZSYmIiIhPT1lfWlzQ2hvc2VuKGUpe3JldHVybiB0aGlzLnByb3BzLmNob3NlblJhdGluZz09PWV9aXNPdGhlckNob3NlbihlKXtyZXR1cm4gdGhpcy5oYXNSYXRpbmcoKSYmIXRoaXMuaXNDaG9zZW4oZSl9cmVuZGVyVGhhbmtzTWVzc2FnZSgpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleToiY29udmVyc2F0aW9uLXJhdGluZy10aGFua3MifSxjLmNyZWF0ZUVsZW1lbnQoeGUuaWMsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoeGUuWDgsbnVsbCwoMCxTLkl1KSgieW91X3JhdGVkX3RoZV9jb252ZXJzYXRpb24iKSwiICIsYy5jcmVhdGVFbGVtZW50KGdlLHtyYXRpbmdJbmRleDp0aGlzLnByb3BzLmNob3NlblJhdGluZ30pKSxjLmNyZWF0ZUVsZW1lbnQoeGUuaHMsbnVsbCwoMCxTLkl1KSgidGhhbmtzX2Zvcl9sZXR0aW5nX3VzX2tub3ciKSkpLHRoaXMuaGFzUmVtYXJrKCkmJnRoaXMucmVuZGVyUmVtYXJrKCkpfXJlbmRlclJlbWFyaygpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoeGUuX1csbnVsbCx0aGlzLnByb3BzLnJlbWFyayl9cmVuZGVyUmF0aW5nRm9ybSgpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoImRpdiIse2tleToiZm9ybSJ9LHRoaXMucmVuZGVyUmF0aW5nT3B0aW9ucygpLGMuY3JlYXRlRWxlbWVudChYLlose2R1cmF0aW9uOjUwMH0sdGhpcy5oYXNSYXRpbmcoKT90aGlzLnJlbmRlclJlbWFya0lucHV0KCk6bnVsbCkpfXJlbmRlclJhdGluZ09wdGlvbnMoKXtjb25zdCBlPVtdO2ZvcihsZXQgdD0xO3Q8PTU7dCsrKWUucHVzaChjLmNyZWF0ZUVsZW1lbnQoQ29udmVyc2F0aW9uUmF0aW5nRW1vamkse2tleTp0LHJhdGluZ0luZGV4OnQsY2hvc2VuOnRoaXMuaXNDaG9zZW4odCksb3RoZXJDaG9zZW46dGhpcy5pc090aGVyQ2hvc2VuKHQpLG9uUmF0aW5nQ2hvc2VuOnRoaXMucHJvcHMub25SYXRpbmdDaG9zZW59KSk7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCh4ZS5fXyxudWxsLGMuY3JlYXRlRWxlbWVudCh4ZS5tQixudWxsLGMuY3JlYXRlRWxlbWVudCh4ZS5jMixudWxsLCgwLFMuSXUpKCJyYXRlX3lvdXJfY29udmVyc2F0aW9uIikpKSxjLmNyZWF0ZUVsZW1lbnQoeGUuRmgsbnVsbCxlKSl9cmVuZGVyUmVtYXJrSW5wdXQoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KENvbnZlcnNhdGlvblJhdGluZ1JlbWFya0lucHV0LHtwbGFjZWhvbGRlcjooMCxTLkl1KSgidGVsbF91c19tb3JlIiksb25DaGFuZ2U6dGhpcy5oYW5kbGVSZW1hcmtDaGFuZ2Usb25TdWJtaXQ6dGhpcy5wcm9wcy5vblJlbWFya1N1Ym1pdH0pfXJlbmRlcigpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoeGUuYlMse3JlZjplPT50aGlzLm5vZGU9ZSxoZWlnaHQ6dGhpcy5zdGF0ZS5oZWlnaHR9LGMuY3JlYXRlRWxlbWVudChmZS5aLHtvbkNoYW5nZTp0aGlzLmhhbmRsZUhlaWdodENoYW5nZX0sYy5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsYy5jcmVhdGVFbGVtZW50KEouWix7YXBwZWFyRGVsYXk6MzAwfSx0aGlzLnNob3VsZFNob3dUaGFua3MoKT90aGlzLnJlbmRlclRoYW5rc01lc3NhZ2UoKTp0aGlzLnJlbmRlclJhdGluZ0Zvcm0oKSkpKSl9fUNvbnZlcnNhdGlvblJhdGluZy5wcm9wVHlwZXM9e2Nob3NlblJhdGluZzpsKCkubnVtYmVyLHJlbWFyazpsKCkuc3RyaW5nLHN1Ym1pdHRlZDpsKCkuYm9vbCxuZXh0UGFydDpsKCkub2JqZWN0LHBhcnQ6bCgpLm9iamVjdCxvblJlbWFya1N1Ym1pdDpsKCkuZnVuYy5pc1JlcXVpcmVkLG9uUmF0aW5nQ2hvc2VuOmwoKS5mdW5jLmlzUmVxdWlyZWR9O3ZhciB2ZT1uKDQ1NTA0KTtmdW5jdGlvbiB5ZShlLHQsbixyKXtyZXR1cm4oaSxvKT0+e2koYmUodCxuLHIpKTtjb25zdHtzZXNzaW9uOmF9PW8oKTtyZXR1cm4gZS5jaGFuZ2VDb252ZXJzYXRpb25SYXRpbmdJbmRleChhLHQsbixyKX19ZnVuY3Rpb24gYmUoZSx0LG4pe3JldHVybnt0eXBlOnZlLkpEcyxjb252ZXJzYXRpb25JZDplLHJhdGluZ0luZGV4Om4scmF0aW5nVXVpZDp0fX1mdW5jdGlvbiBFZShlLHQsbixyKXtyZXR1cm4oaSxvKT0+e2lmKGkoa2UodCxuLHIpKSx2b2lkIDA9PT1yfHwiIj09PXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0e3Nlc3Npb246YX09bygpO3JldHVybiBlLmFkZENvbnZlcnNhdGlvblJhdGluZ1JlbWFyayhhLHQsbixyKX19ZnVuY3Rpb24ga2UoZSx0LG4pe3JldHVybnt0eXBlOnZlLnNNcSxjb252ZXJzYXRpb25JZDplLHJlbWFyazpuLHJhdGluZ1V1aWQ6dH19Y29uc3QgQ2U9KDAsci5jb25uZWN0KSgoZT0+e2NvbnN0e2NvbnZlcnNhdGlvbklkOnR9PWUuYXBwO3JldHVybntjb252ZXJzYXRpb25JZDp0fX0pLChlPT4oe29uUmVtYXJrU3VibWl0Oih0LG4scik9PntlKEVlKEIuWlAsdCxuLHIpKX0sb25SYXRpbmdDaG9zZW46KHQsbixyKT0+e2UoeWUoQi5aUCx0LG4scikpfX0pKSwoKGUsdCxuKT0+e2NvbnN0e2NvbnZlcnNhdGlvbklkOnJ9PWUse2Nob3NlblJhdGluZzppLHJlbWFyazpvLHN1Ym1pdHRlZDphLHV1aWQ6c309bi5wYXJ0LmNvbnZlcnNhdGlvblJhdGluZyxsPXtvblJlbWFya1N1Ym1pdDplPT50Lm9uUmVtYXJrU3VibWl0KHIscyxlKSxvblJhdGluZ0Nob3NlbjplPT50Lm9uUmF0aW5nQ2hvc2VuKHIscyxlKSxjaG9zZW5SYXRpbmc6aSxyZW1hcms6byxzdWJtaXR0ZWQ6YX07cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbixlLHQsbCl9KSkoQ29udmVyc2F0aW9uUmF0aW5nKTt2YXIgd2U9big2NDQxMik7Y2xhc3MgQ29udmVyc2F0aW9uUmF0aW5nQ2FyZCBleHRlbmRzIGMuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e2lzQm9yZGVybGVzczplfT10aGlzLnByb3BzO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQod2UuaCx7aXNCb3JkZXJsZXNzOmV9LHRoaXMucHJvcHMuaGFzQXZhdGFyJiZjLmNyZWF0ZUVsZW1lbnQod2UuTix7aXNCb3JkZXJsZXNzOmV9LGMuY3JlYXRlRWxlbWVudCh3Llose2F1dGhvcjp0aGlzLnByb3BzLnBhcnQuYXV0aG9yfSkpLGMuY3JlYXRlRWxlbWVudChDZSx7bmV4dFBhcnQ6dGhpcy5wcm9wcy5uZXh0UGFydCxwYXJ0OnRoaXMucHJvcHMucGFydH0pKX19Q29udmVyc2F0aW9uUmF0aW5nQ2FyZC5kZWZhdWx0UHJvcHM9e2hhc0F2YXRhcjohMCxpc0JvcmRlcmxlc3M6ITF9LENvbnZlcnNhdGlvblJhdGluZ0NhcmQucHJvcFR5cGVzPXtwYXJ0OmwoKS5vYmplY3QuaXNSZXF1aXJlZCxuZXh0UGFydDpsKCkub2JqZWN0LGhhc0F2YXRhcjpsKCkuYm9vbCxpc0JvcmRlcmxlc3M6bCgpLmJvb2x9O3ZhciBTZT1uKDI0NTYxKSxQZT1uKDU4MjczKTtjbGFzcyBQb2ludGVyQ2FyZCBleHRlbmRzIGMuQ29tcG9uZW50e3JlbmRlcigpe2NvbnN0e3BhcnQ6ZSxhcHBOYW1lOnQsZnJhbWVXaW5kb3c6bn09dGhpcy5wcm9wcyx7YXV0aG9yOnIsYm9keTppfT1lO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoUGUuSzIse2NsYXNzTmFtZToiaW50ZXJjb20tcG9pbnRlciIsaXNJbmJveDohMH0sYy5jcmVhdGVFbGVtZW50KG0uWix7YXBwTmFtZTp0LGlzUmVwbHlTdHlsZTohMSxhdXRob3I6cn0sYy5jcmVhdGVFbGVtZW50KFBlLmE5LHtjbGFzc05hbWU6ImludGVyY29tLXBvaW50ZXItYm9keSJ9LGMuY3JlYXRlRWxlbWVudChoLlose2Jsb2NrczppLGZyYW1lV2luZG93Om59KSxjLmNyZWF0ZUVsZW1lbnQoU2UuRiQse2lzSW5zaWRlSW5ib3g6ITB9KSkpKX19dmFyIFRlPW4oNzgyMDcpLFplPW4oNTY5MzMpLEllPW4oMTk3NTMpLGplPW4oOTQxODQpLF9lPW4ubihqZSk7Y2xhc3MgTm90aWZpY2F0aW9uQ2hhbm5lbENvbGxlY3RvckNhcmRDb250cm9scyBleHRlbmRzIGMuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLmhhbmRsZUVtYWlsQ2hhbm5lbENsaWNrPWU9PntlLnByZXZlbnREZWZhdWx0KCksdGhpcy5wcm9wcy5vbkNoYW5uZWxDaGFuZ2UoImVtYWlsIil9LHRoaXMuaGFuZGxlUGhvbmVOdW1iZXJDaGFubmVsQ2xpY2s9ZT0+e2UucHJldmVudERlZmF1bHQoKSx0aGlzLnByb3BzLm9uQ2hhbm5lbENoYW5nZSgicGhvbmUiKX0sdGhpcy5pc1NhdmVkPSgpPT57Y29uc3R7aXNFbWFpbFNhdmVkOmUsaXNQaG9uZU51bWJlclNhdmVkOnR9PXRoaXMucHJvcHM7cmV0dXJuIGV8fHR9LHRoaXMuaXNTZWxlY3RlZD1lPT5lPT09dGhpcy5wcm9wcy5jaGFubmVsfWdldENsYXNzTmFtZSgpe3JldHVybiBfZSgpKHsiaW50ZXJjb20tbm90aWZpY2F0aW9uLWNoYW5uZWwtY29sbGVjdG9yLWNhcmQtY29udHJvbHMiOiEwLCJpbnRlcmNvbS1ub3RpZmljYXRpb24tY2hhbm5lbC1jb2xsZWN0b3ItY2FyZC1jb250cm9scy1zYXZlZCI6dGhpcy5pc1NhdmVkKCl9KX1nZXRDaGFubmVsQ2xhc3NOYW1lKGUpe3JldHVybiBfZSgpKHsiaW50ZXJjb20tYW5jaG9yIjohMCwiaW50ZXJjb20tbm90aWZpY2F0aW9uLWNoYW5uZWwtY29sbGVjdG9yLWNhcmQtY29udHJvbHMtY2hhbm5lbCI6ITAsImludGVyY29tLW5vdGlmaWNhdGlvbi1jaGFubmVsLWNvbGxlY3Rvci1jYXJkLWNvbnRyb2xzLWNoYW5uZWwtc2VsZWN0ZWQiOnRoaXMuaXNTZWxlY3RlZChlKX0pfXJlbmRlckNoYW5uZWxzKCl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLnVpLHtjbGFzc05hbWU6ImludGVyY29tLW5vdGlmaWNhdGlvbi1jaGFubmVsLWNvbGxlY3Rvci1jYXJkLWNvbnRyb2xzLWNoYW5uZWxzIn0sYy5jcmVhdGVFbGVtZW50KEwuSGIse2lzU2VsZWN0ZWQ6dGhpcy5pc1NlbGVjdGVkKCJlbWFpbCIpLGNsYXNzTmFtZTp0aGlzLmdldENoYW5uZWxDbGFzc05hbWUoImVtYWlsIiksb25DbGljazp0aGlzLmhhbmRsZUVtYWlsQ2hhbm5lbENsaWNrfSwoMCxTLkl1KSgiZW1haWwiKSksYy5jcmVhdGVFbGVtZW50KEwuSGIse2lzU2VsZWN0ZWQ6dGhpcy5pc1NlbGVjdGVkKCJwaG9uZSIpLGNsYXNzTmFtZTp0aGlzLmdldENoYW5uZWxDbGFzc05hbWUoInBob25lIiksb25DbGljazp0aGlzLmhhbmRsZVBob25lTnVtYmVyQ2hhbm5lbENsaWNrfSwoMCxTLkl1KSgic21zIikpKX1yZW5kZXJQcm9tcHQoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEwuWlQse2NsYXNzTmFtZToiaW50ZXJjb20tbm90aWZpY2F0aW9uLWNoYW5uZWwtY29sbGVjdG9yLWNhcmQtY29udHJvbHMtcHJvbXB0In0sdGhpcy5wcm9wcy5pc1Bob25lTnVtYmVyRW5hYmxlZD8oMCxTLkl1KSgiZ2V0X25vdGlmaWVkIik6KDAsUy5JdSkoImdldF9ub3RpZmllZF9ieV9lbWFpbCIpKX1yZW5kZXJNZXNzYWdlKCl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLkose2NsYXNzTmFtZToiaW50ZXJjb20tbm90aWZpY2F0aW9uLWNoYW5uZWwtY29sbGVjdG9yLWNhcmQtY29udHJvbHMtbWVzc2FnZSJ9LHRoaXMucHJvcHMuaXNFbWFpbFNhdmVkPygwLFMuSXUpKCJ5b3VsbF9iZV9ub3RpZmllZF9oZXJlX2FuZF9ieV9lbWFpbCIpOigwLFMuSXUpKCJ5b3VsbF9iZV9ub3RpZmllZF9oZXJlX2FuZF9ieV9zbXMiKSl9cmVuZGVyKCl7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMLml0LHtpc1NhdmVkOnRoaXMuaXNTYXZlZCgpLGNsYXNzTmFtZTp0aGlzLmdldENsYXNzTmFtZSgpfSx0aGlzLnJlbmRlck1lc3NhZ2UoKSx0aGlzLnJlbmRlclByb21wdCgpLHRoaXMucHJvcHMuaXNQaG9uZU51bWJlckVuYWJsZWQ/dGhpcy5yZW5kZXJDaGFubmVscygpOm51bGwpfX12YXIgT2U9big4NDQ5NCksQWU9bigzMDQ1Myk7Y2xhc3MgTm90aWZpY2F0aW9uQ2hhbm5lbENvbGxlY3RvckNhcmQgZXh0ZW5kcyBjLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17Y2hhbm5lbDoic2F2ZWQiPT09dGhpcy5wcm9wcy5waG9uZU51bWJlclNhdmVTdGF0ZT8icGhvbmUiOiJlbWFpbCIscHJldlByb3BzOnRoaXMucHJvcHN9LHRoaXMuaGFuZGxlQ2hhbm5lbENoYW5nZT1lPT57dGhpcy5zZXRTdGF0ZSh7Y2hhbm5lbDplfSl9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7cGFydDplLGNvbnZlcnNhdGlvbklkOnR9PXRoaXMucHJvcHMse2Zvcm06bn09ZTtuJiZuLmF0dHJpYnV0ZXMuZm9yRWFjaCgoKHtpZGVudGlmaWVyOnJ9KT0+eygwLGYuV00pKCJyZWNlaXZlZCIsIm9wZXJhdG9yX3JlcGx5IiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7dHlwZToiYXV0b21hdGVkX2xlYWRfcXVhbGlmaWNhdGlvbiIsY29udmVyc2F0aW9uX2lkOnQscGFydF9pZDplLmlkLGF0dHJpYnV0ZV9pZGVudGlmaWVyOnIsYXR0cmlidXRlX3R5cGU6cixmb3JtX3R5cGU6bi50eXBlLGF0dHJpYnV0ZV9pc19jdXN0b21fZGF0YTohMX0pfSkpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoZSx0KXtpZighdHx8eigpKGUsdC5wcmV2UHJvcHMpKXJldHVybiBudWxsO2xldCBuO3JldHVybiJzYXZlZCI9PT1lLmVtYWlsU2F2ZVN0YXRlP249ImVtYWlsIjoic2F2ZWQiPT09ZS5waG9uZU51bWJlclNhdmVTdGF0ZSYmKG49InBob25lIiksbj97Y2hhbm5lbDpuLHByZXZQcm9wczplfTp7cHJldlByb3BzOmV9fXJlbmRlckF2YXRhcigpe3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC52byxudWxsLGMuY3JlYXRlRWxlbWVudCh3Llose2F1dGhvcjp0aGlzLnByb3BzLnBhcnQuYXV0aG9yfSkpfXJlbmRlckNvbnRyb2xzKCl7Y29uc3R7ZW1haWxTYXZlU3RhdGU6ZSxwaG9uZU51bWJlclNhdmVTdGF0ZTp0LGlzUGhvbmVOdW1iZXJFbmFibGVkOm59PXRoaXMucHJvcHMscj0ic2F2ZWQiPT09ZSxpPSJzYXZlZCI9PT10O3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTm90aWZpY2F0aW9uQ2hhbm5lbENvbGxlY3RvckNhcmRDb250cm9scyx7Y2hhbm5lbDp0aGlzLnN0YXRlLmNoYW5uZWwsaXNFbWFpbFNhdmVkOnIsaXNQaG9uZU51bWJlclNhdmVkOmksaXNQaG9uZU51bWJlckVuYWJsZWQ6bixvbkNoYW5uZWxDaGFuZ2U6dGhpcy5oYW5kbGVDaGFubmVsQ2hhbmdlfSl9cmVuZGVyQXR0cmlidXRlKCl7dmFyIGU7Y29uc3R7cGFydDp0LGRpc2FibGVkOm4sZW1haWw6cixwaG9uZU51bWJlcjppLGVtYWlsU2F2ZVN0YXRlOm8scGhvbmVOdW1iZXJTYXZlU3RhdGU6YSxkZWZhdWx0Q291bnRyeUNvZGU6cyxvbkVtYWlsU3VibWl0Omwsb25QaG9uZU51bWJlclN1Ym1pdDpkfT10aGlzLnByb3BzLHA9bnVsbD09PShlPXQuZm9ybSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuYXR0cmlidXRlcy5maW5kKCgoe2lkZW50aWZpZXI6ZX0pPT5lPT09dGhpcy5zdGF0ZS5jaGFubmVsKSk7cmV0dXJuImVtYWlsIj09PXRoaXMuc3RhdGUuY2hhbm5lbD9jLmNyZWF0ZUVsZW1lbnQoT2UuWix7ZGlzYWJsZWQ6bix2YWx1ZTpyLHNhdmVTdGF0ZTpvLGlzQm9yZGVybGVzczohMSxpc1JlcGx5VHlwZTohMSxpc05vdGlmaWNhdGlvbkNoYW5uZWw6ITAsb25TdWJtaXQ6bH0pOmMuY3JlYXRlRWxlbWVudChBZS5aLHtkaXNhYmxlZDpuLHZhbHVlOmksa2V5Omksc2F2ZVN0YXRlOmEsZXJyb3JDb2RlOm51bGw9PXA/dm9pZCAwOnAuZXJyb3JDb2RlLGRlZmF1bHRDb3VudHJ5Q29kZTpzLGlzQm9yZGVybGVzczohMSxpc1JlcGx5VHlwZTohMSxpc05vdGlmaWNhdGlvbkNoYW5uZWw6ITAsb25TdWJtaXQ6ZH0pfWlzU2F2ZWQoKXtjb25zdHtlbWFpbFNhdmVTdGF0ZTplLHBob25lTnVtYmVyU2F2ZVN0YXRlOnR9PXRoaXMucHJvcHM7cmV0dXJuInNhdmVkIj09PWV8fCJzYXZlZCI9PT10fXJlbmRlcigpe2NvbnN0e2lzQm9yZGVybGVzczplfT10aGlzLnByb3BzO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoTC5zayxudWxsLHRoaXMucHJvcHMuaGFzQXZhdGFyP3RoaXMucmVuZGVyQXZhdGFyKCk6bnVsbCxjLmNyZWF0ZUVsZW1lbnQoTC5xayx7aXNCb3JkZXJsZXNzOmV9LHRoaXMucmVuZGVyQ29udHJvbHMoKSx0aGlzLnJlbmRlckF0dHJpYnV0ZSgpKSl9fXZhciBCZT1uKDEyMzI1KTtjb25zdCBSZT0oZSx0KT0+ZS5hdHRyaWJ1dGVzLmZpbmQoKGU9PmUuaWRlbnRpZmllcj09PXQpKSx6ZT0oMCxyLmNvbm5lY3QpKCgoZSx0KT0+e2NvbnN0e3BhcnQ6bn09dCx7aWQ6cixmb3JtOml9PW4sbz1lLnVzZXIuY291bnRyeUNvZGV8fCJ1cyIse2NvbnZlcnNhdGlvbklkOmF9PWUuYXBwLHM9UmUoaSwiZW1haWwiKSxsPVJlKGksInBob25lIiksYz12b2lkIDAhPT1sLHt2YWx1ZTpkLHNhdmVTdGF0ZTpwfT1zO2xldCB1LG07cmV0dXJuIGMmJih1PWwudmFsdWUsbT1sLnNhdmVTdGF0ZSkse2NvbnZlcnNhdGlvbklkOmEscGFydElkOnIsZW1haWw6ZCxwaG9uZU51bWJlcjp1LGVtYWlsU2F2ZVN0YXRlOnAscGhvbmVOdW1iZXJTYXZlU3RhdGU6bSxpc1Bob25lTnVtYmVyRW5hYmxlZDpjLGRlZmF1bHRDb3VudHJ5Q29kZTpvfX0pLChlPT4oe29uQXR0cmlidXRlU3VibWl0KHQsbixyLGksbyl7Y29uc3QgYT1yO2UoKDAsQmUuaEIpKEIuWlAsdCxuLHIsaSxhLG8sITEpKX19KSksKChlLHQsbik9Pk9iamVjdC5hc3NpZ24oe30sZSx0LG4se29uRW1haWxTdWJtaXQocil7dC5vbkF0dHJpYnV0ZVN1Ym1pdChlLmNvbnZlcnNhdGlvbklkLGUucGFydElkLCJlbWFpbCIscixuLnBhcnQuZm9ybS50eXBlKX0sb25QaG9uZU51bWJlclN1Ym1pdChyKXt0Lm9uQXR0cmlidXRlU3VibWl0KGUuY29udmVyc2F0aW9uSWQsZS5wYXJ0SWQsInBob25lIixyLG4ucGFydC5mb3JtLnR5cGUpfX0pKSkoTm90aWZpY2F0aW9uQ2hhbm5lbENvbGxlY3RvckNhcmQpO3ZhciBOZT1uKDI1NjE2KTt2YXIgTWU9bigxNTE3OCk7Y29uc3QgRGU9KDAsci5jb25uZWN0KSgoZT0+KHtjb252ZXJzYXRpb246KDAsTWUubUEpKGUpLHVzZXJJZDplLnVzZXIuaWR9KSkpKChmdW5jdGlvbihlKXtjb25zdCB0PSgwLE5lLlopKCJyZXN0cmljdEludGVyYWN0aXZpdHlUb0NvbnZlcnNhdGlvbk93bmVyIik7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbnRlcmNvbS1hdHRyaWJ1dGUtY29sbGVjdG9yIn0sKCgpPT57Y29uc3R7Y29udmVyc2F0aW9uOm4scGFydDpyLGhhc0F2YXRhcjppLGlzQm9yZGVybGVzczpvLGZyYW1lV2luZG93OmEsdXNlcklkOnN9PWUse2Zvcm06bH09cixkPXQmJm4ub3duZXJJZCE9PXMscD1uLnByZXZlbnRFbmRVc2VyUmVwbGllc3x8ZDtyZXR1cm4gbCYmIm5vdGlmaWNhdGlvbl9jaGFubmVsIj09PWwudHlwZT9jLmNyZWF0ZUVsZW1lbnQoemUse2Rpc2FibGVkOnAscGFydDpyLGhhc0F2YXRhcjppLGlzQm9yZGVybGVzczpvfSk6bCYmInVwZnJvbnRfY29sbGVjdGlvbiI9PT1sLnR5cGU/Yy5jcmVhdGVFbGVtZW50KEllLlpQLHtkaXNhYmxlZDpwLHBhcnQ6cixoYXNBdmF0YXI6aSxpc0JvcmRlcmxlc3M6byxoaWRlTnVtYmVyaW5nOiEwLGZyYW1lV2luZG93OmEsa2V5OkpTT04uc3RyaW5naWZ5KHIpfSk6Yy5jcmVhdGVFbGVtZW50KEllLlpQLHtkaXNhYmxlZDpwLHBhcnQ6cixoYXNBdmF0YXI6aSxpc0JvcmRlcmxlc3M6byxmcmFtZVdpbmRvdzphLGtleTpKU09OLnN0cmluZ2lmeShyKX0pfSkoKSl9KSk7dmFyIExlPW4oMzMxMzEpO2NvbnN0IEdlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMXRyNmRhMCJ9KSgibWF4LXdpZHRoOjEwMCU7Zm9udC1zaXplOjE0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjE0cHg7cG9zaXRpb246cmVsYXRpdmU7IixMZS5FLmNsYXNzTmFtZSwie2JvdHRvbTotMTdweDtsZWZ0OjQ1cHg7fSIpLEZlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMXRyNmRhMSJ9KSh7bmFtZToiY3oxeW0yIixzdHlsZXM6IndpZHRoOjMwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlOyJ9KSxxZT0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTF0cjZkYTIifSkoImNvbG9yOiIsKDAsUS5yUykoInBhcnRpY2lwYW50VGV4dCIpLCI7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDsiKSxIZT0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTF0cjZkYTMifSkoe25hbWU6ImpjN2wwZiIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzozcHggMDttYXJnaW4tbGVmdDoxNXB4O21heC13aWR0aDpjYWxjKDEwMCUgLSA0NXB4KTtjb2xvcjojNzg5MDljO2xpbmUtaGVpZ2h0OjEuMztwb3NpdGlvbjpyZWxhdGl2ZTsifSk7dmFyIFdlPW4oNTI1MDApLFVlPW4oNjk4NjgpO2NsYXNzIFBhcnRpY2lwYW50RXZlbnQgZXh0ZW5kcyBjLkNvbXBvbmVudHtyZW5kZXJBdmF0YXIoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEZlLG51bGwsYy5jcmVhdGVFbGVtZW50KHcuWix7YXV0aG9yOnRoaXMucHJvcHMucGFydC5ldmVudERhdGEucGFydGljaXBhbnR9KSl9cmVuZGVyVGV4dCgpe2NvbnN0e2NyZWF0ZWRBdDplfT10aGlzLnByb3BzLnBhcnQ7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChVZS5aUCx7Y29udGVudDplJiYoKDAsV2UuWEIpKGUpfHwiIil9LCgoZSx0KT0+Yy5jcmVhdGVFbGVtZW50KEhlLHQsYy5jcmVhdGVFbGVtZW50KHFlLG51bGwsdGhpcy5wYXJ0VHlwZVRleHQoKSksZSkpKX1wYXJ0VHlwZVRleHQoKXtyZXR1cm4gdGhpcy5wcm9wcy5wYXJ0LmV2ZW50RGF0YS5ldmVudEFzUGxhaW5UZXh0fXJlbmRlclRpbWVzdGFtcCgpe2NvbnN0e2NyZWF0ZWRBdDplfT10aGlzLnByb3BzLnBhcnQ7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChMZS5FLG51bGwsKDAsV2UuWEIpKGUpKX1yZW5kZXIoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEdlLG51bGwsdGhpcy5yZW5kZXJBdmF0YXIoKSx0aGlzLnJlbmRlclRleHQoKSx0aGlzLnJlbmRlclRpbWVzdGFtcCgpKX19dmFyIFZlPW4oNjc1MjQpLCRlPW4oMTkyNzkpLEtlPW4oNjA3MDcpLFllPW4oODE3NzgpLEplPW4oODAyOTkpLFhlPW4oNDA4ODcpO2NvbnN0IFFlPSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYnM0OGt5MCJ9KSgidGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZDsiLCgoe3RoZW1lOmV9KT0+YGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2UuYXBwQ29sb3JTZW1pVHJhbnNwYXJlbnQzMH1gKSksZXQ9KDAsUS5aUCkoImRpdiIse3RhcmdldDoiZTFiczQ4a3kxIn0pKHtuYW1lOiI5djZxZiIsc3R5bGVzOiJwYWRkaW5nOjE2cHggMjRweCAxNnB4IDI0cHg7In0pLHR0PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYnM0OGt5MiJ9KSh7bmFtZToiMXJmc3JxZSIsc3R5bGVzOiJ0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbi10b3A6LTE2cHg7In0pLG50PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYnM0OGt5MyJ9KSh7bmFtZToibTB2eDRzIixzdHlsZXM6ImZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbTo2cHg7In0pLHJ0PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYnM0OGt5NCJ9KSgicHttYXJnaW4tdG9wOjRweDtsaW5lLWhlaWdodDoxMHB4O31zcGFueyIsKCh7dGhlbWU6ZX0pPT5gY29sb3I6ICR7ZS5kYXJrR3JleX07XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrYCksIn0iKSxpdD0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWJzNDhreTUifSkoe25hbWU6IjE0Nndna3ciLHN0eWxlczoiZm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6Ym9sZDsifSk7dmFyIG90PW4oNTk2ODUpLGF0PW4oNzE2OTEpO2NvbnN0IHN0PSh7dGlja2V0OmUscGFydDp0fSk9PmMuY3JlYXRlRWxlbWVudChYZS5rTCxudWxsLGMuY3JlYXRlRWxlbWVudChRZSxudWxsLGMuY3JlYXRlRWxlbWVudChldCxudWxsLGUubmFtZSkpLGMuY3JlYXRlRWxlbWVudChldCxudWxsLGUuYXR0cmlidXRlcy50aXRsZSYmYy5jcmVhdGVFbGVtZW50KG50LG51bGwsZS5hdHRyaWJ1dGVzLnRpdGxlLnZhbHVlKSxlLmF0dHJpYnV0ZXMuc3RhdHVzJiZjLmNyZWF0ZUVsZW1lbnQocnQsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoaXQsbnVsbCwoMCxTLkl1KSgic3RhdHVzIiksIjoiKSxjLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsZS5hdHRyaWJ1dGVzLnN0YXR1cy52YWx1ZSksYy5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCgwLFdlLlZPKSh0LmNyZWF0ZWRBdCkpKSksYy5jcmVhdGVFbGVtZW50KGV0LG51bGwsYy5jcmVhdGVFbGVtZW50KG90Lkxpbmsse3RvOigwLGF0LmlnKShlLmlkKX0sYy5jcmVhdGVFbGVtZW50KHR0LG51bGwsKDAsUy5JdSkoInZpZXdfbW9yZV9kZXRhaWxzIikpKSkpLGx0PSh7cGFydDplLGNvbnZlcnNhdGlvbklkOnR9KT0+e2NvbnN0IG49KDAsSmUuQ0cpKCgwLE1lLmpvKSh0KSk7aWYoIW4pcmV0dXJuIG51bGw7Y29uc3R7dGlja2V0OnJ9PW47cmV0dXJuIHI/Yy5jcmVhdGVFbGVtZW50KHN0LHtwYXJ0OmUsdGlja2V0OnJ9KTpudWxsfTt2YXIgY3Q9big3NjA3NCksZHQ9big1MTYpLHB0PW4oNDI0MTEpO2NvbnN0IHV0PSgwLFEuWlApKCJwIix7dGFyZ2V0OiJlMW13eWdrbDAifSkoImZvbnQtc2l6ZToxM3B4O2NvbG9yOiIsKCh7dGhlbWU6ZX0pPT5lLmdyZXkpLCJ9O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoxMHB4O3dpZHRoOjEwMCU7cGFkZGluZzo4cHggMDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtzdmd7bWluLXdpZHRoOjE2cHg7bWFyZ2luLXJpZ2h0OjhweDt9IiwoKHtpc0JvcmRlcmxlc3M6ZSx0aGVtZTp0fSk9PmUmJigwLFEuaXYpKCJiYWNrZ3JvdW5kOiIsdC53aGl0ZSwiO2JvcmRlci1yYWRpdXM6Iix0LmNvbnZlcnNhdGlvblBhcnRCb3JkZXJSYWRpdXNQeCwiO2JveC1zaGFkb3c6Iix0Lm5vdGlmaWNhdGlvbkJveFNoYWRvdywiO3BhZGRpbmc6OHB4OyIpKSk7ZnVuY3Rpb24gbXQoe3N0YXR1czplLHRpbWVzdGFtcDp0LHRlYW1tYXRlOm4saXNCb3JkZXJsZXNzOnJ9KXtjb25zdCBpPWU9PT1jdC5zQi5zdWJtaXR0ZWQ/InRpY2tldHNfc3RhdHVzX2V2ZW50X3N1Ym1pdHRlZCI6InRpY2tldHNfc3RhdHVzX2NoYW5nZV9ldmVudCIsbz0oMCxkdC5kZikoZSksYT0oMCxTLkl1KShpLHt0ZWFtbWF0ZTpuLHN1Ym1pdHRlZF9zdGF0dXM6byxzdGF0dXM6byx0aW1lc3RhbXA6KDAsV2UuVk8pKHQpfHwiIn0pO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQodXQseyJkYXRhLXRlc3RpZCI6ImlubGluZS1zdGF0dXMiLGlzQm9yZGVybGVzczpyfSxjLmNyZWF0ZUVsZW1lbnQocHQuWixudWxsKSxhKX1jbGFzcyBDb252ZXJzYXRpb25QYXJ0IGV4dGVuZHMgYy5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuaGFuZGxlQ2xpY2s9ZT0+e2lmKHRoaXMuaGFuZGxlTGlua0NsaWNrKGUpLCF0aGlzLmlzUmV0cnlhYmxlKCkpcmV0dXJuO2NvbnN0e3BhcnQ6dCxvblJldHJ5Om59PXRoaXMucHJvcHM7bih0KX0sdGhpcy5hZGRMaW5rQ2xpY2tlZE1ldHJpYz0oZSx0LG4pPT57KDAsZi5XTSkoImNsaWNrZWQiLCJsaW5rIiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7Y29udmVyc2F0aW9uX2lkOmUsW3QuaXNNZXNzYWdlPyJtZXNzYWdlX2lkIjoiY29tbWVudF9pZCJdOnQuaWQsdXJsOm4scGFydFR5cGU6dC5tZXNzYWdlVHlwZX0pfX1oYW5kbGVMaW5rQ2xpY2soZSl7Y29uc3QgdD1lLnRhcmdldDtpZigiYSIhPT10LnRhZ05hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm47Y29uc3Qgbj10LmdldEF0dHJpYnV0ZSgiaHJlZiIpLHtjb252ZXJzYXRpb25JZDpyLHBhcnQ6aX09dGhpcy5wcm9wcztuJiZ0aGlzLmFkZExpbmtDbGlja2VkTWV0cmljKHIsaSxuKX1pc0ZhaWxlZFBhcnQoKXtyZXR1cm4iZmFpbGVkIj09PXRoaXMucHJvcHMucGFydC5zYXZlU3RhdGV9aXNSZXRyeWFibGUoKXtyZXR1cm4gdGhpcy5pc0ZhaWxlZFBhcnQoKSYmISgwLGEuR0UpKHRoaXMucHJvcHMucGFydC5zYXZlRmFpbHVyZVJlYXNvbikmJiEoMCxhLkNHKSh0aGlzLnByb3BzLnBhcnQuc2F2ZUZhaWx1cmVSZWFzb24pfWlzUmljaENvbnRlbnRUeXBlKCl7Y29uc3R7cGFydDplfT10aGlzLnByb3BzO3JldHVybiEhZS5ib2R5JiYoMCxWZS5SNSkoZS5ib2R5KX1zaG91bGRTaG93TWV0YWRhdGEoKXtjb25zdHtwYXJ0SGFzTWV0YWRhdGE6ZSxpc0JvcmRlcmxlc3M6dH09dGhpcy5wcm9wcztyZXR1cm4gZSYmIXR9c2hvdWxkU2hvd0lubGluZU1ldGFkYXRhKCl7Y29uc3R7cGFydEhhc01ldGFkYXRhOmUsaXNCb3JkZXJsZXNzOnR9PXRoaXMucHJvcHM7cmV0dXJuIGUmJnQmJiF0aGlzLmlzUmljaENvbnRlbnRUeXBlKCl9cmVuZGVyQ29tbWVudCgpe3JldHVybigwLCRlLlopKHRoaXMucHJvcHMucGFydC5wYXJ0VHlwZSk/dGhpcy5yZW5kZXJFdmVudCgpOnRoaXMucmVuZGVyQ29tbWVudENvbnRhaW5lcigpfXJlbmRlckV2ZW50KCl7Y29uc3R7cGFydDplfT10aGlzLnByb3BzO3JldHVybiB0aGlzLnByb3BzLmlzQm9yZGVybGVzcz9udWxsOiJwYXJ0aWNpcGFudF9hZGRlZCI9PT1lLnBhcnRUeXBlfHwicGFydGljaXBhbnRfcmVtb3ZlZCI9PT1lLnBhcnRUeXBlfHwidGVtcG9yYXJ5X2V4cGVjdGF0aW9ucyI9PT1lLnBhcnRUeXBlP2MuY3JlYXRlRWxlbWVudChQYXJ0aWNpcGFudEV2ZW50LHtwYXJ0OmV9KTp2b2lkIDB9cmVuZGVyQ29tbWVudENvbnRhaW5lcigpe2NvbnN0e2lzTGFzdFBhcnQ6ZSxwYXJ0OnQsaGFzQXZhdGFyOm4saXNCb3JkZXJsZXNzOnIsaXNNb2JpbGU6aSxmcmFtZVdpbmRvdzpvLG9uSW1hZ2VDbGljazphfT10aGlzLnByb3BzO3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoVGUuWix7aXNMYXN0UGFydDplLHBhcnQ6dCxoYXNBdmF0YXI6bixpc0JvcmRlcmxlc3M6cixpc01vYmlsZTppLGZyYW1lV2luZG93Om8sc2hvd0lubGluZU1ldGFkYXRhOnRoaXMuc2hvdWxkU2hvd0lubGluZU1ldGFkYXRhKCksb25JbWFnZUNsaWNrOmF9KX1yZW5kZXJDaGF0Q2FyZEdyb3VwKCl7Y29uc3R7YXBwTmFtZTplLHBhcnQ6dCxoYXNBdmF0YXI6bixpc0JvcmRlcmxlc3M6cixpc01vYmlsZTppLGZyYW1lV2luZG93Om99PXRoaXMucHJvcHM7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChDLlose2FwcE5hbWU6ZSxwYXJ0OnQsaGFzQXZhdGFyOm4saXNCb3JkZXJsZXNzOnIsaXNNb2JpbGU6aSxzaG93SW5saW5lTWV0YWRhdGE6dGhpcy5zaG91bGRTaG93SW5saW5lTWV0YWRhdGEoKSxmcmFtZVdpbmRvdzpvfSl9cmVuZGVyQ29udmVyc2F0aW9uUGFydCgpe2NvbnN0e2FwcE5hbWU6ZSxwYXJ0OnQsbmV4dFBhcnQ6bixoYXNBdmF0YXI6cixyZWFjdGlvbnNSZXBseTppLG9uQXJ0aWNsZUNhcmRDbGljazpvLGNvbnZlcnNhdGlvbklkOmEsb25SZWFjdGlvblNlbGVjdDpzLGlzQm9yZGVybGVzczpsLGlzTW9iaWxlOmQsZnJhbWVXaW5kb3c6cH09dGhpcy5wcm9wcztzd2l0Y2godC5tZXNzYWdlVHlwZSl7Y2FzZSJwb3N0IjpyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHkse2FwcE5hbWU6ZSxjb252ZXJzYXRpb25JZDphLHBhcnQ6dCxyZWFjdGlvbnNSZXBseTppLG9uUmVhY3Rpb25TZWxlY3Q6cyxmcmFtZVdpbmRvdzpwLGlzQm9yZGVybGVzczpsfSk7Y2FzZSJub3RlIjpyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGsse2FwcE5hbWU6ZSxwYXJ0OnQsZnJhbWVXaW5kb3c6cH0pO2Nhc2UibGluayI6cmV0dXJuIGMuY3JlYXRlRWxlbWVudChBLHthcHBOYW1lOmUscGFydDp0LGhhc0F2YXRhcjpyLGlzQm9yZGVybGVzczpsLG9uQXJ0aWNsZUNhcmRDbGljazpvfSk7Y2FzZSJub3RpZmljYXRpb25DaGFubmVscyI6cmV0dXJuIGMuY3JlYXRlRWxlbWVudChOb3RpZmljYXRpb25DaGFubmVsc0NhcmQse3BhcnQ6dCxuZXh0UGFydDpuLGhhc0F2YXRhcjpyLGlzQm9yZGVybGVzczpsfSk7Y2FzZSJjb252ZXJzYXRpb25SYXRpbmciOnJldHVybiBkP3RoaXMucmVuZGVyQ29tbWVudCgpOmMuY3JlYXRlRWxlbWVudChDb252ZXJzYXRpb25SYXRpbmdDYXJkLHtwYXJ0OnQsbmV4dFBhcnQ6bixoYXNBdmF0YXI6cixpc0JvcmRlcmxlc3M6bH0pO2Nhc2UiYXR0cmlidXRlQ29sbGVjdG9yIjpyZXR1cm4gYy5jcmVhdGVFbGVtZW50KERlLHtwYXJ0OnQsaGFzQXZhdGFyOnIsaXNCb3JkZXJsZXNzOmwsZnJhbWVXaW5kb3c6cH0pO2Nhc2UidmlkZW8iOmNhc2UiY2hhdCI6Y2FzZSJhZG1pblJlcGx5IjpjYXNlImlubGluZUFuc3dlciI6Y2FzZSJyZWxldmFudEFydGljbGVzIjpjYXNlImZpbkFuc3dlciI6cmV0dXJuIGw/dGhpcy5yZW5kZXJDaGF0Q2FyZEdyb3VwKCk6dGhpcy5yZW5kZXJDb21tZW50KCk7Y2FzZSJwb2ludGVyIjpyZXR1cm4gYy5jcmVhdGVFbGVtZW50KFBvaW50ZXJDYXJkLHthcHBOYW1lOmUscGFydDp0LGZyYW1lV2luZG93OnB9KTtjYXNlInRpY2tldENhcmQiOnJldHVybiBjLmNyZWF0ZUVsZW1lbnQobHQse3BhcnQ6dCxjb252ZXJzYXRpb25JZDphfSk7Y2FzZSJ0aWNrZXRTdGF0dXNVcGRhdGUiOnJldHVybiBjLmNyZWF0ZUVsZW1lbnQobXQse2tleTpgJHt0LmV2ZW50RGF0YS5zdGF0dXN9LSR7dC5jcmVhdGVkQXR9YCxzdGF0dXM6dC5ldmVudERhdGEuc3RhdHVzLHRlYW1tYXRlOnQuYXV0aG9yLmZpcnN0TmFtZSx0aW1lc3RhbXA6dC5jcmVhdGVkQXQsaXNCb3Q6dC5hdXRob3IuaXNCb3QsaXNCb3JkZXJsZXNzOmx9KTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlckNvbW1lbnQoKX19cmVuZGVyTWV0YWRhdGEoKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHAuVzMsbnVsbCx0aGlzLnNob3VsZFNob3dNZXRhZGF0YSgpP2MuY3JlYXRlRWxlbWVudChwLkt2LHtjbGFzc05hbWVzOiJpbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1tZXRhZGF0YSIsdGltZW91dDozMDB9LGMuY3JlYXRlRWxlbWVudChaZS5aLHtwYXJ0OnRoaXMucHJvcHMucGFydH0pKTpudWxsKX1yZW5kZXJSZXBseVR5cGUoKXtjb25zdHtwYXJ0OmUsaXNCb3JkZXJsZXNzOnQsZnJhbWVXaW5kb3c6bn09dGhpcy5wcm9wcztpZigiYXR0cmlidXRlX2NvbGxlY3RvciI9PT1lLnJlcGx5VHlwZSlyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEllLlpQLHtwYXJ0OmUsaGFzQXZhdGFyOiExLGlzQm9yZGVybGVzczp0LGlzUmVwbHlUeXBlOiEwLGZyYW1lV2luZG93Om4sa2V5OigwLEtlLlopKEpTT04uc3RyaW5naWZ5KGUpKX0pfXJlbmRlcigpe2NvbnN0e3NldFBhcnRSZWY6ZSxpc0JvcmRlcmxlc3M6dCxncm91cGVkOm4sbmV4dFBhcnQ6cixjb252ZXJzYXRpb25IYXNTY3JvbGxlZDppLHBhcnQ6e2F1dGhvcjp7aXNBZG1pbjpvLGlzU2VsZjphfX19PXRoaXMucHJvcHM7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChZZS5ZLHtvbkNsaWNrOnRoaXMuaGFuZGxlQ2xpY2ssImFyaWEtbGFiZWwiOnRoaXMuaXNGYWlsZWRQYXJ0KCk/KDAsUy5JdSkoImZhaWxlZF9tZXNzYWdlIik6dm9pZCAwLHJvbGU6dGhpcy5pc1JldHJ5YWJsZSgpPyJidXR0b24iOnZvaWQgMCx0YWJJbmRleDp0aGlzLmlzUmV0cnlhYmxlKCk/IjAiOiItMSIscmVmOnQ9PmUmJmUodCx0aGlzLnByb3BzLnBhcnQpLGlzQWRtaW46byxpc1NlbGY6YSxpc0JvcmRlcmxlc3M6dCxncm91cGVkOm4saXNMYXN0UGFydDohcixpc0ZhaWxlZFBhcnQ6dGhpcy5pc0ZhaWxlZFBhcnQoKSxpc1JldHJ5YWJsZTp0aGlzLmlzUmV0cnlhYmxlKCksY29udmVyc2F0aW9uSGFzU2Nyb2xsZWQ6aSxpc1RpY2tldFN0YXR1c1VwZGF0ZToidGlja2V0U3RhdHVzVXBkYXRlIj09PXRoaXMucHJvcHMucGFydC5tZXNzYWdlVHlwZSwiZGF0YS10ZXN0aWQiOiJjb252ZXJzYXRpb24tcGFydCJ9LHRoaXMucmVuZGVyQ29udmVyc2F0aW9uUGFydCgpLHRoaXMucmVuZGVyUmVwbHlUeXBlKCksdGhpcy5yZW5kZXJNZXRhZGF0YSgpKX19Q29udmVyc2F0aW9uUGFydC5kZWZhdWx0UHJvcHM9e2lzQm9yZGVybGVzczohMSxpc01vYmlsZTohMSxjb252ZXJzYXRpb25JZDoiIn07dmFyIGh0PW4oNDM2NzkpLGd0PW4oNjAwNzEpO2NvbnN0IGZ0PSI1M3B4Iix4dD0oMCxRLkY0KSgiMCUsMzAlLDEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7fTE1JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTt9IiksdnQ9KDAsUS5GNCkoImZyb217b3BhY2l0eTowO2hlaWdodDoiLGZ0LCI7fXRve29wYWNpdHk6MDtoZWlnaHQ6MDt9IikseXQ9KDAsUS5GNCkoImZyb217b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjkpO301MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjkpO310b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpO30iKSxidD0oMCxRLkY0KSgiMCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjYpO301MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgwLjYpO30xMDAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSk7fSIpLEV0PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxaDJsd2o4MCJ9KSgicG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjQ1cHg7cGFkZGluZy1ib3R0b206MjRweDttaW4taGVpZ2h0OiIsZnQsIjsmLmludGVyY29tLWNvbnZlcnNhdGlvbi1wYXJ0LWVudGVyLWFjdGl2ZXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAxMDBtczt9Ji5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1leGl0LWFjdGl2ZXthbmltYXRpb246Iix2dCwiIDMwMG1zIDMwMG1zIGVhc2UtaW47fSIpLGt0PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxaDJsd2o4MSJ9KSgicG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTozNHB4OyIsRXQuY2xhc3NOYW1lLCIuaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtZW50ZXIgJnthbmltYXRpb246Iix5dCwiIDMwMG1zIGVhc2UtaW47fSIsRXQuY2xhc3NOYW1lLCIuaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtZXhpdC1hY3RpdmUgJnthbmltYXRpb246Iix5dCwiIDMwMG1zIGVhc2UtaW4gcmV2ZXJzZTt9IiksQ3Q9KDAsUS5aUCkoImRpdiIse3RhcmdldDoiZTFoMmx3ajgyIn0pKCJoZWlnaHQ6IixmdCwiO3dpZHRoOjY2cHg7cGFkZGluZzowO2JhY2tncm91bmQ6IiwoMCxRLnJTKSgiYWRtaW5Db21tZW50QmFja2dyb3VuZCIpLCI7Ym9yZGVyLXJhZGl1czoiLCgwLFEuclMpKCJjb252ZXJzYXRpb25QYXJ0Qm9yZGVyUmFkaXVzUHgiKSwiO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zZm9ybS1vcmlnaW46Ym90dG9tIGxlZnQ7IixFdC5jbGFzc05hbWUsIi5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1lbnRlciAme2FuaW1hdGlvbjoiLGJ0LCIgMzAwbXMgZWFzZS1pbjt9IixFdC5jbGFzc05hbWUsIi5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1leGl0LWFjdGl2ZSAme2FuaW1hdGlvbjoiLGJ0LCIgMzAwbXMgZWFzZS1pbiByZXZlcnNlO30iKSx3dD0oMCxRLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWgybHdqODMifSkoIndpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsUS5yUykoIm1ldGFUZXh0IiksIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjRweDthbmltYXRpb246Iix4dCwiIDFzIGluZmluaXRlIGVhc2UtaW47JjpmaXJzdC1vZi10eXBle2xlZnQ6MjBweDt9JjpudGgtb2YtdHlwZSgyKXtsZWZ0OjMwcHg7YW5pbWF0aW9uLWRlbGF5OjAuMTVzO30mOm50aC1vZi10eXBlKDMpe2xlZnQ6NDBweDthbmltYXRpb24tZGVsYXk6MC4zczt9Iik7dmFyIFN0PW4oODQ3MjIpO2Z1bmN0aW9uIFB0KCl7cmV0dXJuIFB0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sUHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFR0KGUpe2NvbnN0IHQ9ZS5hdXRvcGxheTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KFN0Lko1LFB0KHt9LGUse2F1dG9wbGF5OnR9KSl9Y29uc3QgWnQ9SlNPTi5wYXJzZSgneyJ2IjoiNC44LjAiLCJtZXRhIjp7ImciOiJMb3R0aWVGaWxlcyBBRSAzLjMuNiIsImEiOiIiLCJrIjoiIiwiZCI6IiIsInRjIjoiIn0sImZyIjoyOS45NzAwMDEyMjA3MDMxLCJpcCI6MCwib3AiOjcyMC4wMDAwMjkzMjYyMDEsInciOjcyMCwiaCI6NzIwLCJubSI6IkZpbi1pbkNoYXQtVGhpbmtpbmctTG90dGllIFNlYW1sZXNzIiwiZGRkIjowLCJhc3NldHMiOltdLCJsYXllcnMiOlt7ImRkZCI6MCwiaW5kIjoxLCJ0eSI6NCwibm0iOiIuZm9yZWdyb3VuZCIsImNsIjoiZm9yZWdyb3VuZCIsInNyIjoxLCJrcyI6eyJvIjp7ImEiOjAsImsiOjAsIml4IjoxMX0sInIiOnsiYSI6MCwiayI6NS42OSwiaXgiOjEwfSwicCI6eyJhIjowLCJrIjpbMzYwLjcyOCw1MzguODg0LDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlswLDAsMTAwXSwiaXgiOjZ9fSwiYW8iOjAsInNoYXBlcyI6W3sidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MCwiayI6eyJpIjpbWy0xNi45NzYsLTEuMzk4XSxbLTE1LjYxMiw2LjIyM10sWzUuNzQyLC05LjIyOV0sWzE0LjI5NSwxMi4zMzRdXSwibyI6W1sxNC41MzgsMS4xOTddLFsxMC4wOTYsLTQuMDI1XSxbLTIxLjEwOSwzMy45MjldLFstOC4yMjksLTcuMV1dLCJ2IjpbWy0wLjE2NSwtMjcuMTY4XSxbNDQuMDkyLC0zMS41Ml0sWzU5Ljc0NSwtMTMuMzddLFstMTAuODg5LC0wLjQ1Nl1dLCJjIjp0cnVlfSwiaXgiOjJ9LCJubSI6IlBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6ImZsIiwiYyI6eyJhIjowLCJrIjpbMSwxLDEsMV0sIml4Ijo0fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo1fSwiciI6MSwiYm0iOjAsIm5tIjoiRmlsbCAxIiwibW4iOiJBREJFIFZlY3RvciBHcmFwaGljIC0gRmlsbCIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbLTE0LjM4MSwyODMuMTJdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6Wy05LDE3MV0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMjAwLDIwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJtb3V0aCIsIm5wIjoyLCJjaXgiOjIsImJtIjowLCJpeCI6MSwibW4iOiJBREJFIFZlY3RvciBHcm91cCIsImhkIjpmYWxzZX1dLCJpcCI6MCwib3AiOjcyOS4wMDAwMjk2OTI3NzksInN0IjowLCJibSI6MH0seyJkZGQiOjAsImluZCI6MiwidHkiOjQsIm5tIjoiLmZvcmVncm91bmQiLCJjbCI6ImZvcmVncm91bmQiLCJzciI6MSwia3MiOnsibyI6eyJhIjowLCJrIjoxMDAsIml4IjoxMX0sInIiOnsiYSI6MCwiayI6MCwiaXgiOjEwfSwicCI6eyJhIjoxLCJrIjpbeyJpIjp7IngiOjAuMDE4LCJ5IjoxfSwibyI6eyJ4IjowLjAyNCwieSI6MH0sInQiOjI4MiwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC44NjMsInkiOjB9LCJ0IjoyOTIsInMiOls2MjMsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MzA0LCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC4wMTgsInkiOjF9LCJvIjp7IngiOjAuMDI0LCJ5IjowfSwidCI6MzMxLCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjg2MywieSI6MH0sInQiOjM0MSwicyI6WzYyMywzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozNTEsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjAxOCwieSI6MX0sIm8iOnsieCI6MC4wMjQsInkiOjB9LCJ0IjozODEsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuODYzLCJ5IjowfSwidCI6MzkxLCJzIjpbNjIzLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQwMSwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDE4LCJ5IjoxfSwibyI6eyJ4IjowLjAyNCwieSI6MH0sInQiOjQyNywicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC44NjMsInkiOjB9LCJ0Ijo0MzcsInMiOls2MjMsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDQ3LCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQ2MiwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjAyNCwieSI6MC4wMjR9LCJ0Ijo0NzksInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTE2LCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjUzNiwicyI6WzQ5MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1NTYsInMiOls0OTAsNTIwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTc2LCJzIjpbNDkwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU5NiwicyI6WzQ5MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2MTYsInMiOls0OTAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjM2LCJzIjpbNDkwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY1NiwicyI6WzQ5MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2NzYsInMiOls0OTAsNTIwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6Njk2LCJzIjpbNDkwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7InQiOjcxMC4wMDAwMjg5MTg4OTMsInMiOls0OTAsMzYwLDBdfV0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzEwMCwxMDAsMTAwXSwiaXgiOjZ9fSwiYW8iOjAsInNoYXBlcyI6W3sidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MSwiayI6W3siaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyMCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6NDAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo2MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo4MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjEwMCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTIwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTQwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjE2MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjE4MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjAwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjIwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI0MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNDUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MjY1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0NjgsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwzMy41XSxbMCwtMjcuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjQ3OSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0OTYsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo3MDQsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJ0Ijo3MTMuMDAwMDI5MDQxMDg1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX1dLCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoicmQiLCJubSI6IlJvdW5kIENvcm5lcnMgMSIsInIiOnsiYSI6MCwiayI6MCwiaXgiOjF9LCJpeCI6MiwibW4iOiJBREJFIFZlY3RvciBGaWx0ZXIgLSBSQyIsImhkIjpmYWxzZX0seyJ0eSI6InN0IiwiYyI6eyJhIjowLCJrIjpbMSwxLDEsMV0sIml4IjozfSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo0fSwidyI6eyJhIjowLCJrIjozMCwiaXgiOjV9LCJsYyI6MiwibGoiOjEsIm1sIjo0LCJibSI6MCwibm0iOiJTdHJva2UgMSIsIm1uIjoiQURCRSBWZWN0b3IgR3JhcGhpYyAtIFN0cm9rZSIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzIwMCwyMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoicmlnaHQgZXllIiwibnAiOjMsImNpeCI6MiwiYm0iOjAsIml4IjoxLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoiZ3IiLCJpdCI6W3siaW5kIjowLCJ0eSI6InNoIiwiaXgiOjEsImtzIjp7ImEiOjAsImsiOnsiaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfSwiaXgiOjJ9LCJubSI6IlBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzEwMCwxMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoiR3JvdXAgMSIsIm5wIjoxLCJjaXgiOjIsImJtIjowLCJpeCI6MiwibW4iOiJBREJFIFZlY3RvciBHcm91cCIsImhkIjpmYWxzZX1dLCJpcCI6MCwib3AiOjcyOS4wMDAwMjk2OTI3NzksInN0IjowLCJibSI6MH0seyJkZGQiOjAsImluZCI6MywidHkiOjQsIm5tIjoiLmZvcmVncm91bmQiLCJjbCI6ImZvcmVncm91bmQiLCJzciI6MSwia3MiOnsibyI6eyJhIjowLCJrIjoxMDAsIml4IjoxMX0sInIiOnsiYSI6MCwiayI6MCwiaXgiOjEwfSwicCI6eyJhIjoxLCJrIjpbeyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4wNzQsInkiOjB9LCJ0IjoyNzcsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MjgyLCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjMwNCwicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjA3NCwieSI6MC4wNzR9LCJ0IjozMDgsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMDc0LCJ5IjowfSwidCI6MzI2LCJzIjpbMzYwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjMzMSwicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozNDIsInMiOls0MzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MzUyLCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjM1OCwicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjozNzYsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MzgxLCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQwMSwicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0Ijo0MDUsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDIzLCJzIjpbMzYwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQyNywicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0NDcsInMiOls0MzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDUxLCJzIjpbMzYwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMDc0LCJ5IjowLjA3NH0sInQiOjQ2OSwicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1MTMsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTMzLCJzIjpbMzYwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU1MywicyI6WzM2MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1NzMsInMiOlszNjAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTkzLCJzIjpbMzYwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjYxMywicyI6WzM2MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2MzMsInMiOlszNjAsNTIwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjUzLCJzIjpbMzYwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY3MywicyI6WzM2MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2OTMsInMiOlszNjAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsidCI6NzEwLjAwMDAyODkxODg5MywicyI6WzM2MCwzNjAsMF19XSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMCwxMDBdLCJpeCI6Nn19LCJhbyI6MCwic2hhcGVzIjpbeyJ0eSI6ImdyIiwiaXQiOlt7ImluZCI6MCwidHkiOiJzaCIsIml4IjoxLCJrcyI6eyJhIjoxLCJrIjpbeyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo0MywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjYzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjgzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTAzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxMjMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxNDMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MTYzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTgzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyMDMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyMjMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MjQzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI0NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNjAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwzMy41XSxbMCwtMjcuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQ2MiwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDc1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo0ODAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDk0LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMi41XSxbMCwyXV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NzAyLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMi41XSxbMCwyXV0sImMiOmZhbHNlfV19LHsidCI6NzEyLjAwMDAyOTAwMDM1NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19XSwiaXgiOjJ9LCJubSI6IlBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6InJkIiwibm0iOiJSb3VuZCBDb3JuZXJzIDEiLCJyIjp7ImEiOjAsImsiOjAsIml4IjoxfSwiaXgiOjIsIm1uIjoiQURCRSBWZWN0b3IgRmlsdGVyIC0gUkMiLCJoZCI6ZmFsc2V9LHsidHkiOiJzdCIsImMiOnsiYSI6MCwiayI6WzEsMSwxLDFdLCJpeCI6M30sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6NH0sInciOnsiYSI6MCwiayI6MzAsIml4Ijo1fSwibGMiOjIsImxqIjoxLCJtbCI6NCwiYm0iOjAsIm5tIjoiU3Ryb2tlIDEiLCJtbiI6IkFEQkUgVmVjdG9yIEdyYXBoaWMgLSBTdHJva2UiLCJoZCI6ZmFsc2V9LHsidHkiOiJ0ciIsInAiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsyMDAsMjAwXSwiaXgiOjN9LCJyIjp7ImEiOjAsImsiOjAsIml4Ijo2fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo3fSwic2siOnsiYSI6MCwiayI6MCwiaXgiOjR9LCJzYSI6eyJhIjowLCJrIjowLCJpeCI6NX0sIm5tIjoiVHJhbnNmb3JtIn1dLCJubSI6Im5vc2UiLCJucCI6MywiY2l4IjoyLCJibSI6MCwiaXgiOjEsIm1uIjoiQURCRSBWZWN0b3IgR3JvdXAiLCJoZCI6ZmFsc2V9LHsidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MCwiayI6eyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9LCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJHcm91cCAxIiwibnAiOjEsImNpeCI6MiwiYm0iOjAsIml4IjoyLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfV0sImlwIjowLCJvcCI6NzI5LjAwMDAyOTY5Mjc3OSwic3QiOjAsImJtIjowfSx7ImRkZCI6MCwiaW5kIjo0LCJ0eSI6NCwibm0iOiIuZm9yZWdyb3VuZCIsImNsIjoiZm9yZWdyb3VuZCIsInNyIjoxLCJrcyI6eyJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjExfSwiciI6eyJhIjowLCJrIjowLCJpeCI6MTB9LCJwIjp7ImEiOjEsImsiOlt7ImkiOnsieCI6MC40ODgsInkiOjAuNDg4fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjoyNDYsInMiOlsyMzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjA3MywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNTUsInMiOlsyMzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MX0sIm8iOnsieCI6MC44ODUsInkiOjB9LCJ0IjoyNjUsInMiOlsxNzUsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjI3NywicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDczLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjMwNywicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjg4NSwieSI6MH0sInQiOjMxNiwicyI6WzE3NSwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjowLjQ4OH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MzI1LCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjAuNDg4fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozMzgsInMiOlszMDAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjA3MywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjozNTgsInMiOlszMDAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MX0sIm8iOnsieCI6MC44ODUsInkiOjB9LCJ0IjozNjcsInMiOlsxNzUsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjM3NiwicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDczLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQwNSwicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjg4NSwieSI6MH0sInQiOjQxNCwicyI6WzE3NSwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjowLjQ4OH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDIzLCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC4wNzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDUxLCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuODg1LCJ5IjowfSwidCI6NDYwLCJzIjpbMTc1LDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjAuNDg4fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0Ijo0NjksInMiOlsyMzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQ4MCwicyI6WzIzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjUxMCwicyI6WzIzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjUzMCwicyI6WzIzMCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU1MCwicyI6WzIzMCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU3MCwicyI6WzIzMCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU5MCwicyI6WzIzMCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjYxMCwicyI6WzIzMCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjYzMCwicyI6WzIzMCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY1MCwicyI6WzIzMCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY3MCwicyI6WzIzMCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY5MCwicyI6WzIzMCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJ0Ijo3MTAuMDAwMDI4OTE4ODkzLCJzIjpbMjMwLDM2MCwwXX1dLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsxMDAsMTAwLDEwMF0sIml4Ijo2fX0sImFvIjowLCJzaGFwZXMiOlt7InR5IjoiZ3IiLCJpdCI6W3siaW5kIjowLCJ0eSI6InNoIiwiaXgiOjEsImtzIjp7ImEiOjEsImsiOlt7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjQ1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6NjUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6ODUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxMDUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjEyNSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjE0NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoxNjUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxODUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIwNSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIyNSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI0NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNTUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwzMy41XSxbMCwtMjcuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQ1NiwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDY5LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo0ODAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDkxLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMi41XSxbMCwyXV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NzAwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMi41XSxbMCwyXV0sImMiOmZhbHNlfV19LHsidCI6NzEwLjAwMDAyODkxODg5MywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19XSwiaXgiOjJ9LCJubSI6IlBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6InJkIiwibm0iOiJSb3VuZCBDb3JuZXJzIDEiLCJyIjp7ImEiOjAsImsiOjAsIml4IjoxfSwiaXgiOjIsIm1uIjoiQURCRSBWZWN0b3IgRmlsdGVyIC0gUkMiLCJoZCI6ZmFsc2V9LHsidHkiOiJzdCIsImMiOnsiYSI6MCwiayI6WzEsMSwxLDFdLCJpeCI6M30sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6NH0sInciOnsiYSI6MCwiayI6MzAsIml4Ijo1fSwibGMiOjIsImxqIjoxLCJtbCI6NCwiYm0iOjAsIm5tIjoiU3Ryb2tlIDEiLCJtbiI6IkFEQkUgVmVjdG9yIEdyYXBoaWMgLSBTdHJva2UiLCJoZCI6ZmFsc2V9LHsidHkiOiJ0ciIsInAiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsyMDAsMjAwXSwiaXgiOjN9LCJyIjp7ImEiOjAsImsiOjAsIml4Ijo2fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo3fSwic2siOnsiYSI6MCwiayI6MCwiaXgiOjR9LCJzYSI6eyJhIjowLCJrIjowLCJpeCI6NX0sIm5tIjoiVHJhbnNmb3JtIn1dLCJubSI6ImxlZnQtZXllIiwibnAiOjMsImNpeCI6MiwiYm0iOjAsIml4IjoxLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoiZ3IiLCJpdCI6W3siaW5kIjowLCJ0eSI6InNoIiwiaXgiOjEsImtzIjp7ImEiOjAsImsiOnsiaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfSwiaXgiOjJ9LCJubSI6IlBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzEwMCwxMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoiR3JvdXAgMSIsIm5wIjoxLCJjaXgiOjIsImJtIjowLCJpeCI6MiwibW4iOiJBREJFIFZlY3RvciBHcm91cCIsImhkIjpmYWxzZX1dLCJpcCI6MCwib3AiOjcyOS4wMDAwMjk2OTI3NzksInN0IjowLCJibSI6MH0seyJkZGQiOjAsImluZCI6NSwidHkiOjQsIm5tIjoiLmJhY2tncm91bmQiLCJjbCI6ImJhY2tncm91bmQiLCJzciI6MSwia3MiOnsibyI6eyJhIjowLCJrIjoxMDAsIml4IjoxMX0sInIiOnsiYSI6MCwiayI6MCwiaXgiOjEwfSwicCI6eyJhIjowLCJrIjpbMzYwLDM1OS45OTcsMF0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzEwMCwxMDAsMTAwXSwiaXgiOjZ9fSwiYW8iOjAsInNoYXBlcyI6W3sidHkiOiJnciIsIml0IjpbeyJ0eSI6InJjIiwiZCI6MSwicyI6eyJhIjowLCJrIjpbMzYwLDM1OS45OTddLCJpeCI6Mn0sInAiOnsiYSI6MCwiayI6WzAsMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjo2MCwiaXgiOjR9LCJubSI6IlJlY3RhbmdsZSBQYXRoIDEiLCJtbiI6IkFEQkUgVmVjdG9yIFNoYXBlIC0gUmVjdCIsImhkIjpmYWxzZX0seyJ0eSI6ImZsIiwiYyI6eyJhIjowLCJrIjpbMCwwLDAsMV0sIml4Ijo0fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo1fSwiciI6MSwiYm0iOjAsIm5tIjoiRmlsbCAxIiwibW4iOiJBREJFIFZlY3RvciBHcmFwaGljIC0gRmlsbCIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzIwMCwyMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoiYm9keSIsIm5wIjoyLCJjaXgiOjIsImJtIjowLCJpeCI6MSwibW4iOiJBREJFIFZlY3RvciBHcm91cCIsImhkIjpmYWxzZX1dLCJpcCI6MCwib3AiOjcyOS4wMDAwMjk2OTI3NzksInN0IjowLCJibSI6MH1dLCJtYXJrZXJzIjpbXX0nKSxJdD1KU09OLnBhcnNlKCd7InYiOiI0LjguMCIsIm1ldGEiOnsiZyI6IkxvdHRpZUZpbGVzIEFFIDMuMy42IiwiYSI6IiIsImsiOiIiLCJkIjoiIiwidGMiOiIifSwiZnIiOjI5Ljk3MDAwMTIyMDcwMzEsImlwIjowLCJvcCI6NzIwLjAwMDAyOTMyNjIwMSwidyI6NzIwLCJoIjo3MjAsIm5tIjoiRmluLWluQ2hhdC1UaGlua2luZy1Mb3R0aWUgU2VhbWxlc3MiLCJkZGQiOjAsImFzc2V0cyI6W10sImxheWVycyI6W3siZGRkIjowLCJpbmQiOjEsInR5Ijo0LCJubSI6Ii5mb3JlZ3JvdW5kIiwiY2wiOiJmb3JlZ3JvdW5kIiwic3IiOjEsImtzIjp7Im8iOnsiYSI6MCwiayI6MCwiaXgiOjExfSwiciI6eyJhIjowLCJrIjo1LjY5LCJpeCI6MTB9LCJwIjp7ImEiOjAsImsiOlszNjAuNzI4LDUzOC44ODQsMF0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzAsMCwxMDBdLCJpeCI6Nn19LCJhbyI6MCwic2hhcGVzIjpbeyJ0eSI6ImdyIiwiaXQiOlt7ImluZCI6MCwidHkiOiJzaCIsIml4IjoxLCJrcyI6eyJhIjowLCJrIjp7ImkiOltbLTE2Ljk3NiwtMS4zOThdLFstMTUuNjEyLDYuMjIzXSxbNS43NDIsLTkuMjI5XSxbMTQuMjk1LDEyLjMzNF1dLCJvIjpbWzE0LjUzOCwxLjE5N10sWzEwLjA5NiwtNC4wMjVdLFstMjEuMTA5LDMzLjkyOV0sWy04LjIyOSwtNy4xXV0sInYiOltbLTAuMTY1LC0yNy4xNjhdLFs0NC4wOTIsLTMxLjUyXSxbNTkuNzQ1LC0xMy4zN10sWy0xMC44ODksLTAuNDU2XV0sImMiOnRydWV9LCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoiZmwiLCJjIjp7ImEiOjAsImsiOlswLjEwMTk2MDc4NDMxMzcyNTQ5LDAuMTAxOTYwNzg0MzEzNzI1NDksMC4xMDE5NjA3ODQzMTM3MjU0OSwxXSwiaXgiOjR9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjV9LCJyIjoxLCJibSI6MCwibm0iOiJGaWxsIDEiLCJtbiI6IkFEQkUgVmVjdG9yIEdyYXBoaWMgLSBGaWxsIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlstMTQuMzgxLDI4My4xMl0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbLTksMTcxXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsyMDAsMjAwXSwiaXgiOjN9LCJyIjp7ImEiOjAsImsiOjAsIml4Ijo2fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo3fSwic2siOnsiYSI6MCwiayI6MCwiaXgiOjR9LCJzYSI6eyJhIjowLCJrIjowLCJpeCI6NX0sIm5tIjoiVHJhbnNmb3JtIn1dLCJubSI6Im1vdXRoIiwibnAiOjIsImNpeCI6MiwiYm0iOjAsIml4IjoxLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfV0sImlwIjowLCJvcCI6NzI5LjAwMDAyOTY5Mjc3OSwic3QiOjAsImJtIjowfSx7ImRkZCI6MCwiaW5kIjoyLCJ0eSI6NCwibm0iOiIuZm9yZWdyb3VuZCIsImNsIjoiZm9yZWdyb3VuZCIsInNyIjoxLCJrcyI6eyJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjExfSwiciI6eyJhIjowLCJrIjowLCJpeCI6MTB9LCJwIjp7ImEiOjEsImsiOlt7ImkiOnsieCI6MC4wMTgsInkiOjF9LCJvIjp7IngiOjAuMDI0LCJ5IjowfSwidCI6MjgyLCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjg2MywieSI6MH0sInQiOjI5MiwicyI6WzYyMywzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozMDQsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjAxOCwieSI6MX0sIm8iOnsieCI6MC4wMjQsInkiOjB9LCJ0IjozMzEsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuODYzLCJ5IjowfSwidCI6MzQxLCJzIjpbNjIzLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjM1MSwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDE4LCJ5IjoxfSwibyI6eyJ4IjowLjAyNCwieSI6MH0sInQiOjM4MSwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC44NjMsInkiOjB9LCJ0IjozOTEsInMiOls2MjMsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDAxLCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC4wMTgsInkiOjF9LCJvIjp7IngiOjAuMDI0LCJ5IjowfSwidCI6NDI3LCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjg2MywieSI6MH0sInQiOjQzNywicyI6WzYyMywzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0Ijo0NDcsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDYyLCJzIjpbNDkwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMDI0LCJ5IjowLjAyNH0sInQiOjQ3OSwicyI6WzQ5MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1MTYsInMiOls0OTAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTM2LCJzIjpbNDkwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU1NiwicyI6WzQ5MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1NzYsInMiOls0OTAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTk2LCJzIjpbNDkwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjYxNiwicyI6WzQ5MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2MzYsInMiOls0OTAsNTIwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjU2LCJzIjpbNDkwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY3NiwicyI6WzQ5MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2OTYsInMiOls0OTAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsidCI6NzEwLjAwMDAyODkxODg5MywicyI6WzQ5MCwzNjAsMF19XSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMCwxMDBdLCJpeCI6Nn19LCJhbyI6MCwic2hhcGVzIjpbeyJ0eSI6ImdyIiwiaXQiOlt7ImluZCI6MCwidHkiOiJzaCIsIml4IjoxLCJrcyI6eyJhIjoxLCJrIjpbeyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo0MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjYwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjgwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTAwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxMjAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxNDAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MTYwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTgwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyMDAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyMjAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MjQwLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI0NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNjUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwzMy41XSxbMCwtMjcuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQ2OCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6NDc5LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQ5NiwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDIuNV0sWzAsMl1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjcwNCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDIuNV0sWzAsMl1dLCJjIjpmYWxzZX1dfSx7InQiOjcxMy4wMDAwMjkwNDEwODUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfV0sIml4IjoyfSwibm0iOiJQYXRoIDEiLCJtbiI6IkFEQkUgVmVjdG9yIFNoYXBlIC0gR3JvdXAiLCJoZCI6ZmFsc2V9LHsidHkiOiJyZCIsIm5tIjoiUm91bmQgQ29ybmVycyAxIiwiciI6eyJhIjowLCJrIjowLCJpeCI6MX0sIml4IjoyLCJtbiI6IkFEQkUgVmVjdG9yIEZpbHRlciAtIFJDIiwiaGQiOmZhbHNlfSx7InR5Ijoic3QiLCJjIjp7ImEiOjAsImsiOlswLjEwMTk2MDc4NDMxMzcyNTQ5LDAuMTAxOTYwNzg0MzEzNzI1NDksMC4xMDE5NjA3ODQzMTM3MjU0OSwxXSwiaXgiOjN9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjR9LCJ3Ijp7ImEiOjAsImsiOjMwLCJpeCI6NX0sImxjIjoyLCJsaiI6MSwibWwiOjQsImJtIjowLCJubSI6IlN0cm9rZSAxIiwibW4iOiJBREJFIFZlY3RvciBHcmFwaGljIC0gU3Ryb2tlIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMjAwLDIwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJyaWdodCBleWUiLCJucCI6MywiY2l4IjoyLCJibSI6MCwiaXgiOjEsIm1uIjoiQURCRSBWZWN0b3IgR3JvdXAiLCJoZCI6ZmFsc2V9LHsidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MCwiayI6eyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9LCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJHcm91cCAxIiwibnAiOjEsImNpeCI6MiwiYm0iOjAsIml4IjoyLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfV0sImlwIjowLCJvcCI6NzI5LjAwMDAyOTY5Mjc3OSwic3QiOjAsImJtIjowfSx7ImRkZCI6MCwiaW5kIjozLCJ0eSI6NCwibm0iOiIuZm9yZWdyb3VuZCIsImNsIjoiZm9yZWdyb3VuZCIsInNyIjoxLCJrcyI6eyJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjExfSwiciI6eyJhIjowLCJrIjowLCJpeCI6MTB9LCJwIjp7ImEiOjEsImsiOlt7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjA3NCwieSI6MH0sInQiOjI3NywicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjoyODIsInMiOls0MzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MzA0LCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMDc0LCJ5IjowLjA3NH0sInQiOjMwOCwicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4wNzQsInkiOjB9LCJ0IjozMjYsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MzMxLCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjM0MiwicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjozNTIsInMiOls0MzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6MzU4LCJzIjpbMzYwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjM3NiwicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozODEsInMiOls0MzAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDAxLCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjowLjR9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQwNSwicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0MjMsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDI3LCJzIjpbNDMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjQ0NywicyI6WzQzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MC40fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0Ijo0NTEsInMiOlszNjAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjAuNH0sIm8iOnsieCI6MC4wNzQsInkiOjAuMDc0fSwidCI6NDY5LCJzIjpbMzYwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjUxMywicyI6WzM2MCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1MzMsInMiOlszNjAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTUzLCJzIjpbMzYwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjU3MywicyI6WzM2MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo1OTMsInMiOlszNjAsNTIwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjEzLCJzIjpbMzYwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjYzMywicyI6WzM2MCw1MjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNCwieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo2NTMsInMiOlszNjAsMjAwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjczLCJzIjpbMzYwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40LCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjY5MywicyI6WzM2MCwyMDAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJ0Ijo3MTAuMDAwMDI4OTE4ODkzLCJzIjpbMzYwLDM2MCwwXX1dLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsxMDAsMTAwLDEwMF0sIml4Ijo2fX0sImFvIjowLCJzaGFwZXMiOlt7InR5IjoiZ3IiLCJpdCI6W3siaW5kIjowLCJ0eSI6InNoIiwiaXgiOjEsImtzIjp7ImEiOjEsImsiOlt7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjozLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjQzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6NjMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6ODMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxMDMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjEyMywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjE0MywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoxNjMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoxODMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwxMC4yMjhdLFswLDkuNjQ3XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIwMywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjIyMywicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0IjoyNDMsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MjQ1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI2MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDYyLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0NzUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjQ4MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0OTQsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo3MDIsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJ0Ijo3MTIuMDAwMDI5MDAwMzU1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX1dLCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoicmQiLCJubSI6IlJvdW5kIENvcm5lcnMgMSIsInIiOnsiYSI6MCwiayI6MCwiaXgiOjF9LCJpeCI6MiwibW4iOiJBREJFIFZlY3RvciBGaWx0ZXIgLSBSQyIsImhkIjpmYWxzZX0seyJ0eSI6InN0IiwiYyI6eyJhIjowLCJrIjpbMC4xMDE5NjA3ODQzMTM3MjU0OSwwLjEwMTk2MDc4NDMxMzcyNTQ5LDAuMTAxOTYwNzg0MzEzNzI1NDksMV0sIml4IjozfSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo0fSwidyI6eyJhIjowLCJrIjozMCwiaXgiOjV9LCJsYyI6MiwibGoiOjEsIm1sIjo0LCJibSI6MCwibm0iOiJTdHJva2UgMSIsIm1uIjoiQURCRSBWZWN0b3IgR3JhcGhpYyAtIFN0cm9rZSIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzIwMCwyMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoibm9zZSIsIm5wIjozLCJjaXgiOjIsImJtIjowLCJpeCI6MSwibW4iOiJBREJFIFZlY3RvciBHcm91cCIsImhkIjpmYWxzZX0seyJ0eSI6ImdyIiwiaXQiOlt7ImluZCI6MCwidHkiOiJzaCIsIml4IjoxLCJrcyI6eyJhIjowLCJrIjp7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwzMy41XSxbMCwtMjcuNV1dLCJjIjpmYWxzZX0sIml4IjoyfSwibm0iOiJQYXRoIDEiLCJtbiI6IkFEQkUgVmVjdG9yIFNoYXBlIC0gR3JvdXAiLCJoZCI6ZmFsc2V9LHsidHkiOiJ0ciIsInAiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjF9LCJzIjp7ImEiOjAsImsiOlsxMDAsMTAwXSwiaXgiOjN9LCJyIjp7ImEiOjAsImsiOjAsIml4Ijo2fSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo3fSwic2siOnsiYSI6MCwiayI6MCwiaXgiOjR9LCJzYSI6eyJhIjowLCJrIjowLCJpeCI6NX0sIm5tIjoiVHJhbnNmb3JtIn1dLCJubSI6Ikdyb3VwIDEiLCJucCI6MSwiY2l4IjoyLCJibSI6MCwiaXgiOjIsIm1uIjoiQURCRSBWZWN0b3IgR3JvdXAiLCJoZCI6ZmFsc2V9XSwiaXAiOjAsIm9wIjo3MjkuMDAwMDI5NjkyNzc5LCJzdCI6MCwiYm0iOjB9LHsiZGRkIjowLCJpbmQiOjQsInR5Ijo0LCJubSI6Ii5mb3JlZ3JvdW5kIiwiY2wiOiJmb3JlZ3JvdW5kIiwic3IiOjEsImtzIjp7Im8iOnsiYSI6MCwiayI6MTAwLCJpeCI6MTF9LCJyIjp7ImEiOjAsImsiOjAsIml4IjoxMH0sInAiOnsiYSI6MSwiayI6W3siaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjI0NiwicyI6WzIzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDczLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI1NSwicyI6WzIzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjg4NSwieSI6MH0sInQiOjI2NSwicyI6WzE3NSwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjowLjQ4OH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6Mjc3LCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC4wNzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MzA3LCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuODg1LCJ5IjowfSwidCI6MzE2LCJzIjpbMTc1LDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjAuNDg4fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0IjozMjUsInMiOlszMDAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjMzOCwicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuMDczLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjM1OCwicyI6WzMwMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjoxfSwibyI6eyJ4IjowLjg4NSwieSI6MH0sInQiOjM2NywicyI6WzE3NSwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjowLjQ4OH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6Mzc2LCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC4wNzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDA1LCJzIjpbMzAwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuODg1LCJ5IjowfSwidCI6NDE0LCJzIjpbMTc1LDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjAuNDg4fSwibyI6eyJ4IjowLjE2NywieSI6MC4xNjd9LCJ0Ijo0MjMsInMiOlszMDAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjA3MywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0NTEsInMiOlszMDAsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MX0sIm8iOnsieCI6MC44ODUsInkiOjB9LCJ0Ijo0NjAsInMiOlsxNzUsMzYwLDBdLCJ0byI6WzAsMCwwXSwidGkiOlswLDAsMF19LHsiaSI6eyJ4IjowLjQ4OCwieSI6MC40ODh9LCJvIjp7IngiOjAuMTY3LCJ5IjowLjE2N30sInQiOjQ2OSwicyI6WzIzMCwzNjAsMF0sInRvIjpbMCwwLDBdLCJ0aSI6WzAsMCwwXX0seyJpIjp7IngiOjAuNDg4LCJ5IjowLjQ4OH0sIm8iOnsieCI6MC4xNjcsInkiOjAuMTY3fSwidCI6NDgwLCJzIjpbMjMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTEwLCJzIjpbMjMwLDM2MCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTMwLCJzIjpbMjMwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTUwLCJzIjpbMjMwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTcwLCJzIjpbMjMwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NTkwLCJzIjpbMjMwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjEwLCJzIjpbMjMwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjMwLCJzIjpbMjMwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjUwLCJzIjpbMjMwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjcwLCJzIjpbMjMwLDUyMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7ImkiOnsieCI6MC40ODgsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NjkwLCJzIjpbMjMwLDIwMCwwXSwidG8iOlswLDAsMF0sInRpIjpbMCwwLDBdfSx7InQiOjcxMC4wMDAwMjg5MTg4OTMsInMiOlsyMzAsMzYwLDBdfV0sIml4IjoyfSwiYSI6eyJhIjowLCJrIjpbMCwwLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzEwMCwxMDAsMTAwXSwiaXgiOjZ9fSwiYW8iOjAsInNoYXBlcyI6W3sidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MSwiayI6W3siaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0IjoyNSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6NDUsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjcsInkiOjB9LCJ0Ijo2NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo4NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjEwNSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTI1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MTQ1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC4zLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjE2NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjE4NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDEwLjIyOF0sWzAsOS42NDddXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjA1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC43LCJ5IjowfSwidCI6MjI1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMTAuMjI4XSxbMCw5LjY0N11dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6MjQ1LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuODMzLCJ5IjoxfSwibyI6eyJ4IjowLjE2NywieSI6MH0sInQiOjI1NSwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDMzLjVdLFswLC0yNy41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjMsInkiOjF9LCJvIjp7IngiOjAuMTY3LCJ5IjowfSwidCI6NDU2LCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0NjksInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCw2MC41XSxbMCwtNjMuNV1dLCJjIjpmYWxzZX1dfSx7ImkiOnsieCI6MC44MzMsInkiOjF9LCJvIjp7IngiOjAuNywieSI6MH0sInQiOjQ4MCwicyI6W3siaSI6W1swLDBdLFswLDBdXSwibyI6W1swLDBdLFswLDBdXSwidiI6W1swLDYwLjVdLFswLC02My41XV0sImMiOmZhbHNlfV19LHsiaSI6eyJ4IjowLjgzMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo0OTEsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJpIjp7IngiOjAuMywieSI6MX0sIm8iOnsieCI6MC4xNjcsInkiOjB9LCJ0Ijo3MDAsInMiOlt7ImkiOltbMCwwXSxbMCwwXV0sIm8iOltbMCwwXSxbMCwwXV0sInYiOltbMCwyLjVdLFswLDJdXSwiYyI6ZmFsc2V9XX0seyJ0Ijo3MTAuMDAwMDI4OTE4ODkzLCJzIjpbeyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsNjAuNV0sWzAsLTYzLjVdXSwiYyI6ZmFsc2V9XX1dLCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoicmQiLCJubSI6IlJvdW5kIENvcm5lcnMgMSIsInIiOnsiYSI6MCwiayI6MCwiaXgiOjF9LCJpeCI6MiwibW4iOiJBREJFIFZlY3RvciBGaWx0ZXIgLSBSQyIsImhkIjpmYWxzZX0seyJ0eSI6InN0IiwiYyI6eyJhIjowLCJrIjpbMC4xMDE5NjA3ODQzMTM3MjU0OSwwLjEwMTk2MDc4NDMxMzcyNTQ5LDAuMTAxOTYwNzg0MzEzNzI1NDksMV0sIml4IjozfSwibyI6eyJhIjowLCJrIjoxMDAsIml4Ijo0fSwidyI6eyJhIjowLCJrIjozMCwiaXgiOjV9LCJsYyI6MiwibGoiOjEsIm1sIjo0LCJibSI6MCwibm0iOiJTdHJva2UgMSIsIm1uIjoiQURCRSBWZWN0b3IgR3JhcGhpYyAtIFN0cm9rZSIsImhkIjpmYWxzZX0seyJ0eSI6InRyIiwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6MX0sInMiOnsiYSI6MCwiayI6WzIwMCwyMDBdLCJpeCI6M30sInIiOnsiYSI6MCwiayI6MCwiaXgiOjZ9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjd9LCJzayI6eyJhIjowLCJrIjowLCJpeCI6NH0sInNhIjp7ImEiOjAsImsiOjAsIml4Ijo1fSwibm0iOiJUcmFuc2Zvcm0ifV0sIm5tIjoibGVmdC1leWUiLCJucCI6MywiY2l4IjoyLCJibSI6MCwiaXgiOjEsIm1uIjoiQURCRSBWZWN0b3IgR3JvdXAiLCJoZCI6ZmFsc2V9LHsidHkiOiJnciIsIml0IjpbeyJpbmQiOjAsInR5Ijoic2giLCJpeCI6MSwia3MiOnsiYSI6MCwiayI6eyJpIjpbWzAsMF0sWzAsMF1dLCJvIjpbWzAsMF0sWzAsMF1dLCJ2IjpbWzAsMzMuNV0sWzAsLTI3LjVdXSwiYyI6ZmFsc2V9LCJpeCI6Mn0sIm5tIjoiUGF0aCAxIiwibW4iOiJBREJFIFZlY3RvciBTaGFwZSAtIEdyb3VwIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJHcm91cCAxIiwibnAiOjEsImNpeCI6MiwiYm0iOjAsIml4IjoyLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfV0sImlwIjowLCJvcCI6NzI5LjAwMDAyOTY5Mjc3OSwic3QiOjAsImJtIjowfSx7ImRkZCI6MCwiaW5kIjo1LCJ0eSI6NCwibm0iOiIuYmFja2dyb3VuZCIsImNsIjoiYmFja2dyb3VuZCIsInNyIjoxLCJrcyI6eyJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjExfSwiciI6eyJhIjowLCJrIjowLCJpeCI6MTB9LCJwIjp7ImEiOjAsImsiOlszNjAsMzU5Ljk5NywwXSwiaXgiOjJ9LCJhIjp7ImEiOjAsImsiOlswLDAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMTAwLDEwMCwxMDBdLCJpeCI6Nn19LCJhbyI6MCwic2hhcGVzIjpbeyJ0eSI6ImdyIiwiaXQiOlt7InR5IjoicmMiLCJkIjoxLCJzIjp7ImEiOjAsImsiOlszNjAsMzU5Ljk5N10sIml4IjoyfSwicCI6eyJhIjowLCJrIjpbMCwwXSwiaXgiOjN9LCJyIjp7ImEiOjAsImsiOjYwLCJpeCI6NH0sIm5tIjoiUmVjdGFuZ2xlIFBhdGggMSIsIm1uIjoiQURCRSBWZWN0b3IgU2hhcGUgLSBSZWN0IiwiaGQiOmZhbHNlfSx7InR5IjoiZmwiLCJjIjp7ImEiOjAsImsiOlswLjk2MDc4NDMxMzcyNTQ5MDIsMC45NjA3ODQzMTM3MjU0OTAyLDAuOTYwNzg0MzEzNzI1NDkwMiwxXSwiaXgiOjR9LCJvIjp7ImEiOjAsImsiOjEwMCwiaXgiOjV9LCJyIjoxLCJibSI6MCwibm0iOiJGaWxsIDEiLCJtbiI6IkFEQkUgVmVjdG9yIEdyYXBoaWMgLSBGaWxsIiwiaGQiOmZhbHNlfSx7InR5IjoidHIiLCJwIjp7ImEiOjAsImsiOlswLDBdLCJpeCI6Mn0sImEiOnsiYSI6MCwiayI6WzAsMF0sIml4IjoxfSwicyI6eyJhIjowLCJrIjpbMjAwLDIwMF0sIml4IjozfSwiciI6eyJhIjowLCJrIjowLCJpeCI6Nn0sIm8iOnsiYSI6MCwiayI6MTAwLCJpeCI6N30sInNrIjp7ImEiOjAsImsiOjAsIml4Ijo0fSwic2EiOnsiYSI6MCwiayI6MCwiaXgiOjV9LCJubSI6IlRyYW5zZm9ybSJ9XSwibm0iOiJib2R5IiwibnAiOjIsImNpeCI6MiwiYm0iOjAsIml4IjoxLCJtbiI6IkFEQkUgVmVjdG9yIEdyb3VwIiwiaGQiOmZhbHNlfV0sImlwIjowLCJvcCI6NzI5LjAwMDAyOTY5Mjc3OSwic3QiOjAsImJtIjowfV0sIm1hcmtlcnMiOltdfScpO2Z1bmN0aW9uIGp0KCl7Y29uc3QgZT0oMCxjLnVzZVJlZikobnVsbCk7ZnVuY3Rpb24gdCgpe2UuY3VycmVudCYmY2xlYXJUaW1lb3V0KGUuY3VycmVudCl9cmV0dXJuKDAsYy51c2VFZmZlY3QpKCgoKT0+dCksW10pLFtmdW5jdGlvbihuLHIpe3QoKSxlLmN1cnJlbnQ9c2V0VGltZW91dChuLHIpfSx0XX1mdW5jdGlvbiBfdChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gT3QoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/X3QoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtBdChlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6X3QoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gQXQoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWNvbnN0IEJ0PSJhZHZhbmNlIixSdD0icmVzZXQiLHp0PShlLHQpPT4oe3R5cGVkVGV4dDp0P2U6IiIsY3VycmVudEluZGV4OjAscmV2ZXJzZTp0fSksTnQ9KGUsdCxuKT0+bj8wPT09ZT90Oi1lOmUsTXQ9KGUse3NwZWVkOnQ9MjUscmV2ZXJzZTpuPSExLGJ5V29yZDpyPSExLG9uQ29tcGxldGU6aX09e30pPT57Y29uc3Qgbz0oMCxjLnVzZVJlZikoaSk7by5jdXJyZW50PWk7Y29uc3Rbe3R5cGVkVGV4dDphLGN1cnJlbnRJbmRleDpzfSxsXT0oMCxjLnVzZVJlZHVjZXIpKCgodCxpKT0+e3N3aXRjaChpLnR5cGUpe2Nhc2UgQnQ6e2NvbnN0IGk9dC5jdXJyZW50SW5kZXgrMSxvPXI/KChlLHQsbik9Pntjb25zdCByPW4uc3BsaXQoIiAiKSxpPU50KGUsci5sZW5ndGgsdCk7cmV0dXJuIHIuc2xpY2UoMCxpKS5qb2luKCIgIil9KShpLG4sZSk6KChlLHQsbik9Pm4uc2xpY2UoMCxOdChlLG4ubGVuZ3RoLHQpKSkoaSxuLGUpO3JldHVybiBPdChPdCh7fSx0KSx7fSx7dHlwZWRUZXh0Om8sY3VycmVudEluZGV4Oml9KX1jYXNlIFJ0OnJldHVybiB6dChlLG4pfX0pLHp0KGUsbikpLGQ9bj8wPT09YS5sZW5ndGg6YS5sZW5ndGg9PT1lLmxlbmd0aDsoMCxjLnVzZUVmZmVjdCkoKCgpPT57bCh7dHlwZTpSdH0pfSksW24sbF0pLCgwLGMudXNlRWZmZWN0KSgoKCk9PntkJiZvLmN1cnJlbnQmJm8uY3VycmVudCgpfSksW2RdKTtjb25zdFtwXT1qdCgpO3JldHVybigwLGMudXNlRWZmZWN0KSgoKCk9PntkfHxwKCgoKT0+e2woe3R5cGU6QnR9KX0pLHQpfSksW2UsbixzLGQsdCxwXSksYX0sRHQ9WyJ0aGlua2luZyIsInN0aWxsX3RoaW5raW5nIiwid29ya2luZ19vbl9pdCIsInN0aWxsX3dvcmtpbmdfb25faXQiXSxMdD0oKT0+e2NvbnN0W2UsdF09KDAsYy51c2VSZWR1Y2VyKSgoZT0+IWUpLCExKSxbbixyXT0oMCxjLnVzZVJlZHVjZXIpKChlPT4oZSsxKSVEdC5sZW5ndGgpLDApLFtpXT1qdCgpLG89KDAsUy5JdSkoRHRbbl0pLGE9KDAsYy51c2VDYWxsYmFjaykoKCgpPT57ZT8odCgpLHIoKSk6aSh0LDdlMyl9KSxbZSxyLGldKSxzPU10KG8se3JldmVyc2U6ZSxvbkNvbXBsZXRlOmEsc3BlZWQ6MjV9KTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJtYXJxdWVlIn0scyl9LEd0PSgwLFEuWlApKCJkaXYiLHt0YXJnZXQ6ImUxamRvMXA2MCJ9KSgiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtjb2xvcjoiLCgwLFEuclMpKCJtNURhcmtHcmV5MiIpLCI7Zm9udC1zaXplOjE0cHg7IiksRnQ9KHt1c2VDdXN0b21pemVkSWRlbnRpdHk6ZT0hMX0pPT57Y29uc3QgdD1lP0l0Olp0O3JldHVybiBjLmNyZWF0ZUVsZW1lbnQoR3QsbnVsbCxjLmNyZWF0ZUVsZW1lbnQoVHQse2F1dG9wbGF5OiEwLGxvb3A6ITAsc3JjOnQsc3R5bGU6e2hlaWdodDpndC5DLHdpZHRoOmd0LkN9fSksYy5jcmVhdGVFbGVtZW50KEx0LG51bGwpKX0scXQ9Yy5tZW1vKEZ0KTtmdW5jdGlvbiBIdCh7YWRtaW46ZX0pe2NvbnN0IHQ9ZS5pc0JvdCxuPSgwLEplLkNHKShvLnFaKTtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KEV0LHsiZGF0YS10ZXN0aWQiOiJ0eXBpbmctYWRtaW4ifSxjLmNyZWF0ZUVsZW1lbnQoa3QsbnVsbCx0P2MuY3JlYXRlRWxlbWVudChxdCx7dXNlQ3VzdG9taXplZElkZW50aXR5Om59KTpjLmNyZWF0ZUVsZW1lbnQoZ3QuWix7YWRtaW46ZX0pKSwhdCYmYy5jcmVhdGVFbGVtZW50KEN0LG51bGwsYy5jcmVhdGVFbGVtZW50KHd0LG51bGwpLGMuY3JlYXRlRWxlbWVudCh3dCxudWxsKSxjLmNyZWF0ZUVsZW1lbnQod3QsbnVsbCksYy5jcmVhdGVFbGVtZW50KGh0LiRjLG51bGwsKDAsUy5JdSkoInR5cGluZyIpKSkpfXZhciBXdD1uKDQzNzQ1KSxVdD1uKDI5NDI5KSxWdD1uKDQ3OTApLCR0PW4oNzM5NjQpLEt0PW4oMTU2ODkpO2NvbnN0IFl0PW4ucCsiaW1hZ2VzL2F0dGVudGlvbi42YTZlNGNiYy5wbmciO3ZhciBKdD1uKDE0OTc4KSxYdD1uKDc0NDg5KTtmdW5jdGlvbiBRdChlLHQsbil7cmV0dXJuIG4+PWUubGVuZ3RoP251bGw6e2lkOmBvbmUtdGltZS1ib3QtaW50cm8tJHtufWAsYXV0aG9yOnQsY3JlYXRlZEF0Om5ldyBEYXRlLHBhcnRUeXBlOiJib3RfaW50cm8iLGJvZHk6ZVtuXSxzaG93Q3JlYXRlZEF0OiEwfX1jb25zdCBlbj0oe2NvbnZlcnNhdGlvbjplfSk9Pntjb25zdCB0PSgwLGMudXNlQ29udGV4dCkoSnQuWiksbj0oMCxKZS5DRykoKDAsWHQucVUpKGUpKTtpZighbilyZXR1cm4gbnVsbDtjb25zdCByPW4uc3VnZ2VzdGlvblBhcnRzO2lmKCFyKXJldHVybiBudWxsO2NvbnN0e29wZXJhdG9yOmkscGFydHM6b309cjtyZXR1cm4gaSYmbz8wPT09by5sZW5ndGg/bnVsbDpvLm1hcCgoKGUsbik9Pntjb25zdCByPVF0KG8saSxuKSxhPVF0KG8saSxuKzEpLHM9bj09PW8ubGVuZ3RoLTE7cmV0dXJuIGMuY3JlYXRlRWxlbWVudChDb252ZXJzYXRpb25QYXJ0LHtrZXk6bixpc0xhc3RQYXJ0OnMscGFydDpyLG5leHRQYXJ0OmEsaGFzQXZhdGFyOnMsaXNCb3JkZXJsZXNzOiExLGlzTW9iaWxlOiExLGZyYW1lV2luZG93OnQsc2hvd0lubGluZU1ldGFkYXRhOiExLGdyb3VwZWQ6IXMsYXBwTmFtZToiIixwYXJ0SGFzTWV0YWRhdGE6cyxjb252ZXJzYXRpb25IYXNTY3JvbGxlZDohMX0pfSkpOm51bGx9O2NsYXNzIENvbnZlcnNhdGlvblBhcnRzIGV4dGVuZHMgYy5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17ZGVsdGE6MH0sdGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2U9KCk9Pnt0aGlzLnBhcnRzJiZ0aGlzLnNldFN0YXRlKHtoZWlnaHQ6dGhpcy5wYXJ0cy5jbGllbnRIZWlnaHR9LCgoKT0+e2NvbnN0e29uSGVpZ2h0Q2hhbmdlOmV9PXRoaXMucHJvcHM7ZSYmZSh0aGlzLnN0YXRlLmhlaWdodCl9KSl9LHRoaXMuc2V0UGFydHM9ZT0+e3RoaXMucGFydHM9ZX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmhhbmRsZUhlaWdodENoYW5nZSgpLHRoaXMuY29udGV4dCYmdGhpcy5jb250ZXh0LnN1YnNjcmliZSYmdGhpcy5jb250ZXh0LnN1YnNjcmliZSgib25QYXJ0c0hlaWdodENoYW5nZSIsdGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2UpfWNvbXBvbmVudERpZFVwZGF0ZShlKXt0aGlzLmhhbmRsZVBhcnRzQ2hhbmdlKHRoaXMucHJvcHMuY29udmVyc2F0aW9uLnBhcnRzLmxlbmd0aCE9PWUuY29udmVyc2F0aW9uLnBhcnRzLmxlbmd0aCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt0aGlzLnN0b3BDaGVja2luZ0lmQWRtaW5Jc1R5cGluZygpfWhhbmRsZVBhcnRzQ2hhbmdlKGUpe2NvbnN0IHQ9dGhpcy5wYXJ0cy5jbGllbnRIZWlnaHQse21heEhlaWdodDpuLGlzQm9yZGVybGVzczpyLG9uSGVpZ2h0Q2hhbmdlOml9PXRoaXMucHJvcHMsbz1NYXRoLm1pbih0LW4sdC10aGlzLnN0YXRlLmhlaWdodCksYT1lJiZ0Pm4/bzowO3Q9PT10aGlzLnN0YXRlLmhlaWdodCYmYT09PXRoaXMuc3RhdGUuZGVsdGF8fHRoaXMuc2V0U3RhdGUoe2hlaWdodDp0LGRlbHRhOmF9LCgoKT0+eyhyfHxlKSYmaSYmaSh0aGlzLnN0YXRlLmhlaWdodCl9KSl9aXNTY3JvbGxpbmcoKXtjb25zdHtzY3JvbGxlZFRvQm90dG9tOmUsY29udmVyc2F0aW9uOnQsaXNCb3RUYXJnZXRlZENvbnZlcnNhdGlvbjpuLGlzQm9yZGVybGVzczpyfT10aGlzLnByb3BzO3JldHVybiEoKDAsVnQuaEYpKHQscixuKSYmIWUpJiZ0aGlzLnN0YXRlLmRlbHRhPjB9Z2V0U3R5bGUoKXtjb25zdCBlPWB0cmFuc2xhdGVZKCR7dGhpcy5zdGF0ZS5kZWx0YX1weClgO3JldHVybntXZWJraXRUcmFuc2Zvcm06ZSxtc1RyYW5zZm9ybTplLHRyYW5zZm9ybTplfX1nZXRQYXJ0S2V5KGUpe3JldHVybmBwYXJ0LSR7KDAsVnQuWXopKGUpfWB9Z2V0RGl2aWRlcktleShlKXtyZXR1cm5gZGl2aWRlci0keygwLFZ0Lll6KShlKX1gfWNvbnZlcnNhdGlvbkhhc1Njcm9sbGVkKCl7cmV0dXJuIHRoaXMuc3RhdGUuaGVpZ2h0Pj10aGlzLnByb3BzLm1heEhlaWdodH1yZW5kZXJEYXRlRGl2aWRlcihlKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHAuS3Yse2NsYXNzTmFtZXM6ImR1bW15IixrZXk6dGhpcy5nZXREaXZpZGVyS2V5KGUpLHRpbWVvdXQ6e2VudGVyOjAsZXhpdDowfX0sYy5jcmVhdGVFbGVtZW50KCR0LnIkLHtrZXk6dGhpcy5nZXREaXZpZGVyS2V5KGUpLCJkYXRhLXRlc3RpZCI6ImNvbnZlcnNhdGlvbi1wYXJ0LWRhdGUtZGl2aWRlciJ9LCgwLFZ0Lms1KShlLnNlbnRBdHx8ZS5jcmVhdGVkQXQpKSl9c2hvdWxkSWdub3JlUGFydChlKXtjb25zdHt0aWNrZXQ6dH09dGhpcy5wcm9wcy5jb252ZXJzYXRpb247cmV0dXJuIHQmJiJtZXNzYWdlIj09PWUucGFydFR5cGUmJigwLFZ0Lno5KShlKX1yZW5kZXJQYXJ0KGUsdCxuLHIpe2lmKHRoaXMuc2hvdWxkSWdub3JlUGFydChlKSYmbjwyKXJldHVybiBudWxsO2NvbnN0e2FwcE5hbWU6aSxjb252ZXJzYXRpb246byxpc0JvcmRlcmxlc3M6YSxpc01vYmlsZTpzLG9uUmVhY3Rpb25TZWxlY3Q6bCxvblJldHJ5OnUsb25BcnRpY2xlQ2FyZENsaWNrOm0sb25JbWFnZUNsaWNrOmgsZnJhbWVXaW5kb3c6ZyxzZXRQYXJ0UmVmOmYsaXNCb3RUYXJnZXRlZENvbnZlcnNhdGlvbjp4fT10aGlzLnByb3BzLHtsYXN0VHlwaW5nQWRtaW46dn09byx5PSgwLFZ0LlFxKShlLHQpLGI9KDAsVnQuaEYpKG8sYSx4KSxFPSgwLFZ0Lk52KShlLHQsYSxiLHYpLHtyZWFjdGlvbnNSZXBseTprfT0oMCxVdC5aKShyKSxDPSgwLGQuRzYpKCkmJiJhdHRyaWJ1dGVfY29sbGVjdG9yIj09PWUucGFydFR5cGUsdz1DPyJkdW1teSI6ImludGVyY29tLWNvbnZlcnNhdGlvbi1wYXJ0IixTPUM/e2VudGVyOjAsZXhpdDowfTp7ZW50ZXI6MzIwMCxleGl0OjYwMH0sUD10aGlzLmdldFBhcnRLZXkoZSksVD12b2lkIDA9PT10O3JldHVybiBjLmNyZWF0ZUVsZW1lbnQocC5Ldix7Y2xhc3NOYW1lczp3LGtleTpQLHRpbWVvdXQ6U30sYy5jcmVhdGVFbGVtZW50KEt0Llose2Vycm9yVGV4dDoiU29tZXRoaW5nIHdlbnQgd3JvbmcgbG9hZGluZyB0aGlzIG1lc3NhZ2UiLGFsaWduOiJjZW50ZXIiLHN0eWxlOnttYXJnaW46IjEwcHggMCAyMHB4In19LGMuY3JlYXRlRWxlbWVudChDb252ZXJzYXRpb25QYXJ0LHtrZXk6UCxwYXJ0OmUsc2V0UGFydFJlZjpmLG5leHRQYXJ0OnQsYXBwTmFtZTppLGNvbnZlcnNhdGlvbklkOm8uaWQscmVhY3Rpb25zUmVwbHk6ayxvblJlYWN0aW9uU2VsZWN0Omwsb25SZXRyeTp1LGFkbWluSXNUeXBpbmc6YixoYXNBdmF0YXI6RSxncm91cGVkOnksaXNMYXN0UGFydDpULHBhcnRIYXNNZXRhZGF0YTooMCxWdC53VikoZSxyLGIseCksaXNCb3JkZXJsZXNzOmEsaXNNb2JpbGU6cyxmcmFtZVdpbmRvdzpnLG9uQXJ0aWNsZUNhcmRDbGljazptLG9uSW1hZ2VDbGljazpoLGNvbnZlcnNhdGlvbkhhc1Njcm9sbGVkOnRoaXMuY29udmVyc2F0aW9uSGFzU2Nyb2xsZWQoKSwiZGF0YS10ZXN0aWQiOiJjb252ZXJzYXRpb24ifSkpKX1mYWtlVGVtcG9yYXJ5RXhwZWN0YXRpb25zUGFydChlKXtjb25zdCB0PXthdmF0YXI6e3NxdWFyZTEyODpZdH0saW5pdGlhbDoiaSIsbGFiZWw6IkluZm9ybWF0aW9uIix0eXBlOiJhZG1pbiJ9O3JldHVybnthdXRob3I6dCxjcmVhdGVkQXQ6bmV3IERhdGUscGFydFR5cGU6InRlbXBvcmFyeV9leHBlY3RhdGlvbnMiLGV2ZW50RGF0YTp7cGFydGljaXBhbnQ6dCxldmVudEFzUGxhaW5UZXh0OmV9LHNob3dDcmVhdGVkQXQ6ITF9fXJlbmRlcmFibGVQYXJ0cygpe2NvbnN0e2NvbnZlcnNhdGlvbjplLGFuaW1hdGluZ0NvbnZlcnNhdGlvblBhcnRJZDp0LHRlbXBvcmFyeUV4cGVjdGF0aW9uc01lc3NhZ2U6bn09dGhpcy5wcm9wcztsZXQgcj1lLnBhcnRzLmZpbHRlcigoZT0+dm9pZCAwIT09ZSYmISgwLFZ0LkdWKShlKSkpO24mJiF0aGlzLnByb3BzLnNob3VsZFVzZU5ld01lc3NlbmdlciYmKHI9W3RoaXMuZmFrZVRlbXBvcmFyeUV4cGVjdGF0aW9uc1BhcnQobiksLi4ucl0pO2NvbnN0IGk9ci5maW5kSW5kZXgoKGU9PnZvaWQgMCE9PXQmJigwLFZ0Lll6KShlKT09PXQpKTtyZXR1cm4tMSE9PWkmJihyPXIuZmlsdGVyKCgoZSx0KT0+IShlLmF1dGhvci5pc0FkbWluJiZ0PmkpKSkpLHJ9cmVuZGVyUGFydHMoKXtjb25zdHtpc0JvcmRlcmxlc3M6ZX09dGhpcy5wcm9wcyx0PXRoaXMucmVuZGVyYWJsZVBhcnRzKCksbj1bXTtyZXR1cm4gdC5sZW5ndGg+MCYmIWUmJigwLFZ0LnVyKSh0KSYmKHRoaXMuc2hvdWxkSWdub3JlUGFydCh0WzBdKXx8bi5wdXNoKHRoaXMucmVuZGVyRGF0ZURpdmlkZXIodFswXSkpKSx0LmZvckVhY2goKChyLGkpPT57Y29uc3Qgbz10W2ktMV0sYT10W2krMV07IWUmJigwLFZ0LmMkKShvLHIpJiZuLnB1c2godGhpcy5yZW5kZXJEYXRlRGl2aWRlcihyKSksbi5wdXNoKHRoaXMucmVuZGVyUGFydChyLGEsaSx0KSl9KSksbn1jaGVja0lmQWRtaW5Jc1N0aWxsVHlwaW5nKCl7dGhpcy5pc1R5cGluZ0ludGVydmFsfHwodGhpcy5pc1R5cGluZ0ludGVydmFsPXNldEludGVydmFsKCgoKT0+dGhpcy5mb3JjZVVwZGF0ZSgpKSwxZTMpKX1zdG9wQ2hlY2tpbmdJZkFkbWluSXNUeXBpbmcoKXtjbGVhckludGVydmFsKHRoaXMuaXNUeXBpbmdJbnRlcnZhbCksdGhpcy5pc1R5cGluZ0ludGVydmFsPXZvaWQgMH1yZW5kZXJUeXBpbmdBZG1pbigpe2NvbnN0e2xhc3RUeXBpbmdBZG1pbjplfT10aGlzLnByb3BzLmNvbnZlcnNhdGlvbjtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KHAuS3Yse2NsYXNzTmFtZXM6ImludGVyY29tLWNvbnZlcnNhdGlvbi1wYXJ0IixrZXk6InR5cGluZy1hZG1pbiIsdGltZW91dDozMjAwLGV4aXQ6ITF9LGMuY3JlYXRlRWxlbWVudChIdCx7YWRtaW46ZXx8dGhpcy5wcm9wcy5hY3RpdmVCb3QucGFydGljaXBhbnR9KSl9c2hvdWxkUmVuZGVyVHlwaW5nQWRtaW4oKXtyZXR1cm4oMCxWdC5oRikodGhpcy5wcm9wcy5jb252ZXJzYXRpb24sdGhpcy5wcm9wcy5pc0JvcmRlcmxlc3MsdGhpcy5wcm9wcy5pc0JvdFRhcmdldGVkQ29udmVyc2F0aW9uKT8odGhpcy5jaGVja0lmQWRtaW5Jc1N0aWxsVHlwaW5nKCksITApOih0aGlzLnN0b3BDaGVja2luZ0lmQWRtaW5Jc1R5cGluZygpLCExKX1yZW5kZXIoKXtjb25zdHtpc0ZhZGVkOmUsaXNCb3JkZXJsZXNzOnQsY29udmVyc2F0aW9uOm59PXRoaXMucHJvcHMscj10aGlzLnNob3VsZFJlbmRlclR5cGluZ0FkbWluKCk7cmV0dXJuIGMuY3JlYXRlRWxlbWVudCgkdC5rVixudWxsLGMuY3JlYXRlRWxlbWVudCgkdC54NSx7cmVmOnRoaXMuc2V0UGFydHMsc3R5bGU6dGhpcy5nZXRTdHlsZSgpLGlzU2Nyb2xsaW5nOnRoaXMuaXNTY3JvbGxpbmcoKSxpc0ZhZGVkOmUsaXNCb3JkZXJsZXNzOnR9LG4uaWQ/bnVsbDpjLmNyZWF0ZUVsZW1lbnQoZW4se2NvbnZlcnNhdGlvbjpufSksYy5jcmVhdGVFbGVtZW50KHAuVzMsbnVsbCx0aGlzLnJlbmRlclBhcnRzKCkpLGMuY3JlYXRlRWxlbWVudChwLlczLG51bGwscj90aGlzLnJlbmRlclR5cGluZ0FkbWluKCk6bnVsbCkpKX19Q29udmVyc2F0aW9uUGFydHMuZGVmYXVsdFByb3BzPXtpc0JvcmRlcmxlc3M6ITEsaXNNb2JpbGU6ITF9LENvbnZlcnNhdGlvblBhcnRzLmNvbnRleHRUeXBlPVd0LlosQ29udmVyc2F0aW9uUGFydHMucHJvcFR5cGVzPXtjb252ZXJzYXRpb246bCgpLnNoYXBlKHtpZDpsKCkuc3RyaW5nLGxhc3RUeXBpbmdBZG1pbjpsKCkub2JqZWN0LGludGVyY29tTGlua1NvbHV0aW9uOmwoKS5zdHJpbmcscGFydHM6bCgpLmFycmF5T2YobCgpLnNoYXBlKHtjcmVhdGVkQXQ6bCgpLmluc3RhbmNlT2YoRGF0ZSl9KSksdGlja2V0OmwoKS5hbnl9KS5pc1JlcXVpcmVkLGFwcE5hbWU6bCgpLnN0cmluZy5pc1JlcXVpcmVkLGlzQm9yZGVybGVzczpsKCkuYm9vbCxpc0ZhZGVkOmwoKS5ib29sLGlzTW9iaWxlOmwoKS5ib29sLG1heEhlaWdodDpsKCkubnVtYmVyLHNjcm9sbGVkVG9Cb3R0b206bCgpLmJvb2wsZnJhbWVXaW5kb3c6bCgpLmFueS5pc1JlcXVpcmVkLG9uUmVhY3Rpb25TZWxlY3Q6bCgpLmZ1bmMuaXNSZXF1aXJlZCxvblJldHJ5OmwoKS5mdW5jLmlzUmVxdWlyZWQsb25BcnRpY2xlQ2FyZENsaWNrOmwoKS5mdW5jLG9uSGVpZ2h0Q2hhbmdlOmwoKS5mdW5jLG9uSW1hZ2VDbGljazpsKCkuZnVuYyxzZXRQYXJ0UmVmOmwoKS5mdW5jLHRlbXBvcmFyeUV4cGVjdGF0aW9uc01lc3NhZ2U6bCgpLnN0cmluZyxzaG91bGRVc2VOZXdNZXNzZW5nZXI6bCgpLmJvb2wsdXNlQm90VVg6bCgpLmJvb2wsYWN0aXZlQm90OmwoKS5vYmplY3QsaXNCb3RUYXJnZXRlZENvbnZlcnNhdGlvbjpsKCkuYm9vbCxhbmltYXRpbmdDb252ZXJzYXRpb25QYXJ0SWQ6bCgpLnN0cmluZ307dmFyIHRuPW4oMzA5ODApO2NvbnN0IG5uPSgwLHIuY29ubmVjdCkoKChlLHQpPT57Y29uc3Qgbj0oMCxvLmx6KShlKSxyPSgwLGEuangpKG4sbnVsbD09dD92b2lkIDA6dC5jb252ZXJzYXRpb24pLHM9KDAsdG4ucG0pKGUsdC5jb252ZXJzYXRpb24uaWQpO3JldHVybntzaG91bGRVc2VOZXdNZXNzZW5nZXI6KDAsaS5jMCkoZSksYWN0aXZlQm90OnI/KDAsby5WQSkoZSk6bnVsbCxpc0JvdFRhcmdldGVkQ29udmVyc2F0aW9uOnIsYW5pbWF0aW5nQ29udmVyc2F0aW9uUGFydElkOnN9fSkpKENvbnZlcnNhdGlvblBhcnRzKX0sODI2NDA6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5JfSk7dmFyIHI9bigzNzQyNCksaT1uKDE4NDQ2KSxvPW4ubihpKSxhPW4oNjcyOTQpLHM9big2MzUzOCksbD1uKDExMzUzKSxjPW4oMjE2NDQpLGQ9big0Mzc0NSkscD1uKDgwMjk5KSx1PW4oNDkyNik7Y29uc3QgbT0oZSx0KT0+e2NvbnN0IG49W107bGV0IHI9MDtyZXR1cm4gaT0+e2NvbnN0W28sYV09KChlLHQpPT57aWYoIXQpcmV0dXJuWzAsMF07Y29uc3Qgbj10LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpO2lmKCFuKXJldHVyblswLDBdO24uc3R5bGUuZGlzcGxheT0iIixuLnRleHRDb250ZW50PWU7Y29uc3Qgcj1bbi5vZmZzZXRXaWR0aCtjLm5ILG4ub2Zmc2V0SGVpZ2h0K2MubkhdO3JldHVybiBuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHJ9KShpLHQpLHM9KG4uZmlsdGVyKChlPT5lWzFdPT09cikpfHxbXSkubWFwKChlPT5lWzJdKSkucmVkdWNlKCgoZSx0KT0+ZSt0KSwwKTtpZihvK3M+ZSl7Y29uc3QgZT1uLmxlbmd0aD4wP25bbi5sZW5ndGgtMV1bM106MDtyKz1lfWVsc2Ugbi5mb3JFYWNoKChlPT57ZVsxXT09PXImJihlWzBdPWVbMF0tbyl9KSk7Y29uc3QgbD1bMCxyLG8sYV07cmV0dXJuIG4ucHVzaChsKSx7Ym91bmRzOmx9fX07ZnVuY3Rpb24gaChlKXtjb25zdHtyZXBseU9wdGlvbjp0LG9uU2VsZWN0Om4sZm9jdXNlZDpyLHN0eWxlOmksaXNUeXBlYWhlYWRTdWdnZXN0aW9uOm8saXNCb3JkZXJsZXNzOnN9PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChjLnljLHtsYWJlbDp0LnRleHQsdmFsdWU6dCxvbkNsaWNrOm4sZm9jdXNlZDpyLGlzVHlwZWFoZWFkU3VnZ2VzdGlvbjpvLGlzQm9yZGVybGVzczpzLHN0eWxlOml9KX1jb25zdCBnPWEuZm9yd2FyZFJlZigoKHttYXhXaWR0aDplfSx0KT0+YS5jcmVhdGVFbGVtZW50KGMuc3YsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoYy5WbSx7cmVmOnR9LGEuY3JlYXRlRWxlbWVudChjLnljLHt0YWJJbmRleDoiLTEiLHN0eWxlOntkaXNwbGF5OiJub25lIixtYXhXaWR0aDplfX0pKSkpKTt2YXIgZj1uKDgyNTE3KTtjb25zdCB4PVsiYm91bmRzIl07ZnVuY3Rpb24gdihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLGk9e30sbz1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8by5sZW5ndGg7cisrKW49b1tyXSx0LmluZGV4T2Yobik+PTB8fChpW25dPWVbbl0pO3JldHVybiBpfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24geShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gYihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj95KE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7RShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBFKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBrKGUpe3ZhciB0O2NvbnN0e3N1Z2dlc3Rpb25zOm4sb25TZWxlY3Q6cixvbkhlaWdodENoYW5nZTppLGlzSW5ib3VuZEJvdFN1Z2dlc3Rpb25zOm8saXNUeXBlYWhlYWRTdWdnZXN0aW9uczpzLGlzQm9yZGVybGVzczpsfT1lLGQ9YS51c2VSZWYoKSx5PShudWxsPT09KHQ9ZC5jdXJyZW50KXx8dm9pZCAwPT09dHx8bnVsbD09PSh0PXQucGFyZW50RWxlbWVudCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQub2Zmc2V0V2lkdGgpfHwwLEU9eS0yKmMuSTYrInB4IixrPWQuY3VycmVudD9uOltdLEM9bSh5LGQuY3VycmVudCksdz1rLm1hcCgoZT0+YihiKGIoe30sZSksQyhlLnRleHQpKSx7fSx7aXNJbmJvdW5kQm90U3VnZ2VzdGlvbjpvLGlzVHlwZWFoZWFkU3VnZ2VzdGlvbjpzfSkpKSxTPXdbdy5sZW5ndGgtMV0sUD1TP1MuYm91bmRzWzFdK1MuYm91bmRzWzNdOjAsVD0oMCx1LnVzZVRyYW5zaXRpb24pKHcsKGU9PmUudXVpZCkse2Zyb206KHtib3VuZHM6ZX0pPT4oe2JvdW5kczplLG9wYWNpdHk6MH0pLGVudGVyOih7Ym91bmRzOmV9KT0+KHtib3VuZHM6ZSxvcGFjaXR5OjF9KSx1cGRhdGU6KHtib3VuZHM6ZX0pPT4oe2JvdW5kczplfSksbGVhdmU6e29wYWNpdHk6LjAxLHBvaW50ZXJFdmVudHM6Im5vbmUifSxjb25maWc6e21hc3M6Myx0ZW5zaW9uOjFlMyxmcmljdGlvbjoyMDB9LHRyYWlsOjI1LGltbWVkaWF0ZTohMX0pLFo9KDAscC5DRykoZi5obyk7YS51c2VFZmZlY3QoKCgpPT57UCYmaSYmKGkoUCksc2V0VGltZW91dCgoKCk9PmkoUCkpLGMueUEpKX0pLFtQLGksWl0pLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsYS51c2VSZWYpKCksW24scl09KDAsYS51c2VTdGF0ZSkoITEpOygwLGEudXNlRWZmZWN0KSgoKCk9Pih0LmN1cnJlbnQ9c2V0VGltZW91dCgoKCk9PnIoITApKSxlKSwoKT0+Y2xlYXJUaW1lb3V0KHQuY3VycmVudCkpKSxbZV0pfSgwKTtjb25zdCBJPVRbMF0mJlRbMF0uaXRlbSYmVFswXS5pdGVtLmlzSW5ib3VuZEJvdFN1Z2dlc3Rpb247cmV0dXJuIGEuY3JlYXRlRWxlbWVudChjLllqLHtoZWlnaHQ6UCxpc0luYm91bmRCb3Q6SX0sYS5jcmVhdGVFbGVtZW50KGcse3JlZjpkLG1heFdpZHRoOkV9KSxULm1hcCgoZT0+e2xldHtpdGVtOnQscHJvcHM6e2JvdW5kczpufSxrZXk6aX09ZSxvPXYoZS5wcm9wcyx4KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGgse2tleTppLGZvY3VzZWQ6ITEscmVwbHlPcHRpb246dCxvblNlbGVjdDpyLGlzVHlwZWFoZWFkU3VnZ2VzdGlvbjp0LmlzVHlwZWFoZWFkU3VnZ2VzdGlvbixpc0JvcmRlcmxlc3M6bCxzdHlsZTpiKHt0cmFuc2Zvcm06bi50bygoKGUsdCk9PmB0cmFuc2xhdGUzZCgke2V9cHgsJHt0fXB4LDApYCkpLG1heFdpZHRoOkV9LG8pfSl9KSkpfXZhciBDPW4oNzQ0ODkpLHc9big2NzU5MiksUz1uKDcyNjEpO2Z1bmN0aW9uIFAoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/UChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe1ooZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlAoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gWihlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9Y2xhc3MgQ29udmVyc2F0aW9uU3VnZ2VzdGlvbnMgZXh0ZW5kcyBhLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnJlY2VpdmVNZXRyaWNTZW50PSExLHRoaXMuc2hvdWxkRXhlY3V0ZU9uU3VnZ2VzdGlvbnNDYj0hMCx0aGlzLmhhbmRsZUNsaWNrPWFzeW5jIGU9Pntjb25zdHtjb252ZXJzYXRpb25TdWdnZXN0aW9uczp0LGNvbXBvc2VyQ29udGVudDpufT10aGlzLnByb3BzO3RoaXMuY29udGV4dCYmdGhpcy5jb250ZXh0LmVtcHR5Q29tcG9zZXImJnRoaXMuY29udGV4dC5lbXB0eUNvbXBvc2VyKCksYXdhaXQgdGhpcy5wcm9wcy5vbkNsaWNrKGUpO2NvbnN0e2NvbnZlcnNhdGlvbjpyfT10aGlzLnByb3BzLGk9e2NvbnZlcnNhdGlvbl9pZDpudWxsPT1yP3ZvaWQgMDpyLmlkLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOnQsY29tcG9zZXJDb250ZW50Om4sc3VnZ2VzdGlvbjplfTsoMCxsLldNKSgiY2xpY2tlZCIsdGhpcy5nZXRNZXRyaWNOYW1lRm9yU3VnZ2VzdGlvblR5cGUoZS50eXBlKSwibWVzc2VuZ2VyIiwiIixpKX0sdGhpcy5oYW5kbGVEaXNtaXNzU3VnZ2VzdGlvbnM9KCk9Pntjb25zdHtzZXRDb21wb3NlclN1Z2dlc3Rpb25zRGlzbWlzc2VkOmUsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6dCxjb252ZXJzYXRpb246bixjb21wb3NlckNvbnRlbnQ6cn09dGhpcy5wcm9wczsoMCxsLldNKSgiZGlzbWlzc2VkIiwiY29tcG9zZXJfc3VnZ2VzdGlvbnMiLCJtZXNzZW5nZXIiLCIiLHtjb252ZXJzYXRpb25TdWdnZXN0aW9uczp0LGNvbXBvc2VyQ29udGVudDpyLGNvbnZlcnNhdGlvbl9pZDpudWxsPT1uP3ZvaWQgMDpuLmlkfSksZSYmZSgpfSx0aGlzLnJlbmRlclN1Z2dlc3Rpb25zSGVhZGVyPSgpPT57Y29uc3R7aXNUeXBlYWhlYWRTdWdnZXN0aW9uczplfT10aGlzLnByb3BzLmNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zLHQ9dGhpcy5wcm9tcHQoKTtyZXR1cm4gdGhpcy5zdWdnZXN0aW9uUGFydHMoKT9udWxsOnQubGVuZ3RoP2EuY3JlYXRlRWxlbWVudChjLkR4LG51bGwsYS5jcmVhdGVFbGVtZW50KHMuWix7YXV0b1BsYXk6ITEsYmxvY2tzOnR9KSk6dGhpcy5zdWdnZXN0aW9ucygpLmxlbmd0aCYmZT9hLmNyZWF0ZUVsZW1lbnQoYy5ESCxudWxsLGEuY3JlYXRlRWxlbWVudChjLlduLHtvbkNsaWNrOnRoaXMuaGFuZGxlRGlzbWlzc1N1Z2dlc3Rpb25zfSwoMCx3Lkl1KSgiZG9udF9zaG93X3N1Z2dlc3Rpb25zIikpLGEuY3JlYXRlRWxlbWVudChjLnlrLHtvbkNsaWNrOnRoaXMuaGFuZGxlRGlzbWlzc1N1Z2dlc3Rpb25zfSkpOm51bGx9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5leGVjdXRlQ2FsbGJhY2tzQW5kTWV0cmljcygpfWNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMuZXhlY3V0ZUNhbGxiYWNrc0FuZE1ldHJpY3MoKX1leGVjdXRlQ2FsbGJhY2tzQW5kTWV0cmljcygpe2NvbnN0e2NvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOmUsb25TdWdnZXN0aW9uc1Nob3c6dH09dGhpcy5wcm9wcyxuPWUmJmUuc3VnZ2VzdGlvbnMubGVuZ3RoO3ZhciByO24mJiF0aGlzLnJlY2VpdmVNZXRyaWNTZW50JiYoKDAsbC5XTSkoInJlY2VpdmVkIiwiY29tcG9zZXJfc3VnZ2VzdGlvbnMiLCJtZXNzZW5nZXIiLCIiLFQoVCh7fSxlKSx7fSx7dXJsOm51bGw9PT0ocj0oMCxTLmJNKSgpKXx8dm9pZCAwPT09cj92b2lkIDA6ci5ocmVmfSkpLHRoaXMucmVjZWl2ZU1ldHJpY1NlbnQ9ITApO24mJnQmJnRoaXMuc2hvdWxkRXhlY3V0ZU9uU3VnZ2VzdGlvbnNDYiYmKHQoKSx0aGlzLnNob3VsZEV4ZWN1dGVPblN1Z2dlc3Rpb25zQ2I9ITEpLG58fCh0aGlzLnNob3VsZEV4ZWN1dGVPblN1Z2dlc3Rpb25zQ2I9ITApfXNob3VsZFNob3dTdWdnZXN0aW9ucygpe2NvbnN0e2NvbnZlcnNhdGlvbjplLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOnR9PXRoaXMucHJvcHM7aWYoIXQpcmV0dXJuITE7Y29uc3R7c3VnZ2VzdGlvbnM6bn09dDtpZighbi5sZW5ndGh8fCJxdWlja19yZXBseSIhPT1uWzBdLnR5cGUpcmV0dXJuITA7Y29uc3Qgcj0oMCxDLkwyKShlKTtyZXR1cm4gbygpKHIsbil9c3VnZ2VzdGlvbnMoKXtpZighdGhpcy5zaG91bGRTaG93U3VnZ2VzdGlvbnMoKSlyZXR1cm5bXTtjb25zdHtzdWdnZXN0aW9uczplfT10aGlzLnByb3BzLmNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zO3JldHVybiBlfXByb21wdCgpe2lmKCF0aGlzLnNob3VsZFNob3dTdWdnZXN0aW9ucygpKXJldHVybltdO2NvbnN0e3Byb21wdDplfT10aGlzLnByb3BzLmNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zO3JldHVybiBlfXN1Z2dlc3Rpb25QYXJ0cygpe2lmKCF0aGlzLnNob3VsZFNob3dTdWdnZXN0aW9ucygpKXJldHVybiBudWxsO2NvbnN0e3N1Z2dlc3Rpb25QYXJ0czplfT10aGlzLnByb3BzLmNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zO3JldHVybiBlfXJlbmRlcigpe2NvbnN0e2lzQm9yZGVybGVzczplLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOnR9PXRoaXMucHJvcHM7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3R7aXNJbmJvdW5kQm90U3VnZ2VzdGlvbnM6bixpc1R5cGVhaGVhZFN1Z2dlc3Rpb25zOnJ9PXQsaT10aGlzLnN1Z2dlc3Rpb25zKCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChjLlcyLHtjbGFzc05hbWU6ImNvbXBvc2VyLXN1Z2dlc3Rpb25zLWNvbnRhaW5lciIsaXNCb3JkZXJsZXNzOiEhZSxpc1R5cGVhaGVhZFN1Z2dlc3Rpb25zOiEhcixzdWdnZXN0aW9uc1Zpc2libGU6aS5sZW5ndGg+MH0sdGhpcy5yZW5kZXJTdWdnZXN0aW9uc0hlYWRlcigpLGEuY3JlYXRlRWxlbWVudChjLkRiLG51bGwsYS5jcmVhdGVFbGVtZW50KGsse2lzSW5ib3VuZEJvdFN1Z2dlc3Rpb25zOm4saXNUeXBlYWhlYWRTdWdnZXN0aW9uczpyLHN1Z2dlc3Rpb25zOmksb25TZWxlY3Q6dGhpcy5oYW5kbGVDbGljayxvbkhlaWdodENoYW5nZTp0aGlzLnByb3BzLm9uSGVpZ2h0Q2hhbmdlLGlzQm9yZGVybGVzczplfSkpKX1nZXRNZXRyaWNOYW1lRm9yU3VnZ2VzdGlvblR5cGUoZSl7c3dpdGNoKGUpe2Nhc2UibWVzc2VuZ2VyX3N1Z2dlc3RlZF9jb250ZW50IjpyZXR1cm4iY29tcG9zZXJfc21hcnRfc3VnZ2VzdGlvbnMiO2Nhc2UicHJlZGljdGl2ZV9hbnN3ZXIiOnJldHVybiJwcmVkaWN0aXZlX2Fuc3dlciI7ZGVmYXVsdDpyZXR1cm4iY29tcG9zZXJfc3VnZ2VzdGlvbnMifX19Q29udmVyc2F0aW9uU3VnZ2VzdGlvbnMuY29udGV4dFR5cGU9ZC5aO2NvbnN0IEk9KDAsci5jb25uZWN0KSgoZT0+e2NvbnN0e2NvbXBvc2VyOnR9PWU7cmV0dXJue2NvbXBvc2VyQ29udGVudDp0LmNvbnRlbnR9fSkpKENvbnZlcnNhdGlvblN1Z2dlc3Rpb25zKX0sMTQ5Nzg6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5yfSk7Y29uc3Qgcj1uKDY3Mjk0KS5jcmVhdGVDb250ZXh0KG51bGwpfSw5MDc4NDooZSx0LG4pPT57bi5kKHQse1o6KCk9PnJ9KTtjb25zdCByPSgwLG4oNjcyOTQpLmNyZWF0ZUNvbnRleHQpKHtvblBhcnRIZWlnaHRDaGFuZ2U6KCk9Pnt9fSl9LDY3NTI0OihlLHQsbik9PntuLmQodCx7UjU6KCk9PmQsc3Q6KCk9PnAsZVA6KCk9PmN9KTt2YXIgcj1uKDQzNzI2KSxpPW4ubihyKSxvPW4oNTc0MTUpLGE9bi5uKG8pO2NvbnN0IHM9ZT0+e2NvbnN0IHQ9aSgpKGUpLnJlcGxhY2UoIiZuYnNwOyIsIiIpLnRyaW0oKTtyZXR1cm4gYSgpLmlzU3VwcG9ydGVkVW5pY29kZSh0KXx8YSgpLmlzU3VwcG9ydGVkQXNjaWkodCl9O3ZhciBsPW4oODI1NSk7Y29uc3QgYz1lPT4icGFyYWdyYXBoIj09PWUudHlwZSYmcyhlLnRleHQpfHwiaHRtbCI9PT1lLnR5cGUmJnMoZS5jb250ZW50KXx8InJhd0NvbnRlbnQiPT09ZS50eXBlJiZzKGUuY29udGVudCksZD1lPT4hIWUmJjE9PT1lLmxlbmd0aCYmKCgwLGwuUXEpKGVbMF0pfHxjKGVbMF0pKSxwPWU9PmQoZSkmJigwLGwuJFEpKGVbMF0pfSw2NjYwMjooZSx0LG4pPT57bi5kKHQse0V5OigpPT5zLEZMOigpPT5jLGRtOigpPT5wLGRyOigpPT5sLHlKOigpPT5kfSk7dmFyIHI9big4MjU1KSxpPW4oNjc1OTIpLG89bigxOTI3OSk7Y29uc3QgYT1lPT57Y29uc3QgdD1lLnBhcnRzWzBdO3JldHVybiB0JiYidGVhbSI9PT10LmF1dGhvci50eXBlP3QuYXV0aG9yLmZpcnN0TmFtZTpudWxsfSxzPWU9Pnt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PSgwLHIubGQpKGUucGFydHMuZmlsdGVyKChlPT4hKDAsby5aKShlLnBhcnRUeXBlKSkpKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuc3VtbWFyeVRleHR9LGw9KGUsdCk9Pnt2YXIgbjtjb25zdCByPShlPT57aWYoZS5sYXN0UGFydGljaXBhdGluZ0FkbWluKXJldHVybiBlLmxhc3RQYXJ0aWNpcGF0aW5nQWRtaW4uZmlyc3ROYW1lO2NvbnN0IHQ9ZS5wYXJ0c1swXTtyZXR1cm4gdCYmdC5wYXJ0aWNpcGFudElzQWRtaW4/dC5hdXRob3IuZmlyc3ROYW1lOmEoZSl9KSh0KTtpZighcilyZXR1cm4gZTtjb25zdCBvPW51bGw9PT0obj10LnBhcnRpY2lwYW50cyl8fHZvaWQgMD09PW4/dm9pZCAwOm4uZmlsdGVyKChlPT4iYWRtaW4iPT09ZS50eXBlKSk7cmV0dXJuIXQudGlja2V0JiZvLmxlbmd0aD4xJiYiZW4iPT09KDAsaS5LZCkoKT8oKGUsdCk9Pntjb25zdCBuPWUubGVuZ3RoO3JldHVybiBuPjI/KDAsaS5JdSkoIm5hbWVfYW5kX3hfb3RoZXJzIix7bmFtZTp0LGNvdW50OlN0cmluZyhuLTEpfSk6KDAsaS5JdSkoIm5hbWVfYW5kXzFfb3RoZXIiLHtuYW1lOnR9KX0pKG8scik6cn0sYz1lPT4hKGUucmVhZHx8IndoYXRzYXBwIj09PWUuY3VycmVudENoYW5uZWwpLGQ9ZT0+ZS5wYXJ0cy5zb21lKChlPT4hZS5hdXRob3IuaXNBZG1pbiYmIWUuYXV0aG9yLmlzQm90KSkscD0oZSx0KT0+e2lmKHQubGFzdFBhcnRpY2lwYXRpbmdBZG1pbilyZXR1cm5bdC5sYXN0UGFydGljaXBhdGluZ0FkbWluXTtjb25zdCBuPXQucGFydHNbMF07aWYoIW4pcmV0dXJuIGU7Y29uc3Qgcj1uLnRlYW1BdXRob3I7cmV0dXJuIHI/ci5hZG1pbnM6ZX19LDQ3OTA6KGUsdCxuKT0+e24uZCh0LHtHVjooKT0+eSxOdjooKT0+ZixRcTooKT0+ZyxSczooKT0+RSxZejooKT0+dixjJDooKT0+ZCxoRjooKT0+bSxrNTooKT0+cCx1cjooKT0+Yyx3VjooKT0+eCx6OTooKT0+Yn0pO3ZhciByPW4oNTI1MDApLGk9bigxOTI3OSksbz1uKDY3NTkyKSxhPW4oMjk0MjkpO2NvbnN0IHM9ZT0+bmV3IERhdGUtZSxsPVsiamFudWFyeSIsImZlYnJ1YXJ5IiwibWFyY2giLCJhcHJpbCIsIm1heSIsImp1bmUiLCJqdWx5IiwiYXVndXN0Iiwic2VwdGVtYmVyIiwib2N0b2JlciIsIm5vdmVtYmVyIiwiZGVjZW1iZXIiXSxjPWU9PiJsaW5rIj09PWVbMF0ubWVzc2FnZVR5cGU/IWUuc2xpY2UoMSkuZXZlcnkoKHQ9PigwLHIuRm8pKHQuY3JlYXRlZEF0LGVbMF0uc2VudEF0KSkpOiExIT09ZVswXS5zaG93Q3JlYXRlZEF0JiYhZS5ldmVyeSgodD0+KDAsci5GbykodC5jcmVhdGVkQXQsZVswXS5jcmVhdGVkQXQpKSksZD0oZSx0KT0+ZSYmISgwLHIuRm8pKHQuY3JlYXRlZEF0LGUuc2VudEF0fHxlLmNyZWF0ZWRBdCkscD1lPT4oMCxvLkl1KShgJHtsW2UuZ2V0TW9udGgoKV19X2RhdGVgLHtkYXRlOmUuZ2V0RGF0ZSgpfSksdT0oZSx0KT0+e2NvbnN0IG49KChlLHQpPT50LmZpbmQoKHQ9PnQuYXV0aG9yLmlzQWRtaW4mJnQuYXV0aG9yLmlkPT09ZS5pZCYmdC5jcmVhdGVkQXQ+PWUubGFzdEFjdGl2ZUF0LTVlMykpKShlLHQpLHI9ZS5pc0JvdD82ZTQ6MWU0O3JldHVybiFuJiZzKGUubGFzdEFjdGl2ZUF0KTxyfSxtPShlLHQ9ITEsbj0hMSk9PntpZih0KXJldHVybiExO2NvbnN0e3BhcnRzOnI9W10sbGFzdFR5cGluZ0FkbWluOmksY3VycmVudENoYW5uZWw6b309ZSxhPXJbci5sZW5ndGgtMV0sbD1hJiZhLmF1dGhvciYmIWEuYXV0aG9yLmlzQWRtaW4mJiFhLmF1dGhvci5pc0JvdCYmInNhdmVkIj09PWEuc2F2ZVN0YXRlO2lmKG4mJiJzdGF0ZV9vcGVuIj09PWUuc3RhdGUpe2NvbnN0IGU9IXIuc29tZSgoZT0+ZS5pc0FkbWluJiYhZS5pc0JvdCkpLHQ9YSYmcyhhLmNyZWF0ZWRBdCk8NmU0O2lmKGwmJmUmJnQpcmV0dXJuITB9cmV0dXJuIGkmJmkuaXNCb3Q/bCYmdShpLHIpOiEhaSYmdShpLHIpJiYibWVzc2VuZ2VyIj09PW99LGg9KGUsdCk9PmUuaWQ9PT10LmlkJiZlLmlzQWRtaW49PT10LmlzQWRtaW58fCEwPT09ZS5pc1NlbGYmJiEwPT09dC5pc1NlbGZ8fCEwPT09ZS5pc0JvdCYmITA9PT10LmlzQm90LGc9KGUsdCk9PntyZXR1cm4hIXQmJihuPWUucGFydFR5cGUsbz10LnBhcnRUeXBlLCEoMCxpLlopKG4pJiYhKDAsaS5aKShvKSkmJigwLHIuRm8pKGUuY3JlYXRlZEF0LHQuY3JlYXRlZEF0KSYmaChlLmF1dGhvcix0LmF1dGhvcikmJigoZSx0KT0+dC1lPD0xOGU0KShlLmNyZWF0ZWRBdCx0LmNyZWF0ZWRBdCk7dmFyIG4sb30sZj0oZSx0LG4scixpKT0+e2lmKChlPT5lLmF1dGhvci5pc1NlbGYpKGUpfHwidmlkZW8iPT09ZS5tZXNzYWdlVHlwZSlyZXR1cm4hMTtpZighbilyZXR1cm4hZyhlLHQpO3JldHVybiEhdD8haChlLmF1dGhvcix0LmF1dGhvcik6IShyJiZlLmF1dGhvci5pZD09PWkuaWQpfSx4PShlLHQsbixyPSExKT0+e2NvbnN0e2lzQWRtaW46aX09ZS5hdXRob3Isbz10Lmxlbmd0aD4wJiYoMCxhLlopKHQpLmlkPT09ZS5pZCxzPSJjb21tZW50Ij09PWUucGFydFR5cGV8fCJtZXNzYWdlIj09PWUucGFydFR5cGV8fCJhdHRyaWJ1dGVfY29sbGVjdG9yIj09PWUucGFydFR5cGV8fCJib3RfaW50cm8iPT09ZS5wYXJ0VHlwZTtyZXR1cm4hKCJmYWlsZWQiIT09ZS5zYXZlU3RhdGUmJiJzYXZpbmciIT09ZS5zYXZlU3RhdGUpfHwhIW8mJigoIWl8fCFuKSYmKCEoIWkmJnImJnMpJiZzKSl9LHY9ZT0+ZS5jbGllbnRJZHx8ZS5pZCx5PWU9PiJxdWlja19yZXBseSI9PT1lLnBhcnRUeXBlJiYoIWUuYm9keXx8MD09PWUuYm9keS5sZW5ndGgpLGI9ZT0+IShlJiZlLmJvZHkmJmUuYm9keVswXSl8fCJwYXJhZ3JhcGgiPT09ZS5ib2R5WzBdLnR5cGUmJmUuYm9keVswXS50ZXh0JiYiIj09PWUuYm9keVswXS50ZXh0LnRyaW0oKSxFPWU9PmUuZmlsdGVyKChlPT52b2lkIDAhPT1lJiYheShlKSYmIWIoZSkpKX0sNTAwNTQ6KGUsdCxuKT0+e24uZCh0LHskOigpPT5zLFg6KCk9Pmx9KTt2YXIgcj1uKDIzMjc5KSxpPW4ubihyKSxvPW4oMjM0OTMpLGE9bi5uKG8pO2NvbnN0IHM9KC4uLmUpPT57Y29uc3QgdD1hKCkoLi4uZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnBlcnNpc3QoKSx0KGUpfX0sbD0oLi4uZSk9Pntjb25zdCB0PWkoKSguLi5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucGVyc2lzdCgpLHQoZSl9fX0sMjcxMTI6KGUsdCxuKT0+e24uZCh0LHtpOigpPT5sfSk7dmFyIHI9big4MTcwNSksaT1uKDcyNjAxKSxvPW4oNjcyOTQpLGE9big4MDI5OSkscz1uKDI1NjE2KTtmdW5jdGlvbiBsKGUpe2NvbnN0IHQ9KDAsYS5UTCkoKSxuPSgwLHMuWikoImNoZWNrbGlzdHNSZW1pbmRlcnMiKTsoMCxvLnVzZUVmZmVjdCkoKCgpPT57biYmZSYmKChlLnN0YXR1cyE9PWkudkUuTmV3fHxlLmhhc0V2ZXJCZWVuTm90aWZpZWQpJiYhZS5zaG91bGRSZW5vdGlmeXx8ZS5oYXNVcGRhdGVkTm90aWZpY2F0aW9uRGV0YWlsc3x8dCgoMCxyLng1KShlLmlkLGUuY2hlY2tsaXN0UHJvZ3Jlc3NJZCkpKX0pLFtuLHQsZV0pfX0sMjU2MTY6KGUsdCxuKT0+e24uZCh0LHtaOigpPT5vfSk7dmFyIHI9bigyNDI5MyksaT1uKDgwMjk5KTtmdW5jdGlvbiBvKGUpe3JldHVybiEhKDAsaS5DRykoci5sdClbZV19fSw2NDQ4OTooZSx0LG4pPT57bi5yKHQpLG4uZCh0LHthcHBOb2RlQ2xhc3NOYW1lOigpPT5BeSxhcHBOb2RlSWQ6KCk9Pk95LGRlZmF1bHQ6KCk9PlJ5LHN0eWxlTm9kZUlkOigpPT5CeX0pO3ZhciByPW4oNjcyOTQpLGk9big3MzkzNSksbz1uKDM3NDI0KSxhPW4oNDkyNikscz1uKDk3NjgxKSxsPW4oODQxMjcpLGM9big2MDApLGQ9big0NTY5NykscD1uLm4oZCksdT1uKDY3NTkyKSxtPW4oODE4MTEpLGg9big4MDI5OSksZz1uKDc4NzE3KSxmPW4oNTA3MDApLHg9bigzOTExMyksdj1uKDQ4MjU4KTtjb25zdCB5PSIxNTBtcyIsYj0iZWFzZS1pbi1vdXQiLEU9MjAwO2Z1bmN0aW9uIGsoZSl7Y29uc3R7aXNMYXVuY2hlckVuYWJsZWQ6dCxsYXVuY2hlck9mZnNldEJvdHRvbVBhZGRpbmdQeDpuLHZlcnRpY2FsUGFkZGluZ1B4OnJ9PWU7cmV0dXJuIHIrMjArKHQ/bjowKX12YXIgQz17bmFtZToibThkbnEwIixzdHlsZXM6ImhlaWdodDoxMDB2aDsifSx3PXtuYW1lOiJibnh4aTIiLHN0eWxlczoiaGVpZ2h0OjEwMCU7dG9wOjA7In0sUz17bmFtZToiZjNyemNnIixzdHlsZXM6InRyYW5zaXRpb24tZGVsYXk6MG1zOyJ9O2NvbnN0IFA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ4eWN6OTAifSkoInotaW5kZXg6IiwoMCx4Llc1KSgpLCI7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOiIsKDAseC51KSgpLCJweDtyaWdodDoiLCgwLGYuclMpKCJob3Jpem9udGFsUGFkZGluZ1B4IiksInB4O2hlaWdodDoiLCgoe3RoZW1lOmV9KT0+YGNhbGMoMTAwJSAtICR7ayhlKX1weClgKSwiO2hlaWdodDoiLCgoe3RoZW1lOmUsZHluYW1pY0hlaWdodDp0fSk9PnQ/YCR7dH1weGA6YG1pbigke2UubWVzc2VuZ2VyTWF4SGVpZ2h0UHh9cHgsIGNhbGMoMTAwJSAtICR7ayhlKX1weCkpYCksIjttaW4taGVpZ2h0OjgwcHg7d2lkdGg6IiwoKHtpc0NvbXBhY3RIb21lU2hvd2luZzplfSk9PmU/KDAsZi5yUykoIm1lc3NlbmdlckNvbXBhY3RXaWR0aFB4Iik6KDAsZi5yUykoIm1lc3NlbmdlcldpZHRoUHgiKSksInB4O21heC1oZWlnaHQ6IiwoMCxmLnJTKSgibWVzc2VuZ2VyTWF4SGVpZ2h0UHgiKSwicHg7Ym94LXNoYWRvdzowIDVweCA0MHB4IHJnYmEoMCwwLDAsMC4xNik7Ym9yZGVyLXJhZGl1czoiLCgoe2lzQ29tcGFjdEhvbWVTaG93aW5nOmV9KT0+ZT8oMCxmLnJTKSgibWVzc2VuZ2VyQ29tcGFjdEJvcmRlclJhZGl1c1B4Iik6KDAsZi5yUykoIm1lc3NlbmdlckJvcmRlclJhZGl1c1B4IikpLCJweDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjp3aWR0aCAiLEUsIm1zLGhlaWdodCAiLEUsIm1zLG1heC1oZWlnaHQgIixFLCJtczsiLCgoe2lzRXhwYW5kZWQ6ZSx0aGVtZTp0fSk9PmUmJigwLGYuaXYpKCJtYXgtaGVpZ2h0OmNhbGMoMTAwJSAtICIsayh0KSwicHgpO2hlaWdodDpjYWxjKDEwMCUgLSAiLGsodCksInB4KTt3aWR0aDo2ODhweDt0cmFuc2l0aW9uLWRlbGF5OiIsMzAwLCJtczsiKSksIiAiLCgoe2lzRXhwYW5kZWQ6ZSxpc0FydGljbGVMb2FkZWQ6dH0pPT5lJiZ0JiZTKSwiIG9wYWNpdHk6MTs+IGlmcmFtZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO30iLCgoe3RoZW1lOmV9KT0+ZS5pc0xlZnRBbGlnbiYmKDAsZi5pdikoImxlZnQ6IixlLmhvcml6b250YWxQYWRkaW5nUHgsInB4O3JpZ2h0OmF1dG87IikpLCIgIiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiYoMCxmLml2KSgiei1pbmRleDoiLCgwLHguVzUpKDEsZSksIjt3aWR0aDoxMDAlO21heC1oZWlnaHQ6bm9uZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtib3JkZXItcmFkaXVzOjA7cG9zaXRpb246Zml4ZWQ7IikpLCIgIiwoKHt0aGVtZTplLGlzQ29tcGFjdDp0fSk9PmUuaXNNb2JpbGVTaXplJiYhdCYmdyksIiAiLCgoe3RoZW1lOmUsaXNDb21wYWN0OnQsaXNDb21wYWN0SG9tZVNob3dpbmc6bn0pPT5lLmlzTW9iaWxlU2l6ZSYmdCYmIW4mJkMpKSxUPSgwLGYuWlApKFAse3RhcmdldDoiZWQ4eWN6OTEifSkoIiYuaW50ZXJjb20tbWVzc2VuZ2VyLWZyYW1lLWVudGVye29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt9Ji5pbnRlcmNvbS1tZXNzZW5nZXItZnJhbWUtZW50ZXIuaW50ZXJjb20tbWVzc2VuZ2VyLWZyYW1lLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNpdGlvbjpvcGFjaXR5ICIseSwiICIsYiwiLHRyYW5zZm9ybSAiLHksIiAiLGIsIjt9Ji5pbnRlcmNvbS1tZXNzZW5nZXItZnJhbWUtZXhpdHtvcGFjaXR5OjE7fSYuaW50ZXJjb20tbWVzc2VuZ2VyLWZyYW1lLWV4aXQuaW50ZXJjb20tbWVzc2VuZ2VyLWZyYW1lLWV4aXQtYWN0aXZle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgIix5LCIgIixiLCIsdHJhbnNmb3JtICIseSwiICIsYiwiO30iKTt2YXIgWj17bmFtZToiMWwwdXVjZyIsc3R5bGVzOiJ0cmFuc2Zvcm06bm9uZTsifSxJPXtuYW1lOiJtZnM4ZzUiLHN0eWxlczoidHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lOyYgPiBpZnJhbWV7cG9pbnRlci1ldmVudHM6bm9uZTt9In0saj17bmFtZToiMWFxdWVpNSIsc3R5bGVzOiJ0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbTsifTtjb25zdCBfPSgwLGYuWlApKFAse3RhcmdldDoiZWQ4eWN6OTIifSkoInRyYW5zZm9ybS1vcmlnaW46Ym90dG9tIHJpZ2h0OyIsKCh7dGhlbWU6ZSxpc0NvbXBhY3Q6dH0pPT5lLmlzTW9iaWxlU2l6ZSYmdCYmaiksIiB0cmFuc2l0aW9uOndpZHRoICIsRSwibXMsaGVpZ2h0ICIsRSwibXMsbWF4LWhlaWdodCAiLEUsIm1zLHRyYW5zZm9ybSAzMDBtcyBjdWJpYy1iZXppZXIoMCwxLjIsMSwxKSxvcGFjaXR5IDgzbXMgZWFzZS1vdXQ7cG9pbnRlci1ldmVudHM6YWxsOyIsKCh7aXNNZXNzZW5nZXJPcGVuOmV9KT0+IWUmJkkpLCIgIiwoKHtkaXNhYmxlT3BlbkFuaW1hdGlvbjplfSk9PmUmJlopKSxPPSgwLHYuWikoVCxfKTt2YXIgQT1uKDQyMjc5KSxCPW4oNTgxODcpLFI9bigzODcxMiksej1uKDI0MjkzKSxOPW4oNTAwMjUpO2NvbnN0IE09KDAsQS5jcmVhdGVTZWxlY3Rvcikoei5IRiwoZT0+ISFlJiZlLnN0YXJ0c1dpdGgoIi9uZXdzL2RldGFpbHMiKSkpLEQ9KDAsQS5jcmVhdGVTZWxlY3RvcikoKGU9PmUuY2hyb21lLnNob3VsZEV4cGFuZCksQi5SdCxNLFIuVUssKChlLHQsbixyKT0+IShyfHwhZSkmJih0fHxuKSkpLEw9KDAsQS5jcmVhdGVTZWxlY3RvcikoTi5URiwoZT0+ZS5jaHJvbWUuc3BhY2VIZWFkZXJzKSwoKGUsdCk9PnRbZS5pZF0pKTt2YXIgRz1uKDY3NjkwKSxGPW4oOTYxMzcpLHE9big0MTAzNSksSD1uKDU5Njg1KTtjb25zdCBXPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVodmI4eTEwIn0pKCgoe2hlYWRlckhlaWdodDplLGhlaWdodENoYW5nZUR1cmF0aW9uOnQsaXNPdmVybGF5Om4sdGhlbWU6cn0pPT4oMCxmLml2KSgidHJhbnNpdGlvbjptaW4taGVpZ2h0ICIsdCwibXMgZWFzZS1vdXQsbWF4LWhlaWdodCAiLHQsIm1zIGVhc2Utb3V0LGJhY2tncm91bmQtY29sb3IgIix0LCJtcyBlYXNlLWluLW91dDttaW4taGVpZ2h0OiIsZSwicHg7bWF4LWhlaWdodDoiLGUsInB4O2JhY2tncm91bmQtY29sb3I6IixuPyJ0cmFuc3BhcmVudCI6ci5zZWNvbmRhcnlDb2xvciwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7bGVmdDowOyIpKSwiOyIpLFU9e2hlaWdodDo2NCxpc092ZXJsYXk6ITF9O2Z1bmN0aW9uIFYoKXtjb25zdCBlPSgwLGguQ0cpKEwpfHxVLHQ9Ii9tZXNzYWdlcy9jb252ZXJzYXRpb24vbmV3Ij09PSgwLEgudXNlTG9jYXRpb24pKCkucGF0aG5hbWUsbj0oMCxoLkNHKSh6Lmx6KSxpPXQmJm58fCgwLEYubSkoKSYmISgwLHEuYU4pKCksbz0oMCxoLkNHKShOLkRXKSxhPSgwLGguQ0cpKHouSE4pOyhpfHxvJiZhKSYmKGUuaXNPdmVybGF5PSEwKTtjb25zdHtoZWlnaHQ6cyxpc092ZXJsYXk6bH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFcse2hlYWRlckhlaWdodDpNYXRoLm1heChzLDY0KSxoZWlnaHRDaGFuZ2VEdXJhdGlvbjpHLmFWLGlzT3ZlcmxheTpsfSl9dmFyICQ9bigxMjMwNCksSz1uKDkwMjEpO2Z1bmN0aW9uIFkoe2NoaWxkcmVuOmUsc3BhY2VJZDp0LGlzT3ZlcmxheTpuPSExfSl7Y29uc3QgaT0oMCxoLlRMKSgpLFtvLGFdPSgwLHIudXNlU3RhdGUpKDApO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PntpKCgwLCQuUV8pKHQsbyxuKSl9KSxbbixvLGksdF0pLHIuY3JlYXRlRWxlbWVudChKLHtpc092ZXJsYXk6bixvbkhlaWdodENoYW5nZTplPT57YShlKX19LGUpfWNvbnN0IEo9KDAsZi5aUCkoSy5aLHt0YXJnZXQ6ImVoeWVzNTAwIn0pKCgoe2lzT3ZlcmxheTplLHRoZW1lOnR9KT0+KDAsZi5pdikoInRyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1vdXQ7Y29sb3I6IixlP3QubTVEYXJrR3JleTI6dC5oZWFkZXJUaXRsZUNvbG9yLCI7IikpKSxYPWU9Pnt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PSgwLGguQ0cpKE4uZmgpLmZpbmQoKHQ9PnQuaWQ9PT1lLmlkKSkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnRpdGxlfTt2YXIgUT17bmFtZToieXk2a3YxIixzdHlsZXM6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsifTtjb25zdCBlZT0oMCxmLlpQKSgibmF2Iix7dGFyZ2V0OiJlYzNnd3gyMCJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjhweDsiLCgoe3Nob3dCb3JkZXI6ZX0pPT5lJiZRKSksdGU9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWMzZ3d4MjEifSkoImRpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoycHg7bWluLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiIsKDAsZi5yUykoImhlYWRlclRpdGxlQ29sb3IiKSwiOyIsKCh7d2hpdGVCYWNrZ3JvdW5kOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY29sb3I6Iix0Lm01RGFya0dyZXkyLCI7IikpKTt2YXIgbmU9e25hbWU6IjZ4aXgxaSIsc3R5bGVzOiJmb250LXNpemU6MTZweDsifTtjb25zdCByZT0oMCxmLlpQKSgiaDEiLHt0YXJnZXQ6ImVjM2d3eDIyIn0pKCJwYWRkaW5nOjhweCA0cHg7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MThweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXI7IiwoKHtzbWFsbFRleHQ6ZX0pPT5lJiZuZSkpLGllPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVjM2d3eDIzIn0pKCJkaXNwbGF5OmZsZXg7ZmxleDoxO2p1c3RpZnktY29udGVudDoiLCgoe2FsaWduOmV9KT0+InJpZ2h0Ij09PWU/ImZsZXgtZW5kIjoiZmxleC1zdGFydCIpLCI7JjpmaXJzdC1jaGlsZDplbXB0eXttaW4td2lkdGg6OHB4O30iKSxvZT0oMCxmLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlYzNnd3gyNCJ9KSgiY29sb3I6IiwoMCxmLnJTKSgiaGVhZGVyVGl0bGVDb2xvciIpLCI7bWluLXdpZHRoOjQ4cHg7bWluLWhlaWdodDo0OHB4O2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zO2JveC1zaXppbmc6Ym9yZGVyLWJveDsiLCgoe29uQ2xpY2s6ZSx0aGVtZTp0LHdoaXRlQmFja2dyb3VuZDpufSk9PmUmJigwLGYuaXYpKCImOmhvdmVyICp7Y3Vyc29yOnBvaW50ZXI7fSY6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjoiLG4/dC5oZWFkZXJCdXR0b25Ib3ZlckJhY2tncm91bmRDb2xvck9uV2hpdGU6dC5oZWFkZXJCdXR0b25Ib3ZlckJhY2tncm91bmRDb2xvciwiO30iKSkpLGFlPSgwLGYuWlApKG9lLHt0YXJnZXQ6ImVjM2d3eDI1In0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIDEycHg7IiwoKHt3aGl0ZUJhY2tncm91bmQ6ZSx0aGVtZTp0fSk9PmUmJigwLGYuaXYpKCJjb2xvcjoiLHQubGlua0NvbG9yLCI7IikpKSxzZT0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZWMzZ3d4MjYifSkoe25hbWU6InRqNWVqNSIsc3R5bGVzOiJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1OTA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nLXJpZ2h0OjhweDsifSk7dmFyIGxlPW4oMzc2OTUpLGNlPW4oOTQ2NzkpLGRlPW4oOTkzMjEpLHBlPW4oODI1MTcpLHVlPW4oNzI2MSk7Y29uc3QgbWU9L15odHRwcz86XC9cL3ZpYS5pbnRlcmNvbS4oY29tfGlvfHRlc3QpXC9tc2dyXC8vLGhlPSgwLEEuY3JlYXRlU2VsZWN0b3IpKGRlLlosKCgpPT4oMCxSLlVLKSgpKSxwZS56bCwoKCk9PntyZXR1cm4hKG51bGw9PT0oZT0oMCx1ZS5iTSkoKSl8fHZvaWQgMD09PWV8fCFlLmhyZWYudG9Mb3dlckNhc2UoKS5tYXRjaChtZSkpO3ZhciBlfSksTi5jMCwoKCk9PigwLEYubSkoKSksKChlLHQsbixyLGksbyk9PiFvJiYoIXImJighKG4mJiFpKSYmKHR8fCFlfHwhMSkpKSkpO3ZhciBnZT1uKDU0ODc0KSxmZT17bmFtZToiazAwOHFzIixzdHlsZXM6ImRpc3BsYXk6ZmxleDsifTtjb25zdCB4ZT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlc3YwMG91MCJ9KSgiZGlzcGxheTpub25lO3otaW5kZXg6IiwoMCx4Llc1KSgzKSwiO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6IiwoKHtiYWNrZ3JvdW5kOmV9KT0+ZSksIjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMTUwbXM7Jjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoImhlYWRlckJ1dHRvbkhvdmVyQmFja2dyb3VuZENvbG9yIiksIjt9aXtkaXNwbGF5OmlubGluZTt9IiwoKHtlbmFibGVkOmV9KT0+ZSYmZmUpLCIgIiwoKHtmaXhlZDplfSk9PmUmJigwLGYuaXYpKCJwb3NpdGlvbjpmaXhlZDt0b3A6MjhweDtyaWdodDoyMHB4OyY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGdlLkJ3KSgoMCxmLnJTKSgiYmxhY2siKSwuNSksIjt9IikpLCIgIiwoKHtyaWdodE1hcmdpbjplLGZpeGVkOnR9KT0+ZSYmdCYmKDAsZi5pdikoInJpZ2h0OiIsZSwicHg7IikpKSx2ZT0oe2ZpeGVkOmUsb25XaGl0ZUJhY2tncm91bmQ6dCxlbmFibGVkOm4scGFyYWxsYXhPcGFjaXR5Omk9MSxyaWdodE1hcmdpbjpvfSk9Pntjb25zdCBhPSgwLGguVEwpKCkscz0oMCxoLkNHKShoZSl8fCEhbjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHhlLHtvbkNsaWNrOigpPT57YSgoMCxjZS5lQSkoITApKX0sdGFiSW5kZXg6cz8wOi0xLCJhcmlhLWhpZGRlbiI6IXMsImFyaWEtbGFiZWwiOigwLHUuSXUpKCJjbG9zZSIpLGVuYWJsZWQ6cyxmaXhlZDplLGJhY2tncm91bmQ6KCgpPT57aWYoIWUpcmV0dXJuIiI7cmV0dXJuYHJnYmEoMCwgMCwgMCwgJHtNYXRoLmFicyguNSooaS0xKSl9KWB9KSgpLHJpZ2h0TWFyZ2luOm99LHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJDbG9zZSIsc2l6ZToxMixjb2xvcjp0P2U/MS1pPC41PyJibGFjayI6IndoaXRlIjoibGlua0NvbG9yIjoid2hpdGUifSkpfTt2YXIgeWU9big5NTUxNiksYmU9big4OTkxMyk7ZnVuY3Rpb24gRWUoZSl7Y29uc3QgdD0oMCxoLlRMKSgpLG49KDAsaC5DRykoRCk7cmV0dXJuKDAsUi5VSykoKT9udWxsOnIuY3JlYXRlRWxlbWVudChrZSx7ImRhdGEtdGVzdGlkIjoidG9nZ2xlLWV4cGFuc2lvbiIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdGFiSW5kZXg6LTEsb25DbGljazooKT0+dCgoMCwkLl9aKSghbixlLm9iamVjdCxlLnBsYWNlKSl9LG4/ci5jcmVhdGVFbGVtZW50KGJlLlosbnVsbCk6ci5jcmVhdGVFbGVtZW50KHllLlosbnVsbCkpfWNvbnN0IGtlPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNHRreW5vMCJ9KSgiY29sb3I6IiwoMCxmLnJTKSgiYm9keVRleHQiKSwiO2N1cnNvcjpwb2ludGVyO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxNXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDo1MXB4O2JvcmRlci1yYWRpdXM6MTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7JiA+IHN2ZyA+IHBhdGh7c3Ryb2tlOiIsKDAsZi5yUykoImxpbmtDb2xvciIpLCI7fSY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJoZWFkZXJCdXR0b25Ib3ZlckJhY2tncm91bmRDb2xvck9uV2hpdGUiKSwiO30iKTt2YXIgQ2U9bigxMDQ4Nyk7Y29uc3Qgd2U9KHtvbkJhY2s6ZSx3aGl0ZUJhY2tncm91bmQ6dCxsYWJlbDpufSk9PnIuY3JlYXRlRWxlbWVudChhZSx7d2hpdGVCYWNrZ3JvdW5kOnQsb25DbGljazplLCJhcmlhLWxhYmVsIjoiZ28gYmFjayIsImRhdGEtdGVzdGlkIjoiZ28tYmFjayJ9LHIuY3JlYXRlRWxlbWVudChsZS5aLHtzaXplOjI0LHR5cGU6IkNoZXZyb25CYWNrIixjb2xvcjoiY3VycmVudENvbG9yIixmaWxsVHlwZToic3Ryb2tlIn0pLG4mJnIuY3JlYXRlRWxlbWVudChzZSxudWxsLG4pKSxTZT1yZSxQZT17Q29udGVudDplZSxCdXR0b25TcGFjZXI6aWUsQnV0dG9uOm9lLFRpdGxlOlNlLEJhY2tCdXR0b246d2UsVGl0bGVBcmVhOih7b25CYWNrOmUsYmFja0J1dHRvbkxhYmVsOnQsdGl0bGU6bixjaGlsZHJlbjppLHdoaXRlQmFja2dyb3VuZDpvLHNob3dFeHBhbmRCdXR0b246YSxzbWFsbFRleHQ6cyxsZWZ0QnV0dG9uQXJlYTpsLHJpZ2h0QnV0dG9uQXJlYTpjfSk9Pntjb25zdCBkPSgwLFIuVUspKCkscD0oMCxoLkNHKShoZSkse2lzU2Vjb25kYXJ5Q29sb3JMaWdodDp1fT0oMCxDZS5aKSgpLG09b3x8dTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHRlLHt3aGl0ZUJhY2tncm91bmQ6bX0sci5jcmVhdGVFbGVtZW50KGllLG51bGwsZSYmci5jcmVhdGVFbGVtZW50KHdlLHt3aGl0ZUJhY2tncm91bmQ6bSxvbkJhY2s6ZSxsYWJlbDp0fSksbCksaXx8bnVsbCwhaSYmci5jcmVhdGVFbGVtZW50KFNlLHtzbWFsbFRleHQ6ISFzfSxuKSxyLmNyZWF0ZUVsZW1lbnQoaWUse2FsaWduOiJyaWdodCJ9LGMsYSYmIWQmJnIuY3JlYXRlRWxlbWVudChFZSxudWxsKSxwJiZyLmNyZWF0ZUVsZW1lbnQodmUse29uV2hpdGVCYWNrZ3JvdW5kOm19KSkpfX0sVGU9KHt0aXRsZTplLG9uQmFjazp0LHdoaXRlQmFja2dyb3VuZDpuLHNob3dFeHBhbmRCdXR0b246aSxpc1N1YlZpZXc6b30pPT5yLmNyZWF0ZUVsZW1lbnQoUGUuQ29udGVudCxudWxsLHIuY3JlYXRlRWxlbWVudChQZS5UaXRsZUFyZWEse29uQmFjazp0LHdoaXRlQmFja2dyb3VuZDpuLHNob3dFeHBhbmRCdXR0b246aSx0aXRsZTplLHNtYWxsVGV4dDpvfSkpLFplPVsiY2hpbGRyZW4iLCJkdXJhdGlvbiIsInRyYW5zaXRpb25LZXkiLCJjbGFzc05hbWUiLCJpbm5lckNsYXNzTmFtZSJdO2Z1bmN0aW9uIEllKCl7cmV0dXJuIEllPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sSWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGplKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLGk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT17fSxvPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8KGlbbl09ZVtuXSk7cmV0dXJuIGl9KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8by5sZW5ndGg7cisrKW49b1tyXSx0LmluZGV4T2Yobik+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYoaVtuXT1lW25dKX1yZXR1cm4gaX1jb25zdCBfZT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlODQ5eXVkMCJ9KSh7bmFtZToieDl0ZDI1IixzdHlsZXM6InBvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdy15OmhpZGRlbjsifSksT2U9KDAsZi5aUCkobS5Ldix7dGFyZ2V0OiJlODQ5eXVkMSJ9KSgicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2JvdHRvbTowO3JpZ2h0OjA7Ym94LXNpemluZzpib3JkZXItYm94O3RyYW5zaXRpb246b3BhY2l0eSAiLChlPT5lLmR1cmF0aW9uKSwibXM7JiwmLmZhZGUtZW50ZXIsJi5mYWRlLWFwcGVhcntvcGFjaXR5OjA7ei1pbmRleDoxO30mLmZhZGUtZW50ZXItYWN0aXZlLCYuZmFkZS1hcHBlYXItYWN0aXZle29wYWNpdHk6MTt6LWluZGV4OjE7fSYuZmFkZS1leGl0e3otaW5kZXg6MjtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ji5mYWRlLWV4aXQtYWN0aXZlLCYuZmFkZS1leGl0LWRvbmV7ei1pbmRleDoyO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO30mLmZhZGUtZW50ZXItZG9uZSwmLmZhZGUtYXBwZWFyLWRvbmV7b3BhY2l0eToxO30iKSxBZT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlODQ5eXVkMiJ9KSh7bmFtZToiMjhpczc4IixzdHlsZXM6Im1pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTsifSk7ZnVuY3Rpb24gQmUoZSl7bGV0e2NoaWxkcmVuOnQsZHVyYXRpb246bj1HLmFWLHRyYW5zaXRpb25LZXk6aSxjbGFzc05hbWU6byxpbm5lckNsYXNzTmFtZTphfT1lLHM9amUoZSxaZSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChfZSx7Y2xhc3NOYW1lOm99LHIuY3JlYXRlRWxlbWVudChtLlczLG51bGwsci5jcmVhdGVFbGVtZW50KE9lLEllKHtrZXk6aSxjbGFzc05hbWVzOiJmYWRlIixjbGFzc05hbWU6YSx0aW1lb3V0Om4sZHVyYXRpb246bixhcHBlYXI6ITAsbW91bnRPbkVudGVyOiEwLHVubW91bnRPbkV4aXQ6ITB9LHMpLHIuY3JlYXRlRWxlbWVudChBZSxudWxsLHQpKSkpfXZhciBSZT1uKDg1MzMyKSx6ZT1uKDM0MzM1KTtjb25zdCBOZT1bIm9uSGVpZ2h0Q2hhbmdlIl07ZnVuY3Rpb24gTWUoKXtyZXR1cm4gTWU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxNZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRGUoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHwoaVtuXT1lW25dKTtyZXR1cm4gaX0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIExlKGUpe2xldHtvbkhlaWdodENoYW5nZTp0fT1lLG49RGUoZSxOZSk7Y29uc3RbaSxvXT0oMCxSZS5aKSgpLGE9KDAsemUuRCkoaS5oZWlnaHQpO3JldHVybiByLnVzZUVmZmVjdCgoKCk9PntpLmhlaWdodD4tMSYmaS5oZWlnaHQhPT1hJiZ0JiZ0KGkuaGVpZ2h0KX0pLFt0LGkuaGVpZ2h0LGFdKSxyLmNyZWF0ZUVsZW1lbnQoZi5tcyxudWxsLCgoe2NzczplLGN4OnR9KT0+ci5jcmVhdGVFbGVtZW50KEJlLE1lKHt9LG4se2NsYXNzTmFtZTp0KG4uY2xhc3NOYW1lLGVgCiAgICAgICAgICAgICAgbWluLWhlaWdodDogJHtpLmhlaWdodH1weDsKICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGApLG9uRW50ZXI6ZT0+e2UuZmlyc3RDaGlsZCYmKG8uY3VycmVudD1lLmZpcnN0Q2hpbGQpfX0pKSkpfWZ1bmN0aW9uIEdlKHtjaGlsZHJlbjplLHNwYWNlOnR9KXtjb25zdFtuLGldPSgwLHIudXNlU3RhdGUpKCExKSxvPSgwLEgudXNlTG9jYXRpb24pKCksYT0oMCxILnVzZU5hdmlnYXRlKSgpLFtzLGxdPSgwLHIudXNlU3RhdGUpKG8pOygwLHIudXNlRWZmZWN0KSgoKCk9PnsoMCxOLkZ5KShvLnBhdGhuYW1lKS5pZD09PXQuaWQmJmwobyl9KSxbbyx0LmlkXSk7Y29uc3QgYz0oMCxoLkNHKShOLkcwKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEZlLG51bGwsci5jcmVhdGVFbGVtZW50KFkse3NwYWNlSWQ6dC5pZCxpc092ZXJsYXk6bn0sci5jcmVhdGVFbGVtZW50KExlLHt0cmFuc2l0aW9uS2V5OnMucGF0aG5hbWV9LHIuY3JlYXRlRWxlbWVudChILlJvdXRlcyx7bG9jYXRpb246c30sci5jcmVhdGVFbGVtZW50KEguUm91dGUse2luZGV4OiEwLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KFRlLHt0aXRsZTpYKHQpLG9uQmFjazpjPygpPT57YSgtMSl9OnZvaWQgMH0pfSksImZ1bmN0aW9uIj09dHlwZW9mIGU/ZShpKTplKSkpLHIuY3JlYXRlRWxlbWVudChILk91dGxldCxudWxsKSl9Y29uc3QgRmU9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXdiaHhtYjAifSkoe25hbWU6IjFldDhkMDkiLHN0eWxlczoiZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWF4LXdpZHRoOjEwMCU7In0pLHFlPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxY2g3bjFkMCJ9KSh7bmFtZToiNWZ4cmE5IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjsifSksSGU9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFjaDduMWQxIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4O21hcmdpbi10b3A6IiwoKHtob21lQmFja2dyb3VuZFR5cGU6ZX0pPT4oZT0+e3N3aXRjaChlKXtjYXNlImNvbG9ycyI6Y2FzZSJzb2xpZCI6cmV0dXJuIi0xMjVweCI7Y2FzZSJpbWFnZSI6cmV0dXJuIi01NXB4IjtkZWZhdWx0OnJldHVybiItMzRweCJ9fSkoZSkpLCI7IiksV2U9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFjaDduMWQyIn0pKHtuYW1lOiJ0c2cyMXIiLHN0eWxlczoiaGVpZ2h0OjE1OXB4OyJ9KTt2YXIgVWU9e25hbWU6IjFwaHNpeGEiLHN0eWxlczoicGFkZGluZy1ib3R0b206MHB4OyJ9O2NvbnN0IFZlPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxY2g3bjFkMyJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2l6aW5nOmJvcmRlci1ib3g7IixIZS5jbGFzc05hbWUsIntwYWRkaW5nOjAgMTZweDt9bWluLWhlaWdodDoxMDAlOyIsKCh7aXNJbnRlcmNvbUxpbmtFbmFibGVkOmV9KT0+ZSYmVWUpKTt2YXIgJGU9big0NTU3OCksS2U9bi5uKCRlKSxZZT1uKDMwOTgwKSxKZT1uKDQzNTQpLFhlPW4oMjQ2MjApO2NvbnN0IFFlPSgwLEEuY3JlYXRlU2VsZWN0b3IpKChlPT5lLmhvbWUpLCgoe2hlYWRlcjplLGhlYWRlckhlaWdodDp0fSk9Pnt2YXIgbixyLGksbztjb25zdCBhPW51bGw9PWV8fG51bGw9PT0obj1lLmNvbnRlbnQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmdyZWV0aW5nLHM9bnVsbD09ZXx8bnVsbD09PShyPWUuY29udGVudCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc2hvd0F2YXRhcnM7cmV0dXJue2dyZWV0aW5nOmEsaW50cm9kdWN0aW9uOm51bGw9PWV8fG51bGw9PT0oaT1lLmNvbnRlbnQpfHx2b2lkIDA9PT1pP3ZvaWQgMDppLmludHJvZHVjdGlvbixsb2dvVXJsOm51bGw9PWV8fG51bGw9PT0obz1lLmNvbnRlbnQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmxvZ29VcmwsdGV4dENvbG9yVHlwZTpudWxsPT1lP3ZvaWQgMDplLmNvbnRlbnQudGV4dENvbG9yVHlwZSxoZWFkZXJIZWlnaHQ6dCxzaG93QXZhdGFyczpzLGNvbXBhY3Q6e3Nob3dIZWFkZXI6ISghYSYmIXMpfX19KSksZXQ9ZT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9ZS5ob21lLmhlYWRlcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYmFja2dyb3VuZH0sdHQ9ZT0+ZS5ob21lLG50PSh7aG9tZTp7Y2FyZHM6ZX19KT0+bnVsbD09ZT92b2lkIDA6ZS5maW5kKChlPT4icmVjZW50X2NvbnZlcnNhdGlvbiI9PT1lLnR5cGUpKSxydD0oMCxBLmNyZWF0ZVNlbGVjdG9yKShudCwoZT0+KG51bGw9PWU/dm9pZCAwOmUubGltaXQpfHwxKSksaXQ9KDAsQS5jcmVhdGVTZWxlY3RvcikoWWUuWlAsWGUuWiwoZT0+ZS5uZXdDb252ZXJzYXRpb24pLCgoZSx0LG4pPT57Y29uc3Qgcj0oMCxKZS5RUykoZSksaT1LZSgpKFsuLi50LC4uLnIuZmlsdGVyKGN0KV0sKGU9PmUuaWQpKTtyZXR1cm4gbiYmMT09PW4ucGFydHMubGVuZ3RoJiYic2F2aW5nIj09PW4ucGFydHNbMF0uc2F2ZVN0YXRlJiZpLnVuc2hpZnQobiksaX0pKSxvdD0oMCxBLmNyZWF0ZVNlbGVjdG9yKShpdCxydCwoKGUsdCk9PmUuc2xpY2UoMCx0KSkpLGF0PSgwLEEuY3JlYXRlU2VsZWN0b3IpKG90LFllLlpQLChlPT5lLmhvbWVTY3JlZW4uaGFzTW9yZUNvbnZlcnNhdGlvbnMpLCgoZSx0LG4pPT5lLmxlbmd0aDx0Lmxlbmd0aHx8bikpLHN0PShlLHQpPT5lLnNvbWUoKGU9PmUudHlwZT09PXQpKSxsdD0oMCxBLmNyZWF0ZVNlbGVjdG9yKSh0dCwoKHtjYXJkczplPVtdfT17fSk9PnN0KGUsImhlbHBfY2VudGVyIikpKTtmdW5jdGlvbiBjdChlKXtyZXR1cm4gZS5lbGlnaWJsZUZvclJlY2VudENvbnZlcnNhdGlvbnN9Y29uc3QgZHQ9KDAsQS5jcmVhdGVTZWxlY3RvcikoW2x0LHouVDQsei5hQV0sKChlLHQsbik9PighZXx8IXQpJiZuKSkscHQ9KCgwLEEuY3JlYXRlU2VsZWN0b3IpKHR0LCgoe2NhcmRzOmU9W119PXt9KT0+c3QoZSwiaGVscF9jZW50ZXIiKSkpLCgwLEEuY3JlYXRlU2VsZWN0b3IpKGl0LChlPT5lJiZlLmxlbmd0aD4wKSkpLHV0PSgwLEEuY3JlYXRlU2VsZWN0b3IpKG50LHB0LCgoZSx0KT0+KG51bGw9PWU/dm9pZCAwOmUuY29udmVyc2F0aW9ucy5sZW5ndGgpPjB8fHQpKSxtdD0oe2hvbWU6e2NhcmRzOmV9fSk9Pm51bGw9PWU/dm9pZCAwOmUuZmluZCgoZT0+Im5ld19jb252ZXJzYXRpb24iPT09ZS50eXBlKSksaHQ9KDAsQS5jcmVhdGVTZWxlY3Rvcikoei5hNSx0dCxkdCxsdCx1dCwoKGUse2NhcmRzOnQ9W10saXNGZXRjaGVkOm4saXNGYWlsZWQ6cn0saSxvLGEpPT57Y29uc3Qgcz1uJiZlO2xldCBsPXQ7cmV0dXJuIGw9bC5maWx0ZXIoKGU9Pntzd2l0Y2goZS50eXBlKXtjYXNlInJlY2VudF9jb252ZXJzYXRpb24iOnJldHVybiBhO2Nhc2UibmV3X2NvbnZlcnNhdGlvbiI6cmV0dXJuIGk7Y2FzZSJoZWxwX2NlbnRlciI6cmV0dXJuIG87ZGVmYXVsdDpyZXR1cm4hMH19KSkse3Nsb3RzOmwsaXNGZXRjaGVkOnMsaXNGYWlsZWQ6cn19KSk7dmFyIGd0PW4oOTQxODQpLGZ0PW4ubihndCkseHQ9bigzMTQzMSk7Y2xhc3MgSG9tZVNjcmVlbk1lc3NlbmdlckNhcmQgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Z2V0Q2xhc3NOYW1lKCl7cmV0dXJuIGZ0KCkoeyJpbnRlcmNvbS1ob21lLXNjcmVlbi1tZXNzZW5nZXItY2FyZCI6ITAsW2BpbnRlcmNvbS1ob21lLXNjcmVlbi1tZXNzZW5nZXItY2FyZC0ke3RoaXMucHJvcHMuaW5kZXh9YF06ITB9KX1yZW5kZXIoKXtjb25zdHtjYXJkVXJpOmUsaXNGZXRjaGVkOnQsaW5kZXg6bixmcmFtZVdpbmRvdzppfT10aGlzLnByb3BzO3JldHVybiB0JiZyLmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTp0aGlzLmdldENsYXNzTmFtZSgpfSxyLmNyZWF0ZUVsZW1lbnQoeHQuWlAse2NhcmRVcmk6ZSxob21lU2NyZWVuSW5kZXg6bixmcmFtZVdpbmRvdzppfSkpfX12YXIgdnQ9big3ODI4KTtjb25zdCB5dD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcGNwZ3pzMCJ9KSh7bmFtZToiY2k4cnR5IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtwYWRkaW5nOjhweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4OyJ9KSxidD0oMCxmLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlcGNwZ3pzMSJ9KSgiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjEwcHggMTJweDtmb250LXdlaWdodDo2MDA7YmFja2dyb3VuZDoiLCgwLGYuclMpKCJsaWdodEdyZXkxMSIpLCI7Ym9yZGVyLXJhZGl1czo4cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDI1MG1zOyY6aG92ZXJ7Y29sb3I6IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodD9lLm01RGFya0dyZXkxOmUucHJpbWFyeUNvbG9yKSwiO2JhY2tncm91bmQ6IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodD9lLmxpZ2h0R3JleTQ6KDAsZ2UuQncpKGUucHJpbWFyeUNvbG9yLC4xKSksIjt9IiwoKHt1c2VEYXJrQmFja2dyb3VuZDplLHRoZW1lOnR9KT0+IWUmJigwLGYuaXYpKCJiYWNrZ3JvdW5kOiIsdC53aGl0ZSwiOyY6aG92ZXJ7YmFja2dyb3VuZDpub25lO30iKSkpLEV0PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVwY3BnenMyIn0pKHtuYW1lOiIxc3ExZ2JhIixzdHlsZXM6ImxpbmUtaGVpZ2h0OjEuNTsifSksa3Q9KCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVwY3BnenMzIn0pKHtuYW1lOiIxa3gycDEwIixzdHlsZXM6InBvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6ODBweDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXBjcGd6czQifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luOjAgMTJweCA0cHg7Y29sb3I6IiwoMCxmLnJTKSgiZ3JleSIpLCI7cGFkZGluZy10b3A6NHB4OyIsdnQuUC5jbGFzc05hbWUsInt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O30iLCgoe3Nob3dEaXZpZGVyOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgicGFkZGluZy10b3A6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAiLHQubGlnaHRHcmV5MywiOyIpKSwiOyIpKTt2YXIgQ3Q9bigyOTI4Niksd3Q9big0MzE3MyksU3Q9bigyMDgzMyksUHQ9big2MDA3MSk7Y29uc3QgVHQ9KGUsdCxuPSExKT0+e2xldCByPWUuc2xpY2UoMCx0KTtuJiYocj1yLnJldmVyc2UoKSk7cmV0dXJuWy4uLnIuZmlsdGVyKChlPT5lLmF2YXRhci5zcXVhcmUxMjgpKSwuLi5yLmZpbHRlcigoZT0+IWUuYXZhdGFyLnNxdWFyZTEyOCkpXX07dmFyIFp0PW4oNjk4NjgpO2NvbnN0IEl0PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdjF1cXdrMCJ9KSgibWFyZ2luLXJpZ2h0OiIsKCh7bWFyZ2luUmlnaHQ6ZX0pPT5lKSwiO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDpmaXQtY29udGVudDtvdmVyZmxvdzpoaWRkZW47ZmxleDowIDAgYXV0bzsiLCgoe3VzZUN1dG91dDplLHVzZUFwcENvbG9yRm9yQXZhdGFyQm9yZGVyOnQsYm9yZGVyUHJpbWFyeUNvbG9yOm4sYXZhdGFyU2l6ZTpyLGF2YXRhclBpeGVsc1RvU2hvdzppLGN1dG91dFNpemU6byx0aGVtZTphfSk9PmU/KDAsZi5pdikoanQuY2xhc3NOYW1lLCI6bm90KDpmaXJzdC1vZi10eXBlKSAiLHZ0LlAuY2xhc3NOYW1lLCJ7bWFzazoiLGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUvMisxO3JldHVybmByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0ICR7ZS8yLXQrbn1weCwgdHJhbnNwYXJlbnQgJHtyfXB4LCB3aGl0ZSAke3IrMX1weClgfShyLGksbyksIjt9Iik6KDAsZi5pdikodnQuUC5jbGFzc05hbWUsIntib3JkZXI6MnB4IHNvbGlkICIsbj9hLnByaW1hcnlDb2xvcjp0P2EuYXBwU2Vjb25kYXJ5Q29sb3I6YS53aGl0ZSwiO30iKSkpLGp0PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdjF1cXdrMSJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7Jjpub3QoOmZpcnN0LW9mLXR5cGUpe21hcmdpbi1sZWZ0ICIsKDAsZi5OUSkoIm1hcmdpbkxlZnQiKSwicHg7fSIpO2NsYXNzIEFkbWluQXZhdGFyU3RhY2sgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7cmVuZGVyQXZhdGFyV2l0aFRvb2x0aXAoZSx0KXtjb25zdCBuPWUuZmlyc3ROYW1lfHwiIjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFp0LlpQLHtjb250ZW50Om4scG9zaXRpb246ImJvdHRvbSJ9LCgobixpKT0+ci5jcmVhdGVFbGVtZW50KHguV3IsaSxyLmNyZWF0ZUVsZW1lbnQoUHQuWix7YWRtaW46ZSxzaXplOnR9KSxuKSkpfXJlbmRlckFkbWluQXZhdGFycygpe2NvbnN0e2FkbWluczplLG1heEFkbWluczp0LHNob3dUb29sdGlwOm4sYXZhdGFyUGl4ZWxzVG9TaG93OmksYXZhdGFyU2l6ZTpvfT10aGlzLnByb3BzLGE9aS1vO3JldHVybiBUdChlLHQsITApLm1hcCgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudChqdCx7a2V5OnQsbWFyZ2luTGVmdDphfSxuP3RoaXMucmVuZGVyQXZhdGFyV2l0aFRvb2x0aXAoZSxvKTpyLmNyZWF0ZUVsZW1lbnQoUHQuWix7YWRtaW46ZSxzaXplOm99KSkpKX1yZW5kZXIoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEl0LHttYXJnaW5SaWdodDp0aGlzLnByb3BzLm1hcmdpblJpZ2h0LHVzZUFwcENvbG9yRm9yQXZhdGFyQm9yZGVyOnRoaXMucHJvcHMudXNlQXBwQ29sb3JGb3JBdmF0YXJCb3JkZXIsYm9yZGVyUHJpbWFyeUNvbG9yOnRoaXMucHJvcHMuYm9yZGVyUHJpbWFyeUNvbG9yLHVzZUN1dG91dDp0aGlzLnByb3BzLnVzZUN1dG91dCxhdmF0YXJTaXplOnRoaXMucHJvcHMuYXZhdGFyU2l6ZSxhdmF0YXJQaXhlbHNUb1Nob3c6dGhpcy5wcm9wcy5hdmF0YXJQaXhlbHNUb1Nob3csY3V0b3V0U2l6ZTp0aGlzLnByb3BzLmN1dG91dFNpemV8fDB9LHRoaXMucmVuZGVyQWRtaW5BdmF0YXJzKCkpfX1BZG1pbkF2YXRhclN0YWNrLmRlZmF1bHRQcm9wcz17YXZhdGFyUGl4ZWxzVG9TaG93OjQ0LGF2YXRhclNpemU6NTIsbWF4QWRtaW5zOjYsc2hvd1Rvb2x0aXA6ITEsbWFyZ2luUmlnaHQ6IjZweCIsYm9yZGVyUHJpbWFyeUNvbG9yOiExLHVzZUN1dG91dDohMSxjdXRvdXRTaXplOjB9O2NvbnN0IF90PSgwLG8uY29ubmVjdCkoKGZ1bmN0aW9uKGUpe3JldHVybnthZG1pbnM6ZS5hcHAuYWN0aXZlQWRtaW5zfHxbXX19KSkoQWRtaW5BdmF0YXJTdGFjayk7dmFyIE90PW4oMTEzNTMpLEF0PW4oNDM4OSk7Y29uc3QgQnQ9e307ZnVuY3Rpb24gUnQoe29iamVjdDplPSIiLHBsYWNlOnQ9IiIsY29udGV4dDpuPUF0LmN3LG1ldGFkYXRhOmk9QnQsc2VuZE1ldHJpY0NvbmRpdGlvbjpvPSEwfSl7Y29uc3QgYT0oMCxoLlRMKSgpOygwLHIudXNlRWZmZWN0KSgoKCk9PntvJiZhKCgocixvKT0+e2NvbnN0e3VzZXI6YX09bygpOygwLE90LkR3KShhLCJ2aWV3ZWQiLGUsdCxuLGkpfSkpfSksW2UsdCxuLG8sYV0pfXZhciB6dD1uKDM4MDQ5KTtmdW5jdGlvbiBOdCgpe2NvbnN0IGU9KDAsSC51c2VOYXZpZ2F0ZSkoKSx0PSgwLEgudXNlTG9jYXRpb24pKCksbj0oMCxOLkZ5KSh0LnBhdGhuYW1lKTtyZXR1cm57c2hvd1NwYWNlOih0LG4pPT57ZShgLyR7dH0ke24/YD8ke259YDoiIn1gKX0sY3VycmVudFNwYWNlOm4saXNDb21wYWN0SG9tZVNob3dpbmc6KDAsaC5DRykoTi5HMCkmJm4uaWQ9PT16dC55Ny5pZH19dmFyIE10PW4oNzcwMTEpLER0PW4oMjUzMDQpLEx0PW4oNzQ2NjgpLEd0PW4oMzg3MzMpLEZ0PW4oNDU1MDQpO2Z1bmN0aW9uIHF0KGUpe3JldHVybih0LG4pPT57Y29uc3R7c2Vzc2lvbjpyfT1uKCk7cmV0dXJuIHQoe3R5cGU6RnQuQ1B4fSksR3QuWlAuZmV0Y2hBbnN3ZXJEZXRhaWxzKHIsZSkudGhlbigoZT0+e3QoZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6RnQuWF9kLGFuc3dlcjplfX0oZSkpfSkpLmNhdGNoKCgoKT0+e3QoZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6RnQuX1JvLGFuc3dlcklkOmV9fShlKSl9KSl9fWZ1bmN0aW9uIEh0KGUsdCl7cmV0dXJuKG4scik9Pntjb25zdHtzZXNzaW9uOml9PXIoKTtyZXR1cm4gR3QuWlAucmVjb3JkQW5zd2VyUmVhY3Rpb24oaSxlLHQpLnRoZW4oKHI9PntyJiZuKGZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6RnQuZXBKLGFuc3dlcklkOmUscmVhY3Rpb25JbmRleDp0fX0oZSx0KSl9KSl9fWZ1bmN0aW9uIFd0KGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBVdChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9XdChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe1Z0KGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpXdChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBWdChlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9Y29uc3QgJHQ9KHtzdWdnZXN0aW9uczplLHNob3dUZWFtRm9vdGVyOnQsb25DbGlja1NlYXJjaElucHV0Om4sb25DbGlja1N1Z2dlc3Rpb246aX0pPT57dmFyIG8sYTtjb25zdCBzPSEobnVsbD09ZXx8bnVsbD09PShvPWUuc3VnZ2VzdGlvbnMpfHx2b2lkIDA9PT1vfHwhby5sZW5ndGgpLGw9IXMmJiF0O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQ3QuWix7bm9QYWRkaW5nOiEwLGlzRW50aXJlQ2FyZENsaWNrYWJsZTpsLGNsYXNzTmFtZToiaW50ZXJjb20taG9tZS1zY3JlZW4tc2VhcmNoLWJyb3dzZS1jYXJkIn0sci5jcmVhdGVFbGVtZW50KHl0LG51bGwsci5jcmVhdGVFbGVtZW50KGJ0LHt1c2VEYXJrQmFja2dyb3VuZDohbCxvbkNsaWNrOm59LHIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwoMCx1Lkl1KSgic2VhcmNoX2Zvcl9oZWxwIikpLHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJTZWFyY2giLHNpemU6MTYsY29sb3I6ImxpbmtDb2xvciJ9KSkscz9yLmNyZWF0ZUVsZW1lbnQod3QuWlAse25vRGl2aWRlcjohMH0sbnVsbD09PShhPWUuc3VnZ2VzdGlvbnMpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLm1hcCgoKGUsdCk9PnIuY3JlYXRlRWxlbWVudChTdC5aLHtrZXk6dCwiZGF0YS10ZXN0aWQiOiJzZWFyY2gtYnJvd3NlLWl0ZW0iLHNpemU6InRpbnkiLHJpZ2h0SWNvbjoiUmlnaHRDaGV2cm9uQ29sb3JhYmxlIixyaWdodEljb25Db2xvcjoibGlua0NvbG9yIixob3ZlckJhY2tncm91bmQ6ITAscm91bmRlZDohMCxvbkNsaWNrOigpPT5pKGUsdCl9LHIuY3JlYXRlRWxlbWVudChFdCxudWxsLGUudGl0bGUpKSkpKTpudWxsLHQmJnIuY3JlYXRlRWxlbWVudChrdCx7c2hvd0RpdmlkZXI6c30sci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCgwLHUuSXUpKCJ0aGVfdGVhbV9jYW5faGVscF9pZl9uZWVkZWQiKSksci5jcmVhdGVFbGVtZW50KF90LHtzaG93VG9vbHRpcDohMCxhdmF0YXJTaXplOjI0LG1heEFkbWluczozLGF2YXRhclBpeGVsc1RvU2hvdzoxMix1c2VBcHBDb2xvckZvckF2YXRhckJvcmRlcjohMX0pKSkpfSxLdD0oe2luZGV4OmV9KT0+e3ZhciB0LG4saTtjb25zdCBvPSgwLGguVEwpKCksYT0oMCxILnVzZU5hdmlnYXRlKSgpLHtzaG93U3BhY2U6c309TnQoKSxsPSgwLGguQ0cpKEx0LlR5KSxjPSgwLGguQ0cpKEx0LlRoKSxkPSgwLGguQ0cpKEx0LlVxKSxwPSgwLGguQ0cpKHBlLllKKSx1PSgwLGguQ0cpKE4uY0MpLG09Y3x8ZCxnPW51bGwhPT1kLGY9KG51bGw9PW0/dm9pZCAwOm0ubWV0YWRhdGEpfHx7fSx4PW51bGw9PW18fG51bGw9PT0odD1tLnN1Z2dlc3Rpb25zKXx8dm9pZCAwPT09dD92b2lkIDA6dC5maWx0ZXIoKGU9PiJhbnN3ZXIiIT09ZS50eXBlKSksdj0obnVsbD09eD92b2lkIDA6eC5sZW5ndGgpfHwwLHk9bnVsbD09eD92b2lkIDA6eC5tYXAoKCh7aWQ6ZX0pPT5lKSk7KDAsci51c2VFZmZlY3QpKCgoKT0+eyF1JiZwJiZvKCgwLER0LmhVKSgpKX0pLFtvLHAsdV0pO3JldHVybiBSdCh7b2JqZWN0OkF0Lmk2LHBsYWNlOkF0Ll92LGNvbnRleHQ6QXQuWWYsbWV0YWRhdGE6e2hvbWVfc2NyZWVuX2luZGV4OmUsYXJ0aWNsZV9zdWdnZXN0aW9uczpVdCh7bG9hZGVkOiEhYyxhcnRpY2xlc19jb3VudDp2LGFydGljbGVzX3Nob3duOnl9LGYpfSxzZW5kTWV0cmljQ29uZGl0aW9uOiFnfSksUnQoe29iamVjdDpBdC5mcCxwbGFjZTpBdC5fdixjb250ZXh0OkF0LllmLG1ldGFkYXRhOntob21lX3NjcmVlbl9pbmRleDplLHN1Z2dlc3Rpb25zOlV0KHtsb2FkZWQ6ISFtLGNvdW50Om51bGw9PW18fG51bGw9PT0obj1tLnN1Z2dlc3Rpb25zKXx8dm9pZCAwPT09bj92b2lkIDA6bi5sZW5ndGgsc3VnZ2VzdGlvbnM6bnVsbD09bT92b2lkIDA6bS5zdWdnZXN0aW9uc30sZil9LHNlbmRNZXRyaWNDb25kaXRpb246Z30pLFJ0KHtvYmplY3Q6QXQubnEscGxhY2U6QXQuakssY29udGV4dDpBdC5vRCxtZXRhZGF0YTpVdCh7YXJ0aWNsZXNfY291bnQ6dixhcnRpY2xlc19zaG93bjp5fSxmKSxzZW5kTWV0cmljQ29uZGl0aW9uOihudWxsPT1jfHxudWxsPT09KGk9Yy5zdWdnZXN0aW9ucyl8fHZvaWQgMD09PWk/dm9pZCAwOmkubGVuZ3RoKT4wJiYhZ30pLHIuY3JlYXRlRWxlbWVudCgkdCx7c3VnZ2VzdGlvbnM6bSxzaG93VGVhbUZvb3RlcjpsLG9uQ2xpY2tTZWFyY2hJbnB1dDooKT0+e28oKDAsRHQuZ00pKHtvYmplY3Q6QXQuVjcscGxhY2U6QXQuX3YsY29udGV4dDpBdC5ZZn0pKSxzKHp0LmpnLmlkLCJmcm9tSG9tZT10cnVlIil9LG9uQ2xpY2tTdWdnZXN0aW9uOihlLHQpPT57dmFyIG47Zz8obygoMCxEdC5nTSkoe29iamVjdDpBdC5iSyxwbGFjZTpBdC5qSyxjb250ZXh0OkF0Lm9ELG1ldGFkYXRhOlV0KHtpZDplLmlkLHR5cGU6ZS50eXBlLHBvc2l0aW9uOnR9LGYpfSkpLCJhcnRpY2xlIj09PWUudHlwZT9vKCgwLE10Lk1lKShlLmlkLHt9LCEwKSk6KG8oKG49ZSx7dHlwZTpGdC5OVmwsYW5zd2VyOm59KSksYShgJHt6dC5qZy5wYXRofS9hbnN3ZXIvZGV0YWlscy8ke2UuaWR9YCx7c3RhdGU6e25hdmlnYXRpbmdGcm9tOkF0Lm9EfX0pKSk6KG8oKDAsRHQuZ00pKHtvYmplY3Q6QXQuVHQscGxhY2U6QXQuakssY29udGV4dDpBdC5vRCxtZXRhZGF0YTpVdCh7YXJ0aWNsZV9pZDplLmlkLHBvc2l0aW9uOnR9LGYpfSkpLG8oKDAsTXQuTWUpKGUuaWQse30sITApKSl9fSl9O3ZhciBZdD1uKDg3MTExKTtjb25zdCBKdD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTBzOHEzZTAifSkoe25hbWU6IjFqcWllbmEiLHN0eWxlczoiaGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZTsifSk7dmFyIFh0PW4oNjEyNzQpLFF0PW4oMjg4MSk7Y29uc3QgZW49KHt2aXNpYmxlOmUsb25SZXRyeTp0fSk9PnIuY3JlYXRlRWxlbWVudChKdCxudWxsLHIuY3JlYXRlRWxlbWVudChRdC5aLHtkdXJhdGlvbjoyMDB9LGU/ci5jcmVhdGVFbGVtZW50KFh0Llose2lubGluZTohMCxvblJldHJ5OnR9LCgwLHUuSXUpKCJjb3VsZG50X2xvYWRfYXBwcyIpKTpudWxsKSk7dmFyIHRuPW4oMTQ2OSksbm49bi5uKHRuKSxybj1uKDE0ODc3KTtjb25zdCBvbj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlY3RveHQwMCJ9KSh7bmFtZToiNzllbGJrIixzdHlsZXM6InBvc2l0aW9uOnJlbGF0aXZlOyJ9KSxhbj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlY3RveHQwMSJ9KSgiaGVpZ2h0OiIsKCh7aGVpZ2h0OmV9KT0+YCR7ZX1weGApLCI7d2lkdGg6MTAwJTtwb3NpdGlvbjpmaXhlZDt0b3A6MCU7bGVmdDowO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3otaW5kZXg6LTE7IiwoKHtiYWNrZ3JvdW5kVHlwZTplLGdyYWRpZW50Q29sb3JzOnR9KT0+ImNvbG9ycyI9PT1lJiZubigpKHQpJiYoMCxmLml2KSgiYmFja2dyb3VuZC1pbWFnZToiLHQmJjI9PT0obnVsbD09dD92b2lkIDA6dC5sZW5ndGgpP2BsaW5lYXItZ3JhZGllbnQoMTE3LjY3ZGVnLCAke3RbMF19LCAke3RbMV19KWA6IiIsIjtiYWNrZ3JvdW5kLWltYWdlOiIsdCYmMz09PShudWxsPT10P3ZvaWQgMDp0Lmxlbmd0aCk/YGxpbmVhci1ncmFkaWVudCgxMTcuNjdkZWcsICR7dFswXX0sICR7dFsxXX0sICR7dFsyXX0pYDoiIiwiOyIpKSwiOyIsKCh7YmFja2dyb3VuZFR5cGU6ZSx0aGVtZTp0fSk9PiJzb2xpZCI9PT1lJiYoMCxmLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLHQuc2Vjb25kYXJ5Q29sb3IsIjsiKSksIjsiLCgoe2ltYWdlVXJsOmV9KT0+ZSYmKDAsZi5pdikoImJhY2tncm91bmQtaW1hZ2U6dXJsKCIsZSwiKTtiYWNrZ3JvdW5kLXNpemU6IixlLmVuZHNXaXRoKCIuZ2lmIik/ImNvdmVyIjoiMTAwJSIsIjtiYWNrZ3JvdW5kLXBvc2l0aW9uOiIsZS5lbmRzV2l0aCgiLmdpZiIpPyJjZW50ZXIiOiJ0b3AgbGVmdCIsIjsiKSksIjsiKSxzbj0oMCxmLlpQKSgiY2FudmFzIix7dGFyZ2V0OiJlY3RveHQwMiJ9KSh7bmFtZToidXd3cWV2IixzdHlsZXM6IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7In0pLGxuPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVjdG94dDAzIn0pKCJwYWRkaW5nLXRvcDozMnB4O3BhZGRpbmctcmlnaHQ6MzZweDtwYWRkaW5nLWxlZnQ6MzZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3Bvc2l0aW9uOnJlbGF0aXZlOyIsKCh7dGhlbWU6ZSxvcGFjaXR5OnR9KT0+KDAsZi5pdikoImNvbG9yOiIsZS5oZWFkZXJUaXRsZUNvbG9yLCI7b3BhY2l0eToiLHQsIjsiKSksIiAiLCgoe3NpemU6ZX0pPT5lJiYoMCxmLml2KSgicGFkZGluZy1ib3R0b206IiwoZT0+e3N3aXRjaChlKXtjYXNlIm1lZGl1bSI6cmV0dXJuIjcwcHgiO2Nhc2UibG9uZyI6cmV0dXJuIjE0MHB4IjtkZWZhdWx0OnJldHVybiI1MHB4In19KShlKSwiOyIpKSk7dmFyIGNuPXtuYW1lOiI0dG5vam4iLHN0eWxlczoiaGVpZ2h0OjgwcHg7In07Y29uc3QgZG49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWN0b3h0MDQifSkoInBvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtoZWlnaHQ6MTQwcHg7d2lkdGg6MTAwJTtvcGFjaXR5OjE7ei1pbmRleDowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDI1NSwyNTUsMjU1LDApIDAlLCNmZmZmZmYgMTAwJSk7IiwoKHtzaG9ydDplfSk9PmUmJmNuKSwiOyIpO3ZhciBwbj17bmFtZToiOXZobndwIixzdHlsZXM6ImltZ3ttYXgtd2lkdGg6MTAwJTtvYmplY3QtZml0OnNjYWxlLWRvd247fSJ9LHVuPXtuYW1lOiIya2tqcWIiLHN0eWxlczoibWFyZ2luLWJvdHRvbTo2MXB4OyJ9LG1uPXtuYW1lOiIxMHdpYXAyIixzdHlsZXM6Im1hcmdpbi1ib3R0b206LTIwcHg7In07Y29uc3QgaG49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWN0b3h0MDUifSkoImZvbnQtc2l6ZToyNXB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLXRvcDo0cHg7aW1ne21heC1oZWlnaHQ6MzJweDt3aWR0aDphdXRvO30iLChlPT5lLmxvZ29Pbmx5JiZtbiksIiAiLCgoe3RoZW1lOmV9KT0+ZS5pc01vYmlsZSYmdW4pLCIgIiwoKHtzaG93Q2xvc2VCdXR0b246ZX0pPT5lJiZwbikpLGduPSgwLGYuWlApKHJuLlose3RhcmdldDoiZWN0b3h0MDYifSkoImNvbG9yOiIsKDAsZi5yUykoImludHJvZHVjdGlvblRleHRDb2xvciIpLCI7b3BhY2l0eToxOyIsKCh7dXNlTXV0ZWRUZXh0OmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY29sb3I6Iix0LmdyZWV0aW5nVGV4dENvbG9yLCI7IikpLCIgIiwoKHtiYWNrZ3JvdW5kVHlwZTplLHRleHRDb2xvclR5cGU6dCx1c2VNdXRlZFRleHQ6bix0aGVtZTpyfSk9PiJzb2xpZCIhPT1lJiYoMCxmLml2KSgiY29sb3I6IiwiZGFyayI9PT10P3IuYmxhY2s6ci53aGl0ZSwiO3RleHQtc2hhZG93OjBweCAwcHggMzBweCAiLCJkYXJrIj09PXQ/ci5oZWFkZXJUZXh0U2hhZG93TGlnaHQ6ci5oZWFkZXJUZXh0U2hhZG93RGFyaywiO29wYWNpdHk6IixuP3ZuKGUsdCk6MSwiOyIpKSk7dmFyIGZuPXtuYW1lOiJpZ2N5bzQiLHN0eWxlczoicGFkZGluZy10b3A6NjFweDsifTtjb25zdCB4bj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlY3RveHQwNyJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToxMDBweDtoZWlnaHQ6NDBweDsiLCgoe3RoZW1lOmUsaGFzTG9nbzp0fSk9PmUuaXNNb2JpbGUmJigwLGYuaXYpKCJmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RhcnQ7anVzdGlmeS1jb250ZW50OnN0YXJ0O21hcmdpbi1ib3R0b206MHB4O2hlaWdodDphdXRvOyIsIXQmJmZuKSksIiAiLCgoe3Jlc2VydmVTcGFjZU9uUmlnaHQ6ZX0pPT5lJiYoMCxmLml2KShobi5jbGFzc05hbWUsInttYXJnaW4tcmlnaHQ6MzJweDt9IixDbi5jbGFzc05hbWUsInttYXJnaW4tbGVmdDowcHg7fSIpKSksdm49KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZSJpbWFnZSI6cmV0dXJuImRhcmsiPT09dD8uNDouNjtjYXNlImNvbG9ycyI6cmV0dXJuImRhcmsiPT09dD8uNjouNztkZWZhdWx0OnJldHVybiAxfX07dmFyIHluPXtuYW1lOiIxaDlsODc2IixzdHlsZXM6ImZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjM4cHg7In0sYm49e25hbWU6IjE4dHU4dmQiLHN0eWxlczoiZm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzRweDsifTtjb25zdCBFbj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlY3RveHQwOCJ9KSgoKHt1c2VTbWFsbGVyRm9udDplfSk9PmU/Ym46eW4pLCIgKntmb250LXdlaWdodDo3MDA7fSIpO3ZhciBrbj17bmFtZToiMXVwaWxxbiIsc3R5bGVzOiJtYXJnaW4tYm90dG9tOjEycHg7In07Y29uc3QgQ249KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWN0b3h0MDkifSkoKCh7dGhlbWU6ZX0pPT5lLmlzTW9iaWxlJiZrbiksIiAiLCgoe3RoZW1lOmUsd2l0aFNwYWNlRm9yQ2xvc2VCdXR0b246dCxzY3JvbGxiYXJWaXNpYmxlOm59KT0+dCYmIWUuaXNNb2JpbGUmJigwLGYuaXYpKCJtYXJnaW4tcmlnaHQ6IixuPyIxOHB4IjoiMzRweCIsIjttYXJnaW4tbGVmdDoxMHB4OyIpKSksd249KCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVjdG94dDAxMCJ9KSgicGFkZGluZy1ib3R0b206MzdweDttaW4taGVpZ2h0OjI3cHg7IiwoKHtoZWlnaHQ6ZX0pPT4oMCxmLml2KSgiaGVpZ2h0OiIsZSwicHg7IikpKSwyMTApLFNuPTEzMCxQbj0xZTMvNjAtMyxUbj0yKk1hdGguUEksWm49L14jPyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KSQvaTtjbGFzcyBHbG93UGFydGljbGV7Y29uc3RydWN0b3IoZSx0LG4scil7dGhpcy54PXZvaWQgMCx0aGlzLnk9dm9pZCAwLHRoaXMucmFkaXVzPXZvaWQgMCx0aGlzLnJnYj12b2lkIDAsdGhpcy52eD12b2lkIDAsdGhpcy52eT12b2lkIDAsdGhpcy5maXJzdENvbG9yPXZvaWQgMCx0aGlzLnNlY29uZENvbG9yPXZvaWQgMCx0aGlzLng9ZSx0aGlzLnk9dCx0aGlzLnJhZGl1cz1uLHRoaXMuZmlyc3RDb2xvcj1gcmdiYSgke3Iucn0sICR7ci5nfSAsJHtyLmJ9LCAxKWAsdGhpcy5zZWNvbmRDb2xvcj1gcmdiYSgke3Iucn0sICR7ci5nfSAsJHtyLmJ9LCAwKWAsdGhpcy52eD0uMipNYXRoLnJhbmRvbSgpLHRoaXMudnk9LjIqTWF0aC5yYW5kb20oKX11cGRhdGUoZSx0KXt0aGlzLngrPXRoaXMudngsdGhpcy55Kz10aGlzLnZ5LHRoaXMueDw9MD8odGhpcy52eCo9LTEsdGhpcy54Kz0xKTp0aGlzLng+PWUmJih0aGlzLnZ4Kj0tMSx0aGlzLngtPTEpLHRoaXMueTw9MD8odGhpcy52eSo9LTEsdGhpcy55Kz0xKTp0aGlzLnk+PXQmJih0aGlzLnZ5Kj0tMSx0aGlzLnktPTEpfWRyYXcoZSl7ZS5iZWdpblBhdGgoKTtjb25zdCB0PU1hdGguZmxvb3IodGhpcy54KSxuPU1hdGguZmxvb3IodGhpcy55KSxyPWUuY3JlYXRlUmFkaWFsR3JhZGllbnQodCxuLC4wMSp0aGlzLnJhZGl1cyx0LG4sdGhpcy5yYWRpdXMpO3IuYWRkQ29sb3JTdG9wKDAsdGhpcy5maXJzdENvbG9yKSxyLmFkZENvbG9yU3RvcCgxLHRoaXMuc2Vjb25kQ29sb3IpLGUuZmlsbFN0eWxlPXIsZS5hcmModCxuLHRoaXMucmFkaXVzLDAsVG4sITEpLGUuZmlsbCgpLGUuY2xvc2VQYXRoKCl9fWNvbnN0IEluPSh7Y29sb3JzOmV9KT0+e2NvbnN0IHQ9ci51c2VSZWYobnVsbCksW25dPXIudXNlU3RhdGUoKCgpPT57Y29uc3QgdD1lLm1hcCgoZT0+e2NvbnN0IHQ9Wm4uZXhlYyhlLnRyaW0oKSk7cmV0dXJuIHQ/e3I6cGFyc2VJbnQodFsxXSwxNiksZzpwYXJzZUludCh0WzJdLDE2KSxiOnBhcnNlSW50KHRbM10sMTYpfTpudWxsfSkpO2NvbnN0IG49TWF0aC5taW4od24sU24pLHI9LjgqbixpPS42Km4sbz1bXTtsZXQgYT0wO2ZvcihsZXQgZT0wO2U8MTY7ZSsrKXtjb25zdCBuPW5ldyBHbG93UGFydGljbGUoTWF0aC5yYW5kb20oKSp3bixNYXRoLnJhbmRvbSgpKlNuLE1hdGgucmFuZG9tKCkqKHItaSkraSx0W2FdfHx7cjowLGc6MCxiOjB9KTsrK2E+PXQubGVuZ3RoJiYoYT0wKSxvW2VdPW59cmV0dXJuIG99KSgpKTtyZXR1cm4gci51c2VFZmZlY3QoKCgpPT57Y29uc3QgZT10LmN1cnJlbnQ7aWYoIWUpcmV0dXJuO2NvbnN0IHI9ZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFyKXJldHVybjtyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic2F0dXJhdGlvbiI7bGV0IGksbz0obmV3IERhdGUpLmdldFRpbWUoKS1Qbjtjb25zdCBhPSgpPT57Y29uc3QgZT0obmV3IERhdGUpLmdldFRpbWUoKTtlLW8+PVBuJiYoKCgpPT57ci5jbGVhclJlY3QoMCwwLHduLFNuKTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyl7Y29uc3QgdD1uW2VdO3QuZHJhdyhyKSx0LnVwZGF0ZSh3bixTbil9fSkoKSxvPWUpLGk9d2luZG93LnBhcmVudC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYSl9O3JldHVybiBhKCksKCk9PntjYW5jZWxBbmltYXRpb25GcmFtZShpKX19KSxbdCxuXSksci5jcmVhdGVFbGVtZW50KHNuLHtyZWY6dCx3aWR0aDp3bixoZWlnaHQ6U259KX07ZnVuY3Rpb24gam4oe3RpdGxlOmUsc3VidGl0bGU6dCxsb2dvOm4sc2hvd0F2YXRhcnM6aT0hMCxjaGlsZHJlbjpvLG9wYWNpdHk6YT0xLGJhY2tncm91bmQ6cyx0ZXh0Q29sb3JUeXBlOmwsY2xvc2VCdXR0b25FbmFibGVkOmMsc2Nyb2xsYmFyVmlzaWJsZTpkfSl7Y29uc3Rbe2hlaWdodDpwfSx1XT0oMCxSZS5aKSgpLG09ISEoZSYmZS50cmltKCkubGVuZ3RoPjE2KXx8ISEodCYmdC50cmltKCkubGVuZ3RoPjE2KSxoPSJjb2xvcnMiPT09KG51bGw9PXM/dm9pZCAwOnMudHlwZSkmJihudWxsPT1zP3ZvaWQgMDpzLmFuaW1hdGVkKSxnPSEoImltYWdlIiE9PShudWxsPT1zP3ZvaWQgMDpzLnR5cGUpfHxudWxsPT1zfHwhcy5pbWFnZVVybCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChvbixudWxsLHIuY3JlYXRlRWxlbWVudChhbix7aGVpZ2h0OnAsYmFja2dyb3VuZFR5cGU6bnVsbD09cz92b2lkIDA6cy50eXBlLGdyYWRpZW50Q29sb3JzOm51bGw9PXM/dm9pZCAwOnMuZ3JhZGllbnQsZmFkZVRvV2hpdGU6bnVsbD09cz92b2lkIDA6cy5mYWRlVG9XaGl0ZSxpbWFnZVVybDpnP3MuaW1hZ2VVcmw6dm9pZCAwfSxoJiZudWxsIT1zJiZzLmdyYWRpZW50P3IuY3JlYXRlRWxlbWVudChJbix7Y29sb3JzOnMuZ3JhZGllbnR9KTpudWxsLChudWxsPT1zP3ZvaWQgMDpzLmZhZGVUb1doaXRlKSYmci5jcmVhdGVFbGVtZW50KGRuLHtzaG9ydDpnfSkpLHIuY3JlYXRlRWxlbWVudChsbix7b3BhY2l0eTphLHJlZjp1LHNpemU6bnVsbCE9cyYmcy5mYWRlVG9XaGl0ZT9nPyJtZWRpdW0iOiJsb25nIjoic2hvcnQifSxyLmNyZWF0ZUVsZW1lbnQoeG4se2hhc0xvZ286ISFuLHNob3dDbG9zZUJ1dHRvbjpjLHJlc2VydmVTcGFjZU9uUmlnaHQ6aXx8Y30sbiYmci5jcmVhdGVFbGVtZW50KGhuLHtsb2dvT25seTohKGV8fHQpLHNob3dDbG9zZUJ1dHRvbjpjfSxyLmNyZWF0ZUVsZW1lbnQoImltZyIse3NyYzpufSkpLGkmJnIuY3JlYXRlRWxlbWVudChDbix7d2l0aFNwYWNlRm9yQ2xvc2VCdXR0b246YywiZGF0YS10ZXN0aWQiOiJob21lLWhlYWRlci1hdmF0YXJzIixzY3JvbGxiYXJWaXNpYmxlOmR9LHIuY3JlYXRlRWxlbWVudChfdCx7YXZhdGFyU2l6ZTo0MCx1c2VDdXRvdXQ6ITAsY3V0b3V0U2l6ZToxLG1heEFkbWluczozLGF2YXRhclBpeGVsc1RvU2hvdzozOCx1c2VBcHBDb2xvckZvckF2YXRhckJvcmRlcjohMH0pKSksci5jcmVhdGVFbGVtZW50KEVuLHt1c2VTbWFsbGVyRm9udDptfSxlJiZyLmNyZWF0ZUVsZW1lbnQoZ24seyJkYXRhLXRlc3RpZCI6InRpdGxlIix0ZXh0OmUsdGFnTmFtZToiaDEiLHVzZU11dGVkVGV4dDohIXQsYmFja2dyb3VuZFR5cGU6bnVsbD09cz92b2lkIDA6cy50eXBlLHRleHRDb2xvclR5cGU6bH0pLHQmJnIuY3JlYXRlRWxlbWVudChnbix7ImRhdGEtdGVzdGlkIjoic3VidGl0bGUiLHRleHQ6dCx0YWdOYW1lOiJoMiIsdXNlTXV0ZWRUZXh0OiExLGJhY2tncm91bmRUeXBlOm51bGw9PXM/dm9pZCAwOnMudHlwZSx0ZXh0Q29sb3JUeXBlOmx9KSksbykpfWNvbnN0IF9uPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYjQ0dGNhMCJ9KSh7bmFtZToiMWExd3Q2cSIsc3R5bGVzOiJtYXJnaW46YXV0bzt3aWR0aDpmaXQtY29udGVudDsifSk7dmFyIE9uPW4oNDk0NTQpO2NvbnN0IEFuPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV0YWp0dDQwIn0pKHtuYW1lOiIyMHZ5MGgiLHN0eWxlczoiZm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHg7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbDttYXJnaW4tYm90dG9tOjRweDsifSksQm49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRhanR0NDEifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MTBweDtjdXJzb3I6cG9pbnRlcjtib3gtc2hhZG93OiIsKDAsZi5yUykoImhvbWVDYXJkQm94U2hhZG93IiksIjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMTUwbXM7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7IixPbi5rVS5jbGFzc05hbWUsIntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O30iLCgoe3RoZW1lOmV9KT0+KDAsZi5pdikoIiY6aG92ZXJ7IixBbi5jbGFzc05hbWUsIntjb2xvcjoiLGUuaXNQcmltYXJ5Q29sb3JMaWdodD9lLm01RGFya0dyZXkyOmUucHJpbWFyeUNvbG9yLCI7fX0iKSksIiAiLCgoe3RoZW1lOmV9KT0+ZS5pc1ByaW1hcnlDb2xvckxpZ2h0JiYoMCxmLml2KSgiJjpob3Zlcntib3gtc2hhZG93OiIsZS5ob21lQ2FyZExpZ2h0TW9kZUhvdmVyQm94U2hhZG93LCI7fSIpKSksUm49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRhanR0NDIifSkoe25hbWU6ImtpbXF1eiIsc3R5bGVzOiJoZWlnaHQ6MTQwcHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjEwcHggMTBweCAwcHggMHB4O30ifSksem49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRhanR0NDMifSkoe25hbWU6IjFteHVsdDQiLHN0eWxlczoiZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoxNnB4IDIwcHg7In0pLE5uPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV0YWp0dDQ0In0pKHtuYW1lOiIxbnl6aXAwIixzdHlsZXM6ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZy10b3A6MTJweDsifSksTW49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRhanR0NDUifSkoe25hbWU6Imswc29nZCIsc3R5bGVzOiJmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjsifSksRG49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRhanR0NDYifSkoImRpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4O2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjsiKSxMbj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJldGFqdHQ0NyJ9KSh7bmFtZToicmg4NjBlIixzdHlsZXM6Im1hcmdpbi1sZWZ0OjIwcHg7c3Zne21hcmdpbi10b3A6MjBweDttaW4td2lkdGg6YXV0bzt9In0pO2Z1bmN0aW9uIEduKGUpe3JldHVybih0LG4pPT57Y29uc3R7c2Vzc2lvbjpyfT1uKCk7cmV0dXJuIHQoe3R5cGU6RnQuazN5fSksR3QuWlAuZmV0Y2hOZXdzSXRlbURldGFpbHMocixlKS50aGVuKChlPT57dChmdW5jdGlvbihlKXtyZXR1cm57dHlwZTpGdC5FM3ksbmV3c0l0ZW06ZX19KGUpKX0pKS5jYXRjaCgoKCk9Pnt0KGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOkZ0Lkd5QSxuZXdzSXRlbUlkOmV9fShlKSl9KSl9fWZ1bmN0aW9uIEZuKGUsdCl7cmV0dXJuIGFzeW5jKG4scik9Pntjb25zdHtzZXNzaW9uOml9PXIoKTtyZXR1cm4gR3QuWlAucmVjb3JkTmV3c0l0ZW1SZWFjdGlvbihpLGUsdCkudGhlbigocj0+e3ImJm4oZnVuY3Rpb24oZSx0KXtyZXR1cm57dHlwZTpGdC5SX1UsbmV3c0l0ZW1JZDplLHJlYWN0aW9uSW5kZXg6dH19KGUsdCkpfSkpfX1jb25zdCBxbj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXc4M2cxNzAifSkoe25hbWU6InplZmM1cyIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweDsifSksSG49KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF3ODNnMTcxIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweDtjb2xvcjoiLCgwLGYuclMpKCJsaW5rQ29sb3IiKSwiO3BhZGRpbmc6MHB4IDZweCAwcHggNnB4O2JhY2tncm91bmQ6IiwoMCxmLnJTKSgibGFiZWxCYWNrZ3JvdW5kQ29sb3IiKSwiO2JvcmRlcjowcHg7Ym9yZGVyLXJhZGl1czoxMHB4OyIpO2Z1bmN0aW9uIFduKHtuZXdzSXRlbTplLHByZXZpZXc6dH0pe2xldCBuPWUubGFiZWxzfHxbXTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7aWYodCYmbi5sZW5ndGg+Mil7Y29uc3RbZSwuLi50XT1uO249W2VdLHQubGVuZ3RoPjAmJm4ucHVzaCh7aWQ6LTEsbmFtZTooMCx1Lkl1KSgiZXh0cmFfbGFiZWxzX2NvdW50Iix7bGFiZWxzX2NvdW50OlN0cmluZyh0Lmxlbmd0aCl9KX0pfXJldHVybiByLmNyZWF0ZUVsZW1lbnQocW4sbnVsbCxuLm1hcCgoZT0+ci5jcmVhdGVFbGVtZW50KEhuLHtrZXk6ZS5pZH0sZS5uYW1lKSkpKX12YXIgVW49big1Mjk0Myk7ZnVuY3Rpb24gVm4oe25ld3NJdGVtOmUsaXNVbnJlYWQ6dCxyZW5kZXJpbmdDb250ZXh0Om59KXtjb25zdCBpPSgwLEgudXNlTmF2aWdhdGUpKCksbz0oMCxoLlRMKSgpLGE9KDAsci51c2VDYWxsYmFjaykoKCgpPT57byhmdW5jdGlvbihlKXtyZXR1cm57dHlwZTpGdC5jdnksbmV3c0l0ZW06ZX19KGUpKSxpKGAvbmV3cy9kZXRhaWxzLyR7ZS5pZH1gLHtzdGF0ZTp7bmF2aWdhdGluZ0Zyb206bn19KX0pLFtpLG8sZSxuXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChCbix7aXNVbnJlYWQ6dCxvbkNsaWNrOmEsImRhdGEtdGVzdGlkIjoibmV3cy1pdGVtLWNhcmQifSxlLmNvdmVySW1hZ2VVcmwmJnIuY3JlYXRlRWxlbWVudChSbixudWxsLHIuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOmUuY292ZXJJbWFnZVVybH0pKSxyLmNyZWF0ZUVsZW1lbnQoem4sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoV24se25ld3NJdGVtOmUscHJldmlldzohMH0pLHIuY3JlYXRlRWxlbWVudChObixudWxsLHIuY3JlYXRlRWxlbWVudChNbixudWxsLHIuY3JlYXRlRWxlbWVudChBbixudWxsLGUudGl0bGUpLHIuY3JlYXRlRWxlbWVudChEbixudWxsLHIuY3JlYXRlRWxlbWVudChVbi5TLHt0ZXh0OmUuZGVzY3JpcHRpb24sdGFnTmFtZToiZGl2IixjbGFzc05hbWU6ImludGVyY29tLWJsb2NrLXBhcmFncmFwaCJ9KSkpLHIuY3JlYXRlRWxlbWVudChMbixudWxsLHIuY3JlYXRlRWxlbWVudChsZS5aLHtzaXplOjE2LHR5cGU6IlJpZ2h0Q2hldnJvbkNvbG9yYWJsZSIsY29sb3I6ImxpbmtDb2xvciJ9KSkpKSl9dmFyICRuPW4oOTQ1MTApO2Z1bmN0aW9uIEtuKGUsdCl7cmV0dXJuIHQmJmUucHVibGlzaGVkQXQmJnQuZ2V0VGltZSgpPj1lLnB1Ymxpc2hlZEF0LmdldFRpbWUoKX12YXIgWW49big5OTk0OCk7ZnVuY3Rpb24gSm4oKXtjb25zdCBlPSgwLGguVEwpKCksdD0oMCxoLkNHKSgkbi5SZSksbj0oMCxoLkNHKSgkbi5lMiksaT0oMCxoLkNHKSgkbi5XUyk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+eyFpJiZuJiZlKCgwLFluLkE1KSgpKX0pLFtpLG4sZV0pLHtsb2FkaW5nOmksbmV3c0l0ZW1zOnR9fWZ1bmN0aW9uIFhuKCl7Y29uc3R7bG9hZGluZzplLG5ld3NJdGVtczp0fT1KbigpLG49KDAsaC5DRykoJG4uSDcpLGk9KDAsaC5DRykoJG4uYUwpfHwwLG89dm9pZCAwIT09aSYmaT4wO2lmKCEoZXx8dCYmMCE9PXQubGVuZ3RoKSlyZXR1cm4gbnVsbDtpZihlJiYoIXR8fDA9PT10Lmxlbmd0aCkpcmV0dXJuIHIuY3JlYXRlRWxlbWVudChfbixudWxsLHIuY3JlYXRlRWxlbWVudChZdC5aLHtpbmxpbmU6ITB9KSk7aWYodCl7Y29uc3QgZT10WzBdLGk9byYmIUtuKGUsbik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChWbix7bmV3c0l0ZW06ZSxpc1VucmVhZDppLHJlbmRlcmluZ0NvbnRleHQ6QXQuZGZ9KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBRbigpe2NvbnN0IGU9KDAsaC5DRykoJG4uUmUpLHQ9ZSYmZS5sZW5ndGg+MCYmZVswXTtyZXR1cm4gUnQoe29iamVjdDpBdC5nbCxwbGFjZTpBdC5fdixjb250ZXh0OkF0LmRmLG1ldGFkYXRhOntuZXdzX2l0ZW1faWQ6bnVsbD09dD92b2lkIDA6dC5pZH0sc2VuZE1ldHJpY0NvbmRpdGlvbjohIXR9KSxyLmNyZWF0ZUVsZW1lbnQoWG4sbnVsbCl9dmFyIGVyPW4oNzYwNzQpO2NvbnN0IHRyPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxOWlhaXIzMCJ9KSh7bmFtZToiMWJhdWx2eiIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1ibG9jazsifSksbnI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTE5aWFpcjMxIn0pKCJ3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6Zml0LWNvbnRlbnQ7b3ZlcmZsb3c6aGlkZGVuO2ZsZXg6MCAwIGF1dG87IiwoKHtvdmVybGFwOmUsc3BhY2luZzp0fSk9PigwLGYuaXYpKHRyLmNsYXNzTmFtZSwiOmZpcnN0LW9mLXR5cGUgIix2dC5QLmNsYXNzTmFtZSwie21hc2s6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsdHJhbnNwYXJlbnQgIixlLCJweCx3aGl0ZSAiLHQsInB4KTt9Iix0ci5jbGFzc05hbWUsIjpsYXN0LW9mLXR5cGUgIix2dC5QLmNsYXNzTmFtZSwie21hc2s6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHRyYW5zcGFyZW50ICIsZSwicHgsd2hpdGUgIix0LCJweCk7fSIsdHIuY2xhc3NOYW1lLCI6bm90KDpmaXJzdC1vZi10eXBlKSAiLHZ0LlAuY2xhc3NOYW1lLCJ7bWFyZ2luLWxlZnQ6LSIsdCwicHg7fSIpKSkscnI9KHthc3NpZ25lZEFkbWluOmUsYWN0aXZlQWRtaW5zOnQsc2l6ZTpuPSJsYXJnZSJ9KT0+e2NvbnN0IGk9ImxhcmdlIj09PW4/NjQ6MzIsbz0uNzUqaSxhPS4yNSpvLHM9by82O2lmKCgwLGguQ0cpKHouRFgpJiZlJiZ0KXtjb25zdCBuPVR0KHQsMiwhMCk7aWYoMj09PW4ubGVuZ3RoKXJldHVybiByLmNyZWF0ZUVsZW1lbnQobnIse292ZXJsYXA6YSxzcGFjaW5nOnN9LHIuY3JlYXRlRWxlbWVudCh0cixudWxsLHIuY3JlYXRlRWxlbWVudChQdC5aLHthZG1pbjpuWzBdLHNpemU6b30pKSxyLmNyZWF0ZUVsZW1lbnQodHIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoUHQuWix7YWRtaW46ZSxzaXplOml9KSksci5jcmVhdGVFbGVtZW50KHRyLG51bGwsci5jcmVhdGVFbGVtZW50KFB0Llose2FkbWluOm5bMV0sc2l6ZTpvfSkpKTtpZigxPT09bi5sZW5ndGgpcmV0dXJuIHIuY3JlYXRlRWxlbWVudChucix7b3ZlcmxhcDphLHNwYWNpbmc6c30sci5jcmVhdGVFbGVtZW50KFB0Llose2FkbWluOmUsc2l6ZTppfSksci5jcmVhdGVFbGVtZW50KHRyLG51bGwsci5jcmVhdGVFbGVtZW50KFB0Llose2FkbWluOm5bMF0sc2l6ZTpvfSkpKX1yZXR1cm4gZSYmci5jcmVhdGVFbGVtZW50KFB0Llose3NpemU6aSxhZG1pbjplfSl9LGlyPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNWNnOTMwMCJ9KSh7bmFtZToiMWlyMmk0biIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21hcmdpbjotM3B4IDA7In0pLG9yPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTVjZzkzMDEifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Y29sb3I6IiwoMCxmLnJTKSgiZ3JleSIpLCI7Zm9udC1zaXplOjE0cHg7cGFkZGluZzoxMHB4IDE2cHggMTBweCAyMHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICIsKDAsZi5yUykoImxpZ2h0R3JleTMiKSwiOyIpLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNWNnOTMwMiJ9KSgiY29sb3I6IiwoMCxmLnJTKSgiaW5wdXRHcmV5IiksIjtmb250LXNpemU6MTRweDsiKSksYXI9KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImVkaGJnMjIwIn0pKCksc3I9KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImVkaGJnMjIxIn0pKCk7dmFyIGxyPXtuYW1lOiJjdTNycWIiLHN0eWxlczoicGFkZGluZzoxMHB4IDI2cHggMTBweCAyNHB4OyJ9O2NvbnN0IGNyPSgwLGYuWlApKFN0Llose3RhcmdldDoiZWRoYmcyMjIifSkoc3IuY2xhc3NOYW1lLCIgcGF0aHtmaWxsOiIsKDAsZi5yUykoImxpbmtDb2xvciIpLCI7fSY6aG92ZXJ7Y29sb3I6IiwoMCxmLnJTKSgibGlua0NvbG9yIiksIjsiLGFyLmNsYXNzTmFtZSwiIHBhdGh7ZmlsbDoiLCgwLGYuclMpKCJsaW5rQ29sb3IiKSwiO319IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZscikpLGRyPSh7Y2hpbGRyZW46ZX0pPT5yLmNyZWF0ZUVsZW1lbnQoc3IsbnVsbCxlKSxwcj0oe3R5cGU6ZX0pPT5yLmNyZWF0ZUVsZW1lbnQoYXIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZTplfHwiUmlnaHRDaGV2cm9uQ29sb3JhYmxlIixjb2xvcjoiaW5wdXRHcmV5In0pKTtmdW5jdGlvbiB1cih7Y2hpbGRyZW46ZSxsZWZ0OnQsb25DbGljazpuLHJpZ2h0SWNvbjppLHJpZ2h0Om8sdHJ1bmNhdGU6YX0pe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoY3Ise3NpemU6InNtYWxsIixsZWZ0OnIuY3JlYXRlRWxlbWVudChkcixudWxsLHQpLHJpZ2h0Om98fHIuY3JlYXRlRWxlbWVudChwcix7dHlwZTppfSksaG92ZXJCYWNrZ3JvdW5kOiEwLG9uQ2xpY2s6bix0cnVuY2F0ZTphfSxlKX1jb25zdCBtcj0oe3RpdGxlOmUsc3VidGl0bGU6dCxvbkNsaWNrOm4scmlnaHQ6aSxyaWdodEljb246byxyaWdodEljb25Db2xvcjphfSk9PnIuY3JlYXRlRWxlbWVudChDdC5aLHtub1BhZGRpbmc6ITAsaXNFbnRpcmVDYXJkQ2xpY2thYmxlOiEwLG9uQ2xpY2s6bn0sci5jcmVhdGVFbGVtZW50KFN0Llose3JpZ2h0OmkscmlnaHRJY29uOm8scmlnaHRJY29uQ29sb3I6YX0sci5jcmVhdGVFbGVtZW50KEN0LlouVGl0bGUsbnVsbCxlKSxyLmNyZWF0ZUVsZW1lbnQob3IsbnVsbCx0KSkpLGhyPSh7dGl0bGU6ZSxvbkNsaWNrOnQsaWNvbjpufSk9PnIuY3JlYXRlRWxlbWVudCh1cix7b25DbGljazp0LGxlZnQ6ci5jcmVhdGVFbGVtZW50KGxlLlose3R5cGU6bixjb2xvcjoibGlua0NvbG9yIixzaXplOjE2fSkscmlnaHRJY29uOiJSaWdodENoZXZyb25Db2xvcmFibGUifSxlKSxncj0oKT0+e3ZhciBlO2NvbnN0IHQ9KDAsaC5UTCkoKSxuPSgwLGguQ0cpKE4uRzApLGk9KDAsaC5DRykobXQpLG89KDAsaC5DRykoei5WQSksYT0oMCxoLkNHKSgoZT0+ZS5hcHAuYWN0aXZlQWRtaW5zKSl8fFtdLHM9KDAsaC5DRykoei5WSiksbD0oKT0+eygwLE90LldNKSgiY2xpY2tlZCIsIm5ld19jb252ZXJzYXRpb24iLCJtZXNzZW5nZXIiLCJob21lIiksdCgoMCxjZS5rQykoKSl9O2xldCBjO3ZhciBkLHA7cz9jPXt0aXRsZTpzLnRleHQsc3VidGl0bGU6cy5ob21lU3VidGl0bGUsaWNvbl90eXBlOm51bGw9PT0oZD1zLmhvbWVBdmF0YXJHcm91cCl8fHZvaWQgMD09PWQ/dm9pZCAwOmQudHlwZSxhdmF0YXJzOm51bGw9PT0ocD1zLmhvbWVBdmF0YXJHcm91cCl8fHZvaWQgMD09PXA/dm9pZCAwOnAuYXZhdGFyc306Yz1udWxsIT1pJiZpLmFjdGlvbj97dGl0bGU6aS5hY3Rpb24ubGFiZWwsc3VidGl0bGU6aS5hY3Rpb24uc3VidGl0bGUsaWNvbl90eXBlOmkuYWN0aW9uLmljb259Ont0aXRsZTooMCx1Lkl1KSgic2VuZF91c19hX21lc3NhZ2UiKSxzdWJ0aXRsZTooMCx1Lkl1KSgic2VuZF91c19hX21lc3NhZ2Vfc3VidGl0bGUiKSxpY29uX3R5cGU6ZXIuSnAudGVhbW1hdGV9O2NvbnN0IG09KG51bGw9PXN8fG51bGw9PT0oZT1zLmhvbWVBdmF0YXJHcm91cCl8fHZvaWQgMD09PWU/dm9pZCAwOmUudHlwZSl8fGVyLkpwLnRlYW1tYXRlO2lmKG4pe2xldCBlO3N3aXRjaChtKXtjYXNlIGVyLkpwLnRlYW1tYXRlOmU9IkNvbXBvc2VyU2VuZCI7YnJlYWs7Y2FzZSBlci5KcC5ib3Q6Y2FzZSBlci5KcC5maW46Y2FzZSBlci5KcC5mYWNlcGlsZTplPSJBc2tRdWVzdGlvbiI7YnJlYWs7ZGVmYXVsdDplPSJDb21wb3NlclNlbmQifXJldHVybiByLmNyZWF0ZUVsZW1lbnQoaHIse3RpdGxlOmMudGl0bGUsb25DbGljazpsLGljb246ZX0pfXtsZXQgZSx0LG47c3dpdGNoKGMuaWNvbl90eXBlKXtjYXNlIGVyLkpwLnRlYW1tYXRlOnQ9Ik5ld0NvbnZlcnNhdGlvbiIsbj0ibGlua0NvbG9yIjticmVhaztjYXNlIGVyLkpwLmJvdDp0PSJBc2tRdWVzdGlvbiIsbj0ibGlua0NvbG9yIjticmVhaztjYXNlIGVyLkpwLmZhY2VwaWxlOmU9KG51bGw9PW8/dm9pZCAwOm8ucGFydGljaXBhbnQpJiZyLmNyZWF0ZUVsZW1lbnQocnIse2Fzc2lnbmVkQWRtaW46by5wYXJ0aWNpcGFudCxhY3RpdmVBZG1pbnM6YSxzaXplOiJzbWFsbCJ9KTticmVhaztjYXNlIGVyLkpwLmZpbjplPShudWxsPT1vP3ZvaWQgMDpvLnBhcnRpY2lwYW50KSYmci5jcmVhdGVFbGVtZW50KGlyLG51bGwsci5jcmVhdGVFbGVtZW50KFB0Llose3NpemU6MjQsYWRtaW46by5wYXJ0aWNpcGFudH0pLHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJSaWdodENoZXZyb25Db2xvcmFibGUiLGNvbG9yOiJsaW5rQ29sb3IiLHNpemU6MTZ9KSk7YnJlYWs7ZGVmYXVsdDp0PSJOZXdDb252ZXJzYXRpb24iLG49ImxpbmtDb2xvciJ9cmV0dXJuIHIuY3JlYXRlRWxlbWVudChtcix7dGl0bGU6Yy50aXRsZXx8KDAsdS5JdSkoInNlbmRfdXNfYV9tZXNzYWdlIiksc3VidGl0bGU6Yy5zdWJ0aXRsZSxvbkNsaWNrOmwscmlnaHQ6ZSxyaWdodEljb246dCxyaWdodEljb25Db2xvcjpufSl9fTt2YXIgZnI9bigxMjMyNSkseHI9big4OTg1MyksdnI9big2NjYwMik7Y29uc3QgeXI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXo5NzIzODAifSkoIm92ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDoiLChlPT5lLnVucmVhZD82MDA6NDAwKSwiOyIpLGJyPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV6OTcyMzgxIn0pKHtuYW1lOiIxZ2IxcmlnIixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Y3Vyc29yOnBvaW50ZXI7In0pLEVyPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlejk3MjM4MiJ9KSh7bmFtZToiMW9xNTdqOCIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDIwcHgpO2FsaWduLWl0ZW1zOmNlbnRlcjsifSksa3I9KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImV6OTcyMzgzIn0pKCJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXJnaW4tcmlnaHQ6M3B4O3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXdlaWdodDoiLChlPT5lLnVucmVhZD82MDA6NDAwKSwiOyIsKCh7dGlja2V0c1NwYWNlRW5hYmxlZDplLHRoZW1lOnR9KT0+ZSYmKDAsZi5pdikoIm1hcmdpbi1sZWZ0OjRweDtjb2xvcjoiLHQuaW5wdXRHcmV5LCI7IikpKSxDcj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlejk3MjM4NCJ9KSh7bmFtZToidDZtb2hoIixzdHlsZXM6ImZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweDtjb2xvcjojNjY2NjY2O2Rpc3BsYXk6ZmxleDt3aGl0ZS1zcGFjZTpicmVhay1zcGFjZXM7ZGl2e3doaXRlLXNwYWNlOm5vd3JhcDt9In0pLHdyPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV6OTcyMzg1In0pKHtuYW1lOiJzdjRhdyIsc3R5bGVzOiJvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXJnaW4tcmlnaHQ6NHB4OyJ9KTt2YXIgU3I9e25hbWU6InJlajVpOCIsc3R5bGVzOiJwYWRkaW5nOjE4cHggMjZweCAxOHB4IDE2cHg7In0sUHI9e25hbWU6IjEzMGU3dDEiLHN0eWxlczoicGFkZGluZzoxNHB4IDE2cHggMTRweCA4cHg7In07Y29uc3QgVHI9KDAsZi5aUCkoU3QuWix7dGFyZ2V0OiJlejk3MjM4NiJ9KSgicG9zaXRpb246cmVsYXRpdmU7c3Zne21pbi1oZWlnaHQ6MTVweDt9IiwoKHtkaXNwbGF5QXNDb21wYWN0OmV9KT0+ZSYmUHIpLCIgIiwoKHtkaXNwbGF5QXNDb21wYWN0OmUsdGhlbWU6dH0pPT50LmlzTW9iaWxlU2l6ZSYmZSYmU3IpLCIgJjpob3ZlciAiLHlyLmNsYXNzTmFtZSwieyIsKCh7dW5yZWFkOmUsdGhlbWU6dH0pPT4oMCxmLml2KSh7Y29sb3I6ZT9gJHt0LmxpbmtDb2xvcn1gOiJibGFjayJ9KSksIjt9Iix2dC5QLmNsYXNzTmFtZSwiLCIsdnQuUC5jbGFzc05hbWUsIiBpbWd7Y3Vyc29yOnBvaW50ZXI7IiwoKHtkaXNwbGF5QXNDb21wYWN0OmV9KT0+KDAsZi5pdikoe3dpZHRoOihlPzMyOjQwKSsicHgiLGhlaWdodDooZT8zMjo0MCkrInB4In0pKSwiO30iKTt2YXIgWnI9big1MjUwMCk7Y29uc3QgSXI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTJ3ZzFxczAifSkoImZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE5cHg7Zm9udC13ZWlnaHQ6NDAwOyIsKCh7dGhlbWU6ZSxjb2xvcjp0fSk9PnQmJigwLGYuaXYpKCJjb2xvcjoiLGVbdF0sIjtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZ2UuQncpKGVbdF0sLjEzKSwiO2kgc3ZnIHBhdGh7ZmlsbDoiLGVbdF0sIjt9IikpLCIgYm9yZGVyLXJhZGl1czoxNXB4O3BhZGRpbmc6MXB4IDhweCAxcHggNnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2FsaWduLXNlbGY6ZmxleC1zdGFydDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDttYXgtd2lkdGg6MTAwJTtpe2Rpc3BsYXk6aW5saW5lLWZsZXg7fSIpLGpyPSh7Y2hpbGRyZW46ZSxpY29uOnQsY29sb3I6bn0pPT5yLmNyZWF0ZUVsZW1lbnQoSXIse2NvbG9yOm59LHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsdCYmci5jcmVhdGVFbGVtZW50KGxlLlose3R5cGU6dH0pLGUpKTt2YXIgX3I9big2NTUzNiksT3I9big1MTYpO2NvbnN0IEFyPSh7dW5yZWFkOmU9ITEsdGlja2V0OnQsbGFzdE1lc3NhZ2U6bixsYXN0UGFydENyZWF0ZWRBdDppLGFzc2lnbmVlTmFtZTpvLGFzc2lnbmVkQWRtaW5zOmEsb25DbGljazpzLGRpc3BsYXlBc0NvbXBhY3Q6bCx0aWNrZXRzU3BhY2VFbmFibGVkOmMsaG92ZXJCYWNrZ3JvdW5kOmQ9ITAsc2hvd1VucmVhZEJhZGdlOnA9ITB9KT0+e2NvbnN0IHU9ZSYmcD8iVW5yZWFkSW5kaWNhdG9yIjoiUmlnaHRDaGV2cm9uQ29sb3JhYmxlIixtPWUmJnA/dm9pZCAwOiJsaW5rQ29sb3IiO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoVHIseyJkYXRhLXRlc3RpZCI6ImNvbnZlcnNhdGlvbi1saXN0LWl0ZW0iLHVucmVhZDplLGRpc3BsYXlBc0NvbXBhY3Q6bCxzaXplOmw/InRpbnkiOiJkZWZhdWx0IixhbGlnbjoic3RhcnQiLHJpZ2h0SWNvbjp1LHJpZ2h0SWNvbkNvbG9yOmw/ImlucHV0R3JleSI6bSxsZWZ0OmEmJmFbMF0mJigobnVsbD09YT92b2lkIDA6YS5sZW5ndGgpPjE/ci5jcmVhdGVFbGVtZW50KF9yLlose2FkbWluczphfSk6ci5jcmVhdGVFbGVtZW50KFB0Llose2FkbWluOmFbMF0sc2l6ZTpsPzMyOjM2fSkpLGhvdmVyQmFja2dyb3VuZDpkLG9uQ2xpY2s6c30sci5jcmVhdGVFbGVtZW50KGJyLG51bGwsdCYmci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxjP3IuY3JlYXRlRWxlbWVudChFcixudWxsLHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJUaWNrZXRTbWFsbCIsY29sb3I6ImlucHV0R3JleSJ9KSxyLmNyZWF0ZUVsZW1lbnQoa3Ise3VucmVhZDplLHRpY2tldHNTcGFjZUVuYWJsZWQ6Y30sdC5uYW1lKSk6ci5jcmVhdGVFbGVtZW50KGpyLHtjb2xvcjooMCxPci56MikodC5zdGF0dXMpLGljb246IlRpY2tldFNtYWxsIn0sci5jcmVhdGVFbGVtZW50KEVyLG51bGwsci5jcmVhdGVFbGVtZW50KGtyLHt1bnJlYWQ6ZSx0aWNrZXRzU3BhY2VFbmFibGVkOmN9LHQubmFtZSwiICIpLCLigKIgIiwoMCxPci5kZikodC5zdGF0dXMpKSkpLG4mJnIuY3JlYXRlRWxlbWVudCh5cix7dW5yZWFkOmV9LHIuY3JlYXRlRWxlbWVudChybi5aLHt0ZXh0Om59KSksbyYmci5jcmVhdGVFbGVtZW50KENyLG51bGwsci5jcmVhdGVFbGVtZW50KHdyLG51bGwsbyksci5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsIuKAoiAiLGAkeygwLFpyLlZPKShpKX1gKSkpKX0sQnI9KHtjb252ZXJzYXRpb246ZSxhcHBOYW1lOnQsYXBwQWRtaW5zOm4sb25DbGljazppLGRpc3BsYXlBc0NvbXBhY3Q6byxob3ZlckJhY2tncm91bmQ6YSxzaG93VW5yZWFkQmFkZ2U6c30pPT57Y29uc3QgbD0oMCxoLkNHKShOLkQ2KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEFyLHt0aWNrZXQ6ZS50aWNrZXQsYXNzaWduZWVOYW1lOigwLHZyLmRyKSh0LGUpLGFzc2lnbmVkQWRtaW5zOigwLHZyLmRtKShuLGUpLGxhc3RNZXNzYWdlOigwLHZyLkV5KShlKSxsYXN0UGFydENyZWF0ZWRBdDplLmxhc3RQYXJ0Q3JlYXRlZEF0LHVucmVhZDooMCx2ci5GTCkoZSksc2hvd1VucmVhZEJhZGdlOnMsb25DbGljazppLGRpc3BsYXlBc0NvbXBhY3Q6byxob3ZlckJhY2tncm91bmQ6YSx0aWNrZXRzU3BhY2VFbmFibGVkOmx9KX07dmFyIFJyPW4oNzQyNDIpO2NvbnN0IHpyPSgwLGYuWlApKEN0LlouVGl0bGUse3RhcmdldDoiZTE0bnp2Y3kwIn0pKCk7dmFyIE5yPXtuYW1lOiJ2d3F5enoiLHN0eWxlczoiJiZ7cGFkZGluZzowO30ifSxNcj17bmFtZToiNGc2YWkzIixzdHlsZXM6ImN1cnNvcjpwb2ludGVyOyJ9O2NvbnN0IERyPSgwLGYuWlApKEN0Llose3RhcmdldDoiZTE0bnp2Y3kxIn0pKCImOmhvdmVyICIsenIuY2xhc3NOYW1lLCJ7Y29sb3I6IiwoKHt1bnJlYWQ6ZSx0aGVtZTp0fSk9PigwLGYuaXYpKGU/ImJsYWNrIjpgJHt0LmxpbmtDb2xvcn1gKSksIjsiLCgoe3BvaW50ZXI6ZX0pPT5lJiZNciksIn0iLCgoe2Rpc3BsYXlBc0NvbXBhY3Q6ZX0pPT5lJiZOcikpO3ZhciBMcj17bmFtZToiMW01Zzc2ZCIsc3R5bGVzOiImJnttYXJnaW46MDt9In07Y29uc3QgR3I9KDAsZi5aUCkod3QuWlAse3RhcmdldDoiZTE0bnp2Y3kyIn0pKFJyLkhDLmNsYXNzTmFtZSwiOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDotOHB4O30iLCgoe2Rpc3BsYXlBc0NvbXBhY3Q6ZX0pPT5lJiZMcikpLEZyPSh7Y29udmVyc2F0aW9uczplLGFwcE5hbWU6dCxhcHBBZG1pbnM6bixvbkNsaWNrOmksdW5yZWFkOm8sZGlzcGxheUFzQ29tcGFjdDphPSExLHNob3dVbnJlYWRCYWRnZTpzfSk9PnIuY3JlYXRlRWxlbWVudChEcix7dW5yZWFkOm8scG9pbnRlcjohMCxvbkNsaWNrOigpPT57Y29uc3QgdD1lWzBdO2kodC5pZCx0LnRpY2tldCl9LGRpc3BsYXlBc0NvbXBhY3Q6YSxpc0VudGlyZUNhcmRDbGlja2FibGU6IWEsImRhdGEtdGVzdGlkIjoicmVjZW50LWNvbnZlcnNhdGlvbnMifSxhP251bGw6ci5jcmVhdGVFbGVtZW50KHpyLHtub1BhZGRpbmc6ITF9LCgwLHUuSXUpKCJ5b3VyX3JlY2VudF9tZXNzYWdlIikpLHIuY3JlYXRlRWxlbWVudChHcix7ZGlzcGxheUFzQ29tcGFjdDphfSxyLmNyZWF0ZUVsZW1lbnQoQnIse2tleTplWzBdLmlkLGNvbnZlcnNhdGlvbjplWzBdLGFwcE5hbWU6dCxhcHBBZG1pbnM6bixvbkNsaWNrOigpPT57fSxkaXNwbGF5QXNDb21wYWN0OmEsaG92ZXJCYWNrZ3JvdW5kOmEsc2hvd1VucmVhZEJhZGdlOnN9KSkpLHFyPSgpPT57Y29uc3QgZT0oMCxoLlRMKSgpLHQ9KDAsaC5DRykob3QpLG49KDAsaC5DRykoYXQpLGk9KDAsaC5DRykoKGU9PmUuYXBwLm5hbWUpKXx8IiIsbz0oMCxoLkNHKSgoZT0+ZS5hcHAuYWN0aXZlQWRtaW5zKSl8fFtdLGE9KDAsaC5DRykoTi5HMCkscz10Lm1hcCgoZT0+ZS5pZCkpLGw9KDAsaC5DRykoTi5ENik7UnQoe29iamVjdDpBdC5wTSxwbGFjZTpBdC5fdixjb250ZXh0OkF0LllmLG1ldGFkYXRhOntjb252ZXJzYXRpb25faWRzOnN9LHNlbmRNZXRyaWNDb25kaXRpb246KG51bGw9PXQ/dm9pZCAwOnQubGVuZ3RoKT4wfSk7cmV0dXJuIDA9PT0obnVsbD09dD92b2lkIDA6dC5sZW5ndGgpP251bGw6ci5jcmVhdGVFbGVtZW50KEZyLHtjb252ZXJzYXRpb25zOnQsaGFzTW9yZUNvbnZlcnNhdGlvbnM6bixhcHBOYW1lOmksYXBwQWRtaW5zOm8sb25DbGljazoodCxuKT0+eygoZSx0KT0+eygwLE90LldNKSgiY2xpY2tlZCIsImNvbnZlcnNhdGlvbiIsIm1lc3NlbmdlciIsImhvbWUiLHtzdGF0dXM6bnVsbD09dD92b2lkIDA6dC5zdGF0dXMsdGlja2V0X3R5cGVfaWQ6bnVsbD09dD92b2lkIDA6dC50aWNrZXRUeXBlSWQsY29udmVyc2F0aW9uX2lkOmV9KX0pKHQsbiksZSgoMCxmci5jYykoR3QuWlAsdCkpLGUoKDAseHIuYXopKHQpKX0sdW5yZWFkOigwLHZyLkZMKSh0JiZ0WzBdKSxzaG93VW5yZWFkQmFkZ2U6IWwsZGlzcGxheUFzQ29tcGFjdDphfSl9O3ZhciBIcj1uKDYzNTM4KTtjb25zdCBXcj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJldzk5NXk4MCJ9KSgicGFkZGluZzoxNnB4IDIwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2N1cnNvcjpwb2ludGVyOyY6aG92ZXIgaDJ7Y29sb3I6IiwoMCxmLnJTKSgibGlua0NvbG9yIiksIjt9IiksVXI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXc5OTV5ODEifSkoe25hbWU6IjY5aTFldiIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyOyJ9KSxWcj0oMCxmLlpQKSgiaDIiLHt0YXJnZXQ6ImV3OTk1eTgyIn0pKCJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MjFweDtjb2xvcjoiLCgwLGYuclMpKCJtNURhcmtHcmV5MiIpLCI7IiksJHI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXc5OTV5ODMifSkoe25hbWU6IjF1cGlscW4iLHN0eWxlczoibWFyZ2luLWJvdHRvbToxMnB4OyJ9KSxLcj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJldzk5NXk4NCJ9KSgiZm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7Y29sb3I6IiwoMCxmLnJTKSgibTVEYXJrR3JleTIiKSwiOyIpLFlyPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJldzk5NXk4NSJ9KSh7bmFtZToiMzVlemczIixzdHlsZXM6ImZvbnQtd2VpZ2h0OjYwMDsifSksSnI9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXc5OTV5ODYifSkoe25hbWU6IjFiYXVsdnoiLHN0eWxlczoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0pO3ZhciBYcj1uKDczNjE0KSxRcj1uKDI4NzUwKSxlaT1uKDcyNjAxKSx0aT1uKDIyNzA2KTtjb25zdCBuaT0oe3RpdGxlOmUsY2hlY2tsaXN0VGFza3M6dCxjb21wbGV0ZWRUYXNrczpuLGVzdGltYXRlZFRpbWVSZW1haW5pbmc6aSxvbkNsaWNrOm8sbmV4dFN0ZXBUaXRsZTphLGNoZWNrbGlzdFN0YXR1czpzfSk9Pntjb25zdCBsPW4+MD8oMCx1Lkl1KSgiY2hlY2tsaXN0X2NhcmRfbmV4dF9zdGVwIik6KDAsdS5JdSkoImNoZWNrbGlzdF9jYXJkX2ZpcnN0X3N0ZXAiKSxjPXM9PT1laS52RS5OZXc7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChDdC5aLHthczpXcixvbkNsaWNrOm99LHIuY3JlYXRlRWxlbWVudChVcixudWxsLHIuY3JlYXRlRWxlbWVudChWcixudWxsLHIuY3JlYXRlRWxlbWVudChIci5aLHtibG9ja3M6ZX0pKSxyLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZTpjPyJVbnJlYWRJbmRpY2F0b3IiOiJSaWdodENoZXZyb25Db2xvcmFibGUiLGNvbG9yOmM/dm9pZCAwOiJsaW5rQ29sb3IifSkpLHIuY3JlYXRlRWxlbWVudCgkcixudWxsLHIuY3JlYXRlRWxlbWVudChYci5aLHtjaGVja2xpc3RUYXNrczp0LGNvbXBsZXRlZENoZWNrbGlzdFRhc2tzOm4sZXN0aW1hdGVkVGltZVJlbWFpbmluZzppLGNvbmRlbnNlZDohMCxwcmVmaWxsUHJvZ3Jlc3NJZkVtcHR5OiEwfSkpLHIuY3JlYXRlRWxlbWVudChLcixudWxsLHIuY3JlYXRlRWxlbWVudChZcixudWxsLGwsIjogIiksci5jcmVhdGVFbGVtZW50KEpyLG51bGwsci5jcmVhdGVFbGVtZW50KEhyLlose2Jsb2NrczphfSkpKSl9LHJpPSgpPT57Y29uc3QgZT0oMCxoLlRMKSgpLHQ9KDAsaC5DRykoUXIubFEpLG49KDAsdGkudTUpKHQpLGk9KDAsdGkuQ1QpKG4pLG89KDAsdGkuc2opKG4pLGE9KDAsdGkuaTEpKG8pLHM9by5yZWR1Y2UoKChlLHQpPT5lK3QuZXN0aW1hdGVkVGltZSksMCk7cmV0dXJuIHQmJmE/ci5jcmVhdGVFbGVtZW50KG5pLHtjaGVja2xpc3RUYXNrczpuLmxlbmd0aCxjb21wbGV0ZWRUYXNrczppLmxlbmd0aCxlc3RpbWF0ZWRUaW1lUmVtYWluaW5nOnMsbmV4dFN0ZXBUaXRsZTphLnRpdGxlQmxvY2tzLHRpdGxlOnQudGl0bGVCbG9ja3Msb25DbGljazooKT0+e3QmJmUoKDAseHIucWYpKHQuY2hlY2tsaXN0UHJvZ3Jlc3NJZCkpfSxjaGVja2xpc3RTdGF0dXM6dC5zdGF0dXN9KTpudWxsfTt2YXIgaWk9e25hbWU6IjM1ZXpnMyIsc3R5bGVzOiJmb250LXdlaWdodDo2MDA7In07Y29uc3Qgb2k9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFkc2t6MGcwIn0pKCgoe2JvbGQ6ZX0pPT5lJiZpaSkpLGFpPSgwLGYuWlApKCJhIix7dGFyZ2V0OiJlMWRza3owZzEifSkoImN1cnNvcjpwb2ludGVyOyp7Y3Vyc29yOnBvaW50ZXIgIWltcG9ydGFudDt9JiwmOnZpc2l0ZWR7Y29sb3I6IiwoMCxmLnJTKSgiYmxhY2siKSwiO30mOmhvdmVyICIsb2kuY2xhc3NOYW1lLCJ7Y29sb3I6IiwoMCxmLnJTKSgibGlua0NvbG9yIiksIjt9Iiksc2k9KHtsaW5rOmV9KT0+ci5jcmVhdGVFbGVtZW50KGFpLHtocmVmOmUuaHJlZix0YXJnZXQ6Il9ibGFuayJ9LHIuY3JlYXRlRWxlbWVudCh1cix7bGVmdDpyLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZToiRXh0ZXJuYWxMaW5rIixjb2xvcjoibGlua0NvbG9yIixzaXplOjE2fSl9LHIuY3JlYXRlRWxlbWVudChvaSxudWxsLGUubGFiZWwpKSksbGk9KHtib2xkTGFiZWw6ZSxsaW5rczp0LGxpbmtTaXplOm4sbGlzdFBhZGRpbmc6aX0pPT57Y29uc3Qgbz10Lmxlbmd0aD4wO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQ3QuWix7bm9QYWRkaW5nOiEwLGlzRW50aXJlQ2FyZENsaWNrYWJsZTohb30sci5jcmVhdGVFbGVtZW50KHd0LlpQLHtwYWRkaW5nOml9LHQubWFwKCgodCxpKT0+ci5jcmVhdGVFbGVtZW50KGFpLHtrZXk6aSxocmVmOnQuaHJlZix0YXJnZXQ6Il9ibGFuayJ9LHIuY3JlYXRlRWxlbWVudChTdC5aLHtzaXplOm4scm91bmRlZDohMCxob3ZlckJhY2tncm91bmQ6byxyaWdodEljb246IkV4dGVybmFsTGluayIscmlnaHRJY29uQ29sb3I6ImxpbmtDb2xvciJ9LHIuY3JlYXRlRWxlbWVudChvaSx7Ym9sZDplLCJkYXRhLXRlc3RpZCI6ImxpbmstbGFiZWwifSx0LmxhYmVsKSx0LnN1YkxhYmVsJiZyLmNyZWF0ZUVsZW1lbnQob2kseyJkYXRhLXRlc3RpZCI6Imxpbmstc3VibGFiZWwifSx0LnN1YkxhYmVsKSkpKSkpKX07bGkuZGVmYXVsdFByb3BzPXtib2xkTGFiZWw6ITEsbGlua1NpemU6InRpbnkiLGxpc3RQYWRkaW5nOjh9O2NvbnN0IGNpPWxpO3ZhciBkaT1uKDIzMjc5KSxwaT1uLm4oZGkpLHVpPW4oMTYzMTUpO2NvbnN0IG1pPTEwMCxoaT1hc3luYygpPT4oMCx1aS5feCkoKT9SZXNpemVPYnNlcnZlcjphd2FpdCBuLmUoMTIxNikudGhlbihuLnQuYmluZChuLDMyMDE4LDIzKSkudGhlbigoZT0+ZS5kZWZhdWx0KSk7ZnVuY3Rpb24gZ2koKXtjb25zdCBlPSgwLHIudXNlUmVmKShudWxsKSxbdCxuXT0oMCxyLnVzZVN0YXRlKSghMSksaT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9Pntjb25zdCB0PWUuY3VycmVudDtpZih0KXtjb25zdCBlPXQuc2Nyb2xsSGVpZ2h0PnQuY2xpZW50SGVpZ2h0O24oZSl9fSksW2VdKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG49bWkpe2NvbnN0IGk9KDAsci51c2VSZWYpKG51bGwpOygwLHIudXNlRWZmZWN0KSgoKCk9PnsoYXN5bmMoKT0+e2NvbnN0IGU9YXdhaXQgaGkoKTtpLmN1cnJlbnQ9bmV3IGUocGkoKSh0LG4pKX0pKCl9KSxbaSx0LG5dKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57dmFyIHQ7aWYoZSlyZXR1cm4gbnVsbD09aXx8bnVsbD09PSh0PWkuY3VycmVudCl8fHZvaWQgMD09PXR8fHQub2JzZXJ2ZShlKSwoKT0+e3ZhciBlO3JldHVybiBudWxsPT1pfHxudWxsPT09KGU9aS5jdXJyZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5kaXNjb25uZWN0KCl9fSksW2ksZV0pfShlLmN1cnJlbnQsaSkse3Njcm9sbGJhclZpc2libGU6dCxyZWY6ZSxoYW5kbGVSZXNpemU6aX19dmFyIGZpPW4oMzg3NjgpO2Z1bmN0aW9uIHhpKCl7Y29uc3QgZT0oMCxoLlRMKSgpLHQ9KDAsci51c2VDYWxsYmFjaykoKCgpPT5lKCgwLGZpLmlnKSgpKSksW2VdKSxuPSgwLGguQ0cpKHouYTUpLHtzbG90czppLGlzRmV0Y2hlZDpvLGlzRmFpbGVkOmF9PSgwLGguQ0cpKGh0KTtyZXR1cm57ZmV0Y2hIb21lQ29udGVudDp0LHNsb3RzOmksaXNGZXRjaGVkOm8mJm4saXNGYWlsZWQ6YX19Y29uc3Qgdmk9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ3eW00MCJ9KSh7bmFtZToiajdxd2pzIixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47In0pLHlpPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkN3ltNDEifSkoIm1heC13aWR0aDoyNTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC13ZWlnaHQ6IiwoZT0+ZS51bnJlYWQ/NjAwOjQwMCksIjsiKSxiaT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDd5bTQyIn0pKCJjb2xvcjoiLCgwLGYuclMpKCJpbnB1dEdyZXkiKSwiOyIpLEVpPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkN3ltNDMifSkoIm1hcmdpbjowIGF1dG87Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjsiLCgoe3RoZW1lOmUsY29sb3I6dH0pPT50JiYoMCxmLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLCgwLGdlLkJ3KShlW3RdLC4xMyksIjsiKSkpO3ZhciBraT17bmFtZToiMWpoczUxMSIsc3R5bGVzOiJwYWRkaW5nLXRvcDo2cHg7cGFkZGluZy1ib3R0b206NnB4OyJ9O2NvbnN0IENpPSgwLGYuWlApKFN0Llose3RhcmdldDoiZWQ3eW00NCJ9KSgiJjpob3ZlciAiLHZpLmNsYXNzTmFtZSwie2NvbG9yOiIsKDAsZi5yUykoImJsYWNrIiksIjt9IiwoKHtob21lU2NyZWVuOmV9KT0+ZSYma2kpKSx3aT1bInVucmVhZCIsInRpdGxlIiwicHVibGljVGlja2V0SWQiLCJ0eXBlTmFtZSIsInN0YXR1cyIsIm9uQ2xpY2siLCJob21lU2NyZWVuIl07ZnVuY3Rpb24gU2koKXtyZXR1cm4gU2k9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxTaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUGkoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHwoaVtuXT1lW25dKTtyZXR1cm4gaX0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWNvbnN0IFRpPWU9PntsZXR7dW5yZWFkOnQ9ITEsdGl0bGU6bixwdWJsaWNUaWNrZXRJZDppLHR5cGVOYW1lOm8sc3RhdHVzOmEsb25DbGljazpzLGhvbWVTY3JlZW46bD0hMX09ZSxjPVBpKGUsd2kpO2NvbnN0IGQ9dCYmIWw/IlVucmVhZEluZGljYXRvciI6IlJpZ2h0Q2hldnJvbkNvbG9yYWJsZSIscD10JiYhbD92b2lkIDA6ImxpbmtDb2xvciIsdT1ufHxvLG09aT9gIyR7aX0g4oCiICR7KDAsT3IuZGYpKGEpfWA6KDAsT3IuZGYpKGEpLGg9KDAsT3IuejIpKGEpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQ2ksU2koeyJkYXRhLXRlc3RpZCI6InRpY2tldC1saXN0LWl0ZW0iLGxlZnQ6ci5jcmVhdGVFbGVtZW50KEVpLHtjb2xvcjpofSxyLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZTooMCxPci5YTykoYSksY29sb3I6aH0pKSxyaWdodEljb246ZCxyaWdodEljb25Db2xvcjpwLG9uQ2xpY2s6cyxob3ZlckJhY2tncm91bmQ6ITAsaG9tZVNjcmVlbjpsfSxjKSxyLmNyZWF0ZUVsZW1lbnQodmksbnVsbCxyLmNyZWF0ZUVsZW1lbnQoeWkse3VucmVhZDp0fSx1KSxyLmNyZWF0ZUVsZW1lbnQoYmksbnVsbCxtKSkpfTt2YXIgWmk9bigyNjEzNCk7Y29uc3QgSWk9KDAsZi5aUCkoQ3QuWi5UaXRsZSx7dGFyZ2V0OiJlMXJzM2tzdTAifSkoe25hbWU6IjFnZG03N2QiLHN0eWxlczoicGFkZGluZy1ib3R0b206NnB4OyJ9KSxqaT0oMCxmLlpQKShDdC5aLHt0YXJnZXQ6ImUxcnMza3N1MSJ9KSh7bmFtZToiMXB1YnY3byIsc3R5bGVzOiJwYWRkaW5nLWJvdHRvbToyNnB4OyJ9KSxfaT0oe3VucmVzb2x2ZWRUaWNrZXRzOmUsaGFuZGxlVGlja2V0Q2xpY2s6dCxzaG91bGRTaG93SG9tZXNjcmVlbkNhcmQ6bn0pPT57Y29uc3QgaT1lLmxlbmd0aD4xPygwLHUuSXUpKCJyZWNlbnRfdGlja2V0cyIpOigwLHUuSXUpKCJyZWNlbnRfdGlja2V0Iik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsbj9yLmNyZWF0ZUVsZW1lbnQoamkseyJkYXRhLXRlc3RpZCI6InJlY2VudC10aWNrZXRzIn0sci5jcmVhdGVFbGVtZW50KElpLG51bGwsaSksci5jcmVhdGVFbGVtZW50KHd0LlpQLHtub0RpdmlkZXI6ITB9LGUubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQoVGkse2tleTplLmlkLHRpdGxlOmUubmFtZSxwdWJsaWNUaWNrZXRJZDplLnB1YmxpY1RpY2tldElkLHR5cGVOYW1lOmUudGlja2V0VHlwZU5hbWUsc3RhdHVzOmUuc3RhdHVzLHVucmVhZDohMT09PWUucmVhZCxvbkNsaWNrOigpPT50KGUuaWQpLGhvbWVTY3JlZW46ITB9KSkpKSk6bnVsbCl9LE9pPSgpPT57Y29uc3QgZT0oMCxILnVzZU5hdmlnYXRlKSgpLHQ9KDAsaC5DRykoWmkuUU4pLG49KDAsaC5DRykoTi5ENikmJnQmJnQubGVuZ3RoPjA7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChfaSx7dW5yZXNvbHZlZFRpY2tldHM6dCxoYW5kbGVUaWNrZXRDbGljazp0PT57ZShgL3RpY2tldHMvZGV0YWlscy8ke3R9YCx7c3RhdGU6e25hdmlnYXRpbmdGcm9tOkF0LmRmfX0pfSxzaG91bGRTaG93SG9tZXNjcmVlbkNhcmQ6bn0pfSxBaT0oMCxmLlpQKShDdC5aLHt0YXJnZXQ6ImVraXVyZmgwIn0pKHtuYW1lOiIxcHVidjdvIixzdHlsZXM6InBhZGRpbmctYm90dG9tOjI2cHg7In0pLEJpPSgwLGYuWlApKEN0LlouVGl0bGUse3RhcmdldDoiZWtpdXJmaDEifSkoe25hbWU6IjFnZG03N2QiLHN0eWxlczoicGFkZGluZy1ib3R0b206NnB4OyJ9KSxSaT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJla2l1cmZoMiJ9KSh7bmFtZToiOWpheTE4IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47In0pLHppPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVraXVyZmgzIn0pKHtuYW1lOiJnYXVnczYiLHN0eWxlczoibWF4LXdpZHRoOjI1MHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7In0pLE5pPSgwLGYuWlApKFN0Llose3RhcmdldDoiZWtpdXJmaDQifSkoe25hbWU6IjFqaHM1MTEiLHN0eWxlczoicGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweDsifSk7dmFyIE1pPW4oMzM4OCksRGk9bigyOTI1OCk7Y29uc3QgTGk9e2FwcDoiQXBwIixhY3Rpdml0eToiQWN0aXZpdHkiLGJvdW5jZWQ6IkJvdW5jZWQiLCJidXR0b24tcGlsbCI6IkJ1dHRvblBpbGwiLCJjbGljay1lbGVtZW50IjoiQ2xpY2tFbGVtZW50Iixjb21wYW55OiJDb21wYW55IiwiY29udGFjdC1ib29rIjoiQ29udGFjdEJvb2siLGNvdXBvbjoiQ291cG9uIixjcmVkaXRjYXJkOiJDcmVkaXRDYXJkIiwiZW1haWwtZmlsbGVkIjoiRW1haWxGaWxsZWQiLGV2ZW50OiJFdmVudCIsImxhcmdlLXJpZ2h0LWFycm93IjoiTGFyZ2VSaWdodEFycm93IixpbnNpZ2h0czoiSW5zaWdodHMiLGxvY2tlZDoiTG9ja2VkIixwaG9uZToiUGhvbmUiLHBlcnNvbjoiUGVyc29uVHlwZSIsd3JlbmNoOiJXcmVuY2giLCJzbGlwcGluZy1hd2F5IjoiU2xpcHBpbmdBd2F5IixzdGFyczoiU3RhcnMifSxHaT0oe2xpbms6ZX0pPT57Y29uc3R7c2hvd0NyZWF0ZVRpY2tldDp0fT0oMCxNaS5aKSgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQodXIse29uQ2xpY2s6KCk9PntyZXR1cm4gbj1lLnRpY2tldF90eXBlX2lkLCgwLE90LldNKSgiY2xpY2tlZCIsInRpY2tldGxpbmsiLCJtZXNzZW5nZXIiLCJob21lIix7dGlja2V0X3R5cGVfaWQ6bn0pLHZvaWQgdChuLCJjb252ZXJzYXRpb24iKTt2YXIgbn0sbGVmdDpyLmNyZWF0ZUVsZW1lbnQoRGkuSk8se3R5cGU6TGlbZS5pY29uXSxjb2xvcjoibGlua0NvbG9yIixzaXplOjE2fSl9LGUudGlja2V0X3R5cGVfbmFtZSl9LEZpPSh7dGlja2V0TGlua3M6ZX0pPT57Y29uc3R7c2hvd0NyZWF0ZVRpY2tldDp0fT0oMCxNaS5aKSgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQWksbnVsbCxyLmNyZWF0ZUVsZW1lbnQoQmksbnVsbCwiQ3JlYXRlIGEgdGlja2V0Iiksci5jcmVhdGVFbGVtZW50KHd0LlpQLHtub0RpdmlkZXI6ITB9LGUubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQoTmkse2tleTplLnRpY2tldF90eXBlX2lkLG9uQ2xpY2s6KCk9PntyZXR1cm4gbj1lLnRpY2tldF90eXBlX2lkLCgwLE90LldNKSgiY2xpY2tlZCIsInRpY2tldF9saW5rIiwibWVzc2VuZ2VyIiwiaG9tZSIse3RpY2tldF90eXBlX2lkOm59KSx2b2lkIHQobiwiY29udmVyc2F0aW9uIik7dmFyIG59fSxyLmNyZWF0ZUVsZW1lbnQoUmksbnVsbCxyLmNyZWF0ZUVsZW1lbnQoemksbnVsbCxlLnRpY2tldF90eXBlX25hbWUpLHIuY3JlYXRlRWxlbWVudChEaS5KTyx7dHlwZTpMaVtlLmljb25dLGNvbG9yOiJsaW5rQ29sb3IiLHNpemU6MjR9KSkpKSkpKX0scWk9KCk9PnIuY3JlYXRlRWxlbWVudChXZSxudWxsLHIuY3JlYXRlRWxlbWVudChZdC5aLG51bGwpKSxIaT0oe2xvZ29Vcmw6ZSxzaG93QXZhdGFyczp0LHNsb3RzOm4sYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWQ6aSxpc0ZldGNoZWQ6byxpc0ZhaWxlZDphLG9uUmV0cnk6cyxvblNjcm9sbDpsLG9uSGVhZGVySGVpZ2h0Q2hhbmdlOmMsaGVhZGVyT3BhY2l0eTpkLGNsb3NlQnV0dG9uT3BhY2l0eTpwLGJhY2tncm91bmQ6dSx0ZXh0Q29sb3JUeXBlOm0sc2hvd0Nsb3NlQnV0dG9uOmgsdGl0bGU6ZyxzdWJ0aXRsZTpmfSk9Pntjb25zdHtzY3JvbGxiYXJWaXNpYmxlOngscmVmOnYsaGFuZGxlUmVzaXplOnl9PWdpKCk7KDAsci51c2VFZmZlY3QpKCgoKT0+e3koKX0pLFt5LG5dKTtjb25zdHtpc1NlY29uZGFyeUNvbG9yTGlnaHQ6Yn09KDAsQ2UuWikoKTtyZXR1cm4gb3x8YT9yLmNyZWF0ZUVsZW1lbnQocWUse3JlZjp2LGNsYXNzTmFtZToiaW50ZXJjb20taG9tZS1zY3JlZW4iLG9uU2Nyb2xsOmU9PntsZXQgdD0wO2UuY3VycmVudFRhcmdldCYmKHQ9ZS5jdXJyZW50VGFyZ2V0LnNjcm9sbFRvcCksbChNYXRoLm1heCgwLHQpKX19LHIuY3JlYXRlRWxlbWVudChWZSx7aXNJbnRlcmNvbUxpbmtFbmFibGVkOiEwfSxyLmNyZWF0ZUVsZW1lbnQoSy5aLHtvbkhlaWdodENoYW5nZTpjfSxyLmNyZWF0ZUVsZW1lbnQoam4se3RpdGxlOmcsc3VidGl0bGU6Zixsb2dvOmUsc2hvd0F2YXRhcnM6dCxvcGFjaXR5OmQsYmFja2dyb3VuZDp1LHRleHRDb2xvclR5cGU6bSxjbG9zZUJ1dHRvbkVuYWJsZWQ6aCxzY3JvbGxiYXJWaXNpYmxlOnh9KSksci5jcmVhdGVFbGVtZW50KEhlLHtob21lQmFja2dyb3VuZFR5cGU6bnVsbCE9dSYmdS5mYWRlVG9XaGl0ZT9udWxsPT11P3ZvaWQgMDp1LnR5cGU6bnVsbH0sbi5tYXAoKChlLHQpPT57c3dpdGNoKGUudHlwZSl7Y2FzZSJyZWNlbnRfY29udmVyc2F0aW9uIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KHFyLHtrZXk6InJlY2VudC1jb252ZXJzYXRpb24tY2FyZCJ9KTtjYXNlInJlY2VudF90aWNrZXRzIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KE9pLHtrZXk6InJlY2VudC10aWNrZXRzIn0pO2Nhc2UidGlja2V0X2xpbmtzIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KEZpLHt0aWNrZXRMaW5rczplLmxpbmtzfSk7Y2FzZSJuZXdfY29udmVyc2F0aW9uIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KGdyLHtrZXk6ImNvbnZlcnNhdGlvbi1jYXJkIn0pO2Nhc2UiaGVscF9jZW50ZXIiOnJldHVybiByLmNyZWF0ZUVsZW1lbnQoS3Qse2luZGV4OnQsa2V5OiJoZWxwLWNhcmQifSk7Y2FzZSJuZXdzX2l0ZW1zIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KFFuLHtrZXk6Im5ld3MtaXRlbXMifSk7Y2FzZSJjaGVja2xpc3RzIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KHJpLHtrZXk6ImNoZWNrbGlzdHMifSk7Y2FzZSJtZXNzZW5nZXJfYXBwIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KEhvbWVTY3JlZW5NZXNzZW5nZXJDYXJkLHtrZXk6Im1lc3Nlbmdlci1hcHAtIit0LGNhcmRVcmk6ZS51cmksaW5kZXg6dCxpc0ZldGNoZWQ6ITAsZnJhbWVXaW5kb3c6d2luZG93fSk7Y2FzZSJleHRlcm5hbF9saW5rcyI6cmV0dXJuIHIuY3JlYXRlRWxlbWVudChjaSx7a2V5OmBleHRlcm5hbC1saW5rcy0ke3R9YCxsaW5rczplLmxpbmtzfSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KSksci5jcmVhdGVFbGVtZW50KGVuLHt2aXNpYmxlOmEsb25SZXRyeTpzfSkpLHIuY3JlYXRlRWxlbWVudCh2ZSx7cGFyYWxsYXhPcGFjaXR5OnAsb25XaGl0ZUJhY2tncm91bmQ6YixyaWdodE1hcmdpbjo4LGZpeGVkOiEwfSkpKTpyLmNyZWF0ZUVsZW1lbnQocWksbnVsbCl9LFdpPSgpPT57Y29uc3RbZSx0XT0oMCxyLnVzZVN0YXRlKSgxKSxbbixpXT0oMCxyLnVzZVN0YXRlKSgxKSxvPSgwLGguQ0cpKGV0KSx7ZmV0Y2hIb21lQ29udGVudDphLHNsb3RzOnMsaXNGZXRjaGVkOmwsaXNGYWlsZWQ6Y309eGkoKSxkPSgwLGguVEwpKCkscD0oMCxoLkNHKShoZSk7KDAsci51c2VFZmZlY3QpKCgoKT0+e2EoKX0pLFthXSk7Y29uc3R7bG9nb1VybDp1LHNob3dBdmF0YXJzOm0sZ3JlZXRpbmc6ZyxpbnRyb2R1Y3Rpb246Zix0ZXh0Q29sb3JUeXBlOnh9PSgwLGguQ0cpKFFlKSx2PSgwLGguQ0cpKHouRFgpLHk9KChlLHQpPT4xLU1hdGgubWluKE1hdGguYWJzKGUvKHQtMTAwKSksMSkpKGUsbik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChIaSx7c2xvdHM6cyx0aXRsZTpudWxsPT1nP3ZvaWQgMDpnLmNvbnRlbnQsc3VidGl0bGU6bnVsbD09Zj92b2lkIDA6Zi5jb250ZW50LGxvZ29Vcmw6dSxzaG93QXZhdGFyczptLGFjY2Vzc1RvVGVhbW1hdGVFbmFibGVkOnYsaXNGZXRjaGVkOmwsaXNGYWlsZWQ6YyxvblJldHJ5OmEsb25TY3JvbGw6ZT0+e3QoZSl9LG9uSGVhZGVySGVpZ2h0Q2hhbmdlOmU9PntpKGUpLGQoKDAsJC5RXykoenQueTcuaWQsZSkpfSxoZWFkZXJPcGFjaXR5OnksY2xvc2VCdXR0b25PcGFjaXR5OnksYmFja2dyb3VuZDpvLHRleHRDb2xvclR5cGU6eCxzaG93Q2xvc2VCdXR0b246cH0pfTt2YXIgVWk9bigxMzk0MSksVmk9big1Mjk0NSk7Y29uc3QgJGk9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTJ0c3duNzAifSkoe25hbWU6IjFjeXNleHMiLHN0eWxlczoidGV4dC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjozMnB4IDE2cHggMTZweDthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7In0pLEtpPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUydHN3bjcxIn0pKCJ3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IiwoMCxmLnJTKSgibGlnaHRHcmV5NSIpLCI7dGV4dC1hbGlnbjpjZW50ZXI7IixWaS5LLmNsYXNzTmFtZSwie21hcmdpbi10b3A6MTBweDt9c3Zne3dpZHRoOjIxO2hlaWdodDoyMTtwYXRoe2ZpbGw6IiwoMCxmLnJTKSgiaW5zdGFsbEdyZXkxIiksIjt9fSIpLFlpPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUydHN3bjcyIn0pKCJkaXNwbGF5OmZsZXg7Y29sb3I6IiwoMCxmLnJTKSgiZ3JleSIpLCI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIwcHg7Iik7dmFyIEppPW4oMjE3MTMpO2Z1bmN0aW9uIFhpKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgkaSxudWxsLHIuY3JlYXRlRWxlbWVudChLaSxudWxsLHIuY3JlYXRlRWxlbWVudChKaS5aLG51bGwpKSxyLmNyZWF0ZUVsZW1lbnQoWWksbnVsbCxgJHsoMCx1Lkl1KSgieW91X2FyZV9hbGxfdXBfdG9fZGF0ZSIpfWApKX1jb25zdCBRaT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlaGVuM2dyMCJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtaGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OiIsKDAseC5XNSkoMyksIjtvdmVyZmxvdzpoaWRkZW47IiksZW89KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWhlbjNncjEifSkoe25hbWU6Ino5OW12dyIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjE7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjsifSksdG89KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWhlbjNncjIifSkoe25hbWU6InludGh2ZSIsc3R5bGVzOiJtYXJnaW4tYm90dG9tOjYycHg7In0pLG5vPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVoZW4zZ3IzIn0pKCJwYWRkaW5nOjE2cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW47IixCbi5jbGFzc05hbWUsInttYXJnaW4tdG9wOjEycHg7fSIpLHJvPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVoZW4zZ3I0In0pKHtuYW1lOiJpY3dnYm8iLHN0eWxlczoiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctdG9wOjIwcHg7In0pO3ZhciBpbz1uKDc5MzUpO2NvbnN0IG9vPShlLHQsbik9Pntjb25zdCByPWUudGFyZ2V0O3Qoci5zY3JvbGxUb3A+MCksbihyLnNjcm9sbEhlaWdodC1yLnNjcm9sbFRvcCE9PXIuY2xpZW50SGVpZ2h0KX07ZnVuY3Rpb24gYW8oZSl7Y29uc3R7Y2hpbGRyZW46dCxoaWRlQm9yZGVyOm59PWUsW2ksb109ci51c2VTdGF0ZSghMSksW2Esc109ci51c2VTdGF0ZSghMSksW2wsY109ci51c2VTdGF0ZSghMCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChpby5rNix7aGlkZUJvcmRlcjpufHxpJiZhfSxyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46aSYmYSxjbGFzc05hbWVzOiJpbnRlcmNvbS1kcm9wLXNoYWRvdy1mYWRlIix0aW1lb3V0OjE1MCx1bm1vdW50T25FeGl0OiEwfSxyLmNyZWF0ZUVsZW1lbnQoaW8uazgsbnVsbCkpLHIuY3JlYXRlRWxlbWVudChVaS5aLHtpc0luc2lkZU1vZGFsOiExLGZsZXg6ITAsZHluYW1pY0NoaWxkcmVuSGVpZ2h0OiEwLG9uU2Nyb2xsYWJsZTooZSx0KT0+byh0KSxvblNjcm9sbDplPT5vbyhlLHMsYyl9LHQpLHIuY3JlYXRlRWxlbWVudChpby5qdyx7aGlkZUJvdHRvbVNoYWRvdzohbH0pKX1mdW5jdGlvbiBzbygpe2NvbnN0IGU9KDAsaC5DRykoJG4ubHApLHQ9KDAsaC5DRykoJG4uTE8pLG49KDAsaC5UTCkoKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57dCYmKGV8fG4oKDAsWW4uQmIpKCkpKX0pLFtuLHQsZV0pfWNvbnN0IGxvPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxN3liM3dkMCJ9KSh7bmFtZToiN3M5d3k2IixzdHlsZXM6Im1hcmdpbjoxNnB4IDIwcHggMHB4IDIwcHg7ZGlzcGxheTpmbGV4OyJ9KSxjbz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTd5YjN3ZDEifSkoe25hbWU6IjFvbjFvYjkiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjE7aDJ7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7fXN1Yntmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDt9In0pO2Z1bmN0aW9uIHBvKCl7Y29uc3QgZT0oMCxoLkNHKSgoZT0+ZS5hcHAubmFtZSkpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobG8sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoY28sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCgwLHUuSXUpKCJuZXdzX2xhdGVzdF90aXRsZSIpKSxyLmNyZWF0ZUVsZW1lbnQoInN1YiIsbnVsbCwoMCx1Lkl1KSgibmV3c19sYXRlc3Rfc3VidGl0bGUiLHt0ZWFtX25hbWU6ZXx8IiJ9KSkpLHIuY3JlYXRlRWxlbWVudChfdCx7c2hvd1Rvb2x0aXA6ITAsYXZhdGFyU2l6ZTozNixhdmF0YXJQaXhlbHNUb1Nob3c6MzAsbWF4QWRtaW5zOjN9KSl9dmFyIHVvLG1vLGhvO2Z1bmN0aW9uIGdvKCl7cmV0dXJuIGdvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sZ28uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGZvKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInN2ZyIsZ28oe3dpZHRoOjMyLGhlaWdodDozMixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxlKSx1b3x8KHVvPXIuY3JlYXRlRWxlbWVudCgibWFzayIse2lkOiJuZXdzLWxhcmdlX3N2Z19fYSIsZmlsbDoiI2ZmZiJ9LHIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTEzLjQwMyAxOC42NjdhLjczNi43MzYgMCAwMC0uNzM2LjczNnY3LjU3M2EzLjAyNCAzLjAyNCAwIDAxLTUuOTQxLjc5NmwtMi4yMzctOC4yYy0uMjQzLS44OTMtLjkxMS0xLjU5LTEuNjY3LTIuMTI1QTYuNjY3IDYuNjY3IDAgMDE2LjY2NiA1LjMzM2g3LjYxOGExIDEgMCAwMC41NS0uMTY1TDIwLjYgMS4zNjRhMS4zMzMgMS4zMzMgMCAwMTIuMDY4IDEuMTEzdjE5LjY4YTEuMzMzIDEuMzMzIDAgMDEtMi4wNjggMS4xMTNsLTYuNzkxLTQuNDgyYS43MzYuNzM2IDAgMDAtLjQwNS0uMTIxem0xMi44ODktLjU2N2EuODUuODUgMCAwMDEuMjY4IDEuMTMzQTEwLjgyNSAxMC44MjUgMCAwMDMwLjMxOCAxMmMwLTIuNzc3LTEuMDQzLTUuMzEzLTIuNzU4LTcuMjMzQS44NS44NSAwIDAwMjYuMjkyIDUuOWE5LjEyNCA5LjEyNCAwIDAxMi4zMjYgNi4xYzAgMi4zNDQtLjg3OSA0LjQ4LTIuMzI2IDYuMXoifSkpKSxtb3x8KG1vPXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTEzLjQwMyAxOC42NjdhLjczNi43MzYgMCAwMC0uNzM2LjczNnY3LjU3M2EzLjAyNCAzLjAyNCAwIDAxLTUuOTQxLjc5NmwtMi4yMzctOC4yYy0uMjQzLS44OTMtLjkxMS0xLjU5LTEuNjY3LTIuMTI1QTYuNjY3IDYuNjY3IDAgMDE2LjY2NiA1LjMzM2g3LjYxOGExIDEgMCAwMC41NS0uMTY1TDIwLjYgMS4zNjRhMS4zMzMgMS4zMzMgMCAwMTIuMDY4IDEuMTEzdjE5LjY4YTEuMzMzIDEuMzMzIDAgMDEtMi4wNjggMS4xMTNsLTYuNzkxLTQuNDgyYS43MzYuNzM2IDAgMDAtLjQwNS0uMTIxem0xMi44ODktLjU2N2EuODUuODUgMCAwMDEuMjY4IDEuMTMzQTEwLjgyNSAxMC44MjUgMCAwMDMwLjMxOCAxMmMwLTIuNzc3LTEuMDQzLTUuMzEzLTIuNzU4LTcuMjMzQS44NS44NSAwIDAwMjYuMjkyIDUuOWE5LjEyNCA5LjEyNCAwIDAxMi4zMjYgNi4xYzAgMi4zNDQtLjg3OSA0LjQ4LTIuMzI2IDYuMXoiLGZpbGw6IiMyMjIifSkpLGhvfHwoaG89ci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTYuNzI2IDI3Ljc3MmwxLjY0LS40NDgtMS42NC40NDh6bS0yLjIzNy04LjJsMS42NC0uNDQ4LTEuNjQuNDQ3em0tMS42NjctMi4xMjVsLjk4Mi0xLjM4OC0uOTgyIDEuMzg4ek0xNC44MzQgNS4xNjhsLS45MzYtMS40MTkuOTM2IDEuNDJ6TTIwLjYgMS4zNjRsLS45MzYtMS40MTguOTM2IDEuNDE4em0wIDIxLjkwNWwuOTM2LTEuNDE4LS45MzYgMS40MTl6bS02Ljc5MS00LjQ4bC0uOTM2IDEuNDE4LjkzNi0xLjQxOXptMTIuNTUyLjUxMmwxLjEzMi0xLjI2OC0xLjEzMyAxLjI2OHptLS4wNjgtMS4ybC0xLjI2OC0xLjEzMyAxLjI2OCAxLjEzM3ptMS4yNjggMS4xMzJMMjYuMjkyIDE4LjFsMS4yNjggMS4xMzN6bTAtMTQuNDY2bDEuMjY4LTEuMTMyLTEuMjY4IDEuMTMyem0tMS4yLS4wNjhsMS4xMzIgMS4yNjhMMjYuMzU5IDQuN3ptLS4wNjggMS4ybC0xLjI2OCAxLjEzM0wyNi4yOTIgNS45ek0xNC4zNjcgMTkuNDA0YS45NjQuOTY0IDAgMDEtLjk2NC45NjR2LTMuNGEyLjQzNiAyLjQzNiAwIDAwLTIuNDM2IDIuNDM2aDMuNHptMCA3LjU3M3YtNy41NzNoLTMuNHY3LjU3M2gzLjR6TTkuNjQzIDMxLjdhNC43MjQgNC43MjQgMCAwMDQuNzI0LTQuNzI0aC0zLjRjMCAuNzMxLS41OTMgMS4zMjQtMS4zMjQgMS4zMjR2My40em0tNC41NTctMy40ODFhNC43MjQgNC43MjQgMCAwMDQuNTU3IDMuNDh2LTMuNGMtLjU5NyAwLTEuMTItLjM5OS0xLjI3Ny0uOTc1bC0zLjI4Ljg5NXptLTIuMjM3LTguMmwyLjIzNyA4LjIgMy4yOC0uODk1LTIuMjM3LTguMi0zLjI4Ljg5NXptLTEuMDA4LTEuMTgzYy42MS40My45MTQuODM2IDEuMDA4IDEuMTgzbDMuMjgtLjg5NWMtLjM5Mi0xLjQ0LTEuNDI0LTIuNDI3LTIuMzI1LTMuMDY1TDEuODQgMTguODM1ek0tMS43IDEyYTguMzU5IDguMzU5IDAgMDAzLjU0IDYuODM1bDEuOTY0LTIuNzc2QTQuOTU5IDQuOTU5IDAgMDExLjcgMTJoLTMuNHptOC4zNjctOC4zNjZBOC4zNjcgOC4zNjcgMCAwMC0xLjcgMTJoMy40YTQuOTY3IDQuOTY3IDAgMDE0Ljk2Ny00Ljk2NnYtMy40em03LjYxNyAwSDYuNjY3djMuNGg3LjYxN3YtMy40em0tLjM4Ni4xMTVhLjcuNyAwIDAxLjM4Ni0uMTE1djMuNGEyLjcgMi43IDAgMDAxLjQ4Ny0uNDQ3TDEzLjg5OCAzLjc1em01Ljc2NS0zLjgwM2wtNS43NjUgMy44MDMgMS44NzMgMi44MzggNS43NjQtMy44MDQtMS44NzItMi44Mzd6bTQuNzA0IDIuNTMxYzAtMi40MTYtMi42ODgtMy44NjItNC43MDQtMi41MzFsMS44NzIgMi44MzdhLjM2Ny4zNjcgMCAwMS0uNTY4LS4zMDZoMy40em0wIDE5LjY4VjIuNDc3aC0zLjR2MTkuNjhoMy40em0tNC43MDQgMi41MzJjMi4wMTcgMS4zMyA0LjcwNC0uMTE2IDQuNzA0LTIuNTMyaC0zLjRjMC0uMjkzLjMyNS0uNDY3LjU2OC0uMzA2bC0xLjg3MiAyLjgzOHptLTYuNzkxLTQuNDgybDYuNzkgNC40ODIgMS44NzMtMi44MzgtNi43OS00LjQ4MS0xLjg3MyAyLjgzN3ptLjUzLjE2YS45NjUuOTY1IDAgMDEtLjUzLS4xNmwxLjg3Mi0yLjgzN2EyLjQzNSAyLjQzNSAwIDAwLTEuMzQxLS40MDN2My40em0xNC4wOS0yLjMzNGMuMzUuMzEzLjM4Ljg1LjA2OCAxLjJsLTIuNTM2LTIuMjY1YTIuNTUgMi41NSAwIDAwLjIwMyAzLjZsMi4yNjUtMi41MzV6bS0xLjIuMDY3YS44NS44NSAwIDAxMS4yLS4wNjdsLTIuMjY1IDIuNTM2YTIuNTUgMi41NSAwIDAwMy42LS4yMDRsLTIuNTM1LTIuMjY0em0yLjMyNi02LjFjMCAyLjM0NC0uODc5IDQuNDgtMi4zMjYgNi4xbDIuNTM2IDIuMjY1QTEyLjUyNCAxMi41MjQgMCAwMDMyLjAxOCAxMmgtMy40em0tMi4zMjYtNi4xYTkuMTI0IDkuMTI0IDAgMDEyLjMyNiA2LjFoMy40YzAtMy4yMS0xLjIwOC02LjE0Ni0zLjE5LTguMzY1TDI2LjI5MiA1Ljl6bTEuMi4wNjdhLjg1Ljg1IDAgMDEtMS4yLS4wNjdsMi41MzYtMi4yNjVhMi41NSAyLjU1IDAgMDAtMy42LS4yMDNsMi4yNjQgMi41MzV6bS4wNjgtMS4yYS44NS44NSAwIDAxLS4wNjggMS4ybC0yLjI2NS0yLjUzNWEyLjU1IDIuNTUgMCAwMC0uMjAzIDMuNmwyLjUzNi0yLjI2NXpNMzAuMzE4IDEyYzAtMi43NzctMS4wNDMtNS4zMTMtMi43NTgtNy4yMzNsLTIuNTM2IDIuMjY1QTcuNDI0IDcuNDI0IDAgMDEyNi45MTggMTJoMy40em0tMi43NTggNy4yMzNBMTAuODI0IDEwLjgyNCAwIDAwMzAuMzE4IDEyaC0zLjRjMCAxLjkxLS43MTQgMy42NDctMS44OTQgNC45NjhsMi41MzYgMi4yNjV6IixmaWxsOiIjMDAwIixtYXNrOiJ1cmwoI25ld3MtbGFyZ2Vfc3ZnX19hKSJ9KSkpfW4ucDtjb25zdCB4bz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlaHl1MnM1MCJ9KSh7bmFtZToieGU1ZW44IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWF4LXdpZHRoOjMzMHB4O2hlaWdodDoxMDAlO21hcmdpbjowIGF1dG87In0pLHZvPSgwLGYuWlApKGZvLHt0YXJnZXQ6ImVoeXUyczUxIn0pKCJ3aWR0aDozMnB4O2hlaWdodDozMnB4O2NvbG9yOiIsKDAsZi5yUykoImxpZ2h0R3JleTEiKSwiOyIpLHlvPSgwLGYuWlApKCJoMiIse3RhcmdldDoiZWh5dTJzNTIifSkoe25hbWU6InM2cTNuYyIsc3R5bGVzOiJtYXJnaW46MjBweCAwO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzM7Zm9udC13ZWlnaHQ6NjAwOyJ9KSxibz0oMCxmLlpQKSgiaDMiLHt0YXJnZXQ6ImVoeXUyczUzIn0pKHtuYW1lOiJvNjZhZDMiLHN0eWxlczoiZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40Mzt0ZXh0LWFsaWduOmNlbnRlcjsifSksRW89KCk9PnIuY3JlYXRlRWxlbWVudCh4byxudWxsLHIuY3JlYXRlRWxlbWVudCh2byxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoeW8sbnVsbCwoMCx1Lkl1KSgibmV3c19lbXB0eV90aXRsZSIpKSxyLmNyZWF0ZUVsZW1lbnQoYm8sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsKDAsdS5JdSkoImNoZWNrX2xhdGVyX2Zvcl91cGRhdGVzIikpKSk7ZnVuY3Rpb24ga28oKXtjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKDEpLG49KDAsaC5UTCkoKSxpPSgwLGguQ0cpKCRuLkg3KSxvPSgwLGguQ0cpKCRuLmxwKSxhPSgwLGguQ0cpKCRuLlFHKSx7bG9hZGluZzpzLG5ld3NJdGVtczpsfT1KbigpLGM9KG51bGw9PWw/dm9pZCAwOmwubGVuZ3RoKXx8MDtzbygpLFJ0KHtvYmplY3Q6QXQuc1QscGxhY2U6QXQuX3Ysc2VuZE1ldHJpY0NvbmRpdGlvbjpjPjB9KTtjb25zdCBkPSgwLGguQ0cpKCRuLkR2KSxwPSgwLHIudXNlQ2FsbGJhY2spKChyPT57Y29uc3QgaT1yLnRhcmdldDtpLnNjcm9sbEhlaWdodC1pLnNjcm9sbFRvcDxpLmNsaWVudEhlaWdodCs3MCYmIXMmJmQmJmUhPT1kJiYodChkKSxuKCgwLFluLlBkKShkKSkpfSksW24scyxkLGVdKTtpZighKHN8fGwmJjAhPT1sLmxlbmd0aCkpcmV0dXJuIHIuY3JlYXRlRWxlbWVudChFbyxudWxsKTtjb25zdCB1PXMmJjA9PT1jLG09cyYmYz4wO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoUWksbnVsbCxyLmNyZWF0ZUVsZW1lbnQoZW8sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoVWkuWix7aXNJbnNpZGVNb2RhbDohMSxmbGV4OiEwLGR5bmFtaWNDaGlsZHJlbkhlaWdodDohMCxvblNjcm9sbDpwfSxyLmNyZWF0ZUVsZW1lbnQoYW8se2hpZGVCb3JkZXI6ITB9LHIuY3JlYXRlRWxlbWVudCh0byxudWxsLHIuY3JlYXRlRWxlbWVudChwbyxudWxsKSxyLmNyZWF0ZUVsZW1lbnQobm8sbnVsbCx1P3IuY3JlYXRlRWxlbWVudChZdC5aLG51bGwpOm51bGw9PWw/dm9pZCAwOmwubWFwKChlPT57Y29uc3QgdD1hJiYhbyYmIUtuKGUsaSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChWbix7bmV3c0l0ZW06ZSxpc1VucmVhZDp0LHJlbmRlcmluZ0NvbnRleHQ6QXQuVFUsa2V5OmBuZXdzLWl0ZW0tJHtlLmlkfWB9KX0pKSxtJiZyLmNyZWF0ZUVsZW1lbnQocm8sbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXQuWix7aW5saW5lOiEwfSkpLCFzJiZyLmNyZWF0ZUVsZW1lbnQoWGksbnVsbCkpKSkpKSl9ZnVuY3Rpb24gQ28oKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KGtvLG51bGwpfXZhciB3byxTbztmdW5jdGlvbiBQbygpe3JldHVybiBQbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LFBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBUbyhlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzdmciLFBvKHt3aWR0aDozMyxoZWlnaHQ6MzIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sZSksd298fCh3bz1yLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yNy4zMzMgMi42NjdhMi41IDIuNSAwIDAxMi41IDIuNXYyMy43NzhjMCAxLjMzNS0xLjYxMyAyLjAwNS0yLjU1OCAxLjA2M0wyMS4yNDUgMjRINS42NjdhMi41IDIuNSAwIDAxLTIuNS0yLjVWNS4xNjdhMi41IDIuNSAwIDAxMi41LTIuNWgyMS42NjZ6IixmaWxsOiIjMDAwIn0pKSxTb3x8KFNvPXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTIzIDkuNjY3YTEgMSAwIDAxMCAySDkuNjY3YTEgMSAwIDExMC0ySDIzem0tNiA2LjY2NmExIDEgMCAxMTAgMmgtNi42NjdhMSAxIDAgMDEwLTJIMTd6IixmaWxsOiIjZmZmIn0pKSl9bi5wO3ZhciBabz1uKDQ3NjUyKSxJbz1uKDM4NjY5KTtjb25zdCBqbz0oZSx0LG4pPT57Y29uc3Qgcj17ZGlzYWJsZWQ6Im01RGlzYWJsZWRCdXR0b25UZXh0Iixsb2FkaW5nOiJtNUxvYWRpbmdCdXR0b25UZXh0IixkZWZhdWx0OntwcmltYXJ5OiJidXR0b25UZXh0Q29sb3IiLHNlY29uZGFyeToibTVEYXJrR3JleTEiLHN1YnRsZToibTVEYXJrR3JleTEiLGhlYWRlcjoiYnV0dG9uVGV4dENvbG9yIn1bZV19O3JldHVybiB0P3IuZGlzYWJsZWQ6bj9yLmxvYWRpbmc6ci5kZWZhdWx0fSxfbz0oZSx0KT0+InByaW1hcnkiPT09dD9lLm01SG92ZXJCdXR0b25CYWNrZ3JvdW5kOiJoZWFkZXIiPT09dD9lLm01SGVhZGVyQnV0dG9uOmUubGlnaHRHcmV5NSxPbz0oMCxmLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlMXlqbHhqdDAifSkoIndpZHRoOiIsKGU9PmUuZnVsbFdpZHRoPyIxMDAlIjoibWF4LWNvbnRlbnQiKSwiO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOiIsKDAsZi5OUSkoInBhZGRpbmciKSwiO2JvcmRlci1yYWRpdXM6IiwoMCxmLk5RKSgiYm9yZGVyUmFkaXVzIiksIjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cG9pbnRlci1ldmVudHM6IiwoZT0+e3JldHVybiB0PWUuZGlzYWJsZWQsbj1lLmxvYWRpbmcsdHx8bj8ibm9uZSI6ImF1dG8iO3ZhciB0LG59KSwiO3RyYW5zaXRpb246Y29sb3IgMC4ycyBlYXNlLGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLGJveC1zaGFkb3cgMC4ycyBlYXNlLWluLW91dDsmJntiYWNrZ3JvdW5kOiIsKGU9PigoZSx0LG4scik9Pntjb25zdCBpPXtwcmltYXJ5OmUucHJpbWFyeUNvbG9yLHNlY29uZGFyeTplLndoaXRlLGhlYWRlcjplLm01SGVhZGVyQnV0dG9uLHN1YnRsZToibm9uZSJ9LG89e2Rpc2FibGVkOmUubTVEaXNhYmxlZEJ1dHRvbkJhY2tncm91bmQsbG9hZGluZzplLm01TG9hZGluZ0J1dHRvbkJhY2tncm91bmQsZGVmYXVsdDppW3RdfTtyZXR1cm4gbj9vLmRpc2FibGVkOnI/by5sb2FkaW5nOm8uZGVmYXVsdH0pKGUudGhlbWUsZS52YXJpYW50LGUuZGlzYWJsZWQsZS5sb2FkaW5nKSksIjtjb2xvcjoiLCgoe3RoZW1lOmUsdmFyaWFudDp0LGRpc2FibGVkOm4sbG9hZGluZzpyfSk9PmVbam8odCxuLHIpXSksIjtib3JkZXI6IiwoKHt0aGVtZTplLHZhcmlhbnQ6dH0pPT4ic2Vjb25kYXJ5Ij09PXQ/YDFweCBzb2xpZCAke2UubGlnaHRHcmV5MX1gOm51bGwpLCI7fSY6aG92ZXJ7YmFja2dyb3VuZDoiLCgoe3RoZW1lOmUsdmFyaWFudDp0fSk9Pl9vKGUsdCkpLCI7fSY6YWN0aXZle2NvbG9yOiIsKCh7dGhlbWU6ZSx2YXJpYW50OnR9KT0+InByaW1hcnkiPT09dCYmZS5idXR0b25UZXh0Q29sb3IpLCI7Ym94LXNoYWRvdzpub25lO31pe2Rpc3BsYXk6ZmxleDtjb2xvcjppbmhlcml0O2ZsZXgtc2hyaW5rOjA7IiwoKHtpY29uT25seTplLGljb25NYXJnaW46dH0pPT4oMCxmLml2KSgibWFyZ2luLWxlZnQ6IixlPzA6dHx8MTYsInB4OyIpKSwifSY6Zm9jdXN7YmFja2dyb3VuZDoiLCgoe3RoZW1lOmUsdmFyaWFudDp0fSk9Pl9vKGUsdCkpLCI7Ym94LXNoYWRvdzowcHggMHB4IDFweCAycHggIiwoKHt0aGVtZTplfSk9PmUubTVCdXR0b25TaGFkb3cpLCI7fSIsSW8uSi5jbGFzc05hbWUsIntzdmd7cGF0aHtmaWxsOiIsKCh7dGhlbWU6ZSx2YXJpYW50OnQsZGlzYWJsZWQ6bixsb2FkaW5nOnJ9KT0+ZVtqbyh0LG4scildKSwiO31jaXJjbGV7c3Ryb2tlOiIsKCh7dGhlbWU6ZSx2YXJpYW50OnQsZGlzYWJsZWQ6bixsb2FkaW5nOnJ9KT0+ZVtqbyh0LG4scildKSwiO319fSIpLEFvPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxeWpseGp0MSJ9KSgiZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweDtjb2xvcjppbmhlcml0O2ZvbnQtd2VpZ2h0OjU5MDtmb250LWZhbWlseToiLCgwLGYuclMpKCJmb250U2Fuc1NlcmlmIiksIjsiKSxCbz1bImFzIiwiaWNvblR5cGUiLCJpY29uU2l6ZSIsImljb25NYXJnaW4iLCJjaGlsZHJlbiIsImRpc2FibGVkIiwibG9hZGluZyIsImJvcmRlclJhZGl1cyIsIm9uQ2xpY2siLCJ2YXJpYW50IiwiZnVsbFdpZHRoIiwicHJldmVudERlZmF1bHQiLCJwYWRkaW5nIl07ZnVuY3Rpb24gUm8oKXtyZXR1cm4gUm89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxSby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gem8oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHwoaVtuXT1lW25dKTtyZXR1cm4gaX0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWNvbnN0IE5vPTE2LE1vPWU9PntsZXR7YXM6dCxpY29uVHlwZTpuLGljb25TaXplOmk9Tm8saWNvbk1hcmdpbjpvLGNoaWxkcmVuOmEsZGlzYWJsZWQ6cyxsb2FkaW5nOmwsYm9yZGVyUmFkaXVzOmM9MTIsb25DbGljazpkLHZhcmlhbnQ6cD0icHJpbWFyeSIsZnVsbFdpZHRoOnU9ITEscHJldmVudERlZmF1bHQ6bT0hMSxwYWRkaW5nOmg9IjEwcHggMTZweCJ9PWUsZz16byhlLEJvKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KE9vLFJvKHthczp0LGRpc2FibGVkOnMsbG9hZGluZzpsLG9uQ2xpY2s6ZT0+e20mJmUucHJldmVudERlZmF1bHQoKSxkJiZkKGUpfSxib3JkZXJSYWRpdXM6InN0cmluZyI9PXR5cGVvZiBjP2M6YCR7Y31weGAscGFkZGluZzoic3RyaW5nIj09dHlwZW9mIGg/aDpgJHtofXB4YCx2YXJpYW50OnAsZnVsbFdpZHRoOnUsaWNvbk9ubHk6MD09PXIuQ2hpbGRyZW4uY291bnQoYSksaWNvbk1hcmdpbjpvLCJhcmlhLWxhYmVsIjoic3RyaW5nIj09dHlwZW9mIGE/YTp2b2lkIDB9LGcpLHIuY3JlYXRlRWxlbWVudChBbyxudWxsLGEpLG4mJnIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOm4sc2l6ZTppLGNvbG9yOmpvKHAscyxsKX0pKX0sRG89TW8sTG89ZT0+ci5jcmVhdGVFbGVtZW50KE1vLFJvKHthczoiYSJ9LGUpKTtmdW5jdGlvbiBHbyh7c3R5bGVWYXJpYW50OmU9InByaW1hcnkiLG1ldHJpY3NDb250ZXh0OnQsbWV0YWRhdGE6bj17fX0pe2NvbnN0IGk9KDAsaC5UTCkoKSx7c2hvd1NwYWNlOm99PU50KCksYT0oMCxoLkNHKSh6LmFBKSxzPSgwLGguQ0cpKHoubHopLGw9KDAsaC5DRykoei5EWCksYz0oMCxoLkNHKSh6LlQ0KSxkPSgwLGguQ0cpKFpvLkN5KSxwPWMmJiFkLG09KDAsaC5DRykoQi5OSykse2lzU3RhbmRhbG9uZTpnfT0oMCxoLkNHKShCLkpRKSxmPSgwLGguQ0cpKHouVkopO3JldHVybiBhP3IuY3JlYXRlRWxlbWVudChEbyx7aWNvblR5cGU6cD8iQXJ0aWNsZU9wZW5Cb29rIjpmP2YuaWNvbjpzfHwhbD8iQXNrUXVlc3Rpb24iOiJOZXdDb252ZXJzYXRpb24iLG9uQ2xpY2s6KCk9PntwP28oenQuamcuaWQpOihpKCgwLGNlLmtDKSgiIiwhMSxudWxsPT1tP3ZvaWQgMDptLnVybCxudWxsPT1tP3ZvaWQgMDptLmlkLGcpKSwoMCxPdC5XTSkoImNsaWNrZWQiLCJuZXdfY29udmVyc2F0aW9uIiwibWVzc2VuZ2VyIix0LG4pKX0sYm9yZGVyUmFkaXVzOjEwLHZhcmlhbnQ6ZSwiZGF0YS10ZXN0aWQiOiJzZW5kLWEtbWVzc2FnZS1idXR0b24ifSxwPygwLHUuSXUpKCJtZXNzYWdlc19icm93c2VfYXJ0aWNsZXNfYnRuIik6Zj9mLnRleHQ6c3x8IWw/KDAsdS5JdSkoImFza19hX3F1ZXN0aW9uIik6KDAsdS5JdSkoInNlbmRfdXNfYV9tZXNzYWdlIikpOm51bGx9Y29uc3QgRm89KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF1bnVmczQwIn0pKHtuYW1lOiJ5NW42NTUiLHN0eWxlczoiZmxleDoxO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyJ9KSxxbz0oMCxmLlpQKSh3dC5aUCx7dGFyZ2V0OiJlMXVudWZzNDEifSkoKCh7YWRkQm90dG9tUGFkZGluZzplfSk9PigwLGYuaXYpKCJwYWRkaW5nOjAgMCAiLGU/ODA6MCwicHggMDsiKSkpO3ZhciBIbz17bmFtZToiMWdodGl2aCIsc3R5bGVzOiJiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMjU1LDI1NSwyNTUsMSkscmdiYSgyNTUsMjU1LDI1NSwwKSk7In07Y29uc3QgV289KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF1bnVmczQyIn0pKCJ6LWluZGV4OiIsKDAseC5XNSkoMSksIjt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lOyIsKCh7c2hvd0ZhZGU6ZX0pPT5lJiZIbyksIiAiLCgoe2xhcmdlRmFkZTplfSk9PigwLGYuaXYpKCJoZWlnaHQ6IixlPzE1MDo5MCwicHg7IikpKSxVbz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXVudWZzNDMifSkoe25hbWU6IjhndHJsbCIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoyMHB4O21hcmdpbjowIDM1cHg7bWluLWhlaWdodDoxMDAlO2gye2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC13ZWlnaHQ6NjAwO31zcGFue2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxNHB4O3RleHQtYWxpZ246Y2VudGVyO31idXR0b257bGluZS1oZWlnaHQ6MTRweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MjBweDt9In0pO2Z1bmN0aW9uIFZvKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChGbyxudWxsLHIuY3JlYXRlRWxlbWVudChVbyxudWxsLHIuY3JlYXRlRWxlbWVudChUbyxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCgwLHUuSXUpKCJtZXNzYWdlc19lbXB0eV9zdGF0ZV90aXRsZSIpKSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsKDAsdS5JdSkoIm1lc3NhZ2VzX2VtcHR5X3N0YXRlX3RleHQiKSksci5jcmVhdGVFbGVtZW50KEdvLG51bGwpKSl9dmFyICRvPW4oOTY4OCksS289big1MDA1NCk7Y29uc3QgWW89KHtjb252ZXJzYXRpb25zOmUsbG9hZGluZzp0LGFwcE5hbWU6bixhcHBBZG1pbnM6aSxzaG93Rm9vdGVyRmFkZTpvLGxhcmdlRm9vdGVyRmFkZTphLG9uQ29udmVyc2F0aW9uQ2xpY2s6cyxvblNjcm9sbDpsfSk9Pntjb25zdCBjPSgwLEtvLlgpKChlPT57Y29uc3QgdD1lLnRhcmdldCxuPSgwLCRvLndBKSh0KTtsKHQuc2Nyb2xsVG9wLG4pfSksMjAwKTtyZXR1cm4gdD9yLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXQuWixudWxsKSk6ci5jcmVhdGVFbGVtZW50KEZvLHsiZGF0YS10ZXN0aWQiOiJtZXNzYWdlcy1ib2R5IixvblNjcm9sbDpjLG9uV2hlZWw6JG8uUjJ9LHIuY3JlYXRlRWxlbWVudChxbyx7YWRkQm90dG9tUGFkZGluZzpvfSxlLm1hcCgoZT0+ci5jcmVhdGVFbGVtZW50KEJyLHtrZXk6ZS5pZCxjb252ZXJzYXRpb246ZSxhcHBOYW1lOm4sYXBwQWRtaW5zOmksb25DbGljazooKT0+e3JldHVybiB0PWUuaWQsKDAsT3QuV00pKCJjbGlja2VkIix0PyJjb252ZXJzYXRpb24iOiJuZXdfY29udmVyc2F0aW9uIiwibWVzc2VuZ2VyIiwiZnJvbV9jb252ZXJzYXRpb25fbGlzdCIse2NvbnZlcnNhdGlvbl9pZDp0fSksdm9pZCBzKHQpO3ZhciB0fX0pKSkpLHIuY3JlYXRlRWxlbWVudChXbyx7c2hvd0ZhZGU6byxsYXJnZUZhZGU6YX0pKX0sSm89KDAsQS5jcmVhdGVTZWxlY3RvcikoW3ouVDQsei5hQSxZZS5SUV0sKChlLHQsbik9PiFuJiYoIWUmJnQpKSk7dmFyIFhvPW4oNjUzOTQpO2NvbnN0IFFvPSgpPT57Y29uc3QgZT0oMCxoLkNHKShZZS5ZUSksdD0oMCxoLkNHKShZZS5xQSksbj0oMCxoLkNHKSgoZT0+ZS5hcHAubmFtZSkpfHwiIixpPSgwLGguQ0cpKChlPT5lLmFwcC5hY3RpdmVBZG1pbnMpKXx8W10sbz0oMCxoLkNHKSh6LkRYKSxhPSgwLGguQ0cpKEpvKSxzPSgwLGguQ0cpKE4uVGQpLmxlbmd0aD4xLHtpc0ZldGNoaW5nOmw9ITAscGFnZXNGZXRjaGVkOmM9MCx0b3RhbFBhZ2VzOmQ9MH09KDAsaC5DRykoKGU9PmUuY29udmVyc2F0aW9ucykpLHA9KDAsaC5UTCkoKSx1PSgwLHIudXNlQ2FsbGJhY2spKChlPT57cCgoMCxYby51dikoR3QuWlAsIm9uQ29udmVyc2F0aW9uc1BhZ2UiLGUsMTApKX0pLFtwXSk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e3UoMSksKDAsT3QuV00pKCJ2aWV3ZWQiLCJjb252ZXJzYXRpb25fbGlzdCIsIm1lc3NlbmdlciIsIiIse30pfSksW3VdKSxlP3IuY3JlYXRlRWxlbWVudChWbyxudWxsKTpyLmNyZWF0ZUVsZW1lbnQoWW8se2NvbnZlcnNhdGlvbnM6dCxsb2FkaW5nOmwmJjA9PT10Lmxlbmd0aCxhcHBOYW1lOm4sYXBwQWRtaW5zOmksYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWRBZnRlckJvdDpvLG9uU2Nyb2xsOihlLHQpPT57cCgoMCxYby5sUCkoZSkpOyFsJiZjPGQmJnQ+LjUmJnUoYysxKX0sb25Db252ZXJzYXRpb25DbGljazplPT57cCgoMCxmci5jYykoR3QuWlAsZSkpLHAoKDAseHIuYXopKGUpKX0sc2hvd0Zvb3RlckZhZGU6YSxsYXJnZUZvb3RlckZhZGU6IXN9KX0sZWE9KCk9Pntjb25zdCBlPSgwLEgudXNlTmF2aWdhdGUpKCk7cmV0dXJuKDAsci51c2VDYWxsYmFjaykoKCgpPT57ZSgtMSl9KSxbZV0pfSx0YT1lPT5lLnRpY2tldFR5cGVzLG5hPSgoMCxBLmNyZWF0ZVNlbGVjdG9yKSh0YSwoZT0+ZS5maWx0ZXIoKGU9PiFlLmFyY2hpdmVkKSkpKSwoMCxBLmNyZWF0ZVNlbGVjdG9yKSh0YSwoZT0+ZSkpKSxyYT1lPT4oMCxBLmNyZWF0ZVNlbGVjdG9yKShbZT0+ZS50aWNrZXRUeXBlc10sKHQ9PnQuZmluZCgodD0+dC5pZD09PWUpKSkpLGlhPSgpPT57Y29uc3R7dGlja2V0VHlwZUlkOmV9PSgwLEgudXNlUGFyYW1zKSgpLHQ9ZWEoKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57ZXx8dCgpfSksW2UsdF0pO2NvbnN0IG49KDAsaC5DRykocmEocGFyc2VJbnQoZXx8IiIpKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChUZSx7dGl0bGU6bnVsbD09bj92b2lkIDA6bi5uYW1lLG9uQmFjazp0fSl9LG9hPSh7c2V0SXNPdmVybGF5OmV9KT0+e2NvbnN0e3RpY2tldElkOnQ9IiJ9PSgwLEgudXNlUGFyYW1zKSgpLG49KDAsaC5DRykoKDAsWmkuSFUpKHQpKSxpPWVhKCksbz0oMCxyLnVzZUNhbGxiYWNrKShlLFtlXSk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+KG8oITApLCgpPT57byghMSl9KSkpLHIuY3JlYXRlRWxlbWVudChUZSx7dGl0bGU6bnVsbD09bj92b2lkIDA6bi5uYW1lLG9uQmFjazppLHdoaXRlQmFja2dyb3VuZDohMH0pfSxhYT0oMCxmLlpQKSgiYSIse3RhcmdldDoiZXhxNDFlbzAifSkoe25hbWU6InJxZm84MiIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsifSksc2E9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXhxNDFlbzEifSkoe25hbWU6IjI4MHJuOCIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztnYXA6MTZweDttYXJnaW46MTZweCBhdXRvIDA7In0pLGxhPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV4cTQxZW8yIn0pKHtuYW1lOiJsNjllbDEiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZToxNHB4O21hcmdpbi10b3A6NHB4OyJ9KSxjYT0oMCxmLlpQKSgic3ZnIix7dGFyZ2V0OiJlb3g2bWc1MCJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tcmlnaHQ6IiwoKHttYXJnaW5SaWdodDplfSk9PmUpLCJweDsmIHBhdGh7ZmlsbDoiLCgwLGYuclMpKCJoZWFkZXJUZXh0Q29sb3IiKSwiO30mOmhvdmVyIHBhdGh7ZmlsbDoiLCgwLGYuclMpKCJoZWFkZXJUaXRsZUNvbG9yIiksIjt9IiksZGE9KHttYXJnaW5SaWdodDplPTE2fSk9PnIuY3JlYXRlRWxlbWVudChjYSx7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDEyIDEzIixtYXJnaW5SaWdodDplLGZpbGw6Im5vbmUifSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yIDFDMiAwLjQ0NzcxNSAyLjQ0NzcyIDAgMyAwQzMuNTUyMjggMCA0IDAuNDQ3NzE1IDQgMUw4IDFDOCAwLjQ0NzcxNSA4LjQ0NzcxIDAgOSAwQzkuNTUyMjkgMCAxMCAwLjQ0NzcxNSAxMCAxSDEwLjVDMTEuMzI4NCAxIDEyIDEuNjcxNTcgMTIgMi41VjNIOUgzSDBWMi41QzAgMS42NzE1NyAwLjY3MTU3MyAxIDEuNSAxTDIgMVpNMCA0LjVIMTJWMTFDMTIgMTIuMTA0NiAxMS4xMDQ2IDEzIDEwIDEzSDJDMC44OTU0MzEgMTMgMCAxMi4xMDQ2IDAgMTFWNC41Wk0yLjU3MTE5IDguMkMzLjE3ODcgOC4yIDMuNjcxMTkgNy43MDc1MSAzLjY3MTE5IDcuMUMzLjY3MTE5IDYuNDkyNDkgMy4xNzg3IDYgMi41NzExOSA2QzEuOTYzNjggNiAxLjQ3MTE5IDYuNDkyNDkgMS40NzExOSA3LjFDMS40NzExOSA3LjcwNzUxIDEuOTYzNjggOC4yIDIuNTcxMTkgOC4yWk03LjEwMDE1IDcuMUM3LjEwMDE1IDcuNzA3NTEgNi42MDc2NiA4LjIgNi4wMDAxNSA4LjJDNS4zOTI2MyA4LjIgNC45MDAxNSA3LjcwNzUxIDQuOTAwMTUgNy4xQzQuOTAwMTUgNi40OTI0OSA1LjM5MjYzIDYgNi4wMDAxNSA2QzYuNjA3NjYgNiA3LjEwMDE1IDYuNDkyNDkgNy4xMDAxNSA3LjFaTTkuNDI4NjEgOC4yQzEwLjAzNjEgOC4yIDEwLjUyODYgNy43MDc1MSAxMC41Mjg2IDcuMUMxMC41Mjg2IDYuNDkyNDkgMTAuMDM2MSA2IDkuNDI4NjEgNkM4LjgyMTEgNiA4LjMyODYxIDYuNDkyNDkgOC4zMjg2MSA3LjFDOC4zMjg2MSA3LjcwNzUxIDguODIxMSA4LjIgOS40Mjg2MSA4LjJaTTMuNjcxMTkgMTAuMzkyNUMzLjY3MTE5IDExIDMuMTc4NyAxMS40OTI1IDIuNTcxMTkgMTEuNDkyNUMxLjk2MzY4IDExLjQ5MjUgMS40NzExOSAxMSAxLjQ3MTE5IDEwLjM5MjVDMS40NzExOSA5Ljc4NDk3IDEuOTYzNjggOS4yOTI0OCAyLjU3MTE5IDkuMjkyNDhDMy4xNzg3IDkuMjkyNDggMy42NzExOSA5Ljc4NDk3IDMuNjcxMTkgMTAuMzkyNVpNNi4wMDAxNSAxMS40OTI1QzYuNjA3NjYgMTEuNDkyNSA3LjEwMDE1IDExIDcuMTAwMTUgMTAuMzkyNUM3LjEwMDE1IDkuNzg0OTcgNi42MDc2NiA5LjI5MjQ4IDYuMDAwMTUgOS4yOTI0OEM1LjM5MjYzIDkuMjkyNDggNC45MDAxNSA5Ljc4NDk3IDQuOTAwMTUgMTAuMzkyNUM0LjkwMDE1IDExIDUuMzkyNjMgMTEuNDkyNSA2LjAwMDE1IDExLjQ5MjVaIixmaWxsOiIjQ0NEREZGIn0pKSxwYT0oMCxmLlpQKSgic3ZnIix7dGFyZ2V0OiJlNWE0dHAwMCJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tcmlnaHQ6IiwoKHttYXJnaW5SaWdodDplfSk9PmUpLCJweDs+IGcgPiBne2ZpbGw6IiwoMCxmLnJTKSgiaGVhZGVyVGV4dENvbG9yIiksIjt9Jjpob3ZlciA+IGcgPiBne2ZpbGw6IiwoMCxmLnJTKSgiaGVhZGVyVGl0bGVDb2xvciIpLCI7fSIpLHVhPSh7bWFyZ2luUmlnaHQ6ZT0xNn0pPT5yLmNyZWF0ZUVsZW1lbnQocGEse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsbWFyZ2luUmlnaHQ6ZX0sci5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoibm9uZSJ9LHIuY3JlYXRlRWxlbWVudCgiZyIse2ZpbGw6IiNCM0M5RkYifSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuNiAwQzE0LjkgMCAxNiAxLjEgMTYgMi40TDE2IDEzLjZDMTYgMTQuOSAxNC45IDE2IDEzLjYgMTZMMi40IDE2QzEuMSAxNiAwIDE0LjkgMCAxMy42TDAgMi40QzAgMS4xIDEuMSAwIDIuNCAwTDEzLjYgMFpNNC44IDEzLjVMNC44IDYuMiAyLjQgNi4yIDIuNCAxMy41IDQuOCAxMy41Wk0zLjYgNS4yQzQuNSA1LjIgNSA0LjcgNSA0IDUgMy4zIDQuNSAyLjcgMy43IDIuNyAyLjggMi43IDIuMyAzLjMgMi4zIDQgMi4zIDQuNyAyLjggNS4yIDMuNiA1LjJMMy42IDUuMlpNNi4yIDEzLjVMOC42IDEzLjUgOC42IDkuNEM4LjYgOS4yIDguNiA5IDguNyA4LjggOC44IDguNCA5LjIgOCA5LjkgOCAxMC44IDggMTEuMSA4LjYgMTEuMSA5LjZMMTEuMSAxMy41IDEzLjUgMTMuNSAxMy41IDkuM0MxMy41IDcuMSAxMi4zIDYuMSAxMC43IDYuMSA5LjQgNi4xIDguOSA2LjggOC42IDcuM0w4LjYgNy4zIDguNiA2LjIgNi4yIDYuMkM2LjIgNi45IDYuMiAxMy41IDYuMiAxMy41WiJ9KSkpKSxtYT0oMCxmLlpQKSgic3ZnIix7dGFyZ2V0OiJlNWcwOGFsMCJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tcmlnaHQ6IiwoKHttYXJnaW5SaWdodDplfSk9PmUpLCJweDs+IGcgPiBne2ZpbGw6IiwoMCxmLnJTKSgiaGVhZGVyVGV4dENvbG9yIiksIjt9Jjpob3ZlciA+IGcgPiBne2ZpbGw6IiwoMCxmLnJTKSgiaGVhZGVyVGl0bGVDb2xvciIpLCI7fSIpLGhhPSh7bWFyZ2luUmlnaHQ6ZT0xNn0pPT5yLmNyZWF0ZUVsZW1lbnQobWEse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxOCAxNSIsbWFyZ2luUmlnaHQ6ZX0sci5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoibm9uZSJ9LHIuY3JlYXRlRWxlbWVudCgiZyIse2ZpbGw6IiNCM0M5RkYifSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTggMS44QzE3LjMgMi4xIDE2LjYgMi4zIDE1LjkgMi40IDE2LjYgMS45IDE3LjIgMS4yIDE3LjUgMC4zIDE2LjggMC43IDE2IDEgMTUuMiAxLjIgMTQuNSAwLjUgMTMuNSAwIDEyLjUgMCAxMC40IDAgOC44IDEuNyA4LjggMy44IDguOCA0LjEgOC44IDQuNCA4LjkgNC42IDUuOCA0LjUgMy4xIDMgMS4zIDAuNyAwLjkgMS4zIDAuOCAxLjkgMC44IDIuNiAwLjggMy45IDEuNCA1LjEgMi40IDUuNyAxLjggNS43IDEuMiA1LjYgMC43IDUuMyAwLjcgNS4zIDAuNyA1LjMgMC43IDUuMyAwLjcgNy4yIDIgOC43IDMuNyA5IDMuNCA5LjEgMy4xIDkuMiAyLjcgOS4yIDIuNSA5LjIgMi4yIDkuMSAyIDkuMSAyLjUgMTAuNiAzLjkgMTEuNyA1LjUgMTEuNyA0LjIgMTIuNyAyLjYgMTMuNCAwLjkgMTMuNCAwLjYgMTMuNCAwLjMgMTMuMyAwIDEzLjMgMS42IDE0LjQgMy42IDE1IDUuNyAxNSAxMi41IDE1IDE2LjIgOS4yIDE2LjIgNC4yIDE2LjIgNC4xIDE2LjIgMy45IDE2LjIgMy43IDE2LjkgMy4yIDE3LjUgMi41IDE4IDEuOCJ9KSkpKSxnYT0oZSx0KT0+e3ZhciBuO3JldHVybiBudWxsPT09KG49dC5zb2NpYWxBY2NvdW50cyl8fHZvaWQgMD09PW58fG51bGw9PT0obj1uLmZpbmQoKHQ9PnQucHJvdmlkZXI9PT1lKSkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnByb2ZpbGVVcmx9LGZhPSh7dXJsOmUsbGFiZWw6dCxJY29uQ29tcG9uZW50Om59KT0+ci5jcmVhdGVFbGVtZW50KGFhLHtocmVmOmUsImFyaWEtbGFiZWwiOnQsdGFyZ2V0OiJfYmxhbmsiLG9uQ2xpY2s6ZT0+ZS5zdG9wUHJvcGFnYXRpb24oKX0sci5jcmVhdGVFbGVtZW50KG4se21hcmdpblJpZ2h0OjB9KSkseGE9KHthZG1pbjplfSk9Pntjb25zdCB0PWdhKCJsaW5rZWRpbiIsZSksbj1nYSgidHdpdHRlciIsZSksaT1lLmNhbGVuZGFyVXJsO3JldHVybiB0fHxufHxpP3IuY3JlYXRlRWxlbWVudChzYSxudWxsLHQmJnIuY3JlYXRlRWxlbWVudChmYSx7dXJsOnQsbGFiZWw6KDAsdS5JdSkoInRlYW1tYXRlX3Byb2ZpbGUiLHtwcm92aWRlcjoibGlua2VkaW4ifSksSWNvbkNvbXBvbmVudDp1YX0pLG4mJnIuY3JlYXRlRWxlbWVudChmYSx7dXJsOm4sbGFiZWw6KDAsdS5JdSkoInRlYW1tYXRlX3Byb2ZpbGUiLHtwcm92aWRlcjoidHdpdHRlciJ9KSxJY29uQ29tcG9uZW50OmhhfSksaSYmci5jcmVhdGVFbGVtZW50KGZhLHt1cmw6aSxsYWJlbDooMCx1Lkl1KSgidGVhbW1hdGVfY2FsZW5kYXJfbGluayIpLEljb25Db21wb25lbnQ6ZGF9KSk6bnVsbH07dmFyIHZhPW4oNjQzNSkseWE9bigxNTE3OCk7ZnVuY3Rpb24gYmEoKXtyZXR1cm4gYmE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxiYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y29uc3QgRWE9ZT0+dD0+e2NvbnN0IG49dC5kaXNwbGF5TmFtZXx8dC5uYW1lfHwiQ29tcG9uZW50IixpPWUuZGlzcGxheU5hbWV8fCJDb250ZXh0IixvPW49Pntjb25zdCBpPXIudXNlQ29udGV4dChlKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHQsYmEoe30sbix7Y29udGV4dDppfSkpfTtyZXR1cm4gby5kaXNwbGF5TmFtZT1gd2l0aENvbnRleHQoJHtpfSkoJHtufSlgLG99LGthPXIuY3JlYXRlQ29udGV4dCh7aGVhZGVyU3R5bGU6ImRlZmF1bHQifSksQ2E9RWEoa2EpLHdhPSgwLGYuWlApKFBlLkJ1dHRvbix7dGFyZ2V0OiJlNmNxbXplMCJ9KSh7bmFtZToieGxvNTBrIixzdHlsZXM6ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7d2lkdGg6MTAwJTtoZWlnaHQ6NDhweDtwYWRkaW5nOjZweDsifSksU2E9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTZjcW16ZTEifSkoe25hbWU6IjE3cmcwYTUiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXg6MTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDozcHg7In0pLFBhPUNhKCgwLGYuWlApKCJoMiIse3RhcmdldDoiZTZjcW16ZTIifSkoImRpc3BsYXk6ZmxleDtnYXA6OHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7dHJhbnNpdGlvbjphbGwgMzAwbXM7IiwoKHtjb250ZXh0OmUsdGhlbWU6dH0pPT4iZmluIj09PWUuaGVhZGVyU3R5bGUmJigwLGYuaXYpKCJjb2xvcjoiLHQubTVEYXJrR3JleTIsIjsiKSkpKSxUYT1DYSgoMCxmLlpQKSgicCIse3RhcmdldDoiZTZjcW16ZTMifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmb250LXNpemU6MTRweDt0cmFuc2l0aW9uOmFsbCAzMDBtcztjb2xvcjoiLCgwLGYuclMpKCJoZWFkZXJUZXh0Q29sb3IiKSwiOyIsKCh7Y29udGV4dDplLHRoZW1lOnR9KT0+ImZpbiI9PT1lLmhlYWRlclN0eWxlJiYoMCxmLml2KSgiY29sb3I6Iix0LmlucHV0R3JleSwiOyIpKSkpLFphPUNhKCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU2Y3FtemU0In0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6MTJweCA1MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoyMXB4OyIsKCh7Y29udGV4dDplLHRoZW1lOnR9KT0+ImZpbiI9PT1lLmhlYWRlclN0eWxlJiYoMCxmLml2KSgiY29sb3I6Iix0LmlucHV0R3JleSwiO3BhZGRpbmctdG9wOjVweDsiKSkpKSxJYT1DYSgoMCxmLlpQKSgiaDIiLHt0YXJnZXQ6ImU2Y3FtemU1In0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MjFweDttYXJnaW4tdG9wOjEycHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwoKHtjb250ZXh0OmUsdGhlbWU6dH0pPT4iZmluIj09PWUuaGVhZGVyU3R5bGUmJigwLGYuaXYpKCJjb2xvcjoiLHQubTVEYXJrR3JleTIsIjtmb250LXNpemU6MTRweDttYXJnaW4tdG9wOjE2cHg7IikpKSksamE9Q2EoKDAsZi5aUCkocm4uWix7dGFyZ2V0OiJlNmNxbXplNiJ9KSgiZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLXRvcDo4cHg7Y29sb3I6IiwoMCxmLnJTKSgiaGVhZGVyVGV4dENvbG9yIiksIjsiLCgoe2NvbnRleHQ6ZSx0aGVtZTp0fSk9PiJmaW4iPT09ZS5oZWFkZXJTdHlsZSYmKDAsZi5pdikoImNvbG9yOiIsdC5saWdodEdyZXkxMiwiO21hcmdpbi10b3A6MHB4OyIpKSkpLF9hPUNhKCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU2Y3FtemU3In0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMnB4O21hcmdpbjo0cHggLThweCAtOHB4O3BhZGRpbmc6OHB4IDI2cHggOHB4IDMwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIiwoMCxmLnJTKSgiY29udmVyc2F0aW9uSGVhZGVyRGl2aWRlciIpLCI7Y29sb3I6IiwoMCxmLnJTKSgiaGVhZGVyVGV4dENvbG9yIiksIjtmb250LXNpemU6MTRweDsiLCgoe2NvbnRleHQ6ZSx0aGVtZTp0fSk9PiJmaW4iPT09ZS5oZWFkZXJTdHlsZSYmKDAsZi5pdikoImNvbG9yOiIsdC5saWdodEdyZXkxMiwiOyIpKSkpO3ZhciBPYT1uKDM3NDEwKSxBYT17bmFtZToiazAwOHFzIixzdHlsZXM6ImRpc3BsYXk6ZmxleDsifTtjb25zdCBCYT0oMCxmLlpQKShQZS5CdXR0b24se3RhcmdldDoiZXhzNWVndjAifSkoImRpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsmIHBhdGh7ZmlsbDoiLCgwLGYuclMpKCJoZWFkZXJUaXRsZUNvbG9yIiksIjt9IiwoKHtlbmFibGVkOmV9KT0+ZSYmQWEpKTtmdW5jdGlvbiBSYShlKXtjb25zdHtvbkNsaWNrOnR9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChCYSx7b25DbGljazp0LCJhcmlhLWxhYmVsIjooMCx1Lkl1KSgiZG93bmxvYWRfdHJhbnNjcmlwdCIpLGNsYXNzTmFtZToiaW50ZXJjb20tZG93bmxvYWQtdHJhbnNjcmlwdC1idXR0b24iLGVuYWJsZWQ6ITB9LHIuY3JlYXRlRWxlbWVudChPYS5aLG51bGwpKX1jb25zdCB6YT0oe2FkbWluczplLGV4cGFuZGVkOnQ9ITAsc2l6ZTpuPTY0LG1heEFkbWluczppPTN9KT0+e3ZhciBvO3JldHVybiAxPT09ZS5sZW5ndGg/ci5jcmVhdGVFbGVtZW50KFB0Llose3NpemU6bixzaG93U3RhdHVzOiEobnVsbCE9PShvPWVbMF0pJiZ2b2lkIDAhPT1vJiZvLmlzQm90KSxhZG1pbjplWzBdfSk6ci5jcmVhdGVFbGVtZW50KEFkbWluQXZhdGFyU3RhY2sse2F2YXRhclNpemU6bixhdmF0YXJQaXhlbHNUb1Nob3c6bi00LGFkbWluczplLG1heEFkbWluczppLHVzZUFwcENvbG9yRm9yQXZhdGFyQm9yZGVyOiEwLG1hcmdpblJpZ2h0OiIwIixzaG93VG9vbHRpcDohMCx1c2VDdXRvdXQ6ITAsY3V0b3V0U2l6ZTp0PzI6MH0pfSxOYT0oe29uQ2xpY2s6ZSxjaGlsZHJlbjp0fSk9Pntjb25zdCBuPXsiZGF0YS10ZXN0aWQiOiJleHBhbmRlZC1jb252ZXJzYXRpb24taGVhZGVyIn07cmV0dXJuIGU/ci5jcmVhdGVFbGVtZW50KFBlLkJ1dHRvbix7b25DbGljazplfSxyLmNyZWF0ZUVsZW1lbnQoWmEsbix0KSk6ci5jcmVhdGVFbGVtZW50KFphLG4sdCl9LE1hPSh7ZXhwYW5kZWQ6ZSx0aXRsZTp0LGNvbGxhcHNlZEFkbWluczpuLGNvbGxhcHNlZFN1YnRpdGxlOmkscmlnaHRCdXR0b25BcmVhOm8sY2hpbGRyZW46YSxmb290ZXI6cyxvbkJhY2s6bCxiYWNrQnV0dG9uTGFiZWw6YyxvbkNsaWNrOmQsaGFuZGxlVHJhbnNjcmlwdERvd25sb2FkOnAsc2hvd0JvcmRlcjp1LHN0eWxlOm09ImRlZmF1bHQifSk9PnIuY3JlYXRlRWxlbWVudChrYS5Qcm92aWRlcix7dmFsdWU6e2hlYWRlclN0eWxlOm19fSxyLmNyZWF0ZUVsZW1lbnQoUGUuQ29udGVudCx7c2hvd0JvcmRlcjp1fSxyLmNyZWF0ZUVsZW1lbnQoUGUuVGl0bGVBcmVhLHtvbkJhY2s6bCxiYWNrQnV0dG9uTGFiZWw6YyxyaWdodEJ1dHRvbkFyZWE6b3x8cCYmci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxvLHAmJnIuY3JlYXRlRWxlbWVudChSYSx7b25DbGljazpwfSkpLHdoaXRlQmFja2dyb3VuZDoiZmluIj09PW19LGU/ci5jcmVhdGVFbGVtZW50KFBlLlRpdGxlLG51bGwsdCk6ci5jcmVhdGVFbGVtZW50KHdhLHtvbkNsaWNrOmQsImRhdGEtdGVzdGlkIjoiY29sbGFwc2VkLWNvbnZlcnNhdGlvbi1oZWFkZXIifSxyLmNyZWF0ZUVsZW1lbnQoemEse2FkbWluczpuLHNpemU6MzJ9KSxyLmNyZWF0ZUVsZW1lbnQoU2EsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoUGEsbnVsbCx0KSxyLmNyZWF0ZUVsZW1lbnQoVGEsbnVsbCxpKSkpKSxlJiZyLmNyZWF0ZUVsZW1lbnQoTmEse29uQ2xpY2s6ZH0sYSkscyYmZSYmci5jcmVhdGVFbGVtZW50KF9hLG51bGwscykpKTtNYS5BZG1pbkF2YXRhcnM9emEsTWEuRXhwYW5kZWRIZWFkaW5nPUlhLE1hLkV4cGFuZGVkVGV4dD1qYTtjb25zdCBEYT0oMCxmLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlbzFiMWNmMCJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjhweCAxMnB4O21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjRweDtnYXA6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjU5MDtmb250LXNpemU6MTRweDt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6MjBweDtjb2xvcjoiLCgwLGYuclMpKCJtNURhcmtHcmV5MiIpLCI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLXJhZGl1czoyMHB4O3RyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1pbi1vdXQ7Jjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKTt9IiksTGE9KHtvbkNsaWNrOmV9KT0+ci5jcmVhdGVFbGVtZW50KERhLHtvbkNsaWNrOmV9LHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJSZXRyeSIsY29sb3I6Im01RGFya0dyZXkyIn0pLHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLCJTdGFydCBhZ2FpbiIpKTt2YXIgR2E9bigzMDIyNCksRmE9bigyNTYxNik7ZnVuY3Rpb24gcWEoKXtyZXR1cm4gcWE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxxYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y29uc3QgSGE9KDAsQS5jcmVhdGVTZWxlY3RvcikoKGU9PmUuYXBwKSwoKHtuYW1lOmUsYWN0aXZlQWRtaW5zOnR9KT0+KHtuYW1lOmUsYWN0aXZlQWRtaW5zOnR9KSkpLFdhPSh7Y29udmVyc2F0aW9uOmUsZ29CYWNrOnQsc2V0SXNPdmVybGF5Om59KT0+e2NvbnN0IGk9KDAsaC5UTCkoKSxvPSgwLEZhLlopKCJoaWRlQ29udmVyc2F0aW9uSGVhZGVyU3RhdHVzIikse25hbWU6YT0iIixhY3RpdmVBZG1pbnM6cz1bXX09KDAsaC5DRykoSGEpLGw9ZSYmKDAsdnIueUopKGUpLGM9bnVsbD09ZT92b2lkIDA6ZS5sYXN0UGFydGljaXBhdGluZ0FkbWluLGQ9ZT8oMCx2ci5kcikoYSxlKTphLHA9KDAsaC5DRykoei5seiksbT0oMCxoLkNHKSh6LlZBKSxnPSgwLGguQ0cpKHouRFgpLHt0ZWFtSW50cm86Zn09KDAsaC5DRykoeWEueU4pLHtleHBlY3RlZFRpbWVMb25nOngsZXhwZWN0ZWRUaW1lU2hvcnQ6dn09ZnVuY3Rpb24oKXtjb25zdCBlPSgwLGguQ0cpKHouZXIpO3JldHVybntpc091dE9mT2ZmaWNlSG91cnM6IShudWxsPT1lfHwhZS5vZmZpY2VIb3Vyc1Jlc3BvbnNlKSxleHBlY3RlZFRpbWVTaG9ydDoobnVsbD09ZT92b2lkIDA6ZS5sb2NhbGl6ZWRFeHBlY3RlZFJlc3BvbnNlRGVsYXlTaG9ydFRleHQpfHwoMCx1Lkl1KSgiY29udmVyc2F0aW9uX2NhcmRfdW5rbm93bl9yZXNwb25zZV90aW1lIiksZXhwZWN0ZWRUaW1lTG9uZzoobnVsbD09ZT92b2lkIDA6ZS5sb2NhbGl6ZWRFeHBlY3RlZFJlc3BvbnNlRGVsYXlMb25nVGV4dCl8fCgwLHUuSXUpKCJjb252ZXJzYXRpb25fY2FyZF91bmtub3duX3Jlc3BvbnNlX3RpbWUiKX19KCksW3ksYl09KDAsci51c2VTdGF0ZSkoIWwpLEU9KDAsRi5tKSgpP3ZvaWQgMDp0LHtpc01vYmlsZVNpemU6ayxpc01vYmlsZUxhbmRzY2FwZTpDfT0oKCk9Pntjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKHtpc01vYmlsZVNpemU6KDAsUi5VSykoKSxpc01vYmlsZUxhbmRzY2FwZTooMCxSLnhTKSgpfSksbj0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9Pnt0KHtpc01vYmlsZVNpemU6KDAsUi5VSykoKSxpc01vYmlsZUxhbmRzY2FwZTooMCxSLnhTKSgpfSl9KSxbdF0pO3JldHVybigwLHIudXNlTGF5b3V0RWZmZWN0KSgoKCk9Pih3aW5kb3cucGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbiksKCk9Pnt3aW5kb3cucGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbil9KSksW25dKSxlfSkoKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57YighQyYmIWwpfSksW2wsQ10pO2NvbnN0IHc9KCk9PntpKCgwLGNlLmtDKSgpKX0sUz0iYXNzaWduZWQiPT09KG51bGw9PWU/dm9pZCAwOmUudXhTdHlsZSksUD15JiZTJiYhayxUPW51bGwhPWUmJmUudXhTdHlsZT8iYm90Ij09PWUudXhTdHlsZTpwLFo9e2V4cGFuZGVkOnksb25CYWNrOkUsb25DbGljazpsPygpPT57YigheSl9OnZvaWQgMCxoYW5kbGVUcmFuc2NyaXB0RG93bmxvYWQ6UD8oKT0+e2UmJigoMCxPdC5XTSkoImRvd25sb2FkX3RyYW5zY3JpcHQiLCJjb252ZXJzYXRpb24iLCJtZXNzZW5nZXIiLCIiLHtjb252ZXJzYXRpb25faWQ6ZS5pZH0pLGkoKDAsZnIuS2opKGUuaWQpKSl9OnZvaWQgMH07KChlLHQpPT57Y29uc3R7cGF0aG5hbWU6bn09KDAsSC51c2VMb2NhdGlvbikoKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgcj0oMCxILm1hdGNoUGF0aCkoe3BhdGg6ZX0sbik7dCghIXIpfSksW24sZSx0XSl9KSgiL21lc3NhZ2VzL2NvbnZlcnNhdGlvbi8qIiwoMCxyLnVzZUNhbGxiYWNrKSgoZT0+e24oISFlJiZUKX0pLFtuLFRdKSk7Y29uc3QgST0oMCxoLkNHKShOLkRXKSxqPSgwLGguQ0cpKHZhLmIpO2lmKFQmJm51bGwhPW0mJm0ucGFydGljaXBhbnQpe2NvbnN0IHQ9InN0YXRlX2Nsb3NlZCIhPT0obnVsbD09ZT92b2lkIDA6ZS5zdGF0ZSksbj0heSYmKDAsRi5tKSgpJiYhKG51bGw9PWV8fCFlLmlkKSYmdCxpPVtjfHxtLnBhcnRpY2lwYW50XSxvPXIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsbiYmci5jcmVhdGVFbGVtZW50KExhLHtvbkNsaWNrOnd9KSksYT1FJiZ5JiYhZSYmSSYmajtyZXR1cm4gci5jcmVhdGVFbGVtZW50KE1hLHFhKHt0aXRsZTptLnBhcnRpY2lwYW50LmZpcnN0TmFtZSxjb2xsYXBzZWRBZG1pbnM6aSxjb2xsYXBzZWRTdWJ0aXRsZTpyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLG0uaGFzQUkmJnIuY3JlYXRlRWxlbWVudChHYS5yLHtzdHlsZTp7bWFyZ2luUmlnaHQ6IjRweCJ9fSksKDAsdS5JdSkoImJvdCIpKSxyaWdodEJ1dHRvbkFyZWE6byxzaG93Qm9yZGVyOiEhZSxzdHlsZToiZmluIixiYWNrQnV0dG9uTGFiZWw6YT8oMCx1Lkl1KSgiaG9tZV9zcGFjZV90aXRsZSIpOnZvaWQgMH0sWiksKG51bGw9PXM/dm9pZCAwOnMubGVuZ3RoKT4xJiYhbS51c2VDdXN0b21pemVkSWRlbnRpdHk/ci5jcmVhdGVFbGVtZW50KHJyLHthc3NpZ25lZEFkbWluOm0ucGFydGljaXBhbnQsYWN0aXZlQWRtaW5zOnMsc2l6ZToibGFyZ2UifSk6ci5jcmVhdGVFbGVtZW50KE1hLkFkbWluQXZhdGFycyx7YWRtaW5zOlttLnBhcnRpY2lwYW50XSxzaXplOjYyfSksci5jcmVhdGVFbGVtZW50KE1hLkV4cGFuZGVkSGVhZGluZyxudWxsLCgwLHUuSXUpKCJhc2tfYV9xdWVzdGlvbiIpKSxnJiZyLmNyZWF0ZUVsZW1lbnQobGEsbnVsbCwoMT09PShudWxsPT1zP3ZvaWQgMDpzLmxlbmd0aCl8fG0udXNlQ3VzdG9taXplZElkZW50aXR5KSYmci5jcmVhdGVFbGVtZW50KE1hLkFkbWluQXZhdGFycyx7YWRtaW5zOltzWzBdXSxzaXplOjIwfSksci5jcmVhdGVFbGVtZW50KE1hLkV4cGFuZGVkVGV4dCxudWxsLCgwLHUuSXUpKCJ0aGVfdGVhbV9jYW5faGVscF9pZl9uZWVkZWQiKSkpKX1pZihTJiZjKXtjb25zdCBlPVtjXSx0PWMuaW50cm87bGV0IG49Yy5pc0JvdD8oMCx1Lkl1KSgibWVzc2VuZ2VyX2JvdF9yZXBseV90aW1lIik6bnVsbCE9PShPPShfPWMpLmxvY2F0aW9uKSYmdm9pZCAwIT09TyYmTy50aW1lem9uZU9mZnNldCYmXy5sYXN0QWN0aXZlQXQ/KDAsWnIuVlApKF8ubGFzdEFjdGl2ZUF0KTpudWxsO3JldHVybiBvJiYobj1udWxsKSxyLmNyZWF0ZUVsZW1lbnQoTWEscWEoe3RpdGxlOmMuZmlyc3ROYW1lLGNvbGxhcHNlZEFkbWluczplLGNvbGxhcHNlZFN1YnRpdGxlOm59LFopLHIuY3JlYXRlRWxlbWVudChNYS5BZG1pbkF2YXRhcnMse2FkbWluczplfSksci5jcmVhdGVFbGVtZW50KE1hLkV4cGFuZGVkSGVhZGluZyxudWxsLG4pLHIuY3JlYXRlRWxlbWVudChNYS5FeHBhbmRlZFRleHQsbnVsbCwoZT0+e2NvbnN0IHQ9ZS5sb2NhdGlvbj9bZS5sb2NhdGlvbi5jaXR5TmFtZSxlLmxvY2F0aW9uLmNvdW50cnlOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbigiLCAiKTpudWxsO3JldHVybltlLmpvYlRpdGxlLHRdLmZpbHRlcihCb29sZWFuKS5qb2luKCIg4oCiICIpfSkoYykpLCEhdCYmci5jcmVhdGVFbGVtZW50KE1hLkV4cGFuZGVkVGV4dCx7dGFnTmFtZToiaSJ9LHQpLHIuY3JlYXRlRWxlbWVudCh4YSx7YWRtaW46Y30pKX17Y29uc3QgdD1lPygwLHZyLmRtKShzLGUpOnM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChNYSxxYSh7dGl0bGU6ZCxjb2xsYXBzZWRBZG1pbnM6dCxjb2xsYXBzZWRTdWJ0aXRsZTpyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJDbG9ja001Iixjb2xvcjoiaGVhZGVyVGl0bGVDb2xvciJ9KSwhbyYmdil9LFopLHIuY3JlYXRlRWxlbWVudChNYS5BZG1pbkF2YXRhcnMse2FkbWluczp0fSksci5jcmVhdGVFbGVtZW50KE1hLkV4cGFuZGVkSGVhZGluZyxudWxsLCFvJiZ4KSxmJiZyLmNyZWF0ZUVsZW1lbnQoTWEuRXhwYW5kZWRUZXh0LG51bGwsZikpfXZhciBfLE99LFVhPSgpPT57dmFyIGU7Y29uc3QgdD0oMCxILnVzZU1hdGNoKShgLyR7enQuWXUuaWR9L2NvbnZlcnNhdGlvbi86Y29udmVyc2F0aW9uSWRgKSxuPW51bGw9PXR8fG51bGw9PT0oZT10LnBhcmFtcyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY29udmVyc2F0aW9uSWQ7cmV0dXJuKDAsaC5DRykoKDAseWEuam8pKG4pKX07ZnVuY3Rpb24gVmEoKXtjb25zdCBlPSgwLEgudXNlTmF2aWdhdGUpKCksW3RdPSgwLEgudXNlU2VhcmNoUGFyYW1zKSgpLG49KDAsaC5UTCkoKSxpPVVhKCksbz10LmdldCgiZnJvbUFydGljbGVJRCIpLGE9InRydWUiPT09dC5nZXQoImZyb21TdGFuZGFsb25lQXJ0aWNsZSIpLHM9KDAsaC5DRykoeWEuUTIpLGw9KCk9PntvJiYobnVsbCE9cyYmcy5mcm9tU3RhbmRhbG9uZUFydGljbGV8fGE/bigoMCxNdC5HVSkobyx7fSwhMCkpOm4oKDAsTXQuTl8pKG8sbnVsbCwhMCkpKSxlKC0xKX07cmV0dXJuIHIuY3JlYXRlRWxlbWVudChHZSx7c3BhY2U6enQuWXV9LChlPT5yLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJjb252ZXJzYXRpb24vdHJpZ2dlci1zY3JlZW4iLGVsZW1lbnQ6bnVsbH0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJjb252ZXJzYXRpb24vOmNvbnZlcnNhdGlvbklkIixlbGVtZW50OnIuY3JlYXRlRWxlbWVudChXYSx7Y29udmVyc2F0aW9uOmksZ29CYWNrOmwsc2V0SXNPdmVybGF5OmV9KX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJjb252ZXJzYXRpb24vbmV3IixlbGVtZW50OnIuY3JlYXRlRWxlbWVudChXYSx7Z29CYWNrOmwsc2V0SXNPdmVybGF5OmV9KX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJ0aWNrZXRzIn0sci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6Ijp0aWNrZXRJZCIsZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQob2Ese3NldElzT3ZlcmxheTplfSl9KSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDoiY3JlYXRlLzp0aWNrZXRUeXBlSWQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KGlhLG51bGwpfSkpKSkpfXZhciAkYTtmdW5jdGlvbiBLYSgpe3JldHVybiBLYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LEthLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBZYShlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzdmciLEthKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjMzLGhlaWdodDozMixmaWxsOiJub25lIn0sZSksJGF8fCgkYT1yLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiIjMUExQTFBIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTI2LjMgMjEuNzM3VjYuMjYyQTQuMDYyIDQuMDYyIDAgMDAyMi4yMzcgMi4ySDYuNzY0QTQuMDYzIDQuMDYzIDAgMDAyLjcgNi4yNjJ2MTUuNDc1QTQuMDYyIDQuMDYyIDAgMDA2Ljc2MyAyNS44aDE1LjQ3NWE0LjA2MiA0LjA2MiAwIDAwNC4wNjItNC4wNjN6bS02LjcwNS0xMS4wNGMuNDUuNDUuNDUgMS4xNzggMCAxLjYyN2wtNS40MTcgNS40MTdhMS4xNSAxLjE1IDAgMDEtMS42MjcgMGwtMi43MDktMi43MDhhMS4xNTEgMS4xNTEgMCAxMTEuNjI4LTEuNjI4bDEuODk0IDEuODk0IDQuNjAzLTQuNjAyYTEuMTUgMS4xNSAwIDAxMS42MjggMHptOC44NjkgMi4xNjhhMS4xNTEgMS4xNTEgMCAxMTIuMzAyIDB2OS4yNzZhNy45MjIgNy45MjIgMCAwMS03LjkyMiA3LjkyMmgtOS40OGExLjE1MSAxLjE1MSAwIDExMC0yLjMwMmg5LjQ4YTUuNjIgNS42MiAwIDAwNS42Mi01LjYydi05LjI3NnoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9bi5wO2NvbnN0IEphPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYms4ODNtMCJ9KSh7bmFtZToieGU1ZW44IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWF4LXdpZHRoOjMzMHB4O2hlaWdodDoxMDAlO21hcmdpbjowIGF1dG87In0pLFhhPSgwLGYuWlApKFlhLHt0YXJnZXQ6ImUxYms4ODNtMSJ9KSh7bmFtZToiMTQwbTk0eiIsc3R5bGVzOiJ3aWR0aDozM3B4O2hlaWdodDozM3B4OyJ9KSxRYT0oMCxmLlpQKSgiaDIiLHt0YXJnZXQ6ImUxYms4ODNtMiJ9KSh7bmFtZToiczZxM25jIixzdHlsZXM6Im1hcmdpbjoyMHB4IDA7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MS4zMztmb250LXdlaWdodDo2MDA7In0pLGVzPSgwLGYuWlApKCJoMyIse3RhcmdldDoiZTFiazg4M20zIn0pKHtuYW1lOiJvNjZhZDMiLHN0eWxlczoiZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40Mzt0ZXh0LWFsaWduOmNlbnRlcjsifSksdHM9KCk9PnIuY3JlYXRlRWxlbWVudChKYSx7ImRhdGEtdGVzdGlkIjoiY2hlY2tsaXN0LWVtcHR5LXN0YXRlIn0sci5jcmVhdGVFbGVtZW50KFhhLG51bGwpLHIuY3JlYXRlRWxlbWVudChRYSxudWxsLCgwLHUuSXUpKCJub190YXNrcyIpKSxyLmNyZWF0ZUVsZW1lbnQoZXMsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsKDAsdS5JdSkoIm5vX3Rhc2tzX2F2YWlsYWJsZV9jdXJyZW50bHkiKSksci5jcmVhdGVFbGVtZW50KCJwIixudWxsLCgwLHUuSXUpKCJjaGVja19sYXRlcl9mb3JfdXBkYXRlcyIpKSkpLG5zPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU4M25ubnMwIn0pKHtuYW1lOiJpdzRxeW0iLHN0eWxlczoiZGlzcGxheTpncmlkO2dhcDoyMHB4OyJ9KSxycz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTg0cHlnMTAifSkoInBhZGRpbmc6MTZweCAyMHB4O2JvcmRlci1yYWRpdXM6MTBweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4wOCk7Ym94LXNoYWRvdzowcHggMnB4IDhweCByZ2JhKDAsMCwwLDAuMDYpO2N1cnNvcjpwb2ludGVyOyY6aG92ZXIgaDJ7Y29sb3I6IiwoMCxmLnJTKSgibGlua0NvbG9yIiksIjt9YmFja2dyb3VuZC1jb2xvcjoiLCgoe2lzQ29tcGxldGU6ZX0pPT5lPygwLGYuclMpKCJsaWdodEdyZXk1Iik6KDAsZi5yUykoIndoaXRlIikpLCI7IiksaXM9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTE4NHB5ZzExIn0pKHtuYW1lOiJuNjRnZjciLHN0eWxlczoiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjRweDsifSksb3M9KDAsZi5aUCkoImgyIix7dGFyZ2V0OiJlMTg0cHlnMTIifSkoImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoyMXB4O2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjsiKSxhcz0oMCxmLlpQKSgicCIse3RhcmdldDoiZTE4NHB5ZzEzIn0pKCJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXJnaW4tYm90dG9tOjEycHg7Y29sb3I6IiwoMCxmLnJTKSgibTVEYXJrR3JleTIiKSwiOyIpLHNzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxODRweWcxNCJ9KSgibWFyZ2luLWJvdHRvbToiLCgoe2lzQ29tcGxldGU6ZX0pPT5lPyIwcHgiOiIxMnB4IiksIjsiKSxscz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTg0cHlnMTUifSkoImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjsiKSxjcz0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZTE4NHB5ZzE2In0pKHtuYW1lOiIzNWV6ZzMiLHN0eWxlczoiZm9udC13ZWlnaHQ6NjAwOyJ9KSxkcz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTg0cHlnMTcifSkoe25hbWU6IjFiYXVsdnoiLHN0eWxlczoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0pLHBzPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTg0cHlnMTgifSkoe25hbWU6IjFodzI5aTkiLHN0eWxlczoibWFyZ2luLXRvcDoxMnB4OyJ9KSwoe3RpdGxlOmUsc3VidGl0bGU6dCxjaGVja2xpc3RTdGF0dXM6bixjaGVja2xpc3RUYXNrczppLGNvbXBsZXRlZFRhc2tzOm8sZXN0aW1hdGVkVGltZVJlbWFpbmluZzphLG5leHRTdGVwVGl0bGU6cyxvbkNsaWNrOmx9KT0+e2NvbnN0IGM9bz4wPyJOZXh0IHN0ZXAiOiJGaXJzdCBzdGVwIixkPW49PT1laS52RS5Db21wbGV0ZSYmaT09PW8scD1uPT09ZWkudkUuTmV3O3JldHVybiByLmNyZWF0ZUVsZW1lbnQocnMse2lzQ29tcGxldGU6ZCxvbkNsaWNrOmx9LHIuY3JlYXRlRWxlbWVudChpcyxudWxsLHIuY3JlYXRlRWxlbWVudChvcyxudWxsLHIuY3JlYXRlRWxlbWVudChIci5aLHtibG9ja3M6ZX0pKSxyLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZTpwPyJVbnJlYWRJbmRpY2F0b3IiOiJSaWdodENoZXZyb25Db2xvcmFibGUiLGNvbG9yOnA/dm9pZCAwOiJsaW5rQ29sb3IifSkpLHQmJiFkJiZyLmNyZWF0ZUVsZW1lbnQoYXMsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoSHIuWix7YmxvY2tzOnR9KSksci5jcmVhdGVFbGVtZW50KHNzLHtpc0NvbXBsZXRlOmR9LHIuY3JlYXRlRWxlbWVudChYci5aLHtjaGVja2xpc3RUYXNrczppLGNvbXBsZXRlZENoZWNrbGlzdFRhc2tzOm8sZXN0aW1hdGVkVGltZVJlbWFpbmluZzphLGNvbmRlbnNlZDohMCxwcmVmaWxsUHJvZ3Jlc3NJZkVtcHR5OiEwfSkpLHMmJnIuY3JlYXRlRWxlbWVudChscyxudWxsLHIuY3JlYXRlRWxlbWVudChjcyxudWxsLGMsIjogIiksci5jcmVhdGVFbGVtZW50KGRzLG51bGwsci5jcmVhdGVFbGVtZW50KEhyLlose2Jsb2NrczpzfSkpKSl9KSx1cz0oe2NoZWNrbGlzdDplLG9uQ2xpY2s6dH0pPT57Y29uc3Qgbj0oMCx0aS51NSkoZSksaT0oMCx0aS5DVCkobiksbz0oMCx0aS5zaikobiksYT0oMCx0aS5pMSkobykscz1vLnJlZHVjZSgoKGUsdCk9PmUrdC5lc3RpbWF0ZWRUaW1lKSwwKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHBzLHt0aXRsZTplLnRpdGxlQmxvY2tzLHN1YnRpdGxlOmUuc3VidGl0bGVCbG9ja3MsY2hlY2tsaXN0U3RhdHVzOmUuc3RhdHVzLGNoZWNrbGlzdFRhc2tzOm4ubGVuZ3RoLGNvbXBsZXRlZFRhc2tzOmkubGVuZ3RoLGVzdGltYXRlZFRpbWVSZW1haW5pbmc6cyxuZXh0U3RlcFRpdGxlOm51bGw9PWE/dm9pZCAwOmEudGl0bGVCbG9ja3Msb25DbGljazp0fSl9LG1zPSh7Y2hlY2tsaXN0czplLG9uQ2hlY2tsaXN0Q2xpY2s6dH0pPT5yLmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLXRlc3RpZCI6ImNoZWNrbGlzdHMtaG9tZSJ9LHIuY3JlYXRlRWxlbWVudChucyxudWxsLGUubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQodXMse2tleTplLmlkLGNoZWNrbGlzdDplLG9uQ2xpY2s6KCk9PnQoZS5jaGVja2xpc3RQcm9ncmVzc0lkKX0pKSkpKTt2YXIgaHM9big4MTcwNSk7Y29uc3QgZ3M9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFnNzVlY3YwIn0pKHtuYW1lOiIxb2t1OGF4IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTtvdmVyZmxvdy15OmF1dG87In0pLGZzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZzc1ZWN2MSJ9KSh7bmFtZToiZDBreXJwIixzdHlsZXM6ImJveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjMwcHggMTZweDtoZWlnaHQ6MTAwJTtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7In0pO3ZhciB4cz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLlNJTkdMRV9DSEVDS0xJU1Q9MF09IlNJTkdMRV9DSEVDS0xJU1QiLGVbZS5NVUxUSVBMRV9DSEVDS0xJU1RTPTFdPSJNVUxUSVBMRV9DSEVDS0xJU1RTIixlW2UuTk9fQ0hFQ0tMSVNUPTJdPSJOT19DSEVDS0xJU1QiLGV9KHhzfHx7fSk7Y29uc3QgdnM9KCk9Pntjb25zdFtlLHRdPSgwLHIudXNlU3RhdGUpKCksbj0oMCxoLkNHKShRci5VZyksaT0oMCxoLlRMKSgpLG89KDAsci51c2VDYWxsYmFjaykoKChlLHQ9ITEsbj0hMSk9PntpKCgwLHhyLnFmKShlKSl9KSxbaV0pLGE9KDAsci51c2VDYWxsYmFjaykoKCgpPT57aSgoMCxocy5XbCkoKSksaSgoMCxocy5ObikoKSl9KSxbaV0pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PntpZihlPT09eHMuU0lOR0xFX0NIRUNLTElTVCl7Y29uc3R7Y2hlY2tsaXN0UHJvZ3Jlc3NJZDplfT1uWzBdOygwLHRpLmFBKShgU2hvd2luZyBzaW5nbGUgY2hlY2tsaXN0IHByb2dyZXNzIElEOiAke2V9YCksbyhlLCEwKX19KSxbbixvLGVdKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57MT09PW4ubGVuZ3RoJiZ0KHhzLlNJTkdMRV9DSEVDS0xJU1QpLG4ubGVuZ3RoPjEmJnQoeHMuTVVMVElQTEVfQ0hFQ0tMSVNUUyksMD09PW4ubGVuZ3RoJiZ0KHhzLk5PX0NIRUNLTElTVCl9KSxbbi5sZW5ndGhdKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57YSgpfSksW2FdKSxyLmNyZWF0ZUVsZW1lbnQoZ3MsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoZnMsbnVsbCxlPT09eHMuTVVMVElQTEVfQ0hFQ0tMSVNUUyYmci5jcmVhdGVFbGVtZW50KG1zLHtjaGVja2xpc3RzOm4sb25DaGVja2xpc3RDbGljazpvfSksZT09PXhzLk5PX0NIRUNLTElTVCYmci5jcmVhdGVFbGVtZW50KHRzLG51bGwpKSl9LHlzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU2aHB6anAwIn0pKHtuYW1lOiJtMjk5czciLHN0eWxlczoiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MjBweCAwOyJ9KSxicz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNmhwempwMSJ9KSh7bmFtZToiZWFlYWNzIixzdHlsZXM6Im1hcmdpbjoxMHB4OyJ9KTt2YXIgRXM9bigxNTY4OSksa3M9big0MzE1Nik7Y29uc3QgQ3M9KHt0aWNrZXRzUG9ydGFsVXJsOmUsdGlja2V0czp0LGxvYWRpbmc6bixvblRpY2tldENsaWNrOmksb25UaWNrZXRzU2Nyb2xsOm99KT0+e2NvbnN0IGE9ZT97aHJlZjplLGxhYmVsOigwLHUuSXUpKCJ0aWNrZXRfcG9ydGFsX2NhcmRfdGl0bGUiKSxzdWJMYWJlbDooMCx1Lkl1KSgidGlja2V0X3BvcnRhbF9jYXJkX2xpbmtfdGl0bGUiKX06bnVsbDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEVzLlose2Vycm9yVGV4dDoiU29tZXRoaW5nIHdlbnQgd3JvbmcgbG9hZGluZyB5b3VyIHRpY2tldHMiLGFsaWduOiJjZW50ZXIiLHN0eWxlOnttYXJnaW5Ub3A6IjIwcHgiLGZsZXg6MX19LHIuY3JlYXRlRWxlbWVudChVaS5aLHtpc0luc2lkZU1vZGFsOiExLGZsZXg6ITAsZHluYW1pY0NoaWxkcmVuSGVpZ2h0OiEwLG9uU2Nyb2xsOm99LGEmJnIuY3JlYXRlRWxlbWVudChicyxudWxsLHIuY3JlYXRlRWxlbWVudChjaSx7Ym9sZExhYmVsOiEwLGxpbmtTaXplOiJtZWRpdW0iLGxpc3RQYWRkaW5nOjAsbGlua3M6W2FdfSkpLHIuY3JlYXRlRWxlbWVudCh3dC5aUCxudWxsLHQubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQoVGkse2tleTplLmlkLHRpdGxlOmUubmFtZSxwdWJsaWNUaWNrZXRJZDplLnB1YmxpY1RpY2tldElkLHR5cGVOYW1lOmUudGlja2V0VHlwZU5hbWUsc3RhdHVzOmUuc3RhdHVzLHVucmVhZDohMT09PWUucmVhZCxvbkNsaWNrOigpPT5pKGUuaWQpfSkpKSxuJiZyLmNyZWF0ZUVsZW1lbnQoeXMsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXQuWix7aW5saW5lOiEwfSkpKSkpfSx3cz0oKT0+e2NvbnN0IGU9KDAsSC51c2VOYXZpZ2F0ZSkoKSx0PSgwLGguQ0cpKFppLmtIKSxuPSgwLGguQ0cpKFppLk5BKSxpPSgwLGguQ0cpKFppLkZwKSxbbyxhXT0oMCxyLnVzZVN0YXRlKSgxKSxzPSgwLGguQ0cpKFppLllYKSxsPSgwLGguVEwpKCksYz0oMCxyLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IHQ9ZS50YXJnZXQ7dC5zY3JvbGxIZWlnaHQtdC5zY3JvbGxUb3A8dC5jbGllbnRIZWlnaHQrNzAmJiFpJiZzJiZvIT09cyYmKGEocyksbCgoMCxrcy5TdCkocykpKX0pLFtsLGkscyxvXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChDcyx7dGlja2V0c1BvcnRhbFVybDp0LHRpY2tldHM6bixsb2FkaW5nOmksb25UaWNrZXRDbGljazp0PT57ZShgL3RpY2tldHMvZGV0YWlscy8ke3R9YCx7c3RhdGU6e25hdmlnYXRpbmdGcm9tOkF0LlJPfX0pfSxvblRpY2tldHNTY3JvbGw6Y30pfTtmdW5jdGlvbiBTcygpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoR2Use3NwYWNlOnp0LmNPfSwoZT0+ci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDoiZGV0YWlscy86dGlja2V0SWQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KG9hLHtzZXRJc092ZXJsYXk6ZX0pfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImNyZWF0ZS86dGlja2V0VHlwZUlkIixlbGVtZW50OnIuY3JlYXRlRWxlbWVudChpYSxudWxsKX0pKSkpfXZhciBQcz1uKDQ1ODA5KTtjb25zdCBUcz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOXUxNmRxMCJ9KSh7bmFtZToiMWJmZWMxeiIsc3R5bGVzOiJtaW4td2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7ZmxleDoxOyJ9KTt2YXIgWnM9bigxMjgxOCksSXM9bigxODQ0NiksanM9bi5uKElzKSxfcz1uKDI2ODgxKSxPcz1uKDMzNjQ2KTtjb25zdCBBcz0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZTF6dmQ4aDAifSkoKSxCcz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXp2ZDhoMSJ9KSgiYWxpZ24taXRlbXM6ZmxleC1lbmQ7ZGlzcGxheTpibG9jaztmbGV4LXNocmluazowOyIsKCh7c2hvd09uU3BhY2VzOmV9KT0+KDAsZi5pdikoIm1hcmdpbjoiLGU/IjAiOiIxMSIsInB4IGF1dG87IikpLCIgIiwoKHtzaG93T25TcGFjZXM6ZSx0aGVtZTp0fSk9PmUmJigwLGYuaXYpKCJoZWlnaHQ6IiwzMiwiO2JhY2tncm91bmQ6Iix0LmxpZ2h0R3JleTcsIjsmOmhvdmVye2JhY2tncm91bmQ6Iix0LmxpZ2h0R3JleTUsIjt9IikpLCIgIiwoKHt1bmRlckNvbnN0cnVjdGlvbjplfSk9PmUmJigwLGYuaXYpKCJiYWNrZ3JvdW5kLWltYWdlOnVybCgiLCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQUdDQUlBQUFBT3RscGRBQUFBTkVsRVFWUW96MlA0ZXRHRUVuUnhpMGxIRmRYUThzbFFZeGtHb1pzb2NoYnQzRVMrczJqcUpqS2RSV3Mza2VNc09yZ0ppQUI0SXRsaXJxcUpHZ0FBQUFCSlJVNUVya0pnZ2c9PSIsIik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7YmFja2dyb3VuZC1zaXplOjI1cHggM3B4O21hcmdpbi1sZWZ0Oi0xNnB4O21hcmdpbi1yaWdodDotMTZweDsiKSkpO3ZhciBScz17bmFtZToiZ211d2JmIixzdHlsZXM6ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsifSx6cz17bmFtZToiMTI3amhpOCIsc3R5bGVzOiJ0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlOyJ9O2NvbnN0IE5zPSgwLGYuWlApKCJhIix7dGFyZ2V0OiJlMXp2ZDhoMiJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwoKHtzaG93T25TcGFjZXM6ZX0pPT4oMCxmLml2KSgiZm9udC1zaXplOjEzcHg7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6OHB4ICIsZT8iMCI6IjE2IiwicHg7IikpLCIgdHJhbnNpdGlvbjphbGwgODBtcztjb2xvcjoiLCgwLGYuclMpKCJ3ZVJ1bk9uSW50ZXJjb21UZXh0IiksIiAhaW1wb3J0YW50OyIsKCh7c2hvd09uU3BhY2VzOmUsdGhlbWU6dH0pPT4hZSYmKDAsZi5pdikoIiY6aG92ZXJ7YmFja2dyb3VuZDoiLHQubGlnaHRHcmV5NSwiO30iKSksIiAiLCgoe3Nob3dPblNwYWNlczplfSk9PmUmJnpzKSwiICIsKCh7ZGlzcGxheUFzQ29tcGFjdDplfSk9PmUmJlJzKSksTXM9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF6dmQ4aDMifSkoKTsoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXp2ZDhoNCJ9KSgiei1pbmRleDoiLCgwLHguVzUpKDIpLCI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7IixCcy5jbGFzc05hbWUsIntwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjAuOTc7d2lkdGg6MTAwJTtib3R0b206MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MDtwYWRkaW5nOjVweCAwO2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO2JveC1zaGFkb3c6MCAtMTBweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMDQpOyIsTXMuY2xhc3NOYW1lLCJ7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9fSIpLERzPSJwb3dlcmVkX2J5X2V4cGVyaWVuY2UiO3ZhciBEcztjb25zdCBMcz0oMCxvLmNvbm5lY3QpKChmdW5jdGlvbihlLHQpe2NvbnN0e2ludGVyY29tTGlua1NvbHV0aW9uOm4sY29tcG9zZXJIZWlnaHQ6cixjdXJyZW50VmlldzppLHNob3dPblNwYWNlczpvfT10O2xldCBhLHM7ZS5zZXNzaW9uJiYoYT1lLnNlc3Npb24uYXBwSWQpLGUudXNlciYmKHM9ZS51c2VyLmlkKTtjb25zdHtuYW1lOmwsaXNEZXZlbG9wZXJXb3Jrc3BhY2U6Y309ZS5hcHA7cmV0dXJue2FwcElkOmEsYXBwTmFtZTpsLHVzZXJJZDpzLGNvbXBvc2VySGVpZ2h0OnIsaW50ZXJjb21MaW5rU29sdXRpb246bixjdXJyZW50VmlldzppLGlzRGV2ZWxvcGVyV29ya3NwYWNlOmMsc2hvd09uU3BhY2VzOm99fSkpKChmdW5jdGlvbihlKXtjb25zdCB0PSgwLGguQ0cpKE4uRzApLHt1c2VySWQ6bixhcHBOYW1lOmksaW50ZXJjb21MaW5rU29sdXRpb246byxhcHBJZDphLGN1cnJlbnRWaWV3OnM9ImNvbnZlcnNhdGlvbiIsaXNEZXZlbG9wZXJXb3Jrc3BhY2U6bCxzaG93T25TcGFjZXM6Y309ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEJzLHt1bmRlckNvbnN0cnVjdGlvbjpsLHNob3dPblNwYWNlczpjLCJkYXRhLXRlc3RpZCI6ImludGVyY29tLWxpbmsifSxyLmNyZWF0ZUVsZW1lbnQoTXMsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoTnMse2hyZWY6KCgpPT57dmFyIGUsdDtjb25zdCByPW98fCIiO2xldCBjPSJ1dG1fY29udGVudD00KyI7cyYmKGMrPWAke3N9K2ApLGMrPWw/ImRldmVsb3Blci13b3Jrc3BhY2UmIjoid2UtcnVuLW9uLWludGVyY29tJiI7Y29uc3QgZD0oMCx1aS5LMSkoKT8ibW9iaWxlLXdlYiI6ImRlc2t0b3Atd2ViIixwPWVuY29kZVVSSSgobnVsbD09PShlPXdpbmRvdyl8fHZvaWQgMD09PWV8fG51bGw9PT0oZT1lLnBhcmVudCl8fHZvaWQgMD09PWV8fG51bGw9PT0oZT1lLmxvY2F0aW9uKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5vcmlnaW4pKyhudWxsPT09KHQ9d2luZG93KXx8dm9pZCAwPT09dHx8bnVsbD09PSh0PXQucGFyZW50KXx8dm9pZCAwPT09dHx8bnVsbD09PSh0PXQubG9jYXRpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnBhdGhuYW1lKSk7cmV0dXJuYGh0dHBzOi8vd3d3LmludGVyY29tLmNvbS9pbnRlcmNvbS1saW5rP3VzZXJfaWQ9JHtufHwiIn0mcG93ZXJlZF9ieV9hcHBfaWQ9JHthfHwiIn0mY29tcGFueT0ke2VuY29kZVVSSUNvbXBvbmVudChpKX0mc29sdXRpb249JHtyfSZgK2MrYHV0bV9zb3VyY2U9JHtkfSZ1dG1fbWVkaXVtPW1lc3NlbmdlciZ1dG1fY2FtcGFpZ249aW50ZXJjb20tbGluayZgK2B1dG1fcmVmZXJyZXI9JHtwfWB9KSgpLG9uQ2xpY2s6KCk9Pntjb25zdCBlPWw/ImRldmVsb3Blcl93b3Jrc3BhY2UiOiJ3ZV9ydW5fb25faW50ZXJjb20iOygwLE90LldNKSgiY2xpY2tlZCIsZSwibWVzc2VuZ2VyIixzLHt9KX0sdGFyZ2V0OiJfYmxhbmsiLHNob3dPblNwYWNlczpjLGRpc3BsYXlBc0NvbXBhY3Q6dH0sci5jcmVhdGVFbGVtZW50KE9zLlose2Rpc3BsYXlBc0NvbXBhY3Q6dH0pLHIuY3JlYXRlRWxlbWVudChBcyx7aWQ6ImludGVyY29tLWxpbmstdGV4dCIsImRhdGEtdGVzdGlkIjoiaW50ZXJjb20tbGluay10ZXh0In0sbD8iRGV2ZWxvcG1lbnQgV29ya3NwYWNlIjooMCx1Lkl1KSgicG93ZXJlZF9ieV9pbnRlcmNvbSIpKSkpKX0pKTt2YXIgR3M9big4MjY0MCksRnM9big4MzYwNSk7Y29uc3QgcXM9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWJsajdiaDAifSkoe25hbWU6ImZ5YXdiNiIsc3R5bGVzOiItd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDsuaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktbWFpbi1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxO3BhZGRpbmctYm90dG9tOjRweDt9In0pLEhzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVibGo3YmgxIn0pKHtuYW1lOiJpb3U3dTUiLHN0eWxlczoicG9zaXRpb246c3RpY2t5O3otaW5kZXg6MTt0b3A6MDtwYWRkaW5nOjE0cHg7cGFkZGluZy1ib3R0b206MDt0ZXh0LWFsaWduOmNlbnRlcjsifSksV3M9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWJsajdiaDIifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTpzY3JvbGw7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7b3V0bGluZS1vZmZzZXQ6LTVweDsuaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktYm90dG9tLWdyb3VweyYtZW50ZXJ7b3BhY2l0eTowLjAxO30mLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7dHJhbnNpdGlvbjpvcGFjaXR5ICIsMTAwLCJtcyBlYXNlLWluICIsMzAwLCJtczt9Ji1leGl0e29wYWNpdHk6MTt9Ji1leGl0LWFjdGl2ZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5ICIsMTAwLCJtcyBlYXNlLW91dDt9fSIpLFVzPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlYmxqN2JoMyJ9KSh7bmFtZToiMnYxcmN3IixzdHlsZXM6ImZsZXgtc2hyaW5rOjA7cGFkZGluZzowIDE5cHg7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVibGo3Ymg0In0pKHtuYW1lOiIxcnV4cDF2IixzdHlsZXM6InBhZGRpbmc6MjBweDsifSkpO3ZhciBWcz1uKDQyNDExKTtjb25zdCAkcz1bIm5hbWUiLCJzdGF0dXMiXTtmdW5jdGlvbiBLcyhlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLGk9e30sbz1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8by5sZW5ndGg7cisrKW49b1tyXSx0LmluZGV4T2Yobik+PTB8fChpW25dPWVbbl0pO3JldHVybiBpfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9ZnVuY3Rpb24gWXMoZSl7bGV0e25hbWU6dCxzdGF0dXM6bn09ZSxpPUtzKGUsJHMpO2NvbnN0IG89KDAsaC5DRykoTi5ENik7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChKcyxudWxsLHIuY3JlYXRlRWxlbWVudChYcyxpLHIuY3JlYXRlRWxlbWVudChRcyxudWxsLHIuY3JlYXRlRWxlbWVudChlbCxudWxsLHIuY3JlYXRlRWxlbWVudChWcy5aLG51bGwpKSxyLmNyZWF0ZUVsZW1lbnQodGwsbnVsbCx0LCFvJiZyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChybCxudWxsLCLigKIiKSwiICIsci5jcmVhdGVFbGVtZW50KG5sLG51bGwsKDAsT3IuZGYpKG4pKSkpKSkpfWNvbnN0IEpzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVmejFheGwwIn0pKHtuYW1lOiIxbDR3NnBkIixzdHlsZXM6ImRpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyJ9KSxYcz0oMCxmLlpQKShILkxpbmsse3RhcmdldDoiZWZ6MWF4bDEifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIDE2cHg7aGVpZ2h0OjQwcHg7d2lkdGg6Zml0LWNvbnRlbnQ7Ym94LXNoYWRvdzowcHggMnB4IDhweCByZ2JhKDAsMCwwLDAuMDYpO21pbi13aWR0aDo4NnB4O21heC13aWR0aDozMjZweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjE2cHg7Zm9udC1zaXplOjEzcHg7Zm9udC1mYW1pbHk6IiwoMCxmLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7Zm9udC13ZWlnaHQ6NjAwO2JvcmRlci1yYWRpdXM6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjt0cmFuc2l0aW9uOmFsbCAxMjBtcztjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkICIsKDAsZi5yUykoImxpZ2h0Qm9yZGVyIiksIjsmOmxpbmt7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7fSY6aG92ZXJ7Ym94LXNoYWRvdzowcHggMnB4IDhweCByZ2JhKDAsMCwwLDAuMSk7Y29sb3I6aW5oZXJpdDt9JjphY3RpdmV7Ym9yZGVyLWNvbG9yOiIsKDAsZi5yUykoImJ1dHRvbkJhY2tncm91bmRDb2xvckFjdGl2ZSIpLCI7Ym94LXNoYWRvdzowcHggNHB4IDEycHggcmdiYSgwLDAsMCwwLjEpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDJweCk7fSIpLFFzPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVmejFheGwyIn0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiIsKDAsZi5yUykoImxpbmtDb2xvciIpLCI7IiksZWw9KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImVmejFheGwzIn0pKHtuYW1lOiJsdnl1NWoiLHN0eWxlczoibWFyZ2luLXJpZ2h0OjEwcHg7In0pLHRsPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlZnoxYXhsNCJ9KSh7bmFtZToicWZseGFsIixzdHlsZXM6Im1heC13aWR0aDozMDBweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7In0pLG5sPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlZnoxYXhsNSJ9KSgpLHJsPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlZnoxYXhsNiJ9KSh7bmFtZToiMTdtYWJzMiIsc3R5bGVzOiJtYXJnaW46MCAycHg7In0pO3ZhciBpbD1uKDM3ODEwKSxvbD1uKDQ3OTApLGFsPW4oMjY3NTQpLHNsPXtuYW1lOiJ1ZXdsMmIiLHN0eWxlczoibWFyZ2luLWJvdHRvbToyMHB4OyJ9O2NvbnN0IGxsPSgwLGYuWlApKCJ1bCIse3RhcmdldDoiZTE3NTNmNDgwIn0pKCJsaXN0LXN0eWxlLXR5cGU6bm9uZTtkaXNwbGF5OmZsZXg7Z2FwOjNweDttYXJnaW4tdG9wOicyMHB4JzsiLCgoe2lubGluZTplfSk9PiFlJiZzbCkpLGNsPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNzUzZjQ4MSJ9KSh7bmFtZToiOGF0cWhiIixzdHlsZXM6IndpZHRoOjEwMCU7In0pO3ZhciBkbD17bmFtZToiaXY1cnZiIixzdHlsZXM6ImJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjUwcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NTBweDsifSxwbD17bmFtZToiZzh6dm9iIixzdHlsZXM6ImJvcmRlci10b3AtbGVmdC1yYWRpdXM6NTBweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjUwcHg7In07Y29uc3QgdWw9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTE3NTNmNDgyIn0pKCJoZWlnaHQ6NHB4O3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjoiLCgoe3RoZW1lOmV9KT0+ZS5saWdodEdyZXkzKSwiO21hcmdpbi1ib3R0b206OHB4OyIsKCh7Y29sb3JlZDplLGNvbG9yOnQsdGhlbWU6bn0pPT5lJiYoMCxmLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLG5bdF0sIjsiKSksIiAiLCgoe3JvdW5kZWRTaWRlOmV9KT0+ImxlZnQiPT09ZT9wbDoicmlnaHQiPT09ZT9kbDpudWxsKSksbWw9KDAsZi5aUCkoImxpIix7dGFyZ2V0OiJlMTc1M2Y0ODMifSkoIndpZHRoOmF1dG87ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxOyIsKCh7aXNDdXJyZW50OmV9KT0+ZSYmKDAsZi5pdikoImZvbnQtd2VpZ2h0OiIsZT8iNjAwIjoiNDAwIiwiOyIpKSwiIGZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwoKHtkaW1pbmlzaGVkOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY29sb3I6Iix0LmdyZXksIjsiKSkpLGhsPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNzUzZjQ4NCJ9KSgiZm9udC13ZWlnaHQ6IiwoKHtpc0N1cnJlbnQ6ZX0pPT5lPyI2MDAiOiI0MDAiKSwiO2xpbmUtaGVpZ2h0OjIxcHg7bWFyZ2luLXRvcDowcHg7Iik7dmFyIGdsPXtuYW1lOiIxZDZxdG41IixzdHlsZXM6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC13ZWlnaHQ6NjAwOyJ9O2NvbnN0IGZsPSgwLGYuWlApKGFsLnYxLHt0YXJnZXQ6ImUxNzUzZjQ4NSJ9KSgidGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtd2VpZ2h0OjQwMDsiLCgoe2JpZzplfSk9PmUmJmdsKSkseGw9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTE3NTNmNDg2In0pKHtuYW1lOiJ6Z3NycG8iLHN0eWxlczoid2lkdGg6YXV0bzttYXJnaW4tYm90dG9tOjEwcHg7In0pLHZsPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNzUzZjQ4NyJ9KSh7bmFtZToiMXR2bGlnMCIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7In0pO3ZhciB5bD17bmFtZToidmF0MW53IixzdHlsZXM6ImZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4O21hcmdpbi1ib3R0b206NHB4OyJ9O2NvbnN0IGJsPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNzUzZjQ4OCJ9KSgidGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDtmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo4cHg7Y29sb3I6IiwoMCxmLnJTKSgidGltZWxpbmVPcmFuZ2UiKSwiOyIsKCh7aW5saW5lOmV9KT0+ZSYmeWwpKSxFbD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTc1M2Y0ODkifSkoe25hbWU6ImpnaTY5YyIsc3R5bGVzOiJmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjE4cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7c3Zne21hcmdpbi1yaWdodDo4cHg7fSJ9KTt2YXIga2wsQ2wsd2wsU2w7ZnVuY3Rpb24gUGwoKXtyZXR1cm4gUGw9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxQbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVGwoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3ZnIixQbCh7d2lkdGg6MTIsaGVpZ2h0OjEzLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LGUpLGtsfHwoa2w9ci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTYgNC4zMzNjLjU1MyAwIDEuMDk2LjE1NSAxLjU2Ny40NDcuNDcyLjI5My44NTUuNzExIDEuMTA2IDEuMjFhMy4wNjIgMy4wNjIgMCAwMS0uMjQ2IDMuMTZMNiA3LjM2N1Y0LjMzM3pNMTEuMTg2IDIuNzU4bC40MDEuNTA4Yy4wOTcuMDcyLjA2OS4yMy0uMDU1LjMxOGwtMS41MjkgMS4xMjJjLS4wNy4wOTctLjIzLjA2OC0uMzE2LS4wNTZsLS40MDEtLjUwOGMtLjA5Ny0uMDcyLS4wNjktLjIzLjA1NS0uMzE4bDEuNTgxLTEuMTEzYy4wNjItLjA0NC4yMi0uMDE1LjI2NC4wNDd6IixmaWxsOiIjMDAwIn0pKSxDbHx8KENsPXIuY3JlYXRlRWxlbWVudCgicmVjdCIse3g6My44NTcsd2lkdGg6NC4yODYsaGVpZ2h0OjEuMyxyeDouNSxmaWxsOiIjMDAwIn0pKSx3bHx8KHdsPXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTYgMTEuN2MyLjM2NyAwIDQuMjg2LTEuOTQgNC4yODYtNC4zMzMgMC0yLjM5NC0xLjkyLTQuMzM0LTQuMjg2LTQuMzM0LTIuMzY3IDAtNC4yODYgMS45NC00LjI4NiA0LjMzNEMxLjcxNCA5Ljc2IDMuNjMzIDExLjcgNiAxMS43ek02IDEzYzMuMDc3IDAgNS41NzEtMi41MjIgNS41NzEtNS42MzMgMC0zLjExMi0yLjQ5NC01LjYzNC01LjU3MS01LjYzNC0zLjA3NyAwLTUuNTcyIDIuNTIyLTUuNTcyIDUuNjM0Qy40MjggMTAuNDc3IDIuOTIzIDEzIDYgMTN6IixmaWxsOiIjMDAwIn0pKSxTbHx8KFNsPXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTYuNDI5Ljg2N1YyLjZoLS44NTdWLjg2N2guODU3eiIsZmlsbDoiIzAwMCJ9KSkpfW4ucDtjb25zdCBabD17W2VyLnNCLnN1Ym1pdHRlZF06InRpbWVsaW5lQmx1ZSIsW2VyLnNCLmluUHJvZ3Jlc3NdOiJ0aW1lbGluZUJsdWUiLFtlci5zQi53YWl0aW5nXToidGltZWxpbmVPcmFuZ2UiLFtlci5zQi5yZXNvbHZlZF06InRpbWVsaW5lR3JlZW4ifTtmdW5jdGlvbiBJbCh7aGlzdG9yeTplLGN1cnJlbnRTdGF0dXM6dCxhc3NpZ25lZTpuLGVzdGltYXRlZFJlc29sdXRpb246aSxpbmxpbmU6bz0hMX0pe2NvbnN0IGE9dD0+MD09PXQ/ImxlZnQiOnQ9PT1lLmxlbmd0aC0xPyJyaWdodCI6bnVsbCxzPWUuZmluZCgoZT0+ZS50eXBlPT09dCkpLGw9cz9lLmluZGV4T2Yocyk6MCxjPSFvJiYobnVsbD09cz92b2lkIDA6cy50eXBlKSE9PWVyLnNCLndhaXRpbmc7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChjbCxudWxsLG8/bnVsbDpyLmNyZWF0ZUVsZW1lbnQodmwsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoeGwsbnVsbCxuP3IuY3JlYXRlRWxlbWVudChQdC5aLHtzaXplOjY0LGFkbWluOm59KTpyLmNyZWF0ZUVsZW1lbnQoX3Qse3Nob3dUb29sdGlwOiEwLGF2YXRhclNpemU6NTAsbWF4QWRtaW5zOjMsYXZhdGFyUGl4ZWxzVG9TaG93OjIwfSkpKSwobnVsbD09cz92b2lkIDA6cy50eXBlKT09PWVyLnNCLndhaXRpbmc/ci5jcmVhdGVFbGVtZW50KGJsLHtpbmxpbmU6bywiZGF0YS10ZXN0aWQiOiJ3YWl0aW5nLWZvci15b3UtYWRkaXRpb25hbC1kZXRhaWwifSwoMCx1Lkl1KSgidGlja2V0c19zdGF0dXNfd2FpdGluZ19vbl95b3UiKSk6bnVsbCxvJiZpP251bGw6ci5jcmVhdGVFbGVtZW50KGZsLHtiaWc6YywiZGF0YS10ZXN0aWQiOiJ0aWNrZXQtZGV0YWlsIn0sbnVsbD09cz92b2lkIDA6cy5kZXRhaWwpLGk/ci5jcmVhdGVFbGVtZW50KEVsLG51bGwsci5jcmVhdGVFbGVtZW50KFRsLG51bGwpLCIgIixpKTpudWxsLHIuY3JlYXRlRWxlbWVudChsbCx7aW5saW5lOm99LGUubWFwKCgoZSx0KT0+e2NvbnN0IG49dDw9bDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KG1sLHtrZXk6ZS50eXBlLCJkYXRhLXRlc3RpZCI6ZS5pc0N1cnJlbnQ/ImN1cnJlbnQtc3RhdHVzIjpgJHtlLnR5cGV9LXN0YXR1c2AsZGltaW5pc2hlZDpsIT09dCxpc0N1cnJlbnQ6ISFlLmlzQ3VycmVudH0sci5jcmVhdGVFbGVtZW50KHVsLHtjb2xvcmVkOm4sY29sb3I6WmxbbnVsbD09cz92b2lkIDA6cy50eXBlXSxyb3VuZGVkU2lkZTphKHQpfSksZS50eXBlPT09ZXIuc0Iud2FpdGluZz8oMCx1Lkl1KSgidGlja2V0c19zdGF0dXNfaW5fcHJvZ3Jlc3MiKTplLnRpdGxlLChlPT4tMT09PVtlci5zQi5pblByb2dyZXNzLGVyLnNCLndhaXRpbmddLmluZGV4T2YoZSkmJigobnVsbD09cz92b2lkIDA6cy50eXBlKT09PWVyLnNCLnJlc29sdmVkfHxlIT09ZXIuc0IucmVzb2x2ZWQpKShlLnR5cGUpJiZyLmNyZWF0ZUVsZW1lbnQoaGwsbnVsbCxlLnJlbGF0aXZlVGltZSkpfSkpKSl9Y29uc3Qgamw9KDAsZi5aUCkoYWwudjEse3RhcmdldDoiZTF5azRndDQwIn0pKCJ0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjoiLCgwLGYuclMpKCJpbnB1dEdyZXkiKSwiO21hcmdpbi1ib3R0b206JzEycHgnOyIpLF9sPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxeWs0Z3Q0MSJ9KSgiYm9yZGVyOjFweCBzb2xpZCAiLCgwLGYuclMpKCJsaWdodEdyZXkzIiksIjtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxNnB4IDEzcHggMHB4O2JveC1zaGFkb3c6MHB4IDJweCA4cHggcmdiYSgwLDAsMCwwLjA2KTtib3JkZXItY29sb3I6IiwoMCxmLnJTKSgibGlnaHRCb3JkZXIiKSwiOyIpLE9sPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxeWs0Z3Q0MiJ9KSh7bmFtZToiMXY2M3d4MyIsc3R5bGVzOiJmb250LXNpemU6MTZweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTo0cHg7bGluZS1oZWlnaHQ6MjRweDtmb250LXdlaWdodDo2MDA7c3Zne21hcmdpbi1yaWdodDo4cHg7fSJ9KSxBbD0oMCxmLlpQKShILkxpbmsse3RhcmdldDoiZTF5azRndDQzIn0pKCJtYXJnaW4tdG9wOjE2cHg7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MTZweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICIsKDAsZi5yUykoImxpZ2h0R3JleTMiKSwiO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiIsKDAsZi5yUykoImxpbmtDb2xvciIpLCIgIWltcG9ydGFudDtzdmd7bWFyZ2luLXJpZ2h0OjlweDt9Iik7dmFyIEJsPW4oNzE2OTEpO2Z1bmN0aW9uIFJsKHt0aWNrZXQ6ZX0pe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoamwsbnVsbCxlLmlubGluZVN0YXR1c0hlYWRlclRleHR8fCgwLHUuSXUpKCJ5b3VyX3RpY2tldCIpKSxyLmNyZWF0ZUVsZW1lbnQoX2wsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoT2wsbnVsbCxlLm5hbWUpLHIuY3JlYXRlRWxlbWVudChJbCx7aGlzdG9yeTplLmhpc3RvcnksY3VycmVudFN0YXR1czplLnN0YXR1cyxlc3RpbWF0ZWRSZXNvbHV0aW9uOmUuc2xhLGlubGluZTohMH0pLHIuY3JlYXRlRWxlbWVudChBbCx7dG86KDAsQmwuaWcpKGUuaWQpfSxyLmNyZWF0ZUVsZW1lbnQoVnMuWixudWxsKSwoMCx1Lkl1KSgidGlja2V0c192aWV3X3RpY2tldCIpKSkpfWNvbnN0IHpsPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVlenNqMXgwIn0pKCJtYXJnaW46MjRweCAyNHB4IDBweCAyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjA4KTtjb2xvcjoiLCgwLGYuclMpKCJpbnB1dEdyZXkiKSwiO3BhZGRpbmc6MTZweCAyMHB4OyIpLE5sPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlZXpzajF4MSJ9KSh7bmFtZToiZ3k5MWZ2IixzdHlsZXM6ImZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHg7d2VpZ2h0OjQwMDsifSksTWw9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWV6c2oxeDIifSkoe25hbWU6IjFxaG10bzYiLHN0eWxlczoibWFyZ2luLWxlZnQ6MTJweDsifSksRGw9KHt0ZXh0Q29udGVudDplfSk9PnIuY3JlYXRlRWxlbWVudCh6bCxudWxsLHIuY3JlYXRlRWxlbWVudChObCx7ImRhdGEtdGVzdGlkIjoic3BlY2lhbC1ub3RpY2UtdGV4dCJ9LGUpLHIuY3JlYXRlRWxlbWVudChNbCxudWxsLHIuY3JlYXRlRWxlbWVudChsZS5aLHt0eXBlOiJJbmZvIixjb2xvcjoic3BlY2lhbE5vdGljZUljb24ifSkpKTt2YXIgTGw9big5Nzk1Mik7Y29uc3QgR2w9IiM0N0VCODEiLEZsPSIjRkNEQjYzIixxbD0zMDAsSGw9KDAsZi5GNCkoImZyb217YmFja2dyb3VuZC1jb2xvcjoiLEZsLCJ9dG97YmFja2dyb3VuZC1jb2xvcjoiLEdsLCJ9IiksV2w9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFxNHgyeDkwIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo0MHB4O3BhZGRpbmctbGVmdDoxOHB4O3BhZGRpbmctcmlnaHQ6MThweDtwYWRkaW5nLXRvcDo0cHg7cGFkZGluZy1ib3R0b206NHB4O2ZvbnQtc2l6ZToxM3B4OyIsKCh7Y29ubmVjdGlvblN0YXRlOmV9KT0+ImNvbm5lY3RlZCI9PT1lJiYoMCxmLml2KSgiYW5pbWF0aW9uOiIsSGwsIiAzMDBtczsiKSksIiAiLCgoe2Nvbm5lY3Rpb25TdGF0ZTplfSk9PiJjb25uZWN0ZWQiPT09ZT8oMCxmLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLEdsLCI7Iik6KDAsZi5pdikoImJhY2tncm91bmQtY29sb3I6IixGbCwiOyIpKSwiICYucmVhbHRpbWUtc3RhdHVzLWJhbm5lcnsmLWVudGVye29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt9Ji1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zaXRpb246dHJhbnNmb3JtICIscWwsIm1zLG9wYWNpdHkgIixxbCwibXM7fSYtZXhpdHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7fSYtZXhpdC1hY3RpdmV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zaXRpb246dHJhbnNmb3JtICIscWwsIm1zICIsNjAwLCJtcyxvcGFjaXR5ICIscWwsIm1zICIsNjAwLCJtczt9fSIpO3ZhciBVbD1uKDU2NzgzKSxWbD1uKDMwMjAwKTtjb25zdCAkbD17W0xsLmp0XTooMCx1Lkl1KSgiY29ubmVjdGluZyIpLFtMbC54S106KDAsdS5JdSkoImNhbnRfbG9hZF9uZXdfbWVzc2FnZXMiKSxbTGwuYWZdOigwLHUuSXUpKCJzdWNjZXNzZnVsbHlfcmVjb25uZWN0ZWQiKX07ZnVuY3Rpb24gS2woKXtjb25zdCBlPSgwLGguVEwpKCksdD0oMCxGYS5aKSgibWlzc2luZ1JlcGxpZXNJbkNvbnZlcnNhdGlvbkJhbm5lciIpLG49KDAsaC5DRykoVWwudCk7UnQoe29iamVjdDoicmVhbHRpbWVfc3RhdHVzX2Jhbm5lcl92aXNpYmxlIixjb250ZXh0OiJpbl9jb252ZXJzYXRpb24iLHBsYWNlOiJtZXNzZW5nZXIiLHNlbmRNZXRyaWNDb25kaXRpb246dCYmbj09PUxsLnhLfSk7Y29uc3QgaT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntuPT09TGwueEsmJihlKCgwLFZsLlBRKSgpKSwoMCxPdC5XTSkoImNsaWNrZWQiLCJyZWFsdGltZV9zdGF0dXNfYmFubmVyIiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7cmV0cnlfY29ubmVjdGlvbjohMH0pKX0pLFtlLG5dKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCx0JiZyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46bj09PUxsLnhLfHxuPT09TGwuanQsY2xhc3NOYW1lczoicmVhbHRpbWUtc3RhdHVzLWJhbm5lciIsbW91bnRPbkVudGVyOiEwLHVubW91bnRPbkV4aXQ6ITAsdGltZW91dDp7ZW50ZXI6MzAwLGV4aXQ6OTAwfX0sci5jcmVhdGVFbGVtZW50KFdsLHtjb25uZWN0aW9uU3RhdGU6bn0sci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCRsW25dKSxuPT09TGwueEs/ci5jcmVhdGVFbGVtZW50KCJidXR0b24iLHtvbkNsaWNrOmksdGFiSW5kZXg6IjAifSxyLmNyZWF0ZUVsZW1lbnQoImIiLG51bGwsKDAsdS5JdSkoInJlY29ubmVjdCIpKSk6bnVsbCkpKX12YXIgWWw9big5MDc4NCksSmw9big5NjI4MSk7ZnVuY3Rpb24gWGwoKXtyZXR1cm4gWGw9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxYbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUWwoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGVjKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP1FsKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dGMoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlFsKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIHRjKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1jbGFzcyBDb252ZXJzYXRpb25Cb2R5IGV4dGVuZHMgci5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5wYXJ0c1JlZj12b2lkIDAsdGhpcy5maXJzdFVucmVhZFBhcnRSZWY9dm9pZCAwLHRoaXMucHJldmVudFJlcGxpZXNUaW1lb3V0PXZvaWQgMCx0aGlzLnN0YXRlPXtzY3JvbGxlZFRvQm90dG9tOiEwLHBhcnRzSGVpZ2h0OjB9LHRoaXMuc2Nyb2xsVG9GaXJzdFVucmVhZFBhcnRPckJvdHRvbT0oKT0+e2NvbnN0e3BhcnRzUmVmOmUsZmlyc3RVbnJlYWRQYXJ0UmVmOnR9PXRoaXM7aWYoISh0aGlzLnByb3BzLmNvbnZlcnNhdGlvbi5wYXJ0cy5sZW5ndGg8PTEpKXJldHVybiB0PygwLCRvLnB2KShlLHQub2Zmc2V0VG9wLTEwKTp2b2lkIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKX0sdGhpcy5oYW5kbGVTY3JvbGw9KCk9Pntjb25zdHtwYXJ0c1JlZjplfT10aGlzO2UmJnRoaXMuc2V0U3RhdGUoe3Njcm9sbGVkVG9Cb3R0b206KDAsJG8uUzIpKGUsMCl9KX0sdGhpcy5oYW5kbGVXaGVlbD1lPT57Y29uc3R7cGFydHNSZWY6dH09dGhpcztpZighdClyZXR1cm47Y29uc3R7c2Nyb2xsVG9wOm59PXQse2RlbHRhWTpyfT1lLHtpc0hlYWRlckNvbGxhcHNlZDppfT10aGlzLnByb3BzOyhpJiZuPj0wJiZyPjB8fG4+MCYmcjwwKSYmZS5zdG9wUHJvcGFnYXRpb24oKSwoMCxpbC5hYikoZSl9LHRoaXMuaGFuZGxlUGFydHNMZW5ndGhDaGFuZ2U9KCk9Pntjb25zdHtwYXJ0c1JlZjplfT10aGlzO2lmKCFlKXJldHVybjtjb25zdHtpc0hlYWRlckNvbGxhcHNlZDp0LG9uSGVhZGVyQ29sbGFwc2U6bn09dGhpcy5wcm9wczshdCYmKDAsJG8uYTkpKGUpJiZuKCksdGhpcy5zY3JvbGxUb0JvdHRvbSgpfSx0aGlzLmhhbmRsZVBhcnRzSGVpZ2h0Q2hhbmdlPSgpPT57aWYoIXRoaXMucGFydHNSZWYpcmV0dXJuO2NvbnN0e2NsaWVudEhlaWdodDplfT10aGlzLnBhcnRzUmVmO3RoaXMuc2V0U3RhdGUoe3BhcnRzSGVpZ2h0OmV9KX0sdGhpcy5oYW5kbGVIZWFkZXJFeHBhbmQ9KCk9Pnt0aGlzLnNjcm9sbFRvVG9wKCl9LHRoaXMuaGFuZGxlU3VnZ2VzdGlvbnNIZWlnaHRDaGFuZ2U9ZT0+e2U+dGhpcy5jb250ZXh0LnN1Z2dlc3Rpb25zTWF4SGVpZ2h0V2l0aEV4cGFuZGVkSGVhZGVyUHgmJnRoaXMucHJvcHMub25IZWFkZXJDb2xsYXBzZSgpO2NvbnN0e3BhcnRzUmVmOnR9PXRoaXM7dCYmKDAsJG8uZUIpKHQpfSx0aGlzLmRpZFN1Z2dlc3Rpb25zQ2hhbmdlPWU9PmUuY29udmVyc2F0aW9uU3VnZ2VzdGlvbnMmJnRoaXMucHJvcHMuY29udmVyc2F0aW9uU3VnZ2VzdGlvbnMmJiFqcygpKGUuY29udmVyc2F0aW9uU3VnZ2VzdGlvbnMuc3VnZ2VzdGlvbnMsdGhpcy5wcm9wcy5jb252ZXJzYXRpb25TdWdnZXN0aW9ucy5zdWdnZXN0aW9ucykmJnRoaXMucHJvcHMuY29udmVyc2F0aW9uU3VnZ2VzdGlvbnMuc3VnZ2VzdGlvbnMmJnRoaXMucHJvcHMuY29udmVyc2F0aW9uU3VnZ2VzdGlvbnMuc3VnZ2VzdGlvbnMubGVuZ3RoLHRoaXMub25QYXJ0SGVpZ2h0Q2hhbmdlPShlLHQpPT57Y29uc3Qgbj1lK3Q7dGhpcy5wYXJ0c1JlZiYmdGhpcy5zdGF0ZS5zY3JvbGxlZFRvQm90dG9tJiZuPjAmJnRoaXMucGFydHNSZWYuc2Nyb2xsVG9wIT09biYmKDAsJG8ucHYpKHRoaXMucGFydHNSZWYsbil9LHRoaXMuc2Nyb2xsVG9Cb3R0b209KCk9Pntjb25zdHtwYXJ0c1JlZjplfT10aGlzO2UmJigwLCRvLk9nKShlKX0sdGhpcy5zZXRQYXJ0c1JlZj1lPT57dGhpcy5wYXJ0c1JlZj1lfSx0aGlzLnNldFVucmVhZFBhcnRSZWY9KGUsdCk9Pntjb25zdHtjb252ZXJzYXRpb246e3JlYWRBdDpufSxpc01lc3Nlbmdlck9wZW46cn09dGhpcy5wcm9wcztyJiYhdGhpcy5maXJzdFVucmVhZFBhcnRSZWYmJm4mJm48dC5jcmVhdGVkQXQmJih0aGlzLmZpcnN0VW5yZWFkUGFydFJlZj1lKX0sdGhpcy5yZW1vdmVUaWNrZXRTdGF0dXNVcGRhdGVzPWU9PnRoaXMuc2hvdWxkRGlzcGxheVRpY2tldFRpbWVsaW5lJiZlLnRpY2tldD9lYyhlYyh7fSxlKSx7fSx7cGFydHM6ZS5wYXJ0cy5maWx0ZXIoKGU9PiJ0aWNrZXRfc3RhdHVzX3VwZGF0ZSIhPT1lLnBhcnRUeXBlKSl9KTplLHRoaXMucmVuZGVyVGlja2V0VGltZWxpbmU9KCk9Pntjb25zdHtjb252ZXJzYXRpb246ZX09dGhpcy5wcm9wcztyZXR1cm4gdGhpcy5zaG91bGREaXNwbGF5VGlja2V0VGltZWxpbmUmJmUudGlja2V0P3IuY3JlYXRlRWxlbWVudChVcyxudWxsLHIuY3JlYXRlRWxlbWVudChSbCx7dGlja2V0OmUudGlja2V0fSkpOm51bGx9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y29udmVyc2F0aW9uOmUsb25IZWFkZXJDb2xsYXBzZTp0fT10aGlzLnByb3BzO3ZvaWQgMCE9PWUuaWQmJnQoKSx0aGlzLnNldFNjaGVkdWxlZEpvYlRvUHJldmVudFJlcGxpZXNBZnRlckRlbGF5SWZOZWNlc3NhcnkoKSx0aGlzLmhhbmRsZVBhcnRzSGVpZ2h0Q2hhbmdlKCksdGhpcy5zY3JvbGxUb0ZpcnN0VW5yZWFkUGFydE9yQm90dG9tKCl9Z2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKXtjb25zdHtwYXJ0c1JlZjplfT10aGlzO3JldHVybiBlP3twcmV2aW91c2x5U2Nyb2xsZWRUb0JvdHRvbTooMCwkby5TMikoZSwwKX06bnVsbH1jb21wb25lbnREaWRVcGRhdGUoZSx0LG4pe3RoaXMuZGlkRmV0Y2hpbmdFbmQoZSkmJnRoaXMuc2Nyb2xsVG9GaXJzdFVucmVhZFBhcnRPckJvdHRvbSgpLHRoaXMuZGlkUGFydHNMZW5ndGhDaGFuZ2UoZSkmJnRoaXMuaGFuZGxlUGFydHNMZW5ndGhDaGFuZ2UoKSx0aGlzLmRpZEhlYWRlckV4cGFuZChlKSYmdGhpcy5oYW5kbGVIZWFkZXJFeHBhbmQoKSwodGhpcy5kaWRTdWdnZXN0aW9uc0NoYW5nZShlKXx8dGhpcy5kaWRDb21wb3NlckhlaWdodENoYW5nZShlKSkmJnRoaXMuc2Nyb2xsVG9Cb3R0b20oKSx0aGlzLnByZXZlbnRSZXBsaWVzU2V0dGluZ0NoYW5nZWQoZS5jb252ZXJzYXRpb24pJiZ0aGlzLnNldFNjaGVkdWxlZEpvYlRvUHJldmVudFJlcGxpZXNBZnRlckRlbGF5SWZOZWNlc3NhcnkoKSx0aGlzLmRpZExhc3RUeXBpbmdBZG1pbkNoYW5nZShlKSYmbnVsbCE9biYmbi5wcmV2aW91c2x5U2Nyb2xsZWRUb0JvdHRvbSYmKDAsJG8uZUIpKHRoaXMucGFydHNSZWYpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5wcmV2ZW50UmVwbGllc1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnByZXZlbnRSZXBsaWVzVGltZW91dCl9Z2V0IHNob3VsZERpc3BsYXlUaWNrZXRUaW1lbGluZSgpe3JldHVybiAwPT09KDAsb2wuUnMpKHRoaXMucHJvcHMuY29udmVyc2F0aW9uLnBhcnRzKS5sZW5ndGh9ZGlkRmV0Y2hpbmdFbmQoZSl7Y29uc3R7aXNGZXRjaGluZzp0LGlzVXBkYXRpbmc6bn09dGhpcy5wcm9wcy5jb252ZXJzYXRpb247cmV0dXJuIGUuY29udmVyc2F0aW9uLmlzRmV0Y2hpbmcmJiFlLmNvbnZlcnNhdGlvbi5pc1VwZGF0aW5nJiYhdCYmIW59ZGlkUGFydHNMZW5ndGhDaGFuZ2UoZSl7cmV0dXJuIGUuY29udmVyc2F0aW9uLnBhcnRzLmxlbmd0aCE9PXRoaXMucHJvcHMuY29udmVyc2F0aW9uLnBhcnRzLmxlbmd0aH1kaWRIZWFkZXJFeHBhbmQoZSl7cmV0dXJuIGUuaXNIZWFkZXJDb2xsYXBzZWQmJiF0aGlzLnByb3BzLmlzSGVhZGVyQ29sbGFwc2VkfWRpZExhc3RUeXBpbmdBZG1pbkNoYW5nZShlKXtyZXR1cm4oMCxvbC5oRikodGhpcy5wcm9wcy5jb252ZXJzYXRpb24sdGhpcy5wcm9wcy5pc0JvdFRhcmdldGVkQ29udmVyc2F0aW9uKSE9PSgwLG9sLmhGKShlLmNvbnZlcnNhdGlvbixlLmlzQm90VGFyZ2V0ZWRDb252ZXJzYXRpb24pfWRpZENvbXBvc2VySGVpZ2h0Q2hhbmdlKGUpe3JldHVybiBlLmNvbXBvc2VySGVpZ2h0IT09dGhpcy5wcm9wcy5jb21wb3NlckhlaWdodH1zY3JvbGxUb1RvcCgpe2NvbnN0e3BhcnRzUmVmOmV9PXRoaXM7ZSYmKDAsJG8ucHYpKGUsMCl9Z2V0UGFydHNTdHlsZSgpe3JldHVybntib3R0b206dGhpcy5wcm9wcy5jb21wb3NlckhlaWdodCsodGhpcy5wcm9wcy5jdXN0b21lclByaXZhY3lQb2xpY3lFbmFibGVkP0psLkNPOjApfX1nZXRQYXJ0c1JlZigpe3JldHVybiB0aGlzLnBhcnRzUmVmfXByZXZlbnRSZXBsaWVzU2V0dGluZ0NoYW5nZWQoZSl7aWYoIWUpcmV0dXJuITA7Y29uc3R7Y29udmVyc2F0aW9uOnR9PXRoaXMucHJvcHM7cmV0dXJuIGUucHJldmVudEVuZFVzZXJSZXBsaWVzIT09dC5wcmV2ZW50RW5kVXNlclJlcGxpZXN8fGUucHJldmVudEVuZFVzZXJSZXBsaWVzVGltZXN0YW1wIT09dC5wcmV2ZW50RW5kVXNlclJlcGxpZXNUaW1lc3RhbXB9c2V0U2NoZWR1bGVkSm9iVG9QcmV2ZW50UmVwbGllc0FmdGVyRGVsYXlJZk5lY2Vzc2FyeSgpe2NvbnN0e2NvbnZlcnNhdGlvbjplfT10aGlzLnByb3BzO2lmKGUucHJldmVudEVuZFVzZXJSZXBsaWVzKXJldHVybjtsZXQgdD0tMTtlLnByZXZlbnRFbmRVc2VyUmVwbGllc1RpbWVzdGFtcCYmIWlzTmFOKGUucHJldmVudEVuZFVzZXJSZXBsaWVzVGltZXN0YW1wKSYmKHQ9TWF0aC5taW4oMWUzKmUucHJldmVudEVuZFVzZXJSZXBsaWVzVGltZXN0YW1wKzUwMC1EYXRlLm5vdygpLDIxNDc0ODM2NDcpKSx0PjAmJih0aGlzLnByZXZlbnRSZXBsaWVzVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucHJldmVudFJlcGxpZXNUaW1lb3V0KSx0aGlzLnByZXZlbnRSZXBsaWVzVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKCk9Pnt0aGlzLnByb3BzLmZldGNoQ29udmVyc2F0aW9uKGUuaWQpfSksdCkpfXJlbmRlclBhcnRzKCl7Y29uc3R7YXBwTmFtZTplLGNvbnZlcnNhdGlvbjp0LGZyYW1lV2luZG93Om4sY29tcG9zZXJIZWlnaHQ6aSxvblJldHJ5Om8sb25SZWFjdGlvblNlbGVjdDphLG9uQXJ0aWNsZUNhcmRDbGljazpzLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOmwsdGVtcG9yYXJ5RXhwZWN0YXRpb25zTWVzc2FnZTpjfT10aGlzLnByb3BzLGQ9dGhpcy5yZW1vdmVUaWNrZXRTdGF0dXNVcGRhdGVzKHQpLHtwYXJ0c0hlaWdodDpwLHNjcm9sbGVkVG9Cb3R0b206dX09dGhpcy5zdGF0ZSxtPXAtaTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEVzLlose2Vycm9yVGV4dDoiU29tZXRoaW5nIHdlbnQgd3JvbmcgbG9hZGluZyB0aGUgY29udmVyc2F0aW9uIixhbGlnbjoiY2VudGVyIixzdHlsZTp7bWFyZ2luVG9wOiIyMHB4IixmbGV4OjF9fSxyLmNyZWF0ZUVsZW1lbnQoX3MuWix7YXBwTmFtZTplLGNvbnZlcnNhdGlvbjpkLG1heEhlaWdodDptLHNjcm9sbGVkVG9Cb3R0b206dSxmcmFtZVdpbmRvdzpuLHNldFBhcnRSZWY6dGhpcy5zZXRVbnJlYWRQYXJ0UmVmLG9uUmV0cnk6byxvblJlYWN0aW9uU2VsZWN0OmEsb25BcnRpY2xlQ2FyZENsaWNrOnMsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6bCx0ZW1wb3JhcnlFeHBlY3RhdGlvbnNNZXNzYWdlOmN9KSl9cmVuZGVyQm90dG9tR3JvdXAoKXtjb25zdHtvblN1Z2dlc3Rpb25DbGlja2VkOmUsc2V0Q29tcG9zZXJTdWdnZXN0aW9uc0Rpc21pc3NlZDp0LGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOm4saXNJbnRlcmNvbUxpbmtFbmFibGVkOmksY29udmVyc2F0aW9uOm8saXNBbnlQYXJ0QW5pbWF0aW5nOmF9PXRoaXMucHJvcHM7aWYoIWkmJiFufHxhKXJldHVybiBudWxsO2NvbnN0IHM9e2NvbnZlcnNhdGlvbjpvLHNldENvbXBvc2VyU3VnZ2VzdGlvbnNEaXNtaXNzZWQ6dCxvbkNsaWNrOmUsb25IZWlnaHRDaGFuZ2U6dGhpcy5oYW5kbGVTdWdnZXN0aW9uc0hlaWdodENoYW5nZX07cmV0dXJuIHIuY3JlYXRlRWxlbWVudChFcy5aLHtlcnJvclRleHQ6IlNvbWV0aGluZyB3ZW50IHdyb25nIGxvYWRpbmcgdGhlIHN1Z2dlc3Rpb25zIixhbGlnbjoiY2VudGVyIixzdHlsZTp7bWFyZ2luQm90dG9tOiIxMHB4In19LHIuY3JlYXRlRWxlbWVudChHcy5aLFhsKHt9LHMse2NvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOm59KSksci5jcmVhdGVFbGVtZW50KG0uS3Yse2NsYXNzTmFtZXM6ImludGVyY29tLWNvbnZlcnNhdGlvbi1ib2R5LWJvdHRvbS1ncm91cCIsdGltZW91dDp7ZW50ZXI6NDAwLGV4aXQ6MTAwfX0sci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxpJiZyLmNyZWF0ZUVsZW1lbnQoTHMse2ludGVyY29tTGlua1NvbHV0aW9uOnRoaXMucHJvcHMuY29udmVyc2F0aW9uLmludGVyY29tTGlua1NvbHV0aW9ufSkpKSxyLmNyZWF0ZUVsZW1lbnQoS2wsbnVsbCkpfXJlbmRlcigpe2NvbnN0e2lzRmV0Y2hpbmc6ZSxpc1VwZGF0aW5nOnQsdGlja2V0Om59PXRoaXMucHJvcHMuY29udmVyc2F0aW9uLHt0ZW1wb3JhcnlFeHBlY3RhdGlvbnNNZXNzYWdlOml9PXRoaXMucHJvcHMse3Nob3VsZFVzZU5ld01lc3NlbmdlcjpvLHVzZUJvdFVYOmF9PXRoaXMucHJvcHMscz1lJiYhdCxsPXtvblBhcnRIZWlnaHRDaGFuZ2U6dGhpcy5vblBhcnRIZWlnaHRDaGFuZ2V9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoWWwuWi5Qcm92aWRlcix7dmFsdWU6bH0sci5jcmVhdGVFbGVtZW50KHFzLHtjbGFzc05hbWU6ImludGVyY29tLWNvbnZlcnNhdGlvbi1ib2R5Iixib3R0b21PZmZzZXQ6dGhpcy5nZXRQYXJ0c1N0eWxlKCkuYm90dG9tfSxyLmNyZWF0ZUVsZW1lbnQoV3Mse2NsYXNzTmFtZToiaW50ZXJjb20tY29udmVyc2F0aW9uLWJvZHktcGFydHMiLHJlZjp0aGlzLnNldFBhcnRzUmVmLHN0eWxlOnRoaXMuZ2V0UGFydHNTdHlsZSgpLHRhYkluZGV4OjAsImFyaWEtbGl2ZSI6ImFzc2VydGl2ZSIsImFyaWEtYXRvbWljIjoiZmFsc2UiLHJvbGU6ImFsZXJ0IixvblNjcm9sbDp0aGlzLmhhbmRsZVNjcm9sbCxvbldoZWVsOnRoaXMuaGFuZGxlV2hlZWx9LHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbnRlcmNvbS1jb252ZXJzYXRpb24tYm9keS1tYWluLWdyb3VwIn0sbiYmIXRoaXMuc2hvdWxkRGlzcGxheVRpY2tldFRpbWVsaW5lJiZyLmNyZWF0ZUVsZW1lbnQoSHMsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXMse3RvOigwLEJsLmlnKSh0aGlzLnByb3BzLmNvbnZlcnNhdGlvbi50aWNrZXRJZCksbmFtZTpuLm5hbWUsc3RhdHVzOm4uc3RhdHVzfSkpLCFzJiZvJiZpJiYhYT9yLmNyZWF0ZUVsZW1lbnQoRGwse3RleHRDb250ZW50Oml9KTpudWxsLHM/bnVsbDp0aGlzLnJlbmRlclRpY2tldFRpbWVsaW5lKCkscz9yLmNyZWF0ZUVsZW1lbnQoWXQuWixudWxsKTp0aGlzLnJlbmRlclBhcnRzKCkscz9udWxsOnRoaXMucmVuZGVyQm90dG9tR3JvdXAoKSkpKSl9fUNvbnZlcnNhdGlvbkJvZHkuZGVmYXVsdFByb3BzPXtjb21wb3NlckhlaWdodDowfSxDb252ZXJzYXRpb25Cb2R5LmNvbnRleHRUeXBlPUZzLlRoZW1lQ29udGV4dDt2YXIgbmM9bigzNTI3MCk7Y29uc3QgcmM9KDAsby5jb25uZWN0KSgoKGUsdCk9Pnt2YXIgbjtjb25zdHtuYW1lOnIsaXNJbnRlcmNvbUxpbmtFbmFibGVkOmksdGVtcG9yYXJ5RXhwZWN0YXRpb25zTWVzc2FnZTpvfT1lLmFwcCxhPSgwLHoubHopKGUpLHM9KDAsSmUuangpKGEsbnVsbD09dD92b2lkIDA6dC5jb252ZXJzYXRpb24pLGw9ISEoMCxZZS5wbSkoZSxudWxsPT10fHxudWxsPT09KG49dC5jb252ZXJzYXRpb24pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmlkKSxjPSgwLHouWEspKGUpO3JldHVybnthcHBOYW1lOnIsaXNJbnRlcmNvbUxpbmtFbmFibGVkOmksdGVtcG9yYXJ5RXhwZWN0YXRpb25zTWVzc2FnZTpvLHNob3VsZFVzZU5ld01lc3NlbmdlcjooMCxOLmMwKShlKSxpc01lc3Nlbmdlck9wZW46KDAsbmMuWikoZSksaXNCb3RUYXJnZXRlZENvbnZlcnNhdGlvbjpzLHVzZUJvdFVYOmEsaXNBbnlQYXJ0QW5pbWF0aW5nOmwsY3VzdG9tZXJQcml2YWN5UG9saWN5RW5hYmxlZDpjfX0pLChlPT4oe2ZldGNoQ29udmVyc2F0aW9uKHQpe2UoKDAsZnIuY2MpKEd0LlpQLHQpKX19KSkpKENvbnZlcnNhdGlvbkJvZHkpO3ZhciBpYz1uKDg1NTg1KSxvYz1uKDY0ODgpLGFjPW4oNTkzMzkpO2NvbnN0IHNjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU2ODc2eXowIn0pKHtuYW1lOiI2dmU3d2siLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7Ym9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsifSksbGM9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF4ZTFtNjIwIn0pKCJwYWRkaW5nLWJvdHRvbToycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIiwoMCxmLnJTKSgiY29tcG9zZXJCb3JkZXIiKSwiO2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO2JveC1zaGFkb3c6bm9uZTtib3JkZXItY29sb3I6IiwoMCxmLnJTKSgibGlnaHRCb3JkZXIiKSwiOyIpLGNjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxeGUxbTYyMSJ9KSh7bmFtZToiNjN4NGgxIixzdHlsZXM6InBhZGRpbmctYm90dG9tOjIycHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7In0pLGRjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxeGUxbTYyMiJ9KSgoKHt0aGVtZTplfSk9PigwLGYuaXYpKCJjb2xvcjoiLGUuaXNQcmltYXJ5Q29sb3JMaWdodD8oMCxnZS5faikoZS5tZXRhVGV4dCwxNSk6ZS5tZXRhVGV4dCwiOyIpKSwiIG1hcmdpbjoyNHB4IGF1dG8gMTJweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDowcHg7bGluZS1oZWlnaHQ6MjFweDtjb2xvcjoiLCgwLGYuclMpKCJpbnB1dEdyZXkiKSwiOyIpLHBjPSh7YWxsb3dOZXdDb252ZXJzYXRpb246ZSxpbmJvdW5kQ29udmVyc2F0aW9uc0Rpc2FibGVkOnQsb25OZXdDb252ZXJzYXRpb25DbGljazpuLG9uSGVpZ2h0Q2hhbmdlOml9KT0+e2NvbnN0W28sYV09KDAsci51c2VTdGF0ZSkobnVsbCkscz0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PntpJiZvJiZpKG8uY2xpZW50SGVpZ2h0KX0pLFtvLGldKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57cygpfSksW28sc10pO2NvbnN0IGw9KDAsRi5tKSgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobGMse3JlZjplPT5hKGUpfSxyLmNyZWF0ZUVsZW1lbnQoZGMsbnVsbCwoMCx1Lkl1KSgiY29udmVyc2F0aW9uX2hhc19lbmRlZCIpKSxlJiYhdD9yLmNyZWF0ZUVsZW1lbnQoY2MsbnVsbCxsP3IuY3JlYXRlRWxlbWVudChEbyx7aWNvblR5cGU6IlJldHJ5IixvbkNsaWNrOm59LCJTdGFydCBhZ2FpbiIpOnIuY3JlYXRlRWxlbWVudChHbyxudWxsKSk6bnVsbCl9O3ZhciB1Yz1uKDU3MDY1KTtjb25zdCBtYz0oMCxmLlpQKSgiYSIse3RhcmdldDoiZTFxdWVlMXcwIn0pKCJkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6NDBweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDo0MHB4O3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo0MHB4O3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246YWxsIDEyMG1zO3BhZGRpbmc6MCAyNHB4O3NwYW57cGFkZGluZy1sZWZ0OjEwcHg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtd2VpZ2h0OjYwMDt9IiwoKHt2YXJpYW50OmUsdGhlbWU6dH0pPT4iZGVmYXVsdCI9PT1lJiYoMCxmLml2KSgiYmFja2dyb3VuZC1jb2xvcjoiLHQuYnV0dG9uQmFja2dyb3VuZENvbG9yLCIgIWltcG9ydGFudDtjb2xvcjoiLHQuYnV0dG9uVGV4dENvbG9yLCIgIWltcG9ydGFudDt0cmFuc2l0aW9uOmNvbG9yIDAuM3MsYmFja2dyb3VuZC1jb2xvciAwLjNzOyY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoiLHQuYnV0dG9uQmFja2dyb3VuZENvbG9ySG92ZXIsIiAhaW1wb3J0YW50O30mOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiIsdC5idXR0b25CYWNrZ3JvdW5kQ29sb3JBY3RpdmUsIiAhaW1wb3J0YW50O30iKSksIiAiLCgoe3ZhcmlhbnQ6ZSx0aGVtZTp0fSk9PiJkZWZhdWx0Ij09PWUmJnQuaXNQcmltYXJ5Q29sb3JMaWdodCYmKDAsZi5pdikoImJvcmRlcjoxcHggc29saWQgIix0LmxpZ2h0R3JleTIsIjsiKSkpLGhjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxcXVlZTF3MSJ9KSh7bmFtZToiMThiaXdvIixzdHlsZXM6ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyOyJ9KTtjbGFzcyBDb250aW51ZU9uV2hhdHNhcHBCdXR0b24gZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5oYW5kbGVDb250aW51ZU9uV2hhdHNwcENsaWNrPSgpPT4odGhpcy5jb250aW51ZU9uV2hhdHNhcHBNZXRyaWMoKSwhMCksdGhpcy5jb250aW51ZU9uV2hhdHNhcHBNZXRyaWM9KCk9PnsoMCxPdC5XTSkoImNsaWNrZWQiLCJjb250aW51ZV9vbl93aGF0c2FwcCIsIm1lc3NlbmdlciIsdGhpcy5wcm9wcy5tZXRyaWNzQ29udGV4dCx0aGlzLnByb3BzLm1ldGFkYXRhKX19cmVuZGVyKCl7Y29uc3R7SWNvbkNvbXBvbmVudDplfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobWMse2hyZWY6Imh0dHBzOi8vd2EubWUiLHRhcmdldDoiX2JsYW5rIix2YXJpYW50OiJkZWZhdWx0IixjbGFzc05hbWU6ImNvbnRpbnVlLW9uLXdoYXRzYXBwLWJ1dHRvbiIsb25DbGljazp0aGlzLmhhbmRsZUNvbnRpbnVlT25XaGF0c3BwQ2xpY2t9LHIuY3JlYXRlRWxlbWVudChoYyxudWxsLHIuY3JlYXRlRWxlbWVudChlLHt2YXJpYW50OiJkZWZhdWx0In0pLHIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwoMCx1Lkl1KSgiY29udGludWVfb25fd2hhdHNhcHAiKSkpKX19Q29udGludWVPbldoYXRzYXBwQnV0dG9uLmRlZmF1bHRQcm9wcz17SWNvbkNvbXBvbmVudDpmdW5jdGlvbih7dmFyaWFudDplfSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh1Yy5OLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix2aWV3Qm94OiIwIDAgMTUgMTYiLHZhcmlhbnQ6ZX0sci5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoLTI0LjAwMDAwMCwgLTEyLjAwMDAwMCkifSxyLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMjUuNDAzNjI2MiwyNy4zNDA5MzYyIEMyNC40MTc2ODkzLDI3Ljg1MDkwMzYgMjMuODE5NTgzNCwyNy4zOTUxMDU1IDI0LjA2ODM0MDMsMjYuMzIwMTk5NiBMMjUuMDg4Nzc3OSwyMS45MTA3NzYgQzI1LjIxMzEyNDIsMjEuMzczNDYxOCAyNS43NTEwNDcyLDIwLjg4ODQyMzEgMjYuMzA3ODc3OCwyMC44MjU0MTg3IEwzMi41MDM0MTcsMjAuMTI0NDA0NSBDMzQuMTUxMTU1LDE5LjkzNzk2NTggMzQuMTU2OTcwNywxOS42Mzg5MDg4IDMyLjUwMzQxNywxOS40NTQ5OTcxIEwyNi4zMDc4Nzc4LDE4Ljc2NTkxNjQgQzI1Ljc1ODkzMzgsMTguNzA0ODYxNyAyNS4yMTI5NDMzLDE4LjIxNzgzOSAyNS4wODg3Nzc5LDE3LjY3OTg3MTUgTDI0LjA2ODM0MDMsMTMuMjU4NjU0NiBDMjMuODE5ODYxNCwxMi4xODIwNzgzIDI0LjQwODk0NCwxMS43MTgyMjc2IDI1LjQwMzYyNjIsMTIuMjMyNzE4NCBMMzguMjIzMDQsMTguODYzNDQ5NyBDMzkuMjA4OTc3LDE5LjM3MzQxNyAzOS4yMTc3MjIzLDIwLjE5NTcxNDEgMzguMjIzMDQsMjAuNzEwMjA0OSBMMjUuNDAzNjI2MiwyNy4zNDA5MzYyIFoifSkpKX0sbWV0YWRhdGE6e319O2NvbnN0IGdjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUyc21zeTEwIn0pKCJwYWRkaW5nLWJvdHRvbToycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgIiwoMCxmLnJTKSgiY29tcG9zZXJCb3JkZXIiKSwiO2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO2JveC1zaGFkb3c6cmdiYSgwLDAsMCwwLjA4KSAwcHggMHB4IDIwcHggMHB4OyIpLGZjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUyc21zeTExIn0pKHtuYW1lOiIxMWttMzllIixzdHlsZXM6InBhZGRpbmctYm90dG9tOjIycHg7dGV4dC1hbGlnbjpjZW50ZXI7In0pLHhjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUyc21zeTEyIn0pKCgoe3RoZW1lOmV9KT0+KDAsZi5pdikoImNvbG9yOiIsZS5pc1ByaW1hcnlDb2xvckxpZ2h0PygwLGdlLl9qKShlLm1ldGFUZXh0LDE1KTplLm1ldGFUZXh0LCI7IikpLCIgbWFyZ2luOjE2cHggYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTNweDtwYWRkaW5nLXRvcDo0cHg7Iik7Y2xhc3MgV2hhdHNhcHBTd2l0Y2hlZEZvb3RlciBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuY29tcG9zZXI9dm9pZCAwfWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5oYW5kbGVIZWlnaHRDaGFuZ2UoKX1oYW5kbGVIZWlnaHRDaGFuZ2UoKXtjb25zdHtvbkhlaWdodENoYW5nZTplfT10aGlzLnByb3BzO2UmJnRoaXMuY29tcG9zZXImJmUodGhpcy5jb21wb3Nlci5jbGllbnRIZWlnaHQpfXJlbmRlcigpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoZ2Mse3JlZjplPT50aGlzLmNvbXBvc2VyPWV9LHIuY3JlYXRlRWxlbWVudCh4YyxudWxsLCgwLHUuSXUpKCJjYW5fY29udGludWVfd2hhdHNhcHAiKSksci5jcmVhdGVFbGVtZW50KGZjLG51bGwsci5jcmVhdGVFbGVtZW50KENvbnRpbnVlT25XaGF0c2FwcEJ1dHRvbix7bWV0cmljc0NvbnRleHQ6IndoYXRzYXBwIn0pKSl9fWNvbnN0IHZjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVyMzNpbnowIn0pKCJoZWlnaHQ6MTIwcHg7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJpbnB1dEJhY2tncm91bmQiKSwiO2JvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuOyIpLHljPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVyMzNpbnoxIn0pKCJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTUwJTtjb2xvcjoiLCgwLGYuclMpKCJ0ZXh0Q29sb3IiKSwiOyIpLGJjPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVyMzNpbnoyIn0pKHtuYW1lOiIxMHFzMHBvIixzdHlsZXM6Im1hcmdpbjo4cHggMCAzMnB4IDA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7In0pO2Z1bmN0aW9uIEVjKHtpbmZvOmUsb25Kb2luQ29udmVyc2F0aW9uQ2xpY2s6dCxvbkhlaWdodENoYW5nZTpufSl7Y29uc3QgaT0oMCxyLnVzZVJlZikobnVsbCk7KDAsci51c2VFZmZlY3QpKCgoKT0+e24mJmkmJm4oaS5jdXJyZW50LmNsaWVudEhlaWdodCl9KSxbaSxuXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh2Yyx7cmVmOml9LHIuY3JlYXRlRWxlbWVudCh5YyxudWxsLGUpLHIuY3JlYXRlRWxlbWVudChiYyxudWxsLHIuY3JlYXRlRWxlbWVudChEbyx7aWNvblR5cGU6IlNlbmQiLG9uQ2xpY2s6KCk9Pnt0KCl9LGJvcmRlclJhZGl1czoxMCwiZGF0YS10ZXN0aWQiOiJzZW5kLWEtbWVzc2FnZS1idXR0b24ifSwoMCx1Lkl1KSgiam9pbl9jb252ZXJzYXRpb24iKSkpKX1mdW5jdGlvbiBrYyh7bmFtZTplLGNoaWxkcmVuOnR9KXtjb25zdCBuPSEhKDAsaC5DRykoei5sdClbZV07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChuKTpuP3Q6bnVsbH1jb25zdCBDYz0oKT0+ci5jcmVhdGVFbGVtZW50KEpsLmhtLG51bGwsci5jcmVhdGVFbGVtZW50KEpsLnpkLHtocmVmOiJodHRwOi8vemFwaWVyLmNvbS9wcml2YWN5IixvbkNsaWNrOigpPT57KDAsT3QuV00pKCJjbGlja2VkIiwicHJpdmFjeV9wb2xpY3kiLCJtZXNzZW5nZXIiLCJjb252ZXJzYXRpb24iLHt9KX0sdGFyZ2V0OiJfYmxhbmsifSxyLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsIlByaXZhY3kgUG9saWN5IikpKTtjbGFzcyBDb252ZXJzYXRpb25Gb290ZXIgZXh0ZW5kcyByLkNvbXBvbmVudHtjb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMucHJvcHMub25IZWlnaHRDaGFuZ2UoMCl9c2hvdWxkU2hvd1JlYWN0aW9uUGlja2VyKCl7Y29uc3QgZT0oMCxKZS5ReikodGhpcy5wcm9wcy5jb252ZXJzYXRpb24pO3JldHVybiBlJiZlLnJlYWN0aW9uc1JlcGx5JiYidGV4dCIhPT1lLnJlcGx5VHlwZX1zaG91bGRTaG93V2hhdHNBcHBTd2l0Y2goKXtyZXR1cm4id2hhdHNhcHAiPT09dGhpcy5wcm9wcy5jb252ZXJzYXRpb24uY3VycmVudENoYW5uZWx9cmVuZGVyQ29tcG9zZXIoKXtjb25zdHthcHBXaW5kb3c6ZSxmcmFtZVdpbmRvdzp0LGNvbnZlcnNhdGlvbjpuLHNob3dFbW9qaVBpY2tlcjppLHNob3dHaWZQaWNrZXI6byxvbkhlaWdodENoYW5nZTphLG9uRW1vamlQaWNrZXJUb2dnbGU6cyxvbkdpZlBpY2tlclRvZ2dsZTpsLG9uSGVhZGVyQ29sbGFwc2U6YyxoZWFkZXJIZWlnaHQ6ZCxzaG91bGRTaG93VXBmcm9udEVtYWlsQ29tcG9zZXI6cCxjb252ZXJzYXRpb25TdWdnZXN0aW9uczp1fT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChpYy5aUCx7Y29udmVyc2F0aW9uOm4sYXBwV2luZG93OmUsZnJhbWVXaW5kb3c6dCxzaG93RW1vamlQaWNrZXI6aSxzaG93R2lmUGlja2VyOm8sb25FbW9qaVBpY2tlclRvZ2dsZTpzLG9uR2lmUGlja2VyVG9nZ2xlOmwsb25IZWlnaHRDaGFuZ2U6YSxvbkhlYWRlckNvbGxhcHNlOmMsc2hvdWxkU2hvd1VwZnJvbnRFbWFpbENvbXBvc2VyOnAsaGVhZGVySGVpZ2h0OmQsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6dSxpc1ByaW1hcnlDb2xvclJlYWRhYmxlOnRoaXMuY29udGV4dC5pc1ByaW1hcnlDb2xvclJlYWRhYmxlfSksci5jcmVhdGVFbGVtZW50KGtjLHtuYW1lOiJjdXN0b21lclByaXZhY3lQb2xpY3kifSxyLmNyZWF0ZUVsZW1lbnQoQ2MsbnVsbCkpKX1yZW5kZXJDb252ZXJzYXRpb25TaGFyaW5nRm9vdGVyKCl7Y29uc3R7Y29udmVyc2F0aW9uOmUsb25Kb2luQ29udmVyc2F0aW9uQ2xpY2s6dCxvbkhlaWdodENoYW5nZTpufT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoa2Mse25hbWU6ImNvbXBhbnlUaWNrZXRzUG9ydGFsQmV0YSJ9LHIuY3JlYXRlRWxlbWVudChFYyx7aW5mbzplLnRpY2tldC5zaGFyaW5nLmluZm8sb25Kb2luQ29udmVyc2F0aW9uQ2xpY2s6dCxvbkhlaWdodENoYW5nZTpufSkpfXJlbmRlclJlYWN0aW9uUGlja2VyKCl7Y29uc3R7Y29udmVyc2F0aW9uOmUsb25SZWFjdGlvblNlbGVjdDp0LG9uSGVpZ2h0Q2hhbmdlOm59PXRoaXMucHJvcHMse3JlYWN0aW9uc1JlcGx5Oml9PSgwLEplLlF6KShlKSx7cmVhY3Rpb25TZXQ6byxyZWFjdGlvbkluZGV4OmF9PWk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChvYy5aLHtyZWFjdGlvblNldDpvLHJlYWN0aW9uSW5kZXg6YSxvblJlYWN0aW9uU2VsZWN0OnQsb25IZWlnaHRDaGFuZ2U6bn0pfXJlbmRlckNvbnZlcnNhdGlvbkVuZGVkKCl7Y29uc3R7b25OZXdDb252ZXJzYXRpb25DbGljazplLG9uSGVpZ2h0Q2hhbmdlOnQsYWxsb3dOZXdDb252ZXJzYXRpb246bixhY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZEFmdGVyQm90OmksY29udmVyc2F0aW9uOm99PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChwYyx7b25OZXdDb252ZXJzYXRpb25DbGljazplLG9uSGVpZ2h0Q2hhbmdlOnQsYWxsb3dOZXdDb252ZXJzYXRpb246bixhY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZEFmdGVyQm90OmksaW5ib3VuZENvbnZlcnNhdGlvbnNEaXNhYmxlZDpvLmluYm91bmRDb252ZXJzYXRpb25zRGlzYWJsZWR9KX1yZW5kZXJDb250ZW50KCl7dmFyIGU7cmV0dXJuIHRoaXMuc2hvdWxkU2hvd1JlYWN0aW9uUGlja2VyKCk/dGhpcy5yZW5kZXJSZWFjdGlvblBpY2tlcigpOnRoaXMucHJvcHMuY29udmVyc2F0aW9uLnByZXZlbnRFbmRVc2VyUmVwbGllcz90aGlzLnJlbmRlckNvbnZlcnNhdGlvbkVuZGVkKCk6bnVsbCE9PShlPXRoaXMucHJvcHMuY29udmVyc2F0aW9uLnRpY2tldCkmJnZvaWQgMCE9PWUmJm51bGwhPT0oZT1lLnNoYXJpbmcpJiZ2b2lkIDAhPT1lJiZlLmNhbkpvaW4/dGhpcy5yZW5kZXJDb252ZXJzYXRpb25TaGFyaW5nRm9vdGVyKCk6dGhpcy5yZW5kZXJDb21wb3NlcigpfXJlbmRlcldoYXRzYXBwU3dpdGNoZWRGb290ZXIoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFdoYXRzYXBwU3dpdGNoZWRGb290ZXIse29uSGVpZ2h0Q2hhbmdlOnRoaXMucHJvcHMub25IZWlnaHRDaGFuZ2V9KX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zaG91bGRTaG93V2hhdHNBcHBTd2l0Y2goKT9yLmNyZWF0ZUVsZW1lbnQoc2MsbnVsbCx0aGlzLnJlbmRlcldoYXRzYXBwU3dpdGNoZWRGb290ZXIoKSk6ci5jcmVhdGVFbGVtZW50KHNjLG51bGwsdGhpcy5yZW5kZXJDb250ZW50KCkpfX1Db252ZXJzYXRpb25Gb290ZXIuY29udGV4dFR5cGU9YWMuTmk7dmFyIHdjPW4oNDM3NDUpLFNjPW4oOTg5MDkpLFBjPW4oNDEyNTQpO2NvbnN0IFRjPWU9PntpZihlLmxlbmd0aDw9MSlyZXR1cm4hMTtjb25zdCB0PVtdO2Zvcihjb25zdCBuIGluIGUpdC5wdXNoKGVbbl0ua2luZCk7cmV0dXJuIHQuaW5kZXhPZigic3RyaW5nIik+PTAmJnQuaW5kZXhPZigiZmlsZSIpPj0wfTt2YXIgWmM9big4MjU1KSxJYz1uKDczOTY0KSxqYz1uKDIxNjQ0KTtjb25zdCBfYz0iY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIixPYz0zMjAsQWM9MjMwLEJjPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoOHB4KTt9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7fSIpLFJjPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7fTEwMCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDhweCk7fSIpLHpjPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjA7fTEwMCV7b3BhY2l0eToxO30iKSxOYz0oMCxmLkY0KSgiMCV7b3BhY2l0eToxO30xMDAle29wYWNpdHk6MDt9IiksTWM9KDAsZi5GNCkoIjAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxNXB4KTt9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7fSIpLERjPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7fTEwMCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDE1cHgpO30iKSxMYz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlbG1tZzl6MCJ9KSgicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7IixJYy54NS5jbGFzc05hbWUsIntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7YW5pbWF0aW9uLW5hbWU6IixCYywiO2FuaW1hdGlvbi1kdXJhdGlvbjoiLE9jLCJtczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiIsX2MsIjthbmltYXRpb24tZGVsYXk6IixBYywibXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpiYWNrd2FyZHM7fSIsSWMua1YuY2xhc3NOYW1lLCI6YWZ0ZXJ7YW5pbWF0aW9uLW5hbWU6Iix6YywiO2FuaW1hdGlvbi1kdXJhdGlvbjoiLE9jLCJtczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiIsX2MsIjthbmltYXRpb24tZGVsYXk6IixBYywibXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpiYWNrd2FyZHM7fSIsTXMuY2xhc3NOYW1lLCIsIixzYy5jbGFzc05hbWUsIiwiLGpjLlcyLmNsYXNzTmFtZSwie29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTthbmltYXRpb24tbmFtZToiLE1jLCI7YW5pbWF0aW9uLWR1cmF0aW9uOiIsT2MsIm1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IixfYywiO2FuaW1hdGlvbi1kZWxheToiLDgwLCJtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fS5pbnRlcmNvbS1tZXNzZW5nZXItZnJvbS1pbmxpbmUtYXJ0aWNsZS12aWV3ICYuaW50ZXJjb20tbWVzc2VuZ2VyLWJvZHktdmlldy1lbnRlciwuaW50ZXJjb20tbWVzc2VuZ2VyLWZyb20tYnJvd3NlLW1vZGUgJi5pbnRlcmNvbS1tZXNzZW5nZXItYm9keS12aWV3LWVudGVyeyIsSWMueDUuY2xhc3NOYW1lLCJ7YW5pbWF0aW9uLWRlbGF5OiIsQWMsIm1zO30iLEljLmtWLmNsYXNzTmFtZSwiOmFmdGVye2FuaW1hdGlvbi1kZWxheToiLEFjLCJtczt9IixNcy5jbGFzc05hbWUsIiwiLHNjLmNsYXNzTmFtZSwiLCIsamMuVzIuY2xhc3NOYW1lLCJ7YW5pbWF0aW9uLWRlbGF5OiIsMjUwLCJtczt9fSYuaW50ZXJjb20tbWVzc2VuZ2VyLWJvZHktdmlldy1lbnRlcnt6LWluZGV4OiIsKDAseC5XNSkoKSwiO30mLmludGVyY29tLW1lc3Nlbmdlci1ib2R5LXZpZXctZXhpdHt6LWluZGV4OiIsKDAseC5XNSkoMSksIjsiLEljLng1LmNsYXNzTmFtZSwie2FuaW1hdGlvbi1uYW1lOiIsUmMsIjthbmltYXRpb24tZHVyYXRpb246IixPYywibXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjoiLF9jLCI7YW5pbWF0aW9uLWRlbGF5OiIsMjAsIm1zO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDt9IixJYy5rVi5jbGFzc05hbWUsIjphZnRlcnthbmltYXRpb24tbmFtZToiLE5jLCI7YW5pbWF0aW9uLWR1cmF0aW9uOiIsT2MsIm1zO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IixfYywiO2FuaW1hdGlvbi1kZWxheToiLDIwLCJtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fSIsTXMuY2xhc3NOYW1lLCIsIixzYy5jbGFzc05hbWUsIiwiLGpjLlcyLmNsYXNzTmFtZSwie2FuaW1hdGlvbi1uYW1lOiIsRGMsIjthbmltYXRpb24tZHVyYXRpb246IixPYywibXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjoiLF9jLCI7YW5pbWF0aW9uLWRlbGF5OiIsMTIwLCJtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fS5pbnRlcmNvbS1tZXNzZW5nZXItZnJvbS1jb252ZXJzYXRpb24gJnsiLE1zLmNsYXNzTmFtZSwiLCIsamMuVzIuY2xhc3NOYW1lLCJ7YW5pbWF0aW9uOm5vbmU7fX19Ji5pbnRlcmNvbS1tZXNzZW5nZXItYm9keS12aWV3LWV4aXQtYWN0aXZleyIsTXMuY2xhc3NOYW1lLCIsIixqYy5XMi5jbGFzc05hbWUsIntvcGFjaXR5OjA7fX0iLCgoe2lzRmV0Y2hpbmc6ZX0pPT5lJiYoMCxmLml2KShJYy54NS5jbGFzc05hbWUsIiwiLE1zLmNsYXNzTmFtZSwiLCIsc2MuY2xhc3NOYW1lLCJ7b3BhY2l0eTowO2FuaW1hdGlvbjpub25lO30iKSkpO2NsYXNzIENvbnZlcnNhdGlvbiBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuc3RhdGU9e2lzRW1vamlQaWNrZXJPcGVuOiExLGlzR2lmUGlja2VyT3BlbjohMSxmb290ZXJIZWlnaHQ6MH0sdGhpcy5hZGRDb252ZXJzYXRpb25PcGVuZWRNZXRyaWM9KCk9Pnt2YXIgZSx0LG47Y29uc3R7Y29udmVyc2F0aW9uOnIsc2VsZlNlcnZlU3VnZ2VzdGlvbnNFbmFibGVkOmksbm90aWZpY2F0aW9uTGlua0NvbnZlcnNhdGlvbklkOm99PXRoaXMucHJvcHM7KDAsT3QuV00pKCJ2aWV3ZWQiLHIuaWQ/ImNvbnZlcnNhdGlvbiI6Im5ld19jb252ZXJzYXRpb24iLCJtZXNzZW5nZXIiLG8/ImZyb21fZW1haWwiOiIiLHtjb252ZXJzYXRpb25faWQ6ci5pZCxzZWxmX3NlcnZlX3N1Z2dlc3Rpb25zX2VuYWJsZWQ6ISFpLHVybDpudWxsPT09KGU9KDAsdWUuYk0pKCkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmhyZWYsdGlja2V0X3R5cGVfaWQ6bnVsbD09PSh0PXIudGlja2V0KXx8dm9pZCAwPT09dD92b2lkIDA6dC50aWNrZXRUeXBlSWQsc3RhdHVzOm51bGw9PT0obj1yLnRpY2tldCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc3RhdHVzfSl9LHRoaXMuaGFuZGxlRW1vamlQaWNrZXJUb2dnbGU9KCk9Pnt0aGlzLnNldFN0YXRlKHtpc0Vtb2ppUGlja2VyT3BlbjohdGhpcy5zdGF0ZS5pc0Vtb2ppUGlja2VyT3Blbn0pfSx0aGlzLmhhbmRsZUdpZlBpY2tlclRvZ2dsZT0oKT0+e3RoaXMuc2V0U3RhdGUoe2lzR2lmUGlja2VyT3BlbjohdGhpcy5zdGF0ZS5pc0dpZlBpY2tlck9wZW59KX0sdGhpcy5oYW5kbGVGaWxlU3VibWl0PWU9Pnt0aGlzLmlzQ29tcG9zZXJEaXNhYmxlZCgpfHx0aGlzLmlzQ29tcG9zZXJIaWRkZW4oKXx8dGhpcy5wcm9wcy51cGxvYWRzRW5hYmxlZCYmZSYmMCE9PWUubGVuZ3RoJiZ0aGlzLmNyZWF0ZUF0dGFjaG1lbnRQYXJ0cyhlKX0sdGhpcy5jcmVhdGVBdHRhY2htZW50UGFydHM9ZT0+e2NvbnN0e2NvbnZlcnNhdGlvbjp0fT10aGlzLnByb3BzLHtjb21wb3NlclN0YXRlOm59PXQse2N1c3RvbUJvdEFjdGl2ZTpyfT1uLGk9dm9pZCAwPT09dC5pZDtpZihlLmxlbmd0aD41KXJldHVybiB2b2lkKDAsT3QuYmspKCJhdHRhY2htZW50X2xpbWl0X2V4Y2VlZGVkIix7ZmlsZV9jb3VudDplLmxlbmd0aCxwbGFjZToiY29udmVyc2F0aW9uIn0pO2NvbnN0IG89QXJyYXkuZnJvbShlKTtpfHxyP3RoaXMuY3JlYXRlQmxvY2tzRm9ySW1hZ2VPckF0dGFjaG1lbnQob1swXSk6by5mb3JFYWNoKChlPT50aGlzLmNyZWF0ZUJsb2Nrc0ZvckltYWdlT3JBdHRhY2htZW50KGUpKSl9LHRoaXMuY3JlYXRlQmxvY2tzRm9ySW1hZ2VPckF0dGFjaG1lbnQ9ZT0+e2NvbnN0e29uQXR0YWNobWVudFN1Ym1pdDp0fT10aGlzLnByb3BzOygwLFNjLnZrKShlKS50aGVuKChuPT57aWYobil7Y29uc3R7d2lkdGg6cixoZWlnaHQ6aSxzcmM6b309bixhPSgwLFBjLlNnKShuLnNyYyxlLm5hbWUsZS50eXBlKTt0KCgwLFpjLklVKShvLHIsaSksYSl9ZWxzZXtjb25zdHtuYW1lOm4sdHlwZTpyLHNpemU6aX09ZTt0KCgwLFpjLl9UKShuLHIsaSksZSl9fSkpfSx0aGlzLmhhbmRsZVBhc3RlPWU9Pnt0aGlzLmhhbmRsZUZpbGVTdWJtaXQoKGU9Pntjb25zdCB0PWUuY2xpcGJvYXJkRGF0YXx8ZS5vcmlnaW5hbEV2ZW50LmNsaXBib2FyZERhdGEse2l0ZW1zOm59PXQscj1bXSxpPVRjKG4pO2Zvcihjb25zdCBlIGluIG4pe2NvbnN0IHQ9bltlXTtpZigiZmlsZSI9PT10LmtpbmQmJiFpKXtjb25zdCBlPXQuZ2V0QXNGaWxlKCk7ci5wdXNoKGUpfX1yZXR1cm4gcn0pKGUpKX0sdGhpcy5oYW5kbGVEcmFnT3Zlcj1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCl9LHRoaXMuaGFuZGxlRHJvcD1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVGaWxlU3VibWl0KChlPT5lLmRhdGFUcmFuc2Zlci5maWxlcykoZSkpfSx0aGlzLmhhbmRsZUZvb3RlckhlaWdodENoYW5nZT1lPT57ZSE9PXRoaXMuc3RhdGUuZm9vdGVySGVpZ2h0JiZ0aGlzLnNldFN0YXRlKHtmb290ZXJIZWlnaHQ6ZX0pfSx0aGlzLmhhbmRsZVJlYWN0aW9uU2VsZWN0PWU9Pnt0aGlzLnByb3BzLm9uUmVhY3Rpb25TZWxlY3QoZSl9LHRoaXMuaGFuZGxlQ2xpY2s9KCk9Pntjb25zdHtpc0Vtb2ppUGlja2VyT3BlbjplLGlzR2lmUGlja2VyT3Blbjp0fT10aGlzLnN0YXRlO2U/dGhpcy5zZXRTdGF0ZSh7aXNFbW9qaVBpY2tlck9wZW46ITF9KTp0JiZ0aGlzLnNldFN0YXRlKHtpc0dpZlBpY2tlck9wZW46ITF9KX0sdGhpcy5oYW5kbGVKb2luQ29udmVyc2F0aW9uQ2xpY2s9KCk9Pnt0aGlzLnByb3BzLm9uSm9pbkNvbnZlcnNhdGlvbkNsaWNrKCl9fWNvbXBvbmVudERpZE1vdW50KCl7Y29uc3R7Y29udmVyc2F0aW9uOmUsdXNlcklzUHJlc2VudDp0fT10aGlzLnByb3BzOyFlLnJlYWQmJnQmJnRoaXMuaGFuZGxlQ29udmVyc2F0aW9uUmVhZCgpLHRoaXMubWF5YmVEZWxpdmVyQm90SW50cm8oKSx0aGlzLmFkZENvbnZlcnNhdGlvbk9wZW5lZE1ldHJpYygpfW1heWJlRGVsaXZlckJvdEludHJvKCl7Y29uc3R7ZWxpZ2libGVCb3RJbnRybzplLGRlbGl2ZXJCb3RJbnRybzp0fT10aGlzLnByb3BzO3RoaXMuc2hvdWxkRGVsaXZlckJvdEludHJvKCkmJnQoZSl9c2hvdWxkRGVsaXZlckJvdEludHJvKCl7Y29uc3R7ZWxpZ2libGVCb3RJbnRybzplLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOnQsY29udmVyc2F0aW9uOm59PXRoaXMucHJvcHM7cmV0dXJuIW4uaWQmJiFuLmJvdEludHJvSWQmJiF0LmlzSW5ib3VuZEJvdFN1Z2dlc3Rpb25zJiZlfWFkZFJlcGx5TWV0cmljKGUpe2NvbnN0IHQ9KDAsSmUuUXopKGUpOygwLEplLnI5KSh0KT90aGlzLmFkZE9wZXJhdG9yUmVwbHlNZXRyaWMoZSx0KTp0aGlzLmFkZEFkbWluUmVwbHlNZXRyaWMoZSx0KX1hZGRBZG1pblJlcGx5TWV0cmljKGUsdCl7dmFyIG47Y29uc3Qgcj1udWxsPT09KG49dC5ib2R5KXx8dm9pZCAwPT09bnx8bnVsbD09PShuPW4uZmlsdGVyKChlPT4iY3JlYXRlVGlja2V0Q2FyZCI9PT1lLnR5cGUpKVswXSl8fHZvaWQgMD09PW4/dm9pZCAwOm4udGlja2V0X3R5cGVfaWQ7KDAsT3QuV00pKCJyZWNlaXZlZCIsInJlcGx5IiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7Y29udmVyc2F0aW9uX2lkOmUuaWQscGFydF9pZDp0LmlkLHRpY2tldF90eXBlX2lkOnJ9KX1hZGRPcGVyYXRvclJlcGx5TWV0cmljKGUsdCl7KDAsT3QuV00pKCJyZWNlaXZlZCIsIm9wZXJhdG9yX3JlcGx5IiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7Y29udmVyc2F0aW9uX2lkOmUuaWQscGFydF9pZDp0LmlkLHR5cGU6KDAsSmUuckgpKHQpfSksdGhpcy5hZGRPcGVyYXRvckZvcm1NZXRyaWNzKGUsdCl9YWRkT3BlcmF0b3JGb3JtTWV0cmljcyhlLHQpe2NvbnN0e2Zvcm06bn09dDtuJiZuLmF0dHJpYnV0ZXMuZm9yRWFjaCgoKHtpZGVudGlmaWVyOnJ9KT0+e2xldCBpPSJhdXRvbWF0ZWRfbGVhZF9xdWFsaWZpY2F0aW9uIjtyZXR1cm4idXBmcm9udF9jb2xsZWN0aW9uIj09PW4udHlwZSYmKGk9InVwZnJvbnRfdXNlcl9jb2xsZWN0aW9uIiksKDAsT3QuV00pKCJyZWNlaXZlZCIsIm9wZXJhdG9yX3JlcGx5IiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7dHlwZTppLGNvbnZlcnNhdGlvbl9pZDplLmlkLHBhcnRfaWQ6dC5pZCxhdHRyaWJ1dGVfaWRlbnRpZmllcjpyLGF0dHJpYnV0ZV90eXBlOigwLEplLkRLKShuLHIpLGZvcm1fdHlwZTpuLnR5cGUsYXR0cmlidXRlX2lzX2N1c3RvbV9kYXRhOigwLEplLmZXKSh7aWRlbnRpZmllcjpyfSl9KX0pKX1hZGRUaWNrZXRTaGFyZWRNZXRyaWMoZSl7KDAsT3QuV00pKCJyZWNlaXZlZCIsInRpY2tldF9kZXRhaWxzIiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7dGlja2V0X3R5cGVfaWQ6ZS50aWNrZXRUeXBlSWR9KX1jb21wb25lbnREaWRVcGRhdGUoZSl7Y29uc3R7Y29udmVyc2F0aW9uOnR9PWU7dGhpcy5zaG91bGRNYXJrQ29udmVyc2F0aW9uQXNSZWFkKGUpJiZ0aGlzLmhhbmRsZUNvbnZlcnNhdGlvblJlYWQoKSwiYWxsIj09PXQuZmV0Y2hTdGF0ZSYmKDAsSmUuenEpKHQpPCgwLEplLnpxKSh0aGlzLnByb3BzLmNvbnZlcnNhdGlvbikmJnRoaXMuYWRkUmVwbHlNZXRyaWModGhpcy5wcm9wcy5jb252ZXJzYXRpb24pLCJhbGwiPT09dC5mZXRjaFN0YXRlJiZ2b2lkIDA9PT10LnRpY2tldCYmdm9pZCAwIT09dGhpcy5wcm9wcy5jb252ZXJzYXRpb24udGlja2V0JiZ0aGlzLmFkZFRpY2tldFNoYXJlZE1ldHJpYyh0aGlzLnByb3BzLmNvbnZlcnNhdGlvbi50aWNrZXQpfWhhbmRsZUNvbnZlcnNhdGlvblJlYWQoKXt0aGlzLnByb3BzLm9uQ29udmVyc2F0aW9uUmVhZCgpfWlzQ29tcG9zZXJEaXNhYmxlZCgpe2NvbnN0e3BhcnRzOmV9PXRoaXMucHJvcHMuY29udmVyc2F0aW9uO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4hMTtjb25zdHtzYXZlU3RhdGU6dH09ZVswXTtyZXR1cm4ic2F2aW5nIj09PXR8fCJmYWlsZWQiPT09dH1pc0luYm91bmRCb3RXaXRoRGlzYWJsZWRDb21wb3Nlcigpe2NvbnN0e2NvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOmV9PXRoaXMucHJvcHM7cmV0dXJuIGUuaXNJbmJvdW5kQm90U3VnZ2VzdGlvbnMmJmUuY29tcG9zZXJEaXNhYmxlZH1pc0xhc3RQYXJ0U2VuZGluZygpe2NvbnN0e3BhcnRzOmV9PXRoaXMucHJvcHMuY29udmVyc2F0aW9uO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4hMTtjb25zdHtzYXZlU3RhdGU6dH09ZVtlLmxlbmd0aC0xXTtyZXR1cm4ic2F2aW5nIj09PXR9aXNDb21wb3NlckhpZGRlbigpe2NvbnN0e2NvbnZlcnNhdGlvbjplfT10aGlzLnByb3BzLHtjb21wb3NlclN0YXRlOnQ9e319PWU7cmV0dXJuIXQudmlzaWJsZXx8ZS5wcmV2ZW50RW5kVXNlclJlcGxpZXN8fHRoaXMuaXNJbmJvdW5kQm90V2l0aERpc2FibGVkQ29tcG9zZXIoKX1zaG91bGRNYXJrQ29udmVyc2F0aW9uQXNSZWFkKGUpe2lmKCF0aGlzLnByb3BzLnVzZXJJc1ByZXNlbnQpcmV0dXJuITE7Y29uc3R7Y29udmVyc2F0aW9uOnQsdXNlcklzUHJlc2VudDpufT1lO3JldHVybiB0LnJlYWQmJiF0aGlzLnByb3BzLmNvbnZlcnNhdGlvbi5yZWFkfHwhdC5yZWFkJiYhbn1zaG91bGRTaG93Rm9vdGVyKCl7Y29uc3R7Y29udmVyc2F0aW9uOmV9PXRoaXMucHJvcHM7aWYodGhpcy5pc0NvbXBvc2VySGlkZGVuKCkmJiFlLnByZXZlbnRFbmRVc2VyUmVwbGllcylyZXR1cm4hMTtjb25zdCB0PSgwLEplLlF6KShlKTtyZXR1cm4hKHQmJiJhdHRyaWJ1dGVfY29sbGVjdG9yIj09PXQucmVwbHlUeXBlJiYobj10LmZvcm0sdm9pZCAwPT09bi5hdHRyaWJ1dGVzLmZpbmQoKCh7dmFsdWU6ZX0pPT5udWxsIT1lKSkpKTt2YXIgbn1yZW5kZXJCb2R5KCl7Y29uc3R7ZnJhbWVXaW5kb3c6ZSxjb252ZXJzYXRpb246dCxpc0hlYWRlckNvbGxhcHNlZDpuLG9uQXJ0aWNsZUNhcmRDbGljazppLG9uUmV0cnk6byxvbkhlYWRlckNvbGxhcHNlOmEsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6cyxvblN1Z2dlc3Rpb25DbGlja2VkOmwsc2V0Q29tcG9zZXJTdWdnZXN0aW9uc0Rpc21pc3NlZDpjLG9uTmV3Q29udmVyc2F0aW9uQ2xpY2s6ZH09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KHJjLHtjb252ZXJzYXRpb246dCxjb252ZXJzYXRpb25TdWdnZXN0aW9uczpzLGlzSGVhZGVyQ29sbGFwc2VkOm4sY29tcG9zZXJIZWlnaHQ6dGhpcy5zdGF0ZS5mb290ZXJIZWlnaHQsZnJhbWVXaW5kb3c6ZSxvbkFydGljbGVDYXJkQ2xpY2s6aSxvblJlYWN0aW9uU2VsZWN0OnRoaXMuaGFuZGxlUmVhY3Rpb25TZWxlY3Qsb25SZXRyeTpvLG9uSGVhZGVyQ29sbGFwc2U6YSxvblN1Z2dlc3Rpb25DbGlja2VkOmwsc2V0Q29tcG9zZXJTdWdnZXN0aW9uc0Rpc21pc3NlZDpjLG9uTmV3Q29udmVyc2F0aW9uQ2xpY2s6ZH0pfXJlbmRlckZvb3Rlcigpe2NvbnN0e2FwcFdpbmRvdzplLGZyYW1lV2luZG93OnQsY29udmVyc2F0aW9uOm4sb25IZWFkZXJDb2xsYXBzZTppLHNob3VsZFNob3dVcGZyb250RW1haWxDb21wb3NlcjpvLGFsbG93TmV3Q29udmVyc2F0aW9uOmEsaGVhZGVySGVpZ2h0OnMsY29udmVyc2F0aW9uU3VnZ2VzdGlvbnM6bCxvbk5ld0NvbnZlcnNhdGlvbkNsaWNrOmMsYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWRBZnRlckJvdDpkfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQ29udmVyc2F0aW9uRm9vdGVyLHtjb252ZXJzYXRpb246bixhcHBXaW5kb3c6ZSxmcmFtZVdpbmRvdzp0LHNob3dFbW9qaVBpY2tlcjp0aGlzLnN0YXRlLmlzRW1vamlQaWNrZXJPcGVuLHNob3dHaWZQaWNrZXI6dGhpcy5zdGF0ZS5pc0dpZlBpY2tlck9wZW4sb25IZWlnaHRDaGFuZ2U6dGhpcy5oYW5kbGVGb290ZXJIZWlnaHRDaGFuZ2Usb25FbW9qaVBpY2tlclRvZ2dsZTp0aGlzLmhhbmRsZUVtb2ppUGlja2VyVG9nZ2xlLG9uR2lmUGlja2VyVG9nZ2xlOnRoaXMuaGFuZGxlR2lmUGlja2VyVG9nZ2xlLG9uUmVhY3Rpb25TZWxlY3Q6dGhpcy5oYW5kbGVSZWFjdGlvblNlbGVjdCxvbkhlYWRlckNvbGxhcHNlOmksb25Kb2luQ29udmVyc2F0aW9uQ2xpY2s6dGhpcy5oYW5kbGVKb2luQ29udmVyc2F0aW9uQ2xpY2ssc2hvdWxkU2hvd1VwZnJvbnRFbWFpbENvbXBvc2VyOm8sYWxsb3dOZXdDb252ZXJzYXRpb246YSxoZWFkZXJIZWlnaHQ6cyxjb252ZXJzYXRpb25TdWdnZXN0aW9uczpsLG9uTmV3Q29udmVyc2F0aW9uQ2xpY2s6YyxhY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZEFmdGVyQm90OmR9KX1yZW5kZXIoKXtjb25zdHtpc0ZldGNoaW5nOmUsaXNVcGRhdGluZzp0fT10aGlzLnByb3BzLmNvbnZlcnNhdGlvbjtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHdjLlouUHJvdmlkZXIse3ZhbHVlOndjLnF9LHIuY3JlYXRlRWxlbWVudChMYyx7Y2xhc3NOYW1lOiJpbnRlcmNvbS1jb252ZXJzYXRpb24iLG9uUGFzdGU6dGhpcy5oYW5kbGVQYXN0ZSxvbkRyYWdPdmVyOnRoaXMuaGFuZGxlRHJhZ092ZXIsb25Ecm9wOnRoaXMuaGFuZGxlRHJvcCxvbkNsaWNrOnRoaXMuaGFuZGxlQ2xpY2ssdGFiSW5kZXg6Ii0xIixyb2xlOiJwcmVzZW50YXRpb24iLGlzRmV0Y2hpbmc6ZSYmIXR9LHRoaXMucmVuZGVyQm9keSgpLHRoaXMuc2hvdWxkU2hvd0Zvb3RlcigpP3RoaXMucmVuZGVyRm9vdGVyKCk6bnVsbCkpfX1Db252ZXJzYXRpb24ucHJvcFR5cGVzPXtjb252ZXJzYXRpb246cCgpLnNoYXBlKHtpZDpwKCkuc3RyaW5nLHBhcnRzOnAoKS5hcnJheU9mKHAoKS5zaGFwZSh7c2F2ZVN0YXRlOnAoKS5vbmVPZihbInNhdmVkIiwic2F2aW5nIiwiZmFpbGVkIl0pfSkpLmlzUmVxdWlyZWQscmVhZDpwKCkuYm9vbC5pc1JlcXVpcmVkLHByZXZlbnRFbmRVc2VyUmVwbGllczpwKCkuYm9vbCxwcmV2ZW50RW5kVXNlclJlcGxpZXNUaW1lc3RhbXA6cCgpLm51bWJlcixmZXRjaFN0YXRlOnAoKS5vbmVPZihbInN1bW1hcnkiLCJwYXJ0aWFsIiwiYWxsIl0pLGlzRmV0Y2hpbmc6cCgpLmJvb2wuaXNSZXF1aXJlZCxpc1VwZGF0aW5nOnAoKS5ib29sLmlzUmVxdWlyZWQsY29tcG9zZXJTdGF0ZTpwKCkuc2hhcGUoe3Zpc2libGU6cCgpLmJvb2wuaXNSZXF1aXJlZCxjdXN0b21Cb3RBY3RpdmU6cCgpLmJvb2x9KS5pc1JlcXVpcmVkLGluYm91bmRDb252ZXJzYXRpb25zRGlzYWJsZWQ6cCgpLmJvb2wsYm90SW50cm9JZDpwKCkuc3RyaW5nLHRpY2tldDpwKCkuc2hhcGUoe3RpY2tldFR5cGVJZDpwKCkubnVtYmVyLHN0YXR1czpwKCkuc3RyaW5nfSl9KS5pc1JlcXVpcmVkLGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOnAoKS5zaGFwZSh7cHJvbXB0OnAoKS5hbnksaXNJbmJvdW5kQm90U3VnZ2VzdGlvbnM6cCgpLmJvb2wsY29tcG9zZXJEaXNhYmxlZDpwKCkuYm9vbCxzdWdnZXN0aW9uczpwKCkuYXJyYXlPZihwKCkuc2hhcGUoe3V1aWQ6cCgpLnN0cmluZy5pc1JlcXVpcmVkLHRleHQ6cCgpLnN0cmluZy5pc1JlcXVpcmVkLHByZUFjdGlvbjpwKCkuc3RyaW5nfSkpLHN1Z2dlc3Rpb25QYXJ0czpwKCkub2JqZWN0fSksYXBwV2luZG93OnAoKS5hbnkuaXNSZXF1aXJlZCxmcmFtZVdpbmRvdzpwKCkuYW55LmlzUmVxdWlyZWQsdXNlcklzUHJlc2VudDpwKCkuYm9vbC5pc1JlcXVpcmVkLHVzZXJTdXBwbGllZEVtYWlsOnAoKS5zdHJpbmcscm9sZTpwKCkuc3RyaW5nLHNob3VsZFNob3dVcGZyb250RW1haWxDb21wb3NlcjpwKCkuYm9vbCxhbGxvd05ld0NvbnZlcnNhdGlvbjpwKCkuYm9vbCxpc0hlYWRlckNvbGxhcHNlZDpwKCkuYm9vbCx1cGxvYWRzRW5hYmxlZDpwKCkuYm9vbCxvblJlYWN0aW9uU2VsZWN0OnAoKS5mdW5jLmlzUmVxdWlyZWQsb25Db252ZXJzYXRpb25SZWFkOnAoKS5mdW5jLmlzUmVxdWlyZWQsb25BcnRpY2xlQ2FyZENsaWNrOnAoKS5mdW5jLG9uUmV0cnk6cCgpLmZ1bmMuaXNSZXF1aXJlZCxvbkF0dGFjaG1lbnRTdWJtaXQ6cCgpLmZ1bmMuaXNSZXF1aXJlZCxvbkhlYWRlckNvbGxhcHNlOnAoKS5mdW5jLmlzUmVxdWlyZWQsb25Kb2luQ29udmVyc2F0aW9uQ2xpY2s6cCgpLmZ1bmMuaXNSZXF1aXJlZCxkZWxpdmVyQm90SW50cm86cCgpLmZ1bmMuaXNSZXF1aXJlZCxoZWFkZXJIZWlnaHQ6cCgpLm51bWJlcixvblN1Z2dlc3Rpb25DbGlja2VkOnAoKS5mdW5jLHNldENvbXBvc2VyU3VnZ2VzdGlvbnNEaXNtaXNzZWQ6cCgpLmZ1bmMsc2VsZlNlcnZlU3VnZ2VzdGlvbnNFbmFibGVkOnAoKS5ib29sLG9uTmV3Q29udmVyc2F0aW9uQ2xpY2s6cCgpLmZ1bmMsYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWRBZnRlckJvdDpwKCkuYm9vbCxlbGlnaWJsZUJvdEludHJvOnAoKS5zaGFwZSh7aWQ6cCgpLnN0cmluZyxvcGVyYXRvcjpwKCkub2JqZWN0LHBhcnRzOnAoKS5hcnJheU9mKHAoKS5hbnkpfSksbm90aWZpY2F0aW9uTGlua0NvbnZlcnNhdGlvbklkOnAoKS5zdHJpbmd9O3ZhciBHYz1uKDcyMjI2KSxGYz1uKDk5MTc5KSxxYz1uKDc0NDg5KTt2YXIgSGM9big0MjMwNyk7Y29uc3QgV2M9ZT0+e3ZhciB0LG47Y29uc3Qgcj1udWxsPT09KHQ9ZS5zZXNzaW9uKXx8dm9pZCAwPT09dD92b2lkIDA6dC5lbWFpbCxpPW51bGw9PT0obj1lLnVzZXIpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnVzZXJTdXBwbGllZEVtYWlsO3JldHVybiByfHxpfSxVYz1lPT57dmFyIHQ7cmV0dXJuIG51bGw9PT0odD1lLnNlc3Npb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmhlbHBDZW50ZXJTZXNzaW9ufTtmdW5jdGlvbiBWYygpe3JldHVybiBWYz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LFZjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jb25zdCAkYz0oMCxvLmNvbm5lY3QpKCgoZSx7Y29udmVyc2F0aW9uOnR9KT0+e2NvbnN0e3VzZXJDb252ZXJzYXRpb25BdHRhY2htZW50c0VuYWJsZWQ6bix1c2VyQ29udmVyc2F0aW9uR2lmc0VuYWJsZWQ6cn09ZS5hcHAse2lzUHJlc2VudDppfT1lLnVzZXIsbz1lLmFwcCYmZS5hcHAub2ZmaWNlSG91cnNSZXNwb25zZSxhPWUuYm9yZGVybGVzcyx7bGFzdFBhcnRpY2lwYXRpbmdBZG1pbjpzfT10LGw9KDAsei5OZSkoZSksYz0oMCx6LmFBKShlKSxkPSgwLHFjLnFVKSh0KShlKSxwPSgwLHFjLlkpKGUpLHU9KDAsei5EWCkoZSksbT0oZT0+KDAsQS5jcmVhdGVTZWxlY3RvcikoW2U9PmUuYXBwLmNvbnZlcnNhdGlvbklkLHQ9PigwLHFjLnFVKShlKSh0KSxlPT5lLmJvdEludHJvXSwoKGUsdCxuKT0+ZXx8dC5pc0luYm91bmRCb3RTdWdnZXN0aW9ucz9udWxsOm4uaWQ/bjpudWxsKSkpKHQpKGUpLGg9KGU9Pnt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PWUudXNlcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQubm90aWZpY2F0aW9uTGlua0NvbnZlcnNhdGlvbklkfSkoZSk7cmV0dXJue2NvbnZlcnNhdGlvbjp0LGNvbnZlcnNhdGlvblN1Z2dlc3Rpb25zOmQsdXNlcklzUHJlc2VudDppLG9mZmljZUhvdXJzUmVzcG9uc2U6byxpc0JvcmRlcmxlc3M6YSxsYXN0UGFydGljaXBhdGluZ0FkbWluOnMsdXBsb2Fkc0VuYWJsZWQ6bixnaWZzRW5hYmxlZDpyLHNob3VsZFNob3dVcGZyb250RW1haWxDb21wb3NlcjpsLGFsbG93TmV3Q29udmVyc2F0aW9uOmMsc2VsZlNlcnZlU3VnZ2VzdGlvbnNFbmFibGVkOnAsYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWRBZnRlckJvdDp1LGVsaWdpYmxlQm90SW50cm86bSxub3RpZmljYXRpb25MaW5rQ29udmVyc2F0aW9uSWQ6aH19KSwoZT0+KHtvbkFydGljbGVDYXJkQ2xpY2s6KHQsbik9PmUoKDAsTXQuTmwpKHQsbiwhMSkpLG9uQ29udmVyc2F0aW9uUmVhZDp0PT57ZSgoMCxmci5SNykoR3QuWlAsdCkpfSxvblJldHJ5Oih0LG4pPT57ZSgoMCxmci56XykoR3QuWlAsdCxuKSl9LG9uUmVhY3Rpb25TZWxlY3Q6KHQsbik9PntlKCgwLGZyLndDKShHdC5aUCx0LG4sITApKX0sc2V0Q29tcG9zZXJTdWdnZXN0aW9uc0Rpc21pc3NlZDp0PT57ZSgoMCxGYy5URSkodCkpfSxvbkF0dGFjaG1lbnRTdWJtaXQ6KHQsbixyLGksbz1uZXcgRGF0ZSk9Pntjb25zdCBhPXtjbGllbnRJZDpuLGNyZWF0ZWRBdDpvLGJvZHk6cixmaWxlOml9O2UoKDAsZnIuQ3YpKEd0LlpQLHQsYSkpfSxvblN1Z2dlc3Rpb25DbGlja2VkOih0LG4scixpKT0+ZSgoMCxHYy5aKShHdC5aUCx0LG4sITEsciwhMSxpKSksb25OZXdDb252ZXJzYXRpb25DbGljazooKT0+e2UoKDAsY2Uua0MpKCIiLCEwKSl9LGRlbGl2ZXJCb3RJbnRybzp0PT57ZSgoMCxIYy5kKSh0KSl9LG9uSm9pbkNvbnZlcnNhdGlvbkNsaWNrOnQ9PntlKCgwLGZyLiRvKShHdC5aUCx0KSl9fSkpLCgoZSx0LG4pPT57Y29uc3Qgcj1lLmNvbnZlcnNhdGlvbi5pZCxpPWUub2ZmaWNlSG91cnNSZXNwb25zZSxvPXtvbkNvbnZlcnNhdGlvblJlYWQ6KCk9PntuLm01RW5hYmxlZHx8dC5vbkNvbnZlcnNhdGlvblJlYWQocil9LG9uQXR0YWNobWVudFN1Ym1pdDooZSxuKT0+e3Qub25BdHRhY2htZW50U3VibWl0KHIsKDAsWnMuRCkoKSxlLG4pfSxvblJldHJ5Om49Pnt0Lm9uUmV0cnkoZS5jb252ZXJzYXRpb24sbil9LG9uUmVhY3Rpb25TZWxlY3Q6ZT0+e3Qub25SZWFjdGlvblNlbGVjdChyLGUpfSxzZXRDb21wb3NlclN1Z2dlc3Rpb25zRGlzbWlzc2VkOigpPT57dC5zZXRDb21wb3NlclN1Z2dlc3Rpb25zRGlzbWlzc2VkKHIpfSxvblN1Z2dlc3Rpb25DbGlja2VkOm49Pntjb25zdHtjb252ZXJzYXRpb246cn09ZSxvPSgwLHFjLlYwKShyKTtyZXR1cm4gdC5vblN1Z2dlc3Rpb25DbGlja2VkKHIsbixvLGkpfSxvbkpvaW5Db252ZXJzYXRpb25DbGljazooKT0+e3Qub25Kb2luQ29udmVyc2F0aW9uQ2xpY2socil9fTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxuLGUsdCxvKX0pKShDb252ZXJzYXRpb24pLEtjPShmdW5jdGlvbihlKXtjb25zdCB0PWUuZGlzcGxheU5hbWV8fGUubmFtZXx8IkNvbXBvbmVudCIsbj10PT57Y29uc3Qgbj0oMCxoLkNHKSh5YS5tQSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChlLFZjKHtjb252ZXJzYXRpb246bixtNUVuYWJsZWQ6ITF9LHQpKX07bi5kaXNwbGF5TmFtZT1gd2l0aExlZ2FjeUN1cnJlbnRDb252ZXJzYXRpb24oJHt0fSlgfSgkYyksKCk9Pntjb25zdCBlPVVhKCksdD0oMCxoLlRMKSgpLG49KDAsaC5DRykoeWEuUTIpLGk9bnVsbD09ZT92b2lkIDA6ZS5pZCxvPSEobnVsbCE9ZSYmZS5yZWFkKSxhPW51bGw9PWU/dm9pZCAwOmUuaXNGZXRjaGluZyxzPSgwLGguQ0cpKG5jLlopOygwLHIudXNlRWZmZWN0KSgoKCk9PntzJiZpJiZvJiYhYSYmdCgoMCxmci5SNykoR3QuWlAsaSkpfSksW3QscyxpLG8sYV0pO3JldHVybigwLGguQ0cpKHouSE4pPygwLEYubSkoKT9udWxsOnIuY3JlYXRlRWxlbWVudChUcyxudWxsLHIuY3JlYXRlRWxlbWVudChZdC5aLHtkZWxheTozMDB9KSk6ci5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsci5jcmVhdGVFbGVtZW50KFRzLG51bGwsci5jcmVhdGVFbGVtZW50KCRjLHtjb252ZXJzYXRpb246ZXx8bixmcmFtZVdpbmRvdzp3aW5kb3csYXBwV2luZG93OndpbmRvdyxvbkhlYWRlckNvbGxhcHNlOigpPT57fSxtNUVuYWJsZWQ6ITB9KSkpfSk7dmFyIFljPXtuYW1lOiIxdWFpczVmIixzdHlsZXM6InBhZGRpbmctYm90dG9tOjQwMHB4OyJ9LEpjPXtuYW1lOiJ5OGFqM3IiLHN0eWxlczoicGFkZGluZzowOyJ9LFhjPXtuYW1lOiJ4NGRtc3MiLHN0eWxlczoianVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47In07Y29uc3QgUWM9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGMwIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MTAwJTtwYWRkaW5nOjEycHggMjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IiwoKHtzcGFjZWQ6ZX0pPT5lJiZYYyksIiAiLCgoe3dpdGhvdXRQYWRkaW5nOmV9KT0+ZSYmSmMpLCIgIiwoZT0+ZS5leHRyYUlPU1BhZGRpbmcmJlljKSksZWQ9KDAsZi5aUCkoInNlY3Rpb24iLHt0YXJnZXQ6ImUxZTRiaGRjMSJ9KSgiZmxleDoxO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOyIsSy5wLmNsYXNzTmFtZSwie2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30iLChlPT5lLnNlYXJjaFZpZXcmJmBcbiAgICAke2lvLmp3LmNsYXNzTmFtZX0ge1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgI0ZGRkZGRiAxMDAlKTtcbiAgICB9YCkpOygwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZTRiaGRjMiJ9KSgiei1pbmRleDoiLCgwLHguVzUpKCksIjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4OyYsKntjdXJzb3I6cG9pbnRlcjt9IiksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGMzIn0pKCJ3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4O21hcmdpbjowIGF1dG87Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6IiwoMCxmLnJTKSgibWVzc2VuZ2VyQm9yZGVyUmFkaXVzUHgiKSwicHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTsmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgibGlnaHRHcmV5NCIpLCI7fXN2Z3s+IGcgPiBne2ZpbGw6IiwoMCxmLnJTKSgiZGFya0dyZXkiKSwiO319IiksKDAsZi5aUCkoImlucHV0Iix7dGFyZ2V0OiJlMWU0YmhkYzQifSkoInBhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDo4cHg7Y29sb3I6IzIxMjEyMTt3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxNXB4OyY6OnBsYWNlaG9sZGVye2NvbG9yOiIsKDAsZi5yUykoImdyZXkiKSwiO2ZvbnQtc3R5bGU6IiwoMCxmLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7b3BhY2l0eTowLjc7fSIpO3ZhciB0ZD17bmFtZToiaWIxcXk5IixzdHlsZXM6InBhZGRpbmctdG9wOjE1cHg7ZmxleC1ncm93OnVuc2V0O2FsaWduLWl0ZW1zOnRvcDsifTsoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzUifSkoImRpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsiLCgoe3RoZW1lOmV9KT0+ZS5pc01vYmlsZSYmdGQpKSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzYifSkoImNvbG9yOiIsKDAsZi5yUykoImdyZXkiKSwiO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHg7cG9zaXRpb246cmVsYXRpdmU7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7Iik7dmFyIG5kPXtuYW1lOiIxMnpoeTQzIixzdHlsZXM6ImZsZXgtZ3Jvdzp1bnNldDsifTsoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzcifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxOyY6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MDt9IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGUmJm5kKSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGM4In0pKHtuYW1lOiIxdGo2azFlIixzdHlsZXM6ImZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4O2NvbG9yOiMwMDA7bWFyZ2luOjEycHggMDtwb3NpdGlvbjpyZWxhdGl2ZTsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGM5In0pKCJmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MjFweDtjb2xvcjoiLCgwLGYuclMpKCJncmV5IiksIjttYXJnaW4tdG9wOjI0cHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxMnB4IDBweDsiKSwoMCxmLlpQKSgidWwiLHt0YXJnZXQ6ImUxZTRiaGRjMTAifSkoe25hbWU6IjFjMmZmdiIsc3R5bGVzOiJsaXN0LXN0eWxlLXR5cGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZTRiaGRjMTEifSkoIm92ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2hpZ2hsaWdodHtjb2xvcjoiLCgwLGYuclMpKCJidXR0b25CYWNrZ3JvdW5kQ29sb3IiKSwiO30iKSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzEyIn0pKCJ3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7aGlnaGxpZ2h0e2NvbG9yOiIsKDAsZi5yUykoImJ1dHRvbkJhY2tncm91bmRDb2xvciIpLCI7fSIpO2NvbnN0IHJkPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZTRiaGRjMTMifSkoe25hbWU6Ijh4bDYwaSIsc3R5bGVzOiJtYXJnaW4tdG9wOmF1dG87In0pO3ZhciBpZD17bmFtZToiMTExamR1aCIsc3R5bGVzOiJwYWRkaW5nOjI0cHggMCAxMnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO21hcmdpbi1sZWZ0Oi0yNHB4O21hcmdpbi1yaWdodDotMjRweDt3aWR0aDphdXRvOyJ9O2NvbnN0IG9kPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZTRiaGRjMTQifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7Ym9yZGVyLWNvbG9yOiIsKDAsZi5yUykoImxpZ2h0R3JleTEwIiksIjsiLCgoe3dpdGhCb3JkZXJUb3A6ZX0pPT5lJiZpZCksIjsiKSxhZD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzE1In0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2F7d2hpdGUtc3BhY2U6bm93cmFwO31jb2xvcjoiLCgwLGYuclMpKCJibGFjayIpLCI7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweDttYXJnaW4tdG9wOjhweDsiKSxzZD0oKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGMxNiJ9KSh7bmFtZToiNmdwa3RhIixzdHlsZXM6Im1pbi1oZWlnaHQ6MTAwJTsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGMxNyJ9KSh7bmFtZToibzQ0aXMiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjEwMCU7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZTRiaGRjMTgifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyOyIsSXQuY2xhc3NOYW1lLCJ7bWFyZ2luLXJpZ2h0OjEwcHg7fSIpKSxsZD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWU0YmhkYzE5In0pKHtuYW1lOiIxeGFla2d3IixzdHlsZXM6Im1hcmdpbi10b3A6MjBweDsifSk7KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFlNGJoZGMyMCJ9KSh7bmFtZToid216MDYyIixzdHlsZXM6Im1hcmdpbi10b3A6MTRweDsifSk7ZnVuY3Rpb24gY2Qoe2luQXJ0aWNsZTplPSExfSl7Y29uc3QgdD0oMCxoLkNHKShwZS5DcSksbj0oMCxoLkNHKShCLk5LKSxpPSgwLGguQ0cpKHouVkopO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoc2QsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoR28se21ldHJpY3NDb250ZXh0OmU/QXQudXI6QXQuX0IsbWV0YWRhdGE6ZT97YXJ0aWNsZV9pZDpudWxsPT1uP3ZvaWQgMDpuLmlkfTp7cGhyYXNlOnR9fSksci5jcmVhdGVFbGVtZW50KGFkLG51bGwsKG51bGw9PWk/dm9pZCAwOmkuc3VidGl0bGUpfHwoMCx1Lkl1KSgidGhlX3RlYW1fY2FuX2hlbHBfaWZfbmVlZGVkIikpKX1mdW5jdGlvbiBkZCh7aW5BcnRpY2xlOmU9ITEsd2l0aEJvcmRlclRvcDp0PSExLG9ubHlTaG93QWZ0ZXJBcnRpY2xlVmlldzpuPSExfSl7Y29uc3QgaT0oMCxoLkNHKSh6LkRYKSxvPSgwLGguQ0cpKHBlLkMyKTtyZXR1cm4gbiYmIW8/bnVsbDpyLmNyZWF0ZUVsZW1lbnQocmQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQob2Qse3dpdGhCb3JkZXJUb3A6dH0saT9yLmNyZWF0ZUVsZW1lbnQoY2Qse2luQXJ0aWNsZTplfSk6ci5jcmVhdGVFbGVtZW50KGxkLG51bGwsci5jcmVhdGVFbGVtZW50KEdvLG51bGwpKSkpfWZ1bmN0aW9uIHBkKCl7Y29uc3R7aGFzU2VhcmNoUmVzdWx0czplLHNob3dTZWFyY2hSZXN1bHRzOnQscGhyYXNlOm4sc2VhcmNoUmVzdWx0czppLGhpZGVSZXN1bHRzV2l0aERlbGF5Om99PSgwLGguQ0cpKChlPT5lLmJyb3dzZU1vZGUpKSxbYSxzXT0oMCxyLnVzZVN0YXRlKSghMSksW2wsY109KDAsci51c2VTdGF0ZSkoITEpLGQ9KG51bGw9PWk/dm9pZCAwOmkubGVuZ3RoKXx8MCxwPW4mJm4udHJpbSgpLmxlbmd0aDw9NSYmMD09PWQsdT0oMCxyLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+KGUmJiF0PyhjKCExKSxwP3UuY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+cyghMCkpLDFlMyk6cyghMCkpOmEhPT10JiYodHx8ZXx8IW8/bHx8cyh0KTooYyghMCksdS5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57cyghMSksYyghMSl9KSw1MDApKSksKCk9Pnt1LmN1cnJlbnQmJmNsZWFyVGltZW91dCh1LmN1cnJlbnQpfSkpLFtlLHQscCxhLG8sbF0pLGF9Y29uc3QgdWQ9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFyM216anQwIn0pKHtuYW1lOiJ1bmxlODUiLHN0eWxlczoiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo3MHZoOyJ9KSxtZD0oMCxmLlpQKShhbC52MSx7dGFyZ2V0OiJlZ3djZHloMCJ9KSh7bmFtZToiMXlueTRjMCIsc3R5bGVzOiJtYXJnaW4tYm90dG9tOjRweDtmb250LXdlaWdodDo2MDA7In0pLGhkPSgwLGYuWlApKGFsLnYxLHt0YXJnZXQ6ImVnd2NkeWgxIn0pKCJtYXJnaW4tYm90dG9tOjRweDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Y29sb3I6IiwoMCxmLnJTKSgibTVEYXJrR3JleTIiKSwiOyIpLGdkPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlZnZ0aTN4MCJ9KSgiY29sb3I6IiwoMCxmLnJTKSgiaW5wdXRHcmV5IiksIjsiKSxmZD0oe3RpdGxlOmUsZGVzY3JpcHRpb246dCxhcnRpY2xlc0NvdW50Om4sb25DbGljazppfSk9Pntjb25zdCBvPSgwLHUuSXUpKDE9PT1uPyJzaW5nbGVfYXJ0aWNsZSI6Im11bHRpcGxlX2FydGljbGVzIix7dG90YWxfYXJ0aWNsZXM6bi50b1N0cmluZygpfSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChTdC5aLHtub3RlOnIuY3JlYXRlRWxlbWVudChnZCxudWxsLG8pLHJpZ2h0SWNvbjoiUmlnaHRDaGV2cm9uQ29sb3JhYmxlIixyaWdodEljb25Db2xvcjoibGlua0NvbG9yIixob3ZlckJhY2tncm91bmQ6ITAsb25DbGljazppLCJkYXRhLXRlc3RpZCI6ImNvbGxlY3Rpb24tY2FyZCJ9LCEhZSYmci5jcmVhdGVFbGVtZW50KG1kLG51bGwsZSksISF0JiZyLmNyZWF0ZUVsZW1lbnQoaGQsbnVsbCx0KSl9LHhkPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNWdjb2I0MCJ9KSh7bmFtZToiMWp6dTVsMSIsc3R5bGVzOiJwYWRkaW5nOjIwcHggMjBweCA0MHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7In0pLHZkPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNWdjb2I0MSJ9KSgic3ZnID4gcGF0aHtmaWxsOiIsKDAsZi5yUykoImJsYWNrIiksIjt9c3ZnID4gcGF0aFtjbGFzcyQ9J3N0cm9rZSdde3N0cm9rZToiLCgwLGYuclMpKCJibGFjayIpLCI7ZmlsbDpub25lO31zdmd7KltjbGFzcyQ9J19fY2lyY2xlJ117ZmlsbDoiLCgwLGYuclMpKCJibGFjayIpLCI7c3Ryb2tlOiIsKDAsZi5yUykoImJsYWNrIiksIjt9KltjbGFzcyQ9J19fbmVnYXRpdmUnXXtzdHJva2U6IiwoMCxmLnJTKSgid2hpdGUiKSwiO31jaXJjbGVbY2xhc3MqPSdfX25lZ2F0aXZlJ117ZmlsbDoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7c3Ryb2tlOm5vbmU7fX0iKSx5ZD0oMCxmLlpQKSgicCIse3RhcmdldDoiZTE1Z2NvYjQyIn0pKHtuYW1lOiJ5MnR3NHoiLHN0eWxlczoiZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToyMHB4O2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoyNHB4OyJ9KSxiZD0oKT0+ci5jcmVhdGVFbGVtZW50KHhkLG51bGwsci5jcmVhdGVFbGVtZW50KHZkLG51bGwsci5jcmVhdGVFbGVtZW50KGxlLlose3R5cGU6IkhlbHAiLHNpemU6MzB9KSksci5jcmVhdGVFbGVtZW50KHlkLG51bGwsKDAsdS5JdSkoIm5vX2FydGljbGVzX3RvX2Rpc3BsYXkiKSkpLEVkPSh7Y29sbGVjdGlvbnM6ZSxvbkNvbGxlY3Rpb25DbGljazp0fSk9Pntjb25zdCBuPShudWxsPT1lP3ZvaWQgMDplLmxlbmd0aCl8fDA7aWYoMD09PW4pcmV0dXJuIHIuY3JlYXRlRWxlbWVudCh1ZCxudWxsLHIuY3JlYXRlRWxlbWVudChiZCxudWxsKSk7Y29uc3QgaT0xPT09bj8oMCx1Lkl1KSgic2luZ2xlX2NvbGxlY3Rpb24iKTooMCx1Lkl1KSgibXVsdGlwbGVfY29sbGVjdGlvbnMiLHt0b3RhbF9jb2xsZWN0aW9uOm4udG9TdHJpbmcoKX0pO3JldHVybiByLmNyZWF0ZUVsZW1lbnQod3QuWlAse3RpdGxlOml9LG51bGw9PWU/dm9pZCAwOmUubWFwKCgoZSxuKT0+ci5jcmVhdGVFbGVtZW50KGZkLHtrZXk6bix0aXRsZTplLnRpdGxlLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sYXJ0aWNsZXNDb3VudDplLmFydGljbGVzQ291bnQsb25DbGljazooKT0+dChlLmlkKX0pKSkpfSxrZD0oKT0+e2NvbnN0IGU9KDAsaC5UTCkoKSx0PSgwLGguQ0cpKChlPT5lLmFydGljbGVDb2xsZWN0aW9ucykpLG49KDAsaC5DRykoKGU9PmUuYnJvd3NlTW9kZS5pc0ZldGNoaW5nKSksaT10Lm1hcCgoZT0+e2NvbnN0IHQ9ZS5jaGlsZHJlbi5sZW5ndGg+MHx8ZS5hcnRpY2xlcy5sZW5ndGg+MDtyZXR1cm57aWQ6ZS5pZCx0aXRsZTplLm5hbWUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbixhcnRpY2xlc0NvdW50OnQ/ZS5hcnRpY2xlQ291bnQ6ZS5zZWN0aW9ucy5yZWR1Y2UoKChlLHQpPT57dmFyIG47cmV0dXJuIHQrKChudWxsPT09KG49ZS5hcnRpY2xlcyl8fHZvaWQgMD09PW4/dm9pZCAwOm4ubGVuZ3RoKXx8MCl9KSwwKSxhcnRpY2xlczplLmFydGljbGVzLGNoaWxkcmVuOmUuY2hpbGRyZW59fSkpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoRWQse2NvbGxlY3Rpb25zOmksb25Db2xsZWN0aW9uQ2xpY2s6dD0+e258fGUoKDAsRHQuSDkpKHQpKX19KSl9O2Z1bmN0aW9uIENkKHtodG1sOmV9KXtjb25zdCB0PWUuc3BsaXQoLzxcLz9oaWdobGlnaHQ+Lyk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsdC5tYXAod2QpKX1mdW5jdGlvbiB3ZChlLHQpe3JldHVybiB0JTI/ci5jcmVhdGVFbGVtZW50KFNkLHtrZXk6dH0sZSk6ci5jcmVhdGVFbGVtZW50KCJzcGFuIix7a2V5OnR9LGUpfWNvbnN0IFNkPSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlMXVmZWFocTAifSkoImNvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjtmb250LXdlaWdodDo2MDA7IiksUGQ9KDAsZi5aUCkoU3QuWix7dGFyZ2V0OiJlMWQzeWZ3ZjAifSkoKCh7aXNTZWFyY2g6ZSx0aGVtZTp0fSk9PmUmJigwLGYuaXYpKCImOmhvdmVyeyIsVGQuY2xhc3NOYW1lLCJ7Y29sb3I6Iix0LmdyZXksIjt9fSIpKSksVGQ9KDAsZi5aUCkoYWwudjEse3RhcmdldDoiZTFkM3lmd2YxIn0pKCJjb2xvcjoiLCgwLGYuclMpKCJncmV5IiksIjsiLFNkLmNsYXNzTmFtZSwie2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjoiLCgoe3RoZW1lOmV9KT0+ZS5pc1ByaW1hcnlDb2xvckxpZ2h0P2UuYmxhY2s6ZS5wcmltYXJ5Q29sb3IpLCI7fSIpLFpkPSgwLGYuWlApKGFsLnYxLHt0YXJnZXQ6ImUxZDN5ZndmMiJ9KSgiZm9udC13ZWlnaHQ6NDAwO2ZsZXg6MTsiLFNkLmNsYXNzTmFtZSwie2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjoiLCgwLGYuclMpKCJsaW5rQ29sb3IiKSwiO30iKSxJZD0oe3RpdGxlOmUsb25DbGljazp0LGNoaWxkcmVuOm4sc2VhcmNoOml9KT0+ci5jcmVhdGVFbGVtZW50KFBkLHtpc1NlYXJjaDppLHNpemU6Im1lZGl1bSIscmlnaHRJY29uOiJSaWdodENoZXZyb25Db2xvcmFibGUiLHJpZ2h0SWNvbkNvbG9yOiJsaW5rQ29sb3IiLGhvdmVyQmFja2dyb3VuZDohMCxvbkNsaWNrOnR9LHIuY3JlYXRlRWxlbWVudChaZCxudWxsLGUpLG4mJnIuY3JlYXRlRWxlbWVudChUZCxudWxsLG4pKTt2YXIgamQ9big3Mjc0NSksX2Q9big4MDk5Nyk7Y29uc3QgT2Q9KDAsZi5aUCkoX2QuWnkse3RhcmdldDoiZTEyanFkM2cwIn0pKHtuYW1lOiI1NDJ3ZXgiLHN0eWxlczoid29yZC1icmVhazpicmVhay13b3JkOyJ9KSxBZD0oe3RpdGxlOmUsYXJ0aWNsZUNvdW50OnQsZGVzY3JpcHRpb246bixhdXRob3JzOml9KT0+e2NvbnN0IG89aS5tYXAoamQuckUpLGE9VHQobywzLCEwKSxzPWkubGVuZ3RoPjA7bGV0IGw9IiI7cmV0dXJuIDE9PT1pLmxlbmd0aD9sPSgwLHUuSXUpKCJhcnRpY2xlX3NpbmdsZV9hdXRob3IiLHthdXRob3JfZmlyc3RfbmFtZTphWzBdLmZpcnN0TmFtZX0pOjI9PT1pLmxlbmd0aD9sPSgwLHUuSXUpKCJhcnRpY2xlX2RvdWJsZV9hdXRob3IiLHthdXRob3JfZmlyc3RfbmFtZTE6YVswXS5maXJzdE5hbWUsYXV0aG9yX2ZpcnN0X25hbWUyOmFbMV0uZmlyc3ROYW1lfSk6aS5sZW5ndGg+MiYmKGw9KDAsdS5JdSkoImFydGljbGVfbXVsdGlwbGVfYXV0aG9ycyIse2F1dGhvcl9maXJzdF9uYW1lMTphWzBdLmZpcnN0TmFtZSxudW1iZXJfb2Zfb3RoZXJfYXV0aG9yczooYS5sZW5ndGgtMSkudG9TdHJpbmcoKX0pKSxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChfZC5NLG51bGwsZSksbiYmci5jcmVhdGVFbGVtZW50KE9kLG51bGwsbiksci5jcmVhdGVFbGVtZW50KF9kLmVTLG51bGwsci5jcmVhdGVFbGVtZW50KF9kLlVxLG51bGwsKDAsdS5JdSkoMT09PXQ/InNpbmdsZV9hcnRpY2xlIjoibXVsdGlwbGVfYXJ0aWNsZXMiLHt0b3RhbF9hcnRpY2xlczp0LnRvU3RyaW5nKCl9KS50b0xvd2VyQ2FzZSgpLHIuY3JlYXRlRWxlbWVudCgiYnIiLG51bGwpLHMmJnIuY3JlYXRlRWxlbWVudCgic3BhbiIseyJkYXRhLXRlc3RpZCI6ImF1dGhvcnMtY29udGFpbmVyIn0sbCkpLHMmJnIuY3JlYXRlRWxlbWVudChBZG1pbkF2YXRhclN0YWNrLHthZG1pbnM6byxhdmF0YXJTaXplOjI4LGF2YXRhclBpeGVsc1RvU2hvdzoyNSxtYXhBZG1pbnM6Myx1c2VDdXRvdXQ6ITB9KSkpfTtmdW5jdGlvbiBCZCgpe3JldHVybiBCZD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LEJkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jb25zdCBSZD0oZSx0KT0+bnVsbD09ZT92b2lkIDA6ZS5tYXAoKGU9PnIuY3JlYXRlRWxlbWVudChJZCx7a2V5OmUuaWQsdGl0bGU6ZS50aXRsZSxvbkNsaWNrOigpPT50KGUuaWQpfSkpKSx6ZD0oe25hbWU6ZSxkZXNjcmlwdGlvbjp0LGFydGljbGVDb3VudDpuLHNlY3Rpb25zOmksYXJ0aWNsZXM6byxjaGlsZHJlbjphLGF1dGhvcnM6cyxvbkFydGljbGVDbGljazpsLG9uQ29sbGVjdGlvbkNsaWNrOmN9KT0+e2lmKG8ubGVuZ3RoPjB8fGEubGVuZ3RoPjApe2NvbnN0IGk9e2hlYWRlckNvbnRlbnQ6ci5jcmVhdGVFbGVtZW50KEFkLHt0aXRsZTplLGFydGljbGVDb3VudDpuLGRlc2NyaXB0aW9uOnQsYXV0aG9yczpzfSl9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQod3QuWlAsaSxvLmxlbmd0aD4wJiZyLmNyZWF0ZUVsZW1lbnQod3QuWlAse25vRGl2aWRlcjohMH0sUmQobyxsKSksYS5tYXAoKGU9PnIuY3JlYXRlRWxlbWVudChmZCx7a2V5OmUuaWQsdGl0bGU6ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sYXJ0aWNsZXNDb3VudDplLmFydGljbGVDb3VudCxvbkNsaWNrOigpPT5jKGUuaWQpfSkpKSl9e2NvbnN0IG89e3RpdGxlOmUsZGVzY3JpcHRpb246dCxub3RlOigwLHUuSXUpKDE9PT1uPyJzaW5nbGVfYXJ0aWNsZSI6Im11bHRpcGxlX2FydGljbGVzIix7dG90YWxfYXJ0aWNsZXM6bi50b1N0cmluZygpfSl9O2lmKDE9PT1pLmxlbmd0aCl7Y29uc3QgZT1pWzBdLmFydGljbGVzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQod3QuWlAsQmQoe25vRGl2aWRlcjohMH0sbyksUmQoZSxsKSl9cmV0dXJuIHIuY3JlYXRlRWxlbWVudCh3dC5aUCxvLG51bGw9PWk/dm9pZCAwOmkubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQod3QuWlAse25vRGl2aWRlcjohMCxrZXk6ZS5pZCxzZWN0aW9uVGl0bGU6ZS5uYW1lfHx2b2lkIDB9LFJkKGUuYXJ0aWNsZXMsbCkpKSkpfX0sTmQ9KDAsQS5jcmVhdGVTZWxlY3RvcikoKGU9PmUuYnJvd3NlTW9kZS5uYXZpZ2F0aW9uU3RhY2tDb2xsZWN0aW9uSWRzKSwoZT0+ZS5hcnRpY2xlQ29sbGVjdGlvbnMpLCgoZSx0KT0+e2lmKGUmJmUubGVuZ3RoPjApe2xldCBuLHI9dDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7aWYobj1yLmZpbmQoKG49Pm4uaWQ9PT1lW3RdKSksIW58fCFuLmNoaWxkcmVuKXJldHVybjtyPW4uY2hpbGRyZW59cmV0dXJuIG59cmV0dXJuIG51bGx9KSksTWQ9KCk9Pntjb25zdCBlPSgwLGguVEwpKCksdD0oMCxoLkNHKShOZCksbj0obnVsbD09dD92b2lkIDA6dC5zZWN0aW9ucyl8fFtdO3JldHVybiB0P3IuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHIuY3JlYXRlRWxlbWVudCh6ZCx7aWQ6dC5pZCxuYW1lOnQubmFtZSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLGFydGljbGVDb3VudDp0LmFydGljbGVDb3VudCxzZWN0aW9uczpuLGFydGljbGVzOnQuYXJ0aWNsZXMsY2hpbGRyZW46dC5jaGlsZHJlbixhdXRob3JzOnQuYXV0aG9ycyxvbkFydGljbGVDbGljazp0PT57ZSgoMCxNdC5ObCkodCxudWxsLCEwLCEwKSl9LG9uQ29sbGVjdGlvbkNsaWNrOnQ9PntlKCgwLER0Lkg5KSh0KSl9fSkpOm51bGx9O2Z1bmN0aW9uIERkKGUpe2lmKCFlKXJldHVybiIiO2NvbnN0IHQ9ZS5pbmRleE9mKCI8aGlnaGxpZ2h0PiIpLHtpbm5lcldpZHRoOm59PSgwLHVlLnZwKSgpO2xldCByO3JldHVybiByPW4+NDAwPzMwOm4vNDAsdDxyP2U6ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUuc3Vic3RyaW5nKHQpO3JldHVybiIuLi4iK24uc3Vic3RyaW5nKG4uaW5kZXhPZigiICIpKX0oZSx0LXIpfWZ1bmN0aW9uIExkKGUpe2NvbnN0W3Qsbl09ci51c2VTdGF0ZShEZChlLnRleHQpKTtyZXR1cm4gci51c2VFZmZlY3QoKCgpPT57Y29uc3QgdD0oKT0+e24oRGQoZS50ZXh0KSl9O3JldHVybigwLHVlLmY0KSh0KSwoKT0+KDAsdWUuVlApKHQpfSksW2UudGV4dF0pLHIuY3JlYXRlRWxlbWVudChDZCx7aHRtbDp0fSl9Y29uc3QgR2Q9KDAsZi5aUCkod3QuWlAse3RhcmdldDoiZXY3cXFyYTAifSkoe25hbWU6ImI4a3plbSIsc3R5bGVzOiJwYWRkaW5nLXRvcDoxMnB4OyJ9KSxGZD0oKT0+e2NvbnN0IGU9KDAsaC5UTCkoKSx0PSgwLGguQ0cpKHBlLmlUKSxuPSgwLGguQ0cpKHBlLmE3KTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEdkLHtub0RpdmlkZXI6ITB9LHQubWFwKCgodCxpKT0+ci5jcmVhdGVFbGVtZW50KElkLHtrZXk6dC5pZCxvbkNsaWNrOigpPT4oKHQsbixyKT0+eygwLE90LldNKSgiY2xpY2tlZCIsImhlbHBfY2VudGVyIiwic2VhcmNoX3Jlc3VsdHMiLCIiLHthcnRpY2xlX2lkOnQscmVzdWx0X3Jhbms6bixzZWFyY2hfcXVlcnk6cn0sInNlYXJjaF9icm93c2VfZXZlbnQiKSxlKCgwLE10Lk5sKSh0LHtyZXN1bHRfcmFuazpuLHBocmFzZTpyfSwhMCwhMCkpfSkodC5pZCxpKzEsbiksdGl0bGU6ci5jcmVhdGVFbGVtZW50KENkLHtodG1sOnQudGl0bGV9KSxzZWFyY2g6ITB9LHQuc3VtbWFyeSYmci5jcmVhdGVFbGVtZW50KExkLHt0ZXh0OnQuc3VtbWFyeX0pKSkpKX0scWQ9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF4OXZ0ZjMwIn0pKHtuYW1lOiIxanp1NWwxIixzdHlsZXM6InBhZGRpbmc6MjBweCAyMHB4IDQwcHg7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjsifSksSGQ9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF4OXZ0ZjMxIn0pKCJ0ZXh0LWFsaWduOmNlbnRlcjtwe2xpbmUtaGVpZ2h0OjIxcHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6IiwoMCxmLnJTKSgiZ3JleSIpLCI7JjpmaXJzdC1vZi10eXBle2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjtzcGFue2ZvbnQtd2VpZ2h0OjYwMDt9fX0iKSxXZD0oMCxmLlpQKSgicCIse3RhcmdldDoiZTF4OXZ0ZjMyIn0pKHtuYW1lOiIxa3RoN2o0IixzdHlsZXM6ImRpc3BsYXk6YmxvY2s7bWFyZ2luOjI0cHggMCAxMnB4IDA7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjI0cHg7In0pLFVkPSgpPT57Y29uc3QgZT0oMCxoLkNHKShwZS5hNyk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChxZCxudWxsLHIuY3JlYXRlRWxlbWVudChXZCxudWxsLCgwLHUuSXUpKCJ0cnlfYWdhaW4iKSksci5jcmVhdGVFbGVtZW50KEhkLG51bGwsci5jcmVhdGVFbGVtZW50KCJwIixudWxsLCgwLHUuSXUpKCJub19yZXN1bHRzX2Zvcl9zZWFyY2h0ZXJtIix7c2VhcmNoVGVybToiIn0pLHIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwiJyIsZSwiJyIpKSkpfSxWZD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDMzZXZ0MCJ9KSgibWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206MjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTsiLE9vLmNsYXNzTmFtZSwie21hcmdpbi10b3A6MTZweDtib3gtc2hhZG93OjBweCAwcHggMjVweCByZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyOjFweCBzb2xpZCAiLCgwLGdlLkJ3KSgoMCxmLnJTKSgid2hpdGUiKSwuMSksIiAhaW1wb3J0YW50O30iKSwkZD0oKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQzM2V2dDEifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cHtmb250LXNpemU6MTRweDtjb2xvcjoiLCgwLGYuclMpKCJncmV5IiksIjt9IiksKCk9PnIuY3JlYXRlRWxlbWVudChRdC5aLHtrZXk6ImhlbHAtc3BhY2UtZm9vdGVyIn0sci5jcmVhdGVFbGVtZW50KFZkLG51bGwsci5jcmVhdGVFbGVtZW50KEdvLHtzdHlsZVZhcmlhbnQ6InNlY29uZGFyeSJ9KSkpKSxLZD0iYWxsLWNvbGxlY3Rpb25zIixZZD0ic2luZ2xlLWNvbGxlY3Rpb24iLEpkPSJzZWFyY2gtcmVzdWx0cyI7Y29uc3QgWGQ9KDAsby5jb25uZWN0KSgoZT0+e2NvbnN0IHQ9KDAsei5hQSkoZSkse2Jyb3dzZU1vZGU6e3Nob3dTZWFyY2hSZXN1bHRzOm4sbmF2aWdhdGlvblN0YWNrQ29sbGVjdGlvbklkczpyLGhhc1NlYXJjaFJlc3VsdHM6aSxpc1NlYXJjaEZvY3VzZWQ6b319PWU7bGV0IGE9S2Q7cmV0dXJuIG58fGk/YT1KZDpyLmxlbmd0aD4wJiYoYT1ZZCkse2FsbG93TmV3Q29udmVyc2F0aW9uOnQsY3VycmVudFNlYXJjaEJyb3dzZVZpZXc6YSxpc1NlYXJjaEZvY3VzZWQ6b319KSkoKGZ1bmN0aW9uKGUpe2NvbnN0W3Qsbl09ci51c2VTdGF0ZSghMSksW2ksb109ci51c2VTdGF0ZSghMCksW2Esc109ci51c2VTdGF0ZSghMSksbD0oMCxoLlRMKSgpLHthbGxvd05ld0NvbnZlcnNhdGlvbjpjLGN1cnJlbnRTZWFyY2hCcm93c2VWaWV3OmQsaXNTZWFyY2hGb2N1c2VkOnB9PWUsdT1wZCgpfHxkPT09SmQsZz1kPT09S2QsZj1kPT09WWQseD0oMCx1aS5LMSkoKSx2PSgwLHplLkQpKGEpLHk9IXUmJiF2LGI9KDAsaC5DRykocGUuWDYpLEU9KDAsaC5DRykocGUuQzIpO2Z1bmN0aW9uIGsoKXtjb25zdCBlPXUmJmM7cmV0dXJuIGUmJmJ8fGUmJiFiJiZFP3IuY3JlYXRlRWxlbWVudCgkZCxudWxsKTpyLmNyZWF0ZUVsZW1lbnQoUXQuWix7a2V5OmBzZWFyY2gtYnJvd3NlLWZvb3Rlci0ke1N0cmluZyh1KX1gfSxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLGUmJnIuY3JlYXRlRWxlbWVudChkZCx7b25seVNob3dBZnRlckFydGljbGVWaWV3OiFiLHdpdGhCb3JkZXJUb3A6ITB9KSkpfXJldHVybiByLmNyZWF0ZUVsZW1lbnQoZWQse3NlYXJjaFZpZXc6dX0sci5jcmVhdGVFbGVtZW50KGFvLHtoaWRlQm9yZGVyOiEwfSxyLmNyZWF0ZUVsZW1lbnQoUWMse3dpdGhvdXRQYWRkaW5nOmUud2l0aG91dFBhZGRpbmcsZXh0cmFJT1NQYWRkaW5nOigwLHVpLmduKSgpJiZwLHNwYWNlZDp1fSxyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46ZyYmIXQmJiF1JiYhYSxjbGFzc05hbWVzOiJpbnRlcmNvbS1zZWFyY2gtYnJvd3NlLSIrKGY/InNsaWRlLWxlZnQtb3V0Ijp5PyJzbGlkZS1sZWZ0IjoiZmFkZSIpLGFwcGVhcjohMSx0aW1lb3V0OjE1MCxtb3VudE9uRW50ZXI6ITAsdW5tb3VudE9uRXhpdDohMCxvbkVudGVyOigpPT5vKCExKSxvbkV4aXRlZDooKT0+byghMCl9LHIuY3JlYXRlRWxlbWVudChrZCxudWxsKSksci5jcmVhdGVFbGVtZW50KG0uS3Yse2luOmYmJmkmJiF1JiYhYSxjbGFzc05hbWVzOiJpbnRlcmNvbS1zZWFyY2gtYnJvd3NlLWFydGljbGUtY29sbGVjdGlvbi0iKyh5PyJpbiI6ImZhZGUiKSx0aW1lb3V0OjE1MCxhcHBlYXI6ITEsbW91bnRPbkVudGVyOiEwLHVubW91bnRPbkV4aXQ6ITAsb25FbnRlcjooKT0+bighMCksb25FbnRlcmVkOigpPT5uKCEwKSxvbkV4aXRlZDooKT0+KGwoKDAsRHQuTEopKCkpLHZvaWQgbighMSkpfSxyLmNyZWF0ZUVsZW1lbnQoTWQsbnVsbCkpLHIuY3JlYXRlRWxlbWVudChtLkt2LHtpbjp1JiZpJiYhdCxjbGFzc05hbWVzOiJpbnRlcmNvbS1zZWFyY2gtYnJvd3NlLWZhZGUiLHRpbWVvdXQ6MTUwLG1vdW50T25FbnRlcjohMCx1bm1vdW50T25FeGl0OiEwLG9uRW50ZXI6KCk9PnMoITApLG9uRXhpdGVkOigpPT5zKCExKX0sci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLGI/ci5jcmVhdGVFbGVtZW50KFVkLG51bGwpOnIuY3JlYXRlRWxlbWVudChGZCxudWxsKSksIXgmJmsoKSkpLHgmJmsoKSkpKX0pKTt2YXIgUWQ9big0Nzk0Nik7ZnVuY3Rpb24gZXAoKXtjb25zdCBlPSgwLGguQ0cpKHoubHopLHQ9KDAsaC5DRykoei5EWCksbj0hdCYmZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFFkLkcyLG51bGwsIW4mJnIuY3JlYXRlRWxlbWVudChRZC5paCxudWxsKSx0P3IuY3JlYXRlRWxlbWVudChRZC5NVixudWxsLHIuY3JlYXRlRWxlbWVudChkZCx7aW5BcnRpY2xlOiEwfSkpOnIuY3JlYXRlRWxlbWVudChkZCx7aW5BcnRpY2xlOiEwfSkpfXZhciB0cD1uKDkxMTc0KSxucD0obig1NjkzNykse25hbWU6IjNvMGg1ayIsc3R5bGVzOiJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4OyJ9KTtjb25zdCBycD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWUxY3B3MCJ9KSgicG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtiYWNrZ3JvdW5kOiIsKDAsZi5yUykoInVucmVhZERvdCIpLCI7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtsaW5lLWhlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7IiwoKHtoaWdoVW5yZWFkQ291bnQ6ZX0pPT4oMCxmLml2KSgiZm9udC1zaXplOiIsZT8iMTBweCI6IjEycHgiLCI7IikpLCIgIiwoKHtoYXNVbnJlYWRDb252ZXJzYXRpb25zOmV9KT0+IWUmJm5wKSk7dmFyIGlwPW4oNDM2NzkpO2NsYXNzIExhdW5jaGVyQmFkZ2UgZXh0ZW5kcyByLkNvbXBvbmVudHtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSx0aGlzLnNlbmRCYWRnZVJlY2VpdmVkTWV0cmljPWU9PnsoMCxPdC5XTSkoInJlY2VpdmVkIiwiYmFkZ2UiLCJpbl9hcHAiLCJmcm9tX2xhdW5jaGVyIix7Y29udmVyc2F0aW9uX2lkOmV9KX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHt1bnJlYWRDb252ZXJzYXRpb25JZHM6ZX09dGhpcy5wcm9wcztlLmZvckVhY2goKGU9Pnt0aGlzLnNlbmRCYWRnZVJlY2VpdmVkTWV0cmljKGUpfSkpfWNvbXBvbmVudERpZFVwZGF0ZShlKXtjb25zdCB0PXRoaXMucHJvcHMudW5yZWFkQ29udmVyc2F0aW9uSWRzLG49ZS51bnJlYWRDb252ZXJzYXRpb25JZHM7dC5maWx0ZXIoKGU9Pm4uaW5kZXhPZihlKTwwKSkuZm9yRWFjaCgoZT0+e3RoaXMuc2VuZEJhZGdlUmVjZWl2ZWRNZXRyaWMoZSl9KSl9cmVuZGVyKCl7Y29uc3R7dW5yZWFkQ29udmVyc2F0aW9uSWRzOmUsdW5yZWFkTmV3c0l0ZW1zQ291bnQ6dH09dGhpcy5wcm9wcyxuPWUubGVuZ3RoK3Q7aWYobjwxKXJldHVybiBudWxsO2NvbnN0IGk9bj49OTksbz1pPyI5OSsiOm4rIiAiLGE9ZS5sZW5ndGg+MDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHJwLHtpZDoibGF1bmNoZXItYmFkZ2UtY29udGFpbmVyIixoaWdoVW5yZWFkQ291bnQ6aSxoYXNVbnJlYWRDb252ZXJzYXRpb25zOmF9LGEmJm8sci5jcmVhdGVFbGVtZW50KGlwLkd5LG51bGwsKDAsdS5JdSkoInVucmVhZF9tZXNzYWdlcyIpKSl9fUxhdW5jaGVyQmFkZ2UucHJvcFR5cGVzPXt1bnJlYWRDb252ZXJzYXRpb25JZHM6cCgpLmFycmF5T2YocCgpLnN0cmluZykuaXNSZXF1aXJlZCx1bnJlYWROZXdzSXRlbXNDb3VudDpwKCkubnVtYmVyfSxMYXVuY2hlckJhZGdlLmRlZmF1bHRQcm9wcz17dW5yZWFkTmV3c0l0ZW1zQ291bnQ6MH07Y29uc3Qgb3A9KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImUxczlhMzJ2MCJ9KSgiZGlzcGxheTppbmxpbmUtYmxvY2s7cmlnaHQ6MDt0b3A6MDtiYWNrZ3JvdW5kOiNmYzU3NmI7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtsaW5lLWhlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsMC4yNyk7cG9zaXRpb246YWJzb2x1dGU7IiwoKHtoaWdoVW5yZWFkQ291bnQ6ZX0pPT4oMCxmLml2KSgiZm9udC1zaXplOiIsZT8iMTBweCI6IjEycHgiLCI7IikpKSxhcD0iZWFzZS1vdXQiLHNwPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjA7fTEwMCV7b3BhY2l0eToxO30iKSxscD0oMCxmLkY0KSgiMCV7b3BhY2l0eToxO30xMDAle29wYWNpdHk6MDt9IiksY3A9KCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVnODdkMzkwIn0pKHtuYW1lOiJ2djZ1OXciLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21heC1oZWlnaHQ6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoyNHB4IDhweDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWc4N2QzOTEifSkoe25hbWU6IjZsa3BsZyIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTEycHg7d2lkdGg6NTFweDtoZWlnaHQ6NTFweDttYXJnaW4tYm90dG9tOi01cHg7bWFyZ2luLXJpZ2h0OjJweDsmLCp7Y3Vyc29yOnBvaW50ZXI7fSJ9KSksZHA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWc4N2QzOTIifSkoIndpZHRoOjUxcHg7aGVpZ2h0OjUxcHg7cGFkZGluZzo4cHg7bWFyZ2luOjAgYXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czoiLCgwLGYuclMpKCJtZXNzZW5nZXJCb3JkZXJSYWRpdXNQeCIpLCJweDttYXJnaW4tbGVmdDotMi41cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTsmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgiYmFja2dyb3VuZEhvdmVyIiksIjt9IiwoKHt0aGVtZTplfSk9PigwLGYuaXYpKHRwLmkuY2xhc3NOYW1lLCJ7PiBnID4gZ3tmaWxsOiIsZS5saW5rQ29sb3IsIjt9fSIpKSwiICIsb3AuY2xhc3NOYW1lLCJ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4O2JveC1zaGFkb3c6bm9uZTtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo2MDA7fSIpLHBwPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZzg3ZDM5MyJ9KSh7bmFtZToiOGF0cWhiIixzdHlsZXM6IndpZHRoOjEwMCU7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVnODdkMzk0In0pKCJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6LTEyLjVweDtoZWlnaHQ6NTFweDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjtib3JkZXItcmFkaXVzOjRweDtmbGV4LWdyb3c6MTtwYWRkaW5nOjBweCA4cHg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1sZWZ0Oi0ycHg7YW5pbWF0aW9uLW5hbWU6IixzcCwiO2FuaW1hdGlvbi1kdXJhdGlvbjoxMDBtczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi1kZWxheTowbXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2lucHV0e2hlaWdodDo1MHB4O31zdmd7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXJpZ2h0OjhweDtmaWxsOm5vbmU7bWFyZ2luLXRvcDotMnB4O2ZsZXgtc2hyaW5rOjA7cGF0aHtmaWxsOiM4ZjhmOTE7fWNpcmNsZXtzdHJva2U6IzhmOGY5MTt9fSIpKSx1cD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZzg3ZDM5NSJ9KSgibWluLXdpZHRoOjUxcHg7aGVpZ2h0OjUxcHg7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6OHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7PiBzdmd7d2lkdGg6MTI7aGVpZ2h0OjEyO30+IHN2ZyA+IHBhdGh7ZmlsbDojOGY4ZjkxO30iLCgoe3RoZW1lOmV9KT0+ZS5pc01vYmlsZVNpemUmJigwLGYuaXYpKCI+IHN2ZyA+IHBhdGh7ZmlsbDoiLGUuaXNQcmltYXJ5Q29sb3JMaWdodD9lLmJsYWNrOmUucHJpbWFyeUNvbG9yLCI7fSIpKSwiIGJvcmRlci1yYWRpdXM6IiwoMCxmLnJTKSgibWVzc2VuZ2VyQm9yZGVyUmFkaXVzUHgiKSwicHg7Jjpob3Zlcns+IHN2ZyA+IHBhdGh7ZmlsbDoiLCgwLGYuclMpKCJncmV5IiksIjt9fSIpLG1wPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZzg3ZDM5NiJ9KSh7bmFtZToiMWxxb2J0ZiIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzo4cHg7bWluLXdpZHRoOjM1cHg7bWluLWhlaWdodDozNXB4O21hcmdpbi10b3A6LTEzcHg7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVnODdkMzk3In0pKHtuYW1lOiIxdHd4bHkwIixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlOyYuZmFkZS1lbnRlcntvcGFjaXR5OjA7fSYuZmFkZS1leGl0e29wYWNpdHk6MTt9Ji5mYWRlLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7fSYuZmFkZS1leGl0LWFjdGl2ZXtvcGFjaXR5OjA7fSYuZmFkZS1lbnRlci1hY3RpdmUsJi5mYWRlLWV4aXQtYWN0aXZle3RyYW5zaXRpb246b3BhY2l0eSAxMDBtczt9In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVnODdkMzk4In0pKCJjb2xvcjoiLCgwLGYuclMpKCJncmV5IiksIjtmb250LXNpemU6MTRweDtwYWRkaW5nOjAgMThweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkOWQ5ZDk7aGVpZ2h0OjE4cHg7IikpLGhwPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZzg3ZDM5OSJ9KSh7bmFtZToiMWlscHZoOSIsc3R5bGVzOiJmb250LXNpemU6MTRweDttYXJnaW4tdG9wOjRweDtoZWlnaHQ6MjJweDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWc4N2QzOTEwIn0pKHtuYW1lOiIxbHFvYnRmIixzdHlsZXM6ImRpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjhweDttaW4td2lkdGg6MzVweDttaW4taGVpZ2h0OjM1cHg7bWFyZ2luLXRvcDotMTNweDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWc4N2QzOTExIn0pKHtuYW1lOiIxa3Z6bTg4IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjEzcHg7d2lkdGg6MTAwJTsifSksKDAsZi5aUCkoImlucHV0Iix7dGFyZ2V0OiJlZzg3ZDM5MTIifSkoImNvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjttYXgtd2lkdGg6MjIwcHg7ZmxleC1ncm93OjE7Zm9udC1zaXplOjE0cHg7Jjo6cGxhY2Vob2xkZXJ7Y29sb3I6IiwoMCxmLnJTKSgiaW5wdXRQbGFjZWhvbGRlciIpLCI7Zm9udC1zdHlsZToiLCgwLGYuclMpKCJmb250U2Fuc1NlcmlmIiksIjt9IiksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWc4N2QzOTEzIn0pKCJoZWlnaHQ6NzVweDtvdmVyZmxvdy15OmhpZGRlbjsmLmludGVyY29tLW1lc3Nlbmdlci1oZWFkZXItdmlldy1lbnRlcnsiLHBwLmNsYXNzTmFtZSwiLCIsbXAuY2xhc3NOYW1lLCIsIix1cC5jbGFzc05hbWUsInthbmltYXRpb24tbmFtZToiLHNwLCI7YW5pbWF0aW9uLWR1cmF0aW9uOiIsIjI1MG1zIiwiO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IixhcCwiO2FuaW1hdGlvbi1kZWxheToiLCIxNTBtcyIsIjthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fX0mLmludGVyY29tLW1lc3Nlbmdlci1oZWFkZXItdmlldy1leGl0eyIscHAuY2xhc3NOYW1lLCIsIixtcC5jbGFzc05hbWUsIiwiLHVwLmNsYXNzTmFtZSwie2FuaW1hdGlvbi1uYW1lOiIsbHAsIjthbmltYXRpb24tZHVyYXRpb246IiwiMTUwbXMiLCI7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjoiLGFwLCI7YW5pbWF0aW9uLWRlbGF5OiIsIjBzIiwiO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDt9fSIpLCJlYXNlLW91dCIpLGdwPSgwLGYuRjQpKCIwJXtvcGFjaXR5OjA7fTEwMCV7b3BhY2l0eToxO30iKSxmcD0oMCxmLkY0KSgiMCV7b3BhY2l0eToxO30xMDAle29wYWNpdHk6MDt9IikseHA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXViM241MDAifSkoe25hbWU6IjFybmtqb24iLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTsifSk7dmFyIHZwPXtuYW1lOiJ1MnRpaGwiLHN0eWxlczoibWFyZ2luLXRvcDotMTJweDsifTtjb25zdCB5cD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJldWIzbjUwMSJ9KSgiZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxO2hlaWdodDo1MXB4OyIsKCh7dGhlbWU6ZX0pPT4hZS5pc01vYmlsZVNpemUmJnZwKSwiIGFsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjVweCAxMnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW47Iik7dmFyIGJwPXtuYW1lOiJ3aGg1ZTUiLHN0eWxlczoib3BhY2l0eToxOyJ9O2NvbnN0IEVwPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV1YjNuNTAyIn0pKCJjb2xvcjoiLCgwLGYuclMpKCJib2R5VGV4dCIpLCI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbi1kZWxheToxNTBtcztvdmVyZmxvdzpoaWRkZW47b3BhY2l0eTowOyIsKCh7c2hvdzplfSk9PmUmJmJwKSk7dmFyIGtwPXtuYW1lOiJ3aGg1ZTUiLHN0eWxlczoib3BhY2l0eToxOyJ9LENwPXtuYW1lOiIxZHAzbjVyIixzdHlsZXM6InBvc2l0aW9uOnJlbGF0aXZlO3RvcDotMTJweDsifTtjb25zdCB3cD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJldWIzbjUwMyJ9KSgiZGlzcGxheTpmbGV4O2ZsZXg6MTt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcztvcGFjaXR5OjA7IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZDcCksIiAiLCgoe3Nob3c6ZX0pPT5lJiZrcCkpLFNwPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV1YjNuNTA0In0pKCJwYWRkaW5nOjI0cHggOHB4IDVweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3BvaW50ZXItZXZlbnRzOm5vbmU7IiwoKHtoZWFkZXJIZWlnaHQ6ZX0pPT4oMCxmLml2KSgibWFyZ2luOi0iLGUrNiwicHggNDhweCAwOyIpKSwiICIsa2UuY2xhc3NOYW1lLCJ7bWFyZ2luLXRvcDotMTJweDt9Ji5pbnRlcmNvbS1tZXNzZW5nZXItaGVhZGVyLXZpZXctZW50ZXJ7IixFcC5jbGFzc05hbWUsIiwiLHVwLmNsYXNzTmFtZSwiLCIsa2UuY2xhc3NOYW1lLCJ7YW5pbWF0aW9uLW5hbWU6IixncCwiO2FuaW1hdGlvbi1kdXJhdGlvbjoiLCIyNTBtcyIsIjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiIsaHAsIjthbmltYXRpb24tZGVsYXk6IiwiMzUwbXMiLCI7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO319Ji5pbnRlcmNvbS1tZXNzZW5nZXItaGVhZGVyLXZpZXctZXhpdHsiLEVwLmNsYXNzTmFtZSwiLCIsdXAuY2xhc3NOYW1lLCIsIixrZS5jbGFzc05hbWUsInthbmltYXRpb24tbmFtZToiLGZwLCI7YW5pbWF0aW9uLWR1cmF0aW9uOiIsIjE1MG1zIiwiO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IixocCwiO2FuaW1hdGlvbi1kZWxheToiLCIwcyIsIjthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7fX0iKTtjb25zdCBQcD0oMCxvLmNvbm5lY3QpKChlPT57dmFyIHQsbjtyZXR1cm57YXJ0aWNsZVRpdGxlOm51bGw9PT0odD0oMCxCLk5LKShlKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQudGl0bGUsc2hvdWxkQXJ0aWNsZUZhZGVJbjooMCxCLlk2KShlKSxpc0V4cGFuZGVkOkQoZSksaGVhZGVySGVpZ2h0Om51bGw9PT0obj1MKGUpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5oZWlnaHR9fSksKGU9Pih7b25CYWNrQ2xpY2s6KCk9PntlKCgwLE10LlhuKSgpKX0sb25DbG9zZUNsaWNrOigpPT57ZSgoMCxjZS5lQSkoITApKX19KSkpKChmdW5jdGlvbihlKXtjb25zdHthcnRpY2xlVGl0bGU6dCxpc0V4cGFuZGVkOm4sc2hvdWxkQXJ0aWNsZUZhZGVJbjppLGFydGljbGVJc1Njcm9sbGVkOm8sc2hvd1RpdGxlOmEsdHJhbnNpdGlvbmluZ0JhY2s6cyxoZWFkZXJIZWlnaHQ6bH09ZSxjPXIudXNlUmVmKG51bGwpLGQ9biYmIW87cmV0dXJuIHIuY3JlYXRlRWxlbWVudChTcCx7cmVmOmMsZXhwYW5kZWQ6ZCxoZWFkZXJIZWlnaHQ6bH0sci5jcmVhdGVFbGVtZW50KHhwLG51bGwsci5jcmVhdGVFbGVtZW50KG0uS3Yse2luOiFzLGNsYXNzTmFtZXM6ImludGVyY29tLXNlYXJjaC1icm93c2UtZmFkZSIsdGltZW91dDoxMDAsbW91bnRPbkVudGVyOiEwLHVubW91bnRPbkV4aXQ6ITB9LHIuY3JlYXRlRWxlbWVudCh3cCx7c2hvdzppfSxyLmNyZWF0ZUVsZW1lbnQoeXAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoRXAse3Nob3c6YSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCkpKSkpKX0pKSxUcD0oMCxmLkY0KSgiMCV7b3BhY2l0eTowO30xMDAle29wYWNpdHk6MTt9IiksWnA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTAifSkoImFuaW1hdGlvbi1uYW1lOiIsVHAsIjthbmltYXRpb24tZHVyYXRpb246IiwiNTBtcyIsIjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiIsImVhc2UtaW4tb3V0IiwiO2FuaW1hdGlvbi1kZWxheToiLCIwcyIsIjthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7IiksSXA9KDAsZi5aUCkoWnAse3RhcmdldDoiZTk0djhxdTEifSkoKSxqcD0oMCxmLml2KSgibWFyZ2luLWxlZnQ6MTAlO2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXItcmFkaXVzOjEwMHB4OyIsSXAuY2xhc3NOYW1lLCIgJnttYXJnaW4tbGVmdDowO30iKSxfcD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOTR2OHF1MiJ9KSgid2lkdGg6NDAlO21pbi1oZWlnaHQ6MTZweDsiLGpwKSxPcD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOTR2OHF1MyJ9KSgid2lkdGg6NjAlO21pbi1oZWlnaHQ6MTZweDttYXJnaW4tdG9wOjE2cHg7IixqcCksQXA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTQifSkoKSxCcD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOTR2OHF1NSJ9KSh7bmFtZToid2lmYXBtIixzdHlsZXM6Im1hcmdpbi10b3A6NjhweDsifSksUnA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTYifSkoIndpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmFmYWZhO21hcmdpbi1sZWZ0OjEwJTttYXJnaW4tdG9wOjE2cHg7ZmxvYXQ6bGVmdDsiLElwLmNsYXNzTmFtZSwiICZ7bWFyZ2luLWxlZnQ6MDt9IiksenA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTcifSkoe25hbWU6IjFvZHdrc2MiLHN0eWxlczoiZmxvYXQ6bGVmdDsifSksTnA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTgifSkoIm1pbi13aWR0aDoxMjBweDttaW4taGVpZ2h0OjhweDttYXJnaW4tdG9wOjE5cHg7IixqcCksTXA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTkifSkoInBvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDo4MHB4O21pbi1oZWlnaHQ6OHB4O21hcmdpbi10b3A6MTJweDsiLGpwKSxEcD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlOTR2OHF1MTAifSkoIndpZHRoOjgwJTttaW4taGVpZ2h0OjhweDttYXJnaW4tdG9wOjE2cHg7IixqcCksTHA9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTk0djhxdTExIn0pKCJ3aWR0aDo3NSU7bWluLWhlaWdodDo4cHg7bWFyZ2luLXRvcDoxNnB4OyIsanApLEdwPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU5NHY4cXUxMiJ9KSgid2lkdGg6MTYwcHg7bWluLWhlaWdodDo4cHg7bWFyZ2luLXRvcDoxNnB4OyIsanApO2Z1bmN0aW9uIEZwKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChacCxudWxsLHIuY3JlYXRlRWxlbWVudChfcCxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoT3AsbnVsbCksci5jcmVhdGVFbGVtZW50KEFwLG51bGwsci5jcmVhdGVFbGVtZW50KFJwLG51bGwpLHIuY3JlYXRlRWxlbWVudCh6cCxudWxsLHIuY3JlYXRlRWxlbWVudChOcCxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoTXAsbnVsbCkpKSxyLmNyZWF0ZUVsZW1lbnQoQnAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoRHAsbnVsbCksci5jcmVhdGVFbGVtZW50KExwLG51bGwpLHIuY3JlYXRlRWxlbWVudChHcCxudWxsKSkpfXZhciBxcD1uKDU0MTAzKTtmdW5jdGlvbiBIcChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gV3AoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/SHAoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtVcChlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6SHAoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gVXAoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWNvbnN0IFZwPW4oOTcyMzQpO2Z1bmN0aW9uICRwKHt0aXRsZTplLHVybDp0LG9uTG9hZDpuLG9uU2V0U2Nyb2xsUG9zaXRpb246aSxoZWxwQ2VudGVyU2Vzc2lvbjpvLGFwcENvbG9yOmEsbmF2aWdhdGlvblNvdXJjZTpzLGhhc2g6bH0pe3ZhciBjO2NvbnN0IGQ9KDAsaC5UTCkoKSxwPXIudXNlUmVmKG51bGwpLFt1LG1dPXIudXNlU3RhdGUoMCk7bGV0IGc9e2lmcmFtZToidHJ1ZSIsdXNlcjpvLGNvbG9yX292ZXJyaWRlOmEsY3VycmVudF91cmw6bnVsbD09PShjPSgwLHVlLmJNKSgpKXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5ocmVmLnRvTG93ZXJDYXNlKCl9O3MmJihnPVdwKFdwKHt9LGcpLHt9LHt1dG1fc291cmNlOiJpbnRlcmNvbS1tZXNzZW5nZXIiLHV0bV9jb250ZW50OnN9KSk7Y29uc3QgZj1sP2Ake3R9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyhnKS50b1N0cmluZygpfSMke2x9YDpgJHt0fT8ke25ldyBVUkxTZWFyY2hQYXJhbXMoZykudG9TdHJpbmcoKX1gO3JldHVybiByLnVzZUVmZmVjdCgoKCk9Pnt2YXIgZTtjb25zdCB0PSh7ZGF0YTp7aW50ZXJjb21TaGVldDplfX0pPT57aWYoIWUpcmV0dXJuO2NvbnN0e3R5cGU6dCxwYXlsb2FkOnJ9PWU7c3dpdGNoKHQpe2Nhc2UiYWxleGFuZHJpYS1sb2FkZWQiOmNhc2Uic2hlZXQtbG9hZGVkIjpuJiZuKCk7YnJlYWs7Y2FzZSJoZWlnaHQtY2hhbmdlIjptKHIuaGVpZ2h0KTticmVhaztjYXNlInNjcm9sbC10byI6aShyLm9mZnNldFRvcCk7YnJlYWs7Y2FzZSJsaW5rLWNsaWNrZWQiOigwLE90LldNKSgiY2xpY2tlZCIsImFsZXhhbmRyaWEtYXJ0aWNsZS1saW5rIiwic2VhcmNoLWJyb3dzZSIsIm1lc3NlbmdlciIse3VybDpyLnVybH0pLGQoKDAsTXQub1cpKHIudXJsKSl9fSxyPW51bGw9PT0oZT1wLmN1cnJlbnQpfHx2b2lkIDA9PT1lfHxudWxsPT09KGU9ZS5vd25lckRvY3VtZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5kZWZhdWx0VmlldztyZXR1cm4gciYmci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0LCExKSwoKT0+e3ImJnIucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCl9fSksW3AsbixkLGldKSxyLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIseyJkYXRhLXRlc3RpZCI6ImhlbHAtY2VudGVyLWFydGljbGUiLHRpdGxlOmUsc2FuZGJveDoiYWxsb3ctc2NyaXB0cyBhbGxvdy1mb3JtcyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1wb3B1cHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IGFsbG93LWRvd25sb2FkcyIsc3JjOmAke1ZwLnNoZWV0c19wcm94eV9wYXRofT9vdmVyZmxvd0hpZGRlbmAsb25Mb2FkOmZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe3ZhciBuO2NvbnN0IHI9KDAscXAudG4pKHFwLlpZLHQscXAuWlkpO251bGw9PT0obj1lLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT1ufHxuLnBvc3RNZXNzYWdlKHIsIioiKX0oZS50YXJnZXQsZil9LGFsbG93RnVsbFNjcmVlbjohMCxhbGxvdzoibWljcm9waG9uZSAqOyBjYW1lcmEgKjsgYXV0b3BsYXkgKiIscmVmOnAsc3R5bGU6e3dpZHRoOiIxMDAlIixtaW5IZWlnaHQ6IjEwMCUiLGhlaWdodDp1fSxyb2xlOiJkaWFsb2cifSl9ZnVuY3Rpb24gS3Aoe3RpdGxlOmUsc2hvdzp0LG9uSGVpZ2h0Q2hhbmdlOm59KXtjb25zdCBpPSgwLGguQ0cpKEQpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSy5aLHtvbkhlaWdodENoYW5nZTpufSxyLmNyZWF0ZUVsZW1lbnQoWHAse3Nob3c6dCxpc0V4cGFuZGVkOml9LGUpKX12YXIgWXA9e25hbWU6InV2cWh1ZyIsc3R5bGVzOiJwYWRkaW5nOjAgNDBweCA0cHggNDBweDtmb250LXNpemU6MjhweDtsaW5lLWhlaWdodDoxMzAlOyJ9LEpwPXtuYW1lOiJ3aGg1ZTUiLHN0eWxlczoib3BhY2l0eToxOyJ9O2NvbnN0IFhwPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVsdGNxOHowIn0pKCJvcGFjaXR5OjA7cGFkZGluZzowIDI0cHggNHB4IDIycHg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjEzMCU7dHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsiLCgoe3Nob3c6ZX0pPT5lJiZKcCksIiAiLCgoe2lzRXhwYW5kZWQ6ZX0pPT5lJiZZcCkpO3ZhciBRcD1uKDczMDcxKTtjb25zdCBldT1uLnArImltYWdlcy9nbG9iZS1pY29uLmI0ZTYzMDE1LnN2ZyI7Y29uc3QgdHU9bi5wKyJpbWFnZXMvZG93bi1hcnJvdy45ZmE1OTgzOC5zdmciLG51PShlPSIiKT0+ZS5yZXBsYWNlKCIjIiwiJTIzIikscnU9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTF0cnJ3YmowIn0pKHtuYW1lOiJsbHFyYXoiLHN0eWxlczoiYmFja2dyb3VuZC1jb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6OXB4IDAgMjBweCAwO21hcmdpbi10b3A6YXV0bztkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpmbGV4LWVuZDsifSksaXU9KDAsZi5aUCkoInNlbGVjdCIse3RhcmdldDoiZTF0cnJ3YmoxIn0pKCJmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6IiwoMCxmLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7bGluZS1oZWlnaHQ6MjBweDtoZWlnaHQ6MzZweDtjb2xvcjojNzM3MzczO3BhZGRpbmc6MCAzMnB4IDAgMjJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjAgOHB4O2FwcGVhcmFuY2U6bm9uZTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTp1cmwoIixldSwiKSx1cmwoIix0dSwiKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQsbm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246MCAxMHB4LHJpZ2h0IDEycHggY2VudGVyO2JhY2tncm91bmQtc2l6ZToxNHB4LDE2cHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgMC4yNXMsb3V0bGluZSAwLjI1cztjdXJzb3I6cG9pbnRlcjsmOmhvdmVye2NvbG9yOiIsKGU9PmUudGhlbWUucHJpbWFyeUNvbG9yKSwiO2JhY2tncm91bmQtaW1hZ2U6KCB1cmwoIiwoZT0+KChlPSIiKT0+YCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSd3aGl0ZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTggMTVDMTEuODY2IDE1IDE1IDExLjg2NiAxNSA4QzE1IDQuMTM0MDEgMTEuODY2IDEgOCAxQzQuMTM0MDEgMSAxIDQuMTM0MDEgMSA4QzEgMTEuODY2IDQuMTM0MDEgMTUgOCAxNVonIHN0cm9rZT0nJHtudShlKX0nIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcvJTNFJTNDcGF0aCBkPSdNNy45OTk4MiAxNUM5LjM5OTMxIDE1IDEwLjUzMzggMTEuODY2IDEwLjUzMzggOEMxMC41MzM4IDQuMTM0MDEgOS4zOTkzMSAxIDcuOTk5ODIgMUM2LjYwMDMzIDEgNS40NjU4MiA0LjEzNDAxIDUuNDY1ODIgOEM1LjQ2NTgyIDExLjg2NiA2LjYwMDMzIDE1IDcuOTk5ODIgMTVaJyBzdHJva2U9JyR7bnUoZSl9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQ3BhdGggZD0nTTEuNDQ4MjQgNS43NTk3N0gxNC41MjQyJyBzdHJva2U9JyR7bnUoZSl9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQ3BhdGggZD0nTTEuNDQ4MjQgMTAuMjQwMkgxNC41MjQyJyBzdHJva2U9JyR7bnUoZSl9JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnLyUzRSUzQy9zdmclM0UiYCkoZS50aGVtZS5wcmltYXJ5Q29sb3IpKSwiKSApLHVybCgiLChlPT4oKGU9IiIpPT5gImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCUzQ3N2ZyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJHtudShlKX0nIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNNC4yMzQzMSA1Ljc0NDA4QzMuOTIxOSA2LjA2OTUxIDMuOTIxOSA2LjU5NzE1IDQuMjM0MzEgNi45MjI1OUw3LjQzNDMxIDEwLjI1NTlDNy43NDY3MyAxMC41ODE0IDguMjUzMjcgMTAuNTgxNCA4LjU2NTY5IDEwLjI1NTlMMTEuNzY1NyA2LjkyMjU5QzEyLjA3ODEgNi41OTcxNSAxMi4wNzgxIDYuMDY5NTEgMTEuNzY1NyA1Ljc0NDA4QzExLjQ1MzMgNS40MTg2NCAxMC45NDY3IDUuNDE4NjQgMTAuNjM0MyA1Ljc0NDA4TDggOC40ODgxNkw1LjM2NTY5IDUuNzQ0MDhDNS4wNTMyNyA1LjQxODY0IDQuNTQ2NzMgNS40MTg2NCA0LjIzNDMxIDUuNzQ0MDhaJyBmaWxsPScke251KGUpfScvJTNFJTNDL3N2ZyUzRSJcbmApKGUudGhlbWUucHJpbWFyeUNvbG9yKSksIik7fSY6Zm9jdXN7b3V0bGluZTpub25lO30iKSxvdT0oe2xvY2FsZXM6ZT1bXSxzZWxlY3RlZExvY2FsZTp0LG9uQ2hhbmdlOm49KCgpPT57fSl9KT0+ci5jcmVhdGVFbGVtZW50KHJ1LG51bGwsci5jcmVhdGVFbGVtZW50KGl1LHt2YWx1ZTpudWxsPT10P3ZvaWQgMDp0LmxvY2FsZSxvbkNoYW5nZTp0PT57Y29uc3Qgcj10LmN1cnJlbnRUYXJnZXQudmFsdWUsaT1lLmZpbmQoKGU9PmUubG9jYWxlPT09cikpO24oaSl9fSxlLm1hcCgoKHtsb2NhbGU6ZSxuYW1lOnR9KT0+ci5jcmVhdGVFbGVtZW50KCJvcHRpb24iLHtrZXk6ZSx2YWx1ZTplfSx0KSkpKSk7dmFyIGF1PW4oNjA0NTUpO2NvbnN0IHN1PSgwLGYuWlApKCJzcGFuIix7dGFyZ2V0OiJlMXAzOWowMzAifSkoe25hbWU6IjFwbmNvc2MiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7dG9wOjNweDttYXJnaW4tcmlnaHQ6NXB4O29wYWNpdHk6MC45O3N2Z3twYXRoLmJveHtzdHJva2U6IzczNzM3Mzt9fSJ9KSxsdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMXAzOWowMzEifSkoInBhZGRpbmctdG9wOjhweDthe2NvbG9yOiM3MzczNzM7bWFyZ2luOjAgOHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7Jjpob3Zlcntjb2xvcjoiLChlPT5lLnRoZW1lLnByaW1hcnlDb2xvciksIjtzdmd7cGF0aC5ib3h7c3Ryb2tlOiIsKGU9PmUudGhlbWUucHJpbWFyeUNvbG9yKSwiO31wYXRoLmFycm93e2ZpbGw6IiwoZT0+ZS50aGVtZS5wcmltYXJ5Q29sb3IpLCI7fX19fSIpLGN1PSh7cHVibGljVXJsOmV9KT0+ci5jcmVhdGVFbGVtZW50KGx1LG51bGwsci5jcmVhdGVFbGVtZW50KCJhIix7aHJlZjplLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIifSxyLmNyZWF0ZUVsZW1lbnQoc3UsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoYXUuWixudWxsKSksKDAsdS5JdSkoIm9wZW5fYXJ0aWNsZV9pbl9oZWxwX2NlbnRlciIpKSk7ZnVuY3Rpb24gZHUoKXtyZXR1cm4gZHU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxkdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y29uc3R7YXNzaWduOnB1fT1PYmplY3QsdXU9KDAsby5jb25uZWN0KSgoKGUsdCk9Pntjb25zdHtoaWRlUmVhY3Rpb25zOm59PXQscj0oMCxCLk5LKShlKTtyZXR1cm57YXJ0aWNsZTpyLGFydGljbGVGcm9tSG9tZVNjcmVlblN1Z2dlc3Rpb25zOigwLEIuSm4pKGUpLHNob3VsZEFydGljbGVGYWRlSW46KDAsQi5ZNikoZSksYWxsb3dOZXdDb252ZXJzYXRpb246KDAsei5hQSkoZSksc2hvdWxkQXJ0aWNsZVNrZWxldG9uRmFkZUluOigwLEIuQzApKGUpLGFwcENvbG9yOigwLHoucWIpKGUpLHRyYW5zaXRpb25pbmdCYWNrOmUuYXJ0aWNsZS50cmFuc2l0aW9uaW5nQmFjayxoYXNoOmUuYXJ0aWNsZS5oYXNoLHNlbGVjdGVkQXJ0aWNsZUxvY2FsZTplLmFydGljbGUuYXJ0aWNsZUxvY2FsZSxoaWRlUmVhY3Rpb25zOm4saGVscENlbnRlclNlc3Npb246VWMoZSl8fChudWxsPT1yP3ZvaWQgMDpyLmFsZXhhbmRyaWFEYXRhKX19KSwoZT0+KHtvblJlYWN0aW9uU2VsZWN0Oih0LG4scixpKT0+e2UoKDAsTXQuQ2YpKEd0LlpQLHQsaSxuLHIpKX0sb25Mb2FkOigpPT57ZSgoMCxNdC5YVCkoKSl9LG9uQXJ0aWNsZUxvY2FsZUNoYW5nZTp0PT5lKCgwLE10LnBQKSh0KSl9KSksKChlLHQsbik9Pntjb25zdCByPXB1KHt9LGUsdCxuKSx7YXJ0aWNsZTppLG9uUmVhY3Rpb25TZWxlY3Q6b309cixhPWkmJmkuaWQscz1pJiZpLmNvbnRlbnRJZCxsPWkmJmkuaGVscENlbnRlcklkO3JldHVybiBwdShyLHtvblJlYWN0aW9uU2VsZWN0Om8uYmluZChudWxsLGEscyxsKX0pfSkpKChmdW5jdGlvbihlKXt2YXIgdDtjb25zdHthcnRpY2xlOm4sYXJ0aWNsZUZyb21Ib21lU2NyZWVuU3VnZ2VzdGlvbnM6aSxzaG91bGRBcnRpY2xlRmFkZUluOm8sb25Mb2FkOmEsYWxsb3dOZXdDb252ZXJzYXRpb246cyxzaG91bGRBcnRpY2xlU2tlbGV0b25GYWRlSW46bCxhcHBDb2xvcjpjLHRyYW5zaXRpb25pbmdCYWNrOmQsaGFzaDpwLG9uQXJ0aWNsZUxvY2FsZUNoYW5nZTpnLHNlbGVjdGVkQXJ0aWNsZUxvY2FsZTpmLGhpZGVSZWFjdGlvbnM6eCxoZWxwQ2VudGVyU2Vzc2lvbjp2fT1lLFt5LGJdPXIudXNlU3RhdGUoITEpLFtFLGtdPXIudXNlU3RhdGUoITEpLFtDLHddPXIudXNlU3RhdGUoMCksW1MsUF09ci51c2VTdGF0ZSghMSksW1QsWl09ci51c2VTdGF0ZShudWxsKSxbSSxqXT1yLnVzZVN0YXRlKDApLF89ZnVuY3Rpb24oZSl7Y29uc3R7cGF0aG5hbWU6dH09KDAsSC51c2VMb2NhdGlvbikoKSxuPSIvaGVscCI9PT10LHI9KDAsaC5DRykodmEuZzIpLGk9KDAsaC5DRykodmEuQU4pLG89KDAsaC5DRykodmEuU0YpO3JldHVybiBlPyJzdWdnZXN0ZWRfYXJ0aWNsZSI6bj8ic2VhcmNoX2Jyb3dzZSI6cj8iaG9tZV9zY3JlZW4iOmk/ImNvbnZlcnNhdGlvbiI6bz8iY2hlY2tsaXN0Ijoic2VhcmNoX2Jyb3dzZSJ9KGkpLE89KDAsRmEuWikoInZpZXdJbkhlbHBDZW50ZXJCdXR0b24iKSxBPSJzZWFyY2hfYnJvd3NlIj09PV98fE8sQj0oMCxoLlRMKSgpLFI9ci51c2VDYWxsYmFjaygoKCk9PntQKCEwKSxhKCl9KSxbUCxhXSksej1yLnVzZUNhbGxiYWNrKCgoKT0+e298fFIoKX0pLFtvLFJdKTsoMCxRcC5aKSh6LDRlMyk7Y29uc3QgTj1lPT57Y29uc3QgdD1lPjAsbj1lPkM7RSE9PXQmJmsodCkseSE9PW4mJmIobil9LE09ci51c2VSZWYobnVsbCksRD0oMCx6ZS5EKShudWxsPT1uP3ZvaWQgMDpuLmlkKTtpZihyLnVzZUVmZmVjdCgoKCk9PntEPT09KG51bGw9PW4/dm9pZCAwOm4uaWQpJiYobnVsbD09Zj92b2lkIDA6Zi51cmwpPT09KG51bGw9PW4/dm9pZCAwOm4udXJsKXx8KGsoITEpLGIoITEpLGooMCkpfSksW24sRCxmXSksci51c2VFZmZlY3QoKCgpPT57dmFyIGUsdDtudWxsPT1UfHxULnNjcm9sbCh7dG9wOkl9KSxudWxsPT09KGU9TS5jdXJyZW50KXx8dm9pZCAwPT09ZXx8bnVsbD09PShlPWUuc2Nyb2xsYWJsZSl8fHZvaWQgMD09PWV8fG51bGw9PT0odD1lLnNjcm9sbCl8fHZvaWQgMD09PXR8fHQuY2FsbChlLHt0b3A6SX0pfSksW1QsSSxNXSksIW4pcmV0dXJuIG51bGw7Y29uc3R7dXJsOkwscmVhY3Rpb25zUmVwbHk6R309bixxPSEhRyYmISgwLEYubSkoKSxXPXMmJjI9PT0obnVsbD09Rz92b2lkIDA6Ry5yZWFjdGlvbkluZGV4KSxVPWwmJiFvO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoUWQuaTcsbnVsbCxyLmNyZWF0ZUVsZW1lbnQobS5XMyxudWxsLHIuY3JlYXRlRWxlbWVudChtLkt2LHtrZXk6TCxjbGFzc05hbWVzOiIiLHRpbWVvdXQ6MjUwfSxyLmNyZWF0ZUVsZW1lbnQoUWQuRUsse2tleTpMfSxyLmNyZWF0ZUVsZW1lbnQoUHAse2FydGljbGVJc1Njcm9sbGVkOnksc2hvd1RpdGxlOnksdHJhbnNpdGlvbmluZ0JhY2s6ZH0pLFUmJnIuY3JlYXRlRWxlbWVudChGcCxudWxsKSxyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46IWQsY2xhc3NOYW1lczoiaW50ZXJjb20tc2VhcmNoLWJyb3dzZS1mYWRlIix0aW1lb3V0OjEwMCxtb3VudE9uRW50ZXI6ITAsdW5tb3VudE9uRXhpdDohMCxvbkV4aXRlZDooKT0+e0IoKDAsTXQuSGIpKEd0LlpQKSl9fSxyLmNyZWF0ZUVsZW1lbnQoUWQucWIse3Nob3c6b30sRSYmci5jcmVhdGVFbGVtZW50KFFkLmljLG51bGwpLHIuY3JlYXRlRWxlbWVudChVaS5aLHtpc0luc2lkZU1vZGFsOiExLG9uU2Nyb2xsOmU9Pk4oZS50YXJnZXQuc2Nyb2xsVG9wKSxyZWY6TSxvblNjcm9sbGFibGU6ZT0+e1ooZSl9fSxyLmNyZWF0ZUVsZW1lbnQoS3Ase3Nob3c6IXksdGl0bGU6bi50aXRsZSxvbkhlaWdodENoYW5nZTp3fSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7ZmxleEdyb3c6MSxtYXJnaW5Cb3R0b206IjE1cHgifX0sci5jcmVhdGVFbGVtZW50KCRwLHtrZXk6TCxoZWxwQ2VudGVyU2Vzc2lvbjp2LHRpdGxlOm4udGl0bGUsdXJsOkwsaGFzaDpwLG9uTG9hZDpSLGFwcENvbG9yOmMsc3VnZ2VzdGVkQXJ0aWNsZTppLG9uU2V0U2Nyb2xsUG9zaXRpb246ZT0+e3ZhciB0O04oZSksbnVsbD09VHx8VC5zY3JvbGwoe3RvcDplfSksbnVsbD09PSh0PU0uY3VycmVudCl8fHZvaWQgMD09PXR8fHQuc2Nyb2xsYWJsZS5zY3JvbGwoe3RvcDplfSksaihlKX0sbmF2aWdhdGlvblNvdXJjZTpffSkpLHEmJnIuY3JlYXRlRWxlbWVudChRZC50cyxudWxsLFMmJiF4PyhlPT57Y29uc3R7YXJ0aWNsZTp7cmVhY3Rpb25zUmVwbHk6dH0sb25SZWFjdGlvblNlbGVjdDpufT1lO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoUWQudnEsbnVsbCxyLmNyZWF0ZUVsZW1lbnQob2MuWixkdSh7fSx0LHtwcm9tcHQ6KDAsdS5JdSkoImFydGljbGVfcXVlc3Rpb24iKSxvblJlYWN0aW9uU2VsZWN0Om59KSkpfSkoZSk6bnVsbCwheCYmci5jcmVhdGVFbGVtZW50KG0uS3Yse2NsYXNzTmFtZXM6InNlYXJjaC1icm93c2UtcmVhY3Rpb24tZm9sbG93dXAiLGluOlcsYXBwZWFyOiEwLG1vdW50T25FbnRlcjohMCxvbkVudGVyZWQ6KCk9PntNJiZzZXRUaW1lb3V0KCgoKT0+e3ZhciBlOygwLCRvLmVCKShudWxsPT1NfHxudWxsPT09KGU9TS5jdXJyZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zY3JvbGxhYmxlKX0pLDE1MCl9LHRpbWVvdXQ6MTUwfSxyLmNyZWF0ZUVsZW1lbnQoZXAsbnVsbCkpLHIuY3JlYXRlRWxlbWVudChRZC5hOSxudWxsLChudWxsPT09KHQ9bi5hdmFpbGFibGVfbG9jYWxlcyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubGVuZ3RoKT4xP3IuY3JlYXRlRWxlbWVudChvdSx7c2VsZWN0ZWRMb2NhbGU6Znx8bi5hdmFpbGFibGVfbG9jYWxlcy5maW5kKChlPT5lLnVybD09PUwpKSxsb2NhbGVzOm4uYXZhaWxhYmxlX2xvY2FsZXMsb25DaGFuZ2U6Z30pOm51bGwsbi5wdWJsaWNVcmwmJkEmJnIuY3JlYXRlRWxlbWVudChjdSx7cHVibGljVXJsOm4ucHVibGljVXJsfSkpKSkpKSkpKSl9KSk7dmFyIG11PW4oNzkwOTYpLGh1PXtuYW1lOiIxMGtsdzNtIixzdHlsZXM6ImhlaWdodDoxMDAlOyJ9LGd1PXtuYW1lOiJkYTVveGsiLHN0eWxlczoib3ZlcmZsb3c6dmlzaWJsZTsifTtjb25zdCBmdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcTE5M2w3MCJ9KSgibWluLXdpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzphdXRvOyIsKCh7c2hvd0FydGljbGU6ZX0pPT5lJiZndSksIiAiLCgoe2Z1bGxIZWlnaHQ6ZX0pPT5lJiZodSksIiAuaW50ZXJjb20tc2VhcmNoLWJyb3dzZS1mYWRleyYtZW50ZXJ7b3BhY2l0eTowO30mLWVudGVyLWFjdGl2ZXtvcGFjaXR5OjE7dHJhbnNpdGlvbjpvcGFjaXR5IDEwMG1zIGVhc2UtaW4tb3V0O30mLWV4aXR7b3BhY2l0eToxO30mLWV4aXQtYWN0aXZle29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXMgZWFzZS1pbi1vdXQ7fX0uaW50ZXJjb20tc2VhcmNoLWJyb3dzZS1hcnRpY2xlLWNvbGxlY3Rpb24tZmFkZXsmLWVudGVye29wYWNpdHk6MDt9Ji1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDt9Ji1leGl0e29wYWNpdHk6MTt9Ji1leGl0LWFjdGl2ZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjoxMDBtcyBlYXNlLWluLW91dDt9fS5pbnRlcmNvbS1zZWFyY2gtYnJvd3NlLXNsaWRlLWxlZnQtb3V0eyYtZXhpdHt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTtvcGFjaXR5OjE7fSYtZXhpdC1hY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEycHgpO29wYWNpdHk6MDt0cmFuc2l0aW9uOjEwMG1zIGVhc2UtaW4tb3V0O319LmludGVyY29tLXNlYXJjaC1icm93c2Utc2xpZGUtbGVmdHsmLWVudGVye3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KTtvcGFjaXR5OjA7fSYtZW50ZXItYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO29wYWNpdHk6MTt0cmFuc2l0aW9uOjE1MG1zIGVhc2UtaW4tb3V0O30mLWV4aXR7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7b3BhY2l0eToxO30mLWV4aXQtYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjoxNTBtcyBlYXNlLWluLW91dDt9fS5pbnRlcmNvbS1zZWFyY2gtYnJvd3NlLXNsaWRlLXJpZ2h0eyYtZW50ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCk7b3BhY2l0eTowO30mLWVudGVyLWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTtvcGFjaXR5OjE7dHJhbnNpdGlvbjoxNTBtcyBlYXNlLWluLW91dDt9Ji1leGl0e3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO29wYWNpdHk6MTt9Ji1leGl0LWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KTtvcGFjaXR5OjA7dHJhbnNpdGlvbjoxNTBtcyBlYXNlLWluLW91dDt9fS5pbnRlcmNvbS1zZWFyY2gtYnJvd3NlLWFydGljbGUtY29sbGVjdGlvbi1pbnsmLWVudGVyLCYtYXBwZWFye3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpO29wYWNpdHk6MDt9Ji1lbnRlci1hY3RpdmUsJi1hcHBlYXItYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO29wYWNpdHk6MTt0cmFuc2l0aW9uOjEwMG1zIGVhc2UtaW4tb3V0O30mLWV4aXR7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7b3BhY2l0eToxO30mLWV4aXQtYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpO29wYWNpdHk6MDt0cmFuc2l0aW9uOjEwMG1zIGVhc2UtaW4tb3V0O319LmludGVyY29tLXNlYXJjaC1icm93c2UtYXJ0aWNsZS1jb2xsZWN0aW9uLWZhZGUtaW57Ji1lbnRlciwmLWFwcGVhcntvcGFjaXR5OjA7fSYtZW50ZXItYWN0aXZlLCYtYXBwZWFyLWFjdGl2ZXtvcGFjaXR5OjE7dHJhbnNpdGlvbjoyNW1zIGVhc2UtaW4tb3V0O319IixtdS5KLmNsYXNzTmFtZSwie2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjtib3JkZXI6MXB4IHNvbGlkICIsKDAsZi5yUykoImxpZ2h0R3JleTEwIiksIjt0cmFuc2l0aW9uOmNvbG9yIDAuMTVzIGVhc2UgMHMsYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlIDBzLGJvcmRlciAwLjE1cyBlYXNlIDBzO3NwYW57Zm9udC13ZWlnaHQ6NDAwO30iLCgoe3RoZW1lOmV9KT0+e2NvbnN0IHQ9ZS5pc1ByaW1hcnlDb2xvckxpZ2h0P2UuYXBwQ29sb3JEYXJrZXI6ZS5wcmltYXJ5Q29sb3I7cmV0dXJuKDAsZi5pdikodWMuTi5jbGFzc05hbWUsIntwYXRoe2ZpbGw6Iix0LCI7fX0mOmhvdmVyLCY6YWN0aXZle2NvbG9yOiIsdCwiO2JvcmRlcjoxcHggc29saWQgIix0LCI7YmFja2dyb3VuZC1jb2xvcjoiLGUud2hpdGUsIjsiLHVjLk4uY2xhc3NOYW1lLCJ7cGF0aHtmaWxsOiIsdCwiO319fSIpfSksIn0iKTtmdW5jdGlvbiB4dSh7c2hvd0JvZHk6ZX0pe2NvbnN0IHQ9KDAsaC5DRykoQi5TQSksbj0hdCYmZSxpPSgwLGguVEwpKCk7cmV0dXJuIHIudXNlRWZmZWN0KCgoKT0+KGkoKDAsRHQuamIpKCkpLCgpPT57aSgoMCxEdC5NRikoKSl9KSksW2ldKSxyLmNyZWF0ZUVsZW1lbnQoZnUse3Nob3dBcnRpY2xlOnQsZnVsbEhlaWdodDohMH0sdCYmci5jcmVhdGVFbGVtZW50KHV1LG51bGwpLHIuY3JlYXRlRWxlbWVudChtLkt2LHtpbjpuLGNsYXNzTmFtZXM6ImludGVyY29tLXNlYXJjaC1icm93c2UtZmFkZSIsbW91bnRPbkVudGVyOiEwLHVubW91bnRPbkV4aXQ6ITAsdGltZW91dDoxMDB9LHIuY3JlYXRlRWxlbWVudChYZCx7d2l0aG91dFBhZGRpbmc6ITB9KSkpfXZhciB2dT1uKDEzMTY5KTtjb25zdCB5dT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJleTlyaWwzMCJ9KSh7bmFtZToiMTY0cjQxciIsc3R5bGVzOiJtYXJnaW4tdG9wOjhweDsifSksYnU9ZT0+ZS5jdXJyZW50JiZjbGVhclRpbWVvdXQoZS5jdXJyZW50KSxFdT0oe3RpbWVvdXQ6ZT0xNTAwfT17fSk9Pntjb25zdFt0LG5dPSgwLHIudXNlU3RhdGUpKCExKSxpPSgwLHIudXNlUmVmKSgpLG89KDAsci51c2VSZWYpKG51bGwpLGE9KDAsci51c2VSZWYpKG51bGwpLHM9KDAsci51c2VDYWxsYmFjaykoKCgpPT57dmFyIGU7cmV0dXJuIHZvaWQgMCE9PWkuY3VycmVudCYmIiIhPT0obnVsbD09PShlPWkuY3VycmVudCl8fHZvaWQgMD09PWU/dm9pZCAwOmUudmFsdWUpfSksW2ldKSxsPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e2J1KG8pLG8uY3VycmVudD1zZXRUaW1lb3V0KCgoKT0+e2J1KGEpLGEuY3VycmVudD1udWxsLG4oITEpfSksMWUzKX0pLFtdKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT4oKT0+e2J1KG8pLGJ1KGEpfSksW10pLCgwLHIudXNlRWZmZWN0KSgoKCk9PntpZihuKCExKSwhaS5jdXJyZW50KXJldHVybjtjb25zdCB0PXQ9PntzKCk/KCJFbnRlciI9PT10LmtleXx8YS5jdXJyZW50fHwoYS5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57YnUoYSksbihzKCkpfSksZSkpLGwoKSk6KGJ1KG8pLGJ1KGEpLGEuY3VycmVudD1udWxsLG4oITEpKX0scj0oKT0+e2J1KG8pLGJ1KGEpLGEuY3VycmVudD1udWxsLG4oITEpfSxjPWkuY3VycmVudDtyZXR1cm4gYy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdCksYy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixyKSwoKT0+e2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHQpLGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIscil9fSksW2kscyxsLGVdKSxbaSx0LG5dfSxrdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWdzbGhmcDAifSkoImJhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOjI1MG1zO2JvcmRlcjoiLCgoe3RoZW1lOmV9KT0+ZS5pc1NlY29uZGFyeUNvbG9yTGlnaHQ/IjFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDYpIjoibm9uZSIpLCI7IiwoKHtoYXNWYWx1ZTplLHRoZW1lOnR9KT0+ZSYmKDAsZi5pdikoImJhY2tncm91bmQtY29sb3I6Iix0LndoaXRlLCI7Y29sb3I6YmxhY2s7IikpLCIgaW5wdXR7d2lkdGg6MTAwJTtwYWRkaW5nOjExLjVweCAxMHB4O3BhZGRpbmctbGVmdDoxMHB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjt9bWFyZ2luOjAgMnB4IDRweCAycHg7IiksQ3U9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFnc2xoZnAxIn0pKHtuYW1lOiJtdDQ2b24iLHN0eWxlczoiY3Vyc29yOnRleHQ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlOyJ9KTt2YXIgd3U9e25hbWU6IjE2MGxqNjYiLHN0eWxlczoicHtvcGFjaXR5OjAlO30ifSxTdT17bmFtZToiMTZybzF2eCIsc3R5bGVzOiJpe29wYWNpdHk6MCU7fSJ9O2NvbnN0IFB1PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZ3NsaGZwMiJ9KSgicG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2l0aW9uOm9wYWNpdHkgMjUwbXM7Y29sb3I6IiwoMCxmLnJTKSgiaW5wdXRHcmV5IiksIjtwYWRkaW5nOjAgMTBweDt3aWR0aDpjYWxjKDEwMCUgLSAyMHB4KTtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwLGl7b3BhY2l0eToxMDAlO3RyYW5zaXRpb246b3BhY2l0eSAxNTBtczt9cHtmb250LXNpemU6MTRweDtjb2xvcjoiLCgwLGYuclMpKCJpbnB1dEdyZXkiKSwiO30iLCgoe2lzU2hvd2luZ0xvYWRpbmdTcGlubmVyOmUsaXNTaG93aW5nQ2xvc2VCdXR0b246dH0pPT4oZXx8dCkmJlN1KSwiICIsKCh7aXNGb2N1c2VkOmV9KT0+ZSYmd3UpKSxUdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWdzbGhmcDMifSkoe25hbWU6IjRnNmFpMyIsc3R5bGVzOiJjdXJzb3I6cG9pbnRlcjsifSksWnU9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFnc2xoZnA0In0pKHtuYW1lOiJ3NjFqcmsiLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTNweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsmLmZhZGUtZW50ZXJ7b3BhY2l0eTowO30mLmZhZGUtZXhpdHtvcGFjaXR5OjE7fSYuZmFkZS1lbnRlci1hY3RpdmV7b3BhY2l0eToxO30mLmZhZGUtZXhpdC1hY3RpdmV7b3BhY2l0eTowO30mLmZhZGUtZW50ZXItYWN0aXZlLCYuZmFkZS1leGl0LWFjdGl2ZXt0cmFuc2l0aW9uOm9wYWNpdHkgMTAwbXM7fSJ9KSxJdT0oe3Nob3dTZWFyY2hSZXN1bHRzOmUsb25QaHJhc2VDaGFuZ2U6dCxvbkNsb3NlQ2xpY2s6bixzaG93QnJvd3NlTW9kZTppLHBocmFzZTpvLG9uU2VhcmNoQmx1cjphLG9uU2VhcmNoRm9jdXM6cyxmb2N1c09uTW91bnQ6bCxpc0ZldGNoaW5nU2VhcmNoUmVzdWx0czpjfSk9Pnt2YXIgZDtjb25zdFtwLGddPSgwLHIudXNlU3RhdGUpKGwpLHtpbnB1dFJlZjpmLGhpZGVSZXN1bHRzV2l0aERlbGF5OngsaGFuZGxlS2V5RG93bjp2LGlzQ3VycmVudGx5VHlwaW5nOnkscHJldmlvdXNseVdhc1R5cGluZzpiLHNob3dSZXN1bHRzOkUsaXNNb2JpbGU6a309KCh7c2hvd1NlYXJjaFJlc3VsdHM6ZSxvblBocmFzZUNoYW5nZTp0LG9uQ2xvc2VDbGljazpuLGZvY3VzT25Nb3VudDppfSk9Pnt2YXIgbztjb25zdFthLHMsbF09RXUoe3RpbWVvdXQ6NTAwfSksYz0oMCx6ZS5EKShzKSxkPSgwLHplLkQpKG51bGw9PT0obz1hLmN1cnJlbnQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnZhbHVlKSxbcCx1XT0oMCxyLnVzZVN0YXRlKSghMSksbT0oMCxSLlVLKSgpLGc9cGQoKXx8ZSxmPSgwLGguQ0cpKE4uYzApP2k6aSYmIW07cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e2xldCBlO3JldHVybiBmJiZhLmN1cnJlbnQmJihlPSgwLCRvLlN2KShhLmN1cnJlbnQsNTAwKSksKCk9PmNsZWFyVGltZW91dChlKX0pLFthLGZdKSx7aW5wdXRSZWY6YSxpc0N1cnJlbnRseVR5cGluZzpzLHByZXZpb3VzbHlXYXNUeXBpbmc6YyxoaWRlUmVzdWx0c1dpdGhEZWxheTpwLGlzTW9iaWxlOm0sc2hvd1Jlc3VsdHM6ZyxoYW5kbGVLZXlEb3duOmU9PntpZihlLmtleUNvZGU9PT0kby50Vy5FTlRFUil7Y29uc3QgdD1lLnRhcmdldC52YWx1ZTt0JiZ0IT09ZCYmbCghMCl9dShlLmtleUNvZGU9PT0kby50Vy5ERUxFVEV8fGUua2V5Q29kZT09PSRvLnRXLkJBQ0tTUEFDRSl9LGhhbmRsZU9uQ2xvc2VDbGljazooKT0+e20/bigpOih0KCIiLHApLGEuY3VycmVudCYmYS5jdXJyZW50LmZvY3VzKCkpfX19KSh7c2hvd1NlYXJjaFJlc3VsdHM6ZSxvblBocmFzZUNoYW5nZTp0LG9uQ2xvc2VDbGljazpuLGZvY3VzT25Nb3VudDpsfSksQz0hIWYuY3VycmVudCYmKG51bGw9PT0oZD1mLmN1cnJlbnQpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLnZhbHVlLmxlbmd0aCk+MCx3PUJvb2xlYW4oeXx8YyYmQyYmYiksUz0hdyYmRSYmaSxQPSgwLHUuSXUpKCJzZWFyY2hfZm9yX2hlbHAiKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57IiI9PT1vJiZmLmN1cnJlbnQmJiIiIT09Zi5jdXJyZW50LnZhbHVlJiYoZi5jdXJyZW50LnZhbHVlPSIiKX0pLFtmLG9dKTtjb25zdCBUPXB8fCEoIW98fCIiPT09byk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChrdSx7aGFzVmFsdWU6VH0sci5jcmVhdGVFbGVtZW50KG0uS3Yse2luOmksY2xhc3NOYW1lczoiaW50ZXJjb20tc2VhcmNoLWJyb3dzZS1mYWRlIix0aW1lb3V0OjEwMCxtb3VudE9uRW50ZXI6ITAsdW1vdW50T25FeGl0OiEwfSxyLmNyZWF0ZUVsZW1lbnQoQ3Use29uQ2xpY2s6KCk9Pnt2YXIgZTtyZXR1cm4gbnVsbD09PShlPWYuY3VycmVudCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZm9jdXMoKX19LHIuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHtyZWY6ZixkZWZhdWx0VmFsdWU6byxvbkNoYW5nZTplPT50KGUudGFyZ2V0LnZhbHVlLHgpLG9uS2V5RG93bjp2LG9uRm9jdXM6KCk9PntnKCEwKSxzKCl9LG9uQmx1cjooKT0+e2coITEpLGEoKX0sImFyaWEtbGFiZWwiOlB9KSxyLmNyZWF0ZUVsZW1lbnQoUHUse2lzRm9jdXNlZDpULGNsYXNzTmFtZToic2VhcmNoLWlucHV0LXBsYWNlaG9sZGVyIixpc1Nob3dpbmdDbG9zZUJ1dHRvbjpTLGlzU2hvd2luZ0xvYWRpbmdTcGlubmVyOncsdGFiSW5kZXg6LTEsaXNNb2JpbGU6a30sci5jcmVhdGVFbGVtZW50KGxlLlose2NvbG9yOiJsaW5rQ29sb3IiLHR5cGU6IlNlYXJjaCJ9KSxyLmNyZWF0ZUVsZW1lbnQoInAiLG51bGwsUCkpLHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHIuY3JlYXRlRWxlbWVudChtLkt2LHtpbjp3LGNsYXNzTmFtZXM6ImZhZGUiLHRpbWVvdXQ6MTAwLG1vdW50T25FbnRlcjohMCx1bm1vdW50T25FeGl0OiEwfSxyLmNyZWF0ZUVsZW1lbnQoWnUsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXQuWix7c2l6ZToidGlueSIsaW5saW5lOiEwfSkpKSxyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46UyxjbGFzc05hbWVzOiJmYWRlIix0aW1lb3V0OjEwMCxtb3VudE9uRW50ZXI6ITAsdW5tb3VudE9uRXhpdDohMH0sci5jcmVhdGVFbGVtZW50KFp1LG51bGwsci5jcmVhdGVFbGVtZW50KFR1LHsiYXJpYS1sYWJlbCI6KDAsdS5JdSkoImNsZWFyIiksb25DbGljazooKT0+e3QoIiIseCksZi5jdXJyZW50JiYoZi5jdXJyZW50LmZvY3VzKCksZi5jdXJyZW50LnZhbHVlPSIiKX19LHIuY3JlYXRlRWxlbWVudChsZS5aLHtzaXplOjE2LHR5cGU6IkNsb3NlTTUifSkpKSkpKSkpfSxqdT0oMCxBLmNyZWF0ZVNlbGVjdG9yKSgoZT0+ZS5icm93c2VNb2RlKSwoZT0+KHtwaHJhc2U6ZS5waHJhc2UsaXNGZXRjaGluZ1NlYXJjaFJlc3VsdHM6ZS5pc0ZldGNoaW5nU2VhcmNoUmVzdWx0cyxzaG93U2VhcmNoUmVzdWx0czplLnNob3dTZWFyY2hSZXN1bHRzLHNob3dBcnRpY2xlQ29sbGVjdGlvbjplLm5hdmlnYXRpb25TdGFja0NvbGxlY3Rpb25JZHMubGVuZ3RoPjAsbmF2aWdhdGlvblN0YWNrQ29sbGVjdGlvbklkczplLm5hdmlnYXRpb25TdGFja0NvbGxlY3Rpb25JZHN9KSkpLF91PSgwLEEuY3JlYXRlU2VsZWN0b3IpKChlPT5lLmFydGljbGVDb2xsZWN0aW9ucyksKGU9Pih7YXJ0aWNsZUNvbGxlY3Rpb25Db3VudDplLmxlbmd0aH0pKSksT3U9KCk9Pntjb25zdFtlXT0oMCxILnVzZVNlYXJjaFBhcmFtcykoKSx7c2hvd1NwYWNlOnR9PU50KCksbj0hIWUuZ2V0KCJmcm9tSG9tZSIpLGk9KDAsaC5UTCkoKSx7cGhyYXNlOm8saXNGZXRjaGluZ1NlYXJjaFJlc3VsdHM6YSxzaG93U2VhcmNoUmVzdWx0czpzLG5hdmlnYXRpb25TdGFja0NvbGxlY3Rpb25JZHM6bH09KDAsaC5DRykoanUpLHthcnRpY2xlQ29sbGVjdGlvbkNvdW50OmN9PSgwLGguQ0cpKF91KSxkPSgwLGguQ0cpKEIuU0EpLHA9IWQmJiEwLG09WCh6dC5qZyl8fCgwLHUuSXUpKCJoZWxwX3NwYWNlX3RpdGxlIiksZz0oMCxoLkNHKShOLkcwKSxmPWR8fGwubGVuZ3RoPjB8fGd8fG47cmV0dXJuIHIuY3JlYXRlRWxlbWVudChMZSx7dHJhbnNpdGlvbktleTpkPyJhcnRpY2xlIjoibGlzdCJ9LHIuY3JlYXRlRWxlbWVudChQZS5Db250ZW50LG51bGwsci5jcmVhdGVFbGVtZW50KFBlLlRpdGxlQXJlYSx7d2hpdGVCYWNrZ3JvdW5kOmQsdGl0bGU6ZD92b2lkIDA6bSxvbkJhY2s6Zj8oKT0+e2NvbnN0IGU9MT09PWwubGVuZ3RoJiYxPT09Y3x8IShsLmxlbmd0aD4wKTtuJiZlJiZ0KHp0Lnk3LmlkKSxkP2koKDAsTXQuWG4pKCkpOihpKCgwLER0Lm9lKSgpKSxpKCgwLGZyLkMzKSh2b2lkIDAsIiIsbmV3IERhdGUpKSx2dS5aLnNhdmVEcmFmdCh2b2lkIDAsIiIpKX06dm9pZCAwLHNob3dFeHBhbmRCdXR0b246ZH0pLCFkJiZyLmNyZWF0ZUVsZW1lbnQoeXUsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoSXUse2ZvY3VzT25Nb3VudDpuLHNob3dTZWFyY2hSZXN1bHRzOnMsb25QaHJhc2VDaGFuZ2U6KGUsdCk9PntpKCgwLER0LnZmKShlLHQpKX0sb25DbG9zZUNsaWNrOigpPT57aSgoMCxjZS5lQSkoITApKX0saXNGZXRjaGluZ1NlYXJjaFJlc3VsdHM6YSxzaG93QnJvd3NlTW9kZTpwLHBocmFzZTpvLG9uU2VhcmNoQmx1cjooKT0+e2koKDAsRHQub1UpKCExKSl9LG9uU2VhcmNoRm9jdXM6KCk9PntpKCgwLER0Lm9VKSghMCkpfX0pKSkpfSxBdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJld25xOXNvMCJ9KSh7bmFtZToiazBzb2dkIixzdHlsZXM6ImZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOyJ9KTtmdW5jdGlvbiBCdSgpe2NvbnN0IGU9KDAsaC5DRykoQi5OSyk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChBdSxudWxsLHIuY3JlYXRlRWxlbWVudChZLHtzcGFjZUlkOnp0LmpnLmlkLGlzT3ZlcmxheTohIWV9LHIuY3JlYXRlRWxlbWVudChPdSxudWxsKSksci5jcmVhdGVFbGVtZW50KHh1LHtzaG93Qm9keTohMH0pKX12YXIgUnU9bigzNzY1NiksenU9e25hbWU6IjFkYWNhbmQiLHN0eWxlczoicGFkZGluZy10b3A6MDsifTtjb25zdCBOdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTNkY3licjAifSkoInBhZGRpbmc6MjRweCAyNHB4IDE0cHg7YmFja2dyb3VuZDoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7ei1pbmRleDoxMDsiLCgoe3JlbW92ZVRvcFBhZGRpbmc6ZX0pPT5lJiZ6dSkpLE11PSgwLGYuWlApKCJoMiIse3RhcmdldDoiZTEzZGN5YnIxIn0pKCJmb250LXNpemU6MjRweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiIsKDAsZi5yUykoIm01RGFya0dyZXkyIiksIjt0ZXh0LWFsaWduOmNlbnRlcjsiKSxEdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTNkY3licjIifSkoImZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IiwoMCxmLnJTKSgibTVEYXJrR3JleTIiKSwiO3RleHQtYWxpZ246Y2VudGVyOyIpLEx1PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxM2RjeWJyMyJ9KSh7bmFtZToiczZiazQxIixzdHlsZXM6ImRpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTJweDsifSksR3U9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFoM3FtY2YwIn0pKHtuYW1lOiJvcHMyZTciLHN0eWxlczoiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzphdXRvOyJ9KSxGdT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWgzcW1jZjEifSkoe25hbWU6IjF0NnVocW4iLHN0eWxlczoiZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjhweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7In0pLHF1PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxaDNxbWNmMiJ9KSgiZm9udC1zaXplOjE0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2NvbG9yOiIsKDAsZi5yUykoImdyZXkiKSwiO2xpbmUtaGVpZ2h0OjIwcHg7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuOyYubGFzdFVwZGF0ZWR7ZmxleDpub25lO30iKTt2YXIgSHU9bigzMTM5NCk7Y29uc3QgV3U9KHtzZW5kZXI6ZSxhdmF0YXJNYXJnaW46dCxsaW5raW5nVGV4dDpuLHNob3dGdWxsTmFtZTppLGxhc3RVcGRhdGVkQXQ6byxhcHBOYW1lOmF9KT0+ci5jcmVhdGVFbGVtZW50KEd1LG51bGwsci5jcmVhdGVFbGVtZW50KEZ1LHtzdHlsZTp7bWFyZ2luUmlnaHQ6dHx8OH19LHIuY3JlYXRlRWxlbWVudChIdS5aLHthdXRob3I6ZX0pKSxyLmNyZWF0ZUVsZW1lbnQocXUsbnVsbCxuJiZgJHtufWAsIiAiLCgoZSx0KT0+dD9lLm5hbWU6ZS5maXJzdE5hbWUpKGUsaSksYSYmYCAkeygoZSx0KT0+InRlYW0iIT09ZS50eXBlPygwLHUuSXUpKCJmcm9tX2FwcCIse2FwcF9uYW1lOnR9KTpudWxsKShlLGEpfWApLEJvb2xlYW4obykmJnIuY3JlYXRlRWxlbWVudChxdSx7Y2xhc3NOYW1lOiJsYXN0VXBkYXRlZCJ9LHIuY3JlYXRlRWxlbWVudCgic3BhbiIse3N0eWxlOnt3aGl0ZVNwYWNlOiJwcmUtd3JhcCJ9LCJhcmlhLWhpZGRlbiI6ITB9LCIgIiwi4oCiIiwiICIpLHIuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCwoMCxaci5WTykobykpKSksVXU9KDAsQS5jcmVhdGVTZWxlY3RvcikoKGU9PmUuYXBwKSwoKHtuYW1lOmV9KT0+KHtuYW1lOmV9KSkpLFZ1PSh7dGl0bGU6ZSxzdWJ0aXRsZTp0LHNlbmRlcjpufSk9Pntjb25zdHtuYW1lOmk9IiJ9PSgwLGguQ0cpKFV1KSxvPSgwLGguQ0cpKFFyLkkzKSxhPSgwLGguQ0cpKE4uRzApLHM9MT09PW8ubGVuZ3RoO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoTnUse3JlbW92ZVRvcFBhZGRpbmc6IXN8fGF9LHIuY3JlYXRlRWxlbWVudChNdSxudWxsLHIuY3JlYXRlRWxlbWVudChIci5aLHtibG9ja3M6ZX0pKSx0JiZyLmNyZWF0ZUVsZW1lbnQoRHUsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoSHIuWix7YmxvY2tzOnR9KSksbiYmci5jcmVhdGVFbGVtZW50KEx1LG51bGwsci5jcmVhdGVFbGVtZW50KFd1LHtzZW5kZXI6bixhcHBOYW1lOml9KSkpfTt2YXIgJHU7ZnVuY3Rpb24gS3UoKXtyZXR1cm4gS3U9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxLdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWXUoZSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgic3ZnIixLdSh7dmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxlKSwkdXx8KCR1PXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNC44ODQgMy45NWwtLjk1MS0uODZhLjM1LjM1IDAgMDAtLjQ5NS4wMjZsLTcuMjM2IDguMDEyLTMuNzU3LTMuMzkzYS4zNS4zNSAwIDAwLS40OTUuMDI1bC0uODYuOTUxYS4zNS4zNSAwIDAwLjAyNi40OTVsNC45NiA0LjQ4YS4zNC4zNCAwIDAwLjE3LjA4Mi4zNDYuMzQ2IDAgMDAuMDk3LjAwOC4zNS4zNSAwIDAwLjI0My0uMTE1bDguMzI0LTkuMjE3YS4zNS4zNSAwIDAwLS4wMjYtLjQ5NHoiLGZpbGw6ImN1cnJlbnRDb2xvciJ9KSkpfW4ucDtjb25zdCBKdT0iMjAwbXMiLFh1PXtuYW1lOiIxb3hxMG5wIixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO21hcmdpbjphdXRvOyJ9LFF1PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImV1Y2c2YnIwIn0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6YmFzZWxpbmU7IiwoKHt0aGVtZTplLGV4cGFuZGVkOnR9KT0+dCYmKDAsZi5pdikodG0uY2xhc3NOYW1lLCJ7Y29sb3I6IixlLm01RGFya0dyZXkyLCI7Zm9udC13ZWlnaHQ6NjAwO30iLG5tLmNsYXNzTmFtZSwie3RyYW5zZm9ybTpzY2FsZSgtMSk7Y29sb3I6IixlLmNoZWNrbGlzdE1haW5Db2xvciwiO30iLGVtLmNsYXNzTmFtZSwie2JhY2tncm91bmQ6IixlLm01RGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kLCI7Y29sb3I6IixlLmNoZWNrbGlzdE1haW5Db2xvciwiO30iKSksIiAiLCgoe3RoZW1lOmUsY29tcGxldGVkOnR9KT0+dCYmKDAsZi5pdikocm0uY2xhc3NOYW1lLCJ7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO30iLGltLmNsYXNzTmFtZSwie29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7fSIsZW0uY2xhc3NOYW1lLCJ7YmFja2dyb3VuZDoiLGUubGlnaHRHcmV5NCwiO2NvbG9yOiIsZS5tNURhcmtHcmV5MiwiO30iKSksIiAiLCgoe3RoZW1lOmUsZXhwYW5kZWQ6dCxjb21wbGV0ZWQ6bn0pPT50JiZuJiYoMCxmLml2KShubS5jbGFzc05hbWUsInt0cmFuc2Zvcm06c2NhbGUoLTEpO2NvbG9yOiIsZS5saWdodEdyZXk0LCI7fSIpKSksZW09KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXVjZzZicjEifSkoInBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCAzMnB4O3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6IiwoMCxnZS5CdykoKDAsZi5yUykoIm01RGlzYWJsZWRCdXR0b25CYWNrZ3JvdW5kIiksLjEpLCI7Y29sb3I6IiwoMCxmLnJTKSgibTVsaWdodEdyZXk0IiksIjsiKSx0bT0oMCxmLlpQKSgiaDMiLHt0YXJnZXQ6ImV1Y2c2YnIyIn0pKCJmbGV4OjE7cGFkZGluZzowIDhweDtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS40Mjtjb2xvcjoiLCgwLGYuclMpKCJtNURhcmtHcmV5MiIpLCI7Iiksbm09KDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImV1Y2c2YnIzIn0pKCJwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NHB4O3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleDowIDAgMTZweDtjb2xvcjoiLCgwLGYuclMpKCJtNWxpZ2h0R3JleTQiKSwiO3RyYW5zaXRpb246dHJhbnNmb3JtIGVhc2UtaW4tb3V0ICIsSnUsIjsiKSxybT0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZXVjZzZicjQifSkoImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxO3RyYW5zaXRpb246b3BhY2l0eSBlYXNlLWluICIsSnUsIjsiKSxpbT0oMCxmLlpQKShZdSx7dGFyZ2V0OiJldWNnNmJyNSJ9KShYdSwiIHdpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSBjdWJpYy1iZXppZXIoMC41MywxLjg4LDAuNTYsMC42NSkgIixKdSwiO3RyYW5zaXRpb24tZGVsYXk6IixKdSwiOyIpO3ZhciBvbTtmdW5jdGlvbiBhbSgpe3JldHVybiBhbT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGFtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzbShlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzdmciLGFtKHt2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LGUpLG9tfHwob209ci5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNMy45MzQgNS45MzVhLjguOCAwIDAxMS4xMyAwTDggOC44NjlsMi45MzUtMi45MzRhLjguOCAwIDAxMS4xMyAxLjEzbC0zLjUgMy41YS44LjggMCAwMS0xLjEzIDBsLTMuNS0zLjVhLjguOCAwIDAxMC0xLjEzeiIsZmlsbDoiY3VycmVudENvbG9yIn0pKSl9bi5wO2NvbnN0IGxtPSh7ZXhwYW5kZWQ6ZSxjb21wbGV0ZWQ6dCx0aXRsZTpuLG9yZGVyOml9KT0+ci5jcmVhdGVFbGVtZW50KFF1LHtleHBhbmRlZDpCb29sZWFuKGUpLGNvbXBsZXRlZDp0fSxyLmNyZWF0ZUVsZW1lbnQoZW0sbnVsbCxyLmNyZWF0ZUVsZW1lbnQocm0sbnVsbCxpKSxyLmNyZWF0ZUVsZW1lbnQoaW0sbnVsbCkpLHIuY3JlYXRlRWxlbWVudCh0bSxudWxsLG4pLHIuY3JlYXRlRWxlbWVudChubSxudWxsLHIuY3JlYXRlRWxlbWVudChzbSxudWxsKSkpLGNtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU0dXZqcHIwIn0pKHtuYW1lOiIxdWptOHJ3IixzdHlsZXM6ImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7In0pLGRtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU0dXZqcHIxIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo0cHg7Y29sb3I6IiwoMCxmLnJTKSgiZGFya0dyZXkiKSwiO21hcmdpbi1sZWZ0OjQwcHg7bWFyZ2luLXJpZ2h0OjE1cHg7aW1nLGlmcmFtZXttYXgtd2lkdGg6MTAwJTt9KiArIC5pbnRlcmNvbS1ibG9jay12aWRlb3ttYXJnaW4tdG9wOjhweDt9LmludGVyY29tLWJsb2NrLXZpZGVvICsgKnttYXJnaW4tdG9wOjhweDt9KiArIC5pbnRlcmNvbS1ibG9jay1pbWFnZXttYXJnaW4tdG9wOjhweDt9LmludGVyY29tLWJsb2NrLWltYWdlICsgKnttYXJnaW4tdG9wOjhweDt9LmludGVyY29tLWJsb2NrLXBhcmFncmFwaHttaW4taGVpZ2h0OjEuNWVtO2E6bm90KC5pbnRlcmNvbS1ibG9jay1idXR0b24pe2NvbG9yOiIsKDAsZi5yUykoImxpbmtDb2xvciIpLCI7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsmOm5vdCguaW50ZXJjb20tYmxvY2stYnV0dG9uKTpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjoiLCgwLGYuclMpKCJsaW5rQ29sb3JIb3ZlciIpLCI7fX19IikscG09KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTR1dmpwcjIifSkoInBhZGRpbmctdG9wOjE2cHg7YTpob3ZlcixidXR0b246aG92ZXJ7IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodCYmKDAsZi5pdikoImJvcmRlcjoxcHggc29saWQgIixlLmxpZ2h0QnV0dG9uT3V0bGluZUhvdmVyQ29sb3IsIjttYXJnaW46LTFweDsiKSksIn0iKSx1bT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNHV2anByMyJ9KSh7bmFtZToidWIwY2FuIixzdHlsZXM6ImJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4wOCk7bWFyZ2luLXRvcDoxNnB4O3BhZGRpbmctYm90dG9tOjIwcHg7In0pLG1tPSgwLGYuWlApKCJidXR0b24iLHt0YXJnZXQ6ImU0dXZqcHI0In0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1sZWZ0OjQwcHg7bWFyZ2luLWJvdHRvbTo0cHg7Y29sb3I6IiwoKHtpc0NvbXBsZXRlOmV9KT0+ZT8iIzczNzM3MyI6KDAsZi5yUykoImNoZWNrbGlzdE1haW5Db2xvciIpKSwiOyIpLGhtPSgwLGYuWlApKFl1LHt0YXJnZXQ6ImU0dXZqcHI1In0pKHtuYW1lOiI0dnhyM3QiLHN0eWxlczoid2lkdGg6MTJweDtoZWlnaHQ6MTJweDttYXJnaW4tcmlnaHQ6OHB4OyJ9KSxnbT0oe2lkOmUsY3VycmVudENoZWNrbGlzdDp0LGFjdGlvblR5cGU6bixhY3Rpb25Db250ZW50SWQ6aSxhY3Rpb25Vcmw6byxvcGVuQWN0aW9uVXJsSW5OZXdUYWI6YSxvblRhc2tBY3Rpb25DbGljazpzLGN1c3RvbUFjdGlvbkJ1dHRvblRleHQ6bCxhY3Rpb25Db250ZW50VXJsOmN9KT0+e2NvbnN0IGQ9KDAsaC5UTCkoKSxwPSgpPT5kKCgwLGhzLnJXKShudWxsPT10P3ZvaWQgMDp0LmlkLG51bGw9PXQ/dm9pZCAwOnQuY2hlY2tsaXN0UHJvZ3Jlc3NJZCxlKSksbT1sfHwoMCx1Lkl1KSgiY2hlY2tsaXN0X3N0ZXBfYWN0aW9uX2J1dHRvbiIpO3N3aXRjaChuKXtjYXNlIGVpLlVzLlJlYWRPbmx5OnJldHVybiBudWxsO2Nhc2UgZWkuVXMuT3BlblVybDpyZXR1cm4gci5jcmVhdGVFbGVtZW50KHBtLHtvbkNsaWNrOnB9LHIuY3JlYXRlRWxlbWVudChMbyx7ImRhdGEtdGVzdGlkIjoiY2hlY2tsaXN0LXRhc2stYWN0aW9uLWJ1dHRvbiIsaHJlZjpvLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsdGFyZ2V0OmE/Il9ibGFuayI6dm9pZCAwfSxtKSk7ZGVmYXVsdDpyZXR1cm4gci5jcmVhdGVFbGVtZW50KHBtLG51bGwsci5jcmVhdGVFbGVtZW50KERvLHsiZGF0YS10ZXN0aWQiOiJjaGVja2xpc3QtdGFzay1hY3Rpb24tYnV0dG9uIixvbkNsaWNrOigpPT57cCgpLHMobixpLGN8fHZvaWQgMCl9fSxtKSl9fSxmbT0oe2lkOmUsY3VycmVudENoZWNrbGlzdDp0LGNvbnRlbnQ6bixhY3Rpb25UeXBlOmksYWN0aW9uQ29udGVudElkOm8sYWN0aW9uVXJsOmEsYWN0aW9uQ29udGVudFVybDpzLG9wZW5BY3Rpb25VcmxJbk5ld1RhYjpsLGNhbkJlTWFudWFsbHlSZXNvbHZlZDpjLGN1c3RvbUFjdGlvbkJ1dHRvblRleHQ6ZCxpc0NvbXBsZXRlOnAsb25UYXNrQWN0aW9uQ2xpY2s6bSxvblRhc2tSZXNvbHZlOmh9KT0+ci5jcmVhdGVFbGVtZW50KGNtLG51bGwsci5jcmVhdGVFbGVtZW50KGRtLG51bGwsbixyLmNyZWF0ZUVsZW1lbnQoZ20se2lkOmUsY3VycmVudENoZWNrbGlzdDp0LGFjdGlvblR5cGU6aSxhY3Rpb25Db250ZW50SWQ6byxhY3Rpb25Vcmw6YSxvcGVuQWN0aW9uVXJsSW5OZXdUYWI6bCxjdXN0b21BY3Rpb25CdXR0b25UZXh0OmQsb25UYXNrQWN0aW9uQ2xpY2s6bSxhY3Rpb25Db250ZW50VXJsOnN9KSksYyYmci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQodW0sbnVsbCksci5jcmVhdGVFbGVtZW50KG1tLHsiZGF0YS10ZXN0aWQiOiJjaGVja2xpc3QtbWFudWFsLXJlc29sdmUtYnV0dG9uIixpc0NvbXBsZXRlOnAsb25DbGljazp0PT4odD0+e3Quc3RvcFByb3BhZ2F0aW9uKCkscHx8aChlKX0pKHQpfSxyLmNyZWF0ZUVsZW1lbnQoaG0sbnVsbCkscD8oMCx1Lkl1KSgiY2hlY2tsaXN0X3N0ZXBfY29tcGxldGVkIik6KDAsdS5JdSkoImNoZWNrbGlzdF9tYXJrX3N0ZXBfYXNfY29tcGxldGUiKSkpKTt2YXIgeG09big5NTc2NCk7Y29uc3Qgdm09MTYwLHltPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxamdzZnVzMCJ9KSgibWluLWhlaWdodDo0MHB4O2hlaWdodDoiLCgoe2hlaWdodDplfSk9PmUmJmAke2V9cHhgKSwiO2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXJhZGl1czoxMHB4O3RyYW5zaXRpb246aGVpZ2h0ICIsdm0sIm1zO2JveC1zaGFkb3c6IiwoKHtpc0NvbXBsZXRlOmV9KT0+ZT8ibm9uZSI6IjBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwcHggMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDYpIiksIjsmOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7bWFyZ2luLXRvcDoxMHB4O30iLCgoe2JhY2tncm91bmQ6ZX0pPT5lJiYoMCxmLml2KSgiYmFja2dyb3VuZDoiLGUsIjsiKSkpLGJtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxamdzZnVzMSJ9KSh7bmFtZToiNGc2YWkzIixzdHlsZXM6ImN1cnNvcjpwb2ludGVyOyJ9KSxFbT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWpnc2Z1czIifSkoe25hbWU6IjNnZWwyMyIsc3R5bGVzOiJwYWRkaW5nOjE2cHg7Ym94LXNpemluZzpib3JkZXItYm94OyJ9KSxrbT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWpnc2Z1czMifSkoIm9wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjtoZWlnaHQ6MDsiLCgoe2NhbkRpc3BsYXlDb250ZW50OmV9KT0+ZSYmKDAsZi5pdikoIm9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7aGVpZ2h0OmF1dG87dHJhbnNpdGlvbjpvcGFjaXR5ICIsMzIwLCJtcyBlYXNlLWluLW91dCAiLHZtLCJtczsiKSkpLENtPXIuZm9yd2FyZFJlZigoKHtoZWFkZXI6ZSxjb250ZW50OnQsZXhwYW5kZWQ6bixjbGFzc05hbWU6aSxiYWNrZ3JvdW5kOm8saXNDb21wbGV0ZTphLG9uRXhwYW5kOnN9LGwpPT57Y29uc3RbYyxkXT0oMCxyLnVzZVN0YXRlKSghMSksW3AsdV09KDAsci51c2VTdGF0ZSkobnVsbCksbT1jJiZ2b2lkIDAhPT10LGg9KDAsci51c2VSZWYpKG51bGwpLGc9KCk9Pnt2YXIgZTtudWxsPT09KGU9aC5jdXJyZW50KXx8dm9pZCAwPT09ZXx8ZS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6ImNlbnRlciJ9KX07cmV0dXJuKDAsci51c2VJbXBlcmF0aXZlSGFuZGxlKShsLCgoKT0+KHtzY3JvbGxJblZpZXc6Z30pKSksKDAsci51c2VFZmZlY3QpKCgoKT0+e2Qobil9KSxbbl0pLHIuY3JlYXRlRWxlbWVudCh5bSx7aGVpZ2h0OnAsY2xhc3NOYW1lOmksYmFja2dyb3VuZDpvLGlzQ29tcGxldGU6YSwiZGF0YS10ZXN0aWQiOiJjb2xsYXBzaWJsZS1jYXJkIixyZWY6aH0sci5jcmVhdGVFbGVtZW50KEsuWix7b25IZWlnaHRDaGFuZ2U6dX0sci5jcmVhdGVFbGVtZW50KEVtLG51bGwsci5jcmVhdGVFbGVtZW50KGJtLHtvbkNsaWNrOigpPT57Y29uc3QgZT0hYztkKGUpLHMmJnMoZSl9LCJkYXRhLXRlc3RpZCI6ImNvbGxhcHNpYmxlLWNhcmQtaGVhZGVyIn0sKDAsci5jbG9uZUVsZW1lbnQpKGUse2V4cGFuZGVkOmM/MTowfSkpLHIuY3JlYXRlRWxlbWVudCh4bS5aLHthcHBlYXJEZWxheTp2bSxkdXJhdGlvbjp2bX0sci5jcmVhdGVFbGVtZW50KGttLHsiZGF0YS10ZXN0aWQiOiJjb2xsYXBzaWJsZS1jYXJkLWNvbnRlbnQiLGNhbkRpc3BsYXlDb250ZW50Om19LG0/dDpudWxsKSkpKSl9KSksd209ci5mb3J3YXJkUmVmKCgoe2NhcmRzOmUsZXhwYW5kZWRDYXJkSWQ6dCxjbGFzc05hbWU6bixvbkV4cGFuZDppfSxvKT0+e2NvbnN0IGE9KDAsci51c2VSZWYpKFtdKSxzPXQ9Pnt2YXIgbjtjb25zdCByPWUubWFwKChlPT5lLmlkKSkuaW5kZXhPZih0KTtudWxsPT09KG49YS5jdXJyZW50W3JdKXx8dm9pZCAwPT09bnx8bi5zY3JvbGxJblZpZXcoKX07cmV0dXJuKDAsci51c2VJbXBlcmF0aXZlSGFuZGxlKShvLCgoKT0+KHtzY3JvbGxUb0NhcmQ6c30pKSksci5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bn0sKG51bGw9PWU/dm9pZCAwOmUubGVuZ3RoKT4wJiZlLm1hcCgoKGUsbik9Pntjb25zdCBvPXQ9PT1lLmlkO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQ20se2tleTplLmlkLGhlYWRlcjplLmhlYWRlcixjb250ZW50OmUuY29udGVudCxleHBhbmRlZDpvLGJhY2tncm91bmQ6ZS5iYWNrZ3JvdW5kLGlzQ29tcGxldGU6ZS5pc0NvbXBsZXRlLG9uRXhwYW5kOnQ9PmkoZS5pZCx0KSxyZWY6ZT0+YS5jdXJyZW50W25dPWV9KX0pKSl9KSksU209ci5mb3J3YXJkUmVmKCgoe2FjdGl2ZUNhcmRJZDplLGNhcmRzOnQsY2xhc3NOYW1lOm4sb25DYXJkRXhwYW5kOml9LG8pPT57Y29uc3QgYT0oMCxyLnVzZVJlZikobnVsbCksW3MsbF09KDAsci51c2VTdGF0ZSkobnVsbCksYz0oZSx0KT0+e3ZhciBuOyhsKGUpLHQpJiYobnVsbD09PShuPWEuY3VycmVudCl8fHZvaWQgMD09PW58fG4uc2Nyb2xsVG9DYXJkKGUpKX0sZD0oKT0+e3ZhciBlO251bGw9PT0oZT1hLmN1cnJlbnQpfHx2b2lkIDA9PT1lfHxlLnNjcm9sbFRvQ2FyZCh0WzBdLmlkKX07cmV0dXJuKDAsci51c2VJbXBlcmF0aXZlSGFuZGxlKShvLCgoKT0+KHtleHBhbmRDYXJkOmMsc2Nyb2xsVG9Ub3A6ZH0pKSksKDAsci51c2VFZmZlY3QpKCgoKT0+e2kmJmkocyl9KSxbcyxpXSksKDAsci51c2VFZmZlY3QpKCgoKT0+eyhudWxsPT10P3ZvaWQgMDp0Lmxlbmd0aCk+MCYmbCh0WzBdLmlkKX0pLFtdKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57ZSYmbChlKX0pLFtlXSksci5jcmVhdGVFbGVtZW50KHdtLHtjYXJkczp0LGV4cGFuZGVkQ2FyZElkOnMsb25FeHBhbmQ6KGUsdCk9Pnt0JiZsKGUpfSxjbGFzc05hbWU6bixyZWY6YX0pfSkpLFBtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVweDVxdWYwIn0pKHtuYW1lOiIxb2t1OGF4IixzdHlsZXM6ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTtvdmVyZmxvdy15OmF1dG87In0pLFRtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVweDVxdWYxIn0pKHtuYW1lOiIxZWVremExIixzdHlsZXM6IndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyJ9KSxabT0oMCxmLlpQKSgic2VjdGlvbiIse3RhcmdldDoiZXB4NXF1ZjIifSkoe25hbWU6Ijk0NTU5eiIsc3R5bGVzOiJwYWRkaW5nOjI0cHggMTZweCAzMHB4OyJ9KSxJbT0oMCxmLlpQKSgiaDIiLHt0YXJnZXQ6ImVweDVxdWYzIn0pKHtuYW1lOiIxNWtidWZoIixzdHlsZXM6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjEwcHg7In0pLGptPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVweDVxdWY0In0pKCImICsgJnttYXJnaW4tdG9wOiIsKCh7aGFzTXVsdGlwbGVUYXNrR3JvdXBzOmV9KT0+ZT8iMzBweCI6IjAiKSwiO30iKSxfbT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcHg1cXVmNSJ9KSh7bmFtZToicnR2a2k0IixzdHlsZXM6InBhZGRpbmc6MHB4IDE2cHg7bWFyZ2luLXRvcDo4cHg7In0pO3ZhciBPbT1uKDQyMTApLEFtPW4oMjcxMTIpLEJtPW4oOTk0MjEpO2NvbnN0IFJtPSh7Y2FyZExpc3RSZWY6ZSx0YXNrTGlzdDp0LG9uVGFza1Jlc29sdmU6bixvblRhc2tBY3Rpb25DbGljazppLGNoZWNrbGlzdFByb2dyZXNzSWQ6b30pPT57Y29uc3QgYT0oMCxDZS5aKSgpLHM9KDAsaC5UTCkoKSxsPSgwLGguQ0cpKCgwLFFyLmRUKShOdW1iZXIobykpKSxjPXQubWFwKCgoZSx0KT0+KHtpZDplLmlkLGJhY2tncm91bmQ6ZS5pc0NvbXBsZXRlP2EubGlnaHRHcmV5NTphLndoaXRlLGlzQ29tcGxldGU6ZS5pc0NvbXBsZXRlLGhlYWRlcjpyLmNyZWF0ZUVsZW1lbnQobG0se29yZGVyOnQrMSx0aXRsZTpyLmNyZWF0ZUVsZW1lbnQoSHIuWix7YmxvY2tzOmUudGl0bGVCbG9ja3N9KSxjb21wbGV0ZWQ6ZS5pc0NvbXBsZXRlLGV4cGFuZGVkOiExfSksY29udGVudDpyLmNyZWF0ZUVsZW1lbnQoZm0se2lkOmUuaWQsY3VycmVudENoZWNrbGlzdDpsLGNvbnRlbnQ6ci5jcmVhdGVFbGVtZW50KEhyLlose2Jsb2NrczplLmJvZHlCbG9ja3N9KSxhY3Rpb25UeXBlOmUuYWN0aW9uVHlwZSxhY3Rpb25Db250ZW50SWQ6ZS5hY3Rpb25Db250ZW50SWQsYWN0aW9uVXJsOmUuYWN0aW9uVXJsLGFjdGlvbkNvbnRlbnRVcmw6ZS5hY3Rpb25Db250ZW50VXJsLG9wZW5BY3Rpb25VcmxJbk5ld1RhYjplLm9wZW5BY3Rpb25VcmxJbk5ld1RhYixjYW5CZU1hbnVhbGx5UmVzb2x2ZWQ6ZS5jYW5CZU1hbnVhbGx5UmVzb2x2ZWQsY3VzdG9tQWN0aW9uQnV0dG9uVGV4dDplLmN1c3RvbUFjdGlvbkJ1dHRvblRleHQsaXNDb21wbGV0ZTplLmlzQ29tcGxldGUsb25UYXNrUmVzb2x2ZTpuLG9uVGFza0FjdGlvbkNsaWNrOml9KX0pKSksZD1yLnVzZUNhbGxiYWNrKChlPT5zKCgwLGhzLlVmKShudWxsPT1sP3ZvaWQgMDpsLmlkLG51bGw9PWw/dm9pZCAwOmwuY2hlY2tsaXN0UHJvZ3Jlc3NJZCxlKSkpLFtudWxsPT1sP3ZvaWQgMDpsLmlkLG51bGw9PWw/dm9pZCAwOmwuY2hlY2tsaXN0UHJvZ3Jlc3NJZCxzXSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChTbSx7cmVmOmUsY2FyZHM6YyxvbkNhcmRFeHBhbmQ6ZH0pfSx6bT0oe2NhcmRMaXN0UmVmOmUsY2hlY2tsaXN0OnQsY2hlY2tsaXN0VGFza3NMZW5ndGg6bixjb21wbGV0ZWRDaGVja2xpc3RUYXNrc0xlbmd0aDppLGVzdGltYXRlZFRpbWVSZW1haW5pbmc6byxvblRhc2tSZXNvbHZlOmEsb25UYXNrQWN0aW9uQ2xpY2s6c30pPT57aWYoIXQpcmV0dXJuIHIuY3JlYXRlRWxlbWVudChQbSxudWxsLHIuY3JlYXRlRWxlbWVudCh0cyxudWxsKSk7Y29uc3QgbD10LnRhc2tHcm91cHMubGVuZ3RoPjE7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChhbyx7aGlkZUJvcmRlcjohMH0sci5jcmVhdGVFbGVtZW50KFBtLG51bGwsci5jcmVhdGVFbGVtZW50KFRtLHsiZGF0YS10ZXN0aWQiOiJjaGVja2xpc3QtdGFzay1saXN0In0sci5jcmVhdGVFbGVtZW50KFZ1LHt0aXRsZTp0LnRpdGxlQmxvY2tzLHN1YnRpdGxlOnQuc3VidGl0bGVCbG9ja3Msc2VuZGVyOnQuc2VuZGVyfSksci5jcmVhdGVFbGVtZW50KF9tLG51bGwsci5jcmVhdGVFbGVtZW50KFhyLlose2NoZWNrbGlzdFRhc2tzOm4sY29tcGxldGVkQ2hlY2tsaXN0VGFza3M6aSxlc3RpbWF0ZWRUaW1lUmVtYWluaW5nOm99KSksci5jcmVhdGVFbGVtZW50KFptLG51bGwsdC50YXNrR3JvdXBzLm1hcCgobj0+ci5jcmVhdGVFbGVtZW50KGptLHtrZXk6bi5pZCxoYXNNdWx0aXBsZVRhc2tHcm91cHM6bH0sbCYmci5jcmVhdGVFbGVtZW50KEltLG51bGwsci5jcmVhdGVFbGVtZW50KEhyLlose2Jsb2NrczpuLnRpdGxlQmxvY2tzfSkpLHIuY3JlYXRlRWxlbWVudChSbSx7Y2FyZExpc3RSZWY6ZSx0YXNrTGlzdDpuLnRhc2tzLG9uVGFza1Jlc29sdmU6YSxvblRhc2tBY3Rpb25DbGljazpzLGNoZWNrbGlzdFByb2dyZXNzSWQ6dC5jaGVja2xpc3RQcm9ncmVzc0lkfSkpKSkpKSkpfSxObT0oKT0+e2NvbnN0IGU9KDAsSC51c2VQYXJhbXMpKCksdD0oMCxoLlRMKSgpLG49KDAsci51c2VSZWYpKG51bGwpLGk9KDAsaC5DRykoKDAsUXIuZFQpKE51bWJlcihudWxsPT1lP3ZvaWQgMDplLmNoZWNrbGlzdFByb2dyZXNzSWQpKSk7KDAsQW0uaSkoaSk7Y29uc3Qgbz0oMCx0aS51NSkoaSksYT0oMCx0aS5DVCkobykscz0oMCx0aS5zaikobyksbD0oMCxoLkNHKSgoMCxSdS5nKSgpKSxjPSgwLHIudXNlUmVmKSghMSk7KDAsci51c2VFZmZlY3QpKCgoKT0+e2xldCBlO2U9bD9vLmZpbmQoKGU9PmUuaWQ9PT1sKSk6KDAsdGkuY1QpKG8pO2NvbnN0IHQ9Yy5jdXJyZW50O2lmKGMuY3VycmVudD1Cb29sZWFuKGwpLGUpe3ZhciByO2NvbnN0IGk9Qm9vbGVhbihsKXx8dDtudWxsPT09KHI9bi5jdXJyZW50KXx8dm9pZCAwPT09cnx8ci5leHBhbmRDYXJkKGUuaWQsaSl9ZWxzZXt2YXIgYSxwO2lmKG51bGw9PT0oYT1uLmN1cnJlbnQpfHx2b2lkIDA9PT1hfHxhLmV4cGFuZENhcmQobnVsbCksbnVsbD09PShwPW4uY3VycmVudCl8fHZvaWQgMD09PXB8fHAuc2Nyb2xsVG9Ub3AoKSx0JiZpJiYwPT09cy5sZW5ndGgpe2NvbnN0e2lkOmUsY2hlY2tsaXN0UHJvZ3Jlc3NJZDp0LHNob3dDb21wbGV0aW9uU2NyZWVuOm59PWk7aWYoIWUpcmV0dXJuO2QodCxuKX19fSksW2EubGVuZ3RoLGxdKTtjb25zdCBkPShlLG4pPT57biYmc2V0VGltZW91dCgoKCk9Pnt0KCgwLGhzLld0KShlKSl9KSwxMjAwKX07cmV0dXJuIHIudXNlRWZmZWN0KCgoKT0+e2kmJnQoKDAsaHMucUEpKGkuaWQsaS5jaGVja2xpc3RQcm9ncmVzc0lkKSl9KSxbdCxpXSksci51c2VFZmZlY3QoKCgpPT57aSYmaS5zdGF0dXM9PT1laS52RS5OZXcmJiFpLmRpc21pc3NlZCYmdCgoMCxocy5vRSkoaS5jaGVja2xpc3RQcm9ncmVzc0lkKSl9KSxbdCxpXSksci5jcmVhdGVFbGVtZW50KHptLHtjYXJkTGlzdFJlZjpuLGNoZWNrbGlzdDppLGNoZWNrbGlzdFRhc2tzTGVuZ3RoOm8ubGVuZ3RoLGNvbXBsZXRlZENoZWNrbGlzdFRhc2tzTGVuZ3RoOmEubGVuZ3RoLG9uVGFza1Jlc29sdmU6ZT0+e2lmKCFpKXJldHVybjtjb25zdHtpZDpuLGNoZWNrbGlzdFByb2dyZXNzSWQ6cixzaG93Q29tcGxldGlvblNjcmVlbjpvfT1pO24mJnImJmUmJih0KCgwLGhzLk10KShuLHIsZSkpLDE9PT1zLmxlbmd0aCYmc1swXS5pZD09PWUmJmQocixvKSl9LG9uVGFza0FjdGlvbkNsaWNrOihlLG4scik9Pntzd2l0Y2goZSl7Y2FzZSBlaS5Vcy5Qcm9kdWN0VG91cjpuJiZ0KCgwLE9tLmNfKShuKSk7YnJlYWs7Y2FzZSBlaS5Vcy5BcnRpY2xlOnI/KDAsQm0uWmIpKHIpOm4mJnQoKDAsTXQuTWUpKG4se30pKX19LGVzdGltYXRlZFRpbWVSZW1haW5pbmc6cy5yZWR1Y2UoKChlLHQpPT5lK3QuZXN0aW1hdGVkVGltZSksMCl9KX07dmFyIE1tPW4oMzA4NDkpO2NvbnN0IERtPWU9PmUubmV3c0l0ZW0sTG09KDAsQS5jcmVhdGVTZWxlY3RvcikoRG0sKGU9PmUuYWN0aXZlTmV3c0l0ZW0pKSxHbT0oMCxBLmNyZWF0ZVNlbGVjdG9yKShEbSwoZT0+ZS5kZXRhaWxzRmV0Y2hpbmdTdGF0dXMpKTt2YXIgRm09big4OTg4MikscW09bigxODkxNik7ZnVuY3Rpb24gSG0oe25ld3NJdGVtOmV9KXt2YXIgdDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEZtLkwsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoT24ua1UsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoT24uZHAsbnVsbCxlLmF1dGhvciYmci5jcmVhdGVFbGVtZW50KEh1Llose2F1dGhvcjplLmF1dGhvcixzaXplOjI0fSkpLHIuY3JlYXRlRWxlbWVudChxbS5ERixudWxsLHIuY3JlYXRlRWxlbWVudChxbS5tSyxudWxsLHIuY3JlYXRlRWxlbWVudChxbS5xWSxudWxsLGAkeygwLHUuSXUpKCJzaGFyZWRfYnkiKX1gKSxyLmNyZWF0ZUVsZW1lbnQocW0udWYsbnVsbCxudWxsPT09KHQ9ZS5hdXRob3IpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmZpcnN0TmFtZSkpLHIuY3JlYXRlRWxlbWVudCgic3BhbiIseyJhcmlhLWhpZGRlbiI6ITB9LCLigKIiKSxyLmNyZWF0ZUVsZW1lbnQoImRpdiIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQocW0ucVksbnVsbCwoMCxaci5WTykobnVsbD09ZT92b2lkIDA6ZS5wdWJsaXNoZWRBdCkpKSkpKX1mdW5jdGlvbiBXbSgpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSXAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoX3AsbnVsbCksci5jcmVhdGVFbGVtZW50KE9wLG51bGwpLHIuY3JlYXRlRWxlbWVudChBcCxudWxsLHIuY3JlYXRlRWxlbWVudChScCxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoenAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoTnAsbnVsbCksci5jcmVhdGVFbGVtZW50KE1wLG51bGwpKSksci5jcmVhdGVFbGVtZW50KEJwLG51bGwsci5jcmVhdGVFbGVtZW50KERwLG51bGwpLHIuY3JlYXRlRWxlbWVudChMcCxudWxsKSxyLmNyZWF0ZUVsZW1lbnQoR3AsbnVsbCkpKX1mdW5jdGlvbiBVbSgpe3JldHVybiBVbT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LFVtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBWbSgpe3ZhciBlO2NvbnN0IHQ9KDAsaC5UTCkoKSxuPSgwLEgudXNlTG9jYXRpb24pKCkse3N0YXRlOml9PW4sbz0oMCxyLnVzZVJlZikobnVsbCksW2Esc109KDAsci51c2VTdGF0ZSkoITEpLFtsLGNdPSgwLHIudXNlU3RhdGUpKCExKSxbZCxwXT0oMCxyLnVzZVN0YXRlKSghMSksZz0oMCxILnVzZVBhcmFtcykoKSxmPSgwLGguQ0cpKEQpLHg9KDAsaC5DRykoTG0pLHY9KDAsaC5DRykoR20pO2lmKCgwLHIudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPXBhcnNlSW50KGcubmV3c0l0ZW1JZHx8IjAiKSxuPXgmJnguYmxvY2tzOzA9PT1lfHxufHx0KEduKGUpKX0pLFt0LGcubmV3c0l0ZW1JZCx4XSksUnQoe29iamVjdDpBdC5maSxwbGFjZTpBdC5fdixjb250ZXh0Om51bGw9PWk/dm9pZCAwOmkubmF2aWdhdGluZ0Zyb20sbWV0YWRhdGE6e25ld3NfaXRlbV9pZDpudWxsPT14P3ZvaWQgMDp4LmlkfSxzZW5kTWV0cmljQ29uZGl0aW9uOiEheH0pLHNvKCksIXh8fHY9PT1lci5CQy5mYWlsdXJlKXJldHVybiBudWxsO2NvbnN0IHk9dj09PWVyLkJDLnN1Y2Nlc3MmJihudWxsPT09KGU9eC5yZWFjdGlvbnNSZXBseSl8fHZvaWQgMD09PWU/dm9pZCAwOmUucmVhY3Rpb25TZXQpJiZ4LnJlYWN0aW9uc1JlcGx5LnJlYWN0aW9uU2V0Lmxlbmd0aD4wO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoTW0ueDIse2tleToicGxlYXNlIGRvbid0IGNoYW5nZSJ9LHIuY3JlYXRlRWxlbWVudChpby5rNix7aGlkZUJvcmRlcjpkJiZsfSxyLmNyZWF0ZUVsZW1lbnQobS5Ldix7aW46ZCYmbCxjbGFzc05hbWVzOiJpbnRlcmNvbS1kcm9wLXNoYWRvdy1mYWRlIix0aW1lb3V0OjE1MCx1bm1vdW50T25FeGl0OiEwfSxyLmNyZWF0ZUVsZW1lbnQoaW8uazgsbnVsbCkpLHIuY3JlYXRlRWxlbWVudChVaS5aLHtpc0luc2lkZU1vZGFsOiExLG9uU2Nyb2xsOmU9Pntjb25zdCB0PW51bGwhPXgmJnguY292ZXJJbWFnZVVybD8zNTA6MTIwLG49ZS50YXJnZXQscj1uLnNjcm9sbFRvcD4wLGk9bi5zY3JvbGxUb3A+dDtkIT09ciYmKHAociksYyhyKSksYSE9PWkmJnMoaSl9LHJlZjpvfSxyLmNyZWF0ZUVsZW1lbnQoTW0ua0EsbnVsbCx4LmNvdmVySW1hZ2VVcmwmJnIuY3JlYXRlRWxlbWVudChNbS5RTCxudWxsLHIuY3JlYXRlRWxlbWVudCgiaW1nIix7c3JjOnguY292ZXJJbWFnZVVybH0pKSxyLmNyZWF0ZUVsZW1lbnQoTW0uV2cse2lzRXhwYW5kZWQ6Zn0sci5jcmVhdGVFbGVtZW50KFduLHtuZXdzSXRlbTp4fSksci5jcmVhdGVFbGVtZW50KE1tLl83LG51bGwseC50aXRsZSksci5jcmVhdGVFbGVtZW50KEhtLHtuZXdzSXRlbTp4fSksci5jcmVhdGVFbGVtZW50KE1tLk1BLG51bGwseC5ibG9ja3M/ci5jcmVhdGVFbGVtZW50KFF0Llose2R1cmF0aW9uOjMwMH0sci5jcmVhdGVFbGVtZW50KEhyLlose2Jsb2Nrczp4LmJsb2NrcyxvbkxpbmtDbGljazplPT57dCgoMCxNdC5vVykoZSwhMSkpfX0pKTpyLmNyZWF0ZUVsZW1lbnQoV20sbnVsbCkpKSkseSYmci5jcmVhdGVFbGVtZW50KE1tLldBLG51bGwsci5jcmVhdGVFbGVtZW50KG9jLlosVW0oe30seC5yZWFjdGlvbnNSZXBseSx7cHJvbXB0OmAkeygwLHUuSXUpKCJob3dfd291bGRfeW91X3JhdGVfdGhpcyIpfWAsb25SZWFjdGlvblNlbGVjdDplPT57dChGbih4LmlkLGUpKX19KSkpKSkpfWNvbnN0ICRtPSgwLGYuWlApKCJsYWJlbCIse3RhcmdldDoiZTF0bWlxM2swIn0pKHtuYW1lOiIxZ2M3bzM2IixzdHlsZXM6ImRpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo0cHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjIxcHg7In0pLEttPSgwLGYuWlApKCJwIix7dGFyZ2V0OiJlMXRtaXEzazEifSkoImZvbnQtc2l6ZToxNHB4O2NvbG9yOiIsKDAsZi5yUykoImdyZXkiKSwiO21hcmdpbi10b3A6OHB4O2xpbmUtaGVpZ2h0OjIxcHg7Iik7dmFyIFltPXtuYW1lOiJjMG8weXYiLHN0eWxlczoiaGVpZ2h0OjEwNXB4OyJ9O2NvbnN0IEptPSgwLGYuWlApKCJpbnB1dCIse3RhcmdldDoiZTF0bWlxM2syIn0pKCJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjQwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3Jlc2l6ZTpub25lO3BhZGRpbmc6MTBweCAxMHB4IDlweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjhweDtjb2xvcjoiLCgwLGYuclMpKCJ0ZXh0YXJlYVRleHQiKSwiO2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNTsmOjpwbGFjZWhvbGRlcntjb2xvcjoiLCgwLGYuclMpKCJtNWxpZ2h0R3JleTQiKSwiO30iLCgoe2Vycm9yOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiYm9yZGVyLWNvbG9yOiIsdC5lcnJvclRleHQsIjsiKSksIiAiLCgoe2Rpc2FibGVkOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY3Vyc29yOm5vdC1hbGxvd2VkO2JvcmRlcjoxcHggc29saWQgIix0LmlucHV0Qm9yZGVyLCI7Y29sb3I6Iix0LnN1Ym1pdHRlZElucHV0VGV4dCwiO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4IDAgcmdiYSgwLDAsMCwwLjA3KTtiYWNrZ3JvdW5kOiIsdC5pbnB1dEJhY2tncm91bmQsIjstd2Via2l0LXRleHQtZmlsbC1jb2xvcjoiLHQuc3VibWl0dGVkSW5wdXRUZXh0LCI7LXdlYmtpdC1vcGFjaXR5OjE7IikpLCIgIiwoKHttdWx0aWxpbmU6ZX0pPT5lJiZZbSkpLFhtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdG1pcTNrMyJ9KSgiaW5wdXRbdHlwZT0ncmFkaW8nXXtvcGFjaXR5OjA7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MDt9bGFiZWx7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHggMjBweDttYXJnaW46MCAwIDhweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IiwoMCxmLnJTKSgidGV4dGFyZWFUZXh0IiksIjtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjVweDtjdXJzb3I6cG9pbnRlcjsiLCgoe2Vycm9yOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiYm9yZGVyLWNvbG9yOiIsdC5lcnJvclRleHQsIjsiKSksIn1pbnB1dFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLDAuMSk7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJidXR0b25CYWNrZ3JvdW5kQ29sb3IiKSwiO2NvbG9yOiIsKDAsZi5yUykoImJ1dHRvblRleHRDb2xvciIpLCI7fSIpLFFtPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxdG1pcTNrNCJ9KSgicG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjM4cHg7cGFkZGluZzowIDhweDtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjsmID4gcGF0aHtmaWxsOiIsKCh7dGhlbWU6ZX0pPT5lLmlucHV0Qm9yZGVyKSwiO30iKSxlaD0oMCxmLlpQKSgic2VsZWN0Iix7dGFyZ2V0OiJlMXRtaXEzazUifSkoIndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7IiwoKHtlcnJvcjplLHRoZW1lOnR9KT0+ZSYmKDAsZi5pdikoImJvcmRlci1jb2xvcjoiLHQuZXJyb3JUZXh0LCI7IikpKSx0aD0oMCxmLlpQKSgiaSIse3RhcmdldDoiZTF0bWlxM2s2In0pKHtuYW1lOiJxdWM5d3ciLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7dG9wOjEycHg7cmlnaHQ6N3B4O3BvaW50ZXItZXZlbnRzOm5vbmU7In0pLG5oPSgwLGYuWlApKCJwIix7dGFyZ2V0OiJlMXRtaXEzazcifSkoImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXJnaW46OHB4IDA7Zm9udC1zaXplOjE0cHg7Y29sb3I6IiwoKHt0aGVtZTplfSk9PmUuZXJyb3JUZXh0KSwiOyYgPiAqe2ZpbGw6IiwoKHt0aGVtZTplfSk9PmUuZXJyb3JUZXh0KSwiO30iKSxyaD0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZTF0bWlxM2s4In0pKCJjb2xvcjoiLCgoe3RoZW1lOmV9KT0+ZS5lcnJvclRleHQpLCI7Iik7ZnVuY3Rpb24gaWgoe2lucHV0SWQ6ZSxkZXNjcmlwdG9yOnQsb25DaGFuZ2U6bixlcnJvcjppLG11bHRpbGluZTpvLHBsYWNlaG9sZGVyOmE9KDAsdS5JdSkoInBsYWNlaG9sZGVyX3RleHRfaW5wdXRzIil9KXtjb25zdFtzLGxdPSgwLHIudXNlU3RhdGUpKCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChKbSx7YXM6bz8idGV4dGFyZWEiOiJpbnB1dCIsZXJyb3I6aSxpZDplLGF1dG9Db21wbGV0ZToib2ZmIix2YWx1ZTpzLG5hbWU6dC5pZCwiYXJpYS1sYWJlbCI6dC5uYW1lLCJhcmlhLXJlcXVpcmVkIjp0LnJlcXVpcmVkLCJhcmlhLWludmFsaWQiOiEhaSxvbkNoYW5nZTplPT57Y29uc3Qgcj1lLnRhcmdldC52YWx1ZTtsKHIpLG4odCxyKX0sbXVsdGlsaW5lOm8scGxhY2Vob2xkZXI6YX0pfXZhciBvaDtmdW5jdGlvbiBhaCgpe3JldHVybiBhaD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGFoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzaChlKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzdmciLGFoKHt3aWR0aDoxOSxoZWlnaHQ6MTYsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sZSksb2h8fChvaD1yLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNS41NTkgNi45OGMtLjM2LS4zOTItLjA0Ny0uOTguNTItLjk4aDcuMjU1Yy41NjggMCAuODguNTg4LjUyMS45OGwtMy4yOCAzLjU3NGMtLjQ0OS40OS0xLjI4Ny40OS0xLjczNiAwTDUuNTU5IDYuOTh6IixmaWxsOiIjNzM3Mzc2In0pKSl9bi5wO2Z1bmN0aW9uIGxoKHtpbnB1dElkOmUsZGVzY3JpcHRvcjp0LG9uQ2hhbmdlOm4sZXJyb3I6aSxwbGFjZWhvbGRlcjpvPSgwLHUuSXUpKCJwbGVhc2Vfc2VsZWN0Iil9KXt2YXIgYTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFFtLG51bGwsci5jcmVhdGVFbGVtZW50KGVoLHtuYW1lOnQuaWQsaWQ6ZSwiYXJpYS1yZXF1aXJlZCI6dC5yZXF1aXJlZCwiYXJpYS1sYWJlbCI6dC5uYW1lLCJhcmlhLWludmFsaWQiOiEhaSxvbkNoYW5nZTplPT57Y29uc3Qgcj1lLnRhcmdldC52YWx1ZTtuKHQscil9LGVycm9yOml9LHIuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7dmFsdWU6IiIsZGlzYWJsZWQ6ITAsc2VsZWN0ZWQ6ITB9LG8pLG51bGw9PT0oYT10Lmxpc3RPcHRpb25zKXx8dm9pZCAwPT09YT92b2lkIDA6YS5tYXAoKGU9PnIuY3JlYXRlRWxlbWVudCgib3B0aW9uIix7a2V5OmBkcm9wZG93bi0ke3QuaWR9LSR7ZS5pZH1gLHZhbHVlOmUuaWR9LGUubGFiZWwpKSkpLHIuY3JlYXRlRWxlbWVudCh0aCxudWxsLHIuY3JlYXRlRWxlbWVudChzaCxudWxsKSkpfWZ1bmN0aW9uIGNoKHtkZXNjcmlwdG9yOmUsb25DaGFuZ2U6dCxlcnJvcjpufSl7Y29uc3RbaSxvXT1yLnVzZVN0YXRlKG51bGwpLGE9bj0+e2NvbnN0IHI9ZnVuY3Rpb24oZSl7cmV0dXJuInRydWUiPT09ZX0obi50YXJnZXQudmFsdWUpO28ociksdChlLHIpfTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWG0se2Vycm9yOm59LHIuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJyYWRpbyIsaWQ6YCR7ZS5pZH0tdHJ1ZWAsbmFtZTplLmlkLHZhbHVlOiJ0cnVlIixjaGVja2VkOiEwPT09aSxvbkNoYW5nZTphfSksci5jcmVhdGVFbGVtZW50KCJsYWJlbCIse2h0bWxGb3I6YCR7ZS5pZH0tdHJ1ZWB9LCgwLHUuSXUpKCJhdHRyaWJ1dGVfY29sbGVjdG9yX3Bvc2l0aXZlIikpKSxyLmNyZWF0ZUVsZW1lbnQoWG0se2Vycm9yOm59LHIuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJyYWRpbyIsaWQ6YCR7ZS5pZH0tZmFsc2VgLG5hbWU6ZS5pZCx2YWx1ZToiZmFsc2UiLGNoZWNrZWQ6ITE9PT1pLG9uQ2hhbmdlOmF9KSxyLmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpgJHtlLmlkfS1mYWxzZWB9LCgwLHUuSXUpKCJhdHRyaWJ1dGVfY29sbGVjdG9yX25lZ2F0aXZlIikpKSl9ZnVuY3Rpb24gZGgoe2lucHV0SWQ6ZSxkZXNjcmlwdG9yOnQsb25DaGFuZ2U6bixlcnJvcjppfSl7Y29uc3RbbyxhXT0oMCxyLnVzZVN0YXRlKSgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSm0se2Vycm9yOmksaWQ6ZSxhdXRvQ29tcGxldGU6Im9mZiIsdmFsdWU6byxuYW1lOnQuaWQsImFyaWEtbGFiZWwiOnQubmFtZSwiYXJpYS1yZXF1aXJlZCI6dC5yZXF1aXJlZCwiYXJpYS1pbnZhbGlkIjohIWksdHlwZToiZGF0ZXRpbWUtbG9jYWwiLG9uQ2hhbmdlOmU9Pntjb25zdCByPWUudGFyZ2V0LnZhbHVlO2Eociksbih0LHIpfX0pfWZ1bmN0aW9uIHBoKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB1aChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9waChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe21oKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpwaChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBtaChlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gaGgoZSx0LG4pe3JldHVybiBlLm1hcCgoKGUscik9PnI9PT10P3VoKHVoKHt9LGUpLG4pOmUpKX1mdW5jdGlvbiBnaChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZmgoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/Z2goT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt4aChlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Z2goT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24geGgoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHZoKGUsdCxuLHIsaSl7Y29uc3Qgbz1lLm5hbWUuc3Vic3RyaW5nKGUubmFtZS5sYXN0SW5kZXhPZigiLiIpKTtyZXR1cm4gbj5yP1Byb21pc2UucmVqZWN0KCJmaWxlX21heF9saW1pdCIpOmkmJi0xPT09aS5pbmRleE9mKG8pP1Byb21pc2UucmVqZWN0KCJmaWxlX3R5cGVfbm90X2FsbG93ZWQiKTooMCxmci5pUCkoR3QuWlAsdCxlKX1jb25zdCB5aD0iQUREX0ZJTEVTIjtmdW5jdGlvbiBiaChlLHQsbixyLGkpe2NvbnN0IG89QXJyYXkuZnJvbShlKS5tYXAoKChlLG8pPT5mdW5jdGlvbihlLHQpe3JldHVybntjbGllbnRJZDooMCxacy5EKSgpLG5hbWU6ZS5uYW1lLHByb21pc2U6dCxkYXRhOm51bGwsc3RhdGU6ImxvYWRpbmciLGZpbGU6ZSxlcnJvcjpudWxsfX0oZSx2aChlLHQsbitvKzEscixpKSkpKTtyZXR1cm57dHlwZTp5aCxmaWxlczpvfX1jb25zdCBFaD0iVVBMT0FEX0NPTVBMRVRFIjtjb25zdCBraD0iVVBMT0FEX0ZBSUxFRCI7Y29uc3QgQ2g9IlJFTU9WRV9GSUxFIjtjb25zdCB3aD0iUkVUUllfVVBMT0FEIjtjb25zdCBTaD17bGltaXQ6MTAsdXBsb2FkczpbXX07ZnVuY3Rpb24gUGgoZSx0KXtjb25zdCBuPXQuY2xpZW50SWQmJmUudXBsb2Fkcy5maW5kSW5kZXgoKGU9PmUuY2xpZW50SWQ9PT10LmNsaWVudElkKSk7c3dpdGNoKHQudHlwZSl7Y2FzZSB5aDp7Y29uc3Qgbj1bLi4uZS51cGxvYWRzLC4uLnQuZmlsZXNdO3JldHVybiBmaChmaCh7fSxlKSx7fSx7dXBsb2FkczpufSl9Y2FzZSBDaDpyZXR1cm4gZmgoZmgoe30sZSkse30se3VwbG9hZHM6ZS51cGxvYWRzLmZpbHRlcigoZT0+ZS5jbGllbnRJZCE9PXQuY2xpZW50SWQpKX0pO2Nhc2Ugd2g6cmV0dXJuLTE9PT1uP2U6ZmgoZmgoe30sZSkse30se3VwbG9hZHM6aGgoZS51cGxvYWRzLG4se3N0YXRlOiJsb2FkaW5nIixwcm9taXNlOnQucHJvbWlzZX0pfSk7Y2FzZSBFaDpyZXR1cm4tMT09PW4/ZTpmaChmaCh7fSxlKSx7fSx7dXBsb2FkczpoaChlLnVwbG9hZHMsbix7c3RhdGU6ImNvbXBsZXRlIixkYXRhOnQuZGF0YSxlcnJvcjpudWxsfSl9KTtjYXNlIGtoOnJldHVybi0xPT09bj9lOmZoKGZoKHt9LGUpLHt9LHt1cGxvYWRzOmhoKGUudXBsb2FkcyxuLHtzdGF0ZToiZmFpbGVkIixlcnJvcjp0LmVycm9yfSl9KX1yZXR1cm4gZX1jb25zdCBUaD17bGltaXQ6MTB9O2Z1bmN0aW9uIFpoKGU9e30pe2NvbnN0IHQ9ZmgoZmgoe30sVGgpLGUpLG49KDAsaC5DRykoKGU9PmUuc2Vzc2lvbikpLFtpLG9dPSgwLHIudXNlUmVkdWNlcikoUGgsZmgoZmgoe30sU2gpLHt9LHtsaW1pdDp0LmxpbWl0fSkpLGE9aS51cGxvYWRzLHM9YS5ldmVyeSgoZT0+ImNvbXBsZXRlIj09PWUuc3RhdGUpKSxsPWEuc29tZSgoZT0+ImZhaWxlZCI9PT1lLnN0YXRlKSk7KDAsci51c2VFZmZlY3QpKCgoKT0+e2EubGVuZ3RoJiZhLmZvckVhY2goKGFzeW5jIGU9PntpZigibG9hZGluZyI9PT1lLnN0YXRlKXRyeXtjb25zdCB0PWF3YWl0IGUucHJvbWlzZTtvKGZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6RWgsY2xpZW50SWQ6ZSxkYXRhOnR9fShlLmNsaWVudElkLHQpKX1jYXRjaCh0KXtvKGZ1bmN0aW9uKGUsdCl7cmV0dXJue3R5cGU6a2gsY2xpZW50SWQ6ZSxlcnJvcjp0fX0oZS5jbGllbnRJZCx0KSl9fSkpfSksW2FdKTtyZXR1cm57dXBsb2FkRmlsZXM6ZT0+e24mJm8oYmgoZSxuLGEubGVuZ3RoLHQubGltaXQsdC5hY2NlcHQpKX0scmVtb3ZlRmlsZTplPT5vKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOkNoLGNsaWVudElkOmV9fShlKSkscmV0cnk6ZT0+e2NvbnN0IHI9YS5maW5kKCh0PT50LmNsaWVudElkPT09ZSkpO2lmKCFyfHwhbilyZXR1cm47Y29uc3QgaT1hLmZpbHRlcigoZT0+ImZhaWxlZCIhPT1lLnN0YXRlKSk7byhmdW5jdGlvbihlLHQsbixyLGksbyl7Y29uc3QgYT12aCh0LG4scixpLG8pO3JldHVybnt0eXBlOndoLGNsaWVudElkOmUscHJvbWlzZTphfX0oZSxyLmZpbGUsbixpLmxlbmd0aCx0LmxpbWl0LHQuYWNjZXB0KSl9LHVwbG9hZHM6YSxhbGxDb21wbGV0ZTpzLGFueUZhaWxlZDpsLGNhbkFkZEZpbGVzOmEubGVuZ3RoPGkubGltaXR9fWNvbnN0IEloPSgwLGYuWlApKCJ1bCIse3RhcmdldDoiZTEwMnc0eWEwIn0pKHtuYW1lOiI5ZndqaDIiLHN0eWxlczoibWFyZ2luLXRvcDo4cHg7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTsifSksamg9KDAsZi5aUCkoImJ1dHRvbiIse3RhcmdldDoiZTEwMnc0eWExIn0pKCJoZWlnaHQ6MzZweDttYXJnaW4tYm90dG9tOjhweDt3aWR0aDpmaXQtY29udGVudDttYXgtd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDgpO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjoiLCgoe3RoZW1lOmV9KT0+ZS5ibGFjayksIjsiLElvLkouY2xhc3NOYW1lLCJ7c3Zne3BhdGh7ZmlsbDoiLCgoe3RoZW1lOmV9KT0+ZS5ibGFjayksIjt9Y2lyY2xle3N0cm9rZToiLCgoe3RoZW1lOmV9KT0+ZS5ibGFjayksIjt9fX0iKSxfaD0oMCxmLlpQKShqaCx7dGFyZ2V0OiJlMTAydzR5YTIifSkoImN1cnNvcjpwb2ludGVyOyY6aG92ZXJ7c3Zne3BhdGh7ZmlsbDoiLCgoe3RoZW1lOmV9KT0+ZS5pc1ByaW1hcnlDb2xvckxpZ2h0P2UuYmxhY2s6ZS5wcmltYXJ5Q29sb3IpLCI7fWNpcmNsZXtzdHJva2U6IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodD9lLmJsYWNrOmUucHJpbWFyeUNvbG9yKSwiO319YmFja2dyb3VuZDoiLCgoe3RoZW1lOmV9KT0+ZS5saXN0SXRlbUhvdmVyKSwiO2NvbG9yOiIsKCh7dGhlbWU6ZX0pPT5lLmlzUHJpbWFyeUNvbG9yTGlnaHQ/ZS5ibGFjazplLnByaW1hcnlDb2xvciksIjtib3JkZXI6IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodD8iMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTsiOiIxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA4KSIpLCI7fSIpO3ZhciBPaD17bmFtZToicGh5dW9xIixzdHlsZXM6Im1heC13aWR0aDpjYWxjKDEwMCUgLSA0MnB4KTsifTtjb25zdCBBaD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTAydzR5YTMifSkoImRpc3BsYXk6ZmxleDsiLCgoe2NhblJldHJ5OmV9KT0+ZSYmT2gpKSxCaD0oMCxmLlpQKShqaCx7dGFyZ2V0OiJlMTAydzR5YTQifSkoIiY6aG92ZXJ7Y3Vyc29yOmRlZmF1bHQ7fSIsKCh7c3RhdGU6ZSx0aGVtZTp0fSk9PiJmYWlsZWQiPT09ZSYmKDAsZi5pdikoImJvcmRlcjoxcHggc29saWQgIix0LmVycm9yVGV4dCwiO2NvbG9yOiIsdC5lcnJvclRleHQsIjsiLElvLkouY2xhc3NOYW1lLCIsJntzdmcgcGF0aHtmaWxsOiIsdC5lcnJvclRleHQsIjt9c3ZnIGNpcmNsZXtzdHJva2U6Iix0LmVycm9yVGV4dCwiO319IixPby5jbGFzc05hbWUsIntzdmcgcGF0aHtzdHJva2U6Iix0LmVycm9yVGV4dCwiO319IikpKSxSaD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTAydzR5YTUifSkoIm1hcmdpbi1sZWZ0OjZweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjQwMDtmb250LWZhbWlseToiLCgwLGYuclMpKCJmb250U2Fuc1NlcmlmIiksIjt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Y29sb3I6aW5oZXJpdDsiKTtmdW5jdGlvbiB6aCh7ZmlsZXM6ZX0pe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSWgsbnVsbCxlLm1hcCgoZT0+ci5jcmVhdGVFbGVtZW50KF9oLHtrZXk6ZS5pZCxvbkNsaWNrOigpPT57cmV0dXJuIHQ9ZS51cmwsdm9pZCB3aW5kb3cub3Blbih0KTt2YXIgdH19LHIuY3JlYXRlRWxlbWVudChOaCx7bWVkaWFUeXBlOmUubWVkaWFUeXBlfSksci5jcmVhdGVFbGVtZW50KFJoLHt0aXRsZTplLm5hbWV9LGUubmFtZSkpKSkpfWZ1bmN0aW9uIE5oKHttZWRpYVR5cGU6ZX0pe2xldCB0PSJBdHRhY2htZW50Ijtzd2l0Y2goZSl7Y2FzZSJpbWFnZSI6dD0iUGhvdG8iO2JyZWFrO2Nhc2UidmlkZW8iOnQ9IlZpZGVvIn1yZXR1cm4gci5jcmVhdGVFbGVtZW50KGxlLlose3R5cGU6dCxzaXplOjE2fSl9Y29uc3QgTWg9WyJvbkNsaWNrIl07ZnVuY3Rpb24gRGgoKXtyZXR1cm4gRGg9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxEaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTGgoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHwoaVtuXT1lW25dKTtyZXR1cm4gaX0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfWZ1bmN0aW9uIEdoKGUpe2xldHtvbkNsaWNrOnR9PWUsbj1MaChlLE1oKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KERvLERoKHt2YXJpYW50OiJzZWNvbmRhcnkiLGJvcmRlclJhZGl1czo4LGljb25UeXBlOiJSZXRyeSIscHJldmVudERlZmF1bHQ6ITAsb25DbGljazp0LCJhcmlhLWxhYmVsIjoiUmV0cnkifSxuKSl9Y29uc3QgRmg9KDAsZi5aUCkoR2gse3RhcmdldDoiZXAzeWdrbDAifSkoIm1hcmdpbi1sZWZ0OjEwcHg7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweDsiLElvLkouY2xhc3NOYW1lLCJ7c3Zne3BhdGh7ZmlsbDpub25lO3N0cm9rZToiLCgoe3RoZW1lOmV9KT0+ZS5tNURhcmtHcmV5MSksIjt9fX0iKSxxaD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlc3ptY3gxMCJ9KSh7bmFtZToiMXA1MXh2MyIsc3R5bGVzOiJwYWRkaW5nOjAgM3B4IDAgMnB4OyJ9KSxIaD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlc3ptY3gxMSJ9KSgibWFyZ2luLWxlZnQ6OHB4OyIsT28uY2xhc3NOYW1lLCJ7ZGlzcGxheToiLChlPT5lLnNob3dTcGlubmVyPyJub25lIjoiZmxleCIpLCI7fSIscWguY2xhc3NOYW1lLCJ7ZGlzcGxheToiLChlPT5lLnNob3dTcGlubmVyPyJibG9jayI6Im5vbmUiKSwiO30mOmhvdmVyeyIsT28uY2xhc3NOYW1lLCJ7ZGlzcGxheTpmbGV4O30iLHFoLmNsYXNzTmFtZSwie2Rpc3BsYXk6bm9uZTt9fSIpO2Z1bmN0aW9uIFdoKHtmaWxlOmUsb25DbGlja1JlbW92ZTp0fSl7Y29uc3Qgbj0ibG9hZGluZyI9PT1lLnN0YXRlO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSGgse3Nob3dTcGlubmVyOm59LHIuY3JlYXRlRWxlbWVudChxaCxudWxsLHIuY3JlYXRlRWxlbWVudChZdC5aLHtpbmxpbmU6ITAsY29sb3I6InByaW1hcnkiLHNpemU6InNtYWxsIn0pKSxyLmNyZWF0ZUVsZW1lbnQoRG8se3BhZGRpbmc6NCx2YXJpYW50OiJzdWJ0bGUiLHByZXZlbnREZWZhdWx0OiEwLG9uQ2xpY2s6bj0+e3QoZS5jbGllbnRJZCl9LGljb25UeXBlOiJDbG9zZU01Iixib3JkZXJSYWRpdXM6OH0pKX1mdW5jdGlvbiBVaCh7ZmlsZTplLHNob3dSZXRyeTp0LG9uQ2xpY2tSZW1vdmU6bixvbkNsaWNrUmV0cnk6aX0pe2NvbnN0IG89dCYmImZhaWxlZCI9PT1lLnN0YXRlO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoQWgse2NhblJldHJ5Om99LHIuY3JlYXRlRWxlbWVudChCaCx7YXM6InNwYW4iLHN0YXRlOmUuc3RhdGV9LCJmYWlsZWQiPT09ZS5zdGF0ZT9yLmNyZWF0ZUVsZW1lbnQobGUuWix7dHlwZToiQWxlcnQifSk6ci5jcmVhdGVFbGVtZW50KE5oLHttZWRpYVR5cGU6VmgoZS5uYW1lKX0pLHIuY3JlYXRlRWxlbWVudChSaCx7dGl0bGU6ZS5uYW1lfSxlLm5hbWUpLHIuY3JlYXRlRWxlbWVudChXaCx7ZmlsZTplLG9uQ2xpY2tSZW1vdmU6bn0pKSxvJiZyLmNyZWF0ZUVsZW1lbnQoRmgse29uQ2xpY2s6KCk9PmkoZS5jbGllbnRJZCl9KSl9ZnVuY3Rpb24gVmgoZSl7Y29uc3QgdD1lLnN1YnN0cmluZyhlLmxhc3RJbmRleE9mKCIuIikpO3JldHVybi8oZ2lmfGpwZ3xqcGVnfHRpZmZ8cG5nKSQvaS50ZXN0KHQpPyJpbWFnZSI6LyhtcDR8bW92fGF2aXx3bXZ8bWt2KSQvaS50ZXN0KHQpPyJ2aWRlbyI6ImF0dGFjaG1lbnQifWNvbnN0ICRoPSgwLHIubWVtbykoVWgpO2Z1bmN0aW9uIEtoKHtmaWxlczplLGxpbWl0OnQ9MTAsb25DbGlja1JlbW92ZTpuLG9uQ2xpY2tSZXRyeTppfSl7Y29uc3Qgbz1lLmZpbHRlcigoZT0+ImZhaWxlZCIhPT1lLnN0YXRlKSkubGVuZ3RoPHQ7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChJaCxudWxsLGUubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQoJGgse2tleTplLmNsaWVudElkLGZpbGU6ZSxzaG93UmV0cnk6byxvbkNsaWNrUmVtb3ZlOm4sb25DbGlja1JldHJ5Oml9KSkpKX1jb25zdCBZaD0oMCxmLlpQKSgibGFiZWwiLHt0YXJnZXQ6ImVuMmU1Z28wIn0pKHtuYW1lOiIzbjV0OG4iLHN0eWxlczoiZGlzcGxheTpibG9jazt3aWR0aDpmaXQtY29udGVudDsifSksSmg9KGUsdD0xMCk9Pntzd2l0Y2goZSl7Y2FzZSJmaWxlX3NpemUiOnJldHVybmAkeygwLHUuSXUpKCJ1cGxvYWRfZmFpbGVkIil9LiAkeygwLHUuSXUpKCJ1cGxvYWRfbWF4X2ZpbGVzX3NpemUiLHtsaW1pdDpgJHtQYy5uUn1gfSl9YDtjYXNlImZpbGVfbWF4X2xpbWl0IjpyZXR1cm5gJHsoMCx1Lkl1KSgidXBsb2FkX2ZhaWxlZCIpfS4gJHsoMCx1Lkl1KSgidXBsb2FkX21heF9maWxlc19hbGxvd2VkIix7bGltaXQ6YCR7dH1gfSl9YDtkZWZhdWx0OnJldHVybigwLHUuSXUpKCJ1cGxvYWRfZmFpbGVkIil9fTtmdW5jdGlvbiBYaCh7aW5wdXRJZDplLGRlc2NyaXB0b3I6dCxvbkNoYW5nZTpuLHNldFRpY2tldENyZWF0aW9uRW5hYmxlZDppLGVycm9yOm99KXt2YXIgYSxzO2NvbnN0W2wsY109KDAsci51c2VTdGF0ZSkoKSx7dXBsb2FkRmlsZXM6ZCxyZW1vdmVGaWxlOnAsdXBsb2FkczptLGFsbENvbXBsZXRlOmgsYW55RmFpbGVkOmcscmV0cnk6ZixjYW5BZGRGaWxlczp4fT1aaCh7bGltaXQ6dC5saW1pdCxhY2NlcHQ6bnVsbD09PShhPXQub3B0aW9ucyl8fHZvaWQgMD09PWE/dm9pZCAwOmEuYWNjZXB0fSk7KDAsci51c2VFZmZlY3QpKCgoKT0+e2MoaD9tLm1hcCgoZT0+e3ZhciB0O3JldHVybihudWxsPT09KHQ9ZS5kYXRhKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pZCl8fC0xfSkpOltdKSxpKDA9PT1tLmxlbmd0aHx8aCl9KSxbaCxtLGldKSwoMCxyLnVzZUVmZmVjdCkoKCgpPT57bih0LGx8fFtdKX0pLFtsXSk7Y29uc3Qgdj0ibXVsdGlwbGUiPT09dC5pZGVudGlmaWVyLHk9bS5maW5kKChlPT5lLmVycm9yKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHYmJiFnJiZyLmNyZWF0ZUVsZW1lbnQoS20sbnVsbCwoMCx1Lkl1KSgiZmlsZV9tYXhfbGltaXQiLHtsaW1pdDpgJHt0LmxpbWl0fWB9KSksZyYmci5jcmVhdGVFbGVtZW50KG5oLG51bGwsSmgobnVsbD09eT92b2lkIDA6eS5lcnJvcix0LmxpbWl0KSksci5jcmVhdGVFbGVtZW50KEtoLHtmaWxlczptLGxpbWl0OnQubGltaXQsb25DbGlja1JlbW92ZTpwLG9uQ2xpY2tSZXRyeTpmfSksci5jcmVhdGVFbGVtZW50KFloLHtodG1sRm9yOmV9LHIuY3JlYXRlRWxlbWVudChKbSx7aWQ6ZSxhczoiaW5wdXQiLHR5cGU6ImZpbGUiLGFjY2VwdDoobnVsbD09PShzPXQub3B0aW9ucyl8fHZvaWQgMD09PXM/dm9pZCAwOnMuYWNjZXB0KXx8IioiLG11bHRpcGxlOnYsZXJyb3I6byxhdXRvQ29tcGxldGU6Im9mZiIsbmFtZTp0LmlkLCJhcmlhLWxhYmVsIjp0Lm5hbWUsImFyaWEtcmVxdWlyZWQiOnQucmVxdWlyZWQsImFyaWEtaW52YWxpZCI6ISFvLG9uQ2hhbmdlOmU9Pntjb25zdCB0PWUudGFyZ2V0LG49dC5maWxlcztudWxsIT1uJiZkKG4pLHQudmFsdWU9IiJ9LHN0eWxlOntkaXNwbGF5OiJub25lIn19KSx4JiZyLmNyZWF0ZUVsZW1lbnQoRG8se2FzOiJkaXYiLGljb25UeXBlOiJOZXciLGljb25NYXJnaW46OCx2YXJpYW50OiJzZWNvbmRhcnkiLGJvcmRlclJhZGl1czoiOHB4IixwYWRkaW5nOiI2cHggMTJweCJ9LHY/KDAsdS5JdSkoInRpY2tldHNfYWRkX2ZpbGVzIik6KDAsdS5JdSkoInRpY2tldHNfYWRkX2ZpbGUiKSkpKX12YXIgUWg9big2ODcxOSk7ZnVuY3Rpb24gZWcoKXtyZXR1cm4gZWc9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxlZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdGcoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIG5nKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiByZyhlLHQpe3ZhciBuLGk7Y29uc3Qgbz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj90ZyhPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe25nKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp0ZyhPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX0oe2lucHV0SWQ6ZX0sdCkse2Rlc2NyaXB0b3I6YX09dDtzd2l0Y2goYS50eXBlKXtjYXNlImxpc3QiOnJldHVybiByLmNyZWF0ZUVsZW1lbnQobGgsbyk7Y2FzZSJib29sZWFuIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KGNoLG8pO2Nhc2UiZGF0ZXRpbWUiOnJldHVybiByLmNyZWF0ZUVsZW1lbnQoZGgsbyk7Y2FzZSJzdHJpbmciOnJldHVybiByLmNyZWF0ZUVsZW1lbnQoaWgsZWcoe30sbyx7bXVsdGlsaW5lOiEobnVsbD09PShuPWEub3B0aW9ucyl8fHZvaWQgMD09PW58fCFuLm11bHRpbGluZSl9KSk7Y2FzZSJpbnRlZ2VyIjpjYXNlImRlY2ltYWwiOmNhc2UiZmxvYXQiOnJldHVybiByLmNyZWF0ZUVsZW1lbnQoaWgsZWcoe30sbyx7bXVsdGlsaW5lOiEobnVsbD09PShpPWEub3B0aW9ucyl8fHZvaWQgMD09PWl8fCFpLm11bHRpbGluZSkscGxhY2Vob2xkZXI6KDAsdS5JdSkoInBsYWNlaG9sZGVyX251bWVyaWNhbF9pbnB1dHMiKX0pKTtjYXNlImZpbGVzIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KFhoLG8pO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGlnKGUpe2NvbnN0e2Rlc2NyaXB0b3I6dCxlcnJvcjpufT1lLGk9YGF0dHJpYnV0ZS0ke3QudHlwZX0tJHt0LmlkfWA7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHIuY3JlYXRlRWxlbWVudCgkbSx7aHRtbEZvcjppfSx0Lm5hbWUsdC5yZXF1aXJlZCYmci5jcmVhdGVFbGVtZW50KHJoLG51bGwsIioiKSksbiYmci5jcmVhdGVFbGVtZW50KG5oLG51bGwsci5jcmVhdGVFbGVtZW50KFFoLlosbnVsbCksci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLG4pKSxyZyhpLGUpKX12YXIgb2c9big3OTA3Nik7Y29uc3QgYWc9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFpNHQ2ZDYwIn0pKHtuYW1lOiJwb291cDciLHN0eWxlczoicGFkZGluZzoyNHB4O292ZXJmbG93OnNjcm9sbDsmLCYgPiBmb3Jte2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30ifSksc2c9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFpNHQ2ZDYxIn0pKHtuYW1lOiJ5ZDhzYTIiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTZweDsifSksbGc9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFpNHQ2ZDYyIn0pKCJmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IiwoMCxmLnJTKSgicmVkIiksIjsiKSxjZz0oMCxmLlpQKShvZy5PLHt0YXJnZXQ6ImUxaTR0NmQ2MyJ9KSgiZm9udC1zaXplOjE0cHg7bWFyZ2luLWJvdHRvbTowO2ZvbnQtd2VpZ2h0OjYwMDtjdXJzb3I6cG9pbnRlcjsiLCgoe2Rpc2FibGVkOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6Iix0LmFwcENvbG9yU2VtaVRyYW5zcGFyZW50MzAsIjsqe2N1cnNvcjpub3QtYWxsb3dlZDt9IikpLCIgIiwoKHt0aGVtZTplLHN0eWxlVmFyaWFudDp0fSk9PiJwcmltYXJ5Ij09PXQmJigwLGYuaXYpKCJjb2xvcjoiLGUuaXNQcmltYXJ5Q29sb3JMaWdodD8iIzAwMCI6IiNGRkYiLCI7c3Zne21hcmdpbi1sZWZ0OjhweDtwYXRoe2ZpbGw6IixlLmlzUHJpbWFyeUNvbG9yTGlnaHQ/IiMwMDAiOiIjRkZGIiwiO319IikpKSxkZz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWk0dDZkNjQifSkoe25hbWU6ImxubHdjMSIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLXNlbGY6Y2VudGVyO21hcmdpbjoyMHB4IDAgMjBweCAwOyJ9KSxwZz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWk0dDZkNjUifSkoe25hbWU6ImdtdXdiZiIsc3R5bGVzOiJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7In0pO3ZhciB1Zz1uKDUzMjA5KSxtZz1uKDk3MzY2KSxoZz1uKDgzNTYyKTtjb25zdCBnZz0iX19pbnRlcm5hbC1ub3RpZmljYXRpb25zLXByb21wdCI7ZnVuY3Rpb24gZmcoe2luaXRpYWxFbWFpbDplLGVtYWlsOnQsb25DaGFuZ2U6bixlcnJvcjppfSl7Y29uc3Qgbz0hIWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHIuY3JlYXRlRWxlbWVudCgkbSx7aHRtbEZvcjpnZ30sKDAsdS5JdSkoImdldF9ub3RpZmllZF9ieV9lbWFpbCIpLHIuY3JlYXRlRWxlbWVudChyaCxudWxsLCIqIikpLGkmJnIuY3JlYXRlRWxlbWVudChuaCxudWxsLGkpLHIuY3JlYXRlRWxlbWVudChKbSx7aWQ6Z2csdHlwZToiZW1haWwiLG5hbWU6Z2csYXV0b0NvbXBsZXRlOiJvZmYiLHBsYWNlaG9sZGVyOmhnLnQsdmFsdWU6ZXx8dCxlcnJvcjppLGRpc2FibGVkOm8sb25DaGFuZ2U6ZT0+e24oZS50YXJnZXQudmFsdWUpfSwiYXJpYS1sYWJlbCI6KDAsdS5JdSkoImdldF9ub3RpZmllZF9ieV9lbWFpbCIpLCJhcmlhLXJlcXVpcmVkIjohMCwiYXJpYS1pbnZhbGlkIjohIWl9KSxyLmNyZWF0ZUVsZW1lbnQoS20sbnVsbCwoMCx1Lkl1KSgidGlja2V0c19lbWFpbF9jb3B5IikpKX1mdW5jdGlvbiB4ZyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gdmcoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/eGcoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt5ZyhlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6eGcoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24geWcoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGJnKGUsdCxuKXtjb25zdCByPWZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcCgoZT0+e3N3aXRjaChlLnR5cGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD01ZTMsbj17aWQ6ZS5pZCxydWxlOnVnLlpfKCkubWF4KHQsKDAsdS5JdSkoInN1cnZleXNfcmVzcG9uc2VfdG9vX2xvbmciLHtjaGFyYWN0ZXJfY291bnQ6YCR7dH1gfSkpLnRyaW0oKX07ZS5yZXF1aXJlZCYmKG4ucnVsZT1uLnJ1bGUucmVxdWlyZWQoKDAsdS5JdSkoInN1cnZleXNfcmVxdWlyZWRfcmVzcG9uc2UiKSkpO3JldHVybiBufShlKTtjYXNlImludGVnZXIiOnJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PXtpZDplLmlkLHJ1bGU6dWcuUngoKS50eXBlRXJyb3IoKDAsdS5JdSkoIm51bWJlcl9pc19pbmNvcnJlY3QiKSkuaW50ZWdlcigoMCx1Lkl1KSgibnVtYmVyX2lzX2luY29ycmVjdCIpKX07ZS5yZXF1aXJlZCYmKHQucnVsZT10LnJ1bGUucmVxdWlyZWQoKDAsdS5JdSkoInN1cnZleXNfcmVxdWlyZWRfcmVzcG9uc2UiKSkpO3JldHVybiB0fShlKTtjYXNlImRlY2ltYWwiOmNhc2UiZmxvYXQiOnJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PXtpZDplLmlkLHJ1bGU6dWcuUngoKS50eXBlRXJyb3IoKDAsdS5JdSkoIm51bWJlcl9pc19pbmNvcnJlY3QiKSl9O2UucmVxdWlyZWQmJih0LnJ1bGU9dC5ydWxlLnJlcXVpcmVkKCgwLHUuSXUpKCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIikpKTtyZXR1cm4gdH0oZSk7Y2FzZSJib29sZWFuIjpyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD17aWQ6ZS5pZCxydWxlOnVnLk83KCl9O2UucmVxdWlyZWQmJih0LnJ1bGU9dC5ydWxlLnJlcXVpcmVkKCgwLHUuSXUpKCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIikpKTtyZXR1cm4gdH0oZSk7Y2FzZSJsaXN0IjpyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD17aWQ6ZS5pZCxydWxlOnVnLlpfKCl9O2UucmVxdWlyZWQmJih0LnJ1bGU9dC5ydWxlLnJlcXVpcmVkKCgwLHUuSXUpKCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIikpKTtyZXR1cm4gdH0oZSk7Y2FzZSJkYXRldGltZSI6cmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9e2lkOmUuaWQscnVsZTp1Zy5oVCgpLnR5cGVFcnJvcigoMCx1Lkl1KSgic3RyaW5nX2lzX2luY29ycmVjdCIpKX07ZS5yZXF1aXJlZCYmKHQucnVsZT10LnJ1bGUucmVxdWlyZWQoKDAsdS5JdSkoInN1cnZleXNfcmVxdWlyZWRfcmVzcG9uc2UiKSkpO3JldHVybiB0fShlKTtjYXNlImZpbGVzIjpyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD17aWQ6ZS5pZCxydWxlOnVnLklYKCkub2YodWcuUngoKSl9O2UucmVxdWlyZWQmJih0LnJ1bGU9dC5ydWxlLnJlcXVpcmVkKCgwLHUuSXUpKCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIikpKTtyZXR1cm4gdH0oZSk7ZGVmYXVsdDpyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD17aWQ6ZS5pZCxydWxlOnVnLlpfKCl9O2UucmVxdWlyZWQmJih0LnJ1bGU9dC5ydWxlLnJlcXVpcmVkKCgwLHUuSXUpKCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIikpKTtyZXR1cm4gdH0oZSl9fSkpLnJlZHVjZSgoKGUsdCk9PnZnKHZnKHt9LGUpLHt9LHtbdC5pZF06dC5ydWxlfSkpLHt9KX0oZSksaT11Zy5aXygpLnRlc3QoImVtYWlsIiwoMCx1Lkl1KSgidGhhdF9lbWFpbF9hZGRyZXNzX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0IiksbWcudik7cmV0dXJuIHVnLlJ5KHZnKHZnKHt9LHIpLHt9LHtbZ2ddOml9KSkudmFsaWRhdGVTeW5jKHZnKHZnKHt9LHQpLHt9LHtbZ2ddOm59KSx7YWJvcnRFYXJseTohMX0pfWNvbnN0IEVnPVsiY2hpbGRyZW4iXTtmdW5jdGlvbiBrZyhlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLGk9e30sbz1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8by5sZW5ndGg7cisrKW49b1tyXSx0LmluZGV4T2Yobik+PTB8fChpW25dPWVbbl0pO3JldHVybiBpfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKGlbbl09ZVtuXSl9cmV0dXJuIGl9Y29uc3QgQ2c9ZT0+e2xldHtjaGlsZHJlbjp0fT1lLG49a2coZSxFZyk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZm9ybSIse29uS2V5RG93bjplPT57Y29uc3QgdD0iVEVYVEFSRUEiPT09ZS50YXJnZXQubm9kZU5hbWU7aWYoIkVudGVyIj09PWUua2V5JiYhdCl7aWYoKDAsdWkuZUUpKCkmJmUubWV0YUtleXx8ZS5jdHJsS2V5KXJldHVybjtlLnByZXZlbnREZWZhdWx0KCl9fSxvblN1Ym1pdDpuLm9uU3VibWl0fSx0KX07ZnVuY3Rpb24gd2coZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIFNnKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP3dnKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7UGcoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOndnKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIFBnKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBUZyh7ZW1haWw6ZSxkZXNjcmlwdG9yczp0PVtdLGlzTG9hZGluZzpuLGhhc0ZhaWxlZDppLG9uU3VibWl0Om99KXtjb25zdCBhPSgwLEgudXNlTmF2aWdhdGUpKCksW3MsbF09KDAsci51c2VTdGF0ZSkoZSksW2MsZF09KDAsci51c2VTdGF0ZSkoe30pLFtwLG1dPSgwLHIudXNlU3RhdGUpKHt9KSxbaCxnXT0oMCxyLnVzZVN0YXRlKSghMCk7ZnVuY3Rpb24gZihlLHQpe3N3aXRjaChlLnR5cGUpe2Nhc2UiZGF0ZXRpbWUiOnJldHVybiBuZXcgRGF0ZSh0KS50b0lTT1N0cmluZygpO2Nhc2UiaW50ZWdlciI6cmV0dXJuIHBhcnNlSW50KHQpO2Nhc2UiZGVjaW1hbCI6Y2FzZSJmbG9hdCI6cmV0dXJuIHBhcnNlRmxvYXQodCl9cmV0dXJuIHR9Y29uc3QgeD0oZSx0KT0+e2QoKG49PlNnKFNnKHt9LG4pLHt9LHtbZS5pZF06dH0pKSl9O3JldHVybiByLmNyZWF0ZUVsZW1lbnQoYWcsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoQ2cse29uU3VibWl0OmU9Pnt2YXIgcjtpZihlLnByZXZlbnREZWZhdWx0KCksIW4pdHJ5e2JnKHQsYyxzKSxtKHt9KSxvKChyPWMsT2JqZWN0LmVudHJpZXMocikubWFwKCgoW2Usbl0pPT57Y29uc3Qgcj10LmZpbmQoKHQ9PnQuaWQ9PT1lKSk7aWYoIXIpdGhyb3cibWlzc2luZyBkZXNjcmlwdG9yIjtyZXR1cm57ZGVzY3JpcHRvcl9pZDpwYXJzZUludChlKSx2YWx1ZTpmKHIsbil9fSkpKSxzKX1jYXRjaChlKXttKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybihudWxsPT1lfHxudWxsPT09KHQ9ZS5pbm5lcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucmVkdWNlKCgoZSx0KT0+dmcodmcoe30sZSkse30se1t0LnBhdGhdOnQubWVzc2FnZX0pKSx7fSkpfHx7fX0oZSkpfX19LHIuY3JlYXRlRWxlbWVudChzZyxudWxsLGk/ci5jcmVhdGVFbGVtZW50KGxnLHtyb2xlOiJhbGVydCJ9LCgwLHUuSXUpKCJzb21ldGhpbmdfaXNfd3JvbmciKSk6bnVsbCxyLmNyZWF0ZUVsZW1lbnQoZmcse2luaXRpYWxFbWFpbDplLGVtYWlsOnMsZXJyb3I6cFtnZ10sb25DaGFuZ2U6bH0pLHQubWFwKChlPT5yLmNyZWF0ZUVsZW1lbnQoaWcse2Vycm9yOnBbZS5pZF0sa2V5OmUuaWQsZGVzY3JpcHRvcjplLG9uQ2hhbmdlOngsc2V0VGlja2V0Q3JlYXRpb25FbmFibGVkOmd9KSkpKSxyLmNyZWF0ZUVsZW1lbnQoZGcsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoY2cse3N0eWxlVmFyaWFudDoicHJpbWFyeSIsZGlzYWJsZWQ6bnx8IWgsImFyaWEtbGFiZWwiOigwLHUuSXUpKCJ0aWNrZXRzX2NyZWF0ZV90aWNrZXQiKX0sbj9yLmNyZWF0ZUVsZW1lbnQoWXQuWix7c2l6ZToic21hbGwiLGNvbG9yOiJibGFjayJ9KTpyLmNyZWF0ZUVsZW1lbnQocGcsbnVsbCwoMCx1Lkl1KSgidGlja2V0c19jcmVhdGVfdGlja2V0Iiksci5jcmVhdGVFbGVtZW50KFZzLlosbnVsbCkpKSxyLmNyZWF0ZUVsZW1lbnQoY2cse29uQ2xpY2s6ZT0+e2UucHJldmVudERlZmF1bHQoKSxhKC0xKX19LCgwLHUuSXUpKCJjYW5jZWwiKSkpKSl9dmFyIFpnPW4oOTAzNzEpLElnPW4oNDE0MzEpLGpnPW4oNDE2MDkpLF9nPW4ubihqZyk7Y29uc3QgT2c9KHtjaGlsZHJlbjplLHNlbGVjdG9yOnQsZmFsbGJhY2s6bixhY3Rpb246aX0pPT57Y29uc3Qgbz0oMCxILnVzZU5hdmlnYXRlKSgpLGE9KDAsaC5UTCkoKSxzPSgwLGguQ0cpKHQpLGw9X2coKShzKSxjPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+YShpKEd0LlpQKSkpLFthLGldKSxkPSgwLHIudXNlQ2FsbGJhY2spKChhc3luYygpPT57YXdhaXQgYygpfHxvKC0xKX0pLFtjLG9dKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57bCYmZCgpfSksW3MsZCxsXSksci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCxsP246ZSl9O2Z1bmN0aW9uIEFnKCl7Y29uc3RbZSx0XT0oMCxyLnVzZVN0YXRlKSghMSksW24saV09KDAsci51c2VTdGF0ZSkoITEpLG89KDAsSC51c2VOYXZpZ2F0ZSkoKSxhPSgwLGguVEwpKCkscz0oMCxILnVzZUxvY2F0aW9uKSgpLGw9KDAsSC51c2VQYXJhbXMpKCksYz1wYXJzZUludChsLnRpY2tldFR5cGVJZHx8IjAiKSxbZF09KDAsSC51c2VTZWFyY2hQYXJhbXMpKCkscD0oMCxoLkNHKShXYyksdT0oMCxoLkNHKShyYShjKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChPZyx7c2VsZWN0b3I6bmEsYWN0aW9uOlpnLmlzLGZhbGxiYWNrOnIuY3JlYXRlRWxlbWVudChZdC5aLG51bGwpfSxyLmNyZWF0ZUVsZW1lbnQoVGcse2VtYWlsOnAsZGVzY3JpcHRvcnM6bnVsbD09dT92b2lkIDA6dS5hdHRyaWJ1dGVzLGlzTG9hZGluZzplLGhhc0ZhaWxlZDpuLG9uU3VibWl0OmFzeW5jKGUsbik9Pnt0cnl7dCghMCksaSghMSk7Y29uc3QgbD1HdC5aUDthd2FpdCBhKCgwLElnLl9xKShsLG4pKTtjb25zdCBwPWQuZ2V0KCJjb252ZXJzYXRpb25JZCIpLHU9YXdhaXQgYSgoMCxaZy5heCkobCxjLGUscCkpO2lmKCF1LmlkKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgY3JlYXRlIHRpY2tldCIpO3ZhciByOygwLE90LldNKSgic3VibWl0dGVkIiwiY3JlYXRlX3RpY2tldF9mb3JtIiwibWVzc2VuZ2VyIixudWxsPT09KHI9cy5zdGF0ZSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuY29udGV4dCx7dGlja2V0X3R5cGVfaWQ6Y30pLGF3YWl0IGEoKDAsWmcuQ2kpKFt1XSkpLG8oKDAsQmwuaWcpKHUuaWQudG9TdHJpbmcoKSwhMCkse3JlcGxhY2U6ITB9KSx0KCExKX1jYXRjaChlKXtpKCEwKX19fSkpfSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkOTRsMjMwIn0pKCgoe25vUGFkZGluZzplfSk9PiFlJiYoMCxmLml2KSgiaGVpZ2h0OiIsNzUsInB4OyIpKSwiIG92ZXJmbG93LXk6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwe21hcmdpbi1sZWZ0OjhweDtmb250LXNpemU6MTZweDt9c3Zne3BhdGh7ZmlsbDp3aGl0ZTt9fSIpO2NvbnN0IEJnPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkOTRsMjMxIn0pKHtuYW1lOiIxaGliZ29xIixzdHlsZXM6Im1pbi13aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsO21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6bm9uZTsifSksUmc9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ5NGwyMzIifSkoe25hbWU6Imd4ZDRlMSIsc3R5bGVzOiJwYWRkaW5nOjI1cHggMjVweCAxMHB4O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjAgMTJweCAxMHB4IDEycHg7YmFja2dyb3VuZC1jb2xvcjpub25lOyJ9KTt2YXIgemc9e25hbWU6IjFlcWdjZW8iLHN0eWxlczoicGFkZGluZzowcHggMjRweDsifTtjb25zdCBOZz0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzMyJ9KSgiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjoiLCgoe3RoZW1lOmV9KT0+ZS53aGl0ZSksIjsiLCgoe2hvcml6b250YWw6ZX0pPT5lJiZ6ZykpLE1nPSgoMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZWQ5NGwyMzQifSkoe25hbWU6IjE5a3gzYnUiLHN0eWxlczoiYm9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjpibHVlO3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkOTRsMjM1In0pKHtuYW1lOiIxNWtjajRvIixzdHlsZXM6Imgye2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjE1cHg7Zm9udC1zaXplOjE4cHg7fSJ9KSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzNiJ9KSgibWluLWhlaWdodDoxNTJweDtiYWNrZ3JvdW5kOiIsKCh7dGhlbWU6ZX0pPT5lLndoaXRlKSwiO3BhZGRpbmctdG9wOjE2cHg7IikpLERnPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzNyJ9KSgibWFyZ2luLWJvdHRvbToyNXB4O2xpbmUtaGVpZ2h0OjE4cHg7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206MThweDsiLCgoe2FsaWduOmV9KT0+ZSYmKDAsZi5pdikoImFsaWduLWl0ZW1zOiIsZSwiOyIpKSwiOyIpLCgwLGYuWlApKCJoMiIse3RhcmdldDoiZWQ5NGwyMzgifSkoe25hbWU6IjFxMm1kNTciLHN0eWxlczoiZm9udC1zaXplOjIycHg7Zm9udC13ZWlnaHQ6NjAwOyJ9KSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzOSJ9KSgibWFyZ2luLXJpZ2h0OjE2cHg7d2lkdGg6MTZweDsmID4gc3ZnICp7ZmlsbDoiLCgoe3RoZW1lOmV9KT0+ZS5hcHBTZWNvbmRhcnlDb2xvciksIjsiLCgoe3RoZW1lOmUsZGFyazp0fSk9PnQmJigwLGYuaXYpKCJmaWxsOiIsZS5ncmV5LCI7IikpLCJ9IiksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ5NGwyMzEwIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo1cHg7ZmxleDoxO2gxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNjQ2NDY0O2ZvbnQtc2l6ZToxNHB4O31zdWJ7Y29sb3I6IzAwMDt9cHtjb2xvcjojNTk1OTU5O2ZvbnQtc2l6ZToxNHB4O3doaXRlLXNwYWNlOnByZS1saW5lO30iLCgoe3RoZW1lOmUsZGFyazp0fSk9PnQmJigwLGYuaXYpKCIqe2NvbG9yOiIsZS5ibGFjaywiICFpbXBvcnRhbnQ7fSIpKSksKDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImVkOTRsMjMxMiJ9KSh7bmFtZToiMWsxbG9idCIsc3R5bGVzOiJwYWRkaW5nLWxlZnQ6NHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ5NGwyMzEzIn0pKHtuYW1lOiIxcWowdWlhIixzdHlsZXM6Im1hcmdpbi1ib3R0b206NDVweDsifSksKDAsZi5aUCkoInNwYW4iLHt0YXJnZXQ6ImVkOTRsMjMxNCJ9KSh7bmFtZToicGxnYjBoIixzdHlsZXM6ImNvbG9yOmJsdWU7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MjJweDsifSksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZWQ5NGwyMzE1In0pKHtuYW1lOiI3MGVzdXYiLHN0eWxlczoiYmFja2dyb3VuZC1jb2xvcjojZGJkYmRiO21pbi1oZWlnaHQ6MzJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7c3Zne21hcmdpbi1yaWdodDoxMHB4O30ifSkpLExnPSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzMTYifSkoe25hbWU6IjFwaXkyeTAiLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjBweDt0b3A6MzBweDtjdXJzb3I6cG9pbnRlcjsmIHN2ZyA+IGcgPiBne2ZpbGw6IzAwMDt9c3Zne3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt9In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVkOTRsMjMxNyJ9KSgiYmFja2dyb3VuZDoiLCgoe3RoZW1lOmV9KT0+ZS5saWdodEdyZXk2KSwiO3BhZGRpbmc6MjRweCAyMHB4O2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MHB4IDJweCAycHggcmdiYSgwLDAsMCwwLjEpO21hcmdpbi1ib3R0b206MjVweDt3aWR0aDoxMDAlO21hcmdpbjowIDI0cHggMjVweDsiKSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzMTgifSkoImJvcmRlci1ib3R0b206MXB4IHNvbGlkICIsKDAsZi5yUykoImxpZ2h0R3JleTMiKSwiO21hcmdpbi1ib3R0b206MjVweDsiKSwoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlZDk0bDIzMTkifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246cmVsYXRpdmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTozMnB4O2NvbG9yOiIsKDAsZi5yUykoImlucHV0R3JleSIpLCI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDsiKSk7ZnVuY3Rpb24gR2coKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KERnLG51bGwsci5jcmVhdGVFbGVtZW50KEppLlosbnVsbCksci5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLCgwLHUuSXUpKCJ0aWNrZXRzX3N1Ym1pdHRlZF9jb25maXJtYXRpb25faGVhZGVyIikpKX1mdW5jdGlvbiBGZyh7YXR0cmlidXRlczplfSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsT2JqZWN0LmtleXMoZSkubWFwKCgodCxuKT0+e2NvbnN0IGk9ZVt0XS5pZCxvPWVbdF0ubmFtZSxhPSgwLEJsLnQ1KShlW3RdLnZhbHVlKSxzPWVbdF0udHlwZTtyZXR1cm4gbnVsbD09PWF8fDA9PT1hLmxlbmd0aD9udWxsOiJmaWxlcyI9PT1zJiYib2JqZWN0Ij09dHlwZW9mIGE/ci5jcmVhdGVFbGVtZW50KERpLkhDLHtrZXk6aSxzaXplOiJzbWFsbCJ9LHIuY3JlYXRlRWxlbWVudCgic3Ryb25nIixudWxsLG8pLHIuY3JlYXRlRWxlbWVudCh6aCx7a2V5OmksZmlsZXM6YX0pKToic3RyaW5nIj09dHlwZW9mIGE/ci5jcmVhdGVFbGVtZW50KERpLkhDLHtrZXk6aSxub3RlOigwLEJsLmlmKShhLHMpLHNpemU6InNtYWxsIn0sci5jcmVhdGVFbGVtZW50KCJzdHJvbmciLG51bGwsbykpOm51bGx9KSkpfWZ1bmN0aW9uIHFnKHt2YWx1ZTplfSl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChEaS5IQyx7YmdDb2xvcjoiI2Y1ZjVmNSIscm91bmRlZDohMCxyaWdodEljb246Ik5vdGlmaWNhdGlvbnNJY29uIixyaWdodEljb25Db2xvcjoiYmxhY2siLG5vdGU6ZSxzdHlsZTp7bWFyZ2luQm90dG9tOiIxMHB4In19LHIuY3JlYXRlRWxlbWVudCgic3Ryb25nIixudWxsLCgwLHUuSXUpKCJ5b3VsbF9iZV9ub3RpZmllZF9oZXJlX2FuZF9ieV9lbWFpbCIpKSl9dmFyIEhnO2Z1bmN0aW9uIFdnKCl7cmV0dXJuIFdnPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sV2cuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFVnKGUpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoInN2ZyIsV2coe3dpZHRoOjQwLGhlaWdodDo0MCxmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxlKSxIZ3x8KEhnPXIuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTIwIDQwYzExLjA0NiAwIDIwLTguOTU0IDIwLTIwUzMxLjA0NiAwIDIwIDAgMCA4Ljk1NCAwIDIwczguOTU0IDIwIDIwIDIwem05LjYwMS0yNS40YS44NS44NSAwIDEwLTEuMjAyLTEuMjAxbC0xMS45MiAxMS45Mi00Ljg3OC00Ljg3N2EuODUuODUgMCAwMC0xLjIwMiAxLjIwMmw1LjQ3OCA1LjQ3OWEuODUuODUgMCAwMDEuMjAyIDBMMjkuNjAxIDE0LjZ6IixmaWxsOiIjMEQ3NTMyIn0pKSl9bi5wO2NvbnN0IFZnPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVqYThtdWswIn0pKHtuYW1lOiJ4NHBxamQiLHN0eWxlczoiYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjhweCAyMHB4IDI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7In0pLCRnPSgwLGYuWlApKCJwIix7dGFyZ2V0OiJlamE4bXVrMSJ9KSh7bmFtZToiMWl5dnBkYiIsc3R5bGVzOiJmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTlweDttYXJnaW4tdG9wOjI1cHg7bWFyZ2luLWJvdHRvbToxOHB4OyJ9KSxLZz0oMCxmLlpQKSgicCIse3RhcmdldDoiZWphOG11azIifSkoe25hbWU6IjJ2bTM0cCIsc3R5bGVzOiJmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxN3B4OyJ9KTtmdW5jdGlvbiBZZygpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoVmcsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoVWcsbnVsbCksci5jcmVhdGVFbGVtZW50KCRnLG51bGwsKDAsdS5JdSkoInRpY2tldHNfc3VibWl0dGVkX2NvbmZpcm1hdGlvbl9oZWFkZXIiKSksci5jcmVhdGVFbGVtZW50KEtnLG51bGwsKDAsdS5JdSkoInRpY2tldHNfc3VibWl0dGVkX2NvbmZpcm1hdGlvbl9wYXJhZ3JhcGgiKSkpfWNvbnN0IEpnPXtzZW5kOiJOZXdDb252ZXJzYXRpb24iLGNvbnZlcnNhdGlvbjoiVmlld0NvbnZlcnNhdGlvbiJ9O2Z1bmN0aW9uIFhnKHt0ZXh0OmUsaWNvbjp0LGNvbnZlcnNhdGlvbklkOm59KXtjb25zdCBpPSgwLGguVEwpKCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChEbyx7aWNvblR5cGU6SmdbdF0sb25DbGljazooKT0+e2koKDAsZnIuY2MpKEd0LlpQLG4pKSxpKCgwLHhyLmF6KShuKSl9LGJvcmRlclJhZGl1czoxMCx2YXJpYW50OiJzZWNvbmRhcnkiLCJkYXRhLXRlc3RpZCI6InRpY2tldC1kZXRhaWxzLWNvbnZlcnNhdGlvbi1idXR0b24ifSxlKX1mdW5jdGlvbiBRZyh7dGlja2V0OmV9KXtjb25zdHtjb252ZXJzYXRpb25CdXR0b246dH09ZTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KExnLG51bGwsKDAsdS5JdSkoInRpY2tldHNfY3RhX3RleHQiKSx0P3IuY3JlYXRlRWxlbWVudChYZyx7dGV4dDp0LnRleHQsaWNvbjp0Lmljb24sY29udmVyc2F0aW9uSWQ6ZS5jb252ZXJzYXRpb25JZH0pOmUuaXNGZXRjaGluZyYmci5jcmVhdGVFbGVtZW50KFl0Llose2lubGluZTohMH0pKX1mdW5jdGlvbiBlZih7dGlja2V0OmUsbm90aWZpY2F0aW9uc0VtYWlsOnQsc2hvd1RpY2tldENyZWF0ZWRNZXNzYWdlOm4sb25CYWNrQ2xpY2s6aSxzaG93U3VibWl0dGVkU2NyZWVuOm89ITF9KXtjb25zdCBhPSgwLEgudXNlTG9jYXRpb24pKCkse3N0YXRlOnN9PWEsbD1zJiZzLm5hdmlnYXRpbmdGcm9tLGM9bD09PUF0LlJPfHxsPT09QXQuZGYsZD1sfHwiY29udmVyc2F0aW9uIixwPWMmJmUuY29udmVyc2F0aW9uSWQ7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+eygwLE90LldNKSgidmlld2VkIiwidGlja2V0X2RldGFpbHMiLCJtZXNzZW5nZXIiLGQse3RpY2tldFR5cGVJZDplLnRpY2tldFR5cGVJZCxzdGF0dXM6ZS5zdGF0dXMsY29udmVyc2F0aW9uSWQ6ZS5jb252ZXJzYXRpb25JZH0pfSksW2UudGlja2V0VHlwZUlkLGUuc3RhdHVzLGUuY29udmVyc2F0aW9uSWQsZF0pLHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KEJnLG51bGwsci5jcmVhdGVFbGVtZW50KE1nLG51bGwsci5jcmVhdGVFbGVtZW50KExlLHt0cmFuc2l0aW9uS2V5Om8udG9TdHJpbmcoKX0sbz9yLmNyZWF0ZUVsZW1lbnQoWWcsbnVsbCk6ci5jcmVhdGVFbGVtZW50KE5nLHtob3Jpem9udGFsOiEwfSxlLmhpc3RvcnkubGVuZ3RoP3IuY3JlYXRlRWxlbWVudChJbCx7aGlzdG9yeTplLmhpc3RvcnksY3VycmVudFN0YXR1czplLnN0YXR1cyxhc3NpZ25lZTplLmFzc2lnbmVlfSk6bnVsbCkpKSxyLmNyZWF0ZUVsZW1lbnQoUmcsbnVsbCx0JiZyLmNyZWF0ZUVsZW1lbnQocWcse3ZhbHVlOnR9KSxlLmF0dHJpYnV0ZXMmJnIuY3JlYXRlRWxlbWVudChGZyx7YXR0cmlidXRlczplLmF0dHJpYnV0ZXN9KSkpLG4mJnIuY3JlYXRlRWxlbWVudChHZyxudWxsKSxwJiZyLmNyZWF0ZUVsZW1lbnQoUWcse3RpY2tldDplfSkpfWZ1bmN0aW9uIHRmKCl7Y29uc3R7dGlja2V0SWQ6ZT0iIn09KDAsSC51c2VQYXJhbXMpKCksdD1lYSgpLG49KDAsaC5DRykoKDAsWmkuSFUpKGUpKSxpPSgwLGguQ0cpKFdjKSxbb109KDAsSC51c2VTZWFyY2hQYXJhbXMpKCksYT1vLmdldCgic3VibWl0dGVkIikscz0oMCxoLlRMKSgpLGw9ITE9PT0obnVsbD09bj92b2lkIDA6bi5yZWFkKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57ZSYmcygoMCxrcy5GaCkoZSkpfSksW2Usc10pLCgwLHIudXNlRWZmZWN0KSgoKCk9PntsJiZzKCgwLGtzLkNyKShlKSl9KSxbZSxsLHNdKSxuJiZuLmlkP3IuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHIuY3JlYXRlRWxlbWVudChlZix7c2hvd1N1Ym1pdHRlZFNjcmVlbjohIWEsdGlja2V0Om4sbm90aWZpY2F0aW9uc0VtYWlsOmksc2hvd1RpY2tldENyZWF0ZWRNZXNzYWdlOiExLG9uQmFja0NsaWNrOnR9KSk6bnVsbH1mdW5jdGlvbiBuZigpe2NvbnN0IGU9KDAsSC51c2VPdXRsZXQpKCkse2N1cnJlbnRTcGFjZTp0fT1OdCgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoZi5tcyxudWxsLCgoe2NzczpufSk9PnIuY3JlYXRlRWxlbWVudChCZSx7dHJhbnNpdGlvbktleTp0LmlkLGNsYXNzTmFtZTpuYAogICAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgYCxpbm5lckNsYXNzTmFtZTpuYAogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYH0sZSkpKX12YXIgcmY9bigyOTQyOSk7Y29uc3Qgb2Y9WyJjaGlsZHJlbiIsInNwYWNlIiwiZHVyYXRpb24iLCJmdWxsSGVpZ2h0Il07ZnVuY3Rpb24gYWYoKXtyZXR1cm4gYWY9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gc2YoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixpPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyluPW9bcl0sdC5pbmRleE9mKG4pPj0wfHwoaVtuXT1lW25dKTtyZXR1cm4gaX0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspbj1vW3JdLHQuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihpW25dPWVbbl0pfXJldHVybiBpfXZhciBsZj1mdW5jdGlvbihlKXtyZXR1cm4gZS5MRUZUPSJsZWZ0IixlLlJJR0hUPSJyaWdodCIsZX0obGZ8fHt9KTtmdW5jdGlvbiBjZihlLHQsbil7cmV0dXJuKDAsZi5pdikoIi5zY3JlZW57Ji1lbnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWCgiLGUsInB4KTtvcGFjaXR5OjA7Ji1hY3RpdmUsJi1hY3RpdmUtZG9uZXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwcHgpO29wYWNpdHk6MTt9fSYtZXhpdHsmLWFjdGl2ZSwmLWFjdGl2ZS1kb25le3RyYW5zZm9ybTp0cmFuc2xhdGVYKCIsdCwicHgpO29wYWNpdHk6MDt9fSYtZW50ZXItYWN0aXZlLCYtZXhpdC1hY3RpdmV7dHJhbnNpdGlvbjoiLG4sIm1zIGVhc2UtaW4tb3V0O319Iil9dmFyIGRmPXtuYW1lOiI4a3AxcHQiLHN0eWxlczoiaGVpZ2h0OjEwMCU7PiBkaXZ7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9In07Y29uc3QgcGY9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTExZzNxZ3kwIn0pKCJmbGV4OjE7bWluLXdpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuOyIsKCh7ZnVsbEhlaWdodDplfSk9PmUmJmRmKSwiICIsKCh7ZGlyZWN0aW9uOmUsZHVyYXRpb246dH0pPT5lPT09bGYuTEVGVCYmY2YoLTIwLDIwLHQpKSwiICIsKCh7ZGlyZWN0aW9uOmUsZHVyYXRpb246dH0pPT5lPT09bGYuUklHSFQmJmNmKDIwLC0yMCx0KSkpLHVmPSgwLEEuY3JlYXRlU2VsZWN0b3IpKChlPT5lLnJvdXRlciksKGU9PmUuYWN0aW9uKSk7ZnVuY3Rpb24gbWYoZSl7dmFyIHQsbjtsZXR7Y2hpbGRyZW46aSxzcGFjZTpvLGR1cmF0aW9uOmE9MTUwLGZ1bGxIZWlnaHQ6cz0hMH09ZSxsPXNmKGUsb2YpO2NvbnN0W2NdPSgwLGguQ0cpKHZhLnNoKSxkPShudWxsPT1jfHxudWxsPT09KHQ9Yy5sb2NhdGlvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGF0aG5hbWUpfHwiIixwPSgwLEgudXNlT3V0bGV0KSgpLFt1LGddPSgwLHIudXNlU3RhdGUpKHApLFtmLHhdPSgwLHIudXNlU3RhdGUpKCExKSx2PSgwLGguQ0cpKHVmKSx5PSJQT1AiPT09dixiPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPXQuc3RhcnRzV2l0aChgLyR7ZS5pZH1gKTtpZigiUkVQTEFDRSI9PT1uKXJldHVybiExO2lmKCJQT1AiPT09bilyZXR1cm4gcjtjb25zdCBpPSIvbWVzc2FnZXMvY29udmVyc2F0aW9uL3RyaWdnZXItc2NyZWVuIj09PXQsbz10PT09YC8ke2UuaWR9YDtyZXR1cm4gciYmIW8mJiFpfShvLGQsdik/YTowOygwLHIudXNlRWZmZWN0KSgoKCk9Pnt4KCExKTtjb25zdCBlPXNldFRpbWVvdXQoKCgpPT57ZyhwKSx4KCEwKX0pLGIpO3JldHVybigpPT57Y2xlYXJUaW1lb3V0KGUpfX0pLFtoZihwKXx8ZF0pO2NvbnN0IEU9eT9sZi5MRUZUOmxmLlJJR0hUO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChwZix7ZHVyYXRpb246YixkaXJlY3Rpb246RSwiZGF0YS1kaXJlY3Rpb24iOkUsImRhdGEtdGVzdGlkIjoic3BhY2UtdHJhbnNpdGlvbiIsZnVsbEhlaWdodDpzfSxyLmNyZWF0ZUVsZW1lbnQobS5LdixhZih7a2V5Om51bGw9PWN8fG51bGw9PT0obj1jLmxvY2F0aW9uKXx8dm9pZCAwPT09bj92b2lkIDA6bi5rZXksY2xhc3NOYW1lczoic2NyZWVuIix0aW1lb3V0OmIsaW46Zix1bm1vdW50T25FeGl0OiEwLG1vdW50T25FbnRlcjohMH0sbCksci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCx1KSkpKX1mdW5jdGlvbiBoZihlKXtsZXQgdD0iIixuPW51bGw9PWU/dm9pZCAwOmUucHJvcHM7Zm9yKDtuOyl7dmFyIHIsaTtudWxsIT09KHI9bikmJnZvaWQgMCE9PXImJm51bGwhPT0ocj1yLnZhbHVlKSYmdm9pZCAwIT09ciYmci5tYXRjaGVzJiYodD0oMCxyZi5aKShuLnZhbHVlLm1hdGNoZXMpLnBhdGhuYW1lKSxuPW51bGw9PT0oaT1uKXx8dm9pZCAwPT09aXx8bnVsbD09PShpPWkuY2hpbGRyZW4pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLnByb3BzfXJldHVybiB0fWNvbnN0IGdmPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxa2x2M3g3MCJ9KSgicG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjsiKSxmZj0oMCxmLlpQKSgibWFpbiIse3RhcmdldDoiZTFrbHYzeDcxIn0pKHtuYW1lOiJveHRrZzMiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttYXgtaGVpZ2h0OjEwMCU7In0pLHhmPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxa2x2M3g3MiJ9KSgicG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm1hcmdpbiAwLjNzIGVhc2Utb3V0LG9wYWNpdHkgMC4zcyBlYXNlLW91dDt6LWluZGV4OiIsKDAseC5XNSkoMiksIjs+ICp7cG9pbnRlci1ldmVudHM6YWxsO30iKSx2Zj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTBlb2pqdTAifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDUpO2JveC1zaGFkb3c6MHB4IDBweCAyNXB4IHJnYmEoMCwwLDAsMC4wNSk7YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7aGVpZ2h0OiIsODAsInB4O3BhZGRpbmc6MDsiKSx5Zj0oMCxmLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlMTBlb2pqdTEifSkoImZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjE4cHggM3B4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIDE1MG1zO2xpbmUtaGVpZ2h0OjE0cHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDt0ZXh0LWFsaWduOmNlbnRlcjsiLCgoe3Nob3dMYWJlbHM6ZSx0aGVtZTp0fSk9PiFlJiYoMCxmLml2KSgiJjphZnRlcntjb250ZW50OmF0dHIoZGF0YS10aXRsZSk7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjEycHg7cGFkZGluZzo0cHg7dG9wOi01NnB4O2NvbG9yOiIsdC53aGl0ZSwiO2JhY2tncm91bmQ6Iix0Lm01bGlnaHRHcmV5NCwiO2JveC1zaGFkb3c6MHB4IDJweCAxMHB4IHJnYmEoMCwwLDAsMC4wNSk7Ym9yZGVyLXJhZGl1czo2cHg7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO30mOmhvdmVyeyY6YWZ0ZXJ7b3BhY2l0eToxO3RyYW5zaXRpb246YWxsIDAuMXMgZWFzZSAwLjVzO3Zpc2liaWxpdHk6dmlzaWJsZTt9fSIpKSwiICIsKCh7aXNBY3RpdmU6ZSx0aGVtZTp0fSk9PiFlJiYoMCxmLml2KSgic3Zneyp7dHJhbnNpdGlvbjphbGwgMTUwbXM7fSpbY2xhc3MkPSdmaWxsJ117ZmlsbDoiLHQuYmxhY2ssIjtzdHJva2U6bm9uZTt9fWNvbG9yOiIsdC5tNURhcmtHcmV5MiwiOyY6aG92ZXJ7c3ZneypbY2xhc3MqPSdmaWxsJ117ZmlsbDoiLHQubGlua0NvbG9yLCI7c3Ryb2tlOm5vbmU7fSpbY2xhc3MqPSdzdHJva2UnXXtzdHJva2U6Iix0LmxpbmtDb2xvciwiO319Y29sb3I6Iix0LmxpbmtDb2xvciwiO30iKSksIiAiLCgoe2lzQWN0aXZlOmUsdGhlbWU6dH0pPT5lJiYoMCxmLml2KSgiY29sb3I6Iix0LmxpbmtDb2xvciwiO2ZvbnQtd2VpZ2h0OjU5MDsiKSkpO3ZhciBiZj17bmFtZToiMWU2bW0xMSIsc3R5bGVzOiJzdmd7bWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoIGNpcmNsZSAyMHB4IGF0IGNhbGMoMTAwJSArIDFweCkgY2FsYygxMDAlIC0gMjNweCksdHJhbnNwYXJlbnQgMTBweCwjMDAwIDAgKTt9In07Y29uc3QgRWY9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTEwZW9qanUyIn0pKCJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOiIsKCh7c2hvd0xhYmVsczplfSk9PmU/MDoiMTBweCIpLCIgYXV0byA4cHg7cG9pbnRlci1ldmVudHM6bm9uZTsiLCgoe2hhc0N1dG91dDplfSk9PmUmJmJmKSwiICIsKCh7aXNBY3RpdmU6ZSx0aGVtZTp0fSk9PmUmJigwLGYuaXYpKCI+IHN2ZyA+IHBhdGh7ZmlsbDoiLHQubGlua0NvbG9yLCI7fT4gc3ZnID4gcGF0aFtjbGFzcyQ9J3N0cm9rZSdde3N0cm9rZToiLHQubGlua0NvbG9yLCI7ZmlsbDpub25lO30+IHN2Z3sqW2NsYXNzJD0nX19jaXJjbGUnXXtmaWxsOiIsdC5saW5rQ29sb3IsIjtzdHJva2U6Iix0LmxpbmtDb2xvciwiO30qW2NsYXNzJD0nX19uZWdhdGl2ZSdde3N0cm9rZToiLHQud2hpdGUsIjt9Y2lyY2xlW2NsYXNzKj0nX19uZWdhdGl2ZSdde2ZpbGw6Iix0LndoaXRlLCI7c3Ryb2tlOm5vbmU7fX0iKSkpO3ZhciBrZj17bmFtZToiN2FwYXY5IixzdHlsZXM6InRvcDotNXB4O3JpZ2h0OmNhbGMoMTAwJSAtIDIycHgpOyJ9O2NvbnN0IENmPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMGVvamp1MyJ9KSgicG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6Y2FsYygxMDAlIC0gMTdweCk7dG9wOi03cHg7bGluZS1oZWlnaHQ6MTNweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTsiLCgoe3NtYWxsOmV9KT0+ZSYma2YpKSx3Zj0oMCxmLlpQKSgic3BhbiIse3RhcmdldDoiZTEwZW9qanU0In0pKHtuYW1lOiIxNm4xZjA0IixzdHlsZXM6ImRpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjAgYXV0bzsifSksU2Y9KHtpdGVtOmUsb25DbGljazp0LHNob3dMYWJlbHM6bn0pPT57Y29uc3QgaT1lLmlzQWN0aXZlP2UuaWNvbkNvbXBvbmVudC5hY3RpdmU6ZS5pY29uQ29tcG9uZW50LmRlZmF1bHQsbz1lLmFjdGl2ZU5vdGlmaWNhdGlvbkNvdW50PjAse2N1cnJlbnRTcGFjZTphfT1OdCgpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoeWYse3JvbGU6InRhYiIsaXNBY3RpdmU6ZS5pc0FjdGl2ZSxzaG93TGFiZWxzOm4sImFyaWEtY3VycmVudCI6ZS5pc0FjdGl2ZSwiYXJpYS1jb250cm9scyI6ZS5hcmlhQ29udHJvbEVsZW1lbnRJZCwiYXJpYS1sYWJlbCI6ZS50aXRsZSxvbkNsaWNrOigpPT57YS5pZCE9PWUuaWQmJnQoZS5pZCl9LCJkYXRhLXRlc3RpZCI6ZS5pZCwiZGF0YS10aXRsZSI6bj92b2lkIDA6ZS50aXRsZX0sci5jcmVhdGVFbGVtZW50KEVmLHtoYXNDdXRvdXQ6byxpc0FjdGl2ZTplLmlzQWN0aXZlLHNob3dMYWJlbHM6bn0sci5jcmVhdGVFbGVtZW50KENmLHtzbWFsbDohb30sKG98fGUuaGFzUGFzc2l2ZU5vdGlmaWNhdGlvbnMpJiZyLmNyZWF0ZUVsZW1lbnQoRGkuQ2MsbnVsbCxvP2UuYWN0aXZlTm90aWZpY2F0aW9uQ291bnQ6dm9pZCAwKSksci5jcmVhdGVFbGVtZW50KGksbnVsbCkpLG4mJnIuY3JlYXRlRWxlbWVudCh3ZixudWxsLGUudGl0bGUpKX0sUGY9KHtpdGVtczplLG9uQ2xpY2s6dH0pPT57Y29uc3Qgbj1lLmxlbmd0aDw2O3JldHVybiByLmNyZWF0ZUVsZW1lbnQodmYse3JvbGU6InRhYmxpc3QifSxlLm1hcCgoZT0+ci5jcmVhdGVFbGVtZW50KFNmLHtrZXk6ZS5pZCxpdGVtOmUsb25DbGljazp0LGFjdGl2ZU5vdGlmaWNhdGlvbkNvdW50OmUuYWN0aXZlTm90aWZpY2F0aW9uQ291bnQsaGFzUGFzc2l2ZU5vdGlmaWNhdGlvbnM6ZS5oYXNQYXNzaXZlTm90aWZpY2F0aW9ucyxzaG93TGFiZWxzOm59KSkpKX07Y29uc3QgVGY9KHtjdXJyZW50U3BhY2U6ZSxzaG93U3BhY2U6dCxjaGlsZHJlbjpuLHNob3dUYWJCYXI6aSx0YWJCYXJJdGVtczpvLHNob3dJbnRlcmNvbUxpbms6YX0pPT57Y29uc3Qgcz1gc3BhY2VzLSR7ZX1gO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoZ2YsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChmZix7aWQ6cywiZGF0YS10ZXN0aWQiOnN9LG4pLHIuY3JlYXRlRWxlbWVudCh4ZixudWxsLGkmJnIuY3JlYXRlRWxlbWVudChQZix7aXRlbXM6byxvbkNsaWNrOmU9PnsoMCxPdC5XTSkoImNsaWNrZWQiLGUsIm1lc3NlbmdlciIsZSksdChlKX0sImRhdGEtdGVzdGlkIjoic3BhY2VzLXRhYi1iYXIifSksYSYmci5jcmVhdGVFbGVtZW50KExzLHtzaG93T25TcGFjZXM6ITAsaW50ZXJjb21MaW5rU29sdXRpb246ImxpdmUtY2hhdCJ9KSkpKX07dmFyIFpmPW4oNDczODkpLElmPW4oNjI2NDQpO2NvbnN0IGpmPSIzMDBtcyIsX2Y9ImVhc2UtaW4tb3V0IixPZj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTdtcXV4OTAifSkoInotaW5kZXg6IiwoMCxmLnJTKSgibWVzc2VuZ2VyU2hlZXRaSW5kZXgiKSwiO2JhY2tncm91bmQtY29sb3I6IiwoMCxmLnJTKSgid2hpdGUiKSwiO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3RvcDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDpub25lOyIpLEFmPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxN21xdXg5MSJ9KSgiLmludGVyY29tLW1lc3Nlbmdlci1zaGVldC1lbnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt9LmludGVyY29tLW1lc3Nlbmdlci1zaGVldC1lbnRlci5pbnRlcmNvbS1tZXNzZW5nZXItc2hlZXQtZW50ZXItYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDBweCk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi1kdXJhdGlvbjoiLGpmLCI7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IixfZiwiO30uaW50ZXJjb20tbWVzc2VuZ2VyLXNoZWV0LWV4aXR7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KTt9LmludGVyY29tLW1lc3Nlbmdlci1zaGVldC1leGl0LmludGVyY29tLW1lc3Nlbmdlci1zaGVldC1leGl0LWFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOiIsamYsIjt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjoiLF9mLCI7fSIpO3ZhciBCZj1uKDYxOTMwKTtjb25zdCBSZj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWNwdHZ3NDAifSkoInBvc2l0aW9uOnN0aWNreTt0b3A6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDo3NXB4O3otaW5kZXg6NTsiLCgoe3RoZW1lOmV9KT0+KDAsZi5pdikoImJhY2tncm91bmQ6IixlLndoaXRlLCI7Ym94LXNoYWRvdzowcHggMXB4IDJweCByZ2JhKDAsMCwwLDAuMSk7cHtjb2xvcjoiLGUubTVEYXJrR3JleTIsIjt9c3Zne3BhdGh7ZmlsbDoiLGUuYmxhY2ssIiAhaW1wb3J0YW50O319ZGl2W3JvbGU9J2J1dHRvbidde3N2Z3twb2x5Z29ue2ZpbGw6IixlLmdyZXksIjt9fX0iKSksIiBiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDsiKTt2YXIgemY9e25hbWU6InY1NnA4diIsc3R5bGVzOiJsZWZ0OmluaXRpYWw7cmlnaHQ6NHB4O3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsifTtjb25zdCBOZj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNDBmM2N0MCJ9KSgiei1pbmRleDoiLCgwLHguVzUpKCksIjtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjt3aWR0aDo1MXB4O2hlaWdodDo1MXB4O21hcmdpbjoxMnB4IDJweCAxMnB4IDhweDt0b3A6MDtsZWZ0OjA7Jiwqe2N1cnNvcjpwb2ludGVyO30iLCgoe2Rpc21pc3NhbERpcmVjdGlvbjplfSk9PiJkb3duIj09PWUmJnpmKSwifSIpLE1mPSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImU0MGYzY3QxIn0pKCJ3aWR0aDo1MXB4O2hlaWdodDo1MXB4O3BhZGRpbmc6OHB4O21hcmdpbjowIGF1dG87Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6IiwoMCxmLnJTKSgibWVzc2VuZ2VyQm9yZGVyUmFkaXVzUHgiKSwicHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTsmOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjIpO31zdmd7Iix4LkszLCJ9IixvcC5jbGFzc05hbWUsInt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjIwcHg7Ym94LXNoYWRvdzpub25lO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjYwMDt9Iik7Y29uc3QgRGY9KDAsby5jb25uZWN0KSgoZT0+KHt0YWJOYXZpZ2F0aW9uOmUuYWNjZXNzaWJpbGl0eS50YWJOYXZpZ2F0aW9ufSkpKSgoZnVuY3Rpb24oZSl7Y29uc3R7c2hlZXRUaXRsZTp0LG9uQmFja0NsaWNrOm4sZGlzbWlzc2FsRGlyZWN0aW9uOmk9ImxlZnQifT1lLG89ci5jcmVhdGVFbGVtZW50KFJmLG51bGwsISF0JiZyLmNyZWF0ZUVsZW1lbnQoImgxIixudWxsLHQpLHIuY3JlYXRlRWxlbWVudChOZix7cm9sZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6KDAsdS5JdSkoIm5hdmlnYXRpb25fYmFjayIpLG9uQ2xpY2s6bixkaXNtaXNzYWxEaXJlY3Rpb246aX0sci5jcmVhdGVFbGVtZW50KE1mLG51bGwsci5jcmVhdGVFbGVtZW50KEJmLlosbnVsbCkpKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChZLHtpc092ZXJsYXk6ITAsc3BhY2VJZDp6dC55Ny5pZH0sbyl9KSksTGY9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXRmbGdnMjAifSkoInotaW5kZXg6IiwoMCxmLnJTKSgibWVzc2VuZ2VyU2hlZXRMb2FkZXJaSW5kZXgiKSwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2hlaWdodDoycHg7YmFja2dyb3VuZDoiLCgwLGYuclMpKCJhcHBDb2xvciIpLCI7IiwoKHt0cmFuc2Zvcm06ZX0pPT4oMCxmLml2KSgidHJhbnNmb3JtOiIsZSwiOyIpKSwiICIsKCh7dHJhbnNpdGlvbjplfSk9PigwLGYuaXYpKCJ0cmFuc2l0aW9uOiIsZSwiOyIpKSwiICIsKCh7b3BhY2l0eTplfSk9PigwLGYuaXYpKCJvcGFjaXR5OiIsZSwiOyIpKSk7ZnVuY3Rpb24gR2YoZSx0KXt2YXIgbixyLGk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0JiYodD1lPj0wJiZlPC4yPy4xOmU+PS4yJiZlPC41Py4wNDplPj0uNSYmZTwuOD8uMDI6ZT49LjgmJmU8Ljk5Py4wMDU6MCksbj1lK3Qscj0wLGk9Ljk5NCxlPU1hdGgubWluKGksTWF0aC5tYXgobixyKSl9Y2xhc3MgUHJvZ3Jlc3NCYXIgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5pbmNyZW1lbnRJbnRlcnZhbD12b2lkIDAsdGhpcy5zdGF0ZT17cGVyY2VudDowLG9wYWNpdHk6MSx3aXRoVHJhbnNpdGlvbjohMX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnByb3BzLmlzTG9hZGluZyYmdGhpcy5zdGFydFRyaWNrbGVXb3JrKCl9Y29tcG9uZW50RGlkVXBkYXRlKGUpe2NvbnN0e2lzTG9hZGluZzp0fT1lO3RoaXMucHJvcHMuaXNMb2FkaW5nJiYhdCYmKHRoaXMucmVzZXRCYXIoKSx0aGlzLnN0YXJ0VHJpY2tsZVdvcmsoKSksdCYmIXRoaXMucHJvcHMuaXNMb2FkaW5nJiZ0aGlzLmZpbmlzaExvYWRpbmcoKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMuY2xlYXJJbnRlcnZhbCgpfXN0YXJ0VHJpY2tsZVdvcmsoKXtjb25zdHt0cmlja2xlU3BlZWQ6ZX09dGhpcy5wcm9wczt0aGlzLmNsZWFySW50ZXJ2YWwoKSx0aGlzLmluY3JlbWVudEludGVydmFsPXNldEludGVydmFsKCgoKT0+e3RoaXMuc2V0U3RhdGUoe3BlcmNlbnQ6R2YodGhpcy5zdGF0ZS5wZXJjZW50KSx3aXRoVHJhbnNpdGlvbjohMH0pfSksZSl9ZmluaXNoTG9hZGluZygpe2NvbnN0e3NwZWVkOmV9PXRoaXMucHJvcHM7dGhpcy5zZXRTdGF0ZSh7cGVyY2VudDoxLHdpdGhUcmFuc2l0aW9uOiEwfSksc2V0VGltZW91dCgoKCk9Pnt0aGlzLnNldFN0YXRlKHtvcGFjaXR5OjB9KX0pLGUpfXJlc2V0QmFyKCl7dGhpcy5zZXRTdGF0ZSh7cGVyY2VudDowLG9wYWNpdHk6MSx3aXRoVHJhbnNpdGlvbjohMX0pfWNsZWFySW50ZXJ2YWwoKXt0aGlzLmluY3JlbWVudEludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW5jcmVtZW50SW50ZXJ2YWwpfWdldFRyYW5zZm9ybSgpe2NvbnN0e3BlcmNlbnQ6ZX09dGhpcy5zdGF0ZTtyZXR1cm5gdHJhbnNsYXRlM2QoJHt0PWUsKDEwMCooLTErdCkpLnRvRml4ZWQoMil9JSwwLDApYDt2YXIgdH1nZXRUcmFuc2l0aW9uKCl7Y29uc3R7d2l0aFRyYW5zaXRpb246ZX09dGhpcy5zdGF0ZSx7c3BlZWQ6dCxlYXNpbmc6bn09dGhpcy5wcm9wcztyZXR1cm4gZT9gYWxsICR7dH1tcyAke259YDoibm9uZSJ9cmVuZGVyKCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChMZix7dHJhbnNmb3JtOnRoaXMuZ2V0VHJhbnNmb3JtKCksdHJhbnNpdGlvbjp0aGlzLmdldFRyYW5zaXRpb24oKSxvcGFjaXR5OnRoaXMuc3RhdGUub3BhY2l0eX0pfX1Qcm9ncmVzc0Jhci5kZWZhdWx0UHJvcHM9e3RyaWNrbGVTcGVlZDoyMDAsc3BlZWQ6MjAwLGVhc2luZzoibGluZWFyIixpc0xvYWRpbmc6ITF9O3ZhciBGZj17bmFtZToiMTVidm5ieiIsc3R5bGVzOiJvdmVyZmxvdy15OnNjcm9sbDsifTtjb25zdCBxZj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlaWhicnhlMCJ9KSgicG9zaXRpb246cmVsYXRpdmU7ZmxleDoxO291dGxpbmUtb2Zmc2V0Oi01cHg7IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZGZikpLEhmPSgwLGYuWlApKCJpZnJhbWUiLHt0YXJnZXQ6ImVpaGJyeGUxIn0pKHtuYW1lOiIxeDltaDk3IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3V0bGluZS1vZmZzZXQ6LTVweDsifSksV2Y9big5NzIzNCk7Y2xhc3MgTWVzc2VuZ2VyU2hlZXRQcm94eSBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuZnJhbWVOb2RlPXZvaWQgMCx0aGlzLnNoZWV0UHJveHlOb2RlPXZvaWQgMCx0aGlzLnRpbWVvdXQ9dm9pZCAwLHRoaXMuc3RhdGU9e2xvYWRGcmFtZTohMX19Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnRpbWVvdXQ9c2V0VGltZW91dCgoKCk9Pnt0aGlzLnNldFN0YXRlKHtsb2FkRnJhbWU6ITB9KSx0aGlzLnNldHVwU2hlZXRGcmFtZSgpLHRoaXMuc2hlZXRQcm94eU5vZGUmJnRoaXMuc2hlZXRQcm94eU5vZGUuZm9jdXMoKX0pLHRoaXMucHJvcHMudHJhbnNpdGlvblRpbWVvdXQpfXNldHVwU2hlZXRGcmFtZSgpe3ZhciBlO2lmKCF0aGlzLnN0YXRlLmxvYWRGcmFtZSlyZXR1cm47Y29uc3R7c3RhcnROYXZpZ2F0aW9uOnQscmVjZWl2ZVNoZWV0TWVzc2FnZTpufT10aGlzLnByb3BzO3QoKSx0aGlzLmZyYW1lTm9kZSYmKG51bGw9PT0oZT10aGlzLmZyYW1lTm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KXx8dm9pZCAwPT09ZXx8ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuLCExKSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXt2YXIgZTt0aGlzLnRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO2NvbnN0e3NldFByb3h5TG9hZGVkU3RhdHVzOnR9PXRoaXMucHJvcHM7dCghMSksdGhpcy5mcmFtZU5vZGUmJihudWxsPT09KGU9dGhpcy5mcmFtZU5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyl8fHZvaWQgMD09PWV8fGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5wcm9wcy5yZWNlaXZlU2hlZXRNZXNzYWdlKSl9cmVuZGVyKCl7Y29uc3R7b25GcmFtZUxvYWQ6ZSxpc05hdmlnYXRpbmc6dH09dGhpcy5wcm9wcztyZXR1cm4gci5jcmVhdGVFbGVtZW50KHFmLHt0YWJJbmRleDowLHJlZjplPT50aGlzLnNoZWV0UHJveHlOb2RlPWV9LHIuY3JlYXRlRWxlbWVudChQcm9ncmVzc0Jhcix7aXNMb2FkaW5nOnR9KSx0aGlzLnN0YXRlLmxvYWRGcmFtZT9yLmNyZWF0ZUVsZW1lbnQoSGYse3JlZjplPT50aGlzLmZyYW1lTm9kZT1lLG5hbWU6ImludGVyY29tLW1lc3Nlbmdlci1zaGVldC1wcm94eSIsc2FuZGJveDoiYWxsb3ctc2NyaXB0cyBhbGxvdy1mb3JtcyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1wb3B1cHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IGFsbG93LWRvd25sb2FkcyIsc3JjOldmLnNoZWV0c19wcm94eV9wYXRoLG9uTG9hZDplLGFsbG93RnVsbFNjcmVlbjohMCxhbGxvdzoibWljcm9waG9uZSAqOyBjYW1lcmEgKjsgYXV0b3BsYXkgKjsgZGlzcGxheS1jYXB0dXJlICoiLHRpdGxlOiJNZXNzZW5nZXIgYXBwIn0pOm51bGwpfX12YXIgVWY9big2NTU0NyksVmY9big2MjAxNyksJGY9big5ODk1MyksS2Y9big5OTQ0OSk7Y2xhc3MgTWVzc2VuZ2VyU2hlZXRCb2R5IGV4dGVuZHMgci5QdXJlQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMubm9kZT12b2lkIDAsdGhpcy5mb3JtPXZvaWQgMCx0aGlzLmZvY3VzVHJhcD1udWxsLHRoaXMuc3RhdGU9e2lzU3VibWl0dGVkOiExfSx0aGlzLmhhbmRsZUVzY2FwZT1lPT57KDAsJG8uJG8pKGUpJiZ0aGlzLmhhbmRsZUNsb3NlU2hlZXQoKX0sdGhpcy5oYW5kbGVDbG9zZVNoZWV0PSgpPT57dGhpcy5wcm9wcy5jbG9zZVNoZWV0KCk7Y29uc3QgZT0oMCwkZi5qTSkoKTtlJiYoZSgpLCgwLCRmLnVQKShudWxsKSl9LHRoaXMuc2V0Rm9ybVJlZj1lPT57dGhpcy5mb3JtPWV9LHRoaXMuc3VibWl0Rm9ybT0oKT0+e2lmKCF0aGlzLmZvcm0pcmV0dXJuIG51bGw7dGhpcy5mb3JtLnN1Ym1pdCgpLHRoaXMuc2V0U3RhdGUoe2lzU3VibWl0dGVkOiEwfSl9LHRoaXMuaGFuZGxlSWZyYW1lTG9hZD0oKT0+e3RoaXMucHJvcHMuc2V0UHJveHlMb2FkZWRTdGF0dXMoITApO2NvbnN0e2lzU2hlZXRzRGF0YUxvYWRlZDplLGlzUHJveHlMb2FkZWQ6dH09dGhpcy5wcm9wcztzZXRUaW1lb3V0KCgoKT0+e2UmJnR8fCgwLEtmLk83KSgiU2hlZXQgZmFpbGVkIHRvIGxvYWQgYWZ0ZXIgMTAgc2Vjb25kcy4iKX0pLDFlNCl9fWNvbXBvbmVudERpZE1vdW50KCl7aWYoKDAsJG8uT28pKHRoaXMucHJvcHMuZnJhbWVXaW5kb3csImtleWRvd24iLHRoaXMuaGFuZGxlRXNjYXBlKSx0aGlzLm5vZGUpe2NvbnN0IGU9KCk9PigwLFZmLks3KSgpO3RoaXMuZm9jdXNUcmFwPW5ldyBVZi5aKHtkb2N1bWVudDp0aGlzLm5vZGUsZmlyc3RFbGVtZW50OmUsbGFzdEVsZW1lbnQ6ZX0pfX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLnNob3VsZFN1Ym1pdEZvcm0oKSYmdGhpcy5zdWJtaXRGb3JtKCl9Y29tcG9uZW50V2lsbFVubW91bnQoKXsoMCwkby54ZykodGhpcy5wcm9wcy5mcmFtZVdpbmRvdywia2V5ZG93biIsdGhpcy5oYW5kbGVFc2NhcGUpLHRoaXMuZm9jdXNUcmFwJiZ0aGlzLmZvY3VzVHJhcC5yZXN0b3JlKCl9c2hvdWxkU3VibWl0Rm9ybSgpe2NvbnN0e2lzU2hlZXRzRGF0YUxvYWRlZDplLGlzUHJveHlMb2FkZWQ6dH09dGhpcy5wcm9wcztyZXR1cm4hdGhpcy5zdGF0ZS5pc1N1Ym1pdHRlZCYmZSYmdH1yZW5kZXJTaGVldEZvcm0oKXtjb25zdHt1cmw6ZSxzaGVldHNEYXRhOnR9PXRoaXMucHJvcHM7cmV0dXJuIHQ/ci5jcmVhdGVFbGVtZW50KCJmb3JtIix7cmVmOnRoaXMuc2V0Rm9ybVJlZixhY3Rpb246ZSxtZXRob2Q6InBvc3QiLHN0eWxlOnttYXJnaW46IjAifSx0YXJnZXQ6ImludGVyY29tLW1lc3Nlbmdlci1zaGVldCJ9LHIuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJoaWRkZW4iLG5hbWU6ImludGVyY29tX2RhdGEiLHZhbHVlOnQscmVhZE9ubHk6ITB9KSk6bnVsbH1yZW5kZXIoKXtjb25zdHtzaGVldFRpdGxlOmV9PXRoaXMucHJvcHM7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChPZix7cmVmOmU9PnRoaXMubm9kZT1lfSxyLmNyZWF0ZUVsZW1lbnQoRGYse29uQmFja0NsaWNrOnRoaXMuaGFuZGxlQ2xvc2VTaGVldCxzaGVldFRpdGxlOmV9KSxyLmNyZWF0ZUVsZW1lbnQoTWVzc2VuZ2VyU2hlZXRQcm94eSx7aXNOYXZpZ2F0aW5nOnRoaXMucHJvcHMuaXNOYXZpZ2F0aW5nLG9uRnJhbWVMb2FkOnRoaXMuaGFuZGxlSWZyYW1lTG9hZCxzdGFydE5hdmlnYXRpb246dGhpcy5wcm9wcy5zdGFydE5hdmlnYXRpb24scmVjZWl2ZVNoZWV0TWVzc2FnZTp0aGlzLnByb3BzLnJlY2VpdmVTaGVldE1lc3NhZ2Usc2V0UHJveHlMb2FkZWRTdGF0dXM6dGhpcy5wcm9wcy5zZXRQcm94eUxvYWRlZFN0YXR1cyx0cmFuc2l0aW9uVGltZW91dDp0aGlzLnByb3BzLnRyYW5zaXRpb25UaW1lb3V0fSksdGhpcy5yZW5kZXJTaGVldEZvcm0oKSxyLmNyZWF0ZUVsZW1lbnQoaXAuSksseyJhcmlhLWxhYmVsIjooMCx1Lkl1KSgiY2xvc2UiKSxvbkNsaWNrOnRoaXMuaGFuZGxlQ2xvc2VTaGVldH0pKX19ZnVuY3Rpb24gWWYoKXtyZXR1cm4gWWY9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxZZi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2xhc3MgTWVzc2VuZ2VyU2hlZXQgZXh0ZW5kcyByLlB1cmVDb21wb25lbnR7cmVuZGVyKCl7Y29uc3R7aXNTaGVldHNEYXRhTG9hZGVkOmUsaXNQcm94eUxvYWRlZDp0LGlzT3BlbjpuLGlzTmF2aWdhdGluZzppLHVybDpvLGNsb3NlU2hlZXQ6YSxzaGVldHNEYXRhOnMsc3RhcnROYXZpZ2F0aW9uOmwsc2V0UHJveHlMb2FkZWRTdGF0dXM6YyxzaGVldFRpdGxlOmQscmVjZWl2ZVNoZWV0TWVzc2FnZTpwLGZyYW1lV2luZG93OnV9PXRoaXMucHJvcHMsaD17aXNTaGVldHNEYXRhTG9hZGVkOmUsaXNQcm94eUxvYWRlZDp0LGlzTmF2aWdhdGluZzppLHVybDpvLHNoZWV0c0RhdGE6cyxjbG9zZVNoZWV0OmEsc2V0UHJveHlMb2FkZWRTdGF0dXM6YyxzaGVldFRpdGxlOmQsc3RhcnROYXZpZ2F0aW9uOmwscmVjZWl2ZVNoZWV0TWVzc2FnZTpwLHRyYW5zaXRpb25UaW1lb3V0OjMwMH07cmV0dXJuIHIuY3JlYXRlRWxlbWVudChBZixudWxsLHIuY3JlYXRlRWxlbWVudChtLlczLG51bGwsbj9yLmNyZWF0ZUVsZW1lbnQobS5Ldix7Y2xhc3NOYW1lczoiaW50ZXJjb20tbWVzc2VuZ2VyLXNoZWV0Iix0aW1lb3V0OntlbnRlcjozMDAsZXhpdDozMDB9fSxyLmNyZWF0ZUVsZW1lbnQoTWVzc2VuZ2VyU2hlZXRCb2R5LFlmKHtrZXk6InNoZWV0In0saCx7ZnJhbWVXaW5kb3c6dX0pKSk6bnVsbCkpfX12YXIgSmY9big0MTc1MCk7Y29uc3QgWGY9KDAsQS5jcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IpKHtpc1NoZWV0c0RhdGFMb2FkZWQ6SmYuSDksaXNQcm94eUxvYWRlZDpKZi54RCxpc09wZW46SmYuV2QsdXJsOkpmLmNCLHNoZWV0c0RhdGE6SmYudHksc291cmNlQ2FyZDpKZi5pMyxpc05hdmlnYXRpbmc6SmYuQ2gsc2hlZXRUaXRsZTpKZi5pQX0pO2NvbnN0IFFmPSgwLG8uY29ubmVjdCkoWGYsKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9SWYuUnouYmluZChudWxsLEd0LlpQKSxuPUlmLmNzLmJpbmQobnVsbCxHdC5aUCk7cmV0dXJuKDAsWmYuYmluZEFjdGlvbkNyZWF0b3JzKSh7c3RhcnROYXZpZ2F0aW9uOklmLmc4LGZpbmlzaE5hdmlnYXRpb246SWYuTTIsY2xvc2VTaGVldDpJZi51YyxzdWJtaXRTaGVldDpuLHNldFByb3h5TG9hZGVkU3RhdHVzOklmLkoxLHNldFNoZWV0VGl0bGU6SWYuaXUscmVjZWl2ZVNoZWV0TWVzc2FnZTp0fSxlKX0pKShNZXNzZW5nZXJTaGVldCk7dmFyIGV4PXtuYW1lOiJ0N2cyY3YiLHN0eWxlczoib3BhY2l0eToxO2hlaWdodDphdXRvOyJ9O2NvbnN0IHR4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxZmV1dm40MCJ9KSgiYmFja2dyb3VuZDpub25lO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjA7b3BhY2l0eTowO3otaW5kZXg6IiwoMCx4Llc1KSgzKSwiOyIsKGU9PmUuaXNTZWFyY2hCcm93c2VPcGVuPyJ0cmFuc2l0aW9uOiBvcGFjaXR5IDBtcyAwbXM7IjoidHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAwbXM7IiksIiAiLChlPT5lLmlzT3BlbiYmZXgpKSxueD0oKT0+e2NvbnN0e2lzU3RhbmRhbG9uZTplfT0oMCxoLkNHKShCLkpRKSx0PSgwLGguQ0cpKHBlLnpsKSxuPSgwLGguVEwpKCksW2ldPSgwLEgudXNlU2VhcmNoUGFyYW1zKSgpLG89InRydWUiPT09aS5nZXQoImhpZGVSZWFjdGlvbnMiKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHR4LHsiZGF0YS10ZXN0aWQiOiJhcnRpY2xlLXN0YW5kYWxvbmUtd3JhcHBlciIsaXNTZWFyY2hCcm93c2VPcGVuOnQsaXNPcGVuOkJvb2xlYW4oZSl9LHIuY3JlYXRlRWxlbWVudChZLHtzcGFjZUlkOnp0LmpnLmlkLGlzT3ZlcmxheTohMH0sci5jcmVhdGVFbGVtZW50KFBlLkNvbnRlbnQsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoUGUuVGl0bGVBcmVhLHt3aGl0ZUJhY2tncm91bmQ6ITAsb25CYWNrOigpPT5uKCgwLE10LlhuKSgpKSxzaG93RXhwYW5kQnV0dG9uOiEwfSkpKSxyLmNyZWF0ZUVsZW1lbnQodXUse2hpZGVSZWFjdGlvbnM6b30pKX07ZnVuY3Rpb24gcngoe3NldElzT3ZlcmxheTplfSl7Y29uc3QgdD0oMCxILnVzZU5hdmlnYXRlKSgpLG49KDAsci51c2VDYWxsYmFjaykoZSxbZV0pO3JldHVybigwLHIudXNlRWZmZWN0KSgoKCk9PihuKCEwKSwoKT0+e24oITEpfSkpKSxyLmNyZWF0ZUVsZW1lbnQoVGUse29uQmFjazooKT0+dCgtMSksc2hvd0V4cGFuZEJ1dHRvbjohMCxpc1N1YlZpZXc6ITAsd2hpdGVCYWNrZ3JvdW5kOiEwfSl9ZnVuY3Rpb24gaXgoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEdlLHtzcGFjZTp6dC52dn0sKGU9PnIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImRldGFpbHMvOm5ld3NJdGVtSWQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KHJ4LHtzZXRJc092ZXJsYXk6ZX0pfSkpKSl9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFjeDUzcm0wIn0pKCJoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiIsKDAsZi5yUykoIndoaXRlIiksIjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7IiksKDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFjeDUzcm0xIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3RvcDowO21pbi1oZWlnaHQ6NzVweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCggMTM1ZGVnLCIsKDAsZi5yUykoImdyYWRpZW50U3RhcnRDb2xvciIpLCIgMCUsIiwoMCxmLnJTKSgiZ3JhZGllbnRFbmRDb2xvciIpLCIgMTAwJSApO2NvbG9yOiIsKDAsZi5yUykoIndoaXRlIiksIjt0cmFuc2l0aW9uOmhlaWdodCAxNjBtcyBlYXNlLW91dDsiKTtjb25zdCBveD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWN4NTNybTIifSkoe25hbWU6IjhhdHFoYiIsc3R5bGVzOiJ3aWR0aDoxMDAlOyJ9KSxheD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWN4NTNybTMifSkoe25hbWU6Ijlyd2F2cCIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3dpZHRoOjEwMCU7In0pLHN4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxY3g1M3JtNCJ9KSh7bmFtZToidndjamRnIixzdHlsZXM6ImZvbnQtc2l6ZToxOHB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctYm90dG9tOjZweDsifSksbHg9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFjeDUzcm01In0pKCJmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjoiLCgwLGYuclMpKCJncmV5IiksIjsiKSxjeD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWN4NTNybTYifSkoe25hbWU6InhpNjA2bSIsc3R5bGVzOiJ0ZXh0LWFsaWduOmNlbnRlcjsifSksZHg9KDAsZi5aUCkoImJ1dHRvbiIse3RhcmdldDoiZTFjeDUzcm03In0pKCJmb250LXNpemU6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsZi5yUykoImFwcENvbG9yIiksIjtjb2xvcjoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7bWFyZ2luLXRvcDoyMHB4O3BhZGRpbmc6MTBweCAzMHB4O2JvcmRlci1yYWRpdXM6NHB4OyIpOygwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxY3g1M3JtOCJ9KSh7bmFtZToiMXg2cnZ0YiIsc3R5bGVzOiJoZWlnaHQ6NzVweDsifSk7Y2xhc3MgTWVzc2VuZ2VyVHJpZ2dlclNjcmVlbiBleHRlbmRzIHIuUHVyZUNvbXBvbmVudHtyZW5kZXJFcnJvcigpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoUXQuWix7ZHVyYXRpb246MjAwfSxyLmNyZWF0ZUVsZW1lbnQoYXgsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoc3gsbnVsbCwoMCx1Lkl1KSgic29tZXRoaW5nX2lzX3dyb25nIikpLHIuY3JlYXRlRWxlbWVudChseCxudWxsLCgwLHUuSXUpKCJ1bmFibGVfdG9fbG9hZF90aGVfbWVzc2VuZ2VyIikpLHIuY3JlYXRlRWxlbWVudChjeCxudWxsLHIuY3JlYXRlRWxlbWVudChkeCx7b25DbGljazp0aGlzLnByb3BzLmhhbmRsZVRyeUFnYWlufSwoMCx1Lkl1KSgidHJ5X2FnYWluIikpKSkpfXJlbmRlckxvYWRpbmcoKXtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFl0Llose2RlbGF5OjMwMH0pfXJlbmRlcigpe2NvbnN0e2ZhaWxlZDplfT10aGlzLnByb3BzO3JldHVybiByLmNyZWF0ZUVsZW1lbnQob3gsbnVsbCxlJiZ0aGlzLnJlbmRlckVycm9yKCksIWUmJnRoaXMucmVuZGVyTG9hZGluZygpKX19dmFyIHB4PW4oMjg3MjApLHV4PW4oOTcyNzMpO2Z1bmN0aW9uIG14KCl7cmV0dXJuIGU9PntlKCgwLHB4Ll8zKShHdC5aUCkpfX1jb25zdCBoeD0oMCxvLmNvbm5lY3QpKChmdW5jdGlvbihlKXtjb25zdCB0PSgwLE4uRFcpKGUpLG49KDAsdXguRUwpKGUpO3JldHVybntmYWlsZWQ6IXQmJm59fSksKGZ1bmN0aW9uKGUpe3JldHVybigwLFpmLmJpbmRBY3Rpb25DcmVhdG9ycykoe2hhbmRsZVRyeUFnYWluOm14fSxlKX0pKShNZXNzZW5nZXJUcmlnZ2VyU2NyZWVuKSxneD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlbjRhZWpyMCJ9KSgicG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOiIsKGU9PmUudGFiQmFySXNWaXNpYmxlPzIwOjU1KSwicHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7JiA+ICp7Ym94LXNoYWRvdzowcHggMHB4IDI1cHggcmdiYSgwLDAsMCwwLjEpLDBweCAwcHggMjVweCByZ2JhKDAsMCwwLDAuMSk7fSIpLGZ4PSgwLGYuWlApKEJlLHt0YXJnZXQ6ImVuNGFlanIxIn0pKHtuYW1lOiJpZnYzNG0iLHN0eWxlczoib3ZlcmZsb3cteTp2aXNpYmxlOyJ9KTtjb25zdCB4eD0oe3RhYkJhcklzVmlzaWJsZTplLGNoaWxkcmVuOnR9KT0+e2NvbnN0e3Zpc2libGU6bixzdHlsZVZhcmlhbnQ6aX09ZnVuY3Rpb24oKXtjb25zdHtwYXRobmFtZTplfT0oMCxILnVzZUxvY2F0aW9uKSgpLHQ9KDAsTi5GeSkoZSksbj0hISgwLGguQ0cpKEpvKSxyPSEhKDAsaC5DRykoWm8uTjIpO3N3aXRjaCh0LmlkKXtjYXNlIHp0Lll1LmlkOnJldHVybnt2aXNpYmxlOm4mJiIvbWVzc2FnZXMiPT09ZSxzdHlsZVZhcmlhbnQ6InByaW1hcnkifTtjYXNlIHp0LmpnLmlkOnJldHVybnt2aXNpYmxlOnIsc3R5bGVWYXJpYW50OiJzZWNvbmRhcnkifTtkZWZhdWx0OnJldHVybnt2aXNpYmxlOiExLHN0eWxlVmFyaWFudDoicHJpbWFyeSJ9fX0oKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KHIuRnJhZ21lbnQsbnVsbCx0LHIuY3JlYXRlRWxlbWVudChmeCx7dHJhbnNpdGlvbktleTpgJHtufS0ke2l9YH0sbiYmci5jcmVhdGVFbGVtZW50KGd4LHt0YWJCYXJJc1Zpc2libGU6ZX0sci5jcmVhdGVFbGVtZW50KEdvLHtzdHlsZVZhcmlhbnQ6aX0pKSkpfSx2eD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWJqNHlkbDAifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZC1jb2xvcjoiLCgwLGYuclMpKCJ3aGl0ZSIpLCI7IikseXg9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFiajR5ZGwxIn0pKCJtYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjhweDsiLFJyLmR2LmNsYXNzTmFtZSwie21hcmdpbi1yaWdodDoxNnB4O30iKSxieD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWJqNHlkbDIifSkoe25hbWU6InIyYTlmeSIsc3R5bGVzOiJib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDYpO21hcmdpbi10b3A6YXV0bzsifSk7dmFyIEV4PXtuYW1lOiIxaDF0bmhlIixzdHlsZXM6InBhZGRpbmctbGVmdDoxOHB4OyJ9LGt4PXtuYW1lOiIxYjFyZmtjIixzdHlsZXM6Imp1c3RpZnktY29udGVudDplbmQ7In07Y29uc3QgQ3g9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFiajR5ZGwzIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjhweCAxMHB4O2JvcmRlci1ib3R0b206cmdiYSgwLDAsMCwwLjA2KSBzb2xpZCAxcHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IiwoKHtvbmx5Q2xvc2VCdXR0b25WaXNpYmxlOmV9KT0+ZSYma3gpLCIgIiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZFeCkpO3ZhciB3eD17bmFtZToiOGF0cWhiIixzdHlsZXM6IndpZHRoOjEwMCU7In07Y29uc3QgU3g9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFiajR5ZGw0In0pKCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyIsKCh7ZnVsbFdpZHRoOmV9KT0+ZSYmd3gpKTt2YXIgUHg9e25hbWU6IjFmbHljOW0iLHN0eWxlczoiZm9udC1zaXplOjE4cHg7In07Y29uc3QgVHg9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFiajR5ZGw1In0pKCJsaW5lLWhlaWdodDoxOXB4O3BhZGRpbmc6NnB4O2ZvbnQtd2VpZ2h0OjYwMDtvdmVyZmxvdzpoaWRkZW47IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZQeCksIiB3b3JkLXdyYXA6YnJlYWstd29yZDsiKSxaeD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWJqNHlkbDYifSkoe25hbWU6Im1lM3AyNyIsc3R5bGVzOiJmbGV4Om5vbmU7In0pLEl4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYmo0eWRsNyJ9KSh7bmFtZToiMXNka2h0eSIsc3R5bGVzOiJtYXJnaW46OHB4IGF1dG8gMDtkaXNwbGF5OnRhYmxlOyJ9KSxqeD0oe2l0ZW06ZX0pPT57Y29uc3QgdD1lLmljb25Db21wb25lbnQuYWN0aXZlLHtzaG93U3BhY2U6bn09TnQoKSxpPWUuYWN0aXZlTm90aWZpY2F0aW9uQ291bnQ+MHx8ZS5oYXNQYXNzaXZlTm90aWZpY2F0aW9ucztyZXR1cm4gci5jcmVhdGVFbGVtZW50KHVyLHtsZWZ0OnIuY3JlYXRlRWxlbWVudCh0LHt2aWV3Qm94OiIwIDAgMjQgMjQiLGhlaWdodDoiMTYiLHdpZHRoOiIxNiJ9KSxyaWdodEljb246IlJpZ2h0Q2hldnJvbkNvbG9yYWJsZSIscmlnaHQ6aSYmci5jcmVhdGVFbGVtZW50KERpLkNjLG51bGwsZS5hY3RpdmVOb3RpZmljYXRpb25Db3VudD4wP2UuYWN0aXZlTm90aWZpY2F0aW9uQ291bnQ6dm9pZCAwKSxvbkNsaWNrOigpPT57bihlLmlkLCJmcm9tSG9tZT10cnVlIil9fSxlLnRpdGxlKX07ZnVuY3Rpb24gX3goKXtjb25zdCBlPSgwLGguQ0cpKE4uVGQpLmZpbHRlcigoZT0+ZS5pZCE9PXp0Lnk3LmlkKSkse2ZldGNoSG9tZUNvbnRlbnQ6dCxzbG90czpuLGlzRmV0Y2hlZDppLGlzRmFpbGVkOm99PXhpKCksYT0oMCxoLkNHKSh6LkRYKSxzPSgwLGguQ0cpKGhlKSxsPSEhbi5maW5kKChlPT4icmVjZW50X2NvbnZlcnNhdGlvbiI9PT1lLnR5cGUpKSxjPW4uZmlsdGVyKChlPT4icmVjZW50X2NvbnZlcnNhdGlvbiIhPT1lLnR5cGUpKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57dCgpfSksW3RdKTtjb25zdHtncmVldGluZzpkLHNob3dBdmF0YXJzOnAsY29tcGFjdDp7c2hvd0hlYWRlcjp1fX09KDAsaC5DRykoUWUpO3JldHVybiBpfHxvP3IuY3JlYXRlRWxlbWVudChPeCx7YWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWQ6YSxzcGFjZXM6ZSxncmVldGluZzpkLHNsb3RzOmMsc2hvd0F2YXRhcnM6cCxoYXNSZWNlbnRDb252ZXJzYXRpb25TbG90Omwsc2hvd0hlYWRlcjp1LGlzQ2xvc2VCdXR0b25WaXNpYmxlOnN9KTpyLmNyZWF0ZUVsZW1lbnQoSXgsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWXQuWixudWxsKSl9Y29uc3QgT3g9KHthY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZDplLHNwYWNlczp0LGdyZWV0aW5nOm4sc2xvdHM6aT1bXSxzaG93QXZhdGFyczpvPSEwLGhhc1JlY2VudENvbnZlcnNhdGlvblNsb3Q6YSxzaG93SGVhZGVyOnMsaXNDbG9zZUJ1dHRvblZpc2libGU6bH0pPT57Y29uc3QgYz1zfHxsO3JldHVybiByLmNyZWF0ZUVsZW1lbnQodngsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoWSx7c3BhY2VJZDp6dC55Ny5pZCxpc092ZXJsYXk6ITB9LGMmJnIuY3JlYXRlRWxlbWVudChBeCx7b25seUNsb3NlQnV0dG9uVmlzaWJsZTohcyxncmVldGluZzpuLGlzQ2xvc2VCdXR0b25WaXNpYmxlOmwsc2hvd0F2YXRhcnM6b30pKSxyLmNyZWF0ZUVsZW1lbnQoeXgsbnVsbCxyLmNyZWF0ZUVsZW1lbnQod3QuWlAse25vRGl2aWRlcjohMH0sdC5tYXAoKGU9PnIuY3JlYXRlRWxlbWVudChqeCx7aXRlbTplLGtleTplLmlkfSkpKSxpLm1hcCgoZT0+KChlLHQpPT57c3dpdGNoKGUudHlwZSl7Y2FzZSJuZXdfY29udmVyc2F0aW9uIjpyZXR1cm4gci5jcmVhdGVFbGVtZW50KGdyLHtrZXk6ZS50eXBlfSk7Y2FzZSJleHRlcm5hbF9saW5rcyI6cmV0dXJuIHIuY3JlYXRlRWxlbWVudChzaSx7a2V5OmUudHlwZSxsaW5rOmUubGlua3NbMF19KTtjYXNlInRpY2tldF9saW5rcyI6cmV0dXJuIHIuY3JlYXRlRWxlbWVudChHaSx7a2V5OmUudHlwZSxsaW5rOmUubGlua3NbMF19KTtkZWZhdWx0OnJldHVybiBudWxsfX0pKGUpKSkpKSxhJiZyLmNyZWF0ZUVsZW1lbnQoYngsbnVsbCxyLmNyZWF0ZUVsZW1lbnQocXIsbnVsbCkpKX0sQXg9KHtvbmx5Q2xvc2VCdXR0b25WaXNpYmxlOmUsZ3JlZXRpbmc6dCxpc0Nsb3NlQnV0dG9uVmlzaWJsZTpuLHNob3dBdmF0YXJzOml9KT0+ci5jcmVhdGVFbGVtZW50KEN4LHsiZGF0YS10ZXN0aWQiOiJjb21wYWN0SGVhZGVyIixvbmx5Q2xvc2VCdXR0b25WaXNpYmxlOmV9LHQmJnIuY3JlYXRlRWxlbWVudChUeCxudWxsLHQuY29udGVudCksci5jcmVhdGVFbGVtZW50KFN4LHtmdWxsV2lkdGg6aSYmbiYmIXR9LGkmJnIuY3JlYXRlRWxlbWVudChaeCx7ImRhdGEtdGVzdGlkIjoiY29tcGFjdEF2YXRhcnMifSxyLmNyZWF0ZUVsZW1lbnQoX3Qse3Nob3dUb29sdGlwOiEwLGF2YXRhclNpemU6MjgsYXZhdGFyUGl4ZWxzVG9TaG93OjI0LG1heEFkbWluczozfSkpLG4mJnIuY3JlYXRlRWxlbWVudCh2ZSx7ZW5hYmxlZDpuLG9uV2hpdGVCYWNrZ3JvdW5kOiEwfSkpKTtmdW5jdGlvbiBCeCgpe2NvbnN0e3BhdGhuYW1lOmV9PSgwLEgudXNlTG9jYXRpb24pKCksdD0tMSE9PWUuaW5kZXhPZigiY29udmVyc2F0aW9uLyIpLG49ZS5zdGFydHNXaXRoKGAvJHt6dC52di5pZH0vZGV0YWlsc2ApLHI9ZS5zdGFydHNXaXRoKGAvJHt6dC5qZy5pZH0vYW5zd2VyL2RldGFpbHNgKSxpPWUuc3RhcnRzV2l0aChgLyR7enQuWXUuaWR9L3RpY2tldHNgKXx8ZS5zdGFydHNXaXRoKGAvJHt6dC5jTy5pZH0vZGV0YWlsc2ApLG89ZS5zdGFydHNXaXRoKGAvJHt6dC5lRC5pZH0vJHtQcy5nOC5jaGVja2xpc3RzfWApLGE9KDAsaC5DRykoUXIub1MpLHM9ZS5zdGFydHNXaXRoKGAvJHt6dC55Ny5pZH0vc2hlZXRgKSxsPSgwLGguQ0cpKEIuTkspLGM9KDAsaC5DRykocGUuemwpLGQ9ISgwLGguQ0cpKE4uY0MpJiZjO3JldHVybiEodHx8bnx8cnx8aXx8bHx8c3x8KDAsTi5UeSkoZSl8fG8mJmF8fGQpfWNvbnN0IFJ4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWtzOWN5MCJ9KSh7bmFtZToiNDNieHJwIixzdHlsZXM6InBhZGRpbmc6MTJweCA4cHggMTJweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93OyJ9KTt2YXIgeng9e25hbWU6IjE5dWc1MjEiLHN0eWxlczoibWFyZ2luLXRvcDo2cHg7In07Y29uc3QgTng9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFha3M5Y3kxIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7aGVpZ2h0OjUxcHg7IiwoKHt0aGVtZTplfSk9PiFlLmlzTW9iaWxlU2l6ZSYmengpLCIgYWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4IDEycHg7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjsiKTt2YXIgTXg9e25hbWU6IjFoeWU3bXIiLHN0eWxlczoiZm9udC1zaXplOjE0cHg7b3BhY2l0eToxOyJ9O2NvbnN0IER4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWtzOWN5MiJ9KSgiZm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjFweDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAyMDBtcyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgMjAwbXMgZWFzZS1pbi1vdXQ7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjE1MG1zO3RyYW5zaXRpb24tZGVsYXk6MTUwbXM7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDtjb2xvcjoiLCgwLGYuclMpKCJtNURhcmtHcmV5MiIpLCI7IiwoKHtzaG93OmV9KT0+ZSYmTXgpKSxMeD0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWFrczljeTMifSkoImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1ncm93OjE7bWluLXdpZHRoOjA7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo1MXB4OyIsY3AuY2xhc3NOYW1lLCJ7dG9wOjBweDt9IixkcC5jbGFzc05hbWUsInttYXJnaW4tbGVmdDowcHg7fSIpO2Z1bmN0aW9uIEd4KHtvbkJhY2tDbGljazplLHRpdGxlOnQsc2hvd1RpdGxlOm59KXtjb25zdCBpPSgwLGguQ0cpKGhlKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KFJ4LG51bGwsci5jcmVhdGVFbGVtZW50KEx4LG51bGwsci5jcmVhdGVFbGVtZW50KGNwLHtvbkNsaWNrOmUsImFyaWEtbGFiZWwiOigwLHUuSXUpKCJuYXZpZ2F0aW9uX2JhY2siKX0sci5jcmVhdGVFbGVtZW50KGRwLG51bGwsci5jcmVhdGVFbGVtZW50KEJmLlosbnVsbCkpKSxyLmNyZWF0ZUVsZW1lbnQoTngsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoRHgse3Nob3c6bn0sdCkpLHIuY3JlYXRlRWxlbWVudChFZSx7cGxhY2U6Im5ld3MtaXRlbSJ9KSxpJiZyLmNyZWF0ZUVsZW1lbnQodmUse29uV2hpdGVCYWNrZ3JvdW5kOiEwfSkpKX1jb25zdCBGeD1lPT5lLmFuc3dlcnMscXg9KDAsQS5jcmVhdGVTZWxlY3RvcikoRngsKGU9PmUuYWN0aXZlQW5zd2VyKSksSHg9KDAsQS5jcmVhdGVTZWxlY3RvcikoRngsKGU9PmUuZmV0Y2hpbmdTdGF0dXMpKTtmdW5jdGlvbiBXeCgpe3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSXAsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoRHAsbnVsbCksci5jcmVhdGVFbGVtZW50KExwLG51bGwpLHIuY3JlYXRlRWxlbWVudChHcCxudWxsKSl9ZnVuY3Rpb24gVXgoKXtyZXR1cm4gVXg9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxVeC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVngoKXt2YXIgZSx0O2NvbnN0IG49KDAsSC51c2VOYXZpZ2F0ZSkoKSxpPSgwLGguVEwpKCksbz0oMCxILnVzZUxvY2F0aW9uKSgpLHtzdGF0ZTphfT1vLHM9KDAsci51c2VSZWYpKG51bGwpLFtsLGNdPSgwLHIudXNlU3RhdGUpKCExKSxbZCxwXT0oMCxyLnVzZVN0YXRlKSghMSksW2csZl09KDAsci51c2VTdGF0ZSkoITEpLHg9KDAsSC51c2VQYXJhbXMpKCksdj0oMCxoLkNHKShEKSx5PSgwLGguQ0cpKHouYUEpLGI9KDAsaC5DRykocXgpLEU9eSYmMj09PShudWxsPT1ifHxudWxsPT09KGU9Yi5yZWFjdGlvbnNSZXBseSl8fHZvaWQgMD09PWU/dm9pZCAwOmUucmVhY3Rpb25JbmRleCksaz0oMCxoLkNHKShCLk5LKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57ayYmaSgoMCxNdC5IYikoR3QuWlApKX0pLFtrLGldKTtjb25zdCBDPSgwLHIudXNlQ2FsbGJhY2spKCgoKT0+e24oLTEpfSksW25dKSx3PSgwLGguQ0cpKEh4KTtpZigoMCxyLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT1wYXJzZUludCh4LmFuc3dlcklkfHwiMCIpLHQ9bnVsbD09Yj92b2lkIDA6Yi5ibG9ja3M7MD09PWV8fHR8fGkocXQoZSkpfSksW2kseC5hbnN3ZXJJZCxiXSksUnQoe29iamVjdDpBdC5vMSxwbGFjZTpBdC5fdixjb250ZXh0Om51bGw9PWE/dm9pZCAwOmEubmF2aWdhdGluZ0Zyb20sbWV0YWRhdGE6e2Fuc3dlcl9pZDpudWxsPT1iP3ZvaWQgMDpiLmlkfSxzZW5kTWV0cmljQ29uZGl0aW9uOiEhYn0pLCFifHx3PT09ZXIuQkMuZmFpbHVyZSlyZXR1cm4gbnVsbDtjb25zdCBTPXc9PT1lci5CQy5zdWNjZXNzJiYobnVsbD09PSh0PWIucmVhY3Rpb25zUmVwbHkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnJlYWN0aW9uU2V0KSYmYi5yZWFjdGlvbnNSZXBseS5yZWFjdGlvblNldC5sZW5ndGg+MDtyZXR1cm4gci5jcmVhdGVFbGVtZW50KE1tLngyLHtrZXk6InBsZWFzZSBkb24ndCBjaGFuZ2UifSxyLmNyZWF0ZUVsZW1lbnQoR3gse29uQmFja0NsaWNrOkMsdGl0bGU6Yi50aXRsZXx8IiIsc2hvd1RpdGxlOmx9KSxyLmNyZWF0ZUVsZW1lbnQoaW8uazYse2hpZGVCb3JkZXI6ZyYmZH0sci5jcmVhdGVFbGVtZW50KG0uS3Yse2luOmcmJmQsY2xhc3NOYW1lczoiaW50ZXJjb20tZHJvcC1zaGFkb3ctZmFkZSIsdGltZW91dDoxNTAsdW5tb3VudE9uRXhpdDohMH0sci5jcmVhdGVFbGVtZW50KGlvLms4LG51bGwpKSxyLmNyZWF0ZUVsZW1lbnQoVWkuWix7aXNJbnNpZGVNb2RhbDohMSxvblNjcm9sbDplPT57Y29uc3QgdD1lLnRhcmdldCxuPXQuc2Nyb2xsVG9wPjAscj10LnNjcm9sbFRvcD4xMjA7ZyE9PW4mJihmKG4pLHAobikpLGwhPT1yJiZjKHIpfSxyZWY6c30sci5jcmVhdGVFbGVtZW50KE1tLmtBLG51bGwsci5jcmVhdGVFbGVtZW50KE1tLldnLHtpc0V4cGFuZGVkOnZ9LHIuY3JlYXRlRWxlbWVudChNbS5fNyxudWxsLGIudGl0bGUpLHIuY3JlYXRlRWxlbWVudChNbS5NQSxudWxsLGIuYmxvY2tzP3IuY3JlYXRlRWxlbWVudChRdC5aLHtkdXJhdGlvbjozMDB9LHIuY3JlYXRlRWxlbWVudChIci5aLHtibG9ja3M6Yi5ibG9ja3Msb25MaW5rQ2xpY2s6ZT0+e2koKDAsTXQub1cpKGUsITEpKX19KSk6ci5jcmVhdGVFbGVtZW50KFd4LG51bGwpKSkpLFMmJnIuY3JlYXRlRWxlbWVudChNbS5XQSxudWxsLHIuY3JlYXRlRWxlbWVudChvYy5aLFV4KHt9LGIucmVhY3Rpb25zUmVwbHkse3Byb21wdDpgJHsoMCx1Lkl1KSgiYXJ0aWNsZV9xdWVzdGlvbiIpfWAsb25SZWFjdGlvblNlbGVjdDplPT57Yi5pZCYmaShIdChudWxsPT1iP3ZvaWQgMDpiLmlkLGUpKX19KSksci5jcmVhdGVFbGVtZW50KG0uS3Yse2NsYXNzTmFtZXM6InNlYXJjaC1icm93c2UtcmVhY3Rpb24tZm9sbG93dXAiLGluOkUsYXBwZWFyOiEwLG1vdW50T25FbnRlcjohMCxvbkVudGVyZWQ6KCk9PntzJiZzZXRUaW1lb3V0KCgoKT0+e3ZhciBlOygwLCRvLmVCKShudWxsPT1zfHxudWxsPT09KGU9cy5jdXJyZW50KXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5zY3JvbGxhYmxlKX0pLDE1MCl9LHRpbWVvdXQ6MTUwfSxyLmNyZWF0ZUVsZW1lbnQoUWQuRzIsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoUWQuRGQsbnVsbCksci5jcmVhdGVFbGVtZW50KFFkLk1WLG51bGwsci5jcmVhdGVFbGVtZW50KGRkLHtpbkFydGljbGU6ITF9KSkpKSkpKSl9dmFyICR4PW4oODEwMzYpO2NvbnN0IEt4PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImVvZmltcW0wIn0pKHtuYW1lOiIxZXQ4ZDA5IixzdHlsZXM6ImZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlOyJ9KSxZeD0oKT0+e2NvbnN0IGU9KDAsaC5UTCkoKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KEt4LG51bGwsci5jcmVhdGVFbGVtZW50KFkse3NwYWNlSWQ6enQuamcuaWQsaXNPdmVybGF5OiEwfSxyLmNyZWF0ZUVsZW1lbnQoUGUuQ29udGVudCxudWxsLHIuY3JlYXRlRWxlbWVudChQZS5UaXRsZUFyZWEse3doaXRlQmFja2dyb3VuZDohMCxvbkJhY2s6KCk9PmUoKDAsJHguSG0pKCkpfSkpKSxyLmNyZWF0ZUVsZW1lbnQoVngsbnVsbCkpfTt2YXIgSng9big5MTI5NCk7Y29uc3QgWHg9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFoZGQ1cHIwIn0pKHtuYW1lOiJlMmJ6NnoiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2p1c3RpZnktY29udGVudDpjZW50ZXI7In0pLFF4PSgoMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWhkZDVwcjEifSkoe25hbWU6ImR4d2hsYiIsc3R5bGVzOiJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2hlaWdodDo2NHB4O3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7In0pLCgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxaGRkNXByMiJ9KSgicG9zaXRpb246YWJzb2x1dGU7dG9wOjI2cHg7bGVmdDoyNnB4O3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7Y3Vyc29yOnBvaW50ZXI7PiBzdmd7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDt9IixKeC5Udy5jbGFzc05hbWUsIiA+IGcgPiBne2ZpbGw6IiwoKHt0aGVtZTplfSk9PmV2KGUpKSwiO30iKSksZXY9ZT0+ZS5pc1ByaW1hcnlDb2xvckxpZ2h0P2UuYmxhY2s6ZS5wcmltYXJ5Q29sb3IsdHY9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFoZGQ1cHIzIn0pKCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MjhweDtwYWRkaW5nOjAgMTZweCAwIDE2cHg7bGluZS1oZWlnaHQ6MjRweDsuaW50ZXJjb20tYmxvY2stcGFyYWdyYXBoe2NvbG9yOiIsKDAsZi5yUykoImdyZXkiKSwiO31idXR0b246aG92ZXJ7IiwoKHt0aGVtZTplfSk9PmUuaXNQcmltYXJ5Q29sb3JMaWdodCYmKDAsZi5pdikoImJvcmRlcjoxcHggc29saWQgIixlLmxpZ2h0QnV0dG9uT3V0bGluZUhvdmVyQ29sb3IsIjttYXJnaW46LTFweDsiKSksIjt9IiksbnY9KDAsZi5aUCkoImNhbnZhcyIse3RhcmdldDoiZTFoZGQ1cHI0In0pKHtuYW1lOiIxbXdsY2F4IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTsifSk7dmFyIHJ2PW4oMjg5MDApLGl2PW4oOTkxMzgpLG92PW4ubihpdik7Y29uc3QgYXY9KHtzaG93Q29uZmV0dGk6ZSxjb21wbGV0aW9uU2NyZWVuQnV0dG9uVGV4dDp0LGNvbXBsZXRpb25TY3JlZW5CbG9ja3M6bn0pPT57Y29uc3QgaT0oMCxILnVzZU5hdmlnYXRlKSgpLG89KDAsci51c2VSZWYpKG51bGwpOygwLHIudXNlRWZmZWN0KSgoKCk9PntpZighby5jdXJyZW50fHwhZSlyZXR1cm47Y29uc3QgdD1vdigpLmNyZWF0ZShvLmN1cnJlbnQse3Jlc2l6ZTohMH0pOygwLFBzLnlxKSh0KX0pLFtlXSk7Y29uc3QgYT0oKT0+e2koLTEpfSxzPXR8fCJDb250aW51ZSI7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KFh4LG51bGwsci5jcmVhdGVFbGVtZW50KG52LHtyZWY6b30pLHIuY3JlYXRlRWxlbWVudChReCx7b25DbGljazphLCJkYXRhLXRlc3RpZCI6ImNvbXBsZXRpb24tc2NyZWVuLWNsb3NlLWJ1dHRvbiJ9LHIuY3JlYXRlRWxlbWVudChydi5aLG51bGwpKSxyLmNyZWF0ZUVsZW1lbnQodHYsbnVsbCxyLmNyZWF0ZUVsZW1lbnQoSHIuWix7YmxvY2tzOm59KSxyLmNyZWF0ZUVsZW1lbnQoRG8seyJkYXRhLXRlc3RpZCI6ImNoZWNrbGlzdC1jb21wbGV0aW9uLXNjcmVlbi1hY3Rpb24tYnV0dG9uIixvbkNsaWNrOmF9LHMpKSkpfSxzdj0oKT0+e2NvbnN0IGU9KDAsSC51c2VQYXJhbXMpKCksdD0oMCxoLkNHKSgoMCxRci5kVCkoTnVtYmVyKG51bGw9PWU/dm9pZCAwOmUuY2hlY2tsaXN0UHJvZ3Jlc3NJZCkpKSx7c2hvd0NvbmZldHRpOm4sY29tcGxldGlvblNjcmVlbkJsb2NrczppLGNvbXBsZXRpb25TY3JlZW5CdXR0b25UZXh0Om99PXQ7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChhdix7c2hvd0NvbmZldHRpOm4sY29tcGxldGlvblNjcmVlbkJsb2NrczppLGNvbXBsZXRpb25TY3JlZW5CdXR0b25UZXh0Om99KX0sbHY9KHtzZXRJc092ZXJsYXk6ZX0pPT57Y29uc3QgdD0oMCxILnVzZU5hdmlnYXRlKSgpLG49KDAsSC51c2VMb2NhdGlvbikoKSxpPSgwLGguVEwpKCksbz0oMCxoLkNHKShRci5vUyksYT0oMCxoLkNHKShOLkcwKSxzPW98fGEsbD1YKHp0LmVEKSxjPXM/IiI6bCxkPSgwLE4uVHkpKG4ucGF0aG5hbWUpLHA9KDAsci51c2VDYWxsYmFjaykoZSxbZV0pOygwLHIudXNlRWZmZWN0KSgoKCk9PihwKHN8fGQpLCgpPT57cChkKX0pKSk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChQZS5Db250ZW50LG51bGwsci5jcmVhdGVFbGVtZW50KFBlLlRpdGxlQXJlYSx7d2hpdGVCYWNrZ3JvdW5kOnMsdGl0bGU6YyxvbkJhY2s6cz8oKT0+e2koKDAsaHMuYVkpKCkpLHQoLTEpfTp2b2lkIDB9KSl9O2Z1bmN0aW9uIGN2KCl7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChHZSx7c3BhY2U6enQuZUR9LChlPT5yLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOlBzLmc4LmNoZWNrbGlzdERldGFpbHMoIjpjaGVja2xpc3RQcm9ncmVzc0lkIiksZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQobHYse3NldElzT3ZlcmxheTplfSl9KSkpKX1jb25zdCBkdj0oe3NldE1lc3NlbmdlckR5bmFtaWNIZWlnaHQ6ZSxjaGlsZHJlbjp0LHNob3dJbnRlcmNvbUxpbms6bix0YXJnZXRTcGFjZUlEOml9KT0+e2NvbnN0e2N1cnJlbnRTcGFjZTpvfT1OdCgpO2lmKCEoby5pZD09PWkpKXJldHVybiByLmNyZWF0ZUVsZW1lbnQoci5GcmFnbWVudCxudWxsLHQpO3JldHVybiByLmNyZWF0ZUVsZW1lbnQoSy5aLHtzdHlsZTp7d2lkdGg6IjEwMCUifSxvbkhlaWdodENoYW5nZTp0PT57aWYoIWUpcmV0dXJuO2xldCByO3ZvaWQgMCE9PXQmJihyPXQrKG4/MzI6MCkpLGUocil9fSx0KX0scHY9KHtmcmFtZVdpbmRvdzplLHNldE1lc3NlbmdlckR5bmFtaWNIZWlnaHQ6dH0pPT57Y29uc3R7c2hvd1NwYWNlOm4sY3VycmVudFNwYWNlOml9PU50KCksbz0oMCxILnVzZUxvY2F0aW9uKSgpLGE9KDAsaC5DRykoei5hNSkscz0oMCxoLkNHKShOLkcwKSxsPSgwLGguQ0cpKHouTVkpLGM9KDAsaC5DRykoTi5UZCksZD1CeCgpJiZjLmxlbmd0aD4xJiYhcyxwPUJ4KCkmJmw7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e2EmJigoMCxPdC5XTSkoInZpZXdlZCIsaS5pZCwibWVzc2VuZ2VyIiwiIiksdCYmdCh2b2lkIDApKX0pLFtpLmlkLGEsdF0pLHIuY3JlYXRlRWxlbWVudChUZix7Y3VycmVudFNwYWNlOmkuaWQsc2hvd1NwYWNlOm4sc2hvd1RhYkJhcjpkLHRhYkJhckl0ZW1zOmMsc2hvd0ludGVyY29tTGluazpwfSxyLmNyZWF0ZUVsZW1lbnQoeHgse3RhYkJhcklzVmlzaWJsZTpkfSxyLmNyZWF0ZUVsZW1lbnQoVixudWxsKSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZXMse2xvY2F0aW9uOm99LHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtlbGVtZW50OnIuY3JlYXRlRWxlbWVudChuZixudWxsKX0sci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6IioiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KEguTmF2aWdhdGUse3RvOnp0Lnk3LnBhdGh9KX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOnp0Lnk3LnBhdGgrIi8qIn0sci5jcmVhdGVFbGVtZW50KEguUm91dGUse2luZGV4OiEwLGVsZW1lbnQ6cz9yLmNyZWF0ZUVsZW1lbnQoZHYse3NldE1lc3NlbmdlckR5bmFtaWNIZWlnaHQ6dCxzaG93SW50ZXJjb21MaW5rOnAsdGFyZ2V0U3BhY2VJRDp6dC55Ny5pZH0sci5jcmVhdGVFbGVtZW50KF94LG51bGwpKTpyLmNyZWF0ZUVsZW1lbnQoV2ksbnVsbCl9KSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDoic2hlZXQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KFFmLHtmcmFtZVdpbmRvdzplfSl9KSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6enQuWXUucGF0aCsiLyoiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KFZhLG51bGwpfSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7ZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQobWYse3NwYWNlOnp0Lll1fSl9LHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtpbmRleDohMCxlbGVtZW50OnIuY3JlYXRlRWxlbWVudChRbyxudWxsKX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJjb252ZXJzYXRpb24vdHJpZ2dlci1zY3JlZW4iLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KGh4LG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImNvbnZlcnNhdGlvbi86Y29udmVyc2F0aW9uSWQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KEtjLG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImNvbnZlcnNhdGlvbi9uZXciLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KEtjLG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6InRpY2tldHMifSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDoiY3JlYXRlLzp0aWNrZXRUeXBlSWQiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KEFnLG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6Ijp0aWNrZXRJZCIsZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQodGYsbnVsbCl9KSkpKSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDp6dC5qZy5wYXRoKyIvKiJ9LHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtpbmRleDohMCxlbGVtZW50OnIuY3JlYXRlRWxlbWVudChCdSxudWxsKX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJhcnRpY2xlLXN0YW5kYWxvbmUiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KG54LG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImFuc3dlci9kZXRhaWxzLzphbnN3ZXJJZCIsZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQoWXgsbnVsbCl9KSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6enQudnYucGF0aCsiLyoiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KGl4LG51bGwpfSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7ZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQobWYse3NwYWNlOnp0LnZ2fSl9LHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtpbmRleDohMCxlbGVtZW50OnIuY3JlYXRlRWxlbWVudChDbyxudWxsKX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJmZWVkIixlbGVtZW50OnIuY3JlYXRlRWxlbWVudChDbyxudWxsKX0pLHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtwYXRoOiJkZXRhaWxzLzpuZXdzSXRlbUlkIixlbGVtZW50OnIuY3JlYXRlRWxlbWVudChWbSxudWxsKX0pKSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6enQuZUQucGF0aCsiLyoiLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KGN2LG51bGwpfSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7aW5kZXg6ITAsZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQodnMsbnVsbCl9KSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDpQcy5nOC5jaGVja2xpc3REZXRhaWxzKCI6Y2hlY2tsaXN0UHJvZ3Jlc3NJZCIpLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KE5tLG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6UHMuZzguY2hlY2tsaXN0Q29tcGxldGlvblNjcmVlbigiOmNoZWNrbGlzdFByb2dyZXNzSWQiKSxlbGVtZW50OnIuY3JlYXRlRWxlbWVudChzdixudWxsKX0pKSxyLmNyZWF0ZUVsZW1lbnQoSC5Sb3V0ZSx7cGF0aDp6dC5jTy5wYXRoKyIvKiIsZWxlbWVudDpyLmNyZWF0ZUVsZW1lbnQoU3MsbnVsbCl9LHIuY3JlYXRlRWxlbWVudChILlJvdXRlLHtlbGVtZW50OnIuY3JlYXRlRWxlbWVudChtZix7c3BhY2U6enQuY099KX0sci5jcmVhdGVFbGVtZW50KEguUm91dGUse2luZGV4OiEwLGVsZW1lbnQ6ci5jcmVhdGVFbGVtZW50KHdzLG51bGwpfSksci5jcmVhdGVFbGVtZW50KEguUm91dGUse3BhdGg6ImRldGFpbHMvOnRpY2tldElkIixlbGVtZW50OnIuY3JlYXRlRWxlbWVudCh0ZixudWxsKX0pKSkpKSkpfTt2YXIgdXY9bigxNDk3OCk7Y29uc3QgbXY9ImludGVyY29tLW1vYmlsZS1tZXNzZW5nZXItYWN0aXZlIixodj0iaW50ZXJjb20tbW9iaWxlLW1lc3Nlbmdlci1pb3MtMTUiLGd2PSh7aXNNZXNzZW5nZXJPcGVuOmV9KT0+e2NvbnN0IHQ9KDAsaC5UTCkoKSxuPSgwLHIudXNlQ29udGV4dCkodXYuWiksaT0oMCxoLkNHKShEKSxvPSgwLGguQ0cpKChlPT5lLmFydGljbGUuaXNMb2FkZWQpKSxbYSxzXT1yLnVzZVN0YXRlKDApLFtsLGNdPSgwLHIudXNlU3RhdGUpKCExKSxkPSgwLHplLkQpKGUpLHA9KDAsaC5DRykoTi5HMCksdT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PnsoMCxSLnhNKShuKSxwfHwoKDAsJG8uSVYpKG51bGw9PW4/dm9pZCAwOm4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG12KSwoMCx1aS54UykoKSYmKDAsJG8uSVYpKG51bGw9PW4/dm9pZCAwOm4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGh2KSl9KSxbbixwXSksbT0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9PnsoMCxSLlRUKShuKSxwfHwoKDAsJG8uY24pKG51bGw9PW4/dm9pZCAwOm4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG12KSwoMCx1aS54UykoKSYmKDAsJG8uY24pKG51bGw9PW4/dm9pZCAwOm4uZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGh2KSl9KSxbbixwXSksZj0oMCxyLnVzZUNhbGxiYWNrKSgoKCk9Pnt2YXIgZTtudWxsIT09KGU9d2luZG93KSYmdm9pZCAwIT09ZSYmbnVsbCE9PShlPWUucGFyZW50KSYmdm9pZCAwIT09ZSYmZS5zY3JvbGxUbyYmYSYmd2luZG93LnBhcmVudC5zY3JvbGxUbygwLGEpfSksW2FdKTsoMCxyLnVzZUVmZmVjdCkoKCgpPT57bGV0IHQ7cmV0dXJuIHMod2luZG93LnBhcmVudC5zY3JvbGxZfHwwKSxlJiYoMCx1aS5LMSkoKSYmKDAsUi5VSykoKSYmbSgpLCFlJiZkJiYoYyghMCksdSgpLGYoKSx0PXNldFRpbWVvdXQoKCgpPT57YyghMSl9KSwxZTMpKSwoKT0+Y2xlYXJUaW1lb3V0KHQpfSksW2UsdSxmLG0sZF0pO2NvbnN0e2lzQ29tcGFjdEhvbWVTaG93aW5nOnh9PU50KCksW3YseV09ZnVuY3Rpb24oKXtjb25zdCBlPSgwLGguQ0cpKE4uRzApPzI1MDp2b2lkIDA7cmV0dXJuKDAsci51c2VTdGF0ZSkoZSl9KCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChPLHtpc0V4cGFuZGVkOmksaXNBcnRpY2xlTG9hZGVkOiEhbyxjbGFzc05hbWU6ImludGVyY29tLW1lc3Nlbmdlci1mcmFtZSIsb25UcmFuc2l0aW9uRW5kOmU9Pnsid2lkdGgiPT09ZS5wcm9wZXJ0eU5hbWUmJnQoKDAsJC5TVCkoKSl9LGlzTWVzc2VuZ2VyT3BlbjplLGlzQ29tcGFjdEhvbWVTaG93aW5nOngsZHluYW1pY0hlaWdodDp2LGlzQ29tcGFjdDpwLGRpc2FibGVPcGVuQW5pbWF0aW9uOigwLEYubSkoKX0sKGV8fGwpJiZyLmNyZWF0ZUVsZW1lbnQoZy5aUCx7ZnJhbWVOYW1lOiJpbnRlcmNvbS1tZXNzZW5nZXItZnJhbWUiLHRpdGxlOiJJbnRlcmNvbSBsaXZlIGNoYXQiLGFyaWFMaXZlQXNzZXJ0aXZlOiExLHJlbW92ZUJvZHlNYXJnaW46ITB9LChlPT5yLmNyZWF0ZUVsZW1lbnQocHYse2ZyYW1lV2luZG93OmUsc2V0TWVzc2VuZ2VyRHluYW1pY0hlaWdodDp5fSkpKSl9O3ZhciBmdj1uKDc2NDM3KTtmdW5jdGlvbiB4dih7aXNNZXNzZW5nZXJPcGVuOmV9KXtjb25zdCB0PSgwLGguVEwpKCksbj0oMCxoLkNHKShOLmZoKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCgpPT57ZSYmdCgoMCxmdi52MykoKSl9KSxbdCxuLGVdKSxyLmNyZWF0ZUVsZW1lbnQoZ3Yse2lzTWVzc2VuZ2VyT3BlbjplfSl9dmFyIHZ2PW4oNjYzMTgpLHl2PW4oNDQ0MzYpLGJ2PW4oMzEyODkpLEV2PW4oMjE5MjUpO3ZhciBrdj1uKDYwNzA3KTtjb25zdCBDdj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTFybGd1ajAifSkoInBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtiYWNrZ3JvdW5kOiIsKDAsZi5yUykoInByaW1hcnlDb2xvciIpLCI7d2lkdGg6IiwoMCxmLnJTKSgibGF1bmNoZXJTaXplUHgiKSwicHg7aGVpZ2h0OiIsKDAsZi5yUykoImxhdW5jaGVyU2l6ZVB4IiksInB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTsiLCgoe2JhZGdlQ3V0b3V0VHlwZTplfSk9PiJhY3RpdmUiPT09ZSYmKDAsZi5pdikoIm1hc2staW1hZ2U6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCIsKDAsa3YuWikoJzxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgNDggNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+XG48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQyLjk5OTEgMEM0MC41NzA3IDEuODI0NDYgMzkgNC43Mjg4IDM5IDhDMzkgMTMuMTg1MyA0Mi45NDY3IDE3LjQ0ODkgNDggMTcuOTUwNlY0OEgwVjBINDIuOTk5MVoiIGZpbGw9IiMwMDAiLz5cbjwvc3ZnPlxuJyksIicpO2JvcmRlci1yYWRpdXM6MDsiKSksIjsiLCgoe2JhZGdlQ3V0b3V0VHlwZTplfSk9PiJwYXNzaXZlIj09PWUmJigwLGYuaXYpKCJtYXNrLWltYWdlOnVybCgnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiLCgwLGt2LlopKCc8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPlxuPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OCAwSDBWNDhINDhWMTIuOTMzM0M0Ni45ODA5IDEzLjg0NTQgNDUuNjM1MiAxNC40IDQ0LjE2IDE0LjRDNDAuOTc4OCAxNC40IDM4LjQgMTEuODIxMiAzOC40IDguNjRDMzguNCA1LjQ1ODg0IDQwLjk3ODggMi44OCA0NC4xNiAyLjg4QzQ1LjYzNTIgMi44OCA0Ni45ODA5IDMuNDM0NiA0OCA0LjM0NjY3VjBaIiBmaWxsPSIjMDAwIi8+XG48L3N2Zz5cbicpLCInKTtib3JkZXItcmFkaXVzOjA7IikpLCI7KntjdXJzb3I6cG9pbnRlcjt9Iik7dmFyIHd2PXtuYW1lOiIxbDB1dWNnIixzdHlsZXM6InRyYW5zZm9ybTpub25lOyJ9O2NvbnN0IFN2PSh7dGhlbWU6ZX0pPT4oMCxmLml2KSgidXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MTAwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjE2cyBsaW5lYXIsb3BhY2l0eSAwLjA4cyBsaW5lYXI7IixlLmlzTW9iaWxlU2l6ZSYmd3YpO3ZhciBQdj17bmFtZToidXFyZzNsIixzdHlsZXM6Im9wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZTsifSxUdj17bmFtZToicTh0aHR2IixzdHlsZXM6InRyYW5zaXRpb246dHJhbnNmb3JtIDAuNHMgZWFzZSAwLjJzOyJ9LFp2PXtuYW1lOiJmMzdlMTkiLHN0eWxlczoib3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpIHNjYWxlKDApOyJ9O2NvbnN0IEl2PSgwLGYuWlApKCJkaXYiLHt0YXJnZXQ6ImUxMXJsZ3VqMSJ9KShTdiwiIG9wYWNpdHk6MTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpIHNjYWxlKDEpO3N2Z3t3aWR0aDoiLCgoe3RoZW1lOmV9KT0+ZS5sYXVuY2hlckljb25TaXplUHhNNSksInB4O2hlaWdodDoiLCgoe3RoZW1lOmV9KT0+ZS5sYXVuY2hlckljb25TaXplUHhNNSksInB4O3BhdGh7ZmlsbDoiLCgwLGYuclMpKCJsYXVuY2hlckljb25Db2xvciIpLCI7fX0iLCgoe2FjdGl2ZTplfSk9PmUmJlp2KSwiICIsKCh7ZGlzY292ZXJ5TW9kZTplfSk9PmUmJlR2KSwiICIsKCh7dGhlbWU6ZSxhY3RpdmU6dH0pPT50JiZlLmlzTW9iaWxlU2l6ZSYmUHYpKTt2YXIganY9e25hbWU6InVxcmczbCIsc3R5bGVzOiJvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmU7In0sX3Y9e25hbWU6InE4dGh0diIsc3R5bGVzOiJ0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2UgMC4yczsifSxPdj17bmFtZToiZjM3ZTE5IixzdHlsZXM6Im9wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKDMwZGVnKSBzY2FsZSgwKTsifTtjb25zdCBBdj0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTFybGd1ajIifSkoU3YsIiBvcGFjaXR5OjE7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtzdmd7aGVpZ2h0OiIsKCh7dGhlbWU6ZX0pPT5lLmxhdW5jaGVyU2l6ZVB4LTQpLCJweDtwYXRoe2ZpbGw6IiwoMCxmLnJTKSgibGF1bmNoZXJJY29uQ29sb3IiKSwiO319IiwoKHthY3RpdmU6ZX0pPT5lJiZPdiksIiAiLCgoe2Rpc2NvdmVyeU1vZGU6ZX0pPT5lJiZfdiksIiAiLCgoe3RoZW1lOmUsYWN0aXZlOnR9KT0+dCYmZS5pc01vYmlsZVNpemUmJmp2KSk7dmFyIEJ2PXtuYW1lOiJxN2xmZngiLHN0eWxlczoib3BhY2l0eTowOyJ9LFJ2PXtuYW1lOiJ6ejZ6ZnQiLHN0eWxlczoib3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyk7In07Y29uc3QgenY9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTExcmxndWozIn0pKFN2LCIgb3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoLTYwZGVnKTtzdmd7cGF0aHtmaWxsOiIsKDAsZi5yUykoImxhdW5jaGVySWNvbkNvbG9yIiksIjt9fSIsKCh7YWN0aXZlOmV9KT0+ZSYmUnYpLCIgIiwoKHt0aGVtZTplLGFjdGl2ZTp0fSk9PnQmJmUuaXNNb2JpbGVTaXplJiZCdikpLE52PSgwLGYuWlApKCJpbWciLHt0YXJnZXQ6ImUxMXJsZ3VqNCJ9KSgibWF4LXdpZHRoOiIsKDAsZi5yUykoImxhdW5jaGVySWNvblNpemVQeE01IiksInB4O21heC1oZWlnaHQ6IiwoMCxmLnJTKSgibGF1bmNoZXJJY29uU2l6ZVB4TTUiKSwicHg7cG9zaXRpb246cmVsYXRpdmU7Iik7dmFyIE12PW4oMzk0MjUpO2Z1bmN0aW9uIER2KCl7cmV0dXJuIER2PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sRHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNvbnN0IEx2PSh7aXNNZXNzZW5nZXJPcGVuOmUsZnJhbWVXaW5kb3c6dCxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6bixsYXVuY2hlckxvZ29Vcmw6aSxhbGxvd1NlbGZTZXJ2ZUljb246byxiYWRnZUN1dG91dFR5cGU6YSxvbkNsaWNrOnN9KT0+eygwLHIudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBuPW5ldyBVZi5aKHtkb2N1bWVudDp0LmRvY3VtZW50LGRpc2FibGVTdGFydGluZ1RyYXA6KCk9PiEwLGRpc2FibGVFbmRpbmdUcmFwOigpPT4hZSxmaXJzdEVsZW1lbnQ6KCk9PigwLFZmLlZWKSgpfSk7cmV0dXJuIGZ1bmN0aW9uKCl7biYmbi5yZXN0b3JlKCl9fSksW3QuZG9jdW1lbnQsZV0pO2NvbnN0IGw9ImludGVyY29tLWxhdW5jaGVyICIrKGU/ImludGVyY29tLWxhdW5jaGVyLWFjdGl2ZSI6IiIpLGM9IWkmJm87cmV0dXJuIHIuY3JlYXRlRWxlbWVudChDdix7Y2xhc3NOYW1lOmwsb25DbGljazpzLHJvbGU6ImJ1dHRvbiIsYmFkZ2VDdXRvdXRUeXBlOmEsImRhdGEtdGVzdGlkIjpgbGF1bmNoZXItd2l0aC1iYWRnZS1jdXRvdXQtJHthfWAsImFyaWEtbGFiZWwiOmU/KDAsdS5JdSkoImNsb3NlX2ludGVyY29tX21lc3NlbmdlciIpOigwLHUuSXUpKCJvcGVuX2ludGVyY29tX21lc3NlbmdlciIpfSxjP3IuY3JlYXRlRWxlbWVudChBdix7YWN0aXZlOmUsZGlzY292ZXJ5TW9kZTpuLCJkYXRhLXRlc3RpZCI6ImxhdW5jaGVyLXNlbGYtc2VydmUtb3Blbi1pY29uIn0sci5jcmVhdGVFbGVtZW50KEV2LlosbnVsbCkpOnIuY3JlYXRlRWxlbWVudChJdix7YWN0aXZlOmUsZGlzY292ZXJ5TW9kZTpuLCJkYXRhLXRlc3RpZCI6aT8ibGF1bmNoZXItY3VzdG9tLW9wZW4taWNvbiI6ImxhdW5jaGVyLWRlZmF1bHQtb3Blbi1pY29uIn0saT9yLmNyZWF0ZUVsZW1lbnQoTnYse3NyYzppLGFsdDoiIn0pOnIuY3JlYXRlRWxlbWVudChidi5aLG51bGwpKSxyLmNyZWF0ZUVsZW1lbnQoenYse2FjdGl2ZTplLCJkYXRhLXRlc3RpZCI6ImxhdW5jaGVyLW1pbmltaXplLWljb24ifSxyLmNyZWF0ZUVsZW1lbnQoeXYuWixudWxsKSkpfSxHdj1lPT57Y29uc3R7aXNNZXNzZW5nZXJPcGVuOnQsbGF1bmNoZXJMb2dvVXJsOm59PSgwLGguQ0cpKChlPT5lLmFwcCkpLHtpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6aX09KDAsaC5DRykoKGU9PmUubGF1bmNoZXJEaXNjb3ZlcnlNb2RlKSksbz0oMCxoLkNHKSh6LmlVKSxhPSgwLGguVEwpKCkscz0oMCxoLkNHKShOLlJTKSxsPSgwLGguQ0cpKE12LmFsKTtsZXQgYz0ibm9uZSI7cmV0dXJuIGUuaGFzQmFkZ2UmJihjPWw+MD8iYWN0aXZlIjoicGFzc2l2ZSIpLHIuY3JlYXRlRWxlbWVudChMdixEdih7aXNNZXNzZW5nZXJPcGVuOnQsbGF1bmNoZXJMb2dvVXJsOm4saXNMYXVuY2hlckRpc2NvdmVyeU1vZGVFbmFibGVkOmksYWxsb3dTZWxmU2VydmVJY29uOm8sYmFkZ2VDdXRvdXRUeXBlOmMsb25DbGljazooKT0+eygwLE90LldNKSgiY2xpY2tlZCIsImxhdW5jaGVyIiwiaW5fYXBwIiwiIix7c3BhY2Vfb3BlbmVkOm51bGw9PXM/dm9pZCAwOnMuaWR9KSxhKCgwLGNlLmpEKSgpKX19LGUpKX07dmFyIEZ2PXtuYW1lOiJxN2xmZngiLHN0eWxlczoib3BhY2l0eTowOyJ9LHF2PXtuYW1lOiJtdTY2NXciLHN0eWxlczoiZmlsdGVyOmRyb3Atc2hhZG93KDAgMXB4IDZweCByZ2JhKDAsMCwwLDAuMDYpKSBkcm9wLXNoYWRvdygwIDJweCAzMnB4IHJnYmEoMCwwLDAsMC4xNikpOyJ9LEh2PXtuYW1lOiIxc3c2NHRkIixzdHlsZXM6ImZpbHRlcjpkcm9wLXNoYWRvdygwIDFweCA2cHggcmdiYSgwLDAsMCwwLjA2KSkgZHJvcC1zaGFkb3coMCAycHggMzJweCByZ2JhKDAsMCwwLDAuMTYpKTt0cmFuc2l0aW9uOmJveC1zaGFkb3cgODBtcyBlYXNlLWluLW91dDtwb2ludGVyLWV2ZW50czphdXRvOyY6aG92ZXJ7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMnB4IDhweCByZ2JhKDAsMCwwLDAuMDkpKSBkcm9wLXNoYWRvdygwIDRweCA0MHB4IHJnYmEoMCwwLDAsMC4yNCkpO30mOmFjdGl2ZXtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAxcHggNnB4IHJnYmEoMCwwLDAsMC4wNikpIGRyb3Atc2hhZG93KDAgMnB4IDMycHggcmdiYSgwLDAsMCwwLjE2KSk7fSJ9O2NvbnN0IFd2PSgwLGYuWlApKGcuWlAse3RhcmdldDoiZWZyMjNwZjAifSkoInotaW5kZXg6IiwoMCx4Llc1KSgpLCI7d2lkdGg6IiwoMCxmLnJTKSgibGF1bmNoZXJTaXplUHgiKSwicHg7aGVpZ2h0OiIsKDAsZi5yUykoImxhdW5jaGVyU2l6ZVB4IiksInB4O2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yLXNjaGVtZTpub25lO2JhY2tncm91bmQ6bm9uZTsiLCgoe3RoZW1lOmV9KT0+ZS5pc0xlZnRBbGlnbiYmKDAsZi5pdikoImxlZnQ6IixlLmhvcml6b250YWxQYWRkaW5nUHgsInB4O3JpZ2h0OmF1dG87IikpLCIgIiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGUmJkh2KSwiICIsKCh7c2hvdWxkUmVuZGVyU2hhZG93OmV9KT0+ZSYmcXYpLCIgIiwoKHt0aGVtZTplLGlzTWVzc2VuZ2VyT3Blbjp0fSk9PmUuaXNNb2JpbGVTaXplJiZ0JiZGdikpO2Z1bmN0aW9uIFV2KGUpe2NvbnN0e3Nob3VsZFJlbmRlclNoYWRvdzp0LGhhc0JhZGdlOm4saXNNZXNzZW5nZXJPcGVuOml9PWU7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChXdix7Y2xhc3NOYW1lOiJpbnRlcmNvbS1sYXVuY2hlci1mcmFtZSIsZnJhbWVOYW1lOiJpbnRlcmNvbS1sYXVuY2hlci1mcmFtZSIsdGl0bGU6IkludGVyY29tIGxpdmUgY2hhdCIsYXJpYUxpdmVBc3NlcnRpdmU6ITEsc2hvdWxkUmVuZGVyU2hhZG93OnQsaXNNZXNzZW5nZXJPcGVuOml9LChlPT5yLmNyZWF0ZUVsZW1lbnQoR3Yse2ZyYW1lV2luZG93OmUsaGFzQmFkZ2U6bn0pKSl9dmFyIFZ2PW4oOTA2NTkpO2NvbnN0ICR2PSgpPT5udWxsO2Z1bmN0aW9uIEt2KHtsb2FkZXI6ZSxsb2FkaW5nOnQ9JHYsZXJyb3I6bj0kdixtYXhBdXRvUmV0cmllczppPTMsbmFtZTpvPSJMb2FkYWJsZSIsZGVwZW5kZW5jaWVzOmE9W119KXtjbGFzcyBMb2FkYWJsZSBleHRlbmRzIHIuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLnIpe3N1cGVyKC4uLnIpLHRoaXMudW5tb3VudGVkPSExLHRoaXMuc3RhdGU9e0NvbXBvbmVudDpudWxsLEVycm9yOm4sTG9hZGluZzp0LHNob3dFcnJvcjohMX0sdGhpcy5sb2FkPSgpPT57dGhpcy5zZXRTdGF0ZSh7Q29tcG9uZW50Om51bGwsc2hvd0Vycm9yOiExfSk7Y29uc3QgdD1bZSwuLi5hXS5tYXAoKGU9PmUoKSkpO3JldHVybigwLFZ2LlopKHtwcm9taXNlOigpPT5Qcm9taXNlLmFsbCh0KSxtYXhSZXRyaWVzOml9KS50aGVuKCgoW2VdKT0+e3RoaXMudW5tb3VudGVkfHx0aGlzLnNldFN0YXRlKHtDb21wb25lbnQ6ZS5kZWZhdWx0fHxlLHNob3dFcnJvcjohMX0pfSksKCgpPT57dGhpcy51bm1vdW50ZWR8fHRoaXMuc2V0U3RhdGUoe3Nob3dFcnJvcjohMH0pfSkpfX1jb21wb25lbnREaWRNb3VudCgpe3JldHVybiB0aGlzLmxvYWQoKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMudW5tb3VudGVkPSEwfXJlbmRlcigpe2NvbnN0e0NvbXBvbmVudDplLEVycm9yOnQsTG9hZGluZzpuLHNob3dFcnJvcjppfT10aGlzLnN0YXRlO3JldHVybiBpP3IuY3JlYXRlRWxlbWVudCh0LHtoYW5kbGVSZXRyeTp0aGlzLmxvYWR9KTplP3IuY3JlYXRlRWxlbWVudChlLHRoaXMucHJvcHMpOnIuY3JlYXRlRWxlbWVudChuLG51bGwpfX10cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KExvYWRhYmxlLCJuYW1lIix7dmFsdWU6b30pfWNhdGNoKGUpe31yZXR1cm4gTG9hZGFibGV9Y29uc3QgWXY9S3Yoe2xvYWRlcjooKT0+bi5lKDgwNTYpLnRoZW4obi5iaW5kKG4sMTQwNzMpKSxuYW1lOiJMYXVuY2hlckRpc2NvdmVyeSJ9KTt2YXIgSnY9bigzNjQwMCk7dmFyIFh2PW4oODI0NTkpO2NvbnN0IFF2PSgwLG8uY29ubmVjdCkoKGU9Pntjb25zdHtsYXVuY2hlckRpc2NvdmVyeU1vZGU6e2lzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlT3BlbmluZzp0LGlzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlQ2xvc2luZzpufSxhcHA6e2hlbHBDZW50ZXJTaXRlVXJsOnJ9fT1lLGk9IShlPT57aWYoIWUpcmV0dXJuITE7Y29uc3QgdD0oMCxKdi52dSkoKTtyZXR1cm4hIXQmJmUucmVwbGFjZSgvKF5cdys6fF4pXC9cLy8sIiIpLnN0YXJ0c1dpdGgodCl9KShyKSYmKHR8fG4pO3JldHVybntpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6dCxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc6bixzaG93RGlzY292ZXJ5TGF1bmNoZXI6aX19KSwoZT0+KHtvbkRpc2NvdmVyeUxhdW5jaGVyTW91c2VFbnRlcjooKT0+eygwLFh2Lnk0KSgpfSxvbkRpc2NvdmVyeUxhdW5jaGVyTW91c2VPdXQ6KCk9PntlKCgwLFh2Lk1NKSgpKX0sb25MYXVuY2hlckRpc2NvdmVyeUNsaWNrOigpPT57ZSgoMCxjZS5qRCkoKSl9fSkpKSgoZnVuY3Rpb24oZSl7Y29uc3R7c2hvd0Rpc2NvdmVyeUxhdW5jaGVyOnR9PWU7cmV0dXJuIHQ/ci5jcmVhdGVFbGVtZW50KFl2LGUpOm51bGx9KSk7dmFyIGV5PW4oNzUwNDUpLHR5PXtuYW1lOiIxcmVrbG56IixzdHlsZXM6IndpZHRoOjhweDtoZWlnaHQ6OHB4O2JveC1zaGFkb3c6bm9uZTtib3R0b206MzVweDtsZWZ0OjQwcHg7In07Y29uc3Qgbnk9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZTFnMmRianEwIn0pKCJ6LWluZGV4OiIsKDAseC5XNSkoMSksIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MzJweDtsZWZ0OjQxcHg7bWluLXdpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7IiwoKHtoYXNOb3RpZmljYXRpb25zOmV9KT0+IWUmJnR5KSkscnk9KHtub3RpZmljYXRpb25Db3VudDplfSk9Pntjb25zdCB0PSEhZSYmZT4wO3JldHVybiByLmNyZWF0ZUVsZW1lbnQobnkse2hhc05vdGlmaWNhdGlvbnM6dH0sci5jcmVhdGVFbGVtZW50KGV5LlosbnVsbCx0P2U6dm9pZCAwKSl9LGl5PSgpPT57Y29uc3QgZT0oMCxoLkNHKShNdi5hbCk7cmV0dXJuIHIuY3JlYXRlRWxlbWVudChyeSx7bm90aWZpY2F0aW9uQ291bnQ6ZX0pfSxveT0oMCxmLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMnU1MW42MCJ9KSgidXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OiIsKDAseC5XNSkoKSwiO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToiLCgwLGYuclMpKCJ2ZXJ0aWNhbFBhZGRpbmdQeCIpLCJweDtyaWdodDoiLCgwLGYuclMpKCJob3Jpem9udGFsUGFkZGluZ1B4IiksInB4O3dpZHRoOiIsKDAsZi5yUykoImxhdW5jaGVyU2l6ZVB4IiksInB4O2hlaWdodDoiLCgwLGYuclMpKCJsYXVuY2hlclNpemVQeCIpLCJweDsiLCgoe3RoZW1lOmV9KT0+ZS5pc0xlZnRBbGlnbiYmKDAsZi5pdikoImxlZnQ6IixlLmhvcml6b250YWxQYWRkaW5nUHgsInB4O3JpZ2h0OmF1dG87IikpLCIgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMTY3bXMgY3ViaWMtYmV6aWVyKDAuMzMsMCwwLDEpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyY6aG92ZXJ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMjUwbXMgY3ViaWMtYmV6aWVyKDAuMzMsMCwwLDEpO3RyYW5zZm9ybTpzY2FsZSgxLjEpO30mOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoMC44NSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMTM0bXMgY3ViaWMtYmV6aWVyKDAuNDUsMCwwLjIsMSk7fSIpO3ZhciBheT1uKDY0OTQzKSxzeT17bmFtZToiMWh5Zng3eCIsc3R5bGVzOiJkaXNwbGF5Om5vbmU7In0sbHk9e25hbWU6Im82YjNlbCIsc3R5bGVzOiJiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCggZWxsaXBzZSBhdCBib3R0b20gbGVmdCxyZ2JhKDI5LDM5LDU0LDAuMTYpIDAlLHJnYmEoMjksMzksNTQsMCkgNzIlICk7bGVmdDowO3JpZ2h0OmF1dG87In07Y29uc3QgY3k9KDAsZi5aUCkoImRpdiIse3RhcmdldDoiZXF1M3V4azAifSkoInotaW5kZXg6IiwoMCx4Llc1KSgtMiksIjtwb3NpdGlvbjpmaXhlZDt3aWR0aDo1MDBweDtoZWlnaHQ6NTAwcHg7Ym90dG9tOjA7cmlnaHQ6MDtjb250ZW50OicnO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoIGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LHJnYmEoMjksMzksNTQsMC4xNikgMCUscmdiYSgyOSwzOSw1NCwwKSA3MiUgKTsiLCgoe3RoZW1lOmV9KT0+ZS5pc0xlZnRBbGlnbiYmbHkpLCIgIiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZzeSkpO2NsYXNzIFBhZ2VUaXRsZU5vdGlmaWNhdGlvbiBleHRlbmRzIHIuQ29tcG9uZW50e2dldFRpdGxlKCl7cmV0dXJuIHRoaXMucHJvcHMuYXBwV2luZG93LmRvY3VtZW50LnRpdGxlfXNldFRpdGxlKGUpe2lmKHRoaXMuZ2V0VGl0bGUoKSE9PWUpaWYoKDAsdWkuS2YpKHRoaXMucHJvcHMuYXBwV2luZG93KSl7Y29uc3QgZT0oMCx1aS5qVykoKS51c2VyQWdlbnQ7KDAsT3QuY2IpKCJoZWFkbGVzc0Nocm9tZURldGVjdGVkIix7dXNlcl9hZ2VudDplfSl9ZWxzZSB0aGlzLnByb3BzLmFwcFdpbmRvdy5kb2N1bWVudC50aXRsZT1lfW1heWJlVG9nZ2xlVGl0bGUoKXtjb25zdCBlPShlPT57aWYoZS5kaXNtaXNzZWR8fCFlLnBhcnRzKXJldHVybjtjb25zdCB0PSgwLHJmLlopKGUucGFydHMpO3JldHVybiB0JiZ0LmF1dGhvci5pc0FkbWluPygwLHUuSXUpKCJ1c2VyX3NheXMiLHtmaXJzdE5hbWU6dC5hdXRob3IuZmlyc3ROYW1lfSk6dm9pZCAwfSkodGhpcy5wcm9wcy5jb252ZXJzYXRpb24pO2UmJnRoaXMuc2V0VGl0bGUodGhpcy5nZXRUaXRsZSgpPT09ZT90aGlzLm9yaWdpbmFsVGl0bGU6ZSl9Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLm9yaWdpbmFsVGl0bGU9dGhpcy5nZXRUaXRsZSgpLHRoaXMuaW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCgpPT50aGlzLm1heWJlVG9nZ2xlVGl0bGUoKSksM2UzKSx0aGlzLm1heWJlVG9nZ2xlVGl0bGUoKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCksdGhpcy5pbnRlcnZhbD12b2lkIDAsdGhpcy5zZXRUaXRsZSh0aGlzLm9yaWdpbmFsVGl0bGUpfXJlbmRlcigpe3JldHVybiBudWxsfX1QYWdlVGl0bGVOb3RpZmljYXRpb24ucHJvcFR5cGVzPXthcHBXaW5kb3c6cCgpLm9iamVjdC5pc1JlcXVpcmVkLGNvbnZlcnNhdGlvbjpwKCkub2JqZWN0LmlzUmVxdWlyZWR9O2NvbnN0IGR5PUt2KHtsb2FkZXI6KCk9Pm4uZSgyMzkyKS50aGVuKG4uYmluZChuLDkyODcyKSksbmFtZToiQmFubmVyIn0pLHB5PUt2KHtsb2FkZXI6KCk9Pm4uZSg5MjAzKS50aGVuKG4uYmluZChuLDcxODU3KSksbmFtZToiQ29uZmV0dGlGcmFtZSJ9KSx1eT1Ldih7bG9hZGVyOigpPT5Qcm9taXNlLmFsbChbbi5lKDE5MTQpLG4uZSgxNjc2KV0pLnRoZW4obi5iaW5kKG4sNzk3NTYpKSxuYW1lOiJNZXNzYWdlIn0pLG15PUt2KHtsb2FkZXI6KCk9PlByb21pc2UuYWxsKFtuLmUoMTkxNCksbi5lKDE2NzYpXSkudGhlbihuLmJpbmQobiw4ODQwNikpLG5hbWU6Ik5vdGlmaWNhdGlvbnMifSksaHk9S3Yoe2xvYWRlcjooKT0+UHJvbWlzZS5hbGwoW24uZSgxOTE0KSxuLmUoMTY3NildKS50aGVuKG4uYmluZChuLDEzODM3KSksbmFtZToiUG9pbnRlck1lc3NhZ2UifSksZ3k9S3Yoe2xvYWRlcjooKT0+UHJvbWlzZS5hbGwoW24uZSgxOTE0KSxuLmUoMTY3NildKS50aGVuKG4uYmluZChuLDMyOTY4KSksbmFtZToiVG91ciJ9KSxmeT1Ldih7bG9hZGVyOigpPT5uLmUoNDk2NSkudGhlbihuLmJpbmQobiwxMDA4NykpLG5hbWU6Ikluc3RhbGwifSkseHk9S3Yoe2xvYWRlcjooKT0+bi5lKDE5OTkpLnRoZW4obi5iaW5kKG4sNzUyMzMpKSxuYW1lOiJTdXJ2ZXkifSk7Y2xhc3MgTWVzc2VuZ2VyIGV4dGVuZHMgci5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5zdGF0ZT17aXNJbnRlcnNlY3Rpb25Cb290ZWQ6KDAsYXkuZikoKSxpc1ByZXZpZXdpbmdTdXJ2ZXk6KDAsYXkuYykoKSxub3RpZmljYXRpb25EZWxheUNvbXBsZXRlOiEwfX1zaG91bGRTaG93UGFnZVRpdGxlTm90aWZpY2F0aW9uKCl7Y29uc3R7dXNlcklzUHJlc2VudDplLGlzTGF1bmNoZXJFbmFibGVkOnQsaXNNZXNzZW5nZXJPcGVuOm4sbGFzdFVucmVhZENvbnZlcnNhdGlvbjpyfT10aGlzLnByb3BzO3JldHVybiEoIXQmJiFuKSYmKHImJnIudXNlclBhcnRpY2lwYXRlZCYmIWUpfWNvbXBvbmVudERpZFVwZGF0ZShlKXshdGhpcy5wcm9wcy5pc01lc3Nlbmdlck9wZW4mJmUuaXNNZXNzZW5nZXJPcGVuJiYodGhpcy5zZXRTdGF0ZSh7bm90aWZpY2F0aW9uRGVsYXlDb21wbGV0ZTohMX0pLHRoaXMudGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuc2V0U3RhdGUoe25vdGlmaWNhdGlvbkRlbGF5Q29tcGxldGU6ITB9KX0pLDMwMCkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCl9cmVuZGVyKCl7Y29uc3R7YXBwV2luZG93OmUsaGFzVW5yZWFkQ29udGVudDp0LGlzTGF1bmNoZXJFbmFibGVkOm4saXNNZXNzZW5nZXJPcGVuOmksaXNNZXNzYWdlT3BlbjpvLGlzSW5zdGFsbE9wZW46YSxsYXN0VW5yZWFkQ29udmVyc2F0aW9uOnMsbm90aWZpY2F0aW9uQ291bnQ6bCxjdXN0b21pemF0aW9uQXR0cmlidXRlczpjLGlzQm9vdGVkOmQsaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVPcGVuaW5nOnAsZGVzdHJveVNlc3Npb246dSxoYXNQb2ludGVyTWVzc2FnZXM6aCxoYXNCYW5uZXI6Zyxpc1RvdXJGZXRjaGVkOmYsaXNQcmV2aWV3aW5nVG91cjp4LGlzTGlnaHR3ZWlnaHRBcHBBY3RpdmU6dixoYXNTdXJ2ZXk6eX09dGhpcy5wcm9wcyx7aXNJbnRlcnNlY3Rpb25Cb290ZWQ6Yixpc1ByZXZpZXdpbmdTdXJ2ZXk6RSxub3RpZmljYXRpb25EZWxheUNvbXBsZXRlOmt9PXRoaXMuc3RhdGUsQz1rJiYhbyYmIWkmJiFmJiYhYiYmbD4wLHc9IWkmJnQ7cmV0dXJuIHIuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiJpbnRlcmNvbS1hcHAiLCJhcmlhLWxpdmUiOiJwb2xpdGUifSxyLmNyZWF0ZUVsZW1lbnQobS5XMyx7Y29tcG9uZW50OnIuRnJhZ21lbnR9LHIuY3JlYXRlRWxlbWVudCh4dix7aXNNZXNzZW5nZXJPcGVuOml9KSksIW98fGZ8fHl8fGk/bnVsbDpyLmNyZWF0ZUVsZW1lbnQodXkse2FwcFdpbmRvdzplLGtleToiTWVzc2FnZSJ9KSwhaHx8aXx8Znx8Yj9udWxsOnIuY3JlYXRlRWxlbWVudChoeSx7YXBwV2luZG93OmUsa2V5OiJQb2ludGVyTWVzc2FnZSJ9KSxkJiZhP3IuY3JlYXRlRWxlbWVudChmeSx7a2V5OiJJbnN0YWxsIn0pOm51bGwsQyYmci5jcmVhdGVFbGVtZW50KG15LG51bGwpLG4mJnIuY3JlYXRlRWxlbWVudChyLkZyYWdtZW50LG51bGwsci5jcmVhdGVFbGVtZW50KG95LG51bGwsci5jcmVhdGVFbGVtZW50KFV2LHtzaG91bGRSZW5kZXJTaGFkb3c6IXAsaXNNZXNzZW5nZXJPcGVuOmksaGFzQmFkZ2U6d30pLHcmJnIuY3JlYXRlRWxlbWVudChpeSxudWxsKSksdWkuWlAuaXNNb2JpbGVCcm93c2VyKCk/bnVsbDpyLmNyZWF0ZUVsZW1lbnQoUXYse2lzTGVmdEFsaWduZWQ6ImxlZnQiPT09Yy5hbGlnbm1lbnR9KSksIWZ8fGImJiF4P251bGw6ci5jcmVhdGVFbGVtZW50KGd5LHthcHBXaW5kb3c6ZSxrZXk6IlRvdXIifSksZj9yLmNyZWF0ZUVsZW1lbnQocHkse2FwcFdpbmRvdzplfSk6bnVsbCxyLmNyZWF0ZUVsZW1lbnQoUXQuWix7ZHVyYXRpb246dj8wOjIwMH0saXx8b3x8Qz9yLmNyZWF0ZUVsZW1lbnQoY3ksbnVsbCk6bnVsbCksci5jcmVhdGVFbGVtZW50KHZ2LlpQLHthcHBXaW5kb3c6ZSxkZXN0cm95U2Vzc2lvbjp1fSksdGhpcy5zaG91bGRTaG93UGFnZVRpdGxlTm90aWZpY2F0aW9uKCk/ci5jcmVhdGVFbGVtZW50KFBhZ2VUaXRsZU5vdGlmaWNhdGlvbix7YXBwV2luZG93OmUsY29udmVyc2F0aW9uOnN9KTpudWxsLGcmJiFmP3IuY3JlYXRlRWxlbWVudChkeSx7YXBwV2luZG93OmV9KTpudWxsLCF5fHxpfHxiJiYhRT9udWxsOnIuY3JlYXRlRWxlbWVudCh4eSx7YXBwV2luZG93OmV9KSxmP251bGw6ci5jcmVhdGVFbGVtZW50KCJkaXYiLHtpZDoiaW50ZXJjb20tbW9kYWwtY29udGFpbmVyIn0pKX19TWVzc2VuZ2VyLnByb3BUeXBlcz17YXBwV2luZG93OnAoKS5vYmplY3QuaXNSZXF1aXJlZCxoYXNVbnJlYWRDb250ZW50OnAoKS5ib29sLGxhc3RVbnJlYWRDb252ZXJzYXRpb246cCgpLm9iamVjdCxub3RpZmljYXRpb25Db3VudDpwKCkubnVtYmVyLHVzZXJJc1ByZXNlbnQ6cCgpLmJvb2wuaXNSZXF1aXJlZCxpc0Jvb3RlZDpwKCkuYm9vbC5pc1JlcXVpcmVkLGlzTGF1bmNoZXJFbmFibGVkOnAoKS5ib29sLmlzUmVxdWlyZWQsaXNNZXNzZW5nZXJPcGVuOnAoKS5ib29sLmlzUmVxdWlyZWQsaXNNZXNzYWdlT3BlbjpwKCkuYm9vbC5pc1JlcXVpcmVkLGhhc1BvaW50ZXJNZXNzYWdlczpwKCkuYm9vbC5pc1JlcXVpcmVkLGhhc0Jhbm5lcjpwKCkuYm9vbCxpc1RvdXJGZXRjaGVkOnAoKS5ib29sLmlzUmVxdWlyZWQsaXNQcmV2aWV3aW5nVG91cjpwKCkuYm9vbC5pc1JlcXVpcmVkLGlzSW5zdGFsbE9wZW46cCgpLmJvb2wuaXNSZXF1aXJlZCxjdXN0b21pemF0aW9uQXR0cmlidXRlczpwKCkuc2hhcGUoe2FsaWdubWVudDpwKCkuc3RyaW5nLGhvcml6b250YWxQYWRkaW5nOnAoKS5udW1iZXIsdmVydGljYWxQYWRkaW5nOnAoKS5udW1iZXJ9KSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6cCgpLmJvb2wsZGVzdHJveVNlc3Npb246cCgpLmZ1bmMuaXNSZXF1aXJlZCxpc0xpZ2h0d2VpZ2h0QXBwQWN0aXZlOnAoKS5ib29sLGhhc1N1cnZleTpwKCkuYm9vbH0sTWVzc2VuZ2VyLmRlZmF1bHRQcm9wcz17aXNMaWdodHdlaWdodEFwcEFjdGl2ZTohMX07Y2xhc3MgQXBwIGV4dGVuZHMgci5Db21wb25lbnR7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5oYW5kbGVUYWI9ZT0+eygwLCRvLndTKShlKSYmdGhpcy5wcm9wcy5vblRhYlByZXNzZWQoKX19Y29tcG9uZW50RGlkTW91bnQoKXtjb25zdHtsb2NhbGU6ZSxpc092ZXJyaWRlU2FtcGxpbmdFbmFibGVkOnQsaXNFcnJvclJlcG9ydGluZ0Rpc2FibGVkOm4sYXBwSWQ6cn09dGhpcy5wcm9wczt2b2lkIDAhPT1lJiYoMCx1LmlfKShlKSwoMCwkZi5zaCkodCksKDAsJGYuWUEpKG4pLCgwLEtmLko2KShyKSwoMCwkby5Pbykod2luZG93LnBhcmVudCwia2V5ZG93biIsdGhpcy5oYW5kbGVUYWIpfWNvbXBvbmVudERpZFVwZGF0ZShlKXtjb25zdHtsb2NhbGU6dCxpc092ZXJyaWRlU2FtcGxpbmdFbmFibGVkOm4saXNFcnJvclJlcG9ydGluZ0Rpc2FibGVkOnIsYXBwSWQ6aX09dGhpcy5wcm9wcztlLmxvY2FsZSE9PXQmJigwLHUuaV8pKHQpLCgwLCRmLnNoKShuKSwoMCwkZi5ZQSkociksKDAsS2YuSjYpKGkpfWNvbXBvbmVudFdpbGxVbm1vdW50KCl7KDAsJG8ueGcpKHdpbmRvdy5wYXJlbnQsImtleWRvd24iLHRoaXMuaGFuZGxlVGFiKX1yZW5kZXIoKXtjb25zdHthcHBXaW5kb3c6ZSxoYXNVbnJlYWRDb250ZW50OnQsdXNlcklzUHJlc2VudDpuLGlzTGF1bmNoZXJFbmFibGVkOmksaXNNZXNzZW5nZXJPcGVuOm8saXNNZXNzYWdlT3BlbjphLGlzSW5zdGFsbE9wZW46cyxsYXN0VW5yZWFkQ29udmVyc2F0aW9uOmwsbm90aWZpY2F0aW9uQ291bnQ6YyxjdXN0b21pemF0aW9uQXR0cmlidXRlczpkLGlzQm9vdGVkOnAsaXNCb290aW5nOnUsaXNJbnN0YW50Qm9vdEVuYWJsZWQ6bSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6aCxkZXN0cm95U2Vzc2lvbjpnLGhhc1BvaW50ZXJNZXNzYWdlczpmLGhhc0Jhbm5lcjp4LGlzVG91ckZldGNoZWQ6dixpc1ByZXZpZXdpbmdUb3VyOnksaXNMaWdodHdlaWdodEFwcEFjdGl2ZTpiLGhhc1N1cnZleTpFfT10aGlzLnByb3BzO3JldHVybiEocHx8dSYmbSk/bnVsbDpyLmNyZWF0ZUVsZW1lbnQodXYuWi5Qcm92aWRlcix7dmFsdWU6ZX0sci5jcmVhdGVFbGVtZW50KE1lc3Nlbmdlcix7YXBwV2luZG93OmUsaGFzVW5yZWFkQ29udGVudDp0LGxhc3RVbnJlYWRDb252ZXJzYXRpb246bCxub3RpZmljYXRpb25Db3VudDpjLHVzZXJJc1ByZXNlbnQ6bixpc0Jvb3RlZDpwLGlzTGF1bmNoZXJFbmFibGVkOmksaXNNZXNzZW5nZXJPcGVuOm8saXNNZXNzYWdlT3BlbjphLGhhc1BvaW50ZXJNZXNzYWdlczpmLGhhc0Jhbm5lcjp4LGlzVG91ckZldGNoZWQ6dixpc1ByZXZpZXdpbmdUb3VyOnksaXNJbnN0YWxsT3BlbjpzLGN1c3RvbWl6YXRpb25BdHRyaWJ1dGVzOmQsaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVPcGVuaW5nOmgsZGVzdHJveVNlc3Npb246Zyxpc0xpZ2h0d2VpZ2h0QXBwQWN0aXZlOmIsaGFzU3VydmV5OkV9KSl9fUFwcC5wcm9wVHlwZXM9e2FwcFdpbmRvdzpwKCkub2JqZWN0LmlzUmVxdWlyZWQsbG9jYWxlOnAoKS5zdHJpbmcsYmFja2dyb3VuZEltYWdlOnAoKS5zdHJpbmcsaGFzVW5yZWFkQ29udGVudDpwKCkuYm9vbCxsYXN0VW5yZWFkQ29udmVyc2F0aW9uOnAoKS5vYmplY3Qsbm90aWZpY2F0aW9uQ291bnQ6cCgpLm51bWJlcix1c2VySXNQcmVzZW50OnAoKS5ib29sLmlzUmVxdWlyZWQsaXNCb290aW5nOnAoKS5ib29sLmlzUmVxdWlyZWQsaXNCb290ZWQ6cCgpLmJvb2wuaXNSZXF1aXJlZCxpc0Vycm9yUmVwb3J0aW5nRGlzYWJsZWQ6cCgpLmJvb2wsaXNPdmVycmlkZVNhbXBsaW5nRW5hYmxlZDpwKCkuYm9vbCxpc0xhdW5jaGVyRW5hYmxlZDpwKCkuYm9vbC5pc1JlcXVpcmVkLGlzTWVzc2VuZ2VyT3BlbjpwKCkuYm9vbC5pc1JlcXVpcmVkLGlzTWVzc2FnZU9wZW46cCgpLmJvb2wuaXNSZXF1aXJlZCxoYXNQb2ludGVyTWVzc2FnZXM6cCgpLmJvb2wuaXNSZXF1aXJlZCxoYXNCYW5uZXI6cCgpLmJvb2wsaXNUb3VyRmV0Y2hlZDpwKCkuYm9vbC5pc1JlcXVpcmVkLGlzUHJldmlld2luZ1RvdXI6cCgpLmJvb2wuaXNSZXF1aXJlZCxpc0luc3RhbGxPcGVuOnAoKS5ib29sLmlzUmVxdWlyZWQsY3VzdG9taXphdGlvbkF0dHJpYnV0ZXM6cCgpLnNoYXBlKHthbGlnbm1lbnQ6cCgpLnN0cmluZyxob3Jpem9udGFsUGFkZGluZzpwKCkubnVtYmVyLHZlcnRpY2FsUGFkZGluZzpwKCkubnVtYmVyfSksaXNJbnN0YW50Qm9vdEVuYWJsZWQ6cCgpLmJvb2wuaXNSZXF1aXJlZCxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6cCgpLmJvb2wsZGVzdHJveVNlc3Npb246cCgpLmZ1bmMuaXNSZXF1aXJlZCxvblRhYlByZXNzZWQ6cCgpLmZ1bmMuaXNSZXF1aXJlZCxhcHBJZDpwKCkuc3RyaW5nLGlzTGlnaHR3ZWlnaHRBcHBBY3RpdmU6cCgpLmJvb2wsaGFzU3VydmV5OnAoKS5ib29sfSxBcHAuZGVmYXVsdFByb3BzPXtpc092ZXJyaWRlU2FtcGxpbmdFbmFibGVkOiExLGlzTGlnaHR3ZWlnaHRBcHBBY3RpdmU6ITF9O2NvbnN0IHZ5PUFwcDt2YXIgeXk9bigxNzY1Myk7Y29uc3QgYnk9KDAsQS5jcmVhdGVTZWxlY3RvcikoKGU9PigwLHl5LlopKGUuY29udmVyc2F0aW9ucy5ieUlkKSksKGU9Pntjb25zdCB0PWUuZmlsdGVyKChlPT4hZS5yZWFkKSkuc29ydCgoKGUsdCk9PmUubGFzdFBhcnRDcmVhdGVkQXQtdC5sYXN0UGFydENyZWF0ZWRBdCkpO3JldHVybigwLHJmLlopKHQpfSkpO3ZhciBFeT1uKDUzMTA2KSxreT1uKDk3NTM3KSxDeT1uKDQ2MzQxKSx3eT1uKDUwMDk5KSxTeT1uKDYxODYpLFB5PW4oMzA4NDMpLFR5PW4oNjUyNjcpLFp5PW4oOTgwNTQpO2NvbnN0IEl5PSgwLG8uY29ubmVjdCkoKGU9Pntjb25zdHtsb2NhbGU6dCxpc1ByZXNlbnQ6bn09ZS51c2VyLHtpc0Jvb3Rpbmc6cixpc0Jvb3RlZDppLGlzTWVzc2VuZ2VyT3BlbjpvLGlzRXJyb3JSZXBvcnRpbmdEaXNhYmxlZDphLGlzT3ZlcnJpZGVTYW1wbGluZ0VuYWJsZWQ6cyxpc0luc3RhbnRCb290RW5hYmxlZDpsfT1lLmFwcCx7aXNMYXVuY2hlckRpc2NvdmVyeU1vZGVFbmFibGVkOmMsaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVPcGVuaW5nOmR9PWUubGF1bmNoZXJEaXNjb3ZlcnlNb2RlLHtpc0luc3RhbGxNb2RlT3BlbjpwfT1lLmluc3RhbGwse2FsaWdubWVudDp1LGhvcml6b250YWxQYWRkaW5nOm0sdmVydGljYWxQYWRkaW5nOmh9PSgwLFN5LnEpKGUpLHtpc0FjdGl2ZTpnfT1lLmxpZ2h0d2VpZ2h0QXBwLGY9KDAsZGUuWikoZSkseD0oMCxNdi5TNykoZSksdj0oMCxFeS55KShlKS5sZW5ndGgseT0oMCxreS5aKShlKS5sZW5ndGgsYj0oMCx3eS5aKShlKS5sZW5ndGg7cmV0dXJue3VzZXJJc1ByZXNlbnQ6bixsb2NhbGU6dCxoYXNVbnJlYWRDb250ZW50Ongsbm90aWZpY2F0aW9uQ291bnQ6dixsYXN0VW5yZWFkQ29udmVyc2F0aW9uOmJ5KGUpLGlzQm9vdGluZzpyLGlzQm9vdGVkOmksaXNNZXNzYWdlT3Blbjp5PjAsaXNNZXNzZW5nZXJPcGVuOm8saXNMYXVuY2hlckVuYWJsZWQ6Zixpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6Yyxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc6ZCxpc0Vycm9yUmVwb3J0aW5nRGlzYWJsZWQ6YSxpc092ZXJyaWRlU2FtcGxpbmdFbmFibGVkOnMsaXNJbnN0YWxsT3BlbjpwLGN1c3RvbWl6YXRpb25BdHRyaWJ1dGVzOnthbGlnbm1lbnQ6dSxob3Jpem9udGFsUGFkZGluZzptLHZlcnRpY2FsUGFkZGluZzpofSxpc0luc3RhbnRCb290RW5hYmxlZDpsLGhhc1BvaW50ZXJNZXNzYWdlczpiPjAsaGFzQmFubmVyOigwLFR5LmopKGUpLmxlbmd0aD4wLGlzVG91ckZldGNoZWQ6KDAsUHkuWWgpKGUpLGlzUHJldmlld2luZ1RvdXI6KDAsUHkuTmwpKGUpLGFwcElkOmUuc2Vzc2lvbiYmZS5zZXNzaW9uLmFwcElkLGlzTGlnaHR3ZWlnaHRBcHBBY3RpdmU6ZyxoYXNTdXJ2ZXk6ISEoMCxaeS5jYikoZSl9fSksKGU9Pih7b25UYWJQcmVzc2VkOigpPT5lKCgodCxuKT0+e2NvbnN0e3RhYk5hdmlnYXRpb246cn09bigpLmFjY2Vzc2liaWxpdHk7cnx8ZSgoMCxDeS5naykoITApKX0pKX0pKSkodnkpO3ZhciBqeT1uKDc3Njc0KSxfeT1uKDEzNTkwKTtjb25zdCBPeT0iaW50ZXJjb20tY29udGFpbmVyIixBeT0iaW50ZXJjb20tbmFtZXNwYWNlIixCeT0iaW50ZXJjb20tY3NzLWNvbnRhaW5lciI7YS5HbG9iYWxzLmFzc2lnbih7cmVxdWVzdEFuaW1hdGlvbkZyYW1lOndpbmRvdy5wYXJlbnQucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGNhbmNlbEFuaW1hdGlvbkZyYW1lOndpbmRvdy5wYXJlbnQuY2FuY2VsQW5pbWF0aW9uRnJhbWV9KTtjb25zdCBSeT0oZSx0KT0+e2NvbnN0IG49KDAsJG8uZFMpKGUsT3ksQXkpLGE9KDAsJG8udGMpKGUsQnkpO3JldHVybigwLGkucmVuZGVyKShyLmNyZWF0ZUVsZW1lbnQoYy5aLHt3aW5kb3c6ZX0sci5jcmVhdGVFbGVtZW50KG8uUHJvdmlkZXIse3N0b3JlOnR9LHIuY3JlYXRlRWxlbWVudChsLlosbnVsbCxyLmNyZWF0ZUVsZW1lbnQocy5aLHt0YXJnZXQ6YSxpc1NhbmRib3g6ITF9LHIuY3JlYXRlRWxlbWVudChqeS5IaXN0b3J5Um91dGVyLHtoaXN0b3J5OigwLF95Lld3KSh0KX0sci5jcmVhdGVFbGVtZW50KEl5LHthcHBXaW5kb3c6ZSxkZXN0cm95U2Vzc2lvbjooKT0+e319KSkpKSkpLG4pLCgpPT57KDAsaS51bm1vdW50Q29tcG9uZW50QXROb2RlKShuKSwoMCwkby5aRikobiksKDAsJG8uWkYpKGEpfX19LDY1MjY3OihlLHQsbik9PntuLmQodCx7ajooKT0+b30pO3ZhciByPW4oNDU1NzgpLGk9bi5uKHIpO2NvbnN0IG89KDAsbig0MjI3OSkuY3JlYXRlU2VsZWN0b3IpKChlPT5lLmJhbm5lcnMpLChlPT5pKCkoZSwiaWQiKSkpfSw3NDQ4OTooZSx0LG4pPT57bi5kKHQse0wyOigpPT51LFYwOigpPT5wLFk6KCk9Pm0scVU6KCk9Pmh9KTt2YXIgcj1uKDQyMjc5KSxpPW4oMTUxNzgpLG89big4NjEyKSxhPW4oNTIyMzkpLHM9big2NzU5Mik7ZnVuY3Rpb24gbChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gYyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9sKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZChlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6bChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBkKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09dD9TdHJpbmc6TnVtYmVyKShlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1jb25zdCBwPWU9PntpZighZXx8IWUucGFydHMpcmV0dXJuO2NvbnN0IHQ9ZS5wYXJ0c1tlLnBhcnRzLmxlbmd0aC0xXTtyZXR1cm4gdCYmdC5yZXBseU9wdGlvbnMmJjAhPT10LnJlcGx5T3B0aW9ucy5sZW5ndGg/dDp2b2lkIDB9LHU9ZT0+e2NvbnN0IHQ9cChlKTtpZih0KXJldHVybiB0LnJlcGx5T3B0aW9uc30sbT0oMCxyLmNyZWF0ZVNlbGVjdG9yKShpLm1BLChlPT57dmFyIHQ7cmV0dXJuIShudWxsPT1lfHxudWxsPT09KHQ9ZS5jb21wb3NlclN0YXRlKXx8dm9pZCAwPT09dHx8IXQuc2VsZlNlcnZlU3VnZ2VzdGlvbnNFbmFibGVkKX0pKSxoPWU9PigwLHIuY3JlYXRlU2VsZWN0b3IpKFtlPT5lLmluYm91bmRTdWdnZXN0aW9ucy5pc0Rpc21pc3NlZCxhLk4sZT0+ZS5wcmVkaWN0aXZlQW5zd2Vycy5jb21wb3NlclN1Z2dlc3Rpb25zLGU9PmUub3BlcmF0b3IuY29tcG9zZXJIYXNDb250ZW50LG1dLCgodCxuLHIsaSxhKT0+e3ZhciBsO2NvbnN0IGQ9IWUuaWQscD0hZS51c2VyUGFydGljaXBhdGVkLG09dShlKSxoPWMoYyh7fSxvLlcyKSx7fSx7c3VnZ2VzdGlvbnM6bXx8W119KSxnPSEhbiYmIXQmJmQmJnAmJiFlLmJvdEludHJvSWQsZj0hIW0seD1kJiZwJiYhZyYmIWYmJiEhcix7Y29tcG9zZXJTdWdnZXN0aW9uczp2fT1lLHk9KG51bGw9PXZ8fG51bGw9PT0obD12LnN1Z2dlc3Rpb25zKXx8dm9pZCAwPT09bD92b2lkIDA6bC5sZW5ndGgpPjAsYj1udWxsPT12P3ZvaWQgMDp2LmlzVmlld2VkLEU9YSYmaSYmeSxrPWImJiFmJiZhJiZpJiYheTtpZihlLnByZXZlbnRFbmRVc2VyUmVwbGllcylyZXR1cm4gby5XMjtpZihiJiZrKXJldHVybiBjKGMoe30sby5XMikse30se3Byb21wdDpbe3R5cGU6InBhcmFncmFwaCIsdGV4dDooMCxzLkl1KSgiZW1wdHlfc3VnZ2VzdGlvbl9wcm9tcHQiKX1dfSk7aWYoRSlyZXR1cm4gYyhjKHt9LHYpLHt9LHtwcm9tcHQ6W3t0eXBlOiJwYXJhZ3JhcGgiLHRleHQ6KDAscy5JdSkoInN1Z2dlc3RlZF9jb250ZW50X3Byb21wdCIpfV19KTtpZihnKXJldHVybiBjKGMoe30sbikse30se2lzSW5ib3VuZEJvdFN1Z2dlc3Rpb25zOiEwfSk7aWYoZilyZXR1cm4gYyhjKHt9LGgpLHt9LHtpc1F1aWNrUmVwbGllczohMH0pO2lmKHgpe2NvbnN0IGU9W3t0eXBlOiJwYXJhZ3JhcGgiLHRleHQ6KDAscy5JdSkoInN1Z2dlc3RlZF9jb250ZW50X3Byb21wdCIpfV07cmV0dXJuIGMoYyh7fSxyKSx7fSx7cHJvbXB0OmUsaXNQcmVkaWN0aXZlQW5zd2VyczohMH0pfXJldHVybiBvLlcyfSkpfSw3MzQ5ODooZSx0LG4pPT57bi5kKHQse0EwOigpPT51LEFWOigpPT5iLEJwOigpPT5FLEZVOigpPT5tLEw5OigpPT5mLGhpOigpPT5rLGlBOigpPT55LG9oOigpPT5nLHBmOigpPT5kLHh2OigpPT5ofSk7dmFyIHI9big1MDcwMCksaT1uKDQzNiksbz1uKDQ0MjY1KSxhPW4oOTU0ODYpLHM9bigzOTExMyksbD17bmFtZToic3NxM2FvIixzdHlsZXM6Im1hcmdpbi1sZWZ0OjQ1cHg7cG9zaXRpb246cmVsYXRpdmU7In0sYz17bmFtZToiMWtnanBvMiIsc3R5bGVzOiJwYWRkaW5nLWxlZnQ6NDVweDtwb3NpdGlvbjpyZWxhdGl2ZTsifTtjb25zdCBkPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImV6eTdneDgwIn0pKCgoe2lzSW5saW5lOmUsaXNCb3JkZXJsZXNzOnR9KT0+IWUmJiF0JiZjKSwiICIsKCh7aXNCb3JkZXJsZXNzOmV9KT0+ZSYmbCksIiAiLCgoe2lzSW5saW5lOmV9KT0+ZSYmKDAsci5pdikoaS5HLCIgIixvLlcuY2xhc3NOYW1lLCIgJiwiLGEuYjguY2xhc3NOYW1lLCIgJiwuaW50ZXJjb20tY29tbWVudCAme2JveC1zaGFkb3c6MCAxcHggMnB4IDAgcmdiYSgwLDAsMCwwLjAzKTttYXJnaW4tYm90dG9tOjEwcHg7fSIpKSwiICIsKCh7aXNNZXNzYWdlOmV9KT0+ZSYmKDAsci5pdikoIndpZHRoOjEwMCU7cGFkZGluZy1sZWZ0OjA7IixDLmNsYXNzTmFtZSwie3BhZGRpbmc6MjFweCAzMHB4O30iLHUuY2xhc3NOYW1lLCJ7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC1zaXplOjIwcHg7fSIsRS5jbGFzc05hbWUsIntmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O30iLGguY2xhc3NOYW1lLCJ7aGVpZ2h0OjI2cHg7Zm9udC1zaXplOjEzcHg7fSIsZi5jbGFzc05hbWUsInttYXJnaW4tcmlnaHQ6OHB4O30iLGIuY2xhc3NOYW1lLCJ7d2lkdGg6Y2FsYygxMDAlIC0gMzJweCk7cGFkZGluZy10b3A6M3B4O30iKSksIiAiLCgoe3RoZW1lOmUsaXNCb3JkZXJsZXNzOnQsaXNJbmxpbmU6bn0pPT4oIXQmJiFufHx0fHxuKSYmKDAsci5pdikocC5jbGFzc05hbWUsIntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiIsZS53aGl0ZSwiO3RyYW5zaXRpb246YWxsIDAuMTJzIGVhc2Utb3V0O3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7JjpmaXJzdC1vZi10eXBleyIsKDAscy5UeSkoe3RoZW1lOmV9KSwiIGJvcmRlci1yYWRpdXM6M3B4IDNweCAwIDA7fSY6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjNweDt9fSIsQy5jbGFzc05hbWUsIntwYWRkaW5nOjIwcHg7fSIsdS5jbGFzc05hbWUsIntmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjI7b3ZlcmZsb3c6d3JhcDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDtmb250LXdlaWdodDo2MDA7JiwmOnZpc2l0ZWR7Y29sb3I6IixlLmJsYWNrLCI7fSZbdHlwZT0nZWR1Y2F0ZS5oZWxwX2NlbnRlcidde3RleHQtYWxpZ246Y2VudGVyO319IixFLmNsYXNzTmFtZSwie2NvbG9yOiIsZS5ib2R5VGV4dCwiO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuMzg7IixzLnFKLCJ9IixoLmNsYXNzTmFtZSwie21hcmdpbi10b3A6MTFweDt9IixmLmNsYXNzTmFtZSwie2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo4cHg7fSIsYi5jbGFzc05hbWUsInt3aWR0aDpjYWxjKDEwMCUgLSAzMnB4KTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y29sb3I6IixlLnN1YmhlYWRlclRleHQsIjtsaW5lLWhlaWdodDoxNnB4O3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjtzcGFue3doaXRlLXNwYWNlOm5vd3JhcDt9fSIpKSkscD0oMCxyLlpQKSgiYSIse3RhcmdldDoiZXp5N2d4ODEifSkoKCh7dGhlbWU6ZSxpc0dyb3VwZWQ6dH0pPT50JiYoMCxyLml2KSgiYm9yZGVyLWJvdHRvbToxcHggc29saWQgIixlLmxpZ2h0R3JleTgsIjsmOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lO30mOmhvdmVye2JhY2tncm91bmQtY29sb3I6IixlLml0ZW1Ib3ZlciwiO3RyYW5zZm9ybTpub25lO30iLGguY2xhc3NOYW1lLCJ7bWFyZ2luLXRvcDo1cHg7fSIsQy5jbGFzc05hbWUsIntwYWRkaW5nOjE1cHggMjBweDt9IikpKSx1PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImV6eTdneDgyIn0pKCksbT0oMCxyLlpQKSgic3BhbiIse3RhcmdldDoiZXp5N2d4ODMifSkoe25hbWU6Im85aGgzYSIsc3R5bGVzOiJoZWlnaHQ6MTZweDsifSksaD0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenk3Z3g4NCJ9KSgpLGc9KDAsci5aUCkoInNwYW4iLHt0YXJnZXQ6ImV6eTdneDg1In0pKCksZj0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenk3Z3g4NiJ9KSgpO3ZhciB4PXtuYW1lOiIxcWdrMHBiIixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MTBweDsifSx2PXtuYW1lOiIxaXN6MHc1IixzdHlsZXM6ImJvdHRvbTowcHg7In07Y29uc3QgeT0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenk3Z3g4NyJ9KSgoKHtpc0JvcmRlcmxlc3M6ZX0pPT5lJiZ2KSwiICIsKCh7aXNCb3JkZXJsZXNzOmV9KT0+IWUmJngpKSxiPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImV6eTdneDg4In0pKHtuYW1lOiIxMjhubGg2IixzdHlsZXM6ImZvbnQtc2l6ZToxM3B4OyJ9KSxFPSgoMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenk3Z3g4OSJ9KSgiYmFja2dyb3VuZC1jb2xvcjoiLCgwLHIuclMpKCJ3aGl0ZSIpLCI7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6IiwoMCxyLnJTKSgiYm9keVRleHQiKSwiOyIscy5MbSksKDAsci5aUCkoImRpdiIse3RhcmdldDoiZXp5N2d4ODEwIn0pKCkpLGs9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZXp5N2d4ODExIn0pKCJ0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjoiLCgwLHIuclMpKCJtZXRhVGV4dCIpLCI7Zm9udC1zaXplOjEzcHg7Y2xlYXI6Ym90aDtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjEycHg7IiksQz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlenk3Z3g4MTIifSkoe25hbWU6IjFrdXZnM28iLHN0eWxlczoiQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpe2JvcmRlcjoxcHggc29saWQgd2hpdGU7fSJ9KX0sNzgyODooZSx0LG4pPT57bi5kKHQse1A6KCk9Pm99KTt2YXIgcj1uKDUwNzAwKTt2YXIgaT17bmFtZToiMTM3Nm5mZCIsc3R5bGVzOiJib3JkZXItcmFkaXVzOjE2LjclO2ltZ3tib3JkZXItcmFkaXVzOjE2LjclO30ifTtjb25zdCBvPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImV2eHVvM2UwIn0pKCJtYXJnaW46MCBhdXRvO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjdXJzb3I6ZGVmYXVsdDtwb3NpdGlvbjpyZWxhdGl2ZTtpbWd7Ym9yZGVyLXJhZGl1czo1MCU7fSIsKCh7c2l6ZTplfSk9PigoZT0zMik9PigwLHIuaXYpKCJ3aWR0aDoiLGUsInB4O2hlaWdodDoiLGUsInB4O2xpbmUtaGVpZ2h0OiIsZSwicHg7Zm9udC1zaXplOiIsZS8yLCJweDtpbWd7d2lkdGg6IixlLCJweDtoZWlnaHQ6IixlLCJweDt9IikpKGUpKSwiICIsKCh7aW5pdGlhbDplLHRoZW1lOnR9KT0+ZSYmKDAsci5pdikoInRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kLWNvbG9yOiIsdC5hdmF0YXJCYWNrZ3JvdW5kQ29sb3IsIjtjb2xvcjoiLHQud2hpdGUsIjt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOyIpKSwiICIsKCh7dXNlcjplLHRoZW1lOnR9KT0+ZSYmKDAsci5pdikoImJhY2tncm91bmQtY29sb3I6Iix0LmFkbWluQ29tbWVudEJhY2tncm91bmQsIjtjb2xvcjojOTRhYmI2OyIpKSwiICIsKCh7c2hhcGU6ZX0pPT4ic3F1aXJjbGUiPT09ZSYmaSkpfSw0MjQ4NzooZSx0LG4pPT57bi5kKHQse0o6KCk9Pmh9KTt2YXIgcj1uKDUwNzAwKSxpPW4oOTU0ODYpLG89bigzMzEzMSksYT1uKDc5MTMpLHM9bigzOTEyMiksbD1uKDM4NDAxKSxjPXtuYW1lOiJ2ZG04NGMiLHN0eWxlczoiZmxvYXQ6bm9uZTsvKiBAbm9mbGlwICovIHBhZGRpbmctbGVmdDowO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDo4cHg7In0sZD17bmFtZToiMXUweDhhZSIsc3R5bGVzOiJ3aWR0aDpjYWxjKDEwMCUgLSAxMDBweCk7In0scD17bmFtZToidnRuMmw0IixzdHlsZXM6InBhZGRpbmctYm90dG9tOjIwcHg7In0sdT17bmFtZToia2w2b2I4IixzdHlsZXM6Im1hcmdpbi1ib3R0b206OHB4O3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94OyJ9LG09e25hbWU6IjE1a3NrdXkiLHN0eWxlczoiLyogQG5vZmxpcCAqLyBmbG9hdDpsZWZ0Oy8qIEBub2ZsaXAgKi8gcGFkZGluZy1sZWZ0OjQ1cHg7d2lkdGg6Y2FsYygxMDAlIC0gNDVweCk7In07Y29uc3QgaD0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMWE3ZTFoMzAifSkoInBvc2l0aW9uOnJlbGF0aXZlOy8qIEBub2ZsaXAgKi8gdGV4dC1hbGlnbjpsZWZ0OyIsKCh7aXNVc2VyOmV9KT0+ZSYmKDAsci5pdikoIi8qIEBub2ZsaXAgKi8gZmxvYXQ6cmlnaHQ7LyogQG5vZmxpcCAqLyBwYWRkaW5nLWxlZnQ6NDhweDt3aWR0aDpjYWxjKDEwMCUgLSA0OHB4KTsiLGwuUC5jbGFzc05hbWUsInsvKiBAbm9mbGlwICovIGZsb2F0OnJpZ2h0O30iKSksIiAiLCgoe2lzVXNlcjplLGlzU2luZ2xlQmxvY2s6dH0pPT5lJiZ0JiYoMCxyLml2KShvLmguY2xhc3NOYW1lLCJ7LyogQG5vZmxpcCAqLyBmbG9hdDpyaWdodDt9IikpLCIgIiwoKHtpc0FkbWluOmV9KT0+ZSYmbSksIiAiLCgoe2lzVXNlcjplLGlzQWRtaW46dH0pPT4hZSYmIXQmJigwLHIuaXYpKCIvKiBAbm9mbGlwICovIGZsb2F0OmxlZnQ7LyogQG5vZmxpcCAqLyBwYWRkaW5nLWxlZnQ6NDhweDsiLGwuUC5jbGFzc05hbWUsInsvKiBAbm9mbGlwICovIGZsb2F0OmxlZnQ7fSIpKSwiICIsKCh7dGhlbWU6ZSxoYXNBdmF0YXI6dCxpc0JvcmRlcmxlc3M6bn0pPT5lLmlzTGVmdEFsaWduJiZ0JiZuJiYhZS5pc01vYmlsZVNpemUmJigwLHIuaXYpKCIvKiBAbm9mbGlwICovIG1hcmdpbi1sZWZ0OjU1cHg7IixhLnQuY2xhc3NOYW1lLCIsIixpLlJkLmNsYXNzTmFtZSwiey8qIEBub2ZsaXAgKi8gbGVmdDotMTBweDt9IikpLCIgIiwoKHtpc0JvcmRlcmxlc3M6ZX0pPT5lJiZ1KSwiICIsKCh7aXNBZG1pbjplLGlzQm9yZGVybGVzczp0fSk9PmUmJnQmJigwLHIuaXYpKCIvKiBAbm9mbGlwICovIGZsb2F0OnJpZ2h0OyIscy52SC5jbGFzc05hbWUsIntwYWRkaW5nOjBweDttYXJnaW4tdG9wOjZweDt9IikpLCIgIiwoKHtpc1VzZXI6ZSxpc0JvcmRlcmxlc3M6dCx0aGVtZTpufSk9PmUmJnQmJigwLHIuaXYpKHMudkguY2xhc3NOYW1lLCJ7ZmxvYXQ6bm9uZTtjb2xvcjoiLG4uaXNQcmltYXJ5Q29sb3JMaWdodD9uLmdyZXk6bi53aGl0ZSwiO29wYWNpdHk6MC41O3dpZHRoOmF1dG87fSIscy5TTi5jbGFzc05hbWUsIntmbG9hdDpub25lO30iKSksIiAiLCgoe3RoZW1lOmV9KT0+ZS50YWJOYXZpZ2F0aW9uJiZwKSwiICIsKCh7dGhlbWU6ZSxpc0JvcmRlcmxlc3M6dH0pPT5lLmlzTGVmdEFsaWduJiZ0JiZkKSwiICIsKCh7dGhlbWU6ZSxpc0FkbWluOnQsaXNCb3JkZXJsZXNzOm59KT0+dCYmbiYmZS5pc01vYmlsZUJyb3dzZXImJmMpKX0sNDg3MjE6KGUsdCxuKT0+e24uZCh0LHtCNjooKT0+ayxEeTooKT0+dixHSzooKT0+UCxMTjooKT0+VCxScTooKT0+ZyxXSjooKT0+UyxfNTooKT0+eSxfbjooKT0+dyxxZjooKT0+Zix3TDooKT0+RX0pO3ZhciByPW4oNTA3MDApLGk9bigzOTExMyksbz1uKDE2MzE1KSxhPW4oOTYxMzcpLHM9big5NjI4MSk7Y29uc3QgbD0ibm9ybWFsIixjPSgwLHIuRjQpKCIwJXtvcGFjaXR5OjA7fTcwJXtvcGFjaXR5OjA7fTEwMCV7b3BhY2l0eToxO30iKTt2YXIgZD17bmFtZToiMWpvdm1vZyIsc3R5bGVzOiJwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpsZWZ0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MC44O3RyYW5zaXRpb246b3BhY2l0eSAyMDBtcyBlYXNlO2hlaWdodDo1MXB4O21hcmdpbi10b3A6MnB4OyY6aG92ZXJ7b3BhY2l0eToxO30mOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjt9c3Zne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxOHB4O31wYWRkaW5nOjAgNnB4OyJ9O2NvbnN0IHA9ZT0+ZDt2YXIgdT17bmFtZToiMWgzZjJtcyIsc3R5bGVzOiJ0ZXh0YXJlYTpmb2N1c3tib3gtc2hhZG93Om5vbmU7fSJ9LG09e25hbWU6IjI5a2VyeCIsc3R5bGVzOiJiYWNrZ3JvdW5kOm5vbmU7In0saD17bmFtZToiMXIxYXE0IixzdHlsZXM6Im1hcmdpbi1ib3R0b206NTZweDsifTtjb25zdCBnPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1MHpkajEwIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDttaW4taGVpZ2h0OjU2cHg7bWF4LWhlaWdodDoyMDBweDsiLCgoe3RoZW1lOmUsaXNCb3JkZXJsZXNzOnR9KT0+IXQmJigwLHIuaXYpKCJib3JkZXItdG9wOjFweCBzb2xpZCAiLGUubGlnaHRCb3JkZXIsIjsiKSksIiAiLCgoe3RoZW1lOmUsaXNCb3JkZXJsZXNzOnR9KT0+dCYmKDAsci5pdikoImJvcmRlcjoxcHggc29saWQgIixlLmxpZ2h0Qm9yZGVyLCI7YmFja2dyb3VuZDoiLGUud2hpdGUsIjsiKSksIiAiLCgoe2N1c3RvbWVyUHJpdmFjeVBvbGljeUVuYWJsZWQ6ZX0pPT5lJiYoMCxyLml2KSgiYm90dG9tOiIscy5DTywicHg7IikpLCIgJjpmb2N1cy13aXRoaW57IiwoKCk9PntpZigoMCxvLlVxKSgpJiYhKDAsYS5tKSgpKXJldHVybiBofSksIn10ZXh0YXJlYSxwcmV7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MThweDtwYWRkaW5nLXJpZ2h0OjEwMHB4O3BhZGRpbmctbGVmdDoiLDI5LCJweDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ZvbnQtZmFtaWx5OiIsKDAsci5yUykoImZvbnRTYW5zU2VyaWYiKSwiO2ZvbnQtc2l6ZToiLDE0LCJweDtmb250LXdlaWdodDoiLGwsIjtsaW5lLWhlaWdodDoiLDEuMzMsIjtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsci5yUykoIndoaXRlIiksIjt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7bWF4LWhlaWdodDoyMDBweDtvdmVyZmxvdzpoaWRkZW47IiwoKHtpc0JvcmRlcmxlc3M6ZX0pPT5lJiZtKSwifXRleHRhcmVheyY6OnBsYWNlaG9sZGVye2NvbG9yOiIsKDAsci5yUykoImlucHV0UGxhY2Vob2xkZXIiKSwiO2ZvbnQtc3R5bGU6IiwoMCxyLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7Zm9udC1zaXplOiIsMTQsInB4O2ZvbnQtd2VpZ2h0OiIsbCwiO2xpbmUtaGVpZ2h0OiIsMS4zMywiO31wb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7Y29sb3I6IiwoMCxyLnJTKSgibTVEYXJrR3JleTIiKSwiO3Jlc2l6ZTpub25lO2JvcmRlcjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciBlYXNlIDIwMG1zLGJveC1zaGFkb3cgZWFzZSAyMDBtcztvdXRsaW5lLW9mZnNldDotNXB4OyY6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjoiLCgwLHIuclMpKCJ3aGl0ZSIpLCI7Ym94LXNoYWRvdzowcHggMHB4IDEwMHB4IDBweCAiLCgwLHIuclMpKCJjb21wb3NlclNoYWRvd0NvbG9yIiksIjt9b3ZlcmZsb3cteTphdXRvO31wcmV7dmlzaWJpbGl0eTpoaWRkZW47fSIsKCh7dGhlbWU6ZSxpc0JvcmRlcmxlc3M6dH0pPT50JiYoMCxyLml2KSgicG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoiLGUubm90aWZpY2F0aW9uQm9yZGVyUmFkaXVzUHgsInB4O2JveC1zaGFkb3c6bm9uZTthbmltYXRpb246IixjLCIgNzUwbXMgZWFzZTt0ZXh0YXJlYSxwcmV7cGFkZGluZy1sZWZ0OjIxcHg7fXRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6bm9uZTt9IikpLCIgIiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiYoMCxyLml2KSgidGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjoiLGUuaW5wdXRCYWNrZ3JvdW5kLCI7fSIpKSwiICIsKCh7aGFzQ29tcG9zZXJTdWdnZXN0aW9uc0xvYWRpbmc6ZSxoYXNDb21wb3NlclN1Z2dlc3Rpb25zOnR9KT0+KGV8fHQpJiZ1KSwiIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKXtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO30iKSxmPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1MHpkajExIn0pKCJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDoiLDIxLCJweDsiLCgoe2lzQm9yZGVybGVzczplfSk9PmUmJigwLHIuaXYpKCJyaWdodDoiLDIwLCJweDsiKSkpLHg9KHt0aGVtZTplLHNob3dFbW9qaVBpY2tlcjp0LGlzUHJpbWFyeUNvbG9yUmVhZGFibGU6bn0pPT4oMCxyLml2KShwKCksIiAiLHQmJigwLHIuaXYpKCJzdmcgY2lyY2xle2ZpbGw6IixuP2UuYXBwQ29sb3I6ZS5ncmV5LCI7c3Ryb2tlOiIsbj9lLmFwcENvbG9yOmUuZ3JleSwiO30iKSksdj0oMCxyLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlNTB6ZGoxMiJ9KSh4KSx5PSgwLHIuWlApKCJzcGFuIix7dGFyZ2V0OiJlNTB6ZGoxMyJ9KSh4KSxiPSh7dGhlbWU6ZSxzaG93R2lmUGlja2VyOnQsaXNQcmltYXJ5Q29sb3JSZWFkYWJsZTpufSk9PigwLHIuaXYpKHAoKSwiICIsdCYmKDAsci5pdikoInN2ZyBwYXRoe2ZpbGw6IixuP2UuYXBwQ29sb3I6ZS5ncmV5LCI7fSIpKSxFPSgwLHIuWlApKCJidXR0b24iLHt0YXJnZXQ6ImU1MHpkajE0In0pKGIpLGs9KDAsci5aUCkoInNwYW4iLHt0YXJnZXQ6ImU1MHpkajE1In0pKGIpLEM9KHt0aGVtZTplfSk9PigwLHIuaXYpKHAoKSksdz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTB6ZGoxNiJ9KShDLCIgc3Zne3BhdGh7ZmlsbDpub25lO319IiksUz0oMCxyLlpQKSgic3BhbiIse3RhcmdldDoiZTUwemRqMTcifSkoQyksUD0oMCxyLlpQKSgiYnV0dG9uIix7dGFyZ2V0OiJlNTB6ZGoxOCJ9KSgoKHt0aGVtZTplfSk9PnAoKSksIiAiLGkuSzMsIiAiLCgoe3RoZW1lOmUsaXNQcmltYXJ5Q29sb3JSZWFkYWJsZTp0fSk9PigwLHIuaXYpKCJzdmcgcGF0aHtmaWxsOiIsdD9lLmFwcENvbG9yOmUuZ3JleSwiO30iKSkpLFQ9KDAsci5aUCkoInNwYW4iLHt0YXJnZXQ6ImU1MHpkajE5In0pKHtuYW1lOiIxYmF1bHZ6IixzdHlsZXM6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9KX0sODE3Nzg6KGUsdCxuKT0+e24uZCh0LHtZOigpPT54LG46KCk9PnB9KTt2YXIgcj1uKDUwNzAwKSxpPW4oMzkxMTMpLG89big5NTQ4NiksYT1uKDM5MTIyKTtjb25zdCBzPW4ucCsiaW1hZ2VzL3dhcm5pbmctaWNvbi45MzZiYTdjOC5wbmciLGw9bi5wKyJpbWFnZXMvd2FybmluZy1pY29uQDJ4LmVmZTI5MWRkLnBuZyI7dmFyIGM9bigzODQwMSksZD1uKDQyNDg3KTtjb25zdCBwPSIyMDBtcyI7dmFyIHU9e25hbWU6ImhweW4xciIsc3R5bGVzOiJwYWRkaW5nLWxlZnQ6NDVweDsifSxtPXtuYW1lOiIxMmQ3ejd4IixzdHlsZXM6Iip7Y3Vyc29yOnBvaW50ZXI7fSJ9LGg9e25hbWU6IjFldHh0a3kiLHN0eWxlczoicGFkZGluZy1ib3R0b206OHB4fTsifSxnPXtuYW1lOiI0Y3h5YnYiLHN0eWxlczoicGFkZGluZy1ib3R0b206OHB4OyJ9LGY9e25hbWU6ImxiMDV3bCIsc3R5bGVzOiImLmludGVyY29tLWNvbnZlcnNhdGlvbi1wYXJ0LWVudGVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30ifTtjb25zdCB4PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImVxaHplMmgwIn0pKGkuZEYsIiBwYWRkaW5nLWJvdHRvbToxNnB4OyIsKCh7aXNBZG1pbjplfSk9PmUmJigwLHIuaXYpKCImLmludGVyY29tLWNvbnZlcnNhdGlvbi1wYXJ0LWVudGVye29wYWNpdHk6MDt9Ji5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1lbnRlci5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1lbnRlci1hY3RpdmV7b3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAiLHAsIjt9IixhLnZILmNsYXNzTmFtZSwiey8qIEBub2ZsaXAgKi8gcGFkZGluZy1sZWZ0OjQ1cHg7fSIpKSwiICIsKCh7aXNTZWxmOmUsY29udmVyc2F0aW9uSGFzU2Nyb2xsZWQ6dH0pPT5lJiYoMCxyLml2KSgiJi5pbnRlcmNvbS1jb252ZXJzYXRpb24tcGFydC1lbnRlcntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNDBweCk7fSYuaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtZW50ZXIuaW50ZXJjb20tY29udmVyc2F0aW9uLXBhcnQtZW50ZXItYWN0aXZle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2l0aW9uOm9wYWNpdHkgIixwLCIsdHJhbnNmb3JtICIscCwiO30iLHQmJmYsIiAiLGEudkguY2xhc3NOYW1lLCJ7LyogQG5vZmxpcCAqLyBmbG9hdDpyaWdodDt9IixhLlNOLmNsYXNzTmFtZSwiey8qIEBub2ZsaXAgKi8gZmxvYXQ6cmlnaHQ7fSIpKSwiICIsKCh7aXNBZG1pbjplLGlzU2VsZjp0fSk9PiFlJiYhdCYmKDAsci5pdikoYS52SC5jbGFzc05hbWUsInsvKiBAbm9mbGlwICovIHBhZGRpbmctbGVmdDo0NXB4O30iKSksIiAiLCgoe2dyb3VwZWQ6ZX0pPT5lJiZnKSwiICIsKCh7aXNMYXN0UGFydDplLGlzQm9yZGVybGVzczp0fSk9PmUmJigwLHIuaXYpKCJwYWRkaW5nLWJvdHRvbToyNHB4OyIsdCYmaCkpLCIgIiwoKHt0aGVtZTplLGlzRmFpbGVkUGFydDp0LGlzUmV0cnlhYmxlOm59KT0+dCYmKDAsci5pdikoYS52SC5jbGFzc05hbWUsInsiLCgwLGkuS28pKHMsbCwiMTFweCIsIjExcHgiKSwiIC8qIEBub2ZsaXAgKi8gcGFkZGluZy1sZWZ0OjE1cHg7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IDdweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Y29sb3I6IixlLmVycm9yVGV4dCwiO3dpZHRoOmF1dG87fSIsbiYmbSkpLCIgIiwoKHtpc0FkbWluOmUsaXNCb3JkZXJsZXNzOnR9KT0+ZSYmdCYmKDAsci5pdikoby5iOC5jbGFzc05hbWUsIiAiLGEudkguY2xhc3NOYW1lLCJ7cGFkZGluZzo1cHggMjBweDt9IikpLCIgIiwoKHtpc1RpY2tldFN0YXR1c1VwZGF0ZTplLGlzQm9yZGVybGVzczp0fSk9PmUmJnQmJnUpLCIgIixvLmI4LmNsYXNzTmFtZSwiICsgIixkLkouY2xhc3NOYW1lLCJ7IixjLlAuY2xhc3NOYW1lLCJ7cGFkZGluZy1ib3R0b206OHB4O319Iil9LDczOTY0OihlLHQsbik9PntuLmQodCx7a1Y6KCk9Pm8sciQ6KCk9PmMseDU6KCk9Pmx9KTt2YXIgcj1uKDUwNzAwKSxpPW4oODE3NzgpO2NvbnN0IG89KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTFsZmk1aGgwIn0pKHtuYW1lOiJkajR4dnMiLHN0eWxlczoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MTtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO292ZXJmbG93LWFuY2hvcjpub25lO2hlaWdodDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlOyJ9KTt2YXIgYT17bmFtZToiMXc1emc2aiIsc3R5bGVzOiJvcGFjaXR5OjAuMjsifSxzPXtuYW1lOiIzZG1kcWIiLHN0eWxlczoidHJhbnNpdGlvbjpub25lOyJ9O2NvbnN0IGw9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTFsZmk1aGgxIn0pKCJwYWRkaW5nOjI0cHggMjRweCAwO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gIixpLm4sIjtvdmVyZmxvdy1hbmNob3I6bm9uZTs+ICp7ZmxleDoxIDEwMCU7bWF4LXdpZHRoOjEwMCU7fSIsKCh7aXNTY3JvbGxpbmc6ZX0pPT5lJiZzKSwiICIsKCh7aXNCb3JkZXJsZXNzOmUsaXNGYWRlZDp0fSk9PmUmJigwLHIuaXYpKCJwYWRkaW5nOjA7Iix0JiZhKSkpLGM9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTFsZmk1aGgyIn0pKCJ0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjoiLCgwLHIuclMpKCJtZXRhVGV4dCIpLCI7Zm9udC1zaXplOjEzcHg7Y2xlYXI6Ym90aDtwYWRkaW5nLXRvcDoxNHB4O3BhZGRpbmctYm90dG9tOjE0cHg7JjpmaXJzdC1vZi10eXBle3BhZGRpbmctdG9wOjBweDt9Iil9LDY0NDEyOihlLHQsbik9PntuLmQodCx7TjooKT0+cyxoOigpPT5vfSk7dmFyIHI9big1MDcwMCksaT1uKDYxMDY0KTtjb25zdCBvPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImVkbzh3YWswIn0pKCJ3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnQ7IixpLmJTLmNsYXNzTmFtZSwie21hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206OHB4O21hcmdpbi1sZWZ0OjQ1cHg7fSIsKCh7aXNCb3JkZXJsZXNzOmV9KT0+ZSYmKDAsci5pdikoaS5iUy5jbGFzc05hbWUsInttYXJnaW4tbGVmdDo0NXB4O30iKSkpO3ZhciBhPXtuYW1lOiIxcWdrMHBiIixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MTBweDsifTtjb25zdCBzPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImVkbzh3YWsxIn0pKCgoe2lzQm9yZGVybGVzczplfSk9PiFlJiZhKSl9LDYxMDY0OihlLHQsbik9PntuLmQodCx7Rmg6KCk9Pm0sWDg6KCk9PnMsX1c6KCk9PmMsX186KCk9PmQsYlM6KCk9Pm8sYzI6KCk9PnUsaHM6KCk9PmwsaWM6KCk9PmEsbUI6KCk9PnB9KTt2YXIgcj1uKDUwNzAwKSxpPW4oMzkxMTMpO2NvbnN0IG89KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTczeHp2cDAifSkoIm1hcmdpbjozMHB4IDAgMzBweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOiIsKDAsci5yUykoIndoaXRlIiksIjtib3JkZXItcmFkaXVzOjVweDtjb2xvcjoiLCgwLHIuclMpKCJib2R5VGV4dCIpLCI7dHJhbnNpdGlvbjpoZWlnaHQgMjAwbXMgZWFzZS1pbi1vdXQ7aGVpZ2h0OiIsKDAsci5OUSkoImhlaWdodCIpLCJweDsiLGkuVHkpLGE9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTczeHp2cDEifSkoe25hbWU6IjE5a3pydHUiLHN0eWxlczoicGFkZGluZzoyNHB4OyJ9KSxzPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU3M3h6dnAyIn0pKHtuYW1lOiJ6MGttdG4iLHN0eWxlczoiZm9udC1zaXplOjE0cHg7Y29sb3I6IzNhM2M0YztsaW5lLWhlaWdodDoyMnB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206M3B4OyJ9KSxsPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU3M3h6dnAzIn0pKCJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxOXB4O2NvbG9yOiIsKDAsci5yUykoInN1YmhlYWRlclRleHQiKSwiO3RleHQtYWxpZ246Y2VudGVyOyIpLGM9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTczeHp2cDQifSkoImJvcmRlci10b3A6MXB4IHNvbGlkICIsKDAsci5yUykoImRpdmlkZXJCb3JkZXIiKSwiO2NvbG9yOiIsKDAsci5yUykoInN1YmhlYWRlclRleHQiKSwiO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE5cHg7bWF4LWhlaWdodDoxNDBweDtvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxNnB4IDI0cHg7IiksZD0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNzN4enZwNSJ9KSh7bmFtZToiMTI5OXBlbyIsc3R5bGVzOiJwYWRkaW5nOjIwcHggMjBweCAwOyJ9KSxwPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU3M3h6dnA2In0pKHtuYW1lOiJnczFsZjMiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWJvdHRvbTo1cHg7In0pLHU9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTczeHp2cDcifSkoImZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6IiwoMCxyLnJTKSgiYm9keVRleHQiKSwiO3RyYW5zaXRpb246b3BhY2l0eSAzMDBtcyAxMDAwbXMsbWF4LWhlaWdodCA0MDBtcyAxMDAwbXM7cG9zaXRpb246c3RhdGljO21heC1oZWlnaHQ6NDhweDt0ZXh0LWFsaWduOmNlbnRlcjsiKSxtPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU3M3h6dnA4In0pKHtuYW1lOiIxand1MmkyIixzdHlsZXM6Im1hcmdpbjo4cHggMTBweCA2cHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyJ9KX0sMjE2NDQ6KGUsdCxuKT0+e24uZCh0LHtuSDooKT0+eCxJNjooKT0+dixXMjooKT0+cCx5QTooKT0+aCxESDooKT0+dyx5azooKT0+UCxXbjooKT0+UyxWbTooKT0+QyxzdjooKT0+ayx5YzooKT0+RSxEYjooKT0+bSxZajooKT0+ZixEeDooKT0+dX0pO3ZhciByPW4oNTA3MDApLGk9big2NzI5NCksbz1uKDQ5MjYpO2NsYXNzIEJ1dHRvbiBleHRlbmRzIGkuQ29tcG9uZW50e2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMubm9kZT12b2lkIDAsdGhpcy5oYW5kbGVPbkNsaWNrPSgpPT57dGhpcy5wcm9wcy5vbkNsaWNrJiZ0aGlzLnByb3BzLm9uQ2xpY2sodGhpcy5wcm9wcy52YWx1ZSl9fWNvbXBvbmVudERpZE1vdW50KCl7dGhpcy5wcm9wcy5mb2N1c2VkJiZ0aGlzLm5vZGUmJnRoaXMubm9kZS5mb2N1cygpfXJlbmRlcigpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoby5hbmltYXRlZC5idXR0b24se29uQ2xpY2s6dGhpcy5oYW5kbGVPbkNsaWNrLHZhbHVlOnRoaXMucHJvcHMudmFsdWUsc3R5bGU6dGhpcy5wcm9wcy5zdHlsZSxjbGFzc05hbWU6dGhpcy5wcm9wcy5jbGFzc05hbWUscmVmOmU9PnRoaXMubm9kZT1lfSx0aGlzLnByb3BzLmxhYmVsKX19QnV0dG9uLmRlZmF1bHRQcm9wcz17dmFsdWU6IiIsbGFiZWw6IiIsY2xhc3NOYW1lOiIifTt2YXIgYT1uKDgyOTgwKTtjb25zdCBzPSgwLHIuRjQpKCIwJXtvcGFjaXR5OjA7fTcwJXtvcGFjaXR5OjA7fTEwMCV7b3BhY2l0eToxO30iKTt2YXIgbD17bmFtZToiMTNlZWtvNSIsc3R5bGVzOiIvKiBAbm9mbGlwICovIHBhZGRpbmc6MCAwIDAgNDVweDttYXJnaW46MDtiYWNrZ3JvdW5kOm5vbmU7In0sYz17bmFtZToiMTBkdHV5dyIsc3R5bGVzOiJ6LWluZGV4OjI7bWFyZ2luLXRvcDozcHg7Ym94LXNoYWRvdzppbnNldCAwcHggOXB4IDhweCAtMTBweCByZ2JhKDM4LDc2LDE1MiwwLjIpLGluc2V0IDBweCAtOXB4IDhweCAtMTBweCByZ2JhKDM4LDc2LDE1MiwwLjIpO2JhY2tncm91bmQ6I2ZhZmFmYTsifSxkPXtuYW1lOiJnNnJqYzQiLHN0eWxlczoicGFkZGluZy10b3A6MTNweDtwYWRkaW5nLWJvdHRvbTo2cHg7In07Y29uc3QgcD0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcXEzdHdjMCJ9KSgicG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO3BhZGRpbmc6MCAyNnB4O21hcmdpbi1ib3R0b206LTNweDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnBhZGRpbmcgMTAwbXMsYmFja2dyb3VuZCAxMDBtcyxib3gtc2hhZG93IDEwMG1zOyIsKCh7c3VnZ2VzdGlvbnNWaXNpYmxlOmV9KT0+ZSYmZCksIiAiLCgoe3N1Z2dlc3Rpb25zVmlzaWJsZTplLGlzVHlwZWFoZWFkU3VnZ2VzdGlvbnM6dCxpc0JvcmRlcmxlc3M6bn0pPT5lJiZ0JiYhbiYmYyksIiAiLCgoe2lzQm9yZGVybGVzczplfSk9PmUmJmwpLCIgIiwoKHtpc0JvcmRlcmxlc3M6ZSxzdWdnZXN0aW9uc1Zpc2libGU6dH0pPT5lJiZ0JiYoMCxyLml2KSgicGFkZGluZy10b3A6MTBweDthbmltYXRpb246IixzLCIgNzUwbXMgZWFzZTsiKSkpLHU9KDAsci5aUCkoImgzIix7dGFyZ2V0OiJlcXEzdHdjMSJ9KSgiZGlzcGxheTpibG9jaztjb2xvcjoiLCgwLHIuclMpKCJncmV5IiksIjtmb250LXNpemU6MTRweDtwYWRkaW5nOjhweCA1cHg7LyogQG5vZmxpcCAqLyB0ZXh0LWFsaWduOnJpZ2h0OyIpLG09KDAsci5aUCkoImRpdiIse3RhcmdldDoiZXFxM3R3YzIifSkoe25hbWU6InhicnZ1ZCIsc3R5bGVzOiJib3JkZXItdG9wOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7In0pLGg9NjAwO3ZhciBnPXtuYW1lOiIzZG1kcWIiLHN0eWxlczoidHJhbnNpdGlvbjpub25lOyJ9O2NvbnN0IGY9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZXFxM3R3YzMifSkoInBvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246aGVpZ2h0ICIsaCwibXM7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDoiLCgwLHIuTlEpKCJoZWlnaHQiKSwicHg7bWF4LXdpZHRoOiIsKDAsci5yUykoIm1lc3NlbmdlcldpZHRoUHgiKSwicHg7IiwoKHtpc0luYm91bmRCb3Q6ZX0pPT5lJiZnKSkseD0xMCx2PTEwO3ZhciB5PXtuYW1lOiIxYmF1bHZ6IixzdHlsZXM6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LGI9e25hbWU6IjEzbzdldTIiLHN0eWxlczoiZGlzcGxheTpibG9jazsifTtjb25zdCBFPSgwLHIuWlApKEJ1dHRvbix7dGFyZ2V0OiJlcXEzdHdjNCJ9KSgicG9zaXRpb246YWJzb2x1dGU7LyogQG5vZmxpcCAqLyByaWdodDowO3RvcDowO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE4cHg7cGFkZGluZzoiLHYsInB4O2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQtY29sb3I6IiwoMCxyLnJTKSgicXVpY2tSZXBseUJhY2tncm91bmRDb2xvciIpLCI7Y29sb3I6IiwoMCxyLnJTKSgicXVpY2tSZXBseVRleHRDb2xvciIpLCI7IiwoKHtpc1R5cGVhaGVhZFN1Z2dlc3Rpb246ZX0pPT5lP2I6eSksIiAmOmhvdmVye2JhY2tncm91bmQtY29sb3I6IiwoMCxyLnJTKSgiYXBwQ29sb3IiKSwiO2NvbG9yOiIsKDAsci5yUykoIndoaXRlIiksIjt9IiwoKHt0aGVtZTplfSk9PiJsaWdodCI9PT1lLnByaW1hcnlUeXBlJiYoMCxyLml2KSgiJjpob3Zlcntjb2xvciAiLGUubTVEYXJrR3JleTIsIn0iKSkpLGs9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZXFxM3R3YzUifSkoe25hbWU6IjM2d2VwMSIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MDsifSksQz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcXEzdHdjNiJ9KSh7bmFtZToiMWJhdWx2eiIsc3R5bGVzOiJkaXNwbGF5OmlubGluZS1ibG9jazsifSksdz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlcXEzdHdjNyJ9KSh7bmFtZToiYTN0eTV1IixzdHlsZXM6InBhZGRpbmc6M3B4IDAgMTZweDsvKiBAbm9mbGlwICovIHRleHQtYWxpZ246cmlnaHQ7In0pLFM9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZXFxM3R3YzgifSkoImRpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiIsKDAsci5yUykoImRhcmtHcmV5IiksIjtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoyMHB4OyIpLFA9KDAsci5aUCkoYS5aLHt0YXJnZXQ6ImVxcTN0d2M5In0pKCJoZWlnaHQ6MTBweDt3aWR0aDoxMHB4O21hcmdpbi1sZWZ0OjVweDt0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjdXJzb3I6cG9pbnRlcjtwYXRoe2ZpbGw6IiwoMCxyLnJTKSgiZGFya0dyZXkiKSwiO30iKX0sNjA5MzooZSx0LG4pPT57bi5kKHQse3ZvOigpPT52LHFrOigpPT54LEhiOigpPT5OLHVpOigpPT56LEo6KCk9PkwsWlQ6KCk9PkQsaXQ6KCk9PlIsc2s6KCk9PmYsbXI6KCk9PlYsYnA6KCk9PmcsckI6KCk9PmoseWk6KCk9PnksWVk6KCk9PmssSHQ6KCk9PlMsd3g6KCk9PkEsRDY6KCk9PkUsJGc6KCk9PkYsb1M6KCk9PnEsQlI6KCk9PlcsdnQ6KCk9Pm0sZlc6KCk9PlQseFY6KCk9PnUsRUI6KCk9PmgsU1I6KCk9PkksZ1I6KCk9Pl99KTt2YXIgcj1uKDUwNzAwKSxpPW4oMzkxMTMpO2NvbnN0IG89bi5wKyJpbWFnZXMvbmV4dC1pY29uLmNmNTFjNjA1LnBuZyIsYT1uLnArImltYWdlcy9uZXh0LWljb25AMnguYmZkZDIwZGEucG5nIixzPW4ucCsiaW1hZ2VzL2NoZWNrLWljb24uN2NhYmU0NjcucG5nIixsPW4ucCsiaW1hZ2VzL2NoZWNrLWljb25AMnguMmMwOWMzMWMucG5nIjt2YXIgYz1uKDY5NTE4KSxkPXtuYW1lOiIxNXo2YjI3IixzdHlsZXM6Im1hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjVweDsifSxwPXtuYW1lOiIxYWI3NTZyIixzdHlsZXM6Im1hcmdpbi10b3A6NXB4O21hcmdpbi1ib3R0b206MDsifTtjb25zdCB1PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1ODR0YWcwIn0pKCJtYXJnaW46MzBweCAwIDMwcHggMDtwYWRkaW5nOjE2cHggMjBweCAyMHB4O2NvbG9yOiIsKDAsci5yUykoIm01RGFya0dyZXkyIiksIjtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjVweDt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjoiLCgwLHIuclMpKCJ3aGl0ZSIpLCI7IiwoKHtpc0JvcmRlcmxlc3M6ZSxsYXN0UGFydDp0fSk9PmUmJnQmJnApLCIgIiwoKHtpc0JvcmRlcmxlc3M6ZSxuZXh0UGFydEJ5QWRtaW46dH0pPT5lJiZ0JiZkKSwiICIsKCh7aXNTdWNjZXNzZnVsOmV9KT0+ZSYmKDAsci5pdikoSS5jbGFzc05hbWUsIntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47bWF4LWhlaWdodDoyNHB4O30iLF8uY2xhc3NOYW1lLCJ7cG9zaXRpb246c3RhdGljO29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7bWF4LWhlaWdodDo0OHB4O30iKSkpLG09KDAsci5aUCkoInNwYW4iLHt0YXJnZXQ6ImU1ODR0YWcxIn0pKCJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiIsKDAsci5yUykoIm1ldGFUZXh0IiksIjttYXJnaW4tcmlnaHQ6MzlweDsmOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjA7fSY6aG92ZXJ7Y29sb3I6IiwoMCxyLnJTKSgiaXRlbUhvdmVyIiksIjtib3JkZXItYm90dG9tOjFweCBzb2xpZDt9IiwoKHt0aGVtZTplLGlzU2VsZWN0ZWQ6dH0pPT50JiYoMCxyLml2KSgiY29sb3I6IixlLmJvZHlUZXh0LCI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQ7IikpKSxoPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1ODR0YWcyIn0pKHtuYW1lOiJnczFsZjMiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWJvdHRvbTo1cHg7In0pLGc9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzMifSkoIndpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdDsiLHUuY2xhc3NOYW1lLCJ7bWFyZ2luLXRvcDo2cHg7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1sZWZ0OjQ1cHg7cGFkZGluZy1sZWZ0OjA7fSIsbS5jbGFzc05hbWUsInttYXJnaW4tcmlnaHQ6MTlweDt9IiwoKHtpc0JvcmRlcmxlc3M6ZX0pPT5lJiYoMCxyLml2KSh1LmNsYXNzTmFtZSwie21hcmdpbi1sZWZ0OjQ1cHg7fSIsbS5jbGFzc05hbWUsInttYXJnaW4tcmlnaHQ6OXB4O30iKSkpLGY9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzQifSkoe25hbWU6IjFsYzRqNjEiLHN0eWxlczoibWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206OHB4O3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdDsifSkseD0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnNSJ9KSgicGFkZGluZzoyNnB4IDI0cHggMjRweDttYXJnaW4tbGVmdDo0OHB4O2JvcmRlci1yYWRpdXM6IiwoMCxyLnJTKSgiY29udmVyc2F0aW9uUGFydEJvcmRlclJhZGl1c1B4IiksIjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IiwoMCxyLnJTKSgiYm9keVRleHQiKSwiO292ZXJmbG93OmhpZGRlbjsiLGkuJFgsIiAiLCgoe3RoZW1lOmUsaXNCb3JkZXJsZXNzOnR9KT0+dCYmKDAsci5pdikoImJveC1zaGFkb3c6IixlLm5vdGlmaWNhdGlvbkJveFNoYWRvdywiO2JvcmRlci1yYWRpdXM6IixlLm5vdGlmaWNhdGlvbkJvcmRlclJhZGl1c1B4LCI7Ym9yZGVyLWNvbG9yOiIsZS53aGl0ZSwiO2JhY2tncm91bmQtY29sb3I6IixlLndoaXRlLCI7bWFyZ2luLWxlZnQ6NDVweDsiKSkpLHY9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzYifSkoe25hbWU6IjFxZ2swcGIiLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbToxMHB4OyJ9KSx5PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1ODR0YWc3In0pKHtuYW1lOiJjeTBiOXEiLHN0eWxlczoicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTp0YWJsZTt3aWR0aDoxMDAlO2RpdntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246dG9wO30ifSk7dmFyIGI9e25hbWU6Inh4eHF4byIsc3R5bGVzOiJ3aWR0aDoxcHg7dHJhbnNpdGlvbjp3aWR0aCAzMDBtcyAxMDAwbXM7In07Y29uc3QgRT0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnOCJ9KSgid2lkdGg6NDBweDsiLCgoe2hhc0NoYW5uZWw6ZX0pPT5lJiZiKSksaz0oMCxyLlpQKShjLlcse3RhcmdldDoiZTU4NHRhZzkifSkoe25hbWU6ImkyY3lzZCIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTJweDtsZWZ0OjEycHg7ei1pbmRleDoxO3RyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zOyJ9KTt2YXIgQz17bmFtZToidHZ5NXAxIixzdHlsZXM6ImlucHV0e2JvcmRlcjoxcHggc29saWQgI2ZjZWRlZjtiYWNrZ3JvdW5kLWNvbG9yOiNmY2VkZWY7fSJ9LHc9e25hbWU6IjF0ZXBtMmQiLHN0eWxlczoiaW5wdXR7cGFkZGluZy1sZWZ0OjMzcHg7fSJ9O2NvbnN0IFM9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzEwIn0pKCJwb3NpdGlvbjpyZWxhdGl2ZTtpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjQwcHg7d2lkdGg6MTAwJTtwYWRkaW5nOjAgMTJweDtmb250LXNpemU6MTRweDtmb250LWZhbWlseToiLCgwLHIuclMpKCJmb250U2Fuc1NlcmlmIiksIjtjb2xvcjoiLCgwLHIuclMpKCJpbnB1dFRleHQiKSwiO2JvcmRlci1yYWRpdXM6NHB4IDAgMCA0cHg7Ym9yZGVyOjFweCBzb2xpZCAiLCgwLHIuclMpKCJpbnB1dEJvcmRlciIpLCI7Ym9yZGVyLXJpZ2h0OjA7YXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Ym9yZGVyIDMwMG1zLGNvbG9yIDQwMG1zIDYwMG1zLHBhZGRpbmcgMzAwbXMgNjAwbXMsaGVpZ2h0IDQwMG1zIDEwMDBtczsmOmRpc2FibGVke29wYWNpdHk6MC43O319IiwoKHtpc1Bob25lOmV9KT0+ZSYmdyksIiAiLCgoe2hhc0Vycm9yOmV9KT0+ZSYmQyksIiAiLCgoe3RoZW1lOmUsaXNTdWNjZXNzZnVsOnR9KT0+dCYmKDAsci5pdikoImlucHV0e2JvcmRlcjoxcHggc29saWQgIixlLndoaXRlLCI7Ym9yZGVyLXJpZ2h0OjA7cGFkZGluZzowO2hlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjoiLGUuYm9keVRleHQsIjt0ZXh0LWZpbGwtY29sb3I6IixlLmJvZHlUZXh0LCI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7JjphdXRvZmlsbHtib3gtc2hhZG93OjAgMCAwcHggMTAwMHB4ICIsZS53aGl0ZSwiIGluc2V0O3RleHQtZmlsbC1jb2xvcjoiLGUuYm9keVRleHQsIiAhaW1wb3J0YW50O319IixrLmNsYXNzTmFtZSwie3RyYW5zZm9ybTpzY2FsZSgwKTt9IikpKTt2YXIgUD17bmFtZToiMTI3dW9oeiIsc3R5bGVzOiJwYWRkaW5nLWxlZnQ6MzNweDsifTtjb25zdCBUPSgwLHIuWlApKCJzcGFuIix7dGFyZ2V0OiJlNTg0dGFnMTEifSkoInBvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NDBweDt3aWR0aDoxMDAlO3BhZGRpbmc6NHB4IDEycHggMDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7Zm9udC1mYW1pbHk6IiwoMCxyLnJTKSgiZm9udFNhbnNTZXJpZiIpLCI7bGluZS1oZWlnaHQ6MzJweDtjb2xvcjoiLCgwLHIuclMpKCJpbnB1dFBsYWNlaG9sZGVyIiksIjtjdXJzb3I6dGV4dDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt6LWluZGV4OjE7IiwoKHtpc1Bob25lOmV9KT0+ZSYmUCkpO3ZhciBaPXtuYW1lOiJ3aGg1ZTUiLHN0eWxlczoib3BhY2l0eToxOyJ9O2NvbnN0IEk9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzEyIn0pKCJmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyNHB4O2NvbG9yOiIsKDAsci5yUykoImJvZHlUZXh0IiksIjt0cmFuc2l0aW9uOm9wYWNpdHkgMzAwbXMgMTAwMG1zLG1heC1oZWlnaHQgNDAwbXMgMTAwMG1zO3Bvc2l0aW9uOnN0YXRpYzttYXgtaGVpZ2h0OjQ4cHg7IiwoKHtpc1N1Y2Nlc3NmdWw6ZX0pPT5lJiZaKSksaj0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnMTMifSkoImZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE5cHg7Y29sb3I6IiwoMCxyLnJTKSgibWV0YVRleHQiKSwiO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuOyIpLF89KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzE0In0pKCJmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyNHB4O2NvbG9yOiIsKDAsci5yUykoImJvZHlUZXh0IiksIjt0cmFuc2l0aW9uOm9wYWNpdHkgMzAwbXMgMTAwMG1zLG1heC1oZWlnaHQgNDAwbXMgMTAwMG1zO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjttYXgtaGVpZ2h0OjI0cHg7Iik7dmFyIE89e25hbWU6InNsbGJwZiIsc3R5bGVzOiJvcGFjaXR5OjAuNzsifTtjb25zdCBBPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1ODR0YWcxNSJ9KSgid2lkdGg6MzVweDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwO2JhY2tncm91bmQtY29sb3I6IiwoMCxyLnJTKSgiYXBwQ29sb3IiKSwiO2JveC1zaGFkb3c6MCAxcHggMnB4IDAgcmdiYSgwLDAsMCwwLjE1KTt0cmFuc2l0aW9uOmJvcmRlci1yYWRpdXMgMzAwbXMsb3BhY2l0eSAzMDBtcyA2MDBtcyxoZWlnaHQgNDAwbXMgMTAwMG1zOyY6aG92ZXJ7b3BhY2l0eTowLjc7fSIsKCh7aXNEaXNhYmxlZDplfSk9PmUmJk8pLCIgIiwoKHtoYXNDaGFubmVsOmV9KT0+ZSYmKDAsci5pdikoImJhY2tncm91bmQtY29sb3I6IzM4YTY1MjtvcGFjaXR5OjA7Ym9yZGVyLXJhZGl1czo0cHg7aGVpZ2h0OjIwcHg7Jjpob3ZlcntvcGFjaXR5OjA7fSIsRi5jbGFzc05hbWUsIntvcGFjaXR5OjA7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSgtNHB4LC0zcHgpO30iLHEuY2xhc3NOYW1lLCJ7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMSk7fSIpKSk7dmFyIEI9e25hbWU6InhmcGRwdiIsc3R5bGVzOiIuaW50ZXJjb20tbm90aWZpY2F0aW9uLWNoYW5uZWwtY29sbGVjdG9yLWNhcmQtY29udHJvbHMtcHJvbXB0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjttYXgtaGVpZ2h0OjI0cHg7fS5pbnRlcmNvbS1ub3RpZmljYXRpb24tY2hhbm5lbC1jb2xsZWN0b3ItY2FyZC1jb250cm9scy1tZXNzYWdle3Bvc2l0aW9uOnN0YXRpYztvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO21heC1oZWlnaHQ6NDhweDt9LmludGVyY29tLW5vdGlmaWNhdGlvbi1jaGFubmVsLWNvbGxlY3Rvci1jYXJkLWNvbnRyb2xzLWNoYW5uZWxze2hlaWdodDowO29wYWNpdHk6MDt9In07Y29uc3QgUj0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnMTYifSkoKCh7aXNTYXZlZDplfSk9PmUmJkIpKSx6PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImU1ODR0YWcxNyJ9KSgiZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MjBweDtoZWlnaHQ6MzBweDtjb2xvcjoiLCgwLHIuclMpKCJtZXRhVGV4dCIpLCI7dHJhbnNpdGlvbjpvcGFjaXR5IDMwMG1zIDMwMG1zLGhlaWdodCA0MDBtcyAxMDAwbXM7IiksTj0oMCxyLlpQKSgic3BhbiIse3RhcmdldDoiZTU4NHRhZzE4In0pKCJtYXJnaW4tcmlnaHQ6MjBweDtjb2xvcjoiLCgwLHIuclMpKCJncmV5IiksIjsmOmhvdmVye2NvbG9yOiIsKDAsci5yUykoImlucHV0VGV4dCIpLCI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQ7fSIsKCh7dGhlbWU6ZSxpc1NlbGVjdGVkOnR9KT0+dCYmKDAsci5pdikoImNvbG9yOiIsZS5pbnB1dFRleHQsIjtib3JkZXItYm90dG9tOjFweCBzb2xpZDsiKSkpLE09KHt0aGVtZTplfSk9PigwLHIuaXYpKCJtYXJnaW4tYm90dG9tOjZweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6NDhweDtjb2xvcjoiLGUuYm9keVRleHQsIjt0cmFuc2l0aW9uOm9wYWNpdHkgMzAwbXMgMTAwMG1zLG1heC1oZWlnaHQgNDAwbXMgMTAwMG1zOyIpLEQ9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzE5In0pKE0pLEw9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzIwIn0pKE0sIiBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47bWF4LWhlaWdodDoyNHB4OyIpLEc9e25hbWU6IjF3MzJsaHciLHN0eWxlczoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MzVweDtoZWlnaHQ6NDBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBsaW5lYXIsb3BhY2l0eSAxNTBtcyBsaW5lYXI7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyJ9LEY9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzIxIn0pKEcsIiAiLCgwLGkuS28pKG8sYSwiOHB4IiwiMTNweCIpLCIgb3BhY2l0eToxOyIpLHE9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTU4NHRhZzIyIn0pKEcsIiAiLCgwLGkuS28pKHMsbCwiMThweCIsIjE0cHgiKSwiIG9wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC05MGRlZykgc2NhbGUoMC41KTsiKTt2YXIgSD17bmFtZToiMTJiZmhzNyIsc3R5bGVzOiJoZWlnaHQ6MDtvcGFjaXR5OjA7In07Y29uc3QgVz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnMjMifSkoImhlaWdodDozMHB4O29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgMzAwbXMgMzAwbXMsaGVpZ2h0IDQwMG1zIDEwMDBtczsiLCgoe2lzU3VjY2Vzc2Z1bDplfSk9PmUmJkgpKTt2YXIgVT17bmFtZToiMXFnazBwYiIsc3R5bGVzOiJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjEwcHg7In07Y29uc3QgVj0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlNTg0dGFnMjQifSkoKCh7aXNCb3JkZXJsZXNzOmV9KT0+IWUmJlUpKX0sMjQ1NjE6KGUsdCxuKT0+e24uZCh0LHtGJDooKT0+eCxLZTooKT0+cCxMTDooKT0+RSxQdzooKT0+ZyxoOTooKT0+dSxrRTooKT0+ayx3OigpPT5tfSk7dmFyIHI9big1MDcwMCksaT1uKDc4NzE3KSxvPW4oMzkxMTMpO2NvbnN0IGE9InJnYmEoMCwgMCwgMCwgMC4wOCkiLHM9KDAsci5GNCkoIjAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7cG9zaXRpb246aW5pdGlhbDt9IiksbD0oMCxyLkY0KSgiMCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMHB4KTt9MTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7fSIpLGM9KDAsci5GNCkoIjAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjBweCk7fTEwMCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30iKSxkPSgwLHIuRjQpKCIwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCk7fTEwMCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30iKSxwPSgwLHIuWlApKGkuWlAse3RhcmdldDoiZTFhYmU0bDgwIn0pKHtuYW1lOiIxY3M3aGgiLHN0eWxlczoiaGVpZ2h0OjM4cHg7d2lkdGg6MzhweDtwb2ludGVyLWV2ZW50czpub25lOyJ9KSx1PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWJlNGw4MSJ9KSh7bmFtZToiYzhpZnQ4IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7W3gtcGxhY2VtZW50Xj0ndG9wJ10gJntib3R0b206LTlweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMHB4KTt9W3gtcGxhY2VtZW50Xj0ncmlnaHQnXSAme3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KTt9W3gtcGxhY2VtZW50Xj0nYm90dG9tJ10gJnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjBweCk7fVt4LXBsYWNlbWVudF49J2xlZnQnXSAme3JpZ2h0Oi05cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCk7fSJ9KSxtPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWJlNGw4MiJ9KSgidHJhbnNpdGlvbjpvcGFjaXR5IDAuNnMgZWFzZTt6LWluZGV4OiIsKDAsby5XNSkoMSksIjt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsiKSxoPTgwMCxnPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWJlNGw4MyJ9KSgiYW5pbWF0aW9uOiIscywiICIsaCwibXMgZWFzZTtbeC1wbGFjZW1lbnRePSd0b3AnXSAme2FuaW1hdGlvbjoiLGwsIiAiLGgsIm1zIGVhc2U7fVt4LXBsYWNlbWVudF49J3JpZ2h0J10gJnthbmltYXRpb246IixkLCIgIixoLCJtcyBlYXNlO31beC1wbGFjZW1lbnRePSdib3R0b20nXSAme2FuaW1hdGlvbjoiLHMsIiAiLGgsIm1zIGVhc2U7fVt4LXBsYWNlbWVudF49J2xlZnQnXSAme2FuaW1hdGlvbjoiLGMsIiAiLGgsIm1zIGVhc2U7fSIpO3ZhciBmPXtuYW1lOiIxMWo4amRyIixzdHlsZXM6ImJveC1zaGFkb3c6LTFweCAxcHggMHB4ICNlZWVlZWU7bWFyZ2luLWxlZnQ6MjVweDsifTtjb25zdCB4PSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxYWJlNGw4NCJ9KSgid2lkdGg6MTNweDtoZWlnaHQ6MjVweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47JjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7YmFja2dyb3VuZDojZmZmZmZmO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RvcDoycHg7fSZbeC1wbGFjZW1lbnRePSd0b3AnXXtoZWlnaHQ6MTNweDt3aWR0aDoyNXB4OyY6YWZ0ZXJ7dG9wOi0xMnB4O2xlZnQ6MnB4O2JveC1zaGFkb3c6MXB4IDFweCAxcHggMCAiLGEsIjt9fSZbeC1wbGFjZW1lbnRePSdyaWdodCdde2hlaWdodDoyNXB4O3dpZHRoOjEzcHg7JjphZnRlcntyaWdodDotMTIuNXB4O2JveC1zaGFkb3c6MXB4IC0xcHggMXB4IDJweCAiLGEsIjt9fSZbeC1wbGFjZW1lbnRePSdib3R0b20nXXtoZWlnaHQ6MTNweDt3aWR0aDoyNXB4OyY6YWZ0ZXJ7dG9wOjQuNXB4O2xlZnQ6MnB4O2JveC1zaGFkb3c6LTFweCAtMXB4IDFweCAwICIsYSwiO319Jlt4LXBsYWNlbWVudF49J2xlZnQnXXtoZWlnaHQ6MjVweDt3aWR0aDoxM3B4OyY6YWZ0ZXJ7bGVmdDotMTIuNXB4O2JveC1zaGFkb3c6LTFweCAxcHggMXB4IDJweCAiLGEsIjt9fSIsKCh7aXNJbnNpZGVJbmJveDplfSk9PmUmJmYpKSx2PXtuYW1lOiI0MXE2NjgiLHN0eWxlczoidHJhbnNmb3JtOnNjYWxlKDEpOyJ9LHk9KGUsdCk9PigwLHIuRjQpKCIwJXsiLHYsIn04NSV7IiwoKGUsdCk9PigwLHIuaXYpKCJ0cmFuc2Zvcm06c2NhbGVYKGNhbGMoMSArICg0IC8gIixlLCIpKSkgc2NhbGVZKGNhbGMoMSArICg0IC8gIix0LCIpKSk7IikpKGUsdCksIn0xMDAleyIsdiwifSIpO3ZhciBiPXtuYW1lOiIxcXU0aHlvIixzdHlsZXM6ImRpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7dG9wOjUwJTtsZWZ0OjUwJTtib3gtc2hhZG93OjBweCAwcHggMHB4IDQwMDBweCByZ2JhKDAsMCwwLDAuMzUpOyJ9O2NvbnN0IEU9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTFhYmU0bDg1In0pKCJ6LWluZGV4OiIsKDAsby5XNSkoKSwiO2NvbnRlbnQ6Jyc7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDowO2hlaWdodDowO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoxcHg7Ym94LXNpemluZzpib3JkZXItYm94OyIsKCh7aXNBbmltYXRpbmc6ZSx3aWR0aDp0LGhlaWdodDpufSk9PmUmJigwLHIuaXYpKCJhbmltYXRpb246Iix5KHQsbiksIiAycyBpbmZpbml0ZTsiKSksIiAiLCgoe2lzUG9zdDplfSk9PmUmJmIpLCIgIiwoKHtpc1N0ZXA6ZSx0aGVtZTp0LGJ1dHRvbkNvbG9yOm59KT0+ZSYmKDAsci5pdikoImRpc3BsYXk6YmxvY2s7bWFyZ2luOjNweDtib3gtc2hhZG93OjAgMCAwIDNweCAiLG58fHQuYXBwQ29sb3IsIiwwcHggMHB4IDBweCA0MDAwcHggcmdiYSgwLDAsMCwwLjM1KTsiKSkpLGs9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTFhYmU0bDg2In0pKCgoe3Njcm9sbGFibGU6ZSx0aGVtZTp0fSk9PmUmJigwLHIuaXYpKCJwb3NpdGlvbjpmaXhlZDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MDtvcGFjaXR5OjA7Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6IiwoMCxvLlc1KSgwLHQpLCI7IikpKX0sNjM5MTY6KGUsdCxuKT0+e24uZCh0LHtDRDooKT0+ZyxKbjooKT0+bSxRbzooKT0+YyxlRjooKT0+ZCx0eTooKT0+aCx6ZjooKT0+dX0pO3ZhciByPW4oNTA3MDApLGk9big0OTQ1NCksbz1uKDE4OTE2KSxhPW4oMzkxMTMpO2NvbnN0IHM9KDAsci5GNCkoIjAle29wYWNpdHk6MDt9NTAle29wYWNpdHk6MDt9MTAwJXtvcGFjaXR5OjE7fSIpO3ZhciBsPXtuYW1lOiJzdWF5anUiLHN0eWxlczoibWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlOyJ9O2NvbnN0IGM9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTE0MXphM3owIn0pKCJtYXgtaGVpZ2h0OiIsKDAsci5yUykoIm5vdGlmaWNhdGlvbkhlaWdodFB4IiksInB4OyIsKCh7bTVFbmFibGVkOmV9KT0+ZSYmKDAsci5pdikoIndpZHRoOiIsMzQwLCJweDsiKSksIjsmLCp7Y3Vyc29yOnBvaW50ZXI7fSIsaS5rVS5jbGFzc05hbWUsIntib3JkZXItcmFkaXVzOiIsKDAsci5yUykoIm5vdGlmaWNhdGlvbkJvcmRlclJhZGl1c1B4IiksInB4O3BhZGRpbmc6MjBweCAyMHB4IDIwcHg7Ym94LXNoYWRvdzoiLCgwLHIuclMpKCJub3RpZmljYXRpb25Cb3hTaGFkb3ciKSwiO30iLGkubXIuY2xhc3NOYW1lLCJ7cGFkZGluZzowO30iLCgoe3RoZW1lOmV9KT0+ZS5pc01vYmlsZVNpemUmJmwpKSxkPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNDF6YTN6MSJ9KSgiZm9udC1zaXplOjE0cHg7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjIycHg7bWF4LWhlaWdodDo0NHB4O2NvbG9yOiIsKDAsci5yUykoImJvZHlUZXh0IiksIjthbmltYXRpb246IixzLCIgNTAwbXMgZWFzZTtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDsiKTt2YXIgcD17bmFtZToiOGF0cWhiIixzdHlsZXM6IndpZHRoOjEwMCU7In07Y29uc3QgdT0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlMTQxemEzejIifSkoImhlaWdodDoxMDAlO3dpZHRoOiIsMzQwLCJweDtwb3NpdGlvbjpyZWxhdGl2ZTsqe2N1cnNvcjpwb2ludGVyO30iLG8uREYuY2xhc3NOYW1lLCJ7d2lkdGg6MTAwJTt9IiwoKHt0aGVtZTplfSk9PmUuaXNNb2JpbGVTaXplJiZwKSksbT0oMCxyLlpQKShkLHt0YXJnZXQ6ImUxNDF6YTN6MyJ9KSh7bmFtZToiMWh3MjlpOSIsc3R5bGVzOiJtYXJnaW4tdG9wOjEycHg7In0pLGg9KDAsci5aUCkoImRpdiIse3RhcmdldDoiZTE0MXphM3o0In0pKCIvKiBAbm9mbGlwICovIG1hcmdpbi1sZWZ0OjQ1cHg7cGFkZGluZzoxN3B4IDIycHg7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6IiwoMCxyLnJTKSgid2hpdGUiKSwiO2JvcmRlci1yYWRpdXM6IiwoMCxyLnJTKSgibm90aWZpY2F0aW9uQm9yZGVyUmFkaXVzUHgiKSwicHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JveC1zaGFkb3c6IiwoMCxyLnJTKSgibm90aWZpY2F0aW9uQm94U2hhZG93IiksIjtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjU7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7JjphZnRlcnsiLGEuUWksIn0iKSxnPSgwLHIuWlApKCJkaXYiLHt0YXJnZXQ6ImUxNDF6YTN6NSJ9KSgicG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7LyogQG5vZmxpcCAqLyBsZWZ0OjNweDtib3gtc2hhZG93OiIsKDAsci5yUykoIm5vdGlmaWNhdGlvbkJveFNoYWRvdyIpLCI7Ym9yZGVyLXJhZGl1czo1MCU7Iil9LDQzNjc5OihlLHQsbik9PntuLmQodCx7JGM6KCk9PnMsR3k6KCk9Pm8sSks6KCk9PmF9KTt2YXIgcj1uKDUwNzAwKTtjb25zdCBpPXtuYW1lOiIxcHVyZ3V6IixzdHlsZXM6InBvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpOyJ9LG89KDAsci5aUCkoInNwYW4iLHt0YXJnZXQ6ImVqaXRqNmcwIn0pKGkpLGE9KDAsci5aUCkoImJ1dHRvbiIse3RhcmdldDoiZWppdGo2ZzEifSkoaSkscz0oMCxyLlpQKSgiZGl2Iix7dGFyZ2V0OiJlaml0ajZnMiJ9KShpKX19XSk7"}},"time_used":428,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":428,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/theme-ie11.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.846Z","timestamp":1785145403846,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/theme-ie11.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-6d9\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":1753,"size_decoded":553,"mime_type":"text/css","magic":"ASCII text, with very long lines (1753), with no line terminators","md5":"b1f563e33ef65c02464c93ec0702c0d2","sha1":"5333895f4ef7f0b6a95b330e5cd82a00ac021e0b","sha256":"032dc89de9e654706c6239447c5fe7e0346209c8319411521ac476b58c7f4f88","sha512":"7dd65f30eeff14bed93e7e84fe39dc577b6217b6f533f24eae938dac1dbebc4e034fc8737e513cc33e2dee2b5fa417b4f49b12fa5649d1f870cbbc33ab8f03cf","ssdeep":"","tlshash":"65319247532ab01d96671628a7cad00c3325e83cffe57ed5d7d63e2f93585a11238728","first_seen":"2023-04-06T17:50:41Z","last_seen":"2026-08-09T17:33:17.756531Z","times_seen":1321,"resource_available":false,"data":"LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIGZvcm17b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MXB4IDFweCA4cHh9LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybS1ib2R5e21hcmdpbjowIC0zMnB4IC0zMnB4IDB9LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO292ZXJmbG93OmhpZGRlbn0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxke2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MCAzMnB4IDMycHggMDt3aWR0aDoxMDAlfS5nZl9icm93c2VyX2llLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC1mdWxse3dpZHRoOjEwMCV9LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGQtLXdpZHRoLWVsZXZlbi10d2VsZnRoc3t3aWR0aDo5MS42NjYlfS5nZl9icm93c2VyX2llLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC1maXZlLXNpeHRoc3t3aWR0aDo4My4zMzMlfS5nZl9icm93c2VyX2llLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkLS13aWR0aC10aHJlZS1xdWFydGVye3dpZHRoOjc1JX0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZC5nZmllbGQtLXdpZHRoLXR3by10aGlyZHN7d2lkdGg6NjYuNjY2JX0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtc2V2ZW4tdHdlbGZ0aHN7d2lkdGg6NTguMzMzJX0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtaGFsZnt3aWR0aDo1MCV9LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGQtLXdpZHRoLWZpdmUtdHdlbGZ0aHN7d2lkdGg6NDEuNjY2JX0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtdGhpcmR7d2lkdGg6MzMuMzMzJX0uZ2ZfYnJvd3Nlcl9pZS5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZC0td2lkdGgtcXVhcnRlcnt3aWR0aDoyNSV9QG1lZGlhIChtYXgtd2lkdGg6ODQwcHgpey5nZl9icm93c2VyX2llLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2Zvcm1fZmllbGRzIC5nZmllbGR7d2lkdGg6MTAwJX19LmdmX2Jyb3dzZXJfaWUuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5naW5wdXRfY29udGFpbmVyX2FkZHJlc3MgLmdpbnB1dF9sZWZ0LC5nZl9icm93c2VyX2llLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2lucHV0X2NvbnRhaW5lcl9hZGRyZXNzIC5naW5wdXRfcmlnaHR7ZmxleDowIDUwJTtmbGV4LWJhc2lzOmF1dG87d2lkdGg6NTAlfQ=="}},"time_used":487,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":487,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/pc?ref_url=https%3A%2F%2Fautolitefinances.pro%2F\u0026u_agent=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:27.609Z","timestamp":1785145407609,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"GET /v1/lst/pc?ref_url=https%3A%2F%2Fautolitefinances.pro%2F\u0026u_agent=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%3B+rv%3A134.0%29+Gecko%2F20100101+Firefox%2F134.0 HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Allow-Headers: *\r\nAccess-Control-Allow-Origin: *\r\nContent-type: application/json; charset=utf-8\r\nSession-ID: HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nProduct-ID: 183401\r\nL-Gen-ID: LS_f165920062e3cbf28d1388e1052736e5b7d39527bd3d0596c6db3c4e458c5acb\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: __mh_tt_s=HB-ET_238e3fa037115e5188792d87d18c80acf8162419d6fe46b1a594b51cfc049434\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:27 GMT\r\nContent-Type: application/json;charset=UTF-8\r\nContent-Length: 134\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nAccess-Control-Allow-Origin: https://autolitefinances.pro\r\nAccess-Control-Expose-Headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\nAccess-Control-Allow-Credentials: true\r\nStrict-Transport-Security: max-age=31536000; includeSubDomains\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":134,"size_decoded":636,"mime_type":"application/json; charset=UTF-8","magic":"JSON text data","md5":"c191189b2fc99927610c0a51723e68fd","sha1":"3eafe98e4d8f8423baa8896c1b64b62a3631252f","sha256":"fa55462d65732c2398954242574460ffcb7b6843af6961ae2400e0bf9a64e2bc","sha512":"661b8551089e77aad822c1bffb5b3395c97e337846dabe2bd9d24d8160b2b1d5a4bcc76fdcd3568c18b76d34db0e4cceb80282a0409a0c6ef842542a00ef7561","ssdeep":"","tlshash":"84c02bc20100d80450335102818738140074008f97fb8cd8486a092041fc99f08c4350","first_seen":"2026-07-27T09:44:08.34949Z","last_seen":"2026-07-27T09:44:08.34949Z","times_seen":1,"resource_available":false,"data":"eyJjbGlja0lkIjoiOTlhZGViMDM4ODZkNDAwNmIwOTg4ODNmOTQzZjRmZDIiLCJjcmVhdGlvbkRhdGUiOjE3ODUxNDU0MDc3NTksImxlYWRJZCI6bnVsbCwicGl4ZWxFdmVudHMiOltdLCJAdHlwZSI6ImNsaWNrLXVwZGF0ZS1pbmZvIn0="}},"time_used":101,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":101,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bootstrap.smartsuppchat.com/widget/54320a14493c34580ff2445bd3dbd47b1a180176.json","fqdn":"bootstrap.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"18.195.8.146","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:28.440Z","timestamp":1785145408440,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsuppchat.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 02 Dec 2025 00:00:00 GMT","end":"Wed, 30 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"DC:47:26:FC:2D:4B:14:19:23:BC:B7:70:14:DA:60:A6:21:B0:1E:81","sha256":"0D:5E:FD:70:25:9E:DE:DD:47:CF:0C:58:1C:08:A2:A1:05:AC:A6:7E:0C:43:6F:50:E7:49:E0:A1:60:D0:0E:0F"}}},"request":{"raw":"GET /widget/54320a14493c34580ff2445bd3dbd47b1a180176.json HTTP/1.1\r\nHost: bootstrap.smartsuppchat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:28 GMT\r\ncontent-type: application/json; charset=utf-8\r\nx-version: 6cb79abf75047496934c7756b55ec6f26e7d2373\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: private, max-age=0, must-revalidate\r\nx-hit: redis\r\netag: \"4c7-B/6NfaaDpZne/g/uc5qfSnm44ZA\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1223,"size_decoded":879,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"1623b3b9e850c9c1491c70aef8d248c2","sha1":"07fe8d7da683a599defe0fee739a9f4a79b8e190","sha256":"b5b4d35c58c664f860fdab342e28e4f7337c31f56e8da3582e65972af84deb9e","sha512":"bcfb7323cde3f50f57c38880ba4f962f1f35f106a93074f2f3da73256fe2b54698c6065b11f1bc93d6f74811f6d2543fc6f5aa7afea2e5df1ff45b4f25fcc6d2","ssdeep":"","tlshash":"5321766d4a6822fd5245c7d6c5047a036bacdcb371003e7eea0d0a0e70db2e6223646b","first_seen":"2026-06-06T06:44:39.646667Z","last_seen":"2026-08-12T03:05:14.918665Z","times_seen":2437,"resource_available":false,"data":"eyJhaVJhdGluZ0VuYWJsZWQiOnRydWUsImFsbG93ZWREb21haW5zIjpbXSwiYnV0dG9uU3R5bGUiOiJncmVldGluZyIsImNvbG9yIjoiIzEyMzNkZiIsImNvbG9yMiI6bnVsbCwiY29sb3JHcmFkaWVudCI6dHJ1ZSwiY29uc2VudE1vZGVFbmFibGVkIjpmYWxzZSwiY3Jvc3NEb21haW5FbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdFbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdMaW5rIjoiIiwiY3VzdG9tQnJhbmRpbmdUZXh0IjoiIiwiZW1haWxDb250cm9sIjp0cnVlLCJmZWF0dXJlcyI6eyJhcGkiOmZhbHNlLCJjdXN0b21pemUiOmZhbHNlLCJnYSI6ZmFsc2UsImdyb3VwcyI6ZmFsc2UsInJhdGluZyI6ZmFsc2UsIndoaXRlTGFiZWwiOmZhbHNlfSwiZ29vZ2xlQW5hbHl0aWNzRW5hYmxlZCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01hbnVhbCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01lYXN1cmVtZW50SWRzIjpbXSwiZ3JvdXBTZWxlY3RFbmFibGVkIjpmYWxzZSwiaGVhZGVyU3R5bGUiOiJzdGFuZGFyZCIsImhpZGVPZmZsaW5lQ2hhdCI6ZmFsc2UsImhpZGVXaWRnZXQiOmZhbHNlLCJob3N0Ijoid2Vic29ja2V0LXZpc2l0b3JzLnNtYXJ0c3VwcC5jb20iLCJpbnRlcm5hbEFuYWx5dGljc0VuYWJsZWQiOmZhbHNlLCJpc0Jsb2NrZWQiOmZhbHNlLCJsYW5nIjoiZW4iLCJtb2JpbGVQb3B1cHNFbmFibGVkIjp0cnVlLCJuYW1lQ29udHJvbCI6dHJ1ZSwibnVtYmVyQ29udHJvbCI6ZmFsc2UsIm9wZW5PblRyaWdnZXIiOmZhbHNlLCJvcmllbnRhdGlvbiI6InJpZ2h0IiwicGFja2FnZU5hbWUiOiJmcmVlIiwicG9wdXBUZXh0YXJlYUVuYWJsZWQiOmZhbHNlLCJwcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZCI6ZmFsc2UsInByaXZhY3lOb3RpY2VFbmFibGVkIjp0cnVlLCJwcml2YWN5Tm90aWNlVXJsIjoiIiwicmF0aW5nRW5hYmxlZCI6ZmFsc2UsInJlcXVpcmVMb2dpbiI6ZmFsc2UsInRyYW5zbGF0ZXMiOnt9LCJ1cmxDYXJkc0VuYWJsZWQiOnRydWUsIndpZGdldFZlcnNpb24iOjMsImhhc0ludGVybmFsQXBpIjpmYWxzZSwiY29uZmlnIjp7fSwiYnJvd3NlckxhbmciOiJlbiIsIndpZGdldFRyYWNrZXJVcmwiOiJodHRwczovL3dpZGdldC10cmFja2VyLnNtYXJ0c3VwcC5jb20iLCJ0cmFuc2xhdGlvbnNCYXNlVXJsIjoiaHR0cHM6Ly90cmFuc2xhdGlvbnMuc21hcnRzdXBwY2RuLmNvbSIsIndpZGdldFRyYWNrZXJFbmFibGVkIjpmYWxzZX0="}},"time_used":90,"timings":{"blocked":0,"dns":3,"connect":24,"send":0,"wait":32,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-img-2.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:28.494Z","timestamp":1785145408494,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-img-2.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:28 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 97492\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-17cd4\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":97492,"size_decoded":97747,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"598e03a7f6121600eeae2c679635a17d","sha1":"fb81bed3ecc714cdcf752971380713d40d4d953e","sha256":"7f6b94fe1939eb8f70a266e74fc52de398b6a60a3dfd41a1ba001923a87207a2","sha512":"00044f90bc45b6d267b62bc47952fa3d669726c719280ce07258a84b8e871bfd26e0c6118db34d6adb56abfe61ebaee72bd3be56c9b83b0c7be6e0896d735e93","ssdeep":"1536:f1si7FarYnnvk4AIqU8dR574GGpyzw03mLBR2:uAc5Spk","tlshash":"1093a6cd677267f8ddc4a7eddf0281a2376f04fbaac58760c284cb66a5054adcc895c2","first_seen":"2026-07-27T07:14:06.719975Z","last_seen":"2026-07-27T14:04:41.100906Z","times_seen":5,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNTUiIGhlaWdodD0iNDQwIiB2aWV3Qm94PSIwIDAgMzU1IDQ0MCIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjg5MDIpIj48cGF0aCBkPSJNMzI3Ljg3MSA2NC4wODk0TDM0NS4xOTEgNTYuMDM5NEMzNDUuNzMxIDU1Ljc4OTQgMzQ2LjEzMSA1NS4zMDk0IDM0Ni4yOTEgNTQuNzM5NEMzNDYuNDUxIDU0LjE2OTQgMzQ2LjM1MSA1My41NDk0IDM0Ni4wMTEgNTMuMDU5NEwzMzguNjYxIDQyLjI4OTRDMzM4LjI2MSA0MS43MDk0IDMzNy41ODEgNDEuMzY5NCAzMzYuODcxIDQxLjQwOTRDMzM2LjI1MSA0MS40Mzk0IDMzNS42ODEgNDEuNzU5NCAzMzUuMzIxIDQyLjI2OTRDMzM1LjI3MSA0Mi4zMzk0IDMzNS4yMzEgNDIuNDA5NCAzMzUuMTkxIDQyLjQ4OTRMMzI1LjIxMSA2MS4zMDk0QzMyNS4wNTEgNjEuNjA5NCAzMjQuOTcxIDYxLjkzOTQgMzI0Ljk3MSA2Mi4yNTk0QzMyNC45NzEgNjIuNzY5NCAzMjUuMTYxIDYzLjI2OTQgMzI1LjUzMSA2My42NTk0QzMyNi4xMzEgNjQuMjg5NCAzMjcuMDYxIDY0LjQ2OTQgMzI3Ljg1MSA2NC4wOTk0TDMyNy44NzEgNjQuMDg5NFpNMzM3LjIxMSA0Ny4zNDk0TDM0MS4zMjEgNTMuMzY5NEwzMzEuNjMxIDU3Ljg2OTRMMzM3LjIxMSA0Ny4zMzk0VjQ3LjM0OTRaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PHBhdGggZD0iTTM3LjY4OTggMTYwLjY1M0MzNy43NTk4IDE2MC43MDMgMzcuODI5OCAxNjAuNzQzIDM3LjkwOTggMTYwLjc3M0w1Ny4wNzk4IDE3MC4wNzNDNTcuMzg5OCAxNzAuMjIzIDU3LjcwOTggMTcwLjI4MyA1OC4wMzk4IDE3MC4yNzNDNTguNTQ5OCAxNzAuMjUzIDU5LjAzOTggMTcwLjA0MyA1OS40MDk4IDE2OS42NjNDNjAuMDE5OCAxNjkuMDQzIDYwLjE1OTggMTY4LjEwMyA1OS43Njk4IDE2Ny4zMjNMNTEuMTA5OCAxNTAuMjkzQzUwLjgzOTggMTQ5Ljc2MyA1MC4zNDk4IDE0OS4zNzMgNDkuNzY5OCAxNDkuMjQzQzQ5LjE4OTggMTQ5LjEwMyA0OC41Nzk4IDE0OS4yMzMgNDguMDk5OCAxNDkuNTgzTDM3LjU5OTggMTU3LjMxM0MzNy4wMjk4IDE1Ny43MzMgMzYuNzE5OCAxNTguNDIzIDM2Ljc3OTggMTU5LjEzM0MzNi44Mzk4IDE1OS43NTMgMzcuMTY5OCAxNjAuMzAzIDM3LjY4OTggMTYwLjY0M1YxNjAuNjUzWk00OC41Njk4IDE1NC4yNzNMNTMuNDE5OCAxNjMuNzkzTDQyLjY5OTggMTU4LjU5M0w0OC41Njk4IDE1NC4yNzNaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PHBhdGggZD0iTTMyOS4xIDc0LjU3OTJDMzI4LjM2IDc3LjczOTIgMzMwLjMyIDgwLjkxOTIgMzMzLjQ4IDgxLjY1OTJDMzM2LjY0IDgyLjM5OTIgMzM5LjgyIDgwLjQzOTIgMzQwLjU2IDc3LjI3OTJDMzQxLjMgNzQuMTE5MiAzMzkuMzQgNzAuOTM5MiAzMzYuMTggNzAuMTk5MkMzMzMuMDIgNjkuNDU5MiAzMjkuODQgNzEuNDE5MiAzMjkuMSA3NC41NzkyWk0zMzcuMjEgNzYuNDg5MkMzMzYuOSA3Ny43OTkyIDMzNS41OSA3OC42MDkyIDMzNC4yOCA3OC4yOTkyQzMzMi45NyA3Ny45ODkyIDMzMi4xNiA3Ni42NzkyIDMzMi40NyA3NS4zNjkyQzMzMi43OCA3NC4wNTkyIDMzNC4wOSA3My4yNDkyIDMzNS40IDczLjU1OTJDMzM2LjcxIDczLjg2OTIgMzM3LjUyIDc1LjE3OTIgMzM3LjIxIDc2LjQ4OTJaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PHBhdGggZD0iTTEzMS45NDEgNTMuMDY5M0MxMzUuMTAxIDUzLjgwOTMgMTM4LjI4MSA1MS44NDkzIDEzOS4wMjEgNDguNjg5M0MxMzkuNzYxIDQ1LjUyOTMgMTM3LjgwMSA0Mi4zNDkzIDEzNC42NDEgNDEuNjA5M0MxMzEuNDgxIDQwLjg2OTMgMTI4LjMwMSA0Mi44MjkzIDEyNy41NjEgNDUuOTg5M0MxMjYuODIxIDQ5LjE0OTMgMTI4Ljc4MSA1Mi4zMjkzIDEzMS45NDEgNTMuMDY5M1pNMTMwLjkyMSA0Ni43NzkzQzEzMS4yMzEgNDUuNDY5MyAxMzIuNTQxIDQ0LjY1OTMgMTMzLjg1MSA0NC45NjkzQzEzNS4xNjEgNDUuMjc5MyAxMzUuOTcxIDQ2LjU4OTMgMTM1LjY2MSA0Ny44OTkzQzEzNS4zNTEgNDkuMjA5MyAxMzQuMDQxIDUwLjAxOTMgMTMyLjczMSA0OS43MDkzQzEzMS40MjEgNDkuMzk5MyAxMzAuNjExIDQ4LjA4OTMgMTMwLjkyMSA0Ni43NzkzWiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxwYXRoIGQ9Ik0zNTIuOTIgNjkuMTgyN0MzNTEuNTkgNjguODcyNyAzNTAuMjYgNjkuNjkyNyAzNDkuOTUgNzEuMDIyN0MzNDkuNjQgNzIuMzUyNyAzNTAuNDYgNzMuNjgyNyAzNTEuNzkgNzMuOTkyN0MzNTMuMTIgNzQuMzAyNyAzNTQuNDUgNzMuNDgyNyAzNTQuNzYgNzIuMTUyN0MzNTUuMDcgNzAuODIyNyAzNTQuMjUgNjkuNDkyNyAzNTIuOTIgNjkuMTgyN1oiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48cGF0aCBkPSJNMTQ1LjIgNjMuMzcxNEMxNDUuNTEgNjIuMDQxNCAxNDQuNjkgNjAuNzExNCAxNDMuMzYgNjAuNDAxNEMxNDIuMDMgNjAuMDkxNCAxNDAuNyA2MC45MTE0IDE0MC4zOSA2Mi4yNDE0QzE0MC4wOCA2My41NzE0IDE0MC45IDY0LjkwMTQgMTQyLjIzIDY1LjIxMTRDMTQzLjU2IDY1LjUyMTQgMTQ0Ljg5IDY0LjcwMTQgMTQ1LjIgNjMuMzcxNFoiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48cGF0aCBkPSJNNDkuNTA5OCAxODAuOTk5QzQ5LjE5OTggMTgyLjMyOSA1MC4wMTk4IDE4My42NTkgNTEuMzQ5OCAxODMuOTY5QzUyLjY3OTggMTg0LjI3OSA1NC4wMDk4IDE4My40NTkgNTQuMzE5OCAxODIuMTI5QzU0LjYyOTggMTgwLjc5OSA1My44MDk4IDE3OS40NjkgNTIuNDc5OCAxNzkuMTU5QzUxLjE0OTggMTc4Ljg0OSA0OS44MTk4IDE3OS42NjkgNDkuNTA5OCAxODAuOTk5WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTEuNDkgOTUuMjY4MUMyMTIuODYgOTUuMjY4MSAyMTMuOTYgOTQuMTU4MSAyMTMuOTYgOTIuNzk4MUMyMTMuOTYgOTEuNDM4MSAyMTIuODUgOTAuMzI4MSAyMTEuNDkgOTAuMzI4MUMyMTAuMTMgOTAuMzI4MSAyMDkuMDIgOTEuNDM4MSAyMDkuMDIgOTIuNzk4MUMyMDkuMDIgOTQuMTU4MSAyMTAuMTMgOTUuMjY4MSAyMTEuNDkgOTUuMjY4MVoiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48cGF0aCBkPSJNMzQ1LjYxIDk4LjI4TDMxNy45MyA4Mi4zTDMxOC4wMSA4MS44NkMzMTguMDEgODEuODYgMzE4LjAzIDgxLjc0IDMxOC4wMyA4MS43M0MzMTguMTMgODEuMTIgMzE4LjIxIDgwLjQ5IDMxOC4yOSA3OS44NkwzMTguMyA3OS43NUMzMTguMzcgNzkuMTcgMzE4LjQzIDc4LjU5IDMxOC40OCA3OEwzMTguNSA3Ny42N0MzMTguNTIgNzcuNDcgMzE4LjUzIDc3LjI3IDMxOC41NCA3Ny4wN0wzMTguNTcgNzYuNjZDMzE4LjU4IDc2LjQ4IDMxOC42IDc2LjMgMzE4LjYxIDc2LjEyQzMxOC42MSA3NS45OCAzMTguNjIgNzUuODQgMzE4LjYyIDc1LjcxTDMxOC42NyA3NC4yMkMzMTguNjcgNzMuOTQgMzE4LjY3IDczLjY2IDMxOC42NyA3My4zN1Y3Mi4zQzMxOC42NyA3MS42NSAzMTguNjQgNzAuOTkgMzE4LjYxIDcwLjI5TDMxOC41OSA3MEMzMTguNTYgNjkuNDUgMzE4LjU0IDY4LjkgMzE4LjQ5IDY4LjM1TDMxOC4zNyA2Ni45NUMzMTguMzUgNjYuNzMgMzE4LjMzIDY2LjUxIDMxOC4zMSA2Ni4yOUwzMTguMjUgNjUuNzVDMzE4LjIyIDY1LjQ2IDMxOC4xOSA2NS4xNyAzMTguMTUgNjQuODhMMzE3Ljk2IDYzLjQxQzMxNy45MiA2My4xMiAzMTcuODggNjIuODMgMzE3LjgzIDYyLjU1TDMxNy43NyA2Mi4xMkMzMTcuNzMgNjEuODUgMzE3LjY4IDYxLjU4IDMxNy42MyA2MS4zMUwzMTcuNDEgNjAuMDJDMzE3LjI4IDU5LjM0IDMxNy4xNSA1OC42NSAzMTcuMDEgNTguMDRDMzE3LjAxIDU4IDMxNi45OSA1Ny45NSAzMTYuOTggNTcuOUwzMTYuOTUgNTcuNzRDMzE2LjgyIDU3LjE0IDMxNi42OCA1Ni41MyAzMTYuNTQgNTUuOTNMMzE2LjIyIDU0LjY0QzMxNi4xNiA1NC40MiAzMTYuMTEgNTQuMiAzMTYuMDUgNTMuOThMMzE1LjUxIDUyLjAzQzMxNS40MyA1MS43NiAzMTUuMzUgNTEuNDkgMzE1LjI3IDUxLjIyTDMxNC45NCA1MC4xMkMzMTQuNzQgNDkuNDcgMzE0LjUzIDQ4LjgyIDMxNC4zMiA0OC4yQzMxNC4zMiA0OC4yIDMxNC4yOSA0OC4xIDMxNC4yOCA0OC4wOUwzMTQuMDUgNDcuNDJDMzEzLjg5IDQ2Ljk2IDMxMy43MyA0Ni41IDMxMy41NiA0Ni4wM0wzMTMuNDcgNDUuODFDMzEzLjM2IDQ1LjUxIDMxMy4yNCA0NS4yMSAzMTMuMTMgNDQuOTFMMzEyLjg4IDQ0LjI0QzMxMi44IDQ0LjAzIDMxMi43MiA0My44MiAzMTIuNjQgNDMuNjFMMzEyLjU3IDQzLjQ0QzMxMi4xNSA0Mi4zOSAzMTEuNzEgNDEuMzQgMzExLjI1IDQwLjNMMzExLjE0IDQwLjA0QzMxMS4xMSAzOS45NyAzMTEuMDcgMzkuODkgMzExIDM5Ljc0QzMxMC4zNCAzOC4yNyAzMDkuNjQgMzYuODIgMzA4LjkgMzUuMzZMMzA4LjYxIDM0LjhDMzA3LjkzIDMzLjUgMzA3LjM1IDMyLjQ0IDMwNi43NyAzMS40MkMzMDYuMzIgMzAuNjUgMzA1Ljg3IDI5Ljg4IDMwNS40IDI5LjEyQzMwNS40IDI5LjExIDMwNS4zNSAyOS4wNCAzMDUuMzQgMjkuMDNDMzA1IDI4LjQ5IDMwNC42NiAyNy45NSAzMDQuMzEgMjcuNDJMMzA0LjEzIDI3LjE0QzMwNC4xMyAyNy4xNCAzMDQuMDkgMjcuMDcgMzA0LjA3IDI3LjA0QzMwMy42NSAyNi40IDMwMy4yMiAyNS43NiAzMDIuNzkgMjUuMTRMMzAyLjExIDI0LjE5QzMwMS45IDIzLjg5IDMwMS42OSAyMy42IDMwMS40OCAyMy4zMUwzMDAuNTIgMjIuMDRDMzAwLjM4IDIxLjg1IDMwMC4yNCAyMS42NyAzMDAuMSAyMS40OUwyOTkuODYgMjEuMTlDMjk5LjY5IDIwLjk3IDI5OS41MSAyMC43NSAyOTkuMzMgMjAuNTNMMjk5LjAyIDIwLjE1QzI5OC45IDIwIDI5OC43OCAxOS44NSAyOTguNjYgMTkuNzFMMjk4LjM0IDE5LjMzQzI5OC4xMSAxOS4wNSAyOTcuODcgMTguNzggMjk3LjY0IDE4LjUxTDI5Ny40NiAxOC4zQzI5Ny4zNiAxOC4xOCAyOTcuMjUgMTguMDUgMjk3LjE0IDE3LjkzTDI5Ni43NSAxNy41QzI5Ni41MSAxNy4yNCAyOTYuMjggMTYuOTggMjk2LjA0IDE2LjcyTDI5NS4xMyAxNS43NUMyOTQuOSAxNS41MSAyOTQuNjYgMTUuMjcgMjk0LjQyIDE1LjAyTDI5NC4wNSAxNC42NEMyOTMuOTIgMTQuNTEgMjkzLjc5IDE0LjM5IDI5My42NiAxNC4yN0wyOTMuMzYgMTMuOThDMjkzLjE2IDEzLjc5IDI5Mi45NyAxMy42IDI5Mi43OCAxMy40MkwyOTIuNTEgMTMuMTZDMjkyLjMyIDEyLjk4IDI5Mi4xMyAxMi44MSAyOTEuOTMgMTIuNjRMMjkxLjQ5IDEyLjI1QzI5MS4zNiAxMi4xNCAyOTEuMjQgMTIuMDIgMjkxLjA4IDExLjg4TDI5MC45NiAxMS43OEMyOTAuNDYgMTEuMzUgMjg5Ljk1IDEwLjkyIDI4OS40MyAxMC41TDI4OS4zMSAxMC40MUMyODguODUgMTAuMDQgMjg4LjM4IDkuNjcgMjg3LjkxIDkuMzJMMjg3LjU2IDkuMDZDMjg3LjE3IDguNzggMjg2Ljc5IDguNSAyODYuNCA4LjIzTDI4NC45IDcuMjNDMjg0LjczIDcuMTIgMjg0LjU2IDcuMDEgMjg0LjM4IDYuOTFMMjgzLjQgNi4zMUMyODIuOSA2LjAyIDI4Mi40MSA1Ljc0IDI4MS45IDUuNDZDMjgxLjQgNS4xOSAyODAuOSA0Ljk0IDI4MC40IDQuNjlMMjc5LjQzIDQuMjRDMjc5LjI1IDQuMTYgMjc5LjA3IDQuMDcgMjc4Ljg5IDRMMjc4LjUxIDMuODVDMjc4LjI5IDMuNzYgMjc4LjA2IDMuNjcgMjc3Ljg0IDMuNThMMjc3LjY1IDMuNUMyNzcuNTQgMy40NSAyNzcuNDMgMy40MSAyNzcuMzIgMy4zN0MyNzcuMiAzLjMzIDI3Ny4wOCAzLjI5IDI3Ni45NiAzLjI1TDI3Ni43NyAzLjE5QzI3Ni41NCAzLjExIDI3Ni4zMiAzLjAzIDI3Ni4xIDIuOTZMMjc1Ljc0IDIuODNDMjc1LjYgMi43OSAyNzUuNDcgMi43NSAyNzUuMzMgMi43MUwyNzQuOTkgMi42MUMyNzQuNzcgMi41NCAyNzQuNTQgMi40OCAyNzQuMjQgMi40TDI3NC4wNCAyLjM0QzI3My44OSAyLjMgMjczLjc1IDIuMjcgMjczLjYgMi4yNEwyNzMuMjUgMi4xNkMyNzMuMDEgMi4xMSAyNzIuNzcgMi4wNSAyNzIuNDcgMS45OUwyNzIuMjcgMS45NUMyNzIuMTQgMS45MyAyNzIuMDEgMS45MSAyNzEuODggMS44OUwyNzEuNjkgMS44NkMyNzEuMzUgMS44MSAyNzEuMDEgMS43NSAyNzAuNjEgMS43QzI3MC41NCAxLjY5IDI3MC40NiAxLjY4IDI3MC4zOSAxLjY3QzI3MC4yOCAxLjY2IDI3MC4xOCAxLjY1IDI3MC4wNyAxLjY1SDI2OS45NUMyNjkuNTIgMS42IDI2OS4xIDEuNTcgMjY4LjU4IDEuNTVDMjY4LjQ5IDEuNTUgMjY4LjM5IDEuNTQgMjY4LjI5IDEuNTNDMjY4LjIxIDEuNTMgMjY4LjEyIDEuNTMgMjY4LjAxIDEuNTNDMjY3LjMyIDEuNTMgMjY2LjY5IDEuNTQgMjY2LjEyIDEuNTlDMjY2LjA2IDEuNTkgMjY1Ljk5IDEuNTkgMjY1Ljg4IDEuNkMyNjUuNzkgMS42IDI2NS42OSAxLjYyIDI2NS42IDEuNjNIMjY1LjQ5QzI2NS4wOSAxLjY5IDI2NC43IDEuNzMgMjY0LjMxIDEuOEMyNjQuMTggMS44MiAyNjQuMDUgMS44NSAyNjMuOTEgMS44OEwyNjMuNTQgMS45NUMyNjMuMzYgMS45OCAyNjMuMTggMi4wMiAyNjMgMi4wNkMyNjIuOTQgMi4wNyAyNjIuODcgMi4wOSAyNjIuODEgMi4xMUMyNjIuNDMgMi4yIDI2Mi4wNiAyLjMxIDI2MS42OCAyLjQzTDI2MS41MSAyLjQ4QzI2MS4zOSAyLjUyIDI2MS4yNiAyLjU1IDI2MS4xNCAyLjU5QzI2MC41NiAyLjc5IDI2MC4wMyAyLjk5IDI1OS41MyAzLjIxTDI0OS43OCA3LjQ5TDI0OS43IDcuNTJDMjQ5LjY4IDcuNTIgMjQ5LjY3IDcuNTQgMjQ5LjY2IDcuNTRDMjQxLjY2IDExLjA3IDIzNi40OCAxOS42MiAyMzUuMDggMzEuNjNDMjMzLjgzIDQyLjM3IDIzNS44MiA1NC41NCAyNDAuMTMgNjYuMDVDMjM3LjExIDY0LjY0IDIzMi43OCA2My4xOCAyMjkuMTMgNjQuMkMyMjQuNDIgNjUuNTIgMjIzLjk3IDY4LjYyIDIyNC44NiA3MS4xOEMyMjUuNCA3Mi43MyAyMjYuNDMgNzQuMDcgMjI3LjMxIDc0LjdMMjIzLjk3IDc2LjE2QzIyMy43MyA3Ni4yOCAyMjMuNTggNzYuNTQgMjIzLjUzIDc2LjkxQzIyMy40OCA3Ny4zMyAyMjMuNTYgNzcuODYgMjIzLjc3IDc4LjQzQzIyMy44NSA3OC42NSAyMjMuOTUgNzguODQgMjI0LjA2IDc5LjAzQzIyNC40NSA3OS43IDIyNC45NiA4MC4xNiAyMjUuNCA4MC4yMkMyMjUuNDggODAuMjMgMjI1LjU2IDgwLjIyIDIyNS42MyA4MC4yMUMyMjUuNjYgODAuMjEgMjI1LjY5IDgwLjE4IDIyNS43MiA4MC4xN0wyMjkuMDEgNzguNzRDMjI4Ljc0IDc5LjU4IDIyOS4wNyA4MS4xIDIzMC4wNCA4Mi4zMkMyMzEuNDQgODQuMDggMjM0LjE5IDg1LjIgMjM4LjQyIDgyLjY5QzI0MS40IDgwLjkyIDI0My4xNSA3Ny44NSAyNDQuMTUgNzUuMzFDMjQ2LjE3IDc5LjMyIDI0OC40NiA4My4xNyAyNTAuOTkgODYuNzVMMjMxLjA2IDk4LjI2QzIzMC42IDk4LjUzIDIzMC4zMSA5OS4wMiAyMzAuMzEgOTkuNTZWMTYyLjIyTDIxMy43MiAxNTIuNjRDMjEzLjI2IDE1Mi4zNyAyMTIuNjggMTUyLjM3IDIxMi4yMiAxNTIuNjRMMTgzLjQgMTY5LjI4QzE3Ny4zNyAxNTkuODUgMTcwLjQ3IDE1MS45NSAxNjIuNTggMTQ1LjQ1QzE3MC43NiAxMzQuNDMgMTc4LjM0IDEyNS44OSAxODIuMjMgMTIxLjY4QzE4Mi42NyAxMjEuMiAxODIuODcgMTIwLjU2IDE4Mi43OCAxMTkuOTNDMTgyLjUxIDExOC4wNyAxODIuMDYgMTE2LjI2IDE4MS40OCAxMTQuNTJDMTg1LjE5IDEwOC4zNyAxODcuMTkgMTAzIDE4Ny4xOSA5My41NEMxODcuMTkgODMuNDkgMTg0LjU2IDczLjMzIDE4Mi4wMSA2My41MUMxODAuNDkgNTcuNjQgMTc5LjA1IDUyLjEgMTc4LjE0IDQ2LjU5QzE3Ni45OSAzOS43IDE3Ni4yNSAzMy45NyAxNzUuNiAyOC45MUMxNzIuMzIgMy4yOCAxNzAuNyAwIDEzOS41MiAwQzEzNy45NiAwIDEzNi42NSAxLjA0IDEzNi4zNCAyLjQ4QzEzNS43IDUuNDkgMTM1LjAxIDguOTggMTM1LjAxIDEyLjI4QzEzNS4wMSAxMi40IDEzNS4wMSAxMi41MyAxMzUuMDIgMTIuNjZDMTM1LjAyIDEyLjY4IDEzNS4wMiAxMi42OSAxMzUuMDIgMTIuNzFDMTM1LjAyIDEyLjczIDEzNS4wMiAxMi43NSAxMzUuMDIgMTIuNzdDMTM1LjAyIDEyLjggMTM1LjAyIDEyLjgyIDEzNS4wMiAxMi44NUMxMzUuMjcgMTkuOTggMTQwLjI2IDIzLjQyIDE0Ny4xNiAyOC4xN0MxNDkuMTggMjkuNTYgMTUxLjQ1IDMxLjEzIDE1My44NiAzMi45NkMxNTQuNDYgNDcuNjIgMTU1LjM4IDYwLjcxIDE1Ni4wNSA3MC4zMkMxNTYuMjIgNzIuNzggMTU2LjM4IDc1IDE1Ni41MSA3Ni45NkMxNTYuNzQgODAuNTUgMTU2LjkgODMuMjUgMTU2LjkgODQuNzZDMTU2LjkgODcuODIgMTU2LjQ0IDkxLjA2IDE1NS41MyA5NC40QzE1My40NCAxMDEuOTcgMTQ4Ljg5IDExMC4xMyAxNDIuNTUgMTE3Ljc5QzE0MS45MyAxMTIuMDQgMTM5Ljg1IDEwNS44NSAxMzYuMjggMTAwLjI0QzEzOC4zNCA5Mi4xOCAxMzYuMDMgODMuNzEgMTMwLjE2IDc4LjI1QzEyMS41NCA3MC4yNSAxMDkuMzkgNjcuNTMgOTkuMTUwMSA3MS4zM0M5NC42MTAxIDczLjAyIDkwLjQyMDEgNzUuOTcgODYuOTAwMSA3OS44Nkw4My4wMTAxIDc2LjAyQzgyLjIyMDEgNzUuMjQgODEuMTcwMSA3NC44MSA4MC4wNTAxIDc0LjgxQzc5LjM2MDEgNzQuODEgNzguNzAwMSA3NC45OSA3OC4xMDAxIDc1LjMxQzc0LjM4MDEgNjguNDIgNjYuNTQwMSA1OS41NSA1Mi41OTAxIDY2LjkyQzMxLjU5MDEgNzggNTkuNDIwMSAxMjEuNDUgNDIuODkwMSAxMzAuMjhDNDEuODUwMSAxMzAuODQgNDEuODMwMSAxMzIuMzIgNDIuODkwMSAxMzIuODJDNDcuNjcwMSAxMzUuMDggNTcuNzEwMSAxMzguMTMgNjQuNzUwMSAxMjguNDlDNzAuODIwMSAxMjAuMTcgNjcuNDQwMSAxMDkuMzkgNjguOTEwMSAxMDMuMzJDNjkuNTcwMSAxMDMuNzkgNzAuMzYwMSAxMDQuMDYgNzEuMTkwMSAxMDQuMDlDNzQuMjAwMSAxMDQuMiA3NS43OTAxIDEwNC4yNiA3Ni42NDAxIDEwNC4yOUM3Ni4zNDAxIDEwOS40IDc3LjA3MDEgMTE0LjQzIDc4Ljg4MDEgMTE4Ljk5QzgyLjIwMDEgMTI3LjM2IDg3Ljg5MDEgMTMwLjg5IDkyLjc5MDEgMTMyLjM0Qzk0LjQyMDEgMTMyLjk5IDk1LjkxMDEgMTMzLjI2IDk3LjExMDEgMTMzLjM2Qzk4LjEwMDEgMTM1LjEgOTguODEwMSAxMzYuODggOTguODEwMSAxMzguODZDOTguODEwMSAxNDQuMzIgOTYuOTcwMSAxNDYuODQgOTQuMDAwMSAxNDkuMTJDOTMuNzAwMSAxNDkuMzYgOTMuMzkwMSAxNDkuNTggOTMuMDcwMSAxNDkuODFDOTIuMTQwMSAxNTAuNDcgOTEuMTQwMSAxNTEuMTEgOTAuMDcwMSAxNTEuOEM4NS44OTAxIDE1NC40OCA4MC43MDAxIDE1Ny44MyA3NS42MzAxIDE2NC41QzY4LjQxMDEgMTc0LjAyIDYzLjI0MDEgMTg4LjAzIDU5Ljg0MDEgMjA3LjI3QzU2LjU2MDEgMjA0LjMxIDUzLjA4MDEgMjAxLjQ5IDQ5LjcwMDEgMTk4Ljc0QzQ0Ljc1MDEgMTk0LjcyIDQwLjA3MDEgMTkwLjkzIDM2LjMyMDEgMTg3LjAxQzMzLjkyMDEgMTg0LjUxIDMxLjYzMDEgMTgxLjY1IDI4LjkwMDEgMTc3Ljc0QzI4LjIyMDEgMTc2Ljc2IDI3LjI3MDEgMTc1Ljk4IDI2LjE0MDEgMTc1LjQ5QzI0LjgzMDEgMTc0LjkgMjMuNDEwMSAxNzQuMjcgMjEuOTQwMSAxNzMuNjRDMjEuOTIwMSAxNzMuNjQgMjEuOTEwMSAxNzMuNjMgMjEuODkwMSAxNzMuNjJDMTYuNTMwMSAxNzEuMyAxMS41NDAxIDE2OS4zIDcuMDUwMTIgMTY3LjY4QzUuMzIwMTIgMTY3LjA1IDMuMzQwMTIgMTY3LjM2IDEuOTAwMTIgMTY4LjUxQzAuNDcwMTIzIDE2OS42NiAtMC4yMzk4NzcgMTcxLjQ4IDAuMDMwMTIyNiAxNzMuMjdDNC4wNjAxMiAxOTkuMDQgNy41NDAxMiAyMDAuNTEgMTcuMDEwMSAyMDAuOTdDMTkuNTYwMSAyMDEuMDkgMjIuNDIwMSAyMDEuMjMgMjUuOTYwMSAyMDIuMjVDMzAuMzEwMSAyMTAuMDQgMzguNjMwMSAyMjMuODQgNDguNDcwMSAyMzQuODRDNTAuMzQwMSAyNDcuMjYgNTUuMzkwMSAyNTQuMzkgNjIuMzgwMSAyNTQuMzlDNjUuNDgwMSAyNTQuMzkgNjguNzYwMSAyNTIuODEgNzIuMTMwMSAyNDkuNjlDNzMuMzgwMSAyNDguNTQgNzQuNjAwMSAyNDcuMjIgNzUuNzgwMSAyNDUuNzdDODAuODMwMSAyMzkuNjUgODYuMjgwMSAyMzAuMjIgOTEuOTgwMSAyMTcuNzNDOTUuMDMwMSAyMjguNyA5MC45MjAxIDIzOS4xNiA4Ni4yNTAxIDI1MS4wMkM4NC40MzAxIDI1NS42NSA4Mi41NTAxIDI2MC40MyA4MS4wMjAxIDI2NS40N0M4MS4wMTAxIDI2NS41IDgxLjAwMDEgMjY1LjUzIDgwLjk5MDEgMjY1LjU1QzgwLjk4MDEgMjY1LjU5IDgwLjk3MDEgMjY1LjYyIDgwLjk1MDEgMjY1LjY2QzgwLjkzMDEgMjY1LjcxIDgwLjkyMDEgMjY1Ljc3IDgwLjkwMDEgMjY1LjgyQzgwLjkwMDEgMjY1LjgzIDgwLjkwMDEgMjY1Ljg1IDgwLjg5MDEgMjY1Ljg2Qzc4Ljk1MDEgMjcyLjMgNzcuOTMwMSAyNzguMjQgNzcuNzcwMSAyODMuOTlDNzcuNzQwMSAyODQuNDcgNzcuNzQwMSAyODUuMDQgNzcuNzQwMSAyODUuNjFDNzcuNzQwMSAyODguNDIgNzguMzUwMSAyOTIuMSA3OS41NzAxIDI5Ni42NFYzMTQuNTVMNjIuOTgwMSAzMDQuOTdDNjIuNTIwMSAzMDQuNyA2MS45NDAxIDMwNC43IDYxLjQ4MDEgMzA0Ljk3TDUuMDAwMTIgMzM3LjU3QzQuNTQwMTIgMzM3Ljg0IDQuMjUwMTIgMzM4LjMzIDQuMjUwMTIgMzM4Ljg3VjQ0MC41NEM0LjI1MDEyIDQ0MS4zNyA0LjkyMDEyIDQ0Mi4wNCA1Ljc1MDEyIDQ0Mi4wNEg5OS45NjAxQzk4LjU4MDEgNDUwLjA1IDk2Ljg5MDEgNDU4LjkzIDk0LjUwMDEgNDY5LjA4QzkyLjQzMDEgNDc3Ljg5IDkwLjA4MDEgNDg2LjU2IDg3LjMyMDEgNDk1LjZDODcuMjkwMSA0OTUuNjggODcuMjcwMSA0OTUuNzcgODcuMjYwMSA0OTUuODZDODcuMDYwMSA0OTcuMDQgODYuODIwMSA0OTguMTIgODYuNTEwMSA0OTkuMjVDODYuMTAwMSA1MDAuNzQgODUuNjMwMSA1MDEuOTkgODUuMTgwMSA1MDMuMkM4NC4xODAxIDUwNS44OCA4My4yMzAxIDUwOC40IDgyLjk5MDEgNTEyLjkzQzgyLjkyMDEgNTE0LjIxIDgyLjkxMDEgNTE1LjU3IDgyLjk2MDEgNTE3LjA2QzgzLjA5MDEgNTIxLjAyIDg1LjE3MDEgNTI0LjcxIDg4LjUwMDEgNTI2LjkyQzkyLjcxMDEgNTI5LjcyIDk2LjA4MDEgNTMzLjg0IDk5LjY2MDEgNTM4LjJDMTAzLjc5IDU0My4yMyAxMDguMDYgNTQ4LjQzIDExNC4xNSA1NTIuNDFDMTE4LjQ2IDU1NS4yMSAxMjMuMzUgNTU2LjE5IDEyOC4wOCA1NTYuMTlDMTM0LjI1IDU1Ni4xOSAxNDAuMTQgNTU0LjUzIDE0NC4wNSA1NTMuMUMxNDcuMTIgNTUxLjk5IDE0OS4xMSA1NDkuMDkgMTQ5IDU0NS44OUwxNDguOTIgNTQzLjQ5QzE0OC44NiA1NDEuNzUgMTQ4LjMzIDU0MC4wNiAxNDcuNCA1MzguNTdDMTQ3LjMzIDUzOC40MiAxNDcuMjQgNTM4LjI4IDE0Ny4xNCA1MzguMTVDMTQ2LjM2IDUzNi45OCAxNDUuMzQgNTM1Ljk3IDE0NC4xMiA1MzUuMjFMMTM0LjQxIDUyOS4wOEMxMzEuNzkgNTI3LjQyIDEyOS42OSA1MjUuMSAxMjguMzUgNTIyLjM3TDExOC43OSA1MDMuMDFDMTE3LjY5IDUwMC43OCAxMTcuNTUgNDk4LjE3IDExOC40IDQ5NS44NkMxMjAuNDggNDkwLjIgMTIyLjYzIDQ4NC40NyAxMjQuOCA0NzguODVDMTI5Ljg1IDQ2NS42OSAxMzQuNjggNDUzLjczIDEzOS41MSA0NDIuMDZIMzQ0Ljg2QzM0NS42OSA0NDIuMDYgMzQ2LjM2IDQ0MS4zOSAzNDYuMzYgNDQwLjU2Vjk5LjU3QzM0Ni4zNiA5OS4wMyAzNDYuMDcgOTguNTQgMzQ1LjYxIDk4LjI3Vjk4LjI4WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjxwYXRoIGQ9Ik0zMjcuODcgNjQuMDg5NEwzNDUuMTkgNTYuMDM5NEMzNDUuNzMgNTUuNzg5NCAzNDYuMTMgNTUuMzA5NCAzNDYuMjkgNTQuNzM5NEMzNDYuNDUgNTQuMTY5NCAzNDYuMzUgNTMuNTQ5NCAzNDYuMDEgNTMuMDU5NEwzMzguNjYgNDIuMjg5NEMzMzguMjYgNDEuNzA5NCAzMzcuNTggNDEuMzY5NCAzMzYuODcgNDEuNDA5NEMzMzYuMjUgNDEuNDM5NCAzMzUuNjggNDEuNzU5NCAzMzUuMzIgNDIuMjY5NEMzMzUuMjcgNDIuMzM5NCAzMzUuMjMgNDIuNDA5NCAzMzUuMTkgNDIuNDg5NEwzMjUuMjEgNjEuMzA5NEMzMjUuMDUgNjEuNjA5NCAzMjQuOTcgNjEuOTM5NCAzMjQuOTcgNjIuMjU5NEMzMjQuOTcgNjIuNzY5NCAzMjUuMTYgNjMuMjY5NCAzMjUuNTMgNjMuNjU5NEMzMjYuMTMgNjQuMjg5NCAzMjcuMDYgNjQuNDY5NCAzMjcuODUgNjQuMDk5NEwzMjcuODcgNjQuMDg5NFpNMzMxLjYzIDU3Ljg2OTRMMzM3LjIxIDQ3LjMzOTRMMzQxLjMyIDUzLjM1OTRMMzMxLjYzIDU3Ljg1OTRWNTcuODY5NFoiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48cGF0aCBkPSJNNTkuNzY5OCAxNjcuMzMxTDUxLjEwOTggMTUwLjMwMUM1MC44Mzk4IDE0OS43NzEgNTAuMzQ5OCAxNDkuMzgxIDQ5Ljc2OTggMTQ5LjI1MUM0OS4xODk4IDE0OS4xMTEgNDguNTc5OCAxNDkuMjQxIDQ4LjA5OTggMTQ5LjU5MUwzNy41OTk4IDE1Ny4zMjFDMzcuMDI5OCAxNTcuNzQxIDM2LjcxOTggMTU4LjQzMSAzNi43Nzk4IDE1OS4xNDFDMzYuODM5OCAxNTkuNzYxIDM3LjE2OTggMTYwLjMxMSAzNy42ODk4IDE2MC42NTFDMzcuNzU5OCAxNjAuNzAxIDM3LjgyOTggMTYwLjc0MSAzNy45MDk4IDE2MC43NzFMNTcuMDc5OCAxNzAuMDcxQzU3LjM4OTggMTcwLjIyMSA1Ny43MDk4IDE3MC4yODEgNTguMDM5OCAxNzAuMjcxQzU4LjU0OTggMTcwLjI1MSA1OS4wMzk4IDE3MC4wNDEgNTkuNDA5OCAxNjkuNjYxQzYwLjAxOTggMTY5LjA0MSA2MC4xNTk4IDE2OC4xMDEgNTkuNzY5OCAxNjcuMzIxVjE2Ny4zMzFaTTUzLjQxOTggMTYzLjc5MUw0Mi42OTk4IDE1OC41OTFMNDguNTY5OCAxNTQuMjcxTDUzLjQxOTggMTYzLjc5MVoiIGZpbGw9IiNGRjYwMDAiPjwvcGF0aD48cGF0aCBkPSJNMzMzLjQ4IDgxLjY1OUMzMzYuNjQgODIuMzk5IDMzOS44MiA4MC40MzkgMzQwLjU2IDc3LjI3OUMzNDEuMyA3NC4xMTkgMzM5LjM0IDcwLjkzOSAzMzYuMTggNzAuMTk5QzMzMy4wMiA2OS40NTkgMzI5Ljg0IDcxLjQxOSAzMjkuMSA3NC41NzlDMzI4LjM2IDc3LjczOSAzMzAuMzIgODAuOTE5IDMzMy40OCA4MS42NTlaTTMzNS4zOSA3My41NTlDMzM2LjcgNzMuODY5IDMzNy41MSA3NS4xNzkgMzM3LjIgNzYuNDg5QzMzNi44OSA3Ny43OTkgMzM1LjU4IDc4LjYwOSAzMzQuMjcgNzguMjk5QzMzMi45NiA3Ny45ODkgMzMyLjE1IDc2LjY3OSAzMzIuNDYgNzUuMzY5QzMzMi43NyA3NC4wNTkgMzM0LjA4IDczLjI0OSAzMzUuMzkgNzMuNTU5WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0xMzEuOTQgNTMuMDY5M0MxMzUuMSA1My44MDkzIDEzOC4yOCA1MS44NDkzIDEzOS4wMiA0OC42ODkzQzEzOS43NiA0NS41MjkzIDEzNy44IDQyLjM0OTMgMTM0LjY0IDQxLjYwOTNDMTMxLjQ4IDQwLjg2OTMgMTI4LjMgNDIuODI5MyAxMjcuNTYgNDUuOTg5M0MxMjYuODIgNDkuMTQ5MyAxMjguNzggNTIuMzI5MyAxMzEuOTQgNTMuMDY5M1pNMTMzLjg1IDQ0Ljk2OTNDMTM1LjE2IDQ1LjI3OTMgMTM1Ljk3IDQ2LjU4OTMgMTM1LjY2IDQ3Ljg5OTNDMTM1LjM1IDQ5LjIwOTMgMTM0LjA0IDUwLjAxOTMgMTMyLjczIDQ5LjcwOTNDMTMxLjQyIDQ5LjM5OTMgMTMwLjYxIDQ4LjA4OTMgMTMwLjkyIDQ2Ljc3OTNDMTMxLjIzIDQ1LjQ2OTMgMTMyLjU0IDQ0LjY1OTMgMTMzLjg1IDQ0Ljk2OTNaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTM1Mi4zNSA3NC4wNTcyQzM1My43MTQgNzQuMDU3MiAzNTQuODIgNzIuOTUxMyAzNTQuODIgNzEuNTg3MkMzNTQuODIgNzAuMjIzIDM1My43MTQgNjkuMTE3MiAzNTIuMzUgNjkuMTE3MkMzNTAuOTg2IDY5LjExNzIgMzQ5Ljg4IDcwLjIyMyAzNDkuODggNzEuNTg3MkMzNDkuODggNzIuOTUxMyAzNTAuOTg2IDc0LjA1NzIgMzUyLjM1IDc0LjA1NzJaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIGQ9Ik0xNDIuNzkgNjUuMjY4MUMxNDQuMTU0IDY1LjI2ODEgMTQ1LjI2IDY0LjE2MjMgMTQ1LjI2IDYyLjc5ODFDMTQ1LjI2IDYxLjQzNCAxNDQuMTU0IDYwLjMyODEgMTQyLjc5IDYwLjMyODFDMTQxLjQyNiA2MC4zMjgxIDE0MC4zMiA2MS40MzQgMTQwLjMyIDYyLjc5ODFDMTQwLjMyIDY0LjE2MjMgMTQxLjQyNiA2NS4yNjgxIDE0Mi43OSA2NS4yNjgxWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNNTEuOTA5NSAxODQuMDNDNTMuMjczNiAxODQuMDMgNTQuMzc5NSAxODIuOTI0IDU0LjM3OTUgMTgxLjU2QzU0LjM3OTUgMTgwLjE5NiA1My4yNzM2IDE3OS4wOSA1MS45MDk1IDE3OS4wOUM1MC41NDUzIDE3OS4wOSA0OS40Mzk1IDE4MC4xOTYgNDkuNDM5NSAxODEuNTZDNDkuNDM5NSAxODIuOTI0IDUwLjU0NTMgMTg0LjAzIDUxLjkwOTUgMTg0LjAzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48cGF0aCBkPSJNMjExLjQ5IDk1LjI2MDNDMjEyLjg1NCA5NS4yNjAzIDIxMy45NiA5NC4xNTQ1IDIxMy45NiA5Mi43OTAzQzIxMy45NiA5MS40MjYyIDIxMi44NTQgOTAuMzIwMyAyMTEuNDkgOTAuMzIwM0MyMTAuMTI1IDkwLjMyMDMgMjA5LjAyIDkxLjQyNjIgMjA5LjAyIDkyLjc5MDNDMjA5LjAyIDk0LjE1NDUgMjEwLjEyNSA5NS4yNjAzIDIxMS40OSA5NS4yNjAzWiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yMzEuODMgOTkuNTY3NUwyODguMzUgNjYuOTM3NUwzNDQuODYgOTkuNTY3NUwyODguMzUgMTMyLjIwOEwyMzEuODMgOTkuNTY3NVoiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMjg4LjM1IDEzMi4yMUwyMzEuODMgOTkuNTcwM1Y0NDAuNTRIMjg4LjM1VjEzMi4yMVoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yMzg3XzI4OTAyKSI+PC9wYXRoPjxwYXRoIGQ9Ik0yODguMzUgMTMyLjIxTDM0NC44NiA5OS41NzAzVjQ0MC41NEgyODguMzVWMTMyLjIxWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzIzODdfMjg5MDIpIj48L3BhdGg+PHBhdGggZD0iTTM0NS42MSA5OC4yNzc4TDI4OS4wOSA2NS42NDc4QzI4OC42MyA2NS4zNzc4IDI4OC4wNSA2NS4zNzc4IDI4Ny41OSA2NS42NDc4TDIzMS4wNyA5OC4yNzc4QzIzMC42MSA5OC41NDc4IDIzMC4zMiA5OS4wMzc4IDIzMC4zMiA5OS41Nzc4VjQ0MC41MzhDMjMwLjMyIDQ0MS4zNjggMjMwLjk5IDQ0Mi4wMzggMjMxLjgyIDQ0Mi4wMzhIMzQ0Ljg2QzM0NS42OSA0NDIuMDM4IDM0Ni4zNiA0NDEuMzY4IDM0Ni4zNiA0NDAuNTM4Vjk5LjU2NzhDMzQ2LjM2IDk5LjAyNzggMzQ2LjA3IDk4LjUzNzggMzQ1LjYxIDk4LjI2NzhWOTguMjc3OFpNMjg4LjM0IDY4LjY3NzhMMzQxLjg2IDk5LjU3NzhMMjg4LjM0IDEzMC40NzhMMjM0LjgyIDk5LjU3NzhMMjg4LjM0IDY4LjY3NzhaTTIzMy4zMiAxMDIuMTc4TDI4Ni44NCAxMzMuMDc4VjQzOS4wMzhIMjMzLjMyVjEwMi4xNjhWMTAyLjE3OFpNMzQzLjM2IDQzOS4wMzhIMjg5Ljg0VjEzMy4wNjhMMzQzLjM2IDEwMi4xNjhWNDM5LjAzOFoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl8yMzg3XzI4OTAyKSI+PC9wYXRoPjxwYXRoIGQ9Ik0xNTYuNDcgMTg2LjU5MUwyMTIuOTkgMTUzLjk2MUwyNjkuNTEgMTg2LjU5MUwyMTIuOTkgMjE5LjIyMUwxNTYuNDcgMTg2LjU5MVoiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMjEyLjk5IDIxOS4yMjRMMTU2LjQ3IDE4Ni41OTRWNDQwLjU0NEgyMTIuOTlWMjE5LjIyNFoiIGZpbGw9InVybCgjcGFpbnQzX2xpbmVhcl8yMzg3XzI4OTAyKSI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTIuOTkgMjE5LjIyNEwyNjkuNTEgMTg2LjU5NFY0NDAuNTQ0SDIxMi45OVYyMTkuMjI0WiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzIzODdfMjg5MDIpIj48L3BhdGg+PHBhdGggZD0iTTI3MC4yNiAxODUuMjlMMjEzLjc0IDE1Mi42NkMyMTMuMjggMTUyLjM5IDIxMi43IDE1Mi4zOSAyMTIuMjQgMTUyLjY2TDE1NS43MiAxODUuMjlDMTU1LjI2IDE4NS41NiAxNTQuOTcgMTg2LjA1IDE1NC45NyAxODYuNTlWNDQwLjU0QzE1NC45NyA0NDEuMzcgMTU1LjY0IDQ0Mi4wNCAxNTYuNDcgNDQyLjA0SDI2OS41MUMyNzAuMzQgNDQyLjA0IDI3MS4wMSA0NDEuMzcgMjcxLjAxIDQ0MC41NFYxODYuNTlDMjcxLjAxIDE4Ni4wNSAyNzAuNzIgMTg1LjU2IDI3MC4yNiAxODUuMjlaTTIxMi45OSAxNTUuNjlMMjY2LjUxIDE4Ni41OUwyMTIuOTkgMjE3LjQ5TDE1OS40NyAxODYuNTlMMjEyLjk5IDE1NS42OVpNMTU3Ljk3IDE4OS4xOUwyMTEuNDkgMjIwLjA5VjQzOS4wNEgxNTcuOTdWMTg5LjE5Wk0yNjguMDEgNDM5LjA0SDIxNC40OVYyMjAuMDlMMjY4LjAxIDE4OS4xOVY0MzkuMDRaIiBmaWxsPSJ1cmwoI3BhaW50NV9saW5lYXJfMjM4N18yODkwMikiPjwvcGF0aD48cGF0aCBkPSJNODEuMTA5NCAyNzMuNjA3TDEzNy42MjkgMjQwLjk3N0wxOTQuMTQ5IDI3My42MDdMMTM3LjYyOSAzMDYuMjM3TDgxLjEwOTQgMjczLjYwN1oiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMTM3LjYyOSAzMDYuMjM5TDgxLjEwOTQgMjczLjYwOVY0NDAuNTM5SDEzNy42MjlWMzA2LjIzOVoiIGZpbGw9InVybCgjcGFpbnQ2X2xpbmVhcl8yMzg3XzI4OTAyKSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMzcuNjI5IDMwNi4yMzlMMTk0LjE0OSAyNzMuNjA5VjQ0MC41MzlIMTM3LjYyOVYzMDYuMjM5WiIgZmlsbD0idXJsKCNwYWludDdfbGluZWFyXzIzODdfMjg5MDIpIj48L3BhdGg+PHBhdGggZD0iTTE5NC45IDI3Mi4zMDlMMTM4LjM4IDIzOS42NzlDMTM3LjkyIDIzOS40MDkgMTM3LjM0IDIzOS40MDkgMTM2Ljg4IDIzOS42NzlMODAuMzYwNCAyNzIuMzA5Qzc5LjkwMDQgMjcyLjU3OSA3OS42MTA0IDI3My4wNjkgNzkuNjEwNCAyNzMuNjA5VjQ0MC41MzlDNzkuNjEwNCA0NDEuMzY5IDgwLjI4MDQgNDQyLjAzOSA4MS4xMTA0IDQ0Mi4wMzlIMTk0LjE1QzE5NC45OCA0NDIuMDM5IDE5NS42NSA0NDEuMzY5IDE5NS42NSA0NDAuNTM5VjI3My42MDlDMTk1LjY1IDI3My4wNjkgMTk1LjM2IDI3Mi41NzkgMTk0LjkgMjcyLjMwOVpNMTM3LjYzIDI0Mi43MDlMMTkxLjE1IDI3My42MDlMMTM3LjYzIDMwNC41MDlMODQuMTEwNCAyNzMuNjA5TDEzNy42MyAyNDIuNzA5Wk04Mi42MTA0IDI3Ni4yMDlMMTAxLjQzIDI4Ny4wNjlMMTM2LjEzIDMwNy4wOTlWNDM5LjAyOUg4Mi42MTA0VjI3Ni4xOTlWMjc2LjIwOVpNMTM5LjEzIDQzOS4wMzlWMzA3LjEwOUwxNzMuODMgMjg3LjA3OUwxOTIuNjUgMjc2LjIxOVY0MzkuMDQ5SDEzOS4xM1Y0MzkuMDM5WiIgZmlsbD0idXJsKCNwYWludDhfbGluZWFyXzIzODdfMjg5MDIpIj48L3BhdGg+PHBhdGggZD0iTTUuNzUgMzM4Ljg2OEw2Mi4yNyAzMDYuMjM4TDExOC43OSAzMzguODY4TDYyLjI3IDM3MS40OThMNS43NSAzMzguODY4WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik02Mi4yNyAzNzEuNDk3TDUuNzUgMzM4Ljg2N1Y0NDAuNTM3SDYyLjI3VjM3MS40OTdaIiBmaWxsPSJ1cmwoI3BhaW50OV9saW5lYXJfMjM4N18yODkwMikiPjwvcGF0aD48cGF0aCBkPSJNNjIuMjY5NSAzNzEuNDk3TDExOC43OSAzMzguODY3VjQ0MC41MzdINjIuMjY5NVYzNzEuNDk3WiIgZmlsbD0idXJsKCNwYWludDEwX2xpbmVhcl8yMzg3XzI4OTAyKSI+PC9wYXRoPjxwYXRoIGQ9Ik0xMTkuNTQgMzM3LjU3MUw2My4wMiAzMDQuOTQxQzYyLjU2IDMwNC42NzEgNjEuOTggMzA0LjY3MSA2MS41MiAzMDQuOTQxTDUgMzM3LjU3MUM0LjU0IDMzNy44NDEgNC4yNSAzMzguMzMxIDQuMjUgMzM4Ljg3MVY0NDAuNTQxQzQuMjUgNDQxLjM3MSA0LjkyIDQ0Mi4wNDEgNS43NSA0NDIuMDQxSDExOC43OUMxMTkuNjIgNDQyLjA0MSAxMjAuMjkgNDQxLjM3MSAxMjAuMjkgNDQwLjU0MVYzMzguODcxQzEyMC4yOSAzMzguMzMxIDEyMCAzMzcuODQxIDExOS41NCAzMzcuNTcxWk02Mi4yNyAzMDcuOTcxTDExNS43OSAzMzguODcxTDYyLjI3IDM2OS43NzFMOC43NSAzMzguODcxTDYyLjI3IDMwNy45NzFaTTcuMjUgMzQxLjQ3MUwyNy43MyAzNTMuMzAxTDYwLjc3IDM3Mi4zNzFWNDM5LjA0MUg3LjI1VjM0MS40NzFaTTYzLjc3IDQzOS4wNDFWMzcyLjM3MUw5Ny4yNiAzNTMuMDMxTDExNy4yOSAzNDEuNDcxVjQzOS4wNDFINjMuNzdaIiBmaWxsPSJ1cmwoI3BhaW50MTFfbGluZWFyXzIzODdfMjg5MDIpIj48L3BhdGg+PHBhdGggZD0iTTEyNS41MzkgODguNTY5QzEyNC41OTkgODcuNzc5IDEyMy4xMzkgODguNTY5IDEyMy4yNzkgODkuNzg5QzEyMy43MTkgOTMuNjk5IDEyMy4wOTkgMTAwLjQ0OSAxMTUuODc5IDEwNy4wODlDMTA0Ljc2OSAxMTcuMzE5IDk5LjIxOTQgMTIxLjA0OSAxMDAuMDg5IDEzMy4yMzlDMTAwLjA4OSAxMzMuMjM5IDg3LjY3OTUgMTM2LjAxOSA4MC42NTk1IDExOC4yOTlDNzMuNjI5NSAxMDAuNTc5IDg0LjMwOTUgNzguODU5IDk5LjgyOTUgNzMuMDg5QzEwOS45NzkgNjkuMzE5IDEyMS4zOTkgNzIuNjQ5IDEyOC44OTkgNzkuNjE5QzEzNC43ODkgODUuMDg5IDEzNi41NzkgOTMuNzA5IDEzNC4wMTkgMTAxLjMxOUMxMzQuMDE5IDEwMS4zMTkgMTMxLjg4OSA5My45MTkgMTI1LjUyOSA4OC41NTlMMTI1LjUzOSA4OC41NjlaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTc4LjkwOTcgMTE4Ljk4OEM3NS40NTk3IDExMC4yNzggNzUuODY5NyA5OS44ODc4IDgwLjA1OTcgOTAuNDg3OEM4NC4xMzk3IDgxLjMxNzggOTEuMTA5NyA3NC4zMjc4IDk5LjE3OTcgNzEuMzI3OEMxMDkuNDIgNjcuNTI3OCAxMjEuNTcgNzAuMjM3OCAxMzAuMTkgNzguMjQ3OEMxMzYuNDcgODQuMDg3OCAxMzguNjggOTMuMzg3OCAxMzUuODEgMTAxLjkyOEMxMzUuODEgMTAxLjkyOCAxMzAuNCA5NS42NTc4IDEyNS4yNSA5MC44Mjc4QzEyNS40NCA5NC45Njc4IDEyNC4zNyAxMDEuODM4IDExNy4xNiAxMDguNDc4TDExNC4yMyAxMTEuMTU4QzEwNS4wNCAxMTkuNTA4IDEwMS4yNCAxMjIuOTU4IDEwMS45NyAxMzMuMTE4QzEwMS45NyAxMzMuMTE4IDg1LjYwOTcgMTM1Ljg3OCA3OC45MTk3IDExOS4wMDhMNzguOTA5NyAxMTguOTg4Wk0xMTEuNjkgMTA4LjM2OEwxMTQuNiAxMDUuNzA4QzEyMS4wMyA5OS43ODc4IDEyMS44NSA5My44OTc4IDEyMS40MSA4OS45OTc4QzEyMS4yNiA4OC42Njc4IDEyMS45MyA4Ny4zOTc4IDEyMy4xMiA4Ni43Njc4QzEyNC4zIDg2LjEyNzggMTI1LjczIDg2LjI3NzggMTI2Ljc1IDg3LjEzNzhDMTI5Ljc0IDg5LjY1NzggMTMxLjg1IDkyLjU4NzggMTMzLjI4IDk1LjA3NzhDMTMzLjQ3IDg5LjczNzggMTMxLjQ4IDg0LjU3NzggMTI3LjYzIDgwLjk5NzhDMTIwLjA0IDczLjk0NzggMTA5LjM4IDcxLjU0NzggMTAwLjQ5IDc0Ljg0NzhDOTMuNDY5NyA3Ny40NTc4IDg3LjEwOTcgODMuODc3OCA4My40ODk3IDkyLjAxNzhDNzkuNzE5NyAxMDAuNTA4IDc3LjU2OTcgMTEwLjUyOCA4MC42NTk3IDExOC4zMDhDODUuNTg5NyAxMzAuNzM4IDk4LjI5OTcgMTMzLjMzOCA5OS4wMjk3IDEzMS45OThDOTguMzY5NyAxMjAuNDM4IDEwMi41OSAxMTYuNjQ4IDExMS42OSAxMDguMzc4VjEwOC4zNjhaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTgwLjg4MDMgODEuODg4NUM4MC44ODAzIDgxLjg4ODUgNzMuNzgwMyA1NS43Mzg1IDUyLjYyMDMgNjYuOTA4NUMzMS42MjAzIDc3Ljk4ODUgNTkuNDUwMyAxMjEuNDM5IDQyLjkyMDMgMTMwLjI2OUM0MS44ODAzIDEzMC44MjkgNDEuODYwMyAxMzIuMzA5IDQyLjkyMDMgMTMyLjgwOUM0Ny43MDAzIDEzNS4wNjkgNTcuNzQwMyAxMzguMTE5IDY0Ljc4MDMgMTI4LjQ3OUM3NC4zMjAzIDExNS40MTkgNjAuNTIwMyA5Ni4yNjg1IDc4Ljg1MDMgOTguODM4NUw4MC44ODAzIDgxLjg4ODVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTEzNi41MSAxNTQuODMyQzEzNi41MSAxNTAuNjcyIDEzNC44OSAxNDguNzMyIDEzMi44MiAxNDQuNjAyQzE0MS4wNyAxNDkuNzAyIDE0OC44NCAxNTMuNTQyIDE1Ni4xOCAxNTcuNjUyVjE1Ny42NzJDMTU3Ljg5IDE2NS4xODIgMTU5LjgzIDE3My4xOTIgMTU5LjgzIDE4NS45OTJDMTU5LjgzIDE4OS4zMTIgMTU5LjYyIDE5NC42MzIgMTU5LjQ2IDE5Ny45NTJDMTUzLjY2IDE4NC41NTIgMTQ1LjM3IDE3MC40ODIgMTM1LjE0IDE2MC4xMDJDMTM2LjAyIDE1OC42NjIgMTM2LjUyIDE1Ni45MDIgMTM2LjUyIDE1NC44MzJIMTM2LjUxWiIgZmlsbD0iI0UyRTJFMiI+PC9wYXRoPjxwYXRoIGQ9Ik04NS4wOTAxIDI2Ni4yNDJDMTA0LjQ1IDI2NC4yMzIgMTI1LjE1IDI1NS45MTIgMTM4LjcxIDI0My43MDJDMTE4LjUyIDIxOC41NTIgMTA0LjE1IDE4My4wMTMgOTYuMTIwMSAxNTEuNTUzQzk2LjQ2MDEgMTUxLjMwMyA5Ni43ODAxIDE1MS4wNjIgOTcuMDkwMSAxNTAuODEyQzEwNS4xNyAxNTcuODcyIDExNC41MiAxNjMuNTUzIDEyNC44NiAxNjMuNTUzQzEyOC45MyAxNjMuNTUzIDEzMi40NiAxNjEuOTMzIDEzNC4zMSAxNTguODgzQzE0NC41NCAxNjkuMjczIDE1Mi45NCAxODEuMzQzIDE1OC43NCAxOTQuNzQzQzE1OC4yOCAyMDQuNTQzIDE1Ny4zOCAyMTQuMzUyIDE1Ny4zNSAyMjQuMTgyVjIyNC4yNDNDMTU3LjM1IDIyNy4wNTMgMTU3Ljg4IDIzMC4wMzMgMTU4LjQ5IDIzMy4wODNDMTU5LjM3IDIzNy40MTMgMTYwLjQ0IDI0MS44MjIgMTYwLjQ0IDI0Ni4wMTJDMTYwLjQ0IDI0OS4yODIgMTU5LjU3IDI1Mi40NTIgMTU3Ljk3IDI1NS40NTJDMTQ5LjAxIDI3Mi4yMTIgMTE3LjE2IDI4NC4wNjIgODUuOTcwMSAyODQuMDYyQzg0LjY2MDEgMjg0LjA2MiA4My4zNzAxIDI4NC4wNDMgODIuMDgwMSAyODQuMDEzQzgyLjI1MDEgMjc3LjcxMyA4My40NDAxIDI3MS44MjMgODUuMDkwMSAyNjYuMjMzVjI2Ni4yNDJaIiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPjxwYXRoIGQ9Ik04Mi4wODAxIDI3NC4wNEM4Mi4wODAxIDI3NC4wNCAxMjEuNDggMjY5LjMyIDEzMi44MiAyNDkuNjhDMTMyLjgyIDI0OS42OCAxMDEuNjIgMjY2LjMzIDgyLjkzMDEgMjY2LjM5TDgyLjA4MDEgMjc0LjA0WiIgZmlsbD0iI0UyRTJFMiI+PC9wYXRoPjxwYXRoIGQ9Ik0xMzguNzQgMTIuMjhDMTM4Ljc0IDEyLjQyIDEzOC43NCAxMi41NyAxMzguNzYgMTIuNzFDMTM5LjAxIDIwLjg4IDE0Ni40OCAyMy40NSAxNTcuMTEgMzEuODhDMTU3Ljg0IDUwLjcgMTU5LjEgNjcuMDcgMTU5Ljc0IDc2LjgyQzE1OS45NyA4MC40NSAxNjAuMTMgODMuMTcgMTYwLjEzIDg0Ljc2QzE2MC4xMyA4OC4xNiAxNTkuNjIgOTEuNTcgMTU4LjcyIDk0Ljk2QzE2OC45MiA5Ny44MiAxNzYuMzYgMTA1LjM2IDE3OS41OSAxMTQuM0MxODMuNSAxMDcuODQgMTg1LjM3IDEwMi44NCAxODUuMzcgOTMuNTdDMTg1LjM3IDc4LjAxIDE3OS4wMSA2Mi4wNCAxNzYuNTYgNDYuOTZDMTY5Ljk1IDYuMzMgMTc2Ljc4IDIuMTYgMTQwLjk4IDIuMTZIMTQwLjkzQzE0MC40OCAyLjE2IDE0MC4wOCAyLjQ3IDEzOS45OSAyLjkyQzEzOS4zNiA1Ljk2IDEzOC43NCA5LjI0IDEzOC43NCAxMi4yOFoiIGZpbGw9IiNFQUMxOEIiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuMiI+PHBhdGggZD0iTTE3My45NSAyOC4yNzE3QzE3My42IDMwLjExMTcgMTczLjMgMzIuMTcxNyAxNzMuMTMgMzQuMzcxN0MxNzIuNTQgNDIuMzAxNyAxNzYuOTkgNTguODgxNyAxNzYuODQgNzcuOTAxN0MxNzYuNzMgOTEuODAxNyAxNzIuODIgOTguNzAxNyAxNzAuNzIgMTAxLjQxMkMxNzQuNzcgMTA0LjkzMiAxNzcuODEgMTA5LjM5MiAxNzkuNTggMTE0LjI5MkMxODMuNDkgMTA3LjgzMiAxODUuMzYgMTAyLjgzMiAxODUuMzYgOTMuNTYxN0MxODUuMzYgNzguMDAxNyAxNzkgNjIuMDMxNyAxNzYuNTUgNDYuOTUxN0MxNzUuMzUgMzkuNTgxNyAxNzQuNiAzMy40MjE3IDE3My45NSAyOC4yNjE3VjI4LjI3MTdaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0xNTkuMzEgMjMzLjA5MUMxNzQuOTQgMjI2LjUxMSAxODcuNTggMjE1LjAzMSAxOTguMjUgMjAxLjk1MUMxOTYuMjkgMTk3LjczMSAxOTQuMyAxOTMuOTMxIDE5Mi4yNCAxOTAuNDcxQzE5Mi4yNCAxOTAuNDcxIDE5Mi4yNCAxOTAuNDUxIDE5Mi4yMiAxOTAuNDQxQzE4MS40NSAxNzIuMjcxIDE2OS41MyAxNjMuOTUxIDE1Ni4xNyAxNTYuNDYxVjE1Ni40ODFDMTU3Ljg4IDE2My45OTEgMTU5LjgyIDE3Mi4wMDEgMTU5LjgyIDE4NC44MDFDMTU5LjgyIDE5Ny42MDEgMTU4LjIxIDIxMS4wNTEgMTU4LjE3IDIyNC4yMTFWMjI0LjI3MUMxNTguMTcgMjI3LjA4MSAxNTguNyAyMzAuMDYxIDE1OS4zMSAyMzMuMTExVjIzMy4wOTFaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjQiPjxwYXRoIGQ9Ik0xNTkuMzEgMjMzLjA5MUMxNzQuOTQgMjI2LjUxMSAxODcuNTggMjE1LjAzMSAxOTguMjUgMjAxLjk1MUMxOTYuMjkgMTk3LjczMSAxOTQuMyAxOTMuOTMxIDE5Mi4yNCAxOTAuNDcxQzE5Mi4yNCAxOTAuNDcxIDE5Mi4yNCAxOTAuNDUxIDE5Mi4yMiAxOTAuNDQxQzE4MS40NSAxNzIuMjcxIDE2OS41MyAxNjMuOTUxIDE1Ni4xNyAxNTYuNDYxVjE1Ni40ODFDMTU2LjY4IDE1OC43MTEgMTU3LjIxIDE2MC45ODEgMTU3LjcgMTYzLjQxMUMxNTguODYgMTY5LjE3MSAxNTkuODIgMTc1LjgwMSAxNTkuODIgMTg0LjgwMUMxNTkuODIgMTk3LjkzMSAxNTguMjEgMjExLjA1MSAxNTguMTcgMjI0LjIxMVYyMjQuMjcxQzE1OC4xNyAyMjcuMDgxIDE1OC43IDIzMC4wNjEgMTU5LjMxIDIzMy4xMTFWMjMzLjA5MVoiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48L2c+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjQiPjxwYXRoIGQ9Ik0xNTcuNyAxNTkuNDIyQzE1OC44NiAxNjUuMTgyIDE1OS44MiAxNzUuNzkyIDE1OS44MiAxODQuNzgyQzE1OS44MiAxOTcuOTEyIDE1OC4yMSAyMTEuMDMyIDE1OC4xNyAyMjQuMTkyVjIyNC4yNTJDMTU4LjE3IDIyNy4wNjIgMTU4LjcgMjMwLjA0MiAxNTkuMzEgMjMzLjA5MkMxNjMuMjEgMjMxLjQ1MiAxNzIuMDEgMjI1LjQ5MiAxNzUuNTYgMjIzLjI5MkMxNzguNDggMTk3Ljk2MiAxNTcuNyAxNTkuNDIyIDE1Ny43IDE1OS40MjJaIiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik0yMS44NTAzIDE3NC44OUMxNy4zNTAzIDE3Mi45IDEyLjM1MDMgMTcwLjggNy40NDAyOCAxNjguOTdDNi40NTAyOCAxNjguNiA1LjM0MDI4IDE2OC43OCA0LjUyMDI4IDE2OS40NUMzLjcxMDI4IDE3MC4xMSAzLjMxMDI4IDE3MS4xNyAzLjQ3MDI4IDE3Mi4yMkM4LjYzMDI4IDIwNi42MSAxMi41MTAzIDE5NC42IDI4LjEyMDMgMTk5LjcyQzM0LjIyMDMgMjExLjAxIDQyLjI5MDMgMjIzLjcxIDUwLjY3MDMgMjMzLjJDNTcuMjUwMyAyNDAuNjggNjQuMDMwMyAyNDYuMTYgNzAuMjMwMyAyNDcuNEM3MS4zNjAzIDI0Ni4zMyA3Mi40OTAzIDI0NS4xIDczLjU4MDMgMjQzLjcxQzc0LjA2MDMgMjQxLjcyIDc0LjM0MDMgMjM5LjUyIDc0LjM0MDMgMjM3LjA1Qzc0LjM0MDMgMjI2LjczIDY4LjY0MDMgMjE4LjM5IDYxLjE5MDMgMjEwLjk3VjIxMC45NUM1Mi44NTAzIDIwMi42MiA0Mi4zMTAzIDE5NS40MyAzNS4xODAzIDE4Ny43OEMzMi40MTAzIDE4NC44MyAzMC4wMDAzIDE4MS41OSAyNy43MzAzIDE3OC4yNUMyNy4yODAzIDE3Ny41OSAyNi42NjAzIDE3Ny4wOCAyNS45NDAzIDE3Ni43NUMyNC42NDAzIDE3Ni4xNiAyMy4yNzAzIDE3NS41MyAyMS44NTAzIDE3NC45VjE3NC44OVoiIGZpbGw9IiNFQUMxOEIiPjwvcGF0aD48cGF0aCBkPSJNNTEuMTI5NCAyMzQuODgzTDUxLjEwOTQgMjM0LjkwM0M1Mi4zMjk0IDI0My44MzMgNTUuNjk5NCAyNTMuMTkzIDYyLjY0OTQgMjUzLjE5M0M2NS4yNTk0IDI1My4xOTMgNjcuOTc5NCAyNTEuNjUzIDcwLjY3OTQgMjQ5LjA4M0M2NC40ODk0IDI0Ny44NDMgNTcuNjk5NCAyNDIuMzYzIDUxLjExOTQgMjM0Ljg4M0g1MS4xMjk0WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik01My4xMjA1IDM1OS43MjFDNTIuODcwNSAzNjAuNzQxIDU0LjQ0MDUgMzYyLjU4MSA1NS4xNDA1IDM2My4zNTFDNTcuMTcwNSAzNjUuNTcxIDYxLjk2MDUgMzY2LjAzMSA2Ni44MjA1IDM2Ni4wMzFDNjguODcwNSAzNjYuMDMxIDcwLjk5MDUgMzY1Ljg2MSA3My4wMzA1IDM2NS44NjFDNzMuOTMwNSAzNjUuODYxIDc1LjM4MDUgMzY2LjA1MSA3Ny4yODA1IDM2Ni4zNzFWMzY2LjM1MUM3OC45OTA1IDM2MC4zMzEgODQuMjMwNSAzNTkuODAxIDEwNS44NyAzNDguNzYxQzEwNC4xMSAzNDUuMDUxIDEwMi4zIDM0MS4xOTEgMTAwLjUzIDMzNy4yODFDODIuODQwNSAzNDcuNDkxIDY4LjY0MDUgMzUzLjcxMSA1OC4xMzA1IDM1Ny41MjFDNTcuMTQwNSAzNTcuODgxIDUzLjM4MDUgMzU4LjcwMSA1My4xMzA1IDM1OS43MjFINTMuMTIwNVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNOTIuOTk5NSAyMTEuNzhDMTAxLjQ3OSAyMzAuMDQgODkuOTg5NSAyNDYuMjcgODQuMTQ5NSAyNjYuMTJDMTAzLjUwOSAyNjQuMTEgMTI0LjIwOSAyNTUuNzkgMTM3Ljc2OSAyNDMuNThDMTE3LjU3OSAyMTguNDMgMTAzLjIwOSAxODIuODkgOTUuMTc5NSAxNTEuNDNDOTAuNzQ5NSAxNTQuNjQgODQuNTk5NSAxNTcuNTkgNzguNjE5NSAxNjUuNjZDNzIuNzQ5NSAxNzMuNTggNjcuMTA5NSAxODYuNDYgNjMuMjc5NSAyMDkuMzVDNjMuMTY5NSAyMDkuOTggNjMuMDU5NSAyMTAuNzEgNjIuOTM5NSAyMTEuNTNWMjExLjU1QzcwLjM4OTUgMjE4Ljk2IDc2LjA4OTUgMjI3LjMxIDc2LjA4OTUgMjM3LjYzQzc2LjA4OTUgMjQwLjEgNzUuODA5NSAyNDIuMyA3NS4zMjk1IDI0NC4yOUM4Mi4wNjk1IDIzNS45MyA4OC40ODk1IDIyMi40MyA5Mi45OTk1IDIxMS43OVYyMTEuNzhaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBvcGFjaXR5PSIwLjIiPjxwYXRoIGQ9Ik05MS4yNSAyMDkuOTI5TDk4LjM0IDIwMS45NDlDOTguMzQgMjAxLjk0OSAxMDMuMDEgMjExLjMwOSA5Ni42MyAyMjkuMjg5IiBmaWxsPSIjM0I1MkExIj48L3BhdGg+PC9nPjxwYXRoIGQ9Ik03Ny4yNjk1IDM2Ni4zNDhWMzY2LjM2OEM4NS41NDk1IDM2Ny43MzggMTAyLjM3IDM3MS43MDggMTE4LjY3IDM3NC41NjhDMTE1LjU1IDM2OC40OTggMTEwLjg0IDM1OS4xOTggMTA1Ljg2IDM0OC43NThDODQuMjE5NSAzNTkuODA4IDc4Ljk3OTUgMzYwLjMyOCA3Ny4yNjk1IDM2Ni4zNDhaIiBmaWxsPSIjRUFDMThCIj48L3BhdGg+PHBhdGggZD0iTTE0OC4zOSAyOTMuNTlDMTUwLjcxIDMyMS40NCAxNTkuMzcgMzQ4LjkgMTYzLjg2IDM3Ni4zOUMxNjIuMDQgMzc2LjY2IDE2MC4yIDM3Ni45IDE1OC4zOCAzNzcuMDhIMTU4LjM2QzE1OC4zNyAzNzcuMjUgMTU4LjM3IDM3Ny40MyAxNTguMzkgMzc3LjZDMTUyLjA3IDM1NS45NSAxNDQuOTcgMzM1LjI3IDE0MC40OCAzMTIuODVDMTM5LjA0IDMwNS42NiAxNDQuMDcgMjk5LjM0IDE0OC4zOCAyOTMuNTlIMTQ4LjM5WiIgZmlsbD0iIzc2ODI4QyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMTcuODUgMzc1LjA3QzExNy44NSAzNzUuMDcgMTE3LjggMzc0Ljk4IDExNy43OSAzNzQuOTNIMTE3Ljc3QzExNC42NSAzNjguODYgMTA5Ljk0IDM1OS41NiAxMDQuOTYgMzQ5LjEyQzEwMy4yIDM0NS40MSAxMDEuMzkgMzQxLjU1IDk5LjYyIDMzNy42NEM5MC40OCAzMTcuNTcgODEuOTYgMjk2LjE1IDgxLjk2IDI4NS45NEM4MS45NiAyODUuNDEgODEuOTYgMjg0Ljg5IDgxLjk5IDI4NC4zOEM4My4yOSAyODQuNDEgODQuNTcgMjg0LjQzIDg1Ljg4IDI4NC40M0MxMTcuMDcgMjg0LjQzIDE0OC45MiAyNzIuNTggMTU3Ljg4IDI1NS44MkMxNjYuNTkgMjc0LjU0IDE3OC44MyAzMDUuOSAxODMuODIgMzQ5LjYzQzE4NS4zMyAzNjIuODEgMTc2LjEzIDM3NC44MSAxNjMuMDEgMzc2Ljc0QzE2Mi45OSAzNzYuNzQgMTYyLjk4IDM3Ni43NCAxNjIuOTYgMzc2Ljc0QzE1OC40NyAzNDkuMjYgMTQ5Ljc0IDMyMy45MiAxNDcuNDIgMjk2LjA3QzE0My4xIDMwMS44MyAxMzguMTUgMzA2LjAxIDEzOS41OCAzMTMuMkMxNDQuMDYgMzM1LjYyIDE1MS4xNiAzNTYuMyAxNTcuNDkgMzc3Ljk1QzE1OC4xNCAzODcgMTU2LjY5IDM5Ni4xMSAxNTMuMTggNDA0LjYzQzE0My4yNiA0MjguODIgMTMzLjg0IDQ1MS4zIDEyMy42NyA0NzguNDJDMTIxLjQgNDc5LjYxIDExOC44MiA0ODAuMzIgMTE1Ljc4IDQ4MC4zMkMxMDguNzIgNDgwLjMyIDEwMi4xNyA0NzUuOTggOTguMjIgNDY5LjkxQzEwNy41MyA0MjkuNDQgMTA2LjA1IDQwOC4yNCAxMTcuNSAzODguNTVDMTE5LjkxIDM4NC40MyAxMjAuMDMgMzc5LjMzIDExNy44NCAzNzUuMDZMMTE3Ljg1IDM3NS4wN1oiIGZpbGw9IiM4RDlCQTkiPjwvcGF0aD48cGF0aCBkPSJNOTUuNjA5NCAxMjAuMjMyQzk1LjYwOTQgMTI2Ljc1MiAxMDMuNDI5IDEzMS4zMjIgMTAzLjQyOSAxMzguODYyQzEwMy40MjkgMTQ1LjEyMiAxMDEuMjY5IDE0OC4xNzIgOTcuOTE5NCAxNTAuODIyQzEwNS45OTkgMTU3Ljg4MiAxMTUuMzQ5IDE2My41NjIgMTI1LjY4OSAxNjMuNTYyQzEzMS42NzkgMTYzLjU2MiAxMzYuNTE5IDE2MC4wNTIgMTM2LjUxOSAxNTMuNjMyQzEzNi41MTkgMTQ5LjQ3MiAxMzQuODk5IDE0Ny41MzIgMTMyLjgyOSAxNDMuNDAySDEzMi44MDlDMTMyLjA2OSAxNDEuOTIyIDEzMS4yNjkgMTQwLjE3MiAxMzAuNDQ5IDEzNy45MzJDMTM3LjUzOSAxMzcuMzEyIDE0MS4zODkgMTMxLjI3MiAxNDEuOTM5IDEyMy40NDJDMTQyLjc4OSAxMTEuNzMyIDEzNi4zNDkgOTYuMDIxOSAxMjIuNTk5IDg4LjQyMTlDMTE1LjQxOSA5NS4xMjE5IDExNS40MTkgMTA3LjI0MiAxMDkuODU5IDExMS45OTJDMTA1LjEyOSAxMTYuMDQyIDk1LjYxOTQgMTEwLjg2MiA5NS42MTk0IDEyMC4yMjJMOTUuNjA5NCAxMjAuMjMyWiIgZmlsbD0iI0VBQzE4QiI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC4yIj48cGF0aCBkPSJNMTE5LjYyIDEzOS4xMDNDMTE5LjYyIDEzOS4xMDMgMTMwLjY5IDE0Ni42MjMgMTMyLjY3IDE1NC44MDNDMTMyLjY3IDE1NC44MDMgMTM0Ljg1IDE1My4yNzMgMTM0LjExIDE0OC44NjNDMTMzLjM3IDE0NC40NTMgMTMwLjEyIDEzOS43MzIgMTMwLjEyIDEzOS43MzJMMTIzLjUyIDEzOC4zMTJMMTE5LjYzIDEzOS4xMDNIMTE5LjYyWiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMTMwLjQ0IDEzNy45MjlDMTMxLjI2IDE0MC4xNjkgMTMyLjA2IDE0MS45MTkgMTMyLjggMTQzLjM5OUgxMzIuODJDMTQxLjA3IDE0OC40OTkgMTQ4Ljg0IDE1Mi4zMzkgMTU2LjE4IDE1Ni40NDlDMTY5LjU0IDE2My45MzkgMTgxLjQ3IDE3Mi4yNjkgMTkyLjIzIDE5MC40MjlDMTg0Ljk5IDE3My4xODkgMTc0Ljk0IDE1Ny40MjkgMTYwLjU2IDE0NS44NDlDMTY4LjQ0IDEzNC43OTkgMTc2LjA3IDEyNS43OTkgMTgxLjA3IDEyMC4yNDlDMTgwLjc4IDExOC4yMDkgMTgwLjI4IDExNi4yMTkgMTc5LjU3IDExNC4yODlDMTc2LjM0IDEwNS4zNDkgMTY4LjkgOTcuODA5MiAxNTguNyA5NC45NDkyQzE1NS45IDEwNS4zMjkgMTQ5LjMyIDExNS4zNjkgMTQxLjkyIDEyMy40MzlDMTQxLjM2IDEzMS4yNjkgMTM3LjUyIDEzNy4zMDkgMTMwLjQzIDEzNy45MjlIMTMwLjQ0WiIgZmlsbD0iIzMyQ0ZGMCI+PC9wYXRoPjxwYXRoIGQ9Ik0xMTYuNjcgMzc2LjcyOEMxMTcuMDEgMzc2LjcyOCAxMTcuMzYgMzc2LjY0OCAxMTcuNjggMzc2LjQ4OEMxMTguNzcgMzc1Ljk0OCAxMTkuMTkgMzc0LjYzOCAxMTguNjQgMzczLjU3OEMxMTMuOTIgMzY0LjYxOCAxMDkuNTIgMzU1Ljk0OCAxMDUuNTUgMzQ3LjgyOEMxMDMuNTMgMzQzLjY3OCAxMDEuNzQgMzM5LjkzOCAxMDAuMDkgMzM2LjM4OEM4OC4zOSAzMTEuMzE4IDgyLjIgMjkzLjc0OCA4Mi4yIDI4NS41NzhDODIuMiAyODUuMDk4IDgyLjIgMjg0LjYxOCA4Mi4yMyAyODQuMTQ4QzgyLjM4IDI3OC42MzggODMuMzYgMjczLjAwOCA4NS4yMyAyNjYuODQ4Qzg2LjcyIDI2MS44OTggODguNiAyNTcuMTM4IDkwLjQxIDI1Mi41MjhDOTUuODkgMjM4LjU5OCAxMDEuMDcgMjI1LjQ0OCA5NC4xOCAyMTAuOTg4QzkzLjY2IDIwOS45MDggOTIuMzUgMjA5LjQzOCA5MS4yNCAyMDkuOTM4QzkwLjEzIDIxMC40MzggODkuNjUgMjExLjcyOCA5MC4xNyAyMTIuODA4Qzk2LjI2IDIyNS42MDggOTEuNjQgMjM3LjM2OCA4Ni4yOCAyNTAuOTg4Qzg0LjQ0IDI1NS42NzggODIuNTMgMjYwLjUyOCA4MC45OSAyNjUuNjM4Qzc5LjAyIDI3Mi4xNTggNzcuOTggMjc4LjE1OCA3Ny44MiAyODMuOTY4Qzc3Ljc5IDI4NC40NDggNzcuNzkgMjg1LjAxOCA3Ny43OSAyODUuNTg4Qzc3Ljc5IDI5NC40OTggODMuOTQgMzEyLjE5OCA5Ni4wOCAzMzguMTg4Qzk3Ljc0IDM0MS43NTggOTkuNTQgMzQ1LjUxOCAxMDEuNTcgMzQ5LjY5OEMxMDUuNTUgMzU3Ljg2OCAxMDkuOTggMzY2LjU2OCAxMTQuNzIgMzc1LjU2OEMxMTUuMTEgMzc2LjMwOCAxMTUuODkgMzc2LjczOCAxMTYuNjkgMzc2LjczOEwxMTYuNjcgMzc2LjcyOFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTU3LjM1OSAzNzkuMjI5QzE1Ny40MjkgMzc5LjIyOSAxNTcuNTA5IDM3OS4yMjkgMTU3LjU3OSAzNzkuMjE5QzE1OS41MTkgMzc5LjAyOSAxNjEuNDU5IDM3OC43ODkgMTYzLjM0OSAzNzguNTA5QzE3OC4wMzkgMzc2LjM5OSAxODguMjI5IDM2My40MzkgMTg2LjUyOSAzNDkuMDE5QzE4Mi41ODkgMzE1LjMxOSAxNzMuNTg5IDI4My41MjkgMTU5Ljc2OSAyNTQuNTM5QzE1OS4yNDkgMjUzLjQ1OSAxNTcuOTM5IDI1Mi45ODkgMTU2LjgyOSAyNTMuNDg5QzE1NS43MTkgMjUzLjk4OSAxNTUuMjM5IDI1NS4yNzkgMTU1Ljc1OSAyNTYuMzU5QzE2OS4zNzkgMjg0LjkyOSAxNzguMjQ5IDMxNi4yNTkgMTgyLjEzOSAzNDkuNTA5QzE4My41NTkgMzYxLjYwOSAxNzUuMDE5IDM3Mi40NjkgMTYyLjY5OSAzNzQuMjM5QzE2MC44NjkgMzc0LjUwOSAxNTguOTk5IDM3NC43MzkgMTU3LjEzOSAzNzQuOTE5QzE1NS45MjkgMzc1LjAzOSAxNTUuMDM5IDM3Ni4wOTkgMTU1LjE1OSAzNzcuMjc5QzE1NS4yNzkgMzc4LjM4OSAxNTYuMjM5IDM3OS4yMTkgMTU3LjM1OSAzNzkuMjE5VjM3OS4yMjlaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTExNi42NyAzNzYuNzMyQzExNy44OSAzNzYuNzMyIDExOC44OSAzNzUuNzYyIDExOC44OSAzNzQuNTcyQzExOC44OSAzNzMuNDcyIDExOC4wNSAzNzIuNTYyIDExNi45NiAzNzIuNDMyQzEwNy43NyAzNzAuODUyIDk4LjU4IDM2OC45NzIgOTAuNDUgMzY3LjMxMkM4NC4wMSAzNjUuOTkyIDc4LjQ1IDM2NC44NjIgNzQuNjIgMzY0LjI0MkM3Mi40MSAzNjMuODcyIDcwLjkxIDM2My43MDIgNjkuOSAzNjMuNzAyQzY4LjgzIDM2My43MDIgNjcuNzQgMzYzLjc0MiA2Ni42NCAzNjMuNzkyQzY1LjYgMzYzLjgzMiA2NC41NiAzNjMuODcyIDYzLjU0IDM2My44NzJDNTkuNDcgMzYzLjg3MiA1Ni43NSAzNjMuMDAyIDU0Ljk3IDM2MS4xMjJDNTQuNzYgMzYwLjg5MiA1NC42NyAzNjAuNTQyIDU0Ljc1IDM2MC4yMjJDNTQuODMgMzU5LjkxMiA1NS4wNiAzNTkuNjYyIDU1LjM3IDM1OS41NTJDNjkuMDcgMzU0LjY3MiA4My44IDM0Ny44MTIgOTkuMTcgMzM5LjE1MkMxMDAuMjMgMzM4LjU1MiAxMDAuNTkgMzM3LjIzMiA5OS45OCAzMzYuMjAyQzk5LjM3IDMzNS4xNzIgOTguMDIgMzM0LjgxMiA5Ni45NiAzMzUuNDEyQzgxLjgyIDM0My45NDIgNjcuMzIgMzUwLjcwMiA1My44NyAzNTUuNDkyQzUyLjE2IDM1Ni4wOTIgNTAuODggMzU3LjQ4MiA1MC40NSAzNTkuMjAyQzUwLjAzIDM2MC45MTIgNTAuNDkgMzYyLjcyMiA1MS43IDM2NC4wMzJDNTQuMzUgMzY2LjgzMiA1OC4yMiAzNjguMTkyIDYzLjUzIDM2OC4xOTJDNjQuNjIgMzY4LjE5MiA2NS43MiAzNjguMTUyIDY2LjgxIDM2OC4xMDJDNjcuODQgMzY4LjA2MiA2OC44OCAzNjguMDIyIDY5Ljg5IDM2OC4wMjJDNzAuNjIgMzY4LjAyMiA3MS45NiAzNjguMTgyIDczLjg3IDM2OC41MDJDNzcuNjEgMzY5LjExMiA4My4xMyAzNzAuMjQyIDg5LjUyIDM3MS41NDJDOTcuNyAzNzMuMjEyIDEwNi45OCAzNzUuMTEyIDExNi4yNyAzNzYuNzAyQzExNi40IDM3Ni43MjIgMTE2LjUyIDM3Ni43MzIgMTE2LjY1IDM3Ni43MzJIMTE2LjY3WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik03NC4yNTk4IDM2OC41MTFDNzUuMjE5OCAzNjguNTExIDc2LjEwOTggMzY3Ljg5MSA3Ni4zNzk4IDM2Ni45NDFDNzcuMzQ5OCAzNjMuNjIxIDc5LjU0OTggMzYyLjUwMSA4OS43Nzk4IDM1Ny43NTFDOTMuNjM5OCAzNTUuOTYxIDk4LjQ0OTggMzUzLjcyMSAxMDQuNTUgMzUwLjY4MUMxMDUuNjQgMzUwLjE0MSAxMDYuMDcgMzQ4Ljg0MSAxMDUuNTEgMzQ3Ljc4MUMxMDQuOTYgMzQ2LjcyMSAxMDMuNjIgMzQ2LjI5MSAxMDIuNTQgMzQ2Ljg0MUM5Ni40ODk4IDM0OS44NTEgOTEuNzA5OCAzNTIuMDcxIDg3Ljg3OTggMzUzLjg2MUM3Ny41Mzk4IDM1OC42NjEgNzMuNjc5OCAzNjAuNDYxIDcyLjEyOTggMzY1Ljc3MUM3MS43ODk4IDM2Ni45MjEgNzIuNDc5OCAzNjguMTExIDczLjY0OTggMzY4LjQ0MUM3My44NDk4IDM2OC41MDEgNzQuMDU5OCAzNjguNTIxIDc0LjI1OTggMzY4LjUyMVYzNjguNTExWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xNDAuNTEgMTI1LjZDMTQxLjExIDEyNS42IDE0MS43IDEyNS4zNiAxNDIuMTQgMTI0LjlDMTUwLjg5IDExNS41OSAxNTcuMTcgMTA1LjE2IDE1OS44MyA5NS41MkMxNjAuODQgOTEuODEgMTYxLjM1IDg4LjE5IDE2MS4zNSA4NC43NkMxNjEuMzUgODMuMTMgMTYxLjIgODAuNDYgMTYwLjk1IDc2LjY4QzE2MC44MiA3NC43MiAxNjAuNjYgNzIuNDkgMTYwLjQ5IDcwLjAyQzE1OS44IDYwLjIyIDE1OC44NiA0Ni43OSAxNTguMjYgMzEuNzlDMTU4LjI0IDMxLjE2IDE1Ny45MyAzMC41NyAxNTcuNDMgMzAuMThDMTU0LjYyIDI4IDE1Mi4wMyAyNi4yMSAxNDkuNzQgMjQuNjNDMTQyLjczIDE5Ljc5IDEzOS42MiAxNy40NSAxMzkuNDcgMTIuNjNDMTM5LjQ3IDEyLjU3IDEzOS40NyAxMi41MSAxMzkuNDYgMTIuNDZDMTM5LjQ2IDEyLjQgMTM5LjQ2IDEyLjMzIDEzOS40NiAxMi4yN0MxMzkuNDYgOS43MSAxMzkuOTYgNi44OCAxNDAuNDkgNC4zMUMxNjguMDEgNC4zNSAxNjguMjMgNi4wMSAxNzEuMjQgMjkuNDZDMTcxLjg5IDM0LjU2IDE3Mi42NCA0MC4zMyAxNzMuOCA0Ny4yOUMxNzQuNzQgNTIuOTggMTc2LjI3IDU4Ljg3IDE3Ny43NSA2NC41N0MxODAuMjMgNzQuMTQgMTgyLjc5IDg0LjA0IDE4Mi43OSA5My41NUMxODIuNzkgMTAyLjUgMTgwLjkgMTA3LjE3IDE3Ny4xOSAxMTMuMTZDMTc2LjU2IDExNC4xOCAxNzYuODkgMTE1LjUxIDE3Ny45NCAxMTYuMTJDMTc4Ljk4IDExNi43NCAxODAuMzQgMTE2LjQxIDE4MC45OCAxMTUuMzlDMTg1LjAzIDEwOC44NiAxODcuMjIgMTAzLjQ1IDE4Ny4yMiA5My41NEMxODcuMjIgODMuNjMgMTg0LjU5IDczLjMzIDE4Mi4wNCA2My41MUMxODAuNTIgNTcuNjQgMTc5LjA4IDUyLjEgMTc4LjE3IDQ2LjU5QzE3Ny4wMiAzOS43IDE3Ni4yOCAzMy45NyAxNzUuNjMgMjguOTFDMTcyLjMyIDMuMjggMTcwLjcgMCAxMzkuNTIgMEMxMzcuOTYgMCAxMzYuNjUgMS4wNCAxMzYuMzQgMi40OEMxMzUuNyA1LjQ5IDEzNS4wMSA4Ljk4IDEzNS4wMSAxMi4yOEMxMzUuMDEgMTIuNDYgMTM1LjAxIDEyLjY2IDEzNS4wMyAxMi44NUMxMzUuMjggMTkuOTggMTQwLjI3IDIzLjQyIDE0Ny4xNyAyOC4xN0MxNDkuMTkgMjkuNTYgMTUxLjQ2IDMxLjEzIDE1My44NyAzMi45NkMxNTQuNDcgNDcuNjIgMTU1LjM5IDYwLjcxIDE1Ni4wNiA3MC4zMkMxNTYuMjMgNzIuNzggMTU2LjM5IDc1IDE1Ni41MiA3Ni45NkMxNTYuNzUgODAuNTUgMTU2LjkxIDgzLjI1IDE1Ni45MSA4NC43NkMxNTYuOTEgODcuODIgMTU2LjQ1IDkxLjA2IDE1NS41NCA5NC40QzE1My4wNiAxMDMuMzggMTQ3LjE0IDExMy4xNyAxMzguODYgMTIxLjk4QzEzOC4wNCAxMjIuODYgMTM4LjEgMTI0LjIyIDEzOSAxMjUuMDNDMTM5LjQyIDEyNS40MSAxMzkuOTYgMTI1LjYgMTQwLjQ5IDEyNS42SDE0MC41MVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNNjIuNDA5NiAyNTQuMzUyQzY1LjUwOTYgMjU0LjM1MiA2OC43ODk2IDI1Mi43NzIgNzIuMTU5NiAyNDkuNjUyQzczLjQwOTYgMjQ4LjUwMiA3NC42Mjk2IDI0Ny4xODIgNzUuODA5NiAyNDUuNzMyQzgxLjUwOTYgMjM4LjgyMiA4Ny43MDk2IDIyNy43MjIgOTQuMjA5NiAyMTIuNzMyQzk1LjkxOTYgMjA4Ljc2MiA5Ny42Mzk2IDIwNC41ODIgOTkuMzE5NiAyMDAuMjgyQzk5Ljc0OTYgMTk5LjE3MiA5OS4xNzk2IDE5Ny45MjIgOTguMDM5NiAxOTcuNDkyQzk2Ljg5OTYgMTk3LjA3MiA5NS42MTk2IDE5Ny42MjIgOTUuMTg5NiAxOTguNzQyQzkzLjUyOTYgMjAyLjk5MiA5MS44Mjk2IDIwNy4xMzIgOTAuMTM5NiAyMTEuMDQyQzgzLjg3OTYgMjI1LjQ1MiA3Ny43Mjk2IDIzNi41MTIgNzIuMzQ5NiAyNDMuMDMyQzcxLjI4OTYgMjQ0LjM0MiA3MC4yMDk2IDI0NS41MDIgNjkuMTE5NiAyNDYuNTEyQzY2LjU5OTYgMjQ4Ljg1MiA2NC4zMzk2IDI1MC4wMzIgNjIuNDA5NiAyNTAuMDMyQzU1LjYwOTYgMjUwLjAzMiA1My4zMTk2IDIzNy40NjIgNTIuNzc5NiAyMzMuNjEyQzUyLjYwOTYgMjMyLjQzMiA1MS41MDk2IDIzMS42MTIgNTAuMjg5NiAyMzEuNzYyQzQ5LjA3OTYgMjMxLjkyMiA0OC4yMjk2IDIzMy4wMTIgNDguMzk5NiAyMzQuMTkyQzUwLjE4OTYgMjQ3LjAwMiA1NS4yOTk2IDI1NC4zNTIgNjIuNDA5NiAyNTQuMzUyWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik03MC42Mzk5IDI1MC4yMzlDNzEuNjY5OSAyNTAuMjM5IDcyLjU5OTkgMjQ5LjUyOSA3Mi43OTk5IDI0OC40OTlDNzMuMDM5OSAyNDcuMzI5IDcyLjI1OTkgMjQ2LjE4OSA3MS4wNTk5IDI0NS45NTlDNjUuNzk5OSAyNDQuOTM5IDU5LjI5OTkgMjQwLjI2OSA1Mi4yNDk5IDIzMi40NDlDNDIuMTU5OSAyMjEuMzE5IDMzLjYxOTkgMjA2Ljk0OSAyOS40Mjk5IDE5OS4zNjlDMjkuMTU5OSAxOTguODc5IDI4LjcwOTkgMTk4LjUxOSAyOC4xNjk5IDE5OC4zMzlDMjMuNjc5OSAxOTYuOTA5IDIwLjEwOTkgMTk2LjcyOSAxNy4yMjk5IDE5Ni41OTlDMTAuMzk5OSAxOTYuMjY5IDguMDk5ODkgMTk2LjE1OSA0LjQwOTg5IDE3Mi41NjlDNC4zNjk4OSAxNzIuMjc5IDQuNDc5ODkgMTcxLjk3OSA0LjcwOTg5IDE3MS43ODlDNC45MTk4OSAxNzEuNjE5IDUuMjM5ODkgMTcxLjU2OSA1LjUwOTg5IDE3MS42NjlDOS45Mzk4OSAxNzMuMjY5IDE0Ljg1OTkgMTc1LjI0OSAyMC4xNTk5IDE3Ny41MzlDMjEuNTk5OSAxNzguMTY5IDIyLjk5OTkgMTc4Ljc3OSAyNC4zMTk5IDE3OS4zNzlDMjQuNzI5OSAxNzkuNTU5IDI1LjAyOTkgMTc5Ljc5OSAyNS4yNDk5IDE4MC4xMjlDMjguMDc5OSAxODQuMTc5IDMwLjU2OTkgMTg3LjI5OSAzMy4wOTk5IDE4OS45MjlDMzcuMDM5OSAxOTQuMDQ5IDQxLjgxOTkgMTk3LjkyOSA0Ni44ODk5IDIwMi4wMjlDNTEuMjc5OSAyMDUuNTg5IDU1LjgxOTkgMjA5LjI2OSA1OS43OTk5IDIxMy4xNDlDNjAuNjY5OSAyMTMuOTg5IDYyLjA1OTkgMjEzLjk4OSA2Mi45Mjk5IDIxMy4xNDlDNjMuNzg5OSAyMTIuMzA5IDYzLjc4OTkgMjEwLjk0OSA2Mi45Mjk5IDIxMC4xMDlDNTguODA5OSAyMDYuMDg5IDU0LjE4OTkgMjAyLjMzOSA0OS43MTk5IDE5OC43MTlDNDQuNzY5OSAxOTQuNjk5IDQwLjA4OTkgMTkwLjkwOSAzNi4zMzk5IDE4Ni45ODlDMzMuOTM5OSAxODQuNDg5IDMxLjY0OTkgMTgxLjYyOSAyOC45MTk5IDE3Ny43MTlDMjguMjM5OSAxNzYuNzM5IDI3LjI4OTkgMTc1Ljk1OSAyNi4xNTk5IDE3NS40NjlDMjQuODQ5OSAxNzQuODc5IDIzLjQyOTkgMTc0LjI0OSAyMS45NTk5IDE3My42MTlDMTYuNTc5OSAxNzEuMjg5IDExLjU2OTkgMTY5LjI3OSA3LjA1OTg5IDE2Ny42NDlDNS4zMjk4OSAxNjcuMDE5IDMuMzQ5ODkgMTY3LjMyOSAxLjkwOTg5IDE2OC40NzlDMC40Nzk4ODggMTY5LjYyOSAtMC4yMzAxMTIgMTcxLjQ0OSAwLjAzOTg4ODMgMTczLjIzOUM0LjA2OTg5IDE5OS4wMDkgNy41NDk4OSAyMDAuNDc5IDE3LjAxOTkgMjAwLjkzOUMxOS41Njk5IDIwMS4wNTkgMjIuNDI5OSAyMDEuMTk5IDI1Ljk2OTkgMjAyLjIxOUMzMC4zODk5IDIxMC4xMjkgMzguODg5OSAyMjQuMjM5IDQ4LjkyOTkgMjM1LjMyOUM1Ni43Mjk5IDI0My45NzkgNjMuODc5OSAyNDguOTc5IDcwLjE4OTkgMjUwLjIwOUM3MC4zMzk5IDI1MC4yMzkgNzAuNDc5OSAyNTAuMjQ5IDcwLjYxOTkgMjUwLjI0OUw3MC42Mzk5IDI1MC4yMzlaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTc0LjA3IDI0Ni41NTNDNzUuMDcgMjQ2LjU1MyA3NS45NyAyNDUuODkzIDc2LjIyIDI0NC45MDNDNzYuNzggMjQyLjYxMyA3Ny4wNiAyNDAuMjczIDc3LjA2IDIzNy43NDNDNzcuMDYgMjI1LjMwMyA2OSAyMTYuMDIzIDYyLjk0IDIxMC4xMzNDNjIuMDcgMjA5LjI5MyA2MC42OCAyMDkuMzAzIDU5LjgxIDIxMC4xNDNDNTguOTUgMjEwLjk5MyA1OC45NSAyMTIuMzUzIDU5LjgxIDIxMy4xOTNDNjguNTUgMjIxLjY5MyA3Mi42MyAyMjkuNDkzIDcyLjYzIDIzNy43NDNDNzIuNjMgMjM5LjkzMyA3Mi40IDI0MS45NDMgNzEuOTIgMjQzLjg5M0M3MS42MyAyNDUuMDUzIDcyLjM2IDI0Ni4yMTMgNzMuNTUgMjQ2LjQ5M0M3My43MiAyNDYuNTMzIDczLjkgMjQ2LjU1MyA3NC4wNyAyNDYuNTUzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xOTIuMDI5IDE5Mi41ODlDMTkyLjMwOSAxOTIuNTg5IDE5Mi42MDkgMTkyLjUzOSAxOTIuODg5IDE5Mi40MTlDMTk0LjAxOSAxOTEuOTU5IDE5NC41NDkgMTkwLjY4OSAxOTQuMDY5IDE4OS41ODlDMTg1LjkwOSAxNzAuNjI5IDE3NS41OTkgMTU2LjE2OSAxNjIuNTg5IDE0NS40NTlDMTcwLjc2OSAxMzQuNDM5IDE3OC4zNDkgMTI1Ljg5OSAxODIuMjM5IDEyMS42ODlDMTgyLjY3OSAxMjEuMjA5IDE4Mi44NzkgMTIwLjU2OSAxODIuNzg5IDExOS45MzlDMTgyLjQ1OSAxMTcuNzI5IDE4MS45MDkgMTE1LjU2OSAxODEuMTM5IDExMy41MzlDMTc3LjQyOSAxMDMuNDk5IDE2OC44NzkgOTUuNzY4OSAxNTguMjc5IDkyLjg2ODlDMTU3LjA5OSA5Mi41NDg5IDE1NS44NzkgOTMuMjE4OSAxNTUuNTQ5IDk0LjM2ODlDMTU1LjIxOSA5NS41MTg5IDE1NS45MDkgOTYuNzA4OSAxNTcuMDc5IDk3LjAyODlDMTY2LjMwOSA5OS41NDg5IDE3My43MzkgMTA2LjI3OSAxNzYuOTc5IDExNS4wMTlDMTc3LjUyOSAxMTYuNDc5IDE3Ny45NDkgMTE4LjAwOSAxNzguMjM5IDExOS41NzlDMTczLjg5OSAxMjQuMzA5IDE2Ni4wNTkgMTMzLjI1OSAxNTcuNzc5IDE0NC41OTlDMTU3LjA5OSAxNDUuNTI5IDE1Ny4yNzkgMTQ2LjgxOSAxNTguMTg5IDE0Ny41MjlDMTcxLjM3OSAxNTcuODk5IDE4MS43NzkgMTcyLjIwOSAxODkuOTc5IDE5MS4yNjlDMTkwLjMzOSAxOTIuMDk5IDE5MS4xNTkgMTkyLjU4OSAxOTIuMDE5IDE5Mi41ODlIMTkyLjAyOVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMTU4LjMwOSAyMzUuMjM4QzE1OC41OTkgMjM1LjIzOCAxNTguODg5IDIzNS4xODggMTU5LjE2OSAyMzUuMDY4QzE3My43MTkgMjI5LjA4OCAxODcuMDQ5IDIxOC42OTggMTk5LjkxOSAyMDMuMjk4QzIwMC40NTkgMjAyLjY1OCAyMDAuNTY5IDIwMS43NzggMjAwLjIwOSAyMDEuMDI4QzE5OC4xNzkgMTk2Ljc2OCAxOTYuMTM5IDE5Mi45NjggMTkzLjk3OSAxODkuNDE4QzE5My45NTkgMTg5LjM4OCAxOTMuOTQ5IDE4OS4zNTggMTkzLjkyOSAxODkuMzM4QzE4MS45MjkgMTY5Ljk0OCAxNjguNzg5IDE2MS40NzggMTU2LjE2OSAxNTQuNTY4QzE1My42NTkgMTUzLjE5OCAxNTEuMDg5IDE1MS44NDggMTQ4LjQ3OSAxNTAuNDc4QzE0My4yNzkgMTQ3Ljc0OCAxMzcuODk5IDE0NC45MjggMTMyLjMxOSAxNDEuNTU4QzEzMS45NjkgMTQxLjM0OCAxMzEuNTY5IDE0MS4yMzggMTMxLjE1OSAxNDEuMjM4QzEyOS45MzkgMTQxLjIzOCAxMjguOTM5IDE0Mi4yMDggMTI4LjkzOSAxNDMuMzk4QzEyOC45MzkgMTQ0LjIzOCAxMjkuNDI5IDE0NC45NjggMTMwLjE0OSAxNDUuMzI4QzEzNS43ODkgMTQ4LjcxOCAxNDEuMTc5IDE1MS41NDggMTQ2LjM4OSAxNTQuMjg4QzE0OC45NzkgMTU1LjY0OCAxNTEuNTE5IDE1Ni45NzggMTU0LjAwOSAxNTguMzM4QzE2Ni4wODkgMTY0Ljk0OCAxNzguODE5IDE3Mi45NTggMTkwLjA4OSAxOTEuNDc4QzE5MC4xMDkgMTkxLjUwOCAxOTAuMTE5IDE5MS41MzggMTkwLjEzOSAxOTEuNTY4QzE5Mi4wMjkgMTk0LjY2OCAxOTMuODE5IDE5Ny45NjggMTk1LjU5OSAyMDEuNjI4QzE4My40NzkgMjE1Ljg4OCAxNzAuOTc5IDIyNS41MzggMTU3LjQzOSAyMzEuMDk4QzE1Ni4zMDkgMjMxLjU1OCAxNTUuNzg5IDIzMi44MjggMTU2LjI1OSAyMzMuOTI4QzE1Ni42MTkgMjM0Ljc0OCAxNTcuNDM5IDIzNS4yNDggMTU4LjI5OSAyMzUuMjQ4TDE1OC4zMDkgMjM1LjIzOFoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNODQuMDEgMjg2LjIyMUMxMTcuODggMjg2LjIyMSAxNTAuNDMgMjczLjQzMSAxNTkuNzIgMjU2LjQ3MUMxNjEuNTcgMjUzLjEwMSAxNjIuNTEgMjQ5LjU4MSAxNjIuNTEgMjQ2LjAxMUMxNjIuNTEgMjQyLjE4MSAxNjEuNjcgMjM4LjI1MSAxNjAuODUgMjM0LjQ1MUwxNjAuNDcgMjMyLjY1MUMxNTkuNzkgMjI5LjQwMSAxNTkuMzQgMjI2LjczMSAxNTkuMzQgMjI0LjI1MUMxNTkuMzYgMjE3Ljc3MSAxNTkuNzggMjExLjIyMSAxNjAuMTggMjA0Ljg4MUMxNjAuNiAxOTguMzAxIDE2MS4wMyAxOTEuNTAxIDE2MS4wMyAxODQuNzgxQzE2MS4wMyAxNzIuMTYxIDE1OS4xMSAxNjMuOTUxIDE1Ny40MSAxNTYuNzExTDE1Ny4yNCAxNTUuOTgxQzE1Ni45NyAxNTQuODIxIDE1NS43OSAxNTQuMDkxIDE1NC41OSAxNTQuMzYxQzE1My40IDE1NC42MzEgMTUyLjY2IDE1NS43ODEgMTUyLjkzIDE1Ni45NDFMMTUzLjEgMTU3LjY3MUMxNTQuODIgMTY1LjAzMSAxNTYuNjEgMTcyLjY0MSAxNTYuNjEgMTg0Ljc3MUMxNTYuNjEgMTkxLjM2MSAxNTYuMTggMTk4LjA5MSAxNTUuNzcgMjA0LjYwMUMxNTUuMzYgMjExLjAwMSAxNTQuOTQgMjE3LjYxMSAxNTQuOTIgMjI0LjE3MUMxNTQuOTIgMjI3LjA4MSAxNTUuNDEgMjMwLjAwMSAxNTYuMTQgMjMzLjUwMUwxNTYuNTMgMjM1LjMzMUMxNTcuMyAyMzguOTIxIDE1OC4wOSAyNDIuNjIxIDE1OC4wOSAyNDYuMDAxQzE1OC4wOSAyNDguODUxIDE1Ny4zMyAyNTEuNjgxIDE1NS44MiAyNTQuNDIxQzE0Ny4zOCAyNjkuODMxIDExNS44NCAyODEuODkxIDg0LjAxIDI4MS44OTFDODIuNjggMjgxLjg5MSA4MS4zOSAyODEuODcxIDgwLjA3IDI4MS44NDFMODAgMjg2LjE2MUM4MS4zMSAyODYuMTkxIDgyLjY0IDI4Ni4yMTEgODQgMjg2LjIxMUw4NC4wMSAyODYuMjIxWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik04My4wODk2IDI2OC4zOTJDODMuMTY5NiAyNjguMzkyIDgzLjI1OTcgMjY4LjM5MiA4My4zMjk3IDI2OC4zODJDMTA0LjE4IDI2Ni4yNzIgMTI1LjcgMjU3LjQyMiAxMzkuNTEgMjQ1LjMwMkMxNDAuMzggMjQ0LjUzMiAxNDAuNDkgMjQzLjI0MiAxMzkuNzYgMjQyLjM0MkMxMjEuNzYgMjIwLjQ1MiAxMDYuMDEgMTg3LjE2MiA5Ni41NDk3IDE1MS4wMTJDOTYuMjQ5NyAxNDkuODUyIDk1LjAzOTYgMTQ5LjE1MiA5My44NTk2IDE0OS40NTJDOTIuNjc5NiAxNDkuNzQyIDkxLjk1OTYgMTUwLjkyMiA5Mi4yNjk2IDE1Mi4wNzJDMTAxLjY1IDE4Ny45MjIgMTE3LjE3IDIyMS4wNTIgMTM1IDI0My40MTJDMTIxLjgzIDI1NC4yNzIgMTAyLjA5IDI2Mi4xMzIgODIuOTA5NyAyNjQuMDcyQzgxLjc3OTcgMjY0LjE3MiA4MC44ODk2IDI2NS4wOTIgODAuODg5NiAyNjYuMjIyQzgwLjg4OTYgMjY3LjQxMiA4MS44Njk2IDI2OC4zODIgODMuMDg5NiAyNjguMzgyVjI2OC4zOTJaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTgyLjk4OTUgNTEyLjkyQzgzLjIyOTUgNTA4LjQgODQuMTc5NSA1MDUuODcgODUuMTc5NSA1MDMuMTlDODUuNjI5NSA1MDEuOTggODYuMDk5NSA1MDAuNzMgODYuNTA5NSA0OTkuMjRDODYuODE5NSA0OTguMTEgODcuMDQ5NSA0OTcuMDMgODcuMjU5NSA0OTUuODVDODcuMjc5NSA0OTUuNzYgODcuMjk5NSA0OTUuNjggODcuMzE5NSA0OTUuNTlDOTAuMDc5NSA0ODYuNTUgOTIuNDI5NSA0NzcuODggOTQuNDk5NSA0NjkuMDdDOTguMDA5NSA0NTQuMTggOTkuOTk5NSA0NDIuMDUgMTAxLjc0OSA0MzEuMzRDMTA0LjczOSA0MTMuMDcgMTA2Ljg5OSAzOTkuODcgMTE0LjQ5OSAzODcuMUMxMTYuNTg5IDM4My42MSAxMTYuNzA5IDM3OS4zNyAxMTQuODE5IDM3NS43NUMxMTQuNjg5IDM3NS41MyAxMTQuNjI5IDM3NS4zNCAxMTQuNTk5IDM3NS4yNUMxMTQuMjA5IDM3NC4xMiAxMTQuODM5IDM3Mi45MSAxMTUuOTk5IDM3Mi41M0MxMTcuMDk5IDM3Mi4xNyAxMTguMjk5IDM3Mi43MSAxMTguNzM5IDM3My43NUMxMjEuMzM5IDM3OC43IDEyMS4xNzkgMzg0LjUxIDExOC4zMTkgMzg5LjI4QzExMS4xMjkgNDAxLjM1IDEwOS4wMjkgNDE0LjIyIDEwNi4xMTkgNDMyLjAzQzEwNC4zNTkgNDQyLjggMTAyLjM1OSA0NTUuMDIgOTguODE5NSA0NzAuMDVDOTYuNzI5NSA0NzguOTEgOTQuMzc5NSA0ODcuNjMgOTEuNjA5NSA0OTYuN0M5MS4zODk1IDQ5Ny45NSA5MS4xMTk1IDQ5OS4xNSA5MC43OTk1IDUwMC4zNkM5MC4zMjk1IDUwMi4wNCA4OS44Mjk1IDUwMy4zOCA4OS4zNDk1IDUwNC42OEM4OC40Mjk1IDUwNy4xNSA4Ny42Mjk1IDUwOS4yOCA4Ny40MTk1IDUxMy4xNUM4Ny4zNTk1IDUxNC4zMSA4Ny4zNDk1IDUxNS41NSA4Ny4zODk1IDUxNi45MkM4Ny40Nzk1IDUxOS41IDg4LjgyOTUgNTIxLjkxIDkwLjk5OTUgNTIzLjM1Qzk1Ljc1OTUgNTI2LjUyIDk5LjMzOTUgNTMwLjg4IDEwMy4xMTkgNTM1LjVDMTA3LjAzOSA1NDAuMjggMTExLjA4OSA1NDUuMjEgMTE2LjYwOSA1NDguODFDMTI1LjIwOSA1NTQuNDEgMTM3LjU4OSA1NTAuODQgMTQyLjUxOSA1NDkuMDRDMTQzLjgwOSA1NDguNTggMTQ0LjYzOSA1NDcuMzcgMTQ0LjU4OSA1NDYuMDJMMTQ0LjUwOSA1NDMuNjFDMTQ0LjQ3OSA1NDIuNTUgMTQ0LjEzOSA1NDEuNTEgMTQzLjUxOSA1NDAuNThDMTQzLjA1OSA1MzkuODYgMTQyLjQ1OSA1MzkuMjcgMTQxLjczOSA1MzguODJMMTMyLjAxOSA1MzIuNjlDMTI4LjcwOSA1MzAuNiAxMjYuMDY5IDUyNy42NyAxMjQuMzc5IDUyNC4yM0wxMTQuODE5IDUwNC44N0MxMTMuMjA5IDUwMS42IDExMy4wMDkgNDk3Ljc4IDExNC4yNTkgNDk0LjM5QzExNi4zNDkgNDg4LjcxIDExOC41MDkgNDgyLjk3IDEyMC42NzkgNDc3LjMyQzEyOS41MTkgNDU0LjI4IDEzNy42ODkgNDM0LjkgMTQ2LjMyOSA0MTQuMzlMMTUwLjkyOSA0MDMuNDdDMTU0LjQxOSAzOTUuMTcgMTU1Ljg3OSAzODYuMTEgMTU1LjE0OSAzNzcuMjZDMTU0Ljg2OSAzNzMuODMgMTU0LjI2OSAzNzAuNCAxNTMuMzY5IDM2Ny4wOEMxNDguMzU5IDM0OC42OCAxNDMuNDk5IDMzMy4zMyAxMzguODA5IDMxOC40OUwxMzYuMDQ5IDMwOS43NEMxMzUuODc5IDMwOS4yIDEzNS45MjkgMzA4LjYxIDEzNi4yMDkgMzA4LjFMMTQyLjY3OSAyOTYuMDlMMTQ2LjY4OSAyOTcuOTFMMTQwLjUzOSAzMDkuMzJMMTQzLjAyOSAzMTcuMjFDMTQ3LjczOSAzMzIuMDkgMTUyLjU5OSAzNDcuNDggMTU3LjYzOSAzNjUuOTZDMTU4LjYxOSAzNjkuNTMgMTU5LjI1OSAzNzMuMjIgMTU5LjU1OSAzNzYuOTFDMTYwLjMzOSAzODYuNDMgMTU4Ljc2OSAzOTYuMTggMTU1LjAxOSA0MDUuMUwxNTAuNDE5IDQxNi4wM0MxNDEuNzg5IDQzNi41MSAxMzMuNjM5IDQ1NS44NiAxMjQuODE5IDQ3OC44NEMxMjIuNjU5IDQ4NC40NiAxMjAuNDk5IDQ5MC4xOSAxMTguNDE5IDQ5NS44NUMxMTcuNTY5IDQ5OC4xNiAxMTcuNzA5IDUwMC43NyAxMTguODA5IDUwM0wxMjguMzY5IDUyMi4zNkMxMjkuNzA5IDUyNS4wOSAxMzEuODA5IDUyNy40MSAxMzQuNDI5IDUyOS4wN0wxNDQuMTM5IDUzNS4yQzE0NS40MDkgNTM1Ljk5IDE0Ni40NTkgNTM3LjAzIDE0Ny4yNDkgNTM4LjI2QzE0OC4yODkgNTM5LjgyIDE0OC44NzkgNTQxLjYzIDE0OC45MzkgNTQzLjQ4TDE0OS4wMTkgNTQ1Ljg4QzE0OS4xMjkgNTQ5LjA4IDE0Ny4xMzkgNTUxLjk4IDE0NC4wNjkgNTUzLjA5QzE0MC4xNTkgNTU0LjUxIDEzNC4yNjkgNTU2LjE4IDEyOC4wOTkgNTU2LjE4QzEyMy4zNjkgNTU2LjE4IDExOC40NzkgNTU1LjIxIDExNC4xNjkgNTUyLjRDMTA4LjA3OSA1NDguNDMgMTAzLjgwOSA1NDMuMjMgOTkuNjc5NSA1MzguMTlDOTYuMDk5NSA1MzMuODMgOTIuNzI5NSA1MjkuNzIgODguNTE5NSA1MjYuOTFDODUuMTc5NSA1MjQuNyA4My4xMDk1IDUyMS4wMSA4Mi45Nzk1IDUxNy4wNUM4Mi45Mjk1IDUxNS41NSA4Mi45Mzk1IDUxNC4yIDgzLjAwOTUgNTEyLjkySDgyLjk4OTVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIwLjE2MDQgMTg5LjA2N0MyMC4xODA0IDE4Ny40MDcgMjAuMjMwNCAxODQuNzg3IDIwLjIzMDQgMTg0LjAzN0MyMC4yMzA0IDE4MS4zOTcgMjAuMTQwNCAxNzkuMDA3IDE5LjA0MDQgMTc2LjQxN0MxOC41NzA0IDE3NS4zMTcgMTkuMTAwNCAxNzQuMDU3IDIwLjIzMDQgMTczLjU5N0MyMS4zNjA0IDE3My4xMzcgMjIuNjUwNCAxNzMuNjU3IDIzLjEyMDQgMTc0Ljc1N0MyNC41MzA0IDE3OC4wNzcgMjQuNjUwNCAxODEuMTU3IDI0LjY1MDQgMTg0LjAzN0MyNC42NTA0IDE4NC44OTcgMjQuNTkwNCAxODguMTY3IDI0LjU4MDQgMTg5LjY5N0MyMy4yNTA0IDE4OS41MDcgMjEuNTcwNCAxODkuMjY3IDIwLjE3MDQgMTg5LjA2N0gyMC4xNjA0WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMzcuMjQ5IDEwLjU1MDhDMTM3LjU3OSAxMC41NTA4IDEzNy45MDkgMTAuNjIwOCAxMzguMjA5IDEwLjc2MDhDMTQ2LjUyOSAxNC42ODA4IDE1NS44NzkgMTguNTMwOCAxNTguNTU5IDE5LjYwMDhDMTU4Ljg1OSAxOC45MDA4IDE1OC45OTkgMTcuMjQwOCAxNTkuMDY5IDE2LjI4MDhDMTU5LjE0OSAxNS4zNjA4IDE1OS4yMjkgMTQuNDgwOCAxNTkuMzc5IDEzLjY2MDhMMTYzLjY0OSAxNC44OTA4QzE2My41NzkgMTUuNDEwOCAxNjMuNTE5IDE2LjAyMDggMTYzLjQ3OSAxNi42MjA4QzE2My4yNDkgMTkuNDEwOCAxNjIuODc5IDI0LjA3MDggMTU4LjU0OSAyNC4wNzA4QzE1Ny4zMTkgMjQuMDcwOCAxNDEuNDk5IDE3LjEwMDggMTM2LjQzOSAxNC43MjA4QzEzNS42MTkgMTQuNDEwOCAxMzUuMDI5IDEzLjYyMDggMTM1LjAyOSAxMi43MTA4QzEzNS4wMjkgMTEuNTIwOCAxMzYuMDI5IDEwLjU1MDggMTM3LjI0OSAxMC41NTA4WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjMuODYgMTY1LjcxQzEzMS42OSAxNjUuNzEgMTM3LjE2IDE2MC43NCAxMzcuMTYgMTUzLjYyQzEzNy4xNiAxNDkuNzcgMTM1LjkyIDE0Ny41MiAxMzQuMzUgMTQ0LjY3QzEzMy45NyAxNDMuOTkgMTMzLjU3IDE0My4yNSAxMzMuMTQgMTQyLjQyQzEzMi41OSAxNDEuMzUgMTMxLjI2IDE0MC45MiAxMzAuMTcgMTQxLjQ2QzEyOS4wOCAxNDEuOTkgMTI4LjY0IDE0My4yOSAxMjkuMTkgMTQ0LjM2QzEyOS42MyAxNDUuMjMgMTMwLjA2IDE0NiAxMzAuNDYgMTQ2LjcxQzEzMS44OCAxNDkuMjkgMTMyLjc0IDE1MC44NSAxMzIuNzQgMTUzLjYxQzEzMi43NCAxNTkuMzQgMTI4LjE1IDE2MS4zOCAxMjMuODYgMTYxLjM4QzExNS4zMyAxNjEuMzggMTA2LjQ5IDE1Ny4zOSA5Ni44NjAyIDE0OS4xN0M5NS45NDAyIDE0OC4zOCA5NC41NDAyIDE0OC40OCA5My43NDAyIDE0OS4zOEM5Mi45NDAyIDE1MC4yOCA5My4wMzAyIDE1MS42NCA5My45NTAyIDE1Mi40MkMxMDQuNDIgMTYxLjM1IDExNC4yMSAxNjUuNyAxMjMuODYgMTY1LjdWMTY1LjcxWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik02MS4zODAyIDIxMy44MTFDNjIuNTMwMiAyMTMuODExIDYzLjQ3MDIgMjEyLjk3MSA2My41ODAyIDIxMS44ODFDNjMuNTgwMiAyMTEuODgxIDYzLjgxMDIgMjEwLjM5MSA2My45MTAyIDIwOS44MzFDNjcuMTkwMiAxOTAuMzAxIDcyLjIwMDIgMTc2LjMyMSA3OS4yMjAyIDE2Ny4wNzFDODMuODIwMiAxNjEuMDExIDg4LjQ2MDIgMTU4LjAzMSA5Mi41NDAyIDE1NS40MDFDOTMuNjYwMiAxNTQuNjgxIDk0LjcyMDIgMTU0LjAwMSA5NS43MDAyIDE1My4zMDFDOTYuMDgwMiAxNTMuMDMxIDk2LjQ0MDIgMTUyLjc2MSA5Ni43ODAyIDE1Mi41MDFDMTAwLjE0IDE0OS45MjEgMTAzLjI2IDE0Ni40NzEgMTAzLjI2IDEzOC44NjFDMTAzLjI2IDEzNC4yOTEgMTAwLjgyIDEzMC43NjEgOTguNjYwMiAxMjcuNjQxQzk2LjgzMDIgMTI1LjAwMSA5NS4yNTAyIDEyMi43MTEgOTUuMjUwMiAxMjAuMjMxQzk1LjI1MDIgMTE2LjY0MSA5Ni41MDAyIDExNi4zOTEgMTAwLjg0IDExNi4wODFDMTAzLjU2IDExNS44ODEgMTA2LjY1IDExNS42NjEgMTA5LjA3IDExMy42NDFDMTEyLjIxIDExMS4wMjEgMTEzLjc0IDEwNi44MjEgMTE1LjM2IDEwMi4zOTFDMTE2LjgyIDk4LjM4MDkgMTE4LjMzIDk0LjI1MDkgMTIxLjA3IDkxLjE1MDlDMTMzLjQgOTguNjEwOSAxMzkuMDggMTEyLjc2MSAxMzguMjkgMTIzLjI5MUMxMzguMDMgMTI2LjgyMSAxMzYuNTcgMTM1LjEwMSAxMjguNTMgMTM1Ljc5MUMxMjcuODQgMTM1Ljg1MSAxMjcuMjMgMTM2LjIxMSAxMjYuODYgMTM2Ljc4MUMxMjYuNDkgMTM3LjM1MSAxMjYuNDEgMTM4LjA1MSAxMjYuNjUgMTM4LjY4MUMxMjcuNjEgMTQxLjI1MSAxMjguNTUgMTQzLjE2MSAxMjkuMTcgMTQ0LjM3MUMxMjkuNzIgMTQ1LjQ0MSAxMzEuMDUgMTQ1Ljg3MSAxMzIuMTQgMTQ1LjM0MUMxMzMuMjMgMTQ0LjgxMSAxMzMuNjggMTQzLjUxMSAxMzMuMTMgMTQyLjQ1MUMxMzIuNjIgMTQxLjQ2MSAxMzIuMTggMTQwLjUyMSAxMzEuNzcgMTM5LjU4MUMxMzguMDEgMTM3Ljc4MSAxNDIuMTEgMTMxLjkxMSAxNDIuNzEgMTIzLjYxMUMxNDMuNjMgMTExLjMxMSAxMzYuNzIgOTQuNjIwOSAxMjEuNzYgODYuNTUwOUMxMjAuOTMgODYuMTAwOSAxMTkuODggODYuMjIwOSAxMTkuMTggODYuODYwOUMxMTQuOTEgOTAuNzUwOSAxMTIuOTMgOTYuMTcwOSAxMTEuMTkgMTAwLjk1MUMxMDkuNzggMTA0LjgzMSAxMDguNDQgMTA4LjUwMSAxMDYuMTkgMTEwLjM3MUMxMDQuODcgMTExLjQ3MSAxMDIuNzUgMTExLjYzMSAxMDAuNTEgMTExLjc5MUM5Ni42NTAyIDExMi4wNzEgOTAuODMwMiAxMTIuNDkxIDkwLjgzMDIgMTIwLjI0MUM5MC44MzAyIDEyNC4wNDEgOTIuOTUwMiAxMjcuMTAxIDk0Ljk5MDIgMTMwLjA2MUM5Ni45NzAyIDEzMi45MjEgOTguODMwMiAxMzUuNjIxIDk4LjgzMDIgMTM4Ljg3MUM5OC44MzAyIDE0NC4zMzEgOTYuOTkwMiAxNDYuODUxIDk0LjAyMDIgMTQ5LjEzMUM5My43MjAyIDE0OS4zNzEgOTMuNDEwMiAxNDkuNTkxIDkzLjA5MDIgMTQ5LjgyMUM5Mi4xNjAyIDE1MC40ODEgOTEuMTYwMiAxNTEuMTIxIDkwLjA5MDIgMTUxLjgxMUM4NS45MTAyIDE1NC40OTEgODAuNzIwMiAxNTcuODQxIDc1LjY1MDIgMTY0LjUxMUM2OC4yMDAyIDE3NC4zMzEgNjIuOTIwMiAxODguOTMxIDU5LjUzMDIgMjA5LjEzMUM1OS40MzAyIDIwOS43MDEgNTkuMTgwMiAyMTEuMzMxIDU5LjE4MDIgMjExLjMzMUM1OS4xNjAyIDIxMS40NDEgNTkuMTYwMiAyMTEuNTQxIDU5LjE2MDIgMjExLjY1MUM1OS4xNjAyIDIxMi44NDEgNjAuMTUwMiAyMTMuODIxIDYxLjM3MDIgMjEzLjgyMUw2MS4zODAyIDIxMy44MTFaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTEyNy4xIDEzOS45MjFDMTIyLjk4IDEzOS45MjEgMTE5LjI3IDEzOS4wMzEgMTE5LjA1IDEzOC45ODFMMTIwLjA1IDEzNC44OTFDMTIwLjEyIDEzNC45MTEgMTI2LjcgMTM2LjQ4MSAxMzEuMjMgMTM1LjI1MUwxMzIuMzMgMTM5LjMxMUMxMzAuNjcgMTM5Ljc2MSAxMjguODUgMTM5LjkyMSAxMjcuMSAxMzkuOTIxWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik0xMDAuODMgMTMxLjI5MUMxMDMuMjQgMTMxLjI5MSAxMDUuNDcgMTMwLjQ0MSAxMDYuNzggMTI5LjY2MUwxMDQuODMgMTI2LjM5MUwxMDUuODEgMTI4LjAzMUwxMDQuODQgMTI2LjM5MUMxMDQuNjUgMTI2LjUwMSAxMDAuMjEgMTI5LjA1MSA5Ny4yOTk2IDEyNi4wMzFMOTQuNTU5NiAxMjguNjgxQzk2LjQ0OTYgMTMwLjYzMSA5OC43MDk2IDEzMS4yOTEgMTAwLjg0IDEzMS4yOTFIMTAwLjgzWiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjxwYXRoIGQ9Ik03Ny4wOTA1IDc2LjA0MDhDNzcuODkwNSA3NS4yNDA4IDc4Ljk1MDUgNzQuODAwOCA4MC4wODA1IDc0LjgwMDhDODEuMjEwNSA3NC44MDA4IDgyLjI0MDUgNzUuMjMwOCA4My4wNDA1IDc2LjAxMDhMODcuNTIwNSA4MC40MzA4Qzg5LjE0MDUgODIuMDMwOCA4OS4xODA1IDg0LjY4MDggODcuNjAwNSA4Ni4zNDA4Qzg3LjU1MDUgODYuNDAwOCA4Mi4xNzA1IDkyLjIwMDggODEuODcwNSAxMDAuMjcxQzgxLjc5MDUgMTAyLjU0MSA3OS45NDA1IDEwNC4zMjEgNzcuNjcwNSAxMDQuMzIxQzc3LjY0MDUgMTA0LjMyMSA3Ny42MTA1IDEwNC4zMjEgNzEuMjMwNSAxMDQuMDgxQzcwLjExMDUgMTA0LjA0MSA2OS4wNzA1IDEwMy41NjEgNjguMzAwNSAxMDIuNzQxQzY3LjU0MDUgMTAxLjkyMSA2Ny4xNDA1IDEwMC44NDEgNjcuMTgwNSA5OS43MjA4QzY3LjcxMDUgODUuNjUwOCA3Ni43MjA1IDc2LjQzMDggNzcuMTEwNSA3Ni4wNDA4SDc3LjA5MDVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTc3LjY2MDEgMTAwLjExMkM3OC4wMzAxIDkwLjIyMTcgODQuNDkwMSA4My40OTE3IDg0LjU1MDEgODMuNDMxN0w4MC4wNzAxIDc5LjAxMTdDNzkuNzMwMSA3OS4zNTE3IDcxLjgzMDEgODcuNDcxNyA3MS4zNzAxIDk5Ljg4MTdMNzcuNjYwMSAxMDAuMTEyWiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxnIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMjk4Ljk2IDEwOS44NjZDMzE1LjIyNSAxMDkuODY2IDMyOC40MSAxMDUuODQ2IDMyOC40MSAxMDAuODg2QzMyOC40MSA5NS45MjY3IDMxNS4yMjUgOTEuOTA2MiAyOTguOTYgOTEuOTA2MkMyODIuNjk1IDkxLjkwNjIgMjY5LjUxIDk1LjkyNjcgMjY5LjUxIDEwMC44ODZDMjY5LjUxIDEwNS44NDYgMjgyLjY5NSAxMDkuODY2IDI5OC45NiAxMDkuODY2WiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMzE2Ljk3OSA3Ny44NjE2QzMxNi45NzkgNzcuNzUxNiAzMTYuOTg5IDc3LjY0MTYgMzE2Ljk5OSA3Ny41NDE2QzMxNy4wMTkgNzcuMzExNiAzMTcuMDI5IDc3LjA4MTYgMzE3LjA0OSA3Ni44NTE2QzMxNy4wNjkgNzYuNTgxNiAzMTcuMDg5IDc2LjMxMTYgMzE3LjA5OSA3Ni4wNDE2QzMxNy4xMDkgNzUuODMxNiAzMTcuMTA5IDc1LjYyMTYgMzE3LjExOSA3NS40MTE2QzMxNy4xMTkgNzUuMTYxNiAzMTcuMTM5IDc0LjkyMTYgMzE3LjEzOSA3NC42NzE2QzMxNy4xMzkgNzQuNTExNiAzMTcuMTQ5IDc0LjM1MTYgMzE3LjE1OSA3NC4xOTE2QzMxNy4xNTkgNzMuODQxNiAzMTcuMTU5IDczLjQ5MTYgMzE3LjE1OSA3My4xMzE2QzMxNy4xNTkgNzIuOTMxNiAzMTcuMTU5IDcyLjcyMTYgMzE3LjE1OSA3Mi41MjE2QzMxNy4xNTkgNzIuNDUxNiAzMTcuMTU5IDcyLjM5MTYgMzE3LjE1OSA3Mi4zMjE2QzMxNy4xNTkgNzEuNjgxNiAzMTcuMTI5IDcxLjA0MTYgMzE3LjEwOSA3MC40MDE2QzMxNy4xMDkgNzAuMzkxNiAzMTcuMTA5IDcwLjM3MTYgMzE3LjEwOSA3MC4zNjE2QzMxNy4xMDkgNzAuMjcxNiAzMTcuMDk5IDcwLjE3MTYgMzE3LjA4OSA3MC4wODE2QzMxNy4wNTkgNjkuNTQxNiAzMTcuMDM5IDY5LjAxMTYgMzE2Ljk5OSA2OC40NzE2QzMxNi45OTkgNjguMzcxNiAzMTYuOTc5IDY4LjI3MTYgMzE2Ljk2OSA2OC4xODE2QzMxNi45NDkgNjcuOTIxNiAzMTYuOTI5IDY3LjY2MTYgMzE2Ljg5OSA2Ny40MTE2QzMxNi44NjkgNjcuMTAxNiAzMTYuODQ5IDY2Ljc4MTYgMzE2LjgxOSA2Ni40NzE2QzMxNi43OTkgNjYuMjkxNiAzMTYuNzc5IDY2LjEyMTYgMzE2Ljc1OSA2NS45NDE2QzMxNi43MjkgNjUuNjYxNiAzMTYuNjk5IDY1LjM4MTYgMzE2LjY1OSA2NS4wOTE2QzMxNi42MjkgNjQuODcxNiAzMTYuNjA5IDY0LjY2MTYgMzE2LjU3OSA2NC40NDE2QzMxNi41NDkgNjQuMTgxNiAzMTYuNDk5IDYzLjkxMTYgMzE2LjQ2OSA2My42NTE2QzMxNi40MjkgNjMuMzcxNiAzMTYuMzg5IDYzLjA5MTYgMzE2LjM0OSA2Mi44MDE2QzMxNi4zMjkgNjIuNjYxNiAzMTYuMzA5IDYyLjUyMTYgMzE2LjI4OSA2Mi4zODE2QzMxNi4yMjkgNjIuMDAxNiAzMTYuMTU5IDYxLjYzMTYgMzE2LjA4OSA2MS4yNTE2QzMxNi4wNDkgNjEuMDExNiAzMTYuMDA5IDYwLjc3MTYgMzE1Ljk1OSA2MC41MzE2QzMxNS45NDkgNjAuNDYxNiAzMTUuOTM5IDYwLjM5MTYgMzE1LjkxOSA2MC4zMzE2QzMxNS43ODkgNTkuNjYxNiAzMTUuNjU5IDU4Ljk4MTYgMzE1LjUxOSA1OC4zMTE2QzMxNS41MTkgNTguMzExNiAzMTUuNTE5IDU4LjI5MTYgMzE1LjUxOSA1OC4yODE2QzMxNS41MDkgNTguMjIxNiAzMTUuNDg5IDU4LjE1MTYgMzE1LjQ3OSA1OC4wOTE2QzMxNS4zNDkgNTcuNTAxNiAzMTUuMjE5IDU2LjkwMTYgMzE1LjA3OSA1Ni4zMTE2QzMxNS4wNTkgNTYuMjIxNiAzMTUuMDI5IDU2LjEyMTYgMzE1LjAwOSA1Ni4wMzE2QzMxNC45NTkgNTUuODAxNiAzMTQuODk5IDU1LjU4MTYgMzE0LjgzOSA1NS4zNTE2QzMxNC43NTkgNTUuMDMxNiAzMTQuNjc5IDU0LjcxMTYgMzE0LjU5OSA1NC4zOTE2QzMxNC41NDkgNTQuMTgxNiAzMTQuNDg5IDUzLjk4MTYgMzE0LjQyOSA1My43NzE2QzMxNC4zNTkgNTMuNTIxNiAzMTQuMjg5IDUzLjI3MTYgMzE0LjIxOSA1My4wMjE2QzMxNC4xNjkgNTIuODQxNiAzMTQuMTE5IDUyLjY2MTYgMzE0LjA2OSA1Mi40NzE2QzMxMy45NTkgNTIuMTExNiAzMTMuODQ5IDUxLjc0MTYgMzEzLjczOSA1MS4zODE2QzMxMy42NzkgNTEuMTkxNiAzMTMuNjE5IDUwLjk5MTYgMzEzLjU1OSA1MC44MDE2QzMxMy41MzkgNTAuNzMxNiAzMTMuNTE5IDUwLjY2MTYgMzEzLjQ5OSA1MC41OTE2QzMxMy4yOTkgNDkuOTUxNiAzMTMuMDg5IDQ5LjMxMTYgMzEyLjg3OSA0OC42ODE2QzMxMi44NzkgNDguNjUxNiAzMTIuODU5IDQ4LjYzMTYgMzEyLjg0OSA0OC42MDE2QzMxMi43ODkgNDguNDIxNiAzMTIuNzE5IDQ4LjI0MTYgMzEyLjY1OSA0OC4wNjE2QzMxMi40ODkgNDcuNTcxNiAzMTIuMzE5IDQ3LjA4MTYgMzEyLjEzOSA0Ni41OTE2QzMxMi4xMDkgNDYuNTExNiAzMTIuMDc5IDQ2LjQ0MTYgMzEyLjA0OSA0Ni4zNjE2QzMxMS44OTkgNDUuOTYxNiAzMTEuNzQ5IDQ1LjU2MTYgMzExLjU4OSA0NS4xNjE2QzMxMS40NjkgNDQuODQxNiAzMTEuMzQ5IDQ0LjUyMTYgMzExLjIxOSA0NC4yMDE2QzMxMS4xOTkgNDQuMTQxNiAzMTEuMTY5IDQ0LjA5MTYgMzExLjE0OSA0NC4wMzE2QzMxMC43MzkgNDIuOTkxNiAzMTAuMjk5IDQxLjk3MTYgMzA5Ljg0OSA0MC45NDE2QzMwOS44MDkgNDAuODUxNiAzMDkuNzc5IDQwLjc2MTYgMzA5LjczOSA0MC42ODE2QzMwOS42OTkgNDAuNTgxNiAzMDkuNjM5IDQwLjQ5MTYgMzA5LjU5OSA0MC4zOTE2QzMwOC45NTkgMzguOTYxNiAzMDguMjc5IDM3LjU0MTYgMzA3LjU1OSAzNi4xNDE2QzMwNy41MTkgMzYuMDYxNiAzMDcuNDg5IDM1Ljk5MTYgMzA3LjQ0OSAzNS45MTE2QzMwNy4zNzkgMzUuNzgxNiAzMDcuMzA5IDM1LjY2MTYgMzA3LjIzOSAzNS41MzE2QzMwNi42NTkgMzQuNDIxNiAzMDYuMDY5IDMzLjMyMTYgMzA1LjQ0OSAzMi4yNDE2QzMwNS40NDkgMzIuMjMxNiAzMDUuNDM5IDMyLjIyMTYgMzA1LjQyOSAzMi4yMTE2QzMwNC45ODkgMzEuNDUxNiAzMDQuNTM5IDMwLjcwMTYgMzA0LjA3OSAyOS45NTE2QzMwNC4wNTkgMjkuOTIxNiAzMDQuMDM5IDI5Ljg4MTYgMzA0LjAxOSAyOS44NTE2QzMwMy42ODkgMjkuMzIxNiAzMDMuMzQ5IDI4Ljc5MTYgMzAzLjAwOSAyOC4yNzE2QzMwMi45MjkgMjguMTUxNiAzMDIuODU5IDI4LjAzMTYgMzAyLjc3OSAyNy45MTE2QzMwMi43NzkgMjcuOTExNiAzMDIuNzc5IDI3LjkwMTYgMzAyLjc2OSAyNy44OTE2QzMwMi4zNTkgMjcuMjYxNiAzMDEuOTM5IDI2LjY0MTYgMzAxLjUwOSAyNi4wMjE2QzMwMS40ODkgMjUuOTkxNiAzMDEuNDY5IDI1Ljk2MTYgMzAxLjQzOSAyNS45MzE2QzMwMS4zMDkgMjUuNzUxNiAzMDEuMTc5IDI1LjU3MTYgMzAxLjA0OSAyNS4zOTE2QzMwMC43NzkgMjUuMDAxNiAzMDAuNDk5IDI0LjYyMTYgMzAwLjIxOSAyNC4yNDE2QzMwMC4xNjkgMjQuMTcxNiAzMDAuMTA5IDI0LjEwMTYgMzAwLjA1OSAyNC4wMzE2QzI5OS44NjkgMjMuNzgxNiAyOTkuNjc5IDIzLjUzMTYgMjk5LjQ4OSAyMy4yODE2QzI5OS4yNzkgMjMuMDAxNiAyOTkuMDY5IDIyLjcyMTYgMjk4Ljg1OSAyMi40NTE2QzI5OC43NzkgMjIuMzUxNiAyOTguNjk5IDIyLjI1MTYgMjk4LjYxOSAyMi4xNTE2QzI5OC40MDkgMjEuODkxNiAyOTguMTk5IDIxLjYzMTYgMjk3Ljk4OSAyMS4zNzE2QzI5Ny44MDkgMjEuMTUxNiAyOTcuNjI5IDIwLjkyMTYgMjk3LjQ0OSAyMC43MDE2QzI5Ny4zNDkgMjAuNTgxNiAyOTcuMjM5IDIwLjQ2MTYgMjk3LjEzOSAyMC4zMzE2QzI5Ni45MDkgMjAuMDYxNiAyOTYuNjc5IDE5Ljc5MTYgMjk2LjQ0OSAxOS41MzE2QzI5Ni4yODkgMTkuMzQxNiAyOTYuMTI5IDE5LjE1MTYgMjk1Ljk2OSAxOC45NzE2QzI5NS44MzkgMTguODMxNiAyOTUuNzA5IDE4LjY5MTYgMjk1LjU4OSAxOC41NTE2QzI5NS4zNTkgMTguMjkxNiAyOTUuMTE5IDE4LjA0MTYgMjk0Ljg4OSAxNy43ODE2QzI5NC43NDkgMTcuNjMxNiAyOTQuNjA5IDE3LjQ3MTYgMjk0LjQ1OSAxNy4zMTE2QzI5NC4zMDkgMTcuMTUxNiAyOTQuMTQ5IDE2Ljk5MTYgMjkzLjk4OSAxNi44MzE2QzI5My43NTkgMTYuNTkxNiAyOTMuNTI5IDE2LjM1MTYgMjkzLjI5OSAxNi4xMjE2QzI5My4xNzkgMTYuMDAxNiAyOTMuMDU5IDE1Ljg3MTYgMjkyLjkzOSAxNS43NTE2QzI5Mi43MzkgMTUuNTYxNiAyOTIuNTM5IDE1LjM3MTYgMjkyLjMzOSAxNS4xODE2QzI5Mi4xMTkgMTQuOTcxNiAyOTEuOTA5IDE0Ljc2MTYgMjkxLjY4OSAxNC41NjE2QzI5MS41OTkgMTQuNDgxNiAyOTEuNTA5IDE0LjM5MTYgMjkxLjQxOSAxNC4zMTE2QzI5MS4xNDkgMTQuMDYxNiAyOTAuODc5IDEzLjgyMTYgMjkwLjYwOSAxMy41ODE2QzI5MC40MjkgMTMuNDIxNiAyOTAuMjM5IDEzLjI1MTYgMjkwLjA1OSAxMy4wOTE2QzI5MC4wMDkgMTMuMDUxNiAyODkuOTU5IDEzLjAwMTYgMjg5LjkxOSAxMi45NjE2QzI4OS40MjkgMTIuNTQxNiAyODguOTM5IDEyLjEyMTYgMjg4LjQzOSAxMS43MjE2QzI4OC40MzkgMTEuNzIxNiAyODguNDM5IDExLjcyMTYgMjg4LjQyOSAxMS43MjE2QzI4OC4zODkgMTEuNjkxNiAyODguMzU5IDExLjY2MTYgMjg4LjMxOSAxMS42MzE2QzI4Ny44NjkgMTEuMjcxNiAyODcuNDE5IDEwLjkxMTYgMjg2Ljk1OSAxMC41NzE2QzI4Ni44MzkgMTAuNDgxNiAyODYuNzI5IDEwLjQwMTYgMjg2LjYwOSAxMC4zMTE2QzI4Ni4yMzkgMTAuMDMxNiAyODUuODU5IDkuNzYxNTYgMjg1LjQ4OSA5LjUwMTU2QzI4NS4zNDkgOS40MDE1NiAyODUuMjA5IDkuMzExNTYgMjg1LjA2OSA5LjIyMTU2QzI4NC44NzkgOS4wOTE1NiAyODQuNjc5IDguOTYxNTYgMjg0LjQ4OSA4LjgzMTU2QzI4NC4zMzkgOC43MzE1NiAyODQuMTg5IDguNjMxNTYgMjg0LjAzOSA4LjUzMTU2QzI4My43OTkgOC4zODE1NiAyODMuNTU5IDguMjMxNTYgMjgzLjMxOSA4LjA5MTU2QzI4My4xNDkgNy45ODE1NiAyODIuOTc5IDcuODcxNTYgMjgyLjc5OSA3Ljc3MTU2QzI4Mi43MjkgNy43MzE1NiAyODIuNjU5IDcuNjgxNTYgMjgyLjU4OSA3LjY0MTU2QzI4Mi4xMDkgNy4zNjE1NiAyODEuNjI5IDcuMDkxNTYgMjgxLjE1OSA2LjgzMTU2QzI4MS4xNTkgNi44MzE1NiAyODEuMTU5IDYuODMxNTYgMjgxLjE0OSA2LjgzMTU2QzI4MC42NjkgNi41NzE1NiAyODAuMTg5IDYuMzIxNTYgMjc5LjcwOSA2LjA5MTU2QzI3OS42NDkgNi4wNjE1NiAyNzkuNTc5IDYuMDMxNTYgMjc5LjUxOSA2LjAwMTU2QzI3OS4zMzkgNS45MjE1NiAyNzkuMTY5IDUuODQxNTYgMjc4Ljk5OSA1Ljc2MTU2QzI3OC43NDkgNS42NTE1NiAyNzguNTA5IDUuNTMxNTYgMjc4LjI1OSA1LjQyMTU2QzI3OC4xMzkgNS4zNzE1NiAyNzguMDA5IDUuMzIxNTYgMjc3Ljg4OSA1LjI3MTU2QzI3Ny42NzkgNS4xODE1NiAyNzcuNDU5IDUuMTAxNTYgMjc3LjI0OSA1LjAxMTU2QzI3Ny4wNzkgNC45NTE1NiAyNzYuOTE5IDQuODcxNTYgMjc2Ljc0OSA0LjgxMTU2QzI3Ni41NzkgNC43NDE1NiAyNzYuMzk5IDQuNjkxNTYgMjc2LjIyOSA0LjYzMTU2QzI3Ni4wMTkgNC41NTE1NiAyNzUuNzk5IDQuNDgxNTYgMjc1LjU4OSA0LjQxMTU2QzI3NS40NzkgNC4zNzE1NiAyNzUuMzU5IDQuMzMxNTYgMjc1LjI0OSA0LjI5MTU2QzI3NS4wNDkgNC4yMzE1NiAyNzQuODM5IDQuMTgxNTYgMjc0LjYzOSA0LjEyMTU2QzI3NC4zODkgNC4wNTE1NiAyNzQuMTM5IDMuOTcxNTYgMjczLjg4OSAzLjkxMTU2QzI3My43OTkgMy44OTE1NiAyNzMuNzA5IDMuODYxNTYgMjczLjYyOSAzLjg0MTU2QzI3My40MTkgMy43OTE1NiAyNzMuMjE5IDMuNzUxNTYgMjczLjAwOSAzLjcxMTU2QzI3Mi43MzkgMy42NTE1NiAyNzIuNDY5IDMuNTkxNTYgMjcyLjIwOSAzLjU0MTU2QzI3Mi4xMjkgMy41MjE1NiAyNzIuMDQ5IDMuNTAxNTYgMjcxLjk2OSAzLjQ5MTU2QzI3MS43ODkgMy40NjE1NiAyNzEuNjA5IDMuNDQxNTYgMjcxLjQyOSAzLjQxMTU2QzI3MS4xMDkgMy4zNjE1NiAyNzAuNzg5IDMuMzExNTYgMjcwLjQ3OSAzLjI3MTU2QzI3MC4zODkgMy4yNjE1NiAyNzAuMjk5IDMuMjQxNTYgMjcwLjIwOSAzLjIzMTU2QzI3MC4wNjkgMy4yMTE1NiAyNjkuOTM5IDMuMjIxNTYgMjY5Ljc5OSAzLjIwMTU2QzI2OS4zOTkgMy4xNjE1NiAyNjguOTk5IDMuMTQxNTYgMjY4LjYwOSAzLjEyMTU2QzI2OC40ODkgMy4xMjE1NiAyNjguMzY5IDMuMTAxNTYgMjY4LjI0OSAzLjEwMTU2QzI2OC4xNTkgMy4xMDE1NiAyNjguMDc5IDMuMTAxNTYgMjY3Ljk4OSAzLjEwMTU2QzI2Ny4zNzkgMy4xMDE1NiAyNjYuNzg5IDMuMTExNTYgMjY2LjE5OSAzLjE2MTU2QzI2Ni4xNDkgMy4xNjE1NiAyNjYuMDk5IDMuMTYxNTYgMjY2LjA0OSAzLjE2MTU2QzI2Ni4wMzkgMy4xNjE1NiAyNjYuMDE5IDMuMTYxNTYgMjY2LjAwOSAzLjE2MTU2QzI2NS44ODkgMy4xNzE1NiAyNjUuNzY5IDMuMTkxNTYgMjY1LjY0OSAzLjIwMTU2QzI2NS4yNzkgMy4yNDE1NiAyNjQuOTA5IDMuMjgxNTYgMjY0LjU0OSAzLjM0MTU2QzI2NC4zNjkgMy4zNzE1NiAyNjQuMTk5IDMuNDExNTYgMjY0LjAyOSAzLjQ0MTU2QzI2My43OTkgMy40ODE1NiAyNjMuNTU5IDMuNTIxNTYgMjYzLjMyOSAzLjU4MTU2QzI2My4yNjkgMy41OTE1NiAyNjMuMjE5IDMuNjExNTYgMjYzLjE1OSAzLjYzMTU2QzI2Mi44MDkgMy43MTE1NiAyNjIuNDU5IDMuODIxNTYgMjYyLjExOSAzLjkyMTU2QzI2MS45NDkgMy45NzE1NiAyNjEuNzc5IDQuMDIxNTYgMjYxLjYwOSA0LjA3MTU2QzI2MS4wOTkgNC4yNDE1NiAyNjAuNjA5IDQuNDMxNTYgMjYwLjExOSA0LjY0MTU2TDI1MC4yODkgOC45NTE1NkMyNTAuNzc5IDguNzQxNTYgMjUxLjI3OSA4LjU1MTU2IDI1MS43NzkgOC4zODE1NkMyNTEuOTQ5IDguMzIxNTYgMjUyLjExOSA4LjI4MTU2IDI1Mi4yNzkgOC4yMzE1NkMyNTIuNjI5IDguMTIxNTYgMjUyLjk2OSA4LjAyMTU2IDI1My4zMTkgNy45NDE1NkMyNTMuNjA5IDcuODcxNTYgMjUzLjg5OSA3LjgxMTU2IDI1NC4xODkgNy43NjE1NkMyNTQuMzU5IDcuNzMxNTYgMjU0LjUzOSA3LjY5MTU2IDI1NC43MDkgNy42NjE1NkMyNTUuMDY5IDcuNjAxNTYgMjU1LjQzOSA3LjU2MTU2IDI1NS44MDkgNy41MjE1NkMyNTUuOTI5IDcuNTExNTYgMjU2LjA0OSA3LjQ5MTU2IDI1Ni4xNjkgNy40ODE1NkMyNTYuMjI5IDcuNDgxNTYgMjU2LjI5OSA3LjQ4MTU2IDI1Ni4zNTkgNy40ODE1NkMyNTYuOTQ5IDcuNDMxNTYgMjU3LjU0OSA3LjQyMTU2IDI1OC4xNDkgNy40MjE1NkMyNTguMzU5IDcuNDIxNTYgMjU4LjU1OSA3LjQyMTU2IDI1OC43NjkgNy40NDE1NkMyNTkuMTU5IDcuNDUxNTYgMjU5LjU1OSA3LjQ4MTU2IDI1OS45NTkgNy41MjE1NkMyNjAuMTg5IDcuNTQxNTYgMjYwLjQwOSA3LjU2MTU2IDI2MC42MzkgNy41OTE1NkMyNjAuOTU5IDcuNjMxNTYgMjYxLjI2OSA3LjY4MTU2IDI2MS41ODkgNy43MzE1NkMyNjEuODQ5IDcuNzcxNTYgMjYyLjEwOSA3LjgxMTU2IDI2Mi4zNjkgNy44NjE1NkMyNjIuNjM5IDcuOTExNTYgMjYyLjg5OSA3Ljk3MTU2IDI2My4xNjkgOC4wMzE1NkMyNjMuNDU5IDguMTAxNTYgMjYzLjc1OSA4LjE2MTU2IDI2NC4wNDkgOC4yNDE1NkMyNjQuMjk5IDguMzExNTYgMjY0LjU0OSA4LjM4MTU2IDI2NC43OTkgOC40NTE1NkMyNjUuMTA5IDguNTQxNTYgMjY1LjQyOSA4LjY0MTU2IDI2NS43NDkgOC43NDE1NkMyNjUuOTU5IDguODExNTYgMjY2LjE3OSA4Ljg5MTU2IDI2Ni4zOTkgOC45NjE1NkMyNjYuNzM5IDkuMDgxNTYgMjY3LjA3OSA5LjIwMTU2IDI2Ny40MDkgOS4zNDE1NkMyNjcuNjE5IDkuNDIxNTYgMjY3LjgzOSA5LjUxMTU2IDI2OC4wNDkgOS42MDE1NkMyNjguNDE5IDkuNzUxNTYgMjY4Ljc4OSA5LjkyMTU2IDI2OS4xNTkgMTAuMDkxNkMyNjkuMzI5IDEwLjE3MTYgMjY5LjUwOSAxMC4yNTE2IDI2OS42NzkgMTAuMzMxNkMyNzAuNzY5IDEwLjg1MTYgMjcxLjg2OSAxMS40NDE2IDI3Mi45NjkgMTIuMTAxNkMyNzMuMTM5IDEyLjIwMTYgMjczLjMwOSAxMi4zMTE2IDI3My40NzkgMTIuNDExNkMyNzMuODY5IDEyLjY1MTYgMjc0LjI1OSAxMi45MDE2IDI3NC42NDkgMTMuMTYxNkMyNzQuODM5IDEzLjI5MTYgMjc1LjAyOSAxMy40MjE2IDI3NS4yMjkgMTMuNTUxNkMyNzUuNzQ5IDEzLjkwMTYgMjc2LjI1OSAxNC4yNjE2IDI3Ni43NzkgMTQuNjQxNkMyNzcuMzU5IDE1LjA3MTYgMjc3LjkyOSAxNS41MTE2IDI3OC40OTkgMTUuOTcxNkMyNzguNTI5IDE2LjAwMTYgMjc4LjU2OSAxNi4wMjE2IDI3OC41OTkgMTYuMDUxNkMyNzkuMTQ5IDE2LjUwMTYgMjc5LjY5OSAxNi45NjE2IDI4MC4yMzkgMTcuNDMxNkMyODAuNDI5IDE3LjU5MTYgMjgwLjYwOSAxNy43NjE2IDI4MC43ODkgMTcuOTIxNkMyODEuMTQ5IDE4LjI0MTYgMjgxLjUwOSAxOC41NzE2IDI4MS44NjkgMTguOTAxNkMyODIuMDg5IDE5LjEwMTYgMjgyLjI5OSAxOS4zMTE2IDI4Mi41MTkgMTkuNTIxNkMyODIuODM5IDE5LjgzMTYgMjgzLjE1OSAyMC4xNDE2IDI4My40NzkgMjAuNDYxNkMyODMuNzA5IDIwLjY5MTYgMjgzLjkzOSAyMC45MzE2IDI4NC4xNjkgMjEuMTcxNkMyODQuNDY5IDIxLjQ4MTYgMjg0Ljc2OSAyMS44MDE2IDI4NS4wNjkgMjIuMTIxNkMyODUuMjk5IDIyLjM3MTYgMjg1LjUzOSAyMi42MzE2IDI4NS43NjkgMjIuODgxNkMyODYuMDU5IDIzLjIwMTYgMjg2LjM0OSAyMy41MzE2IDI4Ni42MjkgMjMuODYxNkMyODYuODU5IDI0LjEzMTYgMjg3LjA4OSAyNC4zOTE2IDI4Ny4zMTkgMjQuNjYxNkMyODcuNjA5IDI1LjAwMTYgMjg3Ljg4OSAyNS4zNTE2IDI4OC4xNzkgMjUuNzAxNkMyODguMzg5IDI1Ljk2MTYgMjg4LjU5OSAyNi4yMjE2IDI4OC44MDkgMjYuNDgxNkMyODkuMDk5IDI2Ljg1MTYgMjg5LjM4OSAyNy4yMzE2IDI4OS42NzkgMjcuNjExNkMyODkuODY5IDI3Ljg2MTYgMjkwLjA1OSAyOC4xMTE2IDI5MC4yNDkgMjguMzYxNkMyOTAuNTc5IDI4LjgxMTYgMjkwLjkwOSAyOS4yNjE2IDI5MS4yMjkgMjkuNzExNkMyOTEuMzU5IDI5LjkwMTYgMjkxLjQ5OSAzMC4wODE2IDI5MS42MjkgMzAuMjYxNkMyOTIuMDc5IDMwLjkxMTYgMjkyLjUyOSAzMS41NzE2IDI5Mi45NjkgMzIuMjQxNkMyOTMuMDM5IDMyLjM1MTYgMjkzLjEwOSAzMi40NzE2IDI5My4xODkgMzIuNTgxNkMyOTMuNTU5IDMzLjE0MTYgMjkzLjkxOSAzMy43MTE2IDI5NC4yNjkgMzQuMjgxNkMyOTQuNzI5IDM1LjAzMTYgMjk1LjE4OSAzNS44MDE2IDI5NS42MjkgMzYuNTcxNkMyOTYuMjQ5IDM3LjY1MTYgMjk2LjgzOSAzOC43NTE2IDI5Ny40MTkgMzkuODYxNkMyOTcuNTI5IDQwLjA2MTYgMjk3LjYyOSA0MC4yNzE2IDI5Ny43MzkgNDAuNDcxNkMyOTguNDQ5IDQxLjg3MTYgMjk5LjEyOSA0My4yODE2IDI5OS43NzkgNDQuNzIxNkMyOTkuODU5IDQ0LjkwMTYgMjk5Ljk0OSA0NS4wOTE2IDMwMC4wMjkgNDUuMjcxNkMzMDAuNDc5IDQ2LjI5MTYgMzAwLjkxOSA0Ny4zMjE2IDMwMS4zMjkgNDguMzYxNkMzMDEuNDc5IDQ4Ljc0MTYgMzAxLjYxOSA0OS4xMjE2IDMwMS43NjkgNDkuNTAxNkMzMDEuOTE5IDQ5LjkwMTYgMzAyLjA3OSA1MC4zMDE2IDMwMi4yMjkgNTAuNzAxNkMzMDIuNDM5IDUxLjI2MTYgMzAyLjYyOSA1MS44MzE2IDMwMi44MjkgNTIuMzkxNkMzMDIuODg5IDUyLjU4MTYgMzAyLjk1OSA1Mi43NjE2IDMwMy4wMjkgNTIuOTUxNkMzMDMuMjc5IDUzLjY4MTYgMzAzLjUwOSA1NC40MjE2IDMwMy43MzkgNTUuMTUxNkMzMDMuNzk5IDU1LjM0MTYgMzAzLjg1OSA1NS41NDE2IDMwMy45MDkgNTUuNzMxNkMzMDQuMDc5IDU2LjI4MTYgMzA0LjIzOSA1Ni44MzE2IDMwNC4zODkgNTcuMzcxNkMzMDQuNDU5IDU3LjYyMTYgMzA0LjUyOSA1Ny44NzE2IDMwNC41OTkgNTguMTIxNkMzMDQuNzM5IDU4LjY1MTYgMzA0Ljg3OSA1OS4xNzE2IDMwNS4wMDkgNTkuNzAxNkMzMDUuMDY5IDU5LjkzMTYgMzA1LjEyOSA2MC4xNTE2IDMwNS4xNzkgNjAuMzgxNkMzMDUuMzQ5IDYxLjA3MTYgMzA1LjUwOSA2MS43NjE2IDMwNS42NDkgNjIuNDUxNkMzMDUuNjU5IDYyLjUxMTYgMzA1LjY3OSA2Mi41ODE2IDMwNS42ODkgNjIuNjQxNkMzMDUuODQ5IDYzLjM5MTYgMzA1Ljk5OSA2NC4xNDE2IDMwNi4xMjkgNjQuODkxNkMzMDYuMTY5IDY1LjEzMTYgMzA2LjIwOSA2NS4zNzE2IDMwNi4yNTkgNjUuNjIxNkMzMDYuMzQ5IDY2LjE0MTYgMzA2LjQzOSA2Ni42NTE2IDMwNi41MTkgNjcuMTYxNkMzMDYuNTU5IDY3LjQ1MTYgMzA2LjU5OSA2Ny43MzE2IDMwNi42MzkgNjguMDIxNkMzMDYuNzA5IDY4LjUwMTYgMzA2Ljc2OSA2OC45ODE2IDMwNi44MjkgNjkuNDUxNkMzMDYuODU5IDY5LjczMTYgMzA2Ljg5OSA3MC4wMjE2IDMwNi45MjkgNzAuMzAxNkMzMDYuOTc5IDcwLjc5MTYgMzA3LjAyOSA3MS4yODE2IDMwNy4wNjkgNzEuNzcxNkMzMDcuMDg5IDcyLjAzMTYgMzA3LjExOSA3Mi4yOTE2IDMwNy4xMzkgNzIuNTQxNkMzMDcuMTg5IDczLjE4MTYgMzA3LjIyOSA3My44MTE2IDMwNy4yNTkgNzQuNDUxNkMzMDcuMjU5IDc0LjU0MTYgMzA3LjI2OSA3NC42NDE2IDMwNy4yNzkgNzQuNzMxNkMzMDcuMzA5IDc1LjQ2MTYgMzA3LjMyOSA3Ni4xODE2IDMwNy4zMzkgNzYuOTAxNkMzMDcuMzM5IDc3LjEwMTYgMzA3LjMzOSA3Ny4zMTE2IDMwNy4zMzkgNzcuNTExNkMzMDcuMzM5IDc4LjAyMTYgMzA3LjMzOSA3OC41NDE2IDMwNy4zMTkgNzkuMDUxNkMzMDcuMzE5IDc5LjMwMTYgMzA3LjI5OSA3OS41NDE2IDMwNy4yOTkgNzkuNzkxNkMzMDcuMjc5IDgwLjI3MTYgMzA3LjI1OSA4MC43NTE2IDMwNy4yMTkgODEuMjMxNkMzMDcuMjA5IDgxLjQ2MTYgMzA3LjE4OSA4MS42OTE2IDMwNy4xNjkgODEuOTIxNkMzMDcuMTE5IDgyLjYwMTYgMzA3LjA1OSA4My4yODE2IDMwNi45NzkgODMuOTUxNkMzMDYuODk5IDg0LjY1MTYgMzA2Ljc5OSA4NS4zNDE2IDMwNi42ODkgODYuMDExNkMzMDYuNjU5IDg2LjIwMTYgMzA2LjYxOSA4Ni4zOTE2IDMwNi41ODkgODYuNTgxNkMzMDYuNTA5IDg3LjA0MTYgMzA2LjQyOSA4Ny41MDE2IDMwNi4zMzkgODcuOTUxNkMzMDYuMjg5IDg4LjIxMTYgMzA2LjIyOSA4OC40NzE2IDMwNi4xNjkgODguNzIxNkMzMDYuMDg5IDg5LjEwMTYgMzA1Ljk5OSA4OS40NzE2IDMwNS44OTkgODkuODQxNkMzMDUuODI5IDkwLjExMTYgMzA1Ljc1OSA5MC4zODE2IDMwNS42NzkgOTAuNjUxNkMzMDUuNTg5IDkwLjk5MTYgMzA1LjQ4OSA5MS4zMzE2IDMwNS4zODkgOTEuNjYxNkMzMDUuMjk5IDkxLjk2MTYgMzA1LjE5OSA5Mi4yNTE2IDMwNS4xMDkgOTIuNTQxNkMzMDUuMDA5IDkyLjg0MTYgMzA0LjkwOSA5My4xMzE2IDMwNC43OTkgOTMuNDIxNkMzMDQuNjc5IDkzLjc2MTYgMzA0LjU0OSA5NC4wOTE2IDMwNC40MDkgOTQuNDIxNkMzMDQuMzA5IDk0LjY4MTYgMzA0LjE5OSA5NC45MzE2IDMwNC4wODkgOTUuMTgxNkMzMDMuOTE5IDk1LjU3MTYgMzAzLjczOSA5NS45NjE2IDMwMy41NTkgOTYuMzMxNkMzMDMuNDU5IDk2LjUzMTYgMzAzLjM2OSA5Ni43NDE2IDMwMy4yNTkgOTYuOTQxNkMzMDIuOTM5IDk3LjU3MTYgMzAyLjU5OSA5OC4xODE2IDMwMi4yMzkgOTguNzYxNkMzMDEuOTU5IDk5LjIxMTYgMzAxLjY2OSA5OS42NTE2IDMwMS4zNjkgMTAwLjA3MkMzMDEuMzY5IDEwMC4wNzIgMzAxLjM2OSAxMDAuMDgyIDMwMS4zNTkgMTAwLjA5MkMzMDEuMDY5IDEwMC41MDIgMzAwLjc1OSAxMDAuOTAyIDMwMC40NDkgMTAxLjI4MkMyOTkuOTk5IDEwMS44NDIgMjk5LjUxOSAxMDIuMzUyIDI5OS4wMjkgMTAyLjg1MkMyOTguOTA5IDEwMi45NzIgMjk4Ljc4OSAxMDMuMDgyIDI5OC42NjkgMTAzLjIwMkMyOTguMTk5IDEwMy42NTIgMjk3LjcwOSAxMDQuMDgyIDI5Ny4yMDkgMTA0LjQ4MkMyOTcuMTY5IDEwNC41MTIgMjk3LjEzOSAxMDQuNTQyIDI5Ny4wOTkgMTA0LjU3MkMyOTYuNTU5IDEwNC45ODIgMjk2LjAwOSAxMDUuMzYyIDI5NS40MzkgMTA1LjcxMkMyOTUuMjk5IDEwNS43OTIgMjk1LjE1OSAxMDUuODgyIDI5NS4wMTkgMTA1Ljk2MkMyOTQuNDM5IDEwNi4zMDIgMjkzLjg0OSAxMDYuNjEyIDI5My4yMzkgMTA2Ljg4MkwzMDMuMDY5IDEwMi41NzJDMzAzLjY3OSAxMDIuMzAyIDMwNC4yNjkgMTAxLjk5MiAzMDQuODQ5IDEwMS42NTJDMzA0Ljk4OSAxMDEuNTcyIDMwNS4xMjkgMTAxLjQ5MiAzMDUuMjY5IDEwMS40MDJDMzA1LjgzOSAxMDEuMDUyIDMwNi4zOTkgMTAwLjY4MiAzMDYuOTI5IDEwMC4yNjJDMzA2Ljk2OSAxMDAuMjMyIDMwNi45OTkgMTAwLjIwMiAzMDcuMDM5IDEwMC4xNzJDMzA3LjUzOSA5OS43NzE2IDMwOC4wMjkgOTkuMzQxNiAzMDguNDk5IDk4Ljg5MTZDMzA4LjYxOSA5OC43NzE2IDMwOC43MzkgOTguNjYxNiAzMDguODU5IDk4LjU0MTZDMzA5LjM0OSA5OC4wNTE2IDMwOS44MjkgOTcuNTMxNiAzMTAuMjc5IDk2Ljk3MTZDMzEwLjI4OSA5Ni45NTE2IDMxMC4zMDkgOTYuOTQxNiAzMTAuMzE5IDk2LjkyMTZDMzEwLjYxOSA5Ni41NTE2IDMxMC45MDkgOTYuMTcxNiAzMTEuMTg5IDk1Ljc3MTZDMzExLjE4OSA5NS43NzE2IDMxMS4xODkgOTUuNzYxNiAzMTEuMTk5IDk1Ljc1MTZDMzExLjQ4OSA5NS4zNTE2IDMxMS43NTkgOTQuOTMxNiAzMTIuMDI5IDk0LjUwMTZDMzEyLjAzOSA5NC40ODE2IDMxMi4wNDkgOTQuNDYxNiAzMTIuMDU5IDk0LjQ0MTZDMzEyLjQxOSA5My44NjE2IDMxMi43NTkgOTMuMjUxNiAzMTMuMDc5IDkyLjYyMTZDMzEzLjEwOSA5Mi41NzE2IDMxMy4xMzkgOTIuNTIxNiAzMTMuMTY5IDkyLjQ2MTZDMzEzLjIzOSA5Mi4zMjE2IDMxMy4zMDkgOTIuMTYxNiAzMTMuMzc5IDkyLjAxMTZDMzEzLjU1OSA5MS42MzE2IDMxMy43MzkgOTEuMjUxNiAzMTMuOTA5IDkwLjg2MTZDMzEzLjk1OSA5MC43NjE2IDMxNC4wMDkgOTAuNjYxNiAzMTQuMDQ5IDkwLjU1MTZDMzE0LjEwOSA5MC40MDE2IDMxNC4xNjkgOTAuMjQxNiAzMTQuMjI5IDkwLjA5MTZDMzE0LjM1OSA4OS43NjE2IDMxNC40ODkgODkuNDMxNiAzMTQuNjE5IDg5LjA5MTZDMzE0LjY2OSA4OC45NTE2IDMxNC43MjkgODguODIxNiAzMTQuNzc5IDg4LjY4MTZDMzE0LjgyOSA4OC41MzE2IDMxNC44NzkgODguMzcxNiAzMTQuOTI5IDg4LjIxMTZDMzE1LjAyOSA4Ny45MjE2IDMxNS4xMTkgODcuNjMxNiAzMTUuMjA5IDg3LjMzMTZDMzE1LjI1OSA4Ny4xODE2IDMxNS4zMDkgODcuMDMxNiAzMTUuMzU5IDg2Ljg4MTZDMzE1LjQwOSA4Ni43MDE2IDMxNS40NTkgODYuNTExNiAzMTUuNTA5IDg2LjMzMTZDMzE1LjU3OSA4Ni4wNjE2IDMxNS42NTkgODUuODAxNiAzMTUuNzI5IDg1LjUyMTZDMzE1Ljc2OSA4NS4zODE2IDMxNS44MDkgODUuMjUxNiAzMTUuODM5IDg1LjExMTZDMzE1Ljg5OSA4NC44ODE2IDMxNS45MzkgODQuNjQxNiAzMTUuOTk5IDg0LjQwMTZDMzE2LjA1OSA4NC4xNDE2IDMxNi4xMTkgODMuODkxNiAzMTYuMTY5IDgzLjYzMTZDMzE2LjE4OSA4My41MzE2IDMxNi4yMTkgODMuNDMxNiAzMTYuMjM5IDgzLjMyMTZDMzE2LjMwOSA4Mi45NzE2IDMxNi4zNjkgODIuNjIxNiAzMTYuNDI5IDgyLjI2MTZDMzE2LjQ1OSA4Mi4wNzE2IDMxNi40OTkgODEuODgxNiAzMTYuNTI5IDgxLjY5MTZDMzE2LjUyOSA4MS42NDE2IDMxNi41NDkgODEuNjAxNiAzMTYuNTQ5IDgxLjU1MTZDMzE2LjYzOSA4MC45NjE2IDMxNi43MjkgODAuMzUxNiAzMTYuNzk5IDc5LjczMTZDMzE2Ljc5OSA3OS42OTE2IDMxNi43OTkgNzkuNjYxNiAzMTYuODA5IDc5LjYyMTZDMzE2Ljg3OSA3OS4wNjE2IDMxNi45MjkgNzguNDkxNiAzMTYuOTc5IDc3LjkyMTZWNzcuODYxNloiIGZpbGw9IiMzQjUyQTEiPjwvcGF0aD48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIG9wYWNpdHk9IjAuNCI+PHBhdGggZD0iTTMxNy4wNSA3Ni44NDcyQzMxNy4wNyA3Ni41NzcyIDMxNy4wOSA3Ni4zMDcyIDMxNy4xIDc2LjAzNzJDMzE3LjExIDc1LjgyNzIgMzE3LjExIDc1LjYxNzIgMzE3LjEyIDc1LjQwNzJDMzE3LjEyIDc1LjE1NzIgMzE3LjE0IDc0LjkxNzIgMzE3LjE0IDc0LjY2NzJDMzE3LjE0IDc0LjUwNzIgMzE3LjE1IDc0LjM0NzIgMzE3LjE2IDc0LjE4NzJDMzE3LjE2IDczLjgzNzIgMzE3LjE2IDczLjQ4NzIgMzE3LjE2IDczLjEyNzJDMzE3LjE2IDcyLjkyNzIgMzE3LjE2IDcyLjcxNzIgMzE3LjE2IDcyLjUxNzJDMzE3LjE2IDcyLjQ0NzIgMzE3LjE2IDcyLjM4NzIgMzE3LjE2IDcyLjMxNzJDMzE3LjE2IDcxLjY3NzIgMzE3LjEzIDcxLjAzNzIgMzE3LjExIDcwLjM5NzJDMzE3LjExIDcwLjM4NzIgMzE3LjExIDcwLjM2NzIgMzE3LjExIDcwLjM1NzJDMzE3LjExIDcwLjI2NzIgMzE3LjEgNzAuMTY3MiAzMTcuMDkgNzAuMDc3MkMzMTcuMDYgNjkuNTM3MiAzMTcuMDQgNjkuMDA3MiAzMTcgNjguNDY3MkMzMTcgNjguMzY3MiAzMTYuOTggNjguMjY3MiAzMTYuOTcgNjguMTc3MkMzMTYuOTUgNjcuOTE3MiAzMTYuOTMgNjcuNjU3MiAzMTYuOSA2Ny40MDcyQzMxNi44NyA2Ny4wOTcyIDMxNi44NSA2Ni43NzcyIDMxNi44MiA2Ni40NjcyQzMxNi44IDY2LjI4NzIgMzE2Ljc4IDY2LjExNzIgMzE2Ljc2IDY1LjkzNzJDMzE2LjczIDY1LjY1NzIgMzE2LjcgNjUuMzc3MiAzMTYuNjYgNjUuMDg3MkMzMTYuNjMgNjQuODY3MiAzMTYuNjEgNjQuNjU3MiAzMTYuNTggNjQuNDM3MkMzMTYuNTUgNjQuMTc3MiAzMTYuNSA2My45MDcyIDMxNi40NyA2My42NDcyQzMxNi40MyA2My4zNjcyIDMxNi4zOSA2My4wODcyIDMxNi4zNSA2Mi43OTcyQzMxNi4zMyA2Mi42NTcyIDMxNi4zMSA2Mi41MTcyIDMxNi4yOSA2Mi4zNzcyQzMxNi4yMyA2MS45OTcyIDMxNi4xNiA2MS42MjcyIDMxNi4wOSA2MS4yNDcyQzMxNi4wNSA2MS4wMDcyIDMxNi4wMSA2MC43NjcyIDMxNS45NiA2MC41MjcyQzMxNS45NSA2MC40NTcyIDMxNS45NCA2MC4zODcyIDMxNS45MiA2MC4zMjcyQzMxNS43OSA1OS42NTcyIDMxNS42NiA1OC45NzcyIDMxNS41MiA1OC4zMDcyQzMxNS41MiA1OC4zMDcyIDMxNS41MiA1OC4yODcyIDMxNS41MiA1OC4yNzcyQzMxNS41MSA1OC4yMTcyIDMxNS40OSA1OC4xNDcyIDMxNS40OCA1OC4wODcyQzMxNS4zNSA1Ny40OTcyIDMxNS4yMiA1Ni44OTcyIDMxNS4wOCA1Ni4zMDcyQzMxNS4wNiA1Ni4yMTcyIDMxNS4wMyA1Ni4xMTcyIDMxNS4wMSA1Ni4wMjcyQzMxNC45NiA1NS43OTcyIDMxNC45IDU1LjU3NzIgMzE0Ljg0IDU1LjM0NzJDMzE0Ljc2IDU1LjAyNzIgMzE0LjY4IDU0LjcwNzIgMzE0LjYgNTQuMzg3MkMzMTQuNTUgNTQuMTc3MiAzMTQuNDkgNTMuOTc3MiAzMTQuNDMgNTMuNzY3MkMzMTQuMzYgNTMuNTE3MiAzMTQuMjkgNTMuMjY3MiAzMTQuMjIgNTMuMDE3MkMzMTQuMTcgNTIuODM3MiAzMTQuMTIgNTIuNjU3MiAzMTQuMDcgNTIuNDY3MkMzMTMuOTYgNTIuMTA3MiAzMTMuODUgNTEuNzM3MiAzMTMuNzQgNTEuMzc3MkMzMTMuNjggNTEuMTg3MiAzMTMuNjIgNTAuOTg3MiAzMTMuNTYgNTAuNzk3MkMzMTMuNTQgNTAuNzI3MiAzMTMuNTIgNTAuNjU3MiAzMTMuNSA1MC41ODcyQzMxMy4zIDQ5Ljk0NzIgMzEzLjA5IDQ5LjMwNzIgMzEyLjg4IDQ4LjY3NzJDMzEyLjg4IDQ4LjY0NzIgMzEyLjg2IDQ4LjYyNzIgMzEyLjg1IDQ4LjU5NzJDMzEyLjc5IDQ4LjQxNzIgMzEyLjcyIDQ4LjIzNzIgMzEyLjY2IDQ4LjA1NzJDMzEyLjQ5IDQ3LjU2NzIgMzEyLjMyIDQ3LjA3NzIgMzEyLjE0IDQ2LjU4NzJDMzEyLjExIDQ2LjUwNzIgMzEyLjA4IDQ2LjQzNzIgMzEyLjA1IDQ2LjM1NzJDMzExLjkgNDUuOTU3MiAzMTEuNzUgNDUuNTU3MiAzMTEuNTkgNDUuMTU3MkMzMTEuNDcgNDQuODM3MiAzMTEuMzUgNDQuNTE3MiAzMTEuMjIgNDQuMTk3MkMzMTEuMiA0NC4xMzcyIDMxMS4xNyA0NC4wODcyIDMxMS4xNSA0NC4wMjcyQzMxMC43NCA0Mi45ODcyIDMxMC4zIDQxLjk2NzIgMzA5Ljg1IDQwLjkzNzJDMzA5LjgxIDQwLjg0NzIgMzA5Ljc4IDQwLjc1NzIgMzA5Ljc0IDQwLjY3NzJDMzA5LjcgNDAuNTc3MiAzMDkuNjQgNDAuNDg3MiAzMDkuNiA0MC4zODcyQzMwOC45NiAzOC45NTcyIDMwOC4yOCAzNy41MzcyIDMwNy41NiAzNi4xMzcyQzMwNy41MiAzNi4wNTcyIDMwNy40OSAzNS45ODcyIDMwNy40NSAzNS45MDcyQzMwNy4zOCAzNS43NzcyIDMwNy4zMSAzNS42NTcyIDMwNy4yNCAzNS41MjcyQzMwNi42NiAzNC40MTcyIDMwNi4wNyAzMy4zMTcyIDMwNS40NSAzMi4yMzcyQzMwNS40NSAzMi4yMjcyIDMwNS40NCAzMi4yMTcyIDMwNS40MyAzMi4yMDcyQzMwNC45OSAzMS40NDcyIDMwNC41NCAzMC42OTcyIDMwNC4wOCAyOS45NDcyQzMwNC4wNiAyOS45MTcyIDMwNC4wNCAyOS44NzcyIDMwNC4wMiAyOS44NDcyQzMwMy45NyAyOS43NjcyIDMwMy45MiAyOS42OTcyIDMwMy44NyAyOS42MTcyQzMwMC42MSAzMC45OTcyIDI5Ny4yNSAzMi40MTcyIDI5My45NiAzMy44MDcyQzI5NC4wNiAzMy45NTcyIDI5NC4xNSAzNC4xMDcyIDI5NC4yNSAzNC4yNTcyQzI5NC43MSAzNS4wMDcyIDI5NS4xNyAzNS43NzcyIDI5NS42MSAzNi41NDcyQzI5Ni4yMyAzNy42MjcyIDI5Ni44MiAzOC43MjcyIDI5Ny40IDM5LjgzNzJDMjk3LjUxIDQwLjAzNzIgMjk3LjYxIDQwLjI0NzIgMjk3LjcyIDQwLjQ0NzJDMjk4LjQzIDQxLjg0NzIgMjk5LjExIDQzLjI1NzIgMjk5Ljc2IDQ0LjY5NzJDMjk5Ljg0IDQ0Ljg3NzIgMjk5LjkzIDQ1LjA2NzIgMzAwLjAxIDQ1LjI0NzJDMzAwLjQ2IDQ2LjI2NzIgMzAwLjkgNDcuMjk3MiAzMDEuMzEgNDguMzM3MkMzMDEuNDYgNDguNzE3MiAzMDEuNiA0OS4wOTcyIDMwMS43NSA0OS40NzcyQzMwMS45IDQ5Ljg3NzIgMzAyLjA2IDUwLjI3NzIgMzAyLjIxIDUwLjY3NzJDMzAyLjQyIDUxLjIzNzIgMzAyLjYxIDUxLjgwNzIgMzAyLjgxIDUyLjM2NzJDMzAyLjg3IDUyLjU1NzIgMzAyLjk0IDUyLjczNzIgMzAzLjAxIDUyLjkyNzJDMzAzLjI2IDUzLjY1NzIgMzAzLjQ5IDU0LjM5NzIgMzAzLjcyIDU1LjEyNzJDMzAzLjc4IDU1LjMxNzIgMzAzLjg0IDU1LjUxNzIgMzAzLjg5IDU1LjcwNzJDMzA0LjA2IDU2LjI1NzIgMzA0LjIyIDU2LjgwNzIgMzA0LjM3IDU3LjM0NzJDMzA0LjQ0IDU3LjU5NzIgMzA0LjUxIDU3Ljg0NzIgMzA0LjU4IDU4LjA5NzJDMzA0LjcyIDU4LjYyNzIgMzA0Ljg2IDU5LjE0NzIgMzA0Ljk5IDU5LjY3NzJDMzA1LjA1IDU5LjkwNzIgMzA1LjExIDYwLjEyNzIgMzA1LjE2IDYwLjM1NzJDMzA1LjMzIDYxLjA0NzIgMzA1LjQ5IDYxLjczNzIgMzA1LjYzIDYyLjQyNzJDMzA1LjY0IDYyLjQ4NzIgMzA1LjY2IDYyLjU1NzIgMzA1LjY3IDYyLjYxNzJDMzA1LjgzIDYzLjM2NzIgMzA1Ljk4IDY0LjExNzIgMzA2LjExIDY0Ljg2NzJDMzA2LjE1IDY1LjEwNzIgMzA2LjE5IDY1LjM0NzIgMzA2LjI0IDY1LjU5NzJDMzA2LjMzIDY2LjExNzIgMzA2LjQyIDY2LjYyNzIgMzA2LjUgNjcuMTM3MkMzMDYuNTQgNjcuNDI3MiAzMDYuNTggNjcuNzA3MiAzMDYuNjIgNjcuOTk3MkMzMDYuNjkgNjguNDc3MiAzMDYuNzUgNjguOTU3MiAzMDYuODEgNjkuNDI3MkMzMDYuODQgNjkuNzA3MiAzMDYuODggNjkuOTk3MiAzMDYuOTEgNzAuMjc3MkMzMDYuOTYgNzAuNzY3MiAzMDcuMDEgNzEuMjU3MiAzMDcuMDUgNzEuNzQ3MkMzMDcuMDcgNzIuMDA3MiAzMDcuMSA3Mi4yNjcyIDMwNy4xMiA3Mi41MTcyQzMwNy4xNyA3My4xNTcyIDMwNy4yMSA3My43ODcyIDMwNy4yNCA3NC40MjcyQzMwNy4yNCA3NC41MTcyIDMwNy4yNSA3NC42MTcyIDMwNy4yNiA3NC43MDcyQzMwNy4yOSA3NS40MzcyIDMwNy4zMSA3Ni4xNTcyIDMwNy4zMiA3Ni44NzcyQzMwNy4zMiA3Ny4wNzcyIDMwNy4zMiA3Ny4yODcyIDMwNy4zMiA3Ny40ODcyQzMwNy4zMiA3Ny45OTcyIDMwNy4zMiA3OC41MTcyIDMwNy4zIDc5LjAyNzJDMzA3LjMgNzkuMjc3MiAzMDcuMjggNzkuNTE3MiAzMDcuMjggNzkuNzY3MkMzMDcuMjYgODAuMjQ3MiAzMDcuMjQgODAuNzI3MiAzMDcuMiA4MS4yMDcyQzMwNy4xOSA4MS40MzcyIDMwNy4xNyA4MS42NjcyIDMwNy4xNSA4MS44OTcyQzMwNy4xIDgyLjU3NzIgMzA3LjA0IDgzLjI1NzIgMzA2Ljk2IDgzLjkyNzJDMzA2Ljg4IDg0LjYyNzIgMzA2Ljc4IDg1LjMxNzIgMzA2LjY3IDg1Ljk4NzJDMzA2LjY0IDg2LjE3NzIgMzA2LjYgODYuMzY3MiAzMDYuNTcgODYuNTU3MkMzMDYuNDkgODcuMDE3MiAzMDYuNDEgODcuNDc3MiAzMDYuMzIgODcuOTI3MkMzMDYuMjcgODguMTg3MiAzMDYuMjEgODguNDQ3MiAzMDYuMTUgODguNjk3MkMzMDYuMDcgODkuMDc3MiAzMDUuOTggODkuNDQ3MiAzMDUuODggODkuODE3MkMzMDUuODEgOTAuMDg3MiAzMDUuNzQgOTAuMzU3MiAzMDUuNjYgOTAuNjI3MkMzMDUuNTcgOTAuOTY3MiAzMDUuNDcgOTEuMzA3MiAzMDUuMzcgOTEuNjM3MkMzMDUuMjggOTEuOTM3MiAzMDUuMTggOTIuMjI3MiAzMDUuMDkgOTIuNTE3MkMzMDQuOTkgOTIuODE3MiAzMDQuODkgOTMuMTA3MiAzMDQuNzggOTMuMzk3MkMzMDQuNjYgOTMuNzM3MiAzMDQuNTMgOTQuMDY3MiAzMDQuMzkgOTQuMzk3MkMzMDQuMjkgOTQuNjU3MiAzMDQuMTggOTQuOTA3MiAzMDQuMDcgOTUuMTU3MkMzMDMuOSA5NS41NDcyIDMwMy43MiA5NS45MzcyIDMwMy41NCA5Ni4zMDcyQzMwMy40NCA5Ni41MDcyIDMwMy4zNSA5Ni43MTcyIDMwMy4yNCA5Ni45MTcyQzMwMi45MiA5Ny41NDcyIDMwMi41OCA5OC4xNTcyIDMwMi4yMiA5OC43MzcyQzMwMS45NCA5OS4xODcyIDMwMS42NSA5OS42MjcyIDMwMS4zNSAxMDAuMDQ3QzMwMS4zNSAxMDAuMDQ3IDMwMS4zNSAxMDAuMDU3IDMwMS4zNCAxMDAuMDY3QzMwMS4wNSAxMDAuNDc3IDMwMC43NCAxMDAuODc3IDMwMC40MyAxMDEuMjU3QzI5OS45OCAxMDEuODE3IDI5OS41IDEwMi4zMjcgMjk5LjAxIDEwMi44MjdDMjk4Ljg5IDEwMi45NDcgMjk4Ljc3IDEwMy4wNTcgMjk4LjY1IDEwMy4xNzdDMjk4LjE4IDEwMy42MjcgMjk3LjY5IDEwNC4wNTcgMjk3LjE5IDEwNC40NTdDMjk3LjE1IDEwNC40ODcgMjk3LjEyIDEwNC41MTcgMjk3LjA4IDEwNC41NDdDMjk2LjU0IDEwNC45NTcgMjk1Ljk5IDEwNS4zMzcgMjk1LjQyIDEwNS42ODdDMjk1LjI4IDEwNS43NjcgMjk1LjE0IDEwNS44NTcgMjk1IDEwNS45MzdDMjk0LjQyIDEwNi4yNzcgMjkzLjgzIDEwNi41ODcgMjkzLjIyIDEwNi44NTdMMzAzLjA1IDEwMi41NDdDMzAzLjY2IDEwMi4yNzcgMzA0LjI1IDEwMS45NjcgMzA0LjgzIDEwMS42MjdDMzA0Ljk3IDEwMS41NDcgMzA1LjExIDEwMS40NjcgMzA1LjI1IDEwMS4zNzdDMzA1LjgyIDEwMS4wMjcgMzA2LjM4IDEwMC42NTcgMzA2LjkxIDEwMC4yMzdDMzA2Ljk1IDEwMC4yMDcgMzA2Ljk4IDEwMC4xNzcgMzA3LjAyIDEwMC4xNDdDMzA3LjUyIDk5Ljc0NzIgMzA4LjAxIDk5LjMxNzIgMzA4LjQ4IDk4Ljg2NzJDMzA4LjYgOTguNzQ3MiAzMDguNzIgOTguNjM3MiAzMDguODQgOTguNTE3MkMzMDkuMzMgOTguMDI3MiAzMDkuODEgOTcuNTA3MiAzMTAuMjYgOTYuOTQ3MkMzMTAuMjcgOTYuOTI3MiAzMTAuMjkgOTYuOTE3MiAzMTAuMyA5Ni44OTcyQzMxMC42IDk2LjUyNzIgMzEwLjg5IDk2LjE0NzIgMzExLjE3IDk1Ljc0NzJDMzExLjE3IDk1Ljc0NzIgMzExLjE3IDk1LjczNzIgMzExLjE4IDk1LjcyNzJDMzExLjQ3IDk1LjMyNzIgMzExLjc0IDk0LjkwNzIgMzEyLjAxIDk0LjQ3NzJDMzEyLjAyIDk0LjQ1NzIgMzEyLjAzIDk0LjQzNzIgMzEyLjA0IDk0LjQxNzJDMzEyLjQgOTMuODM3MiAzMTIuNzQgOTMuMjI3MiAzMTMuMDYgOTIuNTk3MkMzMTMuMDkgOTIuNTQ3MiAzMTMuMTIgOTIuNDk3MiAzMTMuMTUgOTIuNDM3MkMzMTMuMjIgOTIuMjg3MiAzMTMuMjkgOTIuMTM3MiAzMTMuMzYgOTEuOTg3MkMzMTMuNTQgOTEuNjA3MiAzMTMuNzIgOTEuMjI3MiAzMTMuODkgOTAuODM3MkMzMTMuOTQgOTAuNzM3MiAzMTMuOTkgOTAuNjM3MiAzMTQuMDMgOTAuNTI3MkMzMTQuMDkgOTAuMzc3MiAzMTQuMTUgOTAuMjE3MiAzMTQuMjEgOTAuMDY3MkMzMTQuMzQgODkuNzM3MiAzMTQuNDcgODkuNDA3MiAzMTQuNiA4OS4wNjcyQzMxNC42NSA4OC45MjcyIDMxNC43MSA4OC43OTcyIDMxNC43NiA4OC42NTcyQzMxNC44MSA4OC41MDcyIDMxNC44NiA4OC4zNDcyIDMxNC45MSA4OC4xODcyQzMxNS4wMSA4Ny44OTcyIDMxNS4xIDg3LjYwNzIgMzE1LjE5IDg3LjMwNzJDMzE1LjI0IDg3LjE1NzIgMzE1LjI5IDg3LjAwNzIgMzE1LjM0IDg2Ljg1NzJDMzE1LjM5IDg2LjY3NzIgMzE1LjQ0IDg2LjQ4NzIgMzE1LjQ5IDg2LjMwNzJDMzE1LjU2IDg2LjAzNzIgMzE1LjY0IDg1Ljc3NzIgMzE1LjcxIDg1LjQ5NzJDMzE1Ljc1IDg1LjM1NzIgMzE1Ljc5IDg1LjIyNzIgMzE1LjgyIDg1LjA4NzJDMzE1Ljg4IDg0Ljg1NzIgMzE1LjkyIDg0LjYxNzIgMzE1Ljk4IDg0LjM3NzJDMzE2LjA0IDg0LjExNzIgMzE2LjEgODMuODY3MiAzMTYuMTUgODMuNjA3MkMzMTYuMTcgODMuNTA3MiAzMTYuMiA4My40MDcyIDMxNi4yMiA4My4yOTcyQzMxNi4yOSA4Mi45NDcyIDMxNi4zNSA4Mi41OTcyIDMxNi40MSA4Mi4yMzcyQzMxNi40NCA4Mi4wNDcyIDMxNi40OCA4MS44NTcyIDMxNi41MSA4MS42NjcyQzMxNi41MSA4MS42MTcyIDMxNi41MyA4MS41NzcyIDMxNi41MyA4MS41MjcyQzMxNi42MiA4MC45MzcyIDMxNi43MSA4MC4zMjcyIDMxNi43OCA3OS43MDcyQzMxNi43OCA3OS42NjcyIDMxNi43OCA3OS42MzcyIDMxNi43OSA3OS41OTcyQzMxNi44NiA3OS4wMzcyIDMxNi45MSA3OC40NjcyIDMxNi45NiA3Ny44OTcyQzMxNi45NiA3Ny43ODcyIDMxNi45NyA3Ny42NzcyIDMxNi45OCA3Ny41NzcyQzMxNyA3Ny4zNDcyIDMxNy4wMSA3Ny4xMTcyIDMxNy4wMyA3Ni44ODcyTDMxNy4wNSA3Ni44NDcyWiIgZmlsbD0iIzNCNTJBMSI+PC9wYXRoPjwvZz48cGF0aCBkPSJNMjkzLjE1IDEwOC4yODlDMjkyLjYxIDEwOC4yNDkgMjkyLjExIDEwNy45MTkgMjkxLjg4IDEwNy4zOTlDMjkxLjU1IDEwNi42MzkgMjkxLjg5IDEwNS43NTkgMjkyLjY1IDEwNS40MTlDMjkzLjE0IDEwNS4yMDkgMjkzLjY1IDEwNC45MzkgMjk0LjI3IDEwNC41NzlDMjk0LjQgMTA0LjUwOSAyOTQuNTIgMTA0LjQyOSAyOTQuNjUgMTA0LjM0OUMyOTUuMjQgMTAzLjk4OSAyOTUuNzQgMTAzLjYzOSAyOTYuMTggMTAzLjMwOUwyOTYuMjkgMTAzLjIxOUMyOTYuNzIgMTAyLjg3OSAyOTcuMTYgMTAyLjQ4OSAyOTcuNjQgMTAyLjAzOUMyOTcuNzggMTAxLjkwOSAyOTcuODggMTAxLjgwOSAyOTcuOTcgMTAxLjcxOUMyOTguNDcgMTAxLjIwOSAyOTguOTEgMTAwLjczOSAyOTkuMjkgMTAwLjI1OUMyOTkuNTggOTkuODk4NiAyOTkuODcgOTkuNTI4NiAzMDAuMTUgOTkuMTM4NkMzMDAuMTUgOTkuMTM4NiAzMDAuMTkgOTkuMDg4NiAzMDAuMiA5OS4wNjg2QzMwMC40NCA5OC43Mjg2IDMwMC43MSA5OC4zMTg2IDMwMC45NyA5Ny44OTg2QzMwMS4yOSA5Ny4zNzg2IDMwMS42MSA5Ni44MTg2IDMwMS45NCA5Ni4xNzg2QzMwMi4wMSA5Ni4wNDg2IDMwMi4wNyA5NS45MDg2IDMwMi4xNCA5NS43Njg2TDMwMi4yMiA5NS41OTg2QzMwMi4zOSA5NS4yMzg2IDMwMi41NiA5NC44Nzg2IDMwMi43MyA5NC41MDg2QzMwMi44MyA5NC4yNjg2IDMwMi45MyA5NC4wMjg2IDMwMy4wMyA5My43ODg2QzMwMy4xNiA5My40Njg2IDMwMy4yOCA5My4xNTg2IDMwMy40IDkyLjgyODZDMzAzLjUgOTIuNTU4NiAzMDMuNiA5Mi4yNzg2IDMwMy42OSA5MS45ODg2QzMwMy43OCA5MS43MDg2IDMwMy44NyA5MS40Mjg2IDMwMy45NiA5MS4xNDg2QzMwNC4wNiA5MC44Mjg2IDMwNC4xNSA5MC41MDg2IDMwNC4yNCA5MC4xNzg2QzMwNC4zMSA4OS45Mjg2IDMwNC4zOCA4OS42Njg2IDMwNC40NCA4OS40MDg2QzMwNC41MyA4OS4wNDg2IDMwNC42MiA4OC42ODg2IDMwNC43IDg4LjMxODZMMzA0LjczIDg4LjE5ODZDMzA0Ljc4IDg3Ljk4ODYgMzA0LjgyIDg3Ljc4ODYgMzA0Ljg3IDg3LjU3ODZDMzA0Ljk2IDg3LjE0ODYgMzA1LjA0IDg2LjcwODYgMzA1LjEyIDg2LjI1ODZMMzA1LjIyIDg1LjcwODZDMzA1LjMyIDg1LjA0ODYgMzA1LjQyIDg0LjM4ODYgMzA1LjUgODMuNzA4NkMzMDUuNTggODMuMDU4NiAzMDUuNjMgODIuMzk4NiAzMDUuNjggODEuNzM4NkwzMDUuNzMgODEuMDU4NkMzMDUuNzYgODAuNTk4NiAzMDUuNzggODAuMTI4NiAzMDUuOCA3OS42NTg2QzMwNS44IDc5LjQxODYgMzA1LjgyIDc5LjE3ODYgMzA1LjgyIDc4Ljk0ODZDMzA1LjgzIDc4LjQ0ODYgMzA1Ljg0IDc3Ljk0ODYgMzA1Ljg0IDc3LjQ0ODZWNzYuODU4NkMzMDUuODQgNzYuMTU4NiAzMDUuODIgNzUuNDQ4NiAzMDUuNzggNzQuNzM4NlY3NC40Njg2QzMwNS43NCA3My44Mzg2IDMwNS43IDczLjIxODYgMzA1LjY1IDcyLjU5ODZMMzA1LjU4IDcxLjgzODZDMzA1LjU0IDcxLjM1ODYgMzA1LjQ5IDcwLjg3ODYgMzA1LjQ0IDcwLjM5ODZDMzA1LjQxIDcwLjExODYgMzA1LjM4IDY5Ljg0ODYgMzA1LjM0IDY5LjU2ODZDMzA1LjI4IDY5LjA5ODYgMzA1LjIyIDY4LjYyODYgMzA1LjE1IDY4LjE1ODZMMzA1LjAzIDY3LjMxODZDMzA0Ljk1IDY2LjgxODYgMzA0Ljg3IDY2LjMwODYgMzA0Ljc4IDY1LjgwODZMMzA0LjY2IDY1LjA5ODZDMzA0LjUyIDY0LjM1ODYgMzA0LjM4IDYzLjYyODYgMzA0LjIyIDYyLjg4ODZMMzA0LjE4IDYyLjY4ODZDMzA0LjA0IDYyLjAyODYgMzAzLjg4IDYxLjM0ODYgMzAzLjcyIDYwLjY2ODZMMzAzLjU1IDYwLjAwODZDMzAzLjQyIDU5LjQ4ODYgMzAzLjI4IDU4Ljk2ODYgMzAzLjE0IDU4LjQ1ODZMMzAyLjk0IDU3LjcxODZDMzAyLjc5IDU3LjE3ODYgMzAyLjYzIDU2LjYzODYgMzAyLjQ3IDU2LjA5ODZMMzAyLjMgNTUuNTI4NkMzMDIuMDggNTQuODA4NiAzMDEuODQgNTQuMDg4NiAzMDEuNiA1My4zNjg2TDMwMS40MSA1Mi44MTg2QzMwMS4yMiA1Mi4yNjg2IDMwMS4wMiA1MS43MDg2IDMwMC44MiA1MS4xNTg2QzMwMC43IDUwLjgzODYgMzAwLjU4IDUwLjUyODYgMzAwLjQ2IDUwLjIxODZMMzAwLjI2IDQ5LjcwODZDMzAwLjE1IDQ5LjQyODYgMzAwLjA0IDQ5LjEzODYgMjk5LjkzIDQ4Ljg1ODZDMjk5LjUyIDQ3LjgzODYgMjk5LjEgNDYuODI4NiAyOTguNjUgNDUuODE4NkwyOTguNDEgNDUuMjc4NkMyOTcuNzYgNDMuODM4NiAyOTcuMDkgNDIuNDM4NiAyOTYuNCA0MS4wOTg2TDI5Ni4wOSA0MC40OTg2QzI5NS40MyAzOS4yMzg2IDI5NC44NyAzOC4yMTg2IDI5NC4zMyAzNy4yNjg2QzI5My44OSAzNi41MDg2IDI5My40NSAzNS43NTg2IDI5Mi45OSAzNS4wMTg2QzI5Mi42NCAzNC40NTg2IDI5Mi4yOSAzMy44OTg2IDI5MS45MyAzMy4zNDg2TDI5MS43MiAzMy4wMTg2QzI5MS4yOSAzMi4zNTg2IDI5MC44NSAzMS43MTg2IDI5MC40MSAzMS4wNzg2TDI5MC4wMiAzMC41Mzg2QzI4OS43IDMwLjA4ODYgMjg5LjM4IDI5LjY0ODYgMjg5LjA2IDI5LjIwODZDMjg4LjkzIDI5LjAyODYgMjg4Ljc5IDI4Ljg0ODYgMjg4LjY2IDI4LjY3ODZMMjg4LjUxIDI4LjQ3ODZDMjg4LjIzIDI4LjEwODYgMjg3Ljk0IDI3LjczODYgMjg3LjY2IDI3LjM2ODZDMjg3LjQ4IDI3LjEzODYgMjg3LjMgMjYuOTE4NiAyODcuMTEgMjYuNjg4NkwyODcuMDQgMjYuNjA4NkMyODYuNzYgMjYuMjY4NiAyODYuNDggMjUuOTE4NiAyODYuMiAyNS41ODg2QzI4NS45OCAyNS4zMjg2IDI4NS43NSAyNS4wNTg2IDI4NS41MyAyNC44MDg2QzI4NS4yNSAyNC40ODg2IDI4NC45NyAyNC4xNjg2IDI4NC42OCAyMy44NDg2QzI4NC40NSAyMy41OTg2IDI4NC4yMyAyMy4zNDg2IDI4NCAyMy4wOTg2QzI4My43MSAyMi43ODg2IDI4My40MiAyMi40Nzg2IDI4My4xMiAyMi4xNjg2QzI4Mi45IDIxLjkzODYgMjgyLjY3IDIxLjcwODYgMjgyLjQ0IDIxLjQ3ODZDMjgyLjEzIDIxLjE2ODYgMjgxLjgyIDIwLjg1ODYgMjgxLjUgMjAuNTU4NkMyODEuMjggMjAuMzM4NiAyODEuMDcgMjAuMTQ4NiAyODAuODcgMTkuOTQ4NkMyODAuNTIgMTkuNjI4NiAyODAuMTcgMTkuMzA4NiAyNzkuODIgMTguOTg4NkwyNzkuMjggMTguNTA4NkMyNzguNzUgMTguMDQ4NiAyNzguMjIgMTcuNTk4NiAyNzcuNjkgMTcuMTY4NkwyNzcuNTkgMTcuMDg4NkMyNzcuMDQgMTYuNjQ4NiAyNzYuNDkgMTYuMjE4NiAyNzUuOTMgMTUuNzk4NkMyNzUuNDMgMTUuNDI4NiAyNzQuOTMgMTUuMDc4NiAyNzQuNDMgMTQuNzM4NkwyNzMuODcgMTQuMzU4NkMyNzMuNDkgMTQuMTA4NiAyNzMuMTEgMTMuODY4NiAyNzIuNzQgMTMuNjM4NkwyNzIuMjUgMTMuMzM4NkMyNzEuMTkgMTIuNzA4NiAyNzAuMTMgMTIuMTI4NiAyNjkuMDggMTEuNjM4NkwyNjguNTggMTEuNDA4NkMyNjguMjIgMTEuMjQ4NiAyNjcuODcgMTEuMDg4NiAyNjcuNTIgMTAuOTM4NkMyNjcuMzEgMTAuODQ4NiAyNjcuMTEgMTAuNzY4NiAyNjYuOSAxMC42ODg2QzI2Ni41OCAxMC41NTg2IDI2Ni4yNiAxMC40Mzg2IDI2NS45MyAxMC4zMjg2QzI2NS43MiAxMC4yNTg2IDI2NS41MiAxMC4xNzg2IDI2NS4zMSAxMC4xMTg2QzI2NS4wMSAxMC4wMTg2IDI2NC43MSA5LjkyODU5IDI2NC40MSA5Ljg0ODU5TDI2NC4zIDkuODE4NTlDMjY0LjEgOS43NTg1OSAyNjMuOSA5LjY5ODU5IDI2My43IDkuNjQ4NTlDMjYzLjQ0IDkuNTc4NTkgMjYzLjE4IDkuNTE4NTkgMjYyLjkyIDkuNDU4NTlMMjYyLjc1IDkuNDE4NTlDMjYyLjU0IDkuMzY4NTkgMjYyLjMzIDkuMzE4NTkgMjYyLjEyIDkuMjc4NTlDMjYxLjkzIDkuMjM4NTkgMjYxLjc0IDkuMjA4NTkgMjYxLjU1IDkuMTc4NTlMMjYxLjM4IDkuMTQ4NTlDMjYxLjA4IDkuMDk4NTkgMjYwLjc4IDkuMDQ4NTkgMjYwLjQ5IDkuMDE4NTlDMjYwLjMyIDguOTk4NTkgMjYwLjE1IDguOTc4NTkgMjU5Ljk4IDguOTY4NTlIMjU5Ljg1QzI1OS40OCA4LjkyODU5IDI1OS4xMSA4Ljg5ODU5IDI1OC43NCA4Ljg4ODU5QzI1OC41NCA4Ljg4ODU5IDI1OC4zNSA4Ljg3ODU5IDI1OC4xNiA4Ljg3ODU5QzI1Ny41NSA4Ljg3ODU5IDI1Ny4wMSA4Ljg4ODU5IDI1Ni41IDguOTI4NTlDMjU2LjQ4IDguOTI4NTkgMjU2LjM3IDguOTI4NTkgMjU2LjM0IDguOTI4NTlMMjU1Ljk5IDguOTY4NTlDMjU1LjY1IDkuMDA4NTkgMjU1LjMxIDkuMDQ4NTkgMjU0Ljk4IDkuMDk4NTlDMjU0Ljg4IDkuMTE4NTkgMjU0Ljc4IDkuMTM4NTkgMjU0LjY5IDkuMTU4NTlMMjU0LjUgOS4xOTg1OUMyNTQuMjMgOS4yNDg1OSAyNTMuOTYgOS4yOTg1OSAyNTMuNyA5LjM2ODU5QzI1My4zOCA5LjQ0ODU5IDI1My4wNiA5LjUzODU5IDI1Mi43NCA5LjYzODU5TDI1Mi41MiA5LjcwODU5QzI1Mi40NCA5LjcyODU5IDI1Mi4zNiA5Ljc0ODU5IDI1Mi4yOCA5Ljc3ODU5QzI1MS43OSA5Ljk0ODU5IDI1MS4zNCAxMC4xMTg2IDI1MC45MiAxMC4yOTg2SDI1MC45MUMyNTAuMTUgMTAuNjM4NiAyNDkuMjcgMTAuMjk4NiAyNDguOTMgOS41Mjg1OUMyNDguNiA4Ljc2ODU5IDI0OC45NCA3Ljg4ODU5IDI0OS43IDcuNTQ4NTlMMjU5LjUzIDMuMjM4NTlDMjYwLjAzIDMuMDE4NTkgMjYwLjU2IDIuODE4NTkgMjYxLjE0IDIuNjE4NTlDMjYxLjI2IDIuNTc4NTkgMjYxLjM5IDIuNTM4NTkgMjYxLjUxIDIuNTA4NTlMMjYxLjY4IDIuNDU4NTlDMjYyLjA2IDIuMzQ4NTkgMjYyLjQzIDIuMjM4NTkgMjYyLjgxIDIuMTM4NTlDMjYyLjg3IDIuMTE4NTkgMjYyLjk0IDIuMDk4NTkgMjYzIDIuMDg4NTlDMjYzLjE4IDIuMDQ4NTkgMjYzLjM2IDIuMDE4NTkgMjYzLjU0IDEuOTc4NTlMMjYzLjkxIDEuOTA4NTlDMjY0LjA0IDEuODc4NTkgMjY0LjE3IDEuODU4NTkgMjY0LjMxIDEuODI4NTlDMjY0LjcgMS43Njg1OSAyNjUuMDkgMS43MTg1OSAyNjUuNDkgMS42Nzg1OUgyNjUuNkMyNjUuNjkgMS42NDg1OSAyNjUuNzkgMS42Mzg1OSAyNjUuODggMS42Mjg1OUMyNjUuOTkgMS42MTg1OSAyNjYuMDUgMS42MTg1OSAyNjYuMTIgMS42MTg1OUMyNjYuNjkgMS41Nzg1OSAyNjcuMzIgMS41NTg1OSAyNjguMDEgMS41NTg1OUMyNjguMTIgMS41NTg1OSAyNjguMjEgMS41NTg1OSAyNjguMjkgMS41NTg1OUMyNjguMzkgMS41NTg1OSAyNjguNDggMS41NTg1OSAyNjguNTggMS41Nzg1OUMyNjkuMSAxLjU5ODU5IDI2OS41MiAxLjYyODU5IDI2OS45NSAxLjY2ODU5SDI3MC4wN0MyNzAuMTggMS42Nzg1OSAyNzAuMjggMS42ODg1OSAyNzAuMzkgMS42OTg1OUMyNzAuNDYgMS42OTg1OSAyNzAuNTMgMS43MTg1OSAyNzAuNjEgMS43Mjg1OUMyNzEuMDEgMS43Nzg1OSAyNzEuMzUgMS44Mjg1OSAyNzEuNjkgMS44ODg1OUwyNzEuODggMS45MTg1OUMyNzIuMDEgMS45Mzg1OSAyNzIuMTQgMS45NDg1OSAyNzIuMjcgMS45Nzg1OUwyNzIuNDcgMi4wMTg1OUMyNzIuNzYgMi4wNzg1OSAyNzMgMi4xMjg1OSAyNzMuMjUgMi4xODg1OUwyNzMuNiAyLjI2ODU5QzI3My43NCAyLjI5ODU5IDI3My44OSAyLjMyODU5IDI3NC4wNCAyLjM2ODU5TDI3NC4yNCAyLjQyODU5QzI3NC41NCAyLjUwODU5IDI3NC43NyAyLjU3ODU5IDI3NC45OSAyLjYzODU5TDI3NS4zMyAyLjczODU5QzI3NS40NiAyLjc3ODU5IDI3NS42IDIuODA4NTkgMjc1Ljc0IDIuODU4NTlMMjc2LjEgMi45ODg1OUMyNzYuMzIgMy4wNTg1OSAyNzYuNTUgMy4xMzg1OSAyNzYuNzcgMy4yMTg1OUwyNzYuOTYgMy4yNzg1OUMyNzcuMDggMy4zMTg1OSAyNzcuMiAzLjM1ODU5IDI3Ny4zMiAzLjM5ODU5QzI3Ny40MyAzLjQzODU5IDI3Ny41NCAzLjQ4ODU5IDI3Ny42NSAzLjUyODU5TDI3Ny44NCAzLjYwODU5QzI3OC4wNiAzLjY5ODU5IDI3OC4yOSAzLjc4ODU5IDI3OC41MSAzLjg3ODU5TDI3OC44OSA0LjAyODU5QzI3OS4wNyA0LjEwODU5IDI3OS4yNSA0LjE4ODU5IDI3OS40MyA0LjI2ODU5TDI4MC40IDQuNzE4NTlDMjgwLjkgNC45NTg1OSAyODEuNCA1LjIxODU5IDI4MS45IDUuNDg4NTlDMjgyLjQxIDUuNzU4NTkgMjgyLjkgNi4wMzg1OSAyODMuNCA2LjMzODU5TDI4NC4zOCA2LjkzODU5QzI4NC41NSA3LjAzODU5IDI4NC43MiA3LjE0ODU5IDI4NC45IDcuMjU4NTlMMjg2LjQgOC4yNTg1OUMyODYuNzkgOC41Mjg1OSAyODcuMTcgOC44MDg1OSAyODcuNTYgOS4wODg1OUwyODcuOTEgOS4zNDg1OUMyODguMzggOS42OTg1OSAyODguODQgMTAuMDY4NiAyODkuMzEgMTAuNDM4NkwyODkuNDMgMTAuNTI4NkMyODkuOTUgMTAuOTQ4NiAyOTAuNDYgMTEuMzc4NiAyOTAuOTYgMTEuODA4NkwyOTEuMDggMTEuOTA4NkMyOTEuMjQgMTIuMDQ4NiAyOTEuMzYgMTIuMTU4NiAyOTEuNDkgMTIuMjc4NkwyOTEuOTMgMTIuNjY4NkMyOTIuMTIgMTIuODM4NiAyOTIuMzIgMTMuMDA4NiAyOTIuNTEgMTMuMTg4NkwyOTIuNzggMTMuNDQ4NkMyOTIuOTggMTMuNjI4NiAyOTMuMTcgMTMuODE4NiAyOTMuMzYgMTQuMDA4NkwyOTMuNjYgMTQuMjk4NkMyOTMuNzkgMTQuNDE4NiAyOTMuOTIgMTQuNTQ4NiAyOTQuMDUgMTQuNjY4NkwyOTQuNDIgMTUuMDQ4NkMyOTQuNjYgMTUuMjg4NiAyOTQuOSAxNS41Mzg2IDI5NS4xMyAxNS43Nzg2TDI5Ni4wNCAxNi43NDg2QzI5Ni4yOCAxNy4wMDg2IDI5Ni41MiAxNy4yNjg2IDI5Ni43NSAxNy41Mjg2TDI5Ny4xNCAxNy45NTg2QzI5Ny4yNSAxOC4wNzg2IDI5Ny4zNSAxOC4xOTg2IDI5Ny40NiAxOC4zMjg2TDI5Ny42NCAxOC41Mzg2QzI5Ny44NyAxOC44MDg2IDI5OC4xMSAxOS4wNzg2IDI5OC4zNCAxOS4zNTg2TDI5OC42NiAxOS43Mzg2QzI5OC43OCAxOS44Nzg2IDI5OC45IDIwLjAyODYgMjk5LjAyIDIwLjE3ODZMMjk5LjMzIDIwLjU1ODZDMjk5LjUxIDIwLjc3ODYgMjk5LjY4IDIwLjk5ODYgMjk5Ljg2IDIxLjIxODZMMzAwLjEgMjEuNTE4NkMzMDAuMjQgMjEuNjk4NiAzMDAuMzggMjEuODg4NiAzMDAuNTIgMjIuMDY4NkwzMDEuNDggMjMuMzM4NkMzMDEuNjkgMjMuNjI4NiAzMDEuOSAyMy45MTg2IDMwMi4xMSAyNC4yMTg2TDMwMi43OSAyNS4xNjg2QzMwMy4yMiAyNS43ODg2IDMwMy42NSAyNi40Mjg2IDMwNC4wNyAyNy4wNjg2QzMwNC4wOSAyNy4wOTg2IDMwNC4xMiAyNy4xMzg2IDMwNC4xMyAyNy4xNjg2TDMwNC4zMSAyNy40NDg2QzMwNC42NiAyNy45ODg2IDMwNSAyOC41MTg2IDMwNS4zNCAyOS4wNTg2QzMwNS4zNCAyOS4wNjg2IDMwNS4zOSAyOS4xMzg2IDMwNS40IDI5LjE0ODZDMzA1Ljg3IDI5LjkwODYgMzA2LjMzIDMwLjY3ODYgMzA2Ljc3IDMxLjQ0ODZDMzA3LjM2IDMyLjQ2ODYgMzA3Ljk0IDMzLjUyODYgMzA4LjYxIDM0LjgyODZMMzA4LjkgMzUuMzg4NkMzMDkuNjQgMzYuODM4NiAzMTAuMzQgMzguMjg4NiAzMTEgMzkuNzY4NkMzMTEuMDggMzkuOTE4NiAzMTEuMTEgMzkuOTk4NiAzMTEuMTQgNDAuMDY4NkwzMTEuMjUgNDAuMzI4NkMzMTEuNzEgNDEuMzY4NiAzMTIuMTUgNDIuNDE4NiAzMTIuNTcgNDMuNDY4NkwzMTIuNjQgNDMuNjM4NkMzMTIuNzIgNDMuODQ4NiAzMTIuOCA0NC4wNTg2IDMxMi44OCA0NC4yNjg2TDMxMy4xMyA0NC45Mzg2QzMxMy4yNSA0NS4yMzg2IDMxMy4zNiA0NS41Mzg2IDMxMy40NyA0NS44Mzg2TDMxMy41NiA0Ni4wNTg2QzMxMy43MyA0Ni41Mjg2IDMxMy44OSA0Ni45ODg2IDMxNC4wNSA0Ny40NDg2TDMxNC4yOCA0OC4xMTg2QzMxNC4yOCA0OC4xMTg2IDMxNC4zMSA0OC4yMTg2IDMxNC4zMiA0OC4yMjg2QzMxNC41MyA0OC44NDg2IDMxNC43NCA0OS40OTg2IDMxNC45NSA1MC4xNDg2TDMxNS4yOCA1MS4yNDg2QzMxNS4zNiA1MS41MTg2IDMxNS40NSA1MS43ODg2IDMxNS41MiA1Mi4wNTg2TDMxNi4wNiA1NC4wMDg2QzMxNi4xMiA1NC4yMjg2IDMxNi4xNyA1NC40NDg2IDMxNi4yMyA1NC42Njg2TDMxNi41NSA1NS45NTg2QzMxNi42OSA1Ni41Njg2IDMxNi44MyA1Ny4xNjg2IDMxNi45NiA1Ny43Njg2TDMxNi45OSA1Ny45Mjg2QzMxNi45OSA1Ny45Mjg2IDMxNy4wMSA1OC4wMjg2IDMxNy4wMiA1OC4wNjg2QzMxNy4xNSA1OC42Nzg2IDMxNy4yOSA1OS4zNjg2IDMxNy40MiA2MC4wNDg2TDMxNy42NCA2MS4zMzg2QzMxNy42OSA2MS42MDg2IDMxNy43MyA2MS44Nzg2IDMxNy43OCA2Mi4xNDg2TDMxNy44NCA2Mi41Nzg2QzMxNy44OCA2Mi44Njg2IDMxNy45MyA2My4xNDg2IDMxNy45NyA2My40Mzg2TDMxOC4xNiA2NC45MDg2QzMxOC4yIDY1LjE5ODYgMzE4LjIzIDY1LjQ4ODYgMzE4LjI2IDY1Ljc3ODZMMzE4LjMyIDY2LjMxODZDMzE4LjM0IDY2LjUzODYgMzE4LjM2IDY2Ljc1ODYgMzE4LjM4IDY2Ljk3ODZMMzE4LjUgNjguMzc4NkMzMTguNTQgNjguOTI4NiAzMTguNTcgNjkuNDc4NiAzMTguNiA3MC4wMjg2TDMxOC42MiA3MC4zMTg2QzMxOC42NSA3MS4wMTg2IDMxOC42NyA3MS42Nzg2IDMxOC42OCA3Mi4zMjg2VjczLjM5ODZDMzE4LjY4IDczLjY3ODYgMzE4LjY4IDczLjk2ODYgMzE4LjY4IDc0LjI0ODZMMzE4LjYzIDc1LjczODZDMzE4LjYzIDc1Ljg3ODYgMzE4LjYzIDc2LjAxODYgMzE4LjYyIDc2LjE0ODZDMzE4LjYyIDc2LjMyODYgMzE4LjYgNzYuNTA4NiAzMTguNTggNzYuNjg4NkwzMTguNTUgNzcuMDk4NkMzMTguNTQgNzcuMjk4NiAzMTguNTMgNzcuNDk4NiAzMTguNTEgNzcuNjk4NkwzMTguNDkgNzguMDI4NkMzMTguNDQgNzguNjE4NiAzMTguMzggNzkuMTk4NiAzMTguMzEgNzkuNzc4NkwzMTguMyA3OS44ODg2QzMxOC4yMiA4MC41MTg2IDMxOC4xNCA4MS4xNDg2IDMxOC4wNCA4MS43NTg2QzMxOC4wNCA4MS43Njg2IDMxOC4wMiA4MS44Nzg2IDMxOC4wMiA4MS44ODg2TDMxNy44NiA4Mi43Nzg2QzMxNy44MSA4My4wNDg2IDMxNy43NyA4My4zMTg2IDMxNy43MiA4My41ODg2TDMxNy42NSA4My45MTg2QzMxNy42MSA4NC4xMTg2IDMxNy41NiA4NC4zMjg2IDMxNy41MSA4NC41Mzg2TDMxNy40MiA4NC45Njg2QzMxNy4zOSA4NS4xMjg2IDMxNy4zNSA4NS4yODg2IDMxNy4zMSA4NS40NDg2QzMxNy4yOSA4NS41Mzg2IDMxNy4yNiA4NS42Mzg2IDMxNy4yNCA4NS43Mjg2TDMxNy4yIDg1Ljg3ODZDMzE3LjEzIDg2LjE1ODYgMzE3LjA1IDg2LjQzODYgMzE2Ljk4IDg2LjcxODZMMzE2LjkyIDg2LjkyODZDMzE2Ljg5IDg3LjA0ODYgMzE2Ljg2IDg3LjE2ODYgMzE2LjgyIDg3LjI4ODZMMzE2LjY3IDg3Ljc2ODZDMzE2LjU4IDg4LjA3ODYgMzE2LjQ4IDg4LjM4ODYgMzE2LjM3IDg4LjY4ODZMMzE2LjMyIDg4Ljg1ODZDMzE2LjI5IDg4Ljk2ODYgMzE2LjI1IDg5LjA2ODYgMzE2LjIyIDg5LjE2ODZDMzE2LjE4IDg5LjI2ODYgMzE2LjE1IDg5LjM1ODYgMzE2LjExIDg5LjQ0ODZMMzE2LjA1IDg5LjU5ODZDMzE1LjkyIDg5Ljk0ODYgMzE1Ljc5IDkwLjI5ODYgMzE1LjY1IDkwLjYzODZMMzE1LjU5IDkwLjgwODZDMzE1LjU1IDkwLjkxODYgMzE1LjUxIDkxLjAxODYgMzE1LjQ3IDkxLjExODZDMzE1LjQ0IDkxLjE4ODYgMzE1LjQgOTEuMjY4NiAzMTUuMzYgOTEuMzQ4NkMzMTUuMTQgOTEuODQ4NiAzMTQuOTUgOTIuMjQ4NiAzMTQuNzYgOTIuNjQ4NkwzMTQuNjkgOTIuODA4NkMzMTQuNjQgOTIuOTA4NiAzMTQuNiA5My4wMTg2IDMxNC41NSA5My4xMTg2QzMxNC41MyA5My4xNDg2IDMxNC40OCA5My4yNTg2IDMxNC40NiA5My4yNzg2QzMxNC4xIDkzLjk4ODYgMzEzLjc0IDk0LjYxODYgMzEzLjM3IDk1LjIwODZDMzEzLjA1IDk1LjcyODYgMzEyLjc2IDk2LjE2ODYgMzEyLjQ1IDk2LjU5ODZDMzEyLjQ1IDk2LjU5ODYgMzEyLjQ0IDk2LjYxODYgMzEyLjQzIDk2LjYyODZDMzEyLjEzIDk3LjA0ODYgMzExLjgzIDk3LjQ0ODYgMzExLjUxIDk3LjgzODZDMzExLjQ5IDk3Ljg1ODYgMzExLjQ2IDk3Ljg5ODYgMzExLjQ0IDk3LjkxODZDMzEwLjk5IDk4LjQ2ODYgMzEwLjUxIDk4Ljk5ODYgMzA5Ljk1IDk5LjU1ODZDMzA5LjgzIDk5LjY3ODYgMzA5LjcxIDk5Ljc5ODYgMzA5LjU5IDk5LjkwODZDMzA5LjAxIDEwMC40NTkgMzA4LjUgMTAwLjkwOSAzMDcuOTkgMTAxLjMwOUMzMDcuOTYgMTAxLjMzOSAzMDcuOTEgMTAxLjM3OSAzMDcuODcgMTAxLjQwOUMzMDcuMzQgMTAxLjgxOSAzMDYuNzUgMTAyLjIxOSAzMDYuMDggMTAyLjYzOUMzMDUuOTMgMTAyLjcyOSAzMDUuNzggMTAyLjgxOSAzMDUuNjMgMTAyLjkwOUMzMDQuOTEgMTAzLjMyOSAzMDQuMyAxMDMuNjM5IDMwMy43IDEwMy44OTlMMjkzLjg4IDEwOC4yMDlDMjkzLjg4IDEwOC4yMDkgMjkzLjg4IDEwOC4yMDkgMjkzLjg3IDEwOC4yMDlDMjkzLjY0IDEwOC4zMDkgMjkzLjQgMTA4LjM0OSAyOTMuMTYgMTA4LjMyOUwyOTMuMTUgMTA4LjI4OVpNMzAyLjYxIDEwMC44NTlDMzAyLjYxIDEwMC44NTkgMzAyLjYxIDEwMC44NjkgMzAyLjYgMTAwLjg3OUMzMDIuNTQgMTAwLjk2OSAzMDIuNDggMTAxLjA0OSAzMDIuNDEgMTAxLjEzOUwzMDIuNDggMTAxLjEwOUMzMDIuOTggMTAwLjg4OSAzMDMuNDkgMTAwLjYyOSAzMDQuMTEgMTAwLjI2OUMzMDQuMjQgMTAwLjE5OSAzMDQuMzcgMTAwLjExOSAzMDQuNDkgMTAwLjAzOUMzMDUuMDggOTkuNjc4NiAzMDUuNTggOTkuMzM4NiAzMDYuMDIgOTguOTg4NkwzMDYuMTEgOTguOTE4NkMzMDYuNTUgOTguNTY4NiAzMDYuOTkgOTguMTg4NiAzMDcuNDcgOTcuNzI4NkMzMDcuNiA5Ny42MDg2IDMwNy43IDk3LjUwODYgMzA3LjggOTcuNDA4NkMzMDguMyA5Ni44OTg2IDMwOC43MyA5Ni40Mjg2IDMwOS4xMiA5NS45NDg2QzMwOS4xNCA5NS45Mjg2IDMwOS4xNiA5NS44OTg2IDMwOS4xOSA5NS44Njg2QzMwOS40NiA5NS41Mzg2IDMwOS43MiA5NS4xODg2IDMwOS45NyA5NC44Mjg2QzMwOS45NyA5NC44Mjg2IDMwOS45OCA5NC44MDg2IDMwOS45OSA5NC43OTg2QzMxMC4yNiA5NC40MTg2IDMxMC41MSA5NC4wMzg2IDMxMC43NiA5My42Mzg2QzMxMS4xMiA5My4wNTg2IDMxMS40MyA5Mi40ODg2IDMxMS43NiA5MS44NTg2QzMxMS43NyA5MS44Mjg2IDMxMS44MyA5MS43Mjg2IDMxMS44NSA5MS42OTg2TDMxMi4wNCA5MS4yNzg2QzMxMi4yMiA5MC45MTg2IDMxMi4zOSA5MC41NTg2IDMxMi41NSA5MC4xNzg2TDMxMi44NSA4OS40NDg2QzMxMi45NyA4OS4xMzg2IDMxMy4xIDg4LjgxODYgMzEzLjIyIDg4LjQ5ODZMMzEzLjUxIDg3LjY1ODZDMzEzLjYxIDg3LjM3ODYgMzEzLjY5IDg3LjA5ODYgMzEzLjc4IDg2LjgxODZMMzE0LjA2IDg1Ljg0ODZDMzE0LjEzIDg1LjU4ODYgMzE0LjIgODUuMzI4NiAzMTQuMjcgODUuMDY4NkwzMTQuMzcgODQuNjc4NkMzMTQuNCA4NC41Mzg2IDMxNC40MyA4NC40MDg2IDMxNC40NiA4NC4yNzg2TDMxNC41NiA4My44MDg2QzMxNC42IDgzLjYxODYgMzE0LjY1IDgzLjQyODYgMzE0LjY4IDgzLjIzODZMMzE0Ljc0IDgyLjk0ODZDMzE0Ljc5IDgyLjY5ODYgMzE0LjgzIDgyLjQ1ODYgMzE0Ljg3IDgyLjIxODZMMzE1LjAyIDgxLjM3ODZMMzE2LjUzIDgxLjQ2ODZMMzE1LjA1IDgxLjIzODZDMzE1LjE0IDgwLjY1ODYgMzE1LjIyIDgwLjA3ODYgMzE1LjI5IDc5LjQ3ODZMMzE2Ljc5IDc5LjU0ODZMMzE1LjMgNzkuMzc4NkMzMTUuMzYgNzguODI4NiAzMTUuNDIgNzguMjg4NiAzMTUuNDYgNzcuNzI4NkwzMTUuNTUgNzYuNDE4NkMzMTUuNTYgNzYuMjU4NiAzMTUuNTcgNzYuMDk4NiAzMTUuNTggNzUuOTM4NkwzMTUuNjQgNzQuMTM4NkMzMTUuNjQgNzMuODc4NiAzMTUuNjQgNzMuNjE4NiAzMTUuNjQgNzMuMzQ4NlY3Mi41MDg2QzMxNS42NCA3Mi41MDg2IDMxNS42NCA3Mi40MDg2IDMxNS42NCA3Mi4zOTg2QzMxNS42NCA3MS42ODg2IDMxNS42MSA3MS4wNTg2IDMxNS41OSA3MC40Mzg2TDMxNS41NyA3MC4xMjg2QzMxNS41NCA2OS41OTg2IDMxNS41MiA2OS4wNjg2IDMxNS40OCA2OC41NDg2TDMxNS4zNiA2Ny4xNzg2QzMxNS4zNCA2Ni45Nzg2IDMxNS4zMyA2Ni43Nzg2IDMxNS4zMSA2Ni41Nzg2TDMxNS4yNSA2Ni4wNjg2QzMxNS4yMiA2NS43ODg2IDMxNS4xOSA2NS41MDg2IDMxNS4xNSA2NS4yMzg2TDMxNC45NiA2My44Mjg2QzMxNC45MiA2My41NDg2IDMxNC44OCA2My4yNzg2IDMxNC44NCA2Mi45OTg2TDMxNC43OCA2Mi41ODg2QzMxNC43NCA2Mi4zMzg2IDMxNC43IDYyLjA4ODYgMzE0LjY1IDYxLjgzODZMMzE0LjQ0IDYwLjY0ODZDMzE0LjMgNTkuOTE4NiAzMTQuMTcgNTkuMjU4NiAzMTQuMDMgNTguNTk4NkwzMTQgNTguNDY4NkMzMTMuODUgNTcuNzk4NiAzMTMuNzIgNTcuMjE4NiAzMTMuNTkgNTYuNjI4NkwzMTIuNTkgNTIuODQ4NkMzMTIuNTIgNTIuNTk4NiAzMTIuNDQgNTIuMzM4NiAzMTIuMzYgNTIuMDg4NkwzMTIuMDYgNTEuMDg4NkMzMTEuODQgNTAuMzY4NiAzMTEuNjMgNDkuNzQ4NiAzMTEuNDIgNDkuMTE4NkwzMTEuMTYgNDguMzc4NkMzMTEuMDEgNDcuOTM4NiAzMTAuODUgNDcuNDg4NiAzMTAuNjkgNDcuMDQ4NkwzMTAuNjEgNDYuODI4NkMzMTAuNSA0Ni41Mjg2IDMxMC4zOSA0Ni4yNDg2IDMxMC4yOCA0NS45NTg2TDMxMC4wMiA0NS4yNjg2QzMwOS45NSA0NS4wNzg2IDMwOS44OCA0NC44Nzg2IDMwOS44IDQ0LjY4ODZMMzA5LjczIDQ0LjUxODZDMzA5LjMyIDQzLjQ5ODYgMzA4LjkgNDIuNDg4NiAzMDguNDUgNDEuNDc4NkwzMDguMjEgNDAuOTM4NkMzMDcuNTcgMzkuNTA4NiAzMDYuODkgMzguMDk4NiAzMDYuMiAzNi43NTg2TDMwNS44OSAzNi4xNjg2QzMwNS4yMyAzNC45MDg2IDMwNC42NyAzMy44Nzg2IDMwNC4xMiAzMi45Mjg2QzMwMy42NyAzMi4xNDg2IDMwMy4yMyAzMS40MDg2IDMwMi43OCAzMC42Nzg2QzMwMi43OCAzMC42Nzg2IDMwMi43MyAzMC41OTg2IDMwMi43MyAzMC41ODg2QzMwMi40IDMwLjA0ODYgMzAyLjA2IDI5LjUzODYgMzAxLjczIDI5LjAxODZMMzAxLjUgMjguNjY4NkMzMDEuMDggMjguMDI4NiAzMDAuNjcgMjcuNDE4NiAzMDAuMjUgMjYuODE4NkwzMDEuNDIgMjUuODY4NkwzMDAuMTkgMjYuNzI4NkwyOTkuNiAyNS44OTg2QzI5OS40IDI1LjYxODYgMjk5LjIgMjUuMzM4NiAyOTkgMjUuMDU4NkwyOTguMDYgMjMuODE4NkMyOTcuOTMgMjMuNjQ4NiAyOTcuOCAyMy40Nzg2IDI5Ny42NyAyMy4zMDg2TDI5Ny40NCAyMy4wMTg2QzI5Ny4yNyAyMi44MDg2IDI5Ny4xMSAyMi41OTg2IDI5Ni45NCAyMi4zOTg2TDI5Ni42MSAyMS45OTg2QzI5Ni41IDIxLjg2ODYgMjk2LjQgMjEuNzI4NiAyOTYuMjkgMjEuNTk4NkwyOTUuOTggMjEuMjM4NkMyOTUuNzYgMjAuOTY4NiAyOTUuNTMgMjAuNzE4NiAyOTUuMzEgMjAuNDU4NkwyOTQuNDcgMTkuNDk4NkMyOTQuMjQgMTkuMjQ4NiAyOTQuMDEgMTguOTk4NiAyOTMuNzggMTguNzQ4NkwyOTIuOSAxNy44MTg2QzI5Mi42NyAxNy41ODg2IDI5Mi40NSAxNy4zNDg2IDI5Mi4yMiAxNy4xMjg2TDI5MS44NyAxNi43Njg2QzI5MS43NiAxNi42NTg2IDI5MS42NCAxNi41NDg2IDI5MS41MyAxNi40Mzg2TDI5MS4yMSAxNi4xMjg2QzI5MS4wMyAxNS45NDg2IDI5MC44NCAxNS43Njg2IDI5MC42NiAxNS41OTg2TDI5MC40IDE1LjM1ODZDMjkwLjIyIDE1LjE4ODYgMjkwLjA1IDE1LjAzODYgMjg5Ljg3IDE0Ljg3ODZMMjg5LjA3IDE0LjE2ODZDMjg5LjA3IDE0LjE2ODYgMjg4Ljk5IDE0LjA5ODYgMjg4Ljk4IDE0LjA4ODZDMjg4LjQ2IDEzLjYyODYgMjg3Ljk4IDEzLjIzODYgMjg3LjUgMTIuODQ4NkMyODcuNDkgMTIuODQ4NiAyODcuNDggMTIuODI4NiAyODcuNDcgMTIuODE4NkwyODcuMzYgMTIuNzI4NkMyODYuOTMgMTIuMzc4NiAyODYuNDkgMTIuMDM4NiAyODYuMDQgMTEuNjk4NkwyODUuNzEgMTEuNDQ4NkMyODUuMzUgMTEuMTc4NiAyODQuOTggMTAuOTE4NiAyODQuNjIgMTAuNjY4NkwyODMuMjIgOS43Mjg1OUMyODMuMDcgOS42Mjg1OSAyODIuOTIgOS41Mzg1OSAyODIuNzcgOS40NDg1OUwyODEuOSA4LjkwODU5QzI4MS4zNyA4LjU4ODU5IDI4MC45MSA4LjMyODU5IDI4MC40NSA4LjA4ODU5QzI3OS45NyA3LjgyODU5IDI3OS41MSA3LjU5ODU5IDI3OS4wNSA3LjM2ODU5TDI3OC4xMSA2LjkzODU5QzI3Ny45NiA2Ljg2ODU5IDI3Ny44MSA2Ljc5ODU5IDI3Ny42NiA2LjcyODU5TDI3Ny4zMSA2LjU4ODU5QzI3Ny4xIDYuNTA4NTkgMjc2LjkgNi40MTg1OSAyNzYuNyA2LjMzODU5TDI3NS43MyA1Ljk3ODU5QzI3NS41MyA1LjkwODU5IDI3NS4zMyA1LjgzODU5IDI3NS4xMiA1Ljc2ODU5TDI3NC43OSA1LjY1ODU5QzI3NC43IDUuNjI4NTkgMjc0LjYgNS41OTg1OSAyNzQuNSA1LjU3ODU5TDI3NC4xMSA1LjQ2ODU5QzI3My45MSA1LjQwODU5IDI3My43MSA1LjM0ODU5IDI3My41MSA1LjI5ODU5TDI3My4zNCA1LjI0ODU5QzI3My4xNSA1LjE5ODU5IDI3My4wNSA1LjE3ODU5IDI3Mi45NSA1LjE1ODU5TDI3Mi41NCA1LjA2ODU5QzI3Mi4zMyA1LjAxODU5IDI3Mi4xMiA0Ljk2ODU5IDI3MS45MSA0LjkyODU5TDI3MS43NSA0Ljg4ODU5QzI3MS42MSA0Ljg1ODU5IDI3MS41MyA0Ljg0ODU5IDI3MS40NSA0LjgzODU5TDI3MS4xOCA0Ljc5ODU5QzI3MC44OCA0Ljc0ODU5IDI3MC41OCA0LjY5ODU5IDI3MC4yOCA0LjY2ODU5TDI2OS45IDQuNjE4NTlDMjY5LjgyIDQuNjE4NTkgMjY5LjczIDQuNjE4NTkgMjY5LjY1IDQuNTk4NTlDMjY5LjI4IDQuNTY4NTkgMjY4LjkxIDQuNTM4NTkgMjY4LjU0IDQuNTI4NTlDMjY4LjQ2IDQuNTI4NTkgMjY4LjM4IDQuNTI4NTkgMjY4LjMxIDQuNTA4NTlIMjY4LjIxQzI2OC4xMSA0LjUwODU5IDI2OC4wNCA0LjUwODU5IDI2Ny45NyA0LjUwODU5QzI2Ny4zNyA0LjUwODU5IDI2Ni44MiA0LjUxODU5IDI2Ni4zMSA0LjU1ODU5QzI2Ni4yOCA0LjU1ODU5IDI2Ni4xNyA0LjU1ODU5IDI2Ni4xMyA0LjU1ODU5TDI2NS44IDQuNTk4NTlDMjY1LjQ1IDQuNjM4NTkgMjY1LjEyIDQuNjc4NTkgMjY0Ljc4IDQuNzI4NTlDMjY0LjY4IDQuNzQ4NTkgMjY0LjU5IDQuNzU4NTkgMjY0LjUgNC43Nzg1OUwyNjQuMDYgNC44NTg1OUMyNjMuOTIgNC44ODg1OSAyNjMuNzkgNC45MDg1OSAyNjMuNjUgNC45Mzg1OUwyNjMuNSA0Ljk3ODU5QzI2My4xOCA1LjA1ODU5IDI2Mi44NiA1LjE0ODU5IDI2Mi41NCA1LjI0ODU5TDI2Mi4zMSA1LjMxODU5QzI2Mi4yMyA1LjMzODU5IDI2Mi4xNSA1LjM2ODU5IDI2Mi4wNyA1LjM4ODU5QzI2MS41NyA1LjU1ODU5IDI2MS4xMyA1LjcyODU5IDI2MC43IDUuOTA4NTlMMjYwLjYyIDUuOTQ4NTlDMjYwLjY5IDUuOTQ4NTkgMjYwLjc1IDUuOTU4NTkgMjYwLjgyIDUuOTY4NTlDMjYxLjE1IDYuMDA4NTkgMjYxLjQ5IDYuMDU4NTkgMjYxLjgzIDYuMTE4NTlMMjYxLjk5IDYuMTQ4NTlDMjYyLjIxIDYuMTg4NTkgMjYyLjQzIDYuMjE4NTkgMjYyLjY2IDYuMjU4NTlDMjYyLjkgNi4zMDg1OSAyNjMuMTUgNi4zNTg1OSAyNjMuMzkgNi40MTg1OUwyNjMuNTEgNi40NDg1OUMyNjMuODUgNi41Mjg1OSAyNjQuMTUgNi41ODg1OSAyNjQuNDQgNi42Njg1OUMyNjQuNjcgNi43Mjg1OSAyNjQuOSA2Ljc5ODU5IDI2NS4xMiA2Ljg1ODU5TDI2NS4yMyA2Ljg4ODU5QzI2NS41NiA2Ljk4ODU5IDI2NS44OSA3LjA3ODU5IDI2Ni4yMiA3LjE4ODU5QzI2Ni40NSA3LjI1ODU5IDI2Ni42NyA3LjMzODU5IDI2Ni45IDcuNDE4NTlDMjY3LjI1IDcuNTM4NTkgMjY3LjYgNy42Nzg1OSAyNjcuOTYgNy44MDg1OUMyNjguMTkgNy44OTg1OSAyNjguNDEgNy45ODg1OSAyNjguNjQgOC4wNzg1OUMyNjkuMDIgOC4yMzg1OSAyNjkuNDEgOC40MDg1OSAyNjkuNzkgOC41ODg1OUwyNzAuMzMgOC44Mzg1OUMyNzEuNDYgOS4zNzg1OSAyNzIuNjEgOS45OTg1OSAyNzMuNzUgMTAuNjc4NkwyNzQuMjggMTEuMDA4NkMyNzQuNjggMTEuMjU4NiAyNzUuMDkgMTEuNTA4NiAyNzUuNDkgMTEuNzc4NkMyNzUuNjkgMTEuOTA4NiAyNzUuODkgMTIuMDM4NiAyNzYuMDggMTIuMTc4NkMyNzYuNjEgMTIuNTM4NiAyNzcuMTQgMTIuOTA4NiAyNzcuNjggMTMuMzA4NkMyNzguMjcgMTMuNzQ4NiAyNzguODYgMTQuMjA4NiAyNzkuNDQgMTQuNjY4NkwyNzkuNTQgMTQuNzQ4NkMyODAuMTEgMTUuMjA4NiAyODAuNjcgMTUuNjc4NiAyODEuMjIgMTYuMTU4NkwyODEuNzggMTYuNjY4NkMyODIuMTUgMTYuOTk4NiAyODIuNTIgMTcuMzI4NiAyODIuODggMTcuNjc4NkMyODMuMSAxNy44ODg2IDI4My4zMSAxOC4wODg2IDI4My41MyAxOC4yOTg2QzI4My44NyAxOC42Mjg2IDI4NC4yIDE4Ljk0ODYgMjg0LjUzIDE5LjI3ODZDMjg0Ljc3IDE5LjUxODYgMjg1IDE5Ljc1ODYgMjg1LjI0IDE5Ljk5ODZDMjg1LjU1IDIwLjMxODYgMjg1Ljg1IDIwLjYzODYgMjg2LjE2IDIwLjk2ODZDMjg2LjQgMjEuMjI4NiAyODYuNjMgMjEuNDg4NiAyODYuODcgMjEuNzQ4NkMyODcuMTcgMjIuMDc4NiAyODcuNDYgMjIuNDA4NiAyODcuNzUgMjIuNzQ4NkMyODcuOTkgMjMuMDE4NiAyODguMjIgMjMuMjg4NiAyODguNDUgMjMuNTY4NkMyODguNzQgMjMuOTE4NiAyODkuMDQgMjQuMjc4NiAyODkuMzMgMjQuNjI4NkwyODkuNCAyNC43MDg2QzI4OS41OSAyNC45NDg2IDI4OS43OCAyNS4xNzg2IDI4OS45NyAyNS40MTg2QzI5MC4yNyAyNS43OTg2IDI5MC41NiAyNi4xNzg2IDI5MC44NiAyNi41Njg2TDI5MS4wMSAyNi43Njg2QzI5MS4xNiAyNi45NTg2IDI5MS4zIDI3LjE0ODYgMjkxLjQ0IDI3LjMzODZDMjkxLjc4IDI3Ljc4ODYgMjkyLjExIDI4LjI1ODYgMjkyLjQ0IDI4LjcxODZMMjkyLjg1IDI5LjI4ODZDMjkzLjMxIDI5Ljk0ODYgMjkzLjc2IDMwLjYxODYgMjk0LjIxIDMxLjI5ODZMMjk0LjQzIDMxLjY0ODZDMjk0LjggMzIuMjE4NiAyOTUuMTcgMzIuNzg4NiAyOTUuNTMgMzMuMzc4NkMyOTYgMzQuMTQ4NiAyOTYuNDcgMzQuOTE4NiAyOTYuOTIgMzUuNzA4NkMyOTcuNDkgMzYuNjk4NiAyOTguMDcgMzcuNzU4NiAyOTguNzQgMzkuMDQ4NkwyOTkuMDYgMzkuNjY4NkMyOTkuNzcgNDEuMDQ4NiAzMDAuNDYgNDIuNDk4NiAzMDEuMTMgNDMuOTc4NkwzMDEuMzggNDQuNTM4NkMzMDEuODQgNDUuNTY4NiAzMDIuMjggNDYuNjE4NiAzMDIuNyA0Ny42Njg2QzMwMi44MiA0Ny45NTg2IDMwMi45MyA0OC4yNTg2IDMwMy4wNCA0OC41NTg2TDMwMy4yMyA0OS4wNTg2QzMwMy4zNiA0OS4zODg2IDMwMy40OCA0OS43MTg2IDMwMy42IDUwLjA0ODZDMzAzLjgxIDUwLjYxODYgMzA0LjAxIDUxLjE4ODYgMzA0LjIxIDUxLjc2ODZMMzA0LjQxIDUyLjMzODZDMzA0LjY2IDUzLjA3ODYgMzA0LjkgNTMuODI4NiAzMDUuMTMgNTQuNTc4NkwzMDUuMzEgNTUuMTY4NkMzMDUuNDggNTUuNzI4NiAzMDUuNjQgNTYuMjg4NiAzMDUuOCA1Ni44Mzg2TDMwNi4wMSA1Ny41OTg2QzMwNi4xNSA1OC4xMjg2IDMwNi4zIDU4LjY2ODYgMzA2LjQzIDU5LjIwODZMMzA2LjYgNTkuODk4NkMzMDYuNzcgNjAuNTk4NiAzMDYuOTMgNjEuMjk4NiAzMDcuMDggNjEuOTk4NkwzMDcuMTMgNjIuMTk4NkMzMDcuMjkgNjIuOTU4NiAzMDcuNDQgNjMuNzE4NiAzMDcuNTggNjQuNDc4NkwzMDcuNzEgNjUuMjE4NkMzMDcuOCA2NS43Mzg2IDMwNy44OSA2Ni4yNjg2IDMwNy45NyA2Ni43ODg2TDMwOC4xIDY3LjY1ODZDMzA4LjE3IDY4LjE0ODYgMzA4LjIzIDY4LjYzODYgMzA4LjI5IDY5LjExODZDMzA4LjMzIDY5LjQwODYgMzA4LjM2IDY5LjY5ODYgMzA4LjM5IDY5Ljk4ODZDMzA4LjQ1IDcwLjQ4ODYgMzA4LjQ5IDcwLjk4ODYgMzA4LjU0IDcxLjQ4ODZMMzA4LjYxIDcyLjI3ODZDMzA4LjY2IDcyLjkyODYgMzA4LjcgNzMuNTc4NiAzMDguNzMgNzQuMjI4NkwzMDguNzUgNzQuNTE4NkMzMDguNzggNzUuMjU4NiAzMDguOCA3NS45OTg2IDMwOC44MSA3Ni43Mzg2Vjc3LjM1ODZDMzA4LjgxIDc3Ljg4ODYgMzA4LjgxIDc4LjQxODYgMzA4Ljc5IDc4LjkzODZDMzA4Ljc5IDc5LjE4ODYgMzA4Ljc3IDc5LjQzODYgMzA4Ljc2IDc5LjY5ODZDMzA4Ljc0IDgwLjE5ODYgMzA4LjcyIDgwLjY4ODYgMzA4LjY4IDgxLjE3ODZMMzA4LjYzIDgxLjg5ODZDMzA4LjU4IDgyLjU5ODYgMzA4LjUxIDgzLjI4ODYgMzA4LjQzIDgzLjk3ODZDMzA4LjM1IDg0LjY5ODYgMzA4LjI1IDg1LjQwODYgMzA4LjE0IDg2LjEwODZMMzA4LjA0IDg2LjY4ODZDMzA3Ljk2IDg3LjE2ODYgMzA3Ljg3IDg3LjYzODYgMzA3Ljc4IDg4LjEwODZDMzA3LjczIDg4LjMzODYgMzA3LjY4IDg4LjU1ODYgMzA3LjYzIDg4Ljc4ODZMMzA3LjYgODguOTA4NkMzMDcuNTEgODkuMjk4NiAzMDcuNDIgODkuNjg4NiAzMDcuMzIgOTAuMDY4NkMzMDcuMjUgOTAuMzQ4NiAzMDcuMTcgOTAuNjI4NiAzMDcuMSA5MC45MDg2QzMwNyA5MS4yNjg2IDMwNi45IDkxLjYwODYgMzA2Ljc5IDkxLjk1ODZDMzA2LjY5IDkyLjI2ODYgMzA2LjYgOTIuNTY4NiAzMDYuNSA5Mi44Njg2QzMwNi40IDkzLjE3ODYgMzA2LjI5IDkzLjQ4ODYgMzA2LjE4IDkzLjc4ODZDMzA2LjA1IDk0LjE0ODYgMzA1LjkxIDk0LjQ5ODYgMzA1Ljc4IDk0LjgzODZDMzA1LjY3IDk1LjEwODYgMzA1LjU2IDk1LjM2ODYgMzA1LjQ1IDk1LjYyODZDMzA1LjI3IDk2LjA0ODYgMzA1LjA4IDk2LjQ0ODYgMzA0Ljg5IDk2LjgzODZMMzA0LjgxIDk2Ljk5ODZDMzA0LjczIDk3LjE1ODYgMzA0LjY1IDk3LjMxODYgMzA0LjU3IDk3LjQ3ODZDMzA0LjIxIDk4LjE4ODYgMzAzLjg1IDk4LjgxODYgMzAzLjQ5IDk5LjM5ODZDMzAzLjIgOTkuODc4NiAzMDIuODkgMTAwLjMzOSAzMDIuNTcgMTAwLjc4OUwzMDIuNjEgMTAwLjg1OVoiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjkzLjI1NiAxMDYuNzkyQzMwOC45MTQgOTkuOTIyIDMxMS45OTIgNzIuNDM4OSAzMDAuMTMyIDQ1LjQwNjhDMjg4LjI3MSAxOC4zNzQ4IDI2NS45NjMgMi4wMzAyMSAyNTAuMzA1IDguOTAwMjhDMjM0LjY0NyAxNS43NzAzIDIzMS41NjkgNDMuMjUzNSAyNDMuNDMgNzAuMjg1NUMyNTUuMjkgOTcuMzE3NiAyNzcuNTk4IDExMy42NjIgMjkzLjI1NiAxMDYuNzkyWiIgZmlsbD0iI0ZGNjAwMCI+PC9wYXRoPjxwYXRoIGQ9Ik0yODMuOTA5IDEwOS44MkMyNzguMTY5IDEwOS40MSAyNzIuMDA5IDEwNi44OSAyNjUuODQ5IDEwMi4zNEMyNDYuMDQ5IDg3LjY5OTggMjMyLjI0OSA1NS45ODk4IDIzNS4wNzkgMzEuNjQ5OEMyMzYuNDc5IDE5LjU3OTggMjQxLjY5OSAxMC45OTk4IDI0OS43NzkgNy40OTk3NUMyNTcuOTA5IDMuOTY5NzUgMjY3LjgxOSA2LjA1OTc1IDI3Ny43MDkgMTMuMzY5OEMyOTcuNTA5IDI4LjAwOTggMzExLjMwOSA1OS43MTk4IDMwOC40NzkgODQuMDU5OEMzMDcuMDc5IDk2LjEyOTggMzAxLjg1OSAxMDQuNzEgMjkzLjc3OSAxMDguMjFDMjkwLjcwOSAxMDkuNTQgMjg3LjM4OSAxMTAuMDcgMjgzLjkwOSAxMDkuODJaTTI1OS40MzkgOC44ODk3NUMyNTYuNDI5IDguNjc5NzUgMjUzLjU3OSA5LjEyOTc1IDI1MC45NjkgMTAuMjU5OEMyNDMuOTE5IDEzLjMxOTggMjM5LjMyOSAyMS4wMzk4IDIzOC4wNTkgMzIuMDA5OEMyMzUuMzM5IDU1LjM5OTggMjQ4LjYwOSA4NS44Njk4IDI2Ny42MzkgOTkuOTM5OEMyNzYuNjI5IDEwNi41OCAyODUuNDg5IDEwOC41NSAyOTIuNTg5IDEwNS40N0MyOTkuNjM5IDEwMi40MSAzMDQuMjI5IDk0LjY4OTggMzA1LjQ5OSA4My43Mjk4QzMwOC4yMTkgNjAuMzM5OCAyOTQuOTQ5IDI5Ljg2OTggMjc1LjkxOSAxNS43OTk4QzI3MC4yMzkgMTEuNTk5OCAyNjQuNjA5IDkuMjY5NzUgMjU5LjQzOSA4Ljg5OTc1VjguODg5NzVaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTI2OC42NiA4NS4xODEyQzI1Ni41MyA3Ni4yMTEyIDI0OC4wOSA1Ni42MjEyIDI0OS44NSA0MS41MTEyQzI1MS42MSAyNi40MDEyIDI2Mi45MSAyMS40MDEyIDI3NS4wNCAzMC4zNjEyQzI4Ny4xNyAzOS4zMzEyIDI5NS42MSA1OC45MjEyIDI5My44NSA3NC4wMzEyQzI5Mi4wOSA4OS4xNDEyIDI4MC43OSA5NC4xNTEyIDI2OC42NiA4NS4xODEyWk0yNzYuMTYgMjAuNjcxMkMyNTkuNzIgOC41MTEyMiAyNDQuNDUgMTUuMjcxMiAyNDIuMDcgMzUuNzYxMkMyMzkuNjkgNTYuMjUxMiAyNTEuMDkgODIuNzIxMiAyNjcuNTMgOTQuODcxMkMyODMuOTggMTA3LjAzMSAyOTkuMjQgMTAwLjI3MSAzMDEuNjMgNzkuNzgxMkMzMDQuMDEgNTkuMjkxMiAyOTIuNjEgMzIuODMxMiAyNzYuMTcgMjAuNjcxMiIgZmlsbD0iI0ZGRkVGRiI+PC9wYXRoPjxwYXRoIGQ9Ik0yNzEuMSA2NC4yNjA4QzI2OC4yMyA2Mi4xNDA4IDI2Ni4yMyA1Ny41MDA4IDI2Ni42NSA1My45MjA4QzI2Ny4wNyA1MC4zNDA4IDI2OS43NCA0OS4xNjA4IDI3Mi42MSA1MS4yODA4QzI3NS40OCA1My40MDA4IDI3Ny40OCA1OC4wNDA4IDI3Ny4wNyA2MS42MjA4QzI3Ni42NSA2NS4yMDA4IDI3My45OCA2Ni4zODA4IDI3MS4xIDY0LjI2MDhaTTI3My43NCA0MS41ODA4QzI2Ni41OCAzNi4yOTA4IDI1OS45MSAzOS4yNDA4IDI1OC44NyA0OC4xNjA4QzI1Ny44MyA1Ny4wODA4IDI2Mi44MiA2OC42NTA4IDI2OS45OCA3My45NDA4QzI3Ny4xNSA3OS4yNDA4IDI4My44MSA3Ni4yODA4IDI4NC44NSA2Ny4zNjA4QzI4NS44OSA1OC40NDA4IDI4MC45MSA0Ni44NzA4IDI3My43NCA0MS41ODA4WiIgZmlsbD0iI0ZGRkVGRiI+PC9wYXRoPjxwYXRoIGQ9Ik0yODEuODg5IDEwMi4zOEMyNzcuMDI5IDEwMi4wMyAyNzEuODE5IDk5LjkwOTYgMjY2LjYzOSA5Ni4wNzk2QzI0OS44MzkgODMuNjU5NiAyMzguMTQ5IDU2LjUxOTYgMjQwLjU3OSAzNS41ODk2QzI0MS43OTkgMjUuMDY5NiAyNDYuMzM5IDE3LjU5OTYgMjUzLjM0OSAxNC41NTk2QzI2MC4yNzkgMTEuNTQ5NiAyNjguNjk5IDEzLjI5OTYgMjc3LjA0OSAxOS40Njk2QzI5My44NTkgMzEuODg5NiAzMDUuNTQ5IDU5LjAyOTYgMzAzLjEwOSA3OS45NTk2QzMwMS44ODkgOTAuNDc5NiAyOTcuMzQ5IDk3Ljk1OTYgMjkwLjMzOSAxMDFDMjg3LjcwOSAxMDIuMTQgMjg0Ljg1OSAxMDIuNiAyODEuODc5IDEwMi4zOUwyODEuODg5IDEwMi4zOFpNMjYxLjU5OSAxNi4xNTk2QzI1OS4wOTkgMTUuOTc5NiAyNTYuNzE5IDE2LjM1OTYgMjU0LjUzOSAxNy4yOTk2QzI0OC41NDkgMTkuODk5NiAyNDQuNjQ5IDI2LjUwOTYgMjQzLjU1OSAzNS45Mjk2QzI0MS4yMzkgNTUuOTA5NiAyNTIuMzg5IDgxLjgwOTYgMjY4LjQxOSA5My42NTk2QzI3NS44NzkgOTkuMTY5NiAyODMuMjM5IDEwMC44IDI4OS4xNDkgOTguMjM5NkMyOTUuMTM5IDk1LjYzOTYgMjk5LjAzOSA4OS4wMjk2IDMwMC4xMjkgNzkuNjA5NkMzMDIuNDQ5IDU5LjYyOTYgMjkxLjI5OSAzMy43Mjk2IDI3NS4yNTkgMjEuODc5NkMyNzAuNTQ5IDE4LjM5OTYgMjY1Ljg3OSAxNi40Njk2IDI2MS41ODkgMTYuMTU5NkgyNjEuNTk5Wk0yNzkuMjE5IDkxLjEwOTZDMjc1LjU1OSA5MC44NDk2IDI3MS42NDkgODkuMjU5NiAyNjcuNzY5IDg2LjM4OTZDMjU1LjI1OSA3Ny4xMzk2IDI0Ni41NDkgNTYuOTI5NiAyNDguMzU5IDQxLjMzOTZDMjQ5LjI3OSAzMy40Mjk2IDI1Mi43MTkgMjcuODA5NiAyNTguMDI5IDI1LjQ5OTZDMjYzLjI4OSAyMy4yMTk2IDI2OS42NDkgMjQuNTE5NiAyNzUuOTE5IDI5LjE1OTZDMjg4LjQzOSAzOC40MDk2IDI5Ny4xNDkgNTguNjE5NiAyOTUuMzI5IDc0LjIwOTZDMjk0LjQwOSA4Mi4xMTk2IDI5MC45NjkgODcuNzM5NiAyODUuNjQ5IDkwLjA0OTZDMjgzLjYzOSA5MC45MTk2IDI4MS40NjkgOTEuMjY5NiAyNzkuMTk5IDkxLjEwOTZIMjc5LjIxOVpNMjY5LjU0OSA4My45Nzk2QzI3NC45MjkgODcuOTU5NiAyODAuMjI5IDg5LjEzOTYgMjg0LjQ2OSA4Ny4yOTk2QzI4OC43NjkgODUuNDM5NiAyOTEuNTY5IDgwLjY2OTYgMjkyLjM1OSA3My44NTk2QzI5NC4wNTkgNTkuMjE5NiAyODUuODg5IDQwLjI0OTYgMjc0LjEzOSAzMS41Njk2QzI2OC43NTkgMjcuNTg5NiAyNjMuNDU5IDI2LjQwOTYgMjU5LjIxOSAyOC4yNDk2QzI1NC45MTkgMzAuMTA5NiAyNTIuMTE5IDM0Ljg3OTYgMjUxLjMyOSA0MS42Nzk2QzI0OS42MjkgNTYuMzE5NiAyNTcuNzk5IDc1LjI4OTYgMjY5LjUzOSA4My45Njk2TDI2OS41NDkgODMuOTc5NloiIGZpbGw9IiMzMzM0M0MiPjwvcGF0aD48cGF0aCBkPSJNMjc2LjE1OSA3OC4wNjkyQzI3My44NzkgNzcuOTA5MiAyNzEuNDY5IDc2LjkyOTIgMjY5LjA3OSA3NS4xNTkyQzI2MS41MjkgNjkuNTc5MiAyNTYuMjc5IDU3LjM4OTIgMjU3LjM3OSA0Ny45OTkyQzI1Ny45NDkgNDMuMDk5MiAyNjAuMTA5IDM5LjYwOTIgMjYzLjQ1OSAzOC4xNTkyQzI2Ni43NjkgMzYuNzE5MiAyNzAuNzM5IDM3LjUwOTIgMjc0LjYyOSA0MC4zODkyQzI4Mi4xNzkgNDUuOTY5MiAyODcuNDI5IDU4LjE1OTIgMjg2LjMyOSA2Ny41NDkyQzI4NS43NTkgNzIuNDQ5MiAyODMuNTk5IDc1LjkzOTIgMjgwLjI0OSA3Ny4zOTkyQzI3OC45NjkgNzcuOTU5MiAyNzcuNTg5IDc4LjE3OTIgMjc2LjE1OSA3OC4wNzkyVjc4LjA2OTJaTTI2Ny4zMzkgNDAuNDY5MkMyNjYuMzc5IDQwLjM5OTIgMjY1LjQ2OSA0MC41MzkyIDI2NC42NDkgNDAuODk5MkMyNjIuMzE5IDQxLjkwOTIgMjYwLjc5OSA0NC41NDkyIDI2MC4zNTkgNDguMzM5MkMyNTkuMzc5IDU2Ljc4OTIgMjY0LjA4OSA2Ny43MzkyIDI3MC44NjkgNzIuNzQ5MkMyNzMuODY5IDc0Ljk1OTIgMjc2Ljc3OSA3NS42MzkyIDI3OS4wNjkgNzQuNjM5MkMyODEuMzk5IDczLjYyOTIgMjgyLjkxOSA3MC45ODkyIDI4My4zNTkgNjcuMTk5MkMyODQuMzM5IDU4Ljc0OTIgMjc5LjYyOSA0Ny43OTkyIDI3Mi44NDkgNDIuNzk5MkMyNzAuOTI5IDQxLjM3OTIgMjY5LjA0OSA0MC41OTkyIDI2Ny4zMzkgNDAuNDc5MlY0MC40NjkyWk0yNzMuNTE5IDY2LjgwOTJDMjcyLjQzOSA2Ni43MjkyIDI3MS4zMDkgNjYuMjc5MiAyNzAuMjA5IDY1LjQ2OTJDMjY2Ljg5OSA2My4wMTkyIDI2NC42NzkgNTcuODY5MiAyNjUuMTU5IDUzLjc0OTJDMjY1LjQxOSA1MS40ODkyIDI2Ni40OTkgNDkuNzg5MiAyNjguMTI5IDQ5LjA3OTJDMjY5Ljc2OSA0OC4zNjkyIDI3MS42NjkgNDguNzE5MiAyNzMuNDk5IDUwLjA3OTJDMjc2LjgxOSA1Mi41MjkyIDI3OS4wMzkgNTcuNjc5MiAyNzguNTU5IDYxLjc5OTJDMjc4LjI5OSA2NC4wNTkyIDI3Ny4yMDkgNjUuNzU5MiAyNzUuNTg5IDY2LjQ2OTJDMjc0LjkzOSA2Ni43NDkyIDI3NC4yMzkgNjYuODY5MiAyNzMuNTI5IDY2LjgxOTJMMjczLjUxOSA2Ni44MDkyWk0yNzEuOTg5IDYzLjA0OTJDMjcyLjkwOSA2My43MjkyIDI3My43NzkgNjMuOTY5MiAyNzQuMzg5IDYzLjcwOTJDMjc1LjAwOSA2My40MzkyIDI3NS40MzkgNjIuNjE5MiAyNzUuNTc5IDYxLjQ0OTJDMjc1LjkyOSA1OC4zOTkyIDI3NC4xNjkgNTQuMjk5MiAyNzEuNzE5IDUyLjQ4OTJDMjcwLjc5OSA1MS44MDkyIDI2OS45MjkgNTEuNTY5MiAyNjkuMzE5IDUxLjgyOTJDMjY4LjY5OSA1Mi4wOTkyIDI2OC4yNjkgNTIuOTE5MiAyNjguMTM5IDU0LjA4OTJDMjY3Ljc4OSA1Ny4xMzkyIDI2OS41NDkgNjEuMjQ5MiAyNzEuOTg5IDYzLjA0OTJaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIzMC4wNyA4Mi4zMjgxQzIzMS40NyA4NC4wODgxIDIzNC4yMiA4NS4yMDgxIDIzOC40NSA4Mi42OTgxQzI0My45OSA3OS40MDgxIDI0NS4zMSA3MS41NzgxIDI0NS4zOCA3MS4xNjgxTDIyOS4xNiA3OC40NjgxQzIyOC43IDc5LjIwODEgMjI4Ljk4IDgwLjk1ODEgMjMwLjA3IDgyLjMyODFaIiBmaWxsPSIjMzJDRkYwIj48L3BhdGg+PHBhdGggZD0iTTIyNC44NjkgNzEuMTk3OUMyMjUuNTU5IDczLjE3NzkgMjI3LjA2OSA3NC44Mzc5IDIyOC4wMTkgNzUuMDY3OUwyNDMuODY5IDY4LjEwNzlDMjQzLjQzOSA2Ny44Mjc5IDIzNS4zMDkgNjIuNDg3OSAyMjkuMTM5IDY0LjIwNzlDMjI0LjQyOSA2NS41Mjc5IDIyMy45NzkgNjguNjI3OSAyMjQuODY5IDcxLjE4NzlWNzEuMTk3OVoiIGZpbGw9IiMzMkNGRjAiPjwvcGF0aD48cGF0aCBkPSJNMjIzLjk4IDc2LjE3OUwyMjguNzkgNzQuMDY5QzIyOS41IDczLjc1OSAyMzAuMjEgNzMuNDQ5IDIzMC45MiA3My4xMjlMMjM1LjE4IDcxLjI1OUMyMzYuMDMgNzAuODg5IDIzNi44OCA3MC41MDkgMjM3Ljc0IDcwLjEzOUwyMzkuNTQgNjkuMzQ5QzI0NC4xIDY3LjM0OSAyNDguNzkgNjUuMjg5IDI1My41IDYzLjIyOUwyNTUuNTcgNjIuMzE5QzI2My43MSA1OC43NDkgMjU3LjM2IDYxLjUzOSAyNjQuNzUgNTguMjg5TDI2NS42MiA1Ny45MDlDMjY3LjI2IDU3LjE4OSAyNjguODcgNTYuNDc5IDI3MC40MyA1NS43OTlDMjcwLjQ2IDU1Ljc4OSAyNzAuNDkgNTUuNzc5IDI3MC41MiA1NS43NjlDMjcwLjYgNTUuNzQ5IDI3MC42OCA1NS43NDkgMjcwLjc3IDU1Ljc2OUMyNzAuOCA1NS43NjkgMjcwLjgzIDU1Ljc4OSAyNzAuODYgNTUuNzg5QzI3MC45MiA1NS44MDkgMjcwLjk4IDU1LjgxOSAyNzEuMDQgNTUuODQ5QzI3MS4wNCA1NS44NDkgMjcxLjA2IDU1Ljg0OSAyNzEuMDcgNTUuODQ5QzI3MS4xIDU1Ljg2OSAyNzEuMTQgNTUuODg5IDI3MS4xNyA1NS45MDlDMjcxLjIxIDU1LjkzOSAyNzEuMjYgNTUuOTU5IDI3MS4zIDU1Ljk4OUMyNzEuMyA1NS45ODkgMjcxLjMyIDU1Ljk5OSAyNzEuMzMgNTYuMDA5QzI3MS4zNyA1Ni4wMzkgMjcxLjQyIDU2LjA4OSAyNzEuNDYgNTYuMTI5QzI3MS40OSA1Ni4xNDkgMjcxLjUxIDU2LjE2OSAyNzEuNTQgNTYuMTk5QzI3MS41NCA1Ni4xOTkgMjcxLjU1IDU2LjE5OSAyNzEuNTYgNTYuMjA5QzI3MS42MyA1Ni4yNzkgMjcxLjcxIDU2LjM1OSAyNzEuNzggNTYuNDQ5QzI3MS44IDU2LjQ3OSAyNzEuODIgNTYuNTA5IDI3MS44NCA1Ni41MjlDMjcxLjkgNTYuNTk5IDI3MS45NSA1Ni42NzkgMjcyLjAxIDU2Ljc1OUMyNzIuMDEgNTYuNzY5IDI3Mi4wMyA1Ni43ODkgMjcyLjAzIDU2Ljc5OUMyNzIuMDkgNTYuODg5IDI3Mi4xNSA1Ni45ODkgMjcyLjIgNTcuMDk5QzI3Mi4yMiA1Ny4xMzkgMjcyLjI0IDU3LjE3OSAyNzIuMjYgNTcuMjE5QzI3Mi4yOSA1Ny4yNjkgMjcyLjMxIDU3LjMxOSAyNzIuMzQgNTcuMzc5QzI3Mi4zNiA1Ny40MjkgMjcyLjM5IDU3LjQ4OSAyNzIuNDEgNTcuNTM5QzI3Mi40NCA1Ny42MjkgMjcyLjQ3IDU3LjcwOSAyNzIuNSA1Ny43OTlDMjcyLjUgNTcuODI5IDI3Mi41MSA1Ny44NDkgMjcyLjUyIDU3Ljg2OUMyNzIuNTMgNTcuOTE5IDI3Mi41NSA1Ny45NjkgMjcyLjU2IDU4LjAxOUMyNzIuNTggNTguMDg5IDI3Mi41OSA1OC4xNTkgMjcyLjYxIDU4LjIyOUMyNzIuNjEgNTguMjc5IDI3Mi42MyA1OC4zMjkgMjcyLjYzIDU4LjM2OUMyNzIuNjMgNTguMzk5IDI3Mi42NCA1OC40MjkgMjcyLjY0IDU4LjQ1OUMyNzIuNjQgNTguNDg5IDI3Mi42NCA1OC41MTkgMjcyLjY0IDU4LjU0OUMyNzIuNjQgNTguNjA5IDI3Mi42NCA1OC42NzkgMjcyLjY1IDU4LjczOUMyNzIuNjUgNTguNzY5IDI3Mi42NSA1OC43ODkgMjcyLjY1IDU4LjgxOUMyNzIuNjUgNTguODQ5IDI3Mi42NSA1OC44NzkgMjcyLjY1IDU4LjkwOUMyNzIuNjUgNTguOTU5IDI3Mi42NSA1OC45OTkgMjcyLjY0IDU5LjAzOUMyNzIuNjQgNTkuMDU5IDI3Mi42NCA1OS4wODkgMjcyLjY0IDU5LjEwOUMyNzIuNjQgNTkuMTM5IDI3Mi42MyA1OS4xNjkgMjcyLjYyIDU5LjE5OUMyNzIuNjIgNTkuMjM5IDI3Mi42IDU5LjI3OSAyNzIuNTkgNTkuMzA5QzI3Mi41OSA1OS4zMjkgMjcyLjU5IDU5LjMzOSAyNzIuNTggNTkuMzU5QzI3Mi41OCA1OS4zNzkgMjcyLjU2IDU5LjM5OSAyNzIuNTUgNTkuNDI5QzI3Mi41MyA1OS40NjkgMjcyLjUxIDU5LjUwOSAyNzIuNDkgNTkuNTQ5QzI3Mi40OSA1OS41NTkgMjcyLjQ4IDU5LjU3OSAyNzIuNDcgNTkuNTg5QzI3Mi40NSA1OS42MDkgMjcyLjQzIDU5LjYyOSAyNzIuNDEgNTkuNjQ5QzI3Mi40IDU5LjY2OSAyNzIuMzggNTkuNjc5IDI3Mi4zNyA1OS42OTlDMjcyLjMyIDU5LjczOSAyNzIuMjcgNTkuNzc5IDI3Mi4yMSA1OS44MDlMMjI1LjczIDgwLjE3OUwyMjMuOTcgNzYuMTU5TDIyMy45OCA3Ni4xNzlaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIyMy43OSA3OC40MzcxQzIyMy4zNSA3Ny4zMDcxIDIyMy40OCA3Ni4yNzcxIDIyNC4wNyA3Ni4xMzcxQzIyNC42NiA3NS45OTcxIDIyNS41IDc2Ljc5NzEgMjI1LjkzIDc3LjkxNzFDMjI2LjM3IDc5LjA0NzEgMjI2LjI0IDgwLjA3NzEgMjI1LjY1IDgwLjIxNzFDMjI1LjA2IDgwLjM1NzEgMjI0LjIyIDc5LjU1NzEgMjIzLjc5IDc4LjQzNzFaIiBmaWxsPSIjMzMzNDNDIj48L3BhdGg+PHBhdGggZD0iTTIyNS42NiA4MC4yMjlDMjI2LjI1IDgwLjA4OSAyMjYuMzggNzkuMDU5IDIyNS45NCA3Ny45MjlDMjI1LjUgNzYuNzk5IDIyNC42NyA3Ni4wMDkgMjI0LjA4IDc2LjE0OUMyMjMuNDkgNzYuMjg5IDIyMy4zNiA3Ny4zMTkgMjIzLjggNzguNDQ5QzIyNC4yNCA3OS41NzkgMjI1LjA3IDgwLjM2OSAyMjUuNjYgODAuMjI5Wk0yMjMuOSA3OC40MDlDMjIzLjU4IDc3LjU4OSAyMjMuNTYgNzYuNzg5IDIyMy44NSA3Ni40MTlDMjIzLjkyIDc2LjMyOSAyMjQuMDEgNzYuMjY5IDIyNC4xMSA3Ni4yNDlDMjI0LjY0IDc2LjExOSAyMjUuNDQgNzYuOTA5IDIyNS44NSA3Ny45NjlDMjI2LjE3IDc4Ljc4OSAyMjYuMTkgNzkuNTg5IDIyNS45IDc5Ljk1OUMyMjUuODMgODAuMDQ5IDIyNS43NCA4MC4xMDkgMjI1LjY0IDgwLjEyOUMyMjUuMTEgODAuMjU5IDIyNC4zMSA3OS40NjkgMjIzLjkgNzguNDA5WiIgZmlsbD0iIzMzMzQzQyI+PC9wYXRoPjwvZz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjM4N18yODkwMiIgeDE9IjI2MC4wOSIgeTE9IjQxMC4zNiIgeDI9IjI2MC4wOSIgeTI9IjI1Ljc5MDMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMzQTVFQTgiIHN0b3Atb3BhY2l0eT0iMC4xIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjMzIiBzdG9wLWNvbG9yPSIjMzc4NUMxIiBzdG9wLW9wYWNpdHk9IjAuNDEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNTYiIHN0b3AtY29sb3I9IiMzNUE1RDUiIHN0b3Atb3BhY2l0eT0iMC42NyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NiIgc3RvcC1jb2xvcj0iIzMzQkJFMyIgc3RvcC1vcGFjaXR5PSIwLjg1Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjkxIiBzdG9wLWNvbG9yPSIjMzJDOUVDIiBzdG9wLW9wYWNpdHk9IjAuOTYiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMzMkNGRjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8yMzg3XzI4OTAyIiB4MT0iMzE2LjYxIiB5MT0iNDEyLjU5IiB4Mj0iMzE2LjYxIiB5Mj0iLTM3LjA0OTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMzQTVFQTgiIHN0b3Atb3BhY2l0eT0iMC4xIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjMzIiBzdG9wLWNvbG9yPSIjMzc4NUMxIiBzdG9wLW9wYWNpdHk9IjAuNDEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNTYiIHN0b3AtY29sb3I9IiMzNUE1RDUiIHN0b3Atb3BhY2l0eT0iMC42NyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NiIgc3RvcC1jb2xvcj0iIzMzQkJFMyIgc3RvcC1vcGFjaXR5PSIwLjg1Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjkxIiBzdG9wLWNvbG9yPSIjMzJDOUVDIiBzdG9wLW9wYWNpdHk9IjAuOTYiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMzMkNGRjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8yMzg3XzI4OTAyIiB4MT0iMjg4LjM1IiB5MT0iNjcuNDM3OCIgeDI9IjI4OC4zNSIgeTI9IjQzMC42MjgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjMzMzNDNDIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjMxIiBzdG9wLWNvbG9yPSIjMzYzRjYzIiBzdG9wLW9wYWNpdHk9IjAuNjEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzUiIHN0b3AtY29sb3I9IiMzOTREOTAiIHN0b3Atb3BhY2l0eT0iMC4xNyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzNCNTJBMSIgc3RvcC1vcGFjaXR5PSIwIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXJfMjM4N18yODkwMiIgeDE9IjE4NC43MyIgeTE9IjQxMi43NjQiIHgyPSIxODQuNzMiIHkyPSIxNTguODI0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzNCNTJBMSIgc3RvcC1vcGFjaXR5PSIwIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjA3IiBzdG9wLWNvbG9yPSIjM0E1RUE4IiBzdG9wLW9wYWNpdHk9IjAuMSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC4zMyIgc3RvcC1jb2xvcj0iIzM3ODVDMSIgc3RvcC1vcGFjaXR5PSIwLjQxIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjU2IiBzdG9wLWNvbG9yPSIjMzVBNUQ1IiBzdG9wLW9wYWNpdHk9IjAuNjciPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzYiIHN0b3AtY29sb3I9IiMzM0JCRTMiIHN0b3Atb3BhY2l0eT0iMC44NSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC45MSIgc3RvcC1jb2xvcj0iIzMyQzlFQyIgc3RvcC1vcGFjaXR5PSIwLjk2Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzJDRkYwIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50NF9saW5lYXJfMjM4N18yODkwMiIgeDE9IjI0MS4yNSIgeTE9IjQxMS45NjQiIHgyPSIyNDEuMjUiIHkyPSIxMjguNDk0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzNCNTJBMSIgc3RvcC1vcGFjaXR5PSIwIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjA3IiBzdG9wLWNvbG9yPSIjM0E1RUE4IiBzdG9wLW9wYWNpdHk9IjAuMSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC4zMyIgc3RvcC1jb2xvcj0iIzM3ODVDMSIgc3RvcC1vcGFjaXR5PSIwLjQxIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjU2IiBzdG9wLWNvbG9yPSIjMzVBNUQ1IiBzdG9wLW9wYWNpdHk9IjAuNjciPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzYiIHN0b3AtY29sb3I9IiMzM0JCRTMiIHN0b3Atb3BhY2l0eT0iMC44NSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC45MSIgc3RvcC1jb2xvcj0iIzMyQzlFQyIgc3RvcC1vcGFjaXR5PSIwLjk2Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzJDRkYwIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50NV9saW5lYXJfMjM4N18yODkwMiIgeDE9IjIxMi45OSIgeTE9IjE1NS41MyIgeDI9IjIxMi45OSIgeTI9IjQ0OS4yMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMzM0M0MiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMzEiIHN0b3AtY29sb3I9IiMzNjNGNjMiIHN0b3Atb3BhY2l0eT0iMC42MSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NSIgc3RvcC1jb2xvcj0iIzM5NEQ5MCIgc3RvcC1vcGFjaXR5PSIwLjE3Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ2X2xpbmVhcl8yMzg3XzI4OTAyIiB4MT0iMTA5LjM2OSIgeTE9IjQyOC4wMTkiIHgyPSIxMDkuMzY5IiB5Mj0iMjMyLjEyOSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzQjUyQTEiIHN0b3Atb3BhY2l0eT0iMCI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC4wNyIgc3RvcC1jb2xvcj0iIzNBNUVBOCIgc3RvcC1vcGFjaXR5PSIwLjEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMzMiIHN0b3AtY29sb3I9IiMzNzg1QzEiIHN0b3Atb3BhY2l0eT0iMC40MSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC41NiIgc3RvcC1jb2xvcj0iIzM1QTVENSIgc3RvcC1vcGFjaXR5PSIwLjY3Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjc2IiBzdG9wLWNvbG9yPSIjMzNCQkUzIiBzdG9wLW9wYWNpdHk9IjAuODUiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuOTEiIHN0b3AtY29sb3I9IiMzMkM5RUMiIHN0b3Atb3BhY2l0eT0iMC45NiI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzMyQ0ZGMCI+PC9zdG9wPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwYWludDdfbGluZWFyXzIzODdfMjg5MDIiIHgxPSIxNjUuODg5IiB5MT0iNDE1Ljk3OSIgeDI9IjE2NS44ODkiIHkyPSIyNTAuMjc5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzNCNTJBMSIgc3RvcC1vcGFjaXR5PSIwIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjA3IiBzdG9wLWNvbG9yPSIjM0E1RUE4IiBzdG9wLW9wYWNpdHk9IjAuMSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC4zMyIgc3RvcC1jb2xvcj0iIzM3ODVDMSIgc3RvcC1vcGFjaXR5PSIwLjQxIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjU2IiBzdG9wLWNvbG9yPSIjMzVBNUQ1IiBzdG9wLW9wYWNpdHk9IjAuNjciPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzYiIHN0b3AtY29sb3I9IiMzM0JCRTMiIHN0b3Atb3BhY2l0eT0iMC44NSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC45MSIgc3RvcC1jb2xvcj0iIzMyQzlFQyIgc3RvcC1vcGFjaXR5PSIwLjk2Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzJDRkYwIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50OF9saW5lYXJfMjM4N18yODkwMiIgeDE9IjEzNy42MyIgeTE9IjI0MS45MjkiIHgyPSIxMzcuNjMiIHkyPSI0NDAuNTY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzMzMzQzQyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC4zMSIgc3RvcC1jb2xvcj0iIzM2M0Y2MyIgc3RvcC1vcGFjaXR5PSIwLjYxIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjc1IiBzdG9wLWNvbG9yPSIjMzk0RDkwIiBzdG9wLW9wYWNpdHk9IjAuMTciPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMzQjUyQTEiIHN0b3Atb3BhY2l0eT0iMCI+PC9zdG9wPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwYWludDlfbGluZWFyXzIzODdfMjg5MDIiIHgxPSIzNC4wMSIgeTE9IjQxMy41NjciIHgyPSIzNC4wMSIgeTI9IjMxNy4xOTciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMzQTVFQTgiIHN0b3Atb3BhY2l0eT0iMC4xIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjMzIiBzdG9wLWNvbG9yPSIjMzc4NUMxIiBzdG9wLW9wYWNpdHk9IjAuNDEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNTYiIHN0b3AtY29sb3I9IiMzNUE1RDUiIHN0b3Atb3BhY2l0eT0iMC42NyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NiIgc3RvcC1jb2xvcj0iIzMzQkJFMyIgc3RvcC1vcGFjaXR5PSIwLjg1Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjkxIiBzdG9wLWNvbG9yPSIjMzJDOUVDIiBzdG9wLW9wYWNpdHk9IjAuOTYiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMzMkNGRjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxMF9saW5lYXJfMjM4N18yODkwMiIgeDE9IjkwLjUyOTUiIHkxPSI0MTcuNTc3IiB4Mj0iOTAuNTI5NSIgeTI9IjMzMC44NjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMzQTVFQTgiIHN0b3Atb3BhY2l0eT0iMC4xIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjMzIiBzdG9wLWNvbG9yPSIjMzc4NUMxIiBzdG9wLW9wYWNpdHk9IjAuNDEiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNTYiIHN0b3AtY29sb3I9IiMzNUE1RDUiIHN0b3Atb3BhY2l0eT0iMC42NyI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NiIgc3RvcC1jb2xvcj0iIzMzQkJFMyIgc3RvcC1vcGFjaXR5PSIwLjg1Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIwLjkxIiBzdG9wLWNvbG9yPSIjMzJDOUVDIiBzdG9wLW9wYWNpdHk9IjAuOTYiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMzMkNGRjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxMV9saW5lYXJfMjM4N18yODkwMiIgeDE9IjYyLjI3IiB5MT0iMzEwLjgyMSIgeDI9IjYyLjI3IiB5Mj0iNDM5Ljk4MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMzM0M0MiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMzEiIHN0b3AtY29sb3I9IiMzNjNGNjMiIHN0b3Atb3BhY2l0eT0iMC42MSI+PC9zdG9wPjxzdG9wIG9mZnNldD0iMC43NSIgc3RvcC1jb2xvcj0iIzM5NEQ5MCIgc3RvcC1vcGFjaXR5PSIwLjE3Ij48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjM0I1MkExIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iY2xpcDBfMjM4N18yODkwMiI+PHJlY3Qgd2lkdGg9IjM1NSIgaGVpZ2h0PSI0NDAiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA=="}},"time_used":379,"timings":{"blocked":1,"dns":0,"connect":0,"send":0,"wait":193,"receive":185,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/aos/aos.js?ver=1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.853Z","timestamp":1785145403853,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/aos/aos.js?ver=1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-379f\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":14239,"size_decoded":4435,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (14239), with no line terminators","md5":"70b4897108480dbe11c443c2ab7679c9","sha1":"70dbfd38a0f1fc3b1a7d9fadab58786484c34f17","sha256":"f268612ba59ead1b24353bb77d66783bcc435aff1c22be5f93c40bac3869968e","sha512":"466084fa711d299e394e96c2260bd8bdf103cf75da8869934c997a19fc884d6ddfa2e92ce253533a4a0c5d627d580e9a40efb7155f1c8c0e9fbd3a2c3a06c2ae","ssdeep":"384:3I2fNaC8QiHbcggNFUWTgMe91sa6XCZy54:42fNaC8QiHbfgNFUWg17slXCZy54","tlshash":"a752e6dc3681f0a617a794f7827f600ff2f14835245e90a0d269c4e27db58ae8673e5e","first_seen":"2023-03-07T01:14:45Z","last_seen":"2026-08-12T04:17:37.508353Z","times_seen":23493,"resource_available":true,"data":"IWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuQU9TPXQoKTplLkFPUz10KCl9KHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChvKXtpZihuW29dKXJldHVybiBuW29dLmV4cG9ydHM7dmFyIGk9bltvXT17ZXhwb3J0czp7fSxpZDpvLGxvYWRlZDohMX07cmV0dXJuIGVbb10uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsdCksaS5sb2FkZWQ9ITAsaS5leHBvcnRzfXZhciBuPXt9O3JldHVybiB0Lm09ZSx0LmM9bix0LnA9ImRpc3QvIix0KDApfShbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgaT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfSxyPW4oMSksYT0obyhyKSxuKDYpKSx1PW8oYSksYz1uKDcpLGY9byhjKSxzPW4oOCksZD1vKHMpLGw9big5KSxwPW8obCksbT1uKDEwKSxiPW8obSksdj1uKDExKSx5PW8odiksZz1uKDE0KSxoPW8oZyksdz1bXSxrPSExLHg9ZG9jdW1lbnQuYWxsJiYhd2luZG93LmF0b2Isaj17b2Zmc2V0OjEyMCxkZWxheTowLGVhc2luZzoiZWFzZSIsZHVyYXRpb246NDAwLGRpc2FibGU6ITEsb25jZTohMSxzdGFydEV2ZW50OiJET01Db250ZW50TG9hZGVkIix0aHJvdHRsZURlbGF5Ojk5LGRlYm91bmNlRGVsYXk6NTAsZGlzYWJsZU11dGF0aW9uT2JzZXJ2ZXI6ITF9LE89ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKGUmJihrPSEwKSxrKXJldHVybiB3PSgwLHkuZGVmYXVsdCkodyxqKSwoMCxiLmRlZmF1bHQpKHcsai5vbmNlKSx3fSxfPWZ1bmN0aW9uKCl7dz0oMCxoLmRlZmF1bHQpKCksTygpfSxTPWZ1bmN0aW9uKCl7dy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7ZS5ub2RlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1hb3MiKSxlLm5vZGUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWFvcy1lYXNpbmciKSxlLm5vZGUucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWFvcy1kdXJhdGlvbiIpLGUubm9kZS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYW9zLWRlbGF5Iil9KX0sej1mdW5jdGlvbihlKXtyZXR1cm4gZT09PSEwfHwibW9iaWxlIj09PWUmJnAuZGVmYXVsdC5tb2JpbGUoKXx8InBob25lIj09PWUmJnAuZGVmYXVsdC5waG9uZSgpfHwidGFibGV0Ij09PWUmJnAuZGVmYXVsdC50YWJsZXQoKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKT09PSEwfSxBPWZ1bmN0aW9uKGUpe3JldHVybiBqPWkoaixlKSx3PSgwLGguZGVmYXVsdCkoKSx6KGouZGlzYWJsZSl8fHg/UygpOihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iikuc2V0QXR0cmlidXRlKCJkYXRhLWFvcy1lYXNpbmciLGouZWFzaW5nKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iikuc2V0QXR0cmlidXRlKCJkYXRhLWFvcy1kdXJhdGlvbiIsai5kdXJhdGlvbiksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLnNldEF0dHJpYnV0ZSgiZGF0YS1hb3MtZGVsYXkiLGouZGVsYXkpLCJET01Db250ZW50TG9hZGVkIj09PWouc3RhcnRFdmVudCYmWyJjb21wbGV0ZSIsImludGVyYWN0aXZlIl0uaW5kZXhPZihkb2N1bWVudC5yZWFkeVN0YXRlKT4tMT9PKCEwKToibG9hZCI9PT1qLnN0YXJ0RXZlbnQ/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoai5zdGFydEV2ZW50LGZ1bmN0aW9uKCl7TyghMCl9KTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGouc3RhcnRFdmVudCxmdW5jdGlvbigpe08oITApfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKDAsZi5kZWZhdWx0KShPLGouZGVib3VuY2VEZWxheSwhMCkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsKDAsZi5kZWZhdWx0KShPLGouZGVib3VuY2VEZWxheSwhMCkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCgwLHUuZGVmYXVsdCkoZnVuY3Rpb24oKXsoMCxiLmRlZmF1bHQpKHcsai5vbmNlKX0sai50aHJvdHRsZURlbGF5KSksai5kaXNhYmxlTXV0YXRpb25PYnNlcnZlcnx8KDAsZC5kZWZhdWx0KSgiW2RhdGEtYW9zXSIsXyksdyl9O2UuZXhwb3J0cz17aW5pdDpBLHJlZnJlc2g6TyxyZWZyZXNoSGFyZDpffX0sZnVuY3Rpb24oZSx0KXt9LCwsLCxmdW5jdGlvbihlLHQpeyhmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbil7ZnVuY3Rpb24gbyh0KXt2YXIgbj1iLG89djtyZXR1cm4gYj12PXZvaWQgMCxrPXQsZz1lLmFwcGx5KG8sbil9ZnVuY3Rpb24gcihlKXtyZXR1cm4gaz1lLGg9c2V0VGltZW91dChzLHQpLF8/byhlKTpnfWZ1bmN0aW9uIGEoZSl7dmFyIG49ZS13LG89ZS1rLGk9dC1uO3JldHVybiBTP2ooaSx5LW8pOml9ZnVuY3Rpb24gYyhlKXt2YXIgbj1lLXcsbz1lLWs7cmV0dXJuIHZvaWQgMD09PXd8fG4+PXR8fG48MHx8UyYmbz49eX1mdW5jdGlvbiBzKCl7dmFyIGU9TygpO3JldHVybiBjKGUpP2QoZSk6dm9pZChoPXNldFRpbWVvdXQocyxhKGUpKSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gaD12b2lkIDAseiYmYj9vKGUpOihiPXY9dm9pZCAwLGcpfWZ1bmN0aW9uIGwoKXt2b2lkIDAhPT1oJiZjbGVhclRpbWVvdXQoaCksaz0wLGI9dz12PWg9dm9pZCAwfWZ1bmN0aW9uIHAoKXtyZXR1cm4gdm9pZCAwPT09aD9nOmQoTygpKX1mdW5jdGlvbiBtKCl7dmFyIGU9TygpLG49YyhlKTtpZihiPWFyZ3VtZW50cyx2PXRoaXMsdz1lLG4pe2lmKHZvaWQgMD09PWgpcmV0dXJuIHIodyk7aWYoUylyZXR1cm4gaD1zZXRUaW1lb3V0KHMsdCksbyh3KX1yZXR1cm4gdm9pZCAwPT09aCYmKGg9c2V0VGltZW91dChzLHQpKSxnfXZhciBiLHYseSxnLGgsdyxrPTAsXz0hMSxTPSExLHo9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihmKTtyZXR1cm4gdD11KHQpfHwwLGkobikmJihfPSEhbi5sZWFkaW5nLFM9Im1heFdhaXQiaW4gbix5PVM/eCh1KG4ubWF4V2FpdCl8fDAsdCk6eSx6PSJ0cmFpbGluZyJpbiBuPyEhbi50cmFpbGluZzp6KSxtLmNhbmNlbD1sLG0uZmx1c2g9cCxtfWZ1bmN0aW9uIG8oZSx0LG8pe3ZhciByPSEwLGE9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihmKTtyZXR1cm4gaShvKSYmKHI9ImxlYWRpbmciaW4gbz8hIW8ubGVhZGluZzpyLGE9InRyYWlsaW5nImluIG8/ISFvLnRyYWlsaW5nOmEpLG4oZSx0LHtsZWFkaW5nOnIsbWF4V2FpdDp0LHRyYWlsaW5nOmF9KX1mdW5jdGlvbiBpKGUpe3ZhciB0PSJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjpjKGUpO3JldHVybiEhZSYmKCJvYmplY3QiPT10fHwiZnVuY3Rpb24iPT10KX1mdW5jdGlvbiByKGUpe3JldHVybiEhZSYmIm9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIGU/InVuZGVmaW5lZCI6YyhlKSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4ic3ltYm9sIj09KCJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjpjKGUpKXx8cihlKSYmay5jYWxsKGUpPT1kfWZ1bmN0aW9uIHUoZSl7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlO2lmKGEoZSkpcmV0dXJuIHM7aWYoaShlKSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGUudmFsdWVPZj9lLnZhbHVlT2YoKTplO2U9aSh0KT90KyIiOnR9aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiAwPT09ZT9lOitlO2U9ZS5yZXBsYWNlKGwsIiIpO3ZhciBuPW0udGVzdChlKTtyZXR1cm4gbnx8Yi50ZXN0KGUpP3YoZS5zbGljZSgyKSxuPzI6OCk6cC50ZXN0KGUpP3M6K2V9dmFyIGM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGY9IkV4cGVjdGVkIGEgZnVuY3Rpb24iLHM9TmFOLGQ9IltvYmplY3QgU3ltYm9sXSIsbD0vXlxzK3xccyskL2cscD0vXlstK10weFswLTlhLWZdKyQvaSxtPS9eMGJbMDFdKyQvaSxiPS9eMG9bMC03XSskL2ksdj1wYXJzZUludCx5PSJvYmplY3QiPT0oInVuZGVmaW5lZCI9PXR5cGVvZiB0PyJ1bmRlZmluZWQiOmModCkpJiZ0JiZ0Lk9iamVjdD09PU9iamVjdCYmdCxnPSJvYmplY3QiPT0oInVuZGVmaW5lZCI9PXR5cGVvZiBzZWxmPyJ1bmRlZmluZWQiOmMoc2VsZikpJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixoPXl8fGd8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdz1PYmplY3QucHJvdG90eXBlLGs9dy50b1N0cmluZyx4PU1hdGgubWF4LGo9TWF0aC5taW4sTz1mdW5jdGlvbigpe3JldHVybiBoLkRhdGUubm93KCl9O2UuZXhwb3J0cz1vfSkuY2FsbCh0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCkpfSxmdW5jdGlvbihlLHQpeyhmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbil7ZnVuY3Rpb24gaSh0KXt2YXIgbj1iLG89djtyZXR1cm4gYj12PXZvaWQgMCxPPXQsZz1lLmFwcGx5KG8sbil9ZnVuY3Rpb24gcihlKXtyZXR1cm4gTz1lLGg9c2V0VGltZW91dChzLHQpLF8/aShlKTpnfWZ1bmN0aW9uIHUoZSl7dmFyIG49ZS13LG89ZS1PLGk9dC1uO3JldHVybiBTP3goaSx5LW8pOml9ZnVuY3Rpb24gZihlKXt2YXIgbj1lLXcsbz1lLU87cmV0dXJuIHZvaWQgMD09PXd8fG4+PXR8fG48MHx8UyYmbz49eX1mdW5jdGlvbiBzKCl7dmFyIGU9aigpO3JldHVybiBmKGUpP2QoZSk6dm9pZChoPXNldFRpbWVvdXQocyx1KGUpKSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gaD12b2lkIDAseiYmYj9pKGUpOihiPXY9dm9pZCAwLGcpfWZ1bmN0aW9uIGwoKXt2b2lkIDAhPT1oJiZjbGVhclRpbWVvdXQoaCksTz0wLGI9dz12PWg9dm9pZCAwfWZ1bmN0aW9uIHAoKXtyZXR1cm4gdm9pZCAwPT09aD9nOmQoaigpKX1mdW5jdGlvbiBtKCl7dmFyIGU9aigpLG49ZihlKTtpZihiPWFyZ3VtZW50cyx2PXRoaXMsdz1lLG4pe2lmKHZvaWQgMD09PWgpcmV0dXJuIHIodyk7aWYoUylyZXR1cm4gaD1zZXRUaW1lb3V0KHMsdCksaSh3KX1yZXR1cm4gdm9pZCAwPT09aCYmKGg9c2V0VGltZW91dChzLHQpKSxnfXZhciBiLHYseSxnLGgsdyxPPTAsXz0hMSxTPSExLHo9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihjKTtyZXR1cm4gdD1hKHQpfHwwLG8obikmJihfPSEhbi5sZWFkaW5nLFM9Im1heFdhaXQiaW4gbix5PVM/ayhhKG4ubWF4V2FpdCl8fDAsdCk6eSx6PSJ0cmFpbGluZyJpbiBuPyEhbi50cmFpbGluZzp6KSxtLmNhbmNlbD1sLG0uZmx1c2g9cCxtfWZ1bmN0aW9uIG8oZSl7dmFyIHQ9InVuZGVmaW5lZCI9PXR5cGVvZiBlPyJ1bmRlZmluZWQiOnUoZSk7cmV0dXJuISFlJiYoIm9iamVjdCI9PXR8fCJmdW5jdGlvbiI9PXQpfWZ1bmN0aW9uIGkoZSl7cmV0dXJuISFlJiYib2JqZWN0Ij09KCJ1bmRlZmluZWQiPT10eXBlb2YgZT8idW5kZWZpbmVkIjp1KGUpKX1mdW5jdGlvbiByKGUpe3JldHVybiJzeW1ib2wiPT0oInVuZGVmaW5lZCI9PXR5cGVvZiBlPyJ1bmRlZmluZWQiOnUoZSkpfHxpKGUpJiZ3LmNhbGwoZSk9PXN9ZnVuY3Rpb24gYShlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYocihlKSlyZXR1cm4gZjtpZihvKGUpKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZS52YWx1ZU9mP2UudmFsdWVPZigpOmU7ZT1vKHQpP3QrIiI6dH1pZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIDA9PT1lP2U6K2U7ZT1lLnJlcGxhY2UoZCwiIik7dmFyIG49cC50ZXN0KGUpO3JldHVybiBufHxtLnRlc3QoZSk/YihlLnNsaWNlKDIpLG4/Mjo4KTpsLnRlc3QoZSk/ZjorZX12YXIgdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sYz0iRXhwZWN0ZWQgYSBmdW5jdGlvbiIsZj1OYU4scz0iW29iamVjdCBTeW1ib2xdIixkPS9eXHMrfFxzKyQvZyxsPS9eWy0rXTB4WzAtOWEtZl0rJC9pLHA9L14wYlswMV0rJC9pLG09L14wb1swLTddKyQvaSxiPXBhcnNlSW50LHY9Im9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIHQ/InVuZGVmaW5lZCI6dSh0KSkmJnQmJnQuT2JqZWN0PT09T2JqZWN0JiZ0LHk9Im9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIHNlbGY/InVuZGVmaW5lZCI6dShzZWxmKSkmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGc9dnx8eXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxoPU9iamVjdC5wcm90b3R5cGUsdz1oLnRvU3RyaW5nLGs9TWF0aC5tYXgseD1NYXRoLm1pbixqPWZ1bmN0aW9uKCl7cmV0dXJuIGcuRGF0ZS5ub3coKX07ZS5leHBvcnRzPW59KS5jYWxsKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKSl9LGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj1uZXcgcihvKTthPXQsbi5vYnNlcnZlKGkuZG9jdW1lbnRFbGVtZW50LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxyZW1vdmVkTm9kZXM6ITB9KX1mdW5jdGlvbiBvKGUpe2UmJmUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLmFkZGVkTm9kZXMpLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZS5yZW1vdmVkTm9kZXMpLG89dC5jb25jYXQobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmhhc0F0dHJpYnV0ZSYmZS5oYXNBdHRyaWJ1dGUoImRhdGEtYW9zIil9KS5sZW5ndGg7byYmYSgpfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPXdpbmRvdy5kb2N1bWVudCxyPXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyfHx3aW5kb3cuV2ViS2l0TXV0YXRpb25PYnNlcnZlcnx8d2luZG93Lk1vek11dGF0aW9uT2JzZXJ2ZXIsYT1mdW5jdGlvbigpe307dC5kZWZhdWx0PW59LGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBvKCl7cmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYXx8IiJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz10W25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9fXJldHVybiBmdW5jdGlvbih0LG4sbyl7cmV0dXJuIG4mJmUodC5wcm90b3R5cGUsbiksbyYmZSh0LG8pLHR9fSgpLHI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzKDR8NikwfHN5bWJpYW58dHJlb3x1cFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgY2V8eGRhfHhpaW5vL2ksYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pLHU9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzKDR8NikwfHN5bWJpYW58dHJlb3x1cFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgY2V8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2ksYz0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pLGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7bih0aGlzLGUpfXJldHVybiBpKGUsW3trZXk6InBob25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPW8oKTtyZXR1cm4hKCFyLnRlc3QoZSkmJiFhLnRlc3QoZS5zdWJzdHIoMCw0KSkpfX0se2tleToibW9iaWxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPW8oKTtyZXR1cm4hKCF1LnRlc3QoZSkmJiFjLnRlc3QoZS5zdWJzdHIoMCw0KSkpfX0se2tleToidGFibGV0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vYmlsZSgpJiYhdGhpcy5waG9uZSgpfX1dKSxlfSgpO3QuZGVmYXVsdD1uZXcgZn0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1lLm5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWFvcy1vbmNlIik7dD5lLnBvc2l0aW9uP2Uubm9kZS5jbGFzc0xpc3QuYWRkKCJhb3MtYW5pbWF0ZSIpOiJ1bmRlZmluZWQiIT10eXBlb2YgbyYmKCJmYWxzZSI9PT1vfHwhbiYmInRydWUiIT09bykmJmUubm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJhb3MtYW5pbWF0ZSIpfSxvPWZ1bmN0aW9uKGUsdCl7dmFyIG89d2luZG93LnBhZ2VZT2Zmc2V0LGk9d2luZG93LmlubmVySGVpZ2h0O2UuZm9yRWFjaChmdW5jdGlvbihlLHIpe24oZSxpK28sdCl9KX07dC5kZWZhdWx0PW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTIpLHI9byhpKSxhPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLG4pe2Uubm9kZS5jbGFzc0xpc3QuYWRkKCJhb3MtaW5pdCIpLGUucG9zaXRpb249KDAsci5kZWZhdWx0KShlLm5vZGUsdC5vZmZzZXQpfSksZX07dC5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPW4oMTMpLHI9byhpKSxhPWZ1bmN0aW9uKGUsdCl7dmFyIG49MCxvPTAsaT13aW5kb3cuaW5uZXJIZWlnaHQsYT17b2Zmc2V0OmUuZ2V0QXR0cmlidXRlKCJkYXRhLWFvcy1vZmZzZXQiKSxhbmNob3I6ZS5nZXRBdHRyaWJ1dGUoImRhdGEtYW9zLWFuY2hvciIpLGFuY2hvclBsYWNlbWVudDplLmdldEF0dHJpYnV0ZSgiZGF0YS1hb3MtYW5jaG9yLXBsYWNlbWVudCIpfTtzd2l0Y2goYS5vZmZzZXQmJiFpc05hTihhLm9mZnNldCkmJihvPXBhcnNlSW50KGEub2Zmc2V0KSksYS5hbmNob3ImJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYS5hbmNob3IpJiYoZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGEuYW5jaG9yKVswXSksbj0oMCxyLmRlZmF1bHQpKGUpLnRvcCxhLmFuY2hvclBsYWNlbWVudCl7Y2FzZSJ0b3AtYm90dG9tIjpicmVhaztjYXNlImNlbnRlci1ib3R0b20iOm4rPWUub2Zmc2V0SGVpZ2h0LzI7YnJlYWs7Y2FzZSJib3R0b20tYm90dG9tIjpuKz1lLm9mZnNldEhlaWdodDticmVhaztjYXNlInRvcC1jZW50ZXIiOm4rPWkvMjticmVhaztjYXNlImJvdHRvbS1jZW50ZXIiOm4rPWkvMitlLm9mZnNldEhlaWdodDticmVhaztjYXNlImNlbnRlci1jZW50ZXIiOm4rPWkvMitlLm9mZnNldEhlaWdodC8yO2JyZWFrO2Nhc2UidG9wLXRvcCI6bis9aTticmVhaztjYXNlImJvdHRvbS10b3AiOm4rPWUub2Zmc2V0SGVpZ2h0K2k7YnJlYWs7Y2FzZSJjZW50ZXItdG9wIjpuKz1lLm9mZnNldEhlaWdodC8yK2l9cmV0dXJuIGEuYW5jaG9yUGxhY2VtZW50fHxhLm9mZnNldHx8aXNOYU4odCl8fChvPXQpLG4rb307dC5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPTA7ZSYmIWlzTmFOKGUub2Zmc2V0TGVmdCkmJiFpc05hTihlLm9mZnNldFRvcCk7KXQrPWUub2Zmc2V0TGVmdC0oIkJPRFkiIT1lLnRhZ05hbWU/ZS5zY3JvbGxMZWZ0OjApLG4rPWUub2Zmc2V0VG9wLSgiQk9EWSIhPWUudGFnTmFtZT9lLnNjcm9sbFRvcDowKSxlPWUub2Zmc2V0UGFyZW50O3JldHVybnt0b3A6bixsZWZ0OnR9fTt0LmRlZmF1bHQ9bn0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBlPWV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWFvc10iKSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZSxmdW5jdGlvbihlKXtyZXR1cm57bm9kZTplfX0pfTt0LmRlZmF1bHQ9bn1dKX0pOw=="}},"time_used":480,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":480,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"t.tx3markets.com/v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/","fqdn":"t.tx3markets.com","domain":"tx3markets.com","tld":"com"},"ip":{"addr":"52.205.62.94","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.482Z","timestamp":1785145405482,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"t.tx3markets.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 21 Jul 2026 18:31:56 GMT","end":"Mon, 19 Oct 2026 18:31:55 GMT"},"fingerprint":{"sha1":"67:90:34:17:F1:01:4D:D4:33:B3:0F:59:CB:2D:5A:A8:00:B3:19:FE","sha256":"7E:19:EC:5B:C8:52:B6:6E:04:84:6E:39:BB:19:85:18:32:66:3A:AF:28:65:04:09:1E:78:1D:AD:74:C8:8A:FF"}}},"request":{"raw":"GET /v1/lst/universal-script?ph=c346db4b3eeae1d174f921aef8bfaf05eef8291c262c2099c8c064c518da2074\u0026tag=!clicked\u0026ref_url=https://autolitefinances.pro/ HTTP/1.1\r\nHost: t.tx3markets.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 \r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 09:43:25 GMT\r\nContent-Type: text/javascript;charset=ISO-8859-1\r\nContent-Length: 84384\r\nConnection: keep-alive\r\nVary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\nStrict-Transport-Security: max-age=31536000; includeSubDomains\r\nFront-End-Https: off\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":84384,"size_decoded":84713,"mime_type":"text/javascript; charset=ISO-8859-1","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"323590c539b9694acb7dc1d8a2460c6c","sha1":"8b7d9e910e986f9186093c8c542e39eec54e44ee","sha256":"adfb0b23502e8f63c6ada4aa50e16ec1cc3bd1230a404e25690ab0e6c90def7d","sha512":"f7573fd897cd2314b28962a935fe919eb9fb73a67e355e5612db2228840b519e898d964f2449120ab341294654aa395ef1b8ccf7be0b2e0dd0d7b1167232b11e","ssdeep":"1536:xaaeK5NK7Iu1HicX7A5+T5aG+2PYg43EIjEa6aL8oIX5G68cFbsB8eqk1sgrk:r8icrZFaAPYg4REa65DFbWU8k","tlshash":"5c833b82717ae53742f800e4245c1002b7595f5ebec88198f1a99ea9766ccc353bbff6","first_seen":"2026-07-27T07:14:06.804388Z","last_seen":"2026-07-27T14:04:41.064748Z","times_seen":5,"resource_available":true,"data":"KCgpPT57dmFyIFU9T2JqZWN0LmRlZmluZVByb3BlcnR5LHM9KGUsdCxyKT0+KHI9ciwodD0ic3ltYm9sIiE9dHlwZW9mIHQ/dCsiIjp0KWluKGU9ZSk/VShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnJ9KTplW3RdPXIpLEc9KGU9PihlLkdSQU5URUQ9IkdSQU5URUQiLGUuREVOSUVEPSJERU5JRUQiLGUuVU5TUEVDSUZJRUQ9IlVOU1BFQ0lGSUVEIixlKSkoe30pO3ZhciBIPShlPT4oZS5BRERfTEVBRF9UQUc9ImFkZExlYWRUYWciLGUuQUREX0xFQURfUEhPTkU9ImFkZExlYWRQaG9uZSIsZS5BRERfQ09OU0VOVD0iYWRkQ29uc2VudCIsZS5BRERfTEVBRF9TVEFHRT0iYWRkTGVhZFN0YWdlIixlKSkoe30pLGY9e2xlYWQ6e2VtYWlsOiIiLHBob25lTnVtYmVyczpbXSx0YWc6IiIsdGFnczpbXSxmaXJzdE5hbWU6IiIsbGFzdE5hbWU6IiIsYWRPcHRpbWl6YXRpb25Db25zZW50OiJVTlNQRUNJRklFRCIsbGVhZFN0YWdlOiIiLGNvbnRhY3Q6IiIsbGVhZEFkZHJlc3M6IiIsbGVhZENpdHk6IiIsbGVhZFN0cmVldDoiIixsZWFkU3RhdGU6IiIsbGVhZENvdW50cnk6IiIsbGVhZFppcENvZGU6IiJ9LHNvdXJjZTp7c291cmNlTGlua1RhZ3M6IiIsZmJBZHNldElkOjAsZ29vZ2xlQWRJZDowLGJpbmdBZEdyb3VwSWQ6MCxoeXJvc0NhbXBhaWduSWQ6MCxnQ2xpY2tJZDoiIix3QnJhSWQ6IiIsZ0JyYUlkOiIiLGZiQ2xpY2tJZDoiIix0aWt0b2tBZEdyb3VwSWQ6MCxzbmFwY2hhdEFkU2V0SWQ6MCx0d2l0dGVyQWRncm91cElkOjAsbGlua2VkaW5DYW1wYWlnbklkOjAsdHRDbGlja0lkOiIiLHJkdEFkR3JvdXBJZDoiIixyZHRDbGlja0lkOiIiLGJpbmdTcGVjaWFsQ2FtcGFpZ246ITEsZ1NwZWNpYWxDYW1wYWlnbjohMSxnQWRncm91cElkOjAscGludGVyZXN0QWRncm91cElkOjB9LGNvbmZpZzp7Y29va2llRW5hYmxlZDohMCxvcmlnaW46IiIsc2Vzc2lvbklkOiIiLHByZXZVcmw6IiIscmVmVXJsOiIiLGxlYWRHZW5TZXNzaW9uSWQ6IiIsZHZmcDoiIixpOiIiLG86IiIsY2FydElkOm51bGwsbDp2b2lkIDAsdTohMSxoOiIiLHRwc0Zyb21DYWNoZToiIixwOiIiLHBsYXRmb3JtOiIifSxjaGVja291dDp7cGF5cGFsVW5pcXVlQ2hlY2tvdXRJZDoiIix1bmlxdWVDaGVja291dElkOjB9LGNvbnZlcnNpb25JbmZvOltdLHByb2Nlc3NlZERhdGE6e206ITEsZW1haWw6bnVsbCxnOm51bGwsdjohMSxJOiExLEM6W10sVDpbXSxfOltdLFI6W10sUDpbXSxTOltdLGs6W10sQTpbXSxPOltdLE46W10sRDpbXSxMOltdLEY6W10sVToiIixHOiExLEg6W10sVjpudWxsLEI6bnVsbCxXOiEwLGo6W10scTpbXSxLOiExLEo6bnVsbH19LE09KGU9PihlLlRSQUNLSU5HX1VSTD0iaHR0cHM6Ly90LnR4M21hcmtldHMuY29tL3YxL2xzdCIsZS5GUk9OVEVORF9VUkw9Imh0dHBzOi8vYXBwLmh5cm9zLmNvbSIsZS5MRUFEX0dFTl9VUkw9Imh0dHBzOi8vbGcuaHlyLnNvL3YxL2xzdCIsZS5PUklHSU49IlJFR1VMQVIiLGUuUFJPRFVDVF9IQVNIPSJjMzQ2ZGI0YjNlZWFlMWQxNzRmOTIxYWVmOGJmYWYwNWVlZjgyOTFjMjYyYzIwOTljOGMwNjRjNTE4ZGEyMDc0IixlLkNVU1RPTV9UQUc9IlwhY2xpY2tlZCIsZS5TRVNTSU9OX0lEPSIiLGUuUFJFVklPVVNfT1ZFUlJJREU9IiIsZS5SRUZFUkVSX09WRVJSSURFPSIiLGUuQ0FMTF9UUkFDS0lOR19QT09MX0hBU0g9IiIsZS5GSU5HRVJQUklOVF9TQ1JJUFQ9IiIsZS5ERVZJQ0VfRklOR0VSUFJJTlQ9ImR2ZnAiLGUuVEhJUkRfUEFSVFlfVFJBQ0tJTkdfUFJPVklERVI9ImJkZXgtcGl4ZWwiLGUpKSh7fSksVj0oZT0+KGUuUFJPRFVDVF9JRD0xODM0MDEsZSkpKHt9KSxCPShlPT4oZS5TUEFfRU5BQkxFRD1mYWxzZSxlLklHTk9SRV9QUkVWSU9VU19VUkw9ZmFsc2UsZS5FTUJFRF9TQ1JJUFRTX09OX0lGUkFNRT1mYWxzZSxlLkNBTExfVFJBQ0tJTkdfRU5BQkxFRD1mYWxzZSxlLkZJTkdFUlBSSU5UX0VOQUJMRUQ9ZmFsc2UsZS5GRVRDSF9LRUVQX0FMSVZFX0VOQUJMRUQ9dHJ1ZSxlLlNIT1BJRllfUE9TVF9QVVJDSEFTRV9FTkFCTEVEPWZhbHNlLGUuTk9fU1dBUF9OVU1CRVJTX0VOQUJMRUQ9ZmFsc2UsZS5ERUxFVEVfVFJBQ0tJTkdfUEFSQU1TX0VOQUJMRUQ9ZmFsc2UsZS5GQl9FVkVOVF9JRF9SRVRSSUVWQUw9dHJ1ZSxlLlBIT05FX09QVF9JTl9FTkFCTEVEPXRydWUsZS5USU1FX1NQRU5UX1RSQUNLSU5HPWZhbHNlLGUuVEhJUkRfUEFSVFlfVFJBQ0tJTkc9ZmFsc2UsZS5VTklGSUVEX0NMSUNLX0VWRU5UPWZhbHNlLGUpKSh7fSksbj0oKCk9Pnt2YXIgZT1bLi4uT2JqZWN0LmtleXMoQiksLi4uT2JqZWN0LmtleXMoTSksLi4uT2JqZWN0LmtleXMoVildO2xldCB0PXt9O3JldHVybiBlLmZvckVhY2goZT0+e2UgaW4gQj90W2VdPUJbZV06ZSBpbiBNP3RbZV09TVtlXTplIGluIFYmJih0W2VdPVZbZV0pfSksdH0pKCksZT1jbGFzc3t9LHQ9KHMoZSwib3JpZ2luIixuLk9SSUdJTikscyhlLCJjdXN0b21UYWciLG4uQ1VTVE9NX1RBRykscyhlLCJjYWxsVHJhY2tpbmdQb29sSGFzaCIsbi5DQUxMX1RSQUNLSU5HX1BPT0xfSEFTSCkscyhlLCJzZXNzaW9uSWQiLG4uU0VTU0lPTl9JRCkscyhlLCJwcmV2T3ZlcnJpZGUiLG4uUFJFVklPVVNfT1ZFUlJJREUpLHMoZSwicmVmT3ZlcnJpZGUiLG4uUkVGRVJFUl9PVkVSUklERSkscyhlLCJmYWNlYm9va0V2ZW50SWRSZXRyaWV2YWwiLG4uRkJfRVZFTlRfSURfUkVUUklFVkFMKSxzKGUsInNwYUVuYWJsZWQiLG4uU1BBX0VOQUJMRUQpLHMoZSwiaWdub3JlUHJldlVybCIsbi5JR05PUkVfUFJFVklPVVNfVVJMKSxzKGUsImVtYmVkU2NyaXB0T25JZnJhbWVzIixuLkVNQkVEX1NDUklQVFNfT05fSUZSQU1FKSxzKGUsInRyYWNrRGV2aWNlRmluZ2VycHJpbnQiLG4uRklOR0VSUFJJTlRfRU5BQkxFRCkscyhlLCJ1c2VGZXRjaEtlZXBBbGl2ZSIsbi5GRVRDSF9LRUVQX0FMSVZFX0VOQUJMRUQpLHMoZSwiY2FsbFRyYWNraW5nRW5hYmxlZCIsbi5DQUxMX1RSQUNLSU5HX0VOQUJMRUQpLHMoZSwic2hvcGlmeVBvc3RQdXJjaGFzZVBhZ2VTY3JpcHQiLG4uU0hPUElGWV9QT1NUX1BVUkNIQVNFX0VOQUJMRUQpLHMoZSwibm9Td2FwTnVtYmVyc0VuYWJsZWQiLG4uTk9fU1dBUF9OVU1CRVJTX0VOQUJMRUQpLHMoZSwiY2xpZW50VXNlQ3VzdG9tQ29uc2VudEV2ZW50IiwhMSkscyhlLCJkZWxldGVQYXJhbXMiLG4uREVMRVRFX1RSQUNLSU5HX1BBUkFNU19FTkFCTEVEKSxzKGUsInBob25lT3B0SW5FbmFibGVkIixuLlBIT05FX09QVF9JTl9FTkFCTEVEKSxzKGUsInRpbWVTcGVudFRyYWNraW5nRW5hYmxlZCIsbi5USU1FX1NQRU5UX1RSQUNLSU5HKSxzKGUsInRoaXJkUGFydHlUcmFja2luZyIsbi5USElSRF9QQVJUWV9UUkFDS0lORykscyhlLCJ1bmlmaWVkQ2xpY2tFdmVudCIsbi5VTklGSUVEX0NMSUNLX0VWRU5UKSxjbGFzc3tjb25zdHJ1Y3Rvcigpe319KSxyPShzKHQsImlkIixuLlBST0RVQ1RfSUQpLHModCwiaGFzaCIsbi5QUk9EVUNUX0hBU0gpLGNsYXNze30pLGE9KHMociwidHJhY2tpbmdCYXNlIixuLlRSQUNLSU5HX1VSTCkscyhyLCJsZWFkR2VuQmFzZSIsbi5MRUFEX0dFTl9VUkwpLHMociwiZ2VuZXJhdGVMZWFkR2VuU2Vzc2lvbklkIixyLmxlYWRHZW5CYXNlKyIvc2Vzc2lvbiIpLHMociwicHJvY2Vzc0NsaWNrIixyLnRyYWNraW5nQmFzZSsiL3BjIikscyhyLCJnZW5lcmF0ZVVVSUQiLHIudHJhY2tpbmdCYXNlKyIvZ3VzaWQiKSxzKHIsImVycm9yRW5kcG9pbnQiLCIvZXJyb3IiKSxzKHIsInVuaWZpZWRFdmVudCIsIi9odGUiKSxzKHIsImNsaWNrVXBkYXRlIiwiL3BjdSIpLHMociwicGluZ1BvbmdSZXF1ZXN0IiwiLy4uL3N2IikscyhyLCJjdXN0b21BY3Rpb25Qcm9jZXNzaW5nIiwiL2NhcCIpLHMociwiZG5pUmVxdWVzdCIsIi9jdGUiKSxzKHIsIm1hdGNoaW5nVHJpZ2dlciIsIi90cHRlbiIpLHIpLGc9Y2xhc3N7Y29uc3RydWN0b3IoKXt9fSx4PShzKGcsInByb2R1Y3QiLHQpLHMoZywiY29uZmlnIixlKSxzKGcsImVuZHBvaW50cyIsYSkscyhnLCJocmVmIixsb2NhdGlvbi5ocmVmKSxzKGcsImRvY3VtZW50VXJsIixkb2N1bWVudC5VUkwpLHMoZywiZG9jdW1lbnRSZWZlcnJlciIsZG9jdW1lbnQucmVmZXJyZXIpLChlPT4oZS5IWVJPU19GSVJTVF9OQU1FPSJoeXJvcy1maXJzdC1uYW1lIixlLkZJUlNUX05BTUU9ImZpcnN0bmFtZSIsZS5OQU1FPSJuYW1lIixlLkZJUlNUX05BTUVfREFTSEVEPSJmaXJzdC1uYW1lIixlLkZfTkFNRV9EQVNIRUQ9ImYtbmFtZSIsZS5GSVJTVF9OQU1FX1NOQUtFPSJmaXJzdF9uYW1lIixlLkZfTkFNRV9TTkFLRT0iZl9uYW1lIixlLkZJUlNUX05BTUVfU1BBQ0VEPSJmaXJzdCBuYW1lIixlLkZfTkFNRV9TUEFDRUQ9ImYgbmFtZSIsZSkpKHt9KSksVz0oZT0+KGUuSFlST1NfTEFTVF9OQU1FPSJoeXJvcy1sYXN0LW5hbWUiLGUuTEFTVF9OQU1FPSJsYXN0bmFtZSIsZS5MQVNUX05BTUVfREFTSEVEPSJsYXN0LW5hbWUiLGUuTF9OQU1FX0RBU0hFRD0ibC1uYW1lIixlLkxBU1RfTkFNRV9TTkFLRT0ibGFzdF9uYW1lIixlLkxfTkFNRV9TTkFLRT0ibF9uYW1lIixlLkxBU1RfTkFNRV9TUEFDRUQ9Imxhc3QgbmFtZSIsZS5MX05BTUVfU1BBQ0VEPSJsIG5hbWUiLGUpKSh7fSksaj0oZT0+KGUuSFlST1NfRlVMTF9OQU1FPSJoeXJvcy1mdWxsLW5hbWUiLGUuRlVMTF9OQU1FX0RBU0hFRD0iZnVsbC1uYW1lIixlLkZVTExfTkFNRV9TTkFLRT0iZnVsbF9uYW1lIixlLkZVTExfTkFNRV9TUEFDRUQ9ImZ1bGwgbmFtZSIsZS5GVUxMX05BTUVfU0lOR0xFPSJmdWxsbmFtZSIsZS5GVUxMX05BTUVfRUxMSVBTSVM9ImZ1bGwgbmFtZS4uLiIsZS5DT01QTEVURV9OQU1FX0RBU0hFRD0iY29tcGxldGUtbmFtZSIsZS5DT01QTEVURV9OQU1FX1NOQUtFPSJjb21wbGV0ZV9uYW1lIixlLkNPTVBMRVRFX05BTUVfU1BBQ0VEPSJjb21wbGV0ZSBuYW1lIixlLkNPTVBMRVRFX05BTUVfU0lOR0xFPSJjb21wbGV0ZW5hbWUiLGUuSU5WSVRFRV9GVUxMX05BTUU9Imludml0ZWVfZnVsbF9uYW1lIixlKSkoe30pLHE9KGU9PihlLkVNQUlMPSJFbWFpbCIsZS5FTUFJTF9MT1dFUj0iZW1haWwiLGUuSU5WSVRFRV9FTUFJTD0iaW52aXRlZV9lbWFpbCIsZS5IRU1BSUw9ImhlbWFpbCIsZS5IRT0iaGUiLGUuQ0VNQUlMPSJjZW1haWwiLGUuUEFZRVJfRU1BSUw9InBheWVyX2VtYWlsIixlLkNIRUNLT1VURU1BSUw9ImNoZWNrb3V0ZW1haWwiLGUuQ1VTVE9NRVJfRU1BSUw9ImN1c3RvbWVyX2VtYWlsIixlLkVNQUlMX0FERFJFU1NfTEVBRD0iZW1haWwtYWRkcmVzcy1sZWFkIixlLkVNQUlMX0xFQUQ9ImVtYWlsLWxlYWQiLGUuQlVZRVJfRU1BSUw9ImJ1eWVyX2VtYWlsIixlLklORl9GSUVMRF9FTUFJTD0iaW5mX2ZpZWxkX0VtYWlsIixlLkVNQUlMX0ZPUk0xPSJlbWFpbF9mb3JtMSIsZS5XSl9MRUFEX0VNQUlMPSJ3al9sZWFkX2VtYWlsIixlLkVXX0VNQUlMPSJld19lbWFpbCIsZS5QRVJTT05FTUFJTD0iUGVyc29uRW1haWwiLGUuTT0ibSIsZSkpKHt9KTt2YXIgSz0oZT0+KGUuU09VUkNFX0xJTks9InNsIixlLkZCX0FEX1NFVF9JRD0iZmJjX2lkIixlLkdfQ0FNUEFJR05fSUQ9ImdjX2lkIixlLkdfQURHUk9VUF9JRD0iaF9nYV9pZCIsZS5HX1NQRUNJQUxfQ0FNUEFJR049IkN1c3RvbUdTcGVjaWFsQ2FtcGFpZ24iLGUuR19DTElDS19JRD0iZ2NsaWQiLGUuV19CUkFfSUQ9IndicmFpZCIsZS5HX0JSQV9JRD0iZ2JyYWlkIixlLkZCX0NMSUNLX0lEPSJmYmNsaWQiLGUuRU1BSUxfU09VUkNFPSJlbCIsZS5FTUFJTF9UUkFGRklDPSJoZSIsZS5IWVJPU19BRF9JRD0iaF9hZF9pZCIsZS5CSU5HX0FEX0dST1VQX0lEPSJibmdfaWQiLGUuQklOR19TUEVDSUFMX0NBTVBBSUdOPSJDdXN0b21CaW5nU3BlY2lhbENhbXBhaWduIixlLkhZUk9TX0NBTVBBSUdOX0lEPSJoX2NhbXBhaWduX2lkIixlLk1BTllfQ0hBVF9QQVJBTVM9Im1jaCIsZS5UVF9BRF9HUk9VUF9JRD0idHRjX2lkIixlLlNOX0FEX1NFVF9JRD0ic25jX2lkIixlLkxOS19DQU1QQUlHTl9JRD0ibG5rX2lkIixlLlRXVF9BREdST1VQX0lEPSJ0d3RfaWQiLGUuUE5UX0FEX0dST1VQX0lEPSJwbnRfaWQiLGUuVFRfQ0xJQ0tfSUQ9InR0Y2xpZCIsZS5SRFRfQURfR1JPVVBfSUQ9InJkdF9pZCIsZS5SRFRfQ0xJQ0tfSUQ9InJkdF9jbGlkIixlLlBBWVBBTF9VTklRVUVfQ0hFQ0tPVVRfSUQ9InR4IixlLkhZUk9TX1RSQUZGSUNfU09VUkNFPSJodHJhZmZpY3NvdXJjZSIsZS5IWVJPU19DQVRFR09SWT0iaGNhdGVnb3J5IixlLkhZUk9TX0dPQUw9Imhnb2FsIixlLkhZUk9TX0tFWVdPUkRfSUQ9Imhfa2V5d29yZF9pZCIsZS5IWVJPU19LRVlXT1JEPSJoX2tleXdvcmQiLGUuSFlST1NfUExBQ0VNRU5UPSJoX3BsYWNlbWVudCIsZS5IWVJPU19BRF9OQU1FPSJoX2FkX25hbWUiLGUuQVBMX0NBTVBBSUdOX0lEPSJhcGxfaWQiLGUuV0hPUF9BRF9JRD0id2FpZCIsZS5XSE9QX0FEX0dST1VQX0lEPSJ3YXNpZCIsZS5XSE9QX0NBTVBBSUdOX0lEPSJ3YWNpZCIsZS5IWVJPU19DQU1QQUlHTl9OQU1FPSJoX2NhbXBhaWduX25hbWUiLGUpKSh7fSk7dmFyIEo9KGU9PihlLlNPVVJDRV9MSU5LPSJzbCIsZS5GQl9BRF9TRVRfSUQ9ImZiY19pZCIsZS5HX0NBTVBBSUdOX0lEPSJnY19pZCIsZS5HX0FER1JPVVBfSUQ9ImhfZ2FfaWQiLGUuR19DTElDS19JRD0iZ2NsaWQiLGUuR19TUEVDSUFMX0NBTVBBSUdOPSJnX3NwZWNpYWxfY2FtcGFpZ24iLGUuV19CUkFfSUQ9IndicmFpZCIsZS5HX0JSQV9JRD0iZ2JyYWlkIixlLkZCX0NMSUNLX0lEPSJmYmNsaWQiLGUuRU1BSUxfU09VUkNFPSJlbCIsZS5FTUFJTF9UUkFGRklDPSJoZSIsZS5IWVJPU19BRF9JRD0iaF9hZF9pZCIsZS5CSU5HX0FEX0dST1VQX0lEPSJibmdfaWQiLGUuQklOR19TUEVDSUFMX0NBTVBBSUdOPSJibmdfc3BlY2lhbF9jYW1wYWlnbiIsZS5IWVJPU19DQU1QQUlHTl9JRD0iaF9jYW1wYWlnbl9pZCIsZS5NQU5ZX0NIQVRfUEFSQU1TPSJtY2giLGUuVFRfQURfR1JPVVBfSUQ9InR0Y19pZCIsZS5TTl9BRF9TRVRfSUQ9InNuY19pZCIsZS5MTktfQ0FNUEFJR05fSUQ9Imxua19pZCIsZS5UV1RfQURHUk9VUF9JRD0idHd0X2lkIixlLlBOVF9BRF9HUk9VUF9JRD0icG50X2lkIixlLlRUX0NMSUNLX0lEPSJ0dGNsaWQiLGUuUkRUX0FEX0dST1VQX0lEPSJyZHRfaWQiLGUuUkRUX0NMSUNLX0lEPSJyZHRfY2xpZCIsZS5QQVlQQUxfVU5JUVVFX0NIRUNLT1VUX0lEPSJ0eCIsZS5IWVJPU19UUkFGRklDX1NPVVJDRT0iaHRyYWZmaWNzb3VyY2UiLGUuSFlST1NfQ0FURUdPUlk9ImhjYXRlZ29yeSIsZS5IWVJPU19HT0FMPSJoZ29hbCIsZS5IWVJPU19LRVlXT1JEX0lEPSJoX2tleXdvcmRfaWQiLGUuSFlST1NfS0VZV09SRD0iaF9rZXl3b3JkIixlLkhZUk9TX1BMQUNFTUVOVD0iaF9wbGFjZW1lbnQiLGUuSFlST1NfQURfTkFNRT0iaF9hZF9uYW1lIixlLkFQTF9DQU1QQUlHTl9JRD0iYXBsX2lkIixlLldIT1BfQURfSUQ9IndhaWQiLGUuV0hPUF9BRF9HUk9VUF9JRD0id2FzaWQiLGUuV0hPUF9DQU1QQUlHTl9JRD0id2FjaWQiLGUuSFlST1NfQ0FNUEFJR05fTkFNRT0iaF9jYW1wYWlnbl9uYW1lIixlKSkoe30pO2Z1bmN0aW9uIHooKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhKKX12YXIgWD1udWxsIT0ocj1udWxsPT1jb25zb2xlP3ZvaWQgMDpjb25zb2xlLmxvZykmJnIuYmluZD9jb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpOigpPT57fSxvPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBsb2coZSx0KXtYKCIlYyBbVVRTXSAiK2UsImNvbG9yOiAiK3QrIjsiKX1zdGF0aWMgaW5mbyhlKXt0aGlzLmxvZyhlLCJncmVlbiIpfXN0YXRpYyBlcnJvcihlKXt0aGlzLmxvZyhlLCJyZWQiKX1zdGF0aWMgd2FybihlKXt0aGlzLmxvZyhlLCIjZmY5OTY2Iil9c3RhdGljIFgoZSx0KXtYKCIlYyBbVVRTXSAiK2UsImNvbG9yOiBncmVlbjsiLHQpfX0sYz1jbGFzcyBje2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBkZWNvZGVVcmxQYXJhbShyKXtpZihudWxsPT09cilyZXR1cm4gcjt7bGV0IGU9cix0PSIiO2Zvcig7ZSE9PXQ7KXt0PWU7dHJ5e2U9ZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoKGUpe3JldHVybiBvLndhcm4oIltEQ0RdIEZhaWwgZHVyaW5nIGRlY29kaW5nOiAiK3QrIiAsIGVycm9yOiAiK2UpLHR9fXJldHVybiBlfX1zdGF0aWMgJChlLHQscil7dHJ5e3JldHVybiBnLmNvbmZpZy5kZWxldGVQYXJhbXM/ZTp0fWNhdGNoKGUpe3JldHVybiBvLmVycm9yKHIrZSksZy5jb25maWcuZGVsZXRlUGFyYW1zPSExLHR9fXN0YXRpYyBaKCl7cmV0dXJuIHRoaXMuJChnLmhyZWYsbG9jYXRpb24uaHJlZiwiRV9CSFJFRjogIil9c3RhdGljIFkoKXtyZXR1cm4gdGhpcy4kKGcuZG9jdW1lbnRVcmwsZG9jdW1lbnQuVVJMLCJFX0RVUkw6ICIpfXN0YXRpYyBlZSgpe3JldHVybiB0aGlzLiQoZy5kb2N1bWVudFJlZmVycmVyLGRvY3VtZW50LnJlZmVycmVyLCJFX0RSRUY6ICIpfXN0YXRpYyBnZXRVcmxQYXJhbShlLHQscixhKXtyPXJ8fHRoaXMuWigpLGU9IltcXD8mXSIrKGU9KGU9ZS50b1N0cmluZygpLnJlcGxhY2UoL1tbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKSkudG9TdHJpbmcoKS5yZXBsYWNlKC8gL2csIlxcKyIpKSsnPShbXiYjLCJdKiknLGU9bmV3IFJlZ0V4cChlKS5leGVjKHIpO2xldCBpPWU/ZVsxXTpudWxsO3JldHVybiBpPW51bGwhPT1pJiYodCYmKGk9Yy5kZWNvZGVVcmxQYXJhbShpKSksYSk/aSYmaS5yZXBsYWNlKC9bIn0sXS9nLCIiKTppfXN0YXRpYyB0ZShlLHQscil7Zm9yKHZhciBhLGk9cnx8Yy5aKCkscj0iW1xcPyZdIisoZT1lLnRvU3RyaW5nKCkucmVwbGFjZSgvW1tdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpKSsiPShbXiYjXSopIixzPW5ldyBSZWdFeHAociwiZyIpLG49W107bnVsbCE9PShhPXMuZXhlYyhpKSk7KXtsZXQgZT1hWzFdO3QmJihlPWMuZGVjb2RlVXJsUGFyYW0oZSkpLG4ucHVzaChlKX1yZXR1cm4gbn1zdGF0aWMgcmUoKXt0aGlzLlooKSx0aGlzLlkoKSx0aGlzLmVlKCl9c3RhdGljIGFlKGUsdCxyLGEpe3ZhciBpLHQ9Yy5nZXRVcmxQYXJhbSh0LHIsYSwhMCk7aWYodClyZXR1cm4gdDtsZXQgcz1bXTtBcnJheS5pc0FycmF5KGUpP3M9ZToic3RyaW5nIj09dHlwZW9mIGUmJihzPWUuc3BsaXQoIiwiKS5tYXAoZT0+ZS50cmltKCkpKTtmb3IoaSBvZiBzKXRyeXt2YXIgbj1jLmdldFVybFBhcmFtKGkscixhLCEwKTtpZihuKXJldHVybiBufWNhdGNoKGUpe28uZXJyb3IoYFtnZXRVcmxWYWx1ZUZyb21DdXN0b21QYXJhbV1bZV9jcF0gcGFyYW06ICR7aX0sIGVycm9yOiBgK2UpfXJldHVybiBudWxsfXN0YXRpYyBpZShlLHQscixhKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sZT1jLmFlKGUsdCxyLGEpO3JldHVybiBlP051bWJlcihlKTpudWxsfXN0YXRpYyBzZShlLHQscixhKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sZT1jLmFlKGUsdCxyLGEpO3JldHVybiBlP0Jvb2xlYW4oZSk6bnVsbH1zdGF0aWMgbmUoZSl7Zm9yKHZhciB0IG9mIGUpe3Q9dGhpcy5nZXRVcmxQYXJhbSh0LCEwKTtpZih0KXJldHVybiB0fXJldHVybiBudWxsfXN0YXRpYyBvZSgpe3ZhciB0PXt9LHI9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQoIiYiKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7dmFyIGE9cltlXS5zcGxpdCgiPSIpOzI9PT1hLmxlbmd0aCYmKGMuY2UoYVsxXSk/dFthWzBdXT1kZWNvZGVVUklDb21wb25lbnQoYVsxXSk6dFthWzBdXT1hWzFdKX1yZXR1cm4gdH1zdGF0aWMgY2UoZSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fXN0YXRpYyBsZShlKXtsZXQgdD1jLmFlKCJzbCIsInNsIiwhMSxlKTtyZXR1cm4gdHx8KHQ9Yy5hZSgiZWwiLCJlbCIsITEsZSksZi5wcm9jZXNzZWREYXRhLnY9ISF0KSx0fX0sbD0ocyhjLCJpc01hdGNoaW5nQ3VzdG9tUGFyYW0iLChlLHQpPT5lLnNwbGl0KCIsIikubWFwKGU9PmUudHJpbSgpLnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKHQudG9Mb3dlckNhc2UoKSkpLGMpLGQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIGRlKGUsdD0hMSl7cmV0dXJuIHRoaXMudWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSksdCl9c3RhdGljIGhlKGUsdCxyPSExKXtyZXR1cm4gdGhpcy51ZShlLmdldEVsZW1lbnRCeUlkKHQpLHIpfXN0YXRpYyBwZShlKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSl9c3RhdGljIG1lKCl7cmV0dXJuIHRoaXMudWUodGhpcy5mZSgiLmh5cm9zLWZpcnN0LW5hbWU6bm90KGlucHV0KSIpKX1zdGF0aWMgZ2UoKXtyZXR1cm4gdGhpcy51ZSh0aGlzLmZlKCIuaHlyb3MtbGFzdC1uYW1lOm5vdChpbnB1dCkiKSl9c3RhdGljIHZlKCl7cmV0dXJuIHRoaXMudWUodGhpcy5mZSgiLmh5cm9zLWZ1bGwtbmFtZTpub3QoaW5wdXQpIikpfXN0YXRpYyB1ZShlLHQ9ITEpe3JldHVybiBudWxsIT09ZT90P2UudGV4dENvbnRlbnQ6ZS5pbm5lclRleHQ6IiJ9c3RhdGljIGZlKGUpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpfXN0YXRpYyBJZShlKXtmb3IodmFyIHQscj1bXSxhPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZSxOb2RlRmlsdGVyLlNIT1dfVEVYVCk7dD1hLm5leHROb2RlKCk7KXIucHVzaCh0KTtyZXR1cm4gcn1zdGF0aWMgQ2UoKXtyZXR1cm4gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIikpLmZpbHRlcihlPT5lLnNoYWRvd1Jvb3QpLm1hcChlPT5lLnNoYWRvd1Jvb3QpfX0sdD1jbGFzcyBydHtUZSgpe3ZhciBlLHQ9ZC5kZSgiaHlyb3MtZW1haWwiLCEwKTtpZih0KXJldHVybiB0O2ZvcihlIG9mIGQuQ2UoKSl7dmFyIHI9ZC5oZShlLCJoeXJvcy1lbWFpbCIsITApO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIiJ9X2UoKXt2YXIgZT1BcnJheS5mcm9tKGQucGUoImlucHV0IikpLHQ9ZC5DZSgpLmZsYXRNYXAoZT0+Wy4uLmUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKV0pO3JldHVyblsuLi5lLC4uLnRdfXN0YXRpYyBjcmVhdGUoZSl7cmV0dXJuIG5ldygiU0hPUElGWSIhPT1lP3J0OiQpfX0sJD1jbGFzcyBleHRlbmRzIHR7VGUoKXtyZXR1cm4gdGhpcy53ZSgicCIpfHx0aGlzLndlKCJzcGFuIil8fHRoaXMueWUoKXx8IiJ9RWUoZSl7ZT1lLnRyaW0oKTtyZXR1cm4gZS5pbmNsdWRlcygiQCIpJiYhZS5pbmNsdWRlcygiICIpfXdlKGUpe3ZhciB0PWQucGUoZSk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXQuaXRlbShlKS5pbm5lclRleHQudHJpbSgpO2lmKHRoaXMuRWUocikpcmV0dXJuIHJ9fXllKCl7dmFyIGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKCIoXnw7KVxccypoeXJvc2VtYWlsXFxzKj1cXHMqKFteO10rKSIpLGU9ZSYmMDxlLmxlbmd0aD9lLnBvcCgpOnZvaWQgMDtyZXR1cm4gZT8oby5pbmZvKCJbaF9lbWFpbF0gIitlKSxlKTpudWxsfX0sWj10LmNyZWF0ZShnLmNvbmZpZy5vcmlnaW4pLGk9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIGJlKGUpe3JldHVybiBlP2UudHJpbSgpOiIifXN0YXRpYyBSZShlKXtyZXR1cm4vXigoW148PigpW1xdXFwuLDs6XHNAIl0rKFwuW148PigpW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cXSl8KChbYS16QS1aXC0wLTldK1wuKStbYS16QS1aXXsyLH0pKSQvLnRlc3QoU3RyaW5nKGUpLnRvTG93ZXJDYXNlKCkpfXN0YXRpYyBQZSgpe3ZhciBlPVouVGUoKTtyZXR1cm4gdGhpcy5iZShlKX1zdGF0aWMgU2UoKXtyZXR1cm4gbC5uZShPYmplY3QudmFsdWVzKHEpKX19LHU9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIGtlKGUpe3JldHVybntbMF06T2JqZWN0LnZhbHVlcyh4KSwxOk9iamVjdC52YWx1ZXMoVyksMjpPYmplY3QudmFsdWVzKGopfVtlXXx8W119c3RhdGljIEFlKGUpe2U9dGhpcy5rZShlKTtyZXR1cm4gbC5uZShlKX19LFk9KGU9PihlLkhZUk9TX1BIT05FPSJoeXJvc3Bob25lIixlLkhZUk9TX1BIT05FX1NOQUtFPSJoeXJvc19waG9uZSIsZS5IWVJPU19QSE9ORV9EQVNIRUQ9Imh5cm9zLXBob25lIixlLkhZUk9TX1BIT05FX1NQQUNFRD0iaHlyb3MgcGhvbmUiLGUuSFlST1NfUEhPTkVfTlVNQkVSX1NOQUtFPSJoeXJvc19waG9uZV9udW1iZXIiLGUuSFlST1NfUEhPTkVfTlVNQkVSX0RBU0hFRD0iaHlyb3MtcGhvbmUtbnVtYmVyIixlLkhZUk9TX1BIT05FX05VTUJFUl9TUEFDRUQ9Imh5cm9zIHBob25lIG51bWJlciIsZSkpKHt9KTt2YXIgaD17T2U6WyJoLWFkZHJlc3MiXSxOZTpbImgtc3RyZWV0Il0sRGU6WyJoLWNvdW50cnkiXSxMZTpbImgtY2l0eSJdLEZlOlsiaC1zdGF0ZSJdLFVlOlsiaC16aXAtY29kZSJdfSxRPShlPT4oZS5IQ09OVEFDVD0iaGNvbnRhY3QiLGUpKShRfHx7fSk7ZnVuY3Rpb24gZWUoKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhRKX12YXIgdGU9KGU9PihlLlRFWFRfUkVNSU5ERVJfTlVNQkVSPSJ0ZXh0X3JlbWluZGVyX251bWJlciIsZS5TTVNfTlVNQkVSPSJzbXNfbnVtYmVyIixlLkFOU1dFUj0iYW5zd2VyXyIsZS5BTlNXRVJfMT0iYW5zd2VyXzEiLGUuRVZFTlRfU1RBUlRfVElNRT0iZXZlbnRfc3RhcnRfdGltZSIsZS5JTkZfQ1VTVE9NX1BIT05FX05VTUJFUl9PUl9TS1lQRV9JRD0iaW5mX2N1c3RvbV9QaG9uZW51bWJlcm9yU2t5cGVJRCIsZS5JTkZfRklFTERfUEhPTkUxPSJpbmZfZmllbGRfUGhvbmUxIixlLlBIT05FMT0iUGhvbmUxIixlLlBIT05FPSJwaG9uZSIsZS5NT0JJTEU9Im1vYmlsZSIsZS5DVVNUT01FUl9WQUxJRF9QSE9ORT0iY3VzdG9tZXJfdmFsaWRfcGhvbmUiLGUuVEVMPSJ0ZWwiLGUpKSh0ZXx8e30pO3ZhciByZT1bIiUiXSxhZT0iPT09IixwPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBHZShlKXtyZXR1cm4gZS50cmltKCkucmVwbGFjZSgvXHMrL2csIiAiKX1zdGF0aWMgSGUoZSl7dmFyIHQ7cmV0dXJuIGU/MT09KGU9ZS50cmltKCkuc3BsaXQoL1sgK10rLykuZmlsdGVyKGU9PjA8ZS5sZW5ndGgpKS5sZW5ndGg/ZToodD1lLnBvcCgpLFtlLmpvaW4oIiAiKSx0XSk6W119c3RhdGljIE1lKGUpe3JldHVybiBlP2UudHJpbSgpLnJlcGxhY2UoL1teYS16QS1aXS9nLCIiKToiIn1zdGF0aWMgVmUoZSl7cmV0dXJuIGU/ZS50cmltKCk6IiJ9c3RhdGljIEJlKHQpe3ZhciByPXJlO2lmKG51bGwhPXQpZm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBhPXQuaW5kZXhPZihyW2VdKTstMSE9YSYmKG8ud2FybigiW2ZiY2xpZF1bSUNdOiAiK3RbYV0pLHQ9dC5zdWJzdHJpbmcoMCxhKSl9cmV0dXJuIHR9c3RhdGljIHhlKHQscil7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspaWYoMD09PXQuaW5kZXhPZihyW2VdKSlyZXR1cm4hMDtyZXR1cm4hMX1zdGF0aWMgV2UoZSl7cmV0dXJuIG51bGw9PWV8fCJ1bmRlZmluZWQiPT09ZXx8InN0cmluZyI9PXR5cGVvZiBlJiYwPT09ZS50cmltKCkubGVuZ3RofXN0YXRpYyBqZShlKXtmb3IodmFyIHQgb2YgZSlpZigvXlxkKyQvLnRlc3QodCkpcmV0dXJuIHQ7cmV0dXJuIG51bGx9c3RhdGljIHFlKGUpe2Zvcih2YXIgdCBvZiBlKWlmKCEvXlxkKyQvLnRlc3QodCkpcmV0dXJuIHQ7cmV0dXJuIG51bGx9c3RhdGljIGdldFN1YnN0cmluZ0JldHdlZW4oZSx0LHIpe2lmKCIiPT1lKXJldHVybiIiO3ZhciBhPWUuaW5kZXhPZih0KTtpZighKDA8PWEpKXJldHVybiIiO2lmKGU9ZS5zdWJzdHJpbmcoYSt0Lmxlbmd0aCkscil7aWYoISgwPD0oYT1lLmluZGV4T2YocikpKSlyZXR1cm4iIjtlPWUuc3Vic3RyaW5nKDAsYSl9cmV0dXJuIGV9fSxtPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBLZSgpe2xldCBlO3JldHVybiBlPWwuWSgpJiYiYWJvdXQ6YmxhbmsiIT1sLlkoKSYmImFib3V0OnNyY2RvYyIhPWwuWSgpP2wuWSgpOnBhcmVudC5kb2N1bWVudD9wYXJlbnQuZG9jdW1lbnQuVVJMOmwuZWUoKSxsLmNlKGUpP2U6ZW5jb2RlVVJJKGUpfXN0YXRpYyBKZShlKXtlPW5ldyBVUkwoZSk7cmV0dXJuIGUucGF0aG5hbWUuZW5kc1dpdGgoIi8iKXx8KGUucGF0aG5hbWUrPSIvIiksZS5ocmVmfX0saWU9KHMobSwiZ2V0UHJldmlvdXNVcmwiLGZ1bmN0aW9uKCl7cmV0dXJuIGcuY29uZmlnLnNwYUVuYWJsZWQmJmYuY29uZmlnLm8/Zi5jb25maWcubzpsLmVlKCl9KSxjbGFzcyBhdHtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgemUoKXtyZXR1cm4gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpLnJlZHVjZSgoZSx0KT0+e3Zhclt0LC4uLnJdPXQuc3BsaXQoIj0iKSxyPXIuam9pbigiPSIpO3JldHVybiB0JiZlLnNldCh0LnRyaW0oKSxyKSxlfSxuZXcgTWFwKX1zdGF0aWMgWGUoZSl7cmV0dXJuIG51bGwhPShlPXRoaXMuemUoKS5nZXQoZSkpP2U6bnVsbH1zdGF0aWMgJGUoZSl7ZT1hdC5YZShlKTtyZXR1cm4gZT9KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChlKSk6dm9pZCAwfX0pLHY9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIFplKGUpe3ZhciB0O3JldHVybiB0aGlzLlllKGUpPyh0PXRoaXMuUWUodGhpcy5ldChbIl9mYmMiXSkpLHAuQmUodCkpOnAuQmUoZSl9c3RhdGljIHR0KGUpe3JldHVybiB0aGlzLlllKGUpP3RoaXMucnQodGhpcy5ldChbIl9nY2xfYXciLCJfZ2NsX2RjIl0pKTplfXN0YXRpYyBpdChlKXtyZXR1cm4gdGhpcy5ZZShlKT90aGlzLnN0KHRoaXMuZXQoWyJ0dGNsaWQiXSkpOmV9c3RhdGljIG50KGUpe3JldHVybiB0aGlzLlllKGUpP3RoaXMuc3QodGhpcy5ldChbInJkdF9jbGlkIiwicmR0X2NpZCJdKSk6ZX1zdGF0aWMgUWUoZSl7dmFyIHQsZT10aGlzLnN0KGUpO3JldHVybiFlfHwoZT1lLnNwbGl0KCIuIikpLmxlbmd0aDw0fHwiZmIiIT09ZVswXS50b0xvd2VyQ2FzZSgpfHwodD1OdW1iZXIucGFyc2VJbnQoZVsyXSwxMCksTnVtYmVyLmlzTmFOKHQpKXx8RGF0ZS5ub3coKS0xZTMqdD50aGlzLk1BWF9DTElDS19JRF9BR0VfTVM/bnVsbDp0aGlzLm90KGUuc2xpY2UoMykuam9pbigiLiIpKX1zdGF0aWMgcnQoZSl7dmFyIHQscixlPXRoaXMuc3QoZSk7cmV0dXJuIWV8fChlPWUuc3BsaXQoIi4iKSkubGVuZ3RoPDN8fChbZSx0LC4uLnJdPWUsImdjbCIhPT1lLnRvTG93ZXJDYXNlKCkpfHwoZT1OdW1iZXIucGFyc2VJbnQodCwxMCksTnVtYmVyLmlzTmFOKGUpKXx8RGF0ZS5ub3coKS0xZTMqZT50aGlzLk1BWF9DTElDS19JRF9BR0VfTVM/bnVsbDp0aGlzLm90KHIuam9pbigiLiIpKX1zdGF0aWMgZXQoZSl7Zm9yKHZhciB0IG9mIGUpe3Q9aWUuWGUodCk7aWYodGhpcy5vdCh0KSlyZXR1cm4gdH1yZXR1cm4gbnVsbH1zdGF0aWMgc3QoZSl7ZT10aGlzLm90KGUpO2lmKCFlKXJldHVybiBudWxsO2xldCB0PWUscj0iIjtmb3IoO3QhPT1yOyl7cj10O3RyeXt0PWRlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaHticmVha319cmV0dXJuIHRoaXMub3QodCl9c3RhdGljIFllKGUpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZXx8IiI9PT1lLnRyaW0oKX1zdGF0aWMgb3QoZSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBlfHwhKGU9ZS50cmltKCkpfHwvXHMvLnRlc3QoZSl8fCJkZWxldGVkIj09PWUudG9Mb3dlckNhc2UoKT9udWxsOmV9fSxzZT0ocyh2LCJNQVhfQ0xJQ0tfSURfQUdFX01TIiw2MDQ4ZTUpLChlLHQpPT57Zi5wcm9jZXNzZWREYXRhLlQucHVzaChlKSxmLnByb2Nlc3NlZERhdGEuZW1haWw9ZSxmLmxlYWQuZW1haWw9ZSxmLmxlYWQubGVhZEFkZHJlc3M9bC5uZShoLk9lKXx8Zi5sZWFkLmxlYWRBZGRyZXNzLGYubGVhZC5sZWFkU3RyZWV0PWwubmUoaC5OZSl8fGYubGVhZC5sZWFkU3RyZWV0LGYubGVhZC5sZWFkQ2l0eT1sLm5lKGguTGUpfHxmLmxlYWQubGVhZENpdHksZi5sZWFkLmxlYWRTdGF0ZT1sLm5lKGguRmUpfHxmLmxlYWQubGVhZFN0YXRlLGYubGVhZC5sZWFkQ291bnRyeT1sLm5lKGguRGUpfHxmLmxlYWQubGVhZENvdW50cnksZi5sZWFkLmxlYWRaaXBDb2RlPWwubmUoaC5VZSl8fGYubGVhZC5sZWFkWmlwQ29kZSxmLmxlYWQucGhvbmVOdW1iZXJzPW5lKCl8fGYubGVhZC5waG9uZU51bWJlcnMsZi5sZWFkLnRhZz1nLmNvbmZpZy5jdXN0b21UYWcsZi5sZWFkLnRhZ3M9KCgpPT57Y29uc3QgZT1mLnByb2Nlc3NlZERhdGEuUjtpZighZS5pbmNsdWRlcyhnLmNvbmZpZy5jdXN0b21UYWcpKWUucHVzaChnLmNvbmZpZy5jdXN0b21UYWcpO3JldHVybiBlfSkoKSxmLmxlYWQubGVhZFN0YWdlPWYucHJvY2Vzc2VkRGF0YS5VLGYubGVhZC5maXJzdE5hbWU9dS5BZSgwKXx8Zi5sZWFkLmZpcnN0TmFtZSxmLmxlYWQubGFzdE5hbWU9dS5BZSgxKXx8Zi5sZWFkLmxhc3ROYW1lLGYubGVhZC5jb250YWN0PWwubmUoZWUoKSl8fGYubGVhZC5jb250YWN0LGYuc291cmNlLnNvdXJjZUxpbmtUYWdzPXQsZi5zb3VyY2UuZmJBZHNldElkPWwuaWUoImZiY19pZCIsImZiY19pZCIsITApLGYuc291cmNlLmJpbmdBZEdyb3VwSWQ9bC5pZSgiYm5nX2lkIiwiYm5nX2lkIiwhMCksZi5zb3VyY2UuYmluZ1NwZWNpYWxDYW1wYWlnbj1sLnNlKCJDdXN0b21CaW5nU3BlY2lhbENhbXBhaWduIiwiYm5nX3NwZWNpYWxfY2FtcGFpZ24iLCEwKSxmLnNvdXJjZS5oeXJvc0NhbXBhaWduSWQ9bC5pZSgiaF9jYW1wYWlnbl9pZCIsImhfY2FtcGFpZ25faWQiLCEwKSxmLnNvdXJjZS5nb29nbGVBZElkPWwuaWUoImdjX2lkIiwiZ2NfaWQiLCEwKSxmLnNvdXJjZS5nQWRncm91cElkPWwuaWUoImhfZ2FfaWQiLCJoX2dhX2lkIiwhMCksZi5zb3VyY2UuZ1NwZWNpYWxDYW1wYWlnbj1sLnNlKCJDdXN0b21HU3BlY2lhbENhbXBhaWduIiwiZ19zcGVjaWFsX2NhbXBhaWduIiwhMCksZi5zb3VyY2UuZ0NsaWNrSWQ9bC5hZSgiZ2NsaWQiLCJnY2xpZCIsITApLGYuc291cmNlLndCcmFJZD1sLmFlKCJ3YnJhaWQiLCJ3YnJhaWQiLCEwKSxmLnNvdXJjZS5nQnJhSWQ9bC5hZSgiZ2JyYWlkIiwiZ2JyYWlkIiwhMCksZi5zb3VyY2UuZmJDbGlja0lkPXAuQmUobC5hZSgiZmJjbGlkIiwiZmJjbGlkIiwhMCkpLGYuc291cmNlLnRpa3Rva0FkR3JvdXBJZD1sLmllKCJ0dGNfaWQiLCJ0dGNfaWQiLCEwKSxmLnNvdXJjZS5zbmFwY2hhdEFkU2V0SWQ9bC5pZSgic25jX2lkIiwic25jX2lkIiwhMCksZi5zb3VyY2UudHdpdHRlckFkZ3JvdXBJZD1sLmllKCJ0d3RfaWQiLCJ0d3RfaWQiLCEwKSxmLnNvdXJjZS5waW50ZXJlc3RBZGdyb3VwSWQ9bC5pZSgicG50X2lkIiwicG50X2lkIiwhMCksZi5zb3VyY2UubGlua2VkaW5DYW1wYWlnbklkPWwuaWUoImxua19pZCIsImxua19pZCIsITApLGYuc291cmNlLnR0Q2xpY2tJZD1sLmFlKCJ0dGNsaWQiLCJ0dGNsaWQiLCEwKSxmLnNvdXJjZS5yZHRDbGlja0lkPWwuYWUoInJkdF9jbGlkIiwicmR0X2NsaWQiLCEwKSxmLnNvdXJjZS5mYkNsaWNrSWQ9di5aZShmLnNvdXJjZS5mYkNsaWNrSWQpLGYuc291cmNlLmdDbGlja0lkPXYudHQoZi5zb3VyY2UuZ0NsaWNrSWQpLGYuc291cmNlLnR0Q2xpY2tJZD12Lml0KGYuc291cmNlLnR0Q2xpY2tJZCksZi5zb3VyY2UucmR0Q2xpY2tJZD12Lm50KGYuc291cmNlLnJkdENsaWNrSWQpLGYuY2hlY2tvdXQucGF5cGFsVW5pcXVlQ2hlY2tvdXRJZD1sLmFlKCJ0eCIsInR4IiwhMCksZi5jb25maWcuY29va2llRW5hYmxlZD1uYXZpZ2F0b3IuY29va2llRW5hYmxlZCxmLmNvbmZpZy5yZWZVcmw9bS5LZSgpLGYuY29uZmlnLnByZXZVcmw9bC5lZSgpfSksbmU9KCk9Pnt2YXIgdCxyPWwub2UoKSxlPU9iamVjdC52YWx1ZXModGUpO2Zvcih0IGluIHIpaWYocC54ZSh0LGUpKXtsZXQgZT1yW3RdO3QuaW5jbHVkZXMoImFuc3dlcl8iKSYmKGU9Qy5jdChlKSksQy5sdChlKSYmQy5kdChlKSYmKGU9Qy51dChlKSxmLnByb2Nlc3NlZERhdGEuXy5pbmNsdWRlcyhlKXx8Zi5wcm9jZXNzZWREYXRhLl8ucHVzaChlKSl9dmFyIGE9Qy51dChDLmh0KCkpO3JldHVybiBDLmR0KGEpJiYhZi5wcm9jZXNzZWREYXRhLl8uaW5jbHVkZXMoYSkmJmYucHJvY2Vzc2VkRGF0YS5fLnB1c2goYSksZi5wcm9jZXNzZWREYXRhLl99LEk9Y2xhc3MgSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgbHQoZSl7cmV0dXJuL15cKz9cZHsxLDR9P1stLlxzXT9cZHsxLDR9P1stLlxzXT9cKD9cZHsxLDR9P1wpP1stLlxzXT9cZHsxLDR9Wy0uXHNdP1xkezEsNH1bLS5cc10/XGR7MSw5fSQvLnRlc3QoZSl9c3RhdGljIGZ0KGUpe3JldHVybi9eXHMqKD86XCs/KFxkezEsM30pKT9bLS4gKF0qKFxkezN9KVstLiApXSooXGR7M30pWy0uIF0qKFxkezR9KSg/OiAqeChcZCspKT9ccyokLy50ZXN0KGUpfXN0YXRpYyB1dChlKXtyZXR1cm4gZT9lLnRyaW0oKS5yZXBsYWNlKC9bXlxkKyxdL2csIiIpOiIifXN0YXRpYyBkdChlKXtyZXR1cm4hIWUmJjg8PShlPXRoaXMudXQoZSkpLmxlbmd0aCYmZS5sZW5ndGg8PTE2fXN0YXRpYyBjdChlKXt0cnl7cmV0dXJuKGU9ZGVjb2RlVVJJQ29tcG9uZW50KGUpKT8iKyIrZS50cmltKCkucmVwbGFjZSgvXCsvZywiIikucmVwbGFjZSgvXHMvZywiIik6IiJ9Y2F0Y2goZSl7cmV0dXJuIG8uZXJyb3IoZS50b1N0cmluZygpKSwiIn19c3RhdGljIGd0KGUpe2U9dGhpcy51dChlKTtyZXR1cm4hIXRoaXMuZnQoZSkmJjg8PWUubGVuZ3RoJiZlLmxlbmd0aDw9MTZ9c3RhdGljIHZ0KHQscil7bGV0IGE9ITE7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aCYmIWE7ZSsrKXt2YXIgaT10aGlzLkl0KHRbZV0scik7YT1pPT09cn1yZXR1cm4gYX1zdGF0aWMgQ3QodCl7Zm9yKGxldCBlPTA7ZTx0aGlzLnBob25lRm9ybWF0cy5sZW5ndGg7ZSsrKWlmKHRoaXMucGhvbmVGb3JtYXRzW2VdLlR0LnRlc3QodCkpcmV0dXJuIHRoaXMucGhvbmVGb3JtYXRzW2VdLmZvcm1hdDtyZXR1cm4iIn1zdGF0aWMgSXQoZSx0KXt2YXIgcj10aGlzLkN0KHQpLGE9KCIiK2UpLnJlcGxhY2UoL1xEL2csIiIpLm1hdGNoKC9eKDF8KT8oXGR7M30pKFxkezN9KShcZHs0fSkkLyk7aWYoIWEpcmV0dXJuIG51bGw7c3dpdGNoKHIpe2Nhc2UiRk9STUFUMSI6cmV0dXJuW2FbMl0sIi0iLGFbM10sIi0iLGFbNF1dLmpvaW4oIiIpO2Nhc2UiRk9STUFUMiI6cmV0dXJuWyIoIixhWzJdLCIpICIsYVszXSwiLSIsYVs0XV0uam9pbigiIik7Y2FzZSJGT1JNQVQzIjpyZXR1cm5bIigiLGFbMl0sIikgIixhWzNdLCIgIixhWzRdXS5qb2luKCIiKTtjYXNlIkZPUk1BVDQiOnJldHVyblsiKyIsIjEiPT09dFsxXT8iMSI6IiIsYVsyXSxhWzNdLGFbNF1dLmpvaW4oIiIpO2Nhc2UiRk9STUFUNSI6cmV0dXJuW2FbMl0sIi0iLGFbM10sYVs0XV0uam9pbigiIik7Y2FzZSJGT1JNQVQ2IjpyZXR1cm5bYVsyXSwiLyIsYVszXSwiLSIsYVs0XV0uam9pbigiIik7ZGVmYXVsdDpyZXR1cm5bIigiLGFbMl0sIikgIixhWzNdLCItIixhWzRdLHIudG9TdHJpbmcoKV0uam9pbigiIil9fXN0YXRpYyBodCgpe3ZhciBlPWQuZmUoIiNoeXJvcy1waG9uZTpub3QoaW5wdXQpIik7cmV0dXJuIG51bGwhPT0oZT1udWxsPT09ZT9kLmZlKCIuaHlyb3MtcGhvbmU6bm90KGlucHV0KSIpOmUpP2UuaW5uZXJUZXh0OiIifXN0YXRpYyBfdChlKXt2YXIgdCxyPU9iamVjdC52YWx1ZXMoWSk7aWYoZS5jbGFzc05hbWUpe3ZhciBhLGk9Wy4uLmUuY2xhc3NMaXN0XS5tYXAoZT0+ZS50b0xvd2VyQ2FzZSgpKTtmb3IoYSBvZiByKWlmKGkuaW5jbHVkZXMoYSkpcmV0dXJuITB9cmV0dXJuIHIuaW5jbHVkZXMobnVsbD09KHQ9ZS5pZCk/dm9pZCAwOnQudG9Mb3dlckNhc2UoKSl8fHIuaW5jbHVkZXMobnVsbD09KHQ9ZS5wbGFjZWhvbGRlcik/dm9pZCAwOnQudG9Mb3dlckNhc2UoKSl8fHRoaXMud3QoZSl9c3RhdGljIHd0KGUpe3JldHVybiEhZSYmKCJ0ZWwiPT09ZS5pbnB1dE1vZGV8fCJ0ZWwiPT09ZS50eXBlKX1zdGF0aWMgeXQoZSl7cmV0dXJuIEkubHQoZSkmJighSS5kdChlKXx8IWcuY29uZmlnLnBob25lT3B0SW5FbmFibGVkfHwwPGYucHJvY2Vzc2VkRGF0YS5ULmxlbmd0aCl9fSxDPShzKEksInBob25lRm9ybWF0cyIsW3tmb3JtYXQ6IkZPUk1BVDEiLFR0Oi9eXGR7M30tXGR7M30tXGR7NCx9JC99LHtmb3JtYXQ6IkZPUk1BVDIiLFR0Oi9eXChcZHszfVwpIFxkezN9LVxkezQsfSQvfSx7Zm9ybWF0OiJGT1JNQVQzIixUdDovXlwoXGR7M31cKSBcZHszfSBcZHs0LH0kL30se2Zvcm1hdDoiRk9STUFUNCIsVHQ6L15cK1xkezQsfSQvfSx7Zm9ybWF0OiJGT1JNQVQ1IixUdDovXlxkezN9LVxkezd9JC99LHtmb3JtYXQ6IkZPUk1BVDYiLFR0Oi9eXGR7M31cL1xkezN9LVxkezR9JC99XSksSSksb2U9KGU9PihlLkJVUkw9IkJVUkwiLGUuQklQPSJCSVAiLGUpKSh7fSk7ZnVuY3Rpb24gY2UoKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhvZSl9dmFyIFQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIEV0KGU9ITEpe3ZhciB0PVt7a2V5OiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIix2YWx1ZToiKiJ9LHtrZXk6IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsdmFsdWU6IioifSx7a2V5OiJDb250ZW50LXR5cGUiLHZhbHVlOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04In0se2tleToiVUktRnJhbWV3b3JrIix2YWx1ZTpmLmNvbmZpZy5wfSx7a2V5OiJQbGF0Zm9ybSIsdmFsdWU6Zi5jb25maWcucGxhdGZvcm19XTtyZXR1cm4gZT90LnJlZHVjZSgoZSx7a2V5OnQsdmFsdWU6cn0pPT4oZVt0XT1yLGUpLHt9KTp0fXN0YXRpYyBidChlKXtyZXR1cm5be2tleToiUHJvZHVjdC1JRCIsdmFsdWU6Zy5wcm9kdWN0LmlkfSx7a2V5OiJSZWYtVXJsIix2YWx1ZTpnLmNvbmZpZy5yZWZPdmVycmlkZXx8bS5LZSgpfSx7a2V5OiJmcCIsdmFsdWU6ZX0se2tleToiVUktRnJhbWV3b3JrIix2YWx1ZTpmLmNvbmZpZy5wfSx7a2V5OiJQbGF0Zm9ybSIsdmFsdWU6Zi5jb25maWcucGxhdGZvcm19XX1zdGF0aWMgUnQoKXtyZXR1cm5be2tleToiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsdmFsdWU6IlByb2R1Y3QtSUQifSx7a2V5OiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLHZhbHVlOiIqIn0se2tleToiUHJvZHVjdC1JRCIsdmFsdWU6Zy5wcm9kdWN0LmlkfV19c3RhdGljIFB0KGU9ITEpe3ZhciB0PVt7a2V5OiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIix2YWx1ZToiKiJ9LHtrZXk6IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsdmFsdWU6IioifSx7a2V5OiJDb250ZW50LXR5cGUiLHZhbHVlOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04In0se2tleToiU2Vzc2lvbi1JRCIsdmFsdWU6Zi5jb25maWcuc2Vzc2lvbklkfSx7a2V5OiJQcm9kdWN0LUlEIix2YWx1ZTpnLnByb2R1Y3QuaWR9LHtrZXk6IkwtR2VuLUlEIix2YWx1ZTpmLmNvbmZpZy5sZWFkR2VuU2Vzc2lvbklkfSx7a2V5OiJVSS1GcmFtZXdvcmsiLHZhbHVlOmYuY29uZmlnLnB9LHtrZXk6IlBsYXRmb3JtIix2YWx1ZTpmLmNvbmZpZy5wbGF0Zm9ybX1dO3JldHVybiBlP3QucmVkdWNlKChlLHtrZXk6dCx2YWx1ZTpyfSk9PihlW3RdPXIsZSkse30pOnR9c3RhdGljIFN0KGUpe2xldCByPXt9O3JldHVybiBlLnRyaW0oKS5zcGxpdCgvW1xyXG5dKy8pLmZvckVhY2goZT0+e3ZhciBlPWUuc3BsaXQoIjogIiksdD1udWxsPT0odD1lLnNoaWZ0KCkpP3ZvaWQgMDp0LnRyaW0oKSxlPWUuam9pbigiOiAiKS50cmltKCk7dCYmKHJbdF09ZSl9KSxyfX0sbGU9Y2xhc3N7Y29uc3RydWN0b3IoZSl7cyh0aGlzLCJiYXNlVXJsIiksdGhpcy5rdD1lfUF0KGUsdCxyLGEpe3JldHVybiB0aGlzLmRvQm9keVJlcXVlc3QoIlBPU1QiLHRoaXMuT3QoZSksdCxyLGEpfXB1dChlLHQscixhKXtyZXR1cm4gdGhpcy5kb0JvZHlSZXF1ZXN0KCJQVVQiLHRoaXMuT3QoZSksdCxyLGEpfWdldChhLGkscz0hMSxuLG8pe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3ZhciByPXRoaXMuTnQoIkdFVCIsdGhpcy5PdChhKSwhMCxpLHMpO3RoaXMuRHQocixlLHQsbnVsbCxuLG8pfSl9ZG9Cb2R5UmVxdWVzdChpLHMsbixvLGMpe3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3ZhciByPSJzdHJpbmciPT10eXBlb2Ygbj9uOk9iamVjdC5rZXlzKG4pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQobltlXSl9KS5qb2luKCImIiksYT10aGlzLk50KGkscywhMCxvLGMpO3RoaXMuRHQoYSxlLHQscil9KX1OdChlLHQscixhLGkpe2E9cC5XZShhKT9ULkV0KCk6YTt2YXIgcyxuPW5ldyBYTUxIdHRwUmVxdWVzdDtuLm9wZW4oZSx0LHIpLG4ud2l0aENyZWRlbnRpYWxzPWk7Zm9yKHMgb2YgYT1BcnJheS5pc0FycmF5KGEpP2E6W2FdKW4uc2V0UmVxdWVzdEhlYWRlcihzLmtleSxzLnZhbHVlKTtyZXR1cm4gbn1MdChhLGkscyxuLG8pe3JldHVybiBuZXcgUHJvbWlzZSgodCxyKT0+e249cC5XZShuKT9ULkV0KCEwKTpuO3ZhciBlPXttZXRob2Q6aSxoZWFkZXJzOm4sY3JlZGVudGlhbHM6bz8iaW5jbHVkZSI6Im9taXQiLGtlZXBhbGl2ZTohMH07IkdFVCIhPT1pJiYoZS5ib2R5PXMpLGZldGNoKHRoaXMuT3QoYSksZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0KCl9KS50aGVuKGZ1bmN0aW9uKGUpeyhlPWU/SlNPTi5wYXJzZShlKTp7fSkmJiJlcnJvciI9PT1lLnN0YXR1cz9yKG5ldyBFcnJvcigiS2VlcEFsaXZlRmV0Y2ggRXJyb3I6ICIrKGUuYm9keXx8Ik5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSkpOnQoZSl9KS5jYXRjaChyKX0pfUR0KHIsYSxpLGUscyxuPSExKXtyLm9ubG9hZD1mdW5jdGlvbigpe2lmKDIwMD09PXIuc3RhdHVzfHxudWxsIT1zJiZzLmluY2x1ZGVzKHIuc3RhdHVzKSl0cnl7bGV0IGU9bnVsbDtpZihyLnJlc3BvbnNlVGV4dCYmInVuZGVmaW5lZCIhPT1yLnJlc3BvbnNlVGV4dCYmIiIhPT1yLnJlc3BvbnNlVGV4dCYmKGU9SlNPTi5wYXJzZShyLnJlc3BvbnNlVGV4dCkpLCFuKXJldHVybiBhKGUpO3ZhciB0PVQuU3Qoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7YSh7ZGF0YTplLGhlYWRlcnM6dH0pfWNhdGNoKGUpe3Q9ZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTpKU09OLnN0cmluZ2lmeShlKTtpKCJFUlJPUiBQcm9jZXNzaW5nIFJlc3BvbnNlOiAiK3QpfWVsc2UgaSgiSFRUUCBlcnJvciBzdGF0dXM6ICIrci5zdGF0dXMrIiAtICIrci5yZXNwb25zZVRleHQpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtpKCJYTUxIdHRwUmVxdWVzdCBFcnJvcjogIisoci5yZXNwb25zZVRleHR8fCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxyLnNlbmQoZSl9T3QoZSl7cmV0dXJuIHRoaXMua3QrZX19LF89e2lkOm51bGwsc2Vzc2lvbklkOm51bGwscHJvZHVjdElkOm51bGwsY3JlYXRpb25EYXRlOm51bGwsZHZmcDpudWxsLHVuaXF1ZUNoZWNrb3V0SWQ6bnVsbCxjYXJ0SWQ6bnVsbCxwaG9uZU51bWJlcjpudWxsLGNvdXBvbkNvZGU6bnVsbCxmaXJzdE5hbWU6bnVsbCxsYXN0TmFtZTpudWxsLGxlYWRDaXR5Om51bGwsbGVhZEFkZHJlc3M6bnVsbCxsZWFkU3RyZWV0Om51bGwsbGVhZFN0YXRlOm51bGwsbGVhZENvdW50cnk6bnVsbCxsZWFkWmlwQ29kZTpudWxsLGRuaU51bWJlcjpudWxsLHRpbWVTcGVudDpudWxsLHBpeGVsRXZlbnRzOm51bGwsdGhpcmRQYXJ0eVNlc3Npb25JZDpudWxsLHRwc0Zyb21DYWNoZTpudWxsfSx3PW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywiaHR0cENsaWVudCIpLHModGhpcywibGVhZEdlbkh0dHBDbGllbnQiKSx0aGlzLkZ0PW5ldyBsZShhLnRyYWNraW5nQmFzZSksdGhpcy5VdD1uZXcgbGUoYS5sZWFkR2VuQmFzZSl9R3QoZSx0PXt9KXtyZXR1cm4gdGhpcy5IdCh0KT90aGlzLkZ0Lkx0KGEudW5pZmllZEV2ZW50LCJQT1NUIixlLFQuUHQoITApLCEwKTp0aGlzLkZ0LkF0KGEudW5pZmllZEV2ZW50LGUsVC5QdCgpLCEwKX1IdChlPXt9KXtyZXR1cm4oZy5jb25maWcudXNlRmV0Y2hLZWVwQWxpdmV8fCEobnVsbD09ZXx8IWUuTXQpKSYmdGhpcy5WdCgpfVZ0KCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGZldGNofHwiZnVuY3Rpb24iIT10eXBlb2YgUmVxdWVzdClyZXR1cm4hMTt0cnl7cmV0dXJuITA9PT1uZXcgUmVxdWVzdCgiaHR0cHM6Ly9leGFtcGxlLmNvbSIse21ldGhvZDoiUE9TVCIsYm9keToiIixrZWVwYWxpdmU6ITB9KS5rZWVwYWxpdmV9Y2F0Y2h7cmV0dXJuITF9fUJ0KGUpe3JldHVybiBnLmNvbmZpZy51c2VGZXRjaEtlZXBBbGl2ZT90aGlzLkZ0Lkx0KGcuZW5kcG9pbnRzLmNsaWNrVXBkYXRlLCJQVVQiLGUsVC5QdCghMCksITApOnRoaXMuRnQucHV0KGcuZW5kcG9pbnRzLmNsaWNrVXBkYXRlLGUsVC5QdCgpLCEwKX14dCgpe3ZhciBlPWcuZW5kcG9pbnRzLnRyYWNraW5nQmFzZStnLmVuZHBvaW50cy5jbGlja1VwZGF0ZTtfLmlkPWYuY29uZmlnLmwuY2xpY2tJZCxfLnByb2R1Y3RJZD1nLnByb2R1Y3QuaWQsXy5jcmVhdGlvbkRhdGU9Zi5jb25maWcubC5jcmVhdGlvbkRhdGUsXy5zZXNzaW9uSWQ9Zi5jb25maWcuc2Vzc2lvbklkLF8udHBzRnJvbUNhY2hlPWYuY29uZmlnLnRwc0Zyb21DYWNoZSxuYXZpZ2F0b3Iuc2VuZEJlYWNvbihlLEpTT04uc3RyaW5naWZ5KF8pKSYmby5pbmZvKCJbcGN1XS4iKSxPYmplY3Qua2V5cyhfKS5mb3JFYWNoKGU9PntfW2VdPW51bGx9KX1wcm9jZXNzQ2xpY2soZSl7ZT1nLmVuZHBvaW50cy5wcm9jZXNzQ2xpY2srZTtyZXR1cm4gZy5jb25maWcudXNlRmV0Y2hLZWVwQWxpdmU/dGhpcy5GdC5MdChlLCJHRVQiLHt9LFQuUHQoITApLCEwKTp0aGlzLkZ0LmdldChlLFQuUHQoKSwhMCl9V3QoZSl7cmV0dXJuIGcuY29uZmlnLnVzZUZldGNoS2VlcEFsaXZlP3RoaXMuRnQuTHQoYS5kbmlSZXF1ZXN0LCJQT1NUIixlLFQuUHQoITApLCExKTp0aGlzLkZ0LkF0KGEuZG5pUmVxdWVzdCxlLFQuUHQoKSwhMSl9anQoZSl7cmV0dXJuIGcuY29uZmlnLnVzZUZldGNoS2VlcEFsaXZlP3RoaXMuRnQuTHQoYS5nZW5lcmF0ZVVVSUQsIlBPU1QiLGUsVC5QdCghMCksITApOnRoaXMuRnQuQXQoYS5nZW5lcmF0ZVVVSUQsZSxULlB0KCksITApfWFzeW5jIHF0KGUsdCl7bGV0IHI9YS5nZW5lcmF0ZVVVSUQ7ZSYmKHIrPWUpO3ZhcntkYXRhOmUsaGVhZGVyczp0fT1hd2FpdCB0aGlzLkZ0LmdldChyLFQuYnQodCksITAsWzMwNF0sITApO3JldHVybiB0aGlzLkt0KGUsdCl9S3QoZSx0KXt2YXIgcj10WyJTZXNzaW9uLUlEIi50b0xvd2VyQ2FzZSgpXXx8dFsiU2Vzc2lvbi1JRCJdO2lmKHImJiJ1bmRlZmluZWQiIT09ciYmIiIhPT1yJiYibnVsbCIhPT1yKXJldHVybntzZXNzaW9uSWQ6cixKdDohMX07aWYoImRpc2FibGVkIj09PShudWxsPT1lP3ZvaWQgMDplLmJvZHkpKXJldHVybntzZXNzaW9uSWQ6bnVsbCxKdDohMH07dGhyb3cgbmV3IEVycm9yKGBbUFJPQ0VTU19TRVNTSU9OX0lEXSBJbnZhbGlkIHJlc3BvbnNlOiAke0pTT04uc3RyaW5naWZ5KGUpfSAtIEhlYWRlcnM6ICR7SlNPTi5zdHJpbmdpZnkodCl9IGApfWFzeW5jIHp0KCl7dmFyIGU9KGF3YWl0IHRoaXMuVXQuZ2V0KGEuZ2VuZXJhdGVMZWFkR2VuU2Vzc2lvbklkLFQuRXQoKSwhMCxbXSwhMCkpLmhlYWRlcnM7cmV0dXJuIHRoaXMuWHQoZSl9WHQoZSl7dmFyIHQ9ZVsiTC1HZW4tSUQiLnRvTG93ZXJDYXNlKCldfHxlWyJMLUdlbi1JRCJdO2lmKHQmJiJ1bmRlZmluZWQiIT09dCYmIm51bGwiIT09dClyZXR1cm4gdDt0aHJvdyBuZXcgRXJyb3IoIltQUk9DRVNTX0xFQURfR0VOX1NFU1NJT05fSURdIEhlYWRlcnM6ICIrSlNPTi5zdHJpbmdpZnkoZSkpfSR0KGUpe3JldHVybiB0aGlzLkZ0LnB1dChhLnBpbmdQb25nUmVxdWVzdCsiL3ZlcmlmeSIsZSxULlB0KCksITApfVp0KGUpe3JldHVybiB0aGlzLkZ0Lkx0KGEuY3VzdG9tQWN0aW9uUHJvY2Vzc2luZywiUE9TVCIsZSxULlB0KCEwKSwhMSl9WXQoZSx0KXtyZXR1cm4gdGhpcy5GdC5BdChnLmVuZHBvaW50cy5lcnJvckVuZHBvaW50KyI/Iit0LnRvU3RyaW5nKCksSlNPTi5zdHJpbmdpZnkoZSksVC5QdCgpLCEwKX19LHk9bmV3IGNsYXNze1F0KGUsdCxyPXt9KXt0aGlzLmVyKGUsIlsiK3QrIl0iLHIpLG8uZXJyb3IoIltFUlJPUl1bIit0KyJdOiAiK2UpfWVyKGUsdCxyKXtyPXtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6ci5zZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQsZXJyb3JUeXBlOnIuZXJyb3JUeXBlLGRhdGFTdHJpbmc6dCsiIC0gIit0aGlzLnRyKGUpfSx0PW5ldyBVUkxTZWFyY2hQYXJhbXM7dC5hcHBlbmQoInNjcmlwdCIsIlVOSUZJRURfVFJBQ0tJTkdfU0NSSVBUIiksdy5ZdChyLHQpfXRyKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFja3x8ZS5tZXNzYWdlfHwiVW5leHBlY3RlZCBlcnJvciI6SlNPTi5zdHJpbmdpZnkoZSl9fSxkZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe31zdGF0aWMgcnIoZSx0LHI9e30pe3JldHVybiEoZy5jb25maWcudXNlRmV0Y2hLZWVwQWxpdmV8fCFlfHwoY2UoKS5pbmNsdWRlcyhlLmJvZHkpPyhvLndhcm4oIltXQVJOXVsiK2UuYm9keSsiXSIpLDApOiJlcnJvciIhPT1lLnN0YXR1c3x8KHkuUXQoZS5ib2R5LHQsciksMCkpKX19LEU9bmV3IGNsYXNze2FyKGUpe3ZhciB0LHI7Zy5jb25maWcudGltZVNwZW50VHJhY2tpbmdFbmFibGVkfHxnLmNvbmZpZy50aGlyZFBhcnR5VHJhY2tpbmd8fGcuY29uZmlnLnVuaWZpZWRDbGlja0V2ZW50Pyh0PWUscj1fLnBpeGVsRXZlbnRzLE9iamVjdC5hc3NpZ24oXyx0KSxyJiYoXy5waXhlbEV2ZW50cz1bLi4uciwuLi50LnBpeGVsRXZlbnRzfHxbXV0pKTp3LkJ0KEpTT04uc3RyaW5naWZ5KGUpKS50aGVuKCgpPT5vLmluZm8oIltwY3VdLiIpKS5jYXRjaCh0aGlzLmlyKX1pcihlKXt5LlF0KGUsInBjdSIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiQ0xJQ0tfUFJPQ0VTU0lOR19TRVJWSUNFIixlcnJvclR5cGU6IkVORFBPSU5UX0RJRF9OT1RfUkVUVVJOXzIwMCJ9KX1zcihlLHQpe2UmJih0PXtpZDpmLmNvbmZpZy5sLmNsaWNrSWQscHJvZHVjdElkOmcucHJvZHVjdC5pZCxbdF06ZSxjcmVhdGlvbkRhdGU6Zi5jb25maWcubC5jcmVhdGlvbkRhdGV9LHRoaXMuYXIodCkpfW5yKGUsdCxyKXt0JiYoZi5sZWFkW2VdPXQsdGhpcy5zcih0LHIpKX1jcihlKXt2YXIgdDtlJiYhZi5wcm9jZXNzZWREYXRhLl8uaW5jbHVkZXMoZSkmJihDLmx0KGUpJiZDLmR0KGUpJiYodD1DLnV0KGUpLGYubGVhZC5waG9uZU51bWJlcnM9W3RdKSx0aGlzLnNyKGUsInBob25lTnVtYmVyIikpfWxyKGUpe3RoaXMuc3IoZSwiY291cG9uQ29kZSIpfWRyKGUpe3RoaXMubnIoImZpcnN0TmFtZSIsZSwiZmlyc3ROYW1lIil9dXIoZSl7dGhpcy5ucigibGFzdE5hbWUiLGUsImxhc3ROYW1lIil9aHIoZSl7dGhpcy5ucigibGVhZENpdHkiLGUsImxlYWRDaXR5Iil9cHIoZSl7dGhpcy5ucigibGVhZEFkZHJlc3MiLGUsImxlYWRBZGRyZXNzIil9bXIoZSl7dGhpcy5ucigibGVhZFN0cmVldCIsZSwibGVhZFN0cmVldCIpfWdyKGUpe3RoaXMubnIoImxlYWRTdGF0ZSIsZSwibGVhZFN0YXRlIil9dnIoZSl7dGhpcy5ucigibGVhZENvdW50cnkiLGUsImxlYWRDb3VudHJ5Iil9SXIoZSl7dGhpcy5ucigibGVhZFppcENvZGUiLGUsImxlYWRaaXBDb2RlIil9Q3IoZSl7ZSYmdGhpcy5zcihlLCJjYXJ0SWQiKX1UcihlKXtlJiYwPGUubGVuZ3RoJiZ0aGlzLnNyKGUsInBpeGVsRXZlbnRzIil9X3IoZSl7Zi5jb25maWcudHBzRnJvbUNhY2hlPWUsdGhpcy5zcihlLCJ0cHNGcm9tQ2FjaGUiKX13cihlKXtpZihlKXtvLmluZm8oIltfZmJwX2NdICIrZSk7dmFyIHQscixhPVtdO2Zvcih0IG9mIGUpdC5zdGFydHNXaXRoKCJmYi4iKSYmKChyPXt9KS5mYnBJZD10LHIuYWRzcGVuZFR5cGU9IkZBQ0VCT09LIixhLnB1c2gocikpO3RoaXMuVHIoYSl9fXlyKGUpe3RoaXMuc3IoZSwiZG5pTnVtYmVyIil9fSx1ZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsInJlc2V0U3RhZ2VhbmRDb25zZW50IixmdW5jdGlvbigpe2YucHJvY2Vzc2VkRGF0YS5VPSIiLGYubGVhZC5hZE9wdGltaXphdGlvbkNvbnNlbnQ9IlVOU1BFQ0lGSUVEIixmLmxlYWQubGVhZFN0YWdlPSIifSl9YXN5bmMgRXIoZSx0KXt0cnl7dmFyIHI9dGhpcy5icihlLHQpO2F3YWl0IHcuWnQociksdGhpcy5yZXNldFN0YWdlYW5kQ29uc2VudCgpfWNhdGNoKGUpe28uZXJyb3IoIltDQVBdOiAiK2UpfX1icihlLHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh7dHlwZTplLHZhbHVlOkFycmF5LmlzQXJyYXkodCk/Wy4uLnRdOlt0XX0pfX0sYj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsInN1Y2Nlc3NIdGUiLGZ1bmN0aW9uKGUpe2RlLnJyKGUsImh0ZSIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiTEVBRF9QUk9DRVNTSU5HX1NFUlZJQ0UiLGVycm9yVHlwZToiQkFDS0VORF9SRUpFQ1RFRF9SRVFVRVNUIn0pfHxvLmluZm8oIltodGVdLiIpfSl9UnIoZSx0KXsoe1swXTplPT50aGlzLlByKGUpLDE6ZT0+c2V0VGltZW91dCgoKT0+dGhpcy5TcihlKSw1MDApLDI6ZT0+dGhpcy5rcihlKSwzOmU9PnRoaXMuQXIoZSksNDplPT50aGlzLk9yKGUpLDU6ZT0+dGhpcy5OcihlKSw2OmU9PnRoaXMuRHIoZSksNzplPT50aGlzLkxyKGUpLDg6ZT0+dGhpcy5GcihlKSw5OmU9PnRoaXMuVXIoZSksMTA6ZT0+dGhpcy5HcihlKSwxMTplPT50aGlzLkhyKGUpfSlbdF0oZSl9TXIoZSl7dmFyIGU9ZS5kZXRhaWwsdD1lLnZhbHVlLGU9ZS50eXBlO3N3aXRjaChlKXtjYXNlImFkZExlYWRUYWciOnRoaXMuVnIodCk7YnJlYWs7Y2FzZSJhZGRMZWFkUGhvbmUiOnRoaXMuU3IodCk7YnJlYWs7Y2FzZSJhZGRDb25zZW50Ijp0aGlzLkJyKHQpO2JyZWFrO2Nhc2UiYWRkTGVhZFN0YWdlIjp0aGlzLldyKHQpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHZvaWQgby5lcnJvcigiW0xVX1VUXSIpfXRoaXMuanIoZSx0KX1qcihlLHQpe2xldCByPWYucHJvY2Vzc2VkRGF0YS5lbWFpbHx8Zi5wcm9jZXNzZWREYXRhLmc7aWYociYmaS5SZShyKSlyZXR1cm4gZi5jb25maWcuc2Vzc2lvbklkPyhmLnByb2Nlc3NlZERhdGEuVC5pbmNsdWRlcyhyKSYmKGYucHJvY2Vzc2VkRGF0YS5UPWYucHJvY2Vzc2VkRGF0YS5ULmZpbHRlcihlPT5lIT09cikpLHZvaWQgdGhpcy5xcihyLGwubGUoKSkpOnZvaWQoZi5wcm9jZXNzZWREYXRhLks9ITApO2UmJnQmJihlPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBLcih0LHIpe3JldHVybiBPYmplY3Qua2V5cyh0KS5maW5kKGU9PnRbZV09PT1yKX19LktyKEgsZSksZi5jb25maWcuc2Vzc2lvbklkP3VlLkVyKGUsdCk6KGYucHJvY2Vzc2VkRGF0YS5KPXtKcjplLHZhbHVlOnR9LG8uaW5mbygiW0NBUF0gRXZlbnQgY2FjaGVkIikpKX1TcihlLHQ9e30pe2U9Qy51dChlKSxDLmR0KGUpJiYhZi5wcm9jZXNzZWREYXRhLl8uaW5jbHVkZXMoZSkmJihmLmNvbmZpZy5sJiYoRS5jcihlKSxmLnByb2Nlc3NlZERhdGEuXy5wdXNoKGUpKSx0aGlzLnFyKGUsbC5sZSgpLHQpKX1xcihlLHQscj17fSl7dGhpcy56cihlLHQpJiZ3Lkd0KEpTT04uc3RyaW5naWZ5KHtwcm9kdWN0SWQ6Zy5wcm9kdWN0LmlkLGZpcnN0TmFtZTpmLmxlYWQuZmlyc3ROYW1lLGxhc3ROYW1lOmYubGVhZC5sYXN0TmFtZSxjb250YWN0OmYubGVhZC5jb250YWN0LGVtYWlsOmYubGVhZC5lbWFpbCxwaG9uZU51bWJlcnM6Zi5sZWFkLnBob25lTnVtYmVycyx0YWc6Zy5jb25maWcuY3VzdG9tVGFnLHRhZ3M6Zi5sZWFkLnRhZ3MsbGVhZFN0YWdlOmYubGVhZC5sZWFkU3RhZ2UsYWRPcHRpbWl6YXRpb25Db25zZW50OmYubGVhZC5hZE9wdGltaXphdGlvbkNvbnNlbnQsbGVhZEFkZHJlc3M6Zi5sZWFkLmxlYWRBZGRyZXNzLGxlYWRTdHJlZXQ6Zi5sZWFkLmxlYWRTdHJlZXQsbGVhZENpdHk6Zi5sZWFkLmxlYWRDaXR5LGxlYWRTdGF0ZTpmLmxlYWQubGVhZFN0YXRlLGxlYWRDb3VudHJ5OmYubGVhZC5sZWFkQ291bnRyeSxsZWFkWmlwQ29kZTpmLmxlYWQubGVhZFppcENvZGUsc291cmNlTGlua1RhZ3M6Zi5zb3VyY2Uuc291cmNlTGlua1RhZ3MsZmJBZHNldElkOmYuc291cmNlLmZiQWRzZXRJZCxiaW5nQWRHcm91cElkOmYuc291cmNlLmJpbmdBZEdyb3VwSWQsYmluZ1NwZWNpYWxDYW1wYWlnbjpmLnNvdXJjZS5iaW5nU3BlY2lhbENhbXBhaWduLGh5cm9zQ2FtcGFpZ25JZDpmLnNvdXJjZS5oeXJvc0NhbXBhaWduSWQsZ29vZ2xlQWRJZDpmLnNvdXJjZS5nb29nbGVBZElkLGdBZGdyb3VwSWQ6Zi5zb3VyY2UuZ0FkZ3JvdXBJZCxnU3BlY2lhbENhbXBhaWduOmYuc291cmNlLmdTcGVjaWFsQ2FtcGFpZ24sZ0NsaWNrSWQ6Zi5zb3VyY2UuZ0NsaWNrSWQsd0JyYUlkOmYuc291cmNlLndCcmFJZCxnQnJhSWQ6Zi5zb3VyY2UuZ0JyYUlkLGZiQ2xpY2tJZDpmLnNvdXJjZS5mYkNsaWNrSWQscmR0QWRHcm91cElkOmYuc291cmNlLnJkdEFkR3JvdXBJZCx0aWt0b2tBZEdyb3VwSWQ6Zi5zb3VyY2UudGlrdG9rQWRHcm91cElkLHNuYXBjaGF0QWRTZXRJZDpmLnNvdXJjZS5zbmFwY2hhdEFkU2V0SWQsdHdpdHRlckFkZ3JvdXBJZDpmLnNvdXJjZS50d2l0dGVyQWRncm91cElkLHBpbnRlcmVzdEFkZ3JvdXBJZDpmLnNvdXJjZS5waW50ZXJlc3RBZGdyb3VwSWQsbGlua2VkaW5DYW1wYWlnbklkOmYuc291cmNlLmxpbmtlZGluQ2FtcGFpZ25JZCx0dENsaWNrSWQ6Zi5zb3VyY2UudHRDbGlja0lkLHJkdENsaWNrSWQ6Zi5zb3VyY2UucmR0Q2xpY2tJZCxwYXlwYWxVbmlxdWVDaGVja291dElkOmYuY2hlY2tvdXQucGF5cGFsVW5pcXVlQ2hlY2tvdXRJZCxvcmlnaW46Zi5jb25maWcub3JpZ2luLGNvb2tpZUVuYWJsZWQ6Zi5jb25maWcuY29va2llRW5hYmxlZCxyZWZVcmw6Zi5jb25maWcucmVmVXJsLGR2ZnA6Zi5jb25maWcuZGV2aWNlRmluZ2VycHJpbnQscHJldlVybDpmLmNvbmZpZy5wcmV2VXJsLHNlc3Npb25JZDpmLmNvbmZpZy5zZXNzaW9uSWQsbGVhZEdlblNlc3Npb25JZDpmLmNvbmZpZy5sZWFkR2VuU2Vzc2lvbklkLHVuaXF1ZUNoZWNrb3V0SWQ6Zi5jaGVja291dC51bmlxdWVDaGVja291dElkfSkscikudGhlbih0aGlzLnN1Y2Nlc3NIdGUpLmNhdGNoKGU9PnkuUXQoZSwiaHRlIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJMRUFEX1BST0NFU1NJTkdfU0VSVklDRSIsZXJyb3JUeXBlOiJGQUlMRURfVE9fQ1JFQVRFX0hURSJ9KSl9enIoZSx0KXtyZXR1cm4hZi5wcm9jZXNzZWREYXRhLlQuaW5jbHVkZXMoZSkmJiFDLnl0KGUpJiYoc2UoZSx0KSxmLmxlYWQuZmlyc3ROYW1lJiZmLmxlYWQubGFzdE5hbWV8fHRoaXMuTnIodS5BZSgyKSksITApfVZyKGUpe2YucHJvY2Vzc2VkRGF0YS5SLmluY2x1ZGVzKGUpfHxmLnByb2Nlc3NlZERhdGEuUi5wdXNoKGUpfWtyKGUpe2U9cC5WZShlKSxmLmNvbmZpZy5sJiYoRS5scihlKSxmLnByb2Nlc3NlZERhdGEuUC5wdXNoKGUpKX1QcihlKXtlPWkuYmUoZSksaS5SZShlKSYmdGhpcy5xcihlLGwubGUoKSl9QXIoZSl7ZT1wLk1lKGUpO3ZhciB0PWYuY29uZmlnLmwuY2xpY2tJZDtmLnByb2Nlc3NlZERhdGEuTC5pbmNsdWRlcyhlK3QpfHxmLmNvbmZpZy5sJiYoRS5kcihlKSxmLnByb2Nlc3NlZERhdGEuTC5wdXNoKGUrdCkpfU9yKGUpe2U9cC5NZShlKTt2YXIgdD1mLmNvbmZpZy5sLmNsaWNrSWQ7Zi5wcm9jZXNzZWREYXRhLkYuaW5jbHVkZXMoZSt0KXx8Zi5jb25maWcubCYmKEUudXIoZSksZi5wcm9jZXNzZWREYXRhLkYucHVzaChlK3QpKX1OcihlKXtlPXAuSGUoZSk7MDxlLmxlbmd0aCYmdGhpcy5BcihlWzBdKSwxPGUubGVuZ3RoJiZ0aGlzLk9yKGVbMV0pfVhyKGUpe2YuY29uZmlnLmwmJihlPXtpZDpmLmNvbmZpZy5sLmNsaWNrSWQscHJvZHVjdElkOmcucHJvZHVjdC5pZCxkbmlOdW1iZXI6ZSxjcmVhdGlvbkRhdGU6Zi5jb25maWcubC5jcmVhdGlvbkRhdGV9LEUuYXIoZSkpfUJyKGUpe09iamVjdC52YWx1ZXMoRykuaW5jbHVkZXMoZSkmJmUhPT1mLmxlYWQuYWRPcHRpbWl6YXRpb25Db25zZW50JiYoZi5sZWFkLmFkT3B0aW1pemF0aW9uQ29uc2VudD1lLGcuY29uZmlnLiRyPSEwKX1XcihlKXtmLnByb2Nlc3NlZERhdGEuVSE9PWUmJihmLnByb2Nlc3NlZERhdGEuVT1lKX1GcihlKXtlPXAuR2UoZSk7dmFyIHQ9Zi5jb25maWcubC5jbGlja0lkO2YucHJvY2Vzc2VkRGF0YS5OLmluY2x1ZGVzKGUrdCl8fGYuY29uZmlnLmwmJihFLmhyKGUpLGYucHJvY2Vzc2VkRGF0YS5OLnB1c2goZSt0KSl9R3IoZSl7ZT1wLkdlKGUpO3ZhciB0PWYuY29uZmlnLmwuY2xpY2tJZDtmLnByb2Nlc3NlZERhdGEuQS5pbmNsdWRlcyhlK3QpfHxmLmNvbmZpZy5sJiYoRS52cihlKSxmLnByb2Nlc3NlZERhdGEuQS5wdXNoKGUrdCkpfVVyKGUpe2U9cC5HZShlKTt2YXIgdD1mLmNvbmZpZy5sLmNsaWNrSWQ7Zi5wcm9jZXNzZWREYXRhLk8uaW5jbHVkZXMoZSt0KXx8Zi5jb25maWcubCYmKEUuZ3IoZSksZi5wcm9jZXNzZWREYXRhLk8ucHVzaChlK3QpKX1McihlKXtlPXAuR2UoZSk7dmFyIHQ9Zi5jb25maWcubC5jbGlja0lkO2YucHJvY2Vzc2VkRGF0YS5rLmluY2x1ZGVzKGUrdCl8fGYuY29uZmlnLmwmJihFLm1yKGUpLGYucHJvY2Vzc2VkRGF0YS5rLnB1c2goZSt0KSl9SHIoZSl7ZT1wLkdlKGUpO3ZhciB0PWYuY29uZmlnLmwuY2xpY2tJZDtmLnByb2Nlc3NlZERhdGEuRC5pbmNsdWRlcyhlK3QpfHxmLmNvbmZpZy5sJiYoRS5JcihlKSxmLnByb2Nlc3NlZERhdGEuRC5wdXNoKGUrdCkpfURyKGUpe2U9cC5HZShlKTt2YXIgdD1mLmNvbmZpZy5sLmNsaWNrSWQ7Zi5wcm9jZXNzZWREYXRhLlMuaW5jbHVkZXMoZSt0KXx8Zi5jb25maWcubCYmKEUucHIoZSksZi5wcm9jZXNzZWREYXRhLlMucHVzaChlK3QpKX19LGU9bmV3IGNsYXNze1pyKCl7dGhpcy5ZcigibGVhZFVwZGF0ZSIsZT0+Yi5NcihlKSl9WXIoZSx0KXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihlLHQpfX0scj1uZXcgY2xhc3N7aW5pdCgpe3dpbmRvdy5ocnM9KCgpPT57bGV0IHQ9KGUsdCxyPSJsZWFkVXBkYXRlIik9Pnt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQocix7ZGV0YWlsOnt2YWx1ZTp0LHR5cGU6ZX19KSl9O3JldHVybnthZGRMZWFkVGFnOmZ1bmN0aW9uKGUpe3QoImFkZExlYWRUYWciLGUpfSxhZGRMZWFkUGhvbmU6ZnVuY3Rpb24oZSl7dCgiYWRkTGVhZFBob25lIixlKX0sYWRkTGVhZENvbnNlbnQ6ZnVuY3Rpb24oZSl7dCgiYWRkQ29uc2VudCIsZSl9LGFkZExlYWRTdGFnZTpmdW5jdGlvbihlKXt0KCJhZGRMZWFkU3RhZ2UiLGUpfX19KSgpfX0saGU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJzdGFydFRpbWUiKSxzKHRoaXMsInRvdGFsVGltZVNwZW50Iikscyh0aGlzLCJsYXN0TW91c2VNb3ZlVGltZSIpLHRoaXMuUXIoKX1nZXRTdGFydFRpbWUoKXtyZXR1cm4gdGhpcy5zdGFydFRpbWV9UXIoKXt0aGlzLmVhPTAsdGhpcy5zdGFydFRpbWU9bnVsbCx0aGlzLnRhPW51bGx9cmEoKXt2YXIgZT0wPT09dGhpcy5lYT90aGlzLmFhKCk6dGhpcy5lYTtyZXR1cm4gMTZlODxlPzA6ZX1pYSgpe3ZhciBlPXRoaXMuc2EoKTt0aGlzLnN0YXJ0VGltZXx8KHRoaXMuc3RhcnRUaW1lPWUpLHRoaXMudGE9ZX1uYSgpe251bGwhPT10aGlzLnN0YXJ0VGltZSYmbnVsbCE9PXRoaXMudGEmJih0aGlzLmVhKz10aGlzLmFhKCksdGhpcy5zdGFydFRpbWU9bnVsbCl9b2EoKXtpZihnLmNvbmZpZy50aW1lU3BlbnRUcmFja2luZ0VuYWJsZWQpe2xldCBlO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsKCk9PntjbGVhclRpbWVvdXQoZSksdGhpcy5nZXRTdGFydFRpbWUoKXx8dGhpcy5pYSgpLGU9c2V0VGltZW91dCgoKT0+dGhpcy5uYSgpLDNlMyl9KX19YWEoKXtyZXR1cm4gdGhpcy5zYSgpLXRoaXMuc3RhcnRUaW1lfXNhKCl7cmV0dXJuIE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpfX0scGU9KCk9PntfLnRpbWVTcGVudD1oZS5yYSgpLnRvU3RyaW5nKCksdy54dCgpfTtmdW5jdGlvbiBtZShlLHIsYSxpLHMsbil7e3ZhciBvPXIsYz1hLGw9aTtyPXMsaT0iUE9TVCIsYT0hIShhPW4pLHM9InN0cmluZyI9PXR5cGVvZiBvP286T2JqZWN0LmtleXMobykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChvW2VdKX0pLmpvaW4oIiYiKTtsZXQgdD1mZShpLGUsITAscixhKTt0Lm9ubG9hZD1mdW5jdGlvbigpe2lmKDIwMD09PXQuc3RhdHVzKXRyeXt2YXIgZTtudWxsIT10LnJlc3BvbnNlVGV4dCYmInVuZGVmaW5lZCIhPXQucmVzcG9uc2VUZXh0JiYiIiE9dC5yZXNwb25zZVRleHQ/KGU9SlNPTi5wYXJzZSh0LnJlc3BvbnNlVGV4dCksYyhlKSk6YygpfWNhdGNoKGUpe2woIkVSUk9SIFByb2Nlc2luZyBSZXNwb25zZTogIisoZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTplKSl9ZWxzZSBsKCJodHRwIHN0YXR1czogIit0LnN0YXR1cysiIC0gIit0LnJlc3BvbnNlVGV4dCl9LHQub25lcnJvcj1mdW5jdGlvbigpe2woIkVycm9yIFhNTEh0dHA6ICIrKHQucmVzcG9uc2VUZXh0fHwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCIpKX0sdC5zZW5kKHMpfX1mdW5jdGlvbiBmZShlLHQscixhLGkpe2k9ISFpLGE9bnVsbD09YXx8InVuZGVmaW5lZCI9PWE/W3trZXk6IkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLHZhbHVlOiIqIn0se2tleToiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIix2YWx1ZToiKiJ9LHtrZXk6IkNvbnRlbnQtdHlwZSIsdmFsdWU6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgifV06YTt2YXIgcyxuPW5ldyBYTUxIdHRwUmVxdWVzdDtuLm9wZW4oZSx0LHIpLG4ud2l0aENyZWRlbnRpYWxzPWk7Zm9yKHMgb2YgYSluLnNldFJlcXVlc3RIZWFkZXIocy5rZXkscy52YWx1ZSk7cmV0dXJuIG59dmFyIGdlPShlPT4oZS5HT09HTEU9IndpY2tlZHNvdXJjZSIsZS5GQUNFQk9PSz0iV2lja2VkU291cmNlIixlKSkoe30pLHZlPShlPT4oZS5HT09HTEU9IndpY2tlZGlkIixlLkZBQ0VCT09LPSJXaWNrZWRJRCIsZSkpKHt9KSxJZT0oZT0+KGUuU05BUENIQVQ9InNuYXBjaGF0IixlKSkoe30pLENlPShlPT4oZS5GQUNFQk9PSz0iZmJhZGlkIixlLkdPT0dMRT0iZ2FkaWQiLGUuVElLVE9LPSJ0dGFkaWQiLGUuVElLVE9LX09SX0ZBQ0VCT09LPSJ0d19hZGlkIixlKSkoe30pO3ZhciBUZT0oZT0+KGUuU09VUkNFX0xJTktfVEFHPSJzb3VyY2VMaW5rVGFnIixlLkZCX0FEX1NFVF9JRD0iZmJBZFNldElkIixlLkJJTkdfQURfR1JPVVBfSUQ9ImJpbmdBZEdyb3VwSWQiLGUuSFlST1NfQ0FNUEFJR05fSUQ9Imh5cm9zQ2FtcGFpZ25JZCIsZS5HT09HTEVfQ0FNUEFJR05fSUQ9Imdvb2dsZUNhbXBhaWduSWQiLGUuR09PR0xFX0FER1JPVVBfSUQ9Imdvb2dsZUFkZ3JvdXBJZCIsZS5IWVJPU19BRF9JRD0iaHlyb3NBZElkIixlLlRJS1RPS19BRF9HUk9VUF9JRD0idGlrdG9rQWRHcm91cElkIixlLlNOQVBDSEFUX0FEX1NFVF9JRD0ic25hcGNoYXRBZFNldElkIixlLkxJTktFRElOX0NBTVBBSUdOX0lEPSJsaW5rZWRpbkNhbXBhaWduSWQiLGUuVFdJVFRFUl9BREdST1VQX0lEPSJ0d2l0dGVyQWRncm91cElkIixlLlBJTlRFUkVTVF9BRF9HUk9VUF9JRD0icGludGVyZXN0QWRHcm91cElkIixlLldSX0FEX0lEPSJ3ckFkSWQiLGUuVFdfQURfSUQ9InR3QWRJZCIsZS5IWVJPU19BRF9OQU1FPSJoeXJvc0FkTmFtZSIsZS5XSE9QX0FEX0dST1VQX0lEPSJ3aG9wQWRHcm91cElkIixlLldIT1BfQURfSUQ9Indob3BBZElkIixlKSkoe30pO3ZhciBfZT1uZXcgY2xhc3N7Y2EoKXtsLnJlKCk7dHJ5e2cuY29uZmlnLmRlbGV0ZVBhcmFtcyYmaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsdGhpcy5sYSgpKX1jYXRjaChlKXtnLmNvbmZpZy5kZWxldGVQYXJhbXM9ITEsby5lcnJvcigiRV9QOiAiKyhlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpKX19ZGEoKXt2YXIgdD17fTtpZih0LnByZXZpb3VzVXJsPWcuY29uZmlnLnByZXZPdmVycmlkZXx8bS5nZXRQcmV2aW91c1VybCgpLHQudXNlckFnZW50PW5hdmlnYXRvci51c2VyQWdlbnQsdC51bmlxdWVDaGVja291dElkPWYuY2hlY2tvdXQudW5pcXVlQ2hlY2tvdXRJZCx0LnVhPWcuY29uZmlnLnVhLHQucmVmVXJsPWcuY29uZmlnLnJlZk92ZXJyaWRlfHxtLktlKCksdGhpcy5oYSh0LGwuWigpKSx0aGlzLnBhKHQpfHx0LnJlZlVybD09PWwuWigpfHx0aGlzLmhhKHQsdC5yZWZVcmwpLGcuY29uZmlnLmlnbm9yZVByZXZVcmx8fHRoaXMucGEodCl8fHRoaXMuaGEodCx0LnByZXZpb3VzVXJsKSx0aGlzLnBhKHQpfHwwPChhPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKS5maWx0ZXIodD0+eigpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQubmFtZS5pbmNsdWRlcyhlKX0pKSkubGVuZ3RoJiYodC5yZWZVcmw9ZW5jb2RlVVJJKGFbMF0ubmFtZSksdGhpcy5oYSh0LHQucmVmVXJsKSksdC5mYkNsaWNrSWQ9cC5CZSh0LmZiQ2xpY2tJZCksIXRoaXMucGEodCkpe3ZhciByLGE9bC5hZSgibWNoIiwibWNoIik7bGV0IGU9W107Zm9yKHIgb2YgZT1udWxsIT09YT9kZWNvZGVVUklDb21wb25lbnQoYSkuc3BsaXQoYWUpOmUpe3ZhciBpPXIuc3BsaXQoIj0iKVswXSxzPXIuc3BsaXQoIj0iKVsxXTsic2wiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJzbCIsaSl8fCh0LnNvdXJjZUxpbmtUYWc9cyksImVsIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgiZWwiLGkpfHwodC5zb3VyY2VMaW5rVGFnPXMpLHQudj0iZWwiPT09aXx8bC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oImVsIixpKSwiZmJjX2lkIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgiZmJjX2lkIixpKXx8KHQuZmJBZFNldElkPXMpLCJibmdfaWQiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJibmdfaWQiLGkpfHwodC5iaW5nQWRHcm91cElkPXMpLCJibmdfc3BlY2lhbF9jYW1wYWlnbiIhPT1pJiYhbC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oIkN1c3RvbUJpbmdTcGVjaWFsQ2FtcGFpZ24iLGkpfHwodC5iaW5nU3BlY2lhbENhbXBhaWduPSJ0cnVlIj09PXMpLCJoX2NhbXBhaWduX2lkIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgiaF9jYW1wYWlnbl9pZCIsaSl8fCh0Lmh5cm9zQ2FtcGFpZ25JZD1zKSwiZ2NfaWQiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJnY19pZCIsaSl8fCh0Lmdvb2dsZUNhbXBhaWduSWQ9cyksImhfZ2FfaWQiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJoX2dhX2lkIixpKXx8KHQubWE9cyksImdfc3BlY2lhbF9jYW1wYWlnbiIhPT1pJiYhbC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oIkN1c3RvbUdTcGVjaWFsQ2FtcGFpZ24iLGkpfHwodC5nU3BlY2lhbENhbXBhaWduPSJ0cnVlIj09PXMpLCJmYmNsaWQiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJmYmNsaWQiLGkpfHwodC5mYkNsaWNrSWQ9cyksImdjbGlkIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgiZ2NsaWQiLGkpfHwodC5nb29nbGVDbGlja0lkPXMpLCJ3YnJhaWQiIT09aSYmIWwuaXNNYXRjaGluZ0N1c3RvbVBhcmFtKCJ3YnJhaWQiLGkpfHwodC53QnJhSWQ9cyksImdicmFpZCIhPT1pJiYhbC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oImdicmFpZCIsaSl8fCh0LmdCcmFJZD1zKSwiaF9hZF9pZCIhPT1pJiYhbC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oImhfYWRfaWQiLGkpfHwodC5oeXJvc0FkSWQ9cyksInR0Y2xpZCIhPT1pJiYhbC5pc01hdGNoaW5nQ3VzdG9tUGFyYW0oInR0Y2xpZCIsaSl8fCh3aW5kb3cudGlrdG9rQ2xpY2tJZD1zKSwicmR0X2lkIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgicmR0X2lkIixpKXx8KHdpbmRvdy5yZHRBZEdyb3VwSWQ9cyksInJkdF9jbGlkIiE9PWkmJiFsLmlzTWF0Y2hpbmdDdXN0b21QYXJhbSgicmR0X2NsaWQiLGkpfHwodC5yZHRDbGlja0lkPXMpLCJmYl9jbF9pZCI9PWkmJih0LmZiQ2xpY2tJZD1zKSwiZ19jbF9pZCI9PWkmJih0Lmdvb2dsZUNsaWNrSWQ9cyksImlzX2VsIj09aSYmKHQudj0idHJ1ZSI9PXMpLCJ0dGNsaWQiPT1pJiYod2luZG93LnRpa3Rva0NsaWNrSWQ9cyksInJkdF9jbGlkIj09aSYmKHQucmR0Q2xpY2tJZD1zKSwiYXBsX2lkIj09aSYmKHQuZmE9cyl9fXJldHVybiB0aGlzLnBhKHQpfHwodC5nYT10aGlzLnZhKCksdC5JYT10aGlzLkNhKHQpKSx0aGlzLnBhKHQpfHwoYT10aGlzLlRhKCkpJiYodC5fYT10aGlzLndhKCksdC55YT1hKSx0LmZiQ2xpY2tJZD12LlplKHQuZmJDbGlja0lkKSx0Lmdvb2dsZUNsaWNrSWQ9di50dCh0Lmdvb2dsZUNsaWNrSWQpLHQudGlrdG9rQ2xpY2tJZD12Lml0KHQudGlrdG9rQ2xpY2tJZCksdC5yZHRDbGlja0lkPXYubnQodC5yZHRDbGlja0lkKSx0LnY9Zi5wcm9jZXNzZWREYXRhLnYsdH1sYSgpe3ZhciBlPWxvY2F0aW9uLmhyZWYucmVwbGFjZSgiLz8iLCI/IiksW2UsdF09ZS5zdWJzdHJpbmcoZS5sYXN0SW5kZXhPZigiLyIpKzEpLnNwbGl0KCI/Iik7bGV0IHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh0KTtyZXR1cm4geigpLmZvckVhY2goZT0+ci5kZWxldGUoZSkpLE9iamVjdC52YWx1ZXMoSykuZm9yRWFjaChlPT57ZS5zcGxpdCgiLCIpLm1hcChlPT5lLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmZvckVhY2goZT0+ci5kZWxldGUoZSkpfSksZSsoKHIudG9TdHJpbmcoKSYmIj8iKStkZWNvZGVVUklDb21wb25lbnQoci50b1N0cmluZygpKSl9d2EoKXt2YXIgZT1sLlooKTtyZXR1cm4gZS5pbmNsdWRlcygiZmJhZGlkIik/ImZhY2Vib29rIjplLmluY2x1ZGVzKCJnYWRpZCIpPyJnb29nbGUiOmUuaW5jbHVkZXMoInR0YWRpZCIpPyJ0aWt0b2siOmUuaW5jbHVkZXMoInR3X2FkaWQiKT90aGlzLkVhKCJ0d19zb3VyY2UiKXx8dGhpcy5FYSgidXRtX3NvdXJjZSIpOiIifUVhKGUpe2U9bC5nZXRVcmxQYXJhbShlKTtyZXR1cm4iZmIiPT09ZXx8ImlnIj09PWV8fCJpbnN0YWdyYW0iPT09ZXx8ImZhY2Vib29rX2luc3RhZ3JhbSI9PT1lfHwibXNnIj09PWV8fCJhbiI9PT1lPyJmYWNlYm9vayI6InRpa3RvayI9PT1lfHwiZmFjZWJvb2siPT09ZXx8Imdvb2dsZSI9PT1lP2U6IiJ9VGEoKXt2YXIgZSx0O2Zvcih0IG9mIE9iamVjdC52YWx1ZXMoQ2UpKWlmKGU9bC5nZXRVcmxQYXJhbSh0KSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1oYShlLHQpe2Uuc291cmNlTGlua1RhZz1sLmxlKHQpLGUuZmJBZFNldElkPWwuYWUoImZiY19pZCIsImZiY19pZCIsITAsdCksZS5iaW5nQWRHcm91cElkPWwuYWUoImJuZ19pZCIsImJuZ19pZCIsITAsdCksZS5iaW5nU3BlY2lhbENhbXBhaWduPSJ0cnVlIj09bC5hZSgiQ3VzdG9tQmluZ1NwZWNpYWxDYW1wYWlnbiIsImJuZ19zcGVjaWFsX2NhbXBhaWduIiwhMCx0KSxlLmh5cm9zQ2FtcGFpZ25JZD1sLmFlKCJoX2NhbXBhaWduX2lkIiwiaF9jYW1wYWlnbl9pZCIsITAsdCksZS5nb29nbGVDYW1wYWlnbklkPWwuYWUoImdjX2lkIiwiZ2NfaWQiLCEwLHQpLGUubWE9bC5hZSgiaF9nYV9pZCIsImhfZ2FfaWQiLCEwLHQpLGUuZ1NwZWNpYWxDYW1wYWlnbj0idHJ1ZSI9PWwuYWUoIkN1c3RvbUdTcGVjaWFsQ2FtcGFpZ24iLCJnX3NwZWNpYWxfY2FtcGFpZ24iLCEwLHQpLGUuZmJDbGlja0lkPWwuYWUoImZiY2xpZCIsImZiY2xpZCIsITAsdCksZS5nb29nbGVDbGlja0lkPWwuYWUoImdjbGlkIiwiZ2NsaWQiLCEwLHQpLGUud0JyYUlkPWwuYWUoIndicmFpZCIsIndicmFpZCIsITAsdCksZS5nQnJhSWQ9bC5hZSgiZ2JyYWlkIiwiZ2JyYWlkIiwhMCx0KSxlLmh5cm9zQWRJZD1sLmFlKCJoX2FkX2lkIiwiaF9hZF9pZCIsITAsdCksZS50aWt0b2tBZEdyb3VwSWQ9bC5hZSgidHRjX2lkIiwidHRjX2lkIiwhMCx0KSxlLnJkdEFkR3JvdXBJZD1sLmFlKCJyZHRfaWQiLCJyZHRfaWQiLCEwLHQpLGUucmR0Q2xpY2tJZD1sLmFlKCJyZHRfY2xpZCIsInJkdF9jbGlkIiwhMCx0KSxlLnNuYXBjaGF0QWRTZXRJZD1sLmFlKCJzbmNfaWQiLCJzbmNfaWQiLCEwLHQpLGUubGlua2VkaW5DYW1wYWlnbklkPWwuYWUoImxua19pZCIsImxua19pZCIsITAsdCksZS50aWt0b2tDbGlja0lkPWwuYWUoInR0Y2xpZCIsInR0Y2xpZCIsITAsdCksZS50d2l0dGVyQWRncm91cElkPWwuYWUoInR3dF9pZCIsInR3dF9pZCIsITAsdCksZS5waW50ZXJlc3RBZGdyb3VwSWQ9bC5hZSgicG50X2lkIiwicG50X2lkIiwhMCx0KSxlLnBheXBhbFVuaXF1ZUNoZWNrb3V0SWQ9bC5hZSgidHgiLCJ0eCIsITAsdCksZS5iYT1sLmFlKCJoX2tleXdvcmQiLCJoX2tleXdvcmQiLCEwLHQpLGUuUmE9bC5hZSgiaF9wbGFjZW1lbnQiLCJoX3BsYWNlbWVudCIsITAsdCksZS5QYT1sLmFlKCJoX2FkX25hbWUiLCJoX2FkX25hbWUiLCEwLHQpLGUuZmE9bC5hZSgiYXBsX2lkIiwiYXBsX2lkIiwhMCx0KSxlLlNhPWwuYWUoIndhc2lkIiwid2FzaWQiLCEwLHQpLGUua2E9bC5hZSgid2FpZCIsIndhaWQiLCEwLHQpLGUuQWE9bC5hZSgid2FjaWQiLCJ3YWNpZCIsITAsdCksZS5PYT1sLmFlKCJoX2NhbXBhaWduX25hbWUiLCJoX2NhbXBhaWduX25hbWUiLCEwLHQpO3ZhciByPWwuYWUoImhfa2V5d29yZF9pZCIsImhfa2V5d29yZF9pZCIsITAsdCk7ciYmKHI9bmV3IFJlZ0V4cCgia3dkLShcXGQrKSIpLmV4ZWMociksZS5OYT1yP3JbMV06bnVsbCksdGhpcy5EYShlLHQpfURhKGUsdCl7dmFyIHI9ey4uLmV9O2RlbGV0ZSByLnNvdXJjZUxpbmtUYWcsdGhpcy5wYShyKXx8bnVsbD09PWUuc291cmNlTGlua1RhZ3x8KGUuTGE9bC5hZSgiaHRyYWZmaWNzb3VyY2UiLCJodHJhZmZpY3NvdXJjZSIsITEsdCksZS5GYT1sLmFlKCJoY2F0ZWdvcnkiLCJoY2F0ZWdvcnkiLCExLHQpLGUuVWE9bC5hZSgiaGdvYWwiLCJoZ29hbCIsITEsdCkpfUNhKGUpe3N3aXRjaChlLmdhKXtjYXNlImdvb2dsZSI6dmFyIHQ9bC50ZSgid2lja2VkaWQiKTtyZXR1cm4gbnVsbD09PWUuZ29vZ2xlQ2xpY2tJZCYmKGUuZ29vZ2xlQ2xpY2tJZD1wLnFlKHQpKSxwLmplKHQpO2Nhc2UiRmFjZWJvb2siOntsZXQgZTtmb3IodmFyIHIgb2YgT2JqZWN0LnZhbHVlcyh2ZSkpaWYoZT1sLmdldFVybFBhcmFtKHIpKXJldHVybiBlO3JldHVybiBlfWRlZmF1bHQ6cmV0dXJuIG51bGx9fXZhKCl7dmFyIGU9dGhpcy5HYSgpO3JldHVybiBlfHx0aGlzLkhhKCl9R2EoKXt2YXIgZSx0O2Zvcih0IG9mIE9iamVjdC52YWx1ZXMoZ2UpKWlmKGU9bC5nZXRVcmxQYXJhbSh0KSlyZXR1cm4gZTtyZXR1cm4gbnVsbH1IYSgpe3ZhciBlLHQ9bC5nZXRVcmxQYXJhbSgidXRtX3NvdXJjZSIpO2ZvcihlIG9mIE9iamVjdC52YWx1ZXMoSWUpKWlmKHQ9PT1lKXJldHVybiB0O3JldHVybiBudWxsfXBhKGUpe3JldHVybiAwPE9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcigoW2UsdF0pPT5PYmplY3QudmFsdWVzKFRlKS5pbmNsdWRlcyhlKSYmbnVsbCE9PXQpLmxlbmd0aH19O3ZhciB3ZT1uZXcgY2xhc3N7TWEoKXtsZXQgdD1zZXRJbnRlcnZhbCgoKT0+e3RyeXt2YXIgZTtmLmNvbmZpZy5jYXJ0SWQ/Y2xlYXJJbnRlcnZhbCh0KTooZT10aGlzLlZhKCkpJiYoY2xlYXJJbnRlcnZhbCh0KSxFLkNyKGUpKX1jYXRjaChlKXtvLmVycm9yKCJbY2FydElkXSIrKGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOmUpKX19LDNlMyl9VmEoKXtlPSJjYXJ0Ijt2YXIgZT0yPT09KGU9KCI7ICIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyAiK2UrIj0iKSkubGVuZ3RoP2UucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOm51bGwsZT1udWxsPT1lP3ZvaWQgMDplLnNwbGl0KCIlM0ZrZXkiKVswXTtyZXR1cm4gZT8oby5pbmZvKCJbY2FydElkXSAiK2UpLGYuY29uZmlnLmNhcnRJZD1lKTpudWxsfX0sUj1jbGFzcyBSe3N0YXRpYyBCYShlKXtyZXR1cm4gUi5kaXNjYXJkZWRFdmVudHNbZS5hZHNwZW5kVHlwZV0uaW5jbHVkZXMoZS5uYW1lKX1zdGF0aWMgeGEoZSx0KXtyZXR1cm4gUi5CYShlKXx8KG51bGw9PXQ/dm9pZCAwOnQuaW5jbHVkZXMoZSkpfXN0YXRpYyBXYShlKXtvLlgoUi5kdWR1cExvZ1ByZWZpeCsiIFsiK1IuYWRzcGVuZFByZWZpeFtlLmFkc3BlbmRUeXBlXSsiXSIsZSl9fSxQPShzKFIsImRpc2NhcmRlZEV2ZW50cyIse0ZBQ0VCT09LOlsiQWRkUGF5bWVudEluZm8iLCJBZGRUb1dpc2hsaXN0IiwiQ29tcGxldGVSZWdpc3RyYXRpb24iLCJDb250YWN0IiwiQ3VzdG9taXplUHJvZHVjdCIsIkRvbmF0ZSIsIkZpbmRMb2NhdGlvbiIsIkluaXRpYXRlQ2hlY2tvdXQiLCJTY2hlZHVsZSIsIlNlYXJjaCIsIlN0YXJ0VHJpYWwiLCJTdWJtaXRBcHBsaWNhdGlvbiIsIlN1YnNjcmliZSIsIlZpZXdDb250ZW50IiwiUGFnZVZpZXciLCJMb2dpbiJdLEdPT0dMRTpbInBhZ2VfdmlldyIsImFkZF90b19jYXJ0IiwiYmVnaW5fY2hlY2tvdXQiLCJhZGRfdG9fd2lzaGxpc3QiLCJhZGRfcGF5bWVudF9pbmZvIiwiYWRkX3NoaXBwaW5nX2luZm8iLCJ2aWV3X2l0ZW0iLCJ2aWV3X2l0ZW1fbGlzdCIsInNlbGVjdF9pdGVtIiwiZGlzcXVhbGlmeV9sZWFkIiwicXVhbGlmeV9sZWFkIiwiY2xvc2VfY29udmVydF9sZWFkIiwicmVtb3ZlX2Zyb21fY2FydCIsInNlYXJjaCIsInNpZ25fdXAiLCJsb2dpbiIsImV4Y2VwdGlvbiIsInNlbGVjdF9wcm9tb3Rpb24iLCJ2aWV3X3NlYXJjaF9yZXN1bHRzIiwid29ya2luZ19sZWFkIiwidmlld19wcm9tb3Rpb24iLCJzaGFyZSIsInZpZXdfY2FydCIsInJlZnVuZCIsImVhcm5fdmlydHVhbF9jdXJyZW5jeSIsInNwZW5kX3ZpcnR1YWxfY3VycmVuY3kiLCJ0dXRvcmlhbF9iZWdpbiIsInR1dG9yaWFsX2NvbXBsZXRlIiwibGV2ZWxfdXAiLCJzZWxlY3RfY29udGVudCIsInVubG9ja19hY2hpZXZlbWVudCIsImpvaW5fZ3JvdXAiLCJjb21wbGV0ZV9yZWdpc3RyYXRpb24iLCJzdGFydF90cmlhbCIsInBvc3Rfc2NvcmUiLCJzdWJzY3JpYmUiXSxUSUtUT0s6WyJBZGRQYXltZW50SW5mbyIsIkFkZFRvQ2FydCIsIkFkZFRvV2lzaGxpc3QiLCJDbGlja0J1dHRvbiIsIkNvbXBsZXRlUmVnaXN0cmF0aW9uIiwiRG93bmxvYWQiLCJJbml0aWF0ZUNoZWNrb3V0IiwiQXBwbGljYXRpb25BcHByb3ZhbCIsIlNlYXJjaCIsIlN1Ym1pdEZvcm0iLCJTdWJzY3JpYmUiLCJWaWV3Q29udGVudCIsIlBhZ2VWaWV3IiwiRmluZExvY2F0aW9uIiwiQ3VzdG9taXplUHJvZHVjdCIsIlNjaGVkdWxlIiwiU3RhcnRUcmlhbCIsIlN1Ym1pdEFwcGxpY2F0aW9uIl0sUkVERElUOlsiUGFnZVZpc2l0IiwiVmlld0NvbnRlbnQiLCJTZWFyY2giLCJBZGRUb0NhcnQiLCJBZGRUb1dpc2hsaXN0IiwiSW5pdGlhdGVDaGVja291dCIsIkFkZFBheW1lbnRJbmZvIiwiUHVyY2hhc2UiXSxTTkFQQ0hBVDpbIlBBR0VfVklFVyIsIlZJRVdfQ09OVEVOVCIsIkFERF9DQVJUIiwiU1RBUlRfQ0hFQ0tPVVQiLCJBUFBfT1BFTiIsIkFERF9CSUxMSU5HIiwiU0lHTl9VUCIsIlNFQVJDSCIsIlNBVkUiLCJDT01QTEVURV9SRUdJU1RSQVRJT04iLCJDVVNUT01JWkVfUFJPRFVDVCIsIlNVQlNDUklCRSIsIlNUQVJUX1RSSUFMIiwiQ09NUExFVEVfVFVUT1JJQUwiLCJJTlZJVEUiLCJMT0dJTiIsIlNIQVJFIiwiUkVTRVJWRSIsIkFDSElFVkVfTEVWRUwiLCJBRF9DTElDSyIsIkxFVkVMX0NPTVBMRVRFIiwiQURfVklFVyIsIkFDSElFVkVNRU5UX1VOTE9DS0VEIiwiQUREX1RPX1dJU0hMSVNUIiwiU1BFTlRfQ1JFRElUUyIsIlJBVEUiLCJMSVNUX1ZJRVciXX0pLHMoUiwiYWRzcGVuZFByZWZpeCIse0ZBQ0VCT09LOlsiRkIiXSxHT09HTEU6WyJHRyJdLFRJS1RPSzpbIlRUIl0sUkVERElUOlsiUkQiXSxTTkFQQ0hBVDpbIlNOIl19KSxzKFIsImR1ZHVwTG9nUHJlZml4IiwiW0REXSIpLFIpLHllPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLmphPWUsdGhpcy5xYT10LHRoaXMuS2E9cn1KYShlLHQpe2UuZm9yRWFjaChlPT50LnB1c2goZS5uYW1lKSl9emEoZSx0LHIpe3ZhciBhPWUuZ2V0RW50cmllcygpLmZpbHRlcihlPT5bImltZyIsImZldGNoIiwieG1saHR0cHJlcXVlc3QiXS5pbmNsdWRlcyhlLmluaXRpYXRvclR5cGUpJiZlLm5hbWUuaW5jbHVkZXMoImZhY2Vib29rIikmJihlLm5hbWUuaW5jbHVkZXMoIi90ci8iKXx8ZS5uYW1lLmluY2x1ZGVzKCIvdHI/IikpJiZlLm5hbWUuaW5jbHVkZXMoImVpZD0iKSksaT1lLmdldEVudHJpZXMoKS5maWx0ZXIoZT0+ImltZyI9PT1lLmluaXRpYXRvclR5cGUmJmUubmFtZS5pbmNsdWRlcygicmVkZGl0IikmJmUubmFtZS5pbmNsdWRlcygiL3JwLmdpZiIpKSxlPWUuZ2V0RW50cmllcygpLmZpbHRlcihlPT5lLm5hbWUuaW5jbHVkZXMoImdvb2dsZWFkc2VydmljZXMiKSYmZS5uYW1lLmluY2x1ZGVzKCJvaWQ9IikmJmUubmFtZS5pbmNsdWRlcygiY29udmVyc2lvbi8iKSk7MDxhLmxlbmd0aCYmdGhpcy5KYShhLHRoaXMuamEpLDA8aS5sZW5ndGgmJnRoaXMuSmEoaSx0aGlzLnFhKSwwPGUubGVuZ3RoJiZ0aGlzLkphKGUsdGhpcy5LYSksMDxyJiZjb25zb2xlLndhcm4ocisiIGVudHJpZXMgd2VyZSBkcm9wcGVkIGJlY2F1c2UgdGhlIGJ1ZmZlciB3YXMgZnVsbC4iKX1YYSgpe25ldyBQZXJmb3JtYW5jZU9ic2VydmVyKCguLi5lKT0+dGhpcy56YSguLi5lKSkub2JzZXJ2ZSh7dHlwZToicmVzb3VyY2UiLGJ1ZmZlcmVkOiEwfSl9fSxFZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuJGE9ZSx0aGlzLlphPXQscyh0aGlzLCJvcmlnaW5hbFNlbmRCZWFjb24iKSx0aGlzLllhPW5hdmlnYXRvci5zZW5kQmVhY29uLmJpbmQobmF2aWdhdG9yKX1RYSh0LHIpe2lmKHQuaW5jbHVkZXMoInRpa3RvayIpJiZ0LmluY2x1ZGVzKCIvYXBpIikmJnQuaW5jbHVkZXMoIi9waXhlbCIpJiYhdC5pbmNsdWRlcygiL2FjdCIpKXtsZXQgZTt0cnl7ZT1KU09OLnBhcnNlKHIpfWNhdGNoKGUpe28uZXJyb3IoIlt0dF9lcnJvcl0iKyhlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFjazplKSl9ZS5ldmVudF9pZCYmIiIhPT1lLmV2ZW50X2lkJiYodD17ZXZlbnRJZDplLmV2ZW50X2lkLHBpeGVsSWQ6ZS5jb250ZXh0LnBpeGVsLmNvZGUsbmFtZTplLmV2ZW50LnRvU3RyaW5nKCl9LHRoaXMuJGEucHVzaCh0KSl9fWVpKGUsdCl7dmFyIHI7aWYoImh0dHBzOi8vdHIuc25hcGNoYXQuY29tL3AiPT09ZSl0cnl7bnVsbCE9KHI9SlNPTi5wYXJzZSh0KS5yZXEpJiZyLmZvckVhY2goZT0+e3ZhciBlPWUudDtlJiYoZT17Y2xpZW50RGVkdXBJZDplLmNkaWQsdHJhbnNhY3Rpb25JZDplLmVfdGlkLG5hbWU6ZS5ldixwaXhlbElkOmUucGlkfSx0aGlzLlphLnB1c2goZSkpfSl9Y2F0Y2goZSl7by5lcnJvcigiW3NuYXBfZXJyb3JdIisoZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2s6ZSkpfX1YYSgpe25hdmlnYXRvci5zZW5kQmVhY29uPSguLi5lKT0+e3Zhclt0LHJdPWU7cmV0dXJuIHRoaXMuUWEodCxyKSx0aGlzLmVpKHQsciksdGhpcy5ZYSguLi5lKX19fSxTPW5ldyBjbGFzc3tjb25zdHJ1Y3RvcihlLHQscixhLGkpe3RoaXMuJGE9ZSx0aGlzLnFhPXQsdGhpcy5qYT1yLHRoaXMuS2E9YSx0aGlzLlphPWkscyh0aGlzLCJvYnNlcnZlcnMiKSx0aGlzLnRpPVtuZXcgeWUodGhpcy5qYSx0aGlzLnFhLHRoaXMuS2EpLG5ldyBFZSh0aGlzLiRhLHRoaXMuWmEpXX1yaSgpe2Zvcih2YXIgZSBvZiB0aGlzLnRpKWUuWGEoKX1hc3luYyBhaSgpe3RoaXMuaWkoKSxnLmNvbmZpZy5mYWNlYm9va0V2ZW50SWRSZXRyaWV2YWwmJmF3YWl0IHRoaXMuc2koKX1hc3luYyBzaSgpe2lmKHRoaXMuamEmJjA8dGhpcy5qYS5sZW5ndGgpe3ZhciBlLHQ9W107Zm9yKGUgb2YgdGhpcy5qYSl7dmFyIHI9e307ci5ldmVudElkPWwuZ2V0VXJsUGFyYW0oImVpZCIsITEsZSksci5mYnBJZD1sLmdldFVybFBhcmFtKCJmYnAiLCExLGUpLHIucGl4ZWxJZD1sLmdldFVybFBhcmFtKCJpZCIsITEsZSksci5uYW1lPWwuZ2V0VXJsUGFyYW0oImV2IiwhMSxlKSxyLmFkc3BlbmRUeXBlPSJGQUNFQk9PSyIsUC54YShyLHQpfHwodC5wdXNoKHIpLFAuV2EocikpfUUuVHIodCl9ZWxzZSBhd2FpdCB0aGlzLm5pKDFlMyksYXdhaXQgdGhpcy5zaSgpfWFzeW5jIG9pKCl7aWYoMDxwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLmZpbHRlcihlPT5lLm5hbWUuaW5jbHVkZXMoInRpa3RvayIpJiZlLm5hbWUuaW5jbHVkZXMoIi9waXhlbCIpJiZlLm5hbWUuaW5jbHVkZXMoIi9waXhlbCIpJiYhZS5uYW1lLmluY2x1ZGVzKCIvYWN0IikpLmxlbmd0aCYmMDx0aGlzLiRhLmxlbmd0aCl7dmFyIGUsdD1bXTtmb3IoZSBvZiB0aGlzLiRhKXt2YXIgcj17fTtyLmV2ZW50SWQ9ZS5ldmVudElkLHIucGl4ZWxJZD1lLnBpeGVsSWQsci5uYW1lPWUubmFtZSxyLmFkc3BlbmRUeXBlPSJUSUtUT0siLFAueGEocix0KXx8KHQucHVzaChyKSxQLldhKHIpKX1FLlRyKHQpfWVsc2UgYXdhaXQgdGhpcy5uaSgxZTMpLGF3YWl0IHRoaXMub2koKX1hc3luYyBjaSgpe2lmKDA8dGhpcy5aYS5sZW5ndGgpe3ZhciBlLHQ9W107Zm9yKGUgb2YgdGhpcy5aYSl7dmFyIHI9e307ci5jbGllbnREZWR1cElkPWUuY2xpZW50RGVkdXBJZCxyLnRyYW5zYWN0aW9uSWQ9ZS50cmFuc2FjdGlvbklkLHIucGl4ZWxJZD1lLnBpeGVsSWQsci5uYW1lPWUubmFtZSxyLmFkc3BlbmRUeXBlPSJTTkFQQ0hBVCIsUC54YShyLHQpfHwodC5wdXNoKHIpLFAuV2EocikpfUUuVHIodCl9ZWxzZSBhd2FpdCB0aGlzLm5pKDFlMyksYXdhaXQgdGhpcy5jaSgpfWFzeW5jIGxpKCl7aWYodGhpcy5LYSYmMDx0aGlzLkthLmxlbmd0aCl7dmFyIGUsdD1bXTtmb3IoZSBvZiB0aGlzLkthKXt2YXIgcj10aGlzLmRpKGUpO251bGw9PT1yfHxQLnhhKHIsdCl8fCh0LnB1c2gociksUC5XYShyKSl9RS5Ucih0KX1lbHNlIGF3YWl0IHRoaXMubmkoMWUzKSxhd2FpdCB0aGlzLmxpKCl9ZGkoZSl7dmFyIHQscixhPWwuZ2V0VXJsUGFyYW0oImRhdGEiLCEwLGUpO3JldHVybiBudWxsPT09YT8oeS5RdCgiRGF0YSBwYXJhbSBub3QgZm91bmQ6ICIrZSwiZ2xfdXJsIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJHT09HTEVfUElYRUxfRVZFTlQiLGVycm9yVHlwZToiSU5WQUxJRF9FVkVOVF9VUkwifSksbnVsbCk6bnVsbD09PShhPW5ldyBVUkxTZWFyY2hQYXJhbXMoYS5yZXBsYWNlKCI7IiwiJiIpKS5nZXQoImV2ZW50IikpPyh5LlF0KCJFdmVudCB2YWx1ZSBub3QgZm91bmQ6ICIrZSwiZ2xfdXJsIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJHT09HTEVfUElYRUxfRVZFTlQiLGVycm9yVHlwZToiSU5WQUxJRF9FVkVOVF9VUkwifSksbnVsbCk6bnVsbD09PSh0PWwuZ2V0VXJsUGFyYW0oIm9pZCIsITAsZSkpfHx0LmluY2x1ZGVzKCJ7eyIpfHx0LmluY2x1ZGVzKCJ9fSIpPyh5LlF0KCJUcmFuc2FjdGlvbklkIHBhcmFtIG5vdCB2YWxpZDogIitlLCJnbF91cmwiLHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkdPT0dMRV9QSVhFTF9FVkVOVCIsZXJyb3JUeXBlOiJJTlZBTElEX0VWRU5UX1VSTCJ9KSxudWxsKTpudWxsPT09KHI9cC5nZXRTdWJzdHJpbmdCZXR3ZWVuKGUsImNvbnZlcnNpb24vIiwiLyIpKXx8MD09PXIubGVuZ3RoPyh5LlF0KCJQaXhlbElkIG5vdCBmb3VuZDogIitlLCJnbF91cmwiLHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkdPT0dMRV9QSVhFTF9FVkVOVCIsZXJyb3JUeXBlOiJJTlZBTElEX0VWRU5UX1VSTCJ9KSxudWxsKTooKGU9e30pLnRyYW5zYWN0aW9uSWQ9dCxlLm5hbWU9YSxlLnBpeGVsSWQ9cixlLmFkc3BlbmRUeXBlPSJHT09HTEUiLGUpfWFzeW5jIHVpKCl7dmFyIGU9ImV4dGVybmFsX2lkIix0PSJtLmNvbnZlcnNpb25JZCI7aWYodGhpcy5xYSYmMDx0aGlzLnFhLmxlbmd0aCl7dmFyIHIsYT1bXTtmb3IociBvZiB0aGlzLnFhKXt2YXIgaT17fSxzPWwuZ2V0VXJsUGFyYW0oZSwhMSxyKSxzPSh0aGlzLmhpKHMsZSl8fChpLnRyYW5zYWN0aW9uSWQ9cyksbC5nZXRVcmxQYXJhbSgidXVpZCIsITEscikpLHM9KHRoaXMuaGkocywidXVpZCIpfHwoaS5yZWRkaXRVVUlEPXMpLGwuZ2V0VXJsUGFyYW0odCwhMSxyKSkscz0odGhpcy5oaShzLHQpfHwoaS5yZWRkaXRDb252ZXJzaW9uSWQ9cyksbC5nZXRVcmxQYXJhbSgiZXZlbnQiLCExLHIpKSxzPSh0aGlzLmhpKHMsImV2ZW50Iil8fChpLm5hbWU9cyksbC5nZXRVcmxQYXJhbSgiaWQiLCExLHIpKTt0aGlzLmhpKHMsImlkIil8fChpLnBpeGVsSWQ9cyksaS5hZHNwZW5kVHlwZT0iUkVERElUIixQLnhhKGksYSl8fChhLnB1c2goaSksUC5XYShpKSl9RS5UcihhKX1lbHNlIGF3YWl0IHRoaXMubmkoMWUzKSxhd2FpdCB0aGlzLnVpKCl9aWkoKXtsZXQgdD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RyeXt2YXIgZT1kb2N1bWVudC5jb29raWUubWF0Y2goIihefDspXFxzKl9mYnBcXHMqPVxccyooW147XSspIik7ZSYmMDxlLmxlbmd0aCYmKGNsZWFySW50ZXJ2YWwodCksRS53cihlKSl9Y2F0Y2goZSl7by5lcnJvcigiW2ZicF0iK2Uuc3RhY2spfX0sM2UzKX1oaShlLHQpe3JldHVybiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIj09PWUmJihvLmVycm9yKCJbcmVkZGl0XSBEZWZhdWx0IHBsYWNlaG9sZGVycyBhcmUgYmVpbmcgdXNlZC4gSW52YWxpZCBwYXJhbTogIit0KSwhMCl9YXN5bmMgbmkodCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntzZXRUaW1lb3V0KGUsdCl9KX19KFtdLFtdLFtdLFtdLFtdKSxiZT1jbGFzcyBpdHtzdGF0aWMgcGkoKXtnLmNvbmZpZy50cmFja0RldmljZUZpbmdlcnByaW50JiYidW5kZWZpbmVkIj09dHlwZW9mIEh5cm9zRlAmJihuLkZJTkdFUlBSSU5UX1NDUklQVD9mLnByb2Nlc3NlZERhdGEuVj1uZXcgUHJvbWlzZSgodCxyKT0+e3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG51bGwhPShpPWdsb2JhbFRoaXMuVVJMKSYmaS5jcmVhdGVPYmplY3RVUkwpe3ZhciBpPW5ldyBCbG9iKFtuLkZJTkdFUlBSSU5UX1NDUklQVF0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KTtsZXQgZT1VUkwuY3JlYXRlT2JqZWN0VVJMKGkpO2Euc3JjPWUsYS5vbmxvYWQ9KCk9PntVUkwucmV2b2tlT2JqZWN0VVJMKGUpLHQoKX0sYS5vbmVycm9yPSgpPT57VVJMLnJldm9rZU9iamVjdFVSTChlKSxyKG5ldyBFcnJvcigib2JqZWN0IHVybCBzY3JpcHQgdGFnIGVycm9yIikpfX1lbHNlIGEuc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdDtiYXNlNjQsIitidG9hKG4uRklOR0VSUFJJTlRfU0NSSVBUKSxhLm9ubG9hZD0oKT0+dCgpLGEub25lcnJvcj0oKT0+cihuZXcgRXJyb3IoImNvZGUgaW4gc2NyaXB0LnNyYyB0YWcgZXJyb3IiKSk7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX0pLnRoZW4oKCk9Pml0Lm1pKCkpLnRoZW4oZT0+bmV3IGUuVGh1bWJtYXJrKS5jYXRjaChlPT57eS5RdChlLCJmcCIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiRklOR0VSUFJJTlQiLGVycm9yVHlwZToiTE9BRF9GQUlMRUQifSksZy5jb25maWcudHJhY2tEZXZpY2VGaW5nZXJwcmludD0hMX0pOih5LlF0KCJGaW5nZXJwcmludGluZyBpcyBlbmFibGVkIGJ1dCBubyBmaW5nZXJwcmludCBzY3JpcHQgaXMgYXZhaWxhYmxlIiwiZnAiLHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkZJTkdFUlBSSU5UIixlcnJvclR5cGU6IkxPQURfRkFJTEVEIn0pLGcuY29uZmlnLnRyYWNrRGV2aWNlRmluZ2VycHJpbnQ9ITEpKX1zdGF0aWMgbWkoaT01MCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57bGV0IHI9MyxhPSgpPT57InVuZGVmaW5lZCIhPXR5cGVvZiBIeXJvc0ZQP2UoSHlyb3NGUCk6cjwxP3QobmV3IEVycm9yKCdNYXggUmV0cmllcyBleGNlZWRlZCB3YWl0aW5nIGZvciAiSHlyb3NGUCIgZ2xvYmFsJykpOihyLS0sc2V0VGltZW91dChhLGkpKX07YSgpfSl9c3RhdGljIGFzeW5jIGZpKCl7dHJ5e3ZhciBlLHQscjtyZXR1cm4gZy5jb25maWcudHJhY2tEZXZpY2VGaW5nZXJwcmludD8wPGYuY29uZmlnLmR2ZnAubGVuZ3RoP2YuY29uZmlnLmR2ZnA6KGU9YXdhaXQgZi5wcm9jZXNzZWREYXRhLlYpPyhyPSh0PWF3YWl0IGUuZ2V0KCkpLnRodW1ibWFyayxmLmNvbmZpZy5kdmZwPXIsZi5jb25maWcuaT1idG9hKEpTT04uc3RyaW5naWZ5KHQpKSx0LmVycm9yJiZ5LlF0KHQuZXJyb3IsImZwIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJGSU5HRVJQUklOVCIsZXJyb3JUeXBlOiJDT01QVVRBVElPTiJ9KSxvLmluZm8oIltmcF06ICIrcikscik6bnVsbDpudWxsfWNhdGNoKGUpe3JldHVybiB5LlF0KGUsImZwIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJGSU5HRVJQUklOVCIsZXJyb3JUeXBlOiJDT01QVVRBVElPTl9VTkVYUEVDVEVEIn0pLG51bGx9fXN0YXRpYyBhc3luYyBnaSgpe3RyeXt2YXIgZSx0LHI7Zy5jb25maWcudHJhY2tEZXZpY2VGaW5nZXJwcmludCYmKGU9Zi5jb25maWcuZHZmcCxmLmNvbmZpZy5kZXZpY2VGaW5nZXJwcmludD0iIixudWxsIT0odD1hd2FpdCBpdC5maSgpKSkmJnQhPT1lJiYoZi5jb25maWcuZHZmcD10LHI9e2lkOmYuY29uZmlnLmwuY2xpY2tJZCxwcm9kdWN0SWQ6Zy5wcm9kdWN0LmlkLGNyZWF0aW9uRGF0ZTpmLmNvbmZpZy5sLmNyZWF0aW9uRGF0ZSxkdmZwOnR9LEUuYXIocikpfWNhdGNoKGUpe28uZXJyb3IoIltmcDJdICIrKGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOmUpKX19fSxSZT1uZXcgY2xhc3N7dmkoKXsoZy5jb25maWcudGltZVNwZW50VHJhY2tpbmdFbmFibGVkfHxnLmNvbmZpZy50aGlyZFBhcnR5VHJhY2tpbmd8fGcuY29uZmlnLnVuaWZpZWRDbGlja0V2ZW50KSYmKHRoaXMuSWkoKSxoZS5vYSgpKX1hc3luYyBwcm9jZXNzQ2xpY2soZSx0KXt2YXIgcj1hd2FpdCB0aGlzLkNpKCk7dGhpcy5UaShyLCJHRVQiLHt9LGU9Pnt0aGlzLnJyKGUsInBjIil8fChvLmluZm8oIltwY10iKSxmLmNvbmZpZy5sPWUsUy5haSgpLFMubGkoKSxTLm9pKCksUy51aSgpLFMuY2koKSx0aGlzLl9pKCEwKSx0aGlzLndpKCksdCgpKX0sZT0+e3kuUXQoZSwicGMiLHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkNMSUNLX0JfU0VSVklDRSIsZXJyb3JUeXBlOiJFTkRQT0lOVF9ESURfTk9UX1JFVFVSTl8yMDAifSksdGhpcy5faSghMSksdCgpfSwhMCksZy5jb25maWcudXNlRmV0Y2hLZWVwQWxpdmUmJnRoaXMuX2kodm9pZCAwKX13aSgpe3ZhciBlLHQ7bnVsbCE9Zi5wcm9jZXNzZWREYXRhLkomJih7SnI6ZSx2YWx1ZTp0fT1mLnByb2Nlc3NlZERhdGEuSix1ZS5FcihlLHQpLGYucHJvY2Vzc2VkRGF0YS5KPW51bGwsby5pbmZvKCJbQ0FQXSBDYWNoZWQgZXZlbnQgc2VudCIpKX1ycihlLHQpe2lmKCFnLmNvbmZpZy51c2VGZXRjaEtlZXBBbGl2ZSl7aWYoZSYmY2UoKS5pbmNsdWRlcyhlLmJvZHkpKXJldHVybiBvLndhcm4oIltwY10iK2UuYm9keSksITA7aWYoZSYmImVycm9yIj09PWUuc3RhdHVzKXJldHVybiB5LlF0KGUuYm9keSx0LHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkNMSUNLX0JfU0VSVklDRSIsZXJyb3JUeXBlOiJCQUNLRU5EX1JFSkVDVEVEX1JFUVVFU1QifSksITB9cmV0dXJuITF9VGkoZSx0LHIsYSxpLHMpe2xldCBuO3ZhciBvLGMsbDtpZihnLmNvbmZpZy51c2VGZXRjaEtlZXBBbGl2ZSluPXsiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyI6IioiLCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iOiIqIiwiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsIlNlc3Npb24tSUQiOmYuY29uZmlnLnNlc3Npb25JZCwiUHJvZHVjdC1JRCI6Zy5wcm9kdWN0LmlkLCJMLUdlbi1JRCI6Zi5jb25maWcubGVhZEdlblNlc3Npb25JZH0scD1lLGQ9cixvPWEsYz1pLG09bixtPXttZXRob2Q6dCxoZWFkZXJzOm09bnVsbD09bXx8InVuZGVmaW5lZCI9PW0/eyJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIjoiKiIsIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiI6IioiLCJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04In06bSxjcmVkZW50aWFsczpzPyJpbmNsdWRlIjoib21pdCIsa2VlcGFsaXZlOiEwfSwiR0VUIiE9PXQmJihtLmJvZHk9ZCksZmV0Y2gocCxtKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRleHQoKX0pLnRoZW4oZnVuY3Rpb24oZSl7ZT1lP0pTT04ucGFyc2UoZSk6e307ZSYmImVycm9yIj09PWUuc3RhdHVzP2MoZS5ib2R5LGwpOm8oZSxsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2MoZSxsKX0pO2Vsc2UgaWYobj1be2tleToiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsdmFsdWU6IioifSx7a2V5OiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLHZhbHVlOiIqIn0se2tleToiQ29udGVudC10eXBlIix2YWx1ZToiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCJ9LHtrZXk6IlNlc3Npb24tSUQiLHZhbHVlOmYuY29uZmlnLnNlc3Npb25JZH0se2tleToiUHJvZHVjdC1JRCIsdmFsdWU6Zy5wcm9kdWN0LmlkfSx7a2V5OiJMLUdlbi1JRCIsdmFsdWU6Zi5jb25maWcubGVhZEdlblNlc3Npb25JZH1dLCJQT1NUIiE9PXQpe3ZhciBkPWU7dmFyIHU9YTt2YXIgaD1pO3ZhciBwPW47dmFyIG09cztsZXQgdD1mZSgiR0VUIixkLCEwLHAsbT0hIW0pO3Qub25sb2FkPWZ1bmN0aW9uKCl7aWYoMjAwPT09dC5zdGF0dXMpdHJ5e3ZhciBlO251bGwhPXQucmVzcG9uc2VUZXh0JiYidW5kZWZpbmVkIiE9dC5yZXNwb25zZVRleHQmJiIiIT10LnJlc3BvbnNlVGV4dD8oZT1KU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KSx1KGUpKTp1KCl9Y2F0Y2goZSl7aCgiRVJST1IgUHJvY2VzaW5nIFJlc3BvbnNlOiAiKyhlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpKX1lbHNlIGgoImh0dHAgc3RhdHVzOiAiK3Quc3RhdHVzKyIgLSAiK3QucmVzcG9uc2VUZXh0KX0sdC5vbmVycm9yPWZ1bmN0aW9uKCl7aCgiRXJyb3IgWE1MSHR0cDogIisodC5yZXNwb25zZVRleHR8fCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSx0LnNlbmQoKX1lbHNlIG1lKGUscixhLGksbixzKX1faShlKXtlPW5ldyBDdXN0b21FdmVudCgiaENsaWNrRG9uZUV2ZW50Iix7c3VjY2VzczplfSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChlKX1hc3luYyBDaSgpe3ZhciBlPV9lLmRhKCksdD1uZXcgVVJMU2VhcmNoUGFyYW1zLHI9Zy5lbmRwb2ludHMucHJvY2Vzc0NsaWNrLGU9KGUuZmJBZFNldElkJiZ0LmFwcGVuZCgiZmJjX2lkIixlLmZiQWRTZXRJZCksZS5iaW5nQWRHcm91cElkJiZ0LmFwcGVuZCgiYm5nX2lkIixlLmJpbmdBZEdyb3VwSWQpLGUuYmluZ1NwZWNpYWxDYW1wYWlnbiYmdC5hcHBlbmQoImJuZ19zcGVjaWFsX2NhbXBhaWduIiwiIitlLmJpbmdTcGVjaWFsQ2FtcGFpZ24pLGUuaHlyb3NDYW1wYWlnbklkJiZ0LmFwcGVuZCgiaF9jYW1wYWlnbl9pZCIsZS5oeXJvc0NhbXBhaWduSWQpLGUuZ29vZ2xlQ2FtcGFpZ25JZCYmdC5hcHBlbmQoImdjX2lkIixlLmdvb2dsZUNhbXBhaWduSWQpLGUubWEmJnQuYXBwZW5kKCJoX2dhX2lkIixlLm1hKSxlLmdTcGVjaWFsQ2FtcGFpZ24mJnQuYXBwZW5kKCJnX3NwZWNpYWxfY2FtcGFpZ24iLCIiK2UuZ1NwZWNpYWxDYW1wYWlnbiksZS5oeXJvc0FkSWQmJihlLmZiQWRTZXRJZHx8ZS5nb29nbGVDYW1wYWlnbklkfHxlLm1hfHxlLnRpa3Rva0FkR3JvdXBJZHx8ZS5waW50ZXJlc3RBZGdyb3VwSWR8fGUuc25hcGNoYXRBZFNldElkfHxlLmJpbmdBZEdyb3VwSWR8fGUuaHlyb3NDYW1wYWlnbklkfHxlLnJkdEFkR3JvdXBJZHx8ZS5saW5rZWRpbkNhbXBhaWduSWR8fGUuZmEpJiZ0LmFwcGVuZCgiaF9hZF9pZCIsZS5oeXJvc0FkSWQpLGUuZmJDbGlja0lkJiZ0LmFwcGVuZCgiZmJfY2xfaWQiLGUuZmJDbGlja0lkKSxlLmdvb2dsZUNsaWNrSWQmJnQuYXBwZW5kKCJnX2NsX2lkIixlLmdvb2dsZUNsaWNrSWQpLGUud0JyYUlkJiZ0LmFwcGVuZCgid19icmFfaWQiLGUud0JyYUlkKSxlLmdCcmFJZCYmdC5hcHBlbmQoImdfYnJhX2lkIixlLmdCcmFJZCksZS5zb3VyY2VMaW5rVGFnJiZ0LmFwcGVuZCgic2wiLCIiK2Uuc291cmNlTGlua1RhZyksZS52JiZ0LmFwcGVuZCgiaXNfZWwiLCIiK2UudiksZS5wcmV2aW91c1VybCYmdC5hcHBlbmQoInByZXZfdXJsIixlLnByZXZpb3VzVXJsKSxlLnJlZlVybCYmdC5hcHBlbmQoInJlZl91cmwiLGUucmVmVXJsKSxlLnVzZXJBZ2VudCYmdC5hcHBlbmQoInVfYWdlbnQiLGUudXNlckFnZW50KSxlLnRpa3Rva0FkR3JvdXBJZCYmdC5hcHBlbmQoInR0Y19pZCIsZS50aWt0b2tBZEdyb3VwSWQpLGUudW5pcXVlQ2hlY2tvdXRJZCYmdC5hcHBlbmQoInVfY2hfaWQiLCIiK2UudW5pcXVlQ2hlY2tvdXRJZCksZS5zbmFwY2hhdEFkU2V0SWQmJnQuYXBwZW5kKCJzbmNfaWQiLGUuc25hcGNoYXRBZFNldElkKSxlLnR3aXR0ZXJBZGdyb3VwSWQmJnQuYXBwZW5kKCJ0d3RfaWQiLGUudHdpdHRlckFkZ3JvdXBJZCksZS5waW50ZXJlc3RBZGdyb3VwSWQmJnQuYXBwZW5kKCJwbnRfaWQiLGUucGludGVyZXN0QWRncm91cElkKSxlLnVhJiZ0LmFwcGVuZCgiZW1iZWQiLCIiK2UudWEpLGUubGlua2VkaW5DYW1wYWlnbklkJiZ0LmFwcGVuZCgibG5rX2lkIixlLmxpbmtlZGluQ2FtcGFpZ25JZCksZS50aWt0b2tDbGlja0lkJiZ0LmFwcGVuZCgidHRjbGlkIixlLnRpa3Rva0NsaWNrSWQpLGUucmR0QWRHcm91cElkJiZ0LmFwcGVuZCgicmR0X2lkIixlLnJkdEFkR3JvdXBJZCksZS5yZHRDbGlja0lkJiZ0LmFwcGVuZCgicmR0X2NsaWQiLGUucmR0Q2xpY2tJZCksZS5nYSYmdC5hcHBlbmQoIndyX3NvdXJjZSIsZS5nYSksZS5JYSYmdC5hcHBlbmQoIndyX2FkX2lkIixlLklhKSxlLnlhJiZ0LmFwcGVuZCgidHdfYWRfaWQiLGUueWEpLGUuX2EmJnQuYXBwZW5kKCJ0d19zb3VyY2UiLGUuX2EpLGUucGF5cGFsVW5pcXVlQ2hlY2tvdXRJZCYmdC5hcHBlbmQoInVfY2hfaWQiLGUucGF5cGFsVW5pcXVlQ2hlY2tvdXRJZCksZS5MYSYmdC5hcHBlbmQoImhfdHJhZmZpY19zb3VyY2UiLGUuTGEpLGUuRmEmJnQuYXBwZW5kKCJoX2NhdGVnb3J5IixlLkZhKSxlLlVhJiZ0LmFwcGVuZCgiaF9nb2FsIixlLlVhKSxlLmJhJiZ0LmFwcGVuZCgiaF9rZXl3b3JkIixlLmJhKSxlLk5hJiZ0LmFwcGVuZCgiaF9rZXl3b3JkX2lkIixlLk5hKSxlLlJhJiZ0LmFwcGVuZCgiaF9wbGFjZW1lbnQiLGUuUmEpLGUuUGEmJnQuYXBwZW5kKCJoX2FkX25hbWUiLGUuUGEpLGUuZmEmJnQuYXBwZW5kKCJhcGxfaWQiLGUuZmEpLGUuU2EmJnQuYXBwZW5kKCJ3YXNpZCIsZS5TYSksZS5rYSYmdC5hcHBlbmQoIndhaWQiLGUua2EpLGUuQWEmJnQuYXBwZW5kKCJ3YWNpZCIsZS5BYSksZS5PYSYmdC5hcHBlbmQoImhfY2FtcGFpZ25fbmFtZSIsZS5PYSksZi5wcm9jZXNzZWREYXRhLkImJnQuYXBwZW5kKCJkbmlfbnVtYmVyIixmLnByb2Nlc3NlZERhdGEuQiksYXdhaXQgYmUuZmkoKSk7cmV0dXJuIG51bGwhPWUmJnQuYXBwZW5kKCJmcCIsZSksZi5jb25maWcuY2FydElkP3QuYXBwZW5kKCJoX2NhcnRfaWQiLGYuY29uZmlnLmNhcnRJZCk6KGU9d2UuVmEoKSkmJnQuYXBwZW5kKCJoX2NhcnRfaWQiLGUpLGwuYWUoImhlIiwiaGUiLCExKSYmbC5hZSgiZWwiLCJlbCIsITEpJiZ0LmFwcGVuZCgiaXNfaGUiLCJ0cnVlIikscisiPyIrdC50b1N0cmluZygpfUlpKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKCk9PnsiaGlkZGVuIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmKGcuY29uZmlnLnRpbWVTcGVudFRyYWNraW5nRW5hYmxlZD9wZSgpOncueHQoKSl9KX19LGM9bmV3IGNsYXNze3lpKCl7dmFyIGU7Zy5jb25maWcuc2hvcGlmeVBvc3RQdXJjaGFzZVBhZ2VTY3JpcHQmJih3aW5kb3cuU2hvcGlmeSYmd2luZG93LlNob3BpZnkub24mJih3aW5kb3cuZmJxfHx3aW5kb3cuZ3RhZyk/KHdpbmRvdy5TaG9waWZ5Lm9uKCJDaGVja291dEFtZW5kZWQiLChlLHQpPT57dD10Lm9yZGVyfHx0O2xldCByPW5ldyBTZXQodC5saW5lSXRlbXMubWFwKGU9PmUuaWQpKTt0PWUubGluZUl0ZW1zLmZpbHRlcihlPT5yLmhhcyhlLmlkKSk7MCE9PXQubGVuZ3RoJiZ0aGlzLkVpKHRbMF0uZmluYWxMaW5lUHJpY2UsZS5jdXJyZW5jeSl9KSx3aW5kb3cuU2hvcGlmeS53YXNQb3N0UHVyY2hhc2VQYWdlU2Vlbnx8KGU9d2luZG93LlNob3BpZnkub3JkZXIsdGhpcy5FaShlLnRvdGFsUHJpY2UsZS5jdXJyZW5jeSkpKTpvLndhcm4oIltOVFBGXSIpKX1FaShlLHQpe3dpbmRvdy5mYnEmJihmYnEoInRyYWNrIiwiUHVyY2hhc2UiLHt2YWx1ZTplLGN1cnJlbmN5OnR9LHtiaTpNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwxNSl9KSxvLmluZm8oIltmYnFdIikpLHdpbmRvdy5ndGFnJiYoZ3RhZygiZXZlbnQiLCJQdXJjaGFzZSIse3ZhbHVlOmUsY3VycmVuY3k6dH0pLG8uaW5mbygiW2d0YWddIikpfX0sdD1uZXcgY2xhc3N7UmkoKXtmb3IodmFyIGUgb2Zbe25hbWU6ImthcnRyYVJlZmVyZW5jZUlkTG9hZGVkIixkYXRhOm51bGx9XSlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUubmFtZSx0aGlzLlBpKGUuZGF0YSksITApfVNpKHQpe2lmKGcuY29uZmlnLnNwYUVuYWJsZWQpe2xldCBlPWVuY29kZVVSSShsLlkoKSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvY2F0aW9uY2hhbmdlIixhc3luYygpPT57Zi5jb25maWcubz1lLGcuY29uZmlnLnRpbWVTcGVudFRyYWNraW5nRW5hYmxlZCYmKHBlKCksaGUuUXIoKSksYXdhaXQgUmUucHJvY2Vzc0NsaWNrKGYuY29uZmlnLnNlc3Npb25JZCx0KSxlPW0uS2UoKX0pLGhpc3RvcnkucHVzaFN0YXRlPSh0PT5mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInB1c2hTdGF0ZSIpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImxvY2F0aW9uY2hhbmdlIikpLGV9KShoaXN0b3J5LnB1c2hTdGF0ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoKT0+e3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgibG9jYXRpb25jaGFuZ2UiKSl9KX19UGkodCl7cmV0dXJuIGFzeW5jIGU9Pnt2YXIgZT10P2UuZGV0YWlsW3RdOmUuZGV0YWlsO28uaW5mbygiW3VDaGVja0lkXSAiK2UpLGYuY2hlY2tvdXQudW5pcXVlQ2hlY2tvdXRJZD1lLGYuY29uZmlnLmwmJihmLmNvbmZpZy51P2F3YWl0IFJlLnByb2Nlc3NDbGljayhmLmNvbmZpZy5zZXNzaW9uSWQsKCk9Pnt9KTooZT17aWQ6Zi5jb25maWcubC5jbGlja0lkLHByb2R1Y3RJZDpnLnByb2R1Y3QuaWQsdW5pcXVlQ2hlY2tvdXRJZDpmLmNoZWNrb3V0LnVuaXF1ZUNoZWNrb3V0SWQsY3JlYXRpb25EYXRlOmYuY29uZmlnLmwuY3JlYXRpb25EYXRlfSxmLmNvbmZpZy51PSEwLEUuYXIoZSkpKX19fSxrPWNsYXNze2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBraShlLHQpe3JldHVybiBlLnNvbWUoZT0+dC5pbmNsdWRlcyhlKSl9c3RhdGljIEFpKGUsdCl7cmV0dXJuIG51bGw9PShlPW51bGw9PWU/dm9pZCAwOmUuY2xhc3NMaXN0KT92b2lkIDA6ZS5jb250YWlucyh0KX1zdGF0aWMgT2koZSx0LHI9W10pe2lmKGUuY2xhc3NOYW1lKXt2YXIgYT1bLi4uQXJyYXkuZnJvbShlLmNsYXNzTGlzdCldLm1hcChlPT5lLnRvTG93ZXJDYXNlKCkpO2lmKHIubGVuZ3RoJiZ0aGlzLmtpKHIsYS5qb2luKCJfIikpKXJldHVybiEwO2lmKGEuc29tZShlPT50LmluY2x1ZGVzKGUpKSlyZXR1cm4hMH1yZXR1cm4gdC5pbmNsdWRlcyhudWxsIT0oYT1udWxsPT0ocj1lLmlkKT92b2lkIDA6ci50b0xvd2VyQ2FzZSgpKT9hOiIiKXx8dC5pbmNsdWRlcyhudWxsIT0oYT1udWxsPT0ocj1lLnBsYWNlaG9sZGVyKT92b2lkIDA6ci50b0xvd2VyQ2FzZSgpKT9hOiIiKX19LEE9Y2xhc3N7Y29uc3RydWN0b3IoKXt9c3RhdGljIE5pKGUpe3JldHVybiBrLk9pKGUsdS5rZSgwKSxbImZfbmFtZSIsImZpcnN0X25hbWUiXSl9c3RhdGljIERpKGUpe3JldHVybiBrLk9pKGUsdS5rZSgxKSxbImxfbmFtZSIsImxhc3RfbmFtZSJdKX1zdGF0aWMgTGkoZSl7cmV0dXJuIGsuT2koZSx1LmtlKDIpLFsiY29tcGxldGVfbmFtZSIsImZ1bGxfbmFtZSJdKX1zdGF0aWMgRmkoZSl7cmV0dXJuIGsuT2koZSxoLk9lKX1zdGF0aWMgVWkoZSl7cmV0dXJuIGsuT2koZSxoLk5lKX1zdGF0aWMgR2koZSl7cmV0dXJuIGsuT2koZSxoLkxlKX1zdGF0aWMgSGkoZSl7cmV0dXJuIGsuT2koZSxoLkZlKX1zdGF0aWMgTWkoZSl7cmV0dXJuIGsuT2koZSxoLkRlKX1zdGF0aWMgVmkoZSl7cmV0dXJuIGsuT2koZSxoLlVlKX19LFBlPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywic3VibWl0TGlzdGVuZXJBdHRhY2hlZCIsITEpLHModGhpcywiaGFuZGxlRm9ybVN1Ym1pdCIsZT0+e3ZhciBlPWUudGFyZ2V0OyJGT1JNIj09PShudWxsPT1lP3ZvaWQgMDplLnRhZ05hbWUpJiYoZT10aGlzLkJpKGUpKSYmYi5TcihlLnZhbHVlLHtNdDohMH0pfSl9eGkoKXt2YXIgZTt0aGlzLldpKCk7Zm9yKGUgb2YgWi5fZSgpKWsuQWkoZSwiaHlyb3MtaWdub3JlIil8fHRoaXMuamkoZSl9amkoZSl7QS5MaShlKT90aGlzLnFpKGUsNSk6QS5EaShlKT90aGlzLnFpKGUsNCk6QS5OaShlKT90aGlzLnFpKGUsMyk6QS5GaShlKT90aGlzLnFpKGUsNik6QS5VaShlKT90aGlzLnFpKGUsNyk6QS5HaShlKT90aGlzLnFpKGUsOCk6QS5IaShlKT90aGlzLnFpKGUsOSk6QS5NaShlKT90aGlzLnFpKGUsMTApOihBLlZpKGUpJiZ0aGlzLnFpKGUsMTEpLEMuX3QoZSk/dGhpcy5xaShlLDEpOmsuQWkoZSwiaHlyb3MtY291cG9uIik/dGhpcy5xaShlLDIpOiJ0ZXh0IiE9PWUudHlwZSYmImVtYWlsIiE9PWUudHlwZXx8dGhpcy5xaShlLDApKX1xaSh0LHIpe2YucHJvY2Vzc2VkRGF0YS5DLmluY2x1ZGVzKHQpfHwoYi5Scih0LnZhbHVlLHIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbihlKXtiLlJyKHQudmFsdWUscil9KSxmLnByb2Nlc3NlZERhdGEuQy5wdXNoKHQpKX1XaSgpe3RoaXMuS2l8fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLHRoaXMuaGFuZGxlRm9ybVN1Ym1pdCwhMCksdGhpcy5LaT0hMCl9QmkoZSl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZih0aGlzLkppKHQsZSkpcmV0dXJuIHQ7dmFyIHIsdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Iik7Zm9yKHIgb2YgQXJyYXkuZnJvbSh0KSlpZih0aGlzLkppKHIsZSkpcmV0dXJuIHI7cmV0dXJuIG51bGx9SmkoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQmJmUuZm9ybT09PXQmJiEoay5BaShlLCJoeXJvcy1pZ25vcmUiKXx8ZS5kaXNhYmxlZHx8ImhpZGRlbiI9PT1lLnR5cGV8fCFlLnZhbHVlfHwhQy5fdChlKXx8IUMuZHQoZS52YWx1ZSkpJiZ0aGlzLnppKGUpfXppKGUpe3ZhciB0O3JldHVybiFlLmhpZGRlbiYmIWUuY2xvc2VzdCgnW2hpZGRlbl0sIFthcmlhLWhpZGRlbj0idHJ1ZSJdJykmJiJub25lIiE9PShudWxsPT0odD1udWxsPT0odD1nbG9iYWxUaGlzLmdldENvbXB1dGVkU3R5bGUpP3ZvaWQgMDp0LmNhbGwoZ2xvYmFsVGhpcyxlKSk/dm9pZCAwOnQuZGlzcGxheSkmJiJoaWRkZW4iIT09KG51bGw9PXQ/dm9pZCAwOnQudmlzaWJpbGl0eSl9WGkoZSl7bGV0IHI9bnVsbDtvLmluZm8oIk5pbmphIEZvcm1zIGRldGVjdGVkLiBBZGRpbmcgZGVkaWNhdGVkIGxpc3RlbmVyLi4uIik7ZS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZT0+e2xldCB0PWUudGFyZ2V0O3QmJiJJTlBVVCI9PT10LnRhZ05hbWUmJiJrZXl1cCI9PT1lLnR5cGUmJkMuX3QodCkmJihlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxyJiZjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57Yi5Scih0LnZhbHVlLDEpfSwzZTMpKX0sITApfX0sTz1jbGFzcyBGe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyAkaShlKXtyZXR1cm4gQy52dChmLnByb2Nlc3NlZERhdGEuaixlKXx8Ri5aaShmLnByb2Nlc3NlZERhdGEuaixlKX1zdGF0aWMgWmkoZSx0KXtyZXR1cm4gZS5pbmNsdWRlcyhDLnV0KHQuc3RhcnRzV2l0aCgiKzEiKT90OiIrMSIrdCkpfXN0YXRpYyBZaShlKXtyZXR1cm4gQy52dChmLnByb2Nlc3NlZERhdGEucSxlKXx8Ri5aaShmLnByb2Nlc3NlZERhdGEucSxlKX1zdGF0aWMgUWkoZSl7ZT1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpO3JldHVybiBlJiZlLmluY2x1ZGVzKCJ0ZWw6IikmJiFGLiRpKGUuc3BsaXQoIjoiKVsxXSkmJiFGLllpKGUuc3BsaXQoIjoiKVsxXSl9c3RhdGljIGVzKGUpe3ZhciB0PUFycmF5LmZyb20oZSkscj0vWzAtOSgpXHNdLztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIGE9MD09PWU/ZTplLTEsaT1lPT09dC5sZW5ndGgtMT9lOmUrMTt0W2VdLm1hdGNoKC9bXmEtekEtWjAtOV0vKSYmdFthXS5tYXRjaChyKSYmdFtpXS5tYXRjaChyKSYmKHQuc3BsaWNlKGUsMSksZS09MSl9cmV0dXJuIHQuam9pbigiIil9c3RhdGljIHRzKGUpe3RyeXt2YXIgcj1GLmVzKGUuZGF0YSk7bGV0IHQ9ITE7dmFyIGEsaT1yLnNwbGl0KCIgIik7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspQy5mdChpW2VdKSYmKCEoYT1DLkl0KGYucHJvY2Vzc2VkRGF0YS5CLGlbZV0pKXx8Ri4kaShpW2VdKXx8Ri5ZaShpW2VdKXx8KGlbZV09YSx0PSEwKSk7dCYmKGUuZGF0YT1pLmpvaW4oIiAiKSl9Y2F0Y2goZSl7by5lcnJvcigiW2N0ZV0gZXJyb3IgcHJvY2Vzc2luZyBub2RlLiBjb250aW51aW5nLi4uIil9fXN0YXRpYyBycyh0KXt2YXIgZTtpZih0LmdldEF0dHJpYnV0ZSgiaHJlZiIpJiZ0LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluY2x1ZGVzKCJ0ZWw6IikmJnQuc2V0QXR0cmlidXRlKCJocmVmIiwidGVsOiIrZi5wcm9jZXNzZWREYXRhLkIpLDA9PT10LmNoaWxkRWxlbWVudENvdW50KXQuaW5uZXJIVE1MJiZDLmd0KHQuaW5uZXJIVE1MKSYmKGU9Qy5JdChmLnByb2Nlc3NlZERhdGEuQix0LmlubmVySFRNTCkpJiYodC5pbm5lckhUTUw9ZSk7ZWxzZSBmb3IobGV0IGU9MDtlPHQuY2hpbGRyZW4ubGVuZ3RoO2UrKylGLnJzKHQuY2hpbGRyZW5bZV0pfXN0YXRpYyBzcygpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImV4dGVybmFsLWRuaSIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj1kLkllKHRbZV0pO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXt2YXIgYT1yW2VdO2lmKGEuZGF0YSYmQy5ndChhLmRhdGEpJiYhRi5ZaShhLmRhdGEpKXJldHVybiBDLnV0KGEuZGF0YSl9fXJldHVybiBudWxsfXN0YXRpYyBucygpe3ZhciBlPUMudXQoZC5kZSgiaHlyb3Mtbm9zd2FwLWRuaSIpKSx0PUMudXQoZC5kZSgiaHlyb3MtZG5pIikpO3JldHVybiFDLmR0KGUpfHwhQy5kdCh0KXx8ZT09PXR8fEYuWWkodCk/bnVsbDp0fX0sU2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJwcm9jZXNzRG5pTnVtYmVyIixmdW5jdGlvbihlKXtmLmNvbmZpZy5sJiZFLnlyKGUpfSl9YXN5bmMgb3ModCl7dmFyIGU9ISFkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJoeXJvcy1kbmkiKS5sZW5ndGg7aWYoIWcuY29uZmlnLmNhbGxUcmFja2luZ0VuYWJsZWQmJiFnLmNvbmZpZy5ub1N3YXBOdW1iZXJzRW5hYmxlZHx8Zy5jb25maWcucmVmT3ZlcnJpZGUpdCgpO2Vsc2UgdHJ5e3ZhciByPWF3YWl0IHcuV3QoSlNPTi5zdHJpbmdpZnkoe3ByZXZpb3VzVXJsOm0uZ2V0UHJldmlvdXNVcmwoKSxyZWZlcnJlclVybDptLktlKCksY2FsbFRyYWNraW5nUG9vbEhhc2g6Zy5jb25maWcuY2FsbFRyYWNraW5nUG9vbEhhc2gscmVwbGFjZW1lbnRFbmFibGVkOmV9KSk7ZGUucnIociwiY3RlIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJDQUxMX1RSQUNLSU5HX1NFUlZJQ0UiLGVycm9yVHlwZToiQ09VTERfTk9UX1JFVFJJRVZFX0ROSV9OVU1CRVIifSl8fHIuZXJyb3I/KG8ud2FybigiW2N0ZV0gIityLmVycm9yKSx0KCkpOih0aGlzLmNzKHIpLHQoKSl9Y2F0Y2goZSl7eS5RdChlLCJjdGUiLHtzZXJ2aWNlV2hlcmVFcnJvck9yaWdpbmF0ZWQ6IkNBTExfVFJBQ0tJTkdfU0VSVklDRSIsZXJyb3JUeXBlOiJDT1VMRF9OT1RfUkVUUklFVkVfRE5JX05VTUJFUiJ9KSx0KCl9fWNzKGUpe3ZhciB0PWUuZG51bTtpZih0JiYoby5pbmZvKCJbY3RlXSAiK3QpLGYucHJvY2Vzc2VkRGF0YS5CPXQpLGYucHJvY2Vzc2VkRGF0YS5XPSEhZS5mdWxsTnVtYmVyUmVwbGFjZW1lbnQsbnVsbCE9KHQ9ZS5qKSYmdC5sZW5ndGgpZm9yKHZhciByIG9mIGUuailmLnByb2Nlc3NlZERhdGEuai5wdXNoKHIpO2lmKG51bGwhPSh0PWUucSkmJnQubGVuZ3RoKWZvcih2YXIgYSBvZiBlLnEpZi5wcm9jZXNzZWREYXRhLnEucHVzaChhKTtnLmNvbmZpZy5jYWxsVHJhY2tpbmdFbmFibGVkJiZ0aGlzLmxzKCl9ZHMoKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcixhPXRbZV07YS5jbGFzc0xpc3QuY29udGFpbnMoImV4dGVybmFsLWRuaSIpfHwoTy5RaShhKSYmYS5zZXRBdHRyaWJ1dGUoImhyZWYiLCJ0ZWw6IitmLnByb2Nlc3NlZERhdGEuQiksKHI9YS5nZXRBdHRyaWJ1dGUoInBob25lIikpJiYhTy4kaShyKSYmbnVsbCE9PShyPUMuSXQoZi5wcm9jZXNzZWREYXRhLkIscikpJiZhLnNldEF0dHJpYnV0ZSgicGhvbmUiLHIpKX10aGlzLnVzKCl9bHMoKXtpZihmLnByb2Nlc3NlZERhdGEuQilpZihmLnByb2Nlc3NlZERhdGEuVyl0aGlzLmRzKCk7ZWxzZXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJoeXJvcy1kbmkiKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylPLnJzKHRbZV0pfX11cygpe3ZhciB0PWQuSWUoZG9jdW1lbnQuYm9keSk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV0sYT1yLnBhcmVudEVsZW1lbnQ7YSYmYS5jbG9zZXN0KCIuZXh0ZXJuYWwtZG5pIil8fHIuZGF0YSYmTy50cyhyKX19aHMoKXtsZXQgZT1PLm5zKCk7KGU9ZXx8Ty5zcygpKSYmdGhpcy5YcihlKX19LGtlPWdsb2JhbFRoaXMsQWU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJyZXRyeUNvdW50IiwwKX1wcyhlLHQpe3ZhciByLGEsaSxzPWUuZ2V0QXR0cmlidXRlKCJocmVmIik7cyYmKGE9LyhbPyZdcmVmPSkoW14mXSspLy5leGVjKHMpKSYmKHI9YVsxXSxpPShhPWFbMl0pLnNwbGl0KCItLSIpWzBdLHM9cy5yZXBsYWNlKHIrYSxyK2krIi0tIit0KSxlLnNldEF0dHJpYnV0ZSgiaHJlZiIscykpfWZzKHIpe3RyeXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPSJtLm1lLyJdJyk7aWYoMD09PWUubGVuZ3RoKXJldHVybiA1PD10aGlzLmdzP3ZvaWQgMDoodGhpcy5ncysrLHZvaWQgc2V0VGltZW91dCgoKT0+dGhpcy5mcyh0aGlzLnZzKCkpLDMwMCkpO2lmKHRoaXMuZ3M9MCxyJiZmLmNvbmZpZy5zZXNzaW9uSWQpe2xldCB0PWVuY29kZVVSSUNvbXBvbmVudChyLnJlcGxhY2UobmV3IFJlZ0V4cChhZSsiJCIpLCIiKSk7QXJyYXkuZnJvbShlKS5mb3JFYWNoKGU9Pnt0aGlzLnBzKGUsdCl9KX19Y2F0Y2goZSl7cj1lIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOkpTT04uc3RyaW5naWZ5KGUpO28uZXJyb3IoIkNvdWxkbid0IHByb3BhZ2F0ZSBwYXJhbXMgdG8gTWFueUNoYXQ6ICIrcil9fXByb3BhZ2F0ZVBhcmFtZXRlcnNUb01hbnlDaGF0KCl7bGV0IHI9dGhpcy52cygpO2lmKHRoaXMuZnMociksa2UuTUMpe2xldCB0PWtlLk1DO0FycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibWN3aWRnZXQtZW1iZWQiKSkuZm9yRWFjaChlPT50LmdldFdpZGdldChlKS5zZXRQYXlsb2FkKHIpKSxBcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm1jd2lkZ2V0LW92ZXJsYXkiKSkuZm9yRWFjaChlPT50LmdldFdpZGdldChlKS5zZXRQYXlsb2FkKHIpKX1lbHNlIGtlLm1jQXN5bmNJbml0PSgpPT50aGlzLnByb3BhZ2F0ZVBhcmFtZXRlcnNUb01hbnlDaGF0KCl9dnMoKXt2YXIgZT1fZS5kYSgpLHQ9Zi5jb25maWcuc2Vzc2lvbklkLHI9YWU7bGV0IGE9IiI7cmV0dXJuIGUuZmJBZFNldElkJiYoYSs9ImZiY19pZD0iK2UuZmJBZFNldElkK3IpLGUuYmluZ0FkR3JvdXBJZCYmKGErPSJibmdfaWQ9IitlLmJpbmdBZEdyb3VwSWQrciksZS5oeXJvc0NhbXBhaWduSWQmJihhKz0iaF9jYW1wYWlnbl9pZD0iK2UuaHlyb3NDYW1wYWlnbklkK3IpLGUuZ29vZ2xlQ2FtcGFpZ25JZCYmKGErPSJnY19pZD0iK2UuZ29vZ2xlQ2FtcGFpZ25JZCtyKSxlLmh5cm9zQWRJZCYmKGUuZmJBZFNldElkfHxlLmdvb2dsZUNhbXBhaWduSWQpJiYoYSs9ImhfYWRfaWQ9IitlLmh5cm9zQWRJZCtyKSxlLmZiQ2xpY2tJZCYmKGErPSJmYl9jbF9pZD0iK2UuZmJDbGlja0lkK3IpLGUuZ29vZ2xlQ2xpY2tJZCYmKGErPSJnX2NsX2lkPSIrZS5nb29nbGVDbGlja0lkK3IpLGUud0JyYUlkJiYoYSs9IndfYnJhX2lkPSIrZS53QnJhSWQrciksZS5nQnJhSWQmJihhKz0iZ19icmFfaWQ9IitlLmdCcmFJZCtyKSxlLnNvdXJjZUxpbmtUYWcmJihhKz0ic2w9IitlLnNvdXJjZUxpbmtUYWcrciksZS52JiYoYSs9ImlzX2VsPSIrZS52K3IpLHQmJihhKz0idXNpZD0iK3QrciksZS50aWt0b2tDbGlja0lkJiYoYSs9InR0Y2xpZD0iK2UudGlrdG9rQ2xpY2tJZCtyKSxlLnJkdEFkR3JvdXBJZCYmKGErPSJyZHRfaWQ9IitlLnJkdEFkR3JvdXBJZCtyKSxlLmZhJiYoYSs9ImFwbF9pZD0iK2UuZmErciksZS5yZHRDbGlja0lkJiYoYSs9InJkdF9jbGlkPSIrZS5yZHRDbGlja0lkK3IpLGUuT2EmJihhKz0iaF9hZF9pZD0iK2UuT2ErciksZy5jb25maWcuY3VzdG9tVGFnJiYoMT09PWcuY29uZmlnLmN1c3RvbVRhZy5zcGxpdCgiISIpLmxlbmd0aD9hKz0idGFnPSIrZy5jb25maWcuY3VzdG9tVGFnK3I6YSs9InRhZz0iK2cuY29uZmlnLmN1c3RvbVRhZy5zcGxpdCgiISIpWzFdK3IpLGF9fSxJPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywic2V0dXBFbWFpbFRyYWNraW5nQW5kTGVhZENyZWF0aW9uIiwoKT0+e3NldEludGVydmFsKCgpPT5QZS54aSgpLDNlMyksc2V0SW50ZXJ2YWwoKCk9PlNlLmxzLDNlMyksc2V0SW50ZXJ2YWwoKCk9Pnt2YXIgZT1pLlBlKCk7dGhpcy5wcm9jZXNzRW1haWxEb20oZSl9LDNlMyksdGhpcy5wcm9jZXNzRW1haWxUcmFja2luZ0FuZExlYWRDcmVhdGlvbigpfSkscyh0aGlzLCJwcm9jZXNzRW1haWxUcmFja2luZ0FuZExlYWRDcmVhdGlvbiIsKCk9Pnt2YXIgZT1kZWNvZGVVUklDb21wb25lbnQoaS5TZSgpKSx0PW5lKCkscj1sLm5lKGVlKCkpLGE9Zi5wcm9jZXNzZWREYXRhLksmJmYucHJvY2Vzc2VkRGF0YS5lbWFpbDtlJiZpLlJlKGUpfHxhPyhlPWkuUmUoZSk/ZTpmLnByb2Nlc3NlZERhdGEuZW1haWwsYi5xcihlLGwubGUoKSksZi5wcm9jZXNzZWREYXRhLmVtYWlsPWUsZi5wcm9jZXNzZWREYXRhLks9ITEpOjA8dC5sZW5ndGgmJmcuY29uZmlnLnBob25lT3B0SW5FbmFibGVkP2IucXIodFswXSxsLmxlKCkpOnI/Yi5xcihyLGwubGUoKSk6dGhpcy5jaGVja0RvY3VtZW50QW5kUGFyc2VEb20oKSxBZS5wcm9wYWdhdGVQYXJhbWV0ZXJzVG9NYW55Q2hhdCgpLHNldFRpbWVvdXQoYmUuZ2ksMmUzKX0pLHModGhpcywiY2hlY2tEb2N1bWVudEFuZFBhcnNlRG9tIiwoKT0+e3ZhciBlOyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwiaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8oZT1pLlBlKCksYi5TcihDLmh0KCkpLGIuQXIoZC5tZSgpKSxiLk9yKGQuZ2UoKSksYi5OcihkLnZlKCkpLHNldFRpbWVvdXQoU2UuaHMsMWUzKSx0aGlzLnByb2Nlc3NFbWFpbERvbShlKSk6KG8ud2FybigiW1dBUk5dW1VTXSBEb2N1bWVudCBub3QgcmVhZHk6ICIrZG9jdW1lbnQucmVhZHlTdGF0ZSksc2V0VGltZW91dCh0aGlzLmNoZWNrRG9jdW1lbnRBbmRQYXJzZURvbSwxZTMpKX0pLHModGhpcywicHJvY2Vzc0VtYWlsRG9tIixlPT57aS5SZShlKSYmKGYucHJvY2Vzc2VkRGF0YS5nPWUsZi5jb25maWcuc2Vzc2lvbklkP2IucXIoZSxsLmxlKCkpOihmLnByb2Nlc3NlZERhdGEuSz0hMCxmLnByb2Nlc3NlZERhdGEuZW1haWw9ZSkpfSl9SXMoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaHlyb3NfZW1haWwiLGZ1bmN0aW9uKGUpe2U9ZS5kZXRhaWwuZW1haWw7ZSYmaS5SZShlKSYmKGYucHJvY2Vzc2VkRGF0YS5lbWFpbD1lLGYuY29uZmlnLnNlc3Npb25JZD9iLnFyKGUsbC5sZSgpKTpmLnByb2Nlc3NlZERhdGEuSz0hMCl9KX19LFI9bmV3IGNsYXNze0NzKCl7bGV0IGU9MTt3aW5kb3cuc2V0dXBDYWxsYmFja3M9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cuc2V0dXBDYWxsYmFja3M7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2YgQm9sdENoZWNrb3V0PzE1PGUrKyYmY2xlYXJJbnRlcnZhbCh0KTooY2xlYXJJbnRlcnZhbCh0KSx3aW5kb3cuQm9sdENoZWNrb3V0LnNldENsaWVudEN1c3RvbUNhbGxiYWNrcz93aW5kb3cuQm9sdENoZWNrb3V0LnNldENsaWVudEN1c3RvbUNhbGxiYWNrcyh7b25FbWFpbEVudGVyOmZ1bmN0aW9uKGUpe3dpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaHlyb3NfZW1haWwiLHtkZXRhaWw6e2VtYWlsOmV9fSkpfSxzdWNjZXNzOmZ1bmN0aW9uKGUsdCl7dCgpfX0pOiJ1bmRlZmluZWQiIT10eXBlb2YgYm9sdF9jYWxsYmFja3MmJndpbmRvdy5ib2x0X2NhbGxiYWNrcy5vbkVtYWlsRW50ZXImJih3aW5kb3cuYm9sdF9jYWxsYmFja19vbl9lbWFpbF9lbnRlcj13aW5kb3cuYm9sdF9jYWxsYmFja3Mub25FbWFpbEVudGVyLHdpbmRvdy5ib2x0X2NhbGxiYWNrcy5vbkVtYWlsRW50ZXI9ZnVuY3Rpb24oZSl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJoeXJvc19lbWFpbCIse2RldGFpbDp7ZW1haWw6ZX19KSksd2luZG93LmJvbHRfY2FsbGJhY2tfb25fZW1haWxfZW50ZXIoZSl9KSl9Y2F0Y2goZSl7by5lcnJvcigiW2JsdF0gIisoZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTplKSksY2xlYXJJbnRlcnZhbCh0KX19LDIwMCl9fSxPZT1uZXcgY2xhc3N7VHMoKXtsZXQgcj0xO3dpbmRvdy5nbG9iYWxFQ2FsbGJhY2s9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZSx0PXdpbmRvdy5nbG9iYWxFQ2FsbGJhY2s7dHJ5e3ZvaWQgMD09PXdpbmRvdy5nbGVnZW0/MTU8cisrJiZjbGVhckludGVydmFsKHQpOihlPXdpbmRvdy5nbGVnZW18fGZ1bmN0aW9uKC4uLmUpe3dpbmRvdy5nbGVnZW0uX3M9d2luZG93LmdsZWdlbS5fc3x8W10sd2luZG93LmdsZWdlbS5fcy5wdXNoKGUpfSxjbGVhckludGVydmFsKHQpLGUoIk9uQ2hlY2tvdXRTdGVwTG9hZGVkIixmdW5jdGlvbihlKXtvLmluZm8oIltnbG9iYWxFXSBSZWNlaXZlZCBnbG9iYWxFIGV2ZW50OiAiK0pTT04uc3RyaW5naWZ5KGUpKSwidW5kZWZpbmVkIiE9PWUuU3RlcElkJiZlLlN0ZXBJZD09PWUuU3RlcHMuQ09ORklSTUFUSU9OJiYhMD09PWUuSXNTdWNjZXNzJiYhMCE9PWUuSXNQYWdlUmVsb2FkJiZudWxsIT09KGU9ZS5kZXRhaWxzLkN1c3RvbWVyRGV0YWlscy5CaWxsaW5nQWRkcmVzcy5CaWxsaW5nRW1haWwpJiZiLnFyKGUsbC5sZSgpKX0pKX1jYXRjaChlKXtvLmVycm9yKCJbZ2xlXSAiKyhlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFjazplKSksY2xlYXJJbnRlcnZhbCh0KX19LDIwMCl9fSxOZT1uZXcgY2xhc3N7dWEoKXtnLmNvbmZpZy51YSYmc2V0SW50ZXJ2YWwodGhpcy53cywyZTMpfXdzKCl7dmFyIGUsdCxyPXRoaXMueXMoKTtmb3IoZSBvZiB0aGlzLkVzKCkpdHJ5e251bGw9PT1lLmNvbnRlbnREb2N1bWVudD9mLnByb2Nlc3NlZERhdGEuSC5wdXNoKGUpOigodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkudHlwZT0idGV4dC9qYXZhc2NyaXB0Iix0LnNyYz1yLGUuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKS5hcHBlbmQodCksZi5wcm9jZXNzZWREYXRhLkgucHVzaChlKSxvLmluZm8oIltlX2lmcl0iKSl9Y2F0Y2goZSl7by53YXJuKCJbV0FSTl1bZV9pZnJdIFNjcmlwdCBjb3VsZG4ndCBiZSBlbWJlZGRlZDogIisoZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTplKSl9fXlzKCl7dmFyIGU9Zy5jb25maWcuY3VzdG9tVGFnPyImdGFnPSIrZy5jb25maWcuY3VzdG9tVGFnOiIiLHQ9Zy5jb25maWcuc3BhRW5hYmxlZD8iJnNwYT10cnVlIjoiIixyPWcuY29uZmlnLmlnbm9yZVByZXZVcmw/IiZpZ25vcmVQcmV2VXJsPXRydWUiOiIiLGE9IlNIT1BJRlkiPT09Zy5jb25maWcub3JpZ2luPyImb3JpZ2luPVNIT1BJRlkiOiIiLGk9Zy5jb25maWcudWE/IiZlbWJlZD10cnVlIjoiIjtyZXR1cm4gZy5lbmRwb2ludHMudHJhY2tpbmdCYXNlKyIvdW5pdmVyc2FsLXNjcmlwdD9waD0iK2cucHJvZHVjdC5oYXNoK2UrYSt0K3IraX1Fcygpe3ZhciBlLHQ9W107Zm9yKGUgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpKWYucHJvY2Vzc2VkRGF0YS5ILmluY2x1ZGVzKGUpfHx0LnB1c2goZSk7cmV0dXJuIHR9fSxEZT0oZT0+KGUuRVVJUD0iRVVJUCIsZS5CTENLPSJCTENLIixlKSkoe30pO3ZhciBMZT1jbGFzcyBleHRlbmRzIGNsYXNze2JzKGUpe3RyeXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxyPSh0LnNyYz10aGlzLlBJWEVMX1NDUklQVF9VUkwsdC5vbmVycm9yPSgpPT57by5lcnJvcigiW3Rwc10gbG9hZCBmYWlsdXJlIil9LHRoaXMuUnModCxlKSxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0pO3IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxyKX1jYXRjaHtvLmVycm9yKCJbdHBzXSBTIGZhaWxlZCIpfX19e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxzKHRoaXMsIlBJWEVMX1NDUklQVF9VUkwiLCJodHRwczovL3N0YXRpYy5pY2V4eXouY29tL3dobS9hc3NldHMvcGl4ZWwuanMiKX1Qcygpe3JldHVybiBudWxsfVJzKGUsdCl7d2luZG93LnBpeGVsX2t3YXJncz13aW5kb3cucGl4ZWxfa3dhcmdzfHx7Y2xpZW50X2lkOm51bGwsc2l0ZV9pZDpudWxsLGhfc19pZDpudWxsLGhfcF9pZDpudWxsfSx3aW5kb3cucGl4ZWxfa3dhcmdzLmNsaWVudF9pZD0iMmQzYWU1N2YtMDRmNi00YTY2LWIwZWMtNzVhOWJiMDlhMWE3Iix3aW5kb3cucGl4ZWxfa3dhcmdzLnNpdGVfaWQ9Ijk3ODg2NTdlLWRkZDYtNGMyOC04ZTVjLTM4ZWUwMTg5Nzc0MiIsd2luZG93LnBpeGVsX2t3YXJncy5oX3NfaWQ9Zi5jb25maWcuc2Vzc2lvbklkLHdpbmRvdy5waXhlbF9rd2FyZ3MuaF9wX2lkPSIiK2cucHJvZHVjdC5pZCxlLm9ubG9hZD0oKT0+e3Qod2luZG93LnBpeGVsX2t3YXJncy5oX3NfaWQpfX19LEZlPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywiaHR0cENsaWVudCIpLHRoaXMuRnQ9bmV3IGxlKGEudHJhY2tpbmdCYXNlKX1hc3luYyBTcyhlKXtlPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2hyZWY6ZX0pLGU9Zy5lbmRwb2ludHMubWF0Y2hpbmdUcmlnZ2VyKyI/IitlO3JldHVybiB0aGlzLkZ0LmdldChlLFQuUnQoKSwhMSl9fSxVZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsIlNFU1NJT05fSURfRklFTEQiLCJ0aGlyZFBhcnR5U2Vzc2lvbklkIil9YXN5bmMga3MoZSl7aWYoZy5jb25maWcudGhpcmRQYXJ0eVRyYWNraW5nKXt2YXIgdD17ImJkZXgtcGl4ZWwiOigpPT5uZXcgTGV9O2xldCBhPXRbZV0/dFtlXSgpOm51bGw7aWYoYSl0cnl7bGV0IHQ9c2V0SW50ZXJ2YWwoKCk9Pnt2YXIgZTtudWxsIT0oZT1mLmNvbmZpZy5sKSYmZS5jbGlja0lkJiYoY2xlYXJUaW1lb3V0KHIpLGNsZWFySW50ZXJ2YWwodCksdGhpcy5BcyhhKSl9LDE1MDApLHI9c2V0VGltZW91dCgoKT0+e2NsZWFySW50ZXJ2YWwodCksdGhpcy5BcyhhKX0sOWUzKX1jYXRjaHtvLmVycm9yKCJbdHBzXSBFcnJvciBpbml0aWFsaXppbmciKX1lbHNlIG8uZXJyb3IoIlt0cHNdIGludmFsaWQgaWQiKX19YXN5bmMgQXModCl7aWYoZi5jb25maWcuaClvLmluZm8oIlt0cHNdIFNraXAgQmMuIiksRS5fcigidHJ1ZSIpLEUuc3IoZi5jb25maWcuaCx0aGlzLlNFU1NJT05fSURfRklFTEQpO2Vsc2V7dmFyIGU9dC5QcygpO2lmKGUpRS5zcihlLHRoaXMuU0VTU0lPTl9JRF9GSUVMRCk7ZWxzZXtsZXQgZT0hMDt0cnl7ZT1hd2FpdCBGZS5TcyhnLmhyZWYpfWNhdGNoKGUpe3kuUXQoZSwiW3Rwc10iKX1lJiYoby5pbmZvKCJbVFBTXSBObyBCYywgSW5qZWN0IFRQUyIpLEUuX3IoImZhbHNlIiksdC5icyhlPT57RS5zcihlLHRoaXMuU0VTU0lPTl9JRF9GSUVMRCksby5pbmZvKCJbdHBzXSBCdWlsdCIpfSkpfX19fSxHZT1uZXcgY2xhc3N7YXN5bmMgT3Mocil7dmFyIGU9bmV3IFVSTFNlYXJjaFBhcmFtcyx0PWwuZ2V0VXJsUGFyYW0oImh5cm9zIiksdD0odCYmZS5hcHBlbmQoImh5cm9zIix0KSxhd2FpdCBiZS5maSgpKTtsZXQgYT1nLmVuZHBvaW50cy5nZW5lcmF0ZVVVSUQ7ZS50b1N0cmluZygpJiYoYT1hKyI/IitlLnRvU3RyaW5nKCkpLHRoaXMucmVxdWVzdFNlc3Npb25JZChhLChlLHQpPT57dGhpcy5LdChlLHQscil9LGU9Pnt0aGlzLk5zKGUpfSxbe2tleToiUHJvZHVjdC1JRCIsdmFsdWU6Zy5wcm9kdWN0LmlkfSx7a2V5OiJSZWYtVXJsIix2YWx1ZTpnLmNvbmZpZy5yZWZPdmVycmlkZXx8bS5LZSgpfSx7a2V5OiJmcCIsdmFsdWU6dH0se2tleToiZnAtZGF0YSIsdmFsdWU6Zi5jb25maWcuaX1dLCEwKX1yZXF1ZXN0U2Vzc2lvbklkKGUsYSxpLHQscil7bGV0IHM9ZmUoIkdFVCIsZSwhMCx0LHI9ISFyKTtzLm9ubG9hZD1mdW5jdGlvbigpe2lmKDIwMD09PXMuc3RhdHVzfHwzMDQ9PT1zLnN0YXR1cyl0cnl7dmFyIGUsdD1zLmdldFJlc3BvbnNlSGVhZGVyKCJTZXNzaW9uLUlEIikscj1zLmdldFJlc3BvbnNlSGVhZGVyKCJUaGlyZC1QYXJ0eS1UcmFja2luZy1IYXNoIik7ciYmKGYuY29uZmlnLmg9ciksbnVsbCE9dCYmInVuZGVmaW5lZCIhPT10JiYiIiE9PXQmJiJudWxsIiE9PXQ/YSh0LCExKTpudWxsIT0oZT1KU09OLnBhcnNlKHMucmVzcG9uc2VUZXh0KS5ib2R5KSYmInVuZGVmaW5lZCIhPT1lJiYiIiE9PWUmJiJudWxsIiE9PWUmJiJkaXNhYmxlZCI9PT1lP2EoZSwhMCk6aShzLnJlc3BvbnNlVGV4dCl9Y2F0Y2goZSl7aSgiRVJST1IgUHJvY2VzaW5nIFJlc3BvbnNlOiAiKyhlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpKX1lbHNlIGkoImh0dHAgc3RhdHVzOiAiK3Muc3RhdHVzKyIgLSAiK3MucmVzcG9uc2VUZXh0KX0scy5vbmVycm9yPWZ1bmN0aW9uKCl7aSgiRXJyb3IgWE1MSHR0cDogIisocy5yZXNwb25zZVRleHR8fCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxzLnNlbmQoKX1LdChlLHQscil7dD9vLmluZm8oIkh5cm9zIFNjcmlwdCBEaXNhYmxlZCIpOihmLmNvbmZpZy5zZXNzaW9uSWQ9ZSxvLmluZm8oIltndXNpZF06ICIrZSksdGhpcy5EcyhlKSxVZS5rcyhuLlRISVJEX1BBUlRZX1RSQUNLSU5HX1BST1ZJREVSKSx0aGlzLkxzKGZ1bmN0aW9uKCl7U2Uub3MoZnVuY3Rpb24oKXtSZS5wcm9jZXNzQ2xpY2soZSxyKX0pfSkpfU5zKGUpe3RyeXt2YXIgdD1KU09OLnBhcnNlKGUpO2lmKHQuYm9keSl7aWYoT2JqZWN0LnZhbHVlcyhEZSkuaW5jbHVkZXModC5ib2R5KSlyZXR1cm4gdm9pZCBvLmVycm9yKCJbIit0LmJvZHkrIl0iKTtpZihjZSgpLmluY2x1ZGVzKHQuYm9keSkpcmV0dXJuIHZvaWQgby53YXJuKHQuYm9keSl9eS5RdChlLCJndXNpZCIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiU0VTU0lPTl9CX1NFUlZJQ0UifSl9Y2F0Y2h7eS5RdChlLCJndXNpZCIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiU0VTU0lPTl9CX1NFUlZJQ0UiLGVycm9yVHlwZToiRVJST1JfQ09VTERfTk9UX0JFX1BBUlNFRF9JTlRPX0pTT04ifSl9fURzKGUpe3ZhciB0PWQucGUoImJ1dHRvbiIpLHI9ZC5wZSgiYSIpO3RoaXMuRnMoZSx0LCJidXR0b24iKSx0aGlzLkZzKGUsciwidGFnIiksc2V0SW50ZXJ2YWwoKCk9PnRoaXMuVXMoZSksOTAwKX1GcyhlLHQscil7Zm9yKHZhciBhIGluIHQpe2E9dFthXTt0cnl7dmFyIGkscyxuPWEuaHJlZjtudWxsIT1uJiZuLmluY2x1ZGVzKCJodHRwczovL3d3dy5kaWdpc3RvcmUyNC5jb20vcHJvZHVjdC8iKSYmKG4uaW5jbHVkZXMoImN1c3RvbT0iKT8oaT10aGlzLkdzKG4sZSksYS5ocmVmPWkudG9TdHJpbmcoKSk6KHM9bi5pbmNsdWRlcygiPyIpPyImIjoiPyIsYS5ocmVmPW4rcysiY3VzdG9tPXNlc3Npb25JZD0iK2UpLG8uaW5mbygiW2h5cm9zLXVybF0gQSAiK3IrIiwgbmV3IGhyZWY6ICIrYS5ocmVmKSl9Y2F0Y2goZSl7by53YXJuKCJbaHlyb3MtdXJsXSBBICIrcisiLCBlcnJvcjogIitlKX19fVVzKGUpe3ZhciB0PWQucGUoIm15LW9yZGVyLWZvcm0iKTtpZihudWxsIT09dCYmMCE9PXQubGVuZ3RoKWZvcih2YXIgciBpbiB0KXRyeXt2YXIgYSxpLHM9dFtyXS5faWZyYW1lLnNyYztudWxsIT1zJiZzLmluY2x1ZGVzKCJodHRwczovL3d3dy5kaWdpc3RvcmUyNC5jb20vcHJvZHVjdC8iKSYmKHMuaW5jbHVkZXMoImN1c3RvbT0iKT8oYT10aGlzLkdzKHMsZSksdFtyXS5faWZyYW1lLnNyYz1hLnRvU3RyaW5nKCkpOihpPXMuaW5jbHVkZXMoIj8iKT8iJiI6Ij8iLHRbcl0uaHJlZj1zK2krImN1c3RvbT1zZXNzaW9uSWQ9IitlKSxvLmluZm8oIltoeXJvcy11cmxdIEEgaWZyYW1lLCBuZXcgaHJlZjogIit0W3JdLl9pZnJhbWUuc3JjKSl9Y2F0Y2goZSl7by53YXJuKCJbaHlyb3MtdXJsXSBBIGlmcmFtZSBlcnJvciwgIitlKX19R3MoZSx0KXt2YXIgcixhLGU9bmV3IFVSTChlKSxpPSJjdXN0b209Ii5yZXBsYWNlKCI9IiwiIikscz1uZXcgVVJMU2VhcmNoUGFyYW1zKGUuc2VhcmNoKTtsZXQgbj0iIjtmb3IoW3IsYV1vZiBzLmVudHJpZXMoKSlpZihyPT09aSl7bj1hO2JyZWFrfXQ9bisiOnNlc3Npb25JZD0iK3Q7cmV0dXJuIHMuc2V0KGksdCksZS5zZWFyY2g9cy50b1N0cmluZygpLGV9THModCl7dmFyIGU9Zy5lbmRwb2ludHMuZ2VuZXJhdGVMZWFkR2VuU2Vzc2lvbklkO3RoaXMuenQoZSxmdW5jdGlvbihlKXtmLmNvbmZpZy5sZWFkR2VuU2Vzc2lvbklkPWUsdCgpfSxlPT57eS5RdChlLCJzZXNzaW9uIix7c2VydmljZVdoZXJlRXJyb3JPcmlnaW5hdGVkOiJTRVNTSU9OX0JfU0VSVklDRSIsZXJyb3JUeXBlOiJGQUlMRURfVE9fR0VUX0xFQURfR0VOX1NFU1NJT05fSUQifSksdCgpfSl9enQoZSx0LHIpe2xldCBhPWZlKCJHRVQiLGUsITAsdm9pZCAwLCEwKTthLm9ubG9hZD1mdW5jdGlvbigpe2lmKDIwMD09PWEuc3RhdHVzfHwzMDQ9PT1hLnN0YXR1cyl0cnl7dmFyIGU9YS5nZXRSZXNwb25zZUhlYWRlcigiTC1HZW4tSUQiKTtudWxsIT1lJiYidW5kZWZpbmVkIiE9PWUmJiIiIT09ZSYmIm51bGwiIT09ZT90KGUpOnIoYS5yZXNwb25zZVRleHQpfWNhdGNoKGUpe3IoIkVSUk9SIFByb2Nlc2luZyBSZXNwb25zZTogIisoZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTplKSl9ZWxzZSByKCJodHRwIHN0YXR1czogIithLnN0YXR1cysiIC0gIithLnJlc3BvbnNlVGV4dCl9LGEub25lcnJvcj1mdW5jdGlvbigpe3IoIkVycm9yIFhNTEh0dHA6ICIrKGEucmVzcG9uc2VUZXh0fHwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCIpKX0sYS5zZW5kKCl9fSxIZT1uZXcgY2xhc3N7SHMoKXt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO2xldCB0PXdpbmRvdy5kYXRhTGF5ZXIucHVzaC5iaW5kKHdpbmRvdy5kYXRhTGF5ZXIpO3dpbmRvdy5kYXRhTGF5ZXIucHVzaD0oLi4uZSk9PntlPUFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShlLFswXSk7cmV0dXJuIHRoaXMuTXMoZSksdCguLi5lKX19TXMoZSl7ZS5mb3JFYWNoKGU9PnsiY29uc2VudCIhPT1lWzBdfHwidXBkYXRlIiE9PWVbMV0mJiJkZWZhdWx0IiE9PWVbMV18fGcuY29uZmlnLiRyfHwoZT0iZ3JhbnRlZCI9PT1lWzJdLmFkX3VzZXJfZGF0YSYmImdyYW50ZWQiPT09ZVsyXS5hZF9wZXJzb25hbGl6YXRpb24/IkdSQU5URUQiOiJERU5JRUQiLE1lLnVwZGF0ZUNvbnNlbnRWYWx1ZShlKSl9KX19LE1lPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywiY29va2llTWFuYWdlcnMiLFt7bmFtZToiQ29va2llYm90IixWczooKT0+InVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVib3QmJkNvb2tpZWJvdC5jb25zZW50Lm1hcmtldGluZ30se25hbWU6IkNvb2tpZVBybyIsVnM6KCk9PiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llUHJvJiZDb29raWVQcm8uR2V0Q29uc2VudCgpfV0pfWNoZWNrQWxsQ29uc2VudHMoKXtsZXQgdD0hMTt0aGlzLmNvb2tpZU1hbmFnZXJzLmZvckVhY2goZT0+e2UuVnMoKSYmKHQ9ITAsby5pbmZvKCJDb29raWUgY29uc2VudCBnaXZlbiB0aHJvdWdoICIrZS5uYW1lKSx0aGlzLnVwZGF0ZUNvbnNlbnRWYWx1ZSgiR1JBTlRFRCIpKX0pLHR8fEhlLk1zKHdpbmRvdy5kYXRhTGF5ZXJ8fFtdKX11cGRhdGVDb25zZW50VmFsdWUoZSl7ZSE9PWYubGVhZC5hZE9wdGltaXphdGlvbkNvbnNlbnQmJihmLmxlYWQuYWRPcHRpbWl6YXRpb25Db25zZW50PWUsYi5qcigpKX19LFZlPW5ldyBjbGFzc3twaW5nUG9uZ1JlcXVlc3QoKXt2YXIgZSx0PU51bWJlci5wYXJzZUludChsLmdldFVybFBhcmFtKCJocHAtcGlkIikpLHI9bC5nZXRVcmxQYXJhbSgiaHBwLXZlci1jb2RlIik7ciYmdCYmKGU9Zy5wcm9kdWN0LmlkLHI9e2RvbWFpbjptLkplKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx2ZXJpZmljYXRpb25Db2RlOnIscHJvZHVjdElkOnQsc2NyaXB0UHJvZHVjdElkOmV9LHcuJHQoSlNPTi5zdHJpbmdpZnkocikpLnRoZW4oKCk9Pm8uaW5mbygiW3BwXS4iKSkuY2F0Y2goZT0+eS5RdChlLCJwcCIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiSF9UUkFDS0lOR19CX1NFUlZJQ0UiLGVycm9yVHlwZToiVU5BQkxFX1RPX1ZFUklGWV9TQ1JJUFQifSkpKX19LEJlPW5ldyBjbGFzc3tCcygpe2xldCBpPTA7bmV3IFByb21pc2UoKHQscik9PntsZXQgYT0oKT0+e2krKzt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubmYtZm9ybS1jb250IGZvcm0iKTswPGUubGVuZ3RoP3QoZSk6MTU8PWk/cihuZXcgRXJyb3IoIk5vIE5GIG9uIHBhZ2UiKSk6c2V0VGltZW91dChhLDFlMyl9O2EoKX0pLnRoZW4oZT0+ZS5mb3JFYWNoKGU9PlBlLlhpKGUpKSkuY2F0Y2goZT0+by5pbmZvKGUubWVzc2FnZSkpfXhzKCl7dGhpcy5CcygpfX0seGU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJmcmFtZXdvcmsiLCJBbmd1bGFyIikscyh0aGlzLCJnbG9iYWxWYXJpYWJsZVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9O3JldHVybiB0LmpzPWUubmcmJiJmdW5jdGlvbiI9PXR5cGVvZihudWxsPT0oZT1lLm5nKT92b2lkIDA6ZS5wcm9iZSksdH0pLHModGhpcywiY29uc3RhbnRET01UZXN0IixlPT57dmFyIHQ9e3R5cGU6MCxXczp0aGlzLldzLHZlcnNpb246dm9pZCAwLGpzOiExfSxlPWUucXVlcnlTZWxlY3RvcigiW25nLXZlcnNpb25dIik7cmV0dXJuIGUmJih0LmpzPSEwLHQudmVyc2lvbj1lLmdldEF0dHJpYnV0ZSgibmctdmVyc2lvbiIpKSx0fSl9fSxXZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsImZyYW1ld29yayIsIkVtYmVyLmpzIikscyh0aGlzLCJnbG9iYWxWYXJpYWJsZVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9LGU9ZS5FbWJlcnx8ZS5FbTtyZXR1cm4gbnVsbCE9ZSYmZS5HVUlEX0tFWSYmKHQudmVyc2lvbj1lLlZFUlNJT04sdC5qcz0hMCksdH0pfX0samU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJmcmFtZXdvcmsiLCJHYXRzYnkiKSxzKHRoaXMsImNvbnN0YW50RE9NVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjAsV3M6dGhpcy5Xcyx2ZXJzaW9uOnZvaWQgMCxqczohMX07cmV0dXJuIHQuanM9ISFlLnF1ZXJ5U2VsZWN0b3IoIiNfX19nYXRzYnkiKSx0fSl9fSxxZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsImZyYW1ld29yayIsImpRdWVyeSIpLHModGhpcywiZ2xvYmFsVmFyaWFibGVUZXN0IixlPT57dmFyIHQscj17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9LGU9ZS5qUXVlcnl8fGUuJDtyZXR1cm4gbnVsbCE9KHQ9bnVsbD09ZT92b2lkIDA6ZS5mbikmJnQuanF1ZXJ5JiYoci52ZXJzaW9uPWUuZm4uanF1ZXJ5LnJlcGxhY2VBbGwoL1teXGQrLl0vZywiIiksci5qcz0hMCkscn0pfX0sS2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJmcmFtZXdvcmsiLCJOZXh0LmpzIikscyh0aGlzLCJnbG9iYWxWYXJpYWJsZVRlc3QiLGU9Pnt2YXIgdCxyPXt0eXBlOjAsV3M6dGhpcy5Xcyx2ZXJzaW9uOnZvaWQgMCxqczohMX07cmV0dXJuIG51bGwhPSh0PWUuX19ORVhUX0RBVEFfXykmJnQuYnVpbGRJZCYmKHIudmVyc2lvbj1udWxsPT0odD1lLm5leHQpP3ZvaWQgMDp0LnZlcnNpb24sci5qcz0hMCkscn0pLHModGhpcywiZHluYW1pY0RPTVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9O3JldHVybigiX19uZXh0Ij09PShudWxsPT1lP3ZvaWQgMDplLmlkKXx8IlNDUklQVCI9PT0obnVsbD09ZT92b2lkIDA6ZS50YWdOYW1lKSYmIl9fTkVYVF9EQVRBX18iPT09ZS5pZCkmJih0LmpzPSEwKSx0fSl9fSxOPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywiZnJhbWV3b3JrIiwiTnV4dCIpLHModGhpcywiZ2xvYmFsVmFyaWFibGVUZXN0IixlPT57dmFyIHQ9e3R5cGU6MCxXczp0aGlzLldzLHZlcnNpb246dm9pZCAwLGpzOiExfSxyPSEoIWUuX19OVVhUX18mJiFlLiRudXh0KTtyZXR1cm4gdC52ZXJzaW9uPShudWxsPT0oZT1udWxsPT0oZT1lLiRudXh0KT92b2lkIDA6ZS5jb25zdHJ1Y3Rvcik/dm9pZCAwOmUudmVyc2lvbil8fHZvaWQgMCx0LmpzPXIsdH0pLHModGhpcywiY29uc3RhbnRET01UZXN0IixlPT57dmFyIHQ9e3R5cGU6MCxXczp0aGlzLldzLHZlcnNpb246dm9pZCAwLGpzOiExfSxlPSEhZS5xdWVyeVNlbGVjdG9yKCIjX19udXh0Iik7cmV0dXJuIHQuanM9ZSx0fSkscyh0aGlzLCJkeW5hbWljRE9NVGVzdCIsZT0+e3ZhciB0LHI9e3R5cGU6MCxXczp0aGlzLldzLHZlcnNpb246dm9pZCAwLGpzOiExfTtyZXR1cm4gci5qcz0hKG51bGw9PSh0PWUuX192dWVfXyl8fCF0LiRudXh0KXx8IShudWxsPT0odD1lLl9fdnVlX18pfHwhdC5udXh0KSxyfSl9fSxEPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywiZnJhbWV3b3JrIiwiUmVhY3QiKSxzKHRoaXMsImlzUmVhY3RDb250YWluZXIiLGU9PntpZihlKXtpZihlLl9yZWFjdFJvb3RDb250YWluZXIpcmV0dXJuITA7Zm9yKHZhciB0IGluIGUpaWYodC5zdGFydHNXaXRoKCJfX3JlYWN0Q29udGFpbmVyIikpcmV0dXJuITB9cmV0dXJuITF9KSxzKHRoaXMsImdsb2JhbFZhcmlhYmxlVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjAsV3M6dGhpcy5Xcyx2ZXJzaW9uOnZvaWQgMCxqczohMX0scj0hKG51bGw9PShyPWUuUmVhY3QpfHwhci5Db21wb25lbnQpO3JldHVybiB0LnZlcnNpb249bnVsbD09KGU9ZS5SZWFjdCk/dm9pZCAwOmUudmVyc2lvbix0LmpzPXIsdH0pLHModGhpcywiY29uc3RhbnRET01UZXN0IixlPT57dmFyIHQ9e3R5cGU6MCxXczp0aGlzLldzLHZlcnNpb246dm9pZCAwLGpzOiExfSxyPSEhZS5xdWVyeVNlbGVjdG9yKCIjcmVhY3Qtcm9vdCwgW2RhdGEtcmVhY3Ryb290XSIpLGU9dGhpcy5pc1JlYWN0Q29udGFpbmVyKGUuYm9keSl8fHRoaXMuaXNSZWFjdENvbnRhaW5lcihlLmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQpO3JldHVybiB0LmpzPXJ8fGUsdH0pLHModGhpcywiZHluYW1pY0RPTVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9O3JldHVybiB0LmpzPXRoaXMuaXNSZWFjdENvbnRhaW5lcihlKSx0fSl9fSxKZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsImZyYW1ld29yayIsIlJlbWl4Iikscyh0aGlzLCJnbG9iYWxWYXJpYWJsZVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9O3JldHVybiBlLl9fcmVtaXhDb250ZXh0JiYodC52ZXJzaW9uPW51bGwsdC5qcz0hMCksdH0pLHModGhpcywiZHluYW1pY0RPTVRlc3QiLGU9Pnt2YXIgdD17dHlwZTowLFdzOnRoaXMuV3MsdmVyc2lvbjp2b2lkIDAsanM6ITF9O3JldHVybiJNRVRBIj09PShudWxsPT1lP3ZvaWQgMDplLnRhZ05hbWUpJiYic3RyaW5nIj09dHlwZW9mIGUubmFtZSYmZS5uYW1lLnN0YXJ0c1dpdGgoInJlbWl4LSIpJiYodC5qcz0hMCksdH0pfX0semU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJwbGF0Zm9ybSIsIkRydXBhbCIpLHModGhpcywiZ2xvYmFsVmFyaWFibGVUZXN0IixlPT57dmFyIHQ9e3R5cGU6MSxwbGF0Zm9ybTp0aGlzLnBsYXRmb3JtLGpzOiExfTtyZXR1cm4gbnVsbCE9KGU9ZS5EcnVwYWwpJiZlLmJlaGF2aW9ycyYmKHQuanM9ITApLHR9KSxzKHRoaXMsImNvbnN0YW50RE9NVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjEscGxhdGZvcm06dGhpcy5wbGF0Zm9ybSxqczohMX0scj1lLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT0iZ2VuZXJhdG9yIl1bY29udGVudF49IkRydXBhbCJdJyk7bGV0IGE9L1wvc2l0ZXNcLyg/OmRlZmF1bHR8YWxsKVwvKD86dGhlbWVzfG1vZHVsZXN8ZmlsZXMpLztlPUFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKCJsaW5rLCBzdHlsZSwgc2NyaXB0Iil8fFtdKS5zb21lKGU9PmEudGVzdChlLnNyYyl8fGEudGVzdChlLmhyZWYpKTtyZXR1cm4ocnx8ZSkmJih0LmpzPSEwKSx0fSl9fSxYZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsInBsYXRmb3JtIiwiU2hvcGlmeSIpLHModGhpcywiZ2xvYmFsVmFyaWFibGVUZXN0IixlPT57dmFyIHQ9e3R5cGU6MSxwbGF0Zm9ybTp0aGlzLnBsYXRmb3JtLGpzOiExfTtyZXR1cm4gbnVsbCE9KGU9ZS5TaG9waWZ5KSYmZS5zaG9wJiYodC5qcz0hMCksdH0pfX0sJGU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7cyh0aGlzLCJwbGF0Zm9ybSIsIldpeCIpLHModGhpcywiZ2xvYmFsVmFyaWFibGVUZXN0IixlPT57dmFyIHQscj17dHlwZToxLHBsYXRmb3JtOnRoaXMucGxhdGZvcm0sanM6ITF9O3JldHVybihudWxsIT0odD1lLndpeFBlcmZvcm1hbmNlTWVhc3VyZW1lbnRzKSYmdC5pbmZvfHxudWxsIT0odD1lLndpeEJpU2Vzc2lvbikmJnQuaW5mbykmJihyLmpzPSEwKSxyfSkscyh0aGlzLCJjb25zdGFudERPTVRlc3QiLGU9Pnt2YXIgdD17dHlwZToxLHBsYXRmb3JtOnRoaXMucGxhdGZvcm0sanM6ITF9LHI9ISFlLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXdpeC1zaXRlLWlkXSwgW2RhdGEtd2l4LXJlbmRlcmVkXSIpLGU9ISFlLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3aXguY29tIl0sIHNjcmlwdFtzcmMqPSJ3aXhzdGF0aWMuY29tIl0nKTtyZXR1cm4ocnx8ZSkmJih0LmpzPSEwKSx0fSkscyh0aGlzLCJkeW5hbWljRE9NVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjEscGxhdGZvcm06dGhpcy5wbGF0Zm9ybSxqczohMX07cmV0dXJuIGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKGUuZGF0YXNldC53aXhTaXRlSWR8fGUuZGF0YXNldC53aXhSZW5kZXJlZCkmJih0LmpzPSEwKSx0fSl9fSxaZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsInBsYXRmb3JtIiwiV2l6Iikscyh0aGlzLCJnbG9iYWxWYXJpYWJsZVRlc3QiLGU9Pnt2YXIgdD17dHlwZToxLHBsYXRmb3JtOnRoaXMucGxhdGZvcm0sanM6ITF9O3JldHVybiBudWxsIT0oZT1lLmRvY3VtZW50KSYmZS5fX3dpemRpc3BhdGNoZXImJih0LmpzPSEwKSx0fSl9fSxZZT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtzKHRoaXMsInBsYXRmb3JtIiwiV29vQ29tbWVyY2UiKSxzKHRoaXMsImdsb2JhbFZhcmlhYmxlVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjEscGxhdGZvcm06dGhpcy5wbGF0Zm9ybSxqczohMX07cmV0dXJuKGUud2NfYWRkX3RvX2NhcnRfcGFyYW1zfHxlLndjX2NhcnRfZnJhZ21lbnRzX3BhcmFtc3x8ZS53b29jb21tZXJjZV9wYXJhbXMpJiYodC5qcz0hMCksdH0pLHModGhpcywiY29uc3RhbnRET01UZXN0IixlPT57dmFyIHQ9e3R5cGU6MSxwbGF0Zm9ybTp0aGlzLnBsYXRmb3JtLGpzOiExfSxyPSEobnVsbD09KHI9ZS5ib2R5KXx8IXIuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3b29jb21tZXJjZSIpKXx8IShudWxsPT0ocj1lLmJvZHkpfHwhci5jbGFzc0xpc3QuY29udGFpbnMoIndvb2NvbW1lcmNlLXBhZ2UiKSksYT0hIWUucXVlcnlTZWxlY3RvcignbGlua1tocmVmKj0id29vY29tbWVyY2UiXSwgc2NyaXB0W3NyYyo9Indvb2NvbW1lcmNlIl0nKSxlPSEhZS5xdWVyeVNlbGVjdG9yKCIud29vY29tbWVyY2UsIC53b29jb21tZXJjZS1jYXJ0LCAud29vY29tbWVyY2UtY2hlY2tvdXQiKTtyZXR1cm4ocnx8YXx8ZSkmJih0LmpzPSEwKSx0fSkscyh0aGlzLCJkeW5hbWljRE9NVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjEscGxhdGZvcm06dGhpcy5wbGF0Zm9ybSxqczohMX07cmV0dXJuIG51bGwhPWUmJmUuY2xhc3NMaXN0JiYoZS5jbGFzc0xpc3QuY29udGFpbnMoIndvb2NvbW1lcmNlIil8fGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3b29jb21tZXJjZS1jYXJ0Iil8fGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3b29jb21tZXJjZS1jaGVja291dCIpKSYmKHQuanM9ITApLHR9KX19LFFlPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3ModGhpcywicGxhdGZvcm0iLCJXb3JkUHJlc3MiKSxzKHRoaXMsImNvbnN0YW50RE9NVGVzdCIsZT0+e3ZhciB0PXt0eXBlOjEscGxhdGZvcm06dGhpcy5wbGF0Zm9ybSxqczohMX0scj0hIWUucXVlcnlTZWxlY3RvcignbGlua1tyZWw9Imh0dHBzOi8vYXBpLncub3JnLyJdJyksZT0wPGUucXVlcnlTZWxlY3RvckFsbCgnbGlua1tocmVmKj0id3AtaW5jbHVkZXMiXSwgc2NyaXB0W3NyYyo9IndwLWluY2x1ZGVzIl0nKS5sZW5ndGg7cmV0dXJuKHJ8fGUpJiYodC5qcz0hMCksdH0pfX0sTD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoZSl7cyh0aGlzLCJjaGFubmVscyIse1swXTpbXSwxOltdLDI6W119KSxzKHRoaXMsImdldENoZWNrZXJSZXN1bHRzRm9yRGF0YSIsKGUsdCk9PnRoaXMucXNbZV0ubWFwKGU9Pih7Z3JvdXBJZDplLmdyb3VwSWQsLi4uZS5Lcyh0KX0pKSkscyh0aGlzLCJ1bnN1YnNjcmliZUZyb21BbGwiLHI9PntPYmplY3QudmFsdWVzKHRoaXMucXMpLmZvckVhY2goKGUsdCk9Pnt0aGlzLnFzW3RdPWUuZmlsdGVyKGU9PmUuZ3JvdXBJZCE9PXIpfSl9KSxzKHRoaXMsInVuc3Vic2NyaWJlQWxsIiwoKT0+e09iamVjdC52YWx1ZXModGhpcy5xcykuZm9yRWFjaCgoZSx0KT0+e3RoaXMucXNbdF09W119KX0pLHModGhpcywiZ2V0Q2hlY2tlcnNDb3VudEZvckNoYW5uZWwiLGU9PnRoaXMucXNbZV0ubGVuZ3RoKSx0aGlzLnFzPWV9fSh7WzBdOlt7Z3JvdXBJZDpELldzLEtzOkQuZ2xvYmFsVmFyaWFibGVUZXN0fSx7Z3JvdXBJZDp4ZS5XcyxLczp4ZS5nbG9iYWxWYXJpYWJsZVRlc3R9LHtncm91cElkOldlLldzLEtzOldlLmdsb2JhbFZhcmlhYmxlVGVzdH0se2dyb3VwSWQ6cWUuV3MsS3M6cWUuZ2xvYmFsVmFyaWFibGVUZXN0fSx7Z3JvdXBJZDpLZS5XcyxLczpLZS5nbG9iYWxWYXJpYWJsZVRlc3R9LHtncm91cElkOk4uV3MsS3M6Ti5nbG9iYWxWYXJpYWJsZVRlc3R9LHtncm91cElkOkplLldzLEtzOkplLmdsb2JhbFZhcmlhYmxlVGVzdH0se2dyb3VwSWQ6MS4udG9TdHJpbmcoKSxLczpYZS5nbG9iYWxWYXJpYWJsZVRlc3R9LHtncm91cElkOjEuLnRvU3RyaW5nKCksS3M6emUuZ2xvYmFsVmFyaWFibGVUZXN0fSx7Z3JvdXBJZDoxLi50b1N0cmluZygpLEtzOiRlLmdsb2JhbFZhcmlhYmxlVGVzdH0se2dyb3VwSWQ6MS4udG9TdHJpbmcoKSxLczpaZS5nbG9iYWxWYXJpYWJsZVRlc3R9LHtncm91cElkOjEuLnRvU3RyaW5nKCksS3M6WWUuZ2xvYmFsVmFyaWFibGVUZXN0fV0sMTpbe2dyb3VwSWQ6RC5XcyxLczpELmNvbnN0YW50RE9NVGVzdH0se2dyb3VwSWQ6eGUuV3MsS3M6eGUuY29uc3RhbnRET01UZXN0fSx7Z3JvdXBJZDpqZS5XcyxLczpqZS5jb25zdGFudERPTVRlc3R9LHtncm91cElkOk4uV3MsS3M6Ti5jb25zdGFudERPTVRlc3R9LHtncm91cElkOjEuLnRvU3RyaW5nKCksS3M6emUuY29uc3RhbnRET01UZXN0fSx7Z3JvdXBJZDoxLi50b1N0cmluZygpLEtzOiRlLmNvbnN0YW50RE9NVGVzdH0se2dyb3VwSWQ6MS4udG9TdHJpbmcoKSxLczpZZS5jb25zdGFudERPTVRlc3R9LHtncm91cElkOjEuLnRvU3RyaW5nKCksS3M6UWUuY29uc3RhbnRET01UZXN0fV0sMjpbe2dyb3VwSWQ6RC5XcyxLczpELmR5bmFtaWNET01UZXN0fSx7Z3JvdXBJZDpLZS5XcyxLczpLZS5keW5hbWljRE9NVGVzdH0se2dyb3VwSWQ6Ti5XcyxLczpOLmR5bmFtaWNET01UZXN0fSx7Z3JvdXBJZDpKZS5XcyxLczpKZS5keW5hbWljRE9NVGVzdH0se2dyb3VwSWQ6MS4udG9TdHJpbmcoKSxLczokZS5keW5hbWljRE9NVGVzdH0se2dyb3VwSWQ6MS4udG9TdHJpbmcoKSxLczpZZS5keW5hbWljRE9NVGVzdH1dfSksZXQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUpe3ModGhpcywibmV4dEhhbmRsZXIiKSxzKHRoaXMsImZvdW5kUGxhdGZvcm0iLCIiKSxzKHRoaXMsImhhbmRsZSIsZT0+e3ZhciB0OzEhPT1lLnR5cGU/bnVsbCE9KHQ9dGhpcy5KcykmJnQuaGFuZGxlKGUpOmUuanMmJiIiPT09dGhpcy56cyYmKHRoaXMuenM9ZS5wbGF0Zm9ybSxMLnVuc3Vic2NyaWJlRnJvbUFsbChlLmdyb3VwSWQpLGYuY29uZmlnLnBsYXRmb3JtPWVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnpzKSl9KSxzKHRoaXMsImRpZEZpbmRQbGF0Zm9ybSIsKCk9PiIiIT10aGlzLnpzKSx0aGlzLkpzPWV9fSx0dD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoZSl7cyh0aGlzLCJuZXh0SGFuZGxlciIpLHModGhpcywiZm91bmRUZWNobm9sb2dpZXMiLG5ldyBTZXQpLHModGhpcywiaGFuZGxlIixlPT57dmFyIHQ7MCE9PWUudHlwZT9udWxsIT0odD10aGlzLkpzKSYmdC5oYW5kbGUoZSk6ZS5qcyYmKHRoaXMuZm91bmRUZWNobm9sb2dpZXMuYWRkKGUuV3MpLEwudW5zdWJzY3JpYmVGcm9tQWxsKGUuZ3JvdXBJZCkpfSkscyh0aGlzLCJnZXROdW1iZXJPZkZvdW5kVGVjaG5vbG9naWVzIiwoKT0+dGhpcy5mb3VuZFRlY2hub2xvZ2llcy5zaXplKSxzKHRoaXMsInVwZGF0ZUhlYWRlcnMiLCgpPT57Zi5jb25maWcucD1BcnJheS5mcm9tKHRoaXMuZm91bmRUZWNobm9sb2dpZXMpLm1hcChlPT5lbmNvZGVVUklDb21wb25lbnQoZSkpLmpvaW4oIiwiKX0pLHRoaXMuSnM9ZX19KGV0KSxXZT1uZXcgY2xhc3N7YXN5bmMgWHMoKXtsZXQgdD10dDswPEwuZ2V0Q2hlY2tlcnNDb3VudEZvckNoYW5uZWwoMCkmJkwuZ2V0Q2hlY2tlclJlc3VsdHNGb3JEYXRhKDAsZ2xvYmFsVGhpcykuZm9yRWFjaChlPT50LmhhbmRsZShlKSksMDxMLmdldENoZWNrZXJzQ291bnRGb3JDaGFubmVsKDEpJiZMLmdldENoZWNrZXJSZXN1bHRzRm9yRGF0YSgxLGRvY3VtZW50KS5mb3JFYWNoKGU9PnQuaGFuZGxlKGUpKSx0dC51cGRhdGVIZWFkZXJzKCksInJlcXVlc3RJZGxlQ2FsbGJhY2siaW4gZ2xvYmFsVGhpcyYmMDxMLmdldENoZWNrZXJzQ291bnRGb3JDaGFubmVsKDIpJiYwPT09dHQuZ2V0TnVtYmVyT2ZGb3VuZFRlY2hub2xvZ2llcygpJiZhd2FpdCB0aGlzLiRzKGU9PntMLmdldENoZWNrZXJSZXN1bHRzRm9yRGF0YSgyLGUpLmZvckVhY2goZT0+dC5oYW5kbGUoZSkpfSwoKT0+e3ZhciBlPTA9PT1MLmdldENoZWNrZXJzQ291bnRGb3JDaGFubmVsKDIpLHQ9MDx0dC5nZXROdW1iZXJPZkZvdW5kVGVjaG5vbG9naWVzKCkmJmV0LmRpZEZpbmRQbGF0Zm9ybSgpO3JldHVybiBlfHx0fSksdHQudXBkYXRlSGVhZGVycygpLEwudW5zdWJzY3JpYmVBbGwoKX1hc3luYyAkcyhyLGEpe2xldCBpPTAscz1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQpLG47dmFyIGU9bmV3IFByb21pc2UoZT0+e249ZX0pO2xldCBvPWU9Pntmb3IoO2k8M2UzJiYwPGUudGltZVJlbWFpbmluZygpOyl7dmFyIHQ9cy5uZXh0Tm9kZSgpO2lmKCF0KXJldHVybiBuKCk7aWYocih0KSxpKyssYSgpKXJldHVybiBuKCl9aTwzZTM/Z2xvYmFsVGhpcy5yZXF1ZXN0SWRsZUNhbGxiYWNrKG8pOm4oKX07cmV0dXJuIGdsb2JhbFRoaXMucmVxdWVzdElkbGVDYWxsYmFjayhvKSxlfX07aWYod2luZG93Lm1oX3V0c19hdmFpbGFibGUpdHJ5e3kuUXQoIkR1cGxpY2F0ZSBzY3JpcHQgbG9hZCIsIltpbml0XSBbVVRDXSIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiVU5JRklFRF9UUkFDS0lOR19TQ1JJUFQiLGVycm9yVHlwZToiRFVQTElDQVRFX1NDUklQVF9MT0FEIn0pfWNhdGNoe31lbHNle3dpbmRvdy5taF91dHNfYXZhaWxhYmxlPSEwO3RyeXtTLnJpKCksUGUuV2koKSxyLmluaXQoKSxSZS52aSgpLF9lLmNhKCksYmUucGkoKSxjLnlpKCksdC5SaSgpLHQuU2koSS5wcm9jZXNzRW1haWxUcmFja2luZ0FuZExlYWRDcmVhdGlvbiksSS5JcygpLFIuQ3MoKSxPZS5UcygpLGUuWnIoKSxOZS51YSgpLHdlLk1hKCksR2UuT3MoSS5zZXR1cEVtYWlsVHJhY2tpbmdBbmRMZWFkQ3JlYXRpb24pLE1lLmNoZWNrQWxsQ29uc2VudHMoKSxIZS5IcygpLFZlLnBpbmdQb25nUmVxdWVzdCgpLEJlLnhzKCksV2UuWHMoKX1jYXRjaChlKXt5LlF0KGUsIltpbml0XSBbVVRDXSIse3NlcnZpY2VXaGVyZUVycm9yT3JpZ2luYXRlZDoiVU5JRklFRF9UUkFDS0lOR19TQ1JJUFQiLGVycm9yVHlwZToiQ09VTERfTk9UX0lOSVRfU0VSVklDRVMifSl9fX0pKCk7"}},"time_used":626,"timings":{"blocked":0,"dns":48,"connect":93,"send":0,"wait":185,"receive":104,"ssl":197},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-B4RQS3TZG8\u0026cid=242871477.1785145406\u0026gtm=45je67m0v888062621z8852615139za20gzb852615139zd852615139\u0026rcb=3\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119896802\u0026z=139799907","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.896Z","timestamp":1785145405896,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026tid=G-B4RQS3TZG8\u0026cid=242871477.1785145406\u0026gtm=45je67m0v888062621z8852615139za20gzb852615139zd852615139\u0026rcb=3\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616985~115938465~115938468~118897920~118897930~119259605~119724320~119896802\u0026z=139799907 HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: image/gif\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 42\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42,"size_decoded":578,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"d89746888da2d9510b64a9f031eaecd5","sha1":"d5fceb6532643d0d84ffe09c40c481ecdf59e15a","sha256":"ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629","sha512":"d5da26b5d496edb0221df1a4057a8b0285d15592a8f8dc7016a294df37ed335f3fde6a2252962e0df38b62847f8b771463a0124ef3f84299f262ed9d9d3cee4c","ssdeep":"","tlshash":"c4900023fa808000c3a8c2300a0b238a2b8c80200a28030b80ae208cec3a3a22c03020","first_seen":"2023-04-05T02:54:03Z","last_seen":"2026-08-12T03:48:31.376535Z","times_seen":1027862,"resource_available":true,"data":"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}},"time_used":82,"timings":{"blocked":0,"dns":0,"connect":16,"send":0,"wait":36,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/dij0kpe.css","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.792Z","timestamp":1785145403792,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /dij0kpe.css HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:14 GMT\r\netag: W/\"65a77ac2-1136\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":4406,"size_decoded":887,"mime_type":"text/css","magic":"Unicode text, UTF-8 text","md5":"f697aace829965a9ccb3d405a6d739c7","sha1":"863625db3ad7458095ced3c5e4a451cf8cb46e58","sha256":"67b364b643b030bf2342daf9c0fd475c5edcaa47ddb5233829dfecd05697354f","sha512":"78cef5e976cb919d0fad506778598b18496d1f2b9705cf7232c5d4903319aa99bc225f2ea0b45a1cd7bd2cfa88dc3f46bd6dccb38e4da6a1112b55c64945207f","ssdeep":"96:pbzQB4VMrBTaM4M3M9aMVMUM5MHMth/GMz4Wuoxt:pDVMUM4M3MMMVMUM5MHMiMeS","tlshash":"8b91e431c01991f6d4969b4236cbbf36be0a342aa5d56c11da3d48b86cff8739214f5c","first_seen":"2026-07-27T07:14:06.734565Z","last_seen":"2026-07-27T14:04:41.090521Z","times_seen":5,"resource_available":false,"data":"LyoKICogVGhlIFR5cGVraXQgc2VydmljZSB1c2VkIHRvIGRlbGl2ZXIgdGhpcyBmb250IG9yIGZvbnRzIGZvciB1c2Ugb24gd2Vic2l0ZXMKICogaXMgcHJvdmlkZWQgYnkgQWRvYmUgYW5kIGlzIHN1YmplY3QgdG8gdGhlc2UgVGVybXMgb2YgVXNlCiAqIGh0dHA6Ly93d3cuYWRvYmUuY29tL3Byb2R1Y3RzL2V1bGFzL3RvdV90eXBla2l0LiBGb3IgZm9udCBsaWNlbnNlCiAqIGluZm9ybWF0aW9uLCBzZWUgdGhlIGxpc3QgYmVsb3cuCiAqCiAqIGZyYW5rbGluLWdvdGhpYy11cnc6CiAqICAgLSBodHRwOi8vdHlwZWtpdC5jb20vZXVsYXMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGFkCiAqICAgLSBodHRwOi8vdHlwZWtpdC5jb20vZXVsYXMvMDAwMDAwMDAwMDAwMDAwMDAwMDExY2U2CiAqICAgLSBodHRwOi8vdHlwZWtpdC5jb20vZXVsYXMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGIxCiAqICAgLSBodHRwOi8vdHlwZWtpdC5jb20vZXVsYXMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGFlCiAqICAgLSBodHRwOi8vdHlwZWtpdC5jb20vZXVsYXMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGIyCiAqIGZyYW5rbGluLWdvdGhpYy11cnctY29uZDoKICogICAtIGh0dHA6Ly90eXBla2l0LmNvbS9ldWxhcy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjUKICogICAtIGh0dHA6Ly90eXBla2l0LmNvbS9ldWxhcy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjcKICogICAtIGh0dHA6Ly90eXBla2l0LmNvbS9ldWxhcy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjkKICogICAtIGh0dHA6Ly90eXBla2l0LmNvbS9ldWxhcy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjYKICogICAtIGh0dHA6Ly90eXBla2l0LmNvbS9ldWxhcy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjgKICoKICogwqkgMjAwOS0yMDIzIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogKi8KLyp7Imxhc3RfcHVibGlzaGVkIjoiMjAyMS0wOS0xMyAwODo0ODo1MiBVVEMifSovCgpAaW1wb3J0IHVybCgicC5jc3MiKTsKCkBmb250LWZhY2Ugewpmb250LWZhbWlseToiZnJhbmtsaW4tZ290aGljLXVydyI7CnNyYzp1cmwoImFmLzljYjc4YS8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YWQvMjcvbCIpIGZvcm1hdCgid29mZjIiKSx1cmwoImFmLzljYjc4YS8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YWQvMjcvZCIpIGZvcm1hdCgid29mZiIpLHVybCgiYWYvOWNiNzhhLzAwMDAwMDAwMDAwMDAwMDAwMDAxMThhZC8yNy9hIikgZm9ybWF0KCJvcGVudHlwZSIpOwpmb250LWRpc3BsYXk6YXV0bztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOm5vcm1hbDsKfQoKQGZvbnQtZmFjZSB7CmZvbnQtZmFtaWx5OiJmcmFua2xpbi1nb3RoaWMtdXJ3IjsKc3JjOnVybCgiYWYvMmU2ZjA3LzAwMDAwMDAwMDAwMDAwMDAwMDAxMWNlNi8yNy9sIikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgiYWYvMmU2ZjA3LzAwMDAwMDAwMDAwMDAwMDAwMDAxMWNlNi8yNy9kIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCJhZi8yZTZmMDcvMDAwMDAwMDAwMDAwMDAwMDAwMDExY2U2LzI3L2EiKSBmb3JtYXQoIm9wZW50eXBlIik7CmZvbnQtZGlzcGxheTphdXRvO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6bm9ybWFsOwp9CgpAZm9udC1mYWNlIHsKZm9udC1mYW1pbHk6ImZyYW5rbGluLWdvdGhpYy11cnciOwpzcmM6dXJsKCJhZi9iODI1YWYvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGIxLzI3L2wiKSBmb3JtYXQoIndvZmYyIiksdXJsKCJhZi9iODI1YWYvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGIxLzI3L2QiKSBmb3JtYXQoIndvZmYiKSx1cmwoImFmL2I4MjVhZi8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjEvMjcvYSIpIGZvcm1hdCgib3BlbnR5cGUiKTsKZm9udC1kaXNwbGF5OmF1dG87Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3RyZXRjaDpub3JtYWw7Cn0KCkBmb250LWZhY2Ugewpmb250LWZhbWlseToiZnJhbmtsaW4tZ290aGljLXVydyI7CnNyYzp1cmwoImFmLzA3ZDQyNS8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YWUvMjcvbCIpIGZvcm1hdCgid29mZjIiKSx1cmwoImFmLzA3ZDQyNS8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YWUvMjcvZCIpIGZvcm1hdCgid29mZiIpLHVybCgiYWYvMDdkNDI1LzAwMDAwMDAwMDAwMDAwMDAwMDAxMThhZS8yNy9hIikgZm9ybWF0KCJvcGVudHlwZSIpOwpmb250LWRpc3BsYXk6YXV0bztmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOm5vcm1hbDsKfQoKQGZvbnQtZmFjZSB7CmZvbnQtZmFtaWx5OiJmcmFua2xpbi1nb3RoaWMtdXJ3IjsKc3JjOnVybCgiYWYvOWE3Mjg0LzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiMi8yNy9sIikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgiYWYvOWE3Mjg0LzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiMi8yNy9kIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCJhZi85YTcyODQvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGIyLzI3L2EiKSBmb3JtYXQoIm9wZW50eXBlIik7CmZvbnQtZGlzcGxheTphdXRvO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0cmV0Y2g6bm9ybWFsOwp9CgpAZm9udC1mYWNlIHsKZm9udC1mYW1pbHk6ImZyYW5rbGluLWdvdGhpYy11cnctY29uZCI7CnNyYzp1cmwoImFmL2U5ODRhZC8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjUvMjcvbCIpIGZvcm1hdCgid29mZjIiKSx1cmwoImFmL2U5ODRhZC8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjUvMjcvZCIpIGZvcm1hdCgid29mZiIpLHVybCgiYWYvZTk4NGFkLzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiNS8yNy9hIikgZm9ybWF0KCJvcGVudHlwZSIpOwpmb250LWRpc3BsYXk6YXV0bztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOm5vcm1hbDsKfQoKQGZvbnQtZmFjZSB7CmZvbnQtZmFtaWx5OiJmcmFua2xpbi1nb3RoaWMtdXJ3LWNvbmQiOwpzcmM6dXJsKCJhZi80YmE2ZWYvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGI3LzI3L2wiKSBmb3JtYXQoIndvZmYyIiksdXJsKCJhZi80YmE2ZWYvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGI3LzI3L2QiKSBmb3JtYXQoIndvZmYiKSx1cmwoImFmLzRiYTZlZi8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjcvMjcvYSIpIGZvcm1hdCgib3BlbnR5cGUiKTsKZm9udC1kaXNwbGF5OmF1dG87Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDpub3JtYWw7Cn0KCkBmb250LWZhY2Ugewpmb250LWZhbWlseToiZnJhbmtsaW4tZ290aGljLXVydy1jb25kIjsKc3JjOnVybCgiYWYvYTIwMzFjLzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiOS8yNy9sIikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgiYWYvYTIwMzFjLzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiOS8yNy9kIikgZm9ybWF0KCJ3b2ZmIiksdXJsKCJhZi9hMjAzMWMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGI5LzI3L2EiKSBmb3JtYXQoIm9wZW50eXBlIik7CmZvbnQtZGlzcGxheTphdXRvO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0cmV0Y2g6bm9ybWFsOwp9CgpAZm9udC1mYWNlIHsKZm9udC1mYW1pbHk6ImZyYW5rbGluLWdvdGhpYy11cnctY29uZCI7CnNyYzp1cmwoImFmLzJkMDMwMi8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjYvMjcvbCIpIGZvcm1hdCgid29mZjIiKSx1cmwoImFmLzJkMDMwMi8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjYvMjcvZCIpIGZvcm1hdCgid29mZiIpLHVybCgiYWYvMmQwMzAyLzAwMDAwMDAwMDAwMDAwMDAwMDAxMThiNi8yNy9hIikgZm9ybWF0KCJvcGVudHlwZSIpOwpmb250LWRpc3BsYXk6YXV0bztmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOm5vcm1hbDsKfQoKQGZvbnQtZmFjZSB7CmZvbnQtZmFtaWx5OiJmcmFua2xpbi1nb3RoaWMtdXJ3LWNvbmQiOwpzcmM6dXJsKCJhZi8wMDA0MWMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGI4LzI3L2wiKSBmb3JtYXQoIndvZmYyIiksdXJsKCJhZi8wMDA0MWMvMDAwMDAwMDAwMDAwMDAwMDAwMDExOGI4LzI3L2QiKSBmb3JtYXQoIndvZmYiKSx1cmwoImFmLzAwMDQxYy8wMDAwMDAwMDAwMDAwMDAwMDAwMTE4YjgvMjcvYSIpIGZvcm1hdCgib3BlbnR5cGUiKTsKZm9udC1kaXNwbGF5OmF1dG87Zm9udC1zdHlsZTppdGFsaWM7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDpub3JtYWw7Cn0KCi50ay1mcmFua2xpbi1nb3RoaWMtdXJ3IHsgZm9udC1mYW1pbHk6ICJmcmFua2xpbi1nb3RoaWMtdXJ3IixzYW5zLXNlcmlmOyB9Ci50ay1mcmFua2xpbi1nb3RoaWMtdXJ3LWNvbmQgeyBmb250LWZhbWlseTogImZyYW5rbGluLWdvdGhpYy11cnctY29uZCIsc2Fucy1zZXJpZjsgfQo="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-VLMFGK450H\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.454Z","timestamp":1785145405454,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-VLMFGK450H\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\nexpires: Mon, 27 Jul 2026 09:43:25 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 181256\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":548045,"size_decoded":181840,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6033)","md5":"c7181d226a149996c1e2734df1e605a7","sha1":"f9214e6296e939b48129163a718286f2050094b9","sha256":"3be658553e4a7b7772974cc90a435463ac5b5ab6762920b47cde929e167eec75","sha512":"03eb150b8d097a56ff4d043748ce20e844594f86f767b702dd3d9712cc9e69535665cc9c7b7c0e196fb0a9eaa39e6a46abcfa4b3859a35d6bd7e8e521bbbb1e0","ssdeep":"6144:7YIwQMU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjKUGxVGaHoXuARRrG:7YnQ51WLP69V3KGUGxVHOfG","tlshash":"8fc40aceb3d674265396f478503f01cba97b25e2b45cc89ab0c9cce02d7465a8267f78","first_seen":"2026-07-27T09:44:08.353171Z","last_seen":"2026-07-27T14:04:41.103415Z","times_seen":4,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiZ29vZ2xlLm5vIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6MH1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fb2d0XzFwX2RhdGFfdjIiLCJwcmlvcml0eSI6MTcsInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfYXV0b1Bob25lRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIjpbImxpc3QiLFsibWFwIiwiZXhjbHVzaW9uU2VsZWN0b3IiLCIiXV0sInZ0cF9pc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvQWRkcmVzc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjR9LHsiZnVuY3Rpb24iOiJfX2NjZF9nYV9maXJzdCIsInByaW9yaXR5IjoxNiwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MjJ9LHsiZnVuY3Rpb24iOiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIiwicHJpb3JpdHkiOjE1LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidnRwX2ZvcmVpZ25UbGRNYWNyb1Jlc3VsdCI6WyJtYWNybyIsMV0sInZ0cF9pc0NoaW5hVmlwUmVnaW9uTWFjcm9SZXN1bHQiOlsibWFjcm8iLDJdLCJ0YWdfaWQiOjIxfSx7ImZ1bmN0aW9uIjoiX19vZ3RfZ29vZ2xlX3NpZ25hbHMiLCJwcmlvcml0eSI6MTQsInZ0cF9nb29nbGVTaWduYWxzIjoiRU5BQkxFRCIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZMTUZHSzQ1MEgiLCJ0YWdfaWQiOjIwfSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfcmVnc2NvcGUiLCJwcmlvcml0eSI6MTMsInZ0cF9zZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicmVkYWN0RmllbGRHcm91cCIsIkRFVklDRV9BTkRfR0VPIiwiZGlzYWxsb3dBbGxSZWdpb25zIixmYWxzZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLCIiXSxbIm1hcCIsInJlZGFjdEZpZWxkR3JvdXAiLCJHT09HTEVfU0lHTkFMUyIsImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIiwiIl1dLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidGFnX2lkIjoxOX0seyJmdW5jdGlvbiI6Il9fY2NkX2FkZF9lY3MiLCJwcmlvcml0eSI6MTIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZMTUZHSzQ1MEgiLCJ0YWdfaWQiOjE4fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZG93bmxvYWQiLCJwcmlvcml0eSI6MTEsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidGFnX2lkIjoxN30seyJmdW5jdGlvbiI6Il9fY2NkX2VtX291dGJvdW5kX2NsaWNrIiwicHJpb3JpdHkiOjEwLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MTZ9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9wYWdlX3ZpZXciLCJwcmlvcml0eSI6OSwidnRwX2hpc3RvcnlFdmVudHMiOnRydWUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidGFnX2lkIjoxNX0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3Njcm9sbCIsInByaW9yaXR5Ijo4LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MTR9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9zaXRlX3NlYXJjaCIsInByaW9yaXR5Ijo3LCJ2dHBfc2VhcmNoUXVlcnlQYXJhbXMiOiJxLHMsc2VhcmNoLHF1ZXJ5LGtleXdvcmQiLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MTN9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV92aWRlbyIsInByaW9yaXR5Ijo2LCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MTJ9LHsiZnVuY3Rpb24iOiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciLCJwcmlvcml0eSI6NSwidnRwX2NvbnZlcnNpb25SdWxlcyI6WyJsaXN0IixbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInB1cmNoYXNlXCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19Il0sWyJtYXAiLCJtYXRjaGluZ1J1bGVzIiwie1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJjbG9zZV9jb252ZXJ0X2xlYWRcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInF1YWxpZnlfbGVhZFwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5Ijo0LCJ2dHBfYWNjZXB0QXV0b21hdGljIjpmYWxzZSwidnRwX2FjY2VwdENvZGUiOnRydWUsInZ0cF9hY2NlcHRNYW51YWxTZWxlY3RvciI6dHJ1ZSwidnRwX2FjY2VwdFVzZXJEYXRhIjp0cnVlLCJ2dHBfbWF0Y2hpbmdSdWxlcyI6IntcInR5cGVcIjozLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjEsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImZvcm1fc3VibWl0XCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJwYWdlX3ZpZXdcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX19LHtcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wiYm9vbGVhblZhbHVlXCI6dHJ1ZX0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJpc19jb252ZXJzaW9uXCJdfX1dfX1dfX1dfSIsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZMTUZHSzQ1MEgiLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19jY2RfYWRkXzFwX2RhdGEiLCJwcmlvcml0eSI6MywidnRwX2FjY2VwdEF1dG9tYXRpYyI6dHJ1ZSwidnRwX2FjY2VwdENvZGUiOnRydWUsInZ0cF9hY2NlcHRNYW51YWxTZWxlY3RvciI6dHJ1ZSwidnRwX2FjY2VwdFVzZXJEYXRhIjp0cnVlLCJ2dHBfbWF0Y2hpbmdSdWxlcyI6IntcInR5cGVcIjoxLFwiYXJnc1wiOlt7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJmb3JtX3N1Ym1pdFwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfX0se1wiYm9vbGVhbkV4cHJlc3Npb25WYWx1ZVwiOntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwicGFnZV92aWV3XCJ9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJldmVudE5hbWVcIl19fV19fSx7XCJib29sZWFuRXhwcmVzc2lvblZhbHVlXCI6e1widHlwZVwiOjUsXCJhcmdzXCI6W3tcImJvb2xlYW5WYWx1ZVwiOnRydWV9LHtcImNvbnRleHRWYWx1ZVwiOntcIm5hbWVzcGFjZVR5cGVcIjoxLFwia2V5UGFydHNcIjpbXCJtZXRhZGF0YVwiLFwiaXNfY29udmVyc2lvblwiXX19XX19XX0iLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidGFnX2lkIjo5fSx7ImZ1bmN0aW9uIjoiX19jY2RfYXV0b19yZWRhY3QiLCJwcmlvcml0eSI6MiwidnRwX3JlZGFjdEVtYWlsIjpmYWxzZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctVkxNRkdLNDUwSCIsInRhZ19pZCI6OH0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2Fkc19saW5rIiwicHJpb3JpdHkiOjEsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLVZMTUZHSzQ1MEgiLCJ0YWdfaWQiOjd9LHsiZnVuY3Rpb24iOiJfX2djdCIsInZ0cF90cmFja2luZ0lkIjoiRy1WTE1GR0s0NTBIIiwidnRwX3Nlc3Npb25EdXJhdGlvbiI6MCwidGFnX2lkIjoxfSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfbGFzdCIsInByaW9yaXR5IjowLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1WTE1GR0s0NTBIIiwidGFnX2lkIjo2fV0sCiAgInByZWRpY2F0ZXMiOlt7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uanMifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uaW5pdCJ9XSwKICAicnVsZXMiOltbWyJpZiIsMF0sWyJhZGQiLDE3XV0sW1siaWYiLDFdLFsiYWRkIiwwLDE4LDE2LDE1LDE0LDEzLDEyLDExLDEwLDksOCw3LDYsNSw0LDMsMiwxXV1dCn0sCiJydW50aW1lIjpbIFs1MCwiX19jIixbNDYsImEiXSxbMzYsWzE3LFsxNSwiYSJdLCJ2YWx1ZSJdXV0KICxbNTAsIl9fY2NkX2FkZF8xcF9kYXRhIixbNDYsImEiXSxbNTAsInciLFs0NiwiYUIiXSxbMjIsWzMwLFsyMCxbMTUsImFCIl0sWzQ0XV0sWzIwLFsxNSwiYUIiXSxbNDVdXV0sWzQ2LFszNixbN11dXV0sWzIyLFsyMCxbImciLFsxNSwiYUIiXV0sImFycmF5Il0sWzQ2LFszNixbMTUsImFCIl1dXV0sWzM2LFs3LFsxNSwiYUIiXV1dXSxbNTAsIngiLFs0NiwiYUIiLCJhQyJdLFsyMixbMSxbMTUsImFCIl0sWzE2LFsxNSwiYUIiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzM4LFsxNixbMTUsImFCIl0sWzE1LCJtIl1dLFs0NixbMTUsIm8iXSxbMTUsInAiXV0sWzQ2LFs1LFs0NixbMzYsWzE1LCJsIl1dXV0sWzUsWzQ2LFszNixbMTUsImsiXV1dXSxbOSxbNDYsWzM2LFsxNSwiaiJdXV1dXV1dXV0sWzM2LFsxNSwiYUMiXV1dLFs1MCwieSIsWzQ2LCJhQiIsImFDIiwiYUQiXSxbMjIsWzE1LCJhQiJdLFs0NixbMzYsWyJ4IixbMTUsImFCIl0sWzE1LCJqIl1dXV1dLFsyMixbMTUsImFDIl0sWzQ2LFszNixbMTUsImsiXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbMzYsWzE1LCJsIl1dXV0sWzM2LFs0NF1dXSxbNTAsInoiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsyOCxbMTUsImFDIl1dLFs0NixbMzYsZmFsc2VdXV0sWzQxLCJhRSJdLFszLCJhRSIsZmFsc2VdLFs1MiwiYUYiLFsieCIsWzE1LCJhQyJdLFsxNSwiYUQiXV1dLFs2NSwiYUciLFsyLFsxNSwiZiJdLCJrZXlzIixbNyxbMTUsImFDIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRyJdLFsxNSwibiJdXSxbNDYsWzZdXV0sWzUyLCJhSCIsWyJ3IixbMTYsWzE1LCJhQyJdLFsxNSwiYUciXV1dXSxbNTIsImFJIixbMSxbMTYsWzE1LCJhQyJdLFsxNSwibiJdXSxbMTYsWzE2LFsxNSwiYUMiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXV1dLFs1MiwiYUoiLFsidyIsWzE1LCJhSSJdXV0sWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFIIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbMTYsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzZdXV0sWzQzLFsxNSwiYUIiXSxbMTUsImFHIl0sWzMwLFsxNixbMTUsImFCIl0sWzE1LCJhRyJdXSxbN11dXSxbNDMsWzE1LCJhQiJdLFsxNSwibiJdLFszMCxbMTYsWzE1LCJhQiJdLFsxNSwibiJdXSxbOF1dXSxbNDMsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdLFszMCxbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSxbN11dXSxbNTIsImFNIixbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sImluZGV4T2YiLFs3LFsxNSwiYUwiXV1dXSxbMjIsWzIxLFsxNSwiYU0iXSxbMjcsMV1dLFs0NixbNl1dXSxbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sInB1c2giLFs3LFsxNSwiYUwiXV1dLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzgsIm1vZGUiLFsxNSwiYUYiXV1dXSxbMixbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSwicHVzaCIsWzcsWzE1LCJhTiJdXV0sWzMsImFFIix0cnVlXV1dXV1dXV0sWzM2LFsxNSwiYUUiXV1dLFs1MCwiYUEiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsxLFsxLFsyOCxbMTUsImFCIl1dLFsyOCxbMTUsImFDIl1dXSxbMjgsWzE1LCJhRCJdXV0sWzQ2LFs1MyxbMzYsWzgsInVzZXJEYXRhIixbNDRdLCJkaWRCbGVuZCIsZmFsc2VdXV1dXSxbNTIsImFFIixbOF1dLFs1MiwiYUYiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUIiXSxbMTUsImoiXV1dLFs1MiwiYUciLFsieiIsWzE1LCJhRSJdLFsxNSwiYUMiXSxbMTUsImsiXV1dLFs1MiwiYUgiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUQiXSxbMTUsImwiXV1dLFsyMixbMSxbMSxbMjgsWzE1LCJhRiJdXSxbMjgsWzE1LCJhRyJdXV0sWzI4LFsxNSwiYUgiXV1dLFs0NixbNTMsWzM2LFs4LCJ1c2VyRGF0YSIsWzQ0XSwiZGlkQmxlbmQiLGZhbHNlXV1dXV0sWzUyLCJhSSIsWzE5LFswLFswLFszOSxbMTUsImFGIl0sMSwwXSxbMzksWzE1LCJhRyJdLDEsMF1dLFszOSxbMTUsImFIIl0sMSwwXV0sMl1dLFszNixbOCwidXNlckRhdGEiLFsxNSwiYUUiXSwiZGlkQmxlbmQiLFsxNSwiYUkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50cmFja1VzYWdlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyJdXSxbNTIsImoiLCJjIl0sWzUyLCJrIiwibSJdLFs1MiwibCIsImEiXSxbNTIsIm0iLCJfdGFnX21vZGUiXSxbNTIsIm4iLCJfdGFnX21ldGFkYXRhIl0sWzUyLCJvIiwiQVVUTyJdLFs1MiwicCIsIk1BTlVBTCJdLFs1MiwicSIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsInIiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbInEiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFsicyIsWzE1LCJyIl0sImNjZF9hZGRfMXBfZGF0YSIsdHJ1ZV0sWzIyLFszMCxbMzAsWzI4LFsxNyxbMTUsImEiXSwibWF0Y2hpbmdSdWxlcyJdXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRVc2VyRGF0YSJdXV0sWzEsWzEsWzI4LFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl1dLFsyOCxbMTcsWzE1LCJhIl0sImFjY2VwdE1hbnVhbFNlbGVjdG9yIl1dXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRDb2RlIl1dXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwidSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsInYiLFs1MSwiIixbNywiYUIiXSxbMjIsWzI4LFsidSIsWzE3LFsxNSwiYSJdLCJtYXRjaGluZ1J1bGVzIl0sWzgsInByZUhpdCIsWzE1LCJhQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJCTyJdXV0sWzQ2LFs1MyxbMixbMTUsImFCIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNOIl0sdHJ1ZV1dLFszNl1dXV0sWzQxLCJhQyJdLFs0MSwiYUQiXSxbNTIsImFFIixbImQiLFsxNyxbMTUsImUiXSwiQ0siXV1dLFs1MiwiYUYiLFsxLFsxNSwiciJdLFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dLFs1MiwiYUciLFsxLFsxNSwiYUUiXSxbMTUsImFGIl1dXSxbMjIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhSCIsWzM5LFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1oiXV1dLFs0NF1dXSxbNTIsImFJIixbMzksWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiREEiXV1dLFs0NF1dXSxbNDEsImFKIl0sWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl0sWzQ2LFs1MyxbNTIsImFMIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNZIl1dXV0sWzIyLFsxNSwiYUwiXSxbNDYsWzUzLFszLCJhSiIsWyJhTCIsWzE1LCJhQiJdXV1dXV1dXV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyMCxbMTUsImFIIl0sWzQ1XV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFLIixbImFBIixbMTUsImFIIl0sWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFszLCJhRCIsWzE3LFsxNSwiYUsiXSwidXNlckRhdGEiXV0sWzIyLFsxNyxbMTUsImFLIl0sImRpZEJsZW5kIl0sWzQ2LFs1MyxbImgiLCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsWzE3LFsxNSwiaSJdLCJBRSJdXV1dXSxbMywiYUMiLFsieSIsWzE1LCJhSCJdLFsxNSwiYUkiXSxbMTUsImFKIl1dXV1dLFs0NixbNTMsWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFs0NixbNTMsWzMsImFEIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNaIl1dXV0sWzIyLFsyMCxbMTUsImFEIl0sWzQ1XV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJhQyIsWyJ4IixbMTUsImFEIl0sWzE1LCJqIl1dXV1dXSxbMjIsWzEsWzI4LFsxNSwiYUQiXV0sWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdXSxbNDYsWzUzLFszLCJhRCIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJEQSJdXV1dLFszLCJhQyIsWzE1LCJrIl1dXV1dLFsyMixbMSxbMjgsWzE1LCJhRCJdXSxbMTcsWzE1LCJhIl0sImFjY2VwdEF1dG9tYXRpYyJdXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1kiXV1dXSxbMjIsWzE1LCJhSCJdLFs0NixbNTMsWzMsImFEIixbImFIIixbMTUsImFCIl1dXSxbMywiYUMiLFsxNSwibCJdXV1dXV1dXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbNTMsWzIsWzE1LCJhQiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDVyJdLFsxNSwiYUQiXV1dLFsyLFsxNSwiYUIiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKUCJdLFsxNSwiYUMiXV1dXV1dLFsyLFsxNSwiYUIiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ04iXSx0cnVlXV1dXSxbInQiLFsxNSwiciJdLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRkX2VjcyIsWzQ2LCJhIl0sWzUyLCJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbImMiLFsxNSwiYiJdLCJjY2RfYWRkX2VjX3N0aXRjaGluZyIsdHJ1ZV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2F1dG9fcmVkYWN0IixbNDYsImEiXSxbNTAsInYiLFs0NiwiYUYiXSxbMzYsWzIsWzE1LCJhRiJdLCJyZXBsYWNlIixbNyxbMTUsInUiXSwiXFwkMSJdXV1dLFs1MCwidyIsWzQ2LCJhRiJdLFs1MiwiYUciLFszMCxbImMiLFsxNSwiYUYiXV0sWzE1LCJhRiJdXV0sWzUyLCJhSCIsWzddXSxbNjUsImFJIixbMixbMTUsImFHIl0sInNwbGl0IixbNywiIl1dLFs0NixbNTMsWzUyLCJhSiIsWzcsWyJ2IixbMTUsImFJIl1dXV0sWzUyLCJhSyIsWyJkIixbMTUsImFJIl1dXSxbMjIsWzEyLFsxNSwiYUsiXSxbNDVdXSxbNDYsWzUzLFszNixbImQiLFsidiIsWzE1LCJhRiJdXV1dXV1dLFsyMixbMjEsWzE1LCJhSyJdLFsxNSwiYUkiXV0sWzQ2LFs1MyxbMixbMTUsImFKIl0sInB1c2giLFs3LFsxNSwiYUsiXV1dLFsyMixbMjEsWzE1LCJhSSJdLFsyLFsxNSwiYUkiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFs0NixbNTMsWzIsWzE1LCJhSiJdLCJwdXNoIixbNyxbImQiLFsyLFsxNSwiYUkiXSwidG9Mb3dlckNhc2UiLFs3XV1dXV1dXSxbNDYsWzIyLFsyMSxbMTUsImFJIl0sWzIsWzE1LCJhSSJdLCJ0b1VwcGVyQ2FzZSIsWzddXV0sWzQ2LFs1MyxbMixbMTUsImFKIl0sInB1c2giLFs3LFsiZCIsWzIsWzE1LCJhSSJdLCJ0b1VwcGVyQ2FzZSIsWzddXV1dXV1dXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYUoiXSwibGVuZ3RoIl0sMV0sWzQ2LFs1MyxbMixbMTUsImFIIl0sInB1c2giLFs3LFswLFswLCIoPzoiLFsyLFsxNSwiYUoiXSwiam9pbiIsWzcsInwiXV1dLCIpIl1dXV1dLFs0NixbNTMsWzIsWzE1LCJhSCJdLCJwdXNoIixbNyxbMTYsWzE1LCJhSiJdLDBdXV1dXV1dXV0sWzM2LFsyLFsxNSwiYUgiXSwiam9pbiIsWzcsIiJdXV1dLFs1MCwieCIsWzQ2LCJhRiIsImFHIiwiYUgiXSxbNTIsImFJIixbInoiLFsxNSwiYUYiXSxbMTUsImFIIl1dXSxbMjIsWzI4LFsxNSwiYUkiXV0sWzQ2LFszNixbMTUsImFGIl1dXV0sWzIyLFsyOCxbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzQ2LFszNixbMTUsImFGIl1dXV0sWzQxLCJhSiJdLFszLCJhSiIsWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs2NSwiYUsiLFsxNSwiYUciXSxbNDYsWzUzLFs1MiwiYUwiLFs3LFsidiIsWzE1LCJhSyJdXSxbInciLFsxNSwiYUsiXV1dXSxbNjUsImFNIixbMTUsImFMIl0sWzQ2LFs1MyxbNTIsImFOIixbMzAsWzE2LFsxNSwidCJdLFsxNSwiYU0iXV0sWzQzLFsxNSwidCJdLFsxNSwiYU0iXSxbImIiLFswLFswLCIoWz8mXSIsWzE1LCJhTSJdXSwiPSkoW14mXSopIl0sImdpIl1dXV0sWzMsImFKIixbMixbMTUsImFKIl0sInJlcGxhY2UiLFs3LFsxNSwiYU4iXSxbMCwiJDEiLFsxNSwiciJdXV1dXV1dXV1dXSxbMjIsWzIwLFsxNSwiYUoiXSxbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzQ2LFszNixbMTUsImFGIl1dXV0sWzIyLFsyMCxbMTYsWzE1LCJhSiJdLDBdLCImIl0sWzQ2LFszLCJhSiIsWzIsWzE1LCJhSiJdLCJzdWJzdHJpbmciLFs3LDFdXV1dXSxbMjIsWzIxLFsxNixbMTUsImFKIl0sMF0sIj8iXSxbNDYsWzMsImFKIixbMCwiPyIsWzE1LCJhSiJdXV1dXSxbMjIsWzIwLFsxNSwiYUoiXSwiPyJdLFs0NixbMywiYUoiLCIiXV1dLFs0MyxbMTUsImFJIl0sInNlYXJjaCIsWzE1LCJhSiJdXSxbMzYsWyJhQSIsWzE1LCJhSSJdLFsxNSwiYUgiXV1dXSxbNTAsInoiLFs0NiwiYUYiLCJhRyJdLFsyMixbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiUEFUSCJdXSxbNDYsWzUzLFszLCJhRiIsWzAsWzE1LCJ5Il0sWzE1LCJhRiJdXV1dXV0sWzM2LFsiZiIsWzE1LCJhRiJdXV1dLFs1MCwiYUEiLFs0NiwiYUYiLCJhRyJdLFs0MSwiYUgiXSxbMywiYUgiLCIiXSxbMjIsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlVSTCJdXSxbNDYsWzUzLFs0MSwiYUkiXSxbMywiYUkiLCIiXSxbMjIsWzMwLFsxNyxbMTUsImFGIl0sInVzZXJuYW1lIl0sWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXV0sWzQ2LFs1MyxbMywiYUkiLFswLFsxNSwiYUkiXSxbMCxbMCxbMCxbMTcsWzE1LCJhRiJdLCJ1c2VybmFtZSJdLFszOSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdLCI6IiwiIl1dLFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl1dLCJAIl1dXV1dXSxbMywiYUgiLFswLFswLFswLFsxNyxbMTUsImFGIl0sInByb3RvY29sIl0sIi8vIl0sWzE1LCJhSSJdXSxbMTcsWzE1LCJhRiJdLCJob3N0Il1dXV1dXSxbMzYsWzAsWzAsWzAsWzE1LCJhSCJdLFsxNyxbMTUsImFGIl0sInBhdGhuYW1lIl1dLFsxNyxbMTUsImFGIl0sInNlYXJjaCJdXSxbMTcsWzE1LCJhRiJdLCJoYXNoIl1dXV0sWzUwLCJhQiIsWzQ2LCJhRiIsImFHIl0sWzQxLCJhSCJdLFszLCJhSCIsWzIsWzE1LCJhRiJdLCJyZXBsYWNlIixbNyxbMTUsIm4iXSxbMTUsInIiXV1dXSxbMjIsWzMwLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJVUkwiXV0sWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlBBVEgiXV1dLFs0NixbNTMsWzUyLCJhSSIsWyJ6IixbMTUsImFIIl0sWzE1LCJhRyJdXV0sWzIyLFsyMCxbMTUsImFJIl0sWzQ0XV0sWzQ2LFszNixbMTUsImFIIl1dXV0sWzUyLCJhSiIsWzE3LFsxNSwiYUkiXSwic2VhcmNoIl1dLFs1MiwiYUsiLFsyLFsxNSwiYUoiXSwicmVwbGFjZSIsWzcsWzE1LCJvIl0sWzE1LCJyIl1dXV0sWzIyLFsyMCxbMTUsImFKIl0sWzE1LCJhSyJdXSxbNDYsWzM2LFsxNSwiYUgiXV1dXSxbNDMsWzE1LCJhSSJdLCJzZWFyY2giLFsxNSwiYUsiXV0sWzMsImFIIixbImFBIixbMTUsImFJIl0sWzE1LCJhRyJdXV1dXV0sWzM2LFsxNSwiYUgiXV1dLFs1MCwiYUMiLFs0NiwiYUYiXSxbMjIsWzIwLFsxNSwiYUYiXSxbMTUsInEiXV0sWzQ2LFs1MyxbMzYsWzE3LFsxNSwicyJdLCJQQVRIIl1dXV0sWzQ2LFsyMixbMjEsWzIsWzE1LCJwIl0sImluZGV4T2YiLFs3LFsxNSwiYUYiXV1dLFsyNywxXV0sWzQ2LFs1MyxbMzYsWzE3LFsxNSwicyJdLCJVUkwiXV1dXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlRFWFQiXV1dXV1dXV0sWzUwLCJhRCIsWzQ2LCJhRiIsImFHIl0sWzQxLCJhSCJdLFszLCJhSCIsZmFsc2VdLFs1MiwiYUkiLFsiZSIsWzE1LCJhRiJdXV0sWzM4LFsxNSwiYUkiXSxbNDYsInN0cmluZyIsImFycmF5Iiwib2JqZWN0Il0sWzQ2LFs1LFs0NixbNTIsImFKIixbImFCIixbMTUsImFGIl0sWzE1LCJhRyJdXV0sWzIyLFsyMSxbMTUsImFGIl0sWzE1LCJhSiJdXSxbNDYsWzUzLFszNixbMTUsImFKIl1dXV1dLFs0XV1dLFs1LFs0NixbNTMsWzQxLCJhSyJdLFszLCJhSyIsMF0sWzYzLFs3LCJhSyJdLFsyMyxbMTUsImFLIl0sWzE3LFsxNSwiYUYiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFLIl0sWzMsImFLIixbMCxbMTUsImFLIl0sMV1dXSxbNDYsWzUzLFs1MiwiYUwiLFsiYUQiLFsxNixbMTUsImFGIl0sWzE1LCJhSyJdXSxbMTcsWzE1LCJzIl0sIlRFWFQiXV1dLFsyMixbMjEsWzE1LCJhTCJdLFs0NF1dLFs0NixbNTMsWzQzLFsxNSwiYUYiXSxbMTUsImFLIl0sWzE1LCJhTCJdXSxbMywiYUgiLHRydWVdXV1dXV1dXSxbNF1dXSxbNSxbNDYsWzU0LCJhSyIsWzE1LCJhRiJdLFs0NixbNTMsWzUyLCJhTCIsWyJhRCIsWzE2LFsxNSwiYUYiXSxbMTUsImFLIl1dLFsxNyxbMTUsInMiXSwiVEVYVCJdXV0sWzIyLFsyMSxbMTUsImFMIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJhRiJdLFsxNSwiYUsiXSxbMTUsImFMIl1dLFszLCJhSCIsdHJ1ZV1dXV1dXV0sWzRdXV1dXSxbMzYsWzM5LFsxNSwiYUgiXSxbMTUsImFGIl0sWzQ0XV1dXSxbNTAsImFFIixbNDYsImFGIiwiYUciXSxbNTIsImFIIixbMzAsWzIsWzE1LCJhRiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJBQyJdXV0sWzddXV0sWzIyLFsyMCxbMixbMTUsImFIIl0sImluZGV4T2YiLFs3LFsxNSwiYUciXV1dLFsyNywxXV0sWzQ2LFs1MyxbMixbMTUsImFIIl0sInB1c2giLFs3LFsxNSwiYUciXV1dXV1dLFsyLFsxNSwiYUYiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXSxbMTUsImFIIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jcmVhdGVSZWdleCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImRlY29kZVVyaUNvbXBvbmVudCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImVuY29kZVVyaUNvbXBvbmVudCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzUyLCJrIixbMTcsWzE1LCJhIl0sInJlZGFjdEVtYWlsIl1dLFs1MiwibCIsWzE3LFsxNSwiYSJdLCJyZWRhY3RRdWVyeVBhcmFtcyJdXSxbNTIsIm0iLFszOSxbMTUsImwiXSxbMixbMTUsImwiXSwic3BsaXQiLFs3LCIsIl1dLFs3XV1dLFsyMixbMSxbMjgsWzE3LFsxNSwibSJdLCJsZW5ndGgiXV0sWzI4LFsxNSwiayJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJuIixbImIiLCJbQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1xcLltBLVpdezIsfSIsImdpIl1dLFs1MiwibyIsWyJiIixbMCwiKFtBLVowLTkuXy1dfCUyNXwlMkIpKyU0MFtBLVowLTkuLV0iLCIrXFwuW0EtWl17Mix9Il0sImdpIl1dLFs1MiwicCIsWzcsInBhZ2VfbG9jYXRpb24iLCJwYWdlX3JlZmVycmVyIiwicGFnZV9wYXRoIiwibGlua191cmwiLCJ2aWRlb191cmwiLCJmb3JtX2Rlc3RpbmF0aW9uIl1dLFs1MiwicSIsInBhZ2VfcGF0aCJdLFs1MiwiciIsIihyZWRhY3RlZCkiXSxbNTIsInMiLFs4LCJURVhUIiwwLCJVUkwiLDEsIlBBVEgiLDJdXSxbNTIsInQiLFs4XV0sWzUyLCJ1IixbImIiLCIoW1xcXFxeJC58PyorKCl7fV18XFxbfFxcWykiLCJnIl1dLFs1MiwieSIsImh0dHA6Ly8uIl0sWyJnIixbMTUsImoiXSxbNTEsIiIsWzcsImFGIl0sWzIyLFsxNSwiayJdLFs0NixbNTMsWzUyLCJhRyIsWzIsWzE1LCJhRiJdLCJnZXRIaXRLZXlzIixbN11dXSxbNjUsImFIIixbMTUsImFHIl0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwiYUgiXSwiX3NzdF9wYXJhbWV0ZXJzIl0sWzQ2LFs2XV1dLFs1MiwiYUkiLFsyLFsxNSwiYUYiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhSCJdXV1dLFsyMixbMjgsWzE1LCJhSSJdXSxbNDYsWzZdXV0sWzUyLCJhSiIsWyJhQyIsWzE1LCJhSCJdXV0sWzUyLCJhSyIsWyJhRCIsWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFsyMixbMjEsWzE1LCJhSyJdLFs0NF1dLFs0NixbNTMsWzIsWzE1LCJhRiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFIIl0sWzE1LCJhSyJdXV0sWyJhRSIsWzE1LCJhRiJdLFszOSxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJPIl1dXSxbMTcsWzE1LCJpIl0sIlciXSxbMTcsWzE1LCJpIl0sIk8iXV1dXV1dXV1dXV1dLFsyMixbMTcsWzE1LCJtIl0sImxlbmd0aCJdLFs0NixbNTMsWzY1LCJhRyIsWzE1LCJwIl0sWzQ2LFs1MyxbNTIsImFIIixbMixbMTUsImFGIl0sImdldEhpdERhdGEiLFs3LFsxNSwiYUciXV1dXSxbMjIsWzI4LFsxNSwiYUgiXV0sWzQ2LFs2XV1dLFs1MiwiYUkiLFszOSxbMjAsWzE1LCJhRyJdLFsxNSwicSJdXSxbMTcsWzE1LCJzIl0sIlBBVEgiXSxbMTcsWzE1LCJzIl0sIlVSTCJdXV0sWzUyLCJhSiIsWyJ4IixbMTUsImFIIl0sWzE1LCJtIl0sWzE1LCJhSSJdXV0sWzIyLFsyMSxbMTUsImFKIl0sWzE1LCJhSCJdXSxbNDYsWzUzLFsyLFsxNSwiYUYiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhRyJdLFsxNSwiYUoiXV1dLFsiYUUiLFsxNSwiYUYiXSxbMzksWzIsWzE1LCJhRiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCTyJdXV0sWzE3LFsxNSwiaSJdLCJYIl0sWzE3LFsxNSwiaSJdLCJQIl1dXV1dXV1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciLFs0NiwiYSJdLFsyMixbMzAsWzI4LFsxNyxbMTUsImEiXSwiY29udmVyc2lvblJ1bGVzIl1dLFsyMCxbMTcsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weVByZUhpdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLCJmaXJzdF92aXNpdCJdLFs1MiwiZyIsInNlc3Npb25fc3RhcnQiXSxbNDEsImgiXSxbNDEsImkiXSxbImQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzUxLCIiLFs3LCJqIl0sWzUyLCJrIixbOCwicHJlSGl0IixbMTUsImoiXV1dLFsyLFsxNSwiaiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJQIl0sdHJ1ZV1dLFs2NSwibCIsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXSxbNDYsWzUzLFsyMixbImMiLFsxNyxbMTUsImwiXSwibWF0Y2hpbmdSdWxlcyJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwiaiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJBViJdLHRydWVdXSxbNF1dXV1dXV0sWzIyLFsyLFsxNSwiaiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJBWiJdXV0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiaCJdXSxbNDYsWzUzLFs1MiwibCIsWyJiIixbMTUsImoiXSxbOCwib21pdEhpdERhdGEiLHRydWUsIm9taXRNZXRhZGF0YSIsdHJ1ZV1dXSxbMixbMTUsImwiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsImYiXV1dLFszLCJoIixbOCwicHJlSGl0IixbMTUsImwiXV1dXV1dLFs2NSwibCIsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXSxbNDYsWzUzLFsyMixbImMiLFsxNyxbMTUsImwiXSwibWF0Y2hpbmdSdWxlcyJdLFsxNSwiaCJdXSxbNDYsWzUzLFsyLFsxNSwiaiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCQSJdLHRydWVdXSxbNF1dXV1dXV1dXV0sWzIyLFsyLFsxNSwiaiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCTCJdXV0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiaSJdXSxbNDYsWzUzLFs1MiwibCIsWyJiIixbMTUsImoiXSxbOCwib21pdEhpdERhdGEiLHRydWUsIm9taXRNZXRhZGF0YSIsdHJ1ZV1dXSxbMixbMTUsImwiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsImciXV1dLFszLCJpIixbOCwicHJlSGl0IixbMTUsImwiXV1dXV1dLFs2NSwibCIsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXSxbNDYsWzUzLFsyMixbImMiLFsxNyxbMTUsImwiXSwibWF0Y2hpbmdSdWxlcyJdLFsxNSwiaSJdXSxbNDYsWzUzLFsyLFsxNSwiaiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCTSJdLHRydWVdXSxbNF1dXV1dXV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dCiAsWzUwLCJfX2NjZF9lbV9kb3dubG9hZCIsWzQ2LCJhIl0sWzUwLCJxIixbNDYsInYiXSxbMzYsWzEsWzE1LCJ2Il0sWzIxLFsyLFsyLFsxNSwidiJdLCJ0b0xvd2VyQ2FzZSIsWzddXSwibWF0Y2giLFs3LFsxNSwicCJdXV0sWzQ1XV1dXV0sWzUwLCJyIixbNDYsInYiXSxbNTIsInciLFsyLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSwic3BsaXQiLFs3LCIuIl1dXSxbNTIsIngiLFszOSxbMTgsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSwxXSxbMTYsWzE1LCJ3Il0sWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sMV1dLCIiXV0sWzM2LFsxNixbMixbMTUsIngiXSwic3BsaXQiLFs3LCIvIl1dLDBdXV0sWzUwLCJzIixbNDYsInYiXSxbMzYsWzM5LFsxMixbMixbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl0sInN1YnN0cmluZyIsWzcsMCwxXV0sIi8iXSxbMTcsWzE1LCJ2Il0sInBhdGhuYW1lIl0sWzAsIi8iLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXV1dXV0sWzUwLCJ0IixbNDYsInYiXSxbNDEsInciXSxbMywidyIsIiJdLFsyMixbMSxbMTUsInYiXSxbMTcsWzE1LCJ2Il0sImhyZWYiXV0sWzQ2LFs1MyxbNDEsIngiXSxbMywieCIsWzIsWzE3LFsxNSwidiJdLCJocmVmIl0sImluZGV4T2YiLFs3LCIjIl1dXSxbMywidyIsWzM5LFsyMyxbMTUsIngiXSwwXSxbMTcsWzE1LCJ2Il0sImhyZWYiXSxbMixbMTcsWzE1LCJ2Il0sImhyZWYiXSwic3Vic3RyaW5nIixbNywwLFsxNSwieCJdXV1dXV1dXSxbMzYsWzE1LCJ3Il1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtRG93bmxvYWRBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiQSJdXSxbNTIsImciLCJmaWxlX2Rvd25sb2FkIl0sWzUyLCJoIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJpIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImgiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJuIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwibyIsWzIsWzE1LCJsIl0sIkEiLFs3LCJkb3dubG9hZCJdXV0sWzUyLCJwIixbMCwiXihwZGZ8eGxzeD98ZG9jeD98dHh0fHJ0Znxjc3Z8ZXhlfGtleXxwcChzfHR8dHgpfDd6fHBrZ3xyYXJ8Z3p8emlwfGF2aXwiLCJtb3Z8bXA0fG1wZT9nfHdtdnxtaWRpP3xtcDN8d2F2fHdtYSkkIl1dLFs1MiwidSIsWyJrIixbOCwiY2hlY2tWYWxpZGF0aW9uIix0cnVlXV1dLFsyMixbMjgsWzE1LCJ1Il1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImgiXSx0cnVlXV0sWyJqIiwiZ3RtLmxpbmtDbGljayIsWzUxLCIiLFs3LCJ2IiwidyJdLFsidyJdLFs1MiwieCIsWzgsImV2ZW50SWQiLFsxNixbMTUsInYiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFs1MiwieSIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudFVybCJdXSxbNTIsInoiLFsibSIsWzE1LCJ5Il1dXSxbMjIsWzI4LFsxNSwieiJdXSxbNDYsWzM2XV1dLFs1MiwiYUEiLFsiciIsWzE1LCJ6Il1dXSxbMjIsWzI4LFsicSIsWzE1LCJhQSJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwiYUIiLFs4LCJsaW5rX2lkIixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50SWQiXSwibGlua191cmwiLFsidCIsWzE1LCJ6Il1dLCJsaW5rX3RleHQiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRUZXh0Il0sImZpbGVfbmFtZSIsWyJzIixbMTUsInoiXV0sImZpbGVfZXh0ZW5zaW9uIixbMTUsImFBIl1dXSxbMixbMTUsImwiXSwiQiIsWzcsWzE1LCJ4Il1dXSxbIm4iLFsxNSwibyJdLFsxNSwiZyJdLFsxNSwiYUIiXSxbMTUsIngiXV1dLFsxNSwidSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixbNDRdXV1dLFs0MSwieCJdLFszLCJ4IiwiIl0sWzIyLFsxLFsxNSwidyJdLFsxNyxbMTUsInciXSwiaHJlZiJdXSxbNDYsWzUzLFs0MSwieSJdLFszLCJ5IixbMixbMTcsWzE1LCJ3Il0sImhyZWYiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFszLCJ4IixbMzksWzIzLFsxNSwieSJdLDBdLFsxNyxbMTUsInciXSwiaHJlZiJdLFsyLFsxNyxbMTUsInciXSwiaHJlZiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ5Il1dXV1dXV1dLFszNixbMTUsIngiXV1dLFs1MCwicyIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixbNDRdXV1dLFs0MSwieCJdLFszLCJ4IixbMTcsWzE1LCJ3Il0sImhvc3RuYW1lIl1dLFs1MiwieSIsWzIsWzE1LCJ4Il0sIm1hdGNoIixbNywiXnd3d1xcZCpcXC4iXV1dLFsyMixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sMF1dLFs0NixbMywieCIsWzIsWzE1LCJ4Il0sInN1YnN0cmluZyIsWzcsWzE3LFsxNixbMTUsInkiXSwwXSwibGVuZ3RoIl1dXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNTAsInQiLFs0NiwidyJdLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsZmFsc2VdXV0sWzUyLCJ4IixbMixbMTcsWzE1LCJ3Il0sImhvc3RuYW1lIl0sInRvTG93ZXJDYXNlIixbN11dXSxbMjIsWzI4LFsxNSwieCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzQxLCJ5Il0sWzMsInkiLFsyLFsicyIsWyJvIixbIm4iXV1dLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzQxLCJ6Il0sWzMsInoiLFszNyxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdLFsxNyxbMTUsInkiXSwibGVuZ3RoIl1dXSxbMjIsWzEsWzE4LFsxNSwieiJdLDBdLFsyOSxbMixbMTUsInkiXSwiY2hhckF0IixbNywwXV0sIi4iXV0sWzQ2LFs1MyxbMzIsWzE1LCJ6Il0sWzMsInoiLFszNyxbMTUsInoiXSwxXV1dLFszLCJ5IixbMCwiLiIsWzE1LCJ5Il1dXV1dXSxbMjIsWzEsWzE5LFsxNSwieiJdLDBdLFsxMixbMixbMTUsIngiXSwiaW5kZXhPZiIsWzcsWzE1LCJ5Il0sWzE1LCJ6Il1dXSxbMTUsInoiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMzYsdHJ1ZV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1PdXRib3VuZENsaWNrQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkQiXV0sWzUyLCJnIiwiY2xpY2siXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJuIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJvIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsInAiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJxIixbMixbMTUsImwiXSwiQSIsWzcsIm91dGJvdW5kX2NsaWNrIl1dXSxbNTIsInUiLFsibSIsWzE1LCJpIl0sImNyb3NzX2RvbWFpbl9jb25kaXRpb25zIl1dLFs1MiwidiIsWyJrIixbOCwiYWZmaWxpYXRlRG9tYWlucyIsWzE1LCJ1Il0sImNoZWNrVmFsaWRhdGlvbiIsdHJ1ZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJ2Il1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImgiXSx0cnVlXV0sWyJqIiwiZ3RtLmxpbmtDbGljayIsWzUxLCIiLFs3LCJ3IiwieCJdLFs1MiwieSIsWyJvIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50VXJsIl1dXSxbMjIsWzI4LFsidCIsWzE1LCJ5Il1dXSxbNDYsWzUzLFsieCJdLFszNl1dXV0sWzUyLCJ6IixbOCwibGlua19pZCIsWzE2LFsxNSwidyJdLCJndG0uZWxlbWVudElkIl0sImxpbmtfY2xhc3NlcyIsWzE2LFsxNSwidyJdLCJndG0uZWxlbWVudENsYXNzZXMiXSwibGlua191cmwiLFsiciIsWzE1LCJ5Il1dLCJsaW5rX2RvbWFpbiIsWyJzIixbMTUsInkiXV0sIm91dGJvdW5kIix0cnVlXV0sWzQzLFsxNSwieiJdLCJldmVudF9jYWxsYmFjayIsWzE1LCJ4Il1dLFs1MiwiYUEiLFs4LCJldmVudElkIixbMTYsWzE1LCJ3Il0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbMixbMTUsImwiXSwiQiIsWzcsWzE1LCJhQSJdXV0sWyJwIixbMTUsInEiXSxbMTUsImciXSxbMTUsInoiXSxbMTUsImFBIl1dXSxbMTUsInYiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3BhZ2VfdmlldyIsWzQ2LCJhIl0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImhpc3RvcnlFdmVudHMiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJnIixbMTcsWzE1LCJmIl0sIkMiXV0sWzUyLCJoIiwicGFnZV92aWV3Il0sWzUyLCJpIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImoiXSxbMTUsImciXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaiJdXV0sWzIyLFsyLFsxNSwiZCJdLCJnZXRJdGVtIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsIm0iXSwiQSIsWzcsInBhZ2VfdmlldyJdXV0sWzUyLCJwIixbOCwiaW50ZXJ2YWwiLDEwMDAsInVzZVYyRXZlbnROYW1lIix0cnVlXV0sWzUyLCJxIixbImwiLFsxNSwicCJdXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJkIl0sInNldEl0ZW0iLFs3LFsxNSwiaSJdLHRydWVdXSxbImsiLCJndG0uaGlzdG9yeUNoYW5nZS12MiIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0ub2xkVXJsIl1dLFsyMixbMjAsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl0sWzE1LCJ0Il1dLFs0NixbMzZdXV0sWzUyLCJ1IixbMTYsWzE1LCJyIl0sImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIl1dLFsyMixbMSxbMSxbMjEsWzE1LCJ1Il0sInB1c2hTdGF0ZSJdLFsyMSxbMTUsInUiXSwicG9wc3RhdGUiXV0sWzIxLFsxNSwidSJdLCJyZXBsYWNlU3RhdGUiXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInBhZ2VfbG9jYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdXSxbNDMsWzE1LCJ2Il0sInBhZ2VfcmVmZXJyZXIiLFsxNSwidCJdXV1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbMjIsWzIxLFsxNyxbMTUsImEiXSwiZGVmZXJQYWdlVmlldyJdLGZhbHNlXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dXV0sWzIsWzE1LCJtIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImgiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2Nyb2xsIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtU2Nyb2xsQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkUiXV0sWzUyLCJnIiwic2Nyb2xsIl0sWzUyLCJoIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJpIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImgiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm4iLFsyLFsxNSwibCJdLCJBIixbNywic2Nyb2xsIl1dXSxbNTIsIm8iLFsiayIsWzgsInZlcnRpY2FsVGhyZXNob2xkVW5pdHMiLCJQRVJDRU5UIiwidmVydGljYWxUaHJlc2hvbGRzIiw5MF1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5zY3JvbGxEZXB0aCIsWzUxLCIiLFs3LCJwIiwicSJdLFsicSJdLFs1MiwiciIsWzgsImV2ZW50SWQiLFsxNixbMTUsInAiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFs1MiwicyIsWzgsInBlcmNlbnRfc2Nyb2xsZWQiLFsxNixbMTUsInAiXSwiZ3RtLnNjcm9sbFRocmVzaG9sZCJdXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwiciJdXV0sWyJtIixbMTUsIm4iXSxbMTUsImciXSxbMTUsInMiXSxbMTUsInIiXV1dLFsxNSwibyJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2l0ZV9zZWFyY2giLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiZ2V0UXVlcnlQYXJhbWV0ZXJzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldENvbnRhaW5lclZlcnNpb24iXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2NjZEVtU2l0ZVNlYXJjaEFjdGl2aXR5Il1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sIkEiLFs3LFsxNyxbMTUsImEiXSwic2VhcmNoUXVlcnlQYXJhbXMiXSxbMTUsImIiXV1dXSxbNTIsImoiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImQiXSwiY29udGFpbmVySWQiXV1dLFs1MiwiayIsWzgsImRlZmVycmFibGUiLHRydWUsImV2ZW50SWQiLFsxNyxbMTUsImEiXSwiZ3RtRXZlbnRJZCJdLCJldmVudE1ldGFkYXRhIixbOCwiZW1fZXZlbnQiLHRydWVdXV0sWzIyLFsxNSwiaSJdLFs0NixbNTMsWzUyLCJsIixbMzksWzI4LFsyOCxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyLFsxNSwiaCJdLCJCIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImFkZGl0aW9uYWxRdWVyeVBhcmFtcyJdLFsxNSwiYiJdXV0sWzhdXV0sWzQzLFsxNyxbMTUsImsiXSwiZXZlbnRNZXRhZGF0YSJdLFsxNyxbMTUsImciXSwiWiJdLCJhIl0sWyJjIixbMTUsImoiXSwidmlld19zZWFyY2hfcmVzdWx0cyIsWzE1LCJsIl0sWzE1LCJrIl1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV92aWRlbyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbVZpZGVvQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkYiXV0sWzUyLCJnIiwidmlkZW9fc3RhcnQiXSxbNTIsImgiLCJ2aWRlb19wcm9ncmVzcyJdLFs1MiwiaSIsInZpZGVvX2NvbXBsZXRlIl0sWzUyLCJqIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiayJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImoiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5Il1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInAiLFsyLFsxNSwibiJdLCJBIixbNywidmlkZW8iXV1dLFs1MiwicSIsWyJtIixbOCwiY2FwdHVyZUNvbXBsZXRlIix0cnVlLCJjYXB0dXJlU3RhcnQiLHRydWUsInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiLFs3LDEwLDI1LDUwLDc1XV1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJqIl0sdHJ1ZV1dLFsibCIsImd0bS52aWRlbyIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9TdGF0dXMiXV0sWzQxLCJ1Il0sWzIyLFsyMCxbMTUsInQiXSwic3RhcnQiXSxbNDYsWzUzLFszLCJ1IixbMTUsImciXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwicHJvZ3Jlc3MiXSxbNDYsWzUzLFszLCJ1IixbMTUsImgiXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwiY29tcGxldGUiXSxbNDYsWzUzLFszLCJ1IixbMTUsImkiXV1dXSxbNDYsWzUzLFszNl1dXV1dXV1dLFs1MiwidiIsWzgsInZpZGVvX2N1cnJlbnRfdGltZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9DdXJyZW50VGltZSJdLCJ2aWRlb19kdXJhdGlvbiIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9EdXJhdGlvbiJdLCJ2aWRlb19wZXJjZW50IixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1BlcmNlbnQiXSwidmlkZW9fcHJvdmlkZXIiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvUHJvdmlkZXIiXSwidmlkZW9fdGl0bGUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVGl0bGUiXSwidmlkZW9fdXJsIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1VybCJdLCJ2aXNpYmxlIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1Zpc2libGUiXV1dLFs1MiwidyIsWzgsImV2ZW50SWQiLFsxNixbMTUsInIiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibiJdLCJCIixbNyxbMTUsInciXV1dLFsibyIsWzE1LCJwIl0sWzE1LCJ1Il0sWzE1LCJ2Il0sWzE1LCJ3Il1dXSxbMTUsInEiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX2Fkc19saW5rIixbNDYsImEiXSxbNTAsImsiLFs0NiwibiJdLFszNixbImoiLFs3LCJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dXV0sWzUwLCJsIixbNDYsIm4iXSxbNDEsIm8iXSxbMywibyIsWzIsWzE1LCJuIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiSlIiXV1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFs1MiwiciIsWzMwLFsyLFsxNSwibiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkpTIl1dXSxbOF1dXSxbMywibyIsWzE2LFsxNSwiciJdLFsxNyxbMTUsImIiXSwiSlIiXV1dXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInAiLFsiZCIsWzE3LFsxNSwiYyJdLCJTIl1dXSxbMjIsWzE1LCJwIl0sWzQ2LFs1MyxbMzZdXV1dLFsiZSIsWzE3LFsxNSwiYyJdLCJTIl0sWzE1LCJvIl1dLFsiZSIsWzE3LFsxNSwiYyJdLCJVIl0sWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzUyLCJxIixbImQiLFsxNyxbMTUsImMiXSwiVCJdXV0sWzIyLFsxNSwicSJdLFs0NixbNTMsWzUyLCJyIixbMzAsWzIsWzE1LCJuIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIzLFsyLFsxNSwiciJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSwwXSxbNDYsWzUzLFsyLFsxNSwiciJdLCJwdXNoIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSxbMixbMTUsIm4iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXSxbMTUsInIiXV1dXV1dXV1dXSxbNTAsIm0iLFs0NiwibiIsIm8iXSxbMixbMTUsImciXSwiQiIsWzcsWzE1LCJuIl0sWzE1LCJvIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ2FBZHNMaW5rQWN0aXZpdHkiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX3Byb2Nlc3NvcnMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbMixbMTUsImYiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTUsImwiXSxbMTUsIm0iXSxbMTUsImsiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9maXJzdCIsWzQ2LCJhIl0sWzUwLCJlIixbNDYsImYiXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJmIl1dXSxbMixbMTUsImQiXSwiQSIsWzcsWzE1LCJmIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIl1dLFsiYiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImYiXSxbImUiLFsxNSwiZiJdXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9sYXN0IixbNDYsImEiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfcmVnc2NvcGUiLFs0NiwiYSJdLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIl1dLFs1MiwiYyIsWzIsWzE1LCJiIl0sIkIiLFs3LFsxNSwiYSJdXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImEiXSxbMTUsImMiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX2djdCIsWzQ2LCJhIl0sWzUwLCJnIixbNDYsIm0iXSxbNTIsIm4iLFs3XV0sWzY1LCJvIixbMTUsIm0iXSxbNDYsWzUzLFs1MiwicCIsWyJiIixbMTUsIm8iXV1dLFsyMixbMjEsWzE1LCJwIl0sWzQ1XV0sWzQ2LFsyLFsxNSwibiJdLCJwdXNoIixbNyxbMTUsInAiXV1dXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJoIixbNDYsIm0iXSxbNTIsIm4iLFsxNyxbMTUsIm0iXSwibGlua2VyIl1dLFsyMixbMSxbMTUsIm4iXSxbMTYsWzE1LCJuIl0sImRvbWFpbnMiXV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sImRvbWFpbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJkb21haW5zIl1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImkiLFs0NiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJyZWZlcnJhbEV4Y2x1c2lvbkRlZmluaXRpb24iXV0sWzIyLFsxLFsxNSwibiJdLFsxNixbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIl1dLFs0NixbNTMsWzQzLFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiaiIsWzMwLFsyLFsxNSwiZiJdLCJnZXRJdGVtIixbNywicmVnZXgiXV0sWyJiIiwiWy4qK1xcLT9eJHt9KCl8W1xcXVxcXFxdIiwiZyJdXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LCJyZWdleCIsWzE1LCJqIl1dXSxbNTIsImsiLFs4XV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInNlc3Npb25EdXJhdGlvbiJdXSxbMjIsWzE4LFsxNSwibCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiayJdLCJzZXNzaW9uX2R1cmF0aW9uIixbMTUsImwiXV1dXV0sWzQzLFsxNSwiayJdLCJldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzIl1dLFs0MyxbMTUsImsiXSwiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJkeW5hbWljRXZlbnRTZXR0aW5ncyJdXSxbNDMsWzE1LCJrIl0sImdvb2dsZV9zaWduYWxzIixbMjAsWzE3LFsxNSwiYSJdLCJnb29nbGVTaWduYWxzIl0sMV1dLFs0MyxbMTUsImsiXSwiZ29vZ2xlX3RsZCIsWzE3LFsxNSwiYSJdLCJmb3JlaWduVGxkIl1dLFs0MyxbMTUsImsiXSwiZ2FfcmVzdHJpY3RfZG9tYWluIixbMjAsWzE3LFsxNSwiYSJdLCJyZXN0cmljdERvbWFpbiJdLDFdXSxbNDMsWzE1LCJrIl0sImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsWzE3LFsxNSwiYSJdLCJpbnRlcm5hbFRyYWZmaWNSZXN1bHRzIl1dLFs0MyxbMTUsImsiXSwibGlua2VyIixbImgiLFsxNSwiYSJdXV0sWzQzLFsxNSwiayJdLCJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsWyJpIixbMTUsImEiXV1dLFsiZCIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl0sWzE1LCJrIl1dLFsiZSIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF8xcF9kYXRhX3YyIixbNDYsImEiXSxbNTAsInAiLFs0NiwiciIsInMiLCJ0IiwidSJdLFsyMixbMjAsWzE2LFsxNSwicyJdLCJ0eXBlIl0sWzE1LCJ0Il1dLFs0NixbNTMsWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFs1MyxbMywiciIsWzhdXV1dXSxbMjIsWzI4LFsxNixbMTUsInIiXSxbMTUsInQiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidCJdLFsxNixbMTUsInMiXSwidXNlckRhdGEiXV0sWzUyLCJ2IixbOCwibW9kZSIsImEiXV0sWzIyLFsxNixbMTUsInMiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJsb2NhdGlvbiIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwic2VsZWN0b3IiLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbNDMsWzE1LCJ1Il0sWzE1LCJ0Il0sWzE1LCJ2Il1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyIsInQiXSxbMjIsWzI4LFsxNixbMTUsImEiXSxbMTUsInQiXV1dLFs0NixbMzZdXV0sWzQzLFsxNSwiciJdLFsxNSwicyJdLFs4LCJ2YWx1ZSIsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV1dXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaXNFbmFibGVkIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNTIsImgiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWyJjIixbMTcsWzE1LCJlIl0sIkFUIl1dXSxbNTIsIm4iLFszMCxbImYiXSxbN11dXSxbNTIsIm8iLFs4LCJlbmFibGVfY29kZSIsdHJ1ZV1dLFsyMixbMTcsWzE1LCJhIl0sImlzQXV0b0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzddXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbNDYsWzUzLFs1MyxbNDEsInUiXSxbMywidSIsMF0sWzYzLFs3LCJ1Il0sWzIzLFsxNSwidSJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV0sWzQ2LFs1MyxbNTIsInYiLFsxNyxbMTYsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNSwidSJdXSwiZXhjbHVzaW9uU2VsZWN0b3IiXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNSwidiJdXV1dXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXSxbMTcsWzE1LCJhIl0sImF1dG9FbWFpbEVuYWJsZWQiXSx0cnVlXV0sWzQzLFsxNSwibyJdLCJhdXRvX2RldGVjdCIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXSwiYWRkcmVzcyIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiLFsxNSwiciJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNNYW51YWxFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsRW1haWxFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJlbWFpbCIsImVtYWlsVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxQaG9uZUVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sInBob25lIiwicGhvbmVWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEFkZHJlc3NFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInMiLFs4XV0sWyJxIixbMTUsInMiXSwiZmlyc3RfbmFtZSIsImZpcnN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwibGFzdF9uYW1lIiwibGFzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInN0cmVldCIsInN0cmVldFZhbHVlIl0sWyJxIixbMTUsInMiXSwiY2l0eSIsImNpdHlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInJlZ2lvbiIsInJlZ2lvblZhbHVlIl0sWyJxIixbMTUsInMiXSwiY291bnRyeSIsImNvdW50cnlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInBvc3RhbF9jb2RlIiwicG9zdGFsQ29kZVZhbHVlIl0sWzQzLFsxNSwiciJdLCJuYW1lX2FuZF9hZGRyZXNzIixbNyxbMTUsInMiXV1dXV1dLFs0MyxbMTUsIm8iXSwic2VsZWN0b3JzIixbMTUsInIiXV1dXV0sWzY1LCJyIixbMTUsIm4iXSxbNDYsWzUzLFsiaSIsWzE1LCJyIl0sInVzZXJfZGF0YV9zZXR0aW5ncyIsWzE1LCJvIl1dLFs1MiwicyIsWzE2LFsxNSwibyJdLCJhdXRvX2RldGVjdCJdXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFs2XV1dXSxbNTIsInQiLFs1MSwiIixbNywidSJdLFs1MiwidiIsWzIsWzE1LCJ1Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzM2LFsxNSwidiJdXV1dXSxbNTIsInciLFsiYyIsWzE3LFsxNSwiZSJdLCJCViJdXV0sWzUyLCJ4IixbImMiLFsxNyxbMTUsImUiXSwiQ0kiXV1dLFs0MSwieSJdLFsyMixbImgiLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byJdLFs0NixbNTMsWzMsInkiLFsiZyIsWzgsImV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzIixbMTYsWzE1LCJzIl0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiXSwiZmllbGRGaWx0ZXJzIixbOCwiZW1haWwiLFsxNixbMTUsInMiXSwiZW1haWwiXSwicGhvbmUiLFsxNixbMTUsInMiXSwicGhvbmUiXSwiYWRkcmVzcyIsWzE2LFsxNSwicyJdLCJhZGRyZXNzIl1dLCJpbmNsdWRlU2VsZWN0b3IiLFsxNSwidyJdLCJyZWFkRnJvbURhdGFMYXllciIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJ6IixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sImVsZW1lbnRzIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzIyLFsxLFsxNSwieiJdLFsxOCxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFs0MSwiYUMiXSxbNDEsImFEIl0sWzMsImFEIixbOF1dLFs1MyxbNDEsImFFIl0sWzMsImFFIiwwXSxbNjMsWzcsImFFIl0sWzIzLFsxNSwiYUUiXSxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJhRSJdLFszLCJhRSIsWzAsWzE1LCJhRSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFGIixbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV0sWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJlbWFpbCIsWzE1LCJhQiJdXSxbMjIsWyJjIixbMTcsWzE1LCJlIl0sIkJPIl1dLFs0NixbNTMsWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJwaG9uZV9udW1iZXIiLFsxNSwiYUIiXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImZpcnN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJsYXN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJjb3VudHJ5IixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwicG9zdGFsX2NvZGUiLFsxNSwiYUQiXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJhQyJdLFsyOCxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sImFkZHJlc3MiLFsxNSwiYUMiXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzQzLFsxNixbMTUsImFBIl0sImFkZHJlc3MiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhRCJdXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE1LCJ4Il1dLFs0NixbNTMsWzUyLCJhQyIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs1MiwiYUQiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV0sWzIsWzE1LCJ1Il0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwibCJdLCJGVCJdLFs4LCJkbHN0IixbMTUsImFDIl0sImRsc2MiLFsxNSwiYUQiXV1dXV1dXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbMjIsWzMwLFsxNixbMTUsImFBIl0sImVtYWlsIl0sWzE2LFsxNSwiYUEiXSwicGhvbmVfbnVtYmVyIl1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXSxbMTUsImFBIl1dXSxbMzYsWzE1LCJhQSJdXV1dLFsiaiIsWzE1LCJyIl0sWzUxLCIiLFs3LCJ1Il0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNZIl0sWzE1LCJ0Il1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9nb29nbGVfc2lnbmFscyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRDb250YWluZXJWZXJzaW9uIl1dLFs1MiwiZCIsWzMwLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiYyJdLCJjb250YWluZXJJZCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX3NpZ25hbHMiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiRU5BQkxFRCJdXSxbNTIsImUiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTk9OX0dBSUFfUkVNQVJLRVRJTkciXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX29ubyIsWzE1LCJlIl1dLFs1MiwiZiIsWzMwLFsxNSwiZSJdLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwiTElNSVRFRF9FWFRFUk5BTCJdXV0sWyJiIixbMTUsImQiXSwiZ29vZ2xlX25nIixbMTUsImYiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiLFs0NiwiYSJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUyLCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvbnZlcnNpb24iXSxbNTIsImMiLCJmbG9vZGxpZ2h0Il0sWzUyLCJkIiwiZ2FfY29udmVyc2lvbiJdLFs1MiwiZSIsInBhZ2VfdmlldyJdLFs1MiwiZiIsInJlbWFya2V0aW5nIl0sWzUyLCJnIiwidXNlcl9kYXRhX2xlYWQiXSxbNTIsImgiLCJ1c2VyX2RhdGFfd2ViIl0sWzM2LFs4LCJEIixbMTUsImIiXSwiRSIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJIIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2d0YWdTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImMiLCJhZF9zdG9yYWdlIl0sWzUyLCJkIiwiYWRfdXNlcl9kYXRhIl0sWzUyLCJlIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJmIiwiYXBwX3JlbW92ZSJdLFs1MiwiZyIsImFwcF9zdG9yZV9yZWZ1bmQiXSxbNTIsImgiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCJdLFs1MiwiaSIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCJdLFs1MiwiaiIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciXSxbNTIsImsiLCJjb252ZXJzaW9uIl0sWzUyLCJsIiwicHVyY2hhc2UiXSxbNTIsIm0iLCJmaXJzdF9vcGVuIl0sWzUyLCJuIiwiZmlyc3RfdmlzaXQiXSxbNTIsIm8iLCJndGFnLmNvbmZpZyJdLFs1MiwicCIsImluX2FwcF9wdXJjaGFzZSJdLFs1MiwicSIsInBhZ2VfdmlldyJdLFs1MiwiciIsInNlc3Npb25fc3RhcnQiXSxbNTIsInMiLCJ1c2VyX2VuZ2FnZW1lbnQiXSxbNTIsInQiLCJhZHNfZGF0YV9yZWRhY3Rpb24iXSxbNTIsInUiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyJdLFs1MiwidiIsImFsbG93X2N1c3RvbV9zY3JpcHRzIl0sWzUyLCJ3IiwiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiXSxbNTIsIngiLCJhbGxvd19nb29nbGVfc2lnbmFscyJdLFs1MiwieSIsImF1aWQiXSxbNTIsInoiLCJhd19yZW1hcmtldGluZ19vbmx5Il0sWzUyLCJhQSIsImRpc2NvdW50Il0sWzUyLCJhQiIsImF3X2ZlZWRfY291bnRyeSJdLFs1MiwiYUMiLCJhd19mZWVkX2xhbmd1YWdlIl0sWzUyLCJhRCIsIml0ZW1zIl0sWzUyLCJhRSIsImF3X21lcmNoYW50X2lkIl0sWzUyLCJhRiIsImF3X2Jhc2tldF90eXBlIl0sWzUyLCJhRyIsImNsaWVudF9pZCJdLFs1MiwiYUgiLCJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiXSxbNTIsImFJIiwiY29udmVyc2lvbl9pZCJdLFs1MiwiYUoiLCJjb252ZXJzaW9uX2xpbmtlciJdLFs1MiwiYUsiLCJjb252ZXJzaW9uX2FwaSJdLFs1MiwiYUwiLCJjb29raWVfZGVwcmVjYXRpb24iXSxbNTIsImFNIiwiY29va2llX2V4cGlyZXMiXSxbNTIsImFOIiwiY29va2llX3ByZWZpeCJdLFs1MiwiYU8iLCJjb29raWVfdXBkYXRlIl0sWzUyLCJhUCIsImNvdW50cnkiXSxbNTIsImFRIiwiY3VycmVuY3kiXSxbNTIsImFSIiwiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiXSxbNTIsImFTIiwiY3VzdG9tZXJfdHlwZSJdLFs1MiwiYVQiLCJkZWJ1Z19tb2RlIl0sWzUyLCJhVSIsInNoaXBwaW5nIl0sWzUyLCJhViIsImVuZ2FnZW1lbnRfdGltZV9tc2VjIl0sWzUyLCJhVyIsImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIl0sWzUyLCJhWCIsImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImFZIiwiZXZlbnRfaWQiXSxbNTIsImFaIiwiZXZlbnQiXSxbNTIsImJBIiwiXyZhZSJdLFs1MiwiYkIiLCJldmVudF90aW1lb3V0Il0sWzUyLCJiQyIsImV4dF9jbGllbnRfaWQiXSxbNTIsImJEIiwiZmlyc3RfcGFydHlfY29sbGVjdGlvbiJdLFs1MiwiYkUiLCJtYXRjaF9pZCJdLFs1MiwiYkYiLCJnZHByX2FwcGxpZXMiXSxbNTIsImJHIiwiX2d0X21ldGFkYXRhIl0sWzUyLCJiSCIsImdvb2dsZV9hbmFseXNpc19wYXJhbXMiXSxbNTIsImJJIiwiX2dvb2dsZV9uZyJdLFs1MiwiYkoiLCJfb25vIl0sWzUyLCJiSyIsImdwcF9zaWQiXSxbNTIsImJMIiwiZ3BwX3N0cmluZyJdLFs1MiwiYk0iLCJnc2FfZXhwZXJpbWVudF9pZCJdLFs1MiwiYk4iLCJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiXSxbNTIsImJPIiwiaWZyYW1lX3N0YXRlIl0sWzUyLCJiUCIsImlnbm9yZV9yZWZlcnJlciJdLFs1MiwiYlEiLCJpc19wYXNzdGhyb3VnaCJdLFs1MiwiYlIiLCJsYW5ndWFnZSJdLFs1MiwiYlMiLCJtZXJjaGFudF9mZWVkX2xhYmVsIl0sWzUyLCJiVCIsIm1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImJVIiwibWVyY2hhbnRfaWQiXSxbNTIsImJWIiwibmV3X2N1c3RvbWVyIl0sWzUyLCJiVyIsInBhZ2VfaG9zdG5hbWUiXSxbNTIsImJYIiwicGFnZV9wYXRoIl0sWzUyLCJiWSIsInBhZ2VfcmVmZXJyZXIiXSxbNTIsImJaIiwicGFnZV90aXRsZSJdLFs1MiwiY0EiLCJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiXSxbNTIsImNCIiwicXVhbnRpdHkiXSxbNTIsImNDIiwicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciXSxbNTIsImNEIiwic2NyZWVuX3Jlc29sdXRpb24iXSxbNTIsImNFIiwic2VuZF9wYWdlX3ZpZXciXSxbNTIsImNGIiwic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50Il0sWzUyLCJjRyIsInNlcnZlcl9jb250YWluZXJfdXJsIl0sWzUyLCJjSCIsInNlc3Npb25fZHVyYXRpb24iXSxbNTIsImNJIiwic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiXSxbNTIsImNKIiwic2Vzc2lvbl9pZCJdLFs1MiwiY0siLCJfc2hhcmVkX3VzZXJfaWQiXSxbNTIsImNMIiwiZGVsaXZlcnlfcG9zdGFsX2NvZGUiXSxbNTIsImNNIiwidGVzdG9ubHkiXSxbNTIsImNOIiwidG9wbW9zdF91cmwiXSxbNTIsImNPIiwidHJhbnNhY3Rpb25faWQiXSxbNTIsImNQIiwidHJhbnNhY3Rpb25faWRfc291cmNlIl0sWzUyLCJjUSIsInRyYW5zcG9ydF91cmwiXSxbNTIsImNSIiwidXBkYXRlIl0sWzUyLCJjUyIsIl91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSJdLFs1MiwiY1QiLCJfdXNlcl9hZ2VudF9iaXRuZXNzIl0sWzUyLCJjVSIsIl91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0Il0sWzUyLCJjViIsIl91c2VyX2FnZW50X21vYmlsZSJdLFs1MiwiY1ciLCJfdXNlcl9hZ2VudF9tb2RlbCJdLFs1MiwiY1giLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybSJdLFs1MiwiY1kiLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIl0sWzUyLCJjWiIsIl91c2VyX2FnZW50X3dvdzY0Il0sWzUyLCJkQSIsInVzZXJfZGF0YSJdLFs1MiwiZEIiLCJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5Il0sWzUyLCJkQyIsInVzZXJfZGF0YV9hdXRvX21ldGEiXSxbNTIsImREIiwidXNlcl9kYXRhX2F1dG9fbXVsdGkiXSxbNTIsImRFIiwidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIl0sWzUyLCJkRiIsInVzZXJfZGF0YV9hdXRvX3N0YXR1cyJdLFs1MiwiZEciLCJ1c2VyX2RhdGFfbW9kZSJdLFs1MiwiZEgiLCJ1c2VyX2lkIl0sWzUyLCJkSSIsInVzZXJfcHJvcGVydGllcyJdLFs1MiwiZEoiLCJ1c19wcml2YWN5X3N0cmluZyJdLFs1MiwiZEsiLCJ2YWx1ZSJdLFs1MiwiZEwiLCJfZnBtX3BhcmFtZXRlcnMiXSxbNTIsImRNIiwiX2hvc3RfbmFtZSJdLFs1MiwiZE4iLCJfaW5fcGFnZV9jb21tYW5kIl0sWzUyLCJkTyIsIl9tZWFzdXJlbWVudF90eXBlIl0sWzUyLCJkUCIsIm5vbl9wZXJzb25hbGl6ZWRfYWRzIl0sWzUyLCJkUSIsImNvbnZlcnNpb25fbGFiZWwiXSxbNTIsImRSIiwicGFnZV9sb2NhdGlvbiJdLFs1MiwiZFMiLCJfZXh0cmFjdGVkX2RhdGEiXSxbNTIsImRUIiwiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImRVIiwidGNfcHJpdmFjeV9zdHJpbmciXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdLCJMIixbMTUsImkiXSwiTSIsWzE1LCJqIl0sIk8iLFsxNSwiayJdLCJBQSIsWzE1LCJsIl0sIkFGIixbMTUsIm0iXSwiQUciLFsxNSwibiJdLCJBSCIsWzE1LCJvIl0sIkFKIixbMTUsInAiXSwiQUsiLFsxNSwicSJdLCJBTSIsWzE1LCJyIl0sIkFRIixbMTUsInMiXSwiQkMiLFsxNSwidCJdLCJCSiIsWzE1LCJ1Il0sIkJLIixbMTUsInYiXSwiQk0iLFsxNSwidyJdLCJCTiIsWzE1LCJ4Il0sIkJUIixbMTUsInkiXSwiQlgiLFsxNSwieiJdLCJCWSIsWzE1LCJhQSJdLCJCWiIsWzE1LCJhQiJdLCJDQSIsWzE1LCJhQyJdLCJDQiIsWzE1LCJhRCJdLCJDQyIsWzE1LCJhRSJdLCJDRCIsWzE1LCJhRiJdLCJDTCIsWzE1LCJhRyJdLCJDUSIsWzE1LCJhSCJdLCJDUiIsWzE1LCJhSSJdLCJLRyIsWzE1LCJkUSJdLCJDUyIsWzE1LCJhSiJdLCJDVSIsWzE1LCJhSyJdLCJDVyIsWzE1LCJhTCJdLCJDWSIsWzE1LCJhTSJdLCJEQyIsWzE1LCJhTiJdLCJERCIsWzE1LCJhTyJdLCJERSIsWzE1LCJhUCJdLCJERiIsWzE1LCJhUSJdLCJERyIsWzE1LCJhUiJdLCJESCIsWzE1LCJhUyJdLCJETiIsWzE1LCJhVCJdLCJFQSIsWzE1LCJhVSJdLCJFQyIsWzE1LCJhViJdLCJFRyIsWzE1LCJhVyJdLCJFSiIsWzE1LCJhWCJdLCJFSyIsWzE1LCJhWSJdLCJFTiIsWzE1LCJhWiJdLCJFTyIsWzE1LCJiQSJdLCJFUSIsWzE1LCJiQiJdLCJLSSIsWzE1LCJkUyJdLCJFVSIsWzE1LCJiQyJdLCJFVyIsWzE1LCJiRCJdLCJGRSIsWzE1LCJiRSJdLCJGTyIsWzE1LCJiRiJdLCJGUCIsWzE1LCJiRyJdLCJLSiIsWzE1LCJkVCJdLCJGVCIsWzE1LCJiSCJdLCJGVSIsWzE1LCJiSSJdLCJGViIsWzE1LCJiSiJdLCJGWSIsWzE1LCJiSyJdLCJGWiIsWzE1LCJiTCJdLCJHQiIsWzE1LCJiTSJdLCJHQyIsWzE1LCJiTiJdLCJHRSIsWzE1LCJiTyJdLCJHRiIsWzE1LCJiUCJdLCJHSyIsWzE1LCJiUSJdLCJHTSIsWzE1LCJiUiJdLCJHVCIsWzE1LCJiUyJdLCJHVSIsWzE1LCJiVCJdLCJHViIsWzE1LCJiVSJdLCJHWiIsWzE1LCJiViJdLCJIQyIsWzE1LCJiVyJdLCJLSCIsWzE1LCJkUiJdLCJIRCIsWzE1LCJiWCJdLCJIRSIsWzE1LCJiWSJdLCJIRiIsWzE1LCJiWiJdLCJITiIsWzE1LCJjQSJdLCJIUCIsWzE1LCJjQiJdLCJIVCIsWzE1LCJjQyJdLCJIWCIsWzE1LCJjRCJdLCJJQSIsWzE1LCJjRSJdLCJJQyIsWzE1LCJjRiJdLCJJRCIsWzE1LCJjRyJdLCJJRiIsWzE1LCJjSCJdLCJJSCIsWzE1LCJjSSJdLCJJSSIsWzE1LCJjSiJdLCJJSyIsWzE1LCJjSyJdLCJJTCIsWzE1LCJjTCJdLCJLSyIsWzE1LCJkVSJdLCJJUCIsWzE1LCJjTSJdLCJJUiIsWzE1LCJjTiJdLCJJVSIsWzE1LCJjTyJdLCJJViIsWzE1LCJjUCJdLCJJVyIsWzE1LCJjUSJdLCJJWSIsWzE1LCJjUiJdLCJKQiIsWzE1LCJjUyJdLCJKQyIsWzE1LCJjVCJdLCJKRCIsWzE1LCJjVSJdLCJKRSIsWzE1LCJjViJdLCJKRiIsWzE1LCJjVyJdLCJKRyIsWzE1LCJjWCJdLCJKSCIsWzE1LCJjWSJdLCJKSSIsWzE1LCJjWiJdLCJKSiIsWzE1LCJkQSJdLCJKSyIsWzE1LCJkQiJdLCJKTCIsWzE1LCJkQyJdLCJKTSIsWzE1LCJkRCJdLCJKTiIsWzE1LCJkRSJdLCJKTyIsWzE1LCJkRiJdLCJKUCIsWzE1LCJkRyJdLCJKUiIsWzE1LCJkSCJdLCJKUyIsWzE1LCJkSSJdLCJKVSIsWzE1LCJkSiJdLCJKViIsWzE1LCJkSyJdLCJKWCIsWzE1LCJkTCJdLCJKWSIsWzE1LCJkTSJdLCJKWiIsWzE1LCJkTiJdLCJLQyIsWzE1LCJkTyJdLCJLRCIsWzE1LCJkUCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhYm9ydF93aXRob3V0X2ZhaWwiXSxbNTIsImMiLCJhY2NlcHRfYnlfZGVmYXVsdCJdLFs1MiwiZCIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiZSIsImNvbnNlbnRfc3RhdGUiXSxbNTIsImYiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImciLCJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIl0sWzUyLCJoIiwiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCJdLFs1MiwiaSIsImNvb2tpZV9vcHRpb25zIl0sWzUyLCJqIiwiZGVkdXBlX2lkIl0sWzUyLCJrIiwiZW1fZXZlbnQiXSxbNTIsImwiLCJldmVudF9wcm92ZW5hbmNlIl0sWzUyLCJtIiwiZXZlbnRfc291cmNlIl0sWzUyLCJuIiwiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIl0sWzUyLCJvIiwiZXZlbnRfdXNhZ2UiXSxbNTIsInAiLCJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiXSxbNTIsInEiLCJmb3JtX2V2ZW50X2NhbmNlbGVkIl0sWzUyLCJyIiwiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIl0sWzUyLCJzIiwiZ3RtX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJ0IiwiaGFuZGxlX2ludGVybmFsbHkiXSxbNTIsInUiLCJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyJdLFs1MiwidiIsImhpdF90eXBlIl0sWzUyLCJ3IiwiaGl0X3R5cGVfb3ZlcnJpZGUiXSxbNTIsIngiLCJpZ25vcmVfZHVwZV9jb25maWciXSxbNTIsInkiLCJpc19jb252ZXJzaW9uIl0sWzUyLCJ6IiwiaXNfZXh0ZXJuYWxfZXZlbnQiXSxbNTIsImFBIiwiaXNfZmlyc3RfdmlzaXQiXSxbNTIsImFCIiwiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiJdLFs1MiwiYUMiLCJpc19mcG1fZW5jcnlwdGlvbiJdLFs1MiwiYUQiLCJpc19mcG1fc3BsaXQiXSxbNTIsImFFIiwiaXNfZ2NwX2Jyb3dzZXIiXSxbNTIsImFGIiwiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiXSxbNTIsImFHIiwiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iXSxbNTIsImFIIiwiaXNfc2Vzc2lvbl9zdGFydCJdLFs1MiwiYUkiLCJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iXSxbNTIsImFKIiwiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIl0sWzUyLCJhSyIsImlzX3NndG1fcHJlaGl0Il0sWzUyLCJhTCIsImlzX3NwbGl0X2NvbnZlcnNpb24iXSxbNTIsImFNIiwiaXNfc3luIl0sWzUyLCJhTiIsImlzX3Rlc3RfZXZlbnQiXSxbNTIsImFPIiwicHJlaGl0X2Zvcl9yZXRyeSJdLFs1MiwiYVAiLCJyZWRhY3RfYWRzX2RhdGEiXSxbNTIsImFRIiwicmVkYWN0X2NsaWNrX2lkcyJdLFs1MiwiYVIiLCJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIl0sWzUyLCJhUyIsInNlbmRfdXNlcl9kYXRhX2hpdCJdLFs1MiwiYVQiLCJzcGVjdWxhdGl2ZSJdLFs1MiwiYVUiLCJzeW5fb3JfbW9kIl0sWzUyLCJhViIsInRyYW5zaWVudF9lY3NpZCJdLFs1MiwiYVciLCJ1c2VyX2RhdGEiXSxbNTIsImFYIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIl0sWzUyLCJhWSIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiXSxbNTIsImFaIiwidXNlcl9kYXRhX2Zyb21fY29kZSJdLFs1MiwiYkEiLCJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIk0iLFsxNSwiZSJdLCJOIixbMTUsImYiXSwiTyIsWzE1LCJnIl0sIlAiLFsxNSwiaCJdLCJRIixbMTUsImkiXSwiUyIsWzE1LCJqIl0sIlQiLFsxNSwiayJdLCJaIixbMTUsImwiXSwiQUEiLFsxNSwibSJdLCJBQiIsWzE1LCJuIl0sIkFDIixbMTUsIm8iXSwiQUQiLFsxNSwicCJdLCJBSiIsWzE1LCJxIl0sIkFLIixbMTUsInIiXSwiQU4iLFsxNSwicyJdLCJBTyIsWzE1LCJ0Il0sIkFQIixbMTUsInUiXSwiQVEiLFsxNSwidiJdLCJBUiIsWzE1LCJ3Il0sIkFTIixbMTUsIngiXSwiQVYiLFsxNSwieSJdLCJBWSIsWzE1LCJ6Il0sIkFaIixbMTUsImFBIl0sIkJBIixbMTUsImFCIl0sIkJDIixbMTUsImFDIl0sIkJEIixbMTUsImFEIl0sIkJFIixbMTUsImFFIl0sIkJGIixbMTUsImFGIl0sIkJLIixbMTUsImFHIl0sIkJMIixbMTUsImFIIl0sIkJNIixbMTUsImFJIl0sIkJOIixbMTUsImFKIl0sIkJPIixbMTUsImFLIl0sIkJRIixbMTUsImFMIl0sIkJSIixbMTUsImFNIl0sIkJTIixbMTUsImFOIl0sIkJZIixbMTUsImFPIl0sIkNCIixbMTUsImFQIl0sIkNDIixbMTUsImFRIl0sIkNFIixbMTUsImFSIl0sIkNOIixbMTUsImFTIl0sIkNRIixbMTUsImFUIl0sIkNUIixbMTUsImFVIl0sIkNVIixbMTUsImFWIl0sIkNXIixbMTUsImFXIl0sIkNYIixbMTUsImFYIl0sIkNZIixbMTUsImFZIl0sIkNaIixbMTUsImFaIl0sIkRBIixbMTUsImJBIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQ1XSxbNTIsImMiLDQ2XSxbNTIsImQiLDQ3XSxbNTIsImUiLDE3NF0sWzUyLCJmIiwyNzZdLFszNixbOCwiRiIsWzE1LCJiIl0sIkciLFsxNSwiYyJdLCJIIixbMTUsImQiXSwiViIsWzE1LCJlIl0sIkFEIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0MjVdLFs1MiwiYyIsNDM1XSxbNTIsImQiLDQ4OF0sWzUyLCJlIiw0ODldLFs1MiwiZiIsNDk4XSxbNTIsImciLDUwM10sWzUyLCJoIiw1MDRdLFs1MiwiaSIsNTA2XSxbNTIsImoiLDUyM10sWzUyLCJrIiw1MzJdLFs1MiwibCIsNTUzXSxbNTIsIm0iLDU2OF0sWzUyLCJuIiw1NzddLFs1MiwibyIsNTgxXSxbNTIsInAiLDU4M10sWzUyLCJxIiw1OTJdLFs1MiwiciIsNTk0XSxbNTIsInMiLDU5OV0sWzM2LFs4LCJBViIsWzE1LCJrIl0sIkFEIixbMTUsImQiXSwiQ0kiLFsxNSwicSJdLCJCViIsWzE1LCJuIl0sIkJPIixbMTUsIm0iXSwiQ0siLFsxNSwiciJdLCJDUCIsWzE1LCJzIl0sIkFNIixbMTUsImciXSwiQloiLFsxNSwibyJdLCJBVCIsWzE1LCJqIl0sIkFFIixbMTUsImUiXSwiQU4iLFsxNSwiaCJdLCJMIixbMTUsImMiXSwiQkMiLFsxNSwibCJdLCJBTyIsWzE1LCJpIl0sIkNCIixbMTUsInAiXSwiQUkiLFsxNSwiZiJdLCJJIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY29va2llX2RlcHJlY2F0aW9uX2xhYmVsIl0sWzUyLCJjIiwicGxkIl0sWzUyLCJkIiwic2hhcmVkX3VzZXJfaWQiXSxbNTIsImUiLCJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiXSxbNTIsImYiLCJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiXSxbMzYsWzgsIkIiLFsxNSwiYiJdLCJOIixbMTUsImMiXSwiUyIsWzE1LCJkIl0sIlQiLFsxNSwiZSJdLCJVIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsM10sWzUyLCJlIiw0XSxbNTIsImYiLDVdLFs1MiwiZyIsNl0sWzM2LFs4LCJBIixbMTUsImIiXSwiRiIsWzE1LCJnIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDVdLFs1MiwiZSIsNl0sWzUyLCJmIiw3XSxbNTIsImciLDhdLFs1MiwiaCIsOV0sWzUyLCJpIiwxMV0sWzUyLCJqIiwxNV0sWzUyLCJrIiwxNl0sWzUyLCJsIiwyMF0sWzUyLCJtIiwyMV0sWzUyLCJuIiwyM10sWzUyLCJvIiwyNF0sWzUyLCJwIiwyN10sWzUyLCJxIiw0MF0sWzUyLCJyIiw0MV0sWzM2LFs4LCJPIixbMTUsImoiXSwiVyIsWzE1LCJuIl0sIlAiLFsxNSwiayJdLCJYIixbMTUsIm8iXSwiSyIsWzE1LCJpIl0sIkEiLFsxNSwiYiJdLCJUIixbMTUsImwiXSwiRSIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJCIixbMTUsImMiXSwiSCIsWzE1LCJnIl0sIkFOIixbMTUsInEiXSwiSSIsWzE1LCJoIl0sIkciLFsxNSwiZiJdLCJVIixbMTUsIm0iXSwiQU8iLFsxNSwiciJdLCJBQSIsWzE1LCJwIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFlX2Jsb2NrX2Rvd25sb2FkcyJdLFs1MiwiYyIsImFlX2Jsb2NrX2Zvcm0iXSxbNTIsImQiLCJhZV9ibG9ja19oaXN0b3J5Il0sWzUyLCJlIiwiYWVfYmxvY2tfb3V0Ym91bmRfY2xpY2siXSxbNTIsImYiLCJhZV9ibG9ja19zY3JvbGwiXSxbNTIsImciLCJhZV9ibG9ja192aWRlbyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdLCJGIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtU2l0ZVNlYXJjaEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJiIixbNDYsImQiLCJlIl0sWzUyLCJmIixbMixbMzAsWzE1LCJkIl0sIiJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsImciXSxbMywiZyIsMF0sWzYzLFs3LCJnIl0sWzIzLFsxNSwiZyJdLFsxNyxbMTUsImYiXSwibGVuZ3RoIl1dLFszMyxbMTUsImciXSxbMywiZyIsWzAsWzE1LCJnIl0sMV1dXSxbNDYsWzUzLFs1MiwiaCIsWyJlIixbMixbMTYsWzE1LCJmIl0sWzE1LCJnIl1dLCJ0cmltIixbN11dXV0sWzIyLFsyMSxbMTUsImgiXSxbNDRdXSxbNDYsWzUzLFszNixbMTUsImgiXV1dXV1dXV1dXSxbNTAsImMiLFs0NiwiZCIsImUiLCJmIl0sWzUyLCJnIixbOCwic2VhcmNoX3Rlcm0iLFsxNSwiZCJdXV0sWzUyLCJoIixbMixbMzAsWzE1LCJlIl0sIiJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsImkiXSxbMywiaSIsMF0sWzYzLFs3LCJpIl0sWzIzLFsxNSwiaSJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImkiXSxbMywiaSIsWzAsWzE1LCJpIl0sMV1dXSxbNDYsWzUzLFs1MiwiaiIsWzIsWzE2LFsxNSwiaCJdLFsxNSwiaSJdXSwidHJpbSIsWzddXV0sWzUyLCJrIixbImYiLFsxNSwiaiJdXV0sWzIyLFsyMSxbMTUsImsiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImciXSxbMCwicV8iLFsxNSwiaiJdXSxbMTUsImsiXV1dXV1dXV1dLFszNixbMTUsImciXV1dLFszNixbOCwiQiIsWzE1LCJjIl0sIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc09yZGVySWRTb3VyY2UiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCIxIl0sWzUyLCJjIiwiMiJdLFs1MiwiZCIsIjMiXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mcG1QYXJhbWV0ZXIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjZSJdLFszNixbOCwiQiIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrSW5pdFNlcnZpY2VXb3JrZXIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImMiLFs0NiwiZCJdLFsiYiIsWzE1LCJkIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmluaXRpYWxpemVTZXJ2aWNlV29ya2VyIl1dLFszNixbOCwiQSIsWzE1LCJjIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hY3Rpdml0aWVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJiIixbNDYsImMiLCJkIl0sWzM2LFszOSxbMTUsImQiXSxbImQiLFsxNSwiYyJdXSxbMTUsImMiXV1dXSxbMzYsWzgsIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZXZlbnRVc2FnZVRyYWNrZXJJZHMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDMyXSxbMzYsWzgsIkFFIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDZdLFs2OCwidyIsWzUzLFsyMixbMSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkFJIl1dXSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dXSxbNDYsWzUzLFszNixbN11dXV1dLFs1MiwidyIsWyJiIixbMTcsWzE1LCJnIl0sIk4iXV1dLFsyMixbIm4iLFsxNSwidyJdXSxbNDYsWzUzLFszNixbMTUsInciXV1dXV0sWzUyLCJ4IixbN11dLFsyMixbInAiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQSJdXV1dXSxbMjIsWyJxIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkIiXV1dXV0sWzIyLFsiciJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJGIl1dXV1dLFsyMixbInUiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRCJdXV1dXSxbMjIsWyJzIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkUiXV1dXV0sWzIyLFsidCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJDIl1dXV1dLFsyMixbImwiXSxbNDYsWzUzLFsiZiIsWzE3LFsxNSwiZyJdLCJOIl0sWzE1LCJ4Il0sdHJ1ZV1dXV0sWzM2LFsxNSwieCJdXV0sWzQ2XV0sWzM2LFs3XV1dLFs1MCwicCIsWzQ2XSxbNjgsInciLFs1MyxbMzYsWzI4LFsyOCxbImMiLCJzY3JpcHRbZGF0YS1yZXF1aXJlbW9kdWxlXj1cIm1hZ2UvXCJdIl1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsIllYTnpaWFJ6TG5OeGRXRnlaWE53WVdObExtTnZiUzg9Il1dLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyY149XCIvLyIsWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwiciIsWzQ2XSxbMjIsWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJJIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbIm0iLCJjMmh2Y0dsbWVTNWpiMjA9Il1dLFs1MiwieCIsWyJtIiwiYzJodmNHbG1lV05rYmk1amIyMD0iXV0sWzIyLFszMCxbMjgsWzE1LCJ3Il1dLFsyOCxbMTUsIngiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCwic2NyaXB0W3NyYyo9XCJjZG4uIixbMTUsInciXV0sIlwiXSwiXSwibWV0YVtwcm9wZXJ0eT1cIm9nOmltYWdlXCJdW2NvbnRlbnQqPVwiY2RuLiJdLFsxNSwidyJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImZvbnRzLiJdLFsxNSwieCJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJpdGVyYWJsZS1zaG9waWZ5XCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJ2LiJdLFsxNSwidyJdXSwiXCJdIl1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInMiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbImQiLCJwcm90b2NvbCJdXSxbNTIsIngiLFsiZCIsImhvc3QiXV0sWzUyLCJ5IixbMzksWzEsWzE1LCJ3Il0sWzE1LCJ4Il1dLFswLFswLFswLFswLCJbc3JjXj1cIiIsWzE1LCJ3Il1dLCI6Ly8iXSxbMTUsIngiXV0sIi93cC1jb250ZW50XCJdLCJdLCIiXV0sWzUyLCJ6IixbIm0iLCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSJdXSxbNTIsImFBIixbIm0iLCJMeTl6TG5jdWIzSm4iXV0sWzIyLFszMCxbMjgsWzE1LCJ6Il1dLFsyOCxbMTUsImFBIl1dXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMzAsWyJ2IixbMTUsIngiXSxbMTUsInoiXV0sWzI4LFsyOCxbImMiLFswLFswLFswLFswLFsxNSwieSJdLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb3JkUHJlc3MgXCJdLCJdLCJsaW5rW3JlbD1cImRucy1wcmVmZXRjaFwiXVtocmVmPVwiIl0sWzE1LCJhQSJdXSwiXCJdIl1dXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ0IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLCJbY2xhc3MqPVwid29vY29tbWVyY2VcIl0sIiwibWV0YVtuYW1lPVwiZ2VuZXJhdG9yXCJdW2NvbnRlbnRePVwiV29vQ29tbWVyY2UgXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyYyo9XCJ3b29jb21tZXJjZVwiXSwiLCJsaW5rW2hyZWYqPVwid29vY29tbWVyY2VcIl0sIl0sIltjbGFzc3w9XCJ3b29jb21tZXJjZVwiXSJdXV1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1M11dXSxbMzYsWzE1LCJ3Il1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInYiLFs0NiwidyIsIngiXSxbMzYsWzEsWzE5LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzIwLFsyLFsxNSwidyJdLCJzdWJzdHJpbmciLFs3LFszNyxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNyxbMTUsIngiXSwibGVuZ3RoIl1dLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dXSxbMTUsIngiXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEZpcnN0RWxlbWVudEJ5Q3NzU2VsZWN0b3IiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0RvbVJlYWR5Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiZnJvbUJhc2U2NCJdXSxbNTIsIm4iLFs1MSwiIixbNywidyJdLFszNixbMjAsWyJrIixbMTUsInciXV0sImFycmF5Il1dXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtRG93bmxvYWRBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2lkIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX3VybCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua190ZXh0IixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJmaWxlX25hbWUiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImZpbGVfZXh0ZW5zaW9uIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkEiXV0sWzUyLCJnIiwiZmlsZV9kb3dubG9hZCJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImciXSxbNTIsImgiLFsiYiJdXSxbNTIsImkiLFs3XV0sWzUzLFs0MSwiaiJdLFszLCJqIiwwXSxbNjMsWzcsImoiXSxbMjMsWzE1LCJqIl0sWzE3LFsxNSwiaCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiaiJdLFszLCJqIixbMCxbMTUsImoiXSwxXV1dLFs0NixbNTMsWzUyLCJrIixbMTYsWzE1LCJoIl0sWzE1LCJqIl1dXSxbMjIsWyJkIixbMTUsImciXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsImkiXSwicHVzaCIsWzcsWzE1LCJrIl1dXV1dXV1dXV0sWzM2LFsxNSwiaSJdXV0sWzUwLCJmIixbNDYsImciLCJoIl0sWzUyLCJpIixbMzAsWzE1LCJoIl0sWzhdXV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiVCJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIkNRIl0sdHJ1ZV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiWiJdLCJhIl0sWzQzLFsxNSwiZyJdLCJldmVudE1ldGFkYXRhIixbMTUsImkiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdLCJCIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtT3V0Ym91bmRDbGlja0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfaWQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfY2xhc3NlcyIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua191cmwiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfZG9tYWluIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJvdXRib3VuZCIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJEIl1dLFs1MiwiZyIsImNsaWNrIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJrIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsImwiXSxbMjIsWzMwLFsyMSxbMixbMTUsImwiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiaSJdXSxbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiaCJdXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJPIl1dXV0sWzQ2LFs1MyxbImQiLFsxNSwiayJdLFsxNyxbMTUsImYiXSwiSEUiXSxbMixbMTUsImwiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJIRSJdXV1dXV1dLFsyLFsxNSwibCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJDUSJdLGZhbHNlXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJoIixbMTcsWzE1LCJnIl0sIkMiXV0sWzUyLCJpIixbMTcsWzE1LCJmIl0sIkFLIl1dLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVNjcm9sbEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsInBlcmNlbnRfc2Nyb2xsZWQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRSJdXSxbNTIsImciLCJzY3JvbGwiXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1WaWRlb0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiLCJsIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsIm0iXSxbNTIsIm4iLFsyLFsxNSwibSJdLCJnZXRFdmVudE5hbWUiLFs3XV1dLFs1MiwibyIsWzMwLFszMCxbMjAsWzE1LCJuIl0sWzE1LCJnIl1dLFsyMCxbMTUsIm4iXSxbMTUsImgiXV1dLFsyMCxbMTUsIm4iXSxbMTUsImkiXV1dXSxbMjIsWzMwLFsyOCxbMTUsIm8iXV0sWzI4LFsyLFsxNSwibSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJsIl1dLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19jdXJyZW50X3RpbWUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX2R1cmF0aW9uIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wZXJjZW50IixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19wcm92aWRlciIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fdGl0bGUiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3VybCIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlzaWJsZSIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJGIl1dLFs1MiwiZyIsInZpZGVvX3N0YXJ0Il0sWzUyLCJoIiwidmlkZW9fcHJvZ3Jlc3MiXSxbNTIsImkiLCJ2aWRlb19jb21wbGV0ZSJdLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWiJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZaIl1dXV1dXV0sWzIyLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiRlkiXSxbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWSJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VGVzdEhpdFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzIyLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCUyJdXV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJJUCJdLCIxIl1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfd2ViQWRzVGFza3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwibSJdLFs1MiwibiIsWzhdXSxbNDMsWzE1LCJuIl0sWzE3LFsxNSwiZCJdLCJCIl0sWyJlIixbMTcsWzE1LCJkIl0sIkIiXV1dLFs0MyxbMTUsIm4iXSxbMTcsWzE1LCJkIl0sIkMiXSxbImUiLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQzLFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQSJdLFsiYyIsWzE1LCJtIl1dXSxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdLFsxNSwibiJdXV1dLFs1MCwiayIsWzQ2LCJtIl0sWzUyLCJuIixbMzAsWzIsWzE1LCJtIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImgiXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNVIl0sIjIiXV1dXV1dLFs1MCwibCIsWzQ2LCJtIl0sWzIyLFsiZyJdLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkJFIl0sdHJ1ZV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkpZIl0sInd3dy5nb29nbGUuY29tIl1dXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJKWSJdLCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0djcEJyb3dzZXIiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJCIixbMTUsImsiXSwiQSIsWzE1LCJqIl0sIkMiLFsxNSwibCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwidCJdLFs1MiwidSIsWyJkIl1dLFsyMixbMjAsWzE1LCJ1Il0sIlVTLUNPIl0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGVSJdLDFdXV1dXV0sWzUwLCJrIixbNDYsInQiXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJJVSJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSlYiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkRGIl1dXSxbMjIsWyJmIixbMTcsWzE1LCJiIl0sIkFOIl1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRUsiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkVVIl1dXV1dXV0sWzUwLCJsIixbNDYsInQiXSxbMjIsWzIxLFsyLFsxNSwidCJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE3LFsxNSwiaCJdLCJBQSJdXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0IiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkNDIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCWiJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0EiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJZIl1dXSxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJDRCJdLFsxNyxbMTUsImgiXSwiQUEiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdWIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHVCJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR1UiXV1dXSxbNTAsIm0iLFs0NiwidCJdLFsyMixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTiJdXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGIl0sdHJ1ZV1dXV1dXSxbNTAsIm4iLFs0NiwidCJdLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdaIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJERyJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRUciXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkRFIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJFQSJdXV1dLFs1MCwibyIsWzQ2LCJ0Il0sWzUyLCJ1IixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdXV1dLFsyMixbMTUsInUiXSxbNDYsWzUzLFs1MiwidiIsWzEsWzE2LFsxNSwidSJdLFsxNyxbMTUsImgiXSwiQyJdXSxbMTYsWzE1LCJ1Il0sWzE3LFsxNSwiaCJdLCJCIl1dXV0sWzIsWzE1LCJ0Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkNDIl0sWzEsWzI4LFsyOCxbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQ0IiXV1dXV0sWzI4LFsxNSwidiJdXV1dXV1dXV0sWzUwLCJwIixbNDYsInQiXSxbNTIsInUiLFsyLFsxNSwidCJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJoIl0sIkhUIl1dXV0sWzIyLFszMCxbMjAsWzE1LCJ1Il0sdHJ1ZV0sWzIwLFsxNSwidSJdLGZhbHNlXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIVCJdLFsxNSwidSJdXV1dXV0sWzIyLFsyMCxbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiRiJdXV0sZmFsc2VdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiS0QiXSx0cnVlXV1dXSxbNDYsWzUzLFs1MiwidiIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXV1dXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJLRCJdLFsyOCxbMTYsWzE1LCJ2Il0sWzE3LFsxNSwiaCJdLCJBIl1dXV1dXV1dXV1dXSxbNTAsInEiLFs0NiwidCJdLFsyMixbImMiLFsyLFsxNSwidCJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnb29nbGVfbmciXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkZVIl0sdHJ1ZV1dXV1dLFsyMixbImMiLFsyLFsxNSwidCJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnb29nbGVfb25vIl0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGViJdLHRydWVdXV1dXV0sWzUwLCJyIixbNDYsInQiXSxbMjIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkFZIl1dXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkpaIl0sdHJ1ZV1dXV1dXSxbNTAsInMiLFs0NiwidCJdLFsyMixbImUiLFsxNSwidCJdXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkROIl0sdHJ1ZV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNEZWJ1Z01vZGUiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQiIsWzE1LCJrIl0sIkMiLFsxNSwibCJdLCJJIixbMTUsInIiXSwiQSIsWzE1LCJqIl0sIkUiLFsxNSwibiJdLCJEIixbMTUsIm0iXSwiSiIsWzE1LCJzIl0sIkgiLFsxNSwicSJdLCJHIixbMTUsInAiXSwiRiIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzQxLCJoIl0sWzMsImgiLFs0NF1dLFs1MiwiaSIsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIk0iXV1dXSxbMjIsWzEsWzE1LCJpIl0sWzE2LFsxNSwiaSJdLFsxNyxbMTUsImQiXSwiQiJdXV0sWzQ2LFs1MyxbMywiaCIsWyJiIixbMTcsWzE1LCJjIl0sIkIiXV1dXV0sWzQ2LFs1MyxbMywiaCIsImRlbmllZCJdXV1dLFsyMixbMjksWzE1LCJoIl0sWzQ1XV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDVyJdLFsxNSwiaCJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiIsWzE1LCJlIl1dXSxbNjUsImciLFs3LFsxNyxbMTUsImMiXSwiS0oiXSxbMTcsWzE1LCJjIl0sIkVKIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNSwiZyJdLFsxNixbMTUsImYiXSxbMTUsImciXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXZlbG9wZXJJZHMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFsyMixbMjgsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIloiXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiRU8iXSxbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiWiJdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbMjIsWzI4LFsiZCIsImdldF91c2VyX2FnZW50Il1dLFs0NixbMzZdXV0sWzUyLCJnIixbImIiXV0sWzIyLFsyOCxbMTUsImciXV0sWzQ2LFszNl1dXSxbNTIsImgiLFs3LFsxNyxbMTUsImMiXSwiSkIiXSxbMTcsWzE1LCJjIl0sIkpDIl0sWzE3LFsxNSwiYyJdLCJKRCJdLFsxNyxbMTUsImMiXSwiSkUiXSxbMTcsWzE1LCJjIl0sIkpGIl0sWzE3LFsxNSwiYyJdLCJKRyJdLFsxNyxbMTUsImMiXSwiSkgiXSxbMTcsWzE1LCJjIl0sIkpJIl1dXSxbNjUsImkiLFsxNSwiaCJdLFs0NixbNTMsWzIsWzE1LCJmIl0sInNldEhpdERhdGEiLFs3LFsxNSwiaSJdLFsxNixbMTUsImciXSxbMTUsImkiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRVc2VyQWdlbnRDbGllbnRIaW50cyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NlbmRBZHNIaXRzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbImIiLFsxNSwiZiJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2VuZEFkc0hpdHMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRBZHNQYWdlUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDYsInEiXSxbMjIsWzIsWzE1LCJxIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIk4iXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInIiLFsibCIsImdldF91cmwiXV0sWzUyLCJzIixbMixbMTUsInEiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHRSJdXV1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdFIl0sWzE1LCJzIl1dXSxbNTIsInQiLFsyLFsxNSwicSJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJoIl0sIktIIl1dXV0sWzQxLCJ1Il0sWzMsInUiLFsxNSwidCJdXSxbMjIsWzEsWzI4LFsxNSwidSJdXSxbMTUsInIiXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwicyJdLFsxNyxbMTUsImIiXSwiU0FNRV9ET01BSU5fSUZSQU1JTkciXV0sWzQ2LFs1MyxbMywidSIsWyJmIl1dXV0sWzQ2LFs1MyxbMywidSIsWyJnIl1dXV1dXV1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIktIIl0sWyJwIixbMTUsInUiXV1dXSxbMjIsWyJsIiwiZ2V0X3JlZmVycmVyIl0sWzQ2LFs1MyxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIRSJdLFsiYyJdXV1dXV0sWzIyLFsibCIsInJlYWRfdGl0bGUiXSxbNDYsWzUzLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkhGIl0sWyJrIl1dXV1dXSxbMixbMTUsInEiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHTSJdXV0sWzUyLCJ2IixbImQiXV0sWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSFgiXSxbMCxbMCxbImkiLFsxNyxbMTUsInYiXSwid2lkdGgiXV0sIngiXSxbImkiLFsxNyxbMTUsInYiXSwiaGVpZ2h0Il1dXV1dLFs1MiwidyIsWzEsWyJtIixbMTcsWzE1LCJuIl0sIkNCIl1dLFsyOCxbMjgsWzE1LCJ0Il1dXV1dLFsyMixbMTUsInIiXSxbNDYsWzUzLFs1MiwieCIsWyJlIl1dLFsyMixbMSxbMTUsIngiXSxbMjEsWzE1LCJ4Il0sWzE1LCJ1Il1dXSxbNDYsWzUzLFs0MSwieSJdLFszLCJ5IixbInAiLFsxNSwieCJdXV0sWzIyLFsxNSwidyJdLFs0NixbNTMsWzMsInkiLFsxNixbMixbMTUsInkiXSwic3BsaXQiLFs3LCI/Il1dLDBdXV1dXSxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJJUiJdLFsxNSwieSJdXV1dXV1dXV1dLFs1MCwicCIsWzQ2LCJxIl0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFszNiwiIl1dXSxbNTIsInIiLFsiaSIsWzE1LCJxIl1dXSxbNTIsInMiLFsyLFsxNSwiciJdLCJzdWJzdHJpbmciLFs3LDAsNTEyXV1dLFs1MiwidCIsWzIsWzE1LCJzIl0sImluZGV4T2YiLFs3LCIjIl1dXSxbMjIsWzIwLFsxNSwidCJdLFsyNywxXV0sWzQ2LFs1MyxbMzYsWzE1LCJzIl1dXV0sWzQ2LFs1MyxbMzYsWzIsWzE1LCJzIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInQiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0UmVmZXJyZXJVcmwiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRTY3JlZW5EaW1lbnNpb25zIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldFRvcFdpbmRvd1VybCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImkiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwicmVhZFRpdGxlIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFs1MiwiZyIsWzMwLFsyLFsxNSwiZiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJNIl1dXSxbOF1dXSxbMjIsWzMwLFszMCxbMjgsWzIsWzE1LCJmIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIk8iXV1dXSxbMjgsWzE2LFsxNSwiZyJdLFsxNyxbMTUsImMiXSwiQiJdXV1dLFsyOCxbMTYsWzE1LCJnIl0sWzE3LFsxNSwiYyJdLCJDIl1dXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwiaCIsWyJiIixbMTUsImYiXV1dLFsyMixbMTUsImgiXSxbNDYsWzUzLFsyLFsxNSwiZiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkJUIl0sWzE1LCJoIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBdWlkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzIsWzE1LCJmIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIk8iXSxbMjEsWzIsWzE1LCJmIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImQiXSwiQ1MiXV1dLGZhbHNlXV1dLFsyLFsxNSwiZiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJRIl0sWyJjIixbMTUsImYiXV1dXSxbNTIsImciLFsyLFsxNSwiZiJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJkIl0sIkJDIl1dXV0sWzIsWzE1LCJmIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNCIl0sWzEsWzI5LFsxNSwiZyJdLFs0NV1dLFsyMSxbMTUsImciXSxmYWxzZV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEFkc0Nvb2tpZVdyaXRpbmdPcHRpb25zIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0RmVhdHVyZVVzYWdlUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzE1LCJmIl0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJHQyJdLFsxNSwiZiJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0QW5kUmVzZXRFdmVudFVzYWdlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R29vZ2xlQW5hbHlzaXNQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImMiLFs0NiwiZCJdLFsyLFsxNSwiZCJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImIiXSwiRlQiXSxbMixbMTUsImQiXSwiZ2V0TWVyZ2VkVmFsdWVzIixbNyxbMTcsWzE1LCJiIl0sIkZUIl1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiYyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkdFIl0sWyJiIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRJZnJhbWluZ1N0YXRlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0UHJpdmFjeVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzY1LCJnIixbNyxbMTcsWzE1LCJjIl0sIkpVIl0sWzE3LFsxNSwiYyJdLCJGTyJdLFsxNyxbMTUsImMiXSwiS0siXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJnIl0sWzE2LFsxNSwiZiJdLFsxNSwiZyJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VXJsUGFzc3Rocm91Z2hQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzE2LFsiYyIsZmFsc2VdLCJfdXAiXV0sWzIyLFsyMCxbMTUsImYiXSwiMSJdLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiR0siXSx0cnVlXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZiJdLFsiZSIsWzE1LCJmIl0sWzE3LFsxNSwiYiJdLCJCIl0sWzIsWzE1LCJmIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImMiXSwiQ1kiXV1dXV0sWzUwLCJlIixbNDYsImYiLCJnIiwiaCJdLFs1MiwiaSIsWzMwLFsyLFsxNSwiZiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkpYIl1dXSxbOF1dXSxbNDMsWzE1LCJpIl0sWzE1LCJnIl0sWzE1LCJoIl1dLFsyLFsxNSwiZiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkpYIl0sWzE1LCJpIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2ZwbVBhcmFtZXRlciJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFVzZXJJZFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZyIsWzQ2LCJoIl0sWzUyLCJpIixbMzAsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwiaSJdLFsxNyxbMTUsImQiXSwiQyJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwiaCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkpSIl1dXSxbNTIsImoiLFsiYiIsWzE3LFsxNSwiYyJdLCJTIl1dXSxbMjIsWzIwLFsxNSwiaiJdLFs0NF1dLFs0NixbNTMsWyJmIixbMTcsWzE1LCJjIl0sIlQiXSx0cnVlXSxbMzZdXV1dLFs1MiwiayIsWyJiIixbMTcsWzE1LCJjIl0sIlUiXV1dLFsyLFsxNSwiaCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIklLIl0sWzAsWzAsWzE1LCJrIl0sIi4iXSxbMTUsImoiXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzM2LFs4LCJBIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRDdXN0b21lckxpZmVjeWNsZVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzIyLFsyOCxbImQiLFsxNyxbMTUsImMiXSwiSCJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwiZiJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkRIIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHc2FFeHBlcmltZW50SWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMjEsWzE1LCJmIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJHQiJdLFsxNSwiZiJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0R3NhRXhwZXJpbWVudElkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU3RvcmVCcmFpZExhYmVscyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzUyLCJnIixbMzAsWzIsWzE1LCJmIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIk0iXV1dLFs4XV1dLFsyMixbMjgsWzE2LFsxNSwiZyJdLFsxNyxbMTUsImIiXSwiQiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsiZCIsWzE1LCJmIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nYUFkc0xpbmtBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwicCIsWzQ2LCJ3IiwieCIsInkiLCJ6Il0sWyJmIixbMTUsInciXSwiZ2E0X2Fkc19saW5rZWQiLHRydWVdLFsiZSIsWzE1LCJ3Il0sWzUxLCIiLFs3LCJhQSIsImFCIl0sWyJ4IixbMTUsImFBIl1dLFsyLFsxNSwiYUEiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVAiXSxbMjgsWzI4LFsieiIsWzE1LCJhQSJdXV1dXV0sWyJxIixbMTUsInkiXSxbMTUsImFBIl0sWzE1LCJhQiJdXV1dXSxbNTAsInEiLFs0NiwidyIsIngiLCJ5Il0sWzIyLFsyOCxbInMiLFsxNSwieCJdXV0sWzQ2LFszNl1dXSxbMjIsWyJ0IixbMTUsIngiXSxbMTUsInkiXV0sWzQ2LFszNl1dXSxbMjIsWzIsWzE1LCJ4Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFWIl1dXSxbNDYsWzUzLFsiciIsWzE1LCJ3Il0sWzE1LCJ4Il1dXV1dLFsyMixbMixbMTUsIngiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQkEiXV1dLFs0NixbNTMsWyJyIixbMTUsInciXSxbMTUsIngiXSwiZmlyc3RfdmlzaXQiXV1dXSxbMjIsWzIsWzE1LCJ4Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJNIl1dXSxbNDYsWzUzLFsiciIsWzE1LCJ3Il0sWzE1LCJ4Il0sInNlc3Npb25fc3RhcnQiXV1dXV0sWzUwLCJyIixbNDYsInciLCJ4IiwieSJdLFs1MCwiYUEiLFs0NiwiYUIiXSxbNTIsImFDIixbMixbMTUsIngiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhQiJdXV1dLFsyMixbMjEsWzE1LCJhQyJdLFs0NF1dLFs0NixbNTMsWzIsWzE1LCJ6Il0sInNldEhpdERhdGEiLFs3LFsxNSwiYUIiXSxbMTUsImFDIl1dXV1dXV0sWzUyLCJ6IixbImIiLFsxNSwieCJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwidXNlSGl0RGF0YSIsdHJ1ZV1dXSxbMjIsWzE1LCJ5Il0sWzQ2LFs1MyxbMixbMTUsInoiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsInkiXV1dXV1dLFsyLFsxNSwieiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBUSJdLCJnYV9jb252ZXJzaW9uIl1dLFsiYUEiLFsxNyxbMTUsImsiXSwiQ0wiXV0sWyJhQSIsWzE3LFsxNSwiayJdLCJKUiJdXSxbImFBIiwiXyZpYnQiXSxbInciLCJnYV9jb252ZXJzaW9uIixbMTUsInoiXV1dLFs1MCwicyIsWzQ2LCJ3Il0sWzUyLCJ4IixbMjgsWyJkIixbMTcsWzE1LCJpIl0sIkwiXV1dXSxbMjIsWzE1LCJ4Il0sWzQ2LFs1MyxbMjIsWyJkIixbMTcsWzE1LCJpIl0sIkJDIl1dLFs0NixbNTMsWzUyLCJ6IixbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFEIl1dXSxbN11dXSxbMixbMTUsInoiXSwicHVzaCIsWzcsWzE1LCJvIl1dXSxbMixbMTUsInciXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQUQiXSxbMTUsInoiXV1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dXV1dLFsyMixbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQk4iXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMjIsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJLIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzUyLCJ5IixbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwieSJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJsIl0sIkFPIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ5Il0sInB1c2giLFs3LFsxNyxbMTUsImwiXSwiQU8iXV1dXV1dLFsyMixbMjgsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIlAiXV1dXSxbNDYsWzUzLFsyMixbMjAsWzIsWzE1LCJ5Il0sImluZGV4T2YiLFs3LFsxNyxbMTUsImwiXSwiQU4iXV1dLFsyNywxXV0sWzQ2LFs1MyxbMixbMTUsInkiXSwicHVzaCIsWzcsWzE3LFsxNSwibCJdLCJBTiJdXV1dXV1dXV0sWzIsWzE1LCJ3Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFDIl0sWzE1LCJ5Il1dXSxbMjIsWzI4LFszMCxbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFWIl1dXSxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQkEiXV1dXSxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQk0iXV1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNix0cnVlXV0sWzUwLCJ0IixbNDYsInciLCJ4Il0sWzQxLCJ5Il0sWzMsInkiLGZhbHNlXSxbNTIsInoiLFs3XV0sWzUyLCJhQSIsWyJuIixbMTUsImMiXSxbMTUsIngiXV1dLFs1MiwiYUIiLFs1MSwiIixbNywiYUMiLCJhRCJdLFsyMixbImFDIixbMTUsInciXSxbMTUsImFBIl1dLFs0NixbNTMsWzMsInkiLHRydWVdLFsyLFsxNSwieiJdLCJwdXNoIixbNyxbMTUsImFEIl1dXV1dXV1dLFsiYUIiLFsxNSwidSJdLFsxNyxbMTUsIm0iXSwiR09PR0xFX1NJR05BTF9ESVNBQkxFRCJdXSxbImFCIixbMTUsInYiXSxbMTcsWzE1LCJtIl0sIkRFVklDRV9EQVRBX1JFREFDVElPTl9FTkFCTEVEIl1dLFsyMixbMjgsWzE1LCJ5Il1dLFs0NixbMixbMTUsInoiXSwicHVzaCIsWzcsWzE3LFsxNSwibSJdLCJCRUFDT05fU0VOVCJdXV1dXSxbMixbMTUsInciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJITiJdLFsyLFsxNSwieiJdLCJqb2luIixbNywiLiJdXV1dLFszNixbMTUsInkiXV1dLFs1MCwidSIsWzQ2LCJ3IiwieCJdLFsyMixbMjgsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJGIl1dXV0sWzQ2LFs1MyxbMzYsdHJ1ZV1dXV0sWzIyLFsiZCIsWzE3LFsxNSwiaSJdLCJBTyJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFsyMCxbIngiLFsyLFsxNSwidyJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLFsxNyxbMTUsImsiXSwiQk4iXV0sZmFsc2VdLFs0NixbNTMsWzM2LHRydWVdXV1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMzAsWzIwLFsieCIsWzIsWzE1LCJ3Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sInJlZGFjdF9kZXZpY2VfaW5mbyJdLHRydWVdLFsyMCxbIngiLFsyLFsxNSwidyJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnZW9fZ3JhbnVsYXJpdHkiXSx0cnVlXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImciLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYWN0aXZpdGllcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwibSIsWzIsWzE1LCJnIl0sImZyZWV6ZSIsWzcsWzgsIkJFQUNPTl9TRU5UIiwib2siLCJHT09HTEVfU0lHTkFMX0RJU0FCTEVEIiwiZ3MiLCJHQTRfU1VCRE9NQUlOX0VOQUJMRUQiLCJ3ZyIsIkRFVklDRV9EQVRBX1JFREFDVElPTl9FTkFCTEVEIiwicmQiLCJHQTRfU1VCRE9NQUlOX0VOQUJMRURfV0lUSE9VVF9DT05TRU5UIiwid2djIl1dXV0sWzUyLCJuIixbMTcsWzE1LCJoIl0sIkEiXV0sWzUyLCJvIiwxLjE4ODY5MTg4RThdLFszNixbOCwiQSIsWzE1LCJwIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsIm0iLCJuIiwibyJdLFs1MCwidCIsWzQ2LCJ2Il0sWzUyLCJ3IixbMTYsWzE1LCJpIl0sWzE1LCJ2Il1dXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2XV1dLFs1MyxbNDEsIngiXSxbMywieCIsMF0sWzYzLFs3LCJ4Il0sWzIzLFsxNSwieCJdLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dLFszMyxbMTUsIngiXSxbMywieCIsWzAsWzE1LCJ4Il0sMV1dXSxbNDYsWzUzLFs1MiwieSIsWzE2LFsxNSwidyJdLFsxNSwieCJdXV0sWyJxIixbMTUsInAiXSxbMTcsWzE1LCJ5Il0sIm5hbWUiXSxbMTcsWzE1LCJ5Il0sInZhbHVlIl1dXV1dXV0sWzUwLCJ1IixbNDYsInYiXSxbMjIsWzMwLFsyOCxbMTUsInIiXV0sWzIxLFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInciXSxbMywidyIsWzE2LFsxNSwidiJdLFsxNSwicyJdXV0sWzIyLFsyMCxbMTUsInciXSxbNDRdXSxbNDYsWzUzLFszLCJ3IixbMTYsWzE1LCJ2Il0sWzE1LCJyIl1dXV1dXSxbMzYsWzI4LFsyOCxbMTUsInciXV1dXV0sWzIyLFsyOCxbMTUsIm4iXV0sWzQ2LFszNl1dXSxbNTIsInAiLFszMCxbMTcsWzE1LCJtIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImMiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicSIsWyJoIixbMTUsImYiXSxbMTUsIm8iXV1dLFs1MiwiciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsiaCIsWzE1LCJkIl0sWzE1LCJvIl1dXSxbIiQwIl1dXSxbNTIsInMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbImgiLFsxNSwiZSJdLFsxNSwibyJdXV0sWyIkMCJdXV0sWzUzLFs0MSwidiJdLFszLCJ2IiwwXSxbNjMsWzcsInYiXSxbMjMsWzE1LCJ2Il0sWzE3LFsxNSwibiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidiJdLFszLCJ2IixbMCxbMTUsInYiXSwxXV1dLFs0NixbNTMsWzUyLCJ3IixbMTYsWzE1LCJuIl0sWzE1LCJ2Il1dXSxbMjIsWzMwLFsxNyxbMTUsInciXSwiZGlzYWxsb3dBbGxSZWdpb25zIl0sWyJ1IixbMTcsWzE1LCJ3Il0sImRpc2FsbG93ZWRSZWdpb25zIl1dXSxbNDYsWzUzLFsidCIsWzE3LFsxNSwidyJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dXV1dXV1dXV0sWzUwLCJrIixbNDYsIm0iXSxbNTIsIm4iLFs4XV0sWzIyLFsyOCxbMTUsIm0iXV0sWzQ2LFszNixbMTUsIm4iXV1dXSxbNTIsIm8iLFsyLFsxNSwibSJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsInAiXSxbMywicCIsMF0sWzYzLFs3LCJwIl0sWzIzLFsxNSwicCJdLFsxNyxbMTUsIm8iXSwibGVuZ3RoIl1dLFszMyxbMTUsInAiXSxbMywicCIsWzAsWzE1LCJwIl0sMV1dXSxbNDYsWzUzLFs1MiwicSIsWzIsWzE2LFsxNSwibyJdLFsxNSwicCJdXSwidHJpbSIsWzddXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs2XV1dLFs1MiwiciIsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLSJdXV0sWzUyLCJzIixbMTYsWzE1LCJyIl0sMF1dLFs1MiwidCIsWzM5LFsyMCxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDJdLFsxNSwicSJdLFs0NF1dXSxbMjIsWzMwLFsyOCxbMTUsInMiXV0sWzIxLFsxNyxbMTUsInMiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzZdXV1dLFsyMixbMSxbMjEsWzE1LCJ0Il0sWzQ0XV0sWzMwLFsyMyxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDRdLFsxOCxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDZdXV0sWzQ2LFs1MyxbNl1dXV0sWzQzLFsxNSwibiJdLFsxNSwicSJdLHRydWVdXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImwiLFs0NiwibSJdLFsyMixbMjgsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl1dLFs0NixbMzYsWzddXV1dLFs1MiwibiIsWzhdXSxbNTMsWzQxLCJvIl0sWzMsIm8iLDBdLFs2MyxbNywibyJdLFsyMyxbMTUsIm8iXSxbMTcsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJvIl0sWzMsIm8iLFswLFsxNSwibyJdLDFdXV0sWzQ2LFs1MyxbNTIsInAiLFsxNixbMTcsWzE1LCJtIl0sInNldHRpbmdzVGFibGUiXSxbMTUsIm8iXV1dLFs1MiwicSIsWzE3LFsxNSwicCJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dLFsyMixbMjgsWzE2LFsxNSwiaSJdLFsxNSwicSJdXV0sWzQ2LFs2XV1dLFs0MyxbMTUsIm4iXSxbMTUsInEiXSxbOCwicmVkYWN0RmllbGRHcm91cCIsWzE1LCJxIl0sImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIixbOF1dXSxbNTIsInIiLFsxNixbMTUsIm4iXSxbMTUsInEiXV1dLFsyMixbMTcsWzE1LCJwIl0sImRpc2FsbG93QWxsUmVnaW9ucyJdLFs0NixbNTMsWzQzLFsxNSwiciJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLHRydWVdLFs2XV1dXSxbNDMsWzE1LCJyIl0sImRpc2FsbG93ZWRSZWdpb25zIixbImsiLFsxNyxbMTUsInAiXSwiZGlzYWxsb3dlZFJlZ2lvbnMiXV1dXV1dXSxbMzYsWzIsWzE1LCJiIl0sInZhbHVlcyIsWzcsWzE1LCJuIl1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldENvdW50cnlDb2RlIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYWN0aXZpdGllcyJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQSJdXSxbNTIsImkiLFs4LCJHT09HTEVfU0lHTkFMUyIsWzcsWzgsIm5hbWUiLCJhbGxvd19nb29nbGVfc2lnbmFscyIsInZhbHVlIixmYWxzZV1dLCJERVZJQ0VfQU5EX0dFTyIsWzcsWzgsIm5hbWUiLCJnZW9fZ3JhbnVsYXJpdHkiLCJ2YWx1ZSIsdHJ1ZV0sWzgsIm5hbWUiLCJyZWRhY3RfZGV2aWNlX2luZm8iLCJ2YWx1ZSIsdHJ1ZV1dXV0sWzM2LFs4LCJBIixbMTUsImoiXSwiQiIsWzE1LCJsIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzIsWzE1LCJjIl0sIkEiLFs3XV1dLFsyMixbMSxbMTUsImYiXSxbMTgsWzE3LFsxNSwiZiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzgsInBsZiIsWzIsWzE1LCJmIl0sImpvaW4iLFs3LCIuIl1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dhQ29udmVyc2lvblByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUMiLFs0NiwiYUQiXSxbNTIsImFFIixbNyxbMTcsWzE1LCJmIl0sIkIiXSxbMTcsWzE1LCJmIl0sIkMiXV1dLFs1MiwiYUYiLFs1MSwiIixbN10sWyJyIixbMTUsImFEIl1dLFsyLFsxNSwiYUIiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ3Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwidCJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkoiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwibiJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIngiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJxIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJCIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIm0iXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkMiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJFIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiSSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkciLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJIIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInkiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJhQSJdLCJBIixbNyxbMTUsImFEIl1dXSxbImsiLFsxNSwiYUQiXV0sWzIsWzE1LCJsIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwicyJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiRiIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkQiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwibyJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInYiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ1Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsieiIsWzE1LCJhRCJdXSxbMixbMTUsInAiXSwiQSIsWzcsWzE1LCJhRCJdXV1dXSxbNTIsImFHIixbNTEsIiIsWzddLFsiYyIsWzUxLCIiLFs3XSxbImFGIl0sWzIyLFsyOCxbImciLFsxNSwiYUUiXV1dLFs0NixbNTMsWyJkIixbNTEsIiIsWzddLFsyMixbImciLFsxNSwiYUUiXV0sWzQ2LFs1MyxbMixbMTUsImFEIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk4iXSx0cnVlXV0sWyJhRiJdXV1dXSxbMTUsImFFIl1dXV1dXSxbMTUsImFFIl1dXV0sWyJqIixbMTUsImFHIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5Il1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tBZGRBZHNDbGlja0lkcyJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfdGFza0FkZENvb2tpZURlcHJlY2F0aW9uTGFiZWwiXV0sWzUyLCJtIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGREZXZlbG9wZXJJZCJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfdGFza0FkZEV2ZW50UHJvdmVuYW5jZSJdXSxbNTIsIm8iLFsxNSwiX19tb2R1bGVfdGFza0FkZFVhY2hQYXJhbXMiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZW5kQWRzSGl0cyJdXSxbNTIsInEiLFsxNSwiX19tb2R1bGVfdGFza1NldEFkc1BhZ2VQYXJhbXMiXV0sWzUyLCJyIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSJdXSxbNTIsInMiLFsxNSwiX19tb2R1bGVfdGFza1NldEF1aWRQYXJhbSJdXSxbNTIsInQiLFsxNSwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyJdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyJdXSxbNTIsInYiLFsxNSwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIl1dLFs1MiwidyIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIl1dLFs1MiwieCIsWzE1LCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSJdXSxbNTIsInkiLFsxNSwiX19tb2R1bGVfdGFza1NldFByaXZhY3lQYXJhbXMiXV0sWzUyLCJ6IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwiYUEiLFsxNSwiX19tb2R1bGVfdGFza1NldFVybFBhc3N0aHJvdWdoUGFyYW1zIl1dLFs1MiwiYUIiLFsxNSwiX19tb2R1bGVfd2ViQWRzVGFza3MiXV0sWzM2LFs4LCJBIixbMTUsImFDIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV91c2VyRGF0YVdlYlByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwidyIsWzQ2LCJ4Il0sWzUyLCJ5IixbNyxbMTcsWzE1LCJjIl0sIkIiXSxbMTcsWzE1LCJjIl0sIkMiXV1dLFs1MiwieiIsWzUxLCIiLFs3XSxbIm0iLFsxNSwieCJdXSxbMixbMTUsInYiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsIm8iXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInUiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImoiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiRyIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInMiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImsiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbImgiLFsxNSwieCJdXSxbMixbMTUsImkiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInAiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInIiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImwiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiRCIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInEiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbInQiLFsxNSwieCJdXSxbMjIsWzI4LFsyLFsxNSwieCJdLCJpc0Fib3J0ZWQiLFs3XV1dLFs0NixbNTMsWyJnIixbMTUsIngiXV1dXV1dXSxbNTIsImFBIixbNTEsIiIsWzddLFsyMixbMjgsWyJkIixbMTUsInkiXV1dLFs0NixbNTMsWzM2XV1dXSxbInoiXV1dLFsiZiIsWzE1LCJhQSJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2NvbW1vbkFkc1Rhc2tzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRBZHNIaXQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrQWRkQWRzQ2xpY2tJZHMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRDb29raWVEZXByZWNhdGlvbkxhYmVsIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV90YXNrQWRkRGV2ZWxvcGVySWQiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iXV0sWzUyLCJvIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iXV0sWzUyLCJxIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRGZWF0dXJlVXNhZ2VQYXJhbXMiXV0sWzUyLCJyIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHb29nbGVBbmFseXNpc1BhcmFtcyJdXSxbNTIsInMiLFsxNSwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwidSIsWzE1LCJfX21vZHVsZV90YXNrU2V0VXNlcklkUGFyYW1zIl1dLFs1MiwidiIsWzE1LCJfX21vZHVsZV93ZWJBZHNUYXNrcyJdXSxbMzYsWzgsIkEiLFsxNSwidyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYWRzQ29udmVyc2lvblNwbGl0IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDYsInAiXSxbNTIsInEiLFszMCxbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiTSJdXV0sWzhdXV0sWzIyLFszMCxbMjgsWzE2LFsxNSwicSJdLFsxNyxbMTUsImoiXSwiQyJdXV0sWzI4LFsxNixbMTUsInEiXSxbMTcsWzE1LCJqIl0sIkIiXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsyOCxbImsiXV0sWzQ2LFszNl1dXSxbNTIsInIiLFsiaSIsWzIsWzE1LCJwIl0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sImNjZF9lbmFibGVfY20iXV0sWzUyLCJzIixbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1ciXV1dXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJEIl0sdHJ1ZV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCQyJdLHRydWVdXSxbMjIsWzI4LFsibSIsWzE1LCJzIl1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJRIl0sdHJ1ZV1dLFs1MiwidCIsWzMwLFsiaCIsWzE1LCJwIl1dLFsiZyJdXV0sWzIyLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklVIl1dXSxbNDYsWzUzLFsyLFsxNSwicCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklWIl0sWzE3LFsxNSwiYyJdLCJBIl1dXV1dLFs0NixbNTMsWzQxLCJ2Il0sWzMsInYiLFs0NF1dLFs0MSwidyJdLFszLCJ3IixbNDRdXSxbNTIsIngiLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktJIl1dXV0sWzIyLFsxNSwieCJdLFs0NixbNTMsWzIyLFsxNixbMTUsIngiXSxbMTcsWzE1LCJqIl0sIklVIl1dLFs0NixbNTMsWzMsInYiLFsxNixbMTUsIngiXSxbMTcsWzE1LCJqIl0sIklVIl1dXSxbMywidyIsWzE3LFsxNSwiYyJdLCJCIl1dXV1dXV1dLFsyMixbMjgsWzE1LCJ2Il1dLFs0NixbNTMsWzMsInYiLFsiZyIsWzIsWzE1LCJwIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0ciXV1dXV0sWzMsInciLFsxNyxbMTUsImMiXSwiQyJdXV1dXSxbMixbMTUsInAiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJVSJdLFsxNSwidiJdXV0sWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSVYiXSxbMTUsInciXV1dXV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVSJdLFsxNSwidCJdXV0sWzIyLFszMCxbMjgsWzE1LCJyIl1dLFsyOCxbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiRiJdXV1dXSxbNDYsWzUzLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVyJdLFs0NF1dXV1dXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ0UiXSx0cnVlXV0sWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSUkiXSxbMTUsInQiXV1dLFs1MiwidSIsWyJkIixbMTUsInAiXSxbOCwib21pdEhpdERhdGEiLHRydWVdXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkFRIl0sWzE3LFsxNSwiYiJdLCJLIl1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1ciXSxbMTUsInMiXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCQyJdLHRydWVdXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQkQiXSx0cnVlXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJRIl0sdHJ1ZV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVSJdLFsxNSwidCJdXV0sWzIsWzE1LCJ1Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiQ1IiXSxbMixbMTUsInAiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJDUiJdXV1dXSxbMjIsWzEsWzE1LCJyIl0sWyJrIl1dLFs0NixbNTMsWzIsWzE1LCJ1Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0MiXSwiMSJdXV1dXSxbNjgsInYiLFs1MyxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJ1Il1dXV0sWzQ2XV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc09yZGVySWRTb3VyY2UiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2VuZXJhdGVDbGllbnRJZCJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZwZmUiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudXNlckRhdGFOZWVkc0VuY3J5cHRpb24iXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3VzZXJEYXRhV2ViUHJvY2Vzc29yIl1dLFszNixbOCwiQSIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nYWN0Q29udmVyc2lvblByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUUiLFs0NiwiYUYiXSxbNTIsImFHIixbNTEsIiIsWzddLFsibyIsWzE1LCJhRiJdXSxbMixbMTUsImFEIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwibCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInIiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ2Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwicSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkoiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwieCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImoiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJuIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJCIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImkiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkMiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJFIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiSSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkciLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwieSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFBIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsiZyIsWzE1LCJhRiJdXSxbMixbMTUsImgiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJGIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiRCIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJrIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFDIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwicyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFCIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFEIl0sIkIiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUQiXSwiQyIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidCJdLCJBIixbNyxbMTUsImFGIl1dXSxbInoiLFsxNSwiYUYiXV0sWzIsWzE1LCJtIl0sIkEiLFs3LFsxNSwiYUYiXV1dXV0sWyJmIixbMTUsImFHIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWRzQ29udmVyc2lvblNwbGl0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9jb21tb25BZHNUYXNrcyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza0FkZEFkc0NsaWNrSWRzIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV90YXNrQWRkRXZlbnRQcm92ZW5hbmNlIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV90YXNrQWRkVWFjaFBhcmFtcyJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfdGFza0luaXRTZXJ2aWNlV29ya2VyIl1dLFs1MiwibSIsWzE1LCJfX21vZHVsZV90YXNrU2VuZEFkc0hpdHMiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBZHNQYWdlUGFyYW1zIl1dLFs1MiwibyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iXV0sWzUyLCJxIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiXV0sWzUyLCJyIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iXV0sWzUyLCJzIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDdXN0b21lckxpZmVjeWNsZVBhcmFtcyJdXSxbNTIsInQiLFsxNSwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyJdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIl1dLFs1MiwidiIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIl1dLFs1MiwidyIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3NhRXhwZXJpbWVudElkIl1dLFs1MiwieCIsWzE1LCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSJdXSxbNTIsInkiLFsxNSwiX19tb2R1bGVfdGFza1NldFByaXZhY3lQYXJhbXMiXV0sWzUyLCJ6IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwiYUEiLFsxNSwiX19tb2R1bGVfdGFza1NldFVybFBhc3N0aHJvdWdoUGFyYW1zIl1dLFs1MiwiYUIiLFsxNSwiX19tb2R1bGVfdGFza1NldFVzZXJJZFBhcmFtcyJdXSxbNTIsImFDIixbMTUsIl9fbW9kdWxlX3Rhc2tTdG9yZUJyYWlkTGFiZWxzIl1dLFs1MiwiYUQiLFsxNSwiX19tb2R1bGVfd2ViQWRzVGFza3MiXV0sWzM2LFs4LCJBIixbMTUsImFFIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wcm9jZXNzb3JzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJnIixbNDYsImkiLCJqIl0sWzQzLFsxNSwiZiJdLFsxNSwiaSJdLFs4LCJwcm9jZXNzIixbMTUsImoiXV1dXSxbNTAsImgiLFs0NiwiaSIsImoiXSxbNTIsImsiLFsxNixbMTUsImYiXSxbMTUsImkiXV1dLFsyMixbMjgsWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sIm5vU3VjaFByb2Nlc3NvckZvckhpdFR5cGUiLFs3XV1dXV0sWzY4LCJsIixbNTMsWzIsWzE1LCJrIl0sInByb2Nlc3MiLFs3LFsxNSwiaiJdXV1dLFs0Nl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2dhQ29udmVyc2lvblByb2Nlc3NvciJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ2FjdENvbnZlcnNpb25Qcm9jZXNzb3IiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX3VzZXJEYXRhV2ViUHJvY2Vzc29yIl1dLFs1MiwiZiIsWzhdXSxbImciLFsxNyxbMTUsImIiXSwiRiJdLFsxNyxbMTUsImMiXSwiQSJdXSxbImciLFsxNyxbMTUsImIiXSwiRCJdLFsxNyxbMTUsImQiXSwiQSJdXSxbImciLFsxNyxbMTUsImIiXSwiSyJdLFsxNyxbMTUsImUiXSwiQSJdXSxbMzYsWzgsIkIiLFsxNSwiaCJdLCJBIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fYyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9hZGRfMXBfZGF0YSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9hZGRfZWNzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2F1dG9fcmVkYWN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9kb3dubG9hZCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9wYWdlX3ZpZXciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fc2Nyb2xsIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3NpdGVfc2VhcmNoIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3ZpZGVvIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX2Fkc19saW5rIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX2ZpcnN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX2xhc3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZ2FfcmVnc2NvcGUiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19lIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZ2N0Ijp7IjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19vZ3RfZ29vZ2xlX3NpZ25hbHMiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQoKCn0KLCJibG9iIjp7IjEiOiIxIiwiMTAiOiJHLVZMTUZHSzQ1MEgiLCIxNCI6IjY3bTAiLCIxNSI6IjAiLCIxNiI6IkNoRUk4SU9jMHdZUWdPbXNrdnVseEtxUkFSSWRBTDJQWVphL3gyakNWV1Y2dVpNd2FsVWppcTRlb2dhclFOWEorVElhQWcwRiIsIjE3IjoiYyIsIjE5IjoiZGF0YUxheWVyIiwiMiI6dHJ1ZSwiMjAiOiIiLCIyMSI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjIyIjoiZXlJd0lqb2lUazhpTENJeElqb2lUazh0TURNaUxDSXlJanBtWVd4elpTd2lNeUk2SW1kdmIyZHNaUzV1YnlJc0lqUWlPaUp5WldkcGIyNHhJaXdpTlNJNlptRnNjMlVzSWpZaU9uUnlkV1VzSWpjaU9pSmhaRjl6ZEc5eVlXZGxmR0Z1WVd4NWRHbGpjMTl6ZEc5eVlXZGxmR0ZrWDNWelpYSmZaR0YwWVh4aFpGOXdaWEp6YjI1aGJHbDZZWFJwYjI0aUxDSTVJanAwY25WbGZRIiwiMjMiOiJnb29nbGUudGFnbWFuYWdlci5kZWJ1Z3VpMi5xdWV1ZSIsIjI0IjoidGFnYXNzaXN0YW50Lmdvb2dsZS5jb20iLCIyNyI6MC4wMDUsIjMiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIzMCI6Ik5PIiwiMzEiOiJOTy0wMyIsIjMyIjpmYWxzZSwiMzMiOiJyZWdpb24xIiwiMzQiOiJHLVZMTUZHSzQ1MEgiLCIzNSI6IkciLCIzNiI6Imh0dHBzOi8vYWRzZXJ2aWNlLmdvb2dsZS5jb20vcGFnZWFkL3JlZ2NsayIsIjM3IjoiX19UQUdHWV9JTlNUQUxMRUQiLCIzOCI6ImNjdC5nb29nbGUiLCIzOSI6Imdvb2dUYWdneVJlZmVycmVyIiwiNDAiOiJodHRwczovL2NjdC5nb29nbGUvdGFnZ3kvYWdlbnQuanMiLCI0MSI6Imdvb2dsZS50YWdtYW5hZ2VyLnRhLnByb2RxdWV1ZSIsIjQyIjowLjAxLCI0MyI6IntcImtleXNcIjpbe1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJLbHlUWDJqeW9icFFDbWZVeUJiaEJ5UUhrOVoySGRONWxIeHBCQXRJS0dNY216dzBnRStlYmxZQ21tMUdhN2JZZVRkeWRvSm1lNklwYVNvQ1UwSVVVbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJkZWU0YjM1MS1iMGY1LTRjMjctYThjOC1lZDY2MDQ3N2E0NGNcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJEdFlCUm5QQlMxZzZtZVhPMXJRNWE1MkI1RmJuaDdEQzVqcXYwMml4SnNzbjBrMUo5cmNIQ2FWYy96elJzbnNIQnpTb0ZLczZKOHBIN0NjblFQM0Vqdz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJhZDE5M2IyYS00YTkwLTRjMWEtYjc5ZS1kZTM3YWMzOTFiZDJcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJNWjBVTXVkQWU0UG9hZlNUcFV4UHRJa2ZCZUNNYkZCWHZ0eVJZdkhMQ1NRL0VVdkVKc21zVjR0Nk5CL0JFVnBxTDNIdjhnTlNRaDdLK1NVb29mMjVhbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0OGM0ZWZlMS1mZGQwLTQzNmEtYWM4Zi05MjNmMTE5MTg3ODdcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJGZmx2VWwreHBIYUZWQ0lZTzFLUEx4a3YrQWpkbDRkOHJ2clhoSTZ6ZnBuYkJEcUk1MUREa3RISGIzWldJUzU3b0RoMEtpcjlBdUNPb24yTU94TlY5WT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0MzJiYzI3MC05OWVhLTQyMjAtYjU2Mi1lMmM1YWU3N2Q0ZDlcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJBUThUa3k0RExXT0piSE9IYlZZRGJRWkVmRWVsYjRGVEI4RVlNUWVSUWlMMW0xTHRBZDByM3pleUxqZ1ozL1cyNFI4VmZiMjJ6WTJpeDZXL1RmQ2pqQT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCIwNTBhNmUxMS0zOGFiLTRmODAtODljYi03YjMxOWI5NzA0YzBcIn1dfSIsIjQ0IjoiMTE4ODk3OTIwfjExODg5NzkzMCIsIjQ1Ijp0cnVlLCI0NiI6eyIxIjoiMTAwMCIsIjEwIjoiNjZ1MCIsIjExIjoiNjZnMCIsIjE0IjoiMTAwMCIsIjE2IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIxNyI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMiI6IjkiLCIyMCI6IjUwMDAiLCIyMSI6IjUwMDAiLCIyMiI6IjQuNC4wIiwiMjMiOiIwLjAuMCIsIjI1IjoiMSIsIjI2IjoiNDAwMCIsIjI3IjoiMTAwIiwiMyI6IjUiLCI0IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIiwiNDQiOiIxNTAwMCIsIjQ4IjoiMzAwMDAiLCI1IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGEiLCI2IjoiMSIsIjYxIjoiMTAwMCIsIjYyIjoiQTZPTkhSWTcvYnZCcm8rSU1aZC9hNkxOam43U1N2OTk5U2tOL2hGQUU5TDZ2TXIzNGROZ2ZkU1ZkWW12NFUrTkhaZzFzeGQzOFJ0Y2lScFJVdElSUGdRQUFBQ0NleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1YwWVdkdFlXNWhaMlZ5TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVUyaGhjbVZrVjI5eWEyVnlSWGgwWlc1a1pXUk1hV1psZEdsdFpTSXNJbVY0Y0dseWVTSTZNVGMzTmpjeU9UWXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIsIjYzIjoiMTAwMCIsIjY2IjoiMTAwIiwiNyI6IjEwIn0sIjQ4Ijp0cnVlLCI1IjoiRy1WTE1GR0s0NTBIIiwiNTEiOnRydWUsIjU1IjpbIkctVkxNRkdLNDUwSCJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiRy1WTE1GR0s0NTBIIl0sIjYiOiI4NjY2NTYyNyIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fYyI6e30KLAoiX19jY2RfYWRkXzFwX2RhdGEiOnsicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fY2NkX2FkZF9lY3MiOnt9CiwKIl9fY2NkX2F1dG9fcmVkYWN0Ijp7fQosCiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciOnt9CiwKIl9fY2NkX2VtX2Rvd25sb2FkIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmxpbmtDbGljayJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9fQosCiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayI6eyJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55IiwicXVlcmllc0FsbG93ZWQiOiJhbnkifSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0ubGlua0NsaWNrIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn19CiwKIl9fY2NkX2VtX3BhZ2VfdmlldyI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5oaXN0b3J5Q2hhbmdlLXYyIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9zY3JvbGwiOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uc2Nyb2xsRGVwdGgiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X3Njcm9sbF9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55IiwicXVlcmllc0FsbG93ZWQiOiJhbnkifSwicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fY2NkX2VtX3ZpZGVvIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLnZpZGVvIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyI6eyJhbGxvd0ZpeE1pc3NpbmdKYXZhU2NyaXB0QXBpIjpmYWxzZX19CiwKIl9fY2NkX2dhX2Fkc19saW5rIjp7ImdldF91c2VyX2FnZW50Ijp7fSwicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6ImFueSJ9LCJyZWFkX3RpdGxlIjp7fSwicmVhZF9zY3JlZW5fZGltZW5zaW9ucyI6e30sImFjY2Vzc19jb25zZW50Ijp7ImNvbnNlbnRUeXBlcyI6W3siY29uc2VudFR5cGUiOiJhZF9wZXJzb25hbGl6YXRpb24iLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9LHsiY29uc2VudFR5cGUiOiJhZF9zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYWRfdXNlcl9kYXRhIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19LCJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55In0sImdldF9yZWZlcnJlciI6eyJ1cmxQYXJ0cyI6ImFueSJ9LCJhY2Nlc3NfZ2xvYmFscyI6eyJrZXlzIjpbeyJrZXkiOiJfX2dzYUV4cC5pZCIsInJlYWQiOmZhbHNlLCJ3cml0ZSI6ZmFsc2UsImV4ZWN1dGUiOnRydWV9XX19CiwKIl9fY2NkX2dhX2ZpcnN0Ijp7InJlYWRfZG9tX2VsZW1lbnRzIjp7ImFsbG93ZWRDc3NTZWxlY3RvcnMiOiJhbnkifSwiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6InNwZWNpZmljIiwicHJvdG9jb2wiOnRydWUsImhvc3QiOnRydWV9fQosCiJfX2NjZF9nYV9sYXN0Ijp7fQosCiJfX2NjZF9nYV9yZWdzY29wZSI6eyJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19lIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50Il19fQosCiJfX2djdCI6eyJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e319CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fb2d0X2dvb2dsZV9zaWduYWxzIjp7InJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7fQoKCn0KCgoKLCJzZWN1cml0eV9ncm91cHMiOnsKImdvb2dsZSI6WwoiX19jIgosCiJfX2NjZF9hZGRfMXBfZGF0YSIKLAoiX19jY2RfYWRkX2VjcyIKLAoiX19jY2RfYXV0b19yZWRhY3QiCiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIKLAoiX19jY2RfZW1fZG93bmxvYWQiCiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIgosCiJfX2NjZF9lbV9wYWdlX3ZpZXciCiwKIl9fY2NkX2VtX3Njcm9sbCIKLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giCiwKIl9fY2NkX2VtX3ZpZGVvIgosCiJfX2NjZF9nYV9hZHNfbGluayIKLAoiX19jY2RfZ2FfZmlyc3QiCiwKIl9fY2NkX2dhX2xhc3QiCiwKIl9fY2NkX2dhX3JlZ3Njb3BlIgosCiJfX2UiCiwKIl9fZ2N0IgosCiJfX29ndF8xcF9kYXRhX3YyIgosCiJfX29ndF9nb29nbGVfc2lnbmFscyIKLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyIKCl0KCgp9CgoKCgoKfTsKCgoKCnZhciBrLGFhPXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O2IucHJvdG90eXBlPWE7cmV0dXJuIG5ldyBifSxiYT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfSxjYT1mdW5jdGlvbihhKXtmb3IodmFyIGI9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkJiZkLk1hdGg9PU1hdGgpcmV0dXJuIGR9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTsKfSxoYT1jYSh0aGlzKSxpYT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgieCIpPT09InN5bWJvbCIsa2E9e30sbGE9e30sbmE9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjfHxhIT1udWxsKXt2YXIgZD1sYVtiXTtpZihkPT1udWxsKXJldHVybiBhW2JdO3ZhciBlPWFbZF07cmV0dXJuIGUhPT12b2lkIDA/ZTphW2JdfX0sb2E9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpYTp7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9ZC5sZW5ndGg9PT0xLGY9ZFswXSxnOyFlJiZmIGluIGthP2c9a2E6Zz1oYTtmb3IodmFyIGg9MDtoPGQubGVuZ3RoLTE7aCsrKXt2YXIgbD1kW2hdO2lmKCEobCBpbiBnKSlicmVhayBhO2c9Z1tsXX12YXIgbj1kW2QubGVuZ3RoLTFdLHA9aWEmJmM9PT0iZXM2Ij9nW25dOm51bGwscT1iKHApO2lmKHEhPW51bGwpaWYoZSliYShrYSxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pO2Vsc2UgaWYocSE9PXApe2lmKGxhW25dPT09dm9pZCAwKXt2YXIgcj0KTWF0aC5yYW5kb20oKSoxRTk+Pj4wO2xhW25dPWlhP2hhLlN5bWJvbChuKToiJGpzY3AkIityKyIkIitufWJhKGcsbGFbbl0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSl9fX0scGE7aWYoaWEmJnR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpcGE9T2JqZWN0LnNldFByb3RvdHlwZU9mO2Vsc2V7dmFyIHJhO2E6e3ZhciB0YT17YTohMH0sdWE9e307dHJ5e3VhLl9fcHJvdG9fXz10YTtyYT11YS5hO2JyZWFrIGF9Y2F0Y2goYSl7fXJhPSExfXBhPXJhP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbH0KdmFyIHZhPXBhLHdhPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9YWEoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYodmEpdmEoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLkZ0PWIucHJvdG90eXBlfSx4YT1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX0sbT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6eGEoYSl9Owp0aHJvdyBFcnJvcihTdHJpbmcoYSkrIiBpcyBub3QgYW4gaXRlcmFibGUgb3IgQXJyYXlMaWtlIik7fSx5YT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTtyZXR1cm4gY30sdz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5P2E6eWEobShhKSl9LEFhPWZ1bmN0aW9uKGEpe3JldHVybiB6YShhLGEpfSx6YT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9LEJhPWlhJiZ0eXBlb2YgbmEoT2JqZWN0LCJhc3NpZ24iKT09ImZ1bmN0aW9uIj9uYShPYmplY3QsImFzc2lnbiIpOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyBudWxsaXNoIGFyZyIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTsKaWYoZClmb3IodmFyIGUgaW4gZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKSYmKGFbZV09ZFtlXSl9cmV0dXJuIGF9O29hKCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8QmF9LCJlczYiKTt2YXIgQ2E9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO30sRGE9ZnVuY3Rpb24oKXt0aGlzLmZhPSExO3RoaXMuUj1udWxsO3RoaXMuamE9dm9pZCAwO3RoaXMuSD0xO3RoaXMuTj10aGlzLlo9MDt0aGlzLkxhPXRoaXMuSz1udWxsfSxFYT1mdW5jdGlvbihhKXtpZihhLmZhKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTthLmZhPSEwfTtEYS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSl7dGhpcy5qYT1hfTsKdmFyIEdhPWZ1bmN0aW9uKGEsYil7YS5LPXthbzpiLGlzRXhjZXB0aW9uOiEwfTthLkg9YS5afHxhLk59O0RhLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O0RhLnByb3RvdHlwZS5nZXRZaWVsZFJlc3VsdEpzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmphfTtEYS5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuSz17cmV0dXJuOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZVsicmV0dXJuIl09RGEucHJvdG90eXBlLnJldHVybjtEYS5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oYSl7dGhpcy5LPXtuZDphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5BajtEYS5wcm90b3R5cGUuYWM9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YjtyZXR1cm57dmFsdWU6YX19O0RhLnByb3RvdHlwZS55aWVsZD1EYS5wcm90b3R5cGUuYWM7CkRhLnByb3RvdHlwZS54cz1mdW5jdGlvbihhLGIpe3ZhciBjPW0oYSksZD1jLm5leHQoKTtDYShkKTtpZihkLmRvbmUpdGhpcy5qYT1kLnZhbHVlLHRoaXMuSD1iO2Vsc2UgcmV0dXJuIHRoaXMuUj1jLHRoaXMuYWMoZC52YWx1ZSxiKX07RGEucHJvdG90eXBlLnlpZWxkQWxsPURhLnByb3RvdHlwZS54cztEYS5wcm90b3R5cGUubmQ9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5qdW1wVG89RGEucHJvdG90eXBlLm5kO0RhLnByb3RvdHlwZS5Eaj1mdW5jdGlvbigpe3RoaXMuSD0wfTtEYS5wcm90b3R5cGUuanVtcFRvRW5kPURhLnByb3RvdHlwZS5EajtEYS5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTtiIT12b2lkIDAmJih0aGlzLk49Yil9O0RhLnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLk5qO0RhLnByb3RvdHlwZS52Zz1mdW5jdGlvbihhKXt0aGlzLlo9MDt0aGlzLk49YXx8MH07CkRhLnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLnZnO0RhLnByb3RvdHlwZS5Jaj1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuWj1ifHwwfTtEYS5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1EYS5wcm90b3R5cGUuSWo7RGEucHJvdG90eXBlLlBoPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfHwwO3ZhciBiPXRoaXMuSy5hbzt0aGlzLks9bnVsbDtyZXR1cm4gYn07RGEucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1EYS5wcm90b3R5cGUuUGg7RGEucHJvdG90eXBlLmtkPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuTGFbY109dGhpcy5LOnRoaXMuTGE9W3RoaXMuS107dGhpcy5aPWF8fDA7dGhpcy5OPWJ8fDB9O0RhLnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUua2Q7CkRhLnByb3RvdHlwZS5oZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTGEuc3BsaWNlKGJ8fDApWzBdLGQ9dGhpcy5LPXRoaXMuS3x8YztkP2QuaXNFeGNlcHRpb24/dGhpcy5IPXRoaXMuWnx8dGhpcy5OOmQubmQhPXZvaWQgMCYmdGhpcy5OPGQubmQ/KHRoaXMuSD1kLm5kLHRoaXMuSz1udWxsKTp0aGlzLkg9dGhpcy5OOnRoaXMuSD1hfTtEYS5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmhlO0RhLnByb3RvdHlwZS5mZT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEhhKGEpfTtEYS5wcm90b3R5cGUuZm9ySW49RGEucHJvdG90eXBlLmZlO3ZhciBIYT1mdW5jdGlvbihhKXt0aGlzLks9YTt0aGlzLkg9W107Zm9yKHZhciBiIGluIGEpdGhpcy5ILnB1c2goYik7dGhpcy5ILnJldmVyc2UoKX07SGEucHJvdG90eXBlLmhvPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLkgubGVuZ3RoPjA7KXt2YXIgYT10aGlzLkgucG9wKCk7aWYoYSBpbiB0aGlzLkspcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpIYS5wcm90b3R5cGUuZ2V0TmV4dD1IYS5wcm90b3R5cGUuaG87CnZhciBJYT1mdW5jdGlvbihhKXt0aGlzLkg9bmV3IERhO3RoaXMuSz1hfSxMYT1mdW5jdGlvbihhLGIpe0VhKGEuSCk7dmFyIGM9YS5ILlI7aWYoYylyZXR1cm4gSmEoYSwicmV0dXJuImluIGM/Y1sicmV0dXJuIl06ZnVuY3Rpb24oZCl7cmV0dXJue3ZhbHVlOmQsZG9uZTohMH19LGIsYS5ILnJldHVybik7YS5ILnJldHVybihiKTtyZXR1cm4gS2EoYSl9LEphPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXt2YXIgZT1iLmNhbGwoYS5ILlIsYyk7Q2EoZSk7aWYoIWUuZG9uZSlyZXR1cm4gYS5ILmZhPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5ILlI9bnVsbCxHYShhLkgsZyksS2EoYSl9YS5ILlI9bnVsbDtkLmNhbGwoYS5ILGYpO3JldHVybiBLYShhKX0sS2E9ZnVuY3Rpb24oYSl7Zm9yKDthLkguSDspdHJ5e3ZhciBiPWEuSyhhLkgpO2lmKGIpcmV0dXJuIGEuSC5mYT0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChkKXthLkguamE9dm9pZCAwLEdhKGEuSCwKZCl9YS5ILmZhPSExO2lmKGEuSC5LKXt2YXIgYz1hLkguSzthLkguSz1udWxsO2lmKGMuaXNFeGNlcHRpb24pdGhyb3cgYy5hbztyZXR1cm57dmFsdWU6Yy5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX0sTWE9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SLm5leHQsYixhLkgueWEpOihhLkgueWEoYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlJbInRocm93Il0sYixhLkgueWEpOihHYShhLkgsYiksYz1LYShhKSk7cmV0dXJuIGN9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBMYShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319LE5hPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1hKG5ldyBJYShiKSk7dmEmJmEucHJvdG90eXBlJiZ2YShjLAphLnByb3RvdHlwZSk7cmV0dXJuIGN9LE9hPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9LFFhPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgUmE9dGhpc3x8c2VsZixTYT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5GdD1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EubnY9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTt2YXIgVGE9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YTt0aGlzLmRhdGE9Yn07dmFyIFVhPWZ1bmN0aW9uKCl7dGhpcy5tYXA9e307dGhpcy5IPXt9fTtVYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcFsiZHVzdC4iK2FdfTtVYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShjKXx8KHRoaXMubWFwW2NdPWIpfTtVYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eSgiZHVzdC4iK2EpfTtVYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe3ZhciBiPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYil8fGRlbGV0ZSB0aGlzLm1hcFtiXX07CnZhciBWYT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5tYXApaWYoYS5tYXAuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO3N3aXRjaChiKXtjYXNlIDE6Yy5wdXNoKGUpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5tYXBbZF0pO2JyZWFrO2Nhc2UgMzpjLnB1c2goW2UsYS5tYXBbZF1dKX19cmV0dXJuIGN9O1VhLnByb3RvdHlwZS5GYT1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDEpfTtVYS5wcm90b3R5cGUuaGM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywyKX07VWEucHJvdG90eXBlLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMyl9O3ZhciBXYT1mdW5jdGlvbigpe307V2EucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7fTt2YXIgWGE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9O3RoaXMucHJlZml4PSJndG0uIn07az1YYS5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV09Yn07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkodGhpcy5wcmVmaXgrU3RyaW5nKGEpKX07ay5kZWxldGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5wcmVmaXgrU3RyaW5nKGEpO3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KGIpPyhkZWxldGUgdGhpcy52YWx1ZVtiXSwhMCk6ITF9O2suY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXt9fTsKay52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3JldHVybiBmdW5jdGlvbiBjKCl7dmFyIGQsZSxmO3JldHVybiBOYShjLGZ1bmN0aW9uKGcpe3N3aXRjaChnLkgpe2Nhc2UgMTpnLnZnKDIpLGU9Zy5mZShhLnZhbHVlKTtjYXNlIDQ6aWYoKGQ9ZS5obygpKT09bnVsbCl7Zy5uZCgyKTticmVha31pZighYS52YWx1ZS5oYXNPd25Qcm9wZXJ0eShkKSl7Zy5uZCg0KTticmVha31mPVFhO3JldHVybiBnLmFjKGEudmFsdWVbZF0sOCk7Y2FzZSA4OmYoZy5qYSk7Zy5uZCg0KTticmVhaztjYXNlIDI6Zy5rZCgpLGcuaGUoMCl9fSl9KCl9O2hhLk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFhhLnByb3RvdHlwZSx7c2l6ZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudmFsdWUpLmxlbmd0aH19fSk7CmZ1bmN0aW9uIFlhKCl7dHJ5e2lmKE1hcClyZXR1cm4gbmV3IE1hcH1jYXRjaChhKXt9cmV0dXJuIG5ldyBYYX07dmFyIFphPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZXM9W119O1phLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZXMuaW5kZXhPZihhKT09PS0xJiZ0aGlzLnZhbHVlcy5wdXNoKGEpfTtaYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5pbmRleE9mKGEpPi0xfTt2YXIgJGE9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLlI9dGhpcy5LPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuTj1mdW5jdGlvbihkLGUsZil7cmV0dXJuIGQuYXBwbHkoZSxmKX07dGhpcy5IPVlhKCk7dmFyIGM7YTp7dHJ5e2lmKFNldCl7Yz1uZXcgU2V0O2JyZWFrIGF9fWNhdGNoKGQpe31jPW5ldyBaYX10aGlzLlo9Y307JGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCExKX07JGEucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITApfTt2YXIgYWI9ZnVuY3Rpb24oYSxiLGMsZCl7YS5IYnx8YS5aLmhhcyhiKXx8KGQmJmEuWi5hZGQoYiksYS5ILnNldChiLGMpKX07az0kYS5wcm90b3R5cGU7Cmsuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLkguaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMuWi5oYXMoYSl8fHRoaXMuSC5zZXQoYSxiKSl9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkguaGFzKGEpP3RoaXMuSC5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLkguaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgJGEodGhpcy5mYSx0aGlzKTt0aGlzLksmJmEuUWIodGhpcy5LKTthLnNkKHRoaXMuTik7YS51ZSh0aGlzLlIpO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmF9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTsKay5zZD1mdW5jdGlvbihhKXt0aGlzLk49YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07dmFyIGJiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxhLm1lc3NhZ2UpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMudm89YTt0aGlzLlNuPWM9PT12b2lkIDA/ITE6Yzt0aGlzLks9W107dGhpcy5IPWJ9O3dhKGJiLEVycm9yKTt2YXIgY2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBiYj9hOm5ldyBiYihhLHZvaWQgMCwhMCl9O3ZhciBkYj1ZYSgpO2Z1bmN0aW9uIGViKGEsYil7Zm9yKHZhciBjLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmUmJiEoYz1mYihhLGUudmFsdWUpLGMgaW5zdGFuY2VvZiBUYSk7ZT1kLm5leHQoKSk7cmV0dXJuIGN9ZnVuY3Rpb24gZmIoYSxiKXt0cnl7dmFyIGM9YlswXSxkPWIuc2xpY2UoMSksZT1TdHJpbmcoYyksZj1kYi5oYXMoZSk/ZGIuZ2V0KGUpOmEuZ2V0KGUpO2lmKCFmfHx0eXBlb2YgZi5pbnZva2UhPT0iZnVuY3Rpb24iKXRocm93IGNiKEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4ZWN1dGUgbm9uLWZ1bmN0aW9uICIrYlswXSsiLiIpKTtyZXR1cm4gZi5hcHBseShhLGQpfWNhdGNoKGgpe3ZhciBnPWEuZm8oKTtnJiZnKGgsYi5jb250ZXh0P3tpZDpiWzBdLGxpbmU6Yi5jb250ZXh0LmxpbmV9Om51bGwpO3Rocm93IGg7fX07dmFyIGdiPWZ1bmN0aW9uKCl7dGhpcy5LPW5ldyBXYTt0aGlzLkg9bmV3ICRhKHRoaXMuSyl9O2s9Z2IucHJvdG90eXBlO2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07ay5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9O2suZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yayhbYV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLnJrPWZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9bShPYS5hcHBseSgwLGFyZ3VtZW50cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWE9ZmIodGhpcy5ILGMudmFsdWUpO3JldHVybiBhfTtrLkpxPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPXRoaXMuSC53YigpO2MudWUoYSk7Zm9yKHZhciBkLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkPWZiKGMsZi52YWx1ZSk7cmV0dXJuIGR9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07dmFyIGhiPWZ1bmN0aW9uKGEsYil7dGhpcy5SPWE7dGhpcy5wYXJlbnQ9Yjt0aGlzLk49dGhpcy5IPXZvaWQgMDt0aGlzLkhiPSExO3RoaXMuSz1mdW5jdGlvbihjLGQsZSl7cmV0dXJuIGMuYXBwbHkoZCxlKX07dGhpcy52YWx1ZXM9bmV3IFVhfTtoYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITEpfTtoYi5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMCl9O3ZhciBqYj1mdW5jdGlvbihhLGIsYyxkKXtpZighYS5IYilpZihkKXt2YXIgZT1hLnZhbHVlcztlLnNldChiLGMpO2UuSFsiZHVzdC4iK2JdPSEwfWVsc2UgYS52YWx1ZXMuc2V0KGIsYyl9O2s9aGIucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5IYnx8KCF0aGlzLnZhbHVlcy5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy52YWx1ZXMuc2V0KGEsYikpfTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmhhcyhhKT90aGlzLnZhbHVlcy5nZXQoYSk6dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0KGEpOnZvaWQgMH07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuISF0aGlzLnZhbHVlcy5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyBoYih0aGlzLlIsdGhpcyk7dGhpcy5IJiZhLlFiKHRoaXMuSCk7YS5zZCh0aGlzLkspO2EudWUodGhpcy5OKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2suZm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTt2YXIga2I9ZnVuY3Rpb24oKXt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhfTtrPWtiLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gbGIoKXtmb3IodmFyIGE9bWIsYj17fSxjPTA7YzxhLmxlbmd0aDsrK2MpYlthW2NdXT1jO3JldHVybiBifWZ1bmN0aW9uIG5iKCl7dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjthKz1hLnRvTG93ZXJDYXNlKCkrIjAxMjM0NTY3ODktXyI7cmV0dXJuIGErIi4ifXZhciBtYixvYjtmdW5jdGlvbiBwYihhKXttYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7Yys9Myl7dmFyIGQ9YysxPGEubGVuZ3RoLGU9YysyPGEubGVuZ3RoLGY9YS5jaGFyQ29kZUF0KGMpLGc9ZD9hLmNoYXJDb2RlQXQoYysxKTowLGg9ZT9hLmNoYXJDb2RlQXQoYysyKTowLGw9Zj4+MixuPShmJjMpPDw0fGc+PjQscD0oZyYxNSk8PDJ8aD4+NixxPWgmNjM7ZXx8KHE9NjQsZHx8KHA9NjQpKTtiLnB1c2gobWJbbF0sbWJbbl0sbWJbcF0sbWJbcV0pfXJldHVybiBiLmpvaW4oIiIpfQpmdW5jdGlvbiBxYihhKXtmdW5jdGlvbiBiKGwpe2Zvcig7ZDxhLmxlbmd0aDspe3ZhciBuPWEuY2hhckF0KGQrKykscD1vYltuXTtpZihwIT1udWxsKXJldHVybiBwO2lmKCEvXltcc1x4YTBdKiQvLnRlc3QobikpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrbik7fXJldHVybiBsfW1iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYz0iIixkPTA7Oyl7dmFyIGU9YigtMSksZj1iKDApLGc9Yig2NCksaD1iKDY0KTtpZihoPT09NjQmJmU9PT0tMSlyZXR1cm4gYztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGU8PDJ8Zj4+NCk7ZyE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShmPDw0JjI0MHxnPj4yKSxoIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGc8PDYmMTkyfGgpKSl9fTt2YXIgcmI9e307ZnVuY3Rpb24gc2IoYSxiKXt2YXIgYz1yYlthXTtjfHwoYz1yYlthXT1bXSk7Y1tiXT0hMH1mdW5jdGlvbiB0Yigpe2RlbGV0ZSByYi5HQTRfRVZFTlR9ZnVuY3Rpb24gdWIoKXt2YXIgYT12Yi5ILnNsaWNlKCk7cmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUw9YX1mdW5jdGlvbiB3YihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKylkJTg9PT0wJiZkPjAmJihiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSksYz0wKSxhW2RdJiYoY3w9MTw8ZCU4KTtjPjAmJmIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtyZXR1cm4gcGIoYi5qb2luKCIiKSkucmVwbGFjZSgvXC4rJC8sIiIpfTtmdW5jdGlvbiB4Yigpe31mdW5jdGlvbiB5YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIHpiKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIEFiKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiYhaXNOYU4oYSl9ZnVuY3Rpb24gQmIoYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpbYV19ZnVuY3Rpb24gQ2IoYSxiKXtpZihhJiZBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmIoYVtjXSkpcmV0dXJuIGFbY119ZnVuY3Rpb24gRGIoYSxiKXtpZighQWIoYSl8fCFBYihiKXx8YT5iKWE9MCxiPTIxNDc0ODM2NDc7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooYi1hKzEpK2EpfQpmdW5jdGlvbiBFYihhLGIpe2Zvcih2YXIgYz1uZXcgRmIsZD0wO2Q8YS5sZW5ndGg7ZCsrKWMuc2V0KGFbZF0sITApO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7ZSsrKWlmKGMuZ2V0KGJbZV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEdiKGEsYil7Zm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYyxhW2NdKX1mdW5jdGlvbiBIYihhKXtyZXR1cm4hIWEmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBBcmd1bWVudHNdInx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImNhbGxlZSIpKX1mdW5jdGlvbiBJYihhKXtyZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIoYSkpfHwwfWZ1bmN0aW9uIEpiKGEpe3JldHVybiJmYWxzZSI9PT1TdHJpbmcoYSkudG9Mb3dlckNhc2UoKT8hMTohIWF9CmZ1bmN0aW9uIEtiKGEpe3ZhciBiPVtdO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKFN0cmluZyhhW2NdKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gTGIoYSl7cmV0dXJuIGE/YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik6IiJ9ZnVuY3Rpb24gTWIoKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSl9ZnVuY3Rpb24gTmIoKXtyZXR1cm4gTWIoKS5nZXRUaW1lKCl9dmFyIEZiPWZ1bmN0aW9uKCl7dGhpcy5wcmVmaXg9Imd0bS4iO3RoaXMudmFsdWVzPXt9fTtGYi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV09Yn07RmIucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXNbdGhpcy5wcmVmaXgrYV19O0ZiLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nZXQoYSkhPT12b2lkIDB9OwpmdW5jdGlvbiBPYihhLGIsYyl7cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkoYik/YVtiXTpjfWZ1bmN0aW9uIFBiKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPXZvaWQgMDt0cnl7YygpfWNhdGNoKGQpe319fX1mdW5jdGlvbiBRYihhLGIpe2Zvcih2YXIgYyBpbiBiKWIuaGFzT3duUHJvcGVydHkoYykmJihhW2NdPWJbY10pfWZ1bmN0aW9uIFJiKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnB1c2goYVtkXSksYy5wdXNoLmFwcGx5KGMsYlthW2RdXXx8W10pO3JldHVybiBjfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoMCxiLmxlbmd0aCk9PT1ifWZ1bmN0aW9uIFRiKGEsYil7cmV0dXJuIGEubGVuZ3RoPj1iLmxlbmd0aCYmYS5zdWJzdHJpbmcoYS5sZW5ndGgtYi5sZW5ndGgsYS5sZW5ndGgpPT09Yn0KZnVuY3Rpb24gVWIoYSxiLGMpe2M9Y3x8W107Zm9yKHZhciBkPWEsZT0wO2U8Yi5sZW5ndGgtMTtlKyspe2lmKCFkLmhhc093blByb3BlcnR5KGJbZV0pKXJldHVybjtkPWRbYltlXV07aWYoYy5pbmRleE9mKGQpPj0wKXJldHVybn1yZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYz17fSxkPWMsZT1hLnNwbGl0KCIuIiksZj0wO2Y8ZS5sZW5ndGgtMTtmKyspZD1kW2VbZl1dPXt9O2RbZVtlLmxlbmd0aC0xXV09YjtyZXR1cm4gY312YXIgV2I9L15cd3sxLDl9JC87ZnVuY3Rpb24gWWIoYSxiKXthPWF8fHt9O2I9Ynx8IiwiO3ZhciBjPVtdO0diKGEsZnVuY3Rpb24oZCxlKXtXYi50ZXN0KGQpJiZlJiZjLnB1c2goZCl9KTtyZXR1cm4gYy5qb2luKGIpfQpmdW5jdGlvbiBaYihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hLmNoYXJDb2RlQXQoYyk7ZDwxMjg/Yi5wdXNoKGQpOmQ8MjA0OD9iLnB1c2goMTkyfGQ+PjYsMTI4fGQmNjMpOmQ8NTUyOTZ8fGQ+PTU3MzQ0P2IucHVzaCgyMjR8ZD4+MTIsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpOihkPTY1NTM2KygoZCYxMDIzKTw8MTB8YS5jaGFyQ29kZUF0KCsrYykmMTAyMyksYi5wdXNoKDI0MHxkPj4xOCwxMjh8ZD4+MTImNjMsMTI4fGQ+PjYmNjMsMTI4fGQmNjMpKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYil9ZnVuY3Rpb24gJGIoYSl7aWYoIWEpcmV0dXJuIGE7dmFyIGI9YTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goZCl7fXZhciBjPWIuc3BsaXQoIiwiKTtyZXR1cm4gYy5sZW5ndGg9PT0yJiZjWzBdPT09Y1sxXT9jWzBdOmF9CmZ1bmN0aW9uIGFjKGEsYixjKXtmdW5jdGlvbiBkKG4pe3ZhciBwPW4uc3BsaXQoIj0iKVswXTtpZihhLmluZGV4T2YocCk8MClyZXR1cm4gbjtpZihjIT09dm9pZCAwKXJldHVybiBwKyI9IitjfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4uc3BsaXQoIiYiKS5tYXAoZCkuZmlsdGVyKGZ1bmN0aW9uKHApe3JldHVybiBwIT09dm9pZCAwfSkuam9pbigiJiIpfXZhciBmPWIuaHJlZi5zcGxpdCgvWz8jXS8pWzBdLGc9Yi5zZWFyY2gsaD1iLmhhc2g7Z1swXT09PSI/IiYmKGc9Zy5zdWJzdHJpbmcoMSkpO2hbMF09PT0iIyImJihoPWguc3Vic3RyaW5nKDEpKTtnPWUoZyk7aD1lKGgpO2chPT0iIiYmKGc9Ij8iK2cpO2ghPT0iIiYmKGg9IiMiK2gpO3ZhciBsPSIiK2YrZytoO2xbbC5sZW5ndGgtMV09PT0iLyImJihsPWwuc3Vic3RyaW5nKDAsbC5sZW5ndGgtMSkpO3JldHVybiBsfQpmdW5jdGlvbiBiYyhhKXtmb3IodmFyIGI9MDtiPDM7KytiKXRyeXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvXCsvZywiICIpO2lmKGM9PT1hKWJyZWFrO2E9Y31jYXRjaChkKXtyZXR1cm4iIn1yZXR1cm4gYX1mdW5jdGlvbiBjYygpe3ZhciBhPUEsYjthOnt2YXIgYz1hLmNyeXB0b3x8YS5tc0NyeXB0bztpZihjJiZjLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoMjUpO2MuZ2V0UmFuZG9tVmFsdWVzKGQpO2I9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGQpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKTticmVhayBhfWNhdGNoKGUpe31iPXZvaWQgMH1yZXR1cm4gYn07LyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIGRjPWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLGVjO2Z1bmN0aW9uIGZjKCl7dmFyIGE9bnVsbDtpZighZGMpcmV0dXJuIGE7dHJ5e3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiBjfTthPWRjLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpiLGNyZWF0ZVNjcmlwdDpiLGNyZWF0ZVNjcmlwdFVSTDpifSl9Y2F0Y2goYyl7fXJldHVybiBhfWZ1bmN0aW9uIGhjKCl7ZWM9PT12b2lkIDAmJihlYz1mYygpKTtyZXR1cm4gZWN9O3ZhciBpYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07aWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07ZnVuY3Rpb24gamMoYSl7dmFyIGI9YSxjPWhjKCksZD1jP2MuY3JlYXRlU2NyaXB0VVJMKGIpOmI7cmV0dXJuIG5ldyBpYyhkKX1mdW5jdGlvbiBrYyhhKXtpZihhIGluc3RhbmNlb2YgaWMpcmV0dXJuIGEuSDt0aHJvdyBFcnJvcigiIik7fTt2YXIgbGM9QWEoWyIiXSksbWM9emEoWyJceDAwIl0sWyJcXDAiXSksbmM9emEoWyJcbiJdLFsiXFxuIl0pLG9jPXphKFsiXHgwMCJdLFsiXFx1MDAwMCJdKTtmdW5jdGlvbiBwYyhhKXtyZXR1cm4gYS50b1N0cmluZygpLmluZGV4T2YoImAiKT09PS0xfXBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKGxjKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShtYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobmMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG9jKX0pO3ZhciBxYz1mdW5jdGlvbihhKXt0aGlzLkg9YX07cWMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07dmFyIHJjPWZ1bmN0aW9uKGEpe3RoaXMuSnM9YX07ZnVuY3Rpb24gc2MoYSl7cmV0dXJuIG5ldyByYyhmdW5jdGlvbihiKXtyZXR1cm4gYi5zdWJzdHIoMCxhLmxlbmd0aCsxKS50b0xvd2VyQ2FzZSgpPT09YSsiOiJ9KX12YXIgdGM9W3NjKCJkYXRhIiksc2MoImh0dHAiKSxzYygiaHR0cHMiKSxzYygibWFpbHRvIiksc2MoImZ0cCIpLG5ldyByYyhmdW5jdGlvbihhKXtyZXR1cm4vXlteOl0qKFsvPyNdfCQpLy50ZXN0KGEpfSldO2Z1bmN0aW9uIHVjKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD90YzpiO2lmKGEgaW5zdGFuY2VvZiBxYylyZXR1cm4gYTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXTtpZihkIGluc3RhbmNlb2YgcmMmJmQuSnMoYSkpcmV0dXJuIG5ldyBxYyhhKX19dmFyIHZjPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7CmZ1bmN0aW9uIHdjKGEpe3ZhciBiO2lmKGEgaW5zdGFuY2VvZiBxYylpZihhIGluc3RhbmNlb2YgcWMpYj1hLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7ZWxzZSBiPXZjLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGJ9O2Z1bmN0aW9uIHhjKGEsYil7dmFyIGM9d2MoYik7YyE9PXZvaWQgMCYmKGEuYWN0aW9uPWMpfTtmdW5jdGlvbiB5YyhhLGIpe3Rocm93IEVycm9yKGI9PT12b2lkIDA/InVuZXhwZWN0ZWQgdmFsdWUgIithKyIhIjpiKTt9O3ZhciB6Yz1mdW5jdGlvbihhKXt0aGlzLkg9YX07emMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCsiIn07dmFyIEJjPWZ1bmN0aW9uKCl7dGhpcy5IPUFjWzBdLnRvTG93ZXJDYXNlKCl9O0JjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2Z1bmN0aW9uIENjKGEsYil7dmFyIGM9W25ldyBCY107aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCIiKTt2YXIgZD1jLm1hcChmdW5jdGlvbihmKXt2YXIgZztpZihmIGluc3RhbmNlb2YgQmMpZz1mLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGd9KSxlPWIudG9Mb3dlckNhc2UoKTtpZihkLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBlLmluZGV4T2YoZikhPT0wfSkpdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiJytiKyciIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgYWxsb3dlZCBwcmVmaXhlcy4nKTthLnNldEF0dHJpYnV0ZShiLCJ0cnVlIil9O3ZhciBEYz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIHR5cGVvZiBiIT09InN0cmluZyJ8fGIubGVuZ3RoIT0xPy0xOmEuaW5kZXhPZihiLDApO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGMgaW4gYSYmYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9OyJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIikuY29uY2F0KFsiQlVUVE9OIiwKIklOUFVUIl0pO2Z1bmN0aW9uIEVjKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphfTt2YXIgQT13aW5kb3csRmM9W10sR2M9d2luZG93Lmhpc3RvcnksQj1kb2N1bWVudCxIYz1uYXZpZ2F0b3I7ZnVuY3Rpb24gSWMoKXt2YXIgYTt0cnl7YT1IYy5zZXJ2aWNlV29ya2VyfWNhdGNoKGIpe3JldHVybn1yZXR1cm4gYX12YXIgSmM9Qi5jdXJyZW50U2NyaXB0LEtjPUpjJiZKYy5zcmM7ZnVuY3Rpb24gTWMoYSxiKXt2YXIgYz1BLGQ9Y1thXTtjW2FdPWQ9PT12b2lkIDA/YjpkO3JldHVybiBjW2FdfWZ1bmN0aW9uIE5jKGEpe3JldHVybihIYy51c2VyQWdlbnR8fCIiKS5pbmRleE9mKGEpIT09LTF9ZnVuY3Rpb24gT2MoKXtyZXR1cm4gTmMoIkZpcmVmb3giKXx8TmMoIkZ4aU9TIil9ZnVuY3Rpb24gUGMoKXtyZXR1cm4oTmMoIkdTQSIpfHxOYygiR29vZ2xlQXBwIikpJiYoTmMoImlQaG9uZSIpfHxOYygiaVBhZCIpKX1mdW5jdGlvbiBRYygpe3JldHVybiBOYygiRWRnLyIpfHxOYygiRWRnQS8iKXx8TmMoIkVkZ2lPUy8iKX0KdmFyIFJjPXthc3luYzoxLG5vbmNlOjEsb25lcnJvcjoxLG9ubG9hZDoxLHNyYzoxLHR5cGU6MX0sU2M9e2hlaWdodDoxLG9ubG9hZDoxLHNyYzoxLHN0eWxlOjEsd2lkdGg6MX07ZnVuY3Rpb24gVGMoYSxiLGMpe2ImJkdiKGIsZnVuY3Rpb24oZCxlKXtkPWQudG9Mb3dlckNhc2UoKTtjLmhhc093blByb3BlcnR5KGQpfHxhLnNldEF0dHJpYnV0ZShkLGUpfSl9CmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7dmFyIGY9Qi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtUYyhmLGQsUmMpO2YudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtmLmFzeW5jPWQmJmQuYXN5bmM9PT0hMT8hMTohMDt2YXIgZztnPWpjKEVjKGEpKTtmLnNyYz1rYyhnKTt2YXIgaCxsPWYub3duZXJEb2N1bWVudDtsPWw9PT12b2lkIDA/ZG9jdW1lbnQ6bDt2YXIgbixwLHE9KHA9KG49bCkucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOnAuY2FsbChuLCJzY3JpcHRbbm9uY2VdIik7KGg9cT09bnVsbD8iIjpxLm5vbmNlfHxxLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiIpJiZmLnNldEF0dHJpYnV0ZSgibm9uY2UiLGgpO2ImJihmLm9ubG9hZD1iKTtjJiYoZi5vbmVycm9yPWMpO2U/ZS5hcHBlbmRDaGlsZChmKTpWYy5CcyhmKTtyZXR1cm4gZn0KZnVuY3Rpb24gV2MoKXtpZihLYyl7dmFyIGE9S2MudG9Mb3dlckNhc2UoKTtpZihhLmluZGV4T2YoImh0dHBzOi8vIik9PT0wKXJldHVybiAyO2lmKGEuaW5kZXhPZigiaHR0cDovLyIpPT09MClyZXR1cm4gM31yZXR1cm4gMX1mdW5jdGlvbiBYYyhhLGIsYyxkLGUsZil7Zj1mPT09dm9pZCAwPyEwOmY7dmFyIGc9ZSxoPSExO2d8fChnPUIuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksaD0hMCk7VGMoZyxjLFNjKTtkJiZHYihkLGZ1bmN0aW9uKG4scCl7Zy5kYXRhc2V0W25dPXB9KTtmJiYoZy5oZWlnaHQ9IjAiLGcud2lkdGg9IjAiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTthIT09dm9pZCAwJiYoZy5zcmM9YSk7aWYoaCl7dmFyIGw9Qi5ib2R5JiZCLmJvZHkubGFzdENoaWxkfHxCLmJvZHl8fEIuaGVhZDtsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsbCl9YiYmKGcub25sb2FkPWIpO3JldHVybiBnfQpmdW5jdGlvbiBaYygpe3JldHVybiBWYy5Fci5hcHBseShWYyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfWZ1bmN0aW9uICRjKGEsYixjLGQpe2EuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKGIsYywhIWQpfWZ1bmN0aW9uIGFkKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfWZ1bmN0aW9uIGJkKGEpe0Euc2V0VGltZW91dChhLDApfWZ1bmN0aW9uIGNkKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQsZT0oZD1BKS5zZXRJbnRlcnZhbC5hcHBseShkLFthLGJdLmNvbmNhdCh3KGMpKSk7RmMucHVzaChlKTtyZXR1cm4gZX0KZnVuY3Rpb24gZGQoYSl7dmFyIGI9QTt5YihiLnF1ZXVlTWljcm90YXNrKT9iLnF1ZXVlTWljcm90YXNrKGEpOnliKGIuUHJvbWlzZSkmJmIuUHJvbWlzZS5yZXNvbHZlP2IuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe2EoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk6YmQoYSl9ZnVuY3Rpb24gZWQoYSxiKXtyZXR1cm4gYSYmYiYmYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXNbYl0/YS5hdHRyaWJ1dGVzW2JdLnZhbHVlOm51bGx9ZnVuY3Rpb24gZmQoYSl7dmFyIGI9YS5pbm5lclRleHR8fGEudGV4dENvbnRlbnR8fCIiO2ImJmIhPT0iICImJihiPWIucmVwbGFjZSgvXltcc1x4YTBdKy9nLCIiKSxiPWIucmVwbGFjZSgvW1xzXHhhMF0rJC9nLCIiKSk7YiYmKGI9Yi5yZXBsYWNlKC8oXHhhMCt8XHN7Mix9fFxufFxyXHQpL2csIiAiKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGdkKGEpe3ZhciBiPUIuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLGQsZT1FYygiQTxkaXY+IithKyI8L2Rpdj4iKSxmPWhjKCksZz1mP2YuY3JlYXRlSFRNTChlKTplO2Q9bmV3IHpjKGcpO2lmKGMubm9kZVR5cGU9PT0xJiYvXihzY3JpcHR8c3R5bGUpJC9pLnRlc3QoYy50YWdOYW1lKSl0aHJvdyBFcnJvcigiIik7dmFyIGg7aWYoZCBpbnN0YW5jZW9mIHpjKWg9ZC5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2MuaW5uZXJIVE1MPWg7Yj1iLmxhc3RDaGlsZDtmb3IodmFyIGw9W107YiYmYi5maXJzdENoaWxkOylsLnB1c2goYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpKTtyZXR1cm4gbH0KZnVuY3Rpb24gaGQoYSxiLGMpe2M9Y3x8MTAwO2Zvcih2YXIgZD17fSxlPTA7ZTxiLmxlbmd0aDtlKyspZFtiW2VdXT0hMDtmb3IodmFyIGY9YSxnPTA7ZiYmZzw9YztnKyspe2lmKGRbU3RyaW5nKGYudGFnTmFtZSkudG9Mb3dlckNhc2UoKV0pcmV0dXJuIGY7Zj1mLnBhcmVudEVsZW1lbnR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWQoYSxiLGMpe3ZhciBkO3RyeXtkPUhjLnNlbmRCZWFjb24mJkhjLnNlbmRCZWFjb24oYSl9Y2F0Y2goZSl7c2IoIlRBR0dJTkciLDE1KX1kP2I9PW51bGx8fGIoKTpaYyhhLGIsYyl9ZnVuY3Rpb24gamQoYSxiKXt0cnl7aWYoSGMuc2VuZEJlYWNvbiE9PXZvaWQgMClyZXR1cm4gSGMuc2VuZEJlYWNvbihhLGIpfWNhdGNoKGMpe3NiKCJUQUdHSU5HIiwxNSl9cmV0dXJuITF9ZnVuY3Rpb24ga2QoKXtyZXR1cm4gSGMuc2VuZEJlYWNvbiE9PXZvaWQgMH0KdmFyIGxkPXtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixrZWVwYWxpdmU6ITAsbWV0aG9kOiJQT1NUIixtb2RlOiJuby1jb3JzIixyZWRpcmVjdDoiZm9sbG93In07CmZ1bmN0aW9uIG1kKGEsYixjLGQsZSl7aWYobmQoKSl7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7YiYmKGYuYm9keT1iKTtjJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZyYmKGYuYXR0cmlidXRpb25SZXBvcnRpbmc9Yy5hdHRyaWJ1dGlvblJlcG9ydGluZyksYy5icm93c2luZ1RvcGljcyE9PXZvaWQgMCYmKGYuYnJvd3NpbmdUb3BpY3M9Yy5icm93c2luZ1RvcGljcyksYy5jcmVkZW50aWFscyYmKGYuY3JlZGVudGlhbHM9Yy5jcmVkZW50aWFscyksYy5rZWVwYWxpdmUhPT12b2lkIDAmJihmLmtlZXBhbGl2ZT1jLmtlZXBhbGl2ZSksYy5tZXRob2QmJihmLm1ldGhvZD1jLm1ldGhvZCksYy5tb2RlJiYoZi5tb2RlPWMubW9kZSkpO3RyeXt2YXIgZz1BLmZldGNoKGEsZik7aWYoZylyZXR1cm4gZy50aGVuKGZ1bmN0aW9uKGwpe2wmJihsLm9rfHxsLnN0YXR1cz09PTApP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PQpudWxsfHxlKCl9KSwhMH1jYXRjaChsKXt9fWlmKChjPT1udWxsPzA6Yy5RZyl8fChjPT1udWxsPzA6Yy5jcmVkZW50aWFscykmJmMuY3JlZGVudGlhbHMhPT0iaW5jbHVkZSIpcmV0dXJuIGU9PW51bGx8fGUoKSwhMTtpZihiKXt2YXIgaD1qZChhLGIpO2g/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKTtyZXR1cm4gaH1WYy53dChhLGQsZSk7cmV0dXJuITB9ZnVuY3Rpb24gbmQoKXtyZXR1cm4geWIoQS5mZXRjaCl9ZnVuY3Rpb24gb2QoYSxiKXt2YXIgYz1hW2JdO2MmJnR5cGVvZiBjLmFuaW1WYWw9PT0ic3RyaW5nIiYmKGM9Yy5hbmltVmFsKTtyZXR1cm4gY31mdW5jdGlvbiBwZCgpe3ZhciBhPUEucGVyZm9ybWFuY2U7aWYoYSYmeWIoYS5ub3cpKXJldHVybiBhLm5vdygpfQpmdW5jdGlvbiBxZCgpe3ZhciBhLGI9QS5wZXJmb3JtYW5jZTtpZihiJiZiLmdldEVudHJpZXNCeVR5cGUpdHJ5e3ZhciBjPWIuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpO2MmJmMubGVuZ3RoPjAmJihhPWNbMF0udHlwZSl9Y2F0Y2goZCl7cmV0dXJuImUifWlmKCFhKXJldHVybiJ1Ijtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJuIjtjYXNlICJiYWNrX2ZvcndhcmQiOnJldHVybiJoIjtjYXNlICJyZWxvYWQiOnJldHVybiJyIjtjYXNlICJwcmVyZW5kZXIiOnJldHVybiJwIjtkZWZhdWx0OnJldHVybiJ4In19ZnVuY3Rpb24gcmQoKXtyZXR1cm4gQS5wZXJmb3JtYW5jZXx8dm9pZCAwfWZ1bmN0aW9uIHNkKCl7dmFyIGE9QS53ZWJQaXhlbHNNYW5hZ2VyO3JldHVybiBhP2EuY3JlYXRlU2hvcGlmeUV4dGVuZCE9PXZvaWQgMDohMX0KdmFyIFZjPXtFcjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgSW1hZ2UoMSwxKTtUYyhlLGQse30pO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZS5vbmxvYWQ9bnVsbDtiJiZiKCl9O2Uub25lcnJvcj1mdW5jdGlvbigpe2Uub25lcnJvcj1udWxsO2MmJmMoKX07ZS5zcmM9YTtyZXR1cm4gZX0sQnM6ZnVuY3Rpb24oYSl7dmFyIGI9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF18fEIuYm9keXx8Qi5oZWFkO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX0sd3Q6aWR9O2Z1bmN0aW9uIHRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdWQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT09PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gdmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB3ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3JldHVybiBTdHJpbmcoYykuaW5kZXhPZihTdHJpbmcoZCkpPi0xfWZ1bmN0aW9uIHhkKGEsYil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYSkpLGQ9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYikpO3JldHVybiBjLnN1YnN0cmluZygwLGQubGVuZ3RoKT09PWR9CmZ1bmN0aW9uIHlkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7c3dpdGNoKGMpe2Nhc2UgInBhZ2VMb2NhdGlvbiI6dmFyIGU9QS5sb2NhdGlvbi5ocmVmO2QgaW5zdGFuY2VvZiBrYiYmZC5nZXQoInN0cmlwUHJvdG9jb2wiKSYmKGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSk7cmV0dXJuIGV9fTsvKgogalF1ZXJ5IChjKSAyMDA1LCAyMDEyIGpRdWVyeSBGb3VuZGF0aW9uLCBJbmMuIGpxdWVyeS5vcmcvbGljZW5zZS4KKi8KdmFyIHpkPS9cW29iamVjdCAoQm9vbGVhbnxOdW1iZXJ8U3RyaW5nfEZ1bmN0aW9ufEFycmF5fERhdGV8UmVnRXhwKVxdLyxBZD1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBTdHJpbmcoYSk7dmFyIGI9emQuZXhlYyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KGEpKSk7cmV0dXJuIGI/YlsxXS50b0xvd2VyQ2FzZSgpOiJvYmplY3QifSxCZD1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoT2JqZWN0KGEpLGIpfSxDZD1mdW5jdGlvbihhKXtpZighYXx8QWQoYSkhPSJvYmplY3QifHxhLm5vZGVUeXBlfHxhPT1hLndpbmRvdylyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIUJkKGEsImNvbnN0cnVjdG9yIikmJiFCZChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWZvcih2YXIgYiBpbiBhKTtyZXR1cm4gYj09PXZvaWQgMHx8CkJkKGEsYil9LEVkPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8KEFkKGEpPT0iYXJyYXkiP1tdOnt9KSxkO2ZvcihkIGluIGEpaWYoQmQoYSxkKSl7dmFyIGU9YVtkXTtBZChlKT09ImFycmF5Ij8oQWQoY1tkXSkhPSJhcnJheSImJihjW2RdPVtdKSxjW2RdPUVkKGUsY1tkXSkpOkNkKGUpPyhDZChjW2RdKXx8KGNbZF09e30pLGNbZF09RWQoZSxjW2RdKSk6Y1tkXT1lfXJldHVybiBjfTtmdW5jdGlvbiBGZChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmYT49MCYmaXNGaW5pdGUoYSkmJmElMT09PTB8fHR5cGVvZiBhPT09InN0cmluZyImJmFbMF0hPT0iLSImJmE9PT0iIitwYXJzZUludChhKX07dmFyIEdkPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO3RoaXMubGE9bmV3IFVhO3RoaXMudmFsdWVzPVtdO3RoaXMuTmE9ITE7Zm9yKHZhciBiIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShiKSYmKEZkKGIpP3RoaXMudmFsdWVzW051bWJlcihiKV09YVtOdW1iZXIoYildOnRoaXMubGEuc2V0KGIsYVtiXSkpfTtrPUdkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKGEpe2lmKGEmJmEuaW5kZXhPZih0aGlzKT49MClyZXR1cm4iIjtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy52YWx1ZXMubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy52YWx1ZXNbY107ZD09PW51bGx8fGQ9PT12b2lkIDA/Yi5wdXNoKCIiKTpkIGluc3RhbmNlb2YgR2Q/KGE9YXx8W10sYS5wdXNoKHRoaXMpLGIucHVzaChkLnRvU3RyaW5nKGEpKSxhLnBvcCgpKTpiLnB1c2goU3RyaW5nKGQpKX1yZXR1cm4gYi5qb2luKCIsIil9OwprLnNldD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLk5hKWlmKGE9PT0ibGVuZ3RoIil7aWYoIUZkKGIpKXRocm93IGNiKEVycm9yKCJSYW5nZUVycm9yOiBMZW5ndGggcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGludGVnZXIuIikpO3RoaXMudmFsdWVzLmxlbmd0aD1OdW1iZXIoYil9ZWxzZSBGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldPWI6dGhpcy5sYS5zZXQoYSxiKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0ibGVuZ3RoIj90aGlzLmxlbmd0aCgpOkZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5sYS5nZXQoYSl9O2subGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLmxlbmd0aH07ay5GYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLkZhKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFN0cmluZyhiKSk7cmV0dXJuIGF9OwprLmhjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuaGMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2godGhpcy52YWx1ZXNbYl0pO3JldHVybiBhfTtrLmZjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuZmMoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goW1N0cmluZyhiKSx0aGlzLnZhbHVlc1tiXV0pO3JldHVybiBhfTtrLnJlbW92ZT1mdW5jdGlvbihhKXtGZChhKT9kZWxldGUgdGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucG9wKCl9O2sucHVzaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wdXNoLmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMuc2hpZnQoKX07Cmsuc3BsaWNlPWZ1bmN0aW9uKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpO3JldHVybiBiPT09dm9pZCAwJiZjLmxlbmd0aD09PTA/bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZShhKSk6bmV3IEdkKHRoaXMudmFsdWVzLnNwbGljZS5hcHBseSh0aGlzLnZhbHVlcyxbYSxifHwwXS5jb25jYXQodyhjKSkpKX07ay51bnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnVuc2hpZnQuYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIEZkKGEpJiZ0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShhKXx8dGhpcy5sYS5oYXMoYSl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwO09iamVjdC5mcmVlemUodGhpcy52YWx1ZXMpfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9OwpmdW5jdGlvbiBIZChhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGgoKTtjKyspYS5oYXMoYykmJihiW2NdPWEuZ2V0KGMpKTtyZXR1cm4gYn07dmFyIElkPWZ1bmN0aW9uKGEsYil7dGhpcy5mdW5jdGlvbk5hbWU9YTt0aGlzLmllPWI7dGhpcy5sYT1uZXcgVWE7dGhpcy5OYT0hMX07az1JZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldEtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEdkKHRoaXMuRmEoKSl9O2suaW52b2tlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmllLmNhbGwuYXBwbHkodGhpcy5pZSxbbmV3IEpkKHRoaXMsYSldLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5hcHBseT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmllLmFwcGx5KG5ldyBKZCh0aGlzLGEpLGIpfTtrLk5jPWZ1bmN0aW9uKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTt0cnl7cmV0dXJuIHRoaXMuaW52b2tlLmFwcGx5KHRoaXMsW2FdLmNvbmNhdCh3KGIpKSl9Y2F0Y2goYyl7fX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTt2YXIgS2Q9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoS2QsSWQpO3ZhciBMZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShMZCxJZCk7dmFyIEpkPWZ1bmN0aW9uKGEsYil7dGhpcy5pZT1hO3RoaXMuVD1ifTsKSmQucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuVDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9mYihiLGEpOmF9O0pkLnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWUuZ2V0TmFtZSgpfTtKZC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ULmplKCl9O3ZhciBNZD1mdW5jdGlvbigpe3RoaXMubWFwPW5ldyBNYXB9O01kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm1hcC5zZXQoYSxiKX07TWQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuZ2V0KGEpfTt2YXIgTmQ9ZnVuY3Rpb24oKXt0aGlzLmtleXM9W107dGhpcy52YWx1ZXM9W119O05kLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmtleXMucHVzaChhKTt0aGlzLnZhbHVlcy5wdXNoKGIpfTtOZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMua2V5cy5pbmRleE9mKGEpO2lmKGI+LTEpcmV0dXJuIHRoaXMudmFsdWVzW2JdfTtmdW5jdGlvbiBPZCgpe3RyeXtyZXR1cm4gTWFwP25ldyBNZDpuZXcgTmR9Y2F0Y2goYSl7cmV0dXJuIG5ldyBOZH19O3ZhciBQZD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUGQpcmV0dXJuIGE7dmFyIGI7YTppZihhPT12b2lkIDB8fEFycmF5LmlzQXJyYXkoYSl8fENkKGEpKWI9ITA7ZWxzZXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJmdW5jdGlvbiI6Yj0hMDticmVhayBhfWI9ITF9aWYoYil0aHJvdyBFcnJvcigiVHlwZSBvZiBnaXZlbiB2YWx1ZSBoYXMgYW4gZXF1aXZhbGVudCBQaXhpZSB0eXBlLiIpO3RoaXMudmFsdWU9YX07UGQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O1BkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy52YWx1ZSl9O3ZhciBTZD1mdW5jdGlvbihhKXt0aGlzLnByb21pc2U9YTt0aGlzLk5hPSExO3RoaXMubGE9bmV3IFVhO3RoaXMubGEuc2V0KCJ0aGVuIixSZCh0aGlzKSk7dGhpcy5sYS5zZXQoImNhdGNoIixSZCh0aGlzLCEwKSk7dGhpcy5sYS5zZXQoImZpbmFsbHkiLFJkKHRoaXMsITEsITApKX07az1TZC5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9Owp2YXIgUmQ9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oZCxlKXtiJiYoZT1kLGQ9dm9pZCAwKTtjJiYoZT1kKTtkIGluc3RhbmNlb2YgS2R8fChkPXZvaWQgMCk7ZSBpbnN0YW5jZW9mIEtkfHwoZT12b2lkIDApO3ZhciBmPXRoaXMuVC53YigpLGc9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gYz8obC5pbnZva2UoZiksYS5wcm9taXNlKTpsLmludm9rZShmLG4pfWNhdGNoKHApe3JldHVybiBQcm9taXNlLnJlamVjdChwIGluc3RhbmNlb2YgRXJyb3I/bmV3IFBkKHApOlN0cmluZyhwKSl9fX0saD1hLnByb21pc2UudGhlbihkJiZnKGQpLGUmJmcoZSkpO3JldHVybiBuZXcgU2QoaCl9KX07U2QucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07U2QucHJvdG90eXBlLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIFRkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGw9Zy5GYSgpLG49MDtuPGwubGVuZ3RoO24rKyloW2xbbl1dPWYoZy5nZXQobFtuXSkpfSxmPWZ1bmN0aW9uKGcpe2lmKGc9PT1udWxsfHxnPT09dm9pZCAwKXJldHVybiBnO3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoZyBpbnN0YW5jZW9mIEdkKXt2YXIgbD1bXTtkLnNldChnLGwpO2Zvcih2YXIgbj1nLkZhKCkscD0wO3A8bi5sZW5ndGg7cCsrKWxbbltwXV09ZihnLmdldChuW3BdKSk7cmV0dXJuIGx9aWYoZyBpbnN0YW5jZW9mIFNkKXJldHVybiBnLnByb21pc2UudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gVGQodSxiLDEpfSxmdW5jdGlvbih1KXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoVGQodSxiLDEpKX0pO2lmKGcgaW5zdGFuY2VvZiBrYil7dmFyIHE9e307ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9aWYoZyBpbnN0YW5jZW9mIEtkKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgdT0KW10sdj0wO3Y8YXJndW1lbnRzLmxlbmd0aDt2KyspdVt2XT1VZChhcmd1bWVudHNbdl0sYixjKTt2YXIgeD1uZXcgaGIoYj9iLmplKCk6bmV3IFdhKTtiJiZ4LnVlKGIueGIoKSk7cmV0dXJuIGYoZy5hcHBseSh4LHUpKX07ZC5zZXQoZyxyKTtlKGcscik7cmV0dXJuIHJ9dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2Nhc2UgMzp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGcgaW5zdGFuY2VvZiBQZCYmdClyZXR1cm4gZy5nZXRWYWx1ZSgpO3N3aXRjaCh0eXBlb2YgZyl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgInVuZGVmaW5lZCI6cmV0dXJuIGc7Y2FzZSAib2JqZWN0IjppZihnPT09Cm51bGwpcmV0dXJuIG51bGx9fTtyZXR1cm4gZihhKX0KZnVuY3Rpb24gVWQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbCBpbiBnKWcuaGFzT3duUHJvcGVydHkobCkmJmguc2V0KGwsZihnW2xdKSl9LGY9ZnVuY3Rpb24oZyl7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihBcnJheS5pc0FycmF5KGcpfHxIYihnKSl7dmFyIGw9bmV3IEdkO2Quc2V0KGcsbCk7Zm9yKHZhciBuIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShuKSYmbC5zZXQobixmKGdbbl0pKTtyZXR1cm4gbH1pZihDZChnKSl7dmFyIHA9bmV3IGtiO2Quc2V0KGcscCk7ZShnLHApO3JldHVybiBwfWlmKHR5cGVvZiBnPT09ImZ1bmN0aW9uIil7dmFyIHE9bmV3IEtkKCIiLGZ1bmN0aW9uKCl7Zm9yKHZhciB1PU9hLmFwcGx5KDAsYXJndW1lbnRzKSx2PVtdLHg9MDt4PHUubGVuZ3RoO3grKyl2W3hdPVRkKHRoaXMuZXZhbHVhdGUodVt4XSksYixjKTtyZXR1cm4gZih0aGlzLlQuUGooKShnLGcsdikpfSk7ZC5zZXQoZyxxKTtlKGcscSk7cmV0dXJuIHF9dmFyIHI9dHlwZW9mIGc7aWYoZz09PW51bGx8fHI9PT0ic3RyaW5nInx8cj09PSJudW1iZXIifHxyPT09ImJvb2xlYW4iKXJldHVybiBnO3ZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztkZWZhdWx0On1pZihnIT09dm9pZCAwJiZ0KXJldHVybiBuZXcgUGQoZyl9O3JldHVybiBmKGEpfTt2YXIgVmQ9e3N1cHBvcnRlZE1ldGhvZHM6ImNvbmNhdCBldmVyeSBmaWx0ZXIgZm9yRWFjaCBoYXNPd25Qcm9wZXJ0eSBpbmRleE9mIGpvaW4gbGFzdEluZGV4T2YgbWFwIHBvcCBwdXNoIHJlZHVjZSByZWR1Y2VSaWdodCByZXZlcnNlIHNoaWZ0IHNsaWNlIHNvbWUgc29ydCBzcGxpY2UgdW5zaGlmdCB0b1N0cmluZyIuc3BsaXQoIiAiKSxjb25jYXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMubGVuZ3RoKCk7YysrKWIucHVzaCh0aGlzLmdldChjKSk7Zm9yKHZhciBkPTE7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKylpZihhcmd1bWVudHNbZF1pbnN0YW5jZW9mIEdkKWZvcih2YXIgZT1hcmd1bWVudHNbZF0sZj0wO2Y8ZS5sZW5ndGgoKTtmKyspYi5wdXNoKGUuZ2V0KGYpKTtlbHNlIGIucHVzaChhcmd1bWVudHNbZF0pO3JldHVybiBuZXcgR2QoYil9LGV2ZXJ5OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmCmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJiFiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITE7cmV0dXJuITB9LGZpbHRlcjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmYi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpJiZkLnB1c2godGhpcy5nZXQoZSkpO3JldHVybiBuZXcgR2QoZCl9LGZvckVhY2g6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKXRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcyl9LGhhc093blByb3BlcnR5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaGFzKGIpfSxpbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9Yz09PXZvaWQgMD8wOk51bWJlcihjKTtlPDAmJihlPU1hdGgubWF4KGQrZSwwKSk7Zm9yKHZhciBmPQplO2Y8ZDtmKyspaWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sam9pbjpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDx0aGlzLmxlbmd0aCgpO2QrKyljLnB1c2godGhpcy5nZXQoZCkpO3JldHVybiBjLmpvaW4oYil9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGU9ZC0xO2MhPT12b2lkIDAmJihlPWM8MD9kK2M6TWF0aC5taW4oYyxlKSk7Zm9yKHZhciBmPWU7Zj49MDtmLS0paWYodGhpcy5oYXMoZikmJnRoaXMuZ2V0KGYpPT09YilyZXR1cm4gZjtyZXR1cm4tMX0sbWFwOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiYoZFtlXT1iLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykpO3JldHVybiBuZXcgR2QoZCl9LHBvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvcCgpfSxwdXNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2guYXBwbHkodGhpcywKdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX0scmVkdWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj0wO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7Zm9yKHZhciBnPTA7ZzxkO2crKylpZih0aGlzLmhhcyhnKSl7ZT10aGlzLmdldChnKTtmPWcrMTticmVha31pZihnPT09ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aDxkO2grKyl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZWR1Y2VSaWdodDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9ZC0xO2lmKGMhPT12b2lkIDApZT1jO2Vsc2V7aWYoZD09PTApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTsKZm9yKHZhciBnPTE7Zzw9ZDtnKyspaWYodGhpcy5oYXMoZC1nKSl7ZT10aGlzLmdldChkLWcpO2Y9ZC0oZysxKTticmVha31pZihnPmQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlUmlnaHQgb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTt9Zm9yKHZhciBoPWY7aD49MDtoLS0pdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmV2ZXJzZTpmdW5jdGlvbigpe2Zvcih2YXIgYT1IZCh0aGlzKSxiPWEubGVuZ3RoLTEsYz0wO2I+PTA7Yi0tLGMrKylhLmhhc093blByb3BlcnR5KGIpP3RoaXMuc2V0KGMsYVtiXSk6dGhpcy5yZW1vdmUoYyk7cmV0dXJuIHRoaXN9LHNoaWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hpZnQoKX0sc2xpY2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCk7Yj09PXZvaWQgMCYmKGI9MCk7Yj1iPDA/TWF0aC5tYXgoZCtiLDApOk1hdGgubWluKGIsZCk7Yz1jPT09CnZvaWQgMD9kOmM8MD9NYXRoLm1heChkK2MsMCk6TWF0aC5taW4oYyxkKTtjPU1hdGgubWF4KGIsYyk7Zm9yKHZhciBlPVtdLGY9YjtmPGM7ZisrKWUucHVzaCh0aGlzLmdldChmKSk7cmV0dXJuIG5ldyBHZChlKX0sc29tZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspaWYodGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMDtyZXR1cm4hMX0sc29ydDpmdW5jdGlvbihhLGIpe3ZhciBjPUhkKHRoaXMpO2I9PT12b2lkIDA/Yy5zb3J0KCk6Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIE51bWJlcihiLmludm9rZShhLGUsZikpfSk7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspYy5oYXNPd25Qcm9wZXJ0eShkKT90aGlzLnNldChkLGNbZF0pOnRoaXMucmVtb3ZlKGQpO3JldHVybiB0aGlzfSxzcGxpY2U6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLnNwbGljZS5hcHBseSh0aGlzLApbYixjXS5jb25jYXQodyhPYS5hcHBseSgzLGFyZ3VtZW50cykpKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKX0sdW5zaGlmdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy51bnNoaWZ0LmFwcGx5KHRoaXMsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKX19O3ZhciBXZD17Y2hhckF0OjEsY29uY2F0OjEsaW5kZXhPZjoxLGxhc3RJbmRleE9mOjEsbWF0Y2g6MSxyZXBsYWNlOjEsc2VhcmNoOjEsc2xpY2U6MSxzcGxpdDoxLHN1YnN0cmluZzoxLHRvTG93ZXJDYXNlOjEsdG9Mb2NhbGVMb3dlckNhc2U6MSx0b1N0cmluZzoxLHRvVXBwZXJDYXNlOjEsdG9Mb2NhbGVVcHBlckNhc2U6MSx0cmltOjF9LFhkPW5ldyBUYSgiYnJlYWsiKSxZZD1uZXcgVGEoImNvbnRpbnVlIik7ZnVuY3Rpb24gWmQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSt0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkmJnRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gQXBwbHkgaW5zdHJ1Y3Rpb24uIik7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3QgcmVhZCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7dmFyIGc9dHlwZW9mIGQ9PT0ibnVtYmVyIjtpZih0eXBlb2YgZD09PSJib29sZWFuInx8Zyl7aWYoZT09PSJ0b1N0cmluZyIpe2lmKGcmJmYubGVuZ3RoKCkpe3ZhciBoPVRkKGYuZ2V0KDApKTt0cnl7cmV0dXJuIGQudG9TdHJpbmcoaCl9Y2F0Y2godSl7fX1yZXR1cm4gZC50b1N0cmluZygpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZCsiLiIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uLiIpKTt9aWYodHlwZW9mIGQ9PT0KInN0cmluZyIpe2lmKFdkLmhhc093blByb3BlcnR5KGUpKXt2YXIgbD1UZChmLHZvaWQgMCwxKTtyZXR1cm4gVWQoZFtlXS5hcHBseShkLGwpLHRoaXMuVCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGQgaW5zdGFuY2VvZiBHZCl7aWYoZC5oYXMoZSkpe3ZhciBuPWQuZ2V0KFN0cmluZyhlKSk7aWYobiBpbnN0YW5jZW9mIEtkKXt2YXIgcD1IZChmKTtyZXR1cm4gbi5hcHBseSh0aGlzLlQscCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKFZkLnN1cHBvcnRlZE1ldGhvZHMuaW5kZXhPZihlKT49MCl7dmFyIHE9SGQoZik7cmV0dXJuIFZkW2VdLmNhbGwuYXBwbHkoVmRbZV0sW2QsdGhpcy5UXS5jb25jYXQodyhxKSkpfX1pZihkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkKXtpZihkLmhhcyhlKSl7dmFyIHI9ZC5nZXQoZSk7CmlmKHIgaW5zdGFuY2VvZiBLZCl7dmFyIHQ9SGQoZik7cmV0dXJuIHIuYXBwbHkodGhpcy5ULHQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihlPT09InRvU3RyaW5nIilyZXR1cm4gZCBpbnN0YW5jZW9mIEtkP2QuZ2V0TmFtZSgpOmQudG9TdHJpbmcoKTtpZihlPT09Imhhc093blByb3BlcnR5IilyZXR1cm4gZC5oYXMoZi5nZXQoMCkpfWlmKGQgaW5zdGFuY2VvZiBQZCYmZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQudG9TdHJpbmcoKTt0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBPYmplY3QgaGFzIG5vICciK2UrIicgcHJvcGVydHkuIikpO30KZnVuY3Rpb24gYmUoYSxiKXthPXRoaXMuZXZhbHVhdGUoYSk7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgbmFtZSBnaXZlbiBmb3IgYXNzaWdubWVudC4iKTt2YXIgYz10aGlzLlQ7aWYoIWMuaGFzKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFzc2lnbiB0byB1bmRlZmluZWQgdmFsdWUgIitiKTt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2Muc2V0KGEsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gY2UoKXt2YXIgYT1PYS5hcHBseSgwLGFyZ3VtZW50cyksYj10aGlzLlQud2IoKSxjPWViKGIsYSk7aWYoYyBpbnN0YW5jZW9mIFRhKXJldHVybiBjfWZ1bmN0aW9uIGRlKCl7cmV0dXJuIFhkfWZ1bmN0aW9uIGVlKGEpe2Zvcih2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiW2NdKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9fQpmdW5jdGlvbiBmZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPWFyZ3VtZW50c1tiXTtpZih0eXBlb2YgYz09PSJzdHJpbmciKXt2YXIgZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLlFoKGMsZCl9fX1mdW5jdGlvbiBnZSgpe3JldHVybiBZZH1mdW5jdGlvbiBoZShhLGIpe3JldHVybiBuZXcgVGEoYSx0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBpZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2Q9bmV3IEdkO2Zvcih2YXIgZT10aGlzLmV2YWx1YXRlKGIpLGY9MDtmPGUubGVuZ3RoO2YrKylkLnB1c2goZVtmXSk7dmFyIGc9WzUxLGEsZF0uY29uY2F0KHcoYykpO3RoaXMuVC5hZGQoYSx0aGlzLmV2YWx1YXRlKGcpKX1mdW5jdGlvbiBqZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpL3RoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIGtlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYiksZT1jIGluc3RhbmNlb2YgUGQsZj1kIGluc3RhbmNlb2YgUGQ7cmV0dXJuIGV8fGY/ZSYmZj9jLmdldFZhbHVlKCk9PT1kLmdldFZhbHVlKCk6ITE6Yz09ZH1mdW5jdGlvbiBsZSgpe2Zvcih2YXIgYSxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylhPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTtyZXR1cm4gYX1mdW5jdGlvbiBtZShhLGIsYyxkKXtmb3IodmFyIGU9MDtlPGIoKTtlKyspe3ZhciBmPWEoYyhlKSksZz1lYihmLGQpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ319fQpmdW5jdGlvbiBuZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZil7cmV0dXJuIGZ9LGMpO2lmKGIgaW5zdGFuY2VvZiBrYnx8YiBpbnN0YW5jZW9mIFNkfHxiIGluc3RhbmNlb2YgR2R8fGIgaW5zdGFuY2VvZiBLZCl7dmFyIGQ9Yi5GYSgpLGU9ZC5sZW5ndGg7cmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gZX0sZnVuY3Rpb24oZil7cmV0dXJuIGRbZl19LGMpfX1mdW5jdGlvbiBvZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiBwZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHFlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHJlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHRlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gdWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9CmZ1bmN0aW9uIHNlKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihkKXtyZXR1cm4gYltkXX0sYyk7aWYoYiBpbnN0YW5jZW9mIEdkKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RoKCl9LGZ1bmN0aW9uKGQpe3JldHVybiBiLmdldChkKX0sYyk7dGhyb3cgY2IoRXJyb3IoIlRoZSB2YWx1ZSBpcyBub3QgaXRlcmFibGUuIikpO30KZnVuY3Rpb24gdmUoYSxiLGMsZCl7ZnVuY3Rpb24gZShxLHIpe2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGgoKTt0Kyspe3ZhciB1PWYuZ2V0KHQpO3IuYWRkKHUscS5nZXQodSkpfX12YXIgZj10aGlzLmV2YWx1YXRlKGEpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiVHlwZUVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBGb3JMZXQgaW5zdHJ1Y3Rpb24uIik7dmFyIGc9dGhpcy5ULGg9dGhpcy5ldmFsdWF0ZShkKSxsPWcud2IoKTtmb3IoZShnLGwpO2ZiKGwsYik7KXt2YXIgbj1lYihsLGgpO2lmKG4gaW5zdGFuY2VvZiBUYSl7aWYobi50eXBlPT09ImJyZWFrIilicmVhaztpZihuLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gbn12YXIgcD1nLndiKCk7ZShsLHApO2ZiKHAsYyk7bD1wfX0KZnVuY3Rpb24gd2UoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD10aGlzLlQsZT10aGlzLmV2YWx1YXRlKGIpO2lmKCEoZSBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IG5vbi1MaXN0IHZhbHVlIGdpdmVuIGZvciBGbiBhcmd1bWVudCBuYW1lcy4iKTtyZXR1cm4gbmV3IEtkKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz1kLndiKCk7Zy54YigpPT09dm9pZCAwJiZnLnVlKHRoaXMuVC54YigpKTtmb3IodmFyIGg9W10sbD0wO2w8Zi5sZW5ndGg7bCsrKXt2YXIgbj10aGlzLmV2YWx1YXRlKGZbbF0pO2hbbF09bn1mb3IodmFyIHA9ZS5nZXQoImxlbmd0aCIpLHE9MDtxPHA7cSsrKXE8aC5sZW5ndGg/Zy5hZGQoZS5nZXQocSksaFtxXSk6Zy5hZGQoZS5nZXQocSksdm9pZCAwKTtnLmFkZCgiYXJndW1lbnRzIixuZXcgR2QoaCkpO3ZhciByPWViKGcsYyk7aWYociBpbnN0YW5jZW9mIFRhKXJldHVybiByLnR5cGU9PT0KInJldHVybiI/ci5kYXRhOnJ9fSgpKX1mdW5jdGlvbiB4ZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpLGM9dGhpcy5UO2lmKHllJiYhYy5oYXMoYikpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGIrIiBpcyBub3QgZGVmaW5lZC4iKTtyZXR1cm4gYy5nZXQoYil9CmZ1bmN0aW9uIHplKGEsYil7dmFyIGMsZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKTtpZihkPT09dm9pZCAwfHxkPT09bnVsbCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mICIrZCsiIChyZWFkaW5nICciK2UrIicpIikpO2lmKGQgaW5zdGFuY2VvZiBrYnx8ZCBpbnN0YW5jZW9mIFNkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBLZCljPWQuZ2V0KGUpO2Vsc2UgaWYodHlwZW9mIGQ9PT0ic3RyaW5nIillPT09Imxlbmd0aCI/Yz1kLmxlbmd0aDpGZChlKSYmKGM9ZFtlXSk7ZWxzZSBpZihkIGluc3RhbmNlb2YgUGQpcmV0dXJuO3JldHVybiBjfWZ1bmN0aW9uIEFlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBCZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPj10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBDZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO2MgaW5zdGFuY2VvZiBQZCYmKGM9Yy5nZXRWYWx1ZSgpKTtkIGluc3RhbmNlb2YgUGQmJihkPWQuZ2V0VmFsdWUoKSk7cmV0dXJuIGM9PT1kfWZ1bmN0aW9uIERlKGEsYil7cmV0dXJuIUNlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIEVlKGEsYixjKXt2YXIgZD1bXTt0aGlzLmV2YWx1YXRlKGEpP2Q9dGhpcy5ldmFsdWF0ZShiKTpjJiYoZD10aGlzLmV2YWx1YXRlKGMpKTt2YXIgZT1lYih0aGlzLlQsZCk7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlfXZhciB5ZT0hMTsKZnVuY3Rpb24gRmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8PXRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gSGUoKXtmb3IodmFyIGE9bmV3IEdkLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7YS5wdXNoKGMpfXJldHVybiBhfWZ1bmN0aW9uIEllKCl7Zm9yKHZhciBhPW5ldyBrYixiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9U3RyaW5nKHRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKSksZD10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiKzFdKTthLnNldChjLGQpfXJldHVybiBhfWZ1bmN0aW9uIEplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkldGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSp0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIExlKGEpe3JldHVybi10aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE1lKGEpe3JldHVybiF0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIE5lKGEsYil7cmV0dXJuIWtlLmNhbGwodGhpcyxhLGIpfWZ1bmN0aW9uIE9lKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gUGUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKXx8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBRZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSk7dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gY31mdW5jdGlvbiBSZShhKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBTZSgpe3JldHVybiBPYS5hcHBseSgwLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVGUoYSl7cmV0dXJuIG5ldyBUYSgicmV0dXJuIix0aGlzLmV2YWx1YXRlKGEpKX0KZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCBzZXQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpOyhkIGluc3RhbmNlb2YgS2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIGtiKSYmZC5zZXQoU3RyaW5nKGUpLGYpO3JldHVybiBmfWZ1bmN0aW9uIFZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSktdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighQXJyYXkuaXNBcnJheShlKXx8IUFycmF5LmlzQXJyYXkoZikpdGhyb3cgRXJyb3IoIkVycm9yOiBNYWxmb3JtZWQgc3dpdGNoIGluc3RydWN0aW9uLiIpO2Zvcih2YXIgZyxoPSExLGw9MDtsPGUubGVuZ3RoO2wrKylpZihofHxkPT09dGhpcy5ldmFsdWF0ZShlW2xdKSlpZihnPXRoaXMuZXZhbHVhdGUoZltsXSksZyBpbnN0YW5jZW9mIFRhKXt2YXIgbj1nLnR5cGU7aWYobj09PSJicmVhayIpcmV0dXJuO2lmKG49PT0icmV0dXJuInx8bj09PSJjb250aW51ZSIpcmV0dXJuIGd9ZWxzZSBoPSEwO2lmKGYubGVuZ3RoPT09ZS5sZW5ndGgrMSYmKGc9dGhpcy5ldmFsdWF0ZShmW2YubGVuZ3RoLTFdKSxnIGluc3RhbmNlb2YgVGEmJihnLnR5cGU9PT0icmV0dXJuInx8Zy50eXBlPT09ImNvbnRpbnVlIikpKXJldHVybiBnfQpmdW5jdGlvbiBYZShhLGIsYyl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk/dGhpcy5ldmFsdWF0ZShiKTp0aGlzLmV2YWx1YXRlKGMpfWZ1bmN0aW9uIFllKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSk7cmV0dXJuIGIgaW5zdGFuY2VvZiBLZD8iZnVuY3Rpb24iOnR5cGVvZiBifWZ1bmN0aW9uIFplKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9YXJndW1lbnRzW2JdO3R5cGVvZiBjIT09InN0cmluZyJ8fGEuYWRkKGMsdm9pZCAwKX19CmZ1bmN0aW9uICRlKGEsYixjLGQpe3ZhciBlPXRoaXMuZXZhbHVhdGUoZCk7aWYodGhpcy5ldmFsdWF0ZShjKSl7dmFyIGY9ZWIodGhpcy5ULGUpO2lmKGYgaW5zdGFuY2VvZiBUYSl7aWYoZi50eXBlPT09ImJyZWFrIilyZXR1cm47aWYoZi50eXBlPT09InJldHVybiIpcmV0dXJuIGZ9fWZvcig7dGhpcy5ldmFsdWF0ZShhKTspe3ZhciBnPWViKHRoaXMuVCxlKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9dGhpcy5ldmFsdWF0ZShiKX19ZnVuY3Rpb24gYWYoYSl7cmV0dXJufk51bWJlcih0aGlzLmV2YWx1YXRlKGEpKX1mdW5jdGlvbiBiZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk8PE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBjZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX0KZnVuY3Rpb24gZGYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGVmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKSZOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpXk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBnZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGhmKCl7fQpmdW5jdGlvbiBrZihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfWNhdGNoKGgpe2lmKCEoaCBpbnN0YW5jZW9mIGJiJiZoLlNuKSl0aHJvdyBoO3ZhciBlPXRoaXMuVC53YigpO2EhPT0iIiYmKGggaW5zdGFuY2VvZiBiYiYmKGg9aC52byksZS5hZGQoYSxuZXcgUGQoaCkpKTt2YXIgZj10aGlzLmV2YWx1YXRlKGMpLGc9ZWIoZSxmKTtpZihnIGluc3RhbmNlb2YgVGEpcmV0dXJuIGd9fWZ1bmN0aW9uIGxmKGEsYil7dmFyIGMsZDt0cnl7ZD10aGlzLmV2YWx1YXRlKGEpfWNhdGNoKGYpe2lmKCEoZiBpbnN0YW5jZW9mIGJiJiZmLlNuKSl0aHJvdyBmO2M9Zn12YXIgZT10aGlzLmV2YWx1YXRlKGIpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZTtpZihjKXRocm93IGM7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfTt2YXIgbmY9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGdiO21mKHRoaXMpfTtuZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILnJrKGEpfTt2YXIgbWY9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1uZXcgTGQoU3RyaW5nKGMpLGQpO2UuWmEoKTt2YXIgZj1TdHJpbmcoYyk7YS5ILkguc2V0KGYsZSk7ZGIuc2V0KGYsZSl9O2IoIm1hcCIsSWUpO2IoImFuZCIsdGQpO2IoImNvbnRhaW5zIix3ZCk7YigiZXF1YWxzIix1ZCk7Yigib3IiLHZkKTtiKCJzdGFydHNXaXRoIix4ZCk7YigidmFyaWFibGUiLHlkKX07bmYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07dmFyIHBmPWZ1bmN0aW9uKCl7dGhpcy5LPSExO3RoaXMuSD1uZXcgZ2I7b2YodGhpcyk7dGhpcy5LPSEwfTtwZi5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihhKXtyZXR1cm4gcWYodGhpcy5ILnJrKGEpKX07dmFyIHJmPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gcWYoYS5ILkpxKGIsYykpfTtwZi5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLkguWmEoKX07CnZhciBvZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPVN0cmluZyhjKSxmPW5ldyBMZChlLGQpO2YuWmEoKTthLkguSC5zZXQoZSxmKTtkYi5zZXQoZSxmKX07YigwLFpkKTtiKDEsJGQpO2IoMixhZSk7YigzLGJlKTtiKDU2LGVmKTtiKDU3LGJmKTtiKDU4LGFmKTtiKDU5LGdmKTtiKDYwLGNmKTtiKDYxLGRmKTtiKDYyLGZmKTtiKDUzLGNlKTtiKDQsZGUpO2IoNSxlZSk7Yig2OCxrZik7Yig1MixmZSk7Yig2LGdlKTtiKDQ5LGhlKTtiKDcsSGUpO2IoOCxJZSk7Yig5LGVlKTtiKDUwLGllKTtiKDEwLGplKTtiKDEyLGtlKTtiKDEzLGxlKTtiKDY3LGxmKTtiKDUxLHdlKTtiKDQ3LG9lKTtiKDU0LHBlKTtiKDU1LHFlKTtiKDYzLHZlKTtiKDY0LHJlKTtiKDY1LHRlKTtiKDY2LHVlKTtiKDE1LHhlKTtiKDE2LHplKTtiKDE3LHplKTtiKDE4LEFlKTtiKDE5LEJlKTtiKDIwLENlKTtiKDIxLERlKTtiKDIyLEVlKTtiKDIzLEZlKTtiKDI0LEdlKTtiKDI1LEplKTtiKDI2LApLZSk7YigyNyxMZSk7YigyOCxNZSk7YigyOSxOZSk7Yig0NSxPZSk7YigzMCxQZSk7YigzMixRZSk7YigzMyxRZSk7YigzNCxSZSk7YigzNSxSZSk7Yig0NixTZSk7YigzNixUZSk7Yig0MyxVZSk7YigzNyxWZSk7YigzOCxXZSk7YigzOSxYZSk7Yig0MCxZZSk7Yig0NCxoZik7Yig0MSxaZSk7Yig0MiwkZSl9O3BmLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguamUoKX07cGYucHJvdG90eXBlLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSC5RYihhKX07cGYucHJvdG90eXBlLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07CmZ1bmN0aW9uIHFmKGEpe2lmKGEgaW5zdGFuY2VvZiBUYXx8YSBpbnN0YW5jZW9mIEtkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgUGR8fGE9PT1udWxsfHxhPT09dm9pZCAwfHx0eXBlb2YgYT09PSJzdHJpbmcifHx0eXBlb2YgYT09PSJudW1iZXIifHx0eXBlb2YgYT09PSJib29sZWFuIilyZXR1cm4gYX07dmFyIHNmPWZ1bmN0aW9uKGEpe3RoaXMubWVzc2FnZT1hfTtmdW5jdGlvbiB0ZihhKXthLnF2PSEwO3JldHVybiBhfTt2YXIgdWY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSx2Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLHdmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO2Z1bmN0aW9uIHhmKGEpe3ZhciBiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlthXTtyZXR1cm4gYj09PXZvaWQgMD9uZXcgc2YoIlZhbHVlICIrYSsiIGNhbiBub3QgYmUgZW5jb2RlZCBpbiB3ZWItc2FmZSBiYXNlNjQgZGljdGlvbmFyeS4iKTpifTtmdW5jdGlvbiB5ZihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiIxIjtjYXNlIDI6Y2FzZSA0OnJldHVybiIwIjtkZWZhdWx0OnJldHVybiItIn19O3ZhciB6Zj0vXlsxLTlhLXpBLVpfLV1bMS05YS1jXVsxLTlhLXZdXGQkLztmdW5jdGlvbiBBZihhLGIpe2Zvcih2YXIgYz0iIixkPSEwO2E+Nzspe3ZhciBlPWEmMzE7YT4+PTU7ZD9kPSExOmV8PTMyO2M9IiIreGYoZSkrY31hPDw9MjtkfHwoYXw9MzIpO3JldHVybiBjPSIiK3hmKGF8YikrY31mdW5jdGlvbiBCZihhLGIpe3JldHVybiBiPT09dm9pZCAwfHxiPT09MD8iIjoiIitBZihhLDEpK3hmKGIpfQpmdW5jdGlvbiBDZihhLGIpe3ZhciBjO3ZhciBkPWEuaGksZT1hLmJrO2Q9PT12b2lkIDA/Yz0iIjooZXx8KGU9MCksYz0iIitBZigxLDEpK3hmKGQ8PDJ8ZSkpO3ZhciBmPSI0IitjK0JmKDIsYS5xciksZyxoPWEuSW87Zz1oJiZ6Zi50ZXN0KGgpPyIiK0FmKDMsMikraDoiIjt2YXIgbDt2YXIgbj1hLmN0aWQ7aWYobiYmYil7dmFyIHA9QWYoNSwzKSxxPW4uc3BsaXQoIi0iKSxyPXFbMF0udG9VcHBlckNhc2UoKTtpZihyIT09IkdUTSImJnIhPT0iT1BUIilsPSIiO2Vsc2V7dmFyIHQ9cVsxXTtsPSIiK3AreGYoMSt0Lmxlbmd0aCkrKGEuTHN8fDApK3R9fWVsc2UgbD0iIjt2YXIgdT1hLmNhbm9uaWNhbElkLHY9YS5tYyx4PWEuenYseT1mK2crQmYoNCxhLkRvKStsK0JmKDYsYS5EdCkrKHU/IiIrQWYoNywzKSt4Zih1Lmxlbmd0aCkrdToiIikrKHY/IiIrQWYoOCwzKSt4Zih2Lmxlbmd0aCkrdjoiIikrKHg/IiIrQWYoOSwzKSt4Zih4Lmxlbmd0aCkreDoiIiksejt2YXIgQz1hLnpyO0M9CkM9PT12b2lkIDA/e306Qztmb3IodmFyIEQ9W10sST1tKE9iamVjdC5rZXlzKEMpKSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7dmFyIE49Ry52YWx1ZTtEW051bWJlcihOKV09Q1tOXX1pZihELmxlbmd0aCl7dmFyIFM9QWYoMTAsMyksVztpZihELmxlbmd0aD09PTApVz14ZigwKTtlbHNle2Zvcih2YXIgZWE9W10samE9MCxmYT0hMSxzYT0wO3NhPEQubGVuZ3RoO3NhKyspe2ZhPSEwO3ZhciBkYT1zYSU2O0Rbc2FdJiYoamF8PTE8PGRhKTtkYT09PTUmJihlYS5wdXNoKHhmKGphKSksamE9MCxmYT0hMSl9ZmEmJmVhLnB1c2goeGYoamEpKTtXPWVhLmpvaW4oIiIpfXZhciBtYT1XO3o9IiIrUyt4ZihtYS5sZW5ndGgpK21hfWVsc2Ugej0iIjt2YXIgUGE9YS5VcyxGYT1hLm50O3JldHVybiB5K3orKFBhPyIiK0FmKDExLDMpK3hmKFBhLmxlbmd0aCkrUGE6IiIpKyhGYT8iIitBZigxMywzKSt4ZihGYS5sZW5ndGgpK0ZhOiIiKStCZigxNCxhLkV0KStCZigxNSxhLnJ2KStCZigxNiwKYS5Bdil9O2Z1bmN0aW9uIERmKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09NTUyOTYmJmQrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChkKzEpJjY0NTEyKT09NTYzMjA/KGU9NjU1MzYrKChlJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2QpJjEwMjMpLGJbYysrXT1lPj4xOHwyNDAsYltjKytdPWU+PjEyJjYzfDEyOCk6YltjKytdPWU+PjEyfDIyNCxiW2MrK109ZT4+NiY2M3wxMjgpLGJbYysrXT1lJjYzfDEyOCl9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVmKGEsYil7Zm9yKHZhciBjPXFiKGIpLGQ9bmV3IFVpbnQ4QXJyYXkoYy5sZW5ndGgpLGU9MDtlPGMubGVuZ3RoO2UrKylkW2VdPWMuY2hhckNvZGVBdChlKTtpZihkLmxlbmd0aCE9PTMyKXRocm93IEVycm9yKCJLZXkgaXMgbm90IDMyIGJ5dGVzLiIpO3JldHVybiBGZihhLGQpfWZ1bmN0aW9uIEZmKGEsYil7aWYoYT09PSIiKXJldHVybiIiO3ZhciBjPVpiKGEpLGQ9Yi5zbGljZSgtMiksZT1bXS5jb25jYXQodyhkKSx3KGMpKS5tYXAoZnVuY3Rpb24oZyxoKXtyZXR1cm4gZ15iW2glYi5sZW5ndGhdfSksZj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhlKSx3KGQpKSk7cmV0dXJuIHBiKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZikpKS5yZXBsYWNlKC9cLiskLywiIil9O3ZhciBHZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7cmV0dXJue3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fX1yZXR1cm57Y3A6YSgiY29uc2VudCIpLFprOmEoImNvbnZlcnRfY2FzZV90byIpLGFsOmEoImNvbnZlcnRfZmFsc2VfdG8iKSxibDphKCJjb252ZXJ0X251bGxfdG8iKSxlcDphKCJjb252ZXJ0X3RvX2Jvb2xlYW4iKSxhaDphKCJjb252ZXJ0X3RvX251bWJlciIpLGZsOmEoImNvbnZlcnRfdHJ1ZV90byIpLGlsOmEoImNvbnZlcnRfdW5kZWZpbmVkX3RvIiksWXQ6YSgiZGVidWdfbW9kZV9tZXRhZGF0YSIpLFliOmEoImZ1bmN0aW9uIiksUm06YSgiaW5zdGFuY2VfbmFtZSIpLE5xOmEoImxpdmVfb25seSIpLE9xOmEoIm1hbHdhcmVfZGlzYWJsZWQiKSxNRVRBREFUQTphKCJtZXRhZGF0YSIpLFJxOmEoIm9yaWdpbmFsX2FjdGl2aXR5X2lkIiksVHU6YSgib3JpZ2luYWxfdmVuZG9yX3RlbXBsYXRlX2lkIiksU3U6YSgib25jZV9vbl9sb2FkIiksUXE6YSgib25jZV9wZXJfZXZlbnQiKSwKa246YSgib25jZV9wZXJfbG9hZCIpLFZ1OmEoInByaW9yaXR5X292ZXJyaWRlIiksWXU6YSgicmVzcGVjdGVkX2NvbnNlbnRfdHlwZXMiKSx0bjphKCJzZXR1cF90YWdzIikseWo6YSgidGFnX2lkIiksRG46YSgidGVhcmRvd25fdGFncyIpLHBsOmEoImRpc2FibGVkX2luX2dvb2dsZV9tb2RlIiksRnE6YSgiZ2VuZXJhdGVkX3RhZ2dpbmdfbWV0YWRhdGEiKX19KCk7ZnVuY3Rpb24gSGYoYSxiKXt2YXIgYz17fTtjW0dmLlliXT0iX18iK2E7Zm9yKHZhciBkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbInZ0cF8iK2RdPWJbZF0pO3JldHVybiBjfTtmdW5jdGlvbiBJZihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpPyEhZGF0YS5ibG9iW2FdOmJ9ZnVuY3Rpb24gRShhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoZGF0YS5ibG9iW2FdKTpifWZ1bmN0aW9uIEpmKGEpe3ZhciBiLGM7cmV0dXJuKChiPWRhdGEpPT1udWxsPzA6KGM9Yi5ibG9iKT09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihkYXRhLmJsb2JbYV0pOjB9ZnVuY3Rpb24gS2YoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP1tdOmI7dmFyIGMsZCxlPShjPWRhdGEpPT1udWxsP3ZvaWQgMDooZD1jLmJsb2IpPT1udWxsP3ZvaWQgMDpkW2FdO3JldHVybiBBcnJheS5pc0FycmF5KGUpP2U6Yn0KZnVuY3Rpb24gTGYoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhjW2FdKTpifWZ1bmN0aW9uIE5mKGEsYil7dmFyIGM9TWYoNDYpO3JldHVybiBjJiYoYz09bnVsbD8wOmMuaGFzT3duUHJvcGVydHkoYSkpP051bWJlcihjW2FdKTpifWZ1bmN0aW9uIE1mKGEpe3ZhciBiLGM7cmV0dXJuKGI9ZGF0YSk9PW51bGw/dm9pZCAwOihjPWIuYmxvYik9PW51bGw/dm9pZCAwOmNbYV19O3ZhciBPZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYyk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy5wZXJtaXNzaW9uSWQ9YTt0aGlzLnBhcmFtZXRlcnM9Yjt0aGlzLm5hbWU9IlBlcm1pc3Npb25FcnJvciJ9O3dhKE9mLEVycm9yKTtPZi5wcm90b3R5cGUuZ2V0TWVzc2FnZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2V9O2Z1bmN0aW9uIFBmKGEsYil7aWYoQXJyYXkuaXNBcnJheShhKSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImNvbnRleHQiLHt2YWx1ZTp7bGluZTpiWzBdfX0pO2Zvcih2YXIgYz0xO2M8YS5sZW5ndGg7YysrKVBmKGFbY10sYltjXSl9fTtmdW5jdGlvbiBRZigpe3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjO3ZhciBkPVJmO2EgaW5zdGFuY2VvZiBiYj8oYS5IPWQsYz1hKTpjPW5ldyBiYihhLGQpO3ZhciBlPWM7YiYmZS5LLnB1c2goYik7dGhyb3cgZTt9fWZ1bmN0aW9uIFJmKGEpe2lmKCFhLmxlbmd0aClyZXR1cm4gYTthLnB1c2goe2lkOiJtYWluIixsaW5lOjB9KTtmb3IodmFyIGI9YS5sZW5ndGgtMTtiPjA7Yi0tKUFiKGFbYl0uaWQpJiZhLnNwbGljZShiKyssMSk7Zm9yKHZhciBjPWEubGVuZ3RoLTE7Yz4wO2MtLSlhW2NdLmxpbmU9YVtjLTFdLmxpbmU7YS5zcGxpY2UoMCwxKTtyZXR1cm4gYX07dmFyIFNmPVJlZ0V4cCgiW14wLTlcXC4rLV0iLCJnIiksVGY9UmVnRXhwKCJbXjAtOVxcLCstXSIsImciKSxVZj1SZWdFeHAoIlteMC05Ky1dIiwiZyIpOwpmdW5jdGlvbiBWZihhLGIpe2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuIGE7dmFyIGM9U3RyaW5nKGEpLGQ7aWYoYj09PSJBVVRPTUFUSUMiKXt2YXIgZT0oYy5tYXRjaCgvXC4vZyl8fFtdKS5sZW5ndGgsZj0oYy5tYXRjaCgvLC9nKXx8W10pLmxlbmd0aCxnPSJOT05FIjtpZihlPjAmJmY+MCl7dmFyIGg9Yy5sYXN0SW5kZXhPZigiLiIpPmMubGFzdEluZGV4T2YoIiwiKTtoJiZlPT09MT9nPSJQRVJJT0QiOmh8fGYhPT0xfHwoZz0iQ09NTUEiKX1lbHNlIGU9PT0xP2c9KGMuc3BsaXQoIi4iKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJQRVJJT0QiOiJOT05FIjpmPT09MSYmKGc9KGMuc3BsaXQoIiwiKVsxXS5tYXRjaCgvWzAtOV0vZyl8fFtdKS5sZW5ndGghPT0zPyJDT01NQSI6Ik5PTkUiKTtkPWd9ZWxzZSBkPWI9PT0iQ09NTUEiPyJDT01NQSI6IlBFUklPRCI7dmFyIGwsbjtkPT09IlBFUklPRCI/KGw9Ii4iLG49U2YpOmQ9PT0iQ09NTUEiPyhsPSIsIiwKbj1UZik6KGw9IiIsbj1VZik7dmFyIHA9Yy5yZXBsYWNlKG4sIiIpO2lmKGwhPT0iIiYmcC5zcGxpdChsKS5sZW5ndGg+MilyZXR1cm4gYTt2YXIgcT1wLnJlcGxhY2UoLywvZywiLiIpO2lmKHE9PT0iIilyZXR1cm4gYTt2YXIgcj1OdW1iZXIocSk7cmV0dXJuIGlzTmFOKHIpP2E6cn07dmFyIFdmPVtdLFhmPXt9O2Z1bmN0aW9uIFlmKGEpe3JldHVybiBXZlthXT09PXZvaWQgMD8hMTpXZlthXX07dmFyIFpmPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSwkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO2EuSFtiXS5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkobnVsbCx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfSl9O2Z1bmN0aW9uIGFnKGEsYixjLGQpe2lmKGEpZm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBmPXZvaWQgMCxnPSJBIHBvbGljeSBmdW5jdGlvbiBkZW5pZWQgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCI7dHJ5e2Y9YVtlXShiLGMsZCksZys9Ii4ifWNhdGNoKGgpe2c9dHlwZW9mIGg9PT0ic3RyaW5nIj9nKygiOiAiK2gpOmggaW5zdGFuY2VvZiBFcnJvcj9nKygiOiAiK2gubWVzc2FnZSk6ZysiLiJ9aWYoIWYpdGhyb3cgbmV3IE9mKGMsZCxnKTt9fQpmdW5jdGlvbiBiZyhhLGIpe3ZhciBjPWNnKGRnLkgsYixmdW5jdGlvbigpe3JldHVybnt9fSk7dHJ5e3JldHVybiBjKGEpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBjZyhhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe2lmKGQpe3ZhciBlPWEuSFtkXSxmPWEuSC5hbGw7aWYoZXx8Zil7dmFyIGc9Yy5hcHBseSh2b2lkIDAsW2RdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTthZyhlLGIsZCxnKTthZyhmLGIsZCxnKX19fX07dmFyIGdnPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSz17fTt0aGlzLkg9bmV3IFpmO3ZhciBlPXt9LGY9e30sZz1jZyh0aGlzLkgsYSxmdW5jdGlvbihoKXtyZXR1cm4gaCYmZVtoXT9lW2hdLmFwcGx5KHZvaWQgMCxbaF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpOnt9fSk7R2IoYixmdW5jdGlvbihoLGwpe2Z1bmN0aW9uIG4ocSl7dmFyIHI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKCFwW3FdKXRocm93IGVnKHEse30sIlRoZSByZXF1ZXN0ZWQgYWRkaXRpb25hbCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO2cuYXBwbHkobnVsbCxbcV0uY29uY2F0KHcocikpKX12YXIgcD17fTtHYihsLGZ1bmN0aW9uKHEscil7dmFyIHQ9ZmcocSxyLGMpO3BbcV09dC5hc3NlcnQ7ZVtxXXx8KGVbcV09dC5hYSk7dC5PbiYmIWZbcV0mJihmW3FdPXQuT24pfSk7ZC5LW2hdPWZ1bmN0aW9uKHEscil7dmFyIHQ9cFtxXTtpZighdCl0aHJvdyBlZyhxLAp7fSwiVGhlIHJlcXVlc3RlZCBwZXJtaXNzaW9uICIrcSsiIGlzIG5vdCBjb25maWd1cmVkLiIpO3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTt0LmFwcGx5KHZvaWQgMCx1KTtnLmFwcGx5KHZvaWQgMCx1KTt2YXIgdj1mW3FdO3YmJnYuYXBwbHkobnVsbCxbbl0uY29uY2F0KHcodS5zbGljZSgxKSkpKX19KX0saGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGRnLktbYV18fGZ1bmN0aW9uKCl7fX07CmZ1bmN0aW9uIGZnKGEsYixjKXt0cnl7dmFyIGQ9Y1siX18iK2FdO2lmKCFkKXRocm93IEVycm9yKCJObyBmdW5jdGlvbiBmb3VuZCBmb3IgcGVybWlzc2lvbjogIithKyIuIik7dmFyIGU9SGYoYSxiKTtlLnZ0cF9wZXJtaXNzaW9uTmFtZT1hO2UudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcj1lZztkZWxldGUgZVtHZi5ZYl07cmV0dXJuIGQoZSl9Y2F0Y2goZil7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihnKXt0aHJvdyBuZXcgT2YoZyx7fSwiUGVybWlzc2lvbiAiK2crIiBpcyB1bmtub3duLiIpO30sYWE6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgT2YoYSx7fSwiUGVybWlzc2lvbiAiK2ErIiBpcyB1bmtub3duLiIpO319fX1mdW5jdGlvbiBlZyhhLGIsYyl7cmV0dXJuIG5ldyBPZihhLGIsYyl9O3ZhciBpZz1FKDUpLGpnPUUoMjApLGtnPUUoMSksbGc9ITE7dmFyIG1nPXt9O21nLlBvPUlmKDI5KTttZy5Lcj1JZigyOCk7ZnVuY3Rpb24gbmcoYSl7dmFyIGI9MSxjLGQsZTtpZihhKWZvcihiPTAsZD1hLmxlbmd0aC0xO2Q+PTA7ZC0tKWU9YS5jaGFyQ29kZUF0KGQpLGI9KGI8PDYmMjY4NDM1NDU1KStlKyhlPDwxNCksYz1iJjI2NjMzODMwNCxiPWMhPT0wP2JeYz4+MjE6YjtyZXR1cm4gYn07dmFyIG9nPWZ1bmN0aW9uKGEpe3RoaXMuY2FjaGU9YX07b2cucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj1uZyhhKSxjPXRoaXMuY2FjaGUuZ2V0KGIpO2lmKCFjKXJldHVybntwcm9taXNlOnZvaWQgMCxLajowfTtpZihEYXRlLm5vdygpPj1jLnRpbWVzdGFtcCs5RTUpcmV0dXJuIHRoaXMuY2FjaGUuZGVsZXRlKGIpLHtwcm9taXNlOnZvaWQgMCxLajozfTt2YXIgZD1jLnJlc29sdmVkVmFsdWU/MjoxO3JldHVybntwcm9taXNlOmMucmVzb2x2ZWRWYWx1ZT9Qcm9taXNlLnJlc29sdmUoYy5yZXNvbHZlZFZhbHVlKTpjLnByb21pc2UsS2o6ZH19O29nLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz17cHJvbWlzZTpiLHJlc29sdmVkVmFsdWU6dm9pZCAwLHRpbWVzdGFtcDpEYXRlLm5vdygpfTt0aGlzLmNhY2hlLnNldChuZyhhKSxjKTtiLnRoZW4oZnVuY3Rpb24oZCl7Yy5yZXNvbHZlZFZhbHVlPWR9KX07ZnVuY3Rpb24gcGcoYSl7c3dpdGNoKGEpe2Nhc2UgMDpicmVhaztjYXNlIDk6cmV0dXJuImU0IjtjYXNlIDY6cmV0dXJuImU1IjtjYXNlIDE0OnJldHVybiJlNiI7ZGVmYXVsdDpyZXR1cm4iZTcifX07dmFyIEY9e0Q6e1hhOiJhZF9wZXJzb25hbGl6YXRpb24iLGthOiJhZF9zdG9yYWdlIixtYToiYWRfdXNlcl9kYXRhIixyYToiYW5hbHl0aWNzX3N0b3JhZ2UiLG5jOiJyZWdpb24iLHNhOiJjb25zZW50X3VwZGF0ZWQiLFlnOiJ3YWl0X2Zvcl91cGRhdGUiLGVoOiJlbmRwb2ludF90eXBlIixxcDoiYXBwX3JlbW92ZSIscnA6ImFwcF9zdG9yZV9yZWZ1bmQiLHRwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCIsdXA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCIsdnA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciLHdwOiJjb25zZW50X3VwZGF0ZSIseHA6ImNvbnZlcnNpb24iLHZsOiJhZGRfcGF5bWVudF9pbmZvIix3bDoiYWRkX3NoaXBwaW5nX2luZm8iLHhlOiJhZGRfdG9fY2FydCIseWU6InJlbW92ZV9mcm9tX2NhcnQiLHhsOiJ2aWV3X2NhcnQiLEFkOiJiZWdpbl9jaGVja291dCIsZXU6ImdlbmVyYXRlX2xlYWQiLHplOiJzZWxlY3RfaXRlbSIsb2M6InZpZXdfaXRlbV9saXN0IiwKUWM6InNlbGVjdF9wcm9tb3Rpb24iLHFjOiJ2aWV3X3Byb21vdGlvbiIsSWI6InB1cmNoYXNlIixBZToicmVmdW5kIixyYzoidmlld19pdGVtIix5bDoiYWRkX3RvX3dpc2hsaXN0Iix5cDoiZXhjZXB0aW9uIix6cDoiZmlyc3Rfb3BlbiIsQXA6ImZpcnN0X3Zpc2l0Iix3YToiZ3RhZy5jb25maWciLEpiOiJndGFnLmdldCIsQnA6ImluX2FwcF9wdXJjaGFzZSIsc2M6InBhZ2VfdmlldyIsQ3A6InNjcmVlbl92aWV3IixEcDoic2Vzc2lvbl9zdGFydCIsRXA6InNvdXJjZV91cGRhdGUiLEZwOiJ0aW1pbmdfY29tcGxldGUiLEdwOiJ0cmFja19zb2NpYWwiLHlmOiJ1c2VyX2VuZ2FnZW1lbnQiLEhwOiJ1c2VyX2lkX3VwZGF0ZSIsZmg6ImJyYWlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLGdoOiJicmFpZF9zdG9yYWdlX3NvdXJjZSIsQmQ6ImdjbGlkX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLENkOiJnY2xpZF9zdG9yYWdlX3NvdXJjZSIsU2I6ImdjbGdiIixsYjoiZ2NsaWQiLHpsOiJnY2xpZF9sZW4iLApCZToiZ2NsZ3MiLENlOiJnY2xscCIsRGU6ImdjbHN0IixtYjoiYWRzX2RhdGFfcmVkYWN0aW9uIix6ZjoiZ2FkX3NvdXJjZSIsQWY6ImdhZF9zb3VyY2Vfc3JjIixEZDoiZ2NsaWRfdXJsIixBbDoiZ2Nsc3JjIixCZjoiZ2JyYWlkIixFZToid2JyYWlkIixSYzoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiLHJpOiJhbGxvd19jdXN0b21fc2NyaXB0cyIsaGg6ImFsbG93X2Rpc3BsYXlfZmVhdHVyZXMiLHNpOiJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyIsU2M6ImFsbG93X2dvb2dsZV9zaWduYWxzIix1aToiYWxsb3dfaW50ZXJlc3RfZ3JvdXBzIixJcDoiYXBwX2lkIixKcDoiYXBwX2luc3RhbGxlcl9pZCIsS3A6ImFwcF9uYW1lIixMcDoiYXBwX3ZlcnNpb24iLEVkOiJhdWlkIixmdToiYXV0b19kZXRlY3Rpb25fZW5hYmxlZCIsQmw6ImF1dG9fZXZlbnQiLENsOiJhd19yZW1hcmtldGluZyIsaWg6ImF3X3JlbWFya2V0aW5nX29ubHkiLENmOiJkaXNjb3VudCIsRGY6ImF3X2ZlZWRfY291bnRyeSIsCkVmOiJhd19mZWVkX2xhbmd1YWdlIixIYToiaXRlbXMiLEZmOiJhd19tZXJjaGFudF9pZCIsd2k6ImF3X2Jhc2tldF90eXBlIixHZjoiY2FtcGFpZ25fY29udGVudCIsSGY6ImNhbXBhaWduX2lkIixJZjoiY2FtcGFpZ25fbWVkaXVtIixKZjoiY2FtcGFpZ25fbmFtZSIsS2Y6ImNhbXBhaWduIixMZjoiY2FtcGFpZ25fc291cmNlIixNZjoiY2FtcGFpZ25fdGVybSIsS2I6ImNsaWVudF9pZCIsRGw6InJuZCIseGk6ImNvbnNlbnRfdXBkYXRlX3R5cGUiLE1wOiJjb250ZW50X2dyb3VwIixOcDoiY29udGVudF90eXBlIixGZDoiY29udmVyc2lvbl9jb29raWVfcHJlZml4Iix5aToiY29udmVyc2lvbl9pZCIsdWM6ImNvbnZlcnNpb25fbGlua2VyIixIZDoiY29udmVyc2lvbl9saW5rZXJfZGlzYWJsZWQiLEZlOiJjb252ZXJzaW9uX2FwaSIsemk6Il8mcmNiIixqaDoiY29va2llX2RlcHJlY2F0aW9uIixMYjoiY29va2llX2RvbWFpbiIsQ2I6ImNvb2tpZV9leHBpcmVzIixUYjoiY29va2llX2ZsYWdzIiwKSWQ6ImNvb2tpZV9uYW1lIix2YzoiY29va2llX3BhdGgiLG5iOiJjb29raWVfcHJlZml4IixKZDoiY29va2llX3VwZGF0ZSIsVGM6ImNvdW50cnkiLGViOiJjdXJyZW5jeSIsR2U6ImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIixraDoiY3VzdG9tZXJfdHlwZSIsSGU6ImN1c3RvbV9tYXAiLEFpOiJnY2xkY19saW5rX2RlY29yYXRpb25fc291cmNlIixCaToiZ2NsZGNfc3RvcmFnZV9zb3VyY2UiLE5mOiJnY2xkYyIsS2Q6ImRjbGlkIixFbDoiZGVidWdfbW9kZSIsT2E6ImRldmVsb3Blcl9pZCIsT3A6ImRpc2FibGVfbWVyY2hhbnRfcmVwb3J0ZWRfcHVyY2hhc2VzIixVYzoiZGNfY3VzdG9tX3BhcmFtcyIsUHA6ImRjX25hdHVyYWxfc2VhcmNoIixRcDoiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsRmw6ImFmZmlsaWF0aW9uIixtaDoiY2hlY2tvdXRfb3B0aW9uIixDaToiY2hlY2tvdXRfc3RlcCIsR2w6ImNvdXBvbiIsT2Y6Iml0ZW1fbGlzdF9uYW1lIixEaToibGlzdF9uYW1lIixScDoicHJvbW90aW9ucyIsCkxkOiJzaGlwcGluZyIsSGw6InRheCIsbmg6ImVuZ2FnZW1lbnRfdGltZV9tc2VjIixvaDoiZW5oYW5jZWRfY2xpZW50X2lkIixTcDoiZW5oYW5jZWRfY29udmVyc2lvbnMiLGd1OiJlbmhhbmNlZF9jb252ZXJzaW9uc19hdXRvbWF0aWNfc2V0dGluZ3MiLEllOiJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSIsUGY6ImV2ZW50X2NhbGxiYWNrIixUcDoiZXZlbnRfY2F0ZWdvcnkiLFZjOiJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIixNZDoiZXZlbnRfaWQiLEVpOiJfZXZlbnRfam9pbl9pZCIsVXA6ImV2ZW50X2xhYmVsIixVYjoiZXZlbnQiLElsOiJfJmFlIixGaToiZXZlbnRfc2V0dGluZ3MiLHBoOiJldmVudF90aW1lb3V0IixWcDoiZGVzY3JpcHRpb24iLFdwOiJmYXRhbCIsWHA6ImV4cGVyaW1lbnRzIixOZDoiZXh0X2NsaWVudF9pZCIsR2k6ImZpcmViYXNlX2lkIixRZjoiZmlyc3RfcGFydHlfY29sbGVjdGlvbiIsUmY6Il94XzIwIixWYjoiX3hfMTkiLFlwOiJmbGlnaHRfZXJyb3JfY29kZSIsClpwOiJmbGlnaHRfZXJyb3JfbWVzc2FnZSIsSGk6ImZsX2FjdGl2aXR5X2NhdGVnb3J5IixJaToiZmxfYWN0aXZpdHlfZ3JvdXAiLHFoOiJmbF9hZHZlcnRpc2VyX2lkIixKaToibWF0Y2hfaWQiLEpsOiJmbF9yYW5kb21fbnVtYmVyIixLbDoidHJhbiIsTGw6InUiLHJoOiJnYWNfZ2NsaWQiLEplOiJnYWNfd2JyYWlkIixNbDoiZ2FjX3dicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsYXE6ImdhX3Jlc3RyaWN0X2RvbWFpbiIsTmw6ImdhX3RlbXBfY2xpZW50X2lkIixicToiZ2FfdGVtcF9lY2lkIixLZToiZ2Rwcl9hcHBsaWVzIixzaDoiX2d0X21ldGFkYXRhIixPbDoiZ2VvX2dyYW51bGFyaXR5IixTZjoidmFsdWVfY2FsbGJhY2siLFRmOiJ2YWx1ZV9rZXkiLFRhOiJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIixMZToiX2dvb2dsZV9uZyIsY3E6Il9vbm8iLFVmOiJnb29nbGVfc2lnbmFscyIsZnE6Imdvb2dsZV90bGQiLHRoOiJncHBfc2lkIix1aDoiZ3BwX3N0cmluZyIsT2Q6Imdyb3VwcyIsClBsOiJnc2FfZXhwZXJpbWVudF9pZCIsVmY6Imd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSIsUWw6Imd0bV91cCIsTWU6ImlmcmFtZV9zdGF0ZSIsV2Y6Imlnbm9yZV9yZWZlcnJlciIsUmw6ImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsU2w6Il9pc19mcG0iLFljOiJpc19sZWdhY3lfY29udmVydGVkIixaYzoiaXNfbGVnYWN5X2xvYWRlZCIsS2k6ImlzX3Bhc3N0aHJvdWdoIixQZDoiX2xwcyIsdGI6Imxhbmd1YWdlIixMaToibGVnYWN5X2RldmVsb3Blcl9pZF9zdHJpbmciLERiOiJsaW5rZXIiLFhmOiJhY2NlcHRfaW5jb21pbmciLHdjOiJkZWNvcmF0ZV9mb3JtcyIsQWE6ImRvbWFpbnMiLGFkOiJ1cmxfcG9zaXRpb24iLFFkOiJtZXJjaGFudF9mZWVkX2xhYmVsIixSZDoibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSIsU2Q6Im1lcmNoYW50X2lkIixUbDoibWV0aG9kIixncToibmFtZSIsVWw6Im5hdmlnYXRpb25fdHlwZSIsTmU6Im5ld19jdXN0b21lciIsTWk6Im5vbl9pbnRlcmFjdGlvbiIsCmhxOiJvcHRpbWl6ZV9pZCIsVmw6InBhZ2VfaG9zdG5hbWUiLFlmOiJwYWdlX3BhdGgiLFVhOiJwYWdlX3JlZmVycmVyIixNYjoicGFnZV90aXRsZSIsaXE6InBhc3NlbmdlcnMiLFdsOiJwaG9uZV9jb252ZXJzaW9uX2NhbGxiYWNrIixqcToicGhvbmVfY29udmVyc2lvbl9jb3VudHJ5X2NvZGUiLFhsOiJwaG9uZV9jb252ZXJzaW9uX2Nzc19jbGFzcyIsa3E6InBob25lX2NvbnZlcnNpb25faWRzIixZbDoicGhvbmVfY29udmVyc2lvbl9udW1iZXIiLFpsOiJwaG9uZV9jb252ZXJzaW9uX29wdGlvbnMiLGxxOiJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiLG1xOiJfcHJvdGVjdGVkX2F1ZGllbmNlX2VuYWJsZWQiLHdoOiJxdWFudGl0eSIseGg6InJlZGFjdF9kZXZpY2VfaW5mbyIsYW06InJlZmVycmFsX2V4Y2x1c2lvbl9kZWZpbml0aW9uIixodToiX3JlcXVlc3Rfc3RhcnRfdGltZSIsV2I6InJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIixucToicmV0b2tlbiIsb3E6InNhbXBsZV9yYXRlIiwKTmk6InNjcmVlbl9uYW1lIixiZDoic2NyZWVuX3Jlc29sdXRpb24iLGJtOiJfc2NyaXB0X3NvdXJjZSIscHE6InNlYXJjaF90ZXJtIixUZDoic2VuZF9wYWdlX3ZpZXciLFhiOiJzZW5kX3RvIixPaToic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50IixkZDoic2VydmVyX2NvbnRhaW5lcl91cmwiLHFxOiJzZXNzaW9uX2F0dHJpYnV0ZXNfZW5jb2RlZCIseWg6InNlc3Npb25fZHVyYXRpb24iLHpoOiJzZXNzaW9uX2VuZ2FnZWQiLFBpOiJzZXNzaW9uX2VuZ2FnZWRfdGltZSIseGM6InNlc3Npb25faWQiLEFoOiJzZXNzaW9uX251bWJlciIsWmY6Il9zaGFyZWRfdXNlcl9pZCIsVWQ6ImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIixpdToiX3RhZ19maXJpbmdfZGVsYXkiLGp1OiJfdGFnX2ZpcmluZ190aW1lIixrdToidGVtcG9yYXJ5X2NsaWVudF9pZCIsUWk6InRlc3Rvbmx5IixycToiX3RpbWV6b25lIixQZToidG9wbW9zdF91cmwiLFFlOiJ0cmFja2luZ19pZCIsUmk6InRyYWZmaWNfdHlwZSIsClBhOiJ0cmFuc2FjdGlvbl9pZCIsZG06InRyYW5zYWN0aW9uX2lkX3NvdXJjZSIseWM6InRyYW5zcG9ydF91cmwiLHNxOiJ0cmlwX3R5cGUiLFZkOiJ1cGRhdGUiLHpjOiJ1cmxfcGFzc3Rocm91Z2giLGZtOiJ1cHRncyIsY2c6Il91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSIsZGc6Il91c2VyX2FnZW50X2JpdG5lc3MiLGVnOiJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCIsZmc6Il91c2VyX2FnZW50X21vYmlsZSIsZ2c6Il91c2VyX2FnZW50X21vZGVsIixoZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm0iLGlnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIixqZzoiX3VzZXJfYWdlbnRfd293NjQiLEFjOiJ1c2VyX2RhdGEiLGdtOiJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5IixobToidXNlcl9kYXRhX2F1dG9fbWV0YSIsaW06InVzZXJfZGF0YV9hdXRvX211bHRpIixqbToidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIixrbToidXNlcl9kYXRhX2F1dG9fc3RhdHVzIixCYzoidXNlcl9kYXRhX21vZGUiLApsbToidXNlcl9kYXRhX3NldHRpbmdzIixmYjoidXNlcl9pZCIsV2Q6InVzZXJfcHJvcGVydGllcyIsb206Il91c2VyX3JlZ2lvbiIsa2c6InVzX3ByaXZhY3lfc3RyaW5nIixRYToidmFsdWUiLHFtOiJ3YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGVkOiJfZnBtX3BhcmFtZXRlcnMiLFdpOiJfaG9zdF9uYW1lIixWbToiX2luX3BhZ2VfY29tbWFuZCIsWWk6Il9pcF9vdmVycmlkZSIsWm06Il9pc19wYXNzdGhyb3VnaF9jaWQiLEpoOiJfbWVhc3VyZW1lbnRfdHlwZSIsZGU6Im5vbl9wZXJzb25hbGl6ZWRfYWRzIixvajoiX3NzdF9wYXJhbWV0ZXJzIixZcToic2d0bV9nZW9fdXNlcl9jb3VudHJ5IixHZDoiY29udmVyc2lvbl9sYWJlbCIsemE6InBhZ2VfbG9jYXRpb24iLFdjOiJfZXh0cmFjdGVkX2RhdGEiLFhjOiJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyIsT2U6InRjX3ByaXZhY3lfc3RyaW5nIn19O3ZhciBIPXtKOntTbzoiYWJvcnRfd2l0aG91dF9mYWlsIixraToiYWNjZXB0X2J5X2RlZmF1bHQiLEJrOiJhZGRfdGFnX3RpbWluZyIsRGs6ImFkc19jb25zZW50X2dyYW50ZWQiLHZkOiJhZHNfZXZlbnRfcGFnZV92aWV3Iix3ZDoiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIixRdDoiYXV0b19ldmVudCIsS2s6ImJhdGNoX29uX25hdmlnYXRpb24iLFhnOiJiaXNjb3R0aV9qb2luX2lkIixQazoiY2xpZW50X2lkX3NvdXJjZSIsdWY6ImNvbnNlbnRfZXZlbnRfaWQiLHZmOiJjb25zZW50X3ByaW9yaXR5X2lkIixTdDoiY29uc2VudF9zdGF0ZSIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsd2Y6ImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiLFR0OiJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIixHYToiY29va2llX29wdGlvbnMiLG9sOiJkY19yYW5kb20iLFp0OiJkZWR1cGVfaWQiLFBjOiJlbV9ldmVudCIsYnU6ImVuZHBvaW50X2Zvcl9kZWJ1ZyIsdGw6ImVuaGFuY2VkX2NsaWVudF9pZF9zb3VyY2UiLApwcDoiZW5oYW5jZWRfbWF0Y2hfcmVzdWx0IixybToiZXVpZF9sb2dnZWRfaW5fc3RhdGUiLGxnOiJldWlkX21vZGVfZW5hYmxlZCIsdHE6ImV2ZW50X3Byb3ZlbmFuY2UiLG11OiJldmVudF9zb3VyY2UiLEViOiJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiLHdtOiJldmVudF91c2FnZSIsQ2g6ImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyIscHU6ImFkZF9wYXJhbWV0ZXIiLFVpOiJjb3VudGluZ19tZXRob2QiLERoOiJzZW5kX2FzX2lmcmFtZSIscXU6InBhcmFtZXRlcl9vcmRlciIsRWg6InBhcnNlZF90YXJnZXQiLHN1OiJmb3JtX2V2ZW50X2NhbmNlbGVkIixBcToiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIixWaToiZ2E0X3JlcXVlc3RfZmxhZ3MiLE5tOiJnYnJhaWRfY29va2llX21hcmtlZCIsUW06Imd0bV9leHRyYWN0ZWRfZGF0YSIsQ2M6ImhhbmRsZV9pbnRlcm5hbGx5Iix1dToiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiLGRhOiJoaXRfdHlwZSIsRGM6ImhpdF90eXBlX292ZXJyaWRlIiwKSHE6Imlnbm9yZV9kdXBlX2NvbmZpZyIsT3U6ImlzX2NvbmZpZ19jb21tYW5kIixHaDoiaXNfY29uc2VudF91cGRhdGUiLG1nOiJpc19jb252ZXJzaW9uIixXbToiaXNfZWNvbW1lcmNlIixYbToiaXNfZWNfY21fc3BsaXQiLGFlOiJpc19leHRlcm5hbF9ldmVudCIsbmc6ImlzX2ZpcnN0X3Zpc2l0IixZbToiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiIsWmk6ImlzX2ZsX2ZhbGxiYWNrX2NvbnZlcnNpb25fZmxvd19hbGxvd2VkIixmZDoiaXNfZnBtX2VuY3J5cHRpb24iLGFqOiJpc19mcG1fc3BsaXQiLG9iOiJpc19nY3BfYnJvd3NlciIsYmo6ImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIixjajoiaXNfZ29vZ2xlX3NpZ25hbHNfZW5hYmxlZCIsYmU6ImlzX21lcmNoYW50X2NlbnRlciIsSGg6ImlzX25ld190b19zaXRlIixFYzoiaXNfcGVyc29uYWxpemF0aW9uIixkajoiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iLFRlOiJpc19zZXNzaW9uX3N0YXJ0IixibjoiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIiwKUHU6ImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCIsUXU6ImlzX3NndG1fcHJlaGl0IixkbjoiaXNfc2d0bV9zZXJ2aWNlX3dvcmtlciIsSWg6ImlzX3NwbGl0X2NvbnZlcnNpb24iLElxOiJpc19zeW4iLEZjOiJpc190ZXN0X2V2ZW50IixvZzoiam9pbl9pZCIsZWo6ImpvaW5fZWxhcHNlZCIscGc6ImpvaW5fdGltZXJfc2VjIixnbjoibG9jYWxfc3RvcmFnZV9hd19jb252ZXJzaW9uX2NvdW50ZXJzIixXZToidHVubmVsX3VwZGF0ZWQiLFV1OiJwcmVoaXRfZm9yX3JldHJ5IixXdToicHJvbWlzZXMiLFh1OiJyZWNvcmRfYXdfbGF0ZW5jeSIsWGU6InJlZGFjdF9hZHNfZGF0YSIsWWU6InJlZGFjdF9jbGlja19pZHMiLHBuOiJyZW1hcmtldGluZ19vbmx5Iixsajoic2VuZF9jY21fcGFyYWxsZWxfcGluZyIsaGQ6InNlbmRfZG91YmxlY2xpY2tfam9pbiIsTWg6InNlbmRfZnBtX2dlb19qb2luIixOaDoic2VuZF9mcG1fZ29vZ2xlX2pvaW4iLFp1OiJzZW5kX2NjbV9wYXJhbGxlbF90ZXN0X3BpbmciLApybjoic2VuZF9nb29nbGVfbWVhc3VyZW1lbnQiLHJnOiJzZW5kX3RsZF9qb2luIixzZzoic2VuZF90b19kZXN0aW5hdGlvbnMiLG1qOiJzZW5kX3RvX3RhcmdldHMiLHNuOiJzZW5kX3VzZXJfZGF0YV9oaXQiLHBqOiJzZXJ2aWNlX3dvcmtlcl9jb250ZXh0IixOYjoic291cmNlX2Nhbm9uaWNhbF9pZCIsSmE6InNwZWN1bGF0aXZlIix5bjoic3BlY3VsYXRpdmVfaW5fbWVzc2FnZSIsQW46InN1cHByZXNzX3NjcmlwdF9sb2FkIixCbjoic3luX29yX21vZCIsemo6InRyYW5zaWVudF9lY3NpZCIsdGc6InRyYW5zbWlzc2lvbl90eXBlIixZYToidXNlcl9kYXRhIixndjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIixodjoidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciIsR246InVzZXJfZGF0YV9mcm9tX2NvZGUiLGlyOiJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiLGp2OiJ1c2VyX2RhdGFfbW9kZSIsdWc6InVzZXJfaWRfdXBkYXRlZCJ9fTsKdmFyIHRnPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9MDtHYihhLGZ1bmN0aW9uKGUsZil7aWYoZiE9bnVsbCl7dmFyIGc9KCIiK2YpLnJlcGxhY2UoL34vZywifn4iKTtpZihxZy5oYXNPd25Qcm9wZXJ0eShlKSliW3FnW2VdXT1nO2Vsc2UgaWYocmcuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBoPXJnW2VdO2IuaGFzT3duUHJvcGVydHkoaCl8fChiW2hdPWcpfWVsc2UgaWYoZT09PSJjYXRlZ29yeSIpZm9yKHZhciBsPWcuc3BsaXQoIi8iLDUpLG49MDtuPGwubGVuZ3RoO24rKyl7dmFyIHA9YixxPXNnW25dLHI9bFtuXTtwLmhhc093blByb3BlcnR5KHEpfHwocFtxXT1yKX1lbHNlIGlmKGM8Mjcpe3ZhciB0PVN0cmluZy5mcm9tQ2hhckNvZGUoYzwxMD80OCtjOjY1K2MtMTApO2JbImsiK3RdPSgiIitTdHJpbmcoZSkpLnJlcGxhY2UoL34vZywifn4iKTtiWyJ2Iit0XT1nO2MrK319fSk7dmFyIGQ9W107R2IoYixmdW5jdGlvbihlLGYpe2QucHVzaCgiIitlK2YpfSk7cmV0dXJuIGQuam9pbigifiIpfSwKcWc9e2l0ZW1faWQ6ImlkIixpdGVtX25hbWU6Im5tIixpdGVtX2JyYW5kOiJiciIsaXRlbV9jYXRlZ29yeToiY2EiLGl0ZW1fY2F0ZWdvcnkyOiJjMiIsaXRlbV9jYXRlZ29yeTM6ImMzIixpdGVtX2NhdGVnb3J5NDoiYzQiLGl0ZW1fY2F0ZWdvcnk1OiJjNSIsaXRlbV92YXJpYW50OiJ2YSIscHJpY2U6InByIixxdWFudGl0eToicXQiLGNvdXBvbjoiY3AiLGl0ZW1fbGlzdF9uYW1lOiJsbiIsaW5kZXg6ImxwIixpdGVtX2xpc3RfaWQ6ImxpIixkaXNjb3VudDoiZHMiLGFmZmlsaWF0aW9uOiJhZiIscHJvbW90aW9uX2lkOiJwaSIscHJvbW90aW9uX25hbWU6InBuIixjcmVhdGl2ZV9uYW1lOiJjbiIsY3JlYXRpdmVfc2xvdDoiY3MiLGxvY2F0aW9uX2lkOiJsbyJ9LHJnPXtpZDoiaWQiLG5hbWU6Im5tIixicmFuZDoiYnIiLHZhcmlhbnQ6InZhIixsaXN0X25hbWU6ImxuIixsaXN0X3Bvc2l0aW9uOiJscCIsbGlzdDoibG4iLHBvc2l0aW9uOiJscCIsY3JlYXRpdmU6ImNuIn0sc2c9WyJjYSIsCiJjMiIsImMzIiwiYzQiLCJjNSJdO3ZhciB1Zz1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZCE9bnVsbCYmYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChjKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSkpfSk7cmV0dXJuIGIuam9pbigiJiIpfSx2Zz1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3RoaXMuYmFzZVVybD1iO3RoaXMuZW5kcG9pbnQ9Yzt0aGlzLmRlc3RpbmF0aW9uSWQ9Zjt0aGlzLmV2ZW50SWQ9Zzt0aGlzLnByaW9yaXR5SWQ9aDt0aGlzLkJhPWEuQmE7dGhpcy52ZT1hLnZlO3RoaXMuTGo9YS5Majt0aGlzLk49ZDt0aGlzLks9dWcoYS5CYSk7dGhpcy5IPXVnKGEuTGopO3RoaXMuUj10aGlzLkgubGVuZ3RoO2lmKGUmJnRoaXMuUj4xNjM4NCl0aHJvdyBFcnJvcigiRVZFTlRfVE9PX0xBUkdFIik7fTsKdmFyIHdnPWZ1bmN0aW9uKCl7dGhpcy5ldmVudHM9W107dGhpcy5IPSIiO3RoaXMuQmE9e307dGhpcy5iYXNlVXJsPSIiO3RoaXMuTj0wO3RoaXMuSz0xO3RoaXMuZW5kcG9pbnQ9MH07d2cucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5SKGEpPyh0aGlzLmV2ZW50cy5wdXNoKGEpLHRoaXMuSD1hLkssdGhpcy5CYT1hLkJhLHRoaXMuYmFzZVVybD1hLmJhc2VVcmwsdGhpcy5OKz1hLlIsdGhpcy5LPWEuTix0aGlzLmVuZHBvaW50PWEuZW5kcG9pbnQsdGhpcy5kZXN0aW5hdGlvbklkPWEuZGVzdGluYXRpb25JZCx0aGlzLlo9YS5ldmVudElkLHRoaXMuZmE9YS5wcmlvcml0eUlkLCEwKTohMX07d2cucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZXZlbnRzLmxlbmd0aD90aGlzLmV2ZW50cy5sZW5ndGg+PTIwfHxhLlIrdGhpcy5OPj0xNjM4ND8hMTp0aGlzLmJhc2VVcmw9PT1hLmJhc2VVcmwmJnRoaXMuSz09PWEuTiYmdGhpcy5qYShhKTohMH07CndnLnByb3RvdHlwZS5qYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5IPT09YS5LfTt2YXIgSj17VTp7a3A6MSxtcDoyLEVuOjMsbm46NCxxbDo1LHJsOjYsRXE6NyxucDo4LERxOjksanA6MTAsaHA6MTEseG46MTIsdm46MTMsTms6MTQsVW86MTUsV286MTYsaG46MTcsc2w6MTgsZm46MTksbHA6MjAsUHE6MjEsYXA6MjIsVm86MjMsWG86MjQsbmw6MjUsTGs6MjYsZXI6MjcsSm06MjgsVW06MjksVG06MzAsU206MzEsTW06MzIsS206MzMsTG06MzQsR206MzUsRm06MzYsSG06MzcsSW06MzgsQnE6MzksQ3E6NDAsVXE6NDF9fTtKLlVbSi5VLmtwXT0iQ1JFQVRFX0VWRU5UX1NPVVJDRSI7Si5VW0ouVS5tcF09IkVESVRfRVZFTlQiO0ouVVtKLlUuRW5dPSJUUkFGRklDX1RZUEUiO0ouVVtKLlUubm5dPSJSRUZFUlJBTF9FWENMVVNJT04iO0ouVVtKLlUucWxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVEFHIjtKLlVbSi5VLnJsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1VBX1NDSEVNQSI7Si5VW0ouVS5FcV09IkdBX1NFTkQiO0ouVVtKLlUubnBdPSJFTV9GT1JNIjsKSi5VW0ouVS5EcV09IkdBX0dBTV9MSU5LIjtKLlVbSi5VLmpwXT0iQ1JFQVRFX0VWRU5UX0FVVE9fUEFHRV9QQVRIIjtKLlVbSi5VLmhwXT0iQ1JFQVRFRF9FVkVOVCI7Si5VW0ouVS54bl09IlNJREVMT0FERUQiO0ouVVtKLlUudm5dPSJTR1RNX0xFR0FDWV9DT05GSUdVUkFUSU9OIjtKLlVbSi5VLk5rXT0iQ0NEX0VNX0VWRU5UIjtKLlVbSi5VLlVvXT0iQVVUT19SRURBQ1RfRU1BSUwiO0ouVVtKLlUuV29dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTSI7Si5VW0ouVS5obl09Ik1VTFRJUExFX1BBR0VWSUVXX0ZST01fQ09ORklHIjtKLlVbSi5VLnNsXT0iRU1fRVZFTlRfU0VOVF9CRUZPUkVfQ09ORklHIjtKLlVbSi5VLmZuXT0iTE9BREVEX1ZJQV9DU1RfT1JfU0lERUxPQURJTkciO0ouVVtKLlUubHBdPSJERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLlBxXT0iTk9OX0RFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuYXBdPSJDQ0RfRVZFTlRfU0dUTSI7CkouVVtKLlUuVm9dPSJBVVRPX1JFREFDVF9FTUFJTF9TR1RNIjtKLlVbSi5VLlhvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU1fU0dUTSI7Si5VW0ouVS5ubF09IkRBSUxZX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuTGtdPSJCVVJTVF9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLmVyXT0iU0hBUkVEX1VTRVJfSURfU0VUX0FGVEVSX1JFUVVFU1QiO0ouVVtKLlUuSm1dPSJHQTRfTVVMVElQTEVfU0VTU0lPTl9DT09LSUVTIjtKLlVbSi5VLlVtXT0iSU5WQUxJRF9HQTRfU0VTU0lPTl9DT1VOVCI7Si5VW0ouVS5UbV09IklOVkFMSURfR0E0X0xBU1RfRVZFTlRfVElNRVNUQU1QIjtKLlVbSi5VLlNtXT0iSU5WQUxJRF9HQTRfSk9JTl9USU1FUiI7Si5VW0ouVS5NbV09IkdBNF9TVEFMRV9TRVNTSU9OX0NPT0tJRV9TRUxFQ1RFRCI7Si5VW0ouVS5LbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzFfUkVBRCI7Si5VW0ouVS5MbV09IkdBNF9TRVNTSU9OX0NPT0tJRV9HUzJfUkVBRCI7CkouVVtKLlUuR21dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVZBSUxBQkxFIjtKLlVbSi5VLkZtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FQUExJRUQiO0ouVVtKLlUuSG1dPSJHQTRfR09PR0xFX01FQVNVUkVNRU5UX0FMTE9XRUQiO0ouVVtKLlUuSW1dPSJHQTRfR09PR0xFX1NJR05BTFNfRU5BQkxFRCI7Si5VW0ouVS5CcV09IkdBNF9GQUxMQkFDS19SRVFVRVNUIjtKLlVbSi5VLkNxXT0iR0FfQURTX0xJTktfQkVGT1JFX0NPTlZFUlNJT05fTUFSS0lORyI7Si5VW0ouVS5VcV09IlBMQVRJTlVNX0VMSUdJQkxFIjt2YXIgeGc9e30seWc9KHhnLnVhYT0hMCx4Zy51YWI9ITAseGcudWFmdmw9ITAseGcudWFtYj0hMCx4Zy51YW09ITAseGcudWFwPSEwLHhnLnVhcHY9ITAseGcudWF3PSEwLHhnKTsKdmFyIEJnPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5ldmVudHM7aWYoYy5sZW5ndGg9PT0xKXJldHVybiB6ZyhjWzBdLGIpO3ZhciBkPVtdO2EuSCYmZC5wdXNoKGEuSCk7Zm9yKHZhciBlPXt9LGY9MDtmPGMubGVuZ3RoO2YrKylHYihjW2ZdLnZlLGZ1bmN0aW9uKHQsdSl7dSE9bnVsbCYmKGVbdF09ZVt0XXx8e30sZVt0XVtTdHJpbmcodSldPWVbdF1bU3RyaW5nKHUpXSsxfHwxKX0pO3ZhciBnPXt9O0diKGUsZnVuY3Rpb24odCx1KXt2YXIgdix4PS0xLHk9MDtHYih1LGZ1bmN0aW9uKHosQyl7eSs9Qzt2YXIgRD0oei5sZW5ndGgrdC5sZW5ndGgrMikqKEMtMSk7RD54JiYodj16LHg9RCl9KTt5PT09Yy5sZW5ndGgmJihnW3RdPXYpfSk7QWcoZyxkKTtiJiZkLnB1c2goIl9zPSIrYik7Zm9yKHZhciBoPWQuam9pbigiJiIpLGw9W10sbj17fSxwPTA7cDxjLmxlbmd0aDtuPXtmazp2b2lkIDB9LHArKyl7dmFyIHE9W107bi5maz17fTtHYihjW3BdLnZlLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih1LAp2KXtnW3VdIT09IiIrdiYmKHQuZmtbdV09dil9fShuKSk7Y1twXS5IJiZxLnB1c2goY1twXS5IKTtBZyhuLmZrLHEpO2wucHVzaChxLmpvaW4oIiYiKSl9dmFyIHI9bC5qb2luKCJcclxuIik7cmV0dXJue3BhcmFtczpoLGJvZHk6cn19LHpnPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107YS5LJiZjLnB1c2goYS5LKTtiJiZjLnB1c2goIl9zPSIrYik7QWcoYS52ZSxjKTt2YXIgZD0hMTthLkgmJihjLnB1c2goYS5IKSxkPSEwKTt2YXIgZT1jLmpvaW4oIiYiKSxmPSIiLGc9ZS5sZW5ndGgrYS5iYXNlVXJsLmxlbmd0aCsxO2QmJmc+MjA0OCYmKGY9Yy5wb3AoKSxlPWMuam9pbigiJiIpKTtyZXR1cm57cGFyYW1zOmUsYm9keTpmfX0sQWc9ZnVuY3Rpb24oYSxiKXtHYihhLGZ1bmN0aW9uKGMsZCl7ZCE9bnVsbCYmYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChjKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKX0pfTsKdmFyIEVnPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWEsZT1iW2NdO2lmKCFDZy5leGVjKGUpKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSB3aWxkY2FyZCIpO3ZhciBmPWUuaW5kZXhPZigiLioiKSxnPWYhPT0tMSYmZj09PWUubGVuZ3RoLTIsaD1nP2Uuc2xpY2UoMCxlLmxlbmd0aC0yKTplLGw7YTppZihkLmxlbmd0aD09PTApbD0hMTtlbHNle2Zvcih2YXIgbj1kLnNwbGl0KCIuIikscD0wO3A8bi5sZW5ndGg7cCsrKWlmKCFEZy5leGVjKG5bcF0pKXtsPSExO2JyZWFrIGF9bD0hMH1pZighbHx8aC5sZW5ndGg+ZC5sZW5ndGh8fCFnJiZkLmxlbmd0aCE9PWUubGVuZ3RoPzA6Zz9TYihkLGgpJiYoZD09PWh8fGQuY2hhckF0KGgubGVuZ3RoKT09PSIuIik6ZD09PWgpcmV0dXJuITB9cmV0dXJuITF9LERnPS9eW2EteiRfXVtcdy0kXSokL2ksQ2c9L14oPzpbYS16XyRdW2Etei1fJDAtOV0qXC4pKlthLXpfJF1bYS16LV8kMC05XSooPzpcLlwqKT8kL2k7CnZhciBGZz1bIm1hdGNoZXMiLCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3IiLCJtb3pNYXRjaGVzU2VsZWN0b3IiLCJtc01hdGNoZXNTZWxlY3RvciIsIm9NYXRjaGVzU2VsZWN0b3IiXTtmdW5jdGlvbiBHZyhhLGIpe2lmKCFhKXJldHVybiExO3RyeXtmb3IodmFyIGM9MDtjPEZnLmxlbmd0aDtjKyspe3ZhciBkPUZnW2NdO2lmKGFbZF0hPW51bGwpcmV0dXJuIGFbZF0oYil9fWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBIZyhhLGIpe3ZhciBjPVN0cmluZyhhKSxkPVN0cmluZyhiKSxlPWMubGVuZ3RoLWQubGVuZ3RoO3JldHVybiBlPj0wJiZjLmluZGV4T2YoZCxlKT09PWV9ZnVuY3Rpb24gSWcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpLnNwbGl0KCIsIikuaW5kZXhPZihTdHJpbmcoYikpPj0wfQpmdW5jdGlvbiBKZyhhLGIsYyxkKXt2YXIgZT1jPyJpIjp2b2lkIDA7dHJ5e3ZhciBmPVN0cmluZyhiKStTdHJpbmcoZSksZz1kPT1udWxsP3ZvaWQgMDpkLmdldChmKTtnfHwoZz1uZXcgUmVnRXhwKGIsZSksZD09bnVsbHx8ZC5zZXQoZixnKSk7cmV0dXJuIGcudGVzdChhKX1jYXRjaChoKXtyZXR1cm4hMX19ZnVuY3Rpb24gS2coYSxiKXtyZXR1cm4gU3RyaW5nKGEpLmluZGV4T2YoU3RyaW5nKGIpKT49MH1mdW5jdGlvbiBMZyhhLGIpe3JldHVybiBTdHJpbmcoYSk9PT1TdHJpbmcoYil9ZnVuY3Rpb24gTWcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPj1OdW1iZXIoYil9ZnVuY3Rpb24gTmcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPD1OdW1iZXIoYil9ZnVuY3Rpb24gT2coYSxiKXtyZXR1cm4gTnVtYmVyKGEpPk51bWJlcihiKX1mdW5jdGlvbiBQZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8TnVtYmVyKGIpfQpmdW5jdGlvbiBRZyhhLGIpe3JldHVybiBTYihTdHJpbmcoYSksU3RyaW5nKGIpKX07ZnVuY3Rpb24gWGcoYSl7dmFyIGI9YS5zZWFyY2g7cmV0dXJuIGEucHJvdG9jb2wrIi8vIithLmhvc3RuYW1lK2EucGF0aG5hbWUrKGI/YisiJnJpY2hzc3Rzc2UiOiI/cmljaHNzdHNzZSIpfTt2YXIgWWc9ZnVuY3Rpb24oKXt0aGlzLlI9IiJ9LCRnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9Yi5mYWxsYmFja191cmwsZD1iLmZhbGxiYWNrX3VybF9tZXRob2Q7aWYoYyYmZCl7dmFyIGU9e307WmcoYSwoZVtkXT1bY10sZS5vcHRpb25zPXt9LGUpKX19fSxhaD1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTt0eXBlb2YgZj09PSJzdHJpbmciJiZjKGYsYil9fSxaZz1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPUNkKGIub3B0aW9ucyk/Yi5vcHRpb25zOnt9LGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1iW2ZdO3N3aXRjaChmKXtjYXNlICJzZW5kX3BpeGVsIjphaChnLGMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLksoaCxsKX0pO2JyZWFrO2Nhc2UgImZldGNoIjphaChnLApjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5IKGgsbCl9KX19fTt2YXIgYmg9L14oW2Etel1bYS16MC05XSopOighfFw/KShcKnxzdHJpbmd8Ym9vbGVhbnxudW1iZXJ8Rm58UGl4aWVNYXB8TGlzdHxPcGFxdWVWYWx1ZSkkL2ksY2g9e0ZuOiJmdW5jdGlvbiIsUGl4aWVNYXA6Ik9iamVjdCIsTGlzdDoiQXJyYXkifTsKZnVuY3Rpb24gZGgoYSxiKXtmb3IodmFyIGM9WyJpbnB1dDohKiJdLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9YmguZXhlYyhjW2RdKTtpZighZSl0aHJvdyBFcnJvcigiSW50ZXJuYWwgRXJyb3IgaW4gIithKTt2YXIgZj1lWzFdLGc9ZVsyXT09PSIhIixoPWVbM10sbD1iW2RdO2lmKGw9PW51bGwpe2lmKGcpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBSZXF1aXJlZCBhcmd1bWVudCAiK2YrIiBub3Qgc3VwcGxpZWQuIik7fWVsc2UgaWYoaCE9PSIqIil7dmFyIG49dHlwZW9mIGw7bCBpbnN0YW5jZW9mIEtkP249IkZuIjpsIGluc3RhbmNlb2YgR2Q/bj0iTGlzdCI6bCBpbnN0YW5jZW9mIGtiP249IlBpeGllTWFwIjpsIGluc3RhbmNlb2YgU2Q/bj0iUGl4aWVQcm9taXNlIjpsIGluc3RhbmNlb2YgUGQmJihuPSJPcGFxdWVWYWx1ZSIpO2lmKG4hPT1oKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gQXJndW1lbnQgIitmKyIgaGFzIHR5cGUgIisoKGNoW25dfHxuKSsiLCB3aGljaCBkb2VzIG5vdCBtYXRjaCByZXF1aXJlZCB0eXBlICIpKwooKGNoW2hdfHxoKSsiLiIpKTt9fX1mdW5jdGlvbiBLKGEsYixjKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2cgaW5zdGFuY2VvZiBLZD9kLnB1c2goImZ1bmN0aW9uIik6ZyBpbnN0YW5jZW9mIEdkP2QucHVzaCgiQXJyYXkiKTpnIGluc3RhbmNlb2Yga2I/ZC5wdXNoKCJPYmplY3QiKTpnIGluc3RhbmNlb2YgU2Q/ZC5wdXNoKCJQcm9taXNlIik6ZyBpbnN0YW5jZW9mIFBkP2QucHVzaCgiT3BhcXVlVmFsdWUiKTpkLnB1c2godHlwZW9mIGcpfXJldHVybiBFcnJvcigiQXJndW1lbnQgZXJyb3IgaW4gIithKyIuIEV4cGVjdGVkIGFyZ3VtZW50IHR5cGVzIFsiKyhiLmpvaW4oIiwiKSsiXSwgYnV0IHJlY2VpdmVkIFsiKSsoZC5qb2luKCIsIikrIl0uIikpfWZ1bmN0aW9uIGVoKGEpe3JldHVybiBhIGluc3RhbmNlb2Yga2J9ZnVuY3Rpb24gZmgoYSl7cmV0dXJuIGVoKGEpfHxhPT09bnVsbHx8Z2goYSl9CmZ1bmN0aW9uIGhoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgS2R9ZnVuY3Rpb24gaWgoYSl7cmV0dXJuIGhoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gamgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBHZH1mdW5jdGlvbiBraChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFBkfWZ1bmN0aW9uIGxoKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIG1oKGEpe3JldHVybiBsaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIG5oKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn1mdW5jdGlvbiBvaChhKXtyZXR1cm4gbmgoYSl8fGdoKGEpfWZ1bmN0aW9uIHBoKGEpe3JldHVybiBuaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIHFoKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifWZ1bmN0aW9uIGdoKGEpe3JldHVybiBhPT09dm9pZCAwfTtmdW5jdGlvbiByaChhKXtyZXR1cm4iIithfQpmdW5jdGlvbiBzaChhLGIpe3ZhciBjPVtdO3JldHVybiBjfTtmdW5jdGlvbiB0aChhLGIpe3ZhciBjPW5ldyBLZChhLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXT10aGlzLmV2YWx1YXRlKGRbZV0pO3RyeXtyZXR1cm4gYi5hcHBseSh0aGlzLGQpfWNhdGNoKGcpe3Rocm93IGNiKGcpO319KTtjLlphKCk7cmV0dXJuIGN9CmZ1bmN0aW9uIHVoKGEsYil7dmFyIGM9bmV3IGtiLGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO3liKGUpP2Muc2V0KGQsdGgoYSsiXyIrZCxlKSk6Q2QoZSk/Yy5zZXQoZCx1aChhKyJfIitkLGUpKTooQWIoZSl8fHpiKGUpfHx0eXBlb2YgZT09PSJib29sZWFuIikmJmMuc2V0KGQsZSl9Yy5aYSgpO3JldHVybiBjfTtmdW5jdGlvbiB3aChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydEFwaVN1YmplY3QiLApjKX07ZnVuY3Rpb24geGgoYSxiKXtpZighbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIFNkKXRocm93IEVycm9yKCJBcmd1bWVudCBhY3R1YWwgY2Fubm90IGhhdmUgdHlwZSBQcm9taXNlLiBBc3NlcnRpb25zIG9uIGFzeW5jaHJvbm91cyBjb2RlIGFyZW4ndCBzdXBwb3J0ZWQuIik7dmFyIGM9e30sZD1uZXcga2I7cmV0dXJuIGQ9dWgoIkFzc2VydFRoYXRTdWJqZWN0IixjKX07ZnVuY3Rpb24geWgoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBiPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxjPVtdLGQ9dGhpcy5ULGU9MDtlPGIubGVuZ3RoOysrZSljLnB1c2goVGQoYltlXSxkKSk7cmV0dXJuIFVkKGEuYXBwbHkobnVsbCxjKSl9fWZ1bmN0aW9uIHpoKCl7Zm9yKHZhciBhPU1hdGgsYj1BaCxjPXt9LGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTthLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT15aChhW2VdLmJpbmQoYSkpKX1yZXR1cm4gY307ZnVuY3Rpb24gQmgoYSl7cmV0dXJuIGEhPW51bGwmJlNiKGEsIl9fY3Z0XyIpfTtmdW5jdGlvbiBDaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRGgoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChjKXt9cmV0dXJuIGJ9O2Z1bmN0aW9uIEVoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJKGEpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEZoKGEpe3RyeXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gR2goYSxiKXt2YXIgYz0hMTt2YXIgZD1KU09OLnBhcnNlKGEpO2lmKCFkKXRocm93IEVycm9yKCJJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBzdHJpbmcgd2FzIGdpdmVuLiIpO2M9SGgoZCxiKTtyZXR1cm4gY30KdmFyIEloPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe2lmKGE9PT12b2lkIDApcmV0dXJuO2E9YVtiW2NdXX1yZXR1cm4gYX0sSmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnByZUhpdDtpZihjKXt2YXIgZD1hWzBdO3N3aXRjaChkKXtjYXNlICJoaXREYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRIaXREYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgIm1ldGFkYXRhIjpyZXR1cm4gYS5sZW5ndGg8Mj92b2lkIDA6SWgoYy5nZXRNZXRhZGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJldmVudE5hbWUiOnJldHVybiBjLmdldEV2ZW50TmFtZSgpO2Nhc2UgImRlc3RpbmF0aW9uSWQiOnJldHVybiBjLmdldERlc3RpbmF0aW9uSWQoKTtkZWZhdWx0OnRocm93IEVycm9yKGQrIiBpcyBub3QgYSB2YWxpZCBmaWVsZCB0aGF0IGNhbiBiZSBhY2Nlc3NlZFxuICAgICAgICAgICAgICAgICAgICAgIGZyb20gUHJlSGl0IGRhdGEuIik7fX19LApLaD1mdW5jdGlvbihhLGIpe2lmKGEpe2lmKGEuY29udGV4dFZhbHVlIT09dm9pZCAwKXt2YXIgYzthOnt2YXIgZD1hLmNvbnRleHRWYWx1ZSxlPWQua2V5UGFydHM7aWYoZSYmZS5sZW5ndGghPT0wKXt2YXIgZj1kLm5hbWVzcGFjZVR5cGU7c3dpdGNoKGYpe2Nhc2UgMTpjPUpoKGUsYik7YnJlYWsgYTtjYXNlIDI6dmFyIGc9Yi5tYWNybztjPWc/Z1tlWzBdXTp2b2lkIDA7YnJlYWsgYTtkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZSBUeXBlIHVzZWQ6ICIrZik7fX1jPXZvaWQgMH1yZXR1cm4gY31pZihhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUhPT12b2lkIDApcmV0dXJuIEhoKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSxiKTtpZihhLmJvb2xlYW5WYWx1ZSE9PXZvaWQgMClyZXR1cm4hIWEuYm9vbGVhblZhbHVlO2lmKGEuc3RyaW5nVmFsdWUhPT12b2lkIDApcmV0dXJuIFN0cmluZyhhLnN0cmluZ1ZhbHVlKTtpZihhLmludGVnZXJWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuaW50ZWdlclZhbHVlKTsKaWYoYS5kb3VibGVWYWx1ZSE9PXZvaWQgMClyZXR1cm4gTnVtYmVyKGEuZG91YmxlVmFsdWUpO3Rocm93IEVycm9yKCJVbmtub3duIGZpZWxkIHVzZWQgZm9yIHZhcmlhYmxlIG9mIHR5cGUgRXhwcmVzc2lvblZhbHVlOiIrYSk7fX0sSGg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmFyZ3M7aWYoIUFycmF5LmlzQXJyYXkoYyl8fGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAiYXJncyI6JytjKyIgcHJvcGVydHkgdG9cbiAgICAgICAgIGJlIG5vbi1lbXB0eSBhcnJheS4iKTt2YXIgZD1mdW5jdGlvbihnKXtyZXR1cm4gS2goZyxiKX07c3dpdGNoKGEudHlwZSl7Y2FzZSAxOmZvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWlmKGQoY1tlXSkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSAyOmZvcih2YXIgZj0wO2Y8Yy5sZW5ndGg7ZisrKWlmKCFkKGNbZl0pKXJldHVybiExO3JldHVybiBjLmxlbmd0aD4wO2Nhc2UgMzpyZXR1cm4hZChjWzBdKTsKY2FzZSA0OnJldHVybiBKZyhkKGNbMF0pLGQoY1sxXSksITEsYi5yZWdleENhY2hlKTtjYXNlIDU6cmV0dXJuIExnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA2OnJldHVybiBRZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNzpyZXR1cm4gSGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDg6cmV0dXJuIEtnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA5OnJldHVybiBQZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTA6cmV0dXJuIE5nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMTpyZXR1cm4gT2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEyOnJldHVybiBNZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTM6cmV0dXJuIElnKGQoY1swXSksU3RyaW5nKGQoY1sxXSkpKTtkZWZhdWx0OnRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJ0eXBlIiBwcm9wZXJ0eSB0b2JlIGEgcG9zaXRpdmUgaW50ZWdlciB3aGljaCBpcyBsZXNzIHRoYW4gMTQuJyk7fX07CmZ1bmN0aW9uIExoKGEpe2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7fTtmdW5jdGlvbiBNaChhKXt2YXIgYj1UZChhKTtyZXR1cm4gbmcoYj8iIitiOiIiKX07ZnVuY3Rpb24gTmgoYSxiKXtpZighcWgoYSl8fCFxaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIiwibnVtYmVyIl0sYXJndW1lbnRzKTtyZXR1cm4gRGIoYSxiKX07ZnVuY3Rpb24gT2goKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07ZnVuY3Rpb24gUGgoYSl7aWYoYT09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEgaW5zdGFuY2VvZiBHZClyZXR1cm4iYXJyYXkiO2lmKGEgaW5zdGFuY2VvZiBLZClyZXR1cm4iZnVuY3Rpb24iO2lmKGEgaW5zdGFuY2VvZiBQZCl7dmFyIGI9YS5nZXRWYWx1ZSgpO2lmKChiPT1udWxsP3ZvaWQgMDpiLmNvbnN0cnVjdG9yKT09PXZvaWQgMHx8Yi5jb25zdHJ1Y3Rvci5uYW1lPT09dm9pZCAwKXt2YXIgYz1TdHJpbmcoYik7cmV0dXJuIGMuc3Vic3RyaW5nKDgsYy5sZW5ndGgtMSl9cmV0dXJuIFN0cmluZyhiLmNvbnN0cnVjdG9yLm5hbWUpfXJldHVybiB0eXBlb2YgYX07ZnVuY3Rpb24gUWgoYSl7ZnVuY3Rpb24gYihjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dHJ5e3JldHVybiBjKGQpfWNhdGNoKGUpeyhsZ3x8bWcuUG8pJiZhLmNhbGwodGhpcyxlLm1lc3NhZ2UpfX19cmV0dXJue3BhcnNlOmIoZnVuY3Rpb24oYyl7cmV0dXJuIFVkKEpTT04ucGFyc2UoYykpfSksc3RyaW5naWZ5OmIoZnVuY3Rpb24oYyl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFRkKGMpKX0pLHB1YmxpY05hbWU6IkpTT04ifX07ZnVuY3Rpb24gUmgoYSl7cmV0dXJuIEliKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFNoKGEpe3JldHVybiBOdW1iZXIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gVGgoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gVWgoYSxiLGMpe3ZhciBkPW51bGwsZT0hMTtyZXR1cm4gZT9kOm51bGx9O3ZhciBBaD0iZmxvb3IgY2VpbCByb3VuZCBtYXggbWluIGFicyBwb3cgc3FydCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBWaCgpe3ZhciBhPXt9O3JldHVybntXcjpmdW5jdGlvbihiKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOnZvaWQgMH0sS286ZnVuY3Rpb24oYixjKXthW2JdPWN9LHJlc2V0OmZ1bmN0aW9uKCl7YT17fX19fWZ1bmN0aW9uIFdoKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEtkLnByb3RvdHlwZS5pbnZva2UuYXBwbHkoYSxbYl0uY29uY2F0KHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSkpfX0KZnVuY3Rpb24gWGgoYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7fQpmdW5jdGlvbiBZaChhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJQaXhpZU1hcCJdLGFyZ3VtZW50cyk7fTt2YXIgWmg9e307dmFyICRoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtpZihhIGluc3RhbmNlb2YgR2QpZm9yKHZhciBjPWEuRmEoKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07YS5oYXMoZSkmJmIuc2V0KGUsYS5nZXQoZSkpfWVsc2UgaWYoYSBpbnN0YW5jZW9mIEtkKWZvcih2YXIgZj1hLkZhKCksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO2Iuc2V0KGgsYS5nZXQoaCkpfWVsc2UgZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYi5zZXQobCxhW2xdKTtyZXR1cm4gYn07ClpoLmtleXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5GYSgpKTtyZXR1cm4gbmV3IEdkfTsKWmgudmFsdWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuaGMoKSk7cmV0dXJuIG5ldyBHZH07ClpoLmVudHJpZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5mYygpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gbmV3IEdkKGIpfSkpO3JldHVybiBuZXcgR2R9OwpaaC5mcmVlemU9ZnVuY3Rpb24oYSl7KGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkfHxhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZCkmJmEuWmEoKTtyZXR1cm4gYX07WmguZGVsZXRlPWZ1bmN0aW9uKGEsYil7aWYoYSBpbnN0YW5jZW9mIGtiJiYhYS5IYigpKXJldHVybiBhLnJlbW92ZShiKSwhMDtyZXR1cm4hMX07ZnVuY3Rpb24gTChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPWEuVC54YigpO2lmKCFkKXRocm93IEVycm9yKCJNaXNzaW5nIHByb2dyYW0gc3RhdGUuIik7aWYoZC5pdCl7dHJ5e2QuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX1jYXRjaChlKXt0aHJvdyBzYigiVEFHR0lORyIsMjEpLGU7fXJldHVybn1kLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9O3ZhciBhaT1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPSEwO307YWkucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGFpbnMoYSk/dGhpcy5LW2FdOnZvaWQgMDtyZXR1cm4gY307YWkucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLksuaGFzT3duUHJvcGVydHkoYSl9OwphaS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZih0aGlzLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGFuIEFQSSB3aXRoIGFuIGV4aXN0aW5nIHByaXZhdGUgQVBJIG5hbWU6ICIrYSsiLiIpO3RoaXMuS1thXT1jP3ZvaWQgMDp5YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIGJpKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfTtmdW5jdGlvbiBjaSgpe3ZhciBhPXt9OwpyZXR1cm4gYX07dmFyIGRpPXt9LGVpPShkaVtGLkQuc2FdPSJnY3UiLGRpW0YuRC5laF09ImVwdCIsZGlbRi5ELlNiXT0iZ2NsZ2IiLGRpW0YuRC5sYl09ImdjbGF3IixkaVtGLkQuemxdPSJnY2xpZF9sZW4iLGRpW0YuRC5CZV09ImdjbGdzIixkaVtGLkQuQ2VdPSJnY2xscCIsZGlbRi5ELkRlXT0iZ2Nsc3QiLGRpW0YuRC5FZF09ImF1aWQiLGRpW0YuRC5CbF09ImFlIixkaVtGLkQuQ2ZdPSJkc2NudCIsZGlbRi5ELkRmXT0iZmNudHIiLGRpW0YuRC5FZl09ImZsbmciLGRpW0YuRC5GZl09Im1pZCIsZGlbRi5ELndpXT0iYnR0eXBlIixkaVtGLkQuS2JdPSJnYWNpZCIsZGlbRi5ELkdkXT0ibGFiZWwiLGRpW0YuRC5GZV09ImNhcGkiLGRpW0YuRC5qaF09InBzY2RsIixkaVtGLkQuZWJdPSJjdXJyZW5jeV9jb2RlIixkaVtGLkQuR2VdPSJ2ZGx0diIsZGlbRi5ELmtoXT0iY2xvY3QiLGRpW0YuRC5FbF09Il9kYmciLGRpW0YuRC5JZV09Im9lZGVsZCIsZGlbRi5ELlZjXT0iZWRpZCIsZGlbRi5ELk1kXT0iZXZuaWQiLApkaVtGLkQuRWldPSJldmppZCIsZGlbRi5ELk5kXT0iZXhjaWQiLGRpW0YuRC5yaF09ImdhYyIsZGlbRi5ELkplXT0iZ2FjZ2IiLGRpW0YuRC5NbF09ImdhY21jb3YiLGRpW0YuRC5LZV09ImdkcHIiLGRpW0YuRC5YY109ImdkaWQiLGRpW0YuRC5MZV09Il9uZyIsZGlbRi5ELmNxXT0iX29ubyIsZGlbRi5ELnRoXT0iZ3BwX3NpZCIsZGlbRi5ELnVoXT0iZ3BwIixkaVtGLkQuUGxdPSJnc2FleHAiLGRpW0YuRC5WZl09Il90dSIsZGlbRi5ELk1lXT0iZnJtIixkaVtGLkQuS2ldPSJndG1fdXAiLGRpW0YuRC5QZF09ImxwcyIsZGlbRi5ELkxpXT0iZGlkIixkaVtGLkQuUWRdPSJmY250ciIsZGlbRi5ELlJkXT0iZmxuZyIsZGlbRi5ELlNkXT0ibWlkIixkaVtGLkQuTmVdPXZvaWQgMCxkaVtGLkQuTWJdPSJ0aWJhIixkaVtGLkQuV2JdPSJyZHAiLGRpW0YuRC54Y109ImVjc2lkIixkaVtGLkQuWmZdPSJnYV91aWQiLGRpW0YuRC5VZF09ImRlbG9wYyIsZGlbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IiwKZGlbRi5ELlBhXT0ib2lkIixkaVtGLkQuZG1dPSJvaWRzcmMiLGRpW0YuRC5mbV09InVwdGdzIixkaVtGLkQuY2ddPSJ1YWEiLGRpW0YuRC5kZ109InVhYiIsZGlbRi5ELmVnXT0idWFmdmwiLGRpW0YuRC5mZ109InVhbWIiLGRpW0YuRC5nZ109InVhbSIsZGlbRi5ELmhnXT0idWFwIixkaVtGLkQuaWddPSJ1YXB2IixkaVtGLkQuamddPSJ1YXciLGRpW0YuRC5nbV09ImVjX2xhdCIsZGlbRi5ELmhtXT0iZWNfbWV0YSIsZGlbRi5ELmltXT0iZWNfbSIsZGlbRi5ELmptXT0iZWNfc2VsIixkaVtGLkQua21dPSJlY19zIixkaVtGLkQuQmNdPSJlY19tb2RlIixkaVtGLkQuZmJdPSJ1c2VySWQiLGRpW0YuRC5rZ109InVzX3ByaXZhY3kiLGRpW0YuRC5RYV09InZhbHVlIixkaVtGLkQucW1dPSJtY292IixkaVtGLkQuV2ldPSJobiIsZGlbRi5ELlZtXT0iZ3RtX2VlIixkaVtGLkQuWWldPSJ1aXAiLGRpW0YuRC5KaF09Im10IixkaVtGLkQuZGVdPSJucGEiLGRpW0YuRC5ZcV09InNnX3VjIixkaVtGLkQueWldPQpudWxsLGRpW0YuRC5iZF09bnVsbCxkaVtGLkQudGJdPW51bGwsZGlbRi5ELkhhXT1udWxsLGRpW0YuRC56YV09bnVsbCxkaVtGLkQuVWFdPW51bGwsZGlbRi5ELlBlXT1udWxsLGRpW0YuRC5lZF09bnVsbCxkaVtGLkQuc2hdPW51bGwsZGlbRi5ELkJkXT1udWxsLGRpW0YuRC5DZF09bnVsbCxkaVtGLkQuZmhdPW51bGwsZGlbRi5ELmdoXT1udWxsLGRpW0YuRC5UYV09bnVsbCxkaVtGLkQuV2NdPW51bGwsZGkpO2Z1bmN0aW9uIGZpKGEsYil7aWYoYSl7dmFyIGM9YS5zcGxpdCgieCIpO2MubGVuZ3RoPT09MiYmKGdpKGIsInVfdyIsY1swXSksZ2koYiwidV9oIixjWzFdKSl9fWZ1bmN0aW9uIGhpKGEpe3ZhciBiPWlpO2I9Yj09PXZvaWQgMD9qaTpiO3JldHVybiBraShsaShhLGIpKX1mdW5jdGlvbiBraShhKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIigiK1ttaShiLnZhbHVlKSxtaShiLnF1YW50aXR5KSxtaShiLml0ZW1faWQpLG1pKGIuc3RhcnRfZGF0ZSksbWkoYi5lbmRfZGF0ZSldLmpvaW4oIioiKSsiKSJ9KS5qb2luKCIiKX0KZnVuY3Rpb24gbGkoYSxiKXtyZXR1cm4oYXx8W10pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJue2l0ZW1faWQ6YihjKSxxdWFudGl0eTpjLnF1YW50aXR5LHZhbHVlOmMucHJpY2Usc3RhcnRfZGF0ZTpjLnN0YXJ0X2RhdGUsZW5kX2RhdGU6Yy5lbmRfZGF0ZX19KX1mdW5jdGlvbiBqaShhKXtyZXR1cm5bYS5pdGVtX2lkLGEuaWQsYS5pdGVtX25hbWVdLmZpbmQoZnVuY3Rpb24oYil7cmV0dXJuIGIhPW51bGx9KX1mdW5jdGlvbiBuaShhKXtpZihhJiZhLmxlbmd0aClyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGImJmIuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU/Yi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZToiIn0pLmpvaW4oIiwiKX1mdW5jdGlvbiBnaShhLGIsYyl7Yz09PXZvaWQgMHx8Yz09PW51bGx8fGM9PT0iIiYmIXlnW2JdfHwoYVtiXT1jKX0KZnVuY3Rpb24gbWkoYSl7cmV0dXJuIHR5cGVvZiBhIT09Im51bWJlciImJnR5cGVvZiBhIT09InN0cmluZyI/IiI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBvaSgpe3RoaXMuYmxvY2tTaXplPS0xfTtmdW5jdGlvbiBwaShhLGIpe3RoaXMuYmxvY2tTaXplPS0xO3RoaXMuYmxvY2tTaXplPTY0O3RoaXMuTj1SYS5VaW50OEFycmF5P25ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTpBcnJheSh0aGlzLmJsb2NrU2l6ZSk7dGhpcy5SPXRoaXMuSz0wO3RoaXMuSD1bXTt0aGlzLmZhPWE7dGhpcy5aPWI7dGhpcy5qYT1SYS5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCk7cWk9PT12b2lkIDAmJihSYS5JbnQzMkFycmF5P3FpPW5ldyBJbnQzMkFycmF5KHJpKTpxaT1yaSk7dGhpcy5yZXNldCgpfVNhKHBpLG9pKTtmb3IodmFyIHNpPVtdLHRpPTA7dGk8NjM7dGkrKylzaVt0aV09MDt2YXIgdWk9W10uY29uY2F0KDEyOCxzaSk7CnBpLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuUj10aGlzLks9MDt2YXIgYTtpZihSYS5JbnQzMkFycmF5KWE9bmV3IEludDMyQXJyYXkodGhpcy5aKTtlbHNle3ZhciBiPXRoaXMuWixjPWIubGVuZ3RoO2lmKGM+MCl7Zm9yKHZhciBkPUFycmF5KGMpLGU9MDtlPGM7ZSsrKWRbZV09YltlXTthPWR9ZWxzZSBhPVtdfXRoaXMuSD1hfTsKdmFyIHZpPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLk4sYz1hLmphLGQ9MCxlPTA7ZTxiLmxlbmd0aDspY1tkKytdPWJbZV08PDI0fGJbZSsxXTw8MTZ8YltlKzJdPDw4fGJbZSszXSxlPWQqNDtmb3IodmFyIGY9MTY7Zjw2NDtmKyspe3ZhciBnPWNbZi0xNV18MCxoPWNbZi0yXXwwO2NbZl09KChjW2YtMTZdfDApKygoZz4+Pjd8Zzw8MjUpXihnPj4+MTh8Zzw8MTQpXmc+Pj4zKXwwKSsoKGNbZi03XXwwKSsoKGg+Pj4xN3xoPDwxNSleKGg+Pj4xOXxoPDwxMyleaD4+PjEwKXwwKXwwfWZvcih2YXIgbD1hLkhbMF18MCxuPWEuSFsxXXwwLHA9YS5IWzJdfDAscT1hLkhbM118MCxyPWEuSFs0XXwwLHQ9YS5IWzVdfDAsdT1hLkhbNl18MCx2PWEuSFs3XXwwLHg9MDt4PDY0O3grKyl7dmFyIHk9KChsPj4+MnxsPDwzMCleKGw+Pj4xM3xsPDwxOSleKGw+Pj4yMnxsPDwxMCkpKyhsJm5ebCZwXm4mcCl8MCx6PSh2Kygocj4+PjZ8cjw8MjYpXihyPj4+MTF8cjw8MjEpXihyPj4+MjV8cjw8NykpfAowKSsoKChyJnRefnImdSkrKHFpW3hdfDApfDApKyhjW3hdfDApfDApfDA7dj11O3U9dDt0PXI7cj1xK3p8MDtxPXA7cD1uO249bDtsPXoreXwwfWEuSFswXT1hLkhbMF0rbHwwO2EuSFsxXT1hLkhbMV0rbnwwO2EuSFsyXT1hLkhbMl0rcHwwO2EuSFszXT1hLkhbM10rcXwwO2EuSFs0XT1hLkhbNF0rcnwwO2EuSFs1XT1hLkhbNV0rdHwwO2EuSFs2XT1hLkhbNl0rdXwwO2EuSFs3XT1hLkhbN10rdnwwfTsKcGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPWEubGVuZ3RoKTt2YXIgYz0wLGQ9dGhpcy5LO2lmKHR5cGVvZiBhPT09InN0cmluZyIpZm9yKDtjPGI7KXRoaXMuTltkKytdPWEuY2hhckNvZGVBdChjKyspLGQ9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKTtlbHNle3ZhciBlLGY9dHlwZW9mIGE7ZT1mIT0ib2JqZWN0Ij9mOmE/QXJyYXkuaXNBcnJheShhKT8iYXJyYXkiOmY6Im51bGwiO2lmKGU9PSJhcnJheSJ8fGU9PSJvYmplY3QiJiZ0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKWZvcig7YzxiOyl7dmFyIGc9YVtjKytdO2lmKCEoIm51bWJlciI9PXR5cGVvZiBnJiYwPD1nJiYyNTU+PWcmJmc9PShnfDApKSl0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIGEgYnl0ZSBhcnJheSIpO3RoaXMuTltkKytdPWc7ZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApfWVsc2UgdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBzdHJpbmcgb3IgYXJyYXkiKTsKfXRoaXMuSz1kO3RoaXMuUis9Yn07cGkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBhPVtdLGI9dGhpcy5SKjg7dGhpcy5LPDU2P3RoaXMudXBkYXRlKHVpLDU2LXRoaXMuSyk6dGhpcy51cGRhdGUodWksdGhpcy5ibG9ja1NpemUtKHRoaXMuSy01NikpO2Zvcih2YXIgYz02MztjPj01NjtjLS0pdGhpcy5OW2NdPWImMjU1LGIvPTI1Njt2aSh0aGlzKTtmb3IodmFyIGQ9MCxlPTA7ZTx0aGlzLmZhO2UrKylmb3IodmFyIGY9MjQ7Zj49MDtmLT04KWFbZCsrXT10aGlzLkhbZV0+PmYmMjU1O3JldHVybiBhfTsKdmFyIHJpPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsCjQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxxaTtmdW5jdGlvbiB3aSgpe3BpLmNhbGwodGhpcyw4LHhpKX1TYSh3aSxwaSk7dmFyIHhpPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV07dmFyIHlpPS9eWzAtOUEtRmEtZl17NjR9JC87ZnVuY3Rpb24gemkoYSl7dHJ5e3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKX1jYXRjaChiKXtyZXR1cm4gWmIoYSl9fWZ1bmN0aW9uIEFpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3ZhciBjO2lmKChjPWIuY3J5cHRvKT09bnVsbD8wOmMuc3VidGxlKXtpZih5aS50ZXN0KGEpKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dHJ5e3ZhciBkPXppKGEpO3JldHVybiBiLmNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBCaShlLGIpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4iZTIifSl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTIiKX19ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMSIpfQpmdW5jdGlvbiBDaShhKXt0cnl7dmFyIGI9bmV3IHdpO2IudXBkYXRlKHppKGEpKTtyZXR1cm4gYi5kaWdlc3QoKX1jYXRjaChjKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBEaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCJ8fHlpLnRlc3QoYSkpcmV0dXJuIGE7dmFyIGM9Q2koYSk7aWYoYz09PSJlMiIpcmV0dXJuImUyIjt0cnl7cmV0dXJuIEJpKGMsYil9Y2F0Y2goZCl7cmV0dXJuImUyIn19ZnVuY3Rpb24gQmkoYSxiKXt2YXIgYz1BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZCl9KS5qb2luKCIiKTtyZXR1cm4gYi5idG9hKGMpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9O2Z1bmN0aW9uIEVpKCl7Zm9yKHZhciBhPSExLGI9ITEsYz0wO2E9PT1iOylpZihhPURiKDAsMSk9PT0wLGI9RGIoMCwxKT09PTAsYysrLGM+MzApcmV0dXJuO3JldHVybiBhfXZhciBHaT17c2s6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBGaS5zayhhLGIsYyl9fSxIaT1mdW5jdGlvbigpe3RoaXMuc3R1ZGllcz17fTt0aGlzLkg9RWl9OwpIaS5wcm90b3R5cGUuc2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuc3R1ZGllc1tiXTtpZighKChjPT09dm9pZCAwP0RiKDAsOTk5OSk6YyUxRTQpPGQucHJvYmFiaWxpdHkqKGQuY29udHJvbElkMj80OjIpKjFFNCkpcmV0dXJuIGE7YTp7dmFyIGU9ZC5zdHVkeUlkLGY9ZC5leHBlcmltZW50SWQsZz1kLmNvbnRyb2xJZCxoPWQuY29udHJvbElkMjtpZighKChhLmV4cHx8e30pW2ZdfHwoYS5leHB8fHt9KVtnXXx8aCYmKGEuZXhwfHx7fSlbaF0pKXt2YXIgbD1jIT09dm9pZCAwP2MlMj09PTA6dGhpcy5IKCk7aWYobCE9PXZvaWQgMCl7dmFyIG49bD8wOjE7aWYoaCl7dmFyIHA9YyE9PXZvaWQgMD8oYz4+MSklMj09PTA6dGhpcy5IKCk7aWYocD09PXZvaWQgMClicmVhayBhO258PShwPzA6MSk8PDF9bj09PTA/SWkoYSxmLGUpOm49PT0xP0lpKGEsZyxlKTpuPT09MiYmSWkoYSxoLGUpfX19cmV0dXJuIGF9Owp2YXIgS2k9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdP0ppKGMsYil8fCEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmV4cGVyaW1lbnRJZF06ITF9LExpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZCYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkXTohMX0sTWk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkMiYmIUppKGMsYik/ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uY29udHJvbElkMl06ITF9LE5pPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEuZXhwfHx7fSxkPW0oT2JqZWN0LmtleXMoYykubWFwKE51bWJlcikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2lmKGNbZl09PT1iKXJldHVybiBmfX0sSmk9ZnVuY3Rpb24oYSwKYil7cmV0dXJuISFhLnN0dWRpZXNbYl0uYWN0aXZlfHxhLnN0dWRpZXNbYl0ucHJvYmFiaWxpdHk+LjV9LElpPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmV4cHx8e307ZFtiXT1jO2EuZXhwPWR9LEZpPW5ldyBIaTt2YXIgaWo9ZnVuY3Rpb24oKXt0aGlzLkg9QS5nb29nbGVfdGFnX21hbmFnZXI9QS5nb29nbGVfdGFnX21hbmFnZXJ8fHt9fSxqajtmdW5jdGlvbiBraihhLGIpe2xqKCk7dmFyIGM9amo7cmV0dXJuIGMuSFthXT1jLkhbYV18fGIoKX1mdW5jdGlvbiBtaihhKXtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIG5qKGEsYil7bGooKTtqai5IW2FdPWJ9ZnVuY3Rpb24gb2ooYSl7dmFyIGI9RSg1KTtsaigpO3ZhciBjPWpqO2MuSFtiXT1jLkhbYl18fGF9ZnVuY3Rpb24gcGooKXt2YXIgYT1FKDE5KTtsaigpO3ZhciBiPWpqO3JldHVybiBiLkhbYV09Yi5IW2FdfHx7fX1mdW5jdGlvbiBxaigpe3ZhciBhPUUoMTkpO2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gcmooKXtsaigpO3ZhciBhPWpqLGI9YS5ILnNlcXVlbmNlfHwxO2EuSC5zZXF1ZW5jZT1iKzE7cmV0dXJuIGJ9ZnVuY3Rpb24gbGooKXtqanx8KGpqPW5ldyBpail9O3ZhciBzaj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiAwO2Nhc2UgNDkxOnJldHVybiAxMjtjYXNlIDQ4MDpyZXR1cm4gMTE7Y2FzZSA0OTk6cmV0dXJuIDEwO2Nhc2UgNTAwOnJldHVybiA2O2Nhc2UgNDIxOnJldHVybiA5O2Nhc2UgNTYxOnJldHVybiAxNztjYXNlIDQ4MjpyZXR1cm4gMTU7Y2FzZSA1NzA6cmV0dXJuIDE5O2Nhc2UgNDk1OnJldHVybiAxMztjYXNlIDUxNDpyZXR1cm4gMTY7Y2FzZSA1NzM6cmV0dXJuIDE4O2Nhc2UgMjM1OnJldHVybiA4O2Nhc2UgNTM6cmV0dXJuIDE7Y2FzZSA1NDpyZXR1cm4gMjtjYXNlIDUyOnJldHVybiA0O2Nhc2UgNzU6cmV0dXJuIDN9fSx0aj1mdW5jdGlvbihhLGIpe2EuTltiXT0hMDt2YXIgYz1zaihiKTtjIT09dm9pZCAwJiYoV2ZbY109ITApfSxNPWZ1bmN0aW9uKGEpe3JldHVybiEhdWouTlthXX0sdWo9bmV3IGZ1bmN0aW9uKCl7dGhpcy5OPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107CnRqKHRoaXMsMTMyKTt2YXIgYT1OZig2LDZFNCk7WGZbMV09YTt2YXIgYj1OZig3LDEpO1hmWzNdPWI7dmFyIGM9TmYoMzUsNTApO1hmWzJdPWM7dmFyIGQ9TmYoNjksMTc3NjQ0ODkyMCk7WGZbNF09ZDsKdGoodGhpcyw0MzUpO3RqKHRoaXMsMTQxKTsKfTt2YXIgdmo9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFNldDt0aGlzLks9bmV3IFNldH0seGo9ZnVuY3Rpb24oYSl7dmFyIGI9d2ouSDthPWE9PT12b2lkIDA/W106YTt2YXIgYz1bXS5jb25jYXQodyhiLkgpKS5jb25jYXQoW10uY29uY2F0KHcoYi5LKSkpLmNvbmNhdChhKTtjLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGN9LHlqPWZ1bmN0aW9uKCl7dmFyIGE9W10uY29uY2F0KHcod2ouSC5IKSk7YS5zb3J0KGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGItY30pO3JldHVybiBhfSx6aj1mdW5jdGlvbigpe3ZhciBhPXdqLkgsYj1FKDQ0KTthLkg9bmV3IFNldDtpZihiIT09IiIpZm9yKHZhciBjPW0oYi5zcGxpdCgifiIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9TnVtYmVyKGQudmFsdWUpO2lzTmFOKGUpfHxhLkguYWRkKGUpfX07dmFyIEFqPXt9LEJqPXtfX2NsOjEsX19lY2w6MSxfX2VobDoxLF9fZXZsOjEsX19mYWw6MSxfX2ZpbDoxLF9fZnNsOjEsX19obDoxLF9famVsOjEsX19sY2w6MSxfX3NkbDoxLF9fdGw6MSxfX3l0bDoxfSxDaj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHtfX3BhdXNlZDoxLF9fdGc6MX0sQmopLERqLEVqPSExO0RqPUVqO3ZhciBGaj0iIjtBai5xaj1Gajt2YXIgd2o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPW5ldyB2an07dmFyIEdqPS86WzAtOV0rJC8sSGo9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvO2Z1bmN0aW9uIElqKGEsYixjLGQpe3ZhciBlPUpqKGEsISFkLGIpLGYsZztyZXR1cm4gYz8oZz1lW2JdKSE9bnVsbD9nOltdOihmPWVbYl0pPT1udWxsP3ZvaWQgMDpmWzBdfWZ1bmN0aW9uIEpqKGEsYixjKXtmb3IodmFyIGQ9e30sZT1tKGEuc3BsaXQoIiYiKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPW0oZi52YWx1ZS5zcGxpdCgiPSIpKSxoPWcubmV4dCgpLnZhbHVlLGw9eWEoZyksbj1kZWNvZGVVUklDb21wb25lbnQoaC5yZXBsYWNlKC9cKy9nLCIgIikpO2lmKGM9PT12b2lkIDB8fG49PT1jKXt2YXIgcD1sLmpvaW4oIj0iKTtkW25dfHwoZFtuXT1bXSk7ZFtuXS5wdXNoKGI/cDpkZWNvZGVVUklDb21wb25lbnQocC5yZXBsYWNlKC9cKy9nLCIgIikpKX19cmV0dXJuIGR9CmZ1bmN0aW9uIEtqKGEpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGIpe319ZnVuY3Rpb24gTGooYSxiLGMsZCxlKXtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7aWYoYj09PSJwcm90b2NvbCJ8fGI9PT0icG9ydCIpYS5wcm90b2NvbD1NaihhLnByb3RvY29sKXx8TWooQS5sb2NhdGlvbi5wcm90b2NvbCk7Yj09PSJwb3J0Ij9hLnBvcnQ9U3RyaW5nKE51bWJlcihhLmhvc3RuYW1lP2EucG9ydDpBLmxvY2F0aW9uLnBvcnQpfHwoYS5wcm90b2NvbD09PSJodHRwIj84MDphLnByb3RvY29sPT09Imh0dHBzIj80NDM6IiIpKTpiPT09Imhvc3QiJiYoYS5ob3N0bmFtZT0oYS5ob3N0bmFtZXx8QS5sb2NhdGlvbi5ob3N0bmFtZSkucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKSk7cmV0dXJuIE5qKGEsYixjLGQsZSl9CmZ1bmN0aW9uIE5qKGEsYixjLGQsZSl7dmFyIGYsZz1NaihhLnByb3RvY29sKTtiJiYoYj1TdHJpbmcoYikudG9Mb3dlckNhc2UoKSk7c3dpdGNoKGIpe2Nhc2UgInVybF9ub19mcmFnbWVudCI6Zj1PaihhKTticmVhaztjYXNlICJwcm90b2NvbCI6Zj1nO2JyZWFrO2Nhc2UgImhvc3QiOmY9YS5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpO2lmKGMpe3ZhciBoPS9ed3d3XGQqXC4vLmV4ZWMoZik7aCYmaFswXSYmKGY9Zi5zdWJzdHJpbmcoaFswXS5sZW5ndGgpKX1icmVhaztjYXNlICJwb3J0IjpmPVN0cmluZyhOdW1iZXIoYS5wb3J0KXx8KGc9PT0iaHR0cCI/ODA6Zz09PSJodHRwcyI/NDQzOiIiKSk7YnJlYWs7Y2FzZSAicGF0aCI6YS5wYXRobmFtZXx8YS5ob3N0bmFtZXx8c2IoIlRBR0dJTkciLDEpO2Y9YS5wYXRobmFtZS5zdWJzdHJpbmcoMCwxKT09PSIvIj9hLnBhdGhuYW1lOiIvIithLnBhdGhuYW1lO3ZhciBsPWYuc3BsaXQoIi8iKTsoZHx8W10pLmluZGV4T2YobFtsLmxlbmd0aC0KMV0pPj0wJiYobFtsLmxlbmd0aC0xXT0iIik7Zj1sLmpvaW4oIi8iKTticmVhaztjYXNlICJxdWVyeSI6Zj1hLnNlYXJjaC5yZXBsYWNlKCI/IiwiIik7ZSYmKGY9SWooZixlLCExKSk7YnJlYWs7Y2FzZSAiZXh0ZW5zaW9uIjp2YXIgbj1hLnBhdGhuYW1lLnNwbGl0KCIuIik7Zj1uLmxlbmd0aD4xP25bbi5sZW5ndGgtMV06IiI7Zj1mLnNwbGl0KCIvIilbMF07YnJlYWs7Y2FzZSAiZnJhZ21lbnQiOmY9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKTticmVhaztkZWZhdWx0OmY9YSYmYS5ocmVmfXJldHVybiBmfWZ1bmN0aW9uIE1qKGEpe3JldHVybiBhP2EucmVwbGFjZSgiOiIsIiIpLnRvTG93ZXJDYXNlKCk6IiJ9ZnVuY3Rpb24gT2ooYSl7dmFyIGI9IiI7aWYoYSYmYS5ocmVmKXt2YXIgYz1hLmhyZWYuaW5kZXhPZigiIyIpO2I9YzwwP2EuaHJlZjphLmhyZWYuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIGJ9dmFyIFBqPXt9LFFqPTA7CmZ1bmN0aW9uIFJqKGEpe3ZhciBiPVBqW2FdO2lmKCFiKXt2YXIgYz1CLmNyZWF0ZUVsZW1lbnQoImEiKTthJiYoYy5ocmVmPWEpO3ZhciBkPWMucGF0aG5hbWU7ZFswXSE9PSIvIiYmKGF8fHNiKCJUQUdHSU5HIiwxKSxkPSIvIitkKTt2YXIgZT1jLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpO2I9e2hyZWY6Yy5ocmVmLHByb3RvY29sOmMucHJvdG9jb2wsaG9zdDpjLmhvc3QsaG9zdG5hbWU6ZSxwYXRobmFtZTpkLHNlYXJjaDpjLnNlYXJjaCxoYXNoOmMuaGFzaCxwb3J0OmMucG9ydH07UWo8NSYmKFBqW2FdPWIsUWorKyl9cmV0dXJuIGJ9ZnVuY3Rpb24gU2ooYSxiLGMpe3ZhciBkPVJqKGEpO3JldHVybiBhYyhiLGQsYyl9CmZ1bmN0aW9uIFRqKGEpe3ZhciBiPVJqKEEubG9jYXRpb24uaHJlZiksYz1MaihiLCJob3N0IiwhMSk7aWYoYyYmYy5tYXRjaChIaikpe3ZhciBkPUxqKGIsInBhdGgiKTtpZihkKXt2YXIgZT1kLnNwbGl0KGErIj0iKTtpZihlLmxlbmd0aD4xKXJldHVybiBlWzFdLnNwbGl0KCI7IilbMF0uc3BsaXQoIj8iKVswXX19fTt2YXIgVWo9eyJodHRwczovL3d3dy5nb29nbGUuY29tIjoiL2ciLCJodHRwczovL3d3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSI6Ii9hcyIsImh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iOiIvZ3MifSxWaj1bIi9hcy9kL2NjbS9jb252ZXJzaW9uIiwiL2cvZC9jY20vY29udmVyc2lvbiIsIi9ncy9jY20vY29udmVyc2lvbiIsIi9kL2NjbS9mb3JtLWRhdGEiXTtmdW5jdGlvbiBXaigpe3JldHVybiBJZig0Nyk/SmYoNTQpIT09MTohMX1mdW5jdGlvbiBYaigpe3ZhciBhPUUoMTgpLGI9YS5sZW5ndGg7cmV0dXJuIGFbYi0xXT09PSIvIj9hLnN1YnN0cmluZygwLGItMSk6YX0KZnVuY3Rpb24gWWooYSxiKXtpZihhKXt2YXIgYz0iIithO2MuaW5kZXhPZigiaHR0cDovLyIpIT09MCYmYy5pbmRleE9mKCJodHRwczovLyIpIT09MCYmKGM9Imh0dHBzOi8vIitjKTtjW2MubGVuZ3RoLTFdPT09Ii8iJiYoYz1jLnN1YnN0cmluZygwLGMubGVuZ3RoLTEpKTtyZXR1cm4gUmooIiIrYytiKS5ocmVmfX1mdW5jdGlvbiBaaihhKXtpZihhaygpKXJldHVybiBZaihhLCIvYW5hbHl0aWNzLmpzIil9ZnVuY3Rpb24gYmsoYSl7cmV0dXJuIGE9PT0yfHxhPT09M31mdW5jdGlvbiBjayhhKXtyZXR1cm4gTSg1ODgpJiZhPT09M31mdW5jdGlvbiBhaygpe3JldHVybiBXaigpfHxJZig1MCl9ZnVuY3Rpb24gZGsoKXtyZXR1cm4hIUFqLnFqJiZBai5xai5zcGxpdCgiQEAiKS5qb2luKCIiKSE9PSJTR1RNX1RPS0VOIn0KZnVuY3Rpb24gZWsoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9TyhhLGMudmFsdWUpO2lmKGQpcmV0dXJuIGR9fWZ1bmN0aW9uIGZrKGEsYixjKXtjPWM9PT12b2lkIDA/IiI6YztpZighV2ooKSlyZXR1cm4gYTt2YXIgZD1iP1VqW2FdfHwiIjoiIjtkPT09Ii9ncyImJihjPSIiKTtyZXR1cm4iIitYaigpK2QrY31mdW5jdGlvbiBnayhhKXtpZihXaigpKWZvcih2YXIgYj1tKFZqKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihTYihhLCIiK1hqKCkrZCkpcmV0dXJuIjo6In19CmZ1bmN0aW9uIGhrKCl7dmFyIGE9QTtpZighYSlyZXR1cm4hMTt0cnl7aWYoYT09PWEudG9wKXJldHVybiExO3ZhciBiPWEubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIGIuaW5kZXhPZigiL18vc2VydmljZV93b3JrZXIvIikhPT0tMSYmVGIoYiwiL3N3X2lmcmFtZS5odG1sIil9Y2F0Y2goYyl7cmV0dXJuITF9fTt2YXIgaWs9L2d0YWdbLlwvXWpzLyxqaz0vZ3RtWy5cL11qcy8sbGs9ZnVuY3Rpb24oYSl7dmFyIGI9a2s7aWYoKGEuc2NyaXB0Q29udGFpbmVySWR8fCIiKS5pbmRleE9mKCJHVE0tIik+PTApe3ZhciBjO2E6e3ZhciBkLGU9KGQ9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZC5zcmM7aWYoZSl7Zm9yKHZhciBmPUlmKDQ3KSxnPVJqKGUpLGg9Zj9nLnBhdGhuYW1lOiIiK2cuaG9zdG5hbWUrZy5wYXRobmFtZSxsPUIuc2NyaXB0cyxuPSIiLHA9MDtwPGwubGVuZ3RoOysrcCl7dmFyIHE9bFtwXTtpZighKHEuaW5uZXJIVE1MLmxlbmd0aD09PTB8fCFmJiZxLmlubmVySFRNTC5pbmRleE9mKGEuc2NyaXB0Q29udGFpbmVySWR8fCJTSE9VTERfTk9UX0JFX1NFVCIpPDB8fHEuaW5uZXJIVE1MLmluZGV4T2YoaCk8MCkpe2lmKHEuaW5uZXJIVE1MLmluZGV4T2YoIihmdW5jdGlvbih3LGQscyxsLGkpIik+PTApe2M9U3RyaW5nKHApO2JyZWFrIGF9bj1TdHJpbmcocCl9fWlmKG4pe2M9Cm47YnJlYWsgYX19Yz12b2lkIDB9dmFyIHI9YztpZihyKXJldHVybiBiLkg9ITAscn12YXIgdD1bXS5zbGljZS5jYWxsKEIuc2NyaXB0cyk7cmV0dXJuIGEuc2NyaXB0RWxlbWVudD9TdHJpbmcodC5pbmRleE9mKGEuc2NyaXB0RWxlbWVudCkpOiItMSJ9LG1rPWZ1bmN0aW9uKGEpe2lmKGtrLkgpcmV0dXJuIjEiO3ZhciBiLGM9KGI9YS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6Yi5zcmM7aWYoYyl7aWYoaWsudGVzdChjKSlyZXR1cm4iMyI7aWYoamsudGVzdChjKSlyZXR1cm4iMiJ9cmV0dXJuIjAifSxraz1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O2Z1bmN0aW9uIFAoYSl7c2IoIkdUTSIsYSl9O2Z1bmN0aW9uIG5rKGEpe3ZhciBiPW9rKCkuZGVzdGluYXRpb25BcnJheVthXSxjPW9rKCkuZGVzdGluYXRpb25bYV07cmV0dXJuIGImJmIubGVuZ3RoPjA/YlswXTpjfWZ1bmN0aW9uIHBrKGEsYil7dmFyIGM9b2soKTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO0NiKGMucGVuZGluZyxmdW5jdGlvbihkKXtyZXR1cm4gZC50YXJnZXQuY3RpZD09PWEuY3RpZCYmZC50YXJnZXQuaXNEZXN0aW5hdGlvbj09PWEuaXNEZXN0aW5hdGlvbn0pfHxjLnBlbmRpbmcucHVzaCh7dGFyZ2V0OmEsb25Mb2FkOmJ9KX1mdW5jdGlvbiBxaygpe3ZhciBhPUEuZ29vZ2xlX3RhZ3NfZmlyc3RfcGFydHk7QXJyYXkuaXNBcnJheShhKXx8KGE9W10pO2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpYltkLnZhbHVlXT0hMDtyZXR1cm4gT2JqZWN0LmZyZWV6ZShiKX0KdmFyIHJrPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5kZXN0aW5hdGlvbj17fTt0aGlzLmRlc3RpbmF0aW9uQXJyYXk9e307dGhpcy5jYW5vbmljYWw9e307dGhpcy5wZW5kaW5nPVtdO3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz17fTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKX07CmZ1bmN0aW9uIG9rKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS50aWRyO2ImJnR5cGVvZiBiPT09Im9iamVjdCJ8fChiPW5ldyByayxhLnRpZHI9Yik7dmFyIGM9YjtjLmNvbnRhaW5lcnx8KGMuY29udGFpbmVyPXt9KTtjLmRlc3RpbmF0aW9ufHwoYy5kZXN0aW5hdGlvbj17fSk7Yy5kZXN0aW5hdGlvbkFycmF5fHwoYy5kZXN0aW5hdGlvbkFycmF5PXt9KTtjLmNhbm9uaWNhbHx8KGMuY2Fub25pY2FsPXt9KTtjLnBlbmRpbmd8fChjLnBlbmRpbmc9W10pO2MuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc3x8KGMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpKTtyZXR1cm4gY307ZnVuY3Rpb24gc2soKXtyZXR1cm4gSWYoNykmJnRrKCkuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYT09PUUoNSl9KX1mdW5jdGlvbiB1aygpe3ZhciBhO3JldHVybihhPUtmKDU1KSkhPW51bGw/YTpbXX1mdW5jdGlvbiB2aygpe3JldHVybiBFKDYpfHwiXyIrRSg1KX1mdW5jdGlvbiB3aygpe3ZhciBhPUUoMTApO3JldHVybiBhP2Euc3BsaXQoInwiKTpbRSg1KV19ZnVuY3Rpb24gdGsoKXt2YXIgYT1LZig1OSk7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyJ9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuaW5kZXhPZigiR1RNLSIpIT09MH0pOltdfWZ1bmN0aW9uIHhrKCl7dmFyIGE9eWsoemsoKSksYj1hJiZhLnBhcmVudDtpZihiKXJldHVybiB5ayhiKX0KZnVuY3Rpb24gQWsoKXt2YXIgYT15ayh6aygpKTtpZihhKXtmb3IoO2EucGFyZW50Oyl7dmFyIGI9eWsoYS5wYXJlbnQpO2lmKCFiKWJyZWFrO2E9Yn1yZXR1cm4gYX19ZnVuY3Rpb24geWsoYSl7dmFyIGI9b2soKTtyZXR1cm4gYS5pc0Rlc3RpbmF0aW9uP25rKGEuY3RpZCk6Yi5jb250YWluZXJbYS5jdGlkXX1mdW5jdGlvbiBCaygpe3ZhciBhPW9rKCk7aWYoYS5wZW5kaW5nKXtmb3IodmFyIGIsYz1bXSxkPSExLGU9d2soKSxmPXRrKCksZz17fSxoPTA7aDxhLnBlbmRpbmcubGVuZ3RoO2c9e1JnOnZvaWQgMH0saCsrKWcuUmc9YS5wZW5kaW5nW2hdLENiKGcuUmcudGFyZ2V0LmlzRGVzdGluYXRpb24/ZjplLGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbj09PWwuUmcudGFyZ2V0LmN0aWR9fShnKSk/ZHx8KGI9Zy5SZy5vbkxvYWQsZD0hMCk6Yy5wdXNoKGcuUmcpO2EucGVuZGluZz1jO2lmKGIpdHJ5e2IodmsoKSl9Y2F0Y2gobCl7fX19CmZ1bmN0aW9uIENrKCl7Zm9yKHZhciBhPUUoNSksYj13aygpLGM9dGsoKSxkPXVrKCksZT1mdW5jdGlvbihxLHIpe3ZhciB0PXtjYW5vbmljYWxDb250YWluZXJJZDpFKDYpLHNjcmlwdENvbnRhaW5lcklkOmEsc3RhdGU6Mixjb250YWluZXJzOmIuc2xpY2UoKSxkZXN0aW5hdGlvbnM6Yy5zbGljZSgpfTtKYyYmKHQuc2NyaXB0RWxlbWVudD1KYyk7S2MmJih0LnNjcmlwdFNvdXJjZT1LYyk7eGsoKT09PXZvaWQgMCYmKHQuaHRtbExvYWRPcmRlcj1sayh0KSx0LmxvYWRTY3JpcHRUeXBlPW1rKHQpKTt2YXIgdSx2O3N3aXRjaChyKXtjYXNlIDA6dT1mdW5jdGlvbih6KXtmLmNvbnRhaW5lcltxXT16fTt2PWYuY29udGFpbmVyW3FdO2JyZWFrO2Nhc2UgMTp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS51bnNoaWZ0KHopfTt2YXIgeCx5PSgoeD1mLmRlc3RpbmF0aW9uQXJyYXlbcV0pPT0KbnVsbD92b2lkIDA6eFswXSl8fGYuZGVzdGluYXRpb25bcV07IXl8fHkuc3RhdGUhPT0wJiZ5LnN0YXRlIT09MXx8KHY9eSk7YnJlYWs7Y2FzZSAyOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnB1c2goeil9LHY9dm9pZCAwfXUmJih2Pyh2LnN0YXRlPT09MCYmUCg5MyksbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx2LHQpKTp1KHQpKX0sZj1vaygpLGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSllKGgudmFsdWUsMCk7Zm9yKHZhciBsPW0oYyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7ZC5pbmNsdWRlcyhwKT9lKHAsMSk6ZShwLDIpfWYuY2Fub25pY2FsW3ZrKCldPXt9O0JrKCl9ZnVuY3Rpb24gRGsoKXt2YXIgYT12aygpO3JldHVybiEhb2soKS5jYW5vbmljYWxbYV19CmZ1bmN0aW9uIEVrKGEpe3JldHVybiEhb2soKS5jb250YWluZXJbYV19ZnVuY3Rpb24gRmsoKXt2YXIgYT16aygpLGI9eWsoYSk7cmV0dXJuIGImJmIuY29udGV4dH1mdW5jdGlvbiBHayhhKXt2YXIgYj1uayhhKTtyZXR1cm4gYj9iLnN0YXRlIT09MDohMX1mdW5jdGlvbiB6aygpe3JldHVybntjdGlkOkUoNSksaXNEZXN0aW5hdGlvbjpJZig3KX19ZnVuY3Rpb24gSGsoYSxiLGMpe3ZhciBkPXprKCksZT1vaygpLmNvbnRhaW5lclthXTtlJiZlLnN0YXRlIT09M3x8KG9rKCkuY29udGFpbmVyW2FdPXtzdGF0ZToxLGNvbnRleHQ6YixwYXJlbnQ6ZH0scGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiExfSxjKSl9ZnVuY3Rpb24gSWsoYSxiLGMpe3ZhciBkPW9rKCksZT1uayhhKTtlP2Uuc3RhdGU9MTooZT17Y29udGV4dDpiLHN0YXRlOjEscGFyZW50OnprKCl9LGQuZGVzdGluYXRpb25BcnJheVthXT1bZV0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sYyl9CmZ1bmN0aW9uIEprKGEsYixjLGQpe3ZhciBlPW9rKCksZj1uayhhKTtmP2Yuc3RhdGU9MDooZj17c3RhdGU6MCx0cmFuc3BvcnRVcmw6Yixjb250ZXh0OmMscGFyZW50OnprKCl9LGUuZGVzdGluYXRpb25BcnJheVthXT1bZl0pO3BrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMH0sZCk7UCg5MSl9ZnVuY3Rpb24gS2soKXt2YXIgYT1vaygpLmNvbnRhaW5lcixiO2ZvcihiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5zdGF0ZT09PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gTGsoKXt2YXIgYT17fTtHYihvaygpLmRlc3RpbmF0aW9uLGZ1bmN0aW9uKGIsYyl7KGM9PW51bGw/dm9pZCAwOmMuc3RhdGUpPT09MCYmKGFbYl09Yyl9KTtHYihvaygpLmRlc3RpbmF0aW9uQXJyYXksZnVuY3Rpb24oYixjKXt2YXIgZD1jWzBdOyhkPT1udWxsP3ZvaWQgMDpkLnN0YXRlKT09PTAmJihhW2JdPWQpfSk7cmV0dXJuIGF9CmZ1bmN0aW9uIE1rKGEpe3JldHVybiEhKGEmJmEucGFyZW50JiZhLmNvbnRleHQmJmEuY29udGV4dC5zb3VyY2U9PT0xJiZhLnBhcmVudC5jdGlkLmluZGV4T2YoIkdUTS0iKSE9PTApfWZ1bmN0aW9uIE5rKCl7Zm9yKHZhciBhPW9rKCksYj1tKHdrKCkpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKGEuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVyc1tjLnZhbHVlXSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIE9rPWZ1bmN0aW9uKCl7fTtPay5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIn07dmFyIFBrPW5ldyBPazt2YXIgWGs9ZnVuY3Rpb24oKXt0aGlzLnN0b3JhZ2U9WWEoKX07WGsucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIpfTtYay5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O3ZhciBZaztmdW5jdGlvbiBaayhhLGIpe1lrfHwoWWs9bmV3IFhrKTtZay5zZXQoYSxiKX1mdW5jdGlvbiAkayhhKXtZa3x8KFlrPW5ldyBYayk7cmV0dXJuIFlrLmdldChhKX1mdW5jdGlvbiBhbChhLGIpe1lrfHwoWWs9bmV3IFhrKTt2YXIgYz1ZaztjLnN0b3JhZ2UuaGFzKFN0cmluZyhhKSl8fGMuc3RvcmFnZS5zZXQoU3RyaW5nKGEpLGIoKSk7cmV0dXJuIGMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07ZnVuY3Rpb24gYmwoYSxiKXtmdW5jdGlvbiBjKGcpe3ZhciBoPVJqKGcpLGw9TGooaCwicHJvdG9jb2wiKSxuPUxqKGgsImhvc3QiLCEwKSxwPUxqKGgsInBvcnQiKSxxPUxqKGgsInBhdGgiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1wvJC8sIiIpO2lmKGw9PT12b2lkIDB8fGw9PT0iaHR0cCImJnA9PT0iODAifHxsPT09Imh0dHBzIiYmcD09PSI0NDMiKWw9IndlYiIscD0iZGVmYXVsdCI7cmV0dXJuW2wsbixwLHFdfWZvcih2YXIgZD1jKFN0cmluZyhhKSksZT1jKFN0cmluZyhiKSksZj0wO2Y8ZC5sZW5ndGg7ZisrKWlmKGRbZl0hPT1lW2ZdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGNsKGEpe3JldHVybiBkbChhKT8xOjB9CmZ1bmN0aW9uIGRsKGEpe3ZhciBiPWEuYXJnMCxjPWEuYXJnMTtpZihhLmFueV9vZiYmQXJyYXkuaXNBcnJheShjKSl7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPUVkKGEse30pO0VkKHthcmcxOmNbZF0sYW55X29mOnZvaWQgMH0sZSk7aWYoY2woZSkpcmV0dXJuITB9cmV0dXJuITF9c3dpdGNoKGFbImZ1bmN0aW9uIl0pe2Nhc2UgIl9jbiI6cmV0dXJuIEtnKGIsYyk7Y2FzZSAiX2NzcyI6cmV0dXJuIEdnKGIsYyk7Y2FzZSAiX2V3IjpyZXR1cm4gSGcoYixjKTtjYXNlICJfZXEiOnJldHVybiBMZyhiLGMpO2Nhc2UgIl9nZSI6cmV0dXJuIE1nKGIsYyk7Y2FzZSAiX2d0IjpyZXR1cm4gT2coYixjKTtjYXNlICJfbGMiOnJldHVybiBJZyhiLGMpO2Nhc2UgIl9sZSI6cmV0dXJuIE5nKGIsYyk7Y2FzZSAiX2x0IjpyZXR1cm4gUGcoYixjKTtjYXNlICJfcmUiOnJldHVybiBKZyhiLGMsYS5pZ25vcmVfY2FzZSxhbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSk7Y2FzZSAiX3N3IjpyZXR1cm4gUWcoYiwKYyk7Y2FzZSAiX3VtIjpyZXR1cm4gYmwoYixjKX1yZXR1cm4hMX07ZnVuY3Rpb24gZWwoYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgZjtzd2l0Y2goYVswXSl7Y2FzZSAiZnVuY3Rpb25faWQiOnJldHVybiBhWzFdO2Nhc2UgImxpc3QiOmY9W107Zm9yKHZhciBnPTE7ZzxhLmxlbmd0aDtnKyspZi5wdXNoKGVsKGFbZ10sYixjLGQsZSkpO3JldHVybiBmO2Nhc2UgIm1hY3JvIjp2YXIgaD1kW2FbMV1dO3JldHVybiBoP2guZXZhbHVhdGUoYixlKTp2b2lkIDA7Y2FzZSAibWFwIjpmPXt9O2Zvcih2YXIgbD0xO2w8YS5sZW5ndGg7bCs9MilmW2VsKGFbbF0sYixjLGQsZSldPWVsKGFbbCsxXSxiLGMsZCxlKTtyZXR1cm4gZjtjYXNlICJ0ZW1wbGF0ZSI6Zj1bXTtmb3IodmFyIG49ITEscD0xO3A8YS5sZW5ndGg7cCsrKXt2YXIgcT1lbChhW3BdLGIsYyxkLGUpO2YucHVzaChxKX1yZXR1cm4gZi5qb2luKCIiKTtjYXNlICJlc2NhcGUiOmY9ZWwoYVsxXSxiLGMsZCxlKTtmPVN0cmluZyhmKTtmb3IodmFyIHk9Mjt5PGEubGVuZ3RoO3krKylVaVthW3ldXSYmKGY9VWlbYVt5XV0oZikpO3JldHVybiBmO2Nhc2UgInRhZyI6dmFyIHo9YVsxXTtpZighY1t6XSl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHJlc29sdmUgdGFnIHJlZmVyZW5jZSAiKwp6KyIuIik7cmV0dXJue2JvOmFbMl0saW5kZXg6en07Y2FzZSAiemIiOnZhciBDPXt9LEQ9KENbR2YuWWJdPWFbMV0sQy5hcmcwPWVsKGFbMl0sYixjLGQsZSksQy5hcmcxPWVsKGFbM10sYixjLGQsZSksQy5pZ25vcmVfY2FzZT1lbChhWzVdLGIsYyxkLGUpLEMpLEk9Y2woRCksRz0hIWFbNF07cmV0dXJuIEd8fEkhPT0yP0chPT0oST09PTEpOm51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBleHBhbmQgdW5rbm93biBWYWx1ZSB0eXBlOiAiK2FbMF0rIi4iKTt9fXJldHVybiBhfTtmdW5jdGlvbiBmbChhKXtyZXR1cm4gYSYmYS5pbmRleE9mKCJwZW5kaW5nOiIpPT09MD9nbChhLnN1YnN0cig4KSk6ITF9ZnVuY3Rpb24gZ2woYSl7aWYoYT09bnVsbHx8YS5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBiPU51bWJlcihhKSxjPU5iKCk7cmV0dXJuIGI8YyszRTUmJmI+Yy05RTV9O3ZhciBobD0hMSxpbD0hMSxqbD0hMSxrbD0wLGxsPSExLG1sPXZvaWQgMCxubD1bXTtmdW5jdGlvbiBvbChhKXtpZihrbD09PTApbGwmJm5sJiYobmwubGVuZ3RoPj0xMDAmJm5sLnNoaWZ0KCksbmwucHVzaChhKSk7ZWxzZSBpZihwbCgpKXt2YXIgYj1FKDQxKSxjPU1jKGIsW10pO2MubGVuZ3RoPj01MCYmYy5zaGlmdCgpO2MucHVzaChhKX19ZnVuY3Rpb24gcWwoKXtpbHx8KHJsKCksc2woa2wpKX1mdW5jdGlvbiBzbChhKXtpZighaWx8fGtsPT09MiYmYT09PTEpaWYoaWw9ITAsamwmJihhZChCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwpLGpsPSExKSxtbCE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KG1sKSxtbD12b2lkIDApLGtsPWEsYT09PTEpe3ZhciBiPW5sO25sPXZvaWQgMDtiPT1udWxsfHxiLmZvckVhY2goZnVuY3Rpb24oYyl7b2woYyl9KX19CmZ1bmN0aW9uIHJsKCl7dmFyIGE9Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJvZC1wcmVzZW50Iik7Z2woYSk/a2w9MTohZmwoYSl8fGhsfHxqbD9rbD0yOihqbD0hMCwkYyhCLCJUQVByb2REZWJ1Z1NpZ25hbCIscWwsITEpLG1sPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2lsfHwocmwoKSxzbChrbCkpO2hsPSEwfSwyMDApKX1mdW5jdGlvbiBwbCgpe2lmKCFsbClyZXR1cm4hMTtzd2l0Y2goa2wpe2Nhc2UgMTpjYXNlIDA6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiB0bCgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtyZXR1cm4gYS5pY3M9YS5pY3N8fG5ldyB1bH12YXIgdWw9ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9e307dGhpcy53YWl0UGVyaW9kVGltZWRPdXQ9dGhpcy53YXNTZXRMYXRlPXRoaXMuYWNjZXNzZWRBbnk9dGhpcy5hY2Nlc3NlZERlZmF1bHQ9dGhpcy51c2VkSW1wbGljaXQ9dGhpcy51c2VkVXBkYXRlPXRoaXMudXNlZERlZmF1bHQ9dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMTt0aGlzLkg9W119Owp1bC5wcm90b3R5cGUuZGVmYXVsdD1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHwhdGhpcy5hY2Nlc3NlZERlZmF1bHQmJiF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWREZWZhdWx0PXRoaXMuYWN0aXZlPSEwO3NiKCJUQUdHSU5HIiwxOSk7Yj09bnVsbD9zYigiVEFHR0lORyIsMTgpOnZsKHRoaXMsYSxiPT09ImdyYW50ZWQiLGMsZCxlLGYsZyl9O3VsLnByb3RvdHlwZS53YWl0Rm9yVXBkYXRlPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl2bCh0aGlzLGFbZF0sdm9pZCAwLHZvaWQgMCwiIiwiIixiLGMpfTsKdmFyIHZsPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9YS5lbnRyaWVzLG49bFtiXXx8e30scD1uLnJlZ2lvbixxPWQmJnpiKGQpP2QudG9VcHBlckNhc2UoKTp2b2lkIDA7ZT1lLnRvVXBwZXJDYXNlKCk7Zj1mLnRvVXBwZXJDYXNlKCk7aWYoZT09PSIifHxxPT09Znx8KHE9PT1lP3AhPT1mOiFxJiYhcCkpe3ZhciByPSEhKGcmJmc+MCYmbi51cGRhdGU9PT12b2lkIDApLHQ9e3JlZ2lvbjpxLGRlY2xhcmVfcmVnaW9uOm4uZGVjbGFyZV9yZWdpb24saW1wbGljaXQ6bi5pbXBsaWNpdCxkZWZhdWx0OmMhPT12b2lkIDA/YzpuLmRlZmF1bHQsZGVjbGFyZTpuLmRlY2xhcmUsdXBkYXRlOm4udXBkYXRlLHF1aWV0OnJ9O2lmKGUhPT0iInx8bi5kZWZhdWx0IT09ITEpbFtiXT10O3ImJkEuc2V0VGltZW91dChmdW5jdGlvbigpe2xbYl09PT10JiZ0LnF1aWV0JiYoc2IoIlRBR0dJTkciLDIpLGEud2FpdFBlcmlvZFRpbWVkT3V0PSEwLGEuY2xlYXJUaW1lb3V0KGIsdm9pZCAwLGgpLAphLm5vdGlmeUxpc3RlbmVycygpKX0sZyl9fTtrPXVsLnByb3RvdHlwZTtrLmNsZWFyVGltZW91dD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W2FdLGU9Yy5kZWxlZ2F0ZWRDb25zZW50VHlwZXMsZjtmb3IoZiBpbiBlKWUuaGFzT3duUHJvcGVydHkoZikmJmVbZl09PT1hJiZkLnB1c2goZik7dmFyIGc9dGhpcy5lbnRyaWVzW2FdfHx7fSxoPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyk7aWYoZy5xdWlldCl7Zy5xdWlldD0hMTtmb3IodmFyIGw9bShkKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl3bCh0aGlzLG4udmFsdWUpfWVsc2UgaWYoYiE9PXZvaWQgMCYmaCE9PWIpZm9yKHZhciBwPW0oZCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpd2wodGhpcyxxLnZhbHVlKX07CmsudXBkYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnVzZWREZWZhdWx0fHx0aGlzLnVzZWREZWNsYXJlfHx0aGlzLnVzZWRVcGRhdGV8fCF0aGlzLmFjY2Vzc2VkQW55fHwodGhpcy53YXNTZXRMYXRlPSEwKTt0aGlzLnVzZWRVcGRhdGU9dGhpcy5hY3RpdmU9ITA7aWYoYiE9bnVsbCl7dmFyIGQ9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKSxlPXRoaXMuZW50cmllczsoZVthXT1lW2FdfHx7fSkudXBkYXRlPWI9PT0iZ3JhbnRlZCI7dGhpcy5jbGVhclRpbWVvdXQoYSxkLGMpfX07CmsuZGVjbGFyZT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITA7dmFyIGY9dGhpcy5lbnRyaWVzLGc9ZlthXXx8e30saD1nLmRlY2xhcmVfcmVnaW9uLGw9YyYmemIoYyk/Yy50b1VwcGVyQ2FzZSgpOnZvaWQgMDtkPWQudG9VcHBlckNhc2UoKTtlPWUudG9VcHBlckNhc2UoKTtpZihkPT09IiJ8fGw9PT1lfHwobD09PWQ/aCE9PWU6IWwmJiFoKSl7dmFyIG49e3JlZ2lvbjpnLnJlZ2lvbixkZWNsYXJlX3JlZ2lvbjpsLGRlY2xhcmU6Yj09PSJncmFudGVkIixpbXBsaWNpdDpnLmltcGxpY2l0LGRlZmF1bHQ6Zy5kZWZhdWx0LHVwZGF0ZTpnLnVwZGF0ZSxxdWlldDpnLnF1aWV0fTtpZihkIT09IiJ8fGcuZGVjbGFyZSE9PSExKWZbYV09bn19OwprLmltcGxpY2l0PWZ1bmN0aW9uKGEsYil7dGhpcy51c2VkSW1wbGljaXQ9ITA7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXT1jW2FdfHx7fTtkLmltcGxpY2l0IT09ITEmJihkLmltcGxpY2l0PWI9PT0iZ3JhbnRlZCIpfTsKay5nZXRDb25zZW50U3RhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdfHx7fSxlPWQudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgZj1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2FdO2lmKGY9PT0zKXJldHVybiAxO2lmKGY9PT0yKXJldHVybiAyfWVsc2UgaWYoZT1kLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYj09bnVsbD8wOmIuZGVsZWdhdGVkQ29uc2VudFR5cGVzLmhhc093blByb3BlcnR5KGEpKXt2YXIgZz1iLmRlbGVnYXRlZENvbnNlbnRUeXBlc1thXSxoPWNbZ118fHt9O2U9aC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBsPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbZ107aWYobD09PTMpcmV0dXJuIDE7aWYobD09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPQpoLmRlZmF1bHQsZSE9PXZvaWQgMClyZXR1cm4gZT8xOjJ9ZT1kLmRlY2xhcmU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7ZT1kLmltcGxpY2l0O3JldHVybiBlIT09dm9pZCAwP2U/Mzo0OjB9O2suYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt0aGlzLkgucHVzaCh7Y29uc2VudFR5cGVzOmEsaWU6Yn0pfTt2YXIgd2w9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGEuSC5sZW5ndGg7KytjKXt2YXIgZD1hLkhbY107QXJyYXkuaXNBcnJheShkLmNvbnNlbnRUeXBlcykmJmQuY29uc2VudFR5cGVzLmluZGV4T2YoYikhPT0tMSYmKGQueG89ITApfX07dWwucHJvdG90eXBlLm5vdGlmeUxpc3RlbmVycz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8dGhpcy5ILmxlbmd0aDsrK2Mpe3ZhciBkPXRoaXMuSFtjXTtpZihkLnhvKXtkLnhvPSExO3RyeXtkLmllKHtjb25zZW50RXZlbnRJZDphLGNvbnNlbnRQcmlvcml0eUlkOmJ9KX1jYXRjaChlKXt9fX19O3ZhciB4bD0hMSx5bD0hMSx6bD17fSxBbD17ZGVsZWdhdGVkQ29uc2VudFR5cGVzOnt9LGNvcmVQbGF0Zm9ybVNlcnZpY2VzOnt9LHVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxzZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLGNvbnRhaW5lclNjb3BlZERlZmF1bHRzOih6bC5hZF9zdG9yYWdlPTEsemwuYW5hbHl0aWNzX3N0b3JhZ2U9MSx6bC5hZF91c2VyX2RhdGE9MSx6bC5hZF9wZXJzb25hbGl6YXRpb249MSx6bCksdXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzOiExfTtmdW5jdGlvbiBCbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuKHpiKGEpP1thXTphKS5ldmVyeShmdW5jdGlvbihjKXtzd2l0Y2goYi5nZXRDb25zZW50U3RhdGUoYyxBbCkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOmNhc2UgNDpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0pfQpmdW5jdGlvbiBDbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIGIuZ2V0Q29uc2VudFN0YXRlKGEsQWwpfWZ1bmN0aW9uIERsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4hKGIuZW50cmllc1thXXx8e30pLnF1aWV0fWZ1bmN0aW9uIEVsKCl7aWYoIVlmKDUpKXJldHVybiExO3ZhciBhPXRsKCk7YS5hY2Nlc3NlZEFueT0hMDtpZihhLmFjdGl2ZSlyZXR1cm4hMDtpZighQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXJldHVybiExO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYy52YWx1ZV0hPT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZsKGEsYil7dGwoKS5hZGRMaXN0ZW5lcihhLGIpfQpmdW5jdGlvbiBHbChhLGIpe3RsKCkubm90aWZ5TGlzdGVuZXJzKGEsYil9ZnVuY3Rpb24gSGwoYSxiKXtpZihiLmV2ZXJ5KERsKSlhKHt9KTtlbHNle3ZhciBjPSExO0ZsKGIsZnVuY3Rpb24oZCl7IWMmJmIuZXZlcnkoRGwpJiYoYz0hMCxhKGQpKX0pfX0KZnVuY3Rpb24gSWwoYSxiKXt2YXIgYz16YihiKT9bYl06YixkPXt9LGU9ZnVuY3Rpb24oKXtyZXR1cm4gYy5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIEJsKGgpJiYhZFtoXX0pfSxmPWUoKTtpZihmLmxlbmd0aCE9PWMubGVuZ3RoKXt2YXIgZz1mdW5jdGlvbihoKXtmb3IodmFyIGw9bShoKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSlkW24udmFsdWVdPSEwfTtnKGYpO0ZsKGMsZnVuY3Rpb24oaCl7ZnVuY3Rpb24gbChxKXtxLmxlbmd0aCE9PTAmJihnKHEpLGguY29uc2VudFR5cGVzPXEsYShoKSl9dmFyIG49ZSgpO2lmKG4ubGVuZ3RoIT09MCl7dmFyIHA9T2JqZWN0LmtleXMoZCkubGVuZ3RoO24ubGVuZ3RoK3A+PWMubGVuZ3RoP2wobik6QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bChlKCkpfSw1MDApfX0pfX07dmFyIEpsPSExO2Z1bmN0aW9uIEtsKGEsYil7dmFyIGM9d2soKSxkPXRrKCk7RSgyNik7dmFyIGU9SWYoNDcpPzA6SWYoNTApPzE6MyxmPVhqKCk7aWYocGwoKSl7dmFyIGc9TGwoIklOSVQiKTtnLmNvbnRhaW5lckxvYWRTb3VyY2U9YSE9bnVsbD9hOjA7YiYmKGcucGFyZW50VGFyZ2V0UmVmZXJlbmNlPWIpO2cuYWxpYXNlcz1jO2cuZGVzdGluYXRpb25zPWQ7ZSE9PXZvaWQgMCYmKGcuZ3RnPXtzb3VyY2U6ZSxtUGF0aDpmIT1udWxsP2Y6IiJ9KTtvbChnKX19CmZ1bmN0aW9uIE1sKGEpe3ZhciBiLGMsZCxlO2I9YS50YXJnZXRJZDtjPWEucmVxdWVzdDtkPWEucWI7ZT1hLmlzQmF0Y2hlZDt2YXIgZjtpZihmPXBsKCkpe3ZhciBnO2E6c3dpdGNoKGMuZW5kcG9pbnQpe2Nhc2UgNjg6Y2FzZSA2OTpjYXNlIDE5OmNhc2UgNjI6Y2FzZSA0NzpnPSEwO2JyZWFrIGE7ZGVmYXVsdDpnPSExfWY9IWd9aWYoZil7dmFyIGg9TGwoIkdUQUdfSElUIix7ZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTtoLnRhcmdldD1iO2gudXJsPWMudXJsO2MucG9zdEJvZHkmJihoLnBvc3RCb2R5PWMucG9zdEJvZHkpO2gucGFyYW1ldGVyRW5jb2Rpbmc9Yy5wYXJhbWV0ZXJFbmNvZGluZztoLmVuZHBvaW50PWMuZW5kcG9pbnQ7ZSE9PXZvaWQgMCYmKGguaXNCYXRjaGVkPWUpO29sKGgpfX1mdW5jdGlvbiBObChhKXtwbCgpJiZNbChhKCkpfQpmdW5jdGlvbiBMbChhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2IuZ3JvdXBJZD1PbDt2YXIgYyxkPWIsZT1QbCxmPXtwdWJsaWNJZDpRbH07ZC5ldmVudElkIT1udWxsJiYoZi5ldmVudElkPWQuZXZlbnRJZCk7ZC5wcmlvcml0eUlkIT1udWxsJiYoZi5wcmlvcml0eUlkPWQucHJpb3JpdHlJZCk7ZC5ldmVudE5hbWUmJihmLmV2ZW50TmFtZT1kLmV2ZW50TmFtZSk7ZC5ncm91cElkJiYoZi5ncm91cElkPWQuZ3JvdXBJZCk7ZC50YWdOYW1lJiYoZi50YWdOYW1lPWQudGFnTmFtZSk7Yz17Y29udGFpbmVyUHJvZHVjdDoiR1RNIixrZXk6Zix2ZXJzaW9uOmUsbWVzc2FnZVR5cGU6YX07Yy5jb250YWluZXJQcm9kdWN0PUpsPyJPR1QiOiJHVE0iO2Mua2V5LnRhcmdldFJlZj1SbDtyZXR1cm4gY312YXIgUWw9IiIsUGw9IiIsUmw9e2N0aWQ6IiIsaXNEZXN0aW5hdGlvbjohMX0sT2w7CmZ1bmN0aW9uIFNsKGEpe3ZhciBiPUUoNSksYz1JZig0NSksZD1zaygpLGU9RSg2KSxmPUUoMSk7RSgyMyk7a2w9MDtsbD0hMDtybCgpO09sPWE7UWw9YjtQbD1mO0psPWM7Umw9e2N0aWQ6Yixpc0Rlc3RpbmF0aW9uOmQsY2Fub25pY2FsSWQ6ZX19O2Z1bmN0aW9uIFRsKGEsYixjLGQpe2lmKHBsKCkpe3ZhciBlPWIuTTtNbCh7dGFyZ2V0SWQ6ZHx8W2IudGFyZ2V0LmRlc3RpbmF0aW9uSWRdLHJlcXVlc3Q6e3VybDphLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6Y30scWI6e2V2ZW50SWQ6ZS5ldmVudElkLHByaW9yaXR5SWQ6ZS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX07ZnVuY3Rpb24gVWwoYSxiLGMpe3ZhciBkPSJodHRwczovLyIrYStiO3JldHVybiBjP2Z1bmN0aW9uKCl7cmV0dXJuIFdqKCk/WGooKStjK2I6ZH06ZnVuY3Rpb24oKXtyZXR1cm4gZH19O3ZhciBWbD17fSxXbD0oVmxbMjJdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvYXMvZCIpLFZsWzYwXT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZ3MiKSxWbFsyM109VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2cvZCIpLFZsKTt2YXIgWGw9e30sWWw9KFhsWzVdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs2Nl09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC91Y29udmVyc2lvbiIpLFhsWzYzXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNjRdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzY1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkLzFwLWNvbnZlcnNpb24iKSxYbFs3NF09ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2FzL3AvYyJ9LFhsKTt2YXIgWmw9e30sJGw9KFpsWzQ1XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbGxlY3QiKSxabFs0Nl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb2xsZWN0IiwiL2dzIiksWmxbNjldPVVsKCJhZC5kb3VibGVjbGljay5uZXQiLCIvY2NtL3MvY29sbGVjdCIpLFpsWzU4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabFs1N109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsKTt2YXIgYW09e30sYm09KGFtWzldPVVsKCJnb29nbGVhZHMuZy5kb3VibGVjbGljay5uZXQiLCIvcGFnZWFkL3ZpZXd0aHJvdWdoY29udmVyc2lvbiIpLGFtWzY4XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcm1rdC9jb2xsZWN0IiksYW0pO3ZhciBjbT17fSxkbT0oY21bMTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVsyMV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtWzcyXT1VbCgiZ29vZ2xlLmNvbSIsIi9wYWdlYWQvZm9ybS1kYXRhIiwiL2QiKSxjbVs3M109VWwoImdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY20pO3ZhciBlbT17fSxmbT0oZW1bNTFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi90cmF2ZWwvZmxpZ2h0cy9jbGljay9jb252ZXJzaW9uIiksZW0pO3ZhciBnbT17fSxobT0oZ21bMV09ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9hZC5kb3VibGVjbGljay5uZXQvYWN0aXZpdHk7In0sZ21bMl09ZnVuY3Rpb24oKXtyZXR1cm4oV2ooKT9YaigpOiJodHRwczovL2FkZS5nb29nbGVzeW5kaWNhdGlvbi5jb20iKSsiL2RkbS9hY3Rpdml0eSIrKE0oNDY3KT8iOyI6Ii8iKX0sZ21bM109ZnVuY3Rpb24oYSl7cmV0dXJuImh0dHBzOi8vIithLmxyKyIuZmxzLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eWk7In0sZ20pO2Z1bmN0aW9uIGltKGEpe3NiKCJIRUFMVEgiLGEpfTt2YXIgam09e2JhOntQdDoiYXdfdXNlcl9kYXRhX2NhY2hlIixvaToiY29va2llX2RlcHJlY2F0aW9uX2xhYmVsIixiaDoiZGlhZ25vc3RpY3NfcGFnZV9pZCIsb3A6ImVtZW1vIixkdToiZW1fcmVnaXN0cnkiLFNpOiJlYWIiLHJ1OiJmbF91c2VyX2RhdGFfY2FjaGUiLHR1OiJnYTRfdXNlcl9kYXRhX2NhY2hlIixMdToiaWRjX3B2X2NsYWltIixTZToiaXBfZ2VvX2RhdGFfY2FjaGUiLFhpOiJpcF9nZW9fZmV0Y2hfaW5fcHJvZ3Jlc3MiLGpuOiJuYl9kYXRhIixUcToicGFnZV9leHBlcmltZW50X2lkcyIsbG46InBsZCIsVmU6InB0X2RhdGEiLG1uOiJwdF9saXN0ZW5lcl9zZXQiLGtqOiJyZXRyeV9jb250YWluZXJzIixPaDoic2VydmljZV93b3JrZXJfZW5kcG9pbnQiLFpxOiJzaGFyZWRfdXNlcl9pZCIsYXI6InNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCIsc2o6InNoYXJlZF91c2VyX2lkX3NvdXJjZSIsYnY6ImF3aCIsaHI6InVuaXZlcnNhbF9jbGFpbV9yZWdpc3RyeSJ9fTt2YXIga209ZnVuY3Rpb24oYSl7cmV0dXJuIHRmKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYyBpbiBhKWlmKGI9PT1hW2NdJiYhL15bMC05XSskLy50ZXN0KGMpKXJldHVybiEwO3JldHVybiExfSl9KGptLmJhKTsKZnVuY3Rpb24gbG0oYSxiKXtiPWI9PT12b2lkIDA/ITE6YjtpZihrbShhKSl7dmFyIGMsZCxlPShkPShjPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSkueGNkKSE9bnVsbD9kOmMueGNkPXt9O2lmKGVbYV0pcmV0dXJuIGVbYV07aWYoYil7dmFyIGY9dm9pZCAwLGc9MSxoPXt9LGw9e3NldDpmdW5jdGlvbihuKXtmPW47bC5ub3RpZnkoKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHN1YnNjcmliZTpmdW5jdGlvbihuKXtoW1N0cmluZyhnKV09bjtyZXR1cm4gZysrfSx1bnN1YnNjcmliZTpmdW5jdGlvbihuKXt2YXIgcD1TdHJpbmcobik7cmV0dXJuIGguaGFzT3duUHJvcGVydHkocCk/KGRlbGV0ZSBoW3BdLCEwKTohMX0sbm90aWZ5OmZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXMoaCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3RyeXtoW3FdKGEsZil9Y2F0Y2gocil7fX19fTtyZXR1cm4gZVthXT1sfX19CmZ1bmN0aW9uIG1tKGEsYil7dmFyIGM9bG0oYSwhMCk7YyYmYy5zZXQoYil9ZnVuY3Rpb24gbm0oYSl7dmFyIGI7cmV0dXJuKGI9bG0oYSkpPT1udWxsP3ZvaWQgMDpiLmdldCgpfWZ1bmN0aW9uIG9tKGEsYil7dmFyIGM9bG0oYSk7aWYoIWMpe2M9bG0oYSwhMCk7aWYoIWMpcmV0dXJuO2Muc2V0KGIpfXJldHVybiBjLmdldCgpfWZ1bmN0aW9uIHBtKGEsYil7aWYodHlwZW9mIGI9PT0iZnVuY3Rpb24iKXt2YXIgYztyZXR1cm4oYz1sbShhLCEwKSk9PW51bGw/dm9pZCAwOmMuc3Vic2NyaWJlKGIpfX1mdW5jdGlvbiBxbShhLGIpe3ZhciBjPWxtKGEpO3JldHVybiBjP2MudW5zdWJzY3JpYmUoYik6ITF9O3ZhciBzbT1mdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9ITF9O3NtLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5LfHwodGhpcy5IPXRtKCksdGhpcy5IWyIwIl0mJm9tKGptLmJhLlNlLEpTT04uc3RyaW5naWZ5KHRoaXMuSCkpKX07CnZhciB4bT1mdW5jdGlvbigpe3ZhciBhPXVtLGI9dm0sYz12b2lkIDAsZD1mdW5jdGlvbigpe2MhPT12b2lkIDAmJnFtKGptLmJhLlNlLGMpO3RyeXt2YXIgZj1ubShqbS5iYS5TZSk7Yi5IPUpTT04ucGFyc2UoZil9Y2F0Y2goZyl7UCgxMjMpLGltKDIpLGIuSD17fX1iLks9ITA7YSgpfSxlPW5tKGptLmJhLlNlKTtlP2QoZSk6KGM9cG0oam0uYmEuU2UsZCksd20oKSl9LHdtPWZ1bmN0aW9uKCl7aWYoIW5tKGptLmJhLlhpKSl7bW0oam0uYmEuWGksITApO3ZhciBhPWZ1bmN0aW9uKGIpe21tKGptLmJhLlNlLGJ8fCJ7fSIpO21tKGptLmJhLlhpLCExKX07dHJ5e0EuZmV0Y2goImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vY2NtL2dlbyIse21ldGhvZDoiR0VUIixjYWNoZToibm8tc3RvcmUiLG1vZGU6ImNvcnMiLGNyZWRlbnRpYWxzOiJvbWl0In0pLnRoZW4oZnVuY3Rpb24oYil7Yi5vaz9iLnRleHQoKS50aGVuKGZ1bmN0aW9uKGMpe2EoYyl9LGZ1bmN0aW9uKCl7YSgpfSk6YSgpfSxmdW5jdGlvbigpe2EoKX0pfWNhdGNoKGIpe2EoKX19fSwKdG09ZnVuY3Rpb24oKXt2YXIgYT1FKDIyKTt0cnl7cmV0dXJuIEpTT04ucGFyc2UocWIoYSkpfWNhdGNoKGIpe3JldHVybiBQKDEyMyksaW0oMikse319fSx5bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIwIl18fCIifSx6bT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyIxIl18fCIifSxBbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiMiJdO3JldHVybiBifSxCbT1mdW5jdGlvbigpe3JldHVybiB2bS5IWyI2Il0hPT0hMX0sQ209ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjkiXTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO2I9YS5IWyI0Il18fCIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO2I9YS5IWyIzIl18fCIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7CnZhciBocD1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtiW2dwW2VdfHxlXT1hW2VdfXJldHVybiBifSxpcD1mdW5jdGlvbihhKXtyZXR1cm4hIVEoYSxILkoudmQpJiZSKGEsRi5ELlBkKT09PSIxIiYmUihhLEYuRC5IZCkhPT0iMSImJlhvKGZwKX0sanA9ZnVuY3Rpb24oYSxiKXtpZighaXAoYSkpcmV0dXJuITE7dmFyIGM9UWMoKXx8T2MoKT81ODo1NyxkPU5tKGMsaHAoYikpO1RsKGQsYSxjKTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKyImZm10PTgiLHZvaWQgMCx7UWc6ITAsbWV0aG9kOiJHRVQifSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhkKyImZm10PTMiKX0pO3JldHVybiEwfSxrcD17fSxncD0oa3AuZGw9InVybCIsa3AuZHI9CiJyZWYiLGtwLnVpZD0idXNlcklkIixrcCk7dmFyIGxwPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZD1mdW5jdGlvbihlKXtiW2VdIT1udWxsJiZiW2VdIT09IiImJihjW2VdPWJbZV0pfTtNKDQ3NCkmJmQoIl9nc2lkIik7UihhLEYuRC5IZCkhPT0iMSImJihkKCJnY2xpZCIpLGQoImdjbHNyYyIpLGQoImF1aWQiKSxkKCJkY2xpZCIpKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGgpcmV0dXJuIGQoImd0bSIpLGN9Owp2YXIgbXA9e30sbnA9KG1wW0YuRC5zYV09ImdjdSIsbXBbRi5ELlNiXT0iZ2NsZ2IiLG1wW0YuRC5sYl09ImdjbGF3IixtcFtGLkQuemZdPSJnYWRfc291cmNlIixtcFtGLkQuQWZdPSJnYWRfc291cmNlX3NyYyIsbXBbRi5ELkRkXT0iZ2NsaWQiLG1wW0YuRC5BbF09ImdjbHNyYyIsbXBbRi5ELkJmXT0iZ2JyYWlkIixtcFtGLkQuRWVdPSJ3YnJhaWQiLG1wW0YuRC5FZF09ImF1aWQiLG1wW0YuRC5CbF09ImFlIixtcFtGLkQuSGFdPW51bGwsbXBbRi5ELkRsXT0icm5kIixtcFtGLkQuSGRdPSJuY2wiLG1wW0YuRC5OZl09ImdjbGRjIixtcFtGLkQuS2RdPSJkY2xpZCIsbXBbRi5ELlZjXT0iZWRpZCIsbXBbRi5ELlViXT0iZW4iLG1wW0YuRC5LZV09ImdkcHIiLG1wW0YuRC5YY109ImdkaWQiLG1wW0YuRC5UYV09bnVsbCxtcFtGLkQuTGVdPSJfbmciLG1wW0YuRC50aF09ImdwcF9zaWQiLG1wW0YuRC51aF09ImdwcCIsbXBbRi5ELlZmXT0iX3R1IixtcFtGLkQuUWxdPSJndG1fdXAiLG1wW0YuRC5NZV09CiJmcm0iLG1wW0YuRC5QZF09ImxwcyIsbXBbRi5ELkxpXT0iZGlkIixtcFtGLkQuVWxdPSJuYXZ0IixtcFtGLkQuemFdPSJkbCIsbXBbRi5ELlVhXT0iZHIiLG1wW0YuRC5NYl09ImR0IixtcFtGLkQuYm1dPSJzY3JzcmMiLG1wW0YuRC5aZl09ImdhX3VpZCIsbXBbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IixtcFtGLkQuUWldPSJ0ZXN0b25seSIsbXBbRi5ELnJxXT0idV90eiIsbXBbRi5ELlBlXT0idG9wIixtcFtGLkQuUWVdPSJ0aWQiLG1wW0YuRC5mYl09InVpZCIsbXBbRi5ELmtnXT0idXNfcHJpdmFjeSIsbXBbRi5ELmVkXT1udWxsLG1wW0YuRC5kZV09Im5wYSIsbXApO2Z1bmN0aW9uIG9wKGEsYil7aWYoYiE9bnVsbCYmYiE9PSIiKXt2YXIgYz1iPT09ITA/IjEiOmI9PT0hMT8iMCI6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSk7aWYoU2IoYSwiXyYiKSlyZXR1cm57a2V5OmEuc3Vic3RyaW5nKDIpLHZhbHVlOmN9O3ZhciBkPW5wW2FdO2lmKGQhPT1udWxsKXJldHVybiBkP3trZXk6ZCx2YWx1ZTpjfTp7a2V5OkFiKGIpPyJlcG4uIithOiJlcC4iK2EsdmFsdWU6Y319fTtmdW5jdGlvbiBwcChhKXthPWE9PT12b2lkIDA/W106YTtyZXR1cm4geGooYSkuam9pbigifiIpfTtmdW5jdGlvbiBxcCgpe3ZhciBhPVtdLGI9TnVtYmVyKCcnKXx8MCxjPU51bWJlcignJyl8fDA7Y3x8KGM9Yi8xMDApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMjgsc3R1ZHlJZDoyMjgsZXhwZXJpbWVudElkOjEwNTE3NzE1NCxjb250cm9sSWQ6MTA1MTc3MTU1LGNvbnRyb2xJZDI6MTA1MjU1MjQ1LHByb2JhYmlsaXR5OmMsYWN0aXZlOmQsWmU6MH0pO3ZhciBlPU51bWJlcignJyl8fAowLGY9TnVtYmVyKCcnKXx8MDtmfHwoZj1lLzEwMCk7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIzNSxzdHVkeUlkOjIzNSxleHBlcmltZW50SWQ6MTA1MzU3MTUwLGNvbnRyb2xJZDoxMDUzNTcxNTEsY29udHJvbElkMjowLHByb2JhYmlsaXR5OmYsYWN0aXZlOmcsWmU6MX0pO3ZhciBoPU51bWJlcignJyl8fDAsbD1OdW1iZXIoJycpfHwKMDtsfHwobD1oLzEwMCk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NixzdHVkeUlkOjI2NixleHBlcmltZW50SWQ6MTE1NzE4NTI5LGNvbnRyb2xJZDoxMTU3MTg1MzAsY29udHJvbElkMjoxMTU3MTg1MzEscHJvYmFiaWxpdHk6bCxhY3RpdmU6bixaZTowfSk7dmFyIHA9TnVtYmVyKCcnKXx8MCxxPU51bWJlcignJyl8fAowO3F8fChxPXAvMTAwKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY3LHN0dWR5SWQ6MjY3LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjYsY29udHJvbElkOjExNTcxODUyNyxjb250cm9sSWQyOjExNTcxODUyOCxwcm9iYWJpbGl0eTpxLGFjdGl2ZTpyLFplOjB9KTtyZXR1cm4gYX07dmFyIHJwPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPW5ldyBTZXR9LHhwPWZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWI9YS5OW2Muc3R1ZHlJZF0/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHthY3RpdmU6ITB9KTpjLGU9Rmk7ZC5jb250cm9sSWQyJiZkLnByb2JhYmlsaXR5PD0uMjV8fChkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCx7Y29udHJvbElkMjowfSkpO2Uuc3R1ZGllc1tkLnN0dWR5SWRdPWQ7Yi5mb2N1c2VkJiYoYS5LW2Iuc3R1ZHlJZF09ITApO2lmKGIuWmU9PT0xKXt2YXIgZj1iLnN0dWR5SWQ7c3AoYSx0cCgpLGYpO3VwKGEsZik/dGoodWosZik6dnAoYSxmKT91ai5LW2ZdPSEwOndwKGEsZikmJih1ai5IW2ZdPSEwKX1lbHNlIGlmKGIuWmU9PT0wKXt2YXIgZz1iLnN0dWR5SWQ7c3AoYSxhLkgsZyk7dXAoYSxnKT90aih1aixnKTp2cChhLGcpP3VqLktbZ109ITA6d3AoYSxnKSYmCih1ai5IW2ddPSEwKX19LHNwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUZpO2lmKGUuc3R1ZGllc1tjXSl7dmFyIGY9ZS5zdHVkaWVzW2NdLGc9Zi5leHBlcmltZW50SWQsaD1mLnByb2JhYmlsaXR5O2lmKCEoYi5zdHVkaWVzfHx7fSlbY10pe3ZhciBsPWIuc3R1ZGllc3x8e307bFtjXT0hMDtiLnN0dWRpZXM9bDtpZighZS5zdHVkaWVzW2NdLmFjdGl2ZSlpZihlLnN0dWRpZXNbY10ucHJvYmFiaWxpdHk+LjUpSWkoYixnLGMpO2Vsc2UgaWYoIShoPD0wfHxoPjEpKXt2YXIgbj12b2lkIDA7aWYoZCl7dmFyIHA9Q2koZCsifiIrYyk7aWYocD09PSJlMiIpbj0tMTtlbHNle2Zvcih2YXIgcT1uZXcgVWludDhBcnJheShwKSxyPUJpZ0ludCgwKSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpcj1yPDxCaWdJbnQoOCl8QmlnSW50KHUudmFsdWUpO249TnVtYmVyKHIlQmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl9fUdpLnNrKGIsYyxuKX19fWlmKCFhLktbY10pe3ZhciB2PQpOaShiLGMpO3YmJndqLkguSy5hZGQodil9fSx0cD1mdW5jdGlvbigpe3JldHVybiBvbShqbS5iYS5UcSx7fSl9LHVwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gS2koYyxiKXx8S2koYS5ILGIpfSx2cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIExpKGMsYil8fExpKGEuSCxiKX0sd3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBNaShjLGIpfHxNaShhLkgsYil9LHlwOwpmdW5jdGlvbiB6cCgpe2lmKCF5cCl7dmFyIGE9eXA9bmV3IHJwLGIsYyxkPSgoYj1BKT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaGFzaCl8fCIiO2lmKGRbMF09PT0iIyImJmRbMV09PT0iXyImJmRbMl09PT0idCImJmRbM109PT0iZSImJmRbNF09PT0iPSIpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO2lmKGUpZm9yKHZhciBmPW0oZS5zcGxpdCgifiIpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9TnVtYmVyKGcudmFsdWUpO2gmJihhLk5baF09ITAsdGoodWosaCkpfX1mb3IodmFyIGw9bShxcCgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl4cChhLG4udmFsdWUpO2Zvcih2YXIgcD1bXSxxPW0oTWYoNTYpfHxbXSkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT17c3R1ZHlJZDp0WzFdLGFjdGl2ZTohIXRbMl0scHJvYmFiaWxpdHk6dFszXXx8MCxleHBlcmltZW50SWQ6dFs0XXx8CjAsY29udHJvbElkOnRbNV18fDAsY29udHJvbElkMjp0WzZdfHwwfSx2PTA7c3dpdGNoKHRbN10pe2Nhc2UgMjp2PTE7YnJlYWs7Y2FzZSAzOnY9MjticmVhaztjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDA6dj0wfXZhciB4O2E6c3dpdGNoKHUuc3R1ZHlJZCl7Y2FzZSA1Njc6Y2FzZSA0NjI6eD0hMDticmVhayBhO2RlZmF1bHQ6eD0hMX12YXIgeT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHUse1plOnYsZm9jdXNlZDp4fSk7KHkuYWN0aXZlfHx5LnByb2JhYmlsaXR5Pi41JiZ5LmV4cGVyaW1lbnRJZHx8eS5leHBlcmltZW50SWQmJnkuY29udHJvbElkKSYmcC5wdXNoKHkpfWZvcih2YXIgej1tKHApLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXhwKGEsQy52YWx1ZSl9fQpmdW5jdGlvbiBBcChhLGIpe3pwKCk7dmFyIGM9eXA7c3AoYyx0cCgpLGEsYik7dXAoYyxhKT90aih1aixhKTp2cChjLGEpP3VqLktbYV09ITA6d3AoYyxhKSYmKHVqLkhbYV09ITApfWZ1bmN0aW9uIEJwKCl7enAoKTt2YXIgYT15cCxiPXVwKGEsNTY3KTtpZihhLktbNTY3XSl7dmFyIGMsZD10cCgpOyhjPU5pKGQsNTY3KXx8TmkoYS5ILDU2NykpJiZhLlIuYWRkKGMpfXJldHVybiBifWZ1bmN0aW9uIENwKGEpe3pwKCk7dmFyIGI9bmV3IFNldCh5cC5SKTtpZihhKWZvcih2YXIgYz1RKGEsSC5KLkNoKXx8W10sZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWIuYWRkKGUudmFsdWUpO3JldHVybiBwcChbXS5jb25jYXQodyhiKSkpfTtmdW5jdGlvbiBEcChhKXt2YXIgYj1hLmxvY2F0aW9uLmhyZWY7aWYoYT09PWEudG9wKXJldHVybnt1cmw6YixJczohMH07dmFyIGM9ITEsZD1hLmRvY3VtZW50O2QmJmQucmVmZXJyZXImJihiPWQucmVmZXJyZXIsYS5wYXJlbnQ9PT1hLnRvcCYmKGM9ITApKTt2YXIgZT1hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihlKXt2YXIgZj1lW2UubGVuZ3RoLTFdLGc7ZiYmKChnPWIpPT1udWxsP3ZvaWQgMDpnLmluZGV4T2YoZikpPT09LTEmJihjPSExLGI9Zil9cmV0dXJue3VybDpiLElzOmN9fWZ1bmN0aW9uIEVwKGEpe3RyeXt2YXIgYjtpZihiPSEhYSYmYS5sb2NhdGlvbi5ocmVmIT1udWxsKWE6e3RyeXtIbihhLmZvbyk7Yj0hMDticmVhayBhfWNhdGNoKGMpe31iPSExfXJldHVybiBifWNhdGNoKGMpe3JldHVybiExfX1mdW5jdGlvbiBGcCgpe2Zvcih2YXIgYT1BLGI9YTthJiZhIT09YS5wYXJlbnQ7KWE9YS5wYXJlbnQsRXAoYSkmJihiPWEpO3JldHVybiBifTt2YXIgR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU7dmFyIGQ9bmV3IGM7YS5hcHBseShkLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7cmV0dXJuIGR9LEhwPWZ1bmN0aW9uKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPW51bGw7YygpfX19O2Z1bmN0aW9uIElwKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9O2Z1bmN0aW9uIEpwKGEpe3ZhciBiPWEuc3BsaXQoL1s/I10vKSxjPS9bP10vLnRlc3QoYSk/Ij8iK2JbMV06IiI7cmV0dXJue3prOmJbMF0scGFyYW1zOmMsZnJhZ21lbnQ6L1sjXS8udGVzdChhKT8iIyIrKGM/YlsyXTpiWzFdKToiIn19ZnVuY3Rpb24gS3AoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gamMoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGpjKGMpfQpmdW5jdGlvbiBMcChhLGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7ZyE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZyk/Zy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBlKGwsaCl9KTooYis9ZitlbmNvZGVVUklDb21wb25lbnQoaCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChnKSxmPSImIikpfXZhciBmPWIubGVuZ3RoPyImIjoiPyI7ZC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQ9T2JqZWN0LmVudHJpZXMoZCkpO0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3JldHVybiBlKGdbMV0sZ1swXSl9KTpkLmZvckVhY2goZSk7cmV0dXJuIGpjKGErYitjKX1mdW5jdGlvbiBNcChhLGIpe3ZhciBjPUpwKGtjKGEpLnRvU3RyaW5nKCkpLGQ9Yy56ay5zbGljZSgtMSk9PT0iLyI/IiI6Ii8iLGU9Yy56aytkK2VuY29kZVVSSUNvbXBvbmVudChiKTtyZXR1cm4gamMoZStjLnBhcmFtcytjLmZyYWdtZW50KX07dmFyIE5wPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEsZD0wO2Q8NTA7KytkKXt2YXIgZTt0cnl7ZT0hKCFjLmZyYW1lc3x8IWMuZnJhbWVzW2JdKX1jYXRjaChoKXtlPSExfWlmKGUpcmV0dXJuIGM7dmFyIGY7YTp7dHJ5e3ZhciBnPWMucGFyZW50O2lmKGcmJmchPT1jKXtmPWc7YnJlYWsgYX19Y2F0Y2goaCl7fWY9bnVsbH1pZighKGM9ZikpYnJlYWt9cmV0dXJuIG51bGx9LE9wPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi50b3A9PWIpcmV0dXJuIDA7aWYoYT09PXZvaWQgMD8wOmEpe3ZhciBjPWIubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGMpcmV0dXJuIGNbYy5sZW5ndGgtMV09PWIubG9jYXRpb24ub3JpZ2luPzE6Mn1yZXR1cm4gRXAoYi50b3ApPzE6Mn0sUHA9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiaW1nIil9O2Z1bmN0aW9uIFFwKGEpe2Zvcih2YXIgYj1bXSxjPUIuY29va2llLnNwbGl0KCI7IiksZD1uZXcgUmVnRXhwKCJeXFxzKiIrKGF8fCJfZ2FjIikrIl8oVUEtXFxkKy1cXGQrKT1cXHMqKC4rPylcXHMqJCIpLGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS5tYXRjaChkKTtmJiZiLnB1c2goe3VkOmZbMV0sdmFsdWU6ZlsyXSx0aW1lc3RhbXA6TnVtYmVyKGZbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1iLnNvcnQoZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gYn0KZnVuY3Rpb24gUnAoYSxiKXt2YXIgYz1RcChhKSxkPXt9O2lmKCFjfHwhYy5sZW5ndGgpcmV0dXJuIGQ7Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0udmFsdWUuc3BsaXQoIi4iKTtpZighKGZbMF0hPT0iMSJ8fGImJmYubGVuZ3RoPDN8fCFiJiZmLmxlbmd0aCE9PTMpJiZOdW1iZXIoZlsxXSkpe2RbY1tlXS51ZF18fChkW2NbZV0udWRdPVtdKTt2YXIgZz17dmVyc2lvbjpmWzBdLHRpbWVzdGFtcDpOdW1iZXIoZlsxXSkqMUUzLGdjbGlkOmZbMl19O2ImJmYubGVuZ3RoPjMmJihnLmxhYmVscz1mLnNsaWNlKDMpKTtkW2NbZV0udWRdLnB1c2goZyl9fXJldHVybiBkfTtmdW5jdGlvbiBTcChhKXtyZXR1cm4gYS5vcmlnaW4hPT0ibnVsbCJ9O3ZhciBUcD17fSxVcD0oVHAuaz17bmE6L15bXHctXSskL30sVHAuYj17bmE6L15bXHctXSskLyxuazohMH0sVHAuaT17bmE6L15bMS05XVxkKiQvfSxUcC5oPXtuYTovXlxkKyQvfSxUcC50PXtuYTovXlsxLTldXGQqJC99LFRwLmQ9e25hOi9eW0EtWmEtejAtOV8tXSskL30sVHAuaj17bmE6L15cZCskL30sVHAudT17bmE6L15bMS05XVxkKiQvfSxUcC5sPXtuYTovXlswMV0kL30sVHAubz17bmE6L15bMS05XVxkKiQvfSxUcC5nPXtuYTovXlswMV0kL30sVHAucz17bmE6L14uKyQvfSxUcC5tPXtuYTovXlswMV0kL30sVHApO3ZhciBWcD17fSxacD0oVnBbNV09e2ppOnsyOldwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJ1Il19LFZwWzRdPXtqaTp7MjpXcCxHQ0w6WHB9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsIm0iXX0sVnBbMl09e2ppOntHUzI6V3AsR1MxOllwfSxaajoiR1MyIixSaDoic29ndGpsaGQiLnNwbGl0KCIiKX0sVnApO2Z1bmN0aW9uICRwKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF07Yz09bnVsbHx8YyhlKTtpZihlKXt2YXIgZj1kLmppW2VdO2lmKGYpcmV0dXJuIGYoYSxiKX19fQpmdW5jdGlvbiBXcChhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpe3ZhciBkPWNbMl07aWYoZC5pbmRleE9mKCIkIik9PT0tMSYmZC5pbmRleE9mKCIlMjQiKSE9PS0xKXRyeXtkPWRlY29kZVVSSUNvbXBvbmVudChkKX1jYXRjaCh0KXt9dmFyIGU9e30sZj1acFtiXTtpZihmKXtmb3IodmFyIGc9Zi5SaCxoPW0oZC5zcGxpdCgiJCIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPW5bMF07aWYoZy5pbmRleE9mKHApIT09LTEpdHJ5e3ZhciBxPWRlY29kZVVSSUNvbXBvbmVudChuLnN1YnN0cmluZygxKSkscj1VcFtwXTtyJiYoci5uaz8oZVtwXT1lW3BdfHxbXSxlW3BdLnB1c2gocSkpOmVbcF09cSl9Y2F0Y2godCl7fX1yZXR1cm4gZX19fWZ1bmN0aW9uIGFxKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXJldHVybltkLlpqLGN8fCIxIixicShhLGIpXS5qb2luKCIuIil9CmZ1bmN0aW9uIGJxKGEsYil7dmFyIGM9WnBbYl07aWYoYyl7Zm9yKHZhciBkPVtdLGU9bShjLlJoKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVVwW2ddO2lmKGgpe3ZhciBsPWFbZ107aWYobCE9PXZvaWQgMClpZihoLm5rJiZBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytwLnZhbHVlKSk7ZWxzZSBkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crbCkpfX1yZXR1cm4gZC5qb2luKCIkIil9fWZ1bmN0aW9uIFhwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtiLnNoaWZ0KCk7dmFyIGM9Yi5zaGlmdCgpLGQ9Yi5zaGlmdCgpLGU9e307cmV0dXJuIGUuaz1kLGUuaT1jLGUuYj1iLGV9CmZ1bmN0aW9uIFlwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKS5zbGljZSgyKTtpZighKGIubGVuZ3RoPDV8fGIubGVuZ3RoPjcpKXt2YXIgYz17fTtyZXR1cm4gYy5zPWJbMF0sYy5vPWJbMV0sYy5nPWJbMl0sYy50PWJbM10sYy5qPWJbNF0sYy5sPWJbNV0sYy5oPWJbNl0sY319O2Z1bmN0aW9uIGNxKGEsYixjLGQpe3ZhciBlO3JldHVybihlPWRxKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09YX0sYixjLGQpW2FdKSE9bnVsbD9lOltdfWZ1bmN0aW9uIGRxKGEsYixjLGQpe3ZhciBlO2lmKGVxKGQpKXtmb3IodmFyIGY9e30sZz1TdHJpbmcoYnx8ZnEoKSkuc3BsaXQoIjsiKSxoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBsPWdbaF0uc3BsaXQoIj0iKSxuPWxbMF0udHJpbSgpO2lmKG4mJmEobikpe3ZhciBwPWwuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtwJiZjJiYocD1kZWNvZGVVUklDb21wb25lbnQocCkpO3ZhciBxPXZvaWQgMCxyPXZvaWQgMDsoKHE9Zilbcj1uXXx8KHFbcl09W10pKS5wdXNoKHApfX1lPWZ9ZWxzZSBlPXt9O3JldHVybiBlfQpmdW5jdGlvbiBncShhLGIsYyxkLGUpe2lmKGVxKGUpKXt2YXIgZj1ocShhLGQsZSk7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2lmKGYubGVuZ3RoIT09MCl7Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLkpyfSxiKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLldzfSxjKTtyZXR1cm4gZlswXX19fWZ1bmN0aW9uIGpxKGEsYixjLGQpe3ZhciBlPWZxKCksZj1BO1NwKGYpJiYoZi5kb2N1bWVudC5jb29raWU9YSk7dmFyIGc9ZnEoKTtyZXR1cm4gZSE9PWd8fGMhPT12b2lkIDAmJmNxKGIsZywhMSxkKS5pbmRleE9mKGMpPj0wfQpmdW5jdGlvbiBrcShhLGIsYyxkKXtmdW5jdGlvbiBlKHgseSx6KXtpZih6PT1udWxsKXJldHVybiBkZWxldGUgaFt5XSx4O2hbeV09ejtyZXR1cm4geCsiOyAiK3krIj0iK3p9ZnVuY3Rpb24gZih4LHkpe2lmKHk9PW51bGwpcmV0dXJuIHg7aFt5XT0hMDtyZXR1cm4geCsiOyAiK3l9aWYoIWVxKGMuTWMpKXJldHVybiAyO3ZhciBnO2I9PW51bGw/Zz1hKyI9ZGVsZXRlZDsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKTooYy5lbmNvZGUmJihiPWVuY29kZVVSSUNvbXBvbmVudChiKSksYj1scShiKSxnPWErIj0iK2IpO3ZhciBoPXt9O2c9ZShnLCJwYXRoIixjLnBhdGgpO3ZhciBsO2MuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGU/bD1jLmV4cGlyZXMudG9VVENTdHJpbmcoKTpjLmV4cGlyZXMhPW51bGwmJihsPSIiK2MuZXhwaXJlcyk7Zz1lKGcsImV4cGlyZXMiLGwpO2c9ZShnLCJtYXgtYWdlIixjLk9zKTtnPWUoZywic2FtZXNpdGUiLGMucnQpO2Muc2VjdXJlJiYKKGc9ZihnLCJzZWN1cmUiKSk7dmFyIG49Yy5kb21haW47aWYobiYmbi50b0xvd2VyQ2FzZSgpPT09ImF1dG8iKXtmb3IodmFyIHA9bXEoKSxxPXZvaWQgMCxyPSExLHQ9MDt0PHAubGVuZ3RoOysrdCl7dmFyIHU9cFt0XSE9PSJub25lIj9wW3RdOnZvaWQgMCx2PWUoZywiZG9tYWluIix1KTt2PWYodixjLmZsYWdzKTt0cnl7ZCYmZChhLGgpfWNhdGNoKHgpe3E9eDtjb250aW51ZX1yPSEwO2lmKCFucSh1LGMucGF0aCkmJmpxKHYsYSxiLGMuTWMpKXJldHVybiAwfWlmKHEmJiFyKXRocm93IHE7cmV0dXJuIDF9biYmbi50b0xvd2VyQ2FzZSgpIT09Im5vbmUiJiYoZz1lKGcsImRvbWFpbiIsbikpO2c9ZihnLGMuZmxhZ3MpO2QmJmQoYSxoKTtyZXR1cm4gbnEobixjLnBhdGgpPzE6anEoZyxhLGIsYy5NYyk/MDoxfWZ1bmN0aW9uIG9xKGEsYixjKXtjLnBhdGg9PW51bGwmJihjLnBhdGg9Ii8iKTtjLmRvbWFpbnx8KGMuZG9tYWluPSJhdXRvIik7cmV0dXJuIGtxKGEsYixjKX0KZnVuY3Rpb24gaXEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPVtdLGYsZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGw9YihoKTtsPT09Yz9kLnB1c2goaCk6Zj09PXZvaWQgMHx8bDxmPyhlPVtoXSxmPWwpOmw9PT1mJiZlLnB1c2goaCl9cmV0dXJuIGQubGVuZ3RoPjA/ZDplfWZ1bmN0aW9uIGhxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsYyksZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdLnNwbGl0KCIuIiksaD1nLnNoaWZ0KCk7aWYoIWJ8fCFofHxiLmluZGV4T2YoaCkhPT0tMSl7dmFyIGw9Zy5zaGlmdCgpO2lmKGwpe3ZhciBuPWwuc3BsaXQoIi0iKTtkLnB1c2goe0JyOmVbZl0sQ3I6Zy5qb2luKCIuIiksSnI6TnVtYmVyKG5bMF0pfHwxLFdzOk51bWJlcihuWzFdKXx8MX0pfX19cmV0dXJuIGR9ZnVuY3Rpb24gbHEoYSl7YSYmYS5sZW5ndGg+MTIwMCYmKGE9YS5zdWJzdHJpbmcoMCwxMjAwKSk7cmV0dXJuIGF9CnZhciBwcT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn0pPyQvLHFxPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pO2Z1bmN0aW9uIG5xKGEsYil7cmV0dXJuIGEhPT12b2lkIDAmJihxcS50ZXN0KEEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpfHxiPT09Ii8iJiZwcS50ZXN0KGEpKX1mdW5jdGlvbiBycShhKXtpZighYSlyZXR1cm4gMTt2YXIgYj1hO1lmKDQpJiZhPT09Im5vbmUiJiYoYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTtiPWIuaW5kZXhPZigiLiIpPT09MD9iLnN1YnN0cmluZygxKTpiO3JldHVybiBiLnNwbGl0KCIuIikubGVuZ3RofWZ1bmN0aW9uIHNxKGEpe2lmKCFhfHxhPT09Ii8iKXJldHVybiAxO2FbMF0hPT0iLyImJihhPSIvIithKTthW2EubGVuZ3RoLTFdIT09Ii8iJiYoYSs9Ii8iKTtyZXR1cm4gYS5zcGxpdCgiLyIpLmxlbmd0aC0xfQpmdW5jdGlvbiB0cShhLGIpe3ZhciBjPSIiK3JxKGEpLGQ9c3EoYik7ZD4xJiYoYys9Ii0iK2QpO3JldHVybiBjfQp2YXIgZnE9ZnVuY3Rpb24oKXt2YXIgYT1BO3JldHVybiBTcChhKT9hLmRvY3VtZW50LmNvb2tpZToiIn0sZXE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJllmKDUpPyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gRGwoYikmJkJsKGIpfSk6ITB9LG1xPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoYi5sZW5ndGg9PT00KXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKE51bWJlcihjKS50b1N0cmluZygpPT09YylyZXR1cm5bIm5vbmUiXX1mb3IodmFyIGQ9Yi5sZW5ndGgtMjtkPj0wO2QtLSlhLnB1c2goYi5zbGljZShkKS5qb2luKCIuIikpO3ZhciBlPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7cXEudGVzdChlKXx8cHEudGVzdChlKXx8YS5wdXNoKCJub25lIik7cmV0dXJuIGF9O2Z1bmN0aW9uIHVxKGEsYixjLGQpe3ZhciBlLGY9TnVtYmVyKGEucGQhPW51bGw/YS5wZDp2b2lkIDApO2YhPT0wJiYoZT1uZXcgRGF0ZSgoYnx8TmIoKSkrMUUzKihmfHw3Nzc2RTMpKSk7cmV0dXJue3BhdGg6YS5wYXRoLGRvbWFpbjphLmRvbWFpbixmbGFnczphLmZsYWdzLGVuY29kZTohIWMsZXhwaXJlczplLE1jOmR9fTt2YXIgdnE9bmV3IE1hcChbWzUsImFkX3N0b3JhZ2UiXSxbNCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV0sWzIsImFuYWx5dGljc19zdG9yYWdlIl1dKTtmdW5jdGlvbiB3cShhLGIsYyl7aWYoWnBbYl0pe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoYikpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9JHAoZy52YWx1ZSxiLGMpO2gmJmQucHVzaCh4cShoKSl9cmV0dXJuIGR9fQpmdW5jdGlvbiB5cShhKXt2YXIgYj16cTtpZihacFsyXSl7Zm9yKHZhciBjPXt9LGQ9ZHEoYSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSksZT1PYmplY3Qua2V5cyhkKS5zb3J0KCksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9bShkW2hdKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9JHAobi52YWx1ZSwyLGIpO3AmJihjW2hdfHwoY1toXT1bXSksY1toXS5wdXNoKHhxKHApKSl9cmV0dXJuIGN9fWZ1bmN0aW9uIEFxKGEsYixjLGQsZSl7ZD1kfHx7fTt2YXIgZj10cShkLmRvbWFpbixkLnBhdGgpLGc9YXEoYixjLGYpO2lmKCFnKXJldHVybiAxO3ZhciBoPXVxKGQsZSx2b2lkIDAsdnEuZ2V0KGMpKTtyZXR1cm4gb3EoYSxnLGgpfWZ1bmN0aW9uIEJxKGEsYil7dmFyIGM9Yi5uYTtyZXR1cm4gdHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoYSk6Yy50ZXN0KGEpfQpmdW5jdGlvbiB4cShhKXtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhKSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17QWc6dm9pZCAwfSxjPWIubmV4dCgpKXt2YXIgZT1jLnZhbHVlLGY9YVtlXTtkLkFnPVVwW2VdO2QuQWc/ZC5BZy5uaz9hW2VdPUFycmF5LmlzQXJyYXkoZik/Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBCcShoLGcuQWcpfX0oZCkpOnZvaWQgMDp0eXBlb2YgZj09PSJzdHJpbmciJiZCcShmLGQuQWcpfHwoYVtlXT12b2lkIDApOmFbZV09dm9pZCAwfXJldHVybiBhfTt2YXIgQ3E7ZnVuY3Rpb24gRHEoKXtmdW5jdGlvbiBhKGcpe2MoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfWZ1bmN0aW9uIGIoZyl7ZChnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9dmFyIGM9RXEsZD1GcSxlPUdxKCk7aWYoIWUuaW5pdCl7JGMoQiwibW91c2Vkb3duIixhKTskYyhCLCJrZXl1cCIsYSk7JGMoQiwic3VibWl0IixiKTt2YXIgZj1IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdDtIVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdD1mdW5jdGlvbigpe2QodGhpcyk7Zi5jYWxsKHRoaXMpfTtlLmluaXQ9ITB9fWZ1bmN0aW9uIEhxKGEsYixjLGQsZSl7dmFyIGY9e2NhbGxiYWNrOmEsZG9tYWluczpiLGZyYWdtZW50OmM9PT0yLHBsYWNlbWVudDpjLGZvcm1zOmQsc2FtZUhvc3Q6ZX07R3EoKS5kZWNvcmF0b3JzLnB1c2goZil9CmZ1bmN0aW9uIElxKGEsYixjKXtmb3IodmFyIGQ9R3EoKS5kZWNvcmF0b3JzLGU9e30sZj0wO2Y8ZC5sZW5ndGg7KytmKXt2YXIgZz1kW2ZdLGg7aWYoaD0hY3x8Zy5mb3JtcylhOnt2YXIgbD1nLmRvbWFpbnMsbj1hLHA9ISFnLnNhbWVIb3N0O2lmKGwmJihwfHxuIT09Qi5sb2NhdGlvbi5ob3N0bmFtZSkpZm9yKHZhciBxPTA7cTxsLmxlbmd0aDtxKyspaWYobFtxXWluc3RhbmNlb2YgUmVnRXhwKXtpZihsW3FdLnRlc3Qobikpe2g9ITA7YnJlYWsgYX19ZWxzZSBpZihuLmluZGV4T2YobFtxXSk+PTB8fHAmJmxbcV0uaW5kZXhPZihuKT49MCl7aD0hMDticmVhayBhfWg9ITF9aWYoaCl7dmFyIHI9Zy5wbGFjZW1lbnQ7cj09PXZvaWQgMCYmKHI9Zy5mcmFnbWVudD8yOjEpO3I9PT1iJiZRYihlLGcuY2FsbGJhY2soKSl9fXJldHVybiBlfQpmdW5jdGlvbiBHcSgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEuZ2w7YiYmYi5kZWNvcmF0b3JzfHwoYj17ZGVjb3JhdG9yczpbXX0sYS5nbD1iKTtyZXR1cm4gYn07dmFyIEpxPS8oLio/KVwqKC4qPylcKiguKikvLEtxPS9eaHR0cHM/OlwvXC8oW15cL10qPylcLj9jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyguKikvLExxPS9eKD86d3d3XC58bVwufGFtcFwuKSsvLE1xPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIE5xKGEpe3ZhciBiPU1xLmV4ZWMoYSk7aWYoYilyZXR1cm57aGs6YlsxXSxxdWVyeTpiWzJdLGZyYWdtZW50OmJbM119fWZ1bmN0aW9uIE9xKGEpe3JldHVybiBuZXcgUmVnRXhwKCIoLio/KShefCYpIithKyI9KFteJl0qKSY/KC4qKSIpfQpmdW5jdGlvbiBQcShhLGIpe3ZhciBjPVtIYy51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLEhjLnVzZXJMYW5ndWFnZXx8SGMubGFuZ3VhZ2UsTWF0aC5mbG9vcihOYigpLzYwLzFFMyktKGI9PT12b2lkIDA/MDpiKSxhXS5qb2luKCIqIiksZDtpZighKGQ9Q3EpKXtmb3IodmFyIGU9QXJyYXkoMjU2KSxmPTA7ZjwyNTY7ZisrKXtmb3IodmFyIGc9ZixoPTA7aDw4O2grKylnPWcmMT9nPj4+MV4zOTg4MjkyMzg0Omc+Pj4xO2VbZl09Z31kPWV9Q3E9ZDtmb3IodmFyIGw9NDI5NDk2NzI5NSxuPTA7bjxjLmxlbmd0aDtuKyspbD1sPj4+OF5DcVsobF5jLmNoYXJDb2RlQXQobikpJjI1NV07cmV0dXJuKChsXi0xKT4+PjApLnRvU3RyaW5nKDM2KX0KZnVuY3Rpb24gUXEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPVJqKEEubG9jYXRpb24uaHJlZiksZD1jLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZT1JaihkLCJfZ2wiLCExLCEwKXx8IiI7Yi5xdWVyeT1ScShlKXx8e307dmFyIGY9TGooYywiZnJhZ21lbnQiKSxnO3ZhciBoPS0xO2lmKFNiKGYsIl9nbD0iKSloPTQ7ZWxzZXt2YXIgbD1mLmluZGV4T2YoIiZfZ2w9Iik7bD4wJiYoaD1sKzMrMil9aWYoaDwwKWc9dm9pZCAwO2Vsc2V7dmFyIG49Zi5pbmRleE9mKCImIixoKTtnPW48MD9mLnN1YnN0cmluZyhoKTpmLnN1YnN0cmluZyhoLG4pfWIuZnJhZ21lbnQ9UnEoZ3x8IiIpfHx7fTthJiZTcShjLGQsZil9fWZ1bmN0aW9uIFRxKGEsYil7dmFyIGM9T3EoYSkuZXhlYyhiKSxkPWI7aWYoYyl7dmFyIGU9Y1syXSxmPWNbNF07ZD1jWzFdO2YmJihkPWQrZStmKX1yZXR1cm4gZH0KZnVuY3Rpb24gU3EoYSxiLGMpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgbD1UcSgiX2dsIixnKTtsLmxlbmd0aCYmKGw9aCtsKTtyZXR1cm4gbH1pZihHYyYmR2MucmVwbGFjZVN0YXRlKXt2YXIgZT1PcSgiX2dsIik7aWYoZS50ZXN0KGIpfHxlLnRlc3QoYykpe3ZhciBmPUxqKGEsInBhdGgiKTtiPWQoYiwiPyIpO2M9ZChjLCIjIik7R2MucmVwbGFjZVN0YXRlKHt9LCIiLCIiK2YrYitjKX19fWZ1bmN0aW9uIFVxKGEsYil7dmFyIGM9UXEoISFiKSxkPUdxKCk7ZC5kYXRhfHwoZC5kYXRhPXtxdWVyeTp7fSxmcmFnbWVudDp7fX0sYyhkLmRhdGEpKTt2YXIgZT17fSxmPWQuZGF0YTtmJiYoUWIoZSxmLnF1ZXJ5KSxhJiZRYihlLGYuZnJhZ21lbnQpKTtyZXR1cm4gZX0KdmFyIFJxPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1WcShhLDMpO2lmKGIhPT12b2lkIDApe2Zvcih2YXIgYz17fSxkPWI/Yi5zcGxpdCgiKiIpOltdLGU9MDtlKzE8ZC5sZW5ndGg7ZSs9Mil7dmFyIGY9ZFtlXSxnPXFiKGRbZSsxXSk7Y1tmXT1nfXNiKCJUQUdHSU5HIiw2KTtyZXR1cm4gY319Y2F0Y2goaCl7c2IoIlRBR0dJTkciLDgpfX07ZnVuY3Rpb24gVnEoYSxiKXtpZihhKXt2YXIgYzthOntmb3IodmFyIGQ9YSxlPTA7ZTwzOysrZSl7dmFyIGY9SnEuZXhlYyhkKTtpZihmKXtjPWY7YnJlYWsgYX1kPUtqKGQpfHwiIn1jPXZvaWQgMH12YXIgZz1jO2lmKGcmJmdbMV09PT0iMSIpe3ZhciBoPWdbM10sbDthOntmb3IodmFyIG49Z1syXSxwPTA7cDxiOysrcClpZihuPT09UHEoaCxwKSl7bD0hMDticmVhayBhfWw9ITF9aWYobClyZXR1cm4gaDtzYigiVEFHR0lORyIsNyl9fX0KZnVuY3Rpb24gV3EoYSxiLGMsZCxlKXtmdW5jdGlvbiBmKHApe3A9VHEoYSxwKTt2YXIgcT1wLmNoYXJBdChwLmxlbmd0aC0xKTtwJiZxIT09IiYiJiYocCs9IiYiKTtyZXR1cm4gcCtufWQ9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBnPU5xKGMpO2lmKCFnKXJldHVybiIiO3ZhciBoPWcucXVlcnl8fCIiLGw9Zy5mcmFnbWVudHx8IiIsbj1hKyI9IitiO2Q/bC5zdWJzdHJpbmcoMSkubGVuZ3RoIT09MCYmZXx8KGw9IiMiK2YobC5zdWJzdHJpbmcoMSkpKTpoPSI/IitmKGguc3Vic3RyaW5nKDEpKTtyZXR1cm4iIitnLmhrK2grbH0KZnVuY3Rpb24gWHEoYSxiKXtmdW5jdGlvbiBjKG4scCxxKXt2YXIgcjthOntmb3IodmFyIHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpKXtyPSEwO2JyZWFrIGF9cj0hMX1pZihyKXt2YXIgdSx2PVtdLHg7Zm9yKHggaW4gbilpZihuLmhhc093blByb3BlcnR5KHgpKXt2YXIgeT1uW3hdO3khPT12b2lkIDAmJnk9PT15JiZ5IT09bnVsbCYmeS50b1N0cmluZygpIT09IltvYmplY3QgT2JqZWN0XSImJih2LnB1c2goeCksdi5wdXNoKHBiKFN0cmluZyh5KSkpKX12YXIgej12LmpvaW4oIioiKTt1PVsiMSIsUHEoeiksel0uam9pbigiKiIpO2Q/KFlmKDMpfHxZZigxKXx8IXApJiZZcSgiX2dsIix1LGEscCxxKTpacSgiX2dsIix1LGEscCxxKX19dmFyIGQ9KGEudGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk9PT0iRk9STSIsZT1JcShiLDEsZCksZj1JcShiLDIsZCksZz1JcShiLDQsZCksaD1JcShiLDMsZCk7YyhlLCExLCExKTtjKGYsITAsITEpO1lmKDEpJiZjKGcsITAsITApO2Zvcih2YXIgbCBpbiBoKWguaGFzT3duUHJvcGVydHkobCkmJgokcShsLGhbbF0sYSl9ZnVuY3Rpb24gJHEoYSxiLGMpe2MudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImEiP1pxKGEsYixjKTpjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJmb3JtIiYmWXEoYSxiLGMpfWZ1bmN0aW9uIFpxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY7aWYoZj1jLmhyZWYpe3ZhciBnO2lmKCEoZz1kKSl7dmFyIGg9QS5sb2NhdGlvbi5ocmVmLGw9TnEoYy5ocmVmKSxuPU5xKGgpO2c9IShsJiZuJiZsLmhrPT09bi5oayYmbC5xdWVyeT09PW4ucXVlcnkmJmwuZnJhZ21lbnQpfWY9Z31pZihmKXt2YXIgcD1XcShhLGIsYy5ocmVmLGQsZSk7dmMudGVzdChwKSYmKGMuaHJlZj1wKX19CmZ1bmN0aW9uIFlxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7aWYoYyl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpfHwiIjtpZihmKXt2YXIgZz0oYy5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKGchPT0iZ2V0Inx8ZCl7aWYoZz09PSJnZXQifHxnPT09InBvc3QiKXt2YXIgaD1XcShhLGIsZixkLGUpO3ZjLnRlc3QoaCkmJihjLmFjdGlvbj1oKX19ZWxzZXtmb3IodmFyIGw9Yy5jaGlsZE5vZGVzfHxbXSxuPSExLHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIHE9bFtwXTtpZihxLm5hbWU9PT1hKXtxLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO249ITA7YnJlYWt9fWlmKCFuKXt2YXIgcj1CLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7ci5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKTtyLnNldEF0dHJpYnV0ZSgibmFtZSIsYSk7ci5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtjLmFwcGVuZENoaWxkKHIpfX19fX0KZnVuY3Rpb24gRXEoYSl7dHJ5e3ZhciBiO2E6e2Zvcih2YXIgYz1hLGQ9MTAwO2MmJmQ+MDspe2lmKGMuaHJlZiYmYy5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe2I9YzticmVhayBhfWM9Yy5wYXJlbnROb2RlO2QtLX1iPW51bGx9dmFyIGU9YjtpZihlKXt2YXIgZj1lLnByb3RvY29sO2YhPT0iaHR0cDoiJiZmIT09Imh0dHBzOiJ8fFhxKGUsZS5ob3N0bmFtZSl9fWNhdGNoKGcpe319ZnVuY3Rpb24gRnEoYSl7dHJ5e3ZhciBiPWEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihiKXt2YXIgYz1MaihSaihiKSwiaG9zdCIpO1hxKGEsYyl9fWNhdGNoKGQpe319ZnVuY3Rpb24gYXIoYSxiLGMsZCl7RHEoKTt2YXIgZT1jPT09ImZyYWdtZW50Ij8yOjE7ZD0hIWQ7SHEoYSxiLGUsZCwhMSk7ZT09PTImJnNiKCJUQUdHSU5HIiwyMyk7ZCYmc2IoIlRBR0dJTkciLDI0KX0KZnVuY3Rpb24gYnIoYSxiKXtEcSgpO0hxKGEsW05qKEEubG9jYXRpb24sImhvc3QiLCEwKV0sYiwhMCwhMCl9ZnVuY3Rpb24gY3IoKXt2YXIgYT1CLmxvY2F0aW9uLmhvc3RuYW1lLGI9S3EuZXhlYyhCLnJlZmVycmVyKTtpZighYilyZXR1cm4hMTt2YXIgYz1iWzJdLGQ9YlsxXSxlPSIiO2lmKGMpe3ZhciBmPWMuc3BsaXQoIi8iKSxnPWZbMV07ZT1nPT09InMiP0tqKGZbMl0pfHwiIjpLaihnKXx8IiJ9ZWxzZSBpZihkKXtpZihkLmluZGV4T2YoInhuLS0iKT09PTApcmV0dXJuITE7ZT1kLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpfXZhciBoPWEucmVwbGFjZShMcSwiIiksbD1lLnJlcGxhY2UoTHEsIiIpO3JldHVybiBoPT09bHx8VGIoaCwiLiIrbCl9ZnVuY3Rpb24gZHIoYSxiKXtyZXR1cm4gYT09PSExPyExOmF8fGJ8fGNyKCl9O3ZhciBlcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPTA7dGhpcy52YWx1ZT1hPT09dm9pZCAwPzA6YX07ZXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXw9MTw8YX07dmFyIGZyPWZ1bmN0aW9uKGEsYil7Yjw9MHx8KGEudmFsdWV8PTE8PGItMSl9O2VyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07ZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWUmPX4oMTw8YSl9O2VyLnByb3RvdHlwZS5jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMudmFsdWU9MH07ZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZT09PWEudmFsdWV9O2Z1bmN0aW9uIGdyKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgVWludDhBcnJheShhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hhckNvZGVBdCgwKX0pKX1jYXRjaChiKXt9fWZ1bmN0aW9uIGhyKGEsYil7dmFyIGM9MCxkPTAsZSxmPWI7ZG97aWYoZj49YS5sZW5ndGgpcmV0dXJuO2U9YVtmKytdO2N8PShlJjEyNyk8PGQ7ZCs9N313aGlsZShlJjEyOCk7cmV0dXJuW2MsZl19O2Z1bmN0aW9uIGlyKCl7dmFyIGE9U3RyaW5nLGI9QS5sb2NhdGlvbi5ob3N0bmFtZSxjPUEubG9jYXRpb24ucGF0aG5hbWUsZD1iPWJjKGIpO2Quc3BsaXQoIi4iKS5sZW5ndGg+MiYmKGQ9ZC5yZXBsYWNlKC9eKHd3d1swLTldKnx3ZWJ8ZnRwfHdhcHxob21lfG18d3xhbXB8bW9iaWxlKVwuLywiIikpO2I9ZDtjPWJjKGMpO3ZhciBlPWMuc3BsaXQoIjsiKVswXTtlPWUucmVwbGFjZSgvXC8oYXJ8c2xwfHdlYnxpbmRleCk/XC8/JC8sIiIpO3JldHVybiBhKG5nKCgiIitiK2UpLnRvTG93ZXJDYXNlKCkpKX07dmFyIGpyPVsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdO2Z1bmN0aW9uIGtyKGEsYil7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMiksMTA7aWYoYj09PW51bGx8fGI9PT12b2lkIDB8fGI9PT0iIilyZXR1cm4gc2IoIlRBR0dJTkciLDMzKSwxMTt2YXIgYz1scighMSk7aWYoYy5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwzNCksYy5lcnJvcjtpZighYy52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDM1KSwyO2MudmFsdWVbYV09Yjt2YXIgZD1tcihjKTtkIT09MCYmc2IoIlRBR0dJTkciLDM2KTtyZXR1cm4gZH0KZnVuY3Rpb24gbnIoYSl7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwyNykse2Vycm9yOjEwfTt2YXIgYj1scigpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMjkpLGI7aWYoIWIudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMCkse2Vycm9yOjJ9O2lmKCEoYSBpbiBiLnZhbHVlKSlyZXR1cm4gc2IoIlRBR0dJTkciLDMxKSx7dmFsdWU6dm9pZCAwLGVycm9yOjE1fTt2YXIgYz1iLnZhbHVlW2FdO3JldHVybiBjPT09bnVsbHx8Yz09PXZvaWQgMHx8Yz09PSIiPyhzYigiVEFHR0lORyIsMjgpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTF9KTp7dmFsdWU6YyxlcnJvcjowfX0KZnVuY3Rpb24gb3IoYSl7aWYoYSl7dmFyIGI9bHIoITEpO2IuZXJyb3IhPT0wP3NiKCJUQUdHSU5HIiwzOCk6Yi52YWx1ZT9hIGluIGIudmFsdWU/KGRlbGV0ZSBiLnZhbHVlW2FdLG1yKGIpIT09MCYmc2IoIlRBR0dJTkciLDQxKSk6c2IoIlRBR0dJTkciLDQwKTpzYigiVEFHR0lORyIsMzkpfWVsc2Ugc2IoIlRBR0dJTkciLDM3KX0KZnVuY3Rpb24gbHIoYSl7YT1hPT09dm9pZCAwPyEwOmE7aWYoIUJsKGpyKSlyZXR1cm4gc2IoIlRBR0dJTkciLDQzKSx7ZXJyb3I6M307dHJ5e2lmKCFBLmxvY2FsU3RvcmFnZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQ0KSx7ZXJyb3I6MX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0NSkse2Vycm9yOjE0fX12YXIgYj17c2NoZW1hOiJnY2wiLHZlcnNpb246MX0sYz12b2lkIDA7dHJ5e2M9QS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX2djbF9scyIpfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDYpLHtlcnJvcjoxM319dHJ5e2lmKGMpe3ZhciBkPUpTT04ucGFyc2UoYyk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0IiliPWQ7ZWxzZSByZXR1cm4gc2IoIlRBR0dJTkciLDQ3KSx7ZXJyb3I6MTJ9fX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19aWYoYi5zY2hlbWEhPT0iZ2NsIilyZXR1cm4gc2IoIlRBR0dJTkciLDQ5KSx7ZXJyb3I6NH07CmlmKGIudmVyc2lvbiE9PTEpcmV0dXJuIHNiKCJUQUdHSU5HIiw1MCkse2Vycm9yOjV9O3RyeXt2YXIgZT1wcihiKTthJiZlJiZtcih7dmFsdWU6YixlcnJvcjowfSl9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fXJldHVybnt2YWx1ZTpiLGVycm9yOjB9fQpmdW5jdGlvbiBwcihhKXtpZighYXx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZigiZXhwaXJlcyJpbiBhJiYidmFsdWUiaW4gYSl7dmFyIGI7dHlwZW9mIGEuZXhwaXJlcz09PSJudW1iZXIiP2I9YS5leHBpcmVzOmI9dHlwZW9mIGEuZXhwaXJlcz09PSJzdHJpbmciP051bWJlcihhLmV4cGlyZXMpOk5hTjtpZihpc05hTihiKXx8IShEYXRlLm5vdygpPD1iKSlyZXR1cm4gYS52YWx1ZT1udWxsLGEuZXJyb3I9OSxzYigiVEFHR0lORyIsNTQpLCEwfWVsc2V7Zm9yKHZhciBjPSExLGQ9bShPYmplY3Qua2V5cyhhKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYz1wcihhW2UudmFsdWVdKXx8YztyZXR1cm4gY31yZXR1cm4hMX0KZnVuY3Rpb24gbXIoYSl7aWYoYS5lcnJvcilyZXR1cm4gYS5lcnJvcjtpZighYS52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQyKSwyO3ZhciBiPWEudmFsdWUsYzt0cnl7Yz1KU09OLnN0cmluZ2lmeShiKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUyKSw2fXRyeXtBLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJfZ2NsX2xzIixjKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUzKSw3fXJldHVybiAwfTt2YXIgcXI9e30scnI9KHFyLmdjbGlkPSEwLHFyLmRjbGlkPSEwLHFyLmdicmFpZD0hMCxxci53YnJhaWQ9ITAscXIpLHNyPS9eXHcrJC8sdHI9L15bXHctXSskLyx1cj17fSx2cj0odXIuYXc9IkZQR0NMQVciLHVyKSx3cj17fSx4cj0od3IuYWc9Il9hZyIsd3IuZ2I9Il9nYiIsd3IuYXc9Il9hdyIsd3IuZGM9Il9kYyIsd3IuZ2Y9Il9nZiIsd3IuaGE9Il9oYSIsd3IuZ3A9Il9ncCIsd3IuZ3M9Il9ncyIsd3IpLHlyPS9eKD86d3d3XC4pP2dvb2dsZSg/OlwuY29tPyk/KD86XC5bYS16XXsyfXQ/KT8kLyx6cj0vXnd3d1wuZ29vZ2xlYWRzZXJ2aWNlc1wuY29tJC87ZnVuY3Rpb24gQXIoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX1mdW5jdGlvbiBCcihhKXtyZXR1cm4hWWYoNSl8fEJsKGEpfWZ1bmN0aW9uIENyKGEsYil7ZnVuY3Rpb24gYygpe3ZhciBkPUJyKGIpO2QmJmEoKTtyZXR1cm4gZH1IbChmdW5jdGlvbigpe2MoKXx8SWwoYyxiKX0sYil9CmZ1bmN0aW9uIERyKGEpe3JldHVybiBFcihhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBGcihhKXtyZXR1cm4gR3IoYSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gR3IoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1IcihhLnByZWZpeCksZD1JcigiZ2IiLGMpLGU9SXIoImFnIixjKTtpZighZXx8IWQpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uemc9bDtyZXR1cm4gbn19LGc9RXIoZCxiKS5tYXAoZigiZ2IiKSksaD1KcihlKS5tYXAoZigiYWciKSk7cmV0dXJuIGcuY29uY2F0KGgpLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gS3IoYSxiLGMsZCxlKXt2YXIgZj1DYihhLGZ1bmN0aW9uKGcpe3JldHVybiBnLmdjbGlkPT09Yn0pO2Y/KGYudGltZXN0YW1wPGMmJihmLnRpbWVzdGFtcD1jLGYub2Q9ZSksZi5sYWJlbHM9THIoZi5sYWJlbHN8fFtdLGR8fFtdKSk6YS5wdXNoKHt2ZXJzaW9uOiIyIixnY2xpZDpiLHRpbWVzdGFtcDpjLGxhYmVsczpkLG9kOmV9KX1mdW5jdGlvbiBNcihhKXtmb3IodmFyIGI9d3EoYSw1KXx8W10sYz1bXSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1mLGg9TnIoZik7aCYmS3IoYyxnLmssaCxnLmJ8fFtdLGYudSl9cmV0dXJuIGMuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBFcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO09yKGMsYSwxKTtpZihiKWlmKFRiKGEsIl9hdyIpKXt2YXIgZD1QcigpO2QmJihkLm9kPXZvaWQgMCxkLm9hPWQub2F8fFsyXSxRcihjLGQpKTtPcihjLCJnY2xfYXciLDIpfWVsc2UgVGIoYSwiX2diIikmJllmKDYpJiZPcihjLCJnY2xfZ2IiLDIpO2Muc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBmLnRpbWVzdGFtcC1lLnRpbWVzdGFtcH0pO3JldHVybiBScihjKX1mdW5jdGlvbiBTcihhLGIpe2Zvcih2YXIgYz1bXSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Yy5pbmNsdWRlcyhmKXx8Yy5wdXNoKGYpfWZvcih2YXIgZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2MuaW5jbHVkZXMobCl8fGMucHVzaChsKX1yZXR1cm4gY30KZnVuY3Rpb24gUXIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZCxlLGY9bShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZihoLmdjbGlkPT09Yi5nY2xpZCl7ZD1oO2JyZWFrfWgucWEmJmIucWEmJmgucWEuZXF1YWxzKGIucWEpJiYoZT1oKX1pZihkKXt2YXIgbCxuLHA9KGw9ZC5xYSkhPW51bGw/bDpuZXcgZXIscT0obj1iLnFhKSE9bnVsbD9uOm5ldyBlcjtwLnZhbHVlfD1xLnZhbHVlO2QucWE9cDtkLnRpbWVzdGFtcDxiLnRpbWVzdGFtcCYmKGQudGltZXN0YW1wPWIudGltZXN0YW1wLGQub2Q9Yi5vZCk7ZC5sYWJlbHM9U3IoZC5sYWJlbHN8fFtdLGIubGFiZWxzfHxbXSk7ZC5vYT1TcihkLm9hfHxbXSxiLm9hfHxbXSl9ZWxzZSBjJiZlP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxiKTphLnB1c2goYil9CmZ1bmN0aW9uIFRyKGEpe2lmKCFhKXJldHVybiBuZXcgZXI7dmFyIGI9bmV3IGVyO2lmKGE9PT0xKXJldHVybiBmcihiLDIpLGZyKGIsMyksYjtmcihiLGEpO3JldHVybiBifQpmdW5jdGlvbiBQcigpe3ZhciBhPW5yKCJnY2xpZCIpO2lmKCFhfHxhLmVycm9yfHwhYS52YWx1ZXx8dHlwZW9mIGEudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYj1hLnZhbHVlO3RyeXtpZighKCJ2YWx1ZSJpbiBiJiZiLnZhbHVlKXx8dHlwZW9mIGIudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYz1iLnZhbHVlLGQ9Yy52YWx1ZTtpZighZHx8IWQubWF0Y2godHIpKXJldHVybiBudWxsO3ZhciBlPWMubGlua0RlY29yYXRpb25Tb3VyY2UsZj1jLmxpbmtEZWNvcmF0aW9uU291cmNlcyxnPW5ldyBlcjt0eXBlb2YgZT09PSJudW1iZXIiP2c9VHIoZSk6dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGcudmFsdWU9Zik7cmV0dXJue3ZlcnNpb246IiIsZ2NsaWQ6ZCx0aW1lc3RhbXA6TnVtYmVyKGMuY3JlYXRpb25UaW1lTXMpfHwwLGxhYmVsczpbXSxxYTpnLG9hOlsyXX19Y2F0Y2goaCl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBVcihhKXt2YXIgYj1ucihhKTtpZihiLmVycm9yIT09MClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGIudmFsdWUucmVkdWNlKGZ1bmN0aW9uKGMsZCl7aWYoIWQudmFsdWV8fHR5cGVvZiBkLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIGM7dmFyIGU9ZC52YWx1ZSxmPWUudmFsdWU7aWYoIWZ8fCFmLm1hdGNoKHRyKSlyZXR1cm4gYzt2YXIgZz1uZXcgZXIsaD1lLmxpbmtEZWNvcmF0aW9uU291cmNlczt0eXBlb2YgaD09PSJudW1iZXIiJiYoZy52YWx1ZT1oKTt2YXIgbDtjLnB1c2goe3ZlcnNpb246IiIsZ2NsaWQ6Zix0aW1lc3RhbXA6TnVtYmVyKGUuY3JlYXRpb25UaW1lTXMpfHwwLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl8fDAsbGFiZWxzOihsPWUubGFiZWxzKSE9bnVsbD9sOltdLHFhOmcsb2E6WzJdfSk7cmV0dXJuIGN9LFtdKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIE9yKGEsYixjKXtpZihjPT09MSlmb3IodmFyIGQ9Y3EoYixCLmNvb2tpZSx2b2lkIDAsQXIoKSksZT1tKGQpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1WcihmLnZhbHVlLnNwbGl0KCIuIikpLGg9Zy5sZW5ndGg9PT0wP251bGw6e3ZlcnNpb246Z1swXSxnY2xpZDpnWzJdLHRpbWVzdGFtcDooTnVtYmVyKGdbMV0pfHwwKSoxRTMsbGFiZWxzOmcuc2xpY2UoMyl9O2ghPW51bGwmJihoLm9kPXZvaWQgMCxoLnFhPW5ldyBlcixoLm9hPVtjXSxRcihhLGgpKX1lbHNlIGlmKGM9PT0yKXt2YXIgbD1VcihiKTtpZihsKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3Eub2Q9dm9pZCAwO3Eub2E9cS5vYTtRcihhLHEpfX19CmZ1bmN0aW9uIFpyKGEpe3ZhciBiPUVyKGEpLGM9VXIoImdjbF9kYyIpO2lmKGMpZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Zi5vZD12b2lkIDA7Zi5vYT1mLm9hfHxbMl07UXIoYixmKX1iLnNvcnQoZnVuY3Rpb24oZyxoKXt2YXIgbD1nLm9hJiZnLm9hLmluY2x1ZGVzKDEpLG49aC5vYSYmaC5vYS5pbmNsdWRlcygxKTtyZXR1cm4gbCYmIW4/LTE6IWwmJm4/MTpoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBScihiKX1mdW5jdGlvbiBKcihhKXtyZXR1cm4gTXIoYSkubWFwKGZ1bmN0aW9uKGIpe2IucWE9bmV3IGVyO2Iub2E9WzFdO3JldHVybiBifSl9CmZ1bmN0aW9uIExyKGEsYil7aWYoIWEubGVuZ3RoKXJldHVybiBiO2lmKCFiLmxlbmd0aClyZXR1cm4gYTt2YXIgYz17fTtyZXR1cm4gYS5jb25jYXQoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBjLmhhc093blByb3BlcnR5KGQpPyExOmNbZF09ITB9KX1mdW5jdGlvbiBIcihhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaChzcik/YToiX2djbCJ9ZnVuY3Rpb24gJHIoYSxiKXtpZihhKXt2YXIgYz17dmFsdWU6YSxxYTpuZXcgZXJ9O2ZyKGMucWEsYik7cmV0dXJuIGN9fQpmdW5jdGlvbiBhcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpO2lmKGImJighZnx8IWUpKXt2YXIgZz1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGcsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGcsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmKGU9PT12b2lkIDB8fGU9PT0iYXcifHxlPT09ImF3LmRzInx8WWYoOCkmJmU9PT0iYXcuZHYiKT9bZl06W119CmZ1bmN0aW9uIGJzKGEsYil7dmFyIGM9UmooYSksZD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGU9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJ3YnJhaWQiKTtmPSRiKGYpO3ZhciBnPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdicmFpZCIpLGg9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGw9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKTtpZihiJiYhKGQmJmUmJmYmJmcpKXt2YXIgbj1jLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Q9ZHx8SWoobiwiZ2NsaWQiLCExKTtlPWV8fElqKG4sImdjbHNyYyIsITEpO2Y9Znx8SWoobiwid2JyYWlkIiwhMSk7Zz1nfHxJaihuLCJnYnJhaWQiLCExKTtoPWh8fElqKG4sImdhZF9zb3VyY2UiLCExKX1yZXR1cm4gY3MoZCxlLGwsZixnLGgpfQpmdW5jdGlvbiBkcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpLGc9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKSxjPzQ6Mik7aWYoYiYmKCFlfHwhZikpe3ZhciBoPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooaCwiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooaCwiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiZlJiYoZT09PSJhdy5kcyJ8fGU9PT0iYXcuZHYifHxlPT09IjNwLmRzInx8ZT09PSJkcyIpP1tmXTpnP1tnXTpbXX1mdW5jdGlvbiBlcygpe3JldHVybiBicyhBLmxvY2F0aW9uLmhyZWYsITApfQpmdW5jdGlvbiBjcyhhLGIsYyxkLGUsZil7dmFyIGc9e30saD1mdW5jdGlvbihsLG4pe2dbbl18fChnW25dPVtdKTtnW25dLnB1c2gobCl9O2cuZ2NsaWQ9YTtnLmdjbHNyYz1iO2cuZGNsaWQ9YztpZihhIT09dm9pZCAwJiZhLm1hdGNoKHRyKSlzd2l0Y2goYil7Y2FzZSB2b2lkIDA6aChhLCJhdyIpO2JyZWFrO2Nhc2UgImF3LmRzIjpoKGEsImF3Iik7aChhLCJkYyIpO2JyZWFrO2Nhc2UgImF3LmR2IjpZZig4KSYmKGgoYSwiYXciKSxoKGEsImRjIikpO2JyZWFrO2Nhc2UgImRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiM3AuZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICJnZiI6aChhLCJnZiIpO2JyZWFrO2Nhc2UgImhhIjpoKGEsImhhIil9YyYmaChjLCJkYyIpO2QhPT12b2lkIDAmJnRyLnRlc3QoZCkmJihnLndicmFpZD1kLGgoZCwiZ2IiKSk7ZSE9PXZvaWQgMCYmdHIudGVzdChlKSYmKGcuZ2JyYWlkPWUsaChlLCJhZyIpKTtmIT09dm9pZCAwJiZ0ci50ZXN0KGYpJiYoZy5nYWRfc291cmNlPQpmLGgoZiwiZ3MiKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZnMoKXtmb3IodmFyIGE9ZXMoKSxiPSEwLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpaWYoYVtkLnZhbHVlXSE9PXZvaWQgMCl7Yj0hMTticmVha31iJiYoYT1icyhBLmRvY3VtZW50LnJlZmVycmVyLCExKSxhLmdhZF9zb3VyY2U9dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBncyhhKXt2YXIgYj1mcygpO2hzKGIsITEsYSl9CmZ1bmN0aW9uIGlzKGEpe3ZhciBiPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7Yi5sZW5ndGh8fChiPWFzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTthPWF8fHt9O2pzKGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1iWzBdLGQ9TmIoKSxlPXVxKGEsZCwhMCksZj1BcigpLGc9ZnVuY3Rpb24oKXtCcihmKSYmZS5leHBpcmVzIT09dm9pZCAwJiZrcigiZ2NsaWQiLHt2YWx1ZTp7dmFsdWU6Yy52YWx1ZSxjcmVhdGlvblRpbWVNczpkLGxpbmtEZWNvcmF0aW9uU291cmNlczpjLnFhLmdldCgpfSxleHBpcmVzOk51bWJlcihlLmV4cGlyZXMpfSl9O0hsKGZ1bmN0aW9uKCl7ZygpO0JyKGYpfHxJbChnLGYpfSxmKX19CmZ1bmN0aW9uIGpzKGEpe3ZhciBiPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjtpZih5ci50ZXN0KGIpfHx6ci50ZXN0KGIpfHxrcygpKXt2YXIgYzthOntmb3IodmFyIGQ9UmooQS5sb2NhdGlvbi5ocmVmKSxlPUpqKExqKGQsInF1ZXJ5IikpLGY9bShPYmplY3Qua2V5cyhlKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoIXJyW2hdKXt2YXIgbD1lW2hdWzBdfHwiIixuO2lmKCFsfHxsLmxlbmd0aDw1MHx8bC5sZW5ndGg+MjAwKW49ITE7ZWxzZXt2YXIgcD1ncihsKSxxO2lmKHApYzp7dmFyIHI9cDtpZihyJiZyLmxlbmd0aCE9PTApe3ZhciB0PTA7dHJ5e2Zvcih2YXIgdT0xMDt0PHIubGVuZ3RoJiYhKHUtLTw9MCk7KXt2YXIgdj1ocihyLHQpO2lmKHY9PT12b2lkIDApYnJlYWs7dmFyIHg9bSh2KSx5PXgubmV4dCgpLnZhbHVlLHo9eC5uZXh0KCkudmFsdWUsQz15LEQ9eixJPUMmNztpZihDPj4zPT09MTYzODIpe2lmKEkhPT0KMClicmVhazt2YXIgRz1ocihyLEQpO2lmKEc9PT12b2lkIDApYnJlYWs7cT1tKEcpLm5leHQoKS52YWx1ZT09PTE7YnJlYWsgY312YXIgTjtkOnt2YXIgUz12b2lkIDAsVz1yLGVhPUQ7c3dpdGNoKEkpe2Nhc2UgMDpOPShTPWhyKFcsZWEpKT09bnVsbD92b2lkIDA6U1sxXTticmVhayBkO2Nhc2UgMTpOPWVhKzg7YnJlYWsgZDtjYXNlIDI6dmFyIGphPWhyKFcsZWEpO2lmKGphPT09dm9pZCAwKWJyZWFrO3ZhciBmYT1tKGphKSxzYT1mYS5uZXh0KCkudmFsdWU7Tj1mYS5uZXh0KCkudmFsdWUrc2E7YnJlYWsgZDtjYXNlIDU6Tj1lYSs0O2JyZWFrIGR9Tj12b2lkIDB9aWYoTj09PXZvaWQgMHx8Tj5yLmxlbmd0aHx8Tjw9dClicmVhazt0PU59fWNhdGNoKG1hKXt9fXE9ITF9ZWxzZSBxPSExO249cX1pZihuKXtjPWw7YnJlYWsgYX19fWM9dm9pZCAwfXZhciBkYT1jO2RhJiZscygiZ2NsX2F3IixkYSw3LGEpfX0KZnVuY3Rpb24gbHMoYSxiLGMsZCl7bXMoYSxbe3ZlcnNpb246IiIsZ2NsaWQ6Yix0aW1lc3RhbXA6TmIoKSxxYTpUcihjKX1dLGQpfQpmdW5jdGlvbiBtcyhhLGIsYyl7Yz1jfHx7fTt2YXIgZD1BcigpLGU9ZnVuY3Rpb24oKXtpZihCcihkKSYmYi5sZW5ndGg+MCl7dmFyIGY9VXIoYSl8fFtdO2IuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaD11cShjLGcudGltZXN0YW1wLCEwKTtoLmV4cGlyZXMhPT12b2lkIDAmJlFyKGYse3ZlcnNpb246IiIsZ2NsaWQ6Zy5nY2xpZCx0aW1lc3RhbXA6Zy50aW1lc3RhbXAsZXhwaXJlczpOdW1iZXIoaC5leHBpcmVzKSxxYTpnLnFhLGxhYmVsczpnLmxhYmVsc30sITApfSk7Zi5sZW5ndGgmJmtyKGEsZi5tYXAoZnVuY3Rpb24oZyl7dmFyIGg9e3ZhbHVlOmcuZ2NsaWQsY3JlYXRpb25UaW1lTXM6Zy50aW1lc3RhbXAsbGlua0RlY29yYXRpb25Tb3VyY2VzOmcucWE/Zy5xYS5nZXQoKTowfSxsO2lmKChsPWcubGFiZWxzKT09bnVsbD8wOmwubGVuZ3RoKWgubGFiZWxzPWcubGFiZWxzO3JldHVybnt2YWx1ZTpoLGV4cGlyZXM6TnVtYmVyKGcuZXhwaXJlcyl9fSkpfX07SGwoZnVuY3Rpb24oKXtCcihkKT8KZSgpOklsKGUsZCl9LGQpfQpmdW5jdGlvbiBocyhhLGIsYyxkLGUpe2M9Y3x8e307ZT1lfHxbXTt2YXIgZj1IcihjLnByZWZpeCksZz1kfHxOYigpLGg9TWF0aC5yb3VuZChnLzFFMyksbD1BcigpLG49ITEscD0hMSxxPVlmKDkpLHI9ZnVuY3Rpb24oKXtpZihCcihsKSl7dmFyIHQ9dXEoYyxnLCEwKTt0Lk1jPWw7Zm9yKHZhciB1PWZ1bmN0aW9uKFcsZWEpe3ZhciBqYT1JcihXLGYpO2phJiYob3EoamEsZWEsdCksVyE9PSJnYiImJihuPSEwKSl9LHY9ZnVuY3Rpb24oVyl7dmFyIGVhPVsiR0NMIixoLFddO2UubGVuZ3RoPjAmJmVhLnB1c2goZS5qb2luKCIuIikpO3JldHVybiBlYS5qb2luKCIuIil9LHg9bShbImF3IiwiZGMiLCJnZiIsImhhIiwiZ3AiXSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7YVt6XSYmdSh6LHYoYVt6XVswXSkpfWlmKCghbnx8cSkmJmEuZ2Ipe3ZhciBDPWEuZ2JbMF0sRD1JcigiZ2IiLGYpOyFiJiZFcihEKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09QyYmClcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pfHx1KCJnYiIsdihDKSl9fWlmKCFwJiZhLmdicmFpZCYmQnIoImFkX3N0b3JhZ2UiKSYmKHA9ITAsIW58fHEpKXt2YXIgST1hLmdicmFpZCxHPUlyKCJhZyIsZik7aWYoYnx8IUpyKEcpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1JJiZXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KSl7dmFyIE49e30sUz0oTi5rPUksTi5pPSIiK2gsTi5iPWUsTik7QXEoRyxTLDUsYyxnKX19bnMoYSxmLGcsYyl9O0hsKGZ1bmN0aW9uKCl7cigpO0JyKGwpfHxJbChyLGwpfSxsKX0KZnVuY3Rpb24gbnMoYSxiLGMsZCl7aWYoYS5nYWRfc291cmNlIT09dm9pZCAwJiZCcigiYWRfc3RvcmFnZSIpKXt2YXIgZT1xZCgpO2lmKGUhPT0iciImJmUhPT0iaCIpe3ZhciBmPWEuZ2FkX3NvdXJjZSxnPUlyKCJncyIsYik7aWYoZyl7dmFyIGg9TWF0aC5mbG9vcigoTmIoKS0ocGQoKXx8MCkpLzFFMyksbCxuPWlyKCkscD17fTtsPShwLms9ZixwLmk9IiIraCxwLnU9bixwKTtBcShnLGwsNSxkLGMpfX19fWZ1bmN0aW9uIG9zKGEsYixjKXtmb3IodmFyIGQ9d3EoYixjKSxlPTA7ZTxkLmxlbmd0aDsrK2UpaWYoTnIoZFtlXSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gcHMoYSl7dmFyIGI9cXMsYz1ycyhhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWNbZ107aWYoaCl7dmFyIGw9TWF0aC5taW4oc3MoaCksTmIoKSksbj11cShhLGwsITApO24uTWM9QXIoKTt2YXIgcD1JcihnLGQpO3AmJm9xKHAsaCxuKX19dmFyIHE9VXEoITApO2hzKGNzKHEuZ2NsaWQscS5nY2xzcmMpLCExLGEpfSxBcigpKX0KZnVuY3Rpb24gcnMoYSl7dmFyIGI9VXEoITApLGM9SHIoYSksZD17fSxlO2ZvcihlIGluIHhyKWlmKHhyLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1lLGc9SXIoZixjKTtpZihnIT09dm9pZCAwKXt2YXIgaD1iW2ddO2lmKGgpe3ZhciBsPXNzKGgpLG47YTp7Zm9yKHZhciBwPU1hdGgubWluKGwsTmIoKSl8fE5iKCkscT1jcShnLEIuY29va2llLHZvaWQgMCxBcigpKSxyPTA7cjxxLmxlbmd0aDsrK3IpaWYoc3MocVtyXSk+cCl7bj0hMDticmVhayBhfW49ITF9bnx8KGRbZl09aCl9fX1yZXR1cm4gZH0KZnVuY3Rpb24gdHMoYSl7dmFyIGI9WyJhZyJdLGM9VXEoITApLGQ9SHIoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoZil7dmFyIGc9Y1tmXTtpZihnKXt2YXIgaD0kcChnLDUpO2lmKGgpe3ZhciBsPU5yKGgpO2x8fChsPU5iKCkpO2lmKG9zKGwsZiw1KSlicmVhaztoLmk9IiIrTWF0aC5yb3VuZChsLzFFMyk7QXEoZixoLDUsYSxsKX19fX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiBJcihhLGIpe3ZhciBjPXhyW2FdO2lmKGMhPT12b2lkIDApcmV0dXJuIGIrY31mdW5jdGlvbiBzcyhhKXtyZXR1cm4gVnIoYS5zcGxpdCgiLiIpKS5sZW5ndGghPT0wPyhOdW1iZXIoYS5zcGxpdCgiLiIpWzFdKXx8MCkqMUUzOjB9ZnVuY3Rpb24gTnIoYSl7cmV0dXJuIGE/KE51bWJlcihhLmkpfHwwKSoxRTM6MH0KZnVuY3Rpb24gVnIoYSl7cmV0dXJuIGEubGVuZ3RoPDN8fGFbMF0hPT0iR0NMIiYmYVswXSE9PSIxInx8IS9eXGQrJC8udGVzdChhWzFdKXx8IXRyLnRlc3QoYVsyXSk/W106YX1mdW5jdGlvbiB1cyhhLGIsYyxkKXt2YXIgZT1xcztpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYobil7dmFyIHA9Y3EobixCLmNvb2tpZSx2b2lkIDAsQXIoKSk7cC5sZW5ndGgmJihoW25dPXAuc29ydCgpW3AubGVuZ3RoLTFdKX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gdnMoYSxiLGMpe3ZhciBkPXFzO2lmKFlmKDEzKSYmQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPXt9LGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIGg9dnJbZFtnXV07aWYoaCl7dmFyIGw9Y3EoaCxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aWYobC5sZW5ndGgpe2Zvcih2YXIgbj12b2lkIDAscD0wLHE9bShsKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PSRwKHQsNCk7aWYodSYmKHUubT09PSIxInx8WWYoMTYpKSl7dmFyIHY9TnIodSk7dj49cCYmKHA9dixuPXQpfX1uJiYoZltoXT1uKX19fXJldHVybiBmfTtDcihmdW5jdGlvbigpe2FyKGUsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHdzKGEsYixjLGQpe2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1bImFnIl0sZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZighbilyZXR1cm57fTt2YXIgcD13cShuLDUpO2lmKHAubGVuZ3RoKXt2YXIgcT1wLnNvcnQoZnVuY3Rpb24ocix0KXtyZXR1cm4gTnIodCktTnIocil9KVswXTtoW25dPWFxKHEsNSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxbImFkX3N0b3JhZ2UiXSl9fWZ1bmN0aW9uIFJyKGEpe3JldHVybiBhLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHIudGVzdChiLmdjbGlkKX0pfQpmdW5jdGlvbiB4cyhhLGIpe2lmKFNwKEEpKXtmb3IodmFyIGM9SHIoYi5wcmVmaXgpLGQ9e30sZT0wO2U8YS5sZW5ndGg7ZSsrKXhyW2FbZV1dJiYoZFthW2VdXT14clthW2VdXSk7Q3IoZnVuY3Rpb24oKXtHYihkLGZ1bmN0aW9uKGYsZyl7dmFyIGg9Y3EoYytnLEIuY29va2llLHZvaWQgMCxBcigpKTtoLnNvcnQoZnVuY3Rpb24odCx1KXtyZXR1cm4gc3ModSktc3ModCl9KTtpZihoLmxlbmd0aCl7dmFyIGw9aFswXSxuPXNzKGwpLHA9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKS5zbGljZSgzKTpbXSxxPXt9LHI7cj1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpWzJdOnZvaWQgMDtxW2ZdPVtyXTtocyhxLCEwLGIsbixwKX19KX0sQXIoKSl9fQpmdW5jdGlvbiB5cyhhKXt2YXIgYj1bImFnIl0sYz1bImdicmFpZCJdO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoIWYpYnJlYWs7dmFyIGc9d3EoZiw1KTtpZihnLmxlbmd0aCl7dmFyIGg9Zy5zb3J0KGZ1bmN0aW9uKHEscil7cmV0dXJuIE5yKHIpLU5yKHEpfSlbMF0sbD1OcihoKSxuPWguYixwPXt9O3BbY1tlXV09aC5rO2hzKHAsITAsYSxsLG4pfX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiB6cyhhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWlmKGFbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIEFzKGEpe2Z1bmN0aW9uIGIoaCxsLG4pe24mJihoW2xdPW4pfWlmKEVsKCkpe3ZhciBjPWVzKCksZDthLmluY2x1ZGVzKCJnYWRfc291cmNlIikmJihkPWMuZ2FkX3NvdXJjZSE9PXZvaWQgMD9jLmdhZF9zb3VyY2U6VXEoITEpLl9ncyk7aWYoenMoYyxhKXx8ZCl7dmFyIGU9e307YihlLCJnY2xpZCIsYy5nY2xpZCk7YihlLCJkY2xpZCIsYy5kY2xpZCk7YihlLCJnY2xzcmMiLGMuZ2Nsc3JjKTtiKGUsIndicmFpZCIsYy53YnJhaWQpO2IoZSwiZ2JyYWlkIixjLmdicmFpZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZX0sMyk7dmFyIGY9e30sZz0oZi5fdXA9IjEiLGYpO2IoZywiX2dzIixkKTticihmdW5jdGlvbigpe3JldHVybiBnfSwxKX19fWZ1bmN0aW9uIGtzKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gTGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpfQpmdW5jdGlvbiBCcyhhKXtpZighWWYoMSkpcmV0dXJuIG51bGw7dmFyIGI9VXEoITApLmdhZF9zb3VyY2U7aWYoYiE9bnVsbClyZXR1cm4gQS5sb2NhdGlvbi5oYXNoPSIiLGI7aWYoWWYoMikpe2I9a3MoKTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPWVzKCk7aWYoenMoYyxhKSlyZXR1cm4iMCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3MoYSl7dmFyIGI9QnMoYSk7YiE9bnVsbCYmYnIoZnVuY3Rpb24oKXt2YXIgYz17fTtyZXR1cm4gYy5nYWRfc291cmNlPWIsY30sNCl9CmZ1bmN0aW9uIERzKGEsYixjKXt2YXIgZD1bXTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGQ7Zm9yKHZhciBlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXSxoPWcuemc/Zy56ZzoiZ2NsIjtpZigoZy5sYWJlbHN8fFtdKS5pbmRleE9mKGMpPT09LTEpe2EucHVzaCgwKTt2YXIgbD0hMSxuPXZvaWQgMDtpZigobj1nLm9hKT09bnVsbD8wOm4uaW5jbHVkZXMoMikpbD0hMDt2YXIgcD12b2lkIDA7KChwPWcub2EpPT1udWxsPzA6cC5pbmNsdWRlcygxKSkmJiFlW2hdJiYobD0hMCxlW2hdPSEwKTtsJiZkLnB1c2goZyl9ZWxzZXthLnB1c2goMSk7dmFyIHE9dm9pZCAwO2lmKChxPWcub2EpPT1udWxsPzA6cS5pbmNsdWRlcygxKSllW2hdPSEwfX1yZXR1cm4gZH0KZnVuY3Rpb24gRXMoYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZj1bXTtjPWN8fHt9O2lmKCFCcihBcigpKSlyZXR1cm4gZjt2YXIgZz1FcihhLGUpLGg9RHMoZixnLGIpO2lmKGgubGVuZ3RoJiYhZCl7Zm9yKHZhciBsPVtdLG49ITEscD1tKGgpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlLHQ9cix1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej0odC5sYWJlbHN8fFtdKS5jb25jYXQoW2JdKSxDPXZvaWQgMDtpZigoKEM9eSk9PW51bGw/MDpDLmluY2x1ZGVzKDEpKSYmIW4pe3ZhciBEPVt1LE1hdGgucm91bmQoeC8xRTMpLHZdLmNvbmNhdCh6KS5qb2luKCIuIiksST11cShjLHgsITApO0kuTWM9QXIoKTtvcShhLEQsSSk7bj0hMH12YXIgRz12b2lkIDA7ZSYmKChHPXkpPT1udWxsPzA6Ry5pbmNsdWRlcygyKSkmJmwucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHIse2xhYmVsczp6fSkpfWwubGVuZ3RoJiYKbXMoImdjbF9nYiIsbCxjKX1yZXR1cm4gZn0KZnVuY3Rpb24gRnMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBkPVtdO2I9Ynx8e307dmFyIGU9R3IoYixjKSxmPURzKGQsZSxhKTtpZihmLmxlbmd0aCl7Zm9yKHZhciBnPVtdLGg9e30sbD1tKGYpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlLHE9SHIoYi5wcmVmaXgpLHI9SXIocC56ZyxxKTtpZighcilyZXR1cm4gZDt2YXIgdD1wLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PU1hdGgucm91bmQoeC8xRTMpLEM9THIodC5sYWJlbHN8fFtdLFthXSksRD12b2lkIDA7aWYoKEQ9eSk9PW51bGw/MDpELmluY2x1ZGVzKDEpKWlmKHAuemc9PT0iYWciJiYhaC5hZyl7dmFyIEk9e30sRz0oSS5rPXYsSS5pPSIiK3osSS5iPUMsSSk7QXEocixHLDUsYix4KTtoLmFnPSEwfWVsc2UgaWYocC56Zz09PSJnYiImJiFoLmdiKXt2YXIgTj1bdSx6LHZdLmNvbmNhdChDKS5qb2luKCIuIiksUz11cShiLHgsITApO1MuTWM9CkFyKCk7b3EocixOLFMpO2guZ2I9ITB9dmFyIFc9dm9pZCAwO2MmJigoVz15KT09bnVsbD8wOlcuaW5jbHVkZXMoMikpJiZnLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxwLHtsYWJlbHM6Q30pKX1nLmxlbmd0aCYmbXMoImdjbF9nYiIsZyxiKX1yZXR1cm4gZH1mdW5jdGlvbiBHcyhhLGIpe3ZhciBjPUhyKGIpLGQ9SXIoYSxjKTtpZighZClyZXR1cm4gMDt2YXIgZTtlPWE9PT0iYWciP0pyKGQpOkVyKGQpO2Zvcih2YXIgZj0wLGc9MDtnPGUubGVuZ3RoO2crKylmPU1hdGgubWF4KGYsZVtnXS50aW1lc3RhbXApO3JldHVybiBmfWZ1bmN0aW9uIEhzKGEpe2Zvcih2YXIgYj0wLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZm9yKHZhciBlPWFbZC52YWx1ZV0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWI9TWF0aC5tYXgoYixOdW1iZXIoZVtmXS50aW1lc3RhbXApKTtyZXR1cm4gYn0KZnVuY3Rpb24gSXMoYSl7dmFyIGI9TWF0aC5tYXgoR3MoImF3IixhKSxIcyhCcihBcigpKT9ScCgpOnt9KSksYz1NYXRoLm1heChHcygiZ2IiLGEpLEhzKEJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30pKTtjPU1hdGgubWF4KGMsR3MoImFnIixhKSk7cmV0dXJuIGM+Yn07dmFyIEpzPVJlZ0V4cCgiXlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSooPzolM0JVQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKSokIiksS3M9L15+P1tcdy1dKyg/Olwufj9bXHctXSspKiQvLExzPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLyxNcz0vO2dhYz0oW147P10rKS8sTnM9LztnYWNnYj0oW147P10rKS87CmZ1bmN0aW9uIE9zKGEsYil7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgYz1CLmxvY2F0aW9uLmhyZWYubWF0Y2goYik7cmV0dXJuIGMmJmMubGVuZ3RoPT09MiYmY1sxXS5tYXRjaChKcyk/S2ooY1sxXSl8fCIiOiIifWZvcih2YXIgZD1bXSxlPW0oT2JqZWN0LmtleXMoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZSxoPVtdLGw9YVtnXSxuPTA7bjxsLmxlbmd0aDtuKyspaC5wdXNoKGxbbl0uZ2NsaWQpO2QucHVzaChnKyI6IitoLmpvaW4oIiwiKSl9cmV0dXJuIGQubGVuZ3RoPjA/ZC5qb2luKCI7Iik6IiJ9CmZ1bmN0aW9uIFBzKGEsYixjKXtmb3IodmFyIGQ9QnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSxlPVtdLGY9ITEsZz1tKE9iamVjdC5rZXlzKGQpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPUVzKCJfZ2FjX2diXyIrbCxhLGIsYyk7Zj1mfHxuLmxlbmd0aCE9PTAmJm4uc29tZShmdW5jdGlvbihwKXtyZXR1cm4gcD09PTF9KTtlLnB1c2gobCsiOiIrbi5qb2luKCIsIikpfXJldHVybntScjpmP2Uuam9pbigiOyIpOiIiLFFyOk9zKGQsTnMpfX1mdW5jdGlvbiBRcyhhKXt2YXIgYj1CLmxvY2F0aW9uLmhyZWYubWF0Y2gobmV3IFJlZ0V4cCgiOyIrYSsiPShbXjs/XSspIikpO3JldHVybiBiJiZiLmxlbmd0aD09PTImJmJbMV0ubWF0Y2goS3MpP2JbMV06dm9pZCAwfQpmdW5jdGlvbiBScyhhKXt2YXIgYj17fSxjLGQsZTtMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkmJihjPVFzKCJnY2xncyIpLGQ9UXMoImdjbHN0IiksZT1RcygiZ2NsbHAiKSk7aWYoYyYmZCYmZSliLkVnPWMsYi5XaD1kLGIuVWg9ZTtlbHNle3ZhciBmPU5iKCksZz1NcigoYXx8Il9nY2wiKSsiX2dzIiksaD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5nY2xpZH0pLGw9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGYtcC50aW1lc3RhbXB9KSxuPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm9kfSk7aC5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmbi5sZW5ndGg+MCYmKGIuRWc9aC5qb2luKCIuIiksYi5XaD1sLmpvaW4oIi4iKSxiLlVoPW4uam9pbigiLiIpKX1yZXR1cm4gYn0KZnVuY3Rpb24gU3MoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1iP2Iuc3BsaXQoIi4iKTpbXSxlPWQubGVuZ3RoPT09Yy5sZW5ndGg/ZDp2b2lkIDA7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGYsZyl7dmFyIGg9e2djbGlkOmZ9O2lmKGUpe3ZhciBsPWVbZ10uc3BsaXQoIl8iKTtpZihsLmxlbmd0aD09PTIpe2gucWE9bmV3IGVyKE51bWJlcihsWzBdKSk7dmFyIG47dmFyIHA9TnVtYmVyKGxbMV0pO2lmKHA9PT0wKW49WzBdO2Vsc2V7dmFyIHE9W107cCYxJiZxLnB1c2goMSk7cCYyJiZxLnB1c2goMik7cCY0JiZxLnB1c2goMyk7cCY4JiZxLnB1c2goNCk7cCYxNiYmcS5wdXNoKDUpO249cX1oLm9hPW59fXJldHVybiBofSl9CmZ1bmN0aW9uIFRzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9UXMoYyk7aWYoZSl7aWYoWWYoMTcpKXt2YXIgZj1RcyhjKyJfc3JjIik7cmV0dXJuIFNzKGUsZil9aWYoZCl7dmFyIGc9bmV3IGVyO2ZyKGcsMik7ZnIoZywzKTtyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpnLG9hOlsxXX19KX1yZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpuZXcgZXIsb2E6WzFdfX0pfX1lbHNle2lmKGI9PT0iZ2NsaWQiKXtmb3IodmFyIGg9RXIoKGF8fCJfZ2NsIikrIl9hdyIsZCksbD1OdW1iZXIoWGZbNF09PT12b2lkIDA/MDpYZls0XSksbj1tKFVzKCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3EudGltZXN0YW1wPmwmJlFyKGgscSl9cmV0dXJuIGh9aWYoYj09PSJ3YnJhaWQiKXJldHVybiBFcigoYXx8CiJfZ2NsIikrIl9nYiIsZCk7aWYoYj09PSJicmFpZHMiKXJldHVybiBHcih7cHJlZml4OmF9LGQpfXJldHVybltdfWZ1bmN0aW9uIFVzKCl7cmV0dXJuKHdxKHZyLmF3LDQpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm09PT0iMSJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJue2djbGlkOmEuayx0aW1lc3RhbXA6TnVtYmVyKGEuaSksdmVyc2lvbjoiIixvYTpbNV19fSl9ZnVuY3Rpb24gVnMoYSl7Zm9yKHZhciBiPTAsYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2U+MCYmKGJ8PTE8PGUtMSl9cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBXcyhhKXtyZXR1cm4gTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpPyEoUXMoImdjbGF3Iil8fFFzKCJnYWMiKSk6SXMoYSl9CmZ1bmN0aW9uIFhzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlO2U9Yz9GcyhhLGIsZCk6RXMoKGImJmIucHJlZml4fHwiX2djbCIpKyJfZ2IiLGEsYix2b2lkIDAsZCk7cmV0dXJuIGUubGVuZ3RoPT09MHx8ZS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZj09PTB9KT8iIjplLmpvaW4oIi4iKX07CnZhciBZcz1mdW5jdGlvbihhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1raigiYWRzX3BhZ2V2aWV3IixmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoY1thXSlyZXR1cm4hMTtifHwoY1thXT0hMCk7cmV0dXJuITB9LFpzPWZ1bmN0aW9uKGEpe3JldHVybiBTaihhLCJnY2xpZCBkY2xpZCBnYnJhaWQgd2JyYWlkIGdjbGF3IGdjbGRjIGdjbGhhIGdjbGdmIGdjbGdiIF9nbCIuc3BsaXQoIiAiKSwiMCIpfSxhdD1mdW5jdGlvbigpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZiksYj12b2lkIDAsYz12b2lkIDAsZD1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksZT1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfY2FtcGFpZ25pZCIpLGYsZz1hLmhhc2gucmVwbGFjZSgiIyIsIiIpLm1hdGNoKCRzKTtmPWc/Z1sxXTp2b2lkIDA7ZCYmZj8oYj1kLGM9MSk6ZD8oYj1kLGM9Mik6ZiYmKGI9ZixjPTMpO3JldHVybntEZzpiLFNyOmMsVGg6ZX19LGJ0PWZ1bmN0aW9uKGEpe3ZhciBiPQpPcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmO3JldHVybiBhKGIpfSxjdD1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZD1ScihkKTtmb3IodmFyIGU9W10sZj0wO2Y8ZC5sZW5ndGg7ZisrKWUucHVzaChkW2ZdLmdjbGlkKTtlLmxlbmd0aCYmYi5wdXNoKGMrIjoiK2Uuam9pbigiLCIpKX0pO3JldHVybiBiLmpvaW4oIjsiKX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWR0KGEpO2lmKGQpcmV0dXJuIGQ7dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnPVtdO2E9PT0iYXciP2c9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTphPT09ImRjIiYmKGc9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKSk7aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9be3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6IjAifV06Zy5tYXAoZnVuY3Rpb24obCl7cmV0dXJue3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsCmdjbGlkOmwudmFsdWUscWE6bC5xYSxvYTpbMV19fSl9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9hPT09ImF3Ij9FcihoLE0oNTYyKSk6WnIoaCk6W119LGR0PWZ1bmN0aW9uKGEpe3ZhciBiPVRqKCJnY2wiK2EpLGM9YT09PSJkYyJ8fGE9PT0iYXciP1RqKCJnY2wiK2ErIl9zcmMiKTp2b2lkIDA7aWYoYilyZXR1cm4gU3MoYixjKX0sZnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PT0iYXcifHxhPT09ImRjInx8YT09PSJnYiIpe3ZhciBkPVRqKCJnY2wiK2EpO2lmKGQpcmV0dXJuIGQuc3BsaXQoIi4iKX12YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc7Zz1lcygpW2FdfHxbXTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1siMCJdOmd9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9EcihoKTpbXX0sZ3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFSKGEsYil8fCFSKGEsYykpcmV0dXJuIiI7dmFyIGQ9UihhLGIpLnNwbGl0KCIuIiksZT1SKGEsYykuc3BsaXQoIi4iKTtyZXR1cm4gZC5sZW5ndGgmJgplLmxlbmd0aCYmZC5sZW5ndGg9PT1lLmxlbmd0aCYmZFswXSYmZVswXT9kLm1hcChmdW5jdGlvbihmLGcpe3JldHVybiBmKyJfIitlW2ddfSkuam9pbigiLiIpOiIifSwkcz0vXmdhZF9zb3VyY2VbXz1dKFxkKykkLztmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9Owp2YXIgZnU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1SKGEsZSksZz1RKGEsSC5KLlllKTtNKDU4OSkmJmcmJihlPT09Ri5ELnphfHxlPT09Ri5ELlVhfHxlPT09Ri5ELlBlKSYmdHlwZW9mIGY9PT0ic3RyaW5nIiYmKGY9WnMoZikpO3ZhciBoPW9wKGUsZik7aCYmKCFnfHxlIT09Ri5ELkRkJiZlIT09Ri5ELktkJiZlIT09Ri5ELkVlJiZlIT09Ri5ELkJmfHwoaC52YWx1ZT0iMCIpLE0oNTA0KSYmKGU9PT1GLkQuTWQ/aC5rZXk9ImV2bmlkIjplPT09Ri5ELk5kJiYoaC5rZXk9ImV4Y2lkIikpLGJbaC5rZXldPWgudmFsdWUpfWIuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO1R0KCkmJihiLmdjcz1iLmdjc3x8VXQoKSk7Yi5nY2Q9Yi5nY2R8fFl0KGEuTSk7YXUoKSYmKGIuZG1hX2Nwcz1adCgpKTtiLmRtYT0kdCgpO3Z0KEV0KCkpJiYKKGIudGNmZD1idSgpKTt2YXIgbD1DcChhKTtsJiYoYi50YWdfZXhwPWwpO2lmKFEoYSxILkouQmspKXtiLnRmdD1TdHJpbmcoTmIoKSk7dmFyIG49cGQoKTtuIT09dm9pZCAwJiYoYi50ZmQ9U3RyaW5nKE1hdGgucm91bmQobikpKX1iLmFwdmU9IjEiO2IuYXB2Zj1uZCgpPyJmIjoibmYiO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGIubGltaXRlZF9hZHM9IjEiKTt2YXIgcD1RKGEsSC5KLlhnKTtNKDQ3NCkmJnAhPW51bGwmJnAhPT0iIiYmKGIuX2dzaWQ9cCk7aHQoYSxiLGZ1bmN0aW9uKHEscil7YltxXT1lbmNvZGVVUklDb21wb25lbnQocil9KTtyZXR1cm4gYn07dmFyIGd1PWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5lbmRwb2ludD1hO3RoaXMuZmE9Yzt0aGlzLmphPWQ7dGhpcy5wYXJhbWV0ZXJFbmNvZGluZz1lO3RoaXMuWj1iLnNsaWNlKCl9O2d1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIFhvKHRoaXMuWil9O2d1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtndS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3ZhciBhPU1tW3RoaXMuZW5kcG9pbnRdKHZvaWQgMCk7cmV0dXJuIFNiKGEsImh0dHBzOi8vIik/YS5zdWJzdHJpbmcoOCk6U2IoYSwiaHR0cDovLyIpP2Euc3Vic3RyaW5nKDcpOmF9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMubWV0aG9kTmFtZT1hO3RoaXMuUj1ifTtodS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuaXNTdXBwb3J0ZWQoKSlpZigoYz09bnVsbD92b2lkIDA6Yy5ib2R5KT09PXZvaWQgMHx8dGhpcy5IKCkpdHJ5e3RoaXMuSyhhLGIsYyl9Y2F0Y2goZCl7YS5yZChkKX1lbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgZG9lcyBub3Qgc3VwcG9ydCBhIHJlcXVlc3QgYm9keS4iKTtlbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgaXMgbm90IHN1cHBvcnRlZC4iKX07dmFyIGl1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbWFnZVBpeGVsIiwzKX07d2EoaXUsaHUpO2l1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtpdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTsKaXUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe1pjKGIsZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKCl7YS5vbkZhaWx1cmUodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBqdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiU2VuZEJlYWNvbiIsMSl9O3dhKGp1LGh1KTtqdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2QoKX07anUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07anUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2pkKGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5KT9hLmpmKCk6YS5yZCh2b2lkIDApfTt2YXIga3U9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkZldGNoIiwxKX07d2Eoa3UsaHUpO2t1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07a3UucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Cmt1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtBLmZldGNoKGIsYz09bnVsbD92b2lkIDA6Yy5HYikudGhlbihmdW5jdGlvbihkKXtpZihkLm9rKWEucGUoZCk7ZWxzZSBpZihkLnN0YXR1cz09PTApYS5qZigpO2Vsc2UgYS5vbkZhaWx1cmUoIkZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZC5zdGF0dXMrIi4iKX0pLmNhdGNoKGZ1bmN0aW9uKGQpe2EucmQoZCl9KX07dmFyIGx1PW5ldyBpdSxtdT1uZXcganUsbnU9bmV3IGt1O3ZhciBvdT1mdW5jdGlvbigpe307b3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm5bXX07CnZhciBwdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTpiO2d1LmNhbGwodGhpcyxhLGIsMSwhMCwyKX07d2EocHUsZ3UpO3B1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKHRoaXMuWi5sZW5ndGgpe3ZhciBiPVEoYSxILkouRGspO2lmKGIhPT12b2lkIDApcmV0dXJuIGJ9cmV0dXJuIGd1LnByb3RvdHlwZS5LLmNhbGwodGhpcyxhKX07cHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKTthLnRhcmdldC5kZXN0aW5hdGlvbklkJiYoYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCk7Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT9jLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9jLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGMuZm10PSIzIik7cmV0dXJuIGN9O3B1LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTihhLGIpO3JldHVybiI/IitPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrCiI9IitjW2RdfSkuam9pbigiJiIpfTtwdS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy55YShhLGIpLGU9e307aWYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdSl7ZS5HYj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtpZih0aGlzLmVuZHBvaW50PT09NTh8fHRoaXMuZW5kcG9pbnQ9PT01NyllLkdiLm1ldGhvZD0iR0VUIjt0aGlzLmVuZHBvaW50IT09NDV8fHF1LksoYSl8fChlLkdiLmNyZWRlbnRpYWxzPSJvbWl0IixkKz0iJmdhcC51Y2ZiPTEiKX1jKGQsZSl9O3ZhciBxdT1uZXcgcHUoNDUpLHJ1PW5ldyBwdSg0NSxbXSksc3U9bmV3IHB1KDQ2LFtdKSx0dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw2OSl9O3dhKHR1LHB1KTt0dS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NzQpJiYoISFSKGEsIl9nc2lkIil8fCEhUShhLEguSi5YZykpLGM9UihhLEYuRC5IZCkhPT0iMSImJighIVIoYSwiZ2NsaWQiKXx8CiEhUihhLCJkY2xpZCIpfHwhIVIoYSwiZ2Nsc3JjIil8fCEhUihhLCJhdWlkIikpO3JldHVybiBifHxjfTt0dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpLGQ9bHAoYSxjKXx8e307T2JqZWN0LmtleXMoZCkubGVuZ3RoPjAmJihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2QuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2QuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoZC5mbXQ9IjMiKSk7cmV0dXJuIGR9O3ZhciB1dT1uZXcgdHUsdnU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNDUpfTt3YSh2dSxwdSk7dnUucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdCJ9O3Z1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7Y1siZ2FwLjFwZmIiXT0iMSI7cmV0dXJuIGN9O3ZhciB3dT1mdW5jdGlvbihhKXtwdS5jYWxsKHRoaXMsYSxbImFkX3N0b3JhZ2UiLAoiYWRfdXNlcl9kYXRhIl0pfTt3YSh3dSxwdSk7d3UucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtyZXR1cm4gaHAoYyl9O3ZhciB4dT1uZXcgd3UoNTgpLHl1PW5ldyB3dSg1NyksenU9ZnVuY3Rpb24oKXt9O3dhKHp1LG91KTt6dS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1xdS5LKGEpLGM9Yj9xdTpzdSxkPVt7ZW5kcG9pbnQ6YyxtZXRob2Q6bmQoKT9udTptdX0se2VuZHBvaW50OmMsbWV0aG9kOmx1fV07Yj9NKDUxNykmJklmKDQ3KSYmZC5wdXNoKHtlbmRwb2ludDpuZXcgdnUsbWV0aG9kOm51fSk6TSg2MDApJiZkLnB1c2goe2VuZHBvaW50OnJ1LG1ldGhvZDpudX0pO3JldHVybiBkfTt6dS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSEhUShhLEguSi52ZCksZD1SKGEsRi5ELlBkKT09PSIxIixlPVIoYSxGLkQuSGQpPT09IjEiLGY9cXUuSyhhKSxnPWMmJmQmJiFlJiZmO2lmKGcpe3ZhciBoPQpRYygpfHxPYygpP3h1Onl1O2IucHVzaChbe2VuZHBvaW50OmgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6aCxtZXRob2Q6bHV9XSl9ZiYmKGd8fFEoYSxILkouaGQpKSYmYi5wdXNoKFt7ZW5kcG9pbnQ6dXUsbWV0aG9kOm5kKCk/bnU6bHV9XSk7cmV0dXJuIGJ9O3ZhciBBdT1uZXcgenU7dmFyIFQ9e1c6e0prOjEsbmo6MixGazozLG1sOjQsR2s6NSx5ZDo2LGtsOjcsTXE6OCxxbjo5LEhrOjEwLElrOjExLEZoOjEyLERtOjEzLEFtOjE0LENtOjE1LHptOjE2LEJtOjE3LHltOjE4LFRvOjE5LHhxOjIwLHlxOjIxLGZqOjIyLHVuOjI0LE9tOjI1LFNrOjI2LFRrOjI3LFJrOjI4LFVrOjI5LHJqOjMwLE9rOjMxLFpvOjMyfX07VC5XW1QuVy5Ka109IkFMTE9XX0lOVEVSRVNUX0dST1VQUyI7VC5XW1QuVy5ual09IlNFUlZFUl9DT05UQUlORVJfVVJMIjtULldbVC5XLkZrXT0iQURTX0RBVEFfUkVEQUNUSU9OIjtULldbVC5XLm1sXT0iQ1VTVE9NRVJfTElGRVRJTUVfVkFMVUUiO1QuV1tULlcuR2tdPSJBTExPV19DVVNUT01fU0NSSVBUUyI7VC5XW1QuVy55ZF09IkFOWV9DT09LSUVfUEFSQU1TIjtULldbVC5XLmtsXT0iQ09PS0lFX0VYUElSRVMiO1QuV1tULlcuTXFdPSJMRUdBQ1lfRU5IQU5DRURfQ09OVkVSU0lPTl9KU19WQVJJQUJMRSI7VC5XW1QuVy5xbl09IlJFU1RSSUNURURfREFUQV9QUk9DRVNTSU5HIjsKVC5XW1QuVy5Ia109IkFMTE9XX0RJU1BMQVlfRkVBVFVSRVMiO1QuV1tULlcuSWtdPSJBTExPV19HT09HTEVfU0lHTkFMUyI7VC5XW1QuVy5GaF09IkdFTkVSQVRFRF9UUkFOU0FDVElPTl9JRCI7VC5XW1QuVy5EbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOS05PV04iO1QuV1tULlcuQW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9TVEFOREFSRCI7VC5XW1QuVy5DbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOSVFVRSI7VC5XW1QuVy56bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1BFUl9TRVNTSU9OIjtULldbVC5XLkJtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVFJBTlNBQ1RJT05TIjtULldbVC5XLnltXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfSVRFTVNfU09MRCI7VC5XW1QuVy5Ub109IkFEU19PR1RfVjFfVVNBR0UiO1QuV1tULlcueHFdPSJGT1JNX0lOVEVSQUNUSU9OX1BFUk1JU1NJT05fREVOSUVEIjsKVC5XW1QuVy55cV09IkZPUk1fU1VCTUlUX1BFUk1JU1NJT05fREVOSUVEIjtULldbVC5XLmZqXT0iTUlDUk9UQVNLX05PVF9TVVBQT1JURUQiO1QuV1tULlcudW5dPSJTRVRfRU5DUllQVEVEX0RBVEFfVE9fQ0FDSEUiO1QuV1tULlcuT21dPSJHRVRfRU5DUllQVEVEX0RBVEFfRlJPTV9DQUNIRSI7VC5XW1QuVy5Ta109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX05PX1BBUkFNIjtULldbVC5XLlRrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfUEFSQU0iO1QuV1tULlcuUmtdPSJDT05GSUdfQ09OU0VOVF9TRVRfQkVGT1JFIjtULldbVC5XLlVrXT0iQ09ORklHX1NFVF9VU0VEX0JFRk9SRSI7VC5XW1QuVy5yal09IlNIQURPV19ET01fQVVUT19QSUkiO1QuV1tULlcuT2tdPSJDQ0RfVVNFUl9EQVRBX1dFQl9PTl9DT05GSUciO1QuV1tULlcuWm9dPSJCTEVOREVEX1VTRVJfREFUQSI7dmFyIEJ1PXt9LEN1PShCdVtGLkQudWldPVQuVy5KayxCdVtGLkQuZGRdPVQuVy5uaixCdVtGLkQueWNdPVQuVy5uaixCdVtGLkQubWJdPVQuVy5GayxCdVtGLkQuR2VdPVQuVy5tbCxCdVtGLkQucmldPVQuVy5HayxCdVtGLkQuSmRdPVQuVy55ZCxCdVtGLkQubmJdPVQuVy55ZCxCdVtGLkQuTGJdPVQuVy55ZCxCdVtGLkQuSWRdPVQuVy55ZCxCdVtGLkQudmNdPVQuVy55ZCxCdVtGLkQuVGJdPVQuVy55ZCxCdVtGLkQuQ2JdPVQuVy5rbCxCdVtGLkQuV2JdPVQuVy5xbixCdVtGLkQuaGhdPVQuVy5IayxCdVtGLkQuU2NdPVQuVy5JayxCdSksRHU9e30sRXU9KER1LnVua25vd249VC5XLkRtLER1LnN0YW5kYXJkPVQuVy5BbSxEdS51bmlxdWU9VC5XLkNtLER1LnBlcl9zZXNzaW9uPVQuVy56bSxEdS50cmFuc2FjdGlvbnM9VC5XLkJtLER1Lml0ZW1zX3NvbGQ9VC5XLnltLER1KTt2YXIgRnU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3NiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsYik7YyYmKGEuSFtiXT0hMCl9LHZiPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1bXX07ZnVuY3Rpb24gR3UoYSl7RnUodmIsYSwhMSl9ZnVuY3Rpb24gSHUoYSxiKXt2YXIgYz1iPT09dm9pZCAwPyExOmIsZD12YjtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGU9T2JqZWN0LmtleXMoYSksZj1tKE9iamVjdC5rZXlzKEN1KSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5pbmNsdWRlcyhoKSYmRnUoZCxDdVtoXSxjKX19O2Z1bmN0aW9uIEl1KGEsYil7YT9hLnRoZW4oYik6Yih2b2lkIDApfWZ1bmN0aW9uIEp1KGEpe3JldHVybiBQcm9taXNlLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc3RhdHVzPT09ImZ1bGZpbGxlZCJ9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudmFsdWV9KX0pfWZ1bmN0aW9uIEt1KCl7dmFyIGEsYjtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe2E9YztiPWR9KSxyZXNvbHZlOmEscmVqZWN0OmJ9fTtmdW5jdGlvbiBMdShhLGIsYyxkLGUsZil7dmFyIGc9Yy5zbGljZSgpLGg7ZD09bnVsbHx8KGg9ZC51dik9PW51bGx8fGguY2FsbChkLGEsYixjLGUpO3ZhciBsPUt1KCksbj1sLnByb21pc2UscD1sLnJlc29sdmUscT1bXSxyPWZ1bmN0aW9uKCl7cChxKTt2YXIgdTtkPT1udWxsfHwodT1kLlJzKT09bnVsbHx8dS5jYWxsKGQsYSxiLGMsZSxxKX0sdD1mdW5jdGlvbigpe3ZhciB1PWcuc2hpZnQoKTt1P3UubWV0aG9kLmlzU3VwcG9ydGVkKCk/TXUoYSxiLHUuZW5kcG9pbnQsZCxxLHUubWV0aG9kLGUsZix0LHIpOnQoKTpyKCl9O3QoKTtyZXR1cm4gbn0KZnVuY3Rpb24gTXUoYSxiLGMsZCxlLGYsZyxoLGwsbil7dmFyIHA9Yy5SKGEpLHE9e3RrOmIsZW5kcG9pbnQ6Yyxpc1ByaW1hcnk6ZyxzYjp2b2lkIDAscGs6ZixqdDp7fX0scj0hMSx0PWZ1bmN0aW9uKHosQyl7aWYocilQKDE4Nyk7ZWxzZSBpZihyPSEwLCF1KXt2YXIgRD1DfHx7fSxJPUQuYm9keSxHPUQuR2IsTj1ELmFmO0M9T2JqZWN0LmZyZWV6ZShuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LEk/e2JvZHk6SX06e30sRz97R2I6R306e30sTj97YWY6Tn06e30pKTtpZihJJiYhZi5IKCkpeCgpLGwoKTtlbHNle3ZhciBTPU51KHopLFc9cFswXT09PSIvIj8iIitwK1M6Imh0dHBzOi8vIitwK1M7cS5zYj1XO3EuanQ9Qzt2YXIgZWE7ZD09bnVsbHx8KGVhPWQuU3MpPT1udWxsfHxlYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpKTt2YXIgamE9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLmVuZHBvaW50LApldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9O2YuUj09PXZvaWQgMHx8Yy5mYSE9PTImJihjLmZhIT09MXx8ZS5sZW5ndGgpfHxrbi5yZWdpc3RlcihqYSxmLlIsVyk7dmFyIGZhPWZ1bmN0aW9uKGRhLG1hKXt4KCk7aWYocS5zdGF0dXMhPT12b2lkIDApcmV0dXJuIFAoMTkyKSwhMTtxLnN0YXR1cz1kYTtlLnB1c2gocSk7dmFyIFBhO2Q9PW51bGx8fChQYT1kLnVvKT09bnVsbHx8UGEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSxtYSk7cmV0dXJuITB9LHNhPXtGbzpqYSxyZDpmdW5jdGlvbigpe2ZhKDIpJiZsKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2ZhKDMpJiZsKCl9LHBlOmZ1bmN0aW9uKGRhKXtmYShkYS5zdGF0dXM9PT0wPzE6ZGEub2s/MDozLGRhKSYmbigpfSxqZjpmdW5jdGlvbigpe2ZhKDEpJiZuKCl9fTtPdShjLGEsVyxTLEkpO2Yuc2VuZFJlcXVlc3Qoc2EsVyxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LAp7fSxJJiZ7Ym9keTpJfSxHJiZ7R2I6R30sTiYme2FmOk59KSl9fX0sdT0hMSx2LHg9ZnVuY3Rpb24oKXt2IT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQodiksdj12b2lkIDApfTtNKDU3NCkmJih2PUEuc2V0VGltZW91dChmdW5jdGlvbigpe3Y9dm9pZCAwO3U9ITA7aWYocS5zdGF0dXM9PT12b2lkIDApe3Euc3RhdHVzPTQ7cS5zYj09PXZvaWQgMCYmKHEuc2I9IltmYWlsZWQgdG8gYnVpbGRdICIrcCk7ZS5wdXNoKHEpO3ZhciB6O2Q9PW51bGx8fCh6PWQudW8pPT1udWxsfHx6LmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksdm9pZCAwKTtsKCl9fSw1RTMpKTt2YXIgeT17SWM6cCxtZXRob2Q6Zix5djplLGlzUHJpbWFyeTpnLEN0Omh9O3RyeXtjLkgoYSx5LHQpfWNhdGNoKHope3goKSxQKDE4OCksbCgpfX0KZnVuY3Rpb24gT3UoYSxiLGMsZCxlKXtpZihhLmphKXt2YXIgZj1iLnRhcmdldC5kZXN0aW5hdGlvbklkLGc9YS5lbmRwb2ludDtpZihnPT09NDV8fGc9PT00Nnx8Zz09PTY5fHxnPT09NTh8fGc9PT01Nyl7dmFyIGg9L1s/Jl10aWRzPShbXiZdKykvLmV4ZWMoZCk7Zj1oP2RlY29kZVVSSUNvbXBvbmVudChoWzFdKS5zcGxpdCgifiIpOltmXX1NbCh7dGFyZ2V0SWQ6ZixyZXF1ZXN0Om5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se3VybDpjLHBhcmFtZXRlckVuY29kaW5nOmEucGFyYW1ldGVyRW5jb2RpbmcsZW5kcG9pbnQ6YS5lbmRwb2ludH0sZT97cG9zdEJvZHk6ZX06e30pLHFiOntldmVudElkOmIuTS5ldmVudElkLHByaW9yaXR5SWQ6Yi5NLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fQpmdW5jdGlvbiBOdShhKXtyZXR1cm4gYSYmYSE9PSI/Ij9hWzBdIT09Ij8iPyI/Ii5jb25jYXQoYSk6YToiIn07ZnVuY3Rpb24gUHUoYSxiLGMsZCxlKXt2YXIgZjtlPT1udWxsfHwoZj1lLnZ2KT09bnVsbHx8Zi5jYWxsKGUsYSxiKTtpZighYy5sZW5ndGgpe3ZhciBnO2U9PW51bGx8fChnPWUuVHMpPT1udWxsfHxnLmNhbGwoZSxhLGIsW10pO3JldHVybiBQcm9taXNlLnJlc29sdmUoW10pfXZhciBoPVtdLGw9e3RrOmIsbWs6YyxqazpkfTtoLnB1c2goTHUoYSxiLGMsZSwhMCxsKSk7Zm9yKHZhciBuPW0oZCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpaC5wdXNoKEx1KGEsYixwLnZhbHVlLGUsITEsbCkpO3JldHVybiBKdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7ZT09bnVsbHx8KHY9ZS5Ucyk9PW51bGx8fHYuY2FsbChlLGEsYixyKTtyZXR1cm4gcn0pfTtmdW5jdGlvbiBRdShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2I9PW51bGx8fChkPWIud3YpPT1udWxsfHxkLmNhbGwoYixhLGMpO2Zvcih2YXIgZT1bXSxmPW0oYyksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZS5wdXNoKFJ1KGEsZy52YWx1ZSkpO2Zvcih2YXIgaD1bXSxsPW0oZSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aC5wdXNoKFB1KGEscC50ayxwLm1rLHAuamssYikpfUp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtiPT1udWxsfHwodj1iLlFzKT09bnVsbHx8di5jYWxsKGIsYSxjLHIpfSl9CmZ1bmN0aW9uIFJ1KGEsYil7dmFyIGM9ZnVuY3Rpb24oZil7cmV0dXJuIGYubWV0aG9kLmlzU3VwcG9ydGVkKCkmJmYuZW5kcG9pbnQuaXNTdXBwb3J0ZWQoYSkmJmYuZW5kcG9pbnQuSyhhKX0sZD0oYi5IKGEpfHxbXSkuZmlsdGVyKGMpLGU9W107ZC5sZW5ndGgmJihlPShiLksoYSl8fFtdKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuZmlsdGVyKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmxlbmd0aD4wfSkpO3JldHVybnt0azpiLG1rOmQsams6ZX19Owp2YXIgU3U9ZnVuY3Rpb24oYSxiKXtpZihNKDUxNykmJklmKDQ3KSYmYT09PTQ1KXJldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0PyIrYi5zcGxpdCgiPyIpWzFdKyImZ2FwLjFwZmI9MSJ9LFd1PWZ1bmN0aW9uKCl7dmFyIGE9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGEubGVuZ3RoKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9VHUoZS5rZSwiYXB2YyIpLGc9VHUoZS5rZSwidGZ0IiksaD1UdShlLmtlLCJ0ZmQiKSxsPVR1KGUua2UsInRpZCIpLG49Tm0oZS5lbmRwb2ludCxlLmtlKSxwPWJbbl09YltuXXx8e3hrOltdLFpoOltdfTtwLlpoLnB1c2goZSk7bD8ocC54ay5wdXNoKGwpLHAudWR8fChwLnVkPWwpKTpwLnhrLnB1c2goIiIpO2Y9PT0iMSImJihwLlFuPSEwKTtpZihnfHxoKXAuTm49ITB9YS5sZW5ndGg9MDtmb3IodmFyIHE9bShPYmplY3Qua2V5cyhiKSkscj1xLm5leHQoKSx0PXt9OyFyLmRvbmU7dD0Ke3lrOnZvaWQgMH0scj1xLm5leHQoKSl7dmFyIHU9ci52YWx1ZSx2PWJbdV07dC55az12LnhrO3ZhciB4PXQueWsuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihJLEcpe3JldHVybiBELnlrLmluZGV4T2YoSSk9PT1HfX0odCkpLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4hIUR9KTtpZihNKDQyNykpe3ZhciB5PVV1KHYseCk7UXUoeSx2b2lkIDAsQXUpfWVsc2V7dmFyIHo9dSsiJmFwdmM9Iisodi5Rbj8iMSI6IjAiKTt4Lmxlbmd0aCYmKHorPSImdGlkcz0iK3guam9pbigifiIpKTt2LnVkJiYoeis9IiZ0aWQ9Iit2LnVkKTtpZih2Lk5uKXt6Kz0iJnRmdD0iK1N0cmluZyhOYigpKTt2YXIgQz1wZCgpO0MhPT12b2lkIDAmJih6Kz0iJnRmZD0iK1N0cmluZyhNYXRoLnJvdW5kKEMpKSl9VnUodi5aaFswXS5ldmVudCx6LHYuWmhbMF0uZW5kcG9pbnQseC5sZW5ndGg/eDpbIiJdKX19fX0sVHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMhPT12b2lkIDApcmV0dXJuIGRlbGV0ZSBhW2JdLApjfSxWdT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPWZ1bmN0aW9uKGwsbil7dmFyIHA9YitYdShsKTtUbChwLGEsYyxkKTtyZXR1cm4gbihwKX07aWYobmQoKSl7dmFyIGc9ZnVuY3Rpb24oKXt9LGg9U3UoYyxiKTtoIT09dm9pZCAwJiYoZz1mdW5jdGlvbigpe1luKGUsaCtYdSg4KSx2b2lkIDAse1FnOiEwfSl9KTtmKDgsZnVuY3Rpb24obCl7WW4oZSxsLHZvaWQgMCx7UWc6ITB9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGIrWHUoMyksZnVuY3Rpb24oKXt9LGcpfSl9KX1lbHNlIGYoNSxmdW5jdGlvbihsKXtyZXR1cm4gV24oZSxsKX0pfHxaYyhiK1h1KDMpKX0sVXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlpoWzBdLGQ9eyJfJmFwdmMiOmEuUW4/IjEiOiIwIn07Yi5sZW5ndGg+MCYmKGRbIl8mdGlkcyJdPQpiLmpvaW4oIn4iKSk7aWYoYS5Obil7ZFsiXyZ0ZnQiXT1TdHJpbmcoTmIoKSk7dmFyIGU9cGQoKTtlIT09dm9pZCAwJiYoZFsiXyZ0ZmQiXT1TdHJpbmcoTWF0aC5yb3VuZChlKSkpfXJldHVybiBZdShjLmV2ZW50LGEudWR8fCIiLGQpfSxZdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLnRhcmdldCx7ZGVzdGluYXRpb25JZDpifSksZT1adShhLHt0YXJnZXQ6ZH0pO2J8fFUoZSxGLkQuUWUpO2Zvcih2YXIgZj1tKE9iamVjdC5rZXlzKGMpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtVKGUsaCxjW2hdKX1yZXR1cm4gZX0sWHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgODpjYXNlIDM6Y2FzZSA1OnJldHVybiImZm10PSIrYTtkZWZhdWx0OnJldHVybiIifX0sJHU9ZnVuY3Rpb24oYSxiKXthPVp1KGEpO1YoYSxILkouRGssWG8oZnApKTtUdCgpJiZVKGEsIl8mZ2NzIixVdCgpKTsKVShhLCJfJmdjZCIsWXQoYS5NKSk7dmFyIGM9WG8oZnApPzQ1OjQ2LGQ9ZnVuY3Rpb24oKXt2YXIgZj1iLnRpZDtpZihNKDQyNykpe3ZhciBnPVl1KGEsZixiKTtRdShnLHZvaWQgMCxBdSl9ZWxzZXt2YXIgaD1ObShjLGIpO1Z1KGEsaCxjLFtmXSl9fTtpZih5YihBLnF1ZXVlTWljcm90YXNrKSl7dmFyIGU9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGUubGVuZ3RoPT09MCl0cnl7QS5xdWV1ZU1pY3JvdGFzayhXdSl9Y2F0Y2goZil7R3UoVC5XLmZqKTtkKCk7cmV0dXJufWI9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiKTtlLnB1c2goe2V2ZW50OmEsa2U6YixlbmRwb2ludDpjfSl9ZWxzZSBHdShULlcuZmopLGQoKX07dmFyIGF2PWZ1bmN0aW9uKGEsYixjLGQpe2d1LmNhbGwodGhpcyxhLGIsYz09PXZvaWQgMD8xOmMsZD09PXZvaWQgMD8hMTpkLDMsdm9pZCAwKX07d2EoYXYsZ3UpO2F2LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQueWkpO3JldHVybiBiKyIvIitjKyIvIn07YXYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMueWEoYSxndS5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkpfTt2YXIgWD17Vjp7TWs6ImNhbGxfY29udmVyc2lvbiIsemQ6ImNjbV9jb252ZXJzaW9uIixRazoiY29tbW9uX2F3Iix4YToiY29udmVyc2lvbiIsd3E6ImZsb29kbGlnaHQiLFlkOiJnYV9jb252ZXJzaW9uIixaZDoiZ2NwX3JlbWFya2V0aW5nIixLYToicGFnZV92aWV3Iix1YjoicmVtYXJrZXRpbmciLE9iOiJ1c2VyX2RhdGFfbGVhZCIsRmI6InVzZXJfZGF0YV93ZWIifX07ZnVuY3Rpb24gYnYoYSxiKXtiJiZHYihiLGZ1bmN0aW9uKGMsZCl7dHlwZW9mIGQhPT0ib2JqZWN0IiYmZCE9PXZvaWQgMCYmKGFbIjFwLiIrY109U3RyaW5nKGQpKX0pfTsKdmFyIGN2PWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC5zaCk7aWYoYylmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhjKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1jW2ZdO2chPW51bGwmJihiWyJndG1kLiIrZl09U3RyaW5nKGcpKX19LGd2PWZ1bmN0aW9uKGEpe3ZhciBiPWR2KGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1ldihhKS5WbixkPWZ2KGMpfHwiIjtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9ZnYoZSk7cmV0dXJuIiIrZCsoZCYmZj8iOyI6IiIpK2Z9KX19LGR2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1odihhKSxjPXt9LGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPXZvaWQgMDtpZihmLmhhc093blByb3BlcnR5KCJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiKSl7Zz1mLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbDt2YXIgaD17fTtjW2ddPWNbZ118fChoLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD0KZyxoKX1lbHNlIGc9IiIsYy5oYXNPd25Qcm9wZXJ0eShnKXx8KGNbZ109e30pO3ZhciBsPWNbZ10sbjtmb3IobiBpbiBmKW4hPT0iZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIiYmKG4gaW4gbHx8KGxbbl09W10pLGxbbl0ucHVzaChmW25dKSl9cmV0dXJuIE9iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gY1twXX0pfSxodj1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELkhhKTtyZXR1cm4gYiYmYi5sZW5ndGg/Yi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkPXt9O3JldHVybiBkLmlkPWlpKGMpLGQub3JpZ2luPWMub3JpZ2luLGQuZGVzdGluYXRpb249Yy5kZXN0aW5hdGlvbixkLnN0YXJ0X2RhdGU9Yy5zdGFydF9kYXRlLGQuZW5kX2RhdGU9Yy5lbmRfZGF0ZSxkLmxvY2F0aW9uX2lkPWMubG9jYXRpb25faWQsZC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9Yy5nb29nbGVfYnVzaW5lc3NfdmVydGljYWwsZH0pOltdfSwKaWk9ZnVuY3Rpb24oYSl7YS5pdGVtX2lkIT1udWxsJiYoYS5pZCE9bnVsbD8oUCgxMzgpLGEuaWQhPT1hLml0ZW1faWQmJlAoMTQ4KSk6UCgxNTMpKTtyZXR1cm4gamkoYSl9LGZ2PWZ1bmN0aW9uKGEpe2lmKGEmJnR5cGVvZiBhPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGEpKXJldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9aXYoYik7aWYoYyl7dmFyIGQ9YVtiXSxlPUFycmF5LmlzQXJyYXkoZCk/anYoZCk6aXYoZCk7aWYoZSE9PXZvaWQgMClyZXR1cm4gYysiPSIrZX19KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIhPT12b2lkIDB9KS5qb2luKCI7Iil9LGp2PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWFwKGl2KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMhPT12b2lkIDB9KTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIsIik6dm9pZCAwfSxpdj1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj10eXBlb2YgYTtpZihiIT09Im9iamVjdCImJgpiIT09ImZ1bmN0aW9uIilyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLywvZywiXFwsIikucmVwbGFjZSgvOy9nLCJcXDsiKS5yZXBsYWNlKC89L2csIlxcPSIpfX0sa3Y9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1hW2JdO2lmKGMhPW51bGwmJihjIT09IiJ8fHlnW2JdKSlyZXR1cm4gYz09PSEwfHxjPT09ITE/YisiPSIrKGM/MTowKTpiKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkuam9pbigiJiIpfSxsdj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPXt9LGQ9UShhLEguSi5FYik7aWYoYj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi5ZZHx8Yj09PVguVi56ZHx8Yj09PVguVi5aZCljLnJhbmRvbT0iIitkO2I9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQ/KGMuY3Y9IjExIixjLmZzdD0iIitkLGMuZm10PSIzIiwKYy5iZz0iZmZmZmZmIixjLmd1aWQ9Ik9OIixjLmFzeW5jPSIxIixjLmVuPWEuZXZlbnROYW1lKTpiPT09WC5WLllkJiYoYy5jdj0iMTEiLGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYy5mc3Q9IiIrZCxjLmZtdD0iOCIsYy5lbj1hLmV2ZW50TmFtZSk7dmFyIGU9QnMoWyJhdyIsImRjIl0pO2UhPW51bGwmJihjLmdhZF9zb3VyY2U9ZSk7Yy5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7YiE9PVguVi51YiYmVHQoKSYmKGMuZ2NzPVV0KCkpO2MuZ2NkPVl0KGEuTSk7YXUoKSYmKGMuZG1hX2Nwcz1adCgpKTtjLmRtYT0kdCgpO3Z0KEV0KCkpJiYoYy50Y2ZkPWJ1KCkpO3ZhciBmPUNwKGEpO2YmJihjLnRhZ19leHA9Zik7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYy5saW1pdGVkX2Fkcz0iMSIpO1IoYSxGLkQuYmQpJiZmaShSKGEsRi5ELmJkKSxjKTtpZihSKGEsCkYuRC50Yikpe3ZhciBnPVIoYSxGLkQudGIpO2cmJihnLmxlbmd0aD09PTI/Z2koYywiaGwiLGcpOmcubGVuZ3RoPT09NSYmKGdpKGMsImhsIixnLnN1YnN0cmluZygwLDIpKSxnaShjLCJnbCIsZy5zdWJzdHJpbmcoMyw1KSkpKX12YXIgaD1RKGEsSC5KLlllKSxsPWZ1bmN0aW9uKEksRyl7dmFyIE49UihhLEcpO04mJihjW0ldPWg/WnMoTik6Til9O2woInVybCIsRi5ELnphKTtsKCJyZWYiLEYuRC5VYSk7bCgidG9wIixGLkQuUGUpO3ZhciBuPWd0KGEsRi5ELkJkLEYuRC5DZCk7biYmKGMuZ2NsYXdfc3JjPW4pO3ZhciBwPWd0KGEsRi5ELmZoLEYuRC5naCk7cCYmKGMuZ2NsZ2Jfc3JjPXApO3ZhciBxPWZ1bmN0aW9uKEksRyl7Zm9yKHZhciBOPW0oT2JqZWN0LmtleXMoSSkpLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlO2VpW1ddJiZ0eXBlb2YgSVtXXT09PSJzdHJpbmciJiYoR1siZXh0LiIrZWlbV11dPUlbV10pfX0scj1SKGEsRi5ELldjKTtyJiYKcShyLGMpO3ZhciB0PWV2KGEpLHU9dC5WbjtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsdC5rZSk7YnYoYyxSKGEsRi5ELmVkKSk7dmFyIHY9UihhLEYuRC5OZSk7diE9PXZvaWQgMCYmdiE9PSIiJiYoYy52ZG5jPVN0cmluZyh2KSk7dmFyIHg9UihhLEYuRC5MZCk7eCE9PXZvaWQgMCYmKGMuc2hmPXgpO3ZhciB5PVIoYSxGLkQuVGMpO3khPT12b2lkIDAmJihjLmRlbGM9eSk7aWYoYiE9PVguVi5ZZCl7dmFyIHo9ZnYodSk7eiYmKGMuZGF0YT16KX12YXIgQz1SKGEsRi5ELkhhKTtpZihDJiYoYj09PVguVi54YXx8Yj09PVguVi5ZZHx8Yj09PVguVi5aZHx8Yj09PVguVi56ZCkpe3ZhciBEPW5pKEMpO0QhPT12b2lkIDAmJihjLmllZGVsZD1EKTtjLml0ZW09aGkoQyl9aHQoYSxjKTtjdihhLGMpO1EoYSxILkouSWgpJiYoYy5hZWNzPSIxIik7YiE9PVguVi54YXx8UShhLEguSi5FYyl8fFEoYSxILkoub2IpfHwoYy5jYXRlZ29yeT0iYWNyY3BfdjFfNTEyIik7cmV0dXJuIGN9LApldj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz17fSxkPVEoYSxILkouZGEpLGU9bShldShhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1SKGEsZyk7aWYoaCE9PXZvaWQgMClpZihTYihnLCJfJiIpKWJbZy5zdWJzdHJpbmcoMildPWg7ZWxzZSBpZihlaS5oYXNPd25Qcm9wZXJ0eShnKSl7aWYoZyE9PUYuRC5FaXx8ZD09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgbD1laVtnXTtsJiYoZyE9PUYuRC5OZCYmZyE9PUYuRC5NZHx8TSg1MDQpP2JbbF09aDpjW2ddPWgpfX1lbHNlIGNbZ109aH1yZXR1cm57a2U6YixWbjpjfX07dmFyIG12PXtOZzoidmFsdWUiLHBiOiJjb252ZXJzaW9uQ291bnQiLE9nOjF9LG52PXtOZzoidGltZW91dHMiLHBiOiJ0aW1lb3V0cyIsT2c6MH0sb3Y9e05nOiJlb3BDb3VudCIscGI6ImVuZE9mUGFnZUNvdW50IixPZzowfSxwdj17Tmc6ImVycm9ycyIscGI6ImVycm9ycyIsT2c6MH0scXY9W212LG52LHB2LG92XTtmdW5jdGlvbiBydihhLGIpe2I9Yj09PXZvaWQgMD8xOmI7aWYoIXN2KGEpKXJldHVybnt9O3ZhciBjPXR2KHF2KSxkPWNbYS5wYl07aWYoZD09PXZvaWQgMHx8ZD09PS0xKXJldHVybiBjO3ZhciBlPXt9LGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLChlW2EucGJdPWQrYixlKSk7cmV0dXJuIHV2KGYpP2Y6Y30KZnVuY3Rpb24gdHYoYSl7dmFyIGI7YTp7dmFyIGM9bnIoImdjbF9jdHIiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTt0cnl7Yj0idmFsdWUiaW4gZCYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Ij9kLnZhbHVlOnZvaWQgMDticmVhayBhfWNhdGNoKHApe319Yj12b2lkIDB9Zm9yKHZhciBlPWIsZj17fSxnPW0oYSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7aWYoZSYmc3YobCkpe3ZhciBuPWVbbC5OZ107bj09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKG4pP2ZbbC5wYl09LTE6ZltsLnBiXT1OdW1iZXIobil9ZWxzZSBmW2wucGJdPS0xfXJldHVybiBmfQpmdW5jdGlvbiB1dihhLGIpe2I9Ynx8e307Zm9yKHZhciBjPU5iKCksZD11cShiLGMsITApLGU9e30sZj1tKHF2KSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZSxsPWFbaC5wYl07bCE9PXZvaWQgMCYmbCE9PS0xJiYoZVtoLk5nXT1sKX1lLmNyZWF0aW9uVGltZU1zPWM7cmV0dXJuIGtyKCJnY2xfY3RyIix7dmFsdWU6ZSxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfSk9PT0wPyEwOiExfWZ1bmN0aW9uIHN2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuZnR8fFlmKGEuZnQpOiExfWZ1bmN0aW9uIHZ2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuQXN8fFlmKGEuQXMpOiExfTtmdW5jdGlvbiB3digpe2lmKHh2KCkpe3ZhciBhPW5yKCJsYXN0X2NvbnZzIik7aWYoYS5lcnJvcj09PTAmJmEudmFsdWUmJnR5cGVvZiBhLnZhbHVlPT09Im9iamVjdCIpe3ZhciBiPWEudmFsdWU7aWYoYi52YWx1ZSYmQXJyYXkuaXNBcnJheShiLnZhbHVlKSl7dmFyIGM9Yi52YWx1ZTtpZighKGMubGVuZ3RoPjEpKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKHR5cGVvZiBnIT09Im9iamVjdCJ8fGc9PT1udWxsfHx0eXBlb2YgZy5yYW5kb20hPT0ibnVtYmVyInx8dHlwZW9mIGcubGFiZWwhPT0ic3RyaW5nInx8Zy5sYWJlbC5sZW5ndGg+MjAwKXJldHVybjtkLnB1c2goe3JhbmRvbTpnLnJhbmRvbSxsYWJlbDpnLmxhYmVsfSl9cmV0dXJuIGR9fX19fQpmdW5jdGlvbiB5dihhLGIpeyF4digpfHxhLmxlbmd0aD4xfHxhLmxlbmd0aD09PTEmJmFbMF0ubGFiZWwubGVuZ3RoPjIwMHx8KGI9Ynx8e30sa3IoImxhc3RfY29udnMiLHt2YWx1ZTphLGV4cGlyZXM6TnVtYmVyKHVxKGIpLmV4cGlyZXMpfSkpfWZ1bmN0aW9uIHh2KCl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSYmWWYoMTEpfTtmdW5jdGlvbiB6dihhKXt2YXIgYj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7cmV0dXJuIGE/U3RyaW5nKGJebmcoYSkmMjE0NzQ4MzY0Nyk6U3RyaW5nKGIpfWZ1bmN0aW9uIEF2KGEpe3JldHVyblt6dihhKSxNYXRoLnJvdW5kKE5iKCkvMUUzKV0uam9pbigiLiIpfWZ1bmN0aW9uIEJ2KGEsYixjLGQsZSl7dmFyIGY9cnEoYiksZztyZXR1cm4oZz1ncShhLGYsc3EoYyksZCxlKSk9PW51bGw/dm9pZCAwOmcuQ3J9O3ZhciBDdj1bIjEiXSxEdj17fSxFdj17fTtmdW5jdGlvbiBGdihhKXtyZXR1cm4gRXZbR3YoYSldfWZ1bmN0aW9uIEh2KGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9R3YoYS5wcmVmaXgpO2lmKER2W2NdKUl2KGEpLEp2KGEpO2Vsc2UgaWYoS3YoYyxhLnBhdGgsYS5kb21haW4pKXt2YXIgZD1GdihhLnByZWZpeCl8fHtpZDp2b2lkIDAsa2M6dm9pZCAwfTtiJiZMdihhLGQpO0l2KGEpO0p2KGEpfWVsc2V7dmFyIGU9VGooImF1aWRkYyIpO2lmKGUpc2IoIlRBR0dJTkciLDE3KSxEdltjXT1lO2Vsc2UgaWYoYil7dmFyIGY9R3YoYS5wcmVmaXgpLGc9QXYoKTtNdihmLGcsYSk7S3YoYyxhLnBhdGgsYS5kb21haW4pO0l2KGEsITApO0p2KGEsITApfX19CmZ1bmN0aW9uIEl2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmc3YobXYpJiZvcigiZ2NsX2N0ciIpO2lmKHZ2KG12KSYmdHYoW212XSlbbXYucGJdPT09LTEpe2Zvcih2YXIgYz17fSxkPShjW212LnBiXT0wLGMpLGU9bShxdiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyE9PW12JiZ2dihnKSYmKGRbZy5wYl09MCl9dXYoZCxhKX19ZnVuY3Rpb24gSnYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZ4digpJiZvcigibGFzdF9jb252cyIpOyFCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSl8fCFZZigxMil8fHd2KCl8fHl2KFtdLGEpfQpmdW5jdGlvbiBMdihhLGIpe3ZhciBjPUd2KGEucHJlZml4KSxkPUR2W2NdO2lmKGQpe3ZhciBlPWQuc3BsaXQoIi4iKTtpZihlLmxlbmd0aD09PTIpe3ZhciBmPU51bWJlcihlWzFdKXx8MDtpZihmKXt2YXIgZz1kO1lmKDE5KSYmYi5maT9nPWQrIi4iKyhiLnNlc3Npb25JZHx8Ii0uLSIpKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSsiLiIrYi5maSsiLiIrKGIuTGM/Yi5MYzpNYXRoLmZsb29yKE5iKCkvMUUzKSk6Yi5zZXNzaW9uSWQmJihnPWQrIi4iK2Iuc2Vzc2lvbklkKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSk7TXYoYyxnLGEsZioxRTMpfX19fWZ1bmN0aW9uIE12KGEsYixjLGQpe3ZhciBlO2U9WyIxIix0cShjLmRvbWFpbixjLnBhdGgpLGJdLmpvaW4oIi4iKTt2YXIgZj11cShjLGQpO2YuTWM9TnYoKTtvcShhLGUsZil9CmZ1bmN0aW9uIEt2KGEsYixjKXt2YXIgZD1CdihhLGIsYyxDdixOdigpKTtpZighZClyZXR1cm4hMTtPdihhLGQpO3JldHVybiEwfWZ1bmN0aW9uIE92KGEsYil7dmFyIGM9Yi5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09MylFdlthXT17c2Vzc2lvbklkOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2Vsc2UgaWYoYy5sZW5ndGg+PTImJihEdlthXT1jWzBdKyIuIitjWzFdLGMuc2hpZnQoKSxjLnNoaWZ0KCksYy5sZW5ndGg+PTMpKXt2YXIgZD17c2Vzc2lvbklkOmNbMF09PT0iLSI/dm9pZCAwOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2lmKFlmKDE5KSYmYy5sZW5ndGg+PTYpe3ZhciBlPWNbM10rIi4iK2NbNF0sZj1OdW1iZXIoY1s1XSl8fDA7ZSYmZiE9PTAmJihkLmZpPWUsZC5MYz1mKX1FdlthXT1kfX1mdW5jdGlvbiBHdihhKXtyZXR1cm4oYXx8Il9nY2wiKSsiX2F1In0KZnVuY3Rpb24gUHYoYSl7ZnVuY3Rpb24gYigpe0JsKGMpJiZhKCl9dmFyIGM9TnYoKTtIbChmdW5jdGlvbigpe2IoKTtCbChjKXx8SWwoYixjKX0sYyl9ZnVuY3Rpb24gUXYoYSl7dmFyIGI9VXEoITApLGM9R3YoYS5wcmVmaXgpO1B2KGZ1bmN0aW9uKCl7dmFyIGQ9YltjXTtpZihkKXtPdihjLGQpO3ZhciBlPU51bWJlcihEdltjXS5zcGxpdCgiLiIpWzFdKSoxRTM7aWYoZSl7c2IoIlRBR0dJTkciLDE2KTt2YXIgZj11cShhLGUpO2YuTWM9TnYoKTt2YXIgZz1bIjEiLHRxKGEuZG9tYWluLGEucGF0aCksZF0uam9pbigiLiIpO29xKGMsZyxmKX19fSl9ZnVuY3Rpb24gUnYoYSxiLGMsZCxlKXtlPWV8fHt9O3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGc9e30saD1CdihhLGUucGF0aCxlLmRvbWFpbixDdixOdigpKTtoJiYoZ1thXT1oKTtyZXR1cm4gZ307UHYoZnVuY3Rpb24oKXthcihmLGIsYyxkKX0pfQpmdW5jdGlvbiBOdigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfTsKdmFyIFR2PWZ1bmN0aW9uKGEpe3JldHVybiBTdihhLHtPajohMH0pLlNofSxTdj1mdW5jdGlvbihhLGIpe2E9YXx8e307aWYoIVhvKEYuRC5rYSkpcmV0dXJue307dmFyIGM9VXYoYSksZD1jLlNoLGU9Yy5paztiLk9qJiYhZCYmKGQ9QXYoKSk7Yi5YaCYmIWUmJihlPUF2KCkpO3ZhciBmPXt9O2QmJihmLnNlc3Npb25JZD1kKTtlJiYoZi5maT1lKTt2YXIgZz1GdihIcihhLnByZWZpeCkpO2cmJihiLk9qJiYhYi5YaD9nLkxjJiYoZi5MYz1nLkxjKTpiLlhoJiYhYi5PaiYmZy5rYyYmKGYua2M9Zy5rYykpO2lmKGR8fGUpe3ZhciBoPWEsbD1HdihoLnByZWZpeCk7THYoaCxmKTtkZWxldGUgRHZbbF07ZGVsZXRlIEV2W2xdO0t2KGwsaC5wYXRoLGguZG9tYWluKX1yZXR1cm4gVXYoYSl9LFV2PWZ1bmN0aW9uKGEpe2lmKCFYbyhGLkQua2EpKXJldHVybnt9O2E9YXx8e307SHYoYSwhMSk7dmFyIGI9RnYoSHIoYS5wcmVmaXgpKTtpZighYilyZXR1cm57fTt2YXIgYz1OYigpLGQ9e307aWYoYy0KYi5rYyoxRTM8PShNKDQ1MCl8fE0oNDQzKT84NjRFNToxOEU1KSl7dmFyIGU9Yi5zZXNzaW9uSWQ7aWYoZSl7dmFyIGY9ZS5zcGxpdCgiLiIpO2YubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGZbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5TaD1lKX19aWYoYi5MYyYmYy1iLkxjKjFFMzw9ODY0RTUpe3ZhciBnPWIuZmk7aWYoZyl7dmFyIGg9Zy5zcGxpdCgiLiIpO2gubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGhbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5paz1nKX19cmV0dXJuIGR9O3ZhciBWdj0iZW1haWwgZW1haWxfYWRkcmVzcyBzaGEyNTZfZW1haWxfYWRkcmVzcyBwaG9uZV9udW1iZXIgc2hhMjU2X3Bob25lX251bWJlciBmaXJzdF9uYW1lIGxhc3RfbmFtZSIuc3BsaXQoIiAiKSxXdj0iZmlyc3RfbmFtZSBzaGEyNTZfZmlyc3RfbmFtZSBsYXN0X25hbWUgc2hhMjU2X2xhc3RfbmFtZSBzdHJlZXQgc2hhMjU2X3N0cmVldCBjaXR5IHJlZ2lvbiBjb3VudHJ5IHBvc3RhbF9jb2RlIi5zcGxpdCgiICIpO2Z1bmN0aW9uIFh2KGEsYil7aWYoIWIuX3RhZ19tZXRhZGF0YSl7Zm9yKHZhciBjPXt9LGQ9MCxlPTA7ZTxhLmxlbmd0aDtlKyspZCs9WXYoYVtlXSxiLGMpPzE6MDtkPjAmJihiLl90YWdfbWV0YWRhdGE9Yyl9fQpmdW5jdGlvbiBZdihhLGIsYyl7dmFyIGQ9YlthXTtpZihkPT09dm9pZCAwfHxkPT09bnVsbClyZXR1cm4hMTtjW2FdPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToiYyJ9fSk6e21vZGU6ImMifTtyZXR1cm4hMH1mdW5jdGlvbiBadihhKXtpZihNKDUyMykmJmEpe1h2KFZ2LGEpO2Zvcih2YXIgYj1CYihhLmFkZHJlc3MpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkJiZYdihXdixkKX12YXIgZT1hLmhvbWVfYWRkcmVzcztlJiZYdihXdixlKX19CmZ1bmN0aW9uICR2KGEsYixjKXtmdW5jdGlvbiBkKGYsZyl7Zz1TdHJpbmcoZykuc3Vic3RyaW5nKDAsMTAwKTtlLnB1c2goIiIrZitlbmNvZGVVUklDb21wb25lbnQoZykpfWlmKCFjKXJldHVybiIiO3ZhciBlPVtdO2QoImkiLFN0cmluZyhhKSk7ZCgiZiIsYik7Yy5tb2RlJiZkKCJtIixjLm1vZGUpO2MuaXNQcmVIYXNoZWQmJmQoInAiLCIxIik7Yy5yYXdMZW5ndGgmJmQoInIiLFN0cmluZyhjLnJhd0xlbmd0aCkpO2Mubm9ybWFsaXplZExlbmd0aCYmZCgibiIsU3RyaW5nKGMubm9ybWFsaXplZExlbmd0aCkpO2MubG9jYXRpb24mJmQoImwiLGMubG9jYXRpb24pO2Muc2VsZWN0b3ImJmQoInMiLGMuc2VsZWN0b3IpO3JldHVybiBlLmpvaW4oIi4iKX07dmFyIGF3PXZvaWQgMDtmdW5jdGlvbiBidygpe2lmKCFhdyl7dmFyIGE9b20oam0uYmEub3AsbmV3IE1hcCk7YXc9bmV3IG9nKGEpfXJldHVybiBhd307CnZhciBjdz1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gYTtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlIT09ImFkZHJlc3MiJiZlIT09InBob25lX251bWJlciImJmUhPT0ic2hhMjU2X3Bob25lX251bWJlciImJihiW2VdPWFbZV0pfXJldHVybiBifSxmdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1bInR2LjEiXSxkPVsidHZkLjEiXSxlPWR3KGEpO2lmKGUpcmV0dXJuIGMucHVzaChlKSx7aGFzVXBkOiExLE9vOmMuam9pbigifiIpLFluOmMuam9pbigifiIpLGVuY3J5cHRpb25LZXlTdHJpbmc6dm9pZCAwLGlpOnt9LG1ldGFkYXRhUGFyYW06Yj9kLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBmPXt9LGc9MDt2YXIgaD0wLGw9ZXcoYSxmdW5jdGlvbihxLHIsdCl7aCsrO3ZhciB1PXEudmFsdWUsdjsKaWYodCl7dmFyIHg9cisiX18iK2crKzt2PSIke3VzZXJEYXRhLiIreCsifHNoYTI1Nn0iO2ZbeF09dX1lbHNlIHY9ZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1KSk7cS5pbmRleCE9PXZvaWQgMCYmKHIrPXEuaW5kZXgpO2MucHVzaChyKyIuIit2KTtpZihiKXt2YXIgeT0kdihoLHIscS5tZXRhZGF0YSk7eSYmZC5wdXNoKHkpfX0pLmhhc1VwZCxuPWQuam9pbigifiIpO3ZhciBwPWMuam9pbigifiIpO3JldHVybntoYXNVcGQ6bCxPbzpwLGlpOnt1c2VyRGF0YTpmfSxZbjoidHYuMX4keyIrKHArInwiKyhNKDU1NSk/ImVuY3J5cHRfd2l0aF9tZW1vIjoiZW5jcnlwdCIpKyJ9IiksZW5jcnlwdGlvbktleVN0cmluZzpFKDQzKSxtZXRhZGF0YVBhcmFtOmI/bjp2b2lkIDB9fSxodz1mdW5jdGlvbihhKXtpZighKGEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKSlyZXR1cm4hMTsKdmFyIGI9Z3coYSk7cmV0dXJuIGV3KGIsZnVuY3Rpb24oKXt9KS5oYXNVcGR9LGV3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpiO2Zvcih2YXIgYz0hMSxkPSExLGU9bShhKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnLnZhbHVlKXt2YXIgaD1pd1tnLm5hbWVdO2lmKGgpe3ZhciBsPWp3KGcpO2wmJihjPSEwKTtkPSEwO2IoZyxoLGwpfX19cmV0dXJue2hhc1VwZDpkLGhhc1VwZFRvSGFzaDpjfX0sanc9ZnVuY3Rpb24oYSl7dmFyIGI9a3coYS5uYW1lKSxjPS9eZVxkKyQvLnRlc3QoYS52YWx1ZSksZDtpZihkPWImJiFjKXt2YXIgZT1hLnZhbHVlO2Q9IShsdy50ZXN0KGUpfHx5aS50ZXN0KGUpKX1yZXR1cm4gZH0sa3c9ZnVuY3Rpb24oYSl7cmV0dXJuIG13LmluZGV4T2YoYSkhPT0tMX0sc3c9ZnVuY3Rpb24oYSxiLGMpe2lmKHliKEEuUHJvbWlzZSkpdHJ5e3ZhciBkPSExO3ZhciBlPWd3KGEsZCksZj1udyhlKS50aGVuKGZ1bmN0aW9uKGgpe3ZhciBsPWgueWIsbj1sLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hU2IocS5uYW1lLCJyYXciKX0pLHA9b3coe3liOm59KTtyZXR1cm57cmVzdWx0OntwYXJhbTpwLnBhcmFtLGhhc1VwZFRvSGFzaDpwLmhhc1VwZFRvSGFzaCxoYXNVcGQ6cC5oYXNVcGQsaGFkRXJyb3I6cC5oYWRFcnJvcixtZXRhZGF0YVBhcmFtOnAubWV0YWRhdGFQYXJhbX0seWI6bH19KTtyZXR1cm4gZi50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBoLnJlc3VsdH0pfWNhdGNoKGgpe319LHF3PWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn0sb3c9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9YS55YixkPVsidHYuMSJdLGU9WyJ0dmQuMSJdLGY9ZHcoYyk7aWYoZilyZXR1cm4gZC5wdXNoKGYpLHtwYXJhbTpkLmpvaW4oIn4iKSxoYXNVcGRUb0hhc2g6ITEsaGFzVXBkOiExLGhhZEVycm9yOiEwLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBnPWMuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFqdyhxKX0pLGg9MCxsPWV3KGcsZnVuY3Rpb24ocSxyKXtoKys7dmFyIHQ9cS52YWx1ZSx1PXEuaW5kZXg7dSE9PXZvaWQgMCYmKHIrPXUpO2QucHVzaChyKyIuIit0KTtpZihiKXt2YXIgdj0kdihoLHIscS5tZXRhZGF0YSk7diYmZS5wdXNoKHYpfX0pLG49bC5oYXNVcGRUb0hhc2gscD1sLmhhc1VwZDtyZXR1cm57cGFyYW06ZW5jb2RlVVJJQ29tcG9uZW50KGQuam9pbigifiIpKSwKaGFzVXBkVG9IYXNoOm4saGFzVXBkOnAsaGFkRXJyb3I6ITEsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH19LGR3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiBpdy5lcnJvcl9jb2RlKyIuIithWzBdLnZhbHVlfSxwdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4hMTtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihpd1tkLm5hbWVdJiZkLnZhbHVlKXJldHVybiEwfXJldHVybiExfSxndz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO2lmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iaHR0cHM6IilyZXR1cm4gYy5wdXNoKHtuYW1lOiJlcnJvcl9jb2RlIix2YWx1ZToiZTMiLGluZGV4OnZvaWQgMH0pLGM7dmFyIGQ9Yy5wdXNoLGU9ZC5hcHBseSxmPVtdLApnPWYuY29uY2F0LGgsbD1hLl90YWdfbWV0YWRhdGF8fHt9O2g9W10uY29uY2F0KHcodHcoe25hbWU6ImVtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzLGFiOmwuZW1haWwsbWQ6bC5zaGEyNTZfZW1haWxfYWRkcmVzc30sdXcpKSx3KHR3KHtuYW1lOiJwaG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXIsYWI6bC5waG9uZV9udW1iZXIsbWQ6bC5zaGEyNTZfcGhvbmVfbnVtYmVyfSx2dykpKTt2YXIgbj13KGgpLHAscT1hLl90YWdfbWV0YWRhdGF8fHt9LHI9YS5ob21lX2FkZHJlc3N8fHt9LHQ9ci5fdGFnX21ldGFkYXRhfHx7fTtwPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWUsYWI6cS5maXJzdF9uYW1lLG1kOnEuc2hhMjU2X2ZpcnN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLApTYTphLnNoYTI1Nl9sYXN0X25hbWUsYWI6cS5sYXN0X25hbWUsbWQ6cS5zaGEyNTZfbGFzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzpyLnN0cmVldCxTYTpyLnNoYTI1Nl9zdHJlZXQsYWI6dC5zdHJlZXQsbWQ6dC5zaGEyNTZfc3RyZWV0fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ci5jaXR5LGFiOnQuY2l0eX0sd3coeXcpKSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzpyLnBvc3RhbF9jb2RlLGFiOnQucG9zdGFsX2NvZGV9LHd3KHp3KSkpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnIucmVnaW9uLGFiOnQucmVnaW9ufSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ci5jb3VudHJ5LGFiOnQuY291bnRyeX0sd3coencpKSkpO2Zvcih2YXIgdT13KHApLHY9W10seD1CYihhLmFkZHJlc3N8fHt9KSx5PTA7eTx4Lmxlbmd0aDt5Kyspe2Zvcih2YXIgej14W3ldLEM9ei5fdGFnX21ldGFkYXRhfHx7fSxEPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIiwKcmF3OnouZmlyc3RfbmFtZSxTYTp6LnNoYTI1Nl9maXJzdF9uYW1lLGFiOkMuZmlyc3RfbmFtZSxtZDpDLnNoYTI1Nl9maXJzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OnoubGFzdF9uYW1lLFNhOnouc2hhMjU2X2xhc3RfbmFtZSxhYjpDLmxhc3RfbmFtZSxtZDpDLnNoYTI1Nl9sYXN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ei5zdHJlZXQsU2E6ei5zaGEyNTZfc3RyZWV0LGFiOkMuc3RyZWV0LG1kOkMuc2hhMjU2X3N0cmVldH0seXcpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ei5jaXR5LGFiOkMuY2l0eX0seXcpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnoucG9zdGFsX2NvZGUsYWI6Qy5wb3N0YWxfY29kZX0sencpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzp6LnJlZ2lvbixhYjpDLnJlZ2lvbn0seXcpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ei5jb3VudHJ5LGFiOkMuY291bnRyeX0sencpKSksST0wO0k8CkQubGVuZ3RoO0krKylEW0ldLmluZGV4PXk7di5wdXNoLmFwcGx5KHYsdyhEKSl9ZS5jYWxsKGQsYyxnLmNhbGwoZixuLHUsdyh2KSkpO2lmKGImJkJwKCkpe3ZhciBHPWMucHVzaCxOPUcuYXBwbHksUz1bXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2VtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSkpLHcoQXcoe25hbWU6InJhd19waG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXJ9KSkpKTtmb3IodmFyIFc9QmIoYS5hZGRyZXNzfHx7fSksZWE9MDtlYTxXLmxlbmd0aDtlYSsrKXt2YXIgamE9V1tlYV07Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6amEuZmlyc3RfbmFtZSxTYTpqYS5zaGEyNTZfZmlyc3RfbmFtZX0sZWEpKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6amEubGFzdF9uYW1lLFNhOmphLnNoYTI1Nl9sYXN0X25hbWV9LAplYSkpLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpqYS5zdHJlZXQsU2E6amEuc2hhMjU2X3N0cmVldH0sZWEpKSkpfWlmKGEuZmlyc3RfbmFtZXx8YS5ob21lX2FkZHJlc3Mpe1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lfSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSxTYTphLnNoYTI1Nl9sYXN0X25hbWV9KSkpKTt2YXIgZmE9YS5ob21lX2FkZHJlc3N8fHt9O1MucHVzaC5hcHBseShTLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpmYS5zdHJlZXQsU2E6ZmEuc2hhMjU2X3N0cmVldH0pKSl9Ti5jYWxsKEcsYyx3KFMpKX1yZXR1cm4gY30sd3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe1AoNjQpO3JldHVybiBhKGIpfX0sQXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihhLlNhKXJldHVybiBjO2Zvcih2YXIgZD0KQmIoYS5yYXcpLGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9QncoZFtlXSk7aWYoZiYmIXlpLnRlc3QoZikpaWYoL15lXGQrJC8udGVzdChmKSljLnB1c2goe25hbWU6YS5uYW1lLHZhbHVlOmYsaW5kZXg6Yn0pO2Vsc2V7dmFyIGc9YyxoPWcucHVzaCxsPWEubmFtZSxuO3ZhciBwPUE7dHJ5e249QmkoQXJyYXkuZnJvbShaYihmKSkscCl9Y2F0Y2gocSl7bj0iZTAifWguY2FsbChnLHtuYW1lOmwsdmFsdWU6bixpbmRleDpifSl9fXJldHVybiBjfSx0dz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9TSg1MjMpLGU9YS5yYXcsZj1kP2EuYWI6dm9pZCAwO0N3KGUsITEpO2EuU2EmJihlJiZQKDkwKSxlPWEuU2EsZj1kP2EubWQ6dm9pZCAwLEN3KGUsITApKTtmb3IodmFyIGc9QmIoZSksaD1CYihmKSxsPTA7bDxnLmxlbmd0aDsrK2wpe3ZhciBuO3ZhciBwPWEubmFtZSxxPWIscj1oW2xdLHQ9QncoZ1tsXSk7aWYodCE9PSIiKWlmKHlpLnRlc3QodCkpe3ImJihyLmlzUHJlSGFzaGVkPSEwKTsKdmFyIHU9e25hbWU6cCx2YWx1ZTp0LGluZGV4OnZvaWQgMH07ciYmKHUubWV0YWRhdGE9cik7bj11fWVsc2V7dmFyIHY9cSh0KSx4PXtuYW1lOnAsdmFsdWU6dixpbmRleDp2b2lkIDB9O3ImJih4Lm1ldGFkYXRhPXIsdiYmKHIucmF3TGVuZ3RoPVN0cmluZyh0KS5sZW5ndGgsci5ub3JtYWxpemVkTGVuZ3RoPXYubGVuZ3RoKSk7bj14fWVsc2Ugbj12b2lkIDA7dmFyIHk9bjt5JiZjLnB1c2goeSl9cmV0dXJuIGN9LEN3PWZ1bmN0aW9uKGEsYil7aWYoemIoYSl8fEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPUJiKGEpLGQ9MDtkPGMubGVuZ3RoOysrZCl7dmFyIGU9QncoY1tkXSksZj15aS50ZXN0KGUpO2ImJiFmJiZQKDg5KTshYiYmZiYmUCg4OCl9fSxEdz1mdW5jdGlvbihhKXt2YXIgYj1hP2d3KGEpOltdO3JldHVybiBvdyh7eWI6Yn0pfSxFdz1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjAmJnliKEEuUHJvbWlzZSk/Z3coYSkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYmCmt3KGIubmFtZSkmJiF5aS50ZXN0KGIudmFsdWUpfSk6ITF9LEJ3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOnpiKGEpP0xiKFN0cmluZyhhKSk6ImUwIn0senc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShGdywiIil9LHh3PWZ1bmN0aW9uKGEpe3JldHVybiB5dyhhLnJlcGxhY2UoL1xzL2csIiIpKX0seXc9ZnVuY3Rpb24oYSl7cmV0dXJuIExiKGEucmVwbGFjZShHdywiIikudG9Mb3dlckNhc2UoKSl9LHZ3PWZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC9bXHMtKCkvLl0vZywiIik7YS5jaGFyQXQoMCkhPT0iKyImJihhPSIrIithKTtyZXR1cm4oTSg1OTcpP0h3Okl3KS50ZXN0KGEpP2E6ImUwIn0sdXc9ZnVuY3Rpb24oYSl7dmFyIGI9YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCJAIik7aWYoYi5sZW5ndGg9PT0yKXt2YXIgYz1iWzBdOy9eKGdtYWlsfGdvb2dsZW1haWwpXC4vLnRlc3QoYlsxXSkmJihjPWMucmVwbGFjZSgvXC4vZywiIikpO2M9YysiQCIrYlsxXTtpZihKdy50ZXN0KGMpKXJldHVybiBjfXJldHVybiJlMCJ9LApLdz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihiKXtiLnZhbHVlJiZrdyhiLm5hbWUpJiYoYi52YWx1ZT1EaShiLnZhbHVlKSl9KSx7eWI6YX19Y2F0Y2goYil7cmV0dXJue3liOltdfX19LG53PWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSl9KT95YihBLlByb21pc2UpP1Byb21pc2UuYWxsKGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpP0FpKGIudmFsdWUpLnRoZW4oZnVuY3Rpb24oYyl7Yi52YWx1ZT1jfSk6UHJvbWlzZS5yZXNvbHZlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybnt5YjphfX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue3liOltdfX0pOnt0aGVuOmZ1bmN0aW9uKGIpe2Ioe3liOltdfSl9fTpQcm9taXNlLnJlc29sdmUoe3liOmF9KX0sR3c9L1swLTlgfiFAIyQlXiYqKClfXC0rPTo7PD4sLj98L1xcW1xdXS9nLEp3PS9eXFMrQFxTK1wuXFMrJC8sCkl3PS9eXCtcZHsxMCwxNX0kLyxIdz0vXlwrXGR7NywxNX0kLyxGdz0vWy5+XS9nLGx3PS9eWzAtOUEtWmEtel8tXXs0M30kLyxMdz1bInJlbSIsInJwbiIsInJmbiIsInJsbiIsInJzYSJdLE13PXt9LGl3PShNdy5lbWFpbD0iZW0iLE13LnBob25lX251bWJlcj0icG4iLE13LmZpcnN0X25hbWU9ImZuIixNdy5sYXN0X25hbWU9ImxuIixNdy5zdHJlZXQ9InNhIixNdy5jaXR5PSJjdCIsTXcucmVnaW9uPSJyZyIsTXcuY291bnRyeT0iY28iLE13LnBvc3RhbF9jb2RlPSJwYyIsTXcuZXJyb3JfY29kZT0iZWMiLE13LnJhd19lbWFpbD0icmVtIixNdy5yYXdfcGhvbmVfbnVtYmVyPSJycG4iLE13LnJhd19maXJzdF9uYW1lPSJyZm4iLE13LnJhd19sYXN0X25hbWU9InJsbiIsTXcucmF3X3N0cmVldD0icnNhIixNdyk7dmFyIG13PU9iamVjdC5mcmVlemUoWyJlbWFpbCIsCiJwaG9uZV9udW1iZXIiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwic3RyZWV0Il0pOwp2YXIgUXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1sdihhKSxkPWZ1bmN0aW9uKHApe3ZhciBxPUNwKGEpO3EmJihjLnRhZ19leHA9cSk7YihwKX0sZT1RKGEsSC5KLmRhKSxmPVEoYSxILkouWWEpLGc9WG8oW0YuRC5tYSxGLkQua2FdKSxoO2E6c3dpdGNoKGUpe2Nhc2UgWC5WLnhhOmNhc2UgWC5WLnpkOmNhc2UgWC5WLlpkOmNhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmg9ITA7YnJlYWsgYTtkZWZhdWx0Omg9ITF9aWYoaCYmZiYmZylpZihRKGEsSC5KLmZkKSlpZihOdyhhKSlkKGMpO2Vsc2V7dmFyIGw9c3coZiwhMCk7T3cobCxhLGMsZCl9ZWxzZXt2YXIgbjthOnt0cnl7bj1vdyhLdyhndyhmKSkpO2JyZWFrIGF9Y2F0Y2gocCl7fW49dm9pZCAwfWlmKG4pdHJ5e1B3KGMsYSkobil9Y2F0Y2gocCl7fWQoYyl9ZWxzZSBkZWxldGUgYy5lY19tb2RlLGQoYyl9LE53PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO3JldHVybiBiPT09WC5WLkZifHxiPT09WC5WLk9ifSxSdz1mdW5jdGlvbihhLApiKXtyZXR1cm4gYSE9PTF8fFEoYixILkouZGEpPT09WC5WLk9iJiYhTSg0NDUpPyExOiEhUShiLEguSi5mZCl9LFB3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe1J3KGMuZW5jcnlwdGlvblJlc3VsdD8xOjAsYil8fChhLmVtPWMucGFyYW0pO2lmKGMuaGFzVXBkKXt2YXIgZD1TdyhiKTtkJiYoYS5lY3NpZD1kKX1NKDUyMykmJmMubWV0YWRhdGFQYXJhbSYmKGEuZW1kPWMubWV0YWRhdGFQYXJhbSk7fX0sU3c9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuRmImJgohTSg0NDMpKXt2YXIgYj1RKGEsSC5KLkdhKTtyZXR1cm4gUShhLEguSi56ail8fFR2KGIpfX0sT3c9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSl0cnl7YS50aGVuKFB3KGMsYikpLnRoZW4oZnVuY3Rpb24oKXtkKGMpfSk7cmV0dXJufWNhdGNoKGUpe31kKGMpfTt2YXIgVHc9T2JqZWN0LmZyZWV6ZSh7Z2NwOiIxIixzc2N0ZToiMSIsY3RfY29va2llX3ByZXNlbnQ6IjEifSk7CnZhciBVdz1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMSwhMSl9O3dhKFV3LGF2KTtVdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7UXcoYSxmdW5jdGlvbihkKXtRKGEsSC5KLmFqKSYmZGVsZXRlIGQuaXRlbTtRKGEsSC5KLm9iKSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLFR3KTt2YXIgZT1nayhiLkljKTtlJiYoZC5fdWlwPWUpO3ZhciBmPSI/IitrdihkKTtjKGYpfSl9O3ZhciBWdz1uZXcgVXcoMjIsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFd3PW5ldyBVdygyMyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksWHc9bmV3IFV3KDYwLFtdKSxZdz1mdW5jdGlvbigpe307d2EoWXcsb3UpO1l3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi56ZCYmUShhLEguSi5saik/W3tlbmRwb2ludDpYbyhmcCk/UShhLEguSi5vYik/V3c6Vnc6WHcsbWV0aG9kOmx1fV06W119O3ZhciBadz1uZXcgWXc7Cgp2YXIgJHc9ZnVuY3Rpb24oYSl7aWYoT3AoKT09PTIpcmV0dXJuITE7dmFyIGI9UShhLEguSi5kYSksYz1bWC5WLnhhLFguVi51Yl07TSg1OTMpJiZjLnB1c2goWC5WLllkKTtyZXR1cm4gYy5pbmNsdWRlcyhiKT8hMDohMX0sYXg9ZnVuY3Rpb24oYSl7cmV0dXJuIE0oNTAwKSYmT3AoKSE9PTImJlEoYSxILkouZGEpPT09WC5WLnhhfSxieD1mdW5jdGlvbihhKXt2YXIgYj1IcihhLnByZWZpeCk7Yj09PSJfZ2NsIiYmKGI9IiIpO3JldHVybiBifSxjeD1mdW5jdGlvbihhKXtpZihSKGEsRi5ELlNiKXx8UihhLEYuRC5KZSkpe3ZhciBiPVIoYSxGLkQuR2QpLGM9RWQoUShhLEguSi5HYSksbnVsbCksZD1IcihjLnByZWZpeCk7Yy5wcmVmaXg9ZD09PSJfZ2NsIj8iIjpkO2lmKFIoYSxGLkQuU2IpKXt2YXIgZT1YcyhiLGMsIVEoYSxILkouTm0pLGF4KGEpKTtWKGEsSC5KLk5tLCEwKTtlJiZVKGEsRi5ELnFtLGUpfWlmKFIoYSxGLkQuSmUpKXt2YXIgZj1QcyhiLGMpLlJyO2YmJlUoYSxGLkQuTWwsCmYpfX19LGl4PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBkeDtzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLnhhOlUoYSxGLkQuZm0sVXEoITEpLl9ncyk7ZXgoYSk7ZngoYSxiKTtneChhLGIpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGM9bm0oam0uYmEuVmUpLGQ9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZihjJiZjLmdjbGlkJiYhZCYmIVEoYSxILkouWGUpKXt2YXIgZT1TdHJpbmcoYy5nY2xpZCksZj1uZXcgZXI7ZnIoZiw2KTtiLkNqKHt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOmUscWE6ZixvYTpbNF19KX19YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6ZXgoYSk7ZngoYSxiKTticmVhaztjYXNlIFguVi51YjppZihNKDQ1OCkmJlhvKEYuRC5rYSkmJlEoYSxILkoud2YpKXt2YXIgZz1RKGEsSC5KLkdhKTtoeChhLGIsYngoZykpfWJyZWFrO2Nhc2UgWC5WLllkOmV4KGEpLGZ4KGEsYiksZ3goYSxiKX1iLk90KGEpfSxmeD1mdW5jdGlvbihhLGIpe2lmKFhvKEYuRC5rYSkmJgpRKGEsSC5KLndmKSl7dmFyIGM9UShhLEguSi5HYSksZD1ieChjKSxlPVJzKGQpO1UoYSxGLkQuQmUsZS5FZyk7VShhLEYuRC5EZSxlLldoKTtVKGEsRi5ELkNlLGUuVWgpO00oNDIxKT8oangoYSxiLGMsZCksaHgoYSxiLGQpKTpXcyhkKT9qeChhLGIsYyxkKTpoeChhLGIsZCl9fSxoeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JHcoYSk7VHMoYywiZ2NsaWQiLCJnY2xhdyIsZCkuZm9yRWFjaChmdW5jdGlvbihmKXtiLkNqKGYpfSk7Yi5MbygpO2lmKCFjKXt2YXIgZT1PcyhCcihBcigpKT9ScCgpOnt9LE1zKTtlJiZVKGEsRi5ELnJoLGUpfX0sang9ZnVuY3Rpb24oYSxiLGMsZCl7VHMoZCwiYnJhaWRzIiwiZ2NsZ2IiLGF4KGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2IuanIoZyl9KTtpZighZCl7dmFyIGU9UihhLEYuRC5HZCk7Yz1FZChjLG51bGwpO2MucHJlZml4PWQ7dmFyIGY9UHMoZSxjLCEwKS5RcjtmJiZVKGEsRi5ELkplLGYpfX0sZXg9ZnVuY3Rpb24oYSl7aWYoTSgxNikpe3ZhciBiPQpPKGEuTSxGLkQuemEpO2J8fChiPU9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO3ZhciBjLGQ9UmooYiksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpO2lmKCFlKXt2YXIgZj1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2U9ZXx8SWooZiwiZ2NsaWQiLCExKX0oYz1lP2UubGVuZ3RoOnZvaWQgMCkmJlUoYSxGLkQuemwsYyl9fSxneD1mdW5jdGlvbihhLGIpe3ZhciBjPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgZDt2YXIgZTtiOnt2YXIgZixnPUEsaD1bXTt0cnl7Zy5uYXZpZ2F0aW9uJiZnLm5hdmlnYXRpb24uZW50cmllcyYmKGg9Zy5uYXZpZ2F0aW9uLmVudHJpZXMoKSl9Y2F0Y2goQyl7fWY9aDt2YXIgbD17fTt0cnl7Zm9yKHZhciBuPWYubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBwPWZbbl0mJmZbbl0udXJsO2lmKHApe3ZhciBxPShuZXcgVVJMKHApKS5zZWFyY2hQYXJhbXMscj1xLmdldCgiZ2NsaWQiKXx8CnZvaWQgMCx0PXEuZ2V0KCJnY2xzcmMiKXx8dm9pZCAwO2lmKHIpe2wuZ2NsaWQ9cjt0JiYobC5WaD10KTtlPWw7YnJlYWsgYn19fX1jYXRjaChDKXt9ZT1sfXZhciB1PWUsdj11LmdjbGlkLHg9dS5WaCx5O2lmKHYmJih4PT09dm9pZCAwfHx4PT09ImF3Inx8eD09PSJhdy5kcyJ8fFlmKDgpJiZ4PT09ImF3LmR2IikpaWYodiE9PXZvaWQgMCl7dmFyIHo9bmV3IGVyO2ZyKHosMik7ZnIoeiwzKTt5PXt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOnYscWE6eixvYTpbM119fWVsc2UgeT12b2lkIDA7ZWxzZSB5PXZvaWQgMDtkPXk7ZCYmKCFjJiZRKGEsSC5KLlhlKSYmKGQuZ2NsaWQ9IjAiKSxiLkNqKGQpLGIuTG8oKSl9fSxkeD1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLks9W107dGhpcy5OPXZvaWQgMH07az1keC5wcm90b3R5cGU7ay5Daj1mdW5jdGlvbihhKXtRcih0aGlzLkgsYSl9O2suanI9ZnVuY3Rpb24oYSl7UXIodGhpcy5LLGEpfTtrLmpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSy5sZW5ndGg+CjB9O2suTG89ZnVuY3Rpb24oKXt0aGlzLk4hPT0hMSYmKHRoaXMuTj0hMSl9O2sueW89ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYS5sZW5ndGgpe3ZhciBlPVtdLGY9W10sZz1bXTthLmZvckVhY2goZnVuY3Rpb24oaCl7ZS5wdXNoKGguZ2NsaWQpO3ZhciBsLG47Zi5wdXNoKChuPShsPWgucWEpPT1udWxsP3ZvaWQgMDpsLmdldCgpKSE9bnVsbD9uOjApO2cucHVzaChWcyhoLm9hfHxbMF0pKX0pO2UubGVuZ3RoJiZVKGIsYy5pZCxlLmpvaW4oIi4iKSk7ZHx8KGYubGVuZ3RoJiZVKGIsYy5xYSxmLmpvaW4oIi4iKSksZy5sZW5ndGgmJlUoYixjLm9hLGcuam9pbigiLiIpKSl9fTtrLk90PWZ1bmN0aW9uKGEpe3RoaXMuSC5sZW5ndGg+MCYmdGhpcy55byh0aGlzLkgsYSx7aWQ6Ri5ELmxiLHFhOkYuRC5CZCxvYTpGLkQuQ2R9LHRoaXMuTik7KHRoaXMuSC5sZW5ndGg9PT0wfHxNKDQyMSkpJiZ0aGlzLnlvKHRoaXMuSyxhLHtpZDpGLkQuU2IscWE6Ri5ELmZoLApvYTpGLkQuZ2h9KX07dmFyIGt4PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbmplY3RBZHNTY3JpcHQiKX07d2Eoa3gsaHUpO2t4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtreC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtreC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7YW8oYS5GbyxBLEIsYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfHxYbihhLkZvLGIucmVwbGFjZSgiJmZtdD00JiIsIiZmbXQ9MyYiKSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIgbHg9bmV3IGt4O3ZhciBteD1PYmplY3QuZnJlZXplKHthdHRyaWJ1dGlvbnNyYzoiIn0pLG54PU9iamVjdC5mcmVlemUoe2V2ZW50U291cmNlRWxpZ2libGU6ITEsdHJpZ2dlckVsaWdpYmxlOiEwfSk7ZnVuY3Rpb24gb3goKXt2YXIgYT1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU7cmV0dXJuIGEmJnliKGEuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcpfTt2YXIgcHg9T2JqZWN0LmZyZWV6ZSh7Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJHRVQiLGtlZXBhbGl2ZTohMCxyZWRpcmVjdDoiZm9sbG93In0pOwpmdW5jdGlvbiBxeChhLGIsYyxkLGUsZil7aWYoIXliKEEuZmV0Y2gpKXJldHVybiBmPT1udWxsfHxmKHZvaWQgMCx2b2lkIDApLCExO3ZhciBnPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scHgpO2ImJihnLmJvZHk9YixnLm1ldGhvZD0iUE9TVCIpO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZyxkKTtBLmZldGNoKGEsZykudGhlbihmdW5jdGlvbihoKXtpZihoLm9rKXtpZihoLmJvZHkpe3ZhciBsPWguYm9keS5nZXRSZWFkZXIoKSxuPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocCl7ZnVuY3Rpb24gcSgpe2wucmVhZCgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIHQ7dD1yLmRvbmU7dmFyIHU9bi5kZWNvZGUoci52YWx1ZSx7c3RyZWFtOiF0fSk7dT1jLlIrdTtmb3IodmFyIHY9dS5pbmRleE9mKCJcblxuIik7diE9PS0xOyl7dmFyIHg9WmcseTthOnt2YXIgej1tKHUuc3Vic3RyaW5nKDAsdikuc3BsaXQoIlxuIikpLEM9CnoubmV4dCgpLnZhbHVlLEQ9ei5uZXh0KCkudmFsdWU7aWYoU2IoQywiZXZlbnQ6IG1lc3NhZ2UiKSYmU2IoRCwiZGF0YTogIikpe3ZhciBJPUQuc3Vic3RyaW5nKDYpO3RyeXt5PUpTT04ucGFyc2UoSSk7YnJlYWsgYX1jYXRjaChHKXt9fXk9dm9pZCAwfXgoYyx5KTt1PXUuc3Vic3RyaW5nKHYrMik7dj11LmluZGV4T2YoIlxuXG4iKX1jLlI9dTt0PyhlPT1udWxsfHxlKGgpLHAoKSk6cSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT1udWxsfHxlKGgpO3AoKX0pfXEoKX0pfWU9PW51bGx8fGUoaCl9ZWxzZSBmPT1udWxsfHxmKGgsdm9pZCAwKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2Y9PW51bGx8fGYodm9pZCAwLGgpfSk7cmV0dXJuITB9O3ZhciByeD1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIkZldGNoUmljaFJlc3BvbnNlIiwxKTt0aGlzLk49YX07d2EocngsaHUpO3J4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07cngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07cngucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe3F4KGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5LHRoaXMuTixjPT1udWxsP3ZvaWQgMDpjLkdiLGEucGUsZnVuY3Rpb24oZCxlKXthLm9uRmFpbHVyZShlKX0pfTsKdmFyIHN4PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwO2EgaW5zdGFuY2VvZiBrdT9jPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpOmEgaW5zdGFuY2VvZiByeCYmKGM9e30sb3goKSYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmc9bngpKTshYiYmYyYmKGMuY3JlZGVudGlhbHM9Im9taXQiLGMubW9kZT0iY29ycyIpO3JldHVybiBjfSx0eD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iLm1ldGhvZDtRdyhhLGZ1bmN0aW9uKGYpe3ZhciBnPVEoYSxILkoub2IpLGg9WG8oZnApLGw9ZSBpbnN0YW5jZW9mIGl1PzM6ZSBpbnN0YW5jZW9mIGt4P2M9PT01fHxjPT09OD8zOjQ6ZSBpbnN0YW5jZW9mIGt1PyFnJiZoPzM6ODplIGluc3RhbmNlb2Ygcng/NzotMTtlIGluc3RhbmNlb2Yga3gmJmw9PT0zPyhmLmZtdD00LGYucmZtdD0zKTpmLmZtdD1sO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZixjPT09NjY/e2djcDoiNCJ9Omd8fGM9PT04fHxjPT09NjU/ClR3Ont9KTt2YXIgbj1laVtGLkQuZWhdO24mJihmW25dPWMpO2lmKE0oNTY5KSl7dmFyIHA9Yi5DdCxxPXAuamsuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdLmVuZHBvaW50LmVuZHBvaW50fSk7cS5sZW5ndGg+MCYmKHEucHVzaChwLm1rWzBdLmVuZHBvaW50LmVuZHBvaW50KSxmLmVwcD1xLnNvcnQoZnVuY3Rpb24odix4KXtyZXR1cm4gdi14fSkuam9pbigifiIpKX12YXIgcj0iPyIra3YoZiksdD1zeChlLGgpLHU7dT0oZSBpbnN0YW5jZW9mIGl1fHxlIGluc3RhbmNlb2Yga3gpJiZYbygiYWRfdXNlcl9kYXRhIik/bXg6dm9pZCAwO2Qocix7R2I6dCxhZjp1fSl9KX07dmFyIHV4PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwyKX07d2EodXgsYXYpO3V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt0eChhLGIsdGhpcy5lbmRwb2ludCxjKX07dmFyIHZ4PW5ldyB1eCg1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx3eD1uZXcgdXgoNixbXSkseHg9bmV3IHV4KDYzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx5eD1uZXcgdXgoNjUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHp4PW5ldyB1eCg4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxBeD1uZXcgdXgoNjYsW10pLEJ4PW5ldyB1eCg3NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk7dmFyIEN4PWZ1bmN0aW9uKCl7WWcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShDeCxZZyk7Q3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXtaYyhhLHZvaWQgMCwkZyh0aGlzLGIpLGIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP214Ont9KX07Q3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT97YXR0cmlidXRpb25SZXBvcnRpbmc6bnh9Ont9LGQ9JGcodGhpcyxiKTtiLnByb2Nlc3NfcmVzcG9uc2U/cXgoYSx2b2lkIDAsdGhpcyxjLHZvaWQgMCxkKTptZChhLHZvaWQgMCxjLHZvaWQgMCxkKX07dmFyIER4PWZ1bmN0aW9uKCl7Q3guYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShEeCxDeCk7RHgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIse3Byb2Nlc3NfcmVzcG9uc2U6ITF9KSl9O3ZhciBFeD1mdW5jdGlvbigpe307d2EoRXgsb3UpO0V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpIT09WC5WLnhhKXJldHVybltdO3ZhciBiPVhvKGZwKSxjPSEhUShhLEguSi5vYiksZD0hIVEoYSxILkouRWMpLGU9W3tlbmRwb2ludDpiP2Q/Yz95eDp4eDpjP3p4OnZ4Ond4LG1ldGhvZDpuZCgpP2I/TSg0OTApP2M/bnU6bmV3IHJ4KG5ldyBEeCk6bHg6bnU6bHV9XSxmPWI/Yz92b2lkIDA6eng6QXg7ZiYmZS5wdXNoKHtlbmRwb2ludDpmLG1ldGhvZDpudX0pO3JldHVybiBlfTtFeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYueGEmJldqKCkmJiFRKGEsSC5KLkVjKSYmTSg1NjkpJiZYbyhmcCk/W1t7ZW5kcG9pbnQ6QngsbWV0aG9kOm51fV1dOltdfTt2YXIgRng9bmV3IEV4O3ZhciBHeD1mdW5jdGlvbihhLGIpe2d1LmNhbGwodGhpcyxhLGIsMSwhMSwzKX07d2EoR3gsZ3UpO0d4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKSxlPSI/IitrdihkKTtjKGUse0diOmxkfSl9O3ZhciBIeD1uZXcgR3goNTQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEl4PW5ldyBHeCg1NSxbXSksSng9ZnVuY3Rpb24oKXt9O3dhKEp4LG91KTtKeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm5be2VuZHBvaW50Okh4LksoYSk/SHg6SXgsbWV0aG9kOm51fV19O3ZhciBLeD1uZXcgSng7CnZhciBMeD1mdW5jdGlvbigpe2F2LmNhbGwodGhpcyw5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLDEpfTt3YShMeCxhdik7THgucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi5aZH07THgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1laVtGLkQuZWhdO2YmJihlW2ZdPWQuZW5kcG9pbnQpO2UuZ2NwPTE7ZS5jdF9jb29raWVfcHJlc2VudD0xO2UuZm10PWIubWV0aG9kIGluc3RhbmNlb2Yga3U/ODozO3ZhciBnPSI/IitrdihlKTtjKGcse0diOmxkfSl9KX07dmFyIE14PW5ldyBMeCxOeD1mdW5jdGlvbigpe307d2EoTngsb3UpO054LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuW3tlbmRwb2ludDpNeCxtZXRob2Q6bnV9LHtlbmRwb2ludDpNeCxtZXRob2Q6bHV9XX07dmFyIE94PW5ldyBOeDt2YXIgUHg9WzY4XTt2YXIgUXg9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLnRpbWVvdXRNcz1iO3RoaXMuUmI9dm9pZCAwfSxSeD1mdW5jdGlvbihhKXthLlJifHwoYS5SYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5IKCk7YS5SYj12b2lkIDB9LGEudGltZW91dE1zKSl9LFRuPWZ1bmN0aW9uKGEpe2EuUmImJihjbGVhclRpbWVvdXQoYS5SYiksYS5SYj12b2lkIDApfTt2YXIgU3g9ZnVuY3Rpb24oKXt2YXIgYT1OZig2NiwwKTt0aGlzLks9W107dGhpcy5SPWE7dGhpcy5IPVlhKCl9LFV4PWZ1bmN0aW9uKGEpe3ZhciBiPVR4O2IuSy5wdXNoKGEpO2IuTnx8KGIuTj1mdW5jdGlvbigpe2Zvcih2YXIgYz1tKGIuSyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7dHJ5e2UoKX1jYXRjaChsKXt9fWZvcih2YXIgZj1tKGIuSC52YWx1ZXMoKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPXZvaWQgMDsoaD1nLnZhbHVlLndlKT09bnVsbHx8VG4oaCl9Yi5ILmNsZWFyKCl9LCRjKEEsInBhZ2VoaWRlIixiLk4pKX0sVng9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaChNbilbM118fG51bGwsYz0oYj9kZWNvZGVVUkkoYik6Yil8fCIiLGQ9UG4oYSwibGFiZWwiKXx8IiIsZT1QbihhLCJyYW5kb20iKXx8IiI7cmV0dXJuIGMrIjoiK0xuKGQpKyI6IitMbihlKX0sV3g9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVR4LAplPVZ4KGEpO2lmKCEoZC5ILmhhcyhlKXx8ZC5ILnNpemU+PWQuUikpe3ZhciBmPXt9O2ImJmI+MCYmYyYmKGYud2U9bmV3IFF4KGMsYikpO2QuSC5zZXQoZSxmKTt2YXIgZzsoZz1mLndlKT09bnVsbHx8UngoZyl9fSxVbj1mdW5jdGlvbihhLGIpe3ZhciBjPVZ4KGIpLGQsZTsoZD1hLkguZ2V0KGMpKT09bnVsbHx8KGU9ZC53ZSk9PW51bGx8fFRuKGUpO2EuSC5kZWxldGUoYyl9O1N4LnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5zaXplfTsKdmFyIFh4PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1RKGEsSC5KLmduKSk9PW51bGw/dm9pZCAwOmNbYi5wYl07cmV0dXJuIGQhPT12b2lkIDAmJmQ+PWIuT2d9LFl4PWZ1bmN0aW9uKGEsYil7aWYoUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxudikmJiEoYjw9MCkpcmV0dXJuIG5ldyBReChmdW5jdGlvbigpe3J2KG52KX0sYil9LFp4PWZ1bmN0aW9uKGEsYixjKXtRKGIsSC5KLmRhKSE9PVguVi54YXx8UShiLEguSi5FYyl8fChUeHx8KFR4PW5ldyBTeCxYeChiLG92KSYmVXgoZnVuY3Rpb24oKXt2YXIgZDtydihvdiwoZD1UeCk9PW51bGw/dm9pZCAwOmQuZ2V0U2l6ZSgpKX0pKSxYeChiLG52KT9XeChhLGMsZnVuY3Rpb24oKXtydihudik7dmFyIGQ7KGQ9VHgpPT1udWxsfHxVbihkLGEpfSk6V3goYSkpfSxUeDsKdmFyICR4PWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPzA6ZTtpZihkKXt2YXIgZj1RKGEsSC5KLkViKTtiPWIuTGEoe3JhbmRvbTpmK2UsZGF0YTpkfSl9cmV0dXJuW3tlbmRwb2ludDpiLG1ldGhvZDpjfSx7ZW5kcG9pbnQ6YixtZXRob2Q6bHV9XX0sYXk9ZnVuY3Rpb24oYSxiLGMsZCl7YXYuY2FsbCh0aGlzLGEsYiwxLGMpO3RoaXMuTj1kfTt3YShheSxhdik7YXkucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVuZHBvaW50PT09NjgmJlEoYSxILkoub2IpPyExOiEwfTtheS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSk7dGhpcy5OJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsdGhpcy5OKTt2YXIgZT1laVtGLkQuZWhdO2UmJihkW2VdPXRoaXMuZW5kcG9pbnQpO3RoaXMuZW5kcG9pbnQhPT02OCYmKGRlbGV0ZSBkLmdjbGF3LGRlbGV0ZSBkLmdjbGF3X3NyYyk7dmFyIGY9dm9pZCAwO1EoYSwKSC5KLm9iKT8oZC5nY3A9MSxkLmN0X2Nvb2tpZV9wcmVzZW50PTEpOnRoaXMuZW5kcG9pbnQ9PT02OCYmKGQuZ2NwPTUsYi5tZXRob2QgaW5zdGFuY2VvZiBrdSYmKGQuZm10PTgsZj1sZCkpO3ZhciBnPSI/IitrdihkKTtjKGcsZj97R2I6Zn06e30pfTtheS5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBheSh0aGlzLmVuZHBvaW50LHRoaXMuWix0aGlzLmphLGEpfTt2YXIgYnk9bmV3IGF5KDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITApLGN5PW5ldyBheSg2OCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMSksZHk9ZnVuY3Rpb24oKXt9O3dhKGR5LG91KTtkeS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1ndihhKTtyZXR1cm4gJHgoYSxieSxRKGEsSC5KLm9iKT9udTpseCxiPT1udWxsP3ZvaWQgMDpiWzBdKX07ZHkucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSksYz1bXTtNKDQ1OCkmJiFRKGEsSC5KLm9iKSYmCmMucHVzaCgkeChhLGN5LG51LGI9PW51bGw/dm9pZCAwOmJbMF0pKTtpZihiJiZiLmxlbmd0aD4xKWZvcih2YXIgZD1RKGEsSC5KLm9iKT9udTpseCxlPTE7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKCR4KGEsYnksZCxiW2VdLGUpKTtyZXR1cm4gY307dmFyIGV5PW5ldyBkeTsKdmFyIGd5PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuc3BsaXQoIn4iKS5maWx0ZXIoZnVuY3Rpb24oeCl7dmFyIHk9eC5zcGxpdCgiLiIpWzBdO3JldHVybiFMdy5zb21lKGZ1bmN0aW9uKHope3JldHVybiBTYih5LHopfSl9KS5qb2luKCJ+Iil9aWYoTncoYSkmJlEoYSxILkouZmQpKXt2YXIgYz1RKGEsSC5KLllhKSxkPUJwKCksZT1ndyhjLGQpLGY9ZS5zb21lKGZ1bmN0aW9uKHYpe3JldHVybiBTYih2Lm5hbWUsInJhdyIpfSksZz1mdyhlKSxoPWcuT28sbD1nLmlpLG49Zy5oYXNVcGQscD1nLlluLHE9Zy5lbmNyeXB0aW9uS2V5U3RyaW5nLHI9Zy5tZXRhZGF0YVBhcmFtLHQ9W107UncoMSxhKXx8dC5wdXNoKCImZW09IitiKGgpKTt0LnB1c2goIiZlbWU9IitwKTt2YXIgdTtyZXR1cm4gdT17aWk6bCxJdDp0LHN2OmUsWG46cixlbmNyeXB0aW9uS2V5U3RyaW5nOnEsVnI6ZnVuY3Rpb24odil7dmFyIHg9ZnkoYSx1KSx5PXN3KFEoYSxILkouWWEpLCEwLCEwKTtJdSh5LApmdW5jdGlvbih6KXtpZighUncoMSxhKSl7dmFyIEM9KHo9PW51bGw/dm9pZCAwOnoucGFyYW0pfHxvdyh7eWI6W119KS5wYXJhbTt4LmVtPUN9dih4KX0pfSxoYXNVcGQ6bixwZjp2b2lkIDAscmF3UGlpQWRkZWQ6Zn19fSxmeT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9Yi5wZikhPW51bGw/YzozLGU9e2d0bTpkdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYykscGY6ZH0pfTtiLlhuJiYoZS5lbWQ9Yi5Ybik7aWYoYi5oYXNVcGQpe3ZhciBmPQpTdyhhKTtmJiYoZS5lY3NpZD1mKX1iLnJhd1BpaUFkZGVkJiYoZVsiZ2FwLnJwIl09IjEiKTtyZXR1cm4gZX07dmFyIGRnO2Z1bmN0aW9uIGh5KGEsYil7dmFyIGM7KGM9ZGcpPT1udWxsfHwkZihjLkgsYSxiKX07dmFyIGl5PUFhKFsiLyJdKSxqeT1mdW5jdGlvbihhKXt0aGlzLkg9YTt0aGlzLmZhaWx1cmVUeXBlPXZvaWQgMH07ankucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ILmFjdGl2ZTtkPyhkLnBvc3RNZXNzYWdlKHt0eXBlOjEsY29tbWFuZDphfSksYih7ZGF0YToiIn0pKTpjKHtmYWlsdXJlVHlwZToxMyxkYXRhOiIifSl9Y2F0Y2goZSl7Yyh7ZmFpbHVyZVR5cGU6MTEsZGF0YTplLm1lc3NhZ2V9KX19O3ZhciBreT1mdW5jdGlvbihhLGIpe3RoaXMuZmFpbHVyZVR5cGU9YTt0aGlzLkg9Yn07a3kucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXtjKHtmYWlsdXJlVHlwZTp0aGlzLmZhaWx1cmVUeXBlLGRhdGE6ImYiK3RoaXMuZmFpbHVyZVR5cGUrKCJ0IisoKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5IKSl9KX07CnZhciBueT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuaW5pdFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5IPW5ldyBreSgxNSx0aGlzLmluaXRUaW1lKTt2YXIgYz1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKCl9LDIwKX0pLGQ9bHkoYSkudGhlbihmdW5jdGlvbihlKXtiLkg9bmV3IGp5KGUpO215KGIsZSl9KS5jYXRjaChmdW5jdGlvbigpe2IuSD1uZXcga3koNCxiLmluaXRUaW1lKX0pO3RoaXMuSz1Qcm9taXNlLnJhY2UoW2MsZF0pfSxteT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGQpe2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZC5zdGF0ZT09PSJyZWR1bmRhbnQiKXt2YXIgZT1iLmFjdGl2ZTtlJiZlLnN0YXRlIT09InJlZHVuZGFudCJ8fChhLkg9bmV3IGt5KDEwLGEuaW5pdFRpbWUpKX19KX07YyhiLmFjdGl2ZSk7YyhiLndhaXRpbmcpO2MoYi5pbnN0YWxsaW5nKTsKYi5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmb3VuZCIsZnVuY3Rpb24oKXtjKGIuaW5zdGFsbGluZyl9KX07bnkucHJvdG90eXBlLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSy50aGVuKGZ1bmN0aW9uKCl7ZC5ILmlvKGEsYixjKX0pfTtueS5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gMn07CnZhciBseT1mdW5jdGlvbihhKXt2YXIgYixjPUxmKDExKTtjPUxmKDEwKTtiPWM7dmFyIGQ9e3Njb3BlOihUYihhLmhyZWYsIi8iKT9hLmhyZWYuc2xpY2UoMCwtMSk6YS5ocmVmKSsiL18vc2VydmljZV93b3JrZXIifTtiJiYoZC51cGRhdGVWaWFDYWNoZT0iYWxsIik7dmFyIGUsZj1veShhLGIpLGc9bmV3IE1hcChbWyJwYXRoIixhLnBhdGhuYW1lXV0pLGg9SnAoa2MoZikudG9TdHJpbmcoKSk7ZT1McChoLnprLGgucGFyYW1zLGguZnJhZ21lbnQsZyk7dmFyIGw9SWMoKSxuPWtjKGUpO3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLGQpfWNhdGNoKHApe3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLnRvU3RyaW5nKCksZCl9Y2F0Y2gocSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHEpfX19OwpmdW5jdGlvbiBveShhLGIpe2Zvcih2YXIgYz1LcChpeSksZD1hLnBhdGhuYW1lLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wfSksZT1bXS5jb25jYXQodyhkKSxbIl8iLCJzZXJ2aWNlX3dvcmtlciIsYiwic3cuanMiXSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWM9TXAoYyxnLnZhbHVlKTtyZXR1cm4gY307ZnVuY3Rpb24gcHkoYSl7dmFyIGI9bm0oam0uYmEuT2gpLGM9Yj09bnVsbD92b2lkIDA6YlthXTtjfHxhIT09ImxpdGUifHwoYz1iPT1udWxsP3ZvaWQgMDpiLmZ1bGwpO3JldHVybiBjfXZhciBxeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cHkoImZ1bGwiKTtkP2QuZGVsZWdhdGUoYSxiLGMpOmMoe2ZhaWx1cmVUeXBlOjE2fSl9O2Z1bmN0aW9uIHJ5KGEsYixjLGQsZSl7cXkoe2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6MSx0ZW1wbGF0ZXM6Yixib2R5OiIiLHByb2Nlc3NSZXNwb25zZTohMSxlbmNyeXB0aW9uS2V5U3RyaW5nOmUsc29SZWZlcnJlcjpBLmxvY2F0aW9uLmhyZWZ9fSxjLGZ1bmN0aW9uKGYpe2QoZi5mYWlsdXJlVHlwZSxmLmRhdGEpfSl9O3ZhciBzeT1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIlNlcnZpY2VXb3JrZXJGcmFtZWxlc3MiKTt0aGlzLk49YX07d2Eoc3ksaHUpO3N5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtzeS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtzeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7cnkoYix0aGlzLk4uaWksZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKGQpe2MuTi5wZj1kO2EucmQodm9pZCAwKX0sdGhpcy5OLmVuY3J5cHRpb25LZXlTdHJpbmcpfTsKdmFyIHR5PWZ1bmN0aW9uKGEpe2F2LmNhbGwodGhpcyxhLFsiYWRfdXNlcl9kYXRhIiwiYWRfc3RvcmFnZSJdLDEsITEpfTt3YSh0eSxhdik7dHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1RKGEsSC5KLnBqKSxnPWZ1bmN0aW9uKCl7dmFyIG49a3YoZSk7ZiYmYi5tZXRob2QgaW5zdGFuY2VvZiBzeSYmKG4rPWYuSXQuam9pbigiIikpO2Mobix7R2I6bGR9KX07aWYoZC5lbmRwb2ludD09PTIxfHxkLmVuZHBvaW50PT09NzMpe3ZhciBoPWdrKGIuSWMpO2gmJihlLl91aXA9aCl9aWYoZiYmKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxmeShhLGYpKSwhKGIubWV0aG9kIGluc3RhbmNlb2Ygc3kpKSl7dmFyIGw7Zi5wZj0obD1mLnBmKSE9bnVsbD9sOjE3O2YuVnIoZnVuY3Rpb24obil7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLG4pO2coKX0pO3JldHVybn1nKCl9KX07dHkucHJvdG90eXBlLlI9CmZ1bmN0aW9uKGEpe3JldHVybiBhdi5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkuc2xpY2UoMCwtMSl9O3ZhciB1eT1uZXcgdHkoMTEpLHZ5PW5ldyB0eSg3Miksd3k9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTt0aGlzLlI9Yn07d2Eod3ksb3UpO3d5LnByb3RvdHlwZS5mYT1mdW5jdGlvbigpe3JldHVybiBNKDU2Myk/W3RoaXMuWix0aGlzLlJdOk0oMTQxKT9bdGhpcy5aXTpbdGhpcy5SXX07d3kucHJvdG90eXBlLmphPWZ1bmN0aW9uKCl7cmV0dXJuIG51LmlzU3VwcG9ydGVkKCk/W251XTpbbXUsbHVdfTt3eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5mYSgpLGQ9Yy5mbGF0TWFwKGZ1bmN0aW9uKGYpe3JldHVybiBiLmphKCkubWFwKGZ1bmN0aW9uKGcpe3JldHVybntlbmRwb2ludDpmLG1ldGhvZDpnfX0pfSk7aWYodGhpcy5OKCkpe3ZhciBlPVEoYSxILkoucGopO2UmJmUuaGFzVXBkJiZkLnVuc2hpZnQoe2VuZHBvaW50OmNbMF0sbWV0aG9kOm5ldyBzeShlKX0pfXJldHVybiBkfTsKdmFyIHh5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHV5LHZ5KX07d2EoeHksd3kpO3h5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3ZhciB5eT1uZXcgeHksenk9bmV3IHR5KDIxKSxBeT1uZXcgdHkoNzMpLEJ5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHp5LEF5KX07d2EoQnksd3kpO0J5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTg3KX07dmFyIEN5PW5ldyBCeTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEd5PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkthKXt2YXIgYj1mdShhKTtpZighTSg0MjcpJiYoanAoYSxiKXx8UShhLEguSi5oZCkpJiZYbyhmcCkpe3ZhciBjPWxwKGEsYik7aWYoYyl7dmFyIGQ9Tm0oNjksYyk7VGwoZCxhLDY5KTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OjY5LGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCl9fXZhciBlPXliKGEuTS5vblN1Y2Nlc3MpP2EuTS5vblN1Y2Nlc3M6eGI7JHUoYSxiKTtlKCl9fTt2YXIgSHk9e1g6e1dxOjAsRWs6MSxaZzoyLFhrOjMsbWk6NCxWazo1LFdrOjYsWWs6NyxuaTo4LHRtOjksc206MTAsVGk6MTEsdm06MTIsQmg6MTMsRW06MTQsaWo6MTUsU3E6MTYsamQ6MTcsdWo6MTgsdmo6MTksd2o6MjAsQ246MjEseGo6MjJ9fTtIeS5YW0h5LlguV3FdPSJSRVNFUlZFRF9aRVJPIjtIeS5YW0h5LlguRWtdPSJBRFNfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5aZ109IkNPTlRBSU5FUl9FWEVDVVRFX1NUQVJUIjtIeS5YW0h5LlguWGtdPSJDT05UQUlORVJfU0VUVVBfRU5EIjtIeS5YW0h5LlgubWldPSJDT05UQUlORVJfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5Wa109IkNPTlRBSU5FUl9CTE9DS0lOR19FTkQiO0h5LlhbSHkuWC5Xa109IkNPTlRBSU5FUl9FWEVDVVRFX0VORCI7SHkuWFtIeS5YLllrXT0iQ09OVEFJTkVSX1lJRUxEX0VORCI7SHkuWFtIeS5YLm5pXT0iQ09OVEFJTkVSX1lJRUxEX1NUQVJUIjtIeS5YW0h5LlgudG1dPSJFVkVOVF9FWEVDVVRFX0VORCI7Ckh5LlhbSHkuWC5zbV09IkVWRU5UX0VWQUxVQVRJT05fRU5EIjtIeS5YW0h5LlguVGldPSJFVkVOVF9FVkFMVUFUSU9OX1NUQVJUIjtIeS5YW0h5Llgudm1dPSJFVkVOVF9TRVRVUF9FTkQiO0h5LlhbSHkuWC5CaF09IkVWRU5UX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguRW1dPSJHQTRfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5pal09IlBBR0VfTE9BRCI7SHkuWFtIeS5YLlNxXT0iUEFHRVZJRVciO0h5LlhbSHkuWC5qZF09IlNOSVBQRVRfTE9BRCI7SHkuWFtIeS5YLnVqXT0iVEFHX0NBTExCQUNLX0VSUk9SIjtIeS5YW0h5LlgudmpdPSJUQUdfQ0FMTEJBQ0tfRkFJTFVSRSI7SHkuWFtIeS5YLndqXT0iVEFHX0NBTExCQUNLX1NVQ0NFU1MiO0h5LlhbSHkuWC5Dbl09IlRBR19FWEVDVVRFX0VORCI7SHkuWFtIeS5YLnhqXT0iVEFHX0VYRUNVVEVfU1RBUlQiO3ZhciBJeT17fTtJeS5YPUh5Llg7dmFyIEp5PXtSdToiTCIsWHE6IlMiLGt2OiJZIixSdDoiQiIsbnU6IkUiLE51OiJJIixmdjoiVEMiLHZ1OiJIVEMiLG91OiJGIixNdToiQyJ9LEt5PXtYcToiUyIsbHU6IlYiLGF1OiJFIixkdjoidGFnIn0sTHk9e30sTXk9KEx5W0l5LlgudmpdPSI2IixMeVtJeS5YLndqXT0iNSIsTHlbSXkuWC51al09IjciLEx5KTtmdW5jdGlvbiBOeShhKXt2YXIgYj1FKDUpLGM9TnVtYmVyKGEuZXZlbnRJZCksZD1OdW1iZXIoYS50YWdJZCk7cmV0dXJuKFNiKGIsIkdUTS0iKT9iOiJHVE0tIitiKSsiOiIrKEFiKGMpP2MrIjoiOiIiKSsoQWIoZCk/ZCsiOiI6IiIpK2Euc3RhZ2V9O2Z1bmN0aW9uIE95KCl7dmFyIGE9cmQoKTtyZXR1cm4hIShhJiZhLm1hcmsgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5tZWFzdXJlIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNZWFzdXJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWFya3MgaW5zdGFuY2VvZiBGdW5jdGlvbil9O3ZhciBQeT1mdW5jdGlvbigpe3RoaXMuSD17fX0sUXk7ZnVuY3Rpb24gUnkoKXtReXx8KFF5PW5ldyBQeSk7cmV0dXJuIFF5fWZ1bmN0aW9uIFN5KGEpe3ZhciBiPVJ5KCksYz1OeShhKTtyZXR1cm4gYi5IW2NdfWZ1bmN0aW9uIFR5KGEsYil7dmFyIGM7YTp7dmFyIGQ9UnkoKTtpZihPeSgpKXt2YXIgZT1OeShhKSxmLGc7aWYoZj0oZz1yZCgpKT09bnVsbD92b2lkIDA6Zy5tYXJrKGUsYikpe2M9ZC5IW2VdPWY7YnJlYWsgYX19Yz12b2lkIDB9cmV0dXJuIGN9O2Z1bmN0aW9uIFV5KGEsYil7aWYoT3koKSl7YS5lbnRyeT1OeShhKTt2YXIgYz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpO2Muc3RhZ2U9YjtkZWxldGUgYy5zZW50O3ZhciBkPVN5KGI9PT1JeS5YLmpkP3tzdGFnZTpJeS5YLmpkfTpjKSxlPVN5KGEpO2lmKGQmJmUmJiEoZC5zdGFydFRpbWU+ZS5zdGFydFRpbWUpKXtjLnN0YWdlPWIrIjoiK2Euc3RhZ2U7dmFyIGY9TnkoYyksZz17c3RhcnQ6ZC5uYW1lLGVuZDplLm5hbWV9LGgsbDtyZXR1cm4obD0oaD1yZCgpKT09bnVsbD92b2lkIDA6aC5tZWFzdXJlKGYsZykpPT1udWxsP3ZvaWQgMDpsLmR1cmF0aW9ufX19O3ZhciBXeT1mdW5jdGlvbigpe3ZhciBhPTU7VnkuUm8+MCYmKGE9VnkuUm8pO3RoaXMuSz1hO3RoaXMuSD0wO3RoaXMuTj1bXX0sWHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSDxhLks/ITE6TmIoKS1hLk5bYS5IJWEuS108MUUzfSxZeT1mdW5jdGlvbihhKXt2YXIgYj1hLkgrKyVhLks7YS5OW2JdPU5iKCl9O3ZhciBWeT17Um86TmYoMywwKX0sJHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMueWE9W107dGhpcy5IPXZvaWQgMDt0aGlzLlo9e307dGhpcy5LPXZvaWQgMDt0aGlzLmphPW5ldyBXeTt0aGlzLkxhPTFFMzt0aGlzLlI9dGhpcy5OPSExO3RoaXMuZmE9RGIoKTtaeSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGI9W1sidiIsIjMiXSxbInQiLCJ0Il0sWyJwaWQiLFN0cmluZyhhLmZhKV1dLGM9ZHUoKTtjJiZiLnB1c2goWyJndG0iLGNdKTtyZXR1cm4gYn0pO2NkKGZ1bmN0aW9uKCl7YS5mYT1EYigpfSw4NjRFNSl9LFp5PWZ1bmN0aW9uKGEsYil7YS55YS5wdXNoKGIpfSxhej1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5IO2lmKGQ9PT12b2lkIDApaWYoYylkPXJqKCk7ZWxzZSByZXR1cm4iIjtmb3IodmFyIGU9W2ZrKCJodHRwczovLyIrRSgyMSkpLCIvYSIsIj9pZD0iK0UoNSldLGY9bShhLnlhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPQpoKHtldmVudElkOmQsdGY6ISFifSksbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1tKHAudmFsdWUpLHI9cS5uZXh0KCkudmFsdWUsdD1xLm5leHQoKS52YWx1ZTtlLnB1c2goIiYiK3IrIj0iK3QpfWUucHVzaCgiJno9MCIpO3JldHVybiBlLmpvaW4oIiIpfSxiej1mdW5jdGlvbihhKXtpZigkaygyNikmJihhLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApLGEuSCE9PXZvaWQgMCYmYS5SKSl7dmFyIGI9bG8oY28uaWEuWmIpO2lmKGdvKGIpKWEuTnx8KGEuTj0hMCxpbyhiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9KSk7ZWxzZSBpZihhLlpbYS5IXXx8WHkoYS5qYSl8fGEuTGEtLTw9MClQKDEpLGEuWlthLkhdPSEwO2Vsc2V7WXkoYS5qYSk7dmFyIGM9YXooYSwhMCk7WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmEuSH0sYyk7YS5SPSExO2EuTj0hMX19fSxjej1mdW5jdGlvbihhKXthLkt8fChhLks9CkEuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSw1MDApKX0sZXo9ZnVuY3Rpb24oYSl7dmFyIGI9ZHo7Yi5aW2FdfHwoYSE9PWIuSCYmKGJ6KGIpLGIuSD1hKSxiLlI9ITAsY3ooYiksYXooYikubGVuZ3RoPj0yMDIyJiZieihiKSl9LGR6O2Z1bmN0aW9uIGZ6KGEpe2d6KCk7WnkoZHosYSl9ZnVuY3Rpb24gaHooKXt2YXIgYTthPWE9PT12b2lkIDA/ITE6YTtneigpO3ZhciBiPWEsYz1kejtiPWI9PT12b2lkIDA/ITE6YjtpZihmbi5OJiYkaygyNikpe3ZhciBkPWF6KGMsITAsITApO2I/Vm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCk6WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCl9fWZ1bmN0aW9uIGd6KCl7ZHp8fChkej1uZXcgJHkpfTtmdW5jdGlvbiBpeigpe2Z1bmN0aW9uIGEoYyxkKXt2YXIgZT13YihyYltkXXx8W10pO2UmJmIucHVzaChbYyxlXSl9dmFyIGI9W107YSgidSIsIkdUTSIpO2EoInV0IiwiVEFHR0lORyIpO2EoImgiLCJIRUFMVEgiKTtyZXR1cm4gYn07dmFyIGp6PSJodHRwczovLyIrRSgyMSksa3o9ZnVuY3Rpb24oKXt0aGlzLk49ITE7dGhpcy5SPVtdO3RoaXMuWj1bXTt0aGlzLkg9e1RDOjAsSFRDOjB9O3RoaXMuSz17fX0sbHo9ZnVuY3Rpb24oYSxiLGMsZCl7YS5LW2JdfHwoYS5LW2JdPXt9KTthLktbYl1bY109ZH0sb3o9ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0iIixkPW16KCk7QWIoZCkmJihhLkguST1NYXRoLmZsb29yKGQpKTtjPW56KGEuSCxKeSkudG9TdHJpbmcoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhhLkspKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWEuS1tnXS5uYW1lLGw9IiIsbj1ueihhLktbZ10sS3kpO24mJihsPWgrIi4iK24udG9TdHJpbmcoKSxiKz0ifiIrbCl9dmFyIHA9In5BV0NUIithLlIuam9pbigiLiIpLHE9In5HQSIrYS5aLmpvaW4oIi4iKSxyPSImY2NpZD0iK3ZrKCkudG9TdHJpbmcoKSsiJmNpZD0iK0UoNSkudG9TdHJpbmcoKSsiJmw9IitjK2IrKGEuUi5sZW5ndGg/CnA6IiIpKyhhLloubGVuZ3RoP3E6IiIpO2lmKE0oMjE0KSl7dmFyIHQsdT0odD1yZCgpKT09bnVsbD92b2lkIDA6dC5nZXRFbnRyaWVzQnlOYW1lKEtjKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIFN0cmluZyh2LmR1cmF0aW9uKX0pLmpvaW4oIi4iKTt1JiYocis9In5TUyIrdSl9cmV0dXJuIHJ9LHB6PWZ1bmN0aW9uKGEsYil7aWYoIWIuc3RhZ2V8fGEuTnx8IU95KCl8fFN5KGIpKXJldHVybiExO3ZhciBjLGQ9KGM9cmQoKSk9PW51bGw/dm9pZCAwOmMudGltZU9yaWdpbjtpZighQWIoZCkpYS5OPSEwO2Vsc2UgaWYoQWIoJGsoMjUpKSYmIVN5KHtzdGFnZTpJeS5YLmpkfSkmJiFhLk4mJk95KCkpdHJ5e3ZhciBlPU51bWJlcigkaygyNSkpO1R5KHtzdGFnZTpJeS5YLmpkfSx7c3RhcnRUaW1lOk1hdGgubWF4KGUtZCwwKX0pO1R5KHtzdGFnZTpJeS5YLmlqfSx7c3RhcnRUaW1lOjB9KTt2YXIgZj1VeSh7c3RhZ2U6SXkuWC5qZH0sSXkuWC5paik7ZiYmKGEuSC5MPU1hdGguZmxvb3IoZikpfWNhdGNoKGcpe2EuTj0KITB9aWYoYS5OKXJldHVybiExO3RyeXtpZighVHkoYikpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuIGEuTj0hMCwhMX1yZXR1cm4hMH0scXo9ZnVuY3Rpb24oYSxiLGMpe2lmKHB6KGEsYikpdHJ5e3ZhciBkPVV5KGIsYyk7aWYoZClyZXR1cm4gTWF0aC5mbG9vcihkKX1jYXRjaChlKXthLk49ITB9fSxzej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5taX0pfSx0ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCksYj1xeihhLHtzdGFnZTpJeS5YLlhrfSxJeS5YLm1pKTtiIT09dm9pZCAwJiYoYS5ILlM9Yil9LHV6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm5pfSl9LHZ6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLkJoLGV2ZW50SWQ6YX0pO2MuS1thXSYmYy5LW2FdLm5hbWV8fGx6KGMsYSwibmFtZSIsU2IoYiwiZ3RtLiIpP2I6IioiKX0sd3o9ZnVuY3Rpb24oYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llgudm0sCmV2ZW50SWQ6YX0sSXkuWC5CaCk7YyE9PXZvaWQgMCYmbHooYixhLCJTIixjKX0seXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpLGQ9cXooYyx7c3RhZ2U6SXkuWC50bSxldmVudElkOmF9LEl5LlguQmgpO2QhPT12b2lkIDAmJmx6KGMsYSwiRSIsZCk7aWYoYj09PSJndG0ubG9hZCIpe3ZhciBlPXF6KGMse3N0YWdlOkl5LlguV2t9LEl5LlguWmcpO2UhPT12b2lkIDAmJihjLkguRT1lKTtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtpZighYy5OJiZPeSgpJiZFKDUpKXt2YXIgZj14eigpO2YhPT12b2lkIDAmJihjLkguRj1NYXRoLmZsb29yKGYpKTt0cnl7Zm9yKHZhciBnPWl6KHtldmVudElkOjAsdGY6ITF9KSxoPVtdLGw9bShnKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bShuLnZhbHVlKSxxPXAubmV4dCgpLnZhbHVlLHI9cC5uZXh0KCkudmFsdWU7aC5wdXNoKCImIitxKyI9IityKX12YXIgdD1DcCgpLHU9W1tmayhqeiksIi9hP3Y9MyZ0PWwiLCImcGlkPSIrCkRiKCkudG9TdHJpbmcoKSwiJnJ2PSIrRSgxNCksdD8iJnRhZ19leHA9Iit0OiIiLGguam9pbigiIildLmpvaW4oIiIpLCImZ3RtPSIsZHUoKSxveihjKV0uam9pbigiIik7aWYodS5sZW5ndGg+MjAyMil7dmFyIHY9TWF0aC5tYXgodS5sYXN0SW5kZXhPZigiLlRTIiwyMDIyKSx1Lmxhc3RJbmRleE9mKCJ+IiwyMDIyKSk7dT11LnNsaWNlKDAsdil9WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1Nn0sdSl9Y2F0Y2goeCl7fX19KX19LHp6O2Z1bmN0aW9uIHJ6KCl7enp8fCh6ej1uZXcga3opO3JldHVybiB6en1mdW5jdGlvbiBteigpe3RyeXt2YXIgYTtyZXR1cm4oKGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdKS5kb21JbnRlcmFjdGl2ZX1jYXRjaChiKXt9fQpmdW5jdGlvbiBueihhLGIpe3JldHVybiBPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGJbY119KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY10hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuKCIiKyhjPT09InRhZyI/IiI6YykpLmNvbmNhdChhW2NdLnRvU3RyaW5nKCkpfSkuam9pbigiLiIpfWZ1bmN0aW9uIEF6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVtLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5aLnB1c2goYyl9ZnVuY3Rpb24gQnooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRWssZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLlIucHVzaChjKX1mdW5jdGlvbiBDeihhKXt2YXIgYj1yeigpO3B6KGIse3N0YWdlOkl5LlguVGksZXZlbnRJZDphfSl9CmZ1bmN0aW9uIER6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnNtLGV2ZW50SWQ6YX0sSXkuWC5UaSk7YyE9PXZvaWQgMCYmbHooYixhLCJWIixjKX1mdW5jdGlvbiB4eigpe3RyeXt2YXIgYSxiO3JldHVybihiPShhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoInBhaW50IikuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQifSkpPT1udWxsP3ZvaWQgMDpiLnN0YXJ0VGltZX1jYXRjaChjKXt9fWZ1bmN0aW9uIEV6KGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLnhqLGV2ZW50SWQ6YS5pZCx0YWdJZDpOdW1iZXIoYltHZi55al0pfSl9CmZ1bmN0aW9uIEZ6KGEsYixjKXt2YXIgZD1yeigpLGU9ZG4oYiksZj1OdW1iZXIoYltHZi55al0pLGc9cXooZCx7c3RhZ2U6YyxldmVudElkOmEuaWQsdGFnSWQ6Zn0sSXkuWC54aik7aWYoZyE9PXZvaWQgMCYmZC5LW2EuaWRdKXt2YXIgaD1kLktbYS5pZF0udGFnfHwiIixsLG49KGw9TXlbY10pIT1udWxsP2w6IjEiLHA9bmV3IFJlZ0V4cCgiVFNcXGQiK2UrIi5USSIrZikscT0iVFMiK24rZSsiLlRJIitmKyIuVEUiK2c7aC5zZWFyY2gocCk+PTA/biE9PSIxIiYmbHooZCxhLmlkLCJ0YWciLGgucmVwbGFjZShwLHEucmVwbGFjZSgiLlRFIitnLCIiKSkpOihseihkLGEuaWQsInRhZyIsKGg/aCsiLiI6IiIpK3EpLGU9PT0iaHRtbCImJihkLkguSFRDKz0xKSxkLkguVEMrPTEpfX07CnZhciBHej1mdW5jdGlvbihhKXtRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLHB2KSYmcnYocHYpfSxJej1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtpZihiPT09WC5WLkthKUd5KGEpO2Vsc2V7dmFyIGM9SHpbYl07aWYoYylmbi5IJiZiPT09WC5WLnhhJiZCeihhLk0uZXZlbnRJZCksUXcoYSxmdW5jdGlvbihkKXt2YXIgZT1neShhKTtWKGEsSC5KLnBqLGUpO2UmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxmeShhLGUpKTtGeSgzLGEuZXZlbnROYW1lKTt2YXIgZj17fSxnPXt9O1F1KGEse1FzOmZ1bmN0aW9uKGgsbCxuKXtpZihuLmZpbmQoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNQcmltYXJ5JiYocC5zdGF0dXM9PT0wfHxwLnN0YXR1cz09PTEpfSkpaC5NLm9uU3VjY2VzcygpO2Vsc2UgR3ooaCksaC5NLm9uRmFpbHVyZSgpfSxTczpmdW5jdGlvbihoLGwpe3ZhciBuO3ZhciBwPWwuc2IscT1sLmVuZHBvaW50LmVuZHBvaW50LApyO3N3aXRjaChsLnBrIGluc3RhbmNlb2Yga3g/MjpsLnBrIGluc3RhbmNlb2Ygcng/NDpsLnBrIGluc3RhbmNlb2Yga3U/MzoxKXtjYXNlIDI6cj0yMTticmVhaztjYXNlIDM6UShoLEguSi5kYSk9PT1YLlYueGEmJlEoaCxILkoub2IpJiZxIT09OSYmKHI9MjApO2JyZWFrO2Nhc2UgNDpyPTIwfWlmKHIpe3ZhciB0O3ZhciB1PU5mKHIsLTEpO1h4KGgsb3YpPyhaeChwLGgsdSksdD17TXQ6VHh9KTp0PXt3ZTpZeChoLHUpfTt2YXIgdj10LHg9di53ZSx5PXYuTXQ7eD09bnVsbHx8UngoeCk7bj17d2U6eCxrdDp5fX1lbHNlIG49e307dmFyIHo9bixDPXoud2UsRD16Lmt0O0MmJihmW2wuc2JdPUMpO0QmJihnW2wuc2JdPUQpfSx1bzpmdW5jdGlvbihoLGwpe2ZbbC5zYl0mJihUbihmW2wuc2JdKSxkZWxldGUgZltsLnNiXSk7Z1tsLnNiXSYmKFVuKGdbbC5zYl0sbC5zYiksZGVsZXRlIGdbbC5zYl0pfSxSczpmdW5jdGlvbihoLGwsbixwLHEpe2lmKHEubGVuZ3RoJiZiIT09WC5WLnViKXt2YXIgcj0KcVtxLmxlbmd0aC0xXSx0PXIuc2IsdT1yLmVuZHBvaW50LmVuZHBvaW50O2lmKCFQeC5pbmNsdWRlcyh1KSl7dmFyIHY9aC5NO01sKHt0YXJnZXRJZDpoLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDp0LHBhcmFtZXRlckVuY29kaW5nOjMsZW5kcG9pbnQ6dX0scWI6e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGgsSC5KLnVmKSxwcmlvcml0eUlkOlEoaCxILkoudmYpfX0pO1EoaCxILkouZGEpfX19fSxjKX0pO2Vsc2UgYS5NLm9uRmFpbHVyZSgpfX0sSno9e30sSHo9KEp6W1guVi56ZF09WncsSnpbWC5WLnhhXT1GeCxKeltYLlYuWWRdPUt4LEp6W1guVi5aZF09T3gsSnpbWC5WLnViXT1leSxKeltYLlYuT2JdPXl5LEp6W1guVi5GYl09Q3ksSnopO3ZhciBLej17Z2o6e2JwOiIxIix1cToiMiIsVnE6IjMifX07CnZhciBMej17fSxNej1PYmplY3QuZnJlZXplKChMeltGLkQuZmhdPTEsTHpbRi5ELmdoXT0xLEx6W0YuRC5CZF09MSxMeltGLkQuQ2RdPTEsTHpbRi5ELlJjXT0xLEx6W0YuRC5zaV09MSxMeltGLkQudWldPTEsTHpbRi5ELkNsXT0xLEx6W0YuRC5paF09MSxMeltGLkQuQ2ZdPTEsTHpbRi5ELkRmXT0xLEx6W0YuRC5FZl09MSxMeltGLkQuSGFdPTEsTHpbRi5ELkZmXT0xLEx6W0YuRC5GZF09MSxMeltGLkQudWNdPTEsTHpbRi5ELkhkXT0xLEx6W0YuRC5MYl09MSxMeltGLkQuQ2JdPTEsTHpbRi5ELlRiXT0xLEx6W0YuRC5uYl09MSxMeltGLkQuZWJdPTEsTHpbRi5ELkdlXT0xLEx6W0YuRC5raF09MSxMeltGLkQuT2FdPTEsTHpbRi5ELk9wXT0xLEx6W0YuRC5TcF09MSxMeltGLkQuSWVdPTEsTHpbRi5ELkdpXT0xLEx6W0YuRC5RZl09MSxMeltGLkQuVGFdPTEsTHpbRi5ELlljXT0xLEx6W0YuRC5aY109MSxMeltGLkQudGJdPTEsTHpbRi5ELlFkXT0xLEx6W0YuRC5SZF09MSxMeltGLkQuU2RdPQoxLEx6W0YuRC5OZV09MSxMeltGLkQuemFdPTEsTHpbRi5ELlVhXT0xLEx6W0YuRC5XbF09MSxMeltGLkQuWGxdPTEsTHpbRi5ELllsXT0xLEx6W0YuRC5abF09MSxMeltGLkQuV2JdPTEsTHpbRi5ELlRkXT0xLEx6W0YuRC5YYl09MSxMeltGLkQuZGRdPTEsTHpbRi5ELlVkXT0xLEx6W0YuRC5RZV09MSxMeltGLkQuUGFdPTEsTHpbRi5ELnljXT0xLEx6W0YuRC5WZF09MSxMeltGLkQuemNdPTEsTHpbRi5ELkFjXT0xLEx6W0YuRC5mYl09MSxMeltGLkQuUWFdPTEsTHopKSxOej17fSxPej0oTnpbRi5ELlVjXT0xLE56W0YuRC5QcF09MSxOeltGLkQuSGVdPTEsTnpbRi5ELnJpXT0xLE56Lm9yZWY9MSxOeik7dmFyIFB6LFF6OwpmdW5jdGlvbiBSeihhLGIpe3ZhciBjPWFbR2YuWWJdLGQ9YiYmYi5ldmVudDtpZighYyl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGU9UXpbY10sZj17fSxnO2ZvcihnIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShnKSYmKFNiKGcsInZ0cF8iKT9mW2UhPT12b2lkIDA/ZzpnLnN1YnN0cmluZyg0KV09YVtnXTpnPT09R2YuRnEudG9TdHJpbmcoKSYmKGZbZSE9PXZvaWQgMD8idnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSI6Z109YVtnXSkpO0lmKDYxKSYmZSYmKGYudnRwX2V4dHJhRXhwZXJpbWVudElkcz0hMCk7ZSYmZCYmZC5jYWNoZWRNb2RlbFZhbHVlcyYmKGYudnRwX2d0bUNhY2hlZFZhbHVlcz1kLmNhY2hlZE1vZGVsVmFsdWVzKTtiJiZlJiYoZi52dHBfZ3RtRW50aXR5SW5kZXg9Yi5pbmRleCxmLnZ0cF9ndG1FbnRpdHlOYW1lPWIubmFtZSk7cmV0dXJuIGUhPT12b2lkIDA/ZShmKTpQeihjLGYsCmIpfXZhciBUej1mdW5jdGlvbigpe3ZhciBhPVN6O2lmKE0oNTg1KSYmZm4uSyl7dmFyIGI9RSg1KS5pbmRleE9mKCJHVE0tIik9PT0wJiZJZig2MiksYyxkPSgoYz1GaygpKT09bnVsbD92b2lkIDA6Yy5zb3VyY2UpPT09MTtiJiYhZHx8YS5IfHwoYS5IPSEwLFVtKCJhYmwiLCIxIiksdG8oKSl9fSxTej1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBVej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSFtHZi5SbV18fCIiKX07ClV6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe2lmKCFiW3RoaXMuaW5kZXhdJiYhYS5pc0Jsb2NrZWQodGhpcy5IKSl7Ylt0aGlzLmluZGV4XT0hMDt0aGlzLkhbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7dmFyIGM9dGhpcy5uYW1lLGQ7dHJ5e3ZhciBlPXt9LGY7Zm9yKGYgaW4gdGhpcy5IKXRoaXMuSC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpKTtlLnZ0cF9ndG1FdmVudElkPWEuaWQ7YS5wcmlvcml0eUlkJiYoZS52dHBfZ3RtUHJpb3JpdHlJZD1hLnByaW9yaXR5SWQpO3ZhciBnPWQ9UnooZSx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MixuYW1lOmN9KTtlW0dmLlprXSYmdHlwZW9mIGc9PT0ic3RyaW5nIiYmKGc9ZVtHZi5aa109PT0xP2cudG9Mb3dlckNhc2UoKTpnLnRvVXBwZXJDYXNlKCkpO2UuaGFzT3duUHJvcGVydHkoR2YuYWgpJiYoZz1ZZigxOCk/ZVtHZi5haF09PT0xPwpWZihnLCJQRVJJT0QiKTplW0dmLmFoXT09PTI/VmYoZywiQ09NTUEiKTpWZihnLCJBVVRPTUFUSUMiKTplW0dmLmFoXT09PTE/VmYoZywiUEVSSU9EIik6VmYoZywiQ09NTUEiKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5ibCkmJmc9PT1udWxsJiYoZz1lW0dmLmJsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5pbCkmJmc9PT12b2lkIDAmJihnPWVbR2YuaWxdKTtlLmhhc093blByb3BlcnR5KEdmLmVwKSYmKGc9SmIoZykpO2UuaGFzT3duUHJvcGVydHkoR2YuZmwpJiZnPT09ITAmJihnPWVbR2YuZmxdKTtlLmhhc093blByb3BlcnR5KEdmLmFsKSYmZz09PSExJiYoZz1lW0dmLmFsXSk7ZD1nfWNhdGNoKGgpe2EubG9nTWFjcm9FcnJvciYmYS5sb2dNYWNyb0Vycm9yKGgsTnVtYmVyKHRoaXMuaW5kZXgpLGMpLGQ9ITF9Ylt0aGlzLmluZGV4XT0hMTtyZXR1cm4gZH19O1V6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBWej1mdW5jdGlvbihhLGIsYyl7dGhpcy5IPWE7dGhpcy50YWdzPWI7dGhpcy5tYWNyb3M9Y307VnoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcih2YXIgYz17fSxkPW0oT2JqZWN0LmtleXModGhpcy5IKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Y1tmXT1mPT09ImZ1bmN0aW9uIj90aGlzLkhbZl06ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpfXJldHVybiBjbChjKX1jYXRjaChnKXtKU09OLnN0cmluZ2lmeSh0aGlzLkgpfXJldHVybiAyfTtWei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgV3o9ZnVuY3Rpb24oYSxiKXt0aGlzLmluZGV4PWI7dGhpcy5OPVtdO3RoaXMuUj1bXTt0aGlzLks9W107dGhpcy5IPVtdO3RoaXMubmFtZT0iIjtmb3IodmFyIGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9bShkLnZhbHVlKSxmPWUubmV4dCgpLnZhbHVlLGc9eWEoZSksaD1mLGw9ZztoPT09ImlmIj90aGlzLk49bDpoPT09InVubGVzcyI/dGhpcy5SPWw6aD09PSJhZGQiP3RoaXMuSz1sOmg9PT0iYmxvY2siP3RoaXMuSD1sOmg9PT0icnVsZU5hbWUiJiYodGhpcy5uYW1lPWxbMF0pfX07Cld6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPVh6KHRoaXMsYiksZD1bXSxlPVtdO2M/KGQucHVzaC5hcHBseShkLHcodGhpcy5LKSksZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKSk6Yz09PW51bGwmJmUucHVzaC5hcHBseShlLHcodGhpcy5IKSk7cmV0dXJue2ZpcmluZ1RhZ3M6ZCxibG9ja2luZ1RhZ3M6ZX19Owp2YXIgWHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bShhLk4pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1iKGQudmFsdWUpO2lmKGU9PT0wKXJldHVybiExO2lmKGU9PT0yKXJldHVybiBudWxsfWZvcih2YXIgZj1tKGEuUiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWIoZy52YWx1ZSk7aWYoaD09PTIpcmV0dXJuIG51bGw7aWYoaD09PTEpcmV0dXJuITF9cmV0dXJuITB9O1d6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFl6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSWE9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLk89U3RyaW5nKHRoaXMuSWFbR2YuWWJdKTt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSWFbR2YuUm1dfHwiIik7dGhpcy50YWdJZD1OdW1iZXIodGhpcy5JYVtHZi55al0pfTsKWXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/e306Yzt2YXIgZCxlPWM7ZT1lPT09dm9pZCAwP3t9OmU7dmFyIGY9e30sZztmb3IoZyBpbiB0aGlzLklhKXRoaXMuSWEuaGFzT3duUHJvcGVydHkoZykmJihmW2ddPWVsKHRoaXMuSWFbZ10sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pKTtkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixlKTtkLnZ0cF9ndG1UYWdJZD10aGlzLnRhZ0lkO3RoaXMuSWFbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7UnooZCx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MSxuYW1lOnRoaXMubmFtZX0pfTtZei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLklhKX07CnZhciBaej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YudG5dKXJldHVybiBlbChhLklhW0dmLnRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LCR6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi5Ebl0pcmV0dXJuIGVsKGEuSWFbR2YuRG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sYUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLklhW0dmLmNwXTtpZihjKXJldHVybiBlbChjLGIsYS50YWdzLGEubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBlbCh0aGlzLklhW0dmLk1FVEFEQVRBXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIGJBPWZ1bmN0aW9uKCl7dGhpcy5tYWNyb3M9W107dGhpcy5ydWxlcz1bXTt0aGlzLnByZWRpY2F0ZXM9W107dGhpcy50YWdzPVtdO3RoaXMudms9W119O2JBLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfTt2YXIgY0E9bmV3IGJBO2Z1bmN0aW9uIGRBKGEsYixjLGQpe3ZhciBlPVdjKCksZjtpZihlPT09MSlhOnt2YXIgZz1FKDMpO2c9Zy50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaD0iaHR0cHM6Ly8iK2csbD0iaHR0cDovLyIrZyxuPTEscD1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxxPTA7cTxwLmxlbmd0aCYmcTwxMDA7cSsrKXt2YXIgcj1wW3FdLnNyYztpZihyKXtyPXIudG9Mb3dlckNhc2UoKTtpZihyLmluZGV4T2YobCk9PT0wKXtmPTM7YnJlYWsgYX1uPT09MSYmci5pbmRleE9mKGgpPT09MCYmKG49Mil9fWY9bn1lbHNlIGY9ZTtyZXR1cm4oZj09PTJ8fGR8fCJodHRwOiIhPT1BLmxvY2F0aW9uLnByb3RvY29sP2E6YikrY307dmFyIGVBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkssZCkmJmMucHVzaChkKyJ+IithLktbZF0pO3ZhciBlPVtdLGY7Zm9yKGYgaW4gYS5IKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkgsZikmJmUucHVzaChmKyJ+IithLkhbZl0pO2IudGYmJihhLks9e30sYS5IPXt9KTt2YXIgZz1bXTtjLmxlbmd0aD4wJiZnLnB1c2goWyJiY3MiLGMuam9pbigiLiIpXSk7ZS5sZW5ndGg+MCYmZy5wdXNoKFsiYmV0IixlLmpvaW4oIi4iKV0pO3JldHVybiBnfSl9LGZBO2Z1bmN0aW9uIGdBKCl7ZkF8fChmQT1uZXcgZUEpfTtmdW5jdGlvbiBoQShhLGIsYyxkLGUpe2lmKCFFayhhKSl7ZC5sb2FkRXhwZXJpbWVudHM9eWooKTtIayhhLGQsZSk7dmFyIGY9aUEoYSksZz1mdW5jdGlvbigpe29rKCkuY29udGFpbmVyW2FdJiYob2soKS5jb250YWluZXJbYV0uc3RhdGU9Myk7akEoKX0saD17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBsPVhqKCksbj1sKyIvIitrQShmLGEpO1puKGgsbix2b2lkIDAsZnVuY3Rpb24oKXtsQShhLG4sbCsiLyIrZixoLGcpfSl9ZWxzZXt2YXIgcD1TYihhLCJHVE0tIikscT1kaygpLHI9Yz8iL2d0YWcvanMiOiIvZ3RtLmpzIix0PW1BKGIscitmLGEpO2lmKCF0KXt2YXIgdT1FKDMpK3I7cSYmS2MmJnAmJih1PUtjLnJlcGxhY2UoL14oPzpodHRwcz86XC9cLyk/L2ksIiIpLnNwbGl0KC9bPyNdLylbMF0pO3Q9ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsdStmKX1abihoLHQsdm9pZCAwLGcpfX19CmZ1bmN0aW9uIGpBKCl7S2soKXx8R2IoTGsoKSxmdW5jdGlvbihhLGIpe25BKGEsYi50cmFuc3BvcnRVcmwsYi5jb250ZXh0KTtQKDkyKX0pfWZ1bmN0aW9uIG5BKGEsYixjLGQpe2lmKCFHayhhKSlpZihjLmxvYWRFeHBlcmltZW50c3x8KGMubG9hZEV4cGVyaW1lbnRzPXlqKCkpLEtrKCkpSmsoYSxiLGMsZCk7ZWxzZXtJayhhLGMsZCk7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgZj1YaigpLGc9Imd0ZCIraUEoYSwhMCksaD1mKyIvIitrQShnLGEpO1puKGUsaCx2b2lkIDAsZnVuY3Rpb24oKXtsQShhLGgsZisiLyIrZyxlKX0pfWVsc2V7dmFyIGw9Ii9ndGFnL2Rlc3RpbmF0aW9uIitpQShhLCEwKSxuPW1BKGIsbCxhKTtufHwobj1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixFKDMpK2wpKTtabihlLG4pfX19CmZ1bmN0aW9uIGxBKGEsYixjLGQsZSl7aWYoTSg0MTMpKXtnQSgpO3ZhciBmPWZBO2lmKGZuLk4pe3ZhciBnPUEucGVyZm9ybWFuY2UsaD0tMTtpZihnJiZnLmdldEVudHJpZXNCeVR5cGUpe3ZhciBsPVJqKGIpLmhyZWYsbj1nLmdldEVudHJpZXNCeU5hbWUobCkucG9wKCk7aWYoIW4pZm9yKHZhciBwPWcuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXBbcV07aWYoci5uYW1lJiZyLm5hbWUuaW5kZXhPZihiKSE9PS0xKXtuPXI7YnJlYWt9fW4mJm4ucmVzcG9uc2VTdGF0dXMhPT12b2lkIDAmJihoPW4ucmVzcG9uc2VTdGF0dXMpfWYuS1thXT1ofVAoMTkwKTt2YXIgdD1ubShqbS5iYS5rail8fHt9O3RbYV09ITA7bW0oam0uYmEua2osdCk7dmFyIHU9YysoYy5pbmRleE9mKCI/Iik9PT0tMT8iP2Y9MSI6IiZmPTEiKTtlP1puKGQsdSx2b2lkIDAsZSk6Wm4oZCx1KX1lbHNlIGUmJmUoKX0KZnVuY3Rpb24gaUEoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iP2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLGQ9RSgxOSk7ZCE9PSJkYXRhTGF5ZXIiJiYoYys9IiZsPSIrZCk7dmFyIGU9U2IoYSwiR1RNLSIpO2lmKCFlfHxiKWMrPSImY3g9YyI7ZSYmSWYoNjIpJiYoYys9IiZnb29nbGVfb25seT10cnVlIik7dmFyIGY9YyxnLGg9e0RvOkpmKDE1KSxJbzpFKDE0KX07Zz1DZihoKTtjPWYrKCImZ3RtPSIrZyk7ZGsoKSYmKGMrPSImc2lnbj0iK0FqLnFqKTt2YXIgbD1jLG49SmYoNTQpO2lmKG49PT0xKXtsKz0iJmZwcz1mYyI7dmFyIHA9RSg2MCk7cCYmKGwrPSImZ2Rldj0iK3ApfWVsc2Ugbj09PTImJihsKz0iJmZwcz1mZSIpO3JldHVybiBsfQpmdW5jdGlvbiBrQShhLGIpe2lmKCFNKDQxMyl8fCFYaigpKXJldHVybiBhO3ZhciBjPUUoNTgpO2lmKCFjKXJldHVybiBQKDE4MiksYTt0cnl7dmFyIGQ9TmIoKSxlPUVmKGEsYyksZj1OYigpLWQ7Z0EoKTt2YXIgZz1mQTtmbi5OJiYoZy5IW2JdPWYpO3JldHVybiBlfWNhdGNoKGgpe3JldHVybiBQKDE4MyksYX19ZnVuY3Rpb24gbUEoYSxiLGMpe2lmKGFrKCkmJmEpe3ZhciBkPUUoNTgpLGU9WGooKTtpZihkJiZlKXRyeXt2YXIgZj1OYigpO2I9ZSsiLyIrRWYoYixkKTt2YXIgZz1OYigpLWY7Z0EoKTt2YXIgaD1mQTtmbi5OJiYoaC5IW2NdPWcpfWNhdGNoKGwpe1AoMTgzKX1yZXR1cm4gWWooYSxiKX19O3ZhciBwQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPW5ldyBGYjt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj17bmFtZTpFKDE5KSxzZXQ6ZnVuY3Rpb24oYixjKXtFZChWYihiLGMpLGEuSCk7b0EoYSl9LGdldDpmdW5jdGlvbihiKXtyZXR1cm4gYS5nZXQoYiwyKX0scmVzZXQ6ZnVuY3Rpb24oKXthLks9bmV3IEZiO2EuSD17fTtvQShhKX19fTtwQS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIhPTI/dGhpcy5LLmdldChhKTpxQSh0aGlzLGEpfTt2YXIgcUE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuc3BsaXQoIi4iKTtjPWN8fFtdO2Zvcih2YXIgZT1hLkgsZj0wO2Y8ZC5sZW5ndGg7ZisrKXtpZihlPT09bnVsbClyZXR1cm4hMTtpZihlPT09dm9pZCAwKWJyZWFrO2U9ZVtkW2ZdXTtpZihjLmluZGV4T2YoZSkhPT0tMSlyZXR1cm59cmV0dXJuIGV9OwpwQS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OLmhhc093blByb3BlcnR5KGEpfHwodGhpcy5LLnNldChhLGIpLEVkKFZiKGEsYiksdGhpcy5IKSxvQSh0aGlzKSl9O3ZhciBzQT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bImd0bS5hbGxvd2xpc3QiLCJndG0uYmxvY2tsaXN0IiwiZ3RtLndoaXRlbGlzdCIsImd0bS5ibGFja2xpc3QiLCJ0YWdUeXBlQmxhY2tsaXN0Il0sYj1yQSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iLmdldChkLDEpO2lmKEFycmF5LmlzQXJyYXkoZSl8fENkKGUpKWU9RWQoZSxudWxsKTtiLk5bZF09ZX19LG9BPWZ1bmN0aW9uKGEsYil7R2IoYS5OLGZ1bmN0aW9uKGMsZCl7YS5LLnNldChjLGQpO0VkKFZiKGMpLGEuSCk7RWQoVmIoYyxkKSxhLkgpO2ImJmRlbGV0ZSBhLk5bY119KX0sckE9bmV3IHBBLHRBPXJBLlI7ZnVuY3Rpb24gdUEoYSxiKXtyZXR1cm4gckEuZ2V0KGEsYil9CmZ1bmN0aW9uIHZBKGEsYil7dmFyIGM9Yj09PXZvaWQgMD8yOmIsZD1yQSxlLGY9KGM9PT12b2lkIDA/MjpjKSE9PTE/cUEoZCxhKTpkLksuZ2V0KGEpO0FkKGYpPT09ImFycmF5Inx8QWQoZik9PT0ib2JqZWN0Ij9lPUVkKGYsbnVsbCk6ZT1mO3JldHVybiBlfTt2YXIgd0E9bmV3IFJlZ0V4cCgvXiguKlwuKT8oZ29vZ2xlfHlvdXR1YmV8YmxvZ2dlcnx3aXRoZ29vZ2xlKShcLmNvbT8pPyhcLlthLXpdezJ9KT9cLj8kLykseEE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsibm9uR29vZ2xlUGl4ZWxzIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVQaXhlbHM6W10sbm9uR29vZ2xlU2NyaXB0czpbIm5vbkdvb2dsZVBpeGVscyJdLG5vbkdvb2dsZUlmcmFtZXM6WyJub25Hb29nbGVQaXhlbHMiXX0seUE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsiY3VzdG9tU2NyaXB0cyIsCiJodG1sIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCJdLG5vbkdvb2dsZVBpeGVsczpbImN1c3RvbVBpeGVscyIsImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVTY3JpcHRzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiXSxub25Hb29nbGVJZnJhbWVzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIl19LHpBPSJnb29nbGUgY3VzdG9tUGl4ZWxzIGN1c3RvbVNjcmlwdHMgaHRtbCBub25Hb29nbGVQaXhlbHMgbm9uR29vZ2xlU2NyaXB0cyBub25Hb29nbGVJZnJhbWVzIi5zcGxpdCgiICIpOwpmdW5jdGlvbiBBQSgpe3ZhciBhPXVBKCJndG0uYWxsb3dsaXN0Iil8fHVBKCJndG0ud2hpdGVsaXN0Iik7YSYmUCg5KTtJZig2MikmJihhPXZvaWQgMCk7QkEoKSYmKElmKDYyKT9QKDExNik6KFAoMTE3KSxJZig0OCkmJihhPVtdLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR1RNIGJsb2NrZWQuIFNlZSBnby8xMzY4NzcyOC4iKSkpKTt2YXIgYj1hJiZSYihLYihhKSx4QSksYz11QSgiZ3RtLmJsb2NrbGlzdCIpfHx1QSgiZ3RtLmJsYWNrbGlzdCIpO2N8fChjPXVBKCJ0YWdUeXBlQmxhY2tsaXN0IikpJiZQKDMpO2M/UCg4KTpjPVtdO0JBKCkmJihjPUtiKGMpLGMucHVzaCgibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsInNhbmRib3hlZFNjcmlwdHMiKSk7S2IoYykuaW5kZXhPZigiZ29vZ2xlIik+PTAmJlAoMik7dmFyIGQ9YyYmUmIoS2IoYykseUEpLGU9e307cmV0dXJuIGZ1bmN0aW9uKGYpe3ZhciBnPWYmJgpmW0dmLlliXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4hMDtnPWcucmVwbGFjZSgvXl8qLywiIik7aWYoZVtnXSE9PXZvaWQgMClyZXR1cm4gZVtnXTt2YXIgaD1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZ118fFtdLGw9ITA7YSYmKGw9bCYmQ0EoZyxoLGIpKTt2YXIgbj0hMTtjJiYobj1EQShnLGgsZCkpO3ZhciBwPSFsfHxuOyFwJiYoaC5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIik9PT0tMXx8YiYmYi5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIikhPT0tMT8wOkViKGQsekEpKSYmKHA9ITApO3JldHVybiBlW2ddPXB9fWZ1bmN0aW9uIENBKGEsYixjKXtpZihjLmluZGV4T2YoYSk8MClpZihiJiZiLmxlbmd0aD4wKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtpZihjLmluZGV4T2YoYltkXSk8MClyZXR1cm4gUCgxMSksITF9ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH0KZnVuY3Rpb24gREEoYSxiLGMpe3ZhciBkPWMuaW5kZXhPZihhKT49MDtpZihkKXJldHVybiBkO3ZhciBlPUViKGMsYnx8W10pO2UmJlAoMTApO3JldHVybiBlfWZ1bmN0aW9uIEJBKCl7cmV0dXJuIHdBLnRlc3QoQS5sb2NhdGlvbiYmQS5sb2NhdGlvbi5ob3N0bmFtZSl9O2Z1bmN0aW9uIEVBKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9RkEoYSksZT1tKGNBLmdldFJ1bGVzKCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZS5ldmFsdWF0ZShhLGQpLGg9Zy5maXJpbmdUYWdzLGw9Zy5ibG9ja2luZ1RhZ3Msbj0wO248aC5sZW5ndGg7bisrKWJbaFtuXV09ITA7Zm9yKHZhciBwPTA7cDxsLmxlbmd0aDtwKyspY1tsW3BdXT0hMH1mb3IodmFyIHE9W10scj0wO3I8Y0EudGFncy5sZW5ndGg7cisrKWJbcl0mJiFjW3JdJiYocVtyXT0hMCk7cmV0dXJuIHF9ZnVuY3Rpb24gRkEoYSl7dmFyIGI9W107cmV0dXJuIGZ1bmN0aW9uKGMpe2JbY109PT12b2lkIDAmJihiW2NdPWNBLnByZWRpY2F0ZXNbY10uZXZhbHVhdGUoYSxbXSkpO3JldHVybiBiW2NdfX07dmFyIEdBPWZ1bmN0aW9uKCl7dGhpcy5LPTA7dGhpcy5IPXt9fTtHQS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSsrdGhpcy5LO3RoaXMuSFthXT10aGlzLkhbYV18fHt9O3RoaXMuSFthXVtTdHJpbmcoZCldPXtsaXN0ZW5lcjpiLHJmOmN9O3JldHVybiBkfTtHQS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV0sZD1TdHJpbmcoYik7aWYoIWN8fCFjW2RdKXJldHVybiExO2RlbGV0ZSBjW2RdO3JldHVybiEwfTt2YXIgSUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtHYihIQS5IW2FdLGZ1bmN0aW9uKGQsZSl7Yy5pbmRleE9mKGUubGlzdGVuZXIpPDAmJihlLnJmPT09dm9pZCAwfHxiLmluZGV4T2YoZS5yZik+PTApJiZjLnB1c2goZS5saXN0ZW5lcil9KTtyZXR1cm4gY307ZnVuY3Rpb24gSkEoYSxiLGMpe3JldHVybntlbnRpdHlUeXBlOmEsaW5kZXhJbk9yaWdpbkNvbnRhaW5lcjpiLG5hbWVJbk9yaWdpbkNvbnRhaW5lcjpjLG9yaWdpbkNvbnRhaW5lcklkOkUoNSksb3JpZ2luQ0lkOnZrKCl9fTtmdW5jdGlvbiBLQShhLGIpe2lmKGRhdGEuZW50aXRpZXMpe3ZhciBjPWRhdGEuZW50aXRpZXNbYV07aWYoYylyZXR1cm4gY1tiXX19O3ZhciBNQT1mdW5jdGlvbihhLGIpe3RoaXMuSD0hMTt0aGlzLlI9W107dGhpcy5ldmVudERhdGE9e3RhZ3M6W119O3RoaXMuWj0hMTt0aGlzLks9dGhpcy5OPTA7TEEodGhpcyxhLGIpfSxOQT1mdW5jdGlvbihhLGIsYyxkKXtpZihDai5oYXNPd25Qcm9wZXJ0eShiKXx8Yj09PSJfX3pvbmUiKXJldHVybi0xO3ZhciBlPXt9O0NkKGQpJiYoZT1FZChkLGUpKTtlLmlkPWM7ZS5zdGF0dXM9InRpbWVvdXQiO3JldHVybiBhLmV2ZW50RGF0YS50YWdzLnB1c2goZSktMX0sT0E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5ldmVudERhdGEudGFnc1tiXTtlJiYoZS5zdGF0dXM9YyxlLmV4ZWN1dGlvblRpbWU9ZCl9LFBBPWZ1bmN0aW9uKGEpe2lmKCFhLkgpe2Zvcih2YXIgYj1hLlIsYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10oKTthLkg9ITA7YS5SLmxlbmd0aD0wfX0sTEE9ZnVuY3Rpb24oYSxiLGMpe2IhPT12b2lkIDAmJmEud2coYik7YyYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UEEoYSl9LApOdW1iZXIoYykpfTtNQS5wcm90b3R5cGUud2c9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBiKGZ1bmN0aW9uKCl7YmQoZnVuY3Rpb24oKXthKEUoNSksYi5ldmVudERhdGEpfSl9KTt0aGlzLkg/YygpOnRoaXMuUi5wdXNoKGMpfTt2YXIgUUE9ZnVuY3Rpb24oYSl7YS5OKys7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7YS5LKys7YS5aJiZhLks+PWEuTiYmUEEoYSl9KX0sUkE9ZnVuY3Rpb24oYSl7YS5aPSEwO2EuSz49YS5OJiZQQShhKX07ZnVuY3Rpb24gU0EoKXtyZXR1cm4gQVtUQSgpXX0KZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKCmZ1bmN0aW9uIGhGKCl7fTtmdW5jdGlvbiBpRigpe0lmKDYyKSYmKGh5KCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQud2FpdEZvclRhZ3MpIT09ITB9KSxoeSgiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQuZml4TWlzc2luZ0FwaSkhPT0hMH0pKX07dmFyIGpGPWZ1bmN0aW9uKCl7dGhpcy5IPXRoaXMuZ3BwU3RyaW5nPXZvaWQgMH07akYucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5IPXRoaXMuZ3BwU3RyaW5nPXZvaWQgMH07dmFyIGtGPW5ldyBqRjtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO2x0KHtHdTowLEZ1OjEsQ3U6Mix4dTozLER1OjQseXU6NSxFdTo2LEF1OjcsQnU6OCx3dTo5LHp1OjEwLEh1OjExfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBOdW1iZXIoYSl9KTtsdCh7SnU6MCxLdToxLEl1OjJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO3ZhciBsRj1mdW5jdGlvbihhLGIsYyxkKXtydC5jYWxsKHRoaXMpO3RoaXMuZmU9Yjt0aGlzLmtkPWM7dGhpcy5hYz1kO3RoaXMuTGE9bmV3IE1hcDt0aGlzLmhlPTA7dGhpcy5qYT1uZXcgTWFwO3RoaXMueWE9bmV3IE1hcDt0aGlzLlo9dm9pZCAwO3RoaXMuSz1hfTt3YShsRixydCk7bEYucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5IO3RoaXMuTGEuY2xlYXIoKTt0aGlzLmphLmNsZWFyKCk7dGhpcy55YS5jbGVhcigpO3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLmFjO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9Owp2YXIgbUY9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5rZCYmYS5rZChhLkspP2EuSD1hLks6YS5IPU5wKGEuSyxhLmZlKTt2YXIgYjtyZXR1cm4oYj1hLkgpIT1udWxsP2I6bnVsbH0sb0Y9ZnVuY3Rpb24oYSxiLGMpe2lmKG1GKGEpKWlmKGEuSD09PWEuSyl7dmFyIGQ9YS5MYS5nZXQoYik7ZCYmZChhLkgsYyl9ZWxzZXt2YXIgZT1hLmphLmdldChiKTtpZihlJiZlLmRrKXtuRihhKTt2YXIgZj0rK2EuaGU7YS55YS5zZXQoZix7cGU6ZS5wZSxJcjplLm5vKGMpLHBlcnNpc3RlbnQ6Yj09PSJhZGRFdmVudExpc3RlbmVyIn0pO2EuSC5wb3N0TWVzc2FnZShlLmRrKGMsZiksIioiKX19fSxuRj1mdW5jdGlvbihhKXthLlp8fChhLlo9ZnVuY3Rpb24oYil7aWYoYi5zb3VyY2U9PT1hLkgpdHJ5e3ZhciBjO2M9YS5hYz9hLmFjKGIpOnZvaWQgMDtpZihjKXt2YXIgZD1jLllzLGU9YS55YS5nZXQoZCk7aWYoZSl7ZS5wZXJzaXN0ZW50fHxhLnlhLmRlbGV0ZShkKTt2YXIgZjsoZj0KZS5wZSk9PW51bGx8fGYuY2FsbChlLGUuSXIsYy5wYXlsb2FkKX19fWNhdGNoKGcpe319LG10KGEuSywibWVzc2FnZSIsYS5aKSl9O3ZhciBwRj1mdW5jdGlvbihhLGIpe3ZhciBjPWIubGlzdGVuZXIsZD0oMCxhLl9fZ3BwKSgiYWRkRXZlbnRMaXN0ZW5lciIsYyk7ZCYmYyhkLCEwKX0scUY9ZnVuY3Rpb24oYSxiKXsoMCxhLl9fZ3BwKSgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsYi5saXN0ZW5lcixiLmxpc3RlbmVySWQpfSxyRj17bm86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdGVuZXJ9LGRrOmZ1bmN0aW9uKGEsYil7dmFyIGM9e307cmV0dXJuIGMuX19ncHBDYWxsPXtjYWxsSWQ6Yixjb21tYW5kOiJhZGRFdmVudExpc3RlbmVyIix2ZXJzaW9uOiIxLjEifSxjfSxwZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIuX19ncHBSZXR1cm47YShjLnJldHVyblZhbHVlLGMuc3VjY2Vzcyl9fSxzRj17bm86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdGVuZXJ9LGRrOmZ1bmN0aW9uKGEsYil7dmFyIGM9e307cmV0dXJuIGMuX19ncHBDYWxsPXtjYWxsSWQ6Yixjb21tYW5kOiJyZW1vdmVFdmVudExpc3RlbmVyIix2ZXJzaW9uOiIxLjEiLApwYXJhbWV0ZXI6YS5saXN0ZW5lcklkfSxjfSxwZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIuX19ncHBSZXR1cm4sZD1jLnJldHVyblZhbHVlLmRhdGE7YT09bnVsbHx8YShkLGMuc3VjY2Vzcyl9fTtmdW5jdGlvbiB0RihhKXt2YXIgYj17fTt2ZihhLmRhdGEpP2I9SlNPTi5wYXJzZShhLmRhdGEpOmI9YS5kYXRhO3JldHVybntwYXlsb2FkOmIsWXM6Yi5fX2dwcFJldHVybi5jYWxsSWR9fQp2YXIgdUY9ZnVuY3Rpb24oYSxiKXt2YXIgYztjPShiPT09dm9pZCAwP3t9OmIpLnRpbWVvdXRNcztydC5jYWxsKHRoaXMpO3RoaXMuY2FsbGVyPW5ldyBsRihhLCJfX2dwcExvY2F0b3IiLGZ1bmN0aW9uKGQpe3JldHVybiB0eXBlb2YgZC5fX2dwcD09PSJmdW5jdGlvbiJ9LHRGKTt0aGlzLmNhbGxlci5MYS5zZXQoImFkZEV2ZW50TGlzdGVuZXIiLHBGKTt0aGlzLmNhbGxlci5qYS5zZXQoImFkZEV2ZW50TGlzdGVuZXIiLHJGKTt0aGlzLmNhbGxlci5MYS5zZXQoInJlbW92ZUV2ZW50TGlzdGVuZXIiLHFGKTt0aGlzLmNhbGxlci5qYS5zZXQoInJlbW92ZUV2ZW50TGlzdGVuZXIiLHNGKTt0aGlzLnRpbWVvdXRNcz1jIT1udWxsP2M6NTAwfTt3YSh1RixydCk7dUYucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmNhbGxlci5kaXNwb3NlKCk7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnVGLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1IcChmdW5jdGlvbigpe2EodkYsITApfSksZD10aGlzLnRpbWVvdXRNcz09PS0xP3ZvaWQgMDpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YygpfSx0aGlzLnRpbWVvdXRNcyk7b0YodGhpcy5jYWxsZXIsImFkZEV2ZW50TGlzdGVuZXIiLHtsaXN0ZW5lcjpmdW5jdGlvbihlLGYpe2NsZWFyVGltZW91dChkKTt0cnl7dmFyIGc7dmFyIGg7KChoPWUucGluZ0RhdGEpPT1udWxsP3ZvaWQgMDpoLmdwcFZlcnNpb24pPT09dm9pZCAwfHxlLnBpbmdEYXRhLmdwcFZlcnNpb249PT0iMSJ8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxLjAiPyhiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKSxnPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MSxncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfSVNfREVQUkVDQVRFRF9TUEVDIiwKYXBwbGljYWJsZVNlY3Rpb25zOlstMV19fSk6QXJyYXkuaXNBcnJheShlLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucyk/Zz1lOihiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKSxnPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfRVhQRUNURURfQVBQTElDQVRJT05fU0VDVElPTl9BUlJBWSIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19fSk7YShnLGYpfWNhdGNoKGwpe2lmKGU9PW51bGw/MDplLmxpc3RlbmVySWQpdHJ5e2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpfWNhdGNoKG4pe2Eod0YsITApO3JldHVybn1hKHhGLCEwKX19fSl9Owp1Ri5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXtvRih0aGlzLmNhbGxlciwicmVtb3ZlRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKCl7fSxsaXN0ZW5lcklkOmF9KX07CnZhciB4Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjIsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX1VOQVZBSUxBQkxFIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sdkY9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19MSVNURU5FUl9SRUdJU1RSQVRJT05fVElNRU9VVCIsaW50ZXJuYWxFcnJvclN0YXRlOjIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9LHdGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX0VSUk9SIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX07ZnVuY3Rpb24geUYoYSl7dmFyIGI7aWYoIShiPWEucGluZ0RhdGEuc2lnbmFsU3RhdHVzPT09InJlYWR5Iikpe3ZhciBjPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zO2I9IWN8fGMubGVuZ3RoPT09MSYmY1swXT09PS0xfWlmKGIpe2tGLmdwcFN0cmluZz1hLnBpbmdEYXRhLmdwcFN0cmluZzt2YXIgZD1hLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucy5qb2luKCIsIik7a0YuSD1kfX1mdW5jdGlvbiB6Rigpe3RyeXt2YXIgYT1uZXcgdUYoQSx7dGltZW91dE1zOi0xfSk7bUYoYS5jYWxsZXIpJiZhLmFkZEV2ZW50TGlzdGVuZXIoeUYpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEFGKCl7dmFyIGE9W1siY3YiLEUoMSldLFsicnYiLEUoMTQpXSxbInRjIixjQS50YWdzLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZH0pLmxlbmd0aF1dLGI9SmYoMTUpO2ImJmEucHVzaChbIngiLGJdKTt2YXIgYz1DcCgpO2MmJmEucHVzaChbInRhZ19leHAiLGNdKTtyZXR1cm4gYX07dmFyIEJGPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImhmIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbImh0IixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LENGPWZ1bmN0aW9uKCl7dmFyIGE9MDtyZXR1cm4gZnVuY3Rpb24oYil7c3dpdGNoKGIpe2Nhc2UgMTphfD0xO2JyZWFrO2Nhc2UgMjphfD0yO2JyZWFrO2Nhc2UgMzphfD00fXJldHVybiBhfX0sREY7dmFyIEVGPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9IiI7Zm4uTiYmTSg1MTYpJiZmeihmdW5jdGlvbigpe3ZhciBiPVtdO2EuSCYmYi5wdXNoKFsicHNkIixhLkhdKTtyZXR1cm4gYn0pfSxGRjtmdW5jdGlvbiBHRigpe3JldHVybiExfQpmdW5jdGlvbiBIRigpe3ZhciBhPXt9O3JldHVybiBmdW5jdGlvbihiLGMsZCl7fX07ZnVuY3Rpb24gSUYoKXt2YXIgYT1KRjtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe3ZhciBlPWQmJmQuZXZlbnQ7S0YoYyk7dmFyIGY9QmgoYik/dm9pZCAwOjEsZz1uZXcga2I7R2IoYyxmdW5jdGlvbihyLHQpe3ZhciB1PVVkKHQsdm9pZCAwLGYpO3U9PT12b2lkIDAmJnQhPT12b2lkIDAmJlAoNDQpO2cuc2V0KHIsdSl9KTthLlFiKFFmKCkpO3ZhciBoPXtSbjpoZyhiKSxldmVudElkOmU9PW51bGw/dm9pZCAwOmUuaWQscHJpb3JpdHlJZDplIT09dm9pZCAwP2UucHJpb3JpdHlJZDp2b2lkIDAscHJpb3JpdHlRdWV1ZTplIT09dm9pZCAwP2UucHJpb3JpdHlRdWV1ZTp2b2lkIDAsd2c6ZSE9PXZvaWQgMD9mdW5jdGlvbihyKXtlLmxkLndnKHIpfTp2b2lkIDAsUGI6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbG9nOmZ1bmN0aW9uKCl7fSxOcjp7aW5kZXg6ZD09bnVsbD92b2lkIDA6ZC5pbmRleCx0eXBlOmQ9PW51bGw/dm9pZCAwOmQudHlwZSxuYW1lOmQ9PW51bGw/dm9pZCAwOmQubmFtZX0sCml0OiEhS0EoYiwzKSxvcmlnaW5hbEV2ZW50RGF0YTplPT1udWxsP3ZvaWQgMDplLm9yaWdpbmFsRXZlbnREYXRhfTtlJiZlLmNhY2hlZE1vZGVsVmFsdWVzJiYoaC5jYWNoZWRNb2RlbFZhbHVlcz17Z3RtOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZ3RtLGVjb21tZXJjZTplLmNhY2hlZE1vZGVsVmFsdWVzLmVjb21tZXJjZX0pO2lmKEdGKCkpe3ZhciBsPUhGKCksbixwO2guQWI9e3drOltdLHlnOnt9LGpjOmZ1bmN0aW9uKHIsdCx1KXt0PT09MSYmKG49cik7dD09PTcmJihwPXUpO2wocix0LHUpfSxlaTpWaCgpfTtoLmxvZz1mdW5jdGlvbihyKXt2YXIgdD1PYS5hcHBseSgxLGFyZ3VtZW50cyk7biYmbChuLDQse2xldmVsOnIsc291cmNlOnAsbWVzc2FnZTp0fSl9fQp2YXIgcT1yZihhLGgsW2IsZ10pO2EuUWIoKTtxIGluc3RhbmNlb2YgVGEmJihxLnR5cGU9PT0icmV0dXJuIj9xPXEuZGF0YTpxPXZvaWQgMCk7cmV0dXJuIFRkKHEsdm9pZCAwLGYpfX1mdW5jdGlvbiBLRihhKXt2YXIgYj1hLmd0bU9uU3VjY2VzcyxjPWEuZ3RtT25GYWlsdXJlO3liKGIpJiYoYS5ndG1PblN1Y2Nlc3M9ZnVuY3Rpb24oKXtiZChiKX0pO3liKGMpJiYoYS5ndG1PbkZhaWx1cmU9ZnVuY3Rpb24oKXtiZChjKX0pfTt2YXIgTEY9ZnVuY3Rpb24oYSl7aXgoYSl9O3ZhciBNRj1mdW5jdGlvbihhKXtWKGEsSC5KLnRnLGNvLmlhLmNiKX07ZnVuY3Rpb24gTkYoKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwKX07dmFyIE9GPVtGLkQuemldLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5zbGljZSgyKX0pO3ZhciBQRj1mdW5jdGlvbihhKXtVKGEsRi5ELnppLGFsKDgsTkYpKX07ZnVuY3Rpb24gUUYoYSl7fVFGLlA9ImludGVybmFsLmFkZEFkc0NsaWNrSWRzIjtmdW5jdGlvbiBSRihhLGIpe3ZhciBjPXRoaXM7fVJGLnB1YmxpY05hbWU9ImFkZENvbnNlbnRMaXN0ZW5lciI7dmFyIFNGPSExO2Z1bmN0aW9uIFRGKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKFNGKXRyeXthW2JdKCl9Y2F0Y2goYyl7UCg3Nyl9ZWxzZSBhW2JdKCl9ZnVuY3Rpb24gVUYoYSxiLGMpe3ZhciBkPXRoaXMsZTtpZighbGgoYSl8fCFoaChiKXx8IW1oKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiIsInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woZCwibGlzdGVuX2RhdGFfbGF5ZXIiLGEpfV0pO2U9eUIoKS5hZGRMaXN0ZW5lcihhLFRkKGIsdm9pZCAwLDEpLGM9PT1udWxsP3ZvaWQgMDpjKTtyZXR1cm4gZX1VRi5QPSJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBWRihhLGIsYyl7fVZGLnB1YmxpY05hbWU9ImFkZERvY3VtZW50RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gV0YoYSxiLGMsZCl7fVdGLnB1YmxpY05hbWU9ImFkZEVsZW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBYRihhKXtyZXR1cm4gYS5ULnhiKCl9O2Z1bmN0aW9uIFlGKGEpe31ZRi5wdWJsaWNOYW1lPSJhZGRFdmVudENhbGxiYWNrIjsKdmFyIFpGPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciP2E6U3RyaW5nKHJqKCkpfSxiRz1mdW5jdGlvbihhLGIpeyRGKGEsImluaXQiLCExKXx8KGFHKGEsImluaXQiLCEwKSxiKCkpfSwkRj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Y0coYSk7cmV0dXJuIE9iKGQsYixjKX0sZEc9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Y0coYSksZj1PYihlLGIsZCksZz1jKGYpO3JldHVybiBlW2JdPWd9LGFHPWZ1bmN0aW9uKGEsYixjKXtjRyhhKVtiXT1jfSxjRz1mdW5jdGlvbihhKXt2YXIgYj1raigiYXV0b0V2ZW50c1NldHRpbmdzIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yi5oYXNPd25Qcm9wZXJ0eShhKXx8KGJbYV09e30pO3JldHVybiBiW2FdfSxlRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e2V2ZW50OmIsImd0bS5lbGVtZW50IjphLCJndG0uZWxlbWVudENsYXNzZXMiOm9kKGEsImNsYXNzTmFtZSIpLCJndG0uZWxlbWVudElkIjphLmZvcnx8ZWQoYSwiaWQiKXx8CiIiLCJndG0uZWxlbWVudFRhcmdldCI6YS5mb3JtVGFyZ2V0fHxvZChhLCJ0YXJnZXQiKXx8IiJ9O2MmJihkWyJndG0udHJpZ2dlcnMiXT1jLmpvaW4oIiwiKSk7ZFsiZ3RtLmVsZW1lbnRVcmwiXT0oYS5hdHRyaWJ1dGVzJiZhLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9hLmZvcm1BY3Rpb246IiIpfHxhLmFjdGlvbnx8b2QoYSwiaHJlZiIpfHxhLnNyY3x8YS5jb2RlfHxhLmNvZGViYXNlfHwiIjtyZXR1cm4gZH07CmZ1bmN0aW9uIGlHKGEpe2lmKGEuZm9ybSl7dmFyIGI7cmV0dXJuKChiPWEuZm9ybSk9PW51bGw/MDpiLnRhZ05hbWUpP2EuZm9ybTpCLmdldEVsZW1lbnRCeUlkKGEuZm9ybSl9cmV0dXJuIGhkKGEsWyJmb3JtIl0sMTAwKX07CmZ1bmN0aW9uIG1HKGEpe31tRy5QPSJpbnRlcm5hbC5hZGRGb3JtQWJhbmRvbm1lbnRMaXN0ZW5lciI7ZnVuY3Rpb24gbkcoYSxiLGMsZCl7fQpuRy5QPSJpbnRlcm5hbC5hZGRGb3JtRGF0YSI7CmZ1bmN0aW9uIHNHKGEpe31zRy5QPSJpbnRlcm5hbC5hZGRHYVNlbmRMaXN0ZW5lciI7ZnVuY3Rpb24gdEcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9YS5OcjtyZXR1cm4gSkEoYi50eXBlLGIuaW5kZXgsYi5uYW1lKX1mdW5jdGlvbiB1RyhhKXtpZighYSlyZXR1cm57fTt2YXIgYj17b3JpZ2luYXRpbmdFbnRpdHk6dEcoYSl9O2EucHJpb3JpdHlRdWV1ZSYmKGIucHJpb3JpdHlRdWV1ZT1hLnByaW9yaXR5UXVldWUpO3JldHVybiBifTtmdW5jdGlvbiBDRyhhKXt2YXIgYj1taigiem9uZXMiKTtyZXR1cm4gYj9iLmdldElzQWxsb3dlZEZuKHdrKCksYSk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19ZnVuY3Rpb24gREcoKXt2YXIgYT1taigiem9uZXMiKTthJiZhLnVucmVnaXN0ZXJDaGlsZCh3aygpKX0KZnVuY3Rpb24gRUcoKXtrQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiPWEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0sYz1taigiem9uZXMiKTtyZXR1cm4gYz9jLmlzQWN0aXZlKHdrKCksYik6ITB9KTtoQih2aygpLGZ1bmN0aW9uKGEpe3ZhciBiLGM7Yj1hLmVudGl0eUlkO2M9YS5zZWN1cml0eUdyb3VwcztyZXR1cm4gQ0coTnVtYmVyKGEub3JpZ2luYWxFdmVudERhdGFbImd0bS51bmlxdWVFdmVudElkIl0pKShiLGMpfSl9O3ZhciBGRz1mdW5jdGlvbihhLGIpe3RoaXMudGFnSWQ9YTt0aGlzLmNhbm9uaWNhbElkPWJ9OwpmdW5jdGlvbiBHRyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGF9R0cuUD0iaW50ZXJuYWwubG9hZEdvb2dsZVRhZyI7ZnVuY3Rpb24gSEcoYSl7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGIpO2lmKGMgaW5zdGFuY2VvZiBLZClyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKCl7dmFyIGQ9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGU9dGhpcyxmPUVkKFhGKHRoaXMpLG51bGwpO2YuZXZlbnRJZD1hLmV2ZW50SWQ7Zi5wcmlvcml0eUlkPWEucHJpb3JpdHlJZDtmLm9yaWdpbmFsRXZlbnREYXRhPWEub3JpZ2luYWxFdmVudERhdGE7dmFyIGc9ZC5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGUuZXZhbHVhdGUobCl9KSxoPXRoaXMuVC53YigpO2gudWUoZik7cmV0dXJuIGMuTmMuYXBwbHkoYyxbaF0uY29uY2F0KHcoZykpKX0pfSl9O2Z1bmN0aW9uIElHKGEsYixjKXt2YXIgZD10aGlzO31JRy5QPSJpbnRlcm5hbC5hZGRHb29nbGVUYWdSZXN0cmljdGlvbiI7CmZ1bmN0aW9uIFBHKGEsYil7fVBHLlA9ImludGVybmFsLmFkZEhpc3RvcnlDaGFuZ2VMaXN0ZW5lciI7ZnVuY3Rpb24gUUcoYSxiLGMpe31RRy5wdWJsaWNOYW1lPSJhZGRXaW5kb3dFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBSRyhhLGIpe3JldHVybiEwfVJHLnB1YmxpY05hbWU9ImFsaWFzSW5XaW5kb3ciO2Z1bmN0aW9uIFNHKGEsYixjKXt9U0cuUD0iaW50ZXJuYWwuYXBwZW5kUmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBURyhhKXt2YXIgYjtyZXR1cm4gYn0KVEcucHVibGljTmFtZT0iY2FsbEluV2luZG93IjtmdW5jdGlvbiBVRyhhKXt9VUcucHVibGljTmFtZT0iY2FsbExhdGVyIjtmdW5jdGlvbiBWRyhhKXt9VkcuUD0iY2FsbE9uRG9tUmVhZHkiO2Z1bmN0aW9uIFdHKGEpe31XRy5QPSJjYWxsT25XaW5kb3dMb2FkIjt2YXIgWUc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ubShYRyl8fHt9LGQ9Y1thXXx8e307aWYoZFtiXSlyZXR1cm4hMTt2YXIgZT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQpO2VbYl09ITA7dmFyIGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjKTtmW2FdPWU7bW0oWEcsZik7cmV0dXJuITB9LFhHPWptLmJhLmhyO2Z1bmN0aW9uIFpHKGEsYil7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9WUcoYSxiKTtyZXR1cm4gY31aRy5QPSJpbnRlcm5hbC5jbGFpbURlc3RpbmF0aW9uIjtmdW5jdGlvbiAkRyhhLGIpe3ZhciBjO3JldHVybiBjfSRHLlA9ImludGVybmFsLmNvbXB1dGVHdG1QYXJhbWV0ZXIiO2Z1bmN0aW9uIGFIKGEsYil7dmFyIGM9dGhpcztpZighaGgoYSl8fCFqaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiZnVuY3Rpb24iLCJhcnJheSJdLGFyZ3VtZW50cyk7YnAoZnVuY3Rpb24oKXthLmludm9rZShjLlQpfSxUZChiKSk7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7aWYoIWhoKGEpfHwhamgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImZ1bmN0aW9uIiwiYXJyYXkiXSxhcmd1bWVudHMpO2FwKGZ1bmN0aW9uKGQpe2EuaW52b2tlKGMuVCxVZChkKSl9LFRkKGIpKTt9YkguUD0iaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlUmV0cnkiO2Z1bmN0aW9uIGNIKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgYz1hO2lmKCFrbShjKSl0aHJvdyBFcnJvcigiY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEgcmVxdWlyZXMgdmFsaWQgQ3Jvc3NDb250YWluZXJTY2hlbWEga2V5LiIpO3ZhciBkPW5tKGMpO2I9VWQoZCx0aGlzLlQsMSk7cmV0dXJuIGJ9Y0guUD0iaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIGRIKGEsYil7dmFyIGM7dmFyIGU9VWQoYyx0aGlzLlQsQmgoWEYodGhpcykuUGIoKSk/MjoxKTtlPT09dm9pZCAwJiZjIT09dm9pZCAwJiZQKDQ1KTtyZXR1cm4gZX1kSC5wdWJsaWNOYW1lPSJjb3B5RnJvbURhdGFMYXllciI7CmZ1bmN0aW9uIGVIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn1lSC5QPSJpbnRlcm5hbC5jb3B5RnJvbURhdGFMYXllckNhY2hlIjtmdW5jdGlvbiBmSChhKXt2YXIgYjtyZXR1cm4gYn1mSC5wdWJsaWNOYW1lPSJjb3B5RnJvbVdpbmRvdyI7ZnVuY3Rpb24gZ0goYSl7dmFyIGI9dm9pZCAwO3JldHVybiBVZChiLHRoaXMuVCwxKX1nSC5QPSJpbnRlcm5hbC5jb3B5S2V5RnJvbVdpbmRvdyI7dmFyIGhIPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Y28uaWEuY2ImJmZvLkhbYV09PT1iby5NYS5VZSYmIVhvKEYuRC5rYSl9O3ZhciBpSD1mdW5jdGlvbigpe3JldHVybiIwIn0sakg9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilyZXR1cm4iIjt2YXIgYj1bImdjbGlkIiwiZGNsaWQiLCJ3YnJhaWQiLCJfZ2wiXTtNKDEwMikmJmIucHVzaCgiZ2JyYWlkIik7cmV0dXJuIFNqKGEsYiwiMCIpfTt2YXIga0g9e30sbEg9e30sbUg9e30sbkg9e30sb0g9e30scEg9e30scUg9e30sckg9e30sc0g9e30sdEg9e30sdUg9e30sdkg9e30sd0g9e30seEg9e30seUg9e30sekg9e30sQUg9e30sQkg9e30sQ0g9e30sREg9e30sRUg9e30sRkg9e30sR0g9e30sSEg9e30sSUg9e30sSkg9e30sS0g9KEpIW0YuRC5mYl09KGtIWzJdPVtoSF0sa0gpLEpIW0YuRC5aZl09KGxIWzJdPVtoSF0sbEgpLEpIW0YuRC5KaV09KG1IWzJdPVtoSF0sbUgpLEpIW0YuRC5nbV09KG5IWzJdPVtoSF0sbkgpLEpIW0YuRC5obV09KG9IWzJdPVtoSF0sb0gpLEpIW0YuRC5pbV09KHBIWzJdPVtoSF0scEgpLEpIW0YuRC5qbV09KHFIWzJdPVtoSF0scUgpLEpIW0YuRC5rbV09KHJIWzJdPVtoSF0sckgpLEpIW0YuRC5CY109KHNIWzJdPVtoSF0sc0gpLEpIW0YuRC5jZ109KHRIWzJdPVtoSF0sdEgpLEpIW0YuRC5kZ109KHVIWzJdPVtoSF0sdUgpLEpIW0YuRC5lZ109KHZIWzJdPVtoSF0sdkgpLEpIW0YuRC5mZ109KHdIWzJdPQpbaEhdLHdIKSxKSFtGLkQuZ2ddPSh4SFsyXT1baEhdLHhIKSxKSFtGLkQuaGddPSh5SFsyXT1baEhdLHlIKSxKSFtGLkQuaWddPSh6SFsyXT1baEhdLHpIKSxKSFtGLkQuamddPShBSFsyXT1baEhdLEFIKSxKSFtGLkQubGJdPShCSFsxXT1baEhdLEJIKSxKSFtGLkQuRGRdPShDSFsxXT1baEhdLENIKSxKSFtGLkQuS2RdPShESFsxXT1baEhdLERIKSxKSFtGLkQuRWVdPShFSFsxXT1baEhdLEVIKSxKSFtGLkQuQmZdPShGSFsxXT1bZnVuY3Rpb24oYSl7cmV0dXJuIE0oMTAyKSYmaEgoYSl9XSxGSCksSkhbRi5ELlVjXT0oR0hbMV09W2hIXSxHSCksSkhbRi5ELnphXT0oSEhbMV09W2hIXSxISCksSkhbRi5ELlVhXT0oSUhbMV09W2hIXSxJSCksSkgpLExIPXt9LE1IPShMSFtGLkQubGJdPWlILExIW0YuRC5EZF09aUgsTEhbRi5ELktkXT1pSCxMSFtGLkQuRWVdPWlILExIW0YuRC5CZl09aUgsTEhbRi5ELlVjXT1mdW5jdGlvbihhKXtpZighQ2QoYSkpcmV0dXJue307dmFyIGI9RWQoYSwKbnVsbCk7ZGVsZXRlIGIubWF0Y2hfaWQ7cmV0dXJuIGJ9LExIW0YuRC56YV09akgsTEhbRi5ELlVhXT1qSCxMSCksTkg9e30sT0g9e30sUEg9KE9IW0guSi5ZYV09KE5IWzJdPVtoSF0sTkgpLE9IKSxRSD17fTt2YXIgUkg9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5OPWI7dGhpcy5SPWM7dGhpcy5aPWR9O1JILnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/Y28uaWEuZ2Q6YTtpZighdGhpcy5OLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIoYSl9KSlyZXR1cm4gdGhpcy5SLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIoYSl9KT90aGlzLloodGhpcy5IKTp0aGlzLkh9O1JILnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIEFkKHRoaXMuSCk9PT0iYXJyYXkifHxDZCh0aGlzLkgpP0VkKHRoaXMuSCxudWxsKTp0aGlzLkh9Owp2YXIgU0g9ZnVuY3Rpb24oKXt9LFRIPWZ1bmN0aW9uKGEsYil7dGhpcy5jb25kaXRpb25zPWE7dGhpcy5IPWJ9LFVIPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPSgoZD1hLmNvbmRpdGlvbnNbYl0pPT1udWxsP3ZvaWQgMDpkWzJdKXx8W10sZixnPSgoZj1hLmNvbmRpdGlvbnNbYl0pPT1udWxsP3ZvaWQgMDpmWzFdKXx8W107cmV0dXJuIG5ldyBSSChjLGUsZyxhLkhbYl18fFNIKX0sVkgsV0g7dmFyIFlIPWZ1bmN0aW9uKGEpe2EuSz0hMDthLkg9ITE7aWYoSWYoNTIpKXtpZihNKDUxNikmJlhIKCkpe3ZhciBiO2Euc2V0dGluZ3M9KGI9ZGF0YS5wcm9kdWN0U2V0dGluZ3MpIT1udWxsP2I6e307YS5IPSEwfWVsc2V7dmFyIGM7YS5zZXR0aW5ncz0oYz1wcm9kdWN0U2V0dGluZ3MpIT1udWxsP2M6e319cHJvZHVjdFNldHRpbmdzPXZvaWQgMDtkYXRhLnByb2R1Y3RTZXR0aW5ncz12b2lkIDA7dmFyIGQ7KGQ9RkYpIT1udWxsJiZmbi5OJiZNKDUxNikmJihkLkg9YS5IPyIxIjoiMCIpfX0sJEg9ZnVuY3Rpb24oYSl7dmFyIGI9Wkg7Yi5LfHxZSChiKTtyZXR1cm4gYi5zZXR0aW5nc1thXX0sWkg9bmV3IGZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncz17fTt0aGlzLks9dGhpcy5IPSExfTsKZnVuY3Rpb24gWEgoKXtpZighZGF0YS5wcm9kdWN0U2V0dGluZ3MmJiFwcm9kdWN0U2V0dGluZ3MpcmV0dXJuITA7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzfHwhcHJvZHVjdFNldHRpbmdzfHxPYmplY3Qua2V5cyhkYXRhLnByb2R1Y3RTZXR0aW5ncykubGVuZ3RoIT09T2JqZWN0LmtleXMocHJvZHVjdFNldHRpbmdzKS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBhIGluIHByb2R1Y3RTZXR0aW5ncylpZighZGF0YS5wcm9kdWN0U2V0dGluZ3MuaGFzT3duUHJvcGVydHkoYSl8fGRhdGEucHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkhPT1wcm9kdWN0U2V0dGluZ3NbYV0ucHJlQXV0b1BpaSlyZXR1cm4hMTtyZXR1cm4hMH07dmFyIGFJPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmV2ZW50TmFtZT1iO3RoaXMuTT1jO3RoaXMuSD17fTt0aGlzLmlzQWJvcnRlZD0hMTt0aGlzLnRhcmdldD1hO3RoaXMubWV0YWRhdGE9e307Zm9yKHZhciBkPWMuZXZlbnRNZXRhZGF0YXx8e30sZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtWKHRoaXMsZyxkW2ddKX19LFI9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO3JldHVybihjPWEuSFtiXSk9PW51bGw/dm9pZCAwOihkPWMuZ2V0VmFsdWUpPT1udWxsP3ZvaWQgMDpkLmNhbGwoYyxRKGEsSC5KLnRnKSl9LGV1PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhhLkgpfSxVPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkgsZTtjPT09dm9pZCAwP2U9dm9pZCAwOihWSCE9bnVsbHx8KFZIPW5ldyBUSChLSCxNSCkpLGU9VUgoVkgsYixjKSk7ZFtiXT1lfTsKYUkucHJvdG90eXBlLm1lcmdlSGl0RGF0YUZvcktleT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZTtjPShkPXRoaXMuSFthXSk9PW51bGw/dm9pZCAwOihlPWQuSyk9PW51bGw/dm9pZCAwOmUuY2FsbChkKTtpZighYylyZXR1cm4gVSh0aGlzLGEsYiksITA7aWYoIUNkKGMpKXJldHVybiExO1UodGhpcyxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsYyxiKSk7cmV0dXJuITB9O3ZhciBiST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEuSCkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9dm9pZCAwLGc9dm9pZCAwLGg9dm9pZCAwO2JbZV09KGY9YS5IW2VdKT09bnVsbD92b2lkIDA6KGg9KGc9ZikuSyk9PW51bGw/dm9pZCAwOmguY2FsbChnKX1yZXR1cm4gYn07CmFJLnByb3RvdHlwZS5jb3B5VG9IaXREYXRhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1PKHRoaXMuTSxhKTtkPT09dm9pZCAwJiYoZD1iKTtpZih6YihkKSYmYyE9PXZvaWQgMCl0cnl7ZD1jKGQpfWNhdGNoKGUpe31kIT09dm9pZCAwJiZVKHRoaXMsYSxkKX07CnZhciBRPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5tZXRhZGF0YVtiXTtpZihiPT09SC5KLnRnKXt2YXIgZDtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGQ9Yy5LKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMpfXZhciBlO3JldHVybiBjPT1udWxsP3ZvaWQgMDooZT1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZS5jYWxsKGMsUShhLEguSi50ZykpfSxWPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm1ldGFkYXRhLGU7Yz09PXZvaWQgMD9lPWM6KFdIIT1udWxsfHwoV0g9bmV3IFRIKFBILFFIKSksZT1VSChXSCxiLGMpKTtkW2JdPWV9LGNJPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Zm9yKHZhciBjPW0oT2JqZWN0LmtleXMoYS5tZXRhZGF0YSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9dm9pZCAwLGc9dm9pZCAwLGg9dm9pZCAwO2JbZV09KGY9YS5tZXRhZGF0YVtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDoKaC5jYWxsKGcpfXJldHVybiBifSxkST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JEgoYS50YXJnZXQuZGVzdGluYXRpb25JZCk7cmV0dXJuIGQmJmRbYl0hPT12b2lkIDA/ZFtiXTpjfSxadT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgYUkoKGI9PW51bGw/dm9pZCAwOmIudGFyZ2V0KXx8YS50YXJnZXQsKGI9PW51bGw/dm9pZCAwOmIuZXZlbnROYW1lKXx8YS5ldmVudE5hbWUsKGI9PW51bGw/dm9pZCAwOmIuTSl8fGEuTSksZD1iSShhKSxlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO1UoYyxnLGRbZ10pfWZvcih2YXIgaD1jSShhKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1YoYyxwLGhbcF0pfWMuaXNBYm9ydGVkPWEuaXNBYm9ydGVkO3JldHVybiBjfSxlST1mdW5jdGlvbihhKXt2YXIgYj1hLk0sYz1iLmV2ZW50SWQsZD1iLnByaW9yaXR5SWQ7CnJldHVybiBkP2MrIl8iK2Q6U3RyaW5nKGMpfTthSS5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKCl7dmFyIGE9b20oam0uYmEuU2kse30pLGI9ZUkodGhpcyksYz10aGlzLnRhcmdldC5kZXN0aW5hdGlvbklkO2FbYl18fChhW2JdPXt9KTthW2JdW2NdPXZrKCk7dmFyIGQ9am0uYmEuU2k7aWYoa20oZCkpe3ZhciBlOyhlPWxtKGQpKT09bnVsbHx8ZS5ub3RpZnkoKX19O2FJLnByb3RvdHlwZS5jYW5CZUFjY2VwdGVkPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLlNpKTtpZighYilyZXR1cm4hMDt2YXIgYz1iW2VJKHRoaXMpXTtpZighYylyZXR1cm4hMDt2YXIgZD1jW2EhPW51bGw/YTp0aGlzLnRhcmdldC5kZXN0aW5hdGlvbklkXTtyZXR1cm4gZD09PXZvaWQgMHx8ZD09PXZrKCl9O2Z1bmN0aW9uIGZJKGEpe3JldHVybntnZXREZXN0aW5hdGlvbklkOmZ1bmN0aW9uKCl7cmV0dXJuIGEudGFyZ2V0LmRlc3RpbmF0aW9uSWR9LGdldEV2ZW50TmFtZTpmdW5jdGlvbigpe3JldHVybiBhLmV2ZW50TmFtZX0sc2V0RXZlbnROYW1lOmZ1bmN0aW9uKGIpe2EuZXZlbnROYW1lPWJ9LGdldEhpdERhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFIoYSxiKX0sc2V0SGl0RGF0YTpmdW5jdGlvbihiLGMpe1UoYSxiLGMpfSxzZXRIaXREYXRhSWZOb3REZWZpbmVkOmZ1bmN0aW9uKGIsYyl7UihhLGIpPT09dm9pZCAwJiZVKGEsYixjKX0sY29weVRvSGl0RGF0YTpmdW5jdGlvbihiLGMpe2EuY29weVRvSGl0RGF0YShiLGMpfSxnZXRNZXRhZGF0YTpmdW5jdGlvbihiKXtyZXR1cm4gUShhLGIpfSxzZXRNZXRhZGF0YTpmdW5jdGlvbihiLGMpe1YoYSxiLGMpfSxpc0Fib3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5pc0Fib3J0ZWR9LGFib3J0OmZ1bmN0aW9uKCl7YS5pc0Fib3J0ZWQ9ITB9LApnZXRGcm9tRXZlbnRDb250ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBPKGEuTSxiKX0scmI6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZ2V0SGl0S2V5czpmdW5jdGlvbigpe3JldHVybiBldShhKX0sZ2V0TWVyZ2VkVmFsdWVzOmZ1bmN0aW9uKGIpe3JldHVybiBhLk0uZ2V0TWVyZ2VkVmFsdWVzKGIsMyl9LG1lcmdlSGl0RGF0YUZvcktleTpmdW5jdGlvbihiLGMpe3JldHVybiBDZChjKT9hLm1lcmdlSGl0RGF0YUZvcktleShiLGMpOiExfSxhY2NlcHQ6ZnVuY3Rpb24oKXthLmFjY2VwdCgpfSxjYW5CZUFjY2VwdGVkOmZ1bmN0aW9uKGIpe3JldHVybiBhLmNhbkJlQWNjZXB0ZWQoYil9fX07ZnVuY3Rpb24gZ0koYSxiKXt2YXIgYztpZighZWgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYil8fHt9LGU9VGQoYSx0aGlzLlQsMSkucmIoKSxmPWUuTTtkLm9taXRFdmVudENvbnRleHQmJihmPUpDKG5ldyB5QyhlLk0uZXZlbnRJZCxlLk0ucHJpb3JpdHlJZCkpKTt2YXIgZz1uZXcgYUkoZS50YXJnZXQsZS5ldmVudE5hbWUsZik7aWYoIWQub21pdEhpdERhdGEpZm9yKHZhciBoPWJJKGUpLGw9bShPYmplY3Qua2V5cyhoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7VShnLHAsaFtwXSl9aWYoZC5vbWl0TWV0YWRhdGEpZy5tZXRhZGF0YT17fTtlbHNlIGZvcih2YXIgcT1jSShlKSxyPW0oT2JqZWN0LmtleXMocSkpLHQ9ci5uZXh0KCk7IXQuZG9uZTt0PQpyLm5leHQoKSl7dmFyIHU9dC52YWx1ZTtWKGcsdSxxW3VdKX1nLmlzQWJvcnRlZD1lLmlzQWJvcnRlZDtjPVVkKGZJKGcpLHRoaXMuVCwxKTtyZXR1cm4gY31nSS5QPSJpbnRlcm5hbC5jb3B5UHJlSGl0IjtmdW5jdGlvbiBoSShhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMsdGhpcy5ULDIpfWhJLnB1YmxpY05hbWU9ImNyZWF0ZUFyZ3VtZW50c1F1ZXVlIjtmdW5jdGlvbiBpSShhKXtyZXR1cm4gVWQoZnVuY3Rpb24oYyl7dmFyIGQ9U0EoKTtpZih0eXBlb2YgYz09PSJmdW5jdGlvbiIpZChmdW5jdGlvbigpe2MoZnVuY3Rpb24oZixnLGgpe3ZhciBsPQpTQSgpLG49bCYmbC5nZXRCeU5hbWUmJmwuZ2V0QnlOYW1lKGYpO3JldHVybihuZXcgQS5nYXBsdWdpbnMuTGlua2VyKG4pKS5kZWNvcmF0ZShnLGgpfSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYykpe3ZhciBlPVN0cmluZyhjWzBdKS5zcGxpdCgiLiIpO2JbZS5sZW5ndGg9PT0xP2VbMF06ZVsxXV0mJmQuYXBwbHkobnVsbCxjKX1lbHNlIGlmKGM9PT0iaXNMb2FkZWQiKXJldHVybiEhZC5sb2FkZWR9LHRoaXMuVCwxKX1pSS5QPSJpbnRlcm5hbC5jcmVhdGVHYUNvbW1hbmRRdWV1ZSI7ZnVuY3Rpb24gakkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKCl7aWYoIXliKGUucHVzaCkpdGhyb3cgRXJyb3IoIk9iamVjdCBhdCAiK2ErIiBpbiB3aW5kb3cgaXMgbm90IGFuIGFycmF5LiIpO2UucHVzaC5hcHBseShlLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LHRoaXMuVCwKQmgoWEYodGhpcykuUGIoKSk/MjoxKX1qSS5wdWJsaWNOYW1lPSJjcmVhdGVRdWV1ZSI7ZnVuY3Rpb24ga0koYSxiKXt2YXIgYz1udWxsO2lmKCFsaChhKXx8IW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt0cnl7dmFyIGQ9KGJ8fCIiKS5zcGxpdCgiIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJpZyIuaW5kZXhPZihlKT49MH0pLmpvaW4oIiIpO2M9bmV3IFBkKG5ldyBSZWdFeHAoYSxkKSl9Y2F0Y2goZSl7fXJldHVybiBjfWtJLlA9ImludGVybmFsLmNyZWF0ZVJlZ2V4IjtmdW5jdGlvbiBsSShhKXt9bEkuUD0iaW50ZXJuYWwuZGVjbGFyZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gbUkoYSl7dmFyIGI9IiI7cmV0dXJuIGJ9bUkuUD0iaW50ZXJuYWwuZGVjb2RlVXJsSHRtbEVudGl0aWVzIjtmdW5jdGlvbiBuSShhLGIsYyl7dmFyIGQ7cmV0dXJuIGR9bkkuUD0iaW50ZXJuYWwuZGVjb3JhdGVVcmxXaXRoR2FDb29raWVzIjtmdW5jdGlvbiBvSSgpe31vSS5QPSJpbnRlcm5hbC5kZWZlckN1c3RvbUV2ZW50cyI7ZnVuY3Rpb24gcEkoYSxiKXt0cnl7cmV0dXJuIGEuY2xvc2VzdChiKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19O2Z1bmN0aW9uIHFJKCl7dmFyIGE9QS5zY3JlZW47cmV0dXJue3dpZHRoOmE/YS53aWR0aDowLGhlaWdodDphP2EuaGVpZ2h0OjB9fQpmdW5jdGlvbiBySShhKXtpZihCLmhpZGRlbilyZXR1cm4hMDt2YXIgYj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGIudG9wPT09Yi5ib3R0b218fGIubGVmdD09PWIucmlnaHR8fCFBLmdldENvbXB1dGVkU3R5bGUpcmV0dXJuITA7dmFyIGM9QS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk7aWYoYy52aXNpYmlsaXR5PT09ImhpZGRlbiIpcmV0dXJuITA7Zm9yKHZhciBkPWEsZT1jO2Q7KXtpZihlLmRpc3BsYXk9PT0ibm9uZSIpcmV0dXJuITA7dmFyIGY9ZS5vcGFjaXR5LGc9ZS5maWx0ZXI7aWYoZyl7dmFyIGg9Zy5pbmRleE9mKCJvcGFjaXR5KCIpO2g+PTAmJihnPWcuc3Vic3RyaW5nKGgrOCxnLmluZGV4T2YoIikiLGgpKSxnLmNoYXJBdChnLmxlbmd0aC0xKT09PSIlIiYmKGc9Zy5zdWJzdHJpbmcoMCxnLmxlbmd0aC0xKSksZj1TdHJpbmcoTWF0aC5taW4oTnVtYmVyKGcpLE51bWJlcihmKSkpKX1pZihmIT09dm9pZCAwJiZOdW1iZXIoZik8PTApcmV0dXJuITA7KGQ9ZC5wYXJlbnRFbGVtZW50KSYmCihlPUEuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKX1yZXR1cm4hMX0KdmFyIHRJPWZ1bmN0aW9uKGEpe3ZhciBiPXNJKCksYz1iLmhlaWdodCxkPWIud2lkdGgsZT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9ZS5ib3R0b20tZS50b3AsZz1lLnJpZ2h0LWUubGVmdDtyZXR1cm4gZiYmZz8oMS1NYXRoLm1pbigoTWF0aC5tYXgoMC1lLmxlZnQsMCkrTWF0aC5tYXgoZS5yaWdodC1kLDApKS9nLDEpKSooMS1NYXRoLm1pbigoTWF0aC5tYXgoMC1lLnRvcCwwKStNYXRoLm1heChlLmJvdHRvbS1jLDApKS9mLDEpKTowfSxzST1mdW5jdGlvbigpe3ZhciBhPUIuYm9keSxiPUIuZG9jdW1lbnRFbGVtZW50fHxhJiZhLnBhcmVudEVsZW1lbnQsYyxkO2lmKEIuY29tcGF0TW9kZSYmQi5jb21wYXRNb2RlIT09IkJhY2tDb21wYXQiKWM9Yj9iLmNsaWVudEhlaWdodDowLGQ9Yj9iLmNsaWVudFdpZHRoOjA7ZWxzZXt2YXIgZT1mdW5jdGlvbihmLGcpe3JldHVybiBmJiZnP01hdGgubWluKGYsZyk6TWF0aC5tYXgoZixnKX07Yz1lKGI/Yi5jbGllbnRIZWlnaHQ6MCxhPwphLmNsaWVudEhlaWdodDowKTtkPWUoYj9iLmNsaWVudFdpZHRoOjAsYT9hLmNsaWVudFdpZHRoOjApfXJldHVybnt3aWR0aDpkLGhlaWdodDpjfX07dmFyIHZJPWZ1bmN0aW9uKGEpe2lmKHVJKXt2YXIgYj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoYT49MCYmYTxiLmxlbmd0aCYmYlthXSl7dmFyIGM7KGM9YlthXSk9PW51bGx8fGMuZGlzY29ubmVjdCgpO2JbYV09dm9pZCAwfX1lbHNlIEEuY2xlYXJJbnRlcnZhbChhKX0seUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWNbZF0+MT9jW2RdPTE6Y1tkXTwwJiYoY1tkXT0wKTtpZih1SSl7dmFyIGU9ITE7YmQoZnVuY3Rpb24oKXtlfHx3SShhLGIsYykoKX0pO3JldHVybiB4SShmdW5jdGlvbihmKXtlPSEwO2Zvcih2YXIgZz17SGc6MH07Zy5IZzxmLmxlbmd0aDtnPXtIZzpnLkhnfSxnLkhnKyspYmQoZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uKCl7YShmW2guSGddKX19KGcpKX0sCmIsYyl9cmV0dXJuIGNkKHdJKGEsYixjKSwxRTMpfSx3ST1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChoLGwpe3ZhciBuPXt0b3A6MCxib3R0b206MCxyaWdodDowLGxlZnQ6MCx3aWR0aDowLGhlaWdodDowfSxwPXtib3VuZGluZ0NsaWVudFJlY3Q6aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpbnRlcnNlY3Rpb25SYXRpbzpsLGludGVyc2VjdGlvblJlY3Q6bixpc0ludGVyc2VjdGluZzpsPjAscm9vdEJvdW5kczpuLHRhcmdldDpoLHRpbWU6TmIoKX07YmQoZnVuY3Rpb24oKXthKHApfSl9Zm9yKHZhciBlPVtdLGY9W10sZz0wO2c8Yi5sZW5ndGg7ZysrKWUucHVzaCgwKSxmLnB1c2goLTEpO2Muc29ydChmdW5jdGlvbihoLGwpe3JldHVybiBoLWx9KTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGg9MDtoPGIubGVuZ3RoO2grKyl7dmFyIGw9dEkoYltoXSk7aWYobD5lW2hdKWZvcig7ZltoXTxjLmxlbmd0aC0xJiZsPj1jW2ZbaF0rMV07KWQoYltoXSxsKSxmW2hdKys7ZWxzZSBpZihsPAplW2hdKWZvcig7ZltoXT49MCYmbDw9Y1tmW2hdXTspZChiW2hdLGwpLGZbaF0tLTtlW2hdPWx9fX0seEk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1uZXcgQS5JbnRlcnNlY3Rpb25PYnNlcnZlcihhLHt0aHJlc2hvbGQ6Y30pLGU9MDtlPGIubGVuZ3RoO2UrKylkLm9ic2VydmUoYltlXSk7Zm9yKHZhciBmPWFsKDI0LGZ1bmN0aW9uKCl7cmV0dXJuW119KSxnPTA7ZzxmLmxlbmd0aDtnKyspaWYoIWZbZ10pcmV0dXJuIGZbZ109ZCxnO3JldHVybiBmLnB1c2goZCktMX0sdUk9ISghQS5JbnRlcnNlY3Rpb25PYnNlcnZlcnx8IUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSk7CnZhciBKST1mdW5jdGlvbihhKXt2YXIgYixjPShiPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVNlbGVjdG9yKSE9bnVsbD9iOiEwLGQsZT0oZD1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVWaXNpYmlsaXR5KSE9bnVsbD9kOiEwLGYsZz0oZj1hPT1udWxsP3ZvaWQgMDphLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpIT1udWxsP2Y6ITEsaD0oYT09bnVsbD92b2lkIDA6YS5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyl8fFtdLGw9KGE9PW51bGw/dm9pZCAwOmEuZmllbGRGaWx0ZXJzKXx8e2VtYWlsOiEwLHBob25lOiExLGFkZHJlc3M6ITF9LG49YWwoNixmdW5jdGlvbigpe3JldHVybnt9fSkscD16SSh7aW5jbHVkZVNlbGVjdG9yOmMsaW5jbHVkZVZpc2liaWxpdHk6ZSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpoLGZpZWxkRmlsdGVyczpsfSkscT1uW3BdO2lmKHEmJk5iKCktcS50aW1lc3RhbXA8MjAwKXt2YXIgcj1xLnJlc3VsdCx0OyhyLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwKKCh0PXIuZ2kpPT1udWxsPzA6dC5kaSkpJiZHdShULlcucmopO3JldHVybiByfXZhciB1PUFJKCksdj11LnN0YXR1cyx4PVtdLHkseixDPVtdO2lmKE0oNTY4KSl7dmFyIEQ9QkkobCksST1DSSh1LmVsZW1lbnRzLEQpLEc9REkoSSksTj1FSShHLGgpLFM9RkkoTik7eT1TLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIHFhLkRhPT09RkQuQmJ9KVswXTtmb3IodmFyIFc9W10sZWE9e0lnOjB9O2VhLklnPEQubGVuZ3RoO2VhPXtJZzplYS5JZ30sZWEuSWcrKyl7dmFyIGphPU4uZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gZnVuY3Rpb24oaWIpe3JldHVybiBpYi5EYT09PURbcWEuSWddfX0oZWEpKTtqYS5sZW5ndGg+MTAmJih2PSIzIixqYT1qYS5zbGljZSgwLDEwKSk7Vz1XLmNvbmNhdChqYSl9Tj1XOyFnJiZTJiYoTj1TKTtmb3IodmFyIGZhPTA7ZmE8Ti5sZW5ndGg7ZmErKyl7dmFyIHNhPU5bZmFdO3NhLkRhIT09RkQuS2gmJkMucHVzaChHSShzYSxjLGUpKX19ZWxzZXtpZihsLmVtYWlsKXt2YXIgZGE9CkhJKHUuZWxlbWVudHMpO3g9RUkoZGEsaCk7eT1JSSh4KTtkYS5sZW5ndGg+MTAmJih2PSIzIil9IWcmJnkmJih4PVt5XSk7Zm9yKHZhciBtYT0wO21hPHgubGVuZ3RoO21hKyspQy5wdXNoKEdJKHhbbWFdLGMsZSkpO0M9Qy5zbGljZSgwLDEwKX15JiYoej1HSSh5LGMsZSkpO3ZhciBQYT17ZWxlbWVudHM6QyxnaTp6LHN0YXR1czp2fTtuW3BdPXt0aW1lc3RhbXA6TmIoKSxyZXN1bHQ6UGF9O3ZhciBGYTsoUGEuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fCgoRmE9UGEuZ2kpPT1udWxsPzA6RmEuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gUGF9LERJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuS2h9KSxjPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuWGR9KTtpZihhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmNlfSkubGVuZ3RoPT09MCYmYy5sZW5ndGg9PT0KMClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWUuQ2Euc3BsaXQoIiAiKTtmLmxlbmd0aD4xJiZhLnB1c2goe0NhOmZbMF0sRGE6RkQuWGQsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30se0NhOmYuc2xpY2UoMSkuam9pbigiICIpLERhOkZELmNlLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9KX1mb3IodmFyIGcsaD0wLGwsbj1mdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmVlJiZ1LkNhLmxlbmd0aD49MyYmdS5DYS5sZW5ndGg8PTR9LHA9MDtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9YVtwXTtpZihuKHEpJiZnJiZxLmVsZW1lbnQucGFyZW50RWxlbWVudD09PWcmJmg8Myl7aWYoaCs9MSxsKz1xLkNhLGg9PT0zKXt2YXIgcj1wLWgrMTtpZihsPUtJW0ZELmVlXS5uYShsKSlhW3JdLkNhPWx9fWVsc2UgaWYoaD0wLGw9IiIsZz12b2lkIDAsbihxKSl7aCsrO2w9cS5DYTt2YXIgdD12b2lkIDA7Zz0odD1xLmVsZW1lbnQucGFyZW50RWxlbWVudCkhPW51bGw/CnQ6dm9pZCAwfX1yZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIW4odSl9KX0sT0k9ZnVuY3Rpb24oYSxiKXtpZihhLnZhbHVlJiZMSS5pbmRleE9mKChhLnR5cGV8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKSkhPT0tMSl7dmFyIGM9YS5hdXRvY29tcGxldGU7aWYoYylmb3IodmFyIGQ9Yy5zcGxpdCgiICIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9TUkoYS52YWx1ZSxiLGRbZV0pO2lmKGYpcmV0dXJuIGZ9dmFyIGcsaD1bYS5uYW1lLGEuaWQsKGc9YS5hcmlhTGFiZWwpIT1udWxsP2c6dm9pZCAwLGEucGxhY2Vob2xkZXJdLGw9YS5wYXJlbnRFbGVtZW50O2wmJmwudGFnTmFtZT09PSJMQUJFTCImJmgucHVzaChsLmlubmVyVGV4dCk7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO24mJm4udGFnTmFtZT09PSJMQUJFTCImJiFuLmh0bWxGb3ImJmgucHVzaChuLmlubmVyVGV4dCk7aWYoYS5pZCl7dmFyIHA9W107dHJ5e3A9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbFtmb3I9IicrCmEuaWQrJyJdJyl9Y2F0Y2goRCl7fWZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWgucHVzaChwW3FdLmlubmVyVGV4dCl9aD1oLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gRCYmRC50cmltKCl9KTtmb3IodmFyIHIsdD0wLHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIHY9TkkoYSxiLGhbdV0pO2lmKHYpe3ZhciB4PXYseT14LkNhLHo9eC5EYSxDPXguWHM7Qz50JiYodD1DLHI9e0NhOnksRGE6en0pfX1yZXR1cm4gcn19LE5JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5uZSl7dmFyIGY9S0lbZV0ubmUuZXhlYyhjLnRyaW0oKSk7aWYoZil7dmFyIGc9YSxoPVtdLGw9Zy52YWx1ZS50cmltKCk7bCYmaC5wdXNoKGwpO2lmKGcudGFnTmFtZT09PSJTRUxFQ1QiKXRyeXt2YXIgbj1nLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT0iJytnLnZhbHVlKyciXScpLHA9biYmbi5pbm5lclRleHQudHJpbSgpO3AmJmgucHVzaChwKX1jYXRjaCh1KXt9Zm9yKHZhciBxPQpoLHI9dm9pZCAwLHQ9MDt0PHEubGVuZ3RoJiYhcjt0Kyspcj1LSVtlXS5uYShxW3RdKTtpZihyKXJldHVybntEYTplLENhOnIsWHM6ZlswXS5sZW5ndGgvYy50cmltKCkubGVuZ3RofX19fX0sTUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLmF1dG9jb21wbGV0ZSYmS0lbZV0uYXV0b2NvbXBsZXRlLmluZGV4T2YoYyk+PTApe3ZhciBmPUtJW2VdLm5hKGEudHJpbSgpKTtpZihmKXJldHVybntEYTplLENhOmZ9fX19LEJJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuZW1haWwmJmIucHVzaChGRC5CYik7YS5waG9uZSYmYi5wdXNoKEZELmVlKTthLmFkZHJlc3MmJmIucHVzaChGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC5LaCk7cmV0dXJuIGJ9LENJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWUuZWxlbWVudCxnPWUuT2MsaDthOnt2YXIgbD1mLG49YiwKcD1sLmlubmVySFRNTDtQSS5pbmRleE9mKGwudGFnTmFtZSk+PTAmJihwPWwudmFsdWV8fHApO2lmKHApe3ZhciBxO2I6e2Zvcih2YXIgcj1wLHQ9bix1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciB2PXRbdV07aWYoIUtJW3ZdLm1lKXt2YXIgeD1LSVt2XS5uYShyLnRyaW0oKSk7aWYoeCl7cT17RGE6dixDYTp4fTticmVhayBifX19cT12b2lkIDB9aWYocSl7aD1xO2JyZWFrIGF9aWYoUEkuaW5kZXhPZihsLnRhZ05hbWUpIT09LTEpe2g9T0kobCxuKTticmVhayBhfX1oPXZvaWQgMH12YXIgeT1oO2lmKHkpe3ZhciB6PXk7Yy5wdXNoKHtDYTp6LkNhLERhOnouRGEsZWxlbWVudDpmLE9jOmd9KX19cmV0dXJuIGN9LEZJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gYjt2YXIgYz17fSxkO2ZvcihkIGluIEZEKWlmKGM9e1ZnOmMuVmd9LGMuVmc9ZCxGRC5oYXNPd25Qcm9wZXJ0eShjLlZnKSl7dmFyIGU9YS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLkRhPT09CkZEW2YuVmddfX0oYykpO2UubGVuZ3RoIT09MCYmKEZEW2MuVmddPT09RkQuQmImJihlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIVJJLnRlc3QoZi5DYSl9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIGYuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFySShmLmVsZW1lbnQpfSkpLGIucHVzaChlWzBdKSl9cmV0dXJuIGJ9LEdJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmVsZW1lbnQsZT1hLk9jLGY9e0NhOmEuQ2EsdHlwZTphLkRhLHRhZ05hbWU6ZC50YWdOYW1lfTtpZihiKXt2YXIgZyxoPVNJKGQpO2lmKGc9KGU/ZSsifCIraDpoKS5zbGljZSgwLFRJKSlmLnF1ZXJ5U2VsZWN0b3I9Z31jJiYoZi5pc1Zpc2libGU9IXJJKGQpKTtlJiYoZi5kaT0hMCk7cmV0dXJuIGZ9LHpJPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO2I9YS5pbmNsdWRlU2VsZWN0b3I7Yz1hLmluY2x1ZGVWaXNpYmlsaXR5O2Q9YS5leGNsdWRlRWxlbWVudFNlbGVjdG9yczsKZT1hLmZpZWxkRmlsdGVyczt2YXIgZj0hIWIrIi4iKyEhYztkLmxlbmd0aCYmKGYrPSIuIitkLmpvaW4oIi4iKSk7cmV0dXJuIGYrPSIuIitlLmVtYWlsKyIuIitlLnBob25lKyIuIitlLmFkZHJlc3N9LElJPWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT09MCl7dmFyIGI7Yj1RSShhLGZ1bmN0aW9uKGMpe3JldHVybiFSSS50ZXN0KGMuQ2EpfSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiBjLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4hckkoYy5lbGVtZW50KX0pO3JldHVybiBiWzBdfX0sRUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdO2lmKGcmJnBJKGFbZF0uZWxlbWVudCxnKSl7ZT0hMTticmVha319YVtkXS5EYT09PUZELkJiJiZNKDYwMikmJihSSS50ZXN0KGFbZF0uQ2EpfHxhW2RdLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09CiJBIiYmYVtkXS5lbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiZhW2RdLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJocmVmIikuaW5kZXhPZigibWFpbHRvOiIpIT09LTE/ZT0hMTphW2RdLmVsZW1lbnQuY2xvc2VzdCgiZm9vdGVyIikhPT1udWxsJiYoZT0hMSkpO2UmJmMucHVzaChhW2RdKX1yZXR1cm4gY30sUUk9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aDw9MSlyZXR1cm4gYTt2YXIgYz1hLmZpbHRlcihiKTtyZXR1cm4gYy5sZW5ndGg9PT0wP2E6Y30sU0k9ZnVuY3Rpb24oYSl7aWYoYT09PUIuYm9keSlyZXR1cm4iYm9keSI7aWYoYS5pZClyZXR1cm4iIyIrYS5pZDt2YXIgYj1hLnBhcmVudEVsZW1lbnQ7aWYoYil7dmFyIGM9U0koYiksZD1VSShhLGIpLGU9VkkoYSkrIjpudGgtY2hpbGQoIitkKyIpIjtyZXR1cm4gYz9jKyI+IitlOmV9dmFyIGY9YS5wYXJlbnROb2RlO2lmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KXt2YXIgZz1VSShhLGYpO3JldHVybiBWSShhKSsiOm50aC1jaGlsZCgiKwpnKyIpIn1yZXR1cm4gYS50YWdOYW1lP2EudGFnTmFtZS50b0xvd2VyQ2FzZSgpOiIifSxWST1mdW5jdGlvbihhKXtpZihhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QubGVuZ3RoPjApe3ZhciBiPUFycmF5LmZyb20oYS5jbGFzc0xpc3QsZnVuY3Rpb24oYyl7cmV0dXJuIENTUy5lc2NhcGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubGVuZ3RoPjB9KTtpZihiLmxlbmd0aD4wKXJldHVybiIuIitiLmpvaW4oIi4iKX1yZXR1cm4iIn0sVUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZHJlbixkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXT09PWEpcmV0dXJuIGQrMTtyZXR1cm4gMX0sSEk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZWxlbWVudCxmPWQuT2MsZz1lLnRleHRDb250ZW50O2UudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIiYmZS52YWx1ZSYmKGc9ZS52YWx1ZSk7aWYoZyl7dmFyIGg9CmcubWF0Y2goS0QpO2lmKGgpe3ZhciBsPWhbMF07TEQobCl8fGIucHVzaCh7ZWxlbWVudDplLENhOmwsRGE6RkQuQmIsT2M6Zn0pfX19cmV0dXJuIGJ9LEFJPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1CLmJvZHk7aWYoIWIpcmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOiI0In07dmFyIGM9V0koYiwwLCIiLGEpO3JldHVybntlbGVtZW50czphLHN0YXR1czpjfX0sV0k9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWEucXVlcnlTZWxlY3RvckFsbCgiKiIpLGY9ZS5sZW5ndGg+MUU0PyIyIjoiMSIsZz0wO2c8TWF0aC5taW4oZS5sZW5ndGgsMUU0KTtnKyspe3ZhciBoPWVbZ107aWYoIShYSS5pbmRleE9mKGgudGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkmJmguY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbil7dmFyIGw9ITE7aWYoTSg1ODIpJiZoLnNoYWRvd1Jvb3QmJmI8MSl7dmFyIG49U0koaCk7V0koaC5zaGFkb3dSb290LGIrMSxjP2MrInwiK246bixkKT09PSIyIiYmCihmPSIyIik7bD0hMH12YXIgcD0hMTtpZighbClmb3IodmFyIHE9MDtxPE1hdGgubWluKGguY2hpbGRFbGVtZW50Q291bnQsMUU0KTtxKyspaWYoIShZSS5pbmRleE9mKGguY2hpbGRyZW5bcV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkpe3A9ITA7YnJlYWt9KCFwJiYhbHx8TSg1NjgpJiZQSS5pbmRleE9mKGgudGFnTmFtZSkhPT0tMSkmJmQucHVzaCh7ZWxlbWVudDpoLE9jOmI+MD9jOnZvaWQgMH0pfX1yZXR1cm4gZn0sUkk9L3N1cHBvcnR8bm9yZXBseS9pLFhJPSJTQ1JJUFQgU1RZTEUgSU1HIFNWRyBQQVRIIEJSIE5PU0NSSVBUIFRFWFRBUkVBIi5zcGxpdCgiICIpLFlJPVsiQlIiXSxUST1OZig3MCw1MCksUEk9WyJJTlBVVCIsIlNFTEVDVCJdLExJPSJ0ZXh0IHRlbCBzZWFyY2ggbnVtYmVyIGhpZGRlbiBlbWFpbCBzZWxlY3Qtb25lIi5zcGxpdCgiICIpLFpJPVJlZ0V4cCgicGhvbmV8bW9iaWxlfGNvbnRhY3QuP251bWJlcnx0ZWxlZm9ubnVtbWVyfHRlbGVmb25vfHRlbFx1MDBlOWZvbm98dGVsZml4ZXxcdTk2ZmJcdThhNzF8dGVsZWZvbmV8dGVsZW1vdmVsfFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQ0NFx1MDQzZVx1MDQzZHxcdTA5MmVcdTA5NGJcdTA5MmNcdTA5M2VcdTA5MDdcdTA5MzJ8XHU3NTM1XHU4YmRkfFx1NjI0Ylx1NjczYVx1NTNmN3xcdTBkMmVcdTBkNGFcdTBkMmNcdTBkNDhcdTBkMzJcdTBkNGRcdTIwMGR8KF58Wy1fXSl0ZWxbLV9dPyhcXGQrKSooXFxbLipcXF0pKiR8KD86XHVjODA0XHVkNjU0fFx1ZDU3OFx1YjRkY1x1ZDNmMHxcdWQ3MzRcdWIzMDBcdWQzZjB8XHVkNzM0XHViMzAwXHVjODA0XHVkNjU0KSg/Oi4/XHViYzg4XHVkNjM4KT98KFxcYnxffFxcKil0ZWxlZm9uKFxcYnxffFxcKil8dGVsZXBvbnxwb25zZWx8KG5vbW9yfG5vXFwuPykuPyhocHxoYW5kcGhvbmUpIiwKImkiKSwkST1SZWdFeHAoIl5uYW1lfGZ1bGwuP25hbWV8eW91ci4/bmFtZXxjdXN0b21lci4/bmFtZXxiaWxsLj9uYW1lfHNoaXAuP25hbWV8bmFtZS4qZmlyc3QuKmxhc3R8Zmlyc3RhbmRsYXN0bmFtZXxjb250YWN0Lj8obmFtZXxwZXJzb24pfG5vbWJyZS4qeS4qYXBlbGxpZG9zfF5ub20oPyFbYS16QS1aXSl8XHUzMDRhXHU1NDBkXHU1MjRkfFx1NmMwZlx1NTQwZHxebm9tZXxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1NTlkM1xccypcdTU0MGR8XHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDMwXHUwNDNhXHUwNDQyXHUwNDNkXHUwNDNlXHUwNDM1Lj9cdTA0M2JcdTA0MzhcdTA0NDZcdTA0M2V8KFxcYnxffFxcKilhZFtcdTAxMzFdPyBzb3lhZFtcdTAxMzFdPyhcXGJ8X3xcXCopfFx1YzEzMVx1YmE4NXxuYW1hLj8obGVuZ2thcHxwZW5lcmltYXxrYW11KSIsCiJpIiksYUo9UmVnRXhwKCJmaXJzdC4qbmFtZXxpbml0aWFsc3xmbmFtZXxmaXJzdCR8Z2l2ZW4uKm5hbWV8dm9ybmFtZXxub21icmV8Zm9yZW5hbWV8cHJcdTAwZTlub218cHJlbm9tfFx1NTQwZHxub21lfFx1MDQxOFx1MDQzY1x1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDV8XHVjNzc0XHViOTg0fFx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShpc2ltfGFkfGFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcdTA5MjhcdTA5M2VcdTA5MmV8bmFtYSBkZXBhbiIsImkiKSxiSj1SZWdFeHAoImxhc3QuKm5hbWV8bG5hbWV8c3VybmFtZSg/IVxcZCl8bGFzdCR8c2Vjb25kbmFtZXxmYW1pbHkuKm5hbWV8bmFjaG5hbWV8YXBlbGxpZG9zP3xmYW1pbGxlfF5ub20oPyFbYS16QS1aXSl8Y29nbm9tZXxcdTU5ZDN8YXBlbGlkb3N8c3VyZW5hbWV8c29icmVub21lfFx1MDQyNFx1MDQzMFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzOFx1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTA5MDlcdTA5MmFcdTA5MjhcdTA5M2VcdTA5MmV8XHUwZDJlXHUwZDMxXHUwZDQxXHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKHNveWlzaW18c295YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFxcYlx1YzEzMSg/OlteXHViYTg1XXxcXGIpfG5hbWEgYmVsYWthbmciLAoiaSIpLGNKPVJlZ0V4cCgiY291bnRyeXxjb3VudHJpZXN8cGFcdTAwZWRzfHBhaXN8KFxcYnxfKWxhbmQoXFxifF8pKD8hLioobWFyay4qKSl8KF58W14oXHU1MTY1fFx1NTFmYSldKVx1NTZmZHxcdTU2ZmRcdTViYjZ8XHVhZDZkXHVhYzAwfFx1YjA5OFx1Yjc3Y3woXFxifF8pKFx1MDBmY2xrZXx1bGNlfHVsa2UpKFxcYnxfKXxcdTA2YTlcdTA2MzRcdTA2NDhcdTA2MzF8bmVnYXJhIiwiaSIpLGRKPVJlZ0V4cCgiKF58W14uXSl6aXB8cG9zdGFsfHBvc3QuKmNvZGV8cGNvZGV8cGluLj9jb2RlfHBvc3RsZWl0emFobHxcXGJjcFxcYnxcXGJjZHBcXGJ8XFxiY2FwXFxifFx1OTBmNVx1NGZiZlx1NzU2YVx1NTNmN3xjb2RpZ298Y29kcG9zfFxcYmNlcFxcYnxcdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkuP1x1MDQxOFx1MDQzZFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ0MXxcdTA5MmFcdTA5M2ZcdTA5MjguP1x1MDkxNVx1MDk0Ylx1MDkyMXxcdTBkMmFcdTBkM2ZcdTBkMjhcdTBkNGRcdTIwMGRcdTBkMTVcdTBkNGJcdTBkMjFcdTBkNGR8XHU5MGFlXHU2NTNmXHU3ZjE2XHU3ODAxfFx1OTBhZVx1N2YxNnxcdTkwZjVcdTkwNWVcdTUzNDBcdTg2NWZ8KFxcYnxfKXBvc3RhIGtvZHUoXFxifF8pfFx1YzZiMFx1ZDNiOC4/XHViYzg4XHVkNjM4fGtvZGUuP3BvcyIsCiJpIiksZUo9e30sS0k9KGVKW0ZELkJiXT17bWU6ITEsbmE6TUR9LGVKW0ZELmVlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsidGVsIiwidGVsLW5hdGlvbmFsIiwidGVsLWxvY2FsIl0sbmU6WkksbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITApfX0sZUpbRkQuS2hdPXttZTohMCxhdXRvY29tcGxldGU6WyJuYW1lIiwiY2MtbmFtZSJdLG5lOiRJLG5hOk5EfSxlSltGRC5YZF09e21lOiEwLGF1dG9jb21wbGV0ZTpbImdpdmVuLW5hbWUiLCJjYy1naXZlbi1uYW1lIl0sbmU6YUosbmE6TkR9LGVKW0ZELmNlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZmFtaWx5LW5hbWUiLCJjYy1mYW1pbHktbmFtZSJdLG5lOmJKLG5hOk5EfSxlSltGRC54Zl09e21lOiEwLGF1dG9jb21wbGV0ZTpbImNvdW50cnkiLCJjb3VudHJ5LW5hbWUiXSxuZTpjSixuYTpORH0sZUpbRkQucWddPXttZTohMCxhdXRvY29tcGxldGU6WyJwb3N0YWwtY29kZSJdLG5lOmRKLG5hOklEfSxlSik7ZnVuY3Rpb24gZkooYSl7dmFyIGI7TCh0aGlzLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byIpO3ZhciBjPVRkKGEpfHx7fSxkPUpJKHtpbmNsdWRlU2VsZWN0b3I6ISFjLmluY2x1ZGVTZWxlY3RvcixpbmNsdWRlVmlzaWJpbGl0eTohIWMuaW5jbHVkZVZpc2liaWxpdHksZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6Yy5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyxmaWVsZEZpbHRlcnM6Yy5maWVsZEZpbHRlcnMsc2VsZWN0TXVsdGlwbGVFbGVtZW50czohIWMuc2VsZWN0TXVsdGlwbGVFbGVtZW50c30pO2I9bmV3IGtiO3ZhciBlPW5ldyBHZDtiLnNldCgiZWxlbWVudHMiLGUpO2Zvcih2YXIgZj1kLmVsZW1lbnRzLGc9MDtnPGYubGVuZ3RoO2crKyllLnB1c2goZ0ooZltnXSkpO2QuZ2khPT12b2lkIDAmJmIuc2V0KCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiLApnSihkLmdpKSk7Yi5zZXQoInN0YXR1cyIsZC5zdGF0dXMpO2lmKGMucmVhZEZyb21EYXRhTGF5ZXIpe2hKKGUsYyk7dmFyIGg9UEQoKSxsPWguc3Q7Yi5zZXQoImRhdGFMYXllclNlYXJjaFRpbWUiLGgudnQpO2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hDb3VudCIsbCl9cmV0dXJuIGJ9CnZhciBpSj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSBGRC5CYjpyZXR1cm4iZW1haWwiO2Nhc2UgRkQuZWU6cmV0dXJuInBob25lX251bWJlciI7Y2FzZSBGRC5YZDpyZXR1cm4iZmlyc3RfbmFtZSI7Y2FzZSBGRC5jZTpyZXR1cm4ibGFzdF9uYW1lIjtjYXNlIEZELnRqOnJldHVybiJzdHJlZXQiO2Nhc2UgRkQubGk6cmV0dXJuImNpdHkiO2Nhc2UgRkQuamo6cmV0dXJuInJlZ2lvbiI7Y2FzZSBGRC5xZzpyZXR1cm4icG9zdGFsX2NvZGUiO2Nhc2UgRkQueGY6cmV0dXJuImNvdW50cnkifX0sako9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiLGM9aUooYS5EYSk7YyE9PXZvaWQgMCYmYi5zZXQoInR5cGUiLGMpO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLCJETFlSIik7cmV0dXJuIGJ9LGhKPWZ1bmN0aW9uKGEsYil7dmFyIGM9UUQoKTtpZihNKDU2OCkpZm9yKHZhciBkPW5ldyBTZXQoYS5oYygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5nZXQoInR5cGUiKX0pKSwKZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUpLGg9Zy5uZXh0KCkudmFsdWUsbD1nLm5leHQoKS52YWx1ZSxuPWgscD1sO2lmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50cylhLnB1c2goakoocCkpO2Vsc2V7dmFyIHE9aUoobik7cSYmIWQuaGFzKHEpJiZhLnB1c2goakoocCkpfX1lbHNlIGMuaGFzKEZELkJiKSYmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50c3x8YS5sZW5ndGgoKT09PTApJiZhLnB1c2goakooYy5nZXQoRkQuQmIpKSl9LGdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIixhLnRhZ05hbWUpO2EucXVlcnlTZWxlY3RvciE9PXZvaWQgMCYmYi5zZXQoInF1ZXJ5U2VsZWN0b3IiLGEucXVlcnlTZWxlY3Rvcik7YS5pc1Zpc2libGUhPT12b2lkIDAmJmIuc2V0KCJpc1Zpc2libGUiLGEuaXNWaXNpYmxlKTtpZihNKDU2OCkpe3ZhciBjPWlKKGEudHlwZSk7YyE9PQp2b2lkIDAmJmIuc2V0KCJ0eXBlIixjKX1lbHNlIHN3aXRjaChhLnR5cGUpe2Nhc2UgRkQuQmI6Yi5zZXQoInR5cGUiLCJlbWFpbCIpfXJldHVybiBifTtmSi5QPSJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIjsKZnVuY3Rpb24gbUooYSxiKXtyZXR1cm4gZn1tSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIjsKdmFyIG5KPWZ1bmN0aW9uKCl7dGhpcy5IPVtdO3RoaXMuTj0hIUEuTXV0YXRpb25PYnNlcnZlcn07bkoucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLkgubGVuZ3RoPT09MCl7dmFyIGM9ZnVuY3Rpb24oKXt2YXIgZD1CLmJvZHk7aWYoZClpZihiLk4pKG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBmPTA7ZjxiLkgubGVuZ3RoO2YrKyliZChiLkhbZl0pfSkpLm9ic2VydmUoZCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTtlbHNle3ZhciBlPSExOyRjKGQsIkRPTU5vZGVJbnNlcnRlZCIsZnVuY3Rpb24oKXtlfHwoZT0hMCxiZChmdW5jdGlvbigpe2U9ITE7Zm9yKHZhciBmPTA7ZjxiLkgubGVuZ3RoO2YrKyliZChiLkhbZl0pfSkpfSl9fTtCLmJvZHk/YygpOmJkKGMpfXRoaXMuSC5wdXNoKGEpfTtuSi5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXtpZih0aGlzLkgpZm9yKHZhciBiPTA7Yjx0aGlzLkgubGVuZ3RoO2IrKyl0aGlzLkhbYl09PT0KYSYmdGhpcy5ILnNwbGljZShiLDEpfTt2YXIgb0o9bmV3IG5KOwpmdW5jdGlvbiB0SihhLGIpe3JldHVybiBwfXRKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRWxlbWVudFZpc2liaWxpdHkiO2Z1bmN0aW9uIHVKKCl7fXVKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRXJyb3IiOwpmdW5jdGlvbiBBSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGR9QUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iOwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CnZhciBNSj1mdW5jdGlvbihhLGIsYyxkKXtjPWM9PT12b2lkIDA/e306YztkPWQ9PT12b2lkIDA/W106ZDt2YXIgZT0iIitiO2lmKGNbZV0pY1tlXS5wdXNoKGEpO2Vsc2V7dmFyIGY9W2FdO2NbZV09Zjt2YXIgZz1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiKSxoPS0xO2QucHVzaChmdW5jdGlvbihsKXtoPj0wJiZBLmNsZWFyVGltZW91dChoKTtiP2g9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhsLGYpO2g9LTF9LGIpOmcobCxmKX0pfX0sTEo9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5ocmVmLGM9e3NvdXJjZTpudWxsLHN0YXRlOkEuaGlzdG9yeS5zdGF0ZXx8bnVsbCx1cmw6T2ooUmooYikpLGtiOkxqKFJqKGIpLCJmcmFnbWVudCIpfTtyZXR1cm4gZnVuY3Rpb24oZCxlKXt2YXIgZj1jLGc9e307Z1tmLnNvdXJjZV09ITA7Z1tkLnNvdXJjZV09ITA7aWYoIWcucG9wc3RhdGV8fCFnLmhhc2hjaGFuZ2V8fGYua2IhPT1kLmtiKXt2YXIgaD17ZXZlbnQ6YSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiOmQuc291cmNlLAoiZ3RtLm9sZFVybEZyYWdtZW50IjpjLmtiLCJndG0ubmV3VXJsRnJhZ21lbnQiOmQua2IsImd0bS5vbGRIaXN0b3J5U3RhdGUiOmMuc3RhdGUsImd0bS5uZXdIaXN0b3J5U3RhdGUiOmQuc3RhdGUsImd0bS5vbGRVcmwiOmMudXJsLCJndG0ubmV3VXJsIjpkLnVybH07ZSYmKGhbImd0bS50cmlnZ2VycyJdPWUuam9pbigiLCIpKTtjPWQ7dUUoaCl9fX0sTko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLmhpc3RvcnksZD1jW2FdO2lmKHliKGQpKXRyeXtjW2FdPWZ1bmN0aW9uKGUsZixnKXtkLmFwcGx5KGMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBoPUEubG9jYXRpb24uaHJlZjtiKHtzb3VyY2U6YSxzdGF0ZTplLHVybDpPaihSaihoKSksa2I6TGooUmooaCksImZyYWdtZW50Iil9KX19Y2F0Y2goZSl7fX0sUEo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJwb3BzdGF0ZSIsc3RhdGU6Yi5zdGF0ZSwKdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LFFKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJoYXNoY2hhbmdlIixzdGF0ZTpudWxsLHVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxPSj1mdW5jdGlvbihhKXt2YXIgYixjO3JldHVybigoYj1hLnRhcmdldCk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhyZWYpfHxBLmxvY2F0aW9uLmhyZWZ9OwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiKX1dKTt2YXIgZD1hJiZhLmdldCgidXNlVjJFdmVudE5hbWUiKT8iZWhsIjoiaGwiLGU9TnVtYmVyKGEmJmEuZ2V0KCJpbnRlcnZhbCIpKTtlPjAmJmlzRmluaXRlKGUpfHwoZT0wKTt2YXIgZjtpZighJEYoZCwiaW5pdCIsITEpKXt2YXIgZz17fSxoPVtdLGw7ZD09PSJlaGwiPyhsPWZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8aC5sZW5ndGg7cSsrKWhbcV0ocCl9LGY9WkYoYiksTUooZixlLGcsaCksYUcoZCwicmVnIixmdW5jdGlvbihwLHEpe01KKHAscSxnLGgpfSkpOmw9TEooImd0bS5oaXN0b3J5Q2hhbmdlIik7ClFKKGwpO1BKKGwpO05KKCJwdXNoU3RhdGUiLGwpO05KKCJyZXBsYWNlU3RhdGUiLGwpO2FHKGQsImluaXQiLCEwKX1lbHNlIGlmKGQ9PT0iZWhsIil7dmFyIG49JEYoZCwicmVnIik7biYmKGY9WkYoYiksbihmLGUpKX1kPT09ImhsIiYmKGY9dm9pZCAwKTtyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwp2YXIgVEo9ZnVuY3Rpb24oYSxiKXtpZihhLndoaWNoPT09Mnx8YS5jdHJsS2V5fHxhLnNoaWZ0S2V5fHxhLmFsdEtleXx8YS5tZXRhS2V5KXJldHVybiExO3ZhciBjPW9kKGIsImhyZWYiKTtpZihjLmluZGV4T2YoIjoiKSE9PS0xJiYhU0ouc29tZShmdW5jdGlvbihoKXtyZXR1cm4gU2IoYyxoKX0pKXJldHVybiExO3ZhciBkPWMuaW5kZXhPZigiIyIpLGU9b2QoYiwidGFyZ2V0Iik7aWYoZSYmZSE9PSJfc2VsZiImJmUhPT0iX3BhcmVudCImJmUhPT0iX3RvcCJ8fGQ9PT0wKXJldHVybiExO2lmKGQ+MCl7dmFyIGY9T2ooUmooYykpLGc9T2ooUmooQS5sb2NhdGlvbi5ocmVmKSk7cmV0dXJuIGYhPT1nfXJldHVybiEwfSxVSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1MaihSaigoYi5hdHRyaWJ1dGVzJiZiLmF0dHJpYnV0ZXMuZm9ybWFjdGlvbj9iLmZvcm1BY3Rpb246IiIpfHxiLmFjdGlvbnx8b2QoYiwiaHJlZiIpfHxiLnNyY3x8Yi5jb2RlfHxiLmNvZGViYXNlfHwiIiksImhvc3QiKSwKZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtpZigobmV3IFJlZ0V4cChhW2RdKSkudGVzdChjKSlyZXR1cm4hMX1jYXRjaChlKXt9cmV0dXJuITB9LFZKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXt2YXIgZD1jLnRhcmdldDtpZihkJiZjLndoaWNoIT09MyYmIShjLkh8fGMudGltZVN0YW1wJiZjLnRpbWVTdGFtcD09PWIpKXtiPWMudGltZVN0YW1wO2Q9aGQoZCxbImEiLCJhcmVhIl0sMTAwKTtpZighZClyZXR1cm4gYy5yZXR1cm5WYWx1ZTt2YXIgZT1jLmRlZmF1bHRQcmV2ZW50ZWR8fGMucmV0dXJuVmFsdWU9PT0hMSxmPSRGKCJsY2wiLGU/Im52Lm13dCI6Im13dCIsMCksZztnPWU/JEYoImxjbCIsIm52LmlkcyIsW10pOiRGKCJsY2wiLCJpZHMiLFtdKTtmb3IodmFyIGg9W10sbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1nW2xdLHA9JEYoImxjbCIsImFmZi5tYXAiLHt9KVtuXTtwJiYhVUoocCxkKXx8aC5wdXNoKG4pfWlmKGgubGVuZ3RoKXt2YXIgcT1USihjLGQpLHI9ZUcoZCwiZ3RtLmxpbmtDbGljayIsCmgpO3JbImd0bS5lbGVtZW50VGV4dCJdPWZkKGQpO3JbImd0bS53aWxsT3BlbkluTmV3V2luZG93Il09IXE7aWYocSYmIWUmJmYmJmQuaHJlZil7dmFyIHQ9ISFDYihTdHJpbmcob2QoZCwicmVsIil8fCIiKS5zcGxpdCgiICIpLGZ1bmN0aW9uKHkpe3JldHVybiB5LnRvTG93ZXJDYXNlKCk9PT0ibm9yZWZlcnJlciJ9KSx1PUFbKG9kKGQsInRhcmdldCIpfHwiX3NlbGYiKS5zdWJzdHJpbmcoMSldLHY9ITAseD10RShmdW5jdGlvbigpe3ZhciB5O2lmKHk9diYmdSl7dmFyIHo7YTppZih0KXt2YXIgQzt0cnl7Qz1uZXcgTW91c2VFdmVudChjLnR5cGUse2J1YmJsZXM6ITB9KX1jYXRjaChEKXtpZighQi5jcmVhdGVFdmVudCl7ej0hMTticmVhayBhfUM9Qi5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtDLmluaXRFdmVudChjLnR5cGUsITAsITApfUMuSD0hMDtjLnRhcmdldC5kaXNwYXRjaEV2ZW50KEMpO3o9ITB9ZWxzZSB6PSExO3k9IXp9eSYmKHUubG9jYXRpb24uaHJlZj1vZChkLAoiaHJlZiIpKX0sZik7aWYoaUUocix4LGYpKXY9ITE7ZWxzZSByZXR1cm4gYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITF9ZWxzZSBzRShyLGZ1bmN0aW9uKCl7fSxmfHwyRTMpO3JldHVybiEwfX19dmFyIGI9MDskYyhCLCJjbGljayIsYSwhMSk7JGMoQiwiYXV4Y2xpY2siLGEsITEpfTsKZnVuY3Rpb24gV0ooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9VGQoYSk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfbGlua19jbGlja19ldmVudHMiLGQpfV0pO3ZhciBlPWQmJiEhZC53YWl0Rm9yVGFncyxmPWQmJiEhZC5jaGVja1ZhbGlkYXRpb24sZz1kP2QuYWZmaWxpYXRlRG9tYWluczp2b2lkIDAsaD1aRihiKTtpZihlKXt2YXIgbD1OdW1iZXIoZC53YWl0Rm9yVGFnc1RpbWVvdXQpO2w+MCYmaXNGaW5pdGUobCl8fChsPTJFMyk7dmFyIG49ZnVuY3Rpb24ocSl7cmV0dXJuIE1hdGgubWF4KGwscSl9O2RHKCJsY2wiLCJtd3QiLG4sMCk7Znx8ZEcoImxjbCIsIm52Lm13dCIsbiwwKX12YXIgcD1mdW5jdGlvbihxKXtxLnB1c2goaCk7CnJldHVybiBxfTtkRygibGNsIiwiaWRzIixwLFtdKTtmfHxkRygibGNsIiwibnYuaWRzIixwLFtdKTtnJiZkRygibGNsIiwiYWZmLm1hcCIsZnVuY3Rpb24ocSl7cVtoXT1nO3JldHVybiBxfSx7fSk7JEYoImxjbCIsImluaXQiLCExKXx8KFZKKCksYUcoImxjbCIsImluaXQiLCEwKSk7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwp2YXIgWEo9ZnVuY3Rpb24oYSl7cmV0dXJuICRGKCJzZGwiLGEse30pfSxZSj1mdW5jdGlvbihhLGIsYyl7aWYoYil7dmFyIGQ9QXJyYXkuaXNBcnJheShhKT9hOlthXTtkRygic2RsIixjLGZ1bmN0aW9uKGUpe2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1TdHJpbmcoZFtmXSk7ZS5oYXNPd25Qcm9wZXJ0eShnKXx8KGVbZ109W10pO2VbZ10ucHVzaChiKX1yZXR1cm4gZX0se30pfX0sYUs9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7WkooYSxiKTskSihjLCEwKX1yZXR1cm4gY30sYks9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7aD9nPUEuc2V0VGltZW91dChjLGUpOihnPTAsWkooYSxiKSwkSihkKSk7aD0hMX1mdW5jdGlvbiBkKCl7ZiYmYigpO2c/aD0hMDooZz1BLnNldFRpbWVvdXQoYyxlKSxhRygic2RsIiwicGVuZGluZyIsITApKX12YXIgZT0yNTAsZj0hMTtCLnNjcm9sbGluZ0VsZW1lbnQmJkIuZG9jdW1lbnRFbGVtZW50JiYoZT01MCxmPSEwKTt2YXIgZz0KMCxoPSExO3JldHVybiBkfSwkSj1mdW5jdGlvbihhLGIpeyRGKCJzZGwiLCJpbml0IiwhMSkmJiFjSygpJiYoYj9hZChBLCJzY3JvbGxlbmQiLGEpOmFkKEEsInNjcm9sbCIsYSksYWQoQSwicmVzaXplIixhKSxhRygic2RsIiwiaW5pdCIsITEpKX0sWko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKCksZD1jLmRlcHRoWCxlPWMuZGVwdGhZLGY9ZC9hLnNjcm9sbFdpZHRoKjEwMCxnPWUvYS5zY3JvbGxIZWlnaHQqMTAwO2RLKGQsImhvcml6LnBpeCIsIlBJWEVMUyIsImhvcml6b250YWwiKTtkSyhmLCJob3Jpei5wY3QiLCJQRVJDRU5UIiwiaG9yaXpvbnRhbCIpO2RLKGUsInZlcnQucGl4IiwiUElYRUxTIiwidmVydGljYWwiKTtkSyhnLCJ2ZXJ0LnBjdCIsIlBFUkNFTlQiLCJ2ZXJ0aWNhbCIpO2FHKCJzZGwiLCJwZW5kaW5nIiwhMSl9LGRLPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVhKKGIpLGY9e30sZztmb3IoZyBpbiBlKWlmKGY9e3FmOmYucWZ9LGYucWY9ZyxlLmhhc093blByb3BlcnR5KGYucWYpKXt2YXIgaD0KTnVtYmVyKGYucWYpO2lmKCEoYTxoKSl7dmFyIGw9e307dUUoKGwuZXZlbnQ9Imd0bS5zY3JvbGxEZXB0aCIsbFsiZ3RtLnNjcm9sbFRocmVzaG9sZCJdPWgsbFsiZ3RtLnNjcm9sbFVuaXRzIl09Yy50b0xvd2VyQ2FzZSgpLGxbImd0bS5zY3JvbGxEaXJlY3Rpb24iXT1kLGxbImd0bS50cmlnZ2VycyJdPWVbZi5xZl0uam9pbigiLCIpLGwpKTtkRygic2RsIixiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihwKXtkZWxldGUgcFtuLnFmXTtyZXR1cm4gcH19KGYpLHt9KX19fSxmSz1mdW5jdGlvbigpe3ZhciBhPWRHKCJzZGwiLCJzY3IiLGZ1bmN0aW9uKGMpe2N8fChjPUIuc2Nyb2xsaW5nRWxlbWVudHx8Qi5ib2R5JiZCLmJvZHkucGFyZW50Tm9kZSk7cmV0dXJuIGN9LG51bGwpLGI9ZEcoInNkbCIsImRlcHRoIixmdW5jdGlvbihjKXtjfHwoYz1lSyhhKSk7cmV0dXJuIGN9KTtyZXR1cm57c2Nyb2xsaW5nRWxlbWVudDphLHZyOmJ9fSxlSz1mdW5jdGlvbihhKXt2YXIgYj0wLGM9CjA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9c0koKSxlPWQuaGVpZ2h0O2I9TWF0aC5tYXgoYS5zY3JvbGxMZWZ0K2Qud2lkdGgsYik7Yz1NYXRoLm1heChhLnNjcm9sbFRvcCtlLGMpO3JldHVybntkZXB0aFg6YixkZXB0aFk6Y319fSxjSz1mdW5jdGlvbigpe3JldHVybiEhKE9iamVjdC5rZXlzKFhKKCJob3Jpei5waXgiKSkubGVuZ3RofHxPYmplY3Qua2V5cyhYSigiaG9yaXoucGN0IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooInZlcnQucGN0IikpLmxlbmd0aCl9OwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3Njcm9sbF9ldmVudHMiKX1dKTt2YXIgZD1mSygpLGU9ZC5zY3JvbGxpbmdFbGVtZW50LGY9ZC52cjtpZighZSlyZXR1cm47dmFyIGc9WkYoYiksaD1UZChhKTtzd2l0Y2goaC5ob3Jpem9udGFsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5waXgiKTticmVhaztjYXNlICJQRVJDRU5UIjpZSihoLmhvcml6b250YWxUaHJlc2hvbGRzLGcsImhvcml6LnBjdCIpfXN3aXRjaChoLnZlcnRpY2FsVGhyZXNob2xkVW5pdHMpe2Nhc2UgIlBJWEVMUyI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsCmcsInZlcnQucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC52ZXJ0aWNhbFRocmVzaG9sZHMsZywidmVydC5wY3QiKX0kRigic2RsIiwiaW5pdCIsITEpPyRGKCJzZGwiLCJwZW5kaW5nIiwhMSl8fGJkKGZ1bmN0aW9uKCl7WkooZSxmKX0pOihhRygic2RsIiwiaW5pdCIsITApLGFHKCJzZGwiLCJwZW5kaW5nIiwhMCksYmQoZnVuY3Rpb24oKXtaSihlLGYpO2lmKGNLKCkpe3ZhciBsPWJLKGUsZik7Im9uc2Nyb2xsZW5kImluIEE/KGw9YUsoZSxmKSwkYyhBLCJzY3JvbGxlbmQiLGwpKTokYyhBLCJzY3JvbGwiLGwpOyRjKEEsInJlc2l6ZSIsbCl9ZWxzZSBhRygic2RsIiwiaW5pdCIsITEpfSkpO3JldHVybiBnfWdLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIjtmdW5jdGlvbiBoSyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihhLmxpbWl0JiZhLmdrPj1hLmxpbWl0KWEuYWkmJkEuY2xlYXJJbnRlcnZhbChhLmFpKTtlbHNle2EuZ2srKzt2YXIgYj1OYigpO3VFKHtldmVudDphLmV2ZW50TmFtZSwiZ3RtLnRpbWVySWQiOmEuYWksImd0bS50aW1lckV2ZW50TnVtYmVyIjphLmdrLCJndG0udGltZXJJbnRlcnZhbCI6YS5pbnRlcnZhbCwiZ3RtLnRpbWVyTGltaXQiOmEubGltaXQsImd0bS50aW1lclN0YXJ0VGltZSI6YS5NbywiZ3RtLnRpbWVyQ3VycmVudFRpbWUiOmIsImd0bS50aW1lckVsYXBzZWRUaW1lIjpiLWEuTW8sImd0bS50cmlnZ2VycyI6YS5MdH0pfX19CmZ1bmN0aW9uIGlLKGEsYil7CnJldHVybiBmfWlLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uVGltZXIiOwp2YXIgaks9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hKCk7Zis9ZT8oTmIoKS1lKSpnLnBsYXliYWNrUmF0ZS8xRTM6MDtlPU5iKCl9dmFyIGU9MCxmPTA7cmV0dXJue2NyZWF0ZUV2ZW50OmZ1bmN0aW9uKGcsaCxsKXt2YXIgbj1hKCkscD1uLlduLHE9bD9NYXRoLnJvdW5kKGwpOmg/TWF0aC5yb3VuZChuLlduKmgpOk1hdGgucm91bmQobi5Hcikscj1oIT09dm9pZCAwP01hdGgucm91bmQoaCoxMDApOnA8PTA/MDpNYXRoLnJvdW5kKHEvcCoxMDApLHQ9Qi5oaWRkZW4/ITE6dEkoYyk+PS41O2QoKTt2YXIgdT12b2lkIDA7YiE9PXZvaWQgMCYmKHU9W2JdKTt2YXIgdj1lRyhjLCJndG0udmlkZW8iLHUpO3ZbImd0bS52aWRlb1Byb3ZpZGVyIl09InlvdXR1YmUiO3ZbImd0bS52aWRlb1N0YXR1cyJdPWc7dlsiZ3RtLnZpZGVvVXJsIl09bi51cmw7dlsiZ3RtLnZpZGVvVGl0bGUiXT1uLnRpdGxlO3ZbImd0bS52aWRlb0R1cmF0aW9uIl09TWF0aC5yb3VuZChwKTt2WyJndG0udmlkZW9DdXJyZW50VGltZSJdPQpNYXRoLnJvdW5kKHEpO3ZbImd0bS52aWRlb0VsYXBzZWRUaW1lIl09TWF0aC5yb3VuZChmKTt2WyJndG0udmlkZW9QZXJjZW50Il09cjt2WyJndG0udmlkZW9WaXNpYmxlIl09dDtyZXR1cm4gdn0sbXQ6ZnVuY3Rpb24oKXtlPU5iKCl9LEJqOmZ1bmN0aW9uKCl7ZCgpfX19O3ZhciBBYz1BYShbImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iXSksa0s9WyJ3d3cueW91dHViZS5jb20iLCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iXSxsSzsKdmFyIG1LPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLm1hcChmdW5jdGlvbihnKXtyZXR1cm57dGU6ZyxKbzpnLHdvOnZvaWQgMH19KTtpZighYi5sZW5ndGgpcmV0dXJuIGQ7dmFyIGU9Yi5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcqYyxKbzp2b2lkIDAsd286Z319KTtpZighZC5sZW5ndGgpcmV0dXJuIGU7dmFyIGY9ZC5jb25jYXQoZSk7Zi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcudGUtaC50ZX0pO3JldHVybiBmfSxuSz1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWFbY108MHx8Yi5wdXNoKGFbY10pO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gYn0sb0s9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPjEwMHx8YVtjXTwwfHwoYltjXT1hW2NdLzEwMCk7Yi5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtCmV9KTtyZXR1cm4gYn0scEs9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2Z1bmN0aW9uIGUoKXt0PWpLKGZ1bmN0aW9uKCl7cmV0dXJue3VybDp4LHRpdGxlOnksV246dixHcjphLmdldEN1cnJlbnRUaW1lKCkscGxheWJhY2tSYXRlOnp9fSxiLnJmLGEuZ2V0SWZyYW1lKCkpO3Y9MDt5PXg9IiI7ej0xO3JldHVybiBmfWZ1bmN0aW9uIGYoRyl7c3dpdGNoKEcpe2Nhc2UgMTp2PU1hdGgucm91bmQoYS5nZXREdXJhdGlvbigpKTt4PWEuZ2V0VmlkZW9VcmwoKTtpZihhLmdldFZpZGVvRGF0YSl7dmFyIE49YS5nZXRWaWRlb0RhdGEoKTt5PU4/Ti50aXRsZToiIn16PWEuZ2V0UGxheWJhY2tSYXRlKCk7Yi55cj91RSh0LmNyZWF0ZUV2ZW50KCJzdGFydCIpKTp0LkJqKCk7dT1tSyhiLmV0LGIuY3QsYS5nZXREdXJhdGlvbigpKTtyZXR1cm4gZyhHKTtkZWZhdWx0OnJldHVybiBmfX1mdW5jdGlvbiBnKCl7Qz1hLmdldEN1cnJlbnRUaW1lKCk7RD1NYigpLmdldFRpbWUoKTt0Lm10KCk7cigpO3JldHVybiBofQpmdW5jdGlvbiBoKEcpe3ZhciBOO3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAyOk49InBhdXNlIjtjYXNlIDM6dmFyIFM9YS5nZXRDdXJyZW50VGltZSgpLUM7Tj1NYXRoLmFicygoTWIoKS5nZXRUaW1lKCktRCkvMUUzKnotUyk+MT8ic2VlayI6Tnx8ImJ1ZmZlcmluZyI7YS5nZXRDdXJyZW50VGltZSgpJiYoYi54cj91RSh0LmNyZWF0ZUV2ZW50KE4pKTp0LkJqKCkpO3EoKTtyZXR1cm4gbDtjYXNlIC0xOnJldHVybiBlKEcpO2RlZmF1bHQ6cmV0dXJuIGh9fWZ1bmN0aW9uIGwoRyl7c3dpdGNoKEcpe2Nhc2UgMDpyZXR1cm4gbihHKTtjYXNlIDE6cmV0dXJuIGcoRyk7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBsfX1mdW5jdGlvbiBuKCl7Zm9yKDtkOyl7dmFyIEc9YztBLmNsZWFyVGltZW91dChkKTtHKCl9Yi53ciYmdUUodC5jcmVhdGVFdmVudCgiY29tcGxldGUiLDEpKTtyZXR1cm4gZSgtMSl9ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiBxKCl7ZCYmCihBLmNsZWFyVGltZW91dChkKSxkPTAsYz1wKX1mdW5jdGlvbiByKCl7aWYodS5sZW5ndGgmJnohPT0wKXt2YXIgRz0tMSxOO2Rve049dVswXTtpZihOLnRlPmEuZ2V0RHVyYXRpb24oKSlyZXR1cm47Rz0oTi50ZS1hLmdldEN1cnJlbnRUaW1lKCkpL3o7aWYoRzwwJiYodS5zaGlmdCgpLHUubGVuZ3RoPT09MCkpcmV0dXJufXdoaWxlKEc8MCk7Yz1mdW5jdGlvbigpe2Q9MDtjPXA7dS5sZW5ndGg+MCYmdVswXS50ZT09PU4udGUmJih1LnNoaWZ0KCksdUUodC5jcmVhdGVFdmVudCgicHJvZ3Jlc3MiLE4ud28sTi5KbykpKTtyKCl9O2Q9QS5zZXRUaW1lb3V0KGMsRyoxRTMpfX12YXIgdCx1PVtdLHYseCx5LHosQyxELEk9ZSgtMSk7ZD0wO2M9cDtyZXR1cm57b25TdGF0ZUNoYW5nZTpmdW5jdGlvbihHKXtJPUkoRyl9LG9uUGxheWJhY2tSYXRlQ2hhbmdlOmZ1bmN0aW9uKEcpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5CaigpO3o9RztxKCk7cigpfX19LHJLPQpmdW5jdGlvbihhKXtiZChmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXtmb3IodmFyIGQ9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIiksZT1kLmxlbmd0aCxmPTA7ZjxlO2YrKylxSyhkW2ZdLGEpfXZhciBjPUI7YigpO29KLksoYil9KX0scUs9ZnVuY3Rpb24oYSxiKXtpZighYS5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpJiYoQ2MoYSwiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSIrYi5yZiksc0soYSxiLmNvKSkpe2EuaWR8fChhLmlkPXRLKCkpO3ZhciBjPUEuWVQsZD1jLmdldChhLmlkKTtkfHwoZD1uZXcgYy5QbGF5ZXIoYS5pZCkpO3ZhciBlPXBLKGQsYiksZj17fSxnO2ZvcihnIGluIGUpZj17TWc6Zi5NZ30sZi5NZz1nLGUuaGFzT3duUHJvcGVydHkoZi5NZykmJmQuYWRkRXZlbnRMaXN0ZW5lcihmLk1nLGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gZVtoLk1nXShsLmRhdGEpfX0oZikpfX0sc0s9ZnVuY3Rpb24oYSwKYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKGMsImVtYmVkLyIpKXtpZihjLmluZGV4T2YoImVuYWJsZWpzYXBpPTEiKT4wKXJldHVybiEwO2lmKGIpe3ZhciBkO3ZhciBlPWMuaW5kZXhPZigiPyIpIT09LTE/IiYiOiI/IjtjLmluZGV4T2YoIm9yaWdpbj0iKT4tMT9kPWMrZSsiZW5hYmxlanNhcGk9MSI6KGxLfHwobEs9Qi5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK0IubG9jYXRpb24uaG9zdG5hbWUsQi5sb2NhdGlvbi5wb3J0JiYobEsrPSI6IitCLmxvY2F0aW9uLnBvcnQpKSxkPWMrZSsiZW5hYmxlanNhcGk9MSZvcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQobEspKTt2YXIgZjtmPWpjKGQpO2Euc3JjPWtjKGYpLnRvU3RyaW5nKCk7cmV0dXJuITB9fXJldHVybiExfSx1Sz1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiExO2Zvcih2YXIgYz0wO2M8a0subGVuZ3RoO2MrKylpZihhLmluZGV4T2YoIi8vIitrS1tjXSsiLyIrYik+PTApcmV0dXJuITA7cmV0dXJuITF9LAp0Sz1mdW5jdGlvbigpe3ZhciBhPSIiK01hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxRTkpO3JldHVybiBCLmdldEVsZW1lbnRCeUlkKGEpP3RLKCk6YX07CmZ1bmN0aW9uIHZLKGEsYil7dmFyIGM9dGhpczt2YXIgZD1mdW5jdGlvbigpe3JLKHEpfTtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLHtmaXhNaXNzaW5nQXBpOiEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKX0pfV0pO3ZhciBlPVpGKGIpLGY9ISFhLmdldCgiY2FwdHVyZVN0YXJ0IiksZz0hIWEuZ2V0KCJjYXB0dXJlQ29tcGxldGUiKSxoPSEhYS5nZXQoImNhcHR1cmVQYXVzZSIpLGw9b0soVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiKSkpLG49bksoVGQoYS5nZXQoInByb2dyZXNzVGhyZXNob2xkc1RpbWVJblNlY29uZHMiKSkpLHA9ISFhLmdldCgiZml4TWlzc2luZ0FwaSIpOwppZighKGZ8fGd8fGh8fGwubGVuZ3RofHxuLmxlbmd0aCkpcmV0dXJuO3ZhciBxPXt5cjpmLHdyOmcseHI6aCxjdDpsLGV0Om4sY286cCxyZjplfSxyPUEuWVQ7aWYocilyZXR1cm4gci5yZWFkeSYmci5yZWFkeShkKSxlO3ZhciB0PUEsdT10Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5O3Qub25Zb3VUdWJlSWZyYW1lQVBJUmVhZHk9ZnVuY3Rpb24oKXt1JiZ1KCk7ZCgpfTtiZChmdW5jdGlvbigpe2Zvcih2YXIgdj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSx4PXYubGVuZ3RoLHk9MDt5PHg7eSsrKXt2YXIgej12W3ldLmdldEF0dHJpYnV0ZSgic3JjIik7aWYodUsoeiwiaWZyYW1lX2FwaSIpfHx1Syh6LCJwbGF5ZXJfYXBpIikpcmV0dXJuIGV9Zm9yKHZhciBDPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLEQ9Qy5sZW5ndGgsST1hbCg1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxHPTA7RzxEO0crKylpZighSSYmc0soQ1tHXSxxLmNvKSlyZXR1cm4gVWMoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGkiKSwKWmsoNSwhMCksZX0pO3JldHVybiBlfXZLLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5IjtmdW5jdGlvbiB3SyhhLGIpe2lmKCFsaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz1iP1RkKGIpOnt9O2MucmVnZXhDYWNoZT1hbCgzLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KTtyZXR1cm4gR2goYSxjKX13Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIjtmdW5jdGlvbiB4SyhhKXt2YXIgYj0hMTtyZXR1cm4gYn14Sy5QPSJpbnRlcm5hbC5ldmFsdWF0ZU1hdGNoaW5nUnVsZXMiO3ZhciB5Sz1uZXcgTWFwKFtbImF3Iiw0XV0pO2Z1bmN0aW9uIHpLKGEpe3ZhciBiPXZyW2FdLGM9eUsuZ2V0KGEpO3JldHVybiBjPyh3cShiLGMpfHxbXSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gZC5tPT09IjAifHxkLm09PT12b2lkIDB9KTohMX0KZnVuY3Rpb24gQUsoYSxiKXtpZihNKDQ5NSkpe2Zvcih2YXIgYz1uZXcgTWFwLGQ9bSh5SyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPW0oZS52YWx1ZSksZz1mLm5leHQoKS52YWx1ZSxoPWYubmV4dCgpLnZhbHVlLGw9ZyxuPWFbbF0scD1BcnJheS5pc0FycmF5KG4pP25bMF06bjtpZihwIT09dm9pZCAwKXt2YXIgcT17fSxyPShxLms9cCxxLmk9U3RyaW5nKE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpKSxxLmI9W10scS5tPSIxIixxKSx0PWFxKHIsaCk7dCYmKHpLKGwpfHxjLnNldChsLHQpKX19aWYoYy5zaXplKXt2YXIgdSx2PVtdLHg9Yi5wYXRofHwiLyI7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgicCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeCkpO2IuQXImJnYucHVzaChlbmNvZGVVUklDb21wb25lbnQoImNlIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYi5BcikpKTt2YXIgeT1iLmRvbWFpbiYmYi5kb21haW4hPT0iYXV0byI/CmIuZG9tYWluOiJhdXRvOiIrQS5sb2NhdGlvbi5ob3N0bmFtZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJkIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh5KSk7Zm9yKHZhciB6PW0oYyksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpe3ZhciBEPW0oQy52YWx1ZSksST1ELm5leHQoKS52YWx1ZSxHPUQubmV4dCgpLnZhbHVlO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChHKSl9dT0iXy9zZXRfY29va2llPyIrdi5qb2luKCImIik7dmFyIE4sUz1FKDU4KTtOPUVmKHUsUyk7dmFyIFc9WGooKSsiLyIrTjttZChXKX19fTtmdW5jdGlvbiBCSyhhKXtyZXR1cm4iQ1dWV2ViVmlld01lc3NhZ2UiaW4gYX1mdW5jdGlvbiBDSyhhKXt2YXIgYj1BLGM9Yi53ZWJraXQ7ZGVsZXRlIGIud2Via2l0O2EoYi53ZWJraXQpO2Iud2Via2l0PWN9ZnVuY3Rpb24gREsoYSxiKXt2YXIgYz17YWN0aW9uOiJnY2xfc2V0dXAifTtpZihCSyhhLm1lc3NhZ2VIYW5kbGVycykpcmV0dXJuIGEubWVzc2FnZUhhbmRsZXJzLkNXVldlYlZpZXdNZXNzYWdlLnBvc3RNZXNzYWdlKHtjb21tYW5kOmIscGF5bG9hZDpjfSksITA7dmFyIGQ9YS5tZXNzYWdlSGFuZGxlcnNbYl07cmV0dXJuIGQ/KGQucG9zdE1lc3NhZ2UoYyksITApOiExfTt2YXIgRUs9e30sRks9KEVLLmF3Yj17bm90Rm91bmQ6MTc4fSxFSy55dGI9e25vdEZvdW5kOjE5NH0sRUspO2Z1bmN0aW9uIEdLKGEpe3ZhciBiLGM9KGI9RktbYV0pPT1udWxsP3ZvaWQgMDpiLm5vdEZvdW5kO2MmJlAoYyl9CmZ1bmN0aW9uIEhLKGEpe2lmKCFubShqbS5iYS5qbikmJiJ3ZWJraXQiaW4gQSYmQS53ZWJraXQubWVzc2FnZUhhbmRsZXJzKXt2YXIgYj1mdW5jdGlvbigpe3RyeXtDSyhmdW5jdGlvbihjKXtpZihjKXt2YXIgZDtkPUJLKGMubWVzc2FnZUhhbmRsZXJzKXx8ImF3YiJpbiBjLm1lc3NhZ2VIYW5kbGVycz97Y29tbWFuZDoiYXdiIixzb3VyY2U6NX06KEJLKGMubWVzc2FnZUhhbmRsZXJzKXx8Inl0YiJpbiBjLm1lc3NhZ2VIYW5kbGVycykmJk0oNDk5KT97Y29tbWFuZDoieXRiIixzb3VyY2U6OH06dm9pZCAwO2QmJihtbShqbS5iYS5qbixmdW5jdGlvbihlKXt2YXIgZj1kLnNvdXJjZTtlLmdjbGlkJiZscygiZ2NsX2F3IixlLmdjbGlkLGYsYSk7ZS53YnJhaWQmJmxzKCJnY2xfZ2IiLGUud2JyYWlkLGYsYSl9KSxESyhjLGQuY29tbWFuZCl8fEdLKGQuY29tbWFuZCkpfX0pfWNhdGNoKGMpe1AoMTkzKX19O0hsKGZ1bmN0aW9uKCl7QnIoZnApP2IoKTpJbChiLGZwKX0sZnApfX07dmFyIElLPVsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSIsImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly9tLnlvdXR1YmUuY29tIl07ZnVuY3Rpb24gSksoYSl7cmV0dXJuIGEuZGF0YS5hY3Rpb24hPT0iZ2NsX3RyYW5zZmVyIj8oUCgxNzMpLCEwKTphLmRhdGEuZ2FkU291cmNlP2EuZGF0YS5nY2xpZD8hMTooUCgxODEpLCEwKTooUCgxODApLCEwKX0KZnVuY3Rpb24gS0soYSxiKXtpZighYXx8TShhKSl7aWYobm0oam0uYmEuVmUpKXJldHVybiBQKDE3Niksam0uYmEuVmU7aWYobm0oam0uYmEubW4pKXJldHVybiBQKDE3MCksam0uYmEuVmU7dmFyIGM9RnAoKTtpZighYylQKDE3MSk7ZWxzZSBpZihjLm9wZW5lcil7dmFyIGQ9ZnVuY3Rpb24oZyl7aWYoIUlLLmluY2x1ZGVzKGcub3JpZ2luKSlQKDE3Mik7ZWxzZSBpZighSksoZykpe3ZhciBoPXtnYWRTb3VyY2U6Zy5kYXRhLmdhZFNvdXJjZX07aC5nY2xpZD1nLmRhdGEuZ2NsaWQ7bW0oam0uYmEuVmUsaCk7YiYmZy5kYXRhLmdjbGlkJiZscygiZ2NsX2F3IixTdHJpbmcoZy5kYXRhLmdjbGlkKSw2LGIpO3ZhciBsOyhsPWcuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKT09bnVsbHx8bC5jYWxsKGcpO250KGMsIm1lc3NhZ2UiLGQpfX07aWYobXQoYywibWVzc2FnZSIsZCkpe21tKGptLmJhLm1uLCEwKTtmb3IodmFyIGU9bShJSyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpYy5vcGVuZXIucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiZ2NsX3NldHVwIn0sCmYudmFsdWUpO1AoMTc0KTtyZXR1cm4gam0uYmEuVmV9UCgxNzUpfX19Owp2YXIgTEs9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpPKGEuTSxGLkQuRmQpfHxPKGEuTSxGLkQubmIpLGRvbWFpbjpPKGEuTSxGLkQuTGIpLHBkOk8oYS5NLEYuRC5DYiksZmxhZ3M6TyhhLk0sRi5ELlRiKX07YS5NLmlzR3RtRXZlbnQmJihiLnBhdGg9TyhhLk0sRi5ELnZjKSk7cmV0dXJuIGJ9LE1LPWZ1bmN0aW9uKGEsYil7aWYoIVEoYSxILkouV2UpKXt2YXIgYz1LSygxMTkpO2lmKGMpe3ZhciBkPW5tKGMpLGU9ZnVuY3Rpb24oZyl7VihhLEguSi5XZSwhMCk7dmFyIGg9UihhLEYuRC56ZiksbD1SKGEsRi5ELkFmKTtVKGEsRi5ELnpmLFN0cmluZyhnLmdhZFNvdXJjZSkpO1UoYSxGLkQuQWYsNik7VihhLEguSi5zYSk7VihhLEguSi51Zyk7VShhLEYuRC5zYSk7YigpO1UoYSxGLkQuemYsaCk7VShhLEYuRC5BZixsKTtWKGEsSC5KLldlLCExKX07aWYoZCllKGQpO2Vsc2V7dmFyIGY9dm9pZCAwO2Y9cG0oYyxmdW5jdGlvbihnLGgpe2UoaCk7cW0oYyxmKX0pfX19fSxQSz1mdW5jdGlvbihhKXt2YXIgYiwKYyxkLGU7Yj1hLlRuO2M9YS5tbztkPWEuUW87ZT1hLlVuO2lmKGIpe2lmKGRyKGNbRi5ELlhmXSwhIWNbRi5ELkFhXSkpe2lmKFdqKCkmJkJyKEFyKCkpKXtmb3IodmFyIGY9VXEoITApLGc9e30saD1tKE9iamVjdC5rZXlzKHZyKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD12cltuXSxxPWZbcF07aWYocSl7dmFyIHI9JHAocSw0KTtyJiYob3MoTWF0aC5taW4oTnIociksTmIoKSl8fE5iKCkscCw0KXx8KGdbbl09cSkpfX1mb3IodmFyIHQ9e30sdT1tKE9iamVjdC5rZXlzKGcpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj11Lm5leHQoKSl7dmFyIHg9di52YWx1ZSx5PWdbeF07aWYoeSE9PXZvaWQgMCl7dmFyIHo9JHAoeSw0KTt6JiZ6Lm09PT0iMSImJih0W3hdPXouayl9fUFLKHQsZSl9cHMoZSk7dHMoZSk7UXYoZSl9aWYoT3AoKSE9PTIpe2dzKGUpO2lzKGUpO2lmKFlmKDE1KSl7dmFyIEM9ZSxEPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7CkQubGVuZ3RofHwoRD1kcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7aWYoRC5sZW5ndGgpe0M9Q3x8e307dmFyIEk9RFswXTtJLnZhbHVlJiZtcygiZ2NsX2RjIixbe3ZlcnNpb246IiIsZ2NsaWQ6SS52YWx1ZSx0aW1lc3RhbXA6TmIoKSxxYTpJLnFhfV0sQyl9fUhLKGUpO0tLKHZvaWQgMCxlKX1lbHNlIGdzKGUpO2lmKFdqKCkmJkJyKEFyKCkpKXt2YXIgRz1mcygpO0FLKEcsZSl9eHMocXMsZSk7eXMoZSl9Y1tGLkQuQWFdJiYodnMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSksdXMoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksd3MoY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlLnByZWZpeCksUnYoR3YoZS5wcmVmaXgpLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSksUnYoIkZQQVUiLGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZSkpO2QmJkFzKE5LKTtDcyhPSyl9LHFzPVsiYXciLCJkYyIsCiJnYiJdLE9LPVsiYXciLCJkYyIsImdiIiwiYWciXSxOSz1bImF3IiwiZGMiLCJnYiIsImFnIiwiZ2FkX3NvdXJjZSJdOwp2YXIgUUs9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLnNuKSxkPU0oNDQzKSYmYz9UdihiKTpVdihiKS5TaCxlPXZvaWQgMDtNKDU3MCkmJmMmJihlPVN2KGIse1hoOiEwfSkuaWspO3ZhciBmO2E6e2lmKElmKDQ3KSYmWG8oZnApKXt2YXIgZz1kSShhLCJjY2RfZW5hYmxlX2NtIiwhMSksaD1RKGEsSC5KLllhKTtWKGEsSC5KLmFqLCEwKTtWKGEsSC5KLmZkLCEwKTtpZihodyhoKSl7VihhLEguSi5JaCwhMCk7dmFyIGw9ZHx8QXYoKSxuPXt9LHA9e2V2ZW50TWV0YWRhdGE6KG5bSC5KLkRjXT1YLlYuRmIsbltILkouWWFdPWgsbltILkouempdPWwsbltILkouZmRdPSEwLG5bSC5KLmFqXT0hMCxuW0guSi5JaF09ITAsbltILkouWG1dPWcmJklmKDQ3KSxuKSxub0d0bUV2ZW50OiEwfSxxPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYS5ldmVudE5hbWUsYS5NLkVhKTttRChxLGEuTS5ldmVudElkLHApO2cmJlEoYSxILkoud2QpfHxWKGEsSC5KLllhKTtmPWw7CmJyZWFrIGF9fWY9dm9pZCAwfXZhciByPWR8fGY7aWYocnx8ZSl7dmFyIHQsdTt0PVIoYSxGLkQuUGEpO3U9S3ouZ2ouYnA7dmFyIHY9UihhLEYuRC5XYyk7IXQmJnYmJih0PXZbRi5ELlBhXSx1PUt6LmdqLnVxKTt0fHwodD1BdihSKGEsRi5ELkdkKSksc2IoIkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMIixULlcuRmgpLHU9S3ouZ2ouVnEpO1UoYSxGLkQuUGEsdCk7VShhLEYuRC5kbSx1KTtyJiZVKGEsRi5ELnhjLHIpO2UmJlUoYSwiXyZlY3NpZDIiLGUpO1YoYSxILkoubGosITApfX07CnZhciBSSz1mdW5jdGlvbihhKXtRKGEsSC5KLnluKXx8VihhLEguSi5KYSwhMSl9LFNLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpLGM9WG8oZnApLGQ9UShhLEguSi5zYSksZT1SKGEsRi5ELkdkKSxmPVEoYSxILkoucG4pO3N3aXRjaChiKXtjYXNlIFguVi54YTohZiYmZSYmUksoYSk7YS5ldmVudE5hbWU9PT1GLkQud2EmJlYoYSxILkouSmEsITApO2JyZWFrO2Nhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmlmKCFjfHxkfHwhZiYmZSlhLmlzQWJvcnRlZD0hMDticmVhaztjYXNlIFguVi51YjpjfHwoYS5pc0Fib3J0ZWQ9ITApOyFmJiZlfHxSSyhhKTtRKGEsSC5KLndkKXx8KGEuaXNBYm9ydGVkPSEwKTthLmV2ZW50TmFtZSE9PUYuRC53YXx8TyhhLk0sRi5ELkNsKSE9PSExJiZPKGEuTSxGLkQuVGQpIT09ITF8fFYoYSxILkouSmEsITApO2JyZWFrO2Nhc2UgWC5WLkthOmEuZXZlbnROYW1lIT09Ri5ELnNjJiZRKGEsSC5KLlBjKSYmKGEuaXNBYm9ydGVkPSEwKSxhLnRhcmdldC5pZHNbZENbMV1dJiYKTyhhLk0sRi5ELmloKSE9PSEwJiYoYS5pc0Fib3J0ZWQ9ITApfX07dmFyIFRLPWZ1bmN0aW9uKGEpe3ZhciBiLGM9TSg1NzYpO2lmKFEoYSxILkouc24pKXN3aXRjaChRKGEsSC5KLmRhKSl7Y2FzZSBYLlYuRmI6aWYoIShhLmV2ZW50TmFtZSE9PUYuRC53YXx8YyYmaHcoUShhLEguSi5ZYSkpKSlicmVhaztiPTk3O2EuZXZlbnROYW1lPT09Ri5ELndhJiZHdShULlcuT2spO00oNDg4KT9WKGEsSC5KLkphLCExKTpSSyhhKTticmVhaztjYXNlIFguVi5PYjppZihhLmV2ZW50TmFtZT09PUYuRC53YSlicmVhaztiPTk4O00oNDg4KT9WKGEsSC5KLkphLCExKTpSSyhhKTticmVhaztjYXNlIFguVi54YTpiPTk5fSFRKGEsSC5KLkphKSYmYiYmUChiKTtRKGEsSC5KLkphKT09PSEwJiYoYS5pc0Fib3J0ZWQ9ITApfTsKdmFyIFVLPWZ1bmN0aW9uKGEpe2lmKE0oNTY5KSYmV2ooKSYmUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSl7dmFyIGI9TWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMyksYz1uZXcgVWludDhBcnJheShbYiYyNTUsYj4+OCYyNTVdKSxkLGU9eW0oKXx8IlhYIixmPXptKCl8fCIwMCI7ZD1uZXcgVWludDhBcnJheShbZS5jaGFyQ29kZUF0KDApLGUuY2hhckNvZGVBdCgxKSxmLmNoYXJDb2RlQXQoMCksZi5jaGFyQ29kZUF0KDEpXSk7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoNyksaDtpZigoaD1BLmNyeXB0byk9PW51bGx8fCFoLmdldFJhbmRvbVZhbHVlcyhnKSlmb3IodmFyIGw9MDtsPDc7bCsrKWdbbF09TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1Nik7dmFyIG49bmV3IFVpbnQ4QXJyYXkoW10uY29uY2F0KHcoYyksdyhkKSx3KGcpKSkscDt0cnl7cD1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcobikpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywKIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1jYXRjaChxKXtwPSIifVUoYSxGLkQuRWkscCl9fTtmdW5jdGlvbiBWSygpe3JldHVybiBNdCg3KSYmTXQoOSkmJk10KDEwKX07dmFyIFdLPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17fTthLm1lcmdlSGl0RGF0YUZvcktleShGLkQub2osKGRbYl09YyxkKSl9LFhLPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZEkoYSxGLkQuRmksYS5NLmliW0YuRC5GaV0pO2lmKGMmJmNbYnx8YS5ldmVudE5hbWVdIT09dm9pZCAwKXJldHVybiBjW2J8fGEuZXZlbnROYW1lXX0sWUs9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5ZYSk7aWYoQ2QoYikpcmV0dXJuIGJ9LFpLPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouYmUpfHwhZWsoYS5NKSlyZXR1cm4gMTtpZighTyhhLk0sRi5ELmRkKSl7dmFyIGI9TyhhLk0sRi5ELlFmKTtpZihiIT09ITAmJmIhPT0idHJ1ZSIpcmV0dXJuIDF9dmFyIGM9TyhhLk0sRi5ELk9pKTtyZXR1cm4gYz09PSExfHxjPT09ImZhbHNlIj8zOjJ9Owp2YXIgYUw9ZnVuY3Rpb24oYSxiKXthJiYoJEsoInNpZCIsYS50YXJnZXRJZCxiKSwkSygiY2MiLGEuY2xpZW50Q291bnQsYiksJEsoInRsIixhLnRvdGFsTGlmZU1zLGIpLCRLKCJoYyIsYS5oZWFydGJlYXRDb3VudCxiKSwkSygiY2wiLGEuY2xpZW50TGlmZU1zLGIpKX0sJEs9ZnVuY3Rpb24oYSxiLGMpe2IhPW51bGwmJmMucHVzaChhKyI9IitiKX0sYkw9ZnVuY3Rpb24oKXt2YXIgYT1CLnJlZmVycmVyO2lmKGEpe3ZhciBiO3JldHVybiBMaihSaihhKSwiaG9zdCIpPT09KChiPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpiLmhvc3QpPzE6Mn1yZXR1cm4gMH0sZEw9ZnVuY3Rpb24oKXt0aGlzLmphPWNMO3RoaXMuTj0wO3RoaXMueWE9TmYoNTcsNSk7dGhpcy5SPU5mKDU4LDUwKTt0aGlzLmZhPURiKCk7dGhpcy5MYT0iaHR0cHM6Ly8iK0UoMjEpKyIvYT8ifTtkTC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyxkKXsKdmFyIGU9YkwoKSxmLGc9W107Zj1BPT09QS50b3AmJmUhPT0wJiZiPyhiPT1udWxsP3ZvaWQgMDpiLmNsaWVudENvdW50KT4xP2U9PT0yPzE6MjplPT09Mj8wOjM6NDthJiYkSygic2kiLGEuSmcsZyk7JEsoIm0iLDAsZyk7JEsoImlzcyIsZixnKTskSygiaWYiLGMsZyk7YUwoYixnKTtkJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChkLnN1YnN0cmluZygwLHRoaXMuUikpLGcpO3RoaXMuWihnKTt9O2RMLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9W107JEsoIm0iLDEsZik7JEsoInMiLGEsZik7JEsoInBvIixiTCgpLGYpO2ImJigkSygic3QiLGIuc3RhdGUsZiksJEsoInNpIixiLkpnLGYpLCRLKCJzbSIsYi5VZyxmKSk7YUwoYyxmKTskSygiYyIsZCxmKTtlJiYkSygiZm0iLGVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZygwLAp0aGlzLlIpKSxmKTt0aGlzLlooZik7fTtkTC5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTshZm4uTnx8dGhpcy5OPj10aGlzLnlhfHwoJEsoInBpZCIsdGhpcy5mYSxhKSwkSygiYmMiLCsrdGhpcy5OLGEpLGEudW5zaGlmdCgiY3RpZD0iK0UoNSkrIiZ0PXMiKSx0aGlzLmphKCIiK3RoaXMuTGErYS5qb2luKCImIikpKX07ZnVuY3Rpb24gZUwoYSl7cmV0dXJuIGEucGVyZm9ybWFuY2UmJmEucGVyZm9ybWFuY2Uubm93KCl8fERhdGUubm93KCl9CnZhciBmTD1mdW5jdGlvbihhLGIpe3ZhciBjPUEsZD1OZig1Myw1MDApLGU9TmYoNTQsNUUzKSxmPU5mKDgsMjApLGc9TmYoNTUsNUUzKSxoO3ZhciBsPWZ1bmN0aW9uKG4scCxxKXtxPXE9PT12b2lkIDA/e3FvOmZ1bmN0aW9uKCl7fSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oKXt9LG9uRmFpbHVyZTpmdW5jdGlvbigpe319OnE7dGhpcy5Jaj1uO3RoaXMuSD1wO3RoaXMuTj1xO3RoaXMuZmE9dGhpcy5qYT10aGlzLmhlYXJ0YmVhdENvdW50PXRoaXMuRGo9MDt0aGlzLmZlPSExO3RoaXMuSz17fTt0aGlzLmlkPVN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKTt0aGlzLnN0YXRlPTA7dGhpcy5KZz1lTCh0aGlzLkgpO3RoaXMuVWc9ZUwodGhpcy5IKTt0aGlzLlo9MTB9O2wucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt0aGlzLlIoMSk7CnRoaXMuTGEoKX07bC5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6dGhpcy5zdGF0ZSxKZzpNYXRoLnJvdW5kKGVMKHRoaXMuSCktdGhpcy5KZyksVWc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuVWcpfX07bC5wcm90b3R5cGUuUj1mdW5jdGlvbihuKXt0aGlzLnN0YXRlIT09biYmKHRoaXMuc3RhdGU9bix0aGlzLlVnPWVMKHRoaXMuSCkpfTtsLnByb3RvdHlwZS52Zz1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcodGhpcy5EaisrKX07bC5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuaGVhcnRiZWF0Q291bnQrKzt0aGlzLnlhKHt0eXBlOjAsY2xpZW50SWQ6dGhpcy5pZCxyZXF1ZXN0SWQ6dGhpcy52ZygpLG1heERlbGF5OnRoaXMuaGUoKX0sZnVuY3Rpb24ocCl7aWYocC50eXBlPT09MCl7dmFyIHE7aWYoKChxPXAuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnEuZmFpbHVyZVR5cGUpIT1udWxsKWlmKHAuc3RhdHMmJihuLnN0YXRzPQpwLnN0YXRzKSxuLmZhKysscC5pc0RlYWR8fG4uZmE+Zil7dmFyIHI9cC5pc0RlYWQmJnAuZmFpbHVyZS5mYWlsdXJlVHlwZTtuLlo9cnx8MTA7bi5SKDQpO24uQWooKTt2YXIgdCx1Oyh1PSh0PW4uTikucG8pPT1udWxsfHx1LmNhbGwodCx7ZmFpbHVyZVR5cGU6cnx8MTAsZGF0YTpwLmZhaWx1cmUuZGF0YX0pfWVsc2Ugbi5SKDMpLG4uUGgoKTtlbHNle2lmKG4uaGVhcnRiZWF0Q291bnQ+cC5zdGF0cy5oZWFydGJlYXRDb3VudCtmKXtuLmhlYXJ0YmVhdENvdW50PXAuc3RhdHMuaGVhcnRiZWF0Q291bnQ7dmFyIHYseDsoeD0odj1uLk4pLm9uRmFpbHVyZSk9PW51bGx8fHguY2FsbCh2LHtmYWlsdXJlVHlwZToxM30pfW4uc3RhdHM9cC5zdGF0czt2YXIgeT1uLnN0YXRlO24uUigyKTtpZih5IT09MilpZihuLmZlKXt2YXIgeixDOyhDPSh6PW4uTikuc28pPT1udWxsfHxDLmNhbGwoeil9ZWxzZXtuLmZlPSEwO3ZhciBELEk7KEk9KEQ9bi5OKS5xbyk9PW51bGx8fEkuY2FsbChEKX1uLmZhPQowO24uTmooKTtuLlBoKCl9fX0pfTtsLnByb3RvdHlwZS5oZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlPT09Mj9lOmR9O2wucHJvdG90eXBlLlBoPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe24uTGEoKX0sTWF0aC5tYXgoMCx0aGlzLmhlKCktKGVMKHRoaXMuSCktdGhpcy5qYSkpKX07bC5wcm90b3R5cGUua3I9ZnVuY3Rpb24obixwLHEpe3ZhciByPXRoaXM7dGhpcy55YSh7dHlwZToxLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxjb21tYW5kOm59LGZ1bmN0aW9uKHQpe2lmKHQudHlwZT09PTEpaWYodC5yZXN1bHQpcCh0LnJlc3VsdCk7ZWxzZXt2YXIgdSx2LHgseT17ZmFpbHVyZVR5cGU6KHg9KHU9dC5mYWlsdXJlKT09bnVsbD92b2lkIDA6dS5mYWlsdXJlVHlwZSkhPW51bGw/eDoxMixkYXRhOih2PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnYuZGF0YX0seixDOyhDPSh6PXIuTikub25GYWlsdXJlKT09Cm51bGx8fEMuY2FsbCh6LHkpO3EoeSl9fSl9O2wucHJvdG90eXBlLnlhPWZ1bmN0aW9uKG4scCl7dmFyIHE9dGhpcztpZih0aGlzLnN0YXRlPT09NCluLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnRoaXMuWn0scChuKTtlbHNle3ZhciByPXRoaXMuc3RhdGUhPT0yJiZuLnR5cGUhPT0wLHQ9bi5yZXF1ZXN0SWQsdSx2PXRoaXMuSC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9cS5LW3RdO3kmJihpbSg2KSxxLmtkKHksNykpfSwodT1uLm1heERlbGF5KSE9bnVsbD91OmcpLHg9e3JlcXVlc3Q6bixIbzpwLHpvOnIsTnM6dn07dGhpcy5LW3RdPXg7cnx8dGhpcy5zZW5kUmVxdWVzdCh4KX19O2wucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKG4pe3RoaXMuamE9ZUwodGhpcy5IKTtuLnpvPSExO3RoaXMuSWoobi5yZXF1ZXN0KX07bC5wcm90b3R5cGUuTmo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9CnRoaXMuS1twLnZhbHVlXTtxLnpvJiZ0aGlzLnNlbmRSZXF1ZXN0KHEpfX07bC5wcm90b3R5cGUuQWo9ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyh0aGlzLkspKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl0aGlzLmtkKHRoaXMuS1twLnZhbHVlXSx0aGlzLlopfTtsLnByb3RvdHlwZS5rZD1mdW5jdGlvbihuLHApe3RoaXMuYWMobik7dmFyIHE9bi5yZXF1ZXN0O3EuZmFpbHVyZT17ZmFpbHVyZVR5cGU6cH07bi5IbyhxKX07bC5wcm90b3R5cGUuYWM9ZnVuY3Rpb24obil7ZGVsZXRlIHRoaXMuS1tuLnJlcXVlc3QucmVxdWVzdElkXTt0aGlzLkguY2xlYXJUaW1lb3V0KG4uTnMpfTtsLnByb3RvdHlwZS5rcz1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7dmFyIHA9dGhpcy5LW24ucmVxdWVzdElkXTtpZihwKXRoaXMuYWMocCkscC5IbyhuKTtlbHNle3ZhciBxLHI7KHI9KHE9dGhpcy5OKS5vbkZhaWx1cmUpPT1udWxsfHxyLmNhbGwocSx7ZmFpbHVyZVR5cGU6MTR9KX19OwpoPW5ldyBsKGEsYyxiKTtyZXR1cm4gaH07CnZhciBnTD1mdW5jdGlvbigpe3JldHVybiBhbCgxOCxmdW5jdGlvbigpe3JldHVybiBuZXcgZEx9KX0sY0w9ZnVuY3Rpb24oYSl7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7WmMoYSl9KX0saEw9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyIikpO3JldHVybiImMXA9MSIrKGI/IiZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIiKX0saUw9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5vcmlnaW47aWYoIWIpcmV0dXJuIG51bGw7KE0oNDMyKT9XaigpOldqKCkmJiFhKSYmKGE9IiIrYitYaigpKyIvXy9zZXJ2aWNlX3dvcmtlciIpO3ZhciBjPWEsZCxlPUxmKDExKTtlPUxmKDEwKTtkPWU7Yz8oYy5jaGFyQXQoYy5sZW5ndGgtMSkhPT0iLyImJgooYys9Ii8iKSxhPWMrZCk6YT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vc3RhdGljL3NlcnZpY2Vfd29ya2VyLyIrZCsiLyI7dmFyIGY7dHJ5e2Y9bmV3IFVSTChhKX1jYXRjaChnKXtyZXR1cm4gbnVsbH1yZXR1cm4gZi5wcm90b2NvbCE9PSJodHRwczoiP251bGw6Zn0sakw9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuT2gpO3JldHVybiBiJiZiW2FdfSxrTD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuSz1nTCgpO3RoaXMuWj10aGlzLlI9ITE7dGhpcy5mYT1udWxsO3RoaXMuaW5pdFRpbWU9TWF0aC5yb3VuZChOYigpKTt0aGlzLkg9MTU7dGhpcy5OPXRoaXMuRnIoYSk7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5pbml0aWFsaXplKCl9LDFFMyk7YmQoZnVuY3Rpb24oKXtiLnpzKGEpfSl9O2s9a0wucHJvdG90eXBlO2suZGVsZWdhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZ2V0U3RhdGUoKSE9PTI/KHRoaXMuSy5IKHRoaXMuSCx7c3RhdGU6dGhpcy5nZXRTdGF0ZSgpLApKZzp0aGlzLmluaXRUaW1lLFVnOk1hdGgucm91bmQoTmIoKSktdGhpcy5pbml0VGltZX0sdm9pZCAwLGEuY29tbWFuZFR5cGUpLGMoe2ZhaWx1cmVUeXBlOnRoaXMuSH0pKTp0aGlzLk4ua3IoYSxiLGMpfTtrLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTi5nZXRTdGF0ZSgpLnN0YXRlfTtrLnpzPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luLGM9dGhpcyxkPVhjKCk7dHJ5e3ZhciBlPWQuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGY9YS5wYXRobmFtZSxnPWZbZi5sZW5ndGgtMV09PT0iLyI/YS50b1N0cmluZygpOmEudG9TdHJpbmcoKSsiLyIsaD1hLm9yaWdpbiE9PSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSI/aEwoZik6IiIsbDtNKDEzMykmJihsPXtzYW5kYm94OiJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIn0pO1hjKGcrInN3X2lmcmFtZS5odG1sP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudChiKSsKaCx2b2lkIDAsbCx2b2lkIDAsZSk7dmFyIG49ZnVuY3Rpb24oKXtkLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2UuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtjLmZhPWUuY29udGVudFdpbmRvdztkLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24ocCl7cC5vcmlnaW49PT1hLm9yaWdpbiYmYy5OLmtzKHAuZGF0YSl9KTtjLmluaXRpYWxpemUoKX0pfTtkLmNvbnRlbnREb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj9uKCk6ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7bigpfSl9Y2F0Y2gocCl7ZC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGQpLHRoaXMuSD0xMSx0aGlzLksuSyh2b2lkIDAsdm9pZCAwLHRoaXMuSCxwLnRvU3RyaW5nKCkpfX07ay5Gcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9ZkwoZnVuY3Rpb24oZCl7dmFyIGU7KGU9Yi5mYSk9PQpudWxsfHxlLnBvc3RNZXNzYWdlKGQsYS5vcmlnaW4pfSx7cW86ZnVuY3Rpb24oKXtiLlI9ITA7Yi5LLksoYy5nZXRTdGF0ZSgpLGMuc3RhdHMpfSxzbzpmdW5jdGlvbigpe30scG86ZnVuY3Rpb24oZCl7Yi5SPyhiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHwxMCxiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsdm9pZCAwLGQ9PW51bGw/dm9pZCAwOmQuZGF0YSkpOihiLkg9KGQ9PW51bGw/dm9pZCAwOmQuZmFpbHVyZVR5cGUpfHw0LGIuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzLGIuSCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKX0sb25GYWlsdXJlOmZ1bmN0aW9uKGQpe2IuSD1kLmZhaWx1cmVUeXBlO2IuSy5IKGIuSCxjLmdldFN0YXRlKCksYy5zdGF0cyxkLmNvbW1hbmQsZC5kYXRhKX19KTtyZXR1cm4gY307ay5pbml0aWFsaXplPWZ1bmN0aW9uKCl7dGhpcy5afHx0aGlzLk4uaW5pdCgpO3RoaXMuWj0hMH07CnZhciBsTD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZTtpZigoZT1qTChhKSk9PW51bGx8fCFlLmRlbGVnYXRlKXt2YXIgZj1JYygpPzE2OjY7Z0woKS5IKGYsdm9pZCAwLHZvaWQgMCxiLmNvbW1hbmRUeXBlKTtkKHtmYWlsdXJlVHlwZTpmfSk7cmV0dXJufWpMKGEpLmRlbGVnYXRlKGIsYyxkKTt9OwpmdW5jdGlvbiBtTChhLGIsYyxkKXt2YXIgZT1pTChhKTtpZihlPT09bnVsbCl7ZCgiX2lzX3N3PWYiKyhJYygpPzE2OjYpKyJ0ZSIpO3JldHVybn12YXIgZj1iPzE6MCxnPU1hdGgucm91bmQoTmIoKSksaCxsPShoPWpMKGUub3JpZ2luKSk9PW51bGw/dm9pZCAwOmguaW5pdFRpbWUsbj1sP2ctbDp2b2lkIDAscDtNKDQzMik/cD1XaigpP3ZvaWQgMDpBLmxvY2F0aW9uLmhyZWY6cD1BLmxvY2F0aW9uLmhyZWY7bEwoZS5vcmlnaW4se2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6Zix0ZW1wbGF0ZXM6Yyxib2R5OmJ8fCIiLHByb2Nlc3NSZXNwb25zZTohMCxzaW5jZUluaXQ6bixhdHRyaWJ1dGlvblJlcG9ydGluZzohMCxyZWZlcmVyOnAsc3RyaWN0Ok0oNTg0KX19LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihxKXt2YXIgcj0iX2lzX3N3PWYiK3EuZmFpbHVyZVR5cGUsdCx1PSh0PWpMKGUub3JpZ2luKSk9PQpudWxsP3ZvaWQgMDp0LmdldFN0YXRlKCk7dSE9PXZvaWQgMCYmKHIrPSJzIit1KTtkKG4/cisoInQiK24pOnIrInRlIil9KTt9O2Z1bmN0aW9uIG5MKGEpe2lmKElmKDQ3KSYmZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSkmJldqKCkpe3ZhciBiPWEuTTtpZihJYygpJiZiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpKXt2YXIgYz1layhiKSxkPVdqKCk/WGooKTp2b2lkIDAsZTtlPWQ/e3BhdGg6ZCxlbzoiZnVsbCJ9OmM/e3BhdGg6YyxlbzoibGl0ZSJ9OnZvaWQgMDtpZihlKXt2YXIgZj1lLmVvLGc9bmV3IFVSTChlLnBhdGgsQS5sb2NhdGlvbi5vcmlnaW4pO2lmKGcub3JpZ2luPT09QS5sb2NhdGlvbi5vcmlnaW4mJnB5KGYpPT09dm9pZCAwKXt2YXIgaD1vbShqbS5iYS5PaCx7fSk7aFtmXXx8KGhbZl09bmV3IG55KGcpKX19fX19O3ZhciBvTD1mdW5jdGlvbihhKXtuTChhKX07CnZhciBwTD1mdW5jdGlvbihhKXtpZighUShhLEguSi5KYSkmJiFhLmlzQWJvcnRlZClpZihRKGEsSC5KLmRhKSE9PVguVi54YSlRKGEsSC5KLlhtKSYmVShhLEYuRC5KaCwiMSIpLEl6KGEpO2Vsc2V7dmFyIGI9UShhLEguSi5ZYSksYz1SKGEsRi5ELkJjKSxkPVEoYSxILkouZmQpLGU9SWYoNDcpJiZkSShhLCJjY2RfZW5hYmxlX2NtIiwhMSksZj1YbyhmcCkmJlEoYSxILkoud2QpJiZlO2YmJihVKGEsRi5ELkpoLCIxIiksUShhLEguSi5JaCkmJihWKGEsSC5KLllhKSxVKGEsRi5ELkJjKSxWKGEsSC5KLmZkLCExKSkpO3ZhciBnPXJ2KG12KTtWKGEsSC5KLmduLGcpO2Zvcih2YXIgaCxsPVtdLG49bShxdikscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWUscj1nW3EucGJdO2lmKHI9PT12b2lkIDB8fHI8cS5PZylicmVhaztsLnB1c2goci50b1N0cmluZygpKX0oaD1sLmpvaW4oIn4iKSkmJlUoYSwiXyZnY2xfY3RyIixoKTt2YXIgdDt2YXIgdT17cmFuZG9tOlEoYSwKSC5KLkViKSxsYWJlbDpSKGEsRi5ELkdkKX0sdj1RKGEsSC5KLkdhKSx4PXd2KCk7eD8oeXYoW3VdLHYpLHQ9eC5sZW5ndGg9PT0wP3tyYW5kb206MCxsYWJlbDoiMCJ9OnhbMF0pOnQ9dm9pZCAwO3ZhciB5PXQ7eSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtsYXN0X3JhbmRvbTp5LnJhbmRvbSxsYXN0X2xhYmVsOnkubGFiZWx9KTtJeihhKTtpZihRKGEsSC5KLm9iKSYmWG8oZnApKXt2YXIgej1adShhLHtNOnVDKGEuTSl9KTtWKHosSC5KLmRhLFguVi5aZCk7SXooeil9aWYoUShhLEguSi5saikpe3ZhciBDPVp1KGEse006dUMoYS5NKX0pO1YoQyxILkouZGEsWC5WLnpkKTtJeihDKX1pZihmKXt2YXIgRD1adShhLHtNOnVDKGEuTSl9KTtVKEQsRi5ELkpoLCIyIik7VihELEguSi5FYywhMCk7VihELEguSi5mZCxkKTtWKEQsSC5KLllhLGIpO1UoRCxGLkQuQmMsYyk7SXooRCl9fX07dmFyIHFMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpPT09WC5WLnhhO2lmKCFifHxhLmV2ZW50TmFtZT09PUYuRC5JYnx8YS5NLmlzR3RtRXZlbnQpYS5jb3B5VG9IaXREYXRhKEYuRC5IYSksYiYmKGEuY29weVRvSGl0RGF0YShGLkQuRmYpLGEuY29weVRvSGl0RGF0YShGLkQuRGYpLGEuY29weVRvSGl0RGF0YShGLkQuRWYpLGEuY29weVRvSGl0RGF0YShGLkQuQ2YpLFUoYSxGLkQud2ksRi5ELkliKSxhLmNvcHlUb0hpdERhdGEoRi5ELlNkKSxhLmNvcHlUb0hpdERhdGEoRi5ELlFkKSxhLmNvcHlUb0hpdERhdGEoRi5ELlJkKSl9O3ZhciByTD1mdW5jdGlvbigpe3ZhciBhPUhjJiZIYy51c2VyQWdlbnR8fCIiO2lmKGEuaW5kZXhPZigiU2FmYXJpIik8MHx8L0Nocm9tZXxDb2FzdHxPcGVyYXxFZGd8U2lsa3xBbmRyb2lkLy50ZXN0KGEpKXJldHVybiExO3ZhciBiPSgvVmVyc2lvblwvKFtcZFwuXSspLy5leGVjKGEpfHxbXSlbMV18fCIiO2lmKGI9PT0iIilyZXR1cm4hMTtmb3IodmFyIGM9WyIxNCIsIjEiLCIxIl0sZD1iLnNwbGl0KCIuIiksZT0wO2U8ZC5sZW5ndGg7ZSsrKXtpZihjW2VdPT09dm9pZCAwKXJldHVybiEwO2lmKGRbZV0hPT1jW2VdKXJldHVybiBOdW1iZXIoZFtlXSk+TnVtYmVyKGNbZV0pfXJldHVybiBkLmxlbmd0aD49Yy5sZW5ndGh9O2Z1bmN0aW9uIHNMKCl7dmFyIGE7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7dmFyIGI7cmV0dXJuISgoYj1hLmZlYXR1cmVQb2xpY3kpPT1udWxsfHwhYi5hbGxvd2VkRmVhdHVyZXMoKS5pbmNsdWRlcygiYXR0cmlidXRpb24tcmVwb3J0aW5nIikpfTt2YXIgdEw9ZnVuY3Rpb24oYSl7WG8oRi5ELm1hKSYmKEEuX2d0bXBjbT09PSEwfHxyTCgpP1UoYSxGLkQuRmUsIjIiKTpzTCgpJiZVKGEsRi5ELkZlLCIxIikpOyhPYygpfHxRYygpKSYmVihhLEguSi5vYiwhMCk7VihhLEguSi5ZZSxRKGEsSC5KLlhlKSYmIVhvKGZwKSk7UShhLEguSi5zYSkmJlUoYSxGLkQuc2EsITApO2EuTS5ldmVudE1ldGFkYXRhW0guSi5hZV0mJlUoYSxGLkQuVm0sITApfTt2YXIgdUw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5QYSk7YS5jb3B5VG9IaXREYXRhKEYuRC5RYSk7YS5jb3B5VG9IaXREYXRhKEYuRC5lYik7UShhLEguSi5vYik/VShhLEYuRC5XaSwid3d3Lmdvb2dsZS5jb20iKTpVKGEsRi5ELldpLCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iKTt2YXIgYj1PKGEuTSxGLkQuV2IpO2IhPT0hMCYmYiE9PSExfHxVKGEsRi5ELldiLGIpfTt2YXIgdkw9ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQuaWRzW2RDWzBdXTtpZihiKXtVKGEsRi5ELnlpLGIpO3ZhciBjPWEudGFyZ2V0Lmlkc1tkQ1sxXV07YyYmVShhLEYuRC5HZCxjKTtPKGEuTSxGLkQuaWgpPT09ITAmJlYoYSxILkoucG4sITApfWVsc2UgYS5pc0Fib3J0ZWQ9ITB9O2Z1bmN0aW9uIHdMKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlPUZwKCksZj1EcChlKTtpZihmLnVybClpZihkKXt2YXIgZz1jKGYudXJsKTtiIT09ZyYmVShhLEYuRC5QZSxnKX1lbHNle3ZhciBoPWYudXJsO2IhPT1oJiZVKGEsRi5ELlBlLGMoaCkpfX07dmFyIHpMPWZ1bmN0aW9uKGEpe2lmKCFRKGEsSC5KLnNhKSl7dmFyIGI9UihhLEYuRC5NZSksYz1PKGEuTSxGLkQuemEpLGQ9YztkfHwoZD1iPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZik7VShhLEYuRC56YSx4TChkKSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VYSxCLnJlZmVycmVyKTtVKGEsRi5ELk1iLHlMKCkpO2EuY29weVRvSGl0RGF0YShGLkQudGIpO3ZhciBlPXFJKCk7VShhLEYuRC5iZCxlLndpZHRoKyJ4IitlLmhlaWdodCk7dmFyIGY9TSg1ODMpJiYhIWM7d0woYSxkLGZ1bmN0aW9uKGcpe3ZhciBoPXhMKGcpO2YmJihoPWguc3BsaXQoIj8iKVswXSk7cmV0dXJuIGh9KX19Owp2YXIgeEw9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbCl7dmFyIGI9U3RyaW5nKGEpLnN1YnN0cmluZygwLDUxMiksYz1iLmluZGV4T2YoIiMiKTtyZXR1cm4gYz09PS0xP2I6Yi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4iIn0seUw9ZnVuY3Rpb24oKXt2YXIgYT1CLnRpdGxlO2lmKGE9PT12b2lkIDB8fGE9PT0iIilyZXR1cm4iIjthPWVuY29kZVVSSUNvbXBvbmVudChhKTtmb3IodmFyIGI9MjU2O2I+MCYmS2ooYS5zdWJzdHJpbmcoMCxiKSk9PT12b2lkIDA7KWItLTtyZXR1cm4gS2ooYS5zdWJzdHJpbmcoMCxiKSl8fCIifTtmdW5jdGlvbiBBTChhKXtWKGEsSC5KLkphLCEwKTtWKGEsSC5KLkViLE5iKCkpO1YoYSxILkoueW4sYS5NLmV2ZW50TWV0YWRhdGFbSC5KLkphXSl9O3ZhciBCTD1mdW5jdGlvbihhKXtNKDQ3KSYmYS5jb3B5VG9IaXREYXRhKEYuRC5raCl9O3ZhciBDTD1mdW5jdGlvbihhKXt2YXIgYj1NKDQ0MyksYz1NKDU3MCk7aWYoKGJ8fGMpJiZYbyhmcCkpe3ZhciBkPVEoYSxILkouWWEpO2lmKGh3KGQpKXt2YXIgZT1RKGEsSC5KLkdhKTtpZihiKXt2YXIgZj1RKGEsSC5KLnpqKXx8VHYoZSk7VShhLEYuRC54YyxmKX1pZihjKXt2YXIgZz1TdihlLHtYaDohMH0pLmlrO2cmJlUoYSwiXyZlY3NpZDIiLGcpfX19fTt2YXIgREw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5RbSk7YiYmVShhLEYuRC5XYyxiKX07dmFyIEVMPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi5fX2dzYUV4cCYmYi5fX2dzYUV4cC5pZCl7dmFyIGM9Yi5fX2dzYUV4cC5pZDtpZih5YihjKSl0cnl7dmFyIGQ9TnVtYmVyKGMoKSk7aXNOYU4oZCl8fFUoYSxGLkQuUGwsZCl9Y2F0Y2goZSl7fX19O3ZhciBGTD1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELk5lKTthLmNvcHlUb0hpdERhdGEoRi5ELkdlKTthLmNvcHlUb0hpdERhdGEoRi5ELlVkKTthLmNvcHlUb0hpdERhdGEoRi5ELkllKTthLmNvcHlUb0hpdERhdGEoRi5ELlRjKTthLmNvcHlUb0hpdERhdGEoRi5ELkxkKX07dmFyIEdMPWZ1bmN0aW9uKGEpe2lmKFhvKEYuRC5tYSkpe2EuY29weVRvSGl0RGF0YShGLkQuZmIpO3ZhciBiPW5tKGptLmJhLlpxKTtpZihiPT09dm9pZCAwKW1tKGptLmJhLmFyLCEwKTtlbHNle3ZhciBjPW5tKGptLmJhLnNqKTtVKGEsRi5ELlpmLGMrIi4iK2IpfX19Owp2YXIgTUw9ZnVuY3Rpb24oYSxiKXtpZihhJiYoemIoYSkmJihhPWJDKGEpKSxhKSl7dmFyIGM9dm9pZCAwLGQ9ITEsZT1PKGIsRi5ELmtxKTtpZihlJiZBcnJheS5pc0FycmF5KGUpKXtjPVtdO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1iQyhlW2ZdKTtnJiYoYy5wdXNoKGcpLChhLmlkPT09Zy5pZHx8YS5pZD09PWEuZGVzdGluYXRpb25JZCYmYS5kZXN0aW5hdGlvbklkPT09Zy5kZXN0aW5hdGlvbklkKSYmKGQ9ITApKX19aWYoIWN8fGQpe3ZhciBoPU8oYixGLkQuWWwpLGw7aWYoaCl7bD1BcnJheS5pc0FycmF5KGgpP2g6W2hdO3ZhciBuPU8oYixGLkQuV2wpLHA9TyhiLEYuRC5YbCkscT1PKGIsRi5ELlpsKSxyPVFvKE8oYixGLkQuanEpKSx0PW58fHAsdT0xO2EucHJlZml4IT09IlVBInx8Y3x8KHU9NSk7Zm9yKHZhciB2PTA7djxsLmxlbmd0aDt2KyspaWYodjx1KWlmKGMpSEwoYyxsW3ZdLHIsYix7b2U6dCxvcHRpb25zOnF9KTtlbHNlIGlmKGEucHJlZml4PT09CiJBVyImJmEuaWRzW2RDWzFdXSl7dmFyIHg9YS5pZHNbZENbMF1dLHk9YS5pZHNbZENbMV1dLHo9bFt2XSxDPWIsRD17b2U6dCxvcHRpb25zOnF9O1AoMjIpO2lmKHope0Q9RHx8e307dmFyIEk9SUwoSkwsRCx4LEMpLEc9e2FrOngsY2w6eX07RC5vZT09PXZvaWQgMCYmKEcuYXV0b3JlcGxhY2U9eik7S0woRyxDKTtJKDIsRC5vZSxHLHosMCxNYigpLEQub3B0aW9ucyl9fWVsc2UgaWYoYS5wcmVmaXg9PT0iVUEiKXt2YXIgTj1hLmRlc3RpbmF0aW9uSWQsUz1sW3ZdLFc9e29lOnR9O1AoMjMpO2lmKFMpe1c9V3x8e307dmFyIGVhPUlMKExMLFcsTiksamE9e307Vy5vZSE9PXZvaWQgMD9qYS5yZWNlaXZlcj1XLm9lOmphLnJlcGxhY2U9UztqYS5nYV93cGlkPU47amEuZGVzdGluYXRpb249UztlYSgyLE1iKCksamEpfX19fX19LEhMPWZ1bmN0aW9uKGEsYixjLGQsZSl7UCgyMSk7aWYoYiYmYyl7ZT1lfHx7fTtmb3IodmFyIGY9e2NvdW50cnlOYW1lQ29kZTpjLGRlc3RpbmF0aW9uTnVtYmVyOmIsCnJldHJpZXZhbFRpbWU6TWIoKX0sZz1hbCg0LGZ1bmN0aW9uKCl7cmV0dXJue319KSxoPTA7aDxhLmxlbmd0aDtoKyspe3ZhciBsPWFbaF07Z1tsLmlkXXx8KGwmJmwucHJlZml4PT09IkFXIiYmIWYuYWREYXRhJiZsLmlkcy5sZW5ndGg+PTI/KGYuYWREYXRhPXthazpsLmlkc1tkQ1swXV0sY2w6bC5pZHNbZENbMV1dfSxLTChmLmFkRGF0YSxkKSxnW2wuaWRdPSEwKTpsJiZsLnByZWZpeD09PSJVQSImJiFmLmdhRGF0YSYmKGYuZ2FEYXRhPXtnYVdwaWQ6bC5kZXN0aW5hdGlvbklkfSxnW2wuaWRdPSEwKSl9KGYuZ2FEYXRhfHxmLmFkRGF0YSkmJklMKE5MLGUsdm9pZCAwLGQpKGUub2UsZixlLm9wdGlvbnMpfX0sS0w9ZnVuY3Rpb24oYSxiKXthLmRtYT0kdCgpO2F1KCkmJihhLmRtYUNwcz1adCgpKTtTdChiKT9hLm5wYT0iMCI6YS5ucGE9IjEifSxJTD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1BO2lmKGVbYS5mdW5jdGlvbk5hbWVdKXJldHVybiBiLnJvJiZiZChiLnJvKSxlW2EuZnVuY3Rpb25OYW1lXTsKdmFyIGY9T0woKTtlW2EuZnVuY3Rpb25OYW1lXT1mO2lmKGEuYWRkaXRpb25hbFF1ZXVlcylmb3IodmFyIGc9MDtnPGEuYWRkaXRpb25hbFF1ZXVlcy5sZW5ndGg7ZysrKWVbYS5hZGRpdGlvbmFsUXVldWVzW2ddXT1lW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV18fE9MKCk7YS5pZEtleSYmZVthLmlkS2V5XT09PXZvaWQgMCYmKGVbYS5pZEtleV09Yyk7Wm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDowLGV2ZW50SWQ6ZD09bnVsbD92b2lkIDA6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZD09bnVsbD92b2lkIDA6ZC5wcmlvcml0eUlkfSxkQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixhLnNjcmlwdFVybCksYi5ybyxiLnR2KTtyZXR1cm4gZn0sT0w9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7YS5xPWEucXx8W107YS5xLnB1c2goYXJndW1lbnRzKX1yZXR1cm4gYX0sSkw9e2Z1bmN0aW9uTmFtZToiX2dvb2dXY21JbXBsIixpZEtleToiX2dvb2dXY21BayIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vd2NtL2xvYWRlci5qcyJ9LApMTD17ZnVuY3Rpb25OYW1lOiJfZ2FQaG9uZUltcGwiLGlkS2V5OiJnYV93cGlkIixzY3JpcHRVcmw6Ind3dy5nc3RhdGljLmNvbS9nYXBob25lL2xvYWRlci5qcyJ9LFBMPXtZbzpMZigyKSxncjoiNSJ9LE5MPXtmdW5jdGlvbk5hbWU6Il9nb29nQ2FsbFRyYWNraW5nSW1wbCIsYWRkaXRpb25hbFF1ZXVlczpbTEwuZnVuY3Rpb25OYW1lLEpMLmZ1bmN0aW9uTmFtZV0sc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vY2FsbC10cmFja2luZy9jYWxsLXRyYWNraW5nXyIrKFBMLllvfHxQTC5ncikrIi5qcyJ9O3ZhciBRTD1mdW5jdGlvbihhKXtRKGEsSC5KLnNhKXx8TUwoYS50YXJnZXQsYS5NKTthLmlzQWJvcnRlZD0hMH07dmFyIFJMPWZ1bmN0aW9uKGEpe1hvKEYuRC5rYSkmJmN4KGEpfTt2YXIgU0w9ZnVuY3Rpb24oYSl7dmFyIGI9WG8oRi5ELmthKT9taigicHNjZGwiKToiZGVuaWVkIjtiIT1udWxsJiZVKGEsRi5ELmpoLGIpfTt2YXIgVEw9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9fTt2YXIgVUw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLk07aWYoYj09PXZvaWQgMD8wOmIpe3ZhciBkPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSk7WWIoZCkmJlUoYSxGLkQuTGksWWIoZCkpfXZhciBlPU9vKGZEKEYuRC5PYSkpLGY9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDEsZSksZz1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EsMiksaD1ZYihuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxUTC5IKSksIi4iKSxsPVliKGcsIi4iKTtoJiZVKGEsRi5ELlhjLGgpO2wmJlUoYSxGLkQuVmMsbCl9O3ZhciBWTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLnRxKTtiJiZVKGEsRi5ELklsLGIpfTtmdW5jdGlvbiBXTChhKXt2YXIgYj1LQighMSk7aWYoYiE9bnVsbCYmYi5zdGF0dXMpe3ZhciBjPXtndGI6Yi5zdGF0dXN9O2IuZGVsYXkmJihjLmd0YmQ9Yi5kZWxheSk7YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLGMpfX07dmFyIFhMPWZ1bmN0aW9uKGEpe3ptKCk9PT0iVVMtQ08iJiZVKGEsRi5ELkxlLDEpfTt2YXIgWUw9e1JhOntDazoxLHpuOjIsSG46MyxJbjo0LEpuOjUsd246Nn19O1lMLlJhW1lMLlJhLkNrXT0iQURPQkVfQ09NTUVSQ0UiO1lMLlJhW1lMLlJhLnpuXT0iU1FVQVJFU1BBQ0UiO1lMLlJhW1lMLlJhLkhuXT0iV09PX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS5Jbl09IldPT19DT01NRVJDRV9MRUdBQ1kiO1lMLlJhW1lMLlJhLkpuXT0iV09SRF9QUkVTUyI7WUwuUmFbWUwuUmEud25dPSJTSE9QSUZZIjtmdW5jdGlvbiBaTChhKXt2YXIgYj1BO3JldHVybiBLaihiLmVzY2FwZShiLmF0b2IoYSkpKX0KZnVuY3Rpb24gJEwoKXt0cnl7aWYoIU0oNDk4KSYmIU0oNDI1KSlyZXR1cm5bXTt2YXIgYT1ubShqbS5iYS5sbik7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYTt2YXIgYj1bXSxjO2E6e3RyeXtjPSEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbZGF0YS1yZXF1aXJlbW9kdWxlXj0ibWFnZS8iXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWM9ITF9YyYmYi5wdXNoKFlMLlJhLkNrKTt2YXIgZDthOnt0cnl7dmFyIGU9WkwoIllYTnpaWFJ6TG5OeGRXRnlaWE53WVdObExtTnZiUzg9Iik7ZD1lPyEhQi5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjXj0iLy8nK2UrJyJdJyk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9ZD0hMX1kJiZiLnB1c2goWUwuUmEuem4pO3ZhciBmO2E6e2lmKE0oNDI1KSl0cnl7dmFyIGc9WkwoImMyaHZjR2xtZVM1amIyMD0iKSxoPVpMKCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSIpO2Y9ZyYmaD8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9ImNkbi4nK2crJyJdLG1ldGFbcHJvcGVydHk9Im9nOmltYWdlIl1bY29udGVudCo9ImNkbi4nKwooZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iY2RuLicpKyhnKyciXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJmb250cy4nKSsoaCsnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iaXRlcmFibGUtc2hvcGlmeSJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9InYuJykrKGcrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWY9ITF9ZiYmYi5wdXNoKFlMLlJhLnduKTt2YXIgbDthOnt0cnl7bD0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9Indvb2NvbW1lcmNlIl0sbGlua1tocmVmKj0id29vY29tbWVyY2UiXSxbY2xhc3N8PSJ3b29jb21tZXJjZSJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9bD0hMX1sJiZiLnB1c2goWUwuUmEuSW4pO3ZhciBuO2E6e3RyeXt2YXIgcCxxPSgocD1CLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6cC5ob3N0bmFtZSl8fCIiLHIsdD0oKHI9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnIub3JpZ2luKXx8CiIiLHU9WkwoIkxuZHZjbVJ3Y21WemN5NWpiMjA9Iiksdj1aTCgiTHk5ekxuY3ViM0puIik7bj11JiZ2P1RiKHEsdSl8fCEhQi5xdWVyeVNlbGVjdG9yKCdbc3JjXj0iJyt0Kycvd3AtY29udGVudCJdLG1ldGFbbmFtZT0iZ2VuZXJhdG9yIl1bY29udGVudF49IldvcmRQcmVzcyAiXSxsaW5rW3JlbD0iZG5zLXByZWZldGNoIl1baHJlZj0iJysodisnIl0nKSk6ITE7YnJlYWsgYX1jYXRjaCh5KXt9bj0hMX1uJiZiLnB1c2goWUwuUmEuSm4pO3ZhciB4O2E6e3RyeXt4PSEhQi5xdWVyeVNlbGVjdG9yKCdbY2xhc3MqPSJ3b29jb21tZXJjZSJdLG1ldGFbbmFtZT0iZ2VuZXJhdG9yIl1bY29udGVudF49Ildvb0NvbW1lcmNlICJdJyk7YnJlYWsgYX1jYXRjaCh5KXt9eD0hMX14JiZiLnB1c2goWUwuUmEuSG4pO1VCKCkmJm1tKGptLmJhLmxuLGIpO3JldHVybiBifWNhdGNoKHkpe31yZXR1cm5bXX07ZnVuY3Rpb24gd00oYSl7aWYoTSg0MjUpJiZRKGEsSC5KLkZjKSl7dmFyIGI9TmYoNjcsMTUwMCksYz1hLm1lcmdlSGl0RGF0YUZvcktleSxkPUYuRC5UYSxlPXt9O2MuY2FsbChhLGQsZSl9fTt2YXIgeE09InBsYXRmb3JtIHBsYXRmb3JtVmVyc2lvbiBhcmNoaXRlY3R1cmUgbW9kZWwgdWFGdWxsVmVyc2lvbiBiaXRuZXNzIGZ1bGxWZXJzaW9uTGlzdCB3b3c2NCIuc3BsaXQoIiAiKTtmdW5jdGlvbiB5TShhKXt2YXIgYjtyZXR1cm4oYj1hLmdvb2dsZV90YWdfZGF0YSkhPW51bGw/YjphLmdvb2dsZV90YWdfZGF0YT17fX1mdW5jdGlvbiB6TShhKXt2YXIgYixjO3JldHVybihjPShiPWEuZ29vZ2xlX3RhZ19kYXRhKT09bnVsbD92b2lkIDA6Yi51YWNoX3Byb21pc2UpIT1udWxsP2M6bnVsbH1mdW5jdGlvbiBBTShhKXt2YXIgYixjO3JldHVybiB0eXBlb2YoKGI9YS5uYXZpZ2F0b3IpPT1udWxsP3ZvaWQgMDooYz1iLnVzZXJBZ2VudERhdGEpPT1udWxsP3ZvaWQgMDpjLmdldEhpZ2hFbnRyb3B5VmFsdWVzKT09PSJmdW5jdGlvbiJ9CmZ1bmN0aW9uIEJNKGEpe2lmKCFBTShhKSlyZXR1cm4gbnVsbDt2YXIgYj15TShhKTtpZihiLnVhY2hfcHJvbWlzZSlyZXR1cm4gYi51YWNoX3Byb21pc2U7dmFyIGM9YS5uYXZpZ2F0b3IudXNlckFnZW50RGF0YS5nZXRIaWdoRW50cm9weVZhbHVlcyh4TSkudGhlbihmdW5jdGlvbihkKXtiLnVhY2ghPW51bGx8fChiLnVhY2g9ZCk7cmV0dXJuIGR9KTtyZXR1cm4gYi51YWNoX3Byb21pc2U9Y307CnZhciBDTT1mdW5jdGlvbigpe3RoaXMud2luZG93PUE7dGhpcy5OPU5ifTtDTS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe2lmKEFNKHRoaXMud2luZG93KSYmKHRoaXMuWj10aGlzLk4oKSwhek0odGhpcy53aW5kb3cpKSl7dmFyIGE9Qk0odGhpcy53aW5kb3cpO2EmJmEudGhlbihmdW5jdGlvbigpe1AoOTUpfSkuY2F0Y2goZnVuY3Rpb24oKXtQKDk2KX0pfX07Q00ucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLndpbmRvdy5nb29nbGVfdGFnX2RhdGEsYjtpZihhIT1udWxsJiZhLnVhY2gpe3ZhciBjPWEudWFjaCxkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7Yy5mdWxsVmVyc2lvbkxpc3QmJihkLmZ1bGxWZXJzaW9uTGlzdD1jLmZ1bGxWZXJzaW9uTGlzdC5zbGljZSgwKSk7Yj1kfWVsc2UgYj1udWxsO3JldHVybiBifTtDTS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPXRoaXMsZD1mdW5jdGlvbihoLGwpe3RyeXthKGgsbCl9Y2F0Y2gobil7fX0sCmU9dGhpcy5IKCk7aWYoZSlkKGUpO2Vsc2V7dmFyIGY9ek0odGhpcy53aW5kb3cpO2lmKGYpe2I9TWF0aC5taW4oTWF0aC5tYXgoaXNGaW5pdGUoYik/YjowLDApLDFFMyk7dmFyIGc9dGhpcy53aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2QuS2d8fChkLktnPSEwLFAoMTA2KSxkKG51bGwsRXJyb3IoIlRpbWVvdXQiKSkpfSxiKTtmLnRoZW4oZnVuY3Rpb24oaCl7ZC5LZ3x8KGQuS2c9ITAsUCgxMDQpLGMud2luZG93LmNsZWFyVGltZW91dChnKSxkKGgpKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA1KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChudWxsLGgpKX0pfWVsc2UgZChudWxsKX19O0NNLnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWiE9PXZvaWQgMH07dmFyIERNPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwP0E6YTtyZXR1cm4gQU0oYSl9LEVNPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2JbRi5ELmNnXT1hLmFyY2hpdGVjdHVyZTsKYltGLkQuZGddPWEuYml0bmVzczthLmZ1bGxWZXJzaW9uTGlzdCYmKGJbRi5ELmVnXT1hLmZ1bGxWZXJzaW9uTGlzdC5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChjLmJyYW5kfHwiIikrIjsiK2VuY29kZVVSSUNvbXBvbmVudChjLnZlcnNpb258fCIiKX0pLmpvaW4oInwiKSk7YltGLkQuZmddPWEubW9iaWxlPyIxIjoiMCI7YltGLkQuZ2ddPWEubW9kZWw7YltGLkQuaGddPWEucGxhdGZvcm07YltGLkQuaWddPWEucGxhdGZvcm1WZXJzaW9uO2JbRi5ELmpnXT1hLndvdzY0PyIxIjoiMCI7cmV0dXJuIGJ9LEZNPW5ldyBDTTt2YXIgR009ZnVuY3Rpb24oYSl7aWYoIURNKCkpUCg4Nyk7ZWxzZSBpZihGTS5LKCkpe1AoODUpO3ZhciBiPUZNLkgoKTtpZihiKXtpZihiKWZvcih2YXIgYz1FTShiKSxkPW0oT2JqZWN0LmtleXMoYykpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO1UoYSxmLGNbZl0pfX1lbHNlIFAoODYpfX07ZnVuY3Rpb24gSE0oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1RKGEsSC5KLnNnKSxkPWRJKGEsImN1c3RvbV9ldmVudF9hY2NlcHRfcnVsZXMiLCExKSYmIWI7aWYoYyl7dmFyIGU9Yy5pbmRleE9mKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpPj0wLGY9ITA7UShhLEguSi5DYykmJihmPVEoYSxILkouTmIpPT09dmsoKSk7ZSYmZj9WKGEsSC5KLmtpLCEwKTooVihhLEguSi5raSwhMSksZHx8KGEuaXNBYm9ydGVkPSEwKSk7aWYoYS5jYW5CZUFjY2VwdGVkKCkpe3ZhciBnPXVrKCkuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxoPSExO2lmKCFnKXt2YXIgbCxuPShsPW5rKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6bC5jYW5vbmljYWxDb250YWluZXJJZDtuJiYoaD12aygpPT09bil9Z3x8aD9RKGEsSC5KLmtpKSYmYS5hY2NlcHQoKTphLmlzQWJvcnRlZD0hMH1lbHNlIGEuaXNBYm9ydGVkPSEwfX07dmFyIElNPWZ1bmN0aW9uKGEpe3ZhciBiPU8oYS5NLEYuRC5aYyksYz1PKGEuTSxGLkQuWWMpO2ImJiFjPyhhLmV2ZW50TmFtZSE9PUYuRC53YSYmYS5ldmVudE5hbWUhPT1GLkQueWYmJlAoMTMxKSxhLmlzQWJvcnRlZD0hMCk6IWImJmMmJihQKDEzMiksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgSk09ZnVuY3Rpb24oYSl7aWYoYS5ldmVudE5hbWU9PT1GLkQud2Epe3ZhciBiPUlmKDExKSxjPVEoYSxILkouSHEpOyEoIU0oNTUwKSYmYnx8Yyl8fGEudGFyZ2V0LkpjKCl8fFlHKCJpZGNfY29uZmlnX3B2IixhLnRhcmdldC5kZXN0aW5hdGlvbklkKXx8KGEuaXNBYm9ydGVkPSEwKX19O3ZhciBMTT1mdW5jdGlvbihhLGIpe0tNLk4oYSxiKX0sTU09ZnVuY3Rpb24oKXt0aGlzLkg9e319O01NLnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdO2N8fChjPXRoaXMuSFthXT1bXSk7Yy5wdXNoKGIpfTtNTS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLkhbYS50YXJnZXQuZGVzdGluYXRpb25JZF07aWYoIWEuaXNBYm9ydGVkJiZiKWZvcih2YXIgYz1mSShhKSxkPTA7ZDxiLmxlbmd0aDsrK2Qpe3RyeXtiW2RdKGMpfWNhdGNoKGUpe2EuaXNBYm9ydGVkPSEwfWlmKGEuaXNBYm9ydGVkKWJyZWFrfX07dmFyIEtNPW5ldyBNTTt2YXIgTk09ZnVuY3Rpb24oYSl7S00uSyhhKTt9O3ZhciBPTT1mdW5jdGlvbihhKXthJiYoQXAoNDk1LGEpLEFwKDU2NyxhKSxBcCg0NTAsYSksQXAoNDQzLGEpLEFwKDU4NyxhKSxBcCg1NzYsYSksQXAoNTcwLGEpLEFwKDU4MSxhKSxBcCg2MDIsYSkpfSxQTT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLndmKSYmWG8oZnApKXt2YXIgYj1RKGEsSC5KLkdhKSxjPVEoYSxILkouZGEpIT09WC5WLnViJiZRKGEsSC5KLmRhKSE9PVguVi5PYiYmUShhLEguSi5kYSkhPT1YLlYuRmImJmEuZXZlbnROYW1lIT09Ri5ELkpiO0h2KGIsYyk7dmFyIGQ9RHZbR3YoYi5wcmVmaXgpXTtPTShkKTtVKGEsRi5ELkVkLGQpfX07ZnVuY3Rpb24gUU0oKXtyZXR1cm4ga2ooImRlZHVwZV9nY2xpZCIsZnVuY3Rpb24oKXtyZXR1cm4gQXYoKX0pfTt2YXIgUk09L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9dD8pPyQvLFNNPS9ed3d3Lmdvb2dsZWFkc2VydmljZXMuY29tJC87ZnVuY3Rpb24gVE0oYSl7YXx8KGE9VU0oKSk7cmV0dXJuIGEuTnQ/ITE6YS5uc3x8YS5xc3x8YS52c3x8YS5yc3x8YS5EZ3x8YS5UaHx8YS5Ucnx8YS5WaD09PSJhdy5kcyJ8fE0oMjM1KSYmYS5WaD09PSJhdy5kdiJ8fGEuWXI/ITA6ITF9CmZ1bmN0aW9uIFVNKCl7dmFyIGE9e30sYj1VcSghMCk7YS5OdD0hIWIuX3VwO3ZhciBjPWVzKCksZD1hdCgpO2EubnM9Yy5hdyE9PXZvaWQgMDthLnFzPWMuZGMhPT12b2lkIDA7YS52cz1jLndicmFpZCE9PXZvaWQgMDthLnJzPWMuZ2JyYWlkIT09dm9pZCAwO2EuVmg9dHlwZW9mIGMuZ2Nsc3JjPT09InN0cmluZyI/Yy5nY2xzcmM6dm9pZCAwO2EuRGc9ZC5EZzthLlRoPWQuVGg7dmFyIGU9Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiO2EuWXI9Uk0udGVzdChlKTthLlRyPVNNLnRlc3QoZSk7cmV0dXJuIGF9O2Z1bmN0aW9uIFZNKCl7dmFyIGE9QS5fX3VzcGFwaTtpZih5YihhKSl7dmFyIGI9IiI7dHJ5e2EoImdldFVTUERhdGEiLDEsZnVuY3Rpb24oYyxkKXtpZihkJiZjKXt2YXIgZT1jLnVzcFN0cmluZztlJiZSZWdFeHAoIl5bXFxkYS16QS1aLV17MSwyMH0kIikudGVzdChlKSYmKGI9ZSl9fSl9Y2F0Y2goYyl7fXJldHVybiBifX07CnZhciBXTT1mdW5jdGlvbihhKXt2YXIgYj1YbyhmcCk7VihhLEguSi5ZZSxPKGEuTSxGLkQubWIpIT1udWxsJiZPKGEuTSxGLkQubWIpIT09ITEmJiFiKTt2YXIgYz1RKGEsSC5KLmRqKSxkPU8oYS5NLEYuRC51YykhPT0hMSxlPUxLKGEpO2R8fFUoYSxGLkQuSGQsIjEiKTt2YXIgZj1IcihlLnByZWZpeCksZz1RKGEsSC5KLnNhKXx8UShhLEguSi51Zyl8fFEoYSxILkouV2UpO2N8fGd8fFUoYSwiXyZhcHZjIiwiMCIpO2EuTS5pc0d0bUV2ZW50JiZVKGEsRi5ELklsLCJnIik7VShhLEYuRC5FZCk7VShhLEYuRC5NYik7aWYoYiYmKFUoYSxGLkQuTWIseUwoKSksZCkpe0h2KGUpO3ZhciBoPUR2W0d2KGUucHJlZml4KV07VShhLEYuRC5FZCxoKTtPTShoKX1pZihhLmV2ZW50TmFtZT09PUYuRC53YSYmIWcpe3ZhciBsPU8oYS5NLEYuRC56Yyksbj1PKGEuTSxGLkQuRGIpfHx7fTtQSyh7VG46ZCxtbzpuLFFvOmwsVW46ZX0pOyFjJiZZcyhmKSYmKFYoYSxILkoudmQsITApLFUoYSwiXyZhcHZjIiwKIjEiKSl9aWYoYylhLmlzQWJvcnRlZD0hMDtlbHNle2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQmJlUoYSxGLkQuUWUsYS50YXJnZXQuZGVzdGluYXRpb25JZCk7VShhLEYuRC5VYixhLmV2ZW50TmFtZSk7YS5ldmVudE5hbWU9PT1GLkQud2EmJlUoYSxGLkQuVWIsRi5ELnNjKTtpZihRKGEsSC5KLnNhKSlVKGEsRi5ELlViLEYuRC53cCksVShhLEYuRC5zYSwiMSIpO2Vsc2UgaWYoUShhLEguSi51ZykpVShhLEYuRC5VYixGLkQuSHApO2Vsc2UgaWYoUShhLEguSi5XZSkpVShhLEYuRC5VYixGLkQuRXApO2Vsc2V7dmFyIHA9ZXMoKTtVKGEsRi5ELkRkLHAuZ2NsaWQpO1UoYSxGLkQuS2QscC5kY2xpZCk7VShhLEYuRC5BbCxwLmdjbHNyYyk7aWYoIVIoYSxGLkQuRGQpJiYhUihhLEYuRC5LZCl8fE0oNDIxKSlVKGEsRi5ELkVlLHAud2JyYWlkKSxVKGEsRi5ELkJmLHAuZ2JyYWlkKTt2YXIgcT1NKDU4OSkscj1mdW5jdGlvbihmYSl7cmV0dXJuIGZhLnJlcGxhY2UoL1tcPyNdLiokLywiIil9LAp0PSEhTyhhLk0sRi5ELnphKSx1PXE/dD9mdW5jdGlvbihmYSl7cmV0dXJuIHhMKHIoZmEpKX06ZnVuY3Rpb24oZmEpe3JldHVybiB4TChmYS5yZXBsYWNlKC8jLiokLywiIikpfTpyLHY9YnQodSk7VShhLEYuRC56YSx2KTt2YXIgeD0hIU8oYS5NLEYuRC5VYSkseT1CLnJlZmVycmVyO1UoYSxGLkQuVWEscT94P3IoeSk6eS5yZXBsYWNlKC8jLiokLywiIik6Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiKTt3TChhLHYsdSwhMCk7aWYoS2Mpe3ZhciB6PUxqKFJqKEtjKSwiaG9zdCIpO3omJlUoYSxGLkQuYm0seil9aWYoIVEoYSxILkouV2UpKXt2YXIgQz1hdCgpO1UoYSxGLkQuemYsQy5EZyk7VShhLEYuRC5BZixDLlNyKX12YXIgRD1VTSgpO1RNKEQpJiZVKGEsRi5ELlBkLCIxIik7VShhLEYuRC5EbCxRTSgpKTtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELlFsLCIxIil9d28uSD0hMDtVKGEsRi5ELlNiKTtVKGEsRi5ELmxiKTtpZihNKDQyMSkpe3ZhciBJPUZyKGUpOwpJLmxlbmd0aD4wJiZVKGEsRi5ELlNiLEkuam9pbigiLiIpKTt2YXIgRz1EcihmKyJfYXciKTtHLmxlbmd0aD4wJiZVKGEsRi5ELmxiLEcuam9pbigiLiIpKX1lbHNlIGlmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpJiZXcyhmKSl7dmFyIE49RnIoZSk7Ti5sZW5ndGg+MCYmVShhLEYuRC5TYixOLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5FZSkmJmIpe3ZhciBTPURyKGYrIl9hdyIpO1MubGVuZ3RoPjAmJlUoYSxGLkQubGIsUy5qb2luKCIuIikpfVUoYSxGLkQuVWwscWQoKSk7YS5NLmlzR3RtRXZlbnQmJihhLk0uRWFbRi5ELlJjXT1mRChGLkQuUmMpKTtTdChhLk0pP1UoYSxGLkQuZGUsITEpOlUoYSxGLkQuZGUsITApO1YoYSxILkouQmssITApO3ZhciBXPVZNKCk7VyE9PXZvaWQgMCYmVShhLEYuRC5rZyxXfHwiZXJyb3IiKTt2YXIgZWE9THQoKTtlYSYmVShhLEYuRC5LZSxlYSk7dmFyIGphPUt0KCk7amEmJlUoYSxGLkQuT2UsamEpO1EoYSxILkouUGMpfHxWKGEsSC5KLkphLAohMSl9fTsKdmFyIFhNPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITA6YjtjPWM9PT12b2lkIDA/e306YztpZihhLmV2ZW50TmFtZT09PUYuRC5KYiYmIWEuTS5pc0d0bUV2ZW50KXt2YXIgZD1PKGEuTSxGLkQuU2YpO2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIiYmIVEoYSxILkouc2EpKXt2YXIgZT1TdHJpbmcoTyhhLk0sRi5ELlRmKSksZj1lO2NbZV0mJihmPWNbZV0pO3ZhciBnPVIoYSxmKXx8TyhhLk0sZSk7aWYoYil7aWYodHlwZW9mIGQ9PT0iZnVuY3Rpb24iKWlmKGU9PT1GLkQubGImJmchPT12b2lkIDApe3ZhciBoPWcuc3BsaXQoIi4iKTtoLmxlbmd0aD09PTA/ZCh2b2lkIDApOmgubGVuZ3RoPT09MT9kKGhbMF0pOmQoaCl9ZWxzZSBpZihlPT09Ri5ELnFxJiZNKDI1OCkpe3ZhciBsLG49e307WG8oZnApJiYobi5hdWlkPVIoYSxGLkQuRWQpKTt2YXIgcD1VTSgpO2lmKFRNKHApKW4uZ2FkX3NvdXJjZT1wLkRnLG4uZ2FkX2NhbXBhaWduaWQ9cC5UaCxuLnNlc3Npb25fc3RhcnRfdGltZV91c2VjPQooRGF0ZS5ub3coKSoxRTMpLnRvU3RyaW5nKCksbi5sYW5kaW5nX3BhZ2VfdXJsPUEubG9jYXRpb24uaHJlZixuLmxhbmRpbmdfcGFnZV9yZWZlcnJlcj1CLnJlZmVycmVyLG4ubGFuZGluZ19wYWdlX3VzZXJfYWdlbnQ9SGMudXNlckFnZW50O2Vsc2V7dmFyIHE9UShhLEguSi5HYSk7bi5nYWRfc291cmNlPVJzKHEucHJlZml4KS5FZ31sPWJ0b2EoSlNPTi5zdHJpbmdpZnkobikpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIik7ZChsKX1lbHNlIGQoZyl9ZWxzZSBkKGcpfWEuaXNBYm9ydGVkPSEwfX07dmFyIFlNPWZ1bmN0aW9uKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe2Zvcih2YXIgYj1bIl8mYXB2YyIsInRpZHMiLEYuRC5UYSxGLkQuUWksRi5ELlViLEYuRC5RZSxGLkQuVmMsRi5ELlhjXSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2lmKGU9PT1GLkQuemEpe3ZhciBmPVIoYSxlKTtmJiYoZj1mLnJlcGxhY2UoL1tcPyNdLiokLywiIikpO1UoYSxlLGYpfWVsc2UgYi5pbmNsdWRlcyhlKXx8VShhLGUpfVYoYSxILkouWGcpO1YoYSxILkouaGQpfX07ZnVuY3Rpb24gWk0oYSl7aWYoZm4uSylpZih3by5IPSEwLGEuZXZlbnROYW1lPT09Ri5ELndhKXpvKGEuTSxhLnRhcmdldC5pZCk7ZWxzZXtRKGEsSC5KLlBjKXx8KHdvLktbYS50YXJnZXQuaWRdPSEwKTt2YXIgYj1RKGEsSC5KLk5iKTtaQihiKX19O3ZhciAkTT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPWI9PT12b2lkIDA/e306YjtjPWYuU2o9PT12b2lkIDA/ITE6Zi5TajtkPWYuTWo9PT12b2lkIDA/ITE6Zi5NajtlPWYua289PT12b2lkIDA/ITE6Zi5rbztkfHwoYS5NLmlzR3RtRXZlbnQ/UShhLEguSi5kYSkhPT1YLlYueGEmJmEuZXZlbnROYW1lJiZVKGEsRi5ELlViLGEuZXZlbnROYW1lKTpVKGEsRi5ELlViLGEuZXZlbnROYW1lKSk7R2IoYS5NLkVhLGZ1bmN0aW9uKGcsaCl7TXpbZ118fGMmJkJvW2ddfHxlJiZPeltnXXx8VShhLGcsaCl9KX07dmFyIGFOPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1tKFtGLkQuUGEsRi5ELlFhLEYuRC5lYixGLkQuTmUsRi5ELkdlLEYuRC5VZCxGLkQuSWUsRi5ELlRjLEYuRC5MZCxGLkQua2gsRi5ELkZmLEYuRC5EZixGLkQuRWYsRi5ELkNmLEYuRC53aSxGLkQuU2QsRi5ELlFkLEYuRC5SZCxGLkQudGJdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhLmNvcHlUb0hpdERhdGEoYy52YWx1ZSl9O2Z1bmN0aW9uIGJOKGEsYil7cmV0dXJuIGtyKCJnc2lkX2RjIix7dmFsdWU6e2pvaW5JZDphLGxhc3RKb2luZWRUaW1lTXM6Yn0sZXhwaXJlczpiKzNFNX0pPT09MD8hMDohMX07CnZhciBjTj1mdW5jdGlvbihhKXtpZihYbyhmcCkpe3ZhciBiO2E6e3ZhciBjPW5yKCJnc2lkX2RjIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7aWYoZC52YWx1ZSYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGU9ZC52YWx1ZTtpZihlLmpvaW5JZCYmZS5sYXN0Sm9pbmVkVGltZU1zJiZ0eXBlb2YgZS5qb2luSWQ9PT0ic3RyaW5nIiYmdHlwZW9mIGUubGFzdEpvaW5lZFRpbWVNcz09PSJudW1iZXIiKXtiPWU7YnJlYWsgYX19fWI9dm9pZCAwfXZhciBmPWIsZz1mPT1udWxsP3ZvaWQgMDpmLmpvaW5JZCxoPU5iKCk7aWYoIWZ8fCFnfHxmLmxhc3RKb2luZWRUaW1lTXM8aC0zRTUpe3ZhciBsPWNjKCk7Zz1sJiZiTihsLE5iKCkpP2w6dm9pZCAwO2cmJlYoYSxILkouaGQsITApfWVsc2UgZyYmZi5sYXN0Sm9pbmVkVGltZU1zPGgtNkU0JiZiTihmLmpvaW5JZCxoKSYmVihhLEguSi5oZCwhMCk7ZyYmTSg0NzQpJiYKVihhLEguSi5YZyxnKX19O3ZhciBkTj1mdW5jdGlvbihhKXtWKGEsSC5KLndmLE8oYS5NLEYuRC51YykhPT0hMSk7VihhLEguSi5HYSxMSyhhKSk7VihhLEguSi5YZSxPKGEuTSxGLkQubWIpIT1udWxsJiZPKGEuTSxGLkQubWIpIT09ITEpO1YoYSxILkoud2QsU3QoYS5NKSl9O3ZhciBlTj17enE6e1V0OiJjZCIsZnA6ImNlIixWdDoiY2YiLFd0OiJjcGYiLFh0OiJjdSJ9fTt2YXIgZk49ZnVuY3Rpb24oYSl7dmFyIGI9ZU4uenEuZnAsYz1PKGEuTSxGLkQuQ2IpO1IoYSxGLkQuZWQpfHxVKGEsRi5ELmVkLHt9KTtSKGEsRi5ELmVkKVtiXT1jfTtmdW5jdGlvbiBnTihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSk7YyYmKFUoYSxGLkQuVmYsYyksYiYmdWIoKSl9O3ZhciBoTj1mdW5jdGlvbihhKXt2YXIgYj1hLk0uZ2V0TWVyZ2VkVmFsdWVzKEYuRC5UYSk7YiYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLGIpfTt2YXIgaU49ZnVuY3Rpb24oYSl7dmFyIGI9T3AoITEpO1UoYSxGLkQuTWUsYil9O3ZhciBqTj1mdW5jdGlvbihhKXtRKGEsSC5KLndkKT9VKGEsRi5ELmRlLCIwIik6VShhLEYuRC5kZSwiMSIpfTt2YXIga049ZnVuY3Rpb24oYSxiKXtpZihiPT09dm9pZCAwfHxiKXt2YXIgYz1WTSgpO2MhPT12b2lkIDAmJlUoYSxGLkQua2csY3x8ImVycm9yIil9dmFyIGQ9THQoKTtkJiZVKGEsRi5ELktlLGQpO3ZhciBlPUt0KCk7ZSYmVShhLEYuRC5PZSxlKX07dmFyIGxOPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLmtqKSxjPUUoNSk7YiYmYltjXSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtyZXRyeToiMSJ9KX07dmFyIG1OPWZ1bmN0aW9uKGEpe1VxKCExKS5fdXA9PT0iMSImJlUoYSxGLkQuS2ksIjEiKX07CnZhciBuTj1mdW5jdGlvbihhLGIsYyl7aWYoYSE9PXZvaWQgMClyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLm1hcChmdW5jdGlvbigpe3JldHVybnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSk6e21vZGU6Im0iLGxvY2F0aW9uOmIsc2VsZWN0b3I6Y319LG9OPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFjKXJldHVybiExO2Zvcih2YXIgZT1TdHJpbmcoYy52YWx1ZSksZixnPXZvaWQgMCxoPWUucmVwbGFjZSgvXFsiPyc/L2csIi4iKS5yZXBsYWNlKC8iPyc/XF0vZywiIikuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIHUudHJpbSgpfSkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1JiYhU2IodSwiIyIpJiYhU2IodSwiLiIpfSksbD0wO2w8aC5sZW5ndGg7bCsrKXt2YXIgbj1oW2xdO2lmKFNiKG4sImRhdGFMYXllci4iKSlmPXVBKG4uc3Vic3RyaW5nKDEwKSksZz1uTihmLCJkIixuKTtlbHNle3ZhciBwPW4uc3BsaXQoIi4iKTtmPUFbcC5zaGlmdCgpXTsKZm9yKHZhciBxPTA7cTxwLmxlbmd0aDtxKyspZj1mJiZmW3BbcV1dO2c9bk4oZiwiaiIsbil9aWYoZiE9PXZvaWQgMClicmVha31pZihmPT09dm9pZCAwKXRyeXt2YXIgcj1CLnF1ZXJ5U2VsZWN0b3JBbGwoZSk7aWYociYmci5sZW5ndGg+MCl7Zj1bXTtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoJiZ0PChiPT09ImVtYWlsInx8Yj09PSJwaG9uZV9udW1iZXIiPzU6MSk7dCsrKWYucHVzaChmZChyW3RdKXx8TGIoclt0XS52YWx1ZSkpO2Y9Zi5sZW5ndGg9PT0xP2ZbMF06ZjtnPW5OKGYsImMiLGUpfX1jYXRjaCh1KXtQKDE0OSl9cmV0dXJuIGY/KGFbYl09ZixkJiZnJiYoZFtiXT1nKSwhMCk6ITF9Owp2YXIgcE49ZnVuY3Rpb24oYSl7aWYoZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSkmJlhvKGZwKSl7dmFyIGI9YS5NLmliW0YuRC5sbV07aWYoQ2QoYikmJmIuZW5hYmxlX2NvZGUpe3ZhciBjPU8oYS5NLEYuRC5BYyk7aWYoYz09PW51bGwpVihhLEguSi5HbixudWxsKTtlbHNlIGlmKGIuZW5hYmxlX2NvZGUmJkNkKGMpJiYoWnYoYyksVihhLEguSi5HbixjKSksQ2QoYi5zZWxlY3RvcnMpKXt2YXIgZD1ILkouaXIsZTt2YXIgZj1iLnNlbGVjdG9ycyxnPU0oNTIzKTtnPWc9PT12b2lkIDA/ITE6ZztpZihmKXt2YXIgaD17fSxsPSExLG49e307bD1vTihoLCJlbWFpbCIsZi5lbWFpbCxuKXx8bDtsPW9OKGgsInBob25lX251bWJlciIsZi5waG9uZSxuKXx8bDtoLmFkZHJlc3M9W107Zm9yKHZhciBwPWYubmFtZV9hbmRfYWRkcmVzc3x8W10scT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj17fSx0PXt9O2w9b04ociwiZmlyc3RfbmFtZSIscFtxXS5maXJzdF9uYW1lLHQpfHxsO2w9b04ociwKImxhc3RfbmFtZSIscFtxXS5sYXN0X25hbWUsdCl8fGw7bD1vTihyLCJzdHJlZXQiLHBbcV0uc3RyZWV0LHQpfHxsO2w9b04ociwiY2l0eSIscFtxXS5jaXR5LHQpfHxsO2w9b04ociwicmVnaW9uIixwW3FdLnJlZ2lvbix0KXx8bDtsPW9OKHIsImNvdW50cnkiLHBbcV0uY291bnRyeSx0KXx8bDtsPW9OKHIsInBvc3RhbF9jb2RlIixwW3FdLnBvc3RhbF9jb2RlLHQpfHxsO2guYWRkcmVzcy5wdXNoKHIpO2cmJihyLl90YWdfbWV0YWRhdGE9dCl9ZyYmKGguX3RhZ19tZXRhZGF0YT1uKTtlPWw/aDp2b2lkIDB9ZWxzZSBlPXZvaWQgMDtWKGEsZCxlKX19fX07CnZhciBxTj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihlKXtVTChlLCEwKX0sYz1mdW5jdGlvbihlKXtwTihlKX0sZD1mdW5jdGlvbihlKXskTShlLHtTajohMCxNajohMH0pfTtzd2l0Y2goYSl7Y2FzZSBYLlYuUWs6cmV0dXJuW1BGLEFMLE1GLEhNLEpNLElNXTtjYXNlIFguVi5LYTpyZXR1cm5bZk4sWEwsWk0saU4sY04sV00sZCxTSyxhTixHTCxiLHdNLGxOLGhOLFZMLG9MLE5NLGZ1bmN0aW9uKGUpe2dOKGUsITEpfSxXTCxZTSxwTF07Y2FzZSBYLlYuTWs6cmV0dXJuW1pNLFFMXTtjYXNlIFguVi54YTpyZXR1cm5bVUssWEwsWk0sZE4sdkwsdEwsJE0sU0ssaU4sVkwsekwsR0wsYixxTCxGTCxCTCxFTCx1TCxqTixvTCxrTixtTixMRixjLGZOLFNMLGxOLGhOLFBNLFhNLEdNLE5NLFRLLERMLFFLLFJMLGdOLFdMLHBMXTtjYXNlIFguVi51YjpyZXR1cm5bWEwsWk0sZE4sdkwsJE0sU0ssaU4sekwsR0wsYixWTCxxTCxFTCx1TCxqTixvTCxrTixMRixTTCxmTixsTixoTixQTSxHTSwKTk0sVEssZ04sV0wscExdO2Nhc2UgWC5WLk9iOnJldHVybltYTCxaTSxkTix2TCxTSyxHTCxiLGpOLG9MLGlOLExGLGMsU0wsZk4sbE4saE4sVkwsUE0sR00sTk0sVEssZ04sV0wscExdO2Nhc2UgWC5WLkZiOnJldHVybltYTCxaTSxkTix2TCxTSyxHTCxiLGpOLG9MLGlOLFZMLExGLGMsU0wsZk4sbE4saE4sUE0sR00sTk0sVEssQ0wsZ04sV0wscExdO2RlZmF1bHQ6cmV0dXJuW119fSxyTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9cU4oUShhLEguSi5kYSkpLGM9MDtjPGIubGVuZ3RoJiYoYltjXShhKSwhYS5pc0Fib3J0ZWQpO2MrKyk7fSxzTj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgYUkoYi50YXJnZXQsYi5ldmVudE5hbWUsYi5NKSxkPW0oZXUoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO1UoYyxmLFIoYixmKSl9Zm9yKHZhciBnPW0oT2JqZWN0LmtleXMoYi5tZXRhZGF0YSkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD0KaC52YWx1ZTtWKGMsbCxRKGIsbCkpfVYoYyxILkouZGEsYSk7cmV0dXJuIGN9LHROPWZ1bmN0aW9uKGEsYixjLGQpe2Z1bmN0aW9uIGUodSx2KXtmb3IodmFyIHg9bShsKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6LmlzQWJvcnRlZD0hMTtWKHosSC5KLkphLCEwKTtWKHosSC5KLnNhLCEwKTtWKHosSC5KLkViLE5iKCkpO1YoeixILkoudWYsdSk7Vih6LEguSi52Zix2KX19ZnVuY3Rpb24gZih1KXtmb3IodmFyIHY9e30seD0wO3g8bC5sZW5ndGg7dj17VmE6dm9pZCAwfSx4KyspaWYodi5WYT1sW3hdLCF1fHx1KFEodi5WYSxILkouZGEpKSlpZighUSh2LlZhLEguSi5zYSl8fFEodi5WYSxILkouZGEpIT09WC5WLkthfHxRKHYuVmEsSC5KLnZkKSlpZighUSh2LlZhLEguSi5zYSl8fFEodi5WYSxILkouZGEpPT09WC5WLkthfHxYbyhyKSlyTihsW3hdKSxRKHYuVmEsSC5KLkphKXx8di5WYS5pc0Fib3J0ZWR8fFEodi5WYSxILkouZGEpIT09WC5WLkthfHwKIVEodi5WYSxILkoudmQpfHwoTUsodi5WYSxmdW5jdGlvbigpe2YoZnVuY3Rpb24oeSl7cmV0dXJuIHk9PT1YLlYuS2F9KX0pLFIodi5WYSxGLkQuWmYpPT09dm9pZCAwJiZ0PT09dm9pZCAwJiYodD1wbShqbS5iYS5zaixmdW5jdGlvbih5KXtyZXR1cm4gZnVuY3Rpb24oKXtxbShqbS5iYS5zaix0KTt0PXZvaWQgMDtYbyhGLkQubWEpJiYoVih5LlZhLEguSi51ZywhMCksVih5LlZhLEguSi5zYSwhMSksVSh5LlZhLEYuRC5zYSksZihmdW5jdGlvbih6KXtyZXR1cm4gej09PVguVi5LYX0pLFYoeS5WYSxILkoudWcsITEpKX19KHYpKSkpfXZhciBnPWQuaXNHdG1FdmVudCYmYT09PSIiP3tpZDoiIixwcmVmaXg6IiIsZGVzdGluYXRpb25JZDoiIixpZHM6W10sSmM6ZnVuY3Rpb24oKXtyZXR1cm4hMX19OmJDKGEsZC5pc0d0bUV2ZW50KTtpZihnKXt2YXIgaD1uZXcgYUkoZyxiLGQpO1YoaCxILkouZGEsWC5WLlFrKTtyTihoKTtpZighaC5pc0Fib3J0ZWQpe3ZhciBsPVtdO2lmKGQuZXZlbnRNZXRhZGF0YVtILkouRGNdKXt2YXIgbj0KZC5ldmVudE1ldGFkYXRhW0guSi5EY107QXJyYXkuaXNBcnJheShuKXx8KG49W25dKTtmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9c04obltwXSxoKTtNKDQ4OCl8fFYocSxILkouSmEsITEpO2wucHVzaChxKX19ZWxzZSBiPT09Ri5ELndhJiZsLnB1c2goc04oWC5WLk1rLGgpKSxiIT09Ri5ELkpiJiZsLnB1c2goc04oWC5WLkthLGgpKSxsLnB1c2goc04oWC5WLnhhLGgpKSxiIT09Ri5ELkpiJiYobC5wdXNoKHNOKFguVi5PYixoKSksbC5wdXNoKHNOKFguVi5GYixoKSksbC5wdXNoKHNOKFguVi51YixoKSkpO3ZhciByPVtGLkQua2EsRi5ELm1hXSx0PXZvaWQgMDticChmdW5jdGlvbigpe2YoKTt2YXIgdT0hWG8oW0YuRC5YYV0pO2lmKCFYbyhyKXx8dSl7dmFyIHY9cjt1JiYodj1bXS5jb25jYXQodyh2KSxbRi5ELlhhXSkpO2FwKGZ1bmN0aW9uKHgpe3ZhciB5LHosQzt5PXguY29uc2VudEV2ZW50SWQ7ej14LmNvbnNlbnRQcmlvcml0eUlkO0M9eC5jb25zZW50VHlwZXM7CmUoeSx6KTtDJiZDLmxlbmd0aD09PTEmJkNbMF09PT1GLkQuWGE/ZihmdW5jdGlvbihEKXtyZXR1cm4gRD09PVguVi51Yn0pOmYoKX0sdil9fSxyKX19fTtmdW5jdGlvbiBGTyhhLGIsYyxkKXt9Rk8uUD0iaW50ZXJuYWwuZXhlY3V0ZUV2ZW50UHJvY2Vzc29yIjtmdW5jdGlvbiBHTyhhKXt2YXIgYjtyZXR1cm4gVWQoYix0aGlzLlQsMSl9R08uUD0iaW50ZXJuYWwuZXhlY3V0ZUphdmFzY3JpcHRTdHJpbmciO2Z1bmN0aW9uIEhPKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgYz1BO3RyeXtiPUtqKGMuZXNjYXBlKGMuYXRvYihhKSkpfWNhdGNoKGQpe3JldHVybn1yZXR1cm4gYn07ZnVuY3Rpb24gSU8oYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtiPUF2KGE9PT1udWxsP3ZvaWQgMDphKTtyZXR1cm4gYn1JTy5QPSJpbnRlcm5hbC5nZW5lcmF0ZUNsaWVudElkIjtmdW5jdGlvbiBKTyhhKXt2YXIgYj17fTtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGM9VGQoYSx0aGlzLlQsMSkucmIoKTtiPUxLKGMpO3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtpZighZWgoYSkmJiFnaChhKXx8IW9oKGIpfHxnaChhKSYmZ2goYil8fCFnaChhKSYmIWdoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGQ7aWYoYil7dmFyIGU9WEYodGhpcyk7ZD1KQyhJQyhuZXcgeUMoTnVtYmVyKGUuZXZlbnRJZCksTnVtYmVyKGUucHJpb3JpdHlJZCkpLCEwKSl9ZWxzZSBkPVRkKGEsdGhpcy5ULDEpLnJiKCkuTTtjPVN0KGQpO3JldHVybiBjfUtPLlA9ImludGVybmFsLmdldEFsbG93QWRQZXJzb25hbGl6YXRpb24iO2Z1bmN0aW9uIExPKCl7dmFyIGE7KGE9d2IocmIuR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUx8fFtdKSkmJnViKCk7cmV0dXJuIGF9TE8uUD0iaW50ZXJuYWwuZ2V0QW5kUmVzZXRFdmVudFVzYWdlIjtmdW5jdGlvbiBNTyhhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjO2lmKCFlaChhKXx8IW9oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGQ9UShUZChhLHRoaXMuVCwxKS5yYigpLEguSi5HYSl8fHt9O0h2KGQsYik7Yz1EdltHdihkLnByZWZpeCldO3JldHVybiBjfU1PLlA9ImludGVybmFsLmdldEF1aWQiO2Z1bmN0aW9uIE5PKCl7dmFyIGE9W107cmV0dXJuIFVkKGEpfU5PLlA9ImludGVybmFsLmdldENvbnRhaW5lcklkcyI7ZnVuY3Rpb24gT08oKXt2YXIgYT1uZXcga2I7TCh0aGlzLCJyZWFkX2NvbnRhaW5lcl9kYXRhIiksYS5zZXQoImNvbnRhaW5lcklkIixpZyksYS5zZXQoInZlcnNpb24iLGtnKSxhLnNldCgiZW52aXJvbm1lbnROYW1lIixqZyksYS5zZXQoImRlYnVnTW9kZSIsbGcpLGEuc2V0KCJwcmV2aWV3TW9kZSIsbWcuUG8pLGEuc2V0KCJlbnZpcm9ubWVudE1vZGUiLG1nLktyKSxhLnNldCgiZmlyc3RQYXJ0eVNlcnZpbmciLGFrKCkpLGEuc2V0KCJjb250YWluZXJVcmwiLEtjKSxhLnNldCgiaXNHb29nbGVPbmx5TW9kZSIsSWYoNjIpKSxhLlphKCk7cmV0dXJuIGF9T08ucHVibGljTmFtZT0iZ2V0Q29udGFpbmVyVmVyc2lvbiI7ZnVuY3Rpb24gUE8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31QTy5wdWJsaWNOYW1lPSJnZXRDb29raWVWYWx1ZXMiO2Z1bmN0aW9uIFFPKCl7dmFyIGE9IiI7cmV0dXJuIGF9UU8uUD0iaW50ZXJuYWwuZ2V0Q29yZVBsYXRmb3JtU2VydmljZXNQYXJhbSI7ZnVuY3Rpb24gUk8oKXtyZXR1cm4geW0oKX1STy5QPSJpbnRlcm5hbC5nZXRDb3VudHJ5Q29kZSI7ZnVuY3Rpb24gU08oKXt2YXIgYT1bXTthPXRrKCk7cmV0dXJuIFVkKGEpfVNPLlA9ImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIjtmdW5jdGlvbiBUTyhhKXt2YXIgYj1uZXcga2I7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCksZD1mdW5jdGlvbihmLGcsaCl7dmFyIGw9Yy5NLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EsZixoKSxuPVliKENkKGwpP2w6e30sIi4iKTtuJiZiLnNldChnLG4pfSxlPU9vKGZEKEYuRC5PYSkpO2QoMSxGLkQuWGMsZSk7ZCgyLEYuRC5WYyk7cmV0dXJuIGJ9VE8uUD0iaW50ZXJuYWwuZ2V0RGV2ZWxvcGVySWRzIjtmdW5jdGlvbiBVTyhhKXt2YXIgYjtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGM9UShUZChhLHRoaXMuVCwxKS5yYigpLEguSi5HYSl8fHt9O2I9VXYoYykuU2g7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBjfVZPLlA9ImludGVybmFsLmdldEVsZW1lbnRBdHRyaWJ1dGUiO2Z1bmN0aW9uIFdPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9V08uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudEJ5SWQiO2Z1bmN0aW9uIFhPKGEpe3ZhciBiPSIiO3JldHVybiBifVhPLlA9ImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiO2Z1bmN0aW9uIFlPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9WU8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFBhcmVudCI7ZnVuY3Rpb24gWk8oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1aTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJldmlvdXNTaWJsaW5nIjtmdW5jdGlvbiAkTyhhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7cmV0dXJuIGJ9YVAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZhbHVlIjtmdW5jdGlvbiBiUChhKXt2YXIgYj0wO3JldHVybiBifWJQLlA9ImludGVybmFsLmdldEVsZW1lbnRWaXNpYmlsaXR5UmF0aW8iO2Z1bmN0aW9uIGNQKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Y1AuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudHNCeUNzc1NlbGVjdG9yIjsKZnVuY3Rpb24gZFAoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9ldmVudF9kYXRhIixhKTt2YXIgYzthOnt2YXIgZD1hLGU9WEYodGhpcykub3JpZ2luYWxFdmVudERhdGE7aWYoZSl7Zm9yKHZhciBmPWUsZz17fSxoPXt9LGw9e30sbj1bXSxwPWQuc3BsaXQoIlxcXFwiKSxxPTA7cTxwLmxlbmd0aDtxKyspe2Zvcih2YXIgcj1wW3FdLnNwbGl0KCJcXC4iKSx0PTA7dDxyLmxlbmd0aDt0Kyspe2Zvcih2YXIgdT1yW3RdLnNwbGl0KCIuIiksdj0wO3Y8dS5sZW5ndGg7disrKW4ucHVzaCh1W3ZdKSx2IT09dS5sZW5ndGgtMSYmbi5wdXNoKGwpO3QhPT1yLmxlbmd0aC0xJiZuLnB1c2goaCl9cSE9PXAubGVuZ3RoLTEmJm4ucHVzaChnKX1mb3IodmFyIHg9W10seT0iIix6PW0obiksQz16Lm5leHQoKTshQy5kb25lO0M9CnoubmV4dCgpKXt2YXIgRD1DLnZhbHVlO0Q9PT1sPyh4LnB1c2goeSkseT0iIik6eT1EPT09Zz95KyJcXCI6RD09PWg/eSsiLiI6eStEfXkmJngucHVzaCh5KTtmb3IodmFyIEk9bSh4KSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7aWYoZj09bnVsbCl7Yz12b2lkIDA7YnJlYWsgYX1mPWZbRy52YWx1ZV19Yz1mfWVsc2UgYz12b2lkIDB9Yj1VZChjLHRoaXMuVCwxKTtyZXR1cm4gYn1kUC5QPSJpbnRlcm5hbC5nZXRFdmVudERhdGEiO2Z1bmN0aW9uIGVQKGEpe3ZhciBiPW51bGw7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9kb21fZWxlbWVudHMiLCJjc3MiLGEpO3RyeXt2YXIgYz1CLnF1ZXJ5U2VsZWN0b3IoYSk7YyYmKGI9bmV3IFBkKGMpKX1jYXRjaChkKXtyZXR1cm4gbnVsbH1yZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO0wodGhpcywiYWNjZXNzX2dsb2JhbHMiLCJleGVjdXRlIiwiX19nc2FFeHAuaWQiKTt2YXIgYj1BO2lmKCFiLl9fZ3NhRXhwfHwhYi5fX2dzYUV4cC5pZClyZXR1cm4gYTt2YXIgYz1iLl9fZ3NhRXhwLmlkO2lmKCF5YihjKSlyZXR1cm4gYTt0cnl7dmFyIGQ9TnVtYmVyKGMoKSk7aWYoaXNOYU4oZCkpcmV0dXJuIGE7YT1kfWNhdGNoKGUpe3JldHVybiBhfXJldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7YT1PcCghMSk7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtpZighbmgoYSl8fCFvaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiYm9vbGVhbiIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiKTtjPVVxKGEsYik7cmV0dXJuIFVkKGMpfWlQLlA9ImludGVybmFsLmdldExpbmtlclZhbHVlRnJvbUxvY2F0aW9uIjtmdW5jdGlvbiBqUCgpe3ZhciBhPW5ldyBrYjtpZihhcmd1bWVudHMubGVuZ3RoIT09MCl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFtdLGFyZ3VtZW50cyk7dmFyIGI9Vk0oKTtiIT09dm9pZCAwJiZhLnNldChGLkQua2csYnx8ImVycm9yIik7dmFyIGM9THQoKTtjJiZhLnNldChGLkQuS2UsYyk7dmFyIGQ9S3QoKTtkJiZhLnNldChGLkQuT2UsZCk7dmFyIGU9a0YuZ3BwU3RyaW5nO2UmJmEuc2V0KEYuRC51aCxlKTt2YXIgZj1rRi5IO2YmJmEuc2V0KEYuRC50aCxmKTtyZXR1cm4gYX1qUC5QPSJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyI7ZnVuY3Rpb24ga1AoYSxiKXt2YXIgYztpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307Yz1VZChkW2JdLHRoaXMuVCk7cmV0dXJuIGN9a1AuUD0iaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBsUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IXBoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIiwicXVlcnkiLGEpO3ZhciBkPUxqKFJqKEEubG9jYXRpb24uaHJlZiksInF1ZXJ5IiksZT1JaihkLGEsYik7Yz1VZChlLHRoaXMuVCk7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3JlZmVycmVyIixhKTtiPU5qKFJqKEIucmVmZXJyZXIpLGEpO3JldHVybiBifW5QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyVXJsIjtmdW5jdGlvbiBvUCgpe3JldHVybiB6bSgpfW9QLlA9ImludGVybmFsLmdldFJlZ2lvbkNvZGUiO2Z1bmN0aW9uIHBQKGEsYil7dmFyIGM7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9ZUQoYSk7Yz1VZChkW2JdLHRoaXMuVCk7cmV0dXJuIGN9cFAuUD0iaW50ZXJuYWwuZ2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBxUChhLGIpe3ZhciBjPW51bGw7CnJldHVybiBjfXFQLlA9ImludGVybmFsLmdldFNjb3BlZEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gclAoKXt2YXIgYT1uZXcga2I7YS5zZXQoIndpZHRoIiwwKTthLnNldCgiaGVpZ2h0IiwwKTtMKHRoaXMsInJlYWRfc2NyZWVuX2RpbWVuc2lvbnMiKTt2YXIgYj1xSSgpO2Euc2V0KCJ3aWR0aCIsYi53aWR0aCk7YS5zZXQoImhlaWdodCIsYi5oZWlnaHQpO3JldHVybiBhfXJQLlA9ImludGVybmFsLmdldFNjcmVlbkRpbWVuc2lvbnMiO2Z1bmN0aW9uIHNQKCl7dmFyIGE9IiI7TCh0aGlzLCJnZXRfdXJsIik7dmFyIGI9RnAoKTthPURwKGIpLnVybDtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO0wodGhpcywiZ2V0X3VybCIpLGE9QS50b3AubG9jYXRpb24uaHJlZjtyZXR1cm4gYX10UC5QPSJpbnRlcm5hbC5nZXRUb3BXaW5kb3dVcmwiO2Z1bmN0aW9uIHVQKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIixhKTtiPUxqKFJqKEEubG9jYXRpb24uaHJlZiksYSk7cmV0dXJuIGJ9dVAucHVibGljTmFtZT0iZ2V0VXJsIjtmdW5jdGlvbiB2UCgpe0wodGhpcywiZ2V0X3VzZXJfYWdlbnQiKTtyZXR1cm4gSGMudXNlckFnZW50fXZQLnB1YmxpY05hbWU9ImdldFVzZXJBZ2VudCI7dlAuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50IjtmdW5jdGlvbiB3UCgpe3ZhciBhO0wodGhpcywiZ2V0X3VzZXJfYWdlbnQiKTtpZighRE0oKXx8IUZNLksoKSlyZXR1cm47YT1GTS5IKCk7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO3ZhciB5UD1mdW5jdGlvbihhKXt2YXIgYj1hLmV2ZW50TmFtZT09PUYuRC5zYyYmRWwoKSYmYmsoWksoYSkpLGM9UShhLEguSi5kbiksZD1RKGEsSC5KLktrKSxlPVEoYSxILkoubWcpLGY9UShhLEguSi5UZSksZz1RKGEsSC5KLkZjKSxoPVEoYSxILkouaGQpLGw9UShhLEguSi5yZyksbj1RKGEsSC5KLk1oKSxwPVEoYSxILkouTmgpLHE9ISFZSyhhKXx8ISFRKGEsSC5KLnBwKTtyZXR1cm4hKCFuZCgpJiYha2QoKXx8ZXx8cXx8Znx8Z3x8aHx8bHx8cHx8bnx8Ynx8Y3x8IWQmJnhQKCkpfSx4UD1mdW5jdGlvbigpe3JldHVybiBhbCg5LGZ1bmN0aW9uKCl7cmV0dXJuITF9KX07ZnVuY3Rpb24gelAoKXt2YXIgYT1BO3JldHVybiBhLmdhR2xvYmFsPWEuZ2FHbG9iYWx8fHt9fWZ1bmN0aW9uIEFQKGEsYil7dmFyIGM9elAoKTtpZihjLnZpZD09PXZvaWQgMHx8YiYmIWMuZnJvbV9jb29raWUpYy52aWQ9YSxjLmZyb21fY29va2llPWJ9O3ZhciBCUD1bIkdBMSJdOwp2YXIgQ1A9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVEoYSxILkouUGspO2lmKGQ9PT12b2lkIDB8fGM8PWQpVShhLEYuRC5LYixiKSxWKGEsSC5KLlBrLGMpfSxFUD1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuS2IpO2lmKE8oYS5NLEYuRC5aYykmJk8oYS5NLEYuRC5ZYyl8fGImJmM9PT1iKXJldHVybiBjO2lmKGMpe2M9IiIrYztpZighRFAoYyxhKSlyZXR1cm4gUCgzMSksYS5pc0Fib3J0ZWQ9ITAsIiI7QVAoYyxYbyhGLkQucmEpKTtyZXR1cm4gY31QKDMyKTthLmlzQWJvcnRlZD0hMDtyZXR1cm4iIn0sRlA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPUJ2KGIucHJlZml4KyJfZ2EiLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpO2lmKCFkKXt2YXIgZT1TdHJpbmcoTyhhLk0sRi5ELklkLCIiKSk7ZSYmZSE9PWMmJihkPUJ2KGUsYi5kb21haW4sYi5wYXRoLEJQLEYuRC5yYSkpfXJldHVybiBkfSxEUD1mdW5jdGlvbihhLGIpe3ZhciBjOwp2YXIgZD1RKGIsSC5KLkdhKSxlPWQucHJlZml4KyJfZ2EiLGY9dXEoZCx2b2lkIDAsdm9pZCAwLEYuRC5yYSk7aWYoTyhiLk0sRi5ELkpkKT09PSExJiZGUChiKT09PWEpYz0hMDtlbHNle3ZhciBnO2c9W0JQWzBdLHRxKGQuZG9tYWluLGQucGF0aCksYV0uam9pbigiLiIpO2M9b3EoZSxnLGYpIT09MX1yZXR1cm4gY307CnZhciBHUD1mdW5jdGlvbihhKXt2YXIgYj0wLGM9MDtyZXR1cm57c3RhcnQ6ZnVuY3Rpb24oKXtiPU5iKCl9LHN0b3A6ZnVuY3Rpb24oKXtjPXRoaXMuZ2V0KCl9LGdldDpmdW5jdGlvbigpe3ZhciBkPTA7YS5WaigpJiYoZD1OYigpLWIpO3JldHVybiBkK2N9fX0sSFA9ZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwO3RoaXMuSz0wO3RoaXMuaXNBY3RpdmU9dGhpcy5pc1Zpc2libGU9dGhpcy5OPSExO3RoaXMuWj10aGlzLlI9dm9pZCAwfTtrPUhQLnByb3RvdHlwZTtrLktxPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoIXRoaXMuSCl7dGhpcy5OPUIuaGFzRm9jdXMoKTt0aGlzLmlzVmlzaWJsZT0hQi5oaWRkZW47dGhpcy5pc0FjdGl2ZT0hMDt2YXIgYz1mdW5jdGlvbihlLGYsZyl7JGMoZSxmLGZ1bmN0aW9uKGgpe2IuSC5zdG9wKCk7ZyhoKTtiLlZqKCkmJmIuSC5zdGFydCgpfSl9LGQ9QTtjKGQsImZvY3VzIixmdW5jdGlvbigpe2IuTj0hMH0pO2MoZCwiYmx1ciIsZnVuY3Rpb24oKXtiLk49CiExfSk7YyhkLCJwYWdlc2hvdyIsZnVuY3Rpb24oZSl7Yi5pc0FjdGl2ZT0hMDtlLnBlcnNpc3RlZCYmUCg1Nik7Yi5aJiZiLlooKX0pO2MoZCwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7Yi5pc0FjdGl2ZT0hMTtiLlImJmIuUigpfSk7YyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2IuaXNWaXNpYmxlPSFCLmhpZGRlbn0pO2JrKFpLKGEpKSYmIU9jKCkmJmMoZCwiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe1prKDksITApfSk7dGhpcy5xayghMCk7dGhpcy5LPTB9fTtrLnFrPWZ1bmN0aW9uKGEpe2lmKChhPT09dm9pZCAwPzA6YSl8fHRoaXMuSCl0aGlzLksrPXRoaXMuWWgoKSx0aGlzLkg9R1AodGhpcyksdGhpcy5WaigpJiZ0aGlzLkguc3RhcnQoKX07ay5LdD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlloKCk7Yj4wJiZVKGEsRi5ELm5oLGIpfTtrLmxzPWZ1bmN0aW9uKGEpe1UoYSxGLkQubmgpO3RoaXMucWsoKTt0aGlzLks9MH07ay5Waj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4mJgp0aGlzLmlzVmlzaWJsZSYmdGhpcy5pc0FjdGl2ZX07ay5Ycj1mdW5jdGlvbigpe3JldHVybiB0aGlzLksrdGhpcy5ZaCgpfTtrLlloPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSCYmdGhpcy5ILmdldCgpfHwwfTtrLmh0PWZ1bmN0aW9uKGEpe3RoaXMuUj1hfTtrLkNvPWZ1bmN0aW9uKGEpe3RoaXMuWj1hfTt2YXIgSVA9ZnVuY3Rpb24oYSl7c2IoIkdBNF9FVkVOVCIsYSl9O3ZhciBKUD1mdW5jdGlvbihhKXt2YXIgYixjPVEoYSxILkoud20pO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspSVAoY1tkXSk7KGI9d2IocmIuR0E0X0VWRU5UfHxbXSkpJiZVKGEsIl9ldSIsYil9Owp2YXIgTVA9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFJlZ0V4cCgiXiIrKCgoYT09bnVsbD92b2lkIDA6YS5wcmVmaXgpfHwiIikrIl9nYV9cXHcrJCIpKSxjPXlxKGZ1bmN0aW9uKHApe3JldHVybiBiLnRlc3QocCl9KSxkPXt9LGU7Zm9yKGUgaW4gYylpZihjLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1LUChjW2VdKTtpZihmKXt2YXIgZz1icShmLDIpO2lmKGcpe3ZhciBoPUxQKGcpO2lmKGgpe3ZhciBsPXZvaWQgMCxuPSgoKGw9YSk9PW51bGw/dm9pZCAwOmwucHJlZml4KXx8IiIpLmxlbmd0aCs0O2RbIkctIitlLnN1YnN0cmluZyhuKV09aH19fX1yZXR1cm4gZH0sTlA9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI7YTp7dmFyIGM9KFNiKGEsInMiKSYmYS5pbmRleE9mKCIuIik9PT0tMT8iR1MyIjoiR1MxIikrIi4xLiIrYTt0cnl7Yj0kcChjLDIpO2JyZWFrIGF9Y2F0Y2goZCl7fWI9dm9pZCAwfXJldHVybiBifX0sS1A9ZnVuY3Rpb24oYSl7aWYoYSYmYS5sZW5ndGghPT0wKXtmb3IodmFyIGIsCmM9LUluZmluaXR5LGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihmLnQhPT12b2lkIDApe3ZhciBnPU51bWJlcihmLnQpOyFpc05hTihnKSYmZz5jJiYoYz1nLGI9Zil9fXJldHVybiBifX0senE9ZnVuY3Rpb24oYSl7YSYmKGE9PT0iR1MxIj9JUChKLlUuS20pOmE9PT0iR1MyIiYmSVAoSi5VLkxtKSl9LExQPWZ1bmN0aW9uKGEpe3ZhciBiPU5QKGEpO2lmKGIpe3ZhciBjPU51bWJlcihiLm8pLGQ9TnVtYmVyKGIudCksZT1OdW1iZXIoYi5qfHwwKTtjfHxJUChKLlUuVW0pO2R8fElQKEouVS5UbSk7aXNOYU4oZSkmJklQKEouVS5TbSk7aWYoYyYmZCYmIWlzTmFOKGUpKXt2YXIgZj1iLmgsZz1mJiZmIT09IjAiP1N0cmluZyhmKTp2b2lkIDAsaD1iLmQ/U3RyaW5nKGIuZCk6dm9pZCAwLGw9e307cmV0dXJuIGwucz1TdHJpbmcoYi5zKSxsLm89YyxsLmc9ISFOdW1iZXIoYi5nKSxsLnQ9ZCxsLmQ9aCxsLmo9ZSxsLmw9Yi5sPT09IjEiLApsLmg9ZyxsfX19Owp2YXIgUFA9ZnVuY3Rpb24oYSxiLGMpe2lmKCFiKXJldHVybiBhO2lmKCFhKXJldHVybiBiO3ZhciBkPUxQKGEpO2lmKCFkKXJldHVybiBiO3ZhciBlLGY9SWIoKGU9TyhjLk0sRi5ELnloKSkhPW51bGw/ZTozMCksZz1RKGMsSC5KLkViKTtpZighKE1hdGguZmxvb3IoZy8xRTMpPmQudCtmKjYwKSlyZXR1cm4gYTt2YXIgaD1MUChiKTtpZighaClyZXR1cm4gYTtoLm89ZC5vKzE7dmFyIGw7cmV0dXJuKGw9T1AoaCkpIT1udWxsP2w6Yn0sUlA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1RKGIsSC5KLkdhKSxkPVFQKGIsYyksZT1OUChhKTtpZighZSlyZXR1cm4hMTt2YXIgZj11cShjfHx7fSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSk7b3EoZCx2b2lkIDAsZik7cmV0dXJuIEFxKGQsZSwyLGMpIT09MX0sU1A9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5HYSksYzt2YXIgZD1RUChhLGIpLGU7Yjp7dmFyIGY9enEsZz1acFsyXTtpZihnKXt2YXIgaCxsPXJxKGIuZG9tYWluKSxuPXNxKGIucGF0aCksCnA9T2JqZWN0LmtleXMoZy5qaSkscT12cS5nZXQoMikscjtpZihoPShyPWdxKGQsbCxuLHAscSkpPT1udWxsP3ZvaWQgMDpyLkJyKXt2YXIgdD0kcChoLDIsZik7ZT10P3hxKHQpOnZvaWQgMDticmVhayBifX1lPXZvaWQgMH1pZihlKXt2YXIgdT13cShkLDIsenEpO2lmKHUmJnUubGVuZ3RoPjEpe0lQKEouVS5KbSk7dmFyIHY9S1AodSk7diYmdi50IT09ZS50JiYoSVAoSi5VLk1tKSxlPXYpfWM9YnEoZSwyKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfSxUUD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkViKSxjPXt9O2Mucz1SKGEsRi5ELnhjKTtjLm89UihhLEYuRC5BaCk7dmFyIGQ7ZD1SKGEsRi5ELnpoKTt2YXIgZT0oYy5nPWQsYy50PU1hdGguZmxvb3IoYi8xRTMpLGMuZD1RKGEsSC5KLm9nKSxjLmo9UShhLEguSi5wZyl8fDAsYy5sPSEhUShhLEguSi5ybSksYy5oPVIoYSxGLkQub2gpLGMpO3JldHVybiBPUChlKX0sT1A9ZnVuY3Rpb24oYSl7aWYoYS5zJiZhLm8pe3ZhciBiPQp7fSxjPShiLnM9YS5zLGIubz1TdHJpbmcoYS5vKSxiLmc9SWIoYS5nKT8iMSI6IjAiLGIudD1TdHJpbmcoYS50KSxiLmo9U3RyaW5nKGEuaiksYi5sPWEubD8iMSI6IjAiLGIuaD1hLmh8fCIwIixiLmQ9YS5kLGIpO3JldHVybiBicShjLDIpfX0sUVA9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5wcmVmaXgrIl9nYV8iK2EudGFyZ2V0Lmlkc1tkQ1s2XV19Owp2YXIgVVA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMixmdW5jdGlvbigpe3JldHVybiExfSl9LFZQPWZ1bmN0aW9uKGEpe3ZhciBiPU8oYS5NLEYuRC5EYiksYz1hLk0uaWJbRi5ELkRiXTtpZihjPT09YilyZXR1cm4gYzt2YXIgZD1FZChiLG51bGwpO2MmJmNbRi5ELkFhXSYmKGRbRi5ELkFhXT0oZFtGLkQuQWFdfHxbXSkuY29uY2F0KGNbRi5ELkFhXSkpO3JldHVybiBkfSxXUD1mdW5jdGlvbihhLGIpe3ZhciBjPVVxKCEwKTtyZXR1cm4gYy5fdXAhPT0iMSI/e306e2NsaWVudElkOmNbYV0semI6Y1tiXX19LFhQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1VcSghMCksZT1kW2JdO2UmJihDUChhLGUsMiksRFAoZSxhKSk7dmFyIGY9ZFtjXTtmJiZSUChmLGEpO3JldHVybntjbGllbnRJZDplLHpiOmZ9fSxZUD1mdW5jdGlvbigpe3ZhciBhPU5qKEEubG9jYXRpb24sImhvc3QiKSxiPU5qKFJqKEIucmVmZXJyZXIpLCJob3N0Iik7cmV0dXJuIGEmJmI/YT09PWJ8fGEuaW5kZXhPZigiLiIrYik+PQowfHxiLmluZGV4T2YoIi4iK2EpPj0wPyEwOiExOiExfSxaUD1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELnpjKSlyZXR1cm57fTt2YXIgYj1RKGEsSC5KLkdhKSxjPWIucHJlZml4KyJfZ2EiLGQ9UVAoYSxiKTticihmdW5jdGlvbigpe3ZhciBlO2lmKFhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpKWU9e307ZWxzZXt2YXIgZj17X3VwOiIxIn0sZztnPVIoYSxGLkQuS2IpO2U9KGZbY109ZyxmW2RdPVRQKGEpLGYpfXJldHVybiBlfSwxKTtyZXR1cm4hWG8oImFuYWx5dGljc19zdG9yYWdlIikmJllQKCk/V1AoYyxkKTp7fX0sJFA9ZnVuY3Rpb24oYSl7dmFyIGI9VlAoYSl8fHt9LGM9UShhLEguSi5HYSksZD1jLnByZWZpeCsiX2dhIixlPVFQKGEsYyksZj17fTtkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pJiYoZj1YUChhLGQsZSksZi5jbGllbnRJZCYmZi56YiYmWmsoMiwhMCkpO2JbRi5ELkFhXSYmYXIoZnVuY3Rpb24oKXt2YXIgZz17fSxoPUZQKGEpO2gmJihnW2RdPWgpO3ZhciBsPVNQKGEpOwpsJiYoZ1tlXT1sKTt2YXIgbj1jcSgiRlBMQyIsdm9pZCAwLHZvaWQgMCxGLkQucmEpO24ubGVuZ3RoJiYoZy5fZnBsYz1uWzBdKTtyZXR1cm4gZ30sYltGLkQuQWFdLGJbRi5ELmFkXSwhIWJbRi5ELndjXSk7cmV0dXJuIGZ9O3ZhciBhUT1mdW5jdGlvbihhKXtpZighUShhLEguSi5iZSkmJmVrKGEuTSkpe3ZhciBiPVZQKGEpfHx7fSxjPShkcihiW0YuRC5YZl0sISFiW0YuRC5BYV0pP1VxKCEwKS5fZnBsYzp2b2lkIDApfHwoY3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKS5sZW5ndGg+MD92b2lkIDA6IjAiKTtVKGEsIl9mcGxjIixjKX19O2Z1bmN0aW9uIGJRKGEpeyhiayhaSyhhKSl8fFdqKCkpJiZVKGEsRi5ELm9tLHptKCl8fHltKCkpOyFiayhaSyhhKSkmJldqKCkmJlUoYSxGLkQuWWksIjo6Iil9ZnVuY3Rpb24gY1EoYSl7V2ooKSYmKGJrKFpLKGEpKXx8RG0oKXx8VShhLEYuRC5TbCwhMCkpfTt2YXIgZVE9ZnVuY3Rpb24oYSxiKXtraigiZ3JsIixmdW5jdGlvbigpe3JldHVybiBkUSgpfSkoYil8fChQKDM1KSxhLmlzQWJvcnRlZD0hMCl9LGRRPWZ1bmN0aW9uKCl7dmFyIGE9TmIoKSxiPWErODY0RTUsYz0yMCxkPTVFMztyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGY9TmIoKTtmPj1iJiYoYj1mKzg2NEU1LGQ9NUUzKTtjPU1hdGgubWluKGMrKGYtYSkvMUUzKjUsMjApO2E9Zjt2YXIgZz0hMTtkPDF8fGM8MXx8KGc9ITAsZC0tLGMtLSk7ZSYmKGUuSHI9ZCxlLnVyPWMpO3JldHVybiBnfX07CnZhciBmUT1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELlVhKTtyZXR1cm4gTGooUmooYiksImhvc3QiLCEwKX0sZ1E9ZnVuY3Rpb24oYSl7aWYoTyhhLk0sRi5ELldmKSE9PXZvaWQgMClhLmNvcHlUb0hpdERhdGEoRi5ELldmKTtlbHNle3ZhciBiPU8oYS5NLEYuRC5hbSksYyxkO2E6e2lmKFVQKCkpe3ZhciBlPVZQKGEpfHx7fTtpZihlJiZlW0YuRC5BYV0pZm9yKHZhciBmPWZRKGEpLGc9ZVtGLkQuQWFdLGg9MDtoPGcubGVuZ3RoO2grKylpZihnW2hdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGdbaF0udGVzdChmKSl7ZD0hMDticmVhayBhfX1lbHNlIGlmKGYuaW5kZXhPZihnW2hdKT49MCl7ZD0hMDticmVhayBhfX1kPSExfWlmKCEoYz1kKSl7dmFyIGw7aWYobD1iKWE6e2Zvcih2YXIgbj1iLmluY2x1ZGVfY29uZGl0aW9uc3x8W10scD1mUShhKSxxPTA7cTxuLmxlbmd0aDtxKyspaWYobltxXS50ZXN0KHApKXtsPSEwO2JyZWFrIGF9bD0hMX1jPWx9YyYmKFUoYSxGLkQuV2YsIjEiKSwKSVAoSi5VLm5uKSl9fTtmdW5jdGlvbiBoUShhLGIsYyxkKXt2YXIgZTtpZigobmQoKXx8a2QoKSkmJlhqKCkmJlhqKCkhPT0iLyIpe3ZhciBmPVJqKGEpO2U9SWYoNTApJiZkJiZUYihmLnBhdGhuYW1lLCIvZy9jb2xsZWN0Iik/MjooZHx8IVdqKCl8fERtKCk/MDpUYihmLnBhdGhuYW1lLCIvZ2EvZy9jIil8fFRiKGYucGF0aG5hbWUsIi9hZy9nL2MiKSk/MTowfWVsc2UgZT0wO3N3aXRjaChlKXtjYXNlIDI6dmFyIGc7aWYoTSg1NDYpKXt2YXIgaD1UYihhLCIvZy9jb2xsZWN0Iik/YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0xMCk6YSxsPWlRKCksbj1oK2wscD1qUSgiL2cvY29sbGVjdCIsYixjKTtnPXtJYzpuLGtmOiIiLGJvZHk6cH19ZWxzZSBnPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gZztjYXNlIDE6dmFyIHE7aWYoTSg1NDcpKXt2YXIgcj1pUSgpLHQ9YS5pbmRleE9mKHIpLHU9YS5zdWJzdHJpbmcoMCx0KStyLHY9alEoYS5zdWJzdHJpbmcodCtyLmxlbmd0aC0xKSxiLGMpO3E9e0ljOnUsa2Y6IiIsCmJvZHk6dn19ZWxzZSBxPXtJYzphLGtmOmIsYm9keTpjfTtyZXR1cm4gcTtkZWZhdWx0OnJldHVybntJYzphLGtmOmIsYm9keTpjfX19ZnVuY3Rpb24gaVEoKXt2YXIgYT1YaigpO2lmKCFhKXJldHVybiIiO1NiKGEsIi8iKXx8KGE9Ii8iK2EpO1RiKGEsIi8iKXx8KGErPSIvIik7cmV0dXJuIGF9ZnVuY3Rpb24galEoYSxiLGMpe3ZhciBkPVthXTtiJiZkLnB1c2goIj8iLGIpO2MmJmQucHVzaCgiXHJcbiIsYyk7cmV0dXJuIGQuam9pbigiIil9Owp2YXIga1E9ZnVuY3Rpb24oYSxiKXtUdCgpJiYoYS5nY3M9VXQoKSxRKGIsSC5KLkdoKSYmKGEuZ2N1PSIxIikpO2EuZ2NkPVl0KGIuTSk7YS5ucGE9UShiLEguSi53ZCk/IjAiOiIxIjt6bSgpPT09IlVTLUNPIiYmKGEuX25nPSIxIil9LGxRPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouYmUpKXJldHVybnt1cmw6ZmsoImh0dHBzOi8vd3d3Lm1lcmNoYW50LWNlbnRlci1hbmFseXRpY3MuZ29vZyIsdm9pZCAwLCIiKSsiL21jL2NvbGxlY3QiLGVuZHBvaW50OjIwfTt2YXIgYj1ZaihlayhhLk0pLCIvZy9jb2xsZWN0Iik7aWYoYilyZXR1cm57dXJsOmIsZW5kcG9pbnQ6MTZ9O3ZhciBjO2M9UShhLEguSi5ybikmJiFRKGEsSC5KLkZjKT8xNzoxNjtyZXR1cm57dXJsOk1tW2NdKHZvaWQgMCksZW5kcG9pbnQ6Y319LG1RPXt9O21RW0YuRC5LYl09ImNpZCI7bVFbRi5ELnhpXT0iZ2N1dCI7bVFbRi5ELkZlXT0iYXJlIjttUVtGLkQuamhdPSJwc2NkbCI7bVFbRi5ELk5kXT0iZXhjaWQiO21RW0YuRC5HaV09CiJfZmlkIjttUVtGLkQuT2xdPSJfZ2VvIjttUVtGLkQuWGNdPSJnZGlkIjttUVtGLkQuTGVdPSJfbmciO21RW0YuRC5NZV09ImZybSI7bVFbRi5ELldmXT0iaXIiO21RW0YuRC5TbF09ImZwIjttUVtGLkQudGJdPSJ1bCI7bVFbRi5ELk1pXT0ibmkiO21RW0YuRC5tcV09InBhZSI7bVFbRi5ELnhoXT0iX3JkaSI7bVFbRi5ELmJkXT0ic3IiO21RW0YuRC5RaV09InRlc3Rvbmx5IjttUVtGLkQuUWVdPSJ0aWQiO21RW0YuRC5SaV09InR0IjttUVtGLkQuQmNdPSJlY19tb2RlIjttUVtGLkQuWm1dPSJndG1fdXAiO21RW0YuRC5jZ109InVhYSI7bVFbRi5ELmRnXT0idWFiIjttUVtGLkQuZWddPSJ1YWZ2bCI7bVFbRi5ELmZnXT0idWFtYiI7bVFbRi5ELmdnXT0idWFtIjsKbVFbRi5ELmhnXT0idWFwIjttUVtGLkQuaWddPSJ1YXB2IjttUVtGLkQuamddPSJ1YXciO21RW0YuRC5vbV09InVyIjttUVtGLkQuWWldPSJfdWlwIjttUVtGLkQubHFdPSJfcHJzIjttUVtGLkQuUGRdPSJscHMiO21RW0YuRC5CZV09ImdjbGdzIjttUVtGLkQuRGVdPSJnY2xzdCI7bVFbRi5ELkNlXT0iZ2NsbHAiO3ZhciBuUT17fTtuUVtGLkQuR2ZdPSJjYyI7blFbRi5ELkhmXT0iY2kiO25RW0YuRC5JZl09ImNtIjtuUVtGLkQuSmZdPSJjbiI7blFbRi5ELkxmXT0iY3MiO25RW0YuRC5NZl09ImNrIjtuUVtGLkQuZWJdPSJjdSI7blFbRi5ELlZmXT0iX3R1IjtuUVtGLkQuemFdPSJkbCI7blFbRi5ELllmXT0iZHAiO25RW0YuRC5VYV09ImRyIjtuUVtGLkQuTWJdPSJkdCI7blFbRi5ELnpoXT0ic2VnIjtuUVtGLkQueGNdPQoic2lkIjtuUVtGLkQuQWhdPSJzY3QiO25RW0YuRC5mYl09InVpZCI7dmFyIG9RPXt9O29RW0YuRC5uaF09Il9ldCI7b1FbRi5ELlZjXT0iZWRpZCI7b1FbRi5ELk1kXT0iZXZuaWQiO00oOTQpJiYob1EuX2V1PSJfZXUiKTt2YXIgcFE9e307cFFbRi5ELkdmXT0iY2MiO3BRW0YuRC5IZl09ImNpIjtwUVtGLkQuSWZdPSJjbSI7cFFbRi5ELkpmXT0iY24iO3BRW0YuRC5MZl09ImNzIjtwUVtGLkQuTWZdPSJjayI7dmFyIHFRPXt9LHJRPShxUVtGLkQuQWNdPTEscVEpLHNRPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGRhLG1hKXtpZihtYSE9PXZvaWQgMCYmIUJvLmhhc093blByb3BlcnR5KGRhKSl7bWE9PT1udWxsJiYobWE9IiIpO3ZhciBQYTt2YXIgRmE9bWE7ZGEhPT1GLkQub2g/UGE9ITE6UShhLEguSi5sZyl8fGJrKFpLKGEpKT8oZS5lY2lkPUZhLFBhPSEwKTpQYT12b2lkIDA7aWYoIVBhKXt2YXIgcWE9bWE7bWE9PT0hMCYmKHFhPSIxIik7bWE9PT0hMSYmKHFhPSIwIik7cWE9ClN0cmluZyhxYSk7dmFyIGliO2lmKGRhIT09Ri5ELk5kJiZkYSE9PUYuRC5NZHx8TSg1MDQpKWlmKG1RW2RhXSlpYj1tUVtkYV0sdltpYl09cWE7ZWxzZSBpZihuUVtkYV0paWI9blFbZGFdLGdbaWJdPXFhO2Vsc2UgaWYob1FbZGFdKWliPW9RW2RhXSxmW2liXT1xYTtlbHNlIGlmKFNiKGRhLCJfJiIpKWliPWRhLnN1YnN0cmluZygyKSx2W2liXT1xYTtlbHNlIGlmKGRhLmNoYXJBdCgwKT09PSJfIil2W2RhXT1xYTtlbHNle3ZhciBYYjtwUVtkYV0/WGI9ITA6ZGEhPT1GLkQuS2Y/WGI9ITE6KHR5cGVvZiBtYSE9PSJvYmplY3QiJiZ1KGRhLG1hKSxYYj0hMCk7WGJ8fHUoZGEsbWEpfWVsc2UgdShkYSxtYSl9fX12YXIgZT17fSxmPXt9LGc9e307ZS52PSIyIjtlLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkO2UuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxlZjpRKGEsSC5KLkNjKX0pO2UuX3A9JGsoMjUpO2MmJihjLmhhc1VwZHx8Yy5oYWRFcnJvcikmJihlLmVtPWMucGFyYW0pO1EoYSwKSC5KLnJnKSYmKGUuX2dhej0xKTtrUShlLGEpO2F1KCkmJihlLmRtYV9jcHM9WnQoKSk7ZS5kbWE9JHQoKTt2dChFdCgpKSYmKGUudGNmZD1idSgpKTt2YXIgaD1DcChhKTtoJiYoZy50YWdfZXhwPWgpO3ZhciBsPVIoYSxGLkQuWGMpO2wmJihlLmdkaWQ9bCk7Zi5lbj1TdHJpbmcoYS5ldmVudE5hbWUpO2lmKFEoYSxILkoubmcpKXt2YXIgbj1RKGEsSC5KLlltKTtmLl9mdj1uPzI6MX1RKGEsSC5KLkhoKSYmKGYuX25zaT0xKTtpZihRKGEsSC5KLlRlKSl7dmFyIHA9UShhLEguSi5ibik7Zi5fc3M9cD8yOjF9UShhLEguSi5tZykmJihmLl9jPTEpO1EoYSxILkouYWUpJiYoZi5fZWU9MSk7aWYoUShhLEguSi5XbSkpe3ZhciBxPVIoYSxGLkQuSGEpfHxPKGEuTSxGLkQuSGEpO2lmKEFycmF5LmlzQXJyYXkocSkpZm9yKHZhciByPTA7cjxxLmxlbmd0aCYmcjwyMDA7cisrKWZbInByIisocisxKV09dGcocVtyXSl9dmFyIHQ9UihhLEYuRC5WYyk7dCYmKGYuZWRpZD10KTtodChhLGYpO2Zvcih2YXIgdT0KZnVuY3Rpb24oZGEsbWEpe2lmKHR5cGVvZiBtYSE9PSJvYmplY3QifHwhclFbZGFdKXt2YXIgUGE9ImVwLiIrZGEsRmE9ImVwbi4iK2RhO2RhPUFiKG1hKT9GYTpQYTt2YXIgcWE9QWIobWEpP1BhOkZhO2YuaGFzT3duUHJvcGVydHkocWEpJiZkZWxldGUgZltxYV07ZltkYV09U3RyaW5nKG1hKX19LHY9e30seD1tKGV1KGEpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTtkKHosUihhLHopKX1mb3IodmFyIEM9bShPYmplY3Qua2V5cyh2KS5zb3J0KCkpLEQ9Qy5uZXh0KCk7IUQuZG9uZTtEPUMubmV4dCgpKXt2YXIgST1ELnZhbHVlO2VbSV09dltJXX0oZnVuY3Rpb24oZGEpe2JrKFpLKGEpKSYmdHlwZW9mIGRhPT09Im9iamVjdCImJkdiKGRhfHx7fSxmdW5jdGlvbihtYSxQYSl7dHlwZW9mIFBhIT09Im9iamVjdCImJihlWyJzc3QuIittYV09U3RyaW5nKFBhKSl9KX0pKFIoYSxGLkQub2opKTtidihlLFIoYSxGLkQuZWQpKTt2YXIgRz1SKGEsRi5ELldkKXx8Cnt9O0diKEcsZnVuY3Rpb24oZGEsbWEpe21hIT09dm9pZCAwJiYoKG1hPT09bnVsbCYmKG1hPSIiKSxkYSE9PUYuRC5mYnx8Zy51aWQpP2JbZGFdIT09bWEmJihmWyhBYihtYSk/InVwbi4iOiJ1cC4iKStTdHJpbmcoZGEpXT1TdHJpbmcobWEpLGJbZGFdPW1hKTpnLnVpZD1TdHJpbmcobWEpKX0pO2lmKFdqKCkmJiFEbSgpJiYhYmsoWksoYSkpKXt2YXIgTj1RKGEsSC5KLm9nKTtOP2UuX2dzaWQ9TjplLm5qaWQ9IjEifXZhciBTPVEoYSxILkouVmkpOyhTPT1udWxsP3ZvaWQgMDpTLnZhbHVlKT4wJiYoZS5nYWY9Uy5nZXQoKSk7dmFyIFc9UihhLEYuRC5XYyk7aWYoVylmb3IodmFyIGVhPW0oT2JqZWN0LmtleXMoVykpLGphPWVhLm5leHQoKTshamEuZG9uZTtqYT1lYS5uZXh0KCkpe3ZhciBmYT1qYS52YWx1ZTtmWyJleHQuIitmYV09V1tmYV18fCIifXZhciBzYT1sUShhKTt2Zy5jYWxsKHRoaXMse0JhOmUsdmU6ZyxMajpmfSxzYS51cmwsc2EuZW5kcG9pbnQsWksoYSksdm9pZCAwLAphLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuTS5ldmVudElkLGEuTS5wcmlvcml0eUlkKX07d2Eoc1EsdmcpOwp2YXIgdFE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5yZXBsYWNlKC9cJFx7KFteXH1dKylcfS9nLGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGJbZF18fGN9KX0sdVE9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz0iIixkPWEucGF0aG5hbWUuaW5kZXhPZigiL2cvY29sbGVjdCIpO2Q+PTAmJihjPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsZCkpO2IudHJhbnNwb3J0X3VybD1hLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZStjO3ZhciBlO3RyeXtlPWVuY29kZVVSSUNvbXBvbmVudChjfHwiLyIpfWNhdGNoKGYpe2U9ZW5jb2RlVVJJQ29tcG9uZW50KCIvIil9Yi5lbmNvZGVkX3BhdGg9ZTtyZXR1cm4gYn0sdlE9ZnVuY3Rpb24oYSxiKXtpZighTSg1NDYpKXJldHVybnt1cmw6YSxib2R5OmJ9O3ZhciBjPW0oYS5zcGxpdCgiPyIpKSxkPWMubmV4dCgpLnZhbHVlLGU9Yy5uZXh0KCkudmFsdWUsZj1oUShkLGV8fCIiLGJ8fCIiLCEwKSxnPWYuSWMsaD1mLmtmO2E9aCE9PSIiP2crIj8iK2g6ZztiPWYuYm9keTsKcmV0dXJue3VybDphLGJvZHk6Yn19LHhRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1SaihiKSxlPXVRKGQpLGY9dlEoWGcoZCksYyksZz1mdW5jdGlvbihoKXtxeChmLnVybCxmLmJvZHksbmV3IHdRKGUsaCkpJiZhJiZrbi5yZWdpc3RlcihhLDEsZi51cmwpfTshTSgxMzIpfHxOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpP2coKTptTChmLnVybCxmLmJvZHksZSxnKX0sd1E9ZnVuY3Rpb24oYSxiKXtDeC5jYWxsKHRoaXMpO3RoaXMudGVtcGxhdGVzPWE7dGhpcy5OPWJ9O3dhKHdRLEN4KTt3US5wcm90b3R5cGUuWj1mdW5jdGlvbihhKXt2YXIgYj10UShhLHRoaXMudGVtcGxhdGVzKTtyZXR1cm4gdGhpcy5OP2IucmVwbGFjZSgiX2lzX3N3PTAiLHRoaXMuTik6Yn07d1EucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLlooYSk7Q3gucHJvdG90eXBlLksuY2FsbCh0aGlzLGMsYil9O3dRLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXMuWihhKTtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYyxiKX07CnZhciB5UT1mdW5jdGlvbihhKXtyZXR1cm4hU2IoYSxGbSgpKSYmIVNiKGEsR20oKSl9LEFRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZighbmQoKSlyZXR1cm4gelEoYSxiLGMsZCksITA7WW4oYyxiIT09IiI/YSsiPyIrYjphLGQsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxlfHx7fSx7UWc6ITB9KSx2b2lkIDAsZil8fHpRKGEsYixjLGQpO3JldHVybiEwfSx6UT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iIT09IiI/YSsiPyIrYjphO2Q/V24oYyxlLGQpOlZuKGMsZSl9LENRPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YixnPXBkKCk7ZyE9PXZvaWQgMCYmKGYrPSImdGZkPSIrTWF0aC5yb3VuZChnKSk7Yj1mO3ZhciBoPWErIj8iK2I7aWYoIWJrKGQpfHxjayhkKXx8eFAoKSl7dmFyIGw9aFEoYSxiLGMsYmsoZCkpO2E9bC5JYztiPWwua2Y7Yz1sLmJvZHk7QVEoYSxiLGUsYyx2b2lkIDAsQlEoYSxiLGUsYykpfHx6UShhLGIsZSxjKX1lbHNlIHhRKGUsaCxjKTsKYmsoZCkmJk0oNTY0KSYmbmQoKSYmVGIoYSwiL2cvY29sbGVjdCIpJiZBLmZldGNoKGEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApLHttZXRob2Q6IlBPU1QiLGJvZHk6IkNqQU9BVHdjQ0JnTyIsY3JlZGVudGlhbHM6Im9taXQifSl9LEJRPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCF5UShhKSl7dmFyIGU9TW1bNjddKHZvaWQgMCk7aWYoZSlyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZjt2YXIgZz1iLnJlcGxhY2UoL15cPy8sIiIpLGg9TnVtYmVyKElqKGcsImdhZiIsITEpKSxsPTA7TnVtYmVyLmlzSW50ZWdlcihoKSYmKGw9aCk7dmFyIG49bmV3IGVyKGwpO2ZyKG4sMSk7aWYobi52YWx1ZSE9PTApe3ZhciBwLHE9bi5nZXQoKSxyPVJlZ0V4cCgiKF58Wz8mXSlnYWY9W14mXSooJnwkKSIpO3A9ci50ZXN0KGcpP2cucmVwbGFjZShyLCIkMWdhZj0iK3ErIiQyIik6Zy5pbmRleE9mKCI/Iik+PTA/ZysiJmdhZj0iK3E6Z1swXT09PSIvInx8Zy5pbmRleE9mKCI6Ly8iKT49MD9nKyI/Z2FmPSIrCnE6Zy5sZW5ndGg+MD9nKyImZ2FmPSIrcToiZ2FmPSIrcTtmPWIuaW5kZXhPZigiPyIpPT09MD8iPyIrcDpwfWVsc2UgZj12b2lkIDA7QVEoZSxmfHxiLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZW5kcG9pbnQ6Njd9KSxkLGMuZW5kcG9pbnQ9PT0xNz92b2lkIDA6e2NyZWRlbnRpYWxzOiJvbWl0In0pfX19LERRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGgpe2QucHVzaChoKyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVtoXSkpfTtkLnB1c2goInY9MiIpO2UoIl9nc2lkIik7ZSgiZ3RtIik7YS5CYS5fZ2VvJiZlKCJfZ2VvIik7dmFyIGY9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWdvb2dsZS1hbmFseXRpY3MuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IiwoYnx8Ind3dyIpKyIuIiksZz1kLmpvaW4oIiYiKTt6UShmLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwKIiIsZW5kcG9pbnQ6NjIsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZisiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjYyfSxxYjpjfSl9LEVRPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly97Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59YW5hbHl0aWNzLmdvb2dsZS5jb20vZy9zL2NvbGxlY3QiLnJlcGxhY2UoIntnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn0iLGI/YisiLiI6IiIpLGU9W10sZj1mdW5jdGlvbihoKXtlLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZigiX2dzaWQiKTtmKCJndG0iKTthLkJhLl9nZW8mJmYoIl9nZW8iKTt2YXIgZz1lLmpvaW4oIiYiKTt6UShkLGcse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOCxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pOwpNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6ZCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjE4fSxxYjpjfSl9LEZRPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtjJiZiLnB1c2goInRhZ19leHA9IitjKTtiLnB1c2goIno9IitEYigpKTtpZighZSl7dmFyIGc9ZCYmU2IoZCwiZ29vZ2xlLiIpJiZkIT09Imdvb2dsZS5jb20iPyJodHRwczovL3d3dy4lL2Fkcy9nYS1hdWRpZW5jZXM/dj0xJnQ9c3Imc2xmX3JkPTEmX3I9NCYiLnJlcGxhY2UoIiUiLGQpOnZvaWQgMDtpZihnKXt2YXIgaD1nK2Iuam9pbigiJiIpO1huKHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6NDcsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9LGgpO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDpoLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6NDd9LHFiOmZ9KX19fSxHUT0KZnVuY3Rpb24oYSxiLGMsZCl7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7elEoImh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0Iiwidj0yJiIrYi5qb2luKCImIikse2Rlc3RpbmF0aW9uSWQ6YS5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDoxOSxldmVudElkOmEuZXZlbnRJZCxwcmlvcml0eUlkOmEucHJpb3JpdHlJZH0pO01sKHt0YXJnZXRJZDpTdHJpbmcoYS5CYS50aWQpLHJlcXVlc3Q6e3VybDoiaHR0cHM6Ly9zdGF0cy5nLmRvdWJsZWNsaWNrLm5ldC9nL2NvbGxlY3Q/dj0yJiIrYi5qb2luKCImIikscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOX0scWI6ZH0pfSxIUT1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGModil7cS5wdXNoKHYrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW3ZdKSl9dmFyIGQ9Yi54dCxlPWIuQnQsZj1iLkF0LGc9Yi56dCxoPWIuWnIsbD1iLkNzLG49Yi5QcixwPWIuR3Q7aWYoZHx8ZXx8Znx8Zyl7dmFyIHE9CltdO2EuQmEuX25nJiZjKCJfbmciKTthLkJhLm5ncyYmYygibmdzIik7YS5CYS5pYnQmJmMoImlidCIpO2MoInRpZCIpO2MoImNpZCIpO2MoImd0bSIpO2Zvcih2YXIgcj1tKE9GKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZTthLkJhW3VdIT1udWxsJiZjKHUpfXEucHVzaCgiYWlwPTEiKTthLnZlLnVpZCYmcS5wdXNoKCJ1aWQ9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS52ZS51aWQpKTtjKCJkbWEiKTthLkJhLmRtYV9jcHMhPW51bGwmJmMoImRtYV9jcHMiKTthLkJhLmdjcyE9bnVsbCYmYygiZ2NzIik7YygiZ2NkIik7YS5CYS5ucGEhPW51bGwmJmMoIm5wYSIpO2EuQmEuZnJtIT1udWxsJiZjKCJmcm0iKTtkJiZHUShhLHEuc2xpY2UoKSxwLGIucWIpO2UmJkZRKGEscS5zbGljZSgpLHAsaCxsLGIucWIpO2YmJkVRKGEsbixiLnFiKTtnJiZEUShhLG4sYi5xYil9fSxJUT1mdW5jdGlvbigpe3RoaXMuUj0xO3RoaXMuWj17fTt0aGlzLks9LTE7dGhpcy5IPQpuZXcgd2d9O0lRLnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPW5ldyBzUShhLHRoaXMuWixiKSxlPXtldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGY9eVAoYSksZyxoO2YmJnRoaXMuSC5SKGQpfHx0aGlzLmZsdXNoKCk7dmFyIGw9ZiYmdGhpcy5ILmFkZChkKTtpZihsKXtpZih0aGlzLks8MCl7dmFyIG49QSxwPW4uc2V0VGltZW91dCxxO2JrKFpLKGEpKT9KUT8oSlE9ITEscT1LUSk6cT1MUTpxPTVFMzt0aGlzLks9cC5jYWxsKG4sZnVuY3Rpb24oKXtjLmZsdXNoKCl9LHEpfX1lbHNle3ZhciByPXpnKGQsdGhpcy5SKyspLHQ9ci5wYXJhbXMsdT1yLmJvZHk7Zz10O2g9dTtGeSgzLGEuZXZlbnROYW1lKTtDUShkLmJhc2VVcmwsdCx1LGQuTix7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmQuZW5kcG9pbnQsZXZlbnRJZDpkLmV2ZW50SWQscHJpb3JpdHlJZDpkLnByaW9yaXR5SWR9KTsKdmFyIHY9UShhLEguSi5oZCkseD1RKGEsSC5KLnJnKSx5PVEoYSxILkouTmgpLHo9UShhLEguSi5NaCksQz1PKGEuTSxGLkQudWkpIT09ITEsRD1TdChhLk0pLEk9e3h0OnYsQnQ6eCxBdDp5LHp0OnosWnI6RW0oKSxtdjpDLGx2OkQsQ3M6QW0oKSxxYjplLE06YS5NLFByOkRtKCksR3Q6Q3AoYSl9O0hRKGQsSSl9Zm4uSCYmQXooYS5NLmV2ZW50SWQpO05sKGZ1bmN0aW9uKCl7aWYobCl7dmFyIEc9emcoZCksTj1HLmJvZHk7Zz1HLnBhcmFtcztoPU59cmV0dXJue3RhcmdldElkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQscmVxdWVzdDp7dXJsOmQuYmFzZVVybCsiPyIrZyxwYXJhbWV0ZXJFbmNvZGluZzoyLHBvc3RCb2R5OmgsZW5kcG9pbnQ6ZC5lbmRwb2ludH0scWI6ZSxpc0JhdGNoZWQ6ITF9fSl9O0lRLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7WUsoYSkmJiF4UCgpP3RoaXMuZmEoYSk6dGhpcy5OKGEpfTtJUS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLkguZXZlbnRzLmxlbmd0aCl7dmFyIGE9CkJnKHRoaXMuSCx0aGlzLlIrKyk7Q1EodGhpcy5ILmJhc2VVcmwsYS5wYXJhbXMsYS5ib2R5LHRoaXMuSC5LLHtkZXN0aW5hdGlvbklkOnRoaXMuSC5kZXN0aW5hdGlvbklkfHwiIixlbmRwb2ludDp0aGlzLkguZW5kcG9pbnQsZXZlbnRJZDp0aGlzLkguWixwcmlvcml0eUlkOnRoaXMuSC5mYX0pO3RoaXMuSD1uZXcgd2c7dGhpcy5LPj0wJiYoQS5jbGVhclRpbWVvdXQodGhpcy5LKSx0aGlzLks9LTEpfX07SVEucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1ZSyhhKTtNKDU2OCkmJiFNKDU4NikmJlIoYSxGLkQuQmMpPT09ImEiJiYoYz1jdyhjKSk7aWYoRXcoYykpe3ZhciBkPXN3KGMpO2Q/ZC50aGVuKGZ1bmN0aW9uKGYpe2IuTihhLGYpfSxmdW5jdGlvbigpe2IuTihhKX0pOnRoaXMuTihhKX1lbHNle3ZhciBlPUR3KGMpO3RoaXMuTihhLGUpfX07dmFyIEtRPU5mKDI0LDUwMCksTFE9TmYoNTYsNUUzKSxKUT0hMDt2YXIgTVE9ZnVuY3Rpb24oYSl7dmFyIGI9U3QoYS5NKTtPKGEuTSxGLkQuV2IpPT09ITAmJihiPSExKTtWKGEsSC5KLndkLGIpfTsKdmFyIE5RPWZ1bmN0aW9uKGEsYixjKXtjPT09dm9pZCAwJiYoYz17fSk7aWYoYj09bnVsbClyZXR1cm4gYztpZih0eXBlb2YgYj09PSJvYmplY3QiKWZvcih2YXIgZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtOUShhKyIuIitmLGJbZl0sYyl9ZWxzZSBjW2FdPWI7cmV0dXJuIGN9LE9RPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltlXT0hIVhvKGUpfXJldHVybiBifSxRUT1mdW5jdGlvbihhLGIpe3ZhciBjPVBRLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hWG8oZSl9KTtpZihjLmxlbmd0aCl7dmFyIGQ9T1EoYyk7JG8oYyxmdW5jdGlvbigpe2Zvcih2YXIgZT1PUShjKSxmPVtdLGc9bShjKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTshZFtsXSYmZVtsXSYmZi5wdXNoKGwpO2VbbF0mJgooZFtsXT0hMCl9aWYoZi5sZW5ndGgpe1YoYixILkouR2gsITApO3ZhciBuPWYubWFwKGZ1bmN0aW9uKHApe3JldHVybiBMb1twXX0pLmpvaW4oIi4iKTtuJiZXSyhiLCJnY3V0IixuKTtNUShiKTthKGIpfX0pfX0sUlE9ZnVuY3Rpb24oYSl7UihhLEYuRC5XYykmJiFiayhaSyhhKSkmJlUoYSxGLkQuV2MpfSxTUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsIm5hdnQiLHFkKCkpfSxUUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJldLKGEsImxwYyIsaXIoKSl9LFVRPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9TyhhLk0sRi5ELldiKSxjO2I9PT0hMCYmKGM9IjEiKTtiPT09ITEmJihjPSIwIik7YyYmV0soYSwicmRwIixjKX19LFZRPWZ1bmN0aW9uKGEsYil7aWYoYmsoWksoYikpKXt2YXIgYz1RKGIsSC5KLm1nKTsoYi5ldmVudE5hbWU9PT0icGFnZV92aWV3Inx8YykmJlFRKGEsYil9fSxXUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkmJmEuZXZlbnROYW1lPT09Ri5ELnlmJiYKUShhLEguSi5HaCkpe3ZhciBiPVIoYSxGLkQueGkpO2ImJihXSyhhLCJnY3V0IixiKSxXSyhhLCJzeW4iLDEpKX19LFhRPWZ1bmN0aW9uKGEsYixjKXtpZihhPT09YilyZXR1cm4gV2ooKSYmU2IoYysiLyIsWGooKSsiLyIpPyI3IjoiMSI7aWYoVGIoYSwiLiIrYikpcmV0dXJuIjIiO2lmKFRiKGIsIi4iK2EpKXJldHVybiIzIjt2YXIgZD1hLnNwbGl0KCIuIiksZT1iLnNwbGl0KCIuIiksZj1mdW5jdGlvbihnKXtpZihkLmxlbmd0aDxnfHxlLmxlbmd0aDxnKXJldHVybiExO2Zvcih2YXIgaD0xO2g8PWc7aCsrKWlmKGRbZC5sZW5ndGgtaF0hPT1lW2UubGVuZ3RoLWhdKXJldHVybiExO3JldHVybiEwfTtyZXR1cm4gZigzKT8iNiI6ZigyKT8iNSI6IjQifSxZUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPWVrKGEuTSk7aWYoYil7dmFyIGM9WWooYiwiLyIpLGQ9UmooYyksZT1OaihkLCJob3N0IiksZj1OaihBLmxvY2F0aW9uLCJob3N0Iik7aWYoZSYmZil7dmFyIGc9TmooZCwKInBhdGgiKTthLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEse3NzdGQ6WFEoZSxmLGcpfSl9fX19LFpRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmVihhLEguSi5KYSwhMSl9LCRRPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmKFEoYSxILkouSmEpJiZXSyhhLCJzcCIsMSksUShhLEguSi5JcSkmJldLKGEsInN5biIsMSksUShhLEguSi5QYykmJihXSyhhLCJlbV9ldmVudCIsMSksV0soYSwic3AiLDEpKSl9LGFSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9JGsoMjUpO2ImJldLKGEsInRmdCIsTnVtYmVyKGIpKX19LGJSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZSl7dmFyIGY9TlEoRi5ELkFjLGUpO0diKGYsZnVuY3Rpb24oZyxoKXtVKGEsZyxoKX0pfWlmKGJrKFpLKGEpKSl7dmFyIGM9ZEkoYSwiY2NkX2FkZF8xcF9kYXRhIiwhMSk/MTowO1dLKGEsInVkZSIsYyk7dmFyIGQ9TyhhLk0sRi5ELkFjKTtkIT09dm9pZCAwPyhadihkKSxiKGQpLFUoYSxGLkQuQmMsImMiKSk6CmIoUShhLEguSi5ZYSkpO1YoYSxILkouWWEpfX0sY1I9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1WTSgpO2ImJldLKGEsInVzX3ByaXZhY3kiLGIpO3ZhciBjPUx0KCk7YyYmV0soYSwiZ2RwciIsYyk7dmFyIGQ9S3QoKTtkJiZXSyhhLCJnZHByX2NvbnNlbnQiLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZXSyhhLCJncHAiLGUpO3ZhciBmPWtGLkg7ZiYmV0soYSwiZ3BwX3NpZCIsZil9fSxkUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJk8oYS5NLEYuRC5tYikmJldLKGEsImFkciIsMSl9LGVSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9RG0oKTtiJiZXSyhhLCJnY3N1YiIsYil9fSxmUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe08oYS5NLEYuRC5TYyx2b2lkIDAsNCk9PT0hMSYmV0soYSwibmdzIiwxKTtBbSgpJiZXSyhhLCJnYV9yZCIsMSk7VksoKXx8V0soYSwibmdzdCIsMSk7dmFyIGI9RW0oKTtiJiZXSyhhLCJldGxkIixiKX19LGdSPQpmdW5jdGlvbihhKXt9LGhSPWZ1bmN0aW9uKGEpe2JrKFpLKGEpKSYmRWwoKSYmV0soYSwicm5kIixRTSgpKX0sUFE9W0YuRC5rYSxGLkQubWEsRi5ELlhhXTsKdmFyIGlSPWZ1bmN0aW9uKGEsYil7dmFyIGM7YTp7aWYoIVEoYSxILkouRmMpKXt2YXIgZD1UUChhKTtpZihkKXtpZihSUChkLGEpKXtjPWQ7YnJlYWsgYX1QKDI1KTthLmlzQWJvcnRlZD0hMH19Yz12b2lkIDB9dmFyIGU9YztyZXR1cm57Y2xpZW50SWQ6RVAoYSxiKSx6YjplfX0salI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1RbyhPKGEuTSxGLkQuS2IpKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpKWY/Q1AoYSxmLDEpOihQKDEyNyksYS5pc0Fib3J0ZWQ9ITApO2Vsc2V7dmFyIGc9Zj8xOjg7VihhLEguSi5IaCwhMSk7Znx8KGY9RlAoYSksZz0zKTtmfHwoZj1iLGc9NSk7aWYoIWYpe3ZhciBoPVhvKEYuRC5yYSksbD16UCgpO2Y9IWwuZnJvbV9jb29raWV8fGg/bC52aWQ6dm9pZCAwO2c9Nn1mP2Y9IiIrZjooZj1BdigpLGc9NyxWKGEsSC5KLm5nLCEwKSxWKGEsSC5KLkhoLCEwKSk7Q1AoYSxmLGcpfVIoYSxGLkQuS2IpO2lmKCFRKGEsSC5KLkZjKSl7dmFyIG49ClEoYSxILkouRWIpLHA9TWF0aC5mbG9vcihuLzFFMykscT12b2lkIDA7UShhLEguSi5IaCl8fChxPVNQKGEpfHxjKTt2YXIgcj1JYihPKGEuTSxGLkQueWgsMzApKTtyPU1hdGgubWluKDQ3NSxyKTtyPU1hdGgubWF4KDUscik7dmFyIHQ9SWIoTyhhLk0sRi5ELlBpLDFFNCkpLHU9TFAocSk7VihhLEguSi5uZywhMSk7VihhLEguSi5UZSwhMSk7VihhLEguSi5wZywwKTt1JiZ1LmomJlYoYSxILkoucGcsTWF0aC5tYXgoMCx1LmotTWF0aC5tYXgoMCxwLXUudCkpKTt2YXIgdj0hMTtpZighdSl7VihhLEguSi5uZywhMCk7dj0hMDt2YXIgeD17fTt1PSh4LnM9U3RyaW5nKHApLHgubz0xLHguZz0hMSx4LnQ9cCx4Lmw9ITEseC5oPXZvaWQgMCx4KX1wPnUudCtyKjYwJiYodj0hMCx1LnM9U3RyaW5nKHApLHUubysrLHUuZz0hMSx1Lmg9dm9pZCAwKTtpZih2KVYoYSxILkouVGUsITApLGQubHMoYSk7ZWxzZSBpZihkLlhyKCk+dHx8YS5ldmVudE5hbWU9PT1GLkQuc2MpdS5nPSEwO1EoYSxILkoubGcpPwpPKGEuTSxGLkQuZmIpP3UubD0hMDp1Lmw9ITE6dS5sPSExO3ZhciB5PXUuaDtpZihRKGEsSC5KLmxnKXx8YmsoWksoYSkpKXt2YXIgej1PKGEuTSxGLkQub2gpLEM9ej8xOjg7enx8KHo9eSxDPTQpO3p8fCh6PXp2KCksQz03KTt2YXIgRD16LnRvU3RyaW5nKCksST1DLEc9UShhLEguSi50bCk7aWYoRz09PXZvaWQgMHx8STw9RylVKGEsRi5ELm9oLEQpLFYoYSxILkoudGwsSSl9ZT8oYS5jb3B5VG9IaXREYXRhKEYuRC54Yyx1LnMpLGEuY29weVRvSGl0RGF0YShGLkQuQWgsdS5vKSxhLmNvcHlUb0hpdERhdGEoRi5ELnpoLHUuZz8xOjApKTooVShhLEYuRC54Yyx1LnMpLFUoYSxGLkQuQWgsdS5vKSxVKGEsRi5ELnpoLHUuZz8xOjApKTtWKGEsSC5KLnJtLHUubD8xOjApO1dqKCkmJlYoYSxILkoub2csdS5kfHxjYygpKX19Owp2YXIga1I9ZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmRleE9mKCI/IiksYz1iPT09LTE/YTphLnN1YnN0cmluZygwLGIpLGQ9S2ooYyk7ZCYmKGM9ZCk7cmV0dXJuIGI9PT0tMT9jOiIiK2MrYS5zdWJzdHJpbmcoYil9LGxSPWZ1bmN0aW9uKGEpe2lmKCFPKGEuTSxGLkQuWWMpfHwhTyhhLk0sRi5ELlpjKSl7dmFyIGI9YS5jb3B5VG9IaXREYXRhLGM9Ri5ELnphLGQ9IiIsZT1CLmxvY2F0aW9uO2lmKGUpe3ZhciBmPWUucGF0aG5hbWV8fCIiO2YuY2hhckF0KDApIT09Ii8iJiYoZj0iLyIrZik7dmFyIGc9ZS5zZWFyY2h8fCIiO2lmKGdbMF09PT0iPyIpZm9yKHZhciBoPWcuc3Vic3RyaW5nKDEpLnNwbGl0KCImIiksbD0wO2w8aC5sZW5ndGg7KytsKXt2YXIgbj1oW2xdLnNwbGl0KCI9Iik7biYmbi5sZW5ndGg9PT0yJiZuWzBdPT09IndicmFpZCImJihnPWcucmVwbGFjZSgvKFs/Jl0pd2JyYWlkPVteJl0rLywiJDF3YnJhaWQ9IiskYihuWzFdKSkpfWQ9ZS5wcm90b2NvbCsiLy8iK2UuaG9zdG5hbWUrCmYrZ31iLmNhbGwoYSxjLGQsa1IpO3ZhciBwPWEuY29weVRvSGl0RGF0YSxxPUYuRC5VYSxyPXVBKCJndG0uZ3RhZ1JlZmVycmVyLiIrYS50YXJnZXQuZGVzdGluYXRpb25JZCksdD1CLnJlZmVycmVyO3AuY2FsbChhLHEsKHI/IiIrcjp0KXx8dm9pZCAwLGtSKTthLmNvcHlUb0hpdERhdGEoRi5ELk1iLEIudGl0bGUpO2EuY29weVRvSGl0RGF0YShGLkQudGIsKEhjLmxhbmd1YWdlfHwiIikudG9Mb3dlckNhc2UoKSk7dmFyIHU9cUkoKTthLmNvcHlUb0hpdERhdGEoRi5ELmJkLHUud2lkdGgrIngiK3UuaGVpZ2h0KTthLmNvcHlUb0hpdERhdGEoRi5ELllmLHZvaWQgMCxrUik7VE0oKSYmYS5jb3B5VG9IaXREYXRhKEYuRC5QZCwiMSIpfX07dmFyIG5SPWZ1bmN0aW9uKGEpe3ZhciBiPXhDKGEuTSksYz1mdW5jdGlvbihkLGUpe21SW2RdJiZVKGEsZCxlKX07Q2QoYltGLkQuS2ZdKT9HYihiW0YuRC5LZl0sZnVuY3Rpb24oZCxlKXtjKChGLkQuS2YrIl8iK2QpLnRvTG93ZXJDYXNlKCksZSl9KTpHYihiLGMpfSxvUj17fSxtUj0ob1JbRi5ELkdmXT0xLG9SW0YuRC5IZl09MSxvUltGLkQuSWZdPTEsb1JbRi5ELkpmXT0xLG9SW0YuRC5MZl09MSxvUltGLkQuTWZdPTEsb1IpO3ZhciBwUj1mdW5jdGlvbihhKXtpZighYmsoWksoYSkpJiZRKGEsSC5KLm1nKSYmWG8oRi5ELmthKSYmZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSl7dmFyIGI9TEsoYSksYz1IcihiLnByZWZpeCksZD1ScyhjKTtVKGEsRi5ELkJlLGQuRWcpO1UoYSxGLkQuRGUsZC5XaCk7VShhLEYuRC5DZSxkLlVoKX19O3ZhciBxUj1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpO2ImJklQKEouVS54bik7UShhLEguSi5QYykmJklQKEouVS5Oayk7dmFyIGM9eWsoemsoKSk7KGJ8fE1rKGMpfHxjJiZjLnBhcmVudCYmYy5jb250ZXh0JiZjLmNvbnRleHQuc291cmNlPT09NSkmJklQKEouVS5mbik7UShhLEguSi5jaikmJklQKEouVS5JbSk7UShhLEguSi5iaikmJklQKEouVS5IbSl9O3ZhciByUj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLlZpKXx8bmV3IGVyO1EoYSxILkouYmopJiZRKGEsSC5KLmNqKSYmZnIoYiwyKTtWKGEsSC5KLlZpLGIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O3ZhciB1Uj1mdW5jdGlvbihhKXtpZih0Ui5Nci5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKS5pbmRleE9mKGEuZXZlbnROYW1lKT49MClhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPVhLKGEpO2ImJmIuYmxhY2tsaXN0ZWQmJihhLmlzQWJvcnRlZD0hMCl9fSx0Uj17TXI6TGYoMzEpfTtmdW5jdGlvbiB2UihhKXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4hIWMmJmMuY29udmVyc2lvbn07VihhLEguSi5tZyxiKFhLKGEpKSk7UShhLEguSi5uZykmJlYoYSxILkouWW0sYihYSyhhLCJmaXJzdF92aXNpdCIpKSk7UShhLEguSi5UZSkmJlYoYSxILkouYm4sYihYSyhhLCJzZXNzaW9uX3N0YXJ0IikpKX07dmFyIHdSPWZ1bmN0aW9uKGEpe0ZvLmhhc093blByb3BlcnR5KGEuZXZlbnROYW1lKSYmKFYoYSxILkouV20sITApLGEuY29weVRvSGl0RGF0YShGLkQuSGEpLGEuY29weVRvSGl0RGF0YShGLkQuZWIpKX07dmFyIHhSPWZ1bmN0aW9uKGEpe1EoYSxILkouYmUpP1YoYSxILkoubGcsITEpOmRJKGEsImNjZF9hZGRfZWNfc3RpdGNoaW5nIiwhMSkmJlYoYSxILkoubGcsITApfTt2YXIgeVI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5wZyk7Yj1ifHwwO3ZhciBjPSEhUShhLEguSi5zYSksZD1iPT09MHx8YztWKGEsSC5KLmVqLGQpO2QmJlYoYSxILkoucGcsNjApfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBEUj1mdW5jdGlvbihhKXtpZihDUihhLnRhcmdldC5kZXN0aW5hdGlvbklkKSlQKDI4KSxhLmlzQWJvcnRlZD0hMDtlbHNle3ZhciBiPXhrKCk7aWYoYiYmQXJyYXkuaXNBcnJheShiLmRlc3RpbmF0aW9ucykpZm9yKHZhciBjPTA7YzxiLmRlc3RpbmF0aW9ucy5sZW5ndGg7YysrKWlmKENSKGIuZGVzdGluYXRpb25zW2NdKSl7UCgxMjUpO2EuaXNBYm9ydGVkPSEwO2JyZWFrfX19O3ZhciBFUj1mdW5jdGlvbihhKXt2YXIgYj1CLmxvY2F0aW9uLnByb3RvY29sO2IhPT0iaHR0cDoiJiZiIT09Imh0dHBzOiImJihQKDI5KSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBGUj1mdW5jdGlvbihhKXtIYyYmSGMubG9hZFB1cnBvc2U9PT0icHJldmlldyImJihQKDMwKSxhLmlzQWJvcnRlZD0hMCl9O3ZhciBHUj1mdW5jdGlvbihhLGIpe2IuVGomJihWKGEsSC5KLnNhLCEwKSxiLlRqPSExLFdqKCkmJlYoYSxILkoub2csY2MoKSkpfTt2YXIgSFI9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjLGQpe0JvW2NdfHxkPT09dm9pZCAwfHxVKGEsYyxkKX1NKDU1MCkmJkdiKGEuTS5XYSxiKTtHYihhLk0uaGIsYik7R2IoYS5NLkVhLGIpfTt2YXIgSVI9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWU9PT1GLkQud2EmJihPKGEuTSxGLkQuVGQsITApPyhhLk0uRWFbRi5ELk9hXSYmKE0oNTUwKSYmKGEuTS5XYVtGLkQuT2FdPWEuTS5FYVtGLkQuT2FdKSxhLk0uaGJbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSxhLk0uRWFbRi5ELk9hXT12b2lkIDAsVShhLEYuRC5PYSkpLGEuZXZlbnROYW1lPUYuRC5zYyk6YS5pc0Fib3J0ZWQ9ITApfTsKdmFyIEpSPWZ1bmN0aW9uKGEpe2lmKE0oMTMyKSl7dmFyIGI9WksoYSk7aWYoYmsoYikpaWYoY2soYikpY2soWksoYSkpJiZhLm1lcmdlSGl0RGF0YUZvcktleShGLkQuVGEseyIzcGQiOiIxIn0pO2Vsc2UgaWYoIShOYygiOyB3diIpfHxOYygiRkJBTiIpfHxOYygiRkJBViIpfHxQYygpKSYmWG8oRi5ELnJhKSl7VihhLEguSi5kbiwhMCk7YmsoWksoYSkpJiZXSyhhLCJzd19leHAiLDEpO2E6e2lmKCFNKDEzMil8fCFiayhaSyhhKSl8fGNrKFpLKGEpKSlicmVhayBhO2I6e3ZhciBjPXtvdDpZaihlayhhLk0pLCIvXy9zZXJ2aWNlX3dvcmtlciIpfSxkO2Q9KGM9PT12b2lkIDA/e306Yykub3Q7dmFyIGU9aUwoZCk7aWYoZT09PW51bGx8fCFiZygiaW50ZXJuYWxfc3dfYWxsb3dlZCIsIiIpfHxqTChlLm9yaWdpbikpYnJlYWsgYjsKaWYoIUljKCkpe2dMKCkuSyh2b2lkIDAsdm9pZCAwLDYpO2JyZWFrIGJ9dmFyIGY9bmV3IGtMKGUpO29tKGptLmJhLk9oLHt9KVtlLm9yaWdpbl09Zjt9fX19fTt2YXIgTFI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5PbCk7TyhhLk0sRi5ELnhoKSYmKFUoYSxGLkQueGgsITApLGJrKFpLKGEpKXx8S1IoYSkpfSxLUj1mdW5jdGlvbihhKXt2YXIgYj1GLkQuYmQsYztjfHwoYz1mdW5jdGlvbigpe30pO1IoYSxiKSE9PXZvaWQgMCYmVShhLGIsYyhSKGEsYikpKX07dmFyIE1SPSJnY2xpZCBkY2xpZCBnY2xzcmMgd2JyYWlkIGdicmFpZCBnYWRfc291cmNlIGdhZF9jYW1wYWlnbmlkIHV0bV9zb3VyY2UgdXRtX21lZGl1bSB1dG1fY2FtcGFpZ24gdXRtX3Rlcm0gdXRtX2NvbnRlbnQgdXRtX2lkIi5zcGxpdCgiICIpO2Z1bmN0aW9uIE5SKCl7dmFyIGE9Qi5sb2NhdGlvbixiLGM9YT09bnVsbD92b2lkIDA6KGI9YS5zZWFyY2gpPT1udWxsP3ZvaWQgMDpiLnJlcGxhY2UoIj8iLCIiKSxkO2lmKGMpe2Zvcih2YXIgZT1bXSxmPUpqKGMsITApLGc9bShNUiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1mW2xdO2lmKG4pZm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07cSE9PXZvaWQgMCYmZS5wdXNoKHtuYW1lOmwsdmFsdWU6cX0pfX1kPWV9ZWxzZSBkPVtdO3JldHVybiBkfTt2YXIgT1I9ZnVuY3Rpb24oYSl7dmFyIGI9TSgyNjYpLGM9TSgyNjcpO2lmKGJ8fGMpe3ZhciBkPVIoYSxGLkQuemEpO2lmKGQmJmQuaW5kZXhPZigiPyIpPT09LTEpe3ZhciBlPU5SKCk7aWYoZS5sZW5ndGghPT0wJiYoYiYmSVAoSi5VLkdtKSxjKSl7SVAoSi5VLkZtKTt2YXIgZj1lLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gZy5uYW1lKyI9IitnLnZhbHVlfSkuam9pbigiJiIpO1UoYSxGLkQuemEsZCsiPyIrZil9fX19O3ZhciBQUj1bRi5ELnJhLEYuRC5rYV0sUVI9W0YuRC5yYSxGLkQua2EsRi5ELm1hXTsKZnVuY3Rpb24gUlIoYSl7dmFyIGIsYz1NKDUwNikmJiFkSShhLCJjY2RfZ2FfYWRzX2lkc19vcHRfb3V0IiwhMSksZD0hIWRJKGEsImdvb2dsZV9uZyIsITEpLGU9WG8oYz9kP1FSOmZwOlBSKSxmO2Y9ZEkoYSxGLkQuVWYsTyhhLk0sRi5ELlVmKSl8fCEhZEkoYSwiZ29vZ2xlX25nIiwhMSk7Yj17aGY6YyxFczpkLEdvOmUsZmY6ZixMZzohIWRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSksYmk6QW0oKSxHajohVksoKSxGczpiayhaSyhhKSksRHM6ISFRKGEsSC5KLmJlKSxHczohIVEoYSxILkouVGUpLHVzOiEhTyhhLk0sRi5ELk5sKSxLczohIVEoYSxILkouZWopLHhnOk8oYS5NLEYuRC5TYyksbnI6TyhhLk0sRi5ELlNjLHZvaWQgMCw0KSxIczohIVEoYSxILkouRmMpfTtWKGEsSC5KLmNqLGIuZmYpO1YoYSxILkouYmosU1IoYikpO2IuaGYmJiFiLmZmJiZiLkxnJiZTUihiKSYmVShhLCJfJmlidCIsIjEiKTtTUihiKSYmYi5HbyYmKGIuaGY/Yi54ZyE9PSExfHxiLkxnOjEpJiZWKGEsCkguSi5ybiwhMCk7Yi5FcyYmIWIuYmkmJlUoYSxGLkQuTGUsMSk7KGIuaGY/Yi54ZzpiLm5yKT09PSExJiZVKGEsIl8mbmdzIiwiMSIpO1YoYSxILkouaGQsVFIoYikmJihiLkdzfHxiLnVzKSk7VihhLEguSi5yZyxUUihiKSYmYi5LcyYmIWIuYmkpfWZ1bmN0aW9uIFNSKGEpe3JldHVybiBhLmhmPyhhLkxnfHxhLmZmKSYmIWEuYmkmJiFhLkdqOmEuZmYmJmEueGchPT0hMSYmIWEuR2omJiFhLmJpfWZ1bmN0aW9uIFRSKGEpe2lmKGEuSHMpcmV0dXJuITE7aWYoYS5oZil7aWYoIWEuZmYmJiFhLkxnKXJldHVybiExfWVsc2UgaWYoIWEuZmYpcmV0dXJuITE7cmV0dXJuIGEuRnN8fGEuRHN8fGEuR2p8fChhLmhmP2EueGc9PT0hMSYmIWEuTGc6YS54Zz09PSExKXx8IWEuR28/ITE6ITB9O3ZhciBVUj1mdW5jdGlvbihhKXtzTCgpJiZVKGEsRi5ELkZlLCIxIil9O3ZhciBWUj1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4OlN0cmluZyhPKGEuTSxGLkQubmIsIiIpKSxwYXRoOlN0cmluZyhPKGEuTSxGLkQudmMsIi8iKSksZmxhZ3M6U3RyaW5nKE8oYS5NLEYuRC5UYiwiIikpLGRvbWFpbjpTdHJpbmcoTyhhLk0sRi5ELkxiLCJhdXRvIikpLHBkOk51bWJlcihPKGEuTSxGLkQuQ2IsNjMwNzJFMykpfTtWKGEsSC5KLkdhLGIpfTt2YXIgV1I9ZnVuY3Rpb24oYSl7aWYoTSg0MzUpfHxNKDU1Mykpe3ZhciBiPURtKCk7YiYmVihhLEguSi5BcSxiKX19O3ZhciBZUj1mdW5jdGlvbihhKXthLmNvcHlUb0hpdERhdGEoRi5ELlJpKTtmb3IodmFyIGI9TyhhLk0sRi5ELlJsKXx8W10sYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2lmKGQucnVsZV9yZXN1bHQpe2EuY29weVRvSGl0RGF0YShGLkQuUmksZC50cmFmZmljX3R5cGUpO0lQKEouVS5Fbik7YnJlYWt9fX07dmFyIFpSPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkmJmEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1PKGEuTSxGLkQudWMpIT09ITE7aWYoYil7dmFyIGM9TEsoYSk7Yy5wZCYmKGMucGQ9TWF0aC5taW4oYy5wZCw3Nzc2RTMpKTtQSyh7VG46YixtbzpPbyhPKGEuTSxGLkQuRGIpKSxRbzohIU8oYS5NLEYuRC56YyksVW46Y30pfX19O3ZhciAkUj1mdW5jdGlvbihhKXtWKGEsSC5KLk1oLCExKTtWKGEsSC5KLk5oLCExKTtpZighRG0oKSYmV2ooKSYmIWJrKFpLKGEpKSYmIVEoYSxILkouYmUpJiZRKGEsSC5KLmVqKSl7dmFyIGI9UShhLEguSi5yZyk7UShhLEguSi5vZykmJihiP1YoYSxILkouTmgsITApOlYoYSxILkouTWgsITApKX19O3ZhciBhUz1mdW5jdGlvbihhKXtPKGEuTSxGLkQuemMpJiYoWG8oRi5ELnJhKXx8TyhhLk0sRi5ELktiKXx8VShhLEYuRC5abSwhMCkpO3ZhciBiO3ZhciBjO2M9Yz09PXZvaWQgMD8zOmM7dmFyIGQ9QS5sb2NhdGlvbi5ocmVmO2lmKGQpe3ZhciBlPVJqKGQpLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZj1JaihlLCJfZ2wiLCExLCEwKXx8IiI7Yj1mP1ZxKGYsYykhPT12b2lkIDA6ITF9ZWxzZSBiPSExO2ImJmJrKFpLKGEpKSYmV0soYSwiZ2x2IiwxKTtpZihhLmV2ZW50TmFtZSE9PUYuRC53YSlyZXR1cm57fTtPKGEuTSxGLkQuemMpJiZBcyhbImF3IiwiZGMiXSk7Q3MoWyJhdyIsImRjIl0pO3ZhciBnPSRQKGEpLGg9WlAoYSk7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aD9nOmh9O3ZhciBiUz1mdW5jdGlvbihhKXt2YXIgYj0hMDtiPWI9PT12b2lkIDA/ITE6YjtpZihNKDQyNSkmJiEocGwoKXx8YiYmUShhLEguSi5kail8fGEuZXZlbnROYW1lIT09Ri5ELndhfHxRKGEsSC5KLkZjKSkpe3ZhciBjPXt9LGQ9e30sZT17ZXZlbnRNZXRhZGF0YTpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEuTS5ldmVudE1ldGFkYXRhLChjW0guSi5GY109ITAsYyksYj97fTooZFtILkouRGNdPVguVi5LYSxkKSksbm9HdG1FdmVudDohMH0sZj1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLCJzdHJ1Y3R1cmVkX2RhdGEiLGEuTS5FYSk7bUQoZixhLk0uZXZlbnRJZCxlKX19Owp2YXIgZFM9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fGNTLnRlc3QoYSl8fERvLmhhc093blByb3BlcnR5KGEpfSxjUz0vXihffGdhX3xnb29nbGVffGd0YWdcLnxmaXJlYmFzZV8pLiokLyxlUz1mdW5jdGlvbihhKXt0aGlzLnlhPWE7dGhpcy5IPXRoaXMuemI9dGhpcy5jbGllbnRJZD12b2lkIDA7dGhpcy5qYT10aGlzLlI9ITE7dGhpcy5MYT0wO3RoaXMuTj0hMTt0aGlzLlo9e1RqOiExfTt0aGlzLmZhPW5ldyBJUTt0aGlzLks9bmV3IEhQfTtrPWVTLnByb3RvdHlwZTtrLlpzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLGU9YkModGhpcy55YSk7aWYoZSlpZihjLmV2ZW50TWV0YWRhdGFbSC5KLmFlXSYmYS5jaGFyQXQoMCk9PT0iXyIpYy5vbkZhaWx1cmUoKTtlbHNle2EhPT1GLkQud2EmJmEhPT1GLkQuSmImJmRTKGEpJiZQKDU4KTt2YXIgZj1uZXcgYUkoZSxhLGMpO1YoZixILkouRWIsYik7dmFyIGc9W0YuRC5yYV0saD1iayhaSyhmKSk7VihmLEguSi5kaixoKTtpZihkSShmLEYuRC5VZiwKTyhmLk0sRi5ELlVmKSl8fGgpZy5wdXNoKEYuRC5rYSksZy5wdXNoKEYuRC5tYSk7Rk0uZmEoZnVuY3Rpb24oKXticChmdW5jdGlvbigpe2QuYnQoZil9LGcpfSl9ZWxzZSBjLm9uRmFpbHVyZSgpfTtrLmJ0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e0hNKGEpO2lmKGEuaXNBYm9ydGVkKXt0YigpO3JldHVybn1KTShhKTtEUihhKTt1UihhKTtFUihhKTtGUihhKTtJTShhKTt2YXIgYz17fTtlUShhLGMpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5IPWE7dmFyIGQ9Yy51cjtjLkhyPT09MCYmSVAoSi5VLm5sKTtkPT09MCYmSVAoSi5VLkxrKTtaTShhKTtWKGEsSC5KLnRnLGNvLmlhLnhkKTtWUihhKTtIUihhKTt0aGlzLkxxKGEpO3RoaXMuSy5LdChhKTtVKGEsRi5ELnppLGFsKDgsTkYpKTt4UihhKTtwTihhKTtaUihhKTtNUShhKTt0aGlzLkFvKGFTKGEpKTtiUyhhKTt2YXIgZT1hLmV2ZW50TmFtZT09PUYuRC53YTtlJiYodGhpcy5OPQohMCk7SVIoYSk7ZSYmIWEuaXNBYm9ydGVkJiZ0aGlzLkxhKys+MCYmSVAoSi5VLmhuKTtVTChhKTtqUihhLHRoaXMuY2xpZW50SWQsdGhpcy56Yix0aGlzLkssIXRoaXMuamEpO25SKGEpO2xSKGEpO09SKGEpO1hMKGEpO0dSKGEsdGhpcy5aKTt5UihhKTt2UihhKTt3UihhKTtZUihhKTthUShhKTtnUShhKTt3TShhKTtoUihhKTtZUShhKTtnUihhKTtmUihhKTtlUihhKTtkUihhKTtjUihhKTthUihhKTskUShhKTtXUShhKTtVUShhKTtUUShhKTtTUShhKTtiUShhKTtjUShhKTtPKGEuTSxGLkQueGgpJiYhYmsoWksoYSkpfHxHTShhKTtVUihhKTtXUihhKTtpTihhKTtWTChhKTtTTChhKTtsTihhKTtoTihhKTtYTShhLCExKTtzUihhKTtSUihhKTskUihhKTtOTShhKTtyUihhKTtwUihhKTtiUihhKTtaUShhKTtSUShhKTtxUihhKTshdGhpcy5OJiZRKGEsSC5KLlBjKSYmSVAoSi5VLnNsKTtKUChhKTtpZihNKDU3NSkpe2lmKGEuaXNBYm9ydGVkKXtpZighUShhLEguSi5TbykpYS5NLm9uRmFpbHVyZSgpOwp0YigpO3JldHVybn1pZihRKGEsSC5KLkphKSl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufX1lbHNlIGlmKFEoYSxILkouSmEpfHxhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuQW8oaVIoYSx0aGlzLmNsaWVudElkKSk7dGhpcy5qYT0hMDt0aGlzLkh0KGEpO0pSKGEpO1ZRKGZ1bmN0aW9uKGYpe2IuTW4oZil9LGEpO3RoaXMuSy5xaygpO0xSKGEpO2dOKGEpO1dMKGEpO1lNKGEpO2lmKGEuaXNBYm9ydGVkKXthLk0ub25GYWlsdXJlKCk7dGIoKTtyZXR1cm59dGhpcy5NbihhKTthLk0ub25TdWNjZXNzKCl9Y2F0Y2goZil7YS5NLm9uRmFpbHVyZSgpfXRiKCl9O2suTW49ZnVuY3Rpb24oYSl7dGhpcy5mYS5hZGQoYSl9O2suQW89ZnVuY3Rpb24oYSl7dmFyIGI9YS5jbGllbnRJZCxjPWEuemI7YiYmYyYmKHRoaXMuY2xpZW50SWQ9Yix0aGlzLnpiPWMpfTtrLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5mYS5mbHVzaCgpfTtrLkh0PWZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzO2lmKCF0aGlzLlIpe3ZhciBjPVhvKEYuRC5tYSksZD1YbyhGLkQucmEpOyRvKFtGLkQubWEsRi5ELnJhLEYuRC5rYV0sZnVuY3Rpb24oZSl7dmFyIGY7Zj0oZT09PXZvaWQgMD97fTplKS5jb25zZW50RXZlbnRJZDt2YXIgZz1YbyhGLkQubWEpLGg9WG8oRi5ELnJhKSxsPSExLG49e30scD17fTtpZihkIT09aCYmYi5IJiZiLnpiJiZiLmNsaWVudElkKXt2YXIgcT1iLmNsaWVudElkLHI7dmFyIHQ9TFAoYi56Yik7cj10P3QuaDp2b2lkIDA7aWYoaCl7dmFyIHU9RlAoYi5IKTtpZih1KXtiLmNsaWVudElkPXU7dmFyIHY9U1AoYi5IKTt2JiYoYi56Yj1QUCh2LGIuemIsYi5IKSl9ZWxzZSBEUChiLmNsaWVudElkLGIuSCksQVAoYi5jbGllbnRJZCwhMCk7UlAoYi56YixiLkgpO2w9ITA7bltGLkQuTmxdPXE7ciYmKG5bRi5ELmJxXT1yKX1lbHNlIGIuemI9dm9pZCAwLGIuY2xpZW50SWQ9dm9pZCAwLEEuZ2FHbG9iYWw9e319ZyYmIWMmJihsPSEwLHBbSC5KLkdoXT0hMCxuW0YuRC54aV09CkxvW0YuRC5tYV0pO2lmKGwpe3ZhciB4PXNDKGIueWEsRi5ELnlmLG4pO21EKHgsZiE9bnVsbD9mOmEuTS5ldmVudElkLHtldmVudE1ldGFkYXRhOnB9KX1kPWg7Yz1nO2IuWi5Uaj0hMH0pO3RoaXMuUj0hMH19O2suTHE9ZnVuY3Rpb24oYSl7YS5ldmVudE5hbWUhPT1GLkQuSmImJnRoaXMuSy5LcShhKX07dmFyIGdTPWZ1bmN0aW9uKGEpe2lmKCFmUyhhKSl7dmFyIGI9ITEsYz1mdW5jdGlvbigpeyFiJiZmUyhhKSYmKGI9ITAsYWQoQiwidmlzaWJpbGl0eWNoYW5nZSIsYyksYWQoQiwicHJlcmVuZGVyaW5nY2hhbmdlIixjKSxQKDU1KSl9OyRjKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpOyRjKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyk7UCg1NCl9fSxmUz1mdW5jdGlvbihhKXtpZigicHJlcmVuZGVyaW5nImluIEI/Qi5wcmVyZW5kZXJpbmc6Qi52aXNpYmlsaXR5U3RhdGU9PT0icHJlcmVuZGVyIilyZXR1cm4hMTthKCk7cmV0dXJuITB9O2Z1bmN0aW9uIGhTKGEpe2dTKGZ1bmN0aW9uKCl7dmFyIGI9YkMoYSk7aWYoYil7dmFyIGM9aVMoYiksZD1jby5pYS54ZCxlPVlDKCksZj1iQyhhLCEwKTtmJiZlLkgucmVnaXN0ZXIoZixjLGQsdm9pZCAwKX19KTt9ZnVuY3Rpb24gaVMoYSl7dmFyIGI9ZnVuY3Rpb24oKXt9O3ZhciBjPW5ldyBlUyhhLmlkKSxkPWEucHJlZml4PT09Ik1DIjtiPWZ1bmN0aW9uKGUsZixnLGgpe2QmJihoLmV2ZW50TWV0YWRhdGFbSC5KLmJlXT0hMCk7Yy5acyhmLGcsaCl9O2pTKGEsYyk7cmV0dXJuIGJ9CmZ1bmN0aW9uIGpTKGEsYil7dmFyIGM9Yi5LO2MuaHQoZnVuY3Rpb24oKXtaayg5LCEwKTtZQygpLmZsdXNoKCk7aWYoYy5ZaCgpPj0xRTMmJmtkKCkpe3ZhciBkPXt9LGU9e2V2ZW50SWQ6cmooKSxldmVudE1ldGFkYXRhOihkW0guSi5La109ITAsZCksZGVmZXJyYWJsZTohMH07WkMoRi5ELnlmLHt9LGEuaWQsZSl9Yi5mbHVzaCgpO2MuQ28oZnVuY3Rpb24oKXtaayg5LCExKTtjLkNvKCl9KX0pO312YXIga1M9Si5VLnFsLGxTPUouVS5ybDtmdW5jdGlvbiBtUyhhLGIpe3ZhciBjPXRrKCk7YyYmYy5pbmRleE9mKGIpPi0xJiYoYVtILkouQ2NdPSEwKX1mdW5jdGlvbiBvUyhhLGIsYyl7dmFyIGQ9dGhpczt9b1MuUD0iaW50ZXJuYWwuZ3RhZ0NvbmZpZyI7ZnVuY3Rpb24gcFMoYSxiLGMsZCl7dmFyIGU9dGhpczt9cFMuUD0iaW50ZXJuYWwuZ3RhZ0Rlc3RpbmF0aW9uQ29uZmlnIjsKZnVuY3Rpb24gclMoYSxiKXt9CnJTLnB1YmxpY05hbWU9Imd0YWdTZXQiO2Z1bmN0aW9uIHNTKCl7dmFyIGE9e307YT17Tk9fSUZSQU1JTkc6MCxTQU1FX0RPTUFJTl9JRlJBTUlORzoxLENST1NTX0RPTUFJTl9JRlJBTUlORzoyfTtyZXR1cm4gYX07ZnVuY3Rpb24gdFMoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7bkwoYik7fXRTLlA9ImludGVybmFsLmluaXRpYWxpemVTZXJ2aWNlV29ya2VyIjtmdW5jdGlvbiB1UyhhLGIpe311Uy5wdWJsaWNOYW1lPSJpbmplY3RIaWRkZW5JZnJhbWUiO2Z1bmN0aW9uIHZTKGEsYixjLGQsZSl7fXZTLlA9ImludGVybmFsLmluamVjdEh0bWwiO3ZhciBBUz17ZGw6MSxpZDoxfTsKZnVuY3Rpb24gQlMoYSxiLGMsZCl7fUJTLnB1YmxpY05hbWU9ImluamVjdFNjcmlwdCI7ZnVuY3Rpb24gQ1MoKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjUiXTtyZXR1cm4gYn1DUy5QPSJpbnRlcm5hbC5pc0F1dG9QaWlFbGlnaWJsZSI7ZnVuY3Rpb24gRFMoYSl7dmFyIGI9ITA7aWYoIWxoKGEpJiYhamgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIkFycmF5Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhKTtpZih6YihjKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixjLCJyZWFkIik7ZWxzZSBmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlMKHRoaXMsImFjY2Vzc19jb25zZW50IixlLnZhbHVlLCJyZWFkIik7Yj1YbyhjKTtyZXR1cm4gYn1EUy5wdWJsaWNOYW1lPSJpc0NvbnNlbnRHcmFudGVkIjtmdW5jdGlvbiBFUyhhKXt2YXIgYj0hMTtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGM9VGQoYSx0aGlzLlQsMSkucmIoKTtiPSEhTyhjLk0sRi5ELkVsKTtyZXR1cm4gYn1FUy5QPSJpbnRlcm5hbC5pc0RlYnVnTW9kZSI7ZnVuY3Rpb24gRlMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9RlMuUD0iaW50ZXJuYWwuaXNEZXN0aW5hdGlvbkluaXRpYWxpemVkIjtmdW5jdGlvbiBHUygpe3JldHVybiBCbSgpfUdTLlA9ImludGVybmFsLmlzRG1hUmVnaW9uIjtmdW5jdGlvbiBIUygpe3JldHVybiBVQigpfUhTLlA9ImludGVybmFsLmlzRG9tUmVhZHkiO2Z1bmN0aW9uIElTKGEpe3ZhciBiPSExO3JldHVybiBifUlTLlA9ImludGVybmFsLmlzRW50aXR5SW5mcmFzdHJ1Y3R1cmUiO2Z1bmN0aW9uIEpTKGEpe3ZhciBiPSExO2lmKCFxaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsibnVtYmVyIl0sW2FdKTtiPU0oYSk7cmV0dXJuIGJ9SlMuUD0iaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCI7ZnVuY3Rpb24gS1MoKXt2YXIgYT0hMTthPUlmKDQ3KTtyZXR1cm4gYX1LUy5QPSJpbnRlcm5hbC5pc0ZwZmUiO2Z1bmN0aW9uIExTKCl7dmFyIGE9ITE7YT1PYygpfHxRYygpO3JldHVybiBhfUxTLlA9ImludGVybmFsLmlzR2NwQnJvd3NlciI7ZnVuY3Rpb24gTVMoKXt2YXIgYT0hMTtyZXR1cm4gYX1NUy5QPSJpbnRlcm5hbC5pc0xhbmRpbmdQYWdlIjtmdW5jdGlvbiBOUygpe3ZhciBhPSExO3JldHVybiBhfU5TLlA9ImludGVybmFsLmlzT2d0IjtmdW5jdGlvbiBPUygpe3ZhciBhO2E9QS5fZ3RtcGNtPT09ITA/ITA6ckwoKTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe2lmKCFsaChhKXx8IWVoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPWEsZD1UZChiLHRoaXMuVCksZT1ZQygpLGY9YkMoYywhMCk7ZiYmVEMoZS5ILGYsZCk7fVVTLlA9ImludGVybmFsLm1lcmdlUmVtb3RlQ29uZmlnIjtmdW5jdGlvbiBWUyhhLGIsYyl7Yz1jPT09dm9pZCAwPyEwOmM7dmFyIGQ9W107cmV0dXJuIFVkKGQpfVZTLlA9ImludGVybmFsLnBhcnNlQ29va2llVmFsdWVzRnJvbVN0cmluZyI7ZnVuY3Rpb24gV1MoYSl7dmFyIGI9dm9pZCAwO2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuO2EmJlNiKGEsIi8vIikmJihhPUIubG9jYXRpb24ucHJvdG9jb2wrYSk7aWYodHlwZW9mIFVSTD09PSJmdW5jdGlvbiIpe3ZhciBjO2E6e3ZhciBkO3RyeXtkPW5ldyBVUkwoYSl9Y2F0Y2goeCl7Yz12b2lkIDA7YnJlYWsgYX1mb3IodmFyIGU9e30sZj1BcnJheS5mcm9tKGQuc2VhcmNoUGFyYW1zKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ11bMF0sbD1mW2ddWzFdO2UuaGFzT3duUHJvcGVydHkoaCk/dHlwZW9mIGVbaF09PT0ic3RyaW5nIj9lW2hdPVtlW2hdLGxdOmVbaF0ucHVzaChsKTplW2hdPWx9Yz17aHJlZjpkLmhyZWYsb3JpZ2luOmQub3JpZ2luLHByb3RvY29sOmQucHJvdG9jb2wsdXNlcm5hbWU6ZC51c2VybmFtZSxwYXNzd29yZDpkLnBhc3N3b3JkLGhvc3Q6ZC5ob3N0LGhvc3RuYW1lOmQuaG9zdG5hbWUsCnBvcnQ6ZC5wb3J0LHBhdGhuYW1lOmQucGF0aG5hbWUsc2VhcmNoOmQuc2VhcmNoLHNlYXJjaFBhcmFtczplLGhhc2g6ZC5oYXNofX1yZXR1cm4gVWQoYyl9dmFyIG47dHJ5e249UmooYSl9Y2F0Y2goeCl7cmV0dXJufWlmKCFuLnByb3RvY29sfHwhbi5ob3N0KXJldHVybjt2YXIgcD17fTtpZihuLnNlYXJjaClmb3IodmFyIHE9bi5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikscj0wO3I8cS5sZW5ndGg7cisrKXt2YXIgdD1xW3JdLnNwbGl0KCI9IiksdT10WzBdLHY9S2oodC5zcGxpY2UoMSkuam9pbigiPSIpKXx8IiI7dj12LnJlcGxhY2UoL1wrL2csIiAiKTtwLmhhc093blByb3BlcnR5KHUpP3R5cGVvZiBwW3VdPT09InN0cmluZyI/cFt1XT1bcFt1XSx2XTpwW3VdLnB1c2godik6cFt1XT12fW4uc2VhcmNoUGFyYW1zPXA7bi5vcmlnaW49bi5wcm90b2NvbCsiLy8iK24uaG9zdDtuLnVzZXJuYW1lPSIiO24ucGFzc3dvcmQ9IiI7Yj1VZChuKTsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO2lmKCFoaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiZnVuY3Rpb24iXSxhcmd1bWVudHMpO2lvKGxvKGNvLmlhLmNiKSxmdW5jdGlvbigpe2EuaW52b2tlKGIuVCl9KTt9JFMuUD0iaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iO2Z1bmN0aW9uIGFUKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn1hVC5wdWJsaWNOYW1lPSJyZWFkQW5hbHl0aWNzU3RvcmFnZSI7ZnVuY3Rpb24gYlQoKXt2YXIgYT0iIjtyZXR1cm4gYX1iVC5wdWJsaWNOYW1lPSJyZWFkQ2hhcmFjdGVyU2V0IjtmdW5jdGlvbiBjVCgpe3JldHVybiBFKDE5KX1jVC5QPSJpbnRlcm5hbC5yZWFkRGF0YUxheWVyTmFtZSI7ZnVuY3Rpb24gZFQoKXt2YXIgYT0iIjtMKHRoaXMsInJlYWRfdGl0bGUiKSxhPUIudGl0bGV8fCIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7aWYoIWxoKGEpfHwhamgoYil8fCFsaChjKSYmIWdoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJBcnJheSIsInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGIpO2Q9U2ooYSxlLGMpO3JldHVybiBkfWxULlA9ImludGVybmFsLnNjcnViVXJsUGFyYW1zIjtmdW5jdGlvbiBtVChhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKTtJeihiKTt9bVQuUD0iaW50ZXJuYWwuc2VuZEFkc0hpdCI7ZnVuY3Rpb24gblQoYSxiLGMsZCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyfHwhZmgoZCl8fCFmaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiYW55IiwiYW55IiwiT2JqZWN0fHVuZGVmaW5lZCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBlPWM/VGQoYyx0aGlzLlQsMSk6e30sZj1UZChhKSxnPUFycmF5LmlzQXJyYXkoZik/ZjpbZl07Yj1TdHJpbmcoYik7dmFyIGg9ZD9UZChkKTp7fSxsPVhGKHRoaXMpO2gub3JpZ2luYXRpbmdFbnRpdHk9dEcobCk7bC5wcmlvcml0eVF1ZXVlJiYoaC5wcmlvcml0eVF1ZXVlPWwucHJpb3JpdHlRdWV1ZSk7Zm9yKHZhciBuPTA7bjxnLmxlbmd0aDtuKyspe3ZhciBwPWdbbl07aWYodHlwZW9mIHA9PT0ic3RyaW5nIil7dmFyIHE9e307RWQoZSxxKTt2YXIgcj17fTtFZChoLHIpO3ZhciB0PXNDKHAsYixxKTttRCh0LApoLmV2ZW50SWR8fGwuZXZlbnRJZCxyKX19fW5ULlA9ImludGVybmFsLnNlbmRHdGFnRXZlbnQiO2Z1bmN0aW9uIG9UKGEsYixjKXt9b1QucHVibGljTmFtZT0ic2VuZFBpeGVsIjtmdW5jdGlvbiBwVChhLGIpe31wVC5QPSJpbnRlcm5hbC5zZXRBbmNob3JIcmVmIjtmdW5jdGlvbiBxVChhKXt9cVQuUD0iaW50ZXJuYWwuc2V0Q29udGFpbmVyQ29uc2VudERlZmF1bHRzIjtmdW5jdGlvbiByVChhLGIsYyxkKXt2YXIgZT10aGlzO2Q9ZD09PXZvaWQgMD8hMDpkO3ZhciBmPSExOwpyZXR1cm4gZn1yVC5wdWJsaWNOYW1lPSJzZXRDb29raWUiO2Z1bmN0aW9uIHNUKGEpe31zVC5QPSJpbnRlcm5hbC5zZXRDb3JlUGxhdGZvcm1TZXJ2aWNlcyI7ZnVuY3Rpb24gdFQoYSxiKXt9dFQuUD0iaW50ZXJuYWwuc2V0RGF0YUxheWVyVmFsdWUiO2Z1bmN0aW9uIHVUKGEpe311VC5wdWJsaWNOYW1lPSJzZXREZWZhdWx0Q29uc2VudFN0YXRlIjtmdW5jdGlvbiB2VChhLGIpe312VC5QPSJpbnRlcm5hbC5zZXREZWxlZ2F0ZWRDb25zZW50VHlwZSI7ZnVuY3Rpb24gd1QoYSxiKXt9d1QuUD0iaW50ZXJuYWwuc2V0Rm9ybUFjdGlvbiI7ZnVuY3Rpb24geFQoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lmKCFsaChhKXx8IW9oKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJhbnkiLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoIWttKGEpKXRocm93IEVycm9yKCJzZXRJbkNyb3NzQ29udGFpbmVyRGF0YSByZXF1aXJlcyB2YWxpZCBDcm9zc0NvbnRhaW5lclNjaGVtYSBrZXkuIik7KGN8fG5tKGEpPT09dm9pZCAwKSYmbW0oYSxUZChiLHRoaXMuVCwxKSk7fXhULlA9ImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiB5VChhLGIsYyl7cmV0dXJuITF9eVQucHVibGljTmFtZT0ic2V0SW5XaW5kb3ciO2Z1bmN0aW9uIHpUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9JEgoYSl8fHt9O2RbYl09VGQoYyx0aGlzLlQpO3ZhciBlPWEsZj1aSDtmLkt8fFlIKGYpO2Yuc2V0dGluZ3NbZV09ZDt9elQuUD0iaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIjtmdW5jdGlvbiBBVChhLGIsYyl7aWYoIWxoKGEpfHwhbGgoYil8fGFyZ3VtZW50cy5sZW5ndGghPT0zKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1lRChhKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7aWYoZVtkW2ZdXT09PXZvaWQgMCllW2RbZl1dPXt9O2Vsc2UgaWYoIUNkKGVbZFtmXV0pKXRocm93IEVycm9yKCJzZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIgZmFpbGVkLCBwYXRoIGNvbnRhaW5zIGEgbm9uLW9iamVjdCB0eXBlOiAiK2RbZl0pO2U9ZVtkW2ZdXX1lW2RbZl1dPVRkKGMsdGhpcy5ULDEpO31BVC5QPSJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIEJUKGEsYil7fQpCVC5QPSJpbnRlcm5hbC5zZXRUcmFuc21pc3Npb25Nb2RlIjtmdW5jdGlvbiBDVChhLGIsYyxkKXt2YXIgZT10aGlzO31DVC5wdWJsaWNOYW1lPSJzaGEyNTYiO2Z1bmN0aW9uIERUKGEsYixjKXt9CkRULlA9ImludGVybmFsLnNvcnRSZW1vdGVDb25maWdQYXJhbWV0ZXJzIjtmdW5jdGlvbiBFVChhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKTtjeChiKTt9RVQuUD0iaW50ZXJuYWwuc3RvcmVBZHNCcmFpZExhYmVscyI7ZnVuY3Rpb24gRlQoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9RlQuUD0iaW50ZXJuYWwuc3Vic2NyaWJlVG9Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIEdUKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpO3BMKGIpO31HVC5QPSJpbnRlcm5hbC50YXNrU2VuZEFkc0hpdHMiO3ZhciBIVD17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXSYmKGI9ZFtjXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSk/ZFtjXVsiZ3RtLiIrYV06bnVsbCk7cmV0dXJuIGJ9LHNldEl0ZW06ZnVuY3Rpb24oYSxiKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY109ZFtjXXx8e307ZFtjXVsiZ3RtLiIrYV09Yjt9LApyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYj1YRih0aGlzKS5QYigpLGM9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoIWNbYl18fCFjW2JdLmhhc093blByb3BlcnR5KCJndG0uIithKSlyZXR1cm47ZGVsZXRlIGNbYl1bImd0bS4iK2FdO30sY2xlYXI6ZnVuY3Rpb24oKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGE9WEYodGhpcykuUGIoKTtkZWxldGUgYWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSlbYV07fSwKcHVibGljTmFtZToidGVtcGxhdGVTdG9yYWdlIn07ZnVuY3Rpb24gSVQoYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31JVC5QPSJpbnRlcm5hbC50ZXN0UmVnZXgiO2Z1bmN0aW9uIEpUKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBLVChhLGIpe2lmKCFsaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJudW1iZXIiXSxhcmd1bWVudHMpO3NiKGEsYik7fUtULlA9ImludGVybmFsLnRyYWNrVXNhZ2UiO2Z1bmN0aW9uIExUKGEsYil7dmFyIGM7cmV0dXJuIGN9TFQuUD0iaW50ZXJuYWwudW5zdWJzY3JpYmVGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBNVChhKXt9TVQucHVibGljTmFtZT0idXBkYXRlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBOVChhKXt2YXIgYj0hMTtpZihhJiYhZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGM9VGQoYSx0aGlzLlQsMSk7YyYmKGI9aHcoYykpO3JldHVybiBifU5ULlA9ImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIjt2YXIgT1Q9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGFpfSxRVD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjt2YXIgYz1QVC5IO2lmKGMuY29udGFpbnMoYSkpYj1jLmdldChhLHRoaXMpO2Vsc2V7dmFyIGQ7aWYoZD1jLkguaGFzT3duUHJvcGVydHkoYSkpe3ZhciBlPXRoaXMuVC54YigpO2lmKGUpe3ZhciBmPSExLGc9ZS5QYigpO2lmKGcpe0JoKGcpfHwoZj0hMCk7fWQ9Zn1lbHNlIGQ9ITB9aWYoZCl7dmFyIGg9Yy5ILmhhc093blByb3BlcnR5KGEpP2MuSFthXTp2b2lkIDA7Yj1ofWVsc2UgdGhyb3cgRXJyb3IoYSsiIGlzIG5vdCBhIHZhbGlkIEFQSSBuYW1lLiIpO31yZXR1cm4gYn19LFBUO2Z1bmN0aW9uIFJUKGEsYixjKXtQVHx8KFBUPW5ldyBPVCk7UFQuSC5hZGQoYSxiLGMpfWZ1bmN0aW9uIFNUKGEsYil7UFR8fChQVD1uZXcgT1QpO3ZhciBjPVBULkg7aWYoYy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKGMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aXRoIGFuIGV4aXN0aW5nIEFQSSBuYW1lOiAiK2ErIi4iKTtjLkhbYV09eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBUVChhLGIpe2Z1bmN0aW9uIGMoZCl7aWYoIWVoKGQpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGQsdGhpcy5ULDEpLnJiKCk7YShlKX1jLlA9ImludGVybmFsLiIrYjtyZXR1cm4gY307ZnVuY3Rpb24gVVQoKXt2YXIgYT1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBTVChjLlAsYyl9LGI9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgUlQoYy5wdWJsaWNOYW1lLGMpfTtiKFJGKTtiKFlGKTtiKFJHKTtiKFRHKTtiKFVHKTtiKGRIKTtiKGZIKTtiKGhJKTtiKFBTKCkpO2IoakkpO2IoT08pO2IoUE8pO2IobFApO2IobVApO2IoblApO2IodVApO2IodlApO2IoclMpO2IodVMpO2IoQlMpO2IoRFMpO2IoVFMpO2IoV1MpO2IoWlMpO2IoYVQpO2IoYlQpO2IoZFQpO2Iob1QpO2IoclQpO2IodVQpO2IoeVQpO2IoQ1QpO2IoSFQpO2IoTVQpO1JUKCJNYXRoIix6aCgpKTtSVCgiT2JqZWN0IixaaCk7UlQoIlRlc3RIZWxwZXIiLGNpKCkpO1JUKCJhc3NlcnRBcGkiLHdoKTtSVCgiYXNzZXJ0VGhhdCIseGgpO1JUKCJkZWNvZGVVcmkiLENoKTtSVCgiZGVjb2RlVXJpQ29tcG9uZW50IixEaCk7UlQoImVuY29kZVVyaSIsRWgpO1JUKCJlbmNvZGVVcmlDb21wb25lbnQiLEZoKTtSVCgiZmFpbCIsCkxoKTtSVCgiZ2VuZXJhdGVSYW5kb20iLE5oKTtSVCgiZ2V0VGltZXN0YW1wIixPaCk7UlQoImdldFRpbWVzdGFtcE1pbGxpcyIsT2gpO1JUKCJnZXRUeXBlIixQaCk7UlQoIm1ha2VJbnRlZ2VyIixSaCk7UlQoIm1ha2VOdW1iZXIiLFNoKTtSVCgibWFrZVN0cmluZyIsVGgpO1JUKCJtYWtlVGFibGVNYXAiLFVoKTtSVCgibW9jayIsWGgpO1JUKCJtb2NrT2JqZWN0IixZaCk7UlQoImZyb21CYXNlNjQiLEhPLCEoImF0b2IiaW4gQSkpO1JUKCJsb2NhbFN0b3JhZ2UiLFNTLCFSUygpKTtSVCgidG9CYXNlNjQiLEpULCEoImJ0b2EiaW4gQSkpO2EoUUYpO2EoVUYpO2EobkcpO2Eoc0cpO2EoSUcpO2EoUEcpO2EoU0cpO2EoVkcpO2EoV0cpO2EoWkcpO2EoJEcpO2EoYUgpO2EoYkgpO2EoY0gpO2EoZUgpO2EoZ0gpO2EoZ0kpO2EoaUkpO2Eoa0kpO2EobEkpO2EobUkpO2EobkkpO2Eob0kpO2EoZkopO2EobUopO2EodEopO2EodUopO2EoQUopO2EoRkopO2EoS0opO2EoUkopO2EoV0opO2EoZ0spOwphKGlLKTthKHZLKTthKHdLKTthKHhLKTthKEZPKTthKEdPKTthKElPKTthKEpPKTthKEtPKTthKExPKTthKE1PKTthKE5PKTthKFFPKTthKFJPKTthKFNPKTthKFRPKTthKFVPKTthKFZPKTthKFdPKTthKFhPKTthKFlPKTthKFpPKTthKCRPKTthKGFQKTthKGJQKTthKGNQKTthKGRQKTthKGVQKTthKGZQKTthKGdQKTthKGhQKTthKGlQKTthKGpQKTthKGtQKTthKG9QKTthKHBQKTthKHFQKTthKHJQKTthKHNQKTthKHRQKTthKHdQKTthKG9TKTthKHBTKTthKHRTKTthKHZTKTthKENTKTthKEVTKTthKEZTKTthKEdTKTthKEhTKTthKElTKTthKEpTKTthKEtTKTthKExTKTthKE1TKTthKE5TKTthKE9TKTthKFFTKTthKEdHKTthKFVTKTthKFZTKTthKFhTKTthKFlTKTthKCRTKTthKGNUKTthKGVUKTthKGZUKTthKGhUKTthKGlUKTthKGpUKTthKGxUKTthKG1UKTthKG5UKTthKHBUKTthKHFUKTthKHNUKTthKHRUKTthKHZUKTthKHdUKTthKHhUKTthKHpUKTthKEFUKTthKEJUKTthKERUKTsKYShFVCk7YShGVCk7YShHVCk7YShJVCk7YShLVCk7YShMVCk7YShOVCk7U1QoImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiLHNTKCkpO1NUKCJpbnRlcm5hbC5xdWlja0hhc2giLE1oKTthKFRUKE1GLCJ0YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSIpKSxhKFRUKFBGLCJ0YXNrU2V0VW5pdmVyc2FsUGFyYW1zIikpO2EoVFQoTEYsInRhc2tBZGRBZHNDbGlja0lkcyIpKTtQVHx8KFBUPW5ldyBPVCk7cmV0dXJuIFFUKCl9O3ZhciBKRjtmdW5jdGlvbiBWVCgpe0pGLnNkKGZ1bmN0aW9uKGEsYixjKXtsaigpO3ZhciBkPWpqO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPWQuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFfHwwO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFKys7dHJ5e3JldHVybiBhLmFwcGx5KGIsYyl9ZmluYWxseXtsaigpLGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRS0tfX0pfWZ1bmN0aW9uIFdUKGEpe2lmKGEmJmEubGVuZ3RoKWZvcih2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnJlcGxhY2UoL15fKi8sIiIpO2JbZF09WyJzYW5kYm94ZWRTY3JpcHRzIl19fQpmdW5jdGlvbiBYVChhKXtpZihhKXt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7R2IoYSxmdW5jdGlvbihjLGQpe2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdLnJlcGxhY2UoL15fKi8sIiIpO2JbZl09YltmXXx8W107YltmXS5wdXNoKGMpfX0pfX07ZnVuY3Rpb24gWlQoYSl7bUQocEMoImRldmVsb3Blcl9pZC4iK2EsITApLDAse30pfTtmdW5jdGlvbiAkVChhLGIpe3JldHVybiBFZChhLGJ8fG51bGwpfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoYSl9ZnVuY3Rpb24gYVUoYSl7WmMoYSx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBiVShhKXt2YXIgYj1bInZlaW50ZXJhY3RpdmUuY29tIiwidmUtaW50ZXJhY3RpdmUuY24iXTtpZighYSlyZXR1cm4hMTt2YXIgYz1MaihSaihhKSwiaG9zdCIpO2lmKCFjKXJldHVybiExO2Zvcih2YXIgZD0wO2ImJmQ8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdJiZiW2RdLnRvTG93ZXJDYXNlKCk7aWYoZSl7dmFyIGY9Yy5sZW5ndGgtZS5sZW5ndGg7Zj4wJiZlLmNoYXJBdCgwKSE9PSIuIiYmKGYtLSxlPSIuIitlKTtpZihmPj0wJiZjLmluZGV4T2YoZSxmKT09PWYpcmV0dXJuITB9fXJldHVybiExfQpmdW5jdGlvbiBjVShhLGIsYyl7Zm9yKHZhciBkPXt9LGU9ITEsZj0wO2EmJmY8YS5sZW5ndGg7ZisrKWFbZl0mJmFbZl0uaGFzT3duUHJvcGVydHkoYikmJmFbZl0uaGFzT3duUHJvcGVydHkoYykmJihkW2FbZl1bYl1dPWFbZl1bY10sZT0hMCk7cmV0dXJuIGU/ZDpudWxsfWZ1bmN0aW9uIGRVKGEsYil7dmFyIGM9e307aWYoYSlmb3IodmFyIGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1hW2RdKTtpZihiKXt2YXIgZT1jVShiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIpO2UmJihjPSRUKGUsYykpfXJldHVybiBjfWZ1bmN0aW9uIGVVKGEsYixjKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PWM/YjphfWZ1bmN0aW9uIGZVKGEsYixjKXtyZXR1cm4gVWMoYSxiLGMsdm9pZCAwKX1mdW5jdGlvbiBnVShhLGIpe0FbYV09Yn1mdW5jdGlvbiBoVShhLGIsYyl7dmFyIGQ9QTtiJiYoZFthXT09PXZvaWQgMHx8YyYmIWRbYV0pJiYoZFthXT1iKTtyZXR1cm4gZFthXX12YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc19nbG9iYWxzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXt2YXIgZT17a2V5OmQscmVhZDohMSx3cml0ZTohMSxleGVjdXRlOiExfTtzd2l0Y2goYyl7Y2FzZSAicmVhZCI6ZS5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjplLndyaXRlPSEwO2JyZWFrO2Nhc2UgInJlYWR3cml0ZSI6ZS5yZWFkPWUud3JpdGU9ITA7YnJlYWs7Y2FzZSAiZXhlY3V0ZSI6ZS5leGVjdXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgcmVxdWVzdCAiK2MpO31yZXR1cm4gZX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19nbG9iYWxzPWI7Wi5fX2FjY2Vzc19nbG9iYWxzLk89ImFjY2Vzc19nbG9iYWxzIjtaLl9fYWNjZXNzX2dsb2JhbHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2dsb2JhbHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfZ2xvYmFscy5pc0luZnJhc3RydWN0dXJlPSExOwpaLl9fYWNjZXNzX2dsb2JhbHNbIjUiXT0hMTtaLl9fYWNjZXNzX2dsb2JhbHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1iLnZ0cF9rZXlzfHxbXSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcixlPVtdLGY9W10sZz1bXSxoPTA7aDxjLmxlbmd0aDtoKyspe3ZhciBsPWNbaF0sbj1sLmtleTtsLnJlYWQmJmUucHVzaChuKTtsLndyaXRlJiZmLnB1c2gobik7bC5leGVjdXRlJiZnLnB1c2gobil9cmV0dXJue2Fzc2VydDpmdW5jdGlvbihwLHEscil7aWYoIXpiKHIpKXRocm93IGQocCx7fSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYocT09PSJyZWFkIil7aWYoZS5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0id3JpdGUiKXtpZihmLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJyZWFkd3JpdGUiKXtpZihmLmluZGV4T2Yocik+LTEmJmUuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09ImV4ZWN1dGUiKXtpZihnLmluZGV4T2Yocik+Ci0xKXJldHVybn1lbHNlIHRocm93IGQocCx7fSwiT3BlcmF0aW9uIG11c3QgYmUgZWl0aGVyICdyZWFkJywgJ3dyaXRlJywgb3IgJ2V4ZWN1dGUnLCB3YXMgIitxKTt0aHJvdyBkKHAse30sIlByb2hpYml0ZWQgIitxKyIgb24gZ2xvYmFsIHZhcmlhYmxlOiAiK3IrIi4iKTt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5nZXRfcmVmZXJyZXI9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybntjb21wb25lbnQ6YyxxdWVyeUtleTpkfX0oZnVuY3Rpb24oYil7Wi5fX2dldF9yZWZlcnJlcj1iO1ouX19nZXRfcmVmZXJyZXIuTz0iZ2V0X3JlZmVycmVyIjtaLl9fZ2V0X3JlZmVycmVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF9yZWZlcnJlci5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF9yZWZlcnJlci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19nZXRfcmVmZXJyZXJbIjUiXT0hMTtaLl9fZ2V0X3JlZmVycmVyWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiYKYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmYy5wdXNoKCJxdWVyeSIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZXZlbnRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntrZXk6Y319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2V2ZW50X2RhdGE9YjtaLl9fcmVhZF9ldmVudF9kYXRhLk89InJlYWRfZXZlbnRfZGF0YSI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2V2ZW50X2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI1Il09ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfZXZlbnREYXRhQWNjZXNzLGQ9Yi52dHBfa2V5UGF0dGVybnN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZihnIT1udWxsJiYhemIoZykpdGhyb3cgZShmLHtrZXk6Z30sIktleSBtdXN0IGJlIGEgc3RyaW5nLiIpOwppZihjIT09ImFueSIpe3RyeXtpZihjPT09InNwZWNpZmljIiYmZyE9bnVsbCYmRWcoZyxkKSlyZXR1cm59Y2F0Y2goaCl7dGhyb3cgZShmLHtrZXk6Z30sIkludmFsaWQga2V5IGZpbHRlci4iKTt9dGhyb3cgZShmLHtrZXk6Z30sIlByb2hpYml0ZWQgcmVhZCBmcm9tIGV2ZW50IGRhdGEuIik7fX0sYWE6YX19KX0oKTsKClouc2VjdXJpdHlHcm91cHMucmVhZF90aXRsZT1bImdvb2dsZSJdLFouX19yZWFkX3RpdGxlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fcmVhZF90aXRsZS5PPSJyZWFkX3RpdGxlIixaLl9fcmVhZF90aXRsZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19yZWFkX3RpdGxlLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fcmVhZF90aXRsZS5pc0luZnJhc3RydWN0dXJlPSExLFouX19yZWFkX3RpdGxlWyI1Il09ITEsWi5fX3JlYWRfdGl0bGVbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczp7Zml4TWlzc2luZ0FwaTohIWMuZml4TWlzc2luZ0FwaX19fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzPWI7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5PPSJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHNbIjYiXT0KITF9KShmdW5jdGlvbihiKXt2YXIgYz0hIWIudnRwX2FsbG93Rml4TWlzc2luZ0phdmFTY3JpcHRBcGksZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLGYpe2lmKCFjJiZmJiZmLmZpeE1pc3NpbmdBcGkpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbjogZml4TWlzc2luZ0FwaS4iKTt9LGFhOmF9fSl9KCk7CgoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfc2NyZWVuX2RpbWVuc2lvbnM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnM9YjtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucy5PPSJyZWFkX3NjcmVlbl9kaW1lbnNpb25zIjtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zWyI1Il09ITE7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTsKCgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHM9YjtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5PPSJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIjtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTsKCgpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9saW5rX2NsaWNrX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntvcHRpb25zOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzPWI7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5PPSJkZXRlY3RfbGlua19jbGlja19ldmVudHMiO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93V2FpdEZvclRhZ3MsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihlLApmKXtpZighYyYmZiYmZi53YWl0Rm9yVGFncyl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uIHdhaXRGb3JUYWdzLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2NvbnRhaW5lcl9kYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLk89InJlYWRfY29udGFpbmVyX2RhdGEiLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjUiXT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmxpc3Rlbl9kYXRhX2xheWVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2V2ZW50TmFtZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyPWI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLk89Imxpc3Rlbl9kYXRhX2xheWVyIjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNSJdPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWNjZXNzVHlwZSxkPWIudnRwX2FsbG93ZWRFdmVudHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sCiJFdmVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShjPT09ImFueSJ8fGM9PT0ic3BlY2lmaWMiJiZkLmluZGV4T2YoZyk+PTApKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LCJQcm9oaWJpdGVkIGxpc3RlbiBvbiBkYXRhIGxheWVyIGV2ZW50LiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2NvbnNlbnQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtjb25zZW50VHlwZTpjLHJlYWQ6ITEsd3JpdGU6ITF9O3N3aXRjaChkKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrZCk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2NvbnNlbnQ9YjtaLl9fYWNjZXNzX2NvbnNlbnQuTz0iYWNjZXNzX2NvbnNlbnQiO1ouX19hY2Nlc3NfY29uc2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfY29uc2VudC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19jb25zZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI1Il09ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9CmIudnRwX2NvbnNlbnRUeXBlc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIGg9Y1tnXSxsPWguY29uc2VudFR5cGU7aC5yZWFkJiZlLnB1c2gobCk7aC53cml0ZSYmZi5wdXNoKGwpfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24obixwLHEpe2lmKCF6YihwKSl0aHJvdyBkKG4se30sIkNvbnNlbnQgdHlwZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwiQWNjZXNzIHR5cGUgbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCBvciAnd3JpdGUnLCB3YXMgIitxKTt0aHJvdyBkKG4se30sIlByb2hpYml0ZWQgIitxKyIgb24gY29uc2VudCB0eXBlOiAiK3ArIi4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9kb21fZWxlbWVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0eXBlOmMsdmFsdWU6ZH19KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2RvbV9lbGVtZW50cz1iO1ouX19yZWFkX2RvbV9lbGVtZW50cy5PPSJyZWFkX2RvbV9lbGVtZW50cyI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRFbGVtZW50SWRzfHwibm9uZSIsZD1iLnZ0cF9hbGxvd2VkQ3NzU2VsZWN0b3JzfHwibm9uZSIsZT1iLnZ0cF9lbGVtZW50SWRzfHxbXSxmPWIudnRwX2Nzc1NlbGVjdG9yc3x8W10sZz0KYi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oaCxsLG4pe3N3aXRjaChsKXtjYXNlICJpZCI6aWYoYz09PSJub25lIilicmVhaztpZihjPT09ImFueSJ8fGUuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7Y2FzZSAiY3NzIjppZihkPT09Im5vbmUiKWJyZWFrO2lmKGQ9PT0iYW55Inx8Zi5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztkZWZhdWx0OnRocm93IGcoaCx7fSwiVW5rbm93biBzZWxlY3RvciB0eXBlICIrbCsiLiIpO310aHJvdyBnKGgse30sIlByb2hpYml0ZWQgc2VsZWN0b3IgdmFsdWUgIituKyIgZm9yIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9zY3JvbGxfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1iO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5PPSJkZXRlY3Rfc2Nyb2xsX2V2ZW50cyI7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTtaLnNlY3VyaXR5R3JvdXBzLmdldF91c2VyX2FnZW50PVsiZ29vZ2xlIl0sWi5fX2dldF91c2VyX2FnZW50PWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fZ2V0X3VzZXJfYWdlbnQuTz0iZ2V0X3VzZXJfYWdlbnQiLFouX19nZXRfdXNlcl9hZ2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19nZXRfdXNlcl9hZ2VudC5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2dldF91c2VyX2FnZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2dldF91c2VyX2FnZW50WyI1Il09ITEsWi5fX2dldF91c2VyX2FnZW50WyI2Il09ITE7CgoKCmZ1bmN0aW9uIGtVKCl7dmFyIGE9e30sYj17ZGF0YUxheWVyOnRBLGNhbGxiYWNrOmZ1bmN0aW9uKGMpe2EuaGFzT3duUHJvcGVydHkoYykmJnliKGFbY10pJiZhW2NdKCk7ZGVsZXRlIGFbY119LGJvb3RzdHJhcDowfTtyZXR1cm4gYn0KZnVuY3Rpb24gbFUoKXt2YXIgYT1rVSgpO29qKGEpO0NrKCk7akEoKTt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7UWIoYixaLnNlY3VyaXR5R3JvdXBzKTt2YXIgYz15ayh6aygpKSxkLGU9Yz09bnVsbD92b2lkIDA6KGQ9Yy5jb250ZXh0KT09bnVsbD92b2lkIDA6ZC5zb3VyY2U7S2woZSxjPT1udWxsP3ZvaWQgMDpjLnBhcmVudCk7ZSE9PTImJmUhPT00JiZlIT09M3x8UCgxNDIpO3JldHVybiBhfWZ1bmN0aW9uIG1VKCl7dmFyIGE9RSg2MCk7aWYoYSlmb3IodmFyIGI9YS5zcGxpdCgiLiIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPVRMO2QmJihlLkhbZF09ITApfX0KZnVuY3Rpb24gblUoKXt6cCgpO2xqKCk7Zm9yKHZhciBhPWRhdGEucmVzb3VyY2V8fHt9LGI9Y0EsYz1hLm1hY3Jvc3x8W10sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWIubWFjcm9zLnB1c2gobmV3IFV6KGNbZF0sZCxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGU9YS50YWdzfHxbXSxmPTA7ZjxlLmxlbmd0aDtmKyspYi50YWdzLnB1c2gobmV3IFl6KGVbZl0sZixiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGc9YS5wcmVkaWNhdGVzfHxbXSxoPTA7aDxnLmxlbmd0aDtoKyspYi5wcmVkaWNhdGVzLnB1c2gobmV3IFZ6KGdbaF0sYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBsPWEucnVsZXN8fFtdLG49MDtuPGwubGVuZ3RoO24rKyliLnJ1bGVzLnB1c2gobmV3IFd6KGxbbl0sbikpO1F6PVo7dmFyIHA9ZGF0YS5wZXJtaXNzaW9uc3x8e30scT1aO2RnPW5ldyBnZyhFKDUpLHAscSk7dmFyIHI9ZGF0YS5zYW5kYm94ZWRfc2NyaXB0cyx0PWRhdGEuc2VjdXJpdHlfZ3JvdXBzLHU9ZGF0YS5ydW50aW1lfHwKW10sdj1kYXRhLnJ1bnRpbWVfbGluZXM7SkY9bmV3IHBmO1ZUKCk7UHo9SUYoKTt2YXIgeD1KRix5PVVUKCksej1uZXcgTGQoInJlcXVpcmUiLHkpO3ouWmEoKTt4LkguSC5zZXQoInJlcXVpcmUiLHopO2RiLnNldCgicmVxdWlyZSIseik7Zm9yKHZhciBDPTA7Qzx1Lmxlbmd0aDtDKyspe3ZhciBEPXVbQ107aWYoIUFycmF5LmlzQXJyYXkoRCl8fEQubGVuZ3RoPDMpe2lmKEQubGVuZ3RoPT09MCljb250aW51ZTticmVha312JiZ2W0NdJiZ2W0NdLmxlbmd0aCYmUGYoRCx2W0NdKTt0cnl7SkYuZXhlY3V0ZShEKX1jYXRjaChvVSl7fX1XVChyKTtYVCh0KTt2YXIgST1sVSgpO2lGKCk7dm0uYmluZCgpO2lmKCFEailmb3IodmFyIEc9Qm0oKT9lcChMZig1KSk6ZXAoTGYoNCkpLE49bShSbyksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWUsZWE9VyxqYT1HW1ddPyJncmFudGVkIjoiZGVuaWVkIjt0bCgpLmltcGxpY2l0KGVhLGphKX1oRS5iaW5kKCk7VEIoKTsKT0IoKTtmbi5OJiYoZ3ooKSxmeihBRiksZ0EoKSxjQj1uZXcgYkIsZnooaXopLE9DKCksREZ8fChERj1uZXcgQkYpLGZCfHwoZkI9bmV3IGVCKSxGRj1uZXcgRUYpO2lmKGZuLkspe0RFLmJpbmQoKTttQy5iaW5kKCk7d0UuYmluZCgpO3ZhciBmYT1BaygpO2lmKGZhKXt2YXIgc2E7YTp7dmFyIGRhLG1hPShkYT1mYS5zY3JpcHRFbGVtZW50KT09bnVsbD92b2lkIDA6ZGEuc3JjO2lmKG1hKXt2YXIgUGE7dHJ5e3ZhciBGYTtQYT0oRmE9cmQoKSk9PW51bGw/dm9pZCAwOkZhLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIil9Y2F0Y2gob1Upe31pZihQYSl7Zm9yKHZhciBxYT0tMSxpYj1tKFBhKSxYYj1pYi5uZXh0KCk7IVhiLmRvbmU7WGI9aWIubmV4dCgpKXt2YXIgTGM9WGIudmFsdWU7aWYoTGMuaW5pdGlhdG9yVHlwZT09PQoic2NyaXB0IiYmKHFhKz0xLExjLm5hbWUucmVwbGFjZShORSwiIik9PT1tYS5yZXBsYWNlKE5FLCIiKSkpe3NhPXFhO2JyZWFrIGF9fVAoMTQ2KX1lbHNlIFAoMTQ1KX1zYT12b2lkIDB9dmFyIFFkPXNhO1FkIT09dm9pZCAwJiYoZmEuY2Fub25pY2FsQ29udGFpbmVySWQmJlVtKCJydGciLFN0cmluZyhmYS5jYW5vbmljYWxDb250YWluZXJJZCkpLFVtKCJzbG8iLFN0cmluZyhRZCkpLFVtKCJobG8iLGZhLmh0bWxMb2FkT3JkZXJ8fCItMSIpLFVtKCJsc3QiLFN0cmluZyhmYS5sb2FkU2NyaXB0VHlwZXx8IjAiKSkpfWVsc2UgUCgxNDQpO3ZhciBZYzt2YXIgRGQ9eGsoKTtpZihEZClpZihEZC5jYW5vbmljYWxDb250YWluZXJJZClZYz1EZC5jYW5vbmljYWxDb250YWluZXJJZDtlbHNle3ZhciBqZix2aD1EZC5zY3JpcHRDb250YWluZXJJZHx8KChqZj1EZC5kZXN0aW5hdGlvbnMpPT1udWxsP3ZvaWQgMDpqZlswXSk7WWM9dmg/Il8iK3ZoOnZvaWQgMH1lbHNlIFljPXZvaWQgMDt2YXIgSkU9ClljO0pFJiZVbSgicGNpZCIsSkUpO1VtKCJidCIsU3RyaW5nKElmKDQ3KT8yOklmKDUwKT8xOjApKTtVbSgiY3QiLFN0cmluZyhJZig0Nyk/MDpJZig1MCk/MTozKSk7QUUuYmluZCgpO2Zvcih2YXIgV3I9W10sWHI9W10sS0U9bShPYmplY3Qua2V5cyhHRSkpLFlyPUtFLm5leHQoKTshWXIuZG9uZTtZcj1LRS5uZXh0KCkpe3ZhciBybT1Zci52YWx1ZTtpZih3aW5kb3cuaXNTZWN1cmVDb250ZXh0fHwhSUVbcm1dKXt2YXIgTEU9R0Vbcm1dKCk7aWYoeWIoTEUpKXt2YXIgTUU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTEUpO1RiKE1FLCJ7IFtuYXRpdmUgY29kZV0gfSIpfHxUYihNRSwie1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKXx8WHIucHVzaChybSl9ZWxzZSBXci5wdXNoKHJtKX19V3IubGVuZ3RoPjAmJlVtKCJqc20iLFdyLmpvaW4oIn4iKSk7WHIubGVuZ3RoPjAmJlVtKCJqc3AiLFhyLmpvaW4oIn4iKSk7RXl8fChFeT1uZXcgRHkpfWhGKCk7aW0oMSk7RUcoKTtyZXR1cm4gSX0KZnVuY3Rpb24gdW0oKXt0cnl7aWYoIWhrKCkmJihJZig0Nyl8fCFOaygpKSl7SWYoNjQpJiZ3ai5ILksuYWRkKDExODUxNzkxNyk7emooKTtmbi5IJiZzeigpO1dmWzVdPSEwO3ZhciBhPWtqKCJkZWJ1Z0dyb3VwSWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhNYXRoLmZsb29yKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKk1hdGgucmFuZG9tKCkpKX0pO1NsKGEpO2t0KCk7ekYoKTtGdCgpO1BCKCk7aWYoRGsoKSl7RSg1KTtERygpO2lCKCkucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnModmsoKSk7fWVsc2V7Rk0uUigpO25VKCkuYm9vdHN0cmFwPU5iKCk7SWYoNTEpJiZwRSgpOwpmbi5IJiZ0eigpO3R5cGVvZiBBLm5hbWU9PT0ic3RyaW5nIiYmU2IoQS5uYW1lLCJ3ZWItcGl4ZWwtc2FuZGJveC1DVVNUT00iKSYmc2QoKT9aVCgiZE1EZzBZeiIpOkEuU2hvcGlmeSYmKFpUKCJkTjJaa01qIiksc2QoKSYmWlQoImROVFUwWXoiKSk7bVUoKX19fWNhdGNoKGIpe2ltKDUpLGh6KCl9fQooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe249Qi5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhZy1hc3Npc3RhbnQtcHJlc2VudCIpO2dsKG4pJiYobD1oLnhtKX1mdW5jdGlvbiBjKCl7bCYmS2M/ZyhsKTphKCl9aWYoIUFbRSgzNyldKXt2YXIgZD0hMTtpZihCLnJlZmVycmVyKXt2YXIgZT1SaihCLnJlZmVycmVyKTtkPU5qKGUsImhvc3QiKT09PUUoMzgpfWlmKCFkKXt2YXIgZj1jcShFKDM5KSk7ZD0hKCFmLmxlbmd0aHx8IWZbMF0ubGVuZ3RoKX1kJiYoQVtFKDM3KV09ITAsVWMoRSg0MCkpKX12YXIgZz1mdW5jdGlvbih1KXt2YXIgdj0iR1RNIix4PSJHVE0iO0lmKDQ1KSYmKHY9Ik9HVCIseD0iR1RBRyIpO3ZhciB5PUUoMjMpLHo9QVt5XTt6fHwoej1bXSxBW3ldPXosVWMoImh0dHBzOi8vIitFKDMpKyIvZGVidWcvYm9vdHN0cmFwP2lkPSIrRSg1KSsiJnNyYz0iK3grIiZjb25kPSIrU3RyaW5nKHUpKyImZ3RtPSIrZHUoKSkpO3ZhciBDPXttZXNzYWdlVHlwZToiQ09OVEFJTkVSX1NUQVJUSU5HIiwKZGF0YTp7c2NyaXB0U291cmNlOktjLGNvbnRhaW5lclByb2R1Y3Q6dixkZWJ1ZzohMSxpZDpFKDUpLHRhcmdldFJlZjp7Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246c2soKSxjYW5vbmljYWxJZDpFKDYpfSxhbGlhc2VzOndrKCksZGVzdGluYXRpb25zOnRrKCl9fSxEPUMuZGF0YTtELnJlc3VtZT1mdW5jdGlvbigpe2EoKX07RC5yZXN1bWVXaXRoTWVtb3M9ZnVuY3Rpb24oKXtzbCgxKTthKCl9O0lmKDIpJiYoQy5kYXRhLmluaXRpYWxQdWJsaXNoPSEwKTt6LnB1c2goQyl9LGg9e0dxOjEsUG06MixvbjozLGpsOjQseG06NX07aFtoLkdxXT0iR1RNX0RFQlVHX0xFR0FDWV9QQVJBTSI7aFtoLlBtXT0iR1RNX0RFQlVHX1BBUkFNIjtoW2gub25dPSJSRUZFUlJFUiI7aFtoLmpsXT0iQ09PS0lFIjtoW2gueG1dPSJFWFRFTlNJT05fUEFSQU0iO3ZhciBsPXZvaWQgMCxuPXZvaWQgMCxwPUxqKEEubG9jYXRpb24sInF1ZXJ5IiwhMSx2b2lkIDAsImd0bV9kZWJ1ZyIpO2dsKHApJiYobD1oLlBtKTsKaWYoIWwmJkIucmVmZXJyZXIpe3ZhciBxPVJqKEIucmVmZXJyZXIpO05qKHEsImhvc3QiKT09PUUoMjQpJiYobD1oLm9uKX1pZighbCl7dmFyIHI9Y3EoIl9fVEFHX0FTU0lTVEFOVCIpO3IubGVuZ3RoJiZyWzBdLmxlbmd0aCYmKGw9aC5qbCl9bHx8YigpO2lmKCFsJiZmbChuKSl7dmFyIHQ9ITE7JGMoQiwiVEFEZWJ1Z1NpZ25hbCIsZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sITEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwyMDApfWVsc2UgYygpfSkoZnVuY3Rpb24oKXshSWYoNDcpfHx0bSgpWyIwIl0/dW0oKTp4bSgpfSk7Cgp9KSgpCgo="}},"time_used":92,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":47,"receive":45,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"lg.hyr.so/v1/lst/session","fqdn":"lg.hyr.so","domain":"hyr.so","tld":"so"},"ip":{"addr":"44.196.240.170","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.753Z","timestamp":1785145406753,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","key_group_name":"P256","signature_name":"RSA-PKCS1-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"hyr.so","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Tue, 11 Nov 2025 00:00:00 GMT","end":"Wed, 09 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"36:4E:F8:B1:CC:08:30:0C:DE:87:2C:0C:4B:93:AF:AF:5D:0D:D0:2B","sha256":"58:6D:57:2B:AE:C5:62:6D:69:A9:88:0D:FC:EE:6A:BE:C0:C2:54:B6:6F:94:3D:53:3D:18:EF:36:3E:7D:C0:14"}}},"request":{"raw":"GET /v1/lst/session HTTP/1.1\r\nHost: lg.hyr.so\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Allow-Headers: *\r\nAccess-Control-Allow-Origin: *\r\nContent-type: application/json; charset=utf-8\r\nOrigin: https://autolitefinances.pro\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:27 GMT\r\ncontent-length: 0\r\nvary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: Session-ID, L-Gen-ID, Third-Party-Tracking-Hash\r\naccess-control-allow-credentials: true\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\netag: LS_f165920062e3cbf28d1388e1052736e5b7d39527bd3d0596c6db3c4e458c5acb\r\nl-gen-id: LS_f165920062e3cbf28d1388e1052736e5b7d39527bd3d0596c6db3c4e458c5acb\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":0,"size_decoded":565,"mime_type":"text/xml","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":377,"timings":{"blocked":-1,"dns":0,"connect":93,"send":0,"wait":95,"receive":0,"ssl":188},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-reset.min.css?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.839Z","timestamp":1785145403839,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/css/dist/gravity-forms-theme-reset.min.css?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-6e7\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":1767,"size_decoded":756,"mime_type":"text/css","magic":"ASCII text, with very long lines (1644)","md5":"263f29091b250bb0b6507f63321ceb10","sha1":"b0b569a0e8059fe17311f904a801f9d1411bce8e","sha256":"78002f5aeeec075183e13e198b93b7b42210e9b3a20eb1dcc6e8abf457fd7e8e","sha512":"d0dda5f531939a7fe0fb30271eb0cfc98138c50c9ef04b7fb7d5f4d54a6d5ed4716bf17419f046adc20da526dc95ebd75966b771e9c6f88aea79b20df6103403","ssdeep":"","tlshash":"9d31440f526c6289103a8f9560dee1006f907022f72ab5dfd09c35ebc6de9810a05b8f","first_seen":"2023-05-26T13:46:14Z","last_seen":"2026-07-27T14:04:41.057606Z","times_seen":144,"resource_available":false,"data":"Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOndoZXJlKDpub3QoaHRtbCk6bm90KGlmcmFtZSk6bm90KGNhbnZhcyk6bm90KGltZyk6bm90KHN2Zyk6bm90KHZpZGVvKQoJCTpub3Qoc3ZnICopOm5vdChzeW1ib2wgKikKCQk6bm90KC5nZm9ybS10aGVtZV9fbm8tcmVzZXQtLWVsKTpub3QoLmdmb3JtLXRoZW1lX19uby1yZXNldC0tY2hpbGRyZW4gKik6bm90KC5nZm9ybV9oZWFkaW5nICopOm5vdCguZ2ZpZWxkLS10eXBlLWh0bWwgKik6bm90KC5nZmllbGQtLXR5cGUtc2VjdGlvbiAqKTpub3QoLmZvcm1fc2F2ZWRfbWVzc2FnZT4qKTpub3QoLmZvcm1fc2F2ZWRfbWVzc2FnZV9zZW50PiopOm5vdCguZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2UgKik6bm90KC53cC1lZGl0b3ItY29udGFpbmVyKTpub3QoLm1jZS10aW55bWNlKTpub3QoLm1jZS10aW55bWNlICopOm5vdCgud3AtZWRpdG9yLWFyZWEpOm5vdCguZ2ZpZWxkX2Rlc2NyaXB0aW9uPiopOm5vdCguZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lPjpub3Qoc3BhbikpKXthbGw6dW5zZXQ7ZGlzcGxheTpyZXZlcnR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgKiwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6YWZ0ZXIsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgYSwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBidXR0b257Y3Vyc29yOnJldmVydH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBtZW51LC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIG9sLC5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIHVse2xpc3Qtc3R5bGU6bm9uZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbWd7bWF4LXdpZHRoOjEwMCV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIHRleHRhcmVhe3doaXRlLXNwYWNlOnJldmVydH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBtZXRlcnstd2Via2l0LWFwcGVhcmFuY2U6cmV2ZXJ0Oy1tb3otYXBwZWFyYW5jZTpyZXZlcnQ7YXBwZWFyYW5jZTpyZXZlcnR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnVuc2V0fS5nZm9ybS10aGVtZS0tZnJhbWV3b3JrIDo6cGxhY2Vob2xkZXJ7Y29sb3I6dW5zZXR9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOndoZXJlKFtoaWRkZW5dKXtkaXNwbGF5Om5vbmV9Lmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgOndoZXJlKFtjb250ZW50ZWRpdGFibGVdKXstbW96LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7LXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlO3dvcmQtd3JhcDpicmVhay13b3JkOy13ZWJraXQtbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZX0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayA6d2hlcmUoW2RyYWdnYWJsZT10cnVlXSl7LXdlYmtpdC11c2VyLWRyYWc6ZWxlbWVudH0uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmUsLmdmb3JtLXRoZW1lLS1mcmFtZXdvcmsgaW5wdXRbdHlwZT1yYWRpb106YmVmb3Jle2hlaWdodDphdXRvO21hcmdpbi1ibG9jazowO21hcmdpbi1pbmxpbmU6MDtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0b30uZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPWNoZWNrYm94XTphZnRlciwuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yayBpbnB1dFt0eXBlPXJhZGlvXTphZnRlcntjb250ZW50Om5vbmV9"}},"time_used":490,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":490,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.861Z","timestamp":1785145403861,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-1feb\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":8171,"size_decoded":2548,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (8171), with no line terminators","md5":"dda652db133fddb9b80a05c6d1b5c540","sha1":"60c8514c57a5db2980c4b046b0dd479bd427357b","sha256":"c1a9a3e223bad631dff12d33b5499eb145cb08d8621c20d9d73870e78d97afe4","sha512":"05cb3673448a79aa81887c60a82aba51f9a843dc13ab4fc39b3e6d8ae7d632732d9afefaf72fc3d197c2795a3364fdfd4f83c9b628644d98f1c9017bfd435e62","ssdeep":"192:wRNh5qCAj4ZKBOZi9pFdInflm7ukrLjS9f89dmpb:wRrfViT685kfX","tlshash":"8cf102b8730569736dcba1a96077034326232027548a54287738dcff8dfce552577bb9","first_seen":"2023-03-13T14:32:06Z","last_seen":"2026-08-11T20:39:17.421506Z","times_seen":50865,"resource_available":true,"data":"IWZ1bmN0aW9uKGUpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBkZWZpbmV8fCFkZWZpbmUuYW1kP2UoKTpkZWZpbmUoImluZXJ0IixlKX0oKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLHQsbixpLG8scixzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmYShlLnByb3RvdHlwZSx0KSxuJiZhKGUsbiksZX07ZnVuY3Rpb24gYShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fWZ1bmN0aW9uIGQoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB1KGUsdCl7ZCh0aGlzLHUpLHRoaXMuX2luZXJ0TWFuYWdlcj10LHRoaXMuX3Jvb3RFbGVtZW50PWUsdGhpcy5fbWFuYWdlZE5vZGVzPW5ldyBTZXQsdGhpcy5fcm9vdEVsZW1lbnQuaGFzQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpP3RoaXMuX3NhdmVkQXJpYUhpZGRlbj10aGlzLl9yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIik6dGhpcy5fc2F2ZWRBcmlhSGlkZGVuPW51bGwsdGhpcy5fcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLl9tYWtlU3VidHJlZVVuZm9jdXNhYmxlKHRoaXMuX3Jvb3RFbGVtZW50KSx0aGlzLl9vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLl9vbk11dGF0aW9uLmJpbmQodGhpcykpLHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fcm9vdEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX1mdW5jdGlvbiBoKGUsdCl7ZCh0aGlzLGgpLHRoaXMuX25vZGU9ZSx0aGlzLl9vdmVycm9kZUZvY3VzTWV0aG9kPSExLHRoaXMuX2luZXJ0Um9vdHM9bmV3IFNldChbdF0pLHRoaXMuX3NhdmVkVGFiSW5kZXg9bnVsbCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5lbnN1cmVVbnRhYmJhYmxlKCl9ZnVuY3Rpb24gbChlKXtpZihkKHRoaXMsbCksIWUpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50OyBJbmVydE1hbmFnZXIgbmVlZHMgdG8gd3JhcCBhIGRvY3VtZW50LiIpO3RoaXMuX2RvY3VtZW50PWUsdGhpcy5fbWFuYWdlZE5vZGVzPW5ldyBNYXAsdGhpcy5faW5lcnRSb290cz1uZXcgTWFwLHRoaXMuX29ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMuX3dhdGNoRm9ySW5lcnQuYmluZCh0aGlzKSksXyhlLmhlYWR8fGUuYm9keXx8ZS5kb2N1bWVudEVsZW1lbnQpLCJsb2FkaW5nIj09PWUucmVhZHlTdGF0ZT9lLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHRoaXMuX29uRG9jdW1lbnRMb2FkZWQuYmluZCh0aGlzKSk6dGhpcy5fb25Eb2N1bWVudExvYWRlZCgpfWZ1bmN0aW9uIGMoZSx0LG4pe2lmKGUubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgaT1lO2lmKHM9KHQmJnQoaSksaS5zaGFkb3dSb290KSlyZXR1cm4gdm9pZCBjKHMsdCxzKTtpZigiY29udGVudCI9PWkubG9jYWxOYW1lKXtmb3IodmFyIG89KHM9aSkuZ2V0RGlzdHJpYnV0ZWROb2Rlcz9zLmdldERpc3RyaWJ1dGVkTm9kZXMoKTpbXSxyPTA7cjxvLmxlbmd0aDtyKyspYyhvW3JdLHQsbik7cmV0dXJufWlmKCJzbG90Ij09aS5sb2NhbE5hbWUpe2Zvcih2YXIgcyxhPShzPWkpLmFzc2lnbmVkTm9kZXM/cy5hc3NpZ25lZE5vZGVzKHtmbGF0dGVuOiEwfSk6W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMoYVtkXSx0LG4pO3JldHVybn19Zm9yKHZhciB1PWUuZmlyc3RDaGlsZDtudWxsIT11OyljKHUsdCxuKSx1PXUubmV4dFNpYmxpbmd9ZnVuY3Rpb24gXyhlKXt2YXIgdDtlLnF1ZXJ5U2VsZWN0b3IoInN0eWxlI2luZXJ0LXN0eWxlLCBsaW5rI2luZXJ0LXN0eWxlIil8fCgodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5zZXRBdHRyaWJ1dGUoImlkIiwiaW5lcnQtc3R5bGUiKSx0LnRleHRDb250ZW50PSJcbltpbmVydF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5baW5lcnRdLCBbaW5lcnRdICoge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuIixlLmFwcGVuZENoaWxkKHQpKX0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLHQ9RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3Isbj1bImFbaHJlZl0iLCJhcmVhW2hyZWZdIiwiaW5wdXQ6bm90KFtkaXNhYmxlZF0pIiwic2VsZWN0Om5vdChbZGlzYWJsZWRdKSIsInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJkZXRhaWxzIiwic3VtbWFyeSIsImlmcmFtZSIsIm9iamVjdCIsImVtYmVkIiwiW2NvbnRlbnRlZGl0YWJsZV0iXS5qb2luKCIsIikscyh1LFt7a2V5OiJkZXN0cnVjdG9yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9yb290RWxlbWVudCYmKG51bGwhPT10aGlzLl9zYXZlZEFyaWFIaWRkZW4/dGhpcy5fcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsdGhpcy5fc2F2ZWRBcmlhSGlkZGVuKTp0aGlzLl9yb290RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpLHRoaXMuX21hbmFnZWROb2Rlcy5mb3JFYWNoKChmdW5jdGlvbihlKXt0aGlzLl91bm1hbmFnZU5vZGUoZS5ub2RlKX0pLHRoaXMpLHRoaXMuX29ic2VydmVyPW51bGwsdGhpcy5fcm9vdEVsZW1lbnQ9bnVsbCx0aGlzLl9tYW5hZ2VkTm9kZXM9bnVsbCx0aGlzLl9pbmVydE1hbmFnZXI9bnVsbH19LHtrZXk6Il9tYWtlU3VidHJlZVVuZm9jdXNhYmxlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49KGMoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3Zpc2l0Tm9kZShlKX0pKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtpZighZG9jdW1lbnQuYm9keS5jb250YWlucyhlKSl7Zm9yKHZhciBpPWUsbz12b2lkIDA7aTspe2lmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpe289aTticmVha31pPWkucGFyZW50Tm9kZX1vJiYobj1vLmFjdGl2ZUVsZW1lbnQpfWUuY29udGFpbnMobikmJihuLmJsdXIoKSxuPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZG9jdW1lbnQuYm9keS5mb2N1cygpKX19LHtrZXk6Il92aXNpdE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2Uubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGUhPT10aGlzLl9yb290RWxlbWVudCYmZS5oYXNBdHRyaWJ1dGUoImluZXJ0IikmJnRoaXMuX2Fkb3B0SW5lcnRSb290KGUpLCh0LmNhbGwoZSxuKXx8ZS5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpJiZ0aGlzLl9tYW5hZ2VOb2RlKGUpKX19LHtrZXk6Il9tYW5hZ2VOb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtlPXRoaXMuX2luZXJ0TWFuYWdlci5yZWdpc3RlcihlLHRoaXMpLHRoaXMuX21hbmFnZWROb2Rlcy5hZGQoZSl9fSx7a2V5OiJfdW5tYW5hZ2VOb2RlIix2YWx1ZTpmdW5jdGlvbihlKXsoZT10aGlzLl9pbmVydE1hbmFnZXIuZGVyZWdpc3RlcihlLHRoaXMpKSYmdGhpcy5fbWFuYWdlZE5vZGVzLmRlbGV0ZShlKX19LHtrZXk6Il91bm1hbmFnZVN1YnRyZWUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7YyhlLChmdW5jdGlvbihlKXtyZXR1cm4gdC5fdW5tYW5hZ2VOb2RlKGUpfSkpfX0se2tleToiX2Fkb3B0SW5lcnRSb290Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbmVydE1hbmFnZXIuZ2V0SW5lcnRSb290KGUpO3R8fCh0aGlzLl9pbmVydE1hbmFnZXIuc2V0SW5lcnQoZSwhMCksdD10aGlzLl9pbmVydE1hbmFnZXIuZ2V0SW5lcnRSb290KGUpKSx0Lm1hbmFnZWROb2Rlcy5mb3JFYWNoKChmdW5jdGlvbihlKXt0aGlzLl9tYW5hZ2VOb2RlKGUubm9kZSl9KSx0aGlzKX19LHtrZXk6Il9vbk11dGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0LG4pe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG4saT10LnRhcmdldDsiY2hpbGRMaXN0Ij09PXQudHlwZT8oZS5jYWxsKHQuYWRkZWROb2RlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dGhpcy5fbWFrZVN1YnRyZWVVbmZvY3VzYWJsZShlKX0pLHRoaXMpLGUuY2FsbCh0LnJlbW92ZWROb2RlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dGhpcy5fdW5tYW5hZ2VTdWJ0cmVlKGUpfSksdGhpcykpOiJhdHRyaWJ1dGVzIj09PXQudHlwZSYmKCJ0YWJpbmRleCI9PT10LmF0dHJpYnV0ZU5hbWU/dGhpcy5fbWFuYWdlTm9kZShpKTppIT09dGhpcy5fcm9vdEVsZW1lbnQmJiJpbmVydCI9PT10LmF0dHJpYnV0ZU5hbWUmJmkuaGFzQXR0cmlidXRlKCJpbmVydCIpJiYodGhpcy5fYWRvcHRJbmVydFJvb3QoaSksbj10aGlzLl9pbmVydE1hbmFnZXIuZ2V0SW5lcnRSb290KGkpLHRoaXMuX21hbmFnZWROb2Rlcy5mb3JFYWNoKChmdW5jdGlvbihlKXtpLmNvbnRhaW5zKGUubm9kZSkmJm4uX21hbmFnZU5vZGUoZS5ub2RlKX0pKSkpfSksdGhpcyl9fSx7a2V5OiJtYW5hZ2VkTm9kZXMiLGdldDpmdW5jdGlvbigpe3JldHVybiBuZXcgU2V0KHRoaXMuX21hbmFnZWROb2Rlcyl9fSx7a2V5OiJoYXNTYXZlZEFyaWFIaWRkZW4iLGdldDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5fc2F2ZWRBcmlhSGlkZGVufX0se2tleToic2F2ZWRBcmlhSGlkZGVuIixzZXQ6ZnVuY3Rpb24oZSl7dGhpcy5fc2F2ZWRBcmlhSGlkZGVuPWV9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zYXZlZEFyaWFIaWRkZW59fV0pLGk9dSxzKGgsW3trZXk6ImRlc3RydWN0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5fdGhyb3dJZkRlc3Ryb3llZCgpLHRoaXMuX25vZGUmJnRoaXMuX25vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGU9dGhpcy5fbm9kZSxudWxsIT09dGhpcy5fc2F2ZWRUYWJJbmRleD9lLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHRoaXMuX3NhdmVkVGFiSW5kZXgpOmUucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpLHRoaXMuX292ZXJyb2RlRm9jdXNNZXRob2QmJmRlbGV0ZSBlLmZvY3VzKSx0aGlzLl9ub2RlPW51bGwsdGhpcy5faW5lcnRSb290cz1udWxsLHRoaXMuX2Rlc3Ryb3llZD0hMH19LHtrZXk6Il90aHJvd0lmRGVzdHJveWVkIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBkZXN0cm95ZWQgSW5lcnROb2RlIil9fSx7a2V5OiJlbnN1cmVVbnRhYmJhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlO3RoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiYoZT10aGlzLm5vZGUsdC5jYWxsKGUsbik/LTE9PT1lLnRhYkluZGV4JiZ0aGlzLmhhc1NhdmVkVGFiSW5kZXh8fChlLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKSYmKHRoaXMuX3NhdmVkVGFiSW5kZXg9ZS50YWJJbmRleCksZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSxlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJihlLmZvY3VzPWZ1bmN0aW9uKCl7fSx0aGlzLl9vdmVycm9kZUZvY3VzTWV0aG9kPSEwKSk6ZS5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJih0aGlzLl9zYXZlZFRhYkluZGV4PWUudGFiSW5kZXgsZS5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4IikpKX19LHtrZXk6ImFkZEluZXJ0Um9vdCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fdGhyb3dJZkRlc3Ryb3llZCgpLHRoaXMuX2luZXJ0Um9vdHMuYWRkKGUpfX0se2tleToicmVtb3ZlSW5lcnRSb290Iix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl90aHJvd0lmRGVzdHJveWVkKCksdGhpcy5faW5lcnRSb290cy5kZWxldGUoZSksMD09PXRoaXMuX2luZXJ0Um9vdHMuc2l6ZSYmdGhpcy5kZXN0cnVjdG9yKCl9fSx7a2V5OiJkZXN0cm95ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fSx7a2V5OiJoYXNTYXZlZFRhYkluZGV4IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMuX3NhdmVkVGFiSW5kZXh9fSx7a2V5OiJub2RlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkRlc3Ryb3llZCgpLHRoaXMuX25vZGV9fSx7a2V5OiJzYXZlZFRhYkluZGV4IixzZXQ6ZnVuY3Rpb24oZSl7dGhpcy5fdGhyb3dJZkRlc3Ryb3llZCgpLHRoaXMuX3NhdmVkVGFiSW5kZXg9ZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Rocm93SWZEZXN0cm95ZWQoKSx0aGlzLl9zYXZlZFRhYkluZGV4fX1dKSxvPWgscyhsLFt7a2V5OiJzZXRJbmVydCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtpZih0KXtpZighdGhpcy5faW5lcnRSb290cy5oYXMoZSkmJih0PW5ldyBpKGUsdGhpcyksZS5zZXRBdHRyaWJ1dGUoImluZXJ0IiwiIiksdGhpcy5faW5lcnRSb290cy5zZXQoZSx0KSwhdGhpcy5fZG9jdW1lbnQuYm9keS5jb250YWlucyhlKSkpZm9yKHZhciBuPWUucGFyZW50Tm9kZTtuOykxMT09PW4ubm9kZVR5cGUmJl8obiksbj1uLnBhcmVudE5vZGV9ZWxzZSB0aGlzLl9pbmVydFJvb3RzLmhhcyhlKSYmKHRoaXMuX2luZXJ0Um9vdHMuZ2V0KGUpLmRlc3RydWN0b3IoKSx0aGlzLl9pbmVydFJvb3RzLmRlbGV0ZShlKSxlLnJlbW92ZUF0dHJpYnV0ZSgiaW5lcnQiKSl9fSx7a2V5OiJnZXRJbmVydFJvb3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbmVydFJvb3RzLmdldChlKX19LHtrZXk6InJlZ2lzdGVyIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX21hbmFnZWROb2Rlcy5nZXQoZSk7cmV0dXJuIHZvaWQgMCE9PW4/bi5hZGRJbmVydFJvb3QodCk6bj1uZXcgbyhlLHQpLHRoaXMuX21hbmFnZWROb2Rlcy5zZXQoZSxuKSxufX0se2tleToiZGVyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9tYW5hZ2VkTm9kZXMuZ2V0KGUpO3JldHVybiBuPyhuLnJlbW92ZUluZXJ0Um9vdCh0KSxuLmRlc3Ryb3llZCYmdGhpcy5fbWFuYWdlZE5vZGVzLmRlbGV0ZShlKSxuKTpudWxsfX0se2tleToiX29uRG9jdW1lbnRMb2FkZWQiLHZhbHVlOmZ1bmN0aW9uKCl7ZS5jYWxsKHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltpbmVydF0iKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dGhpcy5zZXRJbmVydChlLCEwKX0pLHRoaXMpLHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fZG9jdW1lbnQuYm9keXx8dGhpcy5fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHthdHRyaWJ1dGVzOiEwLHN1YnRyZWU6ITAsY2hpbGRMaXN0OiEwfSl9fSx7a2V5OiJfd2F0Y2hGb3JJbmVydCIsdmFsdWU6ZnVuY3Rpb24obixpKXt2YXIgbz10aGlzO24uZm9yRWFjaCgoZnVuY3Rpb24obil7c3dpdGNoKG4udHlwZSl7Y2FzZSJjaGlsZExpc3QiOmUuY2FsbChuLmFkZGVkTm9kZXMpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBpO24ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGk9ZS5jYWxsKG4ucXVlcnlTZWxlY3RvckFsbCgiW2luZXJ0XSIpKSx0LmNhbGwobiwiW2luZXJ0XSIpJiZpLnVuc2hpZnQobiksaS5mb3JFYWNoKChmdW5jdGlvbihlKXt0aGlzLnNldEluZXJ0KGUsITApfSksbykpfSksbyk7YnJlYWs7Y2FzZSJhdHRyaWJ1dGVzIjppZigiaW5lcnQiIT09bi5hdHRyaWJ1dGVOYW1lKXJldHVybjt2YXIgaT1uLnRhcmdldCxyPWkuaGFzQXR0cmlidXRlKCJpbmVydCIpO28uc2V0SW5lcnQoaSxyKX19KSx0aGlzKX19XSkscz1sLEhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiaW5lcnQiKXx8KHI9bmV3IHMoZG9jdW1lbnQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIVE1MRWxlbWVudC5wcm90b3R5cGUsImluZXJ0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoImluZXJ0Iil9LHNldDpmdW5jdGlvbihlKXtyLnNldEluZXJ0KHRoaXMsZSl9fSkpKX0pKTs="}},"time_used":472,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":472,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/10/mobile-phone-hero-1.png","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.967Z","timestamp":1785145405967,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/10/mobile-phone-hero-1.png HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/png\r\ncontent-length: 26926\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-692e\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":26926,"size_decoded":27176,"mime_type":"image/png","magic":"PNG image data, 281 x 650, 8-bit colormap, non-interlaced","md5":"b8f70e0f63b8e515b7687a7dc11dbab0","sha1":"814f9f7991c3150ebd61ac3352f4ead26394d498","sha256":"f28e62eeef0a8dbf829f1590f95bb63f7448e43a15bf30a66f69658314904ff4","sha512":"c2831f5a4ff6f665a72d810ff8807130c5d805dec5ec21360633147aa82f947b6eed86520eb2c51004f66614b0a1891a443ed6e837819d52d09ceb03c8520426","ssdeep":"768:n63TZ2W93UONncUWaBfEkk2VFNifQH3fzGaB:n634W9BdWa7ZXfPB","tlshash":"86c2f1afa0cbdb7dcc4e140be12e1005d9fea65efb07c8541a8d3a10687bf5069b2d11","first_seen":"2026-07-27T07:14:06.810335Z","last_seen":"2026-07-27T14:04:41.070748Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAARkAAAKKCAMAAAA+1N9VAAAC9FBMVEUAAAD7+/sxMS8zMzBYWFYxMTDk5ONTUlBcW1pVVFNYV1YzMzLT09JzcnGjoqBVVFMwMC1XVlV6eXY3NjWIhoQtLCpbWllBQT6gnpwuLSsuLSxiYV/PzcmEgoBKSUdFRUJwbmstLStGRURkYl/j4uF3dXLPzcumpKLj4uDn5ubt7OvOzMubmZfLycbq6OifnZvd3Nq5uLfOzMrx8e+sqKPa2dff3d3////7/P/p6ekAAAD5+v06U6f3+Pv8/Pz09vm1sazl5uby8/ZEQj+0sKvv8fVBQD3x8fK2s62BfnlGREGxrqkaGhjc3N/j4+P19fY+PDnu7u8WFhU6U6aAfHfr6+t+enRjYFs7OjewrKcdHRshIB9ycGt1cm7/u1JgXlmuqqYmJiQLCwsSEhGEgXtvbGgxMC5JSERTUU5XVVEjIyEqKSc3NjSrqKNMS0ipqqxaWFQ8tTddW1cuLSt7eHJQT0s0MzFlYl5raGR4dXDf4OBoZWH3/Pe5trCIhX+ppqC3uLqbmJPa2tyzs7ain5uLiYVCtzzU1NWPjIeTkIozNT6ur7K7vL6Zmp2em5aGhoXr9+qVlplCREzX19mRkpU7PUVdXmPR0dLIxMBKuUSHiItyyG3Nzs/KysxZWl9bwFZOT1bZ8NisrK9ISlLi8+DDxMaen6Klop6lpqmio6Vlw2CXk46/wMKenZuBgoVhYmeMjI/x+fFSvU1kZmvc4e/Hx8md2Jl9fYBxcXKZlpB5entRZ7GJ0YR0dXhBWakoUqs4UqaAgIDEwLt3eH7Q7M5tbW4rLTZXV1h9zHlTVFytuNzj5/N8jsan3KTM0+e/u7YpOnZwg8BofLzp7fW3wuBddLh9fHvC58CT1Y9pamrV2uvJ6cc8VahoanDDy+Ow4KyQkJCNjpO95bqhrtaXptOLm81KYq5WbLS34rRucHZFXaz/7M7/w2f/5r//2Z//zX+6wNNHVYj/8Nlqdp/a2NWhqMM1XLD/9uiCi67/+/Sss8pXZJKdx50cAAAAN3RSTlMACZiT2owR5dbg4IgkFz1DviqhdGnms1ZY9Z+O/oFp577WyuBF1GaD1VizfeHYi8y6tp1r8qal1wkfZwAAZbJJREFUeNrsmttr02AYxp2iFzrncep0KhWPeL6RLKHUtlq11pKF2cTUUpOuSXMglmZJD2FTqzLFziGTbQwVEeYcKgpSPMAuFGSX3gne+UfsD/BLNV3VxHXa7uhzM3ZRaH59vvd93vfLgvK1pLaubsPazZvXrq2rq11Ss+C/ClS271q9VCFkihKAZNGzdeW6TXXLF8x3bd+1gwgKoptVuHhCVzymsCgjN2xdtn7Vgnmrmj0HOV4gWC6R1PC4IrFeVlK4BK4lEzGAp2HbmhXz0zvbD7M84wVYkl4Bo+GiaIwiYoAVJxGMbeH6eQen9lCIZNg4rrFB2Ey0zOJRnPMyDSu3zCs4ezpFysPhKTcNWysic+eTcUmV5w+c2gPtQYZNJLkIPIFoisW1hCQ2rFwzHyryht2nSTWGayJcloIorsUlYu7DWbI6f5sXY0k8CJctnzuewmMoY1s2h9vVhn2djyg1lgxj8KSEiQkAx6PaFq9YMBdVs/p0plGWlWTSGow1HDQcBc5psC1aMedGiLp9fU1ZDyXhUd+vpVZ90D18NT+Yv/zk6xtFoK0qshiPJjk3U79wTjlnya6hpqaMFnTjKQH+SczAfRcCGUIQx5mr7zwRCzhyTNPirFq/cc4MEHUH806nv51U4ykJLpXnVjP0u+xnLn6kLHt5CsAR6+dE0KlZeyXT5PR3arykaaV28HU3Q1ZC8u94ixQoKHMEzvId/U7gmMwQL4ajpWdJyEJ/FJLtZmBzgXqVmvUpcMU+3TCZzNE0r2hxeFysH5pQSOcAanGsgmwylVBmcQrc3N+kgzkzdoMR8ShVUmKaobKE+O+wlr08EQ3HULl+2SxsV7vGwEECYLJD131SKgkXxfeUPPxEcM7elWgLOB4cwCEE22yDs7dQYTLZscZQmMGj4vgT5SFDzpfvc/YJndN0UYpYVGQxroGIDILOLJofdjY5nRlgmLG+559FTyo6/mzd4888wMfQz44yjpXz4qgFHEzlUjoc28ZZsu6q9X83TGdjXrvOc9EEbIh0joeXh28cfs9FqCw5rvZapUAGwAERuWE2wFmy218A09fYP5T4LGghAjZ0pyT2fvyIQMOsw/h3QjiXXwhWcMCqlPPOgoh8xPnDMB/atVaOiKaLo6Rc2pdycs51l8q6sgjgcrm7D5pQrmcjVnBkLpUE88PMXpRuBy2pYJhPx57HOmQpdB42dPenWaBLVdz8YF6+D0F9qCw5AKAJnWO/bxGRIxEmltJ3gfKMDTo1u4FhxhobP7RfuJLmTvGJNFcsmGdLC+uTWz2Xc0Le9foe1Dw6eldy2PtG3mXKqMh9phE54otgghTV4gCObc1MdM7OzFjBMEeHbraxeBultRV7NvGTJQaZ3PE7cgYYxf6S6OliHWdEL1leRUbuDRD070cKwPEJShI4h2BmnnNqdn+vMBdud0Q5MRRlogES/qE3Pz/esOilRuzgBHXKTxBA5kQ+KwMyZeqMWUSmIxiGyW59fkBV26IZlQL3FA2DSyIRCKPpluKv++yXX76n63ET1NfrzAVHnr3U64wfkJmEzn6VaFM4Ed6b0FOgXL9o5qTAQ7phzumG8TCUckpi20LF5UMxzJTOBxn0siv32iswVxFrMtZwTCMyDZwTRBN60FHrZ0jQqW3s/3Dy0tMALhECT+IdqBJIFWdJ887jdIGW0zQi9DYbZCYn/6PRiLlzKAAnDFbsM2J+2Nvffu759fO6YYKkL3SDiQeKG4jX0B80rDQbnpm87I8e0GbOARUZ1bfIXhCRpzvo7D95qVBhhCAJdOqpEA4UC+XwHyNuFimrzlhH5F7e9FhFfCqn6btAkAKnsV3Vtj+/rlcYnvT5fCTV8VTQAm6TAmwupPnBLfDn7+F85M2dQ4oFOOo0rrt2Dn1OssAwvoLEGzepVIAwolhnGfn/BPRPQgZfk7B50GEkAGf6FqWH2ziPDAwDegPwjHLthnA+YATWYDNUZRkpkLEKOgoOgg5IgdOw7tqniEKBS4FM8loHIEMZi3EXVH0ZcFRT52AYxRZSYMNU7wKXd4AKg2EGmTdXWuVQi3HN77ZDVRFiNociZ+6K5s6heUnT3yUQ6qcyItfFSd84GLL7ZguTbjFubWMIVHmBqPdldHSkq89hEpS+WswPkaAb14OOPHU3wmtlzBAAQ769HmDSASOGjVaBjP0JaWyvRgZdZotSL23ey0k0runX5VMUkVf7sEgk8sMyQfL59Ta1rcUg04tUHswAXfoGwRszOJknMfP5gY4IoF1xrDoVl57rIiVg+OBQR1ptCxhf/kXlyXTBvyj45ZnLzFkPaKvr8tjU7AK3lYKh+HOtIXGczKuKg3GZbbDIV7ecyO9wcr28FRwlnAJwqhqRa2ylYATqJCATKJL5UnEyOdhcZO+ts4hJRLaEE/RWOQUubygFI8vtp0JEFckgr2BLYaPDZs4ZHCFhc/k8CT0FyrZl1YCzSsB0GWCYT62ATHFx9bHSZBwE/CdFpC6/3SQFvpatPkBo36/LKw9nBVniGEYVP7Wmq0nGJcATKOK902MGp1u1shqR0HAFZSq9C1zhw3wlYNAPUSXIafD0kQGiPS+zJuG7564lHDUe1dddtkquu9aXgBEJwv2URTGPp2pkHAxclmhx4L5JRM58ZWnLS0/8x6Xn8oqRIb+DUUUCZZiv1SWDPITLFa2+N0mBkLPLS1vRjGnJmP5GaUXgbMF0LpTAADCEQKkFMu6qkYEGygVjPT9AICJbwRFiGnBORSLyGswoMQRDUZR6U0uJ0XD1yPTQ8OQU/JIzjcijtOV7gdFUXFLBvd7yfyPjM8BQPCDj7m9Noy0t1SNjZ+BJi3xxqwn5vZhffcBbfYDFtbBCMCDo/AuZ72BUXj9TaLK/NeQ5VUUy0Ddm7v6ljTsMADgdW8dY9wLbZEO2sv0Vt15uRyNxKM61njaStJSYqYlKJrpobGC4yiisipS6FYaOMVAUpBOWoRgM6aAISQiXt4FHOAp5g/yUEISgv+y585Jvove9vBm7py9UKFf88DzP93nuLt1WVsCOyHI41Ow+DkffOQ03LXQ9n8KIXK/MJPReuA0MMEPDVlGm91YTZbp11+qLrt/Xrsu09M0dHW5/aNcKD4o+qrOs3tNBwgyN6CFlblisgsxMe2/zJj2INbh4nWE0rd0jZV7Uhld0cDpD7dOm/qF6GvJ7+qkxA7iMTHZakMy1JspQv1xrIIz7q5TcWyjPprCTkdamFd5FrvWTM2+ODAkuI2MWgDGZ7M2XIe7przUSA5bHspPS460p7MIxPXjXOvlBbVX1Jswz+pHRtmGAkWSa22cgloGmkehZoOTHyHu/tuOa1LDNNt429Mrb1cu8NgAwU8PD5TLN6TOIxnCtsVgEGgzOI9yIDLcCtZapz6CoqpYxtAOMWEzFamqyDHHf3CDNLqXw4ZA1zIhsHLPZTGPvflitzGSnBHOBMgS1Yairx8CPk1ivcPn9AfldbNpmav/s7apk9CKMJGNudgdGofl2X1erixjS6Pek0vUxI/KkdtA61fJWFR3YUJIyZrOt6TIoyO71/a4aZSBnJJtOiqgUX87K4o/abMNXP75cu8yd5ssgnM8f/ll15py4FCtqo6qq3dyRwZ+a0d5AJaUkY7n4nEE4N+f+Gqm+mFBBtZFV/gObB4Yzl9LCK2bvVydjBRnzBcsgnM2dyapkjEYRRqQZeFL9P7Cye/r6+pnpzpYrijKj5TKYjbLpoV7dnRyoJGPs0RlR0izWpL/6XHdqlO61XlWqqNcgZ1AxmQcFmY6izE7hujRFND3o5e1+RRx4sK3rARowqucVFs3D8qflk4N3h99XqiYpZQoyHXfaek/LkJ6gz+OgiWYH4Cy2G/EyRj08AyqWU8/nNU9RKwelidMzaB9rvaQgY0HFhMkZr5Nxq5yBi8F5sIS9BT7w0889qJwG7tdzt7X0rBoYt/UDjZKMtUzmTM44XIyKUalUyYvBoe5jPqUKJCcwlVuwwvLw/BoK663Olku4PlNaTOPyOQMyEEDjdqeDMU5DEs0OqnvNrMMf3CdfPKj3lUBTyWjzvRVD89rocAnM+G3oM3I5AyoFHJWAo74AHLkRuVTGeL3uil1A6mM/WlouK8uYlGXEEHFAxxWJ+881czDXkhmRJReIduWz6aZS3d/bR0fULfmsefN0zojbgZyMDE7onHAokiDxI/KfmLX8BeZStIZUrz0hn1uUOjS1ZCwWVEdbK64DA0xlGRmcVII/Dxwykw8JaYPFmd+R+U+ADH1yf3fv4PrDG+vdo0PX97seEUqxWtxJ+r8b+0ReBqXMBFTTDF5GLnPOA+eQ5WAKhuso4OxNIhT8CExaezY2uvbvjeof7HctKVYq8bizcCnTYP87SjIAM6HQZ3A4Kqcv7KUal/FnM4rfCb3ydAxlzsBTWlbG1LO20WUukel7uLi3NX9T7qKa4hl11952RebUthaKCWTuoGeUGBkcjoNqRIYnCT97RNJ8xk8rjci/thtFl7E5jN8flrmNnhIZ8pFON6Lv6txQyzXp4gMeu/azy7I5YyrJmcoy4AEiQqCzPOqsf38AmWyez7BHVJ5l2RyneOA+/nZr69GKGt+x6cemAyRDfL737crmmkl/0Ce91192tcIRZeywtpyRQW1GzJmOmWpkwONM5tQ9IoPMMctm2SM/mz06zGY5QtNIBhKaPvpg6H6hz1CzB79sLW+MWoTxR7Ow9ERTmjWWQj/vbXvn9KldkjKiTOWzKelKxYJpZINwmHQgBjh19JlQJsceHbHQakLHx2oHmydRz6kj1N3UkkE6mxZ0hi7D1urkAVxs/dnm0t6vK6jtaNoK05Ht6ltKMjOVOzATDfvDpMbhCaRRVSEcNCLX2oEFGT8h/CHjYIU/UZy6oe2rTyqZvx/PH+h3V5ZJglh88tuz+dWFna3VwtvH9wujpM38yqWyDgwypmIx3a1GxuXnHCEfzHmOmLRPndJhXEEYkYnqI5M9kQET+EqTzYNMjiSP2Byt0TQ+WNM7v82vbYup/HTZ0KW7sTe7sra9vXny3smmUWo1d268f1oGwUgyvco5w8d9ISfjisQ0QSTT0P5A06KM+jhHCzI5B5tjeT7LZunMcb7xgWlW195NEQUZIfp35lYWdp/N0yWfhLDYr14q78ASjCCjxecMCsYTC4ScYOAMOTwpJNPgFBjKZwiezYeoDAs5c5jLZllBhoXfDxukIRegkspkIKaer/+9sAVgVOGAsltay/tMIWWKOdNRYdKLhSUZr8fhcTP4QYepCQcOVCigbI5lMyDDs6ADMtB9cvlGk0ZMGCQjhW5s+8WKMAz3SHfNB4ev4GS034mTXoWcCYYSUE2MyukNxsMgozwF1rRckVw+e3xIgwyZz6tFmQwlrInnFI9WR7tKwjD7giipJ62ptVQG2kyxmECmipxxhTUgo2JAJoZk8DjRVA37A0lTJAkyhDdEiDLs8aGaOK/46t/1P4d0JTK/3hTanFW6MXz76ttlMuZymcq7dtKjDjCMIMPHijJyQmhErm25og/FHUqUyefgTD+3ePh8aW7jYEpXkFncEmjmC6ulqeWszERBZqayDOOK+dNud1DjCSWQDJNMM8rLlacGnKIMT3rVxPnF9bndg6W5dcA5yZndbqEP/Sad3Lfbr6CzyWpCMNOSzECl7SDp5wNBnqK5JIMAEv6UKqpUVu4a94dMHmRyPMCca/TNbh9szf6xM6YDmRfis5kHRilpzK0lOYNSZnpauZpQMM4wpfYmgs5iFUHfiRMxVSqWVClmTjIQ46rGgY6TQ6f2eeLMP32+9fCPF7NbX4vXJnek4+n21SulMuNFmVvV3rlyRUKJSLR8mIl/EXIG6QAYKXZkJh2sBUeTycE8TJx73Nxc/Gv7t1XpqydSmUxYPynPmYlaZXwcHXAxp2RgXwAZNyMGxkaaAoO1jMhwajcl1MvLhcZH3ZBerrF/dqkgg9oMVsabZM5UU9zvDZYdSIwq7k14AwDm8zmFXlSWO9hb7P+XWJfuFQ62v31K5q6QMvZeWRkqIZMFaWgyEGUyKT9PB3xqBxdxih2IgVAoq/8TTp9e2p6srUUZlDJ2QUbuXYhQkHEXviEUp3fJuNcZIMmAxxv08D5HOpIUEkf8pTQFJvj/B86edAvL9vrlszLT9g65jRJCHfY5o27ZbxI5BT1JF0cEYmqO8wZCET7sEsvKGYhAn1LEQVPgy4sH0jNhW/87ZTIAAzljw8iQ8DPESzh4nWhUFQgFAiGfzxNxJLyOiNfnZpKcxhtORoNphY4M+8NLx6GlxzZmU2tBRjyzxyUZmT6DQsMnAEelgMNEnUkXbOCJaJjjuEQowrgDVALSJ+2PM4zyiPyycaQHCVP2NyQZMWW++eFWp8lut32DkUGy/kRKGQcaqy+ciCaImMfBJVXuhDrljniDnIfB5Fv5LfaXh7MkrZW2/ivFnJmw3fluxzBktoHMmQ4shxOBJUC5rJiII+j7wqNi3D5NiolGUlw4klRJRxyDxWHE/eHldOQVadjTtr0v5QykzODgzDeGkS4tyJzqM/JBcfFKOEza5XT44C8E1REGphcu5OCcjCoKVvGA0nYlPn94GTZq6dy2TrSgarLfFmXGQabsedOu0j2meNCljKNKp4Xa4mKulC/JeVKOWDrmCUTd/nAq7FQckdNxmrj4kBbuMfurKGe+k2QGv/kH9Rkkg8OBZSCNxUG3AL1+vzrAeVQ8n+I9jrjKH46og2JV4TKHiXqICw70WfIu2/DlExk4su0FGVzO4HE8gFOhI0difDwJMmE+Dee5Ny3JQOBvdwX/Y95uf9K64jiAZ8mesi17tezNsi3ZP9Hjzi43aITIpsgq1RSIcauAQKz1AUVJ4yStbbQTo9EpKmNRU5lRtPgwfJqLBMODCQoq2mDjY9M/wNc793LpURQFLtn8kthAlKSf/H6/e8498D9MYgOzQWjQfPq2Zopl1RGZh//gOYNlrs6G249x4k3kxcABkvFmhu3Zc7TMdycnaKse94/mssF/nv7oJyMUXzI1w8hIfqgsffhb8jLUKjDgPf7uqiUy6o/j2+jMIdt/uBGR8Xs87uOXi5HL1c2QaYre86z44ryMipa5Ys6wx1l0ezxMzRxseNcOTgLrwUWqclD+f5nc6BF37Te0TAWumQrpw9gJnEw2wgjnmiVy0B8I0jIBMhywr5N2jxvRoL5CuSkyVfRh5cdVFZXF6Dw7UjPSVGsGrwKv2z8gBv9RMHv9aMPrXvNme72E/8R9MEdVDnrcCJm7pdQtz/coGXQ2eSeHlnkUO2eSTya1f7h9Jc53i96T452A17+e7Z/bODog13bCx98tvkR/cxNkfpYqPqG7CckU6u5QNVOMZArYyqAQ8TdXOCcBuztIy4TXFg8z59bD7pObIfOTVPEpXTPFhahmNmkZGV0zOWxk8BI5uHjNzHnz5mSHknGv3UabqzV72H5yI2S+LRV8hmTUlEwhJSNBMsl3E5v9w220fzheO/JuBL3ZaKXs3zn4+0bI1ClomcpCJIPmDJIpTJcM3nkeIBymdOLhHC8GPPbM4M5O2BN+eSNkasu/eitTvRmReYJkstIggwM9brpyrljonBytu7PnDu3Bde/NkKmo+YKaM0imMCqjS68MxvEfX9FWx+Edj/3NG7fH7r0Zc6ZM+fkZmUcqFZJ5xFJGlEHEwQnQOJefI7zxHqy//G5x3XtyI9Yz39aUIZmPkUwtklmultA1w+raBKdq5M5cAOMskQOXLZFprb//phd5t2/GVfvb8gpKRl2MZIrv3NOqVT9IkQybCcz/Xd0+XpTb2hrHBmQjnJeXnlzdpH3Tt4pKupuQTG3NplJdIpHfYSmToX3FyXQ6bEoCxE322lHM7YcbcxfirYyg+ENaBh3AaRXyopISpY5tzfDa0Y88W3m9EOAkfv7AXuYWFZBasExWVKahTiOvUlSU6ZAMq90BHBMIAcGx/VjlygAEBMJGMRFv/3AYxDhpkMEwqeNgmcIP36FkGhoaKgU1OqlUpqtGMmx2B2KFc9QxYpNPFXX2d7Vx+bz7r4bAFecPeImcNpnUcGJl3n0HTeBCdAAnrSuVUTDVT1E3sbkL0eSqKrHZyomFUJPTpeTmj/w+A69ZIuOLUnpkUtKJlfmIqhlKpo6RufOU7e6AyO0g25WEY7yd5/pxlDdSNsMh4FW/b0c4uK3Yy6SOg2V4jAwNUyqTRWWy2O61Rf2wNxQS9P40QslMDcx2QJjkEpm9DPAQydpgmdoP3kcytQ0UTCkFg2TSdBdC1NyvyaJlNrvkIYX4j27xdThv8BI5DTIwHAwkWTdYRiX44J23MlK6ZAqespjAMeGOjjUKRsocyhLBjyNdJdo2COE1t9jx4QxrGfvc0qn9EhrIPK6UkWi/pmXoZqLnb0HB03/Yy+AQ/d3OtvYsQ+hZl/L+3VGDs5EPwRXZwEtkdjLAbl9fWvLDczTnROA1Mu9HZaRSumQK/vzn3JzZBGzDz+C/0GqGuhxkUS+vqCZrhMMnQbzgzy/dDpIg2WAZiA7O/UtLhwSWYSjwzwRkcDNFZKTpkcERDv2RMT5D8Gbkz7mqmVHl71PgypDho7kTNwRJBstkH54uUTLuABnTThDnKpn8sg/OyOgomZw/z1+bZkCakttPlNtqX9RXzTjVy9om/Hr95W24QYAkg2VQIyEVSsZ7wGFkOBgGB8C4V21GpjTaTDlIBu8OsExa0tTRVJP1w4xTIrjbxnwXC/bVFkOQxtDlEQgimQAtc7rGyMS6xFZOfBmZrBrLpLVmcOAfhtGs3hZti2MYwvb2ZghIhbxqBIqaCMA2WAZViWcuWjNLJ9nxYbBNnPVMQ2TKIJmcnHt/4s9CpF/GoMm/20ja5GoDAK0DvAxAKJeHXvTVlAwBMhOwCpbxuO3Z7uBpICKz5OUwMtiCQI8ziSfzMSNDNxMtk/aawak3tAoBzB0SAQDJPBKA/vxZbt7CDwaRQ2CjXgQsQyEcnaLvNKx5jk4pGcRDyZyHoX+e0YkvQ08ZSuYekqHmTEFCMnBiUAhYhZzqHggRIo3hvmohf4yVC54zmWjMnK4frK0drCGZ06AnIoNdAHqOZM7YxJHBixkk89dvBboEZeCuddK6pwcsQjhDIyVNIk3LppLfV9VBjeRGMWCRW1R2TpeWKJLDtR23/9ATKxOdyfCMzeVzpo4ZMxGZf3ISlTFaH6BMs6IRu+6WZSCZti6SzBoGcEhdosgFqecWnQMEE8E5Cnsic4ZRQRjU72AcGM2lMpGSkVbo7lEyCV+1dx9TMo/3AZsYQiKAuslQJBYqbICY5TXPDhCi4ecikHSwDOENHh0zONQXPgAjAwlGBgdwGJ3Lrtp1qGRkOVJFPq/63sMkZFaQDIp1AgD9/t4gSCmZ9QAQnVP88pkW1XNAdDk4ufLmsbsalxhAyAHJ5lYknjDncCma00PI4cTKXFI4F+aMnF7MVNR9L1crHj78JfEJbJykZR5bANzrsZp3gZFM9eICQbNC4soTCR1OmFn0TNvGLe+FLc7hpC/l+D9MyxxSw/ggEy1yojBYBuftiji2m9CdmYK6zc1flXJtUjJw+sFj6rEL9KurE6/Nxul5PZyAILXwu7kw1D6qzWuqeiZvBI2aPrWgaIwAySRW5tTjOQ6G4a1zMvTc4fLP0jBFE9NNHyMZXd2dzc0ndWpJKZJJeD0DjaYHKJODQG+a5ujNW9sPdvXbK6mvSkSCVsKZr1T18UZAX0lnVXOHup96uSOJ0jkjc4pkOG47uHVRhnAp27sxDiQulZEjGanDsflIKpfUUjUjTXgNbJzvedDj0wM4Pw/1Jt/8Y5PR6tPv+1YIkEqIZiEQdQ7ch+1K/oiqM0sMXA4AuA0lrnqAk6DMgX/Hf+qJPuO8hSHpmhkKyVXlnVEcEJGJ7Sa5VFYqc2xutsnkquJHSCaJNbDesmXRU5cpq3HC7Js3Wbesvl00c6YhgKlWDuQAvlKjGhiqqgehAQiGJc+dLiExNYRXlYnQeLLR9snDuFyQgZDbOKuVCHq76acEcalMqa52E+WRTi6pTEoGB25bV3t25017q1afz2q0TFr0r6d3kVmKrZXxrDeXVI7V5zshmBGQXE3rsEQd4gOchGZNeONCzZC0DLGMmongNi4UaTJomQhNU+y1SVcZI4O7aRkkFnJre18/j5qpxzdtmjDurmz1mFDlGI0g9eJpzi9Rtwphp4AgXQtZ483lnYm/UxSE+SdWhvMKNZOtT8QR9wtpGSoXZaS6CiyDJzCWSTSvt4HvgW/PalxdtWxbjYNmy5bJuDuR8kjOaJkibG196ly+MiS/DxqLRAm+E8aJrRkSydDP81qcWpWidyoyaWiYWJn3GJnliMyvydcMjh4YTb5B8+6gdXrbBOHq9JbZYt6G5CBMua+anxPLimXJsOAZaCrpjr4NIcJvdiVOvJoxNAsh1UwqJR/LXKgZWXUZgqFlitnJoEwY4WvzvHl6z6SH86uUTI/FYh2EZOrbK5GjaFZs+104quqLkuSG6vtgEjixMtAlUbyicdoyLuum/KhMBS3DdBPea2OZ5GKZnl8xmlcmVucpGfO2BeGYTK8JkGoyhUCUVc7jcQG35sUUBP1jNa3jxOgIN2EccFYGhd/yQv0jr61biJ7FnzOyOxXLUZknv7KTwcddW2bT5D6SmZy2bvVYUBVZfRCwSP1MVz8ERF9bLwFylXd5NdzenzVOcYIDHmIZyFSR2ODU/pBvI2gZMkamkJGha+YJ1U2sZXAsvi39PpLZ217tWbFOwxWrEbAKSRtAIYDPx2e6ykcWXI3L9aL2dm5CNHgE47EsbnWU5zEyKLETmK4ZlCcySibOnIGpDdDB+cHJvcEeJOMbXLFMgDSlsUqr7uWPa3q5xJiEl8W9dlsOcTfRRYMj5GCZC92ko2SYmnlKy+RclIE0TtI8EO6vwO3HltVti8lqSZcM39WiGZjqeFWbn1u0LB5fgEMhGzfhdkKTJjboxYRkYrsJ4gCQPA6qHIvFvLLSs5IuGdja5MoTGpq5qmFNCxjVdmTVuAb4og4iIRlEc5UMvnOl1RVUIpiHWOZ8N8XcaU+lrzgQvDZbkQwEOJDP5aduk0HA4aLZn0fK2kGz6nmJIa+7o1zSCvh8mAANsvmXmjvqSSOL4gCezT5sNvuBmMnNnclgFmJTGMd0VqM2XbLbtSKrG2nFTLMWmBpUQBdBTAyQiQSECEJCiNLEh4Z0DU99a2I2JPDYb7F3YOxVxkFwRtOevmhbTfzlf849lyESA8l8+gvBrLY6Mm9vkoFfSsEBw+v8899/1+eMLbVTCuhKjjf+gVm0CDln/rdll8icTS36FywtjgC3y9BmGmAcSt1NHZmXT2SZ7Q00gSeQzLV3179XYJRviHHuNpHBlQ/LDW9MigJdNpBgL/5wxAPOgjhJco8WM1P5V+9ATuSp22jMqGigtBXUyMzL0SUUme2WIvNkpkcGQhpSJgJgHB06uI73KViuA93T+KAlsOflwHwByfCz+ZYLPY+wlGkC9JPBOKjXFRh1ZpAMgunIeDrdNDJ6VQbvAASlPzm4DiqQ2NuMyGNTN4/fMu8OIJkq+pWcp9zs9sE7zh47sKpo4JXQ0NcKamTmWJGZwHNGJaONc7efjEuFhcimtNmIJSCBiolyd6fhMgmAZMLLgdML3vUiy3FzTleJvS6jGjXmL0CwV+bHS5ltLRlwKYPrBpzhbPAI3m0zjcru5h4gCK7UaNpYq474wGJhbz6fc/q9+7Mf9px5m2UR3NRP2AYXvDEzv/z+bFuR8RzdICN3JHbBOLr7iktWaVAInFRI9Eki7c81E6m2DUsPX0BccIxFF/nE1IEzQERmoXoPxjQqGJXMk9GlS5mJrsyoSgadcAbj4Aq25a/LNMxmMZOOSdVkhod3Hj2sX4CnC5XHIXeICDq5Hjh1ajAMMrs6gXFm1rBMb2bMP2OZ/jh3mjmAA3JvSTygE2l7u97eiZdJEuo4rsJz29bTCv/ebSXUNGobCLUyI8usrR0NI2N8cuBJWzzJbDZ22u0Tv+iV9u06jiwACMbimvqk+g5YRlWgn4zTc3R4o8zPWEaNAwxJDsG1U+WqFEr7Y7v1ajWdjTNVkaGJOxdZDHM3kGnZALWMaxRnpiszgmWO+8pgHCMWHWCmhTrXDLbroWBG4sLl7G6qbhMAYVgBbKNy6X2qosisrSkytY7M6FAyGEd/cliQbLfjASuSKVTCTSHkTQvQDoGBNuCyVDCqHXh0VZZZxzIWLFPukaH64BDAkJkDmGy84pWEbCW8WRGT/7b5dDBnY4FxycGFXa7LjHh++A7L1GQZnzJnNGTI4yBn6odjTHKg4K/EpcVss3qQ2Wkkd0P7O80cZzY4NbjUMhOyjOv3XpkRzczYHdNjIobQxNGfHGi3wbxU5apS7HgnSsfLkWAZErQhydG0salkJhBMp5teyzL4rq2WcR8U3TbTLUUYdJZzwWYpKPkbm1FYEgmxQrP7BQIA3SxqG9X7Z67J+J66FZk+mZlf5CaLlMa0MX7RoXhbzBz+91ImsNmkhSxtzCGlhunK4BslkvF0ZLqZ+dhXxjnlGs/HziOs/BkbtQ6Ao/O1QAC4YwHGZRm23YwL0TRJACsH9cGogyP/Fe4mLLMuyywjmTd9zya7OxwrVh/HZ1u2MAfFqXP2XpODdcIFJGNPl+u5qEQSfKURMevPTW+pZFZXPQhmw/d0cnrF9+ZjvwnMP8qYTIHxZYsj9Hjh9IXLCzVIjL9cEYnjg93mTiWAZMi0tx4G+nuq5w+Wscin9veu1TUkU173zc5Pv0Qy/SawiUT9Yx05Ky6JU7HQq98uWIEfYOYYs+jQ/iCdTGeQDMiVMgVIGF29ExjJTKyjajnnHRudzGjKKJWwLKeqDsEUm90ruifzFDA9VHIIOh/cjfiFkJhKqM55K60nNz0yP3ZlnqFmqnmcjgXf1uFHzU0PFxdKBNwCFXvBviqJ7lA4ZoMPlhwQjaRCqUz4c29mCul4NgoNy0xnzqzPtdZbq/MO58RWdwJjmZbWvYlKWk2RV2zpE/Xu9fbjyeK7qjAAjkErMh1opk96E5L97K034pEEZ6TMs0+tjdl5p2MVZeb609t2vxulbZEKLefOl7bHkt7flt1i0o7/7Z5XZNbGE70y+wTgQwinaoCMR5EZnXv714zT+XxrawvPmT6ZwUUdjCzntp9RmSnvu+mx+SplpQbDUXSADh21jFzcYpw2QkaeM2vrG89n5x2O5z6fIjOqKaMuK0OFL6iM2y46Eh/iyUcvCtQAyaEMfqyHZYhAipXHkd5uUmRWfSMvjnyKDO6mvjK4IGnaG2O8k0zWIpT33f6I6NeayMY/nFHLNGQZwiCZjY1arYZgFJlBM4OLsrPVWTJrCTtGxrPxaccFNOm5XOmXsXNAh8zIFZmjI10ycpHQe95y5MbLHk9yulB4vS2YHmLRwWcTCbDMvlQWANQhgybw5FoXpiPztrMDDyeDi+L5C8t4y3PMjsUWLHMLHB/gHiw52c3GiZeBiszxSThlDzMA6ji1Jy8jo0MGFxRChdNtdqxsybP5qMc9GzA9UHKCzUS22TgLFroydUESpZA5wnDgbnNGkelGRpHR2PQGLl6A55GzOGMXxpc+PMLX8ftdkcl4MyhE88201JHZSUsJKcRJhXqSIODdJnBXxteV+RPNGb0yqDiSn3O5ko7zV1M4NPe8IpPBz1IzF/WHaFmmnaubpZBVKlREgg4v+tnhJzDKDOolpZluk6E4krQC0yBlFRet7xfCZ7ZBYfSvyKwteCZVRPkLQkG+EY2LXRlzqZSKsbx1+DmDm+mWOUMxDEna7cyAOCZ2f+ycHwJG//MH2u6N0N1LtLcgxsXdakcmzwRyUjMx+A78oyzTPZlqT+eevFUyoyljZXgSFZogjBUOlhwr/viBkoP/JwyWPjOlA2AupZuJ9mdvgx8yMwhmq/ZyaWT5F0UG78Cx6zLkl2JQcjhIme6tKGOu5SxoN46rpeBelEmFCwwY6ka5cYRqxfdx2b1wmwzqpV4c070VAQxZdKA9mGtWClwocbYPiWFkJpHMxief781f8+4ansC3yihtZefY+0sOYdCKzHnPjsP1wM7esDJbv6OT6XAFvQ48sAzGQdHhDccxfkX+2RxJpQPDyqyvoaPp7cwfzueHGt1k0pRR+oq8dxz9ySEFMIzMT5MbtdUjWUZ+EteVGe0n89XgYJt7eHbQPbV9T30+LHOHzGAc633iAL3JGXLTQzLP5QX4UEdmHg5He9ExXmbsqLZyKbNy+Ct+HXhYGXyW3ycOYXRytG+UiowPyTgVmVEdMpcrMtApoPvNXfpfIVdnxqJD5gG3QHVyDM+MbwXBFDsybzoyfbvpa8NRRcews2ms1pHZOpyRZfTOGfWKDL/+FVlbBp1NxUuZv5/MGCKDV2SG+1YWnZ6zCcnIDyeLXzIzo28Cqwu1Ff8NrMi9c0aRKV6ZM4bJ4Po2Llf/c3c3r01EQQDAEVHRf0iX4OLz2wYTClYIVq0Hv40Vv41oY1spbtNKkqaCqARL24jVCEE8eQoE+kf00GNpk0AuxZuzL8ZJNt2dXeftanyKIAjij5l5M5nd2CUzfRFgpMxjfgX+l+YH+MHKpmfPTJlpt3dTb+GADavOQMi01xmOzF+fHxiRY5E5+mwaZNzXmV7EQRtv2dSUad3aVDYpwvF5fiAetHBXgS0xQ00HPYiDOl42cduPtsdMPPZEicw/MnlaI8ejzPT0YEvmItUD9w+oIPF/OePw5n3I3XTQJjOCMvYxo+vRYz2Gs9VdTscMyOw49FvmzrWL8RghA7/4gZOA4erv43TKbAcZjBk3Mgpw/pHljIPMHikz3qrAUuYEJUPi9NBwFXKKmb7p6YudMdNHyODftAVO780PDtk0bmbT+JbZlLaTQZx+DU9Ptsi2d9Oh8S6ZU44y/wMO3uVI0/V/C5oxMy5lWp2eaxnEifYozq+42frWPjrelImbMkMeswlPCHG8CTje5YHgAI1NNqEM3k2eZBDHc0V+Nfs6FXEervxukaVN90QJd5OUGf8lE6brjFKcN0Yu8z2rvc3+vRYZM8oic6hdRtYZImaIowOOF5n013fFyLdZ8Rc3V5KmS2aHlIETPyvrDM7ahAwPB2WmtGQl+S0fIVtk/+YH3UyoLeam8cWmzOB9RgXGgy2yO5nM57XKZEtGOOn4t5yBWhMKdffAzZhZHDl748zZeFiJDOLQMrPvMrMT5Xxipjwc0VIFoWXfiqDnB1mFu2Quy5hZXPx04/q1p3FVMYPzAyWzoGUTWjk/sQJvjb76bkxESpVvQQ9XURk01lu7bxFkgOb5meuXFtXFDEaOY4ucnS1ocCBmhj/MGKnlyvdCbi0Z9HB18GCnzKGWzMNFkLly7drluII643F+iCSaMiljdrmSmjLS5Up+KbgWGWUgnTq/mQdkRs6PjC9evHDhzNkhNTHjfbhKv5s3PkxWUgtG9lVuZXi+vDoRxMNdKCPTyVpnoPa+HHn04Pq1G4tx2QP3qZTBEzpmf5eLrJjJzEmZbG4qUczNzr1JfI24iZz9Choa+MbArWWmbz+6euXahRdD8Xj4eEfMDCuSQRz7f+bb1NrYWOX9RG5qNPM6UVp7mymns4kgljP7jllkjrZkRk7funTm5sd4PC47Pb9k6MkzEikvz0PMzK1q6dy8kSl+KRZSwgVOPw/nl8xo56edfSAzPvJgMGzCDIXljpIhw2yRRTbxeVh7vTzxOZcyFiKrlVnjdWGMTqsEZ37YhzIdE+WIeYbi8pgyg7YyOsr4iKMJbbSYMUpvjYI2kxktV2Zzr10uZ6L6n8kcsdaZB7/uJjjxEdOlKXOIK8NvkROTCxNNmZNpY3Q1l3X5adefPRaoW2WOPjDnpssyZpoRA9mEdYYhw8FBnS9JbdWUSXww3rheziSwRWZW4B19EgZl8L0DpgwfR2hjK4m0cfKD8dbXzZW+hcxOKQPHHxn+cAVDZjEBMiqXM7TMISmD2TRkyhwHGU42qW+RhTZfxGxi4dAy+GQR9DOYTVKGUYH9wxF/vH8I/aHMNpQBFykTVAX+hzZX9jISBrMp2JhRv7miJ0+6zrRu7SYM1pmAKjC9f+Af4s17QgZYyGySR2PI8Fpk9c8v0TI3LTInBh1kbOtZT+DgmzPu6kwck0nGjIMMfMtDIMe/55fwzXsXMhgyZMzoRDr1BA62yM4yO7pkbCpwkEHj//NLgEPLxLtk7G5tOAPuaP71yAEcESV64B03O2UO2PQz+KVF/jzcrG/+CLoLPGYv82C3KYMusaGYXaeHZ3+/8AOnsVGvNgLFGRBRh1lbZhPKyGyyn7XxQhXKH4iqnjt3bqNeCxRH6LYxI/uZFoykgZghZeDoGDnqZOQhcXA5w5eJ2sqYt3Z7NsViUsYxmzCtjmmw7dEVy0ic9R/U/KAooRz7mY6YiR0+7NDPWI/exFEm4x5HVzRc2cq0sqnlAjHjVgbruoaf2fNl8GzU1jd9nh+EsJXZAzKWmDngWgaDG3HUyCBOdVP3E2crGdzE3cMqQ8QMjcOWqdW7cBr+dYHCVua8lBnCkIGYCdvJ0I3qgICemyezvgk1ZqPTZlN9i0zHzG4ZMwgjK/DFvhN3CRkChyNT32g0arV2nHXf5gfhLHMFYqbpgjL2MROKRnUKR/OMgzLVWn2zUa9urtcJGRKHX2euYMT8qjMOMv0J4jNnokUmZWrr1WoDMqhehxKzQchwx3JBVOAOmcOOMtHIAG4rSJyQd5lqfb1RM2UApfajRsiw5wdXMjGUsZ8oyRcCrPPDfo8yGzA61ZsyYETIsHEEkU0eYkZomhccaOIxckgZvKilTKNWJWT4yxnh1ANbsynsIKNbV4X02xIwP6Cf+04PTMwyTMhwlzPCWeYKusAJH8DtLSGDOFEKR+sncSBKrKdapWXI+YHTz7TBhCGbQIaIGesRJE7IBU6jZrXZIO4mNo5wIwM2rWxyHzPWtyV484O+uW7FIWTYOGQFxm4m7L7O2H0gzxrLf6zX6qpk6C5QUDIIE3Mhw8OJamKAwGkgDiHDxiGmgxjKmNlE1RkSR2PMD4izwZahW2RBysBp5lLYrQwfZ8ANDi3D6wLtZPrOS5lWyIRNG5Ahs4k+rOEKcaqAgzLqcYSzzNWhWEedkZ9CMGVwuOLj1Bv4e4U49N0EMlhnIGZiIMOIGY9vS+wncfQfillwOaMJzVkmhn2elBnsjpmDKOPxuJk8GcsZ5pszLmXC5sFPOzky3ocrzYcXsmka2zrTkmlVYMUyeIQbHBE4TkhzuLWtMSOzSZGM9+GK8gteBmlAhhMzfBzijwQgg59CSJS2OgNPifBk2MMV8Ud8lsG5ScYLypw6y4gZDg7dIgcogzEDLq06w5bxc7gKtM5gwKi5m/jzAx+HX2ewAkPU+FyB+cNV0DJhCeMum2CKV44TovcPjEaHWWcQhpDZr+qZd8bmKrg6E5YyEofMJt2/tyX2OrfIgBMKWOZWuL3MHBhy7IF1/MxZsQ57c6W+n7kVMw9mEyHj42PdzM2Veplwu8wBMpv2kjg9M1xRdUayxKQL/KRl/MaJ9LOXM3yZXTJmuu6mU5SM75HD3VzxYwZlXMcMva3omeHKudPbcTWMVQZiBu4mImYCfKGYgcOUkZ/pmUVG2oALVGCctQkZRTgJQcwPRIssBo7p6rOpKdM2ToIMvqtCyCh627pQWphgD1dR3Y+7CauvGTQQM1Q2qX1bYqqSyaQFYzmDk6f6uwltzDrjLpuIKdCDjDFfMAqstR6+VqR01r6FM5OUOTXIk/E6P0xVht/MrTQBPiwxNlf4WpGiCgwybTAH6LtJFQ5mU85Ii8JqSojiimBvrsCPn00WGWmjSga7QDqbhjPJiXfvMjOiWBLsyVPH+YHb6aGM0phBHCpmkpHibGRsMp17BTKJk0LFcKXBH+HK3MZcgkN9CqH+VfSxjJE3llO5fL4yXyyNlvLlrLrNFU8G2zxTJk7KqMaJLL1cm1wyJicrS8VS4stUqXhyZv6kULa54suEf2eTchm6RRbfMnOmTPbb93JlKZ/Jr436OVzRFdiSTQwZLk4kWVhOFkvJyue1SnK5OJybEUvDr/wZrmiZ8xaZcKvO3CVkeA/02B2RKLx+ZXyeAZmyKBWXcrnMpK/LGTpmVNYZGkd3TKvJ5bnKWL4sVt4tGMkvmdGxtfRJf3BoGWSRMryY4b8tEfnJ3dm0PA0EcRzUi36hIOJgoKgXK4LiRfGiZ1kRFF1QRFbwBeIbskaNwfgWREmEnOItSjzk3EAOgZ7qtzCZWleDZt1OY6vL81KeQg8/Zv4z/+zuPFdeXH7Sknl9/8GFW2/uPHv6bvynJ99MNmf0PfCZEYqvgc4MDefIzrvP7S9PHt+/fOHu808fbt6/YbBzZfWtDpzdf5JNI5VNRDIr8g8HLu98eOfJs8vXPz+9/naVJ99+2PM8dEjb6RFiZkA49quP9y68f//mtT5mzM3VQYB94129MXNizkXpzCmaAq/SPzTt3qOmt3mu52F+58punndZGjKqZg9Qm8jm6sDp29eG2LkCwLcNYsaYzAaPstK0yP8EmTVtzvTeOzixeAKsdObwMv3MBk97RTjGZLYc/YnM/kutAhuQ+R/g/CKbtjVkzrVYVDYtQeYfgbMPDMkcHWGfp8gQq/YGzwlWcHTZ1JLZeq5L5tgGkGkXEOBozJVeZzCbsDQpBR4+m2C9c4Jx50VHZsc6dCYqovXNCVb+QTM5GWNm9DfJQOTHPt1c0bvAfdpO7+ioQ2ZYR1l5UhR8E1rknVp3oLD8hacQ4DIZi5Rvgn+woac2mcWMtZNOJmS144rpRpirI/0xgwqsr9q4Dh0kk0lZbU2YC9FkViTZes3VeFe/AquA0ZKBnRZ1+TLOoiLlgWSMJfgnWFeLbO/rfaZnQsY6tI8cNDMZT4FDlJQekuFVMYnW5R96yJjoDAYNMZ84hyoWNVgWQIpkZpKx0F9u54q47P5byecUleZrfz8ZC47QbmP5YcH9UFbtayTDXeYm0guW+TBq5Ng7f0cGdebiT53e/j5HiYt21NSJ48CashwWZCJPZFCzZP6JAOabMxQ0vbXpYiebenbiVnCPDxKWOlPh8QUZR8rACmSIUhMkae0MCcdgZlFXgTXZRIfDcyYlC38mg5GE7zEWz8AC2uYMPWbmjlLFi6Y2reaoaVQI6c2gQ0a0GgxlXNaeqKzJ1OF/AY5tG/Qz+3Vk6BPsg9h3wFI6o8hY4ERWJkOesDivAz54i2z3K/DISIG7yxwOYPuiapPw52RwcQhiGTiFK4XMa8qxQLrOEMkgnOWuqvlp3fxs65IvG53BVaa5aF/zoA6ZjAY2V3+qwHvMsol+jw94W8dDWabMc76RkY0Ec3yzZC7HHtnnA5kre6eOjGLTU5v021n2cvf4gpAxVgBw4A7wzJXZNzkSM8y9WCRAdJ7mZLZ3ybS16bgZGfpVtWiSzCLLzydRmEYNES+aNz6h0wLyGEthWedJInOxQ+ZkbzbBwd2wejgArQlP8RFFFIoMQwbdFU+FnJMBXlQRAY4Jmb0dMi0andcej8f2MBNkKlFC4Im8lKL6HjJQC7dEMugjwhLhUJ2nnkxXgTU6g3PIcRC58XhO/YK0fdAXuIIhksBjbchkcewX38hAVXpCeKVP3rkyV+A9zeolY6sP1UaOqX+YJliJsqIIsDDFDhrxhCMZXOBUpWQl4XCXEZmLi4BBML0xA3bn3/SuEg7AT30yum8eMpnnLFVvOZ6Y4e/KIZorPZnzneczfbu34y70Pxivs5S54rM8wGawcCVj3gQWn1e3uYbCHPukyNGT2fIDmQaNnkwXjtYcHFzCXKkSzf2ciZCr3qeA9pGpYCwj7D/oyHR9E2aTjgwRjvkqWD75RgYKgc2y70mBZEhw9P3MAguSeal0RkOmuxsKukPK9nJwapYCTCeATgLlx3FF4rGMePKt72nnCaUzLRb88RIdpREZBWeQCTK8mgC4bNaGDGvdJiQidxQZSuT0nCxqyaiS3fQzSOasGRmVVlo4y5qrKqzbwoRlKpNxxqlk9KfrFZnmG8mY6YzBDVDSBBnO28KEBSljwivjFZDZpSej8gnJHNaQ0SwMiyGGpATJvBucpB5jLA8GJnPxp6ptoMD9aXVoEHP1vRmexIwVQ86fUQqMpQmz6TiNjIJDMFfaxT1W+MNn054FGrLOdOkMNl6Hh8PqzDZFRvUzqyBDdZ76FdTB8Aq8ADMnc5JOpgtnTeM56WRUxBj0wJpl6Dyt3QQ4A5HZgjGDETNANnXMFVgWcedqeDJqJ+7UopVBQPuvntT0wEQ4BjdACYuuwEhGJdMIydBiRu8fLK1/IMKhkzmBZL4ydwarTgNRGF6484VkEIuDC6vQiGBc6dplEdwYFEojBqaNmImTi7GNsbElBWmrJXZjV5FCnkBBitTdfQunaXWuopmkJ9E7l4Zeuih8nPOf82dOpvtESl+VkhHOU+YfJP6r+mzakRHyu9OZKsmIFvnCKTjePwcZseqPfvHaAwkZQORAzVX1ZG6lMXNSZ+4AyQDMFQBOFWRELonaVCkZsQDOs9qqvSPD1y5iMrIJckK7MdT+i7mC6wxfJ2JGdHp/IHPIiHKLEqpLRAdgriqt2mmbJ8hkxEyt+BQuPibhhnXlzhNgrqohc0tYA3k21YqPKCuJw+l42il0npIe+NYeiiCTlU3Fp3CVZI1QSPRJuwxbLsxV9Y6S68yvtSlTZ4o/HMvjBaHOSqfj9izKZcvzmKvz/8Q3CS5yBT5gClcnkWquhsdxl4RHm3GutJJvzoixwCprUzEyReEoSzoJqB0GLjPmhE4bhl2SuZLBgffAv3V6EjKFB021jZ80kcHo2mbOMNiY1N1V8Y6lKDD/AIAj6/TkPbCcjByO1kAIJ6tQY9RnU2sVTEbbw+BMdrQcZEYOxD/AqzYHkz9mAIOm+rGBYv/NaGORvh2vnbnCyfjxlkAl5gqeTYUUGDi/bSfBXDdJG+tWk7T2ZLBrRZlwCs9Mwsmc/dHpFexnDo+ctjnpcjI285xV8wcZZ8XWUdk7V/CYuf9Tgev8L7fOANIqWjbazO0SQcYbrgO75J0ruM7cTu90FlNg+Px2kwar8CcZ53qDurgM/yDGAuExc1twKZRN8u/NhGMMY0GGWSE97m56EgMBmJkEKHBhdwB/xBH3Z8aeTMLIaLBisTY0+Afd2BK5BRgLhJK5CKhNYDjdTppNWjRUmqtZMybBCGsOYVMePnA4kCkRnk3A2gR/xBEvp/xztUl6R2wyYPqCTI90DRmK1D/IZyYvABzlbWjMwOEoR3syfdZR1+shYxuz1fBMhLCNS5iZBN6fgZMBdoE662m+pS59LVgY3txdzdvoyOsNbNDO1QVhrgr7pt9r061LADIAOLivoZDNqKMFE+zNe4yZaOQZ1FWrmJmU9zNnOBnR6MFiBh45eJwkupKSwTTWlKnVphMVODMp/EOxmLkNyKYK4Cgawv6OzAJFQSQhA5iZLKDAacw8AfczcP9g9NF0joNYfTZVdmRwq4ulcAr4B/mkdEW1Ce4f2m+QS0JennZkLMLmjRJnJiXnkF+FkKkejjae0R4ns7i+7QUjJ9bGk24uc3Utz+ZMrXZNOZ/tmwQVAJlKTi7tWZiTCcYG9mI0YF3m+BuklLRzxde17HM77/0aM08gXlus0pwnai0Zmbke1kk3WehJbxnEtmCgaIfOTJ7fVjPJ/ZmTZB5yBQaTKdlcaXrTCNYe7bccr2WwZez8wNGe+f7ctA+amZSfD3wfrjPVw0H9hTfqJ51F0HD98MeOXuOYrC3X9wcZaSUxV3IFrv/MJgAZKJxsc4WwGTikFVr02V6HRyzESG1YtHmoLc+clL59MmIqJQO35UPXaiduSIbpfziJ+XUQqU32Ru4fDsimUxMzueCg/pTuQTTomF/NCUKWowBmJrPICDQPwTpTvX+IIrx7QztbFW4jpIl8Kratl9sd1FMyl24AyFQPRyzPREh1R/zdZM4vxeDIdeb+yT5vfxfi/5PJdbjOzMEIxct0K6IBeKxIRoav06AzBeD0ueCo8XF618so+MyVlMzJfqa+64FPERmZubIcTd3E2/pN7ZxYxMykVGfuCfnlb34j0/nvZDLHApX11NB6XIUdB6OCS1Freat2+np4Gsnwb/5Li2zMud9s9GOiowNWTRoz4r4VJ3Pl35GpfXpVJHL+BEexAhoQ4uIDwODrebx2Pb2kPbDw2r+TOVcumQdPP3yGH8tkD8xRhNEhS6llkrkpQmanwBlkrl8uEczbDy+fv3gKaJEBS3YO+U8yIp2yydRQiUHz7fHjd485mv/5UzR5YqbOqfBXdjadu3y9PDJf7754/X57OMjTLx+f1v5H5GAk0RnhDaRkzqnXS4uaL49fPNiegfv0BT8L7ivgB0UqIyM0Zru+M3d+P41UURzXGBMTY4zxwcRH/SN2G7IjI7pL3WVEUxbkR3S1u7C/7e6KgCMLZZmWUpZSKKR0oS3tIpRNcUosYuBpG1IeeAZDCIEn+C88c2eGu2K218u5oEdTsY7Z8Mn3/Jozc243eJPrpWRANbRpRZqa0XbU/VihENWKGW1TUpO6hIAjlszROFNJInBzCc3QzaV4S8a1vAqW3FdDGa2gZzL5go7qH8Rrxk7ZUOkxNCPwRTVdSse0Zd1cpbfu2VTzcS1q7J/EuhWeDM1NJC0RdzIrPQYZIXCkYj4UKpobvXYKy56isVVmOa5peUznKd6bCJdyJpmj+2Ng6IU4e2bfWFofAjJRSOAb5EvY15k3q0D0Wle8N9G+iUMzh7NQ5dhwClomCfFlS5KkvSJEYPLlhrlbUdqJL4dw8wc8GZcVei1v6i5R6YncP0nWBkYzmlbYyKeNbZNbRCoxDzn1KgnLmpKI4QyazBsmGfr4DAcZ9PufZJF2tKgXoK6BI52KEqlxogYQPeaxyaTTKgIOKgK7CBZLNDxk8K84SrF8UodQ7NlM5smxGWqRSEaF5ew5i8wOOfkA01zhNUPStknmMgcZzHLOrYLxCRlK08gOwY1oFL6R9qLxZNwiAxvbNYCTlBBwUHGGCIYjzpR60JR/RfteMbOcJk5UVI190tEN3SYj6bAJN2cuMkXB4SfjtPISGPGmkjUw/GEgC+ZbfPw7b1WVJCYSh/c80XyBkLFM3fGYZEKoA0X4ydCcXc4gIzkUmcxCz5zIK4578Zhu/P7GikXNs29hIFrKk1WvsdgObnLFT6bSdCmWZi4o5A+hcFhP4XKaTpRBimHNA4WgaRB3IGORwOyJIcZ6/HHGDr/sOCP/fdzHUA70D8fuPCHOFElVbBU55iJpjZJBw2HnJmclbQ4YZI5saFcU5oOmdOjFTyYpqZCuzSKnQKq/aBHIoMZ6vN5ksHlJBGbsn1FOajmntBNLwrEZRqpSzYylx7T8PiGDg8NFhnbbHGSoclhwjtd5ShIIJ5c2MlbUPDSjqO9gyNDOk02m1o4zlXbShkqPzptYZCgdsXCohQqqXeSoGU9sb52SQT4zyVPpARqbjIuTDIHDPhaCrJjhp1MkNyik/VgUUnkmJOzJt39dzxA8JhnqTT0MMkfgnMj+GMms7yQ1uZ7xeOLwL+LgsMlYaRvizJL7KoMMFo7MD4cOYnLQcQqzc6XjjNOsZ8gH7Sj5ydBC518t55SOOaLi+P8w+2coGfjLJtPIQQYB54uyY6xLXi6eEUmGFYErwQw2NM4gyNASuewk+gf1FMk46ZNoYDzexFbOCXSep0jGbRV55TwRmG208/zvN5diNGPfJRdJhjZXZ0StSDltzVieREQjmAztPP+PcNiasSINImuzTBFz5t5pawb8yG6bEJphKge/P+b0yRAsprHJIODQ5grfeZ7CFlyIM5YJzE2ozpO/uRJfA7/xN82YEVhApcdurv4fcJjdASA5nDkhyAiFwzhW7pRyEyllrL85+iY8nDIGHJRy8JohucmONYI1g+88Uf0DngydUQKZkvUMe44uHo4DAQevmUqqmVLeJJNJsVgTNfMUv7fTedhnlzO9SZaO+7yg/LRruCQc/JkZ4is9Sy0mHCYZsOPA6YpEUkFEiYxorpA1MEBh18BA5rgPU/ZMBldSXmigvKU6zxpEWy6+Bu6krvRPMl0l3m/igyM7+gPPjNf6+pUSO70QYz3xcabTqvMIHg4yvHCGR2GbzLPw6khV6tfSbbkD0ZaL9SYwGoHnOMjwHH3w22hgSPatzQeAzDi787yAbsvxZIg3lVNvctKn65lk6DCUYSCWyJQsL6aeRYDMwd0x1vUKvvPEk6HljKWZZoZmuNeAgN0NRLJB71rkeWC3KhVei0yMPZENAE8UETNP8WTesDVj9tscZHjhyBMDo5GBsemF1XBXKutLZWfDi7A2xheeH/DhB8LiIzAhQ1zJ9CiOOMP9Gl+NsQzO4Q1sd6XG5fnt2dVEFr4KrKVSrBUpiLYclZvc1JlAOkCGVnpMMvxPmior01UmmcBYhwPIDHmfp7zYyRXAIWdmiJ83WViINzkZmsG+b6Qo2SFCZthhkBlXgqtTY4wmHvHMJKbSI2AIHI6sjYMjjyzaZAKja6tT89u7w1bVM1yDG+tROPgIfHh3xtIMRwRGwBnLegmZ5+Pzi97J1XDPbLZLdoytBRZ+Kzm5OsfuHygcrGZswYBb8WkG/6YaxBlQkDw5P9wTSIR3vSOrzw9GWMMZjtMasZqxFQPq4SKDh9ORnYFP2OwKZ6z81hPoWVtdGfM5JqaU0jNPjrYc2zchKj3ka3yySUaejfg6wkMzq9mZRHB3FfL7ky4FAcdqrlC5qffFAGxopk0EGa7OU54el32R6YnI+NSq72lganT1oMMxfjB1UIXtH+gl/GTeN8nYwwPBZKgxlTML21L6CZmu/tWst2Pt7szqE3oFGg5/nOmlZR6GDH516cTIjGKS6QFvCqaGgYy4sR4/mfcHTbnYM8o+ZpxBwWGuERw2ycjZFYdFRsFMriicMn7NUCxG39SHrWdw/YMs+7aDTwOzw4n+mlmDjDK9sFslQDmkuZI4ydCpNtEMeFM7hgwejpJNDSS8DkLmSWRtbb7DMUzp4DpPXs3Yz3civEkonLHFrAPIwLq8rkCXNzzdH04MyMJnnucYWRuY0BoYT0ZM/+DzkUnM9szTQNAxvz0SmQnPKsGuDo7Okz3zrLnAyk20nAEywmpgfHPlnTqIBCdXxhILY6mVmemeQGp0gjZewade1MxTuqBI/yrOgKE1Ix5OVccEnO000H/3IDURDEw9n5ctTa0EApHUS2Iz+1VGCeAoDgDI0gx1KOGawTdXVT09Sk+4f+2gajf8a9DM4fIC/Ph0enJy4vgzT0k6wyJTTsmYmnGLJoNvywcSkcX+5z32QCYYGDB++6qDhA8xEAZj9E3l5VQz/tqKhpZaNBnxyplQvJMrC2EzBg8l4J9PDxR5ZUHGtOWMqQrYoW4e1TbXXao4fzpkeMd6w9nJLPEmeXG7BmCNeB3exF3M5IoRgemdq4vdgz8KJCO+LVcshexuG6CMpZQzk/CBgMPstQmah72DvT8236o/jyKDh8NeINNveNWzlBfwRCYQz0yW7Ch77Sjzydzg4GBvW2NbRfvXYsmIX0DZEQ4CmfAw/JTq53jyTeLzpkPBgP3iJ2cLCiYjvi3/dV6xydxFPG3L0AzJTd0Gl96vfvaTd2//B2RKN1dViazD9xzIjDGWJjOUw+ybbhPBdENH2ets/H9ohgHnt9R4lUN2KIthHw8YOvNkR2B/eeUnj7PAxX+7spKQqTh5MlJaxcJ5tpYY6uk/CNAenFc5LG/yW4JZMt9M7nQ2nX+BzNkTISOpxX10czU8kohEEgPKsZd2MruDx4OGPay0yLjaq50uSuYssPn4c7Fk1P3l+Dp+r2tNx5ivw4EwqTSZPw0ucxfN10w/Ke90XQYy31IyhpWdFUpmX/NoUYIGAwdvNaW96ScjVxuCAYPj2d0uZ53LSckcmgGH9O142/Rk9jPaBrK5wpsilZpRApmliyAXE8zFiy6X+9YRMtQ+F7NsO+/ZPJPUMqqk66F06L+DI18oMfEHMo/M+5wEzFcPH7g6W13u746Qsa0MpIO3ZDQeUovxtF6M53JFCTEQRlrJNzIga9ueBGBuP250+a9ddl+ynyGnUKjhU9O6lkmqSR3oRD0x1fyOExAaDnszTx+JMUQw39x+1PuTq+/aA3eDfeIMgBAPR1LXo7ktsiXucDvIHmzaljAzT/Fk5gCLBebh476me865a+3Om9YlM0BBOBx9vaBu5KJJAsQms6NFM/mtkITY6yqazJIN5vYv3f7L91qcS61N7lbrkmlAIByOGgcqG1pMfZGMvrccN+CoiM5TMJluM8SAJy11Nt5r/sw9d+uqu9q65NezLDtmbpJC8WiakrE2Lxa1aEjSk2nEuRDiyLy2ZHnSoz5n2/XP6uqc/oofnc3WJb9TBALhhDJacVOLJikZ06Q8xONkLJor4pfe4sm83m160mP/g9ofzte1QmK6/r27xbpkFNL0CcBJL0MVHNOPkknntD1p0xONGfFZT6tIOHgy4Em/LHU23WuuvnXt/s12V9sPbvum3p1zJXAg2OjxzfX0YQSmksnoUj6X1/e0TGgrvryXVhH9A57MxUNPar1/88qVtsuXK9xXrUuufV4CBoKOulmAT5sMlcyOEW5CxsEiW+mMsUx6Py0JhcOx0fTN7m/Ak9pr75w3BHPlRsP3D3pvue3bEA01JUCg4Fi/cCEXU4GJ8ftLm4d7BPWMtn9GLazHAE4SMRBGkXl36SHkpO8/q241uNxoaPjswdz9w/bgWx+DBN6vjGC7nisQyVj9t5rXogXyA9kMjBjOoMj0dTvbWkAwhAtY64Ol1nb3jZc0TmLh0ACzYXzEQyasvKZtquZ/gDhtpfS0zt95ouLMu37313eqb4FgDC719fVXGufu/OS0J06DbAx4OGpRK5wxzg0hkknHPNqmiSEJycpaihuPxtd1xMyTn8x7vT9V1LUSLvXEGr52N7W471nXTPISKfuojBtOKAfKkAr5NIk8GU9unSiGRB7dusITjxP9IOBwetN77hbiSQaXS4bVNzf56zrtJ/VunuPCIssTBwNjH/PBASjpF29reZbTqp2s9u3aMF4wD+5RCwVhzZVc8p24t53N9wkXAGPatabu+51OOwQ/4SFzYSEcDoQjo0PD545dIW9kNA9k69AZGnnAVIC1Zdzsyke1+D6gwcJha+adB+evGI506dAarnZXtzvtnnKAh0xNamh+QQkuJiIjL2qNd+IC2do4ZiVpJyt7hb0WD4GMYhn4Gj25YpN5q6naBPMlMQPN9c7ae+7r1kV/8JEJDi18dLasZjcydg6RrdT0el5VN6lkiG9loKsqQM0TyuTS6LEeOwK/+mE1EQzBYqKpa+yr67Wr4Ftl3GTgh57VyPanyFyuLlvaMBN4EiLzllkzr3vW0TNPtmZeeeP8JROMxcZwp9s3/JcvWYHGeywy4a5AEF3omHfPQzEAJO3FPRBfgEzR+FiW0ANhNpkPmi0u1J1a/Hea3BXWVePHI1OVmhV1zwLqYDUf9WQKgIOQgbteEvqBUjaZ969bTCia+429Ff4266r7H+PI4OFs5UN6zhPd0yX42RMzyGRUIU/bvoxMMyHz7r1/kKmvfXTD7/ySv0H4IjE9UoIMIuZs5jwanMioJrWYSslg4ZTWzHvXj4ABq1iquNppu1Pi38fgsulwpAQZVOe5sQxwNlTIS8LWkZeVJvNOy3dHwdQ3tHVX9121BpXfOTiKYN/2pKOMkhEKJ7S1vAUzhuIWnEBz4mReAWs7QoZ0CA9vdrqvcMdgsKpUIvuspj/ST8iIhiOBX/1F3rk2tVFGcTyOWu/363it99t415nAToQ2dNuElG4zaVg3ycDmsrvZXdJMNtkkRNLaliEUKEOpxUFhnDpgHRA64zCtjLywioyv+s4ZXjjqd/ADeDa7myeJrBASMNQ/DEKbVvnxP+c55zwnBl6/CO7Et4wMyjOm3RTikicDjQKf/jWa0/elnQ0VoRn55fTZyZ8/+Rnlp9rC+en7z37/aFvIPC6WOwbE9gv9hZvKxXUzTVt3UUTtHxua/7Fv8DB8Xms46BkDW59nUAouIeOJJ1O9Ue2B/lHzOhpI7DVb0PwBO4SO+i2Bsz1k7ooFysGAyBn5u8LF/5X1THMBHzNPfbsfbUwoqns465Ex3apjQWA8PB9PxHMF08ya/10DV0Ysi2RbCZL6h7MumcdlDQyKJZrzMDnmY5tuGnmdpHHh3NKJ1cmBo5YjGDa40GTWVOd0/v05/qB7onkwiIxHIHptVCacmmlv3Ngw4sLQH1emz48t9a0ewpbnLreh36lnOOucTZBobg8gMIphGDbe1RP39EvHXKIeT1Pmf1Pb52P2tsk9i5fOfYBd6Ts4bDEj1S+c9aIJwokpASOGe7sO9PRE2STX5QvoA+F/n0ZgloNNiw0X7X1mIIPNnTioTq4wNfPUKZz1ydxjRWB4gcj0d7UAmQNEWjqTTeiPxte9yG2yjC0fUsiYh6cu/bBo2dtkbiguhOsOznrRBOF0a1EkReKnOltbmgHNMSlN9gQF/eFL6//8scMYkDk6+u3owNeTfUvzF7pXzaWqKzjrkoFwkgqRFO39qvPD1hZAc6AnFolkOr1+/fHjGwuN7unho01fzK6MzZ28PMGNrHn/Wx9wNkDmPjZ/JPES7v3uGIBpVdFcozP0mSzXqGvEvCFhkF3OLdonJi59fXBlYd5oaeC/h7NungE9nC9i5ITrVBeAyQvQNGc9GeFqkND/gH96wwnVcnDgxNzJyalV869VmwbB2XbPQA4WHVDEtPd/1dn5IZDR0DT3xORE5ICbLqD5cwNoUNI5emls1XwZyNRM2+0Z0LO0wKY/7lK4IDQtzcdEQox3egMFNOOV1LcY1jTxwTCQqaW21TOgRwQm+FXXh5pa4S1PpnlGsPMffgfjPV0r+8yVad9ec621jZ4B3Uuf6ezUoMC7bpoel0BSLf3tCI11zFwH2kYyj1BZwKFGkgpHO6E6JI8w2BtDaKivMXM9aJvIgGmiwEMn01rkGo6hmCeyRa7xT3ab60TbQuYevlMjA1Lso5umhWUocaw32YhETTeZ60VbTQZ0c6ol7xoUVAoa6KCOJRgH+WkOXINEzlrMdaOtJnPfQ8daddOgaFI6qFMRxoFfzYWcjUVamagjNuatJANJOKqYRoOCahpAcybMUFLPGZ9QjMa/Mls/MQWqPRmkG89oWBAY1TTXToVFim7udOONJWzYo0fq45zStGVk7rqlpRyN1nUDGtLh6b8ajPobSyQsjtVHUOk/odqSQfGURUlGxaKZpudaaxinqNhCLi00lsk6dPi/Ng52pGl24Ij+I6rRhLxUd3SVmKYFoek50GHnHWJrp40LlLPx40Oj/ymcPV9O/vLz6fmL3fplYK09A3q4GWGBN41Mc8tX6bA7bKUdVPBq1ic3IiE4B/87ON1nfzu9tDB39vR5tKRbazL3PddTIIPU2ZuQeJjfkJLDae9sccc8jWsIH/6v4LSd7Zv7ETPv/Xz+/H4zUi3JAJrcgRIoSk4+kyHp/GasR5IopyN5YMYWBTZriBnu+y/g7Du7MA5kzNi5n7+cLuntqyeDdM+Z5hLDtHZlwTCUvkZNe5xO2taci0epxrXhXP58208r7JcLeTLmc1/+eLr8ZqxaMkiPtDQXG+ZUSDEMWoylYN0mIPR3Zt0dyDelohe3GQ42PXlZJfPL6FmDbduqyYCe6mwugOnKcRKPuACUgPoPKXis1xUi/QZw+Cuzh8zbJkg0p3+zACGFzIJ5TVX8KkVr6ZH3DqhgOs+AYSiEBYhoZBw8JXg/ngm6Y7QRHM+VwX3m7dLB818ewYDM5Ownxss+VXsG0MR7gMuHumEQFVV5NIJV8iSy3/XaQhzVaCB6/vh2wTnyy5+HzJYfz06e/dfduSrJQBpmj7V8eCpNKBlGw4KkryERHTjFhGb6s0Gv1WkEJzB5vMaDYIPNpdEvL88Onf759LoTx+rIwEgi5gvLyDBFXLRwAlFEJix72HR/LmjLiH5jOEf31PIstww1rAWn7wt4yaOFto3k/g39f8gN0TxD8R4NTKBUiAzlEZNeThA4V38ujYuegBEcZ/hC7bpyS+RPbKH7H786Nv7t5xvp4BCc/Ucq9wzohscKfikJJS2YVDAenmYS8Tjn4SOpRMKeCUU8RnD83FCN4FhW59tGTpbbZu/5n7+crehfAC/9XBEZpAeoNQyDwChceJoWJNmeyfoiAT9PuCGsQizAMVBiqBZhZVm+MDJ0cm+pQTCsb+SXLw6bKxH2QaVkUEQhu5QlGXVDgBYESWIYWcQTKZag/XzE15vL2rwJ3m/kHHzkIFa1Z9quDA+MLK+OjmElcPaf2EQNBWTM+yokAxF1h0OhgQQWQpGUBwNYRJIkRZ6WCC4dlmhrSIET4gTDjExc6q4KjmWpYYK8MH/53KXlhqGmJuVXmqqjXe4ZmkAZ2NA29zpLTVMCRtLAEIzyfG86EgsF3VGRxlNZgJPmJEM44vhYFd/LPgs2OTD89fT0+PGzo3Nt5obFpaOW/VU0JJilqYQMzzxrWlc3PPCQv5SLBkbJMIzmGIEHyVar1Z6IhbJuTgbnKHB8nGR4XMnj1TRXh490L033DXx7bhr2s0+O7780eK7KW2WsQjKgXXcICIzmGD2S8mBEGrjQhF0R0IlEQzZ3B8OTGYATTMcYQ+cwi9XczDTMtp1IjJ4fx7Dpi+aGgfFZS7UJDJGRgMyG2NzoQY5BhlHB6IYBLBob3MqGM7ZgknTIHUGokF1JwtA50lI1cCyjTVdg6DAwDZ+Pn7/SpiTksQZL1WQi4ZtMG9Rdjz+UJ6OfSXokiaTMFwyDZMVxO5dMBzM4L4Vdud6gK4M7jOB4lgcPbx5OE3BoWDy85/PxqeN/LCx9fWj64lBbtWRY5ZlfG2bz1DMqGE9JJEk8fC1ZFemWUWMK4LBc0h1MEbwUVeC4M4QhHHp1torOEzPPLs5Pj0+MznUfHz85fXFudFvJQC6+51nB4VENo+VeEbh4aNFqIAgrrj3tTrG8xLlzuaA7aVwFUudP7q3itDp46Bsg883y8rhCpq0Pqy6aYkCmIt35+LMyLRRSjKSAkXCrsXAIq0SHL+tlBVqrAlnDgU7g/EAVYWVp2jM9PXJ0fOji3Ofzl4cPnbBg20gGjHP347eQcp6LTHtAYhkYNZJK6VgTMS+UNwLNehU4vrBhFejkjjZgmw+rfUNLc0MXfxi0Ty9PsEtDcBBvBxmku++/BYcM4wHHCGVccCng9ztIvKACnAgUOsEETRG+XH/W5o4aOsfBXdx854lZ9kxMDU+sDI5PTbatdk+Pj2KbIZOIPWzanG549P5bBBrOauV7LmKA23g4u3jGXoYGwXHFBIpIAZygO8wYNleRajpP7Mj+43Nf75lv+nV2cmplqntqf8VkuCgis4mwuv9ZjoXvuETtIYan5RkCx0lRJsvxAJxwKhhsF3kxqVSB8XY5YATHXs2dJ3Zw6sjyoV8Hvz107vjS3NK+SslEwwqZauA8+ULYXsaGIEiCIOwCRFWALkejVoEplztDesRYsL83GO8gnEZwrFV1nkewaXgm2qWByKWlwUrJxIBMldq1BhwClPEqhQ+bwJEQHDwPJ0XyGpx24xIZH6/GOdiJOXZweXBoFquQTDsHZKrX3U/ujmlwCOWdAIlhXBDkFHwuQcEjl7NRnANVYNJKM1G3WiJThp3n8IJl80f5womJy0N7KvVMJvG4qTa686UXOlgrcFC5IOGsAypnCj5RVVoFJuM2n50WEvH+XNaVshvCYeaqacv3TOyvlEwoUj0ZFFcP7k6yOFEm8isG2qxoqiiokLQqMM3xdCQNcIK+CG0ER1gC52yxEBmvHZGpiXMe3N1hx1Ui8JaXyDKMyCruMYLDARxfxEPnnWPzGvcP/OLUXvOW6oSe+9PWp0w11q5H7789gitoQESZStiUOscbjHOSWiIH0xztN+w8t/TOs0+vxH34gyZQ7eE8p4QVkCljs6Zz7OpHpX+IdzAwKO1V7jyjjN/4QnjLnDOod7de/NEaU0FV4HMJDU45HeW+LuCgZR0OUiSaCtqiJE8ms3CWu6Oy07DzPHrYvBUa0TN+CL+79lRQ/wBwFDBlcOwBcAOUgQQyDnKOAscVE2k8k1X6h5ghHOcK6jxrp2/1JZGM9U7TFgqqQBWOFlcqIHaVckB5nERR9Q/nuFztunPi7WSgxp2nsfbSetuUfHqXaYsFJbIaVighk3Y4rXB7PufA2cUwMlnkHbs2Rc6GCEqKBpVdgpTVMKy4mq4izzZqSnbcZtp6wVlegEOUh1aEUiWIKCPrVaA7m7Y6BC44kwu6vBGncedZs7Ca0//OkHFzUHs4YWseTgkZsreNoHTRIoHrvrFrg9J41sdCiezuV6/LjS+ET9QCDmbXR/Ze4knTtgmqwJgOR8dD5noyEZLX2XhohsALdOBDHg5MAGkh4lOqwFDCsNAharCK3O3XE3BIetG0nYL+4XaWUOmohxYei0WjUY4UKIfuHIa0IutohQ70D7JeBYYlv+GF8OdVwcGuFDrtpFjF0VRFFaglZNU+MMtS4BA0pYuXSFxFo7xrcJQJII+HoAq0pVEVWNNV5D6nnte90eQNpu0U6h/sqnM04Xk4CZJ25J2jrGPrcACLDscXdEUltUS2+WJGzvHLlzd552mZLFybeu33m7ZbqApk14DD4RBW2u6xQ4CzXGeTz8hQ6GRhUEqRmV6lRI6JhqvIm7oQnij8ddEMU0WaqRqOUgVatf4h/wFnOYATtkqUSsYZINSMg+gAnIxLufSUlVlg1pUhnIZ72oP7K5yN4oUiyReNVJlmqoezO1yoAvNw7FwY4NglZVHdEc7aC0cVSFu0gCrQBSc4LUdhaRLgsA6jzvP88Qrg7Fsp/EF7CH/B9N8Jjdg5tX8ocQ4JnuH7r60AmTI2SlaOABx3CAc4NoDjTtqN4HjmN3ohbFlEmSqTZB411YPufHL3LdZiOASboCGcPOyvOOo6UVDpznH3hlhBCsdzcJaHrB7DznMjF8JNiyhnid7E6p2mOhFUgVEFDqIjyrKodqA4oRxZEomacs05yhQ5mE4IMEVWLj1h3da/2VXkw5NFrVgoJb9kqiPtenR3FIVVydBC+c8N+IsnFnmpJXI6Z4vwnkRcWfGPRwz7B+6ocedpOSk3InFeLlw3lkFwOnCyHI415VTu9CIlY0BdKpxed1TgYcVfgWO4S+CPXJpYi45lCgyDJPmSzNum+pNSBbJEORtGkvEIXj7oQnBgipwNxmQaSmQFTszwRphfGVnobkJ4sKaxIaKEZMAXssbrzTI6HBiU2lHzgIQTZdlYk/IJyyn9Q0akify4Kx0TDa/LncTK4rmLg4OzA18PTxKBst/t8IbJ10x1K5gi327V4SAy+kmFo26zSGwCdpGzKdEjJntnoEROymCGCuXnIJbe3GWqZwGcW1nEBtkmL5mC5qHQOijS4SiLFgQtJpVZoKtddFYGJprOyME6jaXSKvDWSGk+1sCkPPmOvGTPS3cONFcwKMV5JhpUmquU1bFxMO3pFJl6xbQjBIVOQu2sik2T8Uq0QAQJIILj9n/gUXYJer0Rj8Aps0B06bmOhJAvI4bfMO0Y7YIpskgSpa6BL5WEwyjnuWQtk1YFZt0Jirf7AI7bywnrp5g45Jjoq6YdJXDO0+iYwgvKcMoGLkH8Y51UhdOezvoSNG0PZSGsfMb3eqAAmU57w1LorRtMO00A55bSkAKxKasgiXEAQUqSjMCAlIfkx10wARQost0GM4t4hhMda9mFT6Tj6Qwunnlj54HRqsDbrKLmGiQrECCUHR2aKAKjrxzA0mQKZoEyRSe8wWzQ5fa1szLt9Ps1KAGBiPriwIWlM1dfNO1Y5QelIoGX6xuBpoUwB1hUNHkuoigrIq2RDq8r6GV5SuZCtmw2aHPFfd5UMpnMhLxpN8gbI+lE6+vPm3a0dkEViJfDiSSAQJjFrZLDSQlEAUz+FY5pQbbHQj5XNpgheI8cafcBHgAEstnc6VQUF4RMV8879V3gbUwwKLXKZXDyUdThAQmMCkYEMDSvvZwkTXS43elsfy6eJD3K1Q3ORlg7Lks8TYa+6enZ6YYpzsi3siKJl4rIhgVBivgADGCRGUF5nU2HJifFJDJxty3bf+rUx702b6Y9mfL90N91redY89ir14NhipzzDziElYTSB95ppdBRDYMEX1ASHs744q5gNtc/893HMzMz37Re7Xt5h9S9lfQPD+6OyGIRGe1MCuEUhBXN61zQi6IoonhBktlM8Juulp6rC2Pdr9Z/p7S5Evnhp0WRUKgUzmrRniR5Wk461gLD85CTSbfygg7Xrn76xF/d151hkO58dPfTcDYpYPTcKwkQSWuCATK0xH33YUtPz7VPn7huDVN06bk7IjGkosKZVMIFgaEF0dvV2qwaZs+7putfUAU+LQmMUsUI/wqGzXW2Hrh27dOFsYOvXjdn9frjrttEngYw1NpgoP+UU8d0w3TvoIlDTZYmbyUoh0HupQXrcCekXsUwJ17+vxim+Nkhu62U07kGGCb2VWuLapjrr4bZeF9OeAKlkQRjwK5WMAzUMC+/e10VvZXG1Uv3P0fwwMajSD2rVcO8//zOnMPUNLCeBzzJiCgIYjjY1dxz9fV3Xvv/pZe/hxMw8qhoqmmrqamp8JCUhwCmuISIV5XNEAAAAABJRU5ErkJggg=="}},"time_used":115,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":115,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/exclusive-addons-for-elementor/assets/css/exad-styles.min.css?ver=6.4.1","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.801Z","timestamp":1785145403801,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/exclusive-addons-for-elementor/assets/css/exad-styles.min.css?ver=6.4.1 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:23 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-20663\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":132707,"size_decoded":15150,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"f4832bc1ca9f5462ef76f4c8efe87529","sha1":"4aeff14d10ee826b37936317838e1a3ea09cbc2f","sha256":"e8f3ba0b34b3ec08163ec91bb6bfb376d59608d36833c70e7d04cefa2ce748fa","sha512":"5d4230b3601ddb21c7e14bf080759f1ce18a21c759042af3ec2b21dde0bc6aca8b5afb41d1c91910b229dc4c48eee71935b0c21e05e6af56bffe0f986bb483c9","ssdeep":"3072:N18VS6XlgF5M9kWp32Z0xnB0dmTIGTZvH+0dO59WBXpE4kVh/GqiuZV7zpW:N18VS6XlgF5M9kWp32Z0xnB0dmTIGTZv","tlshash":"27d393132616212f486fe33da7c9657a223cf3c3f51308fe6646490ec7dbb8911a598b","first_seen":"2026-07-27T07:14:06.82826Z","last_seen":"2026-07-27T14:04:41.067443Z","times_seen":5,"resource_available":false,"data":"LmV4Y2x1c2l2ZS1hZGRvbnMtZWxlbWVudG9yey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9LmV4Y2x1c2l2ZS1hZGRvbnMtZWxlbWVudG9yIGgxOm5vdCguc2l0ZS10aXRsZSk6YmVmb3JlLC5leGNsdXNpdmUtYWRkb25zLWVsZW1lbnRvciBoMjpiZWZvcmV7Y29udGVudDpub25lO2JhY2tncm91bmQ6bm9uZTtoZWlnaHQ6YXV0bzttYXJnaW46MH0uZWxlbWVudG9yLXdpZGdldC1leGFkLWltYWdlLWhvdmVyLWVmZmVjdCAuZWxlbWVudG9yLXdpZGdldC1jb250YWluZXJ7bWluLWhlaWdodDoxcHh9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tdGl0bGV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbn0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi10aXRsZSAuZXhhZC1hY2NvcmRpb24taGVhZGluZ3t3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxNXB4fS5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24taGVhZGluZ3tmb250LXdlaWdodDo2MDB9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tdGl0bGU6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tdGl0bGUgLmV4YWQtYWN0aXZlLWluYWN0aXZlLWljb257cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6MTVweH0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi10aXRsZSBzcGFuLmV4YWQtdGFiLXRpdGxlLWljb257cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tdGl0bGUgLmV4YWQtYWN0aXZlLWljb24gaSwuZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi10aXRsZSAuZXhhZC1pbmFjdGl2ZS1pY29uIGksLmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tdGl0bGUgc3Bhbi5leGFkLXRhYi10aXRsZS1pY29uIGl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2ZvbnQtc2l6ZToyMHB4fS5leGFkLWFjY29yZGlvbi1pdGVtcyAuZXhhZC1hY2NvcmRpb24tc2luZ2xlLWl0ZW0gLmV4YWQtYWNjb3JkaW9uLXRpdGxlIC5leGFkLWFjdGl2ZS1pY29uLC5leGFkLWFjY29yZGlvbi1pdGVtcyAuZXhhZC1hY2NvcmRpb24tc2luZ2xlLWl0ZW0gLmV4YWQtYWNjb3JkaW9uLXRpdGxlLmFjdGl2ZSAuZXhhZC1pbmFjdGl2ZS1pY29ue2Rpc3BsYXk6bm9uZX0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi10aXRsZS5hY3RpdmUgLmV4YWQtYWN0aXZlLWljb257ZGlzcGxheTpibG9ja30uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi1jb250ZW50e2Rpc3BsYXk6bm9uZX0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi10aXRsZSAuZXhhZC1hY3RpdmUtaW5hY3RpdmUtaWNvbnt3aWR0aDo3MHB4O21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tY29udGVudCAuZXhhZC1hY2NvcmRpb24tY29udGVudC13cmFwcGVye2Rpc3BsYXk6ZmxleH0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi1jb250ZW50IC5leGFkLWFjY29yZGlvbi1jb250ZW50LXdyYXBwZXIuaGFzLWltYWdlLXllcyAuZXhhZC1hY2NvcmRpb24tdGV4dHt3aWR0aDo2MCV9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tY29udGVudCAuZXhhZC1hY2NvcmRpb24tY29udGVudC13cmFwcGVyLmhhcy1pbWFnZS15ZXMgLmV4YWQtYWNjb3JkaW9uLWltYWdle3dpZHRoOjQwJX0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi1jb250ZW50IC5leGFkLWFjY29yZGlvbi1jb250ZW50LXdyYXBwZXIuaGFzLWltYWdlLXllcy5pbWFnZS1wb3NpdGlvbi1sZWZ0IC5leGFkLWFjY29yZGlvbi10ZXh0e29yZGVyOjJ9LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tY29udGVudCAuZXhhZC1hY2NvcmRpb24tY29udGVudC13cmFwcGVyLmhhcy1pbWFnZS15ZXMuaW1hZ2UtcG9zaXRpb24tbGVmdCAuZXhhZC1hY2NvcmRpb24taW1hZ2V7b3JkZXI6MX0uZXhhZC1hY2NvcmRpb24taXRlbXMgLmV4YWQtYWNjb3JkaW9uLXNpbmdsZS1pdGVtIC5leGFkLWFjY29yZGlvbi1jb250ZW50IC5leGFkLWFjY29yZGlvbi1jb250ZW50LXdyYXBwZXIgLmV4YWQtYWNjb3JkaW9uLWJ1dHRvbiBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpey5leGFkLWFjY29yZGlvbi1pdGVtcyAuZXhhZC1hY2NvcmRpb24tc2luZ2xlLWl0ZW0gLmV4YWQtYWNjb3JkaW9uLWNvbnRlbnQgLmV4YWQtYWNjb3JkaW9uLWNvbnRlbnQtd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmV4YWQtYWNjb3JkaW9uLWl0ZW1zIC5leGFkLWFjY29yZGlvbi1zaW5nbGUtaXRlbSAuZXhhZC1hY2NvcmRpb24tY29udGVudCAuZXhhZC1hY2NvcmRpb24tY29udGVudC13cmFwcGVyLmhhcy1pbWFnZS15ZXMgLmV4YWQtYWNjb3JkaW9uLWltYWdlLC5leGFkLWFjY29yZGlvbi1pdGVtcyAuZXhhZC1hY2NvcmRpb24tc2luZ2xlLWl0ZW0gLmV4YWQtYWNjb3JkaW9uLWNvbnRlbnQgLmV4YWQtYWNjb3JkaW9uLWNvbnRlbnQtd3JhcHBlci5oYXMtaW1hZ2UteWVzIC5leGFkLWFjY29yZGlvbi10ZXh0e3dpZHRoOjEwMCV9fS5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjQwcHg7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtYWxlcnQgLmV4YWQtYWxlcnQtZWxlbWVudDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MjBweH0uZXhhZC1hbGVydCAuZXhhZC1hbGVydC1lbGVtZW50IC5leGFkLWFsZXJ0LWVsZW1lbnQtaWNvbnt3aWR0aDo1MHB4O3RleHQtYWxpZ246bGVmdH0uZXhhZC1hbGVydCAuZXhhZC1hbGVydC1lbGVtZW50IC5leGFkLWFsZXJ0LWVsZW1lbnQtaWNvbiBzcGFue2ZvbnQtc2l6ZToyNHB4fS5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnQgLmV4YWQtYWxlcnQtZWxlbWVudC1jb250ZW50e3dpZHRoOmNhbGMoIDEwMCUgLSA1MHB4ICk7dGV4dC1hbGlnbjpsZWZ0fS5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnQgLmV4YWQtYWxlcnQtZWxlbWVudC1jb250ZW50IGg1e21hcmdpbjowIDAgMTBweDtmb250LXNpemU6MjBweH0uZXhhZC1hbGVydCAuZXhhZC1hbGVydC1lbGVtZW50IC5leGFkLWFsZXJ0LWVsZW1lbnQtY29udGVudCBwe21hcmdpbjowO2ZvbnQtc2l6ZToxNnB4fS5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnQgLmV4YWQtYWxlcnQtZWxlbWVudC1kaXNtaXNzLWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtsaW5lLWhlaWdodDowfS5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnQgLmV4YWQtYWxlcnQtZWxlbWVudC1kaXNtaXNzLWljb24gc3Zne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Y3Vyc29yOnBvaW50ZXJ9LmV4YWQtYWxlcnQgLmV4YWQtYWxlcnQtZWxlbWVudCAuZXhhZC1hbGVydC1lbGVtZW50LWRpc21pc3MtaWNvbiBzdmcgcGF0aHtmaWxsOiNBMUE1QjV9LmV4YWQtYWxlcnQtZWxlbWVudC1kaXNtaXNzLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1hbGVydC1lbGVtZW50LWRpc21pc3MtYnV0dG9uIC5leGFkLWFsZXJ0LWVsZW1lbnQtZGlzbWlzcy1jYW5jZWwsLmV4YWQtYWxlcnQtZWxlbWVudC1kaXNtaXNzLWJ1dHRvbiAuZXhhZC1hbGVydC1lbGVtZW50LWRpc21pc3MtZG9uZXt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Ym9yZGVyLXJhZGl1czo1cHg7bWFyZ2luLXJpZ2h0OjEwcHg7Zm9udC1zaXplOjE1cHh9LmV4YWQtYWxlcnQtZWxlbWVudC1kaXNtaXNzLWJ1dHRvbiBidXR0b257Ym9yZGVyOm5vbmV9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7LmV4YWQtYWxlcnQgLmV4YWQtYWxlcnQtZWxlbWVudHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Ym9keSAuZXhhZC1hbGVydCAuZXhhZC1hbGVydC1lbGVtZW50IC5leGFkLWFsZXJ0LWVsZW1lbnQtY29udGVudCxib2R5IC5leGFkLWFsZXJ0IC5leGFkLWFsZXJ0LWVsZW1lbnQgLmV4YWQtYWxlcnQtZWxlbWVudC1pY29ue3dpZHRoOjEwMCUgIWltcG9ydGFudH19Lm1vcnBoZXh0ID4gLmFuaW1hdGVke2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5leGFkLWFuaW1hdGVkLXRleHQtYWxpZ24tbGVmdHt0ZXh0LWFsaWduOmxlZnR9LmV4YWQtYW5pbWF0ZWQtdGV4dC1hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtYW5pbWF0ZWQtdGV4dC1hbGlnbi1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5leGFkLXR5cGVkLXN0cmluZ3N7bWFyZ2luOjB9LmV4YWQtYW5pbWF0ZWQtdGV4dC1hbmltYXRlZC1oZWFkaW5nLC5leGFkLWFuaW1hdGVkLXRleHQtcG9zdC1oZWFkaW5nLC5leGFkLWFuaW1hdGVkLXRleHQtcHJlLWhlYWRpbmd7Zm9udC1zaXplOjMwcHg7Zm9udC13ZWlnaHQ6NjAwfS5leGFkLWJ1dHRvbi13cmFwcGVyIC5leGFkLWJ1dHRvbi1hY3Rpb257dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO292ZXJmbG93OmhpZGRlbn0uZXhhZC1idXR0b24td3JhcHBlcnttYXJnaW46MCBhdXRvO2Rpc3BsYXk6ZmxleH0uZXhhZC1idXR0b24td3JhcHBlci5leGFkLWJ1dHRvbi1maXhlZC1oZWlnaHQteWVzIC5leGFkLWJ1dHRvbi1hY3Rpb257cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZXhhZC1idXR0b24tZml4ZWQtaGVpZ2h0LXllcyAuZXhhZC1idXR0b24tYWN0aW9uIHNwYW57cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3otaW5kZXg6MX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMSAuZXhhZC1idXR0b24tYWN0aW9uIGl7bWFyZ2luLXJpZ2h0OjVweH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMSAuZXhhZC1idXR0b24tYWN0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztoZWlnaHQ6MTAwJTt3aWR0aDowO2JhY2tncm91bmQ6I2ZmZjt0b3A6MDtsZWZ0OjA7ei1pbmRleDotMTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcjo6YmVmb3Jle3dpZHRoOjEwMCV9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTIgLmV4YWQtYnV0dG9uLWFjdGlvbjphZnRlciwuZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMiAuZXhhZC1idXR0b24tYWN0aW9uOmJlZm9yZXtjb250ZW50OicnO2hlaWdodDo1MCU7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOjAuM3MgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7ei1pbmRleDotMX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMiAuZXhhZC1idXR0b24tYWN0aW9uOmJlZm9yZXt0b3A6MDtsZWZ0OjA7cmlnaHQ6YXV0b30uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMiAuZXhhZC1idXR0b24tYWN0aW9uOmFmdGVye2JvdHRvbTowO3JpZ2h0OjA7bGVmdDphdXRvfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0yIC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXJ7Y29sb3I6I2ZmZjstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTIgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3ZlcjphZnRlciwuZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMiAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVyOmJlZm9yZXt3aWR0aDoxMDAlfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0zIC5leGFkLWJ1dHRvbi1hY3Rpb24gaXttYXJnaW4tcmlnaHQ6MTBweH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMyAuZXhhZC1idXR0b24tYWN0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4Oi0xOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcn0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMyAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVye2NvbG9yOiMwMDAwMDB9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTMgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTQgLmV4YWQtYnV0dG9uLWFjdGlvbnt0cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2V9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTQgLmV4YWQtYnV0dG9uLWFjdGlvbiBpe21hcmdpbi1yaWdodDoxMHB4fS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC00IC5leGFkLWJ1dHRvbi1hY3Rpb246OmFmdGVyLC5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC00IC5leGFkLWJ1dHRvbi1hY3Rpb246OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6LTE7dHJhbnNpdGlvbjphbGwgMC4zczstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLTEwMCUpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLjc1LCAwLCAwLjEyNSwgMSl9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTQgLmV4YWQtYnV0dG9uLWFjdGlvbjo6YmVmb3Jle2JhY2tncm91bmQ6I2M0YzRjNH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNCAuZXhhZC1idXR0b24tYWN0aW9uOjphZnRlcnt0cmFuc2l0aW9uLWRlbGF5OjAuMnN9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTQgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3ZlcntsZXR0ZXItc3BhY2luZzozcHh9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTQgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC00IC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXI6OmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC01IC5leGFkLWJ1dHRvbi1hY3Rpb24gaXttYXJnaW4tcmlnaHQ6MTBweH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNSAuZXhhZC1idXR0b24tYWN0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJzt0b3A6NTAlO2JvdHRvbTo1MCU7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC01IC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXJ7Y29sb3I6IzAwMDAwMH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNSAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVyOjpiZWZvcmV7dG9wOjA7Ym90dG9tOjA7b3BhY2l0eToxfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC02IC5leGFkLWJ1dHRvbi1hY3Rpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2JvcmRlcjoxcHggc29saWQgIzg4NjhmZX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNiAuZXhhZC1idXR0b24tYWN0aW9uIGl7bWFyZ2luLXJpZ2h0OjEwcHh9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTYgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcnstd2Via2l0LWFuaW1hdGlvbjpwdWxzZSAwLjVzIGN1YmljLWJlemllcigwLjY2LCAwLCAwLCAxKTthbmltYXRpb246cHVsc2UgMC41cyBjdWJpYy1iZXppZXIoMC42NiwgMCwgMCwgMSl9QGtleWZyYW1lcyBwdWxzZXswJXtib3gtc2hhZG93OjAgMCAwIDAgI0E5RkJEN301MCV7Ym94LXNoYWRvdzowIDAgMCAyMHB4ICNBOUZCRDd9MTAwJXtib3gtc2hhZG93OjAgMCAwIDAgI0E5RkJEN319LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTcgLmV4YWQtYnV0dG9uLWFjdGlvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjA7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ei1pbmRleDotMX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNyAuZXhhZC1idXR0b24tYWN0aW9uIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCl9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTcgLmV4YWQtYnV0dG9uLWFjdGlvbiBzcGFuIGl7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDRlbSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCA0ZW0pO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtNyAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVye2NvbG9yOiNmZmZ9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTcgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTcgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3ZlciBzcGFuIGl7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCl9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTggLmV4YWQtYnV0dG9uLWFjdGlvbiBzcGFuLmVmZmVjdC04LXBvc2l0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6MDt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggMC4zcyBlYXNlLWluLW91dCxoZWlnaHQgMC4zcyBlYXNlLWluLW91dDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt6LWluZGV4Oi0xfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC04IC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXJ7Y29sb3I6I2ZmZn0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtOCAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVyIHNwYW57aGVpZ2h0OjM1MCU7d2lkdGg6MzUwJX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtOSAuZXhhZC1idXR0b24tYWN0aW9ue3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtib3JkZXI6MXB4IHNvbGlkICM4ODY4ZmV9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTkgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3ZlcntsZXR0ZXItc3BhY2luZzo1cHh9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEwIC5leGFkLWJ1dHRvbi1hY3Rpb257dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0xMCAuZXhhZC1idXR0b24tYWN0aW9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztsZWZ0OjUwJTtyaWdodDo1MCU7dG9wOjA7Ym90dG9tOjA7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0xMCAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVye2NvbG9yOiNmZmZ9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEwIC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXI6OmJlZm9yZXtsZWZ0OjA7cmlnaHQ6MDtvcGFjaXR5OjF9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTExIC5leGFkLWJ1dHRvbi1hY3Rpb257cGFkZGluZzoyMHB4IDA7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0xMSAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVyey13ZWJraXQtYW5pbWF0aW9uOmFuaW0gMC4zcyBmb3J3YXJkczthbmltYXRpb246YW5pbSAwLjNzIGZvcndhcmRzfUBrZXlmcmFtZXMgYW5pbXs2MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgwLjgsIDAuOCwgMSk7dHJhbnNmb3JtOnNjYWxlM2QoMC44LCAwLjgsIDEpfTg1JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMSwgMS4xLCAxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsIDEuMSwgMSl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsIDEsIDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEsIDEsIDEpfX0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMTIgLmV4YWQtYnV0dG9uLWFjdGlvbntwYWRkaW5nOjIwcHggMDtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO2JvcmRlci1yYWRpdXM6MH0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMTIgLmV4YWQtYnV0dG9uLWFjdGlvbjo6YWZ0ZXIsLmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEyIC5leGFkLWJ1dHRvbi1hY3Rpb246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO2hlaWdodDoycHg7d2lkdGg6MDt0cmFuc2l0aW9uOmFsbCAwLjRzIGVhc2V9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEyIC5leGFkLWJ1dHRvbi1hY3Rpb246OmJlZm9yZXt0b3A6MDtsZWZ0OjB9LmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEyIC5leGFkLWJ1dHRvbi1hY3Rpb246OmFmdGVye2JvdHRvbTowO3JpZ2h0OjA7dG9wOmluaGVyaXQ7bGVmdDppbmhlcml0fS5leGFkLWJ1dHRvbi13cmFwcGVyLmVmZmVjdC0xMiAuZXhhZC1idXR0b24tYWN0aW9uOmhvdmVye2JhY2tncm91bmQ6I2ZmZn0uZXhhZC1idXR0b24td3JhcHBlci5lZmZlY3QtMTIgLmV4YWQtYnV0dG9uLWFjdGlvbjpob3Zlcjo6YWZ0ZXIsLmV4YWQtYnV0dG9uLXdyYXBwZXIuZWZmZWN0LTEyIC5leGFkLWJ1dHRvbi1hY3Rpb246aG92ZXI6OmJlZm9yZXt3aWR0aDoxMDAlO3RyYW5zaXRpb246YWxsIDAuN3MgZWFzZX1oMS5leGFkLWNhbGwtdG8tYWN0aW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjIwcHg7Zm9udC1zaXplOjQwcHh9dWwuZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25ze21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucyBsaSwuZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zIGxpIGF7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtY2FsbC10by1hY3Rpb24uc2tpbi12ZXJ0aWNhbCBwLmV4YWQtY2FsbC10by1hY3Rpb24tc3VidGl0bGV7bWFyZ2luLWJvdHRvbTo1MHB4O2ZvbnQtc2l6ZToxNnB4fS5leGFkLWNhbGwtdG8tYWN0aW9uLnNraW4taG9yaXpvbnRhbCAuZXhhZC1jYWxsLXRvLWFjdGlvbi1jb250ZW50e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtY2FsbC10by1hY3Rpb24uc2tpbi1ob3Jpem9udGFsIC5leGFkLWNhbGwtdG8tYWN0aW9uLWNvbnRlbnQgLmV4YWQtY2FsbC10by1hY3Rpb24taGVhZGVye3dpZHRoOjcwJX0uZXhhZC1jYWxsLXRvLWFjdGlvbi5za2luLWhvcml6b250YWwgLmV4YWQtY2FsbC10by1hY3Rpb24tY29udGVudCAuZXhhZC1jYWxsLXRvLWFjdGlvbi1mb290ZXJ7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXg6MTt0ZXh0LWFsaWduOnJpZ2h0fS5leGFkLWNhbGwtdG8tYWN0aW9uLWljb24gaXtmb250LXNpemU6NDBweDtkaXNwbGF5OmlubGluZS1ibG9ja31AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5M3B4KXsuZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zIGxpe2Rpc3BsYXk6ZmxleH1hLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bnttYXJnaW4tdG9wOjIwcHh9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpey5leGFkLWNhbGwtdG8tYWN0aW9uLnNraW4taG9yaXpvbnRhbCAuZXhhZC1jYWxsLXRvLWFjdGlvbi1jb250ZW50e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5leGFkLWNhbGwtdG8tYWN0aW9uLnNraW4taG9yaXpvbnRhbCAuZXhhZC1jYWxsLXRvLWFjdGlvbi1jb250ZW50IC5leGFkLWNhbGwtdG8tYWN0aW9uLWhlYWRlcnt3aWR0aDoxMDAlfX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1wcmltYXJ5LWJ0biwuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRue3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjF9LmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG4gc3BhbiwuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuIHNwYW57ZGlzcGxheTpibG9ja30uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0xIC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztoZWlnaHQ6MTAwJTt3aWR0aDowO3RvcDowO2xlZnQ6MDt6LWluZGV4Oi0xO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0xIC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0yIC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmFmdGVyLC5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTIgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46YmVmb3Jle2NvbnRlbnQ6Jyc7aGVpZ2h0OjUwJTt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zaXRpb246MC4zcyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTt6LWluZGV4Oi0xfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTIgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDphdXRvfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTIgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46YWZ0ZXJ7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OmF1dG99LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMiAuZXhhZC1jYWxsLXRvLWFjdGlvbi1wcmltYXJ5LWJ0bjpob3ZlcjphZnRlciwuZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0yIC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmhvdmVyOmJlZm9yZXt3aWR0aDoxMDAlfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTMgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowO3otaW5kZXg6LTE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTMgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46aG92ZXI6OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTQgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDowO3otaW5kZXg6LTE7dHJhbnNpdGlvbjphbGwgMC4zc30uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC00IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmhvdmVyOjpiZWZvcmV7aGVpZ2h0OjEwMCV9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtNSAuZXhhZC1jYWxsLXRvLWFjdGlvbi1wcmltYXJ5LWJ0bjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjUwJTtib3R0b206NTAlO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6LTE7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC01IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmhvdmVyOjpiZWZvcmV7dG9wOjA7Ym90dG9tOjA7b3BhY2l0eToxfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTYgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO3RvcDowO2xlZnQ6MDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7aGVpZ2h0OjA7d2lkdGg6MTAwJTt6LWluZGV4Oi0xfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTYgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46aG92ZXI6OmJlZm9yZXtoZWlnaHQ6MTAwJX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC03IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRue3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC03IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOmhvdmVye2xldHRlci1zcGFjaW5nOjVweH0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC04IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRue3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC04IC5leGFkLWNhbGwtdG8tYWN0aW9uLXByaW1hcnktYnRuOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztsZWZ0OjUwJTtyaWdodDo1MCU7dG9wOjA7Ym90dG9tOjA7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTggLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG46aG92ZXI6OmJlZm9yZXtsZWZ0OjA7cmlnaHQ6MDtvcGFjaXR5OjF9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtOSAuZXhhZC1jYWxsLXRvLWFjdGlvbi1wcmltYXJ5LWJ0bjpob3Zlcnstd2Via2l0LWFuaW1hdGlvbjphbmltIDAuM3MgZm9yd2FyZHM7YW5pbWF0aW9uOmFuaW0gMC4zcyBmb3J3YXJkc31Aa2V5ZnJhbWVzIGFuaW17NjAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMC44LCAwLjgsIDEpO3RyYW5zZm9ybTpzY2FsZTNkKDAuOCwgMC44LCAxKX04NSV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsIDEuMSwgMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLCAxLjEsIDEpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLCAxLCAxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLCAxLCAxKX19LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMTAgLmV4YWQtY2FsbC10by1hY3Rpb24tcHJpbWFyeS1idG57dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTEgLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7aGVpZ2h0OjEwMCU7d2lkdGg6MDt0b3A6MDtsZWZ0OjA7ei1pbmRleDotMTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMSAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmhvdmVyOjpiZWZvcmV7d2lkdGg6MTAwJX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0yIC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46YWZ0ZXIsLmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMiAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmJlZm9yZXtjb250ZW50OicnO2hlaWdodDo1MCU7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2l0aW9uOjAuM3MgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7ei1pbmRleDotMX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0yIC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46YmVmb3Jle3RvcDowO2xlZnQ6MDtyaWdodDphdXRvfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTIgLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bjphZnRlcntib3R0b206MDtyaWdodDowO2xlZnQ6YXV0b30uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC0yIC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46aG92ZXI6YWZ0ZXIsLmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMiAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmhvdmVyOmJlZm9yZXt3aWR0aDoxMDAlfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTMgLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt0b3A6MDtsZWZ0OjA7ei1pbmRleDotMTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXJ9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtMyAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmhvdmVyOjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC00IC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDowO3otaW5kZXg6LTE7dHJhbnNpdGlvbjphbGwgMC4zc30uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC00IC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46aG92ZXI6OmJlZm9yZXtoZWlnaHQ6MTAwJX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC01IC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO3RvcDo1MCU7Ym90dG9tOjUwJTtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4Oi0xO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtNSAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmhvdmVyOjpiZWZvcmV7dG9wOjA7Ym90dG9tOjA7b3BhY2l0eToxfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTYgLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjA7bGVmdDowO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtoZWlnaHQ6MDt3aWR0aDoxMDAlO3otaW5kZXg6LTF9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtNiAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOmhvdmVyOjpiZWZvcmV7aGVpZ2h0OjEwMCV9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtNyAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRue3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC03IC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46aG92ZXJ7bGV0dGVyLXNwYWNpbmc6NXB4fS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTggLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bnt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtY2FsbC10by1hY3Rpb24tYnV0dG9ucy5lZmZlY3QtOCAuZXhhZC1jYWxsLXRvLWFjdGlvbi1zZWNvbmRhcnktYnRuOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztsZWZ0OjUwJTtyaWdodDo1MCU7dG9wOjA7Ym90dG9tOjA7ei1pbmRleDotMTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTggLmV4YWQtY2FsbC10by1hY3Rpb24tc2Vjb25kYXJ5LWJ0bjpob3Zlcjo6YmVmb3Jle2xlZnQ6MDtyaWdodDowO29wYWNpdHk6MX0uZXhhZC1jYWxsLXRvLWFjdGlvbi1idXR0b25zLmVmZmVjdC05IC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG46aG92ZXJ7LXdlYmtpdC1hbmltYXRpb246YW5pbSAwLjNzIGZvcndhcmRzO2FuaW1hdGlvbjphbmltIDAuM3MgZm9yd2FyZHN9QGtleWZyYW1lcyBhbmltezYwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDAuOCwgMC44LCAxKTt0cmFuc2Zvcm06c2NhbGUzZCgwLjgsIDAuOCwgMSl9ODUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLCAxLjEsIDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMSwgMS4xLCAxKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMSwgMSwgMSk7dHJhbnNmb3JtOnNjYWxlM2QoMSwgMSwgMSl9fS5leGFkLWNhbGwtdG8tYWN0aW9uLWJ1dHRvbnMuZWZmZWN0LTEwIC5leGFkLWNhbGwtdG8tYWN0aW9uLXNlY29uZGFyeS1idG57dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWNhcmQtZGVzY3JpcHRpb257bWFyZ2luOjAgYXV0b30uZXhhZC1jYXJkLXRhZ3ttYXJnaW46MH0uZXhhZC1jYXJkLmRlZmF1bHR7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtY2FyZC5kZWZhdWx0IC5leGFkLWNhcmQtdGh1bWIgaW1ne2Rpc3BsYXk6YmxvY2t9LmV4YWQtY2FyZC5kZWZhdWx0IC5leGFkLWNhcmQtYm9keSAuZXhhZC1jYXJkLXRpdGxlLC5leGFkLWNhcmQudGV4dF9vbl9pbWFnZSAuZXhhZC1jYXJkLWJvZHkgLmV4YWQtY2FyZC10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmFsbCAwLjRzIGVhc2U7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6Ym9sZH0uZXhhZC1jYXJkLmRlZmF1bHQgLmV4YWQtY2FyZC1ib2R5IC5leGFkLWNhcmQtdGl0bGU6OmJlZm9yZSwuZXhhZC1jYXJkLnRleHRfb25faW1hZ2UgLmV4YWQtY2FyZC1ib2R5IC5leGFkLWNhcmQtdGl0bGU6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO2hlaWdodDozcHg7d2lkdGg6MjVweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2xlZnQ6MDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7b3BhY2l0eTowfS5leGFkLWNhcmQuZGVmYXVsdCAuZXhhZC1jYXJkLWJvZHkgLmV4YWQtY2FyZC10aXRsZTpob3Zlcjo6YmVmb3JlLC5leGFkLWNhcmQudGV4dF9vbl9pbWFnZSAuZXhhZC1jYXJkLWJvZHkgLmV4YWQtY2FyZC10aXRsZTpob3Zlcjo6YmVmb3Jle29wYWNpdHk6MTtsZWZ0Oi0zMHB4fS5leGFkLWNhcmQgLmV4YWQtY2FyZC1ib2R5IC5leGFkLWNhcmQtYWN0aW9ue2Rpc3BsYXk6dGFibGU7Ym9yZGVyLXJhZGl1czo0cHg7dHJhbnNpdGlvbjphbGwgMC40cyBlYXNlO2NvbG9yOiMxMzJjNDc7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmV4YWQtY2FyZC5sZWZ0IC5leGFkLWNhcmQtYWN0aW9ue21hcmdpbi1yaWdodDphdXRvfS5leGFkLWNhcmQuY2VudGVyIC5leGFkLWNhcmQtYWN0aW9ue21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtY2FyZC5yaWdodCAuZXhhZC1jYXJkLWFjdGlvbnttYXJnaW4tbGVmdDphdXRvfS5leGFkLWNhcmQudGV4dF9vbl9pbWFnZXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJzt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgwKTt0cmFuc2Zvcm06c2NhbGVYKDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgY2VudGVyO3RyYW5zaXRpb246YWxsIDAuMnMgZWFzZTt6LWluZGV4OjF9LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlOmhvdmVyOjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlIC5leGFkLWNhcmQtdGh1bWJ7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtY2FyZC10aHVtYntvdmVyZmxvdzpoaWRkZW59LmV4YWQtY2FyZC5sZWZ0IC5leGFkLWNhcmQtdGh1bWJ7bWFyZ2luLXJpZ2h0OmF1dG99LmV4YWQtY2FyZC5jZW50ZXIgLmV4YWQtY2FyZC10aHVtYnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5leGFkLWNhcmQucmlnaHQgLmV4YWQtY2FyZC10aHVtYnttYXJnaW4tbGVmdDphdXRvfS5leGFkLWNhcmQgLmV4YWQtY2FyZC10aHVtYiBpbWd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtvYmplY3QtZml0OmNvdmVyOy1vLW9iamVjdC1maXQ6Y292ZXJ9LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlIC5leGFkLWNhcmQtdGh1bWIgaW1ne3dpZHRoOjEwMCV9LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlIC5leGFkLWNhcmQtdGh1bWI6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuOTkpIDAlLCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgMTAwJSl9LmV4YWQtY2FyZC50ZXh0X29uX2ltYWdlIC5leGFkLWNhcmQtYm9keXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MH0uZXhhZC1jYXJkLnllcyAuZXhhZC1jYXJkLXRodW1iIGltZ3t0cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWNhcmQ6aG92ZXIueWVzIC5leGFkLWNhcmQtdGh1bWIgaW1ne3RyYW5zZm9ybTpzY2FsZSgxLjE1KX0uZXhhZC1jYXJke3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLWNhcmQtYmFkZ2V7cG9zaXRpb246YWJzb2x1dGV9LmV4YWQtY29udGFjdC1mb3JtLTcgLndwY2Y3e3dpZHRoOjEwMCV9LmV4YWQtY29udGFjdC1mb3Jte2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOjMwcHh9LmV4YWQtY29udGFjdC1mb3JtIC5leGFkLWNvbnRhY3QtZm9ybS10aXRsZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTozMHB4O2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiMxMzJjNDc7Zm9udC13ZWlnaHQ6NTAwfS5leGFkLWNvbnRhY3QtZm9ybSAuZXhhZC1jb250YWN0LWZvcm0taW5wdXQtZ3JvdXB7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuZXhhZC1jb250YWN0LWZvcm0gLmV4YWQtY29udGFjdC1mb3JtLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9fS5leGFkLWNvbnRhY3QtZm9ybS03IGlucHV0W3R5cGU9InRleHQiXSwuZXhhZC1jb250YWN0LWZvcm0tNyBpbnB1dFt0eXBlPSJlbWFpbCJdLC5leGFkLWNvbnRhY3QtZm9ybS03IGlucHV0W3R5cGU9InVybCJdLC5leGFkLWNvbnRhY3QtZm9ybS03IGlucHV0W3R5cGU9InBhc3N3b3JkIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0ic2VhcmNoIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0ibnVtYmVyIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0idGVsIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0icmFuZ2UiXSwuZXhhZC1jb250YWN0LWZvcm0tNyBpbnB1dFt0eXBlPSJkYXRlIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0ibW9udGgiXSwuZXhhZC1jb250YWN0LWZvcm0tNyBpbnB1dFt0eXBlPSJ3ZWVrIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0idGltZSJdLC5leGFkLWNvbnRhY3QtZm9ybS03IGlucHV0W3R5cGU9ImRhdGV0aW1lIl0sLmV4YWQtY29udGFjdC1mb3JtLTcgaW5wdXRbdHlwZT0iZGF0ZXRpbWUtbG9jYWwiXSwuZXhhZC1jb250YWN0LWZvcm0tNyBpbnB1dFt0eXBlPSJjb2xvciJdLC5leGFkLWNvbnRhY3QtZm9ybS03IHRleHRhcmVhe3dpZHRoOjEwMCU7Ym9yZGVyOm5vbmV9LmV4YWQtY29udGFjdC1mb3JtLTcgbGFiZWx7ZGlzcGxheTpibG9ja30uZXhhZC1jb250YWN0LWZvcm0tNyB0ZXh0YXJlYXtoZWlnaHQ6YXV0b30uZXhhZC1jb250YWN0LWZvcm0gLmV4YWQtY29udGFjdC1mb3JtLWlucHV0LWdyb3VwIGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi10b3A6MjBweDtwYWRkaW5nOjAgMCAwIDI1cHh9LmV4YWQtY29udGFjdC1mb3JtIC5leGFkLWNvbnRhY3QtZm9ybS1pbnB1dC1ncm91cCBsYWJlbCBpbnB1dHtvcGFjaXR5OjA7aGVpZ2h0OjA7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmV4YWQtY29udGFjdC1mb3JtIC5leGFkLWNvbnRhY3QtZm9ybS1pbnB1dC1ncm91cCBsYWJlbCBpbnB1dDpjaGVja2VkIH4gLmNoZWNrbWFyazphZnRlcntkaXNwbGF5OmJsb2NrfS5leGFkLWNvbnRhY3QtZm9ybSAuZXhhZC1jb250YWN0LWZvcm0taW5wdXQtZ3JvdXAgbGFiZWwgaW5wdXQ6Y2hlY2tlZCB+IC5jaGVja21hcmt7YmFja2dyb3VuZC1jb2xvcjojNGNlMmJkO2JvcmRlcjpub25lfS5leGFkLWNvbnRhY3QtZm9ybSAuZXhhZC1jb250YWN0LWZvcm0taW5wdXQtZ3JvdXAgbGFiZWwgLmNoZWNrbWFya3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTNlNmVjfS5leGFkLWNvbnRhY3QtZm9ybSAuZXhhZC1jb250YWN0LWZvcm0taW5wdXQtZ3JvdXAgbGFiZWwgLmNoZWNrbWFyazo6YWZ0ZXJ7Y29udGVudDoiXGU5MGUiO2ZvbnQtZmFtaWx5OmVpY29ucztwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Om5vbmU7Y29sb3I6I2ZmZjt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO2ZvbnQtc2l6ZToxMnB4fS5leGFkLWNvbnRhY3QtZm9ybS03IC53cGNmNy1mb3JtIGlucHV0W3R5cGU9InN1Ym1pdCJde3RyYW5zaXRpb246YWxsIDAuNHMgZWFzZTtkaXNwbGF5OmZsZXh9LmV4YWQtY29udGFjdC1mb3JtLTcgLmV4YWQtY2Y3LWNvbHVtbntkaXNwbGF5OmdyaWQ7Z3JpZC1hdXRvLWZsb3c6Y29sdW1uO2dyaWQtY29sdW1uLWdhcDoxNXB4fS5leGFkLWNvbnRhY3QtZm9ybSAuZXhhZC1jb250YWN0LWZvcm0taW5wdXQtYWN0aW9uIGl7bWFyZ2luLWxlZnQ6MTBweH0uZXhhZC1jb250YWN0LWZvcm0udHdve2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uZXhhZC1jb250YWN0LWZvcm0tNyBicntkaXNwbGF5Om5vbmV9LmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtMSwuZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC0yLC5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTMsLmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtNCwuZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC01LC5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTZ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjowIC0xMHB4fS5leGFkLWNvcm9uYS13cmFwcGVyIC5leGFkLWNvcm9uYS1jb2x7cGFkZGluZzowIDEwcHggMjBweH0uZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC0xIC5leGFkLWNvcm9uYS1jb2x7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC0yIC5leGFkLWNvcm9uYS1jb2x7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtMyAuZXhhZC1jb3JvbmEtY29se2ZsZXg6MCAwIDMzLjMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMyV9LmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtNCAuZXhhZC1jb3JvbmEtY29se2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTUgLmV4YWQtY29yb25hLWNvbHtmbGV4OjAgMCAyMCU7bWF4LXdpZHRoOjIwJX0uZXhhZC1jb3JvbmEtY29udGVudC1ob3Jpem9udGFse2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LmV4YWQtY29yb25hLWNvbnRlbnQtdmVydGljYWx7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC02IC5leGFkLWNvcm9uYS1jb2x7ZmxleDowIDAgMTYuNjY2NjYlO21heC13aWR0aDoxNi42NjY2NjYlfUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtNCAuZXhhZC1jb3JvbmEtY29sLC5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTUgLmV4YWQtY29yb25hLWNvbCwuZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC02IC5leGFkLWNvcm9uYS1jb2x7ZmxleDowIDAgMzMuMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzJX19QG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXsuZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC0xIC5leGFkLWNvcm9uYS1jb2wsLmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtMiAuZXhhZC1jb3JvbmEtY29sLC5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTMgLmV4YWQtY29yb25hLWNvbCwuZXhhZC1jb3JvbmEtd3JhcHBlci5leGFkLWNvbC00IC5leGFkLWNvcm9uYS1jb2wsLmV4YWQtY29yb25hLXdyYXBwZXIuZXhhZC1jb2wtNSAuZXhhZC1jb3JvbmEtY29sLC5leGFkLWNvcm9uYS13cmFwcGVyLmV4YWQtY29sLTYgLmV4YWQtY29yb25hLWNvbHtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MCAxMHB4IDIwcHh9fS5mbGFnLXJvd3t3aWR0aDo4MHB4fS5mbGFnIGltZ3t3aWR0aDozNXB4O2hlaWdodDphdXRvfS5leGFkLWNvcm9uYS1zZWFyY2gtZm9ybXt3aWR0aDozNTBweDtoZWlnaHQ6NTBweDttYXJnaW4tYm90dG9tOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtY29yb25hLXNlYXJjaC1pY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDoyMHB4fS5leGFkLWNvcm9uYS1zZWFyY2gtZm9ybSBpbnB1dHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5leGFkLWRhdGEtdGFibGUgLmV4YWQtY29yb25hLXRhYmxlLWhlYWRpbmcgdGgsLmV4YWQtZGF0YS10YWJsZSAuZXhhZC1kYXRhLXRhYmxlLXJvdyB0ZHtwYWRkaW5nOjE1cHh9LmV4YWQtY29yb25hLXRhYmxlLWhlYWRpbmcueWVzIHRoe3Bvc2l0aW9uOnN0aWNreTtwb3NpdGlvbjotd2Via2l0LXN0aWNreTt0b3A6LTJweH0uYWRtaW4tYmFyIC5leGFkLWNvcm9uYS10YWJsZS1oZWFkaW5nLnllcyB0aHtwb3NpdGlvbjpzdGlja3k7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7dG9wOjMwcHh9LmV4YWQtY292aWQtY29udGluZW50LWJ0bnt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtY292aWQtY29udGluZW50LWJ0bjpmb2N1c3tvdXRsaW5lOjB9LmV4YWQtY29yb25hLWhlYWRpbmcuaW5saW5le2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uZXhhZC1jb3JvbmEtaGVhZGluZy5pbmxpbmUgLmV4YWQtY29yb25hLWxhc3QtdXBkYXRle29yZGVyOjJ9QG1lZGlhIChtYXgtd2lkdGg6IDc2OXB4KXsuZXhhZC1jb3JvbmEtdGFibGV7b3ZlcmZsb3cteDpzY3JvbGx9fS5leGFkLWNvcm9uYS10YWJsZS55ZXN7b3ZlcmZsb3cteTpzY3JvbGwhaW1wb3J0YW50fS5hZG1pbi1iYXIgLmV4YWQtY29yb25hLXRhYmxlLnllcyAuZXhhZC1jb3JvbmEtdGFibGUtaGVhZGluZy55ZXMgdGh7dG9wOjB9LmV4YWQtY291bnRkb3duLWRlc2NyaXB0aW9ue3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206OTBweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LmV4YWQtY291bnRkb3duLWRlc2NyaXB0aW9uIGgye2ZvbnQtc2l6ZTo0MHB4O2NvbG9yOiMwYTE3MjQ7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi1ib3R0b206MjNweDtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1jb3VudGRvd24tZGVzY3JpcHRpb24gcHttYXJnaW4tYm90dG9tOjA7cGFkZGluZzowIDMwMHB4fS5leGFkLWNvdW50ZG93bi1kZXNjcmlwdGlvbntjb2xvcjojZmZmfS5leGFkLWNvdW50ZG93bi1kZXNjcmlwdGlvbiBoMntjb2xvcjojZmZmfS5leGFkLWNvdW50ZG93bntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyfS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOmNhbGMoKDEwMCUgLyA0KSAtIDIzcHgpO21hcmdpbi1yaWdodDozMHB4O3RleHQtYWxpZ246Y2VudGVyfS5leGFkLWNvdW50ZG93bi1jb250ZW50LWNvbnRhaW5lci55ZXMgLmV4YWQtY291bnRkb3due2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmV4YWQtY291bnRkb3duLWNvbnRlbnQtY29udGFpbmVyLnllcyAuZXhhZC1jb3VudGRvd24gLmV4YWQtY291bnRkb3duLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1jb3VudGRvd24tY29udGVudC1jb250YWluZXIueWVzIC5leGFkLWNvdW50ZG93bi10aW1lci13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uZXhhZC1jb3VudGRvd24gLmV4YWQtY291bnRkb3duLWNvbnRhaW5lcjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVyIC5leGFkLWNvdW50ZG93bi10aW1lci13cmFwcGVyID4gc3BhbntkaXNwbGF5OmJsb2NrfS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY291bnR7bGluZS1oZWlnaHQ6MX0uZXhhZC1jb3VudGRvd24gLmV4YWQtY291bnRkb3duLWNvdW50e3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLWNvdW50ZG93bi5leGFkLWNvdW50ZG93bi1kaXZpZGVyIC5leGFkLWNvdW50ZG93bi1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtY291bnRkb3duLmV4YWQtY291bnRkb3duLWRpdmlkZXIgLmV4YWQtY291bnRkb3duLWNvbnRhaW5lcjo6YWZ0ZXJ7Y29udGVudDoiOiI7Zm9udC13ZWlnaHQ6MTAwO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEwJTtjb2xvcjojZmZmZmZmO2ZvbnQtc2l6ZTo3MHB4fS5leGFkLWNvdW50ZG93bi5leGFkLWNvdW50ZG93bi1kaXZpZGVyIC5leGFkLWNvdW50ZG93bi1jb250YWluZXI6bGFzdC1jaGlsZDo6YWZ0ZXJ7ZGlzcGxheTpub25lfS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY291bnR7Zm9udC1zaXplOjgwcHg7Y29sb3I6IzAwMDt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC1jb3VudGRvd24gLmV4YWQtY291bnRkb3duLXRpdGxle2NvbG9yOiMwYTE3MjQ7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtY291bmRvd24tYmcgPiBzdmd7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5leGFkLWNvdW5kb3duLWJnID4gc3ZnID4gcGF0aHtmaWxsOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNzgpfS5leGFkLWNvdW50ZG9lbi13YXRlcm1hcmt7Zm9udC1zaXplOjIwMHB4O2NvbG9yOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo3MDB9LmV4YWQtY291bnRkb3duLW9mZmVyLWxpbWl0YXRpb24tdGl0bGV7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTozOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mn0uZXhhZC1jb3VudGRvd24gLm1lc3NhZ2V7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjMwcHg7Zm9udC13ZWlnaHQ6NzAwO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTowfS5leGFkLWNvdW50ZG93bi1iYW5uZXJ7cGFkZGluZzoxOTRweCAwfS5leGFkLWNvdW50ZG93bi1iYW5uZXIgLmV4YWQtY291bnRkb3duLWRlc2NyaXB0aW9ue21hcmdpbi1ib3R0b206MTE3cHh9QG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCl7LmV4YWQtY291bnRkb3duLWRlc2NyaXB0aW9uIHB7cGFkZGluZzowIDE1MHB4fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5leGFkLWNvdW50ZG93bi1kZXNjcmlwdGlvbiBwe3BhZGRpbmc6MCAyMHB4fS5leGFkLWNvdW5kb3duLWJnID4gc3ZnLC5leGFkLWNvdW50ZG9lbi13YXRlcm1hcmt7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpey5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOmNhbGMoKDEwMCUgLyAyKSAtIDIwcHgpO21hcmdpbi1yaWdodDoxMHB4O21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLWJvdHRvbToyMHB4O3BhZGRpbmc6MjNweCAxMHB4fS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVyLmdyYWRpZW50LXZlcnNpb24sLmV4YWQtY291bnRkb3duIC5leGFkLWNvdW50ZG93bi1jb250YWluZXIuaW1hZ2UtdmVyc2lvbiwuZXhhZC1jb3VudGRvd24gLmV4YWQtY291bnRkb3duLWNvbnRhaW5lci5tb2Rlcm57cGFkZGluZy1sZWZ0OjE1cHg7cGFkZGluZy1yaWdodDoxNXB4fS5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOmNhbGMoKDEwMCUgLyAyKSAtIDIwcHgpO21hcmdpbi1yaWdodDoxMHB4O21hcmdpbi1sZWZ0OjEwcHh9LmV4YWQtY291bnRkb3duIC5leGFkLWNvdW50ZG93bi1jb3VudHtmb250LXNpemU6NDBweH0uZXhhZC1jb3VudGRvd24uZXhhZC1jb3VudGRvd24tZGl2aWRlciAuZXhhZC1jb3VudGRvd24tY29udGFpbmVyOjphZnRlcnt0b3A6MH0uZXhhZC1jb3VudGRvd24uZXhhZC1jb3VudGRvd24tZGl2aWRlciAuZXhhZC1jb3VudGRvd24tY29udGFpbmVyOm50aC1jaGlsZCgyKTo6YWZ0ZXJ7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpey5leGFkLWNvdW50ZG93biAuZXhhZC1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOmNhbGMoMTAwJSAtIDIwcHgpfS5leGFkLWNvdW50ZG93bi5leGFkLWNvdW50ZG93bi1kaXZpZGVyIC5leGFkLWNvdW50ZG93bi1jb250YWluZXI6OmFmdGVye2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KXsuZXhhZC1jb3VudGRvd24tYmFubmVye3BhZGRpbmc6OTdweCAwfS5leGFkLWNvdW50ZG93bi1iYW5uZXIgLmV4YWQtY291bnRkb3duLWRlc2NyaXB0aW9ue21hcmdpbi1ib3R0b206NTguNXB4fS5leGFkLWNvdW50ZG93bi1kZXNjcmlwdGlvbi50d28gcHtwYWRkaW5nLXJpZ2h0OjB9fS5leGFkLWR1YWwtYnV0dG9ue2Rpc3BsYXk6dGFibGV9LmV4YWQtZHVhbC1idXR0b24uZXhhZC1kdWFsLWJ1dHRvbi1hbGlnbi1sZWZ0e21hcmdpbi1yaWdodDphdXRvfS5leGFkLWR1YWwtYnV0dG9uLmV4YWQtZHVhbC1idXR0b24tYWxpZ24tY2VudGVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LmV4YWQtZHVhbC1idXR0b24uZXhhZC1kdWFsLWJ1dHRvbi1hbGlnbi1yaWdodHttYXJnaW4tbGVmdDphdXRvfS5leGFkLWR1YWwtYnV0dG9uLWFjdGlvbntkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5e3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLWR1YWwtYnV0dG9uLWNvbm5lY3Rvcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsIC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwgLTUwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwgLTUwJSk7ei1pbmRleDoxMH0uZXhhZC1kdWFsLWJ1dHRvbi1jb25uZWN0b3Igc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTEsLmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtMiwuZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC0zLC5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTQsLmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtNiwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTEsLmV4YWQtZHVhbC1idXR0b24tc2Vjb25kYXJ5LmVmZmVjdC0yLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtMywuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTQsLmV4YWQtZHVhbC1idXR0b24tc2Vjb25kYXJ5LmVmZmVjdC02e3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC0xOjpiZWZvcmUsLmV4YWQtZHVhbC1idXR0b24tc2Vjb25kYXJ5LmVmZmVjdC0xOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztoZWlnaHQ6MTAwJTt3aWR0aDowO3RvcDowO2xlZnQ6MDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtMTpob3ZlciwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTE6aG92ZXJ7ei1pbmRleDoxfS5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTE6aG92ZXI6OmJlZm9yZSwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTE6aG92ZXI6OmJlZm9yZXt3aWR0aDoxMDAlO3otaW5kZXg6LTF9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtMjo6YmVmb3JlLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtMjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt0b3A6MDtsZWZ0OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyfS5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTI6aG92ZXIsLmV4YWQtZHVhbC1idXR0b24tc2Vjb25kYXJ5LmVmZmVjdC0yOmhvdmVye3otaW5kZXg6MX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC0yOmhvdmVyOjpiZWZvcmUsLmV4YWQtZHVhbC1idXR0b24tc2Vjb25kYXJ5LmVmZmVjdC0yOmhvdmVyOjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MTt6LWluZGV4Oi0xfS5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTM6OmJlZm9yZSwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTM6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO2hlaWdodDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7bGVmdDowOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC0zOmhvdmVyLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtMzpob3Zlcnt6LWluZGV4OjF9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtMzpob3Zlcjo6YmVmb3JlLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtMzpob3Zlcjo6YmVmb3Jle2hlaWdodDoxMDAlO3otaW5kZXg6LTF9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtNDo6YmVmb3JlLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtNDo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjUwJTtib3R0b206NTAlO2xlZnQ6MDtyaWdodDowO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtNDpob3ZlciwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTQ6aG92ZXJ7ei1pbmRleDoxfS5leGFkLWR1YWwtYnV0dG9uLXByaW1hcnkuZWZmZWN0LTQ6aG92ZXI6OmJlZm9yZSwuZXhhZC1kdWFsLWJ1dHRvbi1zZWNvbmRhcnkuZWZmZWN0LTQ6aG92ZXI6OmJlZm9yZXt0b3A6MDtib3R0b206MDtvcGFjaXR5OjE7ei1pbmRleDotMX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC01LC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtNXstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtNjo6YmVmb3JlLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtNjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7aGVpZ2h0OjEwMCU7d2lkdGg6MDt0b3A6MDtyaWdodDowOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1kdWFsLWJ1dHRvbi1wcmltYXJ5LmVmZmVjdC02OmhvdmVyLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtNjpob3Zlcnt6LWluZGV4OjF9LmV4YWQtZHVhbC1idXR0b24tcHJpbWFyeS5lZmZlY3QtNjpob3Zlcjo6YmVmb3JlLC5leGFkLWR1YWwtYnV0dG9uLXNlY29uZGFyeS5lZmZlY3QtNjpob3Zlcjo6YmVmb3Jle3dpZHRoOjEwMCU7ei1pbmRleDotMX0uZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXJ7cGFkZGluZzo1cHh9LmV4YWQtZHVhbC1oZWFkaW5nIC5leGFkLWR1YWwtaGVhZGluZy13cmFwcGVyIC5leGFkLWR1YWwtaGVhZGluZy1kZXNjcmlwdGlvbntsaW5lLWhlaWdodDoyNnB4O21hcmdpbjozMHB4IDAgMDtwYWRkaW5nOjEwcHg7Zm9udC13ZWlnaHQ6NDAwfS5leGFkLWR1YWwtaGVhZGluZyAuZXhhZC1kdWFsLWhlYWRpbmctd3JhcHBlciAuZXhhZC1kdWFsLWhlYWRpbmctaWNvbntkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZHVhbC1oZWFkaW5nLWljb24gaXtmb250LXNpemU6MzZweH0uZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZHVhbC1oZWFkaW5nLXRpdGxle2ZvbnQtc2l6ZTozNnB4O21hcmdpbi10b3A6MTBweH0uZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZHVhbC1oZWFkaW5nLXRpdGxle2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiMxMzJjNDc7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmV4YWQtZHVhbC1oZWFkaW5nIC5leGFkLWR1YWwtaGVhZGluZy13cmFwcGVyIC5leGFkLWR1YWwtaGVhZGluZy10aXRsZSAuZmlyc3QtaGVhZGluZywuZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZHVhbC1oZWFkaW5nLXRpdGxlIC5zZWNvbmQtaGVhZGluZ3twYWRkaW5nOjE1cHggMTBweH0uZXhhZC1kdWFsLWhlYWRpbmcgLmV4YWQtZHVhbC1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZHVhbC1oZWFkaW5nLXRpdGxlIHNwYW57Y29sb3I6IzEzMmM0N30uZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXIgLmV4YWQtZmFjZWJvb2stbWV0YXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5leGFkLWZhY2Vib29rLWZlZWQtd3JhcHBlciAuZXhhZC1mYWNlYm9vay1hdXRob3J7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXIgLmV4YWQtZmFjZWJvb2stYXV0aG9yIC5leGFkLWZhY2Vib29rLWF2YXRhcnt3aWR0aDo1MHB4O2JvcmRlci1yYWRpdXM6NTAlfS5leGFkLWZhY2Vib29rLWZlZWQtd3JhcHBlciAuZXhhZC1mYWNlYm9vay1saWtlc3ttYXJnaW4tcmlnaHQ6MTVweH0uZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXIgLmV4YWQtZmFjZWJvb2stZmVlZC1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleH0uZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXIuZXhhZC1sYXlvdXQtMiAuZXhhZC1mYWNlYm9vay1mZWVkLWl0ZW0gLmV4YWQtZmFjZWJvb2stZmVlZC1mZWF0dXJlLWltYWdlLC5leGFkLWZhY2Vib29rLWZlZWQtd3JhcHBlci5leGFkLWxheW91dC0zIC5leGFkLWZhY2Vib29rLWZlZWQtaXRlbSAuZXhhZC1mYWNlYm9vay1mZWVkLWZlYXR1cmUtaW1hZ2V7ZmxleC1kaXJlY3Rpb246cm93fS5leGFkLWZhY2Vib29rLWZlZWQtd3JhcHBlci5leGFkLWxheW91dC0zIC5leGFkLWZhY2Vib29rLWZlZWQtaXRlbSAuZXhhZC1mYWNlYm9vay1mZWVkLWZlYXR1cmUtaW1hZ2V7b3JkZXI6Mn0uZXhhZC1mYWNlYm9vay1mZWVkLXdyYXBwZXIgLmV4YWQtZmFjZWJvb2stZmVlZC1pdGVtIC5leGFkLWZhY2Vib29rLWZlZWQtZmVhdHVyZS1pbWFnZSBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyOy1vLW9iamVjdC1maXQ6Y292ZXJ9LmV4YWQtZmFjZWJvb2stZmVlZC13cmFwcGVye2Rpc3BsYXk6Z3JpZH0uZXhhZC1mYWNlYm9vay1mb290ZXItd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDt3aWR0aDoxMDAlO2xlZnQ6MH0uZXhhZC1mYWNlYm9vay1hdXRob3ItbmFtZXtkaXNwbGF5OmJsb2NrfUBtZWRpYShtYXgtd2lkdGg6IDU3NXB4KXsuZXhhZC1maWx0ZXJhYmxlLWl0ZW1zLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lci1hbGlnbi1sZWZ0LC5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLXJpZ2h0e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lci1hbGlnbi1sZWZ0IC5leGFkLWZpbHRlcmFibGUtY29udHJvbHMsLmV4YWQtZmlsdGVyYWJsZS1pdGVtcy5leGFkLWZpbHRlcmFibGUtbWVudS1jb250YWluZXItYWxpZ24tbGVmdCAuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLC5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLXJpZ2h0IC5leGFkLWZpbHRlcmFibGUtY29udHJvbHMsLmV4YWQtZmlsdGVyYWJsZS1pdGVtcy5leGFkLWZpbHRlcmFibGUtbWVudS1jb250YWluZXItYWxpZ24tcmlnaHQgLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lcnt3aWR0aDoxMDAlICFpbXBvcnRhbnR9fS5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLWxlZnQsLmV4YWQtZmlsdGVyYWJsZS1pdGVtcy5leGFkLWZpbHRlcmFibGUtbWVudS1jb250YWluZXItYWxpZ24tcmlnaHR7ZGlzcGxheTpmbGV4fS5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLWxlZnQgLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lciwuZXhhZC1maWx0ZXJhYmxlLWl0ZW1zLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lci1hbGlnbi1yaWdodCAuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVye3dpZHRoOjIwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLWxlZnQgLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lcntvcmRlcjowfS5leGFkLWZpbHRlcmFibGUtaXRlbXMuZXhhZC1maWx0ZXJhYmxlLW1lbnUtY29udGFpbmVyLWFsaWduLXJpZ2h0IC5leGFkLWZpbHRlcmFibGUtbWVudS1jb250YWluZXJ7b3JkZXI6MX0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zLmV4YWQtZmlsdGVyYWJsZS1tZW51LWNvbnRhaW5lci1hbGlnbi1sZWZ0IC5leGFkLWZpbHRlcmFibGUtY29udHJvbHMsLmV4YWQtZmlsdGVyYWJsZS1pdGVtcy5leGFkLWZpbHRlcmFibGUtbWVudS1jb250YWluZXItYWxpZ24tcmlnaHQgLmV4YWQtZmlsdGVyYWJsZS1jb250cm9sc3t3aWR0aDo4MCV9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZXhhZC1maWx0ZXJhYmxlLWNvbnRlbnQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZXhhZC1maWx0ZXJhYmxlLWltYWdlIC5leGFkLWZpbHRlcmFibGUtdGh1bWJuYWlsLWhvbGRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwLjElO2hlaWdodDoxMDAuMSU7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3otaW5kZXg6MDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZTstby10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTtvdmVyZmxvdzpoaWRkZW59LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZXhhZC1maWx0ZXJhYmxlLWltYWdle3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQtY29sb3I6I2VlZWVlZTtwYWRkaW5nLWJvdHRvbTo4MCV9LmV4YWQtZmlsdGVyYWJsZS1tZW51IC5maWx0ZXItaXRlbXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5maWx0ZXJhYmxlLXBvc3QtY29udGFpbmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbSBpbWd7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtIC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowO2JhY2tncm91bmQ6cmdiYSgxMTQsIDc2LCAyNTUsIDAuOCk7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtIC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5IC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5LWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkgLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXktY29udGVudCAuZXhhZC1mZy1pY29uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3dpZHRoOjEwMCV9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkgLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXktY29udGVudCAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5maWx0ZXJhYmxlLXBvc3QtY29udGFpbmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbSAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tb3ZlcmxheSAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tb3ZlcmxheS1jb250ZW50IGF7aGVpZ2h0OjYwcHg7d2lkdGg6NjBweDttYXJnaW4tcmlnaHQ6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Ym9yZGVyLXJhZGl1czoxMDAlfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmV4YWQtZmlsdGVyYWJsZS1pdGVtLWNvbnRlbnQuYmVsb3ctaW1hZ2V7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5leGFkLWZpbHRlcmFibGUtaXRlbS1jb250ZW50IGgye21hcmdpbjoxMHB4IDA7Zm9udC1zaXplOjIwcHh9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tY29udGVudCBwe21hcmdpbjoxMHB4IDB9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkgLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXktY29udGVudCBhIGl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5maWx0ZXJhYmxlLXBvc3QtY29udGFpbmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbSAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tb3ZlcmxheS5leGFkLXpvb20taW57LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtOmhvdmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5LmV4YWQtem9vbS1pbnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkuZXhhZC1zbGlkZS1sZWZ0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTtvcGFjaXR5OjB9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW06aG92ZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkuZXhhZC1zbGlkZS1sZWZ0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAlKTtvcGFjaXR5OjF9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkuZXhhZC1zbGlkZS1yaWdodHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO29wYWNpdHk6MH0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5maWx0ZXJhYmxlLXBvc3QtY29udGFpbmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbTpob3ZlciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tb3ZlcmxheS5leGFkLXNsaWRlLXJpZ2h0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAlKTtvcGFjaXR5OjF9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZmlsdGVyYWJsZS1wb3N0LWNvbnRhaW5lciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0gLmV4YWQtZmlsdGVyYWJsZS1pdGVtLW92ZXJsYXkuZXhhZC1zbGlkZS10b3B7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpO29wYWNpdHk6MH0uZXhhZC1maWx0ZXJhYmxlLWl0ZW1zIC5maWx0ZXJhYmxlLXBvc3QtY29udGFpbmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbTpob3ZlciAuZXhhZC1maWx0ZXJhYmxlLWl0ZW0tb3ZlcmxheS5leGFkLXNsaWRlLXRvcHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwJSk7b3BhY2l0eToxfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtIC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtYm90dG9tey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7b3BhY2l0eTowfS5leGFkLWZpbHRlcmFibGUtaXRlbXMgLmZpbHRlcmFibGUtcG9zdC1jb250YWluZXIgLmV4YWQtZmlsdGVyYWJsZS1pdGVtOmhvdmVyIC5leGFkLWZpbHRlcmFibGUtaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtYm90dG9tey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDAlKTtvcGFjaXR5OjF9LmV4YWQtZmlsdGVyYWJsZS1pdGVtcyAuZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyIC5leGFkLXBvc3QtZ3JpZC10aHVtYm5haWw6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uZXhhZC1mbGlwLWJveHstd2Via2l0LXBlcnNwZWN0aXZlOjEwMDBweDtwZXJzcGVjdGl2ZToxMDAwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uZXhhZC1mbGlwLWJveC1iYWNrLW92ZXJsYXksLmV4YWQtZmxpcC1ib3gtZnJvbnQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjB9LmV4YWQtZmxpcC1ib3gtYmFjay1jb250ZW50LC5leGFkLWZsaXAtYm94LWZyb250LWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3dpZHRoOjEwMCV9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLmxlZnQtdG8tcmlnaHR7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyl9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLmxlZnQtdG8tcmlnaHQgLmV4YWQtZmxpcC1ib3gtZnJvbnR7b3BhY2l0eTowfS5leGFkLWZsaXAtYm94OmhvdmVyIC5yaWdodC10by1sZWZ0ey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoLTE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVkoLTE4MGRlZyl9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLnJpZ2h0LXRvLWxlZnQgLmV4YWQtZmxpcC1ib3gtZnJvbnR7b3BhY2l0eTowfS5leGFkLWZsaXAtYm94OmhvdmVyIC50b3AtdG8tYm90dG9tey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoLTE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZVgoLTE4MGRlZyl9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLnRvcC10by1ib3R0b20gLmV4YWQtZmxpcC1ib3gtZnJvbnR7b3BhY2l0eTowfS5leGFkLWZsaXAtYm94OmhvdmVyIC5ib3R0b20tdG8tdG9wey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVgoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpfS5leGFkLWZsaXAtYm94OmhvdmVyIC5ib3R0b20tdG8tdG9wIC5leGFkLWZsaXAtYm94LWZyb250e29wYWNpdHk6MH0uZXhhZC1mbGlwLWJveDpob3ZlciAudG9wLXRvLWJvdHRvbS1hbmdsZXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCgxLCAxLCAwLCAtMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlM2QoMSwgMSwgMCwgLTE4MGRlZyl9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLnRvcC10by1ib3R0b20tYW5nbGUgLmV4YWQtZmxpcC1ib3gtZnJvbnR7b3BhY2l0eTowfS5leGFkLWZsaXAtYm94OmhvdmVyIC5ib3R0b20tdG8tdG9wLWFuZ2xley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKDEsIDEsIDAsIDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKDEsIDEsIDAsIDE4MGRlZyl9LmV4YWQtZmxpcC1ib3g6aG92ZXIgLmJvdHRvbS10by10b3AtYW5nbGUgLmV4YWQtZmxpcC1ib3gtZnJvbnR7b3BhY2l0eTowfS5leGFkLWZsaXAtYm94OmhvdmVyIC5leGFkLWZsaXAtYm94LWlubmVyLmZhZGUtaW4tb3V0IC5leGFkLWZsaXAtYm94LWZyb250e29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjUpO3RyYW5zZm9ybTpzY2FsZSgwLjUpO3otaW5kZXg6Mn0uZXhhZC1mbGlwLWJveDpob3ZlciAuZXhhZC1mbGlwLWJveC1pbm5lci5mYWRlLWluLW91dCAuZXhhZC1mbGlwLWJveC1iYWNre29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7ei1pbmRleDozfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKC4xNywuNjcsLjQ3LDEuMTgpO3RyYW5zaXRpb246dHJhbnNmb3JtIDFzIGN1YmljLWJlemllciguMTcsLjY3LC40NywxLjE4KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKC4xNywuNjcsLjQ3LDEuMTgpOy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWZyb250e3RyYW5zaXRpb246YWxsIDAuNXMgY3ViaWMtYmV6aWVyKC4xNywuNjcsLjQ3LDEuMTgpfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWZyb250IC5leGFkLWZsaXAtYm94LWZyb250LXRpdGxle2ZvbnQtc2l6ZTozMHB4fS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWJhY2t7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCV9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtZnJvbnQgLmV4YWQtZmxpcC1ib3gtZnJvbnQtaW1hZ2UgaXtmb250LXNpemU6NTBweH0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lciAuZXhhZC1mbGlwLWJveC1iYWNrIC5leGFkLWZsaXAtYm94LWJhY2stYWN0aW9ue3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YWxsIDAuNHMgZWFzZTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDo0MDB9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIgLmV4YWQtZmxpcC1ib3gtYmFjayBhLmV4YWQtZmxpcC1ib3gtYmFjay1hY3Rpb246aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIubGVmdC10by1yaWdodCAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyl9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIucmlnaHQtdG8tbGVmdCAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyl9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudG9wLXRvLWJvdHRvbSAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZyl9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIuYm90dG9tLXRvLXRvcCAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgtMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlWCgtMTgwZGVnKX0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci50b3AtdG8tYm90dG9tLWFuZ2xlIC5leGFkLWZsaXAtYm94LWZyb250ey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudG9wLXRvLWJvdHRvbS1hbmdsZSAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMSwgMSwgMCwgMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlM2QoMSwgMSwgMCwgMTgwZGVnKX0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci5ib3R0b20tdG8tdG9wLWFuZ2xlIC5leGFkLWZsaXAtYm94LWZyb250ey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIuYm90dG9tLXRvLXRvcC1hbmdsZSAuZXhhZC1mbGlwLWJveC1iYWNrey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QoMSwgMSwgMCwgLTE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZTNkKDEsIDEsIDAsIC0xODBkZWcpfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyLmZhZGUtaW4tb3V0IC5leGFkLWZsaXAtYm94LWZyb250e3RyYW5zaXRpb246YWxsIDAuOHMgY3ViaWMtYmV6aWVyKC4xNywuNjcsLjQ3LDEuMTgpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci5mYWRlLWluLW91dCAuZXhhZC1mbGlwLWJveC1iYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC41KTt0cmFuc2Zvcm06c2NhbGUoMC41KTt0cmFuc2l0aW9uOmFsbCAwLjhzIGN1YmljLWJlemllciguMTcsLjY3LC40NywxLjE4KX0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci50aHJlZS1kLWZsaXAgLmV4YWQtZmxpcC1ib3gtZnJvbnR7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMiksIC13ZWJraXQtdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMCk7dHJhbnNmb3JtOnJvdGF0ZVkoMCk7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47bWluLWhlaWdodDoyODBweDtiYWNrZ3JvdW5kOiNmZmZmZmZ9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudGhyZWUtZC1mbGlwIC5leGFkLWZsaXAtYm94LWZyb250IC5leGFkLWZsaXAtYm94LWZyb250LWNvbnRlbnR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVaKDYwcHgpIHNjYWxlKDAuOTQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVooNjBweCkgc2NhbGUoMC45NCk7dG9wOjUwJTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lkdGg6MTAwJTstd2Via2l0LXBlcnNwZWN0aXZlOmluaGVyaXQ7cGVyc3BlY3RpdmU6aW5oZXJpdH0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci50aHJlZS1kLWZsaXAgLmV4YWQtZmxpcC1ib3gtYmFja3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC40LCAwLjIsIDAuMywgMS4zMiksIC13ZWJraXQtdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO21pbi1oZWlnaHQ6MjgwcHg7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmZmZmZ9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudGhyZWUtZC1mbGlwIC5leGFkLWZsaXAtYm94LWJhY2sgLmV4YWQtZmxpcC1ib3gtYmFjay1jb250ZW50ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWig2MHB4KSBzY2FsZSgwLjk0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVaKDYwcHgpIHNjYWxlKDAuOTQpO3RvcDo1MCU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7LXdlYmtpdC1wZXJzcGVjdGl2ZTppbmhlcml0O3BlcnNwZWN0aXZlOmluaGVyaXR9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudGhyZWUtZC1mbGlwOmhvdmVyIC5leGFkLWZsaXAtYm94LWJhY2ssLmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudGhyZWUtZC1mbGlwOmhvdmVyIC5leGFkLWZsaXAtYm94LWZyb250ey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjQsIDAuMiwgMC4zLCAxLjMyKTt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuNCwgMC4yLCAwLjMsIDEuMzIpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjQsIDAuMiwgMC4zLCAxLjMyKX0uZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lci50aHJlZS1kLWZsaXA6aG92ZXIgLmV4YWQtZmxpcC1ib3gtZnJvbnR7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgtMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlWSgtMTgwZGVnKTstd2Via2l0LXRyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDt0cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2R9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIudGhyZWUtZC1mbGlwOmhvdmVyIC5leGFkLWZsaXAtYm94LWJhY2t7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgwKTt0cmFuc2Zvcm06cm90YXRlWSgwKTstd2Via2l0LXRyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDt0cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2R9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIuZmFkZSAuZXhhZC1mbGlwLWJveC1iYWNre29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2V9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIuZmFkZTpob3ZlciAuZXhhZC1mbGlwLWJveC1mcm9udHtvcGFjaXR5OjB9LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIuZmFkZTpob3ZlciAuZXhhZC1mbGlwLWJveC1iYWNre29wYWNpdHk6MX0uZXhhZC1mbGlwLWJveC1iYWNrLmxlZnQgLmV4YWQtZmxpcC1ib3gtYmFjay1pbWFnZSwuZXhhZC1mbGlwLWJveC1mcm9udC5sZWZ0IC5leGFkLWZsaXAtYm94LWZyb250LWltYWdle21hcmdpbi1yaWdodDphdXRvfS5leGFkLWZsaXAtYm94LWJhY2suY2VudGVyIC5leGFkLWZsaXAtYm94LWJhY2staW1hZ2UsLmV4YWQtZmxpcC1ib3gtZnJvbnQuY2VudGVyIC5leGFkLWZsaXAtYm94LWZyb250LWltYWdle21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LmV4YWQtZmxpcC1ib3gtYmFjay5yaWdodCAuZXhhZC1mbGlwLWJveC1iYWNrLWltYWdlLC5leGFkLWZsaXAtYm94LWZyb250LnJpZ2h0IC5leGFkLWZsaXAtYm94LWZyb250LWltYWdle21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIgLmV4YWQtZmxpcC1ib3gtYmFjayAuZXhhZC1mbGlwLWJveC1iYWNrLWltYWdlLC5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWZyb250IC5leGFkLWZsaXAtYm94LWZyb250LWltYWdle3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWJhY2sgLmV4YWQtZmxpcC1ib3gtYmFjay1pbWFnZSBpLC5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWJhY2sgLmV4YWQtZmxpcC1ib3gtYmFjay1pbWFnZSBzdmcsLmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIgLmV4YWQtZmxpcC1ib3gtZnJvbnQgLmV4YWQtZmxpcC1ib3gtZnJvbnQtaW1hZ2UgaSwuZXhhZC1mbGlwLWJveCAuZXhhZC1mbGlwLWJveC1pbm5lciAuZXhhZC1mbGlwLWJveC1mcm9udCAuZXhhZC1mbGlwLWJveC1mcm9udC1pbWFnZSBzdmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5leGFkLWZsaXAtYm94IC5leGFkLWZsaXAtYm94LWlubmVyIC5leGFkLWZsaXAtYm94LWJhY2sgLmV4YWQtZmxpcC1ib3gtYmFjay1pbWFnZSBpbWcsLmV4YWQtZmxpcC1ib3ggLmV4YWQtZmxpcC1ib3gtaW5uZXIgLmV4YWQtZmxpcC1ib3gtZnJvbnQgLmV4YWQtZmxpcC1ib3gtZnJvbnQtaW1hZ2UgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjstby1vYmplY3QtZml0OmNvdmVyfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0V4Y2x1c2l2ZSBJY29ucyc7c3JjOnVybCgnLi4vZm9udHMvZXhhZC1sb2dvLmVvdCcpO3NyYzp1cmwoJy4uL2ZvbnRzL2V4YWQtbG9nby5lb3QnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi4vZm9udHMvZXhhZC1sb2dvLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9leGFkLWxvZ28ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4uL2ZvbnRzL2V4YWQtbG9nby5zdmcnKSBmb3JtYXQoJ3N2ZycpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6YmxvY2t9LmV4YWR7Zm9udC1mYW1pbHk6J0V4Y2x1c2l2ZSBJY29ucycgIWltcG9ydGFudDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmV4YWQtbG9nbzphZnRlcntjb250ZW50OiJcZTkwMCI7Y29sb3I6I2ZmZn0uZXhhZC1nYWxsZXJ5LWl0ZW1ze3RleHQtYWxpZ246Y2VudGVyfS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1jb250ZW50LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1pbWFnZSAuZXhhZC1nYWxsZXJ5LXRodW1ibmFpbC1ob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMC4xJTtoZWlnaHQ6MTAwLjElO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjt6LWluZGV4OjA7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjJzIGVhc2U7LW8tdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlO3RyYW5zaXRpb246YWxsIDAuMnMgZWFzZTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07b3ZlcmZsb3c6aGlkZGVufS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1pbWFnZXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7cGFkZGluZy1ib3R0b206ODAlfS5leGFkLWdhbGxlcnktbWVudXtkaXNwbGF5OmJsb2NrfS5leGFkLWdhbGxlcnktbWVudSAuZmlsdGVyLWl0ZW17YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbXt3aWR0aDo1MCV9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVte3dpZHRoOjEwMCV9fS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbSBpbWd7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbSAuZXhhZC1nYWxsZXJ5LWl0ZW0tb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDtiYWNrZ3JvdW5kOnJnYmEoMTE0LCA3NiwgMjU1LCAwLjgpO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0gLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkgLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXktY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0gLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkgLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXktY29udGVudCAuZXhhZC1mZy1pY29uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3dpZHRoOjEwMCV9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5IC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LWNvbnRlbnQgLmV4YWQtZ2FsbGVyeS1pdGVtLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjB9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5IC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LWNvbnRlbnQgYXtoZWlnaHQ6NjBweDt3aWR0aDo2MHB4O21hcmdpbi1yaWdodDoxMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtib3JkZXItcmFkaXVzOjEwMCV9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWl0ZW0tY29udGVudC5iZWxvdy1pbWFnZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1pdGVtLWNvbnRlbnQgaDJ7bWFyZ2luOjEwcHggMDtmb250LXNpemU6MjBweH0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktaXRlbS1jb250ZW50IHB7bWFyZ2luOjEwcHggMH0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0gLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkgLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXktY29udGVudCBhIGl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0gLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkuZXhhZC16b29tLWluey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKX0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW06aG92ZXIgLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkuZXhhZC16b29tLWluey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0uZXhhZC1nYWxsZXJ5LWl0ZW1zIC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0gLmV4YWQtZ2FsbGVyeS1pdGVtLW92ZXJsYXkuZXhhZC1zbGlkZS1sZWZ0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTtvcGFjaXR5OjB9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtOmhvdmVyIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtbGVmdHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwJSk7b3BhY2l0eToxfS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbSAuZXhhZC1nYWxsZXJ5LWl0ZW0tb3ZlcmxheS5leGFkLXNsaWRlLXJpZ2h0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7b3BhY2l0eTowfS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbTpob3ZlciAuZXhhZC1nYWxsZXJ5LWl0ZW0tb3ZlcmxheS5leGFkLXNsaWRlLXJpZ2h0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDAlKTtvcGFjaXR5OjF9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtdG9wey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMDAlKTtvcGFjaXR5OjB9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtOmhvdmVyIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtdG9wey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDAlKTtvcGFjaXR5OjF9LmV4YWQtZ2FsbGVyeS1pdGVtcyAuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtIC5leGFkLWdhbGxlcnktaXRlbS1vdmVybGF5LmV4YWQtc2xpZGUtYm90dG9tey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7b3BhY2l0eTowfS5leGFkLWdhbGxlcnktaXRlbXMgLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbTpob3ZlciAuZXhhZC1nYWxsZXJ5LWl0ZW0tb3ZlcmxheS5leGFkLXNsaWRlLWJvdHRvbXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwJSk7b3BhY2l0eToxfS5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0uZXhhZC1jb2wtMXt3aWR0aDoxMDAlfS5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0uZXhhZC1jb2wtMnt3aWR0aDo1MCV9LmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbS5leGFkLWNvbC0ze3dpZHRoOjMzLjMzMzMzMzMzMzMzMzMlfS5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0uZXhhZC1jb2wtNHt3aWR0aDoyNSV9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCl7LmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbS5leGFkLWNvbC0xLC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0uZXhhZC1jb2wtMiwuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtLmV4YWQtY29sLTMsLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbS5leGFkLWNvbC00e3dpZHRoOjUwJX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7LmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbS5leGFkLWNvbC0xLC5leGFkLWdhbGxlcnktZWxlbWVudCAuZXhhZC1nYWxsZXJ5LWl0ZW0uZXhhZC1jb2wtMiwuZXhhZC1nYWxsZXJ5LWVsZW1lbnQgLmV4YWQtZ2FsbGVyeS1pdGVtLmV4YWQtY29sLTMsLmV4YWQtZ2FsbGVyeS1lbGVtZW50IC5leGFkLWdhbGxlcnktaXRlbS5leGFkLWNvbC00e3dpZHRoOjEwMCV9fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXdyYXBwZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtcXVvdGV7Zm9udC1zaXplOjE2cHh9LmV4YWQtY2Fyb3VzZWwtbmF2LW5leHQgaSwuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC13cmFwcGVyIC5leGFkLWNhcm91c2VsLW5hdi1wcmV2IGl7dHJhbnNpdGlvbjowLjNzIGVhc2U7Y29sb3I6I2IxYjFiMTtsaW5lLWhlaWdodDo1OHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWJhc2ljOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiciJztmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7Y29sb3I6I2YzZjNmNDtmb250LXNpemU6NDAwcHg7cmlnaHQ6MTAwcHg7dG9wOjUwcHg7bGluZS1oZWlnaHQ6NDAwcHg7Zm9udC13ZWlnaHQ6NzAwfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWNpcmNsZXttYXJnaW46MCAtMTVweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtcmF0aW5nc3twYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7bGlzdC1zdHlsZTpub25lO21hcmdpbi1ib3R0b206MzBweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtcmF0aW5ncyBsaXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MjBweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtcmF0aW5ncyBsaS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXJhdGluZ3MtYWN0aXZlIGl7Y29sb3I6I2ZmOGU0YX0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaW5uZXJ7YmFja2dyb3VuZDojZmZmO291dGxpbmU6MDttYXJnaW46MCAxNXB4O3BhZGRpbmc6NDBweCAzMHB4O3RleHQtYWxpZ246Y2VudGVyfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWNpcmNsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbWFnZXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7d2lkdGg6MTIycHg7aGVpZ2h0OjEyMnB4O21hcmdpbjowIGF1dG8gNDVweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaW1hZ2UgaW1ne3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMHB4O2hlaWdodDoxMDBweDt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCV9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdlIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMjNweDtoZWlnaHQ6MTIzcHg7ei1pbmRleDotMX0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaW1hZ2Ugc3ZnOmZpcnN0LWNoaWxke2xlZnQ6N3B4O2JvdHRvbTo3cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdlIHN2ZzpudGgtY2hpbGQoMil7dG9wOjdweDtsZWZ0OjdweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaW1hZ2Ugc3ZnOm50aC1jaGlsZCgzKXtyaWdodDo0cHg7dG9wOjB9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdlIHN2Zy52aW9sYXRle2ZpbGw6IzgyNmVmZn0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaW1hZ2Ugc3ZnLm9yYW5nZXtmaWxsOiNmZjZhNDd9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdlIHN2Zy5jeWFue2ZpbGw6IzNhZDhmNH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtbmFtZXtmb250LXNpemU6MThweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bWFyZ2luLWJvdHRvbTo1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWRlc2lnbmF0aW9ue2ZvbnQtc2l6ZToxNHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWNpcmNsZSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dCwuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXZ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7YmFja2dyb3VuZDojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgI2U1ZTVlNTtvcGFjaXR5OjAuNzt0cmFuc2l0aW9uOjAuM3MgZWFzZTtjdXJzb3I6cG9pbnRlcjt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWNpcmNsZSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dDpob3ZlciwuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1jaXJjbGUgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXY6aG92ZXJ7Ym94LXNoYWRvdzowIDE1cHggMzlweCAwIHJnYmEoOSwgMjQsIDMzLCAwLjA2KTtvcGFjaXR5OjF9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWNhcm91c2VsLW5hdi1wcmV2e2xlZnQ6LTgwcHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtY2lyY2xlIC5leGFkLWNhcm91c2VsLW5hdi1uZXh0e3JpZ2h0Oi04MHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZXttYXJnaW46MH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtaXRlbXttYXJnaW46MCA1NnB4IDEwMHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lciAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lci1sZWZ0e2ZsZXgtYmFzaXM6NDAlfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lciAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lci1yaWdodHtmbGV4LWJhc2lzOjU4JTttYXJnaW4tbGVmdDoyJX0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtbmFtZXtmb250LXNpemU6MjJweDtmb250LWZhbWlseTpSb2JvdG8sIHNhbnMtc2VyaWY7bWFyZ2luLWJvdHRvbTo1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtc2luZ2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWRlc2lnbmF0aW9ue2ZvbnQtc2l6ZToxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1ib3R0b206MjVweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtcXVvdGV7bWFyZ2luLWJvdHRvbToyNXB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1yYXRpbmdze3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtc2luZ2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXJhdGluZ3MgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjIwcHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtc2luZ2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXJhdGluZ3MgbGkuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1yYXRpbmdzLWFjdGl2ZSBpe2NvbG9yOiM4MDZiZmZ9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtc2luZ2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdle2JveC1zaGFkb3c6MCA0MHB4IDgxcHggMCByZ2JhKDksIDI0LCAzMywgMC4xNCl9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtc2luZ2xlIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWltYWdlIGltZ3t3aWR0aDoxMDAlfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dCwuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXZ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJTtmb250LXNpemU6MjVweDt0cmFuc2l0aW9uOjAuM3MgZWFzZTttYXJnaW4tcmlnaHQ6MjBweDtib3JkZXI6MXB4IHNvbGlkICNlNWU1ZTU7Ym90dG9tOjIwcHg7ei1pbmRleDoxfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dDpob3ZlciwuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXY6aG92ZXJ7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMTlweCAyN3B4IDAgcmdiYSg1NiwgMjE4LCAyMzIsIDAuMjUpO2JhY2tncm91bmQ6IzgwNmJmZn0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1zaW5nbGUgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXZ7bGVmdDo1NnB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dHtsZWZ0OjEyNnB4fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMwcHgpey5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXNpbmdsZSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1pbm5lcntmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MDBweCl7LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtYmFzaWN7cGFkZGluZzo1MHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLWJhc2ljIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLW5hbWV7Zm9udC1zaXplOjE4cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtYmFzaWMgLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtZGVzaWduYXRpb257Zm9udC1zaXplOjE0cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtYmFzaWMgLmV4YWQtY2Fyb3VzZWwtbmF2LW5leHQsLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtYmFzaWMgLmV4YWQtY2Fyb3VzZWwtbmF2LXByZXZ7Ym90dG9tOjB9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtYmFzaWMgLmV4YWQtY2Fyb3VzZWwtbmF2LW5leHR7cmlnaHQ6MjVweH0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1iYXNpYyAuZXhhZC1jYXJvdXNlbC1uYXYtcHJldntyaWdodDo5MHB4fX0uZXhhZC1nb29nbGUtcmV2aWV3cy1yYXRpbmdze21hcmdpbjowO3BhZGRpbmc6MH0uZXhhZC1nb29nbGUtcmV2aWV3cy1yYXRpbmdzIGxpe2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1nb29nbGUtcmV2aWV3cy10aHVtYiBpbWd7aGVpZ2h0OjEwMCUgIWltcG9ydGFudDt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7b2JqZWN0LWZpdDpjb3Zlcn0uZXhhZC1nb29nbGUtcmV2aWV3cy10aHVtYntiYWNrZ3JvdW5kOiNmZmZmZmZ9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlcntib3JkZXItcmFkaXVzOjEwcHggMTBweCAxMHB4IDEwcHg7cGFkZGluZzoyMHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLWNlbnRlciAuZXhhZC1nb29nbGUtcmV2aWV3cy10aHVtYnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1ib3R0b217dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLWJvdHRvbSAuZXhhZC1nb29nbGUtcmV2aWV3cy10aHVtYnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1jZW50ZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtdGh1bWJ7bWFyZ2luLWxlZnQ6YXV0b30uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tYm90dG9tIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtdGh1bWIsLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLWNlbnRlciAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXRodW1iLC5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1sZWZ0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtdGh1bWIsLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLXJpZ2h0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtdGh1bWJ7Ym9yZGVyLXJhZGl1czo1MCUgNTAlIDUwJSA1MCU7bWFyZ2luLWJvdHRvbTowfS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1sZWZ0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXIsLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLXJpZ2h0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tbGVmdCAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2Vye3BhZGRpbmctbGVmdDoyMHB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1yaWdodCAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2Vye3BhZGRpbmctcmlnaHQ6MjBweH0uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tcmlnaHQgLmV4YWQtZ29vZ2xlLXJldmlld3MtcmV2aWV3ZXItd3JhcHBlcntqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLXJpZ2h0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyLXdyYXBwZXIgLmV4YWQtZ29vZ2xlLXJldmlld3MtdGh1bWJ7b3JkZXI6Mn0uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tcmlnaHQgLmV4YWQtZ29vZ2xlLXJldmlld3MtcmV2aWV3ZXItd3JhcHBlciAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlcntvcmRlcjoxfS5leGFkLWdvb2dsZS1yZXZpZXdzLWRlc2NyaXB0aW9ue21hcmdpbjowfS5leGFkLWdvb2dsZS1yZXZpZXdzLW5hbWV7bWFyZ2luOjA7Zm9udC1zaXplOjIycHg7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLWdvb2dsZS1yZXZpZXdzLWRlc2lnbmF0aW9ue21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE0cHh9LmV4YWQtZ29vZ2xlLXJldmlld3MtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiXGU5MmEiO2ZvbnQtZmFtaWx5OmVpY29uczt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtmb250LXNpemU6MjVweDtsaW5lLWhlaWdodDoxfS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXItaW5uZXIubGF5b3V0LTIgLmV4YWQtZ29vZ2xlLXJldmlld3MtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDE4MGRlZyl9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlcnt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZ29vZ2xlLXJldmlld3MtY29udGVudC13cmFwcGVyLWFycm93e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tY2VudGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXItaW5uZXIubGF5b3V0LTEgLmV4YWQtZ29vZ2xlLXJldmlld3MtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7bGVmdDo1MCU7Ym90dG9tOi0xNXB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1ib3R0b20gLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci1pbm5lci5sYXlvdXQtMSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjUwJTtib3R0b206LTE1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLWxlZnQgLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci1pbm5lci5sYXlvdXQtMSAuZXhhZC1nb29nbGUtcmV2aWV3cy1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjQwcHg7Ym90dG9tOi0xNXB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1yaWdodCAuZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLWlubmVyLmxheW91dC0xIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle3JpZ2h0OjI1cHg7Ym90dG9tOi0xNXB4fS5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1hbGlnbi1jZW50ZXIgLmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci1pbm5lci5sYXlvdXQtMiAuZXhhZC1nb29nbGUtcmV2aWV3cy1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjUwJTt0b3A6LTE1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLWJvdHRvbSAuZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLWlubmVyLmxheW91dC0yIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle2xlZnQ6NTAlO3RvcDotMTVweH0uZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtYWxpZ24tbGVmdCAuZXhhZC1nb29nbGUtcmV2aWV3cy13cmFwcGVyLWlubmVyLmxheW91dC0yIC5leGFkLWdvb2dsZS1yZXZpZXdzLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle2xlZnQ6NDBweDt0b3A6LTE1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWFsaWduLXJpZ2h0IC5leGFkLWdvb2dsZS1yZXZpZXdzLXdyYXBwZXItaW5uZXIubGF5b3V0LTIgLmV4YWQtZ29vZ2xlLXJldmlld3MtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7cmlnaHQ6MjVweDt0b3A6LTE1cHh9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLWltYWdlLWFzaWRle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLXRyYW5zaXRpb24tdG9wLXllczpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlci5leGFkLWdvb2dsZS1yZXZpZXdzLXRyYW5zaXRpb24tdG9wLXllc3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwcHgpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC13cmFwcGVyLmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtZG90cy1jZW50ZXIgLmV4YWQtc3dpcGVyLXBhZ2luYXRpb257bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1kb3RzLXJpZ2h0IC5leGFkLXN3aXBlci1wYWdpbmF0aW9ue21hcmdpbi1sZWZ0OmF1dG87dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS5leGFkLWdvb2dsZS1yZXZpZXdzLWNhcm91c2VsLXdyYXBwZXIuZXhhZC1nb29nbGUtcmV2aWV3cy1jYXJvdXNlbC1kb3RzLWxlZnQgLmV4YWQtc3dpcGVyLXBhZ2luYXRpb257bWFyZ2luLXJpZ2h0OmF1dG87dGV4dC1hbGlnbjpsZWZ0O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlciAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyIC5leGFkLWF1dGhvci1uYW1le2xpbmUtaGVpZ2h0OjI0cHh9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlciAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyIC5leGFkLWF1dGhvci1uYW1lIGF7bWFyZ2luOjA7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjBweDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZ29vZ2xlLXJldmlld3Mtd3JhcHBlciAuZXhhZC1nb29nbGUtcmV2aWV3cy1yZXZpZXdlci13cmFwcGVyIC5leGFkLWdvb2dsZS1yZXZpZXdzLXJldmlld2VyIC5leGFkLWdvb2dsZS1yZXZpZXdzLWRhdGV7bWFyZ2luOjA7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweH0uZXhhZC1nb29nbGUtcmV2aWV3LXRyYW5zaXRpb24tdG9wLXllc3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtd3JhcHBlciAuZXhhZC1nb29nbGUtcmV2aWV3LXRyYW5zaXRpb24tdG9wLXllczpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9LmV4YWQtZ29vZ2xlLXJldmlld3MtY2Fyb3VzZWwtd3JhcHBlciAuZXhhZC1kb3RzLWNvbnRhaW5lciAuZXhhZC1zd2lwZXItcGFnaW5hdGlvbiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zaXRpb246YWxsIDAuM3N9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1ob3Jpem9udGFsIC50d2VudHl0d2VudHktaGFuZGxlOmFmdGVyLC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktaG9yaXpvbnRhbCAudHdlbnR5dHdlbnR5LWhhbmRsZTpiZWZvcmUsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS12ZXJ0aWNhbCAudHdlbnR5dHdlbnR5LWhhbmRsZTphZnRlciwuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXZlcnRpY2FsIC50d2VudHl0d2VudHktaGFuZGxlOmJlZm9yZXtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6d2hpdGU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDozMH0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWhvcml6b250YWwgLnR3ZW50eXR3ZW50eS1oYW5kbGU6YWZ0ZXIsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1ob3Jpem9udGFsIC50d2VudHl0d2VudHktaGFuZGxlOmJlZm9yZXt3aWR0aDozcHg7aGVpZ2h0Ojk5OTlweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMS41cHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS12ZXJ0aWNhbCAudHdlbnR5dHdlbnR5LWhhbmRsZTphZnRlciwuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXZlcnRpY2FsIC50d2VudHl0d2VudHktaGFuZGxlOmJlZm9yZXt3aWR0aDo5OTk5cHg7aGVpZ2h0OjNweDt0b3A6NTAlO21hcmdpbi10b3A6LTEuNXB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWwsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1iZWZvcmUtbGFiZWwsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1hZnRlci1sYWJlbCwuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbCwuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LW92ZXJsYXl7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOjAuNXM7LW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOjAuNXM7dHJhbnNpdGlvbi1kdXJhdGlvbjowLjVzfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWwsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1iZWZvcmUtbGFiZWx7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7LW1vei10cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWw6YmVmb3JlLC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYmVmb3JlLWxhYmVsOmJlZm9yZXtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzowLjFlbX0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWFmdGVyLWxhYmVsOmJlZm9yZSwuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7bGluZS1oZWlnaHQ6MzhweDtwYWRkaW5nOjAgMjBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1ob3Jpem9udGFsIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWw6YmVmb3JlLC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktaG9yaXpvbnRhbCAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbDpiZWZvcmV7dG9wOjUwJTttYXJnaW4tdG9wOi0xOXB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktdmVydGljYWwgLnR3ZW50eXR3ZW50eS1hZnRlci1sYWJlbDpiZWZvcmUsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS12ZXJ0aWNhbCAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbDpiZWZvcmV7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTQ1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1kb3duLWFycm93LC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktbGVmdC1hcnJvdywuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXJpZ2h0LWFycm93LC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktdXAtYXJyb3d7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXI6NnB4IGluc2V0IHRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktbGVmdC1hcnJvdywuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXJpZ2h0LWFycm93e3RvcDo1MCU7bWFyZ2luLXRvcDotNnB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktZG93bi1hcnJvdywuZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXVwLWFycm93e2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi02cHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1jb250YWluZXJ7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3otaW5kZXg6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZX0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWNvbnRhaW5lciBpbWd7bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ZGlzcGxheTpibG9ja30uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWNvbnRhaW5lci5hY3RpdmUgLnR3ZW50eXR3ZW50eS1vdmVybGF5LC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktY29udGFpbmVyLmFjdGl2ZTpob3Zlci50d2VudHl0d2VudHktb3ZlcmxheXtiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCl9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1jb250YWluZXIuYWN0aXZlIC50d2VudHl0d2VudHktb3ZlcmxheSAudHdlbnR5dHdlbnR5LWFmdGVyLWxhYmVsLC5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktY29udGFpbmVyLmFjdGl2ZSAudHdlbnR5dHdlbnR5LW92ZXJsYXkgLnR3ZW50eXR3ZW50eS1iZWZvcmUtbGFiZWwsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1jb250YWluZXIuYWN0aXZlOmhvdmVyLnR3ZW50eXR3ZW50eS1vdmVybGF5IC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWwsLmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1jb250YWluZXIuYWN0aXZlOmhvdmVyLnR3ZW50eXR3ZW50eS1vdmVybGF5IC50d2VudHl0d2VudHktYmVmb3JlLWxhYmVse29wYWNpdHk6MH0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWNvbnRhaW5lciAqey13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbHtvcGFjaXR5OjB9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1iZWZvcmUtbGFiZWw6YmVmb3Jle2NvbnRlbnQ6YXR0cihkYXRhLWNvbnRlbnQpfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWx7b3BhY2l0eTowfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWw6YmVmb3Jle2NvbnRlbnQ6YXR0cihkYXRhLWNvbnRlbnQpfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktaG9yaXpvbnRhbCAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbDpiZWZvcmV7bGVmdDoxMHB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktaG9yaXpvbnRhbCAudHdlbnR5dHdlbnR5LWFmdGVyLWxhYmVsOmJlZm9yZXtyaWdodDoxMHB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktdmVydGljYWwgLnR3ZW50eXR3ZW50eS1iZWZvcmUtbGFiZWw6YmVmb3Jle3RvcDoxMHB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktdmVydGljYWwgLnR3ZW50eXR3ZW50eS1hZnRlci1sYWJlbDpiZWZvcmV7Ym90dG9tOjEwcHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1vdmVybGF5ey13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kOy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kO3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZDtiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCk7ei1pbmRleDoyNX0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LW92ZXJsYXk6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsIDAsIDAsIDAuNSl9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1vdmVybGF5OmhvdmVyIC50d2VudHl0d2VudHktYWZ0ZXItbGFiZWx7b3BhY2l0eToxfS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktb3ZlcmxheTpob3ZlciAudHdlbnR5dHdlbnR5LWJlZm9yZS1sYWJlbHtvcGFjaXR5OjF9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1iZWZvcmV7ei1pbmRleDoyMH0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWFmdGVye3otaW5kZXg6MTB9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1oYW5kbGV7aGVpZ2h0OjM4cHg7d2lkdGg6MzhweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO21hcmdpbi1sZWZ0Oi0yMnB4O21hcmdpbi10b3A6LTIycHg7Ym9yZGVyOjNweCBzb2xpZCB3aGl0ZTstd2Via2l0LWJvcmRlci1yYWRpdXM6MTAwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czoxMDAwcHg7Ym9yZGVyLXJhZGl1czoxMDAwcHg7ei1pbmRleDo0MDtjdXJzb3I6cG9pbnRlcn0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LWhvcml6b250YWwgLnR3ZW50eXR3ZW50eS1oYW5kbGU6YmVmb3Jle2JvdHRvbTo1MCU7bWFyZ2luLWJvdHRvbToyMnB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktaG9yaXpvbnRhbCAudHdlbnR5dHdlbnR5LWhhbmRsZTphZnRlcnt0b3A6NTAlO21hcmdpbi10b3A6MjJweH0uZXhhZC1pbWFnZS1jb21wYXJpc2lvbiAudHdlbnR5dHdlbnR5LXZlcnRpY2FsIC50d2VudHl0d2VudHktaGFuZGxlOmJlZm9yZXtsZWZ0OjUwJTttYXJnaW4tbGVmdDoyMnB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktdmVydGljYWwgLnR3ZW50eXR3ZW50eS1oYW5kbGU6YWZ0ZXJ7cmlnaHQ6NTAlO21hcmdpbi1yaWdodDoyMnB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktbGVmdC1hcnJvd3tib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHdoaXRlO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xNnB4fS5leGFkLWltYWdlLWNvbXBhcmlzaW9uIC50d2VudHl0d2VudHktcmlnaHQtYXJyb3d7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIHdoaXRlO3JpZ2h0OjUwJTttYXJnaW4tcmlnaHQ6LTE2cHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS11cC1hcnJvd3tib3JkZXItYm90dG9tOjZweCBzb2xpZCB3aGl0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTE2cHh9LmV4YWQtaW1hZ2UtY29tcGFyaXNpb24gLnR3ZW50eXR3ZW50eS1kb3duLWFycm93e2JvcmRlci10b3A6NnB4IHNvbGlkIHdoaXRlO2JvdHRvbTo1MCU7bWFyZ2luLWJvdHRvbTotMTZweH0uZXhhZC1pbWFnZS1tYWduaWZ5e3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOm5vbmV9LmV4YWQtbWFnbmlmeS1sYXJnZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7ZGlzcGxheTpub25lfS5leGFkLW1hZ25pZnktc21hbGwgPiBpbWd7ZGlzcGxheTpibG9jazt6LWluZGV4Oi0xfS5leGFkLWluZm9ib3gtYWxpZ24tbGVmdHt0ZXh0LWFsaWduOmxlZnR9LmV4YWQtaW5mb2JveC1hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtaW5mb2JveC1hbGlnbi1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5leGFkLWluZm9ib3gtYWxpZ24tbGVmdCAuZXhhZC1pbmZvYm94LWljb257bWFyZ2luLXJpZ2h0OmF1dG87dGV4dC1hbGlnbjpsZWZ0fS5leGFkLWluZm9ib3gtYWxpZ24tY2VudGVyIC5leGFkLWluZm9ib3gtaWNvbnttYXJnaW46MCBhdXRvO3RleHQtYWxpZ246Y2VudGVyfS5leGFkLWluZm9ib3gtYWxpZ24tcmlnaHQgLmV4YWQtaW5mb2JveC1pY29ue21hcmdpbi1sZWZ0OmF1dG87dGV4dC1hbGlnbjpyaWdodH0uZXhhZC1pbmZvYm94LWl0ZW17cG9zaXRpb246cmVsYXRpdmV9LnNpbXBsZS10cmFuc2l0aW9uOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX0uc2ltcGxlLXRyYW5zaXRpb257dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KTstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9Lnpvb20tdHJhbnNpdGlvbntwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7ei1pbmRleDoxfS56b29tLXRyYW5zaXRpb246OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zaXRpb246MC4zcyBlYXNlO3RyYW5zaXRpb246MC4zcyBlYXNlO3otaW5kZXg6LTE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApfS56b29tLXRyYW5zaXRpb246aG92ZXI6OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LmV4YWQtaW5mb2JveCAuZXhhZC1pbmZvYm94LWl0ZW17cGFkZGluZzozMHB4O3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1pbmZvYm94IC5leGFkLWluZm9ib3gtaXRlbS5leGFkLWluZm9ib3gtZW5hYmxlLWJveC15ZXMgLmV4YWQtaW5mb2JveC1pY29ue2JvcmRlci1yYWRpdXM6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtaW5mb2JveCAuZXhhZC1pbmZvYm94LWl0ZW0gLmV4YWQtaW5mb2JveC1pY29uLnN0eWxlXzF7LXdlYmtpdC1hbmltYXRpb246Y2xpcC0xIDEwcyBsaW5lYXIgaW5maW5pdGUgYWx0ZXJuYXRlIGZvcndhcmRzO2FuaW1hdGlvbjpjbGlwLTEgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHN9LmV4YWQtaW5mb2JveCAuZXhhZC1pbmZvYm94LWl0ZW0gLmV4YWQtaW5mb2JveC1pY29uLnN0eWxlXzJ7LXdlYmtpdC1hbmltYXRpb246Y2xpcC0yIDEwcyBsaW5lYXIgaW5maW5pdGUgYWx0ZXJuYXRlIGZvcndhcmRzO2FuaW1hdGlvbjpjbGlwLTIgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHN9LmV4YWQtaW5mb2JveCAuZXhhZC1pbmZvYm94LWl0ZW0gLmV4YWQtaW5mb2JveC1pY29uLnN0eWxlXzN7LXdlYmtpdC1hbmltYXRpb246Y2xpcC0zIDEwcyBsaW5lYXIgaW5maW5pdGUgYWx0ZXJuYXRlIGZvcndhcmRzO2FuaW1hdGlvbjpjbGlwLTMgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHN9LmV4YWQtaW5mb2JveCAuZXhhZC1pbmZvYm94LWl0ZW0uZXhhZC1pbmZvYm94LWVuYWJsZS1ib3gteWVzIC5leGFkLWluZm9ib3gtaWNvbjo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjUwJTtsZWZ0OjA7dG9wOjA7ei1pbmRleDotMTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zaXRpb246MC4zcyBlYXNlfS5leGFkLWluZm9ib3ggLmV4YWQtaW5mb2JveC1pdGVtLmV4YWQtaW5mb2JveC1lbmFibGUtYm94LXllcyAuZXhhZC1pbmZvYm94LWljb24gaXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1pbmZvYm94IC5leGFkLWluZm9ib3gtaXRlbS5leGFkLWluZm9ib3gtZW5hYmxlLWJveC15ZXMgLmV4YWQtaW5mb2JveC1pY29uIHN2Z3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1pbmZvYm94IC5leGFkLWluZm9ib3gtaXRlbS5leGFkLWluZm9ib3gtZW5hYmxlLWJveC15ZXMgLmV4YWQtaW5mb2JveC1pY29uIGltZ3toZWlnaHQ6NDBweDt3aWR0aDo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSl9LmV4YWQtaW5mb2JveC1jb250ZW50IGF7ZGlzcGxheTpibG9ja30uZXhhZC1pbmZvYm94LWNvbnRlbnQtdGl0bGV7Zm9udC1zaXplOjMwcHg7bGluZS1oZWlnaHQ6MS41O2ZvbnQtd2VpZ2h0OjYwMDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtaW5mb2JveC1jb250ZW50LWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZToxNnB4fS5leGFkLWluZm9ib3ggLmV4YWQtaW5mb2JveC1pdGVtIC5leGFkLWluZm9ib3gtY29udGVudCAuZXhhZC1pbmZvYm94LWNvbnRlbnQtZGVzY3JpcHRpb257bGluZS1oZWlnaHQ6MS41fS5leGFkLWluZm9ib3ggLmV4YWQtaW5mb2JveC1pdGVtOmhvdmVyIC5leGFkLWluZm9ib3gtaWNvbjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0uZXhhZC1pbmZvYm94LWljb24tcG9zaXRpb24tbGVmdCwuZXhhZC1pbmZvYm94LWljb24tcG9zaXRpb24tcmlnaHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0cmFuc2l0aW9uOjAuM3MgZWFzZX0uZXhhZC1pbmZvYm94LWljb24tcG9zaXRpb24tbGVmdCAuZXhhZC1pbmZvYm94LWNvbnRlbnQsLmV4YWQtaW5mb2JveC1pY29uLXBvc2l0aW9uLXJpZ2h0IC5leGFkLWluZm9ib3gtY29udGVudHtmbGV4LWJhc2lzOmNhbGMoMTAwJSAtIDEwMHB4KX0uZXhhZC1pbmZvYm94LWljb24tcG9zaXRpb24tcmlnaHQgLmV4YWQtaW5mb2JveC1jb250ZW50e29yZGVyOjF9LmV4YWQtaW5mb2JveC1pY29uLXBvc2l0aW9uLXJpZ2h0IC5leGFkLWluZm9ib3gtaWNvbntvcmRlcjoyfUBrZXlmcmFtZXMgY2xpcC0xezAlLDEwMCV7Ym9yZGVyLXJhZGl1czo2MyUgMzclIDU0JSA0NiUgLyA1NSUgNDglIDUyJSA0NSV9MTQle2JvcmRlci1yYWRpdXM6NDAlIDYwJSA1NCUgNDYlIC8gNDklIDYwJSA0MCUgNTElfTI4JXtib3JkZXItcmFkaXVzOjU0JSA0NiUgMzglIDYyJSAvIDQ5JSA3MCUgMzAlIDUxJX00MiV7Ym9yZGVyLXJhZGl1czo2MSUgMzklIDU1JSA0NSUgLyA2MSUgMzglIDYyJSAzOSV9NTYle2JvcmRlci1yYWRpdXM6NjElIDM5JSA2NyUgMzMlIC8gNzAlIDUwJSA1MCUgMzAlfTcwJXtib3JkZXItcmFkaXVzOjUwJSA1MCUgMzQlIDY2JSAvIDU2JSA2OCUgMzIlIDQ0JX04NCV7Ym9yZGVyLXJhZGl1czo0NiUgNTQlIDUwJSA1MCUgLyAzNSUgNjElIDM5JSA2NSV9fUBrZXlmcmFtZXMgY2xpcC0yezAlLDEwMCV7Ym9yZGVyLXJhZGl1czozMCUgNzAlIDcwJSAzMCUgLyAzMCUgMzAlIDcwJSA3MCV9MjUle2JvcmRlci1yYWRpdXM6NTglIDQyJSA3NSUgMjUlIC8gNzYlIDQ2JSA1NCUgMjQlfTUwJXtib3JkZXItcmFkaXVzOjUwJSA1MCUgMzMlIDY3JSAvIDU1JSAyNyUgNzMlIDQ1JX03NSV7Ym9yZGVyLXJhZGl1czozMyUgNjclIDU4JSA0MiUgLyA2MyUgNjglIDMyJSAzNyV9fUBrZXlmcmFtZXMgY2xpcC0zezAlLDEwMCV7Ym9yZGVyLXJhZGl1czozMyUgNjclIDU4JSA0MiUgLyA2MyUgNjglIDMyJSAzNyV9MjAle2JvcmRlci1yYWRpdXM6NDUlIDU1JSA2MiUgMzglIC8gNTMlIDUxJSA0OSUgNDclfTQwJXtib3JkZXItcmFkaXVzOjQ1JSA1NSUgNDklIDUxJSAvIDM2JSA1MSUgNDklIDY0JX02MCV7Ym9yZGVyLXJhZGl1czo2MCUgNDAlIDU3JSA0MyUgLyA0NyUgNjIlIDM4JSA1MyV9ODAle2JvcmRlci1yYWRpdXM6NjAlIDQwJSAzMiUgNjglIC8gMzglIDM2JSA2NCUgNjIlfX0uZXhhZC1saXN0LWdyb3VwLXdyYXBwZXJ7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZX0uZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlci5sYXlvdXRfMXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5leGFkLWxpc3QtZ3JvdXAgLmV4YWQtbGlzdC1ncm91cC13cmFwcGVyLmxheW91dF8ye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LmV4YWQtbGlzdC1ncm91cCAuZXhhZC1saXN0LWdyb3VwLXdyYXBwZXIgLmV4YWQtbGlzdC1ncm91cC1pdGVtLC5leGFkLWxpc3QtZ3JvdXAgLmV4YWQtbGlzdC1ncm91cC13cmFwcGVyIC5leGFkLWxpc3QtZ3JvdXAtaXRlbSBhe3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjE7ZGlzcGxheTpmbGV4fS5leGFkLWxpc3QtZ3JvdXAgLmV4YWQtbGlzdC1ncm91cC13cmFwcGVyIC5leGFkLWxpc3QtZ3JvdXAtaXRlbS5leGFkLWljb24tY2VudGVyLC5leGFkLWxpc3QtZ3JvdXAgLmV4YWQtbGlzdC1ncm91cC13cmFwcGVyIC5leGFkLWxpc3QtZ3JvdXAtaXRlbS5leGFkLWljb24tY2VudGVyIGF7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5leGFkLWxpc3QtZ3JvdXAgLmV4YWQtbGlzdC1ncm91cC13cmFwcGVyIC5leGFkLWxpc3QtZ3JvdXAtaXRlbS5leGFkLWljb24tcmlnaHQgLmV4YWQtbGlzdC1ncm91cC1pY29ue29yZGVyOjJ9LmV4YWQtbGlzdC1ncm91cCAuZXhhZC1saXN0LWdyb3VwLXdyYXBwZXIgLmV4YWQtbGlzdC1ncm91cC1pdGVtIC5leGFkLWxpc3QtZ3JvdXAtaWNvbiAuZXhhZC1saXN0LWdyb3VwLWljb24taW1hZ2UgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0uZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlciAuZXhhZC1saXN0LWdyb3VwLWl0ZW0gLmV4YWQtbGlzdC1ncm91cC1pY29uIC5leGFkLWxpc3QtZ3JvdXAtaWNvbi1pbWFnZXtkaXNwbGF5OmZsZXh9LmV4YWQtbGlzdC1ncm91cCAuZXhhZC1saXN0LWdyb3VwLXdyYXBwZXIubGF5b3V0XzEgLmV4YWQtbGlzdC1ncm91cC1pdGVtOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7Y29udGVudDonJztsZWZ0OjB9LmV4YWQtbGlzdC1ncm91cCAuZXhhZC1saXN0LWdyb3VwLXdyYXBwZXIubGF5b3V0XzIgLmV4YWQtbGlzdC1ncm91cC1pdGVtOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7aGVpZ2h0OjEwMCU7Y29udGVudDonJzt0b3A6MH0uZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlciAuZXhhZC1saXN0LWdyb3VwLWl0ZW0gLmV4YWQtbGlzdC1ncm91cC1pY29uLnllc3twb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlciAuZXhhZC1saXN0LWdyb3VwLWl0ZW0gLmV4YWQtbGlzdC1ncm91cC1pY29uLnllcyAuZXhhZC1saXN0LWdyb3VwLWljb24taW1hZ2UsLmV4YWQtbGlzdC1ncm91cCAuZXhhZC1saXN0LWdyb3VwLXdyYXBwZXIgLmV4YWQtbGlzdC1ncm91cC1pdGVtIC5leGFkLWxpc3QtZ3JvdXAtaWNvbi55ZXMgLmV4YWQtbGlzdC1ncm91cC1pY29uLW51bWJlciwuZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlciAuZXhhZC1saXN0LWdyb3VwLWl0ZW0gLmV4YWQtbGlzdC1ncm91cC1pY29uLnllcyBpe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlciAuZXhhZC1saXN0LWdyb3VwLWl0ZW0gLmV4YWQtbGlzdC1ncm91cC1pY29uLnllcyAuZXhhZC1saXN0LWdyb3VwLWljb24tbnVtYmVye2xpbmUtaGVpZ2h0OjB9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsuZXhhZC1saXN0LWdyb3VwIC5leGFkLWxpc3QtZ3JvdXAtd3JhcHBlci5sYXlvdXRfMntmbGV4LWRpcmVjdGlvbjpjb2x1bW59fS5leGFkLWxvZ28tYm94IC5leGFkLWxvZ28taXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjJweDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtbG9nby1ib3guZXhhZC1sb2dvLWxlZnQgLmV4YWQtbG9nby1pdGVte3RleHQtYWxpZ246bGVmdH0uZXhhZC1sb2dvLWJveC5leGFkLWxvZ28tbGVmdCAuZXhhZC1sb2dvLWl0ZW0uZXhhZC1sb2dvLWl0ZW0tbWF4LWhlaWdodC15ZXN7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmV4YWQtbG9nby1ib3guZXhhZC1sb2dvLWNlbnRlciAuZXhhZC1sb2dvLWl0ZW17dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtbG9nby1ib3guZXhhZC1sb2dvLWNlbnRlciAuZXhhZC1sb2dvLWl0ZW0uZXhhZC1sb2dvLWl0ZW0tbWF4LWhlaWdodC15ZXN7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZXhhZC1sb2dvLWJveC5leGFkLWxvZ28tcmlnaHQgLmV4YWQtbG9nby1pdGVte3RleHQtYWxpZ246cmlnaHR9LmV4YWQtbG9nby1ib3guZXhhZC1sb2dvLXJpZ2h0IC5leGFkLWxvZ28taXRlbS5leGFkLWxvZ28taXRlbS1tYXgtaGVpZ2h0LXllc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmV4YWQtbG9nby1ib3ggLmV4YWQtbG9nby1pdGVtIGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmV4YWQtbG9nby1pdGVtLmV4YWQtbG9nby1pdGVtLW1heC1oZWlnaHQteWVze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50e3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zc30uZXhhZC1sb2dvLWNhcm91c2VsLWVsZW1lbnQuc2xpY2staW5pdGlhbGl6ZWR7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MX0uZXhhZC1sb2dvLWNhcm91c2VsLWVsZW1lbnQgLmV4YWQtbG9nby1jYXJvdXNlbC1pdGVte2Rpc3BsYXk6bm9uZX0uZXhhZC1sb2dvLWNhcm91c2VsLWVsZW1lbnQgLmV4YWQtbG9nby1jYXJvdXNlbC1pdGVtOmZpcnN0LWNoaWxke2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTpoaWRkZW59LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50LnNsaWNrLWluaXRpYWxpemVkIC5leGFkLWxvZ28tY2Fyb3VzZWwtaXRlbXtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6dmlzaWJsZX0uZXhhZC1sb2dvLWNhcm91c2VsIC5zbGljay1kb3Rze3dpZHRoOmF1dG87ZGlzcGxheTp0YWJsZTttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZX0uZXhhZC1sb2dvLWNhcm91c2VsIC5zbGljay1kb3RzIGxpe2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOmluaGVyaXQ7b3V0bGluZTpub25lO2JvcmRlcjowfS5leGFkLWxvZ28tY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGkgYnV0dG9ue3BhZGRpbmc6aW5oZXJpdDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7dGV4dC1pbmRlbnQ6LTk5OTlweH0uZXhhZC1sb2dvLWNhcm91c2VsLWxlZnQgaW1ne21hcmdpbi1yaWdodDphdXRvfS5leGFkLWxvZ28tY2Fyb3VzZWwtY2VudGVyIGltZ3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5leGFkLWxvZ28tY2Fyb3VzZWwtcmlnaHQgaW1ne21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtbG9nby1jYXJvdXNlbC1uZXh0LC5leGFkLWxvZ28tY2Fyb3VzZWwtcHJldntwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50IC5leGFkLWxvZ28tY2Fyb3VzZWwtbmV4dCBpLC5leGFkLWxvZ28tY2Fyb3VzZWwtcHJldiBpe3RvcDo1MCU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7Zm9udC1zaXplOjIwcHh9LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50IC5leGFkLWxvZ28tY2Fyb3VzZWwtbmV4dDpob3ZlciwuZXhhZC1sb2dvLWNhcm91c2VsLWVsZW1lbnQgLmV4YWQtbG9nby1jYXJvdXNlbC1wcmV2OmhvdmVye2JhY2tncm91bmQ6I2ZmZn0uZXhhZC1sb2dvLWNhcm91c2VsLWVsZW1lbnQgLmV4YWQtbG9nby1jYXJvdXNlbC1uZXh0OmhvdmVyIGksLmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50IC5leGFkLWxvZ28tY2Fyb3VzZWwtcHJldjpob3ZlciBpe2NvbG9yOiMwMDAwMDB9LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50IC5leGFkLWxvZ28tY2Fyb3VzZWwtcHJldnt6LWluZGV4OjE7dG9wOjUwJTtsZWZ0Oi04MHB4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmV4YWQtbG9nby1jYXJvdXNlbC1lbGVtZW50IC5leGFkLWxvZ28tY2Fyb3VzZWwtbmV4dHt6LWluZGV4OjE7dG9wOjUwJTtyaWdodDotODBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5leGFkLWxvZ28tY2Fyb3VzZWwgLnNsaWNrLWRvdHN7d2lkdGg6YXV0bztkaXNwbGF5OnRhYmxlO21hcmdpbjowIGF1dG87cGFkZGluZzowO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5leGFkLWxvZ28tY2Fyb3VzZWwtZWxlbWVudC5leGFkLWxvZ28tY2Fyb3VzZWwtbWF4LWhlaWdodC15ZXMgLmV4YWQtbG9nby1jYXJvdXNlbC1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtY2Fyb3VzZWwtaXRlbSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dCwuZXhhZC1jYXJvdXNlbC1pdGVtIC5leGFkLWNhcm91c2VsLW5hdi1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtoZWlnaHQ6NjBweDt3aWR0aDo2MHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3otaW5kZXg6MX0uZXhhZC1jYXJvdXNlbC1pdGVtIC5leGFkLWNhcm91c2VsLW5hdi1uZXh0IGksLmV4YWQtY2Fyb3VzZWwtaXRlbSAuZXhhZC1jYXJvdXNlbC1uYXYtcHJldiBpe3RvcDo1MCU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7Zm9udC1zaXplOjIwcHh9LmV4YWQtY2Fyb3VzZWwtaXRlbSAuZXhhZC1jYXJvdXNlbC1uYXYtbmV4dDpob3ZlciwuZXhhZC1jYXJvdXNlbC1pdGVtIC5leGFkLWNhcm91c2VsLW5hdi1wcmV2OmhvdmVye2NvbG9yOiMwYTE3MjR9LmV4YWQtY2Fyb3VzZWwtaXRlbSAuZXhhZC1jYXJvdXNlbC1uYXYtcHJldntsZWZ0Oi03MHB4fS5leGFkLWNhcm91c2VsLWl0ZW0gLmV4YWQtY2Fyb3VzZWwtbmF2LW5leHR7cmlnaHQ6LTcwcHh9LmV4YWQtZXhjbHVzaXZlLWhlYWRpbmcgLmV4YWQtZXhjbHVzaXZlLWhlYWRpbmctdGl0bGUgYXt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1leGNsdXNpdmUtaGVhZGluZyAuZXhhZC1leGNsdXNpdmUtaGVhZGluZy10aXRsZXttYXJnaW46MCBhdXRvfS5leGFkLWV4Y2x1c2l2ZS1oZWFkaW5nIC5leGFkLWV4Y2x1c2l2ZS1oZWFkaW5nLWRlc2NyaXB0aW9ue2xpbmUtaGVpZ2h0OjI2cHg7bWFyZ2luOjB9LmV4YWQtaGVhZGluZy1pY29uLWJveC15ZXMgLmV4YWQtaGVhZGluZy1pY29ue3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLWhlYWRpbmctaWNvbi1ib3gteWVzIC5leGFkLWhlYWRpbmctaWNvbiBpLC5leGFkLWhlYWRpbmctaWNvbi1ib3gteWVzIC5leGFkLWhlYWRpbmctaWNvbiBzdmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5leGFkLWV4Y2x1c2l2ZS1oZWFkaW5nLnBhcmFsbGF4IC5leGFkLWV4Y2x1c2l2ZS1oZWFkaW5nLXdyYXBwZXIgLmV4YWQtZXhjbHVzaXZlLWhlYWRpbmctdGl0bGV7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDtiYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0uZXhhZC1leGNsdXNpdmUtaGVhZGluZy5zZXBhcmF0b3IgLmV4YWQtZXhjbHVzaXZlLWhlYWRpbmctd3JhcHBlciAuZXhhZC1leGNsdXNpdmUtaGVhZGluZy10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1oZWFkaW5nLXRleHQtYmFja2dyb3VuZCAuZXhhZC1leGNsdXNpdmUtaGVhZGluZy10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LmV4YWQtaGVhZGluZy10ZXh0LWJhY2tncm91bmQgLmV4YWQtZXhjbHVzaXZlLWhlYWRpbmctdGl0bGU6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6YXR0cihkYXRhLWNvbnRlbnQpO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7d2lkdGg6MTAwJTt6LWluZGV4Oi0xO2xldHRlci1zcGFjaW5nOjNweDtsaW5lLWhlaWdodDo1MHB4fS5leGFkLWhlYWRpbmctaW1hZ2UtZ3JhZGllbnQgLmV4YWQtZXhjbHVzaXZlLWhlYWRpbmctdGl0bGV7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudH0uZXhhZC1oZWFkaW5nLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtbW9kYWwtYnV0dG9uIC5leGFkLW1vZGFsLWltYWdlLWFjdGlvbntkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoxO292ZXJmbG93OmhpZGRlbn0uZXhhZC1tb2RhbC1idXR0b24gLmV4YWQtbW9kYWwtaW1hZ2UtYWN0aW9uOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcn0uZXhhZC1tb2RhbC1idXR0b24gLmV4YWQtbW9kYWwtaW1hZ2UtYWN0aW9uOmhvdmVyOjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MTt6LWluZGV4Oi0xfS50b3AtdG8tbWlkZGxley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNjAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC02MCUpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvLmJvdHRvbS10by1taWRkbGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC0zMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTMwJSk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLW1vZGFsLWl0ZW0uYWN0aXZlLm1vZGFsLXZpbWVvLmJvdHRvbS10by1taWRkbGV7ei1pbmRleDo5OTk5Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfS5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW8ucmlnaHQtdG8tbWlkZGxley13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTMwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMzAlLCAtNTAlKX0uZXhhZC1tb2RhbC1pdGVtLmFjdGl2ZS5tb2RhbC12aW1lby5yaWdodC10by1taWRkbGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7ei1pbmRleDo5OTk5fS5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW8ubGVmdC10by1taWRkbGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC03MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTcwJSwgLTUwJSk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLW1vZGFsLWl0ZW0uYWN0aXZlLm1vZGFsLXZpbWVvLmxlZnQtdG8tbWlkZGxle3otaW5kZXg6OTk5OTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvLnpvb20taW57LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjUpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtbW9kYWwtaXRlbS5hY3RpdmUubW9kYWwtdmltZW8uem9vbS1pbnt6LWluZGV4Ojk5OTk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSl9LmV4YWQtbW9kYWwtaXRlbS5tb2RhbC12aW1lby56b29tLW91dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS41KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuNSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1tb2RhbC1pdGVtLmFjdGl2ZS5tb2RhbC12aW1lby56b29tLW91dHt6LWluZGV4Ojk5OTk7ZGlzcGxheTpibG9jazstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvLmxlZnQtcm90YXRle29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuOHMgZWFzZTt0cmFuc2l0aW9uOmFsbCAwLjhzIGVhc2U7LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwO3BlcnNwZWN0aXZlOjEwMDA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZVgoOTBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlWCg5MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyfS5leGFkLW1vZGFsLWl0ZW0uYWN0aXZlLm1vZGFsLXZpbWVvLmxlZnQtcm90YXRle29wYWNpdHk6MTt6LWluZGV4Ojk5OTk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGVYKDApfS5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW8gLmV4YWQtbW9kYWwtY29udGVudCAuZXhhZC1jbG9zZS1idG57cG9zaXRpb246YWJzb2x1dGU7dG9wOi00MHB4O3JpZ2h0Oi00MHB4O2N1cnNvcjpwb2ludGVyO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7Ym9yZGVyLXJhZGl1czo1MCV9LmV4YWQtbW9kYWwtaXRlbS5tb2RhbC12aW1lbyAuZXhhZC1tb2RhbC1jb250ZW50IC5leGFkLWNsb3NlLWJ0biBzcGFue2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtY2xvc2UtYnRuIHNwYW46OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoycHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kOiNmZmY7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIHJvdGF0ZSg0NWRlZyk7dG9wOjUwJTtsZWZ0OjUwJX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtY2xvc2UtYnRuIHNwYW46OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjIwcHg7d2lkdGg6MnB4O2JhY2tncm91bmQ6I2ZmZjt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgcm90YXRlKDQ1ZGVnKTt0b3A6NTAlO2xlZnQ6NTAlfS5leGFkLW1vZGFsLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowO3otaW5kZXg6LTE7YmFja2dyb3VuZDpyZ2JhKDAsIDAsIDAsIDAuNSk7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO2Rpc3BsYXk6bm9uZX0uZXhhZC1tb2RhbC1vdmVybGF5LmFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxMDAwO2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLW1vZGFsLWl0ZW0uaW1hZ2UtZ2FsbGVyeSAuZXhhZC1tb2RhbC1lbGVtZW50e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0uZXhhZC1tb2RhbC1pdGVtLmltYWdlLWdhbGxlcnkgLmV4YWQtbW9kYWwtZWxlbWVudC5jb2x1bW4tb25lIC5leGFkLW1vZGFsLWVsZW1lbnQtY2FyZHt3aWR0aDoxMDAlfS5leGFkLW1vZGFsLWl0ZW0uaW1hZ2UtZ2FsbGVyeSAuZXhhZC1tb2RhbC1lbGVtZW50LmNvbHVtbi10d28gLmV4YWQtbW9kYWwtZWxlbWVudC1jYXJke3dpZHRoOjUwJX0uZXhhZC1tb2RhbC1pdGVtLmltYWdlLWdhbGxlcnkgLmV4YWQtbW9kYWwtZWxlbWVudC5jb2x1bW4tdGhyZWUgLmV4YWQtbW9kYWwtZWxlbWVudC1jYXJke3dpZHRoOjMzLjMzJX0uZXhhZC1tb2RhbC1pdGVtLmltYWdlLWdhbGxlcnkgLmV4YWQtbW9kYWwtZWxlbWVudC5jb2x1bW4tZm91ciAuZXhhZC1tb2RhbC1lbGVtZW50LWNhcmR7d2lkdGg6MjUlfS5leGFkLW1vZGFsLWl0ZW0uaW1hZ2UtZ2FsbGVyeSAuZXhhZC1tb2RhbC1lbGVtZW50LmNvbHVtbi1maXZlIC5leGFkLW1vZGFsLWVsZW1lbnQtY2FyZHt3aWR0aDoyMCV9LmV4YWQtbW9kYWwtaXRlbS5pbWFnZS1nYWxsZXJ5IC5leGFkLW1vZGFsLWVsZW1lbnQuY29sdW1uLXNpeCAuZXhhZC1tb2RhbC1lbGVtZW50LWNhcmR7d2lkdGg6MTYuNjYlfS5leGFkLW1vZGFsLWl0ZW17cG9zaXRpb246Zml4ZWQgIWltcG9ydGFudDt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpfS5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNjAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC02MCUpO2hlaWdodDphdXRvOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTt2aXNpYmlsaXR5OmhpZGRlbn1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW97aGVpZ2h0OjEwMCV9LmV4YWQtbW9kYWwtaXRlbS5tb2RhbC12aW1lbzo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfX0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtbW9kYWwtZWxlbWVudCBpbWd7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtbW9kYWwtZWxlbWVudCAuZXhhZC1tb2RhbC1lbGVtZW50LWNhcmQgLmV4YWQtbW9kYWwtZWxlbWVudC1jYXJkLWJvZHkgcHttYXJnaW46MH0uZXhhZC1tb2RhbC1pdGVtLm1vZGFsLXZpbWVvIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtbW9kYWwtZWxlbWVudCAuZXhhZC1tb2RhbC1lbGVtZW50LWNhcmQgaW1nLC5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW8taW1nLWZsdWlkIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtbW9kYWwtZWxlbWVudCBpbWd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5leGFkLW1vZGFsLWl0ZW0ubW9kYWwtdmltZW8gLmV4YWQtbW9kYWwtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1tb2RhbC1pdGVtIC5leGFkLW1vZGFsLWNvbnRlbnQgLmV4YWQtbW9kYWwtZWxlbWVudCBpZnJhbWV7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5leGFkLW1vZGFsLWl0ZW0uYWN0aXZlLm1vZGFsLXZpbWVve29wYWNpdHk6MTt6LWluZGV4OjE2Nzc3MjIxICFpbXBvcnRhbnQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dmlzaWJpbGl0eTp2aXNpYmxlfS5leGFkLW1vZGFsLWJ1dHRvbi5leGFkLW1vZGFsLWJ0bi1maXhlZC13aWR0aC15ZXMgLmV4YWQtbW9kYWwtaW1hZ2UtYWN0aW9ue3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLW1vZGFsLWJ1dHRvbi5leGFkLW1vZGFsLWJ0bi1maXhlZC13aWR0aC15ZXMgLmV4YWQtbW9kYWwtaW1hZ2UtYWN0aW9uIHNwYW57cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3otaW5kZXg6MX0uZXhhZC1tb2RhbC13cmFwcGVyIC5leGFkLW1vZGFsLWl0ZW0uZXhhZC1jb250ZW50LW92ZXJmbG93LXgte292ZXJmbG93LXg6aGlkZGVufS5leGFkLW1vZGFsLXdyYXBwZXIgLmV4YWQtbW9kYWwtaXRlbS5leGFkLWNvbnRlbnQtb3ZlcmZsb3cteS17b3ZlcmZsb3cteTpzY3JvbGx9LmV4YWQtbmV3cy10aWNrZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHh9LmV4YWQtbmV3cy10aWNrZXIgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9LmV4YWQtbmV3cy10aWNrZXIuYm4tZml4ZWQtdG9we3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowO3RvcDowfS5leGFkLW5ld3MtdGlja2VyLmJuLWZpeGVkLWJvdHRvbXtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0uZXhhZC1uZXdzLXRpY2tlciAuZXhhZC1ibi1sYWJlbHtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDozO3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5OmZsZXg7d2lkdGg6YXV0bzt1c2VyLXNlbGVjdDpub25lO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5leGFkLW5ld3MtdGlja2VyIC5leGFkLWJuLWxhYmVse3BhZGRpbmc6MCAxNXB4O2NvbG9yOiNGRkZ9LmV4YWQtbmV3cy10aWNrZXIgLmV4YWQtYm4tbGFiZWwsLmV4YWQtbmV3cy10aWNrZXIgLmV4YWQtYm4tbGFiZWwueWVzLXNtYWxsOmFmdGVye30uZXhhZC1uZXdzLXRpY2tlciAuZXhhZC1ibi1sYWJlbC55ZXMtc21hbGw6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJzt0b3A6NTAlO3JpZ2h0Oi01cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O3otaW5kZXg6LTF9LmV4YWQtbmV3cy10aWNrZXIgLmV4YWQtbnQtbmV3c3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7cmlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59LmV4YWQtbmV3cy10aWNrZXIgLmV4YWQtbnQtbmV3cyB1bHtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7d2lkdGg6MTAwJX0uZXhhZC1uZXdzLXRpY2tlciAuZXhhZC1udC1uZXdzIHVsIGxpe2xpc3Qtc3R5bGU6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIDAuMnMgbGluZWFyOy1tb3otdHJhbnNpdGlvbjpjb2xvciAwLjJzIGxpbmVhcjstby10cmFuc2l0aW9uOmNvbG9yIDAuMnMgbGluZWFyO3RyYW5zaXRpb246Y29sb3IgMC4ycyBsaW5lYXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7Y29sb3I6IzMzMztwYWRkaW5nOjAgMTVweDttYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0fS5leGFkLW5ld3MtdGlja2VyIC5leGFkLW50LW5ld3MgdWwgbGkgYXt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojMzMzO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVufS5leGFkLW5ld3MtdGlja2VyIC5leGFkLW50LW5ld3MgdWwgbGkgYTpob3Zlcntjb2xvcjojMDY5fS5leGFkLW5ld3MtdGlja2VyIC5ibi1sb2FkZXItdGV4dHtwYWRkaW5nOjAgMTBweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tc2VwZXJhdG9ye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjE1cHg7d2lkdGg6MzBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtbmV3cy10aWNrZXIgLmJuLXNlcGVyYXRvci5leGFkLW50LW5ld3MtZG90e21hcmdpbi1yaWdodDowfS5leGFkLW5ld3MtdGlja2VyIC5ibi1zZXBlcmF0b3IuZXhhZC1udC1uZXdzLWRvdDphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JhY2tncm91bmQ6IzMzMztib3JkZXItcmFkaXVzOjUwJTt0b3A6NTAlO21hcmdpbi10b3A6LTRweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4fS5leGFkLW5ld3MtdGlja2VyIC5ibi1wcmVmaXh7Y29sb3I6I2Q2NWQ3YTttYXJnaW4tcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTBweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tcG9zaXRpdmV7Y29sb3I6IzBiODQ1Nztmb250LXdlaWdodDpib2xkfS5leGFkLW5ld3MtdGlja2VyIC5ibi1uZWdhdGl2ZXtjb2xvcjojZGMyZjJmO2ZvbnQtd2VpZ2h0OmJvbGR9LmV4YWQtbmV3cy10aWNrZXIgLmV4YWQtbnQtY29udHJvbHN7d2lkdGg6YXV0bztyaWdodDowO3RvcDowO2JvdHRvbTowO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtwYWRkaW5nOjAgMCAwIDIwcHg7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uZXhhZC1uZXdzLXRpY2tlci5ibi1kaXJlY3Rpb24tcnRsIC5leGFkLW50LWNvbnRyb2xze2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5leGFkLW5ld3MtdGlja2VyLmJuLWRpcmVjdGlvbi1ydGwgLmV4YWQtYm4tbGFiZWwueWVzLXNtYWxsOmFmdGVye3JpZ2h0OmNhbGMoIDEwMCUgLSA1cHggKX0uZXhhZC1uZXdzLXRpY2tlciAuZXhhZC1udC1jb250cm9scyBidXR0b257d2lkdGg6MzBweDtwYWRkaW5nOjA7Ym9yZGVyOmluaGVyaXQ7aGVpZ2h0OjMwcHg7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTpub25lO2JvcmRlci1yYWRpdXM6MDt3aWR0aDozMHB4O2JvcmRlcjowfS5leGFkLW5ld3MtdGlja2VyIC5ibi1hcnJvd3ttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjhweDt0b3A6LTJweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tYXJyb3c6OmFmdGVye2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC13aWR0aDoycHg7Y29udGVudDonJztkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6OHB4O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDo4cHh9LmV4YWQtbmV3cy10aWNrZXIgLmJuLWFycm93LmJuLW5leHR7LW1vei10cmFuc2Zvcm06cm90YXRlKDMxNWRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzE1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDMxNWRlZyk7bGVmdDotM3B4fS5leGFkLW5ld3MtdGlja2VyIC5ibi1hcnJvdy5ibi1wcmV2ey1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO2xlZnQ6M3B4fS5leGFkLW5ld3MtdGlja2VyIC5ibi1wbGF5e3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQ6Izk5OTk5OTt3aWR0aDowO2hlaWdodDoxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi01cHh9LmV4YWQtbmV3cy10aWNrZXIgLmJuLXBsYXk6OmFmdGVye2xlZnQ6MTAwJTt0b3A6NTAlO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtjb250ZW50OiIgIjtoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoMTM2LCAxODMsIDIxMywgMCk7Ym9yZGVyLWxlZnQtY29sb3I6Izk5OTk5OTtib3JkZXItd2lkdGg6OHB4O21hcmdpbi10b3A6LThweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tcGF1c2V7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MDtoZWlnaHQ6MTRweDtkaXNwbGF5OmlubGluZS1ibG9jazt0b3A6MXB4O2xlZnQ6LTFweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tcGF1c2U6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO3dpZHRoOjJweDtoZWlnaHQ6MTAwJTtsZWZ0OjNweH0uZXhhZC1uZXdzLXRpY2tlciAuYm4tcGF1c2U6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7d2lkdGg6MnB4O2hlaWdodDoxMDAlO2xlZnQ6LTNweH0uZXhhZC1uZXdzLXRpY2tlci5ibi1kaXJlY3Rpb24tcnRse2RpcmVjdGlvbjpydGx9LmV4YWQtbmV3cy10aWNrZXIuYm4tZGlyZWN0aW9uLXJ0bCAuZXhhZC1ibi1sYWJlbHtsZWZ0OmF1dG87cmlnaHQ6MH0uZXhhZC1uZXdzLXRpY2tlci5ibi1kaXJlY3Rpb24tcnRsIC5leGFkLW50LWNvbnRyb2xze3JpZ2h0OmF1dG87bGVmdDowfS5leGFkLW5ld3MtdGlja2VyLmJuLWRpcmVjdGlvbi1ydGwgLmJuLXNlcGVyYXRvcnttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1yaWdodDowO2Zsb2F0OnJpZ2h0fS5leGFkLW5ld3MtdGlja2VyLmJuLWRpcmVjdGlvbi1ydGwgLmJuLXByZWZpeHttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1yaWdodDowO3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MTBweH0uZXhhZC1uZXdzLXRpY2tlci5ibi1kaXJlY3Rpb24tcnRsIC5leGFkLW50LWNvbnRyb2xzIGJ1dHRvbntib3JkZXItbGVmdDpub25lfS5leGFkLW5ld3MtdGlja2VyLmJuLWVmZmVjdC1zY3JvbGwgLmV4YWQtbnQtbmV3cyB1bCBsaXtkaXNwbGF5Omxpc3QtaXRlbTtmbG9hdDpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG99LmV4YWQtbmV3cy10aWNrZXIuYm4tZWZmZWN0LXNjcm9sbCAuZXhhZC1udC1uZXdzIHVsIGxpIGE6Zm9jdXN7b3V0bGluZTpub25lfS5leGFkLW5ld3MtdGlja2VyLmJuLWVmZmVjdC1zY3JvbGwuYm4tZGlyZWN0aW9uLXJ0bCAuZXhhZC1udC1uZXdzIHVsIGxpe2Zsb2F0OnJpZ2h0fS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtdGh1bWJuYWlse3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MH0uZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtdGhyZWUgLmV4YWQtcG9zdC1ncmlkLXRodW1ibmFpbCB1bC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeXttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lfS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIgLmV4YWQtcG9zdC1ncmlkLWJvZHl7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lciAuZXhhZC1wb3N0LWdyaWQtYm9keSB1bC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeS5jYXQtcG9zLWJvdHRvbS1sZWZ0e3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RvcDowO3Bvc2l0aW9uOmFic29sdXRlfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtdGh1bWJuYWlsIHVsLmV4YWQtcG9zdC1ncmlkLWNhdGVnb3J5LnBvc3Rpb24tdG9wLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4O3JpZ2h0OjIwcHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC10aHVtYm5haWwgdWwuZXhhZC1wb3N0LWdyaWQtY2F0ZWdvcnkgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lciB1bC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeSBsaTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDo4cHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5e3otaW5kZXg6OX0uZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtdGhyZWUgLmV4YWQtcG9zdC1ncmlkLWJvZHkgLmV4YWQtcG9zdC1kYXRhLC5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWdyaWQtY2F0ZWdvcnl7bWFyZ2luOjA7cGFkZGluZzowfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWdyaWQtY2F0ZWdvcnl7bWFyZ2luLWJvdHRvbToyMHB4fS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWdyaWQtY2F0ZWdvcnkgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGlzdC1zdHlsZTpub25lfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSBsaXttYXJnaW4tbGVmdDowfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWRhdGEgbGl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWRhdGF7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyIC5leGFkLXBvc3QtZGF0YS5zaG93LWF2YXRhci15ZXMgbGkuZXhhZC1wb3N0LWRhdGV7bWFyZ2luLXRvcDotM3B4fS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1hdXRob3ItYXZhdGFyIGltZ3tib3JkZXItcmFkaXVzOjEwMCU7bWFyZ2luLXJpZ2h0OjEycHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeSBsaTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDo1cHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeSBsaTpob3ZlcjpudGgtY2hpbGQoMm4tMSl7b3BhY2l0eTowLjd9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZ3JpZC1jYXRlZ29yeSBsaTpob3ZlcjpudGgtY2hpbGQoMm4pe29wYWNpdHk6MC43fS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIgLmV4YWQtcG9zdC1ncmlkLWJvZHkgaDN7bWFyZ2luOjE1cHggMCA1cHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZ3JpZC10aXRsZXtkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lOy1tcy13b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLXRocmVlIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZ3JpZC10aXRsZTpob3Zlcntjb2xvcjojRkY2RjUxfS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC1ib2R5IC5leGFkLXBvc3QtZGF0YSBsaXtjb2xvcjojODQ4NDg0fS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC10aHJlZSAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWdyaWQtYWN0aW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC02e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MCAtMTBweH0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC02IC5leGFkLWNvbHtmbGV4OjAgMCAxNi42NjY2NiU7bWF4LXdpZHRoOjE2LjY2NjY2NiU7cGFkZGluZzowIDEwcHh9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLWJvZHkgLmV4YWQtcG9zdC1ncmlkLXJlYWQtdGltZXtkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtYm9keSB1bC5leGFkLXBvc3QtZ3JpZC10aW1lLWNvbW1lbnR7bWFyZ2luOjA7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZX0uZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtYm9keSB1bC5leGFkLXBvc3QtZ3JpZC10aW1lLWNvbW1lbnQgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtcm93LXdyYXBwZXIgLmV4YWQtcG9zdC1ncmlkLWJvZHkgdWwuZXhhZC1wb3N0LWdyaWQtdGltZS1jb21tZW50IGxpOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1yaWdodDoyMHB4fS5leGFkLXJvdy13cmFwcGVyIC5leGFkLXBvc3QtZ3JpZC1ib2R5IHVsLmV4YWQtcG9zdC1ncmlkLXRpbWUtY29tbWVudCBsaSBpLmZhLmZhLWNvbW1lbnQtb3twYWRkaW5nLXJpZ2h0OjEwcHh9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lciAuZXhhZC1wb3N0LWdyaWQtYm9keSAuZXhhZC1wb3N0LWZvb3RlciBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLWxlZnQsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodHtkaXNwbGF5OmZsZXh9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1sZWZ0IC5leGFkLXBvc3QtZ3JpZC10aHVtYm5haWwsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodCAuZXhhZC1wb3N0LWdyaWQtdGh1bWJuYWlse3otaW5kZXg6OTk5fS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tbGVmdCA+IGRpdiwuZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLWxlZnQgPiBmaWd1cmUsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodCA+IGRpdiwuZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLXJpZ2h0ID4gZmlndXJle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLWxlZnQgPiBmaWd1cmUsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodCA+IGZpZ3VyZXt3aWR0aDo0MCV9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1sZWZ0ID4gZGl2LC5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tcmlnaHQgPiBkaXZ7d2lkdGg6NjAlfS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tbGVmdCA+IGZpZ3VyZSBpbWcsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodCA+IGZpZ3VyZSBpbWd7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt3aWR0aDoxMDAlfS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tcmlnaHQgPiBmaWd1cmV7b3JkZXI6Mn0uZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLXJpZ2h0ID4gZGl2e29yZGVyOjF9LmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi10b3AgLmV4YWQtcG9zdC1ncmlkLXRodW1ibmFpbCBhe2Rpc3BsYXk6ZmxleH1uYXYuZXhhZC1wb3N0LXBhZ2luYXRpb257ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9bmF2LmV4YWQtcG9zdC1wYWdpbmF0aW9uIHVse21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9bmF2LmV4YWQtcG9zdC1wYWdpbmF0aW9uIHVsIGxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrfUBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCl7LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtNiAuZXhhZC1jb2x7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjEwcHh9fS5leGFkLXJvdy13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MCAtMTBweH0uZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1jb2x7cGFkZGluZzowIDEwcHh9LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtNXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luOjAgLTEwcHh9LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtNSAuZXhhZC1jb2x7ZmxleDowIDAgMjAlO21heC13aWR0aDoyMCU7cGFkZGluZzowIDEwcHh9QG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXsuZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC01IC5leGFkLWNvbHtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MTBweH19LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtNHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luOjAgLTEwcHh9LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtNCAuZXhhZC1jb2x7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSU7cGFkZGluZzowIDEwcHh9QG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KXsuZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC00IC5leGFkLWNvbHtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MTBweH19LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtM3tkaXNwbGF5OmZsZXg7bWFyZ2luOjAgLTEwcHg7ZmxleC13cmFwOndyYXB9LmV4YWQtcm93LXdyYXBwZXIuZXhhZC1jb2wtMyAuZXhhZC1jb2x7ZmxleDowIDAgMzMuMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzJTtwYWRkaW5nOjAgMTBweH1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpey5leGFkLXJvdy13cmFwcGVyLmV4YWQtY29sLTMgLmV4YWQtY29se2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzoxMHB4fX0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC0ye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MCAtMTBweH0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC0yIC5leGFkLWNvbHtmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJTtwYWRkaW5nOjAgMTBweH1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpey5leGFkLXJvdy13cmFwcGVyLmV4YWQtY29sLTIgLmV4YWQtY29se2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzoxMHB4fX0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC0xe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW46MCAtMTBweH0uZXhhZC1yb3ctd3JhcHBlci5leGFkLWNvbC0xIC5leGFkLWNvbHt3aWR0aDoxMDAlO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowIDE1cHggMjVweH1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpey5leGFkLXJvdy13cmFwcGVyLmV4YWQtY29sLTEgLmV4YWQtY29se2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzoxMHB4fX1AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpey5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tbGVmdCwuZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyLmltYWdlLXBvc2l0aW9uLWxlZnQgPiBkaXYsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1sZWZ0ID4gZmlndXJlLC5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tcmlnaHQgPiBkaXYsLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lci5pbWFnZS1wb3NpdGlvbi1yaWdodCA+IGZpZ3VyZXt3aWR0aDoxMDAlfX0uZXhhZC1wb3N0LWdyaWQtZGVzY3JpcHRpb257bGluZS1oZWlnaHQ6MS44fS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIuaW1hZ2UtcG9zaXRpb24tdG9wIC5leGFkLXBvc3QtZ3JpZC10aHVtYm5haWwgYSBpbWd7b2JqZWN0LWZpdDpjb3Zlcjstby1vYmplY3QtZml0OmNvdmVyO3dpZHRoOjEwMCV9LmV4YWQtcG9zdC1ncmlkLWxvYWQtYnRue3RleHQtYWxpZ246Y2VudGVyfS5leGFkLXBvc3QtZ3JpZC1wYWdpbmF0ZS1idG57dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlfS5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIgdWwuZXhhZC1wb3N0LWdyaWQtY2F0ZWdvcnkgbGkgYXtkaXNwbGF5OmJsb2NrfS5leGFkLXBvc3QtZ3JpZC5leGFkLXBvc3QtZ3JpZC1mZWF0dXJlZC1wb3N0LXllcyBhcnRpY2xlLmV4YWQtcG9zdC1ncmlkLXRocmVlOmZpcnN0LWNoaWxke2ZsZXg6MTAwJTttYXgtd2lkdGg6MTAwJX0uZXhhZC1wb3N0LWdyaWQuZXhhZC1wb3N0LWdyaWQtZmVhdHVyZWQtcG9zdC15ZXMubGF5b3V0X29uZSBhcnRpY2xlLmV4YWQtcG9zdC1ncmlkLXRocmVlOmZpcnN0LWNoaWxkIC5leGFkLXBvc3QtZ3JpZC1jb250YWluZXJ7ZGlzcGxheTpmbGV4fS5leGFkLXBvc3QtZ3JpZC5leGFkLXBvc3QtZ3JpZC1mZWF0dXJlZC1wb3N0LXllcy5sYXlvdXRfb25lIGFydGljbGUuZXhhZC1wb3N0LWdyaWQtdGhyZWU6Zmlyc3QtY2hpbGQgLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lciAuZXhhZC1wb3N0LWdyaWQtdGh1bWJuYWlse3dpZHRoOjUwJX0uZXhhZC1wb3N0LWdyaWQuZXhhZC1wb3N0LWdyaWQtZmVhdHVyZWQtcG9zdC15ZXMubGF5b3V0X29uZSBhcnRpY2xlLmV4YWQtcG9zdC1ncmlkLXRocmVlOmZpcnN0LWNoaWxkIC5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIgLmV4YWQtcG9zdC1ncmlkLXRodW1ibmFpbCBhe2hlaWdodDoxMDAlfS5leGFkLXBvc3QtZ3JpZC5leGFkLXBvc3QtZ3JpZC1mZWF0dXJlZC1wb3N0LXllcy5sYXlvdXRfb25lIGFydGljbGUuZXhhZC1wb3N0LWdyaWQtdGhyZWU6Zmlyc3QtY2hpbGQgLmV4YWQtcG9zdC1ncmlkLWNvbnRhaW5lciAuZXhhZC1wb3N0LWdyaWQtdGh1bWJuYWlsIGEgaW1ne2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXI7LW8tb2JqZWN0LWZpdDpjb3Zlcn0uZXhhZC1wb3N0LWdyaWQuZXhhZC1wb3N0LWdyaWQtZmVhdHVyZWQtcG9zdC15ZXMubGF5b3V0X29uZSBhcnRpY2xlLmV4YWQtcG9zdC1ncmlkLXRocmVlOmZpcnN0LWNoaWxkIC5leGFkLXBvc3QtZ3JpZC1jb250YWluZXIgLmV4YWQtcG9zdC1ncmlkLWJvZHl7d2lkdGg6NTAlfS5leGFkLXBvc3QtZ3JpZCAuZXhhZC1yb3ctd3JhcHBlciAuZXhhZC1wb3N0LWdyaWQtY29udGFpbmVyIC5leGFkLXBvc3QtZ3JpZC10aHVtYm5haWw6OmJlZm9yZXtkaXNwbGF5Om5vbmV9LmV4YWQtcG9zdC10aW1lbGluZXttYXJnaW4tYm90dG9tOjM1cHh9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7YmFja2dyb3VuZDojZTNlNWU4O3dpZHRoOjNweDtoZWlnaHQ6Y2FsYyggMTAwJSArIDEwMHB4KTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RvcDowfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxMDBweH0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpsYXN0LWNoaWxkOjpiZWZvcmV7aGVpZ2h0OjEwMCV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7aGVpZ2h0OjYwcHg7d2lkdGg6NjBweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJTt6LWluZGV4OjF9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1pY29uIGl7Zm9udC1zaXplOjI0cHg7bGluZS1oZWlnaHQ6NjBweDtjb2xvcjojRDFDMUZGfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtaWNvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7d2lkdGg6NjBweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBkYXNoZWQgI2UzZTNlMzt0b3A6MzBweDtsZWZ0Oi03MHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtaWNvbjo6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJzt3aWR0aDo2MHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBkYXNoZWQgI2UzZTNlMzt0b3A6MzBweDtyaWdodDotNzBweH0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbSAuZXhhZC1wb3N0LXRpbWVsaW5lLWNvbnRlbnR7ZmxleC1iYXNpczozNSU7b3ZlcmZsb3c6aGlkZGVufS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtY29udGVudCBpbWd7d2lkdGg6MTAwJX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbSAuZXhhZC1wb3N0LXRpbWVsaW5lLWRhdGV7ZmxleC1iYXNpczoyMCV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1kYXRlIGg0e2ZvbnQtc2l6ZToyMHB4O21hcmdpbjo2cHggYXV0b30uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbSAuZXhhZC1wb3N0LXRpbWVsaW5lLWRhdGUgcHtmb250LXNpemU6MTVweDttYXJnaW46MDtjb2xvcjojOGE4ZDkxfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtY29udGVudC10ZXh0e3BhZGRpbmc6MjVweCAzMHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtY29udGVudC10ZXh0IGg0e2ZvbnQtc2l6ZToyMHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtY29udGVudC10ZXh0IHB7Y29sb3I6IzhhOGQ5MTttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MjRweH0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpudGgtY2hpbGQob2RkKSAuZXhhZC1wb3N0LXRpbWVsaW5lLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKG9kZCkgLmV4YWQtcG9zdC10aW1lbGluZS1kYXRle21hcmdpbi1sZWZ0OjMwJX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbikgLmV4YWQtcG9zdC10aW1lbGluZS1jb250ZW50e29yZGVyOjI7bWFyZ2luLWxlZnQ6MzAlfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtOm50aC1jaGlsZChldmVuKSAuZXhhZC1wb3N0LXRpbWVsaW5lLWRhdGV7b3JkZXI6MTttYXJnaW4tbGVmdDoxNSU7dGV4dC1hbGlnbjpyaWdodH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNTBweCl7LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1pY29uOjpiZWZvcmV7d2lkdGg6NDBweDtsZWZ0Oi01MHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtaWNvbjo6YWZ0ZXJ7d2lkdGg6NDBweDtyaWdodDotNTBweH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1pY29uOjpiZWZvcmV7ZGlzcGxheTpub25lfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtaWNvbjo6YWZ0ZXJ7ZGlzcGxheTpub25lfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtY29udGVudHtmbGV4LWJhc2lzOjQwJX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbSAuZXhhZC1wb3N0LXRpbWVsaW5lLWRhdGV7ZmxleC1iYXNpczozMCV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKG9kZCkgLmV4YWQtcG9zdC10aW1lbGluZS1kYXRle21hcmdpbi1sZWZ0OjIwJX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbikgLmV4YWQtcG9zdC10aW1lbGluZS1jb250ZW50e21hcmdpbi1sZWZ0OjIwJX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbikgLmV4YWQtcG9zdC10aW1lbGluZS1kYXRle21hcmdpbi1sZWZ0OjEwJX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NTJweCl7LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW06OmJlZm9yZXtkaXNwbGF5Om5vbmV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW0gLmV4YWQtcG9zdC10aW1lbGluZS1pY29ue2Rpc3BsYXk6bm9uZX0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbSAuZXhhZC1wb3N0LXRpbWVsaW5lLWNvbnRlbnR7ZmxleC1iYXNpczoxMDAlfS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtIC5leGFkLXBvc3QtdGltZWxpbmUtZGF0ZXtmbGV4LWJhc2lzOjEwMCV9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW17ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtOm50aC1jaGlsZChldmVuKSAuZXhhZC1wb3N0LXRpbWVsaW5lLWNvbnRlbnR7bWFyZ2luLWxlZnQ6MH0uZXhhZC1wb3N0LXRpbWVsaW5lIC5leGFkLXBvc3QtdGltZWxpbmUtaXRlbTpudGgtY2hpbGQoZXZlbikgLmV4YWQtcG9zdC10aW1lbGluZS1jb250ZW50e29yZGVyOjF9LmV4YWQtcG9zdC10aW1lbGluZSAuZXhhZC1wb3N0LXRpbWVsaW5lLWl0ZW06bnRoLWNoaWxkKG9kZCkgLmV4YWQtcG9zdC10aW1lbGluZS1kYXRle21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDoxMHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtOm50aC1jaGlsZChldmVuKSAuZXhhZC1wb3N0LXRpbWVsaW5lLWRhdGV7bWFyZ2luLWxlZnQ6MDt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luLXRvcDoxMHB4fS5leGFkLXBvc3QtdGltZWxpbmUgLmV4YWQtcG9zdC10aW1lbGluZS1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTo1MHB4fX0uZXhhZC1wcmljaW5nLWxpc3Qtd3JhcHBlci5ib3JkZXJfYm90dG9tIC5leGFkLXByaWNpbmctbGlzdC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lICFpbXBvcnRhbnR9LmV4YWQtcHJpY2luZy1saXN0LWl0ZW0ueWVze2Rpc3BsYXk6ZmxleH0uZXhhZC1wcmljaW5nLWxpc3QtaXRlbS10aHVtYm5haWx7b3ZlcmZsb3c6aGlkZGVufS5leGFkLXByaWNpbmctbGlzdC1pdGVtLXRodW1ibmFpbCBpbWd7aGVpZ2h0OjEwMCUgIWltcG9ydGFudDt3aWR0aDoxMDAlO29iamVjdC1maXQ6Y292ZXI7LW8tb2JqZWN0LWZpdDpjb3Zlcn0uZXhhZC1wcmljaW5nLXRpdGxle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtcHJpY2luZy10aXRsZSAuZXhhZC1wcmljaW5nLWxpc3QtaXRlbS1wcmljZXttYXJnaW4tbGVmdDphdXRvfS5leGFkLXByaWNpbmctbGlzdC1pdGVtLWNvbnRlbnQtdGl0bGV7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGR9LmV4YWQtcHJpY2luZy1saXN0LWl0ZW0tY29udGVudC1kZXNjcmlwdGlvbnttYXJnaW46MH0uZXhhZC1wcmljaW5nLWxpc3QtaXRlbS1wcmljZSBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjBweH0uZXhhZC1wcmljaW5nLWxpc3QtaXRlbS1jb250ZW50LWFjdGlvbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtcHJpY2luZy1saXN0LWl0ZW0tY29udGVudC1jb25udGVjdG9ye2JvcmRlci1ib3R0b206MXB4IGRhc2hlZDtoZWlnaHQ6MXB4O2ZsZXgtZ3JvdzoxO2FsaWduLXNlbGY6Y2VudGVyO21hcmdpbjowIDE1cHh9LmxlZnR7dGV4dC1hbGlnbjpsZWZ0fS5sZWZ0IC5leGFkLXByaWNpbmctdGFibGUtZmVhdHVyZXMgbGl7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmxlZnQgLnByaWNlLWJveHttYXJnaW4tcmlnaHQ6YXV0b30uY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5jZW50ZXIuZXhhZC1wcmljaW5nLXRhYmxlLWZlYXR1cmVzIGxpe2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNlbnRlciAucHJpY2UtYm94e21hcmdpbjowIGF1dG99LnJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnJpZ2h0IC5leGFkLXByaWNpbmctdGFibGUtZmVhdHVyZXMgbGl7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5yaWdodCAucHJpY2UtYm94e21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtcHJpY2luZy10YWJsZS1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDotMX0uZXhhZC1wcmljaW5nLXRhYmxlLWhlYWRlciAuZXhhZC1wcmljaW5nLXRhYmxlLWhlYWRlci1jdXJ2ZWQgc3Zne3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDt6LWluZGV4OjE7d2lkdGg6MTAwJX0uZXhhZC1wcmljaW5nLXRhYmxlLXRpdGxle21hcmdpbjowIDAgMTZweDtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo0MDB9LmV4YWQtcHJpY2luZy10YWJsZS1zdWJ0aXRsZXttYXJnaW46MCAwIDEwcHh9LnByaWNlLWJveHtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC1wcmljaW5nLXRhYmxlLXByaWNle3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLXByaWNpbmctdGFibGUtcHJpY2UuZXhhZC1kaXNjb3VudC1wcmljZS15ZXN7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpmbGV4LWVuZH0uZXhhZC1wcmljaW5nLXRhYmxlLXByaWNlLmV4YWQtZGlzY291bnQtcHJpY2UteWVzIC5leGFkLXByaWNpbmctdGFibGUtcmVndWxhci1wcmljZXt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO2ZvbnQtc2l6ZToyMHB4O2NvbG9yOiNlNWU1ZTU7bGluZS1oZWlnaHQ6Mi4xZW19LmV4YWQtcHJpY2luZy10YWJsZS1wcmljZSBzdmd7cG9zaXRpb246YWJzb2x1dGV9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVyIC5leGFkLXByaWNpbmctdGFibGUtcHJpY2UgcC5leGFkLXByaWNpbmctdGFibGUtbmV3LXByaWNle2ZvbnQtc2l6ZTo0OHB4O2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotMy4ycHh9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVyIC5leGFkLXByaWNpbmctdGFibGUtcHJpY2Ugc3Bhbi5leGFkLXByaWNlLXBlcmlvZHtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6MH0uZXhhZC1wcmljaW5nLXRhYmxlLXByaWNlIHB7bWFyZ2luOjB9LnByaWNlLWJveCBwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTttYXJnaW46MDt3aWR0aDoxMDAlfS5leGFkLXByaWNpbmctdGFibGUtZmVhdHVyZXN7bWFyZ2luOjA7cGFkZGluZzowfS5leGFkLXByaWNpbmctdGFibGUtZmVhdHVyZXMgbGl7bGlzdC1zdHlsZTpub25lO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tbGVmdDowfS5saXN0LWJvcmRlci1ib3R0b20gbGk6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmY1OTg1fS5leGFkLXByaWNpbmctdGFibGUtZmVhdHVyZXMgbGkgLmV4YWQtcHJpY2luZy1saS1pY29ue21hcmdpbi1yaWdodDo3cHh9LmV4YWQtcHJpY2luZy10YWJsZS1hY3Rpb257dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3otaW5kZXg6MTtkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1wcmljaW5nLXRhYmxlLWJhZGdlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVye3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC1wcmljaW5nLXRhYmxlLXdyYXBwZXIudHJhbnNpdGlvbl90b3B7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVyLnRyYW5zaXRpb25fdG9wOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX0uZXhhZC1wcmljaW5nLXRhYmxlLXdyYXBwZXIudHJhbnNpdGlvbl9ib3R0b217dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVyLnRyYW5zaXRpb25fYm90dG9tOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9LmV4YWQtcHJpY2luZy10YWJsZS13cmFwcGVyLnRyYW5zaXRpb25fem9vbXt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpfS5leGFkLXByaWNpbmctdGFibGUtd3JhcHBlci50cmFuc2l0aW9uX3pvb206aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMDIpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDIpfS5leGFkLXByaWNpbmctdGFibGUtd3JhcHBlciAudGV4dC1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JhY2tncm91bmQ6IzEzYzgzYTtwYWRkaW5nOjEzcHggNTBweDt3aWR0aDoxNjBweDt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg0MHB4LCAtMjJweCk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDQwcHgsIC0yMnB4KTtjb2xvcjojZmZmZmZmO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7ei1pbmRleDoyfS5leGFkLXByaWNpbmctdGFibGUtd3JhcHBlciAuaWNvbi1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nOjE1cHggMTBweDtib3JkZXItcmFkaXVzOjAgMCA0MHB4IDQwcHg7YmFja2dyb3VuZDojMTNjODNhO3JpZ2h0OjMwcHg7dG9wOjA7ei1pbmRleDoyfS5leGFkLXByaWNpbmctdGFibGUtcHJvbW8tbGFiZWx7ZGlzcGxheTpibG9ja30uZXhhZC1wcmljaW5nLXRhYmxlLWN1cnJlbmN5e3Bvc2l0aW9uOnJlbGF0aXZlfS5leGFkLXByaWNpbmctdGFibGUtcHJpY2Utc3VidGl0bGV7ZGlzcGxheTpibG9ja30ubGRCYXJ7cG9zaXRpb246cmVsYXRpdmV9LmxkQmFyLmxhYmVsLWNlbnRlciA+IC5sZEJhci1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0ZXh0LXNoYWRvdzowIDAgM3B4ICNmZmZmZmZ9LmV4YWQtcHJvZ3Jlc3MtYmFyIC5sZEJhci1sYWJlbDphZnRlcntjb250ZW50OiIlIjtkaXNwbGF5OmlubGluZTtwb3NpdGlvbjphYnNvbHV0ZX0ubGRCYXIubm8tcGVyY2VudCAubGRCYXItbGFiZWw6YWZ0ZXJ7Y29udGVudDoiIn1bY2xhc3MqPSJleGFkLXByb2dyZXNzLWJhci0iXS5saW5le3Bvc2l0aW9uOnJlbGF0aXZlfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmxpbmUgLmxkQmFyLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTJweDtyaWdodDowfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmxpbmUtYnViYmxle3Bvc2l0aW9uOnJlbGF0aXZlfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmxpbmUtYnViYmxlIC5sZEJhci1sYWJlbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgMjUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDI1JSk7YmFja2dyb3VuZC1jb2xvcjojY2NjO2xpbmUtaGVpZ2h0OjI3cHh9W2NsYXNzKj0iZXhhZC1wcm9ncmVzcy1iYXItIl0uY2lyY2xle3Bvc2l0aW9uOnJlbGF0aXZlfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmNpcmNsZSAubGRCYXItbGFiZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKX1bY2xhc3MqPSJleGFkLXByb2dyZXNzLWJhci0iXS5jaXJjbGUgaDN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0yMHB4O2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9W2NsYXNzKj0iZXhhZC1wcm9ncmVzcy1iYXItIl0uZmFue3Bvc2l0aW9uOnJlbGF0aXZlfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmZhbiBzdmd7bWFyZ2luLXRvcDotNDAlfVtjbGFzcyo9ImV4YWQtcHJvZ3Jlc3MtYmFyLSJdLmZhbiBoM3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTIwcHg7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX1bY2xhc3MqPSJleGFkLXByb2dyZXNzLWJhci0iXS5mYW4gLmxkQmFyLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtMjAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC0yMCUpO2ZvbnQtc2l6ZTozMHB4O2JvdHRvbTo3JX1bY2xhc3MqPSJleGFkLXByb2dyZXNzLWJhci0iXS5mYW4gLmxlZnQtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTotMTBweH1bY2xhc3MqPSJleGFkLXByb2dyZXNzLWJhci0iXS5mYW4gLnJpZ2h0LXRpdGxle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMTBweDtyaWdodDowfS5leGFkLXByb2dyZXNzLWJhciBzdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OmluaGVyaXR9LmV4YWQtcHJvZ3Jlc3MtYmFyLXRpdGxle2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMH0uZXhhZC1zdGlja3ktc2VjdGlvbi15ZXN7cG9zaXRpb246c3RpY2t5ICFpbXBvcnRhbnR9LmV4YWQtY29sdW1uLXN0aWNreSAuaW5uZXItd3JhcHBlci1zdGlja3l7d2lkdGg6MTAwJX0uZXhhZC1hZHZhbmNlLXRhYi1uYXZ7bWFyZ2luOjA7cGFkZGluZzowfS5leGFkLWFkdmFuY2UtdGFiLW5hdiBsaXtsaXN0LXN0eWxlOm5vbmU7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyfS5leGFkLWFkdmFuY2UtdGFiLW5hdiBsaSBzcGFuLmV4YWQtdGFiLXRpdGxle2ZvbnQtc2l6ZToxNnB4fS5leGFkLXRhYi1ob3Jpem9udGFsID4gLmV4YWQtYWR2YW5jZS10YWItbmF2e2Rpc3BsYXk6ZmxleH0uZXhhZC10YWItaG9yaXpvbnRhbC5leGFkLXRhYi1hbGlnbi1sZWZ0ID4gLmV4YWQtYWR2YW5jZS10YWItbmF2e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5leGFkLXRhYi1ob3Jpem9udGFsLmV4YWQtdGFiLWFsaWduLWNlbnRlciA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5leGFkLXRhYi1ob3Jpem9udGFsLmV4YWQtdGFiLWFsaWduLXJpZ2h0ID4gLmV4YWQtYWR2YW5jZS10YWItbmF2e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZXhhZC10YWItaG9yaXpvbnRhbC1mdWxsLXdpZHRoID4gLmV4YWQtYWR2YW5jZS10YWItbmF2e2Rpc3BsYXk6ZmxleH0uZXhhZC10YWItYWxpZ24tbGVmdCA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdiBsaXt0ZXh0LWFsaWduOmxlZnR9LmV4YWQtdGFiLWFsaWduLWNlbnRlciA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdiBsaXt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC10YWItYWxpZ24tcmlnaHQgPiAuZXhhZC1hZHZhbmNlLXRhYi1uYXYgbGl7dGV4dC1hbGlnbjpyaWdodH0uZXhhZC10YWItYWxpZ24tbGVmdCA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdnt0ZXh0LWFsaWduOmxlZnR9LmV4YWQtdGFiLWFsaWduLWNlbnRlciA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdnt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC10YWItYWxpZ24tcmlnaHQgPiAuZXhhZC1hZHZhbmNlLXRhYi1uYXZ7dGV4dC1hbGlnbjpyaWdodH0uZXhhZC10YWItaG9yaXpvbnRhbC1mdWxsLXdpZHRoID4gLmV4YWQtYWR2YW5jZS10YWItbmF2IGxpe2ZsZXg6MX0uZXhhZC10YWItdmVydGljYWx7ZGlzcGxheTpmbGV4fS5leGFkLXRhYi12ZXJ0aWNhbCA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdiBsaXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5hY3RpdmV7ZGlzcGxheTpibG9ja30uZXhhZC1hZHZhbmNlLXRhYiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1yaWdodCwuZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLWxlZnR7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCV9LmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1sZWZ0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtZWxlbWVudCwuZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLXJpZ2h0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtZWxlbWVudHt3aWR0aDoxMDAlfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5hY3RpdmUuZXhhZC10YWItaW1hZ2UtbGVmdCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnQsLmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1yaWdodCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnR7d2lkdGg6NzAlfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5leGFkLXRhYi1pbWFnZS1oYXMtbm8uZXhhZC10YWItaW1hZ2UtbGVmdCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnQsLmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmV4YWQtdGFiLWltYWdlLWhhcy1uby5leGFkLXRhYi1pbWFnZS1yaWdodCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnR7d2lkdGg6MTAwJX0uZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLWxlZnQgLmV4YWQtYWR2YW5jZS10YWItY29udGVudC10aHVtYiwuZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLXJpZ2h0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtdGh1bWJ7d2lkdGg6MzAlfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5hY3RpdmUgLmV4YWQtYWR2YW5jZS10YWItY29udGVudC10aHVtYnt3aWR0aDozMCV9LmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1sZWZ0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtZWxlbWVudHtvcmRlcjoyfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5hY3RpdmUuZXhhZC10YWItaW1hZ2UtbGVmdCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LXRodW1ie29yZGVyOjF9LmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50e2Rpc3BsYXk6bm9uZX0uZXhhZC10YWItYnRue3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LXRpdGxle21hcmdpbjowIDAgMjBweH0uZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWRlc2NyaXB0aW9ue21hcmdpbjowIDAgMjBweH0uZXhhZC10YWItdHJpYW5nbGUtcmlnaHQuYWN0aXZle3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uZXhhZC10YWItdHJpYW5nbGUtYm90dG9tLmFjdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LmV4YWQtdGFiLXRyaWFuZ2xlLXJpZ2h0LmFjdGl2ZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7aGVpZ2h0OjIwcHg7d2lkdGg6MTVweDt0b3A6NTAlO3JpZ2h0Oi00cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt6LWluZGV4Oi0xfS5leGFkLXRhYi10cmlhbmdsZS1ib3R0b20uYWN0aXZlOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDonJztoZWlnaHQ6MjBweDt3aWR0aDoxNXB4O2xlZnQ6NTAlO2JvdHRvbTotOHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7ei1pbmRleDotMX1AbWVkaWEgKCBtYXgtd2lkdGg6IDU3NXB4ICl7LmV4YWQtdGFiLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZXhhZC10YWItdmVydGljYWwgPiAuZXhhZC1hZHZhbmNlLXRhYi1uYXYgbGl7d2lkdGg6MTAwJSAhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmV4YWQtdGFiLXRyaWFuZ2xlLXJpZ2h0LmFjdGl2ZTpiZWZvcmV7ZGlzcGxheTpub25lfX1AbWVkaWEgKCBtYXgtd2lkdGg6IDc2N3B4ICl7LmV4YWQtdGFiLWhvcml6b250YWwtZnVsbC13aWR0aCA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdntvdmVyZmxvdy14OnNjcm9sbH0uZXhhZC10YWItaG9yaXpvbnRhbCA+IC5leGFkLWFkdmFuY2UtdGFiLW5hdntvdmVyZmxvdy14OnNjcm9sbH0uZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLWxlZnQsLmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmFjdGl2ZS5leGFkLXRhYi1pbWFnZS1sZWZ0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtZWxlbWVudCwuZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLXJpZ2h0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtZWxlbWVudHt3aWR0aDoxMDAlfS5leGFkLWFkdmFuY2UtdGFiID4gLmV4YWQtYWR2YW5jZS10YWItY29udGVudC5leGFkLXRhYi1pbWFnZS1oYXMtbm8uZXhhZC10YWItaW1hZ2UtbGVmdCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnQsLmV4YWQtYWR2YW5jZS10YWIgPiAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LmV4YWQtdGFiLWltYWdlLWhhcy1uby5leGFkLXRhYi1pbWFnZS1yaWdodCAuZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LWVsZW1lbnR7d2lkdGg6MTAwJX0uZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLWxlZnQgLmV4YWQtYWR2YW5jZS10YWItY29udGVudC10aHVtYiwuZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlLmV4YWQtdGFiLWltYWdlLXJpZ2h0IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtdGh1bWJ7d2lkdGg6MTAwJX0uZXhhZC1hZHZhbmNlLXRhYiA+IC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQuYWN0aXZlIC5leGFkLWFkdmFuY2UtdGFiLWNvbnRlbnQtdGh1bWJ7d2lkdGg6MTAwJX0uZXhhZC1hZHZhbmNlLXRhYi1jb250ZW50LXRodW1ie21hcmdpbi10b3A6MjBweH19LmV4YWQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LmV4YWQtbGVmdCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYnttYXJnaW4tcmlnaHQ6YXV0b30uZXhhZC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmV4YWQtY2VudGVyIC5leGFkLXRlYW0tbWVtYmVyLXRodW1ie21hcmdpbjowIGF1dG99LmV4YWQtdGVhbS1tZW1iZXItdGh1bWIuc3R5bGVfMXstd2Via2l0LWFuaW1hdGlvbjpjbGlwLTEgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHM7YW5pbWF0aW9uOmNsaXAtMSAxMHMgbGluZWFyIGluZmluaXRlIGFsdGVybmF0ZSBmb3J3YXJkcztvdmVyZmxvdzpoaWRkZW59LmV4YWQtdGVhbS1tZW1iZXItdGh1bWIuc3R5bGVfMnstd2Via2l0LWFuaW1hdGlvbjpjbGlwLTIgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHM7YW5pbWF0aW9uOmNsaXAtMiAxMHMgbGluZWFyIGluZmluaXRlIGFsdGVybmF0ZSBmb3J3YXJkcztvdmVyZmxvdzpoaWRkZW59LmV4YWQtdGVhbS1tZW1iZXItdGh1bWIuc3R5bGVfM3std2Via2l0LWFuaW1hdGlvbjpjbGlwLTMgMTBzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgZm9yd2FyZHM7YW5pbWF0aW9uOmNsaXAtMyAxMHMgbGluZWFyIGluZmluaXRlIGFsdGVybmF0ZSBmb3J3YXJkcztvdmVyZmxvdzpoaWRkZW59LmV4YWQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uZXhhZC1yaWdodCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYnttYXJnaW4tbGVmdDphdXRvfS5leGFkLXRvcC1iYWNrZ3JvdW5ke2NsZWFyOmJvdGh9LmV4YWQtdGVhbS1pdGVtIC5leGFkLXRlYW0tbWVtYmVyLmV4YWQtcG9zaXRpb24tbGVmdCwuZXhhZC10ZWFtLWl0ZW0gLmV4YWQtdGVhbS1tZW1iZXIuZXhhZC1wb3NpdGlvbi1yaWdodHtkaXNwbGF5OmZsZXh9LmV4YWQtcG9zaXRpb24tbGVmdCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYnt3aWR0aDo0MCV9LmV4YWQtcG9zaXRpb24tbGVmdCAuZXhhZC10ZWFtLW1lbWJlci1jb250ZW50e3dpZHRoOjYwJX0uZXhhZC1wb3NpdGlvbi1yaWdodCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYnt3aWR0aDo0MCU7b3JkZXI6Mn0uZXhhZC1wb3NpdGlvbi1yaWdodCAuZXhhZC10ZWFtLW1lbWJlci1jb250ZW50e3dpZHRoOjYwJTtvcmRlcjoxfS5leGFkLXRlYW0taXRlbSAuZXhhZC10ZWFtLW1lbWJlci5leGFkLXBvc2l0aW9uLWxlZnQgLmV4YWQtdGVhbS1tZW1iZXItdGh1bWIgaW1nLC5leGFkLXRlYW0taXRlbSAuZXhhZC10ZWFtLW1lbWJlci5leGFkLXBvc2l0aW9uLXJpZ2h0IC5leGFkLXRlYW0tbWVtYmVyLXRodW1iIGltZ3toZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyfS5lbGVtZW50b3IgLmV4YWQtdGVhbS1tZW1iZXItdGh1bWIgaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmV4YWQtdGVhbS1tZW1iZXItY3Rhe3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC10ZWFtLW1lbWJlci1zb2NpYWx7bWFyZ2luOjA7cGFkZGluZzowfS5leGFkLXRlYW0tbWVtYmVyLXNvY2lhbCBsaXtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmV4YWQtdGVhbS1tZW1iZXItc29jaWFsIGxpIGF7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmV4YWQtdGVhbS1tZW1iZXItc29jaWFsIGxpIGEgaXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0uZXhhZC10ZWFtLW1lbWJlci10aHVtYiBpbWd7ZGlzcGxheTpibG9jaztvYmplY3QtZml0OmNvdmVyOy1vLW9iamVjdC1maXQ6Y292ZXJ9LmV4YWQtdGVhbS1tZW1iZXItY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojh9LmV4YWQtdGVhbS1tZW1iZXItbmFtZXttYXJnaW46MCAwIDIwcHh9LmV4YWQtdGVhbS1tZW1iZXItZGVzaWduYXRpb257bWFyZ2luOjAgMCAyMHB4O2Rpc3BsYXk6YmxvY2t9LmV4YWQtdGVhbS1tZW1iZXItYWJvdXR7bWFyZ2luOjAgMCAyMHB4O2xpbmUtaGVpZ2h0OjEuNWVtfUBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCl7LmV4YWQtdGVhbS1pdGVtIC5leGFkLXRlYW0tbWVtYmVyLmV4YWQtcG9zaXRpb24tbGVmdCwuZXhhZC10ZWFtLWl0ZW0gLmV4YWQtdGVhbS1tZW1iZXIuZXhhZC1wb3NpdGlvbi1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmV4YWQtcG9zaXRpb24tbGVmdCAuZXhhZC10ZWFtLW1lbWJlci1jb250ZW50LC5leGFkLXBvc2l0aW9uLWxlZnQgLmV4YWQtdGVhbS1tZW1iZXItdGh1bWIsLmV4YWQtcG9zaXRpb24tcmlnaHQgLmV4YWQtdGVhbS1tZW1iZXItY29udGVudCwuZXhhZC1wb3NpdGlvbi1yaWdodCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYiwuZXhhZC10ZWFtLWl0ZW0gLmV4YWQtdGVhbS1tZW1iZXIuZXhhZC1wb3NpdGlvbi1sZWZ0IC5leGFkLXRlYW0tbWVtYmVyLXRodW1iIGltZywuZXhhZC10ZWFtLWl0ZW0gLmV4YWQtdGVhbS1tZW1iZXIuZXhhZC1wb3NpdGlvbi1yaWdodCAuZXhhZC10ZWFtLW1lbWJlci10aHVtYiBpbWd7d2lkdGg6MTAwJX19QGtleWZyYW1lcyBjbGlwLTF7MCUsMTAwJXtib3JkZXItcmFkaXVzOjYzJSAzNyUgNTQlIDQ2JSAvIDU1JSA0OCUgNTIlIDQ1JX0xNCV7Ym9yZGVyLXJhZGl1czo0MCUgNjAlIDU0JSA0NiUgLyA0OSUgNjAlIDQwJSA1MSV9Mjgle2JvcmRlci1yYWRpdXM6NTQlIDQ2JSAzOCUgNjIlIC8gNDklIDcwJSAzMCUgNTElfTQyJXtib3JkZXItcmFkaXVzOjYxJSAzOSUgNTUlIDQ1JSAvIDYxJSAzOCUgNjIlIDM5JX01NiV7Ym9yZGVyLXJhZGl1czo2MSUgMzklIDY3JSAzMyUgLyA3MCUgNTAlIDUwJSAzMCV9NzAle2JvcmRlci1yYWRpdXM6NTAlIDUwJSAzNCUgNjYlIC8gNTYlIDY4JSAzMiUgNDQlfTg0JXtib3JkZXItcmFkaXVzOjQ2JSA1NCUgNTAlIDUwJSAvIDM1JSA2MSUgMzklIDY1JX19QGtleWZyYW1lcyBjbGlwLTJ7MCUsMTAwJXtib3JkZXItcmFkaXVzOjMwJSA3MCUgNzAlIDMwJSAvIDMwJSAzMCUgNzAlIDcwJX0yNSV7Ym9yZGVyLXJhZGl1czo1OCUgNDIlIDc1JSAyNSUgLyA3NiUgNDYlIDU0JSAyNCV9NTAle2JvcmRlci1yYWRpdXM6NTAlIDUwJSAzMyUgNjclIC8gNTUlIDI3JSA3MyUgNDUlfTc1JXtib3JkZXItcmFkaXVzOjMzJSA2NyUgNTglIDQyJSAvIDYzJSA2OCUgMzIlIDM3JX19QGtleWZyYW1lcyBjbGlwLTN7MCUsMTAwJXtib3JkZXItcmFkaXVzOjMzJSA2NyUgNTglIDQyJSAvIDYzJSA2OCUgMzIlIDM3JX0yMCV7Ym9yZGVyLXJhZGl1czo0NSUgNTUlIDYyJSAzOCUgLyA1MyUgNTElIDQ5JSA0NyV9NDAle2JvcmRlci1yYWRpdXM6NDUlIDU1JSA0OSUgNTElIC8gMzYlIDUxJSA0OSUgNjQlfTYwJXtib3JkZXItcmFkaXVzOjYwJSA0MCUgNTclIDQzJSAvIDQ3JSA2MiUgMzglIDUzJX04MCV7Ym9yZGVyLXJhZGl1czo2MCUgNDAlIDMyJSA2OCUgLyAzOCUgMzYlIDY0JSA2MiV9fS5leGFkLXRlc3RpbW9uaWFsLXJhdGluZ3N7bWFyZ2luOjA7cGFkZGluZzowfS5leGFkLXRlc3RpbW9uaWFsLXJhdGluZ3MgbGl7bGlzdC1zdHlsZTpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5leGFkLXRlc3RpbW9uaWFsLXRodW1iIGltZ3toZWlnaHQ6MTAwJSAhaW1wb3J0YW50O3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztvYmplY3QtZml0OmNvdmVyfS5leGFkLXRlc3RpbW9uaWFsLXRodW1ie2JhY2tncm91bmQ6I2ZmZmZmZn0uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1jZW50ZXIgLmV4YWQtdGVzdGltb25pYWwtdGh1bWJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tYm90dG9te3RleHQtYWxpZ246Y2VudGVyfS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1ib3R0b20gLmV4YWQtdGVzdGltb25pYWwtdGh1bWJ7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tY2VudGVyIC5leGFkLXRlc3RpbW9uaWFsLXRodW1ie21hcmdpbi1sZWZ0OmF1dG99LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLWFsaWduLWxlZnQgLmV4YWQtdGVzdGltb25pYWwtcmV2aWV3ZXItd3JhcHBlciwuZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tcmlnaHQgLmV4YWQtdGVzdGltb25pYWwtcmV2aWV3ZXItd3JhcHBlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1yaWdodCAuZXhhZC10ZXN0aW1vbmlhbC1yZXZpZXdlci13cmFwcGVye2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tcmlnaHQgLmV4YWQtdGVzdGltb25pYWwtcmV2aWV3ZXItd3JhcHBlciAuZXhhZC10ZXN0aW1vbmlhbC10aHVtYntvcmRlcjoyfS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1yaWdodCAuZXhhZC10ZXN0aW1vbmlhbC1yZXZpZXdlci13cmFwcGVyIC5leGFkLXRlc3RpbW9uaWFsLXJldmlld2Vye29yZGVyOjF9LmV4YWQtdGVzdGltb25pYWwtZGVzY3JpcHRpb257bWFyZ2luOjB9LmV4YWQtdGVzdGltb25pYWwtbmFtZXttYXJnaW46MDt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtdGVzdGltb25pYWwtZGVzaWduYXRpb257bWFyZ2luOjA7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDB9LmV4YWQtdGVzdGltb25pYWwtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiXGU5MmEiO2ZvbnQtZmFtaWx5OmVpY29uczt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtmb250LXNpemU6MjVweDtsaW5lLWhlaWdodDoxfS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXItaW5uZXIubGF5b3V0LTIgLmV4YWQtdGVzdGltb25pYWwtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDE4MGRlZyl9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlcnt0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2V9LmV4YWQtdGVzdGltb25pYWwtY29udGVudC13cmFwcGVyLWFycm93e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tY2VudGVyIC5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXItaW5uZXIubGF5b3V0LTEgLmV4YWQtdGVzdGltb25pYWwtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7bGVmdDo1MCU7Ym90dG9tOi0xNXB4fS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1ib3R0b20gLmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci1pbm5lci5sYXlvdXQtMSAuZXhhZC10ZXN0aW1vbmlhbC1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjUwJTtib3R0b206LTE1cHh9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLWFsaWduLWxlZnQgLmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci1pbm5lci5sYXlvdXQtMSAuZXhhZC10ZXN0aW1vbmlhbC1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjQwcHg7Ym90dG9tOi0xNXB4fS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1yaWdodCAuZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLWlubmVyLmxheW91dC0xIC5leGFkLXRlc3RpbW9uaWFsLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle3JpZ2h0OjI1cHg7Ym90dG9tOi0xNXB4fS5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXIuZXhhZC10ZXN0aW1vbmlhbC1hbGlnbi1jZW50ZXIgLmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci1pbm5lci5sYXlvdXQtMiAuZXhhZC10ZXN0aW1vbmlhbC1jb250ZW50LXdyYXBwZXItYXJyb3c6OmJlZm9yZXtsZWZ0OjUwJTt0b3A6LTE1cHh9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLWFsaWduLWJvdHRvbSAuZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLWlubmVyLmxheW91dC0yIC5leGFkLXRlc3RpbW9uaWFsLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle2xlZnQ6NTAlO3RvcDotMTVweH0uZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLmV4YWQtdGVzdGltb25pYWwtYWxpZ24tbGVmdCAuZXhhZC10ZXN0aW1vbmlhbC13cmFwcGVyLWlubmVyLmxheW91dC0yIC5leGFkLXRlc3RpbW9uaWFsLWNvbnRlbnQtd3JhcHBlci1hcnJvdzo6YmVmb3Jle2xlZnQ6NDBweDt0b3A6LTE1cHh9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLWFsaWduLXJpZ2h0IC5leGFkLXRlc3RpbW9uaWFsLXdyYXBwZXItaW5uZXIubGF5b3V0LTIgLmV4YWQtdGVzdGltb25pYWwtY29udGVudC13cmFwcGVyLWFycm93OjpiZWZvcmV7cmlnaHQ6MjVweDt0b3A6LTE1cHh9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLWltYWdlLWFzaWRle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLXRyYW5zaXRpb24tdG9wLXllczpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9LmV4YWQtdGVzdGltb25pYWwtd3JhcHBlci5leGFkLXRlc3RpbW9uaWFsLXRyYW5zaXRpb24tdG9wLXllc3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwcHgpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC10b29sdGlwe3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtY29udGVudC10ZXh0e2xpbmUtaGVpZ2h0OjAuNX0uZXhhZC10b29sdGlwLWFsaWduLWxlZnR7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmV4YWQtdG9vbHRpcC1hbGlnbi1jZW50ZXJ7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZXhhZC10b29sdGlwLWFsaWduLXJpZ2h0e2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbSAuZXhhZC10b29sdGlwLWNvbnRlbnR7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MC42O2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbSAuZXhhZC10b29sdGlwLWNvbnRlbnQgYSBpbWd7bWFyZ2luOjAgYXV0b30uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbSAuZXhhZC10b29sdGlwLXRleHR7cG9zaXRpb246YWJzb2x1dGU7bWluLXdpZHRoOjE1MHB4O3BhZGRpbmc6MTBweDt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtc2l6ZToxNnB4O2JveC1zaGFkb3c6MCAwIDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7ei1pbmRleDo0fS5leGFkLXRvb2x0aXAgLmV4YWQtdG9vbHRpcC1pdGVtIC5leGFkLXRvb2x0aXAtdGV4dDphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItc3R5bGU6c29saWR9LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0gLmV4YWQtdG9vbHRpcC1jb250ZW50OmhvdmVye2JveC1zaGFkb3c6MCA1cHggMjVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMyl9LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0udG9vbHRpcC1sZWZ0IC5leGFkLXRvb2x0aXAtY29udGVudDpob3ZlciB+IC5leGFkLXRvb2x0aXAtdGV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLWxlZnQgLmV4YWQtdG9vbHRpcC10ZXh0e3RvcDo1MCU7cmlnaHQ6Y2FsYygxMDAlICsgMWVtKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTVweCwgLTUwJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNXB4LCAtNTAlLCAwKX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLWxlZnQgLmV4YWQtdG9vbHRpcC10ZXh0OmFmdGVye3RvcDo1MCU7cmlnaHQ6LTAuNWVtOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtib3JkZXItd2lkdGg6MC41ZW0gMCAwLjVlbSAwLjVlbTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2Y5ZjlmOX0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLWJvdHRvbSAuZXhhZC10b29sdGlwLWNvbnRlbnQ6aG92ZXIgfiAuZXhhZC10b29sdGlwLXRleHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjF9LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0udG9vbHRpcC1ib3R0b20gLmV4YWQtdG9vbHRpcC10ZXh0e3RvcDpjYWxjKDEwMCUgKyAxZW0pO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsIDE1cHgsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAxNXB4LCAwKTt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLWJvdHRvbSAuZXhhZC10b29sdGlwLXRleHQ6YWZ0ZXJ7dG9wOi0wLjVlbTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7Ym9yZGVyLXdpZHRoOjAgMC41ZW0gMC41ZW0gMC41ZW07Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmOWY5ZjkgdHJhbnNwYXJlbnR9LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0udG9vbHRpcC10b3AgLmV4YWQtdG9vbHRpcC1jb250ZW50OmhvdmVyIH4gLmV4YWQtdG9vbHRpcC10ZXh0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxfS5leGFkLXRvb2x0aXAgLmV4YWQtdG9vbHRpcC1pdGVtLnRvb2x0aXAtdG9wIC5leGFkLXRvb2x0aXAtdGV4dHtib3R0b206Y2FsYygxMDAlICsgMWVtKTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAtMTVweCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsIC0xNXB4LCAwKTt0ZXh0LWFsaWduOmNlbnRlcn0uZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLXRvcCAuZXhhZC10b29sdGlwLXRleHQ6YWZ0ZXJ7Ym90dG9tOi0wLjVlbTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7Ym9yZGVyLXdpZHRoOjAuNWVtIDAuNWVtIDAgMC41ZW19LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0udG9vbHRpcC1yaWdodCAuZXhhZC10b29sdGlwLWNvbnRlbnQ6aG92ZXIgfiAuZXhhZC10b29sdGlwLXRleHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjF9LmV4YWQtdG9vbHRpcCAuZXhhZC10b29sdGlwLWl0ZW0udG9vbHRpcC1yaWdodCAuZXhhZC10b29sdGlwLXRleHR7dG9wOjUwJTtsZWZ0OmNhbGMoMTAwJSArIDFlbSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTVweCwgLTUwJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDE1cHgsIC01MCUsIDApO3RleHQtYWxpZ246Y2VudGVyfS5leGFkLXRvb2x0aXAgLmV4YWQtdG9vbHRpcC1pdGVtLnRvb2x0aXAtcmlnaHQgLmV4YWQtdG9vbHRpcC10ZXh0OmFmdGVye3RvcDo1MCU7bGVmdDotMC41ZW07LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO2JvcmRlci13aWR0aDowLjVlbSAwLjVlbSAwLjVlbSAwO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fUBtZWRpYSAoIG1heC13aWR0aDogNzY3cHggKXsuZXhhZC10b29sdGlwIC5leGFkLXRvb2x0aXAtaXRlbS50b29sdGlwLXJpZ2h0IC5leGFkLXRvb2x0aXAtY29udGVudDpob3ZlciB+IC5leGFkLXRvb2x0aXAtdGV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNDA1JSwgLTUwJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC00NSUsIC01MCUsIDApfS5leGFkLXRvb2x0aXAgLmV4YWQtdG9vbHRpcC1pdGVtLnRvb2x0aXAtbGVmdCAuZXhhZC10b29sdGlwLWNvbnRlbnQ6aG92ZXIgfiAuZXhhZC10b29sdGlwLXRleHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxfX0="}},"time_used":222,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":222,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/vendors/floatbox/floatbox.css?ver=1.8","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.809Z","timestamp":1785145403809,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/vendors/floatbox/floatbox.css?ver=1.8 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/css\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-120d\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":4621,"size_decoded":1581,"mime_type":"text/css","magic":"ASCII text, with very long lines (4621), with no line terminators","md5":"37eff7b1a097244d0e645d8d61a51110","sha1":"c76e3c2afdbf3fe5bb817c43e37984efc79472d4","sha256":"1a3980b661a1d8d94121ee05f98645238d047b0fc6d0263f707cb10cbb9b3aeb","sha512":"335f33fbfc207833ee4789def565bff6a4453a86021f9a981c069448497d9d7b5eff447794a2a102a85316e519dcf4f1996d9609e8c85166c7ece25d913d9ed9","ssdeep":"96:8stwneMPCHtXlsDt1XkK8THLL57nRitp2M8fE:8QwneAC/6t1XKRnResjs","tlshash":"6091443115e92228e07bd3215de0259f06308291efe73d2fdd54e3b84a8bc683d67a5d","first_seen":"2026-05-20T00:20:36.589157Z","last_seen":"2026-07-27T14:04:41.082874Z","times_seen":7,"resource_available":false,"data":"LmZieC5mYk92ZXJsYXksLmZieC5mYk1haW4sLmZiTWFpbiAuZmJ4LC5mYnguZmJGbG9hdGVyLC5mYnguZmJTbG93TG9hZHtib3gtc2l6aW5nOmNvbnRlbnQtYm94O21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MCBzb2xpZCAjMDAwO292ZXJmbG93OnZpc2libGU7YmFja2dyb3VuZDp0cmFuc3BhcmVudCBub25lIG5vLXJlcGVhdCAwIDA7YmFja2dyb3VuZC1zaXplOmF1dG87dGV4dC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uLWR1cmF0aW9uOjBzO2NsZWFyOmJvdGh9LmZieC5mYk92ZXJsYXksLmZieC5mYkJhY2tncm91bmQsLmZieC5mYkxpbmVyLC5mYnguZmJDb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO291dGxpbmUtc3R5bGU6bm9uZX0uZmJ4LmZiQ29udGVudFdyYXBwZXIsLmZieC5mYlRvcFBhbmVsLC5mYnguZmJCb3R0b21QYW5lbCwuZmJ4LmZiSGVhZGVyLC5mYnguZmJGb290ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7b3V0bGluZS1zdHlsZTpub25lfS5mYnguZmJPdmVybGF5e3Bvc2l0aW9uOmZpeGVkfS5mYnguZmJNYWlue3Bvc2l0aW9uOmFic29sdXRlO291dGxpbmUtc3R5bGU6bm9uZX0uZmJ4LmZiT3ZlcmxheSwuZmJ4LmZiQmFja2dyb3VuZCwuZmJ4LmZiTGluZXJ7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0O292ZXJmbG93OmhpZGRlbn1pLmZiSWNvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250Om5vcm1hbCAxNnB4LzEgbW9ub3NwYWNlfWkuZmJJY29uIHN2Z3toZWlnaHQ6MWVtO21hcmdpbi1ib3R0b206LS4yZW07ZmlsbDpjdXJyZW50Q29sb3I7c3Ryb2tlOmN1cnJlbnRDb2xvcjtwb2ludGVyLWV2ZW50czpub25lfS5mYnguZmJNYWlue3RleHQtYWxpZ246bGVmdH0uZmJ4LmZiQ29udGVudFdyYXBwZXJ7ZGlyZWN0aW9uOmx0cjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uZmJ4LmZiRmxvYXRlciwuZmJ4LmZiU2xvd0xvYWR7cG9zaXRpb246YWJzb2x1dGV9LmZiTWFpbiBzcGFuLmZieHtjdXJzb3I6ZGVmYXVsdH0uZmJ4LmZiTWFpbiBhe2N1cnNvcjpwb2ludGVyfS5mYk1haW4gYS5mYngsLmZiTWFpbiBpbWcuZmJ4LGltZy5mYnh7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO21heC13aWR0aDo3Nzc3N3B4O21heC1oZWlnaHQ6Nzc3NzdweDtkaXJlY3Rpb246bHRyfS5mYlRvcFBhbmVsIC5mYngsLmZiQm90dG9tUGFuZWwgLmZieCwuZmJ4LmZiRHJhZ2dlcnt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0uZmJ4LmZiVG9wUGFuZWwsLmZieC5mYkJvdHRvbVBhbmVse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQ6bm9ybWFsIDE0cHgvMThweCBWZXJkYW5hLEhlbHZldGljYSxzYW5zLXNlcmlmfS5mYnguZmJDZWxse2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDpub25lfS5mYnguZmJDZWxsPip7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZieC5mYkNlbGxfdGwsLmZieC5mYkNlbGxfYmx7dGV4dC1hbGlnbjpsZWZ0fS5mYnguZmJDZWxsX3RjLC5mYnguZmJDZWxsX2Jje3RleHQtYWxpZ246Y2VudGVyfS5mYnguZmJDZWxsX3RyLC5mYnguZmJDZWxsX2Jye3RleHQtYWxpZ246cmlnaHR9LmZieC5mYkNsb3NlLC5mYnguZmJOYXYsLmZieC5mYlBsYXlQYXVzZSwuZmJ4LmZiUHJldiwuZmJ4LmZiTmV4dCwuZmJ4LmZiUGxheSwuZmJ4LmZiUGF1c2V7bWFyZ2luOjAgNHB4fS5mYnguZmJDYXB0aW9uLC5mYnguZmJDYXB0aW9uMiwuZmJ4LmZiTmV3V2luZG93LC5mYnguZmJJbmZvLC5mYnguZmJQcmludCwuZmJ4LmZiSXRlbU51bWJlcnttYXJnaW46MCA2cHh9LmZieC5mYk5hdiwuZmJ4LmZiUGxheVBhdXNle3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmNlbnRlcn0uZmJ4LmZiSXRlbU51bWJlcntmb250LXNpemU6LjhlbX0uZmJDYXB0aW9uIGE6bGluaywuZmJDYXB0aW9uIGE6dmlzaXRlZCwuZmJDYXB0aW9uIGE6YWN0aXZlLC5mYkNhcHRpb24yIGE6bGluaywuZmJDYXB0aW9uMiBhOnZpc2l0ZWQsLmZiQ2FwdGlvbjIgYTphY3RpdmV7Y29sb3I6aW5oZXJpdH0uZmJUb3BQYW5lbCBhLmZieCwuZmJCb3R0b21QYW5lbCBhLmZieHtwb3NpdGlvbjpyZWxhdGl2ZX0uZmJ4LmZiQ2xvc2Uye3Bvc2l0aW9uOmFic29sdXRlfS5mYkNsb3NlMiAuZmJJY29ue2ZvbnQtc2l6ZToyOHB4fS5mYnguZmJSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czowIDAgOHB4IDA7b3BhY2l0eTouNDU7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5mYlJlc2l6ZXIgLmZiSWNvbntmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDoxLjM7Y29sb3I6IzAwMH0uZmJ4LmZiRHJhZ2dlcntwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6bnctcmVzaXplO2xpbmUtaGVpZ2h0OjE7cmlnaHQ6MDtib3R0b206MH0uZmJ4IGEuZmJQcmV2UGFuZWwsLmZieCBhLmZiTmV4dFBhbmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmZieCBhLmZiUHJldlBhbmVse2xlZnQ6MH0uZmJ4IGEuZmJOZXh0UGFuZWx7cmlnaHQ6MH0uZmJ4IGEuZmJQcmV2MiwuZmJ4IGEuZmJOZXh0Mntwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNDU7cGFkZGluZzoxMHB4fS5mYnggYS5mYlByZXYye2xlZnQ6MDtwYWRkaW5nLWxlZnQ6NXB4O2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDB9LmZieCBhLmZiTmV4dDJ7cmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjVweDtib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4fS5mYlByZXYyIC5mYkljb24sLmZiTmV4dDIgLmZiSWNvbntmb250LXNpemU6MjZweDtjb2xvcjojZmZmfS5mYnguZmJJbmRleCBhe21hcmdpbjowO3BhZGRpbmc6M3B4IDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZiSW5kZXggLmZiQ3VycmVudEluZGV4e2ZvbnQtd2VpZ2h0OjcwMH0uZmJ4LmZiU3BhY2Vye3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO21pbi13aWR0aDoxZW07bWluLWhlaWdodDoxZW07Y3Vyc29yOmRlZmF1bHR9LmZiU3BhY2VyIC5mYkljb257ZGlzcGxheTp0YWJsZS1jZWxsO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDppbmhlcml0O2hlaWdodDppbmhlcml0fS5mYlZpZCBpe3dpZHRoOjFlbTtoZWlnaHQ6MWVtO21hcmdpbjowO3BhZGRpbmc6LjFlbSAuMzJlbSAuMTFlbSAuNDVlbTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMzMztvcGFjaXR5Oi42O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6LjJlbTtib3JkZXI6MnB4IHNvbGlkICNjY2N9LmZiVmlkOmhvdmVyIGl7YmFja2dyb3VuZC1jb2xvcjojMGIxODNiO29wYWNpdHk6Ljc1fWJvZHkgLmZiQ29udGV4dHtjdXJzb3I6aGVscH1hW2NsYXNzKj1mYlBvcF17ZGlzcGxheTppbmxpbmUtYmxvY2t9YVtjbGFzcyo9ZmJQb3BdIGltZzpmaXJzdC1jaGlsZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOi03Nzc3N3B4O21hcmdpbjowO3BhZGRpbmc6MDt6LWluZGV4Ojg4ODg4fS5mYkluZGV4IGEgaW1ne2JvcmRlcjoxcHggc29saWQgIzU1NX1ib2R5IGRpdi5mYkN5Y2xlcntwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MTAwJX1kaXYuZmJDeWNsZXI+Kntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aGlkZGVuO21heC13aWR0aDoxMDAlfWRpdi5mYkN5Y2xlcj46Zmlyc3QtY2hpbGR7cG9zaXRpb246c3RhdGljO3Zpc2liaWxpdHk6dmlzaWJsZX1kaXYuZmJDeWNsZXIgaW1nLGRpdi5mYkN5Y2xlciBhe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OjB9ZGl2LmZiQ3ljbGVyIHNwYW57ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46YXV0b31kaXYuZmJDeWNsZXIgcHtwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OnZpc2libGU7ei1pbmRleDo5OX0uZmJDeWNsZXIgLmZiQ3ljbGVyQ29udHJvbHtkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87bWluLXdpZHRoOjQuOGVtO2JvcmRlci1yYWRpdXM6NXB4O3otaW5kZXg6Nzc7b3BhY2l0eTouNjtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Zm9udDpub3JtYWwgMTVweC8yMXB4ICJDb21pYyBTYW5zIE1TIixzYW5zLXNlcmlmO2NvbG9yOiMwMDA7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOmRlZmF1bHQ7cGFkZGluZzowIC43ZW0gLjFlbTttYXJnaW46MDtib3JkZXItd2lkdGg6MH0uZmJDeWNsZXJDb250cm9sIC5mYkljb257Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MjFweDtwYWRkaW5nLWxlZnQ6NXB4fS5mYkN5Y2xlciAuZmJDeWNsZXJDb250cm9sOmhvdmVye29wYWNpdHk6MX1odG1sLmZsb2F0Ym94IGEuZmxvYXRib3gsaHRtbC5mbG9hdGJveCBkaXYuZmxvYXRib3ggYXtwb2ludGVyLWV2ZW50czpub25lfQ=="}},"time_used":523,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":523,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=2.7.17","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.869Z","timestamp":1785145403869,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=2.7.17 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-72c\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1836,"size_decoded":1091,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1836), with no line terminators","md5":"bd4a0f15980886a95cc5cbd16b77eae7","sha1":"bfb0474f16e017c1ce9b33441b9b3f5d713a66f5","sha256":"998a575c7b376128a98e6d67e29c42e1726aac3489cf2c0b2aaebf6f6ad0b546","sha512":"8dee1b601b4f2d5c1ce3e7a589c4dba23d1ff4646d9a11a1b4a0bad5c314e075b4893da7632cb83bde954148e02e7397b18a71f999d9808774ee60cf4ee4b3ca","ssdeep":"","tlshash":"ef31535b3466304255a674705bc7cc1b706c4f24a2bc0a9cc7a3cef17df8a9d9429f19","first_seen":"2023-03-08T14:28:40Z","last_seen":"2026-08-11T19:51:03.048135Z","times_seen":7557,"resource_available":true,"data":"IWZ1bmN0aW9uKCQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZXNjYXBlPS9bIlxcXHgwMC1ceDFmXHg3Zi1ceDlmXS9nLG1ldGE9eyJcYiI6IlxcYiIsIlx0IjoiXFx0IiwiXG4iOiJcXG4iLCJcZiI6IlxcZiIsIlxyIjoiXFxyIiwnIic6J1xcIicsIlxcIjoiXFxcXCJ9LGhhc093bj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OyQudG9KU09OPSJvYmplY3QiPT10eXBlb2YgSlNPTiYmSlNPTi5zdHJpbmdpZnk/SlNPTi5zdHJpbmdpZnk6ZnVuY3Rpb24odCl7aWYobnVsbD09PXQpcmV0dXJuIm51bGwiO3ZhciBlLHIsbixvLGksZix1PSQudHlwZSh0KTtpZigidW5kZWZpbmVkIiE9PXUpe2lmKCJudW1iZXIiPT09dXx8ImJvb2xlYW4iPT09dSlyZXR1cm4gU3RyaW5nKHQpO2lmKCJzdHJpbmciPT09dSlyZXR1cm4gJC5xdW90ZVN0cmluZyh0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC50b0pTT04pcmV0dXJuICQudG9KU09OKHQudG9KU09OKCkpO2lmKCJkYXRlIj09PXUpcmV0dXJuIGk9dC5nZXRVVENNb250aCgpKzEsZj10LmdldFVUQ0RhdGUoKSwnIicrdC5nZXRVVENGdWxsWWVhcigpKyItIisoaT1pPDEwPyIwIitpOmkpKyItIisoZj1mPDEwPyIwIitmOmYpKyJUIisoaT0oaT10LmdldFVUQ0hvdXJzKCkpPDEwPyIwIitpOmkpKyI6IisoZj0oZj10LmdldFVUQ01pbnV0ZXMoKSk8MTA/IjAiK2Y6ZikrIjoiKyhpPShpPXQuZ2V0VVRDU2Vjb25kcygpKTwxMD8iMCIraTppKSsiLiIrKGY9KGY9KGY9dC5nZXRVVENNaWxsaXNlY29uZHMoKSk8MTAwPyIwIitmOmYpPDEwPyIwIitmOmYpKydaIic7aWYoZT1bXSwkLmlzQXJyYXkodCkpe2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspZS5wdXNoKCQudG9KU09OKHRbcl0pfHwibnVsbCIpO3JldHVybiJbIitlLmpvaW4oIiwiKSsiXSJ9aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtmb3IociBpbiB0KWlmKGhhc093bi5jYWxsKHQscikpe2lmKCJudW1iZXIiPT09KHU9dHlwZW9mIHIpKW49JyInK3IrJyInO2Vsc2V7aWYoInN0cmluZyIhPT11KWNvbnRpbnVlO249JC5xdW90ZVN0cmluZyhyKX0iZnVuY3Rpb24iIT09KHU9dHlwZW9mIHRbcl0pJiYidW5kZWZpbmVkIiE9PXUmJihvPSQudG9KU09OKHRbcl0pLGUucHVzaChuKyI6IitvKSl9cmV0dXJuInsiK2Uuam9pbigiLCIpKyJ9In19fSwkLmV2YWxKU09OPSJvYmplY3QiPT10eXBlb2YgSlNPTiYmSlNPTi5wYXJzZT9KU09OLnBhcnNlOmZ1bmN0aW9uKHN0cil7cmV0dXJuIGV2YWwoIigiK3N0cisiKSIpfSwkLnNlY3VyZUV2YWxKU09OPSJvYmplY3QiPT10eXBlb2YgSlNPTiYmSlNPTi5wYXJzZT9KU09OLnBhcnNlOmZ1bmN0aW9uKHN0cil7dmFyIGZpbHRlcmVkPXN0ci5yZXBsYWNlKC9cXFsiXFxcL2JmbnJ0dV0vZywiQCIpLnJlcGxhY2UoLyJbXiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/OltlRV1bK1wtXT9cZCspPy9nLCJdIikucmVwbGFjZSgvKD86Xnw6fCwpKD86XHMqXFspKy9nLCIiKTtpZigvXltcXSw6e31cc10qJC8udGVzdChmaWx0ZXJlZCkpcmV0dXJuIGV2YWwoIigiK3N0cisiKSIpO3Rocm93IG5ldyBTeW50YXhFcnJvcigiRXJyb3IgcGFyc2luZyBKU09OLCBzb3VyY2UgaXMgbm90IHZhbGlkLiIpfSwkLnF1b3RlU3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoKGVzY2FwZSk/JyInK3QucmVwbGFjZShlc2NhcGUsZnVuY3Rpb24odCl7dmFyIGU9bWV0YVt0XTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTooZT10LmNoYXJDb2RlQXQoKSwiXFx1MDAiK01hdGguZmxvb3IoZS8xNikudG9TdHJpbmcoMTYpKyhlJTE2KS50b1N0cmluZygxNikpfSkrJyInOiciJyt0KyciJ319KGpRdWVyeSk7"}},"time_used":464,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":464,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-700.woff2","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.656Z","timestamp":1785145404656,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/themes/ds_toptier/assets/fonts/figtree/figtree-v4-latin-700.woff2 HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/wp-content/themes/ds_toptier/assets/_dist/css/critical.css?ver=1.8\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: font/woff2\r\ncontent-length: 11316\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-2c34\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":11316,"size_decoded":11567,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 11316, version 1.0","md5":"e725f05d2a6d51ef6777d3b26d99e10a","sha1":"388cde13b6b7520ca22d17ab6a307e496c5da2f7","sha256":"d3a5a2676f761a215872a6534fa7e4d55523e70724f0454fe1a5c52db320192f","sha512":"a423af0c655f65da1052fb02a6459b56ab27d955f9133b42f2655ddbdbe9d4631b4c2b3ab3c2c66701507a6b0b7b0321724427ddd8662543cbedccbec5410dbb","ssdeep":"192:SQQAN/OuT0SkvGDvzTf4ZZNFS9VGS6+ikeuZ4lsnCPtYkI+z+C:SQBbT0nODvPfo8LxheuZ46Nkn+C","tlshash":"8232cf21c6bc93324522aafff12787a3a0b020d498d4de56fc943712d728e50c81d9b7","first_seen":"2023-11-30T11:31:50Z","last_seen":"2026-07-31T06:23:14.608923Z","times_seen":49,"resource_available":false,"data":"d09GMgABAAAAACw0ABAAAAAAX8gAACvUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEOG5RUHIY6BmA/U1RBVEQAhG4RCAr/cOQ1C4QYAAE2AiQDiCwEIAWEUAeIdwwHG95ORSMqtwOgEqpdlJGBOrlIMVGUME5/9v8xgQ4ZQtEGx5x/WAGyQRAgSI7HqxN5kZjMbsXL4NSISS480vJYusIIYqRvuD+1Ax9Xt1Vb/AJbvH8uWri4fHUfKrY4A9xhxTp5/v/3q9zn/qrqIQTF7AgDwHpUwjYqKwqFjDBhhxZJ9fuBn1vvjzFixIjBqDVjY6ySVcE2GFEDZERtZIuICuoZfR6oh3nthck8My709O6wLlMvEv9L5797BfbMHuvpc5IWsAWsGC7IWiMFWW6lNoDYAxVVxkTRGlnde486RIqNQAlsJKAR7GNkhMvHORI+UwSAU3qR1IGonGzkSQvp3PT/h2t6b5PVjQAcucpPCumIhakSgDwgzP6dGfT10yXG+Ixn4kBjm2K+Oko/atu0R6MY3qcYBk6b2gUAVnQKWwQPlsvFwZ+a29ErqRLbRIWfmFjunH+BR9ZqhRjxk393t85/WHN1/969AfPPJdSilr4Wz2eSsGpeiR5FW6WxvIxnWoL44p7xghXgAeZ28+1NE3AQhR9LmygIITrAJowtQOzKVG1v+YIEKgJKEVSEutyH3HHUuXbRpsPug/+HB8gHRXmQaEOg0gsKgOKTdAKUSDqlWGmepAOoCDqkKuVQVB4XtYuiCbm2i7ay1dKSblYgbUh9eEo3SpjF4eWyX3s189al4sY4uAzHcWiNkEwUXOqVP42dCuHWGJ5DnKDgw4fVAq1eLcvZjNfOnIpBxYOmNNdfEShEACYBBAKMgAAlGrKejRUDgYfXeCSlSFcuicrIVMGoZlbN4tRcpepWoUs0qk+LtunWXr3ab6Tw6VWQj4BR6IRQ+w86CiHivms9bRABDbhGnb73VlcbBAOiBxrq/ai8LBTKCDTIfleEwABoTwDtHkG7tmtnM3I/kzzdtJutoOtb4tVNE8K2wVgR1i4NSyg+mSgKSglULJKSsszgeilb+ewMlZpxtLWr1GNQJpRYfHwoUjIoX0HtayB0CfZTK7nq0VjwxtmIHr0C9M0O1G9QgCOKdkzR5hXtsqJdVbTr22i3vFP0rnurKJFVQCBQgrK5H0BAEg8CDgMYWfa0WxEN4gFSwkQCNIKVFxqi6VfB+r3v95RD/MHErmdQ3Pfv7Nq+37K7HSuxWqph+lL+za/5Pp9aj/dzF9+/m2vxh+pf1yB4ELHwiEho2Lj4UZOXkYl5ypLNzsEpJ1vySbUaterUa9CoSbOWCvQtA/mPHzJnv0tuek+YSuAycAW4C7gXuG9e1g48BDwMPAI8CjwDjITAQcEJgIOGEwgHAycITjCcEDgMxgUBBgAKDDgIUKDBgAUHHgJESJBhkkU2OXDhwUeAEBFiJJQhp4Jqaqiljnqa0WJbfP5p/feZb7/1fB7/9F5bzdfi33Krh/ku00J51fLpR5W6ryKHrNRLnoOksAAoDI5AoTFYHJ5AJJHL1LPYfZM2eHyBUCRO0pYltxRUa7Q6fQ1MhsYmptNM9zzIAhYAhcERKDQGi8MTiCQyh8vjC4QisawGfGhsYjq9NM8PMVgAFAZHoNAYLA5PIJLIZcLa2/uJMcYYY1tLkpk8BdUarU5fA9+hsYlpZrX1Q/PeuJ7PkAFMAAqDI1BoDBaHJxBJ5DJdLXYccnnxIRCKxEnasuSWgiTUGq1Ob7ak0xUAAAAAZgYAYJiZmZlzzrnNt3pa+Ui4v2lsYrpclSRJkiRJkuR5niRJkievodZodXqza4wWimuutb3nrjw/1FaPQwU88xYAhcERKDQGi8MTiCRyQ6VScc4555yruKqh1mh1+pvnY2a1eSHE1/vKl6ASWAAUBkeg0BgsDk8gksi7Cplyix2H3HjgC4QicZK2LLmloFqj1elrQENjE9PMOF226ctdo2u+9yF8anxp/phAMpgAFAZHoNAYLA5PIJLIHC6PLxCKxDJjlD9O9vh6atu3fLvVc5vJLR0cuKsvvDk33c3vPXZP7+7tfegwlRc/t/U2PM+3a9wPngXtdylYiFBhsObkgiaHmVzg5NCTC2iLUj4IF7QUcfnhNx9ob4WZf4SmFmx60V7bAmvn0kppXBqSeqS2ak2velu7oObNUBMq3vV1tUHxh7XmCqtFN6QYKUoKldBSgBQsoSRECgTgzSFhwkUsx4rNzLQlT/JjCgaeuu+Wkwx3qcPqDhrpkKBJBAajXfdz8wT7hDr7tN+hzr/KBmADDSbHWRhaQEUqEVy3NoHv3Ggn2iHZFi2Ndz5nH6T+/pK0r80JT50wVmy0TiLU8UetjCWMkqzlKdwwrGQoFHpE6DBKIdCCAgkCI42JCIrn8emCtGFxMDAyaRExRk9A2Z0IkjzXwAsqZAhARuxaIG5LHnTFlF8gqNstBY6py89lwmSYjP8SWA7cC/8y/4cE9ghfNDXg6GAAui88BF4D5O/6gQUCIEmJgilztqTWk3c29SAIwAMLZiMhadXQrCJUQgECkVEZhNB4aZ0/clA50eU2tiBDr57ocDwKYxZjFCJIQV3qx71/KZacSCaSqWQGWUk2kXvIL1OolI2UzdRoKn5xkTMWGZ/SHg9b/pAYMoGcPDnFT04fAicALV6kgOGb/2f8z358GIDvvz9e9/i5x9WP5Y8Vj/yP6h/VPfzw4W1AgE3ASXcBeRkAuZ11Jq/U9xxxl9/nfvORey65bN43XnfWYae84U0/+cGPjvkQIhRWuEix8OLES0ZEQkZBw8bBxcMn+GK09UzXvO26Jy4mAFRMX+dHz5Ijl0ueKE9QmfRo4gWHs12P6Eu/Z0OueOyqX73mqE996TNf+cRCUHDfsPf94pwHCYZHfvail4KGpz52IiHwghG3HXTAIcdhoKAFCxQkRJgYOFGiJSFIkCgCVRq6VCwM32GSEBIRU8rQSkdNw0BLz8jC+VWv+RIFChWxqVL3dU80ZPi+sW4dOnUZ0Mza6Rq96z03vhxzGgikLV5/wEBGA1DTQN4CE54BTPsJ0NsGujkAJQC6Taq0BPhGEoHSa4nFUEc3rj0KkOlDa2gv4ZC3hmJSByFPEKSTV2Z5tkTESbESvOVgRza9nBgisNQubZGGNNRQtI4OQ8kdZeqtkOwqCZDhc1Btsk6/E0Ia2vDHSXylKpTUbggEAVSK8BQrRLSU4/Z6+ZEE9oaG8VIAY6BDFqUB0Sl6WWBSAgjDu85aTc4GehM1dqhYFLvIQhXUPvqFhaHxIjB6BoGLAfScQ+AHNWrlaTJOabRfRwxmUez0qDjKyD8TRC2KxoWjKeAH5IshY2ERES3PnYCqpB0PRWfM/QwLKwmnR/dpBEZNjQybjFBaP3nOMpi24OcJ3DjcGCVC7xzc0wKDSf2EmUOIPi+siLCnx3j2wIduMgJ/U54ZCEdPiknFg4PR6YwJuCi0evRcPX11LBkXi4sI+Y9gPAVjIsQJaBXO6FF/tYGReWE5ykRNQXkkxgM75MCWVWAgbkJwQi9uQnAGv5NHXdpZa5K1O/kG66MtVkqZWxdtDAwwITI6KZISt3lBuQOhOYX9Me9JmvsPqosjF6+xFZa2Fh/Xj7QNvzJOqUOcOiRUV3SoFu64eX8HJBNU0KjKbfHUS2mTrwzB+RTJgOACZa4gAdN8ZCSz62Lyj6BpKzMi2kUfx5besmAVLhcKcp49epSKDMrie+rAwC/USVZTzh/DCHGhd5mlfn5y1eacMY23Qoyoupqh0iWeHC7IFjYfV2i6uPMAMw+F5fZey5VvbL0LczIlZXjeqar0Vzh5ZZQbVIYPlyWewZPSRkOry+g34EPWy2jsZAcYKZmAJmxKWlfYhZGFdSddYM3gmDbwbDsA6yg3sXb6TbU574V/Nkgs4/rQmtecdNeCOhGLx6SGwM2+G8rdXgLUCVi8FSPK3lvcYuU3WOdD9I4G6HsFWQ4sA2ZFVi7QnS91ihVPL0tDcIwnKXdPy+Yzpb11geqgU+1n71ViMapHosPdxTuoQi0f833NW9f3HyHf7e144PgmRaRn9RSLH/f752fhm5ZDfdfV1xpJXJwa3kEwjPY177PmrmZkRvN9H8JvZ1EbnKBCu4fO6Jbs38+rpLRgZC8FneNZdUhI1P5/uUJxcoNdPx6742Af0HXJnwuMoIq3sYljngJKC0x5aTdjeB/njLKTHFw6Nnvtez4MUTy2SP0qJ+jfAF4sCNj04AwdsiFdvpu+/tpr7BV/UiTVRWKLVRowMzimPnwnYkjUGb43MOnwKEQZwFFJNLJjIo5XXMfLsEHAXkMkhSRW4RS10bpdI6upIZmcfSy/pquvLyhiRHgW7jdrUwVhb6n9SsdzfdexbWDCErFN7r9ZnbjJ+V8ceZf2jOdvECE4UNaBzgS8qrrFfIVEOg8TzBRiItOoMo/xP6cuCnH4GC2g8CW6eaDDfXjXg1mIoRqSrjwxt1uQxY1cY+i9Hz8JVd8nDhybkSFYCgd9G4vZAqZU05bJFmnloKQuXCTtmHeF1BQtcdxDFGNm0zg19Bb02fjZI2fo7+EtmrFwmt6wayfLg0Sl+mvWUvKXGxfJLMIu1dvVY3GyAtIqEcPQ6n9lZ3KOeCtDM4txqv62qt+ivaj6oHbcOMtcR1HoO+mnPCaDVRS/HJni2MBj5NI3m1yX2xt4a6tB4hRt7kQOJX1cRAKqz8aHRAHBr6z2/YkQlJFpiyJzhF5yOCa3VtKNt1sfph0NDJcxc5obtbEDw5k5bAQshcXnISrhsPtVRm/9sudejiqhCrS3l5yRssm7DELEARfUZlQRJneEQuLbGeWU0rKU052+tv4aqo2joOH+gm7NHMfnIgr181F96aGKmqaLZhWcV/CV21+cbuyfBPNDlujikKcex4XPfdrn60x9TLJgRanZgdo6qZAB1DYuFaFqPGStdYfKPdxEtwXdVXNcsOMNFmVxMps/P9piJTh6fmLgEK+r5pl5Hs4FrETBZafv+mBInWRq/8lacrypUsGph9oblSp4Kvw39+8hTQH58Di0Y0nEm9VLTtjbr8neZ62Mt229V1jt7st7UK7u6xcLx+jZEL2J5TyCsoa8gGfH/nnseUcnyh3RSUcq5M8OYnP43bbnEfEHa4/N4o9BGowa4M/gu0XN8oAnVU0WNz5zqBPCWnUfty2Hqj0pcd2oRh7jGX0B5BadwWO64qQN55NeNPaEtGjI3jL8HnfpFZE3AP1eiFm1dBlnWu8hp5YpBfklmaF7nMweOQq05C4W+ftqPdwIVokrf+p/k7REJBJr2r89ZgZprXgPapdovOr3hautGkp+VXDAmHzJTPELvBpFGy3IyICAeOwnYp3HAoNIPtodeHPxL0SJC7Xnp0KnLDzGLBPZKJVJLVbpO4erd54g0vuEG1BzllS+zEUEP8j1+tnKd0Bja3aolFZB6p3V1/BPlFdZyS72JuHMdVWaqd18RWkrm/8h6+q41zB4i+AWPXnxMURP6VxD662cX1ST62xVUF10JSiK0fq2+a3sgD7L94zzmYhttA5txVzFS9fxtoEOVR5ZZtt9QEN8iLUxnzUyl3L3+Nsle2msSu8YrtXtNTBlmv0b4iRGuhSegRF1tWfB7NpINH3qaELjrZZwYzfJgxnSBeRWTHDTerio/jpVY0qlD5ON9r11jhu9AR9efHs4txNQDA+nunOHseJKiuhUZHsPHNo6Nni1RC24yAyqfCufJRDltz/TZd+nEC5tygsLiU/n/vBhO426JXyiZQuFDA28VUqsE3M8PMSoIRq48XO9wauFnmhTkLAkfvU/Rmcilf6DgubCaBQ3cA0+vJaIdsRrvyzIML6pf7uRs4+cw23ZuY98Xzaz8TQlQXCDtc7jq+z/6tpHAMWUYwoE2PnpmPmTMZYofLqIiGcHjw0auXiuzokt4xMQvGZ+/dJ54vCz2T+Y9uxoyehp/1o/LXWINfQDYZQwCssHrwo6WOz3XG97B5CajemusmydoqyRYwn3r/QXpPW/zVGnp+/CvdlyErH5MjJLDVJbyYSoBMaxDbMVZXNeb9ncTEWDbVhY4V49xkX3WYnp6iUqcbPFIvFWqTRsC7k5cIyztqJyWAQZ4/w8ynWKi8ejuK7nUfjjvn1lFTONDZWze8v+Hd84/tg/7VdkcrMBGbsuq47B5grHZTFltGS0+IdiTFawjpcR4UsdySDriokJo6RRIj2TeQPWt6+ics7rFbcn1qfzpeYbTrabQ5v18RRDvUrRbDHLfY0qkySfxbMLl8XUutass5njfYyiLDwk+Kf9xaem4BQ1bezQWFAaVWz7thhTxPnwpGeTkndcjankpOkLJSVlVXLyqpQpghjDMz7QX4aLcsi1/5R3s//JZRLLwwXnpr4Vp+abFBVEmD0c+ZJ1yevKef8qf1xcbU1exZGcWxSM1o/Cywfdf/6aE4Tbsp+xjd87aBr75stb+u74nH/KD4ILHW3Z51rznP71gQOmcjDNa7DeuYryuWafjD3lzd497vA2u/OoaBzReVTSZrNF1lyt0mtrVKZbzDi2a1XZv67jBrsnti2fAFLl/PCS+V+KKwgP7fV5xT/5oTVXbSjNe76tPW/venfFuKpCLmrKsombK+VqrSdT6jWZpc01mWFd/ik/ZbR0tGS/380LX41t5r4kIL+biZsaXQ1Z0KnSNplN6mafyhrx1VQNbo6MbuC+zG86qCtGktmdSm1zc61Ma9Swf+3PqrY3Vzy5xDMhzu1IviZmU5DAkvzFgGCuAEYd8KKb12y54Qt/jK4lhdxM4ehkohWFN6rU1hsNhoZuefb/f4RXwZ/PE5qyb9eCFCspT7Byv2lfkXZWz8fpDDwGxbHgjs9witlOce1E24CxjmG04iaZry8KhM+kUy42l8eV4Ws7LZrMik4RPJ6YnnBrRjNGoTK8ZKnRNFQ4zaEbDDQOR9wa50wXWobGjd3Rx6aPpcMM3OD5zfj5rXHZKmQeRq/Mr3l3nnUrWFya73x7fuTUfOh8yHFuHkIjxhZUe4N9j3KzRn7Jd+9CZsRSWE4eJz8enBmfd027Jsn/7JxZpML1rv1hK65oBXbmOGs8tfXPD+rRdTs4mnEq8a+wfuajimKG1l4nETSBHRWLwbprcrNcXlf10po8PTE5boBOJp5JpDXkdEL9wcAiTaRhL5tyLaknLdGrza73jrS3/PxmSXVulqPaWbKvsF/4KyXpGbpIaVY2hbaPjqY4+/XG3pwcQ2+v3mFvNaqWLZlQxJUIOMzmJLtYRDFupLM/utXF5FhV7uTPviqtLQWFf7IKUzGL1RZrOb2uPE5PsVZrrtPKevJcst46bcMAvXaRxfqphk4teMhiPTICC5szaDD2OZzG3n5Djn04K8k8zL4/R0/t+o/F+ndzKn3/wxF2smXICbOYiqpJfwI2L1evK0/W4zMX4erJc3F6rZMHqMZHLNYjA42ev2j/M1n0gYDN6lRrW6xWhc+rtpLO65QlzpZsbVeHztZHI12i0y5paBTuJRr9knbmDOgJTUpnoywnKr61LHyprrCS1x29HMz4J+JvdoshEZvdadD1Op2G3h6DQ99mMk5WrQR9co6QllaVqBNzMt+mpyHXhnlZBlU56ZNPocHTCD6GK6+0MEUX8wp/yR/bsUlbWLi70958LyTcUZREnsgQNd+783868xZVJzw3+XahdqBH7f3UXJcp82XnyLrqNGZViYbX7bLxfCVKfBuV6k9jXqdQaXkLQZj7NaCEs5Nw9gosTyEuXxT170gmt2szXNy2QqW8oqqtG/RPJ5/CXVfSdFLy1JWxPMT11rJZPfkBefb9DH6SoNCIW/44FMrXRk0mFpWXA/eu0bqjYznuxYTZ60/8k37//l+K3N86QOE1QPF0JKh8x+VtoXjYO+0ad1KgVJR72qDrcoqofyplKwsV5RleB7l8g5xAwzr6DIZep1Pf22twOKXp1y31GOyDqd0/slj/L0+lL//fUjZD1BtPWt/BOewHSuYZHX3d6N3/d0zt3nzUl/0jQeWebfNHa0h+efK5sbibz7bLVZiKUX/i/EG7xa2YPE1zjUg6znXho9KWY/bSb+ETLL8g+ff4DtFXQipFGB19ZsWCNTo/X+qsKSjnuZI27mkR1JYmJV2KDT+8VReJ3ZeoI3HEJncqKH6wZXp8Aqu5iassMzJTrKtyiYK0lhAmvjmFtYvNWyX4IW+QJViayhzjMxvD3T0sRYlNIyuq55gAgy0ozHP8P/kJ+XBS6MAVTk3nAfz6jvwOWB5UvmPy6a0/4iSAsOlQEl+i03B2Z6HbY3p06snUjSeTNwqfckD4/icrX3hyy/2ke/bJREhduevJQ/uTLuSG0Bsp6z6YuRS36f7VDfevxM0s3uDXU2DmdpIu9hm+N/gaFv/7VuXqXVs3fkrUcxwGFv725082HtiaXgk9kYW5WSvz8p7b4snB5rTMrGydqcoLh1yP2hJUV5uIc84WJhn1TL7FYdcdfAkj2Z3BfUVcoVAIqdiMqISHiX/qFBY4MsWzpTEtXC7TYk3jWUtLzF0LTmliKpHISEqKo1UqGLFFyyqy5rxeLR2vKCqaWPO9VeEwx6JK81osaT5zcTlmFSNkYXjxHxSc7w6z9cE8/uHIspl11uJCWa6ukAbHk1dYU2hmrfmVZvuS+rX4xOk/aMSv7hWvjd+oL/KKTTntMpVHp7fULSwxnROTTCvs9fXRYwNAwGpq6QbTrVG6r2s7VXggg/jAQJCmV6aqmpNdUo5DoNW7fbznSkrSLUZeOqH3SErMSNjOYfq7JkMVVaRv5GcWyfkccw6vNk4KI2dqJJILeY5Vn7c6gp72/j3dGZG9wQ90LL+O5NJyR+hVNylinUYi0OjFpMz3hxJZY2tHBmL6p6SrbGHL3Kus8YcVlVLpEq1V62tXQTrWWiPUlCX3mV2UdaZWn9ohayLNGmu/sMQQnSWrkE1zDVV6g7FBrfQa9OqGDoW9m6K+TaXe0VAoOXeo1NtOqCRlb8ASim9rRn+oXx0PfGxhL19VrNSoKnslBVAIvRJ1pUapLu7lF3bKzFI2z6yQ0ZsXSSn/NNG+tfu48nyZXF7k49kdPp6iSC5T5Pu4dgf/PJN9gc97i818EwiXtrDQlOds8WlykGcMtU8tsSk5pVMBG18P/LTI0KhRNJeguo5Sl/0DtV39xc18poY1A4cG8NC1SwesXVdSdItHz1RLhBdyHROft9qDfur9c7ozPHudH0QF2tQjGVtaNHa5w1j7uZ3oZCjWx4dog0aJXp2KbAdV/QG7nfM6TpIr5VTr9Bkel1QsyXE3j16XUZ2bUkbnWGUK/XuQSkm3KuRsC/TFt28p3PdmlLuaWvK9z8mBZbmeCNzQS3PUpKjo2OPJ+Gv6elzVpIHCzirIVrG/K6N+dDK7Rme1RX5ZAkdx6kLppsrYipak+BNxYQe+J1J0KdxcYjwjbYs+yXM1k0L/EB+9Co97r7E8Nv/WV9Q0XUo+jRntJLCgdLWFfhS77We6q4BbuNva8aZ3H5zAkXT4kJlK/LpbUQn/JxIeJ0auHSmNSfrmN/fnuOKa1F8+1sWt9YDZLDUU5cFxnMwiJJdIOdHFTJMxTUDVRS/j2pJfjEzjWRBn9sPeVOYlHjOzwGHJJ0BCAkIgIAkJAPr4Hc6WiO0VO2zlAmtzDJzGufK1YkWexeXKtyjE+dpcV1JiHIGYmEQkxCUmvEFYwMd+TIj/OBa/UGNzqAVChzbL5tAKBU417IokS/aLEQyeEVzKmyVp4R5R9WnKAqdNZhZRimWc6EKmycgifUMIICQAIYoUFNzH87VvdxiOoPxEIfOikvFuIblT9d109XewtcCyjFRI+ZGC48OWPK1i03nuovLPgu9t4hG0v7KOaiHslXtnDw1VmIUWGiTijI+ENOqz/ZQYfUdugcUnV9XoVYqyRr45VnhhVMycSv2x6h5qy+Q7BMabv+NmC9TrpaL2AnrvaENXzrvzytW1OnVmaQPfhBcUwiHdTYFv9lM8v631p+2ytz/N8ZsHMj3VuxoHnllQOuU5/0bfW+yU8pesp8NPeCJOtGtfsqS4Qd86Xz26tr8VViGc/d5bmmP3tkiOFiCiIMqoHYuiaWFPwfiPpsZA8nNnRif80sloM0duXEfnhk74oPa+fR17d3EJe5fle3/ikX0je6Ygnz1r38DRwcHaCa4ue8NKzy+opGZv/Gni++x1PXpJcS+3uwaSfBWj62dOMa79tawEpZcUiXXYzFS7O/nqUeVGfe0otZjzcxdDVYimqNkWa5gz4l0oyO9er91swzoiSV7Gp0z51fs4Auu0WijZFckFIW8Y7LWTd/o92zz9gK1dNHIHbp5SfzdV/R1z1D3fraR5M1SyZtZd3b5l+zkx893sM0uOtFngsjZf3epBV29s5nDgyZA3ZF0PXxwNX4SA97yvGZcOWw7VN5gPjQ/7XfF6njf2DusONdTkCVe4a0Yl9qI1kvoa2Yq8POn11civiJYbu0fi2NFKbHykrlSJfWaLuNkq1NrPULrUh58pfCuV/1Eq408XnZb7NSM11ENbzfyJyWgMTOiJSTlFcElqcsT95aaLY4Ftbc3wX5imiicpkDFOx32+3P23/VJCygYycVlS4u9Zk7ufpu088WDNC3P0f+P5wqzidGlmebrYLmKxTC7zdgv/75d+jad+l5qel2AQpdoFwxXl657PhcWvGJ9K3Wwyq5t8Siv/DiUT58Hx9MLbsmlUNwqhblkpbaqjjrSm2MMWk5I2yS1Rr2VnqxwNRRXCbCLjYmXK6p5UxluUBPVda7QpylEstdWVLPlV4KIrq3MTPZqzscwYUuImmzl6k1teX1QpdqRYLtSSVtMZrAuUROddS5QZZy/5ZglrQ52TkupqyXJnDrhxjzqdy/X2OU4Os2NOUcDPKFWpdG/l8xX8IqH3qot47vw2PDtJIGCz417+cqwgZd/SYrkgO7ffbBrOdan3gDknp7d52JXLaQmiGWVdut2eXqdQghtnhVKhc8rIJddrKsXiKo1OXFkp0WjFqes05PvHNt1G6wTeEXbyjTX61mxZNaNmFy+6DofrieGAr+sj5T+v7/kh6ciy2mX3beXF5QLbvtp9/W6Be/cPZz/ybL/nAP9+limNaWQxmXoTo+hmRlaZFMb93SiJC0iI/yU+DolPCIC28GvTr1BbebzpeKPia3OB/2DeBvOJ1Z/LzBnPKt0iUYlcppBbqHAmtMvkr+Iy0YdUW1Znt8P2DP0UI/UGnXYjlXEza2CoPytreOBUYUeH3drW1nfVbh3ozMqCpHhdY5rBuHKQ9sqLZx6/QEv+ejov5r6Zl2rhlfXUtqjcFLXu30H6zOoMNoGeUhOfH+uKKW3QKiQF9ZzRse62bngG615bkTPn9eK+XVPh1jbzc0uy+rnn7sxQBA5VerPFzPY5M4W0dQduD3DcuW6v8G2s5arlSu/w3ICuEyKbzFMnMOqqubJK62QoKzyVGS9IO7IBseJvJ0xiWXxDPt0qHkVGId73rA+81CHiubGdDWdc06741xz7Hfs6gmUU8unszvNjQHo8X5ZMgDHc8t1KPswt+WDo19aJVjjjLijIyiqgwqx8HdqOTDtbbxwiUAkJ0UEQJsyNtxJEMwejVqdBd4lvg2/95WwBy3P6e3b4Anq25fgcPAk8BZ9tWcDAK7NQX3+r/iav4lZF0voDvgMgimtta23p/az1Mzh1JHX7it8wn8SnXMz1BrPLsoVcaW7qujk6PvEzgZeQXpYlhJU9z1sGZyyv77QMzFogEmvObYOu0Xf1zfY7JtLn/ZPPHSZ/fPldfx7g/nl+8sn8igheFpuZIxQxnWbF49syWA6RkJVjc3MJyUWnu0hEzzXu6WPydwEWA/jA7MrMyWIe1s6qWuuClyoBXM64ZOnlzoHOj9/Jc/wXoG6q6MrmxG+hfysGTnH7wSgSOY8A/Qutjcj6rQfAbiLeJ5HuE0k3SO+7ALcFE6u3dK+GnwSd01vGpyFCtWYieGp49bKgTwV/5wEnmdJCOs/AHiI4k5PVhCG2tz6fDs8nkCt/IZF/qSSTnb+QSb84SXYqjc68aFBEp9SXSyLDwkvKbJfYNFr98OXHP/IirqxRHsgE2A2PmLog8LMT/+0CX10Ni3o2Mrb75bzNHnjjRkYS+wj8d5pUiZAWIM48N+VRb7za9mrrha+dAWoZBBjyn5f4teL/eq74n1YV/9tg8f+d77YYjQFrDILk8T2VyGBAagkjkc1IqBD/UotXyMLifiSPEMrhRVBGDCNwuEILjjOk4WXSrs/CMqyoCMKJwYMXANsowAQF6CkrfOKLi6I6xACPwzotYRYUMQ1cFnx3zH8Y5h4E+WuxnBVOHgVIqsyL6IYZrDHISvnE58d2Qwv0AJ1gWFjcXinjowxLYo6F5wYX1kkVe3HAYHquidDjJAAPViAnyu1hSnfJh+FiO1Rmu3BvQn/JPjXLMI+NP2OTHFv02E6IHa7UM7HJy6+tOATUEDwHhv9kmZHfnK3ssnE391SeB+e419j3rxzDDLDc/hCAIbP5fWjtzjx3mbWdxdhy+gp1N8xiV2S3c8Ph7sO+tC2Rm70wwfXN1cByfsT9s84CA69zYvk1zfw3/FYNgm7Oz2o3zR3fNWy4ewX31u45mNDysSOh8toxUI7aM6UNhXpsBqx/EGSxDsz/2FGYplOlfaoqpwzDz0fU/uLjgD/39W+H1wDsOAIwAtTHa0Bxkts5yCOtlqINt/5e4QA1utcHt2cG2616TtVOzB/AsG+L9mvzugaOWeyJ1R2WnvbnVqC4nYPLSxl6ZcwHJ7n9+KAgUC/FPJHr+bJ+4hUu8BT/kvMjnEagYOJp48rPK1x46xQZ8Ekf4IFs6Zkxp0F2B7bO+bruN7SYc8NKbvkpQI38265vJS0k05gmaZ7yOdPWOwXYUM9iDIhXuLD4FHTLqKr8ywuSUIyojNXloLbXVfY1pAuzCTmFFhijYQW1ZQ1iMLUuYf7OaF5GAb7KflEgp4NIqoFNRKP6E9mHNH+l0CDRKMpL4gmHIUXUUOABLkap6g7WKQUbISn0XJ2HKSM+WBRRiMfVMTFKemPr0kQ/L9LXkWXML33WJsKg4P3MzW9+tS2bZiwMxFwi9UtqUiNl1vnMkOC2LpsMCc+72V4/Ct225PHUnKdUuZHcmhsympfjXQC1KcGoU1AQQT3poaXOml7Biy01Y3V+nlYQee0V2rg+gYEABX749f/PMFL1T3BAwNeAr79JmgD47tOIatE59M3RHYHAQAEE1KDSe+cb9v/ohBCTD3FGoy6o6zXB0t79PVbVcfQDNOF341vyOi0rQbr4qs1+nB0KmCat3Qq/LVryjzIFw7WTowmFq8wWOOsYtEgcEvTNjWDL+41G+QvvsKLxKszaRNQZhl7khGdc7wvuPhqrDgqtVYJ2iwGM4hGLCy4fXIUUpRKgAFSQPglOWqYRWoZ0JUUwIAPoGa9w8bT/W3Nfi1+H1s4lHm5NpPC7fU12qnzWZsSIQRQK15fRMpp4mGukDFPkfWG3K79JRMnx5egZgjqj0CL01EG3Og+QkwcfL3yn0HIAr0aE3sbTOiixZhk1SV0blNZJd4PYAUmCNSAHOySDGbRgBXHr5NkmIQSUtItKraSsEY2mSfFKTKX4jEspc6Nw3Dwc56oPLovERmTjU23CwK/S+F9GkN+pzmGJAK0X1/eHnCMZHEUgPncFBQ3C3NGVr4nbLzSHRVKTpuY37BnLDlLpVgboHR8tH4nKGP4QRlaTOks5mpP7W0q2C85uWRRuQXBReA3gFYmyAc9dmhkqvz3B6zFaV0lvlsgKA+VKQGsj4moXkiGMABwPX11TEFvM1HTMHhNRBTJaeLwKEqAIhqEV2qEHJmFp00X5nLjPkdYse//XWBysPuBGH2AGgDPwOwwArGHnWmgA7+RzGQkCUGOobBWau6YyZa6M9tR3GJMlBGQ0lMMwM9t1ROv0yBjblsFeiPd4N9HDEIn+HIYS7OdhAeSOD0Oj2yICe21DwzCoSodGkKKuhiAQJg51MOGCSEjNFipC55bAWe1aVWuTpcdGb9GsVon6ZKMmPZKnkTt0U+JxGrW6NO9Ejzu5ukULRXuluUY8uSwcLL6i57q8Xj1HIIPDoL3XqFOsPqNnc+3akAlx8adZhnXJ1I58IKaRKUeuTqlZZoletb7hhTGdv8OgrkZYiC8hnEXhDuqz+goXw+28rtWyo3q9adPaq3fiZMwUisYbOnlPsgZX7T6I8tSXafjU8XlRmzb1YrBav6G0KhaUya61hNAznNEAlrgaFFxW4xW1XrVBKoY6ab7BVO+Ka65jSceW4YabbnkHJwH1VqMNhLU0t9/oto1ec5jID8QkNVpv7R0faHKXglImle+omTST8Oatt9rDzKKd1bdsOlJR1vlwoJ3f06NPf9DQy5lABFMT9pkdkG/QsBFDnjfqdQV+VKhIsWklSo0Zt8xSZdzKVfjeSZVm7RJTH1euy/rPOUlygpBgJAQJRbBIGBKORCCRCC5RiU5MYoNPXOJDSEISk5TkpIQYUsihhBpa6Pye+s3vSQ0jaWGGJSDpokRKQfQStL2o5py3SjiMaNqwkwEXjje8yQArzBIeGjoXXPSWI4465gUvettpgULRhJiy0hqrrbVcla9NOiUoXCtsC0+En/zsODIKks32qaYPX3AEEUYUcSSRRhZ5FFEmMyrrGD3jQw985GMPox7or3fV99Vjex9o5vPFer6ILwhpXtfSXttSmG8PssSEIplDkvqC/iC8FXoaMO0P1H939jzZrgU/ZM2TfUHPXqPm7Lv7XF277x6gZ8wh0QPjcNC17e42LSQUPk9BBN/kBQqEFipIaCGC+iSIg4JAQl6RkDOhIMgCn76AoAWCIIMEgfoEAoL6XpAgEAjUpzRV8g0KZRMWiFYV8mVilPHsy5ieH/fUuUDtwwYp0WfDqC9Meg3/2RzvZuUm9G9JpfwqhQJJ/tzGqn6kq72/tyMEHzRH1koRX44jykL+SaD69f+xDm9Hb/T2CC9swoBUXYE+pOfulrphG3FMKIv+N4VvgSFfb7SbC7kSCf84srjih2cA"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=4ef53fe41c14a48b294541d9fc37387e","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:23.874Z","timestamp":1785145403874,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=4ef53fe41c14a48b294541d9fc37387e HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: W/\"65a77ac3-430c\"\r\nx-powered-by: PleskLin\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":17164,"size_decoded":6326,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (17163), with no line terminators","md5":"4ef53fe41c14a48b294541d9fc37387e","sha1":"b40c361471225c030e272f10b8d32307b5878223","sha256":"cc039b37e34853a9bef9d693ebc4366b38d9cec1aa91e0109196cd62f870ae52","sha512":"52522b58d673c142bfa0b2454500f1aa944ffe41b4ab7aa93ed5baf35b97757e6923de033b2f509de27081a4c9e706d2b7c8aedfeba0fa6c9c560aa082e6b997","ssdeep":"384:CCppZUiNztDnuU1klMOdICwyFfJn22hxZDlTROvgqjTq:C2oWJlnWN5J2aROQ","tlshash":"d572314dfec1b4910363e526926f940ef3bb1a56b41fa9d0826ec1e09c7858f4137e5d","first_seen":"2023-05-07T19:54:55Z","last_seen":"2026-08-09T17:33:17.735533Z","times_seen":2082,"resource_available":true,"data":"KHNlbGYud2VicGFja0NodW5rZ3Jhdml0eWZvcm1zPXNlbGYud2VicGFja0NodW5rZ3Jhdml0eWZvcm1zfHxbXSkucHVzaChbWzQ5OV0sezQ2Mjc6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzM3Myksbz1yKDY5MjcpLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihlKHQpKXJldHVybiB0O3Rocm93IGkobyh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw0NzY4OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDczNzMpLG89U3RyaW5nLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHR8fGUodCkpcmV0dXJuIHQ7dGhyb3cgaSgiQ2FuJ3Qgc2V0ICIrbyh0KSsiIGFzIGEgcHJvdG90eXBlIil9fSw3NzEzOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDI3MTIpLG89cigyMDkxKSxpPXIoMzU2NykuZix1PWUoInVuc2NvcGFibGVzIiksYz1BcnJheS5wcm90b3R5cGU7bnVsbD09Y1t1XSYmaShjLHUse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvKG51bGwpfSksdC5leHBvcnRzPWZ1bmN0aW9uKHQpe2NbdV1bdF09ITB9fSw5MjIzOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDEyMTgpLG89U3RyaW5nLGk9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihlKHQpKXJldHVybiB0O3Rocm93IGkobyh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKX19LDYxNDg6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNjg2Nyksbz1yKDY5MTIpLGk9cig2NzAyKSx1PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIsdSl7dmFyIGMsYT1lKG4pLGY9aShhKSxzPW8odSxmKTtpZih0JiZyIT1yKXtmb3IoO2Y+czspaWYoKGM9YVtzKytdKSE9YylyZXR1cm4hMH1lbHNlIGZvcig7Zj5zO3MrKylpZigodHx8cyBpbiBhKSYmYVtzXT09PXIpcmV0dXJuIHR8fHN8fDA7cmV0dXJuIXQmJi0xfX07dC5leHBvcnRzPXtpbmNsdWRlczp1KCEwKSxpbmRleE9mOnUoITEpfX0sNjQ0NjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MDg3KSxvPWUoe30udG9TdHJpbmcpLGk9ZSgiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG8odCksOCwtMSl9fSw0NTc0OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDIyNTYpLG89cig0NzMxKSxpPXIoNTI0NSksdT1yKDM1NjcpO3QuZXhwb3J0cz1mdW5jdGlvbih0LG4scil7Zm9yKHZhciBjPW8obiksYT11LmYsZj1pLmYscz0wO3M8Yy5sZW5ndGg7cysrKXt2YXIgcD1jW3NdO2UodCxwKXx8ciYmZShyLHApfHxhKHQscCxmKG4scCkpfX19LDc0NzpmdW5jdGlvbih0LG4scil7dmFyIGU9cig2ODYyKTt0LmV4cG9ydHM9IWUoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSl9LDE0Mzk6ZnVuY3Rpb24odCl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsbil7cmV0dXJue3ZhbHVlOnQsZG9uZTpufX19LDQ4NDU6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzg5MSksbz1yKDM1NjcpLGk9cig1MzkyKTt0LmV4cG9ydHM9ZT9mdW5jdGlvbih0LG4scil7cmV0dXJuIG8uZih0LG4saSgxLHIpKX06ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0W25dPXIsdH19LDUzOTI6ZnVuY3Rpb24odCl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsbil7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOm59fX0sODE3MzpmdW5jdGlvbih0LG4scil7dmFyIGU9cig3MzczKSxvPXIoMzU2NyksaT1yKDEwNjkpLHU9cig0Mjg5KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuLHIsYyl7Y3x8KGM9e30pO3ZhciBhPWMuZW51bWVyYWJsZSxmPXZvaWQgMCE9PWMubmFtZT9jLm5hbWU6bjtpZihlKHIpJiZpKHIsZixjKSxjLmdsb2JhbClhP3Rbbl09cjp1KG4scik7ZWxzZXt0cnl7Yy51bnNhZmU/dFtuXSYmKGE9ITApOmRlbGV0ZSB0W25dfWNhdGNoKHQpe31hP3Rbbl09cjpvLmYodCxuLHt2YWx1ZTpyLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiFjLm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohYy5ub25Xcml0YWJsZX0pfXJldHVybiB0fX0sNDI4OTpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0MTkpLG89T2JqZWN0LmRlZmluZVByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe3RyeXtvKGUsdCx7dmFsdWU6bixjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChyKXtlW3RdPW59cmV0dXJuIG59fSw3ODkxOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDY4NjIpO3QuZXhwb3J0cz0hZSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw3NDYxOmZ1bmN0aW9uKHQpe3ZhciBuPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbCxyPXZvaWQgMD09PW4mJnZvaWQgMCE9PW47dC5leHBvcnRzPXthbGw6bixJU19IVE1MRERBOnJ9fSwzNzUxOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDQxOSksbz1yKDEyMTgpLGk9ZS5kb2N1bWVudCx1PW8oaSkmJm8oaS5jcmVhdGVFbGVtZW50KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHU/aS5jcmVhdGVFbGVtZW50KHQpOnt9fX0sNzU1MzpmdW5jdGlvbih0KXt0LmV4cG9ydHM9InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJlN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KXx8IiJ9LDI0Mzc6ZnVuY3Rpb24odCxuLHIpe3ZhciBlLG8saT1yKDQxOSksdT1yKDc1NTMpLGM9aS5wcm9jZXNzLGE9aS5EZW5vLGY9YyYmYy52ZXJzaW9uc3x8YSYmYS52ZXJzaW9uLHM9ZiYmZi52ODtzJiYobz0oZT1zLnNwbGl0KCIuIikpWzBdPjAmJmVbMF08ND8xOisoZVswXStlWzFdKSksIW8mJnUmJighKGU9dS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fGVbMV0+PTc0KSYmKGU9dS5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKG89K2VbMV0pLHQuZXhwb3J0cz1vfSw2NDpmdW5jdGlvbih0KXt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sOTQ1ODpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0MTkpLG89cig1MjQ1KS5mLGk9cig0ODQ1KSx1PXIoODE3MyksYz1yKDQyODkpLGE9cig0NTc0KSxmPXIoNTY5OCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQsbil7dmFyIHIscyxwLGwsdix5PXQudGFyZ2V0LGI9dC5nbG9iYWwsZz10LnN0YXQ7aWYocj1iP2U6Zz9lW3ldfHxjKHkse30pOihlW3ldfHx7fSkucHJvdG90eXBlKWZvcihzIGluIG4pe2lmKGw9bltzXSxwPXQuZG9udENhbGxHZXRTZXQ/KHY9byhyLHMpKSYmdi52YWx1ZTpyW3NdLCFmKGI/czp5KyhnPyIuIjoiIyIpK3MsdC5mb3JjZWQpJiZ2b2lkIDAhPT1wKXtpZih0eXBlb2YgbD09dHlwZW9mIHApY29udGludWU7YShsLHApfSh0LnNoYW18fHAmJnAuc2hhbSkmJmkobCwic2hhbSIsITApLHUocixzLGwsdCl9fX0sNjg2MjpmdW5jdGlvbih0KXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX19LDQ1NTU6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNjg2Mik7dC5leHBvcnRzPSFlKChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpfSwyNzk3OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDQ1NTUpLG89RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPWU/by5iaW5kKG8pOmZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkobyxhcmd1bWVudHMpfX0sNTUwMjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig3ODkxKSxvPXIoMjI1NiksaT1GdW5jdGlvbi5wcm90b3R5cGUsdT1lJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGM9byhpLCJuYW1lIiksYT1jJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLGY9YyYmKCFlfHxlJiZ1KGksIm5hbWUiKS5jb25maWd1cmFibGUpO3QuZXhwb3J0cz17RVhJU1RTOmMsUFJPUEVSOmEsQ09ORklHVVJBQkxFOmZ9fSw3NjYxOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDgwODcpLG89cig0NjI3KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuLHIpe3RyeXtyZXR1cm4gZShvKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKVtyXSkpfWNhdGNoKHQpe319fSw4MDg3OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDQ1NTUpLG89RnVuY3Rpb24ucHJvdG90eXBlLGk9by5jYWxsLHU9ZSYmby5iaW5kLmJpbmQoaSxpKTt0LmV4cG9ydHM9ZT91OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpLmFwcGx5KHQsYXJndW1lbnRzKX19fSw4MDpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0MTkpLG89cig3MzczKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyPyhyPWVbdF0sbyhyKT9yOnZvaWQgMCk6ZVt0XSYmZVt0XVtuXTt2YXIgcn19LDg2NDg6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNDYyNyksbz1yKDcwMzkpO3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe3ZhciByPXRbbl07cmV0dXJuIG8ocik/dm9pZCAwOmUocil9fSw0MTk6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9O3QuZXhwb3J0cz1lKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fGUoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fGUoIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8ZSgib2JqZWN0Ij09dHlwZW9mIHIuZyYmci5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sMjI1NjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MDg3KSxvPXIoNTE1MSksaT1lKHt9Lmhhc093blByb3BlcnR5KTt0LmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxuKXtyZXR1cm4gaShvKHQpLG4pfX0sNjc4OTpmdW5jdGlvbih0KXt0LmV4cG9ydHM9e319LDI5NDQ6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoODApO3QuZXhwb3J0cz1lKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSw1NzkzOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDc4OTEpLG89cig2ODYyKSxpPXIoMzc1MSk7dC5leHBvcnRzPSFlJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzk6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoODA4Nyksbz1yKDY4NjIpLGk9cig2NDQ2KSx1PU9iamVjdCxjPWUoIiIuc3BsaXQpO3QuZXhwb3J0cz1vKChmdW5jdGlvbigpe3JldHVybiF1KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PWkodCk/Yyh0LCIiKTp1KHQpfTp1fSwzMzAzOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDgwODcpLG89cig3MzczKSxpPXIoMzIzMCksdT1lKEZ1bmN0aW9uLnRvU3RyaW5nKTtvKGkuaW5zcGVjdFNvdXJjZSl8fChpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHUodCl9KSx0LmV4cG9ydHM9aS5pbnNwZWN0U291cmNlfSwxMjU5OmZ1bmN0aW9uKHQsbixyKXt2YXIgZSxvLGksdT1yKDQ2NjUpLGM9cig0MTkpLGE9cigxMjE4KSxmPXIoNDg0NSkscz1yKDIyNTYpLHA9cigzMjMwKSxsPXIoOTM1NSksdj1yKDY3ODkpLHk9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixiPWMuVHlwZUVycm9yLGc9Yy5XZWFrTWFwO2lmKHV8fHAuc3RhdGUpe3ZhciBoPXAuc3RhdGV8fChwLnN0YXRlPW5ldyBnKTtoLmdldD1oLmdldCxoLmhhcz1oLmhhcyxoLnNldD1oLnNldCxlPWZ1bmN0aW9uKHQsbil7aWYoaC5oYXModCkpdGhyb3cgYih5KTtyZXR1cm4gbi5mYWNhZGU9dCxoLnNldCh0LG4pLG59LG89ZnVuY3Rpb24odCl7cmV0dXJuIGguZ2V0KHQpfHx7fX0saT1mdW5jdGlvbih0KXtyZXR1cm4gaC5oYXModCl9fWVsc2V7dmFyIHg9bCgic3RhdGUiKTt2W3hdPSEwLGU9ZnVuY3Rpb24odCxuKXtpZihzKHQseCkpdGhyb3cgYih5KTtyZXR1cm4gbi5mYWNhZGU9dCxmKHQseCxuKSxufSxvPWZ1bmN0aW9uKHQpe3JldHVybiBzKHQseCk/dFt4XTp7fX0saT1mdW5jdGlvbih0KXtyZXR1cm4gcyh0LHgpfX10LmV4cG9ydHM9e3NldDplLGdldDpvLGhhczppLGVuZm9yY2U6ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/byh0KTplKHQse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByO2lmKCFhKG4pfHwocj1vKG4pKS50eXBlIT09dCl0aHJvdyBiKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIHJ9fX19LDczNzM6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzQ2MSksbz1lLmFsbDt0LmV4cG9ydHM9ZS5JU19IVE1MRERBP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09b306ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSw1Njk4OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDY4NjIpLG89cig3MzczKSxpPS8jfFwucHJvdG90eXBlXC4vLHU9ZnVuY3Rpb24odCxuKXt2YXIgcj1hW2ModCldO3JldHVybiByPT1zfHxyIT1mJiYobyhuKT9lKG4pOiEhbil9LGM9dS5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKGksIi4iKS50b0xvd2VyQ2FzZSgpfSxhPXUuZGF0YT17fSxmPXUuTkFUSVZFPSJOIixzPXUuUE9MWUZJTEw9IlAiO3QuZXhwb3J0cz11fSw3MDM5OmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19LDEyMTg6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzM3Myksbz1yKDc0NjEpLGk9by5hbGw7dC5leHBvcnRzPW8uSVNfSFRNTEREQT9mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6ZSh0KXx8dD09PWl9OmZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdD9udWxsIT09dDplKHQpfX0sNDk0MzpmdW5jdGlvbih0KXt0LmV4cG9ydHM9ITF9LDg4OTg6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoODApLG89cig3MzczKSxpPXIoNTg1MyksdT1yKDI2OTYpLGM9T2JqZWN0O3QuZXhwb3J0cz11P2Z1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH06ZnVuY3Rpb24odCl7dmFyIG49ZSgiU3ltYm9sIik7cmV0dXJuIG8obikmJmkobi5wcm90b3R5cGUsYyh0KSl9fSwxMzg5OmZ1bmN0aW9uKHQsbixyKXsidXNlIHN0cmljdCI7dmFyIGU9cigxMTk4KS5JdGVyYXRvclByb3RvdHlwZSxvPXIoMjA5MSksaT1yKDUzOTIpLHU9cig2NTM1KSxjPXIoOTA0NyksYT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuLHIsZil7dmFyIHM9bisiIEl0ZXJhdG9yIjtyZXR1cm4gdC5wcm90b3R5cGU9byhlLHtuZXh0OmkoKyFmLHIpfSksdSh0LHMsITEsITApLGNbc109YSx0fX0sNTI5MTpmdW5jdGlvbih0LG4scil7InVzZSBzdHJpY3QiO3ZhciBlPXIoOTQ1OCksbz1yKDI3OTcpLGk9cig0OTQzKSx1PXIoNTUwMiksYz1yKDczNzMpLGE9cigxMzg5KSxmPXIoODMxMykscz1yKDQ0NzYpLHA9cig2NTM1KSxsPXIoNDg0NSksdj1yKDgxNzMpLHk9cigyNzEyKSxiPXIoOTA0NyksZz1yKDExOTgpLGg9dS5QUk9QRVIseD11LkNPTkZJR1VSQUJMRSxtPWcuSXRlcmF0b3JQcm90b3R5cGUsZD1nLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsTz15KCJpdGVyYXRvciIpLHc9ImtleXMiLFM9InZhbHVlcyIsaj0iZW50cmllcyIsUD1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuLHIsdSx5LGcsRSl7YShyLG4sdSk7dmFyIF8sSSxBLFQ9ZnVuY3Rpb24odCl7aWYodD09PXkmJk0pcmV0dXJuIE07aWYoIWQmJnQgaW4gUilyZXR1cm4gUlt0XTtzd2l0Y2godCl7Y2FzZSB3OmNhc2UgUzpjYXNlIGo6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgcih0aGlzKX19LGs9bisiIEl0ZXJhdG9yIixGPSExLFI9dC5wcm90b3R5cGUsQz1SW09dfHxSWyJAQGl0ZXJhdG9yIl18fHkmJlJbeV0sTT0hZCYmQ3x8VCh5KSxEPSJBcnJheSI9PW4mJlIuZW50cmllc3x8QztpZihEJiYoXz1mKEQuY2FsbChuZXcgdCkpKSE9PU9iamVjdC5wcm90b3R5cGUmJl8ubmV4dCYmKGl8fGYoXyk9PT1tfHwocz9zKF8sbSk6YyhfW09dKXx8dihfLE8sUCkpLHAoXyxrLCEwLCEwKSxpJiYoYltrXT1QKSksaCYmeT09UyYmQyYmQy5uYW1lIT09UyYmKCFpJiZ4P2woUiwibmFtZSIsUyk6KEY9ITAsTT1mdW5jdGlvbigpe3JldHVybiBvKEMsdGhpcyl9KSkseSlpZihJPXt2YWx1ZXM6VChTKSxrZXlzOmc/TTpUKHcpLGVudHJpZXM6VChqKX0sRSlmb3IoQSBpbiBJKShkfHxGfHwhKEEgaW4gUikpJiZ2KFIsQSxJW0FdKTtlbHNlIGUoe3RhcmdldDpuLHByb3RvOiEwLGZvcmNlZDpkfHxGfSxJKTtyZXR1cm4gaSYmIUV8fFJbT109PT1NfHx2KFIsTyxNLHtuYW1lOnl9KSxiW25dPU0sSX19LDExOTg6ZnVuY3Rpb24odCxuLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgZSxvLGksdT1yKDY4NjIpLGM9cig3MzczKSxhPXIoMTIxOCksZj1yKDIwOTEpLHM9cig4MzEzKSxwPXIoODE3MyksbD1yKDI3MTIpLHY9cig0OTQzKSx5PWwoIml0ZXJhdG9yIiksYj0hMTtbXS5rZXlzJiYoIm5leHQiaW4oaT1bXS5rZXlzKCkpPyhvPXMocyhpKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKGU9byk6Yj0hMCksIWEoZSl8fHUoKGZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIGVbeV0uY2FsbCh0KSE9PXR9KSk/ZT17fTp2JiYoZT1mKGUpKSxjKGVbeV0pfHxwKGUseSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSx0LmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOmUsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzpifX0sOTA0NzpmdW5jdGlvbih0KXt0LmV4cG9ydHM9e319LDY3MDI6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNTMxOSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBlKHQubGVuZ3RoKX19LDEwNjk6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoODA4Nyksbz1yKDY4NjIpLGk9cig3MzczKSx1PXIoMjI1NiksYz1yKDc4OTEpLGE9cig1NTAyKS5DT05GSUdVUkFCTEUsZj1yKDMzMDMpLHM9cigxMjU5KSxwPXMuZW5mb3JjZSxsPXMuZ2V0LHY9U3RyaW5nLHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGI9ZSgiIi5zbGljZSksZz1lKCIiLnJlcGxhY2UpLGg9ZShbXS5qb2luKSx4PWMmJiFvKChmdW5jdGlvbigpe3JldHVybiA4IT09eSgoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxtPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxkPXQuZXhwb3J0cz1mdW5jdGlvbih0LG4scil7IlN5bWJvbCgiPT09Yih2KG4pLDAsNykmJihuPSJbIitnKHYobiksL15TeW1ib2xcKChbXildKilcKS8sIiQxIikrIl0iKSxyJiZyLmdldHRlciYmKG49ImdldCAiK24pLHImJnIuc2V0dGVyJiYobj0ic2V0ICIrbiksKCF1KHQsIm5hbWUiKXx8YSYmdC5uYW1lIT09bikmJihjP3kodCwibmFtZSIse3ZhbHVlOm4sY29uZmlndXJhYmxlOiEwfSk6dC5uYW1lPW4pLHgmJnImJnUociwiYXJpdHkiKSYmdC5sZW5ndGghPT1yLmFyaXR5JiZ5KHQsImxlbmd0aCIse3ZhbHVlOnIuYXJpdHl9KTt0cnl7ciYmdShyLCJjb25zdHJ1Y3RvciIpJiZyLmNvbnN0cnVjdG9yP2MmJnkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTp0LnByb3RvdHlwZSYmKHQucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2godCl7fXZhciBlPXAodCk7cmV0dXJuIHUoZSwic291cmNlIil8fChlLnNvdXJjZT1oKG0sInN0cmluZyI9PXR5cGVvZiBuP246IiIpKSx0fTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9ZCgoZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzKSYmbCh0aGlzKS5zb3VyY2V8fGYodGhpcyl9KSwidG9TdHJpbmciKX0sNjYxNDpmdW5jdGlvbih0KXt2YXIgbj1NYXRoLmNlaWwscj1NYXRoLmZsb29yO3QuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4oZT4wP3I6bikoZSl9fSwyMDkxOmZ1bmN0aW9uKHQsbixyKXt2YXIgZSxvPXIoOTIyMyksaT1yKDg5MTUpLHU9cig2NCksYz1yKDY3ODkpLGE9cigyOTQ0KSxmPXIoMzc1MSkscz1yKDkzNTUpLHA9InByb3RvdHlwZSIsbD0ic2NyaXB0Iix2PXMoIklFX1BST1RPIikseT1mdW5jdGlvbigpe30sYj1mdW5jdGlvbih0KXtyZXR1cm4iPCIrbCsiPiIrdCsiPC8iK2wrIj4ifSxnPWZ1bmN0aW9uKHQpe3Qud3JpdGUoYigiIikpLHQuY2xvc2UoKTt2YXIgbj10LnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHQ9bnVsbCxufSxoPWZ1bmN0aW9uKCl7dHJ5e2U9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2godCl7fXZhciB0LG4scjtoPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZlP2coZSk6KG49ZigiaWZyYW1lIikscj0iamF2YSIrbCsiOiIsbi5zdHlsZS5kaXNwbGF5PSJub25lIixhLmFwcGVuZENoaWxkKG4pLG4uc3JjPVN0cmluZyhyKSwodD1uLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKGIoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpOmcoZSk7Zm9yKHZhciBvPXUubGVuZ3RoO28tLTspZGVsZXRlIGhbcF1bdVtvXV07cmV0dXJuIGgoKX07Y1t2XT0hMCx0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxuKXt2YXIgcjtyZXR1cm4gbnVsbCE9PXQ/KHlbcF09byh0KSxyPW5ldyB5LHlbcF09bnVsbCxyW3ZdPXQpOnI9aCgpLHZvaWQgMD09PW4/cjppLmYocixuKX19LDg5MTU6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzg5MSksbz1yKDMwMTUpLGk9cigzNTY3KSx1PXIoOTIyMyksYz1yKDY4NjcpLGE9cig3MzMzKTtuLmY9ZSYmIW8/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odCxuKXt1KHQpO2Zvcih2YXIgcixlPWMobiksbz1hKG4pLGY9by5sZW5ndGgscz0wO2Y+czspaS5mKHQscj1vW3MrK10sZVtyXSk7cmV0dXJuIHR9fSwzNTY3OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDc4OTEpLG89cig1NzkzKSxpPXIoMzAxNSksdT1yKDkyMjMpLGM9cig4MTEzKSxhPVR5cGVFcnJvcixmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IscD0iZW51bWVyYWJsZSIsbD0iY29uZmlndXJhYmxlIix2PSJ3cml0YWJsZSI7bi5mPWU/aT9mdW5jdGlvbih0LG4scil7aWYodSh0KSxuPWMobiksdShyKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1uJiYidmFsdWUiaW4gciYmdiBpbiByJiYhclt2XSl7dmFyIGU9cyh0LG4pO2UmJmVbdl0mJih0W25dPXIudmFsdWUscj17Y29uZmlndXJhYmxlOmwgaW4gcj9yW2xdOmVbbF0sZW51bWVyYWJsZTpwIGluIHI/cltwXTplW3BdLHdyaXRhYmxlOiExfSl9cmV0dXJuIGYodCxuLHIpfTpmOmZ1bmN0aW9uKHQsbixyKXtpZih1KHQpLG49YyhuKSx1KHIpLG8pdHJ5e3JldHVybiBmKHQsbixyKX1jYXRjaCh0KXt9aWYoImdldCJpbiByfHwic2V0ImluIHIpdGhyb3cgYSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gciYmKHRbbl09ci52YWx1ZSksdH19LDUyNDU6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzg5MSksbz1yKDI3OTcpLGk9cigyNzQxKSx1PXIoNTM5MiksYz1yKDY4NjcpLGE9cig4MTEzKSxmPXIoMjI1Nikscz1yKDU3OTMpLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtuLmY9ZT9wOmZ1bmN0aW9uKHQsbil7aWYodD1jKHQpLG49YShuKSxzKXRyeXtyZXR1cm4gcCh0LG4pfWNhdGNoKHQpe31pZihmKHQsbikpcmV0dXJuIHUoIW8oaS5mLHQsbiksdFtuXSl9fSw5ODcxOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDYyNTIpLG89cig2NCkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtuLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsbyl9fSw3ODU3OmZ1bmN0aW9uKHQsbil7bi5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDgzMTM6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoMjI1Niksbz1yKDczNzMpLGk9cig1MTUxKSx1PXIoOTM1NSksYz1yKDc0NyksYT11KCJJRV9QUk9UTyIpLGY9T2JqZWN0LHM9Zi5wcm90b3R5cGU7dC5leHBvcnRzPWM/Zi5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXt2YXIgbj1pKHQpO2lmKGUobixhKSlyZXR1cm4gblthXTt2YXIgcj1uLmNvbnN0cnVjdG9yO3JldHVybiBvKHIpJiZuIGluc3RhbmNlb2Ygcj9yLnByb3RvdHlwZTpuIGluc3RhbmNlb2YgZj9zOm51bGx9fSw1ODUzOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDgwODcpO3QuZXhwb3J0cz1lKHt9LmlzUHJvdG90eXBlT2YpfSw2MjUyOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDgwODcpLG89cigyMjU2KSxpPXIoNjg2NyksdT1yKDYxNDgpLmluZGV4T2YsYz1yKDY3ODkpLGE9ZShbXS5wdXNoKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXt2YXIgcixlPWkodCksZj0wLHM9W107Zm9yKHIgaW4gZSkhbyhjLHIpJiZvKGUscikmJmEocyxyKTtmb3IoO24ubGVuZ3RoPmY7KW8oZSxyPW5bZisrXSkmJih+dShzLHIpfHxhKHMscikpO3JldHVybiBzfX0sNzMzMzpmdW5jdGlvbih0LG4scil7dmFyIGU9cig2MjUyKSxvPXIoNjQpO3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIGUodCxvKX19LDI3NDE6ZnVuY3Rpb24odCxuKXsidXNlIHN0cmljdCI7dmFyIHI9e30ucHJvcGVydHlJc0VudW1lcmFibGUsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG89ZSYmIXIuY2FsbCh7MToyfSwxKTtuLmY9bz9mdW5jdGlvbih0KXt2YXIgbj1lKHRoaXMsdCk7cmV0dXJuISFuJiZuLmVudW1lcmFibGV9OnJ9LDQ0NzY6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzY2MSksbz1yKDkyMjMpLGk9cig0NzY4KTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsbj0hMSxyPXt9O3RyeXsodD1lKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShyLFtdKSxuPXIgaW5zdGFuY2VvZiBBcnJheX1jYXRjaCh0KXt9cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG8ociksaShlKSxuP3QocixlKTpyLl9fcHJvdG9fXz1lLHJ9fSgpOnZvaWQgMCl9LDQ5NDY6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoMjc5Nyksbz1yKDczNzMpLGk9cigxMjE4KSx1PVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuKXt2YXIgcixjO2lmKCJzdHJpbmciPT09biYmbyhyPXQudG9TdHJpbmcpJiYhaShjPWUocix0KSkpcmV0dXJuIGM7aWYobyhyPXQudmFsdWVPZikmJiFpKGM9ZShyLHQpKSlyZXR1cm4gYztpZigic3RyaW5nIiE9PW4mJm8ocj10LnRvU3RyaW5nKSYmIWkoYz1lKHIsdCkpKXJldHVybiBjO3Rocm93IHUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNDczMTpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MCksbz1yKDgwODcpLGk9cig5ODcxKSx1PXIoNzg1NyksYz1yKDkyMjMpLGE9byhbXS5jb25jYXQpO3QuZXhwb3J0cz1lKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgbj1pLmYoYyh0KSkscj11LmY7cmV0dXJuIHI/YShuLHIodCkpOm59fSw4ODQ2OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDcwMzkpLG89VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihlKHQpKXRocm93IG8oIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9fSw2NTM1OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDM1NjcpLmYsbz1yKDIyNTYpLGk9cigyNzEyKSgidG9TdHJpbmdUYWciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxuLHIpe3QmJiFyJiYodD10LnByb3RvdHlwZSksdCYmIW8odCxpKSYmZSh0LGkse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpufSl9fSw5MzU1OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDIwMTcpLG89cig2MzAzKSxpPWUoImtleXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF18fChpW3RdPW8odCkpfX0sMzIzMDpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0MTkpLG89cig0Mjg5KSxpPSJfX2NvcmUtanNfc2hhcmVkX18iLHU9ZVtpXXx8byhpLHt9KTt0LmV4cG9ydHM9dX0sMjAxNzpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0OTQzKSxvPXIoMzIzMCk7KHQuZXhwb3J0cz1mdW5jdGlvbih0LG4pe3JldHVybiBvW3RdfHwob1t0XT12b2lkIDAhPT1uP246e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4zMC4xIixtb2RlOmU/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDIzIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjMwLjEvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sOTI0NTpmdW5jdGlvbih0LG4scil7dmFyIGU9cigyNDM3KSxvPXIoNjg2Mik7dC5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIW8oKGZ1bmN0aW9uKCl7dmFyIHQ9U3ltYm9sKCk7cmV0dXJuIVN0cmluZyh0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmZSYmZTw0MX0pKX0sNjkxMjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MTUwKSxvPU1hdGgubWF4LGk9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsbil7dmFyIHI9ZSh0KTtyZXR1cm4gcjwwP28ocituLDApOmkocixuKX19LDY4Njc6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoNzkpLG89cig4ODQ2KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGUobyh0KSl9fSw4MTUwOmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDY2MTQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgbj0rdDtyZXR1cm4gbiE9bnx8MD09PW4/MDplKG4pfX0sNTMxOTpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MTUwKSxvPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP28oZSh0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sNTE1MTpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4ODQ2KSxvPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG8oZSh0KSl9fSwzOTI2OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDI3OTcpLG89cigxMjE4KSxpPXIoODg5OCksdT1yKDg2NDgpLGM9cig0OTQ2KSxhPXIoMjcxMiksZj1UeXBlRXJyb3Iscz1hKCJ0b1ByaW1pdGl2ZSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LG4pe2lmKCFvKHQpfHxpKHQpKXJldHVybiB0O3ZhciByLGE9dSh0LHMpO2lmKGEpe2lmKHZvaWQgMD09PW4mJihuPSJkZWZhdWx0Iikscj1lKGEsdCxuKSwhbyhyKXx8aShyKSlyZXR1cm4gcjt0aHJvdyBmKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09biYmKG49Im51bWJlciIpLGModCxuKX19LDgxMTM6ZnVuY3Rpb24odCxuLHIpe3ZhciBlPXIoMzkyNiksbz1yKDg4OTgpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgbj1lKHQsInN0cmluZyIpO3JldHVybiBvKG4pP246bisiIn19LDY5Mjc6ZnVuY3Rpb24odCl7dmFyIG49U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIG4odCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fX0sNjMwMzpmdW5jdGlvbih0LG4scil7dmFyIGU9cig4MDg3KSxvPTAsaT1NYXRoLnJhbmRvbSgpLHU9ZSgxLi50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK3UoKytvK2ksMzYpfX0sMjY5NjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig5MjQ1KTt0LmV4cG9ydHM9ZSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sMzAxNTpmdW5jdGlvbih0LG4scil7dmFyIGU9cig3ODkxKSxvPXIoNjg2Mik7dC5leHBvcnRzPWUmJm8oKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSw0NjY1OmZ1bmN0aW9uKHQsbixyKXt2YXIgZT1yKDQxOSksbz1yKDczNzMpLGk9ZS5XZWFrTWFwO3QuZXhwb3J0cz1vKGkpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKGkpKX0sMjcxMjpmdW5jdGlvbih0LG4scil7dmFyIGU9cig0MTkpLG89cigyMDE3KSxpPXIoMjI1NiksdT1yKDYzMDMpLGM9cig5MjQ1KSxhPXIoMjY5NiksZj1lLlN5bWJvbCxzPW8oIndrcyIpLHA9YT9mLmZvcnx8ZjpmJiZmLndpdGhvdXRTZXR0ZXJ8fHU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHMsdCl8fChzW3RdPWMmJmkoZix0KT9mW3RdOnAoIlN5bWJvbC4iK3QpKSxzW3RdfX0sOTU1MzpmdW5jdGlvbih0LG4scil7InVzZSBzdHJpY3QiO3ZhciBlPXIoNjg2Nyksbz1yKDc3MTMpLGk9cig5MDQ3KSx1PXIoMTI1OSksYz1yKDM1NjcpLmYsYT1yKDUyOTEpLGY9cigxNDM5KSxzPXIoNDk0MykscD1yKDc4OTEpLGw9IkFycmF5IEl0ZXJhdG9yIix2PXUuc2V0LHk9dS5nZXR0ZXJGb3IobCk7dC5leHBvcnRzPWEoQXJyYXksIkFycmF5IiwoZnVuY3Rpb24odCxuKXt2KHRoaXMse3R5cGU6bCx0YXJnZXQ6ZSh0KSxpbmRleDowLGtpbmQ6bn0pfSksKGZ1bmN0aW9uKCl7dmFyIHQ9eSh0aGlzKSxuPXQudGFyZ2V0LHI9dC5raW5kLGU9dC5pbmRleCsrO3JldHVybiFufHxlPj1uLmxlbmd0aD8odC50YXJnZXQ9dm9pZCAwLGYodm9pZCAwLCEwKSk6Zigia2V5cyI9PXI/ZToidmFsdWVzIj09cj9uW2VdOltlLG5bZV1dLCExKX0pLCJ2YWx1ZXMiKTt2YXIgYj1pLkFyZ3VtZW50cz1pLkFycmF5O2lmKG8oImtleXMiKSxvKCJ2YWx1ZXMiKSxvKCJlbnRyaWVzIiksIXMmJnAmJiJ2YWx1ZXMiIT09Yi5uYW1lKXRyeXtjKGIsIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKHQpe319fV0pOw=="}},"time_used":547,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":547,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/plugins/gtranslate/flags/24/en-us.png","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.679Z","timestamp":1785145404679,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/plugins/gtranslate/flags/24/en-us.png HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 404 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: text/html\r\nlast-modified: Wed, 17 Jul 2024 10:50:54 GMT\r\netag: W/\"328-61d6f3c88c6a0\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":808,"size_decoded":579,"mime_type":"text/html","magic":"HTML document, ASCII text","md5":"a943672a32297727bab01c3e76977550","sha1":"3a667c4b7a457ef6c586cc581d533c128737bf53","sha256":"b9347f234dc3c8d56e015e86d88a1400415db8f7a5ad91f02b6a2323c10a4187","sha512":"0965d415f3a0cef31953702fdae345d46fefd72ce3c4c7a0255aede74a76e10b856892700529a444453a622793e0257248c5c99fae17d5b0b9fd4118e208068c","ssdeep":"","tlshash":"2e01bd0a08e0501bc0d3915169a0f22dc9c2f997aa5b180079ed91c6cfd5f89c9d35ac","first_seen":"2023-03-08T11:42:06Z","last_seen":"2026-08-11T16:28:03.144886Z","times_seen":38799,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29tcGF0aWJsZSIgY29udGVudD0iaWU9ZWRnZSI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBzaHJpbmstdG8tZml0PW5vIj4KICA8dGl0bGU+NDA0IE5vdCBGb3VuZDwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvZXJyb3JfZG9jcy9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0icGFnZSI+CiAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICA8aDE+U2VydmVyIEVycm9yPC9oMT4KICAgIDxkaXYgY2xhc3M9ImVycm9yLWNvZGUiPjQwNDwvZGl2PgogICAgPGgyPlBhZ2UgTm90IEZvdW5kPC9oMj4KICAgIDxwIGNsYXNzPSJsZWFkIj5UaGlzIHBhZ2UgZWl0aGVyIGRvZXNuJ3QgZXhpc3QsIG9yIGl0IG1vdmVkIHNvbWV3aGVyZSBlbHNlLjwvcD4KICAgIDxoci8+CiAgICA8cD5UaGF0J3Mgd2hhdCB5b3UgY2FuIGRvPC9wPgogICAgPGRpdiBjbGFzcz0iaGVscC1hY3Rpb25zIj4KICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKTsiPlJlbG9hZCBQYWdlPC9hPgogICAgICA8YSBocmVmPSJqYXZhc2NyaXB0Omhpc3RvcnkuYmFjaygpOyI+QmFjayB0byBQcmV2aW91cyBQYWdlPC9hPgogICAgICA8YSBocmVmPSIvIj5Ib21lIFBhZ2U8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPg=="}},"time_used":97,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":97,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/favicon.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:24.912Z","timestamp":1785145404912,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/favicon.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:24 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 1338\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-53a\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":1338,"size_decoded":1590,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"9a0e3fc3b834dc4482e28b3d89e64285","sha1":"f195830476427916be750d968a5cdf0b6216837a","sha256":"248845dec19300779c9e674df98a814edef9fab973003a52faff0ccf5f316a97","sha512":"40d6282299a2c3653e09ac9e60275c65ba215eb8a03462ab9d34beb7c8da1049e66cd411249885727c2959fe2e6d3c75fbcf8414e40753ea2c68af40607c3584","ssdeep":"","tlshash":"7d2156ee6658b8e9fac8435b7af16016511166fdd3844118e9c40ff9058ae8eac2cf91","first_seen":"2026-07-27T07:14:06.801986Z","last_seen":"2026-07-27T14:04:41.068784Z","times_seen":5,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzEiIGhlaWdodD0iMzQxIiB2aWV3Qm94PSIwIDAgMzMxIDM0MSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE2NS4zMDYgMEwxNTkuMTgxIDYuMTIzMTNMMTUzLjA1NiAxMi4yNDYzTDE0MC43ODcgMjQuNTEwN0wxMzcuOTYxIDI3LjMxNzJMMTI1LjQwMSAzOS44NzMySDEyNS40MzhDMTMyLjIwMSAzOS44NzMyIDEzNy42ODggNDUuMzQwMyAxMzcuNzA2IDUyLjEwMTNMMTM3Ljk2MSAxNzMuNzQ0SDE5Mi44MzNMMTkyLjkyNCA1Mi4xMTk1QzE5Mi45MjQgNDUuMzU4NSAxOTguNDExIDM5Ljg3MzIgMjA1LjE5MiAzOS44NzMyTDE3Ny41NzQgMTIuMjY0NUwxNzEuNDQ5IDYuMTQxMzVMMTY1LjMwNiAwWiIgZmlsbD0iIzI4NTJBQiI+PC9wYXRoPjxwYXRoIGQ9Ik0xMjAuNjQzIDU2LjkzMDVMMTE3Ljk2NCA1OS42MDk0TDEwMy4yODkgNzQuMjc5NEwzOS4yMzAxIDEzOC4zMTdMMjYuNTk3IDE1MC45NDZINTIuMTM2NkM1OC44OTk4IDE1MC45NDYgNjQuNDA1MSAxNTYuNDMxIDY0LjQwNTEgMTYzLjIxMVYxNzMuNzhIMTIwLjYyNVY1Ni45NjdMMTIwLjY0MyA1Ni45MzA1WiIgZmlsbD0iIzI4NTJBQiI+PC9wYXRoPjxwYXRoIGQ9Ik0yMTAuMTE0IDU3LjAyMTZWMTczLjgzNUgyNjYuMzM0VjE2My4yNjVDMjY2LjMzNCAxNTYuNTA0IDI3MS44MjEgMTUxLjAwMSAyNzguNjAzIDE1MS4wMDFIMzA0LjE0MkwyOTEuNTA5IDEzOC4zNzJMMjI3LjQ2OSA3NC4zNTIzTDIxMi43OTQgNTkuNjgyM0wyMTAuMTE0IDU3LjAwMzRWNTcuMDIxNloiIGZpbGw9IiMyODUyQUIiPjwvcGF0aD48cGF0aCBkPSJNMzMwLjczOSAxOTEuMDkzTDMxOS4xMjcgMjAyLjcxOUwyOTEuNTgyIDIzMC4yMzdMMjQ1LjM4OCAyNzYuNDE2VjI2OC4xNkMyNDUuMzg4IDI1Ni40MDYgMjM1Ljg1NCAyNDYuODc1IDIyNC4wOTYgMjQ2Ljg3NUgyMDUuNTU3VjM0MC43NjNMMjA1LjMzOCAzNDFMMTkzLjA3IDMyOC43MzZIMTkzLjA1MUwxOTMuMTA2IDMyOC42NjNMMTY1LjQxNSAzMDAuOTgxSDE2NS4zOTdMMTY1LjM2MSAzMDAuOTk5TDEzOC4wNzEgMzI4LjI2MkwxMzcuNjg4IDMyOC42NDRIMTM3LjcwNkwxMzcuNjg4IDMyOC42OTlMMTI1LjQyIDM0MC45NjRMMTI1LjMxIDM0MC44NTRWMjQ2Ljg3NUgxMDYuNzcxQzk1LjAxMjYgMjQ2Ljg3NSA4NS40Nzg1IDI1Ni40MDYgODUuNDc4NSAyNjguMTZWMjc2LjUwN0wzOS4zMzk0IDIzMC4zODNMMTEuNzAzNCAyMDIuNzU2TDAuMDM2NDM4IDE5MS4wOTNIMzMwLjczOVoiIGZpbGw9IiMyODUyQUIiPjwvcGF0aD48L3N2Zz4g"}},"time_used":103,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":103,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-2.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.044Z","timestamp":1785145405044,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-2.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:25 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 2511\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-9cf\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]}],"data":{"size":2511,"size_decoded":2763,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"0b03443be66be7f45912d186a1946e7f","sha1":"a1a50b51302cf263ff13c4355ee1bcf4123cfb96","sha256":"6ea67cc9fe55b8782cd8d004c4bab14cda5affbe27d9b12fd51bb499897bb601","sha512":"5e5d82edab99788259427e3f9f6862e7f70f5a530751680cc9c1cec4e7adc8ab12bc4481424898c80f16fe8b59d7b548fa10b0c1c32330edba0b89f78230a984","ssdeep":"","tlshash":"07514480b2e9d1a9e80787f486e5f0f076662cee2e81c68507e45c359d74ccd8e684d7","first_seen":"2026-05-20T00:20:36.601502Z","last_seen":"2026-07-27T14:04:41.093046Z","times_seen":7,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOSIgaGVpZ2h0PSIzOSIgdmlld0JveD0iMCAwIDM5IDM5IiBmaWxsPSJub25lIj48ZyBpZD0iTGF5ZXJfMSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIzODdfMjg4ODMpIj48cGF0aCBpZD0iVmVjdG9yIiBkPSJNMjYuNzM1MiAzMS4xODcxQzI5LjMxMzEgMzEuMTg3MSAzMS40MDMgMjkuMDk3MyAzMS40MDMgMjYuNTE5NEMzMS40MDMgMjMuOTQxNCAyOS4zMTMxIDIxLjg1MTYgMjYuNzM1MiAyMS44NTE2QzI0LjE1NzIgMjEuODUxNiAyMi4wNjc0IDIzLjk0MTQgMjIuMDY3NCAyNi41MTk0QzIyLjA2NzQgMjkuMDk3MyAyNC4xNTcyIDMxLjE4NzEgMjYuNzM1MiAzMS4xODcxWiIgZmlsbD0iIzY4Q0RFRCI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfMiIgZD0iTTExLjgzODMgNy4zNTkzOEwxNi4wMTkgMTQuMjg2Nkg3LjQxNDA2TDExLjgzODMgNy4zNTkzOFoiIGZpbGw9IiM2OENERUQiPjwvcGF0aD48ZyBpZD0iR3JvdXAiPjxwYXRoIGlkPSJWZWN0b3JfMyIgZD0iTTM3LjU1ODggMEgwLjc3MTJDMC4zMzgyNDYgMCAwIDAuMzM4MjQ2IDAgMC43NzEyVjM3LjU1ODhDMCAzNy45NzgyIDAuMzM4MjQ2IDM4LjMzIDAuNzcxMiAzOC4zM0gzNy41NTg4QzM3Ljk3ODIgMzguMzMgMzguMzMgMzcuOTkxOCAzOC4zMyAzNy41NTg4VjAuNzcxMkMzOC4zMyAwLjM1MTc3NSAzNy45OTE4IDAgMzcuNTU4OCAwWk0zNi43ODc2IDM2Ljc4NzZIMS41Mjg4N1YxLjUyODg3SDM2Ljc4NzZWMzYuNzg3NloiIGZpbGw9IiMzNjUzQTciPjwvcGF0aD48cGF0aCBpZD0iVmVjdG9yXzQiIGQ9Ik0yNi44Mjk0IDIxLjQ1N0MyMy44NjYzIDIxLjQ1NyAyMS40NTggMjMuODY1MyAyMS40NTggMjYuODI4NEMyMS40NTggMjkuNzkxNCAyMy44NjYzIDMyLjE5OTcgMjYuODI5NCAzMi4xOTk3QzI5Ljc5MjQgMzIuMTk5NyAzMi4yMDA3IDI5Ljc5MTQgMzIuMjAwNyAyNi44Mjg0QzMyLjIwMDcgMjMuODY1MyAyOS43OTI0IDIxLjQ1NyAyNi44Mjk0IDIxLjQ1N1pNMjYuODI5NCAzMC42NTczQzI0LjcxODcgMzAuNjU3MyAyMy4wMDA0IDI4LjkzOSAyMy4wMDA0IDI2LjgyODRDMjMuMDAwNCAyNC43MTc3IDI0LjcxODcgMjIuOTk5NCAyNi44Mjk0IDIyLjk5OTRDMjguOTQgMjIuOTk5NCAzMC42NTgzIDI0LjcxNzcgMzAuNjU4MyAyNi44Mjg0QzMwLjY1ODMgMjguOTM5IDI4Ljk0IDMwLjY1NzMgMjYuODI5NCAzMC42NTczWiIgZmlsbD0iIzM2NTNBNyI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfNSIgZD0iTTYuODk5NzIgMTUuMzI4NEgxNi4xQzE2LjM3MDYgMTUuMzI4NCAxNi42Mjc3IDE1LjE3OTYgMTYuNzYzIDE0LjkzNjFDMTYuODk4MyAxNC42OTI1IDE2Ljg5ODMgMTQuMzk0OSAxNi43NjMgMTQuMTY0OUwxMi4xNjI4IDYuNDkzNDVDMTEuODkyMiA2LjAzMzQzIDExLjEyMSA2LjAzMzQzIDEwLjg1MDQgNi40OTM0NUw2LjI1MDI5IDE0LjE2NDlDNi4xMDE0NiAxNC40MDg0IDYuMTAxNDYgMTQuNjkyNSA2LjI1MDI5IDE0LjkzNjFDNi4zODU1OSAxNS4xNzk2IDYuNjQyNjYgMTUuMzI4NCA2LjkxMzI1IDE1LjMyODRINi44OTk3MlpNMTEuNDk5OSA4LjM4NzYyTDE0Ljc0NyAxMy43OTk2SDguMjUyNzFMMTEuNDk5OSA4LjM4NzYyWiIgZmlsbD0iIzM2NTNBNyI+PC9wYXRoPjxwYXRoIGlkPSJWZWN0b3JfNiIgZD0iTTguNDI5NCAyOS4xMzFDOC4wMDk5OCAyOS4xMzEgNy42NTgyIDI5LjQ2OTIgNy42NTgyIDI5LjkwMjJDNy42NTgyIDMwLjMzNTEgNy45OTY0NSAzMC42NzM0IDguNDI5NCAzMC42NzM0QzE1LjA3MjYgMzAuNjczNCAxNy41MDc5IDI0Ljk3NzMgMTkuODYyMSAxOS40ODQyQzIyLjA4MSAxNC4zMTU4IDI0LjE3ODEgOS40MzE1MiAyOS41NDk1IDkuMjQyMUwyOS4zNDY1IDkuNDQ1MDVDMjkuMDQ4OSA5Ljc0MjcgMjkuMDQ4OSAxMC4yMjk4IDI5LjM0NjUgMTAuNTI3NEMyOS40OTU0IDEwLjY3NjMgMjkuNjk4MyAxMC43NTc0IDI5Ljg4NzcgMTAuNzU3NEMzMC4wNzcxIDEwLjc1NzQgMzAuMjgwMSAxMC42NzYzIDMwLjQyODkgMTAuNTI3NEwzMS45NTc4IDguOTk4NTZDMzIuMjU1NCA4LjcwMDkxIDMyLjI1NTQgOC4yMTM4MyAzMS45NTc4IDcuOTE2MThMMzAuNDI4OSA2LjM4NzNDMzAuMTMxMyA2LjA4OTY1IDI5LjY0NDIgNi4wODk2NSAyOS4zNDY1IDYuMzg3M0MyOS4wNDg5IDYuNjg0OTYgMjkuMDQ4OSA3LjE3MjA0IDI5LjM0NjUgNy40Njk2OUwyOS41OTAxIDcuNzEzMjNDMjMuMTkwNSA3Ljg4OTEyIDIwLjc4MjEgMTMuNDc2OSAxOC40NTUgMTguODg4OUMxNi4xOTU1IDI0LjE2NTUgMTQuMDU3OCAyOS4xNTggOC40Mjk0IDI5LjE1OFYyOS4xMzFaIiBmaWxsPSIjMzY1M0E3Ij48L3BhdGg+PC9nPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwXzIzODdfMjg4ODMiPjxyZWN0IHdpZHRoPSIzOC4zMyIgaGVpZ2h0PSIzOC4zMyIgZmlsbD0id2hpdGUiPjwvcmVjdD48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4g"}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=18\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9174012643z8852615139za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395334~118897920~118897930~119259605~119527019~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10854757526~AW-16830345915\u0026tid=AW-10854757526\u0026tft=1785145405778\u0026tfd=2899\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.157.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:25.780Z","timestamp":1785145405780,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=18\u0026frm=0\u0026auid=1937861779.1785145405\u0026dt=TopTier%20Proprietary%20Trading.%20Get%20Funded%20with%20TopTier%20Trader\u0026en=page_view\u0026dl=https%3A%2F%2Fautolitefinances.pro%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1195595848.1785145405\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9174012643z8852615139za20gzb852615139zd852615139xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938465~115938468~118395334~118897920~118897930~119259605~119527019~119724320~119732170~119896802\u0026apve=1\u0026apvf=f\u0026apvc=0\u0026tids=AW-10854757526~AW-16830345915\u0026tid=AW-10854757526\u0026tft=1785145405778\u0026tfd=2899\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://autolitefinances.pro/\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncontent-type: text/plain\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\npragma: no-cache\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://autolitefinances.pro\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":549,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-12T03:57:33.344475Z","times_seen":17848604,"resource_available":true,"data":""}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"autolitefinances.pro/wp-content/uploads/2023/07/card-icon-7.svg","fqdn":"autolitefinances.pro","domain":"autolitefinances.pro","tld":"pro"},"ip":{"addr":"50.6.200.60","port":443,"asn":19871,"as":"NETWORK-SOLUTIONS-HOSTING","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:26.106Z","timestamp":1785145406106,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"autolitefinances.pro","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 07 Jul 2026 15:51:36 GMT","end":"Mon, 05 Oct 2026 15:51:35 GMT"},"fingerprint":{"sha1":"62:EE:89:36:C1:0F:25:12:31:F6:09:C6:34:10:56:D9:BF:CE:12:88","sha256":"F0:2F:67:24:F1:06:D3:C3:EC:37:FF:82:BA:F7:E2:3B:B5:2D:C2:A3:65:24:2C:12:63:D6:84:D2:72:47:C5:30"}}},"request":{"raw":"GET /wp-content/uploads/2023/07/card-icon-7.svg HTTP/1.1\r\nHost: autolitefinances.pro\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://autolitefinances.pro/\r\nCookie: _gcl_au=1.1.1937861779.1785145405.-.-.1785145405.551782349.1785145406.1785145405; _ga_VLMFGK450H=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h888907610; _ga=GA1.1.242871477.1785145406; _ga_B4RQS3TZG8=GS2.1.s1785145405$o1$g0$t1785145405$j60$l0$h0\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:43:26 GMT\r\ncontent-type: image/svg+xml\r\ncontent-length: 2404\r\nlast-modified: Wed, 17 Jan 2024 06:59:15 GMT\r\netag: \"65a77ac3-964\"\r\nx-powered-by: PleskLin\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Plesk","description":"Plesk is a web hosting and server data centre automation software with a control panel developed for Linux and Windows-based retail hosting service providers.","website":"https://www.plesk.com","common_platform_enumeration":"cpe:2.3:a:parallels:parallels_plesk_panel:*:*:*:*:*:*:*:*","icon":"Plesk.svg","categories":["Hosting panels"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":2404,"size_decoded":2656,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"89140e014716aa6f23038859dacd5b40","sha1":"e040b17388f586e98924ea776714a1bca1b56472","sha256":"79e5a84038bbafb000f02e1fe7a1ca4aed910f893c7c3d425d4088e815c5ec21","sha512":"0b3f978c1878af012edb0a4b8ab9ab8d9304a9486616e8a56ee9e674b7b0787922c5455cbbca2b2dd14f8dfdd9d8c0ae2f1b3c5cd0d915e20bee55473a878a3a","ssdeep":"","tlshash":"8c415384f395a1a8e40597e487a9b0b077bb3cfa2de0c58907e05c2599748cc9db88db","first_seen":"2026-07-01T02:48:47.751921Z","last_seen":"2026-07-27T14:04:41.100403Z","times_seen":6,"resource_available":false,"data":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4gPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOSIgaGVpZ2h0PSIzOSIgdmlld0JveD0iMCAwIDM5IDM5IiBmaWxsPSJub25lIj48ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjM4N18yOTMwMikiPjxwYXRoIGQ9Ik0yNi43MzUyIDMxLjE4NzFDMjkuMzEzMSAzMS4xODcxIDMxLjQwMyAyOS4wOTczIDMxLjQwMyAyNi41MTk0QzMxLjQwMyAyMy45NDE0IDI5LjMxMzEgMjEuODUxNiAyNi43MzUyIDIxLjg1MTZDMjQuMTU3MiAyMS44NTE2IDIyLjA2NzQgMjMuOTQxNCAyMi4wNjc0IDI2LjUxOTRDMjIuMDY3NCAyOS4wOTczIDI0LjE1NzIgMzEuMTg3MSAyNi43MzUyIDMxLjE4NzFaIiBmaWxsPSIjRkQ5RjZBIj48L3BhdGg+PHBhdGggZD0iTTExLjgzODMgNy4zNTkzOEwxNi4wMTkgMTQuMjg2Nkg3LjQxNDA2TDExLjgzODMgNy4zNTkzOFoiIGZpbGw9IiNGRDlGNkEiPjwvcGF0aD48cGF0aCBkPSJNMzcuNTU4OCAwSDAuNzcxMkMwLjMzODI0NiAwIDAgMC4zMzgyNDYgMCAwLjc3MTJWMzcuNTU4OEMwIDM3Ljk3ODIgMC4zMzgyNDYgMzguMzMgMC43NzEyIDM4LjMzSDM3LjU1ODhDMzcuOTc4MiAzOC4zMyAzOC4zMyAzNy45OTE4IDM4LjMzIDM3LjU1ODhWMC43NzEyQzM4LjMzIDAuMzUxNzc1IDM3Ljk5MTggMCAzNy41NTg4IDBaTTM2Ljc4NzYgMzYuNzg3NkgxLjUyODg3VjEuNTI4ODdIMzYuNzg3NlYzNi43ODc2WiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjxwYXRoIGQ9Ik0yNi44Mjk0IDIxLjQ2MDlDMjMuODY2MyAyMS40NjA5IDIxLjQ1OCAyMy44NjkyIDIxLjQ1OCAyNi44MzIzQzIxLjQ1OCAyOS43OTUzIDIzLjg2NjMgMzIuMjAzNiAyNi44Mjk0IDMyLjIwMzZDMjkuNzkyNCAzMi4yMDM2IDMyLjIwMDcgMjkuNzk1MyAzMi4yMDA3IDI2LjgzMjNDMzIuMjAwNyAyMy44NjkyIDI5Ljc5MjQgMjEuNDYwOSAyNi44Mjk0IDIxLjQ2MDlaTTI2LjgyOTQgMzAuNjYxMkMyNC43MTg3IDMwLjY2MTIgMjMuMDAwNCAyOC45NDI5IDIzLjAwMDQgMjYuODMyM0MyMy4wMDA0IDI0LjcyMTYgMjQuNzE4NyAyMy4wMDMzIDI2LjgyOTQgMjMuMDAzM0MyOC45NCAyMy4wMDMzIDMwLjY1ODMgMjQuNzIxNiAzMC42NTgzIDI2LjgzMjNDMzAuNjU4MyAyOC45NDI5IDI4Ljk0IDMwLjY2MTIgMjYuODI5NCAzMC42NjEyWiIgZmlsbD0iIzI1MjgzMSI+PC9wYXRoPjxwYXRoIGQ9Ik02Ljg5OTcyIDE1LjMyODRIMTYuMUMxNi4zNzA2IDE1LjMyODQgMTYuNjI3NyAxNS4xNzk2IDE2Ljc2MyAxNC45MzYxQzE2Ljg5ODMgMTQuNjkyNSAxNi44OTgzIDE0LjM5NDkgMTYuNzYzIDE0LjE2NDlMMTIuMTYyOCA2LjQ5MzQ1QzExLjg5MjIgNi4wMzM0MyAxMS4xMjEgNi4wMzM0MyAxMC44NTA0IDYuNDkzNDVMNi4yNTAyOSAxNC4xNjQ5QzYuMTAxNDYgMTQuNDA4NCA2LjEwMTQ2IDE0LjY5MjUgNi4yNTAyOSAxNC45MzYxQzYuMzg1NTkgMTUuMTc5NiA2LjY0MjY2IDE1LjMyODQgNi45MTMyNSAxNS4zMjg0SDYuODk5NzJaTTExLjQ5OTkgOC4zODc2MkwxNC43NDcgMTMuNzk5Nkg4LjI1MjcxTDExLjQ5OTkgOC4zODc2MloiIGZpbGw9IiMyNTI4MzEiPjwvcGF0aD48cGF0aCBkPSJNOC40Mjk0IDI5LjEzMUM4LjAwOTk4IDI5LjEzMSA3LjY1ODIgMjkuNDY5MiA3LjY1ODIgMjkuOTAyMkM3LjY1ODIgMzAuMzM1MSA3Ljk5NjQ1IDMwLjY3MzQgOC40Mjk0IDMwLjY3MzRDMTUuMDcyNiAzMC42NzM0IDE3LjUwNzkgMjQuOTc3MyAxOS44NjIxIDE5LjQ4NDJDMjIuMDgxIDE0LjMxNTggMjQuMTc4MSA5LjQzMTUyIDI5LjU0OTUgOS4yNDIxTDI5LjM0NjUgOS40NDUwNUMyOS4wNDg5IDkuNzQyNyAyOS4wNDg5IDEwLjIyOTggMjkuMzQ2NSAxMC41Mjc0QzI5LjQ5NTQgMTAuNjc2MyAyOS42OTgzIDEwLjc1NzQgMjkuODg3NyAxMC43NTc0QzMwLjA3NzEgMTAuNzU3NCAzMC4yODAxIDEwLjY3NjMgMzAuNDI4OSAxMC41Mjc0TDMxLjk1NzggOC45OTg1NkMzMi4yNTU0IDguNzAwOTEgMzIuMjU1NCA4LjIxMzgzIDMxLjk1NzggNy45MTYxOEwzMC40Mjg5IDYuMzg3M0MzMC4xMzEzIDYuMDg5NjUgMjkuNjQ0MiA2LjA4OTY1IDI5LjM0NjUgNi4zODczQzI5LjA0ODkgNi42ODQ5NiAyOS4wNDg5IDcuMTcyMDQgMjkuMzQ2NSA3LjQ2OTY5TDI5LjU5MDEgNy43MTMyM0MyMy4xOTA1IDcuODg5MTIgMjAuNzgyMSAxMy40NzY5IDE4LjQ1NSAxOC44ODg5QzE2LjE5NTUgMjQuMTY1NSAxNC4wNTc4IDI5LjE1OCA4LjQyOTQgMjkuMTU4VjI5LjEzMVoiIGZpbGw9IiMyNTI4MzEiPjwvcGF0aD48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwMF8yMzg3XzI5MzAyIj48cmVjdCB3aWR0aD0iMzguMzMiIGhlaWdodD0iMzguMzMiIGZpbGw9IndoaXRlIj48L3JlY3Q+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+IA=="}},"time_used":118,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":118,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/style-CliJwUTR.css","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://autolitefinances.pro/","date":"2026-07-27T09:43:31.948Z","timestamp":1785145411948,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/style-CliJwUTR.css HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://autolitefinances.pro\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 09:43:31 GMT\r\ncontent-type: text/css\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-8d68\"\r\nexpires: Wed, 07 Jul 2027 08:30:01 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kxUGmqQ5KdbrB0AM0ep+GV+pUP23VWWU8ZZmt4rDai7G791YfzHJdzoXreuhTkM5UU0KYT4\r\nx-77-nzt-ray: fdb54123991870604328676a9a7bb638\r\nx-77-cache: HIT\r\nx-77-age: 1732368\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":36200,"size_decoded":8208,"mime_type":"text/css","magic":"ASCII text, with very long lines (36187)","md5":"840dfdb09fc1a11a5c3a5b5f808e3160","sha1":"46140a50b100fa33b974027c13bb9f2de5c784b7","sha256":"b5b9a339413a55a0d828ab6be236e2a495594a19fb3283f846c607d7b6996ad7","sha512":"61e37700ee60ed584c8ae7b6313c5dddf6950c9664aa57f32bb4a70d775b1a1d5bfc249c6c1238495ef2cb7e12bae5f00c4ddb3df4dde44a01081117b74e2ba2","ssdeep":"384:F8fY2l091g7Tc6/WYtGLadKzSVX8Kj6+eZcrNSN56qB56YR9evZLLq51vZLLq5G:F8wM091gTcCWYtG4XqcrNSN56DwQ43","tlshash":"05f2966daad9093dac23c179e3f8e58c911af5d5df3226daf74239008ac17ff0986514","first_seen":"2026-07-07T11:50:17.712499Z","last_seen":"2026-08-12T03:05:51.906716Z","times_seen":3384,"resource_available":false,"data":"LmJ0bi5zdmVsdGUteXdvZm1se2JvcmRlci1yYWRpdXM6OTk5OXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjI1cmVtO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmlubGluZS1mbGV4fS5idG4tcHJpbWFyeS5zdmVsdGUteXdvZm1se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1wcmltYXJ5LnN2ZWx0ZS15d29mbWw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tZ2hvc3Quc3ZlbHRlLXl3b2ZtbDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYnRuLXN1Y2Nlc3Muc3ZlbHRlLXl3b2ZtbHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiAxODUgMTI5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5idG4tc3VjY2Vzcy5zdmVsdGUteXdvZm1sOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDUgMTUwIDEwNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5idG4tc20uc3ZlbHRlLXl3b2ZtbHt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbX0uYnRuLW1kLnN2ZWx0ZS15d29mbWx7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbX0uYnRuLWxnLnN2ZWx0ZS15d29mbWx7d2lkdGg6Mi43NXJlbTtoZWlnaHQ6Mi43NXJlbX0uYnRuLXhsLnN2ZWx0ZS15d29mbWx7d2lkdGg6M3JlbTtoZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS15d29mbWx7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjJ9LmJ0bi1kaXNhYmxlZC5zdmVsdGUteXdvZm1sOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1jb2xvcjp2YXIoLS11bi1kZWZhdWx0LWJvcmRlci1jb2xvciwjZTVlN2ViKX06YmVmb3JlLDphZnRlcnstLXVuLWNvbnRlbnQ6IiJ9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNX1ib2R5e2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjB9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0qLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS11bi1yb3RhdGU6MDstLXVuLXJvdGF0ZS14OjA7LS11bi1yb3RhdGUteTowOy0tdW4tcm90YXRlLXo6MDstLXVuLXNjYWxlLXg6MTstLXVuLXNjYWxlLXk6MTstLXVuLXNjYWxlLXo6MTstLXVuLXNrZXcteDowOy0tdW4tc2tldy15OjA7LS11bi10cmFuc2xhdGUteDowOy0tdW4tdHJhbnNsYXRlLXk6MDstLXVuLXRyYW5zbGF0ZS16OjA7LS11bi1wYW4teDogOy0tdW4tcGFuLXk6IDstLXVuLXBpbmNoLXpvb206IDstLXVuLXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdW4tb3JkaW5hbDogOy0tdW4tc2xhc2hlZC16ZXJvOiA7LS11bi1udW1lcmljLWZpZ3VyZTogOy0tdW4tbnVtZXJpYy1zcGFjaW5nOiA7LS11bi1udW1lcmljLWZyYWN0aW9uOiA7LS11bi1ib3JkZXItc3BhY2luZy14OjA7LS11bi1ib3JkZXItc3BhY2luZy15OjA7LS11bi1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdW4tc2hhZG93LWluc2V0OiA7LS11bi1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1pbnNldDogOy0tdW4tcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdW4tcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXVuLXJpbmctd2lkdGg6MHB4Oy0tdW4tcmluZy1jb2xvcjojOTNjNWZkODA7LS11bi1ibHVyOiA7LS11bi1icmlnaHRuZXNzOiA7LS11bi1jb250cmFzdDogOy0tdW4tZHJvcC1zaGFkb3c6IDstLXVuLWdyYXlzY2FsZTogOy0tdW4taHVlLXJvdGF0ZTogOy0tdW4taW52ZXJ0OiA7LS11bi1zYXR1cmF0ZTogOy0tdW4tc2VwaWE6IDstLXVuLWJhY2tkcm9wLWJsdXI6IDstLXVuLWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXVuLWJhY2tkcm9wLWNvbnRyYXN0OiA7LS11bi1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXVuLWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXVuLWJhY2tkcm9wLWludmVydDogOy0tdW4tYmFja2Ryb3Atb3BhY2l0eTogOy0tdW4tYmFja2Ryb3Atc2F0dXJhdGU6IDstLXVuLWJhY2tkcm9wLXNlcGlhOiB9LmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6MXB4O291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1mb2N1cy1zZWNvbmRhcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktZm9jdXMpIDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXNlY29uZGFyeS1mb2N1cykgO291dGxpbmUtb2Zmc2V0OjFweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzLXNlY29uZGFyeTpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1mb2N1cykgO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itc2Vjb25kYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5cW2NsaXBcOnJlY3RcKDBcLDBcLDBcLDBcKVxde2NsaXA6cmVjdCgwLDAsMCwwKX0uc3Itb25seXtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci13aWR0aDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXItZXZlbnRzLWF1dG97cG9pbnRlci1ldmVudHM6YXV0b30ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS4tYm90dG9tLTRcLjV7Ym90dG9tOi0xLjEyNXJlbX0uLXJpZ2h0LVxbNHB4XF17cmlnaHQ6LTRweH0uLXRvcC1cWzRweFxde3RvcDotNHB4fS5ib3R0b20tXFstOHB4XF17Ym90dG9tOi04cHh9LmJvdHRvbS0we2JvdHRvbTowfS5ib3R0b20tM3tib3R0b206Ljc1cmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC1cWzJweFxde2xlZnQ6MnB4fS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LmxlZnQtMntsZWZ0Oi41cmVtfS5sZWZ0LTNcLjd7bGVmdDouOTI1cmVtfS5yaWdodC1cWzE2cHhcXXtyaWdodDoxNnB4fS5yaWdodC0we3JpZ2h0OjB9LnJpZ2h0LTBcLjV7cmlnaHQ6LjEyNXJlbX0ucmlnaHQtMntyaWdodDouNXJlbX0ucmlnaHQtM3tyaWdodDouNzVyZW19LnRvcC1cWzJweFxde3RvcDoycHh9LnRvcC0we3RvcDowfS50b3AtMnt0b3A6LjVyZW19LnRvcC0ze3RvcDouNzVyZW19LnRvcC0zXC43e3RvcDouOTI1cmVtfS50b3AtMzB7dG9wOjcuNXJlbX0udG9wLTQwe3RvcDoxMHJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxO2xpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LmxpbmUtY2xhbXAtMnstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5saW5lLWNsYW1wLTN7LXdlYmtpdC1saW5lLWNsYW1wOjM7bGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC01ey13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnotMXt6LWluZGV4OjF9LnotMTB7ei1pbmRleDoxMH0uei0xMDB7ei1pbmRleDoxMDB9LnotNTB7ei1pbmRleDo1MH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0fS4tbS1weHttYXJnaW46LTFweH0ubS0ze21hcmdpbjouNzVyZW19Lm0tYXV0b3ttYXJnaW46YXV0b30ubTE1e21hcmdpbjozLjc1cmVtfS5tMTZ7bWFyZ2luOjRyZW19Lm0xOHttYXJnaW46NC41cmVtfS5tMjF7bWFyZ2luOjUuMjVyZW19Lm0yMnttYXJnaW46NS41cmVtfS5tNnttYXJnaW46MS41cmVtfS5tN3ttYXJnaW46MS43NXJlbX0ubTh7bWFyZ2luOjJyZW19Lm05e21hcmdpbjoyLjI1cmVtfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW07bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXgtNHttYXJnaW4tbGVmdDoxcmVtO21hcmdpbi1yaWdodDoxcmVtfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5teS00e21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW19Li1tdC0ze21hcmdpbi10b3A6LS43NXJlbX0ubWItXFsycHhcXXttYXJnaW4tYm90dG9tOjJweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTEsLm5vdC1sYXN0LW9mLXR5cGVcOm1iLTE6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tbC0wXC41e21hcmdpbi1sZWZ0Oi4xMjVyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC0ze21hcmdpbi1sZWZ0Oi43NXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC04e21hcmdpbi1sZWZ0OjJyZW19Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0ubXItMVwuNXttYXJnaW4tcmlnaHQ6LjM3NXJlbX0ubXItMTB7bWFyZ2luLXJpZ2h0OjIuNXJlbX0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW19Lm1yLTN7bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTZ7bWFyZ2luLXRvcDoxLjVyZW19Lm10LTh7bWFyZ2luLXRvcDoycmVtfS5maXJzdC1vZi10eXBlXDptdC0yOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDouNXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtXFsxXC4yZW1cXXtoZWlnaHQ6MS4yZW19LmgtXFsxZW1cXXtoZWlnaHQ6MWVtfS5oLVxbNTBweFxde2hlaWdodDo1MHB4fS5oLTF7aGVpZ2h0Oi4yNXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMzB7aGVpZ2h0OjcuNXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTQwe2hlaWdodDoxMHJlbX0uaC00MDBweHtoZWlnaHQ6NDAwcHh9LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC01NHB4e2hlaWdodDo1NHB4fS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC02MHB4e2hlaWdodDo2MHB4fS5oLTY0cHh7aGVpZ2h0OjY0cHh9LmgtN3toZWlnaHQ6MS43NXJlbX0uaC04e2hlaWdodDoycmVtfS5oLWZ1bGx7aGVpZ2h0OjEwMCV9LmgtcHh7aGVpZ2h0OjFweH0ubWF4LWgtXFsxMjVweFxde21heC1oZWlnaHQ6MTI1cHh9Lm1heC1oLVxbMjQwcHhcXXttYXgtaGVpZ2h0OjI0MHB4fS5tYXgtaC1cWzMycHhcXXttYXgtaGVpZ2h0OjMycHh9Lm1heC1oLTEzMnB4e21heC1oZWlnaHQ6MTMycHh9Lm1heC1oLTY0e21heC1oZWlnaHQ6MTZyZW19Lm1heC1oLTgwdmh7bWF4LWhlaWdodDo4MHZofS5tYXgtaC04NnttYXgtaGVpZ2h0OjIxLjVyZW19Lm1heC1oLWZ1bGx7bWF4LWhlaWdodDoxMDAlfS5tYXgtdy1cWzgwXCVcXXttYXgtd2lkdGg6ODAlfS5tYXgtdy1cWzg1XCVcXXttYXgtd2lkdGg6ODUlfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTE1MHB4XClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTUwcHgpfS5tYXgtdy1mdWxse21heC13aWR0aDoxMDAlfS5taW4taC1cWzE2cHhcXXttaW4taGVpZ2h0OjE2cHh9Lm1pbi13LVxbMTZweFxde21pbi13aWR0aDoxNnB4fS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy01e21pbi13aWR0aDoxLjI1cmVtfS5taW4tdy01XC41e21pbi13aWR0aDoxLjM3NXJlbX0ubWluLXctNnttaW4td2lkdGg6MS41cmVtfS53LVxbMVwuMmVtXF17d2lkdGg6MS4yZW19LnctXFsxZW1cXXt3aWR0aDoxZW19LnctXFs1MHB4XF17d2lkdGg6NTBweH0udy0we3dpZHRoOjB9LnctMXt3aWR0aDouMjVyZW19LnctMTF7d2lkdGg6Mi43NXJlbX0udy0xMTZ7d2lkdGg6MjlyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yODBweHt3aWR0aDoyODBweH0udy0zNDhweHt3aWR0aDozNDhweH0udy00e3dpZHRoOjFyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTUye3dpZHRoOjEzcmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTYwcHh7d2lkdGg6NjBweH0udy03e3dpZHRoOjEuNzVyZW19LnctOHt3aWR0aDoycmVtfS53LWZ1bGx7d2lkdGg6MTAwJX0udy1tYXh7d2lkdGg6bWF4LWNvbnRlbnR9LnctcHh7d2lkdGg6MXB4fS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZmxleC0xe2ZsZXg6MX0uZmxleC1ub25le2ZsZXg6bm9uZX0uZmxleC1zaHJpbmt7ZmxleC1zaHJpbms6MX0uZmxleC1zaHJpbmstMCwuc2hyaW5rLTB7ZmxleC1zaHJpbms6MH0uZmxleC1ncm93LC5ncm93e2ZsZXgtZ3JvdzoxfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS4tdHJhbnNsYXRlLXgtMVwvMnstLXVuLXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNsYXRlLXgtZnVsbHstLXVuLXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpzY2FsZS0xMTV7LS11bi1zY2FsZS14OjEuMTU7LS11bi1zY2FsZS15OjEuMTU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uaG92ZXJcOnNjYWxlLTEyMDpob3ZlcnstLXVuLXNjYWxlLXg6MS4yOy0tdW4tc2NhbGUteToxLjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXVuLXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS11bi10cmFuc2xhdGUteSkpIHRyYW5zbGF0ZVoodmFyKC0tdW4tdHJhbnNsYXRlLXopKSByb3RhdGUodmFyKC0tdW4tcm90YXRlKSkgcm90YXRlWCh2YXIoLS11bi1yb3RhdGUteCkpIHJvdGF0ZVkodmFyKC0tdW4tcm90YXRlLXkpKSByb3RhdGVaKHZhcigtLXVuLXJvdGF0ZS16KSkgc2tld1godmFyKC0tdW4tc2tldy14KSkgc2tld1kodmFyKC0tdW4tc2tldy15KSkgc2NhbGVYKHZhcigtLXVuLXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdW4tc2NhbGUteSkpIHNjYWxlWih2YXIoLS11bi1zY2FsZS16KSl9QGtleWZyYW1lcyBwdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgcHVzaC10by1sZWZ0ezAle21hcmdpbi1yaWdodDotNTAlO3RyYW5zZm9ybTpzY2FsZSgwKX10b3ttYXJnaW4tcmlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc3BpbnswJXtyb3RhdGU6MGRlZ310b3tyb3RhdGU6MzYwZGVnfX1Aa2V5ZnJhbWVzIHR5cGluZ3swJSw1MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02cHgpfX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246MnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGUgcHVsc2V9LmFuaW1hdGUtcHVzaC10by1sZWZ0e2FuaW1hdGlvbjouMjVzIGVhc2UtaW4tb3V0IHB1c2gtdG8tbGVmdH0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbn0uYW5pbWF0ZS10eXBpbmd7YW5pbWF0aW9uOi44cyBlYXNlLWluLW91dCB0eXBpbmd9LmN1cnNvci1hdXRve2N1cnNvcjphdXRvfS5jdXJzb3ItcG9pbnRlciwuaG92ZXJcOmN1cnNvci1wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLW10LTJ7c2Nyb2xsLW1hcmdpbi10b3A6LjVyZW19Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaH0uanVzdGlmeS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTN7Z2FwOi43NXJlbX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdW4tc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpKTttYXJnaW4tcmlnaHQ6Y2FsYyguNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS14LTU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4tbGVmdDpjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS14LXJldmVyc2UpKSk7bWFyZ2luLXJpZ2h0OmNhbGMoMS4yNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxcmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctY2xpcHtvdmVyZmxvdzpjbGlwfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9Lm92ZXJzY3JvbGwtY29udGFpbntvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0udGV4dC1lbGxpcHNpc3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmV7d2hpdGUtc3BhY2U6cHJlfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYm9yZGVyLC5ib3JkZXItMXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXQtMntib3JkZXItdG9wLXdpZHRoOjJweH0uYm9yZGVyLWdyYXktMzAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci1ncmVlbi00MDB7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSl9LmJvcmRlci1wcmltYXJ5LWJ1dHRvbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pfS5ib3JkZXItcmVkLTUwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uYm9yZGVyLXNsYXRlLTIwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItd2hpdGV7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uZm9jdXNcOmJvcmRlci1ibHVlLTUwMDpmb2N1c3stLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci10LW5ldXRyYWwtMTAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTstLXVuLWJvcmRlci10b3Atb3BhY2l0eTp2YXIoLS11bi1ib3JkZXItb3BhY2l0eSk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYm9yZGVyLXRvcC1vcGFjaXR5KSl9LmJvcmRlci1yb3VuZGVkLWZ1bGwsLnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC0yLC5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6LjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6MXJlbX0ucm91bmRlZC0zeGwsLnJvdW5kZWQtNntib3JkZXItcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucm91bmRlZC1sLTN4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnJvdW5kZWQtci0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC10LTZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5yb3VuZGVkLWxiLTN4bHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1sdC0zeGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW19LnJvdW5kZWQtcmItM3hse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ydC0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ub25le2JvcmRlci1zdHlsZTpub25lfS5iZy1ibGFja3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ibGFja1wvODB7YmFja2dyb3VuZC1jb2xvcjojMDAwY30uYmctZW1lcmFsZC01MDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYgMTg1IDEyOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTMwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTQwMFwvXFtcLjk1XF17YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjJ9LmJnLWdyYXktNjAwXC9cW1wuOTVcXXtiYWNrZ3JvdW5kLWNvbG9yOiM0YjU1NjNmMn0uYmctZ3JlZW4tNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctZ3JlZW4tNTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDM0IDE5NyA5NC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDUgMjQ1IDI0NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ODB9LmJnLW5ldXRyYWwtNjAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiM1MjUyNTI2Nn0uYmctb3JhbmdlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMTE1IDIyL3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXByaW1hcnktYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIH0uYmctcmVkLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctcmVkLTYwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtMTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1zbGF0ZS0zMDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAzIDIxMyAyMjUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13aGl0ZXstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1ibGFjazpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1lbWVyYWxkLTYwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uaG92ZXItYmctcHJpbWFyeS1idXR0b24taG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5ob3Zlci1iZy1wcmltYXJ5LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmhvdmVyLWJnLXNsYXRlLTEwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDEgMjQ1IDI0OS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLW9wYWNpdHktMTAsLmhvdmVyLWJnLW9wYWNpdHktMTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5Oi4xfS5mcm9tLXdoaXRlXC8xMDB7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdW4tZ3JhZGllbnQtZnJvbTojZmZmIHZhcigtLXVuLWdyYWRpZW50LWZyb20tcG9zaXRpb24pOy0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwIHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXVuLWdyYWRpZW50LXN0b3BzOnZhcigtLXVuLWdyYWRpZW50LWZyb20pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnZpYS13aGl0ZVwvNDB7LS11bi1ncmFkaWVudC12aWEtcG9zaXRpb246NTAlOy0tdW4tZ3JhZGllbnQtdG86I2ZmZjA7LS11bi1ncmFkaWVudC1zdG9wczp2YXIoLS11bi1ncmFkaWVudC1mcm9tKSwgI2ZmZjYgdmFyKC0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdW4tZ3JhZGllbnQtdG8pfS52aWEtd2hpdGVcLzUwey0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwOy0tdW4tZ3JhZGllbnQtc3RvcHM6dmFyKC0tdW4tZ3JhZGllbnQtZnJvbSksICNmZmZmZmY4MCB2YXIoLS11bi1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnRvLXRyYW5zcGFyZW50ey0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOnRyYW5zcGFyZW50IHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKX0uZnJvbS0wXCV7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlfS52aWEtNTBcJXstLXVuLWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCV9LnZpYS03MFwley0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjcwJX0uYmctZ3JhZGllbnQtdG8tdHstLXVuLWdyYWRpZW50LXNoYXBlOnRvIHRvcCBpbiBva2xjaDstLXVuLWdyYWRpZW50OnZhcigtLXVuLWdyYWRpZW50LXNoYXBlKSwgdmFyKC0tdW4tZ3JhZGllbnQtc3RvcHMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXVuLWdyYWRpZW50KSl9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5LWJ1dHRvbntmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmZpbGwtcHJpbWFyeS1idXR0b24tY29udGVudHtmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0ub2JqZWN0LWNvbnRhaW57b2JqZWN0LWZpdDpjb250YWlufS5wLTB7cGFkZGluZzowfS5wLTBcLjh7cGFkZGluZzouMnJlbX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5wLTh7cGFkZGluZzoycmVtfS5weCwucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0ye3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5weS0yXC41e3BhZGRpbmctdG9wOi42MjVyZW07cGFkZGluZy1ib3R0b206LjYyNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtfS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wbC0ye3BhZGRpbmctbGVmdDouNXJlbX0ucGwtNCwuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpub3QtZmlyc3RcOnBsLTQ6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjFyZW19LnByLTF7cGFkZGluZy1yaWdodDouMjVyZW19LnByLTR7cGFkZGluZy1yaWdodDoxcmVtfS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbX0ucHQtNntwYWRkaW5nLXRvcDoxLjVyZW19LnB0LTl7cGFkZGluZy10b3A6Mi4yNXJlbX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1iYXNlLWlucHV0e2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LnRleHQtYmxhY2t7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LWdyYXktMzAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1ncmF5LTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDcgMTE0IDEyOC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtbmV1dHJhbC00MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTYzIDE2MyAxNjMvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LW5ldXRyYWwtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDExNSAxMTUgMTE1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnkpIH0udGV4dC1wcmltYXJ5LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgfS50ZXh0LXByaW1hcnktYnV0dG9uLWNvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudCkgfS50ZXh0LXByaW1hcnktY29udGVudHtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpIH0udGV4dC1yZWQtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNDAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3Itc2xhdGUtNTAwLC50ZXh0LXNsYXRlLTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNjAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDcxIDg1IDEwNS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmNvbG9yLXNsYXRlLTgwMCwudGV4dC1zbGF0ZS04MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LXdoaXRley0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uaG92ZXItdGV4dC1wcmltYXJ5LWJ1dHRvbi1jb250ZW50OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uaG92ZXJcOnRleHQtZ3JheS00MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6dGV4dC1zbGF0ZS04MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5wbGFjZWhvbGRlclw6dGV4dC1zbGF0ZS0zMDA6OnBsYWNlaG9sZGVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwMyAyMTMgMjI1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3ItcmVkLTYwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6Y29sb3Itc2xhdGUtNzAwOmhvdmVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUxIDY1IDg1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1vcGFjaXR5LTIwey0tdW4tdGV4dC1vcGFjaXR5Oi4yfS5mb250LTIwMHtmb250LXdlaWdodDoyMDB9LmZvbnQtNTAwLC5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0ubGVhZGluZy1cWzIycHhcXXtsaW5lLWhlaWdodDoyMnB4fS5sZWFkaW5nLTRcLjV7bGluZS1oZWlnaHQ6MS4xMjVyZW19LmxlYWRpbmctNVwuNXtsaW5lLWhlaWdodDoxLjM3NXJlbX0ubGVhZGluZy02e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubGVhZGluZy1ub3JtYWx7bGluZS1oZWlnaHQ6MS41fS5pdGFsaWN7Zm9udC1zdHlsZTppdGFsaWN9LnVuZGVybGluZXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm5vLXVuZGVybGluZSwuaG92ZXItbm8tdW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5vcGFjaXR5LTEwe29wYWNpdHk6LjF9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS0yMHtvcGFjaXR5Oi4yfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0uc2hhZG93ey0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxcHggM3B4IDAgdmFyKC0tdW4tc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksdmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uc2hhZG93LWxney0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxMHB4IDE1cHggLTNweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgNHB4IDZweCAtNHB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctbWR7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDRweCA2cHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMnB4IDRweCAtMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctc217LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggMCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpvdXRsaW5lLTI6Zm9jdXMtd2l0aGlue291dGxpbmUtd2lkdGg6MnB4fS5mb2N1cy13aXRoaW5cOm91dGxpbmUtcHJpbWFyeS1mb2N1czpmb2N1cy13aXRoaW57b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSB9Lm91dGxpbmUsLmZvY3VzLXdpdGhpblw6b3V0bGluZS1zb2xpZDpmb2N1cy13aXRoaW57b3V0bGluZS1zdHlsZTpzb2xpZH0ub3V0bGluZS1ub25lLC5mb2N1c1w6b3V0bGluZS1ub25lOmZvY3VzLC5mb2N1cy12aXNpYmxlXDpvdXRsaW5lLW5vbmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHg7b3V0bGluZToycHggc29saWQgIzAwMDB9LmZvY3VzLXdpdGhpblw6cmluZy0zOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctd2lkdGg6M3B4Oy0tdW4tcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXVuLXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXVuLXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS11bi1yaW5nLW9mZnNldC1jb2xvcik7LS11bi1yaW5nLXNoYWRvdzp2YXIoLS11bi1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKHZhcigtLXVuLXJpbmctd2lkdGgpICsgdmFyKC0tdW4tcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS11bi1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLW9mZnNldC0xOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb2Zmc2V0LXdpZHRoOjFweH0uZm9jdXMtd2l0aGluXDpyaW5nLWJsdWUtNDAwOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb3BhY2l0eToxOy0tdW4tcmluZy1jb2xvcjpyZ2IoOTYgMTY1IDI1MC92YXIoLS11bi1yaW5nLW9wYWNpdHkpKSB9LmZvY3VzXDpyaW5nLWJsdWUtNTAwOmZvY3Vzey0tdW4tcmluZy1vcGFjaXR5OjE7LS11bi1yaW5nLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLXJpbmctb3BhY2l0eSkpIH0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tcGFkZGluZy00MDB7dHJhbnNpdGlvbi1wcm9wZXJ0eTpwYWRkaW5nO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24td2lkdGgtMjUwe3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5kdXJhdGlvbi0xNTB7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTc1e3RyYW5zaXRpb24tZHVyYXRpb246NzVtc30uZGVsYXktMHt0cmFuc2l0aW9uLWRlbGF5OjBzfS5lYXNlLWluLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZWFzZS1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0uY29udGVudC1cW1wiXCJcXXtjb250ZW50OiIifS5iZy1wcmltYXJ5LWdyYWRpZW50e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDgwZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvKSAxMzAlKX0uYmctcHJpbWFyeS1ncmFkaWVudC1idXR0b257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtYnV0dG9uLWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWJ1dHRvbi10bykgMTMwJSl9LmJnLXByaW1hcnktZ3JhZGllbnQtaG92ZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItZnJvbSksIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItdG8pIDEzMCUpfS5saW5lLWNsYW1wLTV7LXdlYmtpdC1saW5lLWNsYW1wOjU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS50eXBpbmctaW5kaWNhdG9yLnN2ZWx0ZS1zNDB4Z2t7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnR5cGluZy1pbmRpY2F0b3Iuc20uc3ZlbHRlLXM0MHhna3t3aWR0aDouMjVyZW07aGVpZ2h0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci5tZC5zdmVsdGUtczQweGdre3dpZHRoOi41cmVtO2hlaWdodDouNXJlbX0udHlwaW5nLWluZGljYXRvci5pbmRpY2F0b3ItY29sb3ItYmxhY2suc3ZlbHRlLXM0MHhna3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS50eXBpbmctaW5kaWNhdG9yLmluZGljYXRvci1jb2xvci1ncmF5LnN2ZWx0ZS1zNDB4Z2t7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTAwIDExNiAxMzkvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0udHlwaW5nLWluZGljYXRvci5zdmVsdGUtczQweGdrOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci1zZWNvbmQuc3ZlbHRlLXM0MHhna3thbmltYXRpb24tZGVsYXk6LjFzfS50eXBpbmctaW5kaWNhdG9yLXRoaXJkLnN2ZWx0ZS1zNDB4Z2t7YW5pbWF0aW9uLWRlbGF5Oi4yc30uYnRuLnN2ZWx0ZS0xZTg0bjd3e2JvcmRlci1yYWRpdXM6MS41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtZmxleH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgO2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tb3V0bGluZS5zdmVsdGUtMWU4NG43d3tib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbik7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigwIDAgMC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmJ0bi1vdXRsaW5lLnN2ZWx0ZS0xZTg0bjd3OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1yYWlzZWQuc3ZlbHRlLTFlODRuN3d7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSA7Ym94LXNoYWRvdzowIDJweCA2cHggIzAwMDAwMDI5fS5idG4tcmFpc2VkLnN2ZWx0ZS0xZTg0bjd3OmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJ0bi1zbS5zdmVsdGUtMWU4NG43d3toZWlnaHQ6MnJlbX0uYnRuLW1kLnN2ZWx0ZS0xZTg0bjd3e2hlaWdodDoyLjVyZW19LmJ0bi1sZy5zdmVsdGUtMWU4NG43d3toZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS0xZTg0bjd3e2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi4yfS5kYXJrLnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojNGI1NTYzZjI7cGFkZGluZzouNXJlbSAuNzVyZW19LmxpZ2h0LnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjI7cGFkZGluZzouMjVyZW0gLjVyZW19c3ZnLnN2ZWx0ZS15aXhoYXR7ZmlsbDpjdXJyZW50Q29sb3I7d2lkdGg6MWVtO2hlaWdodDoxZW19LmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpke2p1c3RpZnktY29udGVudDpzdGFydDthbGlnbi1pdGVtczpzdGFydDt3aWR0aDoxMDAlfS5jYXJvdXNlbC5zdmVsdGUtMTBxcWp6ZDpob3ZlciAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCksLmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpkOmZvY3VzLXdpdGhpbiAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCl7b3BhY2l0eToxfS5idXR0b24uc3ZlbHRlLTEwcXFqemR7b3BhY2l0eTowO3otaW5kZXg6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlcjpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuNHM7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQuc3ZlbHRlLTEwcXFqemR7bGVmdDotMWVtfS5yaWdodC5zdmVsdGUtMTBxcWp6ZHtyaWdodDotMWVtfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCB1bHttYXJnaW4tcmlnaHQ6LjI1cmVtO3BhZGRpbmctbGVmdDoxcmVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBsaTpub3QoOmZpcnN0LWNoaWxkKSwubWVzc2FnZS1jb250ZW50LWh0bWwgbGk+dWwsLm1lc3NhZ2UtY29udGVudC1odG1sIGxpPm9se21hcmdpbi10b3A6LjVyZW19Lm1lc3NhZ2UtY29udGVudC1odG1sIG9se21hcmdpbi1yaWdodDouMjVyZW07cGFkZGluZy1sZWZ0OjFyZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9Lm1lc3NhZ2UtY29udGVudC1odG1sIGF7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCAqe3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9Lm1lc3NhZ2UtY29udGVudC10ZXh0LnN2ZWx0ZS1uZmIweW17b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWVzc2FnZS1jb250ZW50LXRleHQgYXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm1lc3NhZ2UtY29udGVudC10ZXh0IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6Zmlyc3Qtb2YtdHlwZXt6LWluZGV4OjN9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6bnRoLW9mLXR5cGUoMil7ei1pbmRleDoyfS5hdmF0YXItZ3JvdXAtaXRlbS5zdmVsdGUteWZ4YTd0Om50aC1vZi10eXBlKDMpe3otaW5kZXg6MX0uYXZhdGFyLXNtLnN2ZWx0ZS15ZnhhN3Q6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6LTEycHh9LmF2YXRhci1tZC5zdmVsdGUteWZ4YTd0Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xNnB4fS5hdmF0YXItbGcuc3ZlbHRlLXlmeGE3dDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotMjJweH0ucmVtb3ZlSWNvbi5zdmVsdGUtMTFmM2Jkd3tvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6aG92ZXIgLnJlbW92ZUljb246d2hlcmUoLnN2ZWx0ZS0xMWYzYmR3KSwuYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6Zm9jdXMtd2l0aGluIC5yZW1vdmVJY29uOndoZXJlKC5zdmVsdGUtMTFmM2Jkdyl7b3BhY2l0eToxfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2V7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3Njcm9sbGJhci13aWR0aDpub25lO2ZsZXg6MTttYXgtaGVpZ2h0OjMycHg7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07ZGlzcGxheTpncmlkO292ZXJmbG93OmhpZGRlbiBhdXRvfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGV4dGFyZWEtY29udGFpbmVyLXJlc2l6YWJsZS5zdmVsdGUtMXRsOWxjZXttYXgtaGVpZ2h0OjEyNXB4fS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdGV4dGFyZWEtdmFsdWUpICIgIjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXIsdGV4dGFyZWEuc3ZlbHRlLTF0bDlsY2V7Zm9udC1zaXplOmluaGVyaXQ7Z3JpZC1hcmVhOjEvMS8yLzI7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6Ljc1cmVtfXRleHRhcmVhLnN2ZWx0ZS0xdGw5bGNlOjpwbGFjZWhvbGRlcnt3b3JkLWJyZWFrOmJyZWFrLWFsbDtvdmVyZmxvdzpoaWRkZW59ZW0tZW1vamktcGlja2Vyey0tYm9yZGVyLXJhZGl1czoxMnB4Oy0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjpyZ2IoMjI2IDIzMiAyNDAvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOi43NXJlbTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDttYXgtaGVpZ2h0Ojgwdmg7cGFkZGluZy10b3A6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTVweCAxcHggIzAwMDAwMDFmfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em97LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI5IDIzMSAyMzUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoyLjc1cmVtO2hlaWdodDoxLjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86YWZ0ZXJ7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7Y29udGVudDoiIjtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoxLjI1cmVtO2hlaWdodDoxLjI1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS5zd2l0Y2guY2hlY2tlZC5zdmVsdGUtMXl6Znp6b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LnN3aXRjaC5jaGVja2VkLnN2ZWx0ZS0xeXpmenpvOmFmdGVyey0tdW4tdHJhbnNsYXRlLXg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS11bi10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdW4tdHJhbnNsYXRlLXkpKSB0cmFuc2xhdGVaKHZhcigtLXVuLXRyYW5zbGF0ZS16KSkgcm90YXRlKHZhcigtLXVuLXJvdGF0ZSkpIHJvdGF0ZVgodmFyKC0tdW4tcm90YXRlLXgpKSByb3RhdGVZKHZhcigtLXVuLXJvdGF0ZS15KSkgcm90YXRlWih2YXIoLS11bi1yb3RhdGUteikpIHNrZXdYKHZhcigtLXVuLXNrZXcteCkpIHNrZXdZKHZhcigtLXVuLXNrZXcteSkpIHNjYWxlWCh2YXIoLS11bi1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXVuLXNjYWxlLXkpKSBzY2FsZVoodmFyKC0tdW4tc2NhbGUteikpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmludmFsaWQuc3ZlbHRlLTEyZjRjMWcsLmludmFsaWQuc3ZlbHRlLTE5bTN1Y3l7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9c2VsZWN0LnN2ZWx0ZS04aDVycTR7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNXJlbSBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxLjVlbSAxLjVlbX0uaW52YWxpZC5zdmVsdGUtOGg1cnE0ey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5pY29uLnN2ZWx0ZS0xcnNhMnF2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSA7Ym9yZGVyLXJhZGl1czoxLjVyZW07cGFkZGluZzouNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2VyLWJ1dHRvbi5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtib3JkZXItcmFkaXVzOi41cmVtO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07dHJhbnNpdGlvbjpjb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXItY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0ZXh0LWRlY29yYXRpb24tY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxmaWxsIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksc3Ryb2tlIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTpmbGV4fS5kcmF3ZXItYnV0dG9uLnN2ZWx0ZS1qNmV4cTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uZHJhd2VyLWJ1dHRvbi1kaXNhYmxlZC5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtvcGFjaXR5Oi4zO2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTtkaXNwbGF5OmZsZXh9LmRyYXdlci1idXR0b24tZGlzYWJsZWQuc3ZlbHRlLWo2ZXhxMDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWR9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGN7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTt0cmFuc2l0aW9uOmNvbG9yIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZC1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlci1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLHRleHQtZGVjb3JhdGlvbi1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGZpbGwgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxzdHJva2UgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmZsZXh9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGM6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0ubWVzc2FnZS1jb250ZW50LnN2ZWx0ZS0xZ2Z2aGk2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2UtY29udGVudC1sZWZ0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6LjI1cmVtIDEuNXJlbSAxLjVyZW0gLjI1cmVtfS5tZXNzYWdlLWNvbnRlbnQtbGVmdC1maXJzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LWxlZnQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LXJpZ2h0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6MS41cmVtIC4yNXJlbSAuMjVyZW0gMS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtZmlyc3Quc3ZlbHRlLTFnZnZoaTZ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxLjVyZW19LmNvdW50LWFuaW1hdGUuc3ZlbHRlLTIyOGM3bnthbmltYXRpb246LjJzIGN1YmljLWJlemllciguNCwyLC42LDEpIHN2ZWx0ZS0yMjhjN24tcG9wLXNjYWxlfUBrZXlmcmFtZXMgc3ZlbHRlLTIyOGM3bi1wb3Atc2NhbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xKX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fQovKiR2aXRlJDoxKi8="}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
